diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index d84c6a59538..7c39ce48a3f 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -55,9 +55,6 @@ # NixOS integration test driver /nixos/lib/test-driver @tfc -# New NixOS modules -/nixos/modules/module-list.nix @Infinisil - # Python-related code and docs /maintainers/scripts/update-python-libraries @FRidh /pkgs/top-level/python-packages.nix @FRidh @jonringer @@ -67,7 +64,7 @@ # Haskell /pkgs/development/compilers/ghc @cdepillabout -/pkgs/development/haskell-modules @cdepillabout @infinisil +/pkgs/development/haskell-modules @cdepillabout /pkgs/development/haskell-modules/default.nix @cdepillabout /pkgs/development/haskell-modules/generic-builder.nix @cdepillabout /pkgs/development/haskell-modules/hoogle.nix @cdepillabout @@ -82,8 +79,8 @@ /pkgs/development/r-modules @peti # Ruby -/pkgs/development/interpreters/ruby @alyssais @zimbatm -/pkgs/development/ruby-modules @alyssais @zimbatm +/pkgs/development/interpreters/ruby @alyssais +/pkgs/development/ruby-modules @alyssais # Rust /pkgs/development/compilers/rust @Mic92 @LnL7 @@ -178,6 +175,8 @@ /nixos/tests/prometheus-exporters.nix @WilliButz # PHP -/pkgs/development/interpreters/php @etu -/pkgs/top-level/php-packages.nix @etu -/pkgs/build-support/build-pecl.nix @etu +/doc/languages-frameworks/php.section.md @etu +/nixos/tests/php @etu +/pkgs/build-support/build-pecl.nix @etu +/pkgs/development/interpreters/php @etu +/pkgs/top-level/php-packages.nix @etu diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index a50a8a507de..cb0264b0167 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -50,12 +50,13 @@ For package version upgrades and such a one-line commit message is usually suffi ## Backporting changes -To [backport a change into a release branch](https://nixos.org/nixpkgs/manual/#submitting-changes-stable-release-branches): +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 commit in which the change was introduced into `master`. -2. Check out the target _release branch_, e.g. `release-19.09`. Do not use a _channel branch_ like `nixos-19.09` or `nixpkgs-19.09`. -3. Use `git cherry-pick -x `. -4. Open your backport PR. Make sure to select the release branch (e.g. `release-19.09`) as the target branch of the PR, and link to the PR in which the original change was made to `master`. +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.03`. Do not use a _channel branch_ like `nixos-20.03` or `nixpkgs-20.03`. +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. +5. Push to GitHub and open a backport pull request. Make sure to select the release branch (e.g. `release-20.03`) 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.03]`. ## Reviewing contributions diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 07c93f84fe0..4d3c8888f3a 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -25,6 +25,12 @@ If applicable, add screenshots to help explain your problem. **Additional context** Add any other context about the problem here. +**Notify maintainers** + + **Metadata** Please run `nix-shell -p nix-info --run "nix-info -m"` and paste the result. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 8b12c5f1aac..f4433807809 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,4 +1,13 @@ - + + ###### Motivation for this change diff --git a/.gitignore b/.gitignore index b3ae9e6ea86..05ada15f43a 100644 --- a/.gitignore +++ b/.gitignore @@ -11,7 +11,11 @@ result-* .version-suffix .DS_Store +.mypy_cache /pkgs/development/libraries/qt-5/*/tmp/ /pkgs/desktops/kde-5/*/tmp/ /pkgs/development/mobile/androidenv/xml/* + +# generated by pkgs/common-updater/update-script.nix +update-git-commits.txt diff --git a/README.md b/README.md index edcd8dc0a00..da38b227b56 100644 --- a/README.md +++ b/README.md @@ -45,9 +45,9 @@ 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 19.09 release](https://hydra.nixos.org/jobset/nixos/release-19.09) +* [Continuous package builds for the NixOS 20.03 release](https://hydra.nixos.org/jobset/nixos/release-20.03) * [Tests for unstable/master](https://hydra.nixos.org/job/nixos/trunk-combined/tested#tabs-constituents) -* [Tests for the NixOS 19.09 release](https://hydra.nixos.org/job/nixos/release-19.09/tested#tabs-constituents) +* [Tests for the NixOS 20.03 release](https://hydra.nixos.org/job/nixos/release-20.03/tested#tabs-constituents) Artifacts successfully built with Hydra are published to cache at https://cache.nixos.org/. When successful build and test criteria are diff --git a/doc/builders/images/appimagetools.xml b/doc/builders/images/appimagetools.xml index 0767a509a43..45c5619abd9 100644 --- a/doc/builders/images/appimagetools.xml +++ b/doc/builders/images/appimagetools.xml @@ -63,7 +63,7 @@ type2.AppImage: ELF 64-bit LSB executable, x86-64, version 1 (SYSV) (Lepton 3.x) appimageTools.wrapType2 { # or wrapType1 name = "patchwork"; src = fetchurl { - url = https://github.com/ssbc/patchwork/releases/download/v3.11.4/Patchwork-3.11.4-linux-x86_64.AppImage; + url = "https://github.com/ssbc/patchwork/releases/download/v3.11.4/Patchwork-3.11.4-linux-x86_64.AppImage"; sha256 = "1blsprpkvm0ws9b96gb36f0rbf8f5jgmw4x6dsb1kswr4ysf591s"; }; extraPkgs = pkgs: with pkgs; [ ]; diff --git a/doc/contributing/submitting-changes.xml b/doc/contributing/submitting-changes.xml index 73222c1a49a..a88965f5cc6 100644 --- a/doc/contributing/submitting-changes.xml +++ b/doc/contributing/submitting-changes.xml @@ -407,23 +407,47 @@ Additional information.
Stable release branches - + + For cherry-picking a commit to a stable release branch (backporting), use git cherry-pick -x <original commit> so that the original commit id is included in the commit. + + + + Add a reason for the backport by using git cherry-pick -xe <original commit> instead when it is not obvious from the original commit message. It is not needed when it’s a minor version update that includes security and bug fixes but don’t add new features or when the commit fixes an otherwise broken package. + + + + Here is an example of a cherry-picked commit message with good reason description: + + + +zfs: Keep trying root import until it works + +Works around #11003. + +(cherry picked from commit 98b213a11041af39b39473906b595290e2a4e2f9) + +Reason: several people cannot boot with ZFS on NVMe + + + + Other examples of reasons are: + + + - If you're cherry-picking a commit to a stable release branch (“backporting”), always use git cherry-pick -xe and ensure the message contains a clear description about why this needs to be included in the stable branch. + Previously the build would fail due to, e.g., getaddrinfo not being defined + + - An example of a cherry-picked commit would look like this: + The previous download links were all broken + + + + + Crash when starting on some X11 systems - -nixos: Refactor the world. - -The original commit message describing the reason why the world was torn apart. - -(cherry picked from commit abcdef) -Reason: I just had a gut feeling that this would also be wanted by people from -the stone age. -
diff --git a/doc/languages-frameworks/android.section.md b/doc/languages-frameworks/android.section.md index 9a5df2523a2..6ee450eeb59 100644 --- a/doc/languages-frameworks/android.section.md +++ b/doc/languages-frameworks/android.section.md @@ -186,7 +186,7 @@ with import {}; androidenv.emulateApp { name = "emulate-MyAndroidApp"; platformVersion = "28"; - abiVersion = "x86_64"; # armeabi-v7a, mips, x86 + abiVersion = "x86"; # armeabi-v7a, mips, x86_64 systemImageType = "google_apis_playstore"; } ``` @@ -235,5 +235,5 @@ package manager uses. To update the expressions run the `generate.sh` script that is stored in the `pkgs/development/mobile/androidenv/` sub directory: ```bash -sh ./generate.sh +./generate.sh ``` diff --git a/doc/languages-frameworks/haskell.section.md b/doc/languages-frameworks/haskell.section.md index 944c17a137e..b727f2fb634 100644 --- a/doc/languages-frameworks/haskell.section.md +++ b/doc/languages-frameworks/haskell.section.md @@ -101,17 +101,15 @@ to compile your Haskell packages with any GHC version you please. The following command displays the complete list of available compilers: ``` $ nix-env -f "" -qaP -A haskell.compiler -haskell.compiler.ghc8101 ghc-8.10.0.20191210 -haskell.compiler.integer-simple.ghc8101 ghc-8.10.0.20191210 -haskell.compiler.ghcHEAD ghc-8.10.20191119 -haskell.compiler.integer-simple.ghcHEAD ghc-8.10.20191119 +haskell.compiler.ghc8101 ghc-8.10.1 +haskell.compiler.integer-simple.ghc8101 ghc-8.10.1 +haskell.compiler.ghcHEAD ghc-8.11.20200403 +haskell.compiler.integer-simple.ghcHEAD ghc-8.11.20200403 haskell.compiler.ghc822Binary ghc-8.2.2-binary haskell.compiler.ghc844 ghc-8.4.4 haskell.compiler.ghc863Binary ghc-8.6.3-binary haskell.compiler.ghc865 ghc-8.6.5 haskell.compiler.integer-simple.ghc865 ghc-8.6.5 -haskell.compiler.ghc881 ghc-8.8.1 -haskell.compiler.integer-simple.ghc881 ghc-8.8.1 haskell.compiler.ghc882 ghc-8.8.2 haskell.compiler.integer-simple.ghc882 ghc-8.8.2 haskell.compiler.ghc883 ghc-8.8.3 @@ -369,7 +367,7 @@ automatically select the right version of GHC and other build tools to build, test and execute apps in an existing project downloaded from somewhere on the Internet. Pass the `--nix` flag to any `stack` command to do so, e.g. ```shell -git clone --recursive https://github.com/yesodweb/wai +git clone --recurse-submodules https://github.com/yesodweb/wai.git cd wai stack --nix build ``` diff --git a/doc/languages-frameworks/php.section.md b/doc/languages-frameworks/php.section.md new file mode 100644 index 00000000000..101f7b043ff --- /dev/null +++ b/doc/languages-frameworks/php.section.md @@ -0,0 +1,123 @@ +# PHP + +## User Guide + +### Using PHP + +#### Overview + +Several versions of PHP are available on Nix, each of which having a +wide variety of extensions and libraries available. + +The different versions of PHP that nixpkgs provides are located under +attributes named based on major and minor version number; e.g., +`php74` is PHP 7.4. + +Only versions of PHP that are supported by upstream for the entirety +of a given NixOS release will be included in that release of +NixOS. See [PHP Supported +Versions](https://www.php.net/supported-versions.php). + +The attribute `php` refers to the version of PHP considered most +stable and thoroughly tested in nixpkgs for any given release of +NixOS - not necessarily the latest major release from upstream. + +All available PHP attributes are wrappers around their respective +binary PHP package and provide commonly used extensions this way. The +real PHP 7.4 package, i.e. the unwrapped one, is available as +`php74.unwrapped`; see the next section for more details. + +Interactive tools built on PHP are put in `php.packages`; composer is +for example available at `php.packages.composer`. + +Most extensions that come with PHP, as well as some popular +third-party ones, are available in `php.extensions`; for example, the +opcache extension shipped with PHP is available at +`php.extensions.opcache` and the third-party ImageMagick extension at +`php.extensions.imagick`. + +#### Installing PHP with extensions + +A PHP package with specific extensions enabled can be built using +`php.withExtensions`. This is a function which accepts an anonymous +function as its only argument; the function should accept two named +parameters: `enabled` - a list of currently enabled extensions and +`all` - the set of all extensions, and return a list of wanted +extensions. For example, a PHP package with all default extensions and +ImageMagick enabled: + +```nix +php.withExtensions ({ enabled, all }: + enabled ++ [ all.imagick ]) +``` + +To exclude some, but not all, of the default extensions, you can +filter the `enabled` list like this: + +```nix +php.withExtensions ({ enabled, all }: + (lib.filter (e: e != php.extensions.opcache) enabled) + ++ [ all.imagick ]) +``` + +To build your list of extensions from the ground up, you can simply +ignore `enabled`: + +```nix +php.withExtensions ({ all, ... }: with all; [ opcache imagick ]) +``` + +`php.withExtensions` provides extensions by wrapping a minimal php +base package, providing a `php.ini` file listing all extensions to be +loaded. You can access this package through the `php.unwrapped` +attribute; useful if you, for example, need access to the `dev` +output. The generated `php.ini` file can be accessed through the +`php.phpIni` attribute. + +If you want a PHP build with extra configuration in the `php.ini` +file, you can use `php.buildEnv`. This function takes two named and +optional parameters: `extensions` and `extraConfig`. `extensions` +takes an extension specification equivalent to that of +`php.withExtensions`, `extraConfig` a string of additional `php.ini` +configuration parameters. For example, a PHP package with the opcache +and ImageMagick extensions enabled, and `memory_limit` set to `256M`: + +```nix +php.buildEnv { + extensions = { all, ... }: with all; [ imagick opcache ]; + extraConfig = "memory_limit=256M"; +} +``` + +##### Example setup for `phpfpm` + +You can use the previous examples in a `phpfpm` pool called `foo` as +follows: + +```nix +let + myPhp = php.withExtensions ({ all, ... }: with all; [ opcache imagick ]); +in { + services.phpfpm.pools."foo".phpPackage = myPhp; +}; +``` + +```nix +let + myPhp = php.buildEnv { + extensions = { all, ... }: with all; [ imagick opcache ]; + extraConfig = "memory_limit=256M"; + }; +in { + services.phpfpm.pools."foo".phpPackage = myPhp; +}; +``` + +##### Example usage with `nix-shell` + +This brings up a temporary environment that contains a PHP interpreter +with the extensions `imagick` and `opcache` enabled: + +```sh +nix-shell -p 'php.withExtensions ({ all, ... }: with all; [ imagick opcache ])' +``` diff --git a/doc/languages-frameworks/python.section.md b/doc/languages-frameworks/python.section.md index 650ed342858..e6f0b64fa9c 100644 --- a/doc/languages-frameworks/python.section.md +++ b/doc/languages-frameworks/python.section.md @@ -412,7 +412,7 @@ buildPythonPackage rec { meta = with lib; { description = "A pythonic wrapper around FFTW, the FFT library, presenting a unified interface for all the supported transforms"; - homepage = http://hgomersall.github.com/pyFFTW; + homepage = "http://hgomersall.github.com/pyFFTW"; license = with licenses; [ bsd2 bsd3 ]; maintainers = with maintainers; [ fridh ]; }; @@ -1290,32 +1290,9 @@ self: super: { ### How to use Intel's MKL with numpy and scipy? -A `site.cfg` is created that configures BLAS based on the `blas` parameter of -the `numpy` derivation. By passing in `mkl`, `numpy` and packages depending on -`numpy` will be built with `mkl`. - -The following is an overlay that configures `numpy` to use `mkl`: - -```nix -self: super: { - python37 = super.python37.override { - packageOverrides = python-self: python-super: { - numpy = python-super.numpy.override { - blas = super.pkgs.mkl; - }; - }; - }; -} -``` - -`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,darwin}` platforms; -moreover, Hydra is not building and distributing pre-compiled binaries using it. +MKL can be configured using an overlay. See the section “[Using +overlays to configure +alternatives](#sec-overlays-alternatives-blas-lapack)”. ### What inputs do `setup_requires`, `install_requires` and `tests_require` map to? diff --git a/doc/languages-frameworks/ruby.xml b/doc/languages-frameworks/ruby.xml index b28745fd6e2..9b36801fb96 100644 --- a/doc/languages-frameworks/ruby.xml +++ b/doc/languages-frameworks/ruby.xml @@ -32,7 +32,7 @@ bundlerEnv rec { meta = with lib; { description = "A monitoring framework that aims to be simple, malleable, and scalable"; - homepage = http://sensuapp.org/; + homepage = "http://sensuapp.org/"; license = with licenses; mit; maintainers = with maintainers; [ theuni ]; platforms = platforms.unix; @@ -69,7 +69,7 @@ bundlerApp { meta = with lib; { description = "Tool and libraries for maintaining Ruby gems."; - homepage = https://github.com/nyarly/corundum; + homepage = "https://github.com/nyarly/corundum"; license = licenses.mit; maintainers = [ maintainers.nyarly ]; platforms = platforms.unix; diff --git a/doc/languages-frameworks/rust.section.md b/doc/languages-frameworks/rust.section.md index 97dc9e2ff53..cec3373cbee 100644 --- a/doc/languages-frameworks/rust.section.md +++ b/doc/languages-frameworks/rust.section.md @@ -60,9 +60,9 @@ Nix depends on this file, so if it missing you can use `cargoPatches` to apply it in the `patchPhase`. Consider sending a PR upstream with a note to the maintainer describing why it's important to include in the application. -Unless `legacyCargoFetcher` is set to `true`, the fetcher will also verify that -the `Cargo.lock` file is in sync with the `src` attribute, and will compress the -vendor directory into a tar.gz archive. +The fetcher will verify that the `Cargo.lock` file is in sync with the `src` +attribute, and fail the build if not. It will also will compress the vendor +directory into a tar.gz archive. ### Building a crate for a different target diff --git a/doc/languages-frameworks/texlive.xml b/doc/languages-frameworks/texlive.xml index 8fa8f963b2f..a581ec5911c 100644 --- a/doc/languages-frameworks/texlive.xml +++ b/doc/languages-frameworks/texlive.xml @@ -149,31 +149,4 @@ EOF ]]> - -
- Known problems - - - - - Some tools are still missing, e.g. luajittex; - - - - - some apps aren't packaged/tested yet (asymptote, biber, etc.); - - - - - feature/bug: when a package is rejected by pkgFilter, its dependencies are still propagated; - - - - - in case of any bugs or feature requests, file a github issue or better a pull request and /cc @vcunat. - - - -
diff --git a/doc/languages-frameworks/vim.section.md b/doc/languages-frameworks/vim.section.md index 05a23d26cf2..4911509212e 100644 --- a/doc/languages-frameworks/vim.section.md +++ b/doc/languages-frameworks/vim.section.md @@ -261,12 +261,7 @@ deoplete-fish = super.deoplete-fish.overrideAttrs(old: { Sometimes plugins require an override that must be changed when the plugin is updated. This can cause issues when Vim plugins are auto-updated but the associated override isn't updated. For these plugins, the override should be written so that it specifies all information required to install the plugin, and running `./update.py` doesn't change the derivation for the plugin. Manually updating the override is required to update these types of plugins. An example of such a plugin is `LanguageClient-neovim`. -To add a new plugin: - - 1. run `./update.py` and create a commit named "vimPlugins: Update", - 2. add the new plugin to [vim-plugin-names](/pkgs/misc/vim-plugins/vim-plugin-names) and add overrides if required to [overrides.nix](/pkgs/misc/vim-plugins/overrides.nix), - 3. run `./update.py` again and create a commit named "vimPlugins.[name]: init at [version]" (where `name` and `version` can be found in [generated.nix](/pkgs/misc/vim-plugins/generated.nix)), and - 4. create a pull request. +To add a new plugin, run `./update.py --add "[owner]/[name]"`. **NOTE**: This script automatically commits to your git repository. Be sure to check out a fresh branch before running. ## Important repositories diff --git a/doc/old/cross.txt b/doc/old/cross.txt index ff9fefb04a8..9dd5b4c9993 100644 --- a/doc/old/cross.txt +++ b/doc/old/cross.txt @@ -60,7 +60,7 @@ stdenv.mkDerivation { name = "binutils-2.16.1-arm"; builder = ./builder.sh; src = fetchurl { - url = http://ftp.nluug.nl/gnu/binutils/binutils-2.16.1.tar.bz2; + url = "http://ftp.nluug.nl/gnu/binutils/binutils-2.16.1.tar.bz2"; sha256 = "1ian3kwh2vg6hr3ymrv48s04gijs539vzrq62xr76bxbhbwnz2np"; }; inherit noSysDirs; @@ -84,7 +84,7 @@ stdenv.mkDerivation { name = "linux-headers-2.6.13.1-arm"; builder = ./builder.sh; src = fetchurl { - url = http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.13.1.tar.bz2; + url = "http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.13.1.tar.bz2"; sha256 = "12qxmc827fjhaz53kjy7vyrzsaqcg78amiqsb3qm20z26w705lma"; }; } diff --git a/doc/preface.chapter.md b/doc/preface.chapter.md index 88ca5e2e3ce..7fa65ab1102 100644 --- a/doc/preface.chapter.md +++ b/doc/preface.chapter.md @@ -37,7 +37,7 @@ security updates. More up to date packages and modules are available via the Both `nixos-unstable` and `nixpkgs` follow the `master` branch of the Nixpkgs repository, although both do lag the `master` branch by generally -[a couple of days](https://howoldis.herokuapp.com/). Updates to a channel are +[a couple of days](https://status.nixos.org/). Updates to a channel are distributed as soon as all tests for that channel pass, e.g. [this table](https://hydra.nixos.org/job/nixpkgs/trunk/unstable#tabs-constituents) shows the status of tests for the `nixpkgs` channel. diff --git a/doc/release-notes.xml b/doc/release-notes.xml index b85f61da079..7575289e755 100644 --- a/doc/release-notes.xml +++ b/doc/release-notes.xml @@ -190,7 +190,7 @@ preConfigure = "configureFlagsArray=(\"CFLAGS=-O0 -g\")"; The function fetchurl now has support for two different kinds of mirroring of files. First, it has support for content-addressable mirrors. For example, given the fetchurl call fetchurl { - url = http://releases.mozilla.org/.../firefox-2.0.0.6-source.tar.bz2; + url = "http://releases.mozilla.org/.../firefox-2.0.0.6-source.tar.bz2"; sha1 = "eb72f55e4a8bf08e8c6ef227c0ade3d068ba1082"; } fetchurl will first try to download this file from - The reason for why glibc deviates from the convention is because referencing a library provided by glibc is a very common operation among Nix packages. For instance, third-party executables packaged by Nix are typically patched and relinked with the relevant version of glibc libraries from Nix packages (please see the documentation on patchelf for more details). + The reason for why glibc deviates from the convention is because referencing a library provided by glibc is a very common operation among Nix packages. For instance, third-party executables packaged by Nix are typically patched and relinked with the relevant version of glibc libraries from Nix packages (please see the documentation on patchelf for more details). diff --git a/doc/stdenv/stdenv.xml b/doc/stdenv/stdenv.xml index 1e97bf6157b..206203be1ce 100644 --- a/doc/stdenv/stdenv.xml +++ b/doc/stdenv/stdenv.xml @@ -14,7 +14,7 @@ stdenv.mkDerivation { name = "libfoo-1.2.3"; src = fetchurl { - url = http://example.org/libfoo-1.2.3.tar.bz2; + url = "http://example.org/libfoo-1.2.3.tar.bz2"; sha256 = "0x2g1jqygyr5wiwg4ma1nd7w4ydpy82z9gkcv8vh2v8dn3y58v5m"; }; } @@ -727,6 +727,16 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ] Variables controlling the patch phase + + + dontPatch + + + + Set to true to skip the patch phase. + + + patches @@ -1295,7 +1305,7 @@ installTargets = "install-bin install-doc"; - List of directories to search for libraries and executables from which only debugging-related symbols should be stripped. It defaults to lib bin sbin. + List of directories to search for libraries and executables from which only debugging-related symbols should be stripped. It defaults to lib lib32 lib64 libexec bin sbin. diff --git a/doc/using/overlays.xml b/doc/using/overlays.xml index 26a888368ab..3fa68e32a3c 100644 --- a/doc/using/overlays.xml +++ b/doc/using/overlays.xml @@ -137,4 +137,129 @@ self: super: Overlays are similar to other methods for customizing Nixpkgs, in particular the packageOverrides attribute described in . Indeed, packageOverrides acts as an overlay with only the super argument. It is therefore appropriate for basic use, but overlays are more powerful and easier to distribute. +
+ Using overlays to configure alternatives + + Certain software packages have different implementations of the + same interface. Other distributions have functionality to switch + between these. For example, Debian provides DebianAlternatives. + Nixpkgs has what we call alternatives, which + are configured through overlays. + +
+ BLAS/LAPACK + + In Nixpkgs, we have multiple implementations of the BLAS/LAPACK + numerical linear algebra interfaces. They are: + + + + + OpenBLAS + + + The Nixpkgs attribute is openblas for + ILP64 (integer width = 64 bits) and + openblasCompat for LP64 (integer width = + 32 bits). openblasCompat is the default. + + + + + LAPACK + reference (also provides BLAS) + + + The Nixpkgs attribute is lapack-reference. + + + + + Intel + MKL (only works on x86 architecture, unfree) + + + The Nixpkgs attribute is mkl. + + + + + Introduced in PR + #83888, we are able to override the ‘blas’ and ‘lapack’ + packages to use different implementations, through the + ‘blasProvider’ and ‘lapackProvider’ argument. This can be used + to select a different provider. BLAS providers will have + symlinks in $out/lib/libblas.so.3 and + $out/lib/libcblas.so.3 to their respective + BLAS libraries. Likewise, LAPACK providers will have symlinks + in $out/lib/liblapack.so.3 and + $out/lib/liblapacke.so.3 to their respective + LAPCK libraries. For example, Intel MKL is both a BLAS and + LAPACK provider. An overlay can be created to use Intel MKL + that looks like: + + +self: super: + +{ + blas = super.blas.override { + blasProvider = self.mkl; + } + lapack = super.lapack.override { + lapackProvider = self.mkl; + } +} + + + 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: + + +$ LD_LIBRARY_PATH=$(nix-build -A mkl)/lib:$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. + + + For BLAS/LAPACK switching to work correctly, all packages must + depend on blas or lapack. + This ensures that only one BLAS/LAPACK library is used at one + time. There are two versions versions of BLAS/LAPACK currently + in the wild, LP64 (integer size = 32 bits) + and ILP64 (integer size = 64 bits). Some + software needs special flags or patches to work with + ILP64. You can check if + ILP64 is used in Nixpkgs with + blas.isILP64 and + lapack.isILP64. Some software does NOT work + with ILP64, and derivations need to specify + an assertion to prevent this. You can prevent + ILP64 from being used with the following: + + +{ stdenv, blas, lapack, ... }: + +assert (!blas.isILP64) && (!lapack.isILP64); + +stdenv.mkDerivation { + ... +} + +
+
diff --git a/flake.nix b/flake.nix index a6828c98fb5..52fd2f82a37 100644 --- a/flake.nix +++ b/flake.nix @@ -25,7 +25,7 @@ import ./nixos/lib/eval-config.nix (args // { modules = modules ++ [ { system.nixos.versionSuffix = - ".${lib.substring 0 8 self.lastModified}.${self.shortRev or "dirty"}"; + ".${lib.substring 0 8 (self.lastModifiedDate or self.lastModified)}.${self.shortRev or "dirty"}"; system.nixos.revision = lib.mkIf (self ? rev) self.rev; } ]; diff --git a/lib/attrsets.nix b/lib/attrsets.nix index 72430522f7d..7d84c25de77 100644 --- a/lib/attrsets.nix +++ b/lib/attrsets.nix @@ -4,7 +4,7 @@ let inherit (builtins) head tail length; inherit (lib.trivial) and; - inherit (lib.strings) concatStringsSep; + inherit (lib.strings) concatStringsSep sanitizeDerivationName; inherit (lib.lists) fold concatMap concatLists; in @@ -310,7 +310,7 @@ rec { path' = builtins.storePath path; res = { type = "derivation"; - name = builtins.unsafeDiscardStringContext (builtins.substring 33 (-1) (baseNameOf path')); + name = sanitizeDerivationName (builtins.substring 33 (-1) (baseNameOf path')); outPath = path'; outputs = [ "out" ]; out = res; diff --git a/lib/default.nix b/lib/default.nix index a909cefd60f..d00c4abec0a 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -141,7 +141,7 @@ let mergeAttrsWithFunc mergeAttrsConcatenateValues mergeAttrsNoOverride mergeAttrByFunc mergeAttrsByFuncDefaults mergeAttrsByFuncDefaultsClean mergeAttrBy - fakeSha256 fakeSha512 + fakeSri fakeSha256 fakeSha512 nixType imap; inherit (versions) splitVersion; diff --git a/lib/deprecated.nix b/lib/deprecated.nix index 155d6f0c361..8c4fe9c390c 100644 --- a/lib/deprecated.nix +++ b/lib/deprecated.nix @@ -272,6 +272,7 @@ rec { imap = imap1; # Fake hashes. Can be used as hash placeholders, when computing hash ahead isn't trivial + fakeSri = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; fakeSha256 = "0000000000000000000000000000000000000000000000000000000000000000"; fakeSha512 = "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"; } diff --git a/lib/generators.nix b/lib/generators.nix index 240a19789b5..efe6ea6031d 100644 --- a/lib/generators.nix +++ b/lib/generators.nix @@ -126,6 +126,59 @@ rec { # map input to ini sections mapAttrsToStringsSep "\n" mkSection attrsOfAttrs; + /* Generate a git-config file from an attrset. + * + * It has two major differences from the regular INI format: + * + * 1. values are indented with tabs + * 2. sections can have sub-sections + * + * generators.toGitINI { + * url."ssh://git@github.com/".insteadOf = "https://github.com"; + * user.name = "edolstra"; + * } + * + *> [url "ssh://git@github.com/"] + *> insteadOf = https://github.com/ + *> + *> [user] + *> name = edolstra + */ + toGitINI = attrs: + with builtins; + let + mkSectionName = name: + let + containsQuote = libStr.hasInfix ''"'' name; + sections = libStr.splitString "." name; + section = head sections; + subsections = tail sections; + subsection = concatStringsSep "." subsections; + in if containsQuote || subsections == [ ] then + name + else + ''${section} "${subsection}"''; + + # generation for multiple ini values + mkKeyValue = k: v: + let mkKeyValue = mkKeyValueDefault { } " = " k; + in concatStringsSep "\n" (map (kv: "\t" + mkKeyValue kv) (lib.toList v)); + + # converts { a.b.c = 5; } to { "a.b".c = 5; } for toINI + gitFlattenAttrs = let + recurse = path: value: + if isAttrs value then + lib.mapAttrsToList (name: value: recurse ([ name ] ++ path) value) value + else if length path > 1 then { + ${concatStringsSep "." (lib.reverseList (tail path))}.${head path} = value; + } else { + ${head path} = value; + }; + in attrs: lib.foldl lib.recursiveUpdate { } (lib.flatten (recurse [ ] attrs)); + + toINI_ = toINI { inherit mkKeyValue mkSectionName; }; + in + toINI_ (gitFlattenAttrs attrs); /* Generates JSON from an arbitrary (non-function) value. * For more information see the documentation of the builtin. diff --git a/lib/licenses.nix b/lib/licenses.nix index e2f94e565ce..4c07797b16c 100644 --- a/lib/licenses.nix +++ b/lib/licenses.nix @@ -2,7 +2,7 @@ let spdx = lic: lic // { - url = "http://spdx.org/licenses/${lic.spdxId}.html"; + url = "https://spdx.org/licenses/${lic.spdxId}.html"; }; in @@ -40,13 +40,13 @@ lib.mapAttrs (n: v: v // { shortName = n; }) { amazonsl = { fullName = "Amazon Software License"; - url = http://aws.amazon.com/asl/; + url = "https://aws.amazon.com/asl/"; free = false; }; amd = { fullName = "AMD License Agreement"; - url = http://developer.amd.com/amd-license-agreement/; + url = "https://developer.amd.com/amd-license-agreement/"; free = false; }; @@ -57,7 +57,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) { arphicpl = { fullName = "Arphic Public License"; - url = https://www.freedesktop.org/wiki/Arphic_Public_License/; + url = "https://www.freedesktop.org/wiki/Arphic_Public_License/"; }; artistic1 = spdx { @@ -107,7 +107,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) { bsl11 = { fullName = "Business Source License 1.1"; - url = https://mariadb.com/bsl11; + url = "https://mariadb.com/bsl11"; free = false; }; @@ -230,7 +230,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) { eapl = { fullName = "EPSON AVASYS PUBLIC LICENSE"; - url = http://avasys.jp/hp/menu000000700/hpg000000603.htm; + url = "https://avasys.jp/hp/menu000000700/hpg000000603.htm"; free = false; }; @@ -246,7 +246,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) { elastic = { fullName = "ELASTIC LICENSE"; - url = https://github.com/elastic/elasticsearch/blob/master/licenses/ELASTIC-LICENSE.txt; + url = "https://github.com/elastic/elasticsearch/blob/master/licenses/ELASTIC-LICENSE.txt"; free = false; }; @@ -262,7 +262,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) { epson = { fullName = "Seiko Epson Corporation Software License Agreement for Linux"; - url = https://download.ebz.epson.net/dsc/du/02/eula/global/LINUX_EN.html; + url = "https://download.ebz.epson.net/dsc/du/02/eula/global/LINUX_EN.html"; free = false; }; @@ -271,6 +271,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) { fullName = "European Union Public License 1.1"; }; + eupl12 = spdx { + spdxId = "EUPL-1.2"; + fullName = "European Union Public License 1.2"; + }; + fdl12 = spdx { spdxId = "GFDL-1.2-only"; fullName = "GNU Free Documentation License v1.2 only"; @@ -293,7 +298,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) { ffsl = { fullName = "Floodgap Free Software License"; - url = http://www.floodgap.com/software/ffsl/license.html; + url = "https://www.floodgap.com/software/ffsl/license.html"; free = false; }; @@ -303,12 +308,12 @@ lib.mapAttrs (n: v: v // { shortName = n; }) { g4sl = { fullName = "Geant4 Software License"; - url = https://geant4.web.cern.ch/geant4/license/LICENSE.html; + url = "https://geant4.web.cern.ch/geant4/license/LICENSE.html"; }; geogebra = { fullName = "GeoGebra Non-Commercial License Agreement"; - url = https://www.geogebra.org/license; + url = "https://www.geogebra.org/license"; free = false; }; @@ -334,12 +339,12 @@ lib.mapAttrs (n: v: v // { shortName = n; }) { gpl2ClasspathPlus = { fullName = "GNU General Public License v2.0 or later (with Classpath exception)"; - url = https://fedoraproject.org/wiki/Licensing/GPL_Classpath_Exception; + url = "https://fedoraproject.org/wiki/Licensing/GPL_Classpath_Exception"; }; gpl2Oss = { fullName = "GNU General Public License version 2 only (with OSI approved licenses linking exception)"; - url = https://www.mysql.com/about/legal/licensing/foss-exception; + url = "https://www.mysql.com/about/legal/licensing/foss-exception"; }; gpl2Plus = spdx { @@ -359,7 +364,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) { gpl3ClasspathPlus = { fullName = "GNU General Public License v3.0 or later (with Classpath exception)"; - url = https://fedoraproject.org/wiki/Licensing/GPL_Classpath_Exception; + url = "https://fedoraproject.org/wiki/Licensing/GPL_Classpath_Exception"; }; hpnd = spdx { @@ -370,7 +375,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) { # Intel's license, seems free iasl = { fullName = "iASL"; - url = http://www.calculate-linux.org/packages/licenses/iASL; + url = "https://old.calculate-linux.org/packages/licenses/iASL"; }; ijg = spdx { @@ -385,13 +390,13 @@ lib.mapAttrs (n: v: v // { shortName = n; }) { inria-compcert = { fullName = "INRIA Non-Commercial License Agreement for the CompCert verified compiler"; - url = "http://compcert.inria.fr/doc/LICENSE"; + url = "http://compcert.inria.fr/doc/LICENSE"; # https is broken free = false; }; inria-icesl = { fullName = "INRIA Non-Commercial License Agreement for IceSL"; - url = "http://shapeforge.loria.fr/icesl/EULA_IceSL_binary.pdf"; + url = "http://shapeforge.loria.fr/icesl/EULA_IceSL_binary.pdf"; # https is broken free = false; }; @@ -413,7 +418,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) { # Proprietary binaries; free to redistribute without modification. issl = { fullName = "Intel Simplified Software License"; - url = https://software.intel.com/en-us/license/intel-simplified-software-license; + url = "https://software.intel.com/en-us/license/intel-simplified-software-license"; free = false; }; @@ -469,7 +474,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) { llgpl21 = { fullName = "Lisp LGPL; GNU Lesser General Public License version 2.1 with Franz Inc. preamble for clarification of LGPL terms in context of Lisp"; - url = http://opensource.franz.com/preamble.html; + url = "https://opensource.franz.com/preamble.html"; }; lppl12 = spdx { @@ -489,11 +494,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) { miros = { fullName = "MirOS License"; - url = https://opensource.org/licenses/MirOS; + url = "https://opensource.org/licenses/MirOS"; }; # spdx.org does not (yet) differentiate between the X11 and Expat versions - # for details see http://en.wikipedia.org/wiki/MIT_License#Various_versions + # for details see https://en.wikipedia.org/wiki/MIT_License#Various_versions mit = spdx { spdxId = "MIT"; fullName = "MIT License"; @@ -519,12 +524,6 @@ lib.mapAttrs (n: v: v // { shortName = n; }) { fullName = "Microsoft Public License"; }; - msrla = { - fullName = "Microsoft Research License Agreement"; - url = "http://research.microsoft.com/en-us/projects/pex/msr-la.txt"; - free = false; - }; - nasa13 = spdx { spdxId = "NASA-1.3"; fullName = "NASA Open Source Agreement 1.3"; @@ -589,14 +588,14 @@ lib.mapAttrs (n: v: v // { shortName = n; }) { postman = { fullName = "Postman EULA"; - url = https://www.getpostman.com/licenses/postman_base_app; + url = "https://www.getpostman.com/licenses/postman_base_app"; free = false; }; psfl = spdx { spdxId = "Python-2.0"; fullName = "Python Software Foundation License version 2"; - #url = http://docs.python.org/license.html; + url = "https://docs.python.org/license.html"; }; publicDomain = { @@ -605,7 +604,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) { purdueBsd = { fullName = " Purdue BSD-Style License"; # also know as lsof license - url = https://enterprise.dejacode.com/licenses/public/purdue-bsd; + url = "https://enterprise.dejacode.com/licenses/public/purdue-bsd"; }; qhull = spdx { @@ -620,7 +619,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) { qwt = { fullName = "Qwt License, Version 1.0"; - url = http://qwt.sourceforge.net/qwtlicense.html; + url = "https://qwt.sourceforge.io/qwtlicense.html"; }; ruby = spdx { @@ -646,7 +645,14 @@ lib.mapAttrs (n: v: v // { shortName = n; }) { smail = { shortName = "smail"; fullName = "SMAIL General Public License"; - url = http://metadata.ftp-master.debian.org/changelogs/main/d/debianutils/debianutils_4.8.1_copyright; + url = "https://sources.debian.org/copyright/license/debianutils/4.9.1/"; + }; + + sspl = { + shortName = "SSPL"; + fullName = "Server Side Public License"; + url = "https://www.mongodb.com/licensing/server-side-public-license"; + free = false; }; tcltk = spdx { @@ -656,7 +662,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) { ufl = { fullName = "Ubuntu Font License 1.0"; - url = http://font.ubuntu.com/ufl/ubuntu-font-licence-1.0.txt; + url = "https://ubuntu.com/legal/font-licence"; }; unfree = { @@ -675,6 +681,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) { # channel and NixOS images. }; + unicode-dfs-2016 = spdx { + spdxId = "Unicode-DFS-2016"; + fullName = "Unicode License Agreement - Data Files and Software (2016)"; + }; + unlicense = spdx { spdxId = "Unlicense"; fullName = "The Unlicense"; @@ -713,7 +724,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) { wadalab = { fullName = "Wadalab Font License"; - url = https://fedoraproject.org/wiki/Licensing:Wadalab?rd=Licensing/Wadalab; + url = "https://fedoraproject.org/wiki/Licensing:Wadalab?rd=Licensing/Wadalab"; }; wtfpl = spdx { @@ -728,7 +739,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) { xfig = { fullName = "xfig"; - url = "http://mcj.sourceforge.net/authors.html#xfig"; + url = "http://mcj.sourceforge.net/authors.html#xfig"; # https is broken }; zlib = spdx { diff --git a/lib/modules.nix b/lib/modules.nix index 6cbef5632bd..c18fec66c70 100644 --- a/lib/modules.nix +++ b/lib/modules.nix @@ -93,7 +93,11 @@ rec { res set._definedNames else res; - result = { inherit options config; }; + result = { + inherit options; + config = removeAttrs config [ "_module" ]; + inherit (config) _module; + }; in result; # collectModules :: (modulesPath: String) -> (modules: [ Module ]) -> (args: Attrs) -> [ Module ] @@ -410,10 +414,9 @@ rec { # Type-check the remaining definitions, and merge them. Or throw if no definitions. mergedValue = if isDefined then - foldl' (res: def: - if type.check def.value then res - else throw "The option value `${showOption loc}' in `${def.file}' is not of type `${type.description}'." - ) (type.merge loc defsFinal) defsFinal + if all (def: type.check def.value) defsFinal then type.merge loc defsFinal + else let firstInvalid = findFirst (def: ! type.check def.value) null defsFinal; + in throw "The option value `${showOption loc}' in `${firstInvalid.file}' is not of type `${type.description}'." else # (nixos-option detects this specific error message and gives it special # handling. If changed here, please change it there too.) diff --git a/lib/options.nix b/lib/options.nix index e5c0631a543..38f4f1329f2 100644 --- a/lib/options.nix +++ b/lib/options.nix @@ -159,7 +159,7 @@ rec { let ss = opt.type.getSubOptions opt.loc; in if ss != {} then optionAttrSetToDocList' opt.loc ss else []; in - [ docOption ] ++ subOptions) (collect isOption options); + [ docOption ] ++ optionals docOption.visible subOptions) (collect isOption options); /* This function recursively removes all derivation attributes from @@ -191,7 +191,14 @@ rec { Example: (showOption ["foo" "bar" "baz"]) == "foo.bar.baz" - (showOption ["foo" "bar.baz" "tux"]) == "foo.\"bar.baz\".tux" + (showOption ["foo" "bar.baz" "tux"]) == "foo.bar.baz.tux" + + Placeholders will not be quoted as they are not actual values: + (showOption ["foo" "*" "bar"]) == "foo.*.bar" + (showOption ["foo" "" "bar"]) == "foo..bar" + + Unlike attributes, options can also start with numbers: + (showOption ["windowManager" "2bwm" "enable"]) == "windowManager.2bwm.enable" */ showOption = parts: let escapeOptionPart = part: diff --git a/lib/sources.nix b/lib/sources.nix index 05519c3e392..ed9bce48530 100644 --- a/lib/sources.nix +++ b/lib/sources.nix @@ -63,17 +63,14 @@ rec { # https://nixos.org/nix/manual/#builtin-filterSource # # name: Optional name to use as part of the store path. - # This defaults `src.name` or otherwise `baseNameOf src`. - # We recommend setting `name` whenever `src` is syntactically `./.`. - # Otherwise, you depend on `./.`'s name in the parent directory, - # which can cause inconsistent names, defeating caching. + # This defaults to `src.name` or otherwise `"source"`. # cleanSourceWith = { filter ? _path: _type: true, src, name ? null }: let isFiltered = src ? _isLibCleanSourceWith; origSrc = if isFiltered then src.origSrc else src; filter' = if isFiltered then name: type: filter name type && src.filter name type else filter; - name' = if name != null then name else if isFiltered then src.name else baseNameOf src; + name' = if name != null then name else if isFiltered then src.name else "source"; in { inherit origSrc; filter = filter'; diff --git a/lib/strings.nix b/lib/strings.nix index 4f9509ffe7c..74e3eaa0722 100644 --- a/lib/strings.nix +++ b/lib/strings.nix @@ -315,6 +315,21 @@ rec { */ escapeNixString = s: escape ["$"] (builtins.toJSON s); + /* Quotes a string if it can't be used as an identifier directly. + + Type: string -> string + + Example: + escapeNixIdentifier "hello" + => "hello" + escapeNixIdentifier "0abc" + => "\"0abc\"" + */ + escapeNixIdentifier = s: + # Regex from https://github.com/NixOS/nix/blob/d048577909e383439c2549e849c5c2f2016c997e/src/libexpr/lexer.l#L91 + if builtins.match "[a-zA-Z_][a-zA-Z0-9_'-]*" s != null + then s else escapeNixString s; + # Obsolete - use replaceStrings instead. replaceChars = builtins.replaceStrings or ( del: new: s: @@ -678,4 +693,36 @@ rec { => "1.0" */ fileContents = file: removeSuffix "\n" (builtins.readFile file); + + + /* Creates a valid derivation name from a potentially invalid one. + + Type: sanitizeDerivationName :: String -> String + + Example: + sanitizeDerivationName "../hello.bar # foo" + => "-hello.bar-foo" + sanitizeDerivationName "" + => "unknown" + sanitizeDerivationName pkgs.hello + => "-nix-store-2g75chlbpxlrqn15zlby2dfh8hr9qwbk-hello-2.10" + */ + sanitizeDerivationName = string: lib.pipe string [ + # Get rid of string context. This is safe under the assumption that the + # resulting string is only used as a derivation name + builtins.unsafeDiscardStringContext + # Strip all leading "." + (x: builtins.elemAt (builtins.match "\\.*(.*)" x) 0) + # Split out all invalid characters + # https://github.com/NixOS/nix/blob/2.3.2/src/libstore/store-api.cc#L85-L112 + # https://github.com/NixOS/nix/blob/2242be83c61788b9c0736a92bb0b5c7bbfc40803/nix-rust/src/store/path.rs#L100-L125 + (builtins.split "[^[:alnum:]+._?=-]+") + # Replace invalid character ranges with a "-" + (concatMapStrings (s: if lib.isList s then "-" else s)) + # Limit to 211 characters (minus 4 chars for ".drv") + (x: substring (lib.max (stringLength x - 207) 0) (-1) x) + # If the result is empty, replace it with "unknown" + (x: if stringLength x == 0 then "unknown" else x) + ]; + } diff --git a/lib/systems/default.nix b/lib/systems/default.nix index 4ca932d1792..210674cc639 100644 --- a/lib/systems/default.nix +++ b/lib/systems/default.nix @@ -65,6 +65,7 @@ rec { freebsd = "FreeBSD"; openbsd = "OpenBSD"; wasi = "Wasi"; + genode = "Genode"; }.${final.parsed.kernel.name} or null; # uname -p diff --git a/lib/systems/doubles.nix b/lib/systems/doubles.nix index 96e602d0e16..a839b3d3d57 100644 --- a/lib/systems/doubles.nix +++ b/lib/systems/doubles.nix @@ -26,9 +26,17 @@ let "riscv32-linux" "riscv64-linux" - "aarch64-none" "avr-none" "arm-none" "i686-none" "x86_64-none" "powerpc-none" "msp430-none" "riscv64-none" "riscv32-none" "vc4-none" + "arm-none" "armv6l-none" "aarch64-none" + "avr-none" + "i686-none" "x86_64-none" + "powerpc-none" + "msp430-none" + "riscv64-none" "riscv32-none" + "vc4-none" "js-ghcjs" + + "aarch64-genode" "x86_64-genode" ]; allParsed = map parse.mkSystemFromString all; @@ -62,6 +70,7 @@ in { unix = filterDoubles predicates.isUnix; wasi = filterDoubles predicates.isWasi; windows = filterDoubles predicates.isWindows; + genode = filterDoubles predicates.isGenode; embedded = filterDoubles predicates.isNone; diff --git a/lib/systems/inspect.nix b/lib/systems/inspect.nix index 01dcf0787df..90a1fb6d80c 100644 --- a/lib/systems/inspect.nix +++ b/lib/systems/inspect.nix @@ -47,6 +47,7 @@ rec { isMinGW = { kernel = kernels.windows; abi = abis.gnu; }; isWasi = { kernel = kernels.wasi; }; isGhcjs = { kernel = kernels.ghcjs; }; + isGenode = { kernel = kernels.genode; }; isNone = { kernel = kernels.none; }; isAndroid = [ { abi = abis.android; } { abi = abis.androideabi; } ]; diff --git a/lib/systems/parse.nix b/lib/systems/parse.nix index 6a02dbb5152..648e7c27024 100644 --- a/lib/systems/parse.nix +++ b/lib/systems/parse.nix @@ -279,6 +279,7 @@ rec { wasi = { execFormat = wasm; families = { }; }; windows = { execFormat = pe; families = { }; }; ghcjs = { execFormat = unknown; families = { }; }; + genode = { execFormat = elf; families = { }; }; } // { # aliases # 'darwin' is the kernel for all of them. We choose macOS by default. darwin = kernels.macos; @@ -395,6 +396,8 @@ rec { then { cpu = elemAt l 0; vendor = "unknown"; kernel = elemAt l 1; abi = elemAt l 2; } else if (elemAt l 2 == "ghcjs") then { cpu = elemAt l 0; vendor = "unknown"; kernel = elemAt l 2; } + else if hasPrefix "genode" (elemAt l 2) + then { cpu = elemAt l 0; vendor = elemAt l 1; kernel = elemAt l 2; } else throw "Target specification with 3 components is ambiguous"; "4" = { cpu = elemAt l 0; vendor = elemAt l 1; kernel = elemAt l 2; abi = elemAt l 3; }; }.${toString (length l)} diff --git a/lib/tests/maintainers.nix b/lib/tests/maintainers.nix new file mode 100644 index 00000000000..d3ed398c80a --- /dev/null +++ b/lib/tests/maintainers.nix @@ -0,0 +1,76 @@ +# to run these tests (and the others) +# nix-build nixpkgs/lib/tests/release.nix +{ # The pkgs used for dependencies for the testing itself + pkgs +, lib +}: + +let + inherit (lib) types; + + maintainerModule = { config, ... }: { + options = { + name = lib.mkOption { + type = types.str; + }; + email = lib.mkOption { + type = types.str; + }; + github = lib.mkOption { + type = types.nullOr types.str; + default = null; + }; + githubId = lib.mkOption { + type = types.nullOr types.ints.unsigned; + default = null; + }; + keys = lib.mkOption { + type = types.listOf (types.submodule { + options.longkeyid = lib.mkOption { type = types.str; }; + options.fingerprint = lib.mkOption { type = types.str; }; + }); + default = []; + }; + }; + }; + + checkMaintainer = handle: uncheckedAttrs: + let + prefix = [ "lib" "maintainers" handle ]; + checkedAttrs = (lib.modules.evalModules { + inherit prefix; + modules = [ + maintainerModule + { + _file = toString ../../maintainers/maintainer-list.nix; + config = uncheckedAttrs; + } + ]; + }).config; + + checkGithubId = lib.optional (checkedAttrs.github != null && checkedAttrs.githubId == null) '' + echo ${lib.escapeShellArg (lib.showOption prefix)}': If `github` is specified, `githubId` must be too.' + # Calling this too often would hit non-authenticated API limits, but this + # shouldn't happen since such errors will get fixed rather quickly + info=$(curl -sS https://api.github.com/users/${checkedAttrs.github}) + id=$(jq -r '.id' <<< "$info") + echo "The GitHub ID for GitHub user ${checkedAttrs.github} is $id:" + echo -e " githubId = $id;\n" + ''; + in lib.deepSeq checkedAttrs checkGithubId; + + missingGithubIds = lib.concatLists (lib.mapAttrsToList checkMaintainer lib.maintainers); + + success = pkgs.runCommandNoCC "checked-maintainers-success" {} ">$out"; + + failure = pkgs.runCommandNoCC "checked-maintainers-failure" { + nativeBuildInputs = [ pkgs.curl pkgs.jq ]; + outputHash = "sha256:${lib.fakeSha256}"; + outputHAlgo = "sha256"; + outputHashMode = "flat"; + SSL_CERT_FILE = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"; + } '' + ${lib.concatStringsSep "\n" missingGithubIds} + exit 1 + ''; +in if missingGithubIds == [] then success else failure diff --git a/lib/tests/misc.nix b/lib/tests/misc.nix index 739c5d5fe15..36ddd186d7b 100644 --- a/lib/tests/misc.nix +++ b/lib/tests/misc.nix @@ -3,6 +3,23 @@ # if the resulting list is empty, all tests passed with import ../default.nix; +let + + testSanitizeDerivationName = { name, expected }: + let + drv = derivation { + name = strings.sanitizeDerivationName name; + builder = "x"; + system = "x"; + }; + in { + # Evaluate the derivation so an invalid name would be caught + expr = builtins.seq drv.drvPath drv.name; + inherit expected; + }; + +in + runTests { @@ -490,4 +507,29 @@ runTests { expected = "'-X' 'PUT' '--data' '{\"id\":0}' '--retry' '3' '--url' 'https://example.com/foo' '--url' 'https://example.com/bar' '--verbose'"; }; + + testSanitizeDerivationNameLeadingDots = testSanitizeDerivationName { + name = "..foo"; + expected = "foo"; + }; + + testSanitizeDerivationNameAscii = testSanitizeDerivationName { + name = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~"; + expected = "-+--.-0123456789-=-?-ABCDEFGHIJKLMNOPQRSTUVWXYZ-_-abcdefghijklmnopqrstuvwxyz-"; + }; + + testSanitizeDerivationNameTooLong = testSanitizeDerivationName { + name = "This string is loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"; + expected = "loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"; + }; + + testSanitizeDerivationNameTooLongWithInvalid = testSanitizeDerivationName { + name = "Hello there aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa &&&&&&&&"; + expected = "there-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-"; + }; + + testSanitizeDerivationNameEmpty = testSanitizeDerivationName { + name = ""; + expected = "unknown"; + }; } diff --git a/lib/tests/modules.sh b/lib/tests/modules.sh index 8cd632a439c..6258244457a 100755 --- a/lib/tests/modules.sh +++ b/lib/tests/modules.sh @@ -3,7 +3,10 @@ # 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. -cd ./modules +# https://stackoverflow.com/a/246128/6605742 +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" + +cd "$DIR"/modules pass=0 fail=0 @@ -185,6 +188,14 @@ checkConfigError 'The option .* defined in .* does not exist' config.enable ./di # Check that imports can depend on derivations 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 + # 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 @@ -194,6 +205,11 @@ checkConfigOutput "true" config.conditionalWorks ./declare-attrsOf.nix ./attrsOf 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 +checkConfigError 'The option value .* in .* is not of type .*' \ + config.value ./declare-int-unsigned-value.nix ./define-value-list.nix ./define-value-int-positive.nix + cat < ( # License not provided in metadata. unknown => { - licenses => [qw( unknown )], + licenses => [], amb => 1 } ); @@ -278,14 +279,8 @@ sub get_deps { foreach my $n ( $deps->required_modules ) { next if $n eq "perl"; - # Figure out whether the module is a core module by attempting - # to `use` the module in a pure Perl interpreter and checking - # whether it succeeded. Note, $^X is a magic variable holding - # the path to the running Perl interpreter. - if ( system("env -i $^X -M$n -e1 >/dev/null 2>&1") == 0 ) { - DEBUG("skipping Perl-builtin module $n"); - next; - } + my @core = Module::CoreList->find_modules(qr/^$n$/); + next if (@core); my $pkg = module_to_pkg( $cb, $n ); diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix index f98bbeee912..1fed6a4d9bf 100644 --- a/maintainers/team-list.nix +++ b/maintainers/team-list.nix @@ -17,8 +17,50 @@ { lib }: with lib.maintainers; { + acme = { + members = [ + aanderse + andrew-d + arianvp + emily + flokli + m1cr0man + ]; + scope = "Maintain ACME-related packages and modules."; + }; + freedesktop = { members = [ jtojnar worldofpeace ]; scope = "Maintain Freedesktop.org packages for graphical desktop."; }; + + gnome = { + members = [ + hedning + jtojnar + worldofpeace + ]; + scope = "Maintain GNOME desktop environment and platform."; + }; + + php = { + members = [ + aanderse + etu + globin + ma27 + talyz + ]; + scope = "Maintain PHP related packages and extensions."; + }; + + podman = { + members = [ + adisbladis + saschagrunert + vdemeester + zowoq + ]; + scope = "Maintain Podman and CRI-O related packages and modules."; + }; } diff --git a/nixos/doc/manual/configuration/configuration.xml b/nixos/doc/manual/configuration/configuration.xml index 5961209bc13..507d28814ea 100644 --- a/nixos/doc/manual/configuration/configuration.xml +++ b/nixos/doc/manual/configuration/configuration.xml @@ -21,7 +21,6 @@ - diff --git a/nixos/doc/manual/configuration/x-windows.xml b/nixos/doc/manual/configuration/x-windows.xml index 06dd7c8bfb9..110712baf5f 100644 --- a/nixos/doc/manual/configuration/x-windows.xml +++ b/nixos/doc/manual/configuration/x-windows.xml @@ -31,6 +31,7 @@ = true; = true; = true; + = true; diff --git a/nixos/doc/manual/installation/installing-behind-a-proxy.xml b/nixos/doc/manual/installation/installing-behind-a-proxy.xml index 8f9baff44b5..c1ef638e876 100644 --- a/nixos/doc/manual/installation/installing-behind-a-proxy.xml +++ b/nixos/doc/manual/installation/installing-behind-a-proxy.xml @@ -40,7 +40,7 @@ networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; If you are switching networks with different proxy configurations, use the - nesting.clone option in + specialisation option in configuration.nix to switch proxies at runtime. Refer to for more information. diff --git a/nixos/doc/manual/installation/installing.xml b/nixos/doc/manual/installation/installing.xml index 4041b4ad163..673df8f2e4c 100644 --- a/nixos/doc/manual/installation/installing.xml +++ b/nixos/doc/manual/installation/installing.xml @@ -24,8 +24,7 @@ - The NixOS manual is available on virtual console 8 (press Alt+F8 to access) - or by running nixos-help. + The NixOS manual is available by running nixos-help. @@ -42,6 +41,11 @@ neo!) + + If the text is too small to be legible, try setfont ter-132n + to increase the font size. + +
Networking in the installer diff --git a/nixos/doc/manual/installation/upgrading.xml b/nixos/doc/manual/installation/upgrading.xml index 92864cf2557..e5e02aa0752 100644 --- a/nixos/doc/manual/installation/upgrading.xml +++ b/nixos/doc/manual/installation/upgrading.xml @@ -14,7 +14,7 @@ Stable channels, such as nixos-19.09. + xlink:href="https://nixos.org/channels/nixos-20.03">nixos-20.03. 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 from @@ -38,7 +38,7 @@ Small channels, such as nixos-19.09-small + xlink:href="https://nixos.org/channels/nixos-20.03-small">nixos-20.03-small or nixos-unstable-small. @@ -63,8 +63,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 19.09 ISO, you will be subscribed to the - nixos-19.09 channel. To see which NixOS channel you’re + installed from a 20.03 ISO, you will be subscribed to the + nixos-20.03 channel. To see which NixOS channel you’re subscribed to, run the following as root: # nix-channel --list | grep nixos @@ -75,13 +75,13 @@ nixos https://nixos.org/channels/nixos-unstable # nix-channel --add https://nixos.org/channels/channel-name nixos (Be sure to include the nixos parameter at the end.) For - instance, to use the NixOS 19.09 stable channel: + instance, to use the NixOS 20.03 stable channel: -# nix-channel --add https://nixos.org/channels/nixos-19.09 nixos +# nix-channel --add https://nixos.org/channels/nixos-20.03 nixos If you have a server, you may want to use the “small” channel instead: -# nix-channel --add https://nixos.org/channels/nixos-19.09-small nixos +# nix-channel --add https://nixos.org/channels/nixos-20.03-small nixos And if you want to live on the bleeding edge: @@ -132,7 +132,7 @@ nixos https://nixos.org/channels/nixos-unstable kernel, initrd or kernel modules. You can also specify a channel explicitly, e.g. - = https://nixos.org/channels/nixos-19.09; + = https://nixos.org/channels/nixos-20.03;
diff --git a/nixos/doc/manual/release-notes/rl-2003.xml b/nixos/doc/manual/release-notes/rl-2003.xml index 918906d27e7..393a9286ca4 100644 --- a/nixos/doc/manual/release-notes/rl-2003.xml +++ b/nixos/doc/manual/release-notes/rl-2003.xml @@ -3,7 +3,7 @@ xmlns:xi="http://www.w3.org/2001/XInclude" version="5.0" xml:id="sec-release-20.03"> - Release 20.03 (“Markhor”, 2020.03/??) + Release 20.03 (“Markhor”, 2020.04/20)
+ + Core version changes: + gcc: 8.3.0 -> 9.2.0 + glibc: 2.27 -> 2.30 + linux: 4.19 -> 5.4 + mesa: 19.1.5 -> 19.3.3 + openssl: 1.0.2u -> 1.1.1d + + + Desktop version changes: + plasma5: 5.16.5 -> 5.17.5 + kdeApplications: 19.08.2 -> 19.12.3 + gnome3: 3.32 -> 3.34 + pantheon: 5.0 -> 5.1.3 + Linux kernel is updated to branch 5.4 by default (from 4.19). - Users of Intel GPUs may prefer to explicitly set branch to 4.19 to avoid some regressions. - boot.kernelPackages = pkgs.linuxPackages_4_19; @@ -43,6 +56,24 @@ quirk in the boot menu. + + + GNOME 3 has been upgraded to 3.34. Please take a look at their + Release Notes + for details. + + + + + If you enable the Pantheon Desktop Manager via + , we now default to also use + + Pantheon's newly designed greeter + . + Contrary to NixOS's usual update policy, Pantheon will receive updates during the cycle of + NixOS 20.03 when backwards compatible. + + By default zfs pools will now be trimmed on a weekly basis. @@ -75,6 +106,24 @@ services.xserver.displayManager.defaultSession = "xfce+icewm"; + + + The testing driver implementation in NixOS is now in Python make-test-python.nix. + This was done by Jacek Galowicz (@tfc), and with the + collaboration of Julian Stecklina (@blitz) and + Jana Traue (@jtraue). All documentation has been updated to use this + testing driver, and a vast majority of the 286 tests in NixOS were ported to python driver. In 20.09 the Perl driver implementation, + make-test.nix, is slated for removal. This should give users of the NixOS integration framework + a transitory period to rewrite their tests to use the Python implementation. Users of the Perl driver will see + this warning everytime they use it: + +$ warning: Perl VM tests are deprecated and will be removed for 20.09. +Please update your tests to use the python test driver. +See https://github.com/NixOS/nixpkgs/pull/71684 for details. + + API compatibility is planned to be kept for at least the next release with the perl driver. + +
@@ -110,6 +159,241 @@ services.xserver.displayManager.defaultSession = "xfce+icewm"; It was created so Geary could function properly outside of GNOME. + + + ./config/console.nix + + + + + ./hardware/brillo.nix + + + + + ./hardware/tuxedo-keyboard.nix + + + + + ./programs/bandwhich.nix + + + + + ./programs/bash-my-aws.nix + + + + + ./programs/liboping.nix + + + + + ./programs/traceroute.nix + + + + + ./services/backup/sanoid.nix + + + + + ./services/backup/syncoid.nix + + + + + ./services/backup/zfs-replication.nix + + + + + ./services/continuous-integration/buildkite-agents.nix + + + + + ./services/databases/victoriametrics.nix + + + + + ./services/desktops/gnome3/gnome-initial-setup.nix + + + + + ./services/desktops/neard.nix + + + + + ./services/games/openarena.nix + + + + + ./services/hardware/fancontrol.nix + + + + + ./services/mail/sympa.nix + + + + + ./services/misc/freeswitch.nix + + + + + ./services/misc/mame.nix + + + + + ./services/monitoring/do-agent.nix + + + + + ./services/monitoring/prometheus/xmpp-alerts.nix + + + + + ./services/network-filesystems/orangefs/server.nix + + + + + ./services/network-filesystems/orangefs/client.nix + + + + + ./services/networking/3proxy.nix + + + + + ./services/networking/corerad.nix + + + + + ./services/networking/go-shadowsocks2.nix + + + + + ./services/networking/ntp/openntpd.nix + + + + + ./services/networking/shorewall.nix + + + + + ./services/networking/shorewall6.nix + + + + + ./services/networking/spacecookie.nix + + + + + ./services/networking/trickster.nix + + + + + ./services/networking/v2ray.nix + + + + + ./services/networking/xandikos.nix + + + + + ./services/networking/yggdrasil.nix + + + + + ./services/web-apps/dokuwiki.nix + + + + + ./services/web-apps/gotify-server.nix + + + + + ./services/web-apps/grocy.nix + + + + + ./services/web-apps/ihatemoney + + + + + ./services/web-apps/moinmoin.nix + + + + + ./services/web-apps/trac.nix + + + + + ./services/web-apps/trilium.nix + + + + + ./services/web-apps/shiori.nix + + + + + ./services/web-servers/ttyd.nix + + + + + ./services/x11/picom.nix + + + + + ./services/x11/hardware/digimend.nix + + + + + ./services/x11/imwheel.nix + + + + + ./virtualisation/cri-o.nix + + @@ -127,6 +411,17 @@ services.xserver.displayManager.defaultSession = "xfce+icewm"; + + + The dhcpcd package + does not request IPv4 addresses for tap and bridge interfaces anymore by default. + In order to still get an address on a bridge interface, one has to disable + networking.useDHCP and explicitly enable + networking.interfaces.<name>.useDHCP on + every interface, that should get an address via DHCP. This way, dhcpcd + is configured in an explicit way about which interface to run on. + + GnuPG is now built without support for a graphical passphrase entry @@ -196,10 +491,10 @@ services.xserver.displayManager.defaultSession = "xfce+icewm"; - There is now only one Xfce package-set and module. This means attributes, xfce4-14 - xfce4-12, and xfceUnstable all now point to the latest Xfce 4.14 - packages. And in future NixOS releases will be the latest released version of Xfce available at the - time during the releases development (if viable). + There is now only one Xfce package-set and module. This means that attributes xfce4-14 + and xfceUnstable all now point to the latest Xfce 4.14 + packages. And in the future NixOS releases will be the latest released version of Xfce available at the + time of the release's development (if viable). @@ -235,7 +530,7 @@ services.xserver.displayManager.defaultSession = "xfce+icewm"; The buildRustCrate infrastructure now produces lib outputs in addition to the out output. - This has led to drastically reduced closed sizes for some rust crates since development dependencies are now in the lib output. + This has led to drastically reduced closure sizes for some rust crates since development dependencies are now in the lib output. @@ -603,6 +898,25 @@ auth required pam_succeed_if.so uid >= 1000 quiet The module has been removed as it used the deprecated version of dnscrypt-proxy. We've added to use the supported version. + This module supports configuration via the Nix attribute set + , or by passing a TOML configuration file via + . + +# Example configuration: +services.dnscrypt-proxy2.enable = true; +services.dnscrypt-proxy2.settings = { + listen_addresses = [ "127.0.0.1:43" ]; + sources.public-resolvers = { + urls = [ "https://download.dnscrypt.info/resolvers-list/v2/public-resolvers.md" ]; + cache_file = "public-resolvers.md"; + minisign_key = "RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3"; + refresh_delay = 72; + }; +}; + +services.dnsmasq.enable = true; +services.dnsmasq.servers = [ "127.0.0.1#43" ]; + @@ -619,6 +933,15 @@ auth required pam_succeed_if.so uid >= 1000 quiet release notes. + + + Haskell env and shellFor dev shell environments now organize dependencies the same way as regular builds. + In particular, rather than receiving all the different lists of dependencies mashed together as one big list, and then partitioning into Haskell and non-Hakell dependencies, they work from the original many different dependency parameters and don't need to algorithmically partition anything. + + + This means that if you incorrectly categorize a dependency, e.g. non-Haskell library dependency as a buildDepends or run-time Haskell dependency as a setupDepends, whereas things would have worked before they may not work now. + + The gcc-snapshot-package has been removed. It's marked as broken for >2 years and used to point @@ -641,6 +964,128 @@ auth required pam_succeed_if.so uid >= 1000 quiet The previous behavior can be restored by setting config.riot-web.conf = { disable_guests = false; piwik = true; }. + + + Stand-alone usage of Upower now requires + instead of just installing into + . + + + + + nextcloud has been updated to v18.0.2. This means + that users from NixOS 19.09 can't upgrade directly since you can only move one version + forward and 19.09 uses v16.0.8. + + + To provide a safe upgrade-path and to circumvent similar issues in the future, the following + measures were taken: + + + + The pkgs.nextcloud-attribute has been removed and replaced with + versioned attributes (currently pkgs.nextcloud17 and + pkgs.nextcloud18). With this change major-releases can be backported + without breaking stuff and to make upgrade-paths easier. + + + + + Existing setups will be detected using + system.stateVersion: by default, + nextcloud17 will be used, but will raise a warning which notes + that after that deploy it's recommended to update to the latest stable version + (nextcloud18) by declaring the newly introduced setting + services.nextcloud.package. + + + + + Users with an overlay (e.g. to use nextcloud at version + v18 on 19.09) will get an evaluation error + by default. This is done to ensure that our + package-option doesn't select an + older version by accident. It's recommended to use pkgs.nextcloud18 + or to set package to + pkgs.nextcloud explicitly. + + + + + + + Please note that if you're coming from 19.03 or older, you have + to manually upgrade to 19.09 first to upgrade your server + to Nextcloud v16. + + + + + + Hydra has gained a massive performance improvement due to + some database schema + changes by adding several IDs and better indexing. However, it's necessary + to upgrade Hydra in multiple steps: + + + + At first, an older version of Hydra needs to be deployed which adds those + (nullable) columns. When having set stateVersion + to a value older than 20.03, this package will be selected + by default from the module when upgrading. Otherwise, the package can be deployed using + the following config: +{ pkgs, ... }: { + services.hydra.package = pkgs.hydra-migration; +} + + + + + Automatically fill the newly added ID columns on the server by running the following + command: + +$ hydra-backfill-ids + + + Please note that this process can take a while depending on your database-size! + + + + + + Deploy a newer version of Hydra to activate the DB optimizations. This can be done by + using hydra-unstable. This package already includes + flake-support and is + therefore compiled against pkgs.nixFlakes. + + + If your stateVersion is set to + 20.03 or greater, hydra-unstable will be used + automatically! This will break your setup if you didn't run the migration. + + + Please note that Hydra is currently not available with nixStable + as this doesn't compile anymore. + + + + + + pkgs.hydra has been removed to ensure a graceful database-migration + using the dedicated package-attributes. If you still have pkgs.hydra + defined in e.g. an overlay, an assertion error will be thrown. To circumvent this, + you need to set to pkgs.hydra + explicitly and make sure you know what you're doing! + + + + + + + The TokuDB storage engine will be disabled in mariadb 10.5. It is recommended to switch + to RocksDB. See also TokuDB. + + @@ -658,7 +1103,8 @@ auth required pam_succeed_if.so uid >= 1000 quiet The nginx web server previously started its master process as root - privileged, then ran worker processes as a less privileged identity user. + privileged, then ran worker processes as a less privileged identity user + (the nginx user). This was changed to start all of nginx as a less privileged user (defined by services.nginx.user and services.nginx.group). As a consequence, all files that @@ -666,6 +1112,13 @@ auth required pam_succeed_if.so uid >= 1000 quiet certificates and keys, etc.) must now be readable by this less privileged user/group. + + To continue to use the old approach, you can configure: + +services.nginx.appendConfig = let cfg = config.services.nginx; in ''user ${cfg.user} ${cfg.group};''; +systemd.services.nginx.serviceConfig.User = lib.mkForce "root"; + + @@ -692,9 +1145,11 @@ auth required pam_succeed_if.so uid >= 1000 quiet As well as this, the options security.acme.acceptTerms and either security.acme.email or security.acme.certs.<name>.email must be set in order to use the ACME module. - Certificates will be regenerated anew on the next renewal date. The credentials for simp-le are - preserved and thus it is possible to roll back to previous versions without breaking certificate - generation. + Certificates will be regenerated on activation, no account or certificate will be migrated from simp-le. + In particular private keys will not be preserved. However, the credentials for simp-le are preserved and + thus it is possible to roll back to previous versions without breaking certificate generation. + Note also that in contrary to simp-le a new private key is recreated at each renewal by default, which can + have consequences if you embed your public key in apps. @@ -705,13 +1160,84 @@ auth required pam_succeed_if.so uid >= 1000 quiet - Predicatbly named network-interfaces get renamed in stage-1. This means that it's possible - to use the proper interface name for e.g. dropbear-setups. + Predictably named network interfaces get renamed in stage-1. This means that it is possible + to use the proper interface name for e.g. Dropbear setups. For further reference, please read #68953 or the corresponding discourse thread. + + + The matrix-synapse-package has been updated to + v1.11.1. + Due to stricter requirements + for database configuration when using postgresql, the automated database setup + of the module has been removed to avoid any further edge-cases. + + + matrix-synapse expects postgresql-databases to have the options + LC_COLLATE and LC_CTYPE set to + 'C' which basically + instructs postgresql to ignore any locale-based preferences. + + + Depending on your setup, you need to incorporate one of the following changes in your setup to + upgrade to 20.03: + + If you use sqlite3 you don't need to do anything. + If you use postgresql on a different server, you don't need + to change anything as well since this module was never designed to configure remote databases. + + If you use postgresql and configured your synapse initially on + 19.09 or older, you simply need to enable postgresql-support + explicitly: +{ ... }: { + services.matrix-synapse = { + enable = true; + /* and all the other config you've defined here */ + }; + services.postgresql.enable = true; +} + + If you deploy a fresh matrix-synapse, you need to configure + the database yourself (e.g. by using the + services.postgresql.initialScript + option). An example for this can be found in the + documentation of the Matrix module. + + If you initially deployed your matrix-synapse on + nixos-unstable after the 19.09-release, + your database is misconfigured due to a regression in NixOS. For now, matrix-synapse will + startup with a warning, but it's recommended to reconfigure the database to set the values + LC_COLLATE and LC_CTYPE to + 'C'. + + + + + + + The systemd.network.links option is now respected + even when systemd-networkd is disabled. + This mirrors the behaviour of systemd - It's udev that parses .link files, + not systemd-networkd. + + + + + mongodb has been updated to version 3.4.24. + + + Please note that mongodb has been relicensed under their own + + sspl-license. Since it's not entirely free and not OSI-approved, + it's listed as non-free. This means that Hydra doesn't provide prebuilt + mongodb-packages and needs to be built locally. + + + + diff --git a/nixos/doc/manual/release-notes/rl-2009.xml b/nixos/doc/manual/release-notes/rl-2009.xml index 72474e5dbd4..78b8eee47ef 100644 --- a/nixos/doc/manual/release-notes/rl-2009.xml +++ b/nixos/doc/manual/release-notes/rl-2009.xml @@ -23,6 +23,14 @@ Support is planned until the end of April 2021, handing over to 21.03. + + GNOME desktop environment was upgraded to 3.36, see its release notes. + + + + We now distribute a GNOME ISO. + + PHP now defaults to PHP 7.4, updated from 7.3. @@ -37,6 +45,16 @@ make use of these new options instead. + + + There is a new module for Podman(virtualisation.podman), a drop-in replacement for the Docker command line. + + + + + The new virtualisation.containers module manages configuration shared by the CRI-O and Podman modules. + + @@ -86,6 +104,213 @@ } + + + The supybot module now uses /var/lib/supybot + as its default stateDir path if stateVersion + is 20.09 or higher. It also enables number of + systemd sandboxing options + which may possibly interfere with some plugins. If this is the case you can disable the options through attributes in + . + + + + + The security.duosec.skey option, which stored a secret in the + nix store, has been replaced by a new + security.duosec.secretKeyFile + option for better security. + + + security.duosec.ikey has been renamed to + security.duosec.integrationKey. + + + + + The initrd SSH support now uses OpenSSH rather than Dropbear to + allow the use of Ed25519 keys and other OpenSSH-specific + functionality. Host keys must now be in the OpenSSH format, and at + least one pre-generated key must be specified. + + + If you used the + options, you'll get an error explaining how to convert your host + keys and migrate to the new + option. + Otherwise, if you don't have any host keys set, you'll need to + generate some; see the option + documentation for instructions. + + + + + Since this release there's an easy way to customize your PHP + install to get a much smaller base PHP with only wanted + extensions enabled. See the following snippet installing a + smaller PHP with the extensions imagick, + opcache, pdo and + pdo_mysql loaded: + + +environment.systemPackages = [ + (pkgs.php.withExtensions + ({ all, ... }: with all; [ + imagick + opcache + pdo + pdo_mysql + ]) + ) +]; + + The default php attribute hasn't lost any + extensions. The opcache extension has been + added. + + All upstream PHP extensions are available under ]]>. + + + All PHP config flags have been removed for + the following reasons: + + + + + The updated php attribute is now easily + customizable to your liking by using + php.withExtensions or + php.buildEnv instead of writing config files + or changing configure flags. + + + + + The remaining configuration flags can now be set directly on + the php attribute. For example, instead of + + +php.override { + config.php.embed = true; + config.php.apxs2 = false; +} + + + you should now write + + +php.override { + embedSupport = true; + apxs2Support = false; +} + + + + + + + + + + Gollum received a major update to version 5.x and you may have to change + some links in your wiki when migrating from gollum 4.x. More information + can be found + here. + + + + + Deluge 2.x was added and is used as default for new NixOS + installations where stateVersion is >= 20.09. If you are upgrading from a previous + NixOS version, you can set service.deluge.package = pkgs.deluge-2_x + to upgrade to Deluge 2.x and migrate the state to the new format. + Be aware that backwards state migrations are not supported by Deluge. + + + + + + The NixOS options nesting.clone and + nesting.children have been deleted, and + replaced with named + configurations. + + + + Replace a nesting.clone entry with: + +{ +specialisation.example-sub-configuration = { + configuration = { + ... + }; +}; + + + + Replace a nesting.children entry with: + +{ +specialisation.example-sub-configuration = { + inheritParentConfig = false; + configuration = { + ... + }; +}; + + + + To switch to a specialised configuration at runtime you need to + run: + +# sudo /run/current-system/specialisation/example-sub-configuration/bin/switch-to-configuration test + + Before you would have used: + +# sudo /run/current-system/fine-tune/child-1/bin/switch-to-configuration test + + + + + + The httpd web server previously started its main process as root + privileged, then ran worker processes as a less privileged identity user. + This was changed to start all of httpd as a less privileged user (defined by + and + ). As a consequence, all files that + are needed for httpd to run (included configuration fragments, SSL + certificates and keys, etc.) must now be readable by this less privileged + user/group. + + + The default value for + has been changed from prefork to event. Along with + this change the default value for + services.httpd.virtualHosts.<name>.http2 + has been set to true. + + + + + The systemd-networkd option + systemd.network.networks.<name>.dhcp.CriticalConnection + has been removed following upstream systemd's deprecation of the same. It is recommended to use + systemd.network.networks.<name>.networkConfig.KeepConfiguration instead. + See systemd.network + 5 for details. + + + + + The systemd-networkd option + systemd.network.networks._name_.dhcpConfig + has been renamed to + + following upstream systemd's documentation change. + See systemd.network + 5 for details. + + @@ -98,7 +323,20 @@ - + + was updated from + 1000 to 10000 to follow the new + upstream systemd default. + + + + + The notmuch package move its emacs-related binaries and + emacs lisp files to a separate output. They're not part + of the default out output anymore - if you relied on the + notmuch-emacs-mua binary or the emacs lisp files, access them via + the notmuch.emacs output. + diff --git a/nixos/lib/eval-config.nix b/nixos/lib/eval-config.nix index 9892d6f160f..c8824c2690d 100644 --- a/nixos/lib/eval-config.nix +++ b/nixos/lib/eval-config.nix @@ -61,7 +61,7 @@ in rec { args = extraArgs; specialArgs = { modulesPath = builtins.toString ../modules; } // specialArgs; - }) config options; + }) config options _module; # These are the extra arguments passed to every module. In # particular, Nixpkgs is passed through the "pkgs" argument. @@ -69,5 +69,5 @@ in rec { inherit baseModules extraModules modules; }; - inherit (config._module.args) pkgs; + inherit (_module.args) pkgs; } diff --git a/nixos/lib/make-iso9660-image.sh b/nixos/lib/make-iso9660-image.sh index b7b1ab52a63..d4633d2c8d1 100644 --- a/nixos/lib/make-iso9660-image.sh +++ b/nixos/lib/make-iso9660-image.sh @@ -107,6 +107,7 @@ xorriso="xorriso -publisher nixos -graft-points -full-iso9660-filenames + -joliet ${isoBootFlags} ${usbBootFlags} ${efiBootFlags} diff --git a/nixos/lib/make-options-doc/default.nix b/nixos/lib/make-options-doc/default.nix index eee8f612410..772b7d3add9 100644 --- a/nixos/lib/make-options-doc/default.nix +++ b/nixos/lib/make-options-doc/default.nix @@ -86,7 +86,7 @@ let optionsList = lib.sort optionLess optionsListDesc; # Convert the list of options into an XML file. - optionsXML = pkgs.writeText "options.xml" (builtins.toXML optionsList); + optionsXML = builtins.toFile "options.xml" (builtins.toXML optionsList); optionsNix = builtins.listToAttrs (map (o: { name = o.name; value = removeAttrs o ["name" "visible" "internal"]; }) optionsList); @@ -133,6 +133,7 @@ in { optionsJSON = pkgs.runCommand "options.json" { meta.description = "List of NixOS options in JSON format"; + buildInputs = [ pkgs.brotli ]; } '' # Export list of options in different format. @@ -141,8 +142,11 @@ in { cp ${builtins.toFile "options.json" (builtins.unsafeDiscardStringContext (builtins.toJSON optionsNix))} $dst/options.json + brotli -9 < $dst/options.json > $dst/options.json.br + mkdir -p $out/nix-support echo "file json $dst/options.json" >> $out/nix-support/hydra-build-products + echo "file json-br $dst/options.json.br" >> $out/nix-support/hydra-build-products ''; # */ optionsDocBook = pkgs.runCommand "options-docbook.xml" {} '' diff --git a/nixos/lib/test-driver/test-driver.py b/nixos/lib/test-driver/test-driver.py index c27947bc610..d96600b3c99 100644 --- a/nixos/lib/test-driver/test-driver.py +++ b/nixos/lib/test-driver/test-driver.py @@ -6,6 +6,7 @@ from xml.sax.saxutils import XMLGenerator import _thread import atexit import base64 +import codecs import os import pathlib import ptpython.repl @@ -84,8 +85,6 @@ CHAR_TO_KEY = { } # Forward references -nr_tests: int -failed_tests: list log: "Logger" machines: "List[Machine]" @@ -101,10 +100,12 @@ def make_command(args: list) -> str: def create_vlan(vlan_nr: str) -> Tuple[str, str, "subprocess.Popen[bytes]", Any]: global log log.log("starting VDE switch for network {}".format(vlan_nr)) - vde_socket = os.path.abspath("./vde{}.ctl".format(vlan_nr)) + vde_socket = tempfile.mkdtemp( + prefix="nixos-test-vde-", suffix="-vde{}.ctl".format(vlan_nr) + ) pty_master, pty_slave = pty.openpty() vde_process = subprocess.Popen( - ["vde_switch", "-s", vde_socket, "--dirmode", "0777"], + ["vde_switch", "-s", vde_socket, "--dirmode", "0700"], bufsize=1, stdin=pty_slave, stdout=subprocess.PIPE, @@ -115,6 +116,7 @@ def create_vlan(vlan_nr: str) -> Tuple[str, str, "subprocess.Popen[bytes]", Any] fd.write("version\n") # TODO: perl version checks if this can be read from # an if not, dies. we could hang here forever. Fix it. + assert vde_process.stdout is not None vde_process.stdout.readline() if not os.path.exists(os.path.join(vde_socket, "ctl")): raise Exception("cannot start vde_switch") @@ -139,7 +141,7 @@ def retry(fn: Callable) -> None: class Logger: def __init__(self) -> None: self.logfile = os.environ.get("LOGFILE", "/dev/null") - self.logfile_handle = open(self.logfile, "wb") + self.logfile_handle = codecs.open(self.logfile, "wb") self.xml = XMLGenerator(self.logfile_handle, encoding="utf-8") self.queue: "Queue[Dict[str, str]]" = Queue(1000) @@ -383,7 +385,7 @@ class Machine: if state != require_state: raise Exception( "Expected unit ‘{}’ to to be in state ".format(unit) - + "'active' but it is in state ‘{}’".format(state) + + "'{}' but it is in state ‘{}’".format(require_state, state) ) def execute(self, command: str) -> Tuple[int, str]: @@ -739,6 +741,7 @@ class Machine: self.shell, _ = self.shell_socket.accept() def process_serial_output() -> None: + assert self.process.stdout is not None for _line in self.process.stdout: # Ignore undecodable bytes that may occur in boot menus line = _line.decode(errors="ignore").replace("\r", "").rstrip() @@ -877,33 +880,16 @@ def run_tests() -> None: if machine.is_up(): machine.execute("sync") - if nr_tests != 0: - nr_succeeded = nr_tests - len(failed_tests) - eprint("{} out of {} tests succeeded".format(nr_succeeded, nr_tests)) - if len(failed_tests) > 0: - eprint( - "The following tests have failed:\n - {}".format( - "\n - ".join(failed_tests) - ) - ) - sys.exit(1) - @contextmanager def subtest(name: str) -> Iterator[None]: - global nr_tests - global failed_tests - with log.nested(name): - nr_tests += 1 try: yield return True except Exception as e: - failed_tests.append( - 'Test "{}" failed with error: "{}"'.format(name, str(e)) - ) - log.log("error: {}".format(str(e))) + log.log(f'Test "{name}" failed with error: "{e}"') + raise e return False @@ -923,9 +909,6 @@ if __name__ == "__main__": ] exec("\n".join(machine_eval)) - nr_tests = 0 - failed_tests = [] - @atexit.register def clean_up() -> None: with log.nested("cleaning up"): @@ -936,7 +919,7 @@ if __name__ == "__main__": machine.process.kill() for _, _, process, _ in vde_sockets: - process.kill() + process.terminate() log.close() tic = time.time() diff --git a/nixos/lib/testing/jquery-ui.nix b/nixos/lib/testing/jquery-ui.nix index abd59da2d28..05bd8dc2f94 100644 --- a/nixos/lib/testing/jquery-ui.nix +++ b/nixos/lib/testing/jquery-ui.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = https://jqueryui.com/; + homepage = "https://jqueryui.com/"; description = "A library of JavaScript widgets and effects"; platforms = stdenv.lib.platforms.all; }; diff --git a/nixos/lib/testing/jquery.nix b/nixos/lib/testing/jquery.nix index e272f66a576..732fdb3ba87 100644 --- a/nixos/lib/testing/jquery.nix +++ b/nixos/lib/testing/jquery.nix @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "JavaScript library designed to simplify the client-side scripting of HTML"; - homepage = http://jquery.com/; + homepage = "http://jquery.com/"; license = licenses.mit; platforms = platforms.all; }; diff --git a/nixos/maintainers/scripts/azure-new/.gitignore b/nixos/maintainers/scripts/azure-new/.gitignore new file mode 100644 index 00000000000..26905a86234 --- /dev/null +++ b/nixos/maintainers/scripts/azure-new/.gitignore @@ -0,0 +1 @@ +azure \ No newline at end of file diff --git a/nixos/maintainers/scripts/azure-new/README.md b/nixos/maintainers/scripts/azure-new/README.md new file mode 100644 index 00000000000..20e81c44ce5 --- /dev/null +++ b/nixos/maintainers/scripts/azure-new/README.md @@ -0,0 +1,42 @@ +# azure + +## Demo + +Here's a demo of this being used: https://asciinema.org/a/euXb9dIeUybE3VkstLWLbvhmp + +## Usage + +This is meant to be an example image that you can copy into your own +project and modify to your own needs. Notice that the example image +includes a built-in test user account, which by default uses your +`~/.ssh/id_ed25519.pub` as an `authorized_key`. + +Build and upload the image +```shell +$ ./upload-image.sh ./examples/basic/image.nix + +... ++ attr=azbasic ++ nix-build ./examples/basic/image.nix --out-link azure +/nix/store/qdpzknpskzw30vba92mb24xzll1dqsmd-azure-image +... +95.5 %, 0 Done, 0 Failed, 1 Pending, 0 Skipped, 1 Total, 2-sec Throughput (Mb/s): 932.9565 +... +/subscriptions/aff271ee-e9be-4441-b9bb-42f5af4cbaeb/resourceGroups/nixos-images/providers/Microsoft.Compute/images/azure-image-todo-makethisbetter +``` + +Take the output, boot an Azure VM: + +``` +img="/subscriptions/.../..." # use output from last command +./boot-vm.sh "${img}" +... +=> booted +``` + +## Future Work + +1. If the user specifies a hard-coded user, then the agent could be removed. + Probably has security benefits; definitely has closure-size benefits. + (It's likely the VM will need to be booted with a special flag. See: + https://github.com/Azure/azure-cli/issues/12775 for details.) diff --git a/nixos/maintainers/scripts/azure-new/boot-vm.sh b/nixos/maintainers/scripts/azure-new/boot-vm.sh new file mode 100755 index 00000000000..1ce3a5f9db1 --- /dev/null +++ b/nixos/maintainers/scripts/azure-new/boot-vm.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash +set -euo pipefail +set -x + +image="${1}" +location="westus2" +group="nixos-test-vm" +vm_size="Standard_D2s_v3"; os_size=42; + +# ensure group +az group create --location "westus2" --name "${group}" +group_id="$(az group show --name "${group}" -o tsv --query "[id]")" + +# (optional) identity +if ! az identity show -n "${group}-identity" -g "${group}" &>/dev/stderr; then + az identity create --name "${group}-identity" --resource-group "${group}" +fi + +# (optional) role assignment, to the resource group, bad but not really great alternatives +identity_id="$(az identity show --name "${group}-identity" --resource-group "${group}" -o tsv --query "[id]")" +principal_id="$(az identity show --name "${group}-identity" --resource-group "${group}" -o tsv --query "[principalId]")" +until az role assignment create --assignee "${principal_id}" --role "Owner" --scope "${group_id}"; do sleep 1; done + +# boot vm +az vm create \ + --name "${group}-vm" \ + --resource-group "${group}" \ + --assign-identity "${identity_id}" \ + --size "${vm_size}" \ + --os-disk-size-gb "${os_size}" \ + --image "${image}" \ + --admin-username "${USER}" \ + --location "westus2" \ + --storage-sku "Premium_LRS" \ + --ssh-key-values "$(ssh-add -L)" + diff --git a/nixos/maintainers/scripts/azure-new/common.sh b/nixos/maintainers/scripts/azure-new/common.sh new file mode 100644 index 00000000000..eb87c3e0650 --- /dev/null +++ b/nixos/maintainers/scripts/azure-new/common.sh @@ -0,0 +1,7 @@ +export group="${AZURE_RESOURCE_GROUP:-"azure"}" +export location="${AZURE_LOCATION:-"westus2"}" + +img_file=$(echo azure/*.vhd) +img_name="$(basename "${img_file}")" +img_name="${img_name%".vhd"}" +export img_name="${img_name//[._]/-}" diff --git a/nixos/maintainers/scripts/azure-new/examples/basic/image.nix b/nixos/maintainers/scripts/azure-new/examples/basic/image.nix new file mode 100644 index 00000000000..ad62dcd14a0 --- /dev/null +++ b/nixos/maintainers/scripts/azure-new/examples/basic/image.nix @@ -0,0 +1,10 @@ +let + pkgs = (import ../../../../../../default.nix {}); + machine = import "${pkgs.path}/nixos/lib/eval-config.nix" { + system = "x86_64-linux"; + modules = [ + ({config, ...}: { imports = [ ./system.nix ]; }) + ]; + }; +in + machine.config.system.build.azureImage diff --git a/nixos/maintainers/scripts/azure-new/examples/basic/system.nix b/nixos/maintainers/scripts/azure-new/examples/basic/system.nix new file mode 100644 index 00000000000..855bd3bab71 --- /dev/null +++ b/nixos/maintainers/scripts/azure-new/examples/basic/system.nix @@ -0,0 +1,34 @@ +{ pkgs, modulesPath, ... }: + +let username = "azurenixosuser"; +in +{ + imports = [ + "${modulesPath}/virtualisation/azure-common.nix" + "${modulesPath}/virtualisation/azure-image.nix" + ]; + + ## NOTE: This is just an example of how to hard-code a user. + ## The normal Azure agent IS included and DOES provision a user based + ## on the information passed at VM creation time. + users.users."${username}" = { + isNormalUser = true; + home = "/home/${username}"; + description = "Azure NixOS Test User"; + openssh.authorizedKeys.keys = [ (builtins.readFile ~/.ssh/id_ed25519.pub) ]; + }; + nix.trustedUsers = [ username ]; + + virtualisation.azureImage.diskSize = 2500; + + system.stateVersion = "20.03"; + boot.kernelPackages = pkgs.linuxPackages_latest; + + # test user doesn't have a password + services.openssh.passwordAuthentication = false; + security.sudo.wheelNeedsPassword = false; + + environment.systemPackages = with pkgs; [ + git file htop wget curl + ]; +} diff --git a/nixos/maintainers/scripts/azure-new/shell.nix b/nixos/maintainers/scripts/azure-new/shell.nix new file mode 100644 index 00000000000..592f1bf9056 --- /dev/null +++ b/nixos/maintainers/scripts/azure-new/shell.nix @@ -0,0 +1,13 @@ +with (import ../../../../default.nix {}); +stdenv.mkDerivation { + name = "nixcfg-azure-devenv"; + + nativeBuildInputs = [ + azure-cli + bash + cacert + azure-storage-azcopy + ]; + + AZURE_CONFIG_DIR="/tmp/azure-cli/.azure"; +} diff --git a/nixos/maintainers/scripts/azure-new/upload-image.sh b/nixos/maintainers/scripts/azure-new/upload-image.sh new file mode 100755 index 00000000000..1466dcd1f0a --- /dev/null +++ b/nixos/maintainers/scripts/azure-new/upload-image.sh @@ -0,0 +1,58 @@ +#!/usr/bin/env bash +set -euo pipefail +set -x + +image_nix="${1:-"./examples/basic/image.nix"}" + +nix-build "${image_nix}" --out-link "azure" + +group="nixos-images" +location="westus2" +img_name="nixos-image" +img_file="$(readlink -f ./azure/disk.vhd)" + +if ! az group show -n "${group}" &>/dev/null; then + az group create --name "${group}" --location "${location}" +fi + +# note: the disk access token song/dance is tedious +# but allows us to upload direct to a disk image +# thereby avoid storage accounts (and naming them) entirely! +if ! az disk show -g "${group}" -n "${img_name}" &>/dev/null; then + bytes="$(stat -c %s ${img_file})" + size="30" + az disk create \ + --resource-group "${group}" \ + --name "${img_name}" \ + --for-upload true --upload-size-bytes "${bytes}" + + timeout=$(( 60 * 60 )) # disk access token timeout + sasurl="$(\ + az disk grant-access \ + --access-level Write \ + --resource-group "${group}" \ + --name "${img_name}" \ + --duration-in-seconds ${timeout} \ + | jq -r '.accessSas' + )" + + azcopy copy "${img_file}" "${sasurl}" \ + --blob-type PageBlob + + az disk revoke-access \ + --resource-group "${group}" \ + --name "${img_name}" +fi + +if ! az image show -g "${group}" -n "${img_name}" &>/dev/null; then + diskid="$(az disk show -g "${group}" -n "${img_name}" -o json | jq -r .id)" + + az image create \ + --resource-group "${group}" \ + --name "${img_name}" \ + --source "${diskid}" \ + --os-type "linux" >/dev/null +fi + +imageid="$(az image show -g "${group}" -n "${img_name}" -o json | jq -r .id)" +echo "${imageid}" diff --git a/nixos/maintainers/scripts/ec2/amazon-image.nix b/nixos/maintainers/scripts/ec2/amazon-image.nix index 31e15537179..36f3e7af873 100644 --- a/nixos/maintainers/scripts/ec2/amazon-image.nix +++ b/nixos/maintainers/scripts/ec2/amazon-image.nix @@ -8,10 +8,15 @@ in { imports = [ ../../../modules/virtualisation/amazon-image.nix ]; - # Required to provide good EBS experience, + # Amazon recomments setting this to the highest possible value for a good EBS + # experience, which prior to 4.15 was 255. # https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nvme-ebs-volumes.html#timeout-nvme-ebs-volumes - # TODO change value to 4294967295 when kernel is updated to 4.15 or later - config.boot.kernelParams = [ "nvme_core.io_timeout=255" ]; + config.boot.kernelParams = + let timeout = + if pkgs.lib.versionAtLeast config.boot.kernelPackages.kernel.version "4.15" + then "4294967295" + else "255"; + in [ "nvme_core.io_timeout=${timeout}" ]; options.amazonImage = { name = mkOption { diff --git a/nixos/modules/config/fonts/fontconfig.nix b/nixos/modules/config/fonts/fontconfig.nix index 3bfa1893a8b..6ac64b0ec9c 100644 --- a/nixos/modules/config/fonts/fontconfig.nix +++ b/nixos/modules/config/fonts/fontconfig.nix @@ -45,6 +45,9 @@ let # generate the font cache setting file for a fontconfig version # use latest when no version is passed + # When cross-compiling, we can’t generate the cache, so we skip the + # part. fontconfig still works but is a little slower in + # looking things up. makeCacheConf = { version ? null }: let fcPackage = if version == null @@ -60,11 +63,13 @@ let ${concatStringsSep "\n" (map (font: "${font}") config.fonts.fonts)} + ${optionalString (pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform) '' ${cache} ${optionalString (pkgs.stdenv.isx86_64 && cfg.cache32Bit) '' ${cache32} ''} + ''} ''; diff --git a/nixos/modules/config/fonts/fontdir.nix b/nixos/modules/config/fonts/fontdir.nix index cc70fbf8744..a6aa84ae822 100644 --- a/nixos/modules/config/fonts/fontdir.nix +++ b/nixos/modules/config/fonts/fontdir.nix @@ -25,6 +25,7 @@ in fonts = { enableFontDir = mkOption { + type = types.bool; default = false; description = '' Whether to create a directory with links to all fonts in diff --git a/nixos/modules/config/fonts/ghostscript.nix b/nixos/modules/config/fonts/ghostscript.nix index 1c62a525de9..b1dd81bf2d2 100644 --- a/nixos/modules/config/fonts/ghostscript.nix +++ b/nixos/modules/config/fonts/ghostscript.nix @@ -9,6 +9,7 @@ with lib; fonts = { enableGhostscriptFonts = mkOption { + type = types.bool; default = false; description = '' Whether to add the fonts provided by Ghostscript (such as diff --git a/nixos/modules/config/gtk/gtk-icon-cache.nix b/nixos/modules/config/gtk/gtk-icon-cache.nix index 86a6bfb5af4..7441f4de40e 100644 --- a/nixos/modules/config/gtk/gtk-icon-cache.nix +++ b/nixos/modules/config/gtk/gtk-icon-cache.nix @@ -77,7 +77,7 @@ with lib; if [ -w "$themedir" ]; then rm -f "$themedir"/icon-theme.cache - ${pkgs.gtk3.out}/bin/gtk-update-icon-cache --ignore-theme-index "$themedir" + ${pkgs.buildPackages.gtk3.out}/bin/gtk-update-icon-cache --ignore-theme-index "$themedir" fi done ''; diff --git a/nixos/modules/config/ldap.nix b/nixos/modules/config/ldap.nix index b554f197dc4..4c8b527676b 100644 --- a/nixos/modules/config/ldap.nix +++ b/nixos/modules/config/ldap.nix @@ -88,6 +88,7 @@ in }; useTLS = mkOption { + type = types.bool; default = false; description = '' If enabled, use TLS (encryption) over an LDAP (port 389) @@ -109,6 +110,7 @@ in daemon = { enable = mkOption { + type = types.bool; default = false; description = '' Whether to let the nslcd daemon (nss-pam-ldapd) handle the diff --git a/nixos/modules/config/networking.nix b/nixos/modules/config/networking.nix index dd36696b94d..03944de8249 100644 --- a/nixos/modules/config/networking.nix +++ b/nixos/modules/config/networking.nix @@ -197,7 +197,7 @@ in } // optionalAttrs (pkgs.stdenv.hostPlatform.libc == "glibc") { # /etc/rpc: RPC program numbers. - rpc.source = pkgs.glibc.out + "/etc/rpc"; + rpc.source = pkgs.stdenv.cc.libc.out + "/etc/rpc"; }; networking.proxy.envVars = diff --git a/nixos/modules/config/nsswitch.nix b/nixos/modules/config/nsswitch.nix index 13277fe56e4..77e47a350ec 100644 --- a/nixos/modules/config/nsswitch.nix +++ b/nixos/modules/config/nsswitch.nix @@ -10,35 +10,34 @@ let canLoadExternalModules = config.services.nscd.enable; myhostname = canLoadExternalModules; mymachines = canLoadExternalModules; + # XXX Move these to their respective modules nssmdns = canLoadExternalModules && config.services.avahi.nssmdns; nsswins = canLoadExternalModules && config.services.samba.nsswins; ldap = canLoadExternalModules && (config.users.ldap.enable && config.users.ldap.nsswitch); - sssd = canLoadExternalModules && config.services.sssd.enable; resolved = canLoadExternalModules && config.services.resolved.enable; - googleOsLogin = canLoadExternalModules && config.security.googleOsLogin.enable; - hostArray = [ "files" ] - ++ optional mymachines "mymachines" - ++ optional nssmdns "mdns_minimal [NOTFOUND=return]" - ++ optional nsswins "wins" - ++ optional resolved "resolve [!UNAVAIL=return]" - ++ [ "dns" ] - ++ optional nssmdns "mdns" - ++ optional myhostname "myhostname"; + hostArray = mkMerge [ + (mkBefore [ "files" ]) + (mkIf mymachines [ "mymachines" ]) + (mkIf nssmdns [ "mdns_minimal [NOTFOUND=return]" ]) + (mkIf nsswins [ "wins" ]) + (mkIf resolved [ "resolve [!UNAVAIL=return]" ]) + (mkAfter [ "dns" ]) + (mkIf nssmdns (mkOrder 1501 [ "mdns" ])) # 1501 to ensure it's after dns + (mkIf myhostname (mkOrder 1600 [ "myhostname" ])) # 1600 to ensure it's always the last + ]; - passwdArray = [ "files" ] - ++ optional sssd "sss" - ++ optional ldap "ldap" - ++ optional mymachines "mymachines" - ++ optional googleOsLogin "cache_oslogin oslogin" - ++ [ "systemd" ]; + passwdArray = mkMerge [ + (mkBefore [ "files" ]) + (mkIf ldap [ "ldap" ]) + (mkIf mymachines [ "mymachines" ]) + (mkIf canLoadExternalModules (mkAfter [ "systemd" ])) + ]; - shadowArray = [ "files" ] - ++ optional sssd "sss" - ++ optional ldap "ldap"; - - servicesArray = [ "files" ] - ++ optional sssd "sss"; + shadowArray = mkMerge [ + (mkBefore [ "files" ]) + (mkIf ldap [ "ldap" ]) + ]; in { options = { @@ -61,17 +60,73 @@ in { }; }; - system.nssHosts = mkOption { - type = types.listOf types.str; - default = []; - example = [ "mdns" ]; - description = '' - List of host entries to configure in /etc/nsswitch.conf. - ''; - }; + system.nssDatabases = { + passwd = mkOption { + type = types.listOf types.str; + description = '' + List of passwd entries to configure in /etc/nsswitch.conf. + Note that "files" is always prepended while "systemd" is appended if nscd is enabled. + + This option only takes effect if nscd is enabled. + ''; + default = []; + }; + + group = mkOption { + type = types.listOf types.str; + description = '' + List of group entries to configure in /etc/nsswitch.conf. + + Note that "files" is always prepended while "systemd" is appended if nscd is enabled. + + This option only takes effect if nscd is enabled. + ''; + default = []; + }; + + shadow = mkOption { + type = types.listOf types.str; + description = '' + List of shadow entries to configure in /etc/nsswitch.conf. + + Note that "files" is always prepended. + + This option only takes effect if nscd is enabled. + ''; + default = []; + }; + + hosts = mkOption { + type = types.listOf types.str; + description = '' + List of hosts entries to configure in /etc/nsswitch.conf. + + Note that "files" is always prepended, and "dns" and "myhostname" are always appended. + + This option only takes effect if nscd is enabled. + ''; + default = []; + }; + + services = mkOption { + type = types.listOf types.str; + description = '' + List of services entries to configure in /etc/nsswitch.conf. + + Note that "files" is always prepended. + + This option only takes effect if nscd is enabled. + ''; + default = []; + }; + }; }; + imports = [ + (mkRenamedOptionModule [ "system" "nssHosts" ] [ "system" "nssDatabases" "hosts" ]) + ]; + config = { assertions = [ { @@ -87,30 +142,34 @@ in { ]; # Name Service Switch configuration file. Required by the C - # library. !!! Factor out the mdns stuff. The avahi module - # should define an option used by this module. + # library. environment.etc."nsswitch.conf".text = '' - passwd: ${concatStringsSep " " passwdArray} - group: ${concatStringsSep " " passwdArray} - shadow: ${concatStringsSep " " shadowArray} + passwd: ${concatStringsSep " " config.system.nssDatabases.passwd} + group: ${concatStringsSep " " config.system.nssDatabases.group} + shadow: ${concatStringsSep " " config.system.nssDatabases.shadow} - hosts: ${concatStringsSep " " config.system.nssHosts} + hosts: ${concatStringsSep " " config.system.nssDatabases.hosts} networks: files ethers: files - services: ${concatStringsSep " " servicesArray} + services: ${concatStringsSep " " config.system.nssDatabases.services} protocols: files rpc: files ''; - system.nssHosts = hostArray; + system.nssDatabases = { + passwd = passwdArray; + group = passwdArray; + shadow = shadowArray; + hosts = hostArray; + services = mkBefore [ "files" ]; + }; # Systemd provides nss-myhostname to ensure that our hostname # always resolves to a valid IP address. It returns all locally # configured IP addresses, or ::1 and 127.0.0.2 as # fallbacks. Systemd also provides nss-mymachines to return IP # addresses of local containers. - system.nssModules = (optionals canLoadExternalModules [ config.systemd.package.out ]) - ++ optional googleOsLogin pkgs.google-compute-engine-oslogin.out; + system.nssModules = (optionals canLoadExternalModules [ config.systemd.package.out ]); }; } diff --git a/nixos/modules/config/qt5.nix b/nixos/modules/config/qt5.nix index d9dec74f155..eabba9ad95f 100644 --- a/nixos/modules/config/qt5.nix +++ b/nixos/modules/config/qt5.nix @@ -6,8 +6,8 @@ let cfg = config.qt5; - isQGnome = cfg.platformTheme == "gnome" && cfg.style == "adwaita"; - isQtStyle = cfg.platformTheme == "gtk2" && cfg.style != "adwaita"; + isQGnome = cfg.platformTheme == "gnome" && builtins.elem cfg.style ["adwaita" "adwaita-dark"]; + isQtStyle = cfg.platformTheme == "gtk2" && !(builtins.elem cfg.style ["adwaita" "adwaita-dark"]); packages = if isQGnome then [ pkgs.qgnomeplatform pkgs.adwaita-qt ] else if isQtStyle then [ pkgs.libsForQt5.qtstyleplugins ] @@ -55,6 +55,7 @@ in style = mkOption { type = types.enum [ "adwaita" + "adwaita-dark" "cleanlooks" "gtk2" "motif" @@ -71,6 +72,7 @@ in adwaita + adwaita-dark Use Adwaita Qt style with adwaita diff --git a/nixos/modules/config/vte.nix b/nixos/modules/config/vte.nix index d4a8c926fef..24d32a00fd4 100644 --- a/nixos/modules/config/vte.nix +++ b/nixos/modules/config/vte.nix @@ -16,6 +16,10 @@ in { + meta = { + maintainers = teams.gnome.members; + }; + options = { programs.bash.vteIntegration = mkOption { diff --git a/nixos/modules/config/xdg/autostart.nix b/nixos/modules/config/xdg/autostart.nix index 0ee94fed818..40984cb5ec5 100644 --- a/nixos/modules/config/xdg/autostart.nix +++ b/nixos/modules/config/xdg/autostart.nix @@ -2,19 +2,23 @@ with lib; { + meta = { + maintainers = teams.freedesktop.members; + }; + options = { xdg.autostart.enable = mkOption { type = types.bool; default = true; description = '' - Whether to install files to support the + Whether to install files to support the XDG Autostart specification. ''; }; }; config = mkIf config.xdg.autostart.enable { - environment.pathsToLink = [ + environment.pathsToLink = [ "/etc/xdg/autostart" ]; }; diff --git a/nixos/modules/config/xdg/icons.nix b/nixos/modules/config/xdg/icons.nix index 4677ce090b0..c83fdc251ef 100644 --- a/nixos/modules/config/xdg/icons.nix +++ b/nixos/modules/config/xdg/icons.nix @@ -2,6 +2,10 @@ with lib; { + meta = { + maintainers = teams.freedesktop.members; + }; + options = { xdg.icons.enable = mkOption { type = types.bool; diff --git a/nixos/modules/config/xdg/menus.nix b/nixos/modules/config/xdg/menus.nix index c172692df5d..6735a7a5c43 100644 --- a/nixos/modules/config/xdg/menus.nix +++ b/nixos/modules/config/xdg/menus.nix @@ -2,19 +2,23 @@ with lib; { + meta = { + maintainers = teams.freedesktop.members; + }; + options = { xdg.menus.enable = mkOption { type = types.bool; default = true; description = '' - Whether to install files to support the + Whether to install files to support the XDG Desktop Menu specification. ''; }; }; config = mkIf config.xdg.menus.enable { - environment.pathsToLink = [ + environment.pathsToLink = [ "/share/applications" "/share/desktop-directories" "/etc/xdg/menus" diff --git a/nixos/modules/config/xdg/mime.nix b/nixos/modules/config/xdg/mime.nix index a5374c2b468..4cdb3f30994 100644 --- a/nixos/modules/config/xdg/mime.nix +++ b/nixos/modules/config/xdg/mime.nix @@ -2,6 +2,10 @@ with lib; { + meta = { + maintainers = teams.freedesktop.members; + }; + options = { xdg.mime.enable = mkOption { type = types.bool; diff --git a/nixos/modules/config/xdg/portal.nix b/nixos/modules/config/xdg/portal.nix index 1330a08070c..3c7cd729c60 100644 --- a/nixos/modules/config/xdg/portal.nix +++ b/nixos/modules/config/xdg/portal.nix @@ -7,6 +7,10 @@ with lib; (mkRenamedOptionModule [ "services" "flatpak" "extraPortals" ] [ "xdg" "portal" "extraPortals" ]) ]; + meta = { + maintainers = teams.freedesktop.members; + }; + options.xdg.portal = { enable = mkEnableOption "xdg desktop integration"//{ diff --git a/nixos/modules/config/xdg/sounds.nix b/nixos/modules/config/xdg/sounds.nix index 14d6340fc33..0b94f550929 100644 --- a/nixos/modules/config/xdg/sounds.nix +++ b/nixos/modules/config/xdg/sounds.nix @@ -2,6 +2,10 @@ with lib; { + meta = { + maintainers = teams.freedesktop.members; + }; + options = { xdg.sounds.enable = mkOption { type = types.bool; diff --git a/nixos/modules/hardware/opengl.nix b/nixos/modules/hardware/opengl.nix index 28cddea8b79..061528f4b1b 100644 --- a/nixos/modules/hardware/opengl.nix +++ b/nixos/modules/hardware/opengl.nix @@ -10,14 +10,6 @@ let videoDrivers = config.services.xserver.videoDrivers; - makePackage = p: pkgs.buildEnv { - name = "mesa-drivers+txc-${p.mesa.version}"; - paths = - [ p.mesa.drivers - (if cfg.s3tcSupport then p.libtxc_dxtn else p.libtxc_dxtn_s2tc) - ]; - }; - package = pkgs.buildEnv { name = "opengl-drivers"; paths = [ cfg.package ] ++ cfg.extraPackages; @@ -34,6 +26,9 @@ in imports = [ (mkRenamedOptionModule [ "services" "xserver" "vaapiDrivers" ] [ "hardware" "opengl" "extraPackages" ]) + (mkRemovedOptionModule [ "hardware" "opengl" "s3tcSupport" ] '' + S3TC support is now always enabled in Mesa. + '') ]; options = { @@ -74,17 +69,6 @@ in ''; }; - s3tcSupport = mkOption { - type = types.bool; - default = false; - description = '' - Make S3TC(S3 Texture Compression) via libtxc_dxtn available - to OpenGL drivers instead of the patent-free S2TC replacement. - - Using this library may require a patent license depending on your location. - ''; - }; - package = mkOption { type = types.package; internal = true; @@ -166,8 +150,8 @@ in environment.sessionVariables.LD_LIBRARY_PATH = mkIf cfg.setLdLibraryPath ([ "/run/opengl-driver/lib" ] ++ optional cfg.driSupport32Bit "/run/opengl-driver-32/lib"); - hardware.opengl.package = mkDefault (makePackage pkgs); - hardware.opengl.package32 = mkDefault (makePackage pkgs.pkgsi686Linux); + hardware.opengl.package = mkDefault pkgs.mesa.drivers; + hardware.opengl.package32 = mkDefault pkgs.pkgsi686Linux.mesa.drivers; boot.extraModulePackages = optional (elem "virtualbox" videoDrivers) kernelPackages.virtualboxGuestAdditions; }; diff --git a/nixos/modules/hardware/raid/hpsa.nix b/nixos/modules/hardware/raid/hpsa.nix index 4d7af138292..c4977e3fd70 100644 --- a/nixos/modules/hardware/raid/hpsa.nix +++ b/nixos/modules/hardware/raid/hpsa.nix @@ -34,7 +34,7 @@ let meta = with lib; { description = "HP Smart Array CLI"; - homepage = https://downloads.linux.hpe.com/SDR/downloads/MCP/Ubuntu/pool/non-free/; + homepage = "https://downloads.linux.hpe.com/SDR/downloads/MCP/Ubuntu/pool/non-free/"; license = licenses.unfreeRedistributable; platforms = [ "x86_64-linux" ]; maintainers = with maintainers; [ volth ]; diff --git a/nixos/modules/hardware/sensor/iio.nix b/nixos/modules/hardware/sensor/iio.nix index a8bc1880002..4c359c3b172 100644 --- a/nixos/modules/hardware/sensor/iio.nix +++ b/nixos/modules/hardware/sensor/iio.nix @@ -8,7 +8,12 @@ with lib; options = { hardware.sensor.iio = { enable = mkOption { - description = "Enable this option to support IIO sensors."; + description = '' + Enable this option to support IIO sensors. + + IIO sensors are used for orientation and ambient light + sensors on some mobile devices. + ''; type = types.bool; default = false; }; diff --git a/nixos/modules/hardware/uinput.nix b/nixos/modules/hardware/uinput.nix new file mode 100644 index 00000000000..55e86bfa6bd --- /dev/null +++ b/nixos/modules/hardware/uinput.nix @@ -0,0 +1,19 @@ +{ config, pkgs, lib, ... }: + +let + cfg = config.hardware.uinput; +in { + options.hardware.uinput = { + enable = lib.mkEnableOption "uinput support"; + }; + + config = lib.mkIf cfg.enable { + boot.kernelModules = [ "uinput" ]; + + users.groups.uinput = {}; + + services.udev.extraRules = '' + SUBSYSTEM=="misc", KERNEL=="uinput", MODE="0660", GROUP="uinput", OPTIONS+="static_node=uinput" + ''; + }; +} diff --git a/nixos/modules/hardware/wooting.nix b/nixos/modules/hardware/wooting.nix new file mode 100644 index 00000000000..ee550cbbf6b --- /dev/null +++ b/nixos/modules/hardware/wooting.nix @@ -0,0 +1,12 @@ +{ config, lib, pkgs, ... }: + +with lib; +{ + options.hardware.wooting.enable = + mkEnableOption "Enable support for Wooting keyboards"; + + config = mkIf config.hardware.wooting.enable { + environment.systemPackages = [ pkgs.wootility ]; + services.udev.packages = [ pkgs.wooting-udev-rules ]; + }; +} diff --git a/nixos/modules/i18n/input-method/ibus.nix b/nixos/modules/i18n/input-method/ibus.nix index a3d97619fc4..b4746b21b65 100644 --- a/nixos/modules/i18n/input-method/ibus.nix +++ b/nixos/modules/i18n/input-method/ibus.nix @@ -75,5 +75,9 @@ in QT_IM_MODULE = "ibus"; XMODIFIERS = "@im=ibus"; }; + + xdg.portal.extraPortals = mkIf config.xdg.portal.enable [ + ibusPackage + ]; }; } diff --git a/nixos/modules/installer/cd-dvd/installation-cd-base.nix b/nixos/modules/installer/cd-dvd/installation-cd-base.nix index 24070a78694..6c7ea293e8a 100644 --- a/nixos/modules/installer/cd-dvd/installation-cd-base.nix +++ b/nixos/modules/installer/cd-dvd/installation-cd-base.nix @@ -1,7 +1,7 @@ # This module contains the basic configuration for building a NixOS # installation CD. -{ config, lib, pkgs, ... }: +{ config, lib, options, pkgs, ... }: with lib; @@ -15,11 +15,12 @@ with lib; ../../profiles/installation-device.nix ]; + # Adds terminus_font for people with HiDPI displays + console.packages = options.console.packages.default ++ [ pkgs.terminus_font ]; + # ISO naming. isoImage.isoName = "${config.isoImage.isoBaseName}-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}.iso"; - isoImage.volumeID = substring 0 11 "NIXOS_ISO"; - # EFI booting isoImage.makeEfiBootable = true; diff --git a/nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix b/nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix index 62cbdbcfd17..3707c4b7ec6 100644 --- a/nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix +++ b/nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix @@ -7,10 +7,9 @@ with lib; { imports = [ ./installation-cd-graphical-base.nix ]; - services.xserver.desktopManager.gnome3.enable = true; + isoImage.edition = "gnome"; - # Wayland can be problematic for some hardware like Nvidia graphics cards. - services.xserver.displayManager.defaultSession = "gnome-xorg"; + services.xserver.desktopManager.gnome3.enable = true; services.xserver.displayManager.gdm = { enable = true; diff --git a/nixos/modules/installer/cd-dvd/installation-cd-graphical-plasma5.nix b/nixos/modules/installer/cd-dvd/installation-cd-graphical-plasma5.nix index e00d3f7535b..e76e06654ac 100644 --- a/nixos/modules/installer/cd-dvd/installation-cd-graphical-plasma5.nix +++ b/nixos/modules/installer/cd-dvd/installation-cd-graphical-plasma5.nix @@ -8,6 +8,8 @@ with lib; { imports = [ ./installation-cd-graphical-base.nix ]; + isoImage.edition = "plasma5"; + services.xserver = { desktopManager.plasma5 = { enable = true; diff --git a/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix b/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix index bcdbffdc20b..97506045e0e 100644 --- a/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix +++ b/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix @@ -8,5 +8,7 @@ [ ./installation-cd-base.nix ]; + isoImage.edition = "minimal"; + fonts.fontconfig.enable = false; } diff --git a/nixos/modules/installer/cd-dvd/iso-image.nix b/nixos/modules/installer/cd-dvd/iso-image.nix index 4558b4dc955..cce7cc235ec 100644 --- a/nixos/modules/installer/cd-dvd/iso-image.nix +++ b/nixos/modules/installer/cd-dvd/iso-image.nix @@ -417,8 +417,17 @@ in ''; }; + isoImage.edition = mkOption { + default = ""; + description = '' + Specifies which edition string to use in the volume ID of the generated + ISO image. + ''; + }; + isoImage.volumeID = mkOption { - default = "NIXOS_BOOT_CD"; + # nixos-$EDITION-$RELEASE-$ARCH + default = "nixos${optionalString (config.isoImage.edition != "") "-${config.isoImage.edition}"}-${config.system.nixos.release}-${pkgs.stdenv.hostPlatform.uname.processor}"; description = '' Specifies the label or volume ID of the generated ISO image. Note that the label is used by stage 1 of the boot process to @@ -474,7 +483,7 @@ in isoImage.efiSplashImage = mkOption { default = pkgs.fetchurl { - url = https://raw.githubusercontent.com/NixOS/nixos-artwork/a9e05d7deb38a8e005a2b52575a3f59a63a4dba0/bootloader/efi-background.png; + url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/a9e05d7deb38a8e005a2b52575a3f59a63a4dba0/bootloader/efi-background.png"; sha256 = "18lfwmp8yq923322nlb9gxrh5qikj1wsk6g5qvdh31c4h5b1538x"; }; description = '' @@ -484,7 +493,7 @@ in isoImage.splashImage = mkOption { default = pkgs.fetchurl { - url = https://raw.githubusercontent.com/NixOS/nixos-artwork/a9e05d7deb38a8e005a2b52575a3f59a63a4dba0/bootloader/isolinux/bios-boot.png; + url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/a9e05d7deb38a8e005a2b52575a3f59a63a4dba0/bootloader/isolinux/bios-boot.png"; sha256 = "1wp822zrhbg4fgfbwkr7cbkr4labx477209agzc0hr6k62fr6rxd"; }; description = '' @@ -515,6 +524,19 @@ in }; config = { + assertions = [ + { + assertion = !(stringLength config.isoImage.volumeID > 32); + # https://wiki.osdev.org/ISO_9660#The_Primary_Volume_Descriptor + # Volume Identifier can only be 32 bytes + message = let + length = stringLength config.isoImage.volumeID; + howmany = toString length; + toomany = toString (length - 32); + in + "isoImage.volumeID ${config.isoImage.volumeID} is ${howmany} characters. That is ${toomany} characters longer than the limit of 32."; + } + ]; boot.loader.grub.version = 2; diff --git a/nixos/modules/installer/tools/nix-fallback-paths.nix b/nixos/modules/installer/tools/nix-fallback-paths.nix index 2068f27f1c9..842976c3574 100644 --- a/nixos/modules/installer/tools/nix-fallback-paths.nix +++ b/nixos/modules/installer/tools/nix-fallback-paths.nix @@ -1,6 +1,6 @@ { - x86_64-linux = "/nix/store/ddmmzn4ggz1f66lwxjy64n89864yj9w9-nix-2.3.3"; - i686-linux = "/nix/store/5axys7hsggb4282dsbps5k5p0v59yv13-nix-2.3.3"; - aarch64-linux = "/nix/store/k80nwvi19hxwbz3c9cxgp24f1jjxwmcc-nix-2.3.3"; - x86_64-darwin = "/nix/store/lrnvapsqmf0ja6zfyx4cpxr7ahdr7f9b-nix-2.3.3"; + x86_64-linux = "/nix/store/8928ygfyf9iassfrnj76v55s6zid58ja-nix-2.3.4"; + i686-linux = "/nix/store/b5cx3nmba9ahx3wk5ybxa67k40pdpdxn-nix-2.3.4"; + aarch64-linux = "/nix/store/p6j4mis6agdjlk4j0cyg7yh58wpm3kif-nix-2.3.4"; + x86_64-darwin = "/nix/store/aizhr07dljmlbf17wfrj40x3s0b5iv3d-nix-2.3.4"; } diff --git a/nixos/modules/installer/tools/nixos-build-vms/build-vms.nix b/nixos/modules/installer/tools/nixos-build-vms/build-vms.nix index 90f0702f717..0c9f8522cc1 100644 --- a/nixos/modules/installer/tools/nixos-build-vms/build-vms.nix +++ b/nixos/modules/installer/tools/nixos-build-vms/build-vms.nix @@ -3,7 +3,12 @@ , networkExpr }: -let nodes = import networkExpr; in +let + nodes = builtins.mapAttrs (vm: module: { + _file = "${networkExpr}@node-${vm}"; + imports = [ module ]; + }) (import networkExpr); +in with import ../../../../lib/testing-python.nix { inherit system; diff --git a/nixos/modules/installer/tools/nixos-generate-config.pl b/nixos/modules/installer/tools/nixos-generate-config.pl index 629c56814a1..422c405054d 100644 --- a/nixos/modules/installer/tools/nixos-generate-config.pl +++ b/nixos/modules/installer/tools/nixos-generate-config.pl @@ -91,9 +91,6 @@ sub hasCPUFeature { } -# Detect the number of CPU cores. -my $cpus = scalar (grep {/^processor\s*:/} (split '\n', $cpuinfo)); - # Determine CPU governor to use if (-e "/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors") { @@ -183,7 +180,7 @@ sub pciCheck { ) ) { # we need e.g. brcmfmac43602-pcie.bin - push @imports, ""; + push @imports, "(modulesPath + \"/hardware/network/broadcom-43xx.nix\")"; } # Can't rely on $module here, since the module may not be loaded @@ -282,7 +279,7 @@ if ($virt eq "oracle") { # Likewise for QEMU. if ($virt eq "qemu" || $virt eq "kvm" || $virt eq "bochs") { - push @imports, ""; + push @imports, "(modulesPath + \"/profiles/qemu-guest.nix\")"; } # Also for Hyper-V. @@ -299,7 +296,7 @@ if ($virt eq "systemd-nspawn") { # Provide firmware for devices that are not detected by this script, # unless we're in a VM/container. -push @imports, "" +push @imports, "(modulesPath + \"/installer/scan/not-detected.nix\")" if $virt eq "none"; @@ -552,7 +549,7 @@ my $hwConfig = < " - + "for the NixOS manual." + "\nRun 'nixos-help' for the NixOS manual." ); }) diff --git a/nixos/modules/misc/nixpkgs.nix b/nixos/modules/misc/nixpkgs.nix index 011d493c153..4f5a9250eaa 100644 --- a/nixos/modules/misc/nixpkgs.nix +++ b/nixos/modules/misc/nixpkgs.nix @@ -236,8 +236,8 @@ in let nixosExpectedSystem = if config.nixpkgs.crossSystem != null - then config.nixpkgs.crossSystem.system - else config.nixpkgs.localSystem.system; + then config.nixpkgs.crossSystem.system or (lib.systems.parse.doubleFromSystem (lib.systems.parse.mkSystemFromString config.nixpkgs.crossSystem.config)) + else config.nixpkgs.localSystem.system or (lib.systems.parse.doubleFromSystem (lib.systems.parse.mkSystemFromString config.nixpkgs.localSystem.config)); nixosOption = if config.nixpkgs.crossSystem != null then "nixpkgs.crossSystem" diff --git a/nixos/modules/misc/version.nix b/nixos/modules/misc/version.nix index 9557def622d..a6fffb76f6e 100644 --- a/nixos/modules/misc/version.nix +++ b/nixos/modules/misc/version.nix @@ -76,7 +76,7 @@ in defaultChannel = mkOption { internal = true; type = types.str; - default = https://nixos.org/channels/nixos-unstable; + default = "https://nixos.org/channels/nixos-unstable"; description = "Default NixOS channel to which the root user is subscribed."; }; @@ -109,8 +109,8 @@ in PRETTY_NAME="NixOS ${cfg.release} (${cfg.codeName})" LOGO="nix-snowflake" HOME_URL="https://nixos.org/" - DOCUMENTATION_URL="https://nixos.org/nixos/manual/index.html" - SUPPORT_URL="https://nixos.org/nixos/support.html" + DOCUMENTATION_URL="https://nixos.org/learn.html" + SUPPORT_URL="https://nixos.org/community.html" BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues" ''; diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 771d7e128ea..0cd17775e51 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -64,6 +64,8 @@ ./hardware/tuxedo-keyboard.nix ./hardware/usb-wwan.nix ./hardware/onlykey.nix + ./hardware/wooting.nix + ./hardware/uinput.nix ./hardware/video/amdgpu.nix ./hardware/video/amdgpu-pro.nix ./hardware/video/ati.nix @@ -194,12 +196,12 @@ ./security/pam_usb.nix ./security/pam_mount.nix ./security/polkit.nix - ./security/prey.nix ./security/rngd.nix ./security/rtkit.nix ./security/wrappers/default.nix ./security/sudo.nix ./security/systemd-confinement.nix + ./security/tpm2.nix ./services/admin/oxidized.nix ./services/admin/salt/master.nix ./services/admin/salt/minion.nix @@ -235,6 +237,7 @@ ./services/backup/zfs-replication.nix ./services/backup/znapzend.nix ./services/cluster/hadoop/default.nix + ./services/cluster/k3s/default.nix ./services/cluster/kubernetes/addons/dns.nix ./services/cluster/kubernetes/addons/dashboard.nix ./services/cluster/kubernetes/addon-manager.nix @@ -292,7 +295,6 @@ ./services/desktops/deepin/deepin.nix ./services/desktops/dleyna-renderer.nix ./services/desktops/dleyna-server.nix - ./services/desktops/pantheon/contractor.nix ./services/desktops/pantheon/files.nix ./services/desktops/flatpak.nix ./services/desktops/geoclue2.nix @@ -366,6 +368,7 @@ ./services/hardware/thermald.nix ./services/hardware/undervolt.nix ./services/hardware/vdr.nix + ./services/hardware/xow.nix ./services/logging/SystemdJournal2Gelf.nix ./services/logging/awstats.nix ./services/logging/fluentd.nix @@ -467,7 +470,6 @@ ./services/misc/nix-daemon.nix ./services/misc/nix-gc.nix ./services/misc/nix-optimise.nix - ./services/misc/nixos-manual.nix ./services/misc/nix-ssh-serve.nix ./services/misc/novacomd.nix ./services/misc/nzbget.nix @@ -483,7 +485,6 @@ ./services/misc/redmine.nix ./services/misc/rippled.nix ./services/misc/ripple-data-api.nix - ./services/misc/rogue.nix ./services/misc/serviio.nix ./services/misc/safeeyes.nix ./services/misc/sickbeard.nix @@ -544,6 +545,7 @@ ./services/monitoring/teamviewer.nix ./services/monitoring/telegraf.nix ./services/monitoring/thanos.nix + ./services/monitoring/tuptime.nix ./services/monitoring/ups.nix ./services/monitoring/uptime.nix ./services/monitoring/vnstat.nix @@ -642,6 +644,7 @@ ./services/networking/lldpd.nix ./services/networking/logmein-hamachi.nix ./services/networking/mailpile.nix + ./services/networking/magic-wormhole-mailbox-server.nix ./services/networking/matterbridge.nix ./services/networking/mjpg-streamer.nix ./services/networking/minidlna.nix @@ -652,6 +655,7 @@ ./services/networking/miredo.nix ./services/networking/mstpd.nix ./services/networking/mtprotoproxy.nix + ./services/networking/mullvad-vpn.nix ./services/networking/murmur.nix ./services/networking/mxisd.nix ./services/networking/namecoind.nix @@ -680,6 +684,7 @@ ./services/networking/ostinato.nix ./services/networking/owamp.nix ./services/networking/pdnsd.nix + ./services/networking/pixiecore.nix ./services/networking/polipo.nix ./services/networking/powerdns.nix ./services/networking/pdns-recursor.nix @@ -690,6 +695,7 @@ ./services/networking/prosody.nix ./services/networking/quagga.nix ./services/networking/quassel.nix + ./services/networking/quorum.nix ./services/networking/quicktun.nix ./services/networking/racoon.nix ./services/networking/radicale.nix @@ -709,6 +715,7 @@ ./services/networking/shorewall6.nix ./services/networking/shout.nix ./services/networking/sniproxy.nix + ./services/networking/smartdns.nix ./services/networking/smokeping.nix ./services/networking/softether.nix ./services/networking/spacecookie.nix @@ -726,6 +733,7 @@ ./services/networking/syncthing.nix ./services/networking/syncthing-relay.nix ./services/networking/syncplay.nix + ./services/networking/tailscale.nix ./services/networking/tcpcrypt.nix ./services/networking/teamspeak3.nix ./services/networking/tedicross.nix @@ -819,6 +827,7 @@ ./services/web-apps/documize.nix ./services/web-apps/dokuwiki.nix ./services/web-apps/frab.nix + ./services/web-apps/gerrit.nix ./services/web-apps/gotify-server.nix ./services/web-apps/grocy.nix ./services/web-apps/icingaweb2/icingaweb2.nix @@ -974,6 +983,7 @@ ./virtualisation/anbox.nix ./virtualisation/container-config.nix ./virtualisation/containers.nix + ./virtualisation/nixos-containers.nix ./virtualisation/cri-o.nix ./virtualisation/docker.nix ./virtualisation/docker-containers.nix @@ -987,6 +997,7 @@ ./virtualisation/kvmgt.nix ./virtualisation/openvswitch.nix ./virtualisation/parallels-guest.nix + ./virtualisation/podman.nix ./virtualisation/qemu-guest-agent.nix ./virtualisation/railcar.nix ./virtualisation/rkt.nix diff --git a/nixos/modules/profiles/docker-container.nix b/nixos/modules/profiles/docker-container.nix index 5d6b11498b5..183645de36f 100644 --- a/nixos/modules/profiles/docker-container.nix +++ b/nixos/modules/profiles/docker-container.nix @@ -2,6 +2,8 @@ with lib; +let inherit (pkgs) writeScript; in + let pkgs2storeContents = l : map (x: { object = x; symlink = "none"; }) l; @@ -30,7 +32,12 @@ in { ]; # Some container managers like lxc need these - extraCommands = "mkdir -p proc sys dev"; + extraCommands = + let script = writeScript "extra-commands.sh" '' + rm etc + mkdir -p proc sys dev etc + ''; + in script; }; boot.isContainer = true; diff --git a/nixos/modules/profiles/hardened.nix b/nixos/modules/profiles/hardened.nix index f7b2f5c7fc1..ef8c0d74f06 100644 --- a/nixos/modules/profiles/hardened.nix +++ b/nixos/modules/profiles/hardened.nix @@ -7,19 +7,20 @@ with lib; { meta = { - maintainers = [ maintainers.joachifm ]; + maintainers = [ maintainers.joachifm maintainers.emily ]; }; boot.kernelPackages = mkDefault pkgs.linuxPackages_hardened; nix.allowedUsers = mkDefault [ "@users" ]; + environment.memoryAllocator.provider = mkDefault "scudo"; + environment.variables.SCUDO_OPTIONS = mkDefault "ZeroContents=1"; + security.hideProcessInformation = mkDefault true; security.lockKernelModules = mkDefault true; - security.allowUserNamespaces = mkDefault false; - security.protectKernelImage = mkDefault true; security.allowSimultaneousMultithreading = mkDefault false; @@ -34,15 +35,9 @@ with lib; # Slab/slub sanity checks, redzoning, and poisoning "slub_debug=FZP" - # Disable slab merging to make certain heap overflow attacks harder - "slab_nomerge" - # Overwrite free'd memory "page_poison=1" - # Disable legacy virtual syscalls - "vsyscall=none" - # Enable page allocator randomization "page_alloc.shuffle=1" ]; @@ -79,38 +74,12 @@ with lib; # (e.g., parent/child) boot.kernel.sysctl."kernel.yama.ptrace_scope" = mkOverride 500 1; - # Restrict access to kernel ring buffer (information leaks) - boot.kernel.sysctl."kernel.dmesg_restrict" = mkDefault true; - # Hide kptrs even for processes with CAP_SYSLOG boot.kernel.sysctl."kernel.kptr_restrict" = mkOverride 500 2; - # Unprivileged access to bpf() has been used for privilege escalation in - # the past - boot.kernel.sysctl."kernel.unprivileged_bpf_disabled" = mkDefault true; - # Disable bpf() JIT (to eliminate spray attacks) boot.kernel.sysctl."net.core.bpf_jit_enable" = mkDefault false; - # ... or at least apply some hardening to it - boot.kernel.sysctl."net.core.bpf_jit_harden" = mkDefault true; - - # Raise ASLR entropy for 64bit & 32bit, respectively. - # - # Note: mmap_rnd_compat_bits may not exist on 64bit. - boot.kernel.sysctl."vm.mmap_rnd_bits" = mkDefault 32; - boot.kernel.sysctl."vm.mmap_rnd_compat_bits" = mkDefault 16; - - # Allowing users to mmap() memory starting at virtual address 0 can turn a - # NULL dereference bug in the kernel into code execution with elevated - # privilege. Mitigate by enforcing a minimum base addr beyond the NULL memory - # space. This breaks applications that require mapping the 0 page, such as - # dosemu or running 16bit applications under wine. It also breaks older - # versions of qemu. - # - # The value is taken from the KSPP recommendations (Debian uses 4096). - boot.kernel.sysctl."vm.mmap_min_addr" = mkDefault 65536; - # Disable ftrace debugging boot.kernel.sysctl."kernel.ftrace_enabled" = mkDefault false; @@ -137,7 +106,4 @@ with lib; # Ignore outgoing ICMP redirects (this is ipv4 only) boot.kernel.sysctl."net.ipv4.conf.all.send_redirects" = mkDefault false; boot.kernel.sysctl."net.ipv4.conf.default.send_redirects" = mkDefault false; - - # Restrict userfaultfd syscalls to processes with the SYS_PTRACE capability - boot.kernel.sysctl."vm.unprivileged_userfaultfd" = mkDefault false; } diff --git a/nixos/modules/profiles/installation-device.nix b/nixos/modules/profiles/installation-device.nix index 4596e163404..d05c0c50e82 100644 --- a/nixos/modules/profiles/installation-device.nix +++ b/nixos/modules/profiles/installation-device.nix @@ -26,10 +26,6 @@ with lib; # Show the manual. documentation.nixos.enable = mkForce true; - services.nixosManual.showManual = true; - - # Let the user play Rogue on TTY 8 during the installation. - #services.rogue.enable = true; # Use less privileged nixos user users.users.nixos = { diff --git a/nixos/modules/programs/captive-browser.nix b/nixos/modules/programs/captive-browser.nix index 55d474e5c9d..26db1675072 100644 --- a/nixos/modules/programs/captive-browser.nix +++ b/nixos/modules/programs/captive-browser.nix @@ -28,7 +28,7 @@ in browser = mkOption { type = types.str; default = concatStringsSep " " [ ''${pkgs.chromium}/bin/chromium'' - ''--user-data-dir=$HOME/.chromium-captive'' + ''--user-data-dir=''${XDG_DATA_HOME:-$HOME/.local/share}/chromium-captive'' ''--proxy-server="socks5://$PROXY"'' ''--host-resolver-rules="MAP * ~NOTFOUND , EXCLUDE localhost"'' ''--no-first-run'' diff --git a/nixos/modules/programs/cdemu.nix b/nixos/modules/programs/cdemu.nix index 6a0185d362c..a59cd93cadf 100644 --- a/nixos/modules/programs/cdemu.nix +++ b/nixos/modules/programs/cdemu.nix @@ -8,6 +8,7 @@ in { options = { programs.cdemu = { enable = mkOption { + type = types.bool; default = false; description = '' cdemu for members of diff --git a/nixos/modules/programs/chromium.nix b/nixos/modules/programs/chromium.nix index 41c49db8c71..16c063ebc89 100644 --- a/nixos/modules/programs/chromium.nix +++ b/nixos/modules/programs/chromium.nix @@ -9,9 +9,7 @@ let HomepageLocation = cfg.homepageLocation; DefaultSearchProviderSearchURL = cfg.defaultSearchProviderSearchURL; DefaultSearchProviderSuggestURL = cfg.defaultSearchProviderSuggestURL; - ExtensionInstallForcelist = map (extension: - "${extension};https://clients2.google.com/service/update2/crx" - ) cfg.extensions; + ExtensionInstallForcelist = cfg.extensions; }; in @@ -28,7 +26,11 @@ in List of chromium extensions to install. For list of plugins ids see id in url of extensions on chrome web store - page. + page. To install a chromium extension not included in the chrome web + store, append to the extension id a semicolon ";" followed by a URL + pointing to an Update Manifest XML file. See + ExtensionInstallForcelist + for additional details. ''; default = []; example = literalExample '' diff --git a/nixos/modules/programs/criu.nix b/nixos/modules/programs/criu.nix index 48cf5c88a9f..1714e1331a4 100644 --- a/nixos/modules/programs/criu.nix +++ b/nixos/modules/programs/criu.nix @@ -8,6 +8,7 @@ in { options = { programs.criu = { enable = mkOption { + type = types.bool; default = false; description = '' Install criu along with necessary kernel options. diff --git a/nixos/modules/programs/fish.nix b/nixos/modules/programs/fish.nix index 87f6816e4ac..48b324a0fe8 100644 --- a/nixos/modules/programs/fish.nix +++ b/nixos/modules/programs/fish.nix @@ -178,6 +178,10 @@ in set -l post (string join0 $fish_complete_path | string match --regex "[^\x00]*generated_completions.*" | string split0 | string match -er ".") set fish_complete_path $prev "/etc/fish/generated_completions" $post end + # prevent fish from generating completions on first run + if not test -d $__fish_user_data_dir/generated_completions + ${pkgs.coreutils}/bin/mkdir $__fish_user_data_dir/generated_completions + end ''; environment.etc."fish/generated_completions".source = diff --git a/nixos/modules/programs/geary.nix b/nixos/modules/programs/geary.nix index 01803bc411e..5e441a75cb6 100644 --- a/nixos/modules/programs/geary.nix +++ b/nixos/modules/programs/geary.nix @@ -6,6 +6,10 @@ let cfg = config.programs.geary; in { + meta = { + maintainers = teams.gnome.members; + }; + options = { programs.geary.enable = mkEnableOption "Geary, a Mail client for GNOME 3"; }; diff --git a/nixos/modules/programs/gnome-disks.nix b/nixos/modules/programs/gnome-disks.nix index 1cf839a6ddb..80dc2983ea5 100644 --- a/nixos/modules/programs/gnome-disks.nix +++ b/nixos/modules/programs/gnome-disks.nix @@ -6,6 +6,10 @@ with lib; { + meta = { + maintainers = teams.gnome.members; + }; + # Added 2019-08-09 imports = [ (mkRenamedOptionModule diff --git a/nixos/modules/programs/gnome-documents.nix b/nixos/modules/programs/gnome-documents.nix index bfa3d409ee3..9dd53483055 100644 --- a/nixos/modules/programs/gnome-documents.nix +++ b/nixos/modules/programs/gnome-documents.nix @@ -6,6 +6,10 @@ with lib; { + meta = { + maintainers = teams.gnome.members; + }; + # Added 2019-08-09 imports = [ (mkRenamedOptionModule diff --git a/nixos/modules/programs/gnome-terminal.nix b/nixos/modules/programs/gnome-terminal.nix index 0036677a157..f2617e5bc03 100644 --- a/nixos/modules/programs/gnome-terminal.nix +++ b/nixos/modules/programs/gnome-terminal.nix @@ -12,6 +12,10 @@ in { + meta = { + maintainers = teams.gnome.members; + }; + # Added 2019-08-19 imports = [ (mkRenamedOptionModule @@ -20,9 +24,7 @@ in ]; options = { - programs.gnome-terminal.enable = mkEnableOption "GNOME Terminal"; - }; config = mkIf cfg.enable { diff --git a/nixos/modules/programs/nm-applet.nix b/nixos/modules/programs/nm-applet.nix index 1b806071c43..273a6dec59a 100644 --- a/nixos/modules/programs/nm-applet.nix +++ b/nixos/modules/programs/nm-applet.nix @@ -1,6 +1,10 @@ { config, lib, pkgs, ... }: { + meta = { + maintainers = lib.teams.freedesktop.members; + }; + options.programs.nm-applet.enable = lib.mkEnableOption "nm-applet"; config = lib.mkIf config.programs.nm-applet.enable { diff --git a/nixos/modules/programs/npm.nix b/nixos/modules/programs/npm.nix index b351d80c7ac..f101a44587a 100644 --- a/nixos/modules/programs/npm.nix +++ b/nixos/modules/programs/npm.nix @@ -13,7 +13,14 @@ in programs.npm = { enable = mkEnableOption "npm global config"; - npmrc = lib.mkOption { + package = mkOption { + type = types.path; + description = "The npm package version / flavor to use"; + default = pkgs.nodePackages.npm; + example = literalExample "pkgs.nodePackages_13_x.npm"; + }; + + npmrc = mkOption { type = lib.types.lines; description = '' The system-wide npm configuration. @@ -40,7 +47,7 @@ in environment.variables.NPM_CONFIG_GLOBALCONFIG = "/etc/npmrc"; - environment.systemPackages = [ pkgs.nodePackages.npm ]; + environment.systemPackages = [ cfg.package ]; }; } diff --git a/nixos/modules/programs/ssh.nix b/nixos/modules/programs/ssh.nix index 80198990ed1..44e65ee8a9a 100644 --- a/nixos/modules/programs/ssh.nix +++ b/nixos/modules/programs/ssh.nix @@ -61,12 +61,9 @@ in ''; }; - # Allow DSA keys for now. (These were deprecated in OpenSSH 7.0.) pubkeyAcceptedKeyTypes = mkOption { type = types.listOf types.str; - default = [ - "+ssh-dss" - ]; + default = []; example = [ "ssh-ed25519" "ssh-rsa" ]; description = '' Specifies the key types that will be used for public key authentication. @@ -75,9 +72,7 @@ in hostKeyAlgorithms = mkOption { type = types.listOf types.str; - default = [ - "+ssh-dss" - ]; + default = []; example = [ "ssh-ed25519" "ssh-rsa" ]; description = '' Specifies the host key algorithms that the client wants to use in order of preference. diff --git a/nixos/modules/programs/ssmtp.nix b/nixos/modules/programs/ssmtp.nix index f794eac8af0..c7a94739349 100644 --- a/nixos/modules/programs/ssmtp.nix +++ b/nixos/modules/programs/ssmtp.nix @@ -14,8 +14,16 @@ in { imports = [ - (mkRenamedOptionModule [ "networking" "defaultMailServer" ] [ "services" "ssmtp" ]) - (mkRenamedOptionModule [ "services" "ssmtp" "directDelivery" ] [ "services" "ssmtp" "enable" ]) + (mkRenamedOptionModule [ "networking" "defaultMailServer" "directDelivery" ] [ "services" "ssmtp" "enable" ]) + (mkRenamedOptionModule [ "networking" "defaultMailServer" "hostName" ] [ "services" "ssmtp" "hostName" ]) + (mkRenamedOptionModule [ "networking" "defaultMailServer" "domain" ] [ "services" "ssmtp" "domain" ]) + (mkRenamedOptionModule [ "networking" "defaultMailServer" "root" ] [ "services" "ssmtp" "root" ]) + (mkRenamedOptionModule [ "networking" "defaultMailServer" "useTLS" ] [ "services" "ssmtp" "useTLS" ]) + (mkRenamedOptionModule [ "networking" "defaultMailServer" "useSTARTTLS" ] [ "services" "ssmtp" "useSTARTTLS" ]) + (mkRenamedOptionModule [ "networking" "defaultMailServer" "authUser" ] [ "services" "ssmtp" "authUser" ]) + (mkRenamedOptionModule [ "networking" "defaultMailServer" "authPass" ] [ "services" "ssmtp" "authPass" ]) + (mkRenamedOptionModule [ "networking" "defaultMailServer" "authPassFile" ] [ "services" "ssmtp" "authPassFile" ]) + (mkRenamedOptionModule [ "networking" "defaultMailServer" "setSendmail" ] [ "services" "ssmtp" "setSendmail" ]) ]; options = { diff --git a/nixos/modules/programs/systemtap.nix b/nixos/modules/programs/systemtap.nix index ca81e018c9d..360e106678e 100644 --- a/nixos/modules/programs/systemtap.nix +++ b/nixos/modules/programs/systemtap.nix @@ -8,6 +8,7 @@ in { options = { programs.systemtap = { enable = mkOption { + type = types.bool; default = false; description = '' Install systemtap along with necessary kernel options. diff --git a/nixos/modules/programs/xonsh.nix b/nixos/modules/programs/xonsh.nix index 1590020f7b6..c06fd1655c2 100644 --- a/nixos/modules/programs/xonsh.nix +++ b/nixos/modules/programs/xonsh.nix @@ -45,7 +45,32 @@ in config = mkIf cfg.enable { - environment.etc.xonshrc.text = cfg.config; + environment.etc.xonshrc.text = '' + # /etc/xonshrc: DO NOT EDIT -- this file has been generated automatically. + + + if not ''${...}.get('__NIXOS_SET_ENVIRONMENT_DONE'): + # The NixOS environment and thereby also $PATH + # haven't been fully set up at this point. But + # `source-bash` below requires `bash` to be on $PATH, + # so add an entry with bash's location: + $PATH.add('${pkgs.bash}/bin') + + # Stash xonsh's ls alias, so that we don't get a collision + # with Bash's ls alias from environment.shellAliases: + _ls_alias = aliases.pop('ls', None) + + # Source the NixOS environment config. + source-bash "${config.system.build.setEnvironment}" + + # Restore xonsh's ls alias, overriding that from Bash (if any). + if _ls_alias is not None: + aliases['ls'] = _ls_alias + del _ls_alias + + + ${cfg.config} + ''; environment.systemPackages = [ cfg.package ]; diff --git a/nixos/modules/programs/zsh/oh-my-zsh.nix b/nixos/modules/programs/zsh/oh-my-zsh.nix index 932a780a356..f24842a4791 100644 --- a/nixos/modules/programs/zsh/oh-my-zsh.nix +++ b/nixos/modules/programs/zsh/oh-my-zsh.nix @@ -39,6 +39,7 @@ in options = { programs.zsh.ohMyZsh = { enable = mkOption { + type = types.bool; default = false; description = '' Enable oh-my-zsh. diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix index 410db8fd84e..a946268494e 100644 --- a/nixos/modules/rename.nix +++ b/nixos/modules/rename.nix @@ -49,6 +49,10 @@ with lib; simply add the brightnessctl package to environment.systemPackages. '') + (mkRemovedOptionModule ["services" "prey" ] '' + prey-bash-client is deprecated upstream + '') + # Do NOT add any option renames here, see top of the file ]; } diff --git a/nixos/modules/security/acme.nix b/nixos/modules/security/acme.nix index b787a767539..36f91529265 100644 --- a/nixos/modules/security/acme.nix +++ b/nixos/modules/security/acme.nix @@ -301,7 +301,7 @@ in # StateDirectory must be relative, and will be created under /var/lib by systemd lpath = "acme/${cert}"; apath = "/var/lib/${lpath}"; - spath = "/var/lib/acme/.lego"; + spath = "/var/lib/acme/.lego/${cert}"; fileMode = if data.allowKeysForGroup then "640" else "600"; globalOpts = [ "-d" data.domain "--email" data.email "--path" "." "--key-type" data.keyType ] ++ optionals (cfg.acceptTerms) [ "--accept-tos" ] @@ -318,25 +318,20 @@ in description = "Renew ACME Certificate for ${cert}"; after = [ "network.target" "network-online.target" ]; wants = [ "network-online.target" ]; - wantedBy = [ "multi-user.target" ]; + wantedBy = mkIf (!config.boot.isContainer) [ "multi-user.target" ]; serviceConfig = { Type = "oneshot"; - # With RemainAfterExit the service is considered active even - # after the main process having exited, which means when it - # gets changed, the activation phase restarts it, meaning - # the permissions of the StateDirectory get adjusted - # according to the specified group - RemainAfterExit = true; User = data.user; Group = data.group; PrivateTmp = true; - StateDirectory = "acme/.lego ${lpath}"; + StateDirectory = "acme/.lego/${cert} acme/.lego/accounts ${lpath}"; StateDirectoryMode = if data.allowKeysForGroup then "750" else "700"; WorkingDirectory = spath; # Only try loading the credentialsFile if the dns challenge is enabled EnvironmentFile = if data.dnsProvider != null then data.credentialsFile else null; ExecStart = pkgs.writeScript "acme-start" '' #!${pkgs.runtimeShell} -e + test -L ${spath}/accounts -o -d ${spath}/accounts || ln -s ../accounts ${spath}/accounts ${pkgs.lego}/bin/lego ${renewOpts} || ${pkgs.lego}/bin/lego ${runOpts} ''; ExecStartPost = @@ -348,7 +343,9 @@ in # Test that existing cert is older than new cert KEY=${spath}/certificates/${keyName}.key + KEY_CHANGED=no if [ -e $KEY -a $KEY -nt key.pem ]; then + KEY_CHANGED=yes cp -p ${spath}/certificates/${keyName}.key key.pem cp -p ${spath}/certificates/${keyName}.crt fullchain.pem cp -p ${spath}/certificates/${keyName}.issuer.crt chain.pem @@ -359,7 +356,10 @@ in chmod ${fileMode} *.pem chown '${data.user}:${data.group}' *.pem - ${data.postRun} + if [ "$KEY_CHANGED" = "yes" ]; then + : # noop in case postRun is empty + ${data.postRun} + fi ''; in "+${script}"; @@ -458,7 +458,7 @@ in ]; meta = { - maintainers = with lib.maintainers; [ abbradar fpletz globin m1cr0man ]; + maintainers = lib.teams.acme.members; doc = ./acme.xml; }; } diff --git a/nixos/modules/security/apparmor-suid.nix b/nixos/modules/security/apparmor-suid.nix index 3c93f5440ab..6c479e070e2 100644 --- a/nixos/modules/security/apparmor-suid.nix +++ b/nixos/modules/security/apparmor-suid.nix @@ -9,6 +9,7 @@ with lib; ]; options.security.apparmor.confineSUIDApplications = mkOption { + type = types.bool; default = true; description = '' Install AppArmor profiles for commonly-used SUID application diff --git a/nixos/modules/security/duosec.nix b/nixos/modules/security/duosec.nix index c686a6861d0..71428b82f5d 100644 --- a/nixos/modules/security/duosec.nix +++ b/nixos/modules/security/duosec.nix @@ -9,8 +9,7 @@ let configFilePam = '' [duo] - ikey=${cfg.ikey} - skey=${cfg.skey} + ikey=${cfg.integrationKey} host=${cfg.host} ${optionalString (cfg.groups != "") ("groups="+cfg.groups)} failmode=${cfg.failmode} @@ -24,26 +23,12 @@ let motd=${boolToStr cfg.motd} accept_env_factor=${boolToStr cfg.acceptEnvFactor} ''; - - loginCfgFile = optionalAttrs cfg.ssh.enable { - "duo/login_duo.conf" = - { source = pkgs.writeText "login_duo.conf" configFileLogin; - mode = "0600"; - user = "sshd"; - }; - }; - - pamCfgFile = optional cfg.pam.enable { - "duo/pam_duo.conf" = - { source = pkgs.writeText "pam_duo.conf" configFilePam; - mode = "0600"; - user = "sshd"; - }; - }; in { imports = [ (mkRenamedOptionModule [ "security" "duosec" "group" ] [ "security" "duosec" "groups" ]) + (mkRenamedOptionModule [ "security" "duosec" "ikey" ] [ "security" "duosec" "integrationKey" ]) + (mkRemovedOptionModule [ "security" "duosec" "skey" ] "The insecure security.duosec.skey option has been replaced by a new security.duosec.secretKeyFile option. Use this new option to store a secure copy of your key instead.") ]; options = { @@ -60,14 +45,18 @@ in description = "If enabled, protect logins with Duo Security using PAM support."; }; - ikey = mkOption { + integrationKey = mkOption { type = types.str; description = "Integration key."; }; - skey = mkOption { - type = types.str; - description = "Secret key."; + secretKeyFile = mkOption { + type = types.path; + default = null; + description = '' + A file containing your secret key. The security of your Duo application is tied to the security of your secret key. + ''; + example = "/run/keys/duo-skey"; }; host = mkOption { @@ -195,21 +184,52 @@ in }; config = mkIf (cfg.ssh.enable || cfg.pam.enable) { - environment.systemPackages = [ pkgs.duo-unix ]; + environment.systemPackages = [ pkgs.duo-unix ]; - security.wrappers.login_duo.source = "${pkgs.duo-unix.out}/bin/login_duo"; - environment.etc = loginCfgFile // pamCfgFile; + security.wrappers.login_duo.source = "${pkgs.duo-unix.out}/bin/login_duo"; - /* If PAM *and* SSH are enabled, then don't do anything special. - If PAM isn't used, set the default SSH-only options. */ - services.openssh.extraConfig = mkIf (cfg.ssh.enable || cfg.pam.enable) ( - if cfg.pam.enable then "UseDNS no" else '' - # Duo Security configuration - ForceCommand ${config.security.wrapperDir}/login_duo - PermitTunnel no - ${optionalString (!cfg.allowTcpForwarding) '' - AllowTcpForwarding no - ''} - ''); + system.activationScripts = { + login_duo = mkIf cfg.ssh.enable '' + if test -f "${cfg.secretKeyFile}"; then + mkdir -m 0755 -p /etc/duo + + umask 0077 + conf="$(mktemp)" + { + cat ${pkgs.writeText "login_duo.conf" configFileLogin} + printf 'skey = %s\n' "$(cat ${cfg.secretKeyFile})" + } >"$conf" + + chown sshd "$conf" + mv -fT "$conf" /etc/duo/login_duo.conf + fi + ''; + pam_duo = mkIf cfg.pam.enable '' + if test -f "${cfg.secretKeyFile}"; then + mkdir -m 0755 -p /etc/duo + + umask 0077 + conf="$(mktemp)" + { + cat ${pkgs.writeText "login_duo.conf" configFilePam} + printf 'skey = %s\n' "$(cat ${cfg.secretKeyFile})" + } >"$conf" + + mv -fT "$conf" /etc/duo/pam_duo.conf + fi + ''; + }; + + /* If PAM *and* SSH are enabled, then don't do anything special. + If PAM isn't used, set the default SSH-only options. */ + services.openssh.extraConfig = mkIf (cfg.ssh.enable || cfg.pam.enable) ( + if cfg.pam.enable then "UseDNS no" else '' + # Duo Security configuration + ForceCommand ${config.security.wrapperDir}/login_duo + PermitTunnel no + ${optionalString (!cfg.allowTcpForwarding) '' + AllowTcpForwarding no + ''} + ''); }; } diff --git a/nixos/modules/security/google_oslogin.nix b/nixos/modules/security/google_oslogin.nix index 6f9962e1d62..78c2089baeb 100644 --- a/nixos/modules/security/google_oslogin.nix +++ b/nixos/modules/security/google_oslogin.nix @@ -49,6 +49,7 @@ in # enable the nss module, so user lookups etc. work system.nssModules = [ package ]; + system.nssDatabases.passwd = [ "cache_oslogin" "oslogin" ]; # Ugly: sshd refuses to start if a store path is given because /nix/store is group-writable. # So indirect by a symlink. diff --git a/nixos/modules/security/pam.nix b/nixos/modules/security/pam.nix index bfc2a881387..b99316803f3 100644 --- a/nixos/modules/security/pam.nix +++ b/nixos/modules/security/pam.nix @@ -219,6 +219,14 @@ let ''; }; + nodelay = mkOption { + default = false; + type = types.bool; + description = '' + Wheather the delay after typing a wrong password should be disabled. + ''; + }; + requireWheel = mkOption { default = false; type = types.bool; @@ -366,7 +374,7 @@ let || cfg.enableGnomeKeyring || cfg.googleAuthenticator.enable || cfg.duoSecurity.enable)) '' - auth required pam_unix.so ${optionalString cfg.allowNullPassword "nullok"} likeauth + 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 @@ -382,7 +390,7 @@ let "auth required ${pkgs.duo-unix}/lib/security/pam_duo.so"} '') + '' ${optionalString cfg.unixAuth - "auth sufficient pam_unix.so ${optionalString cfg.allowNullPassword "nullok"} likeauth try_first_pass"} + "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 @@ -545,6 +553,7 @@ in }; security.pam.enableSSHAgentAuth = mkOption { + type = types.bool; default = false; description = '' @@ -555,12 +564,7 @@ in ''; }; - security.pam.enableOTPW = mkOption { - default = false; - description = '' - Enable the OTPW (one-time password) PAM module. - ''; - }; + security.pam.enableOTPW = mkEnableOption "the OTPW (one-time password) PAM module"; security.pam.u2f = { enable = mkOption { @@ -719,12 +723,7 @@ in }; }; - security.pam.enableEcryptfs = mkOption { - default = false; - description = '' - Enable eCryptfs PAM module (mounting ecryptfs home directory on login). - ''; - }; + security.pam.enableEcryptfs = mkEnableOption "eCryptfs PAM module (mounting ecryptfs home directory on login)"; users.motd = mkOption { default = null; diff --git a/nixos/modules/security/prey.nix b/nixos/modules/security/prey.nix deleted file mode 100644 index b899ccb6c3e..00000000000 --- a/nixos/modules/security/prey.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ config, lib, pkgs, ... }: - -with lib; - -let - cfg = config.services.prey; - myPrey = pkgs.prey-bash-client.override { - apiKey = cfg.apiKey; - deviceKey = cfg.deviceKey; - }; -in { - options = { - - services.prey = { - enable = mkOption { - default = false; - type = types.bool; - description = '' - Enables the - shell client. Be sure to specify both API and device keys. - Once enabled, a cron job will run every 15 - minutes to report status information. - ''; - }; - - deviceKey = mkOption { - type = types.str; - description = '' - Device key obtained by visiting - - and clicking on your device. - ''; - }; - - apiKey = mkOption { - type = types.str; - description = '' - API key obtained from - . - ''; - }; - }; - - }; - - config = mkIf cfg.enable { - environment.systemPackages = [ myPrey ]; - services.cron.systemCronJobs = [ "*/15 * * * * root ${myPrey}/prey.sh" ]; - }; - -} diff --git a/nixos/modules/security/tpm2.nix b/nixos/modules/security/tpm2.nix new file mode 100644 index 00000000000..13804fb82cb --- /dev/null +++ b/nixos/modules/security/tpm2.nix @@ -0,0 +1,185 @@ +{ lib, pkgs, config, ... }: +let + cfg = config.security.tpm2; + + # This snippet is taken from tpm2-tss/dist/tpm-udev.rules, but modified to allow custom user/groups + # The idea is that the tssUser is allowed to acess the TPM and kernel TPM resource manager, while + # the tssGroup is only allowed to access the kernel resource manager + # Therefore, if either of the two are null, the respective part isn't generated + udevRules = tssUser: tssGroup: '' + ${lib.optionalString (tssUser != null) ''KERNEL=="tpm[0-9]*", MODE="0660", OWNER="${tssUser}"''} + ${lib.optionalString (tssUser != null || tssGroup != null) + ''KERNEL=="tpmrm[0-9]*", MODE="0660"'' + + lib.optionalString (tssUser != null) '', OWNER="${tssUser}"'' + + lib.optionalString (tssGroup != null) '', GROUP="${tssGroup}"'' + } + ''; + +in { + options.security.tpm2 = { + enable = lib.mkEnableOption "Trusted Platform Module 2 support"; + + tssUser = lib.mkOption { + description = '' + Name of the tpm device-owner and service user, set if applyUdevRules is + set. + ''; + type = lib.types.nullOr lib.types.str; + default = if cfg.abrmd.enable then "tss" else "root"; + defaultText = ''"tss" when using the userspace resource manager,'' + + ''"root" otherwise''; + }; + + tssGroup = lib.mkOption { + description = '' + Group of the tpm kernel resource manager (tpmrm) device-group, set if + applyUdevRules is set. + ''; + type = lib.types.nullOr lib.types.str; + default = "tss"; + }; + + applyUdevRules = lib.mkOption { + description = '' + Whether to make the /dev/tpm[0-9] devices accessible by the tssUser, or + the /dev/tpmrm[0-9] by tssGroup respectively + ''; + type = lib.types.bool; + default = true; + }; + + abrmd = { + enable = lib.mkEnableOption '' + Trusted Platform 2 userspace resource manager daemon + ''; + + package = lib.mkOption { + description = "tpm2-abrmd package to use"; + type = lib.types.package; + default = pkgs.tpm2-abrmd; + defaultText = "pkgs.tpm2-abrmd"; + }; + }; + + pkcs11 = { + enable = lib.mkEnableOption '' + TPM2 PKCS#11 tool and shared library in system path + (/run/current-system/sw/lib/libtpm2_pkcs11.so) + ''; + + package = lib.mkOption { + description = "tpm2-pkcs11 package to use"; + type = lib.types.package; + default = pkgs.tpm2-pkcs11; + defaultText = "pkgs.tpm2-pkcs11"; + }; + }; + + tctiEnvironment = { + enable = lib.mkOption { + description = '' + Set common TCTI environment variables to the specified value. + The variables are + + + + TPM2TOOLS_TCTI + + + + + TPM2_PKCS11_TCTI + + + + ''; + type = lib.types.bool; + default = false; + }; + + interface = lib.mkOption { + description = '' + The name of the TPM command transmission interface (TCTI) library to + use. + ''; + type = lib.types.enum [ "tabrmd" "device" ]; + default = "device"; + }; + + deviceConf = lib.mkOption { + description = '' + Configuration part of the device TCTI, e.g. the path to the TPM device. + Applies if interface is set to "device". + The format is specified in the + + tpm2-tools repository. + ''; + type = lib.types.str; + default = "/dev/tpmrm0"; + }; + + tabrmdConf = lib.mkOption { + description = '' + Configuration part of the tabrmd TCTI, like the D-Bus bus name. + Applies if interface is set to "tabrmd". + The format is specified in the + + tpm2-tools repository. + ''; + type = lib.types.str; + default = "bus_name=com.intel.tss2.Tabrmd"; + }; + }; + }; + + config = lib.mkIf cfg.enable (lib.mkMerge [ + { + # PKCS11 tools and library + environment.systemPackages = lib.mkIf cfg.pkcs11.enable [ + (lib.getBin cfg.pkcs11.package) + (lib.getLib cfg.pkcs11.package) + ]; + + services.udev.extraRules = lib.mkIf cfg.applyUdevRules + (udevRules cfg.tssUser cfg.tssGroup); + + # Create the tss user and group only if the default value is used + users.users.${cfg.tssUser} = lib.mkIf (cfg.tssUser == "tss") { + isSystemUser = true; + }; + users.groups.${cfg.tssGroup} = lib.mkIf (cfg.tssGroup == "tss") {}; + + environment.variables = lib.mkIf cfg.tctiEnvironment.enable ( + lib.attrsets.genAttrs [ + "TPM2TOOLS_TCTI" + "TPM2_PKCS11_TCTI" + ] (_: ''${cfg.tctiEnvironment.interface}:${ + if cfg.tctiEnvironment.interface == "tabrmd" then + cfg.tctiEnvironment.tabrmdConf + else + cfg.tctiEnvironment.deviceConf + }'') + ); + } + + (lib.mkIf cfg.abrmd.enable { + systemd.services."tpm2-abrmd" = { + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + Type = "dbus"; + Restart = "always"; + RestartSec = 30; + BusName = "com.intel.tss2.Tabrmd"; + StandardOutput = "syslog"; + ExecStart = "${cfg.abrmd.package}/bin/tpm2-abrmd"; + User = "tss"; + Group = "nogroup"; + }; + }; + + services.dbus.packages = lib.singleton cfg.abrmd.package; + }) + ]); + + meta.maintainers = with lib.maintainers; [ lschuermann ]; +} diff --git a/nixos/modules/services/amqp/activemq/default.nix b/nixos/modules/services/amqp/activemq/default.nix index 7729da27304..160dbddcd48 100644 --- a/nixos/modules/services/amqp/activemq/default.nix +++ b/nixos/modules/services/amqp/activemq/default.nix @@ -63,9 +63,11 @@ in { javaProperties = mkOption { type = types.attrs; default = { }; - example = { - "java.net.preferIPv4Stack" = "true"; - }; + example = literalExample '' + { + "java.net.preferIPv4Stack" = "true"; + } + ''; apply = attrs: { "activemq.base" = "${cfg.baseDir}"; "activemq.data" = "${cfg.baseDir}/data"; diff --git a/nixos/modules/services/amqp/rabbitmq.nix b/nixos/modules/services/amqp/rabbitmq.nix index f80d6b3f1ba..646708e01c4 100644 --- a/nixos/modules/services/amqp/rabbitmq.nix +++ b/nixos/modules/services/amqp/rabbitmq.nix @@ -17,6 +17,7 @@ in { options = { services.rabbitmq = { enable = mkOption { + type = types.bool; default = false; description = '' Whether to enable the RabbitMQ server, an Advanced Message diff --git a/nixos/modules/services/audio/mopidy.nix b/nixos/modules/services/audio/mopidy.nix index d30c227db42..6fd7eae5b89 100644 --- a/nixos/modules/services/audio/mopidy.nix +++ b/nixos/modules/services/audio/mopidy.nix @@ -13,11 +13,11 @@ let mopidyEnv = buildEnv { name = "mopidy-with-extensions-${mopidy.version}"; paths = closePropagation cfg.extensionPackages; - pathsToLink = [ "/${python3.sitePackages}" ]; + pathsToLink = [ "/${mopidyPackages.python.sitePackages}" ]; buildInputs = [ makeWrapper ]; postBuild = '' makeWrapper ${mopidy}/bin/mopidy $out/bin/mopidy \ - --prefix PYTHONPATH : $out/${python3.sitePackages} + --prefix PYTHONPATH : $out/${mopidyPackages.python.sitePackages} ''; }; in { diff --git a/nixos/modules/services/backup/borgbackup.nix b/nixos/modules/services/backup/borgbackup.nix index a2eb80c55a8..be661b201f0 100644 --- a/nixos/modules/services/backup/borgbackup.nix +++ b/nixos/modules/services/backup/borgbackup.nix @@ -189,6 +189,7 @@ let in { meta.maintainers = with maintainers; [ dotlambda ]; + meta.doc = ./borgbackup.xml; ###### interface @@ -197,10 +198,11 @@ in { Deduplicating backups using BorgBackup. Adding a job will cause a borg-job-NAME wrapper to be added to your system path, so that you can perform maintenance easily. + See also the chapter about BorgBackup in the NixOS manual. ''; default = { }; example = literalExample '' - { + { # for a local backup rootBackup = { paths = "/"; exclude = [ "/nix" ]; @@ -213,6 +215,23 @@ in { startAt = "weekly"; }; } + { # Root backing each day up to a remote backup server. We assume that you have + # * created a password less key: ssh-keygen -N "" -t ed25519 -f /path/to/ssh_key + # best practices are: use -t ed25519, /path/to = /run/keys + # * the passphrase is in the file /run/keys/borgbackup_passphrase + # * you have initialized the repository manually + paths = [ "/etc" "/home" ]; + exclude = [ "/nix" "'**/.cache'" ]; + doInit = false; + repo = "user3@arep.repo.borgbase.com:repo"; + encryption = { + mode = "repokey-blake2"; + passCommand = "cat /path/to/passphrase"; + }; + environment = { BORG_RSH = "ssh -i /path/to/ssh_key"; }; + compression = "auto,lzma"; + startAt = "daily"; + }; ''; type = types.attrsOf (types.submodule (let globalConfig = config; in { name, config, ... }: { @@ -268,6 +287,8 @@ in { 7. If you do not want the backup to start automatically, use [ ]. + It will generate a systemd service borgbackup-job-NAME. + You may trigger it manually via systemctl restart borgbackup-job-NAME. ''; }; @@ -303,6 +324,10 @@ in { you to specify a or a . ''; + example = '' + encryption.mode = "repokey-blake2" ; + encryption.passphrase = "mySecretPassphrase" ; + ''; }; encryption.passCommand = mkOption { @@ -538,6 +563,7 @@ in { description = '' Serve BorgBackup repositories to given public SSH keys, restricting their access to the repository only. + See also the chapter about BorgBackup in the NixOS manual. Also, clients do not need to specify the absolute path when accessing the repository, i.e. user@machine:. is enough. (Note colon and dot.) ''; diff --git a/nixos/modules/services/backup/borgbackup.xml b/nixos/modules/services/backup/borgbackup.xml new file mode 100644 index 00000000000..bef7db608f8 --- /dev/null +++ b/nixos/modules/services/backup/borgbackup.xml @@ -0,0 +1,227 @@ + + BorgBackup + + Source: + modules/services/backup/borgbackup.nix + + + Upstream documentation: + + + + BorgBackup (short: Borg) + is a deduplicating backup program. Optionally, it supports compression and + authenticated encryption. + + + The main goal of Borg is to provide an efficient and secure way to backup + data. The data deduplication technique used makes Borg suitable for daily + backups since only changes are stored. The authenticated encryption technique + makes it suitable for backups to not fully trusted targets. + +
+ Configuring + + A complete list of options for the Borgbase module may be found + here. + +
+
+ Basic usage for a local backup + + + A very basic configuration for backing up to a locally accessible directory + is: + +{ + opt.services.borgbackup.jobs = { + { rootBackup = { + paths = "/"; + exclude = [ "/nix" "/path/to/local/repo" ]; + repo = "/path/to/local/repo"; + doInit = true; + encryption = { + mode = "repokey"; + passphrase = "secret"; + }; + compression = "auto,lzma"; + startAt = "weekly"; + }; + } + }; +} + + + + If you do not want the passphrase to be stored in the world-readable + Nix store, use passCommand. You find an example below. + + +
+
+ Create a borg backup server + You should use a different SSH key for each repository you write to, + because the specified keys are restricted to running borg serve and can only + access this single repository. You need the output of the generate pub file. + + + +# sudo ssh-keygen -N '' -t ed25519 -f /run/keys/id_ed25519_my_borg_repo +# cat /run/keys/id_ed25519_my_borg_repo +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID78zmOyA+5uPG4Ot0hfAy+sLDPU1L4AiIoRYEIVbbQ/ root@nixos + + + Add the following snippet to your NixOS configuration: + +{ + services.borgbackup.repos = { + my_borg_repo = { + authorizedKeys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID78zmOyA+5uPG4Ot0hfAy+sLDPU1L4AiIoRYEIVbbQ/ root@nixos" + ] ; + path = "/var/lib/my_borg_repo" ; + }; + }; +} + +
+ +
+ Backup to the borg repository server + The following NixOS snippet creates an hourly backup to the service + (on the host nixos) as created in the section above. We assume + that you have stored a secret passphrasse in the file + /run/keys/borgbackup_passphrase, which should be only + accessible by root + + + +{ + services.borgbackup.jobs = { + backupToLocalServer = { + paths = [ "/etc/nixos" ]; + doInit = true; + repo = "borg@nixos:." ; + encryption = { + mode = "repokey-blake2"; + passCommand = "cat /run/keys/borgbackup_passphrase"; + }; + environment = { BORG_RSH = "ssh -i /run/keys/id_ed25519_my_borg_repo"; }; + compression = "auto,lzma"; + startAt = "hourly"; + }; + }; +}; + + The following few commands (run as root) let you test your backup. + +> nixos-rebuild switch +...restarting the following units: polkit.service +> systemctl restart borgbackup-job-backupToLocalServer +> sleep 10 +> systemctl restart borgbackup-job-backupToLocalServer +> export BORG_PASSPHRASE=topSecrect +> borg list --rsh='ssh -i /run/keys/id_ed25519_my_borg_repo' borg@nixos:. +nixos-backupToLocalServer-2020-03-30T21:46:17 Mon, 2020-03-30 21:46:19 [84feb97710954931ca384182f5f3cb90665f35cef214760abd7350fb064786ac] +nixos-backupToLocalServer-2020-03-30T21:46:30 Mon, 2020-03-30 21:46:32 [e77321694ecd160ca2228611747c6ad1be177d6e0d894538898de7a2621b6e68] + +
+ +
+ Backup to a hosting service + + + Several companies offer (paid) + hosting services for Borg repositories. + + + To backup your home directory to borgbase you have to: + + + + + Generate a SSH key without a password, to access the remote server. E.g. + + + sudo ssh-keygen -N '' -t ed25519 -f /run/keys/id_ed25519_borgbase + + + + + Create the repository on the server by following the instructions for your + hosting server. + + + + + Initialize the repository on the server. Eg. + +sudo borg init --encryption=repokey-blake2 \ + -rsh "ssh -i /run/keys/id_ed25519_borgbase" \ + zzz2aaaaa@zzz2aaaaa.repo.borgbase.com:repo + + + +Add it to your NixOS configuration, e.g. + +{ + services.borgbackup.jobs = { + my_Remote_Backup = { + paths = [ "/" ]; + exclude = [ "/nix" "'**/.cache'" ]; + repo = "zzz2aaaaa@zzz2aaaaa.repo.borgbase.com:repo"; + encryption = { + mode = "repokey-blake2"; + passCommand = "cat /run/keys/borgbackup_passphrase"; + }; + BORG_RSH = "ssh -i /run/keys/id_ed25519_borgbase"; + compression = "auto,lzma"; + startAt = "daily"; + }; + }; +}} + + + +
+
+ Vorta backup client for the desktop + + Vorta is a backup client for macOS and Linux desktops. It integrates the + mighty BorgBackup with your desktop environment to protect your data from + disk failure, ransomware and theft. + + + It is available as a flatpak package. To enable it you must set the + following two configuration items. + + + +services.flatpak.enable = true ; +# next line is needed to avoid the Error +# Error deploying: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: +services.accounts-daemon.enable = true; + + + As a normal user you must first install, then run vorta using the + following commands: + +flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo +flatpak install flathub com.borgbase.Vorta +flatpak run --branch=stable --arch=x86_64 --command=vorta com.borgbase.Vorta + + After running flatpak install you can start Vorta also via + the KDE application menu. + + + Details about using Vorta can be found under https://vorta.borgbase.com + . + +
+
diff --git a/nixos/modules/services/backup/mysql-backup.nix b/nixos/modules/services/backup/mysql-backup.nix index f58af82773f..31d606b141a 100644 --- a/nixos/modules/services/backup/mysql-backup.nix +++ b/nixos/modules/services/backup/mysql-backup.nix @@ -37,12 +37,7 @@ in services.mysqlBackup = { - enable = mkOption { - default = false; - description = '' - Whether to enable MySQL backups. - ''; - }; + enable = mkEnableOption "MySQL backups"; calendar = mkOption { type = types.str; diff --git a/nixos/modules/services/backup/postgresql-backup.nix b/nixos/modules/services/backup/postgresql-backup.nix index 580c7ce68f1..428861a7598 100644 --- a/nixos/modules/services/backup/postgresql-backup.nix +++ b/nixos/modules/services/backup/postgresql-backup.nix @@ -44,12 +44,7 @@ in { options = { services.postgresqlBackup = { - enable = mkOption { - default = false; - description = '' - Whether to enable PostgreSQL dumps. - ''; - }; + enable = mkEnableOption "PostgreSQL dumps"; startAt = mkOption { default = "*-*-* 01:15:00"; diff --git a/nixos/modules/services/backup/syncoid.nix b/nixos/modules/services/backup/syncoid.nix index 53787a0182a..fff119c2cf0 100644 --- a/nixos/modules/services/backup/syncoid.nix +++ b/nixos/modules/services/backup/syncoid.nix @@ -138,7 +138,11 @@ in { }; })); default = {}; - example."pool/test".target = "root@target:pool/test"; + example = literalExample '' + { + "pool/test".target = "root@target:pool/test"; + } + ''; description = "Syncoid commands to run."; }; }; diff --git a/nixos/modules/services/cluster/hadoop/default.nix b/nixos/modules/services/cluster/hadoop/default.nix index f0f5a6ecbfc..bfb73f68371 100644 --- a/nixos/modules/services/cluster/hadoop/default.nix +++ b/nixos/modules/services/cluster/hadoop/default.nix @@ -7,33 +7,41 @@ with lib; options.services.hadoop = { coreSite = mkOption { default = {}; - example = { - "fs.defaultFS" = "hdfs://localhost"; - }; + example = literalExample '' + { + "fs.defaultFS" = "hdfs://localhost"; + } + ''; description = "Hadoop core-site.xml definition"; }; hdfsSite = mkOption { default = {}; - example = { - "dfs.nameservices" = "namenode1"; - }; + example = literalExample '' + { + "dfs.nameservices" = "namenode1"; + } + ''; description = "Hadoop hdfs-site.xml definition"; }; mapredSite = mkOption { default = {}; - example = { - "mapreduce.map.cpu.vcores" = "1"; - }; + example = literalExample '' + { + "mapreduce.map.cpu.vcores" = "1"; + } + ''; description = "Hadoop mapred-site.xml definition"; }; yarnSite = mkOption { default = {}; - example = { - "yarn.resourcemanager.ha.id" = "resourcemanager1"; - }; + example = literalExample '' + { + "yarn.resourcemanager.ha.id" = "resourcemanager1"; + } + ''; description = "Hadoop yarn-site.xml definition"; }; diff --git a/nixos/modules/services/cluster/k3s/default.nix b/nixos/modules/services/cluster/k3s/default.nix new file mode 100644 index 00000000000..2e8bf20a68f --- /dev/null +++ b/nixos/modules/services/cluster/k3s/default.nix @@ -0,0 +1,101 @@ +{ config, lib, pkgs, ... }: + +with lib; +let + cfg = config.services.k3s; +in +{ + # interface + options.services.k3s = { + enable = mkEnableOption "k3s"; + + package = mkOption { + type = types.package; + default = pkgs.k3s; + defaultText = "pkgs.k3s"; + example = literalExample "pkgs.k3s"; + description = "Package that should be used for k3s"; + }; + + role = mkOption { + description = '' + Whether k3s should run as a server or agent. + Note that the server, by default, also runs as an agent. + ''; + default = "server"; + type = types.enum [ "server" "agent" ]; + }; + + serverAddr = mkOption { + type = types.str; + description = "The k3s server to connect to. This option only makes sense for an agent."; + example = "https://10.0.0.10:6443"; + default = ""; + }; + + token = mkOption { + type = types.str; + description = "The k3s token to use when connecting to the server. This option only makes sense for an agent."; + default = ""; + }; + + docker = mkOption { + type = types.bool; + default = false; + description = "Use docker to run containers rather than the built-in containerd."; + }; + + extraFlags = mkOption { + description = "Extra flags to pass to the k3s command."; + default = ""; + example = "--no-deploy traefik --cluster-cidr 10.24.0.0/16"; + }; + + disableAgent = mkOption { + type = types.bool; + default = false; + description = "Only run the server. This option only makes sense for a server."; + }; + }; + + # implementation + + config = mkIf cfg.enable { + assertions = [ + { + assertion = cfg.role == "agent" -> cfg.serverAddr != ""; + message = "serverAddr should be set if role is 'agent'"; + } + { + assertion = cfg.role == "agent" -> cfg.token != ""; + message = "token should be set if role is 'agent'"; + } + ]; + + virtualisation.docker = mkIf cfg.docker { + enable = mkDefault true; + }; + + systemd.services.k3s = { + description = "k3s service"; + after = mkIf cfg.docker [ "docker.service" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + # See: https://github.com/rancher/k3s/blob/dddbd16305284ae4bd14c0aade892412310d7edc/install.sh#L197 + Type = if cfg.role == "agent" then "exec" else "notify"; + KillMode = "process"; + Delegate = "yes"; + Restart = "always"; + RestartSec = "5s"; + ExecStart = concatStringsSep " \\\n " ( + [ + "${cfg.package}/bin/k3s ${cfg.role}" + ] ++ (optional cfg.docker "--docker") + ++ (optional cfg.disableAgent "--disable-agent") + ++ (optional (cfg.role == "agent") "--server ${cfg.serverAddr} --token ${cfg.token}") + ++ [ cfg.extraFlags ] + ); + }; + }; + }; +} diff --git a/nixos/modules/services/cluster/kubernetes/addon-manager.nix b/nixos/modules/services/cluster/kubernetes/addon-manager.nix index 17f2dde31a7..f55079300b1 100644 --- a/nixos/modules/services/cluster/kubernetes/addon-manager.nix +++ b/nixos/modules/services/cluster/kubernetes/addon-manager.nix @@ -88,7 +88,7 @@ in services.kubernetes.addonManager.bootstrapAddons = mkIf isRBACEnabled (let - name = system:kube-addon-manager; + name = "system:kube-addon-manager"; namespace = "kube-system"; in { diff --git a/nixos/modules/services/computing/boinc/client.nix b/nixos/modules/services/computing/boinc/client.nix index a7edac02538..7becf624071 100644 --- a/nixos/modules/services/computing/boinc/client.nix +++ b/nixos/modules/services/computing/boinc/client.nix @@ -99,14 +99,16 @@ in environment.systemPackages = [cfg.package]; users.users.boinc = { + group = "boinc"; createHome = false; description = "BOINC Client"; home = cfg.dataDir; isSystemUser = true; }; + users.groups.boinc = {}; systemd.tmpfiles.rules = [ - "d '${cfg.dataDir}' - boinc - - -" + "d '${cfg.dataDir}' - boinc boinc - -" ]; systemd.services.boinc = { @@ -114,7 +116,7 @@ in after = ["network.target"]; wantedBy = ["multi-user.target"]; script = '' - ${fhsEnvExecutable} --dir ${cfg.dataDir} --redirectio ${allowRemoteGuiRpcFlag} + ${fhsEnvExecutable} --dir ${cfg.dataDir} ${allowRemoteGuiRpcFlag} ''; serviceConfig = { User = "boinc"; diff --git a/nixos/modules/services/continuous-integration/buildkite-agents.nix b/nixos/modules/services/continuous-integration/buildkite-agents.nix index c17d89c387a..b0045409ae6 100644 --- a/nixos/modules/services/continuous-integration/buildkite-agents.nix +++ b/nixos/modules/services/continuous-integration/buildkite-agents.nix @@ -208,8 +208,12 @@ in description = "Buildkite agent user"; extraGroups = [ "keys" ]; isSystemUser = true; + group = "buildkite-agent-${name}"; }; }); + config.users.groups = mapAgents (name: cfg: { + "buildkite-agent-${name}" = {}; + }); config.systemd.services = mapAgents (name: cfg: { "buildkite-agent-${name}" = diff --git a/nixos/modules/services/continuous-integration/gitlab-runner.nix b/nixos/modules/services/continuous-integration/gitlab-runner.nix index 3d307b1abcf..84f04a27641 100644 --- a/nixos/modules/services/continuous-integration/gitlab-runner.nix +++ b/nixos/modules/services/continuous-integration/gitlab-runner.nix @@ -1,151 +1,494 @@ { config, lib, pkgs, ... }: - with lib; - let cfg = config.services.gitlab-runner; - configFile = - if (cfg.configFile == null) then - (pkgs.runCommand "config.toml" { - buildInputs = [ pkgs.remarshal ]; - preferLocalBuild = true; - } '' - remarshal -if json -of toml \ - < ${pkgs.writeText "config.json" (builtins.toJSON cfg.configOptions)} \ - > $out - '') - else - cfg.configFile; hasDocker = config.virtualisation.docker.enable; + hashedServices = with builtins; (mapAttrs' (name: service: nameValuePair + "${name}_${config.networking.hostName}_${ + substring 0 12 + (hashString "md5" (unsafeDiscardStringContext (toJSON service)))}" + service) + cfg.services); + configPath = "$HOME/.gitlab-runner/config.toml"; + configureScript = pkgs.writeShellScriptBin "gitlab-runner-configure" ( + if (cfg.configFile != null) then '' + mkdir -p $(dirname ${configPath}) + cp ${cfg.configFile} ${configPath} + # make config file readable by service + chown -R --reference=$HOME $(dirname ${configPath}) + '' else '' + export CONFIG_FILE=${configPath} + + mkdir -p $(dirname ${configPath}) + + # remove no longer existing services + gitlab-runner verify --delete + + # current and desired state + NEEDED_SERVICES=$(echo ${concatStringsSep " " (attrNames hashedServices)} | tr " " "\n") + REGISTERED_SERVICES=$(gitlab-runner list 2>&1 | grep 'Executor' | awk '{ print $1 }') + + # difference between current and desired state + NEW_SERVICES=$(grep -vxF -f <(echo "$REGISTERED_SERVICES") <(echo "$NEEDED_SERVICES") || true) + OLD_SERVICES=$(grep -vxF -f <(echo "$NEEDED_SERVICES") <(echo "$REGISTERED_SERVICES") || true) + + # register new services + ${concatStringsSep "\n" (mapAttrsToList (name: service: '' + if echo "$NEW_SERVICES" | grep -xq ${name}; then + bash -c ${escapeShellArg (concatStringsSep " \\\n " ([ + "set -a && source ${service.registrationConfigFile} &&" + "gitlab-runner register" + "--non-interactive" + "--name ${name}" + "--executor ${service.executor}" + "--limit ${toString service.limit}" + "--request-concurrency ${toString service.requestConcurrency}" + "--maximum-timeout ${toString service.maximumTimeout}" + ] ++ service.registrationFlags + ++ optional (service.buildsDir != null) + "--builds-dir ${service.buildsDir}" + ++ optional (service.preCloneScript != null) + "--pre-clone-script ${service.preCloneScript}" + ++ optional (service.preBuildScript != null) + "--pre-build-script ${service.preBuildScript}" + ++ optional (service.postBuildScript != null) + "--post-build-script ${service.postBuildScript}" + ++ optional (service.tagList != [ ]) + "--tag-list ${concatStringsSep "," service.tagList}" + ++ optional service.runUntagged + "--run-untagged" + ++ optional service.protected + "--access-level ref_protected" + ++ optional service.debugTraceDisabled + "--debug-trace-disabled" + ++ map (e: "--env ${escapeShellArg e}") (mapAttrsToList (name: value: "${name}=${value}") service.environmentVariables) + ++ optionals (service.executor == "docker") ( + assert ( + assertMsg (service.dockerImage != null) + "dockerImage option is required for docker executor (${name})"); + [ "--docker-image ${service.dockerImage}" ] + ++ optional service.dockerDisableCache + "--docker-disable-cache" + ++ optional service.dockerPrivileged + "--docker-privileged" + ++ map (v: "--docker-volumes ${escapeShellArg v}") service.dockerVolumes + ++ map (v: "--docker-extra-hosts ${escapeShellArg v}") service.dockerExtraHosts + ++ map (v: "--docker-allowed-images ${escapeShellArg v}") service.dockerAllowedImages + ++ map (v: "--docker-allowed-services ${escapeShellArg v}") service.dockerAllowedServices + ) + ))} && sleep 1 + fi + '') hashedServices)} + + # unregister old services + for NAME in $(echo "$OLD_SERVICES") + do + [ ! -z "$NAME" ] && gitlab-runner unregister \ + --name "$NAME" && sleep 1 + done + + # update global options + remarshal --if toml --of json ${configPath} \ + | jq -cM '.check_interval = ${toString cfg.checkInterval} | + .concurrent = ${toString cfg.concurrent}' \ + | remarshal --if json --of toml \ + | sponge ${configPath} + + # make config file readable by service + chown -R --reference=$HOME $(dirname ${configPath}) + ''); + startScript = pkgs.writeShellScriptBin "gitlab-runner-start" '' + export CONFIG_FILE=${configPath} + exec gitlab-runner run --working-directory $HOME + ''; in { options.services.gitlab-runner = { enable = mkEnableOption "Gitlab Runner"; - configFile = mkOption { + type = types.nullOr types.path; default = null; description = '' Configuration file for gitlab-runner. - Use this option in favor of configOptions to avoid placing CI tokens in the nix store. - takes precedence over . + takes precedence over . + and will be ignored too. - Warning: Not using will potentially result in secrets - leaking into the WORLD-READABLE nix store. + This option is deprecated, please use instead. + You can use and + + for settings not covered by this module. ''; - type = types.nullOr types.path; }; - - configOptions = mkOption { + checkInterval = mkOption { + type = types.int; + default = 0; + example = literalExample "with lib; (length (attrNames config.services.gitlab-runner.services)) * 3"; description = '' - Configuration for gitlab-runner - will take precedence over this option. - - Warning: all Configuration, especially CI token, will be stored in a - WORLD-READABLE file in the Nix Store. - - If you want to protect your CI token use instead. + Defines the interval length, in seconds, between new jobs check. + The default value is 3; + if set to 0 or lower, the default value will be used. + See runner documentation for more information. + ''; + }; + concurrent = mkOption { + type = types.int; + default = 1; + example = literalExample "config.nix.maxJobs"; + description = '' + Limits how many jobs globally can be run concurrently. + The most upper limit of jobs using all defined runners. + 0 does not mean unlimited. ''; - type = types.attrs; - example = { - concurrent = 2; - runners = [{ - name = "docker-nix-1.11"; - url = "https://CI/"; - token = "TOKEN"; - executor = "docker"; - builds_dir = ""; - docker = { - host = ""; - image = "nixos/nix:1.11"; - privileged = true; - disable_cache = true; - cache_dir = ""; - }; - }]; - }; }; - gracefulTermination = mkOption { - default = false; type = types.bool; + default = false; description = '' - Finish all remaining jobs before stopping, restarting or reconfiguring. - If not set gitlab-runner will stop immediatly without waiting for jobs to finish, - which will lead to failed builds. + Finish all remaining jobs before stopping. + If not set gitlab-runner will stop immediatly without waiting + for jobs to finish, which will lead to failed builds. ''; }; - gracefulTimeout = mkOption { - default = "infinity"; type = types.str; + default = "infinity"; example = "5min 20s"; - description = ''Time to wait until a graceful shutdown is turned into a forceful one.''; + description = '' + Time to wait until a graceful shutdown is turned into a forceful one. + ''; }; - - workDir = mkOption { - default = "/var/lib/gitlab-runner"; - type = types.path; - description = "The working directory used"; - }; - package = mkOption { - description = "Gitlab Runner package to use"; + type = types.package; default = pkgs.gitlab-runner; defaultText = "pkgs.gitlab-runner"; - type = types.package; example = literalExample "pkgs.gitlab-runner_1_11"; + description = "Gitlab Runner package to use."; }; - - packages = mkOption { - default = [ pkgs.bash pkgs.docker-machine ]; - defaultText = "[ pkgs.bash pkgs.docker-machine ]"; + extraPackages = mkOption { type = types.listOf types.package; + default = [ ]; description = '' - Packages to add to PATH for the gitlab-runner process. + Extra packages to add to PATH for the gitlab-runner process. ''; }; + services = mkOption { + description = "GitLab Runner services."; + default = { }; + example = literalExample '' + { + # runner for building in docker via host's nix-daemon + # nix store will be readable in runner, might be insecure + nix = { + # File should contain at least these two variables: + # `CI_SERVER_URL` + # `REGISTRATION_TOKEN` + registrationConfigFile = "/run/secrets/gitlab-runner-registration"; + dockerImage = "alpine"; + dockerVolumes = [ + "/nix/store:/nix/store:ro" + "/nix/var/nix/db:/nix/var/nix/db:ro" + "/nix/var/nix/daemon-socket:/nix/var/nix/daemon-socket:ro" + ]; + dockerDisableCache = true; + preBuildScript = pkgs.writeScript "setup-container" ''' + mkdir -p -m 0755 /nix/var/log/nix/drvs + mkdir -p -m 0755 /nix/var/nix/gcroots + mkdir -p -m 0755 /nix/var/nix/profiles + mkdir -p -m 0755 /nix/var/nix/temproots + mkdir -p -m 0755 /nix/var/nix/userpool + mkdir -p -m 1777 /nix/var/nix/gcroots/per-user + mkdir -p -m 1777 /nix/var/nix/profiles/per-user + mkdir -p -m 0755 /nix/var/nix/profiles/per-user/root + mkdir -p -m 0700 "$HOME/.nix-defexpr" + . ''${pkgs.nix}/etc/profile.d/nix.sh + + ''${pkgs.nix}/bin/nix-env -i ''${concatStringsSep " " (with pkgs; [ nix cacert git openssh ])} + + ''${pkgs.nix}/bin/nix-channel --add https://nixos.org/channels/nixpkgs-unstable + ''${pkgs.nix}/bin/nix-channel --update nixpkgs + '''; + environmentVariables = { + ENV = "/etc/profile"; + USER = "root"; + NIX_REMOTE = "daemon"; + PATH = "/nix/var/nix/profiles/default/bin:/nix/var/nix/profiles/default/sbin:/bin:/sbin:/usr/bin:/usr/sbin"; + NIX_SSL_CERT_FILE = "/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt"; + }; + tagList = [ "nix" ]; + }; + # runner for building docker images + docker-images = { + # File should contain at least these two variables: + # `CI_SERVER_URL` + # `REGISTRATION_TOKEN` + registrationConfigFile = "/run/secrets/gitlab-runner-registration"; + dockerImage = "docker:stable"; + dockerVolumes = [ + "/var/run/docker.sock:/var/run/docker.sock" + ]; + tagList = [ "docker-images" ]; + }; + # runner for executing stuff on host system (very insecure!) + # make sure to add required packages (including git!) + # to `environment.systemPackages` + shell = { + # File should contain at least these two variables: + # `CI_SERVER_URL` + # `REGISTRATION_TOKEN` + registrationConfigFile = "/run/secrets/gitlab-runner-registration"; + executor = "shell"; + tagList = [ "shell" ]; + }; + # runner for everything else + default = { + # File should contain at least these two variables: + # `CI_SERVER_URL` + # `REGISTRATION_TOKEN` + registrationConfigFile = "/run/secrets/gitlab-runner-registration"; + dockerImage = "debian:stable"; + }; + } + ''; + type = types.attrsOf (types.submodule { + options = { + registrationConfigFile = mkOption { + type = types.path; + description = '' + Absolute path to a file with environment variables + used for gitlab-runner registration. + A list of all supported environment variables can be found in + gitlab-runner register --help. + + Ones that you probably want to set is + + CI_SERVER_URL=<CI server URL> + + REGISTRATION_TOKEN=<registration secret> + ''; + }; + registrationFlags = mkOption { + type = types.listOf types.str; + default = [ ]; + example = [ "--docker-helper-image my/gitlab-runner-helper" ]; + description = '' + Extra command-line flags passed to + gitlab-runner register. + Execute gitlab-runner register --help + for a list of supported flags. + ''; + }; + environmentVariables = mkOption { + type = types.attrsOf types.str; + default = { }; + example = { NAME = "value"; }; + description = '' + Custom environment variables injected to build environment. + For secrets you can use + with RUNNER_ENV variable set. + ''; + }; + executor = mkOption { + type = types.str; + default = "docker"; + description = '' + Select executor, eg. shell, docker, etc. + See runner documentation for more information. + ''; + }; + buildsDir = mkOption { + type = types.nullOr types.path; + default = null; + example = "/var/lib/gitlab-runner/builds"; + description = '' + Absolute path to a directory where builds will be stored + in context of selected executor (Locally, Docker, SSH). + ''; + }; + dockerImage = mkOption { + type = types.nullOr types.str; + default = null; + description = '' + Docker image to be used. + ''; + }; + dockerVolumes = mkOption { + type = types.listOf types.str; + default = [ ]; + example = [ "/var/run/docker.sock:/var/run/docker.sock" ]; + description = '' + Bind-mount a volume and create it + if it doesn't exist prior to mounting. + ''; + }; + dockerDisableCache = mkOption { + type = types.bool; + default = false; + description = '' + Disable all container caching. + ''; + }; + dockerPrivileged = mkOption { + type = types.bool; + default = false; + description = '' + Give extended privileges to container. + ''; + }; + dockerExtraHosts = mkOption { + type = types.listOf types.str; + default = [ ]; + example = [ "other-host:127.0.0.1" ]; + description = '' + Add a custom host-to-IP mapping. + ''; + }; + dockerAllowedImages = mkOption { + type = types.listOf types.str; + default = [ ]; + example = [ "ruby:*" "python:*" "php:*" "my.registry.tld:5000/*:*" ]; + description = '' + Whitelist allowed images. + ''; + }; + dockerAllowedServices = mkOption { + type = types.listOf types.str; + default = [ ]; + example = [ "postgres:9" "redis:*" "mysql:*" ]; + description = '' + Whitelist allowed services. + ''; + }; + preCloneScript = mkOption { + type = types.nullOr types.path; + default = null; + description = '' + Runner-specific command script executed before code is pulled. + ''; + }; + preBuildScript = mkOption { + type = types.nullOr types.path; + default = null; + description = '' + Runner-specific command script executed after code is pulled, + just before build executes. + ''; + }; + postBuildScript = mkOption { + type = types.nullOr types.path; + default = null; + description = '' + Runner-specific command script executed after code is pulled + and just after build executes. + ''; + }; + tagList = mkOption { + type = types.listOf types.str; + default = [ ]; + description = '' + Tag list. + ''; + }; + runUntagged = mkOption { + type = types.bool; + default = false; + description = '' + Register to run untagged builds; defaults to + true when is empty. + ''; + }; + limit = mkOption { + type = types.int; + default = 0; + description = '' + Limit how many jobs can be handled concurrently by this service. + 0 (default) simply means don't limit. + ''; + }; + requestConcurrency = mkOption { + type = types.int; + default = 0; + description = '' + Limit number of concurrent requests for new jobs from GitLab. + ''; + }; + maximumTimeout = mkOption { + type = types.int; + default = 0; + description = '' + What is the maximum timeout (in seconds) that will be set for + job when using this Runner. 0 (default) simply means don't limit. + ''; + }; + protected = mkOption { + type = types.bool; + default = false; + description = '' + When set to true Runner will only run on pipelines + triggered on protected branches. + ''; + }; + debugTraceDisabled = mkOption { + type = types.bool; + default = false; + description = '' + When set to true Runner will disable the possibility of + using the CI_DEBUG_TRACE feature. + ''; + }; + }; + }); + }; }; - config = mkIf cfg.enable { + warnings = optional (cfg.configFile != null) "services.gitlab-runner.`configFile` is deprecated, please use services.gitlab-runner.`services`."; + environment.systemPackages = [ cfg.package ]; systemd.services.gitlab-runner = { - path = cfg.packages; - environment = config.networking.proxy.envVars // { - # Gitlab runner will not start if the HOME variable is not set - HOME = cfg.workDir; - }; description = "Gitlab Runner"; + documentation = [ "https://docs.gitlab.com/runner/" ]; after = [ "network.target" ] ++ optional hasDocker "docker.service"; requires = optional hasDocker "docker.service"; wantedBy = [ "multi-user.target" ]; + environment = config.networking.proxy.envVars // { + HOME = "/var/lib/gitlab-runner"; + }; + path = with pkgs; [ + bash + gawk + jq + moreutils + remarshal + utillinux + cfg.package.bin + ] ++ cfg.extraPackages; + reloadIfChanged = true; serviceConfig = { - ExecStart = ''${cfg.package.bin}/bin/gitlab-runner run \ - --working-directory ${cfg.workDir} \ - --config ${configFile} \ - --service gitlab-runner \ - --user gitlab-runner \ - ''; - - } // optionalAttrs (cfg.gracefulTermination) { + # Set `DynamicUser` under `systemd.services.gitlab-runner.serviceConfig` + # to `lib.mkForce false` in your configuration to run this service as root. + # You can also set `User` and `Group` options to run this service as desired user. + # Make sure to restart service or changes won't apply. + DynamicUser = true; + StateDirectory = "gitlab-runner"; + SupplementaryGroups = optional hasDocker "docker"; + ExecStartPre = "!${configureScript}/bin/gitlab-runner-configure"; + ExecStart = "${startScript}/bin/gitlab-runner-start"; + ExecReload = "!${configureScript}/bin/gitlab-runner-configure"; + } // optionalAttrs (cfg.gracefulTermination) { TimeoutStopSec = "${cfg.gracefulTimeout}"; KillSignal = "SIGQUIT"; KillMode = "process"; }; }; - - # Make the gitlab-runner command availabe so users can query the runner - environment.systemPackages = [ cfg.package ]; - - users.users.gitlab-runner = { - group = "gitlab-runner"; - extraGroups = optional hasDocker "docker"; - uid = config.ids.uids.gitlab-runner; - home = cfg.workDir; - createHome = true; - }; - - users.groups.gitlab-runner.gid = config.ids.gids.gitlab-runner; + # Enable docker if `docker` executor is used in any service + virtualisation.docker.enable = mkIf ( + any (s: s.executor == "docker") (attrValues cfg.services) + ) (mkDefault true); }; + imports = [ + (mkRenamedOptionModule [ "services" "gitlab-runner" "packages" ] [ "services" "gitlab-runner" "extraPackages" ] ) + (mkRemovedOptionModule [ "services" "gitlab-runner" "configOptions" ] "Use services.gitlab-runner.services option instead" ) + (mkRemovedOptionModule [ "services" "gitlab-runner" "workDir" ] "You should move contents of workDir (if any) to /var/lib/gitlab-runner" ) + ]; } diff --git a/nixos/modules/services/continuous-integration/hydra/default.nix b/nixos/modules/services/continuous-integration/hydra/default.nix index 8b56207590a..502a5898a5d 100644 --- a/nixos/modules/services/continuous-integration/hydra/default.nix +++ b/nixos/modules/services/continuous-integration/hydra/default.nix @@ -37,6 +37,38 @@ let haveLocalDB = cfg.dbi == localDB; + inherit (config.system) stateVersion; + + hydra-package = + let + makeWrapperArgs = concatStringsSep " " (mapAttrsToList (key: value: "--set \"${key}\" \"${value}\"") hydraEnv); + in pkgs.buildEnv rec { + name = "hydra-env"; + buildInputs = [ pkgs.makeWrapper ]; + paths = [ cfg.package ]; + + postBuild = '' + if [ -L "$out/bin" ]; then + unlink "$out/bin" + fi + mkdir -p "$out/bin" + + for path in ${concatStringsSep " " paths}; do + if [ -d "$path/bin" ]; then + cd "$path/bin" + for prg in *; do + if [ -f "$prg" ]; then + rm -f "$out/bin/$prg" + if [ -x "$prg" ]; then + makeWrapper "$path/bin/$prg" "$out/bin/$prg" ${makeWrapperArgs} + fi + fi + done + fi + done + ''; + }; + in { @@ -63,8 +95,7 @@ in }; package = mkOption { - type = types.path; - default = pkgs.hydra; + type = types.package; defaultText = "pkgs.hydra"; description = "The Hydra package."; }; @@ -194,6 +225,34 @@ in config = mkIf cfg.enable { + warnings = optional (cfg.package.migration or false) '' + You're currently deploying an older version of Hydra which is needed to + make some required database changes[1]. As soon as this is done, it's recommended + to run `hydra-backfill-ids` and set `services.hydra.package` to `pkgs.hydra-unstable` + after that. + + [1] https://github.com/NixOS/hydra/pull/711 + ''; + + services.hydra.package = with pkgs; + mkDefault ( + if pkgs ? hydra + then throw '' + The Hydra package doesn't exist anymore in `nixpkgs`! It probably exists + due to an overlay. To upgrade Hydra, you need to take two steps as some + bigger changes in the database schema were implemented recently[1]. You first + need to deploy `pkgs.hydra-migration`, run `hydra-backfill-ids` on the server + and then deploy `pkgs.hydra-unstable`. + + If you want to use `pkgs.hydra` from your overlay, please set `services.hydra.package` + explicitly to `pkgs.hydra` and make sure you know what you're doing. + + [1] https://github.com/NixOS/hydra/pull/711 + '' + else if versionOlder stateVersion "20.03" then hydra-migration + else hydra-unstable + ); + users.groups.hydra = { gid = config.ids.gids.hydra; }; @@ -237,7 +296,7 @@ in use-substitutes = ${if cfg.useSubstitutes then "1" else "0"} ''; - environment.systemPackages = [ cfg.package ]; + environment.systemPackages = [ hydra-package ]; environment.variables = hydraEnv; @@ -298,7 +357,7 @@ in chown hydra.hydra ${cfg.gcRootsDir} chmod 2775 ${cfg.gcRootsDir} ''; - serviceConfig.ExecStart = "${cfg.package}/bin/hydra-init"; + serviceConfig.ExecStart = "${hydra-package}/bin/hydra-init"; serviceConfig.PermissionsStartOnly = true; serviceConfig.User = "hydra"; serviceConfig.Type = "oneshot"; @@ -313,7 +372,7 @@ in restartTriggers = [ hydraConf ]; serviceConfig = { ExecStart = - "@${cfg.package}/bin/hydra-server hydra-server -f -h '${cfg.listenHost}' " + "@${hydra-package}/bin/hydra-server hydra-server -f -h '${cfg.listenHost}' " + "-p ${toString cfg.port} --max_spare_servers 5 --max_servers 25 " + "--max_requests 100 ${optionalString cfg.debugServer "-d"}"; User = "hydra-www"; @@ -326,15 +385,15 @@ in { wantedBy = [ "multi-user.target" ]; requires = [ "hydra-init.service" ]; after = [ "hydra-init.service" "network.target" ]; - path = [ cfg.package pkgs.nettools pkgs.openssh pkgs.bzip2 config.nix.package ]; + path = [ hydra-package pkgs.nettools pkgs.openssh pkgs.bzip2 config.nix.package ]; restartTriggers = [ hydraConf ]; environment = env // { PGPASSFILE = "${baseDir}/pgpass-queue-runner"; # grrr IN_SYSTEMD = "1"; # to get log severity levels }; serviceConfig = - { ExecStart = "@${cfg.package}/bin/hydra-queue-runner hydra-queue-runner -v"; - ExecStopPost = "${cfg.package}/bin/hydra-queue-runner --unlock"; + { ExecStart = "@${hydra-package}/bin/hydra-queue-runner hydra-queue-runner -v"; + ExecStopPost = "${hydra-package}/bin/hydra-queue-runner --unlock"; User = "hydra-queue-runner"; Restart = "always"; @@ -348,11 +407,11 @@ in { wantedBy = [ "multi-user.target" ]; requires = [ "hydra-init.service" ]; after = [ "hydra-init.service" "network.target" ]; - path = with pkgs; [ cfg.package nettools jq ]; + path = with pkgs; [ hydra-package nettools jq ]; restartTriggers = [ hydraConf ]; environment = env; serviceConfig = - { ExecStart = "@${cfg.package}/bin/hydra-evaluator hydra-evaluator"; + { ExecStart = "@${hydra-package}/bin/hydra-evaluator hydra-evaluator"; User = "hydra"; Restart = "always"; WorkingDirectory = baseDir; @@ -364,7 +423,7 @@ in after = [ "hydra-init.service" ]; environment = env; serviceConfig = - { ExecStart = "@${cfg.package}/bin/hydra-update-gc-roots hydra-update-gc-roots"; + { ExecStart = "@${hydra-package}/bin/hydra-update-gc-roots hydra-update-gc-roots"; User = "hydra"; }; startAt = "2,14:15"; @@ -375,7 +434,7 @@ in after = [ "hydra-init.service" ]; environment = env; serviceConfig = - { ExecStart = "@${cfg.package}/bin/hydra-send-stats hydra-send-stats"; + { ExecStart = "@${hydra-package}/bin/hydra-send-stats hydra-send-stats"; User = "hydra"; }; }; @@ -389,7 +448,7 @@ in PGPASSFILE = "${baseDir}/pgpass-queue-runner"; }; serviceConfig = - { ExecStart = "@${cfg.package}/bin/hydra-notify hydra-notify"; + { ExecStart = "@${hydra-package}/bin/hydra-notify hydra-notify"; # FIXME: run this under a less privileged user? User = "hydra-queue-runner"; Restart = "always"; diff --git a/nixos/modules/services/databases/clickhouse.nix b/nixos/modules/services/databases/clickhouse.nix index dbabcae43ee..27440fec4e1 100644 --- a/nixos/modules/services/databases/clickhouse.nix +++ b/nixos/modules/services/databases/clickhouse.nix @@ -11,10 +11,7 @@ with lib; services.clickhouse = { - enable = mkOption { - default = false; - description = "Whether to enable ClickHouse database server."; - }; + enable = mkEnableOption "ClickHouse database server"; }; diff --git a/nixos/modules/services/databases/cockroachdb.nix b/nixos/modules/services/databases/cockroachdb.nix index b6f94a4881a..35fb46d69d8 100644 --- a/nixos/modules/services/databases/cockroachdb.nix +++ b/nixos/modules/services/databases/cockroachdb.nix @@ -153,7 +153,7 @@ in defaultText = "pkgs.cockroachdb"; description = '' The CockroachDB derivation to use for running the service. - + This would primarily be useful to enable Enterprise Edition features in your own custom CockroachDB build (Nixpkgs CockroachDB binaries only contain open source features and open source code). diff --git a/nixos/modules/services/databases/firebird.nix b/nixos/modules/services/databases/firebird.nix index 042c9841df5..95837aa1cea 100644 --- a/nixos/modules/services/databases/firebird.nix +++ b/nixos/modules/services/databases/firebird.nix @@ -40,12 +40,7 @@ in services.firebird = { - enable = mkOption { - default = false; - description = '' - Whether to enable the Firebird super server. - ''; - }; + enable = mkEnableOption "the Firebird super server"; package = mkOption { default = pkgs.firebirdSuper; diff --git a/nixos/modules/services/databases/memcached.nix b/nixos/modules/services/databases/memcached.nix index 89ff957babf..f54bb6cc9b1 100644 --- a/nixos/modules/services/databases/memcached.nix +++ b/nixos/modules/services/databases/memcached.nix @@ -18,12 +18,7 @@ in services.memcached = { - enable = mkOption { - default = false; - description = " - Whether to enable Memcached. - "; - }; + enable = mkEnableOption "Memcached"; user = mkOption { default = "memcached"; diff --git a/nixos/modules/services/databases/mongodb.nix b/nixos/modules/services/databases/mongodb.nix index 12879afed47..4453a182990 100644 --- a/nixos/modules/services/databases/mongodb.nix +++ b/nixos/modules/services/databases/mongodb.nix @@ -29,12 +29,7 @@ in services.mongodb = { - enable = mkOption { - default = false; - description = " - Whether to enable the MongoDB server. - "; - }; + enable = mkEnableOption "the MongoDB server"; package = mkOption { default = pkgs.mongodb; diff --git a/nixos/modules/services/databases/mysql.nix b/nixos/modules/services/databases/mysql.nix index 248bf0ebc91..f9e657f5774 100644 --- a/nixos/modules/services/databases/mysql.nix +++ b/nixos/modules/services/databases/mysql.nix @@ -10,16 +10,8 @@ let isMariaDB = lib.getName mysql == lib.getName pkgs.mariadb; - isMysqlAtLeast57 = - (lib.getName mysql == lib.getName pkgs.mysql57) - && (builtins.compareVersions mysql.version "5.7" >= 0); - mysqldOptions = "--user=${cfg.user} --datadir=${cfg.dataDir} --basedir=${mysql}"; - # For MySQL 5.7+, --insecure creates the root user without password - # (earlier versions and MariaDB do this by default). - installOptions = - "${mysqldOptions} ${lib.optionalString isMysqlAtLeast57 "--insecure"}"; settingsFile = pkgs.writeText "my.cnf" ( generators.toINI { listsAsDuplicateKeys = true; } cfg.settings + @@ -366,9 +358,14 @@ in pkgs.nettools ]; - preStart = '' + preStart = if isMariaDB then '' if ! test -e ${cfg.dataDir}/mysql; then - ${mysql}/bin/mysql_install_db --defaults-file=/etc/my.cnf ${installOptions} + ${mysql}/bin/mysql_install_db --defaults-file=/etc/my.cnf ${mysqldOptions} + touch /tmp/mysql_init + fi + '' else '' + if ! test -e ${cfg.dataDir}/mysql; then + ${mysql}/bin/mysqld --defaults-file=/etc/my.cnf ${mysqldOptions} --initialize-insecure touch /tmp/mysql_init fi ''; diff --git a/nixos/modules/services/databases/postgresql.xml b/nixos/modules/services/databases/postgresql.xml index 72d4a8249a3..07af4c937f0 100644 --- a/nixos/modules/services/databases/postgresql.xml +++ b/nixos/modules/services/databases/postgresql.xml @@ -7,12 +7,10 @@ - Source: - modules/services/databases/postgresql.nix + Source: modules/services/databases/postgresql.nix - Upstream documentation: - + Upstream documentation: @@ -23,18 +21,12 @@ Configuring - To enable PostgreSQL, add the following to your - configuration.nix: + To enable PostgreSQL, add the following to your configuration.nix: = true; = pkgs.postgresql_11; - Note that you are required to specify the desired version of PostgreSQL - (e.g. pkgs.postgresql_11). Since upgrading your - PostgreSQL version requires a database dump and reload (see below), NixOS - cannot provide a default value for - such as the most recent - release of PostgreSQL. + Note that you are required to specify the desired version of PostgreSQL (e.g. pkgs.postgresql_11). Since upgrading your PostgreSQL version requires a database dump and reload (see below), NixOS cannot provide a default value for such as the most recent release of PostgreSQL. - By default, PostgreSQL stores its databases in - /var/lib/postgresql/$psqlSchema. You can override this using - , e.g. + By default, PostgreSQL stores its databases in /var/lib/postgresql/$psqlSchema. You can override this using , e.g. = "/data/postgresql"; @@ -63,25 +53,83 @@ Type "help" for help. Upgrading - FIXME: document dump/upgrade/load cycle. + Major PostgreSQL upgrade requires PostgreSQL downtime and a few imperative steps to be called. To simplify this process, use the following NixOS module: + + containers.temp-pg.config.services.postgresql = { + enable = true; + package = pkgs.postgresql_12; + ## set a custom new dataDir + # dataDir = "/some/data/dir"; + }; + environment.systemPackages = + let newpg = config.containers.temp-pg.config.services.postgresql; + in [ + (pkgs.writeScriptBin "upgrade-pg-cluster" '' + set -x + export OLDDATA="${config.services.postgresql.dataDir}" + export NEWDATA="${newpg.dataDir}" + export OLDBIN="${config.services.postgresql.package}/bin" + export NEWBIN="${newpg.package}/bin" + + install -d -m 0700 -o postgres -g postgres "$NEWDATA" + cd "$NEWDATA" + sudo -u postgres $NEWBIN/initdb -D "$NEWDATA" + + systemctl stop postgresql # old one + + sudo -u postgres $NEWBIN/pg_upgrade \ + --old-datadir "$OLDDATA" --new-datadir "$NEWDATA" \ + --old-bindir $OLDBIN --new-bindir $NEWBIN \ + "$@" + '') + ]; + + + + The upgrade process is: + + + + + + Rebuild nixos configuration with the configuration above added to your configuration.nix. Alternatively, add that into separate file and reference it in imports list. + + + + + Login as root (sudo su -) + + + + + Run upgrade-pg-cluster. It will stop old postgresql, initialize new one and migrate old one to new one. You may supply arguments like --jobs 4 and --link to speedup migration process. See for details. + + + + + Change postgresql package in NixOS configuration to the one you were upgrading to, and change dataDir to the one you have migrated to. Rebuild NixOS. This should start new postgres using upgraded data directory. + + + + + After upgrade you may want to ANALYZE new db. + + +
Options - A complete list of options for the PostgreSQL module may be found - here. + A complete list of options for the PostgreSQL module may be found here.
Plugins - Plugins collection for each PostgreSQL version can be accessed with - .pkgs. For example, for - pkgs.postgresql_11 package, its plugin collection is - accessed by pkgs.postgresql_11.pkgs: + Plugins collection for each PostgreSQL version can be accessed with .pkgs. For example, for pkgs.postgresql_11 package, its plugin collection is accessed by pkgs.postgresql_11.pkgs: $ nix repl '<nixpkgs>' @@ -98,8 +146,9 @@ postgresql_11.pkgs.pg_partman postgresql_11.pkgs.pgroonga ... + - To add plugins via NixOS configuration, set services.postgresql.extraPlugins: + To add plugins via NixOS configuration, set services.postgresql.extraPlugins: = pkgs.postgresql_11; = with pkgs.postgresql_11.pkgs; [ @@ -108,10 +157,9 @@ postgresql_11.pkgs.pg_partman postgresql_11.pkgs.pgroonga ]; + - You can build custom PostgreSQL-with-plugins (to be used outside of NixOS) using - function .withPackages. For example, creating a custom - PostgreSQL package in an overlay can look like: + You can build custom PostgreSQL-with-plugins (to be used outside of NixOS) using function .withPackages. For example, creating a custom PostgreSQL package in an overlay can look like: self: super: { postgresql_custom = self.postgresql_11.withPackages (ps: [ @@ -121,8 +169,9 @@ self: super: { } + - Here's a recipe on how to override a particular plugin through an overlay: + Here's a recipe on how to override a particular plugin through an overlay: self: super: { postgresql_11 = super.postgresql_11.override { this = self.postgresql_11; } // { diff --git a/nixos/modules/services/databases/virtuoso.nix b/nixos/modules/services/databases/virtuoso.nix index 0cc027cb1d7..6eb09e0a58f 100644 --- a/nixos/modules/services/databases/virtuoso.nix +++ b/nixos/modules/services/databases/virtuoso.nix @@ -13,10 +13,7 @@ with lib; services.virtuoso = { - enable = mkOption { - default = false; - description = "Whether to enable Virtuoso Opensource database server."; - }; + enable = mkEnableOption "Virtuoso Opensource database server"; config = mkOption { default = ""; diff --git a/nixos/modules/services/desktops/accountsservice.nix b/nixos/modules/services/desktops/accountsservice.nix index c48036a99e8..ae2ecb5ffeb 100644 --- a/nixos/modules/services/desktops/accountsservice.nix +++ b/nixos/modules/services/desktops/accountsservice.nix @@ -6,6 +6,10 @@ with lib; { + meta = { + maintainers = teams.freedesktop.members; + }; + ###### interface options = { diff --git a/nixos/modules/services/desktops/bamf.nix b/nixos/modules/services/desktops/bamf.nix index 0928ee81a64..4b35146d084 100644 --- a/nixos/modules/services/desktops/bamf.nix +++ b/nixos/modules/services/desktops/bamf.nix @@ -5,6 +5,10 @@ with lib; { + meta = { + maintainers = with maintainers; [ worldofpeace ]; + }; + ###### interface options = { diff --git a/nixos/modules/services/desktops/gnome3/at-spi2-core.nix b/nixos/modules/services/desktops/gnome3/at-spi2-core.nix index 8fa108c4f9d..492242e3296 100644 --- a/nixos/modules/services/desktops/gnome3/at-spi2-core.nix +++ b/nixos/modules/services/desktops/gnome3/at-spi2-core.nix @@ -6,6 +6,10 @@ with lib; { + meta = { + maintainers = teams.gnome.members; + }; + ###### interface options = { diff --git a/nixos/modules/services/desktops/gnome3/chrome-gnome-shell.nix b/nixos/modules/services/desktops/gnome3/chrome-gnome-shell.nix index 3d2b3ed85e3..3c7f217b18d 100644 --- a/nixos/modules/services/desktops/gnome3/chrome-gnome-shell.nix +++ b/nixos/modules/services/desktops/gnome3/chrome-gnome-shell.nix @@ -4,6 +4,10 @@ with lib; { + meta = { + maintainers = teams.gnome.members; + }; + ###### interface options = { services.gnome3.chrome-gnome-shell.enable = mkEnableOption '' diff --git a/nixos/modules/services/desktops/gnome3/evolution-data-server.nix b/nixos/modules/services/desktops/gnome3/evolution-data-server.nix index 7e312a1b81e..bd62d16f61c 100644 --- a/nixos/modules/services/desktops/gnome3/evolution-data-server.nix +++ b/nixos/modules/services/desktops/gnome3/evolution-data-server.nix @@ -6,6 +6,10 @@ with lib; { + meta = { + maintainers = teams.gnome.members; + }; + ###### interface options = { @@ -16,7 +20,7 @@ with lib; type = types.bool; default = false; description = '' - Whether to enable Evolution Data Server, a collection of services for + Whether to enable Evolution Data Server, a collection of services for storing addressbooks and calendars. ''; }; diff --git a/nixos/modules/services/desktops/gnome3/glib-networking.nix b/nixos/modules/services/desktops/gnome3/glib-networking.nix index fcd58509d6f..7e667b6b1f0 100644 --- a/nixos/modules/services/desktops/gnome3/glib-networking.nix +++ b/nixos/modules/services/desktops/gnome3/glib-networking.nix @@ -6,6 +6,10 @@ with lib; { + meta = { + maintainers = teams.gnome.members; + }; + ###### interface options = { diff --git a/nixos/modules/services/desktops/gnome3/gnome-initial-setup.nix b/nixos/modules/services/desktops/gnome3/gnome-initial-setup.nix index d715d52c2d0..c391ad9694c 100644 --- a/nixos/modules/services/desktops/gnome3/gnome-initial-setup.nix +++ b/nixos/modules/services/desktops/gnome3/gnome-initial-setup.nix @@ -44,6 +44,10 @@ in { + meta = { + maintainers = teams.gnome.members; + }; + ###### interface options = { diff --git a/nixos/modules/services/desktops/gnome3/gnome-keyring.nix b/nixos/modules/services/desktops/gnome3/gnome-keyring.nix index db60445ef77..2916a3c82b3 100644 --- a/nixos/modules/services/desktops/gnome3/gnome-keyring.nix +++ b/nixos/modules/services/desktops/gnome3/gnome-keyring.nix @@ -6,6 +6,10 @@ with lib; { + meta = { + maintainers = teams.gnome.members; + }; + ###### interface options = { @@ -35,6 +39,8 @@ with lib; services.dbus.packages = [ pkgs.gnome3.gnome-keyring pkgs.gcr ]; + xdg.portal.extraPortals = [ pkgs.gnome3.gnome-keyring ]; + security.pam.services.login.enableGnomeKeyring = true; security.wrappers.gnome-keyring-daemon = { diff --git a/nixos/modules/services/desktops/gnome3/gnome-online-accounts.nix b/nixos/modules/services/desktops/gnome3/gnome-online-accounts.nix index 748a025414a..3f9ced5e86b 100644 --- a/nixos/modules/services/desktops/gnome3/gnome-online-accounts.nix +++ b/nixos/modules/services/desktops/gnome3/gnome-online-accounts.nix @@ -6,6 +6,10 @@ with lib; { + meta = { + maintainers = teams.gnome.members; + }; + ###### interface options = { diff --git a/nixos/modules/services/desktops/gnome3/gnome-online-miners.nix b/nixos/modules/services/desktops/gnome3/gnome-online-miners.nix index d406bf6f5e3..39d669e8b30 100644 --- a/nixos/modules/services/desktops/gnome3/gnome-online-miners.nix +++ b/nixos/modules/services/desktops/gnome3/gnome-online-miners.nix @@ -6,6 +6,10 @@ with lib; { + meta = { + maintainers = teams.gnome.members; + }; + ###### interface options = { diff --git a/nixos/modules/services/desktops/gnome3/gnome-remote-desktop.nix b/nixos/modules/services/desktops/gnome3/gnome-remote-desktop.nix index 021f4f9534b..164a0a44f8c 100644 --- a/nixos/modules/services/desktops/gnome3/gnome-remote-desktop.nix +++ b/nixos/modules/services/desktops/gnome3/gnome-remote-desktop.nix @@ -4,6 +4,10 @@ with lib; { + meta = { + maintainers = teams.gnome.members; + }; + ###### interface options = { services.gnome3.gnome-remote-desktop = { @@ -13,6 +17,8 @@ with lib; ###### implementation config = mkIf config.services.gnome3.gnome-remote-desktop.enable { + services.pipewire.enable = true; + systemd.packages = [ pkgs.gnome3.gnome-remote-desktop ]; }; } diff --git a/nixos/modules/services/desktops/gnome3/gnome-settings-daemon.nix b/nixos/modules/services/desktops/gnome3/gnome-settings-daemon.nix index 2f83fd653bd..1c33ed064a1 100644 --- a/nixos/modules/services/desktops/gnome3/gnome-settings-daemon.nix +++ b/nixos/modules/services/desktops/gnome3/gnome-settings-daemon.nix @@ -12,6 +12,10 @@ in { + meta = { + maintainers = teams.gnome.members; + }; + imports = [ (mkRemovedOptionModule ["services" "gnome3" "gnome-settings-daemon" "package"] diff --git a/nixos/modules/services/desktops/gnome3/gnome-user-share.nix b/nixos/modules/services/desktops/gnome3/gnome-user-share.nix index f8396287770..f2fe8b41a9e 100644 --- a/nixos/modules/services/desktops/gnome3/gnome-user-share.nix +++ b/nixos/modules/services/desktops/gnome3/gnome-user-share.nix @@ -6,6 +6,10 @@ with lib; { + meta = { + maintainers = teams.gnome.members; + }; + ###### interface options = { diff --git a/nixos/modules/services/desktops/gnome3/rygel.nix b/nixos/modules/services/desktops/gnome3/rygel.nix index 55d5e703aa1..917a1d6541e 100644 --- a/nixos/modules/services/desktops/gnome3/rygel.nix +++ b/nixos/modules/services/desktops/gnome3/rygel.nix @@ -4,6 +4,10 @@ with lib; { + meta = { + maintainers = teams.gnome.members; + }; + ###### interface options = { services.gnome3.rygel = { @@ -26,5 +30,7 @@ with lib; services.dbus.packages = [ pkgs.gnome3.rygel ]; systemd.packages = [ pkgs.gnome3.rygel ]; + + environment.etc."rygel.conf".source = "${pkgs.gnome3.rygel}/etc/rygel.conf"; }; } diff --git a/nixos/modules/services/desktops/gnome3/sushi.nix b/nixos/modules/services/desktops/gnome3/sushi.nix index 7a4389038b2..83b17365d5d 100644 --- a/nixos/modules/services/desktops/gnome3/sushi.nix +++ b/nixos/modules/services/desktops/gnome3/sushi.nix @@ -6,6 +6,10 @@ with lib; { + meta = { + maintainers = teams.gnome.members; + }; + ###### interface options = { diff --git a/nixos/modules/services/desktops/gnome3/tracker-miners.nix b/nixos/modules/services/desktops/gnome3/tracker-miners.nix index b390d8368c6..f2af4024927 100644 --- a/nixos/modules/services/desktops/gnome3/tracker-miners.nix +++ b/nixos/modules/services/desktops/gnome3/tracker-miners.nix @@ -6,6 +6,10 @@ with lib; { + meta = { + maintainers = teams.gnome.members; + }; + ###### interface options = { @@ -25,7 +29,6 @@ with lib; }; - ###### implementation config = mkIf config.services.gnome3.tracker-miners.enable { diff --git a/nixos/modules/services/desktops/gnome3/tracker.nix b/nixos/modules/services/desktops/gnome3/tracker.nix index 2e829274226..cd196e38553 100644 --- a/nixos/modules/services/desktops/gnome3/tracker.nix +++ b/nixos/modules/services/desktops/gnome3/tracker.nix @@ -6,6 +6,10 @@ with lib; { + meta = { + maintainers = teams.gnome.members; + }; + ###### interface options = { diff --git a/nixos/modules/services/desktops/gvfs.nix b/nixos/modules/services/desktops/gvfs.nix index 1d002eac41d..250ea6d4575 100644 --- a/nixos/modules/services/desktops/gvfs.nix +++ b/nixos/modules/services/desktops/gvfs.nix @@ -12,6 +12,10 @@ in { + meta = { + maintainers = teams.gnome.members; + }; + # Added 2019-08-19 imports = [ (mkRenamedOptionModule diff --git a/nixos/modules/services/desktops/malcontent.nix b/nixos/modules/services/desktops/malcontent.nix index 416464cbe08..5d6912595b5 100644 --- a/nixos/modules/services/desktops/malcontent.nix +++ b/nixos/modules/services/desktops/malcontent.nix @@ -12,7 +12,7 @@ with lib; services.malcontent = { - enable = mkEnableOption "Malcontent"; + enable = mkEnableOption "Malcontent, parental control support for applications"; }; @@ -23,10 +23,15 @@ with lib; config = mkIf config.services.malcontent.enable { - environment.systemPackages = [ pkgs.malcontent ]; + environment.systemPackages = with pkgs; [ + malcontent + malcontent-ui + ]; services.dbus.packages = [ pkgs.malcontent ]; + services.accounts-daemon.enable = true; + }; } diff --git a/nixos/modules/services/desktops/pantheon/contractor.nix b/nixos/modules/services/desktops/pantheon/contractor.nix deleted file mode 100644 index c76145191a7..00000000000 --- a/nixos/modules/services/desktops/pantheon/contractor.nix +++ /dev/null @@ -1,18 +0,0 @@ -# Contractor - -{ config, pkgs, lib, ... }: - -with lib; - -{ - - - ###### implementation - - config = mkIf config.services.pantheon.contractor.enable { - - - - }; - -} diff --git a/nixos/modules/services/desktops/pipewire.nix b/nixos/modules/services/desktops/pipewire.nix index 13f3d61e84c..5aee59cfdcc 100644 --- a/nixos/modules/services/desktops/pipewire.nix +++ b/nixos/modules/services/desktops/pipewire.nix @@ -8,6 +8,11 @@ let packages = with pkgs; [ pipewire ]; in { + + meta = { + maintainers = teams.freedesktop.members; + }; + ###### interface options = { services.pipewire = { @@ -33,5 +38,4 @@ in { systemd.user.sockets.pipewire.wantedBy = lib.mkIf cfg.socketActivation [ "sockets.target" ]; }; - meta.maintainers = with lib.maintainers; [ jtojnar ]; } diff --git a/nixos/modules/services/desktops/telepathy.nix b/nixos/modules/services/desktops/telepathy.nix index f5401c18098..34596bf7818 100644 --- a/nixos/modules/services/desktops/telepathy.nix +++ b/nixos/modules/services/desktops/telepathy.nix @@ -6,6 +6,10 @@ with lib; { + meta = { + maintainers = teams.gnome.members; + }; + ###### interface options = { diff --git a/nixos/modules/services/desktops/tumbler.nix b/nixos/modules/services/desktops/tumbler.nix index a833e99ff8c..a09079517f0 100644 --- a/nixos/modules/services/desktops/tumbler.nix +++ b/nixos/modules/services/desktops/tumbler.nix @@ -18,6 +18,10 @@ in "") ]; + meta = { + maintainers = with maintainers; [ worldofpeace ]; + }; + ###### interface options = { diff --git a/nixos/modules/services/desktops/zeitgeist.nix b/nixos/modules/services/desktops/zeitgeist.nix index 20c82ccdd56..cf7dd5fe3a1 100644 --- a/nixos/modules/services/desktops/zeitgeist.nix +++ b/nixos/modules/services/desktops/zeitgeist.nix @@ -5,6 +5,11 @@ with lib; { + + meta = { + maintainers = with maintainers; [ worldofpeace ]; + }; + ###### interface options = { diff --git a/nixos/modules/services/games/factorio.nix b/nixos/modules/services/games/factorio.nix index f3831156f45..4b2e1a3c07f 100644 --- a/nixos/modules/services/games/factorio.nix +++ b/nixos/modules/services/games/factorio.nix @@ -4,14 +4,13 @@ with lib; let cfg = config.services.factorio; - factorio = pkgs.factorio-headless; name = "Factorio"; stateDir = "/var/lib/${cfg.stateDirName}"; mkSavePath = name: "${stateDir}/saves/${name}.zip"; configFile = pkgs.writeText "factorio.conf" '' use-system-read-write-data-directories=true [path] - read-data=${factorio}/share/factorio/data + read-data=${cfg.package}/share/factorio/data write-data=${stateDir} ''; serverSettings = { @@ -37,7 +36,7 @@ let only_admins_can_pause_the_game = true; autosave_only_on_server = true; admins = []; - }; + } // cfg.extraSettings; serverSettingsFile = pkgs.writeText "server-settings.json" (builtins.toJSON (filterAttrsRecursive (n: v: v != null) serverSettings)); modDir = pkgs.factorio-utils.mkModDirDrv cfg.mods; in @@ -115,6 +114,14 @@ in Description of the game that will appear in the listing. ''; }; + extraSettings = mkOption { + type = types.attrs; + default = {}; + example = { admins = [ "username" ];}; + description = '' + Extra game configuration that will go into server-settings.json + ''; + }; public = mkOption { type = types.bool; default = false; @@ -136,6 +143,15 @@ in Your factorio.com login credentials. Required for games with visibility public. ''; }; + package = mkOption { + type = types.package; + default = pkgs.factorio-headless; + defaultText = "pkgs.factorio-headless"; + example = "pkgs.factorio-headless-experimental"; + description = '' + Factorio version to use. This defaults to the stable channel. + ''; + }; password = mkOption { type = types.nullOr types.str; default = null; @@ -184,7 +200,7 @@ in preStart = toString [ "test -e ${stateDir}/saves/${cfg.saveName}.zip" "||" - "${factorio}/bin/factorio" + "${cfg.package}/bin/factorio" "--config=${cfg.configFile}" "--create=${mkSavePath cfg.saveName}" (optionalString (cfg.mods != []) "--mod-directory=${modDir}") @@ -197,7 +213,7 @@ in StateDirectory = cfg.stateDirName; UMask = "0007"; ExecStart = toString [ - "${factorio}/bin/factorio" + "${cfg.package}/bin/factorio" "--config=${cfg.configFile}" "--port=${toString cfg.port}" "--start-server=${mkSavePath cfg.saveName}" diff --git a/nixos/modules/services/hardware/ratbagd.nix b/nixos/modules/services/hardware/ratbagd.nix index 103e1d2315a..01a8276750f 100644 --- a/nixos/modules/services/hardware/ratbagd.nix +++ b/nixos/modules/services/hardware/ratbagd.nix @@ -10,12 +10,7 @@ in options = { services.ratbagd = { - enable = mkOption { - default = false; - description = '' - Whether to enable ratbagd for configuring gaming mice. - ''; - }; + enable = mkEnableOption "ratbagd for configuring gaming mice"; }; }; diff --git a/nixos/modules/services/hardware/sane_extra_backends/brscan4_etc_files.nix b/nixos/modules/services/hardware/sane_extra_backends/brscan4_etc_files.nix index 6bf31982b71..ec0457bbd58 100644 --- a/nixos/modules/services/hardware/sane_extra_backends/brscan4_etc_files.nix +++ b/nixos/modules/services/hardware/sane_extra_backends/brscan4_etc_files.nix @@ -63,7 +63,7 @@ stdenv.mkDerivation { meta = { description = "Brother brscan4 sane backend driver etc files"; - homepage = http://www.brother.com; + homepage = "http://www.brother.com"; platforms = stdenv.lib.platforms.linux; license = stdenv.lib.licenses.unfree; maintainers = with stdenv.lib.maintainers; [ jraygauthier ]; diff --git a/nixos/modules/services/hardware/thermald.nix b/nixos/modules/services/hardware/thermald.nix index 69577bbe018..ecb529e9bf0 100644 --- a/nixos/modules/services/hardware/thermald.nix +++ b/nixos/modules/services/hardware/thermald.nix @@ -8,12 +8,7 @@ in { ###### interface options = { services.thermald = { - enable = mkOption { - default = false; - description = '' - Whether to enable thermald, the temperature management daemon. - ''; - }; + enable = mkEnableOption "thermald, the temperature management daemon"; debug = mkOption { type = types.bool; diff --git a/nixos/modules/services/hardware/xow.nix b/nixos/modules/services/hardware/xow.nix new file mode 100644 index 00000000000..a18d60ad83b --- /dev/null +++ b/nixos/modules/services/hardware/xow.nix @@ -0,0 +1,17 @@ +{ config, pkgs, lib, ... }: + +let + cfg = config.services.hardware.xow; +in { + options.services.hardware.xow = { + enable = lib.mkEnableOption "xow as a systemd service"; + }; + + config = lib.mkIf cfg.enable { + hardware.uinput.enable = true; + + systemd.packages = [ pkgs.xow ]; + + services.udev.packages = [ pkgs.xow ]; + }; +} diff --git a/nixos/modules/services/mail/postfix.nix b/nixos/modules/services/mail/postfix.nix index 19e11b31d9c..608f64a68fb 100644 --- a/nixos/modules/services/mail/postfix.nix +++ b/nixos/modules/services/mail/postfix.nix @@ -269,6 +269,7 @@ in }; enableSmtp = mkOption { + type = types.bool; default = true; description = "Whether to enable smtp in master.cf."; }; diff --git a/nixos/modules/services/mail/roundcube.nix b/nixos/modules/services/mail/roundcube.nix index 0bb0eaedad5..ed1439745ac 100644 --- a/nixos/modules/services/mail/roundcube.nix +++ b/nixos/modules/services/mail/roundcube.nix @@ -7,6 +7,7 @@ let fpm = config.services.phpfpm.pools.roundcube; localDB = cfg.database.host == "localhost"; user = cfg.database.username; + phpWithPspell = pkgs.php.withExtensions ({ enabled, all }: [ all.pspell ] ++ enabled); in { options.services.roundcube = { @@ -85,6 +86,15 @@ in ''; }; + dicts = mkOption { + type = types.listOf types.package; + default = []; + example = literalExample "with pkgs.aspellDicts; [ en fr de ]"; + description = '' + List of aspell dictionnaries for spell checking. If empty, spell checking is disabled. + ''; + }; + extraConfig = mkOption { type = types.lines; default = ""; @@ -109,6 +119,11 @@ in $config['plugins'] = [${concatMapStringsSep "," (p: "'${p}'") cfg.plugins}]; $config['des_key'] = file_get_contents('/var/lib/roundcube/des_key'); $config['mime_types'] = '${pkgs.nginx}/conf/mime.types'; + $config['enable_spellcheck'] = ${if cfg.dicts == [] then "false" else "true"}; + # by default, spellchecking uses a third-party cloud services + $config['spellcheck_engine'] = 'pspell'; + $config['spellcheck_languages'] = array(${lib.concatMapStringsSep ", " (dict: let p = builtins.parseDrvName dict.shortName; in "'${p.name}' => '${dict.fullName}'") cfg.dicts}); + ${cfg.extraConfig} ''; @@ -172,6 +187,8 @@ in "pm.max_requests" = 500; "catch_workers_output" = true; }; + phpPackage = phpWithPspell; + phpEnv.ASPELL_CONF = "dict-dir ${pkgs.aspellWithDicts (_: cfg.dicts)}/lib/aspell"; }; systemd.services.phpfpm-roundcube.after = [ "roundcube-setup.service" ]; @@ -199,7 +216,7 @@ in ${psql} <<< 'TRUNCATE TABLE session;' fi - ${pkgs.php}/bin/php ${cfg.package}/bin/update.sh + ${phpWithPspell}/bin/php ${cfg.package}/bin/update.sh ''; serviceConfig = { Type = "oneshot"; diff --git a/nixos/modules/services/mail/rss2email.nix b/nixos/modules/services/mail/rss2email.nix index c1e5964c453..7f8d2adac64 100644 --- a/nixos/modules/services/mail/rss2email.nix +++ b/nixos/modules/services/mail/rss2email.nix @@ -91,6 +91,8 @@ in { }; }; + environment.systemPackages = with pkgs; [ rss2email ]; + services.rss2email.config.to = cfg.to; systemd.tmpfiles.rules = [ diff --git a/nixos/modules/services/mail/spamassassin.nix b/nixos/modules/services/mail/spamassassin.nix index 2d5fb40fad3..4e642542ec6 100644 --- a/nixos/modules/services/mail/spamassassin.nix +++ b/nixos/modules/services/mail/spamassassin.nix @@ -12,12 +12,10 @@ in options = { services.spamassassin = { - enable = mkOption { - default = false; - description = "Whether to run the SpamAssassin daemon"; - }; + enable = mkEnableOption "the SpamAssassin daemon"; debug = mkOption { + type = types.bool; default = false; description = "Whether to run the SpamAssassin daemon in debug mode"; }; diff --git a/nixos/modules/services/mail/sympa.nix b/nixos/modules/services/mail/sympa.nix index c3ae9d4255b..0cad09927b2 100644 --- a/nixos/modules/services/mail/sympa.nix +++ b/nixos/modules/services/mail/sympa.nix @@ -25,8 +25,6 @@ let StateDirectory = "sympa"; ProtectHome = true; ProtectSystem = "full"; - ProtectKernelTunables = true; - ProtectKernelModules = true; ProtectControlGroups = true; }; @@ -415,7 +413,7 @@ in # force-copy static_content so it's up to date with package # set permissions for wwsympa which needs write access (...) "R ${dataDir}/static_content - - - - -" - "C ${dataDir}/static_content 0711 ${user} ${group} - ${pkg}/static_content" + "C ${dataDir}/static_content 0711 ${user} ${group} - ${pkg}/var/lib/sympa/static_content" "e ${dataDir}/static_content/* 0711 ${user} ${group} - -" "d /run/sympa 0755 ${user} ${group} - -" @@ -497,7 +495,7 @@ in -F ${toString cfg.web.fcgiProcs} \ -P /run/sympa/wwsympa.pid \ -s /run/sympa/wwsympa.socket \ - -- ${pkg}/bin/wwsympa.fcgi + -- ${pkg}/lib/sympa/cgi/wwsympa.fcgi ''; } // commonServiceConfig; @@ -518,7 +516,7 @@ in fastcgi_split_path_info ^(${loc})(.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; - fastcgi_param SCRIPT_FILENAME ${pkg}/bin/wwsympa.fcgi; + fastcgi_param SCRIPT_FILENAME ${pkg}/lib/sympa/cgi/wwsympa.fcgi; ''; }) // { "/static-sympa/".alias = "${dataDir}/static_content/"; @@ -550,7 +548,7 @@ in args = [ "flags=hqRu" "user=${user}" - "argv=${pkg}/bin/queue" + "argv=${pkg}/libexec/queue" "\${nexthop}" ]; }; @@ -562,7 +560,7 @@ in args = [ "flags=hqRu" "user=${user}" - "argv=${pkg}/bin/bouncequeue" + "argv=${pkg}/libexec/bouncequeue" "\${nexthop}" ]; }; diff --git a/nixos/modules/services/misc/airsonic.nix b/nixos/modules/services/misc/airsonic.nix index c296e048cea..5cc2ff7f4bd 100644 --- a/nixos/modules/services/misc/airsonic.nix +++ b/nixos/modules/services/misc/airsonic.nix @@ -138,6 +138,7 @@ in { services.nginx = mkIf (cfg.virtualHost != null) { enable = true; + recommendedProxySettings = true; virtualHosts.${cfg.virtualHost} = { locations.${cfg.contextPath}.proxyPass = "http://${cfg.listenAddress}:${toString cfg.port}"; }; diff --git a/nixos/modules/services/misc/autofs.nix b/nixos/modules/services/misc/autofs.nix index f1742177326..5e7c1e66828 100644 --- a/nixos/modules/services/misc/autofs.nix +++ b/nixos/modules/services/misc/autofs.nix @@ -19,6 +19,7 @@ in services.autofs = { enable = mkOption { + type = types.bool; default = false; description = '' Mount filesystems on demand. Unmount them automatically. @@ -56,6 +57,7 @@ in }; debug = mkOption { + type = types.bool; default = false; description = '' Pass -d and -7 to automount and write log to the system journal. diff --git a/nixos/modules/services/misc/cgminer.nix b/nixos/modules/services/misc/cgminer.nix index 9fcae645269..7635c2a0f4e 100644 --- a/nixos/modules/services/misc/cgminer.nix +++ b/nixos/modules/services/misc/cgminer.nix @@ -31,13 +31,7 @@ in services.cgminer = { - enable = mkOption { - default = false; - description = '' - Whether to enable cgminer, an ASIC/FPGA/GPU miner for bitcoin and - litecoin. - ''; - }; + enable = mkEnableOption "cgminer, an ASIC/FPGA/GPU miner for bitcoin and litecoin"; package = mkOption { default = pkgs.cgminer; diff --git a/nixos/modules/services/misc/devmon.nix b/nixos/modules/services/misc/devmon.nix index 9dc8fee2964..e4a3348646b 100644 --- a/nixos/modules/services/misc/devmon.nix +++ b/nixos/modules/services/misc/devmon.nix @@ -8,12 +8,7 @@ let in { options = { services.devmon = { - enable = mkOption { - default = false; - description = '' - Whether to enable devmon, an automatic device mounting daemon. - ''; - }; + enable = mkEnableOption "devmon, an automatic device mounting daemon"; }; }; diff --git a/nixos/modules/services/misc/disnix.nix b/nixos/modules/services/misc/disnix.nix index b7b6eb7cd66..69386cdbb38 100644 --- a/nixos/modules/services/misc/disnix.nix +++ b/nixos/modules/services/misc/disnix.nix @@ -17,10 +17,7 @@ in services.disnix = { - enable = mkOption { - default = false; - description = "Whether to enable Disnix"; - }; + enable = mkEnableOption "Disnix"; enableMultiUser = mkOption { type = types.bool; @@ -28,10 +25,7 @@ in description = "Whether to support multi-user mode by enabling the Disnix D-Bus service"; }; - useWebServiceInterface = mkOption { - default = false; - description = "Whether to enable the DisnixWebService interface running on Apache Tomcat"; - }; + useWebServiceInterface = mkEnableOption "the DisnixWebService interface running on Apache Tomcat"; package = mkOption { type = types.path; diff --git a/nixos/modules/services/misc/dysnomia.nix b/nixos/modules/services/misc/dysnomia.nix index 33a6fb15264..4b52963500d 100644 --- a/nixos/modules/services/misc/dysnomia.nix +++ b/nixos/modules/services/misc/dysnomia.nix @@ -177,7 +177,7 @@ in wrapper = {}; } // lib.optionalAttrs (config.services.httpd.enable) { apache-webapplication = { - documentRoot = config.services.httpd.documentRoot; + documentRoot = config.services.httpd.virtualHosts.localhost.documentRoot; }; } // lib.optionalAttrs (config.services.tomcat.axis2.enable) { axis2-webservice = {}; } // lib.optionalAttrs (config.services.ejabberd.enable) { ejabberd-dump = { diff --git a/nixos/modules/services/misc/felix.nix b/nixos/modules/services/misc/felix.nix index 188e45abc58..21740c8c0b7 100644 --- a/nixos/modules/services/misc/felix.nix +++ b/nixos/modules/services/misc/felix.nix @@ -17,10 +17,7 @@ in services.felix = { - enable = mkOption { - default = false; - description = "Whether to enable the Apache Felix OSGi service"; - }; + enable = mkEnableOption "the Apache Felix OSGi service"; bundles = mkOption { type = types.listOf types.package; diff --git a/nixos/modules/services/misc/gitlab.nix b/nixos/modules/services/misc/gitlab.nix index aa958985379..730166b04d2 100644 --- a/nixos/modules/services/misc/gitlab.nix +++ b/nixos/modules/services/misc/gitlab.nix @@ -180,7 +180,7 @@ let ${optionalString (cfg.smtp.passwordFile != null) ''password: "@smtpPassword@",''} domain: "${cfg.smtp.domain}", ${optionalString (cfg.smtp.authentication != null) "authentication: :${cfg.smtp.authentication},"} - enable_starttls_auto: ${toString cfg.smtp.enableStartTLSAuto}, + enable_starttls_auto: ${boolToString cfg.smtp.enableStartTLSAuto}, ca_file: "/etc/ssl/certs/ca-certificates.crt", openssl_verify_mode: '${cfg.smtp.opensslVerifyMode}' } diff --git a/nixos/modules/services/misc/ihaskell.nix b/nixos/modules/services/misc/ihaskell.nix index 11597706d0d..684a242d738 100644 --- a/nixos/modules/services/misc/ihaskell.nix +++ b/nixos/modules/services/misc/ihaskell.nix @@ -15,6 +15,7 @@ in options = { services.ihaskell = { enable = mkOption { + type = types.bool; default = false; description = "Autostart an IHaskell notebook service."; }; diff --git a/nixos/modules/services/misc/matrix-synapse.nix b/nixos/modules/services/misc/matrix-synapse.nix index 750f4a292fb..703bc9416f8 100644 --- a/nixos/modules/services/misc/matrix-synapse.nix +++ b/nixos/modules/services/misc/matrix-synapse.nix @@ -31,7 +31,6 @@ bind_host: "${cfg.bind_host}" ''} server_name: "${cfg.server_name}" pid_file: "/run/matrix-synapse.pid" -web_client: ${boolToString cfg.web_client} ${optionalString (cfg.public_baseurl != null) '' public_baseurl: "${cfg.public_baseurl}" ''} @@ -111,6 +110,9 @@ app_service_config_files: ${builtins.toJSON cfg.app_service_config_files} ${cfg.extraConfig} ''; + + hasLocalPostgresDB = let args = cfg.database_args; in + usePostgresql && (!(args ? host) || (elem args.host [ "localhost" "127.0.0.1" "::1" ])); in { options = { services.matrix-synapse = { @@ -199,13 +201,6 @@ in { This is also the last part of your UserID. ''; }; - web_client = mkOption { - type = types.bool; - default = false; - description = '' - Whether to serve a web client from the HTTP/HTTPS root resource. - ''; - }; public_baseurl = mkOption { type = types.nullOr types.str; default = null; @@ -354,13 +349,6 @@ in { The database engine name. Can be sqlite or psycopg2. ''; }; - create_local_database = mkOption { - type = types.bool; - default = true; - description = '' - Whether to create a local database automatically. - ''; - }; database_name = mkOption { type = types.str; default = "matrix-synapse"; @@ -657,6 +645,25 @@ in { }; config = mkIf cfg.enable { + assertions = [ + { assertion = hasLocalPostgresDB -> config.services.postgresql.enable; + message = '' + Cannot deploy matrix-synapse with a configuration for a local postgresql database + and a missing postgresql service. Since 20.03 it's mandatory to manually configure the + database (please read the thread in https://github.com/NixOS/nixpkgs/pull/80447 for + further reference). + + If you + - try to deploy a fresh synapse, you need to configure the database yourself. An example + for this can be found in + - update your existing matrix-synapse instance, you simply need to add `services.postgresql.enable = true` + to your configuration. + + For further information about this update, please read the release-notes of 20.03 carefully. + ''; + } + ]; + users.users.matrix-synapse = { group = "matrix-synapse"; home = cfg.dataDir; @@ -669,18 +676,9 @@ in { gid = config.ids.gids.matrix-synapse; }; - services.postgresql = mkIf (usePostgresql && cfg.create_local_database) { - enable = mkDefault true; - ensureDatabases = [ cfg.database_name ]; - ensureUsers = [{ - name = cfg.database_user; - ensurePermissions = { "DATABASE \"${cfg.database_name}\"" = "ALL PRIVILEGES"; }; - }]; - }; - systemd.services.matrix-synapse = { description = "Synapse Matrix homeserver"; - after = [ "network.target" ] ++ lib.optional config.services.postgresql.enable "postgresql.service" ; + after = [ "network.target" ] ++ optional hasLocalPostgresDB "postgresql.service"; wantedBy = [ "multi-user.target" ]; preStart = '' ${cfg.package}/bin/homeserver \ @@ -709,6 +707,13 @@ in { The `trusted_third_party_id_servers` option as been removed in `matrix-synapse` v1.4.0 as the behavior is now obsolete. '') + (mkRemovedOptionModule [ "services" "matrix-synapse" "create_local_database" ] '' + Database configuration must be done manually. An exemplary setup is demonstrated in + + '') + (mkRemovedOptionModule [ "services" "matrix-synapse" "web_client" ] "") ]; + meta.doc = ./matrix-synapse.xml; + } diff --git a/nixos/doc/manual/configuration/matrix.xml b/nixos/modules/services/misc/matrix-synapse.xml similarity index 61% rename from nixos/doc/manual/configuration/matrix.xml rename to nixos/modules/services/misc/matrix-synapse.xml index ef8d5cbda88..2f2ac27eeb9 100644 --- a/nixos/doc/manual/configuration/matrix.xml +++ b/nixos/modules/services/misc/matrix-synapse.xml @@ -33,6 +33,7 @@ installation instructions of Synapse . +{ pkgs, ... }: let fqdn = let @@ -40,26 +41,35 @@ let in join config.networking.hostName config.networking.domain; in { networking = { - hostName = "myhostname"; - domain = "example.org"; + hostName = "myhostname"; + domain = "example.org"; }; - networking.firewall.allowedTCPPorts = [ 80 443 ]; + networking.firewall.allowedTCPPorts = [ 80 443 ]; + + services.postgresql.enable = true; + services.postgresql.initialScript = pkgs.writeText "synapse-init.sql" '' + CREATE ROLE "matrix-synapse" WITH LOGIN PASSWORD 'synapse'; + CREATE DATABASE "matrix-synapse" WITH OWNER "matrix-synapse" + TEMPLATE template0 + LC_COLLATE = "C" + LC_CTYPE = "C"; + ''; services.nginx = { - enable = true; + enable = true; # only recommendedProxySettings and recommendedGzipSettings are strictly required, # but the rest make sense as well - recommendedTlsSettings = true; - recommendedOptimisation = true; - recommendedGzipSettings = true; - recommendedProxySettings = true; + recommendedTlsSettings = true; + recommendedOptimisation = true; + recommendedGzipSettings = true; + recommendedProxySettings = true; - virtualHosts = { + virtualHosts = { # This host section can be placed on a different host than the rest, # i.e. to delegate from the host being accessible as ${config.networking.domain} # to another host actually running the Matrix homeserver. "${config.networking.domain}" = { - locations."= /.well-known/matrix/server".extraConfig = + locations."= /.well-known/matrix/server".extraConfig = let # use 443 instead of the default 8448 port to unite # the client-server and server-server port for simplicity @@ -68,7 +78,7 @@ in { add_header Content-Type application/json; return 200 '${builtins.toJSON server}'; ''; - locations."= /.well-known/matrix/client".extraConfig = + locations."= /.well-known/matrix/client".extraConfig = let client = { "m.homeserver" = { "base_url" = "https://${fqdn}"; }; @@ -84,34 +94,37 @@ in { # Reverse proxy for Matrix client-server and server-server communication ${fqdn} = { - enableACME = true; - forceSSL = true; + enableACME = true; + forceSSL = true; # Or do a redirect instead of the 404, or whatever is appropriate for you. # But do not put a Matrix Web client here! See the Riot Web section below. - locations."/".extraConfig = '' + locations."/".extraConfig = '' return 404; ''; # forward all Matrix API calls to the synapse Matrix homeserver locations."/_matrix" = { - proxyPass = "http://[::1]:8008"; # without a trailing / + proxyPass = "http://[::1]:8008"; # without a trailing / }; }; }; }; services.matrix-synapse = { - enable = true; - server_name = config.networking.domain; - listeners = [ + enable = true; + server_name = config.networking.domain; + listeners = [ { - port = 8008; - bind_address = "::1"; - type = "http"; - tls = false; - x_forwarded = true; - resources = [ - { names = [ "client" "federation" ]; compress = false; } + port = 8008; + bind_address = "::1"; + type = "http"; + tls = false; + x_forwarded = true; + resources = [ + { + names = [ "client" "federation" ]; + compress = false; + } ]; } ]; @@ -135,10 +148,10 @@ in { If you want to run a server with public registration by anybody, you can - then enable . Otherwise, or you can generate a registration secret with + then enable services.matrix-synapse.enable_registration = + true;. Otherwise, or you can generate a registration secret with pwgen -s 64 1 and set it with - . To + . To create a new user or admin, run the following after you have set the secret and have rebuilt NixOS: @@ -154,8 +167,8 @@ Success! @your-username:example.org. Note that the registration secret ends up in the nix store and therefore is world-readable by any user on your machine, so it makes sense to only temporarily activate the - option until a better solution - for NixOS is in place. + registration_shared_secret + option until a better solution for NixOS is in place.
@@ -177,15 +190,24 @@ Success! Matrix Now! for a list of existing clients and their supported featureset. -services.nginx.virtualHosts."riot.${fqdn}" = { - enableACME = true; - forceSSL = true; - serverAliases = [ - "riot.${config.networking.domain}" - ]; +{ + services.nginx.virtualHosts."riot.${fqdn}" = { + enableACME = true; + forceSSL = true; + serverAliases = [ + "riot.${config.networking.domain}" + ]; - root = pkgs.riot-web; -}; + root = pkgs.riot-web.override { + conf = { + default_server_config."m.homeserver" = { + "base_url" = "${config.networking.domain}"; + "server_name" = "${fqdn}"; + }; + }; + }; + }; +} diff --git a/nixos/modules/services/misc/nix-daemon.nix b/nixos/modules/services/misc/nix-daemon.nix index 17c3582db0f..0c2407e1dd2 100644 --- a/nixos/modules/services/misc/nix-daemon.nix +++ b/nixos/modules/services/misc/nix-daemon.nix @@ -92,13 +92,14 @@ in maxJobs = mkOption { type = types.either types.int (types.enum ["auto"]); - default = 1; + default = "auto"; example = 64; description = '' - This option defines the maximum number of jobs that Nix will try - to build in parallel. The default is 1. You should generally - set it to the total number of logical cores in your system (e.g., 16 - for two CPUs with 4 cores each and hyper-threading). + This option defines the maximum number of jobs that Nix will try to + build in parallel. The default is auto, which means it will use all + available logical cores. It is recommend to set it to the total + number of logical cores in your system (e.g., 16 for two CPUs with 4 + cores each and hyper-threading). ''; }; @@ -282,7 +283,7 @@ in trustedBinaryCaches = mkOption { type = types.listOf types.str; default = [ ]; - example = [ http://hydra.nixos.org/ ]; + example = [ "http://hydra.nixos.org/" ]; description = '' List of binary cache URLs that non-root users can use (in addition to those specified using @@ -376,6 +377,59 @@ in If enabled (the default), checks that Nix can parse the generated nix.conf. ''; }; + + registry = mkOption { + type = types.attrsOf (types.submodule ( + let + inputAttrs = types.attrsOf (types.oneOf [types.str types.int types.bool types.package]); + in + { config, name, ... }: + { options = { + from = mkOption { + type = inputAttrs; + example = { type = "indirect"; id = "nixpkgs"; }; + description = "The flake reference to be rewritten."; + }; + to = mkOption { + type = inputAttrs; + example = { type = "github"; owner = "my-org"; repo = "my-nixpkgs"; }; + description = "The flake reference to which is to be rewritten."; + }; + flake = mkOption { + type = types.unspecified; + default = null; + example = literalExample "nixpkgs"; + description = '' + The flake input to which is to be rewritten. + ''; + }; + exact = mkOption { + type = types.bool; + default = true; + description = '' + Whether the reference needs to match exactly. If set, + a reference like nixpkgs does not + match with a reference like nixpkgs/nixos-20.03. + ''; + }; + }; + config = { + from = mkDefault { type = "indirect"; id = name; }; + to = mkIf (config.flake != null) + ({ type = "path"; + path = config.flake.outPath; + } // lib.filterAttrs + (n: v: n == "lastModified" || n == "rev" || n == "revCount" || n == "narHash") + config.flake); + }; + } + )); + default = {}; + description = '' + A system-wide flake registry. + ''; + }; + }; }; @@ -390,6 +444,11 @@ in environment.etc."nix/nix.conf".source = nixConf; + environment.etc."nix/registry.json".text = builtins.toJSON { + version = 2; + flakes = mapAttrsToList (n: v: { inherit (v) from to exact; }) cfg.registry; + }; + # List of machines for distributed Nix builds in the format # expected by build-remote.pl. environment.etc."nix/machines" = diff --git a/nixos/modules/services/misc/nixos-manual.nix b/nixos/modules/services/misc/nixos-manual.nix deleted file mode 100644 index ab73f49d4be..00000000000 --- a/nixos/modules/services/misc/nixos-manual.nix +++ /dev/null @@ -1,73 +0,0 @@ -# This module optionally starts a browser that shows the NixOS manual -# on one of the virtual consoles which is useful for the installation -# CD. - -{ config, lib, pkgs, ... }: - -with lib; - -let - cfg = config.services.nixosManual; - cfgd = config.documentation; -in - -{ - - options = { - - # TODO(@oxij): rename this to `.enable` eventually. - services.nixosManual.showManual = mkOption { - type = types.bool; - default = false; - description = '' - Whether to show the NixOS manual on one of the virtual - consoles. - ''; - }; - - services.nixosManual.ttyNumber = mkOption { - type = types.int; - default = 8; - description = '' - Virtual console on which to show the manual. - ''; - }; - - services.nixosManual.browser = mkOption { - type = types.path; - default = "${pkgs.w3m-nographics}/bin/w3m"; - description = '' - Browser used to show the manual. - ''; - }; - - }; - - - config = mkMerge [ - (mkIf cfg.showManual { - assertions = singleton { - assertion = cfgd.enable && cfgd.nixos.enable; - message = "Can't enable `services.nixosManual.showManual` without `documentation.nixos.enable`"; - }; - }) - (mkIf (cfg.showManual && cfgd.enable && cfgd.nixos.enable) { - console.extraTTYs = [ "tty${toString cfg.ttyNumber}" ]; - - systemd.services.nixos-manual = { - description = "NixOS Manual"; - wantedBy = [ "multi-user.target" ]; - serviceConfig = { - ExecStart = "${cfg.browser} ${config.system.build.manual.manualHTMLIndex}"; - StandardInput = "tty"; - StandardOutput = "tty"; - TTYPath = "/dev/tty${toString cfg.ttyNumber}"; - TTYReset = true; - TTYVTDisallocate = true; - Restart = "always"; - }; - }; - }) - ]; - -} diff --git a/nixos/modules/services/misc/pykms.nix b/nixos/modules/services/misc/pykms.nix index 25aa27ae767..d6aeae48ccb 100644 --- a/nixos/modules/services/misc/pykms.nix +++ b/nixos/modules/services/misc/pykms.nix @@ -82,6 +82,7 @@ in { ]); ProtectHome = "tmpfs"; WorkingDirectory = libDir; + SyslogIdentifier = "pykms"; Restart = "on-failure"; MemoryLimit = cfg.memoryLimit; }; diff --git a/nixos/modules/services/misc/redmine.nix b/nixos/modules/services/misc/redmine.nix index 3b8c14d196f..1febdba0c8f 100644 --- a/nixos/modules/services/misc/redmine.nix +++ b/nixos/modules/services/misc/redmine.nix @@ -132,7 +132,7 @@ in example = literalExample '' { dkuk-redmine_alex_skin = builtins.fetchurl { - url = https://bitbucket.org/dkuk/redmine_alex_skin/get/1842ef675ef3.zip; + url = "https://bitbucket.org/dkuk/redmine_alex_skin/get/1842ef675ef3.zip"; sha256 = "0hrin9lzyi50k4w2bd2b30vrf1i4fi1c0gyas5801wn8i7kpm9yl"; }; } @@ -146,7 +146,7 @@ in example = literalExample '' { redmine_env_auth = builtins.fetchurl { - url = https://github.com/Intera/redmine_env_auth/archive/0.6.zip; + url = "https://github.com/Intera/redmine_env_auth/archive/0.6.zip"; sha256 = "0yyr1yjd8gvvh832wdc8m3xfnhhxzk2pk3gm2psg5w9jdvd6skak"; }; } diff --git a/nixos/modules/services/misc/rogue.nix b/nixos/modules/services/misc/rogue.nix deleted file mode 100644 index d56d103b5f3..00000000000 --- a/nixos/modules/services/misc/rogue.nix +++ /dev/null @@ -1,62 +0,0 @@ -# Execute the game `rogue' on tty 9. Mostly used by the NixOS -# installation CD. - -{ config, lib, pkgs, ... }: - -with lib; - -let - - cfg = config.services.rogue; - -in - -{ - ###### interface - - options = { - - services.rogue.enable = mkOption { - type = types.bool; - default = false; - description = '' - Whether to enable the Rogue game on one of the virtual - consoles. - ''; - }; - - services.rogue.tty = mkOption { - type = types.str; - default = "tty9"; - description = '' - Virtual console on which to run Rogue. - ''; - }; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - console.extraTTYs = [ cfg.tty ]; - - systemd.services.rogue = - { description = "Rogue dungeon crawling game"; - wantedBy = [ "multi-user.target" ]; - serviceConfig = - { ExecStart = "${pkgs.rogue}/bin/rogue"; - StandardInput = "tty"; - StandardOutput = "tty"; - TTYPath = "/dev/${cfg.tty}"; - TTYReset = true; - TTYVTDisallocate = true; - WorkingDirectory = "/tmp"; - Restart = "always"; - }; - }; - - }; - -} diff --git a/nixos/modules/services/misc/safeeyes.nix b/nixos/modules/services/misc/safeeyes.nix index 1a33971d922..6ecb0d13187 100644 --- a/nixos/modules/services/misc/safeeyes.nix +++ b/nixos/modules/services/misc/safeeyes.nix @@ -16,10 +16,7 @@ in services.safeeyes = { - enable = mkOption { - default = false; - description = "Whether to enable the safeeyes OSGi service"; - }; + enable = mkEnableOption "the safeeyes OSGi service"; }; diff --git a/nixos/modules/services/misc/sssd.nix b/nixos/modules/services/misc/sssd.nix index 36008d25741..77f6ccfe64f 100644 --- a/nixos/modules/services/misc/sssd.nix +++ b/nixos/modules/services/misc/sssd.nix @@ -75,6 +75,11 @@ in { }; system.nssModules = optional cfg.enable pkgs.sssd; + system.nssDatabases = { + passwd = [ "sss" ]; + shadow = [ "sss" ]; + services = [ "sss" ]; + }; services.dbus.packages = [ pkgs.sssd ]; }) diff --git a/nixos/modules/services/misc/svnserve.nix b/nixos/modules/services/misc/svnserve.nix index 6292bc52b1e..3335ed09d40 100644 --- a/nixos/modules/services/misc/svnserve.nix +++ b/nixos/modules/services/misc/svnserve.nix @@ -18,6 +18,7 @@ in services.svnserve = { enable = mkOption { + type = types.bool; default = false; description = "Whether to enable svnserve to serve Subversion repositories through the SVN protocol."; }; diff --git a/nixos/modules/services/misc/synergy.nix b/nixos/modules/services/misc/synergy.nix index bfab8c534d8..5b7cf3ac46c 100644 --- a/nixos/modules/services/misc/synergy.nix +++ b/nixos/modules/services/misc/synergy.nix @@ -19,12 +19,8 @@ in # !!! All these option descriptions needs to be cleaned up. client = { - enable = mkOption { - default = false; - description = " - Whether to enable the Synergy client (receive keyboard and mouse events from a Synergy server). - "; - }; + enable = mkEnableOption "the Synergy client (receive keyboard and mouse events from a Synergy server)"; + screenName = mkOption { default = ""; description = '' @@ -47,12 +43,8 @@ in }; server = { - enable = mkOption { - default = false; - description = '' - Whether to enable the Synergy server (send keyboard and mouse events). - ''; - }; + enable = mkEnableOption "the Synergy server (send keyboard and mouse events)"; + configFile = mkOption { default = "/etc/synergy-server.conf"; description = "The Synergy server configuration file."; diff --git a/nixos/modules/services/monitoring/datadog-agent.nix b/nixos/modules/services/monitoring/datadog-agent.nix index 2c5fe47242e..f1cb890794e 100644 --- a/nixos/modules/services/monitoring/datadog-agent.nix +++ b/nixos/modules/services/monitoring/datadog-agent.nix @@ -225,7 +225,7 @@ in { Restart = "always"; RestartSec = 2; }; - restartTriggers = [ datadogPkg ] ++ attrNames etcfiles; + restartTriggers = [ datadogPkg ] ++ map (x: x.source) (attrValues etcfiles); } attrs; in { datadog-agent = makeService { diff --git a/nixos/modules/services/monitoring/graphite.nix b/nixos/modules/services/monitoring/graphite.nix index dd147bb3793..64d9d61950d 100644 --- a/nixos/modules/services/monitoring/graphite.nix +++ b/nixos/modules/services/monitoring/graphite.nix @@ -39,8 +39,6 @@ let GRAPHITE_URL = cfg.seyren.graphiteUrl; } // cfg.seyren.extraConfig; - pagerConfig = pkgs.writeText "alarms.yaml" cfg.pager.alerts; - configDir = pkgs.buildEnv { name = "graphite-config"; paths = lists.filter (el: el != null) [ @@ -61,12 +59,10 @@ let carbonEnv = { PYTHONPATH = let - cenv = pkgs.python.buildEnv.override { - extraLibs = [ pkgs.python27Packages.carbon ]; + cenv = pkgs.python3.buildEnv.override { + extraLibs = [ pkgs.python3Packages.carbon ]; }; - cenvPack = "${cenv}/${pkgs.python.sitePackages}"; - # opt/graphite/lib contains twisted.plugins.carbon-cache - in "${cenvPack}/opt/graphite/lib:${cenvPack}"; + in "${cenv}/${pkgs.python3.sitePackages}"; GRAPHITE_ROOT = dataDir; GRAPHITE_CONF_DIR = configDir; GRAPHITE_STORAGE_DIR = dataDir; @@ -74,6 +70,10 @@ let in { + imports = [ + (mkRemovedOptionModule ["services" "graphite" "pager"] "") + ]; + ###### interface options.services.graphite = { @@ -132,7 +132,7 @@ in { finders = mkOption { description = "List of finder plugins to load."; default = []; - example = literalExample "[ pkgs.python27Packages.influxgraph ]"; + example = literalExample "[ pkgs.python3Packages.influxgraph ]"; type = types.listOf types.package; }; @@ -159,8 +159,8 @@ in { package = mkOption { description = "Package to use for graphite api."; - default = pkgs.python27Packages.graphite_api; - defaultText = "pkgs.python27Packages.graphite_api"; + default = pkgs.python3Packages.graphite_api; + defaultText = "pkgs.python3Packages.graphite_api"; type = types.package; }; @@ -344,49 +344,6 @@ in { }; }; - pager = { - enable = mkOption { - description = '' - Whether to enable graphite-pager service. For more information visit - - ''; - default = false; - type = types.bool; - }; - - redisUrl = mkOption { - description = "Redis connection string."; - default = "redis://localhost:${toString config.services.redis.port}/"; - type = types.str; - }; - - graphiteUrl = mkOption { - description = "URL to your graphite service."; - default = "http://${cfg.web.listenAddress}:${toString cfg.web.port}"; - type = types.str; - }; - - alerts = mkOption { - description = "Alerts configuration for graphite-pager."; - default = '' - alerts: - - target: constantLine(100) - warning: 90 - critical: 200 - name: Test - ''; - example = '' - pushbullet_key: pushbullet_api_key - alerts: - - target: stats.seatgeek.app.deal_quality.venue_info_cache.hit - warning: .5 - critical: 1 - name: Deal quality venue cache hits - ''; - type = types.lines; - }; - }; - beacon = { enable = mkEnableOption "graphite beacon"; @@ -409,7 +366,7 @@ in { environment = carbonEnv; serviceConfig = { RuntimeDirectory = name; - ExecStart = "${pkgs.pythonPackages.twisted}/bin/twistd ${carbonOpts name}"; + ExecStart = "${pkgs.python3Packages.twisted}/bin/twistd ${carbonOpts name}"; User = "graphite"; Group = "graphite"; PermissionsStartOnly = true; @@ -431,7 +388,7 @@ in { environment = carbonEnv; serviceConfig = { RuntimeDirectory = name; - ExecStart = "${pkgs.pythonPackages.twisted}/bin/twistd ${carbonOpts name}"; + ExecStart = "${pkgs.python3Packages.twisted}/bin/twistd ${carbonOpts name}"; User = "graphite"; Group = "graphite"; PIDFile="/run/${name}/${name}.pid"; @@ -447,7 +404,7 @@ in { environment = carbonEnv; serviceConfig = { RuntimeDirectory = name; - ExecStart = "${pkgs.pythonPackages.twisted}/bin/twistd ${carbonOpts name}"; + ExecStart = "${pkgs.python3Packages.twisted}/bin/twistd ${carbonOpts name}"; User = "graphite"; Group = "graphite"; PIDFile="/run/${name}/${name}.pid"; @@ -457,19 +414,11 @@ in { (mkIf (cfg.carbon.enableCache || cfg.carbon.enableAggregator || cfg.carbon.enableRelay) { environment.systemPackages = [ - pkgs.pythonPackages.carbon + pkgs.python3Packages.carbon ]; }) - (mkIf cfg.web.enable (let - python27' = pkgs.python27.override { - packageOverrides = self: super: { - django = self.django_1_8; - django_tagging = self.django_tagging_0_4_3; - }; - }; - pythonPackages = python27'.pkgs; - in { + (mkIf cfg.web.enable ({ systemd.services.graphiteWeb = { description = "Graphite Web Interface"; wantedBy = [ "multi-user.target" ]; @@ -477,28 +426,27 @@ in { path = [ pkgs.perl ]; environment = { PYTHONPATH = let - penv = pkgs.python.buildEnv.override { + penv = pkgs.python3.buildEnv.override { extraLibs = [ - pythonPackages.graphite-web - pythonPackages.pysqlite + pkgs.python3Packages.graphite-web ]; }; - penvPack = "${penv}/${pkgs.python.sitePackages}"; + penvPack = "${penv}/${pkgs.python3.sitePackages}"; in concatStringsSep ":" [ "${graphiteLocalSettingsDir}" - "${penvPack}/opt/graphite/webapp" "${penvPack}" # explicitly adding pycairo in path because it cannot be imported via buildEnv - "${pkgs.pythonPackages.pycairo}/${pkgs.python.sitePackages}" + "${pkgs.python3Packages.pycairo}/${pkgs.python3.sitePackages}" ]; DJANGO_SETTINGS_MODULE = "graphite.settings"; + GRAPHITE_SETTINGS_MODULE = "graphite_local_settings"; GRAPHITE_CONF_DIR = configDir; GRAPHITE_STORAGE_DIR = dataDir; LD_LIBRARY_PATH = "${pkgs.cairo.out}/lib"; }; serviceConfig = { ExecStart = '' - ${pkgs.python27Packages.waitress-django}/bin/waitress-serve-django \ + ${pkgs.python3Packages.waitress-django}/bin/waitress-serve-django \ --host=${cfg.web.listenAddress} --port=${toString cfg.web.port} ''; User = "graphite"; @@ -510,7 +458,7 @@ in { mkdir -p ${dataDir}/{whisper/,log/webapp/} chmod 0700 ${dataDir}/{whisper/,log/webapp/} - ${pkgs.pythonPackages.django_1_8}/bin/django-admin.py migrate --noinput + ${pkgs.python3Packages.django}/bin/django-admin.py migrate --noinput chown -R graphite:graphite ${dataDir} @@ -518,16 +466,16 @@ in { fi # Only collect static files when graphite_web changes. - if ! [ "${dataDir}/current_graphite_web" -ef "${pythonPackages.graphite-web}" ]; then + if ! [ "${dataDir}/current_graphite_web" -ef "${pkgs.python3Packages.graphite-web}" ]; then mkdir -p ${staticDir} - ${pkgs.pythonPackages.django_1_8}/bin/django-admin.py collectstatic --noinput --clear + ${pkgs.python3Packages.django}/bin/django-admin.py collectstatic --noinput --clear chown -R graphite:graphite ${staticDir} - ln -sfT "${pythonPackages.graphite-web}" "${dataDir}/current_graphite_web" + ln -sfT "${pkgs.python3Packages.graphite-web}" "${dataDir}/current_graphite_web" fi ''; }; - environment.systemPackages = [ pythonPackages.graphite-web ]; + environment.systemPackages = [ pkgs.python3Packages.graphite-web ]; })) (mkIf cfg.api.enable { @@ -537,16 +485,16 @@ in { after = [ "network.target" ]; environment = { PYTHONPATH = let - aenv = pkgs.python.buildEnv.override { - extraLibs = [ cfg.api.package pkgs.cairo pkgs.pythonPackages.cffi ] ++ cfg.api.finders; + aenv = pkgs.python3.buildEnv.override { + extraLibs = [ cfg.api.package pkgs.cairo pkgs.python3Packages.cffi ] ++ cfg.api.finders; }; - in "${aenv}/${pkgs.python.sitePackages}"; + in "${aenv}/${pkgs.python3.sitePackages}"; GRAPHITE_API_CONFIG = graphiteApiConfig; LD_LIBRARY_PATH = "${pkgs.cairo.out}/lib"; }; serviceConfig = { ExecStart = '' - ${pkgs.python27Packages.waitress}/bin/waitress-serve \ + ${pkgs.python3Packages.waitress}/bin/waitress-serve \ --host=${cfg.api.listenAddress} --port=${toString cfg.api.port} \ graphite_api.app:app ''; @@ -591,34 +539,13 @@ in { services.mongodb.enable = mkDefault true; }) - (mkIf cfg.pager.enable { - systemd.services.graphitePager = { - description = "Graphite Pager Alerting Daemon"; - wantedBy = [ "multi-user.target" ]; - after = [ "network.target" "redis.service" ]; - environment = { - REDIS_URL = cfg.pager.redisUrl; - GRAPHITE_URL = cfg.pager.graphiteUrl; - }; - serviceConfig = { - ExecStart = "${pkgs.pythonPackages.graphitepager}/bin/graphite-pager --config ${pagerConfig}"; - User = "graphite"; - Group = "graphite"; - }; - }; - - services.redis.enable = mkDefault true; - - environment.systemPackages = [ pkgs.pythonPackages.graphitepager ]; - }) - (mkIf cfg.beacon.enable { systemd.services.graphite-beacon = { description = "Grpahite Beacon Alerting Daemon"; wantedBy = [ "multi-user.target" ]; serviceConfig = { ExecStart = '' - ${pkgs.pythonPackages.graphite_beacon}/bin/graphite-beacon \ + ${pkgs.python3Packages.graphite_beacon}/bin/graphite-beacon \ --config=${pkgs.writeText "graphite-beacon.json" (builtins.toJSON cfg.beacon.config)} ''; User = "graphite"; @@ -630,7 +557,7 @@ in { (mkIf ( cfg.carbon.enableCache || cfg.carbon.enableAggregator || cfg.carbon.enableRelay || cfg.web.enable || cfg.api.enable || - cfg.seyren.enable || cfg.pager.enable || cfg.beacon.enable + cfg.seyren.enable || cfg.beacon.enable ) { users.users.graphite = { uid = config.ids.uids.graphite; diff --git a/nixos/modules/services/monitoring/netdata.nix b/nixos/modules/services/monitoring/netdata.nix index f8225af2042..a5233a46e34 100644 --- a/nixos/modules/services/monitoring/netdata.nix +++ b/nixos/modules/services/monitoring/netdata.nix @@ -9,10 +9,12 @@ let mkdir -p $out/libexec/netdata/plugins.d ln -s /run/wrappers/bin/apps.plugin $out/libexec/netdata/plugins.d/apps.plugin ln -s /run/wrappers/bin/freeipmi.plugin $out/libexec/netdata/plugins.d/freeipmi.plugin + ln -s /run/wrappers/bin/perf.plugin $out/libexec/netdata/plugins.d/perf.plugin + ln -s /run/wrappers/bin/slabinfo.plugin $out/libexec/netdata/plugins.d/slabinfo.plugin ''; plugins = [ - "${pkgs.netdata}/libexec/netdata/plugins.d" + "${cfg.package}/libexec/netdata/plugins.d" "${wrappedPlugins}/libexec/netdata/plugins.d" ] ++ cfg.extraPluginPaths; @@ -35,6 +37,13 @@ in { services.netdata = { enable = mkEnableOption "netdata"; + package = mkOption { + type = types.package; + default = pkgs.netdata; + defaultText = "pkgs.netdata"; + description = "Netdata package to use."; + }; + user = mkOption { type = types.str; default = "netdata"; @@ -141,10 +150,11 @@ in { path = (with pkgs; [ curl gawk which ]) ++ lib.optional cfg.python.enable (pkgs.python3.withPackages cfg.python.extraPackages); serviceConfig = { - Environment="PYTHONPATH=${pkgs.netdata}/libexec/netdata/python.d/python_modules"; - ExecStart = "${pkgs.netdata}/bin/netdata -P /run/netdata/netdata.pid -D -c ${configFile}"; + Environment="PYTHONPATH=${cfg.package}/libexec/netdata/python.d/python_modules"; + ExecStart = "${cfg.package}/bin/netdata -P /run/netdata/netdata.pid -D -c ${configFile}"; ExecReload = "${pkgs.utillinux}/bin/kill -s HUP -s USR1 -s USR2 $MAINPID"; TimeoutStopSec = 60; + Restart = "on-failure"; # User and group User = cfg.user; Group = cfg.group; @@ -159,7 +169,7 @@ in { systemd.enableCgroupAccounting = true; security.wrappers."apps.plugin" = { - source = "${pkgs.netdata}/libexec/netdata/plugins.d/apps.plugin.org"; + source = "${cfg.package}/libexec/netdata/plugins.d/apps.plugin.org"; capabilities = "cap_dac_read_search,cap_sys_ptrace+ep"; owner = cfg.user; group = cfg.group; @@ -167,13 +177,29 @@ in { }; security.wrappers."freeipmi.plugin" = { - source = "${pkgs.netdata}/libexec/netdata/plugins.d/freeipmi.plugin.org"; + source = "${cfg.package}/libexec/netdata/plugins.d/freeipmi.plugin.org"; capabilities = "cap_dac_override,cap_fowner+ep"; owner = cfg.user; group = cfg.group; permissions = "u+rx,g+rx,o-rwx"; }; + security.wrappers."perf.plugin" = { + source = "${cfg.package}/libexec/netdata/plugins.d/perf.plugin.org"; + capabilities = "cap_sys_admin+ep"; + owner = cfg.user; + group = cfg.group; + permissions = "u+rx,g+rx,o-rx"; + }; + + security.wrappers."slabinfo.plugin" = { + source = "${cfg.package}/libexec/netdata/plugins.d/slabinfo.plugin.org"; + capabilities = "cap_dac_override+ep"; + owner = cfg.user; + group = cfg.group; + permissions = "u+rx,g+rx,o-rx"; + }; + security.pam.loginLimits = [ { domain = "netdata"; type = "soft"; item = "nofile"; value = "10000"; } { domain = "netdata"; type = "hard"; item = "nofile"; value = "30000"; } diff --git a/nixos/modules/services/monitoring/prometheus/alertmanager.nix b/nixos/modules/services/monitoring/prometheus/alertmanager.nix index 4534d150885..1b02ebf3704 100644 --- a/nixos/modules/services/monitoring/prometheus/alertmanager.nix +++ b/nixos/modules/services/monitoring/prometheus/alertmanager.nix @@ -21,6 +21,8 @@ let "--config.file /tmp/alert-manager-substituted.yaml" "--web.listen-address ${cfg.listenAddress}:${toString cfg.port}" "--log.level ${cfg.logLevel}" + "--storage.path /var/lib/alertmanager" + (toString (map (peer: "--cluster.peer ${peer}:9094") cfg.clusterPeers)) ] ++ (optional (cfg.webExternalUrl != null) "--web.external-url ${cfg.webExternalUrl}" ) ++ (optional (cfg.logFormat != null) @@ -120,6 +122,14 @@ in { ''; }; + clusterPeers = mkOption { + type = types.listOf types.str; + default = []; + description = '' + Initial peers for HA cluster. + ''; + }; + extraFlags = mkOption { type = types.listOf types.str; default = []; @@ -155,13 +165,14 @@ in { systemd.services.alertmanager = { wantedBy = [ "multi-user.target" ]; - after = [ "network.target" ]; + after = [ "network-online.target" ]; preStart = '' ${lib.getBin pkgs.envsubst}/bin/envsubst -o "/tmp/alert-manager-substituted.yaml" \ -i "${alertmanagerYml}" ''; serviceConfig = { Restart = "always"; + StateDirectory = "alertmanager"; DynamicUser = true; # implies PrivateTmp EnvironmentFile = lib.mkIf (cfg.environmentFile != null) cfg.environmentFile; WorkingDirectory = "/tmp"; diff --git a/nixos/modules/services/monitoring/prometheus/default.nix b/nixos/modules/services/monitoring/prometheus/default.nix index 6b1a4be44d1..84a72afac2f 100644 --- a/nixos/modules/services/monitoring/prometheus/default.nix +++ b/nixos/modules/services/monitoring/prometheus/default.nix @@ -10,7 +10,7 @@ let # a wrapper that verifies that the configuration is valid promtoolCheck = what: name: file: if cfg.checkConfig then - pkgs.runCommand + pkgs.runCommandNoCCLocal "${name}-${replaceStrings [" "] [""] what}-checked" { buildInputs = [ cfg.package ]; } '' ln -s ${file} $out @@ -19,7 +19,7 @@ let # Pretty-print JSON to a file writePrettyJSON = name: x: - pkgs.runCommand name { preferLocalBuild = true; } '' + pkgs.runCommandNoCCLocal name {} '' echo '${builtins.toJSON x}' | ${pkgs.jq}/bin/jq . > $out ''; diff --git a/nixos/modules/services/monitoring/tuptime.nix b/nixos/modules/services/monitoring/tuptime.nix new file mode 100644 index 00000000000..731260a5c20 --- /dev/null +++ b/nixos/modules/services/monitoring/tuptime.nix @@ -0,0 +1,84 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + cfg = config.services.tuptime; + +in { + + options.services.tuptime = { + + enable = mkEnableOption "the total uptime service"; + + timer = { + enable = mkOption { + type = types.bool; + default = true; + description = "Whether to regularly log uptime to detect bad shutdowns."; + }; + + period = mkOption { + type = types.str; + default = "*:0/5"; + description = "systemd calendar event"; + }; + }; + }; + + + config = mkIf cfg.enable { + + environment.systemPackages = [ pkgs.tuptime ]; + + users.users.tuptime.description = "tuptime database owner"; + + systemd = { + services = { + + tuptime = { + description = "the total uptime service"; + documentation = [ "man:tuptime(1)" ]; + after = [ "time-sync.target" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + StateDirectory = "tuptime"; + Type = "oneshot"; + User = "tuptime"; + RemainAfterExit = true; + ExecStart = "${pkgs.tuptime}/bin/tuptime -x"; + ExecStop = "${pkgs.tuptime}/bin/tuptime -xg"; + }; + }; + + tuptime-oneshot = mkIf cfg.timer.enable { + description = "the tuptime scheduled execution unit"; + serviceConfig = { + StateDirectory = "tuptime"; + Type = "oneshot"; + User = "tuptime"; + ExecStart = "${pkgs.tuptime}/bin/tuptime -x"; + }; + }; + }; + + timers.tuptime = mkIf cfg.timer.enable { + description = "the tuptime scheduled execution timer"; + # this timer should be started if the service is started + # even if the timer was previously stopped + wantedBy = [ "tuptime.service" "timers.target" ]; + # this timer should be stopped if the service is stopped + partOf = [ "tuptime.service" ]; + timerConfig = { + OnBootSec = "1min"; + OnCalendar = cfg.timer.period; + Unit = "tuptime-oneshot.service"; + }; + }; + }; + }; + + meta.maintainers = [ maintainers.evils ]; + +} diff --git a/nixos/modules/services/network-filesystems/netatalk.nix b/nixos/modules/services/network-filesystems/netatalk.nix index 1dd869043f0..7674c8f7fa8 100644 --- a/nixos/modules/services/network-filesystems/netatalk.nix +++ b/nixos/modules/services/network-filesystems/netatalk.nix @@ -43,10 +43,7 @@ in options = { services.netatalk = { - enable = mkOption { - default = false; - description = "Whether to enable the Netatalk AFP fileserver."; - }; + enable = mkEnableOption "the Netatalk AFP fileserver"; port = mkOption { default = 548; @@ -65,6 +62,7 @@ in homes = { enable = mkOption { + type = types.bool; default = false; description = "Enable sharing of the UNIX server user home directories."; }; @@ -98,13 +96,14 @@ in Set of AFP volumes to export. See man apf.conf for more information. ''; - example = + example = literalExample '' { srv = { path = "/srv"; "read only" = true; "hosts allow" = "10.1.0.0/16 10.2.1.100 2001:0db8:1234::/48"; }; - }; + } + ''; }; extmap = mkOption { diff --git a/nixos/modules/services/network-filesystems/openafs/client.nix b/nixos/modules/services/network-filesystems/openafs/client.nix index 79c4b7aee06..677111814a0 100644 --- a/nixos/modules/services/network-filesystems/openafs/client.nix +++ b/nixos/modules/services/network-filesystems/openafs/client.nix @@ -9,7 +9,7 @@ let cfg = config.services.openafsClient; cellServDB = pkgs.fetchurl { - url = http://dl.central.org/dl/cellservdb/CellServDB.2018-05-14; + url = "http://dl.central.org/dl/cellservdb/CellServDB.2018-05-14"; sha256 = "1wmjn6mmyy2r8p10nlbdzs4nrqxy8a9pjyrdciy5nmppg4053rk2"; }; diff --git a/nixos/modules/services/network-filesystems/rsyncd.nix b/nixos/modules/services/network-filesystems/rsyncd.nix index b17ec3aa930..fa29e18a939 100644 --- a/nixos/modules/services/network-filesystems/rsyncd.nix +++ b/nixos/modules/services/network-filesystems/rsyncd.nix @@ -29,10 +29,7 @@ in options = { services.rsyncd = { - enable = mkOption { - default = false; - description = "Whether to enable the rsync daemon."; - }; + enable = mkEnableOption "the rsync daemon"; motd = mkOption { type = types.str; @@ -74,13 +71,14 @@ in See man rsyncd.conf for options. ''; type = types.attrsOf (types.attrsOf types.str); - example = + example = literalExample '' { srv = { path = "/srv"; "read only" = "yes"; comment = "Public rsync share."; }; - }; + } + ''; }; user = mkOption { diff --git a/nixos/modules/services/network-filesystems/samba.nix b/nixos/modules/services/network-filesystems/samba.nix index a3c22ce6948..a115590ccaa 100644 --- a/nixos/modules/services/network-filesystems/samba.nix +++ b/nixos/modules/services/network-filesystems/samba.nix @@ -189,7 +189,7 @@ in See man smb.conf for options. ''; type = types.attrsOf (types.attrsOf types.unspecified); - example = + example = literalExample '' { public = { path = "/srv/public"; "read only" = true; @@ -197,7 +197,8 @@ in "guest ok" = "yes"; comment = "Public samba share."; }; - }; + } + ''; }; }; diff --git a/nixos/modules/services/network-filesystems/xtreemfs.nix b/nixos/modules/services/network-filesystems/xtreemfs.nix index c93e201da56..b8f8c1d7117 100644 --- a/nixos/modules/services/network-filesystems/xtreemfs.nix +++ b/nixos/modules/services/network-filesystems/xtreemfs.nix @@ -100,11 +100,13 @@ in dir = { enable = mkOption { + type = types.bool; default = true; description = '' Whether to enable XtreemFS DIR service. ''; }; + uuid = mkOption { example = "eacb6bab-f444-4ebf-a06a-3f72d7465e40"; description = '' @@ -218,11 +220,13 @@ in mrc = { enable = mkOption { + type = types.bool; default = true; description = '' Whether to enable XtreemFS MRC service. ''; }; + uuid = mkOption { example = "eacb6bab-f444-4ebf-a06a-3f72d7465e41"; description = '' @@ -354,11 +358,13 @@ in osd = { enable = mkOption { + type = types.bool; default = true; description = '' Whether to enable XtreemFS OSD service. ''; }; + uuid = mkOption { example = "eacb6bab-f444-4ebf-a06a-3f72d7465e42"; description = '' diff --git a/nixos/modules/services/network-filesystems/yandex-disk.nix b/nixos/modules/services/network-filesystems/yandex-disk.nix index 0aa01ef9e6d..cc73f13bf77 100644 --- a/nixos/modules/services/network-filesystems/yandex-disk.nix +++ b/nixos/modules/services/network-filesystems/yandex-disk.nix @@ -21,6 +21,7 @@ in services.yandex-disk = { enable = mkOption { + type = types.bool; default = false; description = " Whether to enable Yandex-disk client. See https://disk.yandex.ru/ diff --git a/nixos/modules/services/networking/3proxy.nix b/nixos/modules/services/networking/3proxy.nix index 26aa1667946..ae8a4958ca9 100644 --- a/nixos/modules/services/networking/3proxy.nix +++ b/nixos/modules/services/networking/3proxy.nix @@ -334,10 +334,12 @@ in { nsrecord = mkOption { type = types.attrsOf types.str; default = { }; - example = { - "files.local" = "192.168.1.12"; - "site.local" = "192.168.1.43"; - }; + example = literalExample '' + { + "files.local" = "192.168.1.12"; + "site.local" = "192.168.1.43"; + } + ''; description = "Adds static nsrecords."; }; }; diff --git a/nixos/modules/services/networking/amuled.nix b/nixos/modules/services/networking/amuled.nix index 57f02542eaf..1128ee2c3e6 100644 --- a/nixos/modules/services/networking/amuled.nix +++ b/nixos/modules/services/networking/amuled.nix @@ -16,6 +16,7 @@ in services.amule = { enable = mkOption { + type = types.bool; default = false; description = '' Whether to run the AMule daemon. You need to manually run "amuled --ec-config" to configure the service for the first time. diff --git a/nixos/modules/services/networking/babeld.nix b/nixos/modules/services/networking/babeld.nix index de863461eab..e62c74d0069 100644 --- a/nixos/modules/services/networking/babeld.nix +++ b/nixos/modules/services/networking/babeld.nix @@ -35,12 +35,7 @@ in services.babeld = { - enable = mkOption { - default = false; - description = '' - Whether to run the babeld network routing daemon. - ''; - }; + enable = mkEnableOption "the babeld network routing daemon"; interfaceDefaults = mkOption { default = null; diff --git a/nixos/modules/services/networking/bind.nix b/nixos/modules/services/networking/bind.nix index e3b95afb3d8..faad8863575 100644 --- a/nixos/modules/services/networking/bind.nix +++ b/nixos/modules/services/networking/bind.nix @@ -68,12 +68,7 @@ in services.bind = { - enable = mkOption { - default = false; - description = " - Whether to enable BIND domain name server. - "; - }; + enable = mkEnableOption "BIND domain name server"; cacheNetworks = mkOption { default = ["127.0.0.0/24"]; diff --git a/nixos/modules/services/networking/bitlbee.nix b/nixos/modules/services/networking/bitlbee.nix index 01a16698384..9ebf382fce4 100644 --- a/nixos/modules/services/networking/bitlbee.nix +++ b/nixos/modules/services/networking/bitlbee.nix @@ -48,6 +48,7 @@ in services.bitlbee = { enable = mkOption { + type = types.bool; default = false; description = '' Whether to run the BitlBee IRC to other chat network gateway. diff --git a/nixos/modules/services/networking/cntlm.nix b/nixos/modules/services/networking/cntlm.nix index 4e4e3104c3a..5b5068e43d7 100644 --- a/nixos/modules/services/networking/cntlm.nix +++ b/nixos/modules/services/networking/cntlm.nix @@ -33,12 +33,7 @@ in options.services.cntlm = { - enable = mkOption { - default = false; - description = '' - Whether to enable the cntlm, which start a local proxy. - ''; - }; + enable = mkEnableOption "cntlm, which starts a local proxy"; username = mkOption { description = '' diff --git a/nixos/modules/services/networking/connman.nix b/nixos/modules/services/networking/connman.nix index e8eadc4e187..6ccc2dffb26 100644 --- a/nixos/modules/services/networking/connman.nix +++ b/nixos/modules/services/networking/connman.nix @@ -77,6 +77,13 @@ in { ''; }; + package = mkOption { + type = types.path; + description = "The connman package / build flavor"; + default = connman; + example = literalExample "pkgs.connmanFull"; + }; + }; }; @@ -89,11 +96,13 @@ in { assertion = !config.networking.useDHCP; message = "You can not use services.connman with networking.useDHCP"; }{ + # TODO: connman seemingly can be used along network manager and + # connmanFull supports this - so this should be worked out somehow assertion = !config.networking.networkmanager.enable; message = "You can not use services.connman with networking.networkmanager"; }]; - environment.systemPackages = [ connman ]; + environment.systemPackages = [ cfg.package ]; systemd.services.connman = { description = "Connection service"; @@ -105,7 +114,7 @@ in { BusName = "net.connman"; Restart = "on-failure"; ExecStart = toString ([ - "${pkgs.connman}/sbin/connmand" + "${cfg.package}/sbin/connmand" "--config=${configFile}" "--nodaemon" ] ++ optional enableIwd "--wifi=iwd_agent" @@ -122,7 +131,7 @@ in { serviceConfig = { Type = "dbus"; BusName = "net.connman.vpn"; - ExecStart = "${pkgs.connman}/sbin/connman-vpnd -n"; + ExecStart = "${cfg.package}/sbin/connman-vpnd -n"; StandardOutput = "null"; }; }; @@ -132,7 +141,7 @@ in { serviceConfig = { Name = "net.connman.vpn"; before = [ "connman" ]; - ExecStart = "${pkgs.connman}/sbin/connman-vpnd -n"; + ExecStart = "${cfg.package}/sbin/connman-vpnd -n"; User = "root"; SystemdService = "connman-vpn.service"; }; diff --git a/nixos/modules/services/networking/dnscache.nix b/nixos/modules/services/networking/dnscache.nix index d123bca9321..d06032daecc 100644 --- a/nixos/modules/services/networking/dnscache.nix +++ b/nixos/modules/services/networking/dnscache.nix @@ -61,10 +61,12 @@ in { Table of {hostname: server} pairs to use as authoritative servers for hosts (and subhosts). If entry for @ is not specified predefined list of root servers is used. ''; - example = { - "@" = ["8.8.8.8" "8.8.4.4"]; - "example.com" = ["192.168.100.100"]; - }; + example = literalExample '' + { + "@" = ["8.8.8.8" "8.8.4.4"]; + "example.com" = ["192.168.100.100"]; + } + ''; }; forwardOnly = mkOption { diff --git a/nixos/modules/services/networking/firewall.nix b/nixos/modules/services/networking/firewall.nix index b0045ff795e..cdc3a172ea7 100644 --- a/nixos/modules/services/networking/firewall.nix +++ b/nixos/modules/services/networking/firewall.nix @@ -546,9 +546,13 @@ in options nf_conntrack nf_conntrack_helper=1 ''; - assertions = [ { assertion = cfg.checkReversePath -> kernelHasRPFilter; - message = "This kernel does not support rpfilter"; } - ]; + assertions = [ + # This is approximately "checkReversePath -> kernelHasRPFilter", + # but the checkReversePath option can include non-boolean + # values. + { assertion = cfg.checkReversePath == false || kernelHasRPFilter; + message = "This kernel does not support rpfilter"; } + ]; systemd.services.firewall = { description = "Firewall"; diff --git a/nixos/modules/services/networking/flashpolicyd.nix b/nixos/modules/services/networking/flashpolicyd.nix index 9c51b88ef67..7f25083307c 100644 --- a/nixos/modules/services/networking/flashpolicyd.nix +++ b/nixos/modules/services/networking/flashpolicyd.nix @@ -39,6 +39,7 @@ in services.flashpolicyd = { enable = mkOption { + type = types.bool; default = false; description = '' diff --git a/nixos/modules/services/networking/gogoclient.nix b/nixos/modules/services/networking/gogoclient.nix index c9b03bca711..99455b18314 100644 --- a/nixos/modules/services/networking/gogoclient.nix +++ b/nixos/modules/services/networking/gogoclient.nix @@ -19,6 +19,7 @@ in ''; }; autorun = mkOption { + type = types.bool; default = true; description = '' Whether to automatically start the tunnel. diff --git a/nixos/modules/services/networking/gvpe.nix b/nixos/modules/services/networking/gvpe.nix index 3ef3548e0a0..92e87cd4640 100644 --- a/nixos/modules/services/networking/gvpe.nix +++ b/nixos/modules/services/networking/gvpe.nix @@ -42,12 +42,8 @@ in { options = { services.gvpe = { - enable = mkOption { - default = false; - description = '' - Whether to run gvpe - ''; - }; + enable = lib.mkEnableOption "gvpe"; + nodename = mkOption { default = null; description ='' diff --git a/nixos/modules/services/networking/hostapd.nix b/nixos/modules/services/networking/hostapd.nix index 2915b54f05b..6418ae69943 100644 --- a/nixos/modules/services/networking/hostapd.nix +++ b/nixos/modules/services/networking/hostapd.nix @@ -49,6 +49,7 @@ in services.hostapd = { enable = mkOption { + type = types.bool; default = false; description = '' Enable putting a wireless interface into infrastructure mode, @@ -71,6 +72,7 @@ in }; noScan = mkOption { + type = types.bool; default = false; description = '' Do not scan for overlapping BSSs in HT40+/- mode. @@ -126,6 +128,7 @@ in }; wpa = mkOption { + type = types.bool; default = true; description = '' Enable WPA (IEEE 802.11i/D3.0) to authenticate with the access point. diff --git a/nixos/modules/services/networking/iodine.nix b/nixos/modules/services/networking/iodine.nix index f9ca26c2796..46051d7044b 100644 --- a/nixos/modules/services/networking/iodine.nix +++ b/nixos/modules/services/networking/iodine.nix @@ -9,6 +9,8 @@ let iodinedUser = "iodined"; + /* is this path made unreadable by ProtectHome = true ? */ + isProtected = x: hasPrefix "/root" x || hasPrefix "/home" x; in { imports = [ @@ -35,45 +37,48 @@ in corresponding attribute name. ''; example = literalExample '' - { - foo = { - server = "tunnel.mdomain.com"; - relay = "8.8.8.8"; - extraConfig = "-v"; + { + foo = { + server = "tunnel.mdomain.com"; + relay = "8.8.8.8"; + extraConfig = "-v"; + } } - } ''; - type = types.attrsOf (types.submodule ( - { - options = { - server = mkOption { - type = types.str; - default = ""; - description = "Domain or Subdomain of server running iodined"; - example = "tunnel.mydomain.com"; - }; + type = types.attrsOf ( + types.submodule ( + { + options = { + server = mkOption { + type = types.str; + default = ""; + description = "Hostname of server running iodined"; + example = "tunnel.mydomain.com"; + }; - relay = mkOption { - type = types.str; - default = ""; - description = "DNS server to use as a intermediate relay to the iodined server"; - example = "8.8.8.8"; - }; + relay = mkOption { + type = types.str; + default = ""; + description = "DNS server to use as an intermediate relay to the iodined server"; + example = "8.8.8.8"; + }; - extraConfig = mkOption { - type = types.str; - default = ""; - description = "Additional command line parameters"; - example = "-l 192.168.1.10 -p 23"; - }; + extraConfig = mkOption { + type = types.str; + default = ""; + description = "Additional command line parameters"; + example = "-l 192.168.1.10 -p 23"; + }; - passwordFile = mkOption { - type = types.str; - default = ""; - description = "File that contains password"; - }; - }; - })); + passwordFile = mkOption { + type = types.str; + default = ""; + description = "Path to a file containing the password."; + }; + }; + } + ) + ); }; server = { @@ -121,31 +126,67 @@ in boot.kernelModules = [ "tun" ]; systemd.services = - let - createIodineClientService = name: cfg: - { - description = "iodine client - ${name}"; - after = [ "network.target" ]; - wantedBy = [ "multi-user.target" ]; - script = "exec ${pkgs.iodine}/bin/iodine -f -u ${iodinedUser} ${cfg.extraConfig} ${optionalString (cfg.passwordFile != "") "< \"${cfg.passwordFile}\""} ${cfg.relay} ${cfg.server}"; - serviceConfig = { - RestartSec = "30s"; - Restart = "always"; + let + createIodineClientService = name: cfg: + { + description = "iodine client - ${name}"; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + script = "exec ${pkgs.iodine}/bin/iodine -f -u ${iodinedUser} ${cfg.extraConfig} ${optionalString (cfg.passwordFile != "") "< \"${builtins.toString cfg.passwordFile}\""} ${cfg.relay} ${cfg.server}"; + serviceConfig = { + RestartSec = "30s"; + Restart = "always"; + + # hardening : + # Filesystem access + ProtectSystem = "strict"; + ProtectHome = if isProtected cfg.passwordFile then "read-only" else "true" ; + PrivateTmp = true; + ReadWritePaths = "/dev/net/tun"; + PrivateDevices = false; + ProtectKernelTunables = true; + ProtectKernelModules = true; + ProtectControlGroups = true; + # Caps + NoNewPrivileges = true; + # Misc. + LockPersonality = true; + RestrictRealtime = true; + PrivateMounts = true; + MemoryDenyWriteExecute = true; + }; + }; + in + listToAttrs ( + mapAttrsToList + (name: value: nameValuePair "iodine-${name}" (createIodineClientService name value)) + cfg.clients + ) // { + iodined = mkIf (cfg.server.enable) { + description = "iodine, ip over dns server daemon"; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + script = "exec ${pkgs.iodine}/bin/iodined -f -u ${iodinedUser} ${cfg.server.extraConfig} ${optionalString (cfg.server.passwordFile != "") "< \"${builtins.toString cfg.server.passwordFile}\""} ${cfg.server.ip} ${cfg.server.domain}"; + serviceConfig = { + # Filesystem access + ProtectSystem = "strict"; + ProtectHome = if isProtected cfg.server.passwordFile then "read-only" else "true" ; + PrivateTmp = true; + ReadWritePaths = "/dev/net/tun"; + PrivateDevices = false; + ProtectKernelTunables = true; + ProtectKernelModules = true; + ProtectControlGroups = true; + # Caps + NoNewPrivileges = true; + # Misc. + LockPersonality = true; + RestrictRealtime = true; + PrivateMounts = true; + MemoryDenyWriteExecute = true; + }; + }; }; - }; - in - listToAttrs ( - mapAttrsToList - (name: value: nameValuePair "iodine-${name}" (createIodineClientService name value)) - cfg.clients - ) // { - iodined = mkIf (cfg.server.enable) { - description = "iodine, ip over dns server daemon"; - after = [ "network.target" ]; - wantedBy = [ "multi-user.target" ]; - script = "exec ${pkgs.iodine}/bin/iodined -f -u ${iodinedUser} ${cfg.server.extraConfig} ${optionalString (cfg.server.passwordFile != "") "< \"${cfg.server.passwordFile}\""} ${cfg.server.ip} ${cfg.server.domain}"; - }; - }; users.users.${iodinedUser} = { uid = config.ids.uids.iodined; diff --git a/nixos/modules/services/networking/ircd-hybrid/default.nix b/nixos/modules/services/networking/ircd-hybrid/default.nix index b236552eb65..91d0bf437d6 100644 --- a/nixos/modules/services/networking/ircd-hybrid/default.nix +++ b/nixos/modules/services/networking/ircd-hybrid/default.nix @@ -36,12 +36,7 @@ in services.ircdHybrid = { - enable = mkOption { - default = false; - description = " - Enable IRCD. - "; - }; + enable = mkEnableOption "IRCD"; serverName = mkOption { default = "hades.arpa"; diff --git a/nixos/modules/services/networking/magic-wormhole-mailbox-server.nix b/nixos/modules/services/networking/magic-wormhole-mailbox-server.nix new file mode 100644 index 00000000000..09d357cd2b6 --- /dev/null +++ b/nixos/modules/services/networking/magic-wormhole-mailbox-server.nix @@ -0,0 +1,28 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.magic-wormhole-mailbox-server; + dataDir = "/var/lib/magic-wormhole-mailbox-server;"; + python = pkgs.python3.withPackages (py: [ py.magic-wormhole-mailbox-server py.twisted ]); +in +{ + options.services.magic-wormhole-mailbox-server = { + enable = mkEnableOption "Enable Magic Wormhole Mailbox Server"; + }; + + config = mkIf cfg.enable { + systemd.services.magic-wormhole-mailbox-server = { + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + DynamicUser = true; + ExecStart = "${python}/bin/twistd --nodaemon wormhole-mailbox"; + WorkingDirectory = dataDir; + StateDirectory = baseNameOf dataDir; + }; + }; + + }; +} diff --git a/nixos/modules/services/networking/mailpile.nix b/nixos/modules/services/networking/mailpile.nix index c42d3d5a44c..b79ee11d17d 100644 --- a/nixos/modules/services/networking/mailpile.nix +++ b/nixos/modules/services/networking/mailpile.nix @@ -18,12 +18,8 @@ in options = { services.mailpile = { - enable = mkOption { - default = false; - description = " - Whether to enable Mailpile the mail client. - "; - }; + enable = mkEnableOption "Mailpile the mail client"; + hostname = mkOption { default = "localhost"; description = "Listen to this hostname or ip."; diff --git a/nixos/modules/services/networking/mullvad-vpn.nix b/nixos/modules/services/networking/mullvad-vpn.nix new file mode 100644 index 00000000000..cc98414257c --- /dev/null +++ b/nixos/modules/services/networking/mullvad-vpn.nix @@ -0,0 +1,43 @@ +{ config, lib, pkgs, ... }: +let + cfg = config.services.mullvad-vpn; +in +with lib; +{ + options.services.mullvad-vpn.enable = mkOption { + type = types.bool; + default = false; + description = '' + This option enables Mullvad VPN daemon. + ''; + }; + + config = mkIf cfg.enable { + boot.kernelModules = [ "tun" ]; + + systemd.services.mullvad-daemon = { + description = "Mullvad VPN daemon"; + wantedBy = [ "multi-user.target" ]; + wants = [ "network.target" ]; + after = [ + "network-online.target" + "NetworkManager.service" + "systemd-resolved.service" + ]; + path = [ + pkgs.iproute + # Needed for ping + "/run/wrappers" + ]; + serviceConfig = { + StartLimitBurst = 5; + StartLimitIntervalSec = 20; + ExecStart = "${pkgs.mullvad-vpn}/bin/mullvad-daemon -v --disable-stdout-timestamps"; + Restart = "always"; + RestartSec = 1; + }; + }; + }; + + meta.maintainers = [ maintainers.xfix ]; +} diff --git a/nixos/modules/services/networking/ndppd.nix b/nixos/modules/services/networking/ndppd.nix index e015f76f622..77e979a8a42 100644 --- a/nixos/modules/services/networking/ndppd.nix +++ b/nixos/modules/services/networking/ndppd.nix @@ -43,7 +43,7 @@ let timeout = mkOption { type = types.int; description = '' - Controls how long to wait for a Neighbor Advertisment Message before + Controls how long to wait for a Neighbor Advertisment Message before invalidating the entry, in milliseconds. ''; default = 500; @@ -51,7 +51,7 @@ let ttl = mkOption { type = types.int; description = '' - Controls how long a valid or invalid entry remains in the cache, in + Controls how long a valid or invalid entry remains in the cache, in milliseconds. ''; default = 30000; @@ -142,7 +142,11 @@ in { messages, and respond to them according to a set of rules. ''; default = {}; - example = { eth0.rules."1111::/64" = {}; }; + example = literalExample '' + { + eth0.rules."1111::/64" = {}; + } + ''; }; }; diff --git a/nixos/modules/services/networking/networkmanager.nix b/nixos/modules/services/networking/networkmanager.nix index e817f295a44..6f24141b33c 100644 --- a/nixos/modules/services/networking/networkmanager.nix +++ b/nixos/modules/services/networking/networkmanager.nix @@ -131,6 +131,10 @@ let in { + meta = { + maintainers = teams.freedesktop.members; + }; + ###### interface options = { diff --git a/nixos/modules/services/networking/nftables.nix b/nixos/modules/services/networking/nftables.nix index ad7c013a544..ec9d9753cfe 100644 --- a/nixos/modules/services/networking/nftables.nix +++ b/nixos/modules/services/networking/nftables.nix @@ -52,7 +52,7 @@ in ip protocol icmp icmp type { destination-unreachable, router-advertisement, time-exceeded, parameter-problem } accept # allow "ping" - ip6 nexthdr icmp icmpv6 type echo-request accept + ip6 nexthdr icmpv6 icmpv6 type echo-request accept ip protocol icmp icmp type echo-request accept # accept SSH connections (required for a server) diff --git a/nixos/modules/services/networking/ntp/chrony.nix b/nixos/modules/services/networking/ntp/chrony.nix index da9d960cc14..b7e4c89a155 100644 --- a/nixos/modules/services/networking/ntp/chrony.nix +++ b/nixos/modules/services/networking/ntp/chrony.nix @@ -30,6 +30,7 @@ in options = { services.chrony = { enable = mkOption { + type = types.bool; default = false; description = '' Whether to synchronise your machine's time using chrony. @@ -92,6 +93,11 @@ in systemd.services.systemd-timedated.environment = { SYSTEMD_TIMEDATED_NTP_SERVICES = "chronyd.service"; }; + systemd.tmpfiles.rules = [ + "d ${stateDir} 0755 chrony chrony - -" + "f ${keyFile} 0640 chrony chrony -" + ]; + systemd.services.chronyd = { description = "chrony NTP daemon"; @@ -103,13 +109,6 @@ in path = [ pkgs.chrony ]; - preStart = '' - mkdir -m 0755 -p ${stateDir} - touch ${keyFile} - chmod 0640 ${keyFile} - chown chrony:chrony ${stateDir} ${keyFile} - ''; - unitConfig.ConditionCapability = "CAP_SYS_TIME"; serviceConfig = { Type = "simple"; @@ -118,7 +117,7 @@ in ProtectHome = "yes"; ProtectSystem = "full"; PrivateTmp = "yes"; - + StateDirectory = "chrony"; }; }; diff --git a/nixos/modules/services/networking/ntp/ntpd.nix b/nixos/modules/services/networking/ntp/ntpd.nix index 54ff054d84c..51398851adc 100644 --- a/nixos/modules/services/networking/ntp/ntpd.nix +++ b/nixos/modules/services/networking/ntp/ntpd.nix @@ -40,6 +40,7 @@ in services.ntp = { enable = mkOption { + type = types.bool; default = false; description = '' Whether to synchronise your machine's time using ntpd, as a peer in diff --git a/nixos/modules/services/networking/openfire.nix b/nixos/modules/services/networking/openfire.nix index 4059eb3db83..fe0499d5232 100644 --- a/nixos/modules/services/networking/openfire.nix +++ b/nixos/modules/services/networking/openfire.nix @@ -9,14 +9,10 @@ with lib; services.openfire = { - enable = mkOption { - default = false; - description = " - Whether to enable OpenFire XMPP server. - "; - }; + enable = mkEnableOption "OpenFire XMPP server"; usePostgreSQL = mkOption { + type = types.bool; default = true; description = " Whether you use PostgreSQL service for your storage back-end. diff --git a/nixos/modules/services/networking/pixiecore.nix b/nixos/modules/services/networking/pixiecore.nix new file mode 100644 index 00000000000..0e32f182e2a --- /dev/null +++ b/nixos/modules/services/networking/pixiecore.nix @@ -0,0 +1,134 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.pixiecore; +in +{ + meta.maintainers = with maintainers; [ bbigras danderson ]; + + options = { + services.pixiecore = { + enable = mkEnableOption "Pixiecore"; + + openFirewall = mkOption { + type = types.bool; + default = false; + description = '' + Open ports (67, 69 UDP and 4011, 'port', 'statusPort' TCP) in the firewall for Pixiecore. + ''; + }; + + mode = mkOption { + description = "Which mode to use"; + default = "boot"; + type = types.enum [ "api" "boot" ]; + }; + + debug = mkOption { + type = types.bool; + default = false; + description = "Log more things that aren't directly related to booting a recognized client"; + }; + + dhcpNoBind = mkOption { + type = types.bool; + default = false; + description = "Handle DHCP traffic without binding to the DHCP server port"; + }; + + kernel = mkOption { + type = types.str or types.path; + default = ""; + description = "Kernel path. Ignored unless mode is set to 'boot'"; + }; + + initrd = mkOption { + type = types.str or types.path; + default = ""; + description = "Initrd path. Ignored unless mode is set to 'boot'"; + }; + + cmdLine = mkOption { + type = types.str; + default = ""; + description = "Kernel commandline arguments. Ignored unless mode is set to 'boot'"; + }; + + listen = mkOption { + type = types.str; + default = "0.0.0.0"; + description = "IPv4 address to listen on"; + }; + + port = mkOption { + type = types.port; + default = 80; + description = "Port to listen on for HTTP"; + }; + + statusPort = mkOption { + type = types.port; + default = 80; + description = "HTTP port for status information (can be the same as --port)"; + }; + + apiServer = mkOption { + type = types.str; + example = "localhost:8080"; + description = "host:port to connect to the API. Ignored unless mode is set to 'api'"; + }; + + extraArguments = mkOption { + type = types.listOf types.str; + default = []; + description = "Additional command line arguments to pass to Pixiecore"; + }; + }; + }; + + config = mkIf cfg.enable { + users.groups.pixiecore = {}; + users.users.pixiecore = { + description = "Pixiecore daemon user"; + group = "pixiecore"; + }; + + networking.firewall = mkIf cfg.openFirewall { + allowedTCPPorts = [ 4011 cfg.port cfg.statusPort ]; + allowedUDPPorts = [ 67 69 ]; + }; + + systemd.services.pixiecore = { + description = "Pixiecore server"; + after = [ "network.target"]; + wants = [ "network.target"]; + wantedBy = [ "multi-user.target"]; + serviceConfig = { + User = "pixiecore"; + Restart = "always"; + AmbientCapabilities = [ "cap_net_bind_service" ] ++ optional cfg.dhcpNoBind "cap_net_raw"; + ExecStart = + let + argString = + if cfg.mode == "boot" + then [ "boot" cfg.kernel ] + ++ optional (cfg.initrd != "") cfg.initrd + ++ optional (cfg.cmdLine != "") "--cmdline=${lib.escapeShellArg cfg.cmdLine}" + else [ "api" cfg.apiServer ]; + in + '' + ${pkgs.pixiecore}/bin/pixiecore \ + ${lib.escapeShellArgs argString} \ + ${optionalString cfg.debug "--debug"} \ + ${optionalString cfg.dhcpNoBind "--dhcp-no-bind"} \ + --listen-addr ${lib.escapeShellArg cfg.listen} \ + --port ${toString cfg.port} \ + --status-port ${toString cfg.statusPort} \ + ${escapeShellArgs cfg.extraArguments} + ''; + }; + }; + }; +} diff --git a/nixos/modules/services/networking/prayer.nix b/nixos/modules/services/networking/prayer.nix index 9c9eeba23da..f04dac01d9b 100644 --- a/nixos/modules/services/networking/prayer.nix +++ b/nixos/modules/services/networking/prayer.nix @@ -41,12 +41,7 @@ in services.prayer = { - enable = mkOption { - default = false; - description = '' - Whether to run the prayer webmail http server. - ''; - }; + enable = mkEnableOption "the prayer webmail http server"; port = mkOption { default = "2080"; diff --git a/nixos/modules/services/networking/prosody.nix b/nixos/modules/services/networking/prosody.nix index 7a503e71166..9825613d809 100644 --- a/nixos/modules/services/networking/prosody.nix +++ b/nixos/modules/services/networking/prosody.nix @@ -1,9 +1,7 @@ { config, lib, pkgs, ... }: with lib; - let - cfg = config.services.prosody; sslOpts = { ... }: { @@ -30,8 +28,21 @@ let }; }; + discoOpts = { + options = { + url = mkOption { + type = types.str; + description = "URL of the endpoint you want to make discoverable"; + }; + description = mkOption { + type = types.str; + description = "A short description of the endpoint you want to advertise"; + }; + }; + }; + moduleOpts = { - # Generally required + # Required for compliance with https://compliance.conversations.im/about/ roster = mkOption { type = types.bool; default = true; @@ -69,6 +80,18 @@ let description = "Keep multiple clients in sync"; }; + csi = mkOption { + type = types.bool; + default = true; + description = "Implements the CSI protocol that allows clients to report their active/inactive state to the server"; + }; + + cloud_notify = mkOption { + type = types.bool; + default = true; + description = "Push notifications to inform users of new messages or other pertinent information even when they have no XMPP clients online"; + }; + pep = mkOption { type = types.bool; default = true; @@ -89,10 +112,22 @@ let vcard = mkOption { type = types.bool; - default = true; + default = false; description = "Allow users to set vCards"; }; + vcard_legacy = mkOption { + type = types.bool; + default = true; + description = "Converts users profiles and Avatars between old and new formats"; + }; + + bookmarks = mkOption { + type = types.bool; + default = true; + description = "Allows interop between older clients that use XEP-0048: Bookmarks in its 1.0 version and recent clients which use it in PEP"; + }; + # Nice to have version = mkOption { type = types.bool; @@ -126,10 +161,16 @@ let mam = mkOption { type = types.bool; - default = false; + default = true; description = "Store messages in an archive and allow users to access it"; }; + smacks = mkOption { + type = types.bool; + default = true; + description = "Allow a client to resume a disconnected session, and prevent message loss"; + }; + # Admin interfaces admin_adhoc = mkOption { type = types.bool; @@ -137,6 +178,18 @@ let description = "Allows administration via an XMPP client that supports ad-hoc commands"; }; + http_files = mkOption { + type = types.bool; + default = true; + description = "Serve static files from a directory over HTTP"; + }; + + proxy65 = mkOption { + type = types.bool; + default = true; + description = "Enables a file transfer proxy service which clients behind NAT can use"; + }; + admin_telnet = mkOption { type = types.bool; default = false; @@ -156,12 +209,6 @@ let description = "Enable WebSocket support"; }; - http_files = mkOption { - type = types.bool; - default = false; - description = "Serve static files from a directory over HTTP"; - }; - # Other specific functionality limits = mkOption { type = types.bool; @@ -210,13 +257,6 @@ let default = false; description = "Legacy authentication. Only used by some old clients and bots"; }; - - proxy65 = mkOption { - type = types.bool; - default = false; - description = "Enables a file transfer proxy service which clients behind NAT can use"; - }; - }; toLua = x: @@ -235,6 +275,153 @@ let }; ''; + mucOpts = { ... }: { + options = { + domain = mkOption { + type = types.str; + description = "Domain name of the MUC"; + }; + name = mkOption { + type = types.str; + description = "The name to return in service discovery responses for the MUC service itself"; + default = "Prosody Chatrooms"; + }; + restrictRoomCreation = mkOption { + type = types.enum [ true false "admin" "local" ]; + default = false; + description = "Restrict room creation to server admins"; + }; + maxHistoryMessages = mkOption { + type = types.int; + default = 20; + description = "Specifies a limit on what each room can be configured to keep"; + }; + roomLocking = mkOption { + type = types.bool; + default = true; + description = '' + Enables room locking, which means that a room must be + configured before it can be used. Locked rooms are invisible + and cannot be entered by anyone but the creator + ''; + }; + roomLockTimeout = mkOption { + type = types.int; + default = 300; + description = '' + Timout after which the room is destroyed or unlocked if not + configured, in seconds + ''; + }; + tombstones = mkOption { + type = types.bool; + default = true; + description = '' + When a room is destroyed, it leaves behind a tombstone which + prevents the room being entered or recreated. It also allows + anyone who was not in the room at the time it was destroyed + to learn about it, and to update their bookmarks. Tombstones + prevents the case where someone could recreate a previously + semi-anonymous room in order to learn the real JIDs of those + who often join there. + ''; + }; + tombstoneExpiry = mkOption { + type = types.int; + default = 2678400; + description = '' + This settings controls how long a tombstone is considered + valid. It defaults to 31 days. After this time, the room in + question can be created again. + ''; + }; + + vcard_muc = mkOption { + type = types.bool; + default = true; + description = "Adds the ability to set vCard for Multi User Chat rooms"; + }; + + # Extra parameters. Defaulting to prosody default values. + # Adding them explicitly to make them visible from the options + # documentation. + # + # See https://prosody.im/doc/modules/mod_muc for more details. + roomDefaultPublic = mkOption { + type = types.bool; + default = true; + description = "If set, the MUC rooms will be public by default."; + }; + roomDefaultMembersOnly = mkOption { + type = types.bool; + default = false; + description = "If set, the MUC rooms will only be accessible to the members by default."; + }; + roomDefaultModerated = mkOption { + type = types.bool; + default = false; + description = "If set, the MUC rooms will be moderated by default."; + }; + roomDefaultPublicJids = mkOption { + type = types.bool; + default = false; + description = "If set, the MUC rooms will display the public JIDs by default."; + }; + roomDefaultChangeSubject = mkOption { + type = types.bool; + default = false; + description = "If set, the rooms will display the public JIDs by default."; + }; + roomDefaultHistoryLength = mkOption { + type = types.int; + default = 20; + description = "Number of history message sent to participants by default."; + }; + roomDefaultLanguage = mkOption { + type = types.str; + default = "en"; + description = "Default room language."; + }; + }; + }; + + uploadHttpOpts = { ... }: { + options = { + domain = mkOption { + type = types.nullOr types.str; + description = "Domain name for the http-upload service"; + }; + uploadFileSizeLimit = mkOption { + type = types.str; + default = "50 * 1024 * 1024"; + description = "Maximum file size, in bytes. Defaults to 50MB."; + }; + uploadExpireAfter = mkOption { + type = types.str; + default = "60 * 60 * 24 * 7"; + description = "Max age of a file before it gets deleted, in seconds."; + }; + userQuota = mkOption { + type = types.nullOr types.int; + default = null; + example = 1234; + description = '' + Maximum size of all uploaded files per user, in bytes. There + will be no quota if this option is set to null. + ''; + }; + httpUploadPath = mkOption { + type = types.str; + description = '' + Directory where the uploaded files will be stored. By + default, uploaded files are put in a sub-directory of the + default Prosody storage path (usually /var/lib/prosody). + ''; + default = "/var/lib/prosody"; + }; + }; + }; + vHostOpts = { ... }: { options = { @@ -283,6 +470,27 @@ in description = "Whether to enable the prosody server"; }; + xmppComplianceSuite = mkOption { + type = types.bool; + default = true; + description = '' + The XEP-0423 defines a set of recommended XEPs to implement + for a server. It's generally a good idea to implement this + set of extensions if you want to provide your users with a + good XMPP experience. + + This NixOS module aims to provide a "advanced server" + experience as per defined in the XEP-0423[1] specification. + + Setting this option to true will prevent you from building a + NixOS configuration which won't comply with this standard. + You can explicitely decide to ignore this standard if you + know what you are doing by setting this option to false. + + [1] https://xmpp.org/extensions/xep-0423.html + ''; + }; + package = mkOption { type = types.package; description = "Prosody package to use"; @@ -302,6 +510,12 @@ in default = "/var/lib/prosody"; }; + disco_items = mkOption { + type = types.listOf (types.submodule discoOpts); + default = []; + description = "List of discoverable items you want to advertise."; + }; + user = mkOption { type = types.str; default = "prosody"; @@ -320,6 +534,31 @@ in description = "Allow account creation"; }; + # HTTP server-related options + httpPorts = mkOption { + type = types.listOf types.int; + description = "Listening HTTP ports list for this service."; + default = [ 5280 ]; + }; + + httpInterfaces = mkOption { + type = types.listOf types.str; + default = [ "*" "::" ]; + description = "Interfaces on which the HTTP server will listen on."; + }; + + httpsPorts = mkOption { + type = types.listOf types.int; + description = "Listening HTTPS ports list for this service."; + default = [ 5281 ]; + }; + + httpsInterfaces = mkOption { + type = types.listOf types.str; + default = [ "*" "::" ]; + description = "Interfaces on which the HTTPS server will listen on."; + }; + c2sRequireEncryption = mkOption { type = types.bool; default = true; @@ -387,6 +626,26 @@ in description = "Addtional path in which to look find plugins/modules"; }; + uploadHttp = mkOption { + description = '' + Configures the Prosody builtin HTTP server to handle user uploads. + ''; + type = types.nullOr (types.submodule uploadHttpOpts); + default = null; + example = { + domain = "uploads.my-xmpp-example-host.org"; + }; + }; + + muc = mkOption { + type = types.listOf (types.submodule mucOpts); + default = [ ]; + example = [ { + domain = "conference.my-xmpp-example-host.org"; + } ]; + description = "Multi User Chat (MUC) configuration"; + }; + virtualHosts = mkOption { description = "Define the virtual hosts"; @@ -443,9 +702,44 @@ in config = mkIf cfg.enable { + assertions = let + genericErrMsg = '' + + Having a server not XEP-0423-compliant might make your XMPP + experience terrible. See the NixOS manual for further + informations. + + If you know what you're doing, you can disable this warning by + setting config.services.prosody.xmppComplianceSuite to false. + ''; + errors = [ + { assertion = (builtins.length cfg.muc > 0) || !cfg.xmppComplianceSuite; + message = '' + You need to setup at least a MUC domain to comply with + XEP-0423. + '' + genericErrMsg;} + { assertion = cfg.uploadHttp != null || !cfg.xmppComplianceSuite; + message = '' + You need to setup the uploadHttp module through + config.services.prosody.uploadHttp to comply with + XEP-0423. + '' + genericErrMsg;} + ]; + in errors; + environment.systemPackages = [ cfg.package ]; - environment.etc."prosody/prosody.cfg.lua".text = '' + environment.etc."prosody/prosody.cfg.lua".text = + let + httpDiscoItems = if (cfg.uploadHttp != null) + then [{ url = cfg.uploadHttp.domain; description = "HTTP upload endpoint";}] + else []; + mucDiscoItems = builtins.foldl' + (acc: muc: [{ url = muc.domain; description = "${muc.domain} MUC endpoint";}] ++ acc) + [] + cfg.muc; + discoItems = cfg.disco_items ++ httpDiscoItems ++ mucDiscoItems; + in '' pidfile = "/run/prosody/prosody.pid" @@ -472,6 +766,10 @@ in ${ lib.concatStringsSep "\n" (map (x: "${toLua x};") cfg.extraModules)} }; + disco_items = { + ${ lib.concatStringsSep "\n" (builtins.map (x: ''{ "${x.url}", "${x.description}"};'') discoItems)} + }; + allow_registration = ${toLua cfg.allowRegistration} c2s_require_encryption = ${toLua cfg.c2sRequireEncryption} @@ -486,6 +784,42 @@ in authentication = ${toLua cfg.authentication} + http_interfaces = ${toLua cfg.httpInterfaces} + + https_interfaces = ${toLua cfg.httpsInterfaces} + + http_ports = ${toLua cfg.httpPorts} + + https_ports = ${toLua cfg.httpsPorts} + + ${lib.concatMapStrings (muc: '' + Component ${toLua muc.domain} "muc" + modules_enabled = { "muc_mam"; ${optionalString muc.vcard_muc ''"vcard_muc";'' } } + name = ${toLua muc.name} + restrict_room_creation = ${toLua muc.restrictRoomCreation} + max_history_messages = ${toLua muc.maxHistoryMessages} + muc_room_locking = ${toLua muc.roomLocking} + muc_room_lock_timeout = ${toLua muc.roomLockTimeout} + muc_tombstones = ${toLua muc.tombstones} + muc_tombstone_expiry = ${toLua muc.tombstoneExpiry} + muc_room_default_public = ${toLua muc.roomDefaultPublic} + muc_room_default_members_only = ${toLua muc.roomDefaultMembersOnly} + muc_room_default_moderated = ${toLua muc.roomDefaultModerated} + muc_room_default_public_jids = ${toLua muc.roomDefaultPublicJids} + muc_room_default_change_subject = ${toLua muc.roomDefaultChangeSubject} + muc_room_default_history_length = ${toLua muc.roomDefaultHistoryLength} + muc_room_default_language = ${toLua muc.roomDefaultLanguage} + + '') cfg.muc} + + ${ lib.optionalString (cfg.uploadHttp != null) '' + Component ${toLua cfg.uploadHttp.domain} "http_upload" + http_upload_file_size_limit = ${cfg.uploadHttp.uploadFileSizeLimit} + http_upload_expire_after = ${cfg.uploadHttp.uploadExpireAfter} + ${lib.optionalString (cfg.uploadHttp.userQuota != null) "http_upload_quota = ${toLua cfg.uploadHttp.userQuota}"} + http_upload_path = ${toLua cfg.uploadHttp.httpUploadPath} + ''} + ${ cfg.extraConfig } ${ lib.concatStringsSep "\n" (lib.mapAttrsToList (n: v: '' @@ -522,9 +856,22 @@ in PIDFile = "/run/prosody/prosody.pid"; ExecStart = "${cfg.package}/bin/prosodyctl start"; ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; + + MemoryDenyWriteExecute = true; + PrivateDevices = true; + PrivateMounts = true; + PrivateTmp = true; + ProtectControlGroups = true; + ProtectHome = true; + ProtectHostname = true; + ProtectKernelModules = true; + ProtectKernelTunables = true; + RestrictNamespaces = true; + RestrictRealtime = true; + RestrictSUIDSGID = true; }; }; }; - + meta.doc = ./prosody.xml; } diff --git a/nixos/modules/services/networking/prosody.xml b/nixos/modules/services/networking/prosody.xml new file mode 100644 index 00000000000..7859cb1578b --- /dev/null +++ b/nixos/modules/services/networking/prosody.xml @@ -0,0 +1,88 @@ + + Prosody + + Prosody is an open-source, modern XMPP server. + +
+ Basic usage + + + A common struggle for most XMPP newcomers is to find the right set + of XMPP Extensions (XEPs) to setup. Forget to activate a few of + those and your XMPP experience might turn into a nightmare! + + + + The XMPP community tackles this problem by creating a meta-XEP + listing a decent set of XEPs you should implement. This meta-XEP + is issued every year, the 2020 edition being + XEP-0423. + + + The NixOS Prosody module will implement most of these recommendend XEPs out of + the box. That being said, two components still require some + manual configuration: the + Multi User Chat (MUC) + and the HTTP File Upload ones. + You'll need to create a DNS subdomain for each of those. The current convention is to name your + MUC endpoint conference.example.org and your HTTP upload domain upload.example.org. + + + A good configuration to start with, including a + Multi User Chat (MUC) + endpoint as well as a HTTP File Upload + endpoint will look like this: + +services.prosody = { + enable = true; + admins = [ "root@example.org" ]; + ssl.cert = "/var/lib/acme/example.org/fullchain.pem"; + ssl.key = "/var/lib/acme/example.org/key.pem"; + virtualHosts."example.org" = { + enabled = true; + domain = "example.org"; + ssl.cert = "/var/lib/acme/example.org/fullchain.pem"; + ssl.key = "/var/lib/acme/example.org/key.pem"; + }; + muc = [ { + domain = "conference.example.org"; + } ]; + uploadHttp = { + domain = "upload.example.org"; + }; +}; + +
+
+ Let's Encrypt Configuration + + As you can see in the code snippet from the + previous section, + you'll need a single TLS certificate covering your main endpoint, + the MUC one as well as the HTTP Upload one. We can generate such a + certificate by leveraging the ACME + extraDomains module option. + + + Provided the setup detailed in the previous section, you'll need the following acme configuration to generate + a TLS certificate for the three endponits: + +security.acme = { + email = "root@example.org"; + acceptTerms = true; + certs = { + "example.org" = { + webroot = "/var/www/example.org"; + email = "root@example.org"; + extraDomains."conference.example.org" = null; + extraDomains."upload.example.org" = null; + }; + }; +}; + +
+
diff --git a/nixos/modules/services/networking/quassel.nix b/nixos/modules/services/networking/quassel.nix index 52ecd90b7c6..da723ec86ad 100644 --- a/nixos/modules/services/networking/quassel.nix +++ b/nixos/modules/services/networking/quassel.nix @@ -16,12 +16,7 @@ in services.quassel = { - enable = mkOption { - default = false; - description = '' - Whether to run the Quassel IRC client daemon. - ''; - }; + enable = mkEnableOption "the Quassel IRC client daemon"; certificateFile = mkOption { type = types.nullOr types.str; diff --git a/nixos/modules/services/networking/quorum.nix b/nixos/modules/services/networking/quorum.nix new file mode 100644 index 00000000000..2f612c9db68 --- /dev/null +++ b/nixos/modules/services/networking/quorum.nix @@ -0,0 +1,229 @@ +{ config, pkgs, lib, ... }: +let + + inherit (lib) mkEnableOption mkIf mkOption literalExample types optionalString; + + cfg = config.services.quorum; + dataDir = "/var/lib/quorum"; + genesisFile = pkgs.writeText "genesis.json" (builtins.toJSON cfg.genesis); + staticNodesFile = pkgs.writeText "static-nodes.json" (builtins.toJSON cfg.staticNodes); + +in { + options = { + + services.quorum = { + enable = mkEnableOption "Quorum blockchain daemon"; + + user = mkOption { + type = types.str; + default = "quorum"; + description = "The user as which to run quorum."; + }; + + group = mkOption { + type = types.str; + default = cfg.user; + description = "The group as which to run quorum."; + }; + + port = mkOption { + type = types.port; + default = 21000; + description = "Override the default port on which to listen for connections."; + }; + + nodekeyFile = mkOption { + type = types.path; + default = "${dataDir}/nodekey"; + description = "Path to the nodekey."; + }; + + staticNodes = mkOption { + type = types.listOf types.str; + default = []; + example = [ "enode://dd333ec28f0a8910c92eb4d336461eea1c20803eed9cf2c056557f986e720f8e693605bba2f4e8f289b1162e5ac7c80c914c7178130711e393ca76abc1d92f57@0.0.0.0:30303?discport=0" ]; + description = "List of validator nodes."; + }; + + privateconfig = mkOption { + type = types.str; + default = "ignore"; + description = "Configuration of privacy transaction manager."; + }; + + syncmode = mkOption { + type = types.enum [ "fast" "full" "light" ]; + default = "full"; + description = "Blockchain sync mode."; + }; + + blockperiod = mkOption { + type = types.int; + default = 5; + description = "Default minimum difference between two consecutive block's timestamps in seconds."; + }; + + permissioned = mkOption { + type = types.bool; + default = true; + description = "Allow only a defined list of nodes to connect."; + }; + + rpc = { + enable = mkOption { + type = types.bool; + default = true; + description = "Enable RPC interface."; + }; + + address = mkOption { + type = types.str; + default = "0.0.0.0"; + description = "Listening address for RPC connections."; + }; + + port = mkOption { + type = types.port; + default = 22004; + description = "Override the default port on which to listen for RPC connections."; + }; + + api = mkOption { + type = types.str; + default = "admin,db,eth,debug,miner,net,shh,txpool,personal,web3,quorum,istanbul"; + description = "API's offered over the HTTP-RPC interface."; + }; + }; + + ws = { + enable = mkOption { + type = types.bool; + default = true; + description = "Enable WS-RPC interface."; + }; + + address = mkOption { + type = types.str; + default = "0.0.0.0"; + description = "Listening address for WS-RPC connections."; + }; + + port = mkOption { + type = types.port; + default = 8546; + description = "Override the default port on which to listen for WS-RPC connections."; + }; + + api = mkOption { + type = types.str; + default = "admin,db,eth,debug,miner,net,shh,txpool,personal,web3,quorum,istanbul"; + description = "API's offered over the WS-RPC interface."; + }; + + origins = mkOption { + type = types.str; + default = "*"; + description = "Origins from which to accept websockets requests"; + }; + }; + + genesis = mkOption { + type = types.nullOr types.attrs; + default = null; + example = literalExample '' { + alloc = { + a47385db68718bdcbddc2d2bb7c54018066ec111 = { + balance = "1000000000000000000000000000"; + }; + }; + coinbase = "0x0000000000000000000000000000000000000000"; + config = { + byzantiumBlock = 4; + chainId = 494702925; + eip150Block = 2; + eip155Block = 3; + eip158Block = 3; + homesteadBlock = 1; + isQuorum = true; + istanbul = { + epoch = 30000; + policy = 0; + }; + }; + difficulty = "0x1"; + extraData = "0x0000000000000000000000000000000000000000000000000000000000000000f85ad59438f0508111273d8e482f49410ca4078afc86a961b8410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0"; + gasLimit = "0x2FEFD800"; + mixHash = "0x63746963616c2062797a616e74696e65201111756c7420746f6c6572616e6365"; + nonce = "0x0"; + parentHash = "0x0000000000000000000000000000000000000000000000000000000000000000"; + timestamp = "0x00"; + }''; + description = "Blockchain genesis settings."; + }; + }; + }; + + config = mkIf cfg.enable { + environment.systemPackages = [ pkgs.quorum ]; + systemd.tmpfiles.rules = [ + "d '${dataDir}' 0770 '${cfg.user}' '${cfg.group}' - -" + ]; + systemd.services.quorum = { + description = "Quorum daemon"; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + environment = { + PRIVATE_CONFIG = "${cfg.privateconfig}"; + }; + preStart = '' + if [ ! -d ${dataDir}/geth ]; then + if [ ! -d ${dataDir}/keystore ]; then + echo ERROR: You need to create a wallet before initializing your genesis file, run: + echo # su -s /bin/sh - quorum + echo $ geth --datadir ${dataDir} account new + echo and configure your genesis file accordingly. + exit 1; + fi + ln -s ${staticNodesFile} ${dataDir}/static-nodes.json + ${pkgs.quorum}/bin/geth --datadir ${dataDir} init ${genesisFile} + fi + ''; + serviceConfig = { + User = cfg.user; + Group = cfg.group; + ExecStart = ''${pkgs.quorum}/bin/geth \ + --nodiscover \ + --verbosity 5 \ + --nodekey ${cfg.nodekeyFile} \ + --istanbul.blockperiod ${toString cfg.blockperiod} \ + --syncmode ${cfg.syncmode} \ + ${optionalString (cfg.permissioned) + "--permissioned"} \ + --mine --minerthreads 1 \ + ${optionalString (cfg.rpc.enable) + "--rpc --rpcaddr ${cfg.rpc.address} --rpcport ${toString cfg.rpc.port} --rpcapi ${cfg.rpc.api}"} \ + ${optionalString (cfg.ws.enable) + "--ws --wsaddr ${cfg.ws.address} --wsport ${toString cfg.ws.port} --wsapi ${cfg.ws.api} --wsorigins ${cfg.ws.origins}"} \ + --emitcheckpoints \ + --datadir ${dataDir} \ + --port ${toString cfg.port}''; + Restart = "on-failure"; + + # Hardening measures + PrivateTmp = "true"; + ProtectSystem = "full"; + NoNewPrivileges = "true"; + PrivateDevices = "true"; + MemoryDenyWriteExecute = "true"; + }; + }; + users.users.${cfg.user} = { + name = cfg.user; + group = cfg.group; + description = "Quorum daemon user"; + home = dataDir; + isSystemUser = true; + }; + users.groups.${cfg.group} = {}; + }; +} diff --git a/nixos/modules/services/networking/radvd.nix b/nixos/modules/services/networking/radvd.nix index 020faa34922..f4b00c9b356 100644 --- a/nixos/modules/services/networking/radvd.nix +++ b/nixos/modules/services/networking/radvd.nix @@ -19,6 +19,7 @@ in options = { services.radvd.enable = mkOption { + type = types.bool; default = false; description = '' diff --git a/nixos/modules/services/networking/rdnssd.nix b/nixos/modules/services/networking/rdnssd.nix index bccab805bee..469504c4317 100644 --- a/nixos/modules/services/networking/rdnssd.nix +++ b/nixos/modules/services/networking/rdnssd.nix @@ -17,6 +17,7 @@ in options = { services.rdnssd.enable = mkOption { + type = types.bool; default = false; #default = config.networking.enableIPv6; description = diff --git a/nixos/modules/services/networking/resilio.nix b/nixos/modules/services/networking/resilio.nix index 9b25aa57583..e74e03fc0b0 100644 --- a/nixos/modules/services/networking/resilio.nix +++ b/nixos/modules/services/networking/resilio.nix @@ -244,7 +244,7 @@ in group = "rslsync"; }; - users.groups = [ { name = "rslsync"; } ]; + users.groups.rslsync = {}; systemd.services.resilio = with pkgs; { description = "Resilio Sync Service"; diff --git a/nixos/modules/services/networking/rxe.nix b/nixos/modules/services/networking/rxe.nix index a6a069ec50c..c7d174a00de 100644 --- a/nixos/modules/services/networking/rxe.nix +++ b/nixos/modules/services/networking/rxe.nix @@ -5,20 +5,6 @@ with lib; let cfg = config.networking.rxe; - runRxeCmd = cmd: ifcs: - concatStrings ( map (x: "${pkgs.rdma-core}/bin/rxe_cfg -n ${cmd} ${x};") ifcs); - - startScript = pkgs.writeShellScriptBin "rxe-start" '' - ${pkgs.rdma-core}/bin/rxe_cfg -n start - ${runRxeCmd "add" cfg.interfaces} - ${pkgs.rdma-core}/bin/rxe_cfg - ''; - - stopScript = pkgs.writeShellScriptBin "rxe-stop" '' - ${runRxeCmd "remove" cfg.interfaces } - ${pkgs.rdma-core}/bin/rxe_cfg -n stop - ''; - in { ###### interface @@ -31,9 +17,8 @@ in { example = [ "eth0" ]; description = '' Enable RDMA on the listed interfaces. The corresponding virtual - RDMA interfaces will be named rxe0 ... rxeN where the ordering - will be as they are named in the list. UDP port 4791 must be - open on the respective ethernet interfaces. + RDMA interfaces will be named rxe_<interface>. + UDP port 4791 must be open on the respective ethernet interfaces. ''; }; }; @@ -44,7 +29,6 @@ in { config = mkIf cfg.enable { systemd.services.rxe = { - path = with pkgs; [ kmod rdma-core ]; description = "RoCE interfaces"; wantedBy = [ "multi-user.target" ]; @@ -54,8 +38,13 @@ in { serviceConfig = { Type = "oneshot"; RemainAfterExit = true; - ExecStart = "${startScript}/bin/rxe-start"; - ExecStop = "${stopScript}/bin/rxe-stop"; + ExecStart = map ( x: + "${pkgs.iproute}/bin/rdma link add rxe_${x} type rxe netdev ${x}" + ) cfg.interfaces; + + ExecStop = map ( x: + "${pkgs.iproute}/bin/rdma link delete rxe_${x}" + ) cfg.interfaces; }; }; }; diff --git a/nixos/modules/services/networking/sabnzbd.nix b/nixos/modules/services/networking/sabnzbd.nix index 62b24d4377f..ff5aef7d1cb 100644 --- a/nixos/modules/services/networking/sabnzbd.nix +++ b/nixos/modules/services/networking/sabnzbd.nix @@ -15,10 +15,8 @@ in options = { services.sabnzbd = { - enable = mkOption { - default = false; - description = "Whether to enable the sabnzbd server."; - }; + enable = mkEnableOption "the sabnzbd server"; + configFile = mkOption { default = "/var/lib/sabnzbd/sabnzbd.ini"; description = "Path to config file."; diff --git a/nixos/modules/services/networking/shairport-sync.nix b/nixos/modules/services/networking/shairport-sync.nix index 2e988e0ca2e..b4b86a2d55b 100644 --- a/nixos/modules/services/networking/shairport-sync.nix +++ b/nixos/modules/services/networking/shairport-sync.nix @@ -17,6 +17,7 @@ in services.shairport-sync = { enable = mkOption { + type = types.bool; default = false; description = '' Enable the shairport-sync daemon. diff --git a/nixos/modules/services/networking/smartdns.nix b/nixos/modules/services/networking/smartdns.nix new file mode 100644 index 00000000000..f1888af7041 --- /dev/null +++ b/nixos/modules/services/networking/smartdns.nix @@ -0,0 +1,61 @@ +{ lib, pkgs, config, ... }: + +with lib; + +let + inherit (lib.types) attrsOf coercedTo listOf oneOf str int bool; + cfg = config.services.smartdns; + + confFile = pkgs.writeText "smartdns.conf" (with generators; + toKeyValue { + mkKeyValue = mkKeyValueDefault { + mkValueString = v: + if isBool v then + if v then "yes" else "no" + else + mkValueStringDefault { } v; + } " "; + listsAsDuplicateKeys = + true; # Allowing duplications because we need to deal with multiple entries with the same key. + } cfg.settings); +in { + options.services.smartdns = { + enable = mkEnableOption "SmartDNS DNS server"; + + bindPort = mkOption { + type = types.port; + default = 53; + description = "DNS listening port number."; + }; + + settings = mkOption { + type = + let atom = oneOf [ str int bool ]; + in attrsOf (coercedTo atom toList (listOf atom)); + example = literalExample '' + { + bind = ":5353 -no-rule -group example"; + cache-size = 4096; + server-tls = [ "8.8.8.8:853" "1.1.1.1:853" ]; + server-https = "https://cloudflare-dns.com/dns-query -exclude-default-group"; + prefetch-domain = true; + speed-check-mode = "ping,tcp:80"; + }; + ''; + description = '' + A set that will be generated into configuration file, see the SmartDNS README for details of configuration parameters. + You could override the options here like by writing settings.bind = ":5353 -no-rule -group example";. + ''; + }; + }; + + config = lib.mkIf cfg.enable { + services.smartdns.settings.bind = mkDefault ":${toString cfg.bindPort}"; + + systemd.packages = [ pkgs.smartdns ]; + systemd.services.smartdns.wantedBy = [ "multi-user.target" ]; + environment.etc."smartdns/smartdns.conf".source = confFile; + environment.etc."default/smartdns".source = + "${pkgs.smartdns}/etc/default/smartdns"; + }; +} diff --git a/nixos/modules/services/networking/ssh/lshd.nix b/nixos/modules/services/networking/ssh/lshd.nix index eca599afb33..41d0584080e 100644 --- a/nixos/modules/services/networking/ssh/lshd.nix +++ b/nixos/modules/services/networking/ssh/lshd.nix @@ -19,6 +19,7 @@ in services.lshd = { enable = mkOption { + type = types.bool; default = false; description = '' Whether to enable the GNU lshd SSH2 daemon, which allows @@ -53,21 +54,25 @@ in }; syslog = mkOption { + type = types.bool; default = true; description = ''Whether to enable syslog output.''; }; passwordAuthentication = mkOption { + type = types.bool; default = true; description = ''Whether to enable password authentication.''; }; publicKeyAuthentication = mkOption { + type = types.bool; default = true; description = ''Whether to enable public key authentication.''; }; rootLogin = mkOption { + type = types.bool; default = false; description = ''Whether to enable remote root login.''; }; @@ -89,11 +94,13 @@ in }; tcpForwarding = mkOption { + type = types.bool; default = true; description = ''Whether to enable TCP/IP forwarding.''; }; x11Forwarding = mkOption { + type = types.bool; default = true; description = ''Whether to enable X11 forwarding.''; }; diff --git a/nixos/modules/services/networking/ssh/sshd.nix b/nixos/modules/services/networking/ssh/sshd.nix index 464e9ed38c4..17f31e3a488 100644 --- a/nixos/modules/services/networking/ssh/sshd.nix +++ b/nixos/modules/services/networking/ssh/sshd.nix @@ -9,8 +9,8 @@ let # This middle-ground solution ensures *an* sshd can do their basic validation # on the configuration. validationPackage = if pkgs.stdenv.buildPlatform == pkgs.stdenv.hostPlatform - then [ cfgc.package ] - else [ pkgs.buildPackages.openssh ]; + then cfgc.package + else pkgs.buildPackages.openssh; sshconf = pkgs.runCommand "sshd.conf-validated" { nativeBuildInputs = [ validationPackage ]; } '' cat >$out <ipsec.conf file. diff --git a/nixos/modules/services/networking/stubby.nix b/nixos/modules/services/networking/stubby.nix index 849d266576d..c5e0f929a12 100644 --- a/nixos/modules/services/networking/stubby.nix +++ b/nixos/modules/services/networking/stubby.nix @@ -205,6 +205,7 @@ in wantedBy = [ "multi-user.target" ]; serviceConfig = { + Type = "notify"; AmbientCapabilities = "CAP_NET_BIND_SERVICE"; CapabilityBoundingSet = "CAP_NET_BIND_SERVICE"; ExecStart = "${pkgs.stubby}/bin/stubby -C ${confFile} ${optionalString cfg.debugLogging "-l"}"; diff --git a/nixos/modules/services/networking/supplicant.nix b/nixos/modules/services/networking/supplicant.nix index 35c1e649e2e..b5b9989ce18 100644 --- a/nixos/modules/services/networking/supplicant.nix +++ b/nixos/modules/services/networking/supplicant.nix @@ -39,8 +39,6 @@ let bindsTo = deps; after = deps; before = [ "network.target" ]; - # Receive restart event after resume - partOf = [ "post-resume.target" ]; path = [ pkgs.coreutils ]; diff --git a/nixos/modules/services/networking/supybot.nix b/nixos/modules/services/networking/supybot.nix index d5b9a97a1c1..dc9fb31ffd0 100644 --- a/nixos/modules/services/networking/supybot.nix +++ b/nixos/modules/services/networking/supybot.nix @@ -3,32 +3,35 @@ with lib; let - cfg = config.services.supybot; - + isStateDirHome = hasPrefix "/home/" cfg.stateDir; + isStateDirVar = cfg.stateDir == "/var/lib/supybot"; + pyEnv = pkgs.python3.withPackages (p: [ p.limnoria ] ++ (cfg.extraPackages p)); in - { - options = { services.supybot = { enable = mkOption { + type = types.bool; default = false; - description = "Enable Supybot, an IRC bot"; + description = "Enable Supybot, an IRC bot (also known as Limnoria)."; }; stateDir = mkOption { - # Setting this to /var/lib/supybot caused useradd to fail - default = "/home/supybot"; + type = types.path; + default = if versionAtLeast config.system.stateVersion "20.09" + then "/var/lib/supybot" + else "/home/supybot"; + defaultText = "/var/lib/supybot"; description = "The root directory, logs and plugins are stored here"; }; configFile = mkOption { type = types.path; description = '' - Path to a supybot config file. This can be generated by + Path to initial supybot config file. This can be generated by running supybot-wizard. Note: all paths should include the full path to the stateDir @@ -36,21 +39,54 @@ in ''; }; + plugins = mkOption { + type = types.attrsOf types.path; + default = {}; + description = '' + Attribute set of additional plugins that will be symlinked to the + plugin subdirectory. + + Please note that you still need to add the plugins to the config + file (or with !load) using their attribute name. + ''; + example = literalExample '' + let + plugins = pkgs.fetchzip { + url = "https://github.com/ProgVal/Supybot-plugins/archive/57c2450c.zip"; + sha256 = "077snf84ibnva3sbpzdfpfma6hcdw7dflwnhg6pw7mgnf0nd84qd"; + }; + in + { + Wikipedia = "''${plugins}/Wikipedia"; + Decide = ./supy-decide; + } + ''; + }; + + extraPackages = mkOption { + default = p: []; + description = '' + Extra Python packages available to supybot plugins. The + value must be a function which receives the attrset defined + in python3Packages as the sole argument. + ''; + example = literalExample ''p: [ p.lxml p.requests ]''; + }; + }; }; - config = mkIf cfg.enable { - environment.systemPackages = [ pkgs.pythonPackages.limnoria ]; + environment.systemPackages = [ pkgs.python3Packages.limnoria ]; users.users.supybot = { uid = config.ids.uids.supybot; group = "supybot"; description = "Supybot IRC bot user"; home = cfg.stateDir; - createHome = true; + isSystemUser = true; }; users.groups.supybot = { @@ -59,19 +95,16 @@ in systemd.services.supybot = { description = "Supybot, an IRC bot"; + documentation = [ "https://limnoria.readthedocs.io/" ]; after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; - path = [ pkgs.pythonPackages.limnoria ]; preStart = '' - cd ${cfg.stateDir} - mkdir -p backup conf data plugins logs/plugins tmp web - ln -sf ${cfg.configFile} supybot.cfg # This needs to be created afresh every time - rm -f supybot.cfg.bak + rm -f '${cfg.stateDir}/supybot.cfg.bak' ''; serviceConfig = { - ExecStart = "${pkgs.pythonPackages.limnoria}/bin/supybot ${cfg.stateDir}/supybot.cfg"; + ExecStart = "${pyEnv}/bin/supybot ${cfg.stateDir}/supybot.cfg"; PIDFile = "/run/supybot.pid"; User = "supybot"; Group = "supybot"; @@ -79,8 +112,50 @@ in Restart = "on-abort"; StartLimitInterval = "5m"; StartLimitBurst = "1"; + + NoNewPrivileges = true; + PrivateDevices = true; + PrivateMounts = true; + PrivateTmp = true; + ProtectControlGroups = true; + ProtectKernelModules = true; + ProtectKernelTunables = true; + RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ]; + RestrictSUIDSGID = true; + SystemCallArchitectures = "native"; + RestrictNamespaces = true; + RestrictRealtime = true; + LockPersonality = true; + MemoryDenyWriteExecute = true; + RemoveIPC = true; + ProtectHostname = true; + CapabilityBoundingSet = ""; + ProtectSystem = "full"; + } + // optionalAttrs isStateDirVar { + StateDirectory = "supybot"; + ProtectSystem = "strict"; + } + // optionalAttrs (!isStateDirHome) { + ProtectHome = true; }; }; + systemd.tmpfiles.rules = [ + "d '${cfg.stateDir}' 0700 supybot supybot - -" + "d '${cfg.stateDir}/backup' 0750 supybot supybot - -" + "d '${cfg.stateDir}/conf' 0750 supybot supybot - -" + "d '${cfg.stateDir}/data' 0750 supybot supybot - -" + "d '${cfg.stateDir}/plugins' 0750 supybot supybot - -" + "d '${cfg.stateDir}/logs' 0750 supybot supybot - -" + "d '${cfg.stateDir}/logs/plugins' 0750 supybot supybot - -" + "d '${cfg.stateDir}/tmp' 0750 supybot supybot - -" + "d '${cfg.stateDir}/web' 0750 supybot supybot - -" + "L '${cfg.stateDir}/supybot.cfg' - - - - ${cfg.configFile}" + ] + ++ (flip mapAttrsToList cfg.plugins (name: dest: + "L+ '${cfg.stateDir}/plugins/${name}' - - - - ${dest}" + )); + }; } diff --git a/nixos/modules/services/networking/syncthing.nix b/nixos/modules/services/networking/syncthing.nix index 5b3eb6f04b4..e717d78feed 100644 --- a/nixos/modules/services/networking/syncthing.nix +++ b/nixos/modules/services/networking/syncthing.nix @@ -169,12 +169,14 @@ in { description = '' folders which should be shared by syncthing. ''; - example = { - "/home/user/sync" = { - id = "syncme"; - devices = [ "bigbox" ]; - }; - }; + example = literalExample '' + { + "/home/user/sync" = { + id = "syncme"; + devices = [ "bigbox" ]; + }; + } + ''; type = types.attrsOf (types.submodule ({ name, ... }: { options = { diff --git a/nixos/modules/services/networking/tailscale.nix b/nixos/modules/services/networking/tailscale.nix new file mode 100644 index 00000000000..4d6aeb75ebd --- /dev/null +++ b/nixos/modules/services/networking/tailscale.nix @@ -0,0 +1,49 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let cfg = config.services.tailscale; +in { + meta.maintainers = with maintainers; [ danderson mbaillie ]; + + options.services.tailscale = { + enable = mkEnableOption "Tailscale client daemon"; + + port = mkOption { + type = types.port; + default = 41641; + description = "The port to listen on for tunnel traffic (0=autoselect)."; + }; + }; + + config = mkIf cfg.enable { + systemd.services.tailscale = { + description = "Tailscale client daemon"; + + after = [ "network-pre.target" ]; + wants = [ "network-pre.target" ]; + wantedBy = [ "multi-user.target" ]; + + unitConfig = { + StartLimitIntervalSec = 0; + StartLimitBurst = 0; + }; + + serviceConfig = { + ExecStart = + "${pkgs.tailscale}/bin/tailscaled --port ${toString cfg.port}"; + + RuntimeDirectory = "tailscale"; + RuntimeDirectoryMode = 755; + + StateDirectory = "tailscale"; + StateDirectoryMode = 750; + + CacheDirectory = "tailscale"; + CacheDirectoryMode = 750; + + Restart = "on-failure"; + }; + }; + }; +} diff --git a/nixos/modules/services/networking/tcpcrypt.nix b/nixos/modules/services/networking/tcpcrypt.nix index 18f2e135124..5a91054e166 100644 --- a/nixos/modules/services/networking/tcpcrypt.nix +++ b/nixos/modules/services/networking/tcpcrypt.nix @@ -15,6 +15,7 @@ in options = { networking.tcpcrypt.enable = mkOption { + type = types.bool; default = false; description = '' Whether to enable opportunistic TCP encryption. If the other end diff --git a/nixos/modules/services/networking/thelounge.nix b/nixos/modules/services/networking/thelounge.nix index 875d8f66169..a1b06703484 100644 --- a/nixos/modules/services/networking/thelounge.nix +++ b/nixos/modules/services/networking/thelounge.nix @@ -62,7 +62,6 @@ in { systemd.services.thelounge = { description = "The Lounge web IRC client"; wantedBy = [ "multi-user.target" ]; - environment = { THELOUNGE_HOME = dataDir; }; preStart = "ln -sf ${pkgs.writeText "config.js" configJsData} ${dataDir}/config.js"; serviceConfig = { User = "thelounge"; diff --git a/nixos/modules/services/networking/wg-quick.nix b/nixos/modules/services/networking/wg-quick.nix index b770d47d269..ff1bdeed9f4 100644 --- a/nixos/modules/services/networking/wg-quick.nix +++ b/nixos/modules/services/networking/wg-quick.nix @@ -302,7 +302,7 @@ in { ###### implementation config = mkIf (cfg.interfaces != {}) { - boot.extraModulePackages = [ kernel.wireguard ]; + boot.extraModulePackages = optional (versionOlder kernel.kernel.version "5.6") kernel.wireguard; environment.systemPackages = [ pkgs.wireguard-tools ]; # This is forced to false for now because the default "--validmark" rpfilter we apply on reverse path filtering # breaks the wg-quick routing because wireguard packets leave with a fwmark from wireguard. diff --git a/nixos/modules/services/networking/wicd.nix b/nixos/modules/services/networking/wicd.nix index 03c6bd28aab..aa10a50f876 100644 --- a/nixos/modules/services/networking/wicd.nix +++ b/nixos/modules/services/networking/wicd.nix @@ -9,6 +9,7 @@ with lib; options = { networking.wicd.enable = mkOption { + type = types.bool; default = false; description = '' Whether to start wicd. Wired and diff --git a/nixos/modules/services/networking/xinetd.nix b/nixos/modules/services/networking/xinetd.nix index 8dc6f845ed8..2f527ab156a 100644 --- a/nixos/modules/services/networking/xinetd.nix +++ b/nixos/modules/services/networking/xinetd.nix @@ -44,12 +44,7 @@ in options = { - services.xinetd.enable = mkOption { - default = false; - description = '' - Whether to enable the xinetd super-server daemon. - ''; - }; + services.xinetd.enable = mkEnableOption "the xinetd super-server daemon"; services.xinetd.extraDefaults = mkOption { default = ""; diff --git a/nixos/modules/services/networking/yggdrasil.nix b/nixos/modules/services/networking/yggdrasil.nix index 9e675ecd6f4..ecd1406b483 100644 --- a/nixos/modules/services/networking/yggdrasil.nix +++ b/nixos/modules/services/networking/yggdrasil.nix @@ -83,6 +83,14 @@ in { ''; }; + group = mkOption { + type = types.str; + default = "root"; + example = "wheel"; + description = + "Group to grant acces to the Yggdrasil control socket."; + }; + openMulticastPort = mkOption { type = bool; default = false; @@ -144,8 +152,9 @@ in { ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; Restart = "always"; + Group = cfg.group; RuntimeDirectory = "yggdrasil"; - RuntimeDirectoryMode = "0700"; + RuntimeDirectoryMode = "0750"; BindReadOnlyPaths = mkIf configFileProvided [ "${cfg.configFile}" ]; diff --git a/nixos/modules/services/networking/zerotierone.nix b/nixos/modules/services/networking/zerotierone.nix index 042c4d5addd..cf39ed065a7 100644 --- a/nixos/modules/services/networking/zerotierone.nix +++ b/nixos/modules/services/networking/zerotierone.nix @@ -69,13 +69,14 @@ in environment.systemPackages = [ cfg.package ]; # Prevent systemd from potentially changing the MAC address - environment.etc."systemd/network/50-zerotier.link".text = '' - [Match] - OriginalName=zt* - - [Link] - AutoNegotiation=false - MACAddressPolicy=none - ''; + systemd.network.links."50-zerotier" = { + matchConfig = { + OriginalName = "zt*"; + }; + linkConfig = { + AutoNegotiation = false; + MACAddressPolicy = "none"; + }; + }; }; } diff --git a/nixos/modules/services/printing/cupsd.nix b/nixos/modules/services/printing/cupsd.nix index 59306d625e6..e67badfcd29 100644 --- a/nixos/modules/services/printing/cupsd.nix +++ b/nixos/modules/services/printing/cupsd.nix @@ -153,6 +153,16 @@ in ''; }; + allowFrom = mkOption { + type = types.listOf types.str; + default = [ "localhost" ]; + example = [ "all" ]; + apply = concatMapStringsSep "\n" (x: "Allow ${x}"); + description = '' + From which hosts to allow unconditional access. + ''; + }; + bindirCmds = mkOption { type = types.lines; internal = true; @@ -403,19 +413,19 @@ in Order allow,deny - Allow localhost + ${cfg.allowFrom} Order allow,deny - Allow localhost + ${cfg.allowFrom} AuthType Basic Require user @SYSTEM Order allow,deny - Allow localhost + ${cfg.allowFrom} diff --git a/nixos/modules/services/scheduling/atd.nix b/nixos/modules/services/scheduling/atd.nix index 93ed9231d3c..cefe72b0e99 100644 --- a/nixos/modules/services/scheduling/atd.nix +++ b/nixos/modules/services/scheduling/atd.nix @@ -67,8 +67,6 @@ in systemd.services.atd = { description = "Job Execution Daemon (atd)"; - after = [ "systemd-udev-settle.service" ]; - wants = [ "systemd-udev-settle.service" ]; wantedBy = [ "multi-user.target" ]; path = [ at ]; diff --git a/nixos/modules/services/security/bitwarden_rs/default.nix b/nixos/modules/services/security/bitwarden_rs/default.nix index a63be0ee766..903a5327037 100644 --- a/nixos/modules/services/security/bitwarden_rs/default.nix +++ b/nixos/modules/services/security/bitwarden_rs/default.nix @@ -58,7 +58,7 @@ in { default = {}; example = literalExample '' { - domain = https://bw.domain.tld:8443; + domain = "https://bw.domain.tld:8443"; signupsAllowed = true; rocketPort = 8222; rocketLog = "critical"; diff --git a/nixos/modules/services/security/fail2ban.nix b/nixos/modules/services/security/fail2ban.nix index cb748c93d24..3f84f9c2560 100644 --- a/nixos/modules/services/security/fail2ban.nix +++ b/nixos/modules/services/security/fail2ban.nix @@ -216,6 +216,10 @@ in config = mkIf cfg.enable { + warnings = mkIf (config.networking.firewall.enable == false && config.networking.nftables.enable == false) [ + "fail2ban can not be used without a firewall" + ]; + environment.systemPackages = [ cfg.package ]; environment.etc = { diff --git a/nixos/modules/services/security/fprot.nix b/nixos/modules/services/security/fprot.nix index f203f2abc03..3a0b08b3c6d 100644 --- a/nixos/modules/services/security/fprot.nix +++ b/nixos/modules/services/security/fprot.nix @@ -10,12 +10,7 @@ in { services.fprot = { updater = { - enable = mkOption { - default = false; - description = '' - Whether to enable automatic F-Prot virus definitions database updates. - ''; - }; + enable = mkEnableOption "automatic F-Prot virus definitions database updates"; productData = mkOption { description = '' diff --git a/nixos/modules/services/security/oauth2_proxy.nix b/nixos/modules/services/security/oauth2_proxy.nix index 2abb9ec32ac..46caadee204 100644 --- a/nixos/modules/services/security/oauth2_proxy.nix +++ b/nixos/modules/services/security/oauth2_proxy.nix @@ -12,7 +12,7 @@ let # command-line to launch oauth2_proxy. providerSpecificOptions = { azure = cfg: { - azure.tenant = cfg.azure.tenant; + azure-tenant = cfg.azure.tenant; resource = cfg.azure.resource; }; @@ -44,6 +44,7 @@ let pass-access-token = passAccessToken; pass-basic-auth = passBasicAuth; pass-host-header = passHostHeader; + reverse-proxy = reverseProxy; proxy-prefix = proxyPrefix; profile-url = profileURL; redeem-url = redeemURL; @@ -65,8 +66,8 @@ let } // lib.optionalAttrs (cfg.htpasswd.file != null) { display-htpasswd-file = cfg.htpasswd.displayForm; } // lib.optionalAttrs tls.enable { - tls-cert = tls.certificate; - tls-key = tls.key; + tls-cert-file = tls.certificate; + tls-key-file = tls.key; https-address = tls.httpsAddress; } // (getProviderOptions cfg cfg.provider) // cfg.extraConfig; @@ -98,14 +99,21 @@ in ############################################## # PROVIDER configuration + # Taken from: https://github.com/pusher/oauth2_proxy/blob/master/providers/providers.go provider = mkOption { type = types.enum [ "google" - "github" "azure" + "facebook" + "github" + "keycloak" "gitlab" "linkedin" - "myusa" + "login.gov" + "bitbucket" + "nextcloud" + "digitalocean" + "oidc" ]; default = "google"; description = '' @@ -433,6 +441,17 @@ in ''; }; + reverseProxy = mkOption { + type = types.bool; + default = false; + description = '' + In case when running behind a reverse proxy, controls whether headers + like X-Real-Ip are accepted. Usage behind a reverse + proxy will require this flag to be set to avoid logging the reverse + proxy IP address. + ''; + }; + proxyPrefix = mkOption { type = types.str; default = "/oauth2"; diff --git a/nixos/modules/services/system/kerberos/default.nix b/nixos/modules/services/system/kerberos/default.nix index c55241c4cff..9a1e6739901 100644 --- a/nixos/modules/services/system/kerberos/default.nix +++ b/nixos/modules/services/system/kerberos/default.nix @@ -51,12 +51,7 @@ in ###### interface options = { services.kerberos_server = { - enable = mkOption { - default = false; - description = '' - Enable the kerberos authentification server. - ''; - }; + enable = lib.mkEnableOption "the kerberos authentification server"; realms = mkOption { type = types.attrsOf (types.submodule realm); diff --git a/nixos/modules/services/system/localtime.nix b/nixos/modules/services/system/localtime.nix index 74925c5e2c4..8f8e2e2e933 100644 --- a/nixos/modules/services/system/localtime.nix +++ b/nixos/modules/services/system/localtime.nix @@ -8,6 +8,7 @@ in { options = { services.localtime = { enable = mkOption { + type = types.bool; default = false; description = '' Enable localtime, simple daemon for keeping the system diff --git a/nixos/modules/services/system/nscd.nix b/nixos/modules/services/system/nscd.nix index e11f7e049d8..d720f254b81 100644 --- a/nixos/modules/services/system/nscd.nix +++ b/nixos/modules/services/system/nscd.nix @@ -7,6 +7,10 @@ let nssModulesPath = config.system.nssModules.path; cfg = config.services.nscd; + nscd = if pkgs.stdenv.hostPlatform.libc == "glibc" + then pkgs.stdenv.cc.libc.bin + else pkgs.glibc.bin; + in { @@ -20,7 +24,11 @@ in enable = mkOption { type = types.bool; default = true; - description = "Whether to enable the Name Service Cache Daemon."; + description = '' + Whether to enable the Name Service Cache Daemon. + Disabling this is strongly discouraged, as this effectively disables NSS Lookups + from all non-glibc NSS modules, including the ones provided by systemd. + ''; }; config = mkOption { @@ -59,16 +67,16 @@ in # files. So prefix the ExecStart command with "!" to prevent systemd # from dropping privileges early. See ExecStart in systemd.service(5). serviceConfig = - { ExecStart = "!@${pkgs.glibc.bin}/sbin/nscd nscd"; + { ExecStart = "!@${nscd}/sbin/nscd nscd"; Type = "forking"; DynamicUser = true; RuntimeDirectory = "nscd"; PIDFile = "/run/nscd/nscd.pid"; Restart = "always"; ExecReload = - [ "${pkgs.glibc.bin}/sbin/nscd --invalidate passwd" - "${pkgs.glibc.bin}/sbin/nscd --invalidate group" - "${pkgs.glibc.bin}/sbin/nscd --invalidate hosts" + [ "${nscd}/sbin/nscd --invalidate passwd" + "${nscd}/sbin/nscd --invalidate group" + "${nscd}/sbin/nscd --invalidate hosts" ]; }; }; diff --git a/nixos/modules/services/system/uptimed.nix b/nixos/modules/services/system/uptimed.nix index 3c9978ab226..1e256c51408 100644 --- a/nixos/modules/services/system/uptimed.nix +++ b/nixos/modules/services/system/uptimed.nix @@ -10,6 +10,7 @@ in options = { services.uptimed = { enable = mkOption { + type = types.bool; default = false; description = '' Enable uptimed, allowing you to track diff --git a/nixos/modules/services/torrent/deluge.nix b/nixos/modules/services/torrent/deluge.nix index 0c72505395d..45398cb2613 100644 --- a/nixos/modules/services/torrent/deluge.nix +++ b/nixos/modules/services/torrent/deluge.nix @@ -5,6 +5,7 @@ with lib; let cfg = config.services.deluge; cfg_web = config.services.deluge.web; + isDeluge1 = versionOlder cfg.package.version "2.0.0"; openFilesLimit = 4096; listenPortsDefault = [ 6881 6889 ]; @@ -18,11 +19,11 @@ let preStart = if cfg.declarative then '' if [ -e ${declarativeLockFile} ]; then # Was declarative before, no need to back up anything - ln -sf ${configFile} ${configDir}/core.conf + ${if isDeluge1 then "ln -sf" else "cp"} ${configFile} ${configDir}/core.conf ln -sf ${cfg.authFile} ${configDir}/auth else # Declarative for the first time, backup stateful files - ln -sb --suffix=.stateful ${configFile} ${configDir}/core.conf + ${if isDeluge1 then "ln -s" else "cp"} -b --suffix=.stateful ${configFile} ${configDir}/core.conf ln -sb --suffix=.stateful ${cfg.authFile} ${configDir}/auth echo "Autogenerated file that signifies that this server configuration is managed declaratively by NixOS" \ > ${declarativeLockFile} @@ -141,7 +142,15 @@ in { description = '' Extra packages available at runtime to enable Deluge's plugins. For example, extraction utilities are required for the built-in "Extractor" plugin. - This always contains unzip, gnutar, xz, p7zip and bzip2. + This always contains unzip, gnutar, xz and bzip2. + ''; + }; + + package = mkOption { + type = types.package; + example = literalExample "pkgs.deluge-1_x"; + description = '' + Deluge package to use. ''; }; }; @@ -170,8 +179,15 @@ in { config = mkIf cfg.enable { + services.deluge.package = mkDefault ( + if versionAtLeast config.system.stateVersion "20.09" then + pkgs.deluge-2_x + else + pkgs.deluge-1_x + ); + # Provide a default set of `extraPackages`. - services.deluge.extraPackages = with pkgs; [ unzip gnutar xz p7zip bzip2 ]; + services.deluge.extraPackages = with pkgs; [ unzip gnutar xz bzip2 ]; systemd.tmpfiles.rules = [ "d '${cfg.dataDir}' 0770 ${cfg.user} ${cfg.group}" @@ -189,10 +205,10 @@ in { after = [ "network.target" ]; description = "Deluge BitTorrent Daemon"; wantedBy = [ "multi-user.target" ]; - path = [ pkgs.deluge ] ++ cfg.extraPackages; + path = [ cfg.package ] ++ cfg.extraPackages; serviceConfig = { ExecStart = '' - ${pkgs.deluge}/bin/deluged \ + ${cfg.package}/bin/deluged \ --do-not-daemonize \ --config ${configDir} ''; @@ -212,10 +228,11 @@ in { requires = [ "deluged.service" ]; description = "Deluge BitTorrent WebUI"; wantedBy = [ "multi-user.target" ]; - path = [ pkgs.deluge ]; + path = [ cfg.package ]; serviceConfig = { ExecStart = '' - ${pkgs.deluge}/bin/deluge-web \ + ${cfg.package}/bin/deluge-web \ + ${optionalString (!isDeluge1) "--do-not-daemonize"} \ --config ${configDir} \ --port ${toString cfg.web.port} ''; @@ -234,7 +251,7 @@ in { }) ]; - environment.systemPackages = [ pkgs.deluge ]; + environment.systemPackages = [ cfg.package ]; users.users = mkIf (cfg.user == "deluge") { deluge = { diff --git a/nixos/modules/services/web-apps/documize.nix b/nixos/modules/services/web-apps/documize.nix index 1b90299aa23..a5f48e744fd 100644 --- a/nixos/modules/services/web-apps/documize.nix +++ b/nixos/modules/services/web-apps/documize.nix @@ -130,7 +130,7 @@ in { config = mkIf cfg.enable { systemd.services.documize-server = { description = "Documize Wiki"; - documentation = [ https://documize.com/ ]; + documentation = [ "https://documize.com/" ]; wantedBy = [ "multi-user.target" ]; serviceConfig = { diff --git a/nixos/modules/services/web-apps/dokuwiki.nix b/nixos/modules/services/web-apps/dokuwiki.nix index 07af7aa0dfe..76e18266a27 100644 --- a/nixos/modules/services/web-apps/dokuwiki.nix +++ b/nixos/modules/services/web-apps/dokuwiki.nix @@ -3,13 +3,14 @@ let inherit (lib) mkEnableOption mkForce mkIf mkMerge mkOption optionalAttrs recursiveUpdate types; + inherit (lib) concatMapStringsSep flatten mapAttrs mapAttrs' mapAttrsToList nameValuePair concatMapStringSep; - cfg = config.services.dokuwiki; + eachSite = config.services.dokuwiki; - user = config.services.nginx.user; + user = "dokuwiki"; group = config.services.nginx.group; - dokuwikiAclAuthConfig = pkgs.writeText "acl.auth.php" '' + dokuwikiAclAuthConfig = cfg: pkgs.writeText "acl.auth.php" '' # acl.auth.php # # @@ -18,244 +19,353 @@ let ${toString cfg.acl} ''; - dokuwikiLocalConfig = pkgs.writeText "local.php" '' + dokuwikiLocalConfig = cfg: pkgs.writeText "local.php" '' + Mutually exclusive with services.dokuwiki.aclFile + Set this to a value other than null to take precedence over aclFile option. + + Warning: Consider using aclFile instead if you do not + want to store the ACL in the world-readable Nix store. + ''; + }; + + aclFile = mkOption { + type = with types; nullOr str; + default = if (config.aclUse && config.acl == null) then "/var/lib/dokuwiki/${name}/users.auth.php" else null; + description = '' + Location of the dokuwiki acl rules. Mutually exclusive with services.dokuwiki.acl + Mutually exclusive with services.dokuwiki.acl which is preferred. + Consult documentation for further instructions. + Example: + ''; + example = "/var/lib/dokuwiki/${name}/acl.auth.php"; + }; + + aclUse = mkOption { + type = types.bool; + default = true; + description = '' + Necessary for users to log in into the system. + Also limits anonymous users. When disabled, + everyone is able to create and edit content. + ''; + }; + + pluginsConfig = mkOption { + type = types.lines; + default = '' + $plugins['authad'] = 0; + $plugins['authldap'] = 0; + $plugins['authmysql'] = 0; + $plugins['authpgsql'] = 0; + ''; + description = '' + List of the dokuwiki (un)loaded plugins. + ''; + }; + + superUser = mkOption { + type = types.nullOr types.str; + default = "@admin"; + description = '' + You can set either a username, a list of usernames (“admin1,admin2”), + or the name of a group by prepending an @ char to the groupname + Consult documentation for further instructions. + ''; + }; + + usersFile = mkOption { + type = with types; nullOr str; + default = if config.aclUse then "/var/lib/dokuwiki/${name}/users.auth.php" else null; + description = '' + Location of the dokuwiki users file. List of users. Format: + login:passwordhash:Real Name:email:groups,comma,separated + Create passwordHash easily by using:$ mkpasswd -5 password `pwgen 8 1` + Example: + ''; + example = "/var/lib/dokuwiki/${name}/users.auth.php"; + }; + + disableActions = mkOption { + type = types.nullOr types.str; + default = ""; + example = "search,register"; + description = '' + Disable individual action modes. Refer to + + for details on supported values. + ''; + }; + + extraConfig = mkOption { + type = types.nullOr types.lines; + default = null; + example = '' + $conf['title'] = 'My Wiki'; + $conf['userewrite'] = 1; + ''; + description = '' + DokuWiki configuration. Refer to + + for details on supported values. + ''; + }; + + plugins = mkOption { + type = types.listOf types.path; + default = []; + description = '' + List of path(s) to respective plugin(s) which are copied from the 'plugin' directory. + These plugins need to be packaged before use, see example. + ''; + example = '' + # Let's package the icalevents plugin + plugin-icalevents = pkgs.stdenv.mkDerivation { + name = "icalevents"; + # Download the plugin from the dokuwiki site + src = pkgs.fetchurl { + url = https://github.com/real-or-random/dokuwiki-plugin-icalevents/releases/download/2017-06-16/dokuwiki-plugin-icalevents-2017-06-16.zip; + sha256 = "e40ed7dd6bbe7fe3363bbbecb4de481d5e42385b5a0f62f6a6ce6bf3a1f9dfa8"; + }; + sourceRoot = "."; + # We need unzip to build this package + buildInputs = [ pkgs.unzip ]; + # Installing simply means copying all files to the output directory + installPhase = "mkdir -p $out; cp -R * $out/"; + }; + + # And then pass this theme to the plugin list like this: + plugins = [ plugin-icalevents ]; + ''; + }; + + templates = mkOption { + type = types.listOf types.path; + default = []; + description = '' + List of path(s) to respective template(s) which are copied from the 'tpl' directory. + These templates need to be packaged before use, see example. + ''; + example = '' + # Let's package the bootstrap3 theme + template-bootstrap3 = pkgs.stdenv.mkDerivation { + name = "bootstrap3"; + # Download the theme from the dokuwiki site + src = pkgs.fetchurl { + url = https://github.com/giterlizzi/dokuwiki-template-bootstrap3/archive/v2019-05-22.zip; + sha256 = "4de5ff31d54dd61bbccaf092c9e74c1af3a4c53e07aa59f60457a8f00cfb23a6"; + }; + # We need unzip to build this package + buildInputs = [ pkgs.unzip ]; + # Installing simply means copying all files to the output directory + installPhase = "mkdir -p $out; cp -R * $out/"; + }; + + # And then pass this theme to the template list like this: + templates = [ template-bootstrap3 ]; + ''; + }; + + poolConfig = mkOption { + type = with types; attrsOf (oneOf [ str int bool ]); + default = { + "pm" = "dynamic"; + "pm.max_children" = 32; + "pm.start_servers" = 2; + "pm.min_spare_servers" = 2; + "pm.max_spare_servers" = 4; + "pm.max_requests" = 500; + }; + description = '' + Options for the dokuwiki PHP pool. See the documentation on php-fpm.conf + for details on configuration directives. + ''; + }; + + nginx = mkOption { + type = types.submodule ( + recursiveUpdate + (import ../web-servers/nginx/vhost-options.nix { inherit config lib; }) + { + # Enable encryption by default, + options.forceSSL.default = true; + options.enableACME.default = true; + } + ); + default = {forceSSL = true; enableACME = true;}; + example = { + serverAliases = [ + "wiki.\${config.networking.domain}" + ]; + enableACME = false; + }; + description = '' + With this option, you can customize the nginx virtualHost which already has sensible defaults for DokuWiki. + ''; + }; + }; + }; in { - options.services.dokuwiki = { - enable = mkEnableOption "DokuWiki web application."; - - hostName = mkOption { - type = types.str; - default = "localhost"; - description = "FQDN for the instance."; - }; - - stateDir = mkOption { - type = types.path; - default = "/var/lib/dokuwiki/data"; - description = "Location of the dokuwiki state directory."; - }; - - acl = mkOption { - type = types.nullOr types.lines; - default = null; - example = "* @ALL 8"; - description = '' - Access Control Lists: see - Mutually exclusive with services.dokuwiki.aclFile - Set this to a value other than null to take precedence over aclFile option. - ''; - }; - - aclFile = mkOption { - type = types.nullOr types.path; - default = null; - description = '' - Location of the dokuwiki acl rules. Mutually exclusive with services.dokuwiki.acl - Mutually exclusive with services.dokuwiki.acl which is preferred. - Consult documentation for further instructions. - Example: - ''; - }; - - aclUse = mkOption { - type = types.bool; - default = true; - description = '' - Necessary for users to log in into the system. - Also limits anonymous users. When disabled, - everyone is able to create and edit content. - ''; - }; - - pluginsConfig = mkOption { - type = types.lines; - default = '' - $plugins['authad'] = 0; - $plugins['authldap'] = 0; - $plugins['authmysql'] = 0; - $plugins['authpgsql'] = 0; - ''; - description = '' - List of the dokuwiki (un)loaded plugins. - ''; - }; - - superUser = mkOption { - type = types.nullOr types.str; - default = "@admin"; - description = '' - You can set either a username, a list of usernames (“admin1,admin2”), - or the name of a group by prepending an @ char to the groupname - Consult documentation for further instructions. - ''; - }; - - usersFile = mkOption { - type = types.nullOr types.path; - default = null; - description = '' - Location of the dokuwiki users file. List of users. Format: - login:passwordhash:Real Name:email:groups,comma,separated - Create passwordHash easily by using:$ mkpasswd -5 password `pwgen 8 1` - Example: - ''; - }; - - extraConfig = mkOption { - type = types.nullOr types.lines; - default = null; - example = '' - $conf['title'] = 'My Wiki'; - $conf['userewrite'] = 1; - ''; - description = '' - DokuWiki configuration. Refer to - - for details on supported values. - ''; - }; - - poolConfig = mkOption { - type = with types; attrsOf (oneOf [ str int bool ]); - default = { - "pm" = "dynamic"; - "pm.max_children" = 32; - "pm.start_servers" = 2; - "pm.min_spare_servers" = 2; - "pm.max_spare_servers" = 4; - "pm.max_requests" = 500; - }; - description = '' - Options for the dokuwiki PHP pool. See the documentation on php-fpm.conf - for details on configuration directives. - ''; - }; - - nginx = mkOption { - type = types.submodule ( - recursiveUpdate - (import ../web-servers/nginx/vhost-options.nix { inherit config lib; }) - { - # Enable encryption by default, - options.forceSSL.default = true; - options.enableACME.default = true; - } - ); - default = {forceSSL = true; enableACME = true;}; - example = { - serverAliases = [ - "wiki.\${config.networking.domain}" - ]; - enableACME = false; - }; - description = '' - With this option, you can customize the nginx virtualHost which already has sensible defaults for DokuWiki. - ''; + # interface + options = { + services.dokuwiki = mkOption { + type = types.attrsOf (types.submodule siteOpts); + default = {}; + description = "Sepcification of one or more dokuwiki sites to service."; }; }; # implementation - config = mkIf cfg.enable { + config = mkIf (eachSite != {}) { - warnings = mkIf (cfg.superUser == null) ["Not setting services.dokuwiki.superUser will impair your ability to administer DokuWiki"]; + warnings = mapAttrsToList (hostName: cfg: mkIf (cfg.superUser == null) "Not setting services.dokuwiki.${hostName} superUser will impair your ability to administer DokuWiki") eachSite; - assertions = [ - { - assertion = cfg.aclUse -> (cfg.acl != null || cfg.aclFile != null); - message = "Either services.dokuwiki.acl or services.dokuwiki.aclFile is mandatory when aclUse is true"; - } - { - assertion = cfg.usersFile != null -> cfg.aclUse != false; - message = "services.dokuwiki.aclUse must be true when usersFile is not null"; - } - ]; + assertions = flatten (mapAttrsToList (hostName: cfg: + [{ + assertion = cfg.aclUse -> (cfg.acl != null || cfg.aclFile != null); + message = "Either services.dokuwiki.${hostName}.acl or services.dokuwiki.${hostName}.aclFile is mandatory if aclUse true"; + } + { + assertion = cfg.usersFile != null -> cfg.aclUse != false; + message = "services.dokuwiki.${hostName}.aclUse must must be true if usersFile is not null"; + } + ]) eachSite); - services.phpfpm.pools.dokuwiki = { - inherit user; - inherit group; - phpEnv = { - DOKUWIKI_LOCAL_CONFIG = "${dokuwikiLocalConfig}"; - DOKUWIKI_PLUGINS_LOCAL_CONFIG = "${dokuwikiPluginsLocalConfig}"; - } //optionalAttrs (cfg.usersFile != null) { - DOKUWIKI_USERS_AUTH_CONFIG = "${cfg.usersFile}"; - } //optionalAttrs (cfg.aclUse) { - DOKUWIKI_ACL_AUTH_CONFIG = if (cfg.acl != null) then "${dokuwikiAclAuthConfig}" else "${toString cfg.aclFile}"; - }; - - settings = { - "listen.mode" = "0660"; - "listen.owner" = user; - "listen.group" = group; - } // cfg.poolConfig; - }; + services.phpfpm.pools = mapAttrs' (hostName: cfg: ( + nameValuePair "dokuwiki-${hostName}" { + inherit user; + inherit group; + phpEnv = { + DOKUWIKI_LOCAL_CONFIG = "${dokuwikiLocalConfig cfg}"; + DOKUWIKI_PLUGINS_LOCAL_CONFIG = "${dokuwikiPluginsLocalConfig cfg}"; + } // optionalAttrs (cfg.usersFile != null) { + DOKUWIKI_USERS_AUTH_CONFIG = "${cfg.usersFile}"; + } //optionalAttrs (cfg.aclUse) { + DOKUWIKI_ACL_AUTH_CONFIG = if (cfg.acl != null) then "${dokuwikiAclAuthConfig cfg}" else "${toString cfg.aclFile}"; + }; + + settings = { + "listen.mode" = "0660"; + "listen.owner" = user; + "listen.group" = group; + } // cfg.poolConfig; + })) eachSite; services.nginx = { enable = true; - - virtualHosts = { - ${cfg.hostName} = mkMerge [ cfg.nginx { - root = mkForce "${pkgs.dokuwiki}/share/dokuwiki/"; - extraConfig = "fastcgi_param HTTPS on;"; + virtualHosts = mapAttrs (hostName: cfg: mkMerge [ cfg.nginx { + root = mkForce "${pkg hostName cfg}/share/dokuwiki"; + extraConfig = "fastcgi_param HTTPS on;"; - locations."~ /(conf/|bin/|inc/|install.php)" = { - extraConfig = "deny all;"; - }; + locations."~ /(conf/|bin/|inc/|install.php)" = { + extraConfig = "deny all;"; + }; - locations."~ ^/data/" = { - root = "${cfg.stateDir}"; - extraConfig = "internal;"; - }; + locations."~ ^/data/" = { + root = "${cfg.stateDir}"; + extraConfig = "internal;"; + }; - locations."~ ^/lib.*\.(js|css|gif|png|ico|jpg|jpeg)$" = { - extraConfig = "expires 365d;"; - }; + locations."~ ^/lib.*\.(js|css|gif|png|ico|jpg|jpeg)$" = { + extraConfig = "expires 365d;"; + }; - locations."/" = { - priority = 1; - index = "doku.php"; - extraConfig = ''try_files $uri $uri/ @dokuwiki;''; - }; + locations."/" = { + priority = 1; + index = "doku.php"; + extraConfig = ''try_files $uri $uri/ @dokuwiki;''; + }; - locations."@dokuwiki" = { - extraConfig = '' + locations."@dokuwiki" = { + extraConfig = '' # rewrites "doku.php/" out of the URLs if you set the userwrite setting to .htaccess in dokuwiki config page rewrite ^/_media/(.*) /lib/exe/fetch.php?media=$1 last; rewrite ^/_detail/(.*) /lib/exe/detail.php?media=$1 last; rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 last; rewrite ^/(.*) /doku.php?id=$1&$args last; - ''; - }; + ''; + }; - locations."~ \.php$" = { - extraConfig = '' + locations."~ \.php$" = { + extraConfig = '' try_files $uri $uri/ /doku.php; include ${pkgs.nginx}/conf/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param REDIRECT_STATUS 200; - fastcgi_pass unix:${config.services.phpfpm.pools.dokuwiki.socket}; + fastcgi_pass unix:${config.services.phpfpm.pools."dokuwiki-${hostName}".socket}; fastcgi_param HTTPS on; - ''; - }; - }]; - }; - + ''; + }; + }]) eachSite; }; - systemd.tmpfiles.rules = [ + systemd.tmpfiles.rules = flatten (mapAttrsToList (hostName: cfg: [ "d ${cfg.stateDir}/attic 0750 ${user} ${group} - -" "d ${cfg.stateDir}/cache 0750 ${user} ${group} - -" "d ${cfg.stateDir}/index 0750 ${user} ${group} - -" @@ -266,7 +376,13 @@ in "d ${cfg.stateDir}/meta 0750 ${user} ${group} - -" "d ${cfg.stateDir}/pages 0750 ${user} ${group} - -" "d ${cfg.stateDir}/tmp 0750 ${user} ${group} - -" - ]; + ] ++ lib.optional (cfg.aclFile != null) "C ${cfg.aclFile} 0640 ${user} ${group} - ${pkg hostName cfg}/share/dokuwiki/conf/acl.auth.php.dist" + ++ lib.optional (cfg.usersFile != null) "C ${cfg.usersFile} 0640 ${user} ${group} - ${pkg hostName cfg}/share/dokuwiki/conf/users.auth.php.dist" + ) eachSite); + users.users.${user} = { + group = group; + isSystemUser = true; + }; }; } diff --git a/nixos/modules/services/web-apps/gerrit.nix b/nixos/modules/services/web-apps/gerrit.nix new file mode 100644 index 00000000000..b184c0754d4 --- /dev/null +++ b/nixos/modules/services/web-apps/gerrit.nix @@ -0,0 +1,218 @@ +{ config, lib, pkgs, ... }: + +with lib; +let + cfg = config.services.gerrit; + + # NixOS option type for git-like configs + gitIniType = with types; + let + primitiveType = either str (either bool int); + multipleType = either primitiveType (listOf primitiveType); + sectionType = lazyAttrsOf multipleType; + supersectionType = lazyAttrsOf (either multipleType sectionType); + in lazyAttrsOf supersectionType; + + gerritConfig = pkgs.writeText "gerrit.conf" ( + lib.generators.toGitINI cfg.settings + ); + + # Wrap the gerrit java with all the java options so it can be called + # like a normal CLI app + gerrit-cli = pkgs.writeShellScriptBin "gerrit" '' + set -euo pipefail + jvmOpts=( + ${lib.escapeShellArgs cfg.jvmOpts} + -Xmx${cfg.jvmHeapLimit} + ) + exec ${cfg.jvmPackage}/bin/java \ + "''${jvmOpts[@]}" \ + -jar ${cfg.package}/webapps/${cfg.package.name}.war \ + "$@" + ''; + + gerrit-plugins = pkgs.runCommand + "gerrit-plugins" + { + buildInputs = [ gerrit-cli ]; + } + '' + shopt -s nullglob + mkdir $out + + for name in ${toString cfg.builtinPlugins}; do + echo "Installing builtin plugin $name.jar" + gerrit cat plugins/$name.jar > $out/$name.jar + done + + for file in ${toString cfg.plugins}; do + name=$(echo "$file" | cut -d - -f 2-) + echo "Installing plugin $name" + ln -sf "$file" $out/$name + done + ''; +in +{ + options = { + services.gerrit = { + enable = mkEnableOption "Gerrit service"; + + package = mkOption { + type = types.package; + default = pkgs.gerrit; + description = "Gerrit package to use"; + }; + + jvmPackage = mkOption { + type = types.package; + default = pkgs.jre_headless; + defaultText = "pkgs.jre_headless"; + description = "Java Runtime Environment package to use"; + }; + + jvmOpts = mkOption { + type = types.listOf types.str; + default = [ + "-Dflogger.backend_factory=com.google.common.flogger.backend.log4j.Log4jBackendFactory#getInstance" + "-Dflogger.logging_context=com.google.gerrit.server.logging.LoggingContext#getInstance" + ]; + description = "A list of JVM options to start gerrit with."; + }; + + jvmHeapLimit = mkOption { + type = types.str; + default = "1024m"; + description = '' + How much memory to allocate to the JVM heap + ''; + }; + + listenAddress = mkOption { + type = types.str; + default = "[::]:8080"; + description = '' + hostname:port to listen for HTTP traffic. + + This is bound using the systemd socket activation. + ''; + }; + + settings = mkOption { + type = gitIniType; + default = {}; + description = '' + Gerrit configuration. This will be generated to the + etc/gerrit.config file. + ''; + }; + + plugins = mkOption { + type = types.listOf types.package; + default = []; + description = '' + List of plugins to add to Gerrit. Each derivation is a jar file + itself where the name of the derivation is the name of plugin. + ''; + }; + + builtinPlugins = mkOption { + type = types.listOf (types.enum cfg.package.passthru.plugins); + default = []; + description = '' + List of builtins plugins to install. Those are shipped in the + gerrit.war file. + ''; + }; + + serverId = mkOption { + type = types.str; + description = '' + Set a UUID that uniquely identifies the server. + + This can be generated with + nix-shell -p utillinux --run uuidgen. + ''; + }; + }; + }; + + config = mkIf cfg.enable { + + services.gerrit.settings = { + cache.directory = "/var/cache/gerrit"; + container.heapLimit = cfg.jvmHeapLimit; + gerrit.basePath = lib.mkDefault "git"; + gerrit.serverId = cfg.serverId; + httpd.inheritChannel = "true"; + httpd.listenUrl = lib.mkDefault "http://${cfg.listenAddress}"; + index.type = lib.mkDefault "lucene"; + }; + + # Add the gerrit CLI to the system to run `gerrit init` and friends. + environment.systemPackages = [ gerrit-cli ]; + + systemd.sockets.gerrit = { + unitConfig.Description = "Gerrit HTTP socket"; + wantedBy = [ "sockets.target" ]; + listenStreams = [ cfg.listenAddress ]; + }; + + systemd.services.gerrit = { + description = "Gerrit"; + + wantedBy = [ "multi-user.target" ]; + requires = [ "gerrit.socket" ]; + after = [ "gerrit.socket" "network.target" ]; + + path = [ + gerrit-cli + pkgs.bash + pkgs.coreutils + pkgs.git + pkgs.openssh + ]; + + environment = { + GERRIT_HOME = "%S/gerrit"; + GERRIT_TMP = "%T"; + HOME = "%S/gerrit"; + XDG_CONFIG_HOME = "%S/gerrit/.config"; + }; + + preStart = '' + set -euo pipefail + + # bootstrap if nothing exists + if [[ ! -d git ]]; then + gerrit init --batch --no-auto-start + fi + + # install gerrit.war for the plugin manager + rm -rf bin + mkdir bin + ln -sfv ${cfg.package}/webapps/${cfg.package.name}.war bin/gerrit.war + + # copy the config, keep it mutable because Gerrit + ln -sfv ${gerritConfig} etc/gerrit.config + + # install the plugins + rm -rf plugins + ln -sv ${gerrit-plugins} plugins + '' + ; + + serviceConfig = { + CacheDirectory = "gerrit"; + DynamicUser = true; + ExecStart = "${gerrit-cli}/bin/gerrit daemon --console-log"; + LimitNOFILE = 4096; + StandardInput = "socket"; + StandardOutput = "journal"; + StateDirectory = "gerrit"; + WorkingDirectory = "%S/gerrit"; + }; + }; + }; + + meta.maintainers = with lib.maintainers; [ edef zimbatm ]; +} diff --git a/nixos/modules/services/web-apps/mediawiki.nix b/nixos/modules/services/web-apps/mediawiki.nix index e9ed53857d8..0a5b6047bb5 100644 --- a/nixos/modules/services/web-apps/mediawiki.nix +++ b/nixos/modules/services/web-apps/mediawiki.nix @@ -29,7 +29,7 @@ let '') cfg.skins)} ${concatStringsSep "\n" (mapAttrsToList (k: v: '' - ln -s ${v} $out/share/mediawiki/extensions/${k} + ln -s ${if v != null then v else "$src/share/mediawiki/extensions/${k}"} $out/share/mediawiki/extensions/${k} '') cfg.extensions)} ''; }; @@ -204,17 +204,28 @@ in default = {}; type = types.attrsOf types.path; description = '' - List of paths whose content is copied to the 'skins' - subdirectory of the MediaWiki installation. + Attribute set of paths whose content is copied to the skins + subdirectory of the MediaWiki installation in addition to the default skins. ''; }; extensions = mkOption { default = {}; - type = types.attrsOf types.path; + type = types.attrsOf (types.nullOr types.path); description = '' - List of paths whose content is copied to the 'extensions' - subdirectory of the MediaWiki installation. + Attribute set of paths whose content is copied to the extensions + subdirectory of the MediaWiki installation and enabled in configuration. + + Use null instead of path to enable extensions that are part of MediaWiki. + ''; + example = literalExample '' + { + Matomo = pkgs.fetchzip { + url = "https://github.com/DaSchTour/matomo-mediawiki-extension/archive/v4.0.1.tar.gz"; + sha256 = "0g5rd3zp0avwlmqagc59cg9bbkn3r7wx7p6yr80s644mj6dlvs1b"; + }; + ParserFunctions = null; + } ''; }; diff --git a/nixos/modules/services/web-apps/moinmoin.nix b/nixos/modules/services/web-apps/moinmoin.nix index 0fee64be0bb..dc7abce2a5c 100644 --- a/nixos/modules/services/web-apps/moinmoin.nix +++ b/nixos/modules/services/web-apps/moinmoin.nix @@ -299,5 +299,5 @@ in ]))); }; - meta.maintainers = with lib.maintainers; [ b42 ]; + meta.maintainers = with lib.maintainers; [ mmilata ]; } diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix index 912e05d6d40..f826096bf60 100644 --- a/nixos/modules/services/web-apps/nextcloud.nix +++ b/nixos/modules/services/web-apps/nextcloud.nix @@ -6,31 +6,32 @@ let cfg = config.services.nextcloud; fpm = config.services.phpfpm.pools.nextcloud; - phpPackage = pkgs.php73; - phpPackages = pkgs.php73Packages; + phpPackage = + let + base = pkgs.php74; + in + base.buildEnv { + extensions = { enabled, all }: with all; + enabled ++ [ + apcu redis memcached imagick + ]; + extraConfig = phpOptionsStr; + }; toKeyValue = generators.toKeyValue { mkKeyValue = generators.mkKeyValueDefault {} " = "; }; - phpOptionsExtensions = '' - ${optionalString cfg.caching.apcu "extension=${phpPackages.apcu}/lib/php/extensions/apcu.so"} - ${optionalString cfg.caching.redis "extension=${phpPackages.redis}/lib/php/extensions/redis.so"} - ${optionalString cfg.caching.memcached "extension=${phpPackages.memcached}/lib/php/extensions/memcached.so"} - extension=${phpPackages.imagick}/lib/php/extensions/imagick.so - zend_extension = opcache.so - opcache.enable = 1 - ''; phpOptions = { upload_max_filesize = cfg.maxUploadSize; post_max_size = cfg.maxUploadSize; memory_limit = cfg.maxUploadSize; } // cfg.phpOptions; - phpOptionsStr = phpOptionsExtensions + (toKeyValue phpOptions); + phpOptionsStr = toKeyValue phpOptions; occ = pkgs.writeScriptBin "nextcloud-occ" '' - #! ${pkgs.stdenv.shell} - cd ${pkgs.nextcloud} + #! ${pkgs.runtimeShell} + cd ${cfg.package} sudo=exec if [[ "$USER" != nextcloud ]]; then sudo='exec /run/wrappers/bin/sudo -u nextcloud --preserve-env=NEXTCLOUD_CONFIG_DIR' @@ -38,10 +39,11 @@ let export NEXTCLOUD_CONFIG_DIR="${cfg.home}/config" $sudo \ ${phpPackage}/bin/php \ - -c ${pkgs.writeText "php.ini" phpOptionsStr}\ occ $* ''; + inherit (config.system) stateVersion; + in { options.services.nextcloud = { enable = mkEnableOption "nextcloud"; @@ -64,6 +66,11 @@ in { default = false; description = "Use https for generated links."; }; + package = mkOption { + type = types.package; + description = "Which package to use for the Nextcloud instance."; + relatedPackages = [ "nextcloud17" "nextcloud18" ]; + }; maxUploadSize = mkOption { default = "512M"; @@ -309,10 +316,40 @@ in { } ]; - warnings = optional (cfg.poolConfig != null) '' - Using config.services.nextcloud.poolConfig is deprecated and will become unsupported in a future release. - Please migrate your configuration to config.services.nextcloud.poolSettings. - ''; + warnings = [] + ++ (optional (cfg.poolConfig != null) '' + Using config.services.nextcloud.poolConfig is deprecated and will become unsupported in a future release. + Please migrate your configuration to config.services.nextcloud.poolSettings. + '') + ++ (optional (versionOlder cfg.package.version "18") '' + A legacy Nextcloud install (from before NixOS 20.03) may be installed. + + You're currently deploying an older version of Nextcloud. This may be needed + since Nextcloud doesn't allow major version upgrades that skip multiple + versions (i.e. an upgrade from 16 is possible to 17, but not 16 to 18). + + It is assumed that Nextcloud will be upgraded from version 16 to 17. + + * If this is a fresh install, there will be no upgrade to do now. + + * If this server already had Nextcloud installed, first deploy this to your + server, and wait until the upgrade to 17 is finished. + + Then, set `services.nextcloud.package` to `pkgs.nextcloud18` to upgrade to + Nextcloud version 18. + ''); + + services.nextcloud.package = with pkgs; + mkDefault ( + if pkgs ? nextcloud + then throw '' + The `pkgs.nextcloud`-attribute has been removed. If it's supposed to be the default + nextcloud defined in an overlay, please set `services.nextcloud.package` to + `pkgs.nextcloud`. + '' + else if versionOlder stateVersion "20.03" then nextcloud17 + else nextcloud18 + ); } { systemd.timers.nextcloud-cron = { @@ -407,7 +444,7 @@ in { path = [ occ ]; script = '' chmod og+x ${cfg.home} - ln -sf ${pkgs.nextcloud}/apps ${cfg.home}/ + ln -sf ${cfg.package}/apps ${cfg.home}/ mkdir -p ${cfg.home}/config ${cfg.home}/data ${cfg.home}/store-apps ln -sf ${overrideConfig} ${cfg.home}/config/override.config.php @@ -429,7 +466,7 @@ in { environment.NEXTCLOUD_CONFIG_DIR = "${cfg.home}/config"; serviceConfig.Type = "oneshot"; serviceConfig.User = "nextcloud"; - serviceConfig.ExecStart = "${phpPackage}/bin/php -f ${pkgs.nextcloud}/cron.php"; + serviceConfig.ExecStart = "${phpPackage}/bin/php -f ${cfg.package}/cron.php"; }; nextcloud-update-plugins = mkIf cfg.autoUpdateApps.enable { serviceConfig.Type = "oneshot"; @@ -471,7 +508,7 @@ in { enable = true; virtualHosts = { ${cfg.hostName} = { - root = pkgs.nextcloud; + root = cfg.package; locations = { "= /robots.txt" = { priority = 100; @@ -537,7 +574,7 @@ in { add_header Referrer-Policy no-referrer; access_log off; ''; - "~ \\.(?:png|html|ttf|ico|jpg|jpeg)$".extraConfig = '' + "~ \\.(?:png|html|ttf|ico|jpg|jpeg|bcmap|mp4|webm)$".extraConfig = '' try_files $uri /index.php$request_uri; access_log off; ''; diff --git a/nixos/modules/services/web-apps/nextcloud.xml b/nixos/modules/services/web-apps/nextcloud.xml index d66e0f0c299..fc454f8ba25 100644 --- a/nixos/modules/services/web-apps/nextcloud.xml +++ b/nixos/modules/services/web-apps/nextcloud.xml @@ -113,5 +113,53 @@ maintenance:install! This command tries to install the application and can cause unwanted side-effects! + + + Nextcloud doesn't allow to move more than one major-version forward. If you're e.g. on + v16, you cannot upgrade to v18, you need to upgrade to + v17 first. This is ensured automatically as long as the + stateVersion is declared properly. In that case + the oldest version available (one major behind the one from the previous NixOS + release) will be selected by default and the module will generate a warning that reminds + the user to upgrade to latest Nextcloud after that deploy. + +
+ +
+ Maintainer information + + + As stated in the previous paragraph, we must provide a clean upgrade-path for Nextcloud + since it cannot move more than one major version forward on a single upgrade. This chapter + adds some notes how Nextcloud updates should be rolled out in the future. + + + + While minor and patch-level updates are no problem and can be done directly in the + package-expression (and should be backported to supported stable branches after that), + major-releases should be added in a new attribute (e.g. Nextcloud v19.0.0 + should be available in nixpkgs as pkgs.nextcloud19). + To provide simple upgrade paths it's generally useful to backport those as well to stable + branches. As long as the package-default isn't altered, this won't break existing setups. + After that, the versioning-warning in the nextcloud-module should be + updated to make sure that the + package-option selects the latest version + on fresh setups. + + + + If major-releases will be abandoned by upstream, we should check first if those are needed + in NixOS for a safe upgrade-path before removing those. In that case we shold keep those + packages, but mark them as insecure in an expression like this (in + <nixpkgs/pkgs/servers/nextcloud/default.nix>): +/* ... */ +{ + nextcloud17 = generic { + version = "17.0.x"; + sha256 = "0000000000000000000000000000000000000000000000000000"; + insecure = true; + }; +} +
diff --git a/nixos/modules/services/web-apps/wordpress.nix b/nixos/modules/services/web-apps/wordpress.nix index c48a4409737..5fbe53221ae 100644 --- a/nixos/modules/services/web-apps/wordpress.nix +++ b/nixos/modules/services/web-apps/wordpress.nix @@ -105,7 +105,7 @@ let name = "embed-pdf-viewer-plugin"; # Download the theme from the wordpress site src = pkgs.fetchurl { - url = https://downloads.wordpress.org/plugin/embed-pdf-viewer.2.0.3.zip; + url = "https://downloads.wordpress.org/plugin/embed-pdf-viewer.2.0.3.zip"; sha256 = "1rhba5h5fjlhy8p05zf0p14c9iagfh96y91r36ni0rmk6y891lyd"; }; # We need unzip to build this package @@ -132,7 +132,7 @@ let name = "responsive-theme"; # Download the theme from the wordpress site src = pkgs.fetchurl { - url = https://downloads.wordpress.org/theme/responsive.3.14.zip; + url = "https://downloads.wordpress.org/theme/responsive.3.14.zip"; sha256 = "0rjwm811f4aa4q43r77zxlpklyb85q08f9c8ns2akcarrvj5ydx3"; }; # We need unzip to build this package diff --git a/nixos/modules/services/web-apps/youtrack.nix b/nixos/modules/services/web-apps/youtrack.nix index 830edac20ba..b4d653d2d77 100644 --- a/nixos/modules/services/web-apps/youtrack.nix +++ b/nixos/modules/services/web-apps/youtrack.nix @@ -46,9 +46,11 @@ in https://www.jetbrains.com/help/youtrack/standalone/YouTrack-Java-Start-Parameters.html for more information. ''; - example = { - "jetbrains.youtrack.overrideRootPassword" = "tortuga"; - }; + example = literalExample '' + { + "jetbrains.youtrack.overrideRootPassword" = "tortuga"; + } + ''; type = types.attrsOf types.str; }; diff --git a/nixos/modules/services/web-servers/apache-httpd/default.nix b/nixos/modules/services/web-servers/apache-httpd/default.nix index 832c8b30ee9..8abee7130d7 100644 --- a/nixos/modules/services/web-servers/apache-httpd/default.nix +++ b/nixos/modules/services/web-servers/apache-httpd/default.nix @@ -12,7 +12,7 @@ let httpdConf = cfg.configFile; - php = cfg.phpPackage.override { apacheHttpd = pkg.dev; /* otherwise it only gets .out */ }; + php = cfg.phpPackage.override { apacheHttpd = pkg; }; phpMajorVersion = lib.versions.major (lib.getVersion php); @@ -41,9 +41,9 @@ let "mime" "autoindex" "negotiation" "dir" "alias" "rewrite" "unixd" "slotmem_shm" "socache_shmcb" - "mpm_${cfg.multiProcessingModule}" + "mpm_${cfg.mpm}" ] - ++ (if cfg.multiProcessingModule == "prefork" then [ "cgi" ] else [ "cgid" ]) + ++ (if cfg.mpm == "prefork" then [ "cgi" ] else [ "cgid" ]) ++ optional enableHttp2 "http2" ++ optional enableSSL "ssl" ++ optional enableUserDir "userdir" @@ -264,7 +264,7 @@ let PidFile ${runtimeDir}/httpd.pid - ${optionalString (cfg.multiProcessingModule != "prefork") '' + ${optionalString (cfg.mpm != "prefork") '' # mod_cgid requires this. ScriptSock ${runtimeDir}/cgisock ''} @@ -338,6 +338,7 @@ let } '' cat ${php}/etc/php.ini > $out + cat ${php.phpIni} > $out echo "$options" >> $out ''; @@ -349,6 +350,7 @@ in imports = [ (mkRemovedOptionModule [ "services" "httpd" "extraSubservices" ] "Most existing subservices have been ported to the NixOS module system. Please update your configuration accordingly.") (mkRemovedOptionModule [ "services" "httpd" "stateDir" ] "The httpd module now uses /run/httpd as a runtime directory.") + (mkRenamedOptionModule [ "services" "httpd" "multiProcessingModule" ] [ "services" "httpd" "mpm" ]) # virtualHosts options (mkRemovedOptionModule [ "services" "httpd" "documentRoot" ] "Please define a virtual host using `services.httpd.virtualHosts`.") @@ -453,7 +455,13 @@ in type = types.str; default = "wwwrun"; description = '' - User account under which httpd runs. + User account under which httpd children processes run. + + If you require the main httpd process to run as + root add the following configuration: + + systemd.services.httpd.serviceConfig.User = lib.mkForce "root"; + ''; }; @@ -461,7 +469,7 @@ in type = types.str; default = "wwwrun"; description = '' - Group under which httpd runs. + Group under which httpd children processes run. ''; }; @@ -538,20 +546,19 @@ in ''; }; - multiProcessingModule = mkOption { + mpm = mkOption { type = types.enum [ "event" "prefork" "worker" ]; - default = "prefork"; + default = "event"; example = "worker"; description = '' Multi-processing module to be used by Apache. Available - modules are prefork (the default; - handles each request in a separate child process), - worker (hybrid approach that starts a - number of child processes each running a number of - threads) and event (a recent variant of - worker that handles persistent - connections more efficiently). + modules are prefork (handles each + request in a separate child process), worker + (hybrid approach that starts a number of child processes + each running a number of threads) and event + (the default; a recent variant of worker + that handles persistent connections more efficiently). ''; }; @@ -651,7 +658,7 @@ in services.httpd.phpOptions = '' ; Needed for PHP's mail() function. - sendmail_path = sendmail -t -i + sendmail_path = ${pkgs.system-sendmail}/bin/sendmail -t -i ; Don't advertise PHP expose_php = off @@ -702,9 +709,7 @@ in wants = concatLists (map (hostOpts: [ "acme-${hostOpts.hostName}.service" "acme-selfsigned-${hostOpts.hostName}.service" ]) vhostsACME); after = [ "network.target" "fs.target" ] ++ map (hostOpts: "acme-selfsigned-${hostOpts.hostName}.service") vhostsACME; - path = - [ pkg pkgs.coreutils pkgs.gnugrep ] - ++ optional cfg.enablePHP pkgs.system-sendmail; # Needed for PHP's mail() function. + path = [ pkg pkgs.coreutils pkgs.gnugrep ]; environment = optionalAttrs cfg.enablePHP { PHPRC = phpIni; } @@ -724,7 +729,7 @@ in ExecStart = "@${pkg}/bin/httpd httpd -f ${httpdConf}"; ExecStop = "${pkg}/bin/httpd -f ${httpdConf} -k graceful-stop"; ExecReload = "${pkg}/bin/httpd -f ${httpdConf} -k graceful"; - User = "root"; + User = cfg.user; Group = cfg.group; Type = "forking"; PIDFile = "${runtimeDir}/httpd.pid"; @@ -732,6 +737,7 @@ in RestartSec = "5s"; RuntimeDirectory = "httpd httpd/runtime"; RuntimeDirectoryMode = "0750"; + AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ]; }; }; diff --git a/nixos/modules/services/web-servers/apache-httpd/vhost-options.nix b/nixos/modules/services/web-servers/apache-httpd/vhost-options.nix index 263980add8b..173c0f8561c 100644 --- a/nixos/modules/services/web-servers/apache-httpd/vhost-options.nix +++ b/nixos/modules/services/web-servers/apache-httpd/vhost-options.nix @@ -137,7 +137,7 @@ in http2 = mkOption { type = types.bool; - default = false; + default = true; description = '' Whether to enable HTTP 2. HTTP/2 is supported in all multi-processing modules that come with httpd. However, if you use the prefork mpm, there will be severe restrictions. Refer to for details. @@ -220,7 +220,7 @@ in globalRedirect = mkOption { type = types.nullOr types.str; default = null; - example = http://newserver.example.org/; + example = "http://newserver.example.org/"; description = '' If set, all requests for this host are redirected permanently to the given URL. diff --git a/nixos/modules/services/web-servers/jboss/default.nix b/nixos/modules/services/web-servers/jboss/default.nix index d28724281a8..ca5b8635fc0 100644 --- a/nixos/modules/services/web-servers/jboss/default.nix +++ b/nixos/modules/services/web-servers/jboss/default.nix @@ -24,6 +24,7 @@ in services.jboss = { enable = mkOption { + type = types.bool; default = false; description = "Whether to enable JBoss. WARNING : this package is outdated and is known to have vulnerabilities."; }; @@ -59,6 +60,7 @@ in }; useJK = mkOption { + type = types.bool; default = false; description = "Whether to use to connector to the Apache HTTP server"; }; diff --git a/nixos/modules/services/web-servers/nginx/default.nix b/nixos/modules/services/web-servers/nginx/default.nix index 28b433104a1..8d49dc66eb1 100644 --- a/nixos/modules/services/web-servers/nginx/default.nix +++ b/nixos/modules/services/web-servers/nginx/default.nix @@ -46,6 +46,15 @@ let } '')); + commonHttpConfig = '' + # The mime type definitions included with nginx are very incomplete, so + # 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; + include ${cfg.package}/conf/fastcgi.conf; + include ${cfg.package}/conf/uwsgi_params; + ''; + configFile = pkgs.writers.writeNginxConfig "nginx.conf" '' pid /run/nginx/nginx.pid; error_log ${cfg.logError}; @@ -61,12 +70,7 @@ let ${optionalString (cfg.httpConfig == "" && cfg.config == "") '' http { - # The mime type definitions included with nginx are very incomplete, so - # 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; - include ${cfg.package}/conf/fastcgi.conf; - include ${cfg.package}/conf/uwsgi_params; + ${commonHttpConfig} ${optionalString (cfg.resolver.addresses != []) '' resolver ${toString cfg.resolver.addresses} ${optionalString (cfg.resolver.valid != "") "valid=${cfg.resolver.valid}"} ${optionalString (!cfg.resolver.ipv6) "ipv6=off"}; @@ -79,7 +83,7 @@ let tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; - types_hash_max_size 2048; + types_hash_max_size 4096; ''} ssl_protocols ${cfg.sslProtocols}; @@ -172,9 +176,7 @@ let ${optionalString (cfg.httpConfig != "") '' http { - include ${cfg.package}/conf/mime.types; - include ${cfg.package}/conf/fastcgi.conf; - include ${cfg.package}/conf/uwsgi_params; + ${commonHttpConfig} ${cfg.httpConfig} }''} diff --git a/nixos/modules/services/web-servers/phpfpm/default.nix b/nixos/modules/services/web-servers/phpfpm/default.nix index 2c73da10394..d090885a8ca 100644 --- a/nixos/modules/services/web-servers/phpfpm/default.nix +++ b/nixos/modules/services/web-servers/phpfpm/default.nix @@ -47,6 +47,7 @@ let Path to the unix socket file on which to accept FastCGI requests. This option is read-only and managed by NixOS. ''; + example = "${runtimeDir}/.sock"; }; listen = mkOption { @@ -208,14 +209,14 @@ in { user = "php"; group = "php"; phpPackage = pkgs.php; - settings = ''' + settings = { "pm" = "dynamic"; "pm.max_children" = 75; "pm.start_servers" = 10; "pm.min_spare_servers" = 5; "pm.max_spare_servers" = 20; "pm.max_requests" = 500; - '''; + }; } }''; description = '' diff --git a/nixos/modules/services/web-servers/traefik.nix b/nixos/modules/services/web-servers/traefik.nix index 5b0fc467ea4..4ab7307c3b6 100644 --- a/nixos/modules/services/web-servers/traefik.nix +++ b/nixos/modules/services/web-servers/traefik.nix @@ -4,56 +4,102 @@ with lib; let cfg = config.services.traefik; - configFile = - if cfg.configFile == null then - pkgs.runCommand "config.toml" { - buildInputs = [ pkgs.remarshal ]; - preferLocalBuild = true; - } '' - remarshal -if json -of toml \ - < ${pkgs.writeText "config.json" (builtins.toJSON cfg.configOptions)} \ - > $out - '' - else cfg.configFile; - + jsonValue = with types; + let + valueType = nullOr (oneOf [ + bool + int + float + str + (lazyAttrsOf valueType) + (listOf valueType) + ]) // { + description = "JSON value"; + emptyValue.value = { }; + }; + in valueType; + dynamicConfigFile = if cfg.dynamicConfigFile == null then + pkgs.runCommand "config.toml" { + buildInputs = [ pkgs.remarshal ]; + preferLocalBuild = true; + } '' + remarshal -if json -of toml \ + < ${ + pkgs.writeText "dynamic_config.json" + (builtins.toJSON cfg.dynamicConfigOptions) + } \ + > $out + '' + else + cfg.dynamicConfigFile; + staticConfigFile = if cfg.staticConfigFile == null then + pkgs.runCommand "config.toml" { + buildInputs = [ pkgs.yj ]; + preferLocalBuild = true; + } '' + yj -jt -i \ + < ${ + pkgs.writeText "static_config.json" (builtins.toJSON + (recursiveUpdate cfg.staticConfigOptions { + providers.file.filename = "${dynamicConfigFile}"; + })) + } \ + > $out + '' + else + cfg.staticConfigFile; in { options.services.traefik = { enable = mkEnableOption "Traefik web server"; - configFile = mkOption { + staticConfigFile = mkOption { default = null; - example = literalExample "/path/to/config.toml"; + example = literalExample "/path/to/static_config.toml"; type = types.nullOr types.path; description = '' - Path to verbatim traefik.toml to use. - (Using that option has precedence over configOptions) + Path to traefik's static configuration to use. + (Using that option has precedence over staticConfigOptions and dynamicConfigOptions) ''; }; - configOptions = mkOption { + staticConfigOptions = mkOption { description = '' - Config for Traefik. + Static configuration for Traefik. ''; - type = types.attrs; - default = { - defaultEntryPoints = ["http"]; - entryPoints.http.address = ":80"; - }; + type = jsonValue; + default = { entryPoints.http.address = ":80"; }; example = { - defaultEntrypoints = [ "http" ]; - web.address = ":8080"; + entryPoints.web.address = ":8080"; entryPoints.http.address = ":80"; - file = {}; - frontends = { - frontend1 = { - backend = "backend1"; - routes.test_1.rule = "Host:localhost"; - }; - }; - backends.backend1 = { - servers.server1.url = "http://localhost:8000"; + api = { }; + }; + }; + + dynamicConfigFile = mkOption { + default = null; + example = literalExample "/path/to/dynamic_config.toml"; + type = types.nullOr types.path; + description = '' + Path to traefik's dynamic configuration to use. + (Using that option has precedence over dynamicConfigOptions) + ''; + }; + + dynamicConfigOptions = mkOption { + description = '' + Dynamic configuration for Traefik. + ''; + type = jsonValue; + default = { }; + example = { + http.routers.router1 = { + rule = "Host(`localhost`)"; + service = "service1"; }; + + http.services.service1.loadBalancer.servers = + [{ url = "http://localhost:8080"; }]; }; }; @@ -61,7 +107,7 @@ in { default = "/var/lib/traefik"; type = types.path; description = '' - Location for any persistent data traefik creates, ie. acme + Location for any persistent data traefik creates, ie. acme ''; }; @@ -84,16 +130,15 @@ in { }; config = mkIf cfg.enable { - systemd.tmpfiles.rules = [ - "d '${cfg.dataDir}' 0700 traefik traefik - -" - ]; + systemd.tmpfiles.rules = [ "d '${cfg.dataDir}' 0700 traefik traefik - -" ]; systemd.services.traefik = { description = "Traefik web server"; after = [ "network-online.target" ]; wantedBy = [ "multi-user.target" ]; serviceConfig = { - ExecStart = ''${cfg.package.bin}/bin/traefik --configfile=${configFile}''; + ExecStart = + "${cfg.package}/bin/traefik --configfile=${staticConfigFile}"; Type = "simple"; User = "traefik"; Group = cfg.group; @@ -120,6 +165,6 @@ in { isSystemUser = true; }; - users.groups.traefik = {}; + users.groups.traefik = { }; }; } diff --git a/nixos/modules/services/x11/desktop-managers/enlightenment.nix b/nixos/modules/services/x11/desktop-managers/enlightenment.nix index 26b662a2a64..1690a7d51a8 100644 --- a/nixos/modules/services/x11/desktop-managers/enlightenment.nix +++ b/nixos/modules/services/x11/desktop-managers/enlightenment.nix @@ -23,6 +23,7 @@ in options = { services.xserver.desktopManager.enlightenment.enable = mkOption { + type = types.bool; default = false; description = "Enable the Enlightenment desktop environment."; }; @@ -38,7 +39,7 @@ in pkgs.gtk2 # To get GTK's themes. pkgs.tango-icon-theme - pkgs.gnome2.gnome_icon_theme + pkgs.gnome-icon-theme pkgs.xorg.xcursorthemes ]; diff --git a/nixos/modules/services/x11/desktop-managers/gnome3.nix b/nixos/modules/services/x11/desktop-managers/gnome3.nix index 5756cf14ed9..bbc7feb2d04 100644 --- a/nixos/modules/services/x11/desktop-managers/gnome3.nix +++ b/nixos/modules/services/x11/desktop-managers/gnome3.nix @@ -57,6 +57,10 @@ in { + meta = { + maintainers = teams.gnome.members; + }; + options = { services.gnome3 = { @@ -68,6 +72,7 @@ in services.xserver.desktopManager.gnome3 = { enable = mkOption { + type = types.bool; default = false; description = "Enable Gnome 3 desktop manager."; }; @@ -180,7 +185,7 @@ in wmCommand = "${pkgs.gnome3.metacity}/bin/metacity"; } ++ cfg.flashback.customSessions); - security.pam.services.gnome-screensaver = { + security.pam.services.gnome-flashback = { enableGnomeKeyring = true; }; @@ -191,9 +196,10 @@ in inherit (wm) wmName; }) cfg.flashback.customSessions); - services.dbus.packages = [ - pkgs.gnome3.gnome-screensaver - ]; + # gnome-panel needs these for menu applet + environment.sessionVariables.XDG_DATA_DIRS = [ "${pkgs.gnome3.gnome-flashback}/share" ]; + # TODO: switch to sessionVariables (resolve conflict) + environment.variables.XDG_CONFIG_DIRS = [ "${pkgs.gnome3.gnome-flashback}/etc/xdg" ]; }) (mkIf serviceCfg.core-os-services.enable { @@ -252,7 +258,6 @@ in systemd.packages = with pkgs.gnome3; [ gnome-session gnome-shell - vino ]; services.avahi.enable = mkDefault true; @@ -304,7 +309,7 @@ in environment = mkForce {}; }; - # Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/blob/gnome-3-32/elements/core/meta-gnome-core-shell.bst + # Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/blob/gnome-3-36/elements/core/meta-gnome-core-shell.bst environment.systemPackages = with pkgs.gnome3; [ adwaita-icon-theme gnome-backgrounds @@ -323,11 +328,10 @@ in pkgs.hicolor-icon-theme pkgs.shared-mime-info # for update-mime-database pkgs.xdg-user-dirs # Update user dirs as described in http://freedesktop.org/wiki/Software/xdg-user-dirs/ - vino ]; }) - # Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/blob/gnome-3-32/elements/core/meta-gnome-core-utilities.bst + # Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/blob/gnome-3-36/elements/core/meta-gnome-core-utilities.bst (mkIf serviceCfg.core-utilities.enable { environment.systemPackages = (with pkgs.gnome3; removePackagesByName [ baobab diff --git a/nixos/modules/services/x11/desktop-managers/kodi.nix b/nixos/modules/services/x11/desktop-managers/kodi.nix index 65a7b9c628e..bdae9c3afdb 100644 --- a/nixos/modules/services/x11/desktop-managers/kodi.nix +++ b/nixos/modules/services/x11/desktop-managers/kodi.nix @@ -10,6 +10,7 @@ in options = { services.xserver.desktopManager.kodi = { enable = mkOption { + type = types.bool; default = false; description = "Enable the kodi multimedia center."; }; @@ -20,7 +21,7 @@ in services.xserver.desktopManager.session = [{ name = "kodi"; start = '' - ${pkgs.kodi}/bin/kodi --lircdev /run/lirc/lircd --standalone & + LIRC_SOCKET_PATH=/run/lirc/lircd ${pkgs.kodi}/bin/kodi --standalone & waitPID=$! ''; }]; diff --git a/nixos/modules/services/x11/desktop-managers/mate.nix b/nixos/modules/services/x11/desktop-managers/mate.nix index 910a246d776..f236c14fcf3 100644 --- a/nixos/modules/services/x11/desktop-managers/mate.nix +++ b/nixos/modules/services/x11/desktop-managers/mate.nix @@ -44,35 +44,35 @@ in config = mkIf cfg.enable { - services.xserver.desktopManager.session = singleton { - name = "mate"; - bgSupport = true; - start = '' - export XDG_MENU_PREFIX=mate- + services.xserver.displayManager.sessionPackages = [ + pkgs.mate.mate-session-manager + ]; - # Let caja find extensions - export CAJA_EXTENSION_DIRS=$CAJA_EXTENSION_DIRS''${CAJA_EXTENSION_DIRS:+:}${config.system.path}/lib/caja/extensions-2.0 + services.xserver.displayManager.sessionCommands = '' + if test "$XDG_CURRENT_DESKTOP" = "MATE"; then + export XDG_MENU_PREFIX=mate- - # Let caja extensions find gsettings schemas - ${concatMapStrings (p: '' + # Let caja find extensions + export CAJA_EXTENSION_DIRS=$CAJA_EXTENSION_DIRS''${CAJA_EXTENSION_DIRS:+:}${config.system.path}/lib/caja/extensions-2.0 + + # Let caja extensions find gsettings schemas + ${concatMapStrings (p: '' if [ -d "${p}/lib/caja/extensions-2.0" ]; then - ${addToXDGDirs p} + ${addToXDGDirs p} fi - '') - config.environment.systemPackages - } + '') config.environment.systemPackages} - # Let mate-panel find applets - export MATE_PANEL_APPLETS_DIR=$MATE_PANEL_APPLETS_DIR''${MATE_PANEL_APPLETS_DIR:+:}${config.system.path}/share/mate-panel/applets - export MATE_PANEL_EXTRA_MODULES=$MATE_PANEL_EXTRA_MODULES''${MATE_PANEL_EXTRA_MODULES:+:}${config.system.path}/lib/mate-panel/applets + # Add mate-control-center paths to some XDG variables because its schemas are needed by mate-settings-daemon, and mate-settings-daemon is a dependency for mate-control-center (that is, they are mutually recursive) + ${addToXDGDirs pkgs.mate.mate-control-center} + fi + ''; - # Add mate-control-center paths to some XDG variables because its schemas are needed by mate-settings-daemon, and mate-settings-daemon is a dependency for mate-control-center (that is, they are mutually recursive) - ${addToXDGDirs pkgs.mate.mate-control-center} + # Let mate-panel find applets + environment.sessionVariables."MATE_PANEL_APPLETS_DIR" = "${config.system.path}/share/mate-panel/applets"; + environment.sessionVariables."MATE_PANEL_EXTRA_MODULES" = "${config.system.path}/lib/mate-panel/applets"; - ${pkgs.mate.mate-session-manager}/bin/mate-session ${optionalString cfg.debug "--debug"} & - waitPID=$! - ''; - }; + # Debugging + environment.sessionVariables.MATE_SESSION_DEBUG = mkIf cfg.debug "1"; environment.systemPackages = pkgs.mate.basePackages ++ diff --git a/nixos/modules/services/x11/desktop-managers/pantheon.nix b/nixos/modules/services/x11/desktop-managers/pantheon.nix index 869c6694489..01fe230b8a4 100644 --- a/nixos/modules/services/x11/desktop-managers/pantheon.nix +++ b/nixos/modules/services/x11/desktop-managers/pantheon.nix @@ -181,7 +181,6 @@ in hicolor-icon-theme lightlocker onboard - plank qgnomeplatform shared-mime-info sound-theme-freedesktop @@ -195,6 +194,7 @@ in # Desktop elementary-default-settings + elementary-dock elementary-session-settings elementary-shortcut-overlay gala @@ -206,9 +206,9 @@ in }) # Services - cerbere elementary-capnet-assist elementary-dpms-helper + elementary-notifications elementary-settings-daemon pantheon-agent-geoclue2 pantheon-agent-polkit diff --git a/nixos/modules/services/x11/desktop-managers/pantheon.xml b/nixos/modules/services/x11/desktop-managers/pantheon.xml index 4d92a7446c0..7905ceebd9a 100644 --- a/nixos/modules/services/x11/desktop-managers/pantheon.xml +++ b/nixos/modules/services/x11/desktop-managers/pantheon.xml @@ -1,7 +1,7 @@ - Pantheon Destkop + Pantheon Desktop Pantheon is the desktop environment created for the elementary OS distribution. It is written from scratch in Vala, utilizing GNOME technologies with GTK 3 and Granite. @@ -89,22 +89,6 @@ switchboard-with-plugs.override {
- - - Using Pantheon sometimes makes my shutdown take a long time. - - - - We have not yet determined what processes fight with systemd during shutdown, there are many reports. In elementary OS the default system timeout is lowered to lessen the impact of the issue. If you'd like to do this in NixOS, set - - = '' - DefaultTimeoutStopSec=10s - DefaultTimeoutStartSec=10s -''; - - - - I cannot enable both GNOME 3 and Pantheon. diff --git a/nixos/modules/services/x11/desktop-managers/xfce.nix b/nixos/modules/services/x11/desktop-managers/xfce.nix index a08b1947f65..d39b4d64904 100644 --- a/nixos/modules/services/x11/desktop-managers/xfce.nix +++ b/nixos/modules/services/x11/desktop-managers/xfce.nix @@ -8,6 +8,10 @@ in { + meta = { + maintainers = with maintainers; [ worldofpeace ]; + }; + imports = [ # added 2019-08-18 # needed to preserve some semblance of UI familarity @@ -129,6 +133,7 @@ in services.xserver.desktopManager.session = [{ name = "xfce"; + desktopNames = [ "XFCE" ]; bgSupport = true; start = '' ${pkgs.runtimeShell} ${pkgs.xfce.xfce4-session.xinitrc} & diff --git a/nixos/modules/services/x11/display-managers/account-service-util.nix b/nixos/modules/services/x11/display-managers/account-service-util.nix index 1dbe703b566..2b08c62d0ad 100644 --- a/nixos/modules/services/x11/display-managers/account-service-util.nix +++ b/nixos/modules/services/x11/display-managers/account-service-util.nix @@ -3,6 +3,7 @@ , gobject-introspection , python3 , wrapGAppsHook +, lib }: python3.pkgs.buildPythonApplication { @@ -36,4 +37,8 @@ python3.pkgs.buildPythonApplication { cp $src $out/bin/set-session chmod +x $out/bin/set-session ''; + + meta = with lib; { + maintainers = with maintainers; [ worldofpeace ]; + }; } diff --git a/nixos/modules/services/x11/display-managers/default.nix b/nixos/modules/services/x11/display-managers/default.nix index 5d49ca94387..2a7a19e7695 100644 --- a/nixos/modules/services/x11/display-managers/default.nix +++ b/nixos/modules/services/x11/display-managers/default.nix @@ -54,14 +54,6 @@ let exec &> >(tee ~/.xsession-errors) ''} - # Start PulseAudio if enabled. - ${optionalString (config.hardware.pulseaudio.enable) '' - # Publish access credentials in the root window. - if ${config.hardware.pulseaudio.package.out}/bin/pulseaudio --dump-modules | grep module-x11-publish &> /dev/null; then - ${config.hardware.pulseaudio.package.out}/bin/pactl load-module module-x11-publish "display=$DISPLAY" - fi - ''} - # Tell systemd about our $DISPLAY and $XAUTHORITY. # This is needed by the ssh-agent unit. # @@ -412,6 +404,9 @@ in (dm: wm: let sessionName = "${dm.name}${optionalString (wm.name != "none") ("+" + wm.name)}"; script = xsession dm wm; + desktopNames = if dm ? desktopNames + then concatStringsSep ";" dm.desktopNames + else sessionName; in optional (dm.name != "none" || wm.name != "none") (pkgs.writeTextFile { @@ -427,7 +422,7 @@ in TryExec=${script} Exec=${script} Name=${sessionName} - DesktopNames=${sessionName} + DesktopNames=${desktopNames} ''; } // { providedSessions = [ sessionName ]; diff --git a/nixos/modules/services/x11/display-managers/gdm.nix b/nixos/modules/services/x11/display-managers/gdm.nix index e0ac47bb766..622ea62f3a9 100644 --- a/nixos/modules/services/x11/display-managers/gdm.nix +++ b/nixos/modules/services/x11/display-managers/gdm.nix @@ -38,6 +38,10 @@ in { + meta = { + maintainers = teams.gnome.members; + }; + ###### interface options = { @@ -89,16 +93,17 @@ in }; wayland = mkOption { + type = types.bool; default = true; description = '' Allow GDM to run on Wayland instead of Xserver. Note to enable Wayland with Nvidia you need to enable the . ''; - type = types.bool; }; nvidiaWayland = mkOption { + type = types.bool; default = false; description = '' Whether to allow wayland to be used with the proprietary @@ -184,6 +189,9 @@ in "systemd-machined.service" # setSessionScript wants AccountsService "accounts-daemon.service" + # Failed to open gpu '/dev/dri/card0': GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: Operation not permitted + # https://github.com/NixOS/nixpkgs/pull/25311#issuecomment-609417621 + "systemd-udev-settle.service" ]; systemd.services.display-manager.after = [ @@ -193,6 +201,7 @@ in "getty@tty${gdm.initialVT}.service" "plymouth-quit.service" "plymouth-start.service" + "systemd-udev-settle.service" ]; systemd.services.display-manager.conflicts = [ "getty@tty${gdm.initialVT}.service" diff --git a/nixos/modules/services/x11/display-managers/lightdm-greeters/mini.nix b/nixos/modules/services/x11/display-managers/lightdm-greeters/mini.nix index 0025f9b3603..16d7fdf15cf 100644 --- a/nixos/modules/services/x11/display-managers/lightdm-greeters/mini.nix +++ b/nixos/modules/services/x11/display-managers/lightdm-greeters/mini.nix @@ -14,7 +14,9 @@ let user = ${cfg.user} show-password-label = true password-label-text = Password: + invalid-password-text = Invalid Password show-input-cursor = true + password-alignment = right [greeter-hotkeys] mod-key = meta @@ -26,6 +28,8 @@ let [greeter-theme] font = Sans font-size = 1em + font-weight = bold + font-style = normal text-color = "#080800" error-color = "#F8F8F0" background-image = "${ldmcfg.background}" @@ -36,6 +40,8 @@ let layout-space = 15 password-color = "#F8F8F0" password-background-color = "#1B1D1E" + password-border-color = "#080800" + password-border-width = 2px ${cfg.extraConfig} ''; diff --git a/nixos/modules/services/x11/display-managers/lightdm-greeters/pantheon.nix b/nixos/modules/services/x11/display-managers/lightdm-greeters/pantheon.nix index 77c94114e6d..087c6b9c38a 100644 --- a/nixos/modules/services/x11/display-managers/lightdm-greeters/pantheon.nix +++ b/nixos/modules/services/x11/display-managers/lightdm-greeters/pantheon.nix @@ -10,6 +10,10 @@ let in { + meta = { + maintainers = with maintainers; [ worldofpeace ]; + }; + options = { services.xserver.displayManager.lightdm.greeters.pantheon = { diff --git a/nixos/modules/services/x11/display-managers/lightdm.nix b/nixos/modules/services/x11/display-managers/lightdm.nix index cb7b5f95958..479548863b4 100644 --- a/nixos/modules/services/x11/display-managers/lightdm.nix +++ b/nixos/modules/services/x11/display-managers/lightdm.nix @@ -69,6 +69,10 @@ let in { + meta = { + maintainers = with maintainers; [ worldofpeace ]; + }; + # Note: the order in which lightdm greeter modules are imported # here determines the default: later modules (if enable) are # preferred. diff --git a/nixos/modules/services/x11/display-managers/startx.nix b/nixos/modules/services/x11/display-managers/startx.nix index 57046984358..3980203b945 100644 --- a/nixos/modules/services/x11/display-managers/startx.nix +++ b/nixos/modules/services/x11/display-managers/startx.nix @@ -15,6 +15,7 @@ in options = { services.xserver.displayManager.startx = { enable = mkOption { + type = types.bool; default = false; description = '' Whether to enable the dummy "startx" pseudo-display manager, diff --git a/nixos/modules/services/x11/gdk-pixbuf.nix b/nixos/modules/services/x11/gdk-pixbuf.nix index 9ad926369ec..e6a24a2f1a3 100644 --- a/nixos/modules/services/x11/gdk-pixbuf.nix +++ b/nixos/modules/services/x11/gdk-pixbuf.nix @@ -19,7 +19,7 @@ let continue fi GDK_PIXBUF_MODULEDIR="$module_dir" \ - ${pkgs.gdk-pixbuf.dev}/bin/gdk-pixbuf-query-loaders + ${pkgs.stdenv.hostPlatform.emulator pkgs.buildPackages} ${pkgs.gdk-pixbuf.dev}/bin/gdk-pixbuf-query-loaders done ) > "$out" ''; @@ -37,7 +37,7 @@ in # If there is any package configured in modulePackages, we generate the # loaders.cache based on that and set the environment variable # GDK_PIXBUF_MODULE_FILE to point to it. - config = mkIf (cfg.modulePackages != []) { + config = mkIf (cfg.modulePackages != [] || pkgs.stdenv.hostPlatform != pkgs.stdenv.buildPlatform) { environment.variables = { GDK_PIXBUF_MODULE_FILE = "${loadersCache}"; }; diff --git a/nixos/modules/services/x11/hardware/digimend.nix b/nixos/modules/services/x11/hardware/digimend.nix index a9f5640905a..b1b1682f00b 100644 --- a/nixos/modules/services/x11/hardware/digimend.nix +++ b/nixos/modules/services/x11/hardware/digimend.nix @@ -16,12 +16,7 @@ in services.xserver.digimend = { - enable = mkOption { - default = false; - description = '' - Whether to enable the digimend drivers for Huion/XP-Pen/etc. tablets. - ''; - }; + enable = mkEnableOption "the digimend drivers for Huion/XP-Pen/etc. tablets"; }; diff --git a/nixos/modules/services/x11/hardware/libinput.nix b/nixos/modules/services/x11/hardware/libinput.nix index f6b0e7c09f5..9548ecb8ef6 100644 --- a/nixos/modules/services/x11/hardware/libinput.nix +++ b/nixos/modules/services/x11/hardware/libinput.nix @@ -184,7 +184,11 @@ in { '' Option "DragLockButtons" "L1 B1 L2 B2" ''; - description = "Additional options for libinput touchpad driver."; + description = '' + Additional options for libinput touchpad driver. See + libinput4 + for available options."; + ''; }; }; diff --git a/nixos/modules/services/x11/hardware/wacom.nix b/nixos/modules/services/x11/hardware/wacom.nix index a27889c36a7..dad2b308d1b 100644 --- a/nixos/modules/services/x11/hardware/wacom.nix +++ b/nixos/modules/services/x11/hardware/wacom.nix @@ -15,6 +15,7 @@ in services.xserver.wacom = { enable = mkOption { + type = types.bool; default = false; description = '' Whether to enable the Wacom touchscreen/digitizer/tablet. diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix index 74d702ea1c3..6aec1c0753a 100644 --- a/nixos/modules/services/x11/xserver.nix +++ b/nixos/modules/services/x11/xserver.nix @@ -651,8 +651,7 @@ in systemd.services.display-manager = { description = "X11 Server"; - after = [ "systemd-udev-settle.service" "acpid.service" "systemd-logind.service" ]; - wants = [ "systemd-udev-settle.service" ]; + after = [ "acpid.service" "systemd-logind.service" ]; restartIfChanged = false; diff --git a/nixos/modules/system/activation/no-clone.nix b/nixos/modules/system/activation/no-clone.nix index 7f458443526..912420347dc 100644 --- a/nixos/modules/system/activation/no-clone.nix +++ b/nixos/modules/system/activation/no-clone.nix @@ -4,6 +4,5 @@ with lib; { boot.loader.grub.device = mkOverride 0 "nodev"; - nesting.children = mkOverride 0 []; - nesting.clone = mkOverride 0 []; + specialisation = mkOverride 0 {}; } diff --git a/nixos/modules/system/activation/top-level.nix b/nixos/modules/system/activation/top-level.nix index 14bd751ce32..f6739977fa4 100644 --- a/nixos/modules/system/activation/top-level.nix +++ b/nixos/modules/system/activation/top-level.nix @@ -11,21 +11,16 @@ let # you can provide an easy way to boot the same configuration # as you use, but with another kernel # !!! fix this - cloner = inheritParent: list: - map (childConfig: + children = mapAttrs (childName: childConfig: (import ../../../lib/eval-config.nix { inherit baseModules; system = config.nixpkgs.initialSystem; modules = - (optionals inheritParent modules) + (optionals childConfig.inheritParentConfig modules) ++ [ ./no-clone.nix ] - ++ [ childConfig ]; + ++ [ childConfig.configuration ]; }).config.system.build.toplevel - ) list; - - children = - cloner false config.nesting.children - ++ cloner true config.nesting.clone; + ) config.specialisation; systemBuilder = let @@ -75,14 +70,11 @@ let echo -n "$configurationName" > $out/configuration-name echo -n "systemd ${toString config.systemd.package.interfaceVersion}" > $out/init-interface-version echo -n "$nixosLabel" > $out/nixos-version - echo -n "${pkgs.stdenv.hostPlatform.system}" > $out/system + echo -n "${config.boot.kernelPackages.stdenv.hostPlatform.system}" > $out/system - mkdir $out/fine-tune - childCount=0 - for i in $children; do - childCount=$(( childCount + 1 )) - ln -s $i $out/fine-tune/child-$childCount - done + mkdir $out/specialisation + ${concatStringsSep "\n" + (mapAttrsToList (name: path: "ln -s ${path} $out/specialisation/${name}") children)} mkdir $out/bin export localeArchive="${config.i18n.glibcLocales}/lib/locale/locale-archive" @@ -112,7 +104,6 @@ let shell = "${pkgs.bash}/bin/sh"; su = "${pkgs.shadow.su}/bin/su"; - inherit children; kernelParams = config.boot.kernelParams; installBootLoader = config.system.build.installBootLoader @@ -143,6 +134,11 @@ let in { + imports = [ + (mkRemovedOptionModule [ "nesting" "clone" ] "Use `specialisation.«name» = { inheritParentConfig = true; configuration = { ... }; }` instead.") + (mkRemovedOptionModule [ "nesting" "children" ] "Use `specialisation.«name».configuration = { ... }` instead.") + ]; + options = { system.build = mkOption { @@ -154,26 +150,35 @@ in ''; }; - nesting.children = mkOption { - default = []; + specialisation = mkOption { + default = {}; + example = lib.literalExample "{ fewJobsManyCores.configuration = { nix.buildCores = 0; nix.maxJobs = 1; }; }"; description = '' - Additional configurations to build. - ''; - }; + Additional configurations to build. If + inheritParentConfig is true, the system + will be based on the overall system configuration. - nesting.clone = mkOption { - default = []; - description = '' - Additional configurations to build based on the current - configuration which then has a lower priority. - - To switch to a cloned configuration (e.g. child-1) - at runtime, run + To switch to a specialised configuration + (e.g. fewJobsManyCores) at runtime, run: - # sudo /run/current-system/fine-tune/child-1/bin/switch-to-configuration test + # sudo /run/current-system/specialisation/fewJobsManyCores/bin/switch-to-configuration test ''; + type = types.attrsOf (types.submodule ( + { ... }: { + options.inheritParentConfig = mkOption { + type = types.bool; + default = true; + description = "Include the entire system's configuration. Set to false to make a completely differently configured system."; + }; + + options.configuration = mkOption { + default = {}; + description = "Arbitrary NixOS configuration options."; + }; + }) + ); }; system.boot.loader.id = mkOption { diff --git a/nixos/modules/system/boot/initrd-ssh.nix b/nixos/modules/system/boot/initrd-ssh.nix index 2d3e3b05c98..60760487a1d 100644 --- a/nixos/modules/system/boot/initrd-ssh.nix +++ b/nixos/modules/system/boot/initrd-ssh.nix @@ -10,19 +10,21 @@ in { - options = { - - boot.initrd.network.ssh.enable = mkOption { + options.boot.initrd.network.ssh = { + enable = mkOption { type = types.bool; default = false; description = '' Start SSH service during initrd boot. It can be used to debug failing boot on a remote server, enter pasphrase for an encrypted partition etc. Service is killed when stage-1 boot is finished. + + The sshd configuration is largely inherited from + . ''; }; - boot.initrd.network.ssh.port = mkOption { + port = mkOption { type = types.int; default = 22; description = '' @@ -30,7 +32,7 @@ in ''; }; - boot.initrd.network.ssh.shell = mkOption { + shell = mkOption { type = types.str; default = "/bin/ash"; description = '' @@ -38,95 +40,163 @@ in ''; }; - boot.initrd.network.ssh.hostRSAKey = mkOption { - type = types.nullOr types.path; - default = null; + hostKeys = mkOption { + type = types.listOf (types.either types.str types.path); + default = []; + example = [ + "/etc/secrets/initrd/ssh_host_rsa_key" + "/etc/secrets/initrd/ssh_host_ed25519_key" + ]; description = '' - RSA SSH private key file in the Dropbear format. + Specify SSH host keys to import into the initrd. - WARNING: Unless your bootloader supports initrd secrets, this key is - contained insecurely in the global Nix store. Do NOT use your regular - SSH host private keys for this purpose or you'll expose them to - regular users! + To generate keys, use + ssh-keygen1: + + + # ssh-keygen -t rsa -N "" -f /etc/secrets/initrd/ssh_host_rsa_key + # ssh-keygen -t ed25519 -N "" -f /etc/secrets/initrd/ssh_host_ed25519_key + + + + + Unless your bootloader supports initrd secrets, these keys + are stored insecurely in the global Nix store. Do NOT use + your regular SSH host private keys for this purpose or + you'll expose them to regular users! + + + Additionally, even if your initrd supports secrets, if + you're using initrd SSH to unlock an encrypted disk then + using your regular host keys exposes the private keys on + your unencrypted boot partition. + + ''; }; - boot.initrd.network.ssh.hostDSSKey = mkOption { - type = types.nullOr types.path; - default = null; - description = '' - DSS SSH private key file in the Dropbear format. - - WARNING: Unless your bootloader supports initrd secrets, this key is - contained insecurely in the global Nix store. Do NOT use your regular - SSH host private keys for this purpose or you'll expose them to - regular users! - ''; - }; - - boot.initrd.network.ssh.hostECDSAKey = mkOption { - type = types.nullOr types.path; - default = null; - description = '' - ECDSA SSH private key file in the Dropbear format. - - WARNING: Unless your bootloader supports initrd secrets, this key is - contained insecurely in the global Nix store. Do NOT use your regular - SSH host private keys for this purpose or you'll expose them to - regular users! - ''; - }; - - boot.initrd.network.ssh.authorizedKeys = mkOption { + authorizedKeys = mkOption { type = types.listOf types.str; default = config.users.users.root.openssh.authorizedKeys.keys; + defaultText = "config.users.users.root.openssh.authorizedKeys.keys"; description = '' Authorized keys for the root user on initrd. - Note that Dropbear doesn't support OpenSSH's Ed25519 key type. ''; }; - }; - config = mkIf (config.boot.initrd.network.enable && cfg.enable) { + imports = + map (opt: mkRemovedOptionModule ([ "boot" "initrd" "network" "ssh" ] ++ [ opt ]) '' + The initrd SSH functionality now uses OpenSSH rather than Dropbear. + + If you want to keep your existing initrd SSH host keys, convert them with + $ dropbearconvert dropbear openssh dropbear_host_$type_key ssh_host_$type_key + and then set options.boot.initrd.network.ssh.hostKeys. + '') [ "hostRSAKey" "hostDSSKey" "hostECDSAKey" ]; + + config = let + # Nix complains if you include a store hash in initrd path names, so + # as an awful hack we drop the first character of the hash. + initrdKeyPath = path: if isString path + then path + else let name = builtins.baseNameOf path; in + builtins.unsafeDiscardStringContext ("/etc/ssh/" + + substring 1 (stringLength name) name); + + sshdCfg = config.services.openssh; + + sshdConfig = '' + Port ${toString cfg.port} + + PasswordAuthentication no + ChallengeResponseAuthentication no + + ${flip concatMapStrings cfg.hostKeys (path: '' + HostKey ${initrdKeyPath path} + '')} + + KexAlgorithms ${concatStringsSep "," sshdCfg.kexAlgorithms} + Ciphers ${concatStringsSep "," sshdCfg.ciphers} + MACs ${concatStringsSep "," sshdCfg.macs} + + LogLevel ${sshdCfg.logLevel} + + ${if sshdCfg.useDns then '' + UseDNS yes + '' else '' + UseDNS no + ''} + ''; + in mkIf (config.boot.initrd.network.enable && cfg.enable) { assertions = [ - { assertion = cfg.authorizedKeys != []; + { + assertion = cfg.authorizedKeys != []; message = "You should specify at least one authorized key for initrd SSH"; } + + { + assertion = cfg.hostKeys != []; + message = '' + You must now pre-generate the host keys for initrd SSH. + See the boot.initrd.network.ssh.hostKeys documentation + for instructions. + ''; + } ]; boot.initrd.extraUtilsCommands = '' - copy_bin_and_libs ${pkgs.dropbear}/bin/dropbear + copy_bin_and_libs ${pkgs.openssh}/bin/sshd cp -pv ${pkgs.glibc.out}/lib/libnss_files.so.* $out/lib ''; boot.initrd.extraUtilsCommandsTest = '' - $out/bin/dropbear -V + # sshd requires a host key to check config, so we pass in the test's + echo -n ${escapeShellArg sshdConfig} | + $out/bin/sshd -t -f /dev/stdin \ + -h ${../../../tests/initrd-network-ssh/ssh_host_ed25519_key} ''; boot.initrd.network.postCommands = '' echo '${cfg.shell}' > /etc/shells echo 'root:x:0:0:root:/root:${cfg.shell}' > /etc/passwd + echo 'sshd:x:1:1:sshd:/var/empty:/bin/nologin' >> /etc/passwd echo 'passwd: files' > /etc/nsswitch.conf - mkdir -p /var/log + mkdir -p /var/log /var/empty touch /var/log/lastlog - mkdir -p /etc/dropbear + mkdir -p /etc/ssh + echo -n ${escapeShellArg sshdConfig} > /etc/ssh/sshd_config + + echo "export PATH=$PATH" >> /etc/profile + echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH" >> /etc/profile mkdir -p /root/.ssh ${concatStrings (map (key: '' echo ${escapeShellArg key} >> /root/.ssh/authorized_keys '') cfg.authorizedKeys)} - dropbear -s -j -k -E -p ${toString cfg.port} ${optionalString (cfg.hostRSAKey == null && cfg.hostDSSKey == null && cfg.hostECDSAKey == null) "-R"} + ${flip concatMapStrings cfg.hostKeys (path: '' + # keys from Nix store are world-readable, which sshd doesn't like + chmod 0600 "${initrdKeyPath path}" + '')} + + /bin/sshd -e ''; - boot.initrd.secrets = - (optionalAttrs (cfg.hostRSAKey != null) { "/etc/dropbear/dropbear_rsa_host_key" = cfg.hostRSAKey; }) // - (optionalAttrs (cfg.hostDSSKey != null) { "/etc/dropbear/dropbear_dss_host_key" = cfg.hostDSSKey; }) // - (optionalAttrs (cfg.hostECDSAKey != null) { "/etc/dropbear/dropbear_ecdsa_host_key" = cfg.hostECDSAKey; }); + boot.initrd.postMountCommands = '' + # Stop sshd cleanly before stage 2. + # + # If you want to keep it around to debug post-mount SSH issues, + # run `touch /.keep_sshd` (either from an SSH session or in + # another initrd hook like preDeviceCommands). + if ! [ -e /.keep_sshd ]; then + pkill -x sshd + fi + ''; + boot.initrd.secrets = listToAttrs + (map (path: nameValuePair (initrdKeyPath path) path) cfg.hostKeys); }; } diff --git a/nixos/modules/system/boot/kernel.nix b/nixos/modules/system/boot/kernel.nix index c247f334c23..43871f439f7 100644 --- a/nixos/modules/system/boot/kernel.nix +++ b/nixos/modules/system/boot/kernel.nix @@ -192,139 +192,144 @@ in ###### implementation - config = mkIf (!config.boot.isContainer) { + config = mkMerge + [ (mkIf config.boot.initrd.enable { + boot.initrd.availableKernelModules = + [ # Note: most of these (especially the SATA/PATA modules) + # shouldn't be included by default since nixos-generate-config + # detects them, but I'm keeping them for now for backwards + # compatibility. - system.build = { inherit kernel; }; + # Some SATA/PATA stuff. + "ahci" + "sata_nv" + "sata_via" + "sata_sis" + "sata_uli" + "ata_piix" + "pata_marvell" - system.modulesTree = [ kernel ] ++ config.boot.extraModulePackages; + # Standard SCSI stuff. + "sd_mod" + "sr_mod" - # Implement consoleLogLevel both in early boot and using sysctl - # (so you don't need to reboot to have changes take effect). - boot.kernelParams = - [ "loglevel=${toString config.boot.consoleLogLevel}" ] ++ - optionals config.boot.vesa [ "vga=0x317" "nomodeset" ]; + # SD cards and internal eMMC drives. + "mmc_block" - boot.kernel.sysctl."kernel.printk" = mkDefault config.boot.consoleLogLevel; + # Support USB keyboards, in case the boot fails and we only have + # a USB keyboard, or for LUKS passphrase prompt. + "uhci_hcd" + "ehci_hcd" + "ehci_pci" + "ohci_hcd" + "ohci_pci" + "xhci_hcd" + "xhci_pci" + "usbhid" + "hid_generic" "hid_lenovo" "hid_apple" "hid_roccat" + "hid_logitech_hidpp" "hid_logitech_dj" - boot.kernelModules = [ "loop" "atkbd" ]; + ] ++ optionals (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) [ + # Misc. x86 keyboard stuff. + "pcips2" "atkbd" "i8042" - boot.initrd.availableKernelModules = - [ # Note: most of these (especially the SATA/PATA modules) - # shouldn't be included by default since nixos-generate-config - # detects them, but I'm keeping them for now for backwards - # compatibility. + # x86 RTC needed by the stage 2 init script. + "rtc_cmos" + ]; - # Some SATA/PATA stuff. - "ahci" - "sata_nv" - "sata_via" - "sata_sis" - "sata_uli" - "ata_piix" - "pata_marvell" + boot.initrd.kernelModules = + [ # For LVM. + "dm_mod" + ]; + }) - # Standard SCSI stuff. - "sd_mod" - "sr_mod" + (mkIf (!config.boot.isContainer) { + system.build = { inherit kernel; }; - # SD cards and internal eMMC drives. - "mmc_block" + system.modulesTree = [ kernel ] ++ config.boot.extraModulePackages; - # Support USB keyboards, in case the boot fails and we only have - # a USB keyboard, or for LUKS passphrase prompt. - "uhci_hcd" - "ehci_hcd" - "ehci_pci" - "ohci_hcd" - "ohci_pci" - "xhci_hcd" - "xhci_pci" - "usbhid" - "hid_generic" "hid_lenovo" "hid_apple" "hid_roccat" - "hid_logitech_hidpp" "hid_logitech_dj" + # Implement consoleLogLevel both in early boot and using sysctl + # (so you don't need to reboot to have changes take effect). + boot.kernelParams = + [ "loglevel=${toString config.boot.consoleLogLevel}" ] ++ + optionals config.boot.vesa [ "vga=0x317" "nomodeset" ]; - ] ++ optionals (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) [ - # Misc. x86 keyboard stuff. - "pcips2" "atkbd" "i8042" + boot.kernel.sysctl."kernel.printk" = mkDefault config.boot.consoleLogLevel; - # x86 RTC needed by the stage 2 init script. - "rtc_cmos" - ]; + boot.kernelModules = [ "loop" "atkbd" ]; - boot.initrd.kernelModules = - [ # For LVM. - "dm_mod" - ]; + # The Linux kernel >= 2.6.27 provides firmware. + hardware.firmware = [ kernel ]; - # The Linux kernel >= 2.6.27 provides firmware. - hardware.firmware = [ kernel ]; - - # Create /etc/modules-load.d/nixos.conf, which is read by - # systemd-modules-load.service to load required kernel modules. - environment.etc = - { "modules-load.d/nixos.conf".source = kernelModulesConf; - }; - - systemd.services.systemd-modules-load = - { wantedBy = [ "multi-user.target" ]; - restartTriggers = [ kernelModulesConf ]; - serviceConfig = - { # Ignore failed module loads. Typically some of the - # modules in ‘boot.kernelModules’ are "nice to have but - # not required" (e.g. acpi-cpufreq), so we don't want to - # barf on those. - SuccessExitStatus = "0 1"; + # Create /etc/modules-load.d/nixos.conf, which is read by + # systemd-modules-load.service to load required kernel modules. + environment.etc = + { "modules-load.d/nixos.conf".source = kernelModulesConf; }; - }; - lib.kernelConfig = { - isYes = option: { - assertion = config: config.isYes option; - message = "CONFIG_${option} is not yes!"; - configLine = "CONFIG_${option}=y"; - }; + systemd.services.systemd-modules-load = + { wantedBy = [ "multi-user.target" ]; + restartTriggers = [ kernelModulesConf ]; + serviceConfig = + { # Ignore failed module loads. Typically some of the + # modules in ‘boot.kernelModules’ are "nice to have but + # not required" (e.g. acpi-cpufreq), so we don't want to + # barf on those. + SuccessExitStatus = "0 1"; + }; + }; - isNo = option: { - assertion = config: config.isNo option; - message = "CONFIG_${option} is not no!"; - configLine = "CONFIG_${option}=n"; - }; + lib.kernelConfig = { + isYes = option: { + assertion = config: config.isYes option; + message = "CONFIG_${option} is not yes!"; + configLine = "CONFIG_${option}=y"; + }; - isModule = option: { - assertion = config: config.isModule option; - message = "CONFIG_${option} is not built as a module!"; - configLine = "CONFIG_${option}=m"; - }; + isNo = option: { + assertion = config: config.isNo option; + message = "CONFIG_${option} is not no!"; + configLine = "CONFIG_${option}=n"; + }; - ### Usually you will just want to use these two - # True if yes or module - isEnabled = option: { - assertion = config: config.isEnabled option; - message = "CONFIG_${option} is not enabled!"; - configLine = "CONFIG_${option}=y"; - }; + isModule = option: { + assertion = config: config.isModule option; + message = "CONFIG_${option} is not built as a module!"; + configLine = "CONFIG_${option}=m"; + }; - # True if no or omitted - isDisabled = option: { - assertion = config: config.isDisabled option; - message = "CONFIG_${option} is not disabled!"; - configLine = "CONFIG_${option}=n"; - }; - }; + ### Usually you will just want to use these two + # True if yes or module + isEnabled = option: { + assertion = config: config.isEnabled option; + message = "CONFIG_${option} is not enabled!"; + configLine = "CONFIG_${option}=y"; + }; - # The config options that all modules can depend upon - system.requiredKernelConfig = with config.lib.kernelConfig; [ - # !!! Should this really be needed? - (isYes "MODULES") - (isYes "BINFMT_ELF") - ] ++ (optional (randstructSeed != "") (isYes "GCC_PLUGIN_RANDSTRUCT")); + # True if no or omitted + isDisabled = option: { + assertion = config: config.isDisabled option; + message = "CONFIG_${option} is not disabled!"; + configLine = "CONFIG_${option}=n"; + }; + }; - # nixpkgs kernels are assumed to have all required features - assertions = if config.boot.kernelPackages.kernel ? features then [] else - let cfg = config.boot.kernelPackages.kernel.config; in map (attrs: - { assertion = attrs.assertion cfg; inherit (attrs) message; } - ) config.system.requiredKernelConfig; + # The config options that all modules can depend upon + system.requiredKernelConfig = with config.lib.kernelConfig; + [ + # !!! Should this really be needed? + (isYes "MODULES") + (isYes "BINFMT_ELF") + ] ++ (optional (randstructSeed != "") (isYes "GCC_PLUGIN_RANDSTRUCT")); - }; + # nixpkgs kernels are assumed to have all required features + assertions = if config.boot.kernelPackages.kernel ? features then [] else + let cfg = config.boot.kernelPackages.kernel.config; in map (attrs: + { assertion = attrs.assertion cfg; inherit (attrs) message; } + ) config.system.requiredKernelConfig; + + }) + + ]; } diff --git a/nixos/modules/system/boot/loader/grub/grub.nix b/nixos/modules/system/boot/loader/grub/grub.nix index b97ef88a7ca..c775632a4aa 100644 --- a/nixos/modules/system/boot/loader/grub/grub.nix +++ b/nixos/modules/system/boot/loader/grub/grub.nix @@ -588,7 +588,7 @@ in { boot.loader.grub.splashImage = mkDefault ( if cfg.version == 1 then pkgs.fetchurl { - url = http://www.gnome-look.org/CONTENT/content-files/36909-soft-tux.xpm.gz; + url = "http://www.gnome-look.org/CONTENT/content-files/36909-soft-tux.xpm.gz"; sha256 = "14kqdx2lfqvh40h6fjjzqgff1mwk74dmbjvmqphi6azzra7z8d59"; } # GRUB 1.97 doesn't support gzipped XPMs. diff --git a/nixos/modules/system/boot/loader/grub/install-grub.pl b/nixos/modules/system/boot/loader/grub/install-grub.pl index ca0fb0248e0..8df18cbd901 100644 --- a/nixos/modules/system/boot/loader/grub/install-grub.pl +++ b/nixos/modules/system/boot/loader/grub/install-grub.pl @@ -409,7 +409,7 @@ $conf .= "$extraEntries\n" unless $extraEntriesBeforeNixOS; # Find all the children of the current default configuration # Do not search for grand children -my @links = sort (glob "$defaultConfig/fine-tune/*"); +my @links = sort (glob "$defaultConfig/specialisation/*"); foreach my $link (@links) { my $entryName = ""; @@ -425,7 +425,8 @@ foreach my $link (@links) { if ($cfgName) { $entryName = $cfgName; } else { - $entryName = "($date - $version)"; + my $linkname = basename($link); + $entryName = "($linkname - $date - $version)"; } addEntry("NixOS - $entryName", $link); } diff --git a/nixos/modules/system/boot/loader/init-script/init-script-builder.sh b/nixos/modules/system/boot/loader/init-script/init-script-builder.sh index 08d4ab14c9c..6f48d2539ac 100644 --- a/nixos/modules/system/boot/loader/init-script/init-script-builder.sh +++ b/nixos/modules/system/boot/loader/init-script/init-script-builder.sh @@ -69,7 +69,7 @@ addEntry "NixOS - Default" $defaultConfig "" # Add all generations of the system profile to the menu, in reverse # (most recent to least recent) order. -for link in $((ls -d $defaultConfig/fine-tune/* ) | sort -n); do +for link in $((ls -d $defaultConfig/specialisation/* ) | sort -n); do date=$(stat --printf="%y\n" $link | sed 's/\..*//') addEntry "NixOS - variation" $link "" done diff --git a/nixos/modules/system/boot/networkd.nix b/nixos/modules/system/boot/networkd.nix index 6dfbe66fc64..9b34b12e73a 100644 --- a/nixos/modules/system/boot/networkd.nix +++ b/nixos/modules/system/boot/networkd.nix @@ -205,7 +205,7 @@ let "IPv6HopLimit" "IPv4ProxyARP" "IPv6ProxyNDP" "IPv6ProxyNDPAddress" "IPv6PrefixDelegation" "IPv6MTUBytes" "Bridge" "Bond" "VRF" "VLAN" "IPVLAN" "MACVLAN" "VXLAN" "Tunnel" "ActiveSlave" "PrimarySlave" - "ConfigureWithoutCarrier" "Xfrm" + "ConfigureWithoutCarrier" "Xfrm" "KeepConfiguration" ]) # Note: For DHCP the values both, none, v4, v6 are deprecated (assertValueOneOf "DHCP" ["yes" "no" "ipv4" "ipv6" "both" "none" "v4" "v6"]) @@ -228,6 +228,7 @@ let (assertValueOneOf "ActiveSlave" boolValues) (assertValueOneOf "PrimarySlave" boolValues) (assertValueOneOf "ConfigureWithoutCarrier" boolValues) + (assertValueOneOf "KeepConfiguration" (boolValues ++ ["static" "dhcp-on-stop" "dhcp"])) ]; checkAddress = checkUnitConfig "Address" [ @@ -274,15 +275,16 @@ let ]) ]; - checkDhcp = checkUnitConfig "DHCP" [ + checkDhcpV4 = checkUnitConfig "DHCPv4" [ (assertOnlyFields [ - "UseDNS" "UseNTP" "UseMTU" "Anonymize" "SendHostname" "UseHostname" - "Hostname" "UseDomains" "UseRoutes" "UseTimezone" "CriticalConnection" - "ClientIdentifier" "VendorClassIdentifier" "UserClass" "DUIDType" - "DUIDRawData" "IAID" "RequestBroadcast" "RouteMetric" "RouteTable" - "ListenPort" "RapidCommit" + "UseDNS" "RoutesToDNS" "UseNTP" "UseMTU" "Anonymize" "SendHostname" "UseHostname" + "Hostname" "UseDomains" "UseRoutes" "UseTimezone" + "ClientIdentifier" "VendorClassIdentifier" "UserClass" "MaxAttempts" + "DUIDType" "DUIDRawData" "IAID" "RequestBroadcast" "RouteMetric" "RouteTable" + "ListenPort" "SendRelease" ]) (assertValueOneOf "UseDNS" boolValues) + (assertValueOneOf "RoutesToDNS" boolValues) (assertValueOneOf "UseNTP" boolValues) (assertValueOneOf "UseMTU" boolValues) (assertValueOneOf "Anonymize" boolValues) @@ -291,13 +293,50 @@ let (assertValueOneOf "UseDomains" ["yes" "no" "route"]) (assertValueOneOf "UseRoutes" boolValues) (assertValueOneOf "UseTimezone" boolValues) - (assertValueOneOf "CriticalConnection" boolValues) + (assertMinimum "MaxAttempts" 0) (assertValueOneOf "RequestBroadcast" boolValues) (assertInt "RouteTable") (assertMinimum "RouteTable" 0) - (assertValueOneOf "RapidCommit" boolValues) + (assertValueOneOf "SendRelease" boolValues) ]; + checkDhcpV6 = checkUnitConfig "DHCPv6" [ + (assertOnlyFields [ + "UseDns" "UseNTP" "RapidCommit" "ForceDHCPv6PDOtherInformation" + "PrefixDelegationHint" + ]) + (assertValueOneOf "UseDNS" boolValues) + (assertValueOneOf "UseNTP" boolValues) + (assertValueOneOf "RapidCommit" boolValues) + (assertValueOneOf "ForceDHCPv6PDOtherInformation" boolValues) + ]; + + checkIpv6PrefixDelegation = checkUnitConfig "IPv6PrefixDelegation" [ + (assertOnlyFields [ + "Managed" "OtherInformation" "RouterLifetimeSec" + "RouterPreference" "EmitDNS" "DNS" "EmitDomains" "Domains" + "DNSLifetimeSec" + ]) + (assertValueOneOf "Managed" boolValues) + (assertValueOneOf "OtherInformation" boolValues) + (assertValueOneOf "RouterPreference" ["high" "medium" "low" "normal" "default"]) + (assertValueOneOf "EmitDNS" boolValues) + (assertValueOneOf "EmitDomains" boolValues) + (assertMinimum "DNSLifetimeSec" 0) + ]; + + checkIpv6Prefix = checkUnitConfig "IPv6Prefix" [ + (assertOnlyFields [ + "AddressAutoconfiguration" "OnLink" "Prefix" + "PreferredLifetimeSec" "ValidLifetimeSec" + ]) + (assertValueOneOf "AddressAutoconfiguration" boolValues) + (assertValueOneOf "OnLink" boolValues) + (assertMinimum "PreferredLifetimeSec" 0) + (assertMinimum "ValidLifetimeSec" 0) + ]; + + checkDhcpServer = checkUnitConfig "DHCPServer" [ (assertOnlyFields [ "PoolOffset" "PoolSize" "DefaultLeaseTimeSec" "MaxLeaseTimeSec" @@ -355,6 +394,14 @@ let }; linkOptions = commonNetworkOptions // { + # overwrite enable option from above + enable = mkOption { + default = true; + type = types.bool; + description = '' + Whether to enable this .link unit. It's handled by udev no matter if systemd-networkd is enabled or not + ''; + }; linkConfig = mkOption { default = {}; @@ -613,6 +660,22 @@ let }; }; + ipv6PrefixOptions = { + options = { + ipv6PrefixConfig = mkOption { + default = {}; + example = { Prefix = "fd00::/64"; }; + type = types.addCheck (types.attrsOf unitOption) checkIpv6Prefix; + description = '' + Each attribute in this set specifies an option in the + [IPv6Prefix] section of the unit. See + systemd.network + 5 for details. + ''; + }; + }; + }; + networkOptions = commonNetworkOptions // { @@ -628,13 +691,55 @@ let ''; }; + # systemd.network.networks.*.dhcpConfig has been deprecated in favor of ….dhcpV4Config + # Produce a nice warning message so users know it is gone. dhcpConfig = mkOption { + visible = false; + apply = _: throw "The option `systemd.network.networks.*.dhcpConfig` can no longer be used since it's been removed. Please use `systemd.network.networks.*.dhcpV4Config` instead."; + }; + + dhcpV4Config = mkOption { default = {}; example = { UseDNS = true; UseRoutes = true; }; - type = types.addCheck (types.attrsOf unitOption) checkDhcp; + type = types.addCheck (types.attrsOf unitOption) checkDhcpV4; description = '' Each attribute in this set specifies an option in the - [DHCP] section of the unit. See + [DHCPv4] section of the unit. See + systemd.network + 5 for details. + ''; + }; + + dhcpV6Config = mkOption { + default = {}; + example = { UseDNS = true; UseRoutes = true; }; + type = types.addCheck (types.attrsOf unitOption) checkDhcpV6; + description = '' + Each attribute in this set specifies an option in the + [DHCPv6] section of the unit. See + systemd.network + 5 for details. + ''; + }; + + ipv6PrefixDelegationConfig = mkOption { + default = {}; + example = { EmitDNS = true; Managed = true; OtherInformation = true; }; + type = types.addCheck (types.attrsOf unitOption) checkIpv6PrefixDelegation; + description = '' + Each attribute in this set specifies an option in the + [IPv6PrefixDelegation] section of the unit. See + systemd.network + 5 for details. + ''; + }; + + ipv6Prefixes = mkOption { + default = []; + example = { AddressAutoconfiguration = true; OnLink = true; }; + type = with types; listOf (submodule ipv6PrefixOptions); + description = '' + A list of ipv6Prefix sections to be added to the unit. See systemd.network 5 for details. ''; @@ -965,11 +1070,26 @@ let ${concatStringsSep "\n" (map (s: "Tunnel=${s}") def.tunnel)} ${concatStringsSep "\n" (map (s: "Xfrm=${s}") def.xfrm)} - ${optionalString (def.dhcpConfig != { }) '' - [DHCP] - ${attrsToSection def.dhcpConfig} + ${optionalString (def.dhcpV4Config != { }) '' + [DHCPv4] + ${attrsToSection def.dhcpV4Config} ''} + ${optionalString (def.dhcpV6Config != {}) '' + [DHCPv6] + ${attrsToSection def.dhcpV6Config} + + ''} + ${optionalString (def.ipv6PrefixDelegationConfig != {}) '' + [IPv6PrefixDelegation] + ${attrsToSection def.ipv6PrefixDelegationConfig} + + ''} + ${flip concatMapStrings def.ipv6Prefixes (x: '' + [IPv6Prefix] + ${attrsToSection x.ipv6PrefixConfig} + + '')} ${optionalString (def.dhcpServerConfig != { }) '' [DHCPServer] ${attrsToSection def.dhcpServerConfig} @@ -1045,44 +1165,50 @@ in }; - config = mkIf config.systemd.network.enable { + config = mkMerge [ - users.users.systemd-network.group = "systemd-network"; + # .link units are honored by udev, no matter if systemd-networkd is enabled or not. + { + systemd.network.units = mapAttrs' (n: v: nameValuePair "${n}.link" (linkToUnit n v)) cfg.links; + environment.etc = unitFiles; + } - systemd.additionalUpstreamSystemUnits = [ - "systemd-networkd.service" "systemd-networkd-wait-online.service" - ]; + (mkIf config.systemd.network.enable { - systemd.network.units = mapAttrs' (n: v: nameValuePair "${n}.link" (linkToUnit n v)) cfg.links - // mapAttrs' (n: v: nameValuePair "${n}.netdev" (netdevToUnit n v)) cfg.netdevs - // mapAttrs' (n: v: nameValuePair "${n}.network" (networkToUnit n v)) cfg.networks; + users.users.systemd-network.group = "systemd-network"; - environment.etc = unitFiles; + systemd.additionalUpstreamSystemUnits = [ + "systemd-networkd.service" "systemd-networkd-wait-online.service" + ]; - systemd.services.systemd-networkd = { - wantedBy = [ "multi-user.target" ]; - restartTriggers = attrNames unitFiles; - # prevent race condition with interface renaming (#39069) - requires = [ "systemd-udev-settle.service" ]; - after = [ "systemd-udev-settle.service" ]; - }; + systemd.network.units = mapAttrs' (n: v: nameValuePair "${n}.netdev" (netdevToUnit n v)) cfg.netdevs + // mapAttrs' (n: v: nameValuePair "${n}.network" (networkToUnit n v)) cfg.networks; - systemd.services.systemd-networkd-wait-online = { - wantedBy = [ "network-online.target" ]; - }; - - systemd.services."systemd-network-wait-online@" = { - description = "Wait for Network Interface %I to be Configured"; - conflicts = [ "shutdown.target" ]; - requisite = [ "systemd-networkd.service" ]; - after = [ "systemd-networkd.service" ]; - serviceConfig = { - Type = "oneshot"; - RemainAfterExit = true; - ExecStart = "${config.systemd.package}/lib/systemd/systemd-networkd-wait-online -i %I"; + systemd.services.systemd-networkd = { + wantedBy = [ "multi-user.target" ]; + restartTriggers = map (x: x.source) (attrValues unitFiles); + # prevent race condition with interface renaming (#39069) + requires = [ "systemd-udev-settle.service" ]; + after = [ "systemd-udev-settle.service" ]; }; - }; - services.resolved.enable = mkDefault true; - }; + systemd.services.systemd-networkd-wait-online = { + wantedBy = [ "network-online.target" ]; + }; + + systemd.services."systemd-network-wait-online@" = { + description = "Wait for Network Interface %I to be Configured"; + conflicts = [ "shutdown.target" ]; + requisite = [ "systemd-networkd.service" ]; + after = [ "systemd-networkd.service" ]; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + ExecStart = "${config.systemd.package}/lib/systemd/systemd-networkd-wait-online -i %I"; + }; + }; + + services.resolved.enable = mkDefault true; + }) + ]; } diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix index 26117cffeda..dfd158e2d75 100644 --- a/nixos/modules/system/boot/stage-1.nix +++ b/nixos/modules/system/boot/stage-1.nix @@ -137,12 +137,17 @@ let ''} # Copy secrets if needed. + # + # TODO: move out to a separate script; see #85000. ${optionalString (!config.boot.loader.supportsInitrdSecrets) (concatStringsSep "\n" (mapAttrsToList (dest: source: let source' = if source == null then dest else source; in '' mkdir -p $(dirname "$out/secrets/${dest}") - cp -a ${source'} "$out/secrets/${dest}" + # Some programs (e.g. ssh) doesn't like secrets to be + # symlinks, so we use `cp -L` here to match the + # behaviour when secrets are natively supported. + cp -Lr ${source'} "$out/secrets/${dest}" '' ) config.boot.initrd.secrets)) } @@ -390,6 +395,17 @@ in ''; }; + boot.initrd.enable = mkOption { + type = types.bool; + default = !config.boot.isContainer; + defaultText = "!config.boot.isContainer"; + description = '' + Whether to enable the NixOS initial RAM disk (initrd). This may be + needed to perform some initialisation tasks (like mounting + network/encrypted file systems) before continuing the boot process. + ''; + }; + boot.initrd.prepend = mkOption { default = [ ]; type = types.listOf types.str; @@ -555,7 +571,7 @@ in }; - config = mkIf (!config.boot.isContainer) { + config = mkIf config.boot.initrd.enable { assertions = [ { assertion = any (fs: fs.mountPoint == "/") fileSystems; message = "The ‘fileSystems’ option does not specify your root file system."; @@ -565,6 +581,25 @@ in message = "boot.resumeDevice has to be an absolute path." + " Old \"x:y\" style is no longer supported."; } + # TODO: remove when #85000 is fixed + { assertion = !config.boot.loader.supportsInitrdSecrets -> + all (source: + builtins.isPath source || + (builtins.isString source && hasPrefix source builtins.storeDir)) + (attrValues config.boot.initrd.secrets); + message = '' + boot.loader.initrd.secrets values must be unquoted paths when + using a bootloader that doesn't natively support initrd + secrets, e.g.: + + boot.initrd.secrets = { + "/etc/secret" = /path/to/secret; + }; + + Note that this will result in all secrets being stored + world-readable in the Nix store! + ''; + } ]; system.build = diff --git a/nixos/modules/system/boot/systemd-lib.nix b/nixos/modules/system/boot/systemd-lib.nix index a3360291586..fa109394fed 100644 --- a/nixos/modules/system/boot/systemd-lib.nix +++ b/nixos/modules/system/boot/systemd-lib.nix @@ -114,7 +114,9 @@ in rec { (if isList value then value else [value])) as)); - generateUnits = type: units: upstreamUnits: upstreamWants: + generateUnits = generateUnits' true; + + generateUnits' = allowCollisions: type: units: upstreamUnits: upstreamWants: pkgs.runCommand "${type}-units" { preferLocalBuild = true; allowSubstitutes = false; @@ -182,8 +184,13 @@ in rec { if [ "$(readlink -f $i/$fn)" = /dev/null ]; then ln -sfn /dev/null $out/$fn else - mkdir -p $out/$fn.d - ln -s $i/$fn $out/$fn.d/overrides.conf + ${if allowCollisions then '' + mkdir -p $out/$fn.d + ln -s $i/$fn $out/$fn.d/overrides.conf + '' else '' + echo "Found multiple derivations configuring $fn!" + exit 1 + ''} fi else ln -fs $i/$fn $out/ diff --git a/nixos/modules/system/boot/systemd-nspawn.nix b/nixos/modules/system/boot/systemd-nspawn.nix index 1e2435e36f0..06ea5ee49f7 100644 --- a/nixos/modules/system/boot/systemd-nspawn.nix +++ b/nixos/modules/system/boot/systemd-nspawn.nix @@ -116,7 +116,7 @@ in { in mkMerge [ (mkIf (cfg != {}) { - environment.etc."systemd/nspawn".source = mkIf (cfg != {}) (generateUnits "nspawn" units [] []); + environment.etc."systemd/nspawn".source = mkIf (cfg != {}) (generateUnits' false "nspawn" units [] []); }) { systemd.targets.multi-user.wants = [ "machines.target" ]; diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix index cdc9d237939..2167df60bc9 100644 --- a/nixos/modules/system/boot/systemd.nix +++ b/nixos/modules/system/boot/systemd.nix @@ -593,17 +593,33 @@ in each other's limit. The value may be specified in the following units: s, min, h, ms, us. To turn off any kind of rate limiting, set either value to 0. + + See for important + considerations when setting this value. ''; }; services.journald.rateLimitBurst = mkOption { - default = 1000; + default = 10000; type = types.int; description = '' Configures the rate limiting burst limit (number of messages per interval) that is applied to all messages generated on the system. This rate limiting is applied per-service, so that two services which log do not interfere with each other's limit. + + Note that the effective rate limit is multiplied by a factor derived + from the available free disk space for the journal as described on + + journald.conf(5). + + Note that the total amount of logs stored is limited by journald settings + such as SystemMaxUse, which defaults to a 4 GB cap. + + It is thus recommended to compute what period of time that you will be + able to store logs for when an application logs at full burst rate. + With default settings for log lines that are 100 Bytes long, this can + amount to just a few hours. ''; }; @@ -842,7 +858,6 @@ in [Manager] ${optionalString config.systemd.enableCgroupAccounting '' DefaultCPUAccounting=yes - DefaultBlockIOAccounting=yes DefaultIOAccounting=yes DefaultBlockIOAccounting=yes DefaultIPAccounting=yes @@ -895,6 +910,13 @@ in "sysctl.d/50-coredump.conf".source = "${systemd}/example/sysctl.d/50-coredump.conf"; "sysctl.d/50-default.conf".source = "${systemd}/example/sysctl.d/50-default.conf"; + "tmpfiles.d/00-nixos.conf".text = '' + # This file is created automatically and should not be modified. + # Please change the option ‘systemd.tmpfiles.rules’ instead. + + ${concatStringsSep "\n" cfg.tmpfiles.rules} + ''; + "tmpfiles.d/home.conf".source = "${systemd}/example/tmpfiles.d/home.conf"; "tmpfiles.d/journal-nocow.conf".source = "${systemd}/example/tmpfiles.d/journal-nocow.conf"; "tmpfiles.d/portables.conf".source = "${systemd}/example/tmpfiles.d/portables.conf"; @@ -907,13 +929,6 @@ in "tmpfiles.d/var.conf".source = "${systemd}/example/tmpfiles.d/var.conf"; "tmpfiles.d/x11.conf".source = "${systemd}/example/tmpfiles.d/x11.conf"; - "tmpfiles.d/nixos.conf".text = '' - # This file is created automatically and should not be modified. - # Please change the option ‘systemd.tmpfiles.rules’ instead. - - ${concatStringsSep "\n" cfg.tmpfiles.rules} - ''; - "systemd/system-generators" = { source = hooks "generators" cfg.generators; }; "systemd/system-shutdown" = { source = hooks "shutdown" cfg.shutdown; }; }); diff --git a/nixos/modules/tasks/auto-upgrade.nix b/nixos/modules/tasks/auto-upgrade.nix index bfc1e301efa..e70004e643e 100644 --- a/nixos/modules/tasks/auto-upgrade.nix +++ b/nixos/modules/tasks/auto-upgrade.nix @@ -24,7 +24,7 @@ let cfg = config.system.autoUpgrade; in channel = mkOption { type = types.nullOr types.str; default = null; - example = https://nixos.org/channels/nixos-14.12-small; + example = "https://nixos.org/channels/nixos-14.12-small"; description = '' The URI of the NixOS channel to use for automatic upgrades. By default, this is the channel set using diff --git a/nixos/modules/tasks/filesystems/zfs.nix b/nixos/modules/tasks/filesystems/zfs.nix index 09c7e074e12..43347161a84 100644 --- a/nixos/modules/tasks/filesystems/zfs.nix +++ b/nixos/modules/tasks/filesystems/zfs.nix @@ -433,6 +433,7 @@ in services.zfs.zed.settings = { ZED_EMAIL_PROG = mkDefault "${pkgs.mailutils}/bin/mail"; + PATH = lib.makeBinPath [ packages.zfsUser pkgs.utillinux pkgs.gawk pkgs.gnused pkgs.gnugrep pkgs.coreutils pkgs.curl ]; }; environment.etc = genAttrs @@ -478,6 +479,7 @@ in createImportService = pool: nameValuePair "zfs-import-${pool}" { description = "Import ZFS pool \"${pool}\""; + # we need systemd-udev-settle until https://github.com/zfsonlinux/zfs/pull/4943 is merged requires = [ "systemd-udev-settle.service" ]; after = [ "systemd-udev-settle.service" "systemd-modules-load.service" ]; wantedBy = (getPoolMounts pool) ++ [ "local-fs.target" ]; diff --git a/nixos/modules/tasks/network-interfaces-scripted.nix b/nixos/modules/tasks/network-interfaces-scripted.nix index 4d25137c5df..9720d90217c 100644 --- a/nixos/modules/tasks/network-interfaces-scripted.nix +++ b/nixos/modules/tasks/network-interfaces-scripted.nix @@ -237,6 +237,38 @@ let ''; }; + createNetworkLink = i: + let + deviceDependency = if (config.boot.isContainer || i.name == "lo") + then [] + else [ (subsystemDevice i.name) ]; + in + nameValuePair "network-link-${i.name}" + { description = "Link configuration of ${i.name}"; + wantedBy = [ "network-interfaces.target" ]; + before = [ "network-interfaces.target" ]; + bindsTo = deviceDependency; + after = [ "network-pre.target" ] ++ deviceDependency; + path = [ pkgs.iproute ]; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + }; + script = + '' + echo "Configuring link..." + '' + optionalString (i.macAddress != null) '' + echo "setting MAC address to ${i.macAddress}..." + ip link set "${i.name}" address "${i.macAddress}" + '' + optionalString (i.mtu != null) '' + echo "setting MTU to ${toString i.mtu}..." + ip link set "${i.name}" mtu "${toString i.mtu}" + '' + '' + echo -n "bringing up interface... " + ip link set "${i.name}" up && echo "done" || (echo "failed"; exit 1) + ''; + }; + createTunDevice = i: nameValuePair "${i.name}-netdev" { description = "Virtual Network Interface ${i.name}"; bindsTo = [ "dev-net-tun.device" ]; @@ -291,13 +323,19 @@ let ${optionalString config.virtualisation.libvirtd.enable '' # Enslave dynamically added interfaces which may be lost on nixos-rebuild - for uri in qemu:///system lxc:///; do - for dom in $(${pkgs.libvirt}/bin/virsh -c $uri list --name); do - ${pkgs.libvirt}/bin/virsh -c $uri dumpxml "$dom" | \ - ${pkgs.xmlstarlet}/bin/xmlstarlet sel -t -m "//domain/devices/interface[@type='bridge'][source/@bridge='${n}'][target/@dev]" -v "concat('ip link set ',target/@dev,' master ',source/@bridge,';')" | \ - ${pkgs.bash}/bin/bash + # + # if `libvirtd.service` is not running, do not use `virsh` which would try activate it via 'libvirtd.socket' and thus start it out-of-order. + # `libvirtd.service` will set up bridge interfaces when it will start normally. + # + if ${pkgs.systemd}/bin/systemctl --quiet is-active 'libvirtd.service'; then + for uri in qemu:///system lxc:///; do + for dom in $(${pkgs.libvirt}/bin/virsh -c $uri list --name); do + ${pkgs.libvirt}/bin/virsh -c $uri dumpxml "$dom" | \ + ${pkgs.xmlstarlet}/bin/xmlstarlet sel -t -m "//domain/devices/interface[@type='bridge'][source/@bridge='${n}'][target/@dev]" -v "concat('ip link set ',target/@dev,' master ',source/@bridge,';')" | \ + ${pkgs.bash}/bin/bash + done done - done + fi ''} # Enable stp on the interface @@ -502,6 +540,7 @@ let }); in listToAttrs ( + map createNetworkLink interfaces ++ map configureAddrs interfaces ++ map createTunDevice (filter (i: i.virtual) interfaces)) // mapAttrs' createBridgeDevice cfg.bridges diff --git a/nixos/modules/tasks/network-interfaces-systemd.nix b/nixos/modules/tasks/network-interfaces-systemd.nix index 41deceb000e..23e1e611a71 100644 --- a/nixos/modules/tasks/network-interfaces-systemd.nix +++ b/nixos/modules/tasks/network-interfaces-systemd.nix @@ -94,7 +94,12 @@ in address = forEach (interfaceIps i) (ip: "${ip.address}/${toString ip.prefixLength}"); networkConfig.IPv6PrivacyExtensions = "kernel"; - } ]; + linkConfig = optionalAttrs (i.macAddress != null) { + MACAddress = i.macAddress; + } // optionalAttrs (i.mtu != null) { + MTUBytes = toString i.mtu; + }; + }]; }))) (mkMerge (flip mapAttrsToList cfg.bridges (name: bridge: { netdevs."40-${name}" = { diff --git a/nixos/modules/tasks/network-interfaces.nix b/nixos/modules/tasks/network-interfaces.nix index 9542a60beee..44677d417ea 100644 --- a/nixos/modules/tasks/network-interfaces.nix +++ b/nixos/modules/tasks/network-interfaces.nix @@ -634,19 +634,23 @@ in networking.bonds = let - driverOptionsExample = { - miimon = "100"; - mode = "active-backup"; - }; + driverOptionsExample = '' + { + miimon = "100"; + mode = "active-backup"; + } + ''; in mkOption { default = { }; - example = literalExample { - bond0 = { - interfaces = [ "eth0" "wlan0" ]; - driverOptions = driverOptionsExample; - }; - anotherBond.interfaces = [ "enp4s0f0" "enp4s0f1" "enp5s0f0" "enp5s0f1" ]; - }; + example = literalExample '' + { + bond0 = { + interfaces = [ "eth0" "wlan0" ]; + driverOptions = ${driverOptionsExample}; + }; + anotherBond.interfaces = [ "enp4s0f0" "enp4s0f1" "enp5s0f0" "enp5s0f1" ]; + } + ''; description = '' This option allows you to define bond devices that aggregate multiple, underlying networking interfaces together. The value of this option is @@ -731,12 +735,14 @@ in networking.macvlans = mkOption { default = { }; - example = literalExample { - wan = { - interface = "enp2s0"; - mode = "vepa"; - }; - }; + example = literalExample '' + { + wan = { + interface = "enp2s0"; + mode = "vepa"; + }; + } + ''; description = '' This option allows you to define macvlan interfaces which should be automatically created. @@ -764,18 +770,20 @@ in networking.sits = mkOption { default = { }; - example = literalExample { - hurricane = { - remote = "10.0.0.1"; - local = "10.0.0.22"; - ttl = 255; - }; - msipv6 = { - remote = "192.168.0.1"; - dev = "enp3s0"; - ttl = 127; - }; - }; + example = literalExample '' + { + hurricane = { + remote = "10.0.0.1"; + local = "10.0.0.22"; + ttl = 255; + }; + msipv6 = { + remote = "192.168.0.1"; + dev = "enp3s0"; + ttl = 127; + }; + } + ''; description = '' This option allows you to define 6-to-4 interfaces which should be automatically created. ''; @@ -826,16 +834,18 @@ in networking.vlans = mkOption { default = { }; - example = literalExample { - vlan0 = { - id = 3; - interface = "enp3s0"; - }; - vlan1 = { - id = 1; - interface = "wlan0"; - }; - }; + example = literalExample '' + { + vlan0 = { + id = 3; + interface = "enp3s0"; + }; + vlan1 = { + id = 1; + interface = "wlan0"; + }; + } + ''; description = '' This option allows you to define vlan devices that tag packets @@ -868,24 +878,26 @@ in networking.wlanInterfaces = mkOption { default = { }; - example = literalExample { - wlan-station0 = { - device = "wlp6s0"; - }; - wlan-adhoc0 = { - type = "ibss"; - device = "wlp6s0"; - mac = "02:00:00:00:00:01"; - }; - wlan-p2p0 = { - device = "wlp6s0"; - mac = "02:00:00:00:00:02"; - }; - wlan-ap0 = { - device = "wlp6s0"; - mac = "02:00:00:00:00:03"; - }; - }; + example = literalExample '' + { + wlan-station0 = { + device = "wlp6s0"; + }; + wlan-adhoc0 = { + type = "ibss"; + device = "wlp6s0"; + mac = "02:00:00:00:00:01"; + }; + wlan-p2p0 = { + device = "wlp6s0"; + mac = "02:00:00:00:00:02"; + }; + wlan-ap0 = { + device = "wlp6s0"; + mac = "02:00:00:00:00:03"; + }; + } + ''; description = '' Creating multiple WLAN interfaces on top of one physical WLAN device (NIC). @@ -1019,6 +1031,11 @@ in message = '' Temporary addresses are only needed when IPv6 is enabled. ''; + })) ++ (forEach interfaces (i: { + assertion = (i.virtual && i.virtualType == "tun") -> i.macAddress == null; + message = '' + Setting a MAC Address for tun device ${i.name} isn't supported. + ''; })) ++ [ { assertion = cfg.hostId == null || (stringLength cfg.hostId == 8 && isHexString cfg.hostId); @@ -1128,38 +1145,7 @@ in ${cfg.localCommands} ''; }; - } // (listToAttrs (forEach interfaces (i: - let - deviceDependency = if (config.boot.isContainer || i.name == "lo") - then [] - else [ (subsystemDevice i.name) ]; - in - nameValuePair "network-link-${i.name}" - { description = "Link configuration of ${i.name}"; - wantedBy = [ "network-interfaces.target" ]; - before = [ "network-interfaces.target" ]; - bindsTo = deviceDependency; - after = [ "network-pre.target" ] ++ deviceDependency; - path = [ pkgs.iproute ]; - serviceConfig = { - Type = "oneshot"; - RemainAfterExit = true; - }; - script = - '' - echo "Configuring link..." - '' + optionalString (i.macAddress != null) '' - echo "setting MAC address to ${i.macAddress}..." - ip link set "${i.name}" address "${i.macAddress}" - '' + optionalString (i.mtu != null) '' - echo "setting MTU to ${toString i.mtu}..." - ip link set "${i.name}" mtu "${toString i.mtu}" - '' + '' - echo -n "bringing up interface... " - ip link set "${i.name}" up && echo "done" || (echo "failed"; exit 1) - ''; - }))); - + }; services.mstpd = mkIf needsMstpd { enable = true; }; virtualisation.vswitch = mkIf (cfg.vswitches != { }) { enable = true; }; diff --git a/nixos/modules/virtualisation/azure-common.nix b/nixos/modules/virtualisation/azure-common.nix index 03239991b95..8efa177e30d 100644 --- a/nixos/modules/virtualisation/azure-common.nix +++ b/nixos/modules/virtualisation/azure-common.nix @@ -15,6 +15,8 @@ with lib; boot.loader.grub.version = 2; boot.loader.timeout = 0; + boot.growPartition = true; + # Don't put old configurations in the GRUB menu. The user has no # way to select them anyway. boot.loader.grub.configurationLimit = 0; diff --git a/nixos/modules/virtualisation/azure-image.nix b/nixos/modules/virtualisation/azure-image.nix index e91dd72ff5d..21fd58e5c90 100644 --- a/nixos/modules/virtualisation/azure-image.nix +++ b/nixos/modules/virtualisation/azure-image.nix @@ -2,27 +2,38 @@ with lib; let - diskSize = 2048; + cfg = config.virtualisation.azureImage; in { - system.build.azureImage = import ../../lib/make-disk-image.nix { - name = "azure-image"; - postVM = '' - ${pkgs.vmTools.qemu}/bin/qemu-img convert -f raw -o subformat=fixed,force_size -O vpc $diskImage $out/disk.vhd - ''; - configFile = ./azure-config-user.nix; - format = "raw"; - inherit diskSize; - inherit config lib pkgs; - }; - imports = [ ./azure-common.nix ]; + + options = { + virtualisation.azureImage.diskSize = mkOption { + type = with types; int; + default = 2048; + description = '' + Size of disk image. Unit is MB. + ''; + }; + }; + config = { + system.build.azureImage = import ../../lib/make-disk-image.nix { + name = "azure-image"; + postVM = '' + ${pkgs.vmTools.qemu}/bin/qemu-img convert -f raw -o subformat=fixed,force_size -O vpc $diskImage $out/disk.vhd + rm $diskImage + ''; + configFile = ./azure-config-user.nix; + format = "raw"; + inherit (cfg) diskSize; + inherit config lib pkgs; + }; - # Azure metadata is available as a CD-ROM drive. - fileSystems."/metadata".device = "/dev/sr0"; + # Azure metadata is available as a CD-ROM drive. + fileSystems."/metadata".device = "/dev/sr0"; - systemd.services.fetch-ssh-keys = - { description = "Fetch host keys and authorized_keys for root user"; + systemd.services.fetch-ssh-keys = { + description = "Fetch host keys and authorized_keys for root user"; wantedBy = [ "sshd.service" "waagent.service" ]; before = [ "sshd.service" "waagent.service" ]; @@ -54,6 +65,6 @@ in serviceConfig.RemainAfterExit = true; serviceConfig.StandardError = "journal+console"; serviceConfig.StandardOutput = "journal+console"; - }; - + }; + }; } diff --git a/nixos/modules/virtualisation/containers.nix b/nixos/modules/virtualisation/containers.nix index 02de5801da2..7d184575640 100644 --- a/nixos/modules/virtualisation/containers.nix +++ b/nixos/modules/virtualisation/containers.nix @@ -1,822 +1,125 @@ { config, lib, pkgs, ... }: - -with lib; - let + cfg = config.virtualisation.containers; - # The container's init script, a small wrapper around the regular - # NixOS stage-2 init script. - containerInit = (cfg: - let - renderExtraVeth = (name: cfg: - '' - echo "Bringing ${name} up" - ip link set dev ${name} up - ${optionalString (cfg.localAddress != null) '' - echo "Setting ip for ${name}" - ip addr add ${cfg.localAddress} dev ${name} - ''} - ${optionalString (cfg.localAddress6 != null) '' - echo "Setting ip6 for ${name}" - ip -6 addr add ${cfg.localAddress6} dev ${name} - ''} - ${optionalString (cfg.hostAddress != null) '' - echo "Setting route to host for ${name}" - ip route add ${cfg.hostAddress} dev ${name} - ''} - ${optionalString (cfg.hostAddress6 != null) '' - echo "Setting route6 to host for ${name}" - ip -6 route add ${cfg.hostAddress6} dev ${name} - ''} - '' - ); - in - pkgs.writeScript "container-init" - '' - #! ${pkgs.runtimeShell} -e + inherit (lib) mkOption types; - # Initialise the container side of the veth pair. - if [ -n "$HOST_ADDRESS" ] || [ -n "$HOST_ADDRESS6" ] || - [ -n "$LOCAL_ADDRESS" ] || [ -n "$LOCAL_ADDRESS6" ] || - [ -n "$HOST_BRIDGE" ]; then - ip link set host0 name eth0 - ip link set dev eth0 up + # Once https://github.com/NixOS/nixpkgs/pull/75584 is merged we can use the TOML generator + toTOML = name: value: pkgs.runCommandNoCC name { + nativeBuildInputs = [ pkgs.remarshal ]; + value = builtins.toJSON value; + passAsFile = [ "value" ]; + } '' + json2toml "$valuePath" "$out" + ''; - if [ -n "$LOCAL_ADDRESS" ]; then - ip addr add $LOCAL_ADDRESS dev eth0 - fi - if [ -n "$LOCAL_ADDRESS6" ]; then - ip -6 addr add $LOCAL_ADDRESS6 dev eth0 - fi - if [ -n "$HOST_ADDRESS" ]; then - ip route add $HOST_ADDRESS dev eth0 - ip route add default via $HOST_ADDRESS - fi - if [ -n "$HOST_ADDRESS6" ]; then - ip -6 route add $HOST_ADDRESS6 dev eth0 - ip -6 route add default via $HOST_ADDRESS6 - fi + # Copy configuration files to avoid having the entire sources in the system closure + copyFile = filePath: pkgs.runCommandNoCC (builtins.unsafeDiscardStringContext (builtins.baseNameOf filePath)) {} '' + cp ${filePath} $out + ''; +in +{ + meta = { + maintainers = [] ++ lib.teams.podman.members; + }; - ${concatStringsSep "\n" (mapAttrsToList renderExtraVeth cfg.extraVeths)} - fi + options.virtualisation.containers = { - # Start the regular stage 1 script. - exec "$1" - '' + enable = + mkOption { + type = types.bool; + default = false; + description = '' + This option enables the common /etc/containers configuration module. + ''; + }; + + registries = { + search = mkOption { + type = types.listOf types.str; + default = [ "docker.io" "quay.io" ]; + description = '' + List of repositories to search. + ''; + }; + + insecure = mkOption { + default = []; + type = types.listOf types.str; + description = '' + List of insecure repositories. + ''; + }; + + block = mkOption { + default = []; + type = types.listOf types.str; + description = '' + List of blocked repositories. + ''; + }; + }; + + policy = mkOption { + default = {}; + type = types.attrs; + example = lib.literalExample '' + { + default = [ { type = "insecureAcceptAnything"; } ]; + transports = { + docker-daemon = { + "" = [ { type = "insecureAcceptAnything"; } ]; + }; + }; + } + ''; + description = '' + Signature verification policy file. + If this option is empty the default policy file from + skopeo will be used. + ''; + }; + + users = mkOption { + default = []; + type = types.listOf types.str; + description = '' + List of users to set up subuid/subgid mappings for. + This is a requirement for running rootless containers. + ''; + }; + + }; + + config = lib.mkIf cfg.enable { + + environment.etc."containers/registries.conf".source = toTOML "registries.conf" { + registries = lib.mapAttrs (n: v: { registries = v; }) cfg.registries; + }; + + users.extraUsers = builtins.listToAttrs ( + ( + builtins.foldl' ( + acc: user: { + values = acc.values ++ [ + { + name = user; + value = { + subUidRanges = [ { startUid = acc.offset; count = 65536; } ]; + subGidRanges = [ { startGid = acc.offset; count = 65536; } ]; + }; + } + ]; + offset = acc.offset + 65536; + } + ) + { values = []; offset = 100000; } (lib.unique cfg.users) + ).values ); - nspawnExtraVethArgs = (name: cfg: "--network-veth-extra=${name}"); - - startScript = cfg: - '' - mkdir -p -m 0755 "$root/etc" "$root/var/lib" - mkdir -p -m 0700 "$root/var/lib/private" "$root/root" /run/containers - if ! [ -e "$root/etc/os-release" ]; then - touch "$root/etc/os-release" - fi - - if ! [ -e "$root/etc/machine-id" ]; then - touch "$root/etc/machine-id" - fi - - mkdir -p -m 0755 \ - "/nix/var/nix/profiles/per-container/$INSTANCE" \ - "/nix/var/nix/gcroots/per-container/$INSTANCE" - - cp --remove-destination /etc/resolv.conf "$root/etc/resolv.conf" - - if [ "$PRIVATE_NETWORK" = 1 ]; then - extraFlags+=" --private-network" - fi - - if [ -n "$HOST_ADDRESS" ] || [ -n "$LOCAL_ADDRESS" ] || - [ -n "$HOST_ADDRESS6" ] || [ -n "$LOCAL_ADDRESS6" ]; then - extraFlags+=" --network-veth" - fi - - if [ -n "$HOST_PORT" ]; then - OIFS=$IFS - IFS="," - for i in $HOST_PORT - do - extraFlags+=" --port=$i" - done - IFS=$OIFS - fi - - if [ -n "$HOST_BRIDGE" ]; then - extraFlags+=" --network-bridge=$HOST_BRIDGE" - fi - - extraFlags+=" ${concatStringsSep " " (mapAttrsToList nspawnExtraVethArgs cfg.extraVeths)}" - - for iface in $INTERFACES; do - extraFlags+=" --network-interface=$iface" - done - - for iface in $MACVLANS; do - extraFlags+=" --network-macvlan=$iface" - done - - # If the host is 64-bit and the container is 32-bit, add a - # --personality flag. - ${optionalString (config.nixpkgs.localSystem.system == "x86_64-linux") '' - if [ "$(< ''${SYSTEM_PATH:-/nix/var/nix/profiles/per-container/$INSTANCE/system}/system)" = i686-linux ]; then - extraFlags+=" --personality=x86" - fi - ''} - - # Run systemd-nspawn without startup notification (we'll - # wait for the container systemd to signal readiness). - exec ${config.systemd.package}/bin/systemd-nspawn \ - --keep-unit \ - -M "$INSTANCE" -D "$root" $extraFlags \ - $EXTRA_NSPAWN_FLAGS \ - --notify-ready=yes \ - --bind-ro=/nix/store \ - --bind-ro=/nix/var/nix/db \ - --bind-ro=/nix/var/nix/daemon-socket \ - --bind="/nix/var/nix/profiles/per-container/$INSTANCE:/nix/var/nix/profiles" \ - --bind="/nix/var/nix/gcroots/per-container/$INSTANCE:/nix/var/nix/gcroots" \ - ${optionalString (!cfg.ephemeral) "--link-journal=try-guest"} \ - --setenv PRIVATE_NETWORK="$PRIVATE_NETWORK" \ - --setenv HOST_BRIDGE="$HOST_BRIDGE" \ - --setenv HOST_ADDRESS="$HOST_ADDRESS" \ - --setenv LOCAL_ADDRESS="$LOCAL_ADDRESS" \ - --setenv HOST_ADDRESS6="$HOST_ADDRESS6" \ - --setenv LOCAL_ADDRESS6="$LOCAL_ADDRESS6" \ - --setenv HOST_PORT="$HOST_PORT" \ - --setenv PATH="$PATH" \ - ${optionalString cfg.ephemeral "--ephemeral"} \ - ${if cfg.additionalCapabilities != null && cfg.additionalCapabilities != [] then - ''--capability="${concatStringsSep "," cfg.additionalCapabilities}"'' else "" - } \ - ${if cfg.tmpfs != null && cfg.tmpfs != [] then - ''--tmpfs=${concatStringsSep " --tmpfs=" cfg.tmpfs}'' else "" - } \ - ${containerInit cfg} "''${SYSTEM_PATH:-/nix/var/nix/profiles/system}/init" - ''; - - preStartScript = cfg: - '' - # Clean up existing machined registration and interfaces. - machinectl terminate "$INSTANCE" 2> /dev/null || true - - if [ -n "$HOST_ADDRESS" ] || [ -n "$LOCAL_ADDRESS" ] || - [ -n "$HOST_ADDRESS6" ] || [ -n "$LOCAL_ADDRESS6" ]; then - ip link del dev "ve-$INSTANCE" 2> /dev/null || true - ip link del dev "vb-$INSTANCE" 2> /dev/null || true - fi - - ${concatStringsSep "\n" ( - mapAttrsToList (name: cfg: - ''ip link del dev ${name} 2> /dev/null || true '' - ) cfg.extraVeths - )} - ''; - - postStartScript = (cfg: - let - ipcall = cfg: ipcmd: variable: attribute: - if cfg.${attribute} == null then - '' - if [ -n "${variable}" ]; then - ${ipcmd} add ${variable} dev $ifaceHost - fi - '' - else - ''${ipcmd} add ${cfg.${attribute}} dev $ifaceHost''; - renderExtraVeth = name: cfg: - if cfg.hostBridge != null then - '' - # Add ${name} to bridge ${cfg.hostBridge} - ip link set dev ${name} master ${cfg.hostBridge} up - '' - else - '' - echo "Bring ${name} up" - ip link set dev ${name} up - # Set IPs and routes for ${name} - ${optionalString (cfg.hostAddress != null) '' - ip addr add ${cfg.hostAddress} dev ${name} - ''} - ${optionalString (cfg.hostAddress6 != null) '' - ip -6 addr add ${cfg.hostAddress6} dev ${name} - ''} - ${optionalString (cfg.localAddress != null) '' - ip route add ${cfg.localAddress} dev ${name} - ''} - ${optionalString (cfg.localAddress6 != null) '' - ip -6 route add ${cfg.localAddress6} dev ${name} - ''} - ''; - in - '' - if [ -n "$HOST_ADDRESS" ] || [ -n "$LOCAL_ADDRESS" ] || - [ -n "$HOST_ADDRESS6" ] || [ -n "$LOCAL_ADDRESS6" ]; then - if [ -z "$HOST_BRIDGE" ]; then - ifaceHost=ve-$INSTANCE - ip link set dev $ifaceHost up - - ${ipcall cfg "ip addr" "$HOST_ADDRESS" "hostAddress"} - ${ipcall cfg "ip -6 addr" "$HOST_ADDRESS6" "hostAddress6"} - ${ipcall cfg "ip route" "$LOCAL_ADDRESS" "localAddress"} - ${ipcall cfg "ip -6 route" "$LOCAL_ADDRESS6" "localAddress6"} - fi - ${concatStringsSep "\n" (mapAttrsToList renderExtraVeth cfg.extraVeths)} - fi - '' - ); - - serviceDirectives = cfg: { - ExecReload = pkgs.writeScript "reload-container" - '' - #! ${pkgs.runtimeShell} -e - ${pkgs.nixos-container}/bin/nixos-container run "$INSTANCE" -- \ - bash --login -c "''${SYSTEM_PATH:-/nix/var/nix/profiles/system}/bin/switch-to-configuration test" - ''; - - SyslogIdentifier = "container %i"; - - EnvironmentFile = "-/etc/containers/%i.conf"; - - Type = "notify"; - - RuntimeDirectory = lib.optional cfg.ephemeral "containers/%i"; - - # Note that on reboot, systemd-nspawn returns 133, so this - # unit will be restarted. On poweroff, it returns 0, so the - # unit won't be restarted. - RestartForceExitStatus = "133"; - SuccessExitStatus = "133"; - - # Some containers take long to start - # especially when you automatically start many at once - TimeoutStartSec = cfg.timeoutStartSec; - - Restart = "on-failure"; - - Slice = "machine.slice"; - Delegate = true; - - # Hack: we don't want to kill systemd-nspawn, since we call - # "machinectl poweroff" in preStop to shut down the - # container cleanly. But systemd requires sending a signal - # (at least if we want remaining processes to be killed - # after the timeout). So send an ignored signal. - KillMode = "mixed"; - KillSignal = "WINCH"; - - DevicePolicy = "closed"; - DeviceAllow = map (d: "${d.node} ${d.modifier}") cfg.allowedDevices; + environment.etc."containers/policy.json".source = + if cfg.policy != {} then pkgs.writeText "policy.json" (builtins.toJSON cfg.policy) + else copyFile "${pkgs.skopeo.src}/default-policy.json"; }; - - system = config.nixpkgs.localSystem.system; - - bindMountOpts = { name, ... }: { - - options = { - mountPoint = mkOption { - example = "/mnt/usb"; - type = types.str; - description = "Mount point on the container file system."; - }; - hostPath = mkOption { - default = null; - example = "/home/alice"; - type = types.nullOr types.str; - description = "Location of the host path to be mounted."; - }; - isReadOnly = mkOption { - default = true; - type = types.bool; - description = "Determine whether the mounted path will be accessed in read-only mode."; - }; - }; - - config = { - mountPoint = mkDefault name; - }; - - }; - - allowedDeviceOpts = { ... }: { - options = { - node = mkOption { - example = "/dev/net/tun"; - type = types.str; - description = "Path to device node"; - }; - modifier = mkOption { - example = "rw"; - type = types.str; - description = '' - Device node access modifier. Takes a combination - r (read), w (write), and - m (mknod). See the - systemd.resource-control(5) man page for more - information.''; - }; - }; - }; - - - mkBindFlag = d: - let flagPrefix = if d.isReadOnly then " --bind-ro=" else " --bind="; - mountstr = if d.hostPath != null then "${d.hostPath}:${d.mountPoint}" else "${d.mountPoint}"; - in flagPrefix + mountstr ; - - mkBindFlags = bs: concatMapStrings mkBindFlag (lib.attrValues bs); - - networkOptions = { - hostBridge = mkOption { - type = types.nullOr types.str; - default = null; - example = "br0"; - description = '' - Put the host-side of the veth-pair into the named bridge. - Only one of hostAddress* or hostBridge can be given. - ''; - }; - - forwardPorts = mkOption { - type = types.listOf (types.submodule { - options = { - protocol = mkOption { - type = types.str; - default = "tcp"; - description = "The protocol specifier for port forwarding between host and container"; - }; - hostPort = mkOption { - type = types.int; - description = "Source port of the external interface on host"; - }; - containerPort = mkOption { - type = types.nullOr types.int; - default = null; - description = "Target port of container"; - }; - }; - }); - default = []; - example = [ { protocol = "tcp"; hostPort = 8080; containerPort = 80; } ]; - description = '' - List of forwarded ports from host to container. Each forwarded port - is specified by protocol, hostPort and containerPort. By default, - protocol is tcp and hostPort and containerPort are assumed to be - the same if containerPort is not explicitly given. - ''; - }; - - - hostAddress = mkOption { - type = types.nullOr types.str; - default = null; - example = "10.231.136.1"; - description = '' - The IPv4 address assigned to the host interface. - (Not used when hostBridge is set.) - ''; - }; - - hostAddress6 = mkOption { - type = types.nullOr types.str; - default = null; - example = "fc00::1"; - description = '' - The IPv6 address assigned to the host interface. - (Not used when hostBridge is set.) - ''; - }; - - localAddress = mkOption { - type = types.nullOr types.str; - default = null; - example = "10.231.136.2"; - description = '' - The IPv4 address assigned to the interface in the container. - If a hostBridge is used, this should be given with netmask to access - the whole network. Otherwise the default netmask is /32 and routing is - set up from localAddress to hostAddress and back. - ''; - }; - - localAddress6 = mkOption { - type = types.nullOr types.str; - default = null; - example = "fc00::2"; - description = '' - The IPv6 address assigned to the interface in the container. - If a hostBridge is used, this should be given with netmask to access - the whole network. Otherwise the default netmask is /128 and routing is - set up from localAddress6 to hostAddress6 and back. - ''; - }; - - }; - - dummyConfig = - { - extraVeths = {}; - additionalCapabilities = []; - ephemeral = false; - timeoutStartSec = "15s"; - allowedDevices = []; - hostAddress = null; - hostAddress6 = null; - localAddress = null; - localAddress6 = null; - tmpfs = null; - }; - -in - -{ - options = { - - boot.isContainer = mkOption { - type = types.bool; - default = false; - description = '' - Whether this NixOS machine is a lightweight container running - in another NixOS system. - ''; - }; - - boot.enableContainers = mkOption { - type = types.bool; - default = !config.boot.isContainer; - description = '' - Whether to enable support for NixOS containers. - ''; - }; - - containers = mkOption { - type = types.attrsOf (types.submodule ( - { config, options, name, ... }: - { - options = { - - config = mkOption { - description = '' - A specification of the desired configuration of this - container, as a NixOS module. - ''; - type = lib.mkOptionType { - name = "Toplevel NixOS config"; - merge = loc: defs: (import ../../lib/eval-config.nix { - inherit system; - modules = - let - extraConfig = { - _file = "module at ${__curPos.file}:${toString __curPos.line}"; - config = { - boot.isContainer = true; - networking.hostName = mkDefault name; - networking.useDHCP = false; - assertions = [ - { - assertion = config.privateNetwork -> stringLength name < 12; - message = '' - Container name `${name}` is too long: When `privateNetwork` is enabled, container names can - not be longer than 11 characters, because the container's interface name is derived from it. - This might be fixed in the future. See https://github.com/NixOS/nixpkgs/issues/38509 - ''; - } - ]; - }; - }; - in [ extraConfig ] ++ (map (x: x.value) defs); - prefix = [ "containers" name ]; - }).config; - }; - }; - - path = mkOption { - type = types.path; - example = "/nix/var/nix/profiles/containers/webserver"; - description = '' - As an alternative to specifying - , you can specify the path to - the evaluated NixOS system configuration, typically a - symlink to a system profile. - ''; - }; - - additionalCapabilities = mkOption { - type = types.listOf types.str; - default = []; - example = [ "CAP_NET_ADMIN" "CAP_MKNOD" ]; - description = '' - Grant additional capabilities to the container. See the - capabilities(7) and systemd-nspawn(1) man pages for more - information. - ''; - }; - - ephemeral = mkOption { - type = types.bool; - default = false; - description = '' - Runs container in ephemeral mode with the empty root filesystem at boot. - This way container will be bootstrapped from scratch on each boot - and will be cleaned up on shutdown leaving no traces behind. - Useful for completely stateless, reproducible containers. - - Note that this option might require to do some adjustments to the container configuration, - e.g. you might want to set - systemd.network.networks.$interface.dhcpConfig.ClientIdentifier to "mac" - if you use macvlans option. - This way dhcp client identifier will be stable between the container restarts. - - Note that the container journal will not be linked to the host if this option is enabled. - ''; - }; - - enableTun = mkOption { - type = types.bool; - default = false; - description = '' - Allows the container to create and setup tunnel interfaces - by granting the NET_ADMIN capability and - enabling access to /dev/net/tun. - ''; - }; - - privateNetwork = mkOption { - type = types.bool; - default = false; - description = '' - Whether to give the container its own private virtual - Ethernet interface. The interface is called - eth0, and is hooked up to the interface - ve-container-name - on the host. If this option is not set, then the - container shares the network interfaces of the host, - and can bind to any port on any interface. - ''; - }; - - interfaces = mkOption { - type = types.listOf types.str; - default = []; - example = [ "eth1" "eth2" ]; - description = '' - The list of interfaces to be moved into the container. - ''; - }; - - macvlans = mkOption { - type = types.listOf types.str; - default = []; - example = [ "eth1" "eth2" ]; - description = '' - The list of host interfaces from which macvlans will be - created. For each interface specified, a macvlan interface - will be created and moved to the container. - ''; - }; - - extraVeths = mkOption { - type = with types; attrsOf (submodule { options = networkOptions; }); - default = {}; - description = '' - Extra veth-pairs to be created for the container - ''; - }; - - autoStart = mkOption { - type = types.bool; - default = false; - description = '' - Whether the container is automatically started at boot-time. - ''; - }; - - timeoutStartSec = mkOption { - type = types.str; - default = "1min"; - description = '' - Time for the container to start. In case of a timeout, - the container processes get killed. - See systemd.time - 7 - for more information about the format. - ''; - }; - - bindMounts = mkOption { - type = with types; loaOf (submodule bindMountOpts); - default = {}; - example = { "/home" = { hostPath = "/home/alice"; - isReadOnly = false; }; - }; - - description = - '' - An extra list of directories that is bound to the container. - ''; - }; - - allowedDevices = mkOption { - type = with types; listOf (submodule allowedDeviceOpts); - default = []; - example = [ { node = "/dev/net/tun"; modifier = "rw"; } ]; - description = '' - A list of device nodes to which the containers has access to. - ''; - }; - - tmpfs = mkOption { - type = types.listOf types.str; - default = []; - example = [ "/var" ]; - description = '' - Mounts a set of tmpfs file systems into the container. - Multiple paths can be specified. - Valid items must conform to the --tmpfs argument - of systemd-nspawn. See systemd-nspawn(1) for details. - ''; - }; - - extraFlags = mkOption { - type = types.listOf types.str; - default = []; - example = [ "--drop-capability=CAP_SYS_CHROOT" ]; - description = '' - Extra flags passed to the systemd-nspawn command. - See systemd-nspawn(1) for details. - ''; - }; - - } // networkOptions; - - config = mkMerge - [ - (mkIf options.config.isDefined { - path = config.config.system.build.toplevel; - }) - ]; - })); - - default = {}; - example = literalExample - '' - { webserver = - { path = "/nix/var/nix/profiles/webserver"; - }; - database = - { config = - { config, pkgs, ... }: - { services.postgresql.enable = true; - services.postgresql.package = pkgs.postgresql_9_6; - - system.stateVersion = "17.03"; - }; - }; - } - ''; - description = '' - A set of NixOS system configurations to be run as lightweight - containers. Each container appears as a service - container-name - on the host system, allowing it to be started and stopped via - systemctl. - ''; - }; - - }; - - - config = mkIf (config.boot.enableContainers) (let - - unit = { - description = "Container '%i'"; - - unitConfig.RequiresMountsFor = "/var/lib/containers/%i"; - - path = [ pkgs.iproute ]; - - environment = { - root = "/var/lib/containers/%i"; - INSTANCE = "%i"; - }; - - preStart = preStartScript dummyConfig; - - script = startScript dummyConfig; - - postStart = postStartScript dummyConfig; - - preStop = "machinectl poweroff $INSTANCE"; - - restartIfChanged = false; - - serviceConfig = serviceDirectives dummyConfig; - }; - in { - systemd.targets.multi-user.wants = [ "machines.target" ]; - - systemd.services = listToAttrs (filter (x: x.value != null) ( - # The generic container template used by imperative containers - [{ name = "container@"; value = unit; }] - # declarative containers - ++ (mapAttrsToList (name: cfg: nameValuePair "container@${name}" (let - containerConfig = cfg // ( - if cfg.enableTun then - { - allowedDevices = cfg.allowedDevices - ++ [ { node = "/dev/net/tun"; modifier = "rw"; } ]; - additionalCapabilities = cfg.additionalCapabilities - ++ [ "CAP_NET_ADMIN" ]; - } - else {}); - in - recursiveUpdate unit { - preStart = preStartScript containerConfig; - script = startScript containerConfig; - postStart = postStartScript containerConfig; - serviceConfig = serviceDirectives containerConfig; - unitConfig.RequiresMountsFor = lib.optional (!containerConfig.ephemeral) "/var/lib/containers/%i"; - environment.root = if containerConfig.ephemeral then "/run/containers/%i" else "/var/lib/containers/%i"; - } // ( - if containerConfig.autoStart then - { - wantedBy = [ "machines.target" ]; - wants = [ "network.target" ]; - after = [ "network.target" ]; - restartTriggers = [ - containerConfig.path - config.environment.etc."containers/${name}.conf".source - ]; - restartIfChanged = true; - } - else {}) - )) config.containers) - )); - - # Generate a configuration file in /etc/containers for each - # container so that container@.target can get the container - # configuration. - environment.etc = - let mkPortStr = p: p.protocol + ":" + (toString p.hostPort) + ":" + (if p.containerPort == null then toString p.hostPort else toString p.containerPort); - in mapAttrs' (name: cfg: nameValuePair "containers/${name}.conf" - { text = - '' - SYSTEM_PATH=${cfg.path} - ${optionalString cfg.privateNetwork '' - PRIVATE_NETWORK=1 - ${optionalString (cfg.hostBridge != null) '' - HOST_BRIDGE=${cfg.hostBridge} - ''} - ${optionalString (length cfg.forwardPorts > 0) '' - HOST_PORT=${concatStringsSep "," (map mkPortStr cfg.forwardPorts)} - ''} - ${optionalString (cfg.hostAddress != null) '' - HOST_ADDRESS=${cfg.hostAddress} - ''} - ${optionalString (cfg.hostAddress6 != null) '' - HOST_ADDRESS6=${cfg.hostAddress6} - ''} - ${optionalString (cfg.localAddress != null) '' - LOCAL_ADDRESS=${cfg.localAddress} - ''} - ${optionalString (cfg.localAddress6 != null) '' - LOCAL_ADDRESS6=${cfg.localAddress6} - ''} - ''} - INTERFACES="${toString cfg.interfaces}" - MACVLANS="${toString cfg.macvlans}" - ${optionalString cfg.autoStart '' - AUTO_START=1 - ''} - EXTRA_NSPAWN_FLAGS="${mkBindFlags cfg.bindMounts + - optionalString (cfg.extraFlags != []) - (" " + concatStringsSep " " cfg.extraFlags)}" - ''; - }) config.containers; - - # Generate /etc/hosts entries for the containers. - networking.extraHosts = concatStrings (mapAttrsToList (name: cfg: optionalString (cfg.localAddress != null) - '' - ${head (splitString "/" cfg.localAddress)} ${name}.containers - '') config.containers); - - networking.dhcpcd.denyInterfaces = [ "ve-*" "vb-*" ]; - - services.udev.extraRules = optionalString config.networking.networkmanager.enable '' - # Don't manage interfaces created by nixos-container. - ENV{INTERFACE}=="v[eb]-*", ENV{NM_UNMANAGED}="1" - ''; - - environment.systemPackages = [ pkgs.nixos-container ]; - - boot.kernelModules = [ - "bridge" - "macvlan" - "tap" - "tun" - ]; - }); } diff --git a/nixos/modules/virtualisation/cri-o.nix b/nixos/modules/virtualisation/cri-o.nix index 14a435f6c8b..89ba9c3c663 100644 --- a/nixos/modules/virtualisation/cri-o.nix +++ b/nixos/modules/virtualisation/cri-o.nix @@ -6,6 +6,14 @@ let cfg = config.virtualisation.cri-o; in { + imports = [ + (mkRenamedOptionModule [ "virtualisation" "cri-o" "registries" ] [ "virtualisation" "containers" "registries" "search" ]) + ]; + + meta = { + maintainers = lib.teams.podman.members; + }; + options.virtualisation.cri-o = { enable = mkEnableOption "Container Runtime Interface for OCI (CRI-O)"; @@ -32,17 +40,11 @@ in default = "/pause"; description = "Pause command to be executed"; }; - - registries = mkOption { - type = types.listOf types.str; - default = [ "docker.io" "quay.io" ]; - description = "Registries to be configured for unqualified image pull"; - }; }; config = mkIf cfg.enable { environment.systemPackages = with pkgs; - [ cri-o cri-tools conmon cni-plugins iptables runc utillinux ]; + [ cri-o cri-tools conmon iptables runc utillinux ]; environment.etc."crictl.yaml".text = '' runtime-endpoint: unix:///var/run/crio/crio.sock ''; @@ -53,18 +55,17 @@ in [crio.image] pause_image = "${cfg.pauseImage}" pause_command = "${cfg.pauseCommand}" - registries = [ - ${concatMapStringsSep ", " (x: "\"" + x + "\"") cfg.registries} - ] + + [crio.network] + plugin_dirs = ["${pkgs.cni-plugins}/bin/"] + network_dir = "/etc/cni/net.d/" [crio.runtime] conmon = "${pkgs.conmon}/bin/conmon" log_level = "${cfg.logLevel}" manage_network_ns_lifecycle = true ''; - environment.etc."containers/policy.json".text = '' - {"default": [{"type": "insecureAcceptAnything"}]} - ''; + environment.etc."cni/net.d/20-cri-o-bridge.conf".text = '' { "cniVersion": "0.3.1", @@ -83,6 +84,9 @@ in } ''; + # Enable common /etc/containers configuration + virtualisation.containers.enable = true; + systemd.services.crio = { description = "Container Runtime Interface for OCI (CRI-O)"; documentation = [ "https://github.com/cri-o/cri-o" ]; diff --git a/nixos/modules/virtualisation/ec2-amis.nix b/nixos/modules/virtualisation/ec2-amis.nix index 3b4e55d39d7..24de8cf1afb 100644 --- a/nixos/modules/virtualisation/ec2-amis.nix +++ b/nixos/modules/virtualisation/ec2-amis.nix @@ -291,21 +291,43 @@ let self = { "19.03".sa-east-1.hvm-ebs = "ami-0c6a43c6e0ad1f4e2"; "19.03".ap-south-1.hvm-ebs = "ami-0303deb1b5890f878"; - # 19.09.981.205691b7cbe - "19.09".eu-west-1.hvm-ebs = "ami-0ebd3156e21e9642f"; - "19.09".eu-west-2.hvm-ebs = "ami-02a2b5480a79084b7"; - "19.09".eu-west-3.hvm-ebs = "ami-09aa175c7588734f7"; - "19.09".eu-central-1.hvm-ebs = "ami-00a7fafd7e237a330"; - "19.09".us-east-1.hvm-ebs = "ami-00a8eeaf232a74f84"; - "19.09".us-east-2.hvm-ebs = "ami-093efd3a57a1e03a8"; - "19.09".us-west-1.hvm-ebs = "ami-0913e9a2b677fac30"; - "19.09".us-west-2.hvm-ebs = "ami-02d9a19f77b47882a"; - "19.09".ca-central-1.hvm-ebs = "ami-0627dd3f7b3627a29"; - "19.09".ap-southeast-1.hvm-ebs = "ami-083614e4d08f2164d"; - "19.09".ap-southeast-2.hvm-ebs = "ami-0048c704185ded6dc"; - "19.09".ap-northeast-1.hvm-ebs = "ami-0329e7fc2d7f60bd0"; - "19.09".ap-northeast-2.hvm-ebs = "ami-03d4ae7d0b5fc364f"; - "19.09".ap-south-1.hvm-ebs = "ami-0b599690b35aeef23"; + # 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"; - latest = self."19.09"; + # 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"; + + latest = self."20.03"; }; in self diff --git a/nixos/modules/virtualisation/hyperv-image.nix b/nixos/modules/virtualisation/hyperv-image.nix new file mode 100644 index 00000000000..be2f12b7d01 --- /dev/null +++ b/nixos/modules/virtualisation/hyperv-image.nix @@ -0,0 +1,69 @@ +{ config, pkgs, lib, ... }: + +with lib; + +let + cfg = config.hyperv; + +in { + options = { + hyperv = { + baseImageSize = mkOption { + type = types.int; + default = 2048; + description = '' + The size of the hyper-v base image in MiB. + ''; + }; + vmDerivationName = mkOption { + type = types.str; + default = "nixos-hyperv-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}"; + description = '' + The name of the derivation for the hyper-v appliance. + ''; + }; + vmFileName = mkOption { + type = types.str; + default = "nixos-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}.vhdx"; + description = '' + The file name of the hyper-v appliance. + ''; + }; + }; + }; + + config = { + system.build.hypervImage = import ../../lib/make-disk-image.nix { + name = cfg.vmDerivationName; + postVM = '' + ${pkgs.vmTools.qemu}/bin/qemu-img convert -f raw -o subformat=dynamic -O vhdx $diskImage $out/${cfg.vmFileName} + ''; + format = "raw"; + diskSize = cfg.baseImageSize; + partitionTableType = "efi"; + inherit config lib pkgs; + }; + + fileSystems."/" = { + device = "/dev/disk/by-label/nixos"; + autoResize = true; + fsType = "ext4"; + }; + + fileSystems."/boot" = { + device = "/dev/disk/by-label/ESP"; + fsType = "vfat"; + }; + + boot.growPartition = true; + + boot.loader.grub = { + version = 2; + device = "nodev"; + efiSupport = true; + efiInstallAsRemovable = true; + }; + + virtualisation.hypervGuest.enable = true; + }; +} diff --git a/nixos/modules/virtualisation/libvirtd.nix b/nixos/modules/virtualisation/libvirtd.nix index 9f7bac480e3..4f22099443f 100644 --- a/nixos/modules/virtualisation/libvirtd.nix +++ b/nixos/modules/virtualisation/libvirtd.nix @@ -214,14 +214,14 @@ in { }; systemd.services.libvirtd = { - description = "Libvirt Virtual Machine Management Daemon"; - - wantedBy = [ "multi-user.target" ]; requires = [ "libvirtd-config.service" ]; after = [ "systemd-udev-settle.service" "libvirtd-config.service" ] ++ optional vswitch.enable "ovs-vswitchd.service"; - environment.LIBVIRTD_ARGS = ''--config "${configFile}" ${concatStringsSep " " cfg.extraOptions}''; + environment.LIBVIRTD_ARGS = escapeShellArgs ( + [ "--config" configFile + "--timeout" "120" # from ${libvirt}/var/lib/sysconfig/libvirtd + ] ++ cfg.extraOptions); path = [ cfg.qemuPackage ] # libvirtd requires qemu-img to manage disk images ++ optional vswitch.enable vswitch.package; @@ -266,5 +266,8 @@ in { serviceConfig.ExecStart = "@${pkgs.libvirt}/sbin/virtlockd virtlockd"; restartIfChanged = false; }; + + systemd.sockets.libvirtd .wantedBy = [ "sockets.target" ]; + systemd.sockets.libvirtd-tcp.wantedBy = [ "sockets.target" ]; }; } diff --git a/nixos/modules/virtualisation/nixos-containers.nix b/nixos/modules/virtualisation/nixos-containers.nix new file mode 100644 index 00000000000..b0fa03917c8 --- /dev/null +++ b/nixos/modules/virtualisation/nixos-containers.nix @@ -0,0 +1,844 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + # The container's init script, a small wrapper around the regular + # NixOS stage-2 init script. + containerInit = (cfg: + let + renderExtraVeth = (name: cfg: + '' + echo "Bringing ${name} up" + ip link set dev ${name} up + ${optionalString (cfg.localAddress != null) '' + echo "Setting ip for ${name}" + ip addr add ${cfg.localAddress} dev ${name} + ''} + ${optionalString (cfg.localAddress6 != null) '' + echo "Setting ip6 for ${name}" + ip -6 addr add ${cfg.localAddress6} dev ${name} + ''} + ${optionalString (cfg.hostAddress != null) '' + echo "Setting route to host for ${name}" + ip route add ${cfg.hostAddress} dev ${name} + ''} + ${optionalString (cfg.hostAddress6 != null) '' + echo "Setting route6 to host for ${name}" + ip -6 route add ${cfg.hostAddress6} dev ${name} + ''} + '' + ); + in + pkgs.writeScript "container-init" + '' + #! ${pkgs.runtimeShell} -e + + # Initialise the container side of the veth pair. + if [ -n "$HOST_ADDRESS" ] || [ -n "$HOST_ADDRESS6" ] || + [ -n "$LOCAL_ADDRESS" ] || [ -n "$LOCAL_ADDRESS6" ] || + [ -n "$HOST_BRIDGE" ]; then + ip link set host0 name eth0 + ip link set dev eth0 up + + if [ -n "$LOCAL_ADDRESS" ]; then + ip addr add $LOCAL_ADDRESS dev eth0 + fi + if [ -n "$LOCAL_ADDRESS6" ]; then + ip -6 addr add $LOCAL_ADDRESS6 dev eth0 + fi + if [ -n "$HOST_ADDRESS" ]; then + ip route add $HOST_ADDRESS dev eth0 + ip route add default via $HOST_ADDRESS + fi + if [ -n "$HOST_ADDRESS6" ]; then + ip -6 route add $HOST_ADDRESS6 dev eth0 + ip -6 route add default via $HOST_ADDRESS6 + fi + + ${concatStringsSep "\n" (mapAttrsToList renderExtraVeth cfg.extraVeths)} + fi + + # Start the regular stage 1 script. + exec "$1" + '' + ); + + nspawnExtraVethArgs = (name: cfg: "--network-veth-extra=${name}"); + + startScript = cfg: + '' + mkdir -p -m 0755 "$root/etc" "$root/var/lib" + mkdir -p -m 0700 "$root/var/lib/private" "$root/root" /run/containers + if ! [ -e "$root/etc/os-release" ]; then + touch "$root/etc/os-release" + fi + + if ! [ -e "$root/etc/machine-id" ]; then + touch "$root/etc/machine-id" + fi + + mkdir -p -m 0755 \ + "/nix/var/nix/profiles/per-container/$INSTANCE" \ + "/nix/var/nix/gcroots/per-container/$INSTANCE" + + cp --remove-destination /etc/resolv.conf "$root/etc/resolv.conf" + + if [ "$PRIVATE_NETWORK" = 1 ]; then + extraFlags+=" --private-network" + fi + + if [ -n "$HOST_ADDRESS" ] || [ -n "$LOCAL_ADDRESS" ] || + [ -n "$HOST_ADDRESS6" ] || [ -n "$LOCAL_ADDRESS6" ]; then + extraFlags+=" --network-veth" + fi + + if [ -n "$HOST_PORT" ]; then + OIFS=$IFS + IFS="," + for i in $HOST_PORT + do + extraFlags+=" --port=$i" + done + IFS=$OIFS + fi + + if [ -n "$HOST_BRIDGE" ]; then + extraFlags+=" --network-bridge=$HOST_BRIDGE" + fi + + extraFlags+=" ${concatStringsSep " " (mapAttrsToList nspawnExtraVethArgs cfg.extraVeths)}" + + for iface in $INTERFACES; do + extraFlags+=" --network-interface=$iface" + done + + for iface in $MACVLANS; do + extraFlags+=" --network-macvlan=$iface" + done + + # If the host is 64-bit and the container is 32-bit, add a + # --personality flag. + ${optionalString (config.nixpkgs.localSystem.system == "x86_64-linux") '' + if [ "$(< ''${SYSTEM_PATH:-/nix/var/nix/profiles/per-container/$INSTANCE/system}/system)" = i686-linux ]; then + extraFlags+=" --personality=x86" + fi + ''} + + # Run systemd-nspawn without startup notification (we'll + # wait for the container systemd to signal readiness). + exec ${config.systemd.package}/bin/systemd-nspawn \ + --keep-unit \ + -M "$INSTANCE" -D "$root" $extraFlags \ + $EXTRA_NSPAWN_FLAGS \ + --notify-ready=yes \ + --bind-ro=/nix/store \ + --bind-ro=/nix/var/nix/db \ + --bind-ro=/nix/var/nix/daemon-socket \ + --bind="/nix/var/nix/profiles/per-container/$INSTANCE:/nix/var/nix/profiles" \ + --bind="/nix/var/nix/gcroots/per-container/$INSTANCE:/nix/var/nix/gcroots" \ + ${optionalString (!cfg.ephemeral) "--link-journal=try-guest"} \ + --setenv PRIVATE_NETWORK="$PRIVATE_NETWORK" \ + --setenv HOST_BRIDGE="$HOST_BRIDGE" \ + --setenv HOST_ADDRESS="$HOST_ADDRESS" \ + --setenv LOCAL_ADDRESS="$LOCAL_ADDRESS" \ + --setenv HOST_ADDRESS6="$HOST_ADDRESS6" \ + --setenv LOCAL_ADDRESS6="$LOCAL_ADDRESS6" \ + --setenv HOST_PORT="$HOST_PORT" \ + --setenv PATH="$PATH" \ + ${optionalString cfg.ephemeral "--ephemeral"} \ + ${if cfg.additionalCapabilities != null && cfg.additionalCapabilities != [] then + ''--capability="${concatStringsSep "," cfg.additionalCapabilities}"'' else "" + } \ + ${if cfg.tmpfs != null && cfg.tmpfs != [] then + ''--tmpfs=${concatStringsSep " --tmpfs=" cfg.tmpfs}'' else "" + } \ + ${containerInit cfg} "''${SYSTEM_PATH:-/nix/var/nix/profiles/system}/init" + ''; + + preStartScript = cfg: + '' + # Clean up existing machined registration and interfaces. + machinectl terminate "$INSTANCE" 2> /dev/null || true + + if [ -n "$HOST_ADDRESS" ] || [ -n "$LOCAL_ADDRESS" ] || + [ -n "$HOST_ADDRESS6" ] || [ -n "$LOCAL_ADDRESS6" ]; then + ip link del dev "ve-$INSTANCE" 2> /dev/null || true + ip link del dev "vb-$INSTANCE" 2> /dev/null || true + fi + + ${concatStringsSep "\n" ( + mapAttrsToList (name: cfg: + ''ip link del dev ${name} 2> /dev/null || true '' + ) cfg.extraVeths + )} + ''; + + postStartScript = (cfg: + let + ipcall = cfg: ipcmd: variable: attribute: + if cfg.${attribute} == null then + '' + if [ -n "${variable}" ]; then + ${ipcmd} add ${variable} dev $ifaceHost + fi + '' + else + ''${ipcmd} add ${cfg.${attribute}} dev $ifaceHost''; + renderExtraVeth = name: cfg: + if cfg.hostBridge != null then + '' + # Add ${name} to bridge ${cfg.hostBridge} + ip link set dev ${name} master ${cfg.hostBridge} up + '' + else + '' + echo "Bring ${name} up" + ip link set dev ${name} up + # Set IPs and routes for ${name} + ${optionalString (cfg.hostAddress != null) '' + ip addr add ${cfg.hostAddress} dev ${name} + ''} + ${optionalString (cfg.hostAddress6 != null) '' + ip -6 addr add ${cfg.hostAddress6} dev ${name} + ''} + ${optionalString (cfg.localAddress != null) '' + ip route add ${cfg.localAddress} dev ${name} + ''} + ${optionalString (cfg.localAddress6 != null) '' + ip -6 route add ${cfg.localAddress6} dev ${name} + ''} + ''; + in + '' + if [ -n "$HOST_ADDRESS" ] || [ -n "$LOCAL_ADDRESS" ] || + [ -n "$HOST_ADDRESS6" ] || [ -n "$LOCAL_ADDRESS6" ]; then + if [ -z "$HOST_BRIDGE" ]; then + ifaceHost=ve-$INSTANCE + ip link set dev $ifaceHost up + + ${ipcall cfg "ip addr" "$HOST_ADDRESS" "hostAddress"} + ${ipcall cfg "ip -6 addr" "$HOST_ADDRESS6" "hostAddress6"} + ${ipcall cfg "ip route" "$LOCAL_ADDRESS" "localAddress"} + ${ipcall cfg "ip -6 route" "$LOCAL_ADDRESS6" "localAddress6"} + fi + ${concatStringsSep "\n" (mapAttrsToList renderExtraVeth cfg.extraVeths)} + fi + '' + ); + + serviceDirectives = cfg: { + ExecReload = pkgs.writeScript "reload-container" + '' + #! ${pkgs.runtimeShell} -e + ${pkgs.nixos-container}/bin/nixos-container run "$INSTANCE" -- \ + bash --login -c "''${SYSTEM_PATH:-/nix/var/nix/profiles/system}/bin/switch-to-configuration test" + ''; + + SyslogIdentifier = "container %i"; + + EnvironmentFile = "-/etc/containers/%i.conf"; + + Type = "notify"; + + RuntimeDirectory = lib.optional cfg.ephemeral "containers/%i"; + + # Note that on reboot, systemd-nspawn returns 133, so this + # unit will be restarted. On poweroff, it returns 0, so the + # unit won't be restarted. + RestartForceExitStatus = "133"; + SuccessExitStatus = "133"; + + # Some containers take long to start + # especially when you automatically start many at once + TimeoutStartSec = cfg.timeoutStartSec; + + Restart = "on-failure"; + + Slice = "machine.slice"; + Delegate = true; + + # Hack: we don't want to kill systemd-nspawn, since we call + # "machinectl poweroff" in preStop to shut down the + # container cleanly. But systemd requires sending a signal + # (at least if we want remaining processes to be killed + # after the timeout). So send an ignored signal. + KillMode = "mixed"; + KillSignal = "WINCH"; + + DevicePolicy = "closed"; + DeviceAllow = map (d: "${d.node} ${d.modifier}") cfg.allowedDevices; + }; + + + system = config.nixpkgs.localSystem.system; + + bindMountOpts = { name, ... }: { + + options = { + mountPoint = mkOption { + example = "/mnt/usb"; + type = types.str; + description = "Mount point on the container file system."; + }; + hostPath = mkOption { + default = null; + example = "/home/alice"; + type = types.nullOr types.str; + description = "Location of the host path to be mounted."; + }; + isReadOnly = mkOption { + default = true; + type = types.bool; + description = "Determine whether the mounted path will be accessed in read-only mode."; + }; + }; + + config = { + mountPoint = mkDefault name; + }; + + }; + + allowedDeviceOpts = { ... }: { + options = { + node = mkOption { + example = "/dev/net/tun"; + type = types.str; + description = "Path to device node"; + }; + modifier = mkOption { + example = "rw"; + type = types.str; + description = '' + Device node access modifier. Takes a combination + r (read), w (write), and + m (mknod). See the + systemd.resource-control(5) man page for more + information.''; + }; + }; + }; + + + mkBindFlag = d: + let flagPrefix = if d.isReadOnly then " --bind-ro=" else " --bind="; + mountstr = if d.hostPath != null then "${d.hostPath}:${d.mountPoint}" else "${d.mountPoint}"; + in flagPrefix + mountstr ; + + mkBindFlags = bs: concatMapStrings mkBindFlag (lib.attrValues bs); + + networkOptions = { + hostBridge = mkOption { + type = types.nullOr types.str; + default = null; + example = "br0"; + description = '' + Put the host-side of the veth-pair into the named bridge. + Only one of hostAddress* or hostBridge can be given. + ''; + }; + + forwardPorts = mkOption { + type = types.listOf (types.submodule { + options = { + protocol = mkOption { + type = types.str; + default = "tcp"; + description = "The protocol specifier for port forwarding between host and container"; + }; + hostPort = mkOption { + type = types.int; + description = "Source port of the external interface on host"; + }; + containerPort = mkOption { + type = types.nullOr types.int; + default = null; + description = "Target port of container"; + }; + }; + }); + default = []; + example = [ { protocol = "tcp"; hostPort = 8080; containerPort = 80; } ]; + description = '' + List of forwarded ports from host to container. Each forwarded port + is specified by protocol, hostPort and containerPort. By default, + protocol is tcp and hostPort and containerPort are assumed to be + the same if containerPort is not explicitly given. + ''; + }; + + + hostAddress = mkOption { + type = types.nullOr types.str; + default = null; + example = "10.231.136.1"; + description = '' + The IPv4 address assigned to the host interface. + (Not used when hostBridge is set.) + ''; + }; + + hostAddress6 = mkOption { + type = types.nullOr types.str; + default = null; + example = "fc00::1"; + description = '' + The IPv6 address assigned to the host interface. + (Not used when hostBridge is set.) + ''; + }; + + localAddress = mkOption { + type = types.nullOr types.str; + default = null; + example = "10.231.136.2"; + description = '' + The IPv4 address assigned to the interface in the container. + If a hostBridge is used, this should be given with netmask to access + the whole network. Otherwise the default netmask is /32 and routing is + set up from localAddress to hostAddress and back. + ''; + }; + + localAddress6 = mkOption { + type = types.nullOr types.str; + default = null; + example = "fc00::2"; + description = '' + The IPv6 address assigned to the interface in the container. + If a hostBridge is used, this should be given with netmask to access + the whole network. Otherwise the default netmask is /128 and routing is + set up from localAddress6 to hostAddress6 and back. + ''; + }; + + }; + + dummyConfig = + { + extraVeths = {}; + additionalCapabilities = []; + ephemeral = false; + timeoutStartSec = "15s"; + allowedDevices = []; + hostAddress = null; + hostAddress6 = null; + localAddress = null; + localAddress6 = null; + tmpfs = null; + }; + +in + +{ + options = { + + boot.isContainer = mkOption { + type = types.bool; + default = false; + description = '' + Whether this NixOS machine is a lightweight container running + in another NixOS system. If set to true, support for nested + containers is disabled by default, but can be reenabled by + setting to true. + ''; + }; + + boot.enableContainers = mkOption { + type = types.bool; + default = !config.boot.isContainer; + description = '' + Whether to enable support for NixOS containers. Defaults to true + (at no cost if containers are not actually used), but only if the + system is not itself a lightweight container of a host. + To enable support for nested containers, this option has to be + explicitly set to true (in the outer container). + ''; + }; + + containers = mkOption { + type = types.attrsOf (types.submodule ( + { config, options, name, ... }: + { + options = { + + config = mkOption { + description = '' + A specification of the desired configuration of this + container, as a NixOS module. + ''; + type = let + confPkgs = if config.pkgs == null then pkgs else config.pkgs; + in lib.mkOptionType { + name = "Toplevel NixOS config"; + merge = loc: defs: (import (confPkgs.path + "/nixos/lib/eval-config.nix") { + inherit system; + pkgs = confPkgs; + baseModules = import (confPkgs.path + "/nixos/modules/module-list.nix"); + inherit (confPkgs) lib; + modules = + let + extraConfig = { + _file = "module at ${__curPos.file}:${toString __curPos.line}"; + config = { + boot.isContainer = true; + networking.hostName = mkDefault name; + networking.useDHCP = false; + assertions = [ + { + assertion = config.privateNetwork -> stringLength name < 12; + message = '' + Container name `${name}` is too long: When `privateNetwork` is enabled, container names can + not be longer than 11 characters, because the container's interface name is derived from it. + This might be fixed in the future. See https://github.com/NixOS/nixpkgs/issues/38509 + ''; + } + ]; + }; + }; + in [ extraConfig ] ++ (map (x: x.value) defs); + prefix = [ "containers" name ]; + }).config; + }; + }; + + path = mkOption { + type = types.path; + example = "/nix/var/nix/profiles/containers/webserver"; + description = '' + As an alternative to specifying + , you can specify the path to + the evaluated NixOS system configuration, typically a + symlink to a system profile. + ''; + }; + + additionalCapabilities = mkOption { + type = types.listOf types.str; + default = []; + example = [ "CAP_NET_ADMIN" "CAP_MKNOD" ]; + description = '' + Grant additional capabilities to the container. See the + capabilities(7) and systemd-nspawn(1) man pages for more + information. + ''; + }; + + pkgs = mkOption { + type = types.nullOr types.attrs; + default = null; + example = literalExample "pkgs"; + description = '' + Customise which nixpkgs to use for this container. + ''; + }; + + ephemeral = mkOption { + type = types.bool; + default = false; + description = '' + Runs container in ephemeral mode with the empty root filesystem at boot. + This way container will be bootstrapped from scratch on each boot + and will be cleaned up on shutdown leaving no traces behind. + Useful for completely stateless, reproducible containers. + + Note that this option might require to do some adjustments to the container configuration, + e.g. you might want to set + systemd.network.networks.$interface.dhcpV4Config.ClientIdentifier to "mac" + if you use macvlans option. + This way dhcp client identifier will be stable between the container restarts. + + Note that the container journal will not be linked to the host if this option is enabled. + ''; + }; + + enableTun = mkOption { + type = types.bool; + default = false; + description = '' + Allows the container to create and setup tunnel interfaces + by granting the NET_ADMIN capability and + enabling access to /dev/net/tun. + ''; + }; + + privateNetwork = mkOption { + type = types.bool; + default = false; + description = '' + Whether to give the container its own private virtual + Ethernet interface. The interface is called + eth0, and is hooked up to the interface + ve-container-name + on the host. If this option is not set, then the + container shares the network interfaces of the host, + and can bind to any port on any interface. + ''; + }; + + interfaces = mkOption { + type = types.listOf types.str; + default = []; + example = [ "eth1" "eth2" ]; + description = '' + The list of interfaces to be moved into the container. + ''; + }; + + macvlans = mkOption { + type = types.listOf types.str; + default = []; + example = [ "eth1" "eth2" ]; + description = '' + The list of host interfaces from which macvlans will be + created. For each interface specified, a macvlan interface + will be created and moved to the container. + ''; + }; + + extraVeths = mkOption { + type = with types; attrsOf (submodule { options = networkOptions; }); + default = {}; + description = '' + Extra veth-pairs to be created for the container. + ''; + }; + + autoStart = mkOption { + type = types.bool; + default = false; + description = '' + Whether the container is automatically started at boot-time. + ''; + }; + + timeoutStartSec = mkOption { + type = types.str; + default = "1min"; + description = '' + Time for the container to start. In case of a timeout, + the container processes get killed. + See systemd.time + 7 + for more information about the format. + ''; + }; + + bindMounts = mkOption { + type = with types; loaOf (submodule bindMountOpts); + default = {}; + example = literalExample '' + { "/home" = { hostPath = "/home/alice"; + isReadOnly = false; }; + } + ''; + + description = + '' + An extra list of directories that is bound to the container. + ''; + }; + + allowedDevices = mkOption { + type = with types; listOf (submodule allowedDeviceOpts); + default = []; + example = [ { node = "/dev/net/tun"; modifier = "rw"; } ]; + description = '' + A list of device nodes to which the containers has access to. + ''; + }; + + tmpfs = mkOption { + type = types.listOf types.str; + default = []; + example = [ "/var" ]; + description = '' + Mounts a set of tmpfs file systems into the container. + Multiple paths can be specified. + Valid items must conform to the --tmpfs argument + of systemd-nspawn. See systemd-nspawn(1) for details. + ''; + }; + + extraFlags = mkOption { + type = types.listOf types.str; + default = []; + example = [ "--drop-capability=CAP_SYS_CHROOT" ]; + description = '' + Extra flags passed to the systemd-nspawn command. + See systemd-nspawn(1) for details. + ''; + }; + + } // networkOptions; + + config = mkMerge + [ + (mkIf options.config.isDefined { + path = config.config.system.build.toplevel; + }) + ]; + })); + + default = {}; + example = literalExample + '' + { webserver = + { path = "/nix/var/nix/profiles/webserver"; + }; + database = + { config = + { config, pkgs, ... }: + { services.postgresql.enable = true; + services.postgresql.package = pkgs.postgresql_9_6; + + system.stateVersion = "17.03"; + }; + }; + } + ''; + description = '' + A set of NixOS system configurations to be run as lightweight + containers. Each container appears as a service + container-name + on the host system, allowing it to be started and stopped via + systemctl. + ''; + }; + + }; + + + config = mkIf (config.boot.enableContainers) (let + + unit = { + description = "Container '%i'"; + + unitConfig.RequiresMountsFor = "/var/lib/containers/%i"; + + path = [ pkgs.iproute ]; + + environment = { + root = "/var/lib/containers/%i"; + INSTANCE = "%i"; + }; + + preStart = preStartScript dummyConfig; + + script = startScript dummyConfig; + + postStart = postStartScript dummyConfig; + + preStop = "machinectl poweroff $INSTANCE"; + + restartIfChanged = false; + + serviceConfig = serviceDirectives dummyConfig; + }; + in { + systemd.targets.multi-user.wants = [ "machines.target" ]; + + systemd.services = listToAttrs (filter (x: x.value != null) ( + # The generic container template used by imperative containers + [{ name = "container@"; value = unit; }] + # declarative containers + ++ (mapAttrsToList (name: cfg: nameValuePair "container@${name}" (let + containerConfig = cfg // ( + if cfg.enableTun then + { + allowedDevices = cfg.allowedDevices + ++ [ { node = "/dev/net/tun"; modifier = "rw"; } ]; + additionalCapabilities = cfg.additionalCapabilities + ++ [ "CAP_NET_ADMIN" ]; + } + else {}); + in + recursiveUpdate unit { + preStart = preStartScript containerConfig; + script = startScript containerConfig; + postStart = postStartScript containerConfig; + serviceConfig = serviceDirectives containerConfig; + unitConfig.RequiresMountsFor = lib.optional (!containerConfig.ephemeral) "/var/lib/containers/%i"; + environment.root = if containerConfig.ephemeral then "/run/containers/%i" else "/var/lib/containers/%i"; + } // ( + if containerConfig.autoStart then + { + wantedBy = [ "machines.target" ]; + wants = [ "network.target" ]; + after = [ "network.target" ]; + restartTriggers = [ + containerConfig.path + config.environment.etc."containers/${name}.conf".source + ]; + restartIfChanged = true; + } + else {}) + )) config.containers) + )); + + # Generate a configuration file in /etc/containers for each + # container so that container@.target can get the container + # configuration. + environment.etc = + let mkPortStr = p: p.protocol + ":" + (toString p.hostPort) + ":" + (if p.containerPort == null then toString p.hostPort else toString p.containerPort); + in mapAttrs' (name: cfg: nameValuePair "containers/${name}.conf" + { text = + '' + SYSTEM_PATH=${cfg.path} + ${optionalString cfg.privateNetwork '' + PRIVATE_NETWORK=1 + ${optionalString (cfg.hostBridge != null) '' + HOST_BRIDGE=${cfg.hostBridge} + ''} + ${optionalString (length cfg.forwardPorts > 0) '' + HOST_PORT=${concatStringsSep "," (map mkPortStr cfg.forwardPorts)} + ''} + ${optionalString (cfg.hostAddress != null) '' + HOST_ADDRESS=${cfg.hostAddress} + ''} + ${optionalString (cfg.hostAddress6 != null) '' + HOST_ADDRESS6=${cfg.hostAddress6} + ''} + ${optionalString (cfg.localAddress != null) '' + LOCAL_ADDRESS=${cfg.localAddress} + ''} + ${optionalString (cfg.localAddress6 != null) '' + LOCAL_ADDRESS6=${cfg.localAddress6} + ''} + ''} + INTERFACES="${toString cfg.interfaces}" + MACVLANS="${toString cfg.macvlans}" + ${optionalString cfg.autoStart '' + AUTO_START=1 + ''} + EXTRA_NSPAWN_FLAGS="${mkBindFlags cfg.bindMounts + + optionalString (cfg.extraFlags != []) + (" " + concatStringsSep " " cfg.extraFlags)}" + ''; + }) config.containers; + + # Generate /etc/hosts entries for the containers. + networking.extraHosts = concatStrings (mapAttrsToList (name: cfg: optionalString (cfg.localAddress != null) + '' + ${head (splitString "/" cfg.localAddress)} ${name}.containers + '') config.containers); + + networking.dhcpcd.denyInterfaces = [ "ve-*" "vb-*" ]; + + services.udev.extraRules = optionalString config.networking.networkmanager.enable '' + # Don't manage interfaces created by nixos-container. + ENV{INTERFACE}=="v[eb]-*", ENV{NM_UNMANAGED}="1" + ''; + + environment.systemPackages = [ pkgs.nixos-container ]; + + boot.kernelModules = [ + "bridge" + "macvlan" + "tap" + "tun" + ]; + }); +} diff --git a/nixos/modules/virtualisation/podman.nix b/nixos/modules/virtualisation/podman.nix new file mode 100644 index 00000000000..1dc79272ccb --- /dev/null +++ b/nixos/modules/virtualisation/podman.nix @@ -0,0 +1,115 @@ +{ config, lib, pkgs, ... }: +let + cfg = config.virtualisation.podman; + + inherit (lib) mkOption types; + + podmanPackage = (pkgs.podman.override { inherit (cfg) extraPackages; }); + + # Provides a fake "docker" binary mapping to podman + dockerCompat = pkgs.runCommandNoCC "${podmanPackage.pname}-docker-compat-${podmanPackage.version}" { + outputs = [ "out" "bin" "man" ]; + inherit (podmanPackage) meta; + } '' + mkdir $out + + mkdir -p $bin/bin + ln -s ${podmanPackage.bin}/bin/podman $bin/bin/docker + + mkdir -p $man/share/man/man1 + for f in ${podmanPackage.man}/share/man/man1/*; do + basename=$(basename $f | sed s/podman/docker/g) + ln -s $f $man/share/man/man1/$basename + done + ''; + + # Copy configuration files to avoid having the entire sources in the system closure + copyFile = filePath: pkgs.runCommandNoCC (builtins.unsafeDiscardStringContext (builtins.baseNameOf filePath)) {} '' + cp ${filePath} $out + ''; + +in +{ + meta = { + maintainers = lib.teams.podman.members; + }; + + options.virtualisation.podman = { + + enable = + mkOption { + type = types.bool; + default = false; + description = '' + This option enables Podman, a daemonless container engine for + developing, managing, and running OCI Containers on your Linux System. + + It is a drop-in replacement for the docker command. + ''; + }; + + dockerCompat = mkOption { + type = types.bool; + default = false; + description = '' + Create an alias mapping docker to podman. + ''; + }; + + extraPackages = mkOption { + type = with types; listOf package; + default = [ ]; + example = lib.literalExample '' + [ + pkgs.gvisor + ] + ''; + description = '' + Extra packages to be installed in the Podman wrapper. + ''; + }; + + libpod = mkOption { + default = {}; + description = "Libpod configuration"; + type = types.submodule { + options = { + + extraConfig = mkOption { + type = types.lines; + default = ""; + description = '' + Extra configuration that should be put in the libpod.conf + configuration file + ''; + + }; + }; + }; + }; + + }; + + config = lib.mkIf cfg.enable { + + environment.systemPackages = [ podmanPackage ] + ++ lib.optional cfg.dockerCompat dockerCompat; + + environment.etc."containers/libpod.conf".text = '' + cni_plugin_dir = ["${pkgs.cni-plugins}/bin/"] + + '' + cfg.libpod.extraConfig; + + environment.etc."cni/net.d/87-podman-bridge.conflist".source = copyFile "${pkgs.podman-unwrapped.src}/cni/87-podman-bridge.conflist"; + + # Enable common /etc/containers configuration + virtualisation.containers.enable = true; + + assertions = [{ + assertion = cfg.dockerCompat -> !config.virtualisation.docker.enable; + message = "Option dockerCompat conflicts with docker"; + }]; + + }; + +} diff --git a/nixos/modules/virtualisation/qemu-vm.nix b/nixos/modules/virtualisation/qemu-vm.nix index 31d332e9f07..85b75ba6804 100644 --- a/nixos/modules/virtualisation/qemu-vm.nix +++ b/nixos/modules/virtualisation/qemu-vm.nix @@ -499,7 +499,7 @@ in # FIXME: Consolidate this one day. virtualisation.qemu.options = mkMerge [ (mkIf (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) [ - "-vga std" "-usb" "-device usb-tablet,bus=usb-bus.0" + "-usb" "-device usb-tablet,bus=usb-bus.0" ]) (mkIf (pkgs.stdenv.isAarch32 || pkgs.stdenv.isAarch64) [ "-device virtio-gpu-pci" "-device usb-ehci,id=usb0" "-device usb-kbd" "-device usb-tablet" diff --git a/nixos/modules/virtualisation/xen-dom0.nix b/nixos/modules/virtualisation/xen-dom0.nix index 7f0af9901b9..7b2a66c4348 100644 --- a/nixos/modules/virtualisation/xen-dom0.nix +++ b/nixos/modules/virtualisation/xen-dom0.nix @@ -103,6 +103,7 @@ in }; forwardDns = mkOption { + type = types.bool; default = false; description = '' If set to true, the DNS queries from the @@ -135,14 +136,8 @@ in }; }; - virtualisation.xen.trace = - mkOption { - default = false; - description = - '' - Enable Xen tracing. - ''; - }; + virtualisation.xen.trace = mkEnableOption "Xen tracing"; + }; diff --git a/nixos/release-combined.nix b/nixos/release-combined.nix index 9377a931a75..ece2d091f5a 100644 --- a/nixos/release-combined.nix +++ b/nixos/release-combined.nix @@ -20,11 +20,6 @@ let else pkgs.lib.mapAttrs (n: v: removeMaintainers v) set else set; - allSupportedNixpkgs = builtins.removeAttrs (removeMaintainers (import ../pkgs/top-level/release.nix { - supportedSystems = supportedSystems ++ limitedSupportedSystems; - nixpkgs = nixpkgsSrc; - })) [ "unstable" ]; - in rec { nixos = removeMaintainers (import ./release.nix { @@ -38,98 +33,108 @@ in rec { nixpkgs = nixpkgsSrc; })) [ "unstable" ]; - tested = pkgs.releaseTools.aggregate { - name = "nixos-${nixos.channel.version}"; - meta = { - description = "Release-critical builds for the NixOS channel"; - maintainers = with pkgs.lib.maintainers; [ eelco fpletz ]; + tested = + let + onFullSupported = x: map (system: "${x}.${system}") supportedSystems; + onAllSupported = x: map (system: "${x}.${system}") (supportedSystems ++ limitedSupportedSystems); + onSystems = systems: x: map (system: "${x}.${system}") + (pkgs.lib.intersectLists systems (supportedSystems ++ limitedSupportedSystems)); + in pkgs.releaseTools.aggregate { + name = "nixos-${nixos.channel.version}"; + meta = { + description = "Release-critical builds for the NixOS channel"; + maintainers = with pkgs.lib.maintainers; [ eelco fpletz ]; + }; + constituents = pkgs.lib.concatLists [ + [ "nixos.channel" ] + (onFullSupported "nixos.dummy") + (onAllSupported "nixos.iso_minimal") + (onSystems ["x86_64-linux"] "nixos.iso_plasma5") + (onSystems ["x86_64-linux"] "nixos.iso_gnome") + (onFullSupported "nixos.manual") + (onSystems ["x86_64-linux"] "nixos.ova") + (onSystems ["aarch64-linux"] "nixos.sd_image") + (onSystems ["x86_64-linux"] "nixos.tests.boot.biosCdrom") + (onSystems ["x86_64-linux"] "nixos.tests.boot.biosUsb") + (onFullSupported "nixos.tests.boot-stage1") + (onSystems ["x86_64-linux"] "nixos.tests.boot.uefiCdrom") + (onSystems ["x86_64-linux"] "nixos.tests.boot.uefiUsb") + (onSystems ["x86_64-linux"] "nixos.tests.chromium") + (onFullSupported "nixos.tests.containers-imperative") + (onFullSupported "nixos.tests.containers-ip") + (onSystems ["x86_64-linux"] "nixos.tests.docker") + (onFullSupported "nixos.tests.ecryptfs") + (onFullSupported "nixos.tests.env") + (onFullSupported "nixos.tests.firefox-esr") + (onFullSupported "nixos.tests.firefox") + (onFullSupported "nixos.tests.firewall") + (onFullSupported "nixos.tests.fontconfig-default-fonts") + (onFullSupported "nixos.tests.gnome3") + (onFullSupported "nixos.tests.gnome3-xorg") + (onFullSupported "nixos.tests.hardened") + (onSystems ["x86_64-linux"] "nixos.tests.hibernate") + (onFullSupported "nixos.tests.i3wm") + (onSystems ["x86_64-linux"] "nixos.tests.installer.btrfsSimple") + (onSystems ["x86_64-linux"] "nixos.tests.installer.btrfsSubvolDefault") + (onSystems ["x86_64-linux"] "nixos.tests.installer.btrfsSubvols") + (onSystems ["x86_64-linux"] "nixos.tests.installer.luksroot") + (onSystems ["x86_64-linux"] "nixos.tests.installer.lvm") + (onSystems ["x86_64-linux"] "nixos.tests.installer.separateBootFat") + (onSystems ["x86_64-linux"] "nixos.tests.installer.separateBoot") + (onSystems ["x86_64-linux"] "nixos.tests.installer.simpleLabels") + (onSystems ["x86_64-linux"] "nixos.tests.installer.simpleProvided") + (onSystems ["x86_64-linux"] "nixos.tests.installer.simpleUefiSystemdBoot") + (onSystems ["x86_64-linux"] "nixos.tests.installer.simple") + (onSystems ["x86_64-linux"] "nixos.tests.installer.swraid") + (onFullSupported "nixos.tests.ipv6") + (onFullSupported "nixos.tests.keymap.azerty") + (onFullSupported "nixos.tests.keymap.colemak") + (onFullSupported "nixos.tests.keymap.dvorak") + (onFullSupported "nixos.tests.keymap.dvp") + (onFullSupported "nixos.tests.keymap.neo") + (onFullSupported "nixos.tests.keymap.qwertz") + (onFullSupported "nixos.tests.latestKernel.hardened") + (onFullSupported "nixos.tests.latestKernel.login") + (onFullSupported "nixos.tests.lightdm") + (onFullSupported "nixos.tests.login") + (onFullSupported "nixos.tests.misc") + (onFullSupported "nixos.tests.mutableUsers") + (onFullSupported "nixos.tests.nat.firewall-conntrack") + (onFullSupported "nixos.tests.nat.firewall") + (onFullSupported "nixos.tests.nat.standalone") + (onFullSupported "nixos.tests.networking.scripted.bond") + (onFullSupported "nixos.tests.networking.scripted.bridge") + (onFullSupported "nixos.tests.networking.scripted.dhcpOneIf") + (onFullSupported "nixos.tests.networking.scripted.dhcpSimple") + (onFullSupported "nixos.tests.networking.scripted.loopback") + (onFullSupported "nixos.tests.networking.scripted.macvlan") + (onFullSupported "nixos.tests.networking.scripted.sit") + (onFullSupported "nixos.tests.networking.scripted.static") + (onFullSupported "nixos.tests.networking.scripted.vlan") + (onFullSupported "nixos.tests.systemd-networkd-ipv6-prefix-delegation") + (onFullSupported "nixos.tests.nfs3.simple") + (onFullSupported "nixos.tests.nfs4.simple") + (onFullSupported "nixos.tests.openssh") + (onFullSupported "nixos.tests.pantheon") + (onFullSupported "nixos.tests.php.fpm") + (onFullSupported "nixos.tests.php.httpd") + (onFullSupported "nixos.tests.php.pcre") + (onFullSupported "nixos.tests.plasma5") + (onFullSupported "nixos.tests.predictable-interface-names.predictableNetworkd") + (onFullSupported "nixos.tests.predictable-interface-names.predictable") + (onFullSupported "nixos.tests.predictable-interface-names.unpredictableNetworkd") + (onFullSupported "nixos.tests.predictable-interface-names.unpredictable") + (onFullSupported "nixos.tests.printing") + (onFullSupported "nixos.tests.proxy") + (onFullSupported "nixos.tests.sddm.default") + (onFullSupported "nixos.tests.simple") + (onFullSupported "nixos.tests.switchTest") + (onFullSupported "nixos.tests.udisks2") + (onFullSupported "nixos.tests.xfce") + (onSystems ["i686-linux"] "nixos.tests.zfs.installer") + (onFullSupported "nixpkgs.emacs") + (onFullSupported "nixpkgs.jdk") + ["nixpkgs.tarball"] + ]; }; - constituents = [ - "nixos.channel" - "nixos.dummy.x86_64-linux" - "nixos.iso_minimal.aarch64-linux" - "nixos.iso_minimal.i686-linux" - "nixos.iso_minimal.x86_64-linux" - "nixos.iso_plasma5.x86_64-linux" - "nixos.manual.x86_64-linux" - "nixos.ova.x86_64-linux" - "nixos.sd_image.aarch64-linux" - "nixos.tests.boot.biosCdrom.x86_64-linux" - "nixos.tests.boot.biosUsb.x86_64-linux" - "nixos.tests.boot-stage1.x86_64-linux" - "nixos.tests.boot.uefiCdrom.x86_64-linux" - "nixos.tests.boot.uefiUsb.x86_64-linux" - "nixos.tests.chromium.x86_64-linux" - "nixos.tests.containers-imperative.x86_64-linux" - "nixos.tests.containers-ip.x86_64-linux" - "nixos.tests.docker.x86_64-linux" - "nixos.tests.ecryptfs.x86_64-linux" - "nixos.tests.env.x86_64-linux" - "nixos.tests.firefox-esr.x86_64-linux" - "nixos.tests.firefox.x86_64-linux" - "nixos.tests.firewall.x86_64-linux" - "nixos.tests.fontconfig-default-fonts.x86_64-linux" - "nixos.tests.gnome3.x86_64-linux" - "nixos.tests.gnome3-xorg.x86_64-linux" - "nixos.tests.hibernate.x86_64-linux" - "nixos.tests.i3wm.x86_64-linux" - "nixos.tests.installer.btrfsSimple.x86_64-linux" - "nixos.tests.installer.btrfsSubvolDefault.x86_64-linux" - "nixos.tests.installer.btrfsSubvols.x86_64-linux" - "nixos.tests.installer.luksroot.x86_64-linux" - "nixos.tests.installer.lvm.x86_64-linux" - "nixos.tests.installer.separateBootFat.x86_64-linux" - "nixos.tests.installer.separateBoot.x86_64-linux" - "nixos.tests.installer.simpleLabels.x86_64-linux" - "nixos.tests.installer.simpleProvided.x86_64-linux" - "nixos.tests.installer.simpleUefiSystemdBoot.x86_64-linux" - "nixos.tests.installer.simple.x86_64-linux" - "nixos.tests.installer.swraid.x86_64-linux" - "nixos.tests.ipv6.x86_64-linux" - "nixos.tests.keymap.azerty.x86_64-linux" - "nixos.tests.keymap.colemak.x86_64-linux" - "nixos.tests.keymap.dvorak.x86_64-linux" - "nixos.tests.keymap.dvp.x86_64-linux" - "nixos.tests.keymap.neo.x86_64-linux" - "nixos.tests.keymap.qwertz.x86_64-linux" - "nixos.tests.lightdm.x86_64-linux" - "nixos.tests.login.x86_64-linux" - "nixos.tests.misc.x86_64-linux" - "nixos.tests.mutableUsers.x86_64-linux" - "nixos.tests.nat.firewall-conntrack.x86_64-linux" - "nixos.tests.nat.firewall.x86_64-linux" - "nixos.tests.nat.standalone.x86_64-linux" - "nixos.tests.networking.scripted.bond.x86_64-linux" - "nixos.tests.networking.scripted.bridge.x86_64-linux" - "nixos.tests.networking.scripted.dhcpOneIf.x86_64-linux" - "nixos.tests.networking.scripted.dhcpSimple.x86_64-linux" - "nixos.tests.networking.scripted.loopback.x86_64-linux" - "nixos.tests.networking.scripted.macvlan.x86_64-linux" - "nixos.tests.networking.scripted.sit.x86_64-linux" - "nixos.tests.networking.scripted.static.x86_64-linux" - "nixos.tests.networking.scripted.vlan.x86_64-linux" - "nixos.tests.nfs3.simple.x86_64-linux" - "nixos.tests.nfs4.simple.x86_64-linux" - "nixos.tests.openssh.x86_64-linux" - "nixos.tests.pantheon.x86_64-linux" - "nixos.tests.php-pcre.x86_64-linux" - "nixos.tests.plasma5.x86_64-linux" - "nixos.tests.predictable-interface-names.predictableNetworkd.x86_64-linux" - "nixos.tests.predictable-interface-names.predictable.x86_64-linux" - "nixos.tests.predictable-interface-names.unpredictableNetworkd.x86_64-linux" - "nixos.tests.predictable-interface-names.unpredictable.x86_64-linux" - "nixos.tests.printing.x86_64-linux" - "nixos.tests.proxy.x86_64-linux" - "nixos.tests.sddm.default.x86_64-linux" - "nixos.tests.simple.x86_64-linux" - "nixos.tests.switchTest.x86_64-linux" - "nixos.tests.udisks2.x86_64-linux" - "nixos.tests.xfce.x86_64-linux" - "nixos.tests.zfs.installer.i686-linux" - "nixpkgs.emacs.x86_64-linux" - "nixpkgs.jdk.x86_64-linux" - "nixpkgs.tarball" - ]; - }; - } diff --git a/nixos/release-small.nix b/nixos/release-small.nix index 7b86a91357e..6da2c59cedd 100644 --- a/nixos/release-small.nix +++ b/nixos/release-small.nix @@ -28,7 +28,7 @@ let in rec { nixos = { - inherit (nixos') channel manual iso_minimal dummy; + inherit (nixos') channel manual options iso_minimal dummy; tests = { inherit (nixos'.tests) containers-imperative @@ -40,7 +40,7 @@ in rec { nat nfs3 openssh - php-pcre + php predictable-interface-names proxy simple; @@ -108,7 +108,8 @@ in rec { "nixos.tests.nat.standalone.x86_64-linux" "nixos.tests.nfs3.simple.x86_64-linux" "nixos.tests.openssh.x86_64-linux" - "nixos.tests.php-pcre.x86_64-linux" + "nixos.tests.php.fpm.x86_64-linux" + "nixos.tests.php.pcre.x86_64-linux" "nixos.tests.predictable-interface-names.predictable.x86_64-linux" "nixos.tests.predictable-interface-names.predictableNetworkd.x86_64-linux" "nixos.tests.predictable-interface-names.unpredictable.x86_64-linux" diff --git a/nixos/release.nix b/nixos/release.nix index 6107f352971..cf16986b213 100644 --- a/nixos/release.nix +++ b/nixos/release.nix @@ -155,6 +155,12 @@ in rec { inherit system; }); + iso_gnome = forMatchingSystems [ "x86_64-linux" ] (system: makeIso { + module = ./modules/installer/cd-dvd/installation-cd-graphical-gnome.nix; + type = "gnome"; + inherit system; + }); + # A variant with a more recent (but possibly less stable) kernel # that might support more hardware. iso_minimal_new_kernel = forMatchingSystems [ "x86_64-linux" "aarch64-linux" ] (system: makeIso { @@ -308,9 +314,9 @@ in rec { lapp = makeClosure ({ pkgs, ... }: { services.httpd.enable = true; services.httpd.adminAddr = "foo@example.org"; + services.httpd.enablePHP = true; services.postgresql.enable = true; services.postgresql.package = pkgs.postgresql; - environment.systemPackages = [ pkgs.php ]; }); }; } diff --git a/nixos/tests/acme.nix b/nixos/tests/acme.nix index e045f3415fa..fc41dc1eb5f 100644 --- a/nixos/tests/acme.nix +++ b/nixos/tests/acme.nix @@ -1,5 +1,5 @@ let - commonConfig = ./common/letsencrypt/common.nix; + commonConfig = ./common/acme/client; dnsScript = {writeScript, dnsAddress, bash, curl}: writeScript "dns-hook.sh" '' #!${bash}/bin/bash @@ -12,12 +12,13 @@ let fi ''; -in import ./make-test-python.nix { +in import ./make-test-python.nix ({ lib, ... }: { name = "acme"; + meta.maintainers = lib.teams.acme.members; nodes = rec { - letsencrypt = { nodes, lib, ... }: { - imports = [ ./common/letsencrypt ]; + acme = { nodes, lib, ... }: { + imports = [ ./common/acme/server ]; networking.nameservers = lib.mkForce [ nodes.dnsserver.config.networking.primaryIPAddress ]; @@ -33,8 +34,7 @@ in import ./make-test-python.nix { serviceConfig = { ExecStart = "${pkgs.pebble}/bin/pebble-challtestsrv -dns01 ':53' -defaultIPv6 '' -defaultIPv4 '${nodes.webserver.config.networking.primaryIPAddress}'"; # Required to bind on privileged ports. - User = "root"; - Group = "root"; + AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ]; }; }; }; @@ -45,19 +45,16 @@ in import ./make-test-python.nix { nodes.dnsserver.config.networking.primaryIPAddress ]; networking.firewall.allowedTCPPorts = [ 80 ]; - security.acme = { - server = "https://acme-v02.api.letsencrypt.org/dir"; - certs."standalone.com" = { - webroot = "/var/lib/acme/acme-challenges"; - }; + security.acme.certs."standalone.test" = { + webroot = "/var/lib/acme/acme-challenges"; }; - systemd.targets."acme-finished-standalone.com" = {}; - systemd.services."acme-standalone.com" = { - wants = [ "acme-finished-standalone.com.target" ]; - before = [ "acme-finished-standalone.com.target" ]; + systemd.targets."acme-finished-standalone.test" = {}; + systemd.services."acme-standalone.test" = { + wants = [ "acme-finished-standalone.test.target" ]; + before = [ "acme-finished-standalone.test.target" ]; }; services.nginx.enable = true; - services.nginx.virtualHosts."standalone.com" = { + services.nginx.virtualHosts."standalone.test" = { locations."/.well-known/acme-challenge".root = "/var/lib/acme/acme-challenges"; }; }; @@ -71,16 +68,16 @@ in import ./make-test-python.nix { # A target remains active. Use this to probe the fact that # a service fired eventhough it is not RemainAfterExit - systemd.targets."acme-finished-a.example.com" = {}; - systemd.services."acme-a.example.com" = { - wants = [ "acme-finished-a.example.com.target" ]; - before = [ "acme-finished-a.example.com.target" ]; + systemd.targets."acme-finished-a.example.test" = {}; + systemd.services."acme-a.example.test" = { + wants = [ "acme-finished-a.example.test.target" ]; + before = [ "acme-finished-a.example.test.target" ]; after = [ "nginx.service" ]; }; services.nginx.enable = true; - services.nginx.virtualHosts."a.example.com" = { + services.nginx.virtualHosts."a.example.test" = { enableACME = true; forceSSL = true; locations."/".root = pkgs.runCommand "docroot" {} '' @@ -89,54 +86,52 @@ in import ./make-test-python.nix { ''; }; - security.acme.server = "https://acme-v02.api.letsencrypt.org/dir"; + security.acme.server = "https://acme.test/dir"; - nesting.clone = [ - ({pkgs, ...}: { - systemd.targets."acme-finished-b.example.com" = {}; - systemd.services."acme-b.example.com" = { - wants = [ "acme-finished-b.example.com.target" ]; - before = [ "acme-finished-b.example.com.target" ]; - after = [ "nginx.service" ]; - }; - services.nginx.virtualHosts."b.example.com" = { - enableACME = true; - forceSSL = true; - locations."/".root = pkgs.runCommand "docroot" {} '' - mkdir -p "$out" - echo hello world > "$out/index.html" - ''; - }; - }) - ({pkgs, config, nodes, lib, ...}: { - security.acme.certs."example.com" = { - domain = "*.example.com"; - dnsProvider = "exec"; - dnsPropagationCheck = false; - credentialsFile = with pkgs; writeText "wildcard.env" '' - EXEC_PATH=${dnsScript { inherit writeScript bash curl; dnsAddress = nodes.dnsserver.config.networking.primaryIPAddress; }} - ''; - user = config.services.nginx.user; - group = config.services.nginx.group; - }; - systemd.targets."acme-finished-example.com" = {}; - systemd.services."acme-example.com" = { - wants = [ "acme-finished-example.com.target" ]; - before = [ "acme-finished-example.com.target" "nginx.service" ]; - wantedBy = [ "nginx.service" ]; - }; - services.nginx.virtualHosts."c.example.com" = { - forceSSL = true; - sslCertificate = config.security.acme.certs."example.com".directory + "/cert.pem"; - sslTrustedCertificate = config.security.acme.certs."example.com".directory + "/full.pem"; - sslCertificateKey = config.security.acme.certs."example.com".directory + "/key.pem"; - locations."/".root = pkgs.runCommand "docroot" {} '' - mkdir -p "$out" - echo hello world > "$out/index.html" - ''; - }; - }) - ]; + specialisation.second-cert.configuration = {pkgs, ...}: { + systemd.targets."acme-finished-b.example.test" = {}; + systemd.services."acme-b.example.test" = { + wants = [ "acme-finished-b.example.test.target" ]; + before = [ "acme-finished-b.example.test.target" ]; + after = [ "nginx.service" ]; + }; + services.nginx.virtualHosts."b.example.test" = { + enableACME = true; + forceSSL = true; + locations."/".root = pkgs.runCommand "docroot" {} '' + mkdir -p "$out" + echo hello world > "$out/index.html" + ''; + }; + }; + specialisation.dns-01.configuration = {pkgs, config, nodes, lib, ...}: { + security.acme.certs."example.test" = { + domain = "*.example.test"; + dnsProvider = "exec"; + dnsPropagationCheck = false; + credentialsFile = with pkgs; writeText "wildcard.env" '' + EXEC_PATH=${dnsScript { inherit writeScript bash curl; dnsAddress = nodes.dnsserver.config.networking.primaryIPAddress; }} + ''; + user = config.services.nginx.user; + group = config.services.nginx.group; + }; + systemd.targets."acme-finished-example.test" = {}; + systemd.services."acme-example.test" = { + wants = [ "acme-finished-example.test.target" ]; + before = [ "acme-finished-example.test.target" "nginx.service" ]; + wantedBy = [ "nginx.service" ]; + }; + services.nginx.virtualHosts."c.example.test" = { + forceSSL = true; + sslCertificate = config.security.acme.certs."example.test".directory + "/cert.pem"; + sslTrustedCertificate = config.security.acme.certs."example.test".directory + "/full.pem"; + sslCertificateKey = config.security.acme.certs."example.test".directory + "/key.pem"; + locations."/".root = pkgs.runCommand "docroot" {} '' + mkdir -p "$out" + echo hello world > "$out/index.html" + ''; + }; + }; }; client = {nodes, lib, ...}: { @@ -161,46 +156,44 @@ in import ./make-test-python.nix { client.start() dnsserver.start() - letsencrypt.wait_for_unit("default.target") + acme.wait_for_unit("default.target") dnsserver.wait_for_unit("pebble-challtestsrv.service") client.succeed( - 'curl --data \'{"host": "acme-v02.api.letsencrypt.org", "addresses": ["${nodes.letsencrypt.config.networking.primaryIPAddress}"]}\' http://${nodes.dnsserver.config.networking.primaryIPAddress}:8055/add-a' + 'curl --data \'{"host": "acme.test", "addresses": ["${nodes.acme.config.networking.primaryIPAddress}"]}\' http://${nodes.dnsserver.config.networking.primaryIPAddress}:8055/add-a' ) client.succeed( - 'curl --data \'{"host": "standalone.com", "addresses": ["${nodes.acmeStandalone.config.networking.primaryIPAddress}"]}\' http://${nodes.dnsserver.config.networking.primaryIPAddress}:8055/add-a' + 'curl --data \'{"host": "standalone.test", "addresses": ["${nodes.acmeStandalone.config.networking.primaryIPAddress}"]}\' http://${nodes.dnsserver.config.networking.primaryIPAddress}:8055/add-a' ) - letsencrypt.start() + acme.start() acmeStandalone.start() - letsencrypt.wait_for_unit("default.target") - letsencrypt.wait_for_unit("pebble.service") + acme.wait_for_unit("default.target") + acme.wait_for_unit("pebble.service") with subtest("can request certificate with HTTPS-01 challenge"): acmeStandalone.wait_for_unit("default.target") - acmeStandalone.succeed("systemctl start acme-standalone.com.service") - acmeStandalone.wait_for_unit("acme-finished-standalone.com.target") + acmeStandalone.succeed("systemctl start acme-standalone.test.service") + acmeStandalone.wait_for_unit("acme-finished-standalone.test.target") client.wait_for_unit("default.target") - client.succeed("curl https://acme-v02.api.letsencrypt.org:15000/roots/0 > /tmp/ca.crt") - client.succeed( - "curl https://acme-v02.api.letsencrypt.org:15000/intermediate-keys/0 >> /tmp/ca.crt" - ) + client.succeed("curl https://acme.test:15000/roots/0 > /tmp/ca.crt") + client.succeed("curl https://acme.test:15000/intermediate-keys/0 >> /tmp/ca.crt") with subtest("Can request certificate for nginx service"): - webserver.wait_for_unit("acme-finished-a.example.com.target") + webserver.wait_for_unit("acme-finished-a.example.test.target") client.succeed( - "curl --cacert /tmp/ca.crt https://a.example.com/ | grep -qF 'hello world'" + "curl --cacert /tmp/ca.crt https://a.example.test/ | grep -qF 'hello world'" ) with subtest("Can add another certificate for nginx service"): webserver.succeed( - "/run/current-system/fine-tune/child-1/bin/switch-to-configuration test" + "/run/current-system/specialisation/second-cert/bin/switch-to-configuration test" ) - webserver.wait_for_unit("acme-finished-b.example.com.target") + webserver.wait_for_unit("acme-finished-b.example.test.target") client.succeed( - "curl --cacert /tmp/ca.crt https://b.example.com/ | grep -qF 'hello world'" + "curl --cacert /tmp/ca.crt https://b.example.test/ | grep -qF 'hello world'" ) with subtest("Can request wildcard certificates using DNS-01 challenge"): @@ -208,11 +201,11 @@ in import ./make-test-python.nix { "${switchToNewServer}" ) webserver.succeed( - "/run/current-system/fine-tune/child-2/bin/switch-to-configuration test" + "/run/current-system/specialisation/dns-01/bin/switch-to-configuration test" ) - webserver.wait_for_unit("acme-finished-example.com.target") + webserver.wait_for_unit("acme-finished-example.test.target") client.succeed( - "curl --cacert /tmp/ca.crt https://c.example.com/ | grep -qF 'hello world'" + "curl --cacert /tmp/ca.crt https://c.example.test/ | grep -qF 'hello world'" ) ''; -} +}) diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 7dd0f23df65..eff1752bbbf 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -22,7 +22,7 @@ let in { _3proxy = handleTest ./3proxy.nix {}; - acme = handleTestOn ["x86_64-linux"] ./acme.nix {}; + acme = handleTest ./acme.nix {}; atd = handleTest ./atd.nix {}; automysqlbackup = handleTest ./automysqlbackup.nix {}; avahi = handleTest ./avahi.nix {}; @@ -51,7 +51,9 @@ in cloud-init = handleTest ./cloud-init.nix {}; codimd = handleTest ./codimd.nix {}; consul = handleTest ./consul.nix {}; + cockroachdb = handleTestOn ["x86_64-linux"] ./cockroachdb.nix {}; containers-bridge = handleTest ./containers-bridge.nix {}; + containers-custom-pkgs.nix = handleTest ./containers-custom-pkgs.nix {}; containers-ephemeral = handleTest ./containers-ephemeral.nix {}; containers-extra_veth = handleTest ./containers-extra_veth.nix {}; containers-hosts = handleTest ./containers-hosts.nix {}; @@ -97,6 +99,7 @@ in fontconfig-default-fonts = handleTest ./fontconfig-default-fonts.nix {}; freeswitch = handleTest ./freeswitch.nix {}; fsck = handleTest ./fsck.nix {}; + gerrit = handleTest ./gerrit.nix {}; gotify-server = handleTest ./gotify-server.nix {}; grocy = handleTest ./grocy.nix {}; gitdaemon = handleTest ./gitdaemon.nix {}; @@ -120,12 +123,16 @@ in handbrake = handleTestOn ["x86_64-linux"] ./handbrake.nix {}; haproxy = handleTest ./haproxy.nix {}; hardened = handleTest ./hardened.nix {}; - hibernate = handleTest ./hibernate.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. + hibernate = handleTestOn ["x86_64-linux"] ./hibernate.nix {}; hitch = handleTest ./hitch {}; hocker-fetchdocker = handleTest ./hocker-fetchdocker {}; home-assistant = handleTest ./home-assistant.nix {}; hound = handleTest ./hound.nix {}; hydra = handleTest ./hydra {}; + hydra-db-migration = handleTest ./hydra/db-migration.nix {}; i3wm = handleTest ./i3wm.nix {}; icingaweb2 = handleTest ./icingaweb2.nix {}; iftop = handleTest ./iftop.nix {}; @@ -135,11 +142,13 @@ in initrd-network-ssh = handleTest ./initrd-network-ssh {}; initrdNetwork = handleTest ./initrd-network.nix {}; installer = handleTest ./installer.nix {}; + iodine = handleTest ./iodine.nix {}; ipv6 = handleTest ./ipv6.nix {}; jackett = handleTest ./jackett.nix {}; jellyfin = handleTest ./jellyfin.nix {}; jenkins = handleTest ./jenkins.nix {}; jirafeau = handleTest ./jirafeau.nix {}; + k3s = handleTest ./k3s.nix {}; kafka = handleTest ./kafka.nix {}; keepalived = handleTest ./keepalived.nix {}; kerberos = handleTest ./kerberos/default.nix {}; @@ -153,6 +162,7 @@ in # kubernetes.e2e should eventually replace kubernetes.rbac when it works #kubernetes.e2e = handleTestOn ["x86_64-linux"] ./kubernetes/e2e.nix {}; kubernetes.rbac = handleTestOn ["x86_64-linux"] ./kubernetes/rbac.nix {}; + latestKernel.hardened = handleTest ./hardened.nix { latestKernel = true; }; latestKernel.login = handleTest ./login.nix { latestKernel = true; }; ldap = handleTest ./ldap.nix {}; leaps = handleTest ./leaps.nix {}; @@ -164,6 +174,7 @@ in #logstash = handleTest ./logstash.nix {}; lorri = handleTest ./lorri/default.nix {}; magnetico = handleTest ./magnetico.nix {}; + magic-wormhole-mailbox-server = handleTest ./magic-wormhole-mailbox-server.nix {}; mailcatcher = handleTest ./mailcatcher.nix {}; mathics = handleTest ./mathics.nix {}; matomo = handleTest ./matomo.nix {}; @@ -195,7 +206,7 @@ in nat.standalone = handleTest ./nat.nix { withFirewall = false; }; ndppd = handleTest ./ndppd.nix {}; neo4j = handleTest ./neo4j.nix {}; - nesting = handleTest ./nesting.nix {}; + specialisation = handleTest ./specialisation.nix {}; netdata = handleTest ./netdata.nix {}; networking.networkd = handleTest ./networking.nix { networkd = true; }; networking.scripted = handleTest ./networking.nix { networkd = false; }; @@ -209,6 +220,7 @@ in nghttpx = handleTest ./nghttpx.nix {}; nginx = handleTest ./nginx.nix {}; nginx-etag = handleTest ./nginx-etag.nix {}; + nginx-pubhtml = handleTest ./nginx-pubhtml.nix {}; nginx-sso = handleTest ./nginx-sso.nix {}; nix-ssh-serve = handleTest ./nix-ssh-serve.nix {}; nixos-generate-config = handleTest ./nixos-generate-config.nix {}; @@ -233,9 +245,10 @@ in peerflix = handleTest ./peerflix.nix {}; pgjwt = handleTest ./pgjwt.nix {}; pgmanage = handleTest ./pgmanage.nix {}; - php-pcre = handleTest ./php-pcre.nix {}; + php = handleTest ./php {}; plasma5 = handleTest ./plasma5.nix {}; plotinus = handleTest ./plotinus.nix {}; + podman = handleTest ./podman.nix {}; postgis = handleTest ./postgis.nix {}; postgresql = handleTest ./postgresql.nix {}; postgresql-wal-receiver = handleTest ./postgresql-wal-receiver.nix {}; @@ -249,6 +262,7 @@ in prosodyMysql = handleTest ./xmpp/prosody-mysql.nix {}; proxy = handleTest ./proxy.nix {}; quagga = handleTest ./quagga.nix {}; + quorum = handleTest ./quorum.nix {}; rabbitmq = handleTest ./rabbitmq.nix {}; radarr = handleTest ./radarr.nix {}; radicale = handleTest ./radicale.nix {}; @@ -273,6 +287,7 @@ in snapper = handleTest ./snapper.nix {}; solr = handleTest ./solr.nix {}; spacecookie = handleTest ./spacecookie.nix {}; + spike = handleTest ./spike.nix {}; sonarr = handleTest ./sonarr.nix {}; strongswan-swanctl = handleTest ./strongswan-swanctl.nix {}; sudo = handleTest ./sudo.nix {}; @@ -286,6 +301,8 @@ in systemd-timesyncd = handleTest ./systemd-timesyncd.nix {}; systemd-networkd-vrf = handleTest ./systemd-networkd-vrf.nix {}; systemd-networkd = handleTest ./systemd-networkd.nix {}; + systemd-networkd-dhcpserver = handleTest ./systemd-networkd-dhcpserver.nix {}; + systemd-networkd-ipv6-prefix-delegation = handleTest ./systemd-networkd-ipv6-prefix-delegation.nix {}; systemd-nspawn = handleTest ./systemd-nspawn.nix {}; pdns-recursor = handleTest ./pdns-recursor.nix {}; taskserver = handleTest ./taskserver.nix {}; @@ -294,17 +311,21 @@ in timezone = handleTest ./timezone.nix {}; tinydns = handleTest ./tinydns.nix {}; tor = handleTest ./tor.nix {}; + # traefik test relies on docker-containers + traefik = handleTestOn ["x86_64-linux"] ./traefik.nix {}; transmission = handleTest ./transmission.nix {}; trac = handleTest ./trac.nix {}; trilium-server = handleTestOn ["x86_64-linux"] ./trilium-server.nix {}; trezord = handleTest ./trezord.nix {}; trickster = handleTest ./trickster.nix {}; + tuptime = handleTest ./tuptime.nix {}; udisks2 = handleTest ./udisks2.nix {}; upnp = handleTest ./upnp.nix {}; uwsgi = handleTest ./uwsgi.nix {}; vault = handleTest ./vault.nix {}; victoriametrics = handleTest ./victoriametrics.nix {}; virtualbox = handleTestOn ["x86_64-linux"] ./virtualbox.nix {}; + wg-quick = handleTest ./wireguard/wg-quick.nix {}; wireguard = handleTest ./wireguard {}; wireguard-generated = handleTest ./wireguard/generated.nix {}; wireguard-namespaces = handleTest ./wireguard/namespaces.nix {}; diff --git a/nixos/tests/caddy.nix b/nixos/tests/caddy.nix index fc10df0c79b..144d83179a1 100644 --- a/nixos/tests/caddy.nix +++ b/nixos/tests/caddy.nix @@ -20,35 +20,33 @@ import ./make-test-python.nix ({ pkgs, ... }: { } ''; - nesting.clone = [ - { - services.caddy.config = lib.mkForce '' - http://localhost { - gzip + specialisation.etag.configuration = { + services.caddy.config = lib.mkForce '' + http://localhost { + gzip - root ${ - pkgs.runCommand "testdir2" {} '' - mkdir "$out" - echo changed > "$out/example.html" - '' - } + root ${ + pkgs.runCommand "testdir2" {} '' + mkdir "$out" + echo changed > "$out/example.html" + '' } - ''; - } + } + ''; + }; - { - services.caddy.config = '' - http://localhost:8080 { - } - ''; - } - ]; + specialisation.config-reload.configuration = { + services.caddy.config = '' + http://localhost:8080 { + } + ''; + }; }; }; testScript = { nodes, ... }: let - etagSystem = "${nodes.webserver.config.system.build.toplevel}/fine-tune/child-1"; - justReloadSystem = "${nodes.webserver.config.system.build.toplevel}/fine-tune/child-2"; + etagSystem = "${nodes.webserver.config.system.build.toplevel}/specialisation/etag"; + justReloadSystem = "${nodes.webserver.config.system.build.toplevel}/specialisation/config-reload"; in '' url = "http://localhost/example.html" webserver.wait_for_unit("caddy") @@ -77,7 +75,7 @@ import ./make-test-python.nix ({ pkgs, ... }: { assert old_etag != new_etag, "Old ETag {} is the same as {}".format( old_etag, new_etag ) - + with subtest("config is reloaded on nixos-rebuild switch"): webserver.succeed( "${justReloadSystem}/bin/switch-to-configuration test >&2" diff --git a/nixos/tests/ceph-multi-node.nix b/nixos/tests/ceph-multi-node.nix index 90dd747525d..22fe5cada48 100644 --- a/nixos/tests/ceph-multi-node.nix +++ b/nixos/tests/ceph-multi-node.nix @@ -183,15 +183,15 @@ let monA.wait_until_succeeds("ceph -s | grep 'HEALTH_OK'") monA.succeed( - "ceph osd pool create multi-node-test 100 100", + "ceph osd pool create multi-node-test 128 128", "ceph osd pool ls | grep 'multi-node-test'", "ceph osd pool rename multi-node-test multi-node-other-test", "ceph osd pool ls | grep 'multi-node-other-test'", ) - monA.wait_until_succeeds("ceph -s | grep '1 pools, 100 pgs'") + monA.wait_until_succeeds("ceph -s | grep '1 pools, 128 pgs'") monA.succeed("ceph osd pool set multi-node-other-test size 2") monA.wait_until_succeeds("ceph -s | grep 'HEALTH_OK'") - monA.wait_until_succeeds("ceph -s | grep '100 active+clean'") + monA.wait_until_succeeds("ceph -s | grep '128 active+clean'") monA.fail( "ceph osd pool ls | grep 'multi-node-test'", "ceph osd pool delete multi-node-other-test multi-node-other-test --yes-i-really-really-mean-it", diff --git a/nixos/tests/ceph-single-node.nix b/nixos/tests/ceph-single-node.nix index 1a027e17836..01c4b413845 100644 --- a/nixos/tests/ceph-single-node.nix +++ b/nixos/tests/ceph-single-node.nix @@ -143,12 +143,12 @@ let monA.wait_until_succeeds("ceph -s | grep 'HEALTH_OK'") monA.succeed( - "ceph osd pool create single-node-test 100 100", + "ceph osd pool create single-node-test 128 128", "ceph osd pool ls | grep 'single-node-test'", "ceph osd pool rename single-node-test single-node-other-test", "ceph osd pool ls | grep 'single-node-other-test'", ) - monA.wait_until_succeeds("ceph -s | grep '1 pools, 100 pgs'") + monA.wait_until_succeeds("ceph -s | grep '1 pools, 128 pgs'") monA.succeed( "ceph osd getcrushmap -o crush", "crushtool -d crush -o decrushed", @@ -158,7 +158,7 @@ let "ceph osd pool set single-node-other-test size 2", ) monA.wait_until_succeeds("ceph -s | grep 'HEALTH_OK'") - monA.wait_until_succeeds("ceph -s | grep '100 active+clean'") + monA.wait_until_succeeds("ceph -s | grep '128 active+clean'") monA.fail( "ceph osd pool ls | grep 'multi-node-test'", "ceph osd pool delete single-node-other-test single-node-other-test --yes-i-really-really-mean-it", diff --git a/nixos/tests/cockroachdb.nix b/nixos/tests/cockroachdb.nix index 496283fddc7..d0cc5e19837 100644 --- a/nixos/tests/cockroachdb.nix +++ b/nixos/tests/cockroachdb.nix @@ -1,7 +1,7 @@ # This performs a full 'end-to-end' test of a multi-node CockroachDB cluster # using the built-in 'cockroach workload' command, to simulate a semi-realistic # test load. It generally takes anywhere from 3-5 minutes to run and 1-2GB of -# RAM (though each of 3 workers gets 1GB allocated) +# RAM (though each of 3 workers gets 2GB allocated) # # CockroachDB requires synchronized system clocks within a small error window # (~500ms by default) on each node in order to maintain a multi-node cluster. @@ -55,7 +55,7 @@ let { # Bank/TPC-C benchmarks take some memory to complete - virtualisation.memorySize = 1024; + virtualisation.memorySize = 2048; # Install the KVM PTP "Virtualized Clock" driver. This allows a /dev/ptp0 # device to appear as a reference clock, synchronized to the host clock. @@ -88,6 +88,8 @@ let services.cockroachdb.listen.address = myAddr; services.cockroachdb.join = lib.mkIf (joinNode != null) joinNode; + systemd.services.chronyd.unitConfig.ConditionPathExists = "/dev/ptp0"; + # Hold startup until Chrony has performed its first measurement (which # will probably result in a full timeskip, thanks to makestep) systemd.services.cockroachdb.preStart = '' @@ -95,7 +97,7 @@ let ''; }; -in import ./make-test.nix ({ pkgs, ...} : { +in import ./make-test-python.nix ({ pkgs, ...} : { name = "cockroachdb"; meta.maintainers = with pkgs.stdenv.lib.maintainers; [ thoughtpolice ]; @@ -110,17 +112,13 @@ in import ./make-test.nix ({ pkgs, ...} : { # there's otherwise no way to guarantee that node1 will start before the others try # to join it. testScript = '' - $node1->start; - $node1->waitForUnit("cockroachdb"); - - $node2->start; - $node2->waitForUnit("cockroachdb"); - - $node3->start; - $node3->waitForUnit("cockroachdb"); - - $node1->mustSucceed("cockroach sql --host=192.168.1.1 --insecure -e 'SHOW ALL CLUSTER SETTINGS' 2>&1"); - $node1->mustSucceed("cockroach workload init bank 'postgresql://root\@192.168.1.1:26257?sslmode=disable'"); - $node1->mustSucceed("cockroach workload run bank --duration=1m 'postgresql://root\@192.168.1.1:26257?sslmode=disable'"); + for node in node1, node2, node3: + node.start() + node.wait_for_unit("cockroachdb") + node1.succeed( + "cockroach sql --host=192.168.1.1 --insecure -e 'SHOW ALL CLUSTER SETTINGS' 2>&1", + "cockroach workload init bank 'postgresql://root@192.168.1.1:26257?sslmode=disable'", + "cockroach workload run bank --duration=1m 'postgresql://root@192.168.1.1:26257?sslmode=disable'", + ) ''; }) diff --git a/nixos/tests/common/acme/client/default.nix b/nixos/tests/common/acme/client/default.nix new file mode 100644 index 00000000000..80893da0252 --- /dev/null +++ b/nixos/tests/common/acme/client/default.nix @@ -0,0 +1,15 @@ +{ lib, nodes, pkgs, ... }: + +let + acme-ca = nodes.acme.config.test-support.acme.caCert; +in + +{ + security.acme = { + server = "https://acme.test/dir"; + email = "hostmaster@example.test"; + acceptTerms = true; + }; + + security.pki.certificateFiles = [ acme-ca ]; +} diff --git a/nixos/tests/common/letsencrypt/default.nix b/nixos/tests/common/acme/server/default.nix similarity index 81% rename from nixos/tests/common/letsencrypt/default.nix rename to nixos/tests/common/acme/server/default.nix index 110a2520971..1a0ee882572 100644 --- a/nixos/tests/common/letsencrypt/default.nix +++ b/nixos/tests/common/acme/server/default.nix @@ -1,27 +1,27 @@ # The certificate for the ACME service is exported as: # -# config.test-support.letsencrypt.caCert +# config.test-support.acme.caCert # # This value can be used inside the configuration of other test nodes to inject # the snakeoil certificate into security.pki.certificateFiles or into package # overlays. # # Another value that's needed if you don't use a custom resolver (see below for -# notes on that) is to add the letsencrypt node as a nameserver to every node +# notes on that) is to add the acme node as a nameserver to every node # that needs to acquire certificates using ACME, because otherwise the API host -# for letsencrypt.org can't be resolved. +# for acme.test can't be resolved. # # A configuration example of a full node setup using this would be this: # # { -# letsencrypt = import ./common/letsencrypt; +# acme = import ./common/acme/server; # # example = { nodes, ... }: { # networking.nameservers = [ -# nodes.letsencrypt.config.networking.primaryIPAddress +# nodes.acme.config.networking.primaryIPAddress # ]; # security.pki.certificateFiles = [ -# nodes.letsencrypt.config.test-support.letsencrypt.caCert +# nodes.acme.config.test-support.acme.caCert # ]; # }; # } @@ -33,9 +33,9 @@ # override networking.nameservers like this: # # { -# letsencrypt = { nodes, ... }: { -# imports = [ ./common/letsencrypt ]; -# networking.nameservers = [ +# acme = { nodes, lib, ... }: { +# imports = [ ./common/acme/server ]; +# networking.nameservers = lib.mkForce [ # nodes.myresolver.config.networking.primaryIPAddress # ]; # }; @@ -55,16 +55,16 @@ let snakeOilCerts = import ./snakeoil-certs.nix; - wfeDomain = "acme-v02.api.letsencrypt.org"; + wfeDomain = "acme.test"; wfeCertFile = snakeOilCerts.${wfeDomain}.cert; wfeKeyFile = snakeOilCerts.${wfeDomain}.key; - siteDomain = "letsencrypt.org"; + siteDomain = "acme.test"; siteCertFile = snakeOilCerts.${siteDomain}.cert; siteKeyFile = snakeOilCerts.${siteDomain}.key; pebble = pkgs.pebble; resolver = let - message = "You need to define a resolver for the letsencrypt test module."; + message = "You need to define a resolver for the acme test module."; firstNS = lib.head config.networking.nameservers; in if config.networking.nameservers == [] then throw message else firstNS; @@ -76,15 +76,16 @@ let httpPort = 80; tlsPort = 443; ocspResponderURL = "http://0.0.0.0:4002"; + strict = true; }; pebbleConfFile = pkgs.writeText "pebble.conf" (builtins.toJSON pebbleConf); pebbleDataDir = "/root/pebble"; in { - imports = [ ../resolver.nix ]; + imports = [ ../../resolver.nix ]; - options.test-support.letsencrypt.caCert = lib.mkOption { + options.test-support.acme.caCert = lib.mkOption { type = lib.types.path; description = '' A certificate file to use with the nodes attribute to @@ -98,7 +99,7 @@ in { resolver.enable = let isLocalResolver = config.networking.nameservers == [ "127.0.0.1" ]; in lib.mkOverride 900 isLocalResolver; - letsencrypt.caCert = snakeOilCerts.ca.cert; + acme.caCert = snakeOilCerts.ca.cert; }; # This has priority 140, because modules/testing/test-instrumentation.nix @@ -126,8 +127,7 @@ in { ''; serviceConfig = { # Required to bind on privileged ports. - User = "root"; - Group = "root"; + AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ]; }; }; }; diff --git a/nixos/tests/common/letsencrypt/mkcerts.nix b/nixos/tests/common/acme/server/mkcerts.nix similarity index 94% rename from nixos/tests/common/letsencrypt/mkcerts.nix rename to nixos/tests/common/acme/server/mkcerts.nix index e7ac2bae46b..2474019cbac 100644 --- a/nixos/tests/common/letsencrypt/mkcerts.nix +++ b/nixos/tests/common/acme/server/mkcerts.nix @@ -1,10 +1,9 @@ { pkgs ? import {} , lib ? pkgs.lib - -, domains ? [ "acme-v02.api.letsencrypt.org" "letsencrypt.org" ] +, domains ? [ "acme.test" ] }: -pkgs.runCommand "letsencrypt-snakeoil-ca" { +pkgs.runCommand "acme-snakeoil-ca" { nativeBuildInputs = [ pkgs.openssl ]; } '' addpem() { diff --git a/nixos/tests/common/letsencrypt/mkcerts.sh b/nixos/tests/common/acme/server/mkcerts.sh similarity index 100% rename from nixos/tests/common/letsencrypt/mkcerts.sh rename to nixos/tests/common/acme/server/mkcerts.sh diff --git a/nixos/tests/common/acme/server/snakeoil-certs.nix b/nixos/tests/common/acme/server/snakeoil-certs.nix new file mode 100644 index 00000000000..fd537c3260f --- /dev/null +++ b/nixos/tests/common/acme/server/snakeoil-certs.nix @@ -0,0 +1,171 @@ +# Generated via mkcert.sh in the same directory. +{ + ca.key = builtins.toFile "ca.key" '' + -----BEGIN PRIVATE KEY----- + MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQDCnVZGEn68ezXl + DWE5gjsCPqutR4nxw/wvIbAxB2Vk2WeQ6HGvt2Jdrz5qer2IXd76YtpQeqd+ffet + aLtMeFTr+Xy9yqEpx2AfvmEEcLnuiWbsUGZzsHwW7/4kPgAFBy9TwJn/k892lR6u + QYa0QS39CX85kLMZ/LZXUyClIBa+IxT1OovmGqMOr4nGASRQP6d/nnyn41Knat/d + tpyaa5zgfYwA6YW6UxcywvBSpMOXM0/82BFZGyALt3nQ+ffmrtKcvMjsNLBFaslV + +zYO1PMbLbTCW8SmJTjhzuapXtBHruvoe24133XWlvcP1ylaTx0alwiQWJr1XEOU + WLEFTgOTeRyiVDxDunpz+7oGcwzcdOG8nCgd6w0aYaECz1zvS3FYTQz+MiqmEkx6 + s4bj1U90I0kwUJbeWjjrGO7Y9Qq4i19GafDg7cAMn9eHCiNbNrPj6t/gfaVbCrbk + m3ZVjkvLTQ2mb2lv7+tVii45227iNPuNS6lx2FVlr/DXiRrOVfghPvoOxUfXzogJ + hZLV4Zki+ycbGQa5w8YMDYCv4c08dKA7AatVhNS60c1zgQNjuWF3BvocSySyGUon + VT6h1DYlJ9YAqgqNpedgNR9kpp034SMhB7dj9leB6LRMA+c1fG/T+1lDbkA+vope + pt4+30oDcCTYfEifl1HwqNw/bXDm1wIDAQABAoICABPbd/UYaAQVUk93yQbUKe81 + s9CvbvzTMYUhm9e02Hyszitz/D2gqZHDksvMkFA8u8aylXIGwdZfRglUmV/ZG1kk + kLzQ0xbvN/ilNUL9uYsETBMqtPly9YZloHnUNa5NqF+UVGJGk7GWz5WaLANybx3V + fTzDbfLl3TkVy0vt9UQbUkUfXyzwZNjXwmgIr8rcY9vasP90a3eXqRX3Tw1Wk6A4 + TzO8oB994O0WBO150Fc6Lhwvc72yzddENlLDXq8UAXtqq9mmGqJKnhZ+1mo3AkMw + q7P1JyCIxcAMm26GtRvLVljXV0x5640kxDrCin6jeeW/qWkJEW6dpmuZjR5scmLI + /9n8H+fGzdZH8bOPPotMy12doj3vJqvew3p0eIkmVctYMJKD0j/CWjvKJNE3Yx4O + Ls47X/dEypX6anR1HQUXcpd6JfRWdIJANo2Duaz+HYbyA88bHcJL9shFYcjLs3sX + R/TvnnKHvw/ud7XBgvLGwGAf/cDEuLI2tv+V7tkMGrMUv+gUJNZaJaCpdt+1iUwO + QFq8APyBNn6FFw54TwXWfSjfSNh3geIMLHuErYVu9MIXvB7Yhh+ZvLcfLbmckhAX + wb39RRHnCWvnw5Bm9hnsDhqfDsIoP+2wvUkViyHOmrKi8nSJhSk19C8AuQtSVcJg + 5op+epEmjt70GHt52nuBAoIBAQD2a4Ftp4QxWE2d6oAFI6WPrX7nAwI5/ezCbO/h + yoYAn6ucTVnn5/5ITJ8V4WTWZ4lkoZP3YSJiCyBhs8fN63J+RaJ/bFRblHDns1HA + 2nlMVdNLg6uOfjgUJ8Y6xVM0J2dcFtwIFyK5pfZ7loxMZfvuovg74vDOi2vnO3dO + 16DP3zUx6B/yIt57CYn8NWTq+MO2bzKUnczUQRx0yEzPOfOmVbcqGP8f7WEdDWXm + 7scjjN53OPyKzLOVEhOMsUhIMBMO25I9ZpcVkyj3/nj+fFLf/XjOTM00M/S/KnOj + RwaWffx6mSYS66qNc5JSsojhIiYyiGVEWIznBpNWDU35y/uXAoIBAQDKLj0dyig2 + kj1r3HvdgK4sRULqBQFMqE9ylxDmpJxAj6/A8hJ0RCBR57vnIIZMzK4+6K0l3VBJ + ukzXJHJLPkZ0Uuo2zLuRLkyjBECH6KYznyTkUVRn50Oq6IoP6WTCfd3Eg+7AKYY1 + VFo2iR8sxeSQQ+AylFy6QcQ1xPIW30Jj1/LFjrRdRggapPEekpJec0pEqhasT8rR + UFhRL2NdZnL5b7ZlsJc7gZKEJgNfxgzaCzloqLcjCgGpOhLKx0fFsNOqHcbIGMwG + 6wQCOyNghQJ6AZtRD5TYCJow92FchWjoTIaMJ8RjMKQmxpiwM6wQG4J78Hd3mbhf + q0hiQhPHaNbBAoIBAFeIeMFq8BpXM7sUwcURlI4lIx8Mgo33FVM7PzsFpfQyw9MR + 5w3p6vnjvd8X4aoHvVZxzw3hA0WwjiAmrKMJL/KK6d45rP2bDUBBAplvAgeLtTLt + 4tMLIwCF4HSgA55TIPQlaqO1FDC+M4BTSiMZVxS970/WnZPBEuNgzFDFZ+pvb4X6 + 3t40ZLNwAAQHM4IEPAFiHqWMKGZ9eo5BWIeEHnjHmfjqSDYfLJAVYk1WJIcMUzom + lA76CBC8CxW/I94AtcRhWuFUv/Z5/+OYEYLUxtuqPm+J+JrCmf4OJmWppT1wI2+p + V00BSeRVWXTm1piieM8ahF5y1hp6y3uV3k0NmKECggEBAMC42Ms3s6NpPSE+99eJ + 3P0YPJOkl7uByNGbTKH+kW89SDRsy8iGVCSe9892gm5cwU/4LWyljO3qp2qBNG2i + /DfP/bCk8bqPXsAZwoWK8DrO3bTCDepJWYhlx40pVkHLBwVXGdOVAXh+YswPY2cj + cB9QhDrSj52AKU9z36yLvtY7uBA3Wph6tCjpx2n0H4/m6AmR9LDmEpf5tWYV/OrA + SKKaqUw/y7kOZyKOtbKqr/98qYmpIYFF/ZVZZSZkVXcNeoZzgdOlR37ksVqLEsrj + nxu7wli/uItBj/FTLjyqcvjUUYDyO1KtwBuyPUPgzYhBIN2Rt9+K6WRQelwnToFL + 30ECggEBALzozykZj2sr3z8tQQRZuXLGotUFGsQCB8ikeqoeB8FbNNkC+qgflQGv + zLRB2KWOvnboc94wVgBJH43xG0HBibZnBhUO8/HBI/WlmyEj9KQ/ZskUK4GVZkB6 + r/81ASLwH+P/rqrLEjcp1SIPPevjzCWD9VYR5m/qPHLNxStwGSrPjtPzgaFxhq84 + Jl+YVmNqVlrOKYYfIPh8exPLiTti3wfM61pVYFv56PI2gd5ysMWYnuN+vK0sbmZh + cIWwykcKlODIngI7IzYqt8NuIJI0jrYyHgtUw4jaJzdF4mEOplGONxdz15jAGHtg + JUsBXFNz132nP4iIr3UKrPedQZijSi4= + -----END PRIVATE KEY----- + ''; + ca.cert = builtins.toFile "ca.cert" '' + -----BEGIN CERTIFICATE----- + MIIFDzCCAvegAwIBAgIUTRDYSWJvmlhwIR3pzVrIQfnboLEwDQYJKoZIhvcNAQEL + BQAwFjEUMBIGA1UEAwwLU25ha2VvaWwgQ0EwIBcNMjAwMzIyMjI1NjE3WhgPMjEy + MDAyMjcyMjU2MTdaMBYxFDASBgNVBAMMC1NuYWtlb2lsIENBMIICIjANBgkqhkiG + 9w0BAQEFAAOCAg8AMIICCgKCAgEAwp1WRhJ+vHs15Q1hOYI7Aj6rrUeJ8cP8LyGw + MQdlZNlnkOhxr7diXa8+anq9iF3e+mLaUHqnfn33rWi7THhU6/l8vcqhKcdgH75h + BHC57olm7FBmc7B8Fu/+JD4ABQcvU8CZ/5PPdpUerkGGtEEt/Ql/OZCzGfy2V1Mg + pSAWviMU9TqL5hqjDq+JxgEkUD+nf558p+NSp2rf3bacmmuc4H2MAOmFulMXMsLw + UqTDlzNP/NgRWRsgC7d50Pn35q7SnLzI7DSwRWrJVfs2DtTzGy20wlvEpiU44c7m + qV7QR67r6HtuNd911pb3D9cpWk8dGpcIkFia9VxDlFixBU4Dk3kcolQ8Q7p6c/u6 + BnMM3HThvJwoHesNGmGhAs9c70txWE0M/jIqphJMerOG49VPdCNJMFCW3lo46xju + 2PUKuItfRmnw4O3ADJ/XhwojWzaz4+rf4H2lWwq25Jt2VY5Ly00Npm9pb+/rVYou + Odtu4jT7jUupcdhVZa/w14kazlX4IT76DsVH186ICYWS1eGZIvsnGxkGucPGDA2A + r+HNPHSgOwGrVYTUutHNc4EDY7lhdwb6HEskshlKJ1U+odQ2JSfWAKoKjaXnYDUf + ZKadN+EjIQe3Y/ZXgei0TAPnNXxv0/tZQ25APr6KXqbePt9KA3Ak2HxIn5dR8Kjc + P21w5tcCAwEAAaNTMFEwHQYDVR0OBBYEFCIoeYSYjtMiPrmxfHmcrsZkyTpvMB8G + A1UdIwQYMBaAFCIoeYSYjtMiPrmxfHmcrsZkyTpvMA8GA1UdEwEB/wQFMAMBAf8w + DQYJKoZIhvcNAQELBQADggIBAHPdwOgAxyhIhbqFObNftW8K3sptorB/Fj6jwYCm + mHleFueqQnjTHMWsflOjREvQp1M307FWooGj+KQkjwvAyDc/Hmy7WgJxBg9p3vc+ + /Xf/e7ZfBl8rv7vH8VXW/BC1vVsILdFncrgTrP8/4psV50/cl1F4+nPBiekvvxwZ + k+R7SgeSvcWT7YlOG8tm1M3al4F4mWzSRkYjkrXmwRCKAiya9xcGSt0Bob+LoM/O + mpDGV/PMC1WAoDc1mMuXN2hSc0n68xMcuFs+dj/nQYn8uL5pzOxpX9560ynKyLDv + yOzQlM2VuZ7H2hSIeYOFgrtHJJwhDtzjmUNDQpQdp9Fx+LONQTS1VLCTXND2i/3F + 10X6PkdnLEn09RiPt5qy20pQkICxoEydmlwpFs32musYfJPdBPkZqZWrwINBv2Wb + HfOmEB4xUvXufZ5Ju5icgggBkyNA3PCLo0GZFRrMtvA7i9IXOcXNR+njhKa9246V + QQfeWiz05RmIvgShJYVsnZWtael8ni366d+UXypBYncohimyNlAD1n+Bh3z0PvBB + +FK4JgOSeouM4SuBHdwmlZ/H0mvfUG81Y8Jbrw0yuRHtuCtX5HpN5GKpZPHDE7aQ + fEShVB/GElC3n3DvgK9OJBeVVhYQgUEfJi4rsSxt3cdEI0NrdckUoZbApWVJ3CBc + F8Y7 + -----END CERTIFICATE----- + ''; + "acme.test".key = builtins.toFile "acme.test.key" '' + -----BEGIN RSA PRIVATE KEY----- + MIIJKAIBAAKCAgEAlgQTZjKfs3aHw0J993k7jFAs+hVRPf//zHMAiUkPKUYPTSl1 + TxS/bPbhWzSoom00j4SLhGGGhbd+lnvTg0uvKbxskgATfw5clbm1ZN+gx4DuxwjL + V3xIxpeSY+PKzs5z8w/k+AJh+zOPyXwH3ut3C+ogp1S/5IhmzV3a/yU/6k0zpGxj + N6ZPRTXFrz93I1pPeCkJz90l7tj+2uFc9xtM20NQX52f0Y2oShcG8fKdNZVzuHHk + ZXkrZIhou55/nRy2jKgFeD3GQQfa9rwPWrVybQ6tKMMkoazB/Unky9xcTI2LJarf + xgHDO9v9yFBvmR4UM8B3kM82NHoENtHaZ2mmiMGZzTEQlf8xwYyHFrqBFIVRWEUr + 7rr/O5Qr9gIN0T4u367HCexVYAKzbO2P9h75czzjMMoGkbXze9SMQ/ikrxEmwAHg + r1Xxh6iQYmgPNk8AR3d9+o2I7WJZMUYZARLnuhVr9BNXv510iqZTqX8lcyL5fEj3 + ST4Ab+H7rfevZt6NU26iJLBYAjrA2mSvH+wvkboxrgSS8xYPkOW8NLNEbbodzofI + pB+SaK53OIk0bj9c1YAgrSNER/TDTgDXrWUNrlfVZ/M7+AEdeU06wi7sVhVif6OB + D3OpgKSNjeE6TuJH80Pi5MWugSFBr792Xb6uhVoPiVOFN+qiGB6UkwBgSKkCAwEA + AQKCAgAmN7OZfZwh5DiCDhZ5TXFWNba/n16rJOTN+R5R20L5iNetGLrCAs8hu2N+ + ENRFTPzu8x14BEB5IF4niDRCZq2hPFeMemh9HfOIUV9c63vSV459NkhXaVpA/axV + tlqchQwVCB+U70Z28JPZCLgYmnQhnOvktTqNxhIqj5aTGbJGxpQ5d0Nvkfbv8tsB + 4nE/mGpWel39jqFzT+Tdbjx414Ok+GkpcsacZDJTbbpfOSfD1uc8PgepskzTt8y2 + v5JTPFVlUAjUsSgouQ+XfCGNQlx8XBjRIaXbal+hX4niRald91FTr0yC7UAHp+vn + dFZ586fB526OfbuZctxP+vZhEhFSseQKxHQ0tB8me81xH44daVNr9PPUM69FDT3j + ygJaUJjNEG3vVzePCDzhmxTmz2/rAClp77WTWziBWDoA6YWDDzhgNPrXWzLIbZIx + ue9ZbGEOh/u5ZzrEXxKCz9FjDe9wQu3TeYUe0M+ejzwWgn7zdWDvjjmtLUUuun2Y + wW7WANpu32qvB/V+qssw4O63tbRiwneRCnb8AF2ixgyWr6xyZwch4kacv1KMiixf + gO/5GTj7ba5GcdGoktJb29cUEgz13yPd106RsHK4vcggFxfMbOVauNRIo6ddLwyS + 8UMxLf2i2cToOLkHZrIb8FgimmzRoBd3yYzwVJBydiVcsrHQAQKCAQEAxlzFYCiQ + hjEtblGnrkOC7Hx6HvqMelViOkGN8Y9VczG4GhwntmSE2nbpaAKhFBGdLfuSI3tJ + Lf24f0IGgAhzPmpo2TjbxPO3YSKFTH71fznVBhtQ1iSxwZ1InXktnuhot6VSDx6A + sbHSy1hMFy3nj+Zj5+fQ89tclzBzG9bCShaauO39KrPMwKi6CYoYdGhXBC3+OpHY + zBNvmDTxG2kW8L42rlf14EH4pAlgKs4eeZbpcbZ6fXURP2hToHJ8swyKw/1p12WA + cc19BKFJXL8nNP4uCf/fI0mVYpytz5KwUzG+z+umDqk+RRCH4mNB28xvEEuEyp/e + /C5Is+WrlDAA6QKCAQEAwZsK4AJ/w4Xf4Q/SsnZJO9bfP1ejJjzKElt8rG28JXeb + +FjykZZ6vw2gt2Boest2n9N4fBwaRkaHVtVS4iAmaDXozTlcvCLs2rVjPSguuQtW + 80CKg6+dux+6gFN8IGzDCiX3pWUnhhiXvCcRYEcvgpH6GA5vuCNrXrjH0JFC0kef + aaDMGMTbzhc2IIRztmWU4v8YJSSy5KOkIQLWO+7u9aGx9IqT5/z3gx3XrItyl0Bk + aQmZEh7JOSyhmGhhf5LdeTLu2YgRw3/tzS+lPMX3+UPw99k9MdTOFn2pww5AdRmg + aBIzV+/LBYG0pPRl0D8/6yzGVBPuUDQpmK9Z3gsxwQKCAQEAnNkMZN2Ocd1+6+V7 + LmtJog9HTSmWXMEZG7FsOJ661Yxx44txx2IyPsCaDNlPXxwSaiKrSo0Yr1oZQd8G + XsTPw4HGiETSWijQTulJ99PH8SLck6iTwdBgEhV5LrN75FQnQVdizHu1DUzrvkiC + Wi29FWb6howiCEDjNNVln5SwKn83NpVQgyyK8ag4+oQMlDdQ3wgzJ0Ld53hS3Eq4 + f5EYR6JQgIki7YGcxrB3L0GujTxMONMuhfdEfRvUTGFawwVe0FyYDW7AIrx2Z2vV + I5YuvVNjOhrt6OwtSD1VnnWCITaLh8LwmlUu3NOWbudHUzKSe5MLXGEPo95BNKad + hl5yyQKCAQBNo0gMJtRnawMpdLfwewDJL1SdSR6S0ePS0r8/Qk4l1D5GrByyB183 + yFY/0zhyra7nTt1NH9PlhJj3WFqBdZURSzUNP0iR5YuH9R9Twg5ihEqdB6/EOSOO + i521okTvl83q/ui9ecAMxUXr3NrZ+hHyUWmyRe/FLub6uCzg1a+vNauWpzXRZPgk + QCijh5oDdd7r3JIpKvtWNs01s7aHmDxZYjtDrmK7sDTtboUzm0QbpWXevUuV+aSF + +gDfZlRa3WFVHfisYSWGeYG6O7YOlfDoE7fJHGOu3QC8Ai6Wmtt8Wgd6VHokdHO8 + xJPVZnCBvyt5up3Zz5hMr25S3VazdVfBAoIBAHVteqTGqWpKFxekGwR0RqE30wmN + iIEwFhgOZ8sQ+6ViZJZUR4Nn2fchn2jVwF8V8J1GrJbTknqzAwdXtO3FbgfmmyF2 + 9VbS/GgomXhA9vJkM4KK3Iwo/y/nE9hRhtzuVE0QPudz2fyfaDgnWjcNM59064tH + 88361LVJm3ixyWSBD41UZ7NgWWJX1y2f073vErsfcPpavF5lhn1oSkQnOlgMJsnl + 24qeuzAgTWu/2rFpIA2EK30Bgvsl3pjJxHwyNDAgklV7C783LIoAHi7VO7tzZ6iF + dmD5XLfcUZc3eaB7XehNQKBXDGLJeI5AFmjsHka5GUoitkU2PFrg/3+nJmg= + -----END RSA PRIVATE KEY----- + ''; + "acme.test".cert = builtins.toFile "acme.test.cert" '' + -----BEGIN CERTIFICATE----- + MIIEoTCCAokCAgKaMA0GCSqGSIb3DQEBCwUAMBYxFDASBgNVBAMMC1NuYWtlb2ls + IENBMCAXDTIwMDMyMjIyNTYxOFoYDzIxMjAwMjI3MjI1NjE4WjAUMRIwEAYDVQQD + DAlhY21lLnRlc3QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCWBBNm + Mp+zdofDQn33eTuMUCz6FVE9///McwCJSQ8pRg9NKXVPFL9s9uFbNKiibTSPhIuE + YYaFt36We9ODS68pvGySABN/DlyVubVk36DHgO7HCMtXfEjGl5Jj48rOznPzD+T4 + AmH7M4/JfAfe63cL6iCnVL/kiGbNXdr/JT/qTTOkbGM3pk9FNcWvP3cjWk94KQnP + 3SXu2P7a4Vz3G0zbQ1BfnZ/RjahKFwbx8p01lXO4ceRleStkiGi7nn+dHLaMqAV4 + PcZBB9r2vA9atXJtDq0owyShrMH9SeTL3FxMjYslqt/GAcM72/3IUG+ZHhQzwHeQ + zzY0egQ20dpnaaaIwZnNMRCV/zHBjIcWuoEUhVFYRSvuuv87lCv2Ag3RPi7frscJ + 7FVgArNs7Y/2HvlzPOMwygaRtfN71IxD+KSvESbAAeCvVfGHqJBiaA82TwBHd336 + jYjtYlkxRhkBEue6FWv0E1e/nXSKplOpfyVzIvl8SPdJPgBv4fut969m3o1TbqIk + sFgCOsDaZK8f7C+RujGuBJLzFg+Q5bw0s0Rtuh3Oh8ikH5Jornc4iTRuP1zVgCCt + I0RH9MNOANetZQ2uV9Vn8zv4AR15TTrCLuxWFWJ/o4EPc6mApI2N4TpO4kfzQ+Lk + xa6BIUGvv3Zdvq6FWg+JU4U36qIYHpSTAGBIqQIDAQABMA0GCSqGSIb3DQEBCwUA + A4ICAQBCDs0V4z00Ze6Ask3qDOLAPo4k85QCfItlRZmwl2XbPZq7kbe13MqF2wxx + yiLalm6veK+ehU9MYN104hJZnuce5iEcZurk+8A+Pwn1Ifz+oWKVbUtUP3uV8Sm3 + chktJ2H1bebXtNJE5TwvdHiUkXU9ywQt2FkxiTSl6+eac7JKEQ8lVN/o6uYxF5ds + +oIZplb7bv2XxsRCzq55F2tJX7fIzqXrSa+lQTnfLGmDVMAQX4TRB/lx0Gqd1a9y + qGfFnZ7xVyW97f6PiL8MoxPfd2I2JzrzGyP/igNbFOW0ho1OwfxVmvZeS7fQSc5e + +qu+nwnFfl0S4cHRif3G3zmz8Ryx9LM5TYkH41qePIHxoEO2sV0DgWJvbSjysV2S + EU2a31dJ0aZ+z6YtZVpHlujKMVzxVTrqj74trS4LvU5h/9hv7e1gjYdox1TO0HMK + mtDfgBevB21Tvxpz67Ijf31HvfTmCerKJEOjGnbYmyYpMeMNSONRDcToWk8sUwvi + OWa5jlUFRAxgXNM09vCTPi9aRUhcFqACqfAd6I1NqGVlfplLWrc7SWaSa+PsLfBf + 4EOZfk8iEKBVeYXNjg+CcD8j8yk/oEs816/jpihIk8haCDRWYWGKyyGnwn6OQb8d + MdRO2b7Oi/AAmEF3jMlICqv286GIYK5qTKk2/CKHlOLPnsWEuA== + -----END CERTIFICATE----- + ''; +} diff --git a/nixos/tests/common/letsencrypt/common.nix b/nixos/tests/common/letsencrypt/common.nix deleted file mode 100644 index bd559c8dacc..00000000000 --- a/nixos/tests/common/letsencrypt/common.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ lib, nodes, pkgs, ... }: let - letsencrypt-ca = nodes.letsencrypt.config.test-support.letsencrypt.caCert; -in { - networking.nameservers = [ - nodes.letsencrypt.config.networking.primaryIPAddress - ]; - - security.acme.acceptTerms = true; - security.acme.email = "webmaster@example.com"; - - security.pki.certificateFiles = [ letsencrypt-ca ]; -} diff --git a/nixos/tests/common/letsencrypt/snakeoil-certs.nix b/nixos/tests/common/letsencrypt/snakeoil-certs.nix deleted file mode 100644 index ca4f71ae688..00000000000 --- a/nixos/tests/common/letsencrypt/snakeoil-certs.nix +++ /dev/null @@ -1,254 +0,0 @@ -# Generated via mkcert.sh in the same directory. -{ - ca.key = builtins.toFile "ca.key" '' - -----BEGIN PRIVATE KEY----- - MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQDQ0b23I1srJZwR - 2MMdvSJK5pcwLfrXU+4gEZEnWNyT8yeVweya+8vmNNOlvK3zxf+ZiY/7aQ0RZJMO - h2+VdlgHmr2QKhQTf1HwfZA/06FolD3/DcS+DMJMSTVr179/XLndeVVZUqU7tjvB - AWKSIS8H2hSF1UOPi9gBDR8MwCP6Qgj8WYhbkt9q47/lO96qAmm6U1F+Q7RYM9ZQ - IWI81N0Ms5wJocg7n6S19iV66ePh7APapZFYup61gFGWfahmA217ELIZd56n8yjO - F0epb9sC0XpYCDRrYKBWLqPiv+6wvdZtZvALItyIv08ZwXlBkFg3LbAAhPnf0Vxz - pYysQmyyyzkgy252n+Sie0kx+B4qm6fOkpfgYlPSVTb2dXx/be/SE08u0a9FO0fZ - pkByWEZJUUwngsJgLUa7MorQf3avxozfC25XqvzbieZfSXlA7mOUclZbC/WUFpyj - MlyJU2eCQ8wSwsPXl91oxcYlOkuVLgd41gr9pGXQSuKIkrgbfkftjg2tDC+7g7O8 - qrdF42FjbZjIx/74AasmsGh4GTQtiSkvEnTstioC6aCV44DlJWbBIMvkyawubjUl - Ppij0H66Y9Q4tEc/ktc7oGQfqqluyLb43TeobTPHALsNeAYb39rMtBo5DDCUc81s - fuDMhMr/oYXKrFstUsg5AY6mJaRG0QIDAQABAoICAF5ZVfmoPOoKzTB3GvmV2iez - dj4rmDmwT1gn98iqasdiRtFwVGJWQHNcDQDGdmY9YNZThD2Y4nGoWpVm9jC2zuFo - thusF3QTw8cARKvCCBzDVhumce1YwHVNYpi+W2TFValOyBRathN7rBXxdUMHQUOv - 8jPh/uudyNP4xL2zFs5dBchW/7g4bT/TdYGyglGYU4L/YEPHfXWYvk1oOAW6O8Ig - aPElKt5drEMW2yplATSzua4RvtEzSMBDIRn43pxxEgdXrNC67nF9+ULc2+Efi/oD - Ad9CncSiXO9zlVK/W655p6e4qd6uOqyCm8/MTegkuub7eplRe8D3zGjoNN4kCQ4S - rckVvIDDb6vZk7PKx9F7GWIqaG/YvFFFKO1MrAZg7SguFA6PtGOYAFocT03P6KXT - l2SnZQWKyxUAlh4tOBGlRFgGCx/krRIKbgNYn/qk/ezcRl8c7GpOPh+b7Icoq7u3 - l4tIVBBHqS8uGgtyi+YwuJeht2MV1aEcSkykKLh2ipp8tb6spORJUkhjawDjvxeQ - GztN30Xh2riTXYZ0HExVTtJa8jyvFyp/97ptPIJXaVt2A2KIS3sBFHKnpY+/OrQg - uUauYgi13WFHsKOxZL9GYGk7Ujd8bw4CEcJFxKY7bhpGVI6Du7NRkUDWN0+0yusI - 2szCJ7+ZqJkrc1+GrI/RAoIBAQDseAEggOLYZkpU2Pht15ZbxjM9ayT2ANq1+RTu - LjJx4gv2/o/XJCfMZCL0b9TJqtYeH+N6G9oDRJ99VIhUPedhWSYdj9Qj+rPd++TS - bp+MoSjmfUfxLTDrmFHL7ppquAE65aDy3B5c+OCb0I4X6CILUf0LynBzgl4kdrzN - U6BG3Mt0RiGPojlPV82B9ZUF/09YAz7BIz9X3KMhze1Gps5OeGuUnc9O2IAJYkrj - ur9H2YlNS4w+IjRLAXSXUqC8bqPZp6WTo1G/rlyAkIRXCGN90uk5JQvXoj9immFO - WaylbdcNG3YcGutreYeZL/UIWF6zCdc6pYG0cCBJS6S/RN7FAoIBAQDiERrLuUbV - 3fx/a8uMeZop6hXtQpF7jlFxqUmza7QSvBuwks4QVJF+qMSiSvKDkCKqZD4qVf4N - TMxEj5vNR0PbnmDshyKJNGVjEauKJSb65CFDUcL1eR/A/oJvxiIdN1Z4cPrpnRux - /zIfPuYfYHpdz52buxxmlD7bfwYmVKVpnzjB9z0I1CasZ5uqB0Z8H0OLyUu8S4ju - RfkKBDMgVl2q96i8ZvX4C1b7XuimIUqv4WHq5+ejcYirgrYtUbBIaDU3/LORcJdy - /K76L1/up70RTDUYYm/HKaRy+vMTpUsZJ7Qbh0hrvQkUvNQ1HXjprW2AePIYi33N - h3mb1ulqw4idAoIBAQCsn0YjVjNDShkFK4bfmLv4rw2Ezoyi0SjYIsb2wN6uaBfX - 7SlQIuKywH8L9f9eYMoCH8FNyLs0G4paUbVb2fzpAc1jUzXINiHL8TCvtXXfkV5s - NBSqqRTHR+CegMZVFZJATpVZ9PptYHmHBY5VQW5o2SdizhudFxRmhg95zIx6boBP - l0q0sfYoR66MKpzpTeG8HFJZZ8O7/iNQcCXAp9B/VEUkrrdBlaaSMyD8cb1lVBZ5 - SKdOTGXkQ2G7feQ86n/OSiYDSvxIc56vc9BIQKVwmuEKiFLGzXh8ILrcGXaBJVgS - B3QHPFeTk5o7Z9j2iJxJEuv9sginkhrfpsrTnhEJAoIBACkrUkTtjd/e2F/gIqaH - crLVZX7a06G7rktTuA9LuvR6e1Rxt8Mzk3eMhprDqVyaQCXlsYiGNoj3hm+p84az - xsDVG/OXPIveFeSv0ByNXYbtSr12w1lu4ICGGP0ACTBm5oFymc83hFarEdas3r2y - FTbGW36D2c04jCXvARCz85fDnlN8kgnskMpu5+NUBdsO2n83fmphGyPBbHQNhb4K - 3G4JQhplab/tWL7YbufqQi67jdh4uS+Duo75c/HW4ZKeH6r9gzomVf5j0/3N6NuO - gpkG1tiE/LQ5ejBSUTgvrvh6yYsF3QN53pB/PuoZXu63Xay62ePsa1GlrVjbD5EY - 4OUCggEAJFr7F7AQLMJTAxHFLCsZZ0ZZ+tXYclBC4eHPkZ6sD5jvL3KIpW3Q7jXk - oIoD/XEX4B+Qe5M3jQJ/Y5ZJETHcgfcHZbDpCKN2WHQgldQbAJiFd4GY1OegdVsr - 7TC8jh3Q2eYjzL8u4z7LSNI6aQSv1eWE7S1Q5j/sX/YYDR4W3CBMeIUpqoDWpn87 - czbIRyA/4L0Y/HLpg/ZCbvtJZbsQwYXhyqfbjlm4BRQ6JiC5uEBKvuDRUXToBJta - JU8XMm+Ae5Ogrw7P6hg68dWpagfjb7UZ7Zxv+VDsbrU6KsDcyGCAwrrRZou/6KUG - Eq4OVTSu/s8gmY94tgbjeOaLUPEPmg== - -----END PRIVATE KEY----- - ''; - ca.cert = builtins.toFile "ca.cert" '' - -----BEGIN CERTIFICATE----- - MIIFDzCCAvegAwIBAgIUU9rbCLTuvaI6gjSsFsJJjfLWIX8wDQYJKoZIhvcNAQEL - BQAwFjEUMBIGA1UEAwwLU25ha2VvaWwgQ0EwIBcNMTkxMDE4MDc1NDEyWhgPMjEx - OTA5MjQwNzU0MTJaMBYxFDASBgNVBAMMC1NuYWtlb2lsIENBMIICIjANBgkqhkiG - 9w0BAQEFAAOCAg8AMIICCgKCAgEA0NG9tyNbKyWcEdjDHb0iSuaXMC3611PuIBGR - J1jck/MnlcHsmvvL5jTTpbyt88X/mYmP+2kNEWSTDodvlXZYB5q9kCoUE39R8H2Q - P9OhaJQ9/w3EvgzCTEk1a9e/f1y53XlVWVKlO7Y7wQFikiEvB9oUhdVDj4vYAQ0f - DMAj+kII/FmIW5LfauO/5TveqgJpulNRfkO0WDPWUCFiPNTdDLOcCaHIO5+ktfYl - eunj4ewD2qWRWLqetYBRln2oZgNtexCyGXeep/MozhdHqW/bAtF6WAg0a2CgVi6j - 4r/usL3WbWbwCyLciL9PGcF5QZBYNy2wAIT539Fcc6WMrEJssss5IMtudp/kontJ - MfgeKpunzpKX4GJT0lU29nV8f23v0hNPLtGvRTtH2aZAclhGSVFMJ4LCYC1GuzKK - 0H92r8aM3wtuV6r824nmX0l5QO5jlHJWWwv1lBacozJciVNngkPMEsLD15fdaMXG - JTpLlS4HeNYK/aRl0EriiJK4G35H7Y4NrQwvu4OzvKq3ReNhY22YyMf++AGrJrBo - eBk0LYkpLxJ07LYqAumgleOA5SVmwSDL5MmsLm41JT6Yo9B+umPUOLRHP5LXO6Bk - H6qpbsi2+N03qG0zxwC7DXgGG9/azLQaOQwwlHPNbH7gzITK/6GFyqxbLVLIOQGO - piWkRtECAwEAAaNTMFEwHQYDVR0OBBYEFAZcEiVphGxBT4OWXbM6lKu96dvbMB8G - A1UdIwQYMBaAFAZcEiVphGxBT4OWXbM6lKu96dvbMA8GA1UdEwEB/wQFMAMBAf8w - DQYJKoZIhvcNAQELBQADggIBAGJ5Jnxq1IQ++IRYxCE7r7BqzzF+HTx0EWKkSOmt - eSPqeOdhC26hJlclgGZXAF/Xosmn8vkSQMHhj/jr4HI0VF9IyvDUJm8AKsnOgu/7 - DUey3lEUdOtJpTG9NyTOcrzxToMJ+hWlFLZKxx2dk4FLIvTLjmo1VHM97Bat7XYW - IrL9RRIZ25V+eCYtlR7XYjceGFQ0rCdp8SFIQwC6C/AH2tV3b1AJFsND9PcoLu7c - //fH+WUQCcD/N0grdC/QCX7AFWzd4rKQ8gjfND4TSYFTSDwW10Mud4kAVhY2P1sY - Y3ZpnxWrCHbIZMbszlbMyD+cjsCBnNvOtYGm7pDut/371rllVcB/uOWYWMCtKPoj - 0elPrwNMrK+P+wceNBCRQO+9gwzB589F2morFTtsob/qtpAygW8Sfl8M+iLWXeYS - c3LBLnj0TpgXKRWg7wgIWKSZx9v6pgy70U0qvkjNS1XseUCPf7hfAbxT3xF+37Dw - zZRwF4WAWqdnJoOey21mgc+a2DQzqtykA6KfHgCqNFfDbQXPXvNy25DDThbk+paX - G2M2EWtr+Nv9s/zm7Xv/pOXlgMFavaj+ikqZ4wfJf6c/sMOdZJtMA4TsYtAJgbc8 - ts+0eymTq4v5S8/fW51Lbjw6hc1Kcm8k7NbHSi9sEjBfxFLTZNQ5eb4NGr9Od3sU - kgwJ - -----END CERTIFICATE----- - ''; - "acme-v02.api.letsencrypt.org".key = builtins.toFile "acme-v02.api.letsencrypt.org.key" '' - -----BEGIN RSA PRIVATE KEY----- - MIIJKQIBAAKCAgEApny0WhfDwEXe6WDTCw8qBuMAPDr88pj6kbhQWfzAW2c0TggJ - Etjs9dktENeTpSl14nnLVMiSYIJPYY3KbOIFQH1qDaOuQ7NaOhj9CdMTm5r9bl+C - YAyqLIMQ9AAZDhUcQjOy3moiL7ClFHlkFYuEzZBO9DF7hJpfUFIs0Idg50mNoZh/ - K/fb4P2skNjfCjjomTRUmZHxT6G00ImSTtSaYbN/WHut1xXwJvOoT1nlEA/PghKm - JJ9ZuRMSddUJmjL+sT09L8LVkK8CKeHi4r58DHM0D0u8owIFV9qsXd5UvZHaNgvQ - 4OAWGukMX+TxRuqkUZkaj84vnNL+ttEMl4jedw0ImzNtCOYehDyTPRkfng5PLWMS - vWbwyP8jDd2578mSbx5BF7ypYX366+vknjIFyZ5WezcC1pscIHxLoEwuhuf+knN+ - kFkLOHeYbqQrU6mxSnu9q0hnNvGUkTP0a/1aLOGRfQ5C/pxpE/Rebi8qfM/OJFd4 - mSxGL93JUTXWAItiIeBnQpIne65/Ska9dWynOEfIb0okdet3kfmNHz3zc17dZ5g4 - AdOSCgHAlQgFt/Qd8W6xXUe4C5Mfv2ctxRrfQhDwtB6rMByPwzImnciC2h3vCwD3 - vS/vjUyWICyhZyi2LZDUQz+sCKBXCYYcYh8ThFO40j5x1OnYMq7XQvyl8QkCAwEA - AQKCAgBSAfdssWwRF9m3p6QNPIj9H3AMOxpB/azffqTFzsSJwYp4LWkayZPfffy+ - 4RGvN38D8e6ActP3ifjEGu3tOGBR5fUJhujeHEiDea+a2Ug9S9kuNwmnelWQ23bM - Wgf9cdSbn4+qEymHyEFolmsAWdsuzri1fHJVXR06GWBNz4GiLA8B3HY4GD1M1Gfe - aZVkGagpXyeVBdiR2xuP5VQWVI8/NQWzdiipW/sRlNABVkyI3uDeN4VzYLL3gTeE - p021kQz4DSxIjHZacHpmWwhBnIbKMy0fo7TlrqcnIWXqTwv63Q9Zs/RN8NOyqb0Y - t1NKFWafcwUsdOnrG9uv/cVwF1FNE8puydaOi8rL1zAeK89JH8NRQ02wohR9w8qy - b2tB6DyGMtuqBt8Il6GA16ZoEuaXeayvlsvDEmG1cS9ZwBvfgrVPAmlm2AYdIf5B - RHIJu4BJC6Nn2ehVLqxx1QDhog3SOnAsCmcfg5g/fCwxcVMLIhODFoiKYGeMitDG - Q4e5JKcOg+RR8PT/n4eY4rUDBGtsR+Nw8S2DWgXmSufyfDtKCjZB4IuLWPS29tNh - zF6iYfoiTWzrSs/yqPSKIFpv+PWZwkKSvjdxia6lSBYYEON4W2QICEtiEs+SvcG4 - 0eIqWM+rRmPnJyMfGqX6GCs3rHDQB2VNJPBCYPQalJ/KwZumAQKCAQEA0ezM6qPJ - 1JM/fddgeQ50h0T9TRXVUTCISxXza+l4NuFt1NdqUOdHsGtbL1JR4GaQUG8qD1/P - R39YgnQEQimxpmYLCZkobkwPxTZm9oiMXpcJrlN4PB5evaWShRSv3mgigpt3Wzml - Td+2R9RoA/hvF/wEyIvaWznYOyugBC7GXs20dNnZDULhUapeQu7r6JvgmxBOby7S - 0FbhGplBiSDETzZURqzH/GMJKaJtNgyyVf3Hbg4mZAQDWoBRr+8HxsNbDkxP6e91 - QrPHy2VZFiaTmJfoxRhyMTn7/JZaLJaUHDOniOsdMj/V7vMCgpfBqh5vR8bKzuPy - ZINggpcFPp1IYQKCAQEAywc7AQoktMBCru/3vzBqUveXbR3RKzNyZCTH5CMm3UNH - zmblFgqF2nxzNil21GqAXzSwZk5FyHbkeD3yvEZm+bXzsZTDNokAwoiTgyrr2tf8 - GLMlCHHl5euIh1xHuyg/oKajVGOoXUXK8piqiDpQKd3Zwc6u2oyQlh+gYTPKh+7i - ilipkYawoE6teb6JUGpvU+d27INgNhB2oDEXY3pG2PbV+wv229ykSZxh1sJUdDwT - a8eTg+3pCGXtOZiJoQTFwKUlD2WYTGqS4Gx6dIJco5k+ZikGNST1JGE64Jl4MZdI - rtyvpcYblh5Q14sJGvp4kWYS9tjEM8pA+4Z9th3JqQKCAQEAkidH0+UM1A9gmQCm - jiHeR39ky5Jz3f7oJT63J15479yrVxBTWNhtNQrJhXzOvGkr+JQsuF+ANMsYmFql - zFqy8KMC9D/JwmD6adeif+o5sHF/r/s1LsYGOAtao4TvnOzrefs7ciwERt+GTSQ4 - 9uq0jgJMYkPcVr9DKI8K7V6ThdW52dECKRVzQiRXVEp7vIsqKUuFECuNYrfaKWai - FhLWGkA9FKee5L0e1/naB1N3ph72Bk2btO6GVzAXr2HADEZe0umWiczJ2xLH+3go - Oh/JiufYi8ClYFh6dDVJutlrbOcZsV3gCegfzikqijmWABcIavSgpsJVNF2zh7gV - Uq62gQKCAQAdO2FHeQpn6/at8WceY/4rC/MFhvGC4tlpidIuCtGhsfo4wZ/iWImF - N73u4nF1jBAHpTJwyHxLrLKgjWrRqOFSutvniZ/BzmAJolh63kcvL0Hg3IpMePm8 - 7PivZJ3/WIAwxU1m7SJkq5PY8ho7mwnHvWWI/hU26l42/z68QBS9FawQd0uS5G2x - 5yIbEU/8ABcfYYhB7XiA0EYEMo1HiWeB/ag5iTN13ILbBmUf4sL+KVgygH3A1RRk - XSiWzluij2lZn22ClgIjnoSfQ38uH0bvVzUgyG9YX4XcQxOTGwWvPjT82FGB8NAw - ARVqs14QQFfzt1qrp/I38rsAfBDFk+xhAoIBAQCEKNk/oJcy9t/jMIbLcn6z3aCc - Fn8GBPSXtFj0t6weN5lHof+cggw4owMFWQQyAXxo/K6NnKNydMPZ5qjtLsHNpbpQ - aT1Or0/1YR1bJ8Lo82B4QM++7F761GWQPvE/tyrfPkfkWl92ITIpmnlw4wycRlkq - 9anI2fnj1nIZwixzE2peb6PcsZU2HOs9uZ5RRd9wia696I7IpNibs4O4J2WTm4va - +NeYif3V2g9qwgT0Va0c9/Jlg3b58R0vA8j/VCU5I0TyXpkB3Xapx+pvEdZ3viUL - mXZaVotmWjgBXGDtd2VQg2ZiAMXHn3RzXSgV4Z+A/XacRs75h9bNw0ZJYrz1 - -----END RSA PRIVATE KEY----- - ''; - "acme-v02.api.letsencrypt.org".cert = builtins.toFile "acme-v02.api.letsencrypt.org.cert" '' - -----BEGIN CERTIFICATE----- - MIIEtDCCApwCAgKaMA0GCSqGSIb3DQEBCwUAMBYxFDASBgNVBAMMC1NuYWtlb2ls - IENBMCAXDTE5MTAxODA3NTQxM1oYDzIxMTkwOTI0MDc1NDEzWjAnMSUwIwYDVQQD - DBxhY21lLXYwMi5hcGkubGV0c2VuY3J5cHQub3JnMIICIjANBgkqhkiG9w0BAQEF - AAOCAg8AMIICCgKCAgEApny0WhfDwEXe6WDTCw8qBuMAPDr88pj6kbhQWfzAW2c0 - TggJEtjs9dktENeTpSl14nnLVMiSYIJPYY3KbOIFQH1qDaOuQ7NaOhj9CdMTm5r9 - bl+CYAyqLIMQ9AAZDhUcQjOy3moiL7ClFHlkFYuEzZBO9DF7hJpfUFIs0Idg50mN - oZh/K/fb4P2skNjfCjjomTRUmZHxT6G00ImSTtSaYbN/WHut1xXwJvOoT1nlEA/P - ghKmJJ9ZuRMSddUJmjL+sT09L8LVkK8CKeHi4r58DHM0D0u8owIFV9qsXd5UvZHa - NgvQ4OAWGukMX+TxRuqkUZkaj84vnNL+ttEMl4jedw0ImzNtCOYehDyTPRkfng5P - LWMSvWbwyP8jDd2578mSbx5BF7ypYX366+vknjIFyZ5WezcC1pscIHxLoEwuhuf+ - knN+kFkLOHeYbqQrU6mxSnu9q0hnNvGUkTP0a/1aLOGRfQ5C/pxpE/Rebi8qfM/O - JFd4mSxGL93JUTXWAItiIeBnQpIne65/Ska9dWynOEfIb0okdet3kfmNHz3zc17d - Z5g4AdOSCgHAlQgFt/Qd8W6xXUe4C5Mfv2ctxRrfQhDwtB6rMByPwzImnciC2h3v - CwD3vS/vjUyWICyhZyi2LZDUQz+sCKBXCYYcYh8ThFO40j5x1OnYMq7XQvyl8QkC - AwEAATANBgkqhkiG9w0BAQsFAAOCAgEAkx0GLPuCvKSLTHxVLh5tP4jxSGG/zN37 - PeZLu3QJTdRdRc8bgeOGXAVEVFbqOLTNTsuY1mvpiv2V6wxR6nns+PIHeLY/UOdc - mOreKPtMU2dWPp3ybec2Jwii6PhAXZJ26AKintmug1psMw7662crR3SCnn85/CvW - 192vhr5gM1PqLBIlbsX0tAqxAwBe1YkxBb9vCq8NVghJlKme49xnwGULMTGs15MW - hIPx6sW93zwrGiTsDImH49ILGF+NcX1AgAq90nG0j/l5zhDgXGJglX+K1xP99X1R - de3I4uoufPa5q+Pjmhy7muL+o4Qt0D0Vm86RqqjTkNPsr7gAJtt66A7TJrYiIoKn - GTIBsgM6egeFLLYQsT0ap/59HJismO2Pjx4Jk/jHOkC8TJsXQNRq1Km76VMBnuc0 - 2CMoD9pb38GjUUH94D4hJK4Ls/gJMF3ftKUyR8Sr/LjE6qU6Yj+ZpeEQP4kW9ANq - Lv9KSNDQQpRTL4LwGLTGomksLTQEekge7/q4J2TQRZNYJ/mxnrBKRcv9EAMgBMXq - Q+7GHtKDv9tJVlMfG/MRD3CMuuSRiT3OVbvMMkFzsPkqxYAP1CqE/JGvh67TzKI+ - MUfXKehA6TKuxrTVqCtoFIfGaqA9IWyoRTtugYq/xssB9ESeEYGeaM1A9Yueqz+h - KkBZO00jHSE= - -----END CERTIFICATE----- - ''; - "letsencrypt.org".key = builtins.toFile "letsencrypt.org.key" '' - -----BEGIN RSA PRIVATE KEY----- - MIIJKgIBAAKCAgEA9dpdPEyzD3/BBds7tA/51s+WmLFyWuFrq4yMd2R+vi5gvK7n - lLNVKhYgiTmK2Um+UEpGucJqZHcTSZA1Bz4S/8ND/AI9I6EmwvBinY5/PubxEALk - 9YiDA+IzH8ZGFM8wXg7fMbbJAsyv+SHAtr2jmCsggrpuD5fgzs2p+F2q0+oVoeFw - MAOUdAf2jNtNLEj2Q6MiR5Xq+wFOcRtXlNlXWIX3NrmubO/xOpDNpsyjyYC5Ld+W - 06MS5bTHSdv56AkUg2PugMChj15TOddEJIK8zPXFTlMYye9SKwjhNUZovfe4xXCa - Tj2nmzrcuMKLz+S3sKQeTWjiRcY3w4zTlAbhtGXDjXjhMObrHoWM8e3cTL4NJMvt - tNStXficxbeTbIiYu+7dtF0q+iWaZqexc6PdAaIpFZ0XSw+i5iLdQZmBwzY7NLlH - pQupfh6ze0qDUVZAMDubo4JKUTBzH6QTuhHx+uUm7Lc8YdNArn7o/vMZDQym1Eia - xKxZuCGaqFvq8ZK4nBVsHfcXbhF/XD2HMid3t7ImbREVu9qnc+En+acU/SJaaL3r - jMW6HLVMr6+vQrCzYkvLzKYpoUm9D1Kcn6d8Ofxl2iCaY9CkMr5/6J1p1wcTdcN7 - IVQ/DFBeTDauyWbyZkO/lPoZoakWyXOx9S9tgClzhFmNgRkZv9wN+QguNDcCAwEA - AQKCAgEA0ndlacGfaJ1NeN39dmBW2XZMzdrassJXkjx34528gsLhPaXdyobbWXQn - 1lHUc7+VlNaBRXUR73+gm1FAlDqnuRxIjuy7ukyzCh8PzSG3/PlnVPWlXCzJPAHh - EkqCpD3agirpF34LBsKDwxsKB2bBLft9kWxX3DGA2olmAKDvJQs4CaUcjX4DEHHg - tyTmJAsyByUYq3/D8a1koZ9ukpadF8NXpxm+ILQoJqLf6vM1I8N2w7atP/BStSLV - mH0gq2tajEB4ZPCDXmC5jsKiKz9gsXWUu0CX8AdYqE6pvRnRgQ8Ytq1265QMb+8s - FV82oXqDZkyZRFuNmX3fLyDX39kkTcVS37S56Gzk4EzDWE/u2RXCAPeWla2zUFYI - hg8X4ZAwbZRODtK2cZTuCZEILM/iKmtSgHC+aQhp18EUAefa7WGrRD4AvbTxH4VF - ek60bwISBk5Mhf39MwqIiQxGOFmfLsQReZvzH4jI5zfDXf/0yZ/1SdGeu6+Walt0 - V81Ua/DB6zshHpeSP74HMuJHZ4DOQfcV/ndyzvoP84pAjenSx6O034OwQTkpoMI/ - f/2rK8kdzYSL4f//kFMuRLqmAwOmAFYB2oMo0/YaIoQ4vgTHDKTSxj5mbno56GdT - huMAVMKskaCSVbyMB/xyQG7senLItVv+HafVk6ChMUbkIjv9zgECggEBAP+ux1RG - cETGjK2U3CRoHGxR7FwaX6hkSokG+aFdVLer+WUrZmR8Ccvh2ALpm8K1G6TTk/5X - ZeVX4+1VFYDeTHMN8g20usS5mw3v2GF3fGxGLe4q56l4/4kKMZOrSBuWH4niiIKD - 0QogdzWkpQJ93nMbZxZ5lk+lRZVf3qSm6nzyP468ndrfI57Ov5OUIWZ7KhTUH9IK - 8/urUk+lEvyzQmNTlt5ZZXRz7cR01K8chx1zevVAyynzSuGjTysaBN7LTT0v3yVu - 96yKNsxJvuIz2+4qSjhbnN4jH+feN0VsdF3+Qkru0lBmLVgJl4X67XFaAKMDU9yv - 3alS53Pkol+Dy1cCggEBAPYodofHC1ydoOmCvUAq4oJNtyI4iIOY/ch3sxVhkNyi - KBscQqbay/DiXFiNl+NsemzB1PrHzvCaqKcBKw537XzeKqUgYuVLkFGubf9bDhXi - wSRcYbU/oNTgiTgXPW8wH60uIoLaiNi1/YjO2zh4GEY/kFqSuD54Y91iFmcC75bv - OjCNugnRdpRjOFhaeNx75tdverR37w3APVZuBSv3bJlMPCtaf+fEAKxJxeqCs3Oq - rtsw2TQ4TqfE8/w9qPCVv3bQbMbO48SwjxAz47qH2h3qGu3Ov8badeARe+Ou7nuI - U13gPuPOhPXIQP/MYOyamPJdFyng1b8vyNsfjOcWMiECggEAEkMgl6NkV3U7DRbp - 1mvdQ9tiH33+wR9Qt5LY966b43aUHKbJ7Hlzla1u6V5YMsMO02oNUwhZDdWGQShn - ncnC+iDP3iy/flenfIpaETQgnfcxRqan31H2Joqk2eBNCTNi001r5K6XmrqQ6TL2 - WkQ1RFF7vn42vz+VxcKQO4B0lTIUWhSczcpMWAZ6ZocZD6HScqRoFW+U16/39Bpd - TdFb944742vNNFEndXXGzy8hc3gRGz1ihX+MJKuuduyn1mX9AVbPAHR5mkhQ+6x0 - xuFfXxaEMJxSiwdFOyGDHyFM+n2zrHh8ayOxL22X9gjjNspv6zTMo6GoGnUCdSOq - eVoHhwKCAQEAot5O3rOB/vuEljwcv7IgQJrvCsNg/8FgWR1p7kGpuXHJG3btWrz1 - pyH+e9DjqGQD9KWjJ3LAp02NPUJ2nJIZHj9Y8/yjspb2nDTPLt+uSCjKJibBt0ys - O219HRGzYjfzHYCi8PVrCggQAk7rmUdMuF4iQutE4ICDgtz9eZbls3YBiFKdvxVK - Yg/sHflucmPAbtah13prPyvs6ZzN6zNANYXNYdn1OwHieBwvyWRFG8jY/MorTHPd - BwA3drPNbbGHBzQMZNZKub8gSVYr3SU52gUlYCclmIq+50xqLlF2FWIz1q8irVPd - gUnIR/eQQbxgaivRwbGze1ZAjUsozVVQQQKCAQEA9uAKU3O06bEUGj+L0G+7R7r/ - bi2DNi2kLJ7jyq+n0OqcHEQ1zFK4LAPaXY0yMYXieUzhivMGLSNDiubGO2/KxkFF - REXUFgYWZYMwrKsUuscybB64cQDwzD0oXrhvEa2PHecdG6AZ63iLcHaaDzyCPID/ - wtljekLO2jbJ5esXZd016lykFfUd/K4KP1DGyI2Dkq6q0gTc/Y36gDAcPhIWtzna - UujYCe3a8DWCElH4geKXaB5ABbV1eJ8Lch599lXJ9Hszem6QNosFsPaHDCcqLS9H - yy2WA6CY2LVU7kONN+O0kxs2fVbxIkI+d/LZyX/yIGlkXcAzL07llIlrTAYebQ== - -----END RSA PRIVATE KEY----- - ''; - "letsencrypt.org".cert = builtins.toFile "letsencrypt.org.cert" '' - -----BEGIN CERTIFICATE----- - MIIEpzCCAo8CAgKaMA0GCSqGSIb3DQEBCwUAMBYxFDASBgNVBAMMC1NuYWtlb2ls - IENBMCAXDTE5MTAxODA3NTQxNVoYDzIxMTkwOTI0MDc1NDE1WjAaMRgwFgYDVQQD - DA9sZXRzZW5jcnlwdC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC - AQD12l08TLMPf8EF2zu0D/nWz5aYsXJa4WurjIx3ZH6+LmC8rueUs1UqFiCJOYrZ - Sb5QSka5wmpkdxNJkDUHPhL/w0P8Aj0joSbC8GKdjn8+5vEQAuT1iIMD4jMfxkYU - zzBeDt8xtskCzK/5IcC2vaOYKyCCum4Pl+DOzan4XarT6hWh4XAwA5R0B/aM200s - SPZDoyJHler7AU5xG1eU2VdYhfc2ua5s7/E6kM2mzKPJgLkt35bToxLltMdJ2/no - CRSDY+6AwKGPXlM510QkgrzM9cVOUxjJ71IrCOE1Rmi997jFcJpOPaebOty4wovP - 5LewpB5NaOJFxjfDjNOUBuG0ZcONeOEw5usehYzx7dxMvg0ky+201K1d+JzFt5Ns - iJi77t20XSr6JZpmp7Fzo90BoikVnRdLD6LmIt1BmYHDNjs0uUelC6l+HrN7SoNR - VkAwO5ujgkpRMHMfpBO6EfH65Sbstzxh00Cufuj+8xkNDKbUSJrErFm4IZqoW+rx - kricFWwd9xduEX9cPYcyJ3e3siZtERW72qdz4Sf5pxT9IlpoveuMxboctUyvr69C - sLNiS8vMpimhSb0PUpyfp3w5/GXaIJpj0KQyvn/onWnXBxN1w3shVD8MUF5MNq7J - ZvJmQ7+U+hmhqRbJc7H1L22AKXOEWY2BGRm/3A35CC40NwIDAQABMA0GCSqGSIb3 - DQEBCwUAA4ICAQBbJwE+qc0j6JGHWe0TGjv1viJU3WuyJkMRi+ejx0p/k7Ntp5An - 2wLC7b/lVP/Nh+PKY/iXWn/BErv2MUo4POc1g8svgxsmMMh5KGGieIfGs7xT+JMH - dzZZM+pUpIB5fEO5JfjiOEOKDdAvRSs0mTAVYZEokGkXSNWyylvEaA16mHtMgPjo - Lm75d0O66RfJDdd/hTl8umGpF7kEGW1qYk2QmuPr7AqOa8na7olL5fMPh6Q7yRqx - GIS9JKQ0fWl8Ngk09WfwUN/kEMcp9Jl5iunNRkbpUJIM/lHFkSA7yOFFL+dVWzd4 - 2r+ddJXTFzW8Rwt65l8SV2MEhijEamKva3mqKLIRWxDsfFVT1T04LWFtnzMW4Z29 - UHF9Pi7XSyKz0Y/Lz31mNTkjJYbOvbnwok8lc3wFWHc+lummZk8IkCq8xfqzwmwX - Ow6EV+Q6VaQpOHumQZ12pBBLtL8DyDhWaRUgVy2vYpwYsMYa5BFMcKCynjlSewo9 - G2hNoW45cQZP1qHltRR9Xad7SaP7iTETDCiR7AWOqSpDipSh9eMfVW97ZbSfz+vl - xl8PZEZMTRIIRVXsPP+E8gtDUhUQp2+Vcz8r6q71qslXM09xl/501uaNjCc3hH2R - iw2N77Lho1F3FrBbHdML3RYHZI55eC9iQw6R4S+R4b+iWLJoHzHrW61itg== - -----END CERTIFICATE----- - ''; -} diff --git a/nixos/tests/common/resolver.nix b/nixos/tests/common/resolver.nix index 6be8d1d18e6..09a74de20fa 100644 --- a/nixos/tests/common/resolver.nix +++ b/nixos/tests/common/resolver.nix @@ -18,7 +18,7 @@ defining this option needs to be explicitly imported. The reason this option exists is for the - nixos/tests/common/letsencrypt module, which + nixos/tests/common/acme/server module, which needs that option to disable the resolver once the user has set its own resolver. ''; diff --git a/nixos/tests/containers-custom-pkgs.nix b/nixos/tests/containers-custom-pkgs.nix new file mode 100644 index 00000000000..397a4a905e6 --- /dev/null +++ b/nixos/tests/containers-custom-pkgs.nix @@ -0,0 +1,42 @@ +# Test for NixOS' container support. + +import ./make-test-python.nix ({ pkgs, lib, ...} : let + + customPkgs = pkgs // { + hello = pkgs.hello.overrideAttrs(old: { + name = "custom-hello"; + }); + }; + +in { + name = "containers-hosts"; + meta = with lib.maintainers; { + maintainers = [ adisbladis ]; + }; + + machine = + { ... }: + { + virtualisation.memorySize = 256; + virtualisation.vlans = []; + + containers.simple = { + autoStart = true; + pkgs = customPkgs; + config = {pkgs, config, ... }: { + environment.systemPackages = [ + pkgs.hello + ]; + }; + }; + + }; + + testScript = '' + start_all() + machine.wait_for_unit("default.target") + machine.succeed( + "test $(nixos-container run simple -- readlink -f /run/current-system/sw/bin/hello) = ${customPkgs.hello}/bin/hello" + ) + ''; +}) diff --git a/nixos/tests/deluge.nix b/nixos/tests/deluge.nix index 37689c3d913..3cf179a3821 100644 --- a/nixos/tests/deluge.nix +++ b/nixos/tests/deluge.nix @@ -5,9 +5,10 @@ import ./make-test-python.nix ({ pkgs, ...} : { }; nodes = { - simple = { + simple1 = { services.deluge = { enable = true; + package = pkgs.deluge-1_x; web = { enable = true; openFirewall = true; @@ -15,50 +16,92 @@ import ./make-test-python.nix ({ pkgs, ...} : { }; }; - declarative = - { ... }: + declarative1 = { + services.deluge = { + enable = true; + package = pkgs.deluge-1_x; + openFirewall = true; + declarative = true; + config = { + allow_remote = true; + download_location = "/var/lib/deluge/my-download"; + daemon_port = 58846; + listen_ports = [ 6881 6889 ]; + }; + web = { + enable = true; + port = 3142; + }; + authFile = pkgs.writeText "deluge-auth" '' + localclient:a7bef72a890:10 + andrew:password:10 + user3:anotherpass:5 + ''; + }; + }; - { - services.deluge = { + simple2 = { + services.deluge = { + enable = true; + package = pkgs.deluge-2_x; + web = { enable = true; openFirewall = true; - declarative = true; - config = { - allow_remote = true; - download_location = "/var/lib/deluge/my-download"; - daemon_port = 58846; - listen_ports = [ 6881 6889 ]; - }; - web = { - enable = true; - port = 3142; - }; - authFile = pkgs.writeText "deluge-auth" '' - localclient:a7bef72a890:10 - andrew:password:10 - user3:anotherpass:5 - ''; }; - environment.systemPackages = [ pkgs.deluge ]; }; + }; + + declarative2 = { + services.deluge = { + enable = true; + package = pkgs.deluge-2_x; + openFirewall = true; + declarative = true; + config = { + allow_remote = true; + download_location = "/var/lib/deluge/my-download"; + daemon_port = 58846; + listen_ports = [ 6881 6889 ]; + }; + web = { + enable = true; + port = 3142; + }; + authFile = pkgs.writeText "deluge-auth" '' + localclient:a7bef72a890:10 + andrew:password:10 + user3:anotherpass:5 + ''; + }; + }; }; testScript = '' start_all() - 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") + 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") - declarative.wait_for_unit("deluged") - declarative.wait_for_unit("delugeweb") - declarative.wait_until_succeeds("curl --fail http://declarative:3142") - declarative.succeed("deluge-console 'help' | grep -q 'rm - Remove a torrent'") - declarative.succeed( - "deluge-console 'connect 127.0.0.1:58846 andrew password; help' | grep -q 'rm - Remove a torrent'" + 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( + "deluge-console 'connect 127.0.0.1:58846 andrew password; help' | grep -q 'rm.*Remove a torrent'" ) ''; }) diff --git a/nixos/tests/dokuwiki.nix b/nixos/tests/dokuwiki.nix index 38bde10f47e..2b907133ed5 100644 --- a/nixos/tests/dokuwiki.nix +++ b/nixos/tests/dokuwiki.nix @@ -1,29 +1,74 @@ -import ./make-test-python.nix ({ lib, ... }: +import ./make-test-python.nix ({ pkgs, ... }: -with lib; - -{ - name = "dokuwiki"; - meta.maintainers = with maintainers; [ maintainers."1000101" ]; - - nodes.machine = - { pkgs, ... }: - { services.dokuwiki = { - enable = true; - acl = " "; - superUser = null; - nginx = { - forceSSL = false; - enableACME = false; - }; - }; +let + template-bootstrap3 = pkgs.stdenv.mkDerivation { + name = "bootstrap3"; + # Download the theme from the dokuwiki site + src = pkgs.fetchurl { + url = https://github.com/giterlizzi/dokuwiki-template-bootstrap3/archive/v2019-05-22.zip; + sha256 = "4de5ff31d54dd61bbccaf092c9e74c1af3a4c53e07aa59f60457a8f00cfb23a6"; }; + # We need unzip to build this package + buildInputs = [ pkgs.unzip ]; + # Installing simply means copying all files to the output directory + installPhase = "mkdir -p $out; cp -R * $out/"; + }; + + + # Let's package the icalevents plugin + plugin-icalevents = pkgs.stdenv.mkDerivation { + name = "icalevents"; + # Download the plugin from the dokuwiki site + src = pkgs.fetchurl { + url = https://github.com/real-or-random/dokuwiki-plugin-icalevents/releases/download/2017-06-16/dokuwiki-plugin-icalevents-2017-06-16.zip; + sha256 = "e40ed7dd6bbe7fe3363bbbecb4de481d5e42385b5a0f62f6a6ce6bf3a1f9dfa8"; + }; + # We need unzip to build this package + buildInputs = [ pkgs.unzip ]; + sourceRoot = "."; + # Installing simply means copying all files to the output directory + installPhase = "mkdir -p $out; cp -R * $out/"; + }; + +in { + name = "dokuwiki"; + meta.maintainers = with pkgs.lib.maintainers; [ "1000101" ]; + + machine = { ... }: { + services.dokuwiki."site1.local" = { + aclUse = false; + superUser = "admin"; + nginx = { + forceSSL = false; + enableACME = false; + }; + }; + services.dokuwiki."site2.local" = { + aclUse = true; + superUser = "admin"; + nginx = { + forceSSL = false; + enableACME = false; + }; + templates = [ template-bootstrap3 ]; + plugins = [ plugin-icalevents ]; + }; + networking.hosts."127.0.0.1" = [ "site1.local" "site2.local" ]; + }; testScript = '' - machine.start() - machine.wait_for_unit("phpfpm-dokuwiki.service") + site_names = ["site1.local", "site2.local"] + + start_all() + + machine.wait_for_unit("phpfpm-dokuwiki-site1.local.service") + machine.wait_for_unit("phpfpm-dokuwiki-site2.local.service") + machine.wait_for_unit("nginx.service") + machine.wait_for_open_port(80) - machine.succeed("curl -sSfL http://localhost/ | grep 'DokuWiki'") + + machine.succeed("curl -sSfL http://site1.local/ | grep 'DokuWiki'") + machine.succeed("curl -sSfL http://site2.local/ | grep 'DokuWiki'") ''; }) diff --git a/nixos/tests/dovecot.nix b/nixos/tests/dovecot.nix index c19850f418b..bcbe234fd80 100644 --- a/nixos/tests/dovecot.nix +++ b/nixos/tests/dovecot.nix @@ -8,7 +8,7 @@ import ./make-test-python.nix { services.dovecot2.protocols = [ "imap" "pop3" ]; environment.systemPackages = let sendTestMail = pkgs.writeScriptBin "send-testmail" '' - #!${pkgs.stdenv.shell} + #!${pkgs.runtimeShell} exec sendmail -vt < 1.0 - DOLFIN_EPS + + u0 = Constant(0.0) + bc = DirichletBC(V, u0, boundary) + + u = TrialFunction(V) + v = TestFunction(V) + f = Expression("10*exp(-(pow(x[0] - 0.5, 2) + pow(x[1] - 0.5, 2)) / 0.02)", degree=2) + g = Expression("sin(5*x[0])", degree=2) + a = inner(grad(u), grad(v))*dx + L = f*v*dx + g*v*ds + + u = Function(V) + solve(a == L, u, bc) + print(u) + ''; +in +{ + name = "fenics"; + meta = { + maintainers = with pkgs.stdenv.lib.maintainers; [ knedlsepp ]; + }; + + nodes = { + fenicsnode = { pkgs, ... }: { + environment.systemPackages = with pkgs; [ + gcc + (python3.withPackages (ps: with ps; [ fenics ])) + ]; + virtualisation.memorySize = 512; + }; + }; + testScript = + { nodes, ... }: + '' + start_all() + node1.succeed("${fenicsScript}") + ''; +}) diff --git a/nixos/tests/flannel.nix b/nixos/tests/flannel.nix index 9991c5eaa32..7615732c20c 100644 --- a/nixos/tests/flannel.nix +++ b/nixos/tests/flannel.nix @@ -1,20 +1,24 @@ -import ./make-test.nix ({ pkgs, ...} : { +import ./make-test-python.nix ({ lib, ...} : { name = "flannel"; - meta = with pkgs.stdenv.lib.maintainers; { + meta = with lib.maintainers; { maintainers = [ offline ]; }; nodes = let - flannelConfig = { + flannelConfig = { pkgs, ... } : { services.flannel = { enable = true; + backend = { + Type = "udp"; + Port = 8285; + }; network = "10.1.0.0/16"; iface = "eth1"; etcd.endpoints = ["http://etcd:2379"]; }; - networking.firewall.allowedUDPPorts = [ 8472 ]; + networking.firewall.allowedUDPPorts = [ 8285 ]; }; in { etcd = { ... }: { @@ -32,25 +36,22 @@ import ./make-test.nix ({ pkgs, ...} : { networking.firewall.allowedTCPPorts = [ 2379 ]; }; - node1 = { ... }: { - require = [flannelConfig]; - }; - - node2 = { ... }: { - require = [flannelConfig]; - }; + node1 = flannelConfig; + node2 = flannelConfig; }; testScript = '' - startAll; + start_all() - $node1->waitForUnit("flannel.service"); - $node2->waitForUnit("flannel.service"); + node1.wait_for_unit("flannel.service") + node2.wait_for_unit("flannel.service") - my $ip1 = $node1->succeed("ip -4 addr show flannel.1 | grep -oP '(?<=inet).*(?=/)'"); - my $ip2 = $node2->succeed("ip -4 addr show flannel.1 | grep -oP '(?<=inet).*(?=/)'"); + node1.wait_until_succeeds("ip l show dev flannel0") + ip1 = node1.succeed("ip -4 addr show flannel0 | grep -oP '(?<=inet).*(?=/)'") + node2.wait_until_succeeds("ip l show dev flannel0") + ip2 = node2.succeed("ip -4 addr show flannel0 | grep -oP '(?<=inet).*(?=/)'") - $node1->waitUntilSucceeds("ping -c 1 $ip2"); - $node2->waitUntilSucceeds("ping -c 1 $ip1"); + node1.wait_until_succeeds(f"ping -c 1 {ip2}") + node2.wait_until_succeeds(f"ping -c 1 {ip1}") ''; }) diff --git a/nixos/tests/gerrit.nix b/nixos/tests/gerrit.nix new file mode 100644 index 00000000000..6cee64a2009 --- /dev/null +++ b/nixos/tests/gerrit.nix @@ -0,0 +1,55 @@ +import ./make-test-python.nix ({ pkgs, ... }: + +let + lfs = pkgs.fetchurl { + url = "https://gerrit-ci.gerritforge.com/job/plugin-lfs-bazel-master/90/artifact/bazel-bin/plugins/lfs/lfs.jar"; + sha256 = "023b0kd8djm3cn1lf1xl67yv3j12yl8bxccn42lkfmwxjwjfqw6h"; + }; + +in { + name = "gerrit"; + + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ flokli zimbatm ]; + }; + + nodes = { + server = + { config, pkgs, ... }: { + networking.firewall.allowedTCPPorts = [ 80 2222 ]; + + virtualisation.memorySize = 1024; + + services.gerrit = { + enable = true; + serverId = "aa76c84b-50b0-4711-a0a0-1ee30e45bbd0"; + listenAddress = "[::]:80"; + jvmHeapLimit = "1g"; + + plugins = [ lfs ]; + builtinPlugins = [ "hooks" "webhooks" ]; + settings = { + gerrit.canonicalWebUrl = "http://server"; + lfs.plugin = "lfs"; + plugins.allowRemoteAdmin = true; + sshd.listenAddress = "[::]:2222"; + sshd.advertisedAddress = "[::]:2222"; + }; + }; + }; + + client = + { ... }: { + }; + }; + + testScript = '' + start_all() + server.wait_for_unit("gerrit.service") + server.wait_for_open_port(80) + client.succeed("curl http://server") + + server.wait_for_open_port(2222) + client.succeed("nc -z server 2222") + ''; +}) diff --git a/nixos/tests/gnome3-xorg.nix b/nixos/tests/gnome3-xorg.nix index f793bb922ad..b59badcd5de 100644 --- a/nixos/tests/gnome3-xorg.nix +++ b/nixos/tests/gnome3-xorg.nix @@ -1,7 +1,7 @@ -import ./make-test-python.nix ({ pkgs, ...} : { +import ./make-test-python.nix ({ pkgs, lib, ...} : { name = "gnome3-xorg"; - meta = with pkgs.stdenv.lib.maintainers; { - maintainers = pkgs.gnome3.maintainers; + meta = with lib; { + maintainers = teams.gnome.members; }; machine = { nodes, ... }: let diff --git a/nixos/tests/gnome3.nix b/nixos/tests/gnome3.nix index 486c146d8dc..17e72c5f651 100644 --- a/nixos/tests/gnome3.nix +++ b/nixos/tests/gnome3.nix @@ -1,7 +1,7 @@ -import ./make-test-python.nix ({ pkgs, ...} : { +import ./make-test-python.nix ({ pkgs, lib, ...} : { name = "gnome3"; - meta = with pkgs.stdenv.lib.maintainers; { - maintainers = pkgs.gnome3.maintainers; + meta = with lib; { + maintainers = teams.gnome.members; }; machine = diff --git a/nixos/tests/google-oslogin/default.nix b/nixos/tests/google-oslogin/default.nix index 1977e92e987..97783c81f39 100644 --- a/nixos/tests/google-oslogin/default.nix +++ b/nixos/tests/google-oslogin/default.nix @@ -22,6 +22,8 @@ in { client = { ... }: {}; }; testScript = '' + MOCKUSER = "mockuser_nixos_org" + MOCKADMIN = "mockadmin_nixos_org" start_all() server.wait_for_unit("mock-google-metadata.service") @@ -29,10 +31,10 @@ in { # mockserver should return a non-expired ssh key for both mockuser and mockadmin server.succeed( - '${pkgs.google-compute-engine-oslogin}/bin/google_authorized_keys mockuser | grep -q "${snakeOilPublicKey}"' + f'${pkgs.google-compute-engine-oslogin}/bin/google_authorized_keys {MOCKUSER} | grep -q "${snakeOilPublicKey}"' ) server.succeed( - '${pkgs.google-compute-engine-oslogin}/bin/google_authorized_keys mockadmin | grep -q "${snakeOilPublicKey}"' + f'${pkgs.google-compute-engine-oslogin}/bin/google_authorized_keys {MOCKADMIN} | grep -q "${snakeOilPublicKey}"' ) # install snakeoil ssh key on the client, and provision .ssh/config file @@ -50,20 +52,22 @@ in { client.fail("ssh ghost@server 'true'") # we should be able to connect as mockuser - client.succeed("ssh mockuser@server 'true'") + client.succeed(f"ssh {MOCKUSER}@server 'true'") # but we shouldn't be able to sudo client.fail( - "ssh mockuser@server '/run/wrappers/bin/sudo /run/current-system/sw/bin/id' | grep -q 'root'" + f"ssh {MOCKUSER}@server '/run/wrappers/bin/sudo /run/current-system/sw/bin/id' | grep -q 'root'" ) # we should also be able to log in as mockadmin - client.succeed("ssh mockadmin@server 'true'") + client.succeed(f"ssh {MOCKADMIN}@server 'true'") # pam_oslogin_admin.so should now have generated a sudoers file - server.succeed("find /run/google-sudoers.d | grep -q '/run/google-sudoers.d/mockadmin'") + server.succeed( + f"find /run/google-sudoers.d | grep -q '/run/google-sudoers.d/{MOCKADMIN}'" + ) # and we should be able to sudo client.succeed( - "ssh mockadmin@server '/run/wrappers/bin/sudo /run/current-system/sw/bin/id' | grep -q 'root'" + f"ssh {MOCKADMIN}@server '/run/wrappers/bin/sudo /run/current-system/sw/bin/id' | grep -q 'root'" ) ''; }) diff --git a/nixos/tests/google-oslogin/server.py b/nixos/tests/google-oslogin/server.py index bfc527cb97d..5ea9bbd2c96 100644 --- a/nixos/tests/google-oslogin/server.py +++ b/nixos/tests/google-oslogin/server.py @@ -7,24 +7,29 @@ import hashlib import base64 from http.server import BaseHTTPRequestHandler, HTTPServer +from urllib.parse import urlparse, parse_qs from typing import Dict SNAKEOIL_PUBLIC_KEY = os.environ['SNAKEOIL_PUBLIC_KEY'] +MOCKUSER="mockuser_nixos_org" +MOCKADMIN="mockadmin_nixos_org" -def w(msg): +def w(msg: bytes): sys.stderr.write(f"{msg}\n") sys.stderr.flush() -def gen_fingerprint(pubkey): +def gen_fingerprint(pubkey: str): decoded_key = base64.b64decode(pubkey.encode("ascii").split()[1]) return hashlib.sha256(decoded_key).hexdigest() -def gen_email(username): + +def gen_email(username: str): """username seems to be a 21 characters long number string, so mimic that in a reproducible way""" return str(int(hashlib.sha256(username.encode()).hexdigest(), 16))[0:21] + def gen_mockuser(username: str, uid: str, gid: str, home_directory: str, snakeoil_pubkey: str) -> Dict: snakeoil_pubkey_fingerprint = gen_fingerprint(snakeoil_pubkey) # seems to be a 21 characters long numberstring, so mimic that in a reproducible way @@ -56,7 +61,8 @@ def gen_mockuser(username: str, uid: str, gid: str, home_directory: str, snakeoi class ReqHandler(BaseHTTPRequestHandler): - def _send_json_ok(self, data): + + def _send_json_ok(self, data: dict): self.send_response(200) self.send_header('Content-type', 'application/json') self.end_headers() @@ -64,29 +70,62 @@ class ReqHandler(BaseHTTPRequestHandler): w(out) self.wfile.write(out) + def _send_json_success(self, success=True): + self.send_response(200) + self.send_header('Content-type', 'application/json') + self.end_headers() + out = json.dumps({"success": success}).encode() + w(out) + self.wfile.write(out) + + def _send_404(self): + self.send_response(404) + self.end_headers() + def do_GET(self): p = str(self.path) - # mockuser and mockadmin are allowed to login, both use the same snakeoil public key - if p == '/computeMetadata/v1/oslogin/users?username=mockuser' \ - or p == '/computeMetadata/v1/oslogin/users?uid=1009719690': - self._send_json_ok(gen_mockuser(username='mockuser', uid='1009719690', gid='1009719690', - home_directory='/home/mockuser', snakeoil_pubkey=SNAKEOIL_PUBLIC_KEY)) - elif p == '/computeMetadata/v1/oslogin/users?username=mockadmin' \ - or p == '/computeMetadata/v1/oslogin/users?uid=1009719691': - self._send_json_ok(gen_mockuser(username='mockadmin', uid='1009719691', gid='1009719691', - home_directory='/home/mockadmin', snakeoil_pubkey=SNAKEOIL_PUBLIC_KEY)) + pu = urlparse(p) + params = parse_qs(pu.query) - # mockuser is allowed to login - elif p == f"/computeMetadata/v1/oslogin/authorize?email={gen_email('mockuser')}&policy=login": - self._send_json_ok({'success': True}) + # users endpoint + if pu.path == "/computeMetadata/v1/oslogin/users": + # mockuser and mockadmin are allowed to login, both use the same snakeoil public key + if params.get('username') == [MOCKUSER] or params.get('uid') == ["1009719690"]: + username = MOCKUSER + uid = "1009719690" + elif params.get('username') == [MOCKADMIN] or params.get('uid') == ["1009719691"]: + username = MOCKADMIN + uid = "1009719691" + else: + self._send_404() + return - # mockadmin may also become root - elif p == f"/computeMetadata/v1/oslogin/authorize?email={gen_email('mockadmin')}&policy=login" or p == f"/computeMetadata/v1/oslogin/authorize?email={gen_email('mockadmin')}&policy=adminLogin": - self._send_json_ok({'success': True}) + self._send_json_ok(gen_mockuser(username=username, uid=uid, gid=uid, home_directory=f"/home/{username}", snakeoil_pubkey=SNAKEOIL_PUBLIC_KEY)) + return + + # authorize endpoint + elif pu.path == "/computeMetadata/v1/oslogin/authorize": + # is user allowed to login? + if params.get("policy") == ["login"]: + # mockuser and mockadmin are allowed to login + if params.get('email') == [gen_email(MOCKUSER)] or params.get('email') == [gen_email(MOCKADMIN)]: + self._send_json_success() + return + self._send_json_success(False) + return + # is user allowed to become root? + elif params.get("policy") == ["adminLogin"]: + # only mockadmin is allowed to become admin + self._send_json_success((params['email'] == [gen_email(MOCKADMIN)])) + return + # send 404 for other policies + else: + self._send_404() + return else: sys.stderr.write(f"Unhandled path: {p}\n") sys.stderr.flush() - self.send_response(501) + self.send_response(404) self.end_headers() self.wfile.write(b'') diff --git a/nixos/tests/graphite.nix b/nixos/tests/graphite.nix index ba3c73bb878..71776a94cbd 100644 --- a/nixos/tests/graphite.nix +++ b/nixos/tests/graphite.nix @@ -12,15 +12,19 @@ import ./make-test-python.nix ({ pkgs, ... } : virtualisation.memorySize = 1024; time.timeZone = "UTC"; services.graphite = { - web.enable = true; + web = { + enable = true; + extraConfig = '' + SECRET_KEY = "abcd"; + ''; + }; api = { enable = true; port = 8082; - finders = [ pkgs.python27Packages.influxgraph ]; + finders = [ pkgs.python3Packages.influxgraph ]; }; carbon.enableCache = true; - seyren.enable = true; - pager.enable = true; + seyren.enable = false; # Implicitely requires openssl-1.0.2u which is marked insecure beacon.enable = true; }; }; @@ -31,16 +35,16 @@ import ./make-test-python.nix ({ pkgs, ... } : one.wait_for_unit("default.target") one.wait_for_unit("graphiteWeb.service") one.wait_for_unit("graphiteApi.service") - one.wait_for_unit("graphitePager.service") one.wait_for_unit("graphite-beacon.service") one.wait_for_unit("carbonCache.service") - one.wait_for_unit("seyren.service") # The services above are of type "simple". systemd considers them active immediately # even if they're still in preStart (which takes quite long for graphiteWeb). # Wait for ports to open so we're sure the services are up and listening. one.wait_for_open_port(8080) one.wait_for_open_port(2003) one.succeed('echo "foo 1 `date +%s`" | nc -N localhost 2003') - one.wait_until_succeeds("curl 'http://localhost:8080/metrics/find/?query=foo&format=treejson' --silent | grep foo >&2") + one.wait_until_succeeds( + "curl 'http://localhost:8080/metrics/find/?query=foo&format=treejson' --silent | grep foo >&2" + ) ''; }) diff --git a/nixos/tests/hardened.nix b/nixos/tests/hardened.nix index cbf76f9e558..5ed0dfcf9ab 100644 --- a/nixos/tests/hardened.nix +++ b/nixos/tests/hardened.nix @@ -1,4 +1,4 @@ -import ./make-test.nix ({ pkgs, ...} : { +import ./make-test.nix ({ pkgs, latestKernel ? false, ... } : { name = "hardened"; meta = with pkgs.stdenv.lib.maintainers; { maintainers = [ joachifm ]; @@ -10,6 +10,8 @@ import ./make-test.nix ({ pkgs, ...} : { { users.users.alice = { isNormalUser = true; extraGroups = [ "proc" ]; }; users.users.sybil = { isNormalUser = true; group = "wheel"; }; imports = [ ../modules/profiles/hardened.nix ]; + boot.kernelPackages = + lib.mkIf latestKernel pkgs.linuxPackages_latest_hardened; environment.memoryAllocator.provider = "graphene-hardened"; nix.useSandbox = false; virtualisation.emptyDiskImages = [ 4096 ]; @@ -23,7 +25,9 @@ import ./make-test.nix ({ pkgs, ...} : { options = [ "noauto" ]; }; }; - boot.extraModulePackages = [ config.boot.kernelPackages.wireguard ]; + boot.extraModulePackages = + optional (versionOlder config.boot.kernelPackages.kernel.version "5.6") + config.boot.kernelPackages.wireguard; boot.kernelModules = [ "wireguard" ]; }; @@ -76,7 +80,8 @@ import ./make-test.nix ({ pkgs, ...} : { # Test userns subtest "userns", sub { - $machine->fail("unshare --user"); + $machine->succeed("unshare --user true"); + $machine->fail("su -l alice -c 'unshare --user true'"); }; # Test dmesg restriction diff --git a/nixos/tests/hydra/common.nix b/nixos/tests/hydra/common.nix new file mode 100644 index 00000000000..f612717dc96 --- /dev/null +++ b/nixos/tests/hydra/common.nix @@ -0,0 +1,47 @@ +{ system, ... }: +{ + baseConfig = { pkgs, ... }: let + trivialJob = pkgs.writeTextDir "trivial.nix" '' + { trivial = builtins.derivation { + name = "trivial"; + system = "${system}"; + builder = "/bin/sh"; + allowSubstitutes = false; + preferLocalBuild = true; + args = ["-c" "echo success > $out; exit 0"]; + }; + } + ''; + + createTrivialProject = pkgs.stdenv.mkDerivation { + name = "create-trivial-project"; + dontUnpack = true; + buildInputs = [ pkgs.makeWrapper ]; + installPhase = "install -m755 -D ${./create-trivial-project.sh} $out/bin/create-trivial-project.sh"; + postFixup = '' + wrapProgram "$out/bin/create-trivial-project.sh" --prefix PATH ":" ${pkgs.stdenv.lib.makeBinPath [ pkgs.curl ]} --set EXPR_PATH ${trivialJob} + ''; + }; + in { + virtualisation.memorySize = 2048; + time.timeZone = "UTC"; + environment.systemPackages = [ createTrivialProject pkgs.jq ]; + services.hydra = { + enable = true; + # Hydra needs those settings to start up, so we add something not harmfull. + hydraURL = "example.com"; + notificationSender = "example@example.com"; + extraConfig = '' + email_notification = 1 + ''; + }; + services.postfix.enable = true; + nix = { + buildMachines = [{ + hostName = "localhost"; + systems = [ system ]; + }]; + binaryCaches = []; + }; + }; +} diff --git a/nixos/tests/hydra/db-migration.nix b/nixos/tests/hydra/db-migration.nix new file mode 100644 index 00000000000..cf74acfd67a --- /dev/null +++ b/nixos/tests/hydra/db-migration.nix @@ -0,0 +1,92 @@ +{ system ? builtins.currentSystem +, pkgs ? import ../../.. { inherit system; } +, ... +}: + +let inherit (import ./common.nix { inherit system; }) baseConfig; in + +with import ../../lib/testing-python.nix { inherit system pkgs; }; +with pkgs.lib; + +{ mig = makeTest { + name = "hydra-db-migration"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ ma27 ]; + }; + + nodes = { + original = { pkgs, lib, ... }: { + imports = [ baseConfig ]; + + # An older version of Hydra before the db change + # for testing purposes. + services.hydra.package = pkgs.hydra-migration.overrideAttrs (old: { + inherit (old) pname; + version = "2020-02-06"; + src = pkgs.fetchFromGitHub { + owner = "NixOS"; + repo = "hydra"; + rev = "2b4f14963b16b21ebfcd6b6bfa7832842e9b2afc"; + sha256 = "16q0cffcsfx5pqd91n9k19850c1nbh4vvbd9h8yi64ihn7v8bick"; + }; + }); + }; + + migration_phase1 = { pkgs, lib, ... }: { + imports = [ baseConfig ]; + services.hydra.package = pkgs.hydra-migration; + }; + + finished = { pkgs, lib, ... }: { + imports = [ baseConfig ]; + services.hydra.package = pkgs.hydra-unstable; + }; + }; + + testScript = { nodes, ... }: let + next = nodes.migration_phase1.config.system.build.toplevel; + finished = nodes.finished.config.system.build.toplevel; + in '' + original.start() + original.wait_for_unit("multi-user.target") + original.wait_for_unit("postgresql.service") + original.wait_for_unit("hydra-init.service") + original.require_unit_state("hydra-queue-runner.service") + original.require_unit_state("hydra-evaluator.service") + original.require_unit_state("hydra-notify.service") + original.succeed("hydra-create-user admin --role admin --password admin") + original.wait_for_open_port(3000) + original.succeed("create-trivial-project.sh") + original.wait_until_succeeds( + 'curl -L -s http://localhost:3000/build/1 -H "Accept: application/json" | jq .buildstatus | xargs test 0 -eq' + ) + + out = original.succeed("su -l postgres -c 'psql -d hydra <<< \"\\d+ jobs\" -A'") + assert "jobset_id" not in out + + original.succeed( + "${next}/bin/switch-to-configuration test >&2" + ) + original.wait_for_unit("hydra-init.service") + + out = original.succeed("su -l postgres -c 'psql -d hydra <<< \"\\d+ jobs\" -A'") + assert "jobset_id|integer|||" in out + + original.succeed("hydra-backfill-ids") + + original.succeed( + "${finished}/bin/switch-to-configuration test >&2" + ) + original.wait_for_unit("hydra-init.service") + + out = original.succeed("su -l postgres -c 'psql -d hydra <<< \"\\d+ jobs\" -A'") + assert "jobset_id|integer||not null|" in out + + original.wait_until_succeeds( + 'curl -L -s http://localhost:3000/build/1 -H "Accept: application/json" | jq .buildstatus | xargs test 0 -eq' + ) + + original.shutdown() + ''; + }; +} diff --git a/nixos/tests/hydra/default.nix b/nixos/tests/hydra/default.nix index 1c0ed3369b1..2336e4033d6 100644 --- a/nixos/tests/hydra/default.nix +++ b/nixos/tests/hydra/default.nix @@ -3,102 +3,57 @@ , pkgs ? import ../../.. { inherit system config; } }: +with import ../../lib/testing-python.nix { inherit system pkgs; }; +with pkgs.lib; + let - trivialJob = pkgs.writeTextDir "trivial.nix" '' - { trivial = builtins.derivation { - name = "trivial"; - system = "${system}"; - builder = "/bin/sh"; - allowSubstitutes = false; - preferLocalBuild = true; - args = ["-c" "echo success > $out; exit 0"]; - }; - } - ''; + inherit (import ./common.nix { inherit system; }) baseConfig; - createTrivialProject = pkgs.stdenv.mkDerivation { - name = "create-trivial-project"; - dontUnpack = true; - buildInputs = [ pkgs.makeWrapper ]; - installPhase = "install -m755 -D ${./create-trivial-project.sh} $out/bin/create-trivial-project.sh"; - postFixup = '' - wrapProgram "$out/bin/create-trivial-project.sh" --prefix PATH ":" ${pkgs.stdenv.lib.makeBinPath [ pkgs.curl ]} --set EXPR_PATH ${trivialJob} + hydraPkgs = { + inherit (pkgs) hydra-migration hydra-unstable; + }; + + makeHydraTest = with pkgs.lib; name: package: makeTest { + name = "hydra-${name}"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ pstn lewo ma27 ]; + }; + + machine = { pkgs, lib, ... }: { + imports = [ baseConfig ]; + services.hydra = { inherit package; }; + }; + + testScript = '' + # let the system boot up + machine.wait_for_unit("multi-user.target") + # test whether the database is running + machine.wait_for_unit("postgresql.service") + # test whether the actual hydra daemons are running + machine.wait_for_unit("hydra-init.service") + machine.require_unit_state("hydra-queue-runner.service") + machine.require_unit_state("hydra-evaluator.service") + machine.require_unit_state("hydra-notify.service") + + machine.succeed("hydra-create-user admin --role admin --password admin") + + # create a project with a trivial job + machine.wait_for_open_port(3000) + + # make sure the build as been successfully built + machine.succeed("create-trivial-project.sh") + + machine.wait_until_succeeds( + 'curl -L -s http://localhost:3000/build/1 -H "Accept: application/json" | jq .buildstatus | xargs test 0 -eq' + ) + + machine.wait_until_succeeds( + 'journalctl -eu hydra-notify.service -o cat | grep -q "sending mail notification to hydra@localhost"' + ) ''; }; - callTest = f: f { inherit system pkgs; }; - - hydraPkgs = { - inherit (pkgs) nixStable nixUnstable nixFlakes; - }; - - tests = pkgs.lib.flip pkgs.lib.mapAttrs hydraPkgs (name: nix: - callTest (import ../make-test-python.nix ({ pkgs, lib, ... }: - { - name = "hydra-with-${name}"; - meta = with pkgs.stdenv.lib.maintainers; { - maintainers = [ pstn lewo ma27 ]; - }; - - machine = { pkgs, ... }: - { - virtualisation.memorySize = 1024; - time.timeZone = "UTC"; - - environment.systemPackages = [ createTrivialProject pkgs.jq ]; - services.hydra = { - enable = true; - - #Hydra needs those settings to start up, so we add something not harmfull. - hydraURL = "example.com"; - notificationSender = "example@example.com"; - - package = pkgs.hydra.override { inherit nix; }; - - extraConfig = '' - email_notification = 1 - ''; - }; - services.postfix.enable = true; - nix = { - buildMachines = [{ - hostName = "localhost"; - systems = [ system ]; - }]; - - binaryCaches = []; - }; - }; - - testScript = '' - # let the system boot up - machine.wait_for_unit("multi-user.target") - # test whether the database is running - machine.wait_for_unit("postgresql.service") - # test whether the actual hydra daemons are running - machine.wait_for_unit("hydra-init.service") - machine.require_unit_state("hydra-queue-runner.service") - machine.require_unit_state("hydra-evaluator.service") - machine.require_unit_state("hydra-notify.service") - - machine.succeed("hydra-create-user admin --role admin --password admin") - - # create a project with a trivial job - machine.wait_for_open_port(3000) - - # make sure the build as been successfully built - machine.succeed("create-trivial-project.sh") - - machine.wait_until_succeeds( - 'curl -L -s http://localhost:3000/build/1 -H "Accept: application/json" | jq .buildstatus | xargs test 0 -eq' - ) - - machine.wait_until_succeeds( - 'journalctl -eu hydra-notify.service -o cat | grep -q "sending mail notification to hydra@localhost"' - ) - ''; - }))); - in - tests + +mapAttrs makeHydraTest hydraPkgs diff --git a/nixos/tests/initrd-network-ssh/default.nix b/nixos/tests/initrd-network-ssh/default.nix index 73d9f938e22..017de688208 100644 --- a/nixos/tests/initrd-network-ssh/default.nix +++ b/nixos/tests/initrd-network-ssh/default.nix @@ -3,7 +3,7 @@ import ../make-test-python.nix ({ lib, ... }: { name = "initrd-network-ssh"; meta = with lib.maintainers; { - maintainers = [ willibutz ]; + maintainers = [ willibutz emily ]; }; nodes = with lib; { @@ -17,9 +17,9 @@ import ../make-test-python.nix ({ lib, ... }: enable = true; ssh = { enable = true; - authorizedKeys = [ "${readFile ./openssh.pub}" ]; + authorizedKeys = [ (readFile ./id_ed25519.pub) ]; port = 22; - hostRSAKey = ./dropbear.priv; + hostKeys = [ ./ssh_host_ed25519_key ]; }; }; boot.initrd.preLVMCommands = '' @@ -42,11 +42,11 @@ import ../make-test-python.nix ({ lib, ... }: "${toString (head (splitString " " ( toString (elemAt (splitString "\n" config.networking.extraHosts) 2) )))} " - "${readFile ./dropbear.pub}" + "${readFile ./ssh_host_ed25519_key.pub}" ]; }; sshKey = { - source = ./openssh.priv; # dont use this anywhere else + source = ./id_ed25519; mode = "0600"; }; }; @@ -56,7 +56,17 @@ import ../make-test-python.nix ({ lib, ... }: testScript = '' start_all() client.wait_for_unit("network.target") - client.wait_until_succeeds("ping -c 1 server") + + + def ssh_is_up(_) -> bool: + status, _ = client.execute("nc -z server 22") + return status == 0 + + + with client.nested("waiting for SSH server to come up"): + retry(ssh_is_up) + + client.succeed( "ssh -i /etc/sshKey -o UserKnownHostsFile=/etc/knownHosts server 'touch /fnord'" ) diff --git a/nixos/tests/initrd-network-ssh/dropbear.priv b/nixos/tests/initrd-network-ssh/dropbear.priv deleted file mode 100644 index af340535f0a..00000000000 Binary files a/nixos/tests/initrd-network-ssh/dropbear.priv and /dev/null differ diff --git a/nixos/tests/initrd-network-ssh/dropbear.pub b/nixos/tests/initrd-network-ssh/dropbear.pub deleted file mode 100644 index 385c625522a..00000000000 --- a/nixos/tests/initrd-network-ssh/dropbear.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCzJ0OniLB91MpPC86I1m3wwJeAc+Gme7bAuaLIU/cSfPwxT5NO7MfCp0Pu94gYDKtDXMs/wXg0bTAVDeAFFkdIj6kBBumEmQLCTL48q2UxDIXVLT/E/AAgj6q7WwgCg7fwm4Vjn4z7aUyBx8EfRy+5/SQyeYla3D/lFYgMi5x4D6J+yeR+JPAptDE/IR5IizNV7mY0ZcoXYyHrrehI1tTYEEqjX13ZqS4OCBFWwHe1QHhRNM+jHhcATbgikjAj8FyFPtLvc+dSVtkuhQktQl36Bi8zMUQcV6+mM7Ln6DBcDlM9urHKLYPTWmUAyhxM955iglOn5z0RaAIcyNMT6hz0rHaNf0BIlmbXoTC0XGjHh/OnoOEC/zg0JqgQTnPiU45K4TnRSSXp2GfiDfiQAK0+HaXACkjuFR68u7WCZpB1Bse1OgKNClFqtRhIr5DilUb2/e5DCCmFkddMUcjmYqzZdbXNt7fo8CFULe+mbiCp8+tMg4aRTaDZ/Hk93nCvGE5TP2ypEMbfL6nRVKvXOjhdvSQQgKwx+O003FDEHCSG0Bpageh7yVpna+SPrbGklce7MjTpbx3iIwmvKpQ6asnK1L3KkahpY1S3NhQ+/S3Gs8KWQ5LAU+d3xiPX3jfIVHsCIIyxHDbwcJvxM4MFBFQpqRMD6E+LoM9RHjl4C9k2iQ== tmtynkky@duuni diff --git a/nixos/tests/initrd-network-ssh/generate-keys.nix b/nixos/tests/initrd-network-ssh/generate-keys.nix index 0183e12d7a8..3d7978890ab 100644 --- a/nixos/tests/initrd-network-ssh/generate-keys.nix +++ b/nixos/tests/initrd-network-ssh/generate-keys.nix @@ -1,12 +1,10 @@ with import ../../.. {}; runCommand "gen-keys" { - buildInputs = [ dropbear openssh ]; + buildInputs = [ openssh ]; } '' mkdir $out - dropbearkey -t rsa -f $out/dropbear.priv -s 4096 | sed -n 2p > $out/dropbear.pub - ssh-keygen -q -t rsa -b 4096 -N "" -f client - mv client $out/openssh.priv - mv client.pub $out/openssh.pub + ssh-keygen -q -t ed25519 -N "" -f $out/ssh_host_ed25519_key + ssh-keygen -q -t ed25519 -N "" -f $out/id_ed25519 '' diff --git a/nixos/tests/initrd-network-ssh/id_ed25519 b/nixos/tests/initrd-network-ssh/id_ed25519 new file mode 100644 index 00000000000..f914b3f712f --- /dev/null +++ b/nixos/tests/initrd-network-ssh/id_ed25519 @@ -0,0 +1,7 @@ +-----BEGIN OPENSSH PRIVATE KEY----- +b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW +QyNTUxOQAAACAVcX+32Yqig25RxRA8bel/f604wV0p/63um+Oku/3vfwAAAJi/AJZMvwCW +TAAAAAtzc2gtZWQyNTUxOQAAACAVcX+32Yqig25RxRA8bel/f604wV0p/63um+Oku/3vfw +AAAEAPLjQusjrB90Lk3996G3AbtTeK+XweNgxaegYnml/A/RVxf7fZiqKDblHFEDxt6X9/ +rTjBXSn/re6b46S7/e9/AAAAEG5peGJsZEBsb2NhbGhvc3QBAgMEBQ== +-----END OPENSSH PRIVATE KEY----- diff --git a/nixos/tests/initrd-network-ssh/id_ed25519.pub b/nixos/tests/initrd-network-ssh/id_ed25519.pub new file mode 100644 index 00000000000..40de4a8ac60 --- /dev/null +++ b/nixos/tests/initrd-network-ssh/id_ed25519.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBVxf7fZiqKDblHFEDxt6X9/rTjBXSn/re6b46S7/e9/ nixbld@localhost diff --git a/nixos/tests/initrd-network-ssh/openssh.priv b/nixos/tests/initrd-network-ssh/openssh.priv deleted file mode 100644 index 816d65435fd..00000000000 --- a/nixos/tests/initrd-network-ssh/openssh.priv +++ /dev/null @@ -1,51 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIJKAIBAAKCAgEA7+9A2PCPOTAlFmrablrUWA+VZdAuLfM6JXeHsOF7ZbC2F6lv -WmvDM925DQqhiAjcgWnt5WHWS5Y+b7lGnuzT7fyKegXd80nCRmqlpSG3srX0/lxR -aQAJLzfoDjcsF+ceswQo6GSsYnCHVxMNs007gbbVY3f7o+sWZtLdxJPD2iHvl5Zr -LK0d1RLMmU6cfIhIABlL0S8EWiv29RROepsCQnS0dnK2b+von1SCYoggvAMe2ToA -IAJ8+uqaYfGAyn9q8fjZiRHxLmKDq90tKoCUL5r/2dmEIE+t8T/3PfHoq1QzZts9 -W9idhBdT21dEXBtGyoMtckp5njk5m82LQDYiOXkuSoIUhSOteh5g7fBv1BtVSERx -Jg3UeJjPeGKFwdnzapmAKC2w/6V8xcIINNA+fhZA7B9fD1RAi2TECZ+gyMYDc4T+ -USlMSm9cfvSOrf2+5ngtFb84nHjqvClxCMLu+bCWK8HamqUzhE/a5LbR+48E7PyG -s3KV+sWFN9KOnakTjj/6iQhXZRhgeAK39F2XTk5Ms5Y+BRSStnMoMZA2grIV+jHi -1zbWokVqXPI5YRo5isR/PgtKAV6FfNWumcYoFJ9F40pMHQ6hJVEmtrCBx7EApSl3 -mSGbQJUmilLC51qNhwQRbD//ZtpIrN82HTMKzZ6kj7kDCdsff+wsnkIXmmMCAwEA -AQKCAgA4tMINw6UF7hQF3VEsnbjr6xrzCiWv5HlMm5htPI1OdlpC81+G7ksfOfrf -UzDkFrwOtftsqBfem268Nvyy2OQprfMIbdSMCFWrEM9/XJ2u1gRGDYmMGF8TUtI8 -cduw9oWx53zHl+uKBHBoKu+k/c7flFeQf63wisIroRCawhWau0SF/h3sXCndzuie -Hw8q+4aQx2m80bDkotlmCNuXbIU3MZ/pEql9gDLlXTLHmMaryM0EqAmZhx0ErGe6 -WDqJIV4kPB0loSDwRoY6GzbugZ8ENUzcruTkQhCpIOYNNNw5idfwKkaxK1vm+SBv -iYt1fVjYyfH2vhVKSNoNsaGEloa1u4Dymt/FpFztEpRzHXcw93N8BdLxJ4OUhzm2 -iAbpiyjniTIeAVVi7BUwLXh5WAx8nT0eeb1zKoZg1p1ciK5cYl1Uel7j8xRycsSW -3YgmtuPqY4Agbc9v3eXbQZNDk48JFMEqpIxk97FAkRYpzfxg5Qq14WJCp60CkdRt -T60hXy8lT/BcI8OWLfGJuBbsVLNRiC7PpwqRKQAinXSv134FpP7jrhpkMybs2oIS -5obRG7J5OfOTp925erG5mrpwqa3BPkgqx347Wj9z8quOZyuhi+XaPvqmPtvs5JOl -4RCqjt6RQlHm7xos9ZZGI4jDAIFaFWgyVZrYplOgwxWma4DTgQKCAQEA9+tizQRU -lF0lxNcEPvsFnYJo80Y+MQK9VdtlhR19YuSfwP1NCaMG1MhQ+PVBVmepOwJMRJR7 -9PLfOouNMfixKBGP12dtStMuh7jowq/BxhRI6JWp3RhTZ1yJ9ouzHze7IDrEBa6w -p0hUu9H0Sbt51LXbC3JmTyhbdhfry559DfyGW1Ma/bv/pihL9B5Y7sNf1thNp1gi -GbQ9B+o2Yyw8ZD8zY+sl+aYDSWyCtcBV/KXEF74Bkfs/a5ExJ00X0jYj/TAp2ray -T4PY0FR8wN/O10bFLP9j+Xa/ywbcPhoj8nvVRIg9VfWT/QaEd+KR0EZVxdjCCqne -enbSQksTpAZNwQKCAQEA98E+BMmS+yHUVUhNZABtQ5avwuV4+DoSN8KTp3xwQ0CH -m9fWxSDs12FdyMhDxrJPeywvHtZ18/7cl3dr8wnFVE0s4ongnRDXsNk5xN6J3AaO -KqW4HF9cbwZqzLILy8TrO+EK/EQV9FypbrxqvxAlP1kezIA2CJNzVRAgimSuV/H7 -05HTnp5W06fjtEf8U1CUrdNetoSROUo1j/IMGPYGlsBFYAGrj5y/BlKd+3T3kjRp -Xje7HpiykjrZHn0WDp04Ln+u9nveEewXmHKch313emt7HpW0xspp8JM8OZtEKozk -D5PfYdBfMJJOUlqovCCzTTJ6kNOahknKXFeO/qs5IwKCAQEAjF0/zhWikXF/fcfD -Bql2z2vTYdEmSvdjHSYff1Nn90K71DdVk5wytOxJM/sfp/z+yoMNjVKIL/IGQw5Z -va4xFx+CUhGjxlZ0pLEjT37U9gHsGYsK5jvslLvG/MixfH5AOwoqi5ERQVTpbIF9 -jvVPEAh6YSu/ExglWGJIxTsRUIblxvTxdjEnl/p+rlM0RNJnA6vpo1J51BXA7CdF -7bZQ5u0Feo/bK1I70ClYg/DGfkmYEV0pZG5cxNkqfDbgwsqWa7YGLGd94xkh+ymq -jETqxeWyozxhbQ83nYpfzeVc7t//qlJ8b5uf0wUKoRmtNr9rtp13lzP/21REzPXW -w+oxwQKCAQAoAf2Y2lAw25KlPuq4ZlU+n9u8FkBFnWMJvBMJ7c9XHNmJMf6NkLaO -RTvWy3geYvbwxf7J9QnRH+vRTciR05cY+Olxn6A03N5nwXxRrToH3MsiWeZ0NnX/ -u8KNUYcUHbV60ulqOThuYHQ/3I9EUUAijaqqjV2sXts19ke68W0x6HKpBJhuudT9 -ktPzbdhyP8Xyl/pocNnerXwexZBsi3Ye6+eIDFz+8OnsBHVcgNPluS72tvsxgqj7 -ciNTiBGCxKKo55eCWBhRPpXE2WUrf/hGPYsBMl2h6FfZMH1+M/N7B4tgdJmS+woU -Ftws8lTjJEiwA6HFN1ZxrwLNjJobx9yPAoIBAE0igsBuWWn6rXeOPylYg4264XOq -8gb94pte2n9amDgCzyCn8m6AL3snLC/AoCD19DK+gyK0ukoesXPa3iX6w2xv69ZC -urDx36Jhd4zrJb4QsFPoeKfDP+UvNVZaS41vipRRzY/y11em15prUZ4U8FA/UT1Y -FzkBo9r6iUZRnyBLppMuEfWASDtuRNmeIHynoT1AcQOH3l9vR210iEpmAuJr0CYA -bvTuz3UzzGGEAuIUvuaiRtkfKY52jBmiEr7SSPCr1HvLj3Ccz8bgjgR2kiXmcU50 -1zLnaPAD44LZ/0Fjqj+PimQGT6K7CNXPllmYh7MvoU52g3SVPf6rHlIR0Nc= ------END RSA PRIVATE KEY----- diff --git a/nixos/tests/initrd-network-ssh/openssh.pub b/nixos/tests/initrd-network-ssh/openssh.pub deleted file mode 100644 index 5b72b8085f2..00000000000 --- a/nixos/tests/initrd-network-ssh/openssh.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDv70DY8I85MCUWatpuWtRYD5Vl0C4t8zold4ew4XtlsLYXqW9aa8Mz3bkNCqGICNyBae3lYdZLlj5vuUae7NPt/Ip6Bd3zScJGaqWlIbeytfT+XFFpAAkvN+gONywX5x6zBCjoZKxicIdXEw2zTTuBttVjd/uj6xZm0t3Ek8PaIe+XlmssrR3VEsyZTpx8iEgAGUvRLwRaK/b1FE56mwJCdLR2crZv6+ifVIJiiCC8Ax7ZOgAgAnz66pph8YDKf2rx+NmJEfEuYoOr3S0qgJQvmv/Z2YQgT63xP/c98eirVDNm2z1b2J2EF1PbV0RcG0bKgy1ySnmeOTmbzYtANiI5eS5KghSFI616HmDt8G/UG1VIRHEmDdR4mM94YoXB2fNqmYAoLbD/pXzFwgg00D5+FkDsH18PVECLZMQJn6DIxgNzhP5RKUxKb1x+9I6t/b7meC0VvziceOq8KXEIwu75sJYrwdqapTOET9rkttH7jwTs/IazcpX6xYU30o6dqROOP/qJCFdlGGB4Arf0XZdOTkyzlj4FFJK2cygxkDaCshX6MeLXNtaiRWpc8jlhGjmKxH8+C0oBXoV81a6ZxigUn0XjSkwdDqElUSa2sIHHsQClKXeZIZtAlSaKUsLnWo2HBBFsP/9m2kis3zYdMwrNnqSPuQMJ2x9/7CyeQheaYw== tmtynkky@duuni diff --git a/nixos/tests/initrd-network-ssh/ssh_host_ed25519_key b/nixos/tests/initrd-network-ssh/ssh_host_ed25519_key new file mode 100644 index 00000000000..f1e29459b7a --- /dev/null +++ b/nixos/tests/initrd-network-ssh/ssh_host_ed25519_key @@ -0,0 +1,7 @@ +-----BEGIN OPENSSH PRIVATE KEY----- +b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW +QyNTUxOQAAACDP9Mz6qlxdQqA4omrgbOlVsxSGONCJstjW9zqquajlIAAAAJg0WGFGNFhh +RgAAAAtzc2gtZWQyNTUxOQAAACDP9Mz6qlxdQqA4omrgbOlVsxSGONCJstjW9zqquajlIA +AAAEA0Hjs7LfFPdTf3ThGx6GNKvX0ItgzgXs91Z3oGIaF6S8/0zPqqXF1CoDiiauBs6VWz +FIY40Imy2Nb3Oqq5qOUgAAAAEG5peGJsZEBsb2NhbGhvc3QBAgMEBQ== +-----END OPENSSH PRIVATE KEY----- diff --git a/nixos/tests/initrd-network-ssh/ssh_host_ed25519_key.pub b/nixos/tests/initrd-network-ssh/ssh_host_ed25519_key.pub new file mode 100644 index 00000000000..3aa1587e1dc --- /dev/null +++ b/nixos/tests/initrd-network-ssh/ssh_host_ed25519_key.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM/0zPqqXF1CoDiiauBs6VWzFIY40Imy2Nb3Oqq5qOUg nixbld@localhost diff --git a/nixos/tests/installed-tests/default.nix b/nixos/tests/installed-tests/default.nix index a189ef63f22..b6bdfea2277 100644 --- a/nixos/tests/installed-tests/default.nix +++ b/nixos/tests/installed-tests/default.nix @@ -91,6 +91,7 @@ in ibus = callInstalledTest ./ibus.nix {}; libgdata = callInstalledTest ./libgdata.nix {}; glib-testing = callInstalledTest ./glib-testing.nix {}; + libjcat = callInstalledTest ./libjcat.nix {}; libxmlb = callInstalledTest ./libxmlb.nix {}; malcontent = callInstalledTest ./malcontent.nix {}; ostree = callInstalledTest ./ostree.nix {}; diff --git a/nixos/tests/installed-tests/libjcat.nix b/nixos/tests/installed-tests/libjcat.nix new file mode 100644 index 00000000000..41493a73089 --- /dev/null +++ b/nixos/tests/installed-tests/libjcat.nix @@ -0,0 +1,5 @@ +{ pkgs, makeInstalledTest, ... }: + +makeInstalledTest { + tested = pkgs.libjcat; +} diff --git a/nixos/tests/installer.nix b/nixos/tests/installer.nix index 983861911e0..8d1bfa96d03 100644 --- a/nixos/tests/installer.nix +++ b/nixos/tests/installer.nix @@ -29,7 +29,7 @@ let boot.loader.grub.splashImage = null; ''} - boot.loader.grub.extraConfig = "serial; terminal_output.serial"; + boot.loader.grub.extraConfig = "serial; terminal_output serial"; ${if grubUseEfi then '' boot.loader.grub.device = "nodev"; boot.loader.grub.efiSupport = true; @@ -65,7 +65,7 @@ let # partitions and filesystems. testScriptFun = { bootLoader, createPartitions, grubVersion, grubDevice, grubUseEfi , grubIdentifier, preBootCommands, extraConfig - , testCloneConfig + , testSpecialisationConfig }: let iface = if grubVersion == 1 then "ide" else "virtio"; isEfi = bootLoader == "systemd-boot" || (bootLoader == "grub" && grubUseEfi); @@ -104,7 +104,6 @@ let with subtest("Assert readiness of login prompt"): machine.succeed("echo hello") - machine.wait_for_unit("nixos-manual") with subtest("Wait for hard disks to appear in /dev"): machine.succeed("udevadm settle") @@ -221,7 +220,7 @@ let # Tests for validating clone configuration entries in grub menu '' - + optionalString testCloneConfig '' + + optionalString testSpecialisationConfig '' # Reboot Machine machine = create_machine_named("clone-default-config") ${preBootCommands} @@ -263,7 +262,7 @@ let , bootLoader ? "grub" # either "grub" or "systemd-boot" , grubVersion ? 2, grubDevice ? "/dev/vda", grubIdentifier ? "uuid", grubUseEfi ? false , enableOCR ? false, meta ? {} - , testCloneConfig ? false + , testSpecialisationConfig ? false }: makeTest { inherit enableOCR; @@ -338,7 +337,7 @@ let testScript = testScriptFun { inherit bootLoader createPartitions preBootCommands grubVersion grubDevice grubIdentifier grubUseEfi extraConfig - testCloneConfig; + testSpecialisationConfig; }; }; @@ -412,11 +411,11 @@ let grubUseEfi = true; }; - clone-test-extraconfig = { + specialisation-test-extraconfig = { extraConfig = '' environment.systemPackages = [ pkgs.grub2 ]; boot.loader.grub.configurationName = "Home"; - nesting.clone = [ { + specialisation.work.configuration = { boot.loader.grub.configurationName = lib.mkForce "Work"; environment.etc = { @@ -425,9 +424,9 @@ let gitproxy = none for work.com "; }; - } ]; + }; ''; - testCloneConfig = true; + testSpecialisationConfig = true; }; @@ -441,7 +440,7 @@ in { simple = makeInstallerTest "simple" simple-test-config; # Test cloned configurations with the simple grub configuration - simpleClone = makeInstallerTest "simpleClone" (simple-test-config // clone-test-extraconfig); + simpleSpecialised = makeInstallerTest "simpleSpecialised" (simple-test-config // specialisation-test-extraconfig); # Simple GPT/UEFI configuration using systemd-boot with 3 partitions: ESP, swap & root filesystem simpleUefiSystemdBoot = makeInstallerTest "simpleUefiSystemdBoot" { @@ -468,7 +467,7 @@ in { simpleUefiGrub = makeInstallerTest "simpleUefiGrub" simple-uefi-grub-config; # Test cloned configurations with the uefi grub configuration - simpleUefiGrubClone = makeInstallerTest "simpleUefiGrubClone" (simple-uefi-grub-config // clone-test-extraconfig); + simpleUefiGrubSpecialisation = makeInstallerTest "simpleUefiGrubSpecialisation" (simple-uefi-grub-config // specialisation-test-extraconfig); # Same as the previous, but now with a separate /boot partition. separateBoot = makeInstallerTest "separateBoot" { diff --git a/nixos/tests/iodine.nix b/nixos/tests/iodine.nix new file mode 100644 index 00000000000..41fb2e7778d --- /dev/null +++ b/nixos/tests/iodine.nix @@ -0,0 +1,64 @@ +import ./make-test-python.nix ( + { pkgs, ... }: let + domain = "whatever.example.com"; + password = "false;foo;exit;withspecialcharacters"; + in + { + name = "iodine"; + nodes = { + server = + { ... }: + + { + networking.firewall = { + allowedUDPPorts = [ 53 ]; + trustedInterfaces = [ "dns0" ]; + }; + boot.kernel.sysctl = { + "net.ipv4.ip_forward" = 1; + "net.ipv6.ip_forward" = 1; + }; + + services.iodine.server = { + enable = true; + ip = "10.53.53.1/24"; + passwordFile = "${builtins.toFile "password" password}"; + inherit domain; + }; + + # test resource: accessible only via tunnel + services.openssh = { + enable = true; + openFirewall = false; + }; + }; + + client = + { ... }: { + services.iodine.clients.testClient = { + # test that ProtectHome is "read-only" + passwordFile = "/root/pw"; + relay = "server"; + server = domain; + }; + systemd.tmpfiles.rules = [ + "f /root/pw 0666 root root - ${password}" + ]; + environment.systemPackages = [ + pkgs.nagiosPluginsOfficial + ]; + }; + + }; + + testScript = '' + start_all() + + server.wait_for_unit("sshd") + server.wait_for_unit("iodined") + client.wait_for_unit("iodine-testClient") + + client.succeed("check_ssh -H 10.53.53.1") + ''; + } +) diff --git a/nixos/tests/k3s.nix b/nixos/tests/k3s.nix new file mode 100644 index 00000000000..5bda6f493f0 --- /dev/null +++ b/nixos/tests/k3s.nix @@ -0,0 +1,78 @@ +import ./make-test-python.nix ({ pkgs, ... }: + +let + # A suitable k3s pause image, also used for the test pod + pauseImage = pkgs.dockerTools.buildImage { + name = "test.local/pause"; + tag = "local"; + contents = with pkgs; [ tini coreutils busybox ]; + config.Entrypoint = [ "/bin/tini" "--" "/bin/sleep" "inf" ]; + }; + testPodYaml = pkgs.writeText "test.yml" '' + # Don't use the default service account because there's a race where it may + # not be created yet; make our own instead. + apiVersion: v1 + kind: ServiceAccount + metadata: + name: test + --- + apiVersion: v1 + kind: Pod + metadata: + name: test + spec: + serviceAccountName: test + containers: + - name: test + image: test.local/pause:local + imagePullPolicy: Never + command: ["sh", "-c", "sleep inf"] + ''; +in +{ + name = "k3s"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ euank ]; + }; + + nodes = { + k3s = + { pkgs, ... }: { + environment.systemPackages = [ pkgs.k3s pkgs.gzip ]; + + # k3s uses enough resources the default vm fails. + virtualisation.memorySize = pkgs.lib.mkDefault 1536; + virtualisation.diskSize = pkgs.lib.mkDefault 4096; + + services.k3s.enable = true; + services.k3s.role = "server"; + services.k3s.package = pkgs.k3s; + # Slightly reduce resource usage + services.k3s.extraFlags = "--no-deploy coredns,servicelb,traefik,local-storage,metrics-server --pause-image test.local/pause:local"; + + users.users = { + noprivs = { + isNormalUser = true; + description = "Can't access k3s by default"; + password = "*"; + }; + }; + }; + }; + + testScript = '' + start_all() + + k3s.wait_for_unit("k3s") + k3s.succeed("k3s kubectl cluster-info") + k3s.fail("sudo -u noprivs k3s kubectl cluster-info") + # k3s.succeed("k3s check-config") # fails with the current nixos kernel config, uncomment once this passes + + k3s.succeed( + "zcat ${pauseImage} | k3s ctr image import -" + ) + + k3s.succeed("k3s kubectl apply -f ${testPodYaml}") + k3s.succeed("k3s kubectl wait --for 'condition=Ready' pod/test") + ''; +}) diff --git a/nixos/tests/kafka.nix b/nixos/tests/kafka.nix index f3de24e873b..d29c802b47b 100644 --- a/nixos/tests/kafka.nix +++ b/nixos/tests/kafka.nix @@ -77,7 +77,7 @@ let + "--from-beginning --max-messages 1" ) ''); - }) {}); + }) { inherit system; }); in with pkgs; { kafka_0_9 = makeKafkaTest "kafka_0_9" apacheKafka_0_9; diff --git a/nixos/tests/magic-wormhole-mailbox-server.nix b/nixos/tests/magic-wormhole-mailbox-server.nix new file mode 100644 index 00000000000..144a07e1349 --- /dev/null +++ b/nixos/tests/magic-wormhole-mailbox-server.nix @@ -0,0 +1,38 @@ +import ./make-test-python.nix ({ pkgs, ... }: { + name = "magic-wormhole-mailbox-server"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ mmahut ]; + }; + + nodes = { + server = { ... }: { + networking.firewall.allowedTCPPorts = [ 4000 ]; + services.magic-wormhole-mailbox-server.enable = true; + }; + + client_alice = { ... }: { + networking.firewall.enable = false; + environment.systemPackages = [ pkgs.magic-wormhole ]; + }; + + client_bob = { ... }: { + environment.systemPackages = [ pkgs.magic-wormhole ]; + }; + }; + + testScript = '' + start_all() + + # Start the wormhole relay server + server.wait_for_unit("magic-wormhole-mailbox-server.service") + server.wait_for_open_port(4000) + + # 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 &") + + # Retrieve a secret file from Alice and check its content + client_bob.succeed("wormhole --relay-url=ws://server:4000/v1 receive -0 --accept-file") + client_bob.succeed("grep mysecret secretfile") + ''; +}) diff --git a/nixos/tests/matrix-synapse.nix b/nixos/tests/matrix-synapse.nix index fca53009083..f3623aa3c09 100644 --- a/nixos/tests/matrix-synapse.nix +++ b/nixos/tests/matrix-synapse.nix @@ -35,12 +35,31 @@ in { nodes = { # Since 0.33.0, matrix-synapse doesn't allow underscores in server names - serverpostgres = args: { + serverpostgres = { pkgs, ... }: { services.matrix-synapse = { enable = true; database_type = "psycopg2"; tls_certificate_path = "${cert}"; tls_private_key_path = "${key}"; + database_args = { + password = "synapse"; + }; + }; + services.postgresql = { + enable = true; + + # The database name and user are configured by the following options: + # - services.matrix-synapse.database_name + # - services.matrix-synapse.database_user + # + # The values used here represent the default values of the module. + initialScript = pkgs.writeText "synapse-init.sql" '' + CREATE ROLE "matrix-synapse" WITH LOGIN PASSWORD 'synapse'; + CREATE DATABASE "matrix-synapse" WITH OWNER "matrix-synapse" + TEMPLATE template0 + LC_COLLATE = "C" + LC_CTYPE = "C"; + ''; }; }; diff --git a/nixos/tests/mediawiki.nix b/nixos/tests/mediawiki.nix index 9468c1de8cc..008682310cf 100644 --- a/nixos/tests/mediawiki.nix +++ b/nixos/tests/mediawiki.nix @@ -8,6 +8,13 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: { services.mediawiki.virtualHost.hostName = "localhost"; services.mediawiki.virtualHost.adminAddr = "root@example.com"; services.mediawiki.passwordFile = pkgs.writeText "password" "correcthorsebatterystaple"; + services.mediawiki.extensions = { + Matomo = pkgs.fetchzip { + url = "https://github.com/DaSchTour/matomo-mediawiki-extension/archive/v4.0.1.tar.gz"; + sha256 = "0g5rd3zp0avwlmqagc59cg9bbkn3r7wx7p6yr80s644mj6dlvs1b"; + }; + ParserFunctions = null; + }; }; testScript = '' diff --git a/nixos/tests/mongodb.nix b/nixos/tests/mongodb.nix index 9ebf84eed23..a637ec4bfc0 100644 --- a/nixos/tests/mongodb.nix +++ b/nixos/tests/mongodb.nix @@ -1,42 +1,52 @@ # This test start mongodb, runs a query using mongo shell -import ./make-test-python.nix ({ pkgs, ...} : let - testQuery = pkgs.writeScript "nixtest.js" '' - db.greetings.insert({ "greeting": "hello" }); - print(db.greetings.findOne().greeting); - ''; -in { - name = "mongodb"; - meta = with pkgs.stdenv.lib.maintainers; { - maintainers = [ bluescreen303 offline cstrahan rvl phile314 ]; - }; +import ./make-test-python.nix ({ pkgs, ... }: + let + testQuery = pkgs.writeScript "nixtest.js" '' + db.greetings.insert({ "greeting": "hello" }); + print(db.greetings.findOne().greeting); + ''; - nodes = { - one = - { ... }: - { - services = { - mongodb.enable = true; - mongodb.enableAuth = true; - mongodb.initialRootPassword = "root"; - mongodb.initialScript = pkgs.writeText "mongodb_initial.js" '' - db = db.getSiblingDB("nixtest"); - db.createUser({user:"nixtest",pwd:"nixtest",roles:[{role:"readWrite",db:"nixtest"}]}); - ''; - mongodb.extraConfig = '' - # Allow starting engine with only a small virtual disk - storage.journal.enabled: false - storage.mmapv1.smallFiles: true - ''; - }; - }; + runMongoDBTest = pkg: '' + node.execute("(rm -rf data || true) && mkdir data") + node.execute( + "${pkg}/bin/mongod --fork --logpath logs --dbpath data" + ) + node.wait_for_open_port(27017) + + assert "hello" in node.succeed( + "mongo ${testQuery}" + ) + + node.execute( + "${pkg}/bin/mongod --shutdown --dbpath data" + ) + node.wait_for_closed_port(27017) + ''; + + in { + name = "mongodb"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ bluescreen303 offline cstrahan rvl phile314 ]; }; - testScript = '' - start_all() - one.wait_for_unit("mongodb.service") - one.succeed( - "mongo -u nixtest -p nixtest nixtest ${testQuery} | grep -q hello" - ) - ''; -}) + nodes = { + node = {...}: { + environment.systemPackages = with pkgs; [ + mongodb-3_4 + mongodb-3_6 + mongodb-4_0 + ]; + }; + }; + + testScript = '' + node.start() + '' + + runMongoDBTest pkgs.mongodb-3_4 + + runMongoDBTest pkgs.mongodb-3_6 + + runMongoDBTest pkgs.mongodb-4_0 + + '' + node.shutdown() + ''; + }) diff --git a/nixos/tests/mpd.nix b/nixos/tests/mpd.nix index 895b7e2014c..60aef586ad5 100644 --- a/nixos/tests/mpd.nix +++ b/nixos/tests/mpd.nix @@ -5,7 +5,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: # License: http://creativecommons.org/licenses/by-sa/4.0/ name = "Blue_Wave_Theory-Skyhawk_Beach.mp3"; - url = https://freemusicarchive.org/file/music/ccCommunity/Blue_Wave_Theory/Surf_Music_Month_Challenge/Blue_Wave_Theory_-_04_-_Skyhawk_Beach.mp3; + url = "https://freemusicarchive.org/file/music/ccCommunity/Blue_Wave_Theory/Surf_Music_Month_Challenge/Blue_Wave_Theory_-_04_-_Skyhawk_Beach.mp3"; sha256 = "0xw417bxkx4gqqy139bb21yldi37xx8xjfxrwaqa0gyw19dl6mgp"; }; diff --git a/nixos/tests/mysql.nix b/nixos/tests/mysql.nix index 924bac84e26..11c1dabf936 100644 --- a/nixos/tests/mysql.nix +++ b/nixos/tests/mysql.nix @@ -22,6 +22,27 @@ import ./make-test-python.nix ({ pkgs, ...} : { services.mysql.package = pkgs.mysql57; }; + mysql80 = + { pkgs, ... }: + + { + # 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 = "testdb"; schema = ./testdb.sql; } + { name = "empty_testdb"; } + ]; + # note that using pkgs.writeText here is generally not a good idea, + # as it will store the password in world-readable /nix/store ;) + services.mysql.initialScript = pkgs.writeText "mysql-init.sql" '' + CREATE USER 'passworduser'@'localhost' IDENTIFIED BY 'password123'; + ''; + services.mysql.package = pkgs.mysql80; + }; + mariadb = { pkgs, ... }: @@ -47,6 +68,11 @@ import ./make-test-python.nix ({ pkgs, ...} : { "testdb2.*" = "ALL PRIVILEGES"; }; }]; + services.mysql.settings = { + mysqld = { + plugin-load-add = [ "ha_tokudb.so" "ha_rocksdb.so" ]; + }; + }; services.mysql.package = pkgs.mariadb; }; @@ -61,6 +87,12 @@ import ./make-test-python.nix ({ pkgs, ...} : { # ';' acts as no-op, just check whether login succeeds with the user created from the initialScript mysql.succeed("echo ';' | mysql -u passworduser --password=password123") + mysql80.wait_for_unit("mysql") + mysql80.succeed("echo 'use empty_testdb;' | mysql -u root") + mysql80.succeed("echo 'use testdb; select * from tests;' | mysql -u root -N | grep 4") + # ';' acts as no-op, just check whether login succeeds with the user created from the initialScript + mysql80.succeed("echo ';' | mysql -u passworduser --password=password123") + mariadb.wait_for_unit("mysql") mariadb.succeed( "echo 'use testdb; create table tests (test_id INT, PRIMARY KEY (test_id));' | sudo -u testuser mysql -u testuser" @@ -79,5 +111,33 @@ import ./make-test-python.nix ({ pkgs, ...} : { mariadb.succeed( "echo 'use testdb; select test_id from tests;' | sudo -u testuser mysql -u testuser -N | grep 42" ) + + # Check if TokuDB plugin works + mariadb.succeed( + "echo 'use testdb; create table tokudb (test_id INT, PRIMARY KEY (test_id)) ENGINE = TokuDB;' | sudo -u testuser mysql -u testuser" + ) + mariadb.succeed( + "echo 'use testdb; insert into tokudb values (25);' | sudo -u testuser mysql -u testuser" + ) + mariadb.succeed( + "echo 'use testdb; select test_id from tokudb;' | sudo -u testuser mysql -u testuser -N | grep 25" + ) + mariadb.succeed( + "echo 'use testdb; drop table tokudb;' | sudo -u testuser mysql -u testuser" + ) + + # Check if RocksDB plugin works + mariadb.succeed( + "echo 'use testdb; create table rocksdb (test_id INT, PRIMARY KEY (test_id)) ENGINE = RocksDB;' | sudo -u testuser mysql -u testuser" + ) + mariadb.succeed( + "echo 'use testdb; insert into rocksdb values (28);' | sudo -u testuser mysql -u testuser" + ) + mariadb.succeed( + "echo 'use testdb; select test_id from rocksdb;' | sudo -u testuser mysql -u testuser -N | grep 28" + ) + mariadb.succeed( + "echo 'use testdb; drop table rocksdb;' | sudo -u testuser mysql -u testuser" + ) ''; }) diff --git a/nixos/tests/nesting.nix b/nixos/tests/nesting.nix deleted file mode 100644 index a75806b24ff..00000000000 --- a/nixos/tests/nesting.nix +++ /dev/null @@ -1,44 +0,0 @@ -import ./make-test-python.nix { - name = "nesting"; - nodes = { - clone = { pkgs, ... }: { - environment.systemPackages = [ pkgs.cowsay ]; - nesting.clone = [ - ({ pkgs, ... }: { - environment.systemPackages = [ pkgs.hello ]; - }) - ]; - }; - children = { pkgs, ... }: { - environment.systemPackages = [ pkgs.cowsay ]; - nesting.children = [ - ({ pkgs, ... }: { - environment.systemPackages = [ pkgs.hello ]; - }) - ]; - }; - }; - testScript = '' - clone.wait_for_unit("default.target") - clone.succeed("cowsay hey") - clone.fail("hello") - - with subtest("Nested clones do inherit from parent"): - clone.succeed( - "/run/current-system/fine-tune/child-1/bin/switch-to-configuration test" - ) - clone.succeed("cowsay hey") - clone.succeed("hello") - - children.wait_for_unit("default.target") - children.succeed("cowsay hey") - children.fail("hello") - - with subtest("Nested children do not inherit from parent"): - children.succeed( - "/run/current-system/fine-tune/child-1/bin/switch-to-configuration test" - ) - children.fail("cowsay hey") - children.succeed("hello") - ''; -} diff --git a/nixos/tests/networking.nix b/nixos/tests/networking.nix index 933a4451af9..3d8ab761a44 100644 --- a/nixos/tests/networking.nix +++ b/nixos/tests/networking.nix @@ -200,6 +200,7 @@ let useDHCP = false; interfaces.eth1 = { ipv4.addresses = mkOverride 0 [ ]; + mtu = 1343; useDHCP = true; }; interfaces.eth2.ipv4.addresses = mkOverride 0 [ ]; @@ -216,6 +217,9 @@ let with subtest("Wait until we have an ip address on each interface"): client.wait_until_succeeds("ip addr show dev eth1 | grep -q '192.168.1'") + with subtest("ensure MTU is set"): + assert "mtu 1343" in client.succeed("ip link show dev eth1") + with subtest("Test vlan 1"): client.wait_until_succeeds("ping -c 1 192.168.1.1") client.wait_until_succeeds("ping -c 1 192.168.1.2") @@ -455,11 +459,14 @@ let ipv4.addresses = [ { address = "192.168.1.1"; prefixLength = 24; } ]; ipv6.addresses = [ { address = "2001:1470:fffd:2096::"; prefixLength = 64; } ]; virtual = true; + mtu = 1342; + macAddress = "02:de:ad:be:ef:01"; }; networking.interfaces.tun0 = { ipv4.addresses = [ { address = "192.168.1.2"; prefixLength = 24; } ]; ipv6.addresses = [ { address = "2001:1470:fffd:2097::"; prefixLength = 64; } ]; virtual = true; + mtu = 1343; }; }; @@ -471,7 +478,7 @@ let with subtest("Wait for networking to come up"): machine.start() - machine.wait_for_unit("network-online.target") + machine.wait_for_unit("network.target") with subtest("Test interfaces set up"): list = machine.succeed("ip tuntap list | sort").strip() @@ -486,7 +493,12 @@ let """.format( list, targetList ) - + with subtest("Test MTU and MAC Address are configured"): + assert "mtu 1342" in machine.succeed("ip link show dev tap0") + assert "mtu 1343" in machine.succeed("ip link show dev tun0") + assert "02:de:ad:be:ef:01" in machine.succeed("ip link show dev tap0") + '' # network-addresses-* only exist in scripted networking + + optionalString (!networkd) '' with subtest("Test interfaces clean up"): machine.succeed("systemctl stop network-addresses-tap0") machine.sleep(10) @@ -602,17 +614,17 @@ let }; testScript = '' - targetIPv4Table = """ - 10.0.0.0/16 proto static scope link mtu 1500 - 192.168.1.0/24 proto kernel scope link src 192.168.1.2 - 192.168.2.0/24 via 192.168.1.1 proto static - """.strip() + targetIPv4Table = [ + "10.0.0.0/16 proto static scope link mtu 1500", + "192.168.1.0/24 proto kernel scope link src 192.168.1.2", + "192.168.2.0/24 via 192.168.1.1 proto static", + ] - targetIPv6Table = """ - 2001:1470:fffd:2097::/64 proto kernel metric 256 pref medium - 2001:1470:fffd:2098::/64 via fdfd:b3f0::1 proto static metric 1024 pref medium - fdfd:b3f0::/48 proto static metric 1024 pref medium - """.strip() + targetIPv6Table = [ + "2001:1470:fffd:2097::/64 proto kernel metric 256 pref medium", + "2001:1470:fffd:2098::/64 via fdfd:b3f0::1 proto static metric 1024 pref medium", + "fdfd:b3f0::/48 proto static metric 1024 pref medium", + ] machine.start() machine.wait_for_unit("network.target") @@ -620,9 +632,9 @@ let with subtest("test routing tables"): ipv4Table = machine.succeed("ip -4 route list dev eth0 | head -n3").strip() ipv6Table = machine.succeed("ip -6 route list dev eth0 | head -n3").strip() - assert ( - ipv4Table == targetIPv4Table - ), """ + assert [ + l.strip() for l in ipv4Table.splitlines() + ] == targetIPv4Table, """ The IPv4 routing table does not match the expected one: Result: {} @@ -631,9 +643,9 @@ let """.format( ipv4Table, targetIPv4Table ) - assert ( - ipv6Table == targetIPv6Table - ), """ + assert [ + l.strip() for l in ipv6Table.splitlines() + ] == targetIPv6Table, """ The IPv6 routing table does not match the expected one: Result: {} @@ -655,6 +667,31 @@ let ), "The IPv6 routing table has not been properly cleaned:\n{}".format(ipv6Residue) ''; }; + # even with disabled networkd, systemd.network.links should work + # (as it's handled by udev, not networkd) + link = { + name = "Link"; + nodes.client = { pkgs, ... }: { + virtualisation.vlans = [ 1 ]; + networking = { + useNetworkd = networkd; + useDHCP = false; + }; + systemd.network.links."50-foo" = { + matchConfig = { + Name = "foo"; + Driver = "dummy"; + }; + linkConfig.MTUBytes = "1442"; + }; + }; + testScript = '' + print(client.succeed("ip l add name foo type dummy")) + print(client.succeed("stat /etc/systemd/network/50-foo.link")) + client.succeed("udevadm settle") + assert "mtu 1442" in client.succeed("ip l show dummy0") + ''; + }; }; in mapAttrs (const (attrs: makeTest (attrs // { diff --git a/nixos/tests/nextcloud/basic.nix b/nixos/tests/nextcloud/basic.nix index 75862feb202..92ac5c46e8f 100644 --- a/nixos/tests/nextcloud/basic.nix +++ b/nixos/tests/nextcloud/basic.nix @@ -32,7 +32,7 @@ in { testScript = let withRcloneEnv = pkgs.writeScript "with-rclone-env" '' - #!${pkgs.stdenv.shell} + #!${pkgs.runtimeShell} export RCLONE_CONFIG_NEXTCLOUD_TYPE=webdav export RCLONE_CONFIG_NEXTCLOUD_URL="http://nextcloud/remote.php/webdav/" export RCLONE_CONFIG_NEXTCLOUD_VENDOR="nextcloud" @@ -41,12 +41,12 @@ in { "''${@}" ''; copySharedFile = pkgs.writeScript "copy-shared-file" '' - #!${pkgs.stdenv.shell} + #!${pkgs.runtimeShell} echo 'hi' | ${withRcloneEnv} ${pkgs.rclone}/bin/rclone rcat nextcloud:test-shared-file ''; diffSharedFile = pkgs.writeScript "diff-shared-file" '' - #!${pkgs.stdenv.shell} + #!${pkgs.runtimeShell} diff <(echo 'hi') <(${pkgs.rclone}/bin/rclone cat nextcloud:test-shared-file) ''; in '' diff --git a/nixos/tests/nextcloud/with-mysql-and-memcached.nix b/nixos/tests/nextcloud/with-mysql-and-memcached.nix index b9ba5888187..8db630be893 100644 --- a/nixos/tests/nextcloud/with-mysql-and-memcached.nix +++ b/nixos/tests/nextcloud/with-mysql-and-memcached.nix @@ -61,14 +61,14 @@ in { testScript = let configureMemcached = pkgs.writeScript "configure-memcached" '' - #!${pkgs.stdenv.shell} + #!${pkgs.runtimeShell} nextcloud-occ config:system:set memcached_servers 0 0 --value 127.0.0.1 --type string nextcloud-occ config:system:set memcached_servers 0 1 --value 11211 --type integer nextcloud-occ config:system:set memcache.local --value '\OC\Memcache\APCu' --type string nextcloud-occ config:system:set memcache.distributed --value '\OC\Memcache\Memcached' --type string ''; withRcloneEnv = pkgs.writeScript "with-rclone-env" '' - #!${pkgs.stdenv.shell} + #!${pkgs.runtimeShell} export RCLONE_CONFIG_NEXTCLOUD_TYPE=webdav export RCLONE_CONFIG_NEXTCLOUD_URL="http://nextcloud/remote.php/webdav/" export RCLONE_CONFIG_NEXTCLOUD_VENDOR="nextcloud" @@ -76,12 +76,12 @@ in { export RCLONE_CONFIG_NEXTCLOUD_PASS="$(${pkgs.rclone}/bin/rclone obscure ${adminpass})" ''; copySharedFile = pkgs.writeScript "copy-shared-file" '' - #!${pkgs.stdenv.shell} + #!${pkgs.runtimeShell} echo 'hi' | ${pkgs.rclone}/bin/rclone rcat nextcloud:test-shared-file ''; diffSharedFile = pkgs.writeScript "diff-shared-file" '' - #!${pkgs.stdenv.shell} + #!${pkgs.runtimeShell} diff <(echo 'hi') <(${pkgs.rclone}/bin/rclone cat nextcloud:test-shared-file) ''; in '' diff --git a/nixos/tests/nextcloud/with-postgresql-and-redis.nix b/nixos/tests/nextcloud/with-postgresql-and-redis.nix index 324853350af..95219cac9be 100644 --- a/nixos/tests/nextcloud/with-postgresql-and-redis.nix +++ b/nixos/tests/nextcloud/with-postgresql-and-redis.nix @@ -60,14 +60,14 @@ in { testScript = let configureRedis = pkgs.writeScript "configure-redis" '' - #!${pkgs.stdenv.shell} + #!${pkgs.runtimeShell} nextcloud-occ config:system:set redis 'host' --value 'localhost' --type string nextcloud-occ config:system:set redis 'port' --value 6379 --type integer nextcloud-occ config:system:set memcache.local --value '\OC\Memcache\Redis' --type string nextcloud-occ config:system:set memcache.locking --value '\OC\Memcache\Redis' --type string ''; withRcloneEnv = pkgs.writeScript "with-rclone-env" '' - #!${pkgs.stdenv.shell} + #!${pkgs.runtimeShell} export RCLONE_CONFIG_NEXTCLOUD_TYPE=webdav export RCLONE_CONFIG_NEXTCLOUD_URL="http://nextcloud/remote.php/webdav/" export RCLONE_CONFIG_NEXTCLOUD_VENDOR="nextcloud" @@ -76,12 +76,12 @@ in { "''${@}" ''; copySharedFile = pkgs.writeScript "copy-shared-file" '' - #!${pkgs.stdenv.shell} + #!${pkgs.runtimeShell} echo 'hi' | ${pkgs.rclone}/bin/rclone rcat nextcloud:test-shared-file ''; diffSharedFile = pkgs.writeScript "diff-shared-file" '' - #!${pkgs.stdenv.shell} + #!${pkgs.runtimeShell} diff <(echo 'hi') <(${pkgs.rclone}/bin/rclone cat nextcloud:test-shared-file) ''; in '' diff --git a/nixos/tests/nginx-etag.nix b/nixos/tests/nginx-etag.nix index e357309d166..63ab2e0c6c2 100644 --- a/nixos/tests/nginx-etag.nix +++ b/nixos/tests/nginx-etag.nix @@ -19,7 +19,7 @@ import ./make-test-python.nix { ''; }; - nesting.clone = lib.singleton { + specialisation.pass-checks.configuration = { services.nginx.virtualHosts.server = { root = lib.mkForce (pkgs.runCommandLocal "testdir2" {} '' mkdir "$out" @@ -70,7 +70,7 @@ import ./make-test-python.nix { testScript = { nodes, ... }: let inherit (nodes.server.config.system.build) toplevel; - newSystem = "${toplevel}/fine-tune/child-1"; + newSystem = "${toplevel}/specialisation/pass-checks"; in '' start_all() diff --git a/nixos/tests/nginx-pubhtml.nix b/nixos/tests/nginx-pubhtml.nix new file mode 100644 index 00000000000..432913cb42d --- /dev/null +++ b/nixos/tests/nginx-pubhtml.nix @@ -0,0 +1,20 @@ +import ./make-test-python.nix { + name = "nginx-pubhtml"; + + machine = { pkgs, ... }: { + services.nginx.enable = true; + services.nginx.virtualHosts.localhost = { + locations."~ ^/\\~([a-z0-9_]+)(/.*)?$".alias = "/home/$1/public_html$2"; + }; + users.users.foo.isNormalUser = true; + }; + + testScript = '' + machine.wait_for_unit("nginx") + machine.wait_for_open_port(80) + machine.succeed("chmod 0711 /home/foo") + machine.succeed("su -c 'mkdir -p /home/foo/public_html' foo") + machine.succeed("su -c 'echo bar > /home/foo/public_html/bar.txt' foo") + machine.succeed('test "$(curl -fvvv http://localhost/~foo/bar.txt)" = bar') + ''; +} diff --git a/nixos/tests/nginx.nix b/nixos/tests/nginx.nix index 7358800a676..18822f09568 100644 --- a/nixos/tests/nginx.nix +++ b/nixos/tests/nginx.nix @@ -42,38 +42,35 @@ import ./make-test-python.nix ({ pkgs, ... }: { services.nginx.enableReload = true; - nesting.clone = [ - { - services.nginx.virtualHosts.localhost = { - root = lib.mkForce (pkgs.runCommand "testdir2" {} '' - mkdir "$out" - echo content changed > "$out/index.html" - ''); - }; - } + specialisation.etagSystem.configuration = { + services.nginx.virtualHosts.localhost = { + root = lib.mkForce (pkgs.runCommand "testdir2" {} '' + mkdir "$out" + echo content changed > "$out/index.html" + ''); + }; + }; - { - services.nginx.virtualHosts."1.my.test".listen = [ { addr = "127.0.0.1"; port = 8080; }]; - } + specialisation.justReloadSystem.configuration = { + services.nginx.virtualHosts."1.my.test".listen = [ { addr = "127.0.0.1"; port = 8080; }]; + }; - { - services.nginx.package = pkgs.nginxUnstable; - } + specialisation.reloadRestartSystem.configuration = { + services.nginx.package = pkgs.nginxUnstable; + }; - { - services.nginx.package = pkgs.nginxUnstable; - services.nginx.virtualHosts."!@$$(#*%".locations."~@#*$*!)".proxyPass = ";;;"; - } - ]; + specialisation.reloadWithErrorsSystem.configuration = { + services.nginx.package = pkgs.nginxUnstable; + services.nginx.virtualHosts."!@$$(#*%".locations."~@#*$*!)".proxyPass = ";;;"; + }; }; - }; testScript = { nodes, ... }: let - etagSystem = "${nodes.webserver.config.system.build.toplevel}/fine-tune/child-1"; - justReloadSystem = "${nodes.webserver.config.system.build.toplevel}/fine-tune/child-2"; - reloadRestartSystem = "${nodes.webserver.config.system.build.toplevel}/fine-tune/child-3"; - reloadWithErrorsSystem = "${nodes.webserver.config.system.build.toplevel}/fine-tune/child-4"; + etagSystem = "${nodes.webserver.config.system.build.toplevel}/specialisation/etagSystem"; + justReloadSystem = "${nodes.webserver.config.system.build.toplevel}/specialisation/justReloadSystem"; + reloadRestartSystem = "${nodes.webserver.config.system.build.toplevel}/specialisation/reloadRestartSystem"; + reloadWithErrorsSystem = "${nodes.webserver.config.system.build.toplevel}/specialisation/reloadWithErrorsSystem"; in '' url = "http://localhost/index.html" diff --git a/nixos/tests/os-prober.nix b/nixos/tests/os-prober.nix index 5407a62339f..6a38f5ca531 100644 --- a/nixos/tests/os-prober.nix +++ b/nixos/tests/os-prober.nix @@ -51,6 +51,8 @@ let hashed-mirrors = connect-timeout = 1 ''; + # save some memory + documentation.enable = false; }; # /etc/nixos/configuration.nix for the vm configFile = pkgs.writeText "configuration.nix" '' diff --git a/nixos/tests/php/default.nix b/nixos/tests/php/default.nix new file mode 100644 index 00000000000..ee7a3b56a3e --- /dev/null +++ b/nixos/tests/php/default.nix @@ -0,0 +1,8 @@ +{ system ? builtins.currentSystem, + config ? {}, + pkgs ? import ../../.. { inherit system config; } +}: { + fpm = import ./fpm.nix { inherit system pkgs; }; + httpd = import ./httpd.nix { inherit system pkgs; }; + pcre = import ./pcre.nix { inherit system pkgs; }; +} diff --git a/nixos/tests/php/fpm.nix b/nixos/tests/php/fpm.nix new file mode 100644 index 00000000000..513abd94373 --- /dev/null +++ b/nixos/tests/php/fpm.nix @@ -0,0 +1,53 @@ +import ../make-test-python.nix ({pkgs, lib, ...}: { + name = "php-fpm-nginx-test"; + meta.maintainers = lib.teams.php.members; + + machine = { config, lib, pkgs, ... }: { + services.nginx = { + enable = true; + + virtualHosts."phpfpm" = let + testdir = pkgs.writeTextDir "web/index.php" " - ''; + ''; in '' Alias / ${testRoot}/ @@ -30,11 +29,11 @@ import ./make-test-python.nix ({ ...}: { }; }; testScript = { ... }: - '' - machine.wait_for_unit("httpd.service") - # Ensure php evaluation by matching on the var_dump syntax - assert 'string(${toString (builtins.stringLength testString)}) "${testString}"' in machine.succeed( - "curl -vvv -s http://127.0.0.1:80/index.php" - ) - ''; + '' + machine.wait_for_unit("httpd.service") + # Ensure php evaluation by matching on the var_dump syntax + response = machine.succeed("curl -vvv -s http://127.0.0.1:80/index.php") + expected = 'string(${toString (builtins.stringLength testString)}) "${testString}"' + assert expected in response, "Does not appear to be able to use subgroups." + ''; }) diff --git a/nixos/tests/podman.nix b/nixos/tests/podman.nix new file mode 100644 index 00000000000..283db71d9a4 --- /dev/null +++ b/nixos/tests/podman.nix @@ -0,0 +1,60 @@ +# This test runs podman and checks if simple container starts + +import ./make-test-python.nix ( + { pkgs, lib, ... }: { + name = "podman"; + meta = { + maintainers = lib.teams.podman.members; + }; + + nodes = { + podman = + { pkgs, ... }: + { + virtualisation.podman.enable = true; + virtualisation.containers.users = [ + "alice" + ]; + + users.users.alice = { + isNormalUser = true; + home = "/home/alice"; + description = "Alice Foobar"; + }; + + }; + }; + + testScript = '' + import shlex + + + def su_cmd(cmd): + cmd = shlex.quote(cmd) + return f"su alice -l -c {cmd}" + + + podman.wait_for_unit("sockets.target") + start_all() + + + with subtest("Run container as root"): + podman.succeed("tar cv --files-from /dev/null | podman import - scratchimg") + podman.succeed( + "podman run -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10" + ) + podman.succeed("podman ps | grep sleeping") + podman.succeed("podman stop sleeping") + + with subtest("Run container rootless"): + podman.succeed(su_cmd("tar cv --files-from /dev/null | podman import - scratchimg")) + podman.succeed( + su_cmd( + "podman run -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10" + ) + ) + podman.succeed(su_cmd("podman ps | grep sleeping")) + podman.succeed(su_cmd("podman stop sleeping")) + ''; + } +) diff --git a/nixos/tests/quorum.nix b/nixos/tests/quorum.nix new file mode 100644 index 00000000000..846d2a93018 --- /dev/null +++ b/nixos/tests/quorum.nix @@ -0,0 +1,79 @@ +import ./make-test-python.nix ({ pkgs, ... }: { + name = "quorum"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ mmahut ]; + }; + + nodes = { + machine = { ... }: { + services.quorum = { + enable = true; + permissioned = false; + staticNodes = [ "enode://dd333ec28f0a8910c92eb4d336461eea1c20803eed9cf2c056557f986e720f8e693605bba2f4e8f289b1162e5ac7c80c914c7178130711e393ca76abc1d92f57@0.0.0.0:30303?discport=0" ]; + genesis = { + alloc = { + "189d23d201b03ae1cf9113672df29a5d672aefa3" = { + balance = "0x446c3b15f9926687d2c40534fdb564000000000000"; + }; + "44b07d2c28b8ed8f02b45bd84ac7d9051b3349e6" = { + balance = "0x446c3b15f9926687d2c40534fdb564000000000000"; + }; + "4c1ccd426833b9782729a212c857f2f03b7b4c0d" = { + balance = "0x446c3b15f9926687d2c40534fdb564000000000000"; + }; + "7ae555d0f6faad7930434abdaac2274fd86ab516" = { + balance = "0x446c3b15f9926687d2c40534fdb564000000000000"; + }; + c1056df7c02b6f1a353052eaf0533cc7cb743b52 = { + balance = "0x446c3b15f9926687d2c40534fdb564000000000000"; + }; + }; + coinbase = "0x0000000000000000000000000000000000000000"; + config = { + byzantiumBlock = 1; + chainId = 10; + eip150Block = 1; + eip150Hash = + "0x0000000000000000000000000000000000000000000000000000000000000000"; + eip155Block = 1; + eip158Block = 1; + isQuorum = true; + istanbul = { + epoch = 30000; + policy = 0; + }; + }; + difficulty = "0x1"; + extraData = + "0x0000000000000000000000000000000000000000000000000000000000000000f8aff869944c1ccd426833b9782729a212c857f2f03b7b4c0d94189d23d201b03ae1cf9113672df29a5d672aefa39444b07d2c28b8ed8f02b45bd84ac7d9051b3349e694c1056df7c02b6f1a353052eaf0533cc7cb743b52947ae555d0f6faad7930434abdaac2274fd86ab516b8410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0"; + gasLimit = "0xe0000000"; + gasUsed = "0x0"; + mixHash = + "0x63746963616c2062797a616e74696e65206661756c7420746f6c6572616e6365"; + nonce = "0x0"; + number = "0x0"; + parentHash = + "0x0000000000000000000000000000000000000000000000000000000000000000"; + timestamp = "0x5cffc201"; + }; + }; + }; + }; + + testScript = '' + start_all() + machine.wait_until_succeeds("mkdir -p /var/lib/quorum/keystore") + machine.wait_until_succeeds( + 'echo \{\\"address\\":\\"9377bc3936de934c497e22917b81aa8774ac3bb0\\",\\"crypto\\":\{\\"cipher\\":\\"aes-128-ctr\\",\\"ciphertext\\":\\"ad8341d8ef225650403fd366c955f41095e438dd966a3c84b3d406818c1e366c\\",\\"cipherparams\\":\{\\"iv\\":\\"2a09f7a72fd6dff7c43150ff437e6ac2\\"\},\\"kdf\\":\\"scrypt\\",\\"kdfparams\\":\{\\"dklen\\":32,\\"n\\":262144,\\"p\\":1,\\"r\\":8,\\"salt\\":\\"d1a153845bb80cd6274c87c5bac8ac09fdfac5ff131a6f41b5ed319667f12027\\"\},\\"mac\\":\\"a9621ad88fa1d042acca6fc2fcd711f7e05bfbadea3f30f379235570c8e270d3\\"\},\\"id\\":\\"89e847a3-1527-42f6-a321-77de0a14ce02\\",\\"version\\":3\}\\" > /var/lib/quorum/keystore/UTC--2020-03-23T11-08-34.144812212Z--9377bc3936de934c497e22917b81aa8774ac3bb0' + ) + machine.wait_until_succeeds( + "echo fe2725c4e8f7617764b845e8d939a65c664e7956eb47ed7d934573f16488efc1 > /var/lib/quorum/nodekey" + ) + machine.wait_until_succeeds("systemctl restart quorum") + machine.wait_for_unit("quorum.service") + machine.sleep(15) + machine.wait_until_succeeds( + 'geth attach /var/lib/quorum/geth.ipc --exec "eth.accounts" | grep 0x9377bc3936de934c497e22917b81aa8774ac3bb0' + ) + ''; +}) diff --git a/nixos/tests/rabbitmq.nix b/nixos/tests/rabbitmq.nix index 8e7f34d06e3..f403e4ac2ed 100644 --- a/nixos/tests/rabbitmq.nix +++ b/nixos/tests/rabbitmq.nix @@ -15,7 +15,7 @@ import ./make-test-python.nix ({ pkgs, ... }: { machine.wait_for_unit("rabbitmq.service") machine.wait_until_succeeds( - 'su -s ${pkgs.stdenv.shell} rabbitmq -c "rabbitmqctl status"' + 'su -s ${pkgs.runtimeShell} rabbitmq -c "rabbitmqctl status"' ) ''; }) diff --git a/nixos/tests/redmine.nix b/nixos/tests/redmine.nix index f0f4cbf6a21..3866a1f528c 100644 --- a/nixos/tests/redmine.nix +++ b/nixos/tests/redmine.nix @@ -3,74 +3,42 @@ pkgs ? import ../.. { inherit system config; } }: -with import ../lib/testing.nix { inherit system pkgs; }; +with import ../lib/testing-python.nix { inherit system pkgs; }; with pkgs.lib; let - mysqlTest = package: makeTest { - machine = - { config, pkgs, ... }: - { services.redmine.enable = true; - services.redmine.package = package; - services.redmine.database.type = "mysql2"; - services.redmine.plugins = { + redmineTest = { name, type }: makeTest { + name = "redmine-${name}"; + machine = { config, pkgs, ... }: { + services.redmine = { + enable = true; + package = pkgs.redmine; + database.type = type; + plugins = { redmine_env_auth = pkgs.fetchurl { - url = https://github.com/Intera/redmine_env_auth/archive/0.7.zip; + url = "https://github.com/Intera/redmine_env_auth/archive/0.7.zip"; sha256 = "1xb8lyarc7mpi86yflnlgyllh9hfwb9z304f19dx409gqpia99sc"; }; }; - services.redmine.themes = { + themes = { dkuk-redmine_alex_skin = pkgs.fetchurl { - url = https://bitbucket.org/dkuk/redmine_alex_skin/get/1842ef675ef3.zip; + url = "https://bitbucket.org/dkuk/redmine_alex_skin/get/1842ef675ef3.zip"; sha256 = "0hrin9lzyi50k4w2bd2b30vrf1i4fi1c0gyas5801wn8i7kpm9yl"; }; }; }; + }; testScript = '' - startAll; - $machine->waitForUnit('redmine.service'); - $machine->waitForOpenPort('3000'); - $machine->succeed("curl --fail http://localhost:3000/"); + start_all() + machine.wait_for_unit("redmine.service") + machine.wait_for_open_port(3000) + machine.succeed("curl --fail http://localhost:3000/") ''; - }; - - pgsqlTest = package: makeTest { - machine = - { config, pkgs, ... }: - { services.redmine.enable = true; - services.redmine.package = package; - services.redmine.database.type = "postgresql"; - services.redmine.plugins = { - redmine_env_auth = pkgs.fetchurl { - url = https://github.com/Intera/redmine_env_auth/archive/0.7.zip; - sha256 = "1xb8lyarc7mpi86yflnlgyllh9hfwb9z304f19dx409gqpia99sc"; - }; - }; - services.redmine.themes = { - dkuk-redmine_alex_skin = pkgs.fetchurl { - url = https://bitbucket.org/dkuk/redmine_alex_skin/get/1842ef675ef3.zip; - sha256 = "0hrin9lzyi50k4w2bd2b30vrf1i4fi1c0gyas5801wn8i7kpm9yl"; - }; - }; - }; - - testScript = '' - startAll; - $machine->waitForUnit('redmine.service'); - $machine->waitForOpenPort('3000'); - $machine->succeed("curl --fail http://localhost:3000/"); - ''; - }; -in -{ - mysql = mysqlTest pkgs.redmine // { - name = "mysql"; - meta.maintainers = [ maintainers.aanderse ]; - }; - - pgsql = pgsqlTest pkgs.redmine // { - name = "pgsql"; + } // { meta.maintainers = [ maintainers.aanderse ]; }; +in { + mysql = redmineTest { name = "mysql"; type = "mysql2"; }; + pgsql = redmineTest { name = "pgsql"; type = "postgresql"; }; } diff --git a/nixos/tests/roundcube.nix b/nixos/tests/roundcube.nix index 1897b53e283..97e1125694b 100644 --- a/nixos/tests/roundcube.nix +++ b/nixos/tests/roundcube.nix @@ -12,6 +12,7 @@ import ./make-test-python.nix ({ pkgs, ...} : { database.password = "not production"; package = pkgs.roundcube.withPlugins (plugins: [ plugins.persistent_login ]); plugins = [ "persistent_login" ]; + dicts = with pkgs.aspellDicts; [ en fr de ]; }; services.nginx.virtualHosts.roundcube = { forceSSL = false; diff --git a/nixos/tests/rxe.nix b/nixos/tests/rxe.nix index 194a2e3d2b9..10753c4ed0c 100644 --- a/nixos/tests/rxe.nix +++ b/nixos/tests/rxe.nix @@ -28,7 +28,7 @@ in { # Test if rxe interface comes up server.wait_for_unit("default.target") server.succeed("systemctl status rxe.service") - server.succeed("ibv_devices | grep rxe0") + server.succeed("ibv_devices | grep rxe_eth1") client.wait_for_unit("default.target") diff --git a/nixos/tests/specialisation.nix b/nixos/tests/specialisation.nix new file mode 100644 index 00000000000..b8d4b8279f4 --- /dev/null +++ b/nixos/tests/specialisation.nix @@ -0,0 +1,43 @@ +import ./make-test-python.nix { + name = "specialisation"; + nodes = { + inheritconf = { pkgs, ... }: { + environment.systemPackages = [ pkgs.cowsay ]; + specialisation.inheritconf.configuration = { pkgs, ... }: { + environment.systemPackages = [ pkgs.hello ]; + }; + }; + noinheritconf = { pkgs, ... }: { + environment.systemPackages = [ pkgs.cowsay ]; + specialisation.noinheritconf = { + inheritParentConfig = false; + configuration = { pkgs, ... }: { + environment.systemPackages = [ pkgs.hello ]; + }; + }; + }; + }; + testScript = '' + inheritconf.wait_for_unit("default.target") + inheritconf.succeed("cowsay hey") + inheritconf.fail("hello") + + with subtest("Nested clones do inherit from parent"): + inheritconf.succeed( + "/run/current-system/specialisation/inheritconf/bin/switch-to-configuration test" + ) + inheritconf.succeed("cowsay hey") + inheritconf.succeed("hello") + + noinheritconf.wait_for_unit("default.target") + noinheritconf.succeed("cowsay hey") + noinheritconf.fail("hello") + + with subtest("Nested children do not inherit from parent"): + noinheritconf.succeed( + "/run/current-system/specialisation/noinheritconf/bin/switch-to-configuration test" + ) + noinheritconf.fail("cowsay hey") + noinheritconf.succeed("hello") + ''; +} diff --git a/nixos/tests/switch-test.nix b/nixos/tests/switch-test.nix index 7076bd77b77..9ef96cec5ef 100644 --- a/nixos/tests/switch-test.nix +++ b/nixos/tests/switch-test.nix @@ -22,7 +22,7 @@ import ./make-test-python.nix ({ pkgs, ...} : { # Ensures failures pass through using pipefail, otherwise failing to # switch-to-configuration is hidden by the success of `tee`. stderrRunner = pkgs.writeScript "stderr-runner" '' - #! ${pkgs.stdenv.shell} + #! ${pkgs.runtimeShell} set -e set -o pipefail exec env -i "$@" | tee /dev/stderr diff --git a/nixos/tests/systemd-confinement.nix b/nixos/tests/systemd-confinement.nix index b7b10fb36aa..ebf6d218fd6 100644 --- a/nixos/tests/systemd-confinement.nix +++ b/nixos/tests/systemd-confinement.nix @@ -1,23 +1,23 @@ -import ./make-test.nix { +import ./make-test-python.nix { name = "systemd-confinement"; machine = { pkgs, lib, ... }: let testServer = pkgs.writeScript "testserver.sh" '' - #!${pkgs.stdenv.shell} + #!${pkgs.runtimeShell} export PATH=${lib.escapeShellArg "${pkgs.coreutils}/bin"} - ${lib.escapeShellArg pkgs.stdenv.shell} 2>&1 + ${lib.escapeShellArg pkgs.runtimeShell} 2>&1 echo "exit-status:$?" ''; testClient = pkgs.writeScriptBin "chroot-exec" '' - #!${pkgs.stdenv.shell} -e + #!${pkgs.runtimeShell} -e output="$(echo "$@" | nc -NU "/run/test$(< /teststep).sock")" ret="$(echo "$output" | sed -nre '$s/^exit-status:([0-9]+)$/\1/p')" echo "$output" | head -n -1 exit "''${ret:-1}" ''; - mkTestStep = num: { description, config ? {}, testScript }: { + mkTestStep = num: { config ? {}, testScript }: { systemd.sockets."test${toString num}" = { description = "Socket for Test Service ${toString num}"; wantedBy = [ "sockets.target" ]; @@ -34,52 +34,48 @@ import ./make-test.nix { }; } // removeAttrs config [ "confinement" "serviceConfig" ]; - __testSteps = lib.mkOrder num '' - subtest '${lib.escape ["\\" "'"] description}', sub { - $machine->succeed('echo ${toString num} > /teststep'); - ${testScript} - }; - ''; + __testSteps = lib.mkOrder num ('' + machine.succeed("echo ${toString num} > /teststep") + '' + testScript); }; in { imports = lib.imap1 mkTestStep [ - { description = "chroot-only confinement"; - config.confinement.mode = "chroot-only"; + { config.confinement.mode = "chroot-only"; testScript = '' - $machine->succeed( - 'test "$(chroot-exec ls -1 / | paste -sd,)" = bin,nix', - 'test "$(chroot-exec id -u)" = 0', - 'chroot-exec chown 65534 /bin', - ); + with subtest("chroot-only confinement"): + machine.succeed( + 'test "$(chroot-exec ls -1 / | paste -sd,)" = bin,nix', + 'test "$(chroot-exec id -u)" = 0', + "chroot-exec chown 65534 /bin", + ) ''; } - { description = "full confinement with APIVFS"; - testScript = '' - $machine->fail( - 'chroot-exec ls -l /etc', - 'chroot-exec ls -l /run', - 'chroot-exec chown 65534 /bin', - ); - $machine->succeed( - 'test "$(chroot-exec id -u)" = 0', - 'chroot-exec chown 0 /bin', - ); + { testScript = '' + with subtest("full confinement with APIVFS"): + machine.fail( + "chroot-exec ls -l /etc", + "chroot-exec ls -l /run", + "chroot-exec chown 65534 /bin", + ) + machine.succeed( + 'test "$(chroot-exec id -u)" = 0', "chroot-exec chown 0 /bin", + ) ''; } - { description = "check existence of bind-mounted /etc"; - config.serviceConfig.BindReadOnlyPaths = [ "/etc" ]; + { config.serviceConfig.BindReadOnlyPaths = [ "/etc" ]; testScript = '' - $machine->succeed('test -n "$(chroot-exec cat /etc/passwd)"'); + with subtest("check existence of bind-mounted /etc"): + machine.succeed('test -n "$(chroot-exec cat /etc/passwd)"') ''; } - { description = "check if User/Group really runs as non-root"; - config.serviceConfig.User = "chroot-testuser"; + { config.serviceConfig.User = "chroot-testuser"; config.serviceConfig.Group = "chroot-testgroup"; testScript = '' - $machine->succeed('chroot-exec ls -l /dev'); - $machine->succeed('test "$(chroot-exec id -u)" != 0'); - $machine->fail('chroot-exec touch /bin/test'); + with subtest("check if User/Group really runs as non-root"): + machine.succeed("chroot-exec ls -l /dev") + machine.succeed('test "$(chroot-exec id -u)" != 0') + machine.fail("chroot-exec touch /bin/test") ''; } (let @@ -87,62 +83,60 @@ import ./make-test.nix { target = pkgs.writeText "symlink-target" "got me\n"; } "ln -s \"$target\" \"$out\""; in { - description = "check if symlinks are properly bind-mounted"; config.confinement.packages = lib.singleton symlink; testScript = '' - $machine->fail('chroot-exec test -e /etc'); - $machine->succeed('chroot-exec cat ${symlink} >&2'); - $machine->succeed('test "$(chroot-exec cat ${symlink})" = "got me"'); + with subtest("check if symlinks are properly bind-mounted"): + machine.fail("chroot-exec test -e /etc") + machine.succeed( + "chroot-exec cat ${symlink} >&2", + 'test "$(chroot-exec cat ${symlink})" = "got me"', + ) ''; }) - { description = "check if StateDirectory works"; - config.serviceConfig.User = "chroot-testuser"; + { config.serviceConfig.User = "chroot-testuser"; config.serviceConfig.Group = "chroot-testgroup"; config.serviceConfig.StateDirectory = "testme"; testScript = '' - $machine->succeed('chroot-exec touch /tmp/canary'); - $machine->succeed('chroot-exec "echo works > /var/lib/testme/foo"'); - $machine->succeed('test "$(< /var/lib/testme/foo)" = works'); - $machine->succeed('test ! -e /tmp/canary'); + with subtest("check if StateDirectory works"): + machine.succeed("chroot-exec touch /tmp/canary") + machine.succeed('chroot-exec "echo works > /var/lib/testme/foo"') + machine.succeed('test "$(< /var/lib/testme/foo)" = works') + machine.succeed("test ! -e /tmp/canary") ''; } - { description = "check if /bin/sh works"; + { testScript = '' + with subtest("check if /bin/sh works"): + machine.succeed( + "chroot-exec test -e /bin/sh", + 'test "$(chroot-exec \'/bin/sh -c "echo bar"\')" = bar', + ) + ''; + } + { config.confinement.binSh = null; testScript = '' - $machine->succeed( - 'chroot-exec test -e /bin/sh', - 'test "$(chroot-exec \'/bin/sh -c "echo bar"\')" = bar', - ); + with subtest("check if suppressing /bin/sh works"): + machine.succeed("chroot-exec test ! -e /bin/sh") + machine.succeed('test "$(chroot-exec \'/bin/sh -c "echo foo"\')" != foo') ''; } - { description = "check if suppressing /bin/sh works"; - config.confinement.binSh = null; + { config.confinement.binSh = "${pkgs.hello}/bin/hello"; testScript = '' - $machine->succeed( - 'chroot-exec test ! -e /bin/sh', - 'test "$(chroot-exec \'/bin/sh -c "echo foo"\')" != foo', - ); + with subtest("check if we can set /bin/sh to something different"): + machine.succeed("chroot-exec test -e /bin/sh") + machine.succeed('test "$(chroot-exec /bin/sh -g foo)" = foo') ''; } - { description = "check if we can set /bin/sh to something different"; - config.confinement.binSh = "${pkgs.hello}/bin/hello"; + { config.environment.FOOBAR = pkgs.writeText "foobar" "eek\n"; testScript = '' - $machine->succeed( - 'chroot-exec test -e /bin/sh', - 'test "$(chroot-exec /bin/sh -g foo)" = foo', - ); + with subtest("check if only Exec* dependencies are included"): + machine.succeed('test "$(chroot-exec \'cat "$FOOBAR"\')" != eek') ''; } - { description = "check if only Exec* dependencies are included"; - config.environment.FOOBAR = pkgs.writeText "foobar" "eek\n"; - testScript = '' - $machine->succeed('test "$(chroot-exec \'cat "$FOOBAR"\')" != eek'); - ''; - } - { description = "check if all unit dependencies are included"; - config.environment.FOOBAR = pkgs.writeText "foobar" "eek\n"; + { config.environment.FOOBAR = pkgs.writeText "foobar" "eek\n"; config.confinement.fullUnit = true; testScript = '' - $machine->succeed('test "$(chroot-exec \'cat "$FOOBAR"\')" = eek'); + with subtest("check if all unit dependencies are included"): + machine.succeed('test "$(chroot-exec \'cat "$FOOBAR"\')" = eek') ''; } ]; @@ -162,7 +156,6 @@ import ./make-test.nix { }; testScript = { nodes, ... }: '' - $machine->waitForUnit('multi-user.target'); - ${nodes.machine.config.__testSteps} - ''; + machine.wait_for_unit("multi-user.target") + '' + nodes.machine.config.__testSteps; } diff --git a/nixos/tests/systemd-networkd-dhcpserver.nix b/nixos/tests/systemd-networkd-dhcpserver.nix new file mode 100644 index 00000000000..f1a2662f8cb --- /dev/null +++ b/nixos/tests/systemd-networkd-dhcpserver.nix @@ -0,0 +1,58 @@ +# This test predominantly tests systemd-networkd DHCP server, by +# setting up a DHCP server and client, and ensuring they are mutually +# reachable via the DHCP allocated address. +import ./make-test-python.nix ({pkgs, ...}: { + name = "systemd-networkd-dhcpserver"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ tomfitzhenry ]; + }; + nodes = { + router = { config, pkgs, ... }: { + virtualisation.vlans = [ 1 ]; + systemd.services.systemd-networkd.environment.SYSTEMD_LOG_LEVEL = "debug"; + networking = { + useNetworkd = true; + useDHCP = false; + firewall.enable = false; + }; + systemd.network = { + networks = { + # systemd-networkd will load the first network unit file + # that matches, ordered lexiographically by filename. + # /etc/systemd/network/{40-eth1,99-main}.network already + # exists. This network unit must be loaded for the test, + # however, hence why this network is named such. + "01-eth1" = { + name = "eth1"; + networkConfig = { + DHCPServer = true; + Address = "10.0.0.1/24"; + }; + dhcpServerConfig = { + PoolOffset = 100; + PoolSize = 1; + }; + }; + }; + }; + }; + + client = { config, pkgs, ... }: { + virtualisation.vlans = [ 1 ]; + systemd.services.systemd-networkd.environment.SYSTEMD_LOG_LEVEL = "debug"; + networking = { + useNetworkd = true; + useDHCP = false; + firewall.enable = false; + interfaces.eth1.useDHCP = true; + }; + }; + }; + testScript = { ... }: '' + start_all() + router.wait_for_unit("systemd-networkd-wait-online.service") + client.wait_for_unit("systemd-networkd-wait-online.service") + client.wait_until_succeeds("ping -c 5 10.0.0.1") + router.wait_until_succeeds("ping -c 5 10.0.0.100") + ''; +}) diff --git a/nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix b/nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix new file mode 100644 index 00000000000..99cd341eec1 --- /dev/null +++ b/nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix @@ -0,0 +1,295 @@ +# This test verifies that we can request and assign IPv6 prefixes from upstream +# (e.g. ISP) routers. +# The setup consits of three VMs. One for the ISP, as your residential router +# and the third as a client machine in the residential network. +# +# There are two VLANs in this test: +# - VLAN 1 is the connection between the ISP and the router +# - VLAN 2 is the connection between the router and the client + +import ./make-test-python.nix ({pkgs, ...}: { + name = "systemd-networkd-ipv6-prefix-delegation"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ andir ]; + }; + nodes = { + + # The ISP's routers job is to delegate IPv6 prefixes via DHCPv6. Like with + # regular IPv6 auto-configuration it will also emit IPv6 router + # advertisements (RAs). Those RA's will not carry a prefix but in contrast + # just set the "Other" flag to indicate to the receiving nodes that they + # should attempt DHCPv6. + # + # Note: On the ISPs device we don't really care if we are using networkd in + # this example. That being said we can't use it (yet) as networkd doesn't + # implement the serving side of DHCPv6. We will use ISC's well aged dhcpd6 + # for that task. + isp = { lib, pkgs, ... }: { + virtualisation.vlans = [ 1 ]; + networking = { + useDHCP = false; + firewall.enable = false; + interfaces.eth1.ipv4.addresses = lib.mkForce []; # no need for legacy IP + interfaces.eth1.ipv6.addresses = lib.mkForce [ + { address = "2001:DB8::"; prefixLength = 64; } + ]; + }; + + # Since we want to program the routes that we delegate to the "customer" + # into our routing table we must have a way to gain the required privs. + # This security wrapper will do in our test setup. + # + # DO NOT COPY THIS TO PRODUCTION AS IS. Think about it at least twice. + # Everyone on the "isp" machine will be able to add routes to the kernel. + security.wrappers.add-dhcpd-lease = { + source = pkgs.writeShellScript "add-dhcpd-lease" '' + exec ${pkgs.iproute}/bin/ip -6 route replace "$1" via "$2" + ''; + capabilities = "cap_net_admin+ep"; + }; + services = { + # Configure the DHCPv6 server + # + # We will hand out /48 prefixes from the subnet 2001:DB8:F000::/36. + # That gives us ~8k prefixes. That should be enough for this test. + # + # Since (usually) you will not receive a prefix with the router + # advertisements we also hand out /128 leases from the range + # 2001:DB8:0000:0000:FFFF::/112. + dhcpd6 = { + enable = true; + interfaces = [ "eth1" ]; + extraConfig = '' + subnet6 2001:DB8::/36 { + range6 2001:DB8:0000:0000:FFFF:: 2001:DB8:0000:0000:FFFF::FFFF; + prefix6 2001:DB8:F000:: 2001:DB8:FFFF:: /48; + } + + # This is the secret sauce. We have to extract the prefix and the + # next hop when commiting the lease to the database. dhcpd6 + # (rightfully) has not concept of adding routes to the systems + # routing table. It really depends on the setup. + # + # In a production environment your DHCPv6 server is likely not the + # router. You might want to consider BGP, custom NetConf calls, … + # in those cases. + on commit { + set IP = pick-first-value(binary-to-ascii(16, 16, ":", substring(option dhcp6.ia-na, 16, 16)), "n/a"); + set Prefix = pick-first-value(binary-to-ascii(16, 16, ":", suffix(option dhcp6.ia-pd, 16)), "n/a"); + set PrefixLength = pick-first-value(binary-to-ascii(10, 8, ":", substring(suffix(option dhcp6.ia-pd, 17), 0, 1)), "n/a"); + log(concat(IP, " ", Prefix, " ", PrefixLength)); + execute("/run/wrappers/bin/add-dhcpd-lease", concat(Prefix,"/",PrefixLength), IP); + } + ''; + }; + + # Finally we have to set up the router advertisements. While we could be + # using networkd or bird for this task `radvd` is probably the most + # venerable of them all. It was made explicitly for this purpose and + # the configuration is much more straightforward than what networkd + # requires. + # As outlined above we will have to set the `Managed` flag as otherwise + # the clients will not know if they should do DHCPv6. (Some do + # anyway/always) + radvd = { + enable = true; + config = '' + interface eth1 { + AdvSendAdvert on; + AdvManagedFlag on; + AdvOtherConfigFlag off; # we don't really have DNS or NTP or anything like that to distribute + prefix ::/64 { + AdvOnLink on; + AdvAutonomous on; + }; + }; + ''; + }; + + }; + }; + + # This will be our (residential) router that receives the IPv6 prefix (IA_PD) + # and /128 (IA_NA) allocation. + # + # Here we will actually start using networkd. + router = { + virtualisation.vlans = [ 1 2 ]; + systemd.services.systemd-networkd.environment.SYSTEMD_LOG_LEVEL = "debug"; + + boot.kernel.sysctl = { + # we want to forward packets from the ISP to the client and back. + "net.ipv6.conf.all.forwarding" = 1; + }; + + networking = { + useNetworkd = true; + useDHCP = false; + # Consider enabling this in production and generating firewall rules + # for fowarding/input from the configured interfaces so you do not have + # to manage multiple places + firewall.enable = false; + }; + + systemd.network = { + networks = { + # systemd-networkd will load the first network unit file + # that matches, ordered lexiographically by filename. + # /etc/systemd/network/{40-eth1,99-main}.network already + # exists. This network unit must be loaded for the test, + # however, hence why this network is named such. + + # Configuration of the interface to the ISP. + # We must request accept RAs and request the PD prefix. + "01-eth1" = { + name = "eth1"; + networkConfig = { + Description = "ISP interface"; + IPv6AcceptRA = true; + #DHCP = false; # no need for legacy IP + }; + linkConfig = { + # We care about this interface when talking about being "online". + # If this interface is in the `routable` state we can reach + # others and they should be able to reach us. + RequiredForOnline = "routable"; + }; + # This configures the DHCPv6 client part towards the ISPs DHCPv6 server. + dhcpV6Config = { + # We have to include a request for a prefix in our DHCPv6 client + # request packets. + # Otherwise the upstream DHCPv6 server wouldn't know if we want a + # prefix or not. Note: On some installation it makes sense to + # always force that option on the DHPCv6 server since there are + # certain CPEs that are just not setting this field but happily + # accept the delegated prefix. + PrefixDelegationHint = "::/48"; + }; + ipv6PrefixDelegationConfig = { + # Let networkd know that we would very much like to use DHCPv6 + # to obtain the "managed" information. Not sure why they can't + # just take that from the upstream RAs. + Managed = true; + }; + }; + + # Interface to the client. Here we should redistribute a /64 from + # the prefix we received from the ISP. + "01-eth2" = { + name = "eth2"; + networkConfig = { + Description = "Client interface"; + # the client shouldn't be allowed to send us RAs, that would be weird. + IPv6AcceptRA = false; + + # Just delegate prefixes from the DHCPv6 PD pool. + # If you also want to distribute a local ULA prefix you want to + # set this to `yes` as that includes both static prefixes as well + # as PD prefixes. + IPv6PrefixDelegation = "dhcpv6"; + }; + # finally "act as router" (according to systemd.network(5)) + ipv6PrefixDelegationConfig = { + RouterLifetimeSec = 300; # required as otherwise no RA's are being emitted + + # In a production environment you should consider setting these as well: + #EmitDNS = true; + #EmitDomains = true; + #DNS= = "fe80::1"; # or whatever "well known" IP your router will have on the inside. + }; + + # This adds a "random" ULA prefix to the interface that is being + # advertised to the clients. + # Not used in this test. + # ipv6Prefixes = [ + # { + # ipv6PrefixConfig = { + # AddressAutoconfiguration = true; + # PreferredLifetimeSec = 1800; + # ValidLifetimeSec = 1800; + # }; + # } + # ]; + }; + + # finally we are going to add a static IPv6 unique local address to + # the "lo" interface. This will serve as ICMPv6 echo target to + # verify connectivity from the client to the router. + "01-lo" = { + name = "lo"; + addresses = [ + { addressConfig.Address = "FD42::1/128"; } + ]; + }; + }; + }; + + # make the network-online target a requirement, we wait for it in our test script + systemd.targets.network-online.wantedBy = [ "multi-user.target" ]; + }; + + # This is the client behind the router. We should be receving router + # advertisements for both the ULA and the delegated prefix. + # All we have to do is boot with the default (networkd) configuration. + client = { + virtualisation.vlans = [ 2 ]; + systemd.services.systemd-networkd.environment.SYSTEMD_LOG_LEVEL = "debug"; + networking = { + useNetworkd = true; + useDHCP = false; + }; + + # make the network-online target a requirement, we wait for it in our test script + systemd.targets.network-online.wantedBy = [ "multi-user.target" ]; + }; + }; + + testScript = '' + # First start the router and wait for it it reach a state where we are + # certain networkd is up and it is able to send out RAs + router.start() + router.wait_for_unit("systemd-networkd.service") + + # After that we can boot the client and wait for the network online target. + # Since we only care about IPv6 that should not involve waiting for legacy + # IP leases. + client.start() + client.wait_for_unit("network-online.target") + + # the static address on the router should not be reachable + client.wait_until_succeeds("ping -6 -c 1 FD42::1") + + # the global IP of the ISP router should still not be a reachable + router.fail("ping -6 -c 1 2001:DB8::") + + # Once we have internal connectivity boot up the ISP + isp.start() + + # Since for the ISP "being online" should have no real meaning we just + # wait for the target where all the units have been started. + # It probably still takes a few more seconds for all the RA timers to be + # fired etc.. + isp.wait_for_unit("multi-user.target") + + # wait until the uplink interface has a good status + router.wait_for_unit("network-online.target") + router.wait_until_succeeds("ping -6 -c1 2001:DB8::") + + # shortly after that the client should have received it's global IPv6 + # address and thus be able to ping the ISP + client.wait_until_succeeds("ping -6 -c1 2001:DB8::") + + # verify that we got a globally scoped address in eth1 from the + # documentation prefix + ip_output = client.succeed("ip --json -6 address show dev eth1") + + import json + + ip_json = json.loads(ip_output)[0] + assert any( + addr["local"].upper().startswith("2001:DB8:") + for addr in ip_json["addr_info"] + if addr["scope"] == "global" + ) + ''; +}) diff --git a/nixos/tests/systemd.nix b/nixos/tests/systemd.nix index 8028145939b..ca2e36a443e 100644 --- a/nixos/tests/systemd.nix +++ b/nixos/tests/systemd.nix @@ -22,7 +22,7 @@ import ./make-test-python.nix ({ pkgs, ... }: { test-support.displayManager.auto.user = "alice"; systemd.shutdown.test = pkgs.writeScript "test.shutdown" '' - #!${pkgs.stdenv.shell} + #!${pkgs.runtimeShell} PATH=${lib.makeBinPath (with pkgs; [ utillinux coreutils ])} mount -t 9p shared -o trans=virtio,version=9p2000.L /tmp/shared touch /tmp/shared/shutdown-test diff --git a/nixos/tests/traefik.nix b/nixos/tests/traefik.nix new file mode 100644 index 00000000000..0e21a7cf843 --- /dev/null +++ b/nixos/tests/traefik.nix @@ -0,0 +1,87 @@ +# Test Traefik as a reverse proxy of a local web service +# and a Docker container. +import ./make-test-python.nix ({ pkgs, ... }: { + name = "traefik"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ joko ]; + }; + + nodes = { + client = { config, pkgs, ... }: { + environment.systemPackages = [ pkgs.curl ]; + }; + traefik = { config, pkgs, ... }: { + docker-containers.nginx = { + extraDockerOptions = [ + "-l" "traefik.enable=true" + "-l" "traefik.http.routers.nginx.entrypoints=web" + "-l" "traefik.http.routers.nginx.rule=Host(`nginx.traefik.test`)" + ]; + image = "nginx-container"; + imageFile = pkgs.dockerTools.examples.nginx; + }; + + networking.firewall.allowedTCPPorts = [ 80 ]; + + services.traefik = { + enable = true; + + dynamicConfigOptions = { + http.routers.simplehttp = { + rule = "Host(`simplehttp.traefik.test`)"; + entryPoints = [ "web" ]; + service = "simplehttp"; + }; + + http.services.simplehttp = { + loadBalancer.servers = [{ + url = "http://127.0.0.1:8000"; + }]; + }; + }; + + staticConfigOptions = { + global = { + checkNewVersion = false; + sendAnonymousUsage = false; + }; + + entryPoints.web.address = ":80"; + + providers.docker.exposedByDefault = false; + }; + }; + + systemd.services.simplehttp = { + script = "${pkgs.python3}/bin/python -m http.server 8000"; + serviceConfig.Type = "simple"; + wantedBy = [ "multi-user.target" ]; + }; + + users.users.traefik.extraGroups = [ "docker" ]; + }; + }; + + testScript = '' + start_all() + + traefik.wait_for_unit("docker-nginx.service") + traefik.wait_until_succeeds("docker ps | grep nginx-container") + traefik.wait_for_unit("simplehttp.service") + traefik.wait_for_unit("traefik.service") + traefik.wait_for_open_port(80) + traefik.wait_for_unit("multi-user.target") + + client.wait_for_unit("multi-user.target") + + with subtest("Check that a container can be reached via Traefik"): + assert "Hello from NGINX" in client.succeed( + "curl -sSf -H Host:nginx.traefik.test http://traefik/" + ) + + with subtest("Check that dynamic configuration works"): + assert "Directory listing for " in client.succeed( + "curl -sSf -H Host:simplehttp.traefik.test http://traefik/" + ) + ''; +}) diff --git a/nixos/tests/tuptime.nix b/nixos/tests/tuptime.nix new file mode 100644 index 00000000000..36ce2b1ae19 --- /dev/null +++ b/nixos/tests/tuptime.nix @@ -0,0 +1,29 @@ +import ./make-test-python.nix ({ pkgs, ...} : { + name = "tuptime"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ evils ]; + }; + + machine = { pkgs, ... }: { + imports = [ ../modules/profiles/minimal.nix ]; + services.tuptime.enable = true; + }; + + testScript = + '' + # see if it starts + start_all() + machine.wait_for_unit("multi-user.target") + machine.succeed("tuptime | grep 'System startups:[[:blank:]]*1'") + machine.succeed("tuptime | grep 'System uptime:[[:blank:]]*100.0%'") + machine.shutdown() + + # restart machine and see if it correctly reports the reboot + machine.start() + machine.wait_for_unit("multi-user.target") + machine.succeed("tuptime | grep 'System startups:[[:blank:]]*2'") + machine.succeed("tuptime | grep 'System shutdowns:[[:blank:]]*1 ok'") + machine.shutdown() + ''; +}) + diff --git a/nixos/tests/udisks2.nix b/nixos/tests/udisks2.nix index 0cbfa0c4c7b..64f5b6c40d2 100644 --- a/nixos/tests/udisks2.nix +++ b/nixos/tests/udisks2.nix @@ -3,7 +3,7 @@ import ./make-test-python.nix ({ pkgs, ... }: let stick = pkgs.fetchurl { - url = http://nixos.org/~eelco/nix/udisks-test.img.xz; + url = "http://nixos.org/~eelco/nix/udisks-test.img.xz"; sha256 = "0was1xgjkjad91nipzclaz5biv3m4b2nk029ga6nk7iklwi19l8b"; }; diff --git a/nixos/tests/virtualbox.nix b/nixos/tests/virtualbox.nix index f03dc1cc413..aec8da6a2af 100644 --- a/nixos/tests/virtualbox.nix +++ b/nixos/tests/virtualbox.nix @@ -23,7 +23,7 @@ let guestAdditions = pkgs.linuxPackages.virtualboxGuestAdditions; miniInit = '' - #!${pkgs.stdenv.shell} -xe + #!${pkgs.runtimeShell} -xe export PATH="${lib.makeBinPath [ pkgs.coreutils pkgs.utillinux ]}" mkdir -p /run/dbus @@ -80,7 +80,7 @@ let touch /mnt-root/boot-done hostname "${vmName}" mkdir -p /nix/store - unshare -m ${escapeShellArg pkgs.stdenv.shell} -c ' + unshare -m ${escapeShellArg pkgs.runtimeShell} -c ' mount -t vboxsf nixstore /nix/store exec "$stage2Init" ' diff --git a/nixos/tests/wireguard/default.nix b/nixos/tests/wireguard/default.nix index 8206823a918..e3bc31c600f 100644 --- a/nixos/tests/wireguard/default.nix +++ b/nixos/tests/wireguard/default.nix @@ -1,97 +1,71 @@ -let - wg-snakeoil-keys = import ./snakeoil-keys.nix; -in +import ../make-test-python.nix ({ pkgs, lib, ...} : + let + wg-snakeoil-keys = import ./snakeoil-keys.nix; + peer = (import ./make-peer.nix) { inherit lib; }; + in + { + name = "wireguard"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ ma27 ]; + }; -import ../make-test-python.nix ({ pkgs, ...} : { - name = "wireguard"; - meta = with pkgs.stdenv.lib.maintainers; { - maintainers = [ ma27 ]; - }; + nodes = { + peer0 = peer { + ip4 = "192.168.0.1"; + ip6 = "fd00::1"; + extraConfig = { + networking.firewall.allowedUDPPorts = [ 23542 ]; + networking.wireguard.interfaces.wg0 = { + ips = [ "10.23.42.1/32" "fc00::1/128" ]; + listenPort = 23542; - nodes = { - peer0 = { lib, ... }: { - boot.kernel.sysctl = { - "net.ipv6.conf.all.forwarding" = "1"; - "net.ipv6.conf.default.forwarding" = "1"; - "net.ipv4.ip_forward" = "1"; - }; + inherit (wg-snakeoil-keys.peer0) privateKey; - networking.useDHCP = false; - networking.interfaces.eth1 = { - ipv4.addresses = lib.singleton { - address = "192.168.0.1"; - prefixLength = 24; - }; - ipv6.addresses = lib.singleton { - address = "fd00::1"; - prefixLength = 64; + peers = lib.singleton { + allowedIPs = [ "10.23.42.2/32" "fc00::2/128" ]; + + inherit (wg-snakeoil-keys.peer1) publicKey; + }; + }; }; }; - networking.firewall.allowedUDPPorts = [ 23542 ]; - networking.wireguard.interfaces.wg0 = { - ips = [ "10.23.42.1/32" "fc00::1/128" ]; - listenPort = 23542; + peer1 = peer { + ip4 = "192.168.0.2"; + ip6 = "fd00::2"; + extraConfig = { + networking.wireguard.interfaces.wg0 = { + ips = [ "10.23.42.2/32" "fc00::2/128" ]; + listenPort = 23542; + allowedIPsAsRoutes = false; - inherit (wg-snakeoil-keys.peer0) privateKey; + inherit (wg-snakeoil-keys.peer1) privateKey; - peers = lib.singleton { - allowedIPs = [ "10.23.42.2/32" "fc00::2/128" ]; + peers = lib.singleton { + allowedIPs = [ "0.0.0.0/0" "::/0" ]; + endpoint = "192.168.0.1:23542"; + persistentKeepalive = 25; - inherit (wg-snakeoil-keys.peer1) publicKey; + inherit (wg-snakeoil-keys.peer0) publicKey; + }; + + postSetup = let inherit (pkgs) iproute; in '' + ${iproute}/bin/ip route replace 10.23.42.1/32 dev wg0 + ${iproute}/bin/ip route replace fc00::1/128 dev wg0 + ''; + }; }; }; }; - peer1 = { pkgs, lib, ... }: { - boot.kernel.sysctl = { - "net.ipv6.conf.all.forwarding" = "1"; - "net.ipv6.conf.default.forwarding" = "1"; - "net.ipv4.ip_forward" = "1"; - }; + testScript = '' + start_all() - networking.useDHCP = false; - networking.interfaces.eth1 = { - ipv4.addresses = lib.singleton { - address = "192.168.0.2"; - prefixLength = 24; - }; - ipv6.addresses = lib.singleton { - address = "fd00::2"; - prefixLength = 64; - }; - }; + peer0.wait_for_unit("wireguard-wg0.service") + peer1.wait_for_unit("wireguard-wg0.service") - networking.wireguard.interfaces.wg0 = { - ips = [ "10.23.42.2/32" "fc00::2/128" ]; - listenPort = 23542; - allowedIPsAsRoutes = false; - - inherit (wg-snakeoil-keys.peer1) privateKey; - - peers = lib.singleton { - allowedIPs = [ "0.0.0.0/0" "::/0" ]; - endpoint = "192.168.0.1:23542"; - persistentKeepalive = 25; - - inherit (wg-snakeoil-keys.peer0) publicKey; - }; - - postSetup = let inherit (pkgs) iproute; in '' - ${iproute}/bin/ip route replace 10.23.42.1/32 dev wg0 - ${iproute}/bin/ip route replace fc00::1/128 dev wg0 - ''; - }; - }; - }; - - testScript = '' - start_all() - - peer0.wait_for_unit("wireguard-wg0.service") - peer1.wait_for_unit("wireguard-wg0.service") - - peer1.succeed("ping -c5 fc00::1") - peer1.succeed("ping -c5 10.23.42.1") - ''; -}) + peer1.succeed("ping -c5 fc00::1") + peer1.succeed("ping -c5 10.23.42.1") + ''; + } +) diff --git a/nixos/tests/wireguard/make-peer.nix b/nixos/tests/wireguard/make-peer.nix new file mode 100644 index 00000000000..d2740549738 --- /dev/null +++ b/nixos/tests/wireguard/make-peer.nix @@ -0,0 +1,23 @@ +{ lib, ... }: { ip4, ip6, extraConfig }: +lib.mkMerge [ + { + boot.kernel.sysctl = { + "net.ipv6.conf.all.forwarding" = "1"; + "net.ipv6.conf.default.forwarding" = "1"; + "net.ipv4.ip_forward" = "1"; + }; + + networking.useDHCP = false; + networking.interfaces.eth1 = { + ipv4.addresses = [{ + address = ip4; + prefixLength = 24; + }]; + ipv6.addresses = [{ + address = ip6; + prefixLength = 64; + }]; + }; + } + extraConfig +] diff --git a/nixos/tests/wireguard/wg-quick.nix b/nixos/tests/wireguard/wg-quick.nix new file mode 100644 index 00000000000..7354dd01a34 --- /dev/null +++ b/nixos/tests/wireguard/wg-quick.nix @@ -0,0 +1,63 @@ +import ../make-test-python.nix ({ pkgs, lib, ... }: + let + wg-snakeoil-keys = import ./snakeoil-keys.nix; + peer = (import ./make-peer.nix) { inherit lib; }; + in + { + name = "wg-quick"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ xwvvvvwx ]; + }; + + nodes = { + peer0 = peer { + ip4 = "192.168.0.1"; + ip6 = "fd00::1"; + extraConfig = { + networking.firewall.allowedUDPPorts = [ 23542 ]; + networking.wg-quick.interfaces.wg0 = { + address = [ "10.23.42.1/32" "fc00::1/128" ]; + listenPort = 23542; + + inherit (wg-snakeoil-keys.peer0) privateKey; + + peers = lib.singleton { + allowedIPs = [ "10.23.42.2/32" "fc00::2/128" ]; + + inherit (wg-snakeoil-keys.peer1) publicKey; + }; + }; + }; + }; + + peer1 = peer { + ip4 = "192.168.0.2"; + ip6 = "fd00::2"; + extraConfig = { + networking.wg-quick.interfaces.wg0 = { + address = [ "10.23.42.2/32" "fc00::2/128" ]; + inherit (wg-snakeoil-keys.peer1) privateKey; + + peers = lib.singleton { + allowedIPs = [ "0.0.0.0/0" "::/0" ]; + endpoint = "192.168.0.1:23542"; + persistentKeepalive = 25; + + inherit (wg-snakeoil-keys.peer0) publicKey; + }; + }; + }; + }; + }; + + testScript = '' + start_all() + + peer0.wait_for_unit("wg-quick-wg0.service") + peer1.wait_for_unit("wg-quick-wg0.service") + + peer1.succeed("ping -c5 fc00::1") + peer1.succeed("ping -c5 10.23.42.1") + ''; + } +) diff --git a/nixos/tests/xmpp/prosody.nix b/nixos/tests/xmpp/prosody.nix index 9d1374bff6b..e7755e24bab 100644 --- a/nixos/tests/xmpp/prosody.nix +++ b/nixos/tests/xmpp/prosody.nix @@ -1,27 +1,80 @@ -import ../make-test-python.nix { - name = "prosody"; +let + cert = pkgs: pkgs.runCommandNoCC "selfSignedCerts" { buildInputs = [ pkgs.openssl ]; } '' + openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -nodes -subj '/CN=example.com/CN=uploads.example.com/CN=conference.example.com' + mkdir -p $out + cp key.pem cert.pem $out + ''; + createUsers = pkgs: pkgs.writeScriptBin "create-prosody-users" '' + #!${pkgs.bash}/bin/bash + set -e + # Creates and set password for the 2 xmpp test users. + # + # Doing that in a bash script instead of doing that in the test + # script allow us to easily provision the users when running that + # test interactively. + + prosodyctl register cthon98 example.com nothunter2 + prosodyctl register azurediamond example.com hunter2 + ''; + delUsers = pkgs: pkgs.writeScriptBin "delete-prosody-users" '' + #!${pkgs.bash}/bin/bash + set -e + + # Deletes the test users. + # + # Doing that in a bash script instead of doing that in the test + # script allow us to easily provision the users when running that + # test interactively. + + prosodyctl deluser cthon98@example.com + prosodyctl deluser azurediamond@example.com + ''; +in import ../make-test-python.nix { + name = "prosody"; nodes = { - client = { nodes, pkgs, ... }: { + client = { nodes, pkgs, config, ... }: { + security.pki.certificateFiles = [ "${cert pkgs}/cert.pem" ]; + console.keyMap = "fr-bepo"; + networking.extraHosts = '' + ${nodes.server.config.networking.primaryIPAddress} example.com + ${nodes.server.config.networking.primaryIPAddress} conference.example.com + ${nodes.server.config.networking.primaryIPAddress} uploads.example.com + ''; environment.systemPackages = [ (pkgs.callPackage ./xmpp-sendmessage.nix { connectTo = nodes.server.config.networking.primaryIPAddress; }) ]; }; server = { config, pkgs, ... }: { + security.pki.certificateFiles = [ "${cert pkgs}/cert.pem" ]; + console.keyMap = "fr-bepo"; networking.extraHosts = '' ${config.networking.primaryIPAddress} example.com + ${config.networking.primaryIPAddress} conference.example.com + ${config.networking.primaryIPAddress} uploads.example.com ''; networking.firewall.enable = false; + environment.systemPackages = [ + (createUsers pkgs) + (delUsers pkgs) + ]; services.prosody = { enable = true; - # TODO: use a self-signed certificate - c2sRequireEncryption = false; - extraConfig = '' - storage = "sql" - ''; - virtualHosts.test = { + ssl.cert = "${cert pkgs}/cert.pem"; + ssl.key = "${cert pkgs}/key.pem"; + virtualHosts.example = { domain = "example.com"; enabled = true; + ssl.cert = "${cert pkgs}/cert.pem"; + ssl.key = "${cert pkgs}/key.pem"; + }; + muc = [ + { + domain = "conference.example.com"; + } + ]; + uploadHttp = { + domain = "uploads.example.com"; }; }; }; @@ -31,16 +84,8 @@ import ../make-test-python.nix { server.wait_for_unit("prosody.service") server.succeed('prosodyctl status | grep "Prosody is running"') - # set password to 'nothunter2' (it's asked twice) - server.succeed("yes nothunter2 | prosodyctl adduser cthon98@example.com") - # set password to 'y' - server.succeed("yes | prosodyctl adduser azurediamond@example.com") - # correct password to "hunter2" - server.succeed("yes hunter2 | prosodyctl passwd azurediamond@example.com") - - client.succeed("send-message") - - server.succeed("prosodyctl deluser cthon98@example.com") - server.succeed("prosodyctl deluser azurediamond@example.com") + server.succeed("create-prosody-users") + client.succeed('send-message 2>&1 | grep "XMPP SCRIPT TEST SUCCESS"') + server.succeed("delete-prosody-users") ''; } diff --git a/nixos/tests/xmpp/xmpp-sendmessage.nix b/nixos/tests/xmpp/xmpp-sendmessage.nix index 2a075a01813..349b9c6f38e 100644 --- a/nixos/tests/xmpp/xmpp-sendmessage.nix +++ b/nixos/tests/xmpp/xmpp-sendmessage.nix @@ -1,46 +1,61 @@ -{ writeScriptBin, python3, connectTo ? "localhost" }: -writeScriptBin "send-message" '' - #!${(python3.withPackages (ps: [ ps.sleekxmpp ])).interpreter} - # Based on the sleekxmpp send_client example, look there for more details: - # https://github.com/fritzy/SleekXMPP/blob/develop/examples/send_client.py - import sleekxmpp +{ writeScriptBin, writeText, python3, connectTo ? "localhost" }: +let + dummyFile = writeText "dummy-file" '' + Dear dog, - class SendMsgBot(sleekxmpp.ClientXMPP): - """ - A basic SleekXMPP bot that will log in, send a message, - and then log out. - """ - def __init__(self, jid, password, recipient, message): - sleekxmpp.ClientXMPP.__init__(self, jid, password) + Please find this *really* important attachment. - self.recipient = recipient - self.msg = message + Yours truly, + John + ''; +in writeScriptBin "send-message" '' +#!${(python3.withPackages (ps: [ ps.slixmpp ])).interpreter} +import logging +import sys +from types import MethodType - self.add_event_handler("session_start", self.start, threaded=True) - - def start(self, event): - self.send_presence() - self.get_roster() - - self.send_message(mto=self.recipient, - mbody=self.msg, - mtype='chat') - - self.disconnect(wait=True) +from slixmpp import ClientXMPP +from slixmpp.exceptions import IqError, IqTimeout - if __name__ == '__main__': - xmpp = SendMsgBot("cthon98@example.com", "nothunter2", "azurediamond@example.com", "hey, if you type in your pw, it will show as stars") - xmpp.register_plugin('xep_0030') # Service Discovery - xmpp.register_plugin('xep_0199') # XMPP Ping +class CthonTest(ClientXMPP): - # TODO: verify certificate - # If you want to verify the SSL certificates offered by a server: - # xmpp.ca_certs = "path/to/ca/cert" + def __init__(self, jid, password): + ClientXMPP.__init__(self, jid, password) + self.add_event_handler("session_start", self.session_start) - if xmpp.connect(('${connectTo}', 5222)): - xmpp.process(block=True) - else: - print("Unable to connect.") - sys.exit(1) + async def session_start(self, event): + log = logging.getLogger(__name__) + self.send_presence() + self.get_roster() + # Sending a test message + self.send_message(mto="azurediamond@example.com", mbody="Hello, this is dog.", mtype="chat") + log.info('Message sent') + + # Test http upload (XEP_0363) + def timeout_callback(arg): + log.error("ERROR: Cannot upload file. XEP_0363 seems broken") + sys.exit(1) + url = await self['xep_0363'].upload_file("${dummyFile}",timeout=10, timeout_callback=timeout_callback) + log.info('Upload success!') + # Test MUC + self.plugin['xep_0045'].join_muc('testMucRoom', 'cthon98', wait=True) + log.info('MUC join success!') + log.info('XMPP SCRIPT TEST SUCCESS') + self.disconnect(wait=True) + + +if __name__ == '__main__': + logging.basicConfig(level=logging.DEBUG, + format='%(levelname)-8s %(message)s') + + ct = CthonTest('cthon98@example.com', 'nothunter2') + ct.register_plugin('xep_0071') + ct.register_plugin('xep_0128') + # HTTP Upload + ct.register_plugin('xep_0363') + # MUC + ct.register_plugin('xep_0045') + ct.connect(("server", 5222)) + ct.process(forever=False) '' diff --git a/pkgs/applications/accessibility/contrast/default.nix b/pkgs/applications/accessibility/contrast/default.nix index f82462c3933..192bf041c64 100644 --- a/pkgs/applications/accessibility/contrast/default.nix +++ b/pkgs/applications/accessibility/contrast/default.nix @@ -19,7 +19,7 @@ rustPlatform.buildRustPackage rec { pname = "contrast"; - version = "0.0.2"; + version = "0.0.3"; src = fetchFromGitLab { domain = "gitlab.gnome.org"; @@ -27,10 +27,10 @@ rustPlatform.buildRustPackage rec { owner = "design"; repo = "contrast"; rev = version; - sha256 = "0rm705zrk9rfv31pwbqxrswi5v6vhnghxa8dgxjmcrh00l8dm6j9"; + sha256 = "0kk3mv7a6y258109xvgicmsi0lw0rcs00gfyivl5hdz7qh47iccy"; }; - cargoSha256 = "0qj0vmxa1d6war1vb3zgkf1drvk7awm970fw6692hd9msa9c1kkf"; + cargoSha256 = "0vi8nv4hkhsgqgz36xacwkk5cxirg6li44nbmk3x7vx7c64hzybq"; nativeBuildInputs = [ desktop-file-utils @@ -40,6 +40,7 @@ rustPlatform.buildRustPackage rec { pkgconfig python3 wrapGAppsHook + glib # for glib-compile-resources ]; buildInputs = [ @@ -63,7 +64,7 @@ rustPlatform.buildRustPackage rec { meta = with stdenv.lib; { description = "Checks whether the contrast between two colors meet the WCAG requirements"; - homepage = https://gitlab.gnome.org/World/design/contrast; + homepage = "https://gitlab.gnome.org/World/design/contrast"; license = licenses.gpl3; maintainers = with maintainers; [ jtojnar ]; }; diff --git a/pkgs/applications/accessibility/dasher/default.nix b/pkgs/applications/accessibility/dasher/default.nix index 9e8084e7a87..43844d0c66b 100644 --- a/pkgs/applications/accessibility/dasher/default.nix +++ b/pkgs/applications/accessibility/dasher/default.nix @@ -45,7 +45,7 @@ stdenv.mkDerivation { ] ++ lib.optional speechSupport speechd; meta = { - homepage = http://www.inference.org.uk/dasher/; + homepage = "http://www.inference.org.uk/dasher/"; description = "Information-efficient text-entry interface, driven by natural continuous pointing gestures"; license = lib.licenses.gpl2; maintainers = [ lib.maintainers.Profpatsch ]; diff --git a/pkgs/applications/accessibility/mousetweaks/default.nix b/pkgs/applications/accessibility/mousetweaks/default.nix index e4fd66679a7..b645bc61848 100644 --- a/pkgs/applications/accessibility/mousetweaks/default.nix +++ b/pkgs/applications/accessibility/mousetweaks/default.nix @@ -41,7 +41,7 @@ stdenv.mkDerivation rec { The features can be activated and configured through the Universal Access panel of the GNOME Control Center. ''; - homepage = https://wiki.gnome.org/Projects/Mousetweaks; + homepage = "https://wiki.gnome.org/Projects/Mousetweaks"; license = licenses.gpl2; platforms = platforms.linux; maintainers = [ maintainers.johnazoidberg ]; diff --git a/pkgs/applications/audio/AMB-plugins/default.nix b/pkgs/applications/audio/AMB-plugins/default.nix index d9a05e0bf66..2e2af8f3a9a 100644 --- a/pkgs/applications/audio/AMB-plugins/default.nix +++ b/pkgs/applications/audio/AMB-plugins/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { Mono and stereo to B-format panning, horizontal rotator, square, hexagon and cube decoders. ''; version = version; - homepage = http://kokkinizita.linuxaudio.org/linuxaudio/ladspa/index.html; + homepage = "http://kokkinizita.linuxaudio.org/linuxaudio/ladspa/index.html"; license = stdenv.lib.licenses.gpl2Plus; maintainers = [ stdenv.lib.maintainers.magnetophon ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/FIL-plugins/default.nix b/pkgs/applications/audio/FIL-plugins/default.nix index cf383c1dd49..253e724cd31 100644 --- a/pkgs/applications/audio/FIL-plugins/default.nix +++ b/pkgs/applications/audio/FIL-plugins/default.nix @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { This should make this plugin a good candidate for use in systems that allow automation of plugin control ports, such as Ardour, or for stage use. ''; version = version; - homepage = http://kokkinizita.linuxaudio.org/linuxaudio/ladspa/index.html; + homepage = "http://kokkinizita.linuxaudio.org/linuxaudio/ladspa/index.html"; license = stdenv.lib.licenses.gpl2Plus; maintainers = [ stdenv.lib.maintainers.magnetophon ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/MMA/default.nix b/pkgs/applications/audio/MMA/default.nix index 4304fe59bdf..8b7629bc908 100644 --- a/pkgs/applications/audio/MMA/default.nix +++ b/pkgs/applications/audio/MMA/default.nix @@ -61,7 +61,7 @@ meta = { description = "Creates MIDI tracks for a soloist to perform over from a user supplied file containing chords"; - homepage = http://www.mellowood.ca/mma/index.html; + homepage = "https://www.mellowood.ca/mma/index.html"; license = stdenv.lib.licenses.gpl2; maintainers = [ stdenv.lib.maintainers.magnetophon ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/a2jmidid/default.nix b/pkgs/applications/audio/a2jmidid/default.nix index 28331720048..64468bddc85 100644 --- a/pkgs/applications/audio/a2jmidid/default.nix +++ b/pkgs/applications/audio/a2jmidid/default.nix @@ -18,11 +18,11 @@ in stdenv.mkDerivation { patches = [ (fetchpatch { - url = https://repo.or.cz/a2jmidid.git/patch/24e3b8e543256ae8fdfb4b75eb9fd775f07c46e2; + url = "https://repo.or.cz/a2jmidid.git/patch/24e3b8e543256ae8fdfb4b75eb9fd775f07c46e2"; sha256 = "1nxrvnhxlgqc9wbxnp1gnpw4wjyzxvymwcg1gh2nqzmssgfykfkc"; }) (fetchpatch { - url = https://repo.or.cz/a2jmidid.git/patch/7f82da7eb2f540a94db23331be98d42a58ddc269; + url = "https://repo.or.cz/a2jmidid.git/patch/7f82da7eb2f540a94db23331be98d42a58ddc269"; sha256 = "1nab9zf0agbcj5pvhl90pz0cx1d204d4janqflc5ymjhy8jyrsdv"; }) ]; diff --git a/pkgs/applications/audio/aacgain/default.nix b/pkgs/applications/audio/aacgain/default.nix index 5892351225d..194514c65b5 100644 --- a/pkgs/applications/audio/aacgain/default.nix +++ b/pkgs/applications/audio/aacgain/default.nix @@ -55,7 +55,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "ReplayGain for AAC files"; - homepage = https://aacgain.altosdesign.com; + homepage = "https://aacgain.altosdesign.com"; license = licenses.gpl2; platforms = platforms.linux; maintainers = [ maintainers.robbinch ]; diff --git a/pkgs/applications/audio/abcde/default.nix b/pkgs/applications/audio/abcde/default.nix index adb38d4bbba..4cb28e512a7 100644 --- a/pkgs/applications/audio/abcde/default.nix +++ b/pkgs/applications/audio/abcde/default.nix @@ -46,7 +46,7 @@ in ''; meta = with stdenv.lib; { - homepage = http://abcde.einval.com/wiki/; + homepage = "http://abcde.einval.com/wiki/"; license = licenses.gpl2Plus; maintainers = with maintainers; [ gebner ]; description = "Command-line audio CD ripper"; diff --git a/pkgs/applications/audio/aeolus/default.nix b/pkgs/applications/audio/aeolus/default.nix index ee9932a7aa3..bfd75b4e75c 100644 --- a/pkgs/applications/audio/aeolus/default.nix +++ b/pkgs/applications/audio/aeolus/default.nix @@ -4,11 +4,11 @@ stdenv.mkDerivation rec { pname = "aeolus"; - version = "0.9.7"; + version = "0.9.8"; src = fetchurl { url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${pname}-${version}.tar.bz2"; - sha256 = "0lhbr95hmbfj8ynbcpawn7jzjbpvrkm6k2yda39yhqk1bzg38v2k"; + sha256 = "1zfr3567mwbqsfybkhg03n5dvmhllk88c9ayb10qzz2nh6d7g2qn"; }; buildInputs = [ @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { meta = { description = "Synthetized (not sampled) pipe organ emulator"; - homepage = http://kokkinizita.linuxaudio.org/linuxaudio/aeolus/index.html; + homepage = "http://kokkinizita.linuxaudio.org/linuxaudio/aeolus/index.html"; license = stdenv.lib.licenses.lgpl3; platforms = stdenv.lib.platforms.linux; maintainers = [ stdenv.lib.maintainers.nico202 ]; diff --git a/pkgs/applications/audio/airwave/default.nix b/pkgs/applications/audio/airwave/default.nix index 1d91ad4d2be..176d1d4cfb3 100644 --- a/pkgs/applications/audio/airwave/default.nix +++ b/pkgs/applications/audio/airwave/default.nix @@ -83,7 +83,7 @@ multiStdenv.mkDerivation { protocol to correctly embed the plugin editor into the host window. ''; - homepage = https://github.com/phantom-code/airwave; + homepage = "https://github.com/phantom-code/airwave"; license = licenses.mit; platforms = [ "x86_64-linux" ]; maintainers = with maintainers; [ michalrus ]; diff --git a/pkgs/applications/audio/aj-snapshot/default.nix b/pkgs/applications/audio/aj-snapshot/default.nix index 5c379b57ad6..f781aad905d 100644 --- a/pkgs/applications/audio/aj-snapshot/default.nix +++ b/pkgs/applications/audio/aj-snapshot/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { You can also run aj-snapshot in daemon mode if you want to have your connections continually restored. ''; - homepage = http://aj-snapshot.sourceforge.net/; + homepage = "http://aj-snapshot.sourceforge.net/"; license = licenses.gpl2; maintainers = [ maintainers.mrVanDalo ]; platforms = platforms.all; diff --git a/pkgs/applications/audio/amarok/default.nix b/pkgs/applications/audio/amarok/default.nix index cd951701e77..25fceb357cc 100644 --- a/pkgs/applications/audio/amarok/default.nix +++ b/pkgs/applications/audio/amarok/default.nix @@ -14,7 +14,7 @@ mkDerivation rec { # master has the Qt5 version as of April 2018 but a formal release has not # yet been made so change this back to the proper upstream when such a # release is out - url = git://anongit.kde.org/amarok.git; + url = "git://anongit.kde.org/amarok.git"; # url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz"; rev = "457fbda25a85a102bfda92aa7137e7ef5e4c8b00"; sha256 = "1ig2mg8pqany6m2zplkrvldcv4ibxwsypnyv5igm7nz7ax82cd5j"; diff --git a/pkgs/applications/audio/ardour/default.nix b/pkgs/applications/audio/ardour/default.nix index 30a4e052d77..fadfedf5384 100644 --- a/pkgs/applications/audio/ardour/default.nix +++ b/pkgs/applications/audio/ardour/default.nix @@ -1,14 +1,51 @@ -{ stdenv, fetchgit, alsaLib, aubio, boost, cairomm, curl, doxygen -, fftwSinglePrec, flac, glibc, glibmm, graphviz, gtkmm2, libjack2 -, libgnomecanvas, libgnomecanvasmm, liblo, libmad, libogg, librdf -, librdf_raptor, librdf_rasqal, libsamplerate, libsigcxx, libsndfile -, libusb, libuuid, libxml2, libxslt, lilv, lv2, makeWrapper -, perl, pkgconfig, python2, rubberband, serd, sord, sratom -, taglib, vampSDK, dbus, fftw, pango, suil, libarchive -, wafHook }: - +{ stdenv +, fetchgit +, alsaLib +, aubio +, boost +, cairomm +, curl +, doxygen +, fftwSinglePrec +, flac +, glibc +, glibmm +, graphviz +, gtkmm2 +, libjack2 +, liblo +, libogg +, libsamplerate +, libsigcxx +, libsndfile +, libusb1 +, fluidsynth_1 +, hidapi +, libltc +, qm-dsp +, libxml2 +, lilv +, lrdf +, lv2 +, makeWrapper +, perl +, pkg-config +, itstool +, python2 +, rubberband +, serd +, sord +, sratom +, taglib +, vamp-plugin-sdk +, dbus +, fftw +, pango +, suil +, libarchive +, wafHook +}: let - # Ardour git repo uses a mix of annotated and lightweight tags. Annotated # tags are used for MAJOR.MINOR versioning, and lightweight tags are used # in-between; MAJOR.MINOR.REV where REV is the number of commits since the @@ -18,10 +55,7 @@ let # Version to build. tag = "5.12"; - -in - -stdenv.mkDerivation rec { +in stdenv.mkDerivation rec { name = "ardour-${tag}"; src = fetchgit { @@ -30,46 +64,84 @@ stdenv.mkDerivation rec { sha256 = "0mla5lm51ryikc2rrk53max2m7a5ds6i1ai921l2h95wrha45nkr"; }; - nativeBuildInputs = [ wafHook ]; - buildInputs = - [ alsaLib aubio boost cairomm curl doxygen dbus fftw fftwSinglePrec flac - glibmm graphviz gtkmm2 libjack2 libgnomecanvas libgnomecanvasmm liblo - libmad libogg librdf librdf_raptor librdf_rasqal libsamplerate - libsigcxx libsndfile libusb libuuid libxml2 libxslt lilv lv2 - makeWrapper pango perl pkgconfig python2 rubberband serd sord - sratom suil taglib vampSDK libarchive - ]; + nativeBuildInputs = [ + wafHook + makeWrapper + pkg-config + itstool + doxygen + graphviz # for dot + perl + python2 + ]; - # ardour's wscript has a "tarball" target but that required the git revision - # be available. Since this is an unzipped tarball fetched from github we - # have to do that ourself. - patchPhase = '' - printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = \"${tag}-${builtins.substring 0 8 src.rev}\"; }\n' > libs/ardour/revision.cc - sed 's|/usr/include/libintl.h|${glibc.dev}/include/libintl.h|' -i wscript - patchShebangs ./tools/ - ''; + buildInputs = [ + alsaLib + aubio + boost + cairomm + curl + dbus + fftw + fftwSinglePrec + flac + glibmm + gtkmm2 + libjack2 + liblo + libogg + libsamplerate + libsigcxx + libsndfile + libusb1 + fluidsynth_1 + hidapi + libltc + qm-dsp + libxml2 + lilv + lrdf + lv2 + pango + rubberband + serd + sord + sratom + suil + taglib + vamp-plugin-sdk + libarchive + ]; wafConfigureFlags = [ "--optimize" "--docs" + "--use-external-libs" + "--freedesktop" "--with-backends=jack,alsa,dummy" ]; + NIX_CFLAGS_COMPILE = "-I${qm-dsp}/include/qm-dsp"; + + # ardour's wscript has a "tarball" target but that required the git revision + # be available. Since this is an unzipped tarball fetched from github we + # have to do that ourself. + postPatch = '' + printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = \"${tag}-${builtins.substring 0 8 src.rev}\"; }\n' > libs/ardour/revision.cc + patchShebangs ./tools/ + ''; + postInstall = '' - # Install desktop file - mkdir -p "$out/share/applications" - cat > "$out/share/applications/ardour.desktop" << EOF - [Desktop Entry] - Name=Ardour 5 - GenericName=Digital Audio Workstation - Comment=Multitrack harddisk recorder - Exec=$out/bin/ardour5 - Icon=$out/share/ardour5/resources/Ardour-icon_256px.png - Terminal=false - Type=Application - X-MultipleArgs=false - Categories=GTK;Audio;AudioVideoEditing;AudioVideo;Video; - EOF + # wscript does not install these for some reason + install -vDm 644 "build/gtk2_ardour/ardour.xml" \ + -t "$out/share/mime/packages" + install -vDm 644 "build/gtk2_ardour/ardour5.desktop" \ + -t "$out/share/applications" + for size in 16 22 32 48 256 512; do + install -vDm 644 "gtk2_ardour/resources/Ardour-icon_''${size}px.png" \ + "$out/share/icons/hicolor/''${size}x''${size}/apps/ardour5.png" + done + install -vDm 644 "ardour.1"* -t "$out/share/man/man1" ''; meta = with stdenv.lib; { @@ -83,7 +155,7 @@ stdenv.mkDerivation rec { Please consider supporting the ardour project financially: https://community.ardour.org/node/8288 ''; - homepage = http://ardour.org/; + homepage = "http://ardour.org/"; license = licenses.gpl2; platforms = platforms.linux; maintainers = [ maintainers.goibhniu maintainers.fps ]; diff --git a/pkgs/applications/audio/ario/default.nix b/pkgs/applications/audio/ario/default.nix index 4b48f5f1eea..99a09e7ee33 100644 --- a/pkgs/applications/audio/ario/default.nix +++ b/pkgs/applications/audio/ario/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { meta = { description = "GTK client for MPD (Music player daemon)"; - homepage = http://ario-player.sourceforge.net/; + homepage = "http://ario-player.sourceforge.net/"; license = stdenv.lib.licenses.gpl2Plus; maintainers = [ stdenv.lib.maintainers.garrison ]; platforms = stdenv.lib.platforms.all; diff --git a/pkgs/applications/audio/artyFX/default.nix b/pkgs/applications/audio/artyFX/default.nix index 4b76ebdf605..0265e0f75ec 100644 --- a/pkgs/applications/audio/artyFX/default.nix +++ b/pkgs/applications/audio/artyFX/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { buildInputs = [ cairomm cmake libjack2 libpthreadstubs libXdmcp libxshmfence libsndfile lv2 ntk ]; meta = with stdenv.lib; { - homepage = http://openavproductions.com/artyfx/; + homepage = "http://openavproductions.com/artyfx/"; description = "A LV2 plugin bundle of artistic realtime effects"; license = licenses.gpl2; maintainers = [ maintainers.magnetophon ]; diff --git a/pkgs/applications/audio/asunder/default.nix b/pkgs/applications/audio/asunder/default.nix index 5a0b6797a24..7d90ac36f36 100644 --- a/pkgs/applications/audio/asunder/default.nix +++ b/pkgs/applications/audio/asunder/default.nix @@ -38,7 +38,7 @@ stdenv.mkDerivation rec { meta = { description = "A graphical Audio CD ripper and encoder for Linux"; - homepage = http://littlesvr.ca/asunder/index.php; + homepage = "http://littlesvr.ca/asunder/index.php"; license = licenses.gpl2; maintainers = with maintainers; [ mudri ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/aucatctl/default.nix b/pkgs/applications/audio/aucatctl/default.nix new file mode 100644 index 00000000000..4aff3e1f7bf --- /dev/null +++ b/pkgs/applications/audio/aucatctl/default.nix @@ -0,0 +1,37 @@ +{ stdenv, fetchurl, sndio, libbsd }: + +stdenv.mkDerivation rec { + pname = "aucatctl"; + version = "0.1"; + + src = fetchurl { + url = "http://www.sndio.org/${pname}-${version}.tar.gz"; + sha256 = "524f2fae47db785234f166551520d9605b9a27551ca438bd807e3509ce246cf0"; + }; + + buildInputs = [ sndio ] + ++ stdenv.lib.optional (!stdenv.isDarwin && !stdenv.targetPlatform.isBSD) + libbsd; + + outputs = [ "out" "man" ]; + + preBuild = '' + makeFlagsArray+=("PREFIX=$out") + '' + stdenv.lib.optionalString + (!stdenv.isDarwin && !stdenv.targetPlatform.isBSD) '' + makeFlagsArray+=(LDADD="-lsndio -lbsd") + + # Fix warning about implicit declaration of function 'strlcpy' + substituteInPlace aucatctl.c \ + --replace '#include ' '#include ' + ''; + + meta = with stdenv.lib; { + description = + "The aucatctl utility sends MIDI messages to control sndiod and/or aucat volumes"; + homepage = "http://www.sndio.org"; + license = licenses.isc; + maintainers = with maintainers; [ sna ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/applications/audio/audacious/default.nix b/pkgs/applications/audio/audacious/default.nix index 12e8237d485..b06175f37f3 100644 --- a/pkgs/applications/audio/audacious/default.nix +++ b/pkgs/applications/audio/audacious/default.nix @@ -60,7 +60,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Audio player"; - homepage = https://audacious-media-player.org/; + homepage = "https://audacious-media-player.org/"; maintainers = with maintainers; [ eelco ramkromberg ]; platforms = with platforms; linux; license = with licenses; [ diff --git a/pkgs/applications/audio/audacious/qt-5.nix b/pkgs/applications/audio/audacious/qt-5.nix index baf7b108e50..45525571a64 100644 --- a/pkgs/applications/audio/audacious/qt-5.nix +++ b/pkgs/applications/audio/audacious/qt-5.nix @@ -81,7 +81,7 @@ mkDerivation { meta = with lib; { description = "Audio player"; - homepage = https://audacious-media-player.org/; + homepage = "https://audacious-media-player.org/"; maintainers = with maintainers; [ ttuegel ]; platforms = with platforms; linux; license = with licenses; [ diff --git a/pkgs/applications/audio/audacity/default.nix b/pkgs/applications/audio/audacity/default.nix index 57e0c52e640..a1f4b9ad950 100644 --- a/pkgs/applications/audio/audacity/default.nix +++ b/pkgs/applications/audio/audacity/default.nix @@ -57,7 +57,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Sound editor with graphical UI"; - homepage = http://audacityteam.org/; + homepage = "http://audacityteam.org/"; license = licenses.gpl2Plus; platforms = intersectLists platforms.linux platforms.x86; # fails on ARM maintainers = with maintainers; [ the-kenny ]; diff --git a/pkgs/applications/audio/audio-recorder/default.nix b/pkgs/applications/audio/audio-recorder/default.nix index 534b87e9fa7..eee293b76c2 100644 --- a/pkgs/applications/audio/audio-recorder/default.nix +++ b/pkgs/applications/audio/audio-recorder/default.nix @@ -36,7 +36,7 @@ stdenv.mkDerivation rec { automatically record your Skype calls. It supports several audio (output) formats such as OGG audio, Flac, MP3 and WAV. ''; - homepage = https://launchpad.net/~audio-recorder; + homepage = "https://launchpad.net/~audio-recorder"; license = licenses.gpl3; platforms = platforms.linux; maintainers = [ maintainers.msteen ]; diff --git a/pkgs/applications/audio/aumix/default.nix b/pkgs/applications/audio/aumix/default.nix index db5f081c4ed..5bc7f843258 100644 --- a/pkgs/applications/audio/aumix/default.nix +++ b/pkgs/applications/audio/aumix/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { 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; + homepage = "http://www.jpj.net/~trevor/aumix.html"; license = stdenv.lib.licenses.gpl2Plus; maintainers = [ ]; diff --git a/pkgs/applications/audio/avldrums-lv2/default.nix b/pkgs/applications/audio/avldrums-lv2/default.nix deleted file mode 100644 index d71718c32a8..00000000000 --- a/pkgs/applications/audio/avldrums-lv2/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ stdenv, fetchFromGitHub, pkgconfig, pango, cairo, libGLU, lv2 }: - -stdenv.mkDerivation rec { - pname = "avldrums.lv2"; - version = "0.4.0"; - - src = fetchFromGitHub { - owner = "x42"; - repo = pname; - rev = "v${version}"; - sha256 = "1z70rcq6z3gkb4fm8dm9hs31bslwr97zdh2n012fzki9b9rdj5qv"; - fetchSubmodules = true; - }; - - installFlags = [ "PREFIX=$(out)" ]; - - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ - pango cairo libGLU lv2 - ]; - - meta = with stdenv.lib; { - description = "Dedicated AVLDrumkits LV2 Plugin"; - homepage = http://x42-plugins.com/x42/x42-avldrums; - license = licenses.gpl2; - maintainers = [ maintainers.magnetophon ]; - platforms = [ "i686-linux" "x86_64-linux" ]; - }; -} diff --git a/pkgs/applications/audio/axoloti/default.nix b/pkgs/applications/audio/axoloti/default.nix index fb9b3c9513f..3d907e421b3 100644 --- a/pkgs/applications/audio/axoloti/default.nix +++ b/pkgs/applications/audio/axoloti/default.nix @@ -88,7 +88,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = http://www.axoloti.com; + homepage = "http://www.axoloti.com"; description = '' Sketching embedded digital audio algorithms. diff --git a/pkgs/applications/audio/axoloti/dfu-util.nix b/pkgs/applications/audio/axoloti/dfu-util.nix index e9fa6daecfe..80ec696c645 100644 --- a/pkgs/applications/audio/axoloti/dfu-util.nix +++ b/pkgs/applications/audio/axoloti/dfu-util.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { phones. With dfu-util you are able to download firmware to your device or upload firmware from it. ''; - homepage = http://dfu-util.sourceforge.net; + homepage = "http://dfu-util.sourceforge.net"; license = licenses.gpl2Plus; platforms = platforms.unix; maintainers = [ ]; diff --git a/pkgs/applications/audio/axoloti/libusb1.nix b/pkgs/applications/audio/axoloti/libusb1.nix index 1a6ebd346cc..49b788f6653 100644 --- a/pkgs/applications/audio/axoloti/libusb1.nix +++ b/pkgs/applications/audio/axoloti/libusb1.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = http://www.libusb.info; + homepage = "http://www.libusb.info"; description = "User-space USB library"; platforms = platforms.unix; license = licenses.lgpl21; diff --git a/pkgs/applications/audio/baudline/default.nix b/pkgs/applications/audio/baudline/default.nix index c35df95b24c..0d95675d1e6 100644 --- a/pkgs/applications/audio/baudline/default.nix +++ b/pkgs/applications/audio/baudline/default.nix @@ -59,7 +59,7 @@ stdenv.mkDerivation rec { displays, and continuous capture tools for hunting down and studying elusive signal characteristics. ''; - homepage = http://www.baudline.com/; + homepage = "http://www.baudline.com/"; # See http://www.baudline.com/faq.html#licensing_terms. # (Do NOT (re)distribute on hydra.) license = licenses.unfree; diff --git a/pkgs/applications/audio/beast/default.nix b/pkgs/applications/audio/beast/default.nix deleted file mode 100644 index 29cecb16999..00000000000 --- a/pkgs/applications/audio/beast/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ stdenv, fetchurl, zlib, guile, libart_lgpl, pkgconfig, intltool -, gtk2, glib, libogg, libvorbis, libgnomecanvas, gettext, perl }: - -stdenv.mkDerivation rec { - name = "beast-0.7.1"; - - src = fetchurl { - url = "https://ftp.gtk.org/pub/beast/v0.7/${name}.tar.bz2"; - sha256 = "0jyl1i1918rsn4296w07fsf6wx3clvad522m3bzgf8ms7gxivg5l"; - }; - - buildInputs = - [ zlib guile libart_lgpl pkgconfig intltool gtk2 glib - libogg libvorbis libgnomecanvas gettext - ]; - - patchPhase = '' - unset patchPhase; patchPhase - sed 's=-DG_DISABLE_DEPRECATED==g' -i `find -type f` # the patches didn't remove all occurences - sed 's=/bin/bash=/${stdenv.shell}=g' -i `find -type f` - sed 's=/usr/bin/perl=/${perl}/bin/perl=g' -i `find -type f` - ''; - - patches = - [ (fetchurl { - url = mirror://gentoo/distfiles/beast-0.7.1-guile-1.8.diff.bz2; - sha256 = "dc5194deff4b0a0eec368a69090db682d0c3113044ce2c2ed017ddfec9d3814e"; - }) - ./patch.patch # patches taken from gentoo - ]; - - meta = with stdenv.lib; { - description = "A music composition and modular synthesis application"; - homepage = http://beast.gtk.org; - license = with licenses; [ gpl2 lgpl21 ]; - broken = true; - }; -} diff --git a/pkgs/applications/audio/bitmeter/default.nix b/pkgs/applications/audio/bitmeter/default.nix index 6f471f3a028..ac05a9367cc 100644 --- a/pkgs/applications/audio/bitmeter/default.nix +++ b/pkgs/applications/audio/bitmeter/default.nix @@ -14,13 +14,13 @@ stdenv.mkDerivation rec { patches = [ (fetchurl { - url = https://gitweb.gentoo.org/repo/gentoo.git/plain/media-sound/bitmeter/files/bitmeter-1.2-fix-build-system.patch; + url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-sound/bitmeter/files/bitmeter-1.2-fix-build-system.patch"; sha256 = "021mz6933iw7mpk6b9cbjr8naj6smbq1hwqjszlyx72qbwrrid7k"; }) ]; meta = with stdenv.lib; { - homepage = http://devel.tlrmx.org/audio/bitmeter/; + homepage = "http://devel.tlrmx.org/audio/bitmeter/"; description = "Also known as jack bitscope. Useful to detect denormals"; license = licenses.gpl2; maintainers = [ maintainers.magnetophon ]; diff --git a/pkgs/applications/audio/bitwig-studio/bitwig-studio1.nix b/pkgs/applications/audio/bitwig-studio/bitwig-studio1.nix index 83586847190..910c1cfe51b 100644 --- a/pkgs/applications/audio/bitwig-studio/bitwig-studio1.nix +++ b/pkgs/applications/audio/bitwig-studio/bitwig-studio1.nix @@ -90,7 +90,7 @@ stdenv.mkDerivation rec { production, performance and DJing, with a focus on flexible editing tools and a super-fast workflow. ''; - homepage = https://www.bitwig.com/; + homepage = "https://www.bitwig.com/"; license = licenses.unfree; platforms = [ "x86_64-linux" ]; maintainers = with maintainers; [ michalrus mrVanDalo ]; diff --git a/pkgs/applications/audio/bristol/default.nix b/pkgs/applications/audio/bristol/default.nix index 504900d6595..704b888e229 100644 --- a/pkgs/applications/audio/bristol/default.nix +++ b/pkgs/applications/audio/bristol/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A range of synthesiser, electric piano and organ emulations"; - homepage = http://bristol.sourceforge.net; + homepage = "http://bristol.sourceforge.net"; license = licenses.gpl3; platforms = ["x86_64-linux" "i686-linux"]; maintainers = [ maintainers.goibhniu ]; diff --git a/pkgs/applications/audio/bs1770gain/default.nix b/pkgs/applications/audio/bs1770gain/default.nix index 2dee463aeee..76a78935619 100644 --- a/pkgs/applications/audio/bs1770gain/default.nix +++ b/pkgs/applications/audio/bs1770gain/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A audio/video loudness scanner implementing ITU-R BS.1770"; license = licenses.gpl2Plus; - homepage = http://bs1770gain.sourceforge.net/; + homepage = "http://bs1770gain.sourceforge.net/"; platforms = platforms.all; }; } diff --git a/pkgs/applications/audio/bsequencer/default.nix b/pkgs/applications/audio/bsequencer/default.nix index b91554f5716..e63124e8547 100644 --- a/pkgs/applications/audio/bsequencer/default.nix +++ b/pkgs/applications/audio/bsequencer/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { installFlags = [ "PREFIX=$(out)" ]; meta = with stdenv.lib; { - homepage = https://github.com/sjaehn/BSEQuencer; + homepage = "https://github.com/sjaehn/BSEQuencer"; description = "Multi channel MIDI step sequencer LV2 plugin"; maintainers = [ maintainers.magnetophon ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/bshapr/default.nix b/pkgs/applications/audio/bshapr/default.nix index 88a671495c3..a2f96bc288c 100644 --- a/pkgs/applications/audio/bshapr/default.nix +++ b/pkgs/applications/audio/bshapr/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "BShapr"; - version = "0.7"; + version = "0.8"; src = fetchFromGitHub { owner = "sjaehn"; repo = pname; rev = "v${version}"; - sha256 = "1422xay28jkmqlj5y4vhb57kljy6ysvxh20cxpfxm980m8n54gq5"; + sha256 = "0jlq5rjicc4fxlpk869dg0l5bwwz8k9aj2wfk9v89b0qw8l8kaxl"; }; nativeBuildInputs = [ pkgconfig ]; @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { installFlags = [ "PREFIX=$(out)" ]; meta = with stdenv.lib; { - homepage = https://github.com/sjaehn/BShapr; + homepage = "https://github.com/sjaehn/BShapr"; description = "Beat / envelope shaper LV2 plugin"; maintainers = [ maintainers.magnetophon ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/bslizr/default.nix b/pkgs/applications/audio/bslizr/default.nix index 97a9d60ec27..bae2407ec7b 100644 --- a/pkgs/applications/audio/bslizr/default.nix +++ b/pkgs/applications/audio/bslizr/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "BSlizr"; - version = "1.2.4"; + version = "1.2.6"; src = fetchFromGitHub { owner = "sjaehn"; repo = pname; rev = "${version}"; - sha256 = "0gyczxhd1jch7lwz3y1nrbpc0dycw9cc5i144rpif6b9gd2y1h1j"; + sha256 = "1l0znwvvqd2s24c652q54pkizlh86mvmr8h0qqp9xma0i575fcrh"; }; nativeBuildInputs = [ pkgconfig ]; @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { installFlags = [ "PREFIX=$(out)" ]; meta = with stdenv.lib; { - homepage = https://github.com/sjaehn/BSlizr; + homepage = "https://github.com/sjaehn/BSlizr"; description = "Sequenced audio slicing effect LV2 plugin (step sequencer effect)"; maintainers = [ maintainers.magnetophon ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/cadence/default.nix b/pkgs/applications/audio/cadence/default.nix index 7aa2872224d..4f4ad4b8c5b 100644 --- a/pkgs/applications/audio/cadence/default.nix +++ b/pkgs/applications/audio/cadence/default.nix @@ -91,7 +91,7 @@ mkDerivation rec { '') scriptAndSource; meta = { - homepage = https://github.com/falkTX/Cadence/; + homepage = "https://github.com/falkTX/Cadence/"; description = "Collection of tools useful for audio production"; license = stdenv.lib.licenses.gpl2Plus; maintainers = with stdenv.lib.maintainers; [ genesis worldofpeace ]; diff --git a/pkgs/applications/audio/calf/default.nix b/pkgs/applications/audio/calf/default.nix index 0106e8b4584..bbeef4c395a 100644 --- a/pkgs/applications/audio/calf/default.nix +++ b/pkgs/applications/audio/calf/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { ]; meta = with stdenv.lib; { - homepage = http://calf-studio-gear.org; + homepage = "http://calf-studio-gear.org"; description = "A set of high quality open source audio plugins for musicians"; license = licenses.lgpl2; maintainers = [ maintainers.goibhniu ]; diff --git a/pkgs/applications/audio/cantata/default.nix b/pkgs/applications/audio/cantata/default.nix index cd1783ff685..799cefc7819 100644 --- a/pkgs/applications/audio/cantata/default.nix +++ b/pkgs/applications/audio/cantata/default.nix @@ -1,5 +1,5 @@ -{ mkDerivation, lib, fetchFromGitHub, cmake, pkgconfig, vlc -, qtbase, qtmultimedia, qtsvg, qttools +{ mkDerivation, lib, fetchFromGitHub, cmake, pkgconfig +, qtbase, qtsvg, qttools # Cantata doesn't build with cdparanoia enabled so we disable that # default for now until I (or someone else) figure it out. @@ -9,12 +9,14 @@ , withMusicbrainz ? false, libmusicbrainz5 , withTaglib ? true, taglib, taglib_extras +, withHttpStream ? true, qtmultimedia , withReplaygain ? true, ffmpeg, speex, mpg123 , withMtp ? true, libmtp , withOnlineServices ? true , withDevices ? true, udisks2 , withDynamic ? true , withHttpServer ? true +, withLibVlc ? false, vlc , withStreams ? true }: @@ -26,6 +28,7 @@ assert withMtp -> withTaglib; assert withMusicbrainz -> withCdda && withTaglib; assert withOnlineServices -> withTaglib; assert withReplaygain -> withTaglib; +assert withLibVlc -> withHttpStream; let version = "2.4.1"; @@ -45,15 +48,17 @@ in mkDerivation { sha256 = "0ix7xp352bziwz31mw79y7wxxmdn6060p8ry2px243ni1lz1qx1c"; }; - buildInputs = [ vlc qtbase qtmultimedia qtsvg ] + buildInputs = [ qtbase qtsvg ] ++ lib.optionals withTaglib [ taglib taglib_extras ] ++ lib.optionals withReplaygain [ ffmpeg speex mpg123 ] + ++ lib.optional withHttpStream qtmultimedia ++ lib.optional withCdda cdparanoia ++ lib.optional withCddb libcddb ++ lib.optional withLame lame ++ lib.optional withMtp libmtp ++ lib.optional withMusicbrainz libmusicbrainz5 - ++ lib.optional withUdisks udisks2; + ++ lib.optional withUdisks udisks2 + ++ lib.optional withLibVlc vlc; nativeBuildInputs = [ cmake pkgconfig qttools ]; @@ -62,6 +67,7 @@ in mkDerivation { cmakeFlags = lib.flatten [ (fstats withTaglib [ "TAGLIB" "TAGLIB_EXTRAS" ]) (fstats withReplaygain [ "FFMPEG" "MPG123" "SPEEXDSP" ]) + (fstat withHttpStream "HTTP_STREAM_PLAYBACK") (fstat withCdda "CDPARANOIA") (fstat withCddb "CDDB") (fstat withLame "LAME") @@ -71,6 +77,7 @@ in mkDerivation { (fstat withDynamic "DYNAMIC") (fstat withDevices "DEVICES_SUPPORT") (fstat withHttpServer "HTTP_SERVER") + (fstat withLibVlc "LIBVLC") (fstat withStreams "STREAMS") (fstat withUdisks "UDISKS2") "-DENABLE_HTTPS_SUPPORT=ON" diff --git a/pkgs/applications/audio/caps/default.nix b/pkgs/applications/audio/caps/default.nix index eabbf866837..dc8511bf500 100644 --- a/pkgs/applications/audio/caps/default.nix +++ b/pkgs/applications/audio/caps/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { considerations are latency-free realtime operation, modesty of resource demands and meaningful control interfaces. ''; - homepage = http://www.quitte.de/dsp/caps.html; + homepage = "http://www.quitte.de/dsp/caps.html"; license = stdenv.lib.licenses.gpl3; maintainers = [ stdenv.lib.maintainers.astsmtl ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/carla/default.nix b/pkgs/applications/audio/carla/default.nix index 6641e99e491..bf297d8a83c 100644 --- a/pkgs/applications/audio/carla/default.nix +++ b/pkgs/applications/audio/carla/default.nix @@ -15,13 +15,13 @@ assert withGtk3 -> gtk3 != null; stdenv.mkDerivation rec { pname = "carla"; - version = "2.0.0"; + version = "2.1"; src = fetchFromGitHub { owner = "falkTX"; repo = pname; rev = "v${version}"; - sha256 = "0fqgncqlr86n38yy7pa118mswfacmfczj7w9xx6c6k0jav3wk29k"; + sha256 = "074y40yrgl3qrdr3a5vn0scsw0qv77r5p5m6gc89zhf20ic8ajzc"; }; nativeBuildInputs = [ @@ -68,7 +68,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = http://kxstudio.sf.net/carla; + homepage = "http://kxstudio.sf.net/carla"; description = "An audio plugin host"; longDescription = '' It currently supports LADSPA (including LRDF), DSSI, LV2, VST2/3 diff --git a/pkgs/applications/audio/caudec/default.nix b/pkgs/applications/audio/caudec/default.nix index 1ab39311258..c9539095863 100644 --- a/pkgs/applications/audio/caudec/default.nix +++ b/pkgs/applications/audio/caudec/default.nix @@ -31,7 +31,7 @@ stdenv.mkDerivation { ''; meta = with stdenv.lib; { - homepage = http://caudec.net/; + homepage = "http://caudec.net/"; description = "A multiprocess audio converter that supports many formats (FLAC, MP3, Ogg Vorbis, Windows codecs and many more)"; license = licenses.gpl3; platforms = platforms.linux ++ platforms.darwin; diff --git a/pkgs/applications/audio/cava/default.nix b/pkgs/applications/audio/cava/default.nix index 5c5c262056e..2bdca386bf4 100644 --- a/pkgs/applications/audio/cava/default.nix +++ b/pkgs/applications/audio/cava/default.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Console-based Audio Visualizer for Alsa"; - homepage = https://github.com/karlstav/cava; + homepage = "https://github.com/karlstav/cava"; license = licenses.mit; maintainers = with maintainers; [ offline mirrexagon ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/cd-discid/default.nix b/pkgs/applications/audio/cd-discid/default.nix index 864e04d88f3..2ceb5f6d09a 100644 --- a/pkgs/applications/audio/cd-discid/default.nix +++ b/pkgs/applications/audio/cd-discid/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { ++ stdenv.lib.optional stdenv.isDarwin IOKit; meta = with stdenv.lib; { - homepage = http://linukz.org/cd-discid.shtml; + homepage = "http://linukz.org/cd-discid.shtml"; license = licenses.gpl2Plus; maintainers = [ maintainers.rycee ]; platforms = platforms.unix; diff --git a/pkgs/applications/audio/cdparanoia/default.nix b/pkgs/applications/audio/cdparanoia/default.nix index 4e517ee636e..0658305723c 100644 --- a/pkgs/applications/audio/cdparanoia/default.nix +++ b/pkgs/applications/audio/cdparanoia/default.nix @@ -35,7 +35,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = https://xiph.org/paranoia; + homepage = "https://xiph.org/paranoia"; description = "A tool and library for reading digital audio from CDs"; license = with licenses; [ gpl2Plus lgpl21Plus ]; platforms = platforms.unix; diff --git a/pkgs/applications/audio/cheesecutter/0001-fix-impure-build-date-display.patch b/pkgs/applications/audio/cheesecutter/0001-fix-impure-build-date-display.patch new file mode 100644 index 00000000000..2e2746f4341 --- /dev/null +++ b/pkgs/applications/audio/cheesecutter/0001-fix-impure-build-date-display.patch @@ -0,0 +1,26 @@ +diff --git a/src/ct2util.d b/src/ct2util.d +index 523cadc..e462b09 100644 +--- a/src/ct2util.d ++++ b/src/ct2util.d +@@ -105,7 +105,7 @@ int main(string[] args) { + speeds.length = 32; + masks.length = 32; + void printheader() { +- enum hdr = "CheeseCutter 2 utilities" ~ com.util.versionInfo; ++ enum hdr = "CheeseCutter 2 utilities"; + writefln(hdr); + writefln("\nUsage: \t%s <-o outfile>",args[0]); + writefln("\t%s import <-o outfile>",args[0]); +diff --git a/src/ui/ui.d b/src/ui/ui.d +index e418dda..21af408 100644 +--- a/src/ui/ui.d ++++ b/src/ui/ui.d +@@ -231,7 +231,7 @@ class Infobar : Window { + + screen.clrtoeol(0, headerColor); + +- enum hdr = "CheeseCutter 2.9" ~ com.util.versionInfo; ++ enum hdr = "CheeseCutter 2.9"; + screen.cprint(4, 0, 1, headerColor, hdr); + screen.cprint(screen.width - 14, 0, 1, headerColor, "F12 = Help"); + int c1 = audio.player.isPlaying ? 13 : 12; diff --git a/pkgs/applications/audio/cheesecutter/default.nix b/pkgs/applications/audio/cheesecutter/default.nix new file mode 100644 index 00000000000..732c2968fde --- /dev/null +++ b/pkgs/applications/audio/cheesecutter/default.nix @@ -0,0 +1,48 @@ +{ stdenv, lib, fetchFromGitHub, fetchpatch +, acme, ldc, patchelf +, SDL +}: + +stdenv.mkDerivation rec { + pname = "cheesecutter"; + version = "unstable-2019-12-06"; + + src = fetchFromGitHub { + owner = "theyamo"; + repo = "CheeseCutter"; + rev = "6b433c5512d693262742a93c8bfdfb353d4be853"; + sha256 = "1szlcg456b208w1237581sg21x69mqlh8cr6v8yvbhxdz9swxnwy"; + }; + + nativeBuildInputs = [ acme ldc patchelf ]; + + buildInputs = [ SDL ]; + + patches = [ + ./0001-fix-impure-build-date-display.patch + ]; + + makefile = "Makefile.ldc"; + + installPhase = '' + for exe in {ccutter,ct2util}; do + install -D $exe $out/bin/$exe + done + + mkdir -p $out/share/cheesecutter/example_tunes + cp -r tunes/* $out/share/cheesecutter/example_tunes + ''; + + postFixup = '' + rpath=$(patchelf --print-rpath $out/bin/ccutter) + patchelf --set-rpath "$rpath:${lib.makeLibraryPath buildInputs}" $out/bin/ccutter + ''; + + meta = with lib; { + description = "A tracker program for composing music for the SID chip."; + homepage = "https://github.com/theyamo/CheeseCutter/"; + license = licenses.gpl2; + platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ]; + maintainers = with maintainers; [ OPNA2608 ]; + }; +} diff --git a/pkgs/applications/audio/chuck/default.nix b/pkgs/applications/audio/chuck/default.nix index 04b31ae2c0b..6970296cbd9 100644 --- a/pkgs/applications/audio/chuck/default.nix +++ b/pkgs/applications/audio/chuck/default.nix @@ -33,7 +33,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Programming language for real-time sound synthesis and music creation"; - homepage = http://chuck.cs.princeton.edu; + homepage = "http://chuck.cs.princeton.edu"; license = licenses.gpl2; platforms = platforms.unix; maintainers = with maintainers; [ ftrvxmtrx ]; diff --git a/pkgs/applications/audio/clementine/default.nix b/pkgs/applications/audio/clementine/default.nix index 3fdf98da325..15d0f92b76a 100644 --- a/pkgs/applications/audio/clementine/default.nix +++ b/pkgs/applications/audio/clementine/default.nix @@ -91,7 +91,7 @@ let ''; meta = with stdenv.lib; { - homepage = http://www.clementine-player.org; + homepage = "https://www.clementine-player.org"; description = "A multiplatform music player"; license = licenses.gpl3Plus; platforms = platforms.linux; @@ -125,12 +125,12 @@ let mkdir -p $out/share for dir in applications icons kde4; do - ln -s "$free/share/$dir" "$out/share/$dir" + ln -s "${free}/share/$dir" "$out/share/$dir" done ''; enableParallelBuilding = true; meta = with stdenv.lib; { - homepage = http://www.clementine-player.org; + homepage = "https://www.clementine-player.org"; description = "Spotify integration for Clementine"; # The blob itself is Apache-licensed, although libspotify is unfree. license = licenses.asl20; diff --git a/pkgs/applications/audio/clerk/default.nix b/pkgs/applications/audio/clerk/default.nix index 4da2228c6c1..3c78295db67 100644 --- a/pkgs/applications/audio/clerk/default.nix +++ b/pkgs/applications/audio/clerk/default.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "An MPD client built on top of rofi"; - homepage = https://github.com/carnager/clerk; + homepage = "https://github.com/carnager/clerk"; license = licenses.mit; maintainers = with maintainers; [ anderspapitto ]; }; diff --git a/pkgs/applications/audio/cmt/default.nix b/pkgs/applications/audio/cmt/default.nix new file mode 100644 index 00000000000..96cc3c57319 --- /dev/null +++ b/pkgs/applications/audio/cmt/default.nix @@ -0,0 +1,33 @@ +{ stdenv +, fetchurl +, ladspaH +}: + +stdenv.mkDerivation rec { + name = "cmt"; + version = "1.17"; + + src = fetchurl { + url = "http://www.ladspa.org/download/${name}_${version}.tgz"; + sha256 = "07xd0xmwpa0j12813jpf87fr9hwzihii5l35mp8ady7xxfmxfmpb"; + }; + + buildInputs = [ ladspaH ]; + + preBuild = '' + cd src + ''; + + installFlags = [ "INSTALL_PLUGINS_DIR=${placeholder "out"}/lib/ladspa" ]; + preInstall = '' + mkdir -p $out/lib/ladspa + ''; + + meta = with stdenv.lib; { + description = "Computer Music Toolkit"; + homepage = "https://www.ladspa.org/cmt"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ sjfloat ]; + }; +} diff --git a/pkgs/applications/audio/cmus/default.nix b/pkgs/applications/audio/cmus/default.nix index 023e35bd787..3e5916ba098 100644 --- a/pkgs/applications/audio/cmus/default.nix +++ b/pkgs/applications/audio/cmus/default.nix @@ -128,7 +128,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Small, fast and powerful console music player for Linux and *BSD"; - homepage = https://cmus.github.io/; + homepage = "https://cmus.github.io/"; license = licenses.gpl2; maintainers = [ maintainers.oxij ]; platforms = platforms.linux ++ platforms.darwin; diff --git a/pkgs/applications/audio/cmusfm/default.nix b/pkgs/applications/audio/cmusfm/default.nix index 54f1050da46..6695b9a7237 100644 --- a/pkgs/applications/audio/cmusfm/default.nix +++ b/pkgs/applications/audio/cmusfm/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation { + run `cmusfm init` to generate configuration file under ~/.config/cmus/cmusfm.conf + Inside cmus run `:set status_display_program=cmusfm` to set up cmusfm ''; - homepage = https://github.com/Arkq/cmusfm/; + homepage = "https://github.com/Arkq/cmusfm/"; maintainers = with stdenv.lib.maintainers; [ CharlesHD ]; license = licenses.gpl3Plus; platforms = platforms.linux ++ platforms.darwin; diff --git a/pkgs/applications/audio/cozy-audiobooks/default.nix b/pkgs/applications/audio/cozy-audiobooks/default.nix index 865bc130db9..a5947bd37f1 100644 --- a/pkgs/applications/audio/cozy-audiobooks/default.nix +++ b/pkgs/applications/audio/cozy-audiobooks/default.nix @@ -75,7 +75,7 @@ python3Packages.buildPythonApplication rec { meta = with stdenv.lib; { description = "A modern audio book player for Linux using GTK 3"; - homepage = https://cozy.geigi.de/; + homepage = "https://cozy.geigi.de/"; maintainers = [ maintainers.makefu ]; license = licenses.gpl3; }; diff --git a/pkgs/applications/audio/crip/default.nix b/pkgs/applications/audio/crip/default.nix index f7bf919c221..0181ede26dd 100644 --- a/pkgs/applications/audio/crip/default.nix +++ b/pkgs/applications/audio/crip/default.nix @@ -58,7 +58,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = http://bach.dynet.com/crip/; + homepage = "http://bach.dynet.com/crip/"; description = "Terminal-based ripper/encoder/tagger tool for creating Ogg Vorbis/FLAC files"; license = stdenv.lib.licenses.gpl1; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/csa/default.nix b/pkgs/applications/audio/csa/default.nix index 0b8afada020..756c21892fb 100644 --- a/pkgs/applications/audio/csa/default.nix +++ b/pkgs/applications/audio/csa/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { postInstall = "rm $out/lib/ladspa/celllm_3890.*"; meta = with stdenv.lib; { - homepage = https://sourceforge.net/projects/csa/; + homepage = "https://sourceforge.net/projects/csa/"; description = "A group of LADSPA Audio plugins for FM broadcast and more"; longDescription = '' CSA means : Contrôle Signal Audio. diff --git a/pkgs/applications/audio/csound/csound-qt/default.nix b/pkgs/applications/audio/csound/csound-qt/default.nix index d16d9331821..895609d3c02 100644 --- a/pkgs/applications/audio/csound/csound-qt/default.nix +++ b/pkgs/applications/audio/csound/csound-qt/default.nix @@ -42,7 +42,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "CsoundQt is a frontend for Csound with editor, integrated help, widgets and other features."; - homepage = https://csoundqt.github.io/; + homepage = "https://csoundqt.github.io/"; license = licenses.gpl2; platforms = platforms.linux; maintainers = with maintainers; [ hlolli ]; diff --git a/pkgs/applications/audio/csound/default.nix b/pkgs/applications/audio/csound/default.nix index 758448c2fb3..4b426609fea 100644 --- a/pkgs/applications/audio/csound/default.nix +++ b/pkgs/applications/audio/csound/default.nix @@ -42,7 +42,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Sound design, audio synthesis, and signal processing system, providing facilities for music composition and performance on all major operating systems and platforms"; - homepage = http://www.csounds.com/; + homepage = "http://www.csounds.com/"; license = licenses.gpl2; maintainers = [maintainers.marcweber]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/deadbeef/default.nix b/pkgs/applications/audio/deadbeef/default.nix index 2df6b9931cf..4c2323fbe8a 100644 --- a/pkgs/applications/audio/deadbeef/default.nix +++ b/pkgs/applications/audio/deadbeef/default.nix @@ -59,13 +59,13 @@ assert remoteSupport -> curl != null; stdenv.mkDerivation rec { pname = "deadbeef"; - version = "1.8.2"; + version = "1.8.3"; src = fetchFromGitHub { owner = "DeaDBeeF-Player"; repo = "deadbeef"; rev = version; - sha256 = "016wwnh5jqdcfxn1ff6in5dz73c3gdhh3fva8inq7sc3vzdz5khj"; + sha256 = "0n0q7zfl56gnadcqqp5rg7sbh1xvfcmp7cvmh2ax07037b346qig"; }; buildInputs = with stdenv.lib; [ jansson ] @@ -108,7 +108,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Ultimate Music Player for GNU/Linux"; - homepage = http://deadbeef.sourceforge.net/; + homepage = "http://deadbeef.sourceforge.net/"; license = licenses.gpl2; platforms = [ "x86_64-linux" "i686-linux" ]; maintainers = [ maintainers.abbradar ]; diff --git a/pkgs/applications/audio/deadbeef/fix-wildmidi.patch b/pkgs/applications/audio/deadbeef/fix-wildmidi.patch deleted file mode 100644 index c37308459bb..00000000000 --- a/pkgs/applications/audio/deadbeef/fix-wildmidi.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- a/plugins/wildmidi/src/wildmidi_lib.c -+++ b/plugins/wildmidi/src/wildmidi_lib.c -@@ -394,11 +394,11 @@ free_gauss (void) { - } - } - --unsigned long int delay_size[4][2]; --signed long int a[5][2]; --signed long int b[5][2]; --signed long int gain_in[4]; --signed long int gain_out[4]; -+static unsigned long int delay_size[4][2]; -+static signed long int a[5][2]; -+static signed long int b[5][2]; -+static signed long int gain_in[4]; -+static signed long int gain_out[4]; - - void init_lowpass (void) { - float c = 0; diff --git a/pkgs/applications/audio/deadbeef/plugins/headerbar-gtk3.nix b/pkgs/applications/audio/deadbeef/plugins/headerbar-gtk3.nix index b26360f0c46..337d570a935 100644 --- a/pkgs/applications/audio/deadbeef/plugins/headerbar-gtk3.nix +++ b/pkgs/applications/audio/deadbeef/plugins/headerbar-gtk3.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Plug-in that adds GTK 3 header bar to the DeaDBeeF music player"; - homepage = https://github.com/saivert/ddb_misc_headerbar_GTK3; + homepage = "https://github.com/saivert/ddb_misc_headerbar_GTK3"; license = licenses.gpl2Plus; maintainers = [ maintainers.jtojnar ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/deadbeef/plugins/infobar.nix b/pkgs/applications/audio/deadbeef/plugins/infobar.nix index 8a81101983f..294d3a0ad8b 100644 --- a/pkgs/applications/audio/deadbeef/plugins/infobar.nix +++ b/pkgs/applications/audio/deadbeef/plugins/infobar.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { broken = true; # crashes DeaDBeeF and is abandoned (https://bitbucket.org/dsimbiriatin/deadbeef-infobar/issues/38/infobar-causes-deadbeef-180-to-crash) description = "DeaDBeeF Infobar Plugin"; - homepage = https://bitbucket.org/dsimbiriatin/deadbeef-infobar; + homepage = "https://bitbucket.org/dsimbiriatin/deadbeef-infobar"; license = licenses.gpl2Plus; maintainers = [ maintainers.jtojnar ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/deadbeef/plugins/mpris2.nix b/pkgs/applications/audio/deadbeef/plugins/mpris2.nix index 5b27f3c3f32..95606a869b7 100644 --- a/pkgs/applications/audio/deadbeef/plugins/mpris2.nix +++ b/pkgs/applications/audio/deadbeef/plugins/mpris2.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "MPRISv2 plugin for the DeaDBeeF music player"; - homepage = https://github.com/Serranya/deadbeef-mpris2-plugin/; + homepage = "https://github.com/Serranya/deadbeef-mpris2-plugin/"; license = licenses.gpl2; platforms = platforms.linux; maintainers = [ maintainers.abbradar ]; diff --git a/pkgs/applications/audio/denemo/default.nix b/pkgs/applications/audio/denemo/default.nix index f3adec4fece..1438b066061 100644 --- a/pkgs/applications/audio/denemo/default.nix +++ b/pkgs/applications/audio/denemo/default.nix @@ -33,7 +33,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Music notation and composition software used with lilypond"; - homepage = http://denemo.org; + homepage = "http://denemo.org"; license = licenses.gpl3; platforms = platforms.linux; maintainers = [ maintainers.olynch ]; diff --git a/pkgs/applications/audio/dfasma/default.nix b/pkgs/applications/audio/dfasma/default.nix index 1785ca60060..6df4679d1d5 100644 --- a/pkgs/applications/audio/dfasma/default.nix +++ b/pkgs/applications/audio/dfasma/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, fftw, libsndfile, qtbase, qtmultimedia, qmake }: +{ mkDerivation, stdenv, fetchFromGitHub, fftw, libsndfile, qtbase, qtmultimedia, qmake }: let @@ -26,7 +26,7 @@ let }; }; -in stdenv.mkDerivation rec { +in mkDerivation rec { pname = "dfasma"; version = "1.4.5"; @@ -59,7 +59,7 @@ in stdenv.mkDerivation rec { there are basic functionalities to align the signals in time and amplitude, this software does not aim to be an audio editor. ''; - homepage = http://gillesdegottex.github.io/dfasma/; + homepage = "http://gillesdegottex.github.io/dfasma/"; license = [ licenses.gpl3Plus reaperFork.meta.license ]; platforms = platforms.linux; }; diff --git a/pkgs/applications/audio/dirt/default.nix b/pkgs/applications/audio/dirt/default.nix index 1fcdda40896..5e0cf3616fe 100644 --- a/pkgs/applications/audio/dirt/default.nix +++ b/pkgs/applications/audio/dirt/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "An unimpressive thingie for playing bits of samples with some level of accuracy"; - homepage = https://github.com/tidalcycles/Dirt; + homepage = "https://github.com/tidalcycles/Dirt"; license = licenses.gpl3; maintainers = with maintainers; [ anderspapitto ]; platforms = with platforms; linux; diff --git a/pkgs/applications/audio/distrho/default.nix b/pkgs/applications/audio/distrho/default.nix index 36f7dcc5993..0f651f47a48 100644 --- a/pkgs/applications/audio/distrho/default.nix +++ b/pkgs/applications/audio/distrho/default.nix @@ -40,7 +40,7 @@ in stdenv.mkDerivation rec { makeFlags = [ "PREFIX=$(out)" ]; meta = with stdenv.lib; { - homepage = http://distrho.sourceforge.net; + homepage = "http://distrho.sourceforge.net"; description = "A collection of cross-platform audio effects and plugins"; longDescription = '' Includes: diff --git a/pkgs/applications/audio/dr14_tmeter/default.nix b/pkgs/applications/audio/dr14_tmeter/default.nix index ea0ce8cb5f3..fbf25384eef 100644 --- a/pkgs/applications/audio/dr14_tmeter/default.nix +++ b/pkgs/applications/audio/dr14_tmeter/default.nix @@ -23,7 +23,7 @@ python3Packages.buildPythonApplication rec { meta = with stdenv.lib; { description = "Compute the DR14 of a given audio file according to the procedure described by the Pleasurize Music Foundation"; license = licenses.gpl3Plus; - homepage = http://dr14tmeter.sourceforge.net/; + homepage = "http://dr14tmeter.sourceforge.net/"; maintainers = [ maintainers.adisbladis ]; }; } diff --git a/pkgs/applications/audio/dragonfly-reverb/default.nix b/pkgs/applications/audio/dragonfly-reverb/default.nix index 1ce7115ad85..99c07ba8f5f 100644 --- a/pkgs/applications/audio/dragonfly-reverb/default.nix +++ b/pkgs/applications/audio/dragonfly-reverb/default.nix @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = https://github.com/michaelwillis/dragonfly-reverb; + homepage = "https://github.com/michaelwillis/dragonfly-reverb"; description = "A hall-style reverb based on freeverb3 algorithms"; maintainers = [ maintainers.magnetophon ]; license = licenses.gpl3; diff --git a/pkgs/applications/audio/drumgizmo/default.nix b/pkgs/applications/audio/drumgizmo/default.nix index 2581f223c91..454befd55f9 100644 --- a/pkgs/applications/audio/drumgizmo/default.nix +++ b/pkgs/applications/audio/drumgizmo/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "An LV2 sample based drum plugin"; - homepage = https://www.drumgizmo.org; + homepage = "https://www.drumgizmo.org"; license = licenses.lgpl3; platforms = platforms.linux; maintainers = [ maintainers.goibhniu maintainers.nico202 ]; diff --git a/pkgs/applications/audio/drumkv1/default.nix b/pkgs/applications/audio/drumkv1/default.nix index d3399315376..ae32a5f41a3 100644 --- a/pkgs/applications/audio/drumkv1/default.nix +++ b/pkgs/applications/audio/drumkv1/default.nix @@ -2,11 +2,11 @@ mkDerivation rec { pname = "drumkv1"; - version = "0.9.12"; + version = "0.9.13"; src = fetchurl { url = "mirror://sourceforge/drumkv1/${pname}-${version}.tar.gz"; - sha256 = "0hmnmk9vvi43wl6say0dg7j088h7mmwmfdwjhsq89c7i7cpg78da"; + sha256 = "1h88sakxs0b20k8v2sh14y05fin1zqmhnid6h9mk9c37ixxg58ia"; }; buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools ]; @@ -15,7 +15,7 @@ mkDerivation rec { meta = with lib; { description = "An old-school drum-kit sampler synthesizer with stereo fx"; - homepage = http://drumkv1.sourceforge.net/; + homepage = "http://drumkv1.sourceforge.net/"; license = licenses.gpl2Plus; platforms = platforms.linux; maintainers = [ maintainers.goibhniu ]; diff --git a/pkgs/applications/audio/easytag/default.nix b/pkgs/applications/audio/easytag/default.nix index 4c2b97e727f..3f294342da7 100644 --- a/pkgs/applications/audio/easytag/default.nix +++ b/pkgs/applications/audio/easytag/default.nix @@ -33,7 +33,7 @@ in stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "View and edit tags for various audio files"; - homepage = https://wiki.gnome.org/Apps/EasyTAG; + homepage = "https://wiki.gnome.org/Apps/EasyTAG"; license = licenses.gpl2Plus; maintainers = with maintainers; [ ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/ecasound/default.nix b/pkgs/applications/audio/ecasound/default.nix index c17f6b745b3..13c48fc12af 100644 --- a/pkgs/applications/audio/ecasound/default.nix +++ b/pkgs/applications/audio/ecasound/default.nix @@ -27,6 +27,6 @@ stdenv.mkDerivation rec { meta = { description = "Ecasound is a software package designed for multitrack audio processing"; license = with stdenv.lib.licenses; [ gpl2 lgpl21 ]; - homepage = http://nosignal.fi/ecasound/; + homepage = "http://nosignal.fi/ecasound/"; }; } diff --git a/pkgs/applications/audio/eflite/default.nix b/pkgs/applications/audio/eflite/default.nix index 2338c0ed376..f9a579512ca 100644 --- a/pkgs/applications/audio/eflite/default.nix +++ b/pkgs/applications/audio/eflite/default.nix @@ -36,7 +36,7 @@ stdenv.mkDerivation rec { CFLAGS = stdenv.lib.optionalString debug " -DDEBUG=2"; meta = { - homepage = http://eflite.sourceforge.net; + homepage = "http://eflite.sourceforge.net"; description = "EFlite is a speech server for screen readers"; longDescription = '' EFlite is a speech server for Emacspeak and other screen diff --git a/pkgs/applications/audio/elisa/default.nix b/pkgs/applications/audio/elisa/default.nix deleted file mode 100644 index 1d56ce089d9..00000000000 --- a/pkgs/applications/audio/elisa/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ mkDerivation, fetchFromGitHub, lib -, extra-cmake-modules, kdoctools, wrapGAppsHook -, qtmultimedia, qtquickcontrols2, qtwebsockets -, kconfig, kcmutils, kcrash, kdeclarative, kfilemetadata, kinit, kirigami2 -, baloo, vlc -}: - -mkDerivation rec { - pname = "elisa"; - version = "19.12.3"; - - src = fetchFromGitHub { - owner = "KDE"; - repo = "elisa"; - rev = "v${version}"; - sha256 = "0s1sixkrx4czckzg0llkrbp8rp397ljsq1c309z23m277jsmnnb6"; - }; - - buildInputs = [ vlc ]; - - nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ]; - - propagatedBuildInputs = [ - qtmultimedia qtquickcontrols2 qtwebsockets - kconfig kcmutils kcrash kdeclarative kfilemetadata kinit kirigami2 - baloo - ]; - - enableParallelBuilding = true; - - meta = with lib; { - description = "Elisa Music Player"; - license = licenses.gpl3; - maintainers = with maintainers; [ peterhoeg ]; - inherit (kconfig.meta) platforms; - }; -} diff --git a/pkgs/applications/audio/ensemble-chorus/default.nix b/pkgs/applications/audio/ensemble-chorus/default.nix index 5940203d04d..e2413a4fe87 100644 --- a/pkgs/applications/audio/ensemble-chorus/default.nix +++ b/pkgs/applications/audio/ensemble-chorus/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { ]; meta = with stdenv.lib; { - homepage = https://github.com/jpcima/ensemble-chorus; + homepage = "https://github.com/jpcima/ensemble-chorus"; description = "Digital model of electronic string ensemble chorus"; maintainers = [ maintainers.magnetophon ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/eq10q/default.nix b/pkgs/applications/audio/eq10q/default.nix index b4ad1505320..cc3a3c9ac1f 100644 --- a/pkgs/applications/audio/eq10q/default.nix +++ b/pkgs/applications/audio/eq10q/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { patches = [ (fetchpatch { # glibc 2.27 compatibility - url = https://sources.debian.org/data/main/e/eq10q/2.2~repack0-2.1/debian/patches/05-pow10.patch; + url = "https://sources.debian.org/data/main/e/eq10q/2.2~repack0-2.1/debian/patches/05-pow10.patch"; sha256 = "07b0wf6k4xqgigv4h095bzfaw8r218wa36r9w1817jcys13r6c5r"; }) ]; @@ -37,7 +37,7 @@ stdenv.mkDerivation rec { 64 bits floating point internal audio processing. Nice GUI with powerful metering for every plugin. ''; - homepage = http://eq10q.sourceforge.net/; + homepage = "http://eq10q.sourceforge.net/"; license = stdenv.lib.licenses.gpl3; maintainers = [ stdenv.lib.maintainers.magnetophon ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/espeak/default.nix b/pkgs/applications/audio/espeak/default.nix index 6b5101b50b5..aa68fd5363d 100644 --- a/pkgs/applications/audio/espeak/default.nix +++ b/pkgs/applications/audio/espeak/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Compact open source software speech synthesizer"; - homepage = http://espeak.sourceforge.net/; + homepage = "http://espeak.sourceforge.net/"; license = licenses.gpl3Plus; platforms = platforms.linux; }; diff --git a/pkgs/applications/audio/espeak/edit.nix b/pkgs/applications/audio/espeak/edit.nix index 8d7db50fd32..6bcffcbc5c3 100644 --- a/pkgs/applications/audio/espeak/edit.nix +++ b/pkgs/applications/audio/espeak/edit.nix @@ -53,7 +53,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Phoneme editor for espeak"; - homepage = http://espeak.sourceforge.net/; + homepage = "http://espeak.sourceforge.net/"; license = licenses.gpl3Plus; platforms = platforms.linux; }; diff --git a/pkgs/applications/audio/eteroj.lv2/default.nix b/pkgs/applications/audio/eteroj.lv2/default.nix index bbfe1ad5623..c86e7b5e9ba 100644 --- a/pkgs/applications/audio/eteroj.lv2/default.nix +++ b/pkgs/applications/audio/eteroj.lv2/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "OSC injection/ejection from/to UDP/TCP/Serial for LV2"; - homepage = https://open-music-kontrollers.ch/lv2/eteroj; + homepage = "https://open-music-kontrollers.ch/lv2/eteroj"; license = licenses.artistic2; maintainers = with maintainers; [ magnetophon ]; }; diff --git a/pkgs/applications/audio/faust/faust1.nix b/pkgs/applications/audio/faust/faust1.nix index 687608b4352..64b8e724431 100644 --- a/pkgs/applications/audio/faust/faust1.nix +++ b/pkgs/applications/audio/faust/faust1.nix @@ -17,8 +17,8 @@ let }; meta = with stdenv.lib; { - homepage = http://faust.grame.fr/; - downloadPage = https://sourceforge.net/projects/faudiostream/files/; + homepage = "http://faust.grame.fr/"; + downloadPage = "https://sourceforge.net/projects/faudiostream/files/"; license = licenses.gpl2; platforms = platforms.linux; maintainers = with maintainers; [ magnetophon pmahoney ]; diff --git a/pkgs/applications/audio/faust/faust2.nix b/pkgs/applications/audio/faust/faust2.nix index 74a5f4d383d..33df1ce5d4e 100644 --- a/pkgs/applications/audio/faust/faust2.nix +++ b/pkgs/applications/audio/faust/faust2.nix @@ -20,19 +20,19 @@ with stdenv.lib.strings; let - version = "2.20.2"; + version = "unstable-2020-03-20"; src = fetchFromGitHub { owner = "grame-cncm"; repo = "faust"; - rev = version; - sha256 = "08hv8gyj6c83128z3si92r1ka5ckf9sdpn5jdnlhrqyzja4mrxsy"; + rev = "2782088d4485f1c572755f41e7a072b41cb7148a"; + sha256 = "1l7bi2mq10s5wm8g4cdipg8gndd478x897qv0h7nqi1s2q9nq99p"; fetchSubmodules = true; }; meta = with stdenv.lib; { - homepage = http://faust.grame.fr/; - downloadPage = https://sourceforge.net/projects/faudiostream/files/; + homepage = "http://faust.grame.fr/"; + downloadPage = "https://sourceforge.net/projects/faudiostream/files/"; license = licenses.gpl2; platforms = platforms.linux; maintainers = with maintainers; [ magnetophon pmahoney ]; diff --git a/pkgs/applications/audio/faust/faust2jaqt.nix b/pkgs/applications/audio/faust/faust2jaqt.nix index 5a015e5ca31..144d19cb01e 100644 --- a/pkgs/applications/audio/faust/faust2jaqt.nix +++ b/pkgs/applications/audio/faust/faust2jaqt.nix @@ -3,6 +3,7 @@ , opencv , qt4 , libsndfile +, which }: faust.wrapWithBuildEnv { @@ -19,6 +20,7 @@ faust.wrapWithBuildEnv { opencv qt4 libsndfile + which ]; } diff --git a/pkgs/applications/audio/faust/faust2lv2.nix b/pkgs/applications/audio/faust/faust2lv2.nix index 3472ce5047e..51d956b1403 100644 --- a/pkgs/applications/audio/faust/faust2lv2.nix +++ b/pkgs/applications/audio/faust/faust2lv2.nix @@ -2,6 +2,7 @@ , faust , lv2 , qt4 +, which }: @@ -9,6 +10,6 @@ faust.wrapWithBuildEnv { baseName = "faust2lv2"; - propagatedBuildInputs = [ boost lv2 qt4 ]; + propagatedBuildInputs = [ boost lv2 qt4 which ]; } diff --git a/pkgs/applications/audio/faust/faustlive.nix b/pkgs/applications/audio/faust/faustlive.nix index 3b6ca9e4053..90bd8bc60ad 100644 --- a/pkgs/applications/audio/faust/faustlive.nix +++ b/pkgs/applications/audio/faust/faustlive.nix @@ -29,7 +29,7 @@ stdenv.mkDerivation { together the convenience of a standalone interpreted language with the efficiency of a compiled language. It's ideal for fast prototyping. ''; - homepage = http://faust.grame.fr/; + homepage = "http://faust.grame.fr/"; license = licenses.gpl3; }; } diff --git a/pkgs/applications/audio/flac/default.nix b/pkgs/applications/audio/flac/default.nix index df3aa987c3f..bd8b9bea82b 100644 --- a/pkgs/applications/audio/flac/default.nix +++ b/pkgs/applications/audio/flac/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { outputs = [ "bin" "dev" "out" "man" "doc" ]; meta = with stdenv.lib; { - homepage = https://xiph.org/flac/; + homepage = "https://xiph.org/flac/"; description = "Library and tools for encoding and decoding the FLAC lossless audio file format"; platforms = platforms.all; license = licenses.bsd3; diff --git a/pkgs/applications/audio/flac123/default.nix b/pkgs/applications/audio/flac123/default.nix index 19ed2352355..6f13b710eff 100644 --- a/pkgs/applications/audio/flac123/default.nix +++ b/pkgs/applications/audio/flac123/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { buildInputs = [ flac libao libogg popt ]; meta = with stdenv.lib; { - homepage = http://flac-tools.sourceforge.net/; + homepage = "http://flac-tools.sourceforge.net/"; description = "A command-line program for playing FLAC audio files"; license = licenses.gpl2Plus; platforms = platforms.all; diff --git a/pkgs/applications/audio/flacon/default.nix b/pkgs/applications/audio/flacon/default.nix index eb39309a254..1da40e75415 100644 --- a/pkgs/applications/audio/flacon/default.nix +++ b/pkgs/applications/audio/flacon/default.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Extracts audio tracks from an audio CD image to separate tracks."; - homepage = https://flacon.github.io/; + homepage = "https://flacon.github.io/"; license = licenses.lgpl21; platforms = platforms.linux; maintainers = with maintainers; [ snglth ]; diff --git a/pkgs/applications/audio/fluidsynth/default.nix b/pkgs/applications/audio/fluidsynth/default.nix index 8e2895bf847..9d9772cde29 100644 --- a/pkgs/applications/audio/fluidsynth/default.nix +++ b/pkgs/applications/audio/fluidsynth/default.nix @@ -40,7 +40,7 @@ stdenv.mkDerivation { meta = with lib; { description = "Real-time software synthesizer based on the SoundFont 2 specifications"; - homepage = http://www.fluidsynth.org; + homepage = "http://www.fluidsynth.org"; license = licenses.lgpl21Plus; maintainers = with maintainers; [ goibhniu lovek323 ]; platforms = platforms.unix; diff --git a/pkgs/applications/audio/fmit/default.nix b/pkgs/applications/audio/fmit/default.nix index ee45217e490..114cf5e192f 100644 --- a/pkgs/applications/audio/fmit/default.nix +++ b/pkgs/applications/audio/fmit/default.nix @@ -46,7 +46,7 @@ mkDerivation rec { FMIT is a graphical utility for tuning musical instruments, with error and volume history, and advanced features. ''; - homepage = http://gillesdegottex.github.io/fmit/; + homepage = "http://gillesdegottex.github.io/fmit/"; license = licenses.gpl3Plus; platforms = platforms.linux; }; diff --git a/pkgs/applications/audio/fmsynth/default.nix b/pkgs/applications/audio/fmsynth/default.nix index 248967e06e6..d957c7ec33d 100644 --- a/pkgs/applications/audio/fmsynth/default.nix +++ b/pkgs/applications/audio/fmsynth/default.nix @@ -41,7 +41,7 @@ stdenv.mkDerivation { - Full floating point implementation optimized for SIMD - Hard real-time constraints ''; - homepage = https://github.com/Themaister/libfmsynth; + homepage = "https://github.com/Themaister/libfmsynth"; license = stdenv.lib.licenses.mit; maintainers = [ stdenv.lib.maintainers.magnetophon ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/fomp/default.nix b/pkgs/applications/audio/fomp/default.nix index 9f7f0b09007..a712eef0650 100644 --- a/pkgs/applications/audio/fomp/default.nix +++ b/pkgs/applications/audio/fomp/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { buildInputs = [ lv2 python2 ]; meta = with stdenv.lib; { - homepage = http://drobilla.net/software/fomp/; + homepage = "http://drobilla.net/software/fomp/"; description = "An LV2 port of the MCP, VCO, FIL, and WAH plugins by Fons Adriaensen"; license = licenses.gpl2; maintainers = [ maintainers.magnetophon ]; diff --git a/pkgs/applications/audio/foo-yc20/default.nix b/pkgs/applications/audio/foo-yc20/default.nix index e514032f44e..643b648fa88 100644 --- a/pkgs/applications/audio/foo-yc20/default.nix +++ b/pkgs/applications/audio/foo-yc20/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation { meta = { 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; + homepage = "https://github.com/sampov2/foo-yc20"; license = "BSD"; maintainers = [ stdenv.lib.maintainers.magnetophon ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/freewheeling/default.nix b/pkgs/applications/audio/freewheeling/default.nix index 34494871f29..6ee120f3d1a 100644 --- a/pkgs/applications/audio/freewheeling/default.nix +++ b/pkgs/applications/audio/freewheeling/default.nix @@ -44,7 +44,7 @@ stdenv.mkDerivation rec { software, released under the GNU GPL license. '' ; - homepage = http://freewheeling.sourceforge.net; + homepage = "http://freewheeling.sourceforge.net"; license = stdenv.lib.licenses.gpl2; maintainers = [ stdenv.lib.maintainers.sepi ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/ft2-clone/default.nix b/pkgs/applications/audio/ft2-clone/default.nix index 5bebf1c667c..e80239553f1 100644 --- a/pkgs/applications/audio/ft2-clone/default.nix +++ b/pkgs/applications/audio/ft2-clone/default.nix @@ -7,13 +7,13 @@ stdenv.mkDerivation rec { pname = "ft2-clone"; - version = "1.09"; + version = "1.15"; src = fetchFromGitHub { owner = "8bitbubsy"; repo = "ft2-clone"; rev = "v${version}"; - sha256 = "18my7fywaf66rq8phsly8lglxzpglran8rj27fvwgpni8098ic7d"; + sha256 = "19xgdaij71gpvq216zjlp60zmfdl2a8kf8sc3bpk8a4d4xh4n151"; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/applications/audio/game-music-emu/default.nix b/pkgs/applications/audio/game-music-emu/default.nix index d95b3eea596..51f895ea2d5 100644 --- a/pkgs/applications/audio/game-music-emu/default.nix +++ b/pkgs/applications/audio/game-music-emu/default.nix @@ -12,7 +12,7 @@ stdenv.mkDerivation rec { buildInputs = [ cmake ]; meta = with stdenv.lib; { - homepage = https://bitbucket.org/mpyne/game-music-emu/wiki/Home; + homepage = "https://bitbucket.org/mpyne/game-music-emu/wiki/Home"; description = "A collection of video game music file emulators"; license = licenses.lgpl21Plus; platforms = platforms.all; diff --git a/pkgs/applications/audio/gbsplay/default.nix b/pkgs/applications/audio/gbsplay/default.nix index 9ff9b8dc114..f89b8ed399b 100644 --- a/pkgs/applications/audio/gbsplay/default.nix +++ b/pkgs/applications/audio/gbsplay/default.nix @@ -11,13 +11,13 @@ stdenv.mkDerivation { }; buildInputs = [ libpulseaudio ]; - - configureFlagsArray = + + configureFlags = [ "--without-test" "--without-contrib" "--disable-devdsp" "--enable-pulse" "--disable-alsa" "--disable-midi" "--disable-nas" "--disable-dsound" "--disable-i18n" ]; - makeFlagsArray = [ "tests=" ]; + makeFlags = [ "tests=" ]; meta = with stdenv.lib; { description = "gameboy sound player"; diff --git a/pkgs/applications/audio/gigedit/default.nix b/pkgs/applications/audio/gigedit/default.nix index b8ec2d7116f..08eec313508 100644 --- a/pkgs/applications/audio/gigedit/default.nix +++ b/pkgs/applications/audio/gigedit/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; meta = with stdenv.lib; { - homepage = http://www.linuxsampler.org; + homepage = "http://www.linuxsampler.org"; description = "Gigasampler file access library"; license = licenses.gpl2; maintainers = [ maintainers.goibhniu ]; diff --git a/pkgs/applications/audio/gjay/default.nix b/pkgs/applications/audio/gjay/default.nix index 42285ba4bf8..9e016c68608 100644 --- a/pkgs/applications/audio/gjay/default.nix +++ b/pkgs/applications/audio/gjay/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Generates playlists such that each song sounds good following the previous song"; - homepage = http://gjay.sourceforge.net/; + homepage = "http://gjay.sourceforge.net/"; license = licenses.gpl2; maintainers = with maintainers; [ pSub ]; platforms = with platforms; linux; diff --git a/pkgs/applications/audio/gmpc/default.nix b/pkgs/applications/audio/gmpc/default.nix index cae35b62519..7ae02ae38d8 100644 --- a/pkgs/applications/audio/gmpc/default.nix +++ b/pkgs/applications/audio/gmpc/default.nix @@ -10,7 +10,7 @@ stdenv.mkDerivation rec { libmpd = stdenv.mkDerivation { name = "libmpd-11.8.17"; src = fetchurl { - url = http://download.sarine.nl/Programs/gmpc/11.8/libmpd-11.8.17.tar.gz; + url = "http://download.sarine.nl/Programs/gmpc/11.8/libmpd-11.8.17.tar.gz"; sha256 = "10vspwsgr8pwf3qp2bviw6b2l8prgdiswgv7qiqiyr0h1mmk487y"; }; patches = [ ./libmpd-11.8.17-remove-strndup.patch ]; @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { ]; meta = with stdenv.lib; { - homepage = https://gmpclient.org; + homepage = "https://gmpclient.org"; description = "A GTK2 frontend for Music Player Daemon"; license = licenses.gpl2; maintainers = []; diff --git a/pkgs/applications/audio/gmu/default.nix b/pkgs/applications/audio/gmu/default.nix index 8446855d190..bfe9f72d664 100644 --- a/pkgs/applications/audio/gmu/default.nix +++ b/pkgs/applications/audio/gmu/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = http://wejp.k.vu/projects/gmu; + homepage = "http://wejp.k.vu/projects/gmu"; description = "Open source music player for portable gaming consoles and handhelds"; license = stdenv.lib.licenses.gpl2; }; diff --git a/pkgs/applications/audio/gnome-podcasts/default.nix b/pkgs/applications/audio/gnome-podcasts/default.nix index 47945de7833..d5bec0c09e5 100644 --- a/pkgs/applications/audio/gnome-podcasts/default.nix +++ b/pkgs/applications/audio/gnome-podcasts/default.nix @@ -9,7 +9,6 @@ , rustc , python3 , pkgconfig -, gnome3 , glib , libhandy , gtk3 @@ -43,6 +42,7 @@ rustPlatform.buildRustPackage rec { rustc python3 wrapGAppsHook + glib ]; buildInputs = [ @@ -73,9 +73,9 @@ rustPlatform.buildRustPackage rec { meta = with stdenv.lib; { description = "Listen to your favorite podcasts"; - homepage = https://wiki.gnome.org/Apps/Podcasts; + homepage = "https://wiki.gnome.org/Apps/Podcasts"; license = licenses.gpl3; - maintainers = gnome3.maintainers; + maintainers = teams.gnome.members; platforms = platforms.unix; }; } diff --git a/pkgs/applications/audio/google-play-music-desktop-player/default.nix b/pkgs/applications/audio/google-play-music-desktop-player/default.nix index 332f2ca2342..509d3ddcf75 100644 --- a/pkgs/applications/audio/google-play-music-desktop-player/default.nix +++ b/pkgs/applications/audio/google-play-music-desktop-player/default.nix @@ -73,7 +73,7 @@ stdenv.mkDerivation { ''; meta = { - homepage = https://www.googleplaymusicdesktopplayer.com/; + homepage = "https://www.googleplaymusicdesktopplayer.com/"; description = "A beautiful cross platform Desktop Player for Google Play Music"; license = stdenv.lib.licenses.mit; platforms = [ "x86_64-linux" ]; diff --git a/pkgs/applications/audio/gpodder/default.nix b/pkgs/applications/audio/gpodder/default.nix index 332a633616c..1905699e516 100644 --- a/pkgs/applications/audio/gpodder/default.nix +++ b/pkgs/applications/audio/gpodder/default.nix @@ -73,7 +73,7 @@ python3Packages.buildPythonApplication rec { gPodder downloads and manages free audio and video content (podcasts) for you. Listen directly on your computer or on your mobile devices. ''; - homepage = http://gpodder.org/; + homepage = "http://gpodder.org/"; license = licenses.gpl3; platforms = platforms.linux ++ platforms.darwin; maintainers = with maintainers; [ skeidel mic92 ]; diff --git a/pkgs/applications/audio/gradio/default.nix b/pkgs/applications/audio/gradio/default.nix index 487b0a730d8..384235fc065 100644 --- a/pkgs/applications/audio/gradio/default.nix +++ b/pkgs/applications/audio/gradio/default.nix @@ -63,7 +63,7 @@ in stdenv.mkDerivation { patches = [ ./0001-Remove-post-install-script-that-hardcodes-paths.patch ]; meta = with stdenv.lib; { - homepage = https://github.com/haecker-felix/gradio; + homepage = "https://github.com/haecker-felix/gradio"; description = "A GTK3 app for finding and listening to internet radio stations"; license = licenses.gpl3; platforms = platforms.linux; diff --git a/pkgs/applications/audio/grandorgue/default.nix b/pkgs/applications/audio/grandorgue/default.nix new file mode 100644 index 00000000000..e2ba4ee2244 --- /dev/null +++ b/pkgs/applications/audio/grandorgue/default.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, fetchsvn, cmake, pkg-config, gcc, pkgconfig, fftwFloat, alsaLib +, zlib, wavpack, wxGTK31, udev, jackaudioSupport ? false, libjack2 +, includeDemo ? true }: + +stdenv.mkDerivation rec { + pname = "grandorgue"; + rev = "2333"; + version = "0.3.1-r${rev}"; + src = fetchsvn { + url = "https://svn.code.sf.net/p/ourorgan/svn/trunk"; + inherit rev; + sha256 = "0xzjdc2g4gja2lpmn21xhdskv43qpbpzkbb05jfqv6ma2zwffzz1"; + }; + + nativeBuildInputs = [ cmake pkg-config ]; + + buildInputs = [ pkgconfig fftwFloat alsaLib zlib wavpack wxGTK31 udev ] + ++ lib.optional jackaudioSupport libjack2; + + cmakeFlags = lib.optional (!jackaudioSupport) [ + "-DRTAUDIO_USE_JACK=OFF" + "-DRTMIDI_USE_JACK=OFF" + ] ++ lib.optional (!includeDemo) "-DINSTALL_DEMO=OFF"; + + meta = { + description = "Virtual Pipe Organ Software"; + homepage = "https://sourceforge.net/projects/ourorgan"; + license = stdenv.lib.licenses.gpl2; + platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.puzzlewolf ]; + }; +} diff --git a/pkgs/applications/audio/gtklick/default.nix b/pkgs/applications/audio/gtklick/default.nix index b653ae5ca58..a81834c1fff 100644 --- a/pkgs/applications/audio/gtklick/default.nix +++ b/pkgs/applications/audio/gtklick/default.nix @@ -27,7 +27,7 @@ pythonPackages.buildPythonApplication rec { ''; meta = { - homepage = http://das.nasophon.de/gtklick/; + homepage = "http://das.nasophon.de/gtklick/"; description = "Simple metronome with an easy-to-use GTK interface"; license = stdenv.lib.licenses.gpl2Plus; }; diff --git a/pkgs/applications/audio/gtkpod/default.nix b/pkgs/applications/audio/gtkpod/default.nix index fd3632ee155..1f293fe2d79 100644 --- a/pkgs/applications/audio/gtkpod/default.nix +++ b/pkgs/applications/audio/gtkpod/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "GTK Manager for an Apple ipod"; - homepage = http://gtkpod.sourceforge.net; + homepage = "http://gtkpod.sourceforge.net"; license = licenses.gpl2Plus; platforms = platforms.linux; maintainers = [ maintainers.skeidel ]; diff --git a/pkgs/applications/audio/guitarix/default.nix b/pkgs/applications/audio/guitarix/default.nix index ca552882ba4..095cd79b56e 100644 --- a/pkgs/applications/audio/guitarix/default.nix +++ b/pkgs/applications/audio/guitarix/default.nix @@ -1,7 +1,7 @@ { stdenv, fetchurl, gettext, intltool, pkgconfig, python2 , avahi, bluez, boost, eigen, fftw, glib, glib-networking , glibmm, gsettings-desktop-schemas, gtkmm2, libjack2 -, ladspaH, libav, librdf, libsndfile, lilv, lv2, serd, sord, sratom +, ladspaH, libav, libsndfile, lilv, lrdf, lv2, serd, sord, sratom , wrapGAppsHook, zita-convolver, zita-resampler, curl, wafHook , optimizationSupport ? false # Enable support for native CPU extensions }: @@ -23,8 +23,8 @@ stdenv.mkDerivation rec { buildInputs = [ avahi bluez boost eigen fftw glib glibmm glib-networking.out - gsettings-desktop-schemas gtkmm2 libjack2 ladspaH libav librdf - libsndfile lilv lv2 serd sord sratom zita-convolver + gsettings-desktop-schemas gtkmm2 libjack2 ladspaH libav + libsndfile lilv lrdf lv2 serd sord sratom zita-convolver zita-resampler curl ]; @@ -62,7 +62,7 @@ stdenv.mkDerivation rec { clean-sounds, nice overdrive, fat distortion and a diversity of crazy sounds never heard before. ''; - homepage = http://guitarix.sourceforge.net/; + homepage = "http://guitarix.sourceforge.net/"; license = licenses.gpl3Plus; maintainers = with maintainers; [ astsmtl goibhniu ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/gxmatcheq-lv2/default.nix b/pkgs/applications/audio/gxmatcheq-lv2/default.nix index 1d5579d74c0..b2d99e0eba8 100644 --- a/pkgs/applications/audio/gxmatcheq-lv2/default.nix +++ b/pkgs/applications/audio/gxmatcheq-lv2/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { installFlags = [ "INSTALL_DIR=$(out)/lib/lv2" ]; meta = with stdenv.lib; { - homepage = https://github.com/brummer10/GxMatchEQ.lv2; + homepage = "https://github.com/brummer10/GxMatchEQ.lv2"; description = "Matching Equalizer to apply EQ curve from one source to another source"; maintainers = [ maintainers.magnetophon ]; license = licenses.gpl3; diff --git a/pkgs/applications/audio/gxplugins-lv2/default.nix b/pkgs/applications/audio/gxplugins-lv2/default.nix index 1f4323eb9d5..077bb407020 100644 --- a/pkgs/applications/audio/gxplugins-lv2/default.nix +++ b/pkgs/applications/audio/gxplugins-lv2/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = https://github.com/brummer10/GxPlugins.lv2; + homepage = "https://github.com/brummer10/GxPlugins.lv2"; description = "A set of extra lv2 plugins from the guitarix project"; maintainers = [ maintainers.magnetophon ]; license = licenses.gpl3; diff --git a/pkgs/applications/audio/helio-workstation/default.nix b/pkgs/applications/audio/helio-workstation/default.nix index bfd211316a7..3ada3224e33 100644 --- a/pkgs/applications/audio/helio-workstation/default.nix +++ b/pkgs/applications/audio/helio-workstation/default.nix @@ -38,7 +38,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "One music sequencer for all major platforms, both desktop and mobile"; - homepage = https://helio.fm/; + homepage = "https://helio.fm/"; license = licenses.gpl3; maintainers = [ maintainers.suhr ]; platforms = [ "x86_64-linux" ]; diff --git a/pkgs/applications/audio/helm/default.nix b/pkgs/applications/audio/helm/default.nix index 428490e119a..8459967a363 100644 --- a/pkgs/applications/audio/helm/default.nix +++ b/pkgs/applications/audio/helm/default.nix @@ -34,7 +34,7 @@ ''; meta = with stdenv.lib; { - homepage = http://tytel.org/helm; + homepage = "http://tytel.org/helm"; description = "A free, cross-platform, polyphonic synthesizer"; longDescription = '' A free, cross-platform, polyphonic synthesizer. diff --git a/pkgs/applications/audio/hybridreverb2/default.nix b/pkgs/applications/audio/hybridreverb2/default.nix index 19aac1bd1e9..3f1fac79623 100644 --- a/pkgs/applications/audio/hybridreverb2/default.nix +++ b/pkgs/applications/audio/hybridreverb2/default.nix @@ -40,7 +40,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = http://www2.ika.ruhr-uni-bochum.de/HybridReverb2; + homepage = "http://www2.ika.ruhr-uni-bochum.de/HybridReverb2"; description = "Reverb effect using hybrid impulse convolution"; license = licenses.gpl2Plus; maintainers = [ maintainers.magnetophon ]; diff --git a/pkgs/applications/audio/hydrogen/default.nix b/pkgs/applications/audio/hydrogen/default.nix index 50093f8a61d..b3aff4e4c50 100644 --- a/pkgs/applications/audio/hydrogen/default.nix +++ b/pkgs/applications/audio/hydrogen/default.nix @@ -1,5 +1,6 @@ -{ stdenv, fetchurl, alsaLib, boost, cmake, glib, lash, libjack2, libarchive -, liblrdf, libsndfile, pkgconfig, qt4 }: +{ stdenv, fetchurl, pkgconfig, cmake +, alsaLib, boost, glib, lash, libjack2, libarchive, libsndfile, lrdf, qt4 +}: stdenv.mkDerivation rec { version = "0.9.7"; @@ -10,14 +11,14 @@ stdenv.mkDerivation rec { sha256 = "1dy2jfkdw0nchars4xi4isrz66fqn53a9qk13bqza7lhmsg3s3qy"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkgconfig cmake ]; buildInputs = [ - alsaLib boost cmake glib lash libjack2 libarchive liblrdf libsndfile qt4 + alsaLib boost glib lash libjack2 libarchive libsndfile lrdf qt4 ]; meta = with stdenv.lib; { description = "Advanced drum machine"; - homepage = http://www.hydrogen-music.org; + homepage = "http://www.hydrogen-music.org"; license = licenses.gpl2; platforms = platforms.linux; maintainers = [ maintainers.goibhniu ]; diff --git a/pkgs/applications/audio/hydrogen/unstable.nix b/pkgs/applications/audio/hydrogen/unstable.nix new file mode 100644 index 00000000000..2f220f8d31a --- /dev/null +++ b/pkgs/applications/audio/hydrogen/unstable.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchFromGitHub, cmake, pkgconfig, wrapQtAppsHook +, alsaLib, ladspa-sdk, lash, libarchive, libjack2, liblo, libpulseaudio, libsndfile, lrdf +, qtbase, qttools, qtxmlpatterns +}: + +stdenv.mkDerivation rec { + pname = "hydrogen"; + version = "1.0.0-beta2"; + + src = fetchFromGitHub { + owner = "hydrogen-music"; + repo = pname; + rev = version; + sha256 = "1s3jrdyjpm92flw9mkkxchnj0wz8nn1y1kifii8ws252iiqjya4a"; + }; + + nativeBuildInputs = [ cmake pkgconfig wrapQtAppsHook ]; + buildInputs = [ + alsaLib ladspa-sdk lash libarchive libjack2 liblo libpulseaudio libsndfile lrdf + qtbase qttools qtxmlpatterns + ]; + + cmakeFlags = [ + "-DWANT_DEBUG=OFF" + ]; + + meta = with stdenv.lib; { + description = "Advanced drum machine"; + homepage = "http://www.hydrogen-music.org"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ goibhniu orivej ]; + }; +} diff --git a/pkgs/applications/audio/i-score/default.nix b/pkgs/applications/audio/i-score/default.nix index f3928499413..daedb9b9820 100644 --- a/pkgs/applications/audio/i-score/default.nix +++ b/pkgs/applications/audio/i-score/default.nix @@ -77,7 +77,7 @@ stdenv.mkDerivation rec { meta = { description = "An interactive sequencer for the intermedia arts"; - homepage = http://i-score.org/; + homepage = "http://i-score.org/"; license = stdenv.lib.licenses.cecill20; maintainers = [ stdenv.lib.maintainers.magnetophon ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/iannix/default.nix b/pkgs/applications/audio/iannix/default.nix index a893390d74e..fa779a7f0f4 100644 --- a/pkgs/applications/audio/iannix/default.nix +++ b/pkgs/applications/audio/iannix/default.nix @@ -1,7 +1,7 @@ -{ stdenv, fetchFromGitHub, alsaLib, pkgconfig, qtbase, qtscript, qmake +{ mkDerivation, stdenv, fetchFromGitHub, alsaLib, pkgconfig, qtbase, qtscript, qmake }: -stdenv.mkDerivation { +mkDerivation { pname = "iannix"; version = "2016-01-31"; src = fetchFromGitHub { @@ -22,7 +22,7 @@ stdenv.mkDerivation { meta = { description = "Graphical open-source sequencer,"; - homepage = https://www.iannix.org/; + homepage = "https://www.iannix.org/"; license = stdenv.lib.licenses.lgpl3; platforms = stdenv.lib.platforms.linux; maintainers = [ stdenv.lib.maintainers.nico202 ]; diff --git a/pkgs/applications/audio/id3v2/default.nix b/pkgs/applications/audio/id3v2/default.nix index 0fdb3b2a4a1..75d999ede1d 100644 --- a/pkgs/applications/audio/id3v2/default.nix +++ b/pkgs/applications/audio/id3v2/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A command line editor for id3v2 tags"; - homepage = http://id3v2.sourceforge.net/; + homepage = "http://id3v2.sourceforge.net/"; license = licenses.gpl2Plus; platforms = with platforms; unix; }; diff --git a/pkgs/applications/audio/infamousPlugins/default.nix b/pkgs/applications/audio/infamousPlugins/default.nix index 341c4181842..2cfe77ec291 100644 --- a/pkgs/applications/audio/infamousPlugins/default.nix +++ b/pkgs/applications/audio/infamousPlugins/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { buildInputs = [ cairomm lv2 libpthreadstubs libXdmcp libXft ntk pcre fftwFloat zita-resampler ]; meta = with stdenv.lib; { - homepage = https://ssj71.github.io/infamousPlugins; + homepage = "https://ssj71.github.io/infamousPlugins"; description = "A collection of open-source LV2 plugins"; longDescription = '' These are audio plugins in the LV2 format, developed for linux. Most are suitable for live use. diff --git a/pkgs/applications/audio/ingen/default.nix b/pkgs/applications/audio/ingen/default.nix index 9d3fb6aae40..c5d4b3f87f4 100644 --- a/pkgs/applications/audio/ingen/default.nix +++ b/pkgs/applications/audio/ingen/default.nix @@ -38,7 +38,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A modular audio processing system using JACK and LV2 or LADSPA plugins"; - homepage = http://drobilla.net/software/ingen; + homepage = "http://drobilla.net/software/ingen"; license = licenses.agpl3Plus; maintainers = [ maintainers.goibhniu ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/ir.lv2/default.nix b/pkgs/applications/audio/ir.lv2/default.nix index 9d3656a81f9..f9f58ab5ec1 100644 --- a/pkgs/applications/audio/ir.lv2/default.nix +++ b/pkgs/applications/audio/ir.lv2/default.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = http://factorial.hu/plugins/lv2/ir; + homepage = "http://factorial.hu/plugins/lv2/ir"; description = "Zero-latency, realtime, high performance signal convolver especially for creating reverb effects"; license = licenses.gpl2; maintainers = [ maintainers.magnetophon ]; diff --git a/pkgs/applications/audio/jaaa/default.nix b/pkgs/applications/audio/jaaa/default.nix index 92b2f8ac515..80f15935af2 100644 --- a/pkgs/applications/audio/jaaa/default.nix +++ b/pkgs/applications/audio/jaaa/default.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = http://kokkinizita.linuxaudio.org/linuxaudio/index.html; + homepage = "http://kokkinizita.linuxaudio.org/linuxaudio/index.html"; description = "JACK and ALSA Audio Analyser"; license = licenses.gpl2; maintainers = [ maintainers.magnetophon ]; diff --git a/pkgs/applications/audio/jack-capture/default.nix b/pkgs/applications/audio/jack-capture/default.nix index c62ccc4fc88..e443a0a5269 100644 --- a/pkgs/applications/audio/jack-capture/default.nix +++ b/pkgs/applications/audio/jack-capture/default.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A program for recording soundfiles with jack"; - homepage = http://archive.notam02.no/arkiv/src; + homepage = "http://archive.notam02.no/arkiv/src"; license = licenses.gpl2; maintainers = [ maintainers.goibhniu ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/jack-oscrolloscope/default.nix b/pkgs/applications/audio/jack-oscrolloscope/default.nix index 5bad5453504..08263f2abdd 100644 --- a/pkgs/applications/audio/jack-oscrolloscope/default.nix +++ b/pkgs/applications/audio/jack-oscrolloscope/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A simple waveform viewer for JACK"; - homepage = http://das.nasophon.de/jack_oscrolloscope; + homepage = "http://das.nasophon.de/jack_oscrolloscope"; license = licenses.gpl2; maintainers = [ maintainers.goibhniu ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/jack-rack/default.nix b/pkgs/applications/audio/jack-rack/default.nix index 41b40223b87..d13dbcc1688 100644 --- a/pkgs/applications/audio/jack-rack/default.nix +++ b/pkgs/applications/audio/jack-rack/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, libjack2, ladspaH, gtk2, alsaLib, libxml2, librdf }: +{ stdenv, fetchurl, pkgconfig, libjack2, ladspaH, gtk2, alsaLib, libxml2, lrdf }: stdenv.mkDerivation rec { name = "jack-rack-1.4.7"; src = fetchurl { @@ -6,7 +6,7 @@ stdenv.mkDerivation rec { sha256 = "1lmibx9gicagcpcisacj6qhq6i08lkl5x8szysjqvbgpxl9qg045"; }; nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ libjack2 ladspaH gtk2 alsaLib libxml2 librdf ]; + buildInputs = [ libjack2 ladspaH gtk2 alsaLib libxml2 lrdf ]; NIX_LDFLAGS = "-ldl -lm -lpthread"; meta = { @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { be controlled using the ALSA sequencer. It's phat; it turns your computer into an effects box. ''; - homepage = http://jack-rack.sourceforge.net/; + homepage = "http://jack-rack.sourceforge.net/"; license = stdenv.lib.licenses.gpl2Plus; maintainers = [ stdenv.lib.maintainers.astsmtl ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/jackmeter/default.nix b/pkgs/applications/audio/jackmeter/default.nix index e44dfddd37b..2a75b384af5 100644 --- a/pkgs/applications/audio/jackmeter/default.nix +++ b/pkgs/applications/audio/jackmeter/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { meta = { description = "Console jack loudness meter"; - homepage = https://www.aelius.com/njh/jackmeter/; + homepage = "https://www.aelius.com/njh/jackmeter/"; license = stdenv.lib.licenses.gpl2; maintainers = [ stdenv.lib.maintainers.marcweber ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/jackmix/default.nix b/pkgs/applications/audio/jackmix/default.nix index fe7c83dd56f..c3a46439ba7 100644 --- a/pkgs/applications/audio/jackmix/default.nix +++ b/pkgs/applications/audio/jackmix/default.nix @@ -3,15 +3,14 @@ stdenv.mkDerivation { name = "jackmix-0.5.2"; src = fetchurl { - url = https://github.com/kampfschlaefer/jackmix/archive/v0.5.2.tar.gz; + url = "https://github.com/kampfschlaefer/jackmix/archive/v0.5.2.tar.gz"; sha256 = "18f5v7g66mgarhs476frvayhch7fy4nyjf2xivixc061ipn0m82j"; }; patches = [ ./no_error.patch ]; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ scons.py2 pkgconfig ]; buildInputs = [ - scons qt4 lash jack @@ -23,7 +22,7 @@ stdenv.mkDerivation { meta = { description = "Matrix-Mixer for the Jack-Audio-connection-Kit"; - homepage = http://www.arnoldarts.de/jackmix/; + homepage = "http://www.arnoldarts.de/jackmix/"; license = stdenv.lib.licenses.gpl2; maintainers = [ stdenv.lib.maintainers.kampfschlaefer ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/jalv/default.nix b/pkgs/applications/audio/jalv/default.nix index 51ec102dbfd..bbf66a74bc5 100644 --- a/pkgs/applications/audio/jalv/default.nix +++ b/pkgs/applications/audio/jalv/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A simple but fully featured LV2 host for Jack"; - homepage = http://drobilla.net/software/jalv; + homepage = "http://drobilla.net/software/jalv"; license = licenses.isc; maintainers = [ maintainers.goibhniu ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/jamin/default.nix b/pkgs/applications/audio/jamin/default.nix index 818630585cf..a9b423320a0 100644 --- a/pkgs/applications/audio/jamin/default.nix +++ b/pkgs/applications/audio/jamin/default.nix @@ -6,7 +6,7 @@ stdenv.mkDerivation { name = "jamin-0.95.0"; src = fetchurl { - url = mirror://sourceforge/jamin/jamin-0.95.0.tar.gz; + url = "mirror://sourceforge/jamin/jamin-0.95.0.tar.gz"; sha256 = "0g5v74cm0q3p3pzl6xmnp4rqayaymfli7c6z8s78h9rgd24fwbvn"; }; @@ -21,7 +21,7 @@ stdenv.mkDerivation { ''; meta = with stdenv.lib; { - homepage = http://jamin.sourceforge.net; + homepage = "http://jamin.sourceforge.net"; description = "JACK Audio Mastering interface"; license = licenses.gpl2; maintainers = [ maintainers.nico202 ]; diff --git a/pkgs/applications/audio/japa/default.nix b/pkgs/applications/audio/japa/default.nix index a9eb15aabf3..426fea21107 100644 --- a/pkgs/applications/audio/japa/default.nix +++ b/pkgs/applications/audio/japa/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { meta = { description = "A 'perceptual' or 'psychoacoustic' audio spectrum analyser for JACK and ALSA"; - homepage = http://kokkinizita.linuxaudio.org/linuxaudio/index.html; + homepage = "http://kokkinizita.linuxaudio.org/linuxaudio/index.html"; license = stdenv.lib.licenses.gpl2; maintainers = [ stdenv.lib.maintainers.magnetophon ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/keyfinder/default.nix b/pkgs/applications/audio/keyfinder/default.nix index d47fc3b6190..710c1e80792 100644 --- a/pkgs/applications/audio/keyfinder/default.nix +++ b/pkgs/applications/audio/keyfinder/default.nix @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { management, no track suggestions, no media player. Just a fast, efficient workflow tool. ''; - homepage = http://www.ibrahimshaath.co.uk/keyfinder/; + homepage = "http://www.ibrahimshaath.co.uk/keyfinder/"; license = licenses.gpl3Plus; platforms = platforms.linux; }; diff --git a/pkgs/applications/audio/kid3/default.nix b/pkgs/applications/audio/kid3/default.nix index dcd305abdee..cfcad390f4c 100644 --- a/pkgs/applications/audio/kid3/default.nix +++ b/pkgs/applications/audio/kid3/default.nix @@ -64,7 +64,7 @@ stdenv.mkDerivation rec { - Edit synchronized lyrics and event timing codes, import and export LRC files ''; - homepage = http://kid3.sourceforge.net/; + homepage = "http://kid3.sourceforge.net/"; license = licenses.lgpl2Plus; maintainers = [ maintainers.AndersonTorres ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/klick/default.nix b/pkgs/applications/audio/klick/default.nix index f33245d8f1c..9ff063c1c80 100644 --- a/pkgs/applications/audio/klick/default.nix +++ b/pkgs/applications/audio/klick/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { NIX_CFLAGS_COMPILE = "-fpermissive"; meta = { - homepage = http://das.nasophon.de/klick/; + homepage = "http://das.nasophon.de/klick/"; description = "Advanced command-line metronome for JACK"; license = stdenv.lib.licenses.gpl2Plus; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/ladspa-plugins/default.nix b/pkgs/applications/audio/ladspa-plugins/default.nix index 44186abc3c4..a0fc8631fb3 100644 --- a/pkgs/applications/audio/ladspa-plugins/default.nix +++ b/pkgs/applications/audio/ladspa-plugins/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = http://plugin.org.uk/; + homepage = "http://plugin.org.uk/"; description = "LADSPA format audio plugins"; license = licenses.gpl2; maintainers = [ maintainers.magnetophon ]; diff --git a/pkgs/applications/audio/ladspa-sdk/default.nix b/pkgs/applications/audio/ladspa-sdk/default.nix index a7779ee8aee..76acd1daba7 100644 --- a/pkgs/applications/audio/ladspa-sdk/default.nix +++ b/pkgs/applications/audio/ladspa-sdk/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { ten example LADSPA plugins and three example programs (applyplugin, analyseplugin and listplugins). ''; - homepage = http://www.ladspa.org/ladspa_sdk/overview.html; + homepage = "http://www.ladspa.org/ladspa_sdk/overview.html"; license = stdenv.lib.licenses.lgpl2; maintainers = [ stdenv.lib.maintainers.magnetophon ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/ladspa-sdk/ladspah.nix b/pkgs/applications/audio/ladspa-sdk/ladspah.nix index 3fad5de1de5..d51aa3b75e1 100644 --- a/pkgs/applications/audio/ladspa-sdk/ladspah.nix +++ b/pkgs/applications/audio/ladspa-sdk/ladspah.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { The ladspa.h API header file from the LADSPA SDK. For the full SDK, use the ladspa-sdk package. ''; - homepage = http://www.ladspa.org/ladspa_sdk/overview.html; + homepage = "http://www.ladspa.org/ladspa_sdk/overview.html"; license = stdenv.lib.licenses.lgpl2; maintainers = [ stdenv.lib.maintainers.magnetophon ]; platforms = stdenv.lib.platforms.all; diff --git a/pkgs/applications/audio/lash/default.nix b/pkgs/applications/audio/lash/default.nix index 0dbe60b6a61..cb0a3ee05e1 100644 --- a/pkgs/applications/audio/lash/default.nix +++ b/pkgs/applications/audio/lash/default.nix @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { longDescription = '' Session management system for GNU/Linux audio applications. ''; - homepage = https://www.nongnu.org/lash; + homepage = "https://www.nongnu.org/lash"; license = licenses.gpl2Plus; platforms = platforms.linux; maintainers = [ maintainers.goibhniu ]; diff --git a/pkgs/applications/audio/lastfmsubmitd/default.nix b/pkgs/applications/audio/lastfmsubmitd/default.nix index 3135a00334c..efafc5b05b1 100644 --- a/pkgs/applications/audio/lastfmsubmitd/default.nix +++ b/pkgs/applications/audio/lastfmsubmitd/default.nix @@ -14,7 +14,7 @@ pythonPackages.buildPythonApplication rec { installCommand = "python setup.py install --prefix=$out"; meta = { - homepage = https://www.red-bean.com/decklin/lastfmsubmitd/; + homepage = "https://www.red-bean.com/decklin/lastfmsubmitd/"; license = lib.licenses.mit; description = "An last.fm audio scrobbler and daemon"; }; diff --git a/pkgs/applications/audio/lingot/default.nix b/pkgs/applications/audio/lingot/default.nix index d2ec92e0654..bf45a466d30 100644 --- a/pkgs/applications/audio/lingot/default.nix +++ b/pkgs/applications/audio/lingot/default.nix @@ -1,25 +1,45 @@ -{ stdenv, fetchurl, pkgconfig, intltool, gtk2, alsaLib, libglade }: +{ stdenv +, fetchurl +, pkg-config +, intltool +, gtk3 +, wrapGAppsHook +, alsaLib +, libpulseaudio +, fftw +}: -stdenv.mkDerivation { - name = "lingot-0.9.1"; +stdenv.mkDerivation rec { + pname = "lingot"; + version = "1.0.1"; src = fetchurl { - url = mirror://savannah/lingot/lingot-0.9.1.tar.gz; - sha256 = "0ygras6ndw2fylwxx86ac11pcr2y2bcfvvgiwrh92z6zncx254gc"; + url = "mirror://savannah/${pname}/${pname}-${version}.tar.gz"; + sha256 = "cbjHe7mI6DhKDsv0yGHYOPe5hShKjhj3VTKrmBbGoA8="; }; - hardeningDisable = [ "format" ]; + nativeBuildInputs = [ + pkg-config + intltool + wrapGAppsHook + ]; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ intltool gtk2 alsaLib libglade ]; + buildInputs = [ + gtk3 + alsaLib + libpulseaudio + fftw + ]; - configureFlags = [ "--disable-jack" ]; + configureFlags = [ + "--disable-jack" + ]; meta = { description = "Not a Guitar-Only tuner"; - homepage = https://www.nongnu.org/lingot/; + homepage = "https://www.nongnu.org/lingot/"; license = stdenv.lib.licenses.gpl2Plus; platforms = with stdenv.lib.platforms; linux; - maintainers = with stdenv.lib.maintainers; [viric]; + maintainers = with stdenv.lib.maintainers; [ viric ]; }; } diff --git a/pkgs/applications/audio/linuxband/default.nix b/pkgs/applications/audio/linuxband/default.nix index b5a99150cb2..cd9ca5e2674 100644 --- a/pkgs/applications/audio/linuxband/default.nix +++ b/pkgs/applications/audio/linuxband/default.nix @@ -29,7 +29,7 @@ in stdenv.mkDerivation rec { meta = { description = "A GUI front-end for MMA: Type in the chords, choose the groove and it will play an accompaniment"; - homepage = http://linuxband.org/; + homepage = "http://linuxband.org/"; license = stdenv.lib.licenses.gpl2; maintainers = [ stdenv.lib.maintainers.magnetophon ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/linuxsampler/default.nix b/pkgs/applications/audio/linuxsampler/default.nix index f13f10d15e8..6b6cfd55926 100644 --- a/pkgs/applications/audio/linuxsampler/default.nix +++ b/pkgs/applications/audio/linuxsampler/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; meta = with stdenv.lib; { - homepage = http://www.linuxsampler.org; + homepage = "http://www.linuxsampler.org"; description = "Sampler backend"; longDescription = '' Includes sampler engine, audio and MIDI drivers, network layer diff --git a/pkgs/applications/audio/lmms/default.nix b/pkgs/applications/audio/lmms/default.nix index 0420a52d89b..c243e9beb23 100644 --- a/pkgs/applications/audio/lmms/default.nix +++ b/pkgs/applications/audio/lmms/default.nix @@ -41,7 +41,7 @@ mkDerivation rec { meta = with stdenv.lib; { description = "DAW similar to FL Studio (music production software)"; - homepage = https://lmms.io; + homepage = "https://lmms.io"; license = licenses.gpl2Plus; platforms = [ "x86_64-linux" "i686-linux" ]; maintainers = with maintainers; [ goibhniu yegortimoshenko ]; diff --git a/pkgs/applications/audio/lollypop/default.nix b/pkgs/applications/audio/lollypop/default.nix index ddb4646ba54..e4b8b906fa6 100644 --- a/pkgs/applications/audio/lollypop/default.nix +++ b/pkgs/applications/audio/lollypop/default.nix @@ -23,7 +23,7 @@ python3.pkgs.buildPythonApplication rec { pname = "lollypop"; - version = "1.2.23"; + version = "1.2.35"; format = "other"; doCheck = false; @@ -32,7 +32,7 @@ python3.pkgs.buildPythonApplication rec { url = "https://gitlab.gnome.org/World/lollypop"; rev = "refs/tags/${version}"; fetchSubmodules = true; - sha256 = "059z7ri5qwkmfh2kvv8rq5wp80mz75423wc5hnm33wb9sgdd5x47"; + sha256 = "19nw9qh17yyi9ih1nwngbbwjx1vr26haqhmzsdqf0yjgsgf9vldx"; }; nativeBuildInputs = [ @@ -94,7 +94,7 @@ python3.pkgs.buildPythonApplication rec { meta = with lib; { changelog = "https://gitlab.gnome.org/World/lollypop/tags/${version}"; description = "A modern music player for GNOME"; - homepage = https://wiki.gnome.org/Apps/Lollypop; + homepage = "https://wiki.gnome.org/Apps/Lollypop"; license = licenses.gpl3Plus; maintainers = with maintainers; [ worldofpeace ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/lsp-plugins/default.nix b/pkgs/applications/audio/lsp-plugins/default.nix index b146fcecc8e..d530aff9faa 100644 --- a/pkgs/applications/audio/lsp-plugins/default.nix +++ b/pkgs/applications/audio/lsp-plugins/default.nix @@ -5,13 +5,13 @@ stdenv.mkDerivation rec { pname = "lsp-plugins"; - version = "1.1.13"; + version = "1.1.19"; src = fetchFromGitHub { owner = "sadko4u"; repo = pname; rev = "${pname}-${version}"; - sha256 = "00mhrr873kgcnqy3q0yi1r5zacfcvz7fqpzsmfhw5d095jm970al"; + sha256 = "1wiph3vxhydc6mr9hn2c6crd4cx592l2zv0wrzgmpnlm1lflzpbg"; }; nativeBuildInputs = [ pkgconfig php makeWrapper ]; @@ -19,6 +19,7 @@ stdenv.mkDerivation rec { makeFlags = [ "PREFIX=${placeholder ''out''}" + "ETC_PATH=$(out)/etc" ]; NIX_CFLAGS_COMPILE = "-DLSP_NO_EXPERIMENTAL"; @@ -139,7 +140,7 @@ stdenv.mkDerivation rec { - Delay Compensator Stereo - Verzögerungsausgleicher Stereo - Delay Compensator x2 Stereo - Verzögerungsausgleicher x2 Stereo ''; - homepage = https://lsp-plug.in; + homepage = "https://lsp-plug.in"; maintainers = with maintainers; [ magnetophon ]; license = licenses.gpl2; platforms = platforms.linux; diff --git a/pkgs/applications/audio/luppp/default.nix b/pkgs/applications/audio/luppp/default.nix index fdba836a6ae..c1494ffc333 100644 --- a/pkgs/applications/audio/luppp/default.nix +++ b/pkgs/applications/audio/luppp/default.nix @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { ]; meta = with stdenv.lib; { - homepage = http://openavproductions.com/luppp/; + homepage = "http://openavproductions.com/luppp/"; description = "A music creation tool, intended for live use"; license = licenses.gpl3Plus; maintainers = with maintainers; [ prusnak ]; diff --git a/pkgs/applications/audio/lv2bm/default.nix b/pkgs/applications/audio/lv2bm/default.nix index f1eddb62624..aee910f56eb 100644 --- a/pkgs/applications/audio/lv2bm/default.nix +++ b/pkgs/applications/audio/lv2bm/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation { ''; meta = with stdenv.lib; { - homepage = https://github.com/portalmod/lv2bm; + homepage = "https://github.com/portalmod/lv2bm"; description = "A benchmark tool for LV2 plugins"; license = licenses.gpl3; maintainers = [ maintainers.magnetophon ]; diff --git a/pkgs/applications/audio/magnetophonDSP/CharacterCompressor/default.nix b/pkgs/applications/audio/magnetophonDSP/CharacterCompressor/default.nix index 6488d1bd65e..e16198696a6 100644 --- a/pkgs/applications/audio/magnetophonDSP/CharacterCompressor/default.nix +++ b/pkgs/applications/audio/magnetophonDSP/CharacterCompressor/default.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { meta = { description = "A compressor with character. For jack and lv2"; - homepage = https://github.com/magnetophon/CharacterCompressor; + homepage = "https://github.com/magnetophon/CharacterCompressor"; license = stdenv.lib.licenses.gpl3; maintainers = [ stdenv.lib.maintainers.magnetophon ]; }; diff --git a/pkgs/applications/audio/magnetophonDSP/CompBus/default.nix b/pkgs/applications/audio/magnetophonDSP/CompBus/default.nix index c5728b6e8b7..1ccc9f3fcd5 100644 --- a/pkgs/applications/audio/magnetophonDSP/CompBus/default.nix +++ b/pkgs/applications/audio/magnetophonDSP/CompBus/default.nix @@ -36,7 +36,7 @@ stdenv.mkDerivation rec { meta = { description = "A group of compressors mixed into a bus, sidechained from that mix bus. For jack and lv2"; - homepage = https://github.com/magnetophon/CompBus; + homepage = "https://github.com/magnetophon/CompBus"; license = stdenv.lib.licenses.gpl3; maintainers = [ stdenv.lib.maintainers.magnetophon ]; }; diff --git a/pkgs/applications/audio/magnetophonDSP/ConstantDetuneChorus/default.nix b/pkgs/applications/audio/magnetophonDSP/ConstantDetuneChorus/default.nix index 331e58c4bd2..d5ed7e85b69 100644 --- a/pkgs/applications/audio/magnetophonDSP/ConstantDetuneChorus/default.nix +++ b/pkgs/applications/audio/magnetophonDSP/ConstantDetuneChorus/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { meta = { description = "A chorus algorithm that maintains constant and symmetric detuning depth (in cents), regardless of modulation rate. For jack and lv2"; - homepage = https://github.com/magnetophon/constant-detune-chorus; + homepage = "https://github.com/magnetophon/constant-detune-chorus"; license = stdenv.lib.licenses.gpl3; maintainers = [ stdenv.lib.maintainers.magnetophon ]; }; diff --git a/pkgs/applications/audio/magnetophonDSP/LazyLimiter/default.nix b/pkgs/applications/audio/magnetophonDSP/LazyLimiter/default.nix index 046ee70e990..6d119394d5d 100644 --- a/pkgs/applications/audio/magnetophonDSP/LazyLimiter/default.nix +++ b/pkgs/applications/audio/magnetophonDSP/LazyLimiter/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { meta = { description = "A fast yet clean lookahead limiter for jack and lv2"; - homepage = https://magnetophon.github.io/LazyLimiter/; + homepage = "https://magnetophon.github.io/LazyLimiter/"; license = stdenv.lib.licenses.gpl2; maintainers = [ stdenv.lib.maintainers.magnetophon ]; }; diff --git a/pkgs/applications/audio/magnetophonDSP/MBdistortion/default.nix b/pkgs/applications/audio/magnetophonDSP/MBdistortion/default.nix index aa7da17dafd..0eb68e65eae 100644 --- a/pkgs/applications/audio/magnetophonDSP/MBdistortion/default.nix +++ b/pkgs/applications/audio/magnetophonDSP/MBdistortion/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { meta = { description = "Mid-side multiband distortion for jack and lv2"; - homepage = https://github.com/magnetophon/MBdistortion; + homepage = "https://github.com/magnetophon/MBdistortion"; license = stdenv.lib.licenses.gpl2; maintainers = [ stdenv.lib.maintainers.magnetophon ]; }; diff --git a/pkgs/applications/audio/magnetophonDSP/RhythmDelay/default.nix b/pkgs/applications/audio/magnetophonDSP/RhythmDelay/default.nix index ae05866e57d..be8ad72d28d 100644 --- a/pkgs/applications/audio/magnetophonDSP/RhythmDelay/default.nix +++ b/pkgs/applications/audio/magnetophonDSP/RhythmDelay/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { meta = { description = "Tap a rhythm into your delay! For jack and lv2"; - homepage = https://github.com/magnetophon/RhythmDelay; + homepage = "https://github.com/magnetophon/RhythmDelay"; license = stdenv.lib.licenses.gpl3; maintainers = [ stdenv.lib.maintainers.magnetophon ]; }; diff --git a/pkgs/applications/audio/magnetophonDSP/VoiceOfFaust/default.nix b/pkgs/applications/audio/magnetophonDSP/VoiceOfFaust/default.nix index 718bbdaf49e..dce2db4cb77 100644 --- a/pkgs/applications/audio/magnetophonDSP/VoiceOfFaust/default.nix +++ b/pkgs/applications/audio/magnetophonDSP/VoiceOfFaust/default.nix @@ -49,7 +49,7 @@ stdenv.mkDerivation rec { meta = { description = "Turn your voice into a synthesizer"; - homepage = https://github.com/magnetophon/VoiceOfFaust; + homepage = "https://github.com/magnetophon/VoiceOfFaust"; license = stdenv.lib.licenses.gpl3; maintainers = [ stdenv.lib.maintainers.magnetophon ]; }; diff --git a/pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix b/pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix index fece392ab1c..172b5ed3891 100644 --- a/pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix +++ b/pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix @@ -13,6 +13,8 @@ stdenv.mkDerivation rec { buildInputs = [ faust2jaqt faust2lv2 ]; buildPhase = '' + echo "hack out autoComp.dsp due to https://github.com/grame-cncm/faust/407/issues " + rm autoComp.dsp for f in *.dsp; do echo "compiling standalone from" $f @@ -39,7 +41,7 @@ stdenv.mkDerivation rec { meta = { description = "A collection of bread and butter compressors"; - homepage = https://github.com/magnetophon/faustCompressors; + homepage = "https://github.com/magnetophon/faustCompressors"; license = stdenv.lib.licenses.gpl3; maintainers = [ stdenv.lib.maintainers.magnetophon ]; }; diff --git a/pkgs/applications/audio/magnetophonDSP/pluginUtils/default.nix b/pkgs/applications/audio/magnetophonDSP/pluginUtils/default.nix index 356e95bf97c..11d51d756ab 100644 --- a/pkgs/applications/audio/magnetophonDSP/pluginUtils/default.nix +++ b/pkgs/applications/audio/magnetophonDSP/pluginUtils/default.nix @@ -33,7 +33,7 @@ stdenv.mkDerivation rec { meta = { description = "Some simple utility lv2 plugins"; - homepage = https://github.com/magnetophon/pluginUtils; + homepage = "https://github.com/magnetophon/pluginUtils"; license = stdenv.lib.licenses.gpl3; maintainers = [ stdenv.lib.maintainers.magnetophon ]; }; diff --git a/pkgs/applications/audio/magnetophonDSP/shelfMultiBand/default.nix b/pkgs/applications/audio/magnetophonDSP/shelfMultiBand/default.nix index 292cd3dfd86..360cee243c3 100644 --- a/pkgs/applications/audio/magnetophonDSP/shelfMultiBand/default.nix +++ b/pkgs/applications/audio/magnetophonDSP/shelfMultiBand/default.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { meta = { description = "A multiband compressor made from shelving filters."; - homepage = https://github.com/magnetophon/shelfMultiBand; + homepage = "https://github.com/magnetophon/shelfMultiBand"; license = stdenv.lib.licenses.gpl3; maintainers = [ stdenv.lib.maintainers.magnetophon ]; }; diff --git a/pkgs/applications/audio/mda-lv2/default.nix b/pkgs/applications/audio/mda-lv2/default.nix index 6c4170cf0fb..2464abb6585 100644 --- a/pkgs/applications/audio/mda-lv2/default.nix +++ b/pkgs/applications/audio/mda-lv2/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { buildInputs = [ fftwSinglePrec lv2 ]; meta = with stdenv.lib; { - homepage = http://drobilla.net/software/mda-lv2/; + homepage = "http://drobilla.net/software/mda-lv2/"; description = "An LV2 port of the MDA plugins by Paul Kellett"; license = licenses.gpl2Plus; maintainers = [ maintainers.goibhniu ]; diff --git a/pkgs/applications/audio/meterbridge/default.nix b/pkgs/applications/audio/meterbridge/default.nix index 4d2fa0e15b4..9d807358cd5 100644 --- a/pkgs/applications/audio/meterbridge/default.nix +++ b/pkgs/applications/audio/meterbridge/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Various meters (VU, PPM, DPM, JF, SCO) for Jack Audio Connection Kit"; - homepage = http://plugin.org.uk/meterbridge/; + homepage = "http://plugin.org.uk/meterbridge/"; license = licenses.gpl2; platforms = platforms.linux; maintainers = [ maintainers.nico202 ]; diff --git a/pkgs/applications/audio/meters_lv2/default.nix b/pkgs/applications/audio/meters_lv2/default.nix index 12383dcbbda..cd9523d2710 100644 --- a/pkgs/applications/audio/meters_lv2/default.nix +++ b/pkgs/applications/audio/meters_lv2/default.nix @@ -38,7 +38,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Collection of audio level meters with GUI in LV2 plugin format"; - homepage = http://x42.github.io/meters.lv2/; + homepage = "http://x42.github.io/meters.lv2/"; maintainers = with maintainers; [ ehmry ]; license = licenses.gpl2; platforms = platforms.linux; diff --git a/pkgs/applications/audio/mhwaveedit/default.nix b/pkgs/applications/audio/mhwaveedit/default.nix index e4d6c0293df..67204260da2 100644 --- a/pkgs/applications/audio/mhwaveedit/default.nix +++ b/pkgs/applications/audio/mhwaveedit/default.nix @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Graphical program for editing, playing and recording sound files"; - homepage = https://github.com/magnush/mhwaveedit; + homepage = "https://github.com/magnush/mhwaveedit"; license = licenses.gpl2Plus; platforms = platforms.linux; maintainers = [ maintainers.goibhniu ]; diff --git a/pkgs/applications/audio/mid2key/default.nix b/pkgs/applications/audio/mid2key/default.nix index 3c5660724d3..071b18e5a8a 100644 --- a/pkgs/applications/audio/mid2key/default.nix +++ b/pkgs/applications/audio/mid2key/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { installPhase = "mkdir -p $out/bin && mv mid2key $out/bin"; meta = with stdenv.lib; { - homepage = http://code.google.com/p/mid2key/; + homepage = "http://code.google.com/p/mid2key/"; description = "A simple tool which maps midi notes to simulated keystrokes"; license = licenses.gpl3; maintainers = [ maintainers.goibhniu ]; diff --git a/pkgs/applications/audio/midas/m32edit.nix b/pkgs/applications/audio/midas/m32edit.nix index c8a751c235b..6af11d42e31 100644 --- a/pkgs/applications/audio/midas/m32edit.nix +++ b/pkgs/applications/audio/midas/m32edit.nix @@ -5,5 +5,5 @@ callPackage ./generic.nix (args // { type = "M32"; version = "3.2"; sha256 = "1cds6qinz37086l6pmmgrzrxadygjr2z96sjjyznnai2wz4z2nrd"; - homepage = http://www.musictri.be/Categories/Midas/Mixers/Digital/M32/p/P0B3I/downloads; + homepage = "http://www.musictri.be/Categories/Midas/Mixers/Digital/M32/p/P0B3I/downloads"; }) diff --git a/pkgs/applications/audio/midas/x32edit.nix b/pkgs/applications/audio/midas/x32edit.nix index 4aacfcc89a3..7e364ff984a 100644 --- a/pkgs/applications/audio/midas/x32edit.nix +++ b/pkgs/applications/audio/midas/x32edit.nix @@ -5,5 +5,5 @@ callPackage ./generic.nix (args // { type = "X32"; version = "3.2"; sha256 = "1lzmhd0sqnlzc0khpwm82sfi48qhv7rg153a57qjih7hhhy41mzk"; - homepage = http://www.musictri.be/Categories/Behringer/Mixers/Digital/X32/p/P0ASF/downloads; + homepage = "http://www.musictri.be/Categories/Behringer/Mixers/Digital/X32/p/P0ASF/downloads"; }) diff --git a/pkgs/applications/audio/midisheetmusic/default.nix b/pkgs/applications/audio/midisheetmusic/default.nix index 48052fc4ec8..388fc2a1b3e 100644 --- a/pkgs/applications/audio/midisheetmusic/default.nix +++ b/pkgs/applications/audio/midisheetmusic/default.nix @@ -54,7 +54,7 @@ in stdenv.mkDerivation { meta = with stdenv.lib; { description = "Convert MIDI Files to Piano Sheet Music for two hands"; - homepage = http://midisheetmusic.com; + homepage = "http://midisheetmusic.com"; license = licenses.gpl2; maintainers = [ maintainers.gnidorah ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/mikmod/default.nix b/pkgs/applications/audio/mikmod/default.nix index 42fa8b7621a..9be303cb652 100644 --- a/pkgs/applications/audio/mikmod/default.nix +++ b/pkgs/applications/audio/mikmod/default.nix @@ -12,7 +12,7 @@ stdenv.mkDerivation rec { meta = { description = "Tracker music player for the terminal"; - homepage = http://mikmod.shlomifish.org/; + homepage = "http://mikmod.shlomifish.org/"; license = stdenv.lib.licenses.gpl2Plus; maintainers = with stdenv.lib.maintainers; [ ]; platforms = with stdenv.lib.platforms; linux; diff --git a/pkgs/applications/audio/milkytracker/default.nix b/pkgs/applications/audio/milkytracker/default.nix index bc508f92e3b..d7b9e5a6355 100644 --- a/pkgs/applications/audio/milkytracker/default.nix +++ b/pkgs/applications/audio/milkytracker/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Music tracker application, similar to Fasttracker II"; - homepage = http://milkytracker.org; + homepage = "http://milkytracker.org"; license = licenses.gpl3Plus; platforms = [ "x86_64-linux" "i686-linux" ]; maintainers = with maintainers; [ zoomulator ]; diff --git a/pkgs/applications/audio/mimic/default.nix b/pkgs/applications/audio/mimic/default.nix index e91b2c9360d..e33e69ad78c 100644 --- a/pkgs/applications/audio/mimic/default.nix +++ b/pkgs/applications/audio/mimic/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { meta = { description = "Mycroft's TTS engine, based on CMU's Flite (Festival Lite)"; - homepage = https://mimic.mycroft.ai/; + homepage = "https://mimic.mycroft.ai/"; license = stdenv.lib.licenses.free; platforms = stdenv.lib.platforms.linux; maintainers = [ stdenv.lib.maintainers.noneucat ]; diff --git a/pkgs/applications/audio/mimms/default.nix b/pkgs/applications/audio/mimms/default.nix index 2d301a8b6a9..47e9fa306dc 100644 --- a/pkgs/applications/audio/mimms/default.nix +++ b/pkgs/applications/audio/mimms/default.nix @@ -15,7 +15,7 @@ pythonPackages.buildPythonApplication rec { ''; meta = { - homepage = https://savannah.nongnu.org/projects/mimms/; + homepage = "https://savannah.nongnu.org/projects/mimms/"; license = stdenv.lib.licenses.gpl3; description = "An mms (e.g. mms://) stream downloader"; diff --git a/pkgs/applications/audio/mixxx/default.nix b/pkgs/applications/audio/mixxx/default.nix index 82db91dcb07..f889d9e1e8d 100644 --- a/pkgs/applications/audio/mixxx/default.nix +++ b/pkgs/applications/audio/mixxx/default.nix @@ -1,11 +1,22 @@ -{ stdenv, mkDerivation, fetchFromGitHub, chromaprint +{ stdenv, mkDerivation, fetchurl, fetchFromGitHub, chromaprint , fftw, flac, faad2, glibcLocales, mp4v2 , libid3tag, libmad, libopus, libshout, libsndfile, libusb1, libvorbis , libGLU, libxcb, lilv, lv2, opusfile , pkgconfig, portaudio, portmidi, protobuf, qtbase, qtscript, qtsvg -, qtx11extras, rubberband, scons, sqlite, taglib, upower, vampSDK +, qtx11extras, rubberband, scons, sqlite, taglib, upower, vamp-plugin-sdk }: +let + # Because libshout 2.4.2 and newer seem to break streaming in mixxx, build it + # with 2.4.1 instead. + libshout241 = libshout.overrideAttrs (o: rec { + name = "libshout-2.4.1"; + src = fetchurl { + url = "http://downloads.xiph.org/releases/libshout/${name}.tar.gz"; + sha256 = "0kgjpf8jkgyclw11nilxi8vyjk4s8878x23qyxnvybbgqbgbib7k"; + }; + }); +in mkDerivation rec { pname = "mixxx"; version = "2.2.3"; @@ -17,10 +28,11 @@ mkDerivation rec { sha256 = "1h7q25fv62c5m74d4cn1m6mpanmqpbl2wqbch4qvn488jb2jw1dv"; }; + nativeBuildInputs = [ scons.py2 ]; buildInputs = [ - chromaprint fftw flac faad2 glibcLocales mp4v2 libid3tag libmad libopus libshout libsndfile + chromaprint fftw flac faad2 glibcLocales mp4v2 libid3tag libmad libopus libshout241 libsndfile libusb1 libvorbis libxcb libGLU lilv lv2 opusfile pkgconfig portaudio portmidi protobuf qtbase qtscript qtsvg - qtx11extras rubberband scons sqlite taglib upower vampSDK + qtx11extras rubberband sqlite taglib upower vamp-plugin-sdk ]; enableParallelBuilding = true; @@ -37,7 +49,7 @@ mkDerivation rec { ]; meta = with stdenv.lib; { - homepage = https://mixxx.org; + homepage = "https://mixxx.org"; description = "Digital DJ mixing software"; license = licenses.gpl2Plus; maintainers = [ maintainers.aszlig maintainers.goibhniu maintainers.bfortz ]; diff --git a/pkgs/applications/audio/moc/default.nix b/pkgs/applications/audio/moc/default.nix index 5615f4cace3..18b5a980633 100644 --- a/pkgs/applications/audio/moc/default.nix +++ b/pkgs/applications/audio/moc/default.nix @@ -96,7 +96,7 @@ in stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "An ncurses console audio player designed to be powerful and easy to use"; - homepage = http://moc.daper.net/; + homepage = "http://moc.daper.net/"; license = licenses.gpl2; maintainers = with maintainers; [ aethelz pSub jagajaga ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/mod-distortion/default.nix b/pkgs/applications/audio/mod-distortion/default.nix index c20f04ec947..765def25d60 100644 --- a/pkgs/applications/audio/mod-distortion/default.nix +++ b/pkgs/applications/audio/mod-distortion/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation { installFlags = [ "INSTALL_PATH=$(out)/lib/lv2" ]; meta = with stdenv.lib; { - homepage = https://github.com/portalmod/mod-distortion; + homepage = "https://github.com/portalmod/mod-distortion"; description = "Analog distortion emulation lv2 plugins"; license = licenses.gpl3; maintainers = [ maintainers.magnetophon ]; diff --git a/pkgs/applications/audio/mopidy/default.nix b/pkgs/applications/audio/mopidy/default.nix index c1c8bb964e4..0b9f8153302 100644 --- a/pkgs/applications/audio/mopidy/default.nix +++ b/pkgs/applications/audio/mopidy/default.nix @@ -1,44 +1,41 @@ -{ stdenv, fetchFromGitHub, python3Packages, wrapGAppsHook -, gst_all_1, glib-networking, gobject-introspection -}: +{ newScope, python }: -python3Packages.buildPythonApplication rec { - pname = "mopidy"; - version = "3.0.1"; +# Create a custom scope so we are consistent in which python version is used + +let + callPackage = newScope self; + + self = { + + inherit python; + pythonPackages = python.pkgs; + + mopidy = callPackage ./mopidy.nix { }; + + mopidy-gmusic = callPackage ./gmusic.nix { }; + + mopidy-local-images = callPackage ./local-images.nix { }; + + mopidy-local-sqlite = callPackage ./local-sqlite.nix { }; + + mopidy-spotify = callPackage ./spotify.nix { }; + + mopidy-moped = callPackage ./moped.nix { }; + + mopidy-mopify = callPackage ./mopify.nix { }; + + mopidy-mpd = callPackage ./mpd.nix { }; + + mopidy-spotify-tunigo = callPackage ./spotify-tunigo.nix { }; + + mopidy-youtube = callPackage ./youtube.nix { }; + + mopidy-soundcloud = callPackage ./soundcloud.nix { }; + + mopidy-musicbox-webclient = callPackage ./musicbox-webclient.nix { }; + + mopidy-iris = callPackage ./iris.nix { }; - src = fetchFromGitHub { - owner = "mopidy"; - repo = "mopidy"; - rev = "v${version}"; - sha256 = "0fpjprjw143ixak68iwxjpscdjgyb7rsr1cxj7fsdrw6hc83nq4z"; }; - nativeBuildInputs = [ wrapGAppsHook ]; - - buildInputs = with gst_all_1; [ - gst-plugins-base gst-plugins-good gst-plugins-ugly gst-plugins-bad - glib-networking gobject-introspection - ]; - - propagatedBuildInputs = with python3Packages; [ - gst-python pygobject3 pykka tornado_4 requests setuptools - ] ++ stdenv.lib.optional (!stdenv.isDarwin) dbus-python; - - # There are no tests - doCheck = false; - - preFixup = '' - gappsWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH") - ''; - - meta = with stdenv.lib; { - homepage = https://www.mopidy.com/; - description = '' - An extensible music server that plays music from local disk, Spotify, - SoundCloud, Google Play Music, and more - ''; - license = licenses.asl20; - maintainers = [ maintainers.fpletz ]; - hydraPlatforms = []; - }; -} +in self diff --git a/pkgs/applications/audio/mopidy/gmusic.nix b/pkgs/applications/audio/mopidy/gmusic.nix index 8c173140efd..3dea9156f8f 100644 --- a/pkgs/applications/audio/mopidy/gmusic.nix +++ b/pkgs/applications/audio/mopidy/gmusic.nix @@ -19,7 +19,7 @@ pythonPackages.buildPythonApplication rec { doCheck = false; meta = with stdenv.lib; { - homepage = https://www.mopidy.com/; + homepage = "https://www.mopidy.com/"; description = "Mopidy extension for playing music from Google Play Music"; license = licenses.asl20; maintainers = [ maintainers.jgillich ]; diff --git a/pkgs/applications/audio/mopidy/iris.nix b/pkgs/applications/audio/mopidy/iris.nix index 2f3e5f64767..2badfd6a0b1 100644 --- a/pkgs/applications/audio/mopidy/iris.nix +++ b/pkgs/applications/audio/mopidy/iris.nix @@ -2,11 +2,11 @@ python3Packages.buildPythonApplication rec { pname = "Mopidy-Iris"; - version = "3.45.1"; + version = "3.46.0"; src = python3Packages.fetchPypi { inherit pname version; - sha256 = "02jmylz76wlwxlv8drndprb7r9l8kqqgjkp17mjx5ngnl545pc2w"; + sha256 = "0c7b6zbcj4bq5qsxvhjwqclrl1k2hs3wb50pfjbw7gs7m3gm2b7d"; }; propagatedBuildInputs = [ @@ -21,7 +21,7 @@ python3Packages.buildPythonApplication rec { doCheck = false; meta = with stdenv.lib; { - homepage = https://github.com/jaedb/Iris; + homepage = "https://github.com/jaedb/Iris"; description = "A fully-functional Mopidy web client encompassing Spotify and many other backends"; license = licenses.asl20; maintainers = [ maintainers.rvolosatovs ]; diff --git a/pkgs/applications/audio/mopidy/local-images.nix b/pkgs/applications/audio/mopidy/local-images.nix index 2ffc736572b..085fe855e8a 100644 --- a/pkgs/applications/audio/mopidy/local-images.nix +++ b/pkgs/applications/audio/mopidy/local-images.nix @@ -24,7 +24,7 @@ pythonPackages.buildPythonApplication rec { ]; meta = with stdenv.lib; { - homepage = https://github.com/mopidy/mopidy-local-images; + homepage = "https://github.com/mopidy/mopidy-local-images"; description = "Mopidy local library proxy extension for handling embedded album art"; license = licenses.asl20; maintainers = [ maintainers.rvolosatovs ]; diff --git a/pkgs/applications/audio/mopidy/local-sqlite.nix b/pkgs/applications/audio/mopidy/local-sqlite.nix index 6d0cc370ff3..23e01c02a0f 100644 --- a/pkgs/applications/audio/mopidy/local-sqlite.nix +++ b/pkgs/applications/audio/mopidy/local-sqlite.nix @@ -17,7 +17,7 @@ pythonPackages.buildPythonApplication rec { ]; meta = with stdenv.lib; { - homepage = https://github.com/mopidy/mopidy-local-sqlite; + homepage = "https://github.com/mopidy/mopidy-local-sqlite"; description = "Mopidy SQLite local library extension"; license = licenses.asl20; maintainers = [ maintainers.rvolosatovs ]; diff --git a/pkgs/applications/audio/mopidy/moped.nix b/pkgs/applications/audio/mopidy/moped.nix index d41fb12ae8d..ffd9af76d17 100644 --- a/pkgs/applications/audio/mopidy/moped.nix +++ b/pkgs/applications/audio/mopidy/moped.nix @@ -17,7 +17,7 @@ pythonPackages.buildPythonApplication rec { doCheck = false; meta = with stdenv.lib; { - homepage = https://github.com/martijnboland/moped; + homepage = "https://github.com/martijnboland/moped"; description = "A web client for Mopidy"; license = licenses.mit; maintainers = []; diff --git a/pkgs/applications/audio/mopidy/mopidy.nix b/pkgs/applications/audio/mopidy/mopidy.nix new file mode 100644 index 00000000000..ae65d9b2f6e --- /dev/null +++ b/pkgs/applications/audio/mopidy/mopidy.nix @@ -0,0 +1,44 @@ +{ stdenv, fetchFromGitHub, pythonPackages, wrapGAppsHook +, gst_all_1, glib-networking, gobject-introspection +}: + +pythonPackages.buildPythonApplication rec { + pname = "mopidy"; + version = "3.0.2"; + + src = fetchFromGitHub { + owner = "mopidy"; + repo = "mopidy"; + rev = "v${version}"; + sha256 = "1n9lpgq0p112cjgsrc1cd6mnffk56y36g2c5skk9cqzw27qrkd15"; + }; + + nativeBuildInputs = [ wrapGAppsHook ]; + + buildInputs = with gst_all_1; [ + gst-plugins-base gst-plugins-good gst-plugins-ugly gst-plugins-bad + glib-networking gobject-introspection + ]; + + propagatedBuildInputs = with pythonPackages; [ + gst-python pygobject3 pykka tornado_4 requests setuptools + ] ++ stdenv.lib.optional (!stdenv.isDarwin) dbus-python; + + # There are no tests + doCheck = false; + + preFixup = '' + gappsWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH") + ''; + + meta = with stdenv.lib; { + homepage = "https://www.mopidy.com/"; + description = '' + An extensible music server that plays music from local disk, Spotify, + SoundCloud, Google Play Music, and more + ''; + license = licenses.asl20; + maintainers = [ maintainers.fpletz ]; + hydraPlatforms = []; + }; +} diff --git a/pkgs/applications/audio/mopidy/mopify.nix b/pkgs/applications/audio/mopidy/mopify.nix index b657f69e26e..a9902ca4172 100644 --- a/pkgs/applications/audio/mopidy/mopify.nix +++ b/pkgs/applications/audio/mopidy/mopify.nix @@ -15,7 +15,7 @@ pythonPackages.buildPythonApplication rec { doCheck = false; meta = with stdenv.lib; { - homepage = https://github.com/dirkgroenen/mopidy-mopify; + homepage = "https://github.com/dirkgroenen/mopidy-mopify"; description = "A mopidy webclient based on the Spotify webbased interface"; license = licenses.gpl3; maintainers = [ maintainers.Gonzih ]; diff --git a/pkgs/applications/audio/mopidy/mpd.nix b/pkgs/applications/audio/mopidy/mpd.nix new file mode 100644 index 00000000000..4dd32ea3aa3 --- /dev/null +++ b/pkgs/applications/audio/mopidy/mpd.nix @@ -0,0 +1,24 @@ +{ stdenv, python3Packages, mopidy }: + +python3Packages.buildPythonApplication rec { + pname = "Mopidy-MPD"; + version = "3.0.0"; + + src = python3Packages.fetchPypi { + inherit pname version; + sha256 = "0prjli4352521igcsfcgmk97jmzgbfy4ik8hnli37wgvv252wiac"; + }; + + propagatedBuildInputs = [mopidy]; + + # no tests implemented + doCheck = false; + pythonImportsCheck = [ "mopidy_mpd" ]; + + meta = with stdenv.lib; { + homepage = "https://github.com/mopidy/mopidy-mpd"; + description = "Mopidy extension for controlling playback from MPD clients"; + license = licenses.asl20; + maintainers = [ maintainers.tomahna ]; + }; +} diff --git a/pkgs/applications/audio/mopidy/spotify.nix b/pkgs/applications/audio/mopidy/spotify.nix index a01bf6c80d3..32019c74f86 100644 --- a/pkgs/applications/audio/mopidy/spotify.nix +++ b/pkgs/applications/audio/mopidy/spotify.nix @@ -1,6 +1,6 @@ -{ stdenv, fetchurl, python3Packages, mopidy }: +{ stdenv, fetchurl, pythonPackages, mopidy }: -python3Packages.buildPythonApplication rec { +pythonPackages.buildPythonApplication rec { pname = "mopidy-spotify"; version = "4.0.1"; @@ -9,12 +9,12 @@ python3Packages.buildPythonApplication rec { sha256 = "1ac8r8050i5r3ag1hlblbcyskqjqz7wgamndbzsmw52qi6hxk44f"; }; - propagatedBuildInputs = [ mopidy python3Packages.pyspotify ]; + propagatedBuildInputs = [ mopidy pythonPackages.pyspotify ]; doCheck = false; meta = with stdenv.lib; { - homepage = https://www.mopidy.com/; + homepage = "https://www.mopidy.com/"; description = "Mopidy extension for playing music from Spotify"; license = licenses.asl20; maintainers = []; diff --git a/pkgs/applications/audio/mp3blaster/default.nix b/pkgs/applications/audio/mp3blaster/default.nix index 727133be78d..2943a31454a 100644 --- a/pkgs/applications/audio/mp3blaster/default.nix +++ b/pkgs/applications/audio/mp3blaster/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "An audio player for the text console"; - homepage = http://www.mp3blaster.org/; + homepage = "http://www.mp3blaster.org/"; license = licenses.gpl2; maintainers = with maintainers; [ earldouglas ]; platforms = platforms.all; diff --git a/pkgs/applications/audio/mp3gain/default.nix b/pkgs/applications/audio/mp3gain/default.nix index 233aebfa147..f2b4564c7cc 100644 --- a/pkgs/applications/audio/mp3gain/default.nix +++ b/pkgs/applications/audio/mp3gain/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation { meta = { description = "Lossless mp3 normalizer with statistical analysis"; - homepage = http://mp3gain.sourceforge.net/; + homepage = "http://mp3gain.sourceforge.net/"; license = stdenv.lib.licenses.lgpl21; platforms = stdenv.lib.platforms.linux; maintainers = [ stdenv.lib.maintainers.devhell ]; diff --git a/pkgs/applications/audio/mp3info/default.nix b/pkgs/applications/audio/mp3info/default.nix index 6700f21fc8c..69ca271d27d 100644 --- a/pkgs/applications/audio/mp3info/default.nix +++ b/pkgs/applications/audio/mp3info/default.nix @@ -35,7 +35,7 @@ stdenv.mkDerivation rec { other attributes in a pre-defined or user-specifiable output format. ''; - homepage = http://www.ibiblio.org/mp3info/; + homepage = "http://www.ibiblio.org/mp3info/"; license = stdenv.lib.licenses.gpl2Plus; diff --git a/pkgs/applications/audio/mp3splt/default.nix b/pkgs/applications/audio/mp3splt/default.nix index f067c5af6df..323854575ea 100644 --- a/pkgs/applications/audio/mp3splt/default.nix +++ b/pkgs/applications/audio/mp3splt/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Utility to split mp3, ogg vorbis and FLAC files without decoding"; - homepage = https://sourceforge.net/projects/mp3splt/; + homepage = "https://sourceforge.net/projects/mp3splt/"; license = licenses.gpl2; maintainers = [ maintainers.bosu ]; platforms = platforms.unix; diff --git a/pkgs/applications/audio/mp3val/default.nix b/pkgs/applications/audio/mp3val/default.nix index 6c35779f6c4..636fb7d9b9a 100644 --- a/pkgs/applications/audio/mp3val/default.nix +++ b/pkgs/applications/audio/mp3val/default.nix @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { also other MPEG versions and layers. The tool is also aware of the most common types of tags (ID3v1, ID3v2, APEv2). ''; - homepage = http://mp3val.sourceforge.net/index.shtml; + homepage = "http://mp3val.sourceforge.net/index.shtml"; license = stdenv.lib.licenses.gpl2; platforms = stdenv.lib.platforms.unix; maintainers = [ stdenv.lib.maintainers.devhell ]; diff --git a/pkgs/applications/audio/mpc/default.nix b/pkgs/applications/audio/mpc/default.nix index 1e8d73ce560..a226b720df9 100644 --- a/pkgs/applications/audio/mpc/default.nix +++ b/pkgs/applications/audio/mpc/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A minimalist command line interface to MPD"; - homepage = https://www.musicpd.org/clients/mpc/; + homepage = "https://www.musicpd.org/clients/mpc/"; license = licenses.gpl2; maintainers = with maintainers; [ algorith ]; platforms = with platforms; linux ++ darwin; diff --git a/pkgs/applications/audio/mpc123/default.nix b/pkgs/applications/audio/mpc123/default.nix index f024e5a6a1d..ef5cb169a2c 100644 --- a/pkgs/applications/audio/mpc123/default.nix +++ b/pkgs/applications/audio/mpc123/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = http://mpc123.sourceforge.net/; + homepage = "http://mpc123.sourceforge.net/"; description = "A Musepack (.mpc) audio player"; diff --git a/pkgs/applications/audio/mpg123/default.nix b/pkgs/applications/audio/mpg123/default.nix index 6c4b9a43176..53e66e580da 100644 --- a/pkgs/applications/audio/mpg123/default.nix +++ b/pkgs/applications/audio/mpg123/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { meta = { description = "Fast console MPEG Audio Player and decoder library"; - homepage = http://mpg123.org; + homepage = "http://mpg123.org"; license = stdenv.lib.licenses.lgpl21; maintainers = [ stdenv.lib.maintainers.ftrvxmtrx ]; platforms = stdenv.lib.platforms.unix; diff --git a/pkgs/applications/audio/mpg321/default.nix b/pkgs/applications/audio/mpg321/default.nix index 08fe9b4f9af..63b8e2d867a 100644 --- a/pkgs/applications/audio/mpg321/default.nix +++ b/pkgs/applications/audio/mpg321/default.nix @@ -35,7 +35,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Command-line MP3 player"; - homepage = http://mpg321.sourceforge.net/; + homepage = "http://mpg321.sourceforge.net/"; license = licenses.gpl2; maintainers = [ maintainers.rycee ]; platforms = platforms.gnu ++ platforms.linux; diff --git a/pkgs/applications/audio/mup/default.nix b/pkgs/applications/audio/mup/default.nix new file mode 100644 index 00000000000..347cddca856 --- /dev/null +++ b/pkgs/applications/audio/mup/default.nix @@ -0,0 +1,41 @@ +{ stdenv, fetchurl, autoreconfHook, bison, flex, ghostscript, groff, netpbm +, fltk, libXinerama, libXpm, libjpeg +}: + +stdenv.mkDerivation rec { + pname = "mup"; + version = "6.7"; + + src = fetchurl { + url = "http://www.arkkra.com/ftp/pub/unix/mup${builtins.replaceStrings ["."] [""] version}src.tar.gz"; + sha256 = "1y1qknhib1isdjsbv833w3nxzyfljkfgp1gmjwly60l55q60frpk"; + }; + + nativeBuildInputs = [ autoreconfHook bison flex ghostscript groff netpbm ]; + + buildInputs = [ fltk libXinerama libXpm libjpeg ]; + + patches = [ ./ghostscript-permit-file-write.patch ]; + + postPatch = '' + for f in Makefile.am doc/Makefile.am doc/htmldocs/Makefile.am src/mupmate/Preferences.C; do + substituteInPlace $f --replace doc/packages doc + done + substituteInPlace src/mupprnt/mupprnt --replace 'mup ' $out/bin/mup' ' + substituteInPlace src/mupdisp/genfile.c --replace '"mup"' '"'$out/bin/mup'"' + substituteInPlace src/mupmate/Preferences.C \ + --replace '"mup"' '"'$out/bin/mup'"' \ + --replace '"gv"' '"xdg-open"' \ + --replace /usr/share/doc $out/share/doc + ''; + + enableParallelBuilding = false; # Undeclared dependencies + https://stackoverflow.com/a/19822767/1687334 for prolog.ps. + + meta = with stdenv.lib; { + homepage = "http://www.arkkra.com/"; + description = "Music typesetting program (ASCII to PostScript and MIDI)"; + license = licenses.bsd3; + maintainers = with maintainers; [ orivej ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/audio/mup/ghostscript-permit-file-write.patch b/pkgs/applications/audio/mup/ghostscript-permit-file-write.patch new file mode 100644 index 00000000000..5059e71001f --- /dev/null +++ b/pkgs/applications/audio/mup/ghostscript-permit-file-write.patch @@ -0,0 +1,5 @@ +--- a/src/mup/Makefile.am ++++ b/src/mup/Makefile.am +@@ -39 +39 @@ fontdata.c: prolog.ps ../../tools/mup/getfontinfo.ps ../../LICENSE +- $(GS) -sDEVICE=nullpage -sOutputFile=/dev/null -dQUIET - < ../../tools/mup/getfontinfo.ps | $(SED) -e "/Warning:/d" >> fontdata.c ++ $(GS) -sDEVICE=nullpage -sOutputFile=/dev/null -dQUIET --permit-file-write=charnames:fontinit - < ../../tools/mup/getfontinfo.ps | $(SED) -e "/Warning:/d" >> fontdata.c diff --git a/pkgs/applications/audio/muse/default.nix b/pkgs/applications/audio/muse/default.nix index f1fad05bece..87f86306b48 100644 --- a/pkgs/applications/audio/muse/default.nix +++ b/pkgs/applications/audio/muse/default.nix @@ -1,25 +1,33 @@ -{ stdenv -, fetchFromGitHub -, libjack2 -, wrapQtAppsHook -, qtsvg -, qttools -, cmake -, libsndfile -, libsamplerate -, ladspaH -, fluidsynth -, alsaLib -, rtaudio -, lash -, dssi -, liblo -, pkgconfig +{ stdenv, fetchFromGitHub, cmake, pkgconfig, qttools, wrapQtAppsHook +, alsaLib, dssi, fluidsynth, ladspaH, lash, libinstpatch, libjack2, liblo +, libsamplerate, libsndfile, lilv, lrdf, lv2, qtsvg, rtaudio, rubberband, sord }: -stdenv.mkDerivation { +stdenv.mkDerivation rec { pname = "muse-sequencer"; - version = "3.1pre1"; + version = "3.1.0"; + + src = fetchFromGitHub { + owner = "muse-sequencer"; + repo = "muse"; + rev = "muse_${builtins.replaceStrings ["."] ["_"] version}"; + sha256 = "08k25652w88xf2i79lw305x1phpk7idrww9jkqwcs8q6wzgmz8aq"; + }; + + sourceRoot = "source/muse3"; + + prePatch = '' + chmod u+w $NIX_BUILD_TOP + ''; + + patches = [ ./fix-parallel-building.patch ]; + + nativeBuildInputs = [ cmake pkgconfig qttools wrapQtAppsHook ]; + + buildInputs = [ + alsaLib dssi fluidsynth ladspaH lash libinstpatch libjack2 liblo + libsamplerate libsndfile lilv lrdf lv2 qtsvg rtaudio rubberband sord + ]; meta = with stdenv.lib; { homepage = "https://www.muse-sequencer.org/"; @@ -32,38 +40,7 @@ stdenv.mkDerivation { MusE aims to be a complete multitrack virtual studio for Linux, it is published under the GNU General Public License. ''; - license = stdenv.lib.licenses.gpl2; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ orivej ]; }; - - src = - fetchFromGitHub { - owner = "muse-sequencer"; - repo = "muse"; - rev = "2167ae053c16a633d8377acdb1debaac10932838"; - sha256 = "0rsdx8lvcbz5bapnjvypw8h8bq587s9z8cf2znqrk6ah38s6fsrf"; - }; - - - nativeBuildInputs = [ - pkgconfig - wrapQtAppsHook - qttools - cmake - ]; - - buildInputs = [ - libjack2 - qtsvg - libsndfile - libsamplerate - ladspaH - fluidsynth - alsaLib - rtaudio - lash - dssi - liblo - ]; - - sourceRoot = "source/muse3"; } diff --git a/pkgs/applications/audio/muse/fix-parallel-building.patch b/pkgs/applications/audio/muse/fix-parallel-building.patch new file mode 100644 index 00000000000..a11970b7111 --- /dev/null +++ b/pkgs/applications/audio/muse/fix-parallel-building.patch @@ -0,0 +1,93 @@ +To confirm these dependencies, run in a fresh build tree: + + +ninja muse/components/CMakeFiles/components.dir/confmport.o + +In file included from ../muse/components/confmport.cpp:48: +../muse/mplugins/midifilterimpl.h:28:10: fatal error: +ui_midifilter.h: No such file or directory + + +ninja muse/waveedit/CMakeFiles/waveedit.dir/wavecanvas.o + +In file included from ../muse/waveedit/wavecanvas.cpp:72: +../muse/components/copy_on_write.h:26:10: fatal error: +ui_copy_on_write_base.h: No such file or directory + + +ninja muse/instruments/CMakeFiles/instruments.dir/editinstrument.o + +In file included from ../muse/instruments/editinstrument.cpp:58: +../muse/components/editevent.h:26:10: fatal error: +ui_editnotedialogbase.h: No such file or directory + + +ninja muse/liste/CMakeFiles/liste.dir/listedit.o + +In file included from ../muse/liste/listedit.cpp:37: +../muse/components/editevent.h:26:10: fatal error: +ui_editnotedialogbase.h: No such file or directory + + +ninja muse/mixer/CMakeFiles/mixer.dir/rack.o + +In file included from ../muse/mixer/rack.cpp:49: +../muse/components/plugindialog.h:4:10: fatal error: +ui_plugindialogbase.h: No such file or directory + + +ninja muse/midiedit/CMakeFiles/midiedit.dir/drumedit.o + +In file included from /build/source/muse3/muse/midiedit/drumedit.cpp:64: +/build/source/muse3/muse/components/filedialog.h:29:10: fatal error: +ui_fdialogbuttons.h: No such file or directory + + +--- a/muse/components/CMakeLists.txt ++++ b/muse/components/CMakeLists.txt +@@ -343,4 +343,5 @@ set_target_properties( components + target_link_libraries ( components + ${QT_LIBRARIES} ++ mplugins + widgets + xml_module +--- a/muse/waveedit/CMakeLists.txt ++++ b/muse/waveedit/CMakeLists.txt +@@ -79,4 +79,5 @@ set_target_properties( waveedit + target_link_libraries( waveedit + ${QT_LIBRARIES} ++ components + widgets + ) +--- a/muse/instruments/CMakeLists.txt ++++ b/muse/instruments/CMakeLists.txt +@@ -78,4 +78,5 @@ set_target_properties( instruments + target_link_libraries ( instruments + ${QT_LIBRARIES} ++ components + icons + widgets +--- a/muse/liste/CMakeLists.txt ++++ b/muse/liste/CMakeLists.txt +@@ -65,4 +65,5 @@ set_target_properties( liste + target_link_libraries ( liste + ${QT_LIBRARIES} ++ components + awl + widgets +--- a/muse/mixer/CMakeLists.txt ++++ b/muse/mixer/CMakeLists.txt +@@ -87,4 +87,5 @@ set_target_properties ( mixer + target_link_libraries ( mixer + ${QT_LIBRARIES} ++ components + widgets + ) +--- a/muse/midiedit/CMakeLists.txt ++++ b/muse/midiedit/CMakeLists.txt +@@ -93,4 +93,5 @@ set_target_properties( midiedit + target_link_libraries ( midiedit + ${QT_LIBRARIES} ++ components + al + ctrl diff --git a/pkgs/applications/audio/musescore/darwin.nix b/pkgs/applications/audio/musescore/darwin.nix index 8b08aed62b8..8870a144c9f 100644 --- a/pkgs/applications/audio/musescore/darwin.nix +++ b/pkgs/applications/audio/musescore/darwin.nix @@ -25,10 +25,10 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Music notation and composition software"; - homepage = https://musescore.org/; + homepage = "https://musescore.org/"; license = licenses.gpl2; platforms = platforms.darwin; maintainers = with maintainers; [ yurrriq ]; - repositories.git = https://github.com/musescore/MuseScore; + repositories.git = "https://github.com/musescore/MuseScore"; }; } diff --git a/pkgs/applications/audio/musescore/default.nix b/pkgs/applications/audio/musescore/default.nix index 5368fcb6165..063a05a72f3 100644 --- a/pkgs/applications/audio/musescore/default.nix +++ b/pkgs/applications/audio/musescore/default.nix @@ -6,11 +6,11 @@ mkDerivation rec { pname = "musescore"; - version = "3.2.3"; + version = "3.4.2"; src = fetchzip { url = "https://github.com/musescore/MuseScore/releases/download/v${version}/MuseScore-${version}.zip"; - sha256 = "17mr0c8whw6vz86lp1j36rams4h8virc4z68fld0q3rpq6g05szs"; + sha256 = "1laskvp40dncs12brkgvk7wl0qrvzy52rn7nf3b67ps1vmd130gp"; stripRoot = false; }; @@ -31,10 +31,10 @@ mkDerivation rec { meta = with stdenv.lib; { description = "Music notation and composition software"; - homepage = https://musescore.org/; + homepage = "https://musescore.org/"; license = licenses.gpl2; - maintainers = with maintainers; [ vandenoever ]; + maintainers = with maintainers; [ vandenoever turion ]; platforms = platforms.linux; - repositories.git = https://github.com/musescore/MuseScore; + repositories.git = "https://github.com/musescore/MuseScore"; }; } diff --git a/pkgs/applications/audio/musescore/remove_qtwebengine_install_hack.patch b/pkgs/applications/audio/musescore/remove_qtwebengine_install_hack.patch index 53a0c90ce46..57a6092d585 100644 --- a/pkgs/applications/audio/musescore/remove_qtwebengine_install_hack.patch +++ b/pkgs/applications/audio/musescore/remove_qtwebengine_install_hack.patch @@ -1,12 +1,9 @@ ---- a/mscore/CMakeLists.txt -+++ b/mscore/CMakeLists.txt -@@ -660,22 +660,6 @@ if (MINGW) - else (MINGW) - - if ( NOT MSVC ) --## install qwebengine core +--- a/main/CMakeLists.txt ++++ b/main/CMakeLists.txt +@@ -220,16 +219,0 @@ else (MINGW) +- ## install qwebengine core - if (NOT APPLE AND USE_WEBENGINE) -- install(FILES +- install(PROGRAMS - ${QT_INSTALL_LIBEXECS}/QtWebEngineProcess - DESTINATION bin - ) @@ -20,6 +17,3 @@ - ) - endif(NOT APPLE AND USE_WEBENGINE) - - target_link_libraries(mscore - ${ALSA_LIB} - ${QT_LIBRARIES} diff --git a/pkgs/applications/audio/musikcube/default.nix b/pkgs/applications/audio/musikcube/default.nix new file mode 100644 index 00000000000..0c076946b92 --- /dev/null +++ b/pkgs/applications/audio/musikcube/default.nix @@ -0,0 +1,56 @@ +{ cmake +, pkg-config +, alsaLib +, boost +, curl +, fetchFromGitHub +, ffmpeg +, lame +, libev +, libmicrohttpd +, ncurses +, pulseaudio +, stdenv +, taglib +, systemdSupport ? stdenv.isLinux, systemd +}: + +stdenv.mkDerivation rec { + pname = "musikcube"; + version = "0.90.1"; + + src = fetchFromGitHub { + owner = "clangen"; + repo = pname; + rev = version; + sha256 = "1ff2cgbllrl2pl5zfbf0cd9qbf6hqpwr395sa1k245ar4f1rfwpg"; + }; + + # https://github.com/clangen/musikcube/issues/339 + patches = [ ./dont-strip.patch ]; + + nativeBuildInputs = [ + cmake + pkg-config + ]; + buildInputs = [ + alsaLib + boost + curl + ffmpeg + lame + libev + libmicrohttpd + ncurses + pulseaudio + taglib + ] ++ stdenv.lib.optional systemdSupport systemd; + + meta = with stdenv.lib; { + description = "A fully functional terminal-based music player, library, and streaming audio server"; + homepage = "https://musikcube.com/"; + maintainers = [ maintainers.aanderse ]; + license = licenses.bsd3; + platforms = platforms.all; + }; +} diff --git a/pkgs/applications/audio/musikcube/dont-strip.patch b/pkgs/applications/audio/musikcube/dont-strip.patch new file mode 100644 index 00000000000..b7385dcddba --- /dev/null +++ b/pkgs/applications/audio/musikcube/dont-strip.patch @@ -0,0 +1,14 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index a3e02666..7c43c7e6 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -370,9 +370,3 @@ endif() + # they don't yet exist! + add_custom_target(postbuild ALL DEPENDS musikcube musikcubed) + add_custom_command(TARGET postbuild POST_BUILD COMMAND cmake .) +- +-# strip binaries in release mode +-if (CMAKE_BUILD_TYPE MATCHES Release) +- message(STATUS "stripping binaries...") +- add_custom_command(TARGET postbuild POST_BUILD COMMAND "${CMAKE_SOURCE_DIR}/strip-nix.sh") +-endif() diff --git a/pkgs/applications/audio/musly/default.nix b/pkgs/applications/audio/musly/default.nix index e7a9e22c2d6..b1e8822cdcf 100644 --- a/pkgs/applications/audio/musly/default.nix +++ b/pkgs/applications/audio/musly/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation { '' else ""; meta = with stdenv.lib; { - homepage = https://www.musly.org; + homepage = "https://www.musly.org"; description = "A fast and high-quality audio music similarity library written in C/C++"; longDescription = '' Musly analyzes the the audio signal of music pieces to estimate their similarity. diff --git a/pkgs/applications/audio/ncmpc/default.nix b/pkgs/applications/audio/ncmpc/default.nix index c95177cd382..c08e4f7f4ff 100644 --- a/pkgs/applications/audio/ncmpc/default.nix +++ b/pkgs/applications/audio/ncmpc/default.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Curses-based interface for MPD (music player daemon)"; - homepage = https://www.musicpd.org/clients/ncmpc/; + homepage = "https://www.musicpd.org/clients/ncmpc/"; license = licenses.gpl2Plus; platforms = platforms.all; maintainers = with maintainers; [ fpletz ]; diff --git a/pkgs/applications/audio/ncmpcpp/default.nix b/pkgs/applications/audio/ncmpcpp/default.nix index 2ba36b4a50d..f8adc522fcb 100644 --- a/pkgs/applications/audio/ncmpcpp/default.nix +++ b/pkgs/applications/audio/ncmpcpp/default.nix @@ -33,7 +33,7 @@ stdenv.mkDerivation rec { meta = { description = "A featureful ncurses based MPD client inspired by ncmpc"; - homepage = https://ncmpcpp.rybczak.net/; + homepage = "https://ncmpcpp.rybczak.net/"; license = licenses.gpl2Plus; maintainers = with maintainers; [ jfrankenau koral lovek323 ]; platforms = platforms.all; diff --git a/pkgs/applications/audio/ncpamixer/default.nix b/pkgs/applications/audio/ncpamixer/default.nix index 53ed9b3297c..32d8df2f048 100644 --- a/pkgs/applications/audio/ncpamixer/default.nix +++ b/pkgs/applications/audio/ncpamixer/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "An ncurses mixer for PulseAudio inspired by pavucontrol"; - homepage = https://github.com/fulhax/ncpamixer; + homepage = "https://github.com/fulhax/ncpamixer"; license = licenses.mit; platforms = platforms.linux; maintainers = with maintainers; [ StijnDW ]; diff --git a/pkgs/applications/audio/ncspot/default.nix b/pkgs/applications/audio/ncspot/default.nix index 0d8fd8e2637..bee1065328a 100644 --- a/pkgs/applications/audio/ncspot/default.nix +++ b/pkgs/applications/audio/ncspot/default.nix @@ -2,26 +2,28 @@ , withALSA ? true, alsaLib ? null , withPulseAudio ? false, libpulseaudio ? null , withPortAudio ? false, portaudio ? null +, 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 withPortAudio "portaudio_backend" + ++ lib.optional withMPRIS "mpris"; in rustPlatform.buildRustPackage rec { pname = "ncspot"; - version = "0.1.2"; + version = "0.1.3"; src = fetchFromGitHub { owner = "hrkfdn"; repo = "ncspot"; rev = "v${version}"; - sha256 = "10jp2yh8jlvdwh297658q9fi3i62vwsbd9fbwjsir7s1c9bgdy8k"; + sha256 = "144a7wn5l64fhvj8vgwl7z4bp8lbq0pb0dl38x9y4wkqmdh6wrli"; }; - cargoSha256 = "0081wc3xw11hivz0nwy4my3y4a53ch857bq989dr0pm9p2pirvj1"; + cargoSha256 = "19gn0v7j1ly3ywgflfj27pnrwjiiy17m3g1z0kzagxpjy2xi2qxy"; cargoBuildFlags = [ "--no-default-features" "--features" "${lib.concatStringsSep "," features}" ]; @@ -30,7 +32,8 @@ rustPlatform.buildRustPackage rec { buildInputs = [ ncurses openssl ] ++ lib.optional withALSA alsaLib ++ lib.optional withPulseAudio libpulseaudio - ++ lib.optional withPortAudio portaudio; + ++ lib.optional withPortAudio portaudio + ++ lib.optional withMPRIS dbus; doCheck = false; diff --git a/pkgs/applications/audio/netease-cloud-music/default.nix b/pkgs/applications/audio/netease-cloud-music/default.nix index 76dcba304a3..c4cc291d026 100644 --- a/pkgs/applications/audio/netease-cloud-music/default.nix +++ b/pkgs/applications/audio/netease-cloud-music/default.nix @@ -68,13 +68,12 @@ in stdenv.mkDerivation rec { wrapProgram $out/bin/netease-cloud-music \ --prefix LD_LIBRARY_PATH : "${runtimeLibs}" \ - --set QT_AUTO_SCREEN_SCALE_FACTOR 1 \ --set QCEF_INSTALL_PATH "${deepin.qcef}/lib/qcef" ''; meta = { description = "Client for Netease Cloud Music service"; - homepage = https://music.163.com; + homepage = "https://music.163.com"; platforms = [ "i686-linux" "x86_64-linux" ]; maintainers = [ stdenv.lib.maintainers.mlatus ]; license = stdenv.lib.licenses.unfreeRedistributable; diff --git a/pkgs/applications/audio/noise-repellent/default.nix b/pkgs/applications/audio/noise-repellent/default.nix index bc5b35396e2..3b2f233c6af 100644 --- a/pkgs/applications/audio/noise-repellent/default.nix +++ b/pkgs/applications/audio/noise-repellent/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "An lv2 plugin for broadband noise reduction"; - homepage = https://github.com/lucianodato/noise-repellent; + homepage = "https://github.com/lucianodato/noise-repellent"; license = licenses.gpl3; maintainers = [ maintainers.magnetophon ]; platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "i686-darwin" ]; diff --git a/pkgs/applications/audio/non/default.nix b/pkgs/applications/audio/non/default.nix index 5f8c82b98d0..9b4b147c230 100644 --- a/pkgs/applications/audio/non/default.nix +++ b/pkgs/applications/audio/non/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchFromGitHub, pkgconfig, python2, cairo, libjpeg, ntk, libjack2 -, libsndfile, ladspaH, liblrdf, liblo, libsigcxx, wafHook +, libsndfile, ladspaH, liblo, libsigcxx, lrdf, wafHook }: stdenv.mkDerivation { @@ -14,12 +14,12 @@ stdenv.mkDerivation { nativeBuildInputs = [ pkgconfig wafHook ]; buildInputs = [ python2 cairo libjpeg ntk libjack2 libsndfile - ladspaH liblrdf liblo libsigcxx + ladspaH liblo libsigcxx lrdf ]; meta = { description = "Lightweight and lightning fast modular Digital Audio Workstation"; - homepage = http://non.tuxfamily.org; + homepage = "http://non.tuxfamily.org"; license = stdenv.lib.licenses.lgpl21; platforms = stdenv.lib.platforms.linux; maintainers = [ stdenv.lib.maintainers.nico202 ]; diff --git a/pkgs/applications/audio/nootka/default.nix b/pkgs/applications/audio/nootka/default.nix new file mode 100644 index 00000000000..b0d4843aecd --- /dev/null +++ b/pkgs/applications/audio/nootka/default.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchurl, cmake +, alsaLib, fftwSinglePrec, libjack2, libpulseaudio, libvorbis, soundtouch, qtbase +}: + +stdenv.mkDerivation rec { + name = "nootka-1.4.7"; + + src = fetchurl { + url = "mirror://sourceforge/nootka/${name}-source.tar.bz2"; + sha256 = "1y9wlwri74v2z9dwbcfjs7xri54yra24vpwq19xi2lfv1nbs518x"; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ + alsaLib fftwSinglePrec libjack2 libpulseaudio libvorbis soundtouch qtbase + ]; + + cmakeFlags = [ + "-DCMAKE_INCLUDE_PATH=${libjack2}/include/jack;${libpulseaudio.dev}/include/pulse" + "-DENABLE_JACK=ON" + "-DENABLE_PULSEAUDIO=ON" + ]; + + meta = with stdenv.lib; { + description = "Application for practicing playing musical scores and ear training"; + homepage = "https://nootka.sourceforge.io/"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ orivej ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/audio/nootka/unstable.nix b/pkgs/applications/audio/nootka/unstable.nix new file mode 100644 index 00000000000..16df55c1dfb --- /dev/null +++ b/pkgs/applications/audio/nootka/unstable.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchurl, cmake +, alsaLib, fftwSinglePrec, libjack2, libpulseaudio, libvorbis, soundtouch +, qtbase, qtdeclarative, qtquickcontrols2 +}: + +stdenv.mkDerivation rec { + name = "nootka-1.7.0-beta1"; + + src = fetchurl { + url = "mirror://sourceforge/nootka/${name}-source.tar.bz2"; + sha256 = "13b50vnpr1zx2mrgkc8fmhsyfa19rqq1rksvn31145dy6fk1f3gc"; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ + alsaLib fftwSinglePrec libjack2 libpulseaudio libvorbis soundtouch + qtbase qtdeclarative qtquickcontrols2 + ]; + + cmakeFlags = [ + "-DCMAKE_INCLUDE_PATH=${libjack2}/include/jack;${libpulseaudio.dev}/include/pulse" + "-DENABLE_JACK=ON" + "-DENABLE_PULSEAUDIO=ON" + ]; + + meta = with stdenv.lib; { + description = "Application for practicing playing musical scores and ear training"; + homepage = "https://nootka.sourceforge.io/"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ orivej ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/audio/normalize/default.nix b/pkgs/applications/audio/normalize/default.nix index 490ecc967bb..0aa26411693 100644 --- a/pkgs/applications/audio/normalize/default.nix +++ b/pkgs/applications/audio/normalize/default.nix @@ -12,7 +12,7 @@ stdenv.mkDerivation rec { buildInputs = [ libmad ]; meta = with stdenv.lib; { - homepage = https://www.nongnu.org/normalize/; + homepage = "https://www.nongnu.org/normalize/"; description = "Audio file normalizer"; license = licenses.gpl2; platforms = platforms.unix; diff --git a/pkgs/applications/audio/nova-filters/default.nix b/pkgs/applications/audio/nova-filters/default.nix index 0bb970500bd..bc5a3efc59a 100644 --- a/pkgs/applications/audio/nova-filters/default.nix +++ b/pkgs/applications/audio/nova-filters/default.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation { pname = "nova-filters"; src = fetchurl { - url = https://klingt.org/~tim/nova-filters/nova-filters_0.2-2.tar.gz; + url = "https://klingt.org/~tim/nova-filters/nova-filters_0.2-2.tar.gz"; sha256 = "16064vvl2w5lz4xi3lyjk4xx7fphwsxc14ajykvndiz170q32s6i"; }; @@ -23,7 +23,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "LADSPA plugins based on filters of nova"; - homepage = http://klingt.org/~tim/nova-filters/; + homepage = "http://klingt.org/~tim/nova-filters/"; license = licenses.gpl2Plus; maintainers = [ maintainers.magnetophon ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/openmpt123/default.nix b/pkgs/applications/audio/openmpt123/default.nix index 24ac52e7e31..de903bf3276 100644 --- a/pkgs/applications/audio/openmpt123/default.nix +++ b/pkgs/applications/audio/openmpt123/default.nix @@ -2,14 +2,14 @@ , usePulseAudio ? config.pulseaudio or false, libpulseaudio }: let - version = "0.4.11"; + version = "0.4.12"; in stdenv.mkDerivation { pname = "openmpt123"; inherit version; src = fetchurl { url = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${version}+release.autotools.tar.gz"; - sha256 = "1g96bpwh419s429wb387lkmhjsn3ldsjrzrb8h9p3wva5z6943i6"; + sha256 = "0q2yf9g6hcwvr2nk3zggkscyf0np6i03q2g7fx10i2kcdr3n9k8c"; }; enableParallelBuilding = true; @@ -23,7 +23,7 @@ in stdenv.mkDerivation { meta = with stdenv.lib; { description = "A cross-platform command-line based module file player"; - homepage = https://lib.openmpt.org/libopenmpt/; + homepage = "https://lib.openmpt.org/libopenmpt/"; license = licenses.bsd3; maintainers = with maintainers; [ gnidorah ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/opus-tools/default.nix b/pkgs/applications/audio/opus-tools/default.nix index 69fa75d85f4..9d95c362d92 100644 --- a/pkgs/applications/audio/opus-tools/default.nix +++ b/pkgs/applications/audio/opus-tools/default.nix @@ -12,7 +12,7 @@ stdenv.mkDerivation rec { meta = { description = "Tools to work with opus encoded audio streams"; - homepage = http://www.opus-codec.org/; + homepage = "http://www.opus-codec.org/"; license = stdenv.lib.licenses.bsd2; maintainers = with stdenv.lib.maintainers; [ ]; platforms = with stdenv.lib.platforms; unix; diff --git a/pkgs/applications/audio/opusfile/default.nix b/pkgs/applications/audio/opusfile/default.nix index 25636863793..c09b3f415d8 100644 --- a/pkgs/applications/audio/opusfile/default.nix +++ b/pkgs/applications/audio/opusfile/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "High-level API for decoding and seeking in .opus files"; - homepage = http://www.opus-codec.org/; + homepage = "http://www.opus-codec.org/"; license = licenses.bsd3; platforms = platforms.linux ++ platforms.darwin; maintainers = with maintainers; [ ]; diff --git a/pkgs/applications/audio/padthv1/default.nix b/pkgs/applications/audio/padthv1/default.nix index 0cb0f00844e..911bb4c8c77 100644 --- a/pkgs/applications/audio/padthv1/default.nix +++ b/pkgs/applications/audio/padthv1/default.nix @@ -2,11 +2,11 @@ mkDerivation rec { pname = "padthv1"; - version = "0.9.12"; + version = "0.9.13"; src = fetchurl { url = "mirror://sourceforge/padthv1/${pname}-${version}.tar.gz"; - sha256 = "1zz3rz990k819q0rlzllqdwvag0x9k63443lb0mp8lwlczxnza6l"; + sha256 = "1c1zllph86qswcxddz4vpsj6r9w21hbv4gkba0pyd3q7pbfqr7nz"; }; buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools fftw ]; @@ -15,7 +15,7 @@ mkDerivation rec { meta = with stdenv.lib; { description = "polyphonic additive synthesizer"; - homepage = http://padthv1.sourceforge.net/; + homepage = "http://padthv1.sourceforge.net/"; license = licenses.gpl2Plus; platforms = platforms.linux; maintainers = [ maintainers.magnetophon ]; diff --git a/pkgs/applications/audio/pamix/default.nix b/pkgs/applications/audio/pamix/default.nix index 2507f08e9e5..cc5d84d9471 100644 --- a/pkgs/applications/audio/pamix/default.nix +++ b/pkgs/applications/audio/pamix/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Pulseaudio terminal mixer"; - homepage = https://github.com/patroclos/PAmix; + homepage = "https://github.com/patroclos/PAmix"; license = licenses.mit; platforms = platforms.linux; maintainers = with maintainers; [ ericsagnes ]; diff --git a/pkgs/applications/audio/pamixer/default.nix b/pkgs/applications/audio/pamixer/default.nix index 7c452096785..71d85248599 100644 --- a/pkgs/applications/audio/pamixer/default.nix +++ b/pkgs/applications/audio/pamixer/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { - Increase / Decrease the volume for a device - Mute or unmute a device ''; - homepage = https://github.com/cdemoulins/pamixer; + homepage = "https://github.com/cdemoulins/pamixer"; license = licenses.gpl3; platforms = platforms.linux; }; diff --git a/pkgs/applications/audio/paprefs/default.nix b/pkgs/applications/audio/paprefs/default.nix index 9c59b5466c7..b5ec1206ce3 100644 --- a/pkgs/applications/audio/paprefs/default.nix +++ b/pkgs/applications/audio/paprefs/default.nix @@ -40,7 +40,7 @@ stdenv.mkDerivation rec { dialog for the PulseAudio sound server. ''; - homepage = http://freedesktop.org/software/pulseaudio/paprefs/; + homepage = "http://freedesktop.org/software/pulseaudio/paprefs/"; license = licenses.gpl2Plus; diff --git a/pkgs/applications/audio/parlatype/default.nix b/pkgs/applications/audio/parlatype/default.nix index fb5fe47f4f2..e4728b9b9c4 100644 --- a/pkgs/applications/audio/parlatype/default.nix +++ b/pkgs/applications/audio/parlatype/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "parlatype"; - version = "1.6.2"; + version = "2.0"; src = fetchFromGitHub { owner = "gkarsay"; repo = pname; rev = "v${version}"; - sha256 = "157423f40l8nd5da6y0qjmg4l3125zailp98w2hda3mxxn1j5ix3"; + sha256 = "026i19vkdq35rldbjp1wglamr22a1330iv736mmgbd8fs7vz22nx"; }; nativeBuildInputs = [ @@ -61,7 +61,7 @@ stdenv.mkDerivation rec { It plays audio sources to transcribe them in your favourite text application. It’s intended to be useful for journalists, students, scientists and whoever needs to transcribe audio files. ''; - homepage = https://gkarsay.github.io/parlatype/; + homepage = "https://gkarsay.github.io/parlatype/"; license = licenses.gpl3Plus; maintainers = [ maintainers.melchips ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/patchage/default.nix b/pkgs/applications/audio/patchage/default.nix index e7c4cab9af1..ac679d6dd94 100644 --- a/pkgs/applications/audio/patchage/default.nix +++ b/pkgs/applications/audio/patchage/default.nix @@ -6,7 +6,7 @@ stdenv.mkDerivation { pname = "patchage"; version = "1.0.1"; src = fetchsvn { - url = http://svn.drobilla.net/lad/trunk/patchage/; + url = "http://svn.drobilla.net/lad/trunk/patchage/"; rev = "5821"; sha256 = "1ar64l0sg468qzxj7i6ppgfqjpm92awcp5lzskamrf3ln17lrgj7"; }; @@ -18,7 +18,7 @@ stdenv.mkDerivation { meta = { description = "Modular patch bay for Jack and ALSA systems"; - homepage = http://non.tuxfamily.org; + homepage = "http://non.tuxfamily.org"; license = stdenv.lib.licenses.lgpl3; platforms = stdenv.lib.platforms.linux; maintainers = [ stdenv.lib.maintainers.nico202 ]; diff --git a/pkgs/applications/audio/paulstretch/default.nix b/pkgs/applications/audio/paulstretch/default.nix index b9a3f39affb..f6cee7672f7 100644 --- a/pkgs/applications/audio/paulstretch/default.nix +++ b/pkgs/applications/audio/paulstretch/default.nix @@ -52,7 +52,7 @@ stdenv.mkDerivation { special effects by "spectral smoothing" the sounds. It can transform any sound/music to a texture. ''; - homepage = http://hypermammut.sourceforge.net/paulstretch/; + homepage = "http://hypermammut.sourceforge.net/paulstretch/"; platforms = platforms.linux; license = licenses.gpl2; }; diff --git a/pkgs/applications/audio/pavucontrol/default.nix b/pkgs/applications/audio/pavucontrol/default.nix index d07cf8a476b..301e44168d3 100644 --- a/pkgs/applications/audio/pavucontrol/default.nix +++ b/pkgs/applications/audio/pavucontrol/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { easily control the volume of all clients, sinks, etc. ''; - homepage = http://freedesktop.org/software/pulseaudio/pavucontrol/; + homepage = "http://freedesktop.org/software/pulseaudio/pavucontrol/"; license = stdenv.lib.licenses.gpl2Plus; diff --git a/pkgs/applications/audio/pd-plugins/cyclone/default.nix b/pkgs/applications/audio/pd-plugins/cyclone/default.nix index 6440f6e787f..56f1ec518de 100644 --- a/pkgs/applications/audio/pd-plugins/cyclone/default.nix +++ b/pkgs/applications/audio/pd-plugins/cyclone/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { meta = { description = "A library of PureData classes, bringing some level of compatibility between Max/MSP and Pd environments"; - homepage = http://puredata.info/downloads/cyclone; + homepage = "http://puredata.info/downloads/cyclone"; license = stdenv.lib.licenses.tcltk; maintainers = [ stdenv.lib.maintainers.magnetophon ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/pd-plugins/helmholtz/default.nix b/pkgs/applications/audio/pd-plugins/helmholtz/default.nix index 6c7a4b03ef5..be5a385d308 100644 --- a/pkgs/applications/audio/pd-plugins/helmholtz/default.nix +++ b/pkgs/applications/audio/pd-plugins/helmholtz/default.nix @@ -38,7 +38,7 @@ stdenv.mkDerivation { meta = { description = "Time domain pitch tracker for Pure Data"; - homepage = http://www.katjaas.nl/helmholtz/helmholtz.html; + homepage = "http://www.katjaas.nl/helmholtz/helmholtz.html"; license = stdenv.lib.licenses.bsd3; maintainers = [ stdenv.lib.maintainers.magnetophon ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/pd-plugins/maxlib/default.nix b/pkgs/applications/audio/pd-plugins/maxlib/default.nix index 21ba375200b..aec793c4ee8 100644 --- a/pkgs/applications/audio/pd-plugins/maxlib/default.nix +++ b/pkgs/applications/audio/pd-plugins/maxlib/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { meta = { description = "A library of non-tilde externals for puredata, by Miller Puckette"; - homepage = http://puredata.info/downloads/maxlib; + homepage = "http://puredata.info/downloads/maxlib"; license = stdenv.lib.licenses.gpl2; maintainers = [ stdenv.lib.maintainers.magnetophon ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/pd-plugins/mrpeach/default.nix b/pkgs/applications/audio/pd-plugins/mrpeach/default.nix index 028a4667cb2..cefee430ad5 100644 --- a/pkgs/applications/audio/pd-plugins/mrpeach/default.nix +++ b/pkgs/applications/audio/pd-plugins/mrpeach/default.nix @@ -54,7 +54,7 @@ stdenv.mkDerivation { meta = { description = "A collection of Pd objectclasses for OSC-messages"; - homepage = http://puredata.info/downloads/osc; + homepage = "http://puredata.info/downloads/osc"; license = stdenv.lib.licenses.gpl2; maintainers = [ stdenv.lib.maintainers.magnetophon ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/pd-plugins/puremapping/default.nix b/pkgs/applications/audio/pd-plugins/puremapping/default.nix index c214d3fcf40..7a5014664d5 100644 --- a/pkgs/applications/audio/pd-plugins/puremapping/default.nix +++ b/pkgs/applications/audio/pd-plugins/puremapping/default.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { meta = { description = "Set of externals to facilitate the use of sensors within Pure Data and to create complex relations between input and output of a dynamic system"; - homepage = http://www.chnry.net/ch/?090-Pure-Mapping&lang=en; + homepage = "http://www.chnry.net/ch/?090-Pure-Mapping&lang=en"; license = stdenv.lib.licenses.gpl1; maintainers = [ stdenv.lib.maintainers.magnetophon ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/pd-plugins/timbreid/default.nix b/pkgs/applications/audio/pd-plugins/timbreid/default.nix index fa9660fbbf6..e68610a0226 100644 --- a/pkgs/applications/audio/pd-plugins/timbreid/default.nix +++ b/pkgs/applications/audio/pd-plugins/timbreid/default.nix @@ -37,7 +37,7 @@ stdenv.mkDerivation rec { meta = { description = "A collection of audio feature analysis externals for puredata"; - homepage = http://williambrent.conflations.com/pages/research.html; + homepage = "http://williambrent.conflations.com/pages/research.html"; license = stdenv.lib.licenses.gpl3; maintainers = [ stdenv.lib.maintainers.magnetophon ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/pd-plugins/zexy/default.nix b/pkgs/applications/audio/pd-plugins/zexy/default.nix index cc307417c06..4f826908136 100644 --- a/pkgs/applications/audio/pd-plugins/zexy/default.nix +++ b/pkgs/applications/audio/pd-plugins/zexy/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { meta = { description = "The swiss army knife for puredata"; - homepage = http://puredata.info/downloads/zexy; + homepage = "http://puredata.info/downloads/zexy"; license = stdenv.lib.licenses.gpl2; maintainers = [ stdenv.lib.maintainers.magnetophon ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/petrifoo/default.nix b/pkgs/applications/audio/petrifoo/default.nix index 8bbeffb1f7a..322eba2b952 100644 --- a/pkgs/applications/audio/petrifoo/default.nix +++ b/pkgs/applications/audio/petrifoo/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "MIDI controllable audio sampler"; longDescription = "a fork of Specimen"; - homepage = http://petri-foo.sourceforge.net; + homepage = "http://petri-foo.sourceforge.net"; license = licenses.gpl2Plus; platforms = platforms.linux; maintainers = [ maintainers.goibhniu ]; diff --git a/pkgs/applications/audio/pianobar/default.nix b/pkgs/applications/audio/pianobar/default.nix index 811952f845f..28173d34b78 100644 --- a/pkgs/applications/audio/pianobar/default.nix +++ b/pkgs/applications/audio/pianobar/default.nix @@ -1,11 +1,11 @@ { fetchurl, stdenv, pkgconfig, libao, json_c, libgcrypt, ffmpeg, curl }: stdenv.mkDerivation rec { - name = "pianobar-2019.02.14"; + name = "pianobar-2020.04.05"; src = fetchurl { url = "http://6xq.net/projects/pianobar/${name}.tar.bz2"; - sha256 = "07z21vmlqpmvb3294r384iqbx972rwcx6chrdlkfv4hlnc9h7gf0"; + sha256 = "1034f9ilj9xjw12d6n4vadhl5jzrx0jv8gq1w0rg9hfc55mkn5vc"; }; nativeBuildInputs = [ pkgconfig ]; diff --git a/pkgs/applications/audio/pianobooster/default.nix b/pkgs/applications/audio/pianobooster/default.nix index f2130fe5559..4832fce1e96 100644 --- a/pkgs/applications/audio/pianobooster/default.nix +++ b/pkgs/applications/audio/pianobooster/default.nix @@ -1,35 +1,31 @@ -{ stdenv, fetchurl, alsaLib, cmake, libGLU, libGL, makeWrapper, qt4 }: +{ stdenv, fetchFromGitHub, cmake, pkg-config, qttools +, alsaLib, ftgl, libGLU, libjack2, qtbase, rtmidi +}: -stdenv.mkDerivation { +stdenv.mkDerivation rec { pname = "pianobooster"; - version = "0.6.4b"; + version = "0.7.2b"; - src = fetchurl { - url = "mirror://sourceforge/pianobooster/pianobooster-src-0.6.4b.tar.gz"; - sha256 = "1xwyap0288xcl0ihjv52vv4ijsjl0yq67scc509aia4plmlm6l35"; + src = fetchFromGitHub { + owner = "captnfab"; + repo = "PianoBooster"; + rev = "v${version}"; + sha256 = "03xcdnlpsij22ca3i6xj19yqzn3q2ch0d32r73v0c96nm04gvhjj"; }; - patches = [ - ./pianobooster-0.6.4b-cmake.patch - ./pianobooster-0.6.4b-cmake-gcc4.7.patch + nativeBuildInputs = [ cmake pkg-config qttools ]; + + buildInputs = [ alsaLib ftgl libGLU libjack2 qtbase rtmidi ]; + + cmakeFlags = [ + "-DOpenGL_GL_PREFERENCE=GLVND" ]; - preConfigure = "cd src"; - - buildInputs = [ alsaLib cmake makeWrapper libGLU libGL qt4 ]; - NIX_LDFLAGS = "-lGL -lpthread"; - - postInstall = '' - wrapProgram $out/bin/pianobooster \ - --prefix LD_LIBRARY_PATH : ${libGL}/lib \ - --prefix LD_LIBRARY_PATH : ${libGLU}/lib - ''; - meta = with stdenv.lib; { description = "A MIDI file player that teaches you how to play the piano"; - homepage = http://pianobooster.sourceforge.net; - license = licenses.gpl3; + homepage = "https://github.com/captnfab/PianoBooster"; + license = licenses.gpl3Plus; platforms = platforms.linux; - maintainers = [ maintainers.goibhniu ]; + maintainers = with maintainers; [ goibhniu orivej ]; }; } diff --git a/pkgs/applications/audio/pianobooster/pianobooster-0.6.4b-cmake-gcc4.7.patch b/pkgs/applications/audio/pianobooster/pianobooster-0.6.4b-cmake-gcc4.7.patch deleted file mode 100644 index 2b1b28c5a84..00000000000 --- a/pkgs/applications/audio/pianobooster/pianobooster-0.6.4b-cmake-gcc4.7.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- pianobooster-src-0.6.4b/src/CMakeLists.txt.orig 2013-04-06 10:48:02.469532914 -0700 -+++ pianobooster-src-0.6.4b/src/CMakeLists.txt 2013-04-06 10:48:12.989532445 -0700 -@@ -203,8 +203,6 @@ - ${PIANOBOOSTER_UI_HDRS} ) - ENDIF(WIN32) - --SET_TARGET_PROPERTIES(pianobooster PROPERTIES LINK_FLAGS "-mwindows") -- - IF (USE_PCH) - ADD_PRECOMPILED_HEADER( pianobooster ${CMAKE_CURRENT_SOURCE_DIR}/precompile/precompile.h ) - ENDIF (USE_PCH) diff --git a/pkgs/applications/audio/pianobooster/pianobooster-0.6.4b-cmake.patch b/pkgs/applications/audio/pianobooster/pianobooster-0.6.4b-cmake.patch deleted file mode 100644 index 8cdd8738e2b..00000000000 --- a/pkgs/applications/audio/pianobooster/pianobooster-0.6.4b-cmake.patch +++ /dev/null @@ -1,44 +0,0 @@ ---- pianobooster-src-0.6.4b/src/CMakeLists.txt.orig -+++ pianobooster-src-0.6.4b/src/CMakeLists.txt -@@ -2,12 +2,6 @@ - # for the debug build type cmake -DCMAKE_BUILD_TYPE=Debug - SET(CMAKE_BUILD_TYPE Release) - SET(CMAKE_VERBOSE_MAKEFILE OFF) --SET(USE_FLUIDSYNTH OFF) -- --# The inplace directory is mainly for windows builds --# SET(FLUIDSYNTH_INPLACE_DIR C:/download/misc/ljb/fluidsynth-1.0.9) --SET(FLUIDSYNTH_INPLACE_DIR /home/louis/build/fluidsynth-1.0.9) -- - - # Testing precompiled headers it does not work -- leave as OFF. - SET(USE_PCH OFF) -@@ -78,18 +72,7 @@ - ADD_DEFINITIONS(-DPB_USE_FLUIDSYNTH) - MESSAGE("Building using fluidsynth") - SET( PB_BASE_SRCS MidiDeviceFluidSynth.cpp ) -- -- IF(FLUIDSYNTH_INPLACE_DIR) -- INCLUDE_DIRECTORIES(${FLUIDSYNTH_INPLACE_DIR}/include/) -- IF(WIN32) -- LINK_LIBRARIES( ${FLUIDSYNTH_INPLACE_DIR}/src/.libs/libfluidsynth.dll.a) -- ENDIF(WIN32) -- IF(UNIX) -- LINK_LIBRARIES(${FLUIDSYNTH_INPLACE_DIR}/src/.libs/libfluidsynth.so) -- ENDIF(UNIX) -- ELSEIF(FLUIDSYNTH_INPLACE_DIR) -- LINK_LIBRARIES( fluidsynth) -- ENDIF(FLUIDSYNTH_INPLACE_DIR) -+ LINK_LIBRARIES(fluidsynth) - ENDIF(USE_FLUIDSYNTH) - - -@@ -214,8 +197,6 @@ - INSTALL(TARGETS pianobooster RUNTIME DESTINATION bin) - #INSTALL( index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kmidimon ) - --INSTALL( FILES ../README.txt DESTINATION share/doc/pianobooster ) -- - INSTALL ( FILES images/pianobooster.png DESTINATION share/pixmaps ) - - diff --git a/pkgs/applications/audio/picard/default.nix b/pkgs/applications/audio/picard/default.nix index b241f750d03..5830e1eefb8 100644 --- a/pkgs/applications/audio/picard/default.nix +++ b/pkgs/applications/audio/picard/default.nix @@ -1,7 +1,15 @@ -{ stdenv, python3Packages, fetchFromGitHub, gettext, chromaprint, qt5 }: +{ stdenv, python3Packages, fetchFromGitHub, gettext, chromaprint, qt5 +, enablePlayback ? true +, gst_all_1 +}: let pythonPackages = python3Packages; + pyqt5 = if enablePlayback then + pythonPackages.pyqt5_with_qtmultimedia + else + pythonPackages.pyqt5 + ; in pythonPackages.buildPythonApplication rec { pname = "picard"; version = "2.3.1"; @@ -13,7 +21,16 @@ in pythonPackages.buildPythonApplication rec { sha256 = "0xalg4dvaqb396h4s6gzxnplgv1lcvsczmmrlhyrj0kfj10amhsj"; }; - nativeBuildInputs = [ gettext qt5.wrapQtAppsHook qt5.qtbase ]; + nativeBuildInputs = [ gettext qt5.wrapQtAppsHook qt5.qtbase ] + ++ stdenv.lib.optionals (pyqt5.multimediaEnabled) [ + qt5.qtmultimedia.bin + gst_all_1.gstreamer + gst_all_1.gst-vaapi + gst_all_1.gst-libav + gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good + ] + ; propagatedBuildInputs = with pythonPackages; [ pyqt5 @@ -27,10 +44,14 @@ in pythonPackages.buildPythonApplication rec { substituteInPlace setup.cfg --replace "‘" "'" ''; - installPhase = '' - python setup.py install --prefix="$out" - wrapQtApp $out/bin/picard - ''; + # In order to spare double wrapping, we use: + preFixup = '' + makeWrapperArgs+=("''${qtWrapperArgs[@]}") + '' + + stdenv.lib.optionalString (pyqt5.multimediaEnabled) '' + makeWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0") + '' + ; meta = with stdenv.lib; { homepage = "https://picard.musicbrainz.org/"; diff --git a/pkgs/applications/audio/pithos/default.nix b/pkgs/applications/audio/pithos/default.nix index 20a6e928cef..6c3ffebc8c9 100644 --- a/pkgs/applications/audio/pithos/default.nix +++ b/pkgs/applications/audio/pithos/default.nix @@ -29,7 +29,7 @@ pythonPackages.buildPythonApplication rec { meta = with stdenv.lib; { description = "Pandora Internet Radio player for GNOME"; - homepage = https://pithos.github.io/; + homepage = "https://pithos.github.io/"; license = licenses.gpl3; maintainers = with maintainers; [ obadz ]; }; diff --git a/pkgs/applications/audio/playbar2/default.nix b/pkgs/applications/audio/playbar2/default.nix index 8c21dc8f2ad..15385e91927 100644 --- a/pkgs/applications/audio/playbar2/default.nix +++ b/pkgs/applications/audio/playbar2/default.nix @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Mpris2 Client for Plasma5"; - homepage = https://github.com/audoban/PlayBar2; + homepage = "https://github.com/audoban/PlayBar2"; license = licenses.gpl3; platforms = platforms.linux; maintainers = with maintainers; [ pjones ]; diff --git a/pkgs/applications/audio/plugin-torture/default.nix b/pkgs/applications/audio/plugin-torture/default.nix index f444ad6cb32..3c852cf450e 100644 --- a/pkgs/applications/audio/plugin-torture/default.nix +++ b/pkgs/applications/audio/plugin-torture/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation { ''; meta = with stdenv.lib; { - homepage = https://github.com/cth103/plugin-torture; + homepage = "https://github.com/cth103/plugin-torture"; description = "A tool to test LADSPA and LV2 plugins"; license = licenses.gpl2; maintainers = [ maintainers.magnetophon ]; diff --git a/pkgs/applications/audio/pmidi/default.nix b/pkgs/applications/audio/pmidi/default.nix index f9b3fbae213..0da86ca9bd1 100644 --- a/pkgs/applications/audio/pmidi/default.nix +++ b/pkgs/applications/audio/pmidi/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation { buildInputs = [ alsaLib ]; meta = with stdenv.lib; { - homepage = http://www.parabola.me.uk/alsa/pmidi.html; + homepage = "http://www.parabola.me.uk/alsa/pmidi.html"; description = "A straightforward command line program to play midi files through the ALSA sequencer"; maintainers = with maintainers; [ lheckemann ]; license = licenses.gpl2; diff --git a/pkgs/applications/audio/polyphone/default.nix b/pkgs/applications/audio/polyphone/default.nix new file mode 100644 index 00000000000..270d51840d7 --- /dev/null +++ b/pkgs/applications/audio/polyphone/default.nix @@ -0,0 +1,49 @@ +{ stdenv, mkDerivation, fetchFromGitHub, qmake, pkgconfig, alsaLib, libjack2, portaudio, libogg, flac, libvorbis, rtmidi, qtsvg }: + +mkDerivation rec { + version = "2.2.0"; + pname = "polyphone"; + + src = fetchFromGitHub { + owner = "davy7125"; + repo = "polyphone"; + rev = version; + sha256 = "0w5pidzhpwpggjn5la384fvjzkvprvrnidb06068whci11kgpbp7"; + }; + + buildInputs = [ + alsaLib + libjack2 + portaudio + libogg + flac + libvorbis + rtmidi + qtsvg + ]; + + nativeBuildInputs = [ qmake pkgconfig ]; + + preConfigure = '' + cd ./sources/ + ''; + + installPhase = '' + install -d $out/bin + install -m755 bin/polyphone $out/bin/ + ''; + + qmakeFlags = [ + "DEFINES+=USE_LOCAL_STK" + "DEFINES+=USE_LOCAL_QCUSTOMPLOT" + "INCLUDEPATH+=${libjack2}/include/jack" + ]; + + meta = with stdenv.lib; { + description = "A soundfont editor for creating musical instruments"; + homepage = "https://www.polyphone-soundfonts.com/"; + license = licenses.gpl3; + maintainers = [ maintainers.maxdamantus ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/audio/ponymix/default.nix b/pkgs/applications/audio/ponymix/default.nix index 6d168ec5661..6c289a97384 100644 --- a/pkgs/applications/audio/ponymix/default.nix +++ b/pkgs/applications/audio/ponymix/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "CLI PulseAudio Volume Control"; - homepage = https://github.com/falconindy/ponymix; + homepage = "https://github.com/falconindy/ponymix"; license = licenses.mit; platforms = platforms.linux; maintainers = with maintainers; [ ericsagnes ]; diff --git a/pkgs/applications/audio/praat/default.nix b/pkgs/applications/audio/praat/default.nix index 9414f4211d7..2fb8e30a64d 100644 --- a/pkgs/applications/audio/praat/default.nix +++ b/pkgs/applications/audio/praat/default.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { meta = { description = "Doing phonetics by computer"; - homepage = http://www.fon.hum.uva.nl/praat/; + homepage = "http://www.fon.hum.uva.nl/praat/"; license = stdenv.lib.licenses.gpl2Plus; # Has some 3rd-party code in it though platforms = stdenv.lib.platforms.linux; }; diff --git a/pkgs/applications/audio/projectm/default.nix b/pkgs/applications/audio/projectm/default.nix index 347774010ae..205a3ad287e 100644 --- a/pkgs/applications/audio/projectm/default.nix +++ b/pkgs/applications/audio/projectm/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation { meta = { description = "Music Visualizer"; - homepage = http://projectm.sourceforge.net/; + homepage = "http://projectm.sourceforge.net/"; license = stdenv.lib.licenses.lgpl21Plus; platforms = stdenv.lib.platforms.linux; }; @@ -25,7 +25,7 @@ stdenv.mkDerivation { }; patch_gcc6 = fetchpatch { - url = https://raw.githubusercontent.com/gentoo/gentoo/45abd63abc6644b6e177c057b5b42d894dbf8e29/media-libs/libprojectm/files/libprojectm-2.1.0-fix-c++14.patch; + url = "https://raw.githubusercontent.com/gentoo/gentoo/45abd63abc6644b6e177c057b5b42d894dbf8e29/media-libs/libprojectm/files/libprojectm-2.1.0-fix-c++14.patch"; sha256 = "1i50scxv1jlqvb3jm3sql89a7wqckxhlpvnhz20vvmm1kii6lrsn"; }; diff --git a/pkgs/applications/audio/pt2-clone/default.nix b/pkgs/applications/audio/pt2-clone/default.nix index f659d20f463..2f21e3ea56b 100644 --- a/pkgs/applications/audio/pt2-clone/default.nix +++ b/pkgs/applications/audio/pt2-clone/default.nix @@ -7,13 +7,13 @@ stdenv.mkDerivation rec { pname = "pt2-clone"; - version = "1.06"; + version = "1.07"; src = fetchFromGitHub { owner = "8bitbubsy"; repo = "pt2-clone"; rev = "v${version}"; - sha256 = "00zifwiprd3i60z4pf4471jxbc33vh9p30ib0lnzwpgjz5pnxqnr"; + sha256 = "0g2bp9n05ng2fvqw86pb941zamcqnfz1l066wvh5j3av1w22khi8"; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/applications/audio/puddletag/default.nix b/pkgs/applications/audio/puddletag/default.nix index 3a6cd298557..a0813fa0c80 100644 --- a/pkgs/applications/audio/puddletag/default.nix +++ b/pkgs/applications/audio/puddletag/default.nix @@ -29,7 +29,7 @@ python2Packages.buildPythonApplication rec { meta = with stdenv.lib; { description = "An audio tag editor similar to the Windows program, Mp3tag"; - homepage = https://docs.puddletag.net; + homepage = "https://docs.puddletag.net"; license = licenses.gpl3; maintainers = with maintainers; [ peterhoeg ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/pulseaudio-ctl/default.nix b/pkgs/applications/audio/pulseaudio-ctl/default.nix index 6b7d242e1f6..125dafc132e 100644 --- a/pkgs/applications/audio/pulseaudio-ctl/default.nix +++ b/pkgs/applications/audio/pulseaudio-ctl/default.nix @@ -33,7 +33,7 @@ in stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Control pulseaudio volume from the shell or mapped to keyboard shortcuts. No need for alsa-utils."; - homepage = https://bbs.archlinux.org/viewtopic.php?id=124513; + homepage = "https://bbs.archlinux.org/viewtopic.php?id=124513"; license = licenses.mit; maintainers = with maintainers; [ peterhoeg ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/pulseaudio-dlna/zeroconf.nix b/pkgs/applications/audio/pulseaudio-dlna/zeroconf.nix index 328bd8b0b04..efe39aa1600 100644 --- a/pkgs/applications/audio/pulseaudio-dlna/zeroconf.nix +++ b/pkgs/applications/audio/pulseaudio-dlna/zeroconf.nix @@ -23,7 +23,7 @@ buildPythonPackage rec { meta = with stdenv.lib; { description = "A pure python implementation of multicast DNS service discovery"; - homepage = https://github.com/jstasiak/python-zeroconf; + homepage = "https://github.com/jstasiak/python-zeroconf"; license = licenses.lgpl21; maintainers = [ ]; }; diff --git a/pkgs/applications/audio/pulseaudio-modules-bt/default.nix b/pkgs/applications/audio/pulseaudio-modules-bt/default.nix index b8082c12c64..2511cf0f20a 100644 --- a/pkgs/applications/audio/pulseaudio-modules-bt/default.nix +++ b/pkgs/applications/audio/pulseaudio-modules-bt/default.nix @@ -75,7 +75,7 @@ in stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = https://github.com/EHfive/pulseaudio-modules-bt; + homepage = "https://github.com/EHfive/pulseaudio-modules-bt"; description = "LDAC, aptX, aptX HD, AAC codecs (A2DP Audio) support for Linux PulseAudio"; platforms = platforms.linux; license = licenses.mit; diff --git a/pkgs/applications/audio/pulseeffects/default.nix b/pkgs/applications/audio/pulseeffects/default.nix index 00c5af4422d..eaedcb426b8 100644 --- a/pkgs/applications/audio/pulseeffects/default.nix +++ b/pkgs/applications/audio/pulseeffects/default.nix @@ -46,13 +46,13 @@ let ]; in stdenv.mkDerivation rec { pname = "pulseeffects"; - version = "4.7.1"; + version = "4.7.2"; src = fetchFromGitHub { owner = "wwmm"; repo = "pulseeffects"; rev = "v${version}"; - sha256 = "1r1hk5zp2cgrwyqkvp8kg2dkbihdyx3ydzhmirkwya8jag9pwadd"; + sha256 = "1yga25da5bpg12zkikp6dn4wqhn9f7r10awvjzfcz8s6w9xlz6rx"; }; nativeBuildInputs = [ @@ -99,9 +99,14 @@ in stdenv.mkDerivation rec { ) ''; + # Meson is no longer able to pick up Boost automatically. + # https://github.com/NixOS/nixpkgs/issues/86131 + BOOST_INCLUDEDIR = "${stdenv.lib.getDev boost}/include"; + BOOST_LIBRARYDIR = "${stdenv.lib.getLib boost}/lib"; + meta = with stdenv.lib; { description = "Limiter, compressor, reverberation, equalizer and auto volume effects for Pulseaudio applications"; - homepage = https://github.com/wwmm/pulseeffects; + homepage = "https://github.com/wwmm/pulseeffects"; license = licenses.gpl3; maintainers = with maintainers; [ jtojnar ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/puredata/default.nix b/pkgs/applications/audio/puredata/default.nix index 5886a465409..4b221cd1a76 100644 --- a/pkgs/applications/audio/puredata/default.nix +++ b/pkgs/applications/audio/puredata/default.nix @@ -4,11 +4,11 @@ stdenv.mkDerivation rec { pname = "puredata"; - version = "0.49-0"; + version = "0.50-2"; src = fetchurl { url = "http://msp.ucsd.edu/Software/pd-${version}.src.tar.gz"; - sha256 = "18rzqbpgnnvyslap7k0ly87aw1bbxkb0rk5agpr423ibs9slxq6j"; + sha256 = "0dz6r6jy0zfs1xy1xspnrxxks8kddi9c7pxz4vpg2ygwv83ghpg5"; }; nativeBuildInputs = [ autoreconfHook gettext makeWrapper ]; @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = ''A real-time graphical programming environment for audio, video, and graphical processing''; - homepage = http://puredata.info; + homepage = "http://puredata.info"; license = licenses.bsd3; platforms = platforms.linux; maintainers = [ maintainers.goibhniu ]; diff --git a/pkgs/applications/audio/qjackctl/default.nix b/pkgs/applications/audio/qjackctl/default.nix index 753f6fe8206..87666940c15 100644 --- a/pkgs/applications/audio/qjackctl/default.nix +++ b/pkgs/applications/audio/qjackctl/default.nix @@ -1,14 +1,14 @@ { stdenv, mkDerivation, fetchurl, pkgconfig, alsaLib, libjack2, dbus, qtbase, qttools, qtx11extras }: mkDerivation rec { - version = "0.6.1"; + version = "0.6.2"; pname = "qjackctl"; # some dependencies such as killall have to be installed additionally src = fetchurl { url = "mirror://sourceforge/qjackctl/${pname}-${version}.tar.gz"; - sha256 = "09y0s43ypcghnvzsz89mi1qs5bsvn4hpb98lqxmwwsy0ikcv3hny"; + sha256 = "1rjhdyp0wzhlqr4cn80rh1qhby998cpqv81j1bbb9hfsiq77viqy"; }; buildInputs = [ @@ -26,7 +26,7 @@ mkDerivation rec { meta = with stdenv.lib; { description = "A Qt application to control the JACK sound server daemon"; - homepage = http://qjackctl.sourceforge.net/; + homepage = "http://qjackctl.sourceforge.net/"; license = licenses.gpl2Plus; maintainers = [ maintainers.goibhniu ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/qmidiarp/default.nix b/pkgs/applications/audio/qmidiarp/default.nix new file mode 100644 index 00000000000..4bbfe79a2c9 --- /dev/null +++ b/pkgs/applications/audio/qmidiarp/default.nix @@ -0,0 +1,49 @@ +{ stdenv +, fetchgit +, automake +, autoreconfHook +, lv2 +, pkg-config +, qt5 +, alsaLib +, libjack2 +}: + +stdenv.mkDerivation rec { + name = "qmidiarp"; + version = "0.6.5"; + + src = fetchgit { + url = "https://git.code.sf.net/p/qmidiarp/code"; + sha256 = "1g2143gzfbihqr2zi3k2v1yn1x3mwfbb2khmcd4m4cq3hcwhhlx9"; + rev = "qmidiarp-0.6.5"; + }; + + nativeBuildInputs = [ + autoreconfHook + pkg-config + qt5.wrapQtAppsHook + ]; + + buildInputs = [ + alsaLib + lv2 + libjack2 + ] ++ (with qt5; [ + qttools + ]); + + meta = with stdenv.lib; { + description = "An advanced MIDI arpeggiator"; + longDescription = '' + An advanced MIDI arpeggiator, programmable step sequencer and LFO for Linux. + It can hold any number of arpeggiator, sequencer, or LFO modules running in + parallel. + ''; + + homepage = "http://qmidiarp.sourceforge.net"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ sjfloat ]; + }; +} diff --git a/pkgs/applications/audio/qmidinet/default.nix b/pkgs/applications/audio/qmidinet/default.nix index 2b79818543f..479a8a2bb04 100644 --- a/pkgs/applications/audio/qmidinet/default.nix +++ b/pkgs/applications/audio/qmidinet/default.nix @@ -1,12 +1,12 @@ { mkDerivation, lib, fetchurl, pkgconfig, qtbase, qttools, alsaLib, libjack2 }: mkDerivation rec { - version = "0.6.1"; + version = "0.6.2"; pname = "qmidinet"; src = fetchurl { url = "mirror://sourceforge/qmidinet/${pname}-${version}.tar.gz"; - sha256 = "1nvbvx3wg2s6s7r4x6m2pm9nx7pdz00ghw9h10wfqi2s474mwip0"; + sha256 = "0siqzyhwg3l9av7jbca3bqdww7xspjlpi9ya4mkj211xc3a3a1d6"; }; hardeningDisable = [ "format" ]; @@ -17,7 +17,7 @@ mkDerivation rec { meta = with lib; { description = "A MIDI network gateway application that sends and receives MIDI data (ALSA Sequencer and/or JACK MIDI) over the network"; - homepage = http://qmidinet.sourceforge.net/; + homepage = "http://qmidinet.sourceforge.net/"; license = licenses.gpl2Plus; maintainers = [ maintainers.magnetophon ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/qmmp/default.nix b/pkgs/applications/audio/qmmp/default.nix index a941ea485b7..fe7b9f8ba66 100644 --- a/pkgs/applications/audio/qmmp/default.nix +++ b/pkgs/applications/audio/qmmp/default.nix @@ -29,11 +29,11 @@ # handle that. mkDerivation rec { - name = "qmmp-1.3.6"; + name = "qmmp-1.3.7"; src = fetchurl { url = "http://qmmp.ylsoftware.com/files/${name}.tar.bz2"; - sha256 = "0dihy6v6j1cfx4qgwgajdn8rx6nf8x5srk8yjki9xh1mlcaanhp8"; + sha256 = "13mk8p7bfl3fkavpqyhpcxkxb8a4f5d4qc1lasyf7wls3ghrdag7"; }; nativeBuildInputs = [ cmake pkgconfig ]; @@ -55,10 +55,10 @@ mkDerivation rec { meta = with stdenv.lib; { description = "Qt-based audio player that looks like Winamp"; - homepage = http://qmmp.ylsoftware.com/; + homepage = "http://qmmp.ylsoftware.com/"; license = licenses.gpl2; platforms = platforms.linux; maintainers = [ maintainers.bjornfor ]; - repositories.svn = http://qmmp.googlecode.com/svn/; + repositories.svn = "http://qmmp.googlecode.com/svn/"; }; } diff --git a/pkgs/applications/audio/qsampler/default.nix b/pkgs/applications/audio/qsampler/default.nix index 33411002c23..1f65b374838 100644 --- a/pkgs/applications/audio/qsampler/default.nix +++ b/pkgs/applications/audio/qsampler/default.nix @@ -18,7 +18,7 @@ mkDerivation rec { enableParallelBuilding = true; meta = with stdenv.lib; { - homepage = http://www.linuxsampler.org; + homepage = "http://www.linuxsampler.org"; description = "Graphical frontend to LinuxSampler"; license = licenses.gpl2; maintainers = [ maintainers.goibhniu ]; diff --git a/pkgs/applications/audio/qsynth/default.nix b/pkgs/applications/audio/qsynth/default.nix index 29f5704c730..5da8f4cd462 100644 --- a/pkgs/applications/audio/qsynth/default.nix +++ b/pkgs/applications/audio/qsynth/default.nix @@ -4,11 +4,11 @@ mkDerivation rec { pname = "qsynth"; - version = "0.6.1"; + version = "0.6.2"; src = fetchurl { url = "mirror://sourceforge/qsynth/${pname}-${version}.tar.gz"; - sha256 = "12jhfan81a10vbqfky5nmam3lk6d0i4654mm192v68q5r867xmcl"; + sha256 = "0cp6vrqrj37rv3a7qfvqrg64j7zwpfj60y5b83mlkzvmg1sgjnlv"; }; nativeBuildInputs = [ autoconf pkgconfig ]; @@ -19,7 +19,7 @@ mkDerivation rec { meta = with stdenv.lib; { description = "Fluidsynth GUI"; - homepage = https://sourceforge.net/projects/qsynth; + homepage = "https://sourceforge.net/projects/qsynth"; license = licenses.gpl2Plus; maintainers = with maintainers; [ goibhniu ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/qtractor/default.nix b/pkgs/applications/audio/qtractor/default.nix index 4076692e7fe..344927bce77 100644 --- a/pkgs/applications/audio/qtractor/default.nix +++ b/pkgs/applications/audio/qtractor/default.nix @@ -5,11 +5,11 @@ stdenv.mkDerivation rec { pname = "qtractor"; - version = "0.9.12"; + version = "0.9.13"; src = fetchurl { url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz"; - sha256 = "06493sf4hr178jkvric3rmc2phh1ph2jlyh8kl9z248amq3zfnhy"; + sha256 = "1hwxdjlzsf1z6xl82s4bdfxa2bfisklrfx361zbzskmg9iymw1gy"; }; nativeBuildInputs = [ @@ -23,9 +23,11 @@ stdenv.mkDerivation rec { suil ]; + enableParallelBuilding = true; + meta = with stdenv.lib; { description = "Audio/MIDI multi-track sequencer"; - homepage = http://qtractor.sourceforge.net; + homepage = "http://qtractor.sourceforge.net"; license = licenses.gpl2Plus; platforms = platforms.linux; maintainers = [ maintainers.goibhniu ]; diff --git a/pkgs/applications/audio/qtscrobbler/default.nix b/pkgs/applications/audio/qtscrobbler/default.nix index 68e8e6402ac..5b84989a7c4 100644 --- a/pkgs/applications/audio/qtscrobbler/default.nix +++ b/pkgs/applications/audio/qtscrobbler/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { It is able to gather this information from Apple iPods or DAPs running the Rockbox replacement firmware. ''; - homepage = http://qtscrob.sourceforge.net; + homepage = "http://qtscrob.sourceforge.net"; license = licenses.gpl2; maintainers = [ maintainers.vanzef ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/quodlibet/default.nix b/pkgs/applications/audio/quodlibet/default.nix index 597cf68f4d0..704e20cc8c5 100644 --- a/pkgs/applications/audio/quodlibet/default.nix +++ b/pkgs/applications/audio/quodlibet/default.nix @@ -74,6 +74,6 @@ python3.pkgs.buildPythonApplication rec { ''; maintainers = with maintainers; [ coroa sauyon ]; - homepage = https://quodlibet.readthedocs.io/en/latest/; + homepage = "https://quodlibet.readthedocs.io/en/latest/"; }; } diff --git a/pkgs/applications/audio/radiotray-ng/default.nix b/pkgs/applications/audio/radiotray-ng/default.nix index a64e407b39b..014906594a7 100644 --- a/pkgs/applications/audio/radiotray-ng/default.nix +++ b/pkgs/applications/audio/radiotray-ng/default.nix @@ -92,7 +92,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "An internet radio player for linux"; - homepage = https://github.com/ebruck/radiotray-ng; + homepage = "https://github.com/ebruck/radiotray-ng"; license = licenses.gpl3; maintainers = with maintainers; [ dtzWill ]; platforms = platforms.all; diff --git a/pkgs/applications/audio/rakarrack/default.nix b/pkgs/applications/audio/rakarrack/default.nix index 36302458a75..4548f9ba624 100644 --- a/pkgs/applications/audio/rakarrack/default.nix +++ b/pkgs/applications/audio/rakarrack/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Multi-effects processor emulating a guitar effects pedalboard"; - homepage = http://rakarrack.sourceforge.net; + homepage = "http://rakarrack.sourceforge.net"; license = licenses.gpl2; platforms = platforms.linux; maintainers = [ maintainers.goibhniu ]; diff --git a/pkgs/applications/audio/reaper/default.nix b/pkgs/applications/audio/reaper/default.nix index 236c42b5293..2e63a3e8c7c 100644 --- a/pkgs/applications/audio/reaper/default.nix +++ b/pkgs/applications/audio/reaper/default.nix @@ -52,7 +52,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Digital audio workstation"; - homepage = https://www.reaper.fm/; + homepage = "https://www.reaper.fm/"; license = licenses.unfree; platforms = [ "x86_64-linux" ]; maintainers = with maintainers; [ jfrankenau ]; diff --git a/pkgs/applications/audio/renoise/default.nix b/pkgs/applications/audio/renoise/default.nix index 2fb1943e0e5..1cbd5b3afa2 100644 --- a/pkgs/applications/audio/renoise/default.nix +++ b/pkgs/applications/audio/renoise/default.nix @@ -60,7 +60,7 @@ stdenv.mkDerivation rec { meta = { description = "Modern tracker-based DAW"; - homepage = https://www.renoise.com/; + homepage = "https://www.renoise.com/"; license = licenses.unfree; maintainers = []; platforms = [ "x86_64-linux" ]; diff --git a/pkgs/applications/audio/rhvoice/default.nix b/pkgs/applications/audio/rhvoice/default.nix index e3eb750496b..7a0a8a59a08 100644 --- a/pkgs/applications/audio/rhvoice/default.nix +++ b/pkgs/applications/audio/rhvoice/default.nix @@ -15,7 +15,7 @@ in stdenv.mkDerivation { }; nativeBuildInputs = [ - scons pkgconfig + scons.py2 pkgconfig ]; buildInputs = [ @@ -33,7 +33,7 @@ in stdenv.mkDerivation { meta = { description = "A free and open source speech synthesizer for Russian language and others"; - homepage = https://github.com/Olga-Yakovleva/RHVoice/wiki; + homepage = "https://github.com/Olga-Yakovleva/RHVoice/wiki"; license = lib.licenses.gpl3; maintainers = with lib.maintainers; [ berce ]; platforms = with lib.platforms; all; diff --git a/pkgs/applications/audio/rhythmbox/default.nix b/pkgs/applications/audio/rhythmbox/default.nix index b6bff79fa03..79560451e54 100644 --- a/pkgs/applications/audio/rhythmbox/default.nix +++ b/pkgs/applications/audio/rhythmbox/default.nix @@ -58,7 +58,7 @@ in stdenv.mkDerivation rec { }; meta = with stdenv.lib; { - homepage = https://wiki.gnome.org/Apps/Rhythmbox; + homepage = "https://wiki.gnome.org/Apps/Rhythmbox"; description = "A music playing application for GNOME"; license = licenses.gpl2; platforms = platforms.linux; diff --git a/pkgs/applications/audio/rkrlv2/default.nix b/pkgs/applications/audio/rkrlv2/default.nix index 0ff23102e75..59979c41083 100644 --- a/pkgs/applications/audio/rkrlv2/default.nix +++ b/pkgs/applications/audio/rkrlv2/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { meta = { description = "Rakarrak effects ported to LV2"; - homepage = https://github.com/ssj71/rkrlv2; + homepage = "https://github.com/ssj71/rkrlv2"; license = stdenv.lib.licenses.gpl3; maintainers = [ stdenv.lib.maintainers.joelmo ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/rofi-mpd/default.nix b/pkgs/applications/audio/rofi-mpd/default.nix index 97c737675ad..ef57466ec84 100644 --- a/pkgs/applications/audio/rofi-mpd/default.nix +++ b/pkgs/applications/audio/rofi-mpd/default.nix @@ -2,13 +2,13 @@ python3Packages.buildPythonApplication rec { pname = "rofi-mpd"; - version = "2.0.1"; + version = "2.2.0"; src = fetchFromGitHub { owner = "JakeStanger"; repo = "Rofi_MPD"; rev = "v${version}"; - sha256 = "12zzx0m2nwyzxzzqgzq30a27k015kcw4ylvs7cyalf5gf6sg27kl"; + sha256 = "1b0y8706mmrxhiyz8g6znisllc35j8g7sz8gfjll9svysjmvb6lc"; }; propagatedBuildInputs = with python3Packages; [ mutagen mpd2 toml appdirs ]; diff --git a/pkgs/applications/audio/rosegarden/default.nix b/pkgs/applications/audio/rosegarden/default.nix index 8d8e3e1b6c0..921c8fff67a 100644 --- a/pkgs/applications/audio/rosegarden/default.nix +++ b/pkgs/applications/audio/rosegarden/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl, cmake, makedepend, perl, pkgconfig, qttools, wrapQtAppsHook , dssi, fftwSinglePrec, ladspaH, ladspaPlugins, libjack2, alsaLib -, liblo, liblrdf, libsamplerate, libsndfile, lirc ? null, qtbase }: +, liblo, libsamplerate, libsndfile, lirc ? null, lrdf, qtbase }: stdenv.mkDerivation (rec { version = "19.12"; @@ -25,10 +25,10 @@ stdenv.mkDerivation (rec { ladspaPlugins libjack2 liblo - liblrdf libsamplerate libsndfile lirc + lrdf qtbase alsaLib ]; @@ -36,7 +36,7 @@ stdenv.mkDerivation (rec { enableParallelBuilding = true; meta = with stdenv.lib; { - homepage = https://www.rosegardenmusic.com/; + homepage = "https://www.rosegardenmusic.com/"; description = "Music composition and editing environment"; longDescription = '' Rosegarden is a music composition and editing environment based around diff --git a/pkgs/applications/audio/samplv1/default.nix b/pkgs/applications/audio/samplv1/default.nix index 8c8e5407f7a..86f8f666d80 100644 --- a/pkgs/applications/audio/samplv1/default.nix +++ b/pkgs/applications/audio/samplv1/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "samplv1"; - version = "0.9.12"; + version = "0.9.13"; src = fetchurl { url = "mirror://sourceforge/samplv1/${pname}-${version}.tar.gz"; - sha256 = "0xzjxiqzcf1ygabrjsy0iachhnpy85rp9519fmj2f568r6ml6hzg"; + sha256 = "0clsp6s5qfnh0xaxbd35vq2ppi72q9dfayrzlgl73800a8p7gh9m"; }; buildInputs = [ libjack2 alsaLib liblo libsndfile lv2 qt5.qtbase qt5.qttools]; @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "An old-school all-digital polyphonic sampler synthesizer with stereo fx"; - homepage = http://samplv1.sourceforge.net/; + homepage = "http://samplv1.sourceforge.net/"; license = licenses.gpl2Plus; platforms = platforms.linux; maintainers = [ maintainers.goibhniu ]; diff --git a/pkgs/applications/audio/schismtracker/default.nix b/pkgs/applications/audio/schismtracker/default.nix index f902b2dd41b..36125489e3a 100644 --- a/pkgs/applications/audio/schismtracker/default.nix +++ b/pkgs/applications/audio/schismtracker/default.nix @@ -1,30 +1,29 @@ -{ stdenv, fetchurl, alsaLib, python, SDL }: +{ stdenv, fetchFromGitHub +, autoreconfHook +, alsaLib, python, SDL }: stdenv.mkDerivation rec { - version = "20120105"; pname = "schismtracker"; + version = "20190805"; - src = fetchurl { - url = "http://schismtracker.org/dl/${pname}-${version}.tar.bz2"; - sha256 = "1ny7wv2wxm1av299wvpskall6438wjjpadphmqc7c0h6d0zg5kii"; + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = version; + sha256 = "0qqps20vvn3rgpg8174bjrrm38gqcci2z5z4c1r1vhbccclahgsd"; }; - preConfigure = '' - # Build fails on Linux with windres. - export ac_cv_prog_ac_ct_WINDRES= - ''; - configureFlags = [ "--enable-dependency-tracking" ]; - buildInputs = [ alsaLib python SDL ]; + nativeBuildInputs = [ autoreconfHook python ]; - enableParallelBuilding = true; + buildInputs = [ alsaLib SDL ]; - meta = { + meta = with stdenv.lib; { description = "Music tracker application, free reimplementation of Impulse Tracker"; - homepage = http://schismtracker.org/; - license = stdenv.lib.licenses.gpl2; + homepage = "http://schismtracker.org/"; + license = licenses.gpl2; platforms = [ "x86_64-linux" "i686-linux" ]; - maintainers = [ stdenv.lib.maintainers.ftrvxmtrx ]; + maintainers = with maintainers; [ ftrvxmtrx ]; }; } diff --git a/pkgs/applications/audio/seq24/default.nix b/pkgs/applications/audio/seq24/default.nix index 9bab024f021..c8347d70b1d 100644 --- a/pkgs/applications/audio/seq24/default.nix +++ b/pkgs/applications/audio/seq24/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Minimal loop based midi sequencer"; - homepage = http://www.filter24.org/seq24; + homepage = "http://www.filter24.org/seq24"; license = licenses.gpl2; platforms = platforms.linux; maintainers = with maintainers; [ goibhniu ]; diff --git a/pkgs/applications/audio/sfxr-qt/default.nix b/pkgs/applications/audio/sfxr-qt/default.nix index 615a8a8c660..165f8446c76 100644 --- a/pkgs/applications/audio/sfxr-qt/default.nix +++ b/pkgs/applications/audio/sfxr-qt/default.nix @@ -10,12 +10,12 @@ mkDerivation rec { pname = "sfxr-qt"; - version = "1.2.0"; + version = "1.3.0"; src = fetchFromGitHub { owner = "agateau"; repo = "sfxr-qt"; rev = version; - sha256 = "1ndw1dcmzvkrc6gnb0y057zb4lqlhwrv18jlbx26w3s4xrbxqr41"; + sha256 = "15yjgjl1c5k816mnpc09104zq0ack2a3mjsxmhcik7cmjkfiipr5"; fetchSubmodules = true; }; nativeBuildInputs = [ @@ -27,10 +27,9 @@ mkDerivation rec { qtquickcontrols2 SDL ]; - configurePhase = "cmake . -DCMAKE_INSTALL_PREFIX=$out"; meta = with lib; { - homepage = https://github.com/agateau/sfxr-qt; + homepage = "https://github.com/agateau/sfxr-qt"; description = "A sound effect generator, QtQuick port of sfxr"; license = licenses.gpl2; maintainers = with maintainers; [ fgaz ]; diff --git a/pkgs/applications/audio/shntool/default.nix b/pkgs/applications/audio/shntool/default.nix index e3bfc60a40a..de18f3c2ce8 100644 --- a/pkgs/applications/audio/shntool/default.nix +++ b/pkgs/applications/audio/shntool/default.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation { pname = "shntool"; src = fetchurl { - url = http://www.etree.org/shnutils/shntool/dist/src/shntool-3.0.10.tar.gz; + url = "http://www.etree.org/shnutils/shntool/dist/src/shntool-3.0.10.tar.gz"; sha256 = "00i1rbjaaws3drkhiczaign3lnbhr161b7rbnjr8z83w8yn2wc3l"; }; @@ -13,7 +13,7 @@ stdenv.mkDerivation { meta = { description = "Multi-purpose WAVE data processing and reporting utility"; - homepage = http://www.etree.org/shnutils/shntool/; + homepage = "http://www.etree.org/shnutils/shntool/"; license = stdenv.lib.licenses.gpl2Plus; platforms = stdenv.lib.platforms.all; maintainers = with stdenv.lib.maintainers; [ jcumming ]; diff --git a/pkgs/applications/audio/shortwave/default.nix b/pkgs/applications/audio/shortwave/default.nix new file mode 100644 index 00000000000..d26d314cd3e --- /dev/null +++ b/pkgs/applications/audio/shortwave/default.nix @@ -0,0 +1,87 @@ +{ stdenv +, fetchFromGitLab +, cargo +, dbus +, desktop-file-utils +, gdk-pixbuf +, gettext +, glib +, gst_all_1 +, gtk3 +, libhandy +, meson +, ninja +, openssl +, pkg-config +, python3 +, rust +, rustc +, rustPlatform +, sqlite +, wrapGAppsHook +}: + +rustPlatform.buildRustPackage rec { + pname = "shortwave"; + version = "1.0.1"; + + src = fetchFromGitLab { + domain = "gitlab.gnome.org"; + owner = "World"; + repo = "Shortwave"; + rev = version; + sha256 = "13lhlh75vw02vkcknl4nvy0yvpdf0qx811mmyja8bzs4rj1j9kr8"; + }; + + cargoSha256 = "0aph5z54a6i5p8ga5ghhx1c9hjc8zdw5pkv9inmanca0bq3hkdlh"; + + nativeBuildInputs = [ + cargo + desktop-file-utils + gettext + glib # for glib-compile-schemas + meson + ninja + pkg-config + python3 + rustc + wrapGAppsHook + ]; + + buildInputs = [ + dbus + gdk-pixbuf + glib + gtk3 + libhandy + openssl + sqlite + ] ++ (with gst_all_1; [ + gstreamer + gst-plugins-base + gst-plugins-good + gst-plugins-bad + ]); + + # Don't use buildRustPackage phases, only use it for rust deps setup + configurePhase = null; + buildPhase = null; + checkPhase = null; + installPhase = null; + + postPatch = '' + patchShebangs build-aux/meson/postinstall.py + ''; + + meta = with stdenv.lib; { + homepage = "https://gitlab.gnome.org/World/Shortwave"; + description = "Find and listen to internet radio stations"; + longDescription = '' + Shortwave is a streaming audio player designed for the GNOME + desktop. It is the successor to the older Gradio application. + ''; + maintainers = with maintainers; [ lasandell ]; + license = licenses.gpl3Plus; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/audio/sidplayfp/default.nix b/pkgs/applications/audio/sidplayfp/default.nix index aff8c173d9f..b0a50bbf128 100644 --- a/pkgs/applications/audio/sidplayfp/default.nix +++ b/pkgs/applications/audio/sidplayfp/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A SID player using libsidplayfp"; - homepage = https://sourceforge.net/projects/sidplay-residfp/; + homepage = "https://sourceforge.net/projects/sidplay-residfp/"; license = with licenses; [ gpl2Plus ]; maintainers = with maintainers; [ dezgeg ]; platforms = with platforms; linux; diff --git a/pkgs/applications/audio/sisco.lv2/default.nix b/pkgs/applications/audio/sisco.lv2/default.nix index f95655f5e9a..07215fc42f8 100644 --- a/pkgs/applications/audio/sisco.lv2/default.nix +++ b/pkgs/applications/audio/sisco.lv2/default.nix @@ -36,7 +36,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Simple audio oscilloscope with variable time scale, triggering, cursors and numeric readout in LV2 plugin format"; - homepage = http://x42.github.io/sisco.lv2/; + homepage = "http://x42.github.io/sisco.lv2/"; license = licenses.gpl2; maintainers = [ maintainers.e-user ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/snapcast/default.nix b/pkgs/applications/audio/snapcast/default.nix index 21a36cecbe5..531a633f05d 100644 --- a/pkgs/applications/audio/snapcast/default.nix +++ b/pkgs/applications/audio/snapcast/default.nix @@ -59,7 +59,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Synchronous multi-room audio player"; - homepage = https://github.com/badaix/snapcast; + homepage = "https://github.com/badaix/snapcast"; maintainers = with maintainers; [ fpletz ]; license = licenses.gpl3; }; diff --git a/pkgs/applications/audio/snd/default.nix b/pkgs/applications/audio/snd/default.nix index cfe79f4e361..9bc8fcb6694 100644 --- a/pkgs/applications/audio/snd/default.nix +++ b/pkgs/applications/audio/snd/default.nix @@ -4,11 +4,11 @@ }: stdenv.mkDerivation rec { - name = "snd-20.1"; + name = "snd-20.2"; src = fetchurl { url = "mirror://sourceforge/snd/${name}.tar.gz"; - sha256 = "0v7zhavkkbh1bagzy3l08kb235hhdqn28y0m4znkd3k31p4l4dz8"; + sha256 = "0ip4sfyxqlbghlggipmvvqjqs1a7qas0zcmzw8d1nwg6krjkfj0r"; }; nativeBuildInputs = [ pkgconfig ]; diff --git a/pkgs/applications/audio/sndpeek/default.nix b/pkgs/applications/audio/sndpeek/default.nix index 376aadc7385..d239fda11ae 100644 --- a/pkgs/applications/audio/sndpeek/default.nix +++ b/pkgs/applications/audio/sndpeek/default.nix @@ -49,7 +49,7 @@ stdenv.mkDerivation rec { * available on MacOS X, Linux, and Windows under GPL * part of the sndtools distribution. ''; - homepage = https://soundlab.cs.princeton.edu/software/sndpeek/; + homepage = "https://soundlab.cs.princeton.edu/software/sndpeek/"; license = licenses.gpl2; maintainers = [ maintainers.laikq ]; }; diff --git a/pkgs/applications/audio/sonata/default.nix b/pkgs/applications/audio/sonata/default.nix index b9293fe2729..68eefadf411 100644 --- a/pkgs/applications/audio/sonata/default.nix +++ b/pkgs/applications/audio/sonata/default.nix @@ -61,7 +61,7 @@ in buildPythonApplication rec { - Commandline control - Available in 24 languages ''; - homepage = https://www.nongnu.org/sonata/; + homepage = "https://www.nongnu.org/sonata/"; license = stdenv.lib.licenses.gpl3; platforms = stdenv.lib.platforms.linux; maintainers = [ stdenv.lib.maintainers.rvl ]; diff --git a/pkgs/applications/audio/sonic-lineup/default.nix b/pkgs/applications/audio/sonic-lineup/default.nix index 4ad9e51b645..b837eb07cf1 100644 --- a/pkgs/applications/audio/sonic-lineup/default.nix +++ b/pkgs/applications/audio/sonic-lineup/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl, alsaLib, boost, bzip2, fftw, fftwFloat, libfishsound -, libid3tag, liblo, liblrdf, libmad, liboggz, libpulseaudio, libsamplerate -, libsndfile, opusfile, portaudio, rubberband, serd, sord, vampSDK, capnproto +, libid3tag, liblo, libmad, liboggz, libpulseaudio, libsamplerate +, libsndfile, lrdf, opusfile, portaudio, rubberband, serd, sord, capnproto , wrapQtAppsHook, pkgconfig }: @@ -14,8 +14,8 @@ stdenv.mkDerivation rec { }; buildInputs = - [ alsaLib boost bzip2 fftw fftwFloat libfishsound libid3tag liblo liblrdf - libmad liboggz libpulseaudio libsamplerate libsndfile opusfile pkgconfig + [ alsaLib boost bzip2 fftw fftwFloat libfishsound libid3tag liblo + libmad liboggz libpulseaudio libsamplerate libsndfile lrdf opusfile portaudio rubberband serd sord capnproto ]; @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Comparative visualisation of related audio recordings"; - homepage = https://www.sonicvisualiser.org/sonic-lineup/; + homepage = "https://www.sonicvisualiser.org/sonic-lineup/"; license = licenses.gpl2Plus; maintainers = [ maintainers.vandenoever ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/sonic-visualiser/default.nix b/pkgs/applications/audio/sonic-visualiser/default.nix index d1c981de2d5..e8b6a4d4313 100644 --- a/pkgs/applications/audio/sonic-visualiser/default.nix +++ b/pkgs/applications/audio/sonic-visualiser/default.nix @@ -1,9 +1,9 @@ # TODO add plugins having various licenses, see http://www.vamp-plugins.org/download.html { stdenv, fetchurl, alsaLib, bzip2, fftw, libjack2, libX11, liblo -, libmad, libogg, librdf, librdf_raptor, librdf_rasqal, libsamplerate +, libmad, libogg, lrdf, librdf_raptor, librdf_rasqal, libsamplerate , libsndfile, pkgconfig, libpulseaudio, qtbase, qtsvg, redland -, rubberband, serd, sord, vampSDK, fftwFloat +, rubberband, serd, sord, vamp-plugin-sdk, fftwFloat , capnproto, liboggz, libfishsound, libid3tag, opusfile , wrapQtAppsHook }: @@ -18,8 +18,8 @@ stdenv.mkDerivation rec { }; buildInputs = - [ libsndfile qtbase qtsvg fftw fftwFloat bzip2 librdf rubberband - libsamplerate vampSDK alsaLib librdf_raptor librdf_rasqal redland + [ libsndfile qtbase qtsvg fftw fftwFloat bzip2 lrdf rubberband + libsamplerate vamp-plugin-sdk alsaLib librdf_raptor librdf_rasqal redland serd sord # optional @@ -48,7 +48,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "View and analyse contents of music audio files"; - homepage = https://www.sonicvisualiser.org/; + homepage = "https://www.sonicvisualiser.org/"; license = licenses.gpl2Plus; maintainers = [ maintainers.goibhniu maintainers.marcweber ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/sooperlooper/default.nix b/pkgs/applications/audio/sooperlooper/default.nix index 768b40a1138..3fb111db851 100644 --- a/pkgs/applications/audio/sooperlooper/default.nix +++ b/pkgs/applications/audio/sooperlooper/default.nix @@ -37,7 +37,7 @@ stdenv.mkDerivation rec { ''; version = version; - homepage = http://essej.net/sooperlooper/index.html; + homepage = "http://essej.net/sooperlooper/index.html"; license = stdenv.lib.licenses.gpl2; maintainers = [ stdenv.lib.maintainers.magnetophon ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/sorcer/default.nix b/pkgs/applications/audio/sorcer/default.nix index 5d8ae0928c9..7601f942868 100644 --- a/pkgs/applications/audio/sorcer/default.nix +++ b/pkgs/applications/audio/sorcer/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = http://openavproductions.com/sorcer/; + homepage = "http://openavproductions.com/sorcer/"; description = "A wavetable LV2 plugin synth, targeted at the electronic / dubstep genre"; license = licenses.gpl3; maintainers = [ maintainers.magnetophon ]; diff --git a/pkgs/applications/audio/sound-juicer/default.nix b/pkgs/applications/audio/sound-juicer/default.nix index 7f22a03c1bb..dcad0cec1e8 100644 --- a/pkgs/applications/audio/sound-juicer/default.nix +++ b/pkgs/applications/audio/sound-juicer/default.nix @@ -27,13 +27,12 @@ in stdenv.mkDerivation rec{ passthru = { updateScript = gnome3.updateScript { packageName = pname; - attrPath = "gnome3.${pname}"; }; }; meta = with stdenv.lib; { description = "A Gnome CD Ripper"; - homepage = https://wiki.gnome.org/Apps/SoundJuicer; + homepage = "https://wiki.gnome.org/Apps/SoundJuicer"; maintainers = [ maintainers.bdimcheff ]; license = licenses.gpl2; platforms = platforms.linux; diff --git a/pkgs/applications/audio/soundscape-renderer/default.nix b/pkgs/applications/audio/soundscape-renderer/default.nix index 5b5f01eef5c..741211bd90d 100644 --- a/pkgs/applications/audio/soundscape-renderer/default.nix +++ b/pkgs/applications/audio/soundscape-renderer/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation { version = "2016-11-03"; src = fetchgit { - url = https://github.com/SoundScapeRenderer/ssr; + url = "https://github.com/SoundScapeRenderer/ssr"; rev = "0dd0136dd24e47b63d8a4e05de467f5c7b047ec9"; sha256 = "095x2spv9bmg6pi71mpajnghbqj58ziflg16f9854awx0qp9d8x7"; }; @@ -45,7 +45,7 @@ stdenv.mkDerivation { ''; meta = { - homepage = http://spatialaudio.net/ssr/; + homepage = "http://spatialaudio.net/ssr/"; description = "The SoundScape Renderer (SSR) is a tool for real-time spatial audio reproduction"; license = stdenv.lib.licenses.gpl3; maintainers = [ stdenv.lib.maintainers.fridh ]; diff --git a/pkgs/applications/audio/soundtracker/default.nix b/pkgs/applications/audio/soundtracker/default.nix new file mode 100644 index 00000000000..ce73203c959 --- /dev/null +++ b/pkgs/applications/audio/soundtracker/default.nix @@ -0,0 +1,51 @@ +{ stdenv +, fetchurl +, pkg-config +, autoconf +, gtk2 +, alsaLib +, SDL +, jack2 +, goocanvas # graphical envelope editing +}: + +stdenv.mkDerivation rec { + pname = "soundtracker"; + version = "1.0.0.1"; + + src = fetchurl { + # Past releases get moved to the "old releases" directory. + # Only the latest release (currently a prerelease) is at the top level. + url = "mirror://sourceforge/soundtracker/old%20releases/soundtracker-${version}.tar.bz2"; + sha256 = "1ggliswz5ngmlnrnyhv3x1arh5w77an0ww9p53cddp9aas5q11jm"; + }; + + nativeBuildInputs = [ + pkg-config + autoconf + ]; + buildInputs = [ + gtk2 + SDL + jack2 + goocanvas + ] ++ stdenv.lib.optional stdenv.isLinux alsaLib; + + meta = with stdenv.lib; { + description = "A music tracking tool similar in design to the DOS program FastTracker and the Amiga legend ProTracker"; + longDescription = '' + SoundTracker is a pattern-oriented music editor (similar to the DOS + program 'FastTracker'). Samples are lined up on tracks and patterns + which are then arranged to a song. Supported module formats are XM and + MOD; the player code is the one from OpenCP. A basic sample recorder + and editor is also included. + ''; + homepage = "http://www.soundtracker.org/"; + downloadPage = "https://sourceforge.net/projects/soundtracker/files/"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ fgaz ]; + platforms = platforms.all; + # gdk/gdkx.h not found + broken = stdenv.isDarwin; + }; +} diff --git a/pkgs/applications/audio/spectmorph/default.nix b/pkgs/applications/audio/spectmorph/default.nix index a4f48aa0c21..d8209dad02d 100644 --- a/pkgs/applications/audio/spectmorph/default.nix +++ b/pkgs/applications/audio/spectmorph/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Allows to analyze samples of musical instruments, and to combine them (morphing) to construct hybrid sounds"; - homepage = http://spectmorph.org; + homepage = "http://spectmorph.org"; license = licenses.gpl3; platforms = [ "x86_64-linux" "i686-linux" ]; maintainers = [ maintainers.magnetophon ]; diff --git a/pkgs/applications/audio/spectrojack/default.nix b/pkgs/applications/audio/spectrojack/default.nix index 4c1682b1e0b..35534750d0c 100644 --- a/pkgs/applications/audio/spectrojack/default.nix +++ b/pkgs/applications/audio/spectrojack/default.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { meta = { description = "A little spectrogram/audiogram/sonogram/whatever for JACK"; - homepage = http://sed.free.fr/spectrojack; + homepage = "http://sed.free.fr/spectrojack"; license = stdenv.lib.licenses.publicDomain; maintainers = with stdenv.lib.maintainers; [ sleexyz ]; platforms = with stdenv.lib.platforms; linux; diff --git a/pkgs/applications/audio/speech-denoiser/default.nix b/pkgs/applications/audio/speech-denoiser/default.nix index 6598d24fb07..706a6956c5d 100644 --- a/pkgs/applications/audio/speech-denoiser/default.nix +++ b/pkgs/applications/audio/speech-denoiser/default.nix @@ -34,7 +34,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Speech denoise lv2 plugin based on RNNoise library"; - homepage = https://github.com/lucianodato/speech-denoiser; + homepage = "https://github.com/lucianodato/speech-denoiser"; license = licenses.lgpl3; maintainers = [ maintainers.magnetophon ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/spek/default.nix b/pkgs/applications/audio/spek/default.nix index f4922e388c4..88b22c59ae5 100644 --- a/pkgs/applications/audio/spek/default.nix +++ b/pkgs/applications/audio/spek/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Analyse your audio files by showing their spectrogram"; - homepage = http://spek.cc/; + homepage = "http://spek.cc/"; license = licenses.gpl3; platforms = platforms.all; maintainers = [ maintainers.bjornfor ]; diff --git a/pkgs/applications/audio/split2flac/default.nix b/pkgs/applications/audio/split2flac/default.nix index 3c9565df919..efad434e307 100644 --- a/pkgs/applications/audio/split2flac/default.nix +++ b/pkgs/applications/audio/split2flac/default.nix @@ -54,7 +54,7 @@ in stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Split flac/ape/wv/wav + cue sheet into separate tracks"; - homepage = https://github.com/ftrvxmtrx/split2flac; + homepage = "https://github.com/ftrvxmtrx/split2flac"; license = licenses.mit; platforms = platforms.all; maintainers = with maintainers; [ jfrankenau ]; diff --git a/pkgs/applications/audio/spotify-tui/default.nix b/pkgs/applications/audio/spotify-tui/default.nix index 94f08a5f7a8..d29e9e33568 100644 --- a/pkgs/applications/audio/spotify-tui/default.nix +++ b/pkgs/applications/audio/spotify-tui/default.nix @@ -2,16 +2,16 @@ rustPlatform.buildRustPackage rec { pname = "spotify-tui"; - version = "0.16.0"; + version = "0.18.0"; src = fetchFromGitHub { owner = "Rigellute"; repo = "spotify-tui"; rev = "v${version}"; - sha256 = "0fmj25zjg12v0kyanic343lrdhxkh290v88qiz6ac47g8bdy3c83"; + sha256 = "15icg332iyacdn4ydr4nivblayg4xkcnjh4f0sjnhj4q173v8fq2"; }; - cargoSha256 = "1n8aacy0hapjm10hmgqm07rb5c0ngmzr1s116pspsl7cdszza6xi"; + cargoSha256 = "0rw8pj74k88rvcr18837g356lwsn2vdq384yma9df462xd2cw823"; nativeBuildInputs = [ pkgconfig ] ++ stdenv.lib.optionals stdenv.isLinux [ python3 ]; buildInputs = [ openssl ] @@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec { meta = with stdenv.lib; { description = "Spotify for the terminal written in Rust"; - homepage = https://github.com/Rigellute/spotify-tui; + homepage = "https://github.com/Rigellute/spotify-tui"; changelog = "https://github.com/Rigellute/spotify-tui/releases/tag/v${version}"; license = licenses.mit; maintainers = with maintainers; [ jwijenbergh ]; diff --git a/pkgs/applications/audio/spotify/default.nix b/pkgs/applications/audio/spotify/default.nix index eb2055ec7c1..245d96dee01 100644 --- a/pkgs/applications/audio/spotify/default.nix +++ b/pkgs/applications/audio/spotify/default.nix @@ -158,7 +158,7 @@ stdenv.mkDerivation { ''; meta = with stdenv.lib; { - homepage = https://www.spotify.com/; + homepage = "https://www.spotify.com/"; description = "Play music from the Spotify music service"; license = licenses.unfree; maintainers = with maintainers; [ eelco ftrvxmtrx sheenobu mudri timokau ma27 ]; diff --git a/pkgs/applications/audio/spotifyd/default.nix b/pkgs/applications/audio/spotifyd/default.nix index 263fe986df3..121f9cbc960 100644 --- a/pkgs/applications/audio/spotifyd/default.nix +++ b/pkgs/applications/audio/spotifyd/default.nix @@ -2,6 +2,9 @@ , withALSA ? true, alsaLib ? null , withPulseAudio ? false, libpulseaudio ? null , withPortAudio ? false, portaudio ? null +, withMpris ? false +, withKeyring ? false +, dbus ? null }: rustPlatform.buildRustPackage rec { @@ -20,7 +23,7 @@ rustPlatform.buildRustPackage rec { cargoBuildFlags = [ "--no-default-features" "--features" - "${stdenv.lib.optionalString withALSA "alsa_backend,"}${stdenv.lib.optionalString withPulseAudio "pulseaudio_backend,"}${stdenv.lib.optionalString withPortAudio "portaudio_backend,"}" + "${stdenv.lib.optionalString withALSA "alsa_backend,"}${stdenv.lib.optionalString withPulseAudio "pulseaudio_backend,"}${stdenv.lib.optionalString withPortAudio "portaudio_backend,"}${stdenv.lib.optionalString withMpris "dbus_mpris,"}${stdenv.lib.optionalString withKeyring "dbus_keyring,"}" ]; nativeBuildInputs = [ pkgconfig ]; @@ -28,7 +31,8 @@ rustPlatform.buildRustPackage rec { buildInputs = [ openssl ] ++ stdenv.lib.optional withALSA alsaLib ++ stdenv.lib.optional withPulseAudio libpulseaudio - ++ stdenv.lib.optional withPortAudio portaudio; + ++ stdenv.lib.optional withPortAudio portaudio + ++ stdenv.lib.optional (withMpris || withKeyring) dbus; doCheck = false; diff --git a/pkgs/applications/audio/spotifywm/default.nix b/pkgs/applications/audio/spotifywm/default.nix index 2380c8e5d9e..a51e82f29c4 100644 --- a/pkgs/applications/audio/spotifywm/default.nix +++ b/pkgs/applications/audio/spotifywm/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation { ''; meta = with stdenv.lib; { - homepage = https://github.com/dasJ/spotifywm; + homepage = "https://github.com/dasJ/spotifywm"; description = "Wrapper around Spotify that correctly sets class name before opening the window"; license = licenses.mit; platforms = platforms.linux; diff --git a/pkgs/applications/audio/squeezelite/default.nix b/pkgs/applications/audio/squeezelite/default.nix index ce0153e9f26..de135706ad3 100644 --- a/pkgs/applications/audio/squeezelite/default.nix +++ b/pkgs/applications/audio/squeezelite/default.nix @@ -62,7 +62,7 @@ in stdenv.mkDerivation { meta = with stdenv.lib; { description = "Lightweight headless squeezebox client emulator"; - homepage = https://github.com/ralph-irving/squeezelite; + homepage = "https://github.com/ralph-irving/squeezelite"; license = with licenses; [ gpl3 ] ++ optional dsdSupport bsd2; maintainers = with maintainers; [ samdoshi ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/squishyball/default.nix b/pkgs/applications/audio/squishyball/default.nix index 496ce779ffb..e6dd48018e7 100644 --- a/pkgs/applications/audio/squishyball/default.nix +++ b/pkgs/applications/audio/squishyball/default.nix @@ -42,7 +42,7 @@ stdenv.mkDerivation rec { comparisons of groups of up to ten samples; this is the default mode of operation. ''; - homepage = https://svn.xiph.org/trunk/squishyball; + homepage = "https://svn.xiph.org/trunk/squishyball"; license = licenses.gpl2Plus; maintainers = with maintainers; [ michalrus ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/ssrc/default.nix b/pkgs/applications/audio/ssrc/default.nix index 1247bbc19f9..9d519e14147 100644 --- a/pkgs/applications/audio/ssrc/default.nix +++ b/pkgs/applications/audio/ssrc/default.nix @@ -33,7 +33,7 @@ stdenv.mkDerivation rec { ''; version = version; - homepage = http://shibatch.sourceforge.net/; + homepage = "http://shibatch.sourceforge.net/"; license = licenses.gpl2; maintainers = with maintainers; [ leenaars]; platforms = with platforms; [ linux ] ; diff --git a/pkgs/applications/audio/stone-phaser/default.nix b/pkgs/applications/audio/stone-phaser/default.nix index 6e64ebc7fb3..d36b28df978 100644 --- a/pkgs/applications/audio/stone-phaser/default.nix +++ b/pkgs/applications/audio/stone-phaser/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { installFlags = [ "PREFIX=$(out)" ]; meta = with stdenv.lib; { - homepage = https://github.com/jpcima/stone-phaser; + homepage = "https://github.com/jpcima/stone-phaser"; description = "A classic analog phaser effect, made with DPF and Faust"; maintainers = [ maintainers.magnetophon ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/strawberry/default.nix b/pkgs/applications/audio/strawberry/default.nix index ad5685f71b0..6c565911eb4 100644 --- a/pkgs/applications/audio/strawberry/default.nix +++ b/pkgs/applications/audio/strawberry/default.nix @@ -35,13 +35,13 @@ mkDerivation rec { pname = "strawberry"; - version = "0.6.8"; + version = "0.6.9"; src = fetchFromGitHub { owner = "jonaski"; repo = pname; rev = version; - sha256 = "0jc1m1855dg3f1i1p744c5s42ssmjs61znw4cf28ifamw1nbr1r5"; + sha256 = "0ssyqa14j54sja2dzhzrznbf1bbl0nc62p4jh2pd6fhinpw8y6dk"; }; buildInputs = [ diff --git a/pkgs/applications/audio/streamripper/default.nix b/pkgs/applications/audio/streamripper/default.nix index efa87a2f72c..55ed40c2fb8 100644 --- a/pkgs/applications/audio/streamripper/default.nix +++ b/pkgs/applications/audio/streamripper/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { buildInputs = [ glib libogg libvorbis libmad ]; meta = with stdenv.lib; { - homepage = http://streamripper.sourceforge.net/; + homepage = "http://streamripper.sourceforge.net/"; description = "Application that lets you record streaming mp3 to your hard drive"; license = licenses.gpl2; maintainers = with maintainers; [ the-kenny ]; diff --git a/pkgs/applications/audio/svox/default.nix b/pkgs/applications/audio/svox/default.nix index 3e9fe4725af..0f8e5143883 100644 --- a/pkgs/applications/audio/svox/default.nix +++ b/pkgs/applications/audio/svox/default.nix @@ -35,7 +35,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Text-to-speech engine"; - homepage = https://android.googlesource.com/platform/external/svox; + homepage = "https://android.googlesource.com/platform/external/svox"; platforms = platforms.linux; license = licenses.asl20; maintainers = with maintainers; [ abbradar ]; diff --git a/pkgs/applications/audio/swh-lv2/default.nix b/pkgs/applications/audio/swh-lv2/default.nix index b59752d7cc3..02499d54476 100644 --- a/pkgs/applications/audio/swh-lv2/default.nix +++ b/pkgs/applications/audio/swh-lv2/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { installPhase = "make install-system"; meta = with stdenv.lib; { - homepage = http://plugin.org.uk; + homepage = "http://plugin.org.uk"; description = "LV2 version of Steve Harris' SWH plugins"; longDescription = '' SWH plugins include: diff --git a/pkgs/applications/audio/synthv1/default.nix b/pkgs/applications/audio/synthv1/default.nix index f58166a5984..6339dad7f37 100644 --- a/pkgs/applications/audio/synthv1/default.nix +++ b/pkgs/applications/audio/synthv1/default.nix @@ -2,11 +2,11 @@ mkDerivation rec { pname = "synthv1"; - version = "0.9.12"; + version = "0.9.13"; src = fetchurl { url = "mirror://sourceforge/synthv1/${pname}-${version}.tar.gz"; - sha256 = "1amxrl1cqwgncw5437r572frgf6xhss3cfpbgh178i8phlq1q731"; + sha256 = "0bb48myvgvqcibwm68qhd4852pjr2g19rasf059a799d1hzgfq3l"; }; buildInputs = [ qtbase qttools libjack2 alsaLib liblo lv2 ]; @@ -15,7 +15,7 @@ mkDerivation rec { meta = with stdenv.lib; { description = "An old-school 4-oscillator subtractive polyphonic synthesizer with stereo fx"; - homepage = https://synthv1.sourceforge.io/; + homepage = "https://synthv1.sourceforge.io/"; license = licenses.gpl2Plus; platforms = platforms.linux; maintainers = [ maintainers.goibhniu ]; diff --git a/pkgs/applications/audio/tambura/default.nix b/pkgs/applications/audio/tambura/default.nix index 030bb2c01a7..96f9bb7053e 100644 --- a/pkgs/applications/audio/tambura/default.nix +++ b/pkgs/applications/audio/tambura/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A FAUST patch inspired by the Indian Tambura/Tanpura - a four string drone instrument, known for its unique rich harmonic timbre"; - homepage = https://github.com/olilarkin/Tambura; + homepage = "https://github.com/olilarkin/Tambura"; license = licenses.gpl2; maintainers = [ maintainers.magnetophon ]; }; diff --git a/pkgs/applications/audio/tetraproc/default.nix b/pkgs/applications/audio/tetraproc/default.nix index 40362fdd496..8780e54bb7c 100644 --- a/pkgs/applications/audio/tetraproc/default.nix +++ b/pkgs/applications/audio/tetraproc/default.nix @@ -35,7 +35,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Converts the A-format signals from a tetrahedral Ambisonic microphone into B-format signals ready for recording"; - homepage = http://kokkinizita.linuxaudio.org/linuxaudio/; + homepage = "http://kokkinizita.linuxaudio.org/linuxaudio/"; license = licenses.gpl2; maintainers = with maintainers; [ magnetophon ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/timemachine/default.nix b/pkgs/applications/audio/timemachine/default.nix index 3564f875c9b..8be43346bc0 100644 --- a/pkgs/applications/audio/timemachine/default.nix +++ b/pkgs/applications/audio/timemachine/default.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { meta = { description = "JACK audio recorder"; - homepage = http://plugin.org.uk/timemachine/; + homepage = "http://plugin.org.uk/timemachine/"; license = stdenv.lib.licenses.lgpl2; platforms = stdenv.lib.platforms.linux; maintainers = [ stdenv.lib.maintainers.nico202 ]; diff --git a/pkgs/applications/audio/tony/default.nix b/pkgs/applications/audio/tony/default.nix new file mode 100644 index 00000000000..011d8025364 --- /dev/null +++ b/pkgs/applications/audio/tony/default.nix @@ -0,0 +1,37 @@ +{ stdenv, fetchurl, pkgconfig, wrapQtAppsHook +, alsaLib, boost, bzip2, fftw, fftwFloat, libX11, libfishsound, libid3tag +, libjack2, liblo, libmad, libogg, liboggz, libpulseaudio, libsamplerate +, libsndfile, lrdf, opusfile, qtbase, qtsvg, rubberband, serd, sord +}: + +stdenv.mkDerivation rec { + name = "tony-2.1.1"; + + src = fetchurl { + url = "https://code.soundsoftware.ac.uk/attachments/download/2616/${name}.tar.gz"; + sha256 = "03g2bmlj08lmgvh54dyd635xccjn730g4wwlhpvsw04bffz8b7fp"; + }; + + nativeBuildInputs = [ pkgconfig wrapQtAppsHook ]; + + buildInputs = [ + alsaLib boost bzip2 fftw fftwFloat libX11 libfishsound libid3tag + libjack2 liblo libmad libogg liboggz libpulseaudio libsamplerate + libsndfile lrdf opusfile qtbase qtsvg rubberband serd sord + ]; + + # comment out the tests + preConfigure = '' + sed -i 's/sub_test_svcore_/#sub_test_svcore_/' tony.pro + ''; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + description = "Pitch and note annotation of unaccompanied melody"; + homepage = "https://www.sonicvisualiser.org/tony/"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ orivej ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/audio/transcode/default.nix b/pkgs/applications/audio/transcode/default.nix index d7d5b65375e..c7ee3914f25 100644 --- a/pkgs/applications/audio/transcode/default.nix +++ b/pkgs/applications/audio/transcode/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Suite of command line utilities for transcoding video and audio codecs, and for converting between different container formats"; - homepage = http://www.transcoding.org/; + homepage = "http://www.transcoding.org/"; license = licenses.lgpl2Plus; platforms = platforms.linux; }; diff --git a/pkgs/applications/audio/transcribe/default.nix b/pkgs/applications/audio/transcribe/default.nix index 8eb846ac9c5..d9469fa4b7a 100644 --- a/pkgs/applications/audio/transcribe/default.nix +++ b/pkgs/applications/audio/transcribe/default.nix @@ -64,7 +64,7 @@ stdenv.mkDerivation rec { has many transcription-specific features not found on conventional music players. ''; - homepage = https://www.seventhstring.com/xscribe/; + homepage = "https://www.seventhstring.com/xscribe/"; license = licenses.unfree; platforms = platforms.linux; maintainers = with maintainers; [ michalrus ]; diff --git a/pkgs/applications/audio/traverso/default.nix b/pkgs/applications/audio/traverso/default.nix index 9188003ce66..63ba44bec35 100644 --- a/pkgs/applications/audio/traverso/default.nix +++ b/pkgs/applications/audio/traverso/default.nix @@ -1,13 +1,13 @@ -{ stdenv, fetchurl, cmake, pkgconfig +{ mkDerivation, stdenv, fetchurl, cmake, pkgconfig , alsaLib, fftw, flac, lame, libjack2, libmad, libpulseaudio , libsamplerate, libsndfile, libvorbis, portaudio, qtbase, wavpack }: -stdenv.mkDerivation { +mkDerivation { pname = "traverso"; version = "0.49.6"; src = fetchurl { - url = "http://traverso-daw.org/traverso-0.49.6.tar.gz"; + url = "https://traverso-daw.org/traverso-0.49.6.tar.gz"; sha256 = "12f7x8kw4fw1j0xkwjrp54cy4cv1ql0zwz2ba5arclk4pf6bhl7q"; }; @@ -23,7 +23,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Cross-platform multitrack audio recording and audio editing suite"; - homepage = http://traverso-daw.org/; + homepage = "https://traverso-daw.org/"; license = with licenses; [ gpl2Plus lgpl21Plus ]; platforms = platforms.all; maintainers = with maintainers; [ coconnor ]; diff --git a/pkgs/applications/audio/tree-from-tags/Gemfile.lock b/pkgs/applications/audio/tree-from-tags/Gemfile.lock index 2ef77caa6f6..0ae90c1aebb 100644 --- a/pkgs/applications/audio/tree-from-tags/Gemfile.lock +++ b/pkgs/applications/audio/tree-from-tags/Gemfile.lock @@ -10,4 +10,4 @@ DEPENDENCIES taglib-ruby BUNDLED WITH - 1.16.3 + 2.1.4 diff --git a/pkgs/applications/audio/tree-from-tags/default.nix b/pkgs/applications/audio/tree-from-tags/default.nix index 521133cb08f..3b25b4218f1 100644 --- a/pkgs/applications/audio/tree-from-tags/default.nix +++ b/pkgs/applications/audio/tree-from-tags/default.nix @@ -30,7 +30,7 @@ EOF meta = with stdenv.lib; { description = "Create file hierarchies from media tags"; - homepage = https://www.emacswiki.org/emacs/Bongo; + homepage = "https://www.emacswiki.org/emacs/Bongo"; platforms = ruby.meta.platforms; maintainers = [ maintainers.livnev maintainers.dbrock ]; license = licenses.gpl2Plus; diff --git a/pkgs/applications/audio/uade123/default.nix b/pkgs/applications/audio/uade123/default.nix index 844eea11f51..9130461e4d7 100644 --- a/pkgs/applications/audio/uade123/default.nix +++ b/pkgs/applications/audio/uade123/default.nix @@ -17,7 +17,7 @@ in stdenv.mkDerivation { meta = with stdenv.lib; { description = "Plays old Amiga tunes through UAE emulation and cloned m68k-assembler Eagleplayer API"; - homepage = http://zakalwe.fi/uade/; + homepage = "http://zakalwe.fi/uade/"; license = licenses.gpl2; maintainers = [ stdenv.lib.maintainers.gnidorah ]; platforms = stdenv.lib.platforms.unix; diff --git a/pkgs/applications/audio/vcv-rack/default.nix b/pkgs/applications/audio/vcv-rack/default.nix index 21aa27fa5bc..2aa09ec0be8 100644 --- a/pkgs/applications/audio/vcv-rack/default.nix +++ b/pkgs/applications/audio/vcv-rack/default.nix @@ -93,7 +93,7 @@ with stdenv.lib; stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Open-source virtual modular synthesizer"; - homepage = https://vcvrack.com/; + homepage = "https://vcvrack.com/"; # The source is BSD-3 licensed, some of the art is CC-BY-NC 4.0 or under a # no-derivatives clause license = with licenses; [ bsd3 cc-by-nc-40 unfreeRedistributable ]; diff --git a/pkgs/applications/audio/vimpc/default.nix b/pkgs/applications/audio/vimpc/default.nix index 7f02ea9cefe..bcbfa6d3874 100644 --- a/pkgs/applications/audio/vimpc/default.nix +++ b/pkgs/applications/audio/vimpc/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A vi/vim inspired client for the Music Player Daemon (mpd)"; - homepage = https://github.com/boysetsfrog/vimpc; + homepage = "https://github.com/boysetsfrog/vimpc"; license = licenses.gpl3; platforms = platforms.linux; maintainers = with maintainers; [ pSub ]; diff --git a/pkgs/applications/audio/vkeybd/default.nix b/pkgs/applications/audio/vkeybd/default.nix index 3f77a657472..0e8f12823d1 100644 --- a/pkgs/applications/audio/vkeybd/default.nix +++ b/pkgs/applications/audio/vkeybd/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Virtual MIDI keyboard"; - homepage = https://www.alsa-project.org/~tiwai/alsa.html; + homepage = "https://www.alsa-project.org/~tiwai/alsa.html"; license = licenses.gpl2Plus; platforms = platforms.linux; maintainers = [ maintainers.goibhniu ]; diff --git a/pkgs/applications/audio/vocal/default.nix b/pkgs/applications/audio/vocal/default.nix index c928962c983..6ef992ffff6 100644 --- a/pkgs/applications/audio/vocal/default.nix +++ b/pkgs/applications/audio/vocal/default.nix @@ -7,6 +7,7 @@ , pantheon , gtk3 , glib +, glib-networking , libxml2 , webkitgtk , clutter-gtk @@ -56,6 +57,7 @@ stdenv.mkDerivation rec { pantheon.granite sqlite webkitgtk + glib-networking ]; passthru = { @@ -70,7 +72,7 @@ stdenv.mkDerivation rec { longDescription = '' Vocal is a powerful, fast, and intuitive application that helps users find new podcasts, manage their libraries, and enjoy the best that indepedent audio and video publishing has to offer. Vocal features full support for both episode downloading and streaming, native system integration, iTunes store search and top 100 charts (with international results support), iTunes link parsing, OPML importing and exporting, and so much more. Plus, it has great smart features like automatically keeping your library clean from old files, and the ability to set custom skip intervals. ''; - homepage = https://github.com/needle-and-thread/vocal; + homepage = "https://github.com/needle-and-thread/vocal"; license = licenses.gpl3Plus; maintainers = with maintainers; [ worldofpeace ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/vorbis-tools/default.nix b/pkgs/applications/audio/vorbis-tools/default.nix index f815ac02e6e..2270e56e62a 100644 --- a/pkgs/applications/audio/vorbis-tools/default.nix +++ b/pkgs/applications/audio/vorbis-tools/default.nix @@ -3,14 +3,14 @@ let debPatch = fetchzip { - url = "mirror://debian/pool/main/v/vorbis-tools/vorbis-tools_1.4.0-6.debian.tar.xz"; - sha256 = "1xmmpdvxyr84lazlg23c6ck5ic97ga2rkiqabb1d98ix2zdzyqz5"; + url = "mirror://debian/pool/main/v/vorbis-tools/vorbis-tools_1.4.0-11.debian.tar.xz"; + sha256 = "0kvmd5nslyqplkdb7pnmqj47ir3y5lmaxd12wmrnqh679a8jhcyi"; }; in stdenv.mkDerivation { name = "vorbis-tools-1.4.0"; src = fetchurl { - url = http://downloads.xiph.org/releases/vorbis/vorbis-tools-1.4.0.tar.gz; + url = "http://downloads.xiph.org/releases/vorbis/vorbis-tools-1.4.0.tar.gz"; sha256 = "1g12bnh5ah08v529y72kfdz5lhvy75iaz7f9jskyby23m9dkk2d3"; }; @@ -29,7 +29,7 @@ stdenv.mkDerivation { A set of command-line tools to manipulate Ogg Vorbis audio files, notably the `ogg123' player and the `oggenc' encoder. ''; - homepage = https://xiph.org/vorbis/; + homepage = "https://xiph.org/vorbis/"; license = licenses.gpl2; platforms = platforms.all; }; diff --git a/pkgs/applications/audio/waon/default.nix b/pkgs/applications/audio/waon/default.nix index b27fdbffb7d..bc05547e641 100644 --- a/pkgs/applications/audio/waon/default.nix +++ b/pkgs/applications/audio/waon/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A Wave-to-Notes transcriber"; - homepage = https://kichiki.github.io/WaoN/; + homepage = "https://kichiki.github.io/WaoN/"; license = licenses.gpl2; maintainers = [ maintainers.puckipedia ]; platforms = platforms.all; diff --git a/pkgs/applications/audio/wavegain/default.nix b/pkgs/applications/audio/wavegain/default.nix index 5f56fb7297f..d9b13f53273 100644 --- a/pkgs/applications/audio/wavegain/default.nix +++ b/pkgs/applications/audio/wavegain/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation { meta = { description = "ReplayGain for wave files"; - homepage = https://github.com/MestreLion/wavegain; + homepage = "https://github.com/MestreLion/wavegain"; license = stdenv.lib.licenses.lgpl21; platforms = stdenv.lib.platforms.linux; maintainers = [ stdenv.lib.maintainers.robbinch ]; diff --git a/pkgs/applications/audio/whipper/default.nix b/pkgs/applications/audio/whipper/default.nix index ff278d4d7f2..5cbc9a07b6c 100644 --- a/pkgs/applications/audio/whipper/default.nix +++ b/pkgs/applications/audio/whipper/default.nix @@ -53,7 +53,7 @@ python3.pkgs.buildPythonApplication rec { ''; meta = with stdenv.lib; { - homepage = https://github.com/whipper-team/whipper; + homepage = "https://github.com/whipper-team/whipper"; description = "A CD ripper aiming for accuracy over speed"; maintainers = with maintainers; [ rycee emily ]; license = licenses.gpl3Plus; diff --git a/pkgs/applications/audio/wolf-shaper/default.nix b/pkgs/applications/audio/wolf-shaper/default.nix index 13bf1d674c7..7d42a3c4e7b 100644 --- a/pkgs/applications/audio/wolf-shaper/default.nix +++ b/pkgs/applications/audio/wolf-shaper/default.nix @@ -38,7 +38,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = https://pdesaulniers.github.io/wolf-shaper/; + homepage = "https://pdesaulniers.github.io/wolf-shaper/"; description = "Waveshaper plugin with spline-based graph editor"; license = licenses.gpl3; maintainers = [ maintainers.magnetophon ]; diff --git a/pkgs/applications/audio/x42-avldrums/default.nix b/pkgs/applications/audio/x42-avldrums/default.nix new file mode 100644 index 00000000000..fb05a50b4e5 --- /dev/null +++ b/pkgs/applications/audio/x42-avldrums/default.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchFromGitHub, pkgconfig, cairo, glib, libGLU, lv2, pango }: + +stdenv.mkDerivation rec { + pname = "x42-avldrums"; + version = "0.4.1"; + + src = fetchFromGitHub { + owner = "x42"; + repo = "avldrums.lv2"; + rev = "v${version}"; + sha256 = "1vwdp3d8qzd493qa99ddya7iql67bbfxmbcl8hk96lxif2lhmyws"; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ cairo glib libGLU lv2 pango ]; + + makeFlags = [ + "PREFIX=$(out)" + ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + description = "Drum sample player LV2 plugin dedicated to Glen MacArthur's AVLdrums"; + homepage = "https://x42-plugins.com/x42/x42-avldrums"; + maintainers = with maintainers; [ magnetophon orivej ]; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/audio/x42-gmsynth/default.nix b/pkgs/applications/audio/x42-gmsynth/default.nix new file mode 100644 index 00000000000..7a96e3fd4f2 --- /dev/null +++ b/pkgs/applications/audio/x42-gmsynth/default.nix @@ -0,0 +1,30 @@ +{ stdenv, fetchFromGitHub, pkgconfig, glib, lv2 }: + +stdenv.mkDerivation rec { + pname = "x42-gmsynth"; + version = "0.4.1"; + + src = fetchFromGitHub { + owner = "x42"; + repo = "gmsynth.lv2"; + rev = "v${version}"; + sha256 = "08dvdj8r17sfl6l18g2b8abgls2irkbrq5vhrfai01hp2m0rlm34"; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ glib lv2 ]; + + makeFlags = [ + "PREFIX=$(out)" + ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + description = "Chris Colins' General User soundfont player LV2 plugin"; + homepage = "https://x42-plugins.com/x42/x42-gmsynth"; + maintainers = with maintainers; [ orivej ]; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/audio/x42-plugins/default.nix b/pkgs/applications/audio/x42-plugins/default.nix index f4087506daa..20f87725f99 100644 --- a/pkgs/applications/audio/x42-plugins/default.nix +++ b/pkgs/applications/audio/x42-plugins/default.nix @@ -3,12 +3,12 @@ , libGLU, lv2, gtk2, cairo, pango, fftwFloat, zita-convolver }: stdenv.mkDerivation rec { - version = "20200114"; + version = "20200411"; pname = "x42-plugins"; src = fetchurl { url = "https://gareus.org/misc/x42-plugins/${pname}-${version}.tar.xz"; - sha256 = "02f8wnsl9wg7pgf4sshr0hdjfjkwln870ffgjmb01nqk37v7hiyn"; + sha256 = "0y6778l2zc80kvp31mqw3vkcyi7g613jxn3g3lxqfa31i617gh6j"; }; nativeBuildInputs = [ pkgconfig ]; @@ -26,14 +26,14 @@ stdenv.mkDerivation rec { patchPhase = '' patchShebangs ./stepseq.lv2/gridgen.sh - patchShebangs ./matrixmixer.lv2/genttl.sh #TODO: remove at next update, see https://github.com/x42/matrixmixer.lv2/issues/2 - patchShebangs ./matrixmixer.lv2/genhead.sh #TODO: remove at next update, see https://github.com/x42/matrixmixer.lv2/issues/2 + patchShebangs ./matrixmixer.lv2/genttl.sh + patchShebangs ./matrixmixer.lv2/genhead.sh sed -i 's|/usr/include/zita-convolver.h|${zita-convolver}/include/zita-convolver.h|g' ./convoLV2/Makefile ''; meta = with stdenv.lib; { description = "Collection of LV2 plugins by Robin Gareus"; - homepage = https://github.com/x42/x42-plugins; + homepage = "https://github.com/x42/x42-plugins"; maintainers = with maintainers; [ magnetophon ]; license = licenses.gpl2; platforms = [ "i686-linux" "x86_64-linux" ]; diff --git a/pkgs/applications/audio/yasr/default.nix b/pkgs/applications/audio/yasr/default.nix index c8902f1dda4..68423197f3c 100644 --- a/pkgs/applications/audio/yasr/default.nix +++ b/pkgs/applications/audio/yasr/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { ]; # taken from the debian yasr package meta = { - homepage = http://yasr.sourceforge.net; + homepage = "http://yasr.sourceforge.net"; description = "A general-purpose console screen reader"; longDescription = "Yasr is a general-purpose console screen reader for GNU/Linux and other Unix-like operating systems."; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/ympd/default.nix b/pkgs/applications/audio/ympd/default.nix index 7976f747717..8f86d6e7ba9 100644 --- a/pkgs/applications/audio/ympd/default.nix +++ b/pkgs/applications/audio/ympd/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { buildInputs = [ cmake mpd_clientlib openssl ]; meta = { - homepage = https://www.ympd.org; + homepage = "https://www.ympd.org"; description = "Standalone MPD Web GUI written in C, utilizing Websockets and Bootstrap/JS"; maintainers = [ stdenv.lib.maintainers.siddharthist ]; platforms = stdenv.lib.platforms.unix; diff --git a/pkgs/applications/audio/yoshimi/default.nix b/pkgs/applications/audio/yoshimi/default.nix index 40691be1a0c..f8ea58fef3c 100644 --- a/pkgs/applications/audio/yoshimi/default.nix +++ b/pkgs/applications/audio/yoshimi/default.nix @@ -36,7 +36,7 @@ stdenv.mkDerivation rec { ZynAddSubFX along with very good Jack and Alsa midi/audio functionality on Linux ''; - homepage = http://yoshimi.sourceforge.net; + homepage = "http://yoshimi.sourceforge.net"; license = licenses.gpl2; platforms = platforms.linux; maintainers = [ maintainers.goibhniu ]; diff --git a/pkgs/applications/audio/zam-plugins/default.nix b/pkgs/applications/audio/zam-plugins/default.nix index b9645fa4d8a..a34773513d9 100644 --- a/pkgs/applications/audio/zam-plugins/default.nix +++ b/pkgs/applications/audio/zam-plugins/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation { enableParallelBuilding = true; meta = with stdenv.lib; { - homepage = http://www.zamaudio.com/?p=976; + homepage = "http://www.zamaudio.com/?p=976"; description = "A collection of LV2/LADSPA/VST/JACK audio plugins by ZamAudio"; license = licenses.gpl2Plus; maintainers = [ maintainers.magnetophon ]; diff --git a/pkgs/applications/audio/zita-ajbridge/default.nix b/pkgs/applications/audio/zita-ajbridge/default.nix new file mode 100644 index 00000000000..ad2ea53e9f7 --- /dev/null +++ b/pkgs/applications/audio/zita-ajbridge/default.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchurl, alsaLib, libjack2, zita-alsa-pcmi, zita-resampler }: + +stdenv.mkDerivation rec { + name = "zita-ajbridge-0.8.4"; + + src = fetchurl { + url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${name}.tar.bz2"; + sha256 = "0g5v0l0zmqh049mhv62n8s5bpm0yrlby7mkxxhs5qwadp8v4w9mw"; + }; + + buildInputs = [ alsaLib libjack2 zita-alsa-pcmi zita-resampler ]; + + preConfigure = '' + cd ./source/ + ''; + + makeFlags = [ + "PREFIX=$(out)" + "MANDIR=$(out)/share/man/man1" + ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + description = "Connect additional ALSA devices to JACK"; + homepage = "http://kokkinizita.linuxaudio.org/linuxaudio/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ orivej ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/audio/zita-at1/default.nix b/pkgs/applications/audio/zita-at1/default.nix new file mode 100644 index 00000000000..d357febd882 --- /dev/null +++ b/pkgs/applications/audio/zita-at1/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchurl +, cairo, fftwSinglePrec, libX11, libXft, libclthreads, libclxclient, libjack2 +, xorgproto, zita-resampler +}: + +stdenv.mkDerivation rec { + name = "zita-at1-0.6.2"; + + src = fetchurl { + url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${name}.tar.bz2"; + sha256 = "0mxfn61zvhlq3r1mqipyqzjbanrfdkk8x4nxbz8nlbdk0bf3vfqr"; + }; + + buildInputs = [ + cairo fftwSinglePrec libX11 libXft libclthreads libclxclient libjack2 + xorgproto zita-resampler + ]; + + preConfigure = '' + cd ./source/ + ''; + + makeFlags = [ + "PREFIX=$(out)" + ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + description = "Autotuner Jack application to correct the pitch of vocal tracks"; + homepage = "https://kokkinizita.linuxaudio.org/linuxaudio/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ orivej ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/audio/zita-njbridge/default.nix b/pkgs/applications/audio/zita-njbridge/default.nix index 1ec6946cf38..3a293cfc026 100644 --- a/pkgs/applications/audio/zita-njbridge/default.nix +++ b/pkgs/applications/audio/zita-njbridge/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "command line Jack clients to transmit full quality multichannel audio over a local IP network"; - homepage = http://kokkinizita.linuxaudio.org/linuxaudio/index.html; + homepage = "http://kokkinizita.linuxaudio.org/linuxaudio/index.html"; license = licenses.gpl3; maintainers = [ maintainers.magnetophon ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/zynaddsubfx/default.nix b/pkgs/applications/audio/zynaddsubfx/default.nix index e22bf9ed653..9a432f73d3f 100644 --- a/pkgs/applications/audio/zynaddsubfx/default.nix +++ b/pkgs/applications/audio/zynaddsubfx/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "High quality software synthesizer"; - homepage = http://zynaddsubfx.sourceforge.net; + homepage = "http://zynaddsubfx.sourceforge.net"; license = licenses.gpl2; platforms = platforms.linux; maintainers = [ maintainers.goibhniu maintainers.nico202 ]; diff --git a/pkgs/applications/backup/areca/default.nix b/pkgs/applications/backup/areca/default.nix index d02aa4b8444..b4d644430dd 100644 --- a/pkgs/applications/backup/areca/default.nix +++ b/pkgs/applications/backup/areca/default.nix @@ -45,7 +45,7 @@ stdenv.mkDerivation { ''; meta = with stdenv.lib; { - homepage = http://www.areca-backup.org/; + homepage = "http://www.areca-backup.org/"; description = "An Open Source personal backup solution"; license = licenses.gpl2; maintainers = with maintainers; [ pSub ]; diff --git a/pkgs/applications/backup/vorta/default.nix b/pkgs/applications/backup/vorta/default.nix new file mode 100644 index 00000000000..1a4d1832c7e --- /dev/null +++ b/pkgs/applications/backup/vorta/default.nix @@ -0,0 +1,42 @@ +{ buildPythonApplication, fetchFromGitHub, lib, paramiko, peewee, pyqt5 +, python-dateutil, APScheduler, psutil, qdarkstyle, secretstorage +, appdirs, setuptools, qt5 +}: + +buildPythonApplication rec { + pname = "vorta"; + version = "0.6.24"; + + src = fetchFromGitHub { + owner = "borgbase"; + repo = "vorta"; + rev = "v${version}"; + sha256 = "1xc4cng4npc7g739qd909a8wim6s6sn8h8bb1wpxzg4gcnfyin8z"; + }; + + postPatch = '' + sed -i -e '/setuptools_git/d' -e '/pytest-runner/d' setup.cfg + ''; + + nativeBuildInputs = [ qt5.wrapQtAppsHook ]; + + propagatedBuildInputs = [ + paramiko peewee pyqt5 python-dateutil APScheduler psutil qdarkstyle + secretstorage appdirs setuptools + ]; + + # QT setup in tests broken. + doCheck = false; + + postFixup = '' + wrapQtApp $out/bin/vorta + ''; + + meta = with lib; { + license = licenses.gpl3; + homepage = "https://vorta.borgbase.com/"; + maintainers = with maintainers; [ ma27 ]; + description = "Desktop Backup Client for Borg"; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/blockchains/aeon/default.nix b/pkgs/applications/blockchains/aeon/default.nix index db9e68ae905..5e0c25466eb 100644 --- a/pkgs/applications/blockchains/aeon/default.nix +++ b/pkgs/applications/blockchains/aeon/default.nix @@ -35,7 +35,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Private, secure, untraceable currency"; - homepage = http://www.aeon.cash/; + homepage = "http://www.aeon.cash/"; license = licenses.bsd3; maintainers = [ maintainers.aij ]; platforms = [ "x86_64-linux" ]; diff --git a/pkgs/applications/blockchains/bitcoin-abc.nix b/pkgs/applications/blockchains/bitcoin-abc.nix index 1fb4078696b..aee73cecdfc 100644 --- a/pkgs/applications/blockchains/bitcoin-abc.nix +++ b/pkgs/applications/blockchains/bitcoin-abc.nix @@ -7,13 +7,13 @@ with stdenv.lib; mkDerivation rec { name = "bitcoin" + (toString (optional (!withGui) "d")) + "-abc-" + version; - version = "0.21.1"; + version = "0.21.5"; src = fetchFromGitHub { owner = "bitcoin-ABC"; repo = "bitcoin-abc"; rev = "v${version}"; - sha256 = "1aswgmzqk3vhxhp5k0m0awk22lf5ayaqg2cmlqy12jvfmpka9lrj"; + sha256 = "1jx33n8dhn16iaxvmc56cxw0i5qk0ga5nf7qf9frwwq6zkglknga"; }; patches = [ ./fix-bitcoin-qt-build.patch ]; diff --git a/pkgs/applications/blockchains/bitcoin-classic.nix b/pkgs/applications/blockchains/bitcoin-classic.nix index ddce5c3f715..01c1264567c 100644 --- a/pkgs/applications/blockchains/bitcoin-classic.nix +++ b/pkgs/applications/blockchains/bitcoin-classic.nix @@ -45,7 +45,7 @@ stdenv.mkDerivation rec { will continue to release updates that are in line with Satoshi’s whitepaper & vision, and are agreed upon by the community. ''; - homepage = https://bitcoinclassic.com/; + homepage = "https://bitcoinclassic.com/"; maintainers = with maintainers; [ jefdaj ]; license = licenses.mit; broken = stdenv.isDarwin; diff --git a/pkgs/applications/blockchains/bitcoin-unlimited.nix b/pkgs/applications/blockchains/bitcoin-unlimited.nix index c0d51e66db3..f755efaa0e1 100644 --- a/pkgs/applications/blockchains/bitcoin-unlimited.nix +++ b/pkgs/applications/blockchains/bitcoin-unlimited.nix @@ -57,7 +57,7 @@ stdenv.mkDerivation rec { support Bitcoin conflict resolution as originally envisioned by its founder - consider running a Bitcoin Unlimited client. ''; - homepage = https://www.bitcoinunlimited.info/; + homepage = "https://www.bitcoinunlimited.info/"; maintainers = with maintainers; [ DmitryTsygankov ]; license = licenses.mit; broken = stdenv.isDarwin; diff --git a/pkgs/applications/blockchains/bitcoin.nix b/pkgs/applications/blockchains/bitcoin.nix index c1143f898e2..15094a1eee4 100644 --- a/pkgs/applications/blockchains/bitcoin.nix +++ b/pkgs/applications/blockchains/bitcoin.nix @@ -73,7 +73,7 @@ in stdenv.mkDerivation rec { parties. Users hold the crypto keys to their own money and transact directly with each other, with the help of a P2P network to check for double-spending. ''; - homepage = http://www.bitcoin.org/; + homepage = "http://www.bitcoin.org/"; maintainers = with maintainers; [ roconnor AndersonTorres ]; license = licenses.mit; platforms = platforms.unix; diff --git a/pkgs/applications/blockchains/clightning.nix b/pkgs/applications/blockchains/clightning.nix index 0add60cc19e..61765913464 100644 --- a/pkgs/applications/blockchains/clightning.nix +++ b/pkgs/applications/blockchains/clightning.nix @@ -42,7 +42,7 @@ stdenv.mkDerivation rec { Bitcoin, enabling secure and instant transfer of funds between any two parties for any amount. ''; - homepage = https://github.com/ElementsProject/lightning; + homepage = "https://github.com/ElementsProject/lightning"; maintainers = with maintainers; [ jb55 ]; license = licenses.mit; platforms = platforms.linux; diff --git a/pkgs/applications/blockchains/cryptop/default.nix b/pkgs/applications/blockchains/cryptop/default.nix index 01c47b320de..f0bcda57930 100644 --- a/pkgs/applications/blockchains/cryptop/default.nix +++ b/pkgs/applications/blockchains/cryptop/default.nix @@ -15,7 +15,7 @@ buildPythonApplication rec { doCheck = false; meta = { - homepage = https://github.com/huwwp/cryptop; + homepage = "https://github.com/huwwp/cryptop"; description = "Command line Cryptocurrency Portfolio"; license = with lib.licenses; [ mit ]; maintainers = with lib.maintainers; [ bhipple ]; diff --git a/pkgs/applications/blockchains/dashpay.nix b/pkgs/applications/blockchains/dashpay.nix index 03dcd6cb54e..d0c3fed4350 100644 --- a/pkgs/applications/blockchains/dashpay.nix +++ b/pkgs/applications/blockchains/dashpay.nix @@ -36,7 +36,7 @@ stdenv.mkDerivation rec { with instant transactions. It allows you to keep your finances private as you make transactions without waits, similar to cash. ''; - homepage = https://www.dash.org; + homepage = "https://www.dash.org"; maintainers = with maintainers; [ AndersonTorres ]; platforms = platforms.unix; }; diff --git a/pkgs/applications/blockchains/dogecoin.nix b/pkgs/applications/blockchains/dogecoin.nix index 02744e50647..b1ebebdd213 100644 --- a/pkgs/applications/blockchains/dogecoin.nix +++ b/pkgs/applications/blockchains/dogecoin.nix @@ -33,7 +33,7 @@ stdenv.mkDerivation rec { internet currency." It is named after a famous Internet meme, the "Doge" - a Shiba Inu dog. ''; - homepage = http://www.dogecoin.com/; + homepage = "http://www.dogecoin.com/"; license = licenses.mit; maintainers = with maintainers; [ edwtjo offline AndersonTorres ]; platforms = platforms.linux; diff --git a/pkgs/applications/blockchains/freicoin.nix b/pkgs/applications/blockchains/freicoin.nix index 6cf84f76f91..cc28fff96c4 100644 --- a/pkgs/applications/blockchains/freicoin.nix +++ b/pkgs/applications/blockchains/freicoin.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Peer-to-peer currency with demurrage fee"; - homepage = http://freicoi.in/; + homepage = "http://freicoi.in/"; license = licenses.mit; maintainers = [ maintainers.viric ]; platforms = platforms.linux; diff --git a/pkgs/applications/blockchains/go-ethereum.nix b/pkgs/applications/blockchains/go-ethereum.nix index d8660967a4e..6a443571d0f 100644 --- a/pkgs/applications/blockchains/go-ethereum.nix +++ b/pkgs/applications/blockchains/go-ethereum.nix @@ -2,18 +2,19 @@ buildGoModule rec { pname = "go-ethereum"; - version = "1.9.11"; + version = "1.9.13"; src = fetchFromGitHub { owner = "ethereum"; repo = pname; rev = "v${version}"; - sha256 = "0xhkdxn5ajzi05252is5whqank81xy94jp1l5z2a44rajv8rh9vs"; + sha256 = "1yqqflp73yvjy6bp05xd1nv5fc6p1nx7g4spbssxf3ws96pdh425"; }; - modSha256 = "0jcj0knkhyndndyv1j9xhgbg5psagvyd27ailna3x9ikjlb8f7gg"; + modSha256 = "07xrw3fivfpbkg4mp8ghrj1bishfas82dbd780fymgs2h74iigf3"; subPackages = [ + "cmd/abidump" "cmd/abigen" "cmd/bootnode" "cmd/checkpoint-admin" diff --git a/pkgs/applications/blockchains/ledger-live-desktop/default.nix b/pkgs/applications/blockchains/ledger-live-desktop/default.nix index 64562fc445a..edc68f9d0c7 100644 --- a/pkgs/applications/blockchains/ledger-live-desktop/default.nix +++ b/pkgs/applications/blockchains/ledger-live-desktop/default.nix @@ -2,12 +2,12 @@ let pname = "ledger-live-desktop"; - version = "1.20.0"; + version = "2.1.0"; name = "${pname}-${version}"; src = fetchurl { url = "https://github.com/LedgerHQ/${pname}/releases/download/v${version}/${pname}-${version}-linux-x86_64.AppImage"; - sha256 = "09mgd5nsd65w4irgzgmfz1k0r1k4fgkq490pkil8nqy6akjrsw1z"; + sha256 = "1ywvdqmq8asczhmvc6ai2v6di1f5q19x3ygqlinwz8d1hrj3496r"; }; appimageContents = appimageTools.extractType2 { diff --git a/pkgs/applications/blockchains/litecoin.nix b/pkgs/applications/blockchains/litecoin.nix index 47077266541..ec1658b595d 100644 --- a/pkgs/applications/blockchains/litecoin.nix +++ b/pkgs/applications/blockchains/litecoin.nix @@ -46,7 +46,7 @@ mkDerivation rec { the regular computers and GPUs most people already have. The Litecoin network is scheduled to produce 84 million currency units. ''; - homepage = https://litecoin.org/; + homepage = "https://litecoin.org/"; platforms = platforms.unix; license = licenses.mit; broken = stdenv.isDarwin; diff --git a/pkgs/applications/blockchains/lnd.nix b/pkgs/applications/blockchains/lnd.nix index dd45746c8df..0aa087e20af 100644 --- a/pkgs/applications/blockchains/lnd.nix +++ b/pkgs/applications/blockchains/lnd.nix @@ -2,16 +2,18 @@ buildGoModule rec { pname = "lnd"; - version = "0.9.0-beta"; + version = "0.9.2-beta"; src = fetchFromGitHub { owner = "lightningnetwork"; repo = "lnd"; rev = "v${version}"; - sha256 = "1hq105s9ykp6nsn4iicjnl3mwspqkbfsswkx7sgzv3jggg08fkq9"; + sha256 = "0gm33z89fiqv231ks2mkpsblskcsijipq8fcmip6m6jy8g06b1gb"; }; - modSha256 = "1pvcvpiz6ck8xkgpypchrq9kgkik0jxd7f3jhihbgldsh4zaqiaq"; + modSha256 = "1khxplvyaqgaddrx1nna1fw0nb1xz9bmqpxpfifif4f5nmx90gbr"; + + subPackages = ["cmd/lncli" "cmd/lnd"]; meta = with lib; { description = "Lightning Network Daemon"; diff --git a/pkgs/applications/blockchains/mist.nix b/pkgs/applications/blockchains/mist.nix index 2990b44c7f4..9dd564d715c 100644 --- a/pkgs/applications/blockchains/mist.nix +++ b/pkgs/applications/blockchains/mist.nix @@ -8,7 +8,7 @@ let meta = with stdenv.lib; { description = "Browse and use Ðapps on the Ethereum network"; - homepage = https://github.com/ethereum/mist; + homepage = "https://github.com/ethereum/mist"; license = licenses.gpl3; maintainers = with maintainers; []; platforms = [ "x86_64-linux" "i686-linux" ]; diff --git a/pkgs/applications/blockchains/monero-gui/default.nix b/pkgs/applications/blockchains/monero-gui/default.nix index 0311169deb2..cfd3998ee36 100644 --- a/pkgs/applications/blockchains/monero-gui/default.nix +++ b/pkgs/applications/blockchains/monero-gui/default.nix @@ -1,36 +1,35 @@ -{ stdenv, wrapQtAppsHook, makeDesktopItem, fetchFromGitHub -, qtbase, qmake, qtmultimedia, qttools -, qtgraphicaleffects, qtdeclarative -, qtlocation, qtquickcontrols, qtquickcontrols2 -, qtwebchannel, qtwebengine, qtx11extras, qtxmlpatterns +{ stdenv, wrapQtAppsHook, makeDesktopItem +, fetchFromGitHub, qmake, qttools, pkgconfig +, qtbase, qtdeclarative, qtgraphicaleffects +, qtmultimedia, qtxmlpatterns +, qtquickcontrols, qtquickcontrols2 , monero, unbound, readline, boost, libunwind -, libsodium, pcsclite, zeromq, cppzmq, pkgconfig -, hidapi, randomx +, libsodium, pcsclite, zeromq, cppzmq +, hidapi, libusb-compat-0_1, protobuf, randomx }: with stdenv.lib; stdenv.mkDerivation rec { pname = "monero-gui"; - version = "0.15.0.1"; + version = "0.15.0.4"; src = fetchFromGitHub { owner = "monero-project"; repo = "monero-gui"; rev = "v${version}"; - sha256 = "08j8kkncdn57xql0bhmlzjpjkdfhqbpda1p07r797q8qi0nl4w8n"; + sha256 = "12m5fgnxkr11q2arx1m5ccpxqm5ljcvm6l547dwqn297zs5jim4z"; }; nativeBuildInputs = [ qmake pkgconfig wrapQtAppsHook ]; buildInputs = [ - qtbase qtmultimedia qtgraphicaleffects - qtdeclarative qtlocation - qtquickcontrols qtquickcontrols2 - qtwebchannel qtwebengine qtx11extras - qtxmlpatterns monero unbound readline + qtbase qtdeclarative qtgraphicaleffects + qtmultimedia qtquickcontrols qtquickcontrols2 + qtxmlpatterns + monero unbound readline boost libunwind libsodium pcsclite zeromq - cppzmq hidapi randomx + cppzmq hidapi libusb-compat-0_1 protobuf randomx ]; NIX_CFLAGS_COMPILE = [ "-Wno-error=format-security" ]; @@ -80,7 +79,7 @@ stdenv.mkDerivation rec { meta = { description = "Private, secure, untraceable currency"; - homepage = https://getmonero.org/; + homepage = "https://getmonero.org/"; license = licenses.bsd3; platforms = platforms.all; badPlatforms = platforms.darwin; diff --git a/pkgs/applications/blockchains/monero-gui/move-log-file.patch b/pkgs/applications/blockchains/monero-gui/move-log-file.patch index e540f1960d6..6d3313624e3 100644 --- a/pkgs/applications/blockchains/monero-gui/move-log-file.patch +++ b/pkgs/applications/blockchains/monero-gui/move-log-file.patch @@ -1,15 +1,14 @@ -diff --git a/main.cpp b/main.cpp -index a51568d..5a9f683 100644 ---- a/main.cpp -+++ b/main.cpp -@@ -152,7 +152,9 @@ int main(int argc, char *argv[]) +diff --git a/src/main/main.cpp b/src/main/main.cpp +index c5210e5f..45794d72 100644 +--- a/src/main/main.cpp ++++ b/src/main/main.cpp +@@ -220,6 +220,9 @@ int main(int argc, char *argv[]) QCommandLineOption logPathOption(QStringList() << "l" << "log-file", QCoreApplication::translate("main", "Log to specified file"), QCoreApplication::translate("main", "file")); -- + logPathOption.setDefaultValue( + QStandardPaths::writableLocation(QStandardPaths::CacheLocation) + + "/monero-wallet-gui.log"); - parser.addOption(logPathOption); - parser.addHelpOption(); - parser.process(app); + + QCommandLineOption testQmlOption("test-qml"); + testQmlOption.setFlags(QCommandLineOption::HiddenFromHelp); diff --git a/pkgs/applications/blockchains/monero/default.nix b/pkgs/applications/blockchains/monero/default.nix index 7eb4238679e..d1abd395657 100644 --- a/pkgs/applications/blockchains/monero/default.nix +++ b/pkgs/applications/blockchains/monero/default.nix @@ -2,7 +2,7 @@ , cmake, pkgconfig , boost, miniupnpc, openssl, unbound, cppzmq , zeromq, pcsclite, readline, libsodium, hidapi -, python3Packages, randomx, rapidjson +, pythonProtobuf, randomx, rapidjson, libusb-compat-0_1 , CoreData, IOKit, PCSC }: @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { boost miniupnpc openssl unbound cppzmq zeromq pcsclite readline libsodium hidapi randomx rapidjson - python3Packages.protobuf + pythonProtobuf libusb-compat-0_1 ] ++ stdenv.lib.optionals stdenv.isDarwin [ IOKit CoreData PCSC ]; cmakeFlags = [ @@ -37,7 +37,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Private, secure, untraceable currency"; - homepage = https://getmonero.org/; + homepage = "https://getmonero.org/"; license = licenses.bsd3; platforms = platforms.all; maintainers = with maintainers; [ ehmry rnhmjoj ]; diff --git a/pkgs/applications/blockchains/namecoin.nix b/pkgs/applications/blockchains/namecoin.nix index 4b8dc5525dc..02f2249862d 100644 --- a/pkgs/applications/blockchains/namecoin.nix +++ b/pkgs/applications/blockchains/namecoin.nix @@ -3,14 +3,14 @@ with stdenv.lib; stdenv.mkDerivation rec { - version = "nc0.15.99-name-tab-beta2"; + version = "nc0.19.1"; name = "namecoin" + toString (optional (!withGui) "d") + "-" + version; src = fetchFromGitHub { owner = "namecoin"; repo = "namecoin-core"; rev = version; - sha256 = "1r0v0yvlazmidxp6xhapbdawqb8fhzrdp11d4an5vgxa208s6wdf"; + sha256 = "13rdvngrl2w0gk7km3sd9fy8yxzgxlkcwn50ajsbrhgzl8kx4q7m"; }; nativeBuildInputs = [ @@ -40,7 +40,7 @@ stdenv.mkDerivation rec { meta = { description = "Decentralized open source information registration and transfer system based on the Bitcoin cryptocurrency"; - homepage = https://namecoin.org; + homepage = "https://namecoin.org"; license = licenses.mit; maintainers = with maintainers; [ doublec AndersonTorres infinisil ]; platforms = platforms.linux; diff --git a/pkgs/applications/blockchains/nano-wallet/default.nix b/pkgs/applications/blockchains/nano-wallet/default.nix index 7d9fdb06d18..664e2674062 100644 --- a/pkgs/applications/blockchains/nano-wallet/default.nix +++ b/pkgs/applications/blockchains/nano-wallet/default.nix @@ -53,7 +53,7 @@ stdenv.mkDerivation rec { meta = { inherit version; description = "Wallet for Nano cryptocurrency"; - homepage = https://nano.org/en/wallet/; + homepage = "https://nano.org/en/wallet/"; license = lib.licenses.bsd2; # Fails on Darwin. See: # https://github.com/NixOS/nixpkgs/pull/39295#issuecomment-386800962 diff --git a/pkgs/applications/blockchains/parity-ui/default.nix b/pkgs/applications/blockchains/parity-ui/default.nix index 0615aed2ca0..b18c121607a 100644 --- a/pkgs/applications/blockchains/parity-ui/default.nix +++ b/pkgs/applications/blockchains/parity-ui/default.nix @@ -40,7 +40,7 @@ in stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "UI for Parity. Fast, light, robust Ethereum implementation"; - homepage = http://parity.io; + homepage = "http://parity.io"; license = licenses.gpl3; maintainers = [ maintainers.sorpaas ]; platforms = platforms.linux; diff --git a/pkgs/applications/blockchains/particl/particl-core.nix b/pkgs/applications/blockchains/particl/particl-core.nix index 613d57cd9c8..5cb94b8bd54 100644 --- a/pkgs/applications/blockchains/particl/particl-core.nix +++ b/pkgs/applications/blockchains/particl/particl-core.nix @@ -45,7 +45,7 @@ stdenv.mkDerivation rec { An open source, decentralized privacy platform built for global person to person eCommerce. RPC daemon and CLI client only. ''; - homepage = https://particl.io/; + homepage = "https://particl.io/"; maintainers = with maintainers; [ demyanrogozhin ]; license = licenses.mit; platforms = platforms.unix; diff --git a/pkgs/applications/blockchains/pivx.nix b/pkgs/applications/blockchains/pivx.nix index af8085232e9..600e462b390 100644 --- a/pkgs/applications/blockchains/pivx.nix +++ b/pkgs/applications/blockchains/pivx.nix @@ -53,7 +53,7 @@ stdenv.mkDerivation rec { Zero Knowledge cryptography proofs for industry-leading transaction anonymity. ''; license = licenses.mit; - homepage = https://www.dash.org; + homepage = "https://www.dash.org"; maintainers = with maintainers; [ wucke13 ]; platforms = platforms.unix; # TODO diff --git a/pkgs/applications/blockchains/quorum.nix b/pkgs/applications/blockchains/quorum.nix new file mode 100644 index 00000000000..49bc0be108f --- /dev/null +++ b/pkgs/applications/blockchains/quorum.nix @@ -0,0 +1,35 @@ +{ stdenv, fetchFromGitHub, buildGoPackage, git, which }: + +buildGoPackage rec { + pname = "quorum"; + version = "2.5.0"; + + goPackagePath = "github.com/jpmorganchase/quorum"; + + src = fetchFromGitHub { + owner = "jpmorganchase"; + repo = pname; + rev = "v${version}"; + sha256 = "0xfdaqp9bj5dkw12gy19lxj73zh7w80j051xclsvnd41sfah86ll"; + }; + + buildInputs = [ git which ]; + + buildPhase = '' + cd "go/src/$goPackagePath" + make geth bootnode swarm + ''; + + installPhase = '' + mkdir -pv $bin/bin + cp -v build/bin/geth build/bin/bootnode build/bin/swarm $bin/bin + ''; + + meta = with stdenv.lib; { + description = "A permissioned implementation of Ethereum supporting data privacy"; + homepage = "https://www.goquorum.com/"; + license = licenses.lgpl3; + maintainers = with maintainers; [ mmahut ]; + platforms = subtractLists ["aarch64-linux"] platforms.linux; + }; +} diff --git a/pkgs/applications/blockchains/stellar-core.nix b/pkgs/applications/blockchains/stellar-core.nix index 4c3f9fe0760..6bb717a0344 100644 --- a/pkgs/applications/blockchains/stellar-core.nix +++ b/pkgs/applications/blockchains/stellar-core.nix @@ -39,7 +39,7 @@ in stdenv.mkDerivation { instances of stellar-core on the network. Optionally, stellar-core can store historical records of the ledger and participate in consensus. ''; - homepage = https://www.stellar.org/; + homepage = "https://www.stellar.org/"; platforms = [ "x86_64-linux" ]; maintainers = with maintainers; [ chris-martin ]; license = licenses.asl20; diff --git a/pkgs/applications/blockchains/tessera.nix b/pkgs/applications/blockchains/tessera.nix new file mode 100644 index 00000000000..84f7925d218 --- /dev/null +++ b/pkgs/applications/blockchains/tessera.nix @@ -0,0 +1,26 @@ +{ stdenv, fetchurl, makeWrapper, jre }: + +stdenv.mkDerivation rec { + pname = "tessera"; + version = "0.10.2"; + + src = fetchurl { + url = "https://oss.sonatype.org/service/local/repositories/releases/content/com/jpmorgan/quorum/${pname}-app/${version}/${pname}-app-${version}-app.jar"; + sha256 = "1zn8w7q0q5man0407kb82lw4mlvyiy9whq2f6izf2b5415f9s0m4"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + dontUnpack = true; + + installPhase = '' + makeWrapper ${jre}/bin/java $out/bin/tessera --add-flags "-jar $src" + ''; + + meta = with stdenv.lib; { + description = "Enterprise Implementation of Quorum's transaction manager"; + homepage = "https://github.com/jpmorganchase/tessera"; + license = licenses.asl20; + maintainers = with maintainers; [ mmahut ]; + }; +} diff --git a/pkgs/applications/blockchains/vertcoin.nix b/pkgs/applications/blockchains/vertcoin.nix index 1b8b0376331..21104012f4d 100644 --- a/pkgs/applications/blockchains/vertcoin.nix +++ b/pkgs/applications/blockchains/vertcoin.nix @@ -19,7 +19,7 @@ with stdenv.lib; stdenv.mkDerivation rec { pname = "vertcoin"; - version = "0.14.0"; + version = "0.15.0.1"; name = pname + toString (optional (!withGui) "d") + "-" + version; @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { owner = pname + "-project"; repo = pname + "-core"; rev = version; - sha256 = "00vnmrhn5mad58dyiz8rxgsrn0663ii6fdbcqm20mv1l313k4882"; + sha256 = "09q7qicw52gv225hq6wlpsf4zr4hjc8miyim5cygi5nxxrlw7kd3"; }; nativeBuildInputs = [ diff --git a/pkgs/applications/blockchains/wownero.nix b/pkgs/applications/blockchains/wownero.nix index eb813a36125..1094d7f0f7b 100644 --- a/pkgs/applications/blockchains/wownero.nix +++ b/pkgs/applications/blockchains/wownero.nix @@ -39,7 +39,7 @@ stdenv.mkDerivation rec { signatures using different participants for the same tx outputs on opposing forks. ''; - homepage = https://wownero.org/; + homepage = "https://wownero.org/"; license = licenses.bsd3; platforms = platforms.linux; maintainers = with maintainers; [ fuwa ]; diff --git a/pkgs/applications/blockchains/zcash/default.nix b/pkgs/applications/blockchains/zcash/default.nix index f6114b3c213..e2c57d514cd 100644 --- a/pkgs/applications/blockchains/zcash/default.nix +++ b/pkgs/applications/blockchains/zcash/default.nix @@ -7,15 +7,19 @@ with stdenv.lib; stdenv.mkDerivation rec { pname = "zcash"; - version = "2.1.0-1"; + version = "2.1.1-1"; src = fetchFromGitHub { owner = "zcash"; repo = "zcash"; rev = "v${version}"; - sha256 = "05bnn4lxrrcv1ha3jdfrgwg4ar576161n3j9d4gpc14ww3zgf9vz"; + sha256 = "1g5zlfzfp31my8w8nlg5fncpr2y95iv9fm04x57sjb93rgmjdh5n"; }; + patchPhase = '' + sed -i"" 's,-fvisibility=hidden,,g' src/Makefile.am + ''; + nativeBuildInputs = [ autoreconfHook pkgconfig ]; buildInputs = [ gtest gmock gmp openssl wget db62 boost17x zlib protobuf libevent libsodium librustzcash ] @@ -23,17 +27,15 @@ stdenv.mkDerivation rec { configureFlags = [ "--with-boost-libdir=${boost17x.out}/lib" ]; - patchPhase = '' - sed -i"" 's,-fvisibility=hidden,,g' src/Makefile.am - ''; - postInstall = '' cp zcutil/fetch-params.sh $out/bin/zcash-fetch-params ''; + enableParallelBuilding = true; + meta = { description = "Peer-to-peer, anonymous electronic cash system"; - homepage = https://z.cash/; + homepage = "https://z.cash/"; maintainers = with maintainers; [ rht tkerber ]; license = licenses.mit; platforms = platforms.linux; diff --git a/pkgs/applications/blockchains/zcash/librustzcash/default.nix b/pkgs/applications/blockchains/zcash/librustzcash/default.nix index 5032594468e..526adc715d4 100644 --- a/pkgs/applications/blockchains/zcash/librustzcash/default.nix +++ b/pkgs/applications/blockchains/zcash/librustzcash/default.nix @@ -1,33 +1,31 @@ { stdenv, fetchFromGitHub, rustPlatform }: rustPlatform.buildRustPackage rec { - pname = "librustzcash-unstable"; - version = "2018-10-27"; + pname = "librustzcash"; + version = "0.1.0"; src = fetchFromGitHub { owner = "zcash"; repo = "librustzcash"; - rev = "06da3b9ac8f278e5d4ae13088cf0a4c03d2c13f5"; - sha256 = "0md0pp3k97iv7kfjpfkg14pjanhrql4vafa8ggbxpkajv1j4xldv"; + rev = version; + sha256 = "0d28k29sgzrg9clynz29kpw50kbkp0a4dfdayqhmpjmsh05y6261"; }; - # Delete this on next update; see #79975 for details - legacyCargoFetcher = true; - - cargoSha256 = "166v8cxlpfslbs5gljbh7wp0lxqakayw47ikxm9r9a39n7j36mq1"; + cargoSha256 = "1wzyrcmcbrna6rjzw19c4lq30didzk4w6fs6wmvxp0xfg4qqdlax"; installPhase = '' mkdir -p $out/lib - cp target/release/librustzcash.a $out/lib/ + cp $releaseDir/librustzcash.a $out/lib/ mkdir -p $out/include cp librustzcash/include/librustzcash.h $out/include/ ''; + # The tests do pass, but they take an extremely long time to run. doCheck = false; meta = with stdenv.lib; { description = "Rust-language assets for Zcash"; - homepage = https://github.com/zcash/librustzcash; + homepage = "https://github.com/zcash/librustzcash"; maintainers = with maintainers; [ rht tkerber ]; license = with licenses; [ mit asl20 ]; platforms = platforms.unix; diff --git a/pkgs/applications/display-managers/lightdm-enso-os-greeter/default.nix b/pkgs/applications/display-managers/lightdm-enso-os-greeter/default.nix index 3128f125cd9..488ef4cfedd 100644 --- a/pkgs/applications/display-managers/lightdm-enso-os-greeter/default.nix +++ b/pkgs/applications/display-managers/lightdm-enso-os-greeter/default.nix @@ -7,7 +7,7 @@ stdenv.mkDerivation { pname = "lightdm-enso-os-greeter"; src = fetchgit { - url = https://github.com/nick92/Enso-OS; + url = "https://github.com/nick92/Enso-OS"; rev = "ed48330bfd986072bd82ac542ed8f8a7365c6427"; sha256 = "11jm181jq1vbn83h235avpdxz7pqq6prqyzki5yryy53mkj4kgxz"; }; @@ -60,7 +60,7 @@ stdenv.mkDerivation { A fork of pantheon greeter that positions elements in a central and vertigal manner and adds a blur effect to the background ''; - homepage = https://github.com/nick92/Enso-OS; + homepage = "https://github.com/nick92/Enso-OS"; platforms = platforms.linux; license = licenses.gpl3; maintainers = with maintainers; [ diff --git a/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix b/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix index b5b26d7cc43..256ecd59f4e 100644 --- a/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix +++ b/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "lightdm-mini-greeter"; - version = "0.3.4"; + version = "0.4.0"; src = fetchFromGitHub { owner = "prikhi"; repo = "lightdm-mini-greeter"; rev = version; - sha256 = "1qi0bsqi8z2zv3303ww0kd7bciz6qx8na5bkvgrqlwyvq31czai5"; + sha256 = "10hga7pmfyjdvj4xwm3djwrhk50brcpycj3p3c57pa0vnx4ill3s"; }; nativeBuildInputs = [ autoreconfHook pkgconfig wrapGAppsHook ]; @@ -29,9 +29,10 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A minimal, configurable, single-user GTK3 LightDM greeter"; - homepage = https://github.com/prikhi/lightdm-mini-greeter; + homepage = "https://github.com/prikhi/lightdm-mini-greeter"; license = licenses.gpl3; maintainers = with maintainers; [ mnacamura prikhi ]; platforms = platforms.linux; + changelog = "https://github.com/prikhi/lightdm-mini-greeter/blob/master/CHANGELOG.md"; }; } diff --git a/pkgs/applications/display-managers/lightdm-tiny-greeter/default.nix b/pkgs/applications/display-managers/lightdm-tiny-greeter/default.nix index 323df736936..7e37d134874 100644 --- a/pkgs/applications/display-managers/lightdm-tiny-greeter/default.nix +++ b/pkgs/applications/display-managers/lightdm-tiny-greeter/default.nix @@ -38,7 +38,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A tiny multi user lightdm greeter"; - homepage = https://github.com/off-world/lightdm-tiny-greeter; + homepage = "https://github.com/off-world/lightdm-tiny-greeter"; license = licenses.bsd3; maintainers = with maintainers; [ edwtjo ]; platforms = platforms.linux; diff --git a/pkgs/applications/display-managers/lightdm/default.nix b/pkgs/applications/display-managers/lightdm/default.nix index c251af74b21..1a65ebd3357 100644 --- a/pkgs/applications/display-managers/lightdm/default.nix +++ b/pkgs/applications/display-managers/lightdm/default.nix @@ -128,7 +128,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = https://github.com/CanonicalLtd/lightdm; + homepage = "https://github.com/CanonicalLtd/lightdm"; description = "A cross-desktop display manager"; platforms = platforms.linux; license = licenses.gpl3; diff --git a/pkgs/applications/display-managers/lightdm/gtk-greeter.nix b/pkgs/applications/display-managers/lightdm/gtk-greeter.nix index be586bdac9b..ab7dd90801c 100644 --- a/pkgs/applications/display-managers/lightdm/gtk-greeter.nix +++ b/pkgs/applications/display-managers/lightdm/gtk-greeter.nix @@ -64,7 +64,7 @@ stdenv.mkDerivation rec { }]; meta = with stdenv.lib; { - homepage = https://launchpad.net/lightdm-gtk-greeter; + homepage = "https://launchpad.net/lightdm-gtk-greeter"; platforms = platforms.linux; license = licenses.gpl3; maintainers = with maintainers; [ ocharles ]; diff --git a/pkgs/applications/display-managers/ly/default.nix b/pkgs/applications/display-managers/ly/default.nix index 2f0a770bc71..f16dd62bb1a 100644 --- a/pkgs/applications/display-managers/ly/default.nix +++ b/pkgs/applications/display-managers/ly/default.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "TUI display manager"; license = licenses.wtfpl; - homepage = https://github.com/cylgom/ly; + homepage = "https://github.com/cylgom/ly"; maintainers = [ maintainers.spacekookie ]; }; } diff --git a/pkgs/applications/display-managers/sddm/default.nix b/pkgs/applications/display-managers/sddm/default.nix index 735e83a0842..3ebeaa6262b 100644 --- a/pkgs/applications/display-managers/sddm/default.nix +++ b/pkgs/applications/display-managers/sddm/default.nix @@ -60,7 +60,7 @@ in mkDerivation { meta = with lib; { description = "QML based X11 display manager"; - homepage = https://github.com/sddm/sddm; + homepage = "https://github.com/sddm/sddm"; maintainers = with maintainers; [ abbradar ttuegel ]; platforms = platforms.linux; license = licenses.gpl2Plus; diff --git a/pkgs/applications/editors/aewan/default.nix b/pkgs/applications/editors/aewan/default.nix index 1bd73bebe03..56a144bdfb8 100644 --- a/pkgs/applications/editors/aewan/default.nix +++ b/pkgs/applications/editors/aewan/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { meta = { description = "Ascii-art Editor Without A Name"; - homepage = http://aewan.sourceforge.net/; + homepage = "http://aewan.sourceforge.net/"; license = stdenv.lib.licenses.gpl2Plus; platforms = stdenv.lib.platforms.unix; }; diff --git a/pkgs/applications/editors/amp/default.nix b/pkgs/applications/editors/amp/default.nix index 625a5d3c0ab..9be6d56ab34 100644 --- a/pkgs/applications/editors/amp/default.nix +++ b/pkgs/applications/editors/amp/default.nix @@ -14,8 +14,8 @@ rustPlatform.buildRustPackage rec { cargoSha256 = "09v991rl2w4c4jh7ga7q1lk6wyl2vr71j5cpniij8mcvszrz78qf"; - nativeBuildInputs = [ cmake pkgconfig ]; - buildInputs = [ openssl python3 xorg.libxcb libgit2 ] ++ stdenv.lib.optionals stdenv.isDarwin + nativeBuildInputs = [ cmake pkgconfig python3 ]; + buildInputs = [ openssl xorg.libxcb libgit2 ] ++ stdenv.lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ curl Security AppKit ]); # Tests need to write to the theme directory in HOME. diff --git a/pkgs/applications/editors/android-studio/common.nix b/pkgs/applications/editors/android-studio/common.nix index bd1685f7cdb..1a6904b2176 100644 --- a/pkgs/applications/editors/android-studio/common.nix +++ b/pkgs/applications/editors/android-studio/common.nix @@ -39,6 +39,7 @@ , nss , pciutils , pkgsi686Linux +, ps , setxkbmap , stdenv , systemd @@ -89,6 +90,7 @@ let # Runtime stuff git + ps ]}" \ --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ @@ -185,9 +187,16 @@ in runCommand IntelliJ IDEA. ''; homepage = if channel == "stable" - then https://developer.android.com/studio/index.html - else https://developer.android.com/studio/preview/index.html; - license = licenses.asl20; + then "https://developer.android.com/studio/index.html" + else "https://developer.android.com/studio/preview/index.html"; + license = with licenses; [ asl20 unfree ]; # The code is under Apache-2.0, but: + # If one selects Help -> Licenses in Android Studio, the dialog shows the following: + # "Android Studio includes proprietary code subject to separate license, + # including JetBrains CLion(R) (www.jetbrains.com/clion) and IntelliJ(R) + # IDEA Community Edition (www.jetbrains.com/idea)." + # Also: For actual development the Android SDK is required and the Google + # binaries are also distributed as proprietary software (unlike the + # source-code itself). platforms = [ "x86_64-linux" ]; maintainers = with maintainers; [ primeos ]; }; diff --git a/pkgs/applications/editors/android-studio/default.nix b/pkgs/applications/editors/android-studio/default.nix index 8354a04b2c5..8869f8a0f62 100644 --- a/pkgs/applications/editors/android-studio/default.nix +++ b/pkgs/applications/editors/android-studio/default.nix @@ -8,19 +8,19 @@ let inherit (gnome2) GConf gnome_vfs; }; stableVersion = { - version = "3.6.1.0"; # "Android Studio 3.6.1" - build = "192.6241897"; - sha256Hash = "1mwzk18224bl8hbw9cdxwzgj5cfain4y70q64cpj4p0snffxqm77"; + version = "3.6.3.0"; # "Android Studio 3.6.3" + build = "192.6392135"; + sha256Hash = "0apxmp341m7mbpm2df3qvsbaifwy6yqq746kbhbwlw8bn9hrzv1k"; }; betaVersion = { - version = "4.0.0.11"; # "Android Studio 4.0 Beta 2" - build = "193.6254973"; - sha256Hash = "0i4n5kxnfxnz3y44ba0x2j8nkmss4gchrzcdnb9wf6xc1jqrjwcm"; + version = "4.0.0.14"; # "Android Studio 4.0 Beta 5" + build = "193.6401094"; + sha256Hash = "11fmpf58z44i78ldkapzivz6md65744vqczzbwv8mkjkv9nz95rs"; }; latestVersion = { # canary & dev - version = "4.1.0.2"; # "Android Studio 4.1 Canary 2" - build = "193.6264773"; - sha256Hash = "0m09q4jp653i9jlqsjplx3d64xkdm27c35781yz6h5rw0a1sq6kz"; + version = "4.1.0.7"; # "Android Studio 4.1 Canary 7" + build = "193.6401718"; + sha256Hash = "1xa61rhi7dgxm0y6yl5dxd09x530mzyxvx9bp1jprzfwvc7s0byh"; }; in { # Attributes are named by their corresponding release channels diff --git a/pkgs/applications/editors/uberwriter/default.nix b/pkgs/applications/editors/apostrophe/default.nix similarity index 74% rename from pkgs/applications/editors/uberwriter/default.nix rename to pkgs/applications/editors/apostrophe/default.nix index 48ebc79e705..391a8734563 100644 --- a/pkgs/applications/editors/uberwriter/default.nix +++ b/pkgs/applications/editors/apostrophe/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, meson, ninja, cmake +{ stdenv, fetchFromGitLab, meson, ninja, cmake , wrapGAppsHook, pkgconfig, desktop-file-utils , appstream-glib, pythonPackages, glib, gobject-introspection , gtk3, webkitgtk, glib-networking, gnome3, gspell, texlive @@ -10,14 +10,15 @@ let texliveDist = texlive.combined.scheme-medium; in stdenv.mkDerivation rec { - pname = "uberwriter"; - version = "unstable-2020-01-24"; + pname = "apostrophe"; + version = "2.2.0.2"; - src = fetchFromGitHub { - owner = pname; + src = fetchFromGitLab { + owner = "somas"; repo = pname; - rev = "0647b413407eb8789a25c353602c4ac979dc342a"; - sha256 = "19z52fpbf0p7dzx7q0r5pk3nn0c8z69g1hv6db0cqp61cqv5z95q"; + domain = "gitlab.gnome.org"; + rev = "v${version}"; + sha256 = "13wvfkg0jw9mayd9ifzkqnhf8fmfjgr1lsj4niqbyrw130y9r9f6"; }; nativeBuildInputs = [ meson ninja cmake pkgconfig desktop-file-utils @@ -30,10 +31,10 @@ in stdenv.mkDerivation rec { postPatch = '' patchShebangs --build build-aux/meson_post_install.py - substituteInPlace uberwriter/config.py --replace "/usr/share/uberwriter" "$out/share/uberwriter" + substituteInPlace ${pname}/config.py --replace "/usr/share/${pname}" "$out/share/${pname}" # get rid of unused distributed dependencies - rm -r uberwriter/{pylocales,pressagio} + rm -r ${pname}/pylocales ''; preFixup = '' @@ -46,7 +47,7 @@ in stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = http://uberwriter.github.io/uberwriter/; + homepage = "https://gitlab.gnome.org/somas/apostrophe"; description = "A distraction free Markdown editor for GNU/Linux"; license = licenses.gpl3; platforms = platforms.linux; diff --git a/pkgs/applications/editors/aseprite/default.nix b/pkgs/applications/editors/aseprite/default.nix index 6e6d7db8177..4ba8932fec2 100644 --- a/pkgs/applications/editors/aseprite/default.nix +++ b/pkgs/applications/editors/aseprite/default.nix @@ -98,8 +98,10 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; + passthru = { inherit skia; }; + meta = with lib; { - homepage = https://www.aseprite.org/; + homepage = "https://www.aseprite.org/"; description = "Animated sprite editor & pixel art tool"; license = if unfree then licenses.unfree else licenses.gpl2; longDescription = diff --git a/pkgs/applications/editors/aseprite/skia.nix b/pkgs/applications/editors/aseprite/skia.nix index c89ebd4ad0c..141d51bed0f 100644 --- a/pkgs/applications/editors/aseprite/skia.nix +++ b/pkgs/applications/editors/aseprite/skia.nix @@ -6,6 +6,14 @@ let # skia-deps.nix is generated by: ./skia-make-deps.sh 'angle2|dng_sdk|piex|sfntly' depSrcs = import ./skia-deps.nix { inherit fetchgit; }; + gnOld = gn.overrideAttrs (oldAttrs: rec { + version = "20190403"; + src = fetchgit { + url = "https://gn.googlesource.com/gn"; + rev = "64b846c96daeb3eaf08e26d8a84d8451c6cb712b"; + sha256 = "1v2kzsshhxn0ck6gd5w16gi2m3higwd9vkyylmsczxfxnw8skgpy"; + }; + }); in stdenv.mkDerivation { name = "skia-aseprite-m71"; @@ -14,11 +22,11 @@ stdenv.mkDerivation { owner = "aseprite"; repo = "skia"; # latest commit from aseprite-m71 branch - rev = "89e4ca4352d05adc892f5983b108433f29b2c0c2"; + rev = "89e4ca4352d05adc892f5983b108433f29b2c0c2"; # TODO: Remove the gnOld override sha256 = "0n3vrkswvi6rib9zv2pzi18h3j5wm7flmgkgaikcm6q7iw4l2c7x"; }; - nativeBuildInputs = [ python2 gn ninja ]; + nativeBuildInputs = [ python2 gnOld ninja ]; buildInputs = [ fontconfig expat icu58 libglvnd libjpeg libpng libwebp zlib diff --git a/pkgs/applications/editors/atom/default.nix b/pkgs/applications/editors/atom/default.nix index 0a7e362e75a..fbe08dbfe7b 100644 --- a/pkgs/applications/editors/atom/default.nix +++ b/pkgs/applications/editors/atom/default.nix @@ -74,7 +74,7 @@ let meta = with stdenv.lib; { description = "A hackable text editor for the 21st Century"; - homepage = https://atom.io/; + homepage = "https://atom.io/"; license = licenses.mit; maintainers = with maintainers; [ offline nequissimus ysndr ]; platforms = platforms.x86_64; diff --git a/pkgs/applications/editors/bluefish/default.nix b/pkgs/applications/editors/bluefish/default.nix index f78f7fbf914..ff1daef8b80 100644 --- a/pkgs/applications/editors/bluefish/default.nix +++ b/pkgs/applications/editors/bluefish/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A powerful editor targeted towards programmers and webdevelopers"; - homepage = http://bluefish.openoffice.nl/; + homepage = "http://bluefish.openoffice.nl/"; license = licenses.gpl3Plus; maintainers = [maintainers.vbgl]; platforms = platforms.all; diff --git a/pkgs/applications/editors/brackets/default.nix b/pkgs/applications/editors/brackets/default.nix index 439b721632d..3e01bcdb0f9 100644 --- a/pkgs/applications/editors/brackets/default.nix +++ b/pkgs/applications/editors/brackets/default.nix @@ -50,7 +50,7 @@ stdenv.mkDerivation rec { meta = { description = "An open source code editor for the web, written in JavaScript, HTML and CSS"; - homepage = http://brackets.io/; + homepage = "http://brackets.io/"; license = licenses.mit; maintainers = [ maintainers.matejc ]; platforms = [ "x86_64-linux" ]; diff --git a/pkgs/applications/editors/bvi/default.nix b/pkgs/applications/editors/bvi/default.nix index 2e79b80d610..8a61e0252bc 100644 --- a/pkgs/applications/editors/bvi/default.nix +++ b/pkgs/applications/editors/bvi/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Hex editor with vim style keybindings"; - homepage = http://bvi.sourceforge.net/download.html; + homepage = "http://bvi.sourceforge.net/download.html"; license = licenses.gpl2; maintainers = with maintainers; [ pSub ]; platforms = with platforms; linux ++ darwin; diff --git a/pkgs/applications/editors/bviplus/default.nix b/pkgs/applications/editors/bviplus/default.nix index 5fab7fe9da6..2cf094c091a 100644 --- a/pkgs/applications/editors/bviplus/default.nix +++ b/pkgs/applications/editors/bviplus/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Ncurses based hex editor with a vim-like interface"; - homepage = http://bviplus.sourceforge.net; + homepage = "http://bviplus.sourceforge.net"; license = licenses.gpl3; platforms = platforms.linux; maintainers = with maintainers; [ cstrahan ]; diff --git a/pkgs/applications/editors/codeblocks/default.nix b/pkgs/applications/editors/codeblocks/default.nix index cbed08f317f..4e2ac8a50f1 100644 --- a/pkgs/applications/editors/codeblocks/default.nix +++ b/pkgs/applications/editors/codeblocks/default.nix @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { It is designed to be very extensible and fully configurable. Finally, an IDE with all the features you need, having a consistent look, feel and operation across platforms. ''; - homepage = http://www.codeblocks.org; + homepage = "http://www.codeblocks.org"; license = licenses.gpl3; }; } diff --git a/pkgs/applications/editors/dhex/default.nix b/pkgs/applications/editors/dhex/default.nix index efb3a2f9ffa..0a635b7ba82 100644 --- a/pkgs/applications/editors/dhex/default.nix +++ b/pkgs/applications/editors/dhex/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { meta = { description = "A themeable hex editor with diff mode"; - homepage = http://www.dettus.net/dhex/; + homepage = "http://www.dettus.net/dhex/"; license = stdenv.lib.licenses.gpl2; maintainers = with stdenv.lib.maintainers; [qknight]; platforms = with stdenv.lib.platforms; linux; diff --git a/pkgs/applications/editors/dit/default.nix b/pkgs/applications/editors/dit/default.nix index 2f83b0b8d99..f973e67599c 100644 --- a/pkgs/applications/editors/dit/default.nix +++ b/pkgs/applications/editors/dit/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "dit"; - version = "0.5"; + version = "0.6"; src = fetchurl { url = "https://hisham.hm/dit/releases/${version}/${pname}-${version}.tar.gz"; - sha256 = "05vhr1gl3bb5fg49v84xhmjaqdjw6djampvylw10ydvbpnpvjvjc"; + sha256 = "0ryvm54xxkg2gcgz4r8zdxrl6j2h8mgg9nfqmdmdr31qkcj8wjsq"; }; buildInputs = [ ncurses lua ] @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A console text editor for Unix that you already know how to use"; - homepage = https://hisham.hm/dit/; + homepage = "https://hisham.hm/dit/"; license = licenses.gpl2; platforms = with platforms; linux; maintainers = with maintainers; [ davidak ]; diff --git a/pkgs/applications/editors/eclipse/build-eclipse.nix b/pkgs/applications/editors/eclipse/build-eclipse.nix index 6ae9eb078e2..8b6a0c164e9 100644 --- a/pkgs/applications/editors/eclipse/build-eclipse.nix +++ b/pkgs/applications/editors/eclipse/build-eclipse.nix @@ -1,5 +1,5 @@ { stdenv, makeDesktopItem, freetype, fontconfig, libX11, libXrender -, zlib, jdk, glib, gtk3, libXtst, gsettings-desktop-schemas, webkitgtk +, zlib, jdk, glib, gtk, libXtst, gsettings-desktop-schemas, webkitgtk , makeWrapper, ... }: { name, src ? builtins.getAttr stdenv.hostPlatform.system sources, sources ? null, description }: @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { }; buildInputs = [ - fontconfig freetype glib gsettings-desktop-schemas gtk3 jdk libX11 + fontconfig freetype glib gsettings-desktop-schemas gtk jdk libX11 libXrender libXtst makeWrapper zlib ] ++ stdenv.lib.optional (webkitgtk != null) webkitgtk; @@ -41,7 +41,7 @@ stdenv.mkDerivation rec { makeWrapper $out/eclipse/eclipse $out/bin/eclipse \ --prefix PATH : ${jdk}/bin \ - --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath ([ glib gtk3 libXtst ] ++ stdenv.lib.optional (webkitgtk != null) webkitgtk)} \ + --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath ([ glib gtk libXtst ] ++ stdenv.lib.optional (webkitgtk != null) webkitgtk)} \ --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \ --add-flags "-configuration \$HOME/.eclipse/''${productId}_$productVersion/configuration" @@ -53,7 +53,7 @@ stdenv.mkDerivation rec { ''; # */ meta = { - homepage = http://www.eclipse.org/; + homepage = "http://www.eclipse.org/"; inherit description; platforms = [ "x86_64-linux" ]; }; diff --git a/pkgs/applications/editors/eclipse/default.nix b/pkgs/applications/editors/eclipse/default.nix index 4b3a7e11f3b..66bdfb15c69 100644 --- a/pkgs/applications/editors/eclipse/default.nix +++ b/pkgs/applications/editors/eclipse/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl, makeDesktopItem, makeWrapper , freetype, fontconfig, libX11, libXrender, zlib -, glib, gtk3, libXtst, jdk, gsettings-desktop-schemas +, glib, gtk3, gtk2, libXtst, jdk, jdk8, gsettings-desktop-schemas , webkitgtk ? null # for internal web browser , buildEnv, runCommand , callPackage @@ -13,15 +13,16 @@ assert stdenv ? glibc; let platform_major = "4"; - platform_minor = "14"; - year = "2019"; - month = "12"; - timestamp = "201912100610"; + platform_minor = "15"; + year = "2020"; + month = "03"; + timestamp = "${year}${month}050155"; + gtk = gtk3; in rec { - buildEclipse = import ./build-eclipse.nix { + buildEclipse = callPackage ./build-eclipse.nix { inherit stdenv makeDesktopItem freetype fontconfig libX11 libXrender zlib - jdk glib gtk3 libXtst gsettings-desktop-schemas webkitgtk + jdk glib gtk libXtst gsettings-desktop-schemas webkitgtk makeWrapper; }; @@ -32,8 +33,8 @@ in rec { description = "Eclipse IDE for C/C++ Developers"; src = fetchurl { - url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-cpp-${year}-${month}-R-linux-gtk-x86_64.tar.gz"; - sha512 = "28h8z45j7zlcbvvabzsniwqls1lns21isx69y6l207a869rknp9vzg6506q6zalj9b49j8c7ynkn379xgbzp07i6zw3dzk3pqp2rgam"; + url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-cpp-${year}-${month}-R-incubation-linux-gtk-x86_64.tar.gz"; + sha512 = "2wy4a3p347fajr9zsfz1zlvz6jpy3vficdry27m5fs0azfmxmy2cfns5hh18sin4xqq3jvqppfqxh41rzcpcmiq12zhc6cz42brqgxw"; }; }; @@ -45,7 +46,7 @@ in rec { src = fetchurl { url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-modeling-${year}-${month}-R-linux-gtk-x86_64.tar.gz"; - sha512 = "1g1zsz3c2kx4vs1mjpcisbk81lk4hsr1z2fw46lih825c53vwf59snp8d97c8yw2i25y0ml48nc1nskib6qnif8m2h6rpah7kgmi8ay"; + sha512 = "0qccsclay9000sqrymm8hkg70a4jcvd70vymw1kkxsklcs7dnrhch55an98gbzf9r0jgd1ap62a4hyxlnm6hdqqniwcgdza0i4nwwgj"; }; }; @@ -57,25 +58,20 @@ in rec { src = fetchurl { url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops${platform_major}/R-${platform_major}.${platform_minor}-${timestamp}/eclipse-platform-${platform_major}.${platform_minor}-linux-gtk-x86_64.tar.gz"; - sha512 = "05nsldw937l1g9fj964njivgkf2ipk1rh1jg5w8svdhpp3v1pp3iinfm2mz9kk8namwfkx8krsvsxcgvqyzgrkhf42wqh53vqrjf70h"; + sha512 = "01rv5x7qqm0a2p30828z2snms3nb2kjx9si63sr5rdkdgr3vbh6xq8n8fn757dqazmpz9zskmwxxmbxnwycfllhgb8msb77pcy3fpg7"; }; }; ### Eclipse Scala SDK - eclipse-scala-sdk = buildEclipse { - name = "eclipse-scala-sdk-4.4.1"; - description = "Eclipse IDE for Scala Developers"; - src = - if stdenv.hostPlatform.system == "x86_64-linux" then - fetchurl { # tested - url = https://downloads.typesafe.com/scalaide-pack/4.4.1-vfinal-luna-211-20160504/scala-SDK-4.4.1-vfinal-2.11-linux.gtk.x86_64.tar.gz; - sha256 = "4c2d1ac68384e12a11a851cf0fc7757aea087eba69329b21d539382a65340d27"; - } - else - fetchurl { # untested - url = https://downloads.typesafe.com/scalaide-pack/4.4.1-vfinal-luna-211-20160504/scala-SDK-4.4.1-vfinal-2.11-linux.gtk.x86.tar.gz; - sha256 = "35383cb09567187e14a30c15de9fd9aa0eef99e4bbb342396ce3acd11fb5cbac"; + eclipse-scala-sdk = + buildEclipse.override { jdk = jdk8; gtk = gtk2; } { + name = "eclipse-scala-sdk-4.7.0"; + description = "Eclipse IDE for Scala Developers"; + src = + fetchurl { + url = "https://downloads.typesafe.com/scalaide-pack/4.7.0-vfinal-oxygen-212-20170929/scala-SDK-4.7.0-vfinal-2.12-linux.gtk.x86_64.tar.gz"; + sha256 = "1n5w2a7mh9ajv6fxcas1gpgwb04pdxbr9v5dzr67gsz5bhahq4ya"; }; }; @@ -87,7 +83,7 @@ in rec { src = fetchurl { url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops${platform_major}/R-${platform_major}.${platform_minor}-${timestamp}/eclipse-SDK-${platform_major}.${platform_minor}-linux-gtk-x86_64.tar.gz"; - sha512 = "0dcbxzjqc27v1faz16yxqcm6zrbna4kkd32xy7paadiwn125y6ijx8zvda4kc7bih6v5b9ch2i0z5ndra1lcjcc88z6cklh0vngjkh1"; + sha512 = "33ra8qslwz73240xzjvr751lpl94drlcf425a7kxngq1qla2cda7gxr71bxlr9fm2hrqq0h097ihmg0ix9hv2dmwnc76gp4hwwrlk41"; }; }; @@ -99,7 +95,7 @@ in rec { src = fetchurl { url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-java-${year}-${month}-R-linux-gtk-x86_64.tar.gz"; - sha512 = "21lhgv3z23mn8q0gffgxlfwhyxb348zjnzv716zsys7h7kj5vigl45q9mz0qrl11524rxx7jwi901jjd4l258w9kp7wzlq0d5n1r39m"; + sha512 = "0ffa1q19z31j8i552mp9zg4v0p4iv002cvlzh49ia8hi0hgk75pbkp6vxlr75jz0as03n71f0ww8xbflji31qgwfmy6rs1rzqihfff9"; }; }; diff --git a/pkgs/applications/editors/eclipse/plugins.nix b/pkgs/applications/editors/eclipse/plugins.nix index 87c32c30e19..fab7317868a 100644 --- a/pkgs/applications/editors/eclipse/plugins.nix +++ b/pkgs/applications/editors/eclipse/plugins.nix @@ -106,7 +106,7 @@ rec { }; meta = with stdenv.lib; { - homepage = https://github.com/tobiasmelcher/EclipseAceJump; + homepage = "https://github.com/tobiasmelcher/EclipseAceJump"; description = "Provides fast jumps to text based on initial letter"; license = licenses.mit; platforms = platforms.all; @@ -153,7 +153,7 @@ rec { meta = with stdenv.lib; { description = "A powerful parser generator for processing structured text or binary files"; - homepage = https://www.antlr.org/; + homepage = "https://www.antlr.org/"; license = licenses.bsd3; platforms = platforms.all; maintainers = [ maintainers.rycee ]; @@ -176,7 +176,7 @@ rec { meta = with stdenv.lib; { description = "A powerful parser generator for processing structured text or binary files"; - homepage = https://www.antlr.org/; + homepage = "https://www.antlr.org/"; license = licenses.bsd3; platforms = platforms.all; maintainers = [ maintainers.rycee ]; @@ -198,7 +198,7 @@ rec { }; meta = with stdenv.lib; { - homepage = http://andrei.gmxhome.de/anyedit/; + homepage = "http://andrei.gmxhome.de/anyedit/"; description = "Adds new tools to the context menu of text-based editors"; license = licenses.epl10; platforms = platforms.all; @@ -221,7 +221,7 @@ rec { }; meta = with stdenv.lib; { - homepage = https://github.com/cypher256/eclipse-encoding-plugin; + homepage = "https://github.com/cypher256/eclipse-encoding-plugin"; description = "Show file encoding and line ending for the active editor in the eclipse status bar"; license = licenses.epl10; platforms = platforms.all; @@ -244,7 +244,7 @@ rec { }; meta = with stdenv.lib; { - homepage = http://andrei.gmxhome.de/bytecode/; + homepage = "http://andrei.gmxhome.de/bytecode/"; description = "Shows disassembled bytecode of current java editor or class file"; license = licenses.bsd2; platforms = platforms.all; @@ -254,16 +254,16 @@ rec { cdt = buildEclipseUpdateSite rec { name = "cdt-${version}"; - version = "9.10.0"; + version = "9.11.0"; src = fetchzip { stripRoot = false; - url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/tools/cdt/releases/9.10/${name}/${name}.zip"; - sha256 = "11nbrcvgbg9l3cmp3v3y8y0vldzcf6qlpp185a6dzabdcij6gz5m"; + url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/tools/cdt/releases/9.11/${name}/${name}.zip"; + sha256 = "1730w6rbv649nzfalfd10p2ph0z9rbrrcflga0n1dpmg181xh9lk"; }; meta = with stdenv.lib; { - homepage = https://eclipse.org/cdt/; + homepage = "https://eclipse.org/cdt/"; description = "C/C++ development tooling"; license = licenses.epl10; platforms = platforms.all; @@ -282,7 +282,7 @@ rec { }; meta = with stdenv.lib; { - homepage = https://eclipse-cs.sourceforge.net/; + homepage = "https://eclipse-cs.sourceforge.net/"; description = "Checkstyle integration into the Eclipse IDE"; license = licenses.lgpl21; platforms = platforms.all; @@ -306,7 +306,7 @@ rec { }; meta = with stdenv.lib; { - homepage = http://eclipsecolorthemes.org/; + homepage = "http://eclipsecolorthemes.org/"; description = "Plugin to switch color themes conveniently and without side effects"; license = licenses.epl10; platforms = platforms.all; @@ -339,7 +339,7 @@ rec { propagatedBuildInputs = [ zest ]; meta = with stdenv.lib; { - homepage = http://www2.cs.tum.edu/projects/cup/eclipse.php; + homepage = "http://www2.cs.tum.edu/projects/cup/eclipse.php"; description = "IDE for developing CUP based parsers"; platforms = platforms.all; maintainers = [ maintainers.romildo ]; @@ -367,7 +367,7 @@ rec { }; meta = with stdenv.lib; { - homepage = https://www.drools.org/; + homepage = "https://www.drools.org/"; description = "Drools is a Business Rules Management System (BRMS) solution"; license = licenses.asl20; }; @@ -384,7 +384,7 @@ rec { }; meta = with stdenv.lib; { - homepage = https://www.eclemma.org/; + homepage = "https://www.eclemma.org/"; description = "EclEmma is a free Java code coverage tool for Eclipse"; license = licenses.epl10; platforms = platforms.all; @@ -407,7 +407,7 @@ rec { }; meta = with stdenv.lib; { - homepage = http://findbugs.sourceforge.net/; + homepage = "http://findbugs.sourceforge.net/"; description = "Plugin that uses static analysis to look for bugs in Java code"; license = licenses.epl10; platforms = platforms.all; @@ -426,7 +426,7 @@ rec { }; meta = with stdenv.lib; { - homepage = http://gnuarmeclipse.livius.net/; + homepage = "http://gnuarmeclipse.livius.net/"; description = "GNU ARM Eclipse Plug-ins"; license = licenses.epl10; platforms = platforms.all; @@ -465,7 +465,7 @@ rec { meta = with stdenv.lib; { description = "Adds support for JSON files to Eclipse"; - homepage = https://github.com/boothen/Json-Eclipse-Plugin; + homepage = "https://github.com/boothen/Json-Eclipse-Plugin"; license = licenses.epl10; platforms = platforms.all; maintainers = [ maintainers.rycee ]; @@ -474,16 +474,16 @@ rec { jdt = buildEclipseUpdateSite rec { name = "jdt-${version}"; - version = "4.14"; + version = "4.15"; src = fetchzip { stripRoot = false; - url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.14-201912100610/org.eclipse.jdt-4.14.zip; - sha256 = "1c2a23qviv58xljpq3yb37ra8cqw7jh52hmzqlg1nij2sdxb6hm5"; + url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-${version}-202003050155/org.eclipse.jdt-${version}.zip"; + sha256 = "1dm4qgfb6rm7w0dk8br071c7wy0ybp7zrwvr3i02c2bxzy2psz7q"; }; meta = with stdenv.lib; { - homepage = https://www.eclipse.org/jdt/; + homepage = "https://www.eclipse.org/jdt/"; description = "Eclipse Java development tools"; license = licenses.epl10; platforms = platforms.all; @@ -506,7 +506,7 @@ rec { }; meta = with stdenv.lib; { - homepage = https://github.com/angelozerr/jdt-codemining; + homepage = "https://github.com/angelozerr/jdt-codemining"; description = "Provides JDT Java CodeMining"; license = licenses.epl10; platforms = platforms.all; @@ -532,7 +532,7 @@ rec { }; meta = with stdenv.lib; { - homepage = https://github.com/RustDT; + homepage = "https://github.com/RustDT"; description = "Rust development tooling"; license = licenses.epl10; platforms = platforms.all; @@ -549,7 +549,7 @@ rec { }; meta = with stdenv.lib; { - homepage = http://scala-ide.org/; + homepage = "http://scala-ide.org/"; description = "The Scala IDE for Eclipse"; license = licenses.bsd3; platforms = platforms.all; @@ -568,7 +568,7 @@ rec { }; meta = with stdenv.lib; { - homepage = https://spotbugs.github.io/; + homepage = "https://spotbugs.github.io/"; description = "Plugin that uses static analysis to look for bugs in Java code"; license = licenses.lgpl21; platforms = platforms.all; @@ -591,7 +591,7 @@ rec { }; meta = with stdenv.lib; { - homepage = https://testng.org/doc/; + homepage = "https://testng.org/doc/"; description = "Eclipse plugin for the TestNG testing framework"; license = licenses.asl20; platforms = platforms.all; @@ -636,7 +636,7 @@ rec { }; meta = with stdenv.lib; { - homepage = https://github.com/oyse/yedit; + homepage = "https://github.com/oyse/yedit"; description = "A YAML editor plugin for Eclipse"; license = licenses.epl10; platforms = platforms.all; @@ -654,7 +654,7 @@ rec { }; meta = with stdenv.lib; { - homepage = https://www.eclipse.org/gef/zest/; + homepage = "https://www.eclipse.org/gef/zest/"; description = "The Eclipse Visualization Toolkit"; platforms = platforms.all; maintainers = [ maintainers.romildo ]; diff --git a/pkgs/applications/editors/edit/default.nix b/pkgs/applications/editors/edit/default.nix index 27c13c0cb39..05220600261 100644 --- a/pkgs/applications/editors/edit/default.nix +++ b/pkgs/applications/editors/edit/default.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation { version = "20160425"; src = fetchgit { - url = git://c9x.me/ed.git; + url = "git://c9x.me/ed.git"; rev = "323d49b68c5e804ed3b8cada0e2274f1589b3484"; sha256 = "0wv8i3ii7cd9bqhjpahwp2g5fcmyk365nc7ncmvl79cxbz3f7y8v"; }; @@ -31,7 +31,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "A relaxing mix of Vi and ACME"; - homepage = http://c9x.me/edit; + homepage = "http://c9x.me/edit"; license = licenses.publicDomain; maintainers = [ maintainers.vrthra ]; platforms = platforms.linux; diff --git a/pkgs/applications/editors/elvis/default.nix b/pkgs/applications/editors/elvis/default.nix index 4b7e4c8a3ca..3a6c8c97b22 100644 --- a/pkgs/applications/editors/elvis/default.nix +++ b/pkgs/applications/editors/elvis/default.nix @@ -39,7 +39,7 @@ stdenv.mkDerivation { configureFlags = [ "--ioctl=termios" ]; meta = { - homepage = http://elvis.vi-editor.org/; + homepage = "http://elvis.vi-editor.org/"; description = "A vi clone for Unix and other operating systems"; license = stdenv.lib.licenses.free; }; diff --git a/pkgs/applications/editors/emacs-modes/cedet/default.nix b/pkgs/applications/editors/emacs-modes/cedet/default.nix index 5fbe095c4f3..45f20fccad9 100644 --- a/pkgs/applications/editors/emacs-modes/cedet/default.nix +++ b/pkgs/applications/editors/emacs-modes/cedet/default.nix @@ -43,7 +43,7 @@ stdenv.mkDerivation rec { license = stdenv.lib.licenses.gpl2Plus; - homepage = http://cedet.sourceforge.net/; + homepage = "http://cedet.sourceforge.net/"; # Fails with `semantic-idle.el:42:1:Error: Invalid function: class-p` broken = true; diff --git a/pkgs/applications/editors/emacs-modes/color-theme-solarized/default.nix b/pkgs/applications/editors/emacs-modes/color-theme-solarized/default.nix index 33f2ad79ea0..ba54e5f4341 100644 --- a/pkgs/applications/editors/emacs-modes/color-theme-solarized/default.nix +++ b/pkgs/applications/editors/emacs-modes/color-theme-solarized/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Precision colors for machines and people"; - homepage = http://ethanschoonover.com/solarized; + homepage = "http://ethanschoonover.com/solarized"; maintainers = [ maintainers.samuelrivas ]; license = licenses.mit; platforms = platforms.all; diff --git a/pkgs/applications/editors/emacs-modes/elpa-generated.nix b/pkgs/applications/editors/emacs-modes/elpa-generated.nix index 61275d9da4c..e0e28f53b81 100644 --- a/pkgs/applications/editors/emacs-modes/elpa-generated.nix +++ b/pkgs/applications/editors/emacs-modes/elpa-generated.nix @@ -925,10 +925,10 @@ elpaBuild { pname = "ebdb"; ename = "ebdb"; - version = "0.6.13"; + version = "0.6.16"; src = fetchurl { - url = "https://elpa.gnu.org/packages/ebdb-0.6.13.tar"; - sha256 = "1nxbp7w4xxij07q8manc15b896sl10yh2h1cg88prdqbw1wk62qr"; + url = "https://elpa.gnu.org/packages/ebdb-0.6.16.tar"; + sha256 = "0yn0nqjp68kwlrd4qs9fg3xizm9jnddkkyw25l0llq04b53zgjdl"; }; packageRequires = [ cl-lib emacs seq ]; meta = { @@ -1005,10 +1005,10 @@ elpaBuild { pname = "eglot"; ename = "eglot"; - version = "1.5"; + version = "1.6"; src = fetchurl { - url = "https://elpa.gnu.org/packages/eglot-1.5.tar"; - sha256 = "00ifgz9r9xvy19zsz1yfls6n1acvms14p86nbw0x6ldjgvpf279i"; + url = "https://elpa.gnu.org/packages/eglot-1.6.tar"; + sha256 = "15hd6sx7qrpvlvhwwkcgdiki8pswwf4mm7hkm0xvznskfcp44spx"; }; packageRequires = [ emacs flymake jsonrpc ]; meta = { @@ -1070,10 +1070,10 @@ elpaBuild { pname = "elisp-benchmarks"; ename = "elisp-benchmarks"; - version = "1.2"; + version = "1.4"; src = fetchurl { - url = "https://elpa.gnu.org/packages/elisp-benchmarks-1.2.tar"; - sha256 = "0grm4qw3aaf3hzrfg0vdgb5q67haappbc77qjgsy4jip85z7njmj"; + url = "https://elpa.gnu.org/packages/elisp-benchmarks-1.4.tar"; + sha256 = "18ia04aq4pqa8374x60g3g66jqmm17c6n904naa0jhqphlgam8pb"; }; packageRequires = []; meta = { @@ -1367,10 +1367,10 @@ elpaBuild { pname = "gnorb"; ename = "gnorb"; - version = "1.6.5"; + version = "1.6.6"; src = fetchurl { - url = "https://elpa.gnu.org/packages/gnorb-1.6.5.tar"; - sha256 = "1har3j8gb65mawrwn93939jg157wbap138qa1z1myznrrish6vzc"; + url = "https://elpa.gnu.org/packages/gnorb-1.6.6.tar"; + sha256 = "1vlb9q7a622qylrgip5ld2yrzp4l58gl543i2jdxr7jxvamy22bp"; }; packageRequires = [ cl-lib ]; meta = { @@ -1572,7 +1572,7 @@ license = lib.licenses.free; }; }) {}; - ioccur = callPackage ({ elpaBuild, fetchurl, lib }: + ioccur = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }: elpaBuild { pname = "ioccur"; ename = "ioccur"; @@ -1581,7 +1581,7 @@ url = "https://elpa.gnu.org/packages/ioccur-2.4.el"; sha256 = "1isid3kgsi5qkz27ipvmp9v5knx0qigmv7lz12mqdkwv8alns1p9"; }; - packageRequires = []; + packageRequires = [ cl-lib emacs ]; meta = { homepage = "https://elpa.gnu.org/packages/ioccur.html"; license = lib.licenses.free; @@ -2011,10 +2011,10 @@ elpaBuild { pname = "modus-operandi-theme"; ename = "modus-operandi-theme"; - version = "0.6.0"; + version = "0.7.0"; src = fetchurl { - url = "https://elpa.gnu.org/packages/modus-operandi-theme-0.6.0.el"; - sha256 = "10smvzaxp90lsg0g61s2nzmfxwnlrxq9dv4rn771vlhra249y08v"; + url = "https://elpa.gnu.org/packages/modus-operandi-theme-0.7.0.el"; + sha256 = "17zvcqplbl3rk39k61v43ganzv06j49rlyickanwll5m1a3iibw2"; }; packageRequires = [ emacs ]; meta = { @@ -2026,10 +2026,10 @@ elpaBuild { pname = "modus-vivendi-theme"; ename = "modus-vivendi-theme"; - version = "0.6.0"; + version = "0.7.0"; src = fetchurl { - url = "https://elpa.gnu.org/packages/modus-vivendi-theme-0.6.0.el"; - sha256 = "1b7wkz779f020gpil4spbdzmg2fx6l48wk1138564cv9kx3nkkz2"; + url = "https://elpa.gnu.org/packages/modus-vivendi-theme-0.7.0.el"; + sha256 = "1w4vrg39dghghkvll3h4kmzykc3zpp6pbychb39gcc13z2b06v8g"; }; packageRequires = [ emacs ]; meta = { @@ -2215,10 +2215,10 @@ elpaBuild { pname = "oauth2"; ename = "oauth2"; - version = "0.11"; + version = "0.13"; src = fetchurl { - url = "https://elpa.gnu.org/packages/oauth2-0.11.el"; - sha256 = "0ydkc9jazsnbbvfhd47mql52y7k06n3z7r0naqxkwb99j9blqsmp"; + url = "https://elpa.gnu.org/packages/oauth2-0.13.el"; + sha256 = "0y5nbdwxz2hfr09xgsqgyv60vgx0rsaisibcpkz00klvgg26w33r"; }; packageRequires = []; meta = { @@ -2320,10 +2320,10 @@ elpaBuild { pname = "orgalist"; ename = "orgalist"; - version = "1.11"; + version = "1.12"; src = fetchurl { - url = "https://elpa.gnu.org/packages/orgalist-1.11.el"; - sha256 = "0zbqkk540rax32s8szp5zgz3a02zw88fc1dmjmyw6h3ls04m91kl"; + url = "https://elpa.gnu.org/packages/orgalist-1.12.el"; + sha256 = "1hwm7j0hbv2pg9w885ky1c9qga3grcfq8v216jv2ivkw8xzavysd"; }; packageRequires = [ emacs ]; meta = { @@ -2455,10 +2455,10 @@ elpaBuild { pname = "phps-mode"; ename = "phps-mode"; - version = "0.3.38"; + version = "0.3.43"; src = fetchurl { - url = "https://elpa.gnu.org/packages/phps-mode-0.3.38.tar"; - sha256 = "1m8f1z259c66k0hf0cfjqidfd0cra2c2mb7k5lj71v1kfckwj6bh"; + url = "https://elpa.gnu.org/packages/phps-mode-0.3.43.tar"; + sha256 = "099s7c0ll8bbfgynijjaciv2qnyg4r2akajkhlmchh7y10kp5ii4"; }; packageRequires = [ emacs ]; meta = { @@ -2500,10 +2500,10 @@ elpaBuild { pname = "posframe"; ename = "posframe"; - version = "0.6.0"; + version = "0.7.0"; src = fetchurl { - url = "https://elpa.gnu.org/packages/posframe-0.6.0.el"; - sha256 = "14x2jgjn8di03rrad4x4mn8fhcqibk1j5c0ya0vmv8648fki6i9d"; + url = "https://elpa.gnu.org/packages/posframe-0.7.0.el"; + sha256 = "1kwl83jb5k1hnx0s2qw972v0gjqbbvk4sdcdb1qbdxsyw36sylc9"; }; packageRequires = [ emacs ]; meta = { @@ -2575,10 +2575,10 @@ elpaBuild { pname = "rainbow-mode"; ename = "rainbow-mode"; - version = "1.0.3"; + version = "1.0.4"; src = fetchurl { - url = "https://elpa.gnu.org/packages/rainbow-mode-1.0.3.el"; - sha256 = "0cpwqllhv3cb0gii22cj9i731rk3sbf2drm5m52w5yclm8sfr339"; + url = "https://elpa.gnu.org/packages/rainbow-mode-1.0.4.el"; + sha256 = "0rp76gix1ph1wrmdax6y2m3i9y1dmgv7ikjz8xsl5lizkygsy9cg"; }; packageRequires = []; meta = { @@ -2857,6 +2857,21 @@ license = lib.licenses.free; }; }) {}; + scanner = callPackage ({ dash, elpaBuild, emacs, fetchurl, lib }: + elpaBuild { + pname = "scanner"; + ename = "scanner"; + version = "0.1"; + src = fetchurl { + url = "https://elpa.gnu.org/packages/scanner-0.1.tar"; + sha256 = "0hv4w7yzfdnz8vrfhw6i6agj9hs09vzsqr63nrp6dd93q0gk71mw"; + }; + packageRequires = [ dash emacs ]; + meta = { + homepage = "https://elpa.gnu.org/packages/scanner.html"; + license = lib.licenses.free; + }; + }) {}; scroll-restore = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { pname = "scroll-restore"; @@ -2947,6 +2962,21 @@ license = lib.licenses.free; }; }) {}; + sm-c-mode = callPackage ({ elpaBuild, fetchurl, lib }: + elpaBuild { + pname = "sm-c-mode"; + ename = "sm-c-mode"; + version = "1.0"; + src = fetchurl { + url = "https://elpa.gnu.org/packages/sm-c-mode-1.0.el"; + sha256 = "1lq65dhcvrh6ybla37lvni7wmbjb5nhm75ja9cl79148da1zrg91"; + }; + packageRequires = []; + meta = { + homepage = "https://elpa.gnu.org/packages/sm-c-mode.html"; + license = lib.licenses.free; + }; + }) {}; smalltalk-mode = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { pname = "smalltalk-mode"; @@ -3056,10 +3086,10 @@ elpaBuild { pname = "sql-indent"; ename = "sql-indent"; - version = "1.4"; + version = "1.5"; src = fetchurl { - url = "https://elpa.gnu.org/packages/sql-indent-1.4.tar"; - sha256 = "1nilxfm30nb2la1463729rgbgbma7igkf0z325k8cbapqanb1wgl"; + url = "https://elpa.gnu.org/packages/sql-indent-1.5.tar"; + sha256 = "07k5rn9hbxppnka7nq0a3a6zyqqa1hp8j6qrb344js6zyak0cb63"; }; packageRequires = [ cl-lib ]; meta = { @@ -3225,10 +3255,10 @@ elpaBuild { pname = "tramp"; ename = "tramp"; - version = "2.4.3.2"; + version = "2.4.3.3"; src = fetchurl { - url = "https://elpa.gnu.org/packages/tramp-2.4.3.2.tar"; - sha256 = "17kay6rpkgz79jggzj53awkbqfsp5sq93wpssw5vlwnigd4mrkzx"; + url = "https://elpa.gnu.org/packages/tramp-2.4.3.3.tar"; + sha256 = "1di9ia59k6x7j9r8flwf05r160j30nrg0jvq5fjc9iazag9lniyw"; }; packageRequires = [ emacs ]; meta = { @@ -3365,6 +3395,21 @@ license = lib.licenses.free; }; }) {}; + vcard = callPackage ({ elpaBuild, emacs, fetchurl, lib }: + elpaBuild { + pname = "vcard"; + ename = "vcard"; + version = "0.1"; + src = fetchurl { + url = "https://elpa.gnu.org/packages/vcard-0.1.tar"; + sha256 = "1awcm2s292r2nkyz5bwjaga46jsh5rn92469wrg1ag843mlyxbd0"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://elpa.gnu.org/packages/vcard.html"; + license = lib.licenses.free; + }; + }) {}; vcl-mode = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { pname = "vcl-mode"; @@ -3524,10 +3569,10 @@ elpaBuild { pname = "web-server"; ename = "web-server"; - version = "0.1.1"; + version = "0.1.2"; src = fetchurl { - url = "https://elpa.gnu.org/packages/web-server-0.1.1.tar"; - sha256 = "1q51fhqw5al4iycdlighwv7jqgdpjb1a66glwd5jnc9b651yk42n"; + url = "https://elpa.gnu.org/packages/web-server-0.1.2.tar"; + sha256 = "10lcsl4dg2yr9zjd99gq9jz150wvvh6r5y9pd88l8y9vz16f2lim"; }; packageRequires = [ emacs ]; meta = { diff --git a/pkgs/applications/editors/emacs-modes/emacspeak/default.nix b/pkgs/applications/editors/emacs-modes/emacspeak/default.nix new file mode 100644 index 00000000000..5bc8bbc6a90 --- /dev/null +++ b/pkgs/applications/editors/emacs-modes/emacspeak/default.nix @@ -0,0 +1,43 @@ +{ stdenv, fetchurl, makeWrapper, emacs, tcl, tclx, espeak-ng }: + +stdenv.mkDerivation rec { + pname = "emacspeak"; + version = "51.0"; + + + src = fetchurl { + url = "https://github.com/tvraman/emacspeak/releases/download/${version}/${pname}-${version}.tar.bz2"; + sha256 = "09a0ywxlqa8jmc0wmvhaf7bdydnkyhy9nqfsdqcpbsgdzj6qpg90"; + }; + + nativeBuildInputs = [ makeWrapper emacs ]; + buildInputs = [ tcl tclx espeak-ng ]; + + preConfigure = '' + make config + ''; + + postBuild = '' + make -C servers/native-espeak PREFIX=$out "TCL_INCLUDE=${tcl}/include" + ''; + + postInstall = '' + make -C servers/native-espeak PREFIX=$out install + local d=$out/share/emacs/site-lisp/emacspeak/ + install -d -- "$d" + cp -a . "$d" + find "$d" \( -type d -or \( -type f -executable \) \) -execdir chmod 755 {} + + find "$d" -type f -not -executable -execdir chmod 644 {} + + makeWrapper ${emacs}/bin/emacs $out/bin/emacspeak \ + --set DTK_PROGRAM "${espeak-ng}/bin/espeak" \ + --add-flags '-l "${placeholder "out"}/share/emacs/site-lisp/emacspeak/lisp/emacspeak-setup.elc"' + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/tvraman/emacspeak/; + description = "Emacs extension that provides spoken output"; + license = licenses.gpl2; + maintainers = [ dema ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/editors/emacs-modes/ess-R-object-popup/default.nix b/pkgs/applications/editors/emacs-modes/ess-R-object-popup/default.nix index 077e72f5576..5beaed58240 100644 --- a/pkgs/applications/editors/emacs-modes/ess-R-object-popup/default.nix +++ b/pkgs/applications/editors/emacs-modes/ess-R-object-popup/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation { meta = { description = "Popup descriptions of R objects"; - homepage = https://github.com/myuhe/ess-R-object-popup.el; + homepage = "https://github.com/myuhe/ess-R-object-popup.el"; platforms = stdenv.lib.platforms.all; }; } diff --git a/pkgs/applications/editors/emacs-modes/filesets-plus/default.nix b/pkgs/applications/editors/emacs-modes/filesets-plus/default.nix deleted file mode 100644 index ad22faf3dff..00000000000 --- a/pkgs/applications/editors/emacs-modes/filesets-plus/default.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ fetchurl, melpaBuild }: - -melpaBuild { - pname = "filesets-plus"; - version = "20170222.55"; - - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/filesets%2b.el"; - sha256 = "0iajkgh0n3pbrwwxx9rmrrwz8dw2m7jsp4mggnhq7zsb20ighs00"; - name = "filesets+.el"; - }; - - recipe = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/filesets-plus+"; - sha256 = "1wn99cb53ykds87lg9mrlfpalrmjj177nwskrnp9wglyqs65lk4g"; - name = "filesets-plus"; - }; - - meta = { - homepage = "https://melpa.org/#/filesets+"; - }; -} diff --git a/pkgs/applications/editors/emacs-modes/header2/default.nix b/pkgs/applications/editors/emacs-modes/header2/default.nix deleted file mode 100644 index 171d8c6b16a..00000000000 --- a/pkgs/applications/editors/emacs-modes/header2/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ fetchurl, lib, melpaBuild }: - -melpaBuild { - pname = "header2"; - version = "20170223.1949"; - - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/header2.el"; - sha256 = "0cv74cfihr13jrgyqbj4x0na659djfyrhflxni6jdbgbysi4zf6k"; - name = "header2.el"; - }; - - recipe = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/header2"; - sha256 = "1dg25krx3wxma2l5vb2ji7rpfp17qbrl62jyjpa52cjfsvyp6v06"; - name = "header2"; - }; - - meta = { - homepage = "https://melpa.org/#/header2"; - license = lib.licenses.gpl3; - }; -} diff --git a/pkgs/applications/editors/emacs-modes/helm-words/default.nix b/pkgs/applications/editors/emacs-modes/helm-words/default.nix index c6e1c5a50f4..00879463276 100644 --- a/pkgs/applications/editors/emacs-modes/helm-words/default.nix +++ b/pkgs/applications/editors/emacs-modes/helm-words/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation { meta = { description = "Emacs major mode for jade and stylus"; - homepage = https://github.com/brianc/helm-words; + homepage = "https://github.com/brianc/helm-words"; license = stdenv.lib.licenses.gpl3; platforms = stdenv.lib.platforms.all; }; diff --git a/pkgs/applications/editors/emacs-modes/hexrgb/default.nix b/pkgs/applications/editors/emacs-modes/hexrgb/default.nix deleted file mode 100644 index 8b9ebcd6026..00000000000 --- a/pkgs/applications/editors/emacs-modes/hexrgb/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ fetchurl, lib, melpaBuild }: - -melpaBuild { - pname = "hexrgb"; - version = "20170304.1017"; - - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/hexrgb.el"; - sha256 = "1aj1fsc3wr8174xs45j2wc2mm6f8v6zs40xn0r4qisdw0plmsbsy"; - name = "hexrgb.el"; - }; - - recipe = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/hexrgb"; - sha256 = "0mzqslrrf7sc262syj3ja7b7rnbg80dwf2p9bzxdrzx6b8vvsx06"; - name = "hexrgb"; - }; - - meta = { - homepage = "https://melpa.org/#/hexrgb"; - license = lib.licenses.gpl2Plus; - }; -} diff --git a/pkgs/applications/editors/emacs-modes/hol_light/default.nix b/pkgs/applications/editors/emacs-modes/hol_light/default.nix index 255b30d60ed..34b74374b23 100644 --- a/pkgs/applications/editors/emacs-modes/hol_light/default.nix +++ b/pkgs/applications/editors/emacs-modes/hol_light/default.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation rec { version = "73"; src = fetchsvn { - url = http://seanmcl-ocaml-lib.googlecode.com/svn/trunk/workshop/software/emacs; + url = "http://seanmcl-ocaml-lib.googlecode.com/svn/trunk/workshop/software/emacs"; rev = version; sha256 = "3ca83098960439da149a47e1caff32536601559a77f04822be742a390c67feb7"; }; @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { meta = { description = "A HOL Light mode for Emacs"; - homepage = http://www.cl.cam.ac.uk/~jrh13/hol-light/; + homepage = "http://www.cl.cam.ac.uk/~jrh13/hol-light/"; license = stdenv.lib.licenses.gpl2Plus; platforms = stdenv.lib.platforms.all; maintainers = [ stdenv.lib.maintainers.thoughtpolice ]; diff --git a/pkgs/applications/editors/emacs-modes/hsc3/default.nix b/pkgs/applications/editors/emacs-modes/hsc3/default.nix index 75b72516a3c..6c2db85d794 100644 --- a/pkgs/applications/editors/emacs-modes/hsc3/default.nix +++ b/pkgs/applications/editors/emacs-modes/hsc3/default.nix @@ -9,7 +9,7 @@ in stdenv.mkDerivation { pname = "hsc3-mode"; inherit version; src = fetchurl { - url = mirror://hackage/hsc3-0.15/hsc3-0.15.tar.gz; + url = "mirror://hackage/hsc3-0.15/hsc3-0.15.tar.gz"; sha256 = "2f3b15655419cf8ebe25ab1c6ec22993b2589b4ffca7c3a75ce478ca78a0bde6"; }; @@ -21,7 +21,7 @@ in stdenv.mkDerivation { ''; meta = { - homepage = http://rd.slavepianos.org/?t=hsc3; + homepage = "http://rd.slavepianos.org/?t=hsc3"; description = "hsc3 mode package for Emacs"; platforms = stdenv.lib.platforms.unix; }; diff --git a/pkgs/applications/editors/emacs-modes/icicles/default.nix b/pkgs/applications/editors/emacs-modes/icicles/default.nix deleted file mode 100644 index 27dcd1063bf..00000000000 --- a/pkgs/applications/editors/emacs-modes/icicles/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ stdenv, fetchurl, emacs }: - -let - modules = [ - { name = "icicles.el"; sha256 = "1744n5g2kmv3r261ipa0fhrgnapl0chxz57bbbls3bp30cnnfrs7"; } - { name = "icicles-chg.el"; sha256 = "058sxa8wh3vqr3zy677q6m2lfx4n477rnb8921s1p6wgs55v7dp4"; } - { name = "icicles-cmd1.el"; sha256 = "064hyy8nxvlg298s5qnmk7aczbasfpddhx57jxaldyyzkca3n2h5"; } - { name = "icicles-cmd2.el"; sha256 = "0a77fx0pxyfrg9nxvqvzz247v6cljjfz9dnfs7lc8qgdvksxs261"; } - { name = "icicles-doc1.el"; sha256 = "04j5qvj7pqnjh8h2y2sdgi7x55czdp9xn7yysr3bzcmr1rq5p4bz"; } - { name = "icicles-doc2.el"; sha256 = "1k8vfhi3fa4bzsxr074bw5q6srvq6z6hi61rzlxdw7pah6qf7hcz"; } - { name = "icicles-face.el"; sha256 = "1pvygqzmh6ag0zhfjn1vhdvlhxybwxzj22ah2pc0ls80dlywhi4l"; } - { name = "icicles-fn.el"; sha256 = "02vwa9dx9393d7kxrf443r1lj7y9ihkh25cmd418pwfgmw2yd5s7"; } - { name = "icicles-mac.el"; sha256 = "13nxgg9k5w39lga90jwn1c7v756dqlfln2qh312vfaxfjfijfv9r"; } - { name = "icicles-mcmd.el"; sha256 = "17d4zlf3r09wmarwyc1cbjv0pyklg4cdhwh3h643d4v8mhs5hnil"; } - { name = "icicles-mode.el"; sha256 = "1xfv8nryf5y2gygg02naawzm5qhrkba3h84g43518r1xc6rgbpp6"; } - { name = "icicles-opt.el"; sha256 = "154mgcd1ksnmlyb4ijy2njqq75i8cj4k47phplxsi648pzqnda77"; } - { name = "icicles-var.el"; sha256 = "0f94299q1z0va4v1s5ijpksaqlaz88ay1qbmlzq0i2wnxnsliys8"; } - ]; - - forAll = f: map f modules; -in -stdenv.mkDerivation rec { - version = "2019-02-22"; - pname = "icicles"; - - srcs = forAll ({name, sha256}: fetchurl { url = "https://www.emacswiki.org/emacs/download/${name}"; inherit sha256; }); - - buildInputs = [ emacs ]; - - unpackPhase = "for m in $srcs; do cp $m $(echo $m | cut -d- -f2-); done"; - - buildPhase = "emacs --batch -L . -f batch-byte-compile *.el"; - - installPhase = "mkdir -p $out/share/emacs/site-lisp/emacswiki/${pname}-${version}/; cp *.el *.elc $out/share/emacs/site-lisp/emacswiki/${pname}-${version}/"; - - meta = { - homepage = https://www.emacswiki.org/emacs/Icicles; - description = "Enhance Emacs minibuffer input with cycling and powerful completion"; - license = stdenv.lib.licenses.gpl2Plus; - platforms = emacs.meta.platforms; - maintainers = with stdenv.lib.maintainers; [ scolobb ]; - }; -} diff --git a/pkgs/applications/editors/emacs-modes/lib-requires/default.nix b/pkgs/applications/editors/emacs-modes/lib-requires/default.nix deleted file mode 100644 index 84dae10127e..00000000000 --- a/pkgs/applications/editors/emacs-modes/lib-requires/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ fetchurl, lib, melpaBuild }: - -melpaBuild { - pname = "lib-requires"; - version = "20170307.757"; - - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/lib-requires.el"; - sha256 = "04lrkdjrhsgg7vgvw1mkr9a5m9xlyvjvnj2aj6w453bgmnp1mbvv"; - name = "lib-requires.el"; - }; - - recipe = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/lib-requires"; - sha256 = "1g22jh56z8rnq0h80wj10gs38yig1rk9xmk3kmhmm5mm6b14iwdx"; - name = "lib-requires"; - }; - - meta = { - homepage = "https://melpa.org/#/lib-requires"; - license = lib.licenses.gpl2Plus; - }; -} diff --git a/pkgs/applications/editors/emacs-modes/libgenerated.nix b/pkgs/applications/editors/emacs-modes/libgenerated.nix index 57bccc60818..d0c8b4565f5 100644 --- a/pkgs/applications/editors/emacs-modes/libgenerated.nix +++ b/pkgs/applications/editors/emacs-modes/libgenerated.nix @@ -61,8 +61,9 @@ in { pname = builtins.replaceStrings [ "@" ] [ "at" ] ename; broken = ! isNull error; in - lib.nameValuePair ename (if hasSource then ( - self.callPackage ({ melpaBuild, fetchurl, ... }@pkgargs: + if hasSource then + lib.nameValuePair ename ( + self.callPackage ({ melpaBuild, fetchurl, ... }@pkgargs: melpaBuild { inherit pname; ename = ename; @@ -85,6 +86,8 @@ in { }; } ) {} - ) else null); + ) + else + null; } diff --git a/pkgs/applications/editors/emacs-modes/manual-packages.nix b/pkgs/applications/editors/emacs-modes/manual-packages.nix index c3c21b40a65..313a21995e0 100644 --- a/pkgs/applications/editors/emacs-modes/manual-packages.nix +++ b/pkgs/applications/editors/emacs-modes/manual-packages.nix @@ -52,11 +52,24 @@ }; }; + agda-input = self.trivialBuild { + pname = "agda-input"; + + inherit (external.Agda) src version; + + postUnpack = "mv $sourceRoot/src/data/emacs-mode/agda-input.el $sourceRoot"; + + meta = { + description = "Standalone package providing the agda-input method without building Agda."; + inherit (external.Agda.meta) homepage license; + }; + }; + + emacspeak = callPackage ./emacspeak {}; + ess-R-object-popup = callPackage ./ess-R-object-popup { }; - filesets-plus = callPackage ./filesets-plus { }; - font-lock-plus = callPackage ./font-lock-plus { }; ghc-mod = melpaBuild { @@ -96,17 +109,8 @@ }; }; - hexrgb = callPackage ./hexrgb { }; - - header2 = callPackage ./header2 { }; - helm-words = callPackage ./helm-words { }; - icicles = callPackage ./icicles { }; - - lib-requires = - callPackage ./lib-requires { }; - org-mac-link = callPackage ./org-mac-link { }; @@ -121,12 +125,8 @@ sv-kalender = callPackage ./sv-kalender { }; - thingatpt-plus = callPackage ./thingatpt-plus { }; - tramp = callPackage ./tramp { }; - yaoddmuse = callPackage ./yaoddmuse { }; - zeitgeist = callPackage ./zeitgeist { }; # From old emacsPackages (pre emacsPackagesNg) diff --git a/pkgs/applications/editors/emacs-modes/melpa-packages.nix b/pkgs/applications/editors/emacs-modes/melpa-packages.nix index 5c9456b76a6..87da2079605 100644 --- a/pkgs/applications/editors/emacs-modes/melpa-packages.nix +++ b/pkgs/applications/editors/emacs-modes/melpa-packages.nix @@ -42,7 +42,9 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac }: let inherit (import ./libgenerated.nix lib self) melpaDerivation; - super = lib.listToAttrs (map (melpaDerivation variant) (lib.importJSON archiveJson)); + super = lib.listToAttrs (builtins.filter (s: s != null) + (map (melpaDerivation variant) + (lib.importJSON archiveJson))); overrides = rec { shared = rec { @@ -105,6 +107,11 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac (attrs.nativeBuildInputs or []) ++ [ external.git ]; }); + eopengrok = super.eopengrok.overrideAttrs (attrs: { + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); + ess-R-data-view = super.ess-R-data-view.override { inherit (self.melpaPackages) ess ctable popup; }; @@ -170,6 +177,66 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac (attrs.nativeBuildInputs or []) ++ [ external.git ]; }); + magit-find-file = super.magit-find-file.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); + + magit-gh-pulls = super.magit-gh-pulls.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); + + magit-imerge = super.magit-imerge.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); + + magit-lfs = super.magit-lfs.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); + + magit-org-todos = super.magit-org-todos.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); + + magit-stgit = super.magit-stgit.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); + + magit-tbdiff = super.magit-tbdiff.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); + + magit-topgit = super.magit-topgit.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); + + magit-vcsh = super.magit-vcsh.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); + + magit-gerrit = super.magit-gerrit.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); + magit-annex = super.magit-annex.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = @@ -212,6 +279,12 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac (attrs.nativeBuildInputs or []) ++ [ external.git ]; }); + kubernetes-evil = super.kubernetes-evil.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); + # upstream issue: missing file header mhc = super.mhc.override { inherit (self.melpaPackages) calfw; @@ -268,10 +341,6 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac # Map legacy renames from emacs2nix since code generation was ported to emacs lisp _0blayout = super."0blayout"; - _0xc = super."0xc"; - _2048-game = super."2048-game"; - _4clojure = super."4clojure"; - at = super."@"; desktop-plus = super."desktop+"; ghub-plus = super."ghub+"; git-gutter-plus = super."git-gutter+"; @@ -282,10 +351,6 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac markdown-mode-plus = super."markdown-mode+"; package-plus = super."package+"; rect-plus = super."rect+"; - term-plus = super."term+"; - term-plus-key-intercept = super."term+key-intercept"; - term-plus-mux = super."term+mux"; - xml-plus = super."xml+"; }; stable = shared // { @@ -358,14 +423,88 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac packageRequires = with self; [ evil highlight ]; }); + kapacitor = super.kapacitor.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); + forge = super.forge.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = (attrs.nativeBuildInputs or []) ++ [ external.git ]; }); + gerrit = super.gerrit.overrideAttrs (attrs: { + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); + + gerrit-download = super.gerrit-download.overrideAttrs (attrs: { + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); + + github-pullrequest = super.github-pullrequest.overrideAttrs (attrs: { + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); + helm-rtags = fix-rtags super.helm-rtags; + jist = super.jist.overrideAttrs (attrs: { + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); + + mandoku = super.mandoku.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); + + mandoku-tls = super.mandoku-tls.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); + + magit-p4 = super.magit-p4.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); + + magit-rbr = super.magit-rbr.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); + + magit-diff-flycheck = super.magit-diff-flycheck.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); + + magit-reviewboard = super.magit-reviewboard.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); + + magit-patch-changelog = super.magit-patch-changelog.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); + + magit-circleci = super.magit-circleci.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); + orgit = (super.orgit.overrideAttrs (attrs: { # searches for Git at build time @@ -414,6 +553,16 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac # Legacy alias emacs-libvterm = unstable.vterm; + # Map legacy renames from emacs2nix since code generation was ported to emacs lisp + _0xc = super."0xc"; + _2048-game = super."2048-game"; + _4clojure = super."4clojure"; + at = super."@"; + term-plus = super."term+"; + term-plus-key-intercept = super."term+key-intercept"; + term-plus-mux = super."term+mux"; + xml-plus = super."xml+"; + w3m = super.w3m.override (args: { melpaBuild = drv: args.melpaBuild (drv // { prePatch = diff --git a/pkgs/applications/editors/emacs-modes/ocaml/default.nix b/pkgs/applications/editors/emacs-modes/ocaml/default.nix index becc2dc5dc9..4240263dd0b 100644 --- a/pkgs/applications/editors/emacs-modes/ocaml/default.nix +++ b/pkgs/applications/editors/emacs-modes/ocaml/default.nix @@ -25,7 +25,7 @@ in stdenv.mkDerivation { ''; meta = { - homepage = http://caml.inria.fr; + homepage = "http://caml.inria.fr"; description = "OCaml mode package for Emacs"; platforms = stdenv.lib.platforms.unix; }; diff --git a/pkgs/applications/editors/emacs-modes/org-mac-link/default.nix b/pkgs/applications/editors/emacs-modes/org-mac-link/default.nix index 4d8f40074bd..93af03ce229 100644 --- a/pkgs/applications/editors/emacs-modes/org-mac-link/default.nix +++ b/pkgs/applications/editors/emacs-modes/org-mac-link/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation { meta = { description = "Insert org-mode links to items selected in various Mac apps"; - homepage = https://orgmode.org/worg/org-contrib/org-mac-link.html; + homepage = "https://orgmode.org/worg/org-contrib/org-mac-link.html"; license = stdenv.lib.licenses.gpl3; platforms = stdenv.lib.platforms.all; }; diff --git a/pkgs/applications/editors/emacs-modes/perl-completion/default.nix b/pkgs/applications/editors/emacs-modes/perl-completion/default.nix index 9f251f54d6a..7f2454c811a 100644 --- a/pkgs/applications/editors/emacs-modes/perl-completion/default.nix +++ b/pkgs/applications/editors/emacs-modes/perl-completion/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation { meta = { description = "Minor mode provides useful features for editing perl codes"; - homepage = http://emacswiki.org/emacs/PerlCompletion; + homepage = "http://emacswiki.org/emacs/PerlCompletion"; platforms = stdenv.lib.platforms.all; }; } diff --git a/pkgs/applications/editors/emacs-modes/pod-mode/default.nix b/pkgs/applications/editors/emacs-modes/pod-mode/default.nix index 198adefc016..549633b7dfb 100644 --- a/pkgs/applications/editors/emacs-modes/pod-mode/default.nix +++ b/pkgs/applications/editors/emacs-modes/pod-mode/default.nix @@ -13,6 +13,6 @@ trivialBuild rec { description = "Major mode for editing .pod-files"; license = licenses.gpl2Plus; maintainers = with maintainers; [ qyliss ]; - platform = platforms.all; + platforms = platforms.all; }; } diff --git a/pkgs/applications/editors/emacs-modes/prolog/default.nix b/pkgs/applications/editors/emacs-modes/prolog/default.nix index 337a1585b1b..7f5a097daa9 100644 --- a/pkgs/applications/editors/emacs-modes/prolog/default.nix +++ b/pkgs/applications/editors/emacs-modes/prolog/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation { ''; meta = { - homepage = http://bruda.ca/emacs/prolog_mode_for_emacs/; + homepage = "http://bruda.ca/emacs/prolog_mode_for_emacs/"; description = "Prolog mode for Emacs"; license = stdenv.lib.licenses.gpl2Plus; diff --git a/pkgs/applications/editors/emacs-modes/railgun/default.nix b/pkgs/applications/editors/emacs-modes/railgun/default.nix index ba716e1dd13..8ca8d1feaa1 100644 --- a/pkgs/applications/editors/emacs-modes/railgun/default.nix +++ b/pkgs/applications/editors/emacs-modes/railgun/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation { meta = { description = "Propel yourself through a rails project with the power of magnets"; - homepage = https://github.com/mbriggs/railgun.el; + homepage = "https://github.com/mbriggs/railgun.el"; platforms = stdenv.lib.platforms.all; }; } diff --git a/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json b/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json index d86bc8a585b..2224c44f9c4 100644 --- a/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json +++ b/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json @@ -31,20 +31,20 @@ "url": "https://git.sr.ht/~zge/nullpointer-emacs", "unstable": { "version": [ - 20200222, - 948 + 20200411, + 1227 ], - "commit": "265b7d65e1bc54d84435e9d79379bc808e9a488b", - "sha256": "1nk2kqv7blahfiihz5vdvsb1j5bji1w5w9zz3lwzrv8i7pdbh34w" + "commit": "59136313132c08ab5fddaa875f6abeb22916a04b", + "sha256": "0acdh1r28v6xcsh39r13xppzqb6m00jgxgsxl17779isw98w9a3y" }, "stable": { "version": [ 0, - 2, - 1 + 3, + 0 ], - "commit": "ae55ae0397ff3cf28a3ea52111bfc053dffb126d", - "sha256": "179snc2z047afw2h5jqbwdc64vxdngjmg4zca46wap114c4alrm1" + "commit": "1d29192a3c28ba088d93410bfcdd4bee0abb6610", + "sha256": "02kmfzkrl35y599w5yal5d7rjb3xi02zhvb8q0m3iw4mbm16sw28" } }, { @@ -67,17 +67,17 @@ }, { "ename": "2048-game", - "commit": "5b7972602399f9df9139cff177e38653bb0f43ed", - "sha256": "0z7x9bnyi3qlq7l0fskb61i6yr9gm7w7wplqd28wz8p1j5yw8aa0", - "fetcher": "bitbucket", - "repo": "zck/2048.el", + "commit": "d3828ad7599d13728b5571b882344c3ada434b85", + "sha256": "0i7g7fg21ndpfbdydij3fb683pqgd1sicb7x6rradbc8jpmcf5sq", + "fetcher": "hg", + "url": "https://hg.sr.ht/~zck/game-2048", "unstable": { "version": [ - 20151026, - 1933 + 20200417, + 259 ], - "commit": "ea6c3bce8ac1c17dae5ac711ae4e931c0495e455", - "sha256": "1p9qn9n8mfb4z62h1s94mlg0vshpzafbhsxgzvx78sqlf6bfc80l" + "commit": "aad4a590ea91f9a3256233b9b345e9159c6993f2", + "sha256": "1jd50m5w0g0yplzms4qvkxx16f7xsbm9h7sdrw1p130gbij252l3" } }, { @@ -283,10 +283,10 @@ }, { "ename": "ac-alchemist", - "commit": "ef9037aa41a8d9467838495bb235db32c19cc417", - "sha256": "02ll3hcixgdb8zyszn78714gy1h2q0vkhpbnwap9302mr2racwl0", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "0cakni8lvkhgdrzwa2cdqwnkbaiac1fn4j2lqgmx33z7hmrk8am6", "fetcher": "github", - "repo": "syohex/emacs-ac-alchemist", + "repo": "emacsorphanage/ac-alchemist", "unstable": { "version": [ 20150908, @@ -334,10 +334,10 @@ }, { "ename": "ac-capf", - "commit": "929da263f57b904c50f5f17b09d4c4b480999c97", - "sha256": "1drgk5iz2wp3rxzd39pj0n4cfmm5z8zqlp50jw5z7ffbbg35qxbm", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "08a1ywyv5l1npbkpmg3wmprnqk837bmbwjpcgf5di9a2j33xqbin", "fetcher": "github", - "repo": "syohex/emacs-ac-capf", + "repo": "emacsorphanage/ac-capf", "unstable": { "version": [ 20151101, @@ -516,10 +516,10 @@ }, { "ename": "ac-emoji", - "commit": "15f591f9cba367b071046fef5ae01bbbd0475ce3", - "sha256": "0msh3dh89jzk6hxva34gp9d5pazchgdknxjbi72z26rss9bkp1mw", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "06cwaasv2bsxr86wsjc21ggibcyqfp352wnc8i5fbr4ypd3vbk42", "fetcher": "github", - "repo": "syohex/emacs-ac-emoji", + "repo": "emacsorphanage/ac-emoji", "unstable": { "version": [ 20150823, @@ -547,10 +547,10 @@ }, { "ename": "ac-etags", - "commit": "fda9c7def8bc54af4ab17dc049dd94324c8f10fa", - "sha256": "0ag49k9izrs4ikzac9lifvvwhcn5n89lr2vb20pngsvg1czdyhzb", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "1qy6v37v7lx93lnpgh5bf2ccxpg2ldzwgdyigqmby9fy0wzwr8sf", "fetcher": "github", - "repo": "syohex/emacs-ac-etags", + "repo": "emacsorphanage/ac-etags", "unstable": { "version": [ 20161001, @@ -582,15 +582,15 @@ "repo": "xiaohanyu/ac-geiser", "unstable": { "version": [ - 20130929, - 647 + 20200318, + 824 ], "deps": [ "auto-complete", "geiser" ], - "commit": "502d18a8a0bd4b5fdd495a99299ba2a632c5cd9a", - "sha256": "0h2kakb4f5hgzf5l2kpqngalcmc4402lkg1pvs88c8z4rqp2vfvz" + "commit": "93818c936ee7e2f1ba1b315578bde363a7d43d05", + "sha256": "00n2qa26yilaj837n1yp6lbqa4gf30nkkbvanl7m9ih7k48ssqmw" }, "stable": { "version": [ @@ -814,10 +814,10 @@ }, { "ename": "ac-ispell", - "commit": "b41acb7387ebef9af2906fa16298b64d6431bfb0", - "sha256": "1vsy2qjh60n5lavivpqhhcpg5pk8zz2r0wy1sb65capn841zdi67", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "0npbrvwww6mi8q8x3cc6sf02x1b3ns2w7499lip7ymbr1zi9gdxg", "fetcher": "github", - "repo": "syohex/emacs-ac-ispell", + "repo": "emacsorphanage/ac-ispell", "unstable": { "version": [ 20151101, @@ -960,8 +960,8 @@ "auto-complete", "yasnippet" ], - "commit": "7b8db219080b714a7b8ba452ddb82bd08f7db152", - "sha256": "1zm04hqy6dg57swk05qvl5idzb11camcdmh7lrh6mqsvrcsvym2q" + "commit": "6ca9baaafd3a3e429429986cc59097dcbfa7cda2", + "sha256": "0gj1w0ynd3nk84ac2l3anmcvm44p662scdy80zwp2xisfc0c301x" }, "stable": { "version": [ @@ -986,8 +986,8 @@ "repo": "xcwen/ac-php", "unstable": { "version": [ - 20200103, - 656 + 20200425, + 835 ], "deps": [ "dash", @@ -997,8 +997,8 @@ "s", "xcscope" ], - "commit": "7b8db219080b714a7b8ba452ddb82bd08f7db152", - "sha256": "1zm04hqy6dg57swk05qvl5idzb11camcdmh7lrh6mqsvrcsvym2q" + "commit": "6ca9baaafd3a3e429429986cc59097dcbfa7cda2", + "sha256": "0gj1w0ynd3nk84ac2l3anmcvm44p662scdy80zwp2xisfc0c301x" }, "stable": { "version": [ @@ -1020,10 +1020,10 @@ }, { "ename": "ac-racer", - "commit": "e4318daf4dbb6864ee41f41287c89010fb811641", - "sha256": "1vkvh8y3ckvzvqxj4i2k6jqri94121wbfjziybli74qba8dca4yp", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "0vxnc6q2khxf5xl3k8lwvjg5biqxasr4vm9k3c8033xwl6in299r", "fetcher": "github", - "repo": "syohex/emacs-ac-racer", + "repo": "emacsorphanage/ac-racer", "unstable": { "version": [ 20170114, @@ -1064,8 +1064,8 @@ "auto-complete", "rtags" ], - "commit": "d370c09007d299dc6b6aae719bf728b95dd426c5", - "sha256": "0hakpd1dwhn2nkfhx4hli0l7hf3p1g8vpyrrczq45smfsz73d96x" + "commit": "a42298e80dffae9a6b2e9816506174542f3cbbb7", + "sha256": "1674752bbyb7890na5p846dxcvh83zn0a6z19wras1x5c59s24i3" }, "stable": { "version": [ @@ -1212,11 +1212,11 @@ "repo": "tam17aki/ace-isearch", "unstable": { "version": [ - 20200205, - 1105 + 20200420, + 518 ], - "commit": "cb6d7306cb5d2d4d36cb3803c0eaf779d88c2666", - "sha256": "1lrgjz7a4s50shc74kx6k958i1ayv5pfncsrjb3n87bvrx9wq6g3" + "commit": "58e4f1ad5cbbd2f86d161881d3f3ded3a3db984c", + "sha256": "0mlswnyd89ir060kiinzlrh70mdy8nfm2zpwr9jj2p19hrslmc4r" }, "stable": { "version": [ @@ -1563,32 +1563,30 @@ "repo": "pauldub/activity-watch-mode", "unstable": { "version": [ - 20200130, - 805 + 20200416, + 637 ], "deps": [ "cl-lib", "json", - "projectile", "request" ], - "commit": "153d93eac0b9511dc00b50c2ba409c085b58602b", - "sha256": "18idfbdrk3b2y573g2ld5sqkb9j216ixik679qj7qdnwa2b7m2xx" + "commit": "9d591c5ec9a2b2c7b55a754dd37c7434b2ef9fdc", + "sha256": "0a1ylq0il5aca5y9acykaa47p8d9xb3jy4wgi1lpm60z06n4m99y" }, "stable": { "version": [ 1, - 1, - 1 + 3, + 0 ], "deps": [ "cl-lib", "json", - "projectile", "request" ], - "commit": "153d93eac0b9511dc00b50c2ba409c085b58602b", - "sha256": "18idfbdrk3b2y573g2ld5sqkb9j216ixik679qj7qdnwa2b7m2xx" + "commit": "9d591c5ec9a2b2c7b55a754dd37c7434b2ef9fdc", + "sha256": "0a1ylq0il5aca5y9acykaa47p8d9xb3jy4wgi1lpm60z06n4m99y" } }, { @@ -1819,14 +1817,14 @@ "repo": "Malabarba/aggressive-indent-mode", "unstable": { "version": [ - 20190828, - 1828 + 20200421, + 1149 ], "deps": [ "cl-lib" ], - "commit": "c28246ba09d53e32cd9d8cafb1830f50387d9985", - "sha256": "19qklr4wqy55cb2133qlnrhf9yggsf096l14glw4jwpvx3cn61dd" + "commit": "58348d29adf8d2f23da2798badd7f89ff59cd7cc", + "sha256": "1d9hi36ml449x7qqpvcgxqx0r88jpqf1pq9k38af66ny3vd6zwl6" }, "stable": { "version": [ @@ -1894,11 +1892,11 @@ "repo": "ralesi/ahk-mode", "unstable": { "version": [ - 20191221, - 2202 + 20200412, + 1832 ], - "commit": "377f79484cc43458f66c1ba5a61459b77e363591", - "sha256": "0vf9pg2yjldzm4nzvzw0w2cvrnxj4xpm3ymsnpzdd55mp7q3y1ag" + "commit": "729007b5f22a49f5187ff47fca18c0d674e73047", + "sha256": "0989iva0igmd3y61hihwnc7mhn11midimrnbpvq7d062iy7g4vaw" }, "stable": { "version": [ @@ -1942,11 +1940,11 @@ "repo": "skeeto/emacs-aio", "unstable": { "version": [ - 20190601, - 753 + 20200410, + 1409 ], - "commit": "0e8a18f1bbb5f7be0f88d8e02ef13494736d63bc", - "sha256": "1aikvka4s97p5s26vclrnamgj8agx1j8ls6q3x7mxf8mhpv4ghqz" + "commit": "9367005c44c42c46c8ca1e7d3f780731c7d123dd", + "sha256": "063avjlizpjc53myjzvkqsp64gkxwcc7w7shjdf1xgjb9b58pbc1" }, "stable": { "version": [ @@ -1965,14 +1963,14 @@ "repo": "AnthonyDiGirolamo/airline-themes", "unstable": { "version": [ - 20180411, - 406 + 20200408, + 2114 ], "deps": [ "powerline" ], - "commit": "8b528fbae0e557461315bed82883275d58df41f2", - "sha256": "1xydgf9w0i2anpmjhy8m0zv1hql4gb37i11xfn6xzwna572z1ml9" + "commit": "d81ec80d6fc36157c20015e9fd6b192cfc679035", + "sha256": "0h9iximw1n5pwfd8zfn1xx4dcrsvxcy8rmr2ng20kl8bflir3i6s" }, "stable": { "version": [ @@ -2224,14 +2222,14 @@ "repo": "rubikitch/all-ext", "unstable": { "version": [ - 20170115, - 205 + 20200315, + 1443 ], "deps": [ "all" ], - "commit": "9f4ef84a147cf4e0af6ef45826d6cb3558db6b88", - "sha256": "0gdrsi9n9i1ibijkgk5kyjdjdmnsccfbpifpv679371glap9f68b" + "commit": "c865c62506af2c9edc7705a7c24dc8b70d5d4de2", + "sha256": "16r0ll7wsfsrymwm78gnnrfawafan9gbwiymqfmij3m9riqss7y0" } }, { @@ -2242,26 +2240,26 @@ "repo": "domtronn/all-the-icons.el", "unstable": { "version": [ - 20191127, - 1123 + 20200411, + 520 ], "deps": [ "memoize" ], - "commit": "1416f37984486a44c6c0cbe0a2c985e82f965b6b", - "sha256": "1nwqn1cwjrmlp8g87ciwpv1h0pd61nh05bdpvz2kqg8b5ssfc4gd" + "commit": "0b74fc361817e885580c3f3408079f949f5830e1", + "sha256": "0y7wgwkspa800pck4ijyzgp3nrg8xkky079k1ywz7p04jqvgxrpp" }, "stable": { "version": [ - 3, - 2, - 0 + 4, + 0, + 1 ], "deps": [ "memoize" ], - "commit": "52d1f2d36468146c93aaf11399f581401a233306", - "sha256": "1sdl33117lccznj38021lwcdnpi9nxmym295q6y460y4dm4lx0jn" + "commit": "d363bb3e73909be013fcf35e1458bb654ec5bbaa", + "sha256": "0yh7gnv9xfqn8q4rzaa6wpyn9575vyfxy7d3afly2mqsb367fgm5" } }, { @@ -2272,14 +2270,14 @@ "repo": "jtbm37/all-the-icons-dired", "unstable": { "version": [ - 20200301, - 1346 + 20200403, + 1018 ], "deps": [ "all-the-icons" ], - "commit": "733e0b520562d1f78f757f21287547272cedcaef", - "sha256": "1ml9xzdaqjnpwb8rnqr0967n3zk7fb56xy531gc52k3pxj68zbcc" + "commit": "fc2dfa1e9eb8bf1c402a675e7089638d702a27a5", + "sha256": "0zhyhz4lhx0d8wwh1xxxf7ck4s621fk9757ql2ypxbr4iqh7sjlp" } }, { @@ -2309,14 +2307,14 @@ "repo": "seagle0128/all-the-icons-ibuffer", "unstable": { "version": [ - 20200301, - 654 + 20200319, + 1625 ], "deps": [ "all-the-icons" ], - "commit": "ee0409588ebaee1aada351f1a75abcdc999ac9e2", - "sha256": "0afq5wjh74ks8hrsb9m41h1m9gyc0hvp2qmy4b1ls9kffgnk7ri2" + "commit": "3ee9e32f480329e94e45f86538343b0ddc7ddd4f", + "sha256": "1cs9027q26nfm5k3182mbmmhj8s8y2nv47gsyamwpjqdma0sbl73" }, "stable": { "version": [ @@ -2371,15 +2369,15 @@ "repo": "seagle0128/all-the-icons-ivy-rich", "unstable": { "version": [ - 20200310, - 1551 + 20200324, + 550 ], "deps": [ "all-the-icons", "ivy-rich" ], - "commit": "3e02da9a166df7ebea25aae476efd7b8d74d63e0", - "sha256": "0p91yvpqy7xjkz2mcpq6c8kjfxqfw9byxprqg2qqnzg421c5yv6x" + "commit": "a9a4389c1930a5a071857b4d450eaecb21f4d6b9", + "sha256": "133vl3awl3qxxd2ka8zdr33v6s8hrjpsv4bv2db5j8jz35m0hx9d" }, "stable": { "version": [ @@ -2531,15 +2529,15 @@ "repo": "zwild/ammonite-term-repl", "unstable": { "version": [ - 20190618, - 1517 + 20200416, + 559 ], "deps": [ "s", "scala-mode" ], - "commit": "9b3fe36654f03f6ab461bbec413f9ea014829a49", - "sha256": "09n9b1zkhaq0ikbgklnlxpgyyjf8hs9f7dcpgx5jjwi4pj0wzvi9" + "commit": "b552fe21977e005c1c460bf6607557e67241a6b6", + "sha256": "0g6ldvzcm6arm6hxiz1y168mj73kipgbjzxciif2b4sd3z7wpnp6" } }, { @@ -2587,6 +2585,24 @@ "sha256": "18z9jl5d19a132k6g1dvwqfbbdh5cx66b2qxlcjsfiqxlxglc2sa" } }, + { + "ename": "amread-mode", + "commit": "2155dbd9bdf7b1f6f500c11ad1796c2ba2ddadec", + "sha256": "19wafb0aszphdmx9ayiazvq2avj9kqhanszh714n397810ak7k0v", + "fetcher": "github", + "repo": "stardiviner/amread-mode", + "unstable": { + "version": [ + 20200404, + 1143 + ], + "deps": [ + "cl-lib" + ], + "commit": "a595828fcc2257f765139b576beb6c33b4fc3bce", + "sha256": "1mwlj48hjp59mcafia612qqzmqxh30k0jshzrnzsnwlfbbsdxjwj" + } + }, { "ename": "amx", "commit": "c55bfad05343b2b0f3150fd2b4adb07a1768c1c0", @@ -2595,14 +2611,14 @@ "repo": "DarwinAwardWinner/amx", "unstable": { "version": [ - 20200215, - 1901 + 20200417, + 1513 ], "deps": [ "s" ], - "commit": "e512e74e8368f9b1cf83bee16dd2522f3b1dbeea", - "sha256": "08vx7rd36j4ls7a7i2vn7mf74vbzcyrzzv0wzqzyb8ihv4qhjc0g" + "commit": "7fb7b874291e0cdeb1f0acb18564a686ec86788d", + "sha256": "0yc2b814zcl3c6lgamrr63cl4r3ayzlyfqql8875fzflc541nnnc" }, "stable": { "version": [ @@ -2652,6 +2668,37 @@ "sha256": "1vydyyxd5n0pz0jlib3yvw8vnklp15nvyyj7qkm4wcyssi70q1rf" } }, + { + "ename": "anakondo", + "commit": "197ff9f72a46a5732495d97c6b0ecb526e6995f4", + "sha256": "14kypppdgvzj2plydcpd22b9wpkircr0nc6gs4rcw416h157l2bv", + "fetcher": "github", + "repo": "didibus/anakondo", + "unstable": { + "version": [ + 20200426, + 28 + ], + "deps": [ + "projectile" + ], + "commit": "50ca8b69e0e53e4163215f3fcc325620b4d5d5af", + "sha256": "1sy0hxrj1vffqcwl5l48hl9yq4qswwjfgcc4445lairfycd4l9m7" + }, + "stable": { + "version": [ + 0, + 1, + 1 + ], + "deps": [ + "json", + "projectile" + ], + "commit": "6ba040e6af4466949dcad2b4a47069705f200322", + "sha256": "05j9x11hy8wzq1fbbal1y1wzkw6h98l9pp8q0qmarg0lb6hjk52x" + } + }, { "ename": "anaphora", "commit": "8505db1945071a15ba0f2bb74b58d4a6875ca7d6", @@ -2827,8 +2874,8 @@ "repo": "davidshepherd7/anki-mode", "unstable": { "version": [ - 20191020, - 1441 + 20200413, + 1019 ], "deps": [ "dash", @@ -2836,8 +2883,8 @@ "request", "s" ], - "commit": "8022fbab57c47581102af831b4405fc27f71db92", - "sha256": "1nyiqd3093dbcimljj09vidanki6nbrzknzdxw4rkbl2kd1wfvlf" + "commit": "fcbcfa7cd7fb5c282e1138322e61242942729e3d", + "sha256": "06ab3zdaz5wf30zbci7cav3dvvnknnbzq18zfzzfi4xjcsi0zkvr" }, "stable": { "version": [ @@ -2912,11 +2959,11 @@ "repo": "bastibe/annotate.el", "unstable": { "version": [ - 20200306, - 1547 + 20200330, + 1640 ], - "commit": "6cc6ac887220cd26b8e72f1ec95555517faf0e80", - "sha256": "0j2zcs9dya36k0k1sa1brdvnh537m15mmanbb3dlqqkfd7ig5ql0" + "commit": "f0a71bb14806c79f09cb6aacb5ef98a852ef66e2", + "sha256": "1v2rbrhqg4kipk4l901xzfdc4wm5fkvvx4j3l8mfp7nvc2x8gcbw" }, "stable": { "version": [ @@ -3182,17 +3229,17 @@ }, { "ename": "anzu", - "commit": "855ea20024b606314f8590129259747cac0bcc97", - "sha256": "181hzwy9bc0zfhax26p20q9cjibrmi9ngps5fa3ja5g6scxfs9g1", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "0m9wwq5fl7g6gfzv6m9hlrjf8nvqn1q7nqif1x93sh7q3vfwgxzl", "fetcher": "github", - "repo": "syohex/emacs-anzu", + "repo": "emacsorphanage/anzu", "unstable": { "version": [ - 20190303, - 1701 + 20200331, + 1717 ], - "commit": "592f8ee6d0b1bc543943b36a30063c2d1aac4b22", - "sha256": "123zbnl36vi0gkffd6m6mkskhmjmm0am23j45w1mbmfyq03r1d8b" + "commit": "3e34fb3df53c0c68e842fa179c327a7395d1901d", + "sha256": "10jgh1mg8bxmpgaspsmqksgf3cqw9glap84cb9sdirvicsmisbsd" }, "stable": { "version": [ @@ -3245,6 +3292,30 @@ "sha256": "1grs2x51k8pa6sgfa82s5pwwdfv7zw46ccw0zvd2rvzbhpq21p2z" } }, + { + "ename": "apdl-mode", + "commit": "2fd3f323919b8eebba081689c93bb918d0af1359", + "sha256": "11in64hcs5gmvviv986043r68l34byi31v5vibwqx63qg8k3gqfn", + "fetcher": "github", + "repo": "dieter-wilhelm/apdl-mode", + "unstable": { + "version": [ + 20200417, + 857 + ], + "commit": "2fcf73e0d522e88e99813c84ac1c07f8a83b1e77", + "sha256": "1kfzvgxf34a1wdiiwv4q6bix24avdiwkldxbypkpw57sbrarwiva" + }, + "stable": { + "version": [ + 20, + 4, + 0 + ], + "commit": "03d4d55f5d44584d6de50033cdc1b1bc87db83a3", + "sha256": "0yv3l3j3syn2i4ff9rvsx7a2vp7mv7p9y08dzcvl6km1909adzc6" + } + }, { "ename": "apel", "commit": "4976446a8ae40980d502186615902fc05c15ec7c", @@ -3413,6 +3484,25 @@ "sha256": "1svicgmiibnim47fhlik3fgs0d6427and5h61s3rhvfj3352d9li" } }, + { + "ename": "aqi", + "commit": "4218547747cdbe33aab3c59338cd2dc9da869cda", + "sha256": "1dzvf3i648ssavrdy4v1ckvf2gkywa3cc4zgddb8dj4ihpivm6bc", + "fetcher": "github", + "repo": "zzkt/aqi", + "unstable": { + "version": [ + 20200215, + 1334 + ], + "deps": [ + "let-alist", + "request" + ], + "commit": "5fe8b035b2b6bc165728444bb8e9792d14b7409d", + "sha256": "1wbpjz5jgpph6c6wk29dxz8r368ai6jx9cb4y2mdcpngig8kmazm" + } + }, { "ename": "arc-dark-theme", "commit": "f8c9060669b262f0588643bd8758edac578834bc", @@ -3456,11 +3546,11 @@ "repo": "rubikitch/archive-region", "unstable": { "version": [ - 20140201, - 2342 + 20200316, + 1425 ], - "commit": "0d357d4c42a6a248c457f358f81b20fd20fede2f", - "sha256": "03pmwgvlxxlp4wh0sg5czpx1i88i43lz8lwdbfa6l28g1sv0f264" + "commit": "53cd2d96ea7c33f320353982b36854f25c900c2e", + "sha256": "1c3ji0asnhdls8pa5hbqg65kc35jc6yndib7cx1zvnpb8pjlvbbr" } }, { @@ -3600,6 +3690,24 @@ "sha256": "1yvirfmvf6v5khl7zhx2ddv9bbxnx1qhwfzi0gy2nmbxlykb6s2j" } }, + { + "ename": "ascii-table", + "commit": "d6d5599ff68bf9125a9825ddd2a00009242bf2e1", + "sha256": "0p3dyxzs5xaq17209nnf2cqs87hz2b1k3x1nkq4jvhn71v4jcaj1", + "fetcher": "github", + "repo": "lassik/emacs-ascii-table", + "unstable": { + "version": [ + 20200329, + 1744 + ], + "deps": [ + "cl-lib" + ], + "commit": "572b62c8305b8c26082a17e15bc2f53066ddcb5a", + "sha256": "1k1wfbwzn9gjv7hmc7ffr3r211vxrxassryar6gnajmj9xbzwcgi" + } + }, { "ename": "asilea", "commit": "858e673c66e876d80f41d47d307c944d7bdb147d", @@ -3677,6 +3785,24 @@ "sha256": "0mq59wz9anvywazl7d01fis1z7z7fsp9c7pymrc8rgmz77xpwnqx" } }, + { + "ename": "astyle", + "commit": "b495f29653edd15cef8eb3c9ea4d8aea35b0ac75", + "sha256": "0vchbm2lb9qa66fspyylyv0snmrxjfpzc332j0k7pkp6cmi08fnh", + "fetcher": "github", + "repo": "storvik/emacs-astyle", + "unstable": { + "version": [ + 20200328, + 616 + ], + "deps": [ + "reformatter" + ], + "commit": "04ff2941f08c4b731fe6a18ee1697436d1ca1cc0", + "sha256": "0midga1dz9yl7mzn6syb3iwnfpzvnfpqnxi9rsv63rqnrm36qy4q" + } + }, { "ename": "asx", "commit": "2eda72c3574c41184104532bb129cbe0efc8afd4", @@ -3899,8 +4025,8 @@ "deps": [ "auctex" ], - "commit": "76a786a26e1ddf4a1ef2b0067639c32e7cee9d06", - "sha256": "1vvvfhr52q34bv5mhhvzdwkkvcff955xkdijlrfyr8n7p9csjpim" + "commit": "76fba4a1a918ce8a276fa0e22f026ad9a45a47dc", + "sha256": "1rd92s2c08z3l2r2wxcs46bbri4rj0d0aym36v89pwq0fcqqx2ry" }, "stable": { "version": [ @@ -4535,14 +4661,14 @@ "repo": "rranelli/auto-package-update.el", "unstable": { "version": [ - 20180712, - 2045 + 20200421, + 309 ], "deps": [ "dash" ], - "commit": "55870d313fbe9db40b1a2b59dbc420ba66a9297e", - "sha256": "06hnr7id7w774adip0yffxh6c2xk27j2kch03r8y0v19mnfrvb39" + "commit": "cf7f7486ed699f2ed7cc8af950740aece0de6124", + "sha256": "14sq8p3qbhlfmpisanjxpginiibngmb84mjga97aq5sgpxy38wix" }, "stable": { "version": [ @@ -4629,6 +4755,24 @@ "sha256": "0ckjijjpqpbv9yrqfnl3x9hcdwwdgvm5r2vyx1a9nk4d3i0hd9i5" } }, + { + "ename": "auto-scroll-mode", + "commit": "195041c70d2807184d4d8c711bcd3f54b8dfc73a", + "sha256": "1hvnhszn1cqzw42wn7w0hrq7wn161alg2w6xpd53ydg61g31i68n", + "fetcher": "github", + "repo": "stardiviner/auto-scroll-mode", + "unstable": { + "version": [ + 20200316, + 134 + ], + "deps": [ + "cl-lib" + ], + "commit": "a23669a8747e71ca5b1003b923f7a3d3834740e3", + "sha256": "033msm39fdhm6iqd7khjsqvxrv4314h8klsq3g06zsrgpmjki1xr" + } + }, { "ename": "auto-shell-command", "commit": "ea710bfa77fee7c2688eea8258ca9d2105d1896e", @@ -4675,7 +4819,7 @@ "deps": [ "f" ], - "commit": "bfad607be640bed3a107e36c91b091e136c1c9ec", + "commit": "22cd3dd6d3206cdab5c72792479a8f7f04a2b3e9", "sha256": "0nwnmqhfy4378p43a12bc32y4qqw349xjkrdh6x7fkdsd4wpf7f4" } }, @@ -4707,16 +4851,16 @@ "repo": "robert-zaremba/auto-virtualenvwrapper.el", "unstable": { "version": [ - 20191120, - 1159 + 20200416, + 1128 ], "deps": [ "cl-lib", "s", "virtualenvwrapper" ], - "commit": "6380e8986d593655021f7f884d0d21895d7e63ad", - "sha256": "18k7azy456l7qizn3xnpb2dkj58gfrxy5q77dwplgakyvkr13y8p" + "commit": "f33e8c40e53c247ee6a4fd90af8805a9806735a1", + "sha256": "0hxwlm364xq66rp8izv0x09r37pg9kiddik0xbss736fdlw0sx4z" } }, { @@ -4786,6 +4930,21 @@ "sha256": "138kzn20gfy6dj15nkfwsz7lz91n6ffsjzz2kkmclnfkazxixjhq" } }, + { + "ename": "autocrypt", + "commit": "c5aac210984709f020f96f3ca166185900accddf", + "sha256": "1y5p5n2p2qk638i1as3wbfz82r08jv4q91470xz9r1gkdnn1xyx8", + "fetcher": "git", + "url": "https://git.sr.ht/~zge/autocrypt", + "unstable": { + "version": [ + 20200330, + 2301 + ], + "commit": "a16bf93ba833264b10d19abfa8fa684d9be32081", + "sha256": "119nii5qdds53cmwz3f8rl7f4k5l783h6k6ahizdawy4rf54xfz4" + } + }, { "ename": "autodisass-java-bytecode", "commit": "a094845521d76754a29435012af5fba9f7975a8e", @@ -4995,14 +5154,14 @@ "repo": "abo-abo/avy", "unstable": { "version": [ - 20200311, - 1106 + 20200422, + 1153 ], "deps": [ "cl-lib" ], - "commit": "3bf83140fad4c28f2dc4c7107b9d8fef84d17cb9", - "sha256": "1zicf7xynvxdx0pvg0zshvllabmjprvprjgg54phcbqlilcrq0hk" + "commit": "509471bad0e8094b8639729ec39ca141fae7d4bd", + "sha256": "0kj4nbp8g22xyvjdy8vh54v6zgd4f3z6srrw5pd55gbczm5csnbj" }, "stable": { "version": [ @@ -5189,11 +5348,11 @@ "url": "https://bitbucket.org/pdo/axiom-environment", "unstable": { "version": [ - 20200109, - 2207 + 20200411, + 1031 ], - "commit": "2c5384b994266008a20558db4ffe0525e66c0f5f", - "sha256": "17f40w9r4whz0v007pp13w060jq87ag42p21hcj93c14py5s4g67" + "commit": "25932da0dc40c6877463cbf019b14ab05a6b0164", + "sha256": "1xbps0k4x982gh1a0pscpx4kayjjyykvm5pyj516wwkya7bac4a6" } }, { @@ -5439,20 +5598,20 @@ "url": "https://git.sr.ht/~zge/bang", "unstable": { "version": [ - 20200102, - 1933 + 20200414, + 1123 ], - "commit": "87589331a8f0850a46964dbdbdcc3f2191b03376", - "sha256": "0yzz090997jn3d1ah8a32q491bsgzan6zqp2szv7d8ga4ziv3gkp" + "commit": "1fb0162ffd2115080d4e1ddf65935277cf3c75db", + "sha256": "12nr5la6y5dnh46rfij3p1srgpwdc3fiaf4ckfx6f9kl0n1zyrls" }, "stable": { "version": [ 1, 0, - 1 + 2 ], - "commit": "87b5ad3c81ccf0f2435e3c26ad7f9a1d6191ddb9", - "sha256": "10cybpw6wks2p21g1cz9rr6chvhv1s7jasrnzbcgpg8vkzb3dj48" + "commit": "1fb0162ffd2115080d4e1ddf65935277cf3c75db", + "sha256": "12nr5la6y5dnh46rfij3p1srgpwdc3fiaf4ckfx6f9kl0n1zyrls" } }, { @@ -5531,11 +5690,11 @@ "repo": "belak/base16-emacs", "unstable": { "version": [ - 20191031, - 1607 + 20200414, + 2048 ], - "commit": "9eba6874c80ab429bf5cbf6c76bb0399d3d2a2cb", - "sha256": "0ag5fsr3377rz6xfa0b9j54r90zh0yiz98kpa27xzhky4f5jpdah" + "commit": "d68512c0856f57a19cd49d1034199836352c15a0", + "sha256": "1h98ra53i7hc7zi9yjc6p29f70r04hivdczhw4imds13akq6j034" }, "stable": { "version": [ @@ -5589,6 +5748,44 @@ "sha256": "0q6scyva1psyam7jzygqcr1wayf70vrp237hm01q5i9cin8j4j1z" } }, + { + "ename": "basic-ide", + "commit": "9aaac29f5711f93f9ba7c14e5a332888e8920a86", + "sha256": "1pvgbc3vxqm4l8qc43g7b4viz4ilw828k9qlmb6ynzmij5ykrfrq", + "fetcher": "gitlab", + "repo": "sasanidas/emacs-c64-basic-ide", + "unstable": { + "version": [ + 20200416, + 1953 + ], + "deps": [ + "basic-mode", + "company", + "dash", + "f", + "flycheck" + ], + "commit": "5d186623fb6805db71fe5b226df497e6b2904b96", + "sha256": "1v9mhvi1fqh4pni03y3qrlrzj2jrz2s9jc5g3jjpxll4zhsfr6w4" + }, + "stable": { + "version": [ + 0, + 0, + 3 + ], + "deps": [ + "basic-mode", + "company", + "dash", + "f", + "flycheck" + ], + "commit": "5bfd5f91b9f91e46158e0419c6bb5c350e7684a1", + "sha256": "0nb6dbk8aclkq7jki52y4lwgbxg61xh1598l08yfv2l1ykhgg0n0" + } + }, { "ename": "basic-mode", "commit": "71801bdc0720f150edeab6796487c753c6e7c3f5", @@ -5664,17 +5861,17 @@ }, { "ename": "bazel-mode", - "commit": "3945f7eba7d5f248cace11a7946262ac2500b01a", - "sha256": "10590pbpg6mwkcwlm01nxf0ypw694h1b57frvn5rnc53al87i586", + "commit": "10f3918c55426c8c4754ef0dfccf19300e516012", + "sha256": "1gylmwlhzg6kgj9936799ppahbhicrxn2zpbr3417qycib84nl8x", "fetcher": "github", - "repo": "codesuki/bazel-mode", + "repo": "bazelbuild/emacs-bazel-mode", "unstable": { "version": [ - 20191110, - 2228 + 20200424, + 1953 ], - "commit": "7798e33cba5db14eb2c06ddcbc4e8fa361eb679c", - "sha256": "0gjm8276qj3a5kmh2qg93yadjhc2gcny058zpxwr6sialq9p7iwz" + "commit": "668a44907f7b3ad0e6fd300e319fba5862780140", + "sha256": "13llvkl40pybi4f1chak3v4f58fwwqw1kn9ygmv6dmn2wg4ag2mp" }, "stable": { "version": [ @@ -5969,11 +6166,11 @@ "repo": "DamienCassou/beginend", "unstable": { "version": [ - 20200203, - 1035 + 20200415, + 1752 ], - "commit": "3ab68d77839060f5e85bbf9455846b68cc63ef00", - "sha256": "049r18sa4646rhp2cidpdnk09c87xxf52d6mffq82xphzsniqarz" + "commit": "bb51f7ee9229ff0b6ec5ba4a730f7360246fb9ea", + "sha256": "0l7lbmn6ljh8yv7ch2fax47mr7kxly5b5ps5vg61ra15nv8v5vfr" }, "stable": { "version": [ @@ -6047,6 +6244,21 @@ "sha256": "0j508n860dp4in1psnkcriqck6by1jvnscalyff5na8hx6xgyysm" } }, + { + "ename": "bencoding", + "commit": "a668dc6c90a3be1a51be7478e385b9ab395f6852", + "sha256": "1qjk71gkzqq07yy84i0bkyg2wh0jn4gvglcknpcia38dd80m8b7z", + "fetcher": "github", + "repo": "xuchunyang/bencoding.el", + "unstable": { + "version": [ + 20200331, + 1102 + ], + "commit": "f0af19511831f3ade590879e7d1636387682a8e7", + "sha256": "1sfj694a6yjc4qwkxn2yvnl8xp8rzrkdgnsaj8ncwdyaa50xgw78" + } + }, { "ename": "bento", "commit": "aad104fd26adb419c5da1e3472807244794e8949", @@ -6243,14 +6455,14 @@ "repo": "cpitclaudel/biblio.el", "unstable": { "version": [ - 20190624, - 1408 + 20200416, + 1407 ], "deps": [ "biblio-core" ], - "commit": "efeeab720cb8e3f95ddb4298d0cc62393cf237e9", - "sha256": "1ikp1899sn8v46ng561nfj7j7vg234l3n8l8xx3gg7yxp2l9g8ms" + "commit": "eb9baf1d2bf6a073d24ccb717025baa693e98f3e", + "sha256": "0s7wld8ikfyn2rz8zr4g3lj59b2g95mj1jnqw6xvmxys0ahnb0r5" }, "stable": { "version": [ @@ -6290,16 +6502,16 @@ "repo": "cpitclaudel/biblio.el", "unstable": { "version": [ - 20190624, - 1408 + 20200416, + 307 ], "deps": [ "dash", "let-alist", "seq" ], - "commit": "efeeab720cb8e3f95ddb4298d0cc62393cf237e9", - "sha256": "1ikp1899sn8v46ng561nfj7j7vg234l3n8l8xx3gg7yxp2l9g8ms" + "commit": "eb9baf1d2bf6a073d24ccb717025baa693e98f3e", + "sha256": "0s7wld8ikfyn2rz8zr4g3lj59b2g95mj1jnqw6xvmxys0ahnb0r5" }, "stable": { "version": [ @@ -6371,6 +6583,45 @@ "sha256": "0vcdi0q6rbs3qqlpccy9hdv82zrx61gdj3fn444qashk84s085vf" } }, + { + "ename": "bibtex-completion", + "commit": "873ae2af16e03c8e10494be3f0e7840eb27172a3", + "sha256": "06mg9fwp6jwr6fbnzh4z8am47bspcl8hv0icmdpc9lmzbcyfpg8f", + "fetcher": "github", + "repo": "tmalsburg/helm-bibtex", + "unstable": { + "version": [ + 20200417, + 1725 + ], + "deps": [ + "biblio", + "cl-lib", + "dash", + "f", + "parsebib", + "s" + ], + "commit": "631dc607e8f29f1a585adde01d6785af1fb35d12", + "sha256": "09l1h1z493dc7hp109sqs1lkkcaw0mh762p5cpda9xymr9hf6w31" + }, + "stable": { + "version": [ + 2, + 0, + 0 + ], + "deps": [ + "cl-lib", + "dash", + "f", + "parsebib", + "s" + ], + "commit": "d6a98ac6f28d2a6a05e203115211c98333d40aca", + "sha256": "0arhy051945lxjqg77b275ny9nsv60cqj0qfpmvd8xkc07lqfn23" + } + }, { "ename": "bibtex-utils", "commit": "5764b6a880e8143db66e9011cc1c2bf0bcd61082", @@ -6418,20 +6669,20 @@ "repo": "riscy/bifocal-mode", "unstable": { "version": [ - 20190623, - 2236 + 20200325, + 539 ], - "commit": "c354fc32b0a666203f5c546bb2d2c397cb003391", - "sha256": "0wzsbrj1rhfl6qgjnphbh6ijfbjdr2wid7mqzz49ykcb9ldm7kjj" + "commit": "773a6dde790c4a240e643a9071e4c7bce09d40de", + "sha256": "11dirb13hblfa95hqqshrsjri4d4qzcq5qhhnd4xqajdchr62758" }, "stable": { "version": [ 0, 0, - 5 + 6 ], - "commit": "add30c678488cec04976a85ba8cda20805938a01", - "sha256": "01j8s6c3qm4scxy1dk07l41y0n55gz83zzfi254kc2vyx02vqg7f" + "commit": "773a6dde790c4a240e643a9071e4c7bce09d40de", + "sha256": "11dirb13hblfa95hqqshrsjri4d4qzcq5qhhnd4xqajdchr62758" } }, { @@ -6478,8 +6729,8 @@ "bind-key", "key-chord" ], - "commit": "42db6b3d90ee57d0f5947d3b0bf4b0010bdf7b40", - "sha256": "1an2whgy68l9c1l1qx8p8jz47g4hj2abf0kxvcmbc6wj8lp5zny8" + "commit": "c873d5529c9c80cb58222f22873a4f081c307cb2", + "sha256": "0jbq3w9ijsbl5gblhr24b0rh4gyp1xx696g20l438a7sbsk4b531" }, "stable": { "version": [ @@ -6505,8 +6756,8 @@ 20191110, 416 ], - "commit": "42db6b3d90ee57d0f5947d3b0bf4b0010bdf7b40", - "sha256": "1an2whgy68l9c1l1qx8p8jz47g4hj2abf0kxvcmbc6wj8lp5zny8" + "commit": "c873d5529c9c80cb58222f22873a4f081c307cb2", + "sha256": "0jbq3w9ijsbl5gblhr24b0rh4gyp1xx696g20l438a7sbsk4b531" }, "stable": { "version": [ @@ -6714,6 +6965,29 @@ "sha256": "0cs9nmi30dknrw6p2xvx9np1zmzpsn3bs93lhfiqy2a4ylf96brl" } }, + { + "ename": "blackout", + "commit": "9128d87569dc74b90f57dd65edead7199f5c7911", + "sha256": "06gxgald2vchfwhbiaap7rfjk7kirfv4yjc4r98g998v96bilw64", + "fetcher": "github", + "repo": "raxod502/blackout", + "unstable": { + "version": [ + 20200404, + 1550 + ], + "commit": "af37650d99bb5ae3ab05577a5bf99d5ff26b1e66", + "sha256": "18n1l6rwwfjrgaygm7nhrxg92fdd21aqkb38lc55lx3qhlrw1qwv" + }, + "stable": { + "version": [ + 1, + 0 + ], + "commit": "87822abd1ed46411368ef91752a7f51c0ef2aee0", + "sha256": "0n0889vsm3lzswkcdgdykgv3vz4pb9s88wwkinc5bn70vc187byp" + } + }, { "ename": "blgrep", "commit": "e78ed9dc4a7ff57524e79213973157ab364ae14d", @@ -6773,11 +7047,11 @@ "repo": "Sodaware/blitzmax-mode", "unstable": { "version": [ - 20200211, - 2205 + 20200415, + 1529 ], - "commit": "4814c35007035f0e26e0fadc50fffc4ab6d298ad", - "sha256": "160jd2rn1lgwgnm1ygdcsz1z0yxg9f1ps9wxqkv30xnkbnnxq10c" + "commit": "5f67bb3c8e4baf1f6881cc998f9f031641a7b08a", + "sha256": "1hcx6b3ka0n6sbi9p0z2wqlsxk5d2pvkjawpcyh40b5f1r6dpfmc" }, "stable": { "version": [ @@ -6914,14 +7188,14 @@ "repo": "sergeyklay/bnf-mode", "unstable": { "version": [ - 20200301, - 2140 + 20200323, + 1348 ], "deps": [ "cl-lib" ], - "commit": "4a7aff6a3a691826ea4add9f519c854b9611d780", - "sha256": "1hnkvwl0as2s4aayqahclqclsriigqv51h8yafx0za1xfh4snfzv" + "commit": "d88eef69ae66ea1ffa21a65317afe84c9ddb0814", + "sha256": "1bci2w8drwgcli9hqg55izaxpwq4fvqdigvlrfc0524s7021ij24" }, "stable": { "version": [ @@ -6973,8 +7247,8 @@ "deps": [ "cl-lib" ], - "commit": "b5df3647f55359f8546dcfa991a351673a069a49", - "sha256": "1rfv036wzlrbqbki5i24871a9f2h6zk7yqd1lq6gnqrc4y7m477c" + "commit": "6c8fa1b4961e279ae63130902996c5f71a2e64e4", + "sha256": "0kph9898s2m086p8gj97bbzr7mba9y7hmyxh1z4mgpv5808zvd05" }, "stable": { "version": [ @@ -7322,6 +7596,48 @@ "sha256": "1980267q70b7m16jsxc433cdqzr15q8dz5cwpkhla52wfdf1s184" } }, + { + "ename": "brf", + "commit": "203e7d21e2387866107740ead4ec28787d82ebfb", + "sha256": "0439bzzzy6kx536zh9azxrdmfpb69xrr8axxg5q7989892iaqi5m", + "fetcher": "git", + "url": "https://bitbucket.org/MikeWoolley/brf-mode", + "unstable": { + "version": [ + 20200329, + 1531 + ], + "deps": [ + "fringe-helper" + ], + "commit": "f1ae0c5eb74f62af109ebaf18e8663d6f51270cb", + "sha256": "1pzxz5irx6ysa8nhl9x50v8l5r2cvd6pafj71q4i5lrxv9a1dkl1" + } + }, + { + "ename": "brightscript-mode", + "commit": "9acbba1c180ea7c03156009c08285697a7aae419", + "sha256": "0g0lwmd53v6lqihksqdirl12rz6a9ljp9zdm1xpd4wbqz72w17jw", + "fetcher": "github", + "repo": "viseztrance/brightscript-mode", + "unstable": { + "version": [ + 20200321, + 2126 + ], + "commit": "3b34032bdde6a37b4566c45ce93cb38da21d4965", + "sha256": "16p4404mxqgl1zqdalnq3bvbhwv11wgfl42871lxv3nndcsd30gr" + }, + "stable": { + "version": [ + 1, + 0, + 0 + ], + "commit": "01405633a14269ab26d053ca6f1494c987d24195", + "sha256": "0952smngj32an30v2bqgfc14xrl90xwr4a038w01cdgg9k848g7y" + } + }, { "ename": "broadcast", "commit": "6ed51896112e702a8b853059884aad50d37738c2", @@ -7425,6 +7741,21 @@ "sha256": "08qz9l0gb7fvknzkp67srhldzkk8cylnbn0qwkflxgcs6ndfk95y" } }, + { + "ename": "brutal-theme", + "commit": "e415b9a4d269cfee5ee2b0e58acb18804c2a8cb7", + "sha256": "1xjj2ssw3lbx21w6g4m6vqc471v8jgmgk0zw1z1hkmygg0xipgl3", + "fetcher": "github", + "repo": "topikettunen/brutal-emacs", + "unstable": { + "version": [ + 20200415, + 602 + ], + "commit": "ee63563b7cb07aeec342722ae684426cb0465a98", + "sha256": "1wx6771iv4psvlwhng0n09g0w3yml1pw3ga5lghjz9j6hba0bc6s" + } + }, { "ename": "brutalist-theme", "commit": "ec889956a5685c3a60003ad2bfa04b03b57aa8e8", @@ -7725,6 +8056,67 @@ "sha256": "0x9bcnya47pf78p6ksdvs1ca5arvbgyi1q8b9yxq55fg3k9523ln" } }, + { + "ename": "buffer-wrap", + "commit": "446fb5528644d9e51a10ade59de97e248729d3f3", + "sha256": "1fdk490hwz1mf4ldw8bh0w2byxi03qwdapgdgcvzir3s913gagrw", + "fetcher": "github", + "repo": "jcs-elpa/buffer-wrap", + "unstable": { + "version": [ + 20200223, + 605 + ], + "commit": "460f90bc024b6c287ed8afac3ff1bed2a147c777", + "sha256": "07r50iiiyhbqbia9c8c3kz1hvqjs6dkb8rkqpq4yyv3vd1kc9qnb" + }, + "stable": { + "version": [ + 0, + 1, + 1 + ], + "commit": "813a3dab3007a34fa27cf0a1ae687dc0eae98240", + "sha256": "0m2ryic16083ab0x6qwfrxrpsgq84s518vn0cbfcxycblpdh89al" + } + }, + { + "ename": "bufler", + "commit": "4ba5657f237eea9073a46a4127be5795be07c687", + "sha256": "1zxvkrgwk7v3404vcwyv5nag60ri72qqi5fkpwwmzc9cs2bckj20", + "fetcher": "github", + "repo": "alphapapa/bufler.el", + "unstable": { + "version": [ + 20200409, + 1253 + ], + "deps": [ + "dash", + "dash-functional", + "f", + "magit-section", + "pretty-hydra" + ], + "commit": "b2b260e4f9e8ba76bb8b4d71344c7b75e05ac44f", + "sha256": "0ww7z2xz185i97wa1rnmqwlx2mvwx69hhlyi5m3sm0nkyckb2hjs" + }, + "stable": { + "version": [ + 0, + 2 + ], + "deps": [ + "dash", + "dash-functional", + "f", + "magit-section", + "pretty-hydra" + ], + "commit": "d6c79f04b7d288174d8294fb30488b567586364d", + "sha256": "0l35ssjry15wqcxnr8rf5lrv856pgnm0k2d4d6ag14ypjx9nfhw3" + } + }, { "ename": "bufshow", "commit": "543a734795eed11aa47a8e1348d14e362b341af0", @@ -8026,11 +8418,11 @@ "repo": "jorgenschaefer/emacs-buttercup", "unstable": { "version": [ - 20200308, - 2200 + 20200412, + 1148 ], - "commit": "b360e3501703d8829a7dfc2d141e8c7c32c9bcfe", - "sha256": "0b3xkykfw8888zdg5w45kzij0d547j67crpc62mizh0fnc5naqvr" + "commit": "a91f2820256a4e0c8636cc33a2ef8515a26d3f81", + "sha256": "0nhsxj48a9aqfmwqs4m65zh2g0cmvijz4m69cvx1bcia31jaabpx" }, "stable": { "version": [ @@ -8055,8 +8447,8 @@ "deps": [ "buttercup" ], - "commit": "400227a45164e4e849048d288a02ab8243d09cd2", - "sha256": "1z972i1pzg8bkrzzbjha802486mybqyh9bhbvfk2sr6nzhvx2w1k" + "commit": "3ae4f84813c9e04e03a6e703990ca998b62b6deb", + "sha256": "0ndxbh2jff6qryczawzbg580744h18z7grg82dpg7fv0rbxnyi3j" }, "stable": { "version": [ @@ -8310,6 +8702,25 @@ "sha256": "1a0qdiihyc5qwz5j68hnpfp0fx3qbzgvzflrbfv072r7ldxzfi57" } }, + { + "ename": "calc-at-point", + "commit": "9ab725281ae66c1b97875518614a0f6312ace3a8", + "sha256": "1yzb2gmmdrcckgq1kd1gcbnbqf65aia7nx4j2lgrh2n9dlp40d03", + "fetcher": "github", + "repo": "walseb/calc-at-point", + "unstable": { + "version": [ + 20200406, + 1618 + ], + "deps": [ + "dash", + "dash-functional" + ], + "commit": "11e40c8db9493ada71964b73069c6db529016492", + "sha256": "06dmm6b2xflkwgk5mysi3ycbi6yz5n0sci191a15nnzxg7vh1fbf" + } + }, { "ename": "calendar-norway", "commit": "c5d01230027d5cec9da2545a9ce9270a611f6567", @@ -8472,8 +8883,8 @@ "repo": "beacoder/call-graph", "unstable": { "version": [ - 20200211, - 240 + 20200402, + 910 ], "deps": [ "anaconda-mode", @@ -8482,8 +8893,8 @@ "ivy", "tree-mode" ], - "commit": "768a1b2169dca60a130204065dbc54bdff415b0f", - "sha256": "12f9wc3kp3pafip283yr8qd5s93nmcf84b07i72fv69nxxi4a41q" + "commit": "2f47dcb65ed8dc5393df846b4175a4872e254c05", + "sha256": "0xn8xk2x3ih22vlfjvnl6853ddpk57q70z9b0vwhjvwmi4idz7xp" }, "stable": { "version": [ @@ -8938,11 +9349,11 @@ "repo": "skk-dev/ddskk", "unstable": { "version": [ - 20151205, - 1343 + 20200314, + 1557 ], - "commit": "183c4fd3fe5fb7cb089bbfc7437815d426d08372", - "sha256": "1jgvs093w0llp0nxfdzfrlk7il0wj48qhnqsn61pvnma10m93zdl" + "commit": "11d91b4cce988e15d7c5fc4345535c9d7a92d53b", + "sha256": "19fgk6m951q9swr958337a3jk9b4xgvswkc73al6wsdkigygmhji" } }, { @@ -8953,16 +9364,16 @@ "repo": "MaskRay/emacs-ccls", "unstable": { "version": [ - 20200204, - 444 + 20200327, + 1915 ], "deps": [ "dash", "lsp-mode", "projectile" ], - "commit": "e5cc4c3e6f40c9c9f0f53e99154c08018eb36944", - "sha256": "1yc7jj4g0kh0m1a4r98shvr48wp9i5mawld0xzs9mbfj97dsb96v" + "commit": "17ec7bb4cf362b7268c24e070e841f0dfac1c919", + "sha256": "08pndwbw6wcpysnvhkqfvrw91ac0np31swiq0yv3dr2x0sq70cp5" } }, { @@ -8988,11 +9399,11 @@ "repo": "skk-dev/ddskk", "unstable": { "version": [ - 20200210, - 1326 + 20200314, + 1557 ], - "commit": "183c4fd3fe5fb7cb089bbfc7437815d426d08372", - "sha256": "1jgvs093w0llp0nxfdzfrlk7il0wj48qhnqsn61pvnma10m93zdl" + "commit": "11d91b4cce988e15d7c5fc4345535c9d7a92d53b", + "sha256": "19fgk6m951q9swr958337a3jk9b4xgvswkc73al6wsdkigygmhji" } }, { @@ -9126,15 +9537,15 @@ "repo": "ema2159/centaur-tabs", "unstable": { "version": [ - 20200309, - 16 + 20200325, + 1236 ], "deps": [ "cl-lib", "powerline" ], - "commit": "af50f87d40697a4e5d6097e2042111fc4a930b40", - "sha256": "1c3szcv87gjlm2bndasrx9q46x699cxapmhfs2zs08yk6gc1yfji" + "commit": "e6bf9f5257fa5401695e0e33d0376a0821ac2f2f", + "sha256": "1gm06par7pglwj25ydvlp1n2vniq6283mm0g4s53ra77ywsz73jv" }, "stable": { "version": [ @@ -9172,11 +9583,11 @@ "repo": "anler/centered-window-mode", "unstable": { "version": [ - 20171127, - 949 + 20200426, + 1053 ], - "commit": "24f7c5be9def20879f46659082d497e67b55d7af", - "sha256": "0387x0z2l0yvbhkvh3rf3h2ddk7bvwgkpvpngwhhsjbc4hh4k3hz" + "commit": "f50859941ab5c7cbeaee410f2d38716252b552ac", + "sha256": "1l7m3gfn7j1mxs0rj1pm5avknplw2f34dd2k24n5rldfm41pf8i8" } }, { @@ -9261,17 +9672,17 @@ 20171115, 2108 ], - "commit": "b7135d2b898062aa9b1cc279062b8cbf48802d21", - "sha256": "1v4af4kblrq1bcfdzwqpq9inmyj83ppj5kwpnnvw6j92x0362nga" + "commit": "5d5692e7526eb228308f91c10761f22c69c8ea35", + "sha256": "1shwvgakkv9q9mlvzcsxnrj4zd1ld8nf7k8pw6zl6j3wg0sj5fd3" }, "stable": { "version": [ 3, 15, - 0 + 1 ], - "commit": "76bc1fad91478de7064380c31d333e1975cf8126", - "sha256": "1amjzy3v7rhc6djl1ldqnhpd4m3prh7lfyd5hyb9fp0v8jhyg3w2" + "commit": "e766ee2484f9a7609688ac1832ff2ca7528624c5", + "sha256": "18iv6s2g7gz2dmqhipn6ln6g4qngywcj7fm4gqwrph04bx5dfqac" } }, { @@ -9844,6 +10255,40 @@ "sha256": "1apzb0jccw91gdynqa1722bbalzj4kp9fq25zzw1rxsrgh3mgmc5" } }, + { + "ename": "chronometrist", + "commit": "35d03fe9c066e7388d5ff4adad1afa1e30145995", + "sha256": "09dil46qjn7y55y7qax92l7mcw8g1bsb1mjqc92zgln96asi25kj", + "fetcher": "git", + "url": "https://framagit.org/contrapunctus/chronometrist/", + "unstable": { + "version": [ + 20200324, + 653 + ], + "deps": [ + "dash", + "s", + "seq" + ], + "commit": "dc0fb3bed6b893ecb924f5b1228ab718325cc808", + "sha256": "08mzv8rijsagkj4ykxlgr99axp0kxnz36d3iaffkqzyv50cm4r6f" + }, + "stable": { + "version": [ + 0, + 4, + 2 + ], + "deps": [ + "dash", + "s", + "seq" + ], + "commit": "cc791cd61ee4580c9786f8c58d9e1964e0ff0c64", + "sha256": "1ccy7qz1wcmggqlf3hwigbqq4wrx1amds4x9bxz9py6bypglyjc5" + } + }, { "ename": "chronos", "commit": "53648c5699fc03e50774270f9560c727e2c22873", @@ -9900,8 +10345,8 @@ "repo": "clojure-emacs/cider", "unstable": { "version": [ - 20200308, - 1030 + 20200420, + 735 ], "deps": [ "clojure-mode", @@ -9912,8 +10357,8 @@ "sesman", "spinner" ], - "commit": "c027c4948562f736fd77e441dc10cb5d6bb355a1", - "sha256": "0p808ks2x9dg98v80icxldynvvvfwwsf2y89la40fsc572s8zqjw" + "commit": "7f4d4e81816e64238370e028824e6389f02a38c8", + "sha256": "03rbanapb2rg9is91r6c549gx96va5gkpdqhlm0gqgph4jg4jvfi" }, "stable": { "version": [ @@ -10195,21 +10640,6 @@ "sha256": "04xz3y3j8k1pv5v6v9wqscqlpmgqi85fs3igrv8c9y0xagild29k" } }, - { - "ename": "cl-font-lock", - "commit": "c4cc415c24fc1c404aa9e4d8fcc7bf70ed182633", - "sha256": "1igiclz5lshq9bz4sndf0qgsvnrfk39jnpld8g4a985gr2hislb4", - "fetcher": "github", - "repo": "equwal/cl-font-lock", - "unstable": { - "version": [ - 20191230, - 2341 - ], - "commit": "fa0f762cf55d42251b23b3096ab69ed32cd97c14", - "sha256": "1z4kplbnld62f396lh1hggdpvhlzk5fll7lcjz0dsh96m4cmx907" - } - }, { "ename": "cl-format", "commit": "855ea20024b606314f8590129259747cac0bcc97", @@ -10417,11 +10847,11 @@ "repo": "spudlyo/clipetty", "unstable": { "version": [ - 20200105, - 15 + 20200327, + 2241 ], - "commit": "fda5a80cf4b24389b2f95eeec1d567df80a8fb11", - "sha256": "1nzlrd7vf4sqhb2a0bsg1gaj722id5i1s9f1wdi2bmx58rzhqnhp" + "commit": "01b39044b9b65fa4ea7d3166f8b1ffab6f740362", + "sha256": "1g1awdcqzrnw1a6gl4n87a97lniyn0ck5a51l9n6jz2m8k3idmsg" }, "stable": { "version": [ @@ -10526,8 +10956,8 @@ "repo": "clojure-emacs/clj-refactor.el", "unstable": { "version": [ - 20200229, - 1105 + 20200405, + 1419 ], "deps": [ "cider", @@ -10540,8 +10970,8 @@ "seq", "yasnippet" ], - "commit": "92d372393a031e5fa73ef926447afe72b574cb45", - "sha256": "0lnis1qwk1gyxgapl06d7ww1mlb9a8ahl8zwa7y2n3jrgfm25qp4" + "commit": "8259791e054382457b87d1f78061b5e3ce948907", + "sha256": "0vn32b8vhlp75vj4schy8blmiddc6dn92jl4f935yd4sg7pm04cj" }, "stable": { "version": [ @@ -10704,11 +11134,11 @@ "repo": "clojure-emacs/clojure-mode", "unstable": { "version": [ - 20191112, - 1948 + 20200419, + 559 ], - "commit": "51016faaa88956bdd4decf2fa94dd5198777a47c", - "sha256": "13xx6ihhr2175w5d0m5zbyg3fmk1s46wj399f4lrc4skwjxbrlgg" + "commit": "da9f1ec717dac1194404b4a4562dba6bd9a4ee3a", + "sha256": "0v4q031rvy34llbxhksqlzf3ign4q5xcwf6b3fzblb9k5nz2b3hr" }, "stable": { "version": [ @@ -10728,14 +11158,14 @@ "repo": "clojure-emacs/clojure-mode", "unstable": { "version": [ - 20190712, - 639 + 20200320, + 823 ], "deps": [ "clojure-mode" ], - "commit": "51016faaa88956bdd4decf2fa94dd5198777a47c", - "sha256": "13xx6ihhr2175w5d0m5zbyg3fmk1s46wj399f4lrc4skwjxbrlgg" + "commit": "da9f1ec717dac1194404b4a4562dba6bd9a4ee3a", + "sha256": "0v4q031rvy34llbxhksqlzf3ign4q5xcwf6b3fzblb9k5nz2b3hr" }, "stable": { "version": [ @@ -11037,19 +11467,17 @@ 20190710, 1319 ], - "commit": "c7c6e103d1209f7e29cb2909cf342be75478f304", - "sha256": "0p4fi9yss2n9wdlhra035spj353q047mfyab1jgswyfjfghgmiks" + "commit": "eadafe2ebc419414fba42a3fe28b534bb2fc7a93", + "sha256": "11yhjsg2y6mxpd674wkqfwzfm4qzrmbh0mywq7617brg6hk71kb9" }, "stable": { "version": [ 3, 17, - 0, - -1, - 2 + 1 ], - "commit": "d1cb554c99c73e1486fbf4e09125337a7c0e9ea3", - "sha256": "07qkp3wbmpx2p3jpzxhgf5y9j6yzaxnq4krbj2d5m1hbgxxqgxz5" + "commit": "bd580b7d568493a795a855c0710ba4ad88532485", + "sha256": "1ng8svdxwgjj4aq9f89lx18znrlhcjgl0brsfxwissf1z0539l9d" } }, { @@ -11117,11 +11545,11 @@ "repo": "tumashu/cnfonts", "unstable": { "version": [ - 20200226, - 206 + 20200327, + 101 ], - "commit": "1baddba41af7edd6d4eb3c24ac85ba4a1b30aa3f", - "sha256": "0hspqc5xhi0mmrwyakqbq7dikn56q05c5xsnpgkx2mjjx7z05jh1" + "commit": "d741332ad4bcd9a136d5dc4974a050da8ca28888", + "sha256": "1f2nrklzvm0b09d1s5rxvzahc32rs5qdqx910a45fj95hlw2w2wc" }, "stable": { "version": [ @@ -11275,10 +11703,10 @@ }, { "ename": "codic", - "commit": "acc9b816796b9f142c53f90593952b43c962d2d8", - "sha256": "0fq2qfqhkd6injgl66vcpd61j67shl9xj260aj6cgb2nriq0jxgn", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "05pa2a74c4ra7qqv3da3bx623vf36qrk5dm1jx1a4x1vbpgv5mz0", "fetcher": "github", - "repo": "syohex/emacs-codic", + "repo": "emacsorphanage/codic", "unstable": { "version": [ 20150926, @@ -11328,11 +11756,11 @@ "repo": "defunkt/coffee-mode", "unstable": { "version": [ - 20170324, - 940 + 20200315, + 1133 ], - "commit": "86ab8aae8662e8eff54d3013010b9c693b16eac5", - "sha256": "0hf06wp6cpsm7fivwkph6xvc2r39xww8q3aibp4nprlrwcmmv2al" + "commit": "35a41c7d8233eac0b267d9593e67fb8b6235e134", + "sha256": "11jppi95j9229qmj1747kfa602640kjz1xf5254ph3nhljxb0nsv" }, "stable": { "version": [ @@ -11373,14 +11801,14 @@ "repo": "patbl/colemak-evil", "unstable": { "version": [ - 20171015, - 2307 + 20200326, + 2359 ], "deps": [ "evil" ], - "commit": "192c779281ae1fbf2405dcdb55b3c5b2a1d0b3d1", - "sha256": "1clnvr7n6mx5b8pq1c6zchq7n1g8ip8hwgzc61ywrmiyv0v8rnc6" + "commit": "981bdcb1a48c6d9139493abe7e25fabe126e43c3", + "sha256": "0dqyqaqr71z4mipb4g5jxdw96lzb108fd5w4wi27023hfll3j1hc" } }, { @@ -11499,11 +11927,11 @@ "repo": "emacs-jp/replace-colorthemes", "unstable": { "version": [ - 20161219, - 1144 + 20200315, + 929 ], - "commit": "4f7da6f955f7c584c5dfab2dc170f9a3debd80f8", - "sha256": "08wmllq3smg7cp7jspmvd67z5vzmxvi136c6j87r1gsgprhgmhw4" + "commit": "40464198e7bf2121694a7e6d87588342140a84ff", + "sha256": "0fhr0rvfrb9fmbh9zgzxx2c2zl28v16hxmn9jx6k73nsfwpy498j" }, "stable": { "version": [ @@ -11549,11 +11977,11 @@ "repo": "purcell/color-theme-sanityinc-tomorrow", "unstable": { "version": [ - 20200220, - 1500 + 20200419, + 156 ], - "commit": "437bdd7a96fee751c6f817aff0100dd44bb07b23", - "sha256": "0cjbl7m6a0mmiiidn7w7hcggc58l5503swfnasbzyd1pzdrnn15y" + "commit": "344b06ed3c139af717ebff59505fc66635678f6c", + "sha256": "00as07y5q71bscchbz3yzck4ljzbcd5x5ghzzajgz3pj484smz6z" }, "stable": { "version": [ @@ -11590,11 +12018,11 @@ "url": "https://git.sr.ht/~lthms/colorless-themes.el", "unstable": { "version": [ - 20200221, - 1655 + 20200325, + 1307 ], - "commit": "a7b7c0a32b174988f40378996cd8997f73524f19", - "sha256": "0khsf4xz0wjn774hy08pxafm79j55ns28q25pfzyj9s07hi4r0vz" + "commit": "2b4c341640c8191a39e4bc28d6cd04c7d6dcbb37", + "sha256": "0ni9cnrv464fk840i1ll241kzkiy1zc6nfrbdv3ciixxdxbshxbn" }, "stable": { "version": [ @@ -11684,11 +12112,11 @@ "repo": "cyrus-and/comb", "unstable": { "version": [ - 20200114, - 1325 + 20200411, + 1040 ], - "commit": "bd8e11b8593bc48f81ce01c0657d5a7977cafdf6", - "sha256": "0ndz25x1l0rzn5j8xg9ql2s2lgin1893kzf722chyk8147qwb0i8" + "commit": "59e025c3afb867706b869ac4bf2623665eb99821", + "sha256": "16swixv88nbs6gscgzy5lizi66pw0c9fm03xpm1kinan8v2s9m3v" }, "stable": { "version": [ @@ -11980,11 +12408,11 @@ "repo": "company-mode/company-mode", "unstable": { "version": [ - 20200228, - 1919 + 20200425, + 118 ], - "commit": "94e22c45e92cf220abb9b5a582f85aa99c06004d", - "sha256": "0l3hxj2cf9fw7ma3ac95cigw733h2k0dv987hanfhlx2jckjyma1" + "commit": "fdde3d112ba85d034f83f95deafa24fd13be36e4", + "sha256": "1krc5gxlkhr87hw5wlch1wfrjxdin8isg51f8m6kjy20jx57jalc" }, "stable": { "version": [ @@ -12004,8 +12432,8 @@ "repo": "pythonic-emacs/company-anaconda", "unstable": { "version": [ - 20200129, - 1830 + 20200404, + 1859 ], "deps": [ "anaconda-mode", @@ -12014,8 +12442,8 @@ "dash", "s" ], - "commit": "a31354ca8ea35c0b2c1f6bb2b1a02a6cfb5e564b", - "sha256": "05qaxb3qpz3bi6c88qspf50sh15hzc01354zhj0amd07bmqzhwfg" + "commit": "da1566db41a68809ef7f91ebf2de28118067c89b", + "sha256": "1x260p0fj33xg6hkrz9q9dqrpibp4yn2n9is3a6s4xxfb485rz0g" }, "stable": { "version": [ @@ -12122,8 +12550,8 @@ "axiom-environment", "company" ], - "commit": "2c5384b994266008a20558db4ffe0525e66c0f5f", - "sha256": "17f40w9r4whz0v007pp13w060jq87ag42p21hcj93c14py5s4g67" + "commit": "25932da0dc40c6877463cbf019b14ab05a6b0164", + "sha256": "1xbps0k4x982gh1a0pscpx4kayjjyykvm5pyj516wwkya7bac4a6" } }, { @@ -12224,8 +12652,8 @@ "repo": "cpitclaudel/company-coq", "unstable": { "version": [ - 20191025, - 2219 + 20200130, + 2058 ], "deps": [ "cl-lib", @@ -12234,8 +12662,8 @@ "dash", "yasnippet" ], - "commit": "6e8bc2e367e8184079b7f4b4ab359b64ab884d7c", - "sha256": "192vvz77yik0lx2g4yfjwx2himzzq4zhrc9mlyhdpwsmzwx7bf4r" + "commit": "f9dba9ddff7da99a93d8a6e26d9b1d813bc96b2f", + "sha256": "1hl8gr8afx2i5bia7vq3vn4shbaz8fps3h30ldvq141kfvmcp8jm" }, "stable": { "version": [ @@ -12262,14 +12690,14 @@ "repo": "redguardtoo/company-ctags", "unstable": { "version": [ - 20200209, - 47 + 20200407, + 803 ], "deps": [ "company" ], - "commit": "fa5a3f7b765fc0e42a378fa2293be4c2817fe04e", - "sha256": "1wgxmy1pwwc7mvgw9bx3vvaay1pirzghvpqs6d9mnx1wbzn1x29b" + "commit": "b159e45b38226e046cf6fb7d08a0cf864ebbf772", + "sha256": "0h0k06c9fabyz6akka1bpwkz69wzl7ajcm0p108xdf5lymc75v5h" }, "stable": { "version": [ @@ -12357,41 +12785,6 @@ "sha256": "0yvp3dwa9mwfyrqla27ycwyjad4bp1267bxv0chxcr4528hnygl3" } }, - { - "ename": "company-edbi", - "commit": "5d881ff0927d5bd7f8192f58927ceabb9bad4beb", - "sha256": "067ff1xdyqy4qzgk5pmqf4kksfjk1glkrslcj3rk4zmhcalwrfrm", - "fetcher": "github", - "repo": "proofit404/company-edbi", - "unstable": { - "version": [ - 20160221, - 1923 - ], - "deps": [ - "cl-lib", - "company", - "edbi", - "s" - ], - "commit": "ffaeff75d0457285d16d11db772881542a6026ad", - "sha256": "16v4wzb9sp9ryfhgl3rk108pqvam2v6rh6hl6008083g557nmhq1" - }, - "stable": { - "version": [ - 0, - 1 - ], - "deps": [ - "cl-lib", - "company", - "edbi", - "s" - ], - "commit": "08dc69ccfbcf10ca83f7075e9b735c6885cd7e11", - "sha256": "0n2hvrfbybsp57w6m9mm7ywjq30fwwx9bzc2rllfr06d2ms7naai" - } - }, { "ename": "company-emacs-eclim", "commit": "1e9d3075587fbd9ca188535fd945a7dc451c6d7e", @@ -12646,8 +13039,8 @@ "company", "go-mode" ], - "commit": "939b4a677f2f843ea13d9dd90206d57111f0ceb9", - "sha256": "1yfw8y6czkqgxpyfdxwvkcrsmwbca7l0lr4jqmnpmm5m5rylcwr9" + "commit": "4acdcbdea79de6b3dee1c637eca5cbea0fdbe37c", + "sha256": "0i1hc089gb6a4mcgg56vn5l0q96wrlza2n08l4349s3dc2j559fb" }, "stable": { "version": [ @@ -12749,22 +13142,22 @@ }, { "ename": "company-jedi", - "commit": "bded1840a39fbf1e014c01276eb2f9c5a4fc218f", - "sha256": "1krrgrjq967c3j02y0i345yx6w4crisnj1k3bhih6j849fvy3fvj", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "0a1p00jcvslm7h08kzdf6by9v4lf850jb2ki8gl8hgdcf5yvkdyi", "fetcher": "github", - "repo": "syohex/emacs-company-jedi", + "repo": "emacsorphanage/company-jedi", "unstable": { "version": [ - 20151217, - 321 + 20200324, + 25 ], "deps": [ "cl-lib", "company", "jedi-core" ], - "commit": "2f54e791e10f5dc0ff164bfe97f1878359fab6f6", - "sha256": "0bpqswcc6a65wms0pdk9rsad9jiigmx2l1jaqr8bz4va945qdlhg" + "commit": "5232fbc1fdbfc81b1dd883afb720338c3e39556b", + "sha256": "155dba3qim7r8xhrv6dkhzhcc2km9761g5d3qmgd37jnk0mmd8l0" }, "stable": { "version": [ @@ -12799,8 +13192,8 @@ "lean-mode", "s" ], - "commit": "c9dffcda2951c22c483d1d22411d13bc132ce609", - "sha256": "1lj6j21hzya41fmlnw7faqmhvsdcgcidwibyvicgsb0gm6qqipjf" + "commit": "65b55b1711fb61129312044d5ac7e6a2c2ee245c", + "sha256": "1zmw8950qhry2ixk2ng0pg4j0vwx11nvjlrpab9jg6x47ys9j65n" } }, { @@ -12911,6 +13304,25 @@ "sha256": "0sfa674g1qm280s0pc3n6qiiphj5i9ibknckx5capkrkxb5cwpkw" } }, + { + "ename": "company-native-complete", + "commit": "b112834a7ab05829fbc9101151bf82440bf6e551", + "sha256": "18f62r8y9k5flkqhzz6sr2w3srdhb6cpzrcyl98pv0zy3dq49lp4", + "fetcher": "github", + "repo": "CeleritasCelery/emacs-native-shell-complete", + "unstable": { + "version": [ + 20200315, + 2144 + ], + "deps": [ + "company", + "native-complete" + ], + "commit": "ccb5b52940a9374fbfe92947f0101e7254ba445d", + "sha256": "0p3qrl59qhczwysydsak66j7ixpykr3397xdvjj3hkmmcrsachic" + } + }, { "ename": "company-nginx", "commit": "fb8843cddfa9133ea9e2790e8a1d8051cd4dabea", @@ -12992,6 +13404,38 @@ "sha256": "1lm7rkgf7q5g4ji6v1masfbhxdpwni8d77dapsy5k9p73cr2aqld" } }, + { + "ename": "company-org-roam", + "commit": "546d4c869c4d2a0981a572b5653f5e9ab8bcec47", + "sha256": "0kxf4fhs8ikw06ljdkk4ky1fb83xpmknasp7kyd3lpdk63cfvijh", + "fetcher": "github", + "repo": "jethrokuan/company-org-roam", + "unstable": { + "version": [ + 20200403, + 614 + ], + "deps": [ + "company", + "dash", + "org-roam" + ], + "commit": "be645587aa51e764127dcbe49e70a13e618d4537", + "sha256": "0gk865wwkb9c6slfvm6sfq88c61s523bf52vi9rdq3gxghvqaaby" + }, + "stable": { + "version": [ + 0, + 1 + ], + "deps": [ + "company", + "org-roam" + ], + "commit": "a4c3f60883de783b190d4eb8bcc85f5912d9393a", + "sha256": "087z699i7y0q72s5qc7ks09bzin9cl3gm3aqs4ka99lzg676lrl8" + } + }, { "ename": "company-php", "commit": "ac283f1b65c3ba6278e9d3236e5a19734e42b123", @@ -13008,8 +13452,8 @@ "cl-lib", "company" ], - "commit": "7b8db219080b714a7b8ba452ddb82bd08f7db152", - "sha256": "1zm04hqy6dg57swk05qvl5idzb11camcdmh7lrh6mqsvrcsvym2q" + "commit": "6ca9baaafd3a3e429429986cc59097dcbfa7cda2", + "sha256": "0gj1w0ynd3nk84ac2l3anmcvm44p662scdy80zwp2xisfc0c301x" }, "stable": { "version": [ @@ -13041,8 +13485,8 @@ "company", "phpactor" ], - "commit": "5ccf65d59e6bbc9cd958dd5988e8fd2143b0d57f", - "sha256": "0k4dzn4a5y4kq7yz3ifvzziv90rp5si380c5ypgxr5iwb1b8a0l3" + "commit": "860d7e8784b261ee71deba354d01c3038cd777ab", + "sha256": "1d3fijh11g70xhx3a47l75mrp64bvkk7hh9lg83nl30qhn2vrbn3" }, "stable": { "version": [ @@ -13106,15 +13550,15 @@ "repo": "tumashu/company-posframe", "unstable": { "version": [ - 20200225, - 454 + 20200408, + 400 ], "deps": [ "company", "posframe" ], - "commit": "483ca5225681da5fa64ecc219604dc3acbab1059", - "sha256": "1jid82hvhdvvgcwy7ql5dd00bd9j3wgxrim15imjb22vwsq00qj3" + "commit": "9b59cd679c4396cbfe8118a9dfa8a5acfe038ac6", + "sha256": "1z18libg2nplx8a8dcycdzm354gczqzg8r37agzz0jk1a7frxa7m" }, "stable": { "version": [ @@ -13138,27 +13582,27 @@ "repo": "raxod502/prescient.el", "unstable": { "version": [ - 20191224, - 220 + 20200404, + 1550 ], "deps": [ "company", "prescient" ], - "commit": "7fd8c3b8028da4733434940c4aac1209281bef58", - "sha256": "1igsjdkxax2lavglc03h0dk3d7fpgqvlymnhyxx738sjyfzl09cr" + "commit": "0f4a89bdec61395138d968a38d375e63ccfbed63", + "sha256": "0nnf4y49pl9lcs90y5z6f02g1xwk1jjrl0qs7gcv6kpn0vn8kn0h" }, "stable": { "version": [ 4, - 0 + 1 ], "deps": [ "company", "prescient" ], - "commit": "ad9fbe8a17fe74b27a39bcc034f3da1865663387", - "sha256": "008hxy1vasnyz36wwg44gikpi80ng75hj85nrswk60b7z7cznbmr" + "commit": "aa3110281a0622fa7b5da115cefb71a319b5b1a0", + "sha256": "1rf5cz262hjpck7vpxg15bccdrwrmlhiyxc20liwcjb2ig36nis3" } }, { @@ -13212,6 +13656,38 @@ "sha256": "08ccsfvwdpzpj0gai3xrdb2bv1nl6myjkxsc5774pbvlq9nkfdvr" } }, + { + "ename": "company-quickhelp-terminal", + "commit": "f5fa4121cd4e2a49adfd23929c73f385cf7d1264", + "sha256": "13pig4bkfhwvpak78v85dzmrv7hwqd3pz4s5y8cb7xa033i1v78s", + "fetcher": "github", + "repo": "jcs-elpa/company-quickhelp-terminal", + "unstable": { + "version": [ + 20200309, + 245 + ], + "deps": [ + "company-quickhelp", + "popup" + ], + "commit": "0a7c86258b3069adbeb0889e21c6977390d00f4f", + "sha256": "0zbzbm4hchp1a8m0bdcp9d97i0yx3kkhp5vbs0m5pr2h13xdc7vj" + }, + "stable": { + "version": [ + 0, + 0, + 2 + ], + "deps": [ + "company-quickhelp", + "popup" + ], + "commit": "344e30202fb38e1947b8b17f403bb7b2208936fe", + "sha256": "1gzmx8zz93261m9kks2hdgdhfs9vz8gsdxx5xkldbnz4g1wbmh2a" + } + }, { "ename": "company-racer", "commit": "c4671a674dbc1620a41e0ff99508892a25eec2ad", @@ -13302,8 +13778,8 @@ "company", "rtags" ], - "commit": "d370c09007d299dc6b6aae719bf728b95dd426c5", - "sha256": "0hakpd1dwhn2nkfhx4hli0l7hf3p1g8vpyrrczq45smfsz73d96x" + "commit": "a42298e80dffae9a6b2e9816506174542f3cbbb7", + "sha256": "1674752bbyb7890na5p846dxcvh83zn0a6z19wras1x5c59s24i3" }, "stable": { "version": [ @@ -13368,8 +13844,8 @@ "company", "solidity-mode" ], - "commit": "b190993dcb8376e80fb1d9b71f3ed6170bd2a341", - "sha256": "0s5xk38k3mc1d40dszlcgfpn5rvb7nsnnpmgr3c0bwqa4xh6yqrg" + "commit": "022b3159832384a7dcdc2168809e698600826047", + "sha256": "144w84abffbrbb4wflgipndaasx82axf36xm373ybdih4131mi69" }, "stable": { "version": [ @@ -13510,8 +13986,8 @@ "repo": "TommyX12/company-tabnine", "unstable": { "version": [ - 20200102, - 2025 + 20200327, + 2137 ], "deps": [ "cl-lib", @@ -13520,48 +13996,8 @@ "s", "unicode-escape" ], - "commit": "a207f493eaf1cc766eb25ae84d0eca4c9d3e433b", - "sha256": "1qk0l4zcsd9jjivbaw7zbhx2dsdnb30slqc66qd3w69aq4r1xyv7" - } - }, - { - "ename": "company-tern", - "commit": "acc9b816796b9f142c53f90593952b43c962d2d8", - "sha256": "17pw4jx3f1hymj6sc0ri18jz9ngggj4a41kxx14fnmmm8adqn6wh", - "fetcher": "github", - "repo": "proofit404/company-tern", - "unstable": { - "version": [ - 20161004, - 1847 - ], - "deps": [ - "cl-lib", - "company", - "dash", - "dash-functional", - "s", - "tern" - ], - "commit": "10ac058b065ae73c1f30e9fb7d969dd1a79387be", - "sha256": "1pjyiy95axv92yxzks4ac871vcqxjnp7n2116nkdrdzzpmlb1x9h" - }, - "stable": { - "version": [ - 0, - 3, - 0 - ], - "deps": [ - "cl-lib", - "company", - "dash", - "dash-functional", - "s", - "tern" - ], - "commit": "b20b3e490bf277c8480712210e3c92ea489859ef", - "sha256": "1l4b54rqwsb32r8zwwrag7s35zc3kpviafdrqkq8r1nyshg2yccm" + "commit": "e986a4ad0d0e0174b08f1fb94c4f804a98a344e4", + "sha256": "1g5qv1fg22x1nkj696n12ixa2akgzivdc5q7yzy502kqjg67mkx5" } }, { @@ -13603,15 +14039,15 @@ "repo": "Wilfred/company-try-hard", "unstable": { "version": [ - 20191106, - 2105 + 20200417, + 1603 ], "deps": [ "company", "dash" ], - "commit": "8a417255b4da9f2e3889f6024755290dcc5884d1", - "sha256": "14b3sad9a7dr8j7xhnspk905ybidqz8h4hx2rw4bgl25imhmlysz" + "commit": "2b41136b5ed6e02032d99bcdb0599ecf00394fa5", + "sha256": "07c4vsrixqw6d6d2mqm6xzzzc9l9mgwgabcc6jlnw78cxij1wrsx" } }, { @@ -13725,14 +14161,14 @@ }, { "ename": "competitive-programming-snippets", - "commit": "0100042ee1356dd709d8bbeec4539ddc64317baa", - "sha256": "1mdkv2pn83mgj7yy4xf8nkm9bvxldiy7gdx4bpv36b9xw5zz6q6r", + "commit": "9a6d2467c37bf095c0a1e4605744474999ce04e2", + "sha256": "1yblnm1ar466fgwvhxybqv8sp2hn40p10p6hhnn9gi1xj9napam7", "fetcher": "github", "repo": "sei40kr/competitive-programming-snippets", "unstable": { "version": [ - 20200122, - 1558 + 20200213, + 1521 ], "deps": [ "yasnippet" @@ -13753,6 +14189,21 @@ "sha256": "07l495vv3by6r62i48jbfyr5pp1p6896cz25gkc7p3xqwrhi2min" } }, + { + "ename": "completions-frame", + "commit": "dcbb088900f76c05b04ffe25d32e43a477a0556f", + "sha256": "1ng5wmk1vp6yqrcyld23mrs8xdfa010l9acjy1vgkcsxjp3nmv3x", + "fetcher": "github", + "repo": "muffinmad/emacs-completions-frame", + "unstable": { + "version": [ + 20200419, + 2027 + ], + "commit": "2e726a497605752d7d57aaf0adf53178c1e9f7e4", + "sha256": "0f4vaq84si57p7y0zl0l93vixv0ld1srrxvav40ipil3p9fm1yig" + } + }, { "ename": "composable", "commit": "1fc0f076198e4be46a33a26eea9f2d273dda12b8", @@ -13872,8 +14323,8 @@ "repo": "necaris/conda.el", "unstable": { "version": [ - 20200120, - 1721 + 20200420, + 1418 ], "deps": [ "dash", @@ -13881,8 +14332,8 @@ "pythonic", "s" ], - "commit": "335474e409774e31125fe320a4a54c8d92bf5fa2", - "sha256": "10aadbvsg6qy11nfkmc5rvivjvyak6501srmjl6lvzxsw8q79fj4" + "commit": "f187948f7bda856befb54a08473c9aae3e595c8a", + "sha256": "02i3nq35cq0vlrg3xppyldi7s0zimvlf8j07xdn6pxm5ilrlmsl6" }, "stable": { "version": [ @@ -14305,6 +14756,30 @@ "sha256": "00055gzv032xxzqm1hffipljy8fzgsm58cbv8dzajh035jvdgpv7" } }, + { + "ename": "cort", + "commit": "1c99109a816303b1a14ff15e7a8300c73910e3a7", + "sha256": "1r1plngky2djgpbja0xr2j7hgj79d0l2jcjq4kj97q6874r4fswq", + "fetcher": "github", + "repo": "conao3/cort.el", + "unstable": { + "version": [ + 20200330, + 1641 + ], + "commit": "eb94d2a5b3a048a495fb0218b2df9021f8c864f4", + "sha256": "0rc1jfqkc05ml41cp8dc8akrxx3ifziyjy1w4vvgpbb5z49m83ky" + }, + "stable": { + "version": [ + 3, + 0, + 5 + ], + "commit": "1df178e296feaf4465967567b1cfdce1dda5a09b", + "sha256": "0y23w34dcifk6cxw2kcgwydqdc8hn0mj5129z560fm6iwxd6cgkx" + } + }, { "ename": "cosmo", "commit": "3ab914dfefcddf6ecd65261bc11bd3eb12929c79", @@ -14328,14 +14803,14 @@ "repo": "abo-abo/swiper", "unstable": { "version": [ - 20200311, - 1152 + 20200422, + 1208 ], "deps": [ "swiper" ], - "commit": "5f1d9ce04599c52818244c2cb8cb066a601610b8", - "sha256": "1gsyf210jq4ij5r47k5sajpjq3z0rgihz84g6y3647k12a00biap" + "commit": "47ec37b395cc1b304bbf91e804f138634544a9df", + "sha256": "05k2qjj4z8vljfppkphfhw67wvb5ij4nz4m158v89lx87y0phh74" }, "stable": { "version": [ @@ -14408,15 +14883,15 @@ "repo": "hlissner/emacs-counsel-css", "unstable": { "version": [ - 20191031, - 345 + 20200331, + 632 ], "deps": [ "cl-lib", "counsel" ], - "commit": "61a38c9d50fa9d1e38b2fa550d07130eb9322524", - "sha256": "0c8assn7dc8dhzyzk37x7y8s266pvr6hs0vh13y65z0sgxk59i2w" + "commit": "6427dfcbda0d2bbd81db03f9d6b56b06c260ac02", + "sha256": "1g8gz5mz2qclia64qmgw02h5ivywgn46d6djlr7vcdfyp774cf64" }, "stable": { "version": [ @@ -14475,14 +14950,14 @@ "repo": "redguardtoo/counsel-etags", "unstable": { "version": [ - 20200224, - 410 + 20200413, + 213 ], "deps": [ "counsel" ], - "commit": "172c1f1d806f36d10bdeb6284e1adbce6c52091f", - "sha256": "0kbkf5244ajxri4x8aaxsc11jq90lsmpw3jyb5z8yfk1wisdx274" + "commit": "65298d82468a2221f154de3606ead9a7a7806fa0", + "sha256": "0zk4axx64s9bmwfnhi2yhcfd9bkxxv3l5q33ak6l6q5dmyprp8ay" }, "stable": { "version": [ @@ -14710,14 +15185,14 @@ "repo": "Lautaro-Garcia/counsel-spotify", "unstable": { "version": [ - 20200119, - 1340 + 20200326, + 156 ], "deps": [ "ivy" ], - "commit": "d70bdd7e92a138195234e0c002252c8972807e08", - "sha256": "1q94cgx86fi6xxys9a5j31mg10sg5ds2s8xljp71a3g1hcwk7vkw" + "commit": "5d23a898483de19cb60773492c9846facb8ae281", + "sha256": "0k9m8xi9p5w2qnpz0zmdf52ip6viws06qq5rssgvb0cr888iqib2" } }, { @@ -14769,6 +15244,25 @@ "sha256": "18qlwyjqxap2qfbz14ma6yqp4p3v4q2y8idc355s4szjdd2as2lr" } }, + { + "ename": "counsel-web", + "commit": "0dc010d5e4de5c5830ffac3ec0565faac4da7c19", + "sha256": "0phrna7bm20vmbnnxrri90i7qnbwcwkxrmycbaxkai5l2rk0ijy8", + "fetcher": "github", + "repo": "mnewt/counsel-web", + "unstable": { + "version": [ + 20200313, + 5 + ], + "deps": [ + "counsel", + "request" + ], + "commit": "35c648b4cdd9f266ab54512a0fec2a3ca55d5bc6", + "sha256": "128vl9a5w8v2xzfi5xn9cqshxmcfq2pcmnkkqcxfmi401m2lm0bx" + } + }, { "ename": "counsel-world-clock", "commit": "7d9da8c45e7d06647f9591d80e83f851a7f3af85", @@ -14933,6 +15427,18 @@ ], "commit": "08208ca7b9dc4ac940ce9ca1f79424d2f3d3d391", "sha256": "0yspf51h5b7wbqvi9lbd22chyw799n5d05xdzl5axg0i33lzk7bq" + }, + "stable": { + "version": [ + 0, + 2, + 0 + ], + "deps": [ + "cl-lib" + ], + "commit": "08208ca7b9dc4ac940ce9ca1f79424d2f3d3d391", + "sha256": "0yspf51h5b7wbqvi9lbd22chyw799n5d05xdzl5axg0i33lzk7bq" } }, { @@ -14943,11 +15449,11 @@ "url": "https://git.sr.ht/~zge/cpp-capf", "unstable": { "version": [ - 20190723, - 1158 + 20200405, + 8 ], - "commit": "ca6d50f3853e1226a0ccad435aa8fbd7852c2149", - "sha256": "19vhayxy3ha3kkncz8vy5as2pdc17k4mycqszi2g0wywllnirhvv" + "commit": "0a4fd531e9e47369ff29d9f8583efd0bacd6bc50", + "sha256": "0q6kgh2mdx3pr8ywr3fhn96chvrf6zx6xxs2lyfviwmfq2c3pyph" }, "stable": { "version": [ @@ -14982,6 +15488,21 @@ "sha256": "1rk0bwdvfrp24z69flh7jg3c8vgvwk6vciixmmmldnrlwhpnbh6i" } }, + { + "ename": "cpu-sos", + "commit": "612eddcec84562a1f060c9eb5a63f77ce88da7ea", + "sha256": "1mjbcyz8j1d0l6jnfa3bk4ba5dbb8xih56rvfri61caqmy73s6pz", + "fetcher": "github", + "repo": "oitofelix/cpu-sos", + "unstable": { + "version": [ + 20200409, + 2356 + ], + "commit": "1594b76d4ad3a6e3c471d82da366226d156e6226", + "sha256": "1pqw1gilj3m35fqaj5j51ggmxzwhdiks0k36hxmw3ihr63am0j5f" + } + }, { "ename": "cql-mode", "commit": "1084dd0ec0f2e8fe6fa8e97b322833c14e8e59d1", @@ -15201,11 +15722,11 @@ "repo": "emacs-pe/crontab-mode", "unstable": { "version": [ - 20190827, - 1300 + 20200330, + 920 ], - "commit": "9acbb426c6bfb832e1e83f10fe01a8829452eb7e", - "sha256": "04wyngg5n5dr4ninfljl3n0gqx0pik5jbj6ny79bchrnxlh22f3k" + "commit": "9625228cbfce29ac3b443c6eff893ff828268f7d", + "sha256": "01s32ivn1fdqq99ms3s6a73hrqdc2r5khrg4jv3sniviql2k3i31" } }, { @@ -15327,11 +15848,11 @@ "repo": "josteink/csharp-mode", "unstable": { "version": [ - 20191126, - 1928 + 20200402, + 919 ], - "commit": "57bd21bda4edc16671a85c7d6d51484e40a6e640", - "sha256": "0chl9lzxn1mq59vy5lsim2iiy2hl20rg3d7ri41ljksjcfz9ki6v" + "commit": "31124dba6833a4de144ca508edb90d5adfeec209", + "sha256": "0jrj2ayna8bzhi441hhszhch3na08iciqnd7fsqrm8xbwlrq7l2x" }, "stable": { "version": [ @@ -15351,8 +15872,8 @@ "repo": "hlolli/csound-mode", "unstable": { "version": [ - 20200301, - 31 + 20200402, + 1509 ], "deps": [ "dash", @@ -15360,8 +15881,8 @@ "multi", "shut-up" ], - "commit": "f8a1af8cfdf9093911a159f73d39ba4f1f671e6c", - "sha256": "1gni984j1jlv2is0ah4730xalhv96wimm1iziavbsrsm4hcqqcgh" + "commit": "81bec1a71934a56f677f442e2c22fb6336b366c4", + "sha256": "1cxg2c8sz76b3ml8blb4f268xl6ql959p2hi5i4llil4fggw6df2" }, "stable": { "version": [ @@ -15538,6 +16059,29 @@ "sha256": "1d89gxyzv0z0nk7v1aa4qa0xfms2g2dsrr07cw0d99xsnyxfky31" } }, + { + "ename": "ctrlf", + "commit": "46073c430c271aa1971e27948e7f6d4b65b3d533", + "sha256": "01d2zv7x588r55namcda58l21lg5sbwcn1ycnvg5md69pv5cg461", + "fetcher": "github", + "repo": "raxod502/ctrlf", + "unstable": { + "version": [ + 20200417, + 1549 + ], + "commit": "97b59f1974ddcfcd9eedcf4c2d286a38f5200273", + "sha256": "1axi9wdpr82ghsbjxz1k73v82kkp9g63ahgqy38w6560f40m32dr" + }, + "stable": { + "version": [ + 1, + 0 + ], + "commit": "41eecedf44f2235ce13e021906c4ce92deddefdc", + "sha256": "10gnhafas54zj3z9173h1g7b519ac4i26afclmw3w1pk6qyyb03z" + } + }, { "ename": "ctune", "commit": "927ecd888bc00abff13f5fc335a88dffc2bf6779", @@ -15690,6 +16234,21 @@ "sha256": "1y685qfdkjyl7dwyvivlgc2lwp102vy6hvcb9zynw84c49f726sn" } }, + { + "ename": "curl-to-elisp", + "commit": "11453864d71c7853bc743341db7ca071126ca160", + "sha256": "16qyw6yx5vlm32ikmgxhf162jjl1nq7lmrcn6g43fkk93id0374n", + "fetcher": "github", + "repo": "xuchunyang/curl-to-elisp", + "unstable": { + "version": [ + 20200321, + 953 + ], + "commit": "79da15f739984e3ce3e0b137df3634582abb4546", + "sha256": "04qjap6wsjd8kdz47bz1a11h1bdn7bmlvfg6y0bqy5yq55f4ampa" + } + }, { "ename": "cursor-test", "commit": "6439f7561cfab4f6f3beb132d2a65e94b3deba9e", @@ -15871,17 +16430,17 @@ 20190111, 2150 ], - "commit": "22213aa38cfb3460bbcd746910cea00eedea8a2c", - "sha256": "06x99iwby54d5za6py8g6bb1pblnqi8vs16ncr9brk23zswrg1ml" + "commit": "f09e61ab721ad51526ec7a6798fc01d8346f539d", + "sha256": "0l6yzbshqkkbb4fhvnakrilbyc441va6r3yhczksaz0rxlyminlw" }, "stable": { "version": [ 0, 29, - 15 + 16 ], - "commit": "26cb654dcf4ed1b1858daf16b39fd13406b1ac64", - "sha256": "1b76f47yhalg4pipiarmax3869bwbv43a4qs8h1qrnibyzpwfy2z" + "commit": "c8425604fc3e4ea846016689942fa98e886b5f4f", + "sha256": "1794w6d9ams691ah8sah93vzb97wpss0j36z0fcn3sfvnf8kvpby" } }, { @@ -15969,11 +16528,11 @@ "repo": "cbowdon/daemons.el", "unstable": { "version": [ - 20200129, - 929 + 20200421, + 912 ], - "commit": "9320c6af524f923f20aa95c1a48b7ae41c3005a8", - "sha256": "0wlv3vjhw6v6q5br4bassw34k4kai6nrw10av4y6nkvw58i5b3h7" + "commit": "a26155d04cec399ffe25b88f71cbfa4ada784569", + "sha256": "0bvfcrr3blyz0861ysfw2qbfh1iq8nfdh1kw9wz4m7g6big27qgd" }, "stable": { "version": [ @@ -16038,8 +16597,8 @@ "repo": "jyp/dante", "unstable": { "version": [ - 20200131, - 1211 + 20200416, + 1217 ], "deps": [ "company", @@ -16050,8 +16609,8 @@ "lcr", "s" ], - "commit": "4955bc7363e250d22579bc34b0b4ab6611c0766c", - "sha256": "06xagrjl00iwvaf0cli3dhhvvn4x7ysvkir4120lwc9ispzc077m" + "commit": "7411904bfbde25cdb986e001ec682593dcb7c5e3", + "sha256": "0dhkp9g1cc1vlfk1fjncl3x3s7zd9a633ya85pjyxl70kky2qhnz" }, "stable": { "version": [ @@ -16079,8 +16638,8 @@ "repo": "emacs-lsp/dap-mode", "unstable": { "version": [ - 20200223, - 1146 + 20200425, + 606 ], "deps": [ "bui", @@ -16091,8 +16650,8 @@ "lsp-treemacs", "s" ], - "commit": "e7a5144ce746942b00a21d35a1ca8be71195f5d4", - "sha256": "1ryn49v89d204f7dhdc6igw03vzz5gzqrpqmsdrcxcj5yci2wxyk" + "commit": "43c672747e537620f5385ec4bd86c393b16d84dd", + "sha256": "0mqhzwk0l32k94msxq69wlcwxn8gc34cqbgxs7z1x9nddjirqmb1" }, "stable": { "version": [ @@ -16489,6 +17048,40 @@ "sha256": "1dvv10xn2mh0nh85cd78y23cn8p9ygdhj4k7xs4fa6r7bhp0xvqm" } }, + { + "ename": "dashboard-ls", + "commit": "656977197e0030525c52b14de8f6e1faa042daeb", + "sha256": "10dsdzps7kh3v5p5grdjwf2xjr7rvaiqp57fg9vh4pficvhylqaa", + "fetcher": "github", + "repo": "jcs-elpa/dashboard-ls", + "unstable": { + "version": [ + 20200329, + 1443 + ], + "deps": [ + "dashboard", + "f", + "s" + ], + "commit": "9026fd157f94b023a7b660a418b66ad638b14272", + "sha256": "1r78w47897qd9ki24mqxl3kgr2anzybfqv5x91y4xsvrk0siir64" + }, + "stable": { + "version": [ + 0, + 1, + 2 + ], + "deps": [ + "dashboard", + "f", + "s" + ], + "commit": "9026fd157f94b023a7b660a418b66ad638b14272", + "sha256": "1r78w47897qd9ki24mqxl3kgr2anzybfqv5x91y4xsvrk0siir64" + } + }, { "ename": "dashboard-project-status", "commit": "dfc05873c6532c866d89c4cc07eb84b447a25c70", @@ -16715,6 +17308,37 @@ "sha256": "15r0qwjkl33p8kh2k5kxz9wnbkv1k470b1h0i6svvljkx9ynk68a" } }, + { + "ename": "dbc", + "commit": "0f82920ec0b8544c7008a57a412fe3ba15fc5e0f", + "sha256": "0xba153ky52iiyjndryzm6n3v019d0710r4k91chvv8gvyb4jr9z", + "fetcher": "gitlab", + "repo": "matsievskiysv/display-buffer-control", + "unstable": { + "version": [ + 20200331, + 1826 + ], + "deps": [ + "cl-lib", + "ht" + ], + "commit": "17c6640a409424ec32fdb6bfd6065562e726bf1f", + "sha256": "18mamp8j3lmmcpcyfrwrqppxvyx7zirn30rwp4wndczpyapkwv4n" + }, + "stable": { + "version": [ + 0, + 1 + ], + "deps": [ + "cl-lib", + "ht" + ], + "commit": "5123477396a562fae350a89fbed79464cc498bc9", + "sha256": "0xd94cpqpv0yw70ajrvs69ygds62m40fk0m4s59zvdn5qs7ivj4k" + } + }, { "ename": "ddskk", "commit": "6eccccb79881eaa04af3ed6395cd2ab981d9c894", @@ -16723,15 +17347,15 @@ "repo": "skk-dev/ddskk", "unstable": { "version": [ - 20200310, - 2004 + 20200403, + 1308 ], "deps": [ "ccc", "cdb" ], - "commit": "183c4fd3fe5fb7cb089bbfc7437815d426d08372", - "sha256": "1jgvs093w0llp0nxfdzfrlk7il0wj48qhnqsn61pvnma10m93zdl" + "commit": "11d91b4cce988e15d7c5fc4345535c9d7a92d53b", + "sha256": "19fgk6m951q9swr958337a3jk9b4xgvswkc73al6wsdkigygmhji" } }, { @@ -16773,16 +17397,16 @@ "repo": "Wilfred/deadgrep", "unstable": { "version": [ - 20200202, - 1520 + 20200411, + 652 ], "deps": [ "dash", "s", "spinner" ], - "commit": "3ec95398d09719a9dbdc3a67d29d22ca224516cf", - "sha256": "0rxzm30md5s87s6j1aqgjxa9kb637v11b7q194l8zzhf457ky6la" + "commit": "bdcdf138cd71b0a5a80ca64b3bd68b7355084757", + "sha256": "1f0gbl2s6h945h1d4pg6cms3w2jwppqiddy3ja9b02ckcld1c227" }, "stable": { "version": [ @@ -16806,11 +17430,11 @@ "url": "https://salsa.debian.org/emacsen-team/debian-el.git", "unstable": { "version": [ - 20181020, - 1513 + 20200401, + 1622 ], - "commit": "8ff1f5d73d5d56bee65e45e9d8ac4e75aa8b8e4c", - "sha256": "0hqxl0gi9csp2zfc65s01c3i6himh38fia46cn68i3hh5d6kb6qx" + "commit": "d7117ab18b15f449f194cd7d91ff22e55fcfa817", + "sha256": "09i2n4990d5ra4zqswzv8sjk4psd9lf71xdsgnfbr88pdv1q8bhf" }, "stable": { "version": [ @@ -17042,11 +17666,11 @@ "repo": "abo-abo/define-word", "unstable": { "version": [ - 20191031, - 1736 + 20200417, + 844 ], - "commit": "d8c76d503be3d561221631067ec5274e7c147248", - "sha256": "18yy7gw8x3y9sk3v7xpd59p425qc36dymj0wgk6mzarfq5rhv79h" + "commit": "08c71b1ff4fd07bf0c78d1fcf77efeaafc8f7443", + "sha256": "053kyg2jqayphdkm7s8fz8yl97yspib6qszcajyr77m6n7j4i764" }, "stable": { "version": [ @@ -17377,11 +18001,11 @@ "repo": "raxod502/diary-manager", "unstable": { "version": [ - 20190702, - 2148 + 20200404, + 1549 ], - "commit": "964dd7bf60a8e8abc880ef5b73319bc65d5ea5e3", - "sha256": "1w1hffypsx41n63yrpz0lcyzia4x4lis0sja8gksik7dvwwkyhwb" + "commit": "6d9b86faecb2ab7c2e1eb90dcf7bffdf70804470", + "sha256": "05v449px4nq565w9kcg2bbz1j27qlgiw17z4drgriz2qf2m50v18" }, "stable": { "version": [ @@ -17420,15 +18044,15 @@ "repo": "cqql/dictcc.el", "unstable": { "version": [ - 20200209, - 1810 + 20200421, + 1422 ], "deps": [ "cl-lib", "ivy" ], - "commit": "e07ebfc577b904b3387705a91395ac873e42c727", - "sha256": "0wi3iz31qizd3xsys1pyfr2zfn03x27lrja5s8170s27zqkwm56j" + "commit": "3950011197ba81f27cc82b4e6075c9100945f936", + "sha256": "0xmmkzsg48q6awhkbi5naqjm0yjdnwb437k17razgd6y99vyh0ns" }, "stable": { "version": [ @@ -17507,11 +18131,11 @@ "repo": "ideasman42/emacs-diff-at-point", "unstable": { "version": [ - 20200106, - 441 + 20200413, + 200 ], - "commit": "c26027d701f2a1512e0a2b18e4b34f02e9140ee0", - "sha256": "1c5pibjmpkw7fi26vnsvv5yjg4y851jccwymzwa06gbxb3jf5ggc" + "commit": "5b06de513297a80cf3a2081b8ee0914e90da810b", + "sha256": "1ib8297alpsvcxl9c56n2bjh5j4m49k92nz1mgdybiqwg3z4is21" } }, { @@ -17522,14 +18146,14 @@ "repo": "dgutov/diff-hl", "unstable": { "version": [ - 20191223, - 26 + 20200406, + 37 ], "deps": [ "cl-lib" ], - "commit": "fb9eb1cd3c4c6ed24b93de1a7cfb369d2983be74", - "sha256": "0ksp86izjw7vgh21jn4rwl5vnfn1jvgs05lv216mnwia8p14ihjz" + "commit": "a625033fb1dde83f6e4c2fc21f632b22ec34b609", + "sha256": "01m0aknqn0pgb46877kbz9n1nqmlamrlm58g2q894imbhybgfpan" }, "stable": { "version": [ @@ -17624,19 +18248,20 @@ "repo": "retroj/digistar-mode", "unstable": { "version": [ - 20160218, - 1955 + 20200322, + 2109 ], - "commit": "15288b1e1a04b79b5ab7097fdd26d48b2ff41076", - "sha256": "0qxdfv1p0140fqcxh677hhxwpx1fihvwhvh76pysn4q4pcfr6ldr" + "commit": "567fff3933f80f00f53610e7b08f75bb636b12c0", + "sha256": "0252lhkv2r8gy4512frhdh381xrf64nspvfm2hp7bkhz47dlrs7y" }, "stable": { "version": [ 0, - 4 + 6, + 1 ], - "commit": "0dcde58ec6e473042e55d4f283b223554546de5b", - "sha256": "0jzwaivsqh66py9hd3dg1ys5rc3p6pn8ndpwpvgyivk4pg6zhhj6" + "commit": "8b350b7a143219b3f927cb3a1aeb16a299363f05", + "sha256": "1sxfzirl8kgzmq8l9l868yl92mz1r8yk58fnxf7p6z4y0pdlcqfg" } }, { @@ -17752,8 +18377,8 @@ 20191127, 1326 ], - "commit": "96b47cf90360e4bd19138fe82dc59bfa86c7bf7d", - "sha256": "1ar2bl1w4s3gx8slryf5qzq4qzprdyhm1fngvlnfhxg83k2g3969" + "commit": "6ec6ebc391371418efc6c98d70b013f34af5a2ee", + "sha256": "0q8pihj9fwq9w978ycmvzv8kq8ksrdf8zfadjy8i2iwc4ib0jg7y" }, "stable": { "version": [ @@ -17796,11 +18421,11 @@ "repo": "gonewest818/dimmer.el", "unstable": { "version": [ - 20200308, - 2331 + 20200329, + 35 ], - "commit": "2b8b639e55e0e79101f7197264f17429cdcf4669", - "sha256": "026qb0r289wkf4zpr3l4pwp7l2rxgfqd8vrj2z8zhyas0r0wwjzx" + "commit": "5298af739ce30bacadda892b620858b95709c84b", + "sha256": "0dlgk66mcbzdbpw0xn6l7fxjayvgczccsx0igda9745pwm8yvy9z" }, "stable": { "version": [ @@ -18168,17 +18793,17 @@ }, { "ename": "dired-k", - "commit": "7f8a828b2fbfa11c4b74192d9d0cfa0ad34b3da7", - "sha256": "0lghdmy9qcjykscfxvfrz8cpp87qc0vfd03vw8nfpvwcs2sd28i8", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "1nimv6rzk0rrzvniirrsxzd78f4yil1aajcxyra2nmx7dr4xszqh", "fetcher": "github", - "repo": "syohex/emacs-dired-k", + "repo": "emacsorphanage/dired-k", "unstable": { "version": [ - 20170313, - 1503 + 20200322, + 2035 ], - "commit": "c50e8f73358060a448bff66db2d330b52bbeffc1", - "sha256": "14yvsv7cvfviszii0bj0qf094rmnwzssinrqrkpxg4jil2n4bb9d" + "commit": "1f90cf6ac932ad30ccfefec27ea7e514c24ab335", + "sha256": "1bmpn18z42i8dy331yrks5gsivpvwj677yc58iw66ckjnyjnyjps" }, "stable": { "version": [ @@ -18197,11 +18822,11 @@ "repo": "thomp/dired-launch", "unstable": { "version": [ - 20180607, - 1841 + 20200403, + 308 ], - "commit": "ad45940f76ef2f6c3bb55e998829b311de191dae", - "sha256": "057nqlvqnq30gxfidmynp33040bgdq4gbwk0qdm294c5ap2af5yj" + "commit": "6e5d26ca859f7af624351ba2af6b1be83982053b", + "sha256": "0xy8c90d6lv21cp5p2xzqqv5da2m3mry8bdkz54rknv2v9in8g0l" } }, { @@ -18401,14 +19026,14 @@ "repo": "jojojames/dired-sidebar", "unstable": { "version": [ - 20200226, - 333 + 20200409, + 801 ], "deps": [ "dired-subtree" ], - "commit": "5f88a4570eae9645be06ff22542f110aeb70dd7d", - "sha256": "0l1wr7g4lfqmvhw3vir6fmwxmid9sasxlf5pxxvh0z8kps53f0cn" + "commit": "6e569c851418890c21fd37d03a62f85343aa0900", + "sha256": "0jxljpmzncbh9xb22y4xr9bzcxwijy68pn8chqsvqmivss5py7n9" }, "stable": { "version": [ @@ -18498,11 +19123,11 @@ "repo": "renard/dired-toggle-sudo", "unstable": { "version": [ - 20151109, - 1006 + 20200401, + 1353 ], - "commit": "02449dbda4e168f99fe5352c9628df5d39e11483", - "sha256": "0ajj8d6k5in2hclcrqckinfh80ylddplva0ryfbkzsjkfq167cv2" + "commit": "13bbe52c54893f5aa3e56228450ffdd0c9e1d169", + "sha256": "1fw1pb1z6krqd1pfxxhr6rrfr9ckkcb0zsjzbjk0i2i1q5cg6car" }, "stable": { "version": [ @@ -18567,14 +19192,14 @@ "repo": "wbolster/emacs-direnv", "unstable": { "version": [ - 20200229, - 1525 + 20200319, + 2357 ], "deps": [ "dash" ], - "commit": "1f93e3f9cae5ec171939fe5c1fe9744a28fa6576", - "sha256": "0xkqn4604k2imas6azy1www56br8ls4iv9a44pxcd8h94j1fp44d" + "commit": "1daf479b9b7600ce9681f2a980deae7fcb2f3d59", + "sha256": "08hwjd1xmq6hxab537zm11kwqhwnc1dfznfqzy66c4agl9z9a7vx" }, "stable": { "version": [ @@ -19324,8 +19949,8 @@ "repo": "Silex/docker.el", "unstable": { "version": [ - 20200218, - 1257 + 20200421, + 822 ], "deps": [ "dash", @@ -19335,8 +19960,8 @@ "tablist", "transient" ], - "commit": "a2092b3b170214587127b6c05f386504cae6981b", - "sha256": "1q3fgh3sjly62h86yvjqhr7j1yyrsfygk4rqkx0p7a052s2qvqi7" + "commit": "08745207332d940130a2357eb5c5e00fd88bd6af", + "sha256": "15fgcmld7z83b89jkwi0a5i9lls43kpbqav0lhfdyq3m941whzs4" }, "stable": { "version": [ @@ -19495,11 +20120,11 @@ "repo": "progfolio/doct", "unstable": { "version": [ - 20200308, - 1939 + 20200413, + 157 ], - "commit": "82387b252b2e9bcbc4aed0e9568cddcafbdbfac5", - "sha256": "0h24d2938qrk4aw778y9ll4j8m9p8w1q9cfyx5qw60sbdrcbrlmj" + "commit": "c237e72e0bc53a67a83c05d9c1bb28e80fd15c1e", + "sha256": "0bh7yckr1cfampc1kmigbg98b6kwvnjgq8143lqlj1hmg0hw5cb6" } }, { @@ -19614,30 +20239,30 @@ "repo": "seagle0128/doom-modeline", "unstable": { "version": [ - 20200311, - 1726 + 20200425, + 553 ], "deps": [ "all-the-icons", "dash", "shrink-path" ], - "commit": "06a79f5c5035b12c3110a7ab43b48e50217a2ae7", - "sha256": "0pgng5nqc3cj7bb57l0abqc2sr1542lgv7271i602k56sg7ak431" + "commit": "c177959bbfa7fa6f199b1145c6986e55f462f1c1", + "sha256": "0iclkfryfj72c5377rydsxh090maq6i0sxj90cm6dalyazd7rl4k" }, "stable": { "version": [ - 2, - 9, - 2 + 3, + 0, + 0 ], "deps": [ "all-the-icons", "dash", "shrink-path" ], - "commit": "e6d690bae01cb68e7171857fe07ac914d7a19f4b", - "sha256": "0k5rppzpycl1aggg6cvwvgxylgvjbxksvdah8fkrrmx3dwcr2y3p" + "commit": "b44955841a301f4930b054e912fa4c1a700d426d", + "sha256": "08m75rl5i812pa87zcsjvb4mm3jjhpwzgx9mf2m7sxj807airz5d" } }, { @@ -19648,14 +20273,14 @@ "repo": "hlissner/emacs-doom-themes", "unstable": { "version": [ - 20200302, - 110 + 20200331, + 1901 ], "deps": [ "cl-lib" ], - "commit": "e53b83c9106c76e54996ba2d1b70a8288a379572", - "sha256": "1wwy7abxxpr0048y03g3nv0sw1w8s0pdnnffpxp7djlp55nvay29" + "commit": "8d5ddbbb72752fdd981407bdc2e33d917675e919", + "sha256": "16d1mlz5ll89p2f4avz8cbyg2wkxkjydb19aff9y6c75pw948cks" }, "stable": { "version": [ @@ -19884,20 +20509,20 @@ "repo": "dracula/emacs", "unstable": { "version": [ - 20200304, - 1730 + 20200412, + 1112 ], - "commit": "ed2f68d85b637636a4f7b782f19ee4f8e9f6fa44", - "sha256": "19qvkrknnhkr77hkyv9x1dg6m4difwz59sy2mqzw50wfb6vsy17n" + "commit": "81d06717d1b75d2b51c1b7d3da93b6a01d7e253d", + "sha256": "1ywzxhygf8qyif4d6kg0rhbpdxxb74wnip8n4n9m9mabmff5xkzk" }, "stable": { "version": [ 1, - 5, - 1 + 7, + 0 ], - "commit": "66e429f4d576346661ae3a111bafaa06febc1d94", - "sha256": "0lyy8vjzzcfcj4hm7scxl4cg4qm67rprzdj7dmyc3907yad4n023" + "commit": "7751d4d3115c5e873b73b670248c49ce8910997e", + "sha256": "15y2djc5jljlvls1x9kp50m1kp0dcksmyixafsyimj66xpq9ngh0" } }, { @@ -20096,8 +20721,8 @@ "repo": "dtk01/dtk", "unstable": { "version": [ - 20200215, - 554 + 20200315, + 1931 ], "deps": [ "cl-lib", @@ -20105,8 +20730,8 @@ "s", "seq" ], - "commit": "eb153de123af04fa7ce10ba4ce77f0cf764bc2de", - "sha256": "0prk6fl76dl5ay27ncfqr06spiv2fqr7hc8dad5dqw70w9d29vji" + "commit": "d21a5b7958da058bb53d36fe9234089409f62c5e", + "sha256": "0w46yr5d108z2pipvh449p15qnm6mnix21pbnq3alczilzxzf9lw" } }, { @@ -20132,19 +20757,19 @@ "repo": "jscheid/dtrt-indent", "unstable": { "version": [ - 20200306, - 1054 + 20200410, + 920 ], - "commit": "1569b712ea691a9b8df12af5ee8c8a4aa4853e45", - "sha256": "1149s9ym30nfdbb2ndk5ypl5wb984an6n37gycra15j3z15d60mh" + "commit": "9163cd990fb1f43dafed3948c6e406c13a45a6be", + "sha256": "1x73akd8l7bsn59wnz2cg0mxms98r1li40w3by121p9md49fd0r8" }, "stable": { "version": [ 1, - 0 + 1 ], - "commit": "1569b712ea691a9b8df12af5ee8c8a4aa4853e45", - "sha256": "1149s9ym30nfdbb2ndk5ypl5wb984an6n37gycra15j3z15d60mh" + "commit": "9163cd990fb1f43dafed3948c6e406c13a45a6be", + "sha256": "1x73akd8l7bsn59wnz2cg0mxms98r1li40w3by121p9md49fd0r8" } }, { @@ -20214,8 +20839,8 @@ "repo": "jacktasia/dumb-jump", "unstable": { "version": [ - 20200306, - 513 + 20200423, + 1658 ], "deps": [ "dash", @@ -20223,8 +20848,8 @@ "popup", "s" ], - "commit": "e8e9b0c2d1eda594fd40db9c64e93a70b426641b", - "sha256": "0m8771bzz972zf2lhv7f4z2x0rnnfc0iidb5jpz072wr3v52kark" + "commit": "d760aa880fc1052570ab0fd7e586eeffb7636af6", + "sha256": "0a27fv2yi4c19g78hgflrp8vx135v74q6n8ak3g3b2gh66vkvq7p" }, "stable": { "version": [ @@ -20268,17 +20893,17 @@ 20191016, 1241 ], - "commit": "cbb259a99ecb15bc714ee1023d1a643b7e6c996f", - "sha256": "0xi83prqla41bvjmj5y6qwsxxbb6jwznr9lw3z2ibk46djr9hdsx" + "commit": "17895c30724c2a5ea18c0140d4022e2ef83d7208", + "sha256": "0sgn56g1225ar45kgp5qcdd6fc95skr36zci1lz1fszy94v162z7" }, "stable": { "version": [ 2, - 4, - 0 + 5, + 1 ], - "commit": "ccd447e41a711f8a52bc854d71dba8677c900c34", - "sha256": "0i8b84mi38r431z4a1yh4xnn9z5mnk1g3di0qz6h4lsxq8pg2m0v" + "commit": "4d1ef91df8c732d516ddea4a953f5956e99692b2", + "sha256": "1ljhwsyl277lvmii4v439dafyc0y2l2jf2ds5zivpbrh168851di" } }, { @@ -20337,11 +20962,11 @@ "repo": "dylan-lang/dylan-mode", "unstable": { "version": [ - 20190831, - 1910 + 20200425, + 1347 ], - "commit": "4801b7adcc984edfffa3f951e2c35329fae2b6e4", - "sha256": "1xm27fc98rj8fsfm9na1x3d7zgp8fkxf782ajvirzbbq5nj0lyma" + "commit": "64f3aed546315c766331c69be3c7e78c7da6c333", + "sha256": "1r63gxy1hlij1ck570agvj39rynby6kna5kcfhrr0imi7hl98mzz" } }, { @@ -20634,16 +21259,16 @@ "repo": "aki2o/e2wm-term", "unstable": { "version": [ - 20141009, - 1308 + 20200322, + 729 ], "deps": [ "e2wm", "log4e", "yaxception" ], - "commit": "65b5ac88043d5c4048920a048f3599904ca55981", - "sha256": "0qv3kh6q3q7vgfsd8x25x8agi3fp96dkpjnxdidkwk6k8h9n0jzw" + "commit": "74362d6271e736272df32ea807c5a22e4df54a50", + "sha256": "1cr2mp1visx4fnxc73sk6gw7wnl1mxfb624rm1sxz7wwry8b8fx9" }, "stable": { "version": [ @@ -20668,14 +21293,14 @@ "repo": "redguardtoo/eacl", "unstable": { "version": [ - 20191230, - 1057 + 20200407, + 756 ], "deps": [ "ivy" ], - "commit": "a25c28f4ee1126d1ee51dae22843f3440520f1a3", - "sha256": "0pz894saz6ncira9ag9aqmfw394v56sfxldv25phh3z44y1ij01z" + "commit": "47b839f305e63e119b6a554497cd4b99512e8e00", + "sha256": "1gdppgjdapjx25ns5ja1lnnypq26m8w9s5vbnfg7p0j64kd2mdwh" }, "stable": { "version": [ @@ -20937,14 +21562,14 @@ "repo": "joostkremers/ebib", "unstable": { "version": [ - 20200308, - 2130 + 20200419, + 2017 ], "deps": [ "parsebib" ], - "commit": "cd37aaa9a11e3b2232b8aa12cfe9a8ae9b830b10", - "sha256": "0spiz5r2y4pdpyc4d3f9w228giq0j9rm8f5h5akzn5rwiq9pfkwz" + "commit": "87920ab793e6e854903eb101b80a0746f588dab6", + "sha256": "0mw5spmjn8yyjbdpas06rf9cmfsfa3k2z0yfrs7xvmaalpxz55xm" }, "stable": { "version": [ @@ -20967,11 +21592,11 @@ "repo": "flexibeast/ebuku", "unstable": { "version": [ - 20200203, - 1122 + 20200422, + 723 ], - "commit": "2f1af38469966c788483cbce4ab70436f72cf30d", - "sha256": "15liiczqjf8p2jr9356zrj65ijp5gdrnb5i7m09armyhb8282rmg" + "commit": "ec8a5057dd2bf6275c8cdfca53c51e0b7f21b8f3", + "sha256": "0j6g56vqi12m5533dm6f716vsqcw59awfbiiv0jafb5kw9wj698v" } }, { @@ -21117,90 +21742,6 @@ "sha256": "0xy3q68i47a3s81jwr0rdvc1722bp78ng56xm53pri05g1z0db9s" } }, - { - "ename": "edbi-database-url", - "commit": "e25bf3d65ef2fb09eb0802cfd3e3faee86a5cfdb", - "sha256": "018rxijmy0lvisy281d501ra9lnh5xi0wmvz5avbjpb0fi4q1zdn", - "fetcher": "github", - "repo": "proofit404/edbi-database-url", - "unstable": { - "version": [ - 20160221, - 1923 - ], - "deps": [ - "edbi" - ], - "commit": "d56c580268cd93651998c4c6b1c5558e6b6ca90f", - "sha256": "1nkfl8jngkdz8h951jig39af1wh5vrc5lqk58l2i4lc2znprj9lx" - } - }, - { - "ename": "edbi-django", - "commit": "10dd853022ab93e345761b04d760b3763f4d2384", - "sha256": "02vcbqgkvhlw9msf65777f85c8myxr95g2dz199nlfmz4vpqrkgq", - "fetcher": "github", - "repo": "proofit404/edbi-django", - "unstable": { - "version": [ - 20190212, - 1417 - ], - "deps": [ - "edbi", - "pythonic" - ], - "commit": "9b73db66c02a222fc62dc3bc590962f58c5b43d8", - "sha256": "1yinm4qzwpdmr4a0isbkiw6ny23gllajcppwh7g0d62di3v242dm" - } - }, - { - "ename": "edbi-minor-mode", - "commit": "5fb878b60c7ecbb1e3a47aef1d9765061c510644", - "sha256": "0p7vdf9cp6i7mhjxj82670pfflf1kacalmakb7ssgigs1nsf3spi", - "fetcher": "github", - "repo": "proofit404/edbi-minor-mode", - "unstable": { - "version": [ - 20160706, - 1447 - ], - "deps": [ - "edbi" - ], - "commit": "566a2141a6eb9d9d5d7e1bd7c251d1c5e8f0d2ec", - "sha256": "1g6mlmrwl8p5ffj9q298vymd9xi2kpp7mhbmz4by4f6a3g831c88" - }, - "stable": { - "version": [ - 0, - 1 - ], - "deps": [ - "edbi" - ], - "commit": "566a2141a6eb9d9d5d7e1bd7c251d1c5e8f0d2ec", - "sha256": "1g6mlmrwl8p5ffj9q298vymd9xi2kpp7mhbmz4by4f6a3g831c88" - } - }, - { - "ename": "edbi-sqlite", - "commit": "acc9b816796b9f142c53f90593952b43c962d2d8", - "sha256": "1w53ypz3pdqaml3vq9j3f1w443n8s9hb2ys090kxvjqnb8x8v44y", - "fetcher": "github", - "repo": "proofit404/edbi-sqlite", - "unstable": { - "version": [ - 20160221, - 1923 - ], - "deps": [ - "edbi" - ], - "commit": "52cb9ca1af7691b592f2cfd2f007847e7a4ccd5f", - "sha256": "1vll81386fx90lq5sy4rlxcik6mvw7zx5cc51f0yaca9bkcckp51" - } - }, { "ename": "ede-compdb", "commit": "3b70138b7d82aec2d60f4a7c0cd21e734a1fc52a", @@ -21343,6 +21884,24 @@ "sha256": "1wciwx9zk28r21v9ampjd8wn19g19ia7hiq1x0hami479dxwinfc" } }, + { + "ename": "edit-chrome-textarea", + "commit": "d9e8d07ed13d190a8a7eab75a59ec5b9a01d97a8", + "sha256": "0xp7925y04gr09j204r01jq7hqjp32gqsazwsbih4fkx0n30aqbs", + "fetcher": "github", + "repo": "xuchunyang/edit-chrome-textarea.el", + "unstable": { + "version": [ + 20200324, + 1513 + ], + "deps": [ + "websocket" + ], + "commit": "e9ef6a72bdc6b58f932c51aa161869cee11b4bc9", + "sha256": "1akyxq0ja06q5bywa6nb4klnbvrw6f6d83bzrjdz2sc7ddk3a4hz" + } + }, { "ename": "edit-color-stamp", "commit": "2ad2ea105b895cb958ce0ab2bf2fad2b40d41b2f", @@ -21439,8 +21998,8 @@ 20181016, 1125 ], - "commit": "af46de40e2991b046f04856c18a6483badce38aa", - "sha256": "1lfdfnc7cx3lqa69mpn72jhsz4dwmfnrfpzrnk6lfh10h65yfdiw" + "commit": "43f180809fcbc7e104f96f95608a97c4c2a2c8b3", + "sha256": "0v9nn85pw7lll516p8bb9y6dk44rj2h88ky4zz9wgkrppjs7qdb0" }, "stable": { "version": [ @@ -21513,8 +22072,8 @@ "deps": [ "editorconfig" ], - "commit": "ddf60923c6f4841cb593b2ea04c9c710a01d262f", - "sha256": "1v5a6s4x7cm6i0bxaqdpsg8vqj479lp5h45glx4ipk0icdq8cvd9" + "commit": "4f75e175ad15ce2038f926fe4f0e5a0c1d0cbc46", + "sha256": "12a78187ar4mxdf1sk8bkrdcxly1nc5m9krkry04jklj6h9dayj3" } }, { @@ -21623,8 +22182,8 @@ "repo": "sebastiw/edts", "unstable": { "version": [ - 20200304, - 1709 + 20200413, + 1929 ], "deps": [ "auto-complete", @@ -21635,8 +22194,8 @@ "popup", "s" ], - "commit": "22eb59692a792c6769ae0b2b9f9a2583133764b8", - "sha256": "015irp4vd4s2j2iw4p0r98kb60xyjbrpvckj8iixsja3qj8b63rw" + "commit": "e797eb57ede8332205b3abd7d7adeccbb319ad29", + "sha256": "1101yx1dg82msw0bbji9hpnzq029ghh9ca4a6588fik8sn3v786j" }, "stable": { "version": [ @@ -21773,6 +22332,21 @@ "sha256": "1ak23v9gqj6x104mzgihn0hi7w0kr76q1sl929wmbb9h8s3a54q8" } }, + { + "ename": "egg-timer", + "commit": "a8fbafbeec955fb9bb421519de1e3d09d9812c66", + "sha256": "1q3l8hxymk3vxa0nf8pydy4k9qnbzzzpgkp86c9d744smal5xn3v", + "fetcher": "github", + "repo": "wpcarro/egg-timer.el", + "unstable": { + "version": [ + 20200217, + 1650 + ], + "commit": "e3542aeb80905956b94373a222a9cbac04e6497e", + "sha256": "0pq6ni2kvdps7j8pdlv16cka198sv29axp9xrp7c755k82pydhk4" + } + }, { "ename": "egison-mode", "commit": "3416586d4d782cdd61a56159c5f80a0ca9b3ddf4", @@ -21784,17 +22358,17 @@ 20200107, 2333 ], - "commit": "39d416a6ef2c1f863a9482e7ada59d5da6fb7883", - "sha256": "0f66fnzkwl37qp8rj3hhnnayx27l06c18n7x3422pvbgxc78c7i8" + "commit": "8e0706fdb5ae139a1db93bdd24203a261b13c875", + "sha256": "09jqjdgjrg740a326vn086wj3gv548w19dk8pz9k7k3dvlncw24y" }, "stable": { "version": [ - 3, - 10, - 3 + 4, + 0, + 0 ], - "commit": "79ab16f093aa3b2373422d0044f3119467755f5e", - "sha256": "0fisq0g3css641fh7y9vhagkfbsm2rfw9pnzyz434cr41wnjmjfz" + "commit": "400465de0ece5b03607895bd1c83b1cfae34079a", + "sha256": "196jn2cmyjvjai3nbij5kk64djz908ch4kddi4qdpkighwslkh2i" } }, { @@ -21805,27 +22379,27 @@ "repo": "joaotavora/eglot", "unstable": { "version": [ - 20200113, - 1722 + 20200424, + 1852 ], "deps": [ "flymake", "jsonrpc" ], - "commit": "606e234ea867d057f201fde9a4de2a896f35782e", - "sha256": "0fjgy377vb3znzlb49xjf5a6k4ihmql1lbiaw2fla7282r5z5ja6" + "commit": "e5cf30e26bd3107583418f2b4539c7385d37d6c8", + "sha256": "0fx2zx46j4mivb2h1bdz7n17bmmd6811az1wzi8g4q430kiv9hpi" }, "stable": { "version": [ 1, - 5 + 6 ], "deps": [ "flymake", "jsonrpc" ], - "commit": "33a4f869972f0958c15c33b47035672b265a8b55", - "sha256": "1x6nlsc93scq8lidx1l5ipi7r7s0p63m2vwkl77p3v59glir15cb" + "commit": "e02479a8c20cd79c3dfeb553deaaecd7d6e97e51", + "sha256": "13r1ysdhnxkc025wypwi6w507v18hm5qf0x29qrycql46f8klrjb" } }, { @@ -21836,28 +22410,28 @@ "repo": "non-Jedi/eglot-jl", "unstable": { "version": [ - 20200120, - 1457 + 20200413, + 1930 ], "deps": [ "eglot", "julia-mode" ], - "commit": "94e84fe0d14585192dca53e1e962bec7596f095c", - "sha256": "0dsnyp30c9nrglv4ifv6g272sa6pgrn5f75ak81z4pkdhdn6wvnb" + "commit": "a37aaa7c2a3e0282e02f97c0b8946dbd6d6cbf06", + "sha256": "09mzxg0j5a9dqx8sf5m91sapzdlr3vj5ds2ll7nxmgd57m185pfs" }, "stable": { "version": [ 1, - 1, - 1 + 2, + 0 ], "deps": [ "eglot", "julia-mode" ], - "commit": "94e84fe0d14585192dca53e1e962bec7596f095c", - "sha256": "0dsnyp30c9nrglv4ifv6g272sa6pgrn5f75ak81z4pkdhdn6wvnb" + "commit": "a37aaa7c2a3e0282e02f97c0b8946dbd6d6cbf06", + "sha256": "09mzxg0j5a9dqx8sf5m91sapzdlr3vj5ds2ll7nxmgd57m185pfs" } }, { @@ -21885,17 +22459,17 @@ }, { "ename": "eide", - "commit": "a42244392719c620b47bc43a7a8501dab4b6f74e", - "sha256": "1962shxcfn3v1ljann7182ca6ciy5xfbcd6l9l8rc8gikp55qv8m", + "commit": "1dd52b48fbac25ee2873645d87a1238351a6ff74", + "sha256": "1akmb48rpq05mmb022yh0qnjlbs1wx5x6f1gk2kw5fb5g45swb0c", "fetcher": "git", - "url": "https://framagit.org/eide/eide.git", + "url": "https://forge.tedomum.net/eide/eide.git", "unstable": { "version": [ - 20191213, - 2119 + 20200419, + 2126 ], - "commit": "2153a68b58910e7892b16cc32414e2be99e33f36", - "sha256": "17fbxijpiachsb16ngbv7wpy9f4m0456bc5q9g7z8qi28dgzlz9p" + "commit": "827f29b9fd8e20e2e460cffc67a8f9ac9623c450", + "sha256": "1bqsvk70l9n929b41xz6j3sg3irwrcrlbvqxpvq0d8jqjl4nw51g" }, "stable": { "version": [ @@ -21930,8 +22504,8 @@ "repo": "millejoh/emacs-ipython-notebook", "unstable": { "version": [ - 20200307, - 2048 + 20200425, + 1940 ], "deps": [ "anaphora", @@ -21941,8 +22515,8 @@ "request", "websocket" ], - "commit": "b265205a5735f7727336f483001cd2bdb9fc7a4e", - "sha256": "1b2ydpp9kh3a64if2fz6dky4mz3ifd7am7gms5508aj0757mzy4m" + "commit": "42134adf3c95b7768e2d725bab39ddb98feafa09", + "sha256": "07lwxl5kbsc0xlmnvp524p3r4m9f4ldxnkwm0gmbk8aq1lg1gyw6" }, "stable": { "version": [ @@ -22016,8 +22590,8 @@ "repo": "kostafey/ejc-sql", "unstable": { "version": [ - 20200308, - 1421 + 20200424, + 1623 ], "deps": [ "auto-complete", @@ -22026,8 +22600,8 @@ "direx", "spinner" ], - "commit": "046bffbaac2a78e440d39a1f1e2dd8055a39f3bd", - "sha256": "0ccww05ivqgsvvrhjlwlciv00213qar4sdzawzmxh85vxj3a045b" + "commit": "0914ff731630ebdaa4e07dba97644e0e57bbf18e", + "sha256": "0qm4sdzxmkm35kg3ldijj6vwbdn8yflivyv09m4w05vz0liks0qa" }, "stable": { "version": [ @@ -22110,8 +22684,8 @@ 20181006, 225 ], - "commit": "456fea0866ee71cb5a68eb65e9464565674081bf", - "sha256": "1hcjf88xjgkgp5wv7ccnfifnmpdj33csx6xm7rrdal3cy0f3ydj8" + "commit": "64abd393d5cefb1d59380dcc1344befdf618735b", + "sha256": "006c2kgkky81mv7an24m55521ay0d6ang5cwi16ac88j8x3n1q4i" }, "stable": { "version": [ @@ -22224,20 +22798,19 @@ "repo": "raxod502/el-patch", "unstable": { "version": [ - 20191114, - 1639 + 20200404, + 1548 ], - "commit": "4744d6b1a5405001cb75f2c362a681964367319c", - "sha256": "1l4rjvdrdzvgq5zq6njg6gv0b7p6j545h4v27mpyxfh3z5jc8c49" + "commit": "f5c785a6f951a4aa6d6ab5cda84460dad2a072cc", + "sha256": "12fw4zk3w8kh8g94k4hcqjixxb1vvnv4qivc672lwdj4d8a218jw" }, "stable": { "version": [ - 2, 2, 3 ], - "commit": "ef56cbc6950dffd91de93009bafe51efb81eb84f", - "sha256": "18djslz177q6q33y82zmg2v6n9236a76kiqfvxdk4vbqzjbq82f7" + "commit": "278a27477a4d7032fe06bb56ab01701cb10df808", + "sha256": "15bwjl6377ngg3qwn1g8wc2wi61pcm6xlhjzj28ap5vz7y7zxps2" } }, { @@ -22305,15 +22878,15 @@ "repo": "eschulte/el-sprunge", "unstable": { "version": [ - 20140107, - 139 + 20200312, + 1212 ], "deps": [ "htmlize", "web-server" ], - "commit": "37855ec60aeb4d565c49a4d711edc7341e9a22cb", - "sha256": "04k1fz0ypmfzgwamncp2vz0lq54bq6y7c8k9nm39csp2564vmbbc" + "commit": "e4365ea0bdf60969817619376bdcc98003fec33d", + "sha256": "13d2dr5r9nv97ma3abcnhqgq86rqwqlwvq64z3hm0qibsxxajdhq" } }, { @@ -22378,11 +22951,11 @@ "repo": "tumashu/el2org", "unstable": { "version": [ - 20190504, - 1114 + 20200408, + 146 ], - "commit": "fbb2c5bff78564111ff1826976101555314bfc53", - "sha256": "17d85fdckbzj551j98j0hrhdj0ag8ba2kpk2ix8fmvdnssxdnvm0" + "commit": "7db77fdd73f378d4e60e34c11bbdf00677adc32c", + "sha256": "196nrg4cp57calv36if0fkc8bjiz6qzisr29ry49zmkgjlqaafq3" }, "stable": { "version": [ @@ -22453,11 +23026,11 @@ "repo": "Mstrodl/elcord", "unstable": { "version": [ - 20200224, - 1509 + 20200322, + 2027 ], - "commit": "61cd3834f8650a13d34d845138e40c5aaab75cb7", - "sha256": "0l3hv190xkzyalfnxsb0x7npmwdgf9bpc0qdi7p7issbf0vrjp4n" + "commit": "94b0afb9bac32fa72354517347646166d6bec986", + "sha256": "11gj67d83hx9wfjf4j277jy8jxf97i6bd9r8r057v4i8301qh91p" } }, { @@ -22501,11 +23074,11 @@ "repo": "doublep/eldev", "unstable": { "version": [ - 20200221, - 2047 + 20200315, + 1527 ], - "commit": "a533ea3add577bb50a96ba24cee26f7e3e79a13f", - "sha256": "0wfpy5ib0f54lj394jmd45835iks8mvzxhnn0ii3qcsyjfs1jdnj" + "commit": "98fc3206c36bf6384bf333f93b4ae3d9382f5c57", + "sha256": "0a6a20n4nwfnzh0fbndpf3f77mchax4sdc2bwhn66yncm9kikjyh" }, "stable": { "version": [ @@ -22525,11 +23098,11 @@ "repo": "casouri/eldoc-box", "unstable": { "version": [ - 20191102, - 1433 + 20200316, + 1956 ], - "commit": "913786070769fac83e7b8ef790b57c8d8cbf8853", - "sha256": "0lgwixznvrmgzkridbsmhxqdsgchs5k56vb8nmpmchgf08qvaiz2" + "commit": "c1a1b77ec0c7fff9ecf7122d10dcd16eebcd3829", + "sha256": "1gg3gxw5ks4fds7lgl9mqxyb2qjrdsdwyyc183nfz6aq0m4w91yb" }, "stable": { "version": [ @@ -22587,15 +23160,15 @@ "repo": "stardiviner/eldoc-overlay", "unstable": { "version": [ - 20200216, - 546 + 20200328, + 619 ], "deps": [ "inline-docs", "quick-peek" ], - "commit": "3123b20f26d2f74033de6feb398fd36745c46e14", - "sha256": "16crwazyn28qyb9zax1jfz2favgw402z676yf67qchgzsf2jj43s" + "commit": "ec318acb564ac5679285b51b7d979410d393fac9", + "sha256": "0dx1b9d7zyqcwsnhl18hyrkmrc0zy68zwhp81d43fw84gjb4jcx8" } }, { @@ -22651,14 +23224,14 @@ "repo": "davidshepherd7/electric-operator", "unstable": { "version": [ - 20191005, - 1109 + 20200410, + 928 ], "deps": [ "dash" ], - "commit": "71d65e4abaef5e49a9e1b8fce706ce0296f9d5e2", - "sha256": "168ri3wahr6zjv2dvqc3jbqih2m4d0mfzp4gqw5mss000fqmx9ns" + "commit": "f8454905a147045f25ab03da7aa6406e4f20cc64", + "sha256": "1x087fry0yx5sk9vvgqv1zh7fkpgzvykl14fzns1920sxacgms68" }, "stable": { "version": [ @@ -22805,15 +23378,15 @@ "repo": "fasheng/elfeed-protocol", "unstable": { "version": [ - 20200305, - 230 + 20200426, + 1143 ], "deps": [ "cl-lib", "elfeed" ], - "commit": "16daf009952fc020a2589ccf325a2b822403f7b6", - "sha256": "1lsxbr8b8gn33w6xrs9ghgv2xxvls2arlvq0fkp3vpb5ki8jzsqs" + "commit": "294b0d70f2cb85d5563019343f14c64938ae4b07", + "sha256": "0bm6vn61awwa4yd97idjqbbwp3ypz11n5w9mswg5yivhg4kc82sm" }, "stable": { "version": [ @@ -22837,28 +23410,28 @@ "repo": "sp1ff/elfeed-score", "unstable": { "version": [ - 20200222, - 7 + 20200328, + 1855 ], "deps": [ "cl-lib", "elfeed" ], - "commit": "f14c0526676dd90be62b6aa086462047f7ac2da0", - "sha256": "099ch2jlj0fxn3d2v6z9rymkqbkrm3xp0bz4zkqbm54qcvdwib79" + "commit": "916c47b3590b2ff3c5075dcc1def4b36a4b14947", + "sha256": "1vhchbyy3c79cgvdz12wnryklr5g1bwh02d604zj2wca3b0199w4" }, "stable": { "version": [ 0, - 3, - 0 + 4, + 4 ], "deps": [ "cl-lib", "elfeed" ], - "commit": "f14c0526676dd90be62b6aa086462047f7ac2da0", - "sha256": "099ch2jlj0fxn3d2v6z9rymkqbkrm3xp0bz4zkqbm54qcvdwib79" + "commit": "916c47b3590b2ff3c5075dcc1def4b36a4b14947", + "sha256": "1vhchbyy3c79cgvdz12wnryklr5g1bwh02d604zj2wca3b0199w4" } }, { @@ -22979,11 +23552,11 @@ "repo": "xuchunyang/elisp-demos", "unstable": { "version": [ - 20200306, - 1620 + 20200329, + 2310 ], - "commit": "bd9dfc8659096cf3102f50b9dc895c599d824732", - "sha256": "1gkywnajnv62s0r2mdkc70cbzdyxa1x9w8rlbnlkdx4js3brakiz" + "commit": "57dd4ae3e47ecca6cb9eee87328f159b3eb53702", + "sha256": "15cjv97240nnmjjbdx9iqz4qwxvbxxsyjllcjwbmkkbpv6x91b89" }, "stable": { "version": [ @@ -23010,6 +23583,24 @@ "sha256": "09xbrk1li76fwa85kvd5xpr0zswrkh51p7a62sb8g422wpaqxiwx" } }, + { + "ename": "elisp-depmap", + "commit": "8c86ca9b1ad39282f965d36ec2a8df807cc0ebb1", + "sha256": "08qjrc3vrn18apnb856qd2m0wzza8755fbh8ly9nh58dlbjhkkd7", + "fetcher": "github", + "repo": "mtekman/elisp-depmap.el", + "unstable": { + "version": [ + 20200413, + 1215 + ], + "deps": [ + "dash" + ], + "commit": "e47616c968dd82e30cb10961452e2b46c7900163", + "sha256": "1jpqdi15lvyd48jsbndlallnjc8bkmv0mxwyf51m483vz9v8nn2i" + } + }, { "ename": "elisp-docstring-mode", "commit": "855ea20024b606314f8590129259747cac0bcc97", @@ -23048,24 +23639,28 @@ "repo": "gonewest818/elisp-lint", "unstable": { "version": [ - 20200217, - 38 + 20200324, + 2217 ], "deps": [ "dash", "package-lint" ], - "commit": "7a3866326631ba1ba8f4cd7a6cfd03c467c32aae", - "sha256": "1ldyv0c21dvl362kj566q8gd84gqq8g558slxyl73cf651q0nr84" + "commit": "35a3fcc3131c243206fa914b8562cda771eab8c5", + "sha256": "09ibaq3mjnw3vm1rwrljdcgybxly2fk9gjdim39s9fpgar4ys12p" }, "stable": { "version": [ 0, - 3, + 4, 0 ], - "commit": "d4dc13addde8cacd7660efcb369af5e54a547114", - "sha256": "1zyy8dj11sn74wq86hibp17a1zbps2pv26ncn8fh8wvsfy1vdfif" + "deps": [ + "dash", + "package-lint" + ], + "commit": "2b645266be8010a6a49c6d0ebf6a3ad5bd290ff4", + "sha256": "1gg9ik0x67cnldzsclp45i7gf190y9pxl11k3grdkrkqjiph1375" } }, { @@ -23232,8 +23827,8 @@ "repo": "jcollard/elm-mode", "unstable": { "version": [ - 20200301, - 19 + 20200406, + 214 ], "deps": [ "dash", @@ -23241,8 +23836,8 @@ "reformatter", "s" ], - "commit": "3f042ec430e7d915bfdca21d4f4d6201a882434b", - "sha256": "16b66kv49bslnnhya2a9q0zshcwx58017sy0ab451j5zsq42v2qh" + "commit": "7782be0814b52f7c35a09b21a4839c1502a4707f", + "sha256": "0g3mxp80hfjwf3adaslwykk01w5fh5y6nwj4687wbm5dldvhr42i" }, "stable": { "version": [ @@ -23570,8 +24165,8 @@ "repo": "jorgenschaefer/elpy", "unstable": { "version": [ - 20200202, - 2031 + 20200329, + 1830 ], "deps": [ "company", @@ -23580,13 +24175,13 @@ "s", "yasnippet" ], - "commit": "b25ab8c195472cf152fed80c212750b33837025e", - "sha256": "1nidig1yxr1fbwkfhpgd5zyqkd4mi5bp5h9bg17azs79xqprkrfx" + "commit": "816061cf16d53448d95612380855e7ccaf59a417", + "sha256": "0fjz3y0yh2hfmx0470jcyni1glc6m3bm5gh20iakvlwxf4wa8801" }, "stable": { "version": [ 1, - 32, + 33, 0 ], "deps": [ @@ -23596,8 +24191,8 @@ "s", "yasnippet" ], - "commit": "d54e78edad91660caaabd19e4a6e416889ccfe31", - "sha256": "0f00mdnzx6xqwni86rgvaa6sfkwyh62xfbwz8qsar15j0j6vc2dj" + "commit": "b69ae7652e5efdda2e3dc650cd425b987ddd65ad", + "sha256": "1g9x67dvg5al6i9hnjcyi0zjsz71iv2jbinpzj7gcx77d0dn3cpk" } }, { @@ -23769,15 +24364,15 @@ "repo": "wamei/elscreen-multi-term", "unstable": { "version": [ - 20151022, - 233 + 20200417, + 821 ], "deps": [ "elscreen", "multi-term" ], - "commit": "7b6048a0dd80f69460a62bbc6f1af8856141a5ea", - "sha256": "1cninrbgxzg0gykkpjx0i8pk2yc7sgr2kliqd35lgcxz2q4jlr51" + "commit": "4ea89bae0444d9d4377515929f76cb3e98140f1f", + "sha256": "0j5dpikjxwn1679ndy894g55qm9hs0n65lqyxx483h584nqxsdkg" } }, { @@ -23883,11 +24478,11 @@ "repo": "emacscollective/elx", "unstable": { "version": [ - 20191226, - 1614 + 20200422, + 1352 ], - "commit": "4cbdcd79524db4a71abbf761a3945617086f5d09", - "sha256": "1gb2sh2mcx8va8lgyc46pch9fswfm761935806myi9fl1v67ayk6" + "commit": "d5ebd8ab6439fea3dcae0bcaece6e914f4ee1f6c", + "sha256": "1h1dx6dpwr4cml2a57mz3lq4f746cja007ckrpk3vii9ap413hf8" }, "stable": { "version": [ @@ -24096,17 +24691,17 @@ }, { "ename": "emamux", - "commit": "6de1ed3dfccb9f7e7b8586e8334af472a4988840", - "sha256": "1pg0gzi8rn0yafssrsiqdyj5dbfy984srq1r4dpp8p3bi3n0fkfz", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "0y75dnaz65fwk8d9l6n1bkbj32rcmzaf58fhj686b1n55bsz3xz6", "fetcher": "github", - "repo": "syohex/emacs-emamux", + "repo": "emacsorphanage/emamux", "unstable": { "version": [ - 20170227, - 337 + 20200315, + 1220 ], - "commit": "39f57786b2cdd3844888df42d71c7bd251f07158", - "sha256": "184669qynz1m93s9nv5pdc8m4bnvqa56wz472nsq4xhixz44jjsv" + "commit": "6172131d78038f0b1490e24bac60534bf4ad3b30", + "sha256": "1cv9b15lj2663aik9s0s2bj05vv4zfzz2w7wjbj6s5vlnf5byfnl" }, "stable": { "version": [ @@ -24119,10 +24714,10 @@ }, { "ename": "emamux-ruby-test", - "commit": "f11759710881bdf5a77bd309acb03a6699cc7fd6", - "sha256": "1l1hp2dggjlc287qkfyj21w9lri4agh91g5x707qqq8nicdlv3xm", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "1lk2fpqnmzh1gsbp9pkh36lgr76sf2mbf12577xs4scia7xr29bc", "fetcher": "github", - "repo": "syohex/emamux-ruby-test", + "repo": "emacsorphanage/emamux-ruby-test", "unstable": { "version": [ 20130812, @@ -24586,6 +25181,38 @@ "sha256": "0xdlqsrwdf0smi5z9rjj46nwrrfpl0gzanf0jmdg8zzn62l6ldck" } }, + { + "ename": "emoji-github", + "commit": "64d18d6bb06d2d747b101845d3ed298787abaec0", + "sha256": "09b9kyx1zzi1i2m4isvnhb5526589vscv81xg35pgxwv6ilkky4z", + "fetcher": "github", + "repo": "jcs-elpa/emoji-github", + "unstable": { + "version": [ + 20200323, + 233 + ], + "deps": [ + "emojify", + "request" + ], + "commit": "43f63c0dd64aae6c8054c2dad617bf810abdfadd", + "sha256": "0wcxsy3q8912kf87bn3mi2si010i5dd99yinf23nhb2nqvqgiw94" + }, + "stable": { + "version": [ + 0, + 2, + 2 + ], + "deps": [ + "emojify", + "request" + ], + "commit": "5d1512fb30c65018a507ef549d92c668d8221da3", + "sha256": "00dj0kfllyhiklylj4cjcv64zjaxs6a4cc79f8pppmzvf1spivvz" + } + }, { "ename": "emoji-recall", "commit": "8f03b34d3e8e5edf9888c71b6e4bd2e1a5aec016", @@ -24673,8 +25300,8 @@ "repo": "Wilfred/emacs-refactor", "unstable": { "version": [ - 20191122, - 1911 + 20200420, + 721 ], "deps": [ "cl-lib", @@ -24687,8 +25314,8 @@ "projectile", "s" ], - "commit": "8038ab88a000a835ca73af2068b1ef536bc7e33c", - "sha256": "1d27y6chxjf4k9cgsk93xjf1wq9lrv0516lpnqqlp2rdd7m3nv7y" + "commit": "a8f6ab823453decf43f0764d02e554d05009a631", + "sha256": "0d1qd9jzmh0vg1in6q1xjlwq85sgds5lfvyg2wi6z8ci5a7m3ahs" }, "stable": { "version": [ @@ -24859,25 +25486,6 @@ "sha256": "1in4wbwkxn8qfcsfjbczzk73z74w4ixlml61wk666dw0kpscgbs5" } }, - { - "ename": "envdir", - "commit": "79c1497f709f6d23e4886359e09ab0456ed61777", - "sha256": "085bfm4w7flrv8jvzdnzbdg3j5n29xfzbs1wlrr29mg9dja6s8g8", - "fetcher": "github", - "repo": "proofit404/envdir-mode", - "unstable": { - "version": [ - 20160221, - 1923 - ], - "deps": [ - "dash", - "f" - ], - "commit": "f29346c55ccf11d8c75628edc6d430ed63c36917", - "sha256": "1jyhr9gv3d0rxv5iks2g9x6xbxqv1bvf1fnih96h4pgsfxz8wrp6" - } - }, { "ename": "eopengrok", "commit": "2b87ea158a6fdbc6b4e40fd7c0f6814d135f8545", @@ -24979,8 +25587,8 @@ "closql", "dash" ], - "commit": "edf8c009066360af61caedf67a2482eaa19481b0", - "sha256": "1ml5337wbw2zsf1vwv5svwvhd93jgl9sq79l1byiz32bnb0q5nhh" + "commit": "37f06fd2daca6a7afa163ceb0ccccd450af85e68", + "sha256": "18prjspaz4wlfrk2zzzzpxs4z8dkxxx68sbq2b4bdgg34fgnj02z" }, "stable": { "version": [ @@ -25148,14 +25756,14 @@ "repo": "atomontage/erc-crypt", "unstable": { "version": [ - 20200103, - 1329 + 20200424, + 2024 ], "deps": [ "cl-lib" ], - "commit": "26e16e0fc3af78e70b095f47995d2a368f8de61d", - "sha256": "197sj97j7mc9jwhamra4narnypdg3xpxy5rb95an5gqqzhy9bccm" + "commit": "ba36632666ea0a631d23b6fc54c16ada55673b02", + "sha256": "1q7bia9l672dfa0q4mrhv2cnxk2c8vhpl7n649zw7zwfpkqnzh70" }, "stable": { "version": [ @@ -25177,20 +25785,20 @@ "repo": "leathekd/erc-hl-nicks", "unstable": { "version": [ - 20180415, - 1946 + 20200317, + 16 ], - "commit": "756c4438a8245ccd3e389bf6c9850ee8453783ec", - "sha256": "0c82rxpl5v7bbxirf1ksg06xv5xcddh8nkrpj7i6nvfarwdfnk4f" + "commit": "a67fe361c8f2aa20fc235447fbb898f424b51439", + "sha256": "0k57scxa8rm859fqsm8srhps7rlq06jzazhjbwnadzrh8i5fyvra" }, "stable": { "version": [ 1, 3, - 3 + 4 ], - "commit": "756c4438a8245ccd3e389bf6c9850ee8453783ec", - "sha256": "0c82rxpl5v7bbxirf1ksg06xv5xcddh8nkrpj7i6nvfarwdfnk4f" + "commit": "a67fe361c8f2aa20fc235447fbb898f424b51439", + "sha256": "0k57scxa8rm859fqsm8srhps7rlq06jzazhjbwnadzrh8i5fyvra" } }, { @@ -25515,15 +26123,15 @@ "repo": "ergoemacs/ergoemacs-mode", "unstable": { "version": [ - 20190527, - 348 + 20200319, + 1250 ], "deps": [ "cl-lib", "undo-tree" ], - "commit": "7d3656541a00cc04ba4cefa31c0d127adb5a260a", - "sha256": "1rw237xiw5nz736l5jdmlsa11l14qvzdac0wqymi80a0rfwqikga" + "commit": "4a6ba06d9c618e9380d059fa25ed677b45d134a7", + "sha256": "0wgdzxla6kz1zfc3vfd8wc2j40kq023z7b83m2k435hcqdffark8" }, "stable": { "version": [ @@ -25567,21 +26175,21 @@ "repo": "erlang/otp", "unstable": { "version": [ - 20200220, - 2206 + 20200313, + 1030 ], - "commit": "f9cbc2a6f6c03b529860857f94242ea80b30d3f3", - "sha256": "0xxq20k4al58yv4y1kj2d8hwpcwji0qwzqn06p5y1wzzyw22sz7h" + "commit": "7ec0ad6ed076b76de8cd52e28445f324a5f2853a", + "sha256": "0r0sn8vfmgamf3mnjjkkv9y0r8a6xkn5f5axw1av0liiv95kgrm8" }, "stable": { "version": [ 23, 0, -1, - 1 + 3 ], - "commit": "2b823b90b7dbd56aae3a3fbdcb182f9fd5127a59", - "sha256": "00dsbnii0w56jmbzzn43j18rprmc4d2ckd8ad0kzc6cb856mxs9s" + "commit": "9f17d424ada5353db1e5b31296484d95679f8ca8", + "sha256": "0012fbf9a1whq2bzii73m645bvf4vww403fcd54j9k27916vcfx5" } }, { @@ -25723,8 +26331,8 @@ "repo": "rejeep/ert-runner.el", "unstable": { "version": [ - 20180831, - 1145 + 20200321, + 2158 ], "deps": [ "ansi", @@ -25734,13 +26342,13 @@ "s", "shut-up" ], - "commit": "90b8fdd5970ef76a4649be60003b37f82cdc1a65", - "sha256": "04nxmyzncacj2wmzd84vv9wkkr2dk9lcb10dvygqmg3p1gadnwzz" + "commit": "1829f05c46b0baaae160d900f89c8881f4fcdbcc", + "sha256": "08gygn9fjank5gpi4v6ynrkn0jbknxbwsn7md4p9ndygdbmnkf98" }, "stable": { "version": [ 0, - 7, + 8, 0 ], "deps": [ @@ -25751,8 +26359,8 @@ "s", "shut-up" ], - "commit": "00056c37817f15b1870ccedd13cedf102e3194dd", - "sha256": "0rdgdslspzb4s0n4a68hnwfm8vm8baasa8nzrdinf0nryn7rrhbf" + "commit": "1829f05c46b0baaae160d900f89c8881f4fcdbcc", + "sha256": "08gygn9fjank5gpi4v6ynrkn0jbknxbwsn7md4p9ndygdbmnkf98" } }, { @@ -26103,11 +26711,11 @@ "repo": "zwild/eshell-prompt-extras", "unstable": { "version": [ - 20200310, - 809 + 20200319, + 322 ], - "commit": "6a30813893e04ab8c0793757cdb2ff9873ab0c56", - "sha256": "0vk30sq0p3afpaw9phmfpglvhs01f97rhm3ygzwiv8h4smy9zgsj" + "commit": "1801b3aeccf1363f138fe01ee99d892d10fc2a07", + "sha256": "1dgfd9yf4ikn5whqpxyliyp21vs1h852wjfqy5lmxzhnzic1xsi1" }, "stable": { "version": [ @@ -26227,8 +26835,8 @@ "deps": [ "dash" ], - "commit": "98c669e3653bf94c236c54946c6faba7f782ef0d", - "sha256": "1v4s3srn6cc4rbb8hg3wri8c3vnijkyz582qmpyf1vd44mldfq4x" + "commit": "0c431141be9a408c28aead152ea454df0804364f", + "sha256": "0yyssbgfi3fg3dbfrzsy9sms42z87apk6amql8pijwzb3b735jc2" }, "stable": { "version": [ @@ -26319,11 +26927,11 @@ "repo": "walseb/espy", "unstable": { "version": [ - 20180929, - 1602 + 20200317, + 2333 ], - "commit": "b64a99185c96c20d4d4caa3daf1f5510b039bd6a", - "sha256": "1i8wc55rihah39i95w0rryp5scq8v3zyk4cayw5pz8g5bbl8w4zb" + "commit": "2c01be937a5e5bde62921684a0b27300705fb4e0", + "sha256": "1nnnr184y29g1svxqxlqyg5irzrf1xmay4p78jfv8v07sisl90kp" } }, { @@ -26371,14 +26979,14 @@ "repo": "emacs-ess/ESS", "unstable": { "version": [ - 20200311, - 102 + 20200419, + 1920 ], "deps": [ "julia-mode" ], - "commit": "3b84933f58d23403ded5bb5b25b8b2f714824ce9", - "sha256": "074lpj12sg90qbv8409dp9008nwc9rmqrb1clnxapfacz12649nc" + "commit": "007fa4b5192154db3d90e6e861f96193c1b145f5", + "sha256": "12kj006yxl84fav2ryxx6ajk284rskgy6imi9wjpfl8qqfcykcm0" }, "stable": { "version": [ @@ -26513,14 +27121,14 @@ "repo": "jschaf/esup", "unstable": { "version": [ - 20200130, - 2034 + 20200318, + 2256 ], "deps": [ "cl-lib" ], - "commit": "4e5bf7d265c3b1484017fc0fd0ad50d2403c2bbe", - "sha256": "1jdsy5bqnmbai7kylidyfd0nla26apqvfl2f6vdvjs02hlr1w2s7" + "commit": "c9c95e245068d15d8e2732098af9a5d2bc8ec931", + "sha256": "0i4cwwvs5zs8g2ajrrkqgrpxzywsa255rc1g7a6bxzvg9hk77f4k" }, "stable": { "version": [ @@ -26546,8 +27154,8 @@ 20171129, 807 ], - "commit": "5548ceba17deae0c3c6d0092672edc4de3c75ce3", - "sha256": "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m" + "commit": "193d199305e7abcb5ed795b9bc5434ded20ae60e", + "sha256": "1cbzdwfndz6pdmb3vzb6l2smxb2l47sncmkccya0nzlvvhz3p8c0" }, "stable": { "version": [ @@ -26827,16 +27435,16 @@ "repo": "emacs-evil/evil", "unstable": { "version": [ - 20200304, - 1421 + 20200417, + 1238 ], "deps": [ "cl-lib", "goto-chg", "undo-tree" ], - "commit": "296932406a0b55474fe4b6cb8db8b7d5e05633aa", - "sha256": "1gvmvczdfgq07chj98gqg5j2zyfdrq3znl8l6a81mbrjbvsyvmd3" + "commit": "d243eae8649272799ec3864fde14c1164f036940", + "sha256": "0fpjcxyzql7fl904asxbff3gqdc1byhwn32i38r4zd4bqrqsqfw4" }, "stable": { "version": [ @@ -26855,10 +27463,10 @@ }, { "ename": "evil-anzu", - "commit": "06b0609b56016d938b28d56d9eeb6305116b38af", - "sha256": "19cmc61l370mm4h2m6jw5pdcsvj4wcv9zpa8z7k1fjg57mwmmn70", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "08cc33wjq5853c0hqwn30342ylkfldy7xg7yd2ak0apjxnz4qr40", "fetcher": "github", - "repo": "syohex/emacs-evil-anzu", + "repo": "emacsorphanage/evil-anzu", "unstable": { "version": [ 20170124, @@ -27030,16 +27638,16 @@ "repo": "emacs-evil/evil-collection", "unstable": { "version": [ - 20200219, - 1042 + 20200426, + 848 ], "deps": [ "annalist", "cl-lib", "evil" ], - "commit": "a478a95a8a3665e40bdae3bab2a0519db6c1f29c", - "sha256": "15ii5lw6hs4yyl22yyzfwzagdma2sman4rm5gq4m9773g4ava515" + "commit": "695e941d8ac59dc7534524e5cd27ced9490259a1", + "sha256": "0fdqxgkp0fl5862b15qxnl2njs97vznsydw5jm6hw8fq94a1crhn" }, "stable": { "version": [ @@ -27112,15 +27720,15 @@ "repo": "PythonNut/evil-easymotion", "unstable": { "version": [ - 20180114, - 654 + 20200424, + 135 ], "deps": [ "avy", "cl-lib" ], - "commit": "79c13ed3bce018ac09d358e642e5bd7025e93603", - "sha256": "0496dnbciq8gbivihas1y58gwd4nbfz767rr98zpwgkz8l2jvy73" + "commit": "f96c2ed38ddc07908db7c3c11bcd6285a3e8c2e9", + "sha256": "0xsva9bnlfwfmccm38qh3yvn4jr9za5rxqn4pwxbmhnx4rk47cch" } }, { @@ -27564,15 +28172,15 @@ "repo": "emacs-evil/evil-magit", "unstable": { "version": [ - 20200302, - 1611 + 20200409, + 1909 ], "deps": [ "evil", "magit" ], - "commit": "0b79aa33a478770865716dc0e09f95d91ec042a2", - "sha256": "0qxapq9nl1yr3ryg1q9n2ajffm308fai115mbvwmjl9sd6x2p3ly" + "commit": "253c644807013fe92429acdef418748794b8f254", + "sha256": "08mh7phxsdb9w4dfs0pmr4l4fdzzr2rm88z2s8karfi5j5ik2ag5" }, "stable": { "version": [ @@ -27632,8 +28240,8 @@ "deps": [ "evil" ], - "commit": "11d98debf8b051b10068137668eb54c2fede0e30", - "sha256": "1jppiqz1mlmz9wnxmaymg15sz6j59kghhrv95r6hkv90zwdvbqvw" + "commit": "076ace3ee22a61890f375ae492c634f71ce84301", + "sha256": "0d4xdrqa8ylh67wgyywxsh0crm06y31babc8sksrpwxlr12xyaww" }, "stable": { "version": [ @@ -27761,11 +28369,11 @@ "repo": "redguardtoo/evil-nerd-commenter", "unstable": { "version": [ - 20200222, - 901 + 20200417, + 59 ], - "commit": "fa40dab8d2f010db17e1e62dfd245c1504d0542f", - "sha256": "0dn712k54qsxy82jqbqip77k5i3zv8m7afj2yi39zqx28iqvic0z" + "commit": "1bd2de52011c39777a3e8779b14cee2790dc873b", + "sha256": "0h8hzqjh6qq4fj0imrb5ic5m4zn3ig6s3b7b2x9r6ig9m15jpg6n" }, "stable": { "version": [ @@ -28082,26 +28690,26 @@ "repo": "porras/evil-ruby-text-objects", "unstable": { "version": [ - 20190821, - 1527 + 20200323, + 1552 ], "deps": [ "evil" ], - "commit": "0ddc4c256a0c778fa65d75b707f20df874e5b5fa", - "sha256": "1ppwcyfy5dssswfzd16i1rx14si5r80mdvrnfwaf9jr3c2ws23lg" + "commit": "32983d91be83ed903b6ef9655e00f69beed2572c", + "sha256": "0qha7xxqxh7c6n6r26r49y85inxcbr4nvxlv2zzj0qkifw7f9ana" }, "stable": { "version": [ 0, - 1, + 2, 0 ], "deps": [ "evil" ], - "commit": "93cfc5ae3da0ffb19319e301734c51ecb43506b5", - "sha256": "0jizvchrisrdc7bl6xfc59axyjz1dmr6hi36jyv1bdwyayj2ifqi" + "commit": "e69abb6aad7687222cb47a8a64dc4dd66ef96a9e", + "sha256": "0m1ilv4w4rlg8005cqp5l5dwdhqnrf1mb44qmvd8qwkl2rvslsbs" } }, { @@ -28173,15 +28781,15 @@ "repo": "hlissner/evil-snipe", "unstable": { "version": [ - 20200103, - 923 + 20200422, + 519 ], "deps": [ "cl-lib", "evil" ], - "commit": "3ec8adfd4990f95fa0fab2b7019ead3596857673", - "sha256": "0q689f52saky3rfap351n4bkjn0kpg7xkjias926affqpghywb1r" + "commit": "2ba6353bb9253dbbc4193f1d35403e7dcc1317b1", + "sha256": "1sqbwg41by88qq7npsw7w9q3zmfk5adzqpqh2m84zk6fd64mc6h2" }, "stable": { "version": [ @@ -28364,8 +28972,8 @@ "deps": [ "evil" ], - "commit": "296932406a0b55474fe4b6cb8db8b7d5e05633aa", - "sha256": "1gvmvczdfgq07chj98gqg5j2zyfdrq3znl8l6a81mbrjbvsyvmd3" + "commit": "d243eae8649272799ec3864fde14c1164f036940", + "sha256": "0fpjcxyzql7fl904asxbff3gqdc1byhwn32i38r4zd4bqrqsqfw4" }, "stable": { "version": [ @@ -28481,10 +29089,10 @@ }, { "ename": "evil-textobj-line", - "commit": "24bf766525ffdaded519ac9f78ae89d8ab5108ef", - "sha256": "158w524qzj0f03ihid2fisxyf1g7vwpv3ckfkzi7c2l549jnsdsa", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "1jwhg56nhf5iv7zbfdzi6ygikc49bnrqh1r5kd98n5wxz9vz2h75", "fetcher": "github", - "repo": "syohex/evil-textobj-line", + "repo": "emacsorphanage/evil-textobj-line", "unstable": { "version": [ 20150729, @@ -29118,11 +29726,11 @@ "repo": "extemporelang/extempore-emacs-mode", "unstable": { "version": [ - 20200213, - 1249 + 20200408, + 2253 ], - "commit": "d73c1af831584311d8ad8b45b2ec14cac6eb6edb", - "sha256": "1wm4qavrf9b76309cmmw0jf5hg7j3cym5m5syjhv9lh2hlyl358q" + "commit": "09518ae6650d7be33a4633a4c0f31b7130d04c6e", + "sha256": "0hfza9lzdsz94gxhmzyp9fwviscv19rmnjgd0q613faayn11sjsp" } }, { @@ -29409,11 +30017,11 @@ "repo": "thblt/eziam-theme-emacs", "unstable": { "version": [ - 20200124, - 1045 + 20200327, + 1810 ], - "commit": "9ae0fdb2ad751044b3bd60aee08523d460db2bd6", - "sha256": "0gvf7g5s7wrchwbh0bnr0ryx9zaw56mx09bd4f32793lpv9sxyi6" + "commit": "7a585de01b6fee081eaa167b09d7e12d02cf4149", + "sha256": "11v8rbaiaihpky1m7azbflz77mwg76nbg8hsgybs86wyjk5797dv" }, "stable": { "version": [ @@ -29720,6 +30328,29 @@ "sha256": "0vcr1gnqawvc1yclqs23jvxm6bqix8kpflf1c7znb0wzxmz9kx7y" } }, + { + "ename": "fantom-theme", + "commit": "e5cb6a9f6a657b72a00a39c118d90416ae2f343c", + "sha256": "18p82f82hr1sx8w9lmjxr3hvvy4ddxvyd245v32vjay5zc730y33", + "fetcher": "github", + "repo": "adsva/fantom-emacs-theme", + "unstable": { + "version": [ + 20200328, + 604 + ], + "commit": "2c1c7fd53086c2ff86ee0961642c3b58e2343c08", + "sha256": "1clvpjsf241fdkk3915zjqb4wivsjsvc9phf633pzbvi61qwhaap" + }, + "stable": { + "version": [ + 1, + 0 + ], + "commit": "70cef2886ca90c93bcafc869bcc77bad1e390c33", + "sha256": "1q15wx53zq6b9f567anrfmfpj04f3r6wz28w4237f9lg62yqhm9x" + } + }, { "ename": "farmhouse-theme", "commit": "3b0d427db8ab66d2fe323366b0837595b3b59afa", @@ -29951,6 +30582,36 @@ "sha256": "1fas0fpvym2lyzybwm44gly9jz6a2fpp72yxnwfbqqjkfgk9910y" } }, + { + "ename": "feather", + "commit": "ffb7d037679110473a8c3f9e98f737ecaba37c40", + "sha256": "1k3sxwpibk5sdim4pzfi83pzsm4vnq0xl006dy76pv363r9mvs21", + "fetcher": "github", + "repo": "conao3/feather.el", + "unstable": { + "version": [ + 20200321, + 1237 + ], + "deps": [ + "async", + "async-await", + "page-break-lines", + "ppp" + ], + "commit": "529b7ec69f1694d7dc8aacb5066cf4ddcf24cc58", + "sha256": "0flph6yv5fj5ladksjqfpj9j8p2jcc102kbc833bvx1cnmjx7qk4" + }, + "stable": { + "version": [ + 0, + 0, + 1 + ], + "commit": "4cb69055cfc42841bad1de072f69dd6923899766", + "sha256": "1fq5ysxwiaah56rizkc47vjqi8906af3ga1n1frvrvap8m9vdz4m" + } + }, { "ename": "feature-mode", "commit": "0a70991695f9ff305f12cfa45e0a597f4a782ba3", @@ -29997,11 +30658,11 @@ "repo": "technomancy/fennel-mode", "unstable": { "version": [ - 20200206, - 2001 + 20200405, + 1935 ], - "commit": "c02f4a9ed1b9c26f9cfc3237906c2844f5937622", - "sha256": "1bcdicgp3wlxpdzardx1ry9js192dy26q8af6pdlvrnxqvdl2asm" + "commit": "7fadf2580c3afcae3f6ebc54dad0e519b7600f1d", + "sha256": "1qpfpfdm2d8bdqm7h62y3hgbip67yqmblhg66zlmfxfdnsad5ls6" } }, { @@ -30083,16 +30744,16 @@ }, { "ename": "figlet", - "commit": "5b7972602399f9df9139cff177e38653bb0f43ed", - "sha256": "1m7hw56awdbvgzdnjysb3wqkhkjqy68jxsxh9f7fx266wjqhp6yj", - "fetcher": "bitbucket", + "commit": "caca0b2bc2aaac563074cbb4ea4296fce749e203", + "sha256": "0p5xnq3c4bvvy7nqgi18ylsha7kz9r7apw7lz84kq5hwhni298k5", + "fetcher": "github", "repo": "jpkotta/figlet", "unstable": { "version": [ 20160218, 2237 ], - "commit": "70ca269d706eedd34838fe2435073c6860be470b", + "commit": "19a38783a90e151faf047ff233a21a729db0cea9", "sha256": "1c18b1h154sdxkksqwk8snyk8n43bwzgavi75l8mnz8dnl1ciaxs" } }, @@ -30399,6 +31060,21 @@ "sha256": "0lwgbd9zwdv7qs39c3fp4hrc17d9wrwwjgba7a14zwrhb27m7j07" } }, + { + "ename": "fira-code-mode", + "commit": "0dc34b2d3cfd5e48df0fbe2086b8b4be1358dea4", + "sha256": "09i3xyk1xj7j895xmjwmxl1gaw73j9y22c5mgnavq0sm3fbpk4w0", + "fetcher": "github", + "repo": "jming422/fira-code-mode", + "unstable": { + "version": [ + 20200415, + 2356 + ], + "commit": "a61d7fce35eadba39236a6a3e9aa301e161d147b", + "sha256": "1bn81qwkvhznc5pi6bq08kp83208pj09vknfszx152r72sv5fpmz" + } + }, { "ename": "firecode-theme", "commit": "641d1959bd31598fcdacd39a3d1bb077dcccfa5c", @@ -30455,20 +31131,20 @@ "repo": "johanvts/emacs-fireplace", "unstable": { "version": [ - 20181211, - 1927 + 20200402, + 2206 ], - "commit": "571ffa7dd0ce46edca838df74d055aaa83da4d78", - "sha256": "1iw17rkihsn50p3zljag82v09zyav8bzgfn6mfa267fkf4f1fgjy" + "commit": "f6c23e259349922aae25cf2898ba815a7d8f2527", + "sha256": "16cb8grw2cfgdix1sr5a3fnwhhc93ci8qgbhgs5ilyayy2cb6s4c" }, "stable": { "version": [ 1, - 1, - 2 + 2, + 0 ], - "commit": "2b966ed65b714c613f79e9144d004dfa3b28f1ed", - "sha256": "1f5053bbvjdmm64zv6r2qkswkpwvx0s3qz4bwm9zya583a6g0nv8" + "commit": "f6c23e259349922aae25cf2898ba815a7d8f2527", + "sha256": "16cb8grw2cfgdix1sr5a3fnwhhc93ci8qgbhgs5ilyayy2cb6s4c" } }, { @@ -30503,11 +31179,11 @@ "repo": "IBM/firrtl-mode", "unstable": { "version": [ - 20190224, - 344 + 20200329, + 2002 ], - "commit": "e55c555809037b7aaf2367ad2255f0a27addd23a", - "sha256": "1nsihyx9znblc4kxyk06r7alhd4wh67312zwp9discgyf4ksm572" + "commit": "fa40141411a876ce7a1a9d6d3fe47134bc1fa954", + "sha256": "1pj7b8ppkbjp8q5dzw5v086v8lp1gv1il6qc65l4nlm8p5iicvzq" } }, { @@ -30557,6 +31233,30 @@ "sha256": "1s961nhwxpb9xyc26rxpn6hvwn63sng452l03mm2ply32b247f9p" } }, + { + "ename": "fit-text-scale", + "commit": "5ccb1803a5783834685c4bdf40e6b1e876ea3ea4", + "sha256": "0w4wg7zl9082q558dyj1hk021ry1sig5w5abnn90plvjc65xs72q", + "fetcher": "gitlab", + "repo": "marcowahl/fit-text-scale", + "unstable": { + "version": [ + 20200315, + 2120 + ], + "commit": "387acab18f9f4064c051771cf666b8550718dc27", + "sha256": "0mrl112vjsl6ddjv0j2pg97s6zk8c2qb92wqsq775ahr1cbhvbw7" + }, + "stable": { + "version": [ + 1, + 1, + 3 + ], + "commit": "75f74aa14bb38ab00f184ae0a51262eaab07a27c", + "sha256": "1nc1p4qbpvnqq2vi7pck3zygahhippvy2xgqmha4lpq5f996lmyx" + } + }, { "ename": "fix-input", "commit": "7d31f907997d1d07ec794a4f09824f43818f035c", @@ -30734,6 +31434,21 @@ "sha256": "0z77lm6jv2w5z551pwarcx6xg9kx8fgms9dlskngfvnzbqkldj1f" } }, + { + "ename": "flatfluc-theme", + "commit": "de15ce71674965c5e0a8564ae2e640bc05dbd589", + "sha256": "0rpmiw71scdl3dgrvf2j9d909wmafyvlgraxfg5hsxngcyj5gjk0", + "fetcher": "github", + "repo": "seblemaguer/flatfluc-theme", + "unstable": { + "version": [ + 20200419, + 1033 + ], + "commit": "42f93b2ffb651901d6bad7eb5587790298dda371", + "sha256": "035zm6dh416jk1ipg35qnkr8cbfsjkb92dhc4ryay4p30rp1yljz" + } + }, { "ename": "flatland-black-theme", "commit": "641d1959bd31598fcdacd39a3d1bb077dcccfa5c", @@ -30851,16 +31566,16 @@ }, { "ename": "flex-isearch", - "commit": "5b7972602399f9df9139cff177e38653bb0f43ed", - "sha256": "1msgrimi2a0xm5h23p78jflh00bl5bx44xpc3sc9pspznjv1d0k3", - "fetcher": "bitbucket", + "commit": "caca0b2bc2aaac563074cbb4ea4296fce749e203", + "sha256": "0y5j90y4ssw3kwqhji9h4icy8xj2pa5fjvkbkl4x7rxs8kwwm989", + "fetcher": "github", "repo": "jpkotta/flex-isearch", "unstable": { "version": [ 20170308, 2010 ], - "commit": "8b934ea6f1e4324088f055454a2e8b714961854a", + "commit": "b1f7e04de762282c276343cc2709af9ff4abc9d2", "sha256": "0xbwrzkfv4i91qxs80p0pfjlvj5pyigvidby8m5lammm8idwx9dh" } }, @@ -30890,14 +31605,11 @@ "repo": "IvanMalison/flimenu", "unstable": { "version": [ - 20170418, - 147 + 20200415, + 2353 ], - "deps": [ - "dash" - ], - "commit": "9351201d89b05cbdaec312a6ebd7fd10c38d6112", - "sha256": "1qb08j66a9mvybqhc2vyywwn16w3kkjb06k50rfqf6sbcmndz8va" + "commit": "f110bc77415a7594742f3b12551571c4069c9157", + "sha256": "1y832w4n10k9lfi90lhq8l9s56zcg24j9j8jklkzby1vf34vq0ql" } }, { @@ -31042,11 +31754,11 @@ "repo": "amake/flutter.el", "unstable": { "version": [ - 20200226, - 640 + 20200416, + 1225 ], - "commit": "ec92a4df842ad7e5bd8f60a648ffe7b004abb09d", - "sha256": "1l7nd01p5p9l2a4k2rl61vjs337sagx4m3qr4isvhvy2bk2cppmy" + "commit": "293b7225b9bacbad4bf14d43d20a765f4862c563", + "sha256": "0acn2bdqcvj1m6plm304adgw6ndycv04qh6asgbgdwlz1admzjga" } }, { @@ -31064,8 +31776,8 @@ "flutter", "flycheck" ], - "commit": "ec92a4df842ad7e5bd8f60a648ffe7b004abb09d", - "sha256": "1l7nd01p5p9l2a4k2rl61vjs337sagx4m3qr4isvhvy2bk2cppmy" + "commit": "293b7225b9bacbad4bf14d43d20a765f4862c563", + "sha256": "0acn2bdqcvj1m6plm304adgw6ndycv04qh6asgbgdwlz1admzjga" } }, { @@ -31175,8 +31887,8 @@ "repo": "flycheck/flycheck", "unstable": { "version": [ - 20200224, - 2057 + 20200425, + 1426 ], "deps": [ "dash", @@ -31184,8 +31896,8 @@ "pkg-info", "seq" ], - "commit": "08345d38e2872a3dcb14228edff796195809266f", - "sha256": "183s05gm7zkgwphrwq0bq9fv2sldhrxjik8skz7rvbz448syh0c5" + "commit": "c8218044c849f21cc628b6c077e41c690f046bc0", + "sha256": "11n3h7x9nszqljd0awi6jzrhrkac7sdyrwvb94bikrj1d7yin25g" }, "stable": { "version": [ @@ -31394,14 +32106,14 @@ "repo": "alexmurray/flycheck-clang-analyzer", "unstable": { "version": [ - 20190724, - 542 + 20200320, + 428 ], "deps": [ "flycheck" ], - "commit": "223faa244502150d08a34898858a0b4806c92d4c", - "sha256": "1di3d9y0p8g8mndwkzkiiq2svsgk05rnzf7bzfnhig2fchg7ipap" + "commit": "7e1bf9853a34828c7f81d824dc4785f1620f2006", + "sha256": "1iw3vjdnskbk8zlbyvxiwlisj72d7q8nz8n55ffwz3v44ymzhya6" } }, { @@ -31462,14 +32174,14 @@ "repo": "borkdude/flycheck-clj-kondo", "unstable": { "version": [ - 20190619, - 1743 + 20200414, + 1444 ], "deps": [ "flycheck" ], - "commit": "f652a8dc4cff01e78bba50b555bae7ba6115b552", - "sha256": "09k87wfz4m16r32g6ry4jl2zagh1gpgfd9sik54wvyky24s605y4" + "commit": "5472c26ffdf754a0661357564874ffd4f8598805", + "sha256": "0nb88mil1nlhv0nalswl3xwndzz91yah52zpri2jfbyvivshpfm4" }, "stable": { "version": [ @@ -31900,8 +32612,8 @@ "let-alist", "seq" ], - "commit": "debd0af563cb6c2944367a691c7fa3021d9378c1", - "sha256": "1vl0lss2n50pz5wscqj6vhjwb4hbg8xx2chh5vafsrnn0a3fryrd" + "commit": "1b60050efd4729bfba548f3e5adbcb58436667cb", + "sha256": "1kjms9d2c98ffd1qxs879qhg0n4jzic0r5kni9y4gz3v09ww8zms" } }, { @@ -32046,20 +32758,20 @@ }, { "ename": "flycheck-grammalecte", - "commit": "fdd82aa0568d998a3d176b5ee47b8a227438ea09", - "sha256": "0xqg995a42cl6mvmpi68ay56fgs636cbzg65q5si5yc1yzgl74nv", + "commit": "ddaffa55c1b99cce9097c019efe9a236e2f5a395", + "sha256": "1fblc6mvj9n676ci8597as3rnwh6hmbh2hfwr92gi1dd8ibnd2pn", "fetcher": "git", "url": "https://git.deparis.io/flycheck-grammalecte/", "unstable": { "version": [ - 20200308, - 1452 + 20200416, + 1620 ], "deps": [ "flycheck" ], - "commit": "ca4b87d22474d3337db72e19f88105f557f44867", - "sha256": "0wj81xfy3wlgdlnhhyhz5lfkl6sfb2ajwb6s8f2y4bcvqa8gz3qj" + "commit": "d99833992eb874cbbd25e991e3037642e125bb59", + "sha256": "07ph5kk9zb375nkdqryzpfzqn9rr89minf2jgyzlnv58fzqiwpjp" }, "stable": { "version": [ @@ -32214,14 +32926,26 @@ "repo": "gexplorer/flycheck-indicator", "unstable": { "version": [ - 20190729, - 1501 + 20200331, + 1142 ], "deps": [ "flycheck" ], - "commit": "6b1386296ddf2ccc11ca8fa719dc0b2f16808424", - "sha256": "0bd8k3jzipm0r0242hpl2lkcdfnb367yf4xpj6r23g3y99f6f0yk" + "commit": "e00d9a20cbc21d6814c27cc9206296da394478e8", + "sha256": "0y3dzamm7xcac9fcgx88z48l6nkgmz5lx0a6lnxxywkh0h1y2kqn" + }, + "stable": { + "version": [ + 1, + 1, + 1 + ], + "deps": [ + "flycheck" + ], + "commit": "e00d9a20cbc21d6814c27cc9206296da394478e8", + "sha256": "0y3dzamm7xcac9fcgx88z48l6nkgmz5lx0a6lnxxywkh0h1y2kqn" } }, { @@ -32329,26 +33053,26 @@ "repo": "candid82/flycheck-joker", "unstable": { "version": [ - 20180913, - 504 + 20200412, + 2346 ], "deps": [ "flycheck" ], - "commit": "51e99e697761ee8dab863930910abdba7607c1bd", - "sha256": "07pxfvnrgp7f3rb27j1zrq04pncvga4291krqqy3dzwazsjplz48" + "commit": "93576295fef7a749bf779eeece5edd85e21868e2", + "sha256": "1hz5nlrhbrlwwk8rcjvc3jhj0g9wgm6xw903ap8fxq470mj99gln" }, "stable": { "version": [ 1, - 3, + 5, 0 ], "deps": [ "flycheck" ], - "commit": "51e99e697761ee8dab863930910abdba7607c1bd", - "sha256": "07pxfvnrgp7f3rb27j1zrq04pncvga4291krqqy3dzwazsjplz48" + "commit": "93576295fef7a749bf779eeece5edd85e21868e2", + "sha256": "1hz5nlrhbrlwwk8rcjvc3jhj0g9wgm6xw903ap8fxq470mj99gln" } }, { @@ -32571,8 +33295,8 @@ "deps": [ "flycheck" ], - "commit": "12a77ee8ee3f6e774365f63be3cd5aede6462dd5", - "sha256": "187v8877wh247j26d5h2qcnc8i3fmqgyzfvjjjlw9sswqgrln6m7" + "commit": "5b4e14ab0cbce2ff35fee7e69b5b95eafd609c80", + "sha256": "1cx1rm40ns3y5bdbk8hfycdaq16p4zxkjjss02xs6hl96yvc4kaj" } }, { @@ -32756,6 +33480,25 @@ "sha256": "0gys38rlx9lx35bia6nj7kfhz1v5xfrirgf8adwk7b2hfjazrsib" } }, + { + "ename": "flycheck-pest", + "commit": "f0c1b89d79456ecaa22b95f3c292799f5d1aa133", + "sha256": "06nvryshinagp26idjcb1r98k39x4k82cjj735l9kiwpiag53ash", + "fetcher": "github", + "repo": "ksqsf/pest-mode", + "unstable": { + "version": [ + 20200317, + 1503 + ], + "deps": [ + "flycheck", + "pest-mode" + ], + "commit": "4ae88a9c81d499bbe99978ff0216b645fed70023", + "sha256": "1zc7dmgp3s9q33wkvw6i7zzlcaa65ixx3hxb78m62lk2a7fzb3ih" + } + }, { "ename": "flycheck-phpstan", "commit": "5a2b6cc39957e6d7185bd2bdfa3755e5b1f474a6", @@ -32764,28 +33507,28 @@ "repo": "emacs-php/phpstan.el", "unstable": { "version": [ - 20200122, - 1256 + 20200411, + 531 ], "deps": [ "flycheck", "phpstan" ], - "commit": "a1c30ca634107551c20c846b5316ca5697adb06d", - "sha256": "0b7rnzk1zkrzh978bmh2dsy78f0sb4ia1w06khyqiby52m27q9k1" + "commit": "2f715a186c5fe6576de83d4c0b64a37e2bfce101", + "sha256": "03ix2s068pzmybj0fcb08dlfgdqw0pmqhbdf4id2077f67bfad0w" }, "stable": { "version": [ 0, - 3, - 3 + 5, + 0 ], "deps": [ "flycheck", "phpstan" ], - "commit": "535e172e1c561bc7b8c706b4e03bbf71689bd83a", - "sha256": "1hn1rdgymv81rm8nkibnc5jazgjrx3sz4w1lin85rgypzbfaf6wk" + "commit": "bf9e82a63f2ccb12af02c9e79a83e7989eeb7cb1", + "sha256": "15kv5xv6lcfgf048wr2zsnpvrplbxypy3wq56zvrzbq18hwprqg1" } }, { @@ -32796,16 +33539,16 @@ "repo": "Wilfred/flycheck-pkg-config", "unstable": { "version": [ - 20180430, - 2243 + 20200409, + 501 ], "deps": [ "dash", "flycheck", "s" ], - "commit": "e72e4c1b8153611ed82695673af84096f4d52795", - "sha256": "07zyrbib9qzy4kj3p7kljcfi53qhb28nf0sjhhkqzdj09iv2k9wf" + "commit": "b76b24ea1f4800f5fb96ce9c6c4788e0e63133d3", + "sha256": "01wzzrpfgh3z28qsynxvkfm92xy98vyvkkv31qh53kxxdicnzlh0" } }, { @@ -32965,14 +33708,14 @@ "repo": "msherry/flycheck-pycheckers", "unstable": { "version": [ - 20200206, - 2158 + 20200414, + 1901 ], "deps": [ "flycheck" ], - "commit": "c5349c0fb3b719469b7e66dbdfbe58d0813f6a74", - "sha256": "02886xggdb09880jp57cah3fmf1nm77gvb0aaws8j4abl278g7x5" + "commit": "467f9b94d9eecc8a8027cf204d304e258f72edaa", + "sha256": "03yiva5lmbfawdjjfsmqlqgvrdgfni1gh1qbdpma5gqhckz5j0d7" }, "stable": { "version": [ @@ -33031,27 +33774,27 @@ "repo": "purcell/flycheck-relint", "unstable": { "version": [ - 20200304, - 152 + 20200320, + 2223 ], "deps": [ "flycheck", "relint" ], - "commit": "f498c130408411906bda81c1023a88b1498dcf18", - "sha256": "18sgnj6y9vsj9np58d8cr72jfady0kwdg6rdx667098lbznaw0da" + "commit": "296cf8e2f9e85ab0c1c591816b50ecd7c766060c", + "sha256": "148xh1alng4s3ydnhwjjrcmq1390pn6ymjszaamrzljwfqzh85ky" }, "stable": { "version": [ 0, - 4 + 5 ], "deps": [ "flycheck", "relint" ], - "commit": "39ec5deabdd23afaf6e1e34e13edd14d910899d0", - "sha256": "0m46n91hmh6gml9ravd0d1i79jnl9vbr733na3w0kg87mixnjdy8" + "commit": "296cf8e2f9e85ab0c1c591816b50ecd7c766060c", + "sha256": "148xh1alng4s3ydnhwjjrcmq1390pn6ymjszaamrzljwfqzh85ky" } }, { @@ -33069,8 +33812,8 @@ "flycheck", "rtags" ], - "commit": "d370c09007d299dc6b6aae719bf728b95dd426c5", - "sha256": "0hakpd1dwhn2nkfhx4hli0l7hf3p1g8vpyrrczq45smfsz73d96x" + "commit": "a42298e80dffae9a6b2e9816506174542f3cbbb7", + "sha256": "1674752bbyb7890na5p846dxcvh83zn0a6z19wras1x5c59s24i3" }, "stable": { "version": [ @@ -33930,14 +34673,14 @@ "repo": "beetleman/flymake-joker", "unstable": { "version": [ - 20200118, - 1937 + 20200315, + 1429 ], "deps": [ "flymake-quickdef" ], - "commit": "c4350eb9198fb6fe1ebfb356e3c9c37dd6b0f171", - "sha256": "0c25nzainwcy5wxh2q1r98fvbnvgylyp6s41sh4zdpzid34rf1vz" + "commit": "fc132beedac9e6f415b72e578e77318fd13af9ee", + "sha256": "1pqi6d1kgn5s6bkabi8jxk26ffwqq7g3rl3xgas49rn9vgqwqmq1" } }, { @@ -34103,6 +34846,24 @@ "sha256": "11r982h5fhjkmm9ld8wfdip0ghinw523nm1w4fmy830g0bbkgkrq" } }, + { + "ename": "flymake-pest", + "commit": "747e1b060e3aa78b91d61abcf2c9a4dc0d4aaf7e", + "sha256": "17bsvrd1g7d5b0z5psx0bvg2ym0bi7dh1vvl8a45dnzpig141f36", + "fetcher": "github", + "repo": "ksqsf/pest-mode", + "unstable": { + "version": [ + 20200317, + 1503 + ], + "deps": [ + "pest-mode" + ], + "commit": "4ae88a9c81d499bbe99978ff0216b645fed70023", + "sha256": "1zc7dmgp3s9q33wkvw6i7zzlcaa65ixx3hxb78m62lk2a7fzb3ih" + } + }, { "ename": "flymake-php", "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487", @@ -34150,6 +34911,36 @@ "sha256": "1z6m3bggd3gmxvx92j16jmqm5h9jjxnmsd7adyf12ziy5n5rqcbc" } }, + { + "ename": "flymake-phpstan", + "commit": "bc0ea837b6813002826d861acb7f3cc506c337ba", + "sha256": "0fg2skkzd9xn42a5jdxg69bjg0jw26p5jrq6i5v815vgisxfgjbv", + "fetcher": "github", + "repo": "emacs-php/phpstan.el", + "unstable": { + "version": [ + 20200415, + 1637 + ], + "deps": [ + "phpstan" + ], + "commit": "2f715a186c5fe6576de83d4c0b64a37e2bfce101", + "sha256": "03ix2s068pzmybj0fcb08dlfgdqw0pmqhbdf4id2077f67bfad0w" + }, + "stable": { + "version": [ + 0, + 5, + 0 + ], + "deps": [ + "phpstan" + ], + "commit": "bf9e82a63f2ccb12af02c9e79a83e7989eeb7cb1", + "sha256": "15kv5xv6lcfgf048wr2zsnpvrplbxypy3wq56zvrzbq18hwprqg1" + } + }, { "ename": "flymake-puppet", "commit": "302dbe34e7949da9c65e9c7bf2ab924db91b968f", @@ -34349,11 +35140,11 @@ "repo": "federicotdn/flymake-shellcheck", "unstable": { "version": [ - 20181214, - 24 + 20200329, + 2005 ], - "commit": "e22385a9e752e58b18d4c6371e6ff1602bb764f2", - "sha256": "0gfk2wsi72n4zkgjpqasdn83zrxlzm735q6c3gs1sfqd7h1jqnwq" + "commit": "78956f0e5bb9c4d35989657a55929e8e3f5691e6", + "sha256": "068mx5p4drwgppy4ry1rfq6qi79w6d82b4rnpl2jm37grsg94lix" } }, { @@ -34469,8 +35260,8 @@ 20200215, 1408 ], - "commit": "e765d1a3d9621decd478aa3fd08b53425da93a87", - "sha256": "195id7zscwbhmgv5jhcrvr65y4rwszdr4qz8l6w5bz5zxik2mxwp" + "commit": "fd8ac7a4f922ce5ea1cc5d4583a7d584847cb6b5", + "sha256": "1z7gcppp8nv4zm6giqwahc1svw1fa2ynjy5y3230dwcfn98m73c3" }, "stable": { "version": [ @@ -34497,8 +35288,8 @@ "avy-menu", "flyspell-correct" ], - "commit": "e765d1a3d9621decd478aa3fd08b53425da93a87", - "sha256": "195id7zscwbhmgv5jhcrvr65y4rwszdr4qz8l6w5bz5zxik2mxwp" + "commit": "fd8ac7a4f922ce5ea1cc5d4583a7d584847cb6b5", + "sha256": "1z7gcppp8nv4zm6giqwahc1svw1fa2ynjy5y3230dwcfn98m73c3" }, "stable": { "version": [ @@ -34529,8 +35320,8 @@ "flyspell-correct", "helm" ], - "commit": "e765d1a3d9621decd478aa3fd08b53425da93a87", - "sha256": "195id7zscwbhmgv5jhcrvr65y4rwszdr4qz8l6w5bz5zxik2mxwp" + "commit": "fd8ac7a4f922ce5ea1cc5d4583a7d584847cb6b5", + "sha256": "1z7gcppp8nv4zm6giqwahc1svw1fa2ynjy5y3230dwcfn98m73c3" }, "stable": { "version": [ @@ -34561,8 +35352,8 @@ "flyspell-correct", "ivy" ], - "commit": "e765d1a3d9621decd478aa3fd08b53425da93a87", - "sha256": "195id7zscwbhmgv5jhcrvr65y4rwszdr4qz8l6w5bz5zxik2mxwp" + "commit": "fd8ac7a4f922ce5ea1cc5d4583a7d584847cb6b5", + "sha256": "1z7gcppp8nv4zm6giqwahc1svw1fa2ynjy5y3230dwcfn98m73c3" }, "stable": { "version": [ @@ -34593,8 +35384,8 @@ "flyspell-correct", "popup" ], - "commit": "e765d1a3d9621decd478aa3fd08b53425da93a87", - "sha256": "195id7zscwbhmgv5jhcrvr65y4rwszdr4qz8l6w5bz5zxik2mxwp" + "commit": "fd8ac7a4f922ce5ea1cc5d4583a7d584847cb6b5", + "sha256": "1z7gcppp8nv4zm6giqwahc1svw1fa2ynjy5y3230dwcfn98m73c3" }, "stable": { "version": [ @@ -34866,6 +35657,21 @@ "sha256": "0ghj0nw2zlrppsgl6x2nda9fj4w04rz6647v9823wxhfirrgnd5z" } }, + { + "ename": "font-lock-cl", + "commit": "b7a2635ceb34f49f84f35e11c14521592a9d330f", + "sha256": "1d8r3d558ipk324hpgfm4fv4kxk6mhvkka3aqd4kcv8zv0k79iq3", + "fetcher": "github", + "repo": "font-lock-cl/font-lock-cl", + "unstable": { + "version": [ + 20200321, + 533 + ], + "commit": "9f82d31f9f0fb06bbc2ce18e21e79d1eabbe6c5e", + "sha256": "0b6g36frvp1i92qn8rv3dcm8sxiw5yvbvhl7j58x2xwvawn79nfd" + } + }, { "ename": "font-lock-profiler", "commit": "b372892a29376bc3f0101ea5865efead41e1df26", @@ -34930,10 +35736,10 @@ }, { "ename": "fontawesome", - "commit": "93b92f10802ceffc353db3d220dccfd47ea7fa41", - "sha256": "07hn4s929xklc74j8s6pd61rxmxw3911dq47wql77vb5pijv6dr3", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "1xqq0ndq6hndpyar11qlylkdgqpq5kxhbayyjbad3vbm6r5i9nri", "fetcher": "github", - "repo": "syohex/emacs-fontawesome", + "repo": "emacsorphanage/fontawesome", "unstable": { "version": [ 20170305, @@ -35001,11 +35807,11 @@ "repo": "k-talo/foreign-regexp.el", "unstable": { "version": [ - 20180224, - 1121 + 20200325, + 50 ], - "commit": "2ec5c44f27c2396ee487aa0ed77ae47d143fa5aa", - "sha256": "0zww0q8x99sfwzf05pk7blsi3v8xiw4xgmlwnv1qlf2qxjkz1xhb" + "commit": "e2dd47f2160cadc194eb156e7c76c3c869e6706e", + "sha256": "0bqhabpv992ss8rw3fgym6q5kq1d6b9ycs0a5ndgjpcz19rmlr66" } }, { @@ -35067,8 +35873,8 @@ "repo": "magit/forge", "unstable": { "version": [ - 20200309, - 937 + 20200425, + 2225 ], "deps": [ "closql", @@ -35080,8 +35886,8 @@ "markdown-mode", "transient" ], - "commit": "2e2d26cf428012f0ece53a81cde02179e72648aa", - "sha256": "0mpim6699cda3ds8gv1f2y021gssjrw9rg7w9b8h1ifhrl54x0qn" + "commit": "e2da80660a0550f613400ce3b238025589800417", + "sha256": "0m80w0qh6icj365pcg9d0kb2nvmv48c3874wy15mjcilzb6i97av" }, "stable": { "version": [ @@ -35115,8 +35921,8 @@ 20160102, 2253 ], - "commit": "799ca3e72b20a59a755a094b8cead57f654f3170", - "sha256": "0nj056x87gcpdqkgx3li5syp6wbj58a1mw2aqa48zflbqwyvs03i" + "commit": "15bbcb2d2df21910af3b9686b671e0c7d1c93b26", + "sha256": "1vfnpm6kp4xf3qc73i41rg73bhbym1sd4z6jam4k1f44iny0zqxz" }, "stable": { "version": [ @@ -35136,15 +35942,15 @@ "repo": "lassik/emacs-format-all-the-code", "unstable": { "version": [ - 20200219, - 1628 + 20200422, + 1731 ], "deps": [ "cl-lib", "language-id" ], - "commit": "8c8c47a863a397d947999fff4358caf20bafca0a", - "sha256": "0ayb57p114z64ppf74g2wpm2g2iga2vrl8rhay7fnfv1j2i4xjss" + "commit": "c157b57e963da0b44a079b0477d6c742e9c5a10b", + "sha256": "15pqff80ydcvkvbiyi50aix5mnwgrhvvajk60i6cwgkb2xghs20r" }, "stable": { "version": [ @@ -35281,26 +36087,26 @@ "repo": "rnkn/fountain-mode", "unstable": { "version": [ - 20200307, - 943 + 20200416, + 841 ], "deps": [ "seq" ], - "commit": "c3f70903327659cd307f9a8225b5c4310cfc6e8e", - "sha256": "1zavkilkff9gbnl6i5ghc0z93b4k3kv604lyysqnc7mvvzf344vc" + "commit": "5998d977ca84930e124558007dc65370164ed960", + "sha256": "1hmc3pacscr0f02cw6hbbv444k07k5gf1909lyz8jpfr5r5wi2in" }, "stable": { "version": [ 3, - 0, - 3 + 1, + 0 ], "deps": [ "seq" ], - "commit": "974c9df2c73cf52030dfe0c771d97d3d37bd08e4", - "sha256": "0103rnq9x07a11930jgcg04ayd7npri9wd2j2ghr510y7sm86p0d" + "commit": "9027c6f2b2a2d7d64501e55ff3531cdef26c463d", + "sha256": "08giwg0jwk8zzj2i4cm08322qr6znrnv9a49za7c6j47bykpwj6s" } }, { @@ -35559,6 +36365,60 @@ "sha256": "0ggkflx4lhyxqr7sgf1f3z0i3glmqyvl4bn16clh9ybl14q22rli" } }, + { + "ename": "freeze-it", + "commit": "0b50aa7ce66a827ddd975eddf8e95ba655e05239", + "sha256": "03wnmp6m9ss3vvzibajjdvzbgh2ydvq95xk9k2rhrgjj9pdz5ml8", + "fetcher": "github", + "repo": "rnkn/freeze-it", + "unstable": { + "version": [ + 20200416, + 1605 + ], + "commit": "b93af18633bc783c2cb8443808aeeaaca33e1146", + "sha256": "0gljal6hmchx5zyd268kwlqn8pqq206y8a89ff7kq6qaql88mngn" + }, + "stable": { + "version": [ + 0, + 2, + 1 + ], + "commit": "b93af18633bc783c2cb8443808aeeaaca33e1146", + "sha256": "0gljal6hmchx5zyd268kwlqn8pqq206y8a89ff7kq6qaql88mngn" + } + }, + { + "ename": "friendly-tramp-path", + "commit": "cb18ad238792570e5ef825a101059bfdc293949f", + "sha256": "120g9w1l4i544km5d1jx5g4vsfb92lizn7ibxl767zffgahqhbdf", + "fetcher": "github", + "repo": "p3r7/friendly-tramp-path", + "unstable": { + "version": [ + 20200419, + 851 + ], + "deps": [ + "cl-lib" + ], + "commit": "ce7d15dd96300d376d483d685aa4a34357da8d6a", + "sha256": "01v311c8w86s954adl1ncmbhmk07acm8pnak70gn93dpz77vl9g4" + }, + "stable": { + "version": [ + 0, + 1, + 0 + ], + "deps": [ + "cl-lib" + ], + "commit": "be2714118876c592fae199aaa877c49475b6176a", + "sha256": "1z1rcm8pc8p2d7zzf02nms6cz2ik8y1b95a58lqxlp8n75rz4c5i" + } + }, { "ename": "fringe-current-line", "commit": "eaaa6f7f2f753a7c8489415ae406c4169eda9fa8", @@ -35682,8 +36542,8 @@ "repo": "FStarLang/fstar-mode.el", "unstable": { "version": [ - 20200305, - 1654 + 20200424, + 2235 ], "deps": [ "company", @@ -35693,8 +36553,8 @@ "quick-peek", "yasnippet" ], - "commit": "aaaf2568881d3e5e08f8cbd04a9add49912552ad", - "sha256": "1wqbfz8sbvfl7v31a1i6mc6c8p5fyp8yflj87lavpk1d0h5dl8ly" + "commit": "d8b586518f32d4acde049852d81902670d1ee277", + "sha256": "0av315lf58nwgvix100bj279mq2pm175vwc5dip19gn73bq4d9vi" }, "stable": { "version": [ @@ -35724,8 +36584,8 @@ "deps": [ "cl-lib" ], - "commit": "85d15e865ab3beca4ab601b5741ed31b55e247bd", - "sha256": "16z3sgfjm49f7ll11lfw8pwrqgss6631frr5xxnh18x1p5n96gjc" + "commit": "298bbddeb1dcc135c075d484f283f409f0d0d055", + "sha256": "199a1gs7ja9l3bc2sw9cwv9jv0zvqqaa2pp6hibbyl00rsk2xs58" }, "stable": { "version": [ @@ -35878,14 +36738,14 @@ "repo": "diku-dk/futhark-mode", "unstable": { "version": [ - 20200123, - 931 + 20200415, + 1228 ], "deps": [ "cl-lib" ], - "commit": "ca22b1e5fe46125b968c3da46e0bc9780b32e346", - "sha256": "1zkqlacxmiwprx8xbnp6phf3gh3faxghxv0j90019k0g3dq9l3ws" + "commit": "2befd490ce7d78a43d001b4bb0bd4300d086d645", + "sha256": "0p4ii7mbspx1fsmzx9n8z2siq9n8ixpisxs388ndd2ccp7x3k6nm" } }, { @@ -36154,26 +37014,35 @@ "repo": "koral/gcmh", "unstable": { "version": [ - 20200213, - 944 + 20200409, + 1456 ], - "commit": "8867533a736f2098917904c26fd833feca2310a5", - "sha256": "0fwbxh0ywy6prjvgl91xdxfmcca4cnnn2cy2zndj5mdl0zx5k3a2" + "commit": "b1bde5089169a74f62033d027e06e98cbeedd43f", + "sha256": "0k0gh1dr3hipg73mpgkw6hlg27c7c5r8aa61p4vj2rpmf6k90pc5" } }, { "ename": "gdscript-mode", - "commit": "52f99eafb2e80a7fa13a98add98b03a147f35e8b", - "sha256": "0v4ab5xxpq1kya2is5qq61fmfgxgvbigyz7wp907z3mc00kg2818", + "commit": "b4414989beecd113ec405116402a5232ac32cb85", + "sha256": "1clakvkjifqhi847p6zrxxfkr5s3hv33qsh7r96w04pihyd38q9l", "fetcher": "github", - "repo": "AdamBark/gdscript-mode", + "repo": "GDQuest/emacs-gdscript-mode", "unstable": { "version": [ - 20180118, - 456 + 20200404, + 112 ], - "commit": "31af5283eaec207bc864022a28e2824132471eaf", - "sha256": "0f24zsklkhhvj6qdyid2j1qcyhjnncxjma93zhr0klvn5j1z3aar" + "commit": "9a74dd3b6cfe73dd7510faf26ee7bc14e3c7dbc6", + "sha256": "1rrwhb6ak0gajcci4kk7fdyfm0c5wfhj6zys9f4m5xjya9pb3wb4" + }, + "stable": { + "version": [ + 1, + 1, + 0 + ], + "commit": "86577f81dc2640d5388565d0430b4df241bdd38e", + "sha256": "0cpfdbza3gh1s6y5igs51b1m7g7dfa7jszjfawz3v2g49p4a5m2d" } }, { @@ -36261,11 +37130,11 @@ "repo": "jaor/geiser", "unstable": { "version": [ - 20200225, - 1423 + 20200419, + 2111 ], - "commit": "5fcd56b2d560c04a173ae7d8b21540471322afa4", - "sha256": "00zvll0glzx9lp4s9l1ix1grdqa9cj24kszil1akaa8rqniiafn1" + "commit": "07912e512a7bf1507d0dd5ba3774b684c5ac3287", + "sha256": "0w2rhk04x4wqcx6brfacqx3r7whyzdnbgwzfgmba0xsrpb2x7rpz" }, "stable": { "version": [ @@ -36285,14 +37154,14 @@ "repo": "noctuid/general.el", "unstable": { "version": [ - 20191031, - 2024 + 20200425, + 1425 ], "deps": [ "cl-lib" ], - "commit": "f6e928622d78d927c7043da904782ed7160ea803", - "sha256": "1l541isnwhcg3y8h709zw6nskhkgwnkbdbl1zv702mgfsbl5am62" + "commit": "42e38034cd2305fa7432866323c923979d8f9b06", + "sha256": "0aalp4x5gp0yhv037ymspsj4n3vqzxld0c1nk8ihl50k6krl4kxy" } }, { @@ -36331,6 +37200,21 @@ "sha256": "08cw1fa25kbhbq2sp1cpn90bz38i9hjfdj93xf6wvki55b52s0nn" } }, + { + "ename": "geoip", + "commit": "40336cd135414e1c6f478705e5873eaa396554b0", + "sha256": "0j70gl9423ghrjp4k250kq8xpngxa8pzlpivpksyzzj32s7dy1nw", + "fetcher": "github", + "repo": "xuchunyang/geoip.el", + "unstable": { + "version": [ + 20200310, + 911 + ], + "commit": "25eb1278788b942c38405c233d3614a1de92ddea", + "sha256": "0nbgbqxmpq6c487yx4igph58zmaslqn7z92x9b1xymw58fnlyrm6" + } + }, { "ename": "geolocation", "commit": "fddc094aa08365c0e04f0d8f2f19a47908964f50", @@ -36693,15 +37577,15 @@ "repo": "magit/ghub", "unstable": { "version": [ - 20200309, - 936 + 20200425, + 2233 ], "deps": [ "let-alist", "treepy" ], - "commit": "a8bf337534ec583906db77a3d56f7d1b84bda952", - "sha256": "0cpbz79k6q5ang47qw4j3i99qz093xc40k8lsc9j21g07fihxiv5" + "commit": "03d2546614619f42ac2983e79d0069ca4cbcfbfc", + "sha256": "0j0j86cbv87i2wfcvcyjb53wdzd003770krlnpx0gjkq036vvkwk" }, "stable": { "version": [ @@ -36756,11 +37640,11 @@ "repo": "Ambrevar/emacs-gif-screencast", "unstable": { "version": [ - 20200207, - 1358 + 20200327, + 1332 ], - "commit": "dce0f3bb71ab8761a689c7382864a20198874b8e", - "sha256": "0yf665w06ijjxvzfbg8naa95f5ga3z2kcaq9baq7md222r52xd7q" + "commit": "e39786458fb30e2e9683094c75c6c2cef537d9c4", + "sha256": "135mkyi8kqsxs0a3qa20splvx4xhl8k91s48yy6gwlz6m81vwvb5" }, "stable": { "version": [ @@ -36923,11 +37807,11 @@ "repo": "ryuslash/git-auto-commit-mode", "unstable": { "version": [ - 20200217, - 2348 + 20200322, + 2007 ], - "commit": "ae69e61233417a7f14efba35e42bd842b707aeb0", - "sha256": "0nrx3wnn2jii4yiv9c1cbbll4bgll5j73ypp1fi82kk99n0d8372" + "commit": "dd0c2441de0f5ff8c69c8260d9450d0b607e3e55", + "sha256": "0r7jry1sbqsp7c1vxf7fchc7ivmnccfrflg52379v3gmpvd8s0kn" }, "stable": { "version": [ @@ -36977,15 +37861,15 @@ "repo": "walseb/git-backup-ivy", "unstable": { "version": [ - 20191224, - 1254 + 20200424, + 1049 ], "deps": [ "git-backup", "ivy" ], - "commit": "0a6226c37b63660e6b246bc9bbcf919e44270a99", - "sha256": "081dfbxs417zv2dds4i16ak6dri41cfn012sbfmalp8qslpclb6z" + "commit": "d9361c9ad903e0d58f25ccebad99d9a753f1937a", + "sha256": "0jkkajv0scbp91al18fqqyvvcda2z6wkkbz0p1rcwzap5g96b7ag" } }, { @@ -37052,8 +37936,8 @@ "transient", "with-editor" ], - "commit": "1916e83aa463fee86ac1c6bcfd80d780d0544901", - "sha256": "1bnykbb868dna4j91kp5jzi7ab4siiy1ni228x8i50cmfm4i91in" + "commit": "8de6ecf5c5c840f8a964c3e5bd4d7a1aedf04e10", + "sha256": "0fwaasr7g4qj9l8dxcy1228p2rpb2xy16w2g27gqdzyd6a5sc2jw" }, "stable": { "version": [ @@ -37125,17 +38009,17 @@ }, { "ename": "git-gutter", - "commit": "81f0f525680fea98e804f39dbde1dada887e8821", - "sha256": "19s344i95piixlzq4mjgmgjw7cy8af02z6hg89jjjdbxrfl4i2fg", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "1vcrjxg9pckixsbfmvpf0624s990nx33qn0p6xhnag4jn81ih03x", "fetcher": "github", - "repo": "syohex/emacs-git-gutter", + "repo": "emacsorphanage/git-gutter", "unstable": { "version": [ - 20161105, - 1356 + 20200326, + 1814 ], - "commit": "00c05264af046b5ce248e5b0bc42f117d9c27a09", - "sha256": "1c7byzv27sqcal0z7113s1897prxhynk6y89mq1fjlxmr0g20vzb" + "commit": "2c3242116a42dbbe30fc0844d1ec3c41074cdaba", + "sha256": "18gbns5mjwr5kirgpzjp4iqmj130qa5m1hs4phx1057qdq11ihrr" }, "stable": { "version": [ @@ -37181,22 +38065,22 @@ }, { "ename": "git-gutter-fringe", - "commit": "81f0f525680fea98e804f39dbde1dada887e8821", - "sha256": "10k07dzmkxsxzwc70vpv05rxjyps9494y6k7yhlv8d46x7xjyp0z", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "1i8vvh2si3fdgq1m0yyzs9qbw5jzykp4qgl3ksm4xrimlw1ln4vc", "fetcher": "github", - "repo": "syohex/emacs-git-gutter-fringe", + "repo": "emacsorphanage/git-gutter-fringe", "unstable": { "version": [ - 20170113, - 533 + 20200323, + 2249 ], "deps": [ "cl-lib", "fringe-helper", "git-gutter" ], - "commit": "16226caab44174301f1659f7bf8cc67a76153445", - "sha256": "1y77gjl0yznamdj0f55d418zb75k22izisjg7ikvrfsl2yfqf3pm" + "commit": "da19a474137876b29b5658ee7e9ae366f2b65c1d", + "sha256": "015qaaap2cvy4cxl31r27z48zbgd9vyj6rac9yv3caw5zsvzlkiv" }, "stable": { "version": [ @@ -37324,11 +38208,11 @@ "repo": "sshaw/git-link", "unstable": { "version": [ - 20191119, - 1420 + 20200331, + 2329 ], - "commit": "2fb0e4be8801e7d53e02fc7f14ec0f9a14586ba2", - "sha256": "1y5qw5iyblj14zjvw4is51qyvmy2z0f0iba7cqr628zn9q1fqll6" + "commit": "7142ec898f0cb97aa5d1a68da7957b4710bbfa87", + "sha256": "0xcgzhlxd7ycfxmbgkwm04pdfjysygkka3jis4p45zy6mrackn4c" }, "stable": { "version": [ @@ -37342,20 +38226,20 @@ }, { "ename": "git-messenger", - "commit": "e791293133f30e5d96c4b29e972f9016c06c476d", - "sha256": "1rnqsv389why13cy6462vyq12qc2zk58p01m3hsazp1gpfw2hfzn", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "0nmxx7543x7cl40m69lmyb5fv68gzdwbr8dq18qbi5kapvhg5b8y", "fetcher": "github", - "repo": "syohex/emacs-git-messenger", + "repo": "emacsorphanage/git-messenger", "unstable": { "version": [ - 20170102, - 440 + 20200321, + 2337 ], "deps": [ "popup" ], - "commit": "83815915eb8c1cb47443ff34bca3fecf7d2edf3a", - "sha256": "1jkfzcn8gl3s5y2hwqkac7lm88q80hgcp66zvy7vnylka1scb6lz" + "commit": "2d64e62e33be9f881ebb019afc183caac9c62eda", + "sha256": "1w23qjc740bxj95gdzjcy3qldfmx4y19dhcrzh83l9wfz4y566c7" }, "stable": { "version": [ @@ -37780,16 +38664,17 @@ "repo": "charignon/github-review", "unstable": { "version": [ - 20200123, - 523 + 20200314, + 438 ], "deps": [ "dash", + "deferred", "ghub", "s" ], - "commit": "3fb7cc2a818c43f2b29ce17792efafd4f6b07765", - "sha256": "06bfwb7n700farbgc6lp6nqjx8sshc8r6lbhk3fqy92ahdpkz0wn" + "commit": "50c6bcc7cf4d7193577b3f74eea4dd72f2b7795b", + "sha256": "0khsxsqzx81y5krj06i8v84qsb3z86b1z17knyr1xizrd2lmraqp" } }, { @@ -38119,11 +39004,11 @@ "repo": "jimhourihan/glsl-mode", "unstable": { "version": [ - 20191017, - 2148 + 20200420, + 1839 ], - "commit": "43d906688a8e2fe650005806eb69bea131d9321a", - "sha256": "1783gimn1adfgs2xybz15nrx8wsz1xb4xk8mxrc18hyci7fwk04r" + "commit": "9bf168017eb3af7a396165a79a7b870572d59666", + "sha256": "13k4am1bk20b6pncg145g4p9abw42ksgaj0zq2bz7b4b8pnfdzp0" } }, { @@ -38337,11 +39222,11 @@ "repo": "emacsorphanage/gnuplot", "unstable": { "version": [ - 20200310, - 536 + 20200322, + 53 ], - "commit": "a080f79b6f7a6ca94d11cda0d341acfc6e76d0c5", - "sha256": "111n89p74iymxrla3mk387xffnqmkb11pixjfgiv61l9b35hx94g" + "commit": "f0001c30010b2899e36d7d89046322467e923088", + "sha256": "1qnlcfzaihwc6kxdr1h2mrhccnhlwsdqwmcygxi2s01q2ifq1nc1" }, "stable": { "version": [ @@ -38539,10 +39424,10 @@ }, { "ename": "go-add-tags", - "commit": "55d3b893bd68d3d2d86ecdbb4ed442edd256516a", - "sha256": "0nvas44rsvqzk2ay5bhzkbrnzql13vnxq9pk4lp4mvp86dda9qim", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "0syra7h9wixiq3g4ydamvzw2vc0852zcx5ij0rhw103hrvhrzcjd", "fetcher": "github", - "repo": "syohex/emacs-go-add-tags", + "repo": "emacsorphanage/go-add-tags", "unstable": { "version": [ 20161123, @@ -38580,8 +39465,8 @@ "deps": [ "auto-complete" ], - "commit": "939b4a677f2f843ea13d9dd90206d57111f0ceb9", - "sha256": "1yfw8y6czkqgxpyfdxwvkcrsmwbca7l0lr4jqmnpmm5m5rylcwr9" + "commit": "4acdcbdea79de6b3dee1c637eca5cbea0fdbe37c", + "sha256": "0i1hc089gb6a4mcgg56vn5l0q96wrlza2n08l4349s3dc2j559fb" }, "stable": { "version": [ @@ -38639,10 +39524,10 @@ }, { "ename": "go-direx", - "commit": "032c0c3cd04f36f1bc66bb7d9d789d354c620a09", - "sha256": "0dq5d7fsld4hww8fl68c18qp6fl3781dqqwd98cg68bihw2wwni7", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "0x9yrbbcwsc5kf88d1j75g02yndavgb4g4wwhy9ml58a6d6kq5y3", "fetcher": "github", - "repo": "syohex/emacs-go-direx", + "repo": "emacsorphanage/go-direx", "unstable": { "version": [ 20150316, @@ -38700,10 +39585,10 @@ }, { "ename": "go-eldoc", - "commit": "6ce1190db06cc214746215dd27648eded5fe5140", - "sha256": "1k115dirfqxdnb6hdzlw41xdy2dxp38g3vq5wlvslqggha7gzhkk", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "1x8qwmn8b2wc79dqqx89c3l1m9sj08hgdwh5lwrlp1l80vhfp3sr", "fetcher": "github", - "repo": "syohex/emacs-go-eldoc", + "repo": "emacsorphanage/go-eldoc", "unstable": { "version": [ 20170305, @@ -38825,8 +39710,8 @@ "cl-lib", "go-mode" ], - "commit": "85a20dac6cee1e4bcfff554a665bcb7cd21dc0d9", - "sha256": "09xivjss1vlpqyp8cbv6652sgy3rxp00ml7f76prx22cwfpq67db" + "commit": "734d5232455ffde088021ea5908849ac570e890f", + "sha256": "0228l3s3afmvm4cy3vwcpz3g2gkmyhqdq2kwwn1n5dsha8fzbdps" }, "stable": { "version": [ @@ -38868,10 +39753,10 @@ }, { "ename": "go-impl", - "commit": "aa1a0845cc1a6970018b397d13394aaa8147e5d0", - "sha256": "09frwpwc080rfpwkb63yv47dyj741lrpyrp65sq2bn4sf03xw0cx", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "1vi986ymza88cpjlxjz88na1w9dq4dr9d82vdbpav762vz828h9i", "fetcher": "github", - "repo": "syohex/emacs-go-impl", + "repo": "emacsorphanage/go-impl", "unstable": { "version": [ 20170125, @@ -38918,11 +39803,11 @@ "repo": "dominikh/go-mode.el", "unstable": { "version": [ - 20200309, - 303 + 20200425, + 1740 ], - "commit": "85a20dac6cee1e4bcfff554a665bcb7cd21dc0d9", - "sha256": "09xivjss1vlpqyp8cbv6652sgy3rxp00ml7f76prx22cwfpq67db" + "commit": "734d5232455ffde088021ea5908849ac570e890f", + "sha256": "0228l3s3afmvm4cy3vwcpz3g2gkmyhqdq2kwwn1n5dsha8fzbdps" }, "stable": { "version": [ @@ -39026,8 +39911,8 @@ "deps": [ "go-mode" ], - "commit": "85a20dac6cee1e4bcfff554a665bcb7cd21dc0d9", - "sha256": "09xivjss1vlpqyp8cbv6652sgy3rxp00ml7f76prx22cwfpq67db" + "commit": "734d5232455ffde088021ea5908849ac570e890f", + "sha256": "0228l3s3afmvm4cy3vwcpz3g2gkmyhqdq2kwwn1n5dsha8fzbdps" }, "stable": { "version": [ @@ -39152,17 +40037,26 @@ }, { "ename": "god-mode", - "commit": "2dff8dc08583048f9b7b4cb6d8f05a18dd4e8b42", - "sha256": "01xx2byjh6vlckaxamm2x2qzicd9qc8h6amyjg0bxz3932a4llaa", + "commit": "c4f8b0a0766bcff6b716b9e35da25c00b8a91abd", + "sha256": "0l8hdn227axan7ryx6z4fbk9nqsb50bmhwqxgy3g8g19vqhflhfr", "fetcher": "github", - "repo": "chrisdone/god-mode", + "repo": "emacsorphanage/god-mode", "unstable": { "version": [ - 20180117, - 1134 + 20200413, + 2144 ], - "commit": "344167ed9b4c212273dd056e7481cf1373b461d0", - "sha256": "0y7phh7amrdphv9dkf0304z2knyas745ir59ybngh1a55dfc2mf4" + "commit": "1eb6ef3a4f67a805c5d6deb1e3895b6c853707d7", + "sha256": "0kqw6w72prhxbqvxccbrc80q82yfif0y99nfgqd60rfk9mpl369k" + }, + "stable": { + "version": [ + 2, + 16, + 2 + ], + "commit": "1eb6ef3a4f67a805c5d6deb1e3895b6c853707d7", + "sha256": "0kqw6w72prhxbqvxccbrc80q82yfif0y99nfgqd60rfk9mpl369k" } }, { @@ -39238,11 +40132,11 @@ "repo": "jixiuf/golden-ratio-scroll-screen", "unstable": { "version": [ - 20170224, - 229 + 20200419, + 451 ], - "commit": "44e947194d3e5cbe0fd2f3c4886a4e6e1a0c0791", - "sha256": "1wd19jskpp9w0lrg0ky3hvnliq9l09kmxy59hdp06hsdmvr31jwv" + "commit": "1b6ff0e3e8822423335d3f7d88c1fcb4cf43ce42", + "sha256": "0kniznqdbaim9llf76zi0cbwpa21xcf07w970hrspffjpzkcadnv" } }, { @@ -39280,10 +40174,10 @@ }, { "ename": "gom-mode", - "commit": "0a1e5f505e048b36c12de36b23b779beeaefc45f", - "sha256": "07zr38gzqb3ds9mpf94c1vhl1rqd0cjh4g4j2bz86q16c0rnmp7m", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "0qwqvkdvxmwnijj60jvqzwvikw1avrg6i66cl74qbqqcqkhazbpz", "fetcher": "github", - "repo": "syohex/emacs-gom-mode", + "repo": "emacsorphanage/gom-mode", "unstable": { "version": [ 20131008, @@ -39293,6 +40187,24 @@ "sha256": "1anjzlg53kjdqfjcdahbxy8zk9hdha075c1f9nzrnnbbqvmirbbb" } }, + { + "ename": "gomacro-mode", + "commit": "ce33236843b8eb266769f588e8d8341b056ccf2c", + "sha256": "0gfx9z8cb3lakr1c6irjmcb7fv3val349vxibwlxjbmax689r5v5", + "fetcher": "github", + "repo": "storvik/gomacro-mode", + "unstable": { + "version": [ + 20200326, + 1103 + ], + "deps": [ + "go-mode" + ], + "commit": "3112e56d2d5e645a3e0fd877f3e810dbccbf989f", + "sha256": "1f3y46q7djr1riz7x26gc7a1gf9p8sfdrnlqyiwzmi9vkk6h8wdz" + } + }, { "ename": "google", "commit": "45237d37da807559498bb958184e05109f880070", @@ -39319,8 +40231,8 @@ 20180130, 1736 ], - "commit": "305ac8725a166ed42e3f5dd3f80d6de2cf840ef1", - "sha256": "05znbhy98pyc6r7dii8drw4p8vy6f5b3zk0hmlw8w73vcwia59ay" + "commit": "43f20c361143beba2e0f3f737597f2f1f8725160", + "sha256": "0md3y2vr113sdgyf5q692fzif10bl0is96ly2hfgh6z27awb76l6" } }, { @@ -39682,8 +40594,8 @@ "magit-popup", "s" ], - "commit": "5cc9f67181417bb4e7fa466e14e5daff0be2075f", - "sha256": "1l53m0kr0f9ng2723nmkncanvbcix2ccslqm2xrmqbl638h8pvkj" + "commit": "3decde69e9aa0bcc8a831e3f87acae26c2151c4a", + "sha256": "1zvnhcbqqiv8671x3zizrpm789ci8z74xb6qr2ik6h4z79agmri8" }, "stable": { "version": [ @@ -39918,8 +40830,8 @@ "s", "websocket" ], - "commit": "ffff850b77ebbab827538f6ebee872b2638586bc", - "sha256": "1kxcnivlbv7dl09y09j72368sycqs96hk5nf7vsnqlfrrbc0337a" + "commit": "709bf3124b6e130efcede8b38fc2fed38699e19b", + "sha256": "1lz74qqzznv5c6pnsnnp0x0k16q663pkqakvwpg69lavcg68ysxh" }, "stable": { "version": [ @@ -40329,20 +41241,20 @@ "repo": "seagle0128/grip-mode", "unstable": { "version": [ - 20200307, - 1433 + 20200312, + 1136 ], - "commit": "b6fb07217afc618f2dc1fb3569c85ae3ca9d921f", - "sha256": "0v90n2rpc1v7apwwlryg0v3avr708iwd092i4jw19sdv6bs6mwc2" + "commit": "9615c4774727a719d38313a679d70f2a2c6aca68", + "sha256": "01imyi1l33ng78m6c5g4pma5gy4j7jy7dwmqwsqgwbws08qdbwgr" }, "stable": { "version": [ 2, 2, - 0 + 1 ], - "commit": "25650c9412df8b57c6546ffecfa5a9f6c0c362c8", - "sha256": "06xjr34srrmbbxaml45y3f6cq1n1q6a0rfjd54zq30fwanplklqk" + "commit": "9615c4774727a719d38313a679d70f2a2c6aca68", + "sha256": "01imyi1l33ng78m6c5g4pma5gy4j7jy7dwmqwsqgwbws08qdbwgr" } }, { @@ -40606,6 +41518,30 @@ "sha256": "1nl2ji5wvmfzchxpnmsgxn4v2lybyymyyh99lw3riqg6gb0phl9l" } }, + { + "ename": "gtk-variant", + "commit": "12bcbebf4b604e29cee443825c56336f5249e088", + "sha256": "1dcj0k2j89yx7k0cqqinb4xnhl0i2yivlvrb87xbj89zbijss967", + "fetcher": "github", + "repo": "bepvte/gtk-variant.el", + "unstable": { + "version": [ + 20200416, + 2136 + ], + "commit": "4462a5ab071ec001734e92d1ac2e5fa9721b94bd", + "sha256": "0v2h846k9xv47am66nv4piqhvn74xijhp2bq84v3wpls4msvfk70" + }, + "stable": { + "version": [ + 1, + 0, + 4 + ], + "commit": "4462a5ab071ec001734e92d1ac2e5fa9721b94bd", + "sha256": "0v2h846k9xv47am66nv4piqhvn74xijhp2bq84v3wpls4msvfk70" + } + }, { "ename": "guess-language", "commit": "6e78cb707943fcaaba0414d7af2af717efce84d0", @@ -40614,14 +41550,14 @@ "repo": "tmalsburg/guess-language.el", "unstable": { "version": [ - 20200309, - 707 + 20200326, + 1725 ], "deps": [ "cl-lib" ], - "commit": "a0bacb4e3659db5808056e6235abc9f00570cecd", - "sha256": "13hqqfjwd69ycmn85rzjpr9qdjv6jvnx7dl555c934xwdlnw9c2d" + "commit": "f4ce91eba3c479d08fedf0a3ced6c1265a7838ca", + "sha256": "0z7agqi5sgjjidhmnrv7615737xk7p1s6pdhr6swjcr117dq44fm" } }, { @@ -40873,14 +41809,14 @@ "repo": "hhvm/hack-mode", "unstable": { "version": [ - 20191218, - 1628 + 20200421, + 157 ], "deps": [ "s" ], - "commit": "fd6a661b091490920804d043303596f9e60a5dd7", - "sha256": "1x4nymp53rdm1d0jjkz0mha4d8y8wzmakf65d56fn5mnziqh2l5d" + "commit": "330df61f7297344cff9cf9e2d802a4d041279de3", + "sha256": "00g9h96kb9d3qg544x9143hx4nc5crw67cq93ip4mrh3d86rkpc1" }, "stable": { "version": [ @@ -41324,11 +42260,11 @@ "repo": "haskell/haskell-mode", "unstable": { "version": [ - 20200221, - 1959 + 20200408, + 247 ], - "commit": "35363a98445e27dad532d134d3ce863f8d95dd91", - "sha256": "1m3mhvaj5b7vavv507x92mzhm7r4clqs1via8zsza4v3ccbsgjws" + "commit": "bbdbc0e9231f49a45ce787ebfb3f2b019615bf61", + "sha256": "0qln2zc4zx8w4ffplp6b17sksg578x61hyvwv1l79pc8bmpgn0ww" }, "stable": { "version": [ @@ -41596,11 +42532,11 @@ "repo": "purcell/emacs-hcl-mode", "unstable": { "version": [ - 20200225, - 2130 + 20200315, + 2129 ], - "commit": "6599520a350e01354300a962463ecbf5564db622", - "sha256": "18vs2cwa1pyly2kh2lapm10n8akam5fvsx8rvgp41lcwrdxs2323" + "commit": "c3d1158ad1a64f06aa8986ab1cdea6b7fbdd4bf7", + "sha256": "0qza5pgpzcabik3592dk25glsv9zcg84pn1jzm43f9b1j9w5iv4i" }, "stable": { "version": [ @@ -41658,30 +42594,30 @@ "repo": "emacs-helm/helm", "unstable": { "version": [ - 20200227, - 923 + 20200426, + 534 ], "deps": [ "async", "helm-core", "popup" ], - "commit": "fd429c68e7a73e9d398f7fe620ae16b7d6e3b0a7", - "sha256": "1l627nvmypx3j3qp5vkdh8vk56js2kb26na6w021np7j1wn3cjk9" + "commit": "3fddd8c425c918074a4bda9982ce90c29e45adbd", + "sha256": "1vhdiwvv2s9gw6mh4dr1blqlyy1k0cvm4wx833cwzgdg5iakan1f" }, "stable": { "version": [ 3, 6, - 0 + 1 ], "deps": [ "async", "helm-core", "popup" ], - "commit": "ac3c49be00df1efecc76ef0b33db2884039579b8", - "sha256": "0miq2q52pbicijp7pmj0widk252qixswywc03d120s4hya2b7vd7" + "commit": "55281e1390bae54310dc880ae3805e0595d5c1bd", + "sha256": "1sghq7xjd4a9ysh3cywd5rss9y47rwk82y86cwh1g7p0jv89gqaf" } }, { @@ -41705,10 +42641,10 @@ }, { "ename": "helm-ack", - "commit": "258d447778525c26c65a5819ba1edc00e2bb65e5", - "sha256": "1a8sc5gd2g57dl9g18wyydfmihy74yniwhjr27h7vxylnf2g3pni", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "124w7grwindyv86xfshfm70h0xfq29ns067pchk8dcbjbgh9yl7b", "fetcher": "github", - "repo": "syohex/emacs-helm-ack", + "repo": "emacsorphanage/helm-ack", "unstable": { "version": [ 20141030, @@ -41775,31 +42711,31 @@ }, { "ename": "helm-ag", - "commit": "81f0f525680fea98e804f39dbde1dada887e8821", - "sha256": "050qh5xqh8lwkgmz3jxm8gql5nd7bq8sp9q6mzm2z7367qy4qqyf", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "0jzfycbaz88r6scsiw74prcnbvilsaphljdys6i5k9g5rhn5sxh5", "fetcher": "github", - "repo": "syohex/emacs-helm-ag", + "repo": "emacsorphanage/helm-ag", "unstable": { "version": [ - 20170209, - 1545 + 20200426, + 1427 ], "deps": [ "helm" ], - "commit": "2fc02c4ead29bf0db06fd70740cc7c364cb650ac", - "sha256": "1gnn0byywbld6afcq1vp92cjvy4wlag9d1wgymnqn86c3b1bcf21" + "commit": "6387437acf687a64af66138649f8604d65eb6789", + "sha256": "177grx9flqg6d9vcl2ln7gflvh3r2in8va39sgd7a4vl6qn2w1lh" }, "stable": { "version": [ 0, - 58 + 59 ], "deps": [ "helm" ], - "commit": "39ed137823665fca2fa5b215f7c3e8701173f7b7", - "sha256": "0a6yls52pkqsaj6s5nsi70kzpvssdvb87bfnp8gp26q2y3syx4ni" + "commit": "79373d7f1616d175a5e0730e1e0c3855f04bd945", + "sha256": "0vsz2b5qw4qahlf74059z4p1grinhfz28f0psw4c3qf4jasv3b9j" } }, { @@ -41919,26 +42855,22 @@ }, { "ename": "helm-bibtex", - "commit": "f4118a7721435240cf8489daa4dd39369208855b", - "sha256": "037pqgyyb2grg88yfxx1r8yp4lrgz2fyzz9fbbp34l8s6vk3cp4z", + "commit": "873ae2af16e03c8e10494be3f0e7840eb27172a3", + "sha256": "0ciz4lczfv9b4n12jd9r5w81yj884pmi53xmm9cqzvrv3hh9n8hs", "fetcher": "github", "repo": "tmalsburg/helm-bibtex", "unstable": { "version": [ - 20191028, - 1313 + 20200415, + 1311 ], "deps": [ - "biblio", + "bibtex-completion", "cl-lib", - "dash", - "f", - "helm", - "parsebib", - "s" + "helm" ], - "commit": "d4471232be26793fbf56c0ac3690b5f537c378b9", - "sha256": "1bkzhic6qckb267025il1r3xcpz99kisphxiafni1pxvf9jafr0j" + "commit": "1e5b50652d1f5189cfeb6b5ce3c4437e0239d4f5", + "sha256": "05xl3x98w4cr81zp04dcqy5xnims8x3k77qxzddcqcrvi9zjlfc7" }, "stable": { "version": [ @@ -42091,6 +43023,37 @@ "sha256": "1yr5prp9xvd73balxbn4yn52zah2advq1186ba5aanj436pal0fh" } }, + { + "ename": "helm-bufler", + "commit": "4ba5657f237eea9073a46a4127be5795be07c687", + "sha256": "0wb1ds3acc36hl7798phbvhygfljjc6br11lf4y3043q8v0lz6gi", + "fetcher": "github", + "repo": "alphapapa/bufler.el", + "unstable": { + "version": [ + 20200409, + 1253 + ], + "deps": [ + "bufler", + "helm" + ], + "commit": "b2b260e4f9e8ba76bb8b4d71344c7b75e05ac44f", + "sha256": "0ww7z2xz185i97wa1rnmqwlx2mvwx69hhlyi5m3sm0nkyckb2hjs" + }, + "stable": { + "version": [ + 0, + 2 + ], + "deps": [ + "bufler", + "helm" + ], + "commit": "d6c79f04b7d288174d8294fb30488b567586364d", + "sha256": "0l35ssjry15wqcxnr8rf5lrv856pgnm0k2d4d6ag14ypjx9nfhw3" + } + }, { "ename": "helm-bundle-show", "commit": "2f10f7387cca102696c38af1d8dc0fe5da5e366f", @@ -42513,26 +43476,26 @@ "repo": "emacs-helm/helm", "unstable": { "version": [ - 20200306, - 1417 + 20200424, + 607 ], "deps": [ "async" ], - "commit": "fd429c68e7a73e9d398f7fe620ae16b7d6e3b0a7", - "sha256": "1l627nvmypx3j3qp5vkdh8vk56js2kb26na6w021np7j1wn3cjk9" + "commit": "3fddd8c425c918074a4bda9982ce90c29e45adbd", + "sha256": "1vhdiwvv2s9gw6mh4dr1blqlyy1k0cvm4wx833cwzgdg5iakan1f" }, "stable": { "version": [ 3, 6, - 0 + 1 ], "deps": [ "async" ], - "commit": "ac3c49be00df1efecc76ef0b33db2884039579b8", - "sha256": "0miq2q52pbicijp7pmj0widk252qixswywc03d120s4hya2b7vd7" + "commit": "55281e1390bae54310dc880ae3805e0595d5c1bd", + "sha256": "1sghq7xjd4a9ysh3cywd5rss9y47rwk82y86cwh1g7p0jv89gqaf" } }, { @@ -42696,14 +43659,14 @@ "repo": "emacs-helm/helm-dictionary", "unstable": { "version": [ - 20191110, - 2202 + 20200406, + 1632 ], "deps": [ "helm" ], - "commit": "6a21ac1ba424ffa87b3b3e1b53d0fdd529844a28", - "sha256": "1qpcly4v7yf6ncp951gl1c18riln86xgyasf66n56qj26mfq8bhq" + "commit": "1dfec049c7851754a5967329a60e9e9a9f805423", + "sha256": "042rn38myq8b2024mdpisakmqysp34mmhvbdnw433vl9qxw6pikd" } }, { @@ -42853,16 +43816,16 @@ "repo": "emacs-helm/helm-emms", "unstable": { "version": [ - 20191111, - 1954 + 20200322, + 1309 ], "deps": [ "cl-lib", "emms", "helm" ], - "commit": "f0bf6b307f9747ba16b3f582e8364a5012e41465", - "sha256": "0wldy81xyb96kg1pz6l2i463pi83qz84m1rmiff7866w9rl1fifd" + "commit": "37e5aa029abfa5a5c48636314de8157142944fa2", + "sha256": "0r1ai6xhzayyik30w2sx9n62bxxwm12vfmjspv0daqif9az8y3vg" }, "stable": { "version": [ @@ -43040,15 +44003,28 @@ "repo": "emacs-helm/helm-exwm", "unstable": { "version": [ - 20180827, - 837 + 20200325, + 1022 ], "deps": [ "exwm", "helm" ], - "commit": "e21c6ffabadd2fe8d6c7805b6027cc59a6f914e9", - "sha256": "11fyqk3h9cqynifc2zzqn0czrcj082wkdg1qhbj97nl4gcj787rl" + "commit": "00ddb4d2a127087a0b99f0a440562bd54408572d", + "sha256": "0g4k01ps14bp2az8v6dcag9llg045k2b4kdis81xx4lvw76znr9v" + }, + "stable": { + "version": [ + 0, + 0, + 2 + ], + "deps": [ + "exwm", + "helm" + ], + "commit": "00ddb4d2a127087a0b99f0a440562bd54408572d", + "sha256": "0g4k01ps14bp2az8v6dcag9llg045k2b4kdis81xx4lvw76znr9v" } }, { @@ -43692,20 +44668,20 @@ }, { "ename": "helm-gtags", - "commit": "81f0f525680fea98e804f39dbde1dada887e8821", - "sha256": "1kbpfqhhbxmp3f70h91x2fws9mhx87zx4nzjjl29lpl93vf8xckl", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "0qcn6hmm26irlljcq93c6ap0k1kihdakr2jpgzvdbm8km2cxrm47", "fetcher": "github", - "repo": "syohex/emacs-helm-gtags", + "repo": "emacsorphanage/helm-gtags", "unstable": { "version": [ - 20170116, - 529 + 20200409, + 1559 ], "deps": [ "helm" ], - "commit": "108e93d0d099ebb7b98847388f368311cf177033", - "sha256": "0hfshcnzrrvf08yw4xz5c93g9pw6bvjp2bmv0s6acrsjqgwhx158" + "commit": "25b81d7774622911c1e95d9020209ae4ace1542b", + "sha256": "14k0yrf8p015gsgdgq8ykvrjjhd1brq2gsfx7m3jv0p789yxw7zk" }, "stable": { "version": [ @@ -43896,10 +44872,10 @@ }, { "ename": "helm-ispell", - "commit": "edc42b26027dcd7daf0d6f2bd19ca4736fc12d6d", - "sha256": "0qyj6whgb2p0v231wn6pvx4awvl1wxppppqqbx5255j8r1f3l1b0", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "14slvcjyqd1ryymh63an7r2z1882dybwpq73bb50xkwrk7rs0389", "fetcher": "github", - "repo": "syohex/emacs-helm-ispell", + "repo": "emacsorphanage/helm-ispell", "unstable": { "version": [ 20151231, @@ -44070,8 +45046,8 @@ "helm", "lean-mode" ], - "commit": "c9dffcda2951c22c483d1d22411d13bc132ce609", - "sha256": "1lj6j21hzya41fmlnw7faqmhvsdcgcidwibyvicgsb0gm6qqipjf" + "commit": "65b55b1711fb61129312044d5ac7e6a2c2ee245c", + "sha256": "1zmw8950qhry2ixk2ng0pg4j0vwx11nvjlrpab9jg6x47ys9j65n" } }, { @@ -44217,16 +45193,16 @@ "repo": "emacs-lsp/helm-lsp", "unstable": { "version": [ - 20200103, - 1659 + 20200420, + 1546 ], "deps": [ "dash", "helm", "lsp-mode" ], - "commit": "6f62659cc528b7e37ffcc8fb356633acd7031be8", - "sha256": "1gf3pzrcxrymlj677mghxf4yrqiqa90y3ip1g1f1h186wnwa2vcg" + "commit": "db243993ea70be6343949759b4f2c556d9130751", + "sha256": "0yaik74g61iyrg9inarl7s9r6vnj75q5vxzxc5bkl224w49hf5bh" } }, { @@ -44237,16 +45213,30 @@ "repo": "montag451/helm-lxc", "unstable": { "version": [ - 20190116, - 2050 + 20200323, + 816 ], "deps": [ "cl-lib", "helm", "lxc-tramp" ], - "commit": "a4e17dda329ec39a3dac5751ddcef1145b3d91c1", - "sha256": "1z6d752682b21ydp7s5a9jkhjqw7nbascv21qcs9418ydisl8q8d" + "commit": "37fe2d7ed97967edf59a3b68b1434910516ae24f", + "sha256": "1xnkwmdcdjfvslahhslw2xnlcym9fvb3m8384c455bas6s180qxh" + }, + "stable": { + "version": [ + 0, + 2, + 0 + ], + "deps": [ + "cl-lib", + "helm", + "lxc-tramp" + ], + "commit": "02812daf09d5ffb02abef7a8e0fa1f7b7c472d67", + "sha256": "14x69laf6mfz766w6lrzj5a430jr0lrilk60ywc6i1wlpcs2v10v" } }, { @@ -44399,16 +45389,17 @@ "repo": "emacs-helm/helm-navi", "unstable": { "version": [ - 20181226, - 29 + 20200401, + 904 ], "deps": [ "helm", + "helm-org", "navi-mode", "s" ], - "commit": "3b9abcc39ce7c657bc2dcc054b850dc2a7cf0448", - "sha256": "1kxv8qx7s51fnzrslwqrgayqvyq30ycnb84p5qy7jf0rf69hxxjh" + "commit": "9bba79119edd8959d26484326c2f6868b7d942c0", + "sha256": "136shiqwr7k95gqywrlqqykx1pgpvyjbfzggwj7q1akqjslxfffn" } }, { @@ -44476,10 +45467,10 @@ }, { "ename": "helm-open-github", - "commit": "81f0f525680fea98e804f39dbde1dada887e8821", - "sha256": "1wqlwg21s9pjgcrwr8kdrppinmjn235nadkp4003g0md1d64zxpx", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "1lqjaprgybs4svnrgxvnbbzrkibgkf1zvhbg4ipiljz7h1byzqs7", "fetcher": "github", - "repo": "syohex/emacs-helm-open-github", + "repo": "emacsorphanage/helm-open-github", "unstable": { "version": [ 20170220, @@ -44534,6 +45525,42 @@ "sha256": "0j3xz59hl84asv332fk94j5c06w3ix6b14zrkhxr8vb5ci1b2b1k" } }, + { + "ename": "helm-org-multi-wiki", + "commit": "536cf8f9a0b16e6e9bda30de67d0da44bb1b5877", + "sha256": "0wk08m6y2rvjbj28h3hqf9w3cgx0ykiv8z6f6kqjfpik8fl2bzbj", + "fetcher": "github", + "repo": "akirak/org-multi-wiki", + "unstable": { + "version": [ + 20200419, + 1833 + ], + "deps": [ + "dash", + "helm", + "helm-org", + "org-multi-wiki", + "org-ql" + ], + "commit": "aef5975ac18d7cb101c0fb688333cc241782a8a0", + "sha256": "1m3p839wkrvf7n2467czj03rljv43bk32p7vlzdp5zby22bn7nag" + }, + "stable": { + "version": [ + 0, + 4, + 0 + ], + "deps": [ + "dash", + "org-multi-wiki", + "org-ql" + ], + "commit": "80791ea872939df0578dc3a2992a2f7fd5618971", + "sha256": "0avg5xwnb3c9ylj9dqdcqmh8kykl98jsr6cl3rrivkj7l47i1rl0" + } + }, { "ename": "helm-org-rifle", "commit": "f39cc94dde5aaf0d6cfea5c98dd52cdb0bcb1615", @@ -44684,21 +45711,21 @@ }, { "ename": "helm-perldoc", - "commit": "81f0f525680fea98e804f39dbde1dada887e8821", - "sha256": "1qx0g81qcqanjiz5fxysagjhsxaj31g6nsi2hhdgq4x4nqrlmrhb", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "1xl075bg35lc48zxnwbvyr7dqcz8cxk3v87i9v506kqwfmfpiz95", "fetcher": "github", - "repo": "syohex/emacs-helm-perldoc", + "repo": "emacsorphanage/helm-perldoc", "unstable": { "version": [ - 20160918, - 556 + 20200315, + 1716 ], "deps": [ "deferred", "helm-core" ], - "commit": "1979f9f67814c11ec9498502237c89a5e1153100", - "sha256": "0fvjw8sqnwnjx978y7fghvgp5dznx31hx0pjp4iih01xa1hcwbnc" + "commit": "6f3526f07f3df3059dbde779f8e681f5f1fee6ea", + "sha256": "1g7f2vdvzh9qhk8lviii86w7cb06a60kz6gvv8gnbqx88mndqclq" }, "stable": { "version": [ @@ -44962,10 +45989,10 @@ }, { "ename": "helm-pydoc", - "commit": "81f0f525680fea98e804f39dbde1dada887e8821", - "sha256": "1sh7gqqiwk85kx89l1sihlkb8ff1g9n460nwj1y1bsrpfl6if4j7", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "0a2vn7xgvcil8vp40jiljff83hwb2ysb240amd8darxbfxz1j9mi", "fetcher": "github", - "repo": "syohex/emacs-helm-pydoc", + "repo": "emacsorphanage/helm-pydoc", "unstable": { "version": [ 20160918, @@ -45191,10 +46218,10 @@ }, { "ename": "helm-robe", - "commit": "e7018f57f6f0e4bd71e172ae23c050b44276581b", - "sha256": "1gi4nkm9xvnxv0frmhiiw8dkmnmhfpr9n0b6jpidlvr8xr4s5kyw", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "143azbrj32mk0xv0i7wpvwcj4lqvphbjj3rbcpwnx76rywi3iqp7", "fetcher": "github", - "repo": "syohex/emacs-helm-robe", + "repo": "emacsorphanage/helm-robe", "unstable": { "version": [ 20151209, @@ -45253,8 +46280,8 @@ "helm", "rtags" ], - "commit": "d370c09007d299dc6b6aae719bf728b95dd426c5", - "sha256": "0hakpd1dwhn2nkfhx4hli0l7hf3p1g8vpyrrczq45smfsz73d96x" + "commit": "a42298e80dffae9a6b2e9816506174542f3cbbb7", + "sha256": "1674752bbyb7890na5p846dxcvh83zn0a6z19wras1x5c59s24i3" }, "stable": { "version": [ @@ -45622,14 +46649,14 @@ "repo": "emacsorphanage/helm-swoop", "unstable": { "version": [ - 20200121, - 1859 + 20200321, + 231 ], "deps": [ "helm" ], - "commit": "9324d8c196ab2a86fde7142f159e081b87a4d277", - "sha256": "1nznfrnzfbxa5qlwbddjma96k93f9hr7jv9sqx3krc0i1061nbg8" + "commit": "069dc0b3970f1e796e34b7789ae51b1b7979ee30", + "sha256": "1jf1573r8v4mda1xiszrz51qarb1ii31cyk0v3ci16bi9dpp8swb" }, "stable": { "version": [ @@ -45745,20 +46772,20 @@ }, { "ename": "helm-themes", - "commit": "81f0f525680fea98e804f39dbde1dada887e8821", - "sha256": "0r7kyd0i0spwi7xkjrpm2kyphrsl3hqm5pw96nd3ia0jiwp8550j", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "15qs23f467j99wybjd0n6dacgik5ibf96jn00j9fip55v8rp66gj", "fetcher": "github", - "repo": "syohex/emacs-helm-themes", + "repo": "emacsorphanage/helm-themes", "unstable": { "version": [ - 20160918, - 545 + 20200323, + 712 ], "deps": [ "helm-core" ], - "commit": "1160af42590b0d845a55e65e1e782d9e4027fd6e", - "sha256": "0856h8rnbgrxp3v3jpfmwq7kcdm1ymd4gcfvh0h27mk05113vz53" + "commit": "244121903650c2d25a233d12b378060cf8b010e7", + "sha256": "0ii70wn3vadx8a36q2frmsvrmlpz1w58qgn2w3knjivj195knliw" }, "stable": { "version": [ @@ -46120,25 +47147,26 @@ "repo": "jjzmajic/hercules.el", "unstable": { "version": [ - 20190929, - 637 + 20200420, + 747 ], "deps": [ "which-key" ], - "commit": "031f8eec95240fc46481061f0f44822c0f7fe65e", - "sha256": "0snfmvri4cpmhrk5s4hxxlyzs3d58ysmqzaiyiz4979admdc1lmb" + "commit": "557da39878d0637395fdded91243b340c37eff7b", + "sha256": "1rp37rhkj8jm07dwr74vc68dhrbvyvrxjdavpb0h073ps9vl9dsc" }, "stable": { "version": [ 0, - 3 + 3, + 1 ], "deps": [ "which-key" ], - "commit": "031f8eec95240fc46481061f0f44822c0f7fe65e", - "sha256": "0snfmvri4cpmhrk5s4hxxlyzs3d58ysmqzaiyiz4979admdc1lmb" + "commit": "557da39878d0637395fdded91243b340c37eff7b", + "sha256": "1rp37rhkj8jm07dwr74vc68dhrbvyvrxjdavpb0h073ps9vl9dsc" } }, { @@ -46179,11 +47207,11 @@ "repo": "kuanyui/hexo.el", "unstable": { "version": [ - 20180815, - 219 + 20200416, + 1410 ], - "commit": "6bca18f911f6b2cd5c055ed73ddec98c385f9f86", - "sha256": "1zawz3nry832rhx80hyfqfs0gfw3hyrn96060zj3n75avx13rr8j" + "commit": "d600b6c2d51959f1331c8abf3953365544322afa", + "sha256": "07w6jlq3z5y019n5kplqn38gw60ffk2yx4vchp6qgif98lhcjiyr" } }, { @@ -46328,6 +47356,21 @@ "sha256": "0dfzjgxfkcw4wisbyldsm1km18pfp9j8xgadn6qnsz11l55bpgyp" } }, + { + "ename": "hidepw", + "commit": "f2ee7663bcedaffa935b8379cc77168035cb1f14", + "sha256": "0qnvlcjldg1mcb5ilcy538sbf294glrx5g1a7vbmspdm3wby7lna", + "fetcher": "github", + "repo": "jekor/hidepw", + "unstable": { + "version": [ + 20200326, + 112 + ], + "commit": "73f099da79d73fe4087472df3469d8b9b20a59f2", + "sha256": "1lcm5nfpcrvy3700g1zzi89j59n0508xvk3v66x9px5aq6a8xk2j" + } + }, { "ename": "hideshow-org", "commit": "3de48eee24a5cca9c8b7dba2d6d01dfbc679d8d6", @@ -46506,11 +47549,11 @@ "repo": "DarthFennec/highlight-indent-guides", "unstable": { "version": [ - 20190108, - 3 + 20200412, + 2328 ], - "commit": "0b10f38c54ffc099861ce8463e16a1b07ddbb203", - "sha256": "0fa41y9gdci60417zksj9bgjx1knwh781i3dfphkgr7qbx25iky7" + "commit": "1b12c7b440ff988c7237936187c1375ac4ddc7f4", + "sha256": "03dpwklrwbkminfds8v129w0i47p5mkwdyhlhv05a22xnmlanyrs" } }, { @@ -46584,16 +47627,16 @@ }, { "ename": "highlight-operators", - "commit": "e7bd74b7a3484e437c6db4f18613744ebae030f5", - "sha256": "00agrwp2i3mkacnp4qhqcnpwn5qlbj9qv97zrw7a7ldqga0vwvhn", - "fetcher": "bitbucket", + "commit": "caca0b2bc2aaac563074cbb4ea4296fce749e203", + "sha256": "1l0ci20r0qm4lc9chvvwxgyi3vg41n3ccj0csfgzilzicsvjs9ic", + "fetcher": "github", "repo": "jpkotta/highlight-operators", "unstable": { "version": [ 20170213, 2220 ], - "commit": "3938e88e78c592936fc8fc6eabbfaf7205a967c8", + "commit": "7696b43419505d6e3511ad2781f9f1dd3c55ef8c", "sha256": "1h5whrc1iphzq0g8x9mmkhjkbmbdg9i9bvr1y8zrwrs8za8k127y" } }, @@ -46968,11 +48011,11 @@ "repo": "ideasman42/emacs-hl-block-mode", "unstable": { "version": [ - 20200118, - 310 + 20200404, + 702 ], - "commit": "6a8f871d7aa5d0d58b7c6ede281f8f8965124c9e", - "sha256": "1jdqz3cfncka4rdqxa4qg7f8dhkwx2h9s16gd3xqjwh8xrpf9qnd" + "commit": "6dc75e71b0b179d7c087cf7de51823f5810d671a", + "sha256": "142nrxq72dkl45lq93c076nl2ifdl6vdgiydpcs4lwg0crja8qzl" } }, { @@ -46983,14 +48026,14 @@ "repo": "laishulu/hl-fill-column", "unstable": { "version": [ - 20190608, - 203 + 20200404, + 306 ], "deps": [ "names" ], - "commit": "612441e69772c24f9ce67ae73e47c84f29ee653d", - "sha256": "0b7770prp5sj4yinrdgzvblqky05vm245i40d38frcbghwqr2jl4" + "commit": "43cb3c35a92c912b7205b8a36f1ad0ec0a5b4a22", + "sha256": "0pf1hk21xbahccw1cdz95haqvhrf50cwg32qa36v9nammd37752z" } }, { @@ -47136,16 +48179,16 @@ "repo": "thanhvg/emacs-hnreader", "unstable": { "version": [ - 20190909, - 258 + 20200321, + 1900 ], "deps": [ "org", "promise", "request" ], - "commit": "7e68beff596a7c67ff436be5cc29660acd46f5df", - "sha256": "0yynfz8bw7nvzk05zxypn183y6hf243s55kxfiicnxx7shag217i" + "commit": "5dd287e932e2398aab0f34cb23b99457b81ac370", + "sha256": "0ynq9dg00frk1sriraglzsszxpx51mpfdkbd1iqdz648rlhzyp3m" } }, { @@ -47378,20 +48421,20 @@ "repo": "ericdallo/hover.el", "unstable": { "version": [ - 20200309, - 1550 + 20200321, + 1819 ], - "commit": "5d94d07b0213b45fc3b2d57362fd9bcb86a2fbe8", - "sha256": "1fkzlp92lqkwnld3hnfk3qywy7ssyfy03vjxxrisryhnyam9r87d" + "commit": "6f9ed1a6517e3a43ef2deafc2f86c70b2abce008", + "sha256": "06vhxmvd57hf8kc21ncv6is9h70syjbzqwfcl3xf5zwcpc8vn13s" }, "stable": { "version": [ 1, - 0, + 1, 3 ], - "commit": "5d94d07b0213b45fc3b2d57362fd9bcb86a2fbe8", - "sha256": "1fkzlp92lqkwnld3hnfk3qywy7ssyfy03vjxxrisryhnyam9r87d" + "commit": "6f9ed1a6517e3a43ef2deafc2f86c70b2abce008", + "sha256": "06vhxmvd57hf8kc21ncv6is9h70syjbzqwfcl3xf5zwcpc8vn13s" } }, { @@ -47425,8 +48468,8 @@ "promise", "request" ], - "commit": "8bfaffeff945bcfbc1e2b2cfb65e8452a7a34717", - "sha256": "05k7ar832bbzvjicri4v5dyivdrypgkqgninf72izykl89v8yzgx" + "commit": "ef7f42c14f0f4aec475b74d56931daa36aded6c8", + "sha256": "1a1wr86z5368zwvlgyp979x1ypz38m2w2qnp5607vjjplcrcmay2" } }, { @@ -47777,11 +48820,11 @@ "repo": "humanoid-colors/emacs-humanoid-themes", "unstable": { "version": [ - 20200310, - 940 + 20200403, + 1939 ], - "commit": "57d7db70904faeeba9ccd0151e4ebf889403a40d", - "sha256": "0vxfq6gycgkfypyk91mwf2jg1mkldxpkd2v39j2nmlgbbw1ldaka" + "commit": "22c9a0987c7d746d7eb9fe850f93f232d91cae14", + "sha256": "1h3v76p17mzigwr0kpjlm5fgas4vvrm59g73l1699pnq1n1i5kgx" } }, { @@ -48218,6 +49261,21 @@ "sha256": "1mgn7b786j4hwq1ks012hxxgvrfn5rz90adi2j190gmjz60rc5g5" } }, + { + "ename": "icomplete-vertical", + "commit": "1a952162da476b4a0f496d9dc15d2d7a8d0964f6", + "sha256": "10rbsxp3jp8xyzcklpcc2zs0sv4pvvkqb7i96js9cp13nc9a7rgz", + "fetcher": "github", + "repo": "oantolin/icomplete-vertical", + "unstable": { + "version": [ + 20200417, + 1755 + ], + "commit": "a2ee9254085431ec9e5c88d522e2c700355003ef", + "sha256": "1bqnlvv1gvrjriazvzd3bq98r8ii6fqax0zznhvkl1ij5pf55a90" + } + }, { "ename": "icsql", "commit": "bf2a7e6572418d2f252d63068edd82c21eab874e", @@ -48494,8 +49552,8 @@ "deps": [ "dash" ], - "commit": "a142ff1c33df23ed9665497d0dcae2943b3c706a", - "sha256": "0967709jyp9s04i6gi90axgqzhz03cdf1j1w39yrkds6q1b6v7jw" + "commit": "a814e25cb272401bdfee94cb98d915119d307414", + "sha256": "040mpwwldivyapmj0pjxsk8drgi113k7rpx8ym4jqz1hah5n33s1" }, "stable": { "version": [ @@ -48680,8 +49738,8 @@ "deps": [ "dash" ], - "commit": "522af5d55b3d4cd6885f3b4100913566c202cec4", - "sha256": "0yh8px5ffx4pjmy97v1z9nwxb3qgzc5pdaj9nn6lsdxv9z7w5p3v" + "commit": "6a0bfeaca2e334b47b4f38ab80d63f53535b189e", + "sha256": "0q4w0akmnwk42ldbzqxbr7swz026q8wr1g27bl4i4k25bidqlx9q" }, "stable": { "version": [ @@ -48890,11 +49948,11 @@ "repo": "victorhge/iedit", "unstable": { "version": [ - 20190419, - 803 + 20200412, + 756 ], - "commit": "e2c100cdd67b7d82835d281ac2cd1bf4f374bc8f", - "sha256": "0wr3w2id95wx2rma8n1ifjrv9rx37ly26ijc5zi58id0yrip3hnc" + "commit": "0fb3d380866664c3ab543acede606d343c257406", + "sha256": "0fz3p41j6d6bwk95v626j7w1z4rvbdxms6a4azy9dfncplnbnih0" }, "stable": { "version": [ @@ -49269,16 +50327,16 @@ }, { "ename": "immortal-scratch", - "commit": "1f9f4a59d88106ddfee740653abd28e305f6dfe0", - "sha256": "0rxhaqivvjij59hhv3mh4wwrc0bl0xv144j1i237xhlvhxk6nnn6", - "fetcher": "bitbucket", + "commit": "caca0b2bc2aaac563074cbb4ea4296fce749e203", + "sha256": "00g68abnssf9xw233zs09jyjqbm0720isamc97rfr95d7wvrb2cr", + "fetcher": "github", "repo": "jpkotta/immortal-scratch", "unstable": { "version": [ 20160517, 2118 ], - "commit": "b354aba33d91a16a1878c87a931564505f6a0ee1", + "commit": "faeab0ad6c33c74c0cbd1dfcebffaa0690de40c6", "sha256": "1mx9f8pwnbrm6q9ngdyv64aqkw1izj83m0mf7zqlpww7yfhv1q9b" } }, @@ -49314,16 +50372,15 @@ "repo": "skeeto/impatient-mode", "unstable": { "version": [ - 20181002, - 1231 + 20200327, + 1619 ], "deps": [ - "cl-lib", "htmlize", "simple-httpd" ], - "commit": "96f6a05f8de74e19d570217fe83f0734623ddb0c", - "sha256": "1qddy3b3fmxgkpl10p0hvmgrzhkrxyxg72sxxg5ndfwvjpf2rf91" + "commit": "fc84f4a333d47ca853842570cf35e659753a3ebe", + "sha256": "14zycqky7xkmbfacmfdqbmq1qs3sj2r41nfmg09dv0hl97pavir8" }, "stable": { "version": [ @@ -49371,10 +50428,10 @@ }, { "ename": "import-popwin", - "commit": "a6f0629515f36e2e98839a6894ca8c0f58862dc2", - "sha256": "0vkw6y09m68bvvn1wzah4gzm69z099xnqhn359xfns2ljm74bvgy", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "0ax0s2jkfmjlnvj741n58m52srppzcn58l4vqq5gvmqj3dbh9rhd", "fetcher": "github", - "repo": "syohex/emacs-import-popwin", + "repo": "emacsorphanage/import-popwin", "unstable": { "version": [ 20170218, @@ -49462,8 +50519,8 @@ 20200128, 1052 ], - "commit": "2976e6d9679f3578196ed7c104b4054f4a713b7e", - "sha256": "0ggnlvarpy49cp98970jla34khknj7xlkkg4r74hrywa9kk7j0hk" + "commit": "9548f14e7f0f7220d6cd1b8e88756b89fc57c471", + "sha256": "1hmrg1pyzcldqh858j3zpb6y0ap4x6142m56pas0lyh65d2wzggk" }, "stable": { "version": [ @@ -49622,26 +50679,26 @@ "repo": "clojure-emacs/inf-clojure", "unstable": { "version": [ - 20200118, - 1533 + 20200425, + 1648 ], "deps": [ "clojure-mode" ], - "commit": "49390d9dfde1d6354629b7662edd0ee422477f4a", - "sha256": "1jhh4ablxmwy4diai6jhki5ifiw1d0fcza7l9gy8iqqnd1yc2m25" + "commit": "f29861204ddbb032b425c7d693e8c006b7b027c6", + "sha256": "127kl64hqdy04qdbqr1xfzky3d8fzgbmp7z4hv6mjsc0p4s19azw" }, "stable": { "version": [ 2, - 1, + 2, 0 ], "deps": [ "clojure-mode" ], - "commit": "247ca70f8ba5104be292aea20fbde6adb37e359f", - "sha256": "11hyva006bc4hbhzjwb4brilm6fb7qfm5h66nl0gmmyva40y6412" + "commit": "ff72d667c2709166d19ac15a36f7aac3423cefa1", + "sha256": "07l8wkm0j6y2cj7bbb24x4rkjgf4q6ag0c1kcjs0sfmf1kaf14bk" } }, { @@ -49697,11 +50754,11 @@ "repo": "nonsequitur/inf-ruby", "unstable": { "version": [ - 20200303, - 1736 + 20200327, + 1418 ], - "commit": "e4ae089218bda49eb87beb2ca3593260e2fa3748", - "sha256": "1a3r1piljsrn2sbzkqjl6ffgygx6xjh6c7a7p85br84kq2ca4mfq" + "commit": "41e5ed3a886fca56990486f1987bb3bae0dbd54b", + "sha256": "12qgd2p664rh0ks5kq6sxaqi5nlmxrzj5p0kpqrx40caicj6jfpl" }, "stable": { "version": [ @@ -49767,9 +50824,9 @@ }, { "ename": "info-buffer", - "commit": "3c44a1d69725b687444329d8af43c9799112b407", - "sha256": "1vkgkwgwym0j5xip7mai11anlpa2h7vd5m9i1xga1b23hcs9r1w4", - "fetcher": "github", + "commit": "6a7caa8c4fea7ef2211f01bc8340c660a6e6c5f3", + "sha256": "1si3sz34bmzcnqm4bc6nq7q2rmsyksh0610bn0r9frf12vakg28p", + "fetcher": "gitlab", "repo": "llvilanova/info-buffer", "unstable": { "version": [ @@ -49822,11 +50879,11 @@ "repo": "oitofelix/info-rename-buffer", "unstable": { "version": [ - 20191005, - 2346 + 20200328, + 1450 ], - "commit": "c983ae687481f39b8fd0d4ee9d85fd82b6a4ba03", - "sha256": "068flcy4rdzwjpzqqlxpcpcqjxd5f11xq00g55ph17vzxf4iwk3c" + "commit": "87fb263b18717538fd04878e3358e1e720415db8", + "sha256": "07ylrbl9i2d09nspj481hkgcq9vs4ikvl86sfj7594zzdyy6b8qx" } }, { @@ -49899,20 +50956,20 @@ "repo": "zonuexe/init-open-recentf.el", "unstable": { "version": [ - 20161206, - 1445 + 20200321, + 737 ], - "commit": "7d8fb124806291f7f6ef2ec3a664ea25899b6d68", - "sha256": "0vswa7304s7m6cirbaky9rmrxjb2aylvif2vg2p6l274k37c4jyh" + "commit": "369304d6adb6875948c4534419c4f303ac23c4f6", + "sha256": "1i41xcjj0kdhn7m29jb5gq2j2cyxn424y4lwx6s3fjj1ckx808ii" }, "stable": { "version": [ 0, - 0, - 3 + 2, + 1 ], - "commit": "a4f5338a14302d44fa5aebb1ddc7aff3dc9abbe3", - "sha256": "0iph5cpz2dva1rnvp5xynmkndny87z308pziadk1qgf05mc0i61d" + "commit": "369304d6adb6875948c4534419c4f303ac23c4f6", + "sha256": "1i41xcjj0kdhn7m29jb5gq2j2cyxn424y4lwx6s3fjj1ckx808ii" } }, { @@ -49964,8 +51021,8 @@ 20191218, 2038 ], - "commit": "ed488fcbc8c015121a4b1acd8d08db229fd6735a", - "sha256": "14y87fvav10wjc88bbi1pwy8lxnqcdk4cahwhd9cg5bhsqwhm32m" + "commit": "8b648afaaab5eaddb7afcd602b8a76cbfb12412b", + "sha256": "0zfv4cnj11i7lagfyqmy4ch01szj450458yqffjn84hfikbf4q78" } }, { @@ -50038,11 +51095,11 @@ "url": "https://git.sr.ht/~zge/kaomoji", "unstable": { "version": [ - 20200102, - 1942 + 20200325, + 2248 ], - "commit": "0c52e1266e61131ca0c8bd0f2092aad7b6d44ed9", - "sha256": "01sqc1cg89flxzhav9bgr733840xgqxy1i4sphfhd96c05yj287z" + "commit": "b943fe73327acc08dcd431eb8168a01609b9ab76", + "sha256": "13fk3b80gmgmr0d5296csvjfyjdq1jdxy3iahaj5mbhb9m3ganpc" }, "stable": { "version": [ @@ -50065,8 +51122,8 @@ 20180403, 1214 ], - "commit": "7bfea92ba1dae9d13d442e2f84f9fb6c05a0a9bd", - "sha256": "01f2p58qsny7p9l6vrra0i2m2g1k05p39m0bzi906zm5awx7l0rr" + "commit": "af5f95ff98e2432837f5aa848ba38dd626e82fce", + "sha256": "0rdh4bzwq60m641r41kbsgzpkx8hxl7vx82y1cf7zp8zk8la4pd8" }, "stable": { "version": [ @@ -50334,11 +51391,14 @@ "repo": "thierryvolpiatto/ioccur", "unstable": { "version": [ - 20130822, - 548 + 20200326, + 1341 ], - "commit": "4c0ef992a6fcd2aed62e3866d56650463108ab5a", - "sha256": "1rz5wf19lg1lnm0h73ynhb0vl3c99k7vpipay2f8jls24pv60bra" + "deps": [ + "cl-lib" + ], + "commit": "59350b2066d61444f93c8a51b16353e746486e4c", + "sha256": "1055db76008a5nkb243ciq680fg4nn5yzkdv4x8sd1mq1hrs33qh" } }, { @@ -50815,11 +51875,11 @@ "repo": "abo-abo/swiper", "unstable": { "version": [ - 20200311, - 1144 + 20200425, + 1938 ], - "commit": "5f1d9ce04599c52818244c2cb8cb066a601610b8", - "sha256": "1gsyf210jq4ij5r47k5sajpjq3z0rgihz84g6y3647k12a00biap" + "commit": "47ec37b395cc1b304bbf91e804f138634544a9df", + "sha256": "05k2qjj4z8vljfppkphfhw67wvb5ij4nz4m158v89lx87y0phh74" }, "stable": { "version": [ @@ -50833,26 +51893,22 @@ }, { "ename": "ivy-bibtex", - "commit": "c23c09225c57a9b9abe0a0a770a9184ae2e58f7c", - "sha256": "0qni48s09lgzqr98r49dhrzpfqp9yfwga11h7vhqclscjvlalpc2", + "commit": "873ae2af16e03c8e10494be3f0e7840eb27172a3", + "sha256": "0ri0f8cfzyymx9jrw0bldwzx74bzdd5gc90yv16hv239g65scbvx", "fetcher": "github", "repo": "tmalsburg/helm-bibtex", "unstable": { "version": [ - 20191028, - 1313 + 20200415, + 1311 ], "deps": [ - "biblio", + "bibtex-completion", "cl-lib", - "dash", - "f", - "parsebib", - "s", "swiper" ], - "commit": "d4471232be26793fbf56c0ac3690b5f537c378b9", - "sha256": "1bkzhic6qckb267025il1r3xcpz99kisphxiafni1pxvf9jafr0j" + "commit": "1e5b50652d1f5189cfeb6b5ce3c4437e0239d4f5", + "sha256": "05xl3x98w4cr81zp04dcqy5xnims8x3k77qxzddcqcrvi9zjlfc7" }, "stable": { "version": [ @@ -50946,6 +52002,24 @@ "sha256": "0slisbnfcdx8jv0p67ag6s4l0m0jmrwcpm5a2jm6sai9x67ayn4l" } }, + { + "ename": "ivy-emoji", + "commit": "f1121a85321a3184d1fa990ae86f5d1f3b04f145", + "sha256": "0sp8z7r1kffgfm4jrn5cqfi335vaynn27hs9345ybrxi3r4a3c0g", + "fetcher": "github", + "repo": "sbozzolo/ivy-emoji", + "unstable": { + "version": [ + 20200316, + 2351 + ], + "deps": [ + "ivy" + ], + "commit": "a1b7d32048278afd9b06536a8af96f533639d146", + "sha256": "0h3051qq6xjc7gkl2a8if9b9ak6wnlc4gmh268s8jvi0nd8dfw2z" + } + }, { "ename": "ivy-erlang-complete", "commit": "ac1b9e350d3f066e4e56202ebb443134d5fc3669", @@ -50963,8 +52037,8 @@ "erlang", "ivy" ], - "commit": "7d60ed111dbfd34ab6ec1b07c06e2d16a5380b9a", - "sha256": "0z34ljmwr0hmkaq5z85p87vljywpv3nnsvhp1zc8cw4hvqarcjqg" + "commit": "c443dba0c466d36bef01a8985474f5da0a5a65fe", + "sha256": "0f0qr6h4y891lzlfi3k0a555qg0jw79fl9bfgv5fxi06m24q4683" }, "stable": { "version": [ @@ -51108,15 +52182,15 @@ "repo": "abo-abo/swiper", "unstable": { "version": [ - 20191018, - 1251 + 20200421, + 1120 ], "deps": [ "hydra", "ivy" ], - "commit": "5f1d9ce04599c52818244c2cb8cb066a601610b8", - "sha256": "1gsyf210jq4ij5r47k5sajpjq3z0rgihz84g6y3647k12a00biap" + "commit": "47ec37b395cc1b304bbf91e804f138634544a9df", + "sha256": "05k2qjj4z8vljfppkphfhw67wvb5ij4nz4m158v89lx87y0phh74" }, "stable": { "version": [ @@ -51280,15 +52354,15 @@ "repo": "tumashu/ivy-posframe", "unstable": { "version": [ - 20191226, - 637 + 20200331, + 536 ], "deps": [ "ivy", "posframe" ], - "commit": "6d697ff00ac406b919eba8665b1bc18a2b423cda", - "sha256": "05zhfhml8bd1zi1msy6zjkimirwq59i9fwa0mxy9l88si3dmb2hb" + "commit": "ae9bafe94fe6b77b6fe45766ae6172646f6a5d50", + "sha256": "1j6yns5d7lh2v1nfcznrirl7qicdli9csciqvfgj4gkh72a97pw1" } }, { @@ -51299,27 +52373,27 @@ "repo": "raxod502/prescient.el", "unstable": { "version": [ - 20191224, - 220 + 20200415, + 1457 ], "deps": [ "ivy", "prescient" ], - "commit": "7fd8c3b8028da4733434940c4aac1209281bef58", - "sha256": "1igsjdkxax2lavglc03h0dk3d7fpgqvlymnhyxx738sjyfzl09cr" + "commit": "0f4a89bdec61395138d968a38d375e63ccfbed63", + "sha256": "0nnf4y49pl9lcs90y5z6f02g1xwk1jjrl0qs7gcv6kpn0vn8kn0h" }, "stable": { "version": [ 4, - 0 + 1 ], "deps": [ "ivy", "prescient" ], - "commit": "ad9fbe8a17fe74b27a39bcc034f3da1865663387", - "sha256": "008hxy1vasnyz36wwg44gikpi80ng75hj85nrswk60b7z7cznbmr" + "commit": "aa3110281a0622fa7b5da115cefb71a319b5b1a0", + "sha256": "1rf5cz262hjpck7vpxg15bccdrwrmlhiyxc20liwcjb2ig36nis3" } }, { @@ -51361,26 +52435,26 @@ "repo": "Yevgnen/ivy-rich", "unstable": { "version": [ - 20200308, - 331 + 20200322, + 1326 ], "deps": [ "ivy" ], - "commit": "0f22aff4c7d7d01bb11561578f5fcd7a2eaa7058", - "sha256": "0d8q58k5j0vzq8m2z7kc597ks93hq1x98svjkqzlvnak241yzkim" + "commit": "596874d1469667f896b83731914d7d4456025553", + "sha256": "0yym3l24zzn1yjg3fjkq7lpvpp9w7wi2vl161v53pmg1v94xig6s" }, "stable": { "version": [ 0, 1, - 5 + 6 ], "deps": [ "ivy" ], - "commit": "d2e64aee221228e27e670f6b1c051052cea33ea6", - "sha256": "1g45pk1w5vcrrlv7d7yz4qdk26v31a8ik2zkzk323bqwzc2safhi" + "commit": "840e13314774a40b69f10f0a15ce1d6af4187b12", + "sha256": "1ra18v6lgz3m6asm6d5b92zn1x22yiz4cwxd9b54dnvwi11121m7" } }, { @@ -51398,8 +52472,8 @@ "ivy", "rtags" ], - "commit": "d370c09007d299dc6b6aae719bf728b95dd426c5", - "sha256": "0hakpd1dwhn2nkfhx4hli0l7hf3p1g8vpyrrczq45smfsz73d96x" + "commit": "a42298e80dffae9a6b2e9816506174542f3cbbb7", + "sha256": "1674752bbyb7890na5p846dxcvh83zn0a6z19wras1x5c59s24i3" }, "stable": { "version": [ @@ -51422,14 +52496,14 @@ "repo": "Kungsgeten/ivy-todo", "unstable": { "version": [ - 20171208, - 1609 + 20200323, + 2005 ], "deps": [ "ivy" ], - "commit": "964e347cea1a6097854d7113f5b07f6c5ef81df0", - "sha256": "07208qdk1a77dgh9qmpn164x5mgkzvprsdvb7y35ax12r2q541b8" + "commit": "d74501cd334b7d709659946c5e02b21cfd5507de", + "sha256": "0j9cdzr5s7zi6qf4cax8bc2jrprgaz85mfvc9cx52ryd3yn8l6g0" } }, { @@ -51665,11 +52739,11 @@ "url": "https://bitbucket.org/sbarbit/jack-connect", "unstable": { "version": [ - 20191125, - 1321 + 20200325, + 1639 ], - "commit": "e951217ee3ea0ac6b9ed9a209305ef9a72ec019a", - "sha256": "03dklv7daxlqzmv8dq9whc07ia0fihy988gfgdr006pfy2x6mnq7" + "commit": "c227d1ed3016960c8666a60e4215bbb029436bc7", + "sha256": "1w66dpn0cmdqwgjd1528cd2739ijxhsr62zyx2arlr9ldrnqy5f6" } }, { @@ -51961,11 +53035,11 @@ "repo": "donderom/jazz-theme", "unstable": { "version": [ - 20170411, - 1411 + 20200417, + 2042 ], - "commit": "b1cb78a97cc4050f19d88a89e455c3e52d98240e", - "sha256": "0q9gfa40qh9wypvzg3xrv4kh6l51az9swb39133961dc8zrrrinm" + "commit": "b6694f09e10aa7df14836aac2f6615c32aa572dd", + "sha256": "1mjzfr2iz72n3ds6d0sqhqd2a5kcfn8d2kji9hqmydmplg247apx" } }, { @@ -52218,8 +53292,8 @@ "repo": "emiller88/emacs-jest", "unstable": { "version": [ - 20200223, - 28 + 20200318, + 237 ], "deps": [ "cl-lib", @@ -52230,8 +53304,23 @@ "projectile", "s" ], - "commit": "777cca00f8fdb93226225b16b48eb955493243c5", - "sha256": "0292bhkc98pbj6lchfkx9i6zyllab2h60cly07ck71glq96kfx3c" + "commit": "b51be19c1de9e82ee1dc62921be2222fc5685eed", + "sha256": "1jdphlhp9vxvkj51cswqfgka910216snyjhql700x4dgpmvkcv56" + } + }, + { + "ename": "jest-test-mode", + "commit": "767499b7048cc0f1e47dff17f66f1e2fe8b023b5", + "sha256": "09vwidm49bw8kb4a9vax4rgbzk1ndg0fkdaj9k9sy973rapb213a", + "fetcher": "github", + "repo": "rymndhng/jest-test-mode", + "unstable": { + "version": [ + 20200329, + 506 + ], + "commit": "f04d08db36715d7509fd68448f74f917c6c1a382", + "sha256": "1pmzls19wpg60ql0b5l6rhml8hh8mzpbc0dgylzhps1jghi055s1" } }, { @@ -52331,15 +53420,15 @@ "repo": "nyyManni/jiralib2", "unstable": { "version": [ - 20190927, - 2010 + 20200331, + 1940 ], "deps": [ "dash", "request" ], - "commit": "e913f8e4a994850d2cff18ce2b1f4177cac62c91", - "sha256": "022jndjwj0ml2w829id0nx43p24h6jpmilc12n9hiy4p80vjgy1y" + "commit": "ccf69e417911e091ec4c28d47d178ee63196c626", + "sha256": "170fjz7k9bk17qk7wrd56xw484xp8zckx635360pm0lfg4dvycpc" } }, { @@ -52467,11 +53556,11 @@ "repo": "ljos/jq-mode", "unstable": { "version": [ - 20190718, - 913 + 20200317, + 852 ], - "commit": "a439bd395e0ad6b6110789b8f10d0efbe1fe889d", - "sha256": "18r9igkxy7ymj5xran806f6cy099gb19mg8minchs98jsjjmka9g" + "commit": "bc904840f27fe7b0e6dbdaeb912a7175a3837110", + "sha256": "0w5cgys1yfhirhsvj4n5k6km2xwyqvlnbv0m0sim1vavizzfmda4" }, "stable": { "version": [ @@ -52528,8 +53617,8 @@ 20180807, 1352 ], - "commit": "0ea56bf620105af71d2575f62f9527773b6e3d68", - "sha256": "1zdp9r97bd85ylb9km27129pxxf5mvmhr4fqvphzb57j7yml3z0h" + "commit": "306abcfb9f6e46962061a34b68d4f6baa8c7aba4", + "sha256": "1pifplr4qr9667bbbqgqg39v8dyglvg6ljglkjga0d2n39am7r2q" }, "stable": { "version": [ @@ -52641,14 +53730,14 @@ "repo": "sooqua/js-react-redux-yasnippets", "unstable": { "version": [ - 20190911, - 1259 + 20200316, + 1144 ], "deps": [ "yasnippet" ], - "commit": "70785d126a28ffcb314fb4b354319418586e06b1", - "sha256": "0adlnjkcq0kpadc1dqwfzrrk0xd4jc0rc4k8hbj6nh4dhc7shnk0" + "commit": "9f509043f01fa59bff4daf31b2e95d63f8deab4a", + "sha256": "00icd76y7sp3cby6n1mkxma4h6aqkrq6cqsnbqrpsgq99qqy30my" } }, { @@ -52961,14 +54050,14 @@ "repo": "skeeto/elisp-json-rpc", "unstable": { "version": [ - 20180104, - 1528 + 20200417, + 1629 ], "deps": [ "cl-lib" ], - "commit": "0992ae71964055230aa5d4d934a1b93b5dfd7eb4", - "sha256": "0nfccwxss3dz1ig6i3dig703xpsy90m7i96bm3pysrw2jfp4by9s" + "commit": "81a5a520072e20d18aeab2aac4d66c046b031e56", + "sha256": "13s18mjh6dpdxvva9yx4841rxvayxsvaj3vblxril6zm2wcqw2lm" } }, { @@ -53121,11 +54210,11 @@ "repo": "JuliaEditorSupport/julia-emacs", "unstable": { "version": [ - 20200310, - 1429 + 20200331, + 1658 ], - "commit": "b800403fada2b83bc98d6006cfd370e0cfd7876f", - "sha256": "1ay4wm303qh48h6g75di66w2f2smg5dnlqv40dgx4nhkyi68wrvg" + "commit": "88d7d875ef32eb9fb76917c97150654bb91ac96a", + "sha256": "1zsqj31avcil6ml2clfxk7hnmg5fx014xqbbvhm17ii7ggky4qdn" }, "stable": { "version": [ @@ -53189,8 +54278,8 @@ "repo": "gcv/julia-snail", "unstable": { "version": [ - 20200310, - 2223 + 20200423, + 2236 ], "deps": [ "cl-lib", @@ -53201,16 +54290,16 @@ "spinner", "vterm" ], - "commit": "41cf7c0d14b053f93387090844d0409824f9cd45", - "sha256": "07brz5866qasp1yag3c81x1va4y3ffk56ka3iwgbg2j65wa4n3i5" + "commit": "e14c5590a79ee5529f574f6d4b0701d608e3e47b", + "sha256": "1xckmrdg41ai9qbpy9lxva4b1yq5jji9xff4fz9d4v72nqz7qn0w" }, "stable": { "version": [ 1, 0, 0, - -2, - 5 + -1, + 3 ], "deps": [ "cl-lib", @@ -53221,8 +54310,8 @@ "spinner", "vterm" ], - "commit": "a614471cad3a133a00f77a7855407d506d94ce65", - "sha256": "01wdly6l0xkzqmqab529mhjc7mnijpv3f78cjnx0w0ak13srva93" + "commit": "483d088853584a9f1603a062bce5705f0a7d99fe", + "sha256": "0k3lwq6r1y23gmlqx7a70psgzncf4k1zcykc7plzl79xas28rbrz" } }, { @@ -53357,8 +54446,8 @@ "repo": "dzop/emacs-jupyter", "unstable": { "version": [ - 20200311, - 439 + 20200417, + 1907 ], "deps": [ "cl-lib", @@ -53366,14 +54455,14 @@ "websocket", "zmq" ], - "commit": "1546a72f570c7d3a6376d211d27002b2b11ddb40", - "sha256": "0jm4j45qr6np6qwnx9ffvcjvbsjz79d4s57vzvlajzfgl6c879vp" + "commit": "785edbbff65abb0c929dc2fbd8b8305c77fd529e", + "sha256": "1l1fd062dmig3mgkwixr4ly8x12z9skh5wj18hkyc84n7rwdar47" }, "stable": { "version": [ 0, 8, - 1 + 2 ], "deps": [ "cl-lib", @@ -53381,8 +54470,8 @@ "websocket", "zmq" ], - "commit": "6650dd35887e0e987385a4fb74b0a3c1661e149b", - "sha256": "152g22bm970px2mi3bfr6f59mvvbk2p8prv5vs5b9n0cmviqm50w" + "commit": "403c70c83cb3754c83da0932b0efaf5e72bdca9a", + "sha256": "1sr007wsl2y6wqpzkmv3inbpwhvgdcb2nmqzgfg7w1awapi2r13p" } }, { @@ -53684,15 +54773,15 @@ "repo": "ogdenwebb/emacs-kaolin-themes", "unstable": { "version": [ - 20200210, - 237 + 20200324, + 1349 ], "deps": [ "autothemer", "cl-lib" ], - "commit": "0afcaff33ceff03420635feca835d760915e4c08", - "sha256": "0rw7dgd4dv8gk4n5xjl6mlvgyxm29vnzk8zlk7b07k264kxqr7c7" + "commit": "9877c12ad412e79b3d88423f911be1ff59a72e0e", + "sha256": "079si7dhl45rx2vf8kf8srflk6nd6yxqz44xbsrh0s39gpp9v5dh" }, "stable": { "version": [ @@ -53970,11 +55059,11 @@ "repo": "tarsius/keycast", "unstable": { "version": [ - 20200103, - 1239 + 20200418, + 2028 ], - "commit": "adb55497c0f16e90069d6e5e86b4f9f65f13624b", - "sha256": "1sprdfx0gvyqmq0fkf4bf56q3d8xxig2vxi38nzjx90llzvka35q" + "commit": "a912c4db1b88390f76b14e3b47ded314fdc8f48c", + "sha256": "07gfldj9y4jfvna1rqlr7w6y6daqdsvc1fb2m7acjn37bpmfrc3b" }, "stable": { "version": [ @@ -54067,14 +55156,14 @@ "repo": "tarsius/keymap-utils", "unstable": { "version": [ - 20191222, - 2258 + 20200413, + 1858 ], "deps": [ "cl-lib" ], - "commit": "0b9bb7f4959ca54f0827b202f513ec7508c11e0e", - "sha256": "11y1vdrj2isn00mh428ynzqnfxjsg0138wx0bs619j0pv6d3j09g" + "commit": "195e0ca5b1b9967faf94a3e5a634d8975b796705", + "sha256": "0ckv9mbqb1f2lp17sv3nxjwww4ph9v3bhlxwvchvkkdlbcg87i5n" }, "stable": { "version": [ @@ -54390,8 +55479,8 @@ 20180702, 2029 ], - "commit": "9398c8d5d260c9f4d5dd0aadc7de5001bddaf984", - "sha256": "1hps804r3pwnkndwr797ayg002i857ck3lvknvzz7j04xvs7g5s3" + "commit": "108a9151eb55b00f246613c511d88b7d58334595", + "sha256": "16wsaz29avmv9p3lfy0wjgxfwpszq8g3v9vl05azqkvjahf0lxib" }, "stable": { "version": [ @@ -54413,15 +55502,15 @@ "repo": "stardiviner/kiwix.el", "unstable": { "version": [ - 20200301, - 307 + 20200426, + 637 ], "deps": [ "cl-lib", "request" ], - "commit": "f11e8fb9955b89a14db7092e48baa0b69667834e", - "sha256": "1ipkgnlvbdmgxh92hsrvqmyg8hxv4165kr0305hz2cr88wp8zsm1" + "commit": "6c6c44386e00d352d96064cb25b50e960cd1ba22", + "sha256": "16k93w5xylx3v5q1hlzmlmg1ydg88bklgi2idd3h6k3sbi4linvs" }, "stable": { "version": [ @@ -54678,22 +55767,24 @@ "repo": "abrochard/kubel", "unstable": { "version": [ - 20200310, - 2009 + 20200406, + 2112 ], - "commit": "4ba0a5f579525a9199421827221dc3786d2cc754", - "sha256": "17y5bslh3483q1vmc0y7lxgm7aaqxiyshkv41j9ga0c6jjrmalvl" + "deps": [ + "dash", + "s", + "transient" + ], + "commit": "74db5b2e8418d0baeb8d3d0c274dfba3b9f32018", + "sha256": "1v8d8cvbqr12pglnd0lwijklfry5nz2j7nbv447bdkp5cp7y5f01" }, "stable": { "version": [ - 1, + 2, 0 ], - "deps": [ - "transient" - ], - "commit": "fe9f51e678a8b74e1116bffd662abc3d504fc857", - "sha256": "1dhhpjjpxl0j18nq4h0pmkz9l55cdzd7kaxhvkr0r0mvhpa7d04m" + "commit": "6fafe9c2b8edcb9df96965a315474c83a90b1809", + "sha256": "1q1wkwsx9dyjw1b6cxnz1w0xi8r75x7n6iq18v038ny2k110m6g9" } }, { @@ -54704,27 +55795,27 @@ "repo": "abrochard/kubel", "unstable": { "version": [ - 20200310, - 1832 + 20200312, + 1349 ], "deps": [ "evil", "kubel" ], - "commit": "4ba0a5f579525a9199421827221dc3786d2cc754", - "sha256": "17y5bslh3483q1vmc0y7lxgm7aaqxiyshkv41j9ga0c6jjrmalvl" + "commit": "74db5b2e8418d0baeb8d3d0c274dfba3b9f32018", + "sha256": "1v8d8cvbqr12pglnd0lwijklfry5nz2j7nbv447bdkp5cp7y5f01" }, "stable": { "version": [ - 1, + 2, 0 ], "deps": [ "evil", "kubel" ], - "commit": "fe9f51e678a8b74e1116bffd662abc3d504fc857", - "sha256": "1dhhpjjpxl0j18nq4h0pmkz9l55cdzd7kaxhvkr0r0mvhpa7d04m" + "commit": "6fafe9c2b8edcb9df96965a315474c83a90b1809", + "sha256": "1q1wkwsx9dyjw1b6cxnz1w0xi8r75x7n6iq18v038ny2k110m6g9" } }, { @@ -54943,6 +56034,25 @@ "sha256": "1r8di1cmhcx2vfk3fsydx24spib1fi4wihnxa41favnkjzklz9jv" } }, + { + "ename": "lambdapi-mode", + "commit": "86702d5ad9279f03bdae5facb0b546e133c1fedd", + "sha256": "0ha9k0wc5snb5j0bpzjj91b7kd9ppsk8wbcj454wdkx87x73npdd", + "fetcher": "github", + "repo": "Deducteam/lambdapi", + "unstable": { + "version": [ + 20200423, + 1441 + ], + "deps": [ + "eglot", + "math-symbol-lists" + ], + "commit": "e205bd95602e120186a1e18ca825e6bbc3b6c4d1", + "sha256": "12y297h0hln7smy26nixqbjzy9nk1pwc2a7sab8dlzjkyz37zbfg" + } + }, { "ename": "lammps-mode", "commit": "8f5471a8e17977c17ad84b12a77fe80f37eda25e", @@ -55047,25 +56157,26 @@ "repo": "lassik/emacs-language-id", "unstable": { "version": [ - 20200214, - 2254 + 20200409, + 607 ], "deps": [ "cl-lib" ], - "commit": "dc18099dd74a954601ab425ef6cfd3ed32003023", - "sha256": "1mwkv4cyz8n8vm9jf7nw980j0ig487ch37ayx356nvvznnrfnm5s" + "commit": "bf17d80b6c4b58fb66cddc2b2914f57d48468e97", + "sha256": "1p21smbm3z6xfq0zk8pv62wppbbxx8mh994ax8b00kh16j7yhh2c" }, "stable": { "version": [ 0, - 4 + 5, + 1 ], "deps": [ "cl-lib" ], - "commit": "dc18099dd74a954601ab425ef6cfd3ed32003023", - "sha256": "1mwkv4cyz8n8vm9jf7nw980j0ig487ch37ayx356nvvznnrfnm5s" + "commit": "bf17d80b6c4b58fb66cddc2b2914f57d48468e97", + "sha256": "1p21smbm3z6xfq0zk8pv62wppbbxx8mh994ax8b00kh16j7yhh2c" } }, { @@ -55076,8 +56187,8 @@ "repo": "mihaiolteanu/lastfm.el", "unstable": { "version": [ - 20200207, - 1316 + 20200320, + 1839 ], "deps": [ "anaphora", @@ -55086,13 +56197,13 @@ "request", "s" ], - "commit": "cff7699343467b36ff3dad90061b567025ff9b23", - "sha256": "1jk400xh07pnwzab23xwsiyv9j0f4b8fl0v6w712vsn2n1ab88gm" + "commit": "54636059512adec0176950e8fce3b9bf7423619d", + "sha256": "1ffvh71vgsdv118hhz0x2xfmqb2bayk7i3mdxc1ybs2vrdggnim4" }, "stable": { "version": [ 1, - 0 + 2 ], "deps": [ "anaphora", @@ -55101,8 +56212,8 @@ "request", "s" ], - "commit": "c2b39d2fa4fb7f56e4aacb0a50ed2aa509ab992c", - "sha256": "09k8p5bpl7f4dgkvvx4gf91pgyc5ikm6kynkjhdwrsnpnnl2cc9b" + "commit": "96568f07324ba32804be9352016956694923f5f3", + "sha256": "04a563g6rby8374azpfjdagbgdylcg2glfx5wdx5agd98bs15j28" } }, { @@ -55113,15 +56224,15 @@ "repo": "storvik/emacs-lastpass", "unstable": { "version": [ - 20191102, - 611 + 20200320, + 2117 ], "deps": [ "cl-lib", "seq" ], - "commit": "e07b1a062153b9d56d0112ac45caf76d6bce67c5", - "sha256": "0pz5svbs7jp7zcjl7p5pbfxqh6xzh48dzz3swkywms9hfh2ynqzp" + "commit": "ac472f844bd1e109c62479253cbc40bb5e50ed8f", + "sha256": "07bh7vkczzpmkbxxyyhn912b5rjm975a49y1bq08y4vd006zsq4x" } }, { @@ -55322,8 +56433,8 @@ "deps": [ "colorless-themes" ], - "commit": "a7b7c0a32b174988f40378996cd8997f73524f19", - "sha256": "0khsf4xz0wjn774hy08pxafm79j55ns28q25pfzyj9s07hi4r0vz" + "commit": "2b4c341640c8191a39e4bc28d6cd04c7d6dcbb37", + "sha256": "0ni9cnrv464fk840i1ll241kzkiy1zc6nfrbdv3ciixxdxbshxbn" }, "stable": { "version": [ @@ -55398,20 +56509,40 @@ "repo": "conao3/leaf.el", "unstable": { "version": [ - 20200225, - 1023 + 20200422, + 644 ], - "commit": "0179836fcc8ef613d6f9d7fa509a79a8fbf8db22", - "sha256": "0r5crz2n0q8xrh840gp3m8gy647i0khvwzj9pc3w5y9xkw7ca7vh" + "commit": "27f21ed46a907a911222a72a31b41e414c956cfb", + "sha256": "041qgyskq39f91wjwr3d4ic5f1q7rvigannyyr9q4a2nbrn2dzhy" }, "stable": { "version": [ - 3, - 6, + 4, + 1, 0 ], - "commit": "c0a0fca2f9c83909c49729af75664411b4affab8", - "sha256": "18vrk19273xlg2nhkf7fvvhspnsfgk4dxa42x2q5599p9z7aph00" + "commit": "0841ab466a1542868b5448bb375ac9f0c33e2b3f", + "sha256": "0lpgkd2hhv98k7bi7zdplhlv0p3gbp4aq2cb0kyiwp2yxlnmkbzv" + } + }, + { + "ename": "leaf-convert", + "commit": "db2fa6cdfe98aea41eeafb59527050edfa9ef6e5", + "sha256": "1hw6imdf8f7939r077zccv0sa23xfcmwpbhjyb49g4nhzs5grpnv", + "fetcher": "github", + "repo": "conao3/leaf-convert.el", + "unstable": { + "version": [ + 20200415, + 1725 + ], + "deps": [ + "leaf", + "leaf-keywords", + "ppp" + ], + "commit": "2a8ec045d5d36e85e7deb2a46aefacaecf4bfafe", + "sha256": "133id4zd9dnx962r71m0irxvqs9dwaqnv5l4b8bjd3gigijah1dp" } }, { @@ -55422,14 +56553,14 @@ "repo": "conao3/leaf-keywords.el", "unstable": { "version": [ - 20200214, - 1749 + 20200415, + 419 ], "deps": [ "leaf" ], - "commit": "138af8613feded5eaeda84ffaff2621e62c2e0fe", - "sha256": "03jvjmr6ki28ngdc0j7sjj14qyzd730jxp8gdcajjln76ni5cayy" + "commit": "8c956f9e39cb589544a90861ac05b9b2ee4d320b", + "sha256": "0qy1hmg7ycbx898cx5cckmk5l8bysyvvdc5y2gl3bsxjwlv1wlrg" }, "stable": { "version": [ @@ -55441,6 +56572,56 @@ "sha256": "146h2n71f22gsqgh221ghx56qb9cq9qac3p77gxji535l2s9hbvk" } }, + { + "ename": "leaf-manager", + "commit": "e1d80f4662a0f77360244fc4b34f2076db4fd478", + "sha256": "1pr5yljhif5ffm63g6w6544cy6m15kljbdvxs87ivnisblbl4s21", + "fetcher": "github", + "repo": "conao3/leaf-manager.el", + "unstable": { + "version": [ + 20200414, + 543 + ], + "deps": [ + "leaf", + "leaf-convert", + "ppp" + ], + "commit": "f2ae35e02ebe218daa3076a0e9d83b4feadfbb0a", + "sha256": "09ll1vs9y6qmcl3qxil52mjw5bf7x896wjsij4kf0y5wd2fhra61" + } + }, + { + "ename": "leaf-tree", + "commit": "2e51160b1e5d277e66b9cff493b1f6b3c6f9ee28", + "sha256": "1xnqxwa978wbvx181v48zd37vckrj6p6wa7gas3fj648mwdjnii3", + "fetcher": "github", + "repo": "conao3/leaf-tree.el", + "unstable": { + "version": [ + 20200412, + 2355 + ], + "deps": [ + "imenu-list" + ], + "commit": "22f6c116cf1465c28d4a35d8a4587a8b614be175", + "sha256": "1bgjhrpq6a239v8vfi6i9qcbyrg76mpy4yykkb5da8hlp23idwy7" + }, + "stable": { + "version": [ + 1, + 0, + 0 + ], + "deps": [ + "imenu-list" + ], + "commit": "22f6c116cf1465c28d4a35d8a4587a8b614be175", + "sha256": "1bgjhrpq6a239v8vfi6i9qcbyrg76mpy4yykkb5da8hlp23idwy7" + } + }, { "ename": "lean-mode", "commit": "42f4d6438c8aeb94ebc1782f2f5e2abd17f0ffde", @@ -55449,8 +56630,8 @@ "repo": "leanprover/lean-mode", "unstable": { "version": [ - 20200211, - 2010 + 20200319, + 838 ], "deps": [ "dash", @@ -55459,8 +56640,8 @@ "flycheck", "s" ], - "commit": "c9dffcda2951c22c483d1d22411d13bc132ce609", - "sha256": "1lj6j21hzya41fmlnw7faqmhvsdcgcidwibyvicgsb0gm6qqipjf" + "commit": "65b55b1711fb61129312044d5ac7e6a2c2ee245c", + "sha256": "1zmw8950qhry2ixk2ng0pg4j0vwx11nvjlrpab9jg6x47ys9j65n" } }, { @@ -55556,11 +56737,11 @@ "repo": "ledger/ledger-mode", "unstable": { "version": [ - 20200302, - 334 + 20200425, + 1517 ], - "commit": "8af289082331e40fdb6123b0145504f1c162cf09", - "sha256": "0i58vfcw30ryznji3pyi5lj5aclwi0h42fx7hzadrysjbvw3qscg" + "commit": "021eff5f88bf6392d7b3e511593e07471eb7833d", + "sha256": "0g4fgy39jp072b4ib0yxaxd3ndzxd1gx8inqqn9z9d7lxgc12l1g" }, "stable": { "version": [ @@ -55794,11 +56975,11 @@ "repo": "fniessen/emacs-leuven-theme", "unstable": { "version": [ - 20200122, - 1934 + 20200425, + 756 ], - "commit": "dccd751682a0954165c7f2c08414bea0168a9a9f", - "sha256": "12njc6pmbadwn71h811alr4rpsmw1b48b3jjmxpy3s51ja44vcc4" + "commit": "444d36526382466e6bcf11c58066bcef759e4c1f", + "sha256": "1768r5gb8cpz8a03rgswf5mny539w96hjw1rpvfqvj4zbv7bvd7n" } }, { @@ -56152,15 +57333,15 @@ "repo": "noctuid/link-hint.el", "unstable": { "version": [ - 20200205, - 2244 + 20200405, + 1607 ], "deps": [ "avy", "cl-lib" ], - "commit": "0d9cabcdb783ddc834ede6dcb1bed627c3acd303", - "sha256": "1ybzxc421wyy34w71lgbdfx7vgy9j6va9jjv1mkxa0zxqpdar974" + "commit": "7440704cacb5c0fab35fff8ec59d30fbea17f44a", + "sha256": "0j609j69lxyfvr2g89gdkjrk1vy0c1qq6m0p0ay468bh7l6crs7v" } }, { @@ -56293,6 +57474,35 @@ "sha256": "152vcp3mdlv33jf5va4rinl1d0k960gnfhbrqqrafazgx9j3ya8w" } }, + { + "ename": "lisp-local", + "commit": "2ec3f57a05e1b2e28ce33700d8ea98758b0bb69d", + "sha256": "1kzg2v0x0xf99mwd88bblbjfm9js4f40pibq6297xc9i5wrp3bv4", + "fetcher": "github", + "repo": "lispunion/emacs-lisp-local", + "unstable": { + "version": [ + 20200409, + 1330 + ], + "deps": [ + "cl-lib" + ], + "commit": "ff745a937f79df51cac0209b3cc3c35ce1d1fc61", + "sha256": "0ffwjv5fpzia772iavn9ily5m7l73pxf0amgqizzmbx12rx3kkhg" + }, + "stable": { + "version": [ + 0, + 1 + ], + "deps": [ + "cl-lib" + ], + "commit": "ff745a937f79df51cac0209b3cc3c35ce1d1fc61", + "sha256": "0ffwjv5fpzia772iavn9ily5m7l73pxf0amgqizzmbx12rx3kkhg" + } + }, { "ename": "lispxmp", "commit": "ad10a684b4b2f01bc65883374f36fef156ff55d2", @@ -56316,8 +57526,8 @@ "repo": "abo-abo/lispy", "unstable": { "version": [ - 20200305, - 1858 + 20200425, + 1041 ], "deps": [ "ace-window", @@ -56326,8 +57536,8 @@ "iedit", "zoutline" ], - "commit": "c7e282ae06f654bf985466ae05dedc4efc87144d", - "sha256": "1gw03xwjwvgvp1m2nl3wmz3y6d2q6xqpawpdfw95kn4rpw1lsh4w" + "commit": "3c3f092824113278c57e93be1a2565f987ca0a4a", + "sha256": "1g0gmdq1n8l33ls4x06594hl8ayw8365ixgxp096d7qv7n5mxzn6" }, "stable": { "version": [ @@ -56611,10 +57821,10 @@ }, { "ename": "literate-coffee-mode", - "commit": "855ea20024b606314f8590129259747cac0bcc97", - "sha256": "18fdgay7xfgza75z3xma666f414m9dn7d50w94wzzmv7ja74sp64", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "00zd5i6wpn95sslz0gd7m1h1fw7w07swszfqwaphkbqfwckgll6m", "fetcher": "github", - "repo": "syohex/emacs-literate-coffee-mode", + "repo": "emacsorphanage/literate-coffee-mode", "unstable": { "version": [ 20170211, @@ -56646,14 +57856,14 @@ "repo": "jingtaozf/literate-elisp", "unstable": { "version": [ - 20191012, - 606 + 20200327, + 620 ], "deps": [ "cl-lib" ], - "commit": "3bd795288db8dcd3edf5b33ca8fc213fe16c62d5", - "sha256": "0in5cryj1abcg6850lxx8qqhxvdij54jmm4ip9ra2kwz55smq4ky" + "commit": "732d649136051a4b6d43c2fabeb5233c3e5f16d7", + "sha256": "1d4p6s9dj5368ywfpp46pysxvcqwsiacih3n1hia9c4y7p0xx4cz" }, "stable": { "version": [ @@ -56722,11 +57932,20 @@ "repo": "lassik/emacs-live-preview", "unstable": { "version": [ - 20190415, - 2214 + 20200419, + 2143 ], - "commit": "bc3f79b58c4e428485b2cf800278004220f7433d", - "sha256": "1xlaq07wsgwzh3c0x50wgpj9i13nyk5ig45w1fx4156kmc69vjk8" + "commit": "7af1c74e0479c5b91d6368a4a3ff1342b83ef477", + "sha256": "0ifk0k6lfjzb0x0mgzh69jx0m166ljdg3ad69p51jw3m85c0wc6b" + }, + "stable": { + "version": [ + 0, + 1, + 1 + ], + "commit": "448d6d2b0912a46acd7d9a9b186b53425b1a7626", + "sha256": "1by62z8pch148ar47453bybg7q9drja73rq3pwcn9jb0yb6gn1xl" } }, { @@ -56737,20 +57956,20 @@ "repo": "donkirkby/live-py-plugin", "unstable": { "version": [ - 20200221, - 611 + 20200401, + 420 ], - "commit": "70cfd34877272f132235d5ba779b883b3935dd37", - "sha256": "03ma0naf4yp7z60szngcazx2sbvqxam66jflkq1d16i52r1hg4bb" + "commit": "ab15012313217114d3f3940a6578df31ad223010", + "sha256": "1layngy8whcxgrpwhjdy41g194lkzq9z1wgv5rc4cg9smsbd6abi" }, "stable": { "version": [ 4, - 0, - 1 + 1, + 0 ], - "commit": "0cc8f0a31ef815e26eb7da314a516e908ba25838", - "sha256": "13wbsapnq5p75c27smzsgmmgzjbx7x2vbj7b7707bm6cakqjwdzv" + "commit": "0a0d881d8ff30a6007b998e9bb9dddb999cca16e", + "sha256": "1mdnbbd0kr5y4vr2xbay80v4n07gg5jkkn0k3ywypsin7fz5ihhl" } }, { @@ -56991,20 +58210,20 @@ "repo": "aki2o/log4e", "unstable": { "version": [ - 20170401, - 1304 + 20200420, + 745 ], - "commit": "c69424e407be0d9d0e54b427d8b18b1ac5a607e2", - "sha256": "1ng2cgqb83dhxm1hvsfdgzhfl80q9qkf07cr9hp7sxldy36hvxw8" + "commit": "7df0c1ff4656f8f993b87064b1567618eadb5546", + "sha256": "0dbnks76v05allzkhx9zmyqpn6sk5376n8k2rbpnaw6gmz1ib2fv" }, "stable": { "version": [ 0, 3, - 0 + 3 ], - "commit": "6592682ab7de0e3d1915aa4d3c53e083be79fbeb", - "sha256": "1l28n7a0v2zkknc70i1wn6qb5i21dkhfizzk8wcj28v44cgzk022" + "commit": "7df0c1ff4656f8f993b87064b1567618eadb5546", + "sha256": "0dbnks76v05allzkhx9zmyqpn6sk5376n8k2rbpnaw6gmz1ib2fv" } }, { @@ -57133,27 +58352,43 @@ "repo": "doublep/logview", "unstable": { "version": [ - 20200125, - 1808 + 20200331, + 2111 ], "deps": [ "datetime", "extmap" ], - "commit": "638dbd4833c6387be3849d0097b5b1a14c619afb", - "sha256": "1arzz27vf6r62m7qhfq049n5zw1x2zbbrvmlnvbd9yaanlgrf0hc" + "commit": "c67298a215136617de60c9041904ee6a455dcd4f", + "sha256": "0bjgzh4z4bz4nr97cn9wd92brg7wik37c0vd3kfisdalxq2wrgn5" }, "stable": { "version": [ 0, - 13 + 13, + 1 ], "deps": [ "datetime", "extmap" ], - "commit": "638dbd4833c6387be3849d0097b5b1a14c619afb", - "sha256": "1arzz27vf6r62m7qhfq049n5zw1x2zbbrvmlnvbd9yaanlgrf0hc" + "commit": "c67298a215136617de60c9041904ee6a455dcd4f", + "sha256": "0bjgzh4z4bz4nr97cn9wd92brg7wik37c0vd3kfisdalxq2wrgn5" + } + }, + { + "ename": "lol-data-dragon", + "commit": "c54747f74db0d3c270682c8994e3babdac9d36c4", + "sha256": "18aydjkv331gkbsyxgvrrlw37v2m2g65alz82287nwjswgns4pia", + "fetcher": "github", + "repo": "xuchunyang/lol-data-dragon.el", + "unstable": { + "version": [ + 20200321, + 2142 + ], + "commit": "6f53bb3971daad60bd0529d1e3889d5f9fedf235", + "sha256": "0xblv8l6krp3581m0xava95pm6wcsjm3rsl47dsvzpgns1kyz8lx" } }, { @@ -57286,6 +58521,69 @@ "sha256": "1hwm7yxbwvb27pa35cgcxyjfjdjhk2a33i417q2akc7vppdbcmzh" } }, + { + "ename": "lsp-dart", + "commit": "acbba6bc6f1bb6e1153f1f75ca1dc025bb5a8993", + "sha256": "0q2x3i5yydnrplfgk8fcngdsxf1g1vz1jzkbwhiqf46wrv5vxwl3", + "fetcher": "github", + "repo": "emacs-lsp/lsp-dart", + "unstable": { + "version": [ + 20200423, + 2120 + ], + "deps": [ + "dap-mode", + "dart-mode", + "dash", + "f", + "ht", + "lsp-mode", + "lsp-treemacs", + "pkg-info" + ], + "commit": "a27d12209570fe10c60e55e0718123fc2e7f7e8f", + "sha256": "192nmx00s4hxylp4lqfycbi2g8aq7bbzmy70c1qxh7k5m24yigxj" + }, + "stable": { + "version": [ + 1, + 6, + 10 + ], + "deps": [ + "dap-mode", + "dart-mode", + "dash", + "f", + "ht", + "lsp-mode", + "lsp-treemacs", + "pkg-info" + ], + "commit": "a27d12209570fe10c60e55e0718123fc2e7f7e8f", + "sha256": "192nmx00s4hxylp4lqfycbi2g8aq7bbzmy70c1qxh7k5m24yigxj" + } + }, + { + "ename": "lsp-docker", + "commit": "f592ec9b1d6a05e1e115d4b313be108c8e47ee67", + "sha256": "1xmkwhgkcsf52hngb811n2q7q4rav75wwjz7zin6x17vfv8hqifx", + "fetcher": "github", + "repo": "emacs-lsp/lsp-docker", + "unstable": { + "version": [ + 20200222, + 505 + ], + "deps": [ + "dash", + "lsp-mode" + ], + "commit": "f46e56e554c9207d5ab5b9aebf994df8b41955f3", + "sha256": "1281qrskwwjz3x3mi99a6sp9694wbd08myhy0nlba6493ip8wbhz" + } + }, { "ename": "lsp-elixir", "commit": "c875a05e68d09ecf37f7e13149f2624c70164ea3", @@ -57312,15 +58610,15 @@ "repo": "emacs-lsp/lsp-haskell", "unstable": { "version": [ - 20200309, - 2144 + 20200407, + 2216 ], "deps": [ "haskell-mode", "lsp-mode" ], - "commit": "582fa27c8894db888c92b5e53527b8deec82ea7f", - "sha256": "1jrvd8gnd7hc9xksryb35a2qzwwv7q6ncpcsb2l9ryfl5xd26i0a" + "commit": "f7d1f190ebacc96ddbc722e76730ca2db3c4ce38", + "sha256": "0wadna7y1ydx7d88rj15ylvy7gy2y30pr8wds6z10ds321qihs47" } }, { @@ -57349,16 +58647,16 @@ "repo": "emacs-lsp/lsp-ivy", "unstable": { "version": [ - 20191028, - 902 + 20200418, + 1500 ], "deps": [ "dash", "ivy", "lsp-mode" ], - "commit": "78c1429c62c19006058b89d462657e1448d1e595", - "sha256": "1bry1vsv6p2h4qrzx8aq7bsqfw12w3v5gz548dwkdk2cwmhsmi3d" + "commit": "81e81ced99829358674c5a6bbe2c3e15cecd4ed8", + "sha256": "011126hz98qzb8zn1628z77j2s5w1hgvmb5saj2fr9wncgv1nax9" } }, { @@ -57369,8 +58667,8 @@ "repo": "emacs-lsp/lsp-java", "unstable": { "version": [ - 20200114, - 2313 + 20200425, + 1842 ], "deps": [ "dash", @@ -57382,8 +58680,8 @@ "request", "treemacs" ], - "commit": "0cea6fd5e7b163766ddf47380d655771c1b070e5", - "sha256": "17d5xf2dzy1lnxm6cip0gmzrw37xv362fakn05nhkq5ygl7bhpz6" + "commit": "4f66649c2f02978145bd2e51ff8e6444b8631964", + "sha256": "08y81krxrfy9jm0qwmrszp1cainj37339503fqcnddaxgihvgnx1" }, "stable": { "version": [ @@ -57430,28 +58728,58 @@ "repo": "non-Jedi/lsp-julia", "unstable": { "version": [ - 20191011, - 1005 + 20200408, + 1412 ], "deps": [ "julia-mode", "lsp-mode" ], - "commit": "da66e78eb601b1652c3a9096e0ceea6b852aa6a0", - "sha256": "1xn7470lm322lqkkbg95qmzaadk85z3f2f3cx34iq00cmkkppcng" + "commit": "9f158a290168149fd301a1c1c2016600106ad5be", + "sha256": "077mrvxf8df4dppl3xqa7p3ksm3wcms64l306y7i5x878vyjgibv" }, "stable": { "version": [ 0, - 1, - 1 + 2, + 0 ], "deps": [ "julia-mode", "lsp-mode" ], - "commit": "6b0d1a3f32c5e6c5b4c0993f30303569a9e9e9bd", - "sha256": "11jisy6161j4mpqyi06slfr3l7cmmnp7xc6701hszmvl935znn3l" + "commit": "9f158a290168149fd301a1c1c2016600106ad5be", + "sha256": "077mrvxf8df4dppl3xqa7p3ksm3wcms64l306y7i5x878vyjgibv" + } + }, + { + "ename": "lsp-latex", + "commit": "5e3c176af536155c8110006fd4bc63eeb2b2d12c", + "sha256": "01kn9faak6y1zfd1143yj453hl6rp1xykrg5rp196zf6brywj5a1", + "fetcher": "github", + "repo": "ROCKTAKEY/lsp-latex", + "unstable": { + "version": [ + 20200425, + 920 + ], + "deps": [ + "lsp-mode" + ], + "commit": "6c5b0d926857b16c7cf6eae3111709393845f523", + "sha256": "1qgryycjbvdk2i11qsdzrrlmhsvrpwfn3kw4g73zri4vfwz9cr44" + }, + "stable": { + "version": [ + 1, + 0, + 0 + ], + "deps": [ + "lsp-mode" + ], + "commit": "d016440fe364a016935bd90ae07e22d9012bcf8f", + "sha256": "0a6nryx7vshh4k0amlw3w3fn4yr8zlqxq5py8vj3pz4zkcndhxks" } }, { @@ -57462,8 +58790,8 @@ "repo": "emacs-lsp/lsp-mode", "unstable": { "version": [ - 20200311, - 612 + 20200426, + 440 ], "deps": [ "dash", @@ -57474,8 +58802,8 @@ "markdown-mode", "spinner" ], - "commit": "9f2333b1d5213f651af643ec5f2876bd987d7ab1", - "sha256": "01qnrnm2rscdc9gyld6lf3yfdyzb86rsdvjghm58nks7wbw7zb04" + "commit": "9c1ab8adf1a7674e15b643a4dd3781c4bed6537f", + "sha256": "127b2j0gfrkzb4g5p7hfv505afllhspni4w91kwgccf4b1a9di99" }, "stable": { "version": [ @@ -57566,6 +58894,24 @@ "sha256": "0dd4n0c1rbqcy7hl6gb9nqjj7hfv4566d6ipdlnxjma0zjs84sjf" } }, + { + "ename": "lsp-pascal", + "commit": "41e4088e4b0cd99aafac40c83188112a680a65f7", + "sha256": "08zvh9r1plnirdp8qb0p8xfq0y7qx7awq98gn8340f5zbwh9006q", + "fetcher": "github", + "repo": "arjanadriaanse/lsp-pascal", + "unstable": { + "version": [ + 20200422, + 1610 + ], + "deps": [ + "lsp-mode" + ], + "commit": "b132bdf66748e4abe0d4140f6d061b1ccd56082a", + "sha256": "09v79p6wsp775ky1wy5fr0hwh5j33jvdvcarjs20zbdwnrs53am8" + } + }, { "ename": "lsp-pyre", "commit": "5b243c6ab0a441531e02dc8fdd88c023ba505d25", @@ -57592,15 +58938,15 @@ "repo": "emacs-lsp/lsp-python-ms", "unstable": { "version": [ - 20200223, - 2136 + 20200425, + 555 ], "deps": [ "cl-lib", "lsp-mode" ], - "commit": "5d0c799099aa5810858174f390e28fff3894bc06", - "sha256": "002h0i93blsv092pnfmzsfx0pj98r9glki0ki9n7gxg1z3nb0ybp" + "commit": "19feb4aaaa03382e5d9841f237dd1685d8fe2994", + "sha256": "040qahn9h30n44ik0yrcdysx9lhvdnjxh1wj5nzylmzblxz9s2ga" }, "stable": { "version": [ @@ -57661,8 +59007,8 @@ "repo": "emacs-lsp/lsp-treemacs", "unstable": { "version": [ - 20200220, - 534 + 20200414, + 407 ], "deps": [ "dash", @@ -57672,8 +59018,8 @@ "lsp-mode", "treemacs" ], - "commit": "2e3606eebfa8bd909b45b88e59d8eecc6afea4a2", - "sha256": "08xpf677jj1cnfkbpb148h3wld8lvlarp2yq89539nfcmajx53ch" + "commit": "9d1a42b7d7abb112035f05f50ffde9834da034ae", + "sha256": "1kbr2ndbg0lqjcnsyvmpv513kzj3gy0kd0wa18ixh96i92a2znar" } }, { @@ -57684,8 +59030,8 @@ "repo": "emacs-lsp/lsp-ui", "unstable": { "version": [ - 20200311, - 1837 + 20200402, + 839 ], "deps": [ "dash", @@ -57693,8 +59039,8 @@ "lsp-mode", "markdown-mode" ], - "commit": "e91d52629c8c0934c9dfa924ea44aeaebe70097d", - "sha256": "0yq7768jnf5i68rla8sjyic5xihywyzfs8jxqbjlrrvz2m1mjr0r" + "commit": "242dfe859c3497c456eaacfd84942e12419529fe", + "sha256": "1sx4nn6mkqhxp67jvh8pp0i4g26rzyvlq2b59r7ipmxh91c2a4fh" }, "stable": { "version": [ @@ -57719,11 +59065,11 @@ "repo": "immerrr/lua-mode", "unstable": { "version": [ - 20191204, - 1434 + 20200405, + 1305 ], - "commit": "1f596a93b3f1caadd7bba01030f8c179b029600b", - "sha256": "0fdnkv37m7nf8yjjf01c856g2wrzyzqicv67fnbrnx7abrrfb1nd" + "commit": "658bf8f6c2bdcfe41cd14f5fb651563b41d0fbaa", + "sha256": "1qaqp2s5fnb2zz3bzc1yx79ilqxrf04lmd5gkk56nka4flyslp80" }, "stable": { "version": [ @@ -57774,14 +59120,14 @@ "repo": "sjbach/lusty-emacs", "unstable": { "version": [ - 20200115, - 1413 + 20200415, + 1456 ], "deps": [ "s" ], - "commit": "3f4be19e0c466399c680a355c402b09792123e4d", - "sha256": "1915w43dwvqkklxdh1scy4yxzmalyyrx76iy9wl024svwjq3i0np" + "commit": "1b7053b41083666c6805bcaeb55ece6dcc0d77cb", + "sha256": "1y3nzp6rpg7anv5xscbp4lzmfdvzffcxha9vx3mrclhjg6giz510" }, "stable": { "version": [ @@ -57840,26 +59186,26 @@ "repo": "montag451/lxc-tramp", "unstable": { "version": [ - 20180523, - 2024 + 20200414, + 1445 ], "deps": [ "cl-lib" ], - "commit": "1aab85fef50df2067902bff13e1bac5e6366908b", - "sha256": "066qwyk38r42xriifg1ik2f0am0m57wlfrk5278sycr8vbag6fc9" + "commit": "1585e55a5deb89e2f4e30a0ad9e0f121d1e0ebcb", + "sha256": "1zs4wcbxqx8275j2q1118ipqw7532cd6cdy2whw22ck4z5w47vfg" }, "stable": { "version": [ - 0, 1, + 0, 0 ], "deps": [ "cl-lib" ], - "commit": "17fc5962e7c27ac4f0bcc4ed7312dd5709063341", - "sha256": "03h6aw98mbwwqj08bzpg147hanx97r8fr8jv790zw7iqqjp46hsm" + "commit": "1585e55a5deb89e2f4e30a0ad9e0f121d1e0ebcb", + "sha256": "1zs4wcbxqx8275j2q1118ipqw7532cd6cdy2whw22ck4z5w47vfg" } }, { @@ -58140,8 +59486,8 @@ "repo": "magit/magit", "unstable": { "version": [ - 20200307, - 319 + 20200425, + 2117 ], "deps": [ "async", @@ -58150,8 +59496,8 @@ "transient", "with-editor" ], - "commit": "1916e83aa463fee86ac1c6bcfd80d780d0544901", - "sha256": "1bnykbb868dna4j91kp5jzi7ab4siiy1ni228x8i50cmfm4i91in" + "commit": "8de6ecf5c5c840f8a964c3e5bd4d7a1aedf04e10", + "sha256": "0fwaasr7g4qj9l8dxcy1228p2rpb2xy16w2g27gqdzyd6a5sc2jw" }, "stable": { "version": [ @@ -58186,8 +59532,8 @@ "cl-lib", "magit" ], - "commit": "9ffebd50a18adba70a9cfc2710012dfd650c5376", - "sha256": "0sihrmk9snazdj1dana7q89a5qd7xjclhmfqh15gvxchs4a8jwqg" + "commit": "0bc96737634e78ac7c7f8a3f73190531c0890914", + "sha256": "1lm8412n2046fz8n7rfbadyww2074lsxq0w4gm1x1alraz5im5h4" }, "stable": { "version": [ @@ -58478,8 +59824,8 @@ "libgit", "magit" ], - "commit": "1916e83aa463fee86ac1c6bcfd80d780d0544901", - "sha256": "1bnykbb868dna4j91kp5jzi7ab4siiy1ni228x8i50cmfm4i91in" + "commit": "8de6ecf5c5c840f8a964c3e5bd4d7a1aedf04e10", + "sha256": "0fwaasr7g4qj9l8dxcy1228p2rpb2xy16w2g27gqdzyd6a5sc2jw" } }, { @@ -58627,14 +59973,14 @@ "repo": "magit/magit", "unstable": { "version": [ - 20200226, - 1251 + 20200425, + 2044 ], "deps": [ "dash" ], - "commit": "1916e83aa463fee86ac1c6bcfd80d780d0544901", - "sha256": "1bnykbb868dna4j91kp5jzi7ab4siiy1ni228x8i50cmfm4i91in" + "commit": "8de6ecf5c5c840f8a964c3e5bd4d7a1aedf04e10", + "sha256": "0fwaasr7g4qj9l8dxcy1228p2rpb2xy16w2g27gqdzyd6a5sc2jw" }, "stable": { "version": [ @@ -58874,22 +60220,22 @@ }, { "ename": "magma-mode", - "commit": "59764a0aab7c3f32b5a872a3d10a7e144f273a7e", - "sha256": "1gq6yi51h1h7ivrm1xr6nfrpabx8ylbk0waaw04gnw3bb54dmmvc", + "commit": "0a82892371eb390d8a802919458c6c2baacd1597", + "sha256": "134zm9mg7p0qcqr0m7wsxnwqxr64s9z1njxmvjhsbxi3rhaivcsl", "fetcher": "github", "repo": "ThibautVerron/magma-mode", "unstable": { "version": [ - 20200305, - 2108 + 20200312, + 1306 ], "deps": [ "cl-lib", "dash", "f" ], - "commit": "7cdfa21495b20cd9e2697ea1475ca3ec69fab0b4", - "sha256": "1brwlbbyfb357vf0l0wf30yk9s66fhl3l2ncg840p6xpw9kk0dnc" + "commit": "0d810239be625b3f8a82f4e27ffd311fc2e1841e", + "sha256": "0ibr94vlpa6hnycgssbm5fip0zvrw8rx24mvmq36a4qgd6qi7g4j" } }, { @@ -59210,6 +60556,36 @@ "sha256": "074bm7kfvslfl06zjrp7h0plbx6aqagzppczgnpslqa41373b8jx" } }, + { + "ename": "manage-minor-mode-table", + "commit": "5171175442458748f355bf2eba51dde77a6cd480", + "sha256": "1mbjsd8av94r9qkb6xwpvyhkgm35cpbqm7j1mi1msc3mz3mzx7mz", + "fetcher": "github", + "repo": "jcs-elpa/manage-minor-mode-table", + "unstable": { + "version": [ + 20200302, + 1517 + ], + "deps": [ + "manage-minor-mode" + ], + "commit": "cd126cbeb2e99c8d00b48310938a85448ebc2e1a", + "sha256": "1lk2rmv0qhzfyg57h461qdxgqciwqjggipl9i146m9bpjp7bjjvx" + }, + "stable": { + "version": [ + 0, + 1, + 1 + ], + "deps": [ + "manage-minor-mode" + ], + "commit": "0636f376d9bc169bd1bd20c5847eb9f029b9467c", + "sha256": "1n4a9msfzspk0dfkr1i515ibrwg5yk3hyap2kym05yqpn4wq5xwp" + } + }, { "ename": "mandm-theme", "commit": "855ea20024b606314f8590129259747cac0bcc97", @@ -59459,14 +60835,11 @@ "repo": "jrblevin/markdown-mode", "unstable": { "version": [ - 20191230, - 1055 + 20200421, + 2222 ], - "deps": [ - "cl-lib" - ], - "commit": "e9dff50d572caa96b68a7466c18c97a8d6ed651c", - "sha256": "0v7a56fqwaqzqkpip7lpbsf9jnnwfjwd3jf61xnziv6j9sa46p1d" + "commit": "365697302345f8b9dc10bc975477452a282f7ae0", + "sha256": "1afjp0j5498zzbl8ycrz37cqdssfjlxcx5g4addzv0xaicfghgk6" }, "stable": { "version": [ @@ -60046,6 +61419,24 @@ "sha256": "10xxgvzjb7bl3lzgjkdsnnkd9wphkc2pm621agyjlayzcjnldz5p" } }, + { + "ename": "mc-calc", + "commit": "a8cded39a6c14d34f618aba136d48e162a70c433", + "sha256": "1lphlavndz0m3pw2kcrbqkavvcgmzn2p3av0h60ghndz00psqbys", + "fetcher": "github", + "repo": "hatheroldev/mc-calc", + "unstable": { + "version": [ + 20200420, + 1836 + ], + "deps": [ + "multiple-cursors" + ], + "commit": "74a046a5728919a4d1135ca62738326b0dde278c", + "sha256": "0498088pgbpywqdla8mzhpq4izzbdbqwq9cjzg0050y598pinpqq" + } + }, { "ename": "mc-extras", "commit": "12747bb8603ebc09ce0873f3317a99e34d818313", @@ -60345,6 +61736,25 @@ "sha256": "05gfprcrh9p06arsni58nf60inlf1zbd18i678r9xd4q0v35k491" } }, + { + "ename": "meow", + "commit": "b5515ad6f1b8e8296fba5bd91d7adf5e1fc229b4", + "sha256": "1s9wqmxg1g8crhsvwn4fh3hkn7pyfj5x71fal9yl0fk6gx59n1p0", + "fetcher": "github", + "repo": "DogLooksGood/meow", + "unstable": { + "version": [ + 20200425, + 1327 + ], + "deps": [ + "cl-lib", + "dash" + ], + "commit": "f9e4296ed96ca31c8197ba8a5576fc94ee433755", + "sha256": "0dgdf6xlylnnsm7954xa8vf50x4mfcr8gvajrcii2shbcb23b8c8" + } + }, { "ename": "merlin", "commit": "9338298a79b7f2d654df90b0f553aeed1428de13", @@ -60356,17 +61766,17 @@ 20191025, 851 ], - "commit": "a3eb8ce9a52d48cb521eb2c01297fd224ccf25ee", - "sha256": "0i8nxaqb2icw0arbjin23p1ah6p9v4dbvrdr7sak3fm7hxv1v7yi" + "commit": "21f4ba18acd9ca3dc5c8263acfc46042a6aa557e", + "sha256": "1sp1g70wy8qp34641hlpk5xaf7vv359xgwc7z8cw7yvj39mn98va" }, "stable": { "version": [ 3, 3, - 3 + 4 ], - "commit": "73e9771bcc1c8f8575b505a62c58ad40004cf5f7", - "sha256": "12mh5p87rjwvkf6dqmxka4jbvhcd729972b726im6v0a27ncqh77" + "commit": "21f4ba18acd9ca3dc5c8263acfc46042a6aa557e", + "sha256": "1sp1g70wy8qp34641hlpk5xaf7vv359xgwc7z8cw7yvj39mn98va" } }, { @@ -60406,14 +61816,14 @@ "repo": "abrochard/mermaid-mode", "unstable": { "version": [ - 20200221, - 1938 + 20200420, + 2258 ], "deps": [ "f" ], - "commit": "833abce1fb232b7dbeac0ee568afe8c468077029", - "sha256": "0znc9sv5xv0bqq4szcaz6nlxypijqm5lmi0igkcpibry6bwfipgj" + "commit": "b8673381ff8bbfbdf3f165ae928e7c775a3117e9", + "sha256": "14w2mwqiksmng8pzm4l0c458q0i2m3p4wcfvvmagyqk6mfl05m4l" } }, { @@ -60534,8 +61944,8 @@ 20191018, 242 ], - "commit": "0177fc4e7edd705db59b82c83a24db51dc405890", - "sha256": "1whl7kz4im2jmdz99336wfn152q0l3qwii4w7sn45rlsm2sijiw1" + "commit": "60eae1c8a7f82fbcc2660d785b33601daaa29f4b", + "sha256": "06ia4ba6c1yph259wr4y5sdkl1ry6pzbwhx807ia675rp0clp9hz" }, "stable": { "version": [ @@ -60555,14 +61965,14 @@ "repo": "ianxm/emacs-tracker", "unstable": { "version": [ - 20200126, - 1851 + 20200419, + 1758 ], "deps": [ "seq" ], - "commit": "4da64b60091c3d7b23c7c5fd3dba981122b0e1f7", - "sha256": "1jy07b1am1g4hwiwywmi9iyidv3yp933j2y4f9nmfhpb4yjs193y" + "commit": "287ced1bd51080897b2d6084f72f4a697e9b7e94", + "sha256": "190jpvd1li2185d1m9k2md5x0fz156a7lwwl57n4ir54j4h0s8ri" } }, { @@ -60588,11 +61998,11 @@ "repo": "kazu-yamamoto/Mew", "unstable": { "version": [ - 20200130, - 145 + 20200316, + 221 ], - "commit": "bdafb13aadeae6af73dadd9f6b383ea6903da32f", - "sha256": "09k9bkwf6hz8jnklsm30w79v3vkwsf5nd97cxfmi44j7wlb6kkr1" + "commit": "5145145f87bfbe80fd91e82ded33033cf78ef54f", + "sha256": "0wdbgh3bady6xad0gnlg3irds5vdffl8d39raqayzgn17yb98pcf" }, "stable": { "version": [ @@ -60618,6 +62028,36 @@ "sha256": "09b0292d87xm5mrhfhv7j11ljl4j9hv8h5dibzrrlh1b3vsg2xkj" } }, + { + "ename": "meyvn", + "commit": "b7ff8ac12f51e775228a7c916126830802038cf0", + "sha256": "1yq90c7s8kb0w25w49wjia84sjhbgjdvjxsl98cdhcf9h6adls6p", + "fetcher": "github", + "repo": "danielsz/meyvn-el", + "unstable": { + "version": [ + 20200311, + 2209 + ], + "deps": [ + "cider", + "dash", + "parseedn", + "projectile", + "s" + ], + "commit": "5eb0423d4b7083cb330a73ef1cfd3e0dd8538567", + "sha256": "0vk2d59jvzhdm47w4kcn58njps444i0350lp5z7dnzhaag10dwc0" + }, + "stable": { + "version": [ + 1, + 0 + ], + "commit": "3119214ff45db630789f9371f956d5ac06229b1d", + "sha256": "0mnvc3f56x4icrqmc4kx6bzc9vac40f020npimdgiylbmyxj97vn" + } + }, { "ename": "mgmtconfig-mode", "commit": "4cf3dd70ae73c2b049e201a3547bbeb9bb117983", @@ -60629,8 +62069,8 @@ 20200104, 108 ], - "commit": "3bce96bbd509ad5ffb35ead52128dec5c1a67abf", - "sha256": "01wx7cvk3bvdvkpldhbj7wvqyrra7ajqjkgnj4knjg8m2wrhilhj" + "commit": "e9af8a2595e336542c9dfc656fe808ddc6937a59", + "sha256": "1s72qvg1jwqk27axiqb2wn7y1q3x0rf2mb20yc9kqva553fk5vzd" }, "stable": { "version": [ @@ -60656,8 +62096,8 @@ "deps": [ "calfw" ], - "commit": "86d3682ff9491893da671237be3cde0b0010ca85", - "sha256": "0md61pfjvx8xakahpig39ldfzvwdjgr19qxr78c7bzl98hbjpgq4" + "commit": "f9f048de9fe85a90d376d828ce3dad2a96c62c40", + "sha256": "1m6w12y9dcz85xm7lc7dhc7vjhw0bhdm0b4rcp1fr2sn9wv7c4wz" }, "stable": { "version": [ @@ -60779,17 +62219,17 @@ }, { "ename": "minesweeper", - "commit": "5b7972602399f9df9139cff177e38653bb0f43ed", - "sha256": "1n6r3a3rl09pv4jvb7ald1gaipqylfchggza973qv9rgh5g90nag", - "fetcher": "bitbucket", - "repo": "zck/minesweeper.el", + "commit": "d3828ad7599d13728b5571b882344c3ada434b85", + "sha256": "061l7xh7vjg5krz5lskj2jvrnsv2qq4bwg0qkkysmy4zp9f3m5iq", + "fetcher": "hg", + "url": "https://hg.sr.ht/~zck/minesweeper", "unstable": { "version": [ - 20150414, - 522 + 20200416, + 2342 ], - "commit": "d29af12fc6115399c11bdf7461a74cb810c97336", - "sha256": "1b2kn4c90hl07lzdg10wamd4lq8f24wmaj4zvr728pwyga99b2av" + "commit": "d4248e3c9b3e9e7277cb9e6d081330611898f334", + "sha256": "0b648nsnwn461r2alg9v220v0c4djyvwn7xgwh8c8sb9pjwbmw90" } }, { @@ -60810,6 +62250,21 @@ "sha256": "14i06i999wfpr0a0lvhnh6g4mm5xmawscjd9d7ibc055h94h3i2a" } }, + { + "ename": "mini-frame", + "commit": "2a10ea61ac4a3c8fa800f4107f256fa3ac5907f2", + "sha256": "06zv8qmbvzqzinmb5zcd40a43kmmq7mby6dgacpq81cg5azyfkr7", + "fetcher": "github", + "repo": "muffinmad/emacs-mini-frame", + "unstable": { + "version": [ + 20200424, + 852 + ], + "commit": "3aa8de59d170d7bdc16e5f829d952d82abd7739c", + "sha256": "02j2w4c4wvqr1csmr94rzhbrwhqfb5wmjngxa9wl58z1plwy4d8m" + } + }, { "ename": "mini-header-line", "commit": "122db5436ff9061713c0d3d8f44c47494067843e", @@ -60833,25 +62288,25 @@ "repo": "kiennq/emacs-mini-modeline", "unstable": { "version": [ - 20200309, - 413 + 20200424, + 647 ], "deps": [ "dash" ], - "commit": "4d97bf35cf0f9d58b14d13a78172c15463820382", - "sha256": "0cqzqrc8wpxav08fx9n1ljpzf97hj3wdhizywj4avnyxj3g63zwi" + "commit": "4f1dce78916cccd2e7066345ae2be3394a675c46", + "sha256": "0qbd6jdaqfs43i9cgs4n4d8vkv3nbcxcmwkd9xrj1d03rdmyzxh0" }, "stable": { "version": [ - 20200308, - 730 + 20200408, + 729 ], "deps": [ "dash" ], - "commit": "aece47d83b4fe24942eb9a3f748f60c3c0f69a56", - "sha256": "18inykf5wx767kkqjjc5bzdy8rqyqg0y7q2r6lxxmph06mbw1wva" + "commit": "b761e41479a2564e801ac6c427956203de3d62ca", + "sha256": "1ngggz4n35bklgya6ymc98w7y2annxcpdkikd5afd5jn8w7x2vxg" } }, { @@ -61123,6 +62578,21 @@ "sha256": "0ai4ff6hinajvnp8r86s5pv0rrv8h68ncdz4k98kka1ws2f79zdf" } }, + { + "ename": "mix", + "commit": "aaa1958ac6a0e59613e1b71e0eddbe4989d93e67", + "sha256": "1wflzfr7jgvd01il9zz96wasdyjxxi5nrzva9hlrkgqhp0h877sk", + "fetcher": "github", + "repo": "ayrat555/mix.el", + "unstable": { + "version": [ + 20200419, + 820 + ], + "commit": "37916fa5f7dfe448585fb83ea6253eb0f84df15f", + "sha256": "09pk4bakqz01ci06c79ywwb8ijdfgw3rxrz0wlaz4zmlbirkzma6" + } + }, { "ename": "mixed-pitch", "commit": "7d3c7af03e0bca3f834c32827cbcca29e29ef4db", @@ -61131,20 +62601,20 @@ "repo": "jabranham/mixed-pitch", "unstable": { "version": [ - 20200310, - 130 + 20200321, + 1331 ], - "commit": "60907165f118648d658572c578f9fd642bd42beb", - "sha256": "0icflm968n89p6kayy8rxm5sll4pxqlnk5pfqq648y3zg273lfk6" + "commit": "734fbdf2d2c17beee151faf39bd10174a87eea5d", + "sha256": "1i0yd7akkyqhkd8g2g793n6syiy0mbnlq9apg7p1s4xycmwxx684" }, "stable": { "version": [ 1, - 0, - 1 + 1, + 0 ], - "commit": "15bb9ec6d8be0812a46917205be6c3a1c78f68ff", - "sha256": "1458sy5b6bis1i0k23jdqk6hfqg0ghk637r3ajql2g19ym48rf58" + "commit": "734fbdf2d2c17beee151faf39bd10174a87eea5d", + "sha256": "1i0yd7akkyqhkd8g2g793n6syiy0mbnlq9apg7p1s4xycmwxx684" } }, { @@ -61165,6 +62635,21 @@ "sha256": "1d08i2cfn1q446nyyji0hi9vlw7bzkpxhn6653jz2k77vd2y0wmk" } }, + { + "ename": "mlso-theme", + "commit": "2e026e2511ead77022cf8ed9d45d0d5a5aa104b9", + "sha256": "1abv6zhz28x5yk0rjn19wjxwvdq0ps3j2sx45n0dlbqfrqgw86d1", + "fetcher": "github", + "repo": "Mulling/mlso-theme", + "unstable": { + "version": [ + 20200329, + 1516 + ], + "commit": "a4bb7b55ce81d8dcc0ad8d92acbde309c7cc1ea0", + "sha256": "15fmzsf5rpgx5f1fr45j24hgzmz95zxkj1jihdb64p049ak2h5a9" + } + }, { "ename": "mmm-jinja2", "commit": "721b9a6f16fb8efd4d339ac7953cc07d7a234b53", @@ -61305,8 +62790,8 @@ "f", "js2-mode" ], - "commit": "33e1b521a8a8d0225df353b51f1e8a4588ee32d0", - "sha256": "1ln6wz452sfxy7ii211ha9p0n3pygxyzyk0raczfla3ln8dh989q" + "commit": "cfd5b1a8a32162575f1c30b82e17b74efb67cf1c", + "sha256": "015pinqd2bxac372dvmcxnc7z9qayq4xpa254sp31bdzn4r5xns4" }, "stable": { "version": [ @@ -61507,6 +62992,29 @@ "sha256": "0jg5yix4c18gvy5n4wsi7zg2sb7r0bw0xlmq0w15g3z63nhy69vc" } }, + { + "ename": "modern-fringes", + "commit": "c765214f003426ac7a0e98c5764b14dd61ccce52", + "sha256": "0acp18v97k2iahbd5kp240g46wqdmrk4ddrsgvckzm0chsmjmm8q", + "fetcher": "github", + "repo": "specialbomb/emacs-modern-fringes", + "unstable": { + "version": [ + 20200321, + 1817 + ], + "commit": "108daba8407dc8acf140157e7f49137c397a0af7", + "sha256": "15370yw3147fzx8ly1svk7xvm0l9fg2gbzd8sx9ls93nyml7c5k7" + }, + "stable": { + "version": [ + 4, + 4 + ], + "commit": "6884dd16e4d76dedd792f0c5fed48ca8a2f11222", + "sha256": "10h5557sppi41pgbbjsffc9n67h8ja28skhdlklc0n6zap71m87s" + } + }, { "ename": "modtime-skip-mode", "commit": "486a675ca4898f99133bc18202e123fb58af54c0", @@ -61530,20 +63038,20 @@ "repo": "protesilaos/modus-themes", "unstable": { "version": [ - 20200311, - 1733 + 20200425, + 1503 ], - "commit": "23c67bcb185951e3d9e4b90669e5c1ea4c80c7ba", - "sha256": "120v3m9ljcsznbmqdl4c5blv4ry3qckrqk2p917dk3z21zbll05q" + "commit": "0344a1b534468bdf072040d467ac853215d4fa63", + "sha256": "1bpryv6i8vm3g7avhns7nr65d82zq5kahh9kap7zg4w2a4gx1hl7" }, "stable": { "version": [ 0, - 6, + 7, 0 ], - "commit": "a9d1ae86522f158eea2410571ec992775e04b284", - "sha256": "15z6qq0b0npp7hscmh04i3mi10bynzdy52fv2b160nji264zvcwa" + "commit": "cedb331001d0623eb003591b2f650b8e5e4069ed", + "sha256": "0nw3jlx2h9127y9b8mmyrps9jyvr33yz2dr9q33j9fll1b8wapn0" } }, { @@ -61554,20 +63062,20 @@ "repo": "protesilaos/modus-themes", "unstable": { "version": [ - 20200311, - 1733 + 20200425, + 1503 ], - "commit": "23c67bcb185951e3d9e4b90669e5c1ea4c80c7ba", - "sha256": "120v3m9ljcsznbmqdl4c5blv4ry3qckrqk2p917dk3z21zbll05q" + "commit": "0344a1b534468bdf072040d467ac853215d4fa63", + "sha256": "1bpryv6i8vm3g7avhns7nr65d82zq5kahh9kap7zg4w2a4gx1hl7" }, "stable": { "version": [ 0, - 6, + 7, 0 ], - "commit": "a9d1ae86522f158eea2410571ec992775e04b284", - "sha256": "15z6qq0b0npp7hscmh04i3mi10bynzdy52fv2b160nji264zvcwa" + "commit": "cedb331001d0623eb003591b2f650b8e5e4069ed", + "sha256": "0nw3jlx2h9127y9b8mmyrps9jyvr33yz2dr9q33j9fll1b8wapn0" } }, { @@ -61730,11 +63238,11 @@ "repo": "belak/emacs-monokai-pro-theme", "unstable": { "version": [ - 20191115, - 714 + 20200318, + 830 ], - "commit": "622e3a7203907978ce0d2409e3df2d65c63ce938", - "sha256": "08gl9wcr4xi1v8750j2bqvn0szv2iifi3y8ay9c9lscqax9knx83" + "commit": "90f34d48baad78a86f60eb3fae902c545bb82505", + "sha256": "0sjxyvv16jm2xss6kxiankn9n92z52l20p2mkv95p2bd47mxn5iw" } }, { @@ -61745,11 +63253,11 @@ "repo": "oneKelvinSmith/monokai-emacs", "unstable": { "version": [ - 20190801, - 1701 + 20200416, + 2001 ], - "commit": "e407f51d34b0c30cfe9d815f80a0c3539b998b08", - "sha256": "0psz6z59v0fdl846vaydqrhmy4swxcvz6swa523rcpjxlp3w2vyq" + "commit": "4281fc13dadef98942c8d43024de024f2392fec5", + "sha256": "0049ny3m1mgn0b97m0clcmmh2xzn66flbsd8k45dn0qxm5wlaj3n" }, "stable": { "version": [ @@ -62369,16 +63877,16 @@ "repo": "kljohann/mpv.el", "unstable": { "version": [ - 20180602, - 1014 + 20200315, + 2158 ], "deps": [ "cl-lib", "json", "org" ], - "commit": "9dedf3b7c1bfd778284df7f394207ce0447ea7aa", - "sha256": "15z62wi47pwvkbh4qgvz06yk4cyy570pjz1276sd9frdwgd4kc19" + "commit": "2d40c4550558eb1bf35a69446777c4e9cae7a623", + "sha256": "0f9iq83dfj73gbx7zndvh32b102582lzv4xb8gvqjs26k5bywdxj" }, "stable": { "version": [ @@ -62441,6 +63949,21 @@ "sha256": "1ci1w4yma6axiigz55b2ip0r7zy8v215532jc0rkb3wyn14nsrh7" } }, + { + "ename": "msgpack", + "commit": "773cb12f9aef4ad45179cb7dd07275d886907836", + "sha256": "1vcbngsr0xpqy00g837p2awkin82s145ksh223c1msszwwwgdx5m", + "fetcher": "github", + "repo": "xuchunyang/msgpack.el", + "unstable": { + "version": [ + 20200323, + 515 + ], + "commit": "90e3086f259549b1667a3c5b9aa2d70aaeaa4d3d", + "sha256": "0g9a59x7xjf1p2swbi3v8bawdwkqliw3kcg70bca5dgg2jxgd4z6" + } + }, { "ename": "msvc", "commit": "69939b85353a23f374cab996ede879ab315a323b", @@ -62524,11 +64047,11 @@ "repo": "cdominik/mu2tex", "unstable": { "version": [ - 20190520, - 503 + 20200329, + 758 ], - "commit": "9467076ee4115d7fc19abaeadecc603e9115bf8d", - "sha256": "1acyynjrr5pxn15g59hd3cq1yvx989ks1b79g1kmhb1cqfpz58b8" + "commit": "536a7a0db4ddbdb30a16fdd56c79b78c9b50d865", + "sha256": "18s4mks7yxbxlhdkn9s2bgxyl14rv7ds7n6c7g3pzjd94j404b64" } }, { @@ -62605,14 +64128,14 @@ "repo": "agpchil/mu4e-maildirs-extension", "unstable": { "version": [ - 20200302, - 1228 + 20200410, + 820 ], "deps": [ "dash" ], - "commit": "bd81c3e1c1f690b124937960acd2a819e9a2483e", - "sha256": "0v6aih6gqzg631kpqrqgkj8nw6d7i5ih2qnmraf3i29m5y6gqync" + "commit": "36b1f3a561af173eccc7bebf10ee060af44ed6e7", + "sha256": "1k8xar4yal5nc4ixx78gvs4fvlxpa2c4fzkq3xzh6jwfbrc7g013" }, "stable": { "version": [ @@ -62821,6 +64344,25 @@ "sha256": "1bn6zx931vz2fa72ab999r33bxv8brn3cqmalvq25x7s4z3q1lyi" } }, + { + "ename": "multi-vterm", + "commit": "c87a280364597340baee7711aa33302c0a349fa7", + "sha256": "1dn1m30qmhv4sl84gki8l46rrkabn3ka7nb075q25h1b8lhhijci", + "fetcher": "github", + "repo": "suonlight/multi-vterm", + "unstable": { + "version": [ + 20200329, + 940 + ], + "deps": [ + "projectile", + "vterm" + ], + "commit": "11f1b0cc97a24aba66fb561a0a94e9a66375b30f", + "sha256": "0pzcwn13yj21qcga2agcv8as0jyrmw055fr8nbzvkp1jml4l3vwj" + } + }, { "ename": "multi-web-mode", "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487", @@ -63611,6 +65153,21 @@ "sha256": "1dyc50a1zskx9fqxl2iy2x74f3bkb2ccz908v0aj13rqfqqnns9j" } }, + { + "ename": "native-complete", + "commit": "abc5469b4400ed05192dcfd6c00504768f05292e", + "sha256": "0y1zqmd34jswfw5fi3j6n0d9dhpvl14x3h5nfl6wmxj2g8vv4gns", + "fetcher": "github", + "repo": "CeleritasCelery/emacs-native-shell-complete", + "unstable": { + "version": [ + 20200424, + 1635 + ], + "commit": "ccb5b52940a9374fbfe92947f0101e7254ba445d", + "sha256": "0p3qrl59qhczwysydsak66j7ixpykr3397xdvjj3hkmmcrsachic" + } + }, { "ename": "nav", "commit": "0fda2b54a0ff0b6fc3bd6d20cfcbbf63cae5380f", @@ -63764,11 +65321,11 @@ "repo": "nickav/naysayer-theme.el", "unstable": { "version": [ - 20191207, - 1936 + 20200405, + 123 ], - "commit": "22ac2901c7dfbc73f802f6280621fa4e2f92ff78", - "sha256": "1n6c43l0c8csagsajc7ibg4395qmigfvhsprba0xgqm95pl7whd9" + "commit": "9d0bef898f31368cd30e063d53d443dee29683b0", + "sha256": "1jbp8p58bjc0wxs548niv02q9889blnwwfs64h5sm96nzhyzrkn0" } }, { @@ -63836,8 +65393,8 @@ 20161029, 2023 ], - "commit": "7c63573fe66897b089963e9831546e5de7787c5a", - "sha256": "15cwfma9cq8i9x8cpaanzjgszddgvxbkn9q5aci0nnvl6nggqzpn" + "commit": "ae60dc55822ea1715b203775179080c5d62700d8", + "sha256": "0q46r9r2vc50vn3bh321l317lgbbmmbylhgbxllbjpyaidfqzvb9" }, "stable": { "version": [ @@ -63880,14 +65437,14 @@ "repo": "jaypei/emacs-neotree", "unstable": { "version": [ - 20181121, - 2026 + 20200324, + 1946 ], "deps": [ "cl-lib" ], - "commit": "c2420a4b344a9337760981c451783f0ff9df8bbf", - "sha256": "1wfx37kvsfwrql8zs2739nx7wb51m26vwlcz1jygbrb62n6wq14k" + "commit": "98fe21334affaffe2334bf7c987edaf1980d2d0b", + "sha256": "1m4d5l48k1frbkspk6wlzhbjn133bj7spp5chlgv8p4p9rpnc2zr" }, "stable": { "version": [ @@ -63993,6 +65550,26 @@ "sha256": "1xqp7aghc8xd1733azl27mjf57qvm0036qbkqmaks2ip8s8c6arj" } }, + { + "ename": "neuron-mode", + "commit": "6e4b79bc01b9ff2b00a4d0c80614f738a9e76dd6", + "sha256": "15ddpc64432013vn43amx0shnhr32cx1vkvn95chmddlkhx7ln16", + "fetcher": "github", + "repo": "felko/neuron-mode", + "unstable": { + "version": [ + 20200426, + 1310 + ], + "deps": [ + "counsel", + "f", + "markdown-mode" + ], + "commit": "aa97a6fbb5c3b33ad73a1ba31c7e50c8842091a1", + "sha256": "18nr1ayw9j3zfwj79qsqvf5nw36fqpyr2bq3cl93kck1adv949d8" + } + }, { "ename": "never-comment", "commit": "ef3f8e712c10d63fea009951d7916fe376267cbe", @@ -64239,8 +65816,8 @@ 20181024, 1439 ], - "commit": "1f3cc7b7207309c441ce5bf120b57081bbea0c18", - "sha256": "1y19f8qqd5bvkrpr3b8d18ff8qdi4j0fgha4dkb7zgjhi0rb9nb7" + "commit": "112217185e0351f9ad7fa17542862ac3c0922653", + "sha256": "0shby25dqy9hkb3chgshr2c3hqq6k35261sv3lw7zj5lxv9jrrkp" }, "stable": { "version": [ @@ -64415,6 +65992,35 @@ "sha256": "1lm7rkgf7q5g4ji6v1masfbhxdpwni8d77dapsy5k9p73cr2aqld" } }, + { + "ename": "nixpkgs-fmt", + "commit": "36f9451ad54c787f9e94bfda0e71de99da94be34", + "sha256": "1j9k4r25iylmrg0hbjb8jamrci3jxyrpx2baawmcyhqgxiz3lcz8", + "fetcher": "github", + "repo": "purcell/emacs-nixpkgs-fmt", + "unstable": { + "version": [ + 20200327, + 2302 + ], + "deps": [ + "reformatter" + ], + "commit": "cc8ee143d4ef45a8c540901852326ccdf6ff8482", + "sha256": "0a1ih8w8xk8rdd96k7236v6xh2xr1r6gaiv2b6js95k04igdqxnh" + }, + "stable": { + "version": [ + 0, + 1 + ], + "deps": [ + "reformatter" + ], + "commit": "83e03d6f20bdf79c1c448c15734367b1a7cc6b02", + "sha256": "0hw0m4a637w1fm47snywn0mxz09qa5diy4hqngbqf7gxfj6hmfnz" + } + }, { "ename": "nlinum-hl", "commit": "b13a886535a5c33fe389a6b616988b7377249625", @@ -64485,6 +66091,28 @@ "sha256": "1skbjmyikzyiic470sngskggs05r35m8vzm69wbmrjapczginnak" } }, + { + "ename": "nndiscourse", + "commit": "1d6a236cd3ff51f2d4cfca114b2791c8ac7411e8", + "sha256": "03kfb8c7knnd1n5sxxpldmscbwi5lrnsyh6w2ji4pvaq5xhmrlxb", + "fetcher": "github", + "repo": "dickmao/nndiscourse", + "unstable": { + "version": [ + 20200418, + 2355 + ], + "deps": [ + "anaphora", + "dash", + "dash-functional", + "json-rpc", + "rbenv" + ], + "commit": "103eb5c13ad2d154c9386b2aa9dbea532435ee7a", + "sha256": "04nympxjg1dhahk7m71769c5lzsxxsnd9c62lqrkn22gvfzm0wm5" + } + }, { "ename": "nnhackernews", "commit": "40fec106c676f8207ec9c4553c3ec16c626b098c", @@ -64493,8 +66121,8 @@ "repo": "dickmao/nnhackernews", "unstable": { "version": [ - 20200310, - 855 + 20200407, + 1525 ], "deps": [ "anaphora", @@ -64502,8 +66130,8 @@ "dash-functional", "request" ], - "commit": "ac896a7becd1dcfded728a36ce13cf7dcd823e04", - "sha256": "02gv1kc46aa7sbalh02sphaq50kgi055803cnxjbjvlqhlmwc2cw" + "commit": "d5e58b373ab6c5f13174e76f5ae62539dc5cfc95", + "sha256": "0gqqdjmasjs1p6nal9s2yhas1xr2nm99rd3rns2b8cd5j04ccvaz" } }, { @@ -64529,8 +66157,8 @@ "repo": "dickmao/nnreddit", "unstable": { "version": [ - 20200301, - 1930 + 20200417, + 1757 ], "deps": [ "anaphora", @@ -64539,8 +66167,8 @@ "request", "virtualenvwrapper" ], - "commit": "a7e6a3b93949da0a1cf91318ce8bd8cf5cfb2216", - "sha256": "0mcj4bdzhin9ibp3m6rrhqh54a2n07ck25djka3apqyd16dvx2y2" + "commit": "7f6e3bdbfa872af8e92ed339671772b46bc7f7f0", + "sha256": "1dbb4pm2dvyvgw6lxjhhdqplb1b1jbvnywy8d3abr5dpzfqzij8s" } }, { @@ -64566,14 +66194,14 @@ "repo": "emacscollective/no-littering", "unstable": { "version": [ - 20200309, - 533 + 20200413, + 2118 ], "deps": [ "cl-lib" ], - "commit": "05ef102cffd2f32061eacf2d379663122257f5b1", - "sha256": "0c75arxqb8p3bp1nasfcwy32al4ys3jv68q48dnc2addvjmld42g" + "commit": "ea8d8654365eeeea366a3ee0f51689987f2803a8", + "sha256": "02mgcz04xz9wkid3gkykbpjw3vriai7anyq3b61iv3pk9kcdp6x3" }, "stable": { "version": [ @@ -64619,8 +66247,8 @@ "dash", "request" ], - "commit": "532eb14328027ee29e124768feec23a8ef7ee798", - "sha256": "1qc9im01fw7k9907a9d2a87hndyyn3sk1kw31cylsvrzsb7ss9f9" + "commit": "ebc6a4a1cc56c01d2bb882e4a40934a6a1f4e9ca", + "sha256": "04zhhz8v6bx627g1vhvd0s8bl5g3d6a1mfgf7pb13627npsvbrdx" } }, { @@ -64702,11 +66330,11 @@ "repo": "abicky/nodejs-repl.el", "unstable": { "version": [ - 20200223, - 1449 + 20200320, + 1645 ], - "commit": "ed2052522d1770cc951863000f96165e0c42ec7b", - "sha256": "0a5mmg3cmdi73giblp07ksl06xzl9nb2m3f96ny4r3rv0ar3v1bx" + "commit": "6fad7d764fa0d818ba497450bd722ae10cb8efed", + "sha256": "0saky39n0p8w7lmalg3j4da0crrx40yz0rz1zdjzwpd2bd9v2izg" }, "stable": { "version": [ @@ -64834,8 +66462,8 @@ "deps": [ "colorless-themes" ], - "commit": "a7b7c0a32b174988f40378996cd8997f73524f19", - "sha256": "0khsf4xz0wjn774hy08pxafm79j55ns28q25pfzyj9s07hi4r0vz" + "commit": "2b4c341640c8191a39e4bc28d6cd04c7d6dcbb37", + "sha256": "0ni9cnrv464fk840i1ll241kzkiy1zc6nfrbdv3ciixxdxbshxbn" }, "stable": { "version": [ @@ -64887,11 +66515,11 @@ "url": "https://git.notmuchmail.org/git/notmuch", "unstable": { "version": [ - 20200109, - 114 + 20200416, + 1058 ], - "commit": "018ad3703ba46ea603854f51f8ff5ae86183cca0", - "sha256": "0vr17rhc74cf8k1n1snnfb82rzpsfc9xxcb8y2ydi0pbwd2h87r6" + "commit": "7b756d1e3885b70e81647a85432e0f2d043167c9", + "sha256": "0n0f6wsm6j980vxli6j6slixws45vgdbmw2xvwrs1j1h91vd0pc6" }, "stable": { "version": [ @@ -64911,15 +66539,15 @@ "repo": "publicimageltd/notmuch-bookmarks", "unstable": { "version": [ - 20200105, - 1041 + 20200322, + 1925 ], "deps": [ "notmuch", "seq" ], - "commit": "28a8e58521b50bfe0944f74eb2945521e03daad3", - "sha256": "0ma8rmxcq0xh1gskzyc8ay5681nidc340ghjryic3g30njidbiwd" + "commit": "ec8edfdbd1ac475530591d73a570ded5c18ed86a", + "sha256": "01bhxvjsmgxvh08r80lzlyj0wk1izx5bq22w6zsdzvxiclgrzk16" }, "stable": { "version": [ @@ -65033,6 +66661,24 @@ "sha256": "00h6nwbx2l0rp2i7n0328w6ckp4gkspqk3q91ciixb4lkhh20cz2" } }, + { + "ename": "npm", + "commit": "012ca672c63711197c98eded098b1d1a9a24fd51", + "sha256": "0zi4c5a8cn03i6jdranak586s580bw772vazslxa3zs1y3xripir", + "fetcher": "github", + "repo": "shaneikennedy/npm.el", + "unstable": { + "version": [ + 20200406, + 1429 + ], + "deps": [ + "transient" + ], + "commit": "187ddd2732deb49df1e87fbaace153afb8a3e7e1", + "sha256": "0kh8y0izab3rra5vb1229h77ykz704wh28m7vv0bsfn5lg02ridx" + } + }, { "ename": "npm-mode", "commit": "22dd6b2f8a94f56a61f4b70bd7e44b1bcf96eb18", @@ -65161,11 +66807,19 @@ "repo": "joostkremers/nswbuff", "unstable": { "version": [ - 20191210, - 815 + 20200312, + 2050 ], - "commit": "484ef531f67df358923dd5fef015233095928f8a", - "sha256": "10imnf6fq8bxbkzpnz47b55wjpf4mcr24ibnjrpy0z8rkf4i8gq3" + "commit": "a601855cc96e303e38051d0d1af3402721dbb969", + "sha256": "0xbh5max7wbsw3iaa5ai9l5brky3mykyzn77a4w5r1m1f4a67y97" + }, + "stable": { + "version": [ + 1, + 1 + ], + "commit": "a601855cc96e303e38051d0d1af3402721dbb969", + "sha256": "0xbh5max7wbsw3iaa5ai9l5brky3mykyzn77a4w5r1m1f4a67y97" } }, { @@ -65509,8 +67163,8 @@ "deps": [ "axiom-environment" ], - "commit": "2c5384b994266008a20558db4ffe0525e66c0f5f", - "sha256": "17f40w9r4whz0v007pp13w060jq87ag42p21hcj93c14py5s4g67" + "commit": "25932da0dc40c6877463cbf019b14ab05a6b0164", + "sha256": "1xbps0k4x982gh1a0pscpx4kayjjyykvm5pyj516wwkya7bac4a6" } }, { @@ -65956,11 +67610,11 @@ "repo": "arnm/ob-mermaid", "unstable": { "version": [ - 20191208, - 2346 + 20200320, + 1504 ], - "commit": "8dcbfab869829b586ce9992897a2ebe2bb52b770", - "sha256": "0h0aig17hsjisa2dyz6y7x748fwmb6908dc4sr043hq2hlv60bj7" + "commit": "cca09b64eff689d8bb15a77de9d4c7fe9845a1f9", + "sha256": "1wwmf14df2rnxlfs8bwb9p4q1a1plschbq2g9vqflphj6kv213m4" } }, { @@ -66055,14 +67709,14 @@ "repo": "alf/ob-restclient.el", "unstable": { "version": [ - 20200109, - 730 + 20200316, + 759 ], "deps": [ "restclient" ], - "commit": "c5c22e603531dca48575d0a425fddff16dc0f391", - "sha256": "19fs6ms6rj75w4v7p7z0k2004gnb246nksv20mb8cqjnzkj0495s" + "commit": "f7449b2068498fe9d8ab9589e0a638148861533f", + "sha256": "0s3931w9ab3yfml2pmq71rw21yf6hpg7m3vihxyy3vs6zli1cvmq" } }, { @@ -66370,14 +68024,14 @@ "repo": "clemera/objed", "unstable": { "version": [ - 20200311, - 1229 + 20200403, + 1500 ], "deps": [ "cl-lib" ], - "commit": "31c5dedd265ac3cdb0636460325ea9f7e1a26f60", - "sha256": "0gb71fzycmrqg0gyl2ahf2w82gapazrb6ddbk6wvylsaaf5ml217" + "commit": "e89d8dae3b2d4331a4455d2a7b203500537d184d", + "sha256": "1xjcbfqxpda73l8imw1pj9my71qqacri269cv7wnzsfrphqh526x" }, "stable": { "version": [ @@ -66523,10 +68177,10 @@ }, { "ename": "octicons", - "commit": "c62867eae1a254eb5fe820d4387dd4e8a0ff9be2", - "sha256": "02f37bvnc5qvkvfbyx5wp54nz71bqm747mq1p5361sx091lllkxk", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "0p66i8i2ksqld3bd0iq7f7ssskj1hp42s170q74crh3ilapjnkpq", "fetcher": "github", - "repo": "syohex/emacs-octicons", + "repo": "emacsorphanage/octicons", "unstable": { "version": [ 20151101, @@ -66588,26 +68242,26 @@ "repo": "oer/oer-reveal", "unstable": { "version": [ - 20200308, - 1805 + 20200413, + 1503 ], "deps": [ "org-re-reveal" ], - "commit": "9313251afc74536792f90423b3189180c632e1e4", - "sha256": "0dk151cy5fng75inknq4g24qvh9q0fzyak77qdkip3lsy670vlg1" + "commit": "6db38600d651f4aea77e0d411466be7fb6314f39", + "sha256": "11akmygscph5pq1zc889pmlp8ab91qk29lwrrp3gxmgy2s5x9mgf" }, "stable": { "version": [ 2, - 4, - 1 + 9, + 0 ], "deps": [ "org-re-reveal" ], - "commit": "9313251afc74536792f90423b3189180c632e1e4", - "sha256": "0dk151cy5fng75inknq4g24qvh9q0fzyak77qdkip3lsy670vlg1" + "commit": "eec26a088d19cd202417f662bb487b550230d11f", + "sha256": "1vj99sj71qf622gc9fy6kafp4ki7arqljj1dwkl4k2fnf4hv3af7" } }, { @@ -66670,20 +68324,20 @@ "repo": "rnkn/olivetti", "unstable": { "version": [ - 20200311, - 527 + 20200417, + 607 ], - "commit": "67e32a7754cda4c8d94227e80bfa708abb4e8e6d", - "sha256": "0928kn9yfwc2mhmja13y39iswlkk474xnszh9qza206j6r37h6p3" + "commit": "fa9757fbaa392be622ddf66c2535dfe4b5cca898", + "sha256": "196g4n2cr1w77k2a6582rc3c8fnnfps83f1kh76k8k3lvkjg8pjb" }, "stable": { "version": [ 1, 9, - 3 + 4 ], - "commit": "67e32a7754cda4c8d94227e80bfa708abb4e8e6d", - "sha256": "0928kn9yfwc2mhmja13y39iswlkk474xnszh9qza206j6r37h6p3" + "commit": "9005661e18d9eaaf1105018d084916e4927cc66b", + "sha256": "0ca80z6drsw9jkwijn6f05y1n7rmcypvh0yvsb77wnqrzd7y4p68" } }, { @@ -67139,8 +68793,8 @@ "request", "s" ], - "commit": "6819b6271960dcdc7c32981dadd48968a3640cef", - "sha256": "12frm9w6xh5rkfyvvvpwhdd55nlgsv8w4f52pch0sl437vidcsqg" + "commit": "4c15049079878fcd386cca5dba20b99296a1de84", + "sha256": "1avci3avwhrw040wwjgcv1hayk893y8iwln10vsjyb5rd78y9gsi" }, "stable": { "version": [ @@ -67175,16 +68829,16 @@ }, { "ename": "openwith", - "commit": "855ea20024b606314f8590129259747cac0bcc97", - "sha256": "0l3grbnn349cv26ap2phlmp2h94s68gqznh5zdqwc2cp7lf699sx", - "fetcher": "bitbucket", + "commit": "caca0b2bc2aaac563074cbb4ea4296fce749e203", + "sha256": "0swza74ndw0vkr7q513wp12c2yasla7aaqv0z98mzr0ssx12jld8", + "fetcher": "github", "repo": "jpkotta/openwith", "unstable": { "version": [ 20120531, 2136 ], - "commit": "aeb78782ec87680ea9f082a3f20a3675b3770cf9", + "commit": "1dc89670822966fab6e656f6519fdd7f01e8301a", "sha256": "1wl6gnxsyhaad4cl9bxjc0qbc5jzvlwbwjbajs0n1s6qr07d6r01" } }, @@ -67227,6 +68881,21 @@ "sha256": "1dwps9zv1jnc7m75j5cdla14pnv2vnivm5bq0zcvqfsvilvd38ds" } }, + { + "ename": "orderless", + "commit": "3f1f2c378e63c5ce8a8d37735f914ce0663a76d3", + "sha256": "102jfzq2zskaa8jcb4mmmndcdc8221qp0hqlgvwirnzkxms9ij4a", + "fetcher": "github", + "repo": "oantolin/orderless", + "unstable": { + "version": [ + 20200425, + 855 + ], + "commit": "b69b52289fdb0023a3123b1ddec5b490125345a3", + "sha256": "0vxpaqsad3x1lqga1ky7sipm8lk8ps66wpcvz52jdqasxmxzvrjm" + } + }, { "ename": "ordinal", "commit": "ea3dd6fe4cacc229dd1371cb66dd1cfd07321bf4", @@ -67525,30 +69194,29 @@ "repo": "Kungsgeten/org-brain", "unstable": { "version": [ - 20200229, - 2229 + 20200426, + 1410 ], "deps": [ - "org", - "org-ql" + "org" ], - "commit": "6b7fced8015387efd03f28e53be47c3ca8907d7f", - "sha256": "01s8cjgxfl5pplswy80qgxisiv7p1kmbq28g3xx1qn2w7pfiyfwa" + "commit": "ae7fe0f628bd093526786ece6917f7a4310e5e4d", + "sha256": "0szav8idqq2gmckaxqnjgcah978as2nhv43nl9vvvfkc9dc2l5x4" } }, { "ename": "org-bullets", - "commit": "fe60fc3c60d87b5fd7aa24e858c79753d5f7d2f6", - "sha256": "0yrfgd6r71rng3qipp3y9i5mpm6510k4xsfgyidcn25v27fysk3v", + "commit": "aa0e1ebac172a73bfed7d55cb4d9eb52178dcbdc", + "sha256": "0jcqgp23wgzdmw7il8phwiqdndwyjc7lcc27mk8rfip4ngp3wiyn", "fetcher": "github", - "repo": "emacsorphanage/org-bullets", + "repo": "integral-dw/org-bullets", "unstable": { "version": [ - 20190802, - 927 + 20200317, + 1740 ], - "commit": "c19b13be00df8d8dc596e4f1aef4a094b08ac801", - "sha256": "1rvhinwnz660mfz4wkr2wa51ss5cm4gzpwfvwc0s0srk14s2h66h" + "commit": "767f55feb58b840a5a04eabfc3fbbf0d257c4792", + "sha256": "01ll5b39wpx9qpqybndy58wkq97n512rg7j87482l1ry1s5b02d5" }, "stable": { "version": [ @@ -67601,13 +69269,13 @@ "repo": "IvanMalison/org-projectile", "unstable": { "version": [ - 20180601, - 242 + 20200329, + 313 ], "deps": [ "org" ], - "commit": "de37d0094791ab1146276904f3a37eba699e0b60", + "commit": "96a57a43555e24e5e0d81e79f0fbb47001c41bac", "sha256": "05h9scvnd9ggfwbbl1m124k6sdn5kp9mv2695cril2m4dkr1kyqz" }, "stable": { @@ -67631,14 +69299,14 @@ "repo": "Chobbes/org-chef", "unstable": { "version": [ - 20200220, - 2016 + 20200408, + 1328 ], "deps": [ "org" ], - "commit": "61686fd87892e60268fc43348282abbfd879e5c9", - "sha256": "0n493p9dqx9bb6jcrb34s1rk8afwpz1fdgwrm64g7a0y2mbfga74" + "commit": "67f50aa2a2839ffdb1c1a5e2f135e69f868e4b26", + "sha256": "041z6f5fyzc46grwqllz81hixkdqdic3a6zird7i0yy7cr2hqhcf" } }, { @@ -67714,11 +69382,11 @@ "repo": "justintaft/org-clock-split", "unstable": { "version": [ - 20191219, - 457 + 20200331, + 526 ], - "commit": "361a7a96af2a7d09ccaf561423b80caca7a108cb", - "sha256": "00k7av97l609rf31zqndy92ypbdyvwnr0bdpxfisw33icw7706nb" + "commit": "39e1d2912a7a7223e2356a5fc4dff03507ae084d", + "sha256": "0yvpmv0v56rsn43ffmwfhw8jjvfklw703qpmkx6d6paljjgy9k8l" } }, { @@ -67776,11 +69444,11 @@ "repo": "thisirs/org-context", "unstable": { "version": [ - 20200217, - 1006 + 20200418, + 1540 ], - "commit": "f354108ecd3d33cadee05a4aec95d2df4bc61ae9", - "sha256": "1zlqciqadhwkhmzlag7w0i83pn9gg0gikfcrv2qlr9nsn5rzzvj4" + "commit": "bbef096dc20b206b792b0ef310f2eed7c70ca3a0", + "sha256": "05s73wn2q3a0mfc14qlgcb1bas9addby0m43id2v8ljvxyigicr8" } }, { @@ -67806,16 +69474,16 @@ "url": "https://git.spwhitton.name/org-d20", "unstable": { "version": [ - 20190628, - 1356 + 20200416, + 2010 ], "deps": [ "dash", "s", "seq" ], - "commit": "0ca1b0a8d9ab0a7d687a9f2edb6eae2e57851129", - "sha256": "0wg95wirq964klpihhgv2flnkyjwwpdqiafn2b2l1785906csrcg" + "commit": "7ede5726d640c4f81146585f6eb907f51a0f6a19", + "sha256": "1p4irzcsq2sxmvpyrkrqs9ylp153mzwr31hvsnfh1f2nlghpicfk" }, "stable": { "version": [ @@ -67899,14 +69567,14 @@ "repo": "abo-abo/org-download", "unstable": { "version": [ - 20200311, - 1049 + 20200410, + 1444 ], "deps": [ "async" ], - "commit": "b96fd7ba02cbdae95cc37970ebcfae8afa8b25d2", - "sha256": "1fx621ll5kjw10n2xhba7h39m1cqvink61kyhb228p6h8cl63kss" + "commit": "46417e2bd30c9bcd1e8a1f4c554ad44543e869e6", + "sha256": "1jzmyr6v33x7012ljbc45w2ww3lb96i4nh1ydxzdjwnbvpj2j17s" }, "stable": { "version": [ @@ -67957,16 +69625,16 @@ "repo": "phillord/org-drill", "unstable": { "version": [ - 20200216, - 1336 + 20200412, + 1812 ], "deps": [ "org", "persist", "seq" ], - "commit": "4c114489e682e514e79701045d541ab6f3dc3fb4", - "sha256": "13y302lyscdqrba1sfx60yf5ji2xi7fbsvjsjbw7hiz63kg6rccy" + "commit": "35c1ce349949cc213f3076799211210f49431850", + "sha256": "06hc98z4sml7jrwm5zvbsw5x6q5jpa335almzkh6h85g1p8syfsn" }, "stable": { "version": [ @@ -68210,16 +69878,17 @@ "repo": "kidd/org-gcal.el", "unstable": { "version": [ - 20191018, - 921 + 20200424, + 1929 ], "deps": [ "alert", + "persist", "request", "request-deferred" ], - "commit": "6821e349673e9ba8d7ae7b84789f931889273dc0", - "sha256": "12alwnk50gsiz5b9mw8qvn317f7phb5vh2x7yvi9m72zdrdaf8pz" + "commit": "1667aba7c0a33e3c23c3a47fc04e89670684eddc", + "sha256": "1zzibnvsdq3iv874x6g6zrjb17mb036dln68mn4a1xlcwvv1king" }, "stable": { "version": [ @@ -68319,20 +69988,20 @@ "repo": "marcIhm/org-index", "unstable": { "version": [ - 20190920, - 356 + 20200413, + 1609 ], - "commit": "aba9b1ea49e83c541c544e4030fcc2e0a55c908b", - "sha256": "1rpbas9svwni6nz5jywvxxvan0lgrqi100aby1aivi3prsmh6jhy" + "commit": "f95dbec874f39aac3c8391a6e0b9796b981386f3", + "sha256": "1dylivz459a4d66rak9sipynyby01plhgjj2vvp9fqvia65yb2a4" }, "stable": { "version": [ - 5, - 12, - 0 + 6, + 1, + 3 ], - "commit": "fc9635edd4bf394059e53a1fa16cdd8ab5b7b468", - "sha256": "0qzqlfnrc2x4mm40wrsmpbh61129ww2a2sk4s1px49fi8552vqyq" + "commit": "f95dbec874f39aac3c8391a6e0b9796b981386f3", + "sha256": "1dylivz459a4d66rak9sipynyby01plhgjj2vvp9fqvia65yb2a4" } }, { @@ -68398,11 +70067,14 @@ "repo": "bastibe/org-journal", "unstable": { "version": [ - 20200311, - 710 + 20200424, + 1917 ], - "commit": "664c08e12cde19ce7dca645ba9accecda7266c32", - "sha256": "02gla6cs8w08jg8czl5855vxvs1jyxq839rh9f95d40x4jgc1rwy" + "deps": [ + "org" + ], + "commit": "8bf06b28d6f14f52d4968123e2b4b91930c8f947", + "sha256": "0k70k07c4lq20rqljmfkx1pfp8gq4qr0y46n8mh1smzxdznk9nlb" }, "stable": { "version": [ @@ -68437,16 +70109,16 @@ "repo": "gizmomogwai/org-kanban", "unstable": { "version": [ - 20200126, - 1158 + 20200329, + 543 ], "deps": [ "dash", "org", "s" ], - "commit": "4e352ca1a0b712fc92f656b4fe436a04c7033a20", - "sha256": "0smjn7jmg5w9nwjp0qadl0sx6r78ycaqm8y3a2wm6slmdad2p1jb" + "commit": "544aac80f1c7113cfe42cf1a2b89f5ca6bd9ead6", + "sha256": "0sx4mvr5g2ipj1s1jg82vr1q90jkq9lm0pg5cdab8lrx464lqf2c" }, "stable": { "version": [ @@ -68557,29 +70229,29 @@ "repo": "alphapapa/org-make-toc", "unstable": { "version": [ - 20200110, - 1804 + 20200409, + 1436 ], "deps": [ "dash", "org", "s" ], - "commit": "be86a4e026befd9d10af42a22b2483c7969ccee1", - "sha256": "0348iq3bc3rxs5bqdvskyly4agqxiapamqkfm0323620kxl70agw" + "commit": "26fbd6a7e1e7f8e473fe3a5f74faec715c3a05aa", + "sha256": "08gkzl0cbgkyg31sxafqmq6v1hjgr2q62vnvncrdnhs3ly54inf8" }, "stable": { "version": [ 0, - 4 + 5 ], "deps": [ "dash", "org", "s" ], - "commit": "be86a4e026befd9d10af42a22b2483c7969ccee1", - "sha256": "0348iq3bc3rxs5bqdvskyly4agqxiapamqkfm0323620kxl70agw" + "commit": "43d4a2490a048b01ca5a6f44c5b4f24a458dfc95", + "sha256": "180ji6nnj6qj0rs1rdp1zlcrfsqf7ikb44ym8icbp5d6al2s4hnr" } }, { @@ -68590,26 +70262,26 @@ "repo": "org-mime/org-mime", "unstable": { "version": [ - 20191226, - 2309 + 20200416, + 1048 ], "deps": [ "cl-lib" ], - "commit": "b1899762170eaa656555ce62c58e613ca3509ec4", - "sha256": "1p3ffxanjpb83xvk4c42lafhfbckh4rkmi32wjdp86fkqx30nvrg" + "commit": "9f8444603806e6baa94b2b67a23aab0ea52fef97", + "sha256": "143qj0llargjm375q39lchxz1ws4vsh50f3ar66cclrjvxrfaqdg" }, "stable": { "version": [ 0, 1, - 6 + 7 ], "deps": [ "cl-lib" ], - "commit": "f8eac8ccdec2ebf1dec87d4f5f01b4b53f86c67c", - "sha256": "0gjdhhri2fm93phvv3fnw6iz5agpafryacj521j80jf1dmj2bj5h" + "commit": "9f8444603806e6baa94b2b67a23aab0ea52fef97", + "sha256": "143qj0llargjm375q39lchxz1ws4vsh50f3ar66cclrjvxrfaqdg" } }, { @@ -68681,14 +70353,50 @@ "repo": "jeremy-compostella/org-msg", "unstable": { "version": [ - 20200303, - 1716 + 20200422, + 1615 ], "deps": [ "htmlize" ], - "commit": "2f521a89b106750ebafa94503cdeb043a02c5ab5", - "sha256": "1wr8qdkf75swf4jfqbv0r2hw7d5bw73nyyv7xa0msbc1hyw33b6l" + "commit": "d41426854e6804d752b25346cf6ae79b0612784c", + "sha256": "0f3lvcgx60j2m97mxgzbxaw9ki37g3yxr6arv54b87572a7wdj8m" + } + }, + { + "ename": "org-multi-wiki", + "commit": "8138002578ef14e30561cac159e9a66406a4201a", + "sha256": "0wbybr9vf4hcwyi9rab8sm1xwxqmy7mbjv1jmm78j51kjh0cpgkj", + "fetcher": "github", + "repo": "akirak/org-multi-wiki", + "unstable": { + "version": [ + 20200419, + 1833 + ], + "deps": [ + "dash", + "org", + "org-ql", + "s" + ], + "commit": "aef5975ac18d7cb101c0fb688333cc241782a8a0", + "sha256": "1m3p839wkrvf7n2467czj03rljv43bk32p7vlzdp5zby22bn7nag" + }, + "stable": { + "version": [ + 0, + 4, + 0 + ], + "deps": [ + "dash", + "org", + "org-ql", + "s" + ], + "commit": "80791ea872939df0578dc3a2992a2f7fd5618971", + "sha256": "0avg5xwnb3c9ylj9dqdcqmh8kykl98jsr6cl3rrivkj7l47i1rl0" } }, { @@ -68773,6 +70481,27 @@ "sha256": "1vwfpdi7hfkxx4vi0cwg7rvqby3i0mymzdkyzrqzv30dazmcjpag" } }, + { + "ename": "org-noter-pdftools", + "commit": "caa6bf82ea660f8e1d68e45cc99c6f6427cf1327", + "sha256": "0k11njy2l8pxwpmxspy6qwvp1041p99xp9ha6pjxp3m3f7rik32h", + "fetcher": "github", + "repo": "fuxialexander/org-pdftools", + "unstable": { + "version": [ + 20200418, + 929 + ], + "deps": [ + "org", + "org-noter", + "org-pdftools", + "pdf-tools" + ], + "commit": "8cc15bb8014ed1f047eecc0abd8bf447f86c0505", + "sha256": "173118fplpz575dcbncrjjpid2ni0acsi9130r210vl6hal7yz08" + } + }, { "ename": "org-octopress", "commit": "fba6c3c645ba903f636814b5a2bb1baca0b5283b", @@ -68897,21 +70626,21 @@ }, { "ename": "org-parser", - "commit": "28d55005cbce276cda21021a8d9368568cb4bcc6", - "sha256": "06yb78mf486b986dhvqg3avflfyi271vykyars465qpk0v8ahq8h", - "fetcher": "bitbucket", - "repo": "zck/org-parser.el", + "commit": "d3828ad7599d13728b5571b882344c3ada434b85", + "sha256": "1galc2w2n2qnwxknym4wid1ldinf8fyf8vvh4ihnckcbh081nrhb", + "fetcher": "hg", + "url": "https://hg.sr.ht/~zck/org-parser", "unstable": { "version": [ - 20190207, - 521 + 20200417, + 301 ], "deps": [ "dash", "ht" ], - "commit": "8610aef8dc878fc001975780bcbcbab30dc929b7", - "sha256": "0vqh37y2b0dc8p9c04ici1h9n9ghd1jizcr1c2zvp75cyqsz09wv" + "commit": "fd4cb7035ff649378cc968b1ec2c386b5c565706", + "sha256": "1hnd4zhhwrd6gr1skvc64a3z9k3nmhwgcyy1cp2jfyhk0iwsrqfm" } }, { @@ -68947,6 +70676,26 @@ "sha256": "0pqmnhd3qdg06agj6h8v8lm4m5q8px0qmd7a1bfn6i5g2bq9zrck" } }, + { + "ename": "org-pdftools", + "commit": "62cf59d93b7b6700c4f7711e5fd22ece04896e6a", + "sha256": "0fqkq8hpcxzpj3irczkad78m3chadqk2895bdbj7xpdlr0803n32", + "fetcher": "github", + "repo": "fuxialexander/org-pdftools", + "unstable": { + "version": [ + 20200422, + 1350 + ], + "deps": [ + "org", + "org-noter", + "pdf-tools" + ], + "commit": "8cc15bb8014ed1f047eecc0abd8bf447f86c0505", + "sha256": "173118fplpz575dcbncrjjpid2ni0acsi9130r210vl6hal7yz08" + } + }, { "ename": "org-pdfview", "commit": "855ea20024b606314f8590129259747cac0bcc97", @@ -69142,7 +70891,7 @@ "projectile", "s" ], - "commit": "de37d0094791ab1146276904f3a37eba699e0b60", + "commit": "96a57a43555e24e5e0d81e79f0fbb47001c41bac", "sha256": "05h9scvnd9ggfwbbl1m124k6sdn5kp9mv2695cril2m4dkr1kyqz" }, "stable": { @@ -69176,7 +70925,7 @@ "helm", "org-projectile" ], - "commit": "de37d0094791ab1146276904f3a37eba699e0b60", + "commit": "96a57a43555e24e5e0d81e79f0fbb47001c41bac", "sha256": "05h9scvnd9ggfwbbl1m124k6sdn5kp9mv2695cril2m4dkr1kyqz" }, "stable": { @@ -69227,8 +70976,8 @@ "repo": "alphapapa/org-ql", "unstable": { "version": [ - 20200309, - 2240 + 20200407, + 1706 ], "deps": [ "dash", @@ -69243,14 +70992,14 @@ "transient", "ts" ], - "commit": "1688774dddae45b7b77420d01c0eb56d76dd0c95", - "sha256": "12pwi4sd4lfrgbzrj91cq2d9kp5ql0c2nqda7x6x94x9z1h5xfh8" + "commit": "f4d7399e677904cdc7e220440610704e4bd668bc", + "sha256": "0vfnxmk6k9f4zqbcg4gsg2ga4xr2gqx81sq2hcimx49wvyxh2bwn" }, "stable": { "version": [ 0, 4, - 1 + 4 ], "deps": [ "dash", @@ -69263,8 +71012,8 @@ "s", "ts" ], - "commit": "32c68d7f249e1780a7e1a0b1155db3f36d535e1c", - "sha256": "0bw4568vx3swxc3khnnz28288h70z473pvw2m38ygjq7kyqnrq9b" + "commit": "4fef5b089f8f77b0dc25dac5f096406156e90858", + "sha256": "065wkxd269v19r5s8g2haapwhwr3s6c5amwzshfl2hq5z0bldvqi" } }, { @@ -69343,15 +71092,15 @@ "repo": "oer/org-re-reveal", "unstable": { "version": [ - 20200206, - 712 + 20200413, + 856 ], "deps": [ "htmlize", "org" ], - "commit": "e4460a98b6bfa01720c287a171252f49c1949801", - "sha256": "0hhwc6yfy69qwiyxca8r12rdxvrj44vzdsnvdk0yc9szsfnmn4hz" + "commit": "61549f4c00284a30e34caa3d76001b233ea5d2ad", + "sha256": "00r324nnci2l0jwx4jhzcrbyai5wmj5cjrav4253c23aqdn5ny96" }, "stable": { "version": [ @@ -69384,6 +71133,19 @@ ], "commit": "1f56a1fc9a52f3815bb2115ebeca3c355688d722", "sha256": "1xrswpkr7hgsb9pj991z4m0820f1nksfad184x0j7kir2xcx0myg" + }, + "stable": { + "version": [ + 1, + 0, + 0 + ], + "deps": [ + "org-re-reveal", + "org-ref" + ], + "commit": "abcd622e4edaa5e4480bcd1e7e4953f67c90e036", + "sha256": "08ia6gn0x0yydl28dhghifyxz0mrn0asllqg4s449gaz729cxqkd" } }, { @@ -69462,8 +71224,8 @@ "repo": "jkitchin/org-ref", "unstable": { "version": [ - 20200309, - 1231 + 20200421, + 1354 ], "deps": [ "dash", @@ -69477,8 +71239,8 @@ "pdf-tools", "s" ], - "commit": "e3eb9215a540ba62a0b0253d003c704b7740deeb", - "sha256": "152wzlavx5b4ap9wdl3dql5idvsjl5zq6zjwcilp9pni6dn34w12" + "commit": "1eb4ddda003b04b49a9a00828347a46f2863ac9e", + "sha256": "19vvcipfhir39qd3qwirrrr6221k8kjviifva0qm6aqxv7hlfaqm" }, "stable": { "version": [ @@ -69533,26 +71295,26 @@ "repo": "akirak/org-reverse-datetree", "unstable": { "version": [ - 20200224, - 548 + 20200325, + 1003 ], "deps": [ "dash" ], - "commit": "800e1094892be1b62087317bd7dbd6c2cdca07f2", - "sha256": "1rb9gc99jb1sbzc7hlc6yndaci1dfravjvnlix9wk9bix27g3vca" + "commit": "afac070eb64cc24917c0ab0e14686258da4916f6", + "sha256": "1737r8c5kpb68yb2sixp88fm7fcmr7rvpkpywyxzwgqk30xpsjgq" }, "stable": { "version": [ 0, 3, - 1 + 2 ], "deps": [ "dash" ], - "commit": "6fad8d248acfd32c7b2347223c9326351f8cefd4", - "sha256": "08kwbc630ijmz7nzypzm6bcr3yzij47rhb3ih1hgq6z5pm5cla6v" + "commit": "cfb14dc77768ea901fe5a49662ae10ae3ccc7bde", + "sha256": "05qjj4zfm84s7lmlnq2nndmh76cpnhh62rybdiz2fjsj1ns0zjln" } }, { @@ -69594,6 +71356,84 @@ "sha256": "0gxb0fnh5gxjmld0hnk5hli0cvdd8gjd27m30bk2b80kwldxlq1z" } }, + { + "ename": "org-roam", + "commit": "278f993cf094b39b5d049f05e0cbba61e52a6f0c", + "sha256": "1m4nw1r8kdxigdvws5arqglamrx4g62v4p482flikk7w52gcs7is", + "fetcher": "github", + "repo": "jethrokuan/org-roam", + "unstable": { + "version": [ + 20200426, + 1107 + ], + "deps": [ + "dash", + "emacsql", + "emacsql-sqlite", + "f", + "org", + "s" + ], + "commit": "41423005010f2f78c3e9301b97f1b0db83fd29b5", + "sha256": "1w8xv4wiskibwla7ga5bcjqpvzgmcxm52zazqpjp210vp22v545z" + }, + "stable": { + "version": [ + 1, + 1, + 0 + ], + "deps": [ + "dash", + "emacsql", + "emacsql-sqlite", + "f", + "org", + "s" + ], + "commit": "27a63b59b176f9d2048de69eb0f525f3c7be8f5f", + "sha256": "18ljww204kf1pbgrrnx7bn6177lw1bs3npywbx2k1b5j35c3j8xv" + } + }, + { + "ename": "org-roam-bibtex", + "commit": "cc4e4ea60d2363eb691cb87ca3105bd25fc405ed", + "sha256": "1q9l49q478zlmcz0wi239qsz2pvmqxyb9qac2k42p19zqnfgkmsg", + "fetcher": "github", + "repo": "zaeph/org-roam-bibtex", + "unstable": { + "version": [ + 20200425, + 1114 + ], + "deps": [ + "bibtex-completion", + "f", + "org", + "org-roam", + "s" + ], + "commit": "6bbdebb39d7edf9b369c16311afa18cf00cecffc", + "sha256": "0fp9cmgn9g4hnqsj9bn5885him0wxbs3qwvnw9anrwyybg6sv2i6" + }, + "stable": { + "version": [ + 0, + 1, + 0 + ], + "deps": [ + "bibtex-completion", + "f", + "org", + "org-roam", + "s" + ], + "commit": "9c224890ef9b8fb38b48d48d6f029be00f1c2166", + "sha256": "14f3d1yiidglwbygb5swk44fvky7cla3r11i4zx56hrf8lxjzhp6" + } + }, { "ename": "org-rtm", "commit": "855ea20024b606314f8590129259747cac0bcc97", @@ -69612,6 +71452,46 @@ "sha256": "1hn8y9933x5x6lxpijcqx97p3hln69ahabqdsl2bmzda3mxm4bn2" } }, + { + "ename": "org-runbook", + "commit": "1ddf4d4e4bd22cc85150c8cbf635ace1f54d64fc", + "sha256": "0dih8kv6fhqbfmw2x8ndl6gygssl3g0jr5qkbgbf4wkl5xjls3cg", + "fetcher": "github", + "repo": "tyler-dodge/org-runbook", + "unstable": { + "version": [ + 20200412, + 403 + ], + "deps": [ + "dash", + "f", + "ht", + "mustache", + "s", + "seq" + ], + "commit": "8bec754c3007238d4e1c7296454815bf7000b31d", + "sha256": "10bfc8pr576ia16w5mwkksg9yn0jhcsbrkzw9yrjkvq2yzqsgpc0" + }, + "stable": { + "version": [ + 1, + 0, + 6 + ], + "deps": [ + "dash", + "f", + "ht", + "mustache", + "s", + "seq" + ], + "commit": "53e8876a1587190ec4d103f9e94380f34797ce49", + "sha256": "1cyb956s3vshh2i4gd37m1cjxwq5s0xj55pwysgganwgxxw22c8n" + } + }, { "ename": "org-scrum", "commit": "8315b6834d76180fd050b0d5cc2239d604fe2f3b", @@ -69673,8 +71553,8 @@ "repo": "alphapapa/org-sidebar", "unstable": { "version": [ - 20200310, - 35 + 20200313, + 1551 ], "deps": [ "dash", @@ -69684,8 +71564,8 @@ "org-super-agenda", "s" ], - "commit": "41b914c7bdc5a12c9289b134822bdfea0889ac9e", - "sha256": "1mggpxbzprmmbkiv3xklw1saafsi153n4spr4l0m59lgm4gpymgj" + "commit": "d6ddec21fd6f356dc7b77c0a61a633606965a0bf", + "sha256": "137a462cl66jldsw877jgn0jph4zsv036mhvd9rpp6pw6jsw50sy" }, "stable": { "version": [ @@ -69818,20 +71698,20 @@ "repo": "bastibe/org-static-blog", "unstable": { "version": [ - 20200117, - 800 + 20200415, + 623 ], - "commit": "5c19300d7634e94ae813b1b66abc716fbb1e5fc9", - "sha256": "1m7vmibjc6yk2npfrnnqd3g2099300r0q8mr8cvyivmk5ailbfrh" + "commit": "ce92384b364de6421ab67e6399ae56b8ea51df49", + "sha256": "09i23m9knhr8px1f71wx4csddmrzgy9k4s9a2mq4la1wmj1jy627" }, "stable": { "version": [ 1, - 2, - 1 + 3, + 0 ], - "commit": "f69d2fd6671fb250fbd87df5efa898a7bf5b9bda", - "sha256": "1h9c96rbxxk1jypib5f9pfi5zkimkvhxi61j0sps6r39435dd3w7" + "commit": "afe250fc43cd1beffd7946b54692d712d9263ff2", + "sha256": "15iy3z8rglaqbx1fz14inh18ksgjsmq30b8hyv3lgjvcc9ssaiw0" } }, { @@ -69909,26 +71789,26 @@ "repo": "integral-dw/org-superstar-mode", "unstable": { "version": [ - 20200311, - 1848 + 20200416, + 2354 ], "deps": [ "org" ], - "commit": "715a9681d31968807df349280f96932f1a986f37", - "sha256": "0klq0khb59hmkwhay0dln5zhii8mbk3d7rn7rddixrrh5x5ghrlv" + "commit": "09ddc28383d363a4b353348a433e24535b4af0e3", + "sha256": "14w06v76xi4f6hpq6xzicrjjv0b802g5zc9as4mpimfy5gx2xpm0" }, "stable": { "version": [ 1, - 0, - 0 + 2, + 1 ], "deps": [ "org" ], - "commit": "2f9f9d6b21cb54c2ce6af15ab0e3c73e2b962d78", - "sha256": "0q6180qwjpha10zsiw0ni6lanyjwlj8141a6qivfcs8nwczz7nvz" + "commit": "09ddc28383d363a4b353348a433e24535b4af0e3", + "sha256": "14w06v76xi4f6hpq6xzicrjjv0b802g5zc9as4mpimfy5gx2xpm0" } }, { @@ -70128,8 +72008,8 @@ "alert", "cl-lib" ], - "commit": "baa1ce6333157fed3b3799a80e6cf8c73c9e2c18", - "sha256": "04adkz950vvwyzy3da468nnqsknpr5kw5369w2yqhnph16cwwfxb" + "commit": "1e81ea29af1ccc7b4ddb42fe4e3fbfc0adf891b0", + "sha256": "0cqk9q26qby2y1l6x39jfrdrw9x9419mlx2zhndmlb6gv3lv35f9" }, "stable": { "version": [ @@ -70241,15 +72121,15 @@ "repo": "jplindstrom/emacs-org-transform-tree-table", "unstable": { "version": [ - 20150110, - 1433 + 20200413, + 1959 ], "deps": [ "dash", "s" ], - "commit": "0a9bf07f01bc5fc3b349aff64e83999a8de83b52", - "sha256": "1h15fr16kgbyrxambmk4hsmha6hx4c4yqkccb82g3wlvzmnqj5x3" + "commit": "d84e7fb87bf2d5fc2be252500de0cddf20facf4f", + "sha256": "16zi7rg3hdfspifr46gbvpnr1rr144a777whr1w3gp6m46xmgzhs" }, "stable": { "version": [ @@ -70289,6 +72169,45 @@ "sha256": "0aacxxwhwjzby0f9r4q0lra5lqcrw5snnm1yc63jrs6c0ifakk45" } }, + { + "ename": "org-treescope", + "commit": "f824498a74dcf0b8130baf474841b240adfa07a7", + "sha256": "13j7xz9i11kga1s0yvdv3k54076llna8vnnp0v8ri5pgbdrmc20w", + "fetcher": "github", + "repo": "mtekman/org-treescope.el", + "unstable": { + "version": [ + 20200324, + 1959 + ], + "deps": [ + "dash", + "org", + "org-ql" + ], + "commit": "cad2aa82e5ca73bd7afc31b7a5e764da5ab716c3", + "sha256": "1jsc39xmli54mcqcdddzyaphmhlamwq167vfr2g133c3p0wx8swh" + } + }, + { + "ename": "org-treeusage", + "commit": "8868893e4109db9b348a62bc012c89648384994e", + "sha256": "1vxal0a4k348sqpivvahjlchk7w5a02dkqvxpqgjs1rlbs7vfv90", + "fetcher": "github", + "repo": "mtekman/org-treeusage.el", + "unstable": { + "version": [ + 20200418, + 1904 + ], + "deps": [ + "dash", + "org" + ], + "commit": "fe4323bc500e2d949848c75e8f59340971b35562", + "sha256": "0v9zd2lnzvdxz3wqvw0j3bzd7228x6k8dyr7pzmimkl4l26cybqm" + } + }, { "ename": "org-trello", "commit": "188ed8dc1ce2704838f7a2883c41243598150a46", @@ -70307,8 +72226,8 @@ "request-deferred", "s" ], - "commit": "e8e88239b5130307368f554b96fbf05ff4c207b5", - "sha256": "0kzvyv8rs0fsfbqsvgdjxlfa0qyi7wsdnfjw7c0hbwi25al39zm7" + "commit": "cd7bf366d40bb4af4a1a9801446dc98f713eac8a", + "sha256": "08pgn3llbk0sz5v50jqa7mvdv6dw507kgkrkk0ciii1jalg4786a" }, "stable": { "version": [ @@ -70427,8 +72346,8 @@ "repo": "akhramov/org-wild-notifier.el", "unstable": { "version": [ - 20191114, - 1632 + 20200328, + 1153 ], "deps": [ "alert", @@ -70436,14 +72355,14 @@ "dash", "dash-functional" ], - "commit": "713c5205869dde4d42127fd9365f5831ec222503", - "sha256": "0585v39lxrqnv4p2k2pcswmx14gvm6l17j05q30cssn5zqy8cv8a" + "commit": "4011d7f557da3ae5eee73c56ae514b963fb4d1c1", + "sha256": "0mr5qmrnz0mr6w7ib8bcdlqwhzwnxfbnd47zyg9i6lmh20p8qrns" }, "stable": { "version": [ 0, - 3, - 2 + 4, + 0 ], "deps": [ "alert", @@ -70451,8 +72370,8 @@ "dash", "dash-functional" ], - "commit": "f2ea8a719cf61742def57475400222a498256bb6", - "sha256": "0wrr52bryvv1aj2fk5ik71iifh15bzmvrw1ixzs1afcdp2fn0bcm" + "commit": "4011d7f557da3ae5eee73c56ae514b963fb4d1c1", + "sha256": "0mr5qmrnz0mr6w7ib8bcdlqwhzwnxfbnd47zyg9i6lmh20p8qrns" } }, { @@ -70463,19 +72382,20 @@ "repo": "marcIhm/org-working-set", "unstable": { "version": [ - 20200207, - 2036 + 20200416, + 813 ], - "commit": "813c2e7af2ec1dacf037b1f971f070a4f784d2a5", - "sha256": "12dagcvcba3j74grijgibpskr3qc373m25xkp2p86ap81bg58zn8" + "commit": "344d92ee5c117077317616e33d5945703059ac00", + "sha256": "1hzvv23bx4mscl3sw6nr8gggch8rdlyg33fhdv89xpgr700dx1nx" }, "stable": { "version": [ 2, - 0 + 1, + 6 ], - "commit": "813c2e7af2ec1dacf037b1f971f070a4f784d2a5", - "sha256": "12dagcvcba3j74grijgibpskr3qc373m25xkp2p86ap81bg58zn8" + "commit": "d6fff111930befa52a5cce128c986b0162ddf8c4", + "sha256": "1s9rqjn6c52kvz4v1ma6icdykvkvrvbyllpy5i1mg0pb4acbbwym" } }, { @@ -70508,8 +72428,8 @@ "repo": "org2blog/org2blog", "unstable": { "version": [ - 20200303, - 418 + 20200317, + 2136 ], "deps": [ "htmlize", @@ -70517,8 +72437,8 @@ "metaweblog", "xml-rpc" ], - "commit": "0177fc4e7edd705db59b82c83a24db51dc405890", - "sha256": "1whl7kz4im2jmdz99336wfn152q0l3qwii4w7sn45rlsm2sijiw1" + "commit": "60eae1c8a7f82fbcc2660d785b33601daaa29f4b", + "sha256": "06ia4ba6c1yph259wr4y5sdkl1ry6pzbwhx807ia675rp0clp9hz" }, "stable": { "version": [ @@ -70544,11 +72464,11 @@ "repo": "tumashu/org2ctex", "unstable": { "version": [ - 20191024, - 610 + 20200331, + 550 ], - "commit": "d4af170f5190dad3aa31ab1cf4c6f087d56ab111", - "sha256": "0m28mxsq1d5ggr8phfn94pb38lj8x3sxykh7hfqbwhphaza3by5q" + "commit": "2e40aa5e78b0562516f46f689e7b74cdf451cc2a", + "sha256": "06ip9663xvygpr484r09v7c55nn0pxmr30455iqpmxi32dwx974g" } }, { @@ -70677,11 +72597,11 @@ "repo": "kostafey/organic-green-theme", "unstable": { "version": [ - 20200301, - 1916 + 20200418, + 2058 ], - "commit": "9374259e1b22d68f30a1f5376052ab09dbad606d", - "sha256": "13jpfn4sjsw0lssrq0n75085j2g41ppmwky5mq0nyv8j0c0mmqpk" + "commit": "5218473fb500e58ccad3f73cfc4245f161869f89", + "sha256": "07l10mjgz0il5z7qpn2bw7621m5frgcmsb2pl9pyhfrjykvf8mih" } }, { @@ -70758,16 +72678,15 @@ "repo": "magit/orgit", "unstable": { "version": [ - 20191205, - 2300 + 20200417, + 1720 ], "deps": [ - "dash", "magit", "org" ], - "commit": "e7cddf39e301c87c36c7de13e429dee74874d5c8", - "sha256": "00s3a8i221didw8phlbvdvihj9pxkq9k9j9vh1g1mzd7cz58dm07" + "commit": "e147f055772cc934fe1f1d8619059badeb647c93", + "sha256": "1q3v22drqbjzzr6d0zdwczz1rq37iyh78k2nk1wirbs5z4ixfyx8" }, "stable": { "version": [ @@ -70792,15 +72711,15 @@ "repo": "tarsius/orglink", "unstable": { "version": [ - 20190919, - 1859 + 20200413, + 2124 ], "deps": [ "dash", "org" ], - "commit": "988ad54db45708b0fe835829d512eb6d5f6cf161", - "sha256": "1mswfbwz7fm9lriab365g7hq8hn85gxcsg8y41by9j0n8hb3hj5q" + "commit": "a5f5da06174d22dc21bbac167a8c2361fa84bf2b", + "sha256": "0sxali4vnqzk6mj0m7d82yr2ixvxxj5lzmxffyznpa7j6yndi2mm" }, "stable": { "version": [ @@ -70824,15 +72743,15 @@ "repo": "yoshinari-nomura/orglue", "unstable": { "version": [ - 20171220, - 1226 + 20200411, + 311 ], "deps": [ "epic", "org" ], - "commit": "ae2a45c19b52e45db7891093a3ff17ba2e51c507", - "sha256": "0h3b37wz4hlk022c0sq7c9p5z3v4n6cljhy8g1qjhnxac8y7mkr0" + "commit": "9d5a8e24be9acb8c55bb4d6aa8b98e30e2677401", + "sha256": "1n2l9acc54sbpbv5d1h2ib9cn7nbidmkvhhlwihqzpvvh7bhjfj7" } }, { @@ -70863,11 +72782,11 @@ "repo": "tbanel/orgaggregate", "unstable": { "version": [ - 20190812, - 604 + 20200423, + 2123 ], - "commit": "1a13f7f70357f369e16bfa3038a9fb760cbffb46", - "sha256": "11qygmgvjqc53gy5f3pz0hh5zsam1li8vbyr42wflfkv6cwxypdb" + "commit": "b4d8ee2b8e0062eaa15eac6805374c02b776bb88", + "sha256": "1p187hfll4jz44g7xxdhnnm0qjcf4gdxbrywdqxpdqvqs74pa18l" } }, { @@ -70878,11 +72797,11 @@ "repo": "tbanel/orgtblasciiplot", "unstable": { "version": [ - 20151215, - 2151 + 20200411, + 711 ], - "commit": "cd91f6ae26a7402e192a1f4fd6248f5797edf19e", - "sha256": "1vbnp37xz0nrpyi0hah345928zsb1xw915mdb0wybq1fzn93mp1z" + "commit": "59618630205fc8c0fcc74fb34c4581d9712a5181", + "sha256": "1qx6la70cdxr556d2kna4ra76kdliaqkwm97jahd20nhs2izvpl1" } }, { @@ -70893,14 +72812,14 @@ "repo": "tbanel/orgtbljoin", "unstable": { "version": [ - 20150121, - 2246 + 20200423, + 2129 ], "deps": [ "cl-lib" ], - "commit": "ccf5e0d96e053dc289da39a048715fcf36835ff2", - "sha256": "06nc82wiha11i79izqil53dkd95fl55nb5m739gyyzvx3sksb0dg" + "commit": "9a197de6c3036fbdb6309cbfd35ec31a69b3ebe7", + "sha256": "0fhq36g5k4nib5ykb92j12l3fnqj09xh2jai92l8c5nslgm00slr" } }, { @@ -70935,16 +72854,16 @@ "repo": "gregsexton/origami.el", "unstable": { "version": [ - 20180101, - 1553 + 20200331, + 1019 ], "deps": [ "cl-lib", "dash", "s" ], - "commit": "1f38085c8f9af7842765ed63f7d6dfe4dab59366", - "sha256": "0ha1qsz2p36pqa0sa2sp83lspbgx5lr7930qxnwd585liajzdd9x" + "commit": "e558710a975e8511b9386edc81cd6bdd0a5bda74", + "sha256": "0ycjbsn03cjzx6adabcvi1j7f92yhx3xjzj3xc68m1hw9r2f2gzf" } }, { @@ -70955,14 +72874,14 @@ "repo": "vyorkin/ormolu.el", "unstable": { "version": [ - 20200207, - 2111 + 20200313, + 1631 ], "deps": [ "reformatter" ], - "commit": "f6f2ea12ae158a400525857a82eb05bf2b7e88f3", - "sha256": "0v3ci5wyydpj14r2lvw7fn9yp7ra8nhz8z2c68521dydhblbry7b" + "commit": "5d991188b511e9d650c84fc578f2f49c9f995693", + "sha256": "1x5nx064cgcjj99xwp7drcvhfmmav1f72jnwwlxllhas2is458m0" } }, { @@ -71228,11 +73147,11 @@ "repo": "tarsius/outline-minor-faces", "unstable": { "version": [ - 20200103, - 1239 + 20200416, + 2211 ], - "commit": "d6247aaec44f60a9bd161c1d56960f80ab314a49", - "sha256": "0mscnbbv6cap818zhzz3ig6ychrw0zw84zyl2g1rksir0qj4hznf" + "commit": "d431b13e3d47cf2564a04a096d2162ca38593050", + "sha256": "05szncxfm7595ah63k1z3zmivk2z1lv28jcwb1fylx0s93f51z0c" }, "stable": { "version": [ @@ -71252,11 +73171,11 @@ "repo": "abingham/outline-toc.el", "unstable": { "version": [ - 20170730, - 1130 + 20200401, + 1208 ], - "commit": "31f04bea19cfcfb01a94d1fd2b72391cb02b7463", - "sha256": "1pqz2ynw51n3f7d9hknz80d42017lccsggkg13zqmn51wkjpc48j" + "commit": "81d373633b40628cc3a6b6fb534fd7730076bcdb", + "sha256": "1ad6bxa5x95n6i1197p13qy5fgzn1pslwbzqsf4rfy9bvr49g6q3" } }, { @@ -71375,11 +73294,11 @@ "repo": "emacsorphanage/ov", "unstable": { "version": [ - 20200124, - 1842 + 20200326, + 1042 ], - "commit": "3b246691d5b728ef1f0164f0cefffe00c9554e64", - "sha256": "10synkwxz6kqldx97pc52falr7h7khq97gck5fqidijwzmvs7jb2" + "commit": "c5b9aa4e1b00d702eb2caedd61c69a22a5fa1fab", + "sha256": "1g3r4jsgvf713jazw0j5mcsbrw9shix9qrc683jm7dccwwrv5pcy" }, "stable": { "version": [ @@ -71399,11 +73318,11 @@ "repo": "myTerminal/overcast-theme", "unstable": { "version": [ - 20190326, - 1646 + 20200425, + 1601 ], - "commit": "afb8098ad2234a65ec614f4028f7cf2555134f46", - "sha256": "1fp8awdhpr92fygp6pbx9bdnkc1amngbwsr6c2haj7xb8717zckj" + "commit": "e02b835a08919ead079d7221d513348ac02ba92e", + "sha256": "0fy8739fbhmixgjxgd1j5v2rjkwhsqac5kczx3mdjlfd2w55k3h7" }, "stable": { "version": [ @@ -71466,6 +73385,21 @@ "sha256": "0qcinx4gpfzngirwfis7byrdbgbwk3pak7f8mx5fsbcdnybkk8sj" } }, + { + "ename": "owcmd", + "commit": "13e6df2397380eba31ecbf4a7c1214dedaf9cfad", + "sha256": "0lg6mk5bmfkiifzxz4ijr10nibr5zcbfxzy9cvg6bnzxns6nhgq5", + "fetcher": "github", + "repo": "fishyfriend/owcmd", + "unstable": { + "version": [ + 20200424, + 2314 + ], + "commit": "af0f79c16f573f4dbaafe77a430d7621857e706b", + "sha256": "0mjg5563bka3cc6rysw7fhhh51w4fpysa9ni9v5iv89d8i7mz0yd" + } + }, { "ename": "owdriver", "commit": "f3f9c1bb19345c6027a945e7f265632da1a391cb", @@ -71474,30 +73408,30 @@ "repo": "aki2o/owdriver", "unstable": { "version": [ - 20170401, - 1312 + 20200410, + 1901 ], "deps": [ "log4e", "smartrep", "yaxception" ], - "commit": "d934f182bafe29aa16c173440eff3fef08b0ec10", - "sha256": "0yy5sah7vcjxcik3sp2cxp9gvcryyzw799h8zf4wbvjxv74kd17c" + "commit": "3c52a7b11c8275fdb2e4cf98f68f2a48ad09a3ae", + "sha256": "1lxvcbpzpzs3vkgg4pif3k89ddmj5mamk2q18wc3gx0czs6v301d" }, "stable": { "version": [ 0, - 0, - 6 + 2, + 0 ], "deps": [ "log4e", "smartrep", "yaxception" ], - "commit": "0479389d9df9e70ff9ce69dff06252d3aa40fc86", - "sha256": "0f2psx4lq98l3q3fnibsfqxp2hvvwk7b30zjvjlry3bffg3l7pfk" + "commit": "3c52a7b11c8275fdb2e4cf98f68f2a48ad09a3ae", + "sha256": "1lxvcbpzpzs3vkgg4pif3k89ddmj5mamk2q18wc3gx0czs6v301d" } }, { @@ -71659,14 +73593,14 @@ "repo": "kaushalmodi/ox-hugo", "unstable": { "version": [ - 20200305, - 1413 + 20200420, + 324 ], "deps": [ "org" ], - "commit": "1c1e3ec46785d93f4de2e71fc32604bd7c0fed40", - "sha256": "1cgwpj9x10z6y9ykbma39xakzisly5jhp5pkdiwrc5zq5psr2ddx" + "commit": "5106b430a139bb9e37beda177a082dfe36b407f5", + "sha256": "1x5hmvxy9dl88ix4ir1jshjavc99l8884if8c0v9gkjqb31ka9n7" }, "stable": { "version": [ @@ -71805,11 +73739,14 @@ "repo": "linktohack/ox-latex-subfigure", "unstable": { "version": [ - 20200113, - 1029 + 20200326, + 919 ], - "commit": "18bcee0c89c19da847f38660946a5b9343607cfb", - "sha256": "1hpwsx3cba6kk2n954h144pb1ba5yy46gcni8ikvsbqm8j17ragm" + "deps": [ + "org" + ], + "commit": "be0a0dde62fde8cdf8d72b6968344906aa8c6f54", + "sha256": "1afikv50ii4xk9pkg4m6dx246bjnwka37lccif8i5r48hfy5w4bq" }, "stable": { "version": [ @@ -71970,14 +73907,14 @@ "repo": "yjwen/org-reveal", "unstable": { "version": [ - 20200304, - 937 + 20200327, + 1636 ], "deps": [ "org" ], - "commit": "0d947cbce655cadb035e3b5da0fa2af8c228d69b", - "sha256": "1sf8qdih1fbzhsyvkf8grmfsglvrgim0ww14ww01w9xnr02fkb0g" + "commit": "ea8b5021702d8f12aa5285fb2a8561ceaeb1332e", + "sha256": "1fppdz2r8zig6r1v1n82bxmxyn2f6i1rjv9qll4n866gahkknlkr" } }, { @@ -72275,14 +74212,14 @@ "repo": "UndeadKernel/pacfiles-mode", "unstable": { "version": [ - 20181028, - 1744 + 20200418, + 1806 ], "deps": [ "cl-lib" ], - "commit": "ff58f387e0f85ca20c4c9f119bf13303bf8b5a76", - "sha256": "1my9qhnla61wgrhf0izjx0kyjrxwyz3cfh3xp80mmnxhxrrf21kl" + "commit": "222ae3f540cddee306067c83451cfece1112c09e", + "sha256": "1ps6blv2jhm4i2gr1fbsr1lii9cpr99prhwnxvhxxxy08c9b6mrx" }, "stable": { "version": [ @@ -72358,14 +74295,14 @@ "repo": "melpa/package-build", "unstable": { "version": [ - 20200125, - 1707 + 20200313, + 2359 ], "deps": [ "cl-lib" ], - "commit": "f0ded6bf6532f475fdf62a62ef432604d6dddbe3", - "sha256": "0wg5xsj6x101ng0fxdzqbkf307igxr9vcja4gnhgcbrvkzsn7ydc" + "commit": "90e514432661f750f2a0c9fe17f09cdcc8e4e82b", + "sha256": "0p2vzsad8biczhj80y5bif5p0agcg8id4qngvi0lmxvx8i8wvky0" }, "stable": { "version": [ @@ -72402,15 +74339,15 @@ "repo": "purcell/package-lint", "unstable": { "version": [ - 20200309, - 1953 + 20200419, + 406 ], "deps": [ "cl-lib", "let-alist" ], - "commit": "5cfa10041a467ca122f5bda31119a5904d574631", - "sha256": "0vnswz9dgzd0i2h6qs8i2nccrcd4pxnbqir4qnhz7nsbhdrvccj6" + "commit": "fb4662a755572c5add43869cdb6dcc577ca83a7f", + "sha256": "1flapr3aq38212m7w9ib56vqmaixz7ggmqd6hjhzphf6q1r5cv3l" }, "stable": { "version": [ @@ -72439,8 +74376,8 @@ "deps": [ "package-lint" ], - "commit": "5cfa10041a467ca122f5bda31119a5904d574631", - "sha256": "0vnswz9dgzd0i2h6qs8i2nccrcd4pxnbqir4qnhz7nsbhdrvccj6" + "commit": "fb4662a755572c5add43869cdb6dcc577ca83a7f", + "sha256": "1flapr3aq38212m7w9ib56vqmaixz7ggmqd6hjhzphf6q1r5cv3l" }, "stable": { "version": [ @@ -72713,16 +74650,16 @@ "repo": "abo-abo/pamparam", "unstable": { "version": [ - 20200309, - 1703 + 20200410, + 1155 ], "deps": [ "hydra", "lispy", "worf" ], - "commit": "ed730f17074cb12a8fb9a0daa852d1abbfb34372", - "sha256": "0shzsgs5ds4lzw1fv13vdphbhxyqad5s7jwk5zqa5wg42sidxq3r" + "commit": "f9d83bbf5eb883bce6873dd6fd97484b6805215c", + "sha256": "0av69k6psrpmyadm2r0frwdbqyvpa4flzkrmi88w0vx3g0cxiv2k" } }, { @@ -72733,11 +74670,11 @@ "repo": "sebasmonia/panda", "unstable": { "version": [ - 20190907, - 314 + 20200424, + 2206 ], - "commit": "5a3da498a8ab8a60cef3a3a5e8f3e14dea9992dd", - "sha256": "04fa2895vr0z6y1w1mkpxhzx2q323vl7r3hayxr0vldd8mz8m0lw" + "commit": "bdd9f80283d8ae4a69f8789e5f18b1560b94fe43", + "sha256": "1ld4igmmjk7p7dxm0mnfks3k0cqpqjxrvlmjdi0m7w11ba8dsah9" } }, { @@ -72921,14 +74858,14 @@ "repo": "ajgrf/parchment", "unstable": { "version": [ - 20200308, - 1727 + 20200424, + 1524 ], "deps": [ "autothemer" ], - "commit": "1aa8cd5e3673c1c55941afa61cbf7a7a45474078", - "sha256": "1s95d2pzivq52ci4disnfr95knh0kdr0jqi0br8c8zaxys3p43c8" + "commit": "766efdbd444cbefd9d01e7c6f55956d4c9a8db6c", + "sha256": "1jz9vf8wfjnnbbsnxzcpfvj19556w1z9887xvvwn6rsiqqlxgray" }, "stable": { "version": [ @@ -73266,15 +75203,15 @@ "repo": "clojure-emacs/parseedn", "unstable": { "version": [ - 20191113, - 831 + 20200419, + 1124 ], "deps": [ "a", "parseclj" ], - "commit": "f42ff988338484815ccd925c8f83a32c5d52319b", - "sha256": "0cx1zf82mjwlnj6znas8b94ws1f3n2h0imyybi9qirvsp90qd4sl" + "commit": "92bf875962e62f8c6370b56991d546f122536c6b", + "sha256": "0xli6cf0fzydnd683v3hk5kfsbxwh83s916fd64j8ak0wzjnlsfr" }, "stable": { "version": [ @@ -73406,17 +75343,16 @@ "repo": "zx2c4/password-store", "unstable": { "version": [ - 20190929, - 1627 + 20200328, + 1214 ], "deps": [ "auth-source-pass", - "f", "s", "with-editor" ], - "commit": "88936b11aff49e48f79842e4628c55620e0ad736", - "sha256": "0hjb0zh94mda4xq20srba40mh3iww3gg45w3vaqyvplxiw08hqrq" + "commit": "07b169ec32ad6961ed8625a0b932a663abcb01d2", + "sha256": "1dl3bck16zwhpspjrms11dknqgadnmpjqhcplkvv3v4f7vbnij6v" }, "stable": { "version": [ @@ -73908,6 +75844,21 @@ "sha256": "03k3xhrim4s3yvbnl8g8ci5g7chlffycdw7d6a1pz3077mxf1f1z" } }, + { + "ename": "pdb-capf", + "commit": "f0b7e12b9f49dc4ed1cc5a6893accc882896f334", + "sha256": "0656a2s8r8dg11in8r5xx984lcxd5g5l3x6vnha50s0c4nx93x3y", + "fetcher": "github", + "repo": "muffinmad/emacs-pdb-capf", + "unstable": { + "version": [ + 20200419, + 1237 + ], + "commit": "2f4099aa1330f87df4e9cd526de057ee9b71de6c", + "sha256": "0fdzhsz3784lf50mdabz9h2b6992cab2nnn4xv7rx2a8hsyyq1mq" + } + }, { "ename": "pdb-mode", "commit": "6aee132aa24322fe1ac88ae17ee6e77ae1ec8d11", @@ -74134,24 +76085,6 @@ "sha256": "02k379nig43j85wfm327pw6sh61kxrs1gwz0vgcbx9san4dp83bk" } }, - { - "ename": "perl6-mode", - "commit": "4e912dccdee12f745272d26ea10d5f106a27cabc", - "sha256": "0r5q2nggb9kbjcdfv81d7sm41jqz040j9z52fnck4b9mlz2dy6d0", - "fetcher": "github", - "repo": "perl6/perl6-mode", - "unstable": { - "version": [ - 20180619, - 1159 - ], - "deps": [ - "pkg-info" - ], - "commit": "88de065795d6863b23b6042576b9e90f8cbf8798", - "sha256": "0m8kc8j1rwy30439k4l5f351jkfjjp38mjm891ax8ghp9zk5pr7h" - } - }, { "ename": "perlbrew", "commit": "24bd9c2cd848f5003a244a7127e8fc5ef46bdca4", @@ -74356,25 +76289,25 @@ "repo": "nex3/perspective-el", "unstable": { "version": [ - 20200310, - 1730 + 20200418, + 1815 ], "deps": [ "cl-lib" ], - "commit": "21877375d718e57d5e10808f06f78ba0c4d420c8", - "sha256": "0a1s1ygxday0602xk5dg19v1wjmz8dm4ajiwiflvyhqas4wcv9j2" + "commit": "c3075b52db1f973202303fa306c56a24d9d47fc9", + "sha256": "0mcsrkga5y8sl05mv3n4lmjpgn9mcpy01w0qz55a6jv301rda3p0" }, "stable": { "version": [ 2, - 5 + 7 ], "deps": [ "cl-lib" ], - "commit": "21877375d718e57d5e10808f06f78ba0c4d420c8", - "sha256": "0a1s1ygxday0602xk5dg19v1wjmz8dm4ajiwiflvyhqas4wcv9j2" + "commit": "c3075b52db1f973202303fa306c56a24d9d47fc9", + "sha256": "0mcsrkga5y8sl05mv3n4lmjpgn9mcpy01w0qz55a6jv301rda3p0" } }, { @@ -74403,6 +76336,21 @@ "sha256": "0mi7ipx0zg0vrm9da24i4j0300xj0dm3jjg35f466pm3a7xafrsg" } }, + { + "ename": "pest-mode", + "commit": "d3145c38d53aa94c6ae33f2bc0cb804e246a8558", + "sha256": "0d89s1lqif6mdbm1fh6h1m4414sxa382rjyw3qqsm5iz2b5vf14p", + "fetcher": "github", + "repo": "ksqsf/pest-mode", + "unstable": { + "version": [ + 20200321, + 504 + ], + "commit": "4ae88a9c81d499bbe99978ff0216b645fed70023", + "sha256": "1zc7dmgp3s9q33wkvw6i7zzlcaa65ixx3hxb78m62lk2a7fzb3ih" + } + }, { "ename": "pfuture", "commit": "5fb70c9f56a58b5c7a2e8b69b191aa2fc7c9bcc8", @@ -74411,19 +76359,19 @@ "repo": "Alexander-Miller/pfuture", "unstable": { "version": [ - 20200113, - 620 + 20200425, + 1357 ], - "commit": "fbecd1562b34fcd15563b7cc00d98e5af0d7e43d", - "sha256": "1imqavzc0isba3yh128jzsy27x2983sjiqkf6q2xw43mbjknl8dy" + "commit": "d7926de3ba0105a36cfd00811fd6278aea903eef", + "sha256": "1chpin5277vbl2xvsl04pzzk7a9dbcvclibm2496gz6yvd19pwsf" }, "stable": { "version": [ 1, - 8 + 9 ], - "commit": "fbecd1562b34fcd15563b7cc00d98e5af0d7e43d", - "sha256": "1imqavzc0isba3yh128jzsy27x2983sjiqkf6q2xw43mbjknl8dy" + "commit": "d7926de3ba0105a36cfd00811fd6278aea903eef", + "sha256": "1chpin5277vbl2xvsl04pzzk7a9dbcvclibm2496gz6yvd19pwsf" } }, { @@ -74779,27 +76727,25 @@ "repo": "OVYA/php-cs-fixer", "unstable": { "version": [ - 20190207, - 1126 + 20200312, + 1309 ], "deps": [ "cl-lib" ], - "commit": "6540006710daf2b2d47576968ea826a83a40a6bf", - "sha256": "089x26akvkfm772v8n3x3l5wpkhvlgad2byrcbh0a1vyhnjb2fvd" + "commit": "95eace9bc0ace128d5166e303c76df2b778c4ddb", + "sha256": "1pl6zw1m8n3ir48h58gaq2f474w9j20a6gk4r0cq5vgvzxx25f0h" }, "stable": { "version": [ 1, - 0, - -2, - 4 + 0 ], "deps": [ "cl-lib" ], - "commit": "ca2c075a22ad156c336d2aa093fb6394c9f6c112", - "sha256": "1axjfsfasg7xyq5ax2bx7rh2mgf8caw5bh858hhp1gk9xvi21qhx" + "commit": "95eace9bc0ace128d5166e303c76df2b778c4ddb", + "sha256": "1pl6zw1m8n3ir48h58gaq2f474w9j20a6gk4r0cq5vgvzxx25f0h" } }, { @@ -74825,11 +76771,11 @@ "repo": "emacs-php/php-mode", "unstable": { "version": [ - 20200301, - 1404 + 20200415, + 1405 ], - "commit": "547a31d71991e7bb1d9e5d1ce45b6be6e5740058", - "sha256": "1iwbh8cc3a5ayq1r6lv8jkx5hfa4yfz1rgzmvb2s08si9q3y5wna" + "commit": "4d0b4a04401a2b9f9ff834f6ed58bc7cc5b878c0", + "sha256": "0lgw1lghib0vv4byrhjimldxyqyav4qypprk9ppvwjbad1j0hfkn" }, "stable": { "version": [ @@ -74917,8 +76863,8 @@ "repo": "emacs-php/phpactor.el", "unstable": { "version": [ - 20200121, - 1218 + 20200405, + 1544 ], "deps": [ "async", @@ -74927,8 +76873,8 @@ "f", "php-runtime" ], - "commit": "5ccf65d59e6bbc9cd958dd5988e8fd2143b0d57f", - "sha256": "0k4dzn4a5y4kq7yz3ifvzziv90rp5si380c5ypgxr5iwb1b8a0l3" + "commit": "860d7e8784b261ee71deba354d01c3038cd777ab", + "sha256": "1d3fijh11g70xhx3a47l75mrp64bvkk7hh9lg83nl30qhn2vrbn3" }, "stable": { "version": [ @@ -74982,20 +76928,26 @@ "repo": "emacs-php/phpstan.el", "unstable": { "version": [ - 20200122, - 1256 + 20200411, + 531 ], - "commit": "a1c30ca634107551c20c846b5316ca5697adb06d", - "sha256": "0b7rnzk1zkrzh978bmh2dsy78f0sb4ia1w06khyqiby52m27q9k1" + "deps": [ + "php-mode" + ], + "commit": "2f715a186c5fe6576de83d4c0b64a37e2bfce101", + "sha256": "03ix2s068pzmybj0fcb08dlfgdqw0pmqhbdf4id2077f67bfad0w" }, "stable": { "version": [ 0, - 3, - 3 + 5, + 0 ], - "commit": "535e172e1c561bc7b8c706b4e03bbf71689bd83a", - "sha256": "1hn1rdgymv81rm8nkibnc5jazgjrx3sz4w1lin85rgypzbfaf6wk" + "deps": [ + "php-mode" + ], + "commit": "bf9e82a63f2ccb12af02c9e79a83e7989eeb7cb1", + "sha256": "15kv5xv6lcfgf048wr2zsnpvrplbxypy3wq56zvrzbq18hwprqg1" } }, { @@ -75197,25 +77149,25 @@ "repo": "davep/pinboard.el", "unstable": { "version": [ - 20191203, - 1015 + 20200402, + 919 ], "deps": [ "cl-lib" ], - "commit": "9351a2320f1e75896f56032959c7bcbf9d9aa560", - "sha256": "080fzpr7is05cb8fj0rzhfc8pmb1rwfmkqnydj36d56da1ndrfmw" + "commit": "7c57f20667ead2bb27ab1d0a03307c28ea728bd9", + "sha256": "0d9z1hr2082sbg4dlmarksh598xd92w7c09xmdjyn1yqm39gsljw" }, "stable": { "version": [ 1, - 2 + 3 ], "deps": [ "cl-lib" ], - "commit": "e14dd43cf74f254a898ae1c698a97d58734fc1a8", - "sha256": "0ljxvp9yppnmy1lnnipqqbk09bmay523haa8h0gnfnrl02jwgs91" + "commit": "7c57f20667ead2bb27ab1d0a03307c28ea728bd9", + "sha256": "0d9z1hr2082sbg4dlmarksh598xd92w7c09xmdjyn1yqm39gsljw" } }, { @@ -75519,11 +77471,11 @@ "repo": "juergenhoetzel/pkgbuild-mode", "unstable": { "version": [ - 20181216, - 1331 + 20200425, + 616 ], - "commit": "e30e37730b5f30bc0dd5b9328fbf4cb3e6f46fdd", - "sha256": "1ijx067hlbr4yz9b9h58pwlqd4rgjgm27f5s1f9f3rwb249s36s1" + "commit": "bc22301198b3f581d89352510e847454fb1cb9ff", + "sha256": "11il65myybgfj30psicfgqpjwwpa6hwapf55d497x8kbixx2kpg1" }, "stable": { "version": [ @@ -75764,6 +77716,25 @@ "sha256": "0g6d7z9sv7fdc918gay7rd71frzqn75mcwnljgmqksfh5890apa6" } }, + { + "ename": "playonline", + "commit": "27d8ea9dac3637eed39a68308194b30c1672a8ca", + "sha256": "10shq955cz664r0j0yjfrnnbvzjpcyq638lm6hwkiia5xbvsdz88", + "fetcher": "github", + "repo": "twlz0ne/playonline.el", + "unstable": { + "version": [ + 20200317, + 642 + ], + "deps": [ + "dash", + "request" + ], + "commit": "c75da1fdc1dfbd5d9aa274dc4e90ff631ea08e70", + "sha256": "0vkgzqdcxp4mlkz9z8p4307lbvjz51wpqhzpmyw4gwl079xc6gkq" + } + }, { "ename": "plenv", "commit": "a0819979b9567ac5fab9ed6821eba8fe7ee6a299", @@ -75810,11 +77781,11 @@ "repo": "flexibeast/plisp-mode", "unstable": { "version": [ - 20190914, - 513 + 20200403, + 613 ], - "commit": "02738af25707e39d8a608b09a24173bb05f5be9f", - "sha256": "133wm5fd91z9k3zpflb455nglpgy1dqyz3mz2s694xyppw4rvkia" + "commit": "03dcd523295a0dec76356d23043428d850b03b70", + "sha256": "0g9bwd137z543pbdq4j74j0ql8j2657yxh4kb809jps9kxq8dc0k" } }, { @@ -76137,15 +78108,15 @@ "repo": "galaunay/poetry.el", "unstable": { "version": [ - 20200112, - 2309 + 20200326, + 1328 ], "deps": [ "pyvenv", "transient" ], - "commit": "01da45f478c8ace3dea5088746873ac2d7c23dbb", - "sha256": "08x1q54pnb3hh4a2wbmghffl5cnq99sf280qdbgc65vqhdkj8r1z" + "commit": "6dcc9d22cac6642a861770b5518398d8ee4fcc9a", + "sha256": "1za8s1k5ni11yqz64rz777lps400jnga151cca2f3l3xx2lcc2c7" }, "stable": { "version": [ @@ -76241,20 +78212,21 @@ "repo": "polymode/poly-R", "unstable": { "version": [ - 20190605, - 2103 + 20200316, + 1315 ], "deps": [ "poly-markdown", "poly-noweb", "polymode" ], - "commit": "0443c89b4d2bc2ed235a0c017109c2dbd342aa02", - "sha256": "1v5djxwgqksf84pxfpgbm7qaz3yq5ha7cac0792p62pj1ydzvghi" + "commit": "51ffeb6ec45dd44eafa4d22ad2d6150cc4b248fc", + "sha256": "0a4wx73jkngw5nbq1fa4jfhba6bsmyn6vnsf887x3xhb5v3ykhsg" }, "stable": { "version": [ 0, + 2, 2 ], "deps": [ @@ -76262,8 +78234,8 @@ "poly-noweb", "polymode" ], - "commit": "0443c89b4d2bc2ed235a0c017109c2dbd342aa02", - "sha256": "1v5djxwgqksf84pxfpgbm7qaz3yq5ha7cac0792p62pj1ydzvghi" + "commit": "51ffeb6ec45dd44eafa4d22ad2d6150cc4b248fc", + "sha256": "0a4wx73jkngw5nbq1fa4jfhba6bsmyn6vnsf887x3xhb5v3ykhsg" } }, { @@ -76311,25 +78283,26 @@ "repo": "polymode/poly-erb", "unstable": { "version": [ - 20190605, - 2102 + 20200316, + 1314 ], "deps": [ "polymode" ], - "commit": "304204f415b9e46ee36b64531b7d170540828335", - "sha256": "0v13ssv9fjardg5as832hkhlx7yhjcdkm3bdcdj0qy31cmvk6dzb" + "commit": "56c744b8d87d8cbe0aba2696d4e8525afc4aa0e8", + "sha256": "118x9qrays54n6ksnln51ps5c298zs8ih7k49mn6aq6lpvwy5wjr" }, "stable": { "version": [ 0, + 2, 2 ], "deps": [ "polymode" ], - "commit": "304204f415b9e46ee36b64531b7d170540828335", - "sha256": "0v13ssv9fjardg5as832hkhlx7yhjcdkm3bdcdj0qy31cmvk6dzb" + "commit": "56c744b8d87d8cbe0aba2696d4e8525afc4aa0e8", + "sha256": "118x9qrays54n6ksnln51ps5c298zs8ih7k49mn6aq6lpvwy5wjr" } }, { @@ -76340,27 +78313,28 @@ "repo": "polymode/poly-markdown", "unstable": { "version": [ - 20190916, - 702 + 20200316, + 1315 ], "deps": [ "markdown-mode", "polymode" ], - "commit": "a867e5e5689f1e1a5bab5db57c7d39bac2448bcb", - "sha256": "1mrmrwmrv6xsafhn7ys3y8nbdqgzhkrb2mm0gir63g03kd6bn793" + "commit": "1536cf0c32f71d5cd05c90f7905905e38006e95d", + "sha256": "1q4qq0ql08hxkdrd2aal03560k612my7bvnfpfij3g432hn0p7v6" }, "stable": { "version": [ 0, + 2, 2 ], "deps": [ "markdown-mode", "polymode" ], - "commit": "b0de1a9f3e4d7191b1b23b65ebf03dd0ac007afc", - "sha256": "0b6wlmhrpcw9g8rbw7q7k5fr2lgcp1rpy7d9p9f0gzn52yvcr4dr" + "commit": "1536cf0c32f71d5cd05c90f7905905e38006e95d", + "sha256": "1q4qq0ql08hxkdrd2aal03560k612my7bvnfpfij3g432hn0p7v6" } }, { @@ -76371,25 +78345,26 @@ "repo": "polymode/poly-noweb", "unstable": { "version": [ - 20190605, - 2102 + 20200316, + 1315 ], "deps": [ "polymode" ], - "commit": "4e65cb22d6bca901021205257f867f868989c665", - "sha256": "1pnjg615i5p9h5fppvn36vq2naz4r1mziwqjwwxka6kic5ng81h8" + "commit": "3b0cd36ca9a707e8a09337a3468fa85d81fc461c", + "sha256": "1jl5h4nf10xd2gdlsxi6h2n3z5zh26ffcixn68xfp5q4zl34zk8p" }, "stable": { "version": [ 0, + 2, 2 ], "deps": [ "polymode" ], - "commit": "4e65cb22d6bca901021205257f867f868989c665", - "sha256": "1pnjg615i5p9h5fppvn36vq2naz4r1mziwqjwwxka6kic5ng81h8" + "commit": "3b0cd36ca9a707e8a09337a3468fa85d81fc461c", + "sha256": "1jl5h4nf10xd2gdlsxi6h2n3z5zh26ffcixn68xfp5q4zl34zk8p" } }, { @@ -76400,25 +78375,26 @@ "repo": "polymode/poly-org", "unstable": { "version": [ - 20200304, - 1057 + 20200316, + 1315 ], "deps": [ "polymode" ], - "commit": "9f89c1f590f616e2cd93df4f441cd1e9818cc7ac", - "sha256": "0r5vlvz2kinblxnzpshxa6mww3al4kwj8gy19hzrq3gj9jpr4ymb" + "commit": "8f4d11489532be98a291258ca27405aa528fc126", + "sha256": "1srnwcsn2bh8gqzxixkhffk7gbnk66kd4dgvxbnps5nxqc6v0qhc" }, "stable": { "version": [ 0, + 2, 2 ], "deps": [ "polymode" ], - "commit": "8b0de75b1f9b65c22f7e3fbc205c9408214c8a1f", - "sha256": "04x6apjad4kg30456z1j4ipp64yjgkcaim6hqr6bb0rmrianqhck" + "commit": "8f4d11489532be98a291258ca27405aa528fc126", + "sha256": "1srnwcsn2bh8gqzxixkhffk7gbnk66kd4dgvxbnps5nxqc6v0qhc" } }, { @@ -76429,25 +78405,26 @@ "repo": "polymode/poly-rst", "unstable": { "version": [ - 20190605, - 2103 + 20200316, + 1315 ], "deps": [ "polymode" ], - "commit": "1a7d38e1c1d35cf64e4dad408db486a8e1931e61", - "sha256": "1xzbznm43hsvmg2ibqa6a1rymfy85nagjsxadn5mj9r04ivhf2fd" + "commit": "8530f56fbdce01bcf4004839ff54e4156282c2b5", + "sha256": "088wzagwxpf2j67wb1i6agqfa944sahh2fm8my2m50spbbd9ymhl" }, "stable": { "version": [ 0, + 2, 2 ], "deps": [ "polymode" ], - "commit": "1a7d38e1c1d35cf64e4dad408db486a8e1931e61", - "sha256": "1xzbznm43hsvmg2ibqa6a1rymfy85nagjsxadn5mj9r04ivhf2fd" + "commit": "8530f56fbdce01bcf4004839ff54e4156282c2b5", + "sha256": "088wzagwxpf2j67wb1i6agqfa944sahh2fm8my2m50spbbd9ymhl" } }, { @@ -76488,27 +78465,28 @@ "repo": "polymode/poly-slim", "unstable": { "version": [ - 20190605, - 2103 + 20200316, + 1316 ], "deps": [ "polymode", "slim-mode" ], - "commit": "a4fb8166d110b82eb3f1d0b4fc87045c3308bd7d", - "sha256": "06kwhmw5r5h4bsaqscr7dl3rfsa6wp642597zcmzdly94h26iwy9" + "commit": "9e9b5164c68955974fd5f5d220aec5af9b5ba3ae", + "sha256": "1742wlx07khra7xfbd6f8d3i030w87mncnyx6kf6im10khf8qwmb" }, "stable": { "version": [ 0, + 2, 2 ], "deps": [ "polymode", "slim-mode" ], - "commit": "a4fb8166d110b82eb3f1d0b4fc87045c3308bd7d", - "sha256": "06kwhmw5r5h4bsaqscr7dl3rfsa6wp642597zcmzdly94h26iwy9" + "commit": "9e9b5164c68955974fd5f5d220aec5af9b5ba3ae", + "sha256": "1742wlx07khra7xfbd6f8d3i030w87mncnyx6kf6im10khf8qwmb" } }, { @@ -76538,19 +78516,20 @@ "repo": "polymode/polymode", "unstable": { "version": [ - 20200307, - 1519 + 20200411, + 915 ], - "commit": "44601aace1e9cef9b89379cc7b4e2144cca60b6a", - "sha256": "0wl2lc5niq89axbxi2frls2iq0ns6pmdqdaknnppgrasvfjxfwj3" + "commit": "2a61fb6d3e805bc0e4ca7b6510510a955c6bfb6a", + "sha256": "0cphikjz9hwij1k41radyar6nh7md8v98qwn2j9lzcbyz69hrvaq" }, "stable": { "version": [ 0, + 2, 2 ], - "commit": "82a0c3d71cc02e32a347033b3f42afeac4e43f66", - "sha256": "04v0gnzfsjb50bgly6kvpryx8cyzwjaq2llw4qv9ijw1l6ixmq3b" + "commit": "44265e35161d77f6eaa09388ea2256b89bd5dcc8", + "sha256": "18ssl2h861dm2jkd3df6wkfr48p8zk337dbvpq5522kia7fq1lbn" } }, { @@ -76620,14 +78599,14 @@ "repo": "ponylang/pony-snippets", "unstable": { "version": [ - 20160205, - 411 + 20200418, + 354 ], "deps": [ "yasnippet" ], - "commit": "b921bd943b528f04d4293625b28fd2d4a013a1bf", - "sha256": "183vml7090w1fx99rz9d8qjfbf089wqilyflk0512xz8al3gcd8q" + "commit": "115a0d5066f89554bee9cb1045bcda5a18ebd441", + "sha256": "1g11w52bf724zwwsvrcylk3ndjci2cnbzing77c91psz6d7zjkvw" }, "stable": { "version": [ @@ -76680,29 +78659,28 @@ "repo": "aki2o/emacs-pophint", "unstable": { "version": [ - 20170918, - 248 + 20200420, + 1429 ], "deps": [ "log4e", "yaxception" ], - "commit": "909025c5a871ca4b9ec7aed7f1a27c819a94dba1", - "sha256": "0qbb36qijkzbzxlmqsvvddm7x2gk9rkafnyjbkxsl76rz1ajy6nz" + "commit": "5e13da4578ae7ba00e6f7bae31eb546d713cc19d", + "sha256": "01bwfswzzrjxrjaqysaqnav7h3swwyigxw7nj0cgrm3w8cp1y2a8" }, "stable": { "version": [ - 0, - 9, - 3 + 1, + 3, + 0 ], "deps": [ "log4e", - "popup", "yaxception" ], - "commit": "28dc6a76e726f371bcca3160c27ae2017324399c", - "sha256": "18i0kivn6prh5pwdr7b4pxfxqsc8l4mks1h6cfs7iwnfn15g5k19" + "commit": "5e13da4578ae7ba00e6f7bae31eb546d713cc19d", + "sha256": "01bwfswzzrjxrjaqysaqnav7h3swwyigxw7nj0cgrm3w8cp1y2a8" } }, { @@ -76752,10 +78730,10 @@ }, { "ename": "popup-complete", - "commit": "b43b85f90c476a3b88f94927a7db90bdc72cd171", - "sha256": "04bpm31zx87j390r2xi1yl4kyqgalmyqc48xarsm67zfww9fw9c1", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "1mw892nr3dfhsjiqyyf3znd7vji4kxly295bbq74vszza2i0b87i", "fetcher": "github", - "repo": "syohex/emacs-popup-complete", + "repo": "emacsorphanage/popup-complete", "unstable": { "version": [ 20141109, @@ -76916,30 +78894,30 @@ "repo": "jcaw/porthole", "unstable": { "version": [ - 20190721, - 1428 + 20200404, + 1454 ], "deps": [ - "elnode", "f", - "json-rpc-server" + "json-rpc-server", + "web-server" ], - "commit": "0e73b8e527cfc9ecba2fa4f88382f588fb4a300d", - "sha256": "06nf12cvxk2dxqljrga59vp8wkvsif1mm3ahvy1nbjsq6s8zryq4" + "commit": "9e68b419acf9245208f8094e10041b7f04511473", + "sha256": "0kaf00924jg50l2zdhyf1lxsh44nfp4zbc23wxbir45xdx9rzl3z" }, "stable": { "version": [ 0, - 2, - 5 + 3, + 0 ], "deps": [ - "elnode", "f", - "json-rpc-server" + "json-rpc-server", + "web-server" ], - "commit": "481a3a247586417b7643d393113ff8faf95b327e", - "sha256": "1gdywyb1vq7i983d4bdhwdkk0vk0x09rms83xyk4j75qlqb05vp1" + "commit": "9e68b419acf9245208f8094e10041b7f04511473", + "sha256": "0kaf00924jg50l2zdhyf1lxsh44nfp4zbc23wxbir45xdx9rzl3z" } }, { @@ -76974,20 +78952,20 @@ "repo": "tumashu/posframe", "unstable": { "version": [ - 20200304, - 631 + 20200426, + 819 ], - "commit": "4ff106ed5c6e3dc9ddba7e158c7ae9085a43b0bc", - "sha256": "1468g9n1dxnsws31zvzm9y6sfcpxx24qj24jmsv7x6r4qk00bq29" + "commit": "093b29a53cbeda6d637ccc9ef4dfc47123e79b9e", + "sha256": "0wca1w667h930dyi3hm1kqiqapggnwbgqjbxiwpgj7l773s7xdbw" }, "stable": { "version": [ 0, - 6, + 7, 0 ], - "commit": "9638b9d9cf8b9727a13c86f70b5d33bf938497a5", - "sha256": "12r1as9lqqc6anckq455dqv8dbqahnbdzj437i11053wv33cv5vd" + "commit": "83b4d39fdda34355c01aecc22677f7376ae0f013", + "sha256": "0cjrl4xgs70hbw1a1mqkdmpcmrxaakw8csrz365c31vj14nii0ax" } }, { @@ -77003,6 +78981,14 @@ ], "commit": "ebaacd7266ae7a66605317f57b9f42e9cfb2ce1e", "sha256": "0kdcpd59jd1gasqk5gx4ggbyp492b53dy6n3nkv9j2rj8618yzs6" + }, + "stable": { + "version": [ + 0, + 1 + ], + "commit": "ebaacd7266ae7a66605317f57b9f42e9cfb2ce1e", + "sha256": "0kdcpd59jd1gasqk5gx4ggbyp492b53dy6n3nkv9j2rj8618yzs6" } }, { @@ -77184,11 +79170,14 @@ "repo": "conao3/ppp.el", "unstable": { "version": [ - 20200224, - 1320 + 20200418, + 1551 ], - "commit": "a4eaec44216b189108164b42381abf35d0031200", - "sha256": "1gvzgx9nq6gqdgb5m6pdp14w96fd6j7b9bgc0pric0aw04i2bzp6" + "deps": [ + "leaf" + ], + "commit": "27683aa4a0df67b4539bcaa2e82d865023cf1fae", + "sha256": "0azqpmlz6r2amklzrgi0wgmy89fbkz0kkpikgf5gccfmks5pij6y" }, "stable": { "version": [ @@ -77246,19 +79235,19 @@ "repo": "raxod502/prescient.el", "unstable": { "version": [ - 20191224, - 220 + 20200412, + 1607 ], - "commit": "7fd8c3b8028da4733434940c4aac1209281bef58", - "sha256": "1igsjdkxax2lavglc03h0dk3d7fpgqvlymnhyxx738sjyfzl09cr" + "commit": "0f4a89bdec61395138d968a38d375e63ccfbed63", + "sha256": "0nnf4y49pl9lcs90y5z6f02g1xwk1jjrl0qs7gcv6kpn0vn8kn0h" }, "stable": { "version": [ 4, - 0 + 1 ], - "commit": "ad9fbe8a17fe74b27a39bcc034f3da1865663387", - "sha256": "008hxy1vasnyz36wwg44gikpi80ng75hj85nrswk60b7z7cznbmr" + "commit": "aa3110281a0622fa7b5da115cefb71a319b5b1a0", + "sha256": "1rf5cz262hjpck7vpxg15bccdrwrmlhiyxc20liwcjb2ig36nis3" } }, { @@ -77434,25 +79423,26 @@ "repo": "alphapapa/prism.el", "unstable": { "version": [ - 20200301, - 1139 + 20200407, + 1148 ], "deps": [ "dash" ], - "commit": "a9bb7ec3dcf83b4352f2a68134b6fd1d4977b27f", - "sha256": "04awq9h795ji90bp7z1d9cmg9s2sjx32snbzyp81gb55z02abihd" + "commit": "b618f2cea2dbf7c13d8b4fec1760c346eb9ab036", + "sha256": "1fn6514ii2z1xbjzmp0h1mhxl1yaqqk4n6zgswhxdywni34cb6hs" }, "stable": { "version": [ 0, - 1 + 2, + 2 ], "deps": [ "dash" ], - "commit": "682034ff5f3fd62bd24eee1873a2c68498e8b7d3", - "sha256": "1bzqqvyraj5h4flzmhxbjgaw98wgqd21hmjq1jg4j3yxwg8cbrw9" + "commit": "b618f2cea2dbf7c13d8b4fec1760c346eb9ab036", + "sha256": "1fn6514ii2z1xbjzmp0h1mhxl1yaqqk4n6zgswhxdywni34cb6hs" } }, { @@ -77847,14 +79837,14 @@ "repo": "bbatsov/projectile", "unstable": { "version": [ - 20200307, - 1701 + 20200329, + 1908 ], "deps": [ "pkg-info" ], - "commit": "588692ad56395ed4fd072bac496b33992096bfe4", - "sha256": "1dysdh4nwxxz6yqimy65ssyvkyki0lk8j0v120csh9igb97ryy6v" + "commit": "2aa3a663fc9a9a75c3bf73699e40ecc0c3567268", + "sha256": "1cw4bgj9iglcs71zrbx8rjk19dfvnws795qbm52hm7zs95lfprxn" }, "stable": { "version": [ @@ -77968,8 +79958,8 @@ "repo": "asok/projectile-rails", "unstable": { "version": [ - 20200203, - 1226 + 20200417, + 1711 ], "deps": [ "f", @@ -77978,8 +79968,8 @@ "projectile", "rake" ], - "commit": "0398d940a201128946f619de842b0d1f9f0fffbd", - "sha256": "0cfrm56bxdwb96xqpdih6hqh61gvc1wal4yp7d7c414j8h0s7d02" + "commit": "11980b2bcb99208888856a9b8666ff329b6f0142", + "sha256": "0crb08byq1i9wcjmcl645wc03p1jadm4f9nd138rii69nzancwfl" }, "stable": { "version": [ @@ -78045,8 +80035,8 @@ "projectile", "sift" ], - "commit": "33b2c9ff964fe53bb55b37429faaa4e903bead7a", - "sha256": "0cb8rcxl0jwpbgz9kk136l2ranficv8lk85fhvly1lpslbjljds9" + "commit": "cdddba2d183146c340915003f1b5d09d13712c22", + "sha256": "0ln87nhq2vhsb0ywn7rp0b3hzms5z7l6cv6dng08yly12r2957if" }, "stable": { "version": [ @@ -78219,11 +80209,11 @@ "repo": "chuntaro/emacs-promise", "unstable": { "version": [ - 20200209, - 616 + 20200425, + 617 ], - "commit": "c45b4e09d796385823cfb42ab15a4e67feb01b77", - "sha256": "1crhny97p6yz3z2lb1m43334vsprdiz3sb79jp7czyxskkwqn86r" + "commit": "2a8e71420e8c9d2d4ce951d4342762aeedaae654", + "sha256": "1drz8qbcw5qjh5v0vkvflni14g58nmkmyn11ksjd49ck296mfsp7" }, "stable": { "version": [ @@ -78299,11 +80289,11 @@ "repo": "ProofGeneral/PG", "unstable": { "version": [ - 20200302, - 1348 + 20200416, + 1351 ], - "commit": "f737203ced2446ec54be7b31b21c47e731404e12", - "sha256": "1fg2siway0gz2b6sq9klijmi3pb6vg54s638d02yzs32340a2qsf" + "commit": "e901c0bb73e0e66c95879bbb3738ac79e91ffeaa", + "sha256": "1j6dwcpplh98wf3mncidc8gn96pv58g71igim28gkqx21g8p2i40" }, "stable": { "version": [ @@ -78406,8 +80396,8 @@ 20170526, 1650 ], - "commit": "94b39efdf70de21bc757dc2aceaf5ed36c6535a3", - "sha256": "0mrkzh3cikcg2wddz9hla79pc5isjifcqx025radcc6m0jmg7hjv" + "commit": "dddeed298bf84505f4d123a068f911025b351661", + "sha256": "10a70drfyanrjpx157aip402vd56ynm85ryzripd3w0symn9k1c3" }, "stable": { "version": [ @@ -78471,8 +80461,8 @@ "repo": "purescript-emacs/psc-ide-emacs", "unstable": { "version": [ - 20191217, - 1144 + 20200317, + 1013 ], "deps": [ "company", @@ -78483,8 +80473,8 @@ "s", "seq" ], - "commit": "2a9394422da317b54aa1da021aea6cded19004c1", - "sha256": "18pfi04grvdbgz8v5yb06y5mv0q6mkwm4rj43h35nw75l2gwaapv" + "commit": "7fc2b841be25f5bc5e1eb7d0634436181c38b3fe", + "sha256": "0r0fymyai30jimm34z1cmav4wgij8ci6s1d9y7qigygfbbfrdsmj" } }, { @@ -78618,8 +80608,8 @@ "repo": "fvdbeek/emacs-pubmed", "unstable": { "version": [ - 20200221, - 1013 + 20200426, + 1239 ], "deps": [ "deferred", @@ -78627,13 +80617,13 @@ "s", "unidecode" ], - "commit": "de005c16750dfd925cd528b265fea133bb1cf342", - "sha256": "00fbks0f8kcmsazncrpkmi7w0ygd9ph1js6z1dwbdkjzwb161xv7" + "commit": "e619042f3c0383c7d4e1762fb46ff680e90906d6", + "sha256": "1igvmwxfpa19aws7h066hk9axwgl3swp8lmn218c1hmq2j2jkwgz" }, "stable": { "version": [ 0, - 3, + 4, 3 ], "deps": [ @@ -78642,8 +80632,8 @@ "s", "unidecode" ], - "commit": "de005c16750dfd925cd528b265fea133bb1cf342", - "sha256": "00fbks0f8kcmsazncrpkmi7w0ygd9ph1js6z1dwbdkjzwb161xv7" + "commit": "e619042f3c0383c7d4e1762fb46ff680e90906d6", + "sha256": "1igvmwxfpa19aws7h066hk9axwgl3swp8lmn218c1hmq2j2jkwgz" } }, { @@ -78684,11 +80674,11 @@ "repo": "flexibeast/pulseaudio-control", "unstable": { "version": [ - 20190828, - 1136 + 20200406, + 752 ], - "commit": "1b844a9b21d549bfe767990b4c611de3bc4e2241", - "sha256": "0fz2ynxxgq3j7hvfmqq24gvbfpc08apz6zw9cjav08r5z04n1xr3" + "commit": "a931533140547510decdc368f39b2d2b97ca725f", + "sha256": "1jvjn9jszjjapi167an49jxcvr88cvgjwykglhp4b8lwhbjfqw76" } }, { @@ -78768,26 +80758,25 @@ "repo": "voxpupuli/puppet-mode", "unstable": { "version": [ - 20180813, - 1947 + 20200419, + 1236 ], "deps": [ "pkg-info" ], - "commit": "7dee1b5a5debac6e56f9107492a413b6c0edb94d", - "sha256": "01isn90h50p5c6cgzwhb1jq8yacj0fxw9ppfqrnynckg6ydpvg74" + "commit": "0197b405c79a5d0718979f31df760bb3bfca38de", + "sha256": "0k1r0r1cvk6z3lj5shgd8ly78sfl8bbkmld6x5cvw481ynyb7rgy" }, "stable": { "version": [ 0, - 3 + 4 ], "deps": [ - "cl-lib", "pkg-info" ], - "commit": "d943149691abd7b66c85d58aee9657bfcf822c02", - "sha256": "0xr3s56p6fbm6wgw17galsl3kqvv8c7l1l1qvbhbay39yzs4ff14" + "commit": "73ea35bc7a3ad663c5b73f65cb6377eb0ae11d6f", + "sha256": "0c5q8qmbligzjsn05di4wh6ggpd3944j4yqb78vzd441b8ssq70i" } }, { @@ -79230,8 +81219,8 @@ "repo": "tumashu/pyim", "unstable": { "version": [ - 20200311, - 637 + 20200426, + 505 ], "deps": [ "async", @@ -79239,21 +81228,22 @@ "pyim-basedict", "xr" ], - "commit": "61f33ac62bbfb8c5e4b757d6f880286fbced5bdf", - "sha256": "1pq83b67mwj4b1wyxkpqd66cw8w3wm0x6w030wxqz03qg94gdi3d" + "commit": "b934273bb33d6be6aea6e20e68930bc5aaf4a48a", + "sha256": "01ykgpzkv06gxiaqj4z1qwf00pwdfm0zxzbsy4xr8ciyhhxbc9pj" }, "stable": { "version": [ 1, - 8 + 9 ], "deps": [ "async", "popup", - "pyim-basedict" + "pyim-basedict", + "xr" ], - "commit": "8648d467d79b3bf1c3a99623f9329939cacc40da", - "sha256": "16rma4cv7xgky0g3x4an27v30jdi6i1sqw43cl99zhkqvp43l3f9" + "commit": "8fe9897f57e410a7637692d98c40876cb3bd6c2d", + "sha256": "1n9syy39rnma0giz2g1dhdfjj4nn5bls2qzswy48snfl5z5mfm5j" } }, { @@ -79306,14 +81296,14 @@ "repo": "tumashu/pyim-wbdict", "unstable": { "version": [ - 20190201, - 2300 + 20200331, + 542 ], "deps": [ "pyim" ], - "commit": "9799b689643052078f53d69342a82315251490f4", - "sha256": "1rqlckmlmwmnqvk8bbcyvwr54p6x9b1fph5f17anzlvwffdjsw5c" + "commit": "daa223e2603a5ef3e6c8e33575d8f4e4604a8d3c", + "sha256": "0inl29fa2l5grn6z2wszj43bv17yf7n9x8l77zk2xp8q3gkswd86" }, "stable": { "version": [ @@ -79385,8 +81375,8 @@ 20170402, 1255 ], - "commit": "47ec7e7a2937c78136c560b458bc2467bee2acd9", - "sha256": "01sn57g8za6w89vyg7vyfh8v1jj32f329macfjlvgkamqrpmyj4q" + "commit": "be5a61b13e48a129613e0c659bfd28bf9824f53c", + "sha256": "124pf14z2yc56bvn0vvg0irzl39q3bbng4zp75qjzgb7d387n4hb" } }, { @@ -79463,14 +81453,14 @@ "repo": "ionrock/pytest-el", "unstable": { "version": [ - 20181005, - 1524 + 20200330, + 41 ], "deps": [ "s" ], - "commit": "1bfa7549001e61ecd59cd6eae7c6656a924d1ba4", - "sha256": "1ry0czn0qjjiw75v47jamxbfzh70jxai6lvf3pp5v87wp1xhnznh" + "commit": "6934047242db79b1c53e9fe3e0734cc9719ed1c4", + "sha256": "1gh5sqmhw7hl67m7nqgd4wwns7a10j0sfmabm97k1cmmbwdj0vca" } }, { @@ -79481,20 +81471,20 @@ "repo": "poppyschmo/pytest-pdb-break", "unstable": { "version": [ - 20191218, - 530 + 20200316, + 301 ], - "commit": "8b097f5fc8b42a9eddb5b020fd2d531c2b1fcddd", - "sha256": "0r1j9jjm013gah0cx10wrmv0blqqk6fwgs3wfgq7hsdrkm4pjil9" + "commit": "007427af712df9fa2c54869388d74e97f91b2bd7", + "sha256": "14l14605lgq498j37916p4gjwkqjb8z4ky85wlk3pgyx6bp20ckz" }, "stable": { "version": [ 0, 0, - 7 + 8 ], - "commit": "8b097f5fc8b42a9eddb5b020fd2d531c2b1fcddd", - "sha256": "0r1j9jjm013gah0cx10wrmv0blqqk6fwgs3wfgq7hsdrkm4pjil9" + "commit": "007427af712df9fa2c54869388d74e97f91b2bd7", + "sha256": "14l14605lgq498j37916p4gjwkqjb8z4ky85wlk3pgyx6bp20ckz" } }, { @@ -79505,15 +81495,15 @@ "repo": "wbolster/emacs-python-black", "unstable": { "version": [ - 20190817, - 1754 + 20200324, + 930 ], "deps": [ "dash", "reformatter" ], - "commit": "706d317f0874d7c5b5a3d844698bcfb8b1fe253e", - "sha256": "0fjnd85nlkck156dj6cahk8chhgkbgl2kwywqzi8bl4yj700m4dk" + "commit": "a11ca73f6dfcdc125d27ff184496d66bdbd71326", + "sha256": "1jv2fwlf7q8l5npqcpr05xzqmfqlx6xmjn0zphh9rx6dd2dpdma9" }, "stable": { "version": [ @@ -79537,11 +81527,11 @@ "repo": "thisch/python-cell.el", "unstable": { "version": [ - 20190217, - 1823 + 20200314, + 1147 ], - "commit": "665725446b194dbaaff9645dd880524368dd710a", - "sha256": "1rjh16jacp98i0l78ij5lfp5f0b42qhfzms2x8zwr9j2aj1csy2h" + "commit": "4f0778b05bfb936861449bcb998ed620cd9b31ad", + "sha256": "0fjqy8wkxm8m94xfvvj12fpx8ybaln8x4ss9b0iaz9y9jvfwzg21" } }, { @@ -79570,8 +81560,8 @@ 20190716, 921 ], - "commit": "0d2f783f5a868ded8a37aa5881f8952aa36b053f", - "sha256": "1cqcxdg4bv8ybw5ds5av4id39fyk711bfadc779ilj5dn0mcd4h7" + "commit": "ec253711f2bdcb3848046bb68f6405a7bf9eb0fb", + "sha256": "0m27h2ycjz212r012wh4wsahidclmb74gk9g3v6ym9a2120bk0dh" } }, { @@ -79627,11 +81617,11 @@ "repo": "python-mode-devs/python-mode", "unstable": { "version": [ - 20200224, - 1148 + 20200417, + 648 ], - "commit": "5bf2c0dafb086684124c3997a618d40ac8db0fb0", - "sha256": "1hz9j8k4bybvi3kgq51rqi0rwy3d7c5wqvx2kkljh6734m9x8xp2" + "commit": "9c336295c830f684dbf043fbbde432c54a2b4678", + "sha256": "0h02d02wv5hkz3lnjr9zxr8dwd4b1v2r6wf808g0x6xqnm01wspm" }, "stable": { "version": [ @@ -79951,11 +81941,11 @@ "repo": "lbolla/emacs-quasi-monochrome", "unstable": { "version": [ - 20181213, - 827 + 20200415, + 705 ], - "commit": "68060dbbc0bbfe4924387392874186c5a29bb434", - "sha256": "0zp2xr0bjfqrpb0bqczzick1vvbjmipjavrdi70kw6a9caynvq22" + "commit": "b38d71860fdea945e10e8a766ac9dfa1410ade67", + "sha256": "0jcwfmamvpd22r5sbicbf9442b22lvldfrqldysm4l9yyxs11jy3" }, "stable": { "version": [ @@ -79974,11 +81964,11 @@ "repo": "quelpa/quelpa", "unstable": { "version": [ - 20200304, - 1835 + 20200329, + 719 ], - "commit": "497c281fce65c671aa2bfe780aea5dff4f097d13", - "sha256": "05k096qky4hn9m27gv3pri95mhn57m0vl8lp8phz5br9gm1isp9h" + "commit": "a3c4490a3bb08ee7819b330a93a284b2fd4cd70c", + "sha256": "1rm27y9zni9nscrvsmvi653nwkrlr4gd4cy5pyrynh3q32yhkqik" } }, { @@ -80081,17 +82071,17 @@ }, { "ename": "quickrun", - "commit": "81f0f525680fea98e804f39dbde1dada887e8821", - "sha256": "0f989d6niw6ghf9mq454kqyp0gy7gj34vx5l6krwc52agckyfacy", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "02wxja6l1xq7gini17ana8qy4kvpfzri0gn2dypjnj2nfh1vvk9i", "fetcher": "github", - "repo": "syohex/emacs-quickrun", + "repo": "emacsorphanage/quickrun", "unstable": { "version": [ - 20170223, - 115 + 20200315, + 1029 ], - "commit": "55bbe5d54b80206ea5a60bf2f58eb6368b2c8201", - "sha256": "1skbd5q99d9rwfi954r9p7b7nhwcfijq30z0fpdhbi1iiabf7vqz" + "commit": "50e07e769848b1e1780054fab2e221adc474777b", + "sha256": "15jj9w0z3yfxaikxi8qaxhr8ipi1jc85zckbri2gdbbdy928ypiq" }, "stable": { "version": [ @@ -80249,14 +82239,15 @@ "repo": "greghendershott/racket-mode", "unstable": { "version": [ - 20200218, - 1623 + 20200420, + 1412 ], "deps": [ - "faceup" + "faceup", + "pos-tip" ], - "commit": "7a1414f83981aa174feba28f3d83e95574c7f075", - "sha256": "1bszd21fwaqfqkksqpqiq5058hm7wr500qj75zx1xa2j6r67w7sa" + "commit": "2827e95c5a2605cc25a549b260763922ecd68983", + "sha256": "0f6k9nlg8kz739pla0hkyp010cgdw9jd0qcii1d6dd1w3a84xk3v" } }, { @@ -80419,6 +82410,24 @@ "sha256": "1dk2clsnmjy3bfv6laxf8sslvdajjbwpk83ss8v9xm55dcxjvd7n" } }, + { + "ename": "raku-mode", + "commit": "e9831cc66d9a9e6b6441e6a75d54ce57146571fd", + "sha256": "08c9mgvmcnhn2q1ldqsaabj623b9kxd7blgfjabbwrl7bqkqpwzp", + "fetcher": "github", + "repo": "Raku/raku-mode", + "unstable": { + "version": [ + 20200426, + 1156 + ], + "deps": [ + "pkg-info" + ], + "commit": "e4d8b0230a503f315087443e24708a78ad8665d9", + "sha256": "1864kwd5ixghsr219jlqmgg5gpv802q8xfsk8i8yi5dcy1jn1ckr" + } + }, { "ename": "rally-mode", "commit": "0914825c6d5ad26d2a8035fc33ad98df42df3c53", @@ -80856,11 +82865,11 @@ "repo": "ChillarAnand/real-auto-save", "unstable": { "version": [ - 20190224, - 1446 + 20200418, + 405 ], - "commit": "824ad04121493723b08838c8b96559947dca7ed9", - "sha256": "1szpjv04rp9x9ph44a5s56a2y96z5x474bccsjnmn6yhingh5qik" + "commit": "d55c63106f6000c065f9c256fc4491ea07b2745e", + "sha256": "0b4drlzc384rp43m5454g86d866hx1lj4qdi3mlaz835nl8m86ki" }, "stable": { "version": [ @@ -80879,16 +82888,16 @@ "repo": "realgud/realgud", "unstable": { "version": [ - 20191123, - 1341 + 20200418, + 1721 ], "deps": [ "load-relative", "loc-changes", "test-simple" ], - "commit": "94f283593304c2f673cb4940900197d9cb099faa", - "sha256": "00dzw6nqqsgdlcvpnq1zc2568l5hz7vynqx6vkvvbj3jafc6nwj7" + "commit": "e03446f54c7ee0b4ed3ec7300597046cf1de2bb8", + "sha256": "160pv9jx66ygl3z1g8yrw7f786403lbb182nz972yl4nyjchbdw7" }, "stable": { "version": [ @@ -81136,11 +83145,11 @@ "repo": "xendk/reaper", "unstable": { "version": [ - 20200120, - 2006 + 20200420, + 1703 ], - "commit": "6602e74d6190d2e8dd61358bebb513c3ae8b89fb", - "sha256": "1pywz6xm3wjkbcj5zr7w5xh5wfggvivnw94mmsm6lybnv2zgjg1d" + "commit": "c594d2fb9a027f360e98539a1debf5db639846b7", + "sha256": "0md3aqzy8rgvpafh6f8f2dwwrc43q317bk7p1whghfvji52aindv" }, "stable": { "version": [ @@ -81163,8 +83172,8 @@ 20190710, 1037 ], - "commit": "5e6205cfede8c10c6821dfd9f9757a9d8035ec04", - "sha256": "0w25z5v551w7fcjwk73dwxhp4lydjrn4rc99swd1ffxyzp5cap56" + "commit": "7cf6fbf4e8e86ebb76d118b2703e20b968e030d4", + "sha256": "0b8p7lh0ifrw9rqvv15q3ib206d1wfv3xafpqwc70zzwaxswvk06" }, "stable": { "version": [ @@ -81264,7 +83273,7 @@ 20180205, 556 ], - "commit": "6cb762efbd0aa323f96c687b6bebc9bf00a3ceb3", + "commit": "84bbac534cb114d8d11b86790435b65d36e99e68", "sha256": "0lnnh28qax4qk9n9sng7sgb0w0mnjc8abnch3bd0ba9g5x28z8bx" } }, @@ -81580,19 +83589,19 @@ "repo": "purcell/reformatter.el", "unstable": { "version": [ - 20200304, - 2250 + 20200426, + 818 ], - "commit": "af393979570b801263bd57d7f136dc5bfd1106d1", - "sha256": "04ikh7rmm2rs3wjzgl8b0jgpp49kwafffix942av3bmcd4dw3a4d" + "commit": "dc6278a6b1e3565604346ac41a6ffc3cbab04031", + "sha256": "147qrqs3ndc4xfbb9wiymjsskccp54qpj8bn3i19n9zwm4kmgdzr" }, "stable": { "version": [ 0, - 4 + 5 ], - "commit": "b2963f51009948d5e4885237a148695008d4ccbc", - "sha256": "0hhy6x1bkwlhdlarsgm06g3am4yh02yqv8qs34szpzgy53x84qah" + "commit": "e8f70b20caf6672353a2b0ee3161d4791c412696", + "sha256": "19mji7frfvj925nx2m2cdvsx0lf69dzdl5wbdppyra9717rsspbq" } }, { @@ -81717,6 +83726,48 @@ "sha256": "0k9qgrbzbxx4sjffnr02qx5wm71i3m61w7mh2j4hq9jf8k6nbkq4" } }, + { + "ename": "register-quicknav", + "commit": "fed1473b565f42f7849c7676d0c9739a39562c95", + "sha256": "1487mkyz2h5929580racxr4nbc343klns9bcm7m5jn4hsx5aiq6m", + "fetcher": "git", + "url": "https://schlomp.space/tastytea/register-quicknav.git", + "unstable": { + "version": [ + 20200325, + 1612 + ], + "commit": "06afa1efc490a6cbc1d814fc6f1e7a80a601ecc7", + "sha256": "055bffsa81chjpv39p2fn10dwikpzb034k19k0mc1026d8a423kg" + }, + "stable": { + "version": [ + 0, + 4, + 3 + ], + "commit": "e30883a7085ad1f4e1113dc84f5f2222ac4bcd37", + "sha256": "18mskl1w5n2cksjds27d1gcrwb065vp9n6hnw9402j3n6z0w8srv" + } + }, + { + "ename": "rego-mode", + "commit": "fbc0b93675f6baab6ab023b596e65658c9e2a534", + "sha256": "0qdmn6kh4bh514qh0ii881c03p3hcdp1qlmdwpp5nlzxlkxbgp07", + "fetcher": "github", + "repo": "psibi/rego-mode", + "unstable": { + "version": [ + 20200413, + 450 + ], + "deps": [ + "reformatter" + ], + "commit": "41c99057d0406c7fb3895a03da777af3961a648d", + "sha256": "1dw6f60ysyvxgm5gpir37ay8z9csykxj0r7v9h6z38cswicg27sj" + } + }, { "ename": "related", "commit": "555932a7b9cf11b50a61c2a9dd2636fd6844fac8", @@ -82352,19 +84403,19 @@ "repo": "a13/reverse-im.el", "unstable": { "version": [ - 20200219, - 1137 + 20200324, + 1113 ], - "commit": "45a55810ce3e07d4e42d9fb666100d7242004b4e", - "sha256": "1669fksymr24fz2lhxv419fm7csm94bkpycz20l2qy55ppn03his" + "commit": "a2a75a929fc022e752759ed2a38accc639128dbe", + "sha256": "0s6jmxq9sqi6pm2kdrdik30nyz136kk2gqzdibb0wcvpfylhwawn" } }, { "ename": "reverse-theme", - "commit": "81f0f525680fea98e804f39dbde1dada887e8821", - "sha256": "163kk5qnz9bk3l2fam79n264s764jfxbwqbiwgid8kw9cmk0v776", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "133wl2k0niy9ih0bjn7qx51fykqjj392ibkp1bvmy5dbl09x4gic", "fetcher": "github", - "repo": "syohex/emacs-reverse-theme", + "repo": "emacsorphanage/reverse-theme", "unstable": { "version": [ 20141205, @@ -82601,6 +84652,27 @@ "sha256": "0p044wg9d4i6f5x7bdshmisgwvw424y16lixac93q6v5bh3xmab5" } }, + { + "ename": "rime", + "commit": "0144879cf0dfe4f0447c5da7cd061f7aac91d4fe", + "sha256": "1m9jp307czp4mx4xpfnj9bhq7w5xg656dx9l9ih603cbz24salq4", + "fetcher": "github", + "repo": "DogLooksGood/emacs-rime", + "unstable": { + "version": [ + 20200415, + 1454 + ], + "deps": [ + "cl-lib", + "dash", + "popup", + "posframe" + ], + "commit": "9afeb4aa45771ef20c83d1208744d954273cbaf3", + "sha256": "00lnsxi2j1kvd28vq10ixj16qfkn22bw2m02zrs022d9jwcsza5r" + } + }, { "ename": "rimero-theme", "commit": "c6d07b0c021001195e6e0951c890566a5a784ce1", @@ -82794,8 +84866,8 @@ "deps": [ "inf-ruby" ], - "commit": "8190cb7c7beb8385dd3abf6ea357f33d8981ae8a", - "sha256": "1lqckmfxm2csh0as22bwf4rvbn5rwqry18xx9m5nfhfl57360q75" + "commit": "68503b32bb3a005787ecb7a7fdeb3bb4a2317e2b", + "sha256": "1v4nbfr3rhdm1733gb88cv0f018iy53cw5hdcwpshrmjj36a2lpn" }, "stable": { "version": [ @@ -83031,8 +85103,8 @@ 20200221, 36 ], - "commit": "d370c09007d299dc6b6aae719bf728b95dd426c5", - "sha256": "0hakpd1dwhn2nkfhx4hli0l7hf3p1g8vpyrrczq45smfsz73d96x" + "commit": "a42298e80dffae9a6b2e9816506174542f3cbbb7", + "sha256": "1674752bbyb7890na5p846dxcvh83zn0a6z19wras1x5c59s24i3" }, "stable": { "version": [ @@ -83057,8 +85129,8 @@ "deps": [ "rtags" ], - "commit": "d370c09007d299dc6b6aae719bf728b95dd426c5", - "sha256": "0hakpd1dwhn2nkfhx4hli0l7hf3p1g8vpyrrczq45smfsz73d96x" + "commit": "a42298e80dffae9a6b2e9816506174542f3cbbb7", + "sha256": "1674752bbyb7890na5p846dxcvh83zn0a6z19wras1x5c59s24i3" }, "stable": { "version": [ @@ -83205,26 +85277,26 @@ }, { "ename": "ruby-electric", - "commit": "5fd5fa797a813e02a6433ecbe2bca1270a383753", - "sha256": "02xskivi917l8xyhrij084dmzwjq3knjcn65l2iwz34s767fbwl2", + "commit": "ccae5ba7c1088837f2dd6cb0992f49ea2dc5bcdf", + "sha256": "1fj5vb4n7jiq93z0yakr39vyfd0f5yhf4p4aw4bdm9cx5dmpr8g6", "fetcher": "github", - "repo": "knu/ruby-electric.el", + "repo": "ruby/elisp-ruby-electric", "unstable": { "version": [ - 20191217, - 1214 + 20200328, + 1528 ], - "commit": "ea9571ce3af546fdb1234274c8b1a147109b4869", - "sha256": "16g1764igf9y717sg2rg4b2ysxxlnyjyzk2s6w9jx9dnr2lqih39" + "commit": "f2323cd9b5df3b34aa9810ba8109502824925d23", + "sha256": "1p0l0fsn0jcgb4raimyc4d1wpfksrfhn0rkwdazadvm6s8baydf7" }, "stable": { "version": [ 2, 3, - 2 + 3 ], - "commit": "0e6c1f1022ac84db6a03d60e7a0f9f1fd42ecc99", - "sha256": "1l3zz62d04m3kwj3swffsbkpvkayp9r651cpl07palghx9b34h3m" + "commit": "f2323cd9b5df3b34aa9810ba8109502824925d23", + "sha256": "1p0l0fsn0jcgb4raimyc4d1wpfksrfhn0rkwdazadvm6s8baydf7" } }, { @@ -83529,11 +85601,11 @@ "repo": "rust-lang/rust-mode", "unstable": { "version": [ - 20200303, - 932 + 20200414, + 2105 ], - "commit": "eb5270bc1cef48d30f33c2a312bff0638a9ff821", - "sha256": "1iip9qhcr3rzvpns71l44vwmm80n5ccldc8zw48xl2ghlxpk2r08" + "commit": "a364b24af412659cc1074f533752356d1858b893", + "sha256": "1yj3b5li2flgxc3frmb7zjc92nhdq526jj6105zrsnj7ndxqycp4" }, "stable": { "version": [ @@ -83645,8 +85717,8 @@ 20180406, 808 ], - "commit": "03410e6a7a2b11e47e1fea3b7d9899c7df26435e", - "sha256": "074ny8y68fhnknkjxvrijrk534xzdiwip8wkifxfbwv3va315x83" + "commit": "43ba8b563bee3426cead0e6d4ddc09398e1a349d", + "sha256": "0bqdlcg5pah9a50dww8n5n0lzc8bzmpc230fdkinw8zrxph13p12" }, "stable": { "version": [ @@ -84036,8 +86108,8 @@ 20190413, 1246 ], - "commit": "cc2dfa14eb3922d93c15f30734e8211c77ceada1", - "sha256": "11n26dksppjylg5jafxf4j859n6c1062v85qci8fx762wicz0bkf" + "commit": "f13d03efece7c1f31e9c3fe2e99b71a33cc43e1c", + "sha256": "04b63yww5yz4jn18mzpv53yzs6g6kmxs61m2ycnf59cb6ax2ajbd" } }, { @@ -84231,14 +86303,14 @@ "repo": "technomancy/scpaste", "unstable": { "version": [ - 20190228, - 2151 + 20200415, + 40 ], "deps": [ "htmlize" ], - "commit": "568faaa70fa0413e2d165ad232cd4c6ec2815197", - "sha256": "160m4w0i9cj4zxmmsknmnvycscj9y8da39y1362kv7dpmwnxsxcp" + "commit": "ca95a8dd088e848bd1cab6be207c6a98343ee176", + "sha256": "01v199xkadcbdr627skhisixdqj0hbbyv912xgyypm1rxdjfhhx9" }, "stable": { "version": [ @@ -84399,11 +86471,11 @@ "repo": "ideasman42/emacs-scroll-on-drag", "unstable": { "version": [ - 20200106, - 442 + 20200411, + 1050 ], - "commit": "2fbd643ea9632d0e15d32e70b6f3c641476e3071", - "sha256": "1gjwsyvjwj4xsp83nws4bcmzsyxv4zp95a9fx0md86cc9gxw3h6n" + "commit": "42d96a60a207cd73e7a58111358deb05f084c59e", + "sha256": "00l2n5kx5p18qdlfh2y355w34yp2fy401canrglz6dq1f7615lnz" } }, { @@ -84746,6 +86818,60 @@ "sha256": "1kkxm8ysjcx0vs6lic0lcncr2kcmjmh2n5y8j9303lhzzhh73psg" } }, + { + "ename": "selectrum", + "commit": "4273a6e55cf797d1fab1825618aab7e9b6c01886", + "sha256": "012jmgr7w6x0gy8ygpzyyk23adyzmr7cknz2w51zjapcilkf6ghv", + "fetcher": "github", + "repo": "raxod502/selectrum", + "unstable": { + "version": [ + 20200425, + 1449 + ], + "commit": "dc1c8e8704f5eb73c540f2b4ca3eed213d2c3246", + "sha256": "0acifs68m6y5zfwadvvvlg7s4zhgazmrg6al7piy1nycq7dmng6b" + }, + "stable": { + "version": [ + 1, + 0 + ], + "commit": "5995a4ba07a7b1b5f661ff050d93ad702f9014a4", + "sha256": "105zl102dwbzvk50xh6b824nq6p24kxhky18ghdnk5yi5sv620lm" + } + }, + { + "ename": "selectrum-prescient", + "commit": "5724ebca5ab5a1c3087cc13ae0693548666ed62b", + "sha256": "1zr83pq39i56v5bx78cp5cg2lrwz01975ng4h1ziv6nrh9p7vvr0", + "fetcher": "github", + "repo": "raxod502/prescient.el", + "unstable": { + "version": [ + 20200404, + 1550 + ], + "deps": [ + "prescient", + "selectrum" + ], + "commit": "0f4a89bdec61395138d968a38d375e63ccfbed63", + "sha256": "0nnf4y49pl9lcs90y5z6f02g1xwk1jjrl0qs7gcv6kpn0vn8kn0h" + }, + "stable": { + "version": [ + 4, + 1 + ], + "deps": [ + "prescient", + "selectrum" + ], + "commit": "aa3110281a0622fa7b5da115cefb71a319b5b1a0", + "sha256": "1rf5cz262hjpck7vpxg15bccdrwrmlhiyxc20liwcjb2ig36nis3" + } + }, { "ename": "semaphore", "commit": "1cffd8c7720e5a262b8635a5fd1ca36766f4c824", @@ -84788,14 +86914,14 @@ "repo": "wanderlust/semi", "unstable": { "version": [ - 20190708, - 1302 + 20200413, + 839 ], "deps": [ "flim" ], - "commit": "16228dc2d147d6ba8762c10fb25c54a3757ee9b0", - "sha256": "1hccmz9g1rl3qz77214ybnai143zay48kai214gk43dw05bcfavc" + "commit": "1d6e21e9ee42c2c5bf1a4422d2fe7af20aa7ff1e", + "sha256": "0pkqh95i6pj7iwghapa8hld78h1q5n50f1lah2l1k2hz4lm6r8zz" } }, { @@ -84806,16 +86932,16 @@ "repo": "conao3/seml-mode.el", "unstable": { "version": [ - 20200203, - 1858 + 20200419, + 1022 ], "deps": [ "htmlize", - "simple-httpd", + "impatient-mode", "web-mode" ], - "commit": "6e09efaa613f411b9cc8cd30f46ddab44154a1e2", - "sha256": "0f6x2w94y1clqzl65f3qgw9hm9d97p91jaak4k8k92qnd9s3471r" + "commit": "4ca9d275948898602640a46573cb95d7eef913e5", + "sha256": "1wl5qsph19i0ll2ppn9va4563m4bfz1zpv99d7xd7w65x6cp29ci" }, "stable": { "version": [ @@ -84898,6 +87024,25 @@ "sha256": "0jn3a7m8ld07280mc7nkyahagwhvhrcshrpsb8k1ycdwd1r3zqw5" } }, + { + "ename": "separedit", + "commit": "297ba98f4bc011948c34aad30ae28b7adc611938", + "sha256": "00p4crbzr5fkcj8lhpfd9w44ynpmhd9fay9yrwgz0yh87lll6nqx", + "fetcher": "github", + "repo": "twlz0ne/separedit.el", + "unstable": { + "version": [ + 20200407, + 728 + ], + "deps": [ + "dash", + "edit-indirect" + ], + "commit": "e9a7b4402859d73f052330106d29ad14c3d9b6f3", + "sha256": "0d9w8n497j6q879rd9mqrmzvk3ssm95ayqbyfb5x0r3pnywdjp1b" + } + }, { "ename": "sequences", "commit": "4cf716df68fb2d6a41fe75fac0b41e356bddcf30", @@ -85100,6 +87245,21 @@ "sha256": "14fqkkvjbq2gj737k3yz3s0dkya33fi0dj4wds99zyzss2xp37f8" } }, + { + "ename": "sexp-diff", + "commit": "d29e4d21bf808a74bef27ee00d500ec1f816be74", + "sha256": "0cr35b7k6a5japm14bjgnw93g1kqggzwlqwwr0mhg73klnn6qyn8", + "fetcher": "github", + "repo": "xuchunyang/sexp-diff.el", + "unstable": { + "version": [ + 20200314, + 2018 + ], + "commit": "7e8c988bea2af209e17b70fa51316ade55529acb", + "sha256": "1daz6jss2346a2p30fhc66m230sj7vyxm7jw6zqz5n8h9lqxpjyk" + } + }, { "ename": "sexp-move", "commit": "855ea20024b606314f8590129259747cac0bcc97", @@ -85155,11 +87315,11 @@ "repo": "sfztools/emacs-sfz-mode", "unstable": { "version": [ - 20200105, - 316 + 20200312, + 1153 ], - "commit": "614506bac2795c531ab118840ba010ee378e96d4", - "sha256": "042ci8kbhlmhwyx3kiwf8gnr9f1f85faviinv0g7yn80g3shxyp1" + "commit": "4d8ccde889b112896c7299cad9f1e9305bde8cb3", + "sha256": "1ccqb05xmnxpwxl9vdvkb3f8211kbj5rsb73xv1ghyx3i40qjmzm" } }, { @@ -85285,6 +87445,21 @@ "sha256": "11g9lsgakq8nf689k49p9l536ffi62g3bh11mh9ix1l058xamqw2" } }, + { + "ename": "share2computer", + "commit": "47647167cc7b9d7ad0a2fc4785849f69dc07d6cb", + "sha256": "067xc1awknx9iqwd4lfj1gkni6aszzfr1179avzzfn1ggp7yzkmq", + "fetcher": "github", + "repo": "tumashu/share2computer", + "unstable": { + "version": [ + 20200316, + 31 + ], + "commit": "15da47625a800e3310b8dc714bd4e41e32966d6a", + "sha256": "04h8vhg0fxabjlqgfqsvxkgsmkcp5qmcinxg46xib386r7rzrx4g" + } + }, { "ename": "shell-command", "commit": "ae489be43b1aee93614e40f492ebdf0b98a3fbc1", @@ -85353,14 +87528,14 @@ "repo": "kyagi/shell-pop-el", "unstable": { "version": [ - 20170304, - 1416 + 20200315, + 1139 ], "deps": [ "cl-lib" ], - "commit": "4a3a9d093ad1add792bba764c601aa28de302b34", - "sha256": "1ybvg048jvijcg9jjfrbllf59pswmp0fd5zwq5x6nwg5wmggplzd" + "commit": "4b4394037940a890a313d715d203d9ead2d156a6", + "sha256": "0s77n6b9iw1x3dv91ybkpgy3zvqd12si7zw3lg0m2b6j1akrawsg" }, "stable": { "version": [ @@ -85523,6 +87698,35 @@ "sha256": "10dq3qj1q8i6f604zws97xrvjxwrdcjj3ygh6xpna00cvf40llc2" } }, + { + "ename": "shfmt", + "commit": "a20dde08de1a7cd70739a791e1ae321e8f152685", + "sha256": "1k4rr658473vd6xad2z40dl7f26sb1zv9nc1938cg61pqi10bjan", + "fetcher": "github", + "repo": "purcell/emacs-shfmt", + "unstable": { + "version": [ + 20200421, + 103 + ], + "deps": [ + "reformatter" + ], + "commit": "342c55fab27f1e62472eebbb53cfc73b0d422a34", + "sha256": "0hmxa856hlai9ydarfsn5s9i8cnfrydgpa7mkh4a36klhdj21gfh" + }, + "stable": { + "version": [ + 0, + 1 + ], + "deps": [ + "reformatter" + ], + "commit": "cd94266badc71c1e981e904e10f28c6a80237a2f", + "sha256": "09w50l938phcpxvbg4ahyxl43k995ywavwac364nmcnvmip021qy" + } + }, { "ename": "shift-number", "commit": "b06be6b25078ddfabc1ef1145c817552f679c41c", @@ -85573,11 +87777,11 @@ "repo": "emacs-w3m/emacs-w3m", "unstable": { "version": [ - 20190930, - 730 + 20200406, + 2209 ], - "commit": "03ea43b1f1c648968fe1109fb5c50febcf9e154d", - "sha256": "1v194qzgxq5r34xaqgky1ir2bikaphv8csnxlgwbkggzpxnlwqi0" + "commit": "e522a44b151d69d4a176e8809225598ab540fc4d", + "sha256": "1alishzz4j1hbfyfi09rkhffx6gv16yxln7q8jx25shb9rssivyz" } }, { @@ -85873,20 +88077,20 @@ "repo": "riscy/shx-for-emacs", "unstable": { "version": [ - 20200308, - 2356 + 20200410, + 639 ], - "commit": "0fec00c1eef75feeae0f71591762ba6a80bc2725", - "sha256": "0zl5lcy80m1pzwl4239lhcf0zb6px5jwbgjib136zh94l5k35wdb" + "commit": "e5b4bae0a1a9bb8a762da40397a04efdd0b2b397", + "sha256": "0p9b621rgy34r1hl9xfzxh4xpx9gpsr3n330ypfxhlr0s5754j73" }, "stable": { "version": [ 1, - 3, - 1 + 4, + 0 ], - "commit": "e90dccf40320ee0df306cab3f94fdb79504698b5", - "sha256": "0g4w5w53pknphxr7i7kwksq1789qi8rk8yk9gp4s788iq1f0i6vr" + "commit": "e5b4bae0a1a9bb8a762da40397a04efdd0b2b397", + "sha256": "0p9b621rgy34r1hl9xfzxh4xpx9gpsr3n330ypfxhlr0s5754j73" } }, { @@ -85912,11 +88116,11 @@ "repo": "webframp/sicp-info", "unstable": { "version": [ - 20180823, - 1222 + 20200421, + 242 ], - "commit": "26bc593aeae01da34ad92363b5bbd6aedab66da2", - "sha256": "0qvgdrzdp92mskqfh0x5garq0zcr8r7n834jlx5ky8q00xvb1a06" + "commit": "3efcd37eb7888845c5f3292beeb18219f9993e92", + "sha256": "1qlgg7r9v62mcw07svdkzrf5ccm6n9vg64h4p704rfzkxys1cwfs" } }, { @@ -85951,11 +88155,11 @@ "repo": "nlamirault/sift.el", "unstable": { "version": [ - 20190521, - 823 + 20200421, + 1423 ], - "commit": "33b2c9ff964fe53bb55b37429faaa4e903bead7a", - "sha256": "0cb8rcxl0jwpbgz9kk136l2ranficv8lk85fhvly1lpslbjljds9" + "commit": "cdddba2d183146c340915003f1b5d09d13712c22", + "sha256": "0ln87nhq2vhsb0ywn7rp0b3hzms5z7l6cv6dng08yly12r2957if" }, "stable": { "version": [ @@ -86100,6 +88304,29 @@ "sha256": "0dpn92rg813c4pq7a1vzj3znyxzp2lmvxqz6pzcqi0l2xn5r3wvb" } }, + { + "ename": "simple-modeline", + "commit": "054a7c164fae0c76ad2b3c6891d37a03f3e08823", + "sha256": "0c2wvwxwaa62r4vrw9g1lcgr8cv57mlfpsszynkn00cb7fhlhdmk", + "fetcher": "github", + "repo": "gexplorer/simple-modeline", + "unstable": { + "version": [ + 20200419, + 900 + ], + "commit": "e7e39660dadcef88e7e877ad1f24625873e90e51", + "sha256": "0s8979jd3x6yarq4ifn5wgn08s8z2kblzaagh4zywkhaj1i7mb4m" + }, + "stable": { + "version": [ + 1, + 1 + ], + "commit": "e7e39660dadcef88e7e877ad1f24625873e90e51", + "sha256": "0s8979jd3x6yarq4ifn5wgn08s8z2kblzaagh4zywkhaj1i7mb4m" + } + }, { "ename": "simple-mpc", "commit": "62d762308c1ec0c1d8f7b4755b7deb285cbac018", @@ -86438,8 +88665,8 @@ "repo": "yuya373/emacs-slack", "unstable": { "version": [ - 20200221, - 417 + 20200402, + 1656 ], "deps": [ "alert", @@ -86449,8 +88676,8 @@ "request", "websocket" ], - "commit": "b7b9eada0bf62d40dfe764b00f55913a2d3d742e", - "sha256": "0cqr7jnfxzb0z2wy79pdwpv9cvmawjif1kin3zbp8q7zhwrq09v0" + "commit": "d53a57a18fb7034182c3d02503f937761e6a2a64", + "sha256": "1xcfgyw9cky6msai2ap9fgcdasvmvn3k73rjmvnwcj4axh6vjvyx" } }, { @@ -86511,15 +88738,15 @@ "repo": "slime/slime", "unstable": { "version": [ - 20200228, - 1656 + 20200414, + 1444 ], "deps": [ "cl-lib", "macrostep" ], - "commit": "cd8cc3c95c3391b1f1cffa9e100336250a4509a7", - "sha256": "11b9747y43cia8s8dlgxsx3l326pjgsr20qmv5rs9ziby38502mq" + "commit": "221518f0d3d224403743e6690f6bb66c42d9dec9", + "sha256": "0wbxv461lq7760gsqjw5djhjkzmwxz563l97csn2637gb1wkn461" }, "stable": { "version": [ @@ -86542,27 +88769,27 @@ "repo": "anwyn/slime-company", "unstable": { "version": [ - 20200304, - 1107 + 20200424, + 1045 ], "deps": [ "company", "slime" ], - "commit": "e9153e42ec8f2089ea129ce24488dd3b5e0b9e47", - "sha256": "1dz8q9fjiip2xnw64cim0p5adbpc4lbljdiqjc5dq7bhwpff07jl" + "commit": "cec203c45ebd678b05341d1cdbe420ad07a1b8e0", + "sha256": "0dwj6kv8laivhisd9jrzdn1lxynqqxmimvyz3z0zz6qf0ijsl0wm" }, "stable": { "version": [ 1, - 1 + 3 ], "deps": [ "company", "slime" ], - "commit": "6c244690c80387a32b0cb984843e00c8b75ad6bb", - "sha256": "1hl1hqkc1pxga9k2k8k15d7dip7sfsmwf4wm4sh346m6nj606q8g" + "commit": "cec203c45ebd678b05341d1cdbe420ad07a1b8e0", + "sha256": "0dwj6kv8laivhisd9jrzdn1lxynqqxmimvyz3z0zz6qf0ijsl0wm" } }, { @@ -86736,11 +88963,11 @@ "repo": "joaotavora/sly", "unstable": { "version": [ - 20200228, - 1350 + 20200314, + 55 ], - "commit": "86a63df73360be51529806c7ed9b775b3f02284d", - "sha256": "0sx6fdckcfcld41db0695svvlvllnfaazwx513686gnykwfd209n" + "commit": "1382bda945ecfb4b177c7d05a36da8fd41e0384c", + "sha256": "1hmdx3nakhpsmg6zr52090pimmy0kpjz2adyi0m1wzh9zdg5cx4x" }, "stable": { "version": [ @@ -86912,11 +89139,11 @@ "repo": "zenitani/elisp", "unstable": { "version": [ - 20190522, - 1125 + 20200322, + 24 ], - "commit": "366a4cdab1ad20105910bc24c4f3e4f8734e4eae", - "sha256": "1kk7ya14p4vpw31rzcgwq0pmay0wm3pg2j70fv5mms9ala1jyhsy" + "commit": "e2a390b9b8518ad62283046400a0fb3e81eb5b79", + "sha256": "1s23r0dr10wjnk0j5gicy1dxvbhvnz3zmbssk431vccbba1jm8yg" } }, { @@ -86997,6 +89224,24 @@ "sha256": "0q5hxg265ad9gpclv2kzikg6jvbf3zzb1mrykxn0n7mnvdfdlhsi" } }, + { + "ename": "smart-input-source", + "commit": "82ef5414e63fe94905f042534d8bde88fb5461c6", + "sha256": "1dx3cvbm9hrdfrj4ggf0hbmfag2hybdlrqgpzy48fc07dscv0acd", + "fetcher": "github", + "repo": "laishulu/emacs-smart-input-source", + "unstable": { + "version": [ + 20200423, + 1529 + ], + "deps": [ + "names" + ], + "commit": "048a6c729f5336fe800e97f995a387e11d386980", + "sha256": "19s8q8fb2kmmfllg50622hzp3jb19h9z9ik45k4v7aapdc7iw5yg" + } + }, { "ename": "smart-jump", "commit": "52f29e14e61b28cd1637ca5d6bd878d91a71251f", @@ -87184,17 +89429,17 @@ }, { "ename": "smart-tab", - "commit": "091dcc3775ec2137cb61d66df4e72aca4900897a", - "sha256": "0qi8jph2c9fdsv2mqgxd7wb3q4dax3g5x2hc53kbgkjxylagjvp5", - "fetcher": "github", - "repo": "genehack/smart-tab", + "commit": "ef37935f5f8ed12323374179a0673b5a4af57cdb", + "sha256": "1dm67sc1vylpf73m723hfjfqmm2yxrdckrgp6a3nq2586hkkid4l", + "fetcher": "git", + "url": "https://git.genehack.net/genehack/smart-tab.git", "unstable": { "version": [ - 20190916, - 137 + 20200416, + 2228 ], - "commit": "0f6963ce4de403fa43f3db68b31ce059f6251c3a", - "sha256": "16rh9wwjnqjk7hf7npfvwf28wmhd7bwnsnfgh592gv70xkcwywaa" + "commit": "67bf4f93f8afca61a3dc4f6c7a34b0b8ca9ede21", + "sha256": "1ws49lbafch1rb6g0j9k5h30c9shk3vvqhbjkf4qvhaqii94lgml" } }, { @@ -87246,15 +89491,15 @@ "repo": "Fuco1/smartparens", "unstable": { "version": [ - 20200229, - 1752 + 20200324, + 2147 ], "deps": [ "cl-lib", "dash" ], - "commit": "1f8857c5febe8b82654ba44ae43e6d2f435f4832", - "sha256": "02b05rh474kyk3vmkgh54366k7fqshdf2x5zgrd5q4a8jcffb5nf" + "commit": "555626a43f9bb1985aa9a0eb675f2b88b29702c8", + "sha256": "0hfywwhzv2dphi7gacp1sdyk47cmajzx5sqrcwxkn7mlwx876nsx" }, "stable": { "version": [ @@ -87364,26 +89609,26 @@ "repo": "aaptel/smblog-mode", "unstable": { "version": [ - 20190920, - 1823 + 20200424, + 938 ], - "commit": "fe866afbe19f804f80c37e077192576e4b0aad1a", - "sha256": "19zynq5izaafkj97a1f7dz8fljdr0mxsal8xcfa938clxihydaaz" + "commit": "fc949cff7051b31f0dbc7169774144533a27b92f", + "sha256": "07ks6d3gs264wv15lxa88pfi6i851h1wd9cacxs81wc7ijqc5sia" } }, { "ename": "smeargle", - "commit": "c5b985b24a23499454dc61bf071073df325de571", - "sha256": "1dy87ah1w21csvrkq5icnx7g7g7nxqkcyggxyazqwwxvh2silibd", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "04z1prwdd1h91jyf9fnggqp657830657kvbch7m2f2pgmn3czvvs", "fetcher": "github", - "repo": "syohex/emacs-smeargle", + "repo": "emacsorphanage/smeargle", "unstable": { "version": [ - 20161212, - 2358 + 20200323, + 533 ], - "commit": "0665b1ff5109731898bc4a0ca6d939933b804777", - "sha256": "0p0kxmjdr02l9injlyyrnnzqdbb7mirz1xx79c3lw1rgpalf0jnf" + "commit": "a0e9bc2ea694aa2940102e1f4cfd8db8be437931", + "sha256": "05n6vgxw91cxk5ri4mmsxc62jcad0yhjjnn16gk1qhjxjqvrlcis" }, "stable": { "version": [ @@ -87589,15 +89834,15 @@ "repo": "kyleam/snakemake-mode", "unstable": { "version": [ - 20200222, - 1710 + 20200417, + 2230 ], "deps": [ "cl-lib", "magit-popup" ], - "commit": "701f970bfb48d2f7abb241b9f69127ff5b667c76", - "sha256": "0di8wqwj0l2vx29kkpy2h1yxrxgcq51y2lss5lmqp6kmw3avkvi2" + "commit": "03562dcd82964d53eff7314b844c2897d1d9af55", + "sha256": "1cj8628l196da5j54wl8wq7znvha44z1f6w9qqg37yw0pjynbvxz" }, "stable": { "version": [ @@ -87837,14 +90082,14 @@ "repo": "hlissner/emacs-solaire-mode", "unstable": { "version": [ - 20200120, - 455 + 20200423, + 742 ], "deps": [ "cl-lib" ], - "commit": "4ac324ccb0b751be80ce64449553462eafab4f32", - "sha256": "1klyzqrlsgx8q89zx1kn5z6wnpv1dmvbglldpv1y74hxhzi6ryps" + "commit": "adc8c0c60d914f6395eba0bee78feedda128b30b", + "sha256": "0kj6lhx57gl3809q4bmgv7cac8wk61g1sdyr4c2a0y9jkzf21x67" }, "stable": { "version": [ @@ -87867,14 +90112,14 @@ "repo": "bbatsov/solarized-emacs", "unstable": { "version": [ - 20200309, - 2116 + 20200411, + 1026 ], "deps": [ "dash" ], - "commit": "8de268144ab2171896906c8553be7763d5c45fa5", - "sha256": "1z19axaaipia56c9b4nvw4wlcr89wapnwza2gc3mdph3jkwwfjfl" + "commit": "c8f09494330900081ed5a4f020c972a37fd7b02e", + "sha256": "0z5srqz4g81bsyw74q04fwz30qvi4i08s7fszmwnwyr5xrf5dx42" }, "stable": { "version": [ @@ -87905,8 +90150,8 @@ "flycheck", "solidity-mode" ], - "commit": "b190993dcb8376e80fb1d9b71f3ed6170bd2a341", - "sha256": "0s5xk38k3mc1d40dszlcgfpn5rvb7nsnnpmgr3c0bwqa4xh6yqrg" + "commit": "022b3159832384a7dcdc2168809e698600826047", + "sha256": "144w84abffbrbb4wflgipndaasx82axf36xm373ybdih4131mi69" }, "stable": { "version": [ @@ -87930,11 +90175,11 @@ "repo": "ethereum/emacs-solidity", "unstable": { "version": [ - 20200124, - 827 + 20200418, + 921 ], - "commit": "b190993dcb8376e80fb1d9b71f3ed6170bd2a341", - "sha256": "0s5xk38k3mc1d40dszlcgfpn5rvb7nsnnpmgr3c0bwqa4xh6yqrg" + "commit": "022b3159832384a7dcdc2168809e698600826047", + "sha256": "144w84abffbrbb4wflgipndaasx82axf36xm373ybdih4131mi69" }, "stable": { "version": [ @@ -87962,8 +90207,8 @@ "dash", "request" ], - "commit": "b143b5c6161e3760f42a7a5405f5f7e97079e09a", - "sha256": "01ak3sr2hp2mmn81j1qdgyvrm9np979fpg2ngbnijnb8ai3gn30f" + "commit": "9fdb75e150e78170b3ca7863a8a0638c6ecc0fc0", + "sha256": "0qvr4cga8k4bn0jbfp626cjkxgvqkac902v7hxakj7l47arxcd5z" } }, { @@ -88002,6 +90247,48 @@ "sha256": "10gh1hvxq9gm29r6qzlnva7vjidd7n4kih4z2ihyvbvy9za20xqw" } }, + { + "ename": "sorcery-theme", + "commit": "cdb6f1cfbf3bbeb1eeb6440fb216e8e3b523bb0f", + "sha256": "1qsavwbqidva4m0mdw393qbwlibhkkywnxj9mshfmkwaq050ivb2", + "fetcher": "github", + "repo": "vxid/emacs-theme-sorcery", + "unstable": { + "version": [ + 20200413, + 2242 + ], + "deps": [ + "autothemer" + ], + "commit": "fb041d0d8d4ae2840ddcfb1bd56fefe687da8c52", + "sha256": "1j54m18xsn44m5xshmk2pfxn795svjn0zv77qwfxn1d2p5j0r6ni" + } + }, + { + "ename": "soria-theme", + "commit": "9196110908f0d2130f7963499a94853b5192ac8c", + "sha256": "1fmys72s4n334m60ywpmbxjbvjwp7qn14pasmnlkv3l1bw6jygsm", + "fetcher": "github", + "repo": "mssola/soria", + "unstable": { + "version": [ + 20200424, + 1530 + ], + "commit": "fcc14cc99f0d26abf91af682b5fdedf5a8a37003", + "sha256": "0mrh147q9zzs9nkc714iyly5aydx3svma0ix8sgrk7rqacfd56hv" + }, + "stable": { + "version": [ + 0, + 3, + 2 + ], + "commit": "5edb9379cd21411fb182239ed9ac19be4a278f32", + "sha256": "103837zizm5iqv3sskxgkhjij2icjx9sjvjhq2l9zi66rlh9gca7" + } + }, { "ename": "sort-words", "commit": "0a4bd566392d7cebe8a891d787439512e8d34cf9", @@ -88106,21 +90393,21 @@ }, { "ename": "sound-wav", - "commit": "8333470e3d84d5433be489a23e065c876bed2ab2", - "sha256": "1vrwzk6zqma7r0w5ivbx16shys6hsifj52fwlf5rxs6jg1gqdb4f", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "1sb3345x6rbbxr71x12fj6bzzvj6nin712777rxk59riam4nknd6", "fetcher": "github", - "repo": "syohex/emacs-sound-wav", + "repo": "emacsorphanage/sound-wav", "unstable": { "version": [ - 20181126, - 1726 + 20200323, + 728 ], "deps": [ "cl-lib", "deferred" ], - "commit": "49a9f10334b914cf6429e49b5449e0711a3aa251", - "sha256": "1zg32gn0r06qcp6i5fxwns8xv5nqpc6hfzqajwj0hfvhkqdndv4j" + "commit": "8a18f8a62f4fdde80dfa069986aa959091a42472", + "sha256": "18iahla8m9b6bdn63x2yrvr3rzyw5ybipf44q9avyy6s1pqsby2a" }, "stable": { "version": [ @@ -88217,17 +90504,17 @@ }, { "ename": "sourcemap", - "commit": "557d18259543263932fccdbaf44c4e7986bd277b", - "sha256": "0cjg90y6a0l59a9v7d7p12pgmr21gwd7x5msil3h6xkm15f0qcc5", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "1yxjvv3vg14in492hzb3czjfwrg2qp60h4mpxxpx18cjgx8mkybr", "fetcher": "github", - "repo": "syohex/emacs-sourcemap", + "repo": "emacsorphanage/sourcemap", "unstable": { "version": [ - 20161216, - 540 + 20200315, + 1037 ], - "commit": "64c89d296186f48d9135fb8aad501de19f64bceb", - "sha256": "115g2mfpbfywp8xnag4gsb50klfvplqfh928a5mabb5s8v4a3582" + "commit": "bb2a56b2feb62b0c77d7f03ef2acd94f91be6b3f", + "sha256": "1qr5syl2wm7z1gkgafdhch6n7fg3qc09k8dhv983kq4vg5kp36ml" }, "stable": { "version": [ @@ -88268,6 +90555,21 @@ "sha256": "1aqkkbf0xw4kqsy1jjn4xhs5vk2vcsqzs7f4p2sf1plnzsqxflw8" } }, + { + "ename": "space-theming", + "commit": "5529fcf16b877b01ee0aff710ebfb0ad5da8dba1", + "sha256": "0khjdmqv1q2pdas0xjfqs68xjg2nqms6g21bplg54ynsqcp7asv9", + "fetcher": "github", + "repo": "p3r7/space-theming", + "unstable": { + "version": [ + 20200415, + 810 + ], + "commit": "0a41a892180451d51095516e8ee2c9042be009c1", + "sha256": "02d07fs72fqg12lm7wxlmds1xyqf92ay0h9ghpkavwn6mphslpvc" + } + }, { "ename": "spacebar", "commit": "e4d1808eabdb9081441e01526efe81782ae0122f", @@ -88379,11 +90681,11 @@ "repo": "nashamri/spacemacs-theme", "unstable": { "version": [ - 20200127, - 1656 + 20200324, + 1107 ], - "commit": "e088bff4f190495615c29de93079aaa823e2300c", - "sha256": "09p5pzy3ibrl8dxmg10v8j16wxdn1fkdqpbi8l9pgfib2azmnvnc" + "commit": "f79c40fb241e204539fde97200abae91e828e585", + "sha256": "1l2kkiyrskkpx8f901v0wrzaah1wjg15zdyv88spj3mh3hwd3b6n" } }, { @@ -88580,6 +90882,21 @@ "sha256": "0mhzjia900irv0ndiw6w2vzin1gvyaf48pghi16r562ci4lr963w" } }, + { + "ename": "spell-fu", + "commit": "abaa6522f18ca1f47788ebb3281fbfcdade2b7c7", + "sha256": "0c2yi5lz2ww7mm9ih3m374w65n73z4knhnbrvdyzd7ja3xb3l17n", + "fetcher": "gitlab", + "repo": "ideasman42/emacs-spell-fu", + "unstable": { + "version": [ + 20200426, + 600 + ], + "commit": "e62cfc4f08fc4743d6961fe3402adbf2260d7e70", + "sha256": "1w6jsn3p6956vk5pzwlbc211sswqai8ary8ad3fbhbjwxl5z3gsc" + } + }, { "ename": "sphinx-doc", "commit": "a3b80d346ad4fb415970beddb5f02ae795fbf1b4", @@ -88695,10 +91012,10 @@ }, { "ename": "splitjoin", - "commit": "51e172f46045fbb71b6a13b3521b502339a4a02b", - "sha256": "0l1x98fvvia8qx8g125h4d76slv0xnb3h1zxiq9xb5qh7a1h069l", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "0g2i1q1npwrczgzp5321lpljff2ykmq932lzj6pdwnn6cyqixzzb", "fetcher": "github", - "repo": "syohex/emacs-splitjoin", + "repo": "emacsorphanage/splitjoin", "unstable": { "version": [ 20150505, @@ -89000,14 +91317,14 @@ "repo": "purcell/sqlformat", "unstable": { "version": [ - 20200303, - 802 + 20200327, + 2329 ], "deps": [ "reformatter" ], - "commit": "f18a0bb425a5052022af699df322ba90e6d65e20", - "sha256": "10sqq8k27p4fhhwrlq5p1283wrkykkx76fmp4806jiqh4617932f" + "commit": "2f10382034cd5cd2356cc69b4a1e9116d77a0d86", + "sha256": "18z9hljifw63zy4jrsyg4x2lqzgx29sfibx3maj0dm90yzj6zmcg" }, "stable": { "version": [ @@ -89088,11 +91405,11 @@ "repo": "srcery-colors/srcery-emacs", "unstable": { "version": [ - 20200205, - 1729 + 20200422, + 1941 ], - "commit": "5ce86917ad50d64c460eea6b6fa16bdcf88cc8f5", - "sha256": "16317yy64qcx7mi194xp9kbxpisjfz976yf637s6zabmk6xmmpcl" + "commit": "9630e465cc5166f723b7c5378e326561cf2a1738", + "sha256": "0ppaicggrrd3wrbjddw75mnsfli9a8db6bg21m1k7bafjkgraxfn" }, "stable": { "version": [ @@ -89127,6 +91444,35 @@ "sha256": "0wx8l8gkh8rbf2g149f35gpnmkk45s9x4r844aqw5by4zkvix4rc" } }, + { + "ename": "srfi", + "commit": "ff844713373e376a637625494321c8e8f197b48e", + "sha256": "1ik6gbcv79l1za7vr2llph1kb2ll8snq11szdxd0r8lnls7l33xf", + "fetcher": "github", + "repo": "srfi-explorations/emacs-srfi", + "unstable": { + "version": [ + 20200422, + 1730 + ], + "deps": [ + "cl-lib" + ], + "commit": "d55b4047fcfd3528fa9487d206773f45c7c2d038", + "sha256": "0c83wachsrrz0mnsb2lci6mr62ma40w05lxz7y8vrfyqppkcfa6a" + }, + "stable": { + "version": [ + 0, + 1 + ], + "deps": [ + "cl-lib" + ], + "commit": "c0a1ae75bfb3fdc81bb722dff5f5e2fae3f07024", + "sha256": "1zymgidk09yyjdd23cz7rx2hql8vpmpqn21i07hwcr7032v0kl7k" + } + }, { "ename": "srv", "commit": "6b0b7f22631e7749da484ced9192d8ae5e1be941", @@ -89196,25 +91542,26 @@ "repo": "magit/ssh-agency", "unstable": { "version": [ - 20191009, - 156 + 20200329, + 1558 ], "deps": [ "dash" ], - "commit": "89ea87dbfa0aa2fe644f7215aa3628c3008852c5", - "sha256": "0mkrn3jildlqyrkbdp31zf24vkzx4ycy49kxqs3vspbbcpanpj7j" + "commit": "a5377e4317365a3d5442e06d5c255d4a7c7618db", + "sha256": "1i3zmsn0w2k7p2hlzssibckm32kf05l56mkhg96x4sf06g3pwq1d" }, "stable": { "version": [ 0, - 4 + 4, + 1 ], "deps": [ "dash" ], - "commit": "d9dbedd773ad3a831e02e162c47936d6814a850a", - "sha256": "0895n7bss4wdydic1gflr03f2cwdyqywl16gvb599lpn288jhwvz" + "commit": "a5377e4317365a3d5442e06d5c255d4a7c7618db", + "sha256": "1i3zmsn0w2k7p2hlzssibckm32kf05l56mkhg96x4sf06g3pwq1d" } }, { @@ -89504,8 +91851,8 @@ 20171130, 1559 ], - "commit": "af37d392baa6f2e7445e9f714da743fd10153adf", - "sha256": "0bc34ri3d90fcjsin5nvli3ncqrh8x9iw8rhzdrwsbr9ildmr1ib" + "commit": "209d2233843778ebee12d103c41b226fa27ff266", + "sha256": "19rm3zznj0j8q5gsqpk6hy5l3gii4pmp5s2npl1zsiy6bb7p59c4" }, "stable": { "version": [ @@ -89730,6 +92077,31 @@ "sha256": "035ym1c1vzg6hjsnd258z4dkrfc11lj4c0y4gpgybhk54dq3w9dk" } }, + { + "ename": "stripes", + "commit": "f4c7beb05435a70293806b729b6f35c2fc2e8ca4", + "sha256": "0pwkqqyhg6gkpj8qh84ylsvq6wjykkkmmil4igw7mn80gy15zd09", + "fetcher": "gitlab", + "repo": "stepnem/stripes-el", + "unstable": { + "version": [ + 20200330, + 2022 + ], + "commit": "7b1d501f44b697a0514ef6759fd126d65867f18d", + "sha256": "0mx7l751jiijrjnbn3y6awasjy2c7k4ndgjq5c455vzxrlcbwr25" + }, + "stable": { + "version": [ + 0, + 3, + 1, + 1 + ], + "commit": "7b1d501f44b697a0514ef6759fd126d65867f18d", + "sha256": "0mx7l751jiijrjnbn3y6awasjy2c7k4ndgjq5c455vzxrlcbwr25" + } + }, { "ename": "stumpwm-mode", "commit": "caaa21f235c4864f6008fb454d0a970a2fd22a86", @@ -90196,6 +92568,21 @@ "sha256": "0c6xjw1wh94llwh8qkf3bfzx05ksk0lsdrqdfqn3qkjnf3bkbbh2" } }, + { + "ename": "svelte-mode", + "commit": "fc6a992830520750d2e4a9596668ba3d0eefaa11", + "sha256": "0mc9bc8p3a6lkqag72f48xprlrnj077h9mnglq4znxrslm91jr0h", + "fetcher": "github", + "repo": "leafOfTree/svelte-mode", + "unstable": { + "version": [ + 20200327, + 406 + ], + "commit": "48a26af6a3395a8bf3f09747d0a205c6dbc79313", + "sha256": "12gg55jdb6b5jk0xizx2cqc795bgll2kap3jp08s1vr16zkdaryn" + } + }, { "ename": "svg-mode-line-themes", "commit": "2ca54d78b5e87c3bb582b178e4892af2bf447d1e", @@ -90349,16 +92736,16 @@ "repo": "danielmartin/swift-helpful", "unstable": { "version": [ - 20191226, - 103 + 20200321, + 10 ], "deps": [ "dash", "lsp-mode", "swift-mode" ], - "commit": "04c2bf38c16d7cf03a43c065baabaed3a80e78d3", - "sha256": "0xi23ywj9kf5qsw933raqs66yl859hhg62na3zybm78l2kq6dnhg" + "commit": "e58f26b8ab9cf0522d52fe9890d39dc9e645577e", + "sha256": "1yx73wgvaf01wi26ahc9cblsk3sj98rgljb19dxc9ab7hjyncd46" }, "stable": { "version": [ @@ -90382,26 +92769,26 @@ "repo": "swift-emacs/swift-mode", "unstable": { "version": [ - 20191130, - 544 + 20200418, + 617 ], "deps": [ "seq" ], - "commit": "1268425311ab20f1618df4e52cb1b79e28b553df", - "sha256": "1ghm5spzxxdvwn1lk3xci62hiv12x4hzjk5xh9q522a833nl04i4" + "commit": "2ab9ea1784a12a482ed9e3fb284b7a7658f40fff", + "sha256": "0wml7f8k3gqlxm0yg744271mqh087prlsfmbiv7fvkrcs55q0592" }, "stable": { "version": [ 8, 0, - 1 + 2 ], "deps": [ "seq" ], - "commit": "86f8f62294aa5a6d44fa872278d75a4a41f403d4", - "sha256": "0sszk2nwp6h9qk7vgh5n05pzh264br3x3r1hyj97gwf8jdqzkr74" + "commit": "2ab9ea1784a12a482ed9e3fb284b7a7658f40fff", + "sha256": "0wml7f8k3gqlxm0yg744271mqh087prlsfmbiv7fvkrcs55q0592" } }, { @@ -90466,14 +92853,14 @@ "repo": "abo-abo/swiper", "unstable": { "version": [ - 20200309, - 2017 + 20200319, + 1334 ], "deps": [ "ivy" ], - "commit": "5f1d9ce04599c52818244c2cb8cb066a601610b8", - "sha256": "1gsyf210jq4ij5r47k5sajpjq3z0rgihz84g6y3647k12a00biap" + "commit": "47ec37b395cc1b304bbf91e804f138634544a9df", + "sha256": "05k2qjj4z8vljfppkphfhw67wvb5ij4nz4m158v89lx87y0phh74" }, "stable": { "version": [ @@ -90576,16 +92963,29 @@ "repo": "emacsorphanage/swoop", "unstable": { "version": [ - 20160120, - 1715 + 20200321, + 319 ], "deps": [ "async", "ht", "pcre2el" ], - "commit": "a5e475db7a9f5db02ba3d08cd3c1c3594e2e01d7", - "sha256": "10ka6f86n07xlf0z7w35db0mzp2zk4xhr6jd19kjdrn2j0ynlcw5" + "commit": "7f6f20d0f32b76b7ce5b1459afa44c1ab700f8bb", + "sha256": "1d134f3dyh8sa8q8dgmla01wiky61y4jmhqb5whqpb7c2p53niyc" + }, + "stable": { + "version": [ + 1, + 0 + ], + "deps": [ + "async", + "ht", + "pcre2el" + ], + "commit": "de2d29eb45edab802cf8b275aa1c25a24050122e", + "sha256": "1caq17f7s4pdy6jzyxfh5zwqmwkwkbfpgcnj5f09qgmwanjygjya" } }, { @@ -90647,6 +93047,36 @@ "sha256": "02f63k8rzb3bcch6vj6w5c5ncccqg83siqnc8hyi0lhy1bfx240p" } }, + { + "ename": "sxiv", + "commit": "1b3da730053c1f45e67fefb2e9bfce222cc38628", + "sha256": "0jj0bzw365227anvg9zqy78zdfczfvqlac47kjdyziqmj958yhh8", + "fetcher": "gitlab", + "repo": "contrapunctus/sxiv.el", + "unstable": { + "version": [ + 20200326, + 1433 + ], + "deps": [ + "dash" + ], + "commit": "dae46e6f5890f3d97d45eaadf0194b7ff01f6baf", + "sha256": "094kvg0cznddzn5q1clgj9r26h3ygab96rpbr00qn2wnmdb79bhq" + }, + "stable": { + "version": [ + 0, + 3, + 1 + ], + "deps": [ + "dash" + ], + "commit": "dae46e6f5890f3d97d45eaadf0194b7ff01f6baf", + "sha256": "094kvg0cznddzn5q1clgj9r26h3ygab96rpbr00qn2wnmdb79bhq" + } + }, { "ename": "symbol-overlay", "commit": "c2a468ebe1a3e5a35ef40c59a62befbf8960bd7b", @@ -90687,7 +93117,7 @@ "deps": [ "f" ], - "commit": "9bd33e73ecb2a0e3e3757c55c05f46b6937227e0", + "commit": "cd344b6c2cb6a8fcf061af2c85441644a4e7a006", "sha256": "193lq58mhkq0rrinkaxiyhkk60qf7q0gx03na2968zcrahrd8w75" }, "stable": { @@ -90707,8 +93137,8 @@ "repo": "countvajhula/symex.el", "unstable": { "version": [ - 20200225, - 1928 + 20200425, + 1911 ], "deps": [ "cider", @@ -90725,13 +93155,13 @@ "slime", "smartparens" ], - "commit": "c8bdd672ec7fc50f72599081b87ef48bcec45c9c", - "sha256": "04s0nacv9qy5a95hsblz2an6ipzxmqi98pz71vyc0nghzp6j24zd" + "commit": "3dba2ae3f65bd1c40e3756e05a57ced039a15a7f", + "sha256": "1j2ycsi2ipbyaknscy0vgr1ybyvzl7j1q0gvazkl5rpihshz2shl" }, "stable": { "version": [ 0, - 5, + 6, 0 ], "deps": [ @@ -90749,8 +93179,8 @@ "slime", "smartparens" ], - "commit": "c8bdd672ec7fc50f72599081b87ef48bcec45c9c", - "sha256": "04s0nacv9qy5a95hsblz2an6ipzxmqi98pz71vyc0nghzp6j24zd" + "commit": "62bd31d8647b88ec179fb8ff89f583b55a0421cc", + "sha256": "1c2y65hcd0nydhkh7a903flq061x8hld272n00xn4dd0b8kvjp29" } }, { @@ -90809,35 +93239,6 @@ "sha256": "006siydqxqds0qqds0zxn821dk4pw14wyymyp03n594wgqzw7m8q" } }, - { - "ename": "syndicate", - "commit": "626bda1691d9c7a97fcf549f7a3f0d41d832cfde", - "sha256": "06nmldcw5dy2shhpk6nyix7gs57gsr5s9ksj57xgg8y2j3j0da95", - "fetcher": "github", - "repo": "KNX32542/syndicate", - "unstable": { - "version": [ - 20160603, - 1523 - ], - "deps": [ - "evil" - ], - "commit": "90cee202a06f5bab48268ebf9f62c43334b69f50", - "sha256": "1w0na1p9drdmbci7adj20amrabcpny9fb2v4bd967ils4f2wly75" - }, - "stable": { - "version": [ - 1, - 0 - ], - "deps": [ - "evil" - ], - "commit": "b839aaba0c8583a3254476b53976e3caac4f89a9", - "sha256": "01bymbsvbisnpb2wpqxhrvqx6cj57nh4xvpsbsr5rr1h4pm5jkzl" - } - }, { "ename": "synonymous", "commit": "ecf2c44c63e9f41f1733849bdef0d0c301485580", @@ -90913,14 +93314,14 @@ "repo": "emacs-berlin/syntactic-close", "unstable": { "version": [ - 20191119, - 1007 + 20200408, + 1148 ], "deps": [ "cl-lib" ], - "commit": "5760319d8fdb3672dd0e95880c30e9c4d92ab239", - "sha256": "0rkqflaz0npclnjsy2r6apkjrzlw5zrpa6j87sbjpnnh0jgcsmsq" + "commit": "c21ffdf6a2f8c2a83d3efc729852cd2b09fe03a6", + "sha256": "1m6y7njkn5vibgnr3pnh6nci75j2ksr93ajp01jwpxxxc0wmipa8" } }, { @@ -90949,9 +93350,9 @@ }, { "ename": "syntax-subword", - "commit": "5b7972602399f9df9139cff177e38653bb0f43ed", - "sha256": "1as89ffqz2h69fdwybgs5wibnrvskm7hd58vagfjkla9pjlpffpm", - "fetcher": "bitbucket", + "commit": "caca0b2bc2aaac563074cbb4ea4296fce749e203", + "sha256": "1nfbpckxfy95m7bnj08bnpf8zyxc0dyap5hq1plxl3lxb3c4fvr4", + "fetcher": "github", "repo": "jpkotta/syntax-subword", "unstable": { "version": [ @@ -90960,6 +93361,14 @@ ], "commit": "ad0db0fcb464652a1d3408f525dee9293ce2b70c", "sha256": "1wcgr6scvwwfmhhjbpq3riq0gmp4g08ffbl91fpgp72j8zrc1c6x" + }, + "stable": { + "version": [ + 0, + 2 + ], + "commit": "01b27feac37eb60cf73ff80374004d9e847e637d", + "sha256": "12jk28jbkq1pcpgsbknk8xzzghjh2dhwb54kag2hynldn4qgfkrz" } }, { @@ -91017,10 +93426,10 @@ "unstable": { "version": [ 20200310, - 34 + 1510 ], - "commit": "cf64fdbbb066b6ddfcbd91f778433125d8c16abc", - "sha256": "0ajp8zpml47anv1wdj2qx8l0paq5qsxvgmj2kiyhdh1qilxvfl3y" + "commit": "449dcdf4fe22874c9d91ee8d929ebb8a41b1bac6", + "sha256": "105s1kr8xapp93za9z9kq7s0rqccqissavacjfg6cvfx6gqrr8gy" }, "stable": { "version": [ @@ -91321,11 +93730,11 @@ "repo": "tmalsburg/tango-plus-theme", "unstable": { "version": [ - 20170214, - 1708 + 20200423, + 804 ], - "commit": "8ba8901397e3e9f1d53110487bfa0effc65015e7", - "sha256": "025dca4yqpai45s74nk41y075v8pv59fdna11c0qqz3ihyrdhbrq" + "commit": "1e9484bb392bb0aad2be159505c502320f8d0a5c", + "sha256": "1819s9c0nm4pkgcpxqnr20075krq30qn6hpg4zl54cnrxbfbiq9f" } }, { @@ -91351,11 +93760,11 @@ "repo": "11111000000/tao-theme-emacs", "unstable": { "version": [ - 20200306, - 1306 + 20200325, + 344 ], - "commit": "20d38a10b9d9cc49fdf99b99a39f2b03a1f077d6", - "sha256": "1g04j5j5w69qr59r9mlv50859bmfirrivlp01li14a0jy8jymcxv" + "commit": "34917843cde086943816d8a48977658c663a784e", + "sha256": "1ks4pnwp5fg2vswr93hrli2shfd7rrf3nwqwr1qwmqxhq1600f3x" }, "stable": { "version": [ @@ -91375,11 +93784,11 @@ "repo": "saf-dmitry/taskpaper-mode", "unstable": { "version": [ - 20200225, - 1349 + 20200416, + 2114 ], - "commit": "6ebb8b188a39decf22a5cd675aeaa9684e4ea4ef", - "sha256": "0j3cxakgf943wv7bf73bwa69gc3m0g2ksw78xanz5hc0r0bsxbac" + "commit": "eedf6a465b8ccc865c108a6f2715769300f5a499", + "sha256": "1p7wlv5i46f3d9kn3yiw6rga8mkln9m5xknzimzym2pyaclva41m" }, "stable": { "version": [ @@ -91423,20 +93832,20 @@ "deps": [ "cider" ], - "commit": "6c2631e3fd68e70110aa0cc5b83b7511eab363e2", - "sha256": "1sgnzgy0b61hxkj2fzkgnlrrpgsc5v1prns9hv1za4mv60xs8f15" + "commit": "8dfb4f92db2d8598ba809636a82d210c378b4845", + "sha256": "1sdi1rr9xq7spps5hagzs8irfljxmbd5y3hh4jiyvn54cwicg3g8" }, "stable": { "version": [ 2, 0, - 2 + 3 ], "deps": [ "cider" ], - "commit": "d4ce3b51e97fd7e9f5a650796dee9ba4079f9df0", - "sha256": "1vday9jnmzspnfy3ppladj0z5by4yysfwp1dnqv7n3ayyza5r8w0" + "commit": "ce85fd9bcd008031a605ea8913577f452b49e352", + "sha256": "06dm6gdh10jbmyjr0y96s06qi3k12phq522pviis68qm7v2ryr47" } }, { @@ -91575,14 +93984,14 @@ "repo": "zevlg/telega.el", "unstable": { "version": [ - 20200311, - 1602 + 20200423, + 1038 ], "deps": [ "visual-fill-column" ], - "commit": "4697b363f3633e98528d7cfc1e237a9236feb106", - "sha256": "0dzf28w6ivrzfsy3wglq34mm44vs4148f5r0hjp695xdlz1hv7wa" + "commit": "50ef9bf06cc162b39cf3553b89b02faf5bc87835", + "sha256": "1h5100vmgwy52zp7ryarj4xw3gb9paj1qpm39mc9h62s6n1zysw7" }, "stable": { "version": [ @@ -91628,16 +94037,16 @@ "repo": "dbordak/telephone-line", "unstable": { "version": [ - 20191120, - 27 + 20200412, + 1614 ], "deps": [ "cl-generic", "cl-lib", "seq" ], - "commit": "bfe7b189d708d9cbc69ef2eaf5542108edc4257d", - "sha256": "0dkscbjms2557fzd7gawgsic6gfzypyn973skiyhy0y8zimmr406" + "commit": "65198f72f3b1ae618507aa28094f05d6de4846a9", + "sha256": "177v612ii8nj9nsmfxlf17gr3wair4whzggi3pshch7ghbxdqv5q" }, "stable": { "version": [ @@ -92127,10 +94536,10 @@ }, { "ename": "terraform-mode", - "commit": "93e06adf34bc613edf95feaca64c69a0a2a4b567", - "sha256": "1m3s390mn4pba7zk17xfk045dqr4rrpv5gw63jm18fyqipsi6scn", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "14bhn86d7xv4nvqdr65pm0nwmzawbnxyxyig5i4k8ax20xh59d67", "fetcher": "github", - "repo": "syohex/emacs-terraform-mode", + "repo": "emacsorphanage/terraform-mode", "unstable": { "version": [ 20170112, @@ -92139,8 +94548,8 @@ "deps": [ "hcl-mode" ], - "commit": "6973d1acaba2835dfdf174f5a5e27de6366002e1", - "sha256": "12ww36g7mz4p4nslajcsdcm8xk6blwjwqjwhyp0n10ym6ssbh820" + "commit": "2967e7bdc05d15617e121052f6e43c61439b9070", + "sha256": "0f8p3ns0xw1p64jm22q4pf0ajmb5vp2ppl4qvgxvyna6cvcmw4k5" }, "stable": { "version": [ @@ -92271,14 +94680,14 @@ "repo": "TobiasZawada/texfrag", "unstable": { "version": [ - 20200104, - 41 + 20200424, + 205 ], "deps": [ "auctex" ], - "commit": "2a5561b4534a3b78718e2c5fe30550c89341874e", - "sha256": "1i583i2h9f5bsg663yl9xriv1lc5gb5w4ql6b5r9dwv33lg7l6mx" + "commit": "48118c4e38836117efb4eede927ab85d9a0d2013", + "sha256": "1dpvf9limh9b0sg0x41gyw9w5nf5nvkd7zzlyysswhinm6jba4iz" }, "stable": { "version": [ @@ -92442,26 +94851,26 @@ "repo": "myTerminal/theme-looper", "unstable": { "version": [ - 20190501, - 127 + 20200410, + 1757 ], "deps": [ "cl-lib" ], - "commit": "67ca7e6ac4740a412a1ea29f86e46ceeb636535a", - "sha256": "07bfiikrbmk1jc9ir5d3iwvsi3hbfcsira8gsicphwzhaiahqc1c" + "commit": "0e314ad21193441a26ce1839737e7a054e6a1a1b", + "sha256": "1v4rv2w8jdjzikwfjxsxqrbfwh6nm88v9x74pdhc3mq36qwl487g" }, "stable": { "version": [ 2, - 4, + 6, 0 ], "deps": [ "cl-lib" ], - "commit": "388138a238fbab9b4bc5ada0300c9bc5ef63d3f1", - "sha256": "0gab7ph1d7z0bjflqrj1y1lb4nk4c32bkpi943px0m5s5cjm54jv" + "commit": "0e314ad21193441a26ce1839737e7a054e6a1a1b", + "sha256": "1v4rv2w8jdjzikwfjxsxqrbfwh6nm88v9x74pdhc3mq36qwl487g" } }, { @@ -92585,18 +94994,18 @@ 20200212, 1903 ], - "commit": "483ed864d69f307e9e3b9dadec048216100c0757", - "sha256": "024jm8xvnmi4z3a5801sd3kdvabfk9zk8kfqrxbp0n5jnrmbbm51" + "commit": "598704d0259d992af190a4388140b8aec07f40ef", + "sha256": "168sl4jbcyqms1cvg8x91kclim27v9zbfrw3cn2fmwmd2g29c31j" }, "stable": { "version": [ 2020, - 3, - 9, + 4, + 20, 0 ], - "commit": "2ece938967751345394c81381efeea4e3165570f", - "sha256": "15wzhpd1djzviq9r46srzbrwj8zdfmwg7ca9zjm86nff0asv6i01" + "commit": "23496d2d53ecc70a2353c1a84699ac579e21e0a1", + "sha256": "0yvpnyzklsjppfhd9spgrf9gh3f36zvs3rz7fyc7bl3n68s3z7wq" } }, { @@ -92652,20 +95061,20 @@ "deps": [ "haskell-mode" ], - "commit": "b28951be9abee7dc234c318849169bb578db3c49", - "sha256": "0absv56yqrqf3mzgs064q88lh6k28a7knzqrgdmf4100gf32np4j" + "commit": "3735a13c9bbe4fbb788d9dbc363701081253bafa", + "sha256": "0nm02pzhvg6lb3j4m8g4jfgkirv8pb6881bk2r74hijxvjamma0b" }, "stable": { "version": [ 1, 4, - 8 + 9 ], "deps": [ "haskell-mode" ], - "commit": "b28951be9abee7dc234c318849169bb578db3c49", - "sha256": "0absv56yqrqf3mzgs064q88lh6k28a7knzqrgdmf4100gf32np4j" + "commit": "252e3be53eb1bf6bfcd1b3c52af982506c84a89e", + "sha256": "19chvk24csg5w38q6yh1wky4nk4z8361p1q5q118427njqkl5ql3" } }, { @@ -92676,8 +95085,8 @@ "repo": "ananthakumaran/tide", "unstable": { "version": [ - 20200308, - 259 + 20200327, + 1218 ], "deps": [ "cl-lib", @@ -92686,8 +95095,8 @@ "s", "typescript-mode" ], - "commit": "10e5c19de798aba2d57fb1ec83ad3d1369e6547a", - "sha256": "137kkpsdg4mg2rxidnhzq0a6lqgfld3q1zv91j1k0s2m0q2pb3ck" + "commit": "3b45610faaab33bc53ae2d44e1e573f19f35a74a", + "sha256": "1507xp8ndhyqvzd5j2qx3y4lpxq52j40srh5mp9784bf1hm9gg2s" }, "stable": { "version": [ @@ -92982,14 +95391,14 @@ "repo": "kuanyui/tldr.el", "unstable": { "version": [ - 20200302, - 1744 + 20200330, + 1025 ], "deps": [ "request" ], - "commit": "7203d1be3dcbf12131846ffe06601933fa874d74", - "sha256": "1bw6la463l2yfm7rp76ga4makfy4kpxgwi7ni5gxk31w11g26ryk" + "commit": "269bda7001613c0b70c0662d2a74d200765c1dcb", + "sha256": "0z8hkp15sdb0x0g67v6xa8ds28awz4i2vcbryj5zfpl15d0fiqc2" } }, { @@ -93015,15 +95424,15 @@ "repo": "laishulu/emacs-tmux-pane", "unstable": { "version": [ - 20200227, - 1230 + 20200419, + 1331 ], "deps": [ "names", "s" ], - "commit": "be321093575c1b68946296edd57762c4323c253b", - "sha256": "14f1nvnp6qxgq64410kqwi59f29p2shr6v8qg1ck8g9fiarilx5w" + "commit": "6e8d0584b0bbd412c5d29c87add7364299b3d2a0", + "sha256": "054qncg530paiv1vs27hs94m2y2fzvr4iind1rr16m8v8qf7zia6" } }, { @@ -93244,6 +95653,24 @@ "sha256": "0pwbd5gzmpr6js20438870w605671930291070nhmhswvxfcdvay" } }, + { + "ename": "tongbu", + "commit": "e97578be9aa9bdadc6bdf6c7105242ca9d23bf80", + "sha256": "1gnjvb4w0mgr0swpqqk3hmscypv9bdg9q2ixkp2sv19d45gd4pvb", + "fetcher": "github", + "repo": "xuchunyang/tongbu.el", + "unstable": { + "version": [ + 20200414, + 507 + ], + "deps": [ + "web-server" + ], + "commit": "6f6e5c5446f0c5735357ab520b249ab97295653e", + "sha256": "05pg1qddsl0m4r73smrxpcvyiwa18d9jl6i8nfanlydwmmjqblb9" + } + }, { "ename": "tornado-template-mode", "commit": "f329baae028fd17618824128f312a49aa0a0807e", @@ -93551,8 +95978,8 @@ 20200226, 1612 ], - "commit": "a269614c69ad8b2703e6e5093d0017d6afad6cca", - "sha256": "0w50sh55c04gacx2pp19rvi0fwj9h19c9gzd8dpa82zjiidfxckr" + "commit": "afa0c2f98453b9ffd9d8160831debc7e36cdb87b", + "sha256": "0jkyrwxmfarbjqidvgxh0x4al9xh1wyd6r1rwvkbwxscz5111h3z" }, "stable": { "version": [ @@ -93564,6 +95991,24 @@ "sha256": "0w50sh55c04gacx2pp19rvi0fwj9h19c9gzd8dpa82zjiidfxckr" } }, + { + "ename": "transient-dwim", + "commit": "0ad7091aa6129c09e457c71274a42344acd6b823", + "sha256": "1q32if4i913vjbcpcdrfznjiih4c30ipnadn84zkr72wn5ndzlpq", + "fetcher": "github", + "repo": "conao3/transient-dwim.el", + "unstable": { + "version": [ + 20200411, + 2015 + ], + "deps": [ + "transient" + ], + "commit": "00d111e41e433736422e388e593b5c0df7d21bf9", + "sha256": "1gx3v5axvwah1yb0wba2l60dy72lcw7jw86cfjlg3m9a8xd090v7" + } + }, { "ename": "transmission", "commit": "9ed7e414687c0bd82b140a1bd8044084d094d18f", @@ -93572,14 +96017,14 @@ "repo": "holomorph/transmission", "unstable": { "version": [ - 20200215, - 1350 + 20200321, + 216 ], "deps": [ "let-alist" ], - "commit": "49d3d764819afabf7a66f9d887a6b16c53566317", - "sha256": "00hk1rgqilxhlaabi7pgz25k0ykfizwhpp65yzgs453q6kvhccfv" + "commit": "05a80e7a90303cd80f67681df2ec8e1bac88c394", + "sha256": "02chl6k9r0mki7iy5rs9xwgd74ypf0c79q9d3p7fw1rc1wqxk9ji" }, "stable": { "version": [ @@ -93602,11 +96047,11 @@ "repo": "emacsorphanage/transpose-frame", "unstable": { "version": [ - 20151126, - 1426 + 20200307, + 2119 ], - "commit": "011f420c3496b69fc22d789f64cb8091834feba7", - "sha256": "1nhbinwv1ld13c0b0lxlvfm9s6bvxcz2vgfccqg45ncg9rx70rsw" + "commit": "12e523d70ff78cc8868097b56120848befab5dbc", + "sha256": "01j4ci0c52r2c31hc9r4p7nsb6s8blmvg50g9n5v5h3afjl1c35v" }, "stable": { "version": [ @@ -93752,8 +96197,8 @@ "repo": "Alexander-Miller/treemacs", "unstable": { "version": [ - 20200309, - 2057 + 20200426, + 1031 ], "deps": [ "ace-window", @@ -93765,13 +96210,13 @@ "pfuture", "s" ], - "commit": "81b69d9ee26326178cef08d5aef2811df4f659ed", - "sha256": "138iw9sva5s6d2asl1ch0723q3q8zqlyllhxrac3phgmqzjdw68c" + "commit": "93b4357f7d9ff559c195be1fc4a7ec3554053d48", + "sha256": "1rh0bbm2mqy4zwkxrcsc88qpg2j6cbjsqcf8l682ibmmnslrfqh9" }, "stable": { "version": [ 2, - 6 + 8 ], "deps": [ "ace-window", @@ -93783,8 +96228,8 @@ "pfuture", "s" ], - "commit": "e01ad21ea3cc0eba8cd460737116b51be32ffb45", - "sha256": "13gs8g05xj7np3i2q3bbxg6zgdiazzn1spxii4x0cyd4pg83c0i1" + "commit": "16b0819c6f27f45fe0495a29eeff5f01bd765b04", + "sha256": "0m083g3pg0n4ymi1w0jx34awr7cqbm4r561adij9kklblxsz7sc2" } }, { @@ -93802,20 +96247,20 @@ "evil", "treemacs" ], - "commit": "81b69d9ee26326178cef08d5aef2811df4f659ed", - "sha256": "138iw9sva5s6d2asl1ch0723q3q8zqlyllhxrac3phgmqzjdw68c" + "commit": "93b4357f7d9ff559c195be1fc4a7ec3554053d48", + "sha256": "1rh0bbm2mqy4zwkxrcsc88qpg2j6cbjsqcf8l682ibmmnslrfqh9" }, "stable": { "version": [ 2, - 6 + 8 ], "deps": [ "evil", "treemacs" ], - "commit": "e01ad21ea3cc0eba8cd460737116b51be32ffb45", - "sha256": "13gs8g05xj7np3i2q3bbxg6zgdiazzn1spxii4x0cyd4pg83c0i1" + "commit": "16b0819c6f27f45fe0495a29eeff5f01bd765b04", + "sha256": "0m083g3pg0n4ymi1w0jx34awr7cqbm4r561adij9kklblxsz7sc2" } }, { @@ -93826,27 +96271,27 @@ "repo": "Alexander-Miller/treemacs", "unstable": { "version": [ - 20200205, - 548 + 20200421, + 1426 ], "deps": [ "cl-lib", "treemacs" ], - "commit": "81b69d9ee26326178cef08d5aef2811df4f659ed", - "sha256": "138iw9sva5s6d2asl1ch0723q3q8zqlyllhxrac3phgmqzjdw68c" + "commit": "93b4357f7d9ff559c195be1fc4a7ec3554053d48", + "sha256": "1rh0bbm2mqy4zwkxrcsc88qpg2j6cbjsqcf8l682ibmmnslrfqh9" }, "stable": { "version": [ 2, - 6 + 8 ], "deps": [ "cl-lib", "treemacs" ], - "commit": "e01ad21ea3cc0eba8cd460737116b51be32ffb45", - "sha256": "13gs8g05xj7np3i2q3bbxg6zgdiazzn1spxii4x0cyd4pg83c0i1" + "commit": "16b0819c6f27f45fe0495a29eeff5f01bd765b04", + "sha256": "0m083g3pg0n4ymi1w0jx34awr7cqbm4r561adij9kklblxsz7sc2" } }, { @@ -93857,29 +96302,29 @@ "repo": "Alexander-Miller/treemacs", "unstable": { "version": [ - 20200302, - 553 + 20200421, + 1426 ], "deps": [ "magit", "pfuture", "treemacs" ], - "commit": "81b69d9ee26326178cef08d5aef2811df4f659ed", - "sha256": "138iw9sva5s6d2asl1ch0723q3q8zqlyllhxrac3phgmqzjdw68c" + "commit": "93b4357f7d9ff559c195be1fc4a7ec3554053d48", + "sha256": "1rh0bbm2mqy4zwkxrcsc88qpg2j6cbjsqcf8l682ibmmnslrfqh9" }, "stable": { "version": [ 2, - 6 + 8 ], "deps": [ "magit", "pfuture", "treemacs" ], - "commit": "e01ad21ea3cc0eba8cd460737116b51be32ffb45", - "sha256": "13gs8g05xj7np3i2q3bbxg6zgdiazzn1spxii4x0cyd4pg83c0i1" + "commit": "16b0819c6f27f45fe0495a29eeff5f01bd765b04", + "sha256": "0m083g3pg0n4ymi1w0jx34awr7cqbm4r561adij9kklblxsz7sc2" } }, { @@ -93890,16 +96335,29 @@ "repo": "Alexander-Miller/treemacs", "unstable": { "version": [ - 20200309, - 2057 + 20200421, + 1426 ], "deps": [ "dash", "persp-mode", "treemacs" ], - "commit": "81b69d9ee26326178cef08d5aef2811df4f659ed", - "sha256": "138iw9sva5s6d2asl1ch0723q3q8zqlyllhxrac3phgmqzjdw68c" + "commit": "93b4357f7d9ff559c195be1fc4a7ec3554053d48", + "sha256": "1rh0bbm2mqy4zwkxrcsc88qpg2j6cbjsqcf8l682ibmmnslrfqh9" + }, + "stable": { + "version": [ + 2, + 8 + ], + "deps": [ + "dash", + "persp-mode", + "treemacs" + ], + "commit": "16b0819c6f27f45fe0495a29eeff5f01bd765b04", + "sha256": "0m083g3pg0n4ymi1w0jx34awr7cqbm4r561adij9kklblxsz7sc2" } }, { @@ -93917,20 +96375,20 @@ "projectile", "treemacs" ], - "commit": "81b69d9ee26326178cef08d5aef2811df4f659ed", - "sha256": "138iw9sva5s6d2asl1ch0723q3q8zqlyllhxrac3phgmqzjdw68c" + "commit": "93b4357f7d9ff559c195be1fc4a7ec3554053d48", + "sha256": "1rh0bbm2mqy4zwkxrcsc88qpg2j6cbjsqcf8l682ibmmnslrfqh9" }, "stable": { "version": [ 2, - 6 + 8 ], "deps": [ "projectile", "treemacs" ], - "commit": "e01ad21ea3cc0eba8cd460737116b51be32ffb45", - "sha256": "13gs8g05xj7np3i2q3bbxg6zgdiazzn1spxii4x0cyd4pg83c0i1" + "commit": "16b0819c6f27f45fe0495a29eeff5f01bd765b04", + "sha256": "0m083g3pg0n4ymi1w0jx34awr7cqbm4r561adij9kklblxsz7sc2" } }, { @@ -94444,11 +96902,11 @@ "repo": "emacs-typescript/typescript.el", "unstable": { "version": [ - 20200309, - 846 + 20200312, + 2235 ], - "commit": "1767de109515a992b965d275cb5550d336d957df", - "sha256": "0wzgxha155i2nb9idqv634rmxlkf4hd1sg53lipll0phzwd4s7k9" + "commit": "102587e458d48ece6335cd708300647f22ec8b8d", + "sha256": "0i3zpg21l5id0sfpxyn496wy83mpr66afx71lrnipsy1fqwd2j5x" }, "stable": { "version": [ @@ -94785,11 +97243,11 @@ "repo": "ideasman42/emacs-undo-fu", "unstable": { "version": [ - 20200305, - 28 + 20200413, + 159 ], - "commit": "aae7ec9784e8fab9b33adf25eac25e745653f19f", - "sha256": "02xlfjl9z822qixk9gxwv18n8ykdq793fd0qm9g0qsz0sn57mr8n" + "commit": "0ce9ac36144e80316fff50bfe1bc5dd7e5e7ded6", + "sha256": "1mqm2z8bp5dx9f9xq6bpgvk8xmzmh71bgxbff6kcliv0jy3jlakb" } }, { @@ -94800,11 +97258,11 @@ "repo": "ideasman42/emacs-undo-fu-session", "unstable": { "version": [ - 20200221, - 1152 + 20200408, + 11 ], - "commit": "35d4cf3771d905d647a35df050abfd9015833aad", - "sha256": "0846whh01bzxhl98wlywd11ki6wk2iyzzxvc5gnlj85cdasjrz10" + "commit": "b808ef0cdcdd2eef221c67eda567eed7fcb3d4af", + "sha256": "107dgdw1jh8mipgwal1g86nfckrpz2l53a1sqcg90nb0n8fkvy2q" } }, { @@ -95234,6 +97692,29 @@ "sha256": "0fgipv93x47cvyww07cqx8xa95jz36y6fy5rmaq40jnnmdkgq862" } }, + { + "ename": "unobtrusive-magit-theme", + "commit": "6dd57561738c2dc3ed6dc03f57d2487ce949f035", + "sha256": "05djixlq49dn1m64xs8b6w4kg650wrr8rs2pb72p1kfvp2a53g7w", + "fetcher": "github", + "repo": "tee3/unobtrusive-magit-theme", + "unstable": { + "version": [ + 20200411, + 1349 + ], + "commit": "aede357009655d19d4468320b2b61b0f26a47593", + "sha256": "1af8c7q3vxj23l2ah5waj9hn5pfp66834b4akm76jc5wqf0sr9j1" + }, + "stable": { + "version": [ + 0, + 4 + ], + "commit": "aede357009655d19d4468320b2b61b0f26a47593", + "sha256": "1af8c7q3vxj23l2ah5waj9hn5pfp66834b4akm76jc5wqf0sr9j1" + } + }, { "ename": "untitled-new-buffer", "commit": "de62e48115e1e5f9506e6d47a3b23c0420c1205b", @@ -95376,14 +97857,14 @@ "repo": "jwiegley/use-package", "unstable": { "version": [ - 20191126, - 2034 + 20200322, + 2110 ], "deps": [ "bind-key" ], - "commit": "42db6b3d90ee57d0f5947d3b0bf4b0010bdf7b40", - "sha256": "1an2whgy68l9c1l1qx8p8jz47g4hj2abf0kxvcmbc6wj8lp5zny8" + "commit": "c873d5529c9c80cb58222f22873a4f081c307cb2", + "sha256": "0jbq3w9ijsbl5gblhr24b0rh4gyp1xx696g20l438a7sbsk4b531" }, "stable": { "version": [ @@ -95414,8 +97895,8 @@ "key-chord", "use-package" ], - "commit": "42db6b3d90ee57d0f5947d3b0bf4b0010bdf7b40", - "sha256": "1an2whgy68l9c1l1qx8p8jz47g4hj2abf0kxvcmbc6wj8lp5zny8" + "commit": "c873d5529c9c80cb58222f22873a4f081c307cb2", + "sha256": "0jbq3w9ijsbl5gblhr24b0rh4gyp1xx696g20l438a7sbsk4b531" }, "stable": { "version": [ @@ -95476,8 +97957,8 @@ "system-packages", "use-package" ], - "commit": "42db6b3d90ee57d0f5947d3b0bf4b0010bdf7b40", - "sha256": "1an2whgy68l9c1l1qx8p8jz47g4hj2abf0kxvcmbc6wj8lp5zny8" + "commit": "c873d5529c9c80cb58222f22873a4f081c307cb2", + "sha256": "0jbq3w9ijsbl5gblhr24b0rh4gyp1xx696g20l438a7sbsk4b531" }, "stable": { "version": [ @@ -95551,30 +98032,6 @@ "sha256": "0xg98ngrdlfjcb902qaljwhh9jszkafc2vm1x8627lnw1k7i6b3q" } }, - { - "ename": "usql", - "commit": "c8f6b968312a09d062fcc8f942d29c93df2a5a3c", - "sha256": "10ks164kcly5gkb2qmn700a51kph2sry4a64jwn60p5xl7w7af84", - "fetcher": "github", - "repo": "nickbarnwell/usql.el", - "unstable": { - "version": [ - 20180305, - 2323 - ], - "commit": "bfaf428b366a9a185eef84f0d645a98dc918fe3d", - "sha256": "00b1g30l86abg65wc9f4vcn4ccqa2zmn2mi33vdjrq3phw17d2ks" - }, - "stable": { - "version": [ - 0, - 0, - 3 - ], - "commit": "bfaf428b366a9a185eef84f0d645a98dc918fe3d", - "sha256": "00b1g30l86abg65wc9f4vcn4ccqa2zmn2mi33vdjrq3phw17d2ks" - } - }, { "ename": "utop", "commit": "30489fe52b4031184e54f994770aa3291257bc9d", @@ -95586,17 +98043,17 @@ 20190715, 1836 ], - "commit": "c719401992c255f30ed42c4a942651ce7982ce9d", - "sha256": "1dafg3549mpkkl4c698byghai7nlr9nfzl2l7bgqxqwh5qrwp15k" + "commit": "471cb311159773bbb280d0f1a4b47c54456c67a9", + "sha256": "09hxi1v5wvb952rwfmj48n6ndxkqn8ciaqj1cd9xgkw62h54agq9" }, "stable": { "version": [ 2, - 4, - 3 + 5, + 0 ], - "commit": "ba35712f1bd1c489a54088a4fd807f8484c1d98a", - "sha256": "1bl4943qpi3qy152dbdm5glhx19zsiylmn4rcxi8l66g58hikyjp" + "commit": "471cb311159773bbb280d0f1a4b47c54456c67a9", + "sha256": "09hxi1v5wvb952rwfmj48n6ndxkqn8ciaqj1cd9xgkw62h54agq9" } }, { @@ -96207,20 +98664,20 @@ "repo": "federicotdn/verb", "unstable": { "version": [ - 20200310, - 2338 + 20200404, + 951 ], - "commit": "b5230c8482e82f652403000f24e1fecfb263f380", - "sha256": "16mrbsfkagrq7ng25lc4rs2c8fz63b5m9vfjmnpk5jf8kg0kknwq" + "commit": "82cf1bde07b0c96b25d1dd16268663d8931fbb60", + "sha256": "18pjsjxrf844y3aw0fvj451cz08kw2j3idmhh3l15aj3jdwzjfbq" }, "stable": { "version": [ 2, - 8, + 9, 0 ], - "commit": "f9199768e55849cbe5a879a530b33bce88ac4c2c", - "sha256": "1zpsvjsr5mvi0l0mgfwirxg5bkhkp305h85fbv5g3hr4g0vnr448" + "commit": "2c4252b2b57f65ebd9fd2c7a7771b4d0354f1d4c", + "sha256": "0g0hi1bhrx8bj0wbxwaimfpvl491sd079551199hcyhq607pcpp2" } }, { @@ -96260,6 +98717,30 @@ "sha256": "1y6vjw5qzaxr37spg5d4nxffmhiipzsrd7mvh8bs3jcfrsg3080n" } }, + { + "ename": "versuri", + "commit": "056daa8d5563dd6ffb9c93630f9b357f73c1e58a", + "sha256": "0nidgn9gdrrvqzbfjwvhs9bycbj3l9jbcablnbs2yxf903zlgn9b", + "fetcher": "github", + "repo": "mihaiolteanu/versuri", + "unstable": { + "version": [ + 20200316, + 852 + ], + "deps": [ + "anaphora", + "dash", + "esqlite", + "esxml", + "ivy", + "request", + "s" + ], + "commit": "41e20583d1080beeeda0e36d1b2e6d74b9c57920", + "sha256": "0fgc1rai9gp6lwl0rxr9400vi420py0c0b8nv9wzl12ph80yhwj7" + } + }, { "ename": "vertica", "commit": "f98a06b794ef0936db953f63679a63232295a849", @@ -96286,14 +98767,14 @@ "repo": "baron42bba/vertica-snippets", "unstable": { "version": [ - 20191213, - 1109 + 20200423, + 1200 ], "deps": [ "yasnippet" ], - "commit": "2d1c45c63392ed869625bd062c19422600c9f555", - "sha256": "1gn57jfmma5h90m3b7l698rncmbygd2dbp48vvx1d1z9ks2rm8gg" + "commit": "6ced718d9120878878700592fab430a8542b748f", + "sha256": "1x04wrf3h6f4wsh4n2cl3n4byj9pxni918ri49hqxzm8h8hivigc" } }, { @@ -96342,22 +98823,22 @@ }, { "ename": "vhdl-tools", - "commit": "69fe2f8fb98ac1af1d3185f62ae1c89e646cfebf", - "sha256": "006d9xv60a90xalagczkziiimwsr1np9nn25zvnc4nlbf8j3fbbw", - "fetcher": "github", - "repo": "csantosb/vhdl-tools", + "commit": "b1a3336bff4d677b3bc7fbb8ef230ffc7b78e268", + "sha256": "0xdq9sicwpv3qzy833fqhvi4yllqmqgd4p9lbgq7dn1g8qz2gakn", + "fetcher": "gitlab", + "repo": "emacs-elisp/vhdl-tools", "unstable": { "version": [ - 20200128, - 957 + 20200330, + 1819 ], "deps": [ "ggtags", "helm-rg", "outshine" ], - "commit": "8584e73ab550841b3df7419dea32b874cdd64425", - "sha256": "0s0ljcn6lgcr6zqhw31llg4ri2drkxbz31kviir0xwgr8hn4p5dn" + "commit": "11645a398a11cdc4b84838294521ecfb229d7856", + "sha256": "00wqvszxsfyxx7pn9w5jn5brw2lx7d577zbc7sc4jz5nlk0csxd4" }, "stable": { "version": [ @@ -96495,15 +98976,15 @@ "repo": "mrkkrp/vimish-fold", "unstable": { "version": [ - 20200223, - 1836 + 20200329, + 1242 ], "deps": [ "cl-lib", "f" ], - "commit": "d3248a41a79092ea270b07ac60bf7420befa2146", - "sha256": "164jx09m7sgmffixlarjdyn8zdrqcmm4ngwddpjyv3phi65pnpj0" + "commit": "63685239655a151181b9152e45478dad587f86f2", + "sha256": "1l6zca08diq3ppmg1pllihbfj0pcaqvbnisryr92mvbblhk44wxs" }, "stable": { "version": [ @@ -96549,8 +99030,8 @@ "adaptive-wrap", "visual-fill-column" ], - "commit": "91fb699ead3f86663e56b48a10adeb5723ca7b84", - "sha256": "0rfrgjflgn0c9xj7f4fwdzyclp2p9fbfir19iwy77z7jnkjk78dv" + "commit": "291f6178a5423f01f2f69d6bc48603d4f605b61a", + "sha256": "15kg23xkcc060y8a5f9657gk3bvkax23myhajaa0b2i1qcd6p43i" } }, { @@ -96721,6 +99202,21 @@ "sha256": "1isqa4ck6pm4ykcrkr0g1qj8664jkpcsrq0f8dlb0sksns2dqkwj" } }, + { + "ename": "vlc", + "commit": "bcb69969893a3f70fe9e7e3b2a836df3ba212fb8", + "sha256": "1pf3ry205pl4369hbpvcc1xlicf16ws4dc018mk6c1m4fi9qc3lk", + "fetcher": "github", + "repo": "xuchunyang/vlc.el", + "unstable": { + "version": [ + 20200328, + 1143 + ], + "commit": "932840f874e7510ee86e796bb5dc20d44514e31a", + "sha256": "0vqsdvaqi8ih98ic9hdwwwwcs4v0yjz3nrwwwkwh2a99l9a59j5g" + } + }, { "ename": "vlf", "commit": "9116b11eb513dd9e1dc9542d274dd60f183b24c4", @@ -96909,11 +99405,11 @@ "repo": "akermu/emacs-libvterm", "unstable": { "version": [ - 20200309, - 615 + 20200418, + 1610 ], - "commit": "03b8a06a0a531d13f18ef7f00ed4617eb4eaa1ad", - "sha256": "0485d07y12knsxisalv5824nmqw2gx08jrdgams7l3ra4z961lfj" + "commit": "0b04d31e2f0daf45452da2c5e214d2b42cd46a46", + "sha256": "1bdbr1hpzipxk41wx4qyvr2rkk4q4j8qnc09gd51wak7n4w3xz48" } }, { @@ -96924,14 +99420,14 @@ "repo": "jixiuf/vterm-toggle", "unstable": { "version": [ - 20200228, - 628 + 20200402, + 1516 ], "deps": [ "vterm" ], - "commit": "24d68a0ab920875d0834598688128e692fe9a5b2", - "sha256": "0bzxd5xzpajvg7mv7ggplcba7plchhlrl1m14dnx3nrx6q0936cr" + "commit": "15901e1e1eebd957ef18d38c920f944558ebd4fb", + "sha256": "1dcr242i9r7r4mr43qfv5ij254dnhf04gfi71y507zfpdr17zdix" } }, { @@ -96992,6 +99488,43 @@ "sha256": "014vx8jkscj1c614v78dqlqlg7n0zc3c2db3dqvxvaz417i5mxq0" } }, + { + "ename": "vuiet", + "commit": "4f63056cf2f637fcb3426851501eeff5e6f40bb3", + "sha256": "0hf99rgzhi66in3lr0pl3g8g56l00zcvz1qgclfsbw1yb9ig626y", + "fetcher": "github", + "repo": "mihaiolteanu/vuiet", + "unstable": { + "version": [ + 20200424, + 1400 + ], + "deps": [ + "bind-key", + "lastfm", + "mpv", + "s", + "versuri" + ], + "commit": "5da06a8acebcaf84a3581610ff24aae1b46f786b", + "sha256": "16yfnqpdzi3bih16d7dzbqmd30m7w8rkjylnsg9m951vc0lysk3p" + }, + "stable": { + "version": [ + 1, + 0 + ], + "deps": [ + "bind-key", + "lastfm", + "mpv", + "s", + "versuri" + ], + "commit": "4e15dacd6445d490fefc47070f8e5b98db5e0dc6", + "sha256": "18qcw9mh57jrd6qrgcma82q28d1dab2dy6v8pi08kadcy4w95y10" + } + }, { "ename": "vyper-mode", "commit": "492d42d60bc188a567c5e438b838a275a124c699", @@ -97037,11 +99570,11 @@ "repo": "emacs-w3m/emacs-w3m", "unstable": { "version": [ - 20200302, - 2210 + 20200325, + 2226 ], - "commit": "03ea43b1f1c648968fe1109fb5c50febcf9e154d", - "sha256": "1v194qzgxq5r34xaqgky1ir2bikaphv8csnxlgwbkggzpxnlwqi0" + "commit": "e522a44b151d69d4a176e8809225598ab540fc4d", + "sha256": "1alishzz4j1hbfyfi09rkhffx6gv16yxln7q8jx25shb9rssivyz" } }, { @@ -97129,11 +99662,11 @@ "repo": "darkstego/wakib-keys", "unstable": { "version": [ - 20190910, - 1011 + 20200326, + 2329 ], - "commit": "23237fc2c255de798b8d3fc2cb68c7c22b53caa9", - "sha256": "1s5n2gcldwj5srjn44pigd788x0hv4c7lz75krqyz1hysriydv9p" + "commit": "7564b39aaa2b38ccca0a21bc72a797f065a0b171", + "sha256": "132jwf1d54ykbvw4f9f7i27ig5hpc6wsmm1ib44m5hx1kv1kxvh6" } }, { @@ -97163,15 +99696,30 @@ "repo": "abrochard/walkman", "unstable": { "version": [ - 20200224, - 1501 + 20200418, + 1554 ], "deps": [ "org", "transient" ], - "commit": "bdc026b58dc023cf078ec5eafae3b334ac5c39ef", - "sha256": "13bhdmylg7k9r5y6wi158rv8rm4cndv8av35g65vc6qk0bgnnwpz" + "commit": "07a7710084c328dc238626f8b6e7d019380502de", + "sha256": "13g8wgcv3qydx6vhznx1iypmlrzl3cm02prrkqp70gjvgblk06nm" + } + }, + { + "ename": "wallpaper", + "commit": "764c5b8438197d6f24113e7b3a696b8327a8d6d9", + "sha256": "18wpj5qzac0msp9mi8511kpw6157k7dj9zvzh1y6rhd7a5nd0clg", + "fetcher": "github", + "repo": "farlado/emacs-wallpaper", + "unstable": { + "version": [ + 20200408, + 1353 + ], + "commit": "9fb5be9c2f7279f7ef2860eefd416359b9026ba3", + "sha256": "18vm8g4iwf2a9l40bg7cvpdziv10mv24x61z86xwjmnqbr7sxd8q" } }, { @@ -97500,11 +100048,11 @@ "repo": "fxbois/web-mode", "unstable": { "version": [ - 20200301, - 1948 + 20200424, + 1153 ], - "commit": "b0bb4ab82ba64b6fa789212f03ad808bdaf77d68", - "sha256": "0v79xm0w8fr342jp27jlkph3av3kbzwdyip6djwykid4j6bcnv2i" + "commit": "6774c596a9b3988989d3bc96b6194e6f0df1d1b6", + "sha256": "1kv06qjcjxy5jw68za5bkmj4kwzc1snlxd7nahcy29rjkiczlh9c" }, "stable": { "version": [ @@ -97593,11 +100141,11 @@ "repo": "eschulte/emacs-web-server", "unstable": { "version": [ - 20200216, - 1126 + 20200330, + 1407 ], - "commit": "33afdb46e1cd61251736816d965495525b36c9cd", - "sha256": "109gxdk7xznxm85fvlvccj01bznali98wzywypzy73l8zxs2yj74" + "commit": "9edf4b5e3c6cea1738acf08241919e00437ec530", + "sha256": "1cf2g67q064pnji0hbg0x5ziqmxwim127sd4q849cifxj7a4rqaw" } }, { @@ -97644,28 +100192,28 @@ "repo": "etu/webpaste.el", "unstable": { "version": [ - 20200227, - 912 + 20200416, + 1007 ], "deps": [ "cl-lib", "request" ], - "commit": "ef33b0f298bf36cfb84b37af4870706fc376b0c3", - "sha256": "0v2yw3jbwlamkycgfmd5abxr764zyzcggyzn2ybzlkffxaxaz6dw" + "commit": "7a3060266459566e450c5cafc00bc90c6508eae5", + "sha256": "064lihjd6bddvlick8md1anhinkc88asvliw0z34c8bckxc3hqpr" }, "stable": { "version": [ 3, - 0, - 2 + 1, + 0 ], "deps": [ "cl-lib", "request" ], - "commit": "1a6c0e967f0340d825df33f4fab339eb904f5f5f", - "sha256": "15b97rszszgcivrsdx7368nxdb8lsag6wvmcvvm977splh9yjpwi" + "commit": "7a3060266459566e450c5cafc00bc90c6508eae5", + "sha256": "064lihjd6bddvlick8md1anhinkc88asvliw0z34c8bckxc3hqpr" } }, { @@ -97676,14 +100224,14 @@ "repo": "ahyatt/emacs-websocket", "unstable": { "version": [ - 20200102, - 637 + 20200419, + 2124 ], "deps": [ "cl-lib" ], - "commit": "ee44af2cc55415591e7ccb1007193294c702affd", - "sha256": "01pc03kial647r1nad1vw6rcbd251hrvjjh87gqqlhh9ksrcwnl9" + "commit": "078f83902c0846c00ed8e3b6c5add7ff9b98d8f9", + "sha256": "11nacz0vvhaa8582r0ylx5w886y2qysbvrh9s064g979vjyfh9rg" }, "stable": { "version": [ @@ -98121,11 +100669,11 @@ "repo": "lassik/emacs-whois", "unstable": { "version": [ - 20190529, - 1554 + 20200409, + 1538 ], - "commit": "c86c0ad9adc4787a422cca11b66229cc14a6d83a", - "sha256": "1abn5rzapbvk217h1s7lk166y48g7fvdvjmy2fsbz60rwq2zhpk6" + "commit": "907abd9538c4a1e088853b816af883e5040fc430", + "sha256": "1qfkppciijyyg76idqqzjy351rki8y4pffwicprnrhv1qixfhdvv" }, "stable": { "version": [ @@ -98215,8 +100763,8 @@ "makey", "s" ], - "commit": "0379c80a0c2df77cd18e95741caf6fc8acd90a41", - "sha256": "1lkmr9024x8nv9chl21qp9dnl64qlp0lrfy592pzidpr3997xkjf" + "commit": "79098cd4cdfa144807cb710af4589c13a7033842", + "sha256": "04gfhjpn4q8d4y6177gdffwjbqq627083pff2ckw79pbvlj9f2mm" } }, { @@ -98456,6 +101004,21 @@ "sha256": "1dpy8hkjn87wbdkzyabhay4jx4dgc0ab2flyf0rjq1qaazk393sc" } }, + { + "ename": "winds", + "commit": "43a07dc1e9af8f832330131764147907826e06e5", + "sha256": "1a5kw44pyilgaydyp87his41b2hw0xijp6sggl7bd60jwgspa0wy", + "fetcher": "github", + "repo": "Javyre/winds.el", + "unstable": { + "version": [ + 20200425, + 1643 + ], + "commit": "a998e9397836f441d51f3c8d001dd407258a0ff5", + "sha256": "1qgkm1fl21r56gbsvwmld8mdf970zwjsj68qdpsa9m0j4kbw9m9c" + } + }, { "ename": "windsize", "commit": "855ea20024b606314f8590129259747cac0bcc97", @@ -98591,11 +101154,11 @@ "repo": "ArneBab/wisp", "unstable": { "version": [ - 20190921, - 2218 + 20191114, + 2340 ], - "commit": "0d2c025ac4cfd394706c07fbb60999eaf711020b", - "sha256": "1fs4dpc78aax4mzcp0vzcvzf2mxiwzbdwjfgpylwppxamqdycdwy" + "commit": "33b4fcdd8a17aa19d57971e4f6db5fcb7758843c", + "sha256": "09rrv89b17s4sklkqgci1pmzlnkjlrira22884dh10sbfij42vbp" } }, { @@ -98715,14 +101278,26 @@ "repo": "p3r7/with-shell-interpreter", "unstable": { "version": [ - 20200306, - 1445 + 20200419, + 850 ], "deps": [ "cl-lib" ], - "commit": "055b46755b7cbc324a8d92e092de671b9bc97098", - "sha256": "10xf2aqxkqdls0ym2a5dvwz96zzziw7v0y493krw2jchzpwkwryk" + "commit": "ffd9c6a3a058fe072458f90e117590988042c662", + "sha256": "194k0j6mg8dh5z5ia204glicbmy2laxyny7snbvf7b6xd9ajmj3w" + }, + "stable": { + "version": [ + 0, + 1, + 0 + ], + "deps": [ + "cl-lib" + ], + "commit": "92549f9f80067ce32248ad2c05649673d2084fcf", + "sha256": "1dip0d5llr6sjisww283051s21ir8d5nzjdh22k3fjnz68mqq63s" } }, { @@ -99147,14 +101722,14 @@ "repo": "joostkremers/writeroom-mode", "unstable": { "version": [ - 20200303, - 2331 + 20200409, + 1927 ], "deps": [ "visual-fill-column" ], - "commit": "20c761b80031f2b44b9d9fb476e044e477359016", - "sha256": "1kx2xhvi579vhajvgl4spf9jd597fqa2bjh16yqfx2nikissvkhy" + "commit": "9b6e55fe49ab7760a826179df4f1c3b6c9a759df", + "sha256": "0kf88big78lnc2gxn00sykwi1ky4hacr7al2ihgwpznq9vbrj3p1" }, "stable": { "version": [ @@ -99253,20 +101828,20 @@ "repo": "redguardtoo/wucuo", "unstable": { "version": [ - 20200116, - 1447 + 20200421, + 441 ], - "commit": "92e562077cc21dbe285ad2fa7b171c8aae7b556f", - "sha256": "0wbmprg7nbwwpxffknkrg662v0dzdvlipz9f104bhaxvfcmy36ij" + "commit": "2b7632813fdbbfe5abddf7ce425dea607c9946cc", + "sha256": "1h3d7qqajwl9zm5j77y5s3s9sq0hpdakbapsd34xg2x87v0p1320" }, "stable": { "version": [ 0, - 0, - 7 + 1, + 0 ], - "commit": "92e562077cc21dbe285ad2fa7b171c8aae7b556f", - "sha256": "0wbmprg7nbwwpxffknkrg662v0dzdvlipz9f104bhaxvfcmy36ij" + "commit": "2b7632813fdbbfe5abddf7ce425dea607c9946cc", + "sha256": "1h3d7qqajwl9zm5j77y5s3s9sq0hpdakbapsd34xg2x87v0p1320" } }, { @@ -99422,11 +101997,11 @@ "repo": "xahlee/xah-fly-keys", "unstable": { "version": [ - 20200311, - 1947 + 20200424, + 2358 ], - "commit": "bdaf860b9e5ff9514890b991ddd45033513c4ac3", - "sha256": "0g2xb5mdg07ip1isvhzdwxvvxbjvv3xarkrfblgq0fai82f6yzpv" + "commit": "b0d87ab312a51ab8484deb8994e4effb3112d516", + "sha256": "1ivlcxm423syd35njrpnswdra3f30fqsfr6qdffiy6vajy0ykda7" } }, { @@ -99452,11 +102027,11 @@ "repo": "xahlee/lookup-word-on-internet", "unstable": { "version": [ - 20200225, - 31 + 20200420, + 1528 ], - "commit": "5ddd01520ca49d459f67567901fc08c84aa553bd", - "sha256": "07fx4vypgim39rw022v5m7gfp68095s393j8s28k2j038jqgzdp5" + "commit": "c97a43dc0cebbfc519d0cce5b547dcc5e22b2085", + "sha256": "1qkazkisgw5c9xzxqm6xzm124r1v4d4dcyazvw66nz5j2zl1i5qd" } }, { @@ -99905,14 +102480,11 @@ "repo": "atomontage/xterm-color", "unstable": { "version": [ - 20200103, - 1327 + 20200424, + 2025 ], - "deps": [ - "cl-lib" - ], - "commit": "4b21b619841c93c4700039a93eb1881beee9248c", - "sha256": "1v4i74xdp26k9r1nvbdz625l62acvfb2kkp1nvld05p6xkh0q68z" + "commit": "c389016e029c279c81fe4c0e1d757949b5ef36c0", + "sha256": "16lpjbb49f465h36x22ch84133d0ihbqpfhjh46sncpj22ddj8pl" }, "stable": { "version": [ @@ -99990,6 +102562,57 @@ "sha256": "04j4xwcdxlnrwxs89605zmwxszbi2j0z67v80651pshgnhj5p19i" } }, + { + "ename": "xwwp", + "commit": "83c34ae5023410cc31f93255275d6465b6152a10", + "sha256": "07r62haa1ks2xvfh4zkqadpsjdhk6kbafk1fmvcim3m13ma6gch1", + "fetcher": "github", + "repo": "canatella/xwwp", + "unstable": { + "version": [ + 20200413, + 757 + ], + "commit": "dcf6f9430dd9745e5f2705c0f42e013fab961c0e", + "sha256": "1aks12zbfcq4m4s1baxcdg2xjn2y9f4dw19576yp35hg2cb550v6" + } + }, + { + "ename": "xwwp-follow-link-helm", + "commit": "83c34ae5023410cc31f93255275d6465b6152a10", + "sha256": "0dcbhc4zy4n03fi6pz3k9hlnpk7ys6xx1v6c4rwcjzy5ly80alwq", + "fetcher": "github", + "repo": "canatella/xwwp", + "unstable": { + "version": [ + 20200331, + 800 + ], + "deps": [ + "xwwp" + ], + "commit": "dcf6f9430dd9745e5f2705c0f42e013fab961c0e", + "sha256": "1aks12zbfcq4m4s1baxcdg2xjn2y9f4dw19576yp35hg2cb550v6" + } + }, + { + "ename": "xwwp-follow-link-ivy", + "commit": "83c34ae5023410cc31f93255275d6465b6152a10", + "sha256": "0i5wqj4170iqznghy02dc2g5l5cs76hjhk88dcwwpbss1mabj8ig", + "fetcher": "github", + "repo": "canatella/xwwp", + "unstable": { + "version": [ + 20200331, + 800 + ], + "deps": [ + "xwwp" + ], + "commit": "dcf6f9430dd9745e5f2705c0f42e013fab961c0e", + "sha256": "1aks12zbfcq4m4s1baxcdg2xjn2y9f4dw19576yp35hg2cb550v6" + } + }, { "ename": "yabin", "commit": "cc44b28e32ff9b35f60744a175c2d1e3036db8bc", @@ -100070,8 +102693,8 @@ 20171022, 1412 ], - "commit": "db84dbb30ed39079d34d5eba01cc67af6f7d92de", - "sha256": "1syxgm3a51i3kybbjgjlwlrrgr6rscr4iqam3aa7r55z0hlx8k2r" + "commit": "e844b662819344eb726f67e525f377b9ee808b24", + "sha256": "0d8c70bip8wxpnjqhqf33kq4q2lb2qdk9w2a4bp2v707fpr4pv73" } }, { @@ -100208,11 +102831,11 @@ "repo": "Kungsgeten/yankpad", "unstable": { "version": [ - 20200108, - 1811 + 20200409, + 1747 ], - "commit": "dd97994a8bff58e4d98aa6cb90aa08c5ddde5c82", - "sha256": "114qnr8s5v2dr3v3jvy4aagyi1wbn3fw27mrb6zdg6faxvfpd8sk" + "commit": "acfccf3633d7fd3b91d717fda4ae98e8e3345a06", + "sha256": "0xprfvgfcjdl20j1hxjk3f4gy7m3v0x9p0vyl2ygxmjj7ibgi7kw" }, "stable": { "version": [ @@ -100231,11 +102854,11 @@ "repo": "JorisE/yapfify", "unstable": { "version": [ - 20200117, - 1245 + 20200406, + 830 ], - "commit": "0b4f20af0b00a86353ddc286df26eade89381269", - "sha256": "1k91fav3dvdjkg632zhkmgbjvichbixwqdir4x8lc332ma3wwi0h" + "commit": "3df4e8ce65f55fd69479b3417525ce83a2b00b45", + "sha256": "13q84a4q5bv56r9dhi84jqbkx7dc1bvi42s01ahh8vmdvg4h39d3" }, "stable": { "version": [ @@ -100361,14 +102984,14 @@ "repo": "joaotavora/yasnippet", "unstable": { "version": [ - 20191222, - 2206 + 20200413, + 2221 ], "deps": [ "cl-lib" ], - "commit": "3bf9a3b1af37174a004798b7195826af0123fa6a", - "sha256": "0via9dzw8m5lzymg1h78xkwjssh39zr3g6ccyamlf1rjzjsyxknv" + "commit": "5b1217ab085fab4abeb1118dccb260691b446703", + "sha256": "0486kd8brxwmbmw9bjf0p9i99dyl17hbc5aa03z7psqqlsw713mx" }, "stable": { "version": [ @@ -100409,25 +103032,25 @@ "repo": "AndreaCrotti/yasnippet-snippets", "unstable": { "version": [ - 20200122, - 1140 + 20200425, + 1210 ], "deps": [ "yasnippet" ], - "commit": "612be838d2e50c3601c349d7842702d95e17682a", - "sha256": "1m7iyg7zw1jwv4sq788sv84269nydn7c6xbhvhip8hkddyn03pcl" + "commit": "937cb7bb1921db38ab2c0c62062e8e32a29eabed", + "sha256": "03v855gbr6ii21qw4h8whbzj88xi28sqpnz1yqd1a7ngrc149fgz" }, "stable": { "version": [ 0, - 20 + 22 ], "deps": [ "yasnippet" ], - "commit": "e813c1479a9fb2773d95ddba39c4aa0e7a1c33c5", - "sha256": "095w7cdmfwmmr6426mbq15n0a5izgbmv9408m9yh1pqz5x3v3vsx" + "commit": "e51a259527d685fe767b6ec951ad1940b1131a69", + "sha256": "1xcmx0frialb86z5adi07b6skqks326w3v1xn49c54gxim027i5d" } }, { @@ -100643,6 +103266,21 @@ "sha256": "0yvz7lmid4jcikb9jmc7h2lcry3fdyy809k25nyasj2bk41xqqsd" } }, + { + "ename": "yesterbox", + "commit": "21f684c47e5778c9d46c9f28dae1113197717b78", + "sha256": "1ah4l8zz565jgr52d9n29iv93z7qwmlz9pdjw3l51qhqf79lkf1w", + "fetcher": "github", + "repo": "sje30/yesterbox", + "unstable": { + "version": [ + 20200327, + 52 + ], + "commit": "10591342f1759e25756f5865371a53c132d8b0a0", + "sha256": "0cd77m4zyqs74iz56l4h0k7ccxnxhis0247j4f5mf94s51fn1x7p" + } + }, { "ename": "yoficator", "commit": "5156f01564978718dd99ab3a54f19b6512de5c3c", @@ -100666,11 +103304,11 @@ "repo": "ryuslash/yoshi-theme", "unstable": { "version": [ - 20200307, - 704 + 20200422, + 208 ], - "commit": "25bde9dc4ca380941b6539757371aef91ca35968", - "sha256": "0p3qrp0wrqissbvz8bnpbrj67c2697mq1pni9c247fiijbcnl48j" + "commit": "caa83e4475885a2c9a126630f0feec1ce2eb0c4e", + "sha256": "0sga52lz54c2v08j6m9v3ddv7rlpdcgi9lkxn1cvajm5h60b20r8" }, "stable": { "version": [ @@ -100879,30 +103517,34 @@ }, { "ename": "zephir-mode", - "commit": "5bd901c93ce7f64de6082e801327adbd18fd4517", - "sha256": "0nxm6w7z89q2vvf3bp1p6hb6f2axv9ha85jyiv4k02l46sjprf4j", + "commit": "fac9fb89cbe5c3eea987fadf23db20c214eab4d9", + "sha256": "133m47a54hdsczzmk3wg7f47q314qnw824lkh8zqx0nw68063i79", "fetcher": "github", - "repo": "sergeyklay/zephir-mode", + "repo": "zephir-lang/zephir-mode", "unstable": { "version": [ - 20170918, - 425 + 20200417, + 830 ], "deps": [ "cl-lib", "pkg-info" ], - "commit": "1db4071a014a796120b5c3d0a7f91eb77359eb10", - "sha256": "0kqnihir4rr8ckzz3wn5sz3qwgnvpa8bqw767khn887bpf7qsmiq" + "commit": "4e9618b77dff67c1c7b6fff78605a62311db88b8", + "sha256": "0chh35h479jm0zcjxqyd9v1gzs2adicvyihdls87g8minmwvl19r" }, "stable": { "version": [ 0, - 3, - 3 + 6, + 0 ], - "commit": "243f0fb7fd1dfebf0f0bdf94046b72d1bea4f66c", - "sha256": "0jydy2zcbksi7db7bvfhgdh08np8k4a1yd6q2wq6m3ll2y3zd0w2" + "deps": [ + "cl-lib", + "pkg-info" + ], + "commit": "9adc5cf07a9117d25eaab41867ddde914c6d2f5a", + "sha256": "0g2vfscikz8qa0danvcickcjnz99yjm9jgk3sci094gmgwka3j2y" } }, { @@ -100913,26 +103555,26 @@ "url": "https://gitlab.emacsos.com/sylecn/zero-el", "unstable": { "version": [ - 20200220, - 1619 + 20200405, + 1220 ], "deps": [ "s" ], - "commit": "3e6e45482c223d3a9610fb366e9cc3aab98a7aab", - "sha256": "1qqk419f4y59vadpqf4my75pzgap9maylfbmaw7k2sqwajy2mxnl" + "commit": "729da9f4b99acb744ee6974ed7f3d4e252fd19da", + "sha256": "1bcka4gzcb5r2y5g7a06l05n6ixvs7lm37w4ghvvq12ci2ypzp04" }, "stable": { "version": [ 2, - 6, + 8, 0 ], "deps": [ "s" ], - "commit": "3e6e45482c223d3a9610fb366e9cc3aab98a7aab", - "sha256": "1qqk419f4y59vadpqf4my75pzgap9maylfbmaw7k2sqwajy2mxnl" + "commit": "729da9f4b99acb744ee6974ed7f3d4e252fd19da", + "sha256": "1bcka4gzcb5r2y5g7a06l05n6ixvs7lm37w4ghvvq12ci2ypzp04" } }, { @@ -100972,14 +103614,25 @@ "repo": "efls/zetteldeft", "unstable": { "version": [ - 20200214, - 2052 + 20200415, + 1614 ], "deps": [ "deft" ], - "commit": "301adcf54205a3780aed2988c58420da3feaeb43", - "sha256": "1mhxnmbmxj40774hvazp7n2yhwh9ikhmss4phk3y85gls30lqbyx" + "commit": "cba7554afe740f64adcdc615b5f4ab0e1e47c6a1", + "sha256": "1b1bqz02xh19syyv9w64q9msay84kpq3kkmpdqy8i7mvhsd4cdry" + }, + "stable": { + "version": [ + 0, + 3 + ], + "deps": [ + "deft" + ], + "commit": "271ea573b0a4f265d16108db2ec7c928f3e9aa31", + "sha256": "0y709x03har1sm30vbja3k3vw4p1nfck5zii7cigl4vg0scpcri6" } }, { @@ -100990,11 +103643,11 @@ "repo": "ziglang/zig-mode", "unstable": { "version": [ - 20191023, - 1551 + 20200322, + 131 ], - "commit": "77202ac26ee6091d69d40990fddb1ce6cfcc6dc8", - "sha256": "0d2f6nz99dp3yxr7m8i78lc313qzssm7k4783w6kkvcsbpknazlw" + "commit": "fc7fde327f45533bb73be643e7bda1eda10394b6", + "sha256": "1ld34xs25bysxw9ialrlm6pnp5qbzx94zbb3594ghc2ggz5ph5d5" } }, { @@ -101005,8 +103658,8 @@ "repo": "WillForan/zim-wiki-mode", "unstable": { "version": [ - 20191208, - 2241 + 20200316, + 1223 ], "deps": [ "dokuwiki-mode", @@ -101015,8 +103668,8 @@ "link-hint", "pretty-hydra" ], - "commit": "030fb78600a6782f8746fe547b979bcc9a24f0ed", - "sha256": "0b3rd83mbpyf782jnfv2yfhfq2ffps3wbn31iblyydmv790lpdvx" + "commit": "410fa67d5947b8801b03a58fcb2bd414cb5294f7", + "sha256": "14dmda7ahnflv0db9yzssz7bidz3zsdnxxwnby0y48vcjv94nnl5" } }, { @@ -101042,14 +103695,14 @@ "repo": "dzop/emacs-zmq", "unstable": { "version": [ - 20190812, - 1910 + 20200305, + 2345 ], "deps": [ "cl-lib" ], - "commit": "0544b70bf99b6eb95f46e0fcd788d98da50cb892", - "sha256": "0r9aq933b2pk9m70phfz3ah3dk1c5axmjixcf8cf19sjsv1hcc9x" + "commit": "2aed40aee51d19cbca83d1f1edc23a5f1522dd8d", + "sha256": "1viz4sw4vmnjhhqw68wp8a4ks1751s2dk09gx2gyl8gy5vw2fcg6" }, "stable": { "version": [ @@ -101233,25 +103886,25 @@ }, { "ename": "zoom-window", - "commit": "8a55cc66cc0deb1c24023f638b8e920c9d975859", - "sha256": "0l9683nk2bdm49likk9c55c23qfy6f1pn04drqwd1vhpanz4l4b3", + "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b", + "sha256": "0h4rr6h79g6sh8caa0l0fxssbd02v2llapqmikz72vpsghqg7y57", "fetcher": "github", - "repo": "syohex/emacs-zoom-window", + "repo": "emacsorphanage/zoom-window", "unstable": { "version": [ - 20170302, - 827 + 20200323, + 720 ], - "commit": "cd6ecc103fc30b171bda7daf1f44a550854d0dbf", - "sha256": "1rfhdzwyag32s15ysmf75976nvkx995581afaa4ychj45vwnaqfm" + "commit": "ab14a365f3e496b07f5efc20992f9094ec166f06", + "sha256": "0ah0gfzp0c90vrqmsfd6crl3i6bjqgb78hnpcvvg53gk5i19i4aw" }, "stable": { "version": [ 0, - 5 + 6 ], - "commit": "eefe36d26e04a9f89aad27671d1f06e9d4736ac6", - "sha256": "08splg49ncgfsap3ivpc974wmg22ikshwv33l0i6advjjv9cskhm" + "commit": "ab14a365f3e496b07f5efc20992f9094ec166f06", + "sha256": "0ah0gfzp0c90vrqmsfd6crl3i6bjqgb78hnpcvvg53gk5i19i4aw" } }, { @@ -101400,22 +104053,22 @@ }, { "ename": "zpresent", - "commit": "3aae38ad54490fa650c832fb7d22e2c73b0fb060", - "sha256": "0316qyspmdbg94aw620133ilh8kfpr3db1p2cifgccgcacjv3v5j", - "fetcher": "bitbucket", - "repo": "zck/zpresent.el", + "commit": "d3828ad7599d13728b5571b882344c3ada434b85", + "sha256": "0i1qrb9qplmx9kx1286xypjyy48r9y3cvnlhi06r583adfr02wab", + "fetcher": "hg", + "url": "https://hg.sr.ht/~zck/zpresent", "unstable": { "version": [ - 20180605, - 438 + 20200417, + 309 ], "deps": [ "dash", "org-parser", "request" ], - "commit": "55fc14b66e2ea506247a4e7dd622a9dfe5545c4b", - "sha256": "17wkhl1a7jmg4ks011lf5h4f2vbhf8dl6vgzdzlmljk15f9hmw35" + "commit": "406967322b7692492a5942d901335d626cace4d0", + "sha256": "1nn6dvzcayh6nv6xn3siv09iixc5c3gy9c8y1fdwzq81yny9l2fr" } }, { diff --git a/pkgs/applications/editors/emacs-modes/rect-mark/default.nix b/pkgs/applications/editors/emacs-modes/rect-mark/default.nix index 54e5a89dd9f..4320a88457a 100644 --- a/pkgs/applications/editors/emacs-modes/rect-mark/default.nix +++ b/pkgs/applications/editors/emacs-modes/rect-mark/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation { meta = { description = "Mark a rectangle of text with highlighting"; - homepage = http://emacswiki.org/emacs/RectangleMark; + homepage = "http://emacswiki.org/emacs/RectangleMark"; license = stdenv.lib.licenses.gpl2Plus; platforms = stdenv.lib.platforms.all; diff --git a/pkgs/applications/editors/emacs-modes/session-management-for-emacs/default.nix b/pkgs/applications/editors/emacs-modes/session-management-for-emacs/default.nix index 165e0c13c8f..e4b739af051 100644 --- a/pkgs/applications/editors/emacs-modes/session-management-for-emacs/default.nix +++ b/pkgs/applications/editors/emacs-modes/session-management-for-emacs/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation { (add-hook 'after-init-hook 'session-initialize) */ description = "Small session management for emacs"; - homepage = http://emacs-session.sourceforge.net/; + homepage = "http://emacs-session.sourceforge.net/"; license = "GPL"; }; } diff --git a/pkgs/applications/editors/emacs-modes/sunrise-commander/default.nix b/pkgs/applications/editors/emacs-modes/sunrise-commander/default.nix index fcb37e7ebad..7e611d68a0a 100644 --- a/pkgs/applications/editors/emacs-modes/sunrise-commander/default.nix +++ b/pkgs/applications/editors/emacs-modes/sunrise-commander/default.nix @@ -4,7 +4,7 @@ stdenv.mkDerivation { name = "sunrise-commander-6r435"; src = fetchgit { - url = https://github.com/escherdragon/sunrise-commander.git; + url = "https://github.com/escherdragon/sunrise-commander.git"; rev = "7a44ca7abd9fe79f87934c78d00dc2a91419a4f1"; sha256 = "2909beccc9daaa79e70876ac6547088c2459b624c364dda1886fe4d7adc7708b"; }; @@ -22,7 +22,7 @@ stdenv.mkDerivation { meta = { description = "Two-pane file manager for Emacs based on Dired and inspired by MC"; - homepage = http://www.emacswiki.org/emacs/Sunrise_Commander; + homepage = "http://www.emacswiki.org/emacs/Sunrise_Commander"; license = stdenv.lib.licenses.gpl3Plus; platforms = stdenv.lib.platforms.all; diff --git a/pkgs/applications/editors/emacs-modes/sv-kalender/default.nix b/pkgs/applications/editors/emacs-modes/sv-kalender/default.nix index bcd947983a3..211be0a9089 100644 --- a/pkgs/applications/editors/emacs-modes/sv-kalender/default.nix +++ b/pkgs/applications/editors/emacs-modes/sv-kalender/default.nix @@ -17,6 +17,6 @@ trivialBuild { homepage = "http://bigwalter.net/daniel/elisp/sv-kalender.el"; platforms = platforms.all; license = licenses.gpl3Plus; - maintainers = [ maintainer.rycee ]; + maintainers = [ maintainers.rycee ]; }; } diff --git a/pkgs/applications/editors/emacs-modes/thingatpt-plus/default.nix b/pkgs/applications/editors/emacs-modes/thingatpt-plus/default.nix deleted file mode 100644 index 820919b5321..00000000000 --- a/pkgs/applications/editors/emacs-modes/thingatpt-plus/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ fetchurl, lib, melpaBuild }: - -melpaBuild { - pname = "thingatpt-plus"; - version = "20170307.1539"; - - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/thingatpt+.el"; - sha256 = "1k9y354315gvhbdk0m9xpjx24w1bwrnzlnfiils8xgdwnw4py99a"; - name = "thingatpt+.el"; - }; - - recipe = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/thingatpt+"; - sha256 = "0w031lzjl5phvzsmbbxn2fpziwkmdyxsn08h6b9lxbss1prhx7aa"; - name = "thingatpt-plus"; - }; - - meta = { - homepage = "https://melpa.org/#/thingatpt+"; - license = lib.licenses.gpl2Plus; - }; -} diff --git a/pkgs/applications/editors/emacs-modes/tramp/default.nix b/pkgs/applications/editors/emacs-modes/tramp/default.nix index 3b746c293d8..b87390d4609 100644 --- a/pkgs/applications/editors/emacs-modes/tramp/default.nix +++ b/pkgs/applications/editors/emacs-modes/tramp/default.nix @@ -9,7 +9,7 @@ stdenv.mkDerivation rec { buildInputs = [ emacs texinfo ]; meta = { description = "Transparently access remote files from Emacs. Newer versions than built-in."; - homepage = https://www.gnu.org/software/tramp; + homepage = "https://www.gnu.org/software/tramp"; license = stdenv.lib.licenses.gpl3Plus; platforms = stdenv.lib.platforms.all; }; diff --git a/pkgs/applications/editors/emacs-modes/yaoddmuse/default.nix b/pkgs/applications/editors/emacs-modes/yaoddmuse/default.nix deleted file mode 100644 index 209a99245ec..00000000000 --- a/pkgs/applications/editors/emacs-modes/yaoddmuse/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{stdenv, fetchurl, emacs}: - -stdenv.mkDerivation { - name = "yaoddmuse-0.1.2"; - - src = fetchurl { - url = "http://emacswiki.org/emacs/download/yaoddmuse.el"; - sha256 = "0vlllq3xmnlni0ws226pqxj68nshclbl5rgqv6y11i3yvzgiazr6"; - }; - - phases = [ "buildPhase" "installPhase"]; - - buildInputs = [ emacs ]; - - buildPhase = '' - cp $src yaoddmuse.el - emacs --batch -f batch-byte-compile yaoddmuse.el - ''; - - installPhase = '' - install -d $out/share/emacs/site-lisp - install yaoddmuse.el $out/share/emacs/site-lisp - ''; - - meta = { - description = "Comprehensive Emacs integration with Oddmuse wikis"; - homepage = http://emacswiki.org/emacs/Yaoddmuse; - platforms = stdenv.lib.platforms.all; - }; -} diff --git a/pkgs/applications/editors/emacs-modes/zeitgeist/default.nix b/pkgs/applications/editors/emacs-modes/zeitgeist/default.nix index 9403a51df53..c771f5423a9 100644 --- a/pkgs/applications/editors/emacs-modes/zeitgeist/default.nix +++ b/pkgs/applications/editors/emacs-modes/zeitgeist/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation { meta = { description = "Integreate Emacs with Zeitgeist"; - homepage = http://zeitgeist-project.com/; + homepage = "http://zeitgeist-project.com/"; platforms = stdenv.lib.platforms.all; }; } diff --git a/pkgs/applications/editors/emacs/25.nix b/pkgs/applications/editors/emacs/25.nix index e4643102f0e..1ee2f5d4fe7 100644 --- a/pkgs/applications/editors/emacs/25.nix +++ b/pkgs/applications/editors/emacs/25.nix @@ -121,7 +121,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "The extensible, customizable GNU text editor"; - homepage = https://www.gnu.org/software/emacs/; + homepage = "https://www.gnu.org/software/emacs/"; license = licenses.gpl3Plus; maintainers = with maintainers; [ lovek323 peti the-kenny jwiegley ]; platforms = platforms.all; diff --git a/pkgs/applications/editors/emacs/default.nix b/pkgs/applications/editors/emacs/default.nix index 1ab22a73c63..fc00384c03a 100644 --- a/pkgs/applications/editors/emacs/default.nix +++ b/pkgs/applications/editors/emacs/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchurl, ncurses, xlibsWrapper, libXaw, libXpm +{ stdenv, lib, fetchurl, fetchpatch, ncurses, xlibsWrapper, libXaw, libXpm , Xaw3d, libXcursor, pkgconfig, gettext, libXft, dbus, libpng, libjpeg, libungif , libtiff, librsvg, gconf, libxml2, imagemagick, gnutls, libselinux , alsaLib, cairo, acl, gpm, AppKit, GSS, ImageIO, m17n_lib, libotf @@ -7,7 +7,7 @@ , withNS ? stdenv.isDarwin , withGTK2 ? false, gtk2-x11 ? null , withGTK3 ? true, gtk3-x11 ? null, gsettings-desktop-schemas ? null -, withXwidgets ? false, webkitgtk ? null, wrapGAppsHook ? null +, withXwidgets ? false, webkitgtk ? null, wrapGAppsHook ? null, glib-networking ? null , withCsrc ? true , srcRepo ? false, autoconf ? null, automake ? null, texinfo ? null , siteStart ? ./site-start.el @@ -44,6 +44,11 @@ stdenv.mkDerivation rec { patches = [ ./clean-env.patch ./tramp-detect-wrapped-gvfsd.patch + # unbreak macOS unexec + (fetchpatch { + url = https://github.com/emacs-mirror/emacs/commit/888ffd960c06d56a409a7ff15b1d930d25c56089.patch; + sha256 = "08q3ygdigqwky70r47rcgzlkc5jy82xiq8am5kwwy891wlpl7frw"; + }) ]; postPatch = lib.optionalString srcRepo '' @@ -67,7 +72,7 @@ stdenv.mkDerivation rec { ++ lib.optional (withX && withGTK2) gtk2-x11 ++ lib.optionals (withX && withGTK3) [ gtk3-x11 gsettings-desktop-schemas ] ++ lib.optional (stdenv.isDarwin && withX) cairo - ++ lib.optionals (withX && withXwidgets) [ webkitgtk ] + ++ lib.optionals (withX && withXwidgets) [ webkitgtk glib-networking ] ++ lib.optionals withNS [ AppKit GSS ImageIO ]; hardeningDisable = [ "format" ]; @@ -132,7 +137,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "The extensible, customizable GNU text editor"; - homepage = https://www.gnu.org/software/emacs/; + homepage = "https://www.gnu.org/software/emacs/"; license = licenses.gpl3Plus; maintainers = with maintainers; [ lovek323 peti the-kenny jwiegley adisbladis ]; platforms = platforms.all; diff --git a/pkgs/applications/editors/emacs/macport.nix b/pkgs/applications/editors/emacs/macport.nix index e9307c7e80b..1624e62026a 100644 --- a/pkgs/applications/editors/emacs/macport.nix +++ b/pkgs/applications/editors/emacs/macport.nix @@ -80,7 +80,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "The extensible, customizable text editor"; - homepage = https://www.gnu.org/software/emacs/; + homepage = "https://www.gnu.org/software/emacs/"; license = licenses.gpl3Plus; maintainers = with maintainers; [ jwiegley matthewbauer ]; platforms = platforms.darwin; diff --git a/pkgs/applications/editors/featherpad/default.nix b/pkgs/applications/editors/featherpad/default.nix index e48fba1551e..c6089fd5308 100644 --- a/pkgs/applications/editors/featherpad/default.nix +++ b/pkgs/applications/editors/featherpad/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { buildInputs = [ qtbase qtsvg qtx11extras ]; meta = with stdenv.lib; { description = "Lightweight Qt5 Plain-Text Editor for Linux"; - homepage = https://github.com/tsujan/FeatherPad; + homepage = "https://github.com/tsujan/FeatherPad"; platforms = platforms.linux; maintainers = [ maintainers.flosse ]; license = licenses.gpl3; diff --git a/pkgs/applications/editors/flpsed/default.nix b/pkgs/applications/editors/flpsed/default.nix index cbff8e606f2..3d6aac7e18e 100644 --- a/pkgs/applications/editors/flpsed/default.nix +++ b/pkgs/applications/editors/flpsed/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "WYSIWYG PostScript annotator"; - homepage = http://flpsed.org/flpsed.html; + homepage = "https://flpsed.org/flpsed.html"; license = licenses.gpl3; platforms = platforms.linux; maintainers = with maintainers; [ ]; diff --git a/pkgs/applications/editors/fte/default.nix b/pkgs/applications/editors/fte/default.nix index ab149131b80..f19a264c06a 100644 --- a/pkgs/applications/editors/fte/default.nix +++ b/pkgs/applications/editors/fte/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A free text editor for developers"; - homepage = http://fte.sourceforge.net/; + homepage = "http://fte.sourceforge.net/"; license = licenses.gpl2; maintainers = [ maintainers.volth ]; platforms = platforms.all; diff --git a/pkgs/applications/editors/gnome-builder/default.nix b/pkgs/applications/editors/gnome-builder/default.nix index bda0552e752..c58d12a58f8 100644 --- a/pkgs/applications/editors/gnome-builder/default.nix +++ b/pkgs/applications/editors/gnome-builder/default.nix @@ -5,7 +5,6 @@ , docbook_xsl , docbook_xml_dtd_43 , fetchurl -, fetchpatch , flatpak , gnome3 , libgit2-glib @@ -18,6 +17,7 @@ , jsonrpc-glib , libdazzle , libpeas +, libportal , libxml2 , meson , ninja @@ -39,25 +39,13 @@ stdenv.mkDerivation rec { pname = "gnome-builder"; - version = "3.34.1"; + version = "3.36.0"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "19018pq94cxf6fywd7fsmy98x56by5zfmh140pl530gaaw84cvhb"; + sha256 = "G0nl6DVzb3k6cN2guFIe/XNhFNhKbaq5e8wz62VA0Qo="; }; - patches = [ - # Fix build with Meson 0.52 - (fetchpatch { - url = "https://gitlab.gnome.org/GNOME/gnome-builder/commit/c8b862b491cfbbb4f79b24d7cd90e4fb1f37cb9f.patch"; - sha256 = "0n8kg7nnjqmbnyag1ps6dvrlqrxc94djjncqx10d6y7ijwdxf4w8"; - }) - (fetchpatch { - url = "https://gitlab.gnome.org/GNOME/gnome-builder/commit/da26dfbf78468f5ed724e022b300a07862a95833.patch"; - sha256 = "0psa65bzjpjj7vc5rknv2w2dz3p50jjv10s6j2fd6lpw8j2800k4"; - }) - ]; - nativeBuildInputs = [ appstream-glib desktop-file-utils @@ -65,7 +53,7 @@ stdenv.mkDerivation rec { docbook_xml_dtd_43 gobject-introspection gtk-doc - (meson.override ({ inherit stdenv; })) + meson ninja pkgconfig python3 @@ -80,6 +68,7 @@ stdenv.mkDerivation rec { gnome3.glade libgit2-glib libpeas + libportal vte gspell gtk3 @@ -109,8 +98,6 @@ stdenv.mkDerivation rec { patchShebangs build-aux/meson/post_install.py ''; - NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0"; - mesonFlags = [ "-Dpython_libprefix=${python3.libPrefix}" "-Ddocs=true" @@ -162,9 +149,9 @@ stdenv.mkDerivation rec { currently recommend running gnome-builder inside a nix-shell with appropriate dependencies loaded. ''; - homepage = https://wiki.gnome.org/Apps/Builder; + homepage = "https://wiki.gnome.org/Apps/Builder"; license = licenses.gpl3Plus; - maintainers = gnome3.maintainers; + maintainers = teams.gnome.members; platforms = platforms.linux; }; } diff --git a/pkgs/applications/editors/gnome-latex/default.nix b/pkgs/applications/editors/gnome-latex/default.nix index cfd3a428990..33a32132934 100644 --- a/pkgs/applications/editors/gnome-latex/default.nix +++ b/pkgs/applications/editors/gnome-latex/default.nix @@ -38,7 +38,7 @@ in stdenv.mkDerivation { passthru.updateScript = gnome3.updateScript { packageName = pname; }; meta = with stdenv.lib; { - homepage = https://wiki.gnome.org/Apps/GNOME-LaTeX; + homepage = "https://wiki.gnome.org/Apps/GNOME-LaTeX"; description = "A LaTeX editor for the GNOME desktop"; maintainers = [ maintainers.manveru ]; license = licenses.gpl3Plus; diff --git a/pkgs/applications/editors/gobby/default.nix b/pkgs/applications/editors/gobby/default.nix index f194227932d..e3d039e4223 100644 --- a/pkgs/applications/editors/gobby/default.nix +++ b/pkgs/applications/editors/gobby/default.nix @@ -19,7 +19,7 @@ in stdenv.mkDerivation { preConfigure = "./autogen.sh"; meta = with stdenv.lib; { - homepage = http://gobby.0x539.de/; + homepage = "http://gobby.0x539.de/"; description = "A GTK-based collaborative editor supporting multiple documents in one session and a multi-user chat"; license = stdenv.lib.licenses.gpl2Plus; maintainers = [ maintainers.phreedom ]; diff --git a/pkgs/applications/editors/heme/default.nix b/pkgs/applications/editors/heme/default.nix index 4e67fc304b1..7d1830c842b 100644 --- a/pkgs/applications/editors/heme/default.nix +++ b/pkgs/applications/editors/heme/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { ''; meta = with lib; { description = "Portable and fast console hex editor for unix operating systems"; - homepage = http://heme.sourceforge.net/; + homepage = "http://heme.sourceforge.net/"; license = licenses.gpl2; platforms = platforms.linux; maintainers = with maintainers; [ cstrahan ]; diff --git a/pkgs/applications/editors/hexcurse/default.nix b/pkgs/applications/editors/hexcurse/default.nix index c87694321f3..a1b90b83d58 100644 --- a/pkgs/applications/editors/hexcurse/default.nix +++ b/pkgs/applications/editors/hexcurse/default.nix @@ -15,19 +15,19 @@ stdenv.mkDerivation rec { patches = [ # gcc7 compat (fetchpatch { - url = https://github.com/LonnyGomes/hexcurse/commit/d808cb7067d1df067f8b707fabbfaf9f8931484c.patch; + url = "https://github.com/LonnyGomes/hexcurse/commit/d808cb7067d1df067f8b707fabbfaf9f8931484c.patch"; sha256 = "0h8345blmc401c6bivf0imn4cwii67264yrzxg821r46wrnfvyi2"; }) # gcc7 compat (fetchpatch { - url = https://github.com/LonnyGomes/hexcurse/commit/716b5d58ac859cc240b8ccb9cbd79ace3e0593c1.patch; + url = "https://github.com/LonnyGomes/hexcurse/commit/716b5d58ac859cc240b8ccb9cbd79ace3e0593c1.patch"; sha256 = "0v6gbp6pjpmnzswlf6d97aywiy015g3kcmfrrkspsbb7lh1y3nix"; }) ]; meta = with lib; { description = "ncurses-based console hexeditor written in C"; - homepage = https://github.com/LonnyGomes/hexcurse; + homepage = "https://github.com/LonnyGomes/hexcurse"; license = licenses.gpl2; platforms = platforms.linux; maintainers = with maintainers; [ cstrahan ]; diff --git a/pkgs/applications/editors/hexdino/default.nix b/pkgs/applications/editors/hexdino/default.nix index 48cd58570f8..79e0027d509 100644 --- a/pkgs/applications/editors/hexdino/default.nix +++ b/pkgs/applications/editors/hexdino/default.nix @@ -17,7 +17,7 @@ rustPlatform.buildRustPackage { meta = with stdenv.lib; { description = "A hex editor with vim like keybindings written in Rust"; - homepage = https://github.com/Luz/hexdino; + homepage = "https://github.com/Luz/hexdino"; license = licenses.mit; maintainers = [ maintainers.luz ]; platforms = platforms.all; diff --git a/pkgs/applications/editors/hexedit/default.nix b/pkgs/applications/editors/hexedit/default.nix index 09191b38e1b..916dd4a1594 100644 --- a/pkgs/applications/editors/hexedit/default.nix +++ b/pkgs/applications/editors/hexedit/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { meta = { description = "View and edit files in hexadecimal or in ASCII"; - homepage = http://prigaux.chez.com/hexedit.html; + homepage = "http://prigaux.chez.com/hexedit.html"; license = stdenv.lib.licenses.gpl2Plus; platforms = stdenv.lib.platforms.unix; }; diff --git a/pkgs/applications/editors/howl/default.nix b/pkgs/applications/editors/howl/default.nix index 5e5f2f8563c..975016d5541 100644 --- a/pkgs/applications/editors/howl/default.nix +++ b/pkgs/applications/editors/howl/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = https://howl.io/; + homepage = "https://howl.io/"; description = "A general purpose, fast and lightweight editor with a keyboard-centric minimalistic user interface"; license = licenses.mit; maintainers = with maintainers; [ pacien ]; diff --git a/pkgs/applications/editors/ht/default.nix b/pkgs/applications/editors/ht/default.nix index fc1fe969bdc..096b69a5e82 100644 --- a/pkgs/applications/editors/ht/default.nix +++ b/pkgs/applications/editors/ht/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "File editor/viewer/analyzer for executables"; - homepage = http://hte.sourceforge.net; + homepage = "http://hte.sourceforge.net"; license = licenses.gpl2; platforms = platforms.linux; maintainers = with maintainers; [ cstrahan ]; diff --git a/pkgs/applications/editors/jedit/default.nix b/pkgs/applications/editors/jedit/default.nix index 21a6a847518..fd8b5337251 100644 --- a/pkgs/applications/editors/jedit/default.nix +++ b/pkgs/applications/editors/jedit/default.nix @@ -3,11 +3,11 @@ let version = "5.2.0"; bcpg = fetchurl { - url = http://central.maven.org/maven2/org/bouncycastle/bcpg-jdk16/1.46/bcpg-jdk16-1.46.jar; + url = "http://central.maven.org/maven2/org/bouncycastle/bcpg-jdk16/1.46/bcpg-jdk16-1.46.jar"; sha256 = "16xhmwks4l65m5x150nd23y5lyppha9sa5fj65rzhxw66gbli82d"; }; jsr305 = fetchurl { - url = http://central.maven.org/maven2/com/google/code/findbugs/jsr305/2.0.0/jsr305-2.0.0.jar; + url = "http://central.maven.org/maven2/com/google/code/findbugs/jsr305/2.0.0/jsr305-2.0.0.jar"; sha256 = "0s74pv8qjc42c7q8nbc0c3b1hgx0bmk3b8vbk1z80p4bbgx56zqy"; }; in @@ -58,7 +58,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Mature programmer's text editor (Java based)"; - homepage = http://www.jedit.org; + homepage = "http://www.jedit.org"; license = licenses.gpl2; platforms = platforms.unix; maintainers = [ maintainers.vbgl ]; diff --git a/pkgs/applications/editors/jetbrains/common.nix b/pkgs/applications/editors/jetbrains/common.nix index bca85c01016..07776bebe42 100644 --- a/pkgs/applications/editors/jetbrains/common.nix +++ b/pkgs/applications/editors/jetbrains/common.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, makeDesktopItem, makeWrapper, patchelf, p7zip +{ stdenv, lib, makeDesktopItem, makeWrapper, patchelf , coreutils, gnugrep, which, git, unzip, libsecret, libnotify }: @@ -19,14 +19,14 @@ with stdenv; lib.makeOverridable mkDerivation rec { comment = lib.replaceChars ["\n"] [" "] meta.longDescription; desktopName = product; genericName = meta.description; - categories = "Application;Development;"; + categories = "Development;"; icon = execName; extraEntries = '' StartupWMClass=${wmClass} ''; }; - nativeBuildInputs = [ makeWrapper patchelf p7zip unzip ]; + nativeBuildInputs = [ makeWrapper patchelf unzip ]; patchPhase = lib.optionalString (!stdenv.isDarwin) '' get_file_size() { diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix index 466d52236d0..282d950c85d 100644 --- a/pkgs/applications/editors/jetbrains/default.nix +++ b/pkgs/applications/editors/jetbrains/default.nix @@ -15,7 +15,7 @@ let inherit name version src wmClass jdk; product = "CLion"; meta = with stdenv.lib; { - homepage = https://www.jetbrains.com/clion/; + homepage = "https://www.jetbrains.com/clion/"; inherit description license; longDescription = '' Enhancing productivity for every C and C++ @@ -83,7 +83,7 @@ let inherit name version src wmClass jdk; product = "DataGrip"; meta = with stdenv.lib; { - homepage = https://www.jetbrains.com/datagrip/; + homepage = "https://www.jetbrains.com/datagrip/"; inherit description license; longDescription = '' DataGrip is a new IDE from JetBrains built for database admins. @@ -100,7 +100,7 @@ let inherit name version src wmClass jdk; product = "Goland"; meta = with stdenv.lib; { - homepage = https://www.jetbrains.com/go/; + homepage = "https://www.jetbrains.com/go/"; inherit description license; longDescription = '' Goland is the codename for a new commercial IDE by JetBrains @@ -125,7 +125,7 @@ let inherit name version src wmClass jdk; product = "IDEA"; meta = with stdenv.lib; { - homepage = https://www.jetbrains.com/idea/; + homepage = "https://www.jetbrains.com/idea/"; inherit description license; longDescription = '' IDE for Java SE, Groovy & Scala development Powerful @@ -143,7 +143,7 @@ let inherit name version src wmClass jdk; product = "PhpStorm"; meta = with stdenv.lib; { - homepage = https://www.jetbrains.com/phpstorm/; + homepage = "https://www.jetbrains.com/phpstorm/"; inherit description license; longDescription = '' PhpStorm provides an editor for PHP, HTML and JavaScript @@ -160,7 +160,7 @@ let inherit name version src wmClass jdk; product = "PyCharm"; meta = with stdenv.lib; { - homepage = https://www.jetbrains.com/pycharm/; + homepage = "https://www.jetbrains.com/pycharm/"; inherit description license; longDescription = '' Python IDE with complete set of tools for productive @@ -187,7 +187,7 @@ let inherit name version src wmClass jdk; product = "Rider"; meta = with stdenv.lib; { - homepage = https://www.jetbrains.com/rider/; + homepage = "https://www.jetbrains.com/rider/"; inherit description license; longDescription = '' JetBrains Rider is a new .NET IDE based on the IntelliJ @@ -213,7 +213,7 @@ let inherit name version src wmClass jdk; product = "RubyMine"; meta = with stdenv.lib; { - homepage = https://www.jetbrains.com/ruby/; + homepage = "https://www.jetbrains.com/ruby/"; inherit description license; longDescription = description; maintainers = with maintainers; [ edwtjo ]; @@ -226,7 +226,7 @@ let inherit name version src wmClass jdk; product = "WebStorm"; meta = with stdenv.lib; { - homepage = https://www.jetbrains.com/webstorm/; + homepage = "https://www.jetbrains.com/webstorm/"; inherit description license; longDescription = '' WebStorm provides an editor for HTML, JavaScript (incl. Node.js), @@ -250,12 +250,12 @@ in clion = buildClion rec { name = "clion-${version}"; - version = "2019.3.4"; /* updated by script */ + version = "2020.1"; /* updated by script */ description = "C/C++ IDE. New. Intelligent. Cross-platform"; license = stdenv.lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz"; - sha256 = "0whd379ck79vhz14yh5g6vpl4cvgw4z9ag4mwgizmd8kbcfnvdxd"; /* updated by script */ + sha256 = "18mbw72vgrzkvjykc23h17qxrxfvhjzhy9rxpi2asw196qalavzp"; /* updated by script */ }; wmClass = "jetbrains-clion"; update-channel = "CLion RELEASE"; # channel's id as in http://www.jetbrains.com/updates/updates.xml @@ -263,12 +263,12 @@ in datagrip = buildDataGrip rec { name = "datagrip-${version}"; - version = "2019.3.3"; /* updated by script */ + version = "2020.1"; /* updated by script */ description = "Your Swiss Army Knife for Databases and SQL"; license = stdenv.lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/datagrip/${name}.tar.gz"; - sha256 = "0zbyiw60gqcqi5bbazmsbs4qzmmxx1q034hs36k1dryf2y02jyih"; /* updated by script */ + sha256 = "1z3asz9fp3xnmbhngar60g8rba83kx987ar67j5m8ws7cijqlzix"; /* updated by script */ }; wmClass = "jetbrains-datagrip"; update-channel = "DataGrip RELEASE"; @@ -276,12 +276,12 @@ in goland = buildGoland rec { name = "goland-${version}"; - version = "2019.3.3"; /* updated by script */ + version = "2020.1"; /* updated by script */ description = "Up and Coming Go IDE"; license = stdenv.lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/go/${name}.tar.gz"; - sha256 = "091ym7vyb0hxzz6a1jfb88x0lj499vjd04bq8swmw14m1akmk3lf"; /* updated by script */ + sha256 = "1qlpx3vfqwpyyxjsknhxvbdhyciwihhl0hkinrpdky6bza1yfgf6"; /* updated by script */ }; wmClass = "jetbrains-goland"; update-channel = "GoLand RELEASE"; @@ -289,12 +289,12 @@ in idea-community = buildIdea rec { name = "idea-community-${version}"; - version = "2019.3.3"; /* updated by script */ + version = "2020.1"; /* updated by script */ description = "Integrated Development Environment (IDE) by Jetbrains, community edition"; license = stdenv.lib.licenses.asl20; src = fetchurl { url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz"; - sha256 = "15rs866fp4lrsqdk13fnbg7ncdfrhky1m5sl90p32v45j90hagrg"; /* updated by script */ + sha256 = "1rgqr7fn1sy0zbkfmrw3ll8jps345br3y4aqhynyr48mxiwi4c7s"; /* updated by script */ }; wmClass = "jetbrains-idea-ce"; update-channel = "IntelliJ IDEA RELEASE"; @@ -302,12 +302,12 @@ in idea-ultimate = buildIdea rec { name = "idea-ultimate-${version}"; - version = "2019.3.3"; /* updated by script */ + version = "2020.1"; /* updated by script */ description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license"; license = stdenv.lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/idea/ideaIU-${version}-no-jbr.tar.gz"; - sha256 = "034aq5lf64apc152xr0889hg2xak2if9n5xl6zvd3f9q9srhivxn"; /* updated by script */ + sha256 = "0lrimmczl49azwsms56l4dg7himzr991a209r921jxa32rdjfq6x"; /* updated by script */ }; wmClass = "jetbrains-idea"; update-channel = "IntelliJ IDEA RELEASE"; @@ -315,12 +315,12 @@ in phpstorm = buildPhpStorm rec { name = "phpstorm-${version}"; - version = "2019.3.3"; /* updated by script */ + version = "2020.1"; /* updated by script */ description = "Professional IDE for Web and PHP developers"; license = stdenv.lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz"; - sha256 = "03ag1a40l1k8sqlywcs7kjn02c65xm3l9riyimg4hx23yi17w18h"; /* updated by script */ + sha256 = "1yvqljjv6004kw2nkpddrsgnigb56rapgs3f1pcvl20h6hj08qj8"; /* updated by script */ }; wmClass = "jetbrains-phpstorm"; update-channel = "PhpStorm RELEASE"; @@ -328,12 +328,12 @@ in pycharm-community = buildPycharm rec { name = "pycharm-community-${version}"; - version = "2019.3.3"; /* updated by script */ + version = "2020.1"; /* updated by script */ description = "PyCharm Community Edition"; license = stdenv.lib.licenses.asl20; src = fetchurl { url = "https://download.jetbrains.com/python/${name}.tar.gz"; - sha256 = "0ly3cdzm4hp4qchdadjmbd39jnqpmpnlk6vgp8s4amsv35b6hydd"; /* updated by script */ + sha256 = "1ld9hh9bxirsv5rwrx7wbmfaxwvxfw7cjfjqi8l0q0n93v89z90s"; /* updated by script */ }; wmClass = "jetbrains-pycharm-ce"; update-channel = "PyCharm RELEASE"; @@ -341,12 +341,12 @@ in pycharm-professional = buildPycharm rec { name = "pycharm-professional-${version}"; - version = "2019.3.3"; /* updated by script */ + version = "2020.1"; /* updated by script */ description = "PyCharm Professional Edition"; license = stdenv.lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/python/${name}.tar.gz"; - sha256 = "1305zvb5n2zqnny4l50qfv7jd1sj4ffhrig4rpfiqg65ncfpypwb"; /* updated by script */ + sha256 = "1swd2qfhsa6i1aq7z2s183d0hif2gmk1kkw9ns4aybny0wvvnqw2"; /* updated by script */ }; wmClass = "jetbrains-pycharm"; update-channel = "PyCharm RELEASE"; @@ -354,12 +354,12 @@ in rider = buildRider rec { name = "rider-${version}"; - version = "2019.3.4"; /* updated by script */ + version = "2020.1.0"; /* updated by script */ description = "A cross-platform .NET IDE based on the IntelliJ platform and ReSharper"; license = stdenv.lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/rider/JetBrains.Rider-${version}.tar.gz"; - sha256 = "17axv0v31dpmjcaij5qpqqm071mwhmf1ahy0y0h96limq8cw9872"; /* updated by script */ + sha256 = "1allpdr7k48nvl8vbvzyn6h81jpklzaqdqivrqqyh8hy9l98w4ws"; /* updated by script */ }; wmClass = "jetbrains-rider"; update-channel = "Rider RELEASE"; @@ -367,12 +367,12 @@ in ruby-mine = buildRubyMine rec { name = "ruby-mine-${version}"; - version = "2019.3.3"; /* updated by script */ + version = "2020.1"; /* updated by script */ description = "The Most Intelligent Ruby and Rails IDE"; license = stdenv.lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz"; - sha256 = "0lkzb3rifr7r23vijcz7rqcxjpykx7dkghiq5prk1zz83hzi4b2j"; /* updated by script */ + sha256 = "1hk6k4f24infw9qj9mxp305nl0bxif6ymdsqg005pskvnyi8v5fi"; /* updated by script */ }; wmClass = "jetbrains-rubymine"; update-channel = "RubyMine RELEASE"; @@ -380,12 +380,12 @@ in webstorm = buildWebStorm rec { name = "webstorm-${version}"; - version = "2019.3.3"; /* updated by script */ + version = "2020.1"; /* updated by script */ description = "Professional IDE for Web and JavaScript development"; license = stdenv.lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz"; - sha256 = "1b7hwqpk96g4il5rbxb8cpqsizgc9k5kb8vkvkcc9xh7qqz02i85"; /* updated by script */ + sha256 = "1c68li5jxsjml0macdb0s04llwwq1hni5z8vq2zdfcn5zm3xwpif"; /* updated by script */ }; wmClass = "jetbrains-webstorm"; update-channel = "WebStorm RELEASE"; diff --git a/pkgs/applications/editors/joe/default.nix b/pkgs/applications/editors/joe/default.nix index 6f5839b3d06..bb227512387 100644 --- a/pkgs/applications/editors/joe/default.nix +++ b/pkgs/applications/editors/joe/default.nix @@ -11,7 +11,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A full featured terminal-based screen editor"; - homepage = https://joe-editor.sourceforge.io; + homepage = "https://joe-editor.sourceforge.io"; license = licenses.gpl2; platforms = platforms.unix; }; diff --git a/pkgs/applications/editors/jucipp/default.nix b/pkgs/applications/editors/jucipp/default.nix index 2682c1e789b..53549986ed2 100644 --- a/pkgs/applications/editors/jucipp/default.nix +++ b/pkgs/applications/editors/jucipp/default.nix @@ -10,7 +10,7 @@ stdenv.mkDerivation rec { version = "1.2.3"; meta = { - homepage = https://github.com/cppit/jucipp; + homepage = "https://github.com/cppit/jucipp"; description = "A lightweight, platform independent C++-IDE with support for C++11, C++14, and experimental C++17 features depending on libclang version"; license = licenses.mit; platforms = platforms.linux; diff --git a/pkgs/applications/editors/jupp/default.nix b/pkgs/applications/editors/jupp/default.nix index 4a44b35a0fa..79db7b8a558 100644 --- a/pkgs/applications/editors/jupp/default.nix +++ b/pkgs/applications/editors/jupp/default.nix @@ -1,18 +1,16 @@ -{ stdenv, fetchurl -, ncurses, gpm -}: +{ stdenv, fetchurl, ncurses, gpm }: stdenv.mkDerivation rec { pname = "jupp"; - version = "3.1"; - srcName = "joe-3.1jupp31"; + version = "39"; + srcName = "joe-3.1${pname}${version}"; src = fetchurl { urls = [ "https://www.mirbsd.org/MirOS/dist/jupp/${srcName}.tgz" "https://pub.allbsd.org/MirOS/dist/jupp/${srcName}.tgz" ]; - sha256 = "1fnf9jsd6p4jyybkhjjs328qx38ywy8w029ngc7j7kqp0ixn0l0s"; + sha256 = "14gys92dy3kq9ikigry7q2x4w5v2z76d97vp212bddrxiqy5np8d"; }; preConfigure = "chmod +x ./configure"; @@ -37,7 +35,7 @@ stdenv.mkDerivation rec { and has a lot of bugs fixed. It is based upon an older version of joe because these behave better overall. ''; - homepage = http://mirbsd.de/jupp; + homepage = "http://www.mirbsd.org/jupp.htm"; license = licenses.gpl1; maintainers = with maintainers; [ AndersonTorres ]; }; diff --git a/pkgs/applications/editors/jupyter/kernel.nix b/pkgs/applications/editors/jupyter/kernel.nix index 43cea9fcae9..fba884f5a2f 100644 --- a/pkgs/applications/editors/jupyter/kernel.nix +++ b/pkgs/applications/editors/jupyter/kernel.nix @@ -67,7 +67,7 @@ in meta = { description = "Wrapper to create jupyter notebook kernel definitions"; - homepage = https://jupyter.org/; + homepage = "https://jupyter.org/"; maintainers = with maintainers; [ aborsu ]; }; }; diff --git a/pkgs/applications/editors/kakoune/default.nix b/pkgs/applications/editors/kakoune/default.nix index 8cb70af40e0..6a468bd67eb 100644 --- a/pkgs/applications/editors/kakoune/default.nix +++ b/pkgs/applications/editors/kakoune/default.nix @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = http://kakoune.org/; + homepage = "http://kakoune.org/"; description = "A vim inspired text editor"; license = licenses.publicDomain; maintainers = with maintainers; [ vrthra ]; diff --git a/pkgs/applications/editors/kdevelop5/kdevelop-pg-qt.nix b/pkgs/applications/editors/kdevelop5/kdevelop-pg-qt.nix index b3315313813..ad83bd43af2 100644 --- a/pkgs/applications/editors/kdevelop5/kdevelop-pg-qt.nix +++ b/pkgs/applications/editors/kdevelop5/kdevelop-pg-qt.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { KDevelop-PG-Qt is the parser-generator from KDevplatform. It is used for some KDevelop-languagesupport-plugins (Ruby, PHP, CSS...). ''; - homepage = https://www.kdevelop.org; + homepage = "https://www.kdevelop.org"; license = with stdenv.lib.licenses; [ lgpl2Plus ]; }; } diff --git a/pkgs/applications/editors/kile/default.nix b/pkgs/applications/editors/kile/default.nix index 494ad686ee3..f928dbb6ad1 100644 --- a/pkgs/applications/editors/kile/default.nix +++ b/pkgs/applications/editors/kile/default.nix @@ -54,7 +54,7 @@ mkDerivation rec { meta = { description = "Kile is a user friendly TeX/LaTeX authoring tool for the KDE desktop environment"; - homepage = https://www.kde.org/applications/office/kile/; + homepage = "https://www.kde.org/applications/office/kile/"; maintainers = with lib.maintainers; [ fridh ]; license = lib.licenses.gpl2Plus; }; diff --git a/pkgs/applications/editors/kodestudio/default.nix b/pkgs/applications/editors/kodestudio/default.nix index 9d0d91f4be5..71fa2bcd41b 100644 --- a/pkgs/applications/editors/kodestudio/default.nix +++ b/pkgs/applications/editors/kodestudio/default.nix @@ -125,8 +125,8 @@ in (with JavaScript coming soon). Using Kha or Kore you can access all hardware at the lowest possible level in a completely portable way. ''; - homepage = http://kode.tech/; - downloadPage = https://github.com/Kode/KodeStudio/releases; + homepage = "http://kode.tech/"; + downloadPage = "https://github.com/Kode/KodeStudio/releases"; license = licenses.mit; maintainers = [ maintainers.patternspandemic ]; platforms = [ "x86_64-linux" "i686-cygwin" ]; diff --git a/pkgs/applications/editors/leafpad/default.nix b/pkgs/applications/editors/leafpad/default.nix index 508d2329edc..94fa0be0173 100644 --- a/pkgs/applications/editors/leafpad/default.nix +++ b/pkgs/applications/editors/leafpad/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A notepad clone for GTK 2.0"; - homepage = http://tarot.freeshell.org/leafpad; + homepage = "http://tarot.freeshell.org/leafpad"; platforms = platforms.linux; maintainers = [ maintainers.flosse ]; license = licenses.gpl3; diff --git a/pkgs/applications/editors/leo-editor/default.nix b/pkgs/applications/editors/leo-editor/default.nix index bd433436eb0..f7c6d80dbf1 100644 --- a/pkgs/applications/editors/leo-editor/default.nix +++ b/pkgs/applications/editors/leo-editor/default.nix @@ -1,19 +1,19 @@ -{ stdenv, python3, fetchFromGitHub, makeWrapper, makeDesktopItem }: +{ lib, mkDerivation, python3, fetchFromGitHub, makeWrapper, wrapQtAppsHook, makeDesktopItem }: -stdenv.mkDerivation rec { +mkDerivation rec { pname = "leo-editor"; - version = "5.7.3"; + version = "6.2"; src = fetchFromGitHub { owner = "leo-editor"; repo = "leo-editor"; rev = version; - sha256 = "0ri6l6cxwva450l05af5vs1lsgrz6ciwd02njdgphs9pm1vwxbl9"; + sha256 = "07f10qwvi3p7bskzxnx5rlhlfrh7rx8v0xdlc4vs2271438j1j2z"; }; dontBuild = true; - nativeBuildInputs = [ makeWrapper python3 ]; + nativeBuildInputs = [ wrapQtAppsHook makeWrapper python3 ]; propagatedBuildInputs = with python3.pkgs; [ pyqt5 docutils ]; desktopItem = makeDesktopItem { @@ -24,11 +24,11 @@ stdenv.mkDerivation rec { comment = meta.description; desktopName = "Leo"; genericName = "Text Editor"; - categories = stdenv.lib.concatStringsSep ";" [ - "Application" "Development" "IDE" "QT" + categories = lib.concatStringsSep ";" [ + "Application" "Development" "IDE" ]; startupNotify = "false"; - mimeType = stdenv.lib.concatStringsSep ";" [ + mimeType = lib.concatStringsSep ";" [ "text/plain" "text/asp" "text/x-c" "text/x-script.elisp" "text/x-fortran" "text/html" "application/inf" "text/x-java-source" "application/x-javascript" "application/javascript" "text/ecmascript" "application/x-ksh" "text/x-script.ksh" @@ -53,10 +53,12 @@ stdenv.mkDerivation rec { makeWrapper ${python3.interpreter} $out/bin/leo \ --set PYTHONPATH "$PYTHONPATH:$out/share/leo-editor" \ --add-flags "-O $out/share/leo-editor/launchLeo.py" + + wrapQtApp $out/bin/leo ''; - meta = with stdenv.lib; { - homepage = http://leoeditor.com; + meta = with lib; { + homepage = "http://leoeditor.com"; description = "A powerful folding editor"; longDescription = "Leo is a PIM, IDE and outliner that accelerates the work flow of programmers, authors and web designers."; license = licenses.mit; diff --git a/pkgs/applications/editors/lighttable/default.nix b/pkgs/applications/editors/lighttable/default.nix index 90e8c73e075..26c5ee42152 100644 --- a/pkgs/applications/editors/lighttable/default.nix +++ b/pkgs/applications/editors/lighttable/default.nix @@ -57,7 +57,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "The next generation code editor"; - homepage = http://www.lighttable.com/; + homepage = "http://www.lighttable.com/"; license = licenses.gpl3; maintainers = [ maintainers.matejc ]; platforms = [ "x86_64-linux" ]; diff --git a/pkgs/applications/editors/manuskript/default.nix b/pkgs/applications/editors/manuskript/default.nix index dc8eb200fff..deeb9b36c71 100644 --- a/pkgs/applications/editors/manuskript/default.nix +++ b/pkgs/applications/editors/manuskript/default.nix @@ -42,7 +42,7 @@ python3Packages.buildPythonApplication rec { meta = { description = "A open-source tool for writers"; - homepage = http://www.theologeek.ch/manuskript; + homepage = "http://www.theologeek.ch/manuskript"; longDescription = '' Manuskript is a tool for those writer who like to organize and plan everything before writing. The snowflake method can help you diff --git a/pkgs/applications/editors/micro/default.nix b/pkgs/applications/editors/micro/default.nix index e6b93f20c48..6a1ee5d196e 100644 --- a/pkgs/applications/editors/micro/default.nix +++ b/pkgs/applications/editors/micro/default.nix @@ -2,7 +2,7 @@ buildGoPackage rec { pname = "micro"; - version = "1.4.1"; + version = "2.0.3"; goPackagePath = "github.com/zyedidia/micro"; @@ -10,16 +10,18 @@ buildGoPackage rec { owner = "zyedidia"; repo = "micro"; rev = "v${version}"; - sha256 = "0m9p6smb5grdazsgr3m1x4rry9ihhlgl9ildhvfp53czrifbx0m5"; + sha256 = "017m9kb3gfrgzd06f1nma1i3m5rb0hzpgdikb86lsyv8ik18y12z"; fetchSubmodules = true; }; subPackages = [ "cmd/micro" ]; - buildFlagsArray = [ "-ldflags=" "-X main.Version=${version}" ]; + buildFlagsArray = [ "-ldflags=" "-X ${goPackagePath}/internal/util.Version=${version}" ]; + + goDeps = ./deps.nix; meta = with stdenv.lib; { - homepage = https://micro-editor.github.io; + homepage = "https://micro-editor.github.io"; description = "Modern and intuitive terminal-based text editor"; license = licenses.mit; maintainers = with maintainers; [ dtzWill ]; diff --git a/pkgs/applications/editors/micro/deps.nix b/pkgs/applications/editors/micro/deps.nix new file mode 100644 index 00000000000..e8ed69a9088 --- /dev/null +++ b/pkgs/applications/editors/micro/deps.nix @@ -0,0 +1,336 @@ +# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix) +[ + { + goPackagePath = "github.com/blang/semver"; + fetch = { + type = "git"; + url = "https://github.com/blang/semver"; + rev = "v3.5.1"; + sha256 = "13ws259bwcibkclbr82ilhk6zadm63kxklxhk12wayklj8ghhsmy"; + }; + } + { + goPackagePath = "github.com/chzyer/logex"; + fetch = { + type = "git"; + url = "https://github.com/chzyer/logex"; + rev = "v1.1.10"; + sha256 = "08pbjj3wx9acavlwyr055isa8a5hnmllgdv5k6ra60l5y1brmlq4"; + }; + } + { + goPackagePath = "github.com/chzyer/readline"; + fetch = { + type = "git"; + url = "https://github.com/chzyer/readline"; + rev = "2972be24d48e"; + sha256 = "104q8dazj8yf6b089jjr82fy9h1g80zyyzvp3g8b44a7d8ngjj6r"; + }; + } + { + goPackagePath = "github.com/chzyer/test"; + fetch = { + type = "git"; + url = "https://github.com/chzyer/test"; + rev = "a1ea475d72b1"; + sha256 = "0rns2aqk22i9xsgyap0pq8wi4cfaxsri4d9q6xxhhyma8jjsnj2k"; + }; + } + { + goPackagePath = "github.com/davecgh/go-spew"; + fetch = { + type = "git"; + url = "https://github.com/davecgh/go-spew"; + rev = "v1.1.1"; + sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y"; + }; + } + { + goPackagePath = "github.com/dustin/go-humanize"; + fetch = { + type = "git"; + url = "https://github.com/dustin/go-humanize"; + rev = "v1.0.0"; + sha256 = "1kqf1kavdyvjk7f8kx62pnm7fbypn9z1vbf8v2qdh3y7z7a0cbl3"; + }; + } + { + goPackagePath = "github.com/gdamore/encoding"; + fetch = { + type = "git"; + url = "https://github.com/gdamore/encoding"; + rev = "v1.0.0"; + sha256 = "1vmm5zll92i2fm4ajqx0gyx0p9j36496x5nabi3y0x7h0inv0pk9"; + }; + } + { + goPackagePath = "github.com/go-errors/errors"; + fetch = { + type = "git"; + url = "https://github.com/go-errors/errors"; + rev = "v1.0.1"; + sha256 = "0rznpknk19rxkr7li6dqs52c26pjazp69lh493l4ny4sxn5922lp"; + }; + } + { + goPackagePath = "github.com/kballard/go-shellquote"; + fetch = { + type = "git"; + url = "https://github.com/kballard/go-shellquote"; + rev = "95032a82bc51"; + sha256 = "1rspvmnsikdq95jmx3dykxd4k1rmgl98ryjrysvl0cf18hl1vq80"; + }; + } + { + goPackagePath = "github.com/kr/pretty"; + fetch = { + type = "git"; + url = "https://github.com/kr/pretty"; + rev = "v0.1.0"; + sha256 = "18m4pwg2abd0j9cn5v3k2ksk9ig4vlwxmlw9rrglanziv9l967qp"; + }; + } + { + goPackagePath = "github.com/kr/pty"; + fetch = { + type = "git"; + url = "https://github.com/kr/pty"; + rev = "v1.1.1"; + sha256 = "0383f0mb9kqjvncqrfpidsf8y6ns5zlrc91c6a74xpyxjwvzl2y6"; + }; + } + { + goPackagePath = "github.com/kr/text"; + fetch = { + type = "git"; + url = "https://github.com/kr/text"; + rev = "v0.1.0"; + sha256 = "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1"; + }; + } + { + goPackagePath = "github.com/lucasb-eyer/go-colorful"; + fetch = { + type = "git"; + url = "https://github.com/lucasb-eyer/go-colorful"; + rev = "v1.0.3"; + sha256 = "12bgz6dxbb2ki1g3x7fg9ipsjgfkd58fp7cdpv63h4kvlj2n7j69"; + }; + } + { + goPackagePath = "github.com/mattn/go-isatty"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-isatty"; + rev = "v0.0.11"; + sha256 = "0h671sv7hfprja495kavazkalkx7xzaqksjh13brcnwq67ijrali"; + }; + } + { + goPackagePath = "github.com/mattn/go-runewidth"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-runewidth"; + rev = "v0.0.7"; + sha256 = "1snr8mk63vz2h44knq26dm81p83887v7kb09iywqmx0nqzngih66"; + }; + } + { + goPackagePath = "github.com/mitchellh/go-homedir"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/go-homedir"; + rev = "v1.1.0"; + sha256 = "0ydzkipf28hwj2bfxqmwlww47khyk6d152xax4bnyh60f4lq3nx1"; + }; + } + { + goPackagePath = "github.com/pmezard/go-difflib"; + fetch = { + type = "git"; + url = "https://github.com/pmezard/go-difflib"; + rev = "v1.0.0"; + sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw"; + }; + } + { + goPackagePath = "github.com/robertkrimen/otto"; + fetch = { + type = "git"; + url = "https://github.com/robertkrimen/otto"; + rev = "c382bd3c16ff"; + sha256 = "043y6l647snsz71mdy84s2d3kn22aj6rbqd6c1vd8absvamqhlxa"; + }; + } + { + goPackagePath = "github.com/sergi/go-diff"; + fetch = { + type = "git"; + url = "https://github.com/sergi/go-diff"; + rev = "v1.1.0"; + sha256 = "0ir8ali2vx0j7pipmlfd6k8c973akyy2nmbjrf008fm800zcp7z2"; + }; + } + { + goPackagePath = "github.com/stretchr/objx"; + fetch = { + type = "git"; + url = "https://github.com/stretchr/objx"; + rev = "v0.1.0"; + sha256 = "19ynspzjdynbi85xw06mh8ad5j0qa1vryvxjgvbnyrr8rbm4vd8w"; + }; + } + { + goPackagePath = "github.com/stretchr/testify"; + fetch = { + type = "git"; + url = "https://github.com/stretchr/testify"; + rev = "v1.4.0"; + sha256 = "187i5g88sxfy4vxpm7dw1gwv29pa2qaq475lxrdh5livh69wqfjb"; + }; + } + { + goPackagePath = "github.com/yuin/gopher-lua"; + fetch = { + type = "git"; + url = "https://github.com/yuin/gopher-lua"; + rev = "ab39c6098bdb"; + sha256 = "13b0rrpv3988qw8rq6z7npajn1my059ybhafi5mxff9jw09k9sja"; + }; + } + { + goPackagePath = "github.com/zyedidia/clipboard"; + fetch = { + type = "git"; + url = "https://github.com/zyedidia/clipboard"; + rev = "241f98e9b197"; + sha256 = "1glc8w30sijpbppcvaf3503rmx5nxqkcgw87dr2pr3q3vv1bg3zi"; + }; + } + { + goPackagePath = "github.com/zyedidia/glob"; + fetch = { + type = "git"; + url = "https://github.com/zyedidia/glob"; + rev = "dd4023a66dc3"; + sha256 = "1vqw4xbqq6j8p5m7mwxvb448w69vjvgzx0ndsfzdh2cxfirwp3y7"; + }; + } + { + goPackagePath = "github.com/zyedidia/highlight"; + fetch = { + type = "git"; + url = "https://github.com/zyedidia/highlight"; + rev = "201131ce5cf5"; + sha256 = "0blaynf32swmqddx2hcrifrfssj9c04kwnbdy42h3kzxihrwz4ps"; + }; + } + { + goPackagePath = "github.com/zyedidia/json5"; + fetch = { + type = "git"; + url = "https://github.com/zyedidia/json5"; + rev = "2da050b1a98d"; + sha256 = "1sgydazf3npr788b4w17ydmlh3fd1zmpriv9b69967ww90ckh2kz"; + }; + } + { + goPackagePath = "github.com/zyedidia/poller"; + fetch = { + type = "git"; + url = "https://github.com/zyedidia/poller"; + rev = "v1.0.1"; + sha256 = "10cjrqfk1j0l55bdbpm7kv4mqc665pngc8avai0p9chq03y2654g"; + }; + } + { + goPackagePath = "github.com/zyedidia/pty"; + fetch = { + type = "git"; + url = "https://github.com/zyedidia/pty"; + rev = "v2.0.0"; + sha256 = "1n946ld8y2v2wfbwsxv8rfaicxbw3w8pk11ryc8iybmw7hkmmf79"; + }; + } + { + goPackagePath = "github.com/zyedidia/tcell"; + fetch = { + type = "git"; + url = "https://github.com/zyedidia/tcell"; + rev = "v1.4.4"; + sha256 = "0d62a9csab15b64y09jcbvq71065wliw4bd5m7lfpl5k8rmrrdyi"; + }; + } + { + goPackagePath = "github.com/zyedidia/terminal"; + fetch = { + type = "git"; + url = "https://github.com/zyedidia/terminal"; + rev = "533c623e2415"; + sha256 = "16l628f3zgl5yp9z5zkfy2hyl2sckw4d6mg3iqv2jjvh4i8yhrsm"; + }; + } + { + goPackagePath = "golang.org/x/sys"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sys"; + rev = "33540a1f6037"; + sha256 = "0fjcv0vzvi6za0b4xmnk3932pr9f9gczzf03y0kgq3ry9rqg169y"; + }; + } + { + goPackagePath = "golang.org/x/text"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/text"; + rev = "v0.3.2"; + sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh"; + }; + } + { + goPackagePath = "golang.org/x/tools"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/tools"; + rev = "90fa682c2a6e"; + sha256 = "03ic2xsy51jw9749wl7gszdbz99iijbd2bckgygl6cm9w5m364ak"; + }; + } + { + goPackagePath = "gopkg.in/check.v1"; + fetch = { + type = "git"; + url = "https://gopkg.in/check.v1"; + rev = "41f04d3bba15"; + sha256 = "0vfk9czmlxmp6wndq8k17rhnjxal764mxfhrccza7nwlia760pjy"; + }; + } + { + goPackagePath = "gopkg.in/sourcemap.v1"; + fetch = { + type = "git"; + url = "https://gopkg.in/sourcemap.v1"; + rev = "v1.0.5"; + sha256 = "08rf2dl13hbnm3fq2cm0nnsspy9fhf922ln23cz5463cv7h62as4"; + }; + } + { + goPackagePath = "gopkg.in/yaml.v2"; + fetch = { + type = "git"; + url = "https://gopkg.in/yaml.v2"; + rev = "v2.2.7"; + sha256 = "0k5xcwkd3wmcx54isk7ck9cwp8fapfhyqdz3f13kxp77cxqizazj"; + }; + } + { + goPackagePath = "layeh.com/gopher-luar"; + fetch = { + type = "git"; + url = "https://github.com/layeh/gopher-luar"; + rev = "v1.0.7"; + sha256 = "1rdbni3q7zajmiy62ccvbfgqjzppk5212wpwks2ba726hvyf85mj"; + }; + } +] diff --git a/pkgs/applications/editors/mindforger/default.nix b/pkgs/applications/editors/mindforger/default.nix index 9cfcf95e78b..82aa38c1449 100644 --- a/pkgs/applications/editors/mindforger/default.nix +++ b/pkgs/applications/editors/mindforger/default.nix @@ -1,6 +1,6 @@ -{ stdenv, fetchurl, qmake, qtbase, qtwebkit }: +{ mkDerivation, stdenv, fetchurl, qmake, qtbase, qtwebkit }: -stdenv.mkDerivation rec { +mkDerivation rec { pname = "mindforger"; version = "1.48.2"; @@ -38,7 +38,7 @@ stdenv.mkDerivation rec { MindForger is actually more than an editor or IDE - it's human mind inspired personal knowledge management tool ''; - homepage = https://www.mindforger.com; + homepage = "https://www.mindforger.com"; license = licenses.gpl2Plus; platforms = platforms.all; }; diff --git a/pkgs/applications/editors/moe/default.nix b/pkgs/applications/editors/moe/default.nix index 4e960524b94..060abda33d0 100644 --- a/pkgs/applications/editors/moe/default.nix +++ b/pkgs/applications/editors/moe/default.nix @@ -33,7 +33,7 @@ stdenv.mkDerivation rec { completion, directory browser, duplicate removal from prompt histories, delimiter matching, text conversion from/to UTF-8, romanization, etc. ''; - homepage = https://www.gnu.org/software/moe/; + homepage = "https://www.gnu.org/software/moe/"; license = licenses.gpl2Plus; maintainers = with maintainers; [ AndersonTorres ]; platforms = platforms.unix; diff --git a/pkgs/applications/editors/music/tuxguitar/default.nix b/pkgs/applications/editors/music/tuxguitar/default.nix index 8522ecf9c78..08841eb5810 100644 --- a/pkgs/applications/editors/music/tuxguitar/default.nix +++ b/pkgs/applications/editors/music/tuxguitar/default.nix @@ -37,7 +37,7 @@ in stdenv.mkDerivation rec { TuxGuitar is a multitrack guitar tablature editor and player written in Java-SWT. It can open GuitarPro, PowerTab and TablEdit files. ''; - homepage = http://www.tuxguitar.com.ar/; + homepage = "http://www.tuxguitar.com.ar/"; license = licenses.lgpl2; maintainers = [ maintainers.ardumont ]; platforms = platforms.linux; diff --git a/pkgs/applications/editors/nano/default.nix b/pkgs/applications/editors/nano/default.nix index 4197792d736..b4ce588050f 100644 --- a/pkgs/applications/editors/nano/default.nix +++ b/pkgs/applications/editors/nano/default.nix @@ -20,11 +20,11 @@ let in stdenv.mkDerivation rec { pname = "nano"; - version = "4.7"; + version = "4.9.1"; src = fetchurl { url = "mirror://gnu/nano/${pname}-${version}.tar.xz"; - sha256 = "1x9nqy2kgaz6087p63i71gdjsqbdc9jjpx1ymlyclfakvsby3h2q"; + sha256 = "0v5s58j3lbg5s6gapl9kjmzph7zgwaam53qspycy2sxaxw65mkaj"; }; nativeBuildInputs = [ texinfo ] ++ optional enableNls gettext; @@ -45,7 +45,7 @@ in stdenv.mkDerivation rec { enableParallelBuilding = true; meta = { - homepage = https://www.nano-editor.org/; + homepage = "https://www.nano-editor.org/"; description = "A small, user-friendly console text editor"; license = licenses.gpl3Plus; maintainers = with maintainers; [ diff --git a/pkgs/applications/editors/nano/nanorc/default.nix b/pkgs/applications/editors/nano/nanorc/default.nix index eab37fba19a..5f3a1ac91bd 100644 --- a/pkgs/applications/editors/nano/nanorc/default.nix +++ b/pkgs/applications/editors/nano/nanorc/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation { meta = { description = "Improved Nano Syntax Highlighting Files"; - homepage = https://github.com/scopatz/nanorc; + homepage = "https://github.com/scopatz/nanorc"; license = stdenv.lib.licenses.gpl3; maintainers = with stdenv.lib.maintainers; [ nequissimus ]; platforms = stdenv.lib.platforms.all; diff --git a/pkgs/applications/editors/neovim/default.nix b/pkgs/applications/editors/neovim/default.nix index 2fff5cdce85..475330a5fe5 100644 --- a/pkgs/applications/editors/neovim/default.nix +++ b/pkgs/applications/editors/neovim/default.nix @@ -112,7 +112,7 @@ in modifications to the core source - Improve extensibility with a new plugin architecture ''; - homepage = https://www.neovim.io; + homepage = "https://www.neovim.io"; # "Contributions committed before b17d96 by authors who did not sign the # Contributor License Agreement (CLA) remain under the Vim license. # Contributions committed after b17d96 are licensed under Apache 2.0 unless diff --git a/pkgs/applications/editors/neovim/neovim-remote.nix b/pkgs/applications/editors/neovim/neovim-remote.nix index c77cfd9c2b6..06beff03f90 100644 --- a/pkgs/applications/editors/neovim/neovim-remote.nix +++ b/pkgs/applications/editors/neovim/neovim-remote.nix @@ -22,7 +22,7 @@ pythonPackages.buildPythonApplication rec { meta = { description = "A tool that helps controlling nvim processes from a terminal"; - homepage = https://github.com/mhinz/neovim-remote/; + homepage = "https://github.com/mhinz/neovim-remote/"; license = licenses.mit; maintainers = with maintainers; [ edanaher ]; platforms = platforms.unix; diff --git a/pkgs/applications/editors/neovim/ruby_provider/Gemfile.lock b/pkgs/applications/editors/neovim/ruby_provider/Gemfile.lock index 6a3f581c4e8..d0827bf2a7f 100644 --- a/pkgs/applications/editors/neovim/ruby_provider/Gemfile.lock +++ b/pkgs/applications/editors/neovim/ruby_provider/Gemfile.lock @@ -14,4 +14,4 @@ DEPENDENCIES neovim BUNDLED WITH - 1.17.2 + 2.1.4 diff --git a/pkgs/applications/editors/neovim/wrapper.nix b/pkgs/applications/editors/neovim/wrapper.nix index c0b97667757..c7d5f764978 100644 --- a/pkgs/applications/editors/neovim/wrapper.nix +++ b/pkgs/applications/editors/neovim/wrapper.nix @@ -95,6 +95,16 @@ let '' + optionalString (configure != {}) '' echo "Generating remote plugin manifest" export NVIM_RPLUGIN_MANIFEST=$out/rplugin.vim + # Some plugins assume that the home directory is accessible for + # initializing caches, temporary files, etc. Even if the plugin isn't + # actively used, it may throw an error as soon as Neovim is launched + # (e.g., inside an autoload script), causing manifest generation to + # fail. Therefore, let's create a fake home directory before generating + # the manifest, just to satisfy the needs of these plugins. + # + # See https://github.com/Yggdroot/LeaderF/blob/v1.21/autoload/lfMru.vim#L10 + # for an example of this behavior. + export HOME="$(mktemp -d)" # Launch neovim with a vimrc file containing only the generated plugin # code. Pass various flags to disable temp file generation # (swap/viminfo) and redirect errors to stderr. diff --git a/pkgs/applications/editors/netbeans/default.nix b/pkgs/applications/editors/netbeans/default.nix index 0fddddbaacf..b2a13e3db7c 100644 --- a/pkgs/applications/editors/netbeans/default.nix +++ b/pkgs/applications/editors/netbeans/default.nix @@ -3,7 +3,7 @@ }: let - version = "11.2"; + version = "11.3"; 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 = "d589481808832c4f0391ee1ecb8e18202cebeee8bd844cb4bdbf6125113b41f9138a34c4c2ef1fdf228294ef8c24b242ffec9ba5fdc4f1d288db4a3f19ba1509"; + sha512 = "ae828836138b5a4156d58df24dd4053be58018cb6b5beb179cb0f4cd8b5db72d2a7356a434d01157aacb78d228732950cf4e3a0b6c725da8e053b6ccd91075d6"; }; buildCommand = '' @@ -60,7 +60,7 @@ stdenv.mkDerivation { description = "An integrated development environment for Java, C, C++ and PHP"; homepage = "https://netbeans.apache.org/"; license = stdenv.lib.licenses.asl20; - maintainers = with stdenv.lib.maintainers; [ sander rszibele ]; + maintainers = with stdenv.lib.maintainers; [ sander rszibele asbachb ]; platforms = stdenv.lib.platforms.unix; }; } diff --git a/pkgs/applications/editors/notepadqq/default.nix b/pkgs/applications/editors/notepadqq/default.nix index efda2c58360..a51f5106930 100644 --- a/pkgs/applications/editors/notepadqq/default.nix +++ b/pkgs/applications/editors/notepadqq/default.nix @@ -32,7 +32,7 @@ mkDerivation rec { enableParallelBuilding = true; meta = with lib; { - homepage = https://notepadqq.com/; + homepage = "https://notepadqq.com/"; description = "Notepad++-like editor for the Linux desktop"; license = licenses.gpl3; platforms = platforms.linux; diff --git a/pkgs/applications/editors/nvi/default.nix b/pkgs/applications/editors/nvi/default.nix index a7a6b35a24a..e28b2b43061 100644 --- a/pkgs/applications/editors/nvi/default.nix +++ b/pkgs/applications/editors/nvi/default.nix @@ -48,7 +48,7 @@ stdenv.mkDerivation { ''; meta = { - homepage = http://www.bostic.com/vi/; + homepage = "http://www.bostic.com/vi/"; description = "The Berkeley Vi Editor"; license = stdenv.lib.licenses.free; }; diff --git a/pkgs/applications/editors/nvpy/default.nix b/pkgs/applications/editors/nvpy/default.nix index 567f4752035..dcf42b55c5c 100644 --- a/pkgs/applications/editors/nvpy/default.nix +++ b/pkgs/applications/editors/nvpy/default.nix @@ -30,7 +30,7 @@ in pythonPackages.buildPythonApplication rec { meta = with pkgs.lib; { description = "A simplenote-syncing note-taking tool inspired by Notational Velocity"; - homepage = https://github.com/cpbotha/nvpy; + homepage = "https://github.com/cpbotha/nvpy"; platforms = platforms.linux; license = licenses.bsd3; }; diff --git a/pkgs/applications/editors/okteta/default.nix b/pkgs/applications/editors/okteta/default.nix index fa63ee90adc..b9d92409198 100644 --- a/pkgs/applications/editors/okteta/default.nix +++ b/pkgs/applications/editors/okteta/default.nix @@ -1,8 +1,8 @@ -{ stdenv, fetchurl, extra-cmake-modules, kdoctools, qtscript, kconfig +{ mkDerivation, stdenv, fetchurl, extra-cmake-modules, kdoctools, qtscript, kconfig , kinit, karchive, kcrash, kcmutils, kconfigwidgets, knewstuff, kparts , qca-qt5, shared-mime-info }: -stdenv.mkDerivation rec { +mkDerivation rec { pname = "okteta"; version = "0.26.3"; diff --git a/pkgs/applications/editors/quartus-prime/default.nix b/pkgs/applications/editors/quartus-prime/default.nix index 6a6ea80ca45..093635b10e4 100644 --- a/pkgs/applications/editors/quartus-prime/default.nix +++ b/pkgs/applications/editors/quartus-prime/default.nix @@ -1,25 +1,58 @@ -{ buildFHSUserEnv, makeDesktopItem, stdenv, lib, requireFile, unstick, cycloneVSupport ? true }: +{ buildFHSUserEnv, makeDesktopItem, writeScript, stdenv, lib, requireFile, unstick, + supportedDevices ? [ "Arria II" "Cyclone V" "Cyclone IV" "Cyclone 10 LP" "MAX II/V" "MAX 10 FPGA" ] }: let + deviceIds = { + "Arria II" = "arria_lite"; + "Cyclone V" = "cyclonev"; + "Cyclone IV" = "cyclone"; + "Cyclone 10 LP" = "cyclone10lp"; + "MAX II/V" = "max"; + "MAX 10 FPGA" = "max10"; + }; + + supportedDeviceIds = + assert lib.assertMsg (lib.all (name: lib.hasAttr name deviceIds) supportedDevices) + "Supported devices are: ${lib.concatStringsSep ", " (lib.attrNames deviceIds)}"; + lib.listToAttrs (map (name: { + inherit name; + value = deviceIds.${name}; + }) supportedDevices); + + unsupportedDeviceIds = lib.filterAttrs (name: value: + !(lib.hasAttr name supportedDeviceIds) + ) deviceIds; + quartus = stdenv.mkDerivation rec { version = "19.1.0.670"; - pname = "quartus-prime-lite"; + pname = "quartus-prime-lite-unwrapped"; src = let require = {name, sha256}: requireFile { inherit name sha256; url = "${meta.homepage}/${lib.versions.majorMinor version}/?edition=lite&platform=linux"; }; + + hashes = { + "arria_lite" = "1flj9w0vb2p9f9zll136izr6qvmxn0lg72bvaqxs3sxc9vj06wm1"; + "cyclonev" = "0bqxpvjgph0y6slk0jq75mcqzglmqkm0jsx10y9xz5llm6zxzqab"; + "cyclone" = "0pzs8y4s3snxg4g6lrb21qi88abm48g279xzd98qv17qxb2z82rr"; + "cyclone10lp" = "1ccxq8n20y40y47zddkijcv41w3cddvydddr3m4844q31in3nxha"; + "max" = "1cxzbqscxvlcy74dpqmvlnxjyyxfwcx3spygpvpwi6dfj3ipgm2z"; + "max10" = "14k83javivbk65mpb17wdwsyb8xk7x9gzj9x0wnd24mmijrvdy9s"; + }; + + devicePackages = map (id: { + name = "${id}-${version}.qdz"; + sha256 = lib.getAttr id hashes; + }) (lib.attrValues supportedDeviceIds); in map require ([{ name = "QuartusLiteSetup-${version}-linux.run"; sha256 = "15vxvqxqdk29ahlw3lkm1nzxyhzy4626wb9s5f2h6sjgq64r8m7f"; } { name = "ModelSimSetup-${version}-linux.run"; sha256 = "0j1vfr91jclv88nam2plx68arxmz4g50sqb840i60wqd5b0l3y6r"; - }] ++ lib.optional cycloneVSupport { - name = "cyclonev-${version}.qdz"; - sha256 = "0bqxpvjgph0y6slk0jq75mcqzglmqkm0jsx10y9xz5llm6zxzqab"; - }); + }] ++ devicePackages); nativeBuildInputs = [ unstick ]; @@ -37,27 +70,22 @@ let disabledComponents = [ "quartus_help" "quartus_update" + # not modelsim_ase "modelsim_ae" - # Devices - "arria_lite" - "cyclone" - "cyclone10lp" - "max" - "max10" - ] ++ lib.optional (!cycloneVSupport) "cyclonev"; + ] ++ (lib.attrValues unsupportedDeviceIds); in '' - ${lib.concatMapStringsSep "\n" copyInstaller installers} - ${lib.concatMapStringsSep "\n" copyComponent components} + ${lib.concatMapStringsSep "\n" copyInstaller installers} + ${lib.concatMapStringsSep "\n" copyComponent components} - unstick $TEMP/${(builtins.head installers).name} \ - --disable-components ${lib.concatStringsSep "," disabledComponents} \ - --mode unattended --installdir $out --accept_eula 1 + unstick $TEMP/${(builtins.head installers).name} \ + --disable-components ${lib.concatStringsSep "," disabledComponents} \ + --mode unattended --installdir $out --accept_eula 1 - # This patch is from https://wiki.archlinux.org/index.php/Altera_Design_Software - patch --force --strip 0 --directory $out < ${./vsim.patch} + # This patch is from https://wiki.archlinux.org/index.php/Altera_Design_Software + patch --force --strip 0 --directory $out < ${./vsim.patch} - rm -r $out/uninstall $out/logs - ''; + rm -r $out/uninstall $out/logs + ''; meta = { homepage = "https://fpgasoftware.intel.com"; @@ -69,17 +97,17 @@ let }; desktopItem = makeDesktopItem { - name = quartus.name; + name = "quartus-prime-lite"; exec = "quartus"; icon = "quartus"; desktopName = "Quartus"; - genericName = "Quartus FPGA IDE"; + genericName = "Quartus Prime"; categories = "Development;"; }; # I think modelsim_ase/linux/vlm checksums itself, so use FHSUserEnv instead of `patchelf` -in buildFHSUserEnv { - name = "quartus-prime-lite"; +in buildFHSUserEnv rec { + name = "quartus-prime-lite"; # wrapped targetPkgs = pkgs: with pkgs; [ # quartus requirements @@ -110,10 +138,43 @@ in buildFHSUserEnv { xorg.libXrender ]; - extraInstallCommands = '' - mkdir -p $out/share/applications - cp ${desktopItem}/share/applications/* $out/share/applications + passthru = { + unwrapped = quartus; + }; + + extraInstallCommands = let + quartusExecutables = (map (c: "quartus/bin/quartus_${c}") [ + "asm" "cdb" "cpf" "drc" "eda" "fit" "jbcc" "jli" "map" "pgm" "pow" + "sh" "si" "sim" "sta" "stp" "tan" + ]) ++ [ "quartus/bin/quartus" ]; + + qsysExecutables = map (c: "quartus/sopc_builder/bin/qsys-${c}") [ + "generate" "edit" "script" + ]; + # Should we install all executables ? + modelsimExecutables = map (c: "modelsim_ase/bin/${c}") [ + "vsim" "vlog" "vlib" + ]; + in '' + mkdir -p $out/share/applications $out/share/icons/128x128 + ln -s ${desktopItem}/share/applications/* $out/share/applications + ln -s ${quartus}/licenses/images/dc_quartus_panel_logo.png $out/share/icons/128x128/quartus.png + + mkdir -p $out/quartus/bin $out/quartus/sopc_builder/bin $out/modelsim_ase/bin + WRAPPER=$out/bin/${name} + EXECUTABLES="${lib.concatStringsSep " " (quartusExecutables ++ qsysExecutables ++ modelsimExecutables)}" + for executable in $EXECUTABLES; do + echo "#!${stdenv.shell}" >> $out/$executable + echo "$WRAPPER ${quartus}/$executable \$@" >> $out/$executable + done + + cd $out + chmod +x $EXECUTABLES + # link into $out/bin so executables become available on $PATH + ln --symbolic --relative --target-directory ./bin $EXECUTABLES ''; - runScript = "${quartus}/quartus/bin/quartus"; + runScript = writeScript "${name}-wrapper" '' + exec $@ + ''; } diff --git a/pkgs/applications/editors/quilter/default.nix b/pkgs/applications/editors/quilter/default.nix index 338708e3f82..9bc8e1bc920 100644 --- a/pkgs/applications/editors/quilter/default.nix +++ b/pkgs/applications/editors/quilter/default.nix @@ -4,13 +4,13 @@ stdenv.mkDerivation rec { pname = "quilter"; - version = "2.1.2"; + version = "2.2.2"; src = fetchFromGitHub { owner = "lainsce"; repo = pname; rev = version; - sha256 = "1nk6scn98kb43h056ajycpj71jkx7b9p5g05khgl6bwj9hvjvcbw"; + sha256 = "1bgsbcx09ca063kdqfc7nigly99d7xgx2cbkpk1nkhr0hvkyg9l9"; }; nativeBuildInputs = [ diff --git a/pkgs/applications/editors/qxmledit/default.nix b/pkgs/applications/editors/qxmledit/default.nix new file mode 100644 index 00000000000..cb658e8fcda --- /dev/null +++ b/pkgs/applications/editors/qxmledit/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchFromGitHub, + qmake, qtbase, qtxmlpatterns, qtsvg, qtscxml, qtquick1, libGLU }: + +stdenv.mkDerivation rec { + name = "qxmledit-${version}" ; + version = "0.9.15" ; + src = fetchFromGitHub ( stdenv.lib.importJSON ./qxmledit.json ) ; + nativeBuildInputs = [ qmake ] ; + buildInputs = [ qtbase qtxmlpatterns qtsvg qtscxml qtquick1 libGLU ] ; + qmakeFlags = [ "CONFIG+=release" ] ; + outputs = [ "out" "doc" ] ; + + preConfigure = '' + export QXMLEDIT_INST_DATA_DIR="$out/share/data" + export QXMLEDIT_INST_TRANSLATIONS_DIR="$out/share/i18n" + export QXMLEDIT_INST_INCLUDE_DIR="$out/include" + export QXMLEDIT_INST_DIR="$out/bin" + export QXMLEDIT_INST_LIB_DIR="$out/lib" + export QXMLEDIT_INST_DOC_DIR="$doc" + ''; + + meta = with stdenv.lib; { + description = "Simple XML editor based on qt libraries" ; + homepage = "https://sourceforge.net/projects/qxmledit"; + license = licenses.lgpl2; + platforms = platforms.all; + } ; +} diff --git a/pkgs/applications/editors/qxmledit/qxmledit.json b/pkgs/applications/editors/qxmledit/qxmledit.json new file mode 100644 index 00000000000..3b50532d6a0 --- /dev/null +++ b/pkgs/applications/editors/qxmledit/qxmledit.json @@ -0,0 +1,6 @@ +{ + "owner": "lbellonda", + "repo": "qxmledit", + "rev": "6136dca50ceb3b4447c91a7a18dcf84785ea11d1", + "sha256": "1wcnphalwf0a5gz9r44jgk8wcv1w2qipbwjkbzkra2kxanxns834" +} \ No newline at end of file diff --git a/pkgs/applications/editors/retext/default.nix b/pkgs/applications/editors/retext/default.nix index e9742389261..7752313b2a7 100644 --- a/pkgs/applications/editors/retext/default.nix +++ b/pkgs/applications/editors/retext/default.nix @@ -54,7 +54,7 @@ in python.pkgs.buildPythonApplication { ''; meta = with stdenv.lib; { - homepage = https://github.com/retext-project/retext/; + homepage = "https://github.com/retext-project/retext/"; description = "Simple but powerful editor for Markdown and reStructuredText"; license = licenses.gpl3; maintainers = with maintainers; [ klntsky ]; diff --git a/pkgs/applications/editors/rstudio/default.nix b/pkgs/applications/editors/rstudio/default.nix index f10578b1168..3fe845a067b 100644 --- a/pkgs/applications/editors/rstudio/default.nix +++ b/pkgs/applications/editors/rstudio/default.nix @@ -1,4 +1,4 @@ -{ lib, mkDerivation, fetchurl, fetchFromGitHub, makeDesktopItem, cmake, boost, zlib +{ lib, mkDerivation, fetchurl, fetchpatch, fetchFromGitHub, makeDesktopItem, cmake, boost, zlib , openssl, R, qtbase, qtxmlpatterns, qtsensors, qtwebengine, qtwebchannel , libuuid, hunspellDicts, unzip, ant, jdk, gnumake, makeWrapper, pandoc , llvmPackages @@ -8,7 +8,7 @@ with lib; let verMajor = "1"; verMinor = "2"; - verPatch = "5033"; + verPatch = "5042"; version = "${verMajor}.${verMinor}.${verPatch}"; ginVer = "2.1.2"; gwtVer = "2.8.1"; @@ -26,11 +26,19 @@ mkDerivation rec { owner = "rstudio"; repo = "rstudio"; rev = "v${version}"; - sha256 = "0f3p2anz9xay2859bxj3bvyj582igsp628qxsccpkgn0jifvi4np"; + sha256 = "1n67fa357v51j3z1ma8v2ydfsx3y8n10k2svmfcf4mdzsi8w0kc5"; }; # Hack RStudio to only use the input R and provided libclang. - patches = [ ./r-location.patch ./clang-location.patch ]; + patches = [ ./r-location.patch ./clang-location.patch + (fetchpatch { + # Fetch a patch to ensure Rstudio compiles against R + # 4.0.0, should be removed next 1.2.X Rstudio update + # or possibly 1.3.X + url = "https://github.com/rstudio/rstudio/commit/3fb2397c2f208bb8ace0bbaf269481ccb96b5b20.patch"; + sha256 = "0qpgjy6aash0fc0xbns42cwpj3nsw49nkbzwyq8az01xwg81g0f3"; + }) + ]; postPatch = '' substituteInPlace src/cpp/core/r_util/REnvironmentPosix.cpp --replace '@R@' ${R} substituteInPlace src/cpp/core/libclang/LibClang.cpp \ @@ -57,7 +65,7 @@ mkDerivation rec { dictionaries = largeDicts ++ otherDicts; mathJaxSrc = fetchurl { - url = https://s3.amazonaws.com/rstudio-buildtools/mathjax-26.zip; + url = "https://s3.amazonaws.com/rstudio-buildtools/mathjax-26.zip"; sha256 = "0wbcqb9rbfqqvvhqr1pbqax75wp8ydqdyhp91fbqfqp26xzjv6lk"; }; @@ -127,7 +135,7 @@ mkDerivation rec { meta = with lib; { description = "Set of integrated tools for the R language"; - homepage = https://www.rstudio.com/; + homepage = "https://www.rstudio.com/"; license = licenses.agpl3; maintainers = with maintainers; [ ehmry changlinli ciil ]; platforms = platforms.linux; diff --git a/pkgs/applications/editors/scite/default.nix b/pkgs/applications/editors/scite/default.nix index 78dd0d09541..4e92856fee2 100644 --- a/pkgs/applications/editors/scite/default.nix +++ b/pkgs/applications/editors/scite/default.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation { version = "4.0.5"; src = fetchurl { - url = https://www.scintilla.org/scite405.tgz; + url = "https://www.scintilla.org/scite405.tgz"; sha256 = "0h16wk2986nkkhhdv5g4lxlcn02qwyja24x1r6vf02r1hf46b9q2"; }; @@ -24,7 +24,7 @@ stdenv.mkDerivation { ''; meta = with stdenv.lib; { - homepage = https://www.scintilla.org/SciTE.html; + homepage = "https://www.scintilla.org/SciTE.html"; description = "SCIntilla based Text Editor"; license = licenses.mit; platforms = platforms.linux; diff --git a/pkgs/applications/editors/sigil/default.nix b/pkgs/applications/editors/sigil/default.nix index ac171f60ead..cbb9f7bd5b8 100644 --- a/pkgs/applications/editors/sigil/default.nix +++ b/pkgs/applications/editors/sigil/default.nix @@ -35,7 +35,7 @@ mkDerivation rec { meta = with stdenv.lib; { description = "Free, open source, multi-platform ebook (ePub) editor"; - homepage = https://github.com/Sigil-Ebook/Sigil/; + homepage = "https://github.com/Sigil-Ebook/Sigil/"; license = licenses.gpl3; # currently unmaintained platforms = platforms.linux; diff --git a/pkgs/applications/editors/standardnotes/default.nix b/pkgs/applications/editors/standardnotes/default.nix index 5a13d91aef2..18d9338f909 100644 --- a/pkgs/applications/editors/standardnotes/default.nix +++ b/pkgs/applications/editors/standardnotes/default.nix @@ -1,38 +1,47 @@ -{ stdenv, appimage-run, fetchurl, runtimeShell }: +{ stdenv, appimageTools, autoPatchelfHook, desktop-file-utils + , fetchurl, runtimeShell }: let - version = "3.0.15"; + version = "3.3.3"; + pname = "standardnotes"; + name = "${pname}-${version}"; plat = { - i386-linux = "i386"; - x86_64-linux = "x86_64"; + i386-linux = "-i386"; + x86_64-linux = ""; }.${stdenv.hostPlatform.system}; sha256 = { - i386-linux = "0v2nsis6vb1lnhmjd28vrfxqwwpycv02j0nvjlfzcgj4b3400j7a"; - x86_64-linux = "130n586cw0836zsbwqcz3pp3h0d4ny74ngqs4k4cvfb92556r7xh"; + i386-linux = "2ccdf23588b09d645811e562d4fd7e02ac0e367bf2b34e373d8470d48544036d"; + x86_64-linux = "6366d0a37cbf2cf51008a666e40bada763dd1539173de01e093bcbe4146a6bd8"; }.${stdenv.hostPlatform.system}; -in - -stdenv.mkDerivation { - pname = "standardnotes"; - inherit version; src = fetchurl { - url = "https://github.com/standardnotes/desktop/releases/download/v${version}/standard-notes-${version}-${plat}.AppImage"; + url = "https://github.com/standardnotes/desktop/releases/download/v${version}/standard-notes-${version}${plat}.AppImage"; inherit sha256; }; - buildInputs = [ appimage-run ]; + appimageContents = appimageTools.extract { + inherit name src; + }; - dontUnpack = true; + nativeBuildInputs = [ autoPatchelfHook desktop-file-utils ]; - installPhase = '' - mkdir -p $out/{bin,share} - cp $src $out/share/standardNotes.AppImage - echo "#!${runtimeShell}" > $out/bin/standardnotes - echo "${appimage-run}/bin/appimage-run $out/share/standardNotes.AppImage" >> $out/bin/standardnotes - chmod +x $out/bin/standardnotes $out/share/standardNotes.AppImage +in appimageTools.wrapType2 rec { + inherit name src; + + extraInstallCommands = '' + # directory in /nix/store so readonly + cp -r ${appimageContents}/* $out + cd $out + chmod -R +w $out + mv $out/bin/${name} $out/bin/${pname} + + # fixup and install desktop file + ${desktop-file-utils}/bin/desktop-file-install --dir $out/share/applications \ + --set-key Exec --set-value ${pname} standard-notes.desktop + + rm usr/lib/* AppRun standard-notes.desktop .so* ''; meta = with stdenv.lib; { @@ -41,7 +50,7 @@ stdenv.mkDerivation { Standard Notes is a private notes app that features unmatched simplicity, end-to-end encryption, powerful extensions, and open-source applications. ''; - homepage = https://standardnotes.org; + homepage = "https://standardnotes.org"; license = licenses.agpl3; maintainers = with maintainers; [ mgregoire ]; platforms = [ "i386-linux" "x86_64-linux" ]; diff --git a/pkgs/applications/editors/sublime/2/default.nix b/pkgs/applications/editors/sublime/2/default.nix index 24639f3bfd4..b10008d0c49 100644 --- a/pkgs/applications/editors/sublime/2/default.nix +++ b/pkgs/applications/editors/sublime/2/default.nix @@ -10,8 +10,8 @@ stdenv.mkDerivation rec { fetchurl { name = "sublimetext-2.0.2.tar.bz2"; url = [ - 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%202.0.2.tar.bz2" + "https://download.sublimetext.com/Sublime%20Text%202.0.2.tar.bz2" ]; sha256 = "026g5mppk28lzzzn9ibykcqkrd5msfmg0sc0z8w8jd7v3h28wcq7"; } @@ -19,8 +19,8 @@ stdenv.mkDerivation rec { fetchurl { name = "sublimetext-2.0.2.tar.bz2"; url = [ - 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%202.0.2.tar.bz2" + "https://download.sublimetext.com/Sublime%20Text%202.0.2%20x64.tar.bz2" ]; sha256 = "115b71nbv9mv8cz6bkjwpbdf2ywnjc1zy2d3080f6ck4sqqfvfh1"; }; diff --git a/pkgs/applications/editors/sublime/3/common.nix b/pkgs/applications/editors/sublime/3/common.nix index 8e52237d949..a75233fcf35 100644 --- a/pkgs/applications/editors/sublime/3/common.nix +++ b/pkgs/applications/editors/sublime/3/common.nix @@ -145,7 +145,7 @@ in stdenv.mkDerivation (rec { meta = with stdenv.lib; { description = "Sophisticated text editor for code, markup and prose"; - homepage = https://www.sublimetext.com/; + homepage = "https://www.sublimetext.com/"; maintainers = with maintainers; [ jtojnar wmertens demin-dmitriy zimbatm ]; license = licenses.unfree; platforms = [ "x86_64-linux" "i686-linux" ]; diff --git a/pkgs/applications/editors/supertux-editor/default.nix b/pkgs/applications/editors/supertux-editor/default.nix index 6714f917315..dc18bd694c6 100644 --- a/pkgs/applications/editors/supertux-editor/default.nix +++ b/pkgs/applications/editors/supertux-editor/default.nix @@ -32,7 +32,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Level editor for SuperTux"; - homepage = https://github.com/SuperTux/supertux-editor; + homepage = "https://github.com/SuperTux/supertux-editor"; license = licenses.gpl3Plus; maintainers = with maintainers; [ mathnerd314 ]; platforms = platforms.linux; diff --git a/pkgs/applications/editors/tecoc/default.nix b/pkgs/applications/editors/tecoc/default.nix index 48af4a99dad..3df13260d51 100644 --- a/pkgs/applications/editors/tecoc/default.nix +++ b/pkgs/applications/editors/tecoc/default.nix @@ -55,8 +55,8 @@ stdenv.mkDerivation rec { TECOC is a portable C implementation of TECO-11. ''; - homepage = https://github.com/blakemcbride/TECOC; - license = { url = https://github.com/blakemcbride/TECOC/tree/master/doc/readme-1st.txt; }; + homepage = "https://github.com/blakemcbride/TECOC"; + license = { url = "https://github.com/blakemcbride/TECOC/tree/master/doc/readme-1st.txt"; }; maintainers = [ maintainers.AndersonTorres ]; platforms = platforms.unix; }; diff --git a/pkgs/applications/editors/texmacs/common.nix b/pkgs/applications/editors/texmacs/common.nix index ec2498aa69b..9479295e747 100644 --- a/pkgs/applications/editors/texmacs/common.nix +++ b/pkgs/applications/editors/texmacs/common.nix @@ -62,7 +62,7 @@ rec { Scheme extension language. A native spreadsheet and tools for collaborative authoring are planned for later. ''; - homepage = http://texmacs.org/; + homepage = "http://texmacs.org/"; license = stdenv.lib.licenses.gpl2Plus; }; } diff --git a/pkgs/applications/editors/texmaker/default.nix b/pkgs/applications/editors/texmaker/default.nix index c45025dd80c..0b78ff54c35 100644 --- a/pkgs/applications/editors/texmaker/default.nix +++ b/pkgs/applications/editors/texmaker/default.nix @@ -28,7 +28,7 @@ mkDerivation rec { LaTeX editing with completion, structure viewer, preview, spell checking and support of any compilation chain. ''; - homepage = http://www.xm1math.net/texmaker/; + homepage = "http://www.xm1math.net/texmaker/"; license = licenses.gpl2Plus; platforms = platforms.linux; maintainers = with maintainers; [ cfouche markuskowa ]; diff --git a/pkgs/applications/editors/texstudio/default.nix b/pkgs/applications/editors/texstudio/default.nix index d6db89e5c5e..94837023ca0 100644 --- a/pkgs/applications/editors/texstudio/default.nix +++ b/pkgs/applications/editors/texstudio/default.nix @@ -24,7 +24,7 @@ mkDerivation rec { LaTeX editing with completion, structure viewer, preview, spell checking and support of any compilation chain. ''; - homepage = http://texstudio.sourceforge.net; + homepage = "http://texstudio.sourceforge.net"; license = licenses.gpl2Plus; platforms = [ "x86_64-linux" ]; maintainers = with maintainers; [ ajs124 cfouche ]; diff --git a/pkgs/applications/editors/textadept/default.nix b/pkgs/applications/editors/textadept/default.nix index 85006e51b66..bb771c89010 100644 --- a/pkgs/applications/editors/textadept/default.nix +++ b/pkgs/applications/editors/textadept/default.nix @@ -9,7 +9,7 @@ stdenv.mkDerivation rec { ]; src = fetchhg { - url = http://foicica.com/hg/textadept; + url = "http://foicica.com/hg/textadept"; rev = "textadept_${version}"; sha256 = "0fai8xqddkkprmbf0cf8wwgv7ccfdb1iyim30nppm2m16whkc8fl"; }; @@ -41,7 +41,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "An extensible text editor based on Scintilla with Lua scripting"; - homepage = http://foicica.com/textadept; + homepage = "http://foicica.com/textadept"; license = licenses.mit; maintainers = with maintainers; [ raskin mirrexagon ]; platforms = platforms.linux; diff --git a/pkgs/applications/editors/texworks/default.nix b/pkgs/applications/editors/texworks/default.nix index 8042363f73c..d0347bcb37c 100644 --- a/pkgs/applications/editors/texworks/default.nix +++ b/pkgs/applications/editors/texworks/default.nix @@ -1,30 +1,30 @@ -{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig -, qt5, libsForQt5, hunspell +{ mkDerivation, lib, fetchFromGitHub, cmake, pkg-config +, qtscript, poppler, hunspell , withLua ? true, lua , withPython ? true, python3 }: -stdenv.mkDerivation rec { +mkDerivation rec { pname = "texworks"; - version = "0.6.3"; + version = "0.6.5"; src = fetchFromGitHub { owner = "TeXworks"; repo = "texworks"; rev = "release-${version}"; - sha256 = "1ljfl784z7dmh6f1qacqhc6qhcaqdzw033yswbvpvkkck0lsk2mr"; + sha256 = "1lw1p4iyzxypvjhnav11g6rwf6gx7kyzwy2iprvv8zzpqcdkjp2z"; }; - nativeBuildInputs = [ cmake pkgconfig ]; - buildInputs = [ qt5.qtscript libsForQt5.poppler hunspell ] + nativeBuildInputs = [ cmake pkg-config ]; + buildInputs = [ qtscript poppler hunspell ] ++ lib.optional withLua lua ++ lib.optional withPython python3; cmakeFlags = lib.optional withLua "-DWITH_LUA=ON" ++ lib.optional withPython "-DWITH_PYTHON=ON"; - meta = with stdenv.lib; { + meta = with lib; { description = "Simple TeX front-end program inspired by TeXShop"; - homepage = http://www.tug.org/texworks/; + homepage = "http://www.tug.org/texworks/"; license = licenses.gpl2Plus; maintainers = with maintainers; [ dotlambda ]; platforms = with platforms; linux; diff --git a/pkgs/applications/editors/tweak/default.nix b/pkgs/applications/editors/tweak/default.nix index 6bfce921d0f..3dc7d04ede3 100644 --- a/pkgs/applications/editors/tweak/default.nix +++ b/pkgs/applications/editors/tweak/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "An efficient hex editor"; - homepage = http://www.chiark.greenend.org.uk/~sgtatham/tweak; + homepage = "http://www.chiark.greenend.org.uk/~sgtatham/tweak"; license = licenses.mit; platforms = platforms.linux; }; diff --git a/pkgs/applications/editors/typora/default.nix b/pkgs/applications/editors/typora/default.nix index 09baf383f97..583229eb868 100644 --- a/pkgs/applications/editors/typora/default.nix +++ b/pkgs/applications/editors/typora/default.nix @@ -60,9 +60,9 @@ stdenv.mkDerivation rec { meta = with lib; { description = "A minimal Markdown reading & writing app"; - homepage = https://typora.io; + homepage = "https://typora.io"; license = licenses.unfree; - maintainers = with maintainers; [ jensbin worldofpeace ]; + maintainers = with maintainers; [ jensbin ]; platforms = [ "x86_64-linux"]; }; } diff --git a/pkgs/applications/editors/uemacs/default.nix b/pkgs/applications/editors/uemacs/default.nix index 0a2df6b6d4b..e14a07eb683 100644 --- a/pkgs/applications/editors/uemacs/default.nix +++ b/pkgs/applications/editors/uemacs/default.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation { version = "2014-12-08"; src = fetchgit { - url = git://git.kernel.org/pub/scm/editors/uemacs/uemacs.git; + url = "git://git.kernel.org/pub/scm/editors/uemacs/uemacs.git"; rev = "8841922689769960fa074fbb053cb8507f2f3ed9"; sha256 = "14yq7kpkax111cg6k7i3mnqk7sq7a65krq6qizzj7vvnm7bsj3sd"; }; @@ -28,7 +28,7 @@ stdenv.mkDerivation { buildInputs = [ ncurses ]; meta = with stdenv.lib; { - homepage = https://git.kernel.org/cgit/editors/uemacs/uemacs.git; + homepage = "https://git.kernel.org/cgit/editors/uemacs/uemacs.git"; description = "Torvalds Micro-emacs fork"; longDescription = '' uEmacs/PK 4.0 is a full screen editor based on MicroEMACS 3.9e diff --git a/pkgs/applications/editors/vbindiff/default.nix b/pkgs/applications/editors/vbindiff/default.nix index d1aa59569e6..110b7caaf81 100644 --- a/pkgs/applications/editors/vbindiff/default.nix +++ b/pkgs/applications/editors/vbindiff/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { meta = { description = "A terminal visual binary diff viewer"; - homepage = https://www.cjmweb.net/vbindiff/; + homepage = "https://www.cjmweb.net/vbindiff/"; license = stdenv.lib.licenses.gpl2Plus; platforms = stdenv.lib.platforms.unix; }; diff --git a/pkgs/applications/editors/vim/common.nix b/pkgs/applications/editors/vim/common.nix index 03b7d57b49d..8bdc0c0753c 100644 --- a/pkgs/applications/editors/vim/common.nix +++ b/pkgs/applications/editors/vim/common.nix @@ -1,12 +1,12 @@ { lib, fetchFromGitHub }: rec { - version = "8.2.0343"; + version = "8.2.0510"; src = fetchFromGitHub { owner = "vim"; repo = "vim"; rev = "v${version}"; - sha256 = "063i52h8v7f87zamrw2ph057f0x2nzwf1s0izrm2psy41cyf4wa3"; + sha256 = "16ggwf238pzzkn3ng6n09qz9cgdzha9vc0ghlcxhwilnjh12l7p9"; }; enableParallelBuilding = true; diff --git a/pkgs/applications/editors/vim/configurable.nix b/pkgs/applications/editors/vim/configurable.nix index bb3d571e6f8..3b37c805cdd 100644 --- a/pkgs/applications/editors/vim/configurable.nix +++ b/pkgs/applications/editors/vim/configurable.nix @@ -14,7 +14,7 @@ , features ? "huge" # One of tiny, small, normal, big or huge , wrapPythonDrv ? false -, guiSupport ? config.vim.gui or "gtk3" +, guiSupport ? config.vim.gui or (if stdenv.isDarwin then "gtk2" else "gtk3") , luaSupport ? config.vim.lua or true , perlSupport ? config.vim.perl or false # Perl interpreter , pythonSupport ? config.vim.python or true # Python interpreter diff --git a/pkgs/applications/editors/vim/default.nix b/pkgs/applications/editors/vim/default.nix index ae4e9ac8a9c..95d2076153c 100644 --- a/pkgs/applications/editors/vim/default.nix +++ b/pkgs/applications/editors/vim/default.nix @@ -2,7 +2,7 @@ # default vimrc , vimrc ? fetchurl { name = "default-vimrc"; - url = https://git.archlinux.org/svntogit/packages.git/plain/trunk/archlinux.vim?id=68f6d131750aa778807119e03eed70286a17b1cb; + url = "https://git.archlinux.org/svntogit/packages.git/plain/trunk/archlinux.vim?id=68f6d131750aa778807119e03eed70286a17b1cb"; sha256 = "18ifhv5q9prd175q3vxbqf6qyvkk6bc7d2lhqdk0q78i68kv9y0c"; } # apple frameworks diff --git a/pkgs/applications/editors/vim/macvim.nix b/pkgs/applications/editors/vim/macvim.nix index 92992b8896a..9eabadae3b0 100644 --- a/pkgs/applications/editors/vim/macvim.nix +++ b/pkgs/applications/editors/vim/macvim.nix @@ -143,7 +143,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Vim - the text editor - for macOS"; - homepage = https://github.com/macvim-dev/macvim; + homepage = "https://github.com/macvim-dev/macvim"; license = licenses.vim; maintainers = with maintainers; [ cstrahan lilyball ]; platforms = platforms.darwin; diff --git a/pkgs/applications/editors/vim/qvim.nix b/pkgs/applications/editors/vim/qvim.nix index 81948918a11..0e3a4a15052 100644 --- a/pkgs/applications/editors/vim/qvim.nix +++ b/pkgs/applications/editors/vim/qvim.nix @@ -32,7 +32,7 @@ in { enableParallelBuilding = true; # test this src = fetchgit { - url = https://bitbucket.org/equalsraf/vim-qt.git; + url = "https://bitbucket.org/equalsraf/vim-qt.git"; rev = "refs/tags/package-" + tag; inherit sha256; }; @@ -104,7 +104,7 @@ in { meta = with stdenv.lib; { description = "The most popular clone of the VI editor (Qt GUI fork)"; - homepage = https://bitbucket.org/equalsraf/vim-qt/wiki/Home; + homepage = "https://bitbucket.org/equalsraf/vim-qt/wiki/Home"; license = licenses.vim; maintainers = with maintainers; [ smironov ttuegel ]; platforms = platforms.linux; diff --git a/pkgs/applications/editors/vim/vimacs.nix b/pkgs/applications/editors/vim/vimacs.nix new file mode 100644 index 00000000000..d067b418121 --- /dev/null +++ b/pkgs/applications/editors/vim/vimacs.nix @@ -0,0 +1,34 @@ +{ stdenv, config, vim_configurable, macvim, vimPlugins +, useMacvim ? stdenv.isDarwin && (config.vimacs.macvim or true) +, vimacsExtraArgs ? "" }: + +stdenv.mkDerivation rec { + pname = "vimacs"; + version = vimPackage.version; + vimPackage = if useMacvim then macvim else vim_configurable; + + buildInputs = [ vimPackage vimPlugins.vimacs ]; + + buildCommand = '' + mkdir -p "$out"/bin + cp "${vimPlugins.vimacs}"/share/vim-plugins/vimacs/bin/vim $out/bin/vimacs + substituteInPlace "$out"/bin/vimacs \ + --replace '-vim}' '-@bin@/bin/vim}' \ + --replace '-gvim}' '-@bin@/bin/vim -g}' \ + --replace '--cmd "let g:VM_Enabled = 1"' \ + '--cmd "let g:VM_Enabled = 1" --cmd "set rtp^=@rtp@" ${vimacsExtraArgs}' \ + --replace @rtp@ ${vimPlugins.vimacs.rtp} \ + --replace @bin@ ${vimPackage} + for prog in vm gvm gvimacs vmdiff vimacsdiff + do + ln -s "$out"/bin/vimacs $out/bin/$prog + done + ''; + + meta = with stdenv.lib; { + description = "Vim-Improved eMACS: Emacs emulation for Vim"; + homepage = "http://algorithm.com.au/code/vimacs"; + license = licenses.gpl2Plus; + maintainers = with stdenv.lib.maintainers; [ millerjason ]; + }; +} diff --git a/pkgs/applications/editors/vis/default.nix b/pkgs/applications/editors/vis/default.nix index 1bda6958206..85f78035a0f 100644 --- a/pkgs/applications/editors/vis/default.nix +++ b/pkgs/applications/editors/vis/default.nix @@ -63,7 +63,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A vim like editor"; - homepage = https://github.com/martanne/vis; + homepage = "https://github.com/martanne/vis"; license = licenses.isc; maintainers = with maintainers; [ vrthra ramkromberg ]; platforms = platforms.unix; diff --git a/pkgs/applications/editors/vscode/generic.nix b/pkgs/applications/editors/vscode/generic.nix index a573c518b5d..abd4a55c92b 100644 --- a/pkgs/applications/editors/vscode/generic.nix +++ b/pkgs/applications/editors/vscode/generic.nix @@ -25,7 +25,7 @@ in comment = "Code Editing. Redefined."; genericName = "Text Editor"; exec = executableName; - icon = "@out@/share/pixmaps/code.png"; + icon = "code"; startupNotify = "true"; categories = "Utility;TextEditor;Development;IDE;"; mimeType = "text/plain;inode/directory;"; @@ -37,7 +37,7 @@ in [Desktop Action new-empty-window] Name=New Empty Window Exec=${executableName} --new-window %F - Icon=@out@/share/pixmaps/code.png + Icon=code ''; }; @@ -47,7 +47,7 @@ in comment = "Code Editing. Redefined."; genericName = "Text Editor"; exec = executableName + " --open-url %U"; - icon = "@out@/share/pixmaps/code.png"; + icon = "code"; startupNotify = "true"; categories = "Utility;TextEditor;Development;IDE;"; mimeType = "x-scheme-handler/vscode;"; @@ -83,10 +83,8 @@ in ln -s $out/lib/vscode/bin/${executableName} $out/bin mkdir -p $out/share/applications - substitute $desktopItem/share/applications/${executableName}.desktop $out/share/applications/${executableName}.desktop \ - --subst-var out - substitute $urlHandlerDesktopItem/share/applications/${executableName}-url-handler.desktop $out/share/applications/${executableName}-url-handler.desktop \ - --subst-var out + ln -s $desktopItem/share/applications/${executableName}.desktop $out/share/applications/${executableName}.desktop + ln -s $urlHandlerDesktopItem/share/applications/${executableName}-url-handler.desktop $out/share/applications/${executableName}-url-handler.desktop mkdir -p $out/share/pixmaps cp $out/lib/vscode/resources/app/resources/linux/code.png $out/share/pixmaps/code.png diff --git a/pkgs/applications/editors/vscode/vscode.nix b/pkgs/applications/editors/vscode/vscode.nix index 967cd45946f..371adc36789 100644 --- a/pkgs/applications/editors/vscode/vscode.nix +++ b/pkgs/applications/editors/vscode/vscode.nix @@ -11,15 +11,17 @@ let archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz"; sha256 = { - x86_64-linux = "0i8dmh9w7xgzfjii4m116lavydpfpcp7fxs4bcykf0a779pzwv87"; - x86_64-darwin = "0z0r0dmmzk3k095g7jbrrk9gl1jpb3cai973xrjw17ank1lddcjf"; + x86_64-linux = "1n083pzp2dsz6z6rcl1ldcwhd4i03sjigdfslfardhc4v5lbvmv8"; + x86_64-darwin = "1qk3gscyskf4fwc8i09afr3wsyd1lwwycx6rf02wwh4n9py50b20"; }.${system}; in callPackage ./generic.nix rec { # The update script doesn't correctly change the hash for darwin, so please: # nixpkgs-update: no auto update - version = "1.43.0"; + # Please backport all compatible updates to the stable release. + # This is important for the extension ecosystem. + version = "1.44.2"; pname = "vscode"; executableName = "code" + lib.optionalString isInsiders "-insiders"; @@ -46,8 +48,8 @@ in and code refactoring. It is also customizable, so users can change the editor's theme, keyboard shortcuts, and preferences ''; - homepage = https://code.visualstudio.com/; - downloadPage = https://code.visualstudio.com/Updates; + homepage = "https://code.visualstudio.com/"; + downloadPage = "https://code.visualstudio.com/Updates"; license = licenses.unfree; maintainers = with maintainers; [ eadwu synthetica ]; platforms = [ "x86_64-linux" "x86_64-darwin" ]; diff --git a/pkgs/applications/editors/vscode/vscodium.nix b/pkgs/applications/editors/vscode/vscodium.nix index bffe73ec4f6..fe96223b65f 100644 --- a/pkgs/applications/editors/vscode/vscodium.nix +++ b/pkgs/applications/editors/vscode/vscodium.nix @@ -11,8 +11,8 @@ let archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz"; sha256 = { - x86_64-linux = "139sqaixlcqlpcrn2vkcp9fxvcjgnhn2dwxclxq3bnb814pw7rba"; - x86_64-darwin = "0jkd3p1jqg38z9l22k5w7b45fdnxwrhzlgyhinw7wlqz7zvflkn1"; + x86_64-linux = "141hwj1a2bsgzpfk354dnnmg4ak00fss3xsgqplyk949pbk6v1af"; + x86_64-darwin = "0fi8nz1gayzw5dp6d3m7jsmij3jj4yjg5rk1s9w6falpgka76dm1"; }.${system}; sourceRoot = { @@ -25,7 +25,9 @@ in # The update script doesn't correctly change the hash for darwin, so please: # nixpkgs-update: no auto update - version = "1.43.0"; + # Please backport all compatible updates to the stable release. + # This is important for the extension ecosystem. + version = "1.44.2"; pname = "vscodium"; executableName = "codium"; @@ -49,10 +51,10 @@ in and code refactoring. It is also customizable, so users can change the editor's theme, keyboard shortcuts, and preferences ''; - homepage = https://github.com/VSCodium/vscodium; - downloadPage = https://github.com/VSCodium/vscodium/releases; + homepage = "https://github.com/VSCodium/vscodium"; + downloadPage = "https://github.com/VSCodium/vscodium/releases"; license = licenses.mit; - maintainers = with maintainers; [ synthetica ]; + maintainers = with maintainers; [ synthetica turion ]; platforms = [ "x86_64-linux" "x86_64-darwin" ]; }; } diff --git a/pkgs/applications/editors/wily/default.nix b/pkgs/applications/editors/wily/default.nix index aab3aecd7d6..ac741599bda 100644 --- a/pkgs/applications/editors/wily/default.nix +++ b/pkgs/applications/editors/wily/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "An emulation of ACME"; - homepage = http://wily.sourceforge.net; + homepage = "http://wily.sourceforge.net"; license = licenses.artistic1; maintainers = [ maintainers.vrthra ]; platforms = platforms.unix; diff --git a/pkgs/applications/editors/wxhexeditor/default.nix b/pkgs/applications/editors/wxhexeditor/default.nix index 4725d8143b4..9b0fd592a6a 100644 --- a/pkgs/applications/editors/wxhexeditor/default.nix +++ b/pkgs/applications/editors/wxhexeditor/default.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { patches = [ # https://github.com/EUA/wxHexEditor/issues/90 (fetchpatch { - url = https://github.com/EUA/wxHexEditor/commit/d0fa3ddc3e9dc9b05f90b650991ef134f74eed01.patch; + url = "https://github.com/EUA/wxHexEditor/commit/d0fa3ddc3e9dc9b05f90b650991ef134f74eed01.patch"; sha256 = "1wcb70hrnhq72frj89prcqylpqs74xrfz3kdfdkq84p5qfz9svyj"; }) ./missing-semicolon.patch @@ -43,7 +43,7 @@ stdenv.mkDerivation rec { a good reverse engineer tool like a good hex editor, you welcome. wxHexEditor could edit HDD/SDD disk devices or partitions in raw up to exabyte sizes. ''; - homepage = http://www.wxhexeditor.org/; + homepage = "http://www.wxhexeditor.org/"; license = stdenv.lib.licenses.gpl2; platforms = stdenv.lib.platforms.linux; }; diff --git a/pkgs/applications/editors/xmlcopyeditor/default.nix b/pkgs/applications/editors/xmlcopyeditor/default.nix index eeda097db25..f3270fccdfe 100644 --- a/pkgs/applications/editors/xmlcopyeditor/default.nix +++ b/pkgs/applications/editors/xmlcopyeditor/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A fast, free, validating XML editor"; - homepage = http://xml-copy-editor.sourceforge.net/; + homepage = "http://xml-copy-editor.sourceforge.net/"; license = licenses.gpl2Plus; platforms = platforms.linux; maintainers = with maintainers; [ candeira ]; diff --git a/pkgs/applications/editors/zile/default.nix b/pkgs/applications/editors/zile/default.nix index ae3871bb87a..c7c57a9e3ef 100644 --- a/pkgs/applications/editors/zile/default.nix +++ b/pkgs/applications/editors/zile/default.nix @@ -45,7 +45,7 @@ stdenv.mkDerivation rec { compiles to about 130Kb. ''; - homepage = https://www.gnu.org/software/zile/; + homepage = "https://www.gnu.org/software/zile/"; license = licenses.gpl3Plus; diff --git a/pkgs/applications/gis/grass/default.nix b/pkgs/applications/gis/grass/default.nix index 8734fabfdcf..cb574ffc8f1 100644 --- a/pkgs/applications/gis/grass/default.nix +++ b/pkgs/applications/gis/grass/default.nix @@ -99,7 +99,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; meta = { - homepage = https://grass.osgeo.org/; + homepage = "https://grass.osgeo.org/"; description = "GIS software suite used for geospatial data management and analysis, image processing, graphics and maps production, spatial modeling, and visualization"; license = stdenv.lib.licenses.gpl2Plus; platforms = stdenv.lib.platforms.all; diff --git a/pkgs/applications/gis/qgis/unwrapped.nix b/pkgs/applications/gis/qgis/unwrapped.nix index de436088fa7..2e11f22f517 100644 --- a/pkgs/applications/gis/qgis/unwrapped.nix +++ b/pkgs/applications/gis/qgis/unwrapped.nix @@ -10,7 +10,7 @@ let [ qscintilla-qt5 gdal jinja2 numpy psycopg2 chardet dateutil pyyaml pytz requests urllib3 pygments pyqt5 sip owslib six ]; in mkDerivation rec { - version = "3.10.1"; + version = "3.10.4"; pname = "qgis"; name = "${pname}-unwrapped-${version}"; @@ -18,7 +18,7 @@ in mkDerivation rec { owner = "qgis"; repo = "QGIS"; rev = "final-${lib.replaceStrings ["."] ["_"] version}"; - sha256 = "0xq0nnp7zdqaihqvh5rsi1129g23vnk5ijkpxfzaggafgmhf5hgz"; + sha256 = "0d1rsgjgnnq6jgms5bgppz8lkh4518nf90fk0qvxajdfi9j4jn12"; }; passthru = { @@ -49,7 +49,7 @@ in mkDerivation rec { meta = { description = "A Free and Open Source Geographic Information System"; - homepage = http://www.qgis.org; + homepage = "http://www.qgis.org"; license = lib.licenses.gpl2Plus; platforms = with lib.platforms; linux; maintainers = with lib.maintainers; [ lsix ]; diff --git a/pkgs/applications/gis/saga/default.nix b/pkgs/applications/gis/saga/default.nix index 747777c75af..05f895bdee1 100644 --- a/pkgs/applications/gis/saga/default.nix +++ b/pkgs/applications/gis/saga/default.nix @@ -4,7 +4,7 @@ stdenv.mkDerivation { pname = "saga"; - version = "7.5.0"; + version = "7.6.2"; # See https://groups.google.com/forum/#!topic/nix-devel/h_vSzEJAPXs # for why the have additional buildInputs on darwin @@ -18,13 +18,13 @@ stdenv.mkDerivation { CXXFLAGS = stdenv.lib.optionalString stdenv.cc.isClang "-std=c++11 -Wno-narrowing"; src = fetchurl { - url = "https://sourceforge.net/projects/saga-gis/files/SAGA%20-%207/SAGA%20-%207.5.0/saga-7.5.0.tar.gz"; - sha256 = "0s5195802xwlkb2w4i4vd9ys95d7fnzn5cnnixh1csaqc2x1qp6r"; + url = "https://sourceforge.net/projects/saga-gis/files/SAGA%20-%207/SAGA%20-%207.6.2/saga-7.6.2.tar.gz"; + sha256 = "09j5magmayq2y620kqa490mfd1kpdp3lng2ifcgbrmssc079ybm0"; }; meta = with stdenv.lib; { description = "System for Automated Geoscientific Analyses"; - homepage = http://www.saga-gis.org; + homepage = "http://www.saga-gis.org"; license = licenses.gpl2Plus; maintainers = with maintainers; [ michelk mpickering ]; platforms = with platforms; unix; diff --git a/pkgs/applications/gis/whitebox-tools/default.nix b/pkgs/applications/gis/whitebox-tools/default.nix index a10e62be467..d81a08e2900 100644 --- a/pkgs/applications/gis/whitebox-tools/default.nix +++ b/pkgs/applications/gis/whitebox-tools/default.nix @@ -19,7 +19,7 @@ rustPlatform.buildRustPackage rec { meta = with stdenv.lib; { description = "An advanced geospatial data analysis platform"; - homepage = http://www.uoguelph.ca/~hydrogeo/WhiteboxTools/index.html; + homepage = "http://www.uoguelph.ca/~hydrogeo/WhiteboxTools/index.html"; license = licenses.mit; maintainers = [ maintainers.mpickering ]; platforms = platforms.all; diff --git a/pkgs/applications/graphics/ImageMagick/7.0.nix b/pkgs/applications/graphics/ImageMagick/7.0.nix index 31eebf7d0a9..c07c3957254 100644 --- a/pkgs/applications/graphics/ImageMagick/7.0.nix +++ b/pkgs/applications/graphics/ImageMagick/7.0.nix @@ -80,7 +80,7 @@ stdenv.mkDerivation { ''; meta = with stdenv.lib; { - homepage = http://www.imagemagick.org/; + homepage = "http://www.imagemagick.org/"; description = "A software suite to create, edit, compose, or convert bitmap images"; platforms = platforms.linux ++ platforms.darwin; license = licenses.asl20; diff --git a/pkgs/applications/graphics/ImageMagick/default.nix b/pkgs/applications/graphics/ImageMagick/default.nix index 9cfccc7425b..57ce02bb661 100644 --- a/pkgs/applications/graphics/ImageMagick/default.nix +++ b/pkgs/applications/graphics/ImageMagick/default.nix @@ -96,7 +96,7 @@ stdenv.mkDerivation { ''; meta = with stdenv.lib; { - homepage = http://www.imagemagick.org/; + homepage = "http://www.imagemagick.org/"; description = "A software suite to create, edit, compose, or convert bitmap images"; platforms = platforms.linux ++ platforms.darwin; maintainers = with maintainers; [ the-kenny ]; diff --git a/pkgs/applications/graphics/PythonMagick/default.nix b/pkgs/applications/graphics/PythonMagick/default.nix index e35a0190d8b..487648d07ca 100644 --- a/pkgs/applications/graphics/PythonMagick/default.nix +++ b/pkgs/applications/graphics/PythonMagick/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { buildInputs = [ python python.pkgs.boost imagemagick ]; meta = with stdenv.lib; { - homepage = http://www.imagemagick.org/script/api.php; + homepage = "http://www.imagemagick.org/script/api.php"; license = licenses.imagemagick; description = "PythonMagick provides object oriented bindings for the ImageMagick Library."; }; diff --git a/pkgs/applications/graphics/ahoviewer/default.nix b/pkgs/applications/graphics/ahoviewer/default.nix index 87bddf9099e..c5f1bf86801 100644 --- a/pkgs/applications/graphics/ahoviewer/default.nix +++ b/pkgs/applications/graphics/ahoviewer/default.nix @@ -40,7 +40,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = https://github.com/ahodesuka/ahoviewer; + homepage = "https://github.com/ahodesuka/ahoviewer"; description = "A GTK2 image viewer, manga reader, and booru browser"; maintainers = with maintainers; [ skrzyp xzfc ]; license = licenses.mit; diff --git a/pkgs/applications/graphics/alchemy/default.nix b/pkgs/applications/graphics/alchemy/default.nix index 5132d5950aa..6fc84e088dd 100644 --- a/pkgs/applications/graphics/alchemy/default.nix +++ b/pkgs/applications/graphics/alchemy/default.nix @@ -32,7 +32,7 @@ stdenv.mkDerivation rec { Experimental in nature, Alchemy lets you brainstorm visually to explore an expanded range of ideas and possibilities in a serendipitous way. ''; - homepage = http://al.chemy.org/; + homepage = "http://al.chemy.org/"; license = licenses.gpl3Plus; maintainers = [ maintainers.marcweber ]; platforms = platforms.linux; diff --git a/pkgs/applications/graphics/animbar/default.nix b/pkgs/applications/graphics/animbar/default.nix index c4f1b4218d0..771145d54b6 100644 --- a/pkgs/applications/graphics/animbar/default.nix +++ b/pkgs/applications/graphics/animbar/default.nix @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { names: picket fence animation, barrier grid animation, Moiré animation, to name a few. ''; - homepage = http://animbar.mnim.org; + homepage = "http://animbar.mnim.org"; maintainers = with maintainers; [ leenaars ]; platforms = platforms.linux; license = licenses.gpl3; diff --git a/pkgs/applications/graphics/antimony/default.nix b/pkgs/applications/graphics/antimony/default.nix index 5966d6427ed..363f3b8c84d 100644 --- a/pkgs/applications/graphics/antimony/default.nix +++ b/pkgs/applications/graphics/antimony/default.nix @@ -4,19 +4,19 @@ }: let - gitRev = "6dfe6822e0279a4cc2f1c60e85b42212627285fe"; + gitRev = "8fb4b0929ce84cf375bfb83a9d522ccd80681eaf"; gitBranch = "develop"; gitTag = "0.9.3"; in stdenv.mkDerivation { pname = "antimony"; - version = "2019-10-30"; + version = "2020-03-28"; src = fetchFromGitHub { owner = "mkeeter"; repo = "antimony"; rev = gitRev; - sha256 = "07zlkwlk79czq8dy85b6n3ds3g36l8qy4ix849ady6ia3gm8981j"; + sha256 = "1s0zmq5jmhmb1wcsyaxfmii448g6x8b41mzvb1awlljj85qj0k2s"; }; patches = [ ./paths-fix.patch ]; @@ -29,11 +29,10 @@ in buildInputs = [ libpng python3 python3.pkgs.boost - libGLU libGL qtbase wrapQtAppsHook - ncurses + libGLU libGL qtbase ncurses ]; - nativeBuildInputs = [ cmake flex lemon ]; + nativeBuildInputs = [ cmake flex lemon wrapQtAppsHook ]; cmakeFlags= [ "-DGITREV=${gitRev}" @@ -45,7 +44,7 @@ in meta = with stdenv.lib; { description = "A computer-aided design (CAD) tool from a parallel universe"; - homepage = https://github.com/mkeeter/antimony; + homepage = "https://github.com/mkeeter/antimony"; license = licenses.mit; maintainers = with maintainers; [ rnhmjoj ]; platforms = platforms.linux; diff --git a/pkgs/applications/graphics/apitrace/default.nix b/pkgs/applications/graphics/apitrace/default.nix index 5ce36f4f10e..f6f9cb281a7 100644 --- a/pkgs/applications/graphics/apitrace/default.nix +++ b/pkgs/applications/graphics/apitrace/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake ]; meta = with stdenv.lib; { - homepage = https://apitrace.github.io; + homepage = "https://apitrace.github.io"; description = "Tools to trace OpenGL, OpenGL ES, Direct3D, and DirectDraw APIs"; license = licenses.mit; platforms = platforms.linux; diff --git a/pkgs/applications/graphics/autopanosiftc/default.nix b/pkgs/applications/graphics/autopanosiftc/default.nix index c64604975ab..14af98ebc48 100644 --- a/pkgs/applications/graphics/autopanosiftc/default.nix +++ b/pkgs/applications/graphics/autopanosiftc/default.nix @@ -4,7 +4,7 @@ stdenv.mkDerivation { name = "autopano-sift-C-2.5.1"; src = fetchurl { - url = mirror://sourceforge/hugin/autopano-sift-C-2.5.1.tar.gz; + url = "mirror://sourceforge/hugin/autopano-sift-C-2.5.1.tar.gz"; sha256 = "0dqk8ff82gmy4v5ns5nr9gpzkc1p7c2y8c8fkid102r47wsjk44s"; }; @@ -12,13 +12,13 @@ stdenv.mkDerivation { patches = [ (fetchurl { - url = https://gitweb.gentoo.org/repo/gentoo.git/plain/media-gfx/autopano-sift-C/files/autopano-sift-C-2.5.1-lm.patch; + url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-gfx/autopano-sift-C/files/autopano-sift-C-2.5.1-lm.patch"; sha256 = "1bfcr5sps0ip9gl4jprji5jgf9wkczz6d2clsjjlbsy8r3ixi3lv"; }) ]; meta = { - homepage = http://hugin.sourceforge.net/; + homepage = "http://hugin.sourceforge.net/"; description = "Implementation in C of the autopano-sift algorithm for automatically stitching panoramas"; license = stdenv.lib.licenses.gpl2; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/graphics/autotrace/default.nix b/pkgs/applications/graphics/autotrace/default.nix index 57e95dfef10..cd7937f8a54 100644 --- a/pkgs/applications/graphics/autotrace/default.nix +++ b/pkgs/applications/graphics/autotrace/default.nix @@ -62,7 +62,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = http://autotrace.sourceforge.net/; + homepage = "http://autotrace.sourceforge.net/"; description = "Utility for converting bitmap into vector graphics"; platforms = platforms.unix; maintainers = with maintainers; [ hodapp ]; diff --git a/pkgs/applications/graphics/awesomebump/default.nix b/pkgs/applications/graphics/awesomebump/default.nix index b827a12f81c..4d79f10a9e1 100644 --- a/pkgs/applications/graphics/awesomebump/default.nix +++ b/pkgs/applications/graphics/awesomebump/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchgit, qtbase, qmake, makeWrapper, qtscript, flex, bison, qtdeclarative }: +{ mkDerivation, lib, fetchgit, qtbase, qmake, qtscript, flex, bison, qtdeclarative }: let @@ -11,7 +11,7 @@ let fetchSubmodules = true; }; - qtnproperty = stdenv.mkDerivation { + qtnproperty = mkDerivation { name = "qtnproperty"; inherit src; sourceRoot = "AwesomeBump/Sources/utils/QtnProperty"; @@ -22,7 +22,7 @@ let install -D bin-linux/QtnPEG $out/bin/QtnPEG ''; }; -in stdenv.mkDerivation { +in mkDerivation { pname = "awesomebump"; inherit version; @@ -30,12 +30,13 @@ in stdenv.mkDerivation { buildInputs = [ qtbase qtscript qtdeclarative ]; - nativeBuildInputs = [ qmake makeWrapper ]; + nativeBuildInputs = [ qmake ]; preBuild = '' ln -sf ${qtnproperty}/bin/QtnPEG Sources/utils/QtnProperty/bin-linux/QtnPEG ''; + dontWrapQtApps = true; postInstall = '' d=$out/libexec/AwesomeBump @@ -44,7 +45,7 @@ in stdenv.mkDerivation { cp -prd Bin/Configs Bin/Core $d/ # AwesomeBump expects to find Core and Configs in its current directory. - makeWrapper $d/AwesomeBump $out/bin/AwesomeBump \ + makeQtWrapper $d/AwesomeBump $out/bin/AwesomeBump \ --run "cd $d" ''; @@ -53,7 +54,7 @@ in stdenv.mkDerivation { enableParallelBuilding = false; meta = { - homepage = https://github.com/kmkolasinski/AwesomeBump; + homepage = "https://github.com/kmkolasinski/AwesomeBump"; description = "A program to generate normal, height, specular or ambient occlusion textures from a single image"; license = lib.licenses.gpl3Plus; maintainers = [ lib.maintainers.eelco ]; diff --git a/pkgs/applications/graphics/azpainter/default.nix b/pkgs/applications/graphics/azpainter/default.nix index 2f636764e1f..67f1f47dccd 100644 --- a/pkgs/applications/graphics/azpainter/default.nix +++ b/pkgs/applications/graphics/azpainter/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, autoreconfHook +{ stdenv, fetchFromGitHub , libX11, libXext, libXi , freetype, fontconfig , libpng, libjpeg @@ -7,17 +7,15 @@ stdenv.mkDerivation rec { pname = "azpainter"; - version = "2.1.5"; + version = "2.1.6"; src = fetchFromGitHub { owner = "Symbian9"; repo = pname; - rev = "refs/tags/v${version}"; - sha256 = "0x5jmsprjissqcvwq75pqq9wgv4k9b7cy507hai8xk6xs3vxwgba"; + rev = "v${version}"; + sha256 = "sha256-al87Rnf4HkKdmtN3EqxC0zEHgVWwnVi7WttqT/Qxr0Q="; }; - nativeBuildInputs = [ autoreconfHook ]; - buildInputs = [ libX11 libXext libXi freetype fontconfig @@ -25,14 +23,11 @@ stdenv.mkDerivation rec { zlib ]; - configureFlags = [ - "--with-freetype-dir=${stdenv.lib.getDev freetype}/include/freetype2" - ]; - meta = with stdenv.lib; { description = "Full color painting software for illustration drawing"; homepage = "https://osdn.net/projects/azpainter"; license = licenses.gpl3Plus; maintainers = with maintainers; [ dtzWill ]; + platforms = with platforms; linux ++ darwin; }; } diff --git a/pkgs/applications/graphics/batik/default.nix b/pkgs/applications/graphics/batik/default.nix index 51156dea4a1..3c78c8b6dbd 100644 --- a/pkgs/applications/graphics/batik/default.nix +++ b/pkgs/applications/graphics/batik/default.nix @@ -4,7 +4,7 @@ stdenv.mkDerivation { name = "batik-1.6"; builder = ./builder.sh; src = fetchurl { - url = http://tarballs.nixos.org/batik-1.6.zip; + url = "http://tarballs.nixos.org/batik-1.6.zip"; sha256 = "0cf15dspmzcnfda8w5lbsdx28m4v2rpq1dv5zx0r0n99ihqd1sh6"; }; @@ -12,7 +12,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Java based toolkit for handling SVG"; - homepage = https://xmlgraphics.apache.org/batik; + homepage = "https://xmlgraphics.apache.org/batik"; license = licenses.asl20; platforms = platforms.unix; knownVulnerabilities = [ diff --git a/pkgs/applications/graphics/c3d/default.nix b/pkgs/applications/graphics/c3d/default.nix index 55a5d49f752..61efec8dc9d 100644 --- a/pkgs/applications/graphics/c3d/default.nix +++ b/pkgs/applications/graphics/c3d/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation { ++ stdenv.lib.optional stdenv.isDarwin Cocoa; meta = with stdenv.lib; { - homepage = http://www.itksnap.org/c3d; + homepage = "http://www.itksnap.org/c3d"; description = "Medical imaging processing tool"; maintainers = with maintainers; [ bcdarwin ]; platforms = platforms.unix; diff --git a/pkgs/applications/graphics/comical/default.nix b/pkgs/applications/graphics/comical/default.nix index 2796a5535a0..8e6e151aff6 100644 --- a/pkgs/applications/graphics/comical/default.nix +++ b/pkgs/applications/graphics/comical/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { meta = { description = "Viewer of CBR and CBZ files, often used to store scanned comics"; - homepage = http://comical.sourceforge.net/; + homepage = "http://comical.sourceforge.net/"; license = stdenv.lib.licenses.gpl2Plus; maintainers = with stdenv.lib.maintainers; [viric]; platforms = with stdenv.lib.platforms; linux; diff --git a/pkgs/applications/graphics/cq-editor/default.nix b/pkgs/applications/graphics/cq-editor/default.nix index 32d079d85ff..a6b35b1d8ea 100644 --- a/pkgs/applications/graphics/cq-editor/default.nix +++ b/pkgs/applications/graphics/cq-editor/default.nix @@ -21,7 +21,7 @@ mkDerivationWith python3Packages.buildPythonApplication rec { pyqt5 pyparsing pyqtgraph - spyder + spyder_3 pathpy qtconsole requests diff --git a/pkgs/applications/graphics/darktable/default.nix b/pkgs/applications/graphics/darktable/default.nix index 53e04dc7f78..948b4ddd54d 100644 --- a/pkgs/applications/graphics/darktable/default.nix +++ b/pkgs/applications/graphics/darktable/default.nix @@ -7,12 +7,12 @@ }: stdenv.mkDerivation rec { - version = "3.0.0"; + version = "3.0.2"; pname = "darktable"; src = fetchurl { url = "https://github.com/darktable-org/darktable/releases/download/release-${version}/darktable-${version}.tar.xz"; - sha256 = "7195a5ff7ee95ab7c5a57e4e84f8c90cc4728b2c917359203c21293ab754c0db"; + sha256 = "1yrnkw8c47kmy2x6m1xp69hwyk02xyc8pd9kvcmyj54lzrhzdfka"; }; nativeBuildInputs = [ cmake ninja llvm pkgconfig intltool perl desktop-file-utils wrapGAppsHook ]; @@ -50,7 +50,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Virtual lighttable and darkroom for photographers"; - homepage = https://www.darktable.org; + homepage = "https://www.darktable.org"; license = licenses.gpl3Plus; platforms = platforms.linux ++ platforms.darwin; maintainers = with maintainers; [ goibhniu flosse mrVanDalo ]; diff --git a/pkgs/applications/graphics/deskew/default.nix b/pkgs/applications/graphics/deskew/default.nix index c35aaa044ae..422c7a0e15e 100644 --- a/pkgs/applications/graphics/deskew/default.nix +++ b/pkgs/applications/graphics/deskew/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A command line tool for deskewing scanned text documents"; - homepage = https://bitbucket.org/galfar/app-deskew/overview; + homepage = "https://bitbucket.org/galfar/app-deskew/overview"; license = licenses.mit; maintainers = with maintainers; [ryantm]; platforms = platforms.all; diff --git a/pkgs/applications/graphics/dia/default.nix b/pkgs/applications/graphics/dia/default.nix index 3984cfc17ca..6ec54201fbf 100644 --- a/pkgs/applications/graphics/dia/default.nix +++ b/pkgs/applications/graphics/dia/default.nix @@ -8,7 +8,7 @@ stdenv.mkDerivation { version = "0.97.3.20170622"; src = fetchgit { - url = https://gitlab.gnome.org/GNOME/dia.git; + url = "https://gitlab.gnome.org/GNOME/dia.git"; rev = "b86085dfe2b048a2d37d587adf8ceba6fb8bc43c"; sha256 = "1fyxfrzdcs6blxhkw3bcgkksaf3byrsj4cbyrqgb4869k3ynap96"; }; @@ -31,7 +31,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Gnome Diagram drawing software"; - homepage = http://live.gnome.org/Dia; + homepage = "http://live.gnome.org/Dia"; maintainers = with maintainers; [ raskin ]; license = licenses.gpl2; platforms = platforms.unix; diff --git a/pkgs/applications/graphics/digikam/default.nix b/pkgs/applications/graphics/digikam/default.nix index e6e24e0e56f..50162166013 100644 --- a/pkgs/applications/graphics/digikam/default.nix +++ b/pkgs/applications/graphics/digikam/default.nix @@ -125,7 +125,7 @@ mkDerivation rec { meta = with lib; { description = "Photo Management Program"; license = licenses.gpl2; - homepage = https://www.digikam.org; + homepage = "https://www.digikam.org"; maintainers = with maintainers; [ the-kenny ]; platforms = platforms.linux; }; diff --git a/pkgs/applications/graphics/displaycal/default.nix b/pkgs/applications/graphics/displaycal/default.nix index 7a4db535b2b..7a99361a03d 100644 --- a/pkgs/applications/graphics/displaycal/default.nix +++ b/pkgs/applications/graphics/displaycal/default.nix @@ -20,7 +20,7 @@ in buildPythonApplication { enableParallelBuilding = true; src = fetchurl { - url = mirror://sourceforge/project/dispcalgui/release/3.5.0.0/DisplayCAL-3.5.0.0.tar.gz; + url = "mirror://sourceforge/project/dispcalgui/release/3.5.0.0/DisplayCAL-3.5.0.0.tar.gz"; sha256 = "1j496sv8pbhby5hkkbp07k6bs3f7mb1l3dijmn2iga3kmix0fn5q"; }; @@ -62,7 +62,7 @@ in buildPythonApplication { meta = { description = "Display Calibration and Characterization powered by Argyll CMS"; - homepage = https://displaycal.net/; + homepage = "https://displaycal.net/"; license = stdenv.lib.licenses.gpl3; maintainers = [stdenv.lib.maintainers.marcweber]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/graphics/dosage/default.nix b/pkgs/applications/graphics/dosage/default.nix index e26886b070e..b491c3e3ead 100644 --- a/pkgs/applications/graphics/dosage/default.nix +++ b/pkgs/applications/graphics/dosage/default.nix @@ -22,7 +22,7 @@ python3Packages.buildPythonApplication rec { meta = { description = "A comic strip downloader and archiver"; - homepage = https://dosage.rocks/; + homepage = "https://dosage.rocks/"; license = stdenv.lib.licenses.mit; }; } diff --git a/pkgs/applications/graphics/draftsight/default.nix b/pkgs/applications/graphics/draftsight/default.nix index 144c723da20..ccd4fd660f7 100644 --- a/pkgs/applications/graphics/draftsight/default.nix +++ b/pkgs/applications/graphics/draftsight/default.nix @@ -80,7 +80,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "2D design & drafting application, meant to be similar to AutoCAD"; longDescription = "Professional-grade 2D design and drafting solution from Dassault Systèmes that lets you create, edit, view and mark up any kind of 2D CAD drawing."; - homepage = https://www.3ds.com/products-services/draftsight-cad-software/; + homepage = "https://www.3ds.com/products-services/draftsight-cad-software/"; license = stdenv.lib.licenses.unfree; maintainers = with maintainers; [ hodapp ]; platforms = [ "x86_64-linux" ]; diff --git a/pkgs/applications/graphics/drawing/default.nix b/pkgs/applications/graphics/drawing/default.nix index 67fa5da398b..fb68276b168 100644 --- a/pkgs/applications/graphics/drawing/default.nix +++ b/pkgs/applications/graphics/drawing/default.nix @@ -17,7 +17,7 @@ python3.pkgs.buildPythonApplication rec { pname = "drawing"; - version = "0.4.11"; + version = "0.4.13"; format = "other"; @@ -25,7 +25,7 @@ python3.pkgs.buildPythonApplication rec { owner = "maoschanz"; repo = pname; rev = version; - sha256 = "00c1h6jns11rmsg35gy40fb6ahvik80wpbm2133bjcqxfwwnlal6"; + sha256 = "0mj2nmfrckv89srgkn16fnbrb35f5a655ak8bb3rd9na3hd5bq53"; }; nativeBuildInputs = [ diff --git a/pkgs/applications/graphics/drawio/default.nix b/pkgs/applications/graphics/drawio/default.nix index 2a7efea5271..8281596374c 100644 --- a/pkgs/applications/graphics/drawio/default.nix +++ b/pkgs/applications/graphics/drawio/default.nix @@ -11,11 +11,11 @@ stdenv.mkDerivation rec { pname = "drawio"; - version = "12.6.5"; + version = "13.0.3"; src = fetchurl { url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/draw.io-x86_64-${version}.rpm"; - sha256 = "14x4h680q3w9wsdmivy2k1bggb09vdm3a3wrpfwd79dbaagjk4lc"; + sha256 = "104pfwipm8ch9xqlsz1gh18icr1p6i3n4c77bbdjakxcy4s5n7sg"; }; nativeBuildInputs = [ @@ -86,7 +86,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A desktop application for creating diagrams"; - homepage = https://about.draw.io/; + homepage = "https://about.draw.io/"; license = licenses.asl20; maintainers = with maintainers; [ danieldk ]; platforms = [ "x86_64-linux" ]; diff --git a/pkgs/applications/graphics/drawpile/default.nix b/pkgs/applications/graphics/drawpile/default.nix index a8c4e6d14ba..0ffcb5cdb41 100644 --- a/pkgs/applications/graphics/drawpile/default.nix +++ b/pkgs/applications/graphics/drawpile/default.nix @@ -86,8 +86,8 @@ in mkDerivation rec { meta = { description = "A collaborative drawing program that allows multiple users to sketch on the same canvas simultaneously"; - homepage = https://drawpile.net/; - downloadPage = https://drawpile.net/download/; + homepage = "https://drawpile.net/"; + downloadPage = "https://drawpile.net/download/"; license = licenses.gpl3; maintainers = with maintainers; [ fgaz ]; platforms = platforms.unix; diff --git a/pkgs/applications/graphics/epeg/default.nix b/pkgs/applications/graphics/epeg/default.nix index 3b7bdfb8efc..bdbdf04bcd5 100644 --- a/pkgs/applications/graphics/epeg/default.nix +++ b/pkgs/applications/graphics/epeg/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = https://github.com/mattes/epeg; + homepage = "https://github.com/mattes/epeg"; description = "Insanely fast JPEG/ JPG thumbnail scaling"; platforms = platforms.linux ++ platforms.darwin; license = { diff --git a/pkgs/applications/graphics/exrdisplay/default.nix b/pkgs/applications/graphics/exrdisplay/default.nix index d8b08faf239..7841e9d571b 100644 --- a/pkgs/applications/graphics/exrdisplay/default.nix +++ b/pkgs/applications/graphics/exrdisplay/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation { meta = { description = "Application for viewing OpenEXR images on a display at various exposure settings"; - homepage = http://openexr.com; + homepage = "http://openexr.com"; platforms = stdenv.lib.platforms.linux; license = stdenv.lib.licenses.bsd3; }; diff --git a/pkgs/applications/graphics/exrtools/default.nix b/pkgs/applications/graphics/exrtools/default.nix index c8928540bb6..39c23eb4fe8 100644 --- a/pkgs/applications/graphics/exrtools/default.nix +++ b/pkgs/applications/graphics/exrtools/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Collection of utilities for manipulating OpenEXR images"; - homepage = http://scanline.ca/exrtools; + homepage = "http://scanline.ca/exrtools"; platforms = platforms.linux; license = licenses.mit; maintainers = [ maintainers.juliendehos ]; diff --git a/pkgs/applications/graphics/fbida/default.nix b/pkgs/applications/graphics/fbida/default.nix index 3e64783df31..7f0167f9834 100644 --- a/pkgs/applications/graphics/fbida/default.nix +++ b/pkgs/applications/graphics/fbida/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Image viewing and manipulation programs including fbi, fbgs, ida, exiftran and thumbnail.cgi"; - homepage = https://www.kraxel.org/blog/linux/fbida/; + homepage = "https://www.kraxel.org/blog/linux/fbida/"; license = licenses.gpl2; maintainers = with maintainers; [ pSub ]; platforms = platforms.linux; diff --git a/pkgs/applications/graphics/feh/default.nix b/pkgs/applications/graphics/feh/default.nix index 1eb99a9a7e4..a0e04bf4ad3 100644 --- a/pkgs/applications/graphics/feh/default.nix +++ b/pkgs/applications/graphics/feh/default.nix @@ -6,11 +6,11 @@ with stdenv.lib; stdenv.mkDerivation rec { pname = "feh"; - version = "3.3"; + version = "3.4"; src = fetchurl { url = "https://feh.finalrewind.org/${pname}-${version}.tar.bz2"; - sha256 = "04c8cgwzkax481sz7lbzy23mk79bqmjy3qpvr7vxa4c14mc9k5gk"; + sha256 = "0r83zincbfnk8g13xwm2qaccml9srnwlsmpc1f0nhwjkqyjmqm0q"; }; outputs = [ "out" "man" "doc" ]; diff --git a/pkgs/applications/graphics/fig2dev/default.nix b/pkgs/applications/graphics/fig2dev/default.nix index c364badc174..cd7db3d29c5 100644 --- a/pkgs/applications/graphics/fig2dev/default.nix +++ b/pkgs/applications/graphics/fig2dev/default.nix @@ -18,7 +18,7 @@ in stdenv.mkDerivation { meta = with stdenv.lib; { description = "Tool to convert Xfig files to other formats"; - homepage = http://mcj.sourceforge.net/; + homepage = "http://mcj.sourceforge.net/"; license = licenses.xfig; platforms = platforms.linux; }; diff --git a/pkgs/applications/graphics/fluxus/default.nix b/pkgs/applications/graphics/fluxus/default.nix index a8094071101..a53eb806bcf 100644 --- a/pkgs/applications/graphics/fluxus/default.nix +++ b/pkgs/applications/graphics/fluxus/default.nix @@ -50,7 +50,7 @@ stdenv.mkDerivation rec { owner = "nebogeo"; repo = "fluxus"; rev = "ba9aee218dd4a9cfab914ad78bdb6d59e9a37400"; - hash = "sha256:0mwghpgq4n1khwlmgscirhmcdhi6x00c08q4idi2zcqz961bbs28"; + sha256 = "0mwghpgq4n1khwlmgscirhmcdhi6x00c08q4idi2zcqz961bbs28"; }; buildInputs = [ @@ -69,7 +69,7 @@ stdenv.mkDerivation rec { openssl.dev racket ]; - nativeBuildInputs = [ scons ]; + nativeBuildInputs = [ scons.py2 ]; patches = [ ./fix-build.patch ]; sconsFlags = [ @@ -90,7 +90,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Livecoding environment for 3D graphics, sound, and games"; license = licenses.gpl2; - homepage = http://www.pawfal.org/fluxus/; + homepage = "http://www.pawfal.org/fluxus/"; maintainers = [ maintainers.brainrape ]; }; } diff --git a/pkgs/applications/graphics/fondo/default.nix b/pkgs/applications/graphics/fondo/default.nix index 7b186312301..877328e8823 100644 --- a/pkgs/applications/graphics/fondo/default.nix +++ b/pkgs/applications/graphics/fondo/default.nix @@ -65,7 +65,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Find the most beautiful wallpapers for your desktop"; - homepage = https://github.com/calo001/fondo; + homepage = "https://github.com/calo001/fondo"; license = licenses.agpl3Plus; maintainers = with maintainers; [ worldofpeace ]; platforms = platforms.linux; diff --git a/pkgs/applications/graphics/fontmatrix/default.nix b/pkgs/applications/graphics/fontmatrix/default.nix index 3b866297603..99ca119b3bc 100644 --- a/pkgs/applications/graphics/fontmatrix/default.nix +++ b/pkgs/applications/graphics/fontmatrix/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Fontmatrix is a free/libre font explorer for Linux, Windows and Mac"; - homepage = https://github.com/fontmatrix/fontmatrix; + homepage = "https://github.com/fontmatrix/fontmatrix"; license = licenses.gpl2; platforms = platforms.linux; }; diff --git a/pkgs/applications/graphics/freepv/default.nix b/pkgs/applications/graphics/freepv/default.nix index 57321220fb1..11d203746e1 100644 --- a/pkgs/applications/graphics/freepv/default.nix +++ b/pkgs/applications/graphics/freepv/default.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation { name = "freepv-0.3.0"; src = fetchurl { - url = mirror://sourceforge/freepv/freepv-0.3.0.tar.gz; + url = "mirror://sourceforge/freepv/freepv-0.3.0.tar.gz"; sha256 = "1w19abqjn64w47m35alg7bcdl1p97nf11zn64cp4p0dydihmhv56"; }; @@ -29,7 +29,7 @@ stdenv.mkDerivation { meta = { description = "Open source panorama viewer using GL"; - homepage = http://freepv.sourceforge.net/; + homepage = "http://freepv.sourceforge.net/"; license = [ stdenv.lib.licenses.lgpl21 ]; }; } diff --git a/pkgs/applications/graphics/fstl/default.nix b/pkgs/applications/graphics/fstl/default.nix index 1d712a63fbd..c96ea765d43 100644 --- a/pkgs/applications/graphics/fstl/default.nix +++ b/pkgs/applications/graphics/fstl/default.nix @@ -2,7 +2,7 @@ mkDerivation rec { pname = "fstl"; - version = "0.9.3"; + version = "0.9.4"; buildInputs = [qtbase mesa_glu]; @@ -23,7 +23,7 @@ mkDerivation rec { owner = "mkeeter"; repo = "fstl"; rev = "v" + version; - sha256 = "1j0y9xbf0ybrrnsmfzgpyyz6bi98xgzn9ivani424j01vffns892"; + sha256 = "028hzdv11hgvcpc36q5scf4nw1256qswh37xhfn5a0iv7wycmnif"; }; meta = with stdenv.lib; { diff --git a/pkgs/applications/graphics/gcolor2/default.nix b/pkgs/applications/graphics/gcolor2/default.nix index f729c9c2bba..f585a0c5d29 100644 --- a/pkgs/applications/graphics/gcolor2/default.nix +++ b/pkgs/applications/graphics/gcolor2/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation { meta = { description = "Simple GTK 2 color selector"; - homepage = http://gcolor2.sourceforge.net/; + homepage = "http://gcolor2.sourceforge.net/"; license = stdenv.lib.licenses.gpl2Plus; maintainers = with stdenv.lib.maintainers; [ notthemessiah ]; platforms = with stdenv.lib.platforms; unix; diff --git a/pkgs/applications/graphics/gcolor3/default.nix b/pkgs/applications/graphics/gcolor3/default.nix index 67be3ba6782..1c1c6ba08ee 100644 --- a/pkgs/applications/graphics/gcolor3/default.nix +++ b/pkgs/applications/graphics/gcolor3/default.nix @@ -34,7 +34,7 @@ in stdenv.mkDerivation { meta = with stdenv.lib; { description = "A simple color chooser written in GTK3"; - homepage = https://www.hjdskes.nl/projects/gcolor3/; + homepage = "https://www.hjdskes.nl/projects/gcolor3/"; license = licenses.gpl2Plus; maintainers = with maintainers; [ jtojnar ]; platforms = platforms.unix; diff --git a/pkgs/applications/graphics/geeqie/default.nix b/pkgs/applications/graphics/geeqie/default.nix index 4275c6f0dcf..51c066196ef 100644 --- a/pkgs/applications/graphics/geeqie/default.nix +++ b/pkgs/applications/graphics/geeqie/default.nix @@ -61,7 +61,7 @@ stdenv.mkDerivation rec { license = licenses.gpl2Plus; - homepage = http://geeqie.sourceforge.net; + homepage = "http://geeqie.sourceforge.net"; maintainers = with maintainers; [ jfrankenau pSub ]; platforms = platforms.gnu ++ platforms.linux; diff --git a/pkgs/applications/graphics/gimp/plugins/default.nix b/pkgs/applications/graphics/gimp/plugins/default.nix index 0a06c42b5fc..0b5e6a7f379 100644 --- a/pkgs/applications/graphics/gimp/plugins/default.nix +++ b/pkgs/applications/graphics/gimp/plugins/default.nix @@ -45,7 +45,7 @@ stdenv.lib.makeScope pkgs.newScope (self: with self; { */ name = "gap-2.6.0"; src = fetchurl { - url = https://ftp.gimp.org/pub/gimp/plug-ins/v2.6/gap/gimp-gap-2.6.0.tar.bz2; + url = "https://ftp.gimp.org/pub/gimp/plug-ins/v2.6/gap/gimp-gap-2.6.0.tar.bz2"; sha256 = "1jic7ixcmsn4kx2cn32nc5087rk6g8xsrz022xy11yfmgvhzb0ql"; }; NIX_LDFLAGS = "-lm"; @@ -56,7 +56,7 @@ stdenv.lib.makeScope pkgs.newScope (self: with self; { hardeningDisable = [ "format" ]; meta = with stdenv.lib; { description = "The GIMP Animation Package"; - homepage = https://www.gimp.org; + homepage = "https://www.gimp.org"; # The main code is given in GPLv3, but it has ffmpeg in it, and I think ffmpeg license # falls inside "free". license = with licenses; [ gpl3 free ]; @@ -143,7 +143,7 @@ stdenv.lib.makeScope pkgs.newScope (self: with self; { name = "wavelet-sharpen-0.1.2"; NIX_LDFLAGS = "-lm"; src = fetchurl { - url = http://registry.gimp.org/files/wavelet-sharpen-0.1.2.tar.gz; + url = "http://registry.gimp.org/files/wavelet-sharpen-0.1.2.tar.gz"; sha256 = "0vql1k67i21g5ivaa1jh56rg427m0icrkpryrhg75nscpirfxxqw"; }; installPhase = "installPlugins src/wavelet-sharpen"; # TODO translations are not copied .. How to do this on nix? @@ -156,7 +156,7 @@ stdenv.lib.makeScope pkgs.newScope (self: with self; { name = "lqr-plugin-0.6.1"; buildInputs = with pkgs; [ liblqr1 ]; src = fetchurl { - url = http://registry.gimp.org/files/gimp-lqr-plugin-0.6.1.tar.bz2; + url = "http://registry.gimp.org/files/gimp-lqr-plugin-0.6.1.tar.bz2"; sha256 = "00hklkpcimcbpjly4rjhfipaw096cpy768g9wixglwrsyqhil7l9"; }; #postInstall = ''mkdir -p $out/nix-support; echo "${liblqr1}" > "$out/nix-support/propagated-user-env-packages"''; @@ -189,7 +189,7 @@ stdenv.lib.makeScope pkgs.newScope (self: with self; { meta = { description = "GIMP plugin to correct lens distortion using the lensfun library and database"; - homepage = http://lensfun.sebastiankraft.net/; + homepage = "http://lensfun.sebastiankraft.net/"; license = stdenv.lib.licenses.gpl3Plus; maintainers = [ ]; @@ -203,7 +203,7 @@ stdenv.lib.makeScope pkgs.newScope (self: with self; { exposureBlend = scriptDerivation { name = "exposure-blend"; src = fetchurl { - url = http://tir.astro.utoledo.edu/jdsmith/code/eb/exposure-blend.scm; + url = "http://tir.astro.utoledo.edu/jdsmith/code/eb/exposure-blend.scm"; sha256 = "1b6c9wzpklqras4wwsyw3y3jp6fjmhnnskqiwm5sabs8djknfxla"; }; meta.broken = true; @@ -212,7 +212,7 @@ stdenv.lib.makeScope pkgs.newScope (self: with self; { lightning = scriptDerivation { name = "Lightning"; src = fetchurl { - url = http://registry.gimp.org/files/Lightning.scm; + url = "http://registry.gimp.org/files/Lightning.scm"; sha256 = "c14a8f4f709695ede3f77348728a25b3f3ded420da60f3f8de3944b7eae98a49"; }; }; @@ -235,7 +235,7 @@ stdenv.lib.makeScope pkgs.newScope (self: with self; { # http://registry.gimp.org/node/153 name = "lightning-gate"; src = fetchurl { - url = http://registry.gimp.org/files/LightningGate.scm; + url = "http://registry.gimp.org/files/LightningGate.scm"; sha256 = "181w1zi9a99kn2mfxjp43wkwcgw5vbb6iqjas7a9mhm8p04csys2"; }; }; diff --git a/pkgs/applications/graphics/glabels/default.nix b/pkgs/applications/graphics/glabels/default.nix index fef296f45be..be487fcb8a6 100644 --- a/pkgs/applications/graphics/glabels/default.nix +++ b/pkgs/applications/graphics/glabels/default.nix @@ -33,7 +33,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Create labels and business cards"; - homepage = https://glabels.org/; + homepage = "https://glabels.org/"; license = with licenses; [ gpl3Plus lgpl3Plus ]; platforms = platforms.unix; maintainers = [ maintainers.nico202 ]; diff --git a/pkgs/applications/graphics/gnome-photos/default.nix b/pkgs/applications/graphics/gnome-photos/default.nix index 6cbe5448b40..46be8d14532 100644 --- a/pkgs/applications/graphics/gnome-photos/default.nix +++ b/pkgs/applications/graphics/gnome-photos/default.nix @@ -117,9 +117,9 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Access, organize and share your photos"; - homepage = https://wiki.gnome.org/Apps/Photos; + homepage = "https://wiki.gnome.org/Apps/Photos"; license = licenses.gpl3Plus; - maintainers = gnome3.maintainers; + maintainers = teams.gnome.members; platforms = platforms.linux; }; } diff --git a/pkgs/applications/graphics/gnuclad/default.nix b/pkgs/applications/graphics/gnuclad/default.nix index 5b6dd42e09e..fcb4bdb5374 100644 --- a/pkgs/applications/graphics/gnuclad/default.nix +++ b/pkgs/applications/graphics/gnuclad/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkgconfig ]; meta = with stdenv.lib; { - homepage = https://launchpad.net/gnuclad; + homepage = "https://launchpad.net/gnuclad"; description = "gnuclad tries to help the environment by creating trees. It's primary use will be generating cladogram trees for the GNU/Linux distro timeline project."; license = licenses.gpl3Plus; maintainers = with maintainers; [ mog ]; diff --git a/pkgs/applications/graphics/gocr/default.nix b/pkgs/applications/graphics/gocr/default.nix index f5fa8ca9221..7c586374ec5 100644 --- a/pkgs/applications/graphics/gocr/default.nix +++ b/pkgs/applications/graphics/gocr/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = http://jocr.sourceforge.net/; + homepage = "http://jocr.sourceforge.net/"; description = "GPL Optical Character Recognition"; license = stdenv.lib.licenses.gpl2; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/graphics/goxel/default.nix b/pkgs/applications/graphics/goxel/default.nix index 84fdb60c31e..6fb5b91c2a9 100644 --- a/pkgs/applications/graphics/goxel/default.nix +++ b/pkgs/applications/graphics/goxel/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Open Source 3D voxel editor"; - homepage = https://guillaumechereau.github.io/goxel/; + homepage = "https://guillaumechereau.github.io/goxel/"; license = licenses.gpl3; platforms = platforms.linux; maintainers = with maintainers; [ tilpner ]; diff --git a/pkgs/applications/graphics/gpicview/default.nix b/pkgs/applications/graphics/gpicview/default.nix index 86867cd1cca..9e3ab37c322 100644 --- a/pkgs/applications/graphics/gpicview/default.nix +++ b/pkgs/applications/graphics/gpicview/default.nix @@ -17,8 +17,8 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "A simple and fast image viewer for X"; - homepage = http://lxde.sourceforge.net/gpicview/; - repositories.git = git://lxde.git.sourceforge.net/gitroot/lxde/gpicview; + homepage = "http://lxde.sourceforge.net/gpicview/"; + repositories.git = "git://lxde.git.sourceforge.net/gitroot/lxde/gpicview"; license = licenses.gpl2; maintainers = with maintainers; [ lovek323 ]; platforms = platforms.unix; diff --git a/pkgs/applications/graphics/gqview/default.nix b/pkgs/applications/graphics/gqview/default.nix index d82238f925b..965ac5db682 100644 --- a/pkgs/applications/graphics/gqview/default.nix +++ b/pkgs/applications/graphics/gqview/default.nix @@ -9,7 +9,7 @@ stdenv.mkDerivation { name = "gqview-2.1.5"; src = fetchurl { - url = mirror://sourceforge/gqview/gqview-2.1.5.tar.gz; + url = "mirror://sourceforge/gqview/gqview-2.1.5.tar.gz"; sha256 = "0ilm5s7ps9kg4f5hzgjhg0xhn6zg0v9i7jnd67zrx9h7wsaa9zhj"; }; @@ -22,7 +22,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "A fast image viewer"; - homepage = http://gqview.sourceforge.net; + homepage = "http://gqview.sourceforge.net"; license = licenses.gpl2; platforms = platforms.unix; }; diff --git a/pkgs/applications/graphics/grafx2/default.nix b/pkgs/applications/graphics/grafx2/default.nix index 039bb1917d3..2a2a6a67598 100644 --- a/pkgs/applications/graphics/grafx2/default.nix +++ b/pkgs/applications/graphics/grafx2/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { meta = { description = "Bitmap paint program inspired by the Amiga programs Deluxe Paint and Brilliance"; - homepage = http://pulkomandy.tk/projects/GrafX2; + homepage = "http://pulkomandy.tk/projects/GrafX2"; license = stdenv.lib.licenses.gpl2; platforms = [ "x86_64-linux" "i686-linux" ]; maintainers = [ stdenv.lib.maintainers.zoomulator ]; diff --git a/pkgs/applications/graphics/graphicsmagick/default.nix b/pkgs/applications/graphics/graphicsmagick/default.nix index 403a5285e15..be5114565ff 100644 --- a/pkgs/applications/graphics/graphicsmagick/default.nix +++ b/pkgs/applications/graphics/graphicsmagick/default.nix @@ -35,7 +35,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = http://www.graphicsmagick.org; + homepage = "http://www.graphicsmagick.org"; description = "Swiss army knife of image processing"; license = stdenv.lib.licenses.mit; platforms = stdenv.lib.platforms.all; diff --git a/pkgs/applications/graphics/gscan2pdf/default.nix b/pkgs/applications/graphics/gscan2pdf/default.nix index 76bb0bc1317..352b6b900cc 100644 --- a/pkgs/applications/graphics/gscan2pdf/default.nix +++ b/pkgs/applications/graphics/gscan2pdf/default.nix @@ -10,11 +10,11 @@ with stdenv.lib; perlPackages.buildPerlPackage rec { pname = "gscan2pdf"; - version = "2.6.3"; + version = "2.6.5"; src = fetchurl { url = "mirror://sourceforge/gscan2pdf/${version}/${pname}-${version}.tar.xz"; - sha256 = "1chmk51xwylnjrgc6hw23x7g7cpwzgwmjc49fcah7pkd3dk1cvvr"; + sha256 = "0x8931i5zs4zl3iqjhlp7h8y6ssklxiqsddz5kh84nl3p0izbg0y"; }; nativeBuildInputs = [ wrapGAppsHook ]; @@ -100,7 +100,7 @@ perlPackages.buildPerlPackage rec { meta = { description = "A GUI to produce PDFs or DjVus from scanned documents"; - homepage = http://gscan2pdf.sourceforge.net/; + homepage = "http://gscan2pdf.sourceforge.net/"; license = licenses.gpl3; maintainers = with maintainers; [ pacien ]; }; diff --git a/pkgs/applications/graphics/gthumb/default.nix b/pkgs/applications/graphics/gthumb/default.nix index b51db1e945f..4a6526fe9c6 100644 --- a/pkgs/applications/graphics/gthumb/default.nix +++ b/pkgs/applications/graphics/gthumb/default.nix @@ -59,7 +59,10 @@ stdenv.mkDerivation rec { gnome3.adwaita-icon-theme gsettings-desktop-schemas gst_all_1.gst-plugins-base - gst_all_1.gstreamer + (gst_all_1.gst-plugins-good.override { gtkSupport = true; }) + gst_all_1.gst-libav + gst_all_1.gst-plugins-bad + gst_all_1.gst-plugins-ugly gtk3 json-glib lcms2 diff --git a/pkgs/applications/graphics/guetzli/default.nix b/pkgs/applications/graphics/guetzli/default.nix index d7b96425968..ccddf907e94 100644 --- a/pkgs/applications/graphics/guetzli/default.nix +++ b/pkgs/applications/graphics/guetzli/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation { meta = { description = "Perceptual JPEG encoder"; longDescription = "Guetzli is a JPEG encoder that aims for excellent compression density at high visual quality."; - homepage = https://github.com/google/guetzli; + homepage = "https://github.com/google/guetzli"; license = stdenv.lib.licenses.asl20; platforms = stdenv.lib.platforms.x86_64; maintainers = [ stdenv.lib.maintainers.seppeljordan ]; diff --git a/pkgs/applications/graphics/hugin/default.nix b/pkgs/applications/graphics/hugin/default.nix index 8f7800a7323..7314ff893b0 100644 --- a/pkgs/applications/graphics/hugin/default.nix +++ b/pkgs/applications/graphics/hugin/default.nix @@ -46,7 +46,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = http://hugin.sourceforge.net/; + homepage = "http://hugin.sourceforge.net/"; description = "Toolkit for stitching photographs and assembling panoramas, together with an easy to use graphical front end"; license = licenses.gpl2Plus; maintainers = with maintainers; [ hrdinka ]; diff --git a/pkgs/applications/graphics/ideogram/default.nix b/pkgs/applications/graphics/ideogram/default.nix index 3e17a045ecc..4bf414cf8dd 100644 --- a/pkgs/applications/graphics/ideogram/default.nix +++ b/pkgs/applications/graphics/ideogram/default.nix @@ -58,7 +58,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Insert emoji anywhere, even in non-native apps - designed for elementary OS"; - homepage = https://github.com/cassidyjames/ideogram; + homepage = "https://github.com/cassidyjames/ideogram"; license = licenses.gpl2Plus; maintainers = pantheon.maintainers; platforms = platforms.linux; diff --git a/pkgs/applications/graphics/image_optim/Gemfile.lock b/pkgs/applications/graphics/image_optim/Gemfile.lock index 20c9772ce46..3ffadb5acbe 100644 --- a/pkgs/applications/graphics/image_optim/Gemfile.lock +++ b/pkgs/applications/graphics/image_optim/Gemfile.lock @@ -20,4 +20,4 @@ DEPENDENCIES image_optim BUNDLED WITH - 1.16.3 + 2.1.4 diff --git a/pkgs/applications/graphics/image_optim/default.nix b/pkgs/applications/graphics/image_optim/default.nix index 385f9825e46..ba437eab412 100644 --- a/pkgs/applications/graphics/image_optim/default.nix +++ b/pkgs/applications/graphics/image_optim/default.nix @@ -58,7 +58,7 @@ bundlerApp { meta = with lib; { description = "Command line tool and ruby interface to optimize (lossless compress, optionally lossy) jpeg, png, gif and svg images using external utilities (advpng, gifsicle, jhead, jpeg-recompress, jpegoptim, jpegrescan, jpegtran, optipng, pngcrush, pngout, pngquant, svgo)"; - homepage = https://github.com/toy/image_optim; + homepage = "https://github.com/toy/image_optim"; license = licenses.mit; maintainers = with maintainers; [ srghma nicknovitski ]; platforms = platforms.all; diff --git a/pkgs/applications/graphics/imagej/default.nix b/pkgs/applications/graphics/imagej/default.nix index 6472712bcb4..d47369f5094 100644 --- a/pkgs/applications/graphics/imagej/default.nix +++ b/pkgs/applications/graphics/imagej/default.nix @@ -32,7 +32,7 @@ let --add-flags "-jar $out/share/java/ij.jar -ijpath $out/share" ''; meta = with stdenv.lib; { - homepage = https://imagej.nih.gov/ij/; + homepage = "https://imagej.nih.gov/ij/"; description = "Image processing and analysis in Java"; longDescription = '' ImageJ is a public domain Java image processing program diff --git a/pkgs/applications/graphics/imgcat/default.nix b/pkgs/applications/graphics/imgcat/default.nix index 1fa3ec8ccc6..5943632930c 100644 --- a/pkgs/applications/graphics/imgcat/default.nix +++ b/pkgs/applications/graphics/imgcat/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "It's like cat, but for images"; - homepage = https://github.com/eddieantonio/imgcat; + homepage = "https://github.com/eddieantonio/imgcat"; license = licenses.isc; maintainers = with maintainers; [ jwiegley ]; platforms = platforms.unix; diff --git a/pkgs/applications/graphics/imlibsetroot/default.nix b/pkgs/applications/graphics/imlibsetroot/default.nix index 8ca4d71bb56..06549468efe 100644 --- a/pkgs/applications/graphics/imlibsetroot/default.nix +++ b/pkgs/applications/graphics/imlibsetroot/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "A Xinerama Aware Background Changer"; - homepage = http://robotmonkeys.net/2010/03/30/imlibsetroot/; + homepage = "http://robotmonkeys.net/2010/03/30/imlibsetroot/"; license = licenses.gpl2; platforms = platforms.linux; maintainers = with maintainers; [ dwarfmaster ]; diff --git a/pkgs/applications/graphics/imv/default.nix b/pkgs/applications/graphics/imv/default.nix index 26a6cabf784..88b4a847665 100644 --- a/pkgs/applications/graphics/imv/default.nix +++ b/pkgs/applications/graphics/imv/default.nix @@ -53,7 +53,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A command line image viewer for tiling window managers"; - homepage = https://github.com/eXeC64/imv; + homepage = "https://github.com/eXeC64/imv"; license = licenses.gpl2; maintainers = with maintainers; [ rnhmjoj markus1189 ]; platforms = [ "i686-linux" "x86_64-linux" ]; diff --git a/pkgs/applications/graphics/inkscape/default.nix b/pkgs/applications/graphics/inkscape/default.nix index 3996b94ba14..86fb6e03491 100644 --- a/pkgs/applications/graphics/inkscape/default.nix +++ b/pkgs/applications/graphics/inkscape/default.nix @@ -1,54 +1,62 @@ -{ stdenv, fetchurl, fetchpatch, pkgconfig, perlPackages, libXft -, libpng, zlib, popt, boehmgc, libxml2, libxslt, glib, gtkmm2 -, glibmm, libsigcxx, lcms, boost, gettext, makeWrapper -, gsl, gtkspell2, cairo, python2, poppler, imagemagick, libwpg, librevenge -, libvisio, libcdr, libexif, potrace, cmake -, librsvg, wrapGAppsHook +{ stdenv +, boehmgc +, boost +, cairo +, cmake +, fetchpatch +, fetchurl +, gettext +, glib +, glibmm +, gsl +, gtkmm2 +, gtkspell2 +, imagemagick +, lcms +, libcdr +, libexif +, libpng +, librevenge +, librsvg +, libsigcxx +, libvisio +, libwpg +, libXft +, libxml2 +, libxslt +, makeWrapper +, perlPackages +, pkg-config +, poppler +, popt +, potrace +, python3 +, wrapGAppsHook +, zlib }: - let - python2Env = python2.withPackages(ps: with ps; - [ numpy lxml scour ]); + python3Env = python3.withPackages + (ps: with ps; [ + numpy + lxml + scour + ]); in - stdenv.mkDerivation rec { - name = "inkscape-0.92.4"; + pname = "inkscape"; + version = "0.92.5"; src = fetchurl { - url = "https://media.inkscape.org/dl/resources/file/${name}.tar.bz2"; - sha256 = "0pjinhjibfsz1aywdpgpj3k23xrsszpj4a1ya5562dkv2yl2vv2p"; + url = "https://media.inkscape.org/dl/resources/file/${pname}-${version}.tar.bz2"; + sha256 = "ge5/aeK9ZKlzQ9g5Wkp6eQWyG4YVZu1eXZF5F41Rmgs="; }; - patches = [ - (fetchpatch { - name = "inkscape-poppler_0_76_compat.patch"; - url = "https://gitlab.com/inkscape/inkscape/commit/e831b034746f8dc3c3c1b88372751f6dcb974831.diff"; - sha256 = "096rdyi6ppjq1h9jwwsm9hb99nggfrfinik8rm23jkn4h2zl01zf"; - }) - (fetchpatch { - name = "inkscape-poppler_0_82_compat.patch"; - url = "https://gitlab.com/inkscape/inkscape/commit/835b6bb62be565efab986d5a3f30a672ad56c7eb.patch"; - sha256 = "02c6sxi2w52b885vr3pgani6kvxp9gdqqk2jgiykkdzv70hhrnm7"; - }) - (fetchpatch { - name = "inkscape-poppler_0_83_compat.patch"; - url = "https://gitlab.com/inkscape/inkscape/commit/b5360a807b12d4e8318475ffd0464b84882788b5.patch"; - sha256 = "1p44rr2q2i3zkd1y1j7xgdcbgx8yvlq6hq92im8s0bkjby6p5cpz"; - }) - ]; - # Inkscape hits the ARGMAX when linking on macOS. It appears to be # CMake’s ARGMAX check doesn’t offer enough padding for NIX_LDFLAGS. # Setting strictDeps it avoids duplicating some dependencies so it # will leave us under ARGMAX. strictDeps = true; - unpackPhase = '' - cp $src ${name}.tar.bz2 - tar xvjf ${name}.tar.bz2 > /dev/null - cd ${name} - ''; - postPatch = '' patchShebangs share/extensions patchShebangs fix-roff-punct @@ -56,24 +64,52 @@ stdenv.mkDerivation rec { # Python is used at run-time to execute scripts, e.g., those from # the "Effects" menu. substituteInPlace src/extension/implementation/script.cpp \ - --replace '"python-interpreter", "python"' '"python-interpreter", "${python2Env}/bin/python"' + --replace '"python-interpreter", "python"' '"python-interpreter", "${python3Env}/bin/python"' ''; - nativeBuildInputs = [ pkgconfig cmake makeWrapper python2Env wrapGAppsHook ] - ++ (with perlPackages; [ perl XMLParser ]); + nativeBuildInputs = [ + pkg-config + cmake + makeWrapper + python3Env + wrapGAppsHook + ] ++ (with perlPackages; [ + perl + XMLParser + ]); + buildInputs = [ - libXft libpng zlib popt boehmgc - libxml2 libxslt glib gtkmm2 glibmm libsigcxx lcms boost gettext - gsl poppler imagemagick libwpg librevenge - libvisio libcdr libexif potrace - + boehmgc + boost + gettext + glib + glibmm + gsl + gtkmm2 + imagemagick + lcms + libcdr + libexif + libpng + librevenge librsvg # for loading icons - - python2Env perlPackages.perl - ] ++ stdenv.lib.optional (!stdenv.isDarwin) gtkspell2 - ++ stdenv.lib.optional stdenv.isDarwin cairo; - - enableParallelBuilding = true; + libsigcxx + libvisio + libwpg + libXft + libxml2 + libxslt + perlPackages.perl + poppler + popt + potrace + python3Env + zlib + ] ++ stdenv.lib.optionals (!stdenv.isDarwin) [ + gtkspell2 + ] ++ stdenv.lib.optionals stdenv.isDarwin [ + cairo + ]; # Make sure PyXML modules can be found at run-time. postInstall = stdenv.lib.optionalString stdenv.isDarwin '' @@ -82,9 +118,10 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - license = "GPL"; - homepage = https://www.inkscape.org; description = "Vector graphics editor"; + homepage = "https://www.inkscape.org"; + license = licenses.gpl3Plus; + maintainers = [ maintainers.jtojnar ]; platforms = platforms.all; longDescription = '' Inkscape is a feature-rich vector graphics editor that edits diff --git a/pkgs/applications/graphics/ipe/default.nix b/pkgs/applications/graphics/ipe/default.nix index 0cb09ecb643..6a2a8dbc18f 100644 --- a/pkgs/applications/graphics/ipe/default.nix +++ b/pkgs/applications/graphics/ipe/default.nix @@ -1,8 +1,8 @@ { stdenv, fetchurl, makeWrapper, pkgconfig, zlib, freetype, cairo, lua5, texlive, ghostscript -, libjpeg, libpng, qtbase +, libjpeg, libpng, qtbase, mkDerivation }: -stdenv.mkDerivation rec { +mkDerivation rec { name = "ipe-7.2.13"; src = fetchurl { @@ -20,13 +20,9 @@ stdenv.mkDerivation rec { libjpeg libpng zlib qtbase freetype cairo lua5 texlive ghostscript ]; - nativeBuildInputs = [ makeWrapper pkgconfig ]; + nativeBuildInputs = [ pkgconfig ]; - postFixup = '' - for prog in $out/bin/*; do - wrapProgram "$prog" --prefix PATH : "${texlive}/bin" - done - ''; + qtWrapperArgs = [ ''--prefix PATH : ${texlive}/bin'' ]; enableParallelBuilding = true; @@ -34,7 +30,7 @@ stdenv.mkDerivation rec { meta = { description = "An editor for drawing figures"; - homepage = http://ipe.otfried.org; + homepage = "http://ipe.otfried.org"; license = stdenv.lib.licenses.gpl3Plus; longDescription = '' Ipe is an extensible drawing editor for creating figures in PDF and Postscript format. diff --git a/pkgs/applications/graphics/jbrout/default.nix b/pkgs/applications/graphics/jbrout/default.nix deleted file mode 100644 index 4eb7518cc10..00000000000 --- a/pkgs/applications/graphics/jbrout/default.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ stdenv, fetchsvn, pythonPackages, makeWrapper, fbida, which }: - -let - inherit (pythonPackages) python; -in pythonPackages.buildPythonApplication rec { - pname = "jbrout"; - version = "338"; - - src = fetchsvn { - url = "http://jbrout.googlecode.com/svn/trunk"; - rev = version; - sha256 = "0257ni4vkxgd0qhs73fw5ppw1qpf11j8fgwsqc03b1k1yv3hk4hf"; - }; - - doCheck = false; - - # XXX: patchPhase to avoid this - # File "/nix/store/vnyjxn6h3rbrn49m25yyw7i1chlxglhw-python-2.7.1/lib/python2.7/zipfile.py", line 348, in FileHeader - # len(filename), len(extra)) - #struct.error: ushort format requires 0 <= number <= USHRT_MAX - patchPhase = '' - find | xargs touch - - substituteInPlace setup.py --replace "version=__version__" "version=baseVersion" - ''; - - postInstall = '' - mkdir $out/bin - echo "python $out/${python.sitePackages}/jbrout/jbrout.py" > $out/bin/jbrout - chmod +x $out/bin/jbrout - ''; - - buildInputs = [ python makeWrapper which ]; - propagatedBuildInputs = with pythonPackages; [ pillow lxml pyGtkGlade pyexiv2 fbida ]; - - meta = { - homepage = https://manatlan.com/jbrout/; - description = "Photo manager"; - platforms = stdenv.lib.platforms.linux; - license = stdenv.lib.licenses.gpl2Plus; - }; -} diff --git a/pkgs/applications/graphics/jpegoptim/default.nix b/pkgs/applications/graphics/jpegoptim/default.nix index cc1ca3a0ff2..265ce82b8ac 100644 --- a/pkgs/applications/graphics/jpegoptim/default.nix +++ b/pkgs/applications/graphics/jpegoptim/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Optimize JPEG files"; - homepage = https://www.kokkonen.net/tjko/projects.html ; + homepage = "https://www.kokkonen.net/tjko/projects.html"; license = licenses.gpl2; maintainers = [ maintainers.aristid ]; platforms = platforms.all; diff --git a/pkgs/applications/graphics/jpegrescan/default.nix b/pkgs/applications/graphics/jpegrescan/default.nix index 1c65c7da3a2..5fe35edabdf 100644 --- a/pkgs/applications/graphics/jpegrescan/default.nix +++ b/pkgs/applications/graphics/jpegrescan/default.nix @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "losslessly shrink any JPEG file"; - homepage = https://github.com/kud/jpegrescan; + homepage = "https://github.com/kud/jpegrescan"; license = licenses.publicDomain; maintainers = [ maintainers.ramkromberg ]; platforms = platforms.all; diff --git a/pkgs/applications/graphics/k3d/default.nix b/pkgs/applications/graphics/k3d/default.nix index 31085cd8023..c74f35e4334 100644 --- a/pkgs/applications/graphics/k3d/default.nix +++ b/pkgs/applications/graphics/k3d/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { patches = [ (fetchpatch { /* glibmm 2.50 fix */ - url = https://github.com/K-3D/k3d/commit/c65889d0652490d88a573e47de7a9324bf27bff2.patch; + url = "https://github.com/K-3D/k3d/commit/c65889d0652490d88a573e47de7a9324bf27bff2.patch"; sha256 = "162icv1hicr2dirkb9ijacvg9bhz5j30yfwg7b45ijavk8rns62j"; }) ]; @@ -43,7 +43,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A 3D editor with support for procedural editing"; - homepage = http://www.k-3d.org/; + homepage = "http://www.k-3d.org/"; platforms = platforms.linux; maintainers = [ maintainers.raskin ]; license = licenses.gpl2; diff --git a/pkgs/applications/graphics/kodelife/default.nix b/pkgs/applications/graphics/kodelife/default.nix index 0b4e49dc2b5..e5aac9b8823 100644 --- a/pkgs/applications/graphics/kodelife/default.nix +++ b/pkgs/applications/graphics/kodelife/default.nix @@ -9,7 +9,7 @@ stdenv.mkDerivation rec { pname = "kodelife"; - version = "0.8.8.110"; + version = "0.9.0.129"; suffix = { aarch64-linux = "linux-arm64"; @@ -21,10 +21,10 @@ stdenv.mkDerivation rec { src = fetchzip { url = "https://hexler.net/pub/${pname}/${pname}-${version}-${suffix}.zip"; sha256 = { - aarch64-linux = "1lcpj1mgkvksq1d08ibh59y0dmdh7zm77wi5ziqhg3p5g9nxyasd"; - armv7l-linux = "0sljy06302x567jqw5lagbyhpc3j140jk4wccacxjrbb6hcx3l42"; - x86_64-darwin = "1b058s9kny026q395nj99v8hggxkgv43nnjkmx1a2siajw0db94c"; - x86_64-linux = "1q77cpz4gflrvfz6dm6np8sqbwyr235gq7y4pzs4hnqbrdzd4nwl"; + aarch64-linux = "0z2fqlf156348ha3zhv16kvqdx68fbwbzch2gzjm9x1na9n5k1ra"; + armv7l-linux = "1ppwgrmgl1j2ws9mhrscvvkamd69a6xw7x35df6d30cyj97r0mzy"; + x86_64-darwin = "0f8vn6m3xzsiyxm2ka5wkbp63wvzrix6g1xrbpvcm3v2llmychkl"; + x86_64-linux = "035c1nlw0nim057sz3axpkcgkafqbm6gpr8hwr097vlrqll6w3dv"; }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); }; @@ -32,6 +32,7 @@ stdenv.mkDerivation rec { dontBuild = true; dontStrip = true; dontPatchELF = true; + preferLocalBuild = true; installPhase = '' mkdir -p $out/bin diff --git a/pkgs/applications/graphics/krita/default.nix b/pkgs/applications/graphics/krita/default.nix index 3cc4834d756..6ad67f75b21 100644 --- a/pkgs/applications/graphics/krita/default.nix +++ b/pkgs/applications/graphics/krita/default.nix @@ -17,6 +17,9 @@ mkDerivation rec { sha256 = "1sx4j4brk71bas3cpqzk4bd8bknyl3x4fdg5pv4r7pcfd3vpq2vy"; }; + # *somtimes* fails with can't find ui_manager.h, also see https://github.com/NixOS/nixpkgs/issues/35359 + enableParallelBuilding = false; + nativeBuildInputs = [ cmake extra-cmake-modules python3Packages.sip makeWrapper ]; buildInputs = [ @@ -45,7 +48,7 @@ mkDerivation rec { meta = with lib; { description = "A free and open source painting application"; - homepage = https://krita.org/; + homepage = "https://krita.org/"; maintainers = with maintainers; [ abbradar ]; platforms = platforms.linux; license = licenses.gpl2; diff --git a/pkgs/applications/graphics/krop/default.nix b/pkgs/applications/graphics/krop/default.nix index 401e5f6fc57..818fc63535e 100644 --- a/pkgs/applications/graphics/krop/default.nix +++ b/pkgs/applications/graphics/krop/default.nix @@ -28,7 +28,7 @@ python3Packages.buildPythonApplication rec { doCheck = false; meta = { - homepage = http://arminstraub.com/software/krop; + homepage = "http://arminstraub.com/software/krop"; description = "Graphical tool to crop the pages of PDF files"; longDescription = '' Krop is a tool that allows you to optimise your PDF files, and remove diff --git a/pkgs/applications/graphics/leocad/default.nix b/pkgs/applications/graphics/leocad/default.nix index 201a4fe113e..5e950eeac04 100644 --- a/pkgs/applications/graphics/leocad/default.nix +++ b/pkgs/applications/graphics/leocad/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "CAD program for creating virtual LEGO models"; - homepage = https://www.leocad.org/; + homepage = "https://www.leocad.org/"; license = licenses.gpl2; platforms = platforms.linux; }; diff --git a/pkgs/applications/graphics/luminance-hdr/default.nix b/pkgs/applications/graphics/luminance-hdr/default.nix index 94899c937a8..811a907746d 100644 --- a/pkgs/applications/graphics/luminance-hdr/default.nix +++ b/pkgs/applications/graphics/luminance-hdr/default.nix @@ -1,9 +1,10 @@ -{ stdenv, cmake, fetchFromGitHub, pkgconfig, boost, exiv2, fftwFloat, gsl +{ stdenv, mkDerivation, cmake, fetchFromGitHub, pkgconfig +, boost, exiv2, fftwFloat, gsl , ilmbase, lcms2, libraw, libtiff, openexr , qtbase, qtdeclarative, qttools, qtwebengine, eigen }: -stdenv.mkDerivation rec { +mkDerivation rec { pname = "luminance-hdr"; version = "2.6.0"; @@ -24,7 +25,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake pkgconfig ]; meta = with stdenv.lib; { - homepage = http://qtpfsgui.sourceforge.net/; + homepage = "http://qtpfsgui.sourceforge.net/"; description = "A complete open source solution for HDR photography"; license = licenses.gpl2; platforms = platforms.linux; diff --git a/pkgs/applications/graphics/meh/default.nix b/pkgs/applications/graphics/meh/default.nix index 7ad8c388a20..0b2e5bc3777 100644 --- a/pkgs/applications/graphics/meh/default.nix +++ b/pkgs/applications/graphics/meh/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation { meta = { description = "A minimal image viewer using raw XLib"; - homepage = https://www.johnhawthorn.com/meh/; + homepage = "https://www.johnhawthorn.com/meh/"; license = stdenv.lib.licenses.mit; platforms = stdenv.lib.platforms.linux; }; diff --git a/pkgs/applications/graphics/meshlab/default.nix b/pkgs/applications/graphics/meshlab/default.nix index 9733f1e2efa..6ac937dcb93 100644 --- a/pkgs/applications/graphics/meshlab/default.nix +++ b/pkgs/applications/graphics/meshlab/default.nix @@ -126,7 +126,7 @@ in mkDerivation { meta = { description = "A system for processing and editing 3D triangular meshes."; - homepage = http://www.meshlab.net/; + homepage = "http://www.meshlab.net/"; license = lib.licenses.gpl3; maintainers = with lib.maintainers; [viric]; platforms = with lib.platforms; linux; diff --git a/pkgs/applications/graphics/minidjvu/default.nix b/pkgs/applications/graphics/minidjvu/default.nix index d629c776194..2af79659ced 100644 --- a/pkgs/applications/graphics/minidjvu/default.nix +++ b/pkgs/applications/graphics/minidjvu/default.nix @@ -3,7 +3,7 @@ stdenv.mkDerivation { name = "minidjvu-0.8"; src = fetchurl { - url = mirror://sourceforge/minidjvu/minidjvu-0.8.tar.gz; + url = "mirror://sourceforge/minidjvu/minidjvu-0.8.tar.gz"; sha256 = "0jmpvy4g68k6xgplj9zsl6brg6vi81mx3nx2x9hfbr1f4zh95j79"; }; @@ -18,7 +18,7 @@ stdenv.mkDerivation { ''; meta = { - homepage = http://djvu.sourceforge.net/djview4.html; + homepage = "http://djvu.sourceforge.net/djview4.html"; description = "Black-and-white djvu page encoder and decoder that use interpage information"; license = stdenv.lib.licenses.gpl2Plus; maintainers = [ stdenv.lib.maintainers.viric ]; diff --git a/pkgs/applications/graphics/mozjpeg/default.nix b/pkgs/applications/graphics/mozjpeg/default.nix index 63cc4a3a8d3..e17664a018a 100644 --- a/pkgs/applications/graphics/mozjpeg/default.nix +++ b/pkgs/applications/graphics/mozjpeg/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { The idea is to reduce transfer times for JPEGs on the Web, thus reducing page load times. ''; - homepage = https://github.com/mozilla/mozjpeg ; + homepage = "https://github.com/mozilla/mozjpeg"; license = stdenv.lib.licenses.bsd3; maintainers = [ stdenv.lib.maintainers.aristid ]; platforms = stdenv.lib.platforms.all; diff --git a/pkgs/applications/graphics/mtpaint/default.nix b/pkgs/applications/graphics/mtpaint/default.nix index 7274bdacd9d..91278c9881f 100644 --- a/pkgs/applications/graphics/mtpaint/default.nix +++ b/pkgs/applications/graphics/mtpaint/default.nix @@ -32,7 +32,7 @@ stdenv.mkDerivation rec { Due to its simplicity and lack of dependencies it runs well on GNU/Linux, Windows and older PC hardware. ''; - homepage = http://mtpaint.sourceforge.net/; + homepage = "http://mtpaint.sourceforge.net/"; license = stdenv.lib.licenses.gpl3; platforms = stdenv.lib.platforms.linux; maintainers = [ stdenv.lib.maintainers.vklquevs ]; diff --git a/pkgs/applications/graphics/nomacs/default.nix b/pkgs/applications/graphics/nomacs/default.nix index 48a79e8844e..f0d9329bc5a 100644 --- a/pkgs/applications/graphics/nomacs/default.nix +++ b/pkgs/applications/graphics/nomacs/default.nix @@ -63,11 +63,11 @@ mkDerivation rec { "-DUSE_SYSTEM_QUAZIP=ON"]; meta = with stdenv.lib; { - homepage = https://nomacs.org; + homepage = "https://nomacs.org"; description = "Qt-based image viewer"; maintainers = [maintainers.ahmedtd]; license = licenses.gpl3Plus; - repositories.git = https://github.com/nomacs/nomacs.git; + repositories.git = "https://github.com/nomacs/nomacs.git"; inherit (qtbase.meta) platforms; }; } diff --git a/pkgs/applications/graphics/openimageio/2.x.nix b/pkgs/applications/graphics/openimageio/2.x.nix index 9c4a8b22939..89d49a15145 100644 --- a/pkgs/applications/graphics/openimageio/2.x.nix +++ b/pkgs/applications/graphics/openimageio/2.x.nix @@ -57,7 +57,7 @@ stdenv.mkDerivation rec { ]; meta = with stdenv.lib; { - homepage = http://www.openimageio.org; + homepage = "http://www.openimageio.org"; description = "A library and tools for reading and writing images"; license = licenses.bsd3; maintainers = with maintainers; [ goibhniu jtojnar ]; diff --git a/pkgs/applications/graphics/openimageio/default.nix b/pkgs/applications/graphics/openimageio/default.nix index 23cad7e859d..1f2861e7109 100644 --- a/pkgs/applications/graphics/openimageio/default.nix +++ b/pkgs/applications/graphics/openimageio/default.nix @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { ]; meta = with stdenv.lib; { - homepage = http://www.openimageio.org; + homepage = "http://www.openimageio.org"; description = "A library and tools for reading and writing images"; license = licenses.bsd3; maintainers = [ maintainers.goibhniu ]; diff --git a/pkgs/applications/graphics/openscad/default.nix b/pkgs/applications/graphics/openscad/default.nix index 2c95f6d403f..95af658ddd3 100644 --- a/pkgs/applications/graphics/openscad/default.nix +++ b/pkgs/applications/graphics/openscad/default.nix @@ -77,7 +77,7 @@ mkDerivation rec { machine parts but pretty sure is not what you are looking for when you are more interested in creating computer-animated movies. ''; - homepage = http://openscad.org/; + homepage = "http://openscad.org/"; license = stdenv.lib.licenses.gpl2; platforms = stdenv.lib.platforms.unix; maintainers = with stdenv.lib.maintainers; diff --git a/pkgs/applications/graphics/panotools/default.nix b/pkgs/applications/graphics/panotools/default.nix index 719aca5096a..c03bdd8331b 100644 --- a/pkgs/applications/graphics/panotools/default.nix +++ b/pkgs/applications/graphics/panotools/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { #doCheck = true; meta = { - homepage = http://panotools.sourceforge.net/; + homepage = "http://panotools.sourceforge.net/"; description = "Free software suite for authoring and displaying virtual reality panoramas"; license = stdenv.lib.licenses.gpl2Plus; diff --git a/pkgs/applications/graphics/paraview/default.nix b/pkgs/applications/graphics/paraview/default.nix index ac01c28ebd4..15d70d14308 100644 --- a/pkgs/applications/graphics/paraview/default.nix +++ b/pkgs/applications/graphics/paraview/default.nix @@ -59,7 +59,7 @@ mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = http://www.paraview.org/; + homepage = "http://www.paraview.org/"; description = "3D Data analysis and visualization application"; license = licenses.free; maintainers = with maintainers; [ guibert ]; diff --git a/pkgs/applications/graphics/pbrt/default.nix b/pkgs/applications/graphics/pbrt/default.nix index 78f6d8bcbaf..fa3034cb3b0 100644 --- a/pkgs/applications/graphics/pbrt/default.nix +++ b/pkgs/applications/graphics/pbrt/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation { buildInputs = [ git flex bison cmake zlib ]; meta = with stdenv.lib; { - homepage = http://pbrt.org; + homepage = "http://pbrt.org"; description = "The renderer described in the third edition of the book 'Physically Based Rendering: From Theory To Implementation'"; platforms = platforms.linux ; license = licenses.bsd2; diff --git a/pkgs/applications/graphics/pdfcpu/default.nix b/pkgs/applications/graphics/pdfcpu/default.nix index f31506ce733..b127be821c1 100644 --- a/pkgs/applications/graphics/pdfcpu/default.nix +++ b/pkgs/applications/graphics/pdfcpu/default.nix @@ -17,7 +17,7 @@ buildGoModule rec { meta = with stdenv.lib; { description = "A PDF processor written in Go"; - homepage = https://pdfcpu.io; + homepage = "https://pdfcpu.io"; license = licenses.asl20; maintainers = with maintainers; [ doronbehar ]; platforms = platforms.all; diff --git a/pkgs/applications/graphics/photoflow/default.nix b/pkgs/applications/graphics/photoflow/default.nix index 78d16e69226..9fec8b99c1b 100644 --- a/pkgs/applications/graphics/photoflow/default.nix +++ b/pkgs/applications/graphics/photoflow/default.nix @@ -47,7 +47,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "A fully non-destructive photo retouching program providing a complete RAW image editing workflow"; - homepage = https://aferrero2707.github.io/PhotoFlow/; + homepage = "https://aferrero2707.github.io/PhotoFlow/"; license = licenses.gpl3Plus; maintainers = [ maintainers.MtP ]; platforms = platforms.linux; diff --git a/pkgs/applications/graphics/photoqt/default.nix b/pkgs/applications/graphics/photoqt/default.nix index 14c49d30004..71c63bc82aa 100644 --- a/pkgs/applications/graphics/photoqt/default.nix +++ b/pkgs/applications/graphics/photoqt/default.nix @@ -40,7 +40,7 @@ mkDerivation rec { enableParallelBuilding = true; meta = { - homepage = https://photoqt.org/; + homepage = "https://photoqt.org/"; description = "Simple, yet powerful and good looking image viewer"; license = stdenv.lib.licenses.gpl2Plus; platforms = stdenv.lib.platforms.unix; diff --git a/pkgs/applications/graphics/phototonic/default.nix b/pkgs/applications/graphics/phototonic/default.nix index 5e7fb5cf7a0..7020bf6c83e 100644 --- a/pkgs/applications/graphics/phototonic/default.nix +++ b/pkgs/applications/graphics/phototonic/default.nix @@ -1,6 +1,6 @@ -{ stdenv, fetchFromGitHub, qtbase, qmake, exiv2 }: +{ mkDerivation, stdenv, fetchFromGitHub, qtbase, qmake, exiv2 }: -stdenv.mkDerivation rec { +mkDerivation rec { pname = "phototonic"; version = "2.1"; @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "An image viewer and organizer"; - homepage = https://sourceforge.net/projects/phototonic/; + homepage = "https://sourceforge.net/projects/phototonic/"; license = licenses.gpl3; platforms = platforms.linux; maintainers = with maintainers; [ pSub ]; diff --git a/pkgs/applications/graphics/pinta/default.nix b/pkgs/applications/graphics/pinta/default.nix index 14090376684..af51c78a169 100644 --- a/pkgs/applications/graphics/pinta/default.nix +++ b/pkgs/applications/graphics/pinta/default.nix @@ -74,7 +74,7 @@ buildDotnetPackage rec { ''; meta = { - homepage = http://www.pinta-project.com/; + homepage = "http://www.pinta-project.com/"; description = "Drawing/editing program modeled after Paint.NET"; license = stdenv.lib.licenses.mit; maintainers = with stdenv.lib.maintainers; [ ]; diff --git a/pkgs/applications/graphics/potrace/default.nix b/pkgs/applications/graphics/potrace/default.nix index 35ab27bcbf6..dd8e84349fa 100644 --- a/pkgs/applications/graphics/potrace/default.nix +++ b/pkgs/applications/graphics/potrace/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { doCheck = true; meta = with stdenv.lib; { - homepage = http://potrace.sourceforge.net/; + homepage = "http://potrace.sourceforge.net/"; description = "A tool for tracing a bitmap, which means, transforming a bitmap into a smooth, scalable image"; platforms = platforms.unix; maintainers = [ maintainers.pSub ]; diff --git a/pkgs/applications/graphics/pqiv/default.nix b/pkgs/applications/graphics/pqiv/default.nix index 7639a2a9c76..505f28a2451 100644 --- a/pkgs/applications/graphics/pqiv/default.nix +++ b/pkgs/applications/graphics/pqiv/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation (rec { meta = with stdenv.lib; { description = "Powerful image viewer with minimal UI"; - homepage = http://www.pberndt.com/Programme/Linux/pqiv; + homepage = "http://www.pberndt.com/Programme/Linux/pqiv"; license = licenses.gpl3; maintainers = []; platforms = platforms.linux; diff --git a/pkgs/applications/graphics/processing/default.nix b/pkgs/applications/graphics/processing/default.nix index 9972ea75709..cad6a35ce3f 100644 --- a/pkgs/applications/graphics/processing/default.nix +++ b/pkgs/applications/graphics/processing/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { # do not download a file during build ${xmlstarlet}/bin/xmlstarlet ed --inplace -P -d '//get[@src="http://download.processing.org/reference.zip"]' build/build.xml install -D -m0444 ${fetchurl { - url = http://download.processing.org/reference.zip; + url = "http://download.processing.org/reference.zip"; sha256 = "198bpk8mzns6w5h0zdf50wr6iv7sgdi6v7jznj5rbsnpgyilxz35"; } } ./java/reference.zip @@ -56,7 +56,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A language and IDE for electronic arts"; - homepage = https://processing.org; + homepage = "https://processing.org"; license = licenses.gpl2Plus; platforms = platforms.linux; }; diff --git a/pkgs/applications/graphics/qcomicbook/default.nix b/pkgs/applications/graphics/qcomicbook/default.nix index 4d416a7c106..f9dc494b4b3 100644 --- a/pkgs/applications/graphics/qcomicbook/default.nix +++ b/pkgs/applications/graphics/qcomicbook/default.nix @@ -1,6 +1,6 @@ -{ stdenv, fetchFromGitHub, pkgconfig, cmake, qtbase, qttools, qtx11extras, poppler }: +{ mkDerivation, stdenv, fetchFromGitHub, pkgconfig, cmake, qtbase, qttools, qtx11extras, poppler }: -stdenv.mkDerivation rec { +mkDerivation rec { pname = "qcomicbook"; version = "0.9.1"; @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = https://github.com/stolowski/QComicBook; + homepage = "https://github.com/stolowski/QComicBook"; description = "Comic book reader in Qt5"; license = licenses.gpl2; diff --git a/pkgs/applications/graphics/qimgv/default.nix b/pkgs/applications/graphics/qimgv/default.nix index 6402868b922..4bbf6aa31d3 100644 --- a/pkgs/applications/graphics/qimgv/default.nix +++ b/pkgs/applications/graphics/qimgv/default.nix @@ -1,46 +1,67 @@ -{ mkDerivation, fetchFromGitHub, lib -, pkgconfig, cmake -, exiv2, qtbase, qtimageformats, qtsvg +{ mkDerivation +, lib +, fetchFromGitHub +, fetchpatch + +, cmake +, pkgconfig + +, exiv2 +, mpv +, opencv4 +, qtbase +, qtimageformats +, qtsvg }: mkDerivation rec { pname = "qimgv"; - version = "0.8.9"; + version = "0.9"; src = fetchFromGitHub { owner = "easymodo"; repo = pname; rev = "v${version}"; - sha256 = "0cmya06j466v0pirhxbzbj1vbz0346y7rbc1gbv4n9xcp6c6bln6"; + sha256 = "1yynjk47gjf2kjfb0ak4blxpb5irgqc1k59z726lwjd6gvg689fl"; }; - cmakeFlags = [ - # Video support appears to be broken; the following gets printed upon - # attempting to view an mp4, webm, or mkv (and probably all video formats): - # - # [VideoPlayerInitProxy] Error - could not load player library - # "qimgv_player_mpv" - # - # GIFs are unaffected. If this ever gets addressed, all that is necessary is - # to add `mpv` to the arguments list and to `buildInputs`, and to remove - # `cmakeFlags`. - "-DVIDEO_SUPPORT=OFF" + patches = [ + # QtAtomicInt's `storeRelaxed` was introduced in Qt 5.14, while nixpkgs only + # has Qt 5.12. This appears to be the only instance of Qt 5.12 + # incompatibility, and will be fixed in the next release. + (fetchpatch { + url = "https://github.com/easymodo/qimgv/commit/a39d6086ceb9445d2c16943e0719096a99920bf8.patch"; + sha256 = "1z3ngv6i316hrdcdzig4jg6bcdbgfxjaxvm2jcfcw2dnfbfiq47s"; + }) ]; nativeBuildInputs = [ - pkgconfig cmake + pkgconfig ]; buildInputs = [ exiv2 + mpv + opencv4 qtbase qtimageformats qtsvg ]; + postPatch = '' + sed -i "s@/usr/bin/mpv@${mpv}/bin/mpv@" \ + qimgv/settings.cpp + ''; + + # Wrap the library path so it can see `libqimgv_player_mpv.so`, which is used + # to play video files within qimgv itself. + qtWrapperArgs = [ + "--prefix LD_LIBRARY_PATH : ${placeholder "out"}/lib" + ]; + meta = with lib; { - description = "Qt5 image viewer with optional video support"; + description = "A Qt5 image viewer with optional video support"; homepage = "https://github.com/easymodo/qimgv"; license = licenses.gpl3; platforms = platforms.linux; diff --git a/pkgs/applications/graphics/qimgv/qt5-12-compat.diff b/pkgs/applications/graphics/qimgv/qt5-12-compat.diff new file mode 100644 index 00000000000..da64759e22d --- /dev/null +++ b/pkgs/applications/graphics/qimgv/qt5-12-compat.diff @@ -0,0 +1,13 @@ +diff --git a/qimgv/components/directorymanager/watchers/linux/linuxworker.cpp b/qimgv/components/directorymanager/watchers/linux/linuxworker.cpp +index 96ec9d3..6d95d08 100644 +--- a/qimgv/components/directorymanager/watchers/linux/linuxworker.cpp ++++ b/qimgv/components/directorymanager/watchers/linux/linuxworker.cpp +@@ -21,7 +21,7 @@ void LinuxWorker::setDescriptor(int desc) { + + void LinuxWorker::run() { + emit started(); +- isRunning.storeRelaxed(true); ++ isRunning.store(true); + + if (fd == -1) { + qDebug() << TAG << "File descriptor isn't set! Stopping"; diff --git a/pkgs/applications/graphics/qiv/default.nix b/pkgs/applications/graphics/qiv/default.nix index 750217d9918..d3dd917d7b7 100644 --- a/pkgs/applications/graphics/qiv/default.nix +++ b/pkgs/applications/graphics/qiv/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation (rec { meta = with stdenv.lib; { description = "Quick image viewer"; - homepage = http://spiegl.de/qiv/; + homepage = "http://spiegl.de/qiv/"; inherit version; license = licenses.gpl2; platforms = platforms.linux; diff --git a/pkgs/applications/graphics/qscreenshot/default.nix b/pkgs/applications/graphics/qscreenshot/default.nix index fafc76a76ff..1653ea92720 100644 --- a/pkgs/applications/graphics/qscreenshot/default.nix +++ b/pkgs/applications/graphics/qscreenshot/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Simple creation and editing of screenshots"; - homepage = https://sourceforge.net/projects/qscreenshot/; + homepage = "https://sourceforge.net/projects/qscreenshot/"; license = licenses.gpl2; platforms = platforms.all; maintainers = [ maintainers.bjornfor ]; diff --git a/pkgs/applications/graphics/rapid-photo-downloader/default.nix b/pkgs/applications/graphics/rapid-photo-downloader/default.nix index afdd2262e50..aa6db0accdb 100644 --- a/pkgs/applications/graphics/rapid-photo-downloader/default.nix +++ b/pkgs/applications/graphics/rapid-photo-downloader/default.nix @@ -80,7 +80,7 @@ mkDerivationWith python3Packages.buildPythonApplication rec { meta = with stdenv.lib; { description = "Photo and video importer for cameras, phones, and memory cards"; - homepage = https://www.damonlynch.net/rapid/; + homepage = "https://www.damonlynch.net/rapid/"; license = licenses.gpl3; platforms = platforms.linux; maintainers = with maintainers; [ jfrankenau ]; diff --git a/pkgs/applications/graphics/rawtherapee/default.nix b/pkgs/applications/graphics/rawtherapee/default.nix index 3f89b7f8b3a..812c26f56e5 100644 --- a/pkgs/applications/graphics/rawtherapee/default.nix +++ b/pkgs/applications/graphics/rawtherapee/default.nix @@ -36,7 +36,7 @@ stdenv.mkDerivation rec { meta = { description = "RAW converter and digital photo processing software"; - homepage = http://www.rawtherapee.com/; + homepage = "http://www.rawtherapee.com/"; license = stdenv.lib.licenses.gpl3Plus; maintainers = with stdenv.lib.maintainers; [ jcumming mahe the-kenny ]; platforms = with stdenv.lib.platforms; linux; diff --git a/pkgs/applications/graphics/renderdoc/default.nix b/pkgs/applications/graphics/renderdoc/default.nix index e345fcce01e..bf0b92b6f6d 100644 --- a/pkgs/applications/graphics/renderdoc/default.nix +++ b/pkgs/applications/graphics/renderdoc/default.nix @@ -65,7 +65,7 @@ mkDerivation rec { meta = with stdenv.lib; { description = "A single-frame graphics debugger"; - homepage = https://renderdoc.org/; + homepage = "https://renderdoc.org/"; license = licenses.mit; longDescription = '' RenderDoc is a free MIT licensed stand-alone graphics debugger that diff --git a/pkgs/applications/graphics/runwayml/default.nix b/pkgs/applications/graphics/runwayml/default.nix index c3f747837e0..eb8ecc34b8f 100644 --- a/pkgs/applications/graphics/runwayml/default.nix +++ b/pkgs/applications/graphics/runwayml/default.nix @@ -37,7 +37,7 @@ in meta = with lib; { description = "Machine learning for creators"; - homepage = https://runwayml.com/; + homepage = "https://runwayml.com/"; license = licenses.unfree; maintainers = with maintainers; [ prusnak ]; platforms = [ "x86_64-linux" ]; diff --git a/pkgs/applications/graphics/rx/default.nix b/pkgs/applications/graphics/rx/default.nix index b4338d8f3cd..53e8109fef5 100644 --- a/pkgs/applications/graphics/rx/default.nix +++ b/pkgs/applications/graphics/rx/default.nix @@ -1,5 +1,5 @@ { stdenv, rustPlatform, fetchFromGitHub, makeWrapper -, cmake, pkgconfig +, cmake, pkg-config , xorg ? null , libGL ? null }: @@ -7,18 +7,18 @@ with stdenv.lib; rustPlatform.buildRustPackage rec { pname = "rx"; - version = "0.3.2"; + version = "0.4.0"; src = fetchFromGitHub { owner = "cloudhead"; repo = pname; rev = "v${version}"; - sha256 = "1n5s7v2z13550gkqz7w6dw62jdy60wdi8w1lfa23609b4yhg4w94"; + sha256 = "1pln65pqy39ijrld11d06klwzfhhzmrgdaxijpx9q7w9z66zmqb8"; }; - cargoSha256 = "077cs9bf7f3h5aschcv7pbbnpaq1rg79j7f6pnyrzkmn7gxzicg3"; + cargoSha256 = "143a5x61s7ywk0ljqd10jkfvs6lrhlibkm2a9lw41wq13mgzb78j"; - nativeBuildInputs = [ cmake pkgconfig makeWrapper ]; + nativeBuildInputs = [ cmake pkg-config makeWrapper ]; buildInputs = optionals stdenv.isLinux (with xorg; [ @@ -37,7 +37,7 @@ rustPlatform.buildRustPackage rec { meta = { description = "Modern and extensible pixel editor implemented in Rust"; - homepage = "https://cloudhead.io/rx/"; + homepage = "https://rx.cloudhead.io/"; license = licenses.gpl3; maintainers = with maintainers; [ minijackson filalex77 ]; platforms = [ "x86_64-linux" ]; diff --git a/pkgs/applications/graphics/sane/backends/airscan/default.nix b/pkgs/applications/graphics/sane/backends/airscan/default.nix new file mode 100644 index 00000000000..11529eee210 --- /dev/null +++ b/pkgs/applications/graphics/sane/backends/airscan/default.nix @@ -0,0 +1,27 @@ +{ lib, stdenv, fetchFromGitHub, pkg-config, avahi, libsoup, libjpeg +, sane-backends, meson, ninja }: +stdenv.mkDerivation rec { + pname = "sane-airscan"; + version = "0.9.17"; + + nativeBuildInputs = [ meson ninja pkg-config ]; + buildInputs = [ avahi libsoup libjpeg sane-backends ]; + + src = fetchFromGitHub { + owner = "alexpevzner"; + repo = pname; + rev = version; + sha256 = "03y0c1z5s3wbvxa9nvji62w42cmvcgm2sw72j7wm831995q3abmx"; + }; + + meta = with lib; { + homepage = "https://github.com/alexpevzner/sane-airscan"; + description = "Scanner Access Now Easy - Apple AirScan (eSCL) driver"; + longDescription = '' + sane-airscan: Linux support of Apple AirScan (eSCL) compatible document scanners. + ''; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ zaninime ]; + }; +} diff --git a/pkgs/applications/graphics/sane/backends/brscan4/default.nix b/pkgs/applications/graphics/sane/backends/brscan4/default.nix index cd75088ea53..2ada41ac98a 100644 --- a/pkgs/applications/graphics/sane/backends/brscan4/default.nix +++ b/pkgs/applications/graphics/sane/backends/brscan4/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, callPackage, patchelf, makeWrapper, coreutils, libusb }: +{ stdenv, fetchurl, callPackage, patchelf, makeWrapper, coreutils, libusb-compat-0_1 }: let myPatchElf = file: with stdenv.lib; '' @@ -30,13 +30,13 @@ in stdenv.mkDerivation rec { ''; nativeBuildInputs = [ makeWrapper patchelf coreutils udevRules ]; - buildInputs = [ libusb ]; + buildInputs = [ libusb-compat-0_1 ]; dontBuild = true; patchPhase = '' ${myPatchElf "opt/brother/scanner/brscan4/brsaneconfig4"} - RPATH=${libusb.out}/lib + RPATH=${libusb-compat-0_1.out}/lib for a in usr/lib64/sane/*.so*; do if ! test -L $a; then patchelf --set-rpath $RPATH $a @@ -86,7 +86,7 @@ in stdenv.mkDerivation rec { meta = { description = "Brother brscan4 sane backend driver"; - homepage = http://www.brother.com; + homepage = "http://www.brother.com"; platforms = stdenv.lib.platforms.linux; license = stdenv.lib.licenses.unfree; maintainers = with stdenv.lib.maintainers; [ jraygauthier ]; diff --git a/pkgs/applications/graphics/sane/backends/brscan4/udev_rules_type1.nix b/pkgs/applications/graphics/sane/backends/brscan4/udev_rules_type1.nix index da136a7f9e1..682e401c069 100644 --- a/pkgs/applications/graphics/sane/backends/brscan4/udev_rules_type1.nix +++ b/pkgs/applications/graphics/sane/backends/brscan4/udev_rules_type1.nix @@ -47,7 +47,7 @@ stdenv.mkDerivation rec { meta = { description = "Brother type1 scanners udev rules"; - homepage = http://www.brother.com; + homepage = "http://www.brother.com"; platforms = stdenv.lib.platforms.linux; license = stdenv.lib.licenses.unfree; maintainers = with stdenv.lib.maintainers; [ jraygauthier ]; diff --git a/pkgs/applications/graphics/sane/backends/dsseries/default.nix b/pkgs/applications/graphics/sane/backends/dsseries/default.nix index d4165be3784..37ac0298706 100644 --- a/pkgs/applications/graphics/sane/backends/dsseries/default.nix +++ b/pkgs/applications/graphics/sane/backends/dsseries/default.nix @@ -45,7 +45,7 @@ stdenv.mkDerivation rec { meta = { description = "Brother DSSeries SANE backend driver"; - homepage = http://www.brother.com; + homepage = "http://www.brother.com"; platforms = stdenv.lib.platforms.linux; license = stdenv.lib.licenses.unfree; maintainers = with stdenv.lib.maintainers; [ callahad ]; diff --git a/pkgs/applications/graphics/sane/frontends.nix b/pkgs/applications/graphics/sane/frontends.nix index b00f8f6c58d..885dff311b8 100644 --- a/pkgs/applications/graphics/sane/frontends.nix +++ b/pkgs/applications/graphics/sane/frontends.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, sane-backends, libX11, gtk2, pkgconfig, libusb ? null }: +{ stdenv, fetchurl, sane-backends, libX11, gtk2, pkgconfig, libusb-compat-0_1 ? null }: stdenv.mkDerivation rec { pname = "sane-frontends"; @@ -14,14 +14,14 @@ stdenv.mkDerivation rec { ''; buildInputs = [ sane-backends libX11 gtk2 ] - ++ stdenv.lib.optional (libusb != null) libusb; + ++ stdenv.lib.optional (libusb-compat-0_1 != null) libusb-compat-0_1; nativeBuildInputs = [ pkgconfig ]; enableParallelBuilding = true; meta = with stdenv.lib; { description = "Scanner Access Now Easy"; - homepage = http://www.sane-project.org/; + homepage = "http://www.sane-project.org/"; license = licenses.gpl2Plus; maintainers = with maintainers; [ peti ]; platforms = platforms.linux; diff --git a/pkgs/applications/graphics/sane/xsane.nix b/pkgs/applications/graphics/sane/xsane.nix index 09b431fdb11..04d19dee8a8 100644 --- a/pkgs/applications/graphics/sane/xsane.nix +++ b/pkgs/applications/graphics/sane/xsane.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, sane-backends, sane-frontends, libX11, gtk2, pkgconfig, libpng -, libusb ? null +, libusb-compat-0_1 ? null , gimpSupport ? false, gimp ? null }: @@ -20,11 +20,11 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkgconfig ]; buildInputs = [libpng sane-backends sane-frontends libX11 gtk2 ] - ++ (if libusb != null then [libusb] else []) + ++ (if libusb-compat-0_1 != null then [libusb-compat-0_1] else []) ++ stdenv.lib.optional gimpSupport gimp; meta = { - homepage = http://www.sane-project.org/; + homepage = "http://www.sane-project.org/"; description = "Graphical scanning frontend for sane"; license = stdenv.lib.licenses.gpl2Plus; maintainers = with stdenv.lib.maintainers; [peti]; diff --git a/pkgs/applications/graphics/scantailor/advanced.nix b/pkgs/applications/graphics/scantailor/advanced.nix index f9d6c87675f..e4598193469 100644 --- a/pkgs/applications/graphics/scantailor/advanced.nix +++ b/pkgs/applications/graphics/scantailor/advanced.nix @@ -17,7 +17,7 @@ mkDerivation rec { buildInputs = [ libjpeg libpng libtiff boost qtbase ]; meta = with stdenv.lib; { - homepage = https://github.com/4lex4/scantailor-advanced; + homepage = "https://github.com/4lex4/scantailor-advanced"; description = "Interactive post-processing tool for scanned pages"; license = licenses.gpl3Plus; maintainers = with maintainers; [ jfrankenau ]; diff --git a/pkgs/applications/graphics/scantailor/default.nix b/pkgs/applications/graphics/scantailor/default.nix index 14efe48f30d..bc54f3aa627 100644 --- a/pkgs/applications/graphics/scantailor/default.nix +++ b/pkgs/applications/graphics/scantailor/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation { enableParallelBuilding = true; meta = { - homepage = http://scantailor.org/; + homepage = "http://scantailor.org/"; description = "Interactive post-processing tool for scanned pages"; license = stdenv.lib.licenses.gpl3Plus; diff --git a/pkgs/applications/graphics/screencloud/default.nix b/pkgs/applications/graphics/screencloud/default.nix index 88bbbd9d864..11e37c4bf64 100644 --- a/pkgs/applications/graphics/screencloud/default.nix +++ b/pkgs/applications/graphics/screencloud/default.nix @@ -68,7 +68,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = https://screencloud.net/; + homepage = "https://screencloud.net/"; description = "Client for Screencloud, an easy to use screenshot sharing tool"; license = stdenv.lib.licenses.gpl2; maintainers = with stdenv.lib.maintainers; [ forkk ]; diff --git a/pkgs/applications/graphics/shotwell/default.nix b/pkgs/applications/graphics/shotwell/default.nix index 79bc743fbf0..b03d0a01dd6 100644 --- a/pkgs/applications/graphics/shotwell/default.nix +++ b/pkgs/applications/graphics/shotwell/default.nix @@ -39,11 +39,11 @@ stdenv.mkDerivation rec { pname = "shotwell"; - version = "0.31.0"; + version = "0.31.1"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "1pwq953wl7h9cvw7rvlr6pcbq9w28kkr7ddb8x2si81ngp0imwyx"; + sha256 = "0mbgrad4d4snffw2z3rkhwqq1bkxdgy52pblx99vjadvpgspb034"; }; nativeBuildInputs = [ @@ -100,7 +100,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Popular photo organizer for the GNOME desktop"; - homepage = https://wiki.gnome.org/Apps/Shotwell; + homepage = "https://wiki.gnome.org/Apps/Shotwell"; license = licenses.lgpl21Plus; maintainers = with maintainers; [domenkozar]; platforms = platforms.linux; diff --git a/pkgs/applications/graphics/shutter/default.nix b/pkgs/applications/graphics/shutter/default.nix index dd41ee4c3f8..cddc99eebe2 100644 --- a/pkgs/applications/graphics/shutter/default.nix +++ b/pkgs/applications/graphics/shutter/default.nix @@ -38,7 +38,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Screenshot and annotation tool"; - homepage = https://shutter-project.org/; + homepage = "https://shutter-project.org/"; license = licenses.gpl3Plus; platforms = platforms.all; maintainers = [ maintainers.bjornfor ]; diff --git a/pkgs/applications/graphics/smartdeblur/default.nix b/pkgs/applications/graphics/smartdeblur/default.nix index 314b4007aad..0df161cd473 100644 --- a/pkgs/applications/graphics/smartdeblur/default.nix +++ b/pkgs/applications/graphics/smartdeblur/default.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { cmakeFlags = [ "-DUSE_SYSTEM_FFTW=ON" ]; meta = { - homepage = https://github.com/Y-Vladimir/SmartDeblur; + homepage = "https://github.com/Y-Vladimir/SmartDeblur"; description = "Tool for restoring blurry and defocused images"; license = stdenv.lib.licenses.gpl3; maintainers = with stdenv.lib.maintainers; [ ]; diff --git a/pkgs/applications/graphics/solvespace/default.nix b/pkgs/applications/graphics/solvespace/default.nix index 7046caad295..bd084b4287d 100644 --- a/pkgs/applications/graphics/solvespace/default.nix +++ b/pkgs/applications/graphics/solvespace/default.nix @@ -6,7 +6,7 @@ stdenv.mkDerivation rec { name = "solvespace-2.3-20190501"; rev = "e7b75f19c34c923780db776592b47152650d8f22"; src = fetchgit { - url = https://github.com/solvespace/solvespace; + url = "https://github.com/solvespace/solvespace"; inherit rev; sha256 = "07k4mbzxf0dmzwdhjx5nc09y7rn1schkaypsw9kz0l7ppylprpp2"; fetchSubmodules = true; @@ -46,6 +46,6 @@ stdenv.mkDerivation rec { license = licenses.gpl3; maintainers = [ maintainers.edef ]; platforms = platforms.linux; - homepage = http://solvespace.com; + homepage = "http://solvespace.com"; }; } diff --git a/pkgs/applications/graphics/swingsane/default.nix b/pkgs/applications/graphics/swingsane/default.nix index f56646e5aed..fc9132ec0b4 100644 --- a/pkgs/applications/graphics/swingsane/default.nix +++ b/pkgs/applications/graphics/swingsane/default.nix @@ -54,7 +54,7 @@ stdenv.mkDerivation rec { simultaneous scan jobs, image transformation jobs (deskew, binarize, crop, etc), PDF and PNG output. ''; - homepage = http://swingsane.com/; + homepage = "http://swingsane.com/"; license = licenses.asl20; platforms = platforms.all; }; diff --git a/pkgs/applications/graphics/sxiv/default.nix b/pkgs/applications/graphics/sxiv/default.nix index f5429958328..4cf0ae55578 100644 --- a/pkgs/applications/graphics/sxiv/default.nix +++ b/pkgs/applications/graphics/sxiv/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { meta = { description = "Simple X Image Viewer"; - homepage = https://github.com/muennich/sxiv; + homepage = "https://github.com/muennich/sxiv"; license = stdenv.lib.licenses.gpl2Plus; platforms = stdenv.lib.platforms.linux; maintainers = with maintainers; [ jfrankenau ]; diff --git a/pkgs/applications/graphics/synfigstudio/default.nix b/pkgs/applications/graphics/synfigstudio/default.nix index 188f7cb2934..e2ffd160258 100644 --- a/pkgs/applications/graphics/synfigstudio/default.nix +++ b/pkgs/applications/graphics/synfigstudio/default.nix @@ -119,7 +119,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "A 2D animation program"; - homepage = http://www.synfig.org; + homepage = "http://www.synfig.org"; license = licenses.gpl2Plus; maintainers = [ maintainers.goibhniu ]; platforms = platforms.linux; diff --git a/pkgs/applications/graphics/tesseract/tesseract3.nix b/pkgs/applications/graphics/tesseract/tesseract3.nix index 157c0b9742b..dc9d4ac2d59 100644 --- a/pkgs/applications/graphics/tesseract/tesseract3.nix +++ b/pkgs/applications/graphics/tesseract/tesseract3.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { meta = { description = "OCR engine"; - homepage = https://github.com/tesseract-ocr/tesseract; + homepage = "https://github.com/tesseract-ocr/tesseract"; license = stdenv.lib.licenses.asl20; maintainers = with stdenv.lib.maintainers; [ viric earvstedt ]; platforms = with stdenv.lib.platforms; linux ++ darwin; diff --git a/pkgs/applications/graphics/tesseract/tesseract4.nix b/pkgs/applications/graphics/tesseract/tesseract4.nix index 95896337720..d7c3cacc1f9 100644 --- a/pkgs/applications/graphics/tesseract/tesseract4.nix +++ b/pkgs/applications/graphics/tesseract/tesseract4.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { meta = { description = "OCR engine"; - homepage = https://github.com/tesseract-ocr/tesseract; + homepage = "https://github.com/tesseract-ocr/tesseract"; license = stdenv.lib.licenses.asl20; maintainers = with stdenv.lib.maintainers; [ viric earvstedt ]; platforms = with stdenv.lib.platforms; linux ++ darwin; diff --git a/pkgs/applications/graphics/timelapse-deflicker/default.nix b/pkgs/applications/graphics/timelapse-deflicker/default.nix index 8355545e8dd..ac382bb6327 100644 --- a/pkgs/applications/graphics/timelapse-deflicker/default.nix +++ b/pkgs/applications/graphics/timelapse-deflicker/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Simple script to deflicker images taken for timelapses"; - homepage = https://github.com/cyberang3l/timelapse-deflicker; + homepage = "https://github.com/cyberang3l/timelapse-deflicker"; license = licenses.gpl3; maintainers = with maintainers; [ valeriangalliat ]; platforms = platforms.unix; diff --git a/pkgs/applications/graphics/ufraw/default.nix b/pkgs/applications/graphics/ufraw/default.nix index 131d83f0d58..9e05a41e848 100644 --- a/pkgs/applications/graphics/ufraw/default.nix +++ b/pkgs/applications/graphics/ufraw/default.nix @@ -64,7 +64,7 @@ stdenv.mkDerivation { ''; meta = with stdenv.lib; { - homepage = https://github.com/sergiomb2/ufraw; + homepage = "https://github.com/sergiomb2/ufraw"; description = "Utility to read and manipulate raw images from digital cameras"; diff --git a/pkgs/applications/graphics/unigine-valley/default.nix b/pkgs/applications/graphics/unigine-valley/default.nix index 09abfc60a52..14ff5f9a519 100644 --- a/pkgs/applications/graphics/unigine-valley/default.nix +++ b/pkgs/applications/graphics/unigine-valley/default.nix @@ -107,7 +107,7 @@ in meta = { description = "The Unigine Valley GPU benchmarking tool"; - homepage = http://unigine.com/products/benchmarks/valley/; + homepage = "http://unigine.com/products/benchmarks/valley/"; license = stdenv.lib.licenses.unfree; # see also: $out/$instPath/documentation/License.pdf maintainers = [ stdenv.lib.maintainers.kierdavis ]; platforms = ["x86_64-linux" "i686-linux"]; diff --git a/pkgs/applications/graphics/viewnior/default.nix b/pkgs/applications/graphics/viewnior/default.nix index a80e89e72bc..41463a7627a 100644 --- a/pkgs/applications/graphics/viewnior/default.nix +++ b/pkgs/applications/graphics/viewnior/default.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { license = stdenv.lib.licenses.gpl3; - homepage = http://siyanpanayotov.com/project/viewnior/; + homepage = "http://siyanpanayotov.com/project/viewnior/"; maintainers = [ stdenv.lib.maintainers.smironov ]; diff --git a/pkgs/applications/graphics/vimiv/default.nix b/pkgs/applications/graphics/vimiv/default.nix index fab85052df3..b5e9d0b8cf2 100644 --- a/pkgs/applications/graphics/vimiv/default.nix +++ b/pkgs/applications/graphics/vimiv/default.nix @@ -64,7 +64,7 @@ python3Packages.buildPythonApplication rec { postInstall = "make DESTDIR=\"$out\" install"; meta = { - homepage = https://github.com/karlch/vimiv; + homepage = "https://github.com/karlch/vimiv"; description = "An image viewer with Vim-like keybindings"; license = lib.licenses.mit; platforms = lib.platforms.linux; diff --git a/pkgs/applications/graphics/wings/default.nix b/pkgs/applications/graphics/wings/default.nix index 8d6eca7ef32..19c30f3ecc4 100644 --- a/pkgs/applications/graphics/wings/default.nix +++ b/pkgs/applications/graphics/wings/default.nix @@ -36,7 +36,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = http://www.wings3d.com/; + homepage = "http://www.wings3d.com/"; description = "Subdivision modeler inspired by Nendo and Mirai from Izware"; license = stdenv.lib.licenses.tcltk; maintainers = with stdenv.lib.maintainers; [viric]; diff --git a/pkgs/applications/graphics/write_stylus/default.nix b/pkgs/applications/graphics/write_stylus/default.nix index 0f1020b0b07..31fc4045026 100644 --- a/pkgs/applications/graphics/write_stylus/default.nix +++ b/pkgs/applications/graphics/write_stylus/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, qtbase, qtsvg, libglvnd, fetchurl, makeDesktopItem }: +{ mkDerivation, stdenv, lib, qtbase, qtsvg, libglvnd, fetchurl, makeDesktopItem }: let # taken from: https://www.iconfinder.com/icons/50835/edit_pencil_write_icon # license: Free for commercial use @@ -7,7 +7,7 @@ let sha256 = "0abdya42yf9alxbsmc2nf8jwld50zfria6z3d4ncvp1zw2a9jhb8"; }; in -stdenv.mkDerivation rec { +mkDerivation rec { pname = "write_stylus"; version = "209"; @@ -54,7 +54,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = http://www.styluslabs.com/; + homepage = "http://www.styluslabs.com/"; description = "Write is a word processor for handwriting."; platforms = platforms.linux; license = stdenv.lib.licenses.unfree; diff --git a/pkgs/applications/graphics/xaos/default.nix b/pkgs/applications/graphics/xaos/default.nix index e80362c386b..767f3aa920b 100644 --- a/pkgs/applications/graphics/xaos/default.nix +++ b/pkgs/applications/graphics/xaos/default.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = http://xaos.sourceforge.net/; + homepage = "http://xaos.sourceforge.net/"; description = "Fractal viewer"; license = stdenv.lib.licenses.gpl2Plus; platforms = [ "x86_64-linux" ]; diff --git a/pkgs/applications/graphics/xara/default.nix b/pkgs/applications/graphics/xara/default.nix index 56388a8a255..5e3c252435c 100644 --- a/pkgs/applications/graphics/xara/default.nix +++ b/pkgs/applications/graphics/xara/default.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation { name = "xaralx-0.7r1785"; src = fetchurl { - url = http://downloads2.xara.com/opensource/XaraLX-0.7r1785.tar.bz2; + url = "http://downloads2.xara.com/opensource/XaraLX-0.7r1785.tar.bz2"; sha256 = "05xbzq1i1vw2mdsv7zjqfpxfv3g1j0g5kks0gq6sh373xd6y8lyh"; }; diff --git a/pkgs/applications/graphics/xfractint/default.nix b/pkgs/applications/graphics/xfractint/default.nix index ae4765fc9e7..8d36e4630dc 100644 --- a/pkgs/applications/graphics/xfractint/default.nix +++ b/pkgs/applications/graphics/xfractint/default.nix @@ -24,6 +24,6 @@ stdenv.mkDerivation rec { license = stdenv.lib.licenses.unfree; maintainers = [stdenv.lib.maintainers.raskin]; platforms = stdenv.lib.platforms.linux; - homepage = https://www.fractint.net/; + homepage = "https://www.fractint.net/"; }; } diff --git a/pkgs/applications/graphics/xournal/default.nix b/pkgs/applications/graphics/xournal/default.nix index 6d10a7cae23..8a5d9c3597b 100644 --- a/pkgs/applications/graphics/xournal/default.nix +++ b/pkgs/applications/graphics/xournal/default.nix @@ -56,7 +56,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = http://xournal.sourceforge.net/; + homepage = "http://xournal.sourceforge.net/"; description = "Note-taking application (supposes stylus)"; maintainers = [ maintainers.guibert ]; license = licenses.gpl2; diff --git a/pkgs/applications/graphics/xournalpp/default.nix b/pkgs/applications/graphics/xournalpp/default.nix index 65aa17e3b4e..ba396bfd92c 100644 --- a/pkgs/applications/graphics/xournalpp/default.nix +++ b/pkgs/applications/graphics/xournalpp/default.nix @@ -22,13 +22,13 @@ stdenv.mkDerivation rec { pname = "xournalpp"; - version = "1.0.17"; + version = "1.0.18"; src = fetchFromGitHub { owner = "xournalpp"; repo = pname; rev = version; - sha256 = "0xw2mcgnm4sa9hrhfgp669lfypw97drxjmz5w8i5whaprpvmkxzw"; + sha256 = "0a9ygbmd4dwgck3k8wsrm2grynqa0adb12wwspzmzvpisbadffjy"; }; nativeBuildInputs = [ cmake gettext pkgconfig wrapGAppsHook ]; diff --git a/pkgs/applications/graphics/xzgv/default.nix b/pkgs/applications/graphics/xzgv/default.nix index de3f3a78988..67f43faf99a 100644 --- a/pkgs/applications/graphics/xzgv/default.nix +++ b/pkgs/applications/graphics/xzgv/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { mkdir -p $out/share/{app-install/desktop,applications,info,pixmaps} ''; meta = with stdenv.lib; { - homepage = https://sourceforge.net/projects/xzgv/; + homepage = "https://sourceforge.net/projects/xzgv/"; description = "Picture viewer for X with a thumbnail-based selector"; license = licenses.gpl2; maintainers = [ maintainers.womfoo ]; diff --git a/pkgs/applications/graphics/zgv/default.nix b/pkgs/applications/graphics/zgv/default.nix index 7b14d7750c3..6cc59a7e60b 100644 --- a/pkgs/applications/graphics/zgv/default.nix +++ b/pkgs/applications/graphics/zgv/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { patches = [ (fetchpatch { - url = https://foss.aueb.gr/mirrors/linux/gentoo/media-gfx/zgv/files/zgv-5.9-libpng15.patch; + url = "https://foss.aueb.gr/mirrors/linux/gentoo/media-gfx/zgv/files/zgv-5.9-libpng15.patch"; sha256 = "1blw9n04c28bnwcmcn64si4f5zpg42s8yn345js88fyzi9zm19xw"; }) ./switch.patch @@ -33,7 +33,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = http://www.svgalib.org/rus/zgv/; + homepage = "http://www.svgalib.org/rus/zgv/"; description = "Picture viewer with a thumbnail-based selector"; license = licenses.gpl2; maintainers = [ maintainers.vrthra ]; diff --git a/pkgs/applications/kde/ark/default.nix b/pkgs/applications/kde/ark/default.nix index 76cc423f546..dbbfcf80c6b 100644 --- a/pkgs/applications/kde/ark/default.nix +++ b/pkgs/applications/kde/ark/default.nix @@ -9,14 +9,14 @@ libarchive, libzip, # Archive tools - p7zip, lrzip, + lrzip, # Unfree tools unfreeEnableUnrar ? false, unrar, }: let - extraTools = [ p7zip lrzip ] ++ lib.optional unfreeEnableUnrar unrar; + extraTools = [ lrzip ] ++ lib.optional unfreeEnableUnrar unrar; in mkDerivation { diff --git a/pkgs/applications/kde/default.nix b/pkgs/applications/kde/default.nix index 6788a5df3ff..60df1f899de 100644 --- a/pkgs/applications/kde/default.nix +++ b/pkgs/applications/kde/default.nix @@ -78,6 +78,7 @@ let dolphin = callPackage ./dolphin.nix {}; dolphin-plugins = callPackage ./dolphin-plugins.nix {}; dragon = callPackage ./dragon.nix {}; + elisa = callPackage ./elisa.nix {}; eventviews = callPackage ./eventviews.nix {}; ffmpegthumbs = callPackage ./ffmpegthumbs.nix { }; filelight = callPackage ./filelight.nix {}; @@ -89,6 +90,7 @@ let kalarm = callPackage ./kalarm.nix {}; kalarmcal = callPackage ./kalarmcal.nix {}; kate = callPackage ./kate.nix {}; + kbreakout = callPackage ./kbreakout.nix {}; kcachegrind = callPackage ./kcachegrind.nix {}; kcalc = callPackage ./kcalc.nix {}; kcalutils = callPackage ./kcalutils.nix {}; @@ -145,6 +147,7 @@ let krdc = callPackage ./krdc.nix {}; krfb = callPackage ./krfb.nix {}; kruler = callPackage ./kruler.nix {}; + kspaceduel = callPackage ./kspaceduel.nix {}; ksudoku = callPackage ./ksudoku.nix {}; ksystemlog = callPackage ./ksystemlog.nix {}; ktnef = callPackage ./ktnef.nix {}; diff --git a/pkgs/applications/kde/elisa.nix b/pkgs/applications/kde/elisa.nix new file mode 100644 index 00000000000..a2bfa88f812 --- /dev/null +++ b/pkgs/applications/kde/elisa.nix @@ -0,0 +1,46 @@ +{ mkDerivation +, fetchFromGitHub +, lib +, extra-cmake-modules +, kdoctools +, qtmultimedia +, qtquickcontrols2 +, qtwebsockets +, kconfig +, kcmutils +, kcrash +, kdeclarative +, kfilemetadata +, kinit +, kirigami2 +, baloo +, vlc +}: + +mkDerivation rec { + name = "elisa"; + + buildInputs = [ vlc ]; + + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + + propagatedBuildInputs = [ + baloo + kcmutils + kconfig + kcrash + kdeclarative + kfilemetadata + kinit + kirigami2 + qtmultimedia + qtquickcontrols2 + qtwebsockets + ]; + + meta = with lib; { + description = "A simple media player for KDE"; + license = licenses.gpl3; + maintainers = with maintainers; [ peterhoeg ]; + }; +} diff --git a/pkgs/applications/kde/fetch.sh b/pkgs/applications/kde/fetch.sh index 424c759b56c..3f6dc9ef181 100644 --- a/pkgs/applications/kde/fetch.sh +++ b/pkgs/applications/kde/fetch.sh @@ -1 +1 @@ -WGET_ARGS=( http://download.kde.org/stable/release-service/19.12.1/src ) +WGET_ARGS=( http://download.kde.org/stable/release-service/19.12.3/src ) diff --git a/pkgs/applications/kde/ffmpeg-path.patch b/pkgs/applications/kde/ffmpeg-path.patch new file mode 100644 index 00000000000..a0cef882f59 --- /dev/null +++ b/pkgs/applications/kde/ffmpeg-path.patch @@ -0,0 +1,25 @@ +diff --git a/src/kdenlivesettings.kcfg b/src/kdenlivesettings.kcfg +index 5edad5ae7..d35347a40 100644 +--- a/src/kdenlivesettings.kcfg ++++ b/src/kdenlivesettings.kcfg +@@ -403,17 +403,17 @@ + + + +- ++ @ffmpeg@/bin/ffmpeg + + + + +- ++ @ffmpeg@/bin/ffplay + + + + +- ++ @ffmpeg@/bin/ffprobe + + + diff --git a/pkgs/applications/kde/kate.nix b/pkgs/applications/kde/kate.nix index f01a57a55d4..e0d0273efde 100644 --- a/pkgs/applications/kde/kate.nix +++ b/pkgs/applications/kde/kate.nix @@ -14,6 +14,16 @@ mkDerivation { maintainers = [ lib.maintainers.ttuegel ]; }; + # InitialPreference values are too high and end up making kate & + # kwrite defaults for anything considered text/plain. Resetting to + # 1, which is the default. + postPatch = '' + substituteInPlace kate/data/org.kde.kate.desktop \ + --replace InitialPreference=9 InitialPreference=1 + substituteInPlace kwrite/data/org.kde.kwrite.desktop \ + --replace InitialPreference=8 InitialPreference=1 + ''; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; buildInputs = [ libgit2 diff --git a/pkgs/applications/kde/kbreakout.nix b/pkgs/applications/kde/kbreakout.nix new file mode 100644 index 00000000000..fbcddd46ca8 --- /dev/null +++ b/pkgs/applications/kde/kbreakout.nix @@ -0,0 +1,22 @@ +{ mkDerivation, lib +, extra-cmake-modules +, cmake +, kdbusaddons +, ki18n +, kconfigwidgets +, kcrash +, kxmlgui +, libkdegames +}: + +mkDerivation { + name = "kbreakout"; + meta.license = with lib.licenses; [ lgpl21 gpl3 ]; + outputs = [ "out" "dev" ]; + nativeBuildInputs = [ + cmake extra-cmake-modules + ]; + propagatedBuildInputs = [ + kdbusaddons ki18n kconfigwidgets kcrash kxmlgui libkdegames + ]; +} diff --git a/pkgs/applications/kde/kdenlive.nix b/pkgs/applications/kde/kdenlive.nix index b7c691e9594..95496f90e04 100644 --- a/pkgs/applications/kde/kdenlive.nix +++ b/pkgs/applications/kde/kdenlive.nix @@ -70,14 +70,24 @@ mkDerivation { kpurpose kdeclarative ]; - patches = [ ./mlt-path.patch ]; + # Both MLT and FFMpeg paths must be set or Kdenlive will complain that it + # doesn't find them. See: + # https://github.com/NixOS/nixpkgs/issues/83885 + patches = [ ./mlt-path.patch ./ffmpeg-path.patch ]; inherit mlt; + ffmpeg = ffmpeg-full; postPatch = # Module Qt5::Concurrent must be included in `find_package` before it is used. '' sed -i CMakeLists.txt -e '/find_package(Qt5 REQUIRED/ s|)| Concurrent)|' substituteAllInPlace src/kdenlivesettings.kcfg ''; + # Frei0r path needs to be set too or Kdenlive will complain. See: + # https://github.com/NixOS/nixpkgs/issues/83885 + # https://github.com/NixOS/nixpkgs/issues/29614#issuecomment-488849325 + qtWrapperArgs = [ + "--set FREI0R_PATH ${frei0r}/lib/frei0r-1" + ]; meta = { license = with lib.licenses; [ gpl2Plus ]; }; diff --git a/pkgs/applications/kde/keditbookmarks.nix b/pkgs/applications/kde/keditbookmarks.nix index 57741c03ad5..efe247df737 100644 --- a/pkgs/applications/kde/keditbookmarks.nix +++ b/pkgs/applications/kde/keditbookmarks.nix @@ -9,7 +9,7 @@ mkDerivation { nativeBuildInputs = [ extra-cmake-modules kdoctools ]; buildInputs = [ kio kparts kwindowsystem ]; meta = with lib; { - homepage = http://www.kde.org; + homepage = "http://www.kde.org"; license = with licenses; [ gpl2 lgpl21 fdl12 bsd3 ]; maintainers = with maintainers; [ peterhoeg ]; platforms = platforms.linux; diff --git a/pkgs/applications/kde/kipi-plugins.nix b/pkgs/applications/kde/kipi-plugins.nix index 5fb953acbd6..180d066a87c 100644 --- a/pkgs/applications/kde/kipi-plugins.nix +++ b/pkgs/applications/kde/kipi-plugins.nix @@ -17,7 +17,7 @@ mkDerivation { meta = { description = "Plugins for KDE-based image applications"; license = lib.licenses.gpl2; - homepage = https://cgit.kde.org/kipi-plugins.git; + homepage = "https://cgit.kde.org/kipi-plugins.git"; maintainers = with lib.maintainers; [ ttuegel ]; }; } diff --git a/pkgs/applications/kde/kitinerary.nix b/pkgs/applications/kde/kitinerary.nix index ce66de251dc..303ea6162ba 100644 --- a/pkgs/applications/kde/kitinerary.nix +++ b/pkgs/applications/kde/kitinerary.nix @@ -2,6 +2,7 @@ mkDerivation, lib, extra-cmake-modules , qtbase, qtdeclarative, ki18n, kmime, kpkpass , poppler, kcontacts, kcalendarcore +, shared-mime-info }: mkDerivation { @@ -10,7 +11,10 @@ mkDerivation { license = with lib.licenses; [ lgpl21 ]; maintainers = [ lib.maintainers.bkchr ]; }; - nativeBuildInputs = [ extra-cmake-modules ]; + nativeBuildInputs = [ + extra-cmake-modules + shared-mime-info # for update-mime-database + ]; buildInputs = [ qtbase qtdeclarative ki18n kmime kpkpass poppler kcontacts kcalendarcore diff --git a/pkgs/applications/kde/konqueror.nix b/pkgs/applications/kde/konqueror.nix index e6442fea2f9..62ed3db063e 100644 --- a/pkgs/applications/kde/konqueror.nix +++ b/pkgs/applications/kde/konqueror.nix @@ -12,9 +12,17 @@ mkDerivation { kdelibs4support kcmutils khtml kdesu qtwebkit qtwebengine qtx11extras qtscript qtwayland ]; + + # InitialPreference values are too high and any text/html ends up + # opening konqueror, even if firefox or chromium are also available. + # Resetting to 1, which is the default. + postPatch = '' + substituteInPlace kfmclient_html.desktop \ + --replace InitialPreference=9 InitialPreference=1 + ''; + meta = { license = with lib.licenses; [ gpl2 ]; maintainers = with lib.maintainers; [ ]; }; } - diff --git a/pkgs/applications/kde/konsole.nix b/pkgs/applications/kde/konsole.nix index 1be5b0b4a89..ed26dc08bb6 100644 --- a/pkgs/applications/kde/konsole.nix +++ b/pkgs/applications/kde/konsole.nix @@ -11,7 +11,7 @@ mkDerivation { name = "konsole"; meta = { license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; - maintainers = [ lib.maintainers.ttuegel ]; + maintainers = with lib.maintainers; [ ttuegel turion ]; }; nativeBuildInputs = [ extra-cmake-modules kdoctools ]; buildInputs = [ diff --git a/pkgs/applications/kde/krdc.nix b/pkgs/applications/kde/krdc.nix index 89ac92bb474..2b0a1a5c514 100644 --- a/pkgs/applications/kde/krdc.nix +++ b/pkgs/applications/kde/krdc.nix @@ -17,7 +17,7 @@ mkDerivation { --prefix PATH : ${lib.makeBinPath [ freerdp ]} ''; meta = with lib; { - homepage = http://www.kde.org; + homepage = "http://www.kde.org"; license = with licenses; [ gpl2 lgpl21 fdl12 bsd3 ]; maintainers = with maintainers; [ peterhoeg ]; platforms = platforms.linux; diff --git a/pkgs/applications/kde/kspaceduel.nix b/pkgs/applications/kde/kspaceduel.nix new file mode 100644 index 00000000000..b18a3e7cf8f --- /dev/null +++ b/pkgs/applications/kde/kspaceduel.nix @@ -0,0 +1,22 @@ +{ mkDerivation, lib +, extra-cmake-modules +, cmake +, kdbusaddons +, ki18n +, kconfigwidgets +, kcrash +, kxmlgui +, libkdegames +}: + +mkDerivation { + name = "kspaceduel"; + meta.license = with lib.licenses; [ lgpl21 gpl3 ]; + outputs = [ "out" "dev" ]; + nativeBuildInputs = [ + cmake extra-cmake-modules + ]; + propagatedBuildInputs = [ + kdbusaddons ki18n kconfigwidgets kcrash kxmlgui libkdegames + ]; +} diff --git a/pkgs/applications/kde/okular.nix b/pkgs/applications/kde/okular.nix index 377fbe3339a..3bcdb9ca842 100644 --- a/pkgs/applications/kde/okular.nix +++ b/pkgs/applications/kde/okular.nix @@ -18,10 +18,19 @@ mkDerivation { kwindowsystem libkexiv2 libspectre libzip phonon poppler qca-qt5 qtdeclarative qtsvg threadweaver kcrash ] ++ lib.optional (!stdenv.isAarch64) chmlib; + + # InitialPreference values are too high and end up making okular + # default for anything considered text/plain. Resetting to 1, which + # is the default. + postPatch = '' + substituteInPlace generators/txt/okularApplication_txt.desktop \ + --replace InitialPreference=3 InitialPreference=1 + ''; + meta = with lib; { - homepage = http://www.kde.org; + homepage = "http://www.kde.org"; license = with licenses; [ gpl2 lgpl21 fdl12 bsd3 ]; - maintainers = with maintainers; [ ttuegel ]; + maintainers = with maintainers; [ ttuegel turion ]; platforms = lib.platforms.linux; }; } diff --git a/pkgs/applications/kde/srcs.nix b/pkgs/applications/kde/srcs.nix index 60cf49fa05e..dc6eb0f09e8 100644 --- a/pkgs/applications/kde/srcs.nix +++ b/pkgs/applications/kde/srcs.nix @@ -4,1731 +4,1731 @@ { akonadi = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/akonadi-19.12.1.tar.xz"; - sha256 = "991680be1b57a5335690341ab2a681fc7d8e77a4951673021f0662f3005856a3"; - name = "akonadi-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/akonadi-19.12.3.tar.xz"; + sha256 = "e41714d81ecbb629aaa0b267e0c32a4b1d83c6a45cf3f37d52232003b4c0f325"; + name = "akonadi-19.12.3.tar.xz"; }; }; akonadi-calendar = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/akonadi-calendar-19.12.1.tar.xz"; - sha256 = "4bec3252bd1a32874a22b28dcb82a2aed533b31e1955ca68803ddf076dbbd5be"; - name = "akonadi-calendar-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/akonadi-calendar-19.12.3.tar.xz"; + sha256 = "c58d18153ef711a79962ba907e44338a0ddd62968e0a6c50486bba09a6e2a446"; + name = "akonadi-calendar-19.12.3.tar.xz"; }; }; akonadi-calendar-tools = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/akonadi-calendar-tools-19.12.1.tar.xz"; - sha256 = "0650e12b2155b08cf70cc4620f9ea3868bad66affc4668775cd050539eacbec9"; - name = "akonadi-calendar-tools-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/akonadi-calendar-tools-19.12.3.tar.xz"; + sha256 = "ad2c23cf188228dc697d39e2120b56ce445bbea3eb46721794cd6344aa7e94ba"; + name = "akonadi-calendar-tools-19.12.3.tar.xz"; }; }; akonadiconsole = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/akonadiconsole-19.12.1.tar.xz"; - sha256 = "e6a755875b9ef9db4f022888b77bd011a5edf2c21667074b971d15818659dd5b"; - name = "akonadiconsole-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/akonadiconsole-19.12.3.tar.xz"; + sha256 = "0dedcccfcfd7e6ad9a5af0aa61ce05f26cbb625d8bf6b6d210ac6e3c5813487f"; + name = "akonadiconsole-19.12.3.tar.xz"; }; }; akonadi-contacts = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/akonadi-contacts-19.12.1.tar.xz"; - sha256 = "0fbca91b3251d57291629e441ecf5cdd9b71a56f74f05f6c55a428402d3b4c91"; - name = "akonadi-contacts-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/akonadi-contacts-19.12.3.tar.xz"; + sha256 = "b0baed9edb8c05b6d9b8db84239cd83a334d8f1d14d4aa8027dc1139a543eadf"; + name = "akonadi-contacts-19.12.3.tar.xz"; }; }; akonadi-import-wizard = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/akonadi-import-wizard-19.12.1.tar.xz"; - sha256 = "a58d29407eebd9ce895d38b121cb034f92c81b85afd1b8da9c70cc3d7dc29b3d"; - name = "akonadi-import-wizard-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/akonadi-import-wizard-19.12.3.tar.xz"; + sha256 = "2c1491e4f5994ed0d317a27cc717184a86f7d92c4b44f8bd056e147e80bee8c5"; + name = "akonadi-import-wizard-19.12.3.tar.xz"; }; }; akonadi-mime = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/akonadi-mime-19.12.1.tar.xz"; - sha256 = "9ca3794a36e31a5dd759b741e91420f4910f05b0d726f6e803d365b8ab058f5b"; - name = "akonadi-mime-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/akonadi-mime-19.12.3.tar.xz"; + sha256 = "13bdf9a233a183d5aeee1be0991617fca6d73ffd35bc14ca0d18714149f04392"; + name = "akonadi-mime-19.12.3.tar.xz"; }; }; akonadi-notes = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/akonadi-notes-19.12.1.tar.xz"; - sha256 = "cf8059cb14eca880c09fc83285576b4d03a8edf0799cebdf42d59084bb6904ca"; - name = "akonadi-notes-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/akonadi-notes-19.12.3.tar.xz"; + sha256 = "a34c2420190925b985b0629d7d2d19be04443cfeeaf284229666338e039e56e2"; + name = "akonadi-notes-19.12.3.tar.xz"; }; }; akonadi-search = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/akonadi-search-19.12.1.tar.xz"; - sha256 = "78a0feaa41d4b474a2e90c74230bc5196349e1c4e72ad46fe341a1cb6e51a5b8"; - name = "akonadi-search-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/akonadi-search-19.12.3.tar.xz"; + sha256 = "60072a36f6c817d009a8476bad2e80c4131b14358e03b4889a03aa42340ed041"; + name = "akonadi-search-19.12.3.tar.xz"; }; }; akregator = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/akregator-19.12.1.tar.xz"; - sha256 = "e6f00777059e5b9fe2458a7e4248a59652f08d836518bf0395aaf2ed77ef4d52"; - name = "akregator-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/akregator-19.12.3.tar.xz"; + sha256 = "63db0f6c75bffe9235122201445d151f4eaa7061d2a8df4eb924bca1a4600f68"; + name = "akregator-19.12.3.tar.xz"; }; }; analitza = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/analitza-19.12.1.tar.xz"; - sha256 = "0c6c4ee1b4546ab84eb9503220ca0aa09f80cdd7cea3b89201db1d5aac2c4ce5"; - name = "analitza-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/analitza-19.12.3.tar.xz"; + sha256 = "47ca3acaf2d2f52e91cd2253742ab97d9b07abc3fef0d632bfc36d253dbf161b"; + name = "analitza-19.12.3.tar.xz"; }; }; ark = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/ark-19.12.1.tar.xz"; - sha256 = "37b9dfc0b6005ebd0f2757ecce940568839e8a5d73b3bcbc1931ce4eccbb9d0c"; - name = "ark-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/ark-19.12.3.tar.xz"; + sha256 = "78594029729c197fc90321850696f1bd189b40d8d7fbc9faf51ad6b2ab744a07"; + name = "ark-19.12.3.tar.xz"; }; }; artikulate = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/artikulate-19.12.1.tar.xz"; - sha256 = "407f72193c7c4ec3f8ac7fa93889803f2ec6523aebb59bdf9a9210e9fac0ee7d"; - name = "artikulate-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/artikulate-19.12.3.tar.xz"; + sha256 = "c27a5cb98a8e2975638fe74683a73f92c160ce133b133878844062dd99ffded6"; + name = "artikulate-19.12.3.tar.xz"; }; }; audiocd-kio = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/audiocd-kio-19.12.1.tar.xz"; - sha256 = "3b4433bbbdd56bbafcf0418eaebb655b8fd4e03a4c29489112394393f3dc3815"; - name = "audiocd-kio-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/audiocd-kio-19.12.3.tar.xz"; + sha256 = "b920170ae816f29a61a6f6b25df68c9125a5d4d9fec225feee45e46317d64d42"; + name = "audiocd-kio-19.12.3.tar.xz"; }; }; baloo-widgets = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/baloo-widgets-19.12.1.tar.xz"; - sha256 = "a9fb3a136267bb0089192f7bc523903bd304e528160d9f653ccd052b4a8c110c"; - name = "baloo-widgets-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/baloo-widgets-19.12.3.tar.xz"; + sha256 = "236c0bb0bcb345f4ce5f07d591bded6221383bc7b190b42b96999893390cd8a5"; + name = "baloo-widgets-19.12.3.tar.xz"; }; }; blinken = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/blinken-19.12.1.tar.xz"; - sha256 = "4a1f7c782dc236d963bc1de11b7dcbc79012d47e3e6cc5ce692ca91ecb788388"; - name = "blinken-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/blinken-19.12.3.tar.xz"; + sha256 = "06ef385ab73d99fa3f1925a6f2ef522f691d04cd594777f5d9fa52a5f2e45a94"; + name = "blinken-19.12.3.tar.xz"; }; }; bomber = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/bomber-19.12.1.tar.xz"; - sha256 = "f0007dae42d6586ab6c9da5775c835fb515cbf180698a1453a90efd2ba8f2795"; - name = "bomber-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/bomber-19.12.3.tar.xz"; + sha256 = "ea4926fe08c62ac5da28c3bb480a6986e51f7a77e3245d1dc1603c38617da4b0"; + name = "bomber-19.12.3.tar.xz"; }; }; bovo = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/bovo-19.12.1.tar.xz"; - sha256 = "54cee2f71e9736057187c8121313b9c73f6cadd0fa463ea2a29cf0e86969d5ae"; - name = "bovo-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/bovo-19.12.3.tar.xz"; + sha256 = "ac67aff75c1e8e0d1a1a8142ae94431e4f39565f411287f57c2778f8820316af"; + name = "bovo-19.12.3.tar.xz"; }; }; calendarsupport = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/calendarsupport-19.12.1.tar.xz"; - sha256 = "6f5e3282ff385044061320b7ccb4bef80a1848fa890afcbd12e16bd2524a4189"; - name = "calendarsupport-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/calendarsupport-19.12.3.tar.xz"; + sha256 = "ecbd194b5aa39284d33f7f2ddca75175f8699efee1bfbd5000ea10076567bae8"; + name = "calendarsupport-19.12.3.tar.xz"; }; }; cantor = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/cantor-19.12.1.tar.xz"; - sha256 = "509ebe0bc173124d28e29483effa07985eef24cdd989e5e4e1fc233632cdf568"; - name = "cantor-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/cantor-19.12.3.tar.xz"; + sha256 = "8347160f18993f53c857ec0d418dfebbc533878ad9f480047646d121e4e644cb"; + name = "cantor-19.12.3.tar.xz"; }; }; cervisia = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/cervisia-19.12.1.tar.xz"; - sha256 = "2a7d32ac0c1460c135397cedec177db8eb99117b53ec2c9652763b0e90184188"; - name = "cervisia-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/cervisia-19.12.3.tar.xz"; + sha256 = "733a90f521cd79157f6d02eeb28376bc703239800473e8cf366611dd4f3342a6"; + name = "cervisia-19.12.3.tar.xz"; }; }; dolphin = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/dolphin-19.12.1.tar.xz"; - sha256 = "492b4ca71e33373c7000aad5c7daf6e04d7ad537e1fde8a73d2c3db15858e8c8"; - name = "dolphin-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/dolphin-19.12.3.tar.xz"; + sha256 = "ba16f4d5be5ccc3c135a913f2e3c7dd3b7a492cfc9ec9ae518f714fcd7c2ab47"; + name = "dolphin-19.12.3.tar.xz"; }; }; dolphin-plugins = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/dolphin-plugins-19.12.1.tar.xz"; - sha256 = "9392571a7004c08aac02dcc6453f58b6d0de4716b7cd61776f78d9b1783c60e0"; - name = "dolphin-plugins-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/dolphin-plugins-19.12.3.tar.xz"; + sha256 = "7dbd5c0fe4281c46df789f86f468c4ea32949285055cae4652bab3de59acdfd3"; + name = "dolphin-plugins-19.12.3.tar.xz"; }; }; dragon = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/dragon-19.12.1.tar.xz"; - sha256 = "a804ae2089c0e96700e91d90ba2100d9a42a81a128a3fdbb037ed94c31f380cd"; - name = "dragon-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/dragon-19.12.3.tar.xz"; + sha256 = "c5b09b2bd37f4e86f8412d3b950331d330257ba53278b1a569f36bf3fbf560ee"; + name = "dragon-19.12.3.tar.xz"; }; }; elisa = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/elisa-19.12.1.tar.xz"; - sha256 = "4929da2ebe68a3dc0d22a809a7b2a84493aa6f072e16515bd557ddaac51fd8fa"; - name = "elisa-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/elisa-19.12.3.tar.xz"; + sha256 = "28ad795c1d993969d49ab71514129589a71ee6fe8a2de785e22f17f5af7c3d32"; + name = "elisa-19.12.3.tar.xz"; }; }; eventviews = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/eventviews-19.12.1.tar.xz"; - sha256 = "5eb73fb2c541a6b073ad231a28abe6affc0cad92f5fd4d36a4b58aba8a46193c"; - name = "eventviews-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/eventviews-19.12.3.tar.xz"; + sha256 = "e2ac6a77c6bdee008229a2b03262ac5602e0cabfd325a92df58be63aaa7db662"; + name = "eventviews-19.12.3.tar.xz"; }; }; ffmpegthumbs = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/ffmpegthumbs-19.12.1.tar.xz"; - sha256 = "5f7853788c07d409bc2dd2fd7c9afab4cd847f3d2dc6db4dc30cfd78e762bdbd"; - name = "ffmpegthumbs-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/ffmpegthumbs-19.12.3.tar.xz"; + sha256 = "cc4a1c3b4768dc674d210294a9957d622448cbe9cdaf713c1cb40bff3a79260e"; + name = "ffmpegthumbs-19.12.3.tar.xz"; }; }; filelight = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/filelight-19.12.1.tar.xz"; - sha256 = "29806a4149b3fb60f81372d56c184d0e2f861816639a0a21b85cd7af314f860b"; - name = "filelight-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/filelight-19.12.3.tar.xz"; + sha256 = "9ea78509f932cd2bd553d934e2af75c25d0b65d85d2b0ab4a007ac5929b2d3b5"; + name = "filelight-19.12.3.tar.xz"; }; }; granatier = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/granatier-19.12.1.tar.xz"; - sha256 = "98051d292dd5a3ba3f873e8bc2bed6cdae291c9516b9cb21a64703b3135baa7f"; - name = "granatier-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/granatier-19.12.3.tar.xz"; + sha256 = "aa2e410e4eeae74f3902028069955017a31a922dff98b81850f20743f7b54c95"; + name = "granatier-19.12.3.tar.xz"; }; }; grantlee-editor = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/grantlee-editor-19.12.1.tar.xz"; - sha256 = "63a2571369aff6cc648b064bcbc32227eede19475cad8937cfc454984423ea0c"; - name = "grantlee-editor-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/grantlee-editor-19.12.3.tar.xz"; + sha256 = "5df3e5ce7933290f9f6423bdbcb0ff5614a1a4b6fda250a37bd3ed57647f8a3c"; + name = "grantlee-editor-19.12.3.tar.xz"; }; }; grantleetheme = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/grantleetheme-19.12.1.tar.xz"; - sha256 = "f23aaf86ff8c630a2f3498b3eebcd6533b01ee806dcf4130df7dd55e3b890ddd"; - name = "grantleetheme-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/grantleetheme-19.12.3.tar.xz"; + sha256 = "cc0ce448c9d8396dcadea2a43089feca8e1074572df42752f70dd176676f29f9"; + name = "grantleetheme-19.12.3.tar.xz"; }; }; gwenview = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/gwenview-19.12.1.tar.xz"; - sha256 = "ed36590a0193fbe22f08c1a026e58f86a3067f516b3a894f29b72aa229967c84"; - name = "gwenview-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/gwenview-19.12.3.tar.xz"; + sha256 = "b453cd55b7409bf8e4446a1b714dc66e73a0376d2da65b184b82f786767164e7"; + name = "gwenview-19.12.3.tar.xz"; }; }; incidenceeditor = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/incidenceeditor-19.12.1.tar.xz"; - sha256 = "1f1345db2e518bfe9405df5fa441ece3af1093cbc75066673d252a0760262484"; - name = "incidenceeditor-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/incidenceeditor-19.12.3.tar.xz"; + sha256 = "c608a95f6d09433b378f5df0243eff77be3738fb56f99ab439774f2cad5908a6"; + name = "incidenceeditor-19.12.3.tar.xz"; }; }; juk = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/juk-19.12.1.tar.xz"; - sha256 = "de1d9f3581f791ea050700b467dce4b38d9ec2dc20884b495826e479d3245edf"; - name = "juk-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/juk-19.12.3.tar.xz"; + sha256 = "4bc4210d223afc23cb6edc9262eceee038ecc6243a550698e676230168943611"; + name = "juk-19.12.3.tar.xz"; }; }; k3b = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/k3b-19.12.1.tar.xz"; - sha256 = "59def9d9c9e14de52a14d58a22c15173d98086d9a156a3a463b9607dc7be602d"; - name = "k3b-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/k3b-19.12.3.tar.xz"; + sha256 = "832c314d528ed21971d9d9d26c1c4d6c61323c9b3b01787d710541e3651575a5"; + name = "k3b-19.12.3.tar.xz"; }; }; kaccounts-integration = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kaccounts-integration-19.12.1.tar.xz"; - sha256 = "0dda504f51b86207180aceb00d86d42cb16c7ebe81c60ca1ed6bf8fa20699127"; - name = "kaccounts-integration-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kaccounts-integration-19.12.3.tar.xz"; + sha256 = "452b95113de5fb0d19a13ef75e229ee07b0e92cc1e7a17e9a2dc7879121d9d33"; + name = "kaccounts-integration-19.12.3.tar.xz"; }; }; kaccounts-providers = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kaccounts-providers-19.12.1.tar.xz"; - sha256 = "abcd1fa9f63248f3ce7f9c98d940b124ff5c70c1a3381a6cfad6ce7012b23c69"; - name = "kaccounts-providers-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kaccounts-providers-19.12.3.tar.xz"; + sha256 = "8774e9a8113e4aba593afeff655e38f6259c78e7dbaf1d95ea00235be880f3dd"; + name = "kaccounts-providers-19.12.3.tar.xz"; }; }; kaddressbook = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kaddressbook-19.12.1.tar.xz"; - sha256 = "32e19973015151ac32fe7ae1f0a17e82e2834ce69ba052f31e8d197930f0be5c"; - name = "kaddressbook-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kaddressbook-19.12.3.tar.xz"; + sha256 = "1dede421e6fef2b1abc7d36dd1855cef43cc82de909a432cd38cff42d4168fba"; + name = "kaddressbook-19.12.3.tar.xz"; }; }; kajongg = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kajongg-19.12.1.tar.xz"; - sha256 = "2f0944ea23cefb07187e0c176ae0a12cbba1b591aefeab9be9a59d5cab9e7a59"; - name = "kajongg-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kajongg-19.12.3.tar.xz"; + sha256 = "23e2b1be670b48bdd027e4e7a57e86a94b322afe6d37d8492c3d17689decfae5"; + name = "kajongg-19.12.3.tar.xz"; }; }; kalarm = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kalarm-19.12.1.tar.xz"; - sha256 = "06a8d9544d1107ac3f2e8c4c2e9604055706dcb6b7f3b0267f0d4cb45f1caf35"; - name = "kalarm-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kalarm-19.12.3.tar.xz"; + sha256 = "526ab8884752c15622233db8b72e88d0c22a7a1bd265763d850b6e18e32de417"; + name = "kalarm-19.12.3.tar.xz"; }; }; kalarmcal = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kalarmcal-19.12.1.tar.xz"; - sha256 = "18644d5cbc61b414675de66dd25d9a1dd30b0e93851f6223292f052d30a365e6"; - name = "kalarmcal-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kalarmcal-19.12.3.tar.xz"; + sha256 = "0ec5188f1164d91de702639ab2f85a713889feef48fc02dfe7385c945d06aa60"; + name = "kalarmcal-19.12.3.tar.xz"; }; }; kalgebra = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kalgebra-19.12.1.tar.xz"; - sha256 = "49d623186800eb8f6fbb91eb43fb14dff78e112624c9cda6b331d494d610b16a"; - name = "kalgebra-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kalgebra-19.12.3.tar.xz"; + sha256 = "ac865dded31b61c438ddb9db721543b8facba79c9b39365750b4bebfe2645640"; + name = "kalgebra-19.12.3.tar.xz"; }; }; kalzium = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kalzium-19.12.1.tar.xz"; - sha256 = "f50cc18d94ce9a1aaedcbee3a5dccc2cc6723ac8ec151a0ae0ff60009a7c6943"; - name = "kalzium-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kalzium-19.12.3.tar.xz"; + sha256 = "e44f359d1343c30cf1993a3970a3e610d0d5782f92a6b331b035cf4fef104195"; + name = "kalzium-19.12.3.tar.xz"; }; }; kamera = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kamera-19.12.1.tar.xz"; - sha256 = "831d7b3d7ffdc73b03116b564fb1a23c651d468cae97c1c31791f6df1a8890ac"; - name = "kamera-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kamera-19.12.3.tar.xz"; + sha256 = "22e19527bf9748cdc298be4c3fa2cb0a3b8b337da3a3a804c9d6066d7f3e1110"; + name = "kamera-19.12.3.tar.xz"; }; }; kamoso = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kamoso-19.12.1.tar.xz"; - sha256 = "c1776bf7f8eafd9f4c501aabc0df30035a0f1d40951e525312aa257e67cf74a7"; - name = "kamoso-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kamoso-19.12.3.tar.xz"; + sha256 = "9ae14c4c80cdbbf2ce2e92db5e9c814fbd685e81aa5c319aac5477649fc39fe4"; + name = "kamoso-19.12.3.tar.xz"; }; }; kanagram = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kanagram-19.12.1.tar.xz"; - sha256 = "2127eada150ee3f023948b637890aa93d602874fd6c037c4bd031886a12a2fdc"; - name = "kanagram-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kanagram-19.12.3.tar.xz"; + sha256 = "441cae90d3b70dbef40bebbcf1325fa06e0df174a3f961b4b117a5fa1b40d6e3"; + name = "kanagram-19.12.3.tar.xz"; }; }; kapman = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kapman-19.12.1.tar.xz"; - sha256 = "cd5bef40c51bc6ef635adab501acd2a40c2291c989c4ba3ef6e34a1cbebe4c49"; - name = "kapman-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kapman-19.12.3.tar.xz"; + sha256 = "3c81e3395ce2b2ea0937b09c0836cb58b8a941c2b7e2a27bd9741b2a9be1c1dd"; + name = "kapman-19.12.3.tar.xz"; }; }; kapptemplate = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kapptemplate-19.12.1.tar.xz"; - sha256 = "b2fc583125aae1968c0342063a6cfcea2dbeff21e0ef505a021b689ed3a34085"; - name = "kapptemplate-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kapptemplate-19.12.3.tar.xz"; + sha256 = "5bef4e4fb74da3102cba6672584195962514ee3f53fb369b48d492d6ce7255ad"; + name = "kapptemplate-19.12.3.tar.xz"; }; }; kate = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kate-19.12.1.tar.xz"; - sha256 = "9d2401907e5b163d5af0af5b4d28383896ef709bcde7f6ee2234e1a3adc28a47"; - name = "kate-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kate-19.12.3.tar.xz"; + sha256 = "f60b52e5a6a78920ac703a458f1eaf0ced02ffcd8b5f2d49de9a48674eeb007c"; + name = "kate-19.12.3.tar.xz"; }; }; katomic = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/katomic-19.12.1.tar.xz"; - sha256 = "bc51424757434e905b5b611a6fa634147e533e375922c03f896a093fa61e57a3"; - name = "katomic-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/katomic-19.12.3.tar.xz"; + sha256 = "d7ed527e2546e94cb091e433a2e61618301152704c48e1f003e1f8e60b4f0cbd"; + name = "katomic-19.12.3.tar.xz"; }; }; kbackup = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kbackup-19.12.1.tar.xz"; - sha256 = "1b30c142576d823043d4e78fa37592e8df79b5e13ea7a980d336b25c1093ecf8"; - name = "kbackup-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kbackup-19.12.3.tar.xz"; + sha256 = "1761009f9cd854d3fb4f98eb24b5ee7f3c42c4541f7cfb2ff1589786c86bdc99"; + name = "kbackup-19.12.3.tar.xz"; }; }; kblackbox = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kblackbox-19.12.1.tar.xz"; - sha256 = "57901d6bf56228691b6c6436ca2f60e62542854e80f9c4fda7a60362a216e1ed"; - name = "kblackbox-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kblackbox-19.12.3.tar.xz"; + sha256 = "dffb910a5d429dfc231b7d2185119430856d26af2c027d34c551a6d664ae49c6"; + name = "kblackbox-19.12.3.tar.xz"; }; }; kblocks = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kblocks-19.12.1.tar.xz"; - sha256 = "1077477910d1dfff60f1abad7b1cf937daf1f3e3a5e8b18407b7e2809b2fc3d9"; - name = "kblocks-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kblocks-19.12.3.tar.xz"; + sha256 = "5bc5cb14b91c9b230563388b4d935211975bae34ed36cb0479cbf25bc3b652fb"; + name = "kblocks-19.12.3.tar.xz"; }; }; kblog = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kblog-19.12.1.tar.xz"; - sha256 = "6385ecfc024cf554a55e2840c3faf6b9e6ee81eb3536d5632899d32aecd54b9f"; - name = "kblog-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kblog-19.12.3.tar.xz"; + sha256 = "3fba584c4c217c5b5b3be52752f8f3c371fb877fe3b730a48711028fedc6b3d4"; + name = "kblog-19.12.3.tar.xz"; }; }; kbounce = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kbounce-19.12.1.tar.xz"; - sha256 = "e9e1df6f2f57e102d95707b82b0aa582f9f1a6c3e395660b5faa33ef953e7fb3"; - name = "kbounce-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kbounce-19.12.3.tar.xz"; + sha256 = "d1b7ac99e54070e1e28a3449e8773691e90625c9f881cf94352ef752700197d0"; + name = "kbounce-19.12.3.tar.xz"; }; }; kbreakout = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kbreakout-19.12.1.tar.xz"; - sha256 = "17475a5aa80f494876fb3b91d32df4c447417e79f4dd60d46f594cfab03f489f"; - name = "kbreakout-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kbreakout-19.12.3.tar.xz"; + sha256 = "ca662c9f2c6765f5f8b07bd4cc2e2aa0a43b69fec6428c3deda2cfad0ab675fa"; + name = "kbreakout-19.12.3.tar.xz"; }; }; kbruch = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kbruch-19.12.1.tar.xz"; - sha256 = "94f9951c0ee3b4aea6d649f971f2d946d462b916a76e4e76ddafa809ce7e5550"; - name = "kbruch-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kbruch-19.12.3.tar.xz"; + sha256 = "522ddae0b2ec640e70c717a9fe0d6a95aef1ed3fe2acbca4b93a99a309abd559"; + name = "kbruch-19.12.3.tar.xz"; }; }; kcachegrind = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kcachegrind-19.12.1.tar.xz"; - sha256 = "210e04441519c47d103871e52d98351abc41a04b9385c577a7839eec31a2f400"; - name = "kcachegrind-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kcachegrind-19.12.3.tar.xz"; + sha256 = "a30b70bac32f2b33c3c90b8c17754cfbf7d293c9eff0d573747eca2b45353b41"; + name = "kcachegrind-19.12.3.tar.xz"; }; }; kcalc = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kcalc-19.12.1.tar.xz"; - sha256 = "51630cd5c6d7ebbf35fb91419acfe9b2d2719ebfcdc2fff8358dbfaa2cecda57"; - name = "kcalc-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kcalc-19.12.3.tar.xz"; + sha256 = "bbda4fc074e1ea748e95840aa79c51fdf0a1943ebb63ce6c7b68c197831258bd"; + name = "kcalc-19.12.3.tar.xz"; }; }; kcalutils = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kcalutils-19.12.1.tar.xz"; - sha256 = "0298e92d84d9f4b612ea1a27abee1368bc624af2bc5bc4b5eb1053a27575ea04"; - name = "kcalutils-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kcalutils-19.12.3.tar.xz"; + sha256 = "00da1f331110a63c3d3c2c96394ead3d282f582d73fa925065560a50807fb7ff"; + name = "kcalutils-19.12.3.tar.xz"; }; }; kcharselect = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kcharselect-19.12.1.tar.xz"; - sha256 = "5f23458974d6fa66c49d434937e7a7a31cc94e46616db866b35316025bb84b0c"; - name = "kcharselect-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kcharselect-19.12.3.tar.xz"; + sha256 = "9be6ac607148b0815bd985075fbb97d44561fdd6a955b60f0afc728f9cbd978b"; + name = "kcharselect-19.12.3.tar.xz"; }; }; kcolorchooser = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kcolorchooser-19.12.1.tar.xz"; - sha256 = "713d1151f45382d8a889187ebb02f8e73ffbf28ac8abea0e03626888711d2c22"; - name = "kcolorchooser-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kcolorchooser-19.12.3.tar.xz"; + sha256 = "cb0395c1b4f953fd51129cfe5088702ec261f84cc045f889e22c13e81793744a"; + name = "kcolorchooser-19.12.3.tar.xz"; }; }; kcron = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kcron-19.12.1.tar.xz"; - sha256 = "8c7d5fa24349b9ff7c4927579876ef84895398d8cde6122804d7104a4f4d5963"; - name = "kcron-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kcron-19.12.3.tar.xz"; + sha256 = "22d07834e8431d0fcc756a0e7d92d4e8993008766bf336254f8650c9455c9ab0"; + name = "kcron-19.12.3.tar.xz"; }; }; kdav = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kdav-19.12.1.tar.xz"; - sha256 = "5059a295f3ecd9046da6f5ecadab596b3e47c75c5090650a1d6cd1f86a8b7498"; - name = "kdav-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kdav-19.12.3.tar.xz"; + sha256 = "7a0ed47378e064536b26dfdfcf7abcdb8dd2ec253a7bbcef7962b701d368872a"; + name = "kdav-19.12.3.tar.xz"; }; }; kdebugsettings = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kdebugsettings-19.12.1.tar.xz"; - sha256 = "2730430123e6198131acbabb5d02800981082f7249f0d9b9001b5313b2d45f35"; - name = "kdebugsettings-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kdebugsettings-19.12.3.tar.xz"; + sha256 = "ad18d13dd0943a3651ec4729441899b103bd2dc743a4a373ce7bd14fb38dd3e0"; + name = "kdebugsettings-19.12.3.tar.xz"; }; }; kde-dev-scripts = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kde-dev-scripts-19.12.1.tar.xz"; - sha256 = "c2965dee649abea0791774ae264230dbe673af07eb0bd85bf3e8c7c6a739cea5"; - name = "kde-dev-scripts-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kde-dev-scripts-19.12.3.tar.xz"; + sha256 = "94c0ba9de369dd6af14dcea505616025bf06599618a6c7557861aa9fb89ea628"; + name = "kde-dev-scripts-19.12.3.tar.xz"; }; }; kde-dev-utils = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kde-dev-utils-19.12.1.tar.xz"; - sha256 = "94f983c9b49ed3bc59b20849b23e7c26b64b7b303fbd86147c4bc823f87cda7d"; - name = "kde-dev-utils-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kde-dev-utils-19.12.3.tar.xz"; + sha256 = "772ec425865082b8be3650cf0af10ad943f38096036227cab22405b32c4e1fae"; + name = "kde-dev-utils-19.12.3.tar.xz"; }; }; kdeedu-data = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kdeedu-data-19.12.1.tar.xz"; - sha256 = "d140f048e1ca8bd777b4a431904b3313a86446a5fd04e1f9c4e1fb4641a09b15"; - name = "kdeedu-data-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kdeedu-data-19.12.3.tar.xz"; + sha256 = "76fd5c0efaf339bcfc5ac9f131bac8889cff1df2dd3452ea7dd507b8d9e2645b"; + name = "kdeedu-data-19.12.3.tar.xz"; }; }; kdegraphics-mobipocket = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kdegraphics-mobipocket-19.12.1.tar.xz"; - sha256 = "546d11af89e97831cc09868051142d4180e9621cc537c2941272b42a85e71c6a"; - name = "kdegraphics-mobipocket-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kdegraphics-mobipocket-19.12.3.tar.xz"; + sha256 = "c459f9f04cf98cdc88a6763da8880f418e0c33b3cbd1d06b9a7347ebb470d835"; + name = "kdegraphics-mobipocket-19.12.3.tar.xz"; }; }; kdegraphics-thumbnailers = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kdegraphics-thumbnailers-19.12.1.tar.xz"; - sha256 = "a91335c11637a351d3ea8798f5519ac5596d655aec92266e46ed2a1bab46a299"; - name = "kdegraphics-thumbnailers-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kdegraphics-thumbnailers-19.12.3.tar.xz"; + sha256 = "92a045ac0e9ca57ea27760df3cca0203f29ba435574e9d837d0c1069b8e88f72"; + name = "kdegraphics-thumbnailers-19.12.3.tar.xz"; }; }; kdenetwork-filesharing = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kdenetwork-filesharing-19.12.1.tar.xz"; - sha256 = "823e31424998e96084eeb909dfb7ee6a8e8e6d33b5d2a57ada7d583350967684"; - name = "kdenetwork-filesharing-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kdenetwork-filesharing-19.12.3.tar.xz"; + sha256 = "8cc75f47ef8038cd7ee75974056cd48022816ab42c76cb6bd2c35a3619445180"; + name = "kdenetwork-filesharing-19.12.3.tar.xz"; }; }; kdenlive = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kdenlive-19.12.1.tar.xz"; - sha256 = "fccf34a4660ce8a78ceefe8a4b9dd93d104f6871976d991ceec769366627dc77"; - name = "kdenlive-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kdenlive-19.12.3.tar.xz"; + sha256 = "cebcb8f019bc0fc719ef54d00507dc1281758e3c8c69ea2f93f99feda777bc64"; + name = "kdenlive-19.12.3.tar.xz"; }; }; kdepim-addons = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kdepim-addons-19.12.1.tar.xz"; - sha256 = "091e3fd007ad54cd1dcd4e2d51c4ac883a2d9e365ca78592aa91a37835c4dcf5"; - name = "kdepim-addons-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kdepim-addons-19.12.3.tar.xz"; + sha256 = "f33bc70ac54ab56eea7bd8ca4c0ac98d9612acc4ddc9ce989d06b99f04f62c19"; + name = "kdepim-addons-19.12.3.tar.xz"; }; }; kdepim-apps-libs = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kdepim-apps-libs-19.12.1.tar.xz"; - sha256 = "4ff633c98cd128f2409cb78c193dd72f1078ae29eba8db3e304248a019e17e43"; - name = "kdepim-apps-libs-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kdepim-apps-libs-19.12.3.tar.xz"; + sha256 = "e133cf76364f6b244338eafd39845a9f392eb9b55c43446541acbcb24a6f4796"; + name = "kdepim-apps-libs-19.12.3.tar.xz"; }; }; kdepim-runtime = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kdepim-runtime-19.12.1.tar.xz"; - sha256 = "31b1fe9778723079048d0fe1750028fd3f5f5b467ee10dcfa7fab37202a6ca39"; - name = "kdepim-runtime-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kdepim-runtime-19.12.3.tar.xz"; + sha256 = "dabf7da1ad35dfaa3531639a8964b61dbd7094ec0a9b3d62f50fa24a22f5db13"; + name = "kdepim-runtime-19.12.3.tar.xz"; }; }; kdesdk-kioslaves = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kdesdk-kioslaves-19.12.1.tar.xz"; - sha256 = "e8e8f02e019bad7983cdc5cddbd435ccf676fd804ee7f960653acdda5676abb2"; - name = "kdesdk-kioslaves-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kdesdk-kioslaves-19.12.3.tar.xz"; + sha256 = "8b075bff545883aba24fee1763d0cdc64bf9444ae865f0623a33fc1ca295d254"; + name = "kdesdk-kioslaves-19.12.3.tar.xz"; }; }; kdesdk-thumbnailers = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kdesdk-thumbnailers-19.12.1.tar.xz"; - sha256 = "77f64ddb075407f781cf2d658af760840f9427cc171e8ec15805f47105da0e56"; - name = "kdesdk-thumbnailers-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kdesdk-thumbnailers-19.12.3.tar.xz"; + sha256 = "b304843045f93e91e0aeeeacf968018dc192ea71ed9977be3d9cfc4e149edcde"; + name = "kdesdk-thumbnailers-19.12.3.tar.xz"; }; }; kdf = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kdf-19.12.1.tar.xz"; - sha256 = "bf5c96e5a78e0465e9b91617ffff0c37f04e896dc059d70962bbdd943c6c1c04"; - name = "kdf-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kdf-19.12.3.tar.xz"; + sha256 = "257e07e27376f45eaa1bfb1b3055c7f10759ca7ec185aa7572dc60317c8119bd"; + name = "kdf-19.12.3.tar.xz"; }; }; kdialog = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kdialog-19.12.1.tar.xz"; - sha256 = "2a13d1957089e4a0307681786b9b5467b5df777311afd4598dd1cb69b4e070f6"; - name = "kdialog-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kdialog-19.12.3.tar.xz"; + sha256 = "e6f9a7a6b7c2f18795070bf9466dd6256568b02683d955ef3253432216594d00"; + name = "kdialog-19.12.3.tar.xz"; }; }; kdiamond = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kdiamond-19.12.1.tar.xz"; - sha256 = "4f7770138d16bb7b91920b7f3c7024a89ef35dc330a2ac929a2fa5d4ee12b982"; - name = "kdiamond-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kdiamond-19.12.3.tar.xz"; + sha256 = "95dfd2fd3daa59a58d128c35b95b609117438efdb5d60110414ab7aff5fe3e7c"; + name = "kdiamond-19.12.3.tar.xz"; }; }; keditbookmarks = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/keditbookmarks-19.12.1.tar.xz"; - sha256 = "11a950d53bc6e0b50d62a3ced2b74eaaa85c595b845ca8f2dcfa65e69d407fb0"; - name = "keditbookmarks-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/keditbookmarks-19.12.3.tar.xz"; + sha256 = "1c5efb63eb0a714942677eb03f91ae0bbd10731eace5471ea12ae9d3296b6b05"; + name = "keditbookmarks-19.12.3.tar.xz"; }; }; kfind = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kfind-19.12.1.tar.xz"; - sha256 = "e9f5defa7796bbb54208b28af1fa76333a38e743d7febb8dd14739cf00d376eb"; - name = "kfind-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kfind-19.12.3.tar.xz"; + sha256 = "b3738d6e3f26fffbfcc204d946e165ae0727d9f460cb2065ceb221b4872019b1"; + name = "kfind-19.12.3.tar.xz"; }; }; kfloppy = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kfloppy-19.12.1.tar.xz"; - sha256 = "77581323d16f8666fefca3372c91567dfe5233c0f92c79ead11b2253aee64e2c"; - name = "kfloppy-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kfloppy-19.12.3.tar.xz"; + sha256 = "7f384f9197d5066a5db978a9551665ae9a90b1f3afd1937f800ab61e376d3723"; + name = "kfloppy-19.12.3.tar.xz"; }; }; kfourinline = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kfourinline-19.12.1.tar.xz"; - sha256 = "76e31b59f1b31ddb755def377324d5fa5b5a4835f1f537a30632a028bf671a3e"; - name = "kfourinline-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kfourinline-19.12.3.tar.xz"; + sha256 = "1d2f4fdbf427e2ce86a0519ee61a70df0675f039cebd658cd75bd27af4fe69f6"; + name = "kfourinline-19.12.3.tar.xz"; }; }; kgeography = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kgeography-19.12.1.tar.xz"; - sha256 = "47f809fdb6da503c0b00f5d2052f9def3af0964ace45325e683227a1971c3a1b"; - name = "kgeography-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kgeography-19.12.3.tar.xz"; + sha256 = "3947ca1f50910d77f85c630b49128a085fed4230c7919e09281bc1765529a533"; + name = "kgeography-19.12.3.tar.xz"; }; }; kget = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kget-19.12.1.tar.xz"; - sha256 = "33b043857b3d1c55d877d1c3af2bcc46feefe15019b7af40a9951c16e288658c"; - name = "kget-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kget-19.12.3.tar.xz"; + sha256 = "a4b1d8fb94617c80a557c27ae58a14131bda4476340c136262e5bf8f51d918d9"; + name = "kget-19.12.3.tar.xz"; }; }; kgoldrunner = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kgoldrunner-19.12.1.tar.xz"; - sha256 = "1f2044656732ab7a72117139576201ca1701666d525c93b726473d4cd9aed29c"; - name = "kgoldrunner-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kgoldrunner-19.12.3.tar.xz"; + sha256 = "5808d797fb9df178526b3ea462bc902ca36b5926ef7c51233816ba3da6bc0bdd"; + name = "kgoldrunner-19.12.3.tar.xz"; }; }; kgpg = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kgpg-19.12.1.tar.xz"; - sha256 = "e64dc85f303e45b8a7ef635525f6834c4fd2db36c5131fdb231fa11f7237fdb5"; - name = "kgpg-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kgpg-19.12.3.tar.xz"; + sha256 = "53e5726a1ccf34a70090ac0bbf2effb6f1f9f9b3d0164a5beead982a24c97e38"; + name = "kgpg-19.12.3.tar.xz"; }; }; khangman = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/khangman-19.12.1.tar.xz"; - sha256 = "42fa9d9a9a72fe4b14127b12d5b662d66c00c1899eeefba6102be95136333def"; - name = "khangman-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/khangman-19.12.3.tar.xz"; + sha256 = "55286b318ec2c2d8b7e63f4063fc0e39a8ff81c0a9d3f06c9879f141c94762a8"; + name = "khangman-19.12.3.tar.xz"; }; }; khelpcenter = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/khelpcenter-19.12.1.tar.xz"; - sha256 = "cd38f6b719f4f6228e3a7f94fc63f16020e86382ca402179ae767f2f0b846466"; - name = "khelpcenter-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/khelpcenter-19.12.3.tar.xz"; + sha256 = "526c89e46cace9e8afb4e748f9bbf0d105472a4cc4a6d8bb821e8b9b88ab0f73"; + name = "khelpcenter-19.12.3.tar.xz"; }; }; kidentitymanagement = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kidentitymanagement-19.12.1.tar.xz"; - sha256 = "7df38592610e0ed74c55baf6670331d07b2df0c98484d5f8cf8f135b6d229702"; - name = "kidentitymanagement-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kidentitymanagement-19.12.3.tar.xz"; + sha256 = "254bfc3a60df7bc1960fa1e6d5b7733f6aa5ed7772c1097d9a8cfcdda2704516"; + name = "kidentitymanagement-19.12.3.tar.xz"; }; }; kig = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kig-19.12.1.tar.xz"; - sha256 = "507d89cddc0e128ab398ce0f551af22af0ba1583a4419574296cfefb96d944ee"; - name = "kig-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kig-19.12.3.tar.xz"; + sha256 = "1ae2c3024cdd14e476ff15b730f4ebe9b279477b67cc4cc89606755c7d3beef3"; + name = "kig-19.12.3.tar.xz"; }; }; kigo = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kigo-19.12.1.tar.xz"; - sha256 = "235df9bca39b02dac6648b408d71f7b0978604f8389ea7ef5aa8e0be87fbcf9d"; - name = "kigo-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kigo-19.12.3.tar.xz"; + sha256 = "ee18b8563c49e3e01924ea76cd8c6ec376482c2100e0fac7cdfd14b5899592d5"; + name = "kigo-19.12.3.tar.xz"; }; }; killbots = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/killbots-19.12.1.tar.xz"; - sha256 = "3d524028e7df412e4306daf4e7b1aca803d26b65985fa429c98db10cffff010f"; - name = "killbots-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/killbots-19.12.3.tar.xz"; + sha256 = "3c5dc7e1f27036d2584f6ee58bf3bbffd9e56a467f30a8e2eab9e1bda1e7d4a3"; + name = "killbots-19.12.3.tar.xz"; }; }; kimagemapeditor = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kimagemapeditor-19.12.1.tar.xz"; - sha256 = "9869f3a060dc44f2fad0646fa9c0f1c2924d68c3cc3de5147170456f27a39e77"; - name = "kimagemapeditor-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kimagemapeditor-19.12.3.tar.xz"; + sha256 = "1aee6521974bde5151744d92823f6b405ee4a8bd2dfe3c538324a209e18c6b35"; + name = "kimagemapeditor-19.12.3.tar.xz"; }; }; kimap = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kimap-19.12.1.tar.xz"; - sha256 = "898e1f3b233b3631ffc74859d54bf402d36f0c5bae7f792e97d3fa5116d8bd0e"; - name = "kimap-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kimap-19.12.3.tar.xz"; + sha256 = "5c3b3cdf928754f9919030d865a2cdad0ad342c82c436afef660d018f85de4d2"; + name = "kimap-19.12.3.tar.xz"; }; }; kio-extras = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kio-extras-19.12.1.tar.xz"; - sha256 = "79b3735510c3c8da9b3e019ee5a54b115f85bb8d89f1c04dbbf16dde3007e7b6"; - name = "kio-extras-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kio-extras-19.12.3.tar.xz"; + sha256 = "413cb21479fedf1421a6e2585b4df813c3a3fadaa77c248a9f810021f58cea4b"; + name = "kio-extras-19.12.3.tar.xz"; }; }; kipi-plugins = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kipi-plugins-19.12.1.tar.xz"; - sha256 = "bcd27ab29b491f13116a156e403126d04ffbaa352b581eca7fb0904e13c5dabe"; - name = "kipi-plugins-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kipi-plugins-19.12.3.tar.xz"; + sha256 = "16997bd6fbb59c194c2997732c870e33bbacd3d7346546af9a255db3330ec5ac"; + name = "kipi-plugins-19.12.3.tar.xz"; }; }; kirigami-gallery = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kirigami-gallery-19.12.1.tar.xz"; - sha256 = "de7f9d739feeac481223c7992179cb3cfaa2aabca1097b0d3597c5c9d737cb19"; - name = "kirigami-gallery-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kirigami-gallery-19.12.3.tar.xz"; + sha256 = "17febaeb77e0dfc6f591dd285fd7f538466572f2f2e3253461c41f92d6cb05fe"; + name = "kirigami-gallery-19.12.3.tar.xz"; }; }; kiriki = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kiriki-19.12.1.tar.xz"; - sha256 = "f3079b53ed45ec46def7a95b336d441dba18151cc77c88ef8ce2d02fcf1d6375"; - name = "kiriki-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kiriki-19.12.3.tar.xz"; + sha256 = "abbaa49f9b47286f9afbe7c968eb6fbfeecb4be84ed4b2ce7514a3ed1e92b2d5"; + name = "kiriki-19.12.3.tar.xz"; }; }; kiten = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kiten-19.12.1.tar.xz"; - sha256 = "abee050c05b54fae25562237b91a14156dabcb26ea142c714b5ec9e1907f54f3"; - name = "kiten-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kiten-19.12.3.tar.xz"; + sha256 = "663739a8b252cb95a38294c6f7d675c833daaa81f2654f5cabd8e512fd353560"; + name = "kiten-19.12.3.tar.xz"; }; }; kitinerary = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kitinerary-19.12.1.tar.xz"; - sha256 = "6497469e9966c9c21c2810a1f21c2633b89e54dafb74d5689aa24382e3824926"; - name = "kitinerary-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kitinerary-19.12.3.tar.xz"; + sha256 = "4188efe8672091cbdaa4f757f5d8b94a30b1373dceafc076b01330602d5086e2"; + name = "kitinerary-19.12.3.tar.xz"; }; }; kjumpingcube = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kjumpingcube-19.12.1.tar.xz"; - sha256 = "3e4abd57d14dccc9b39669eebdab578fc865464b8a4309c3ab8103002edc2ff0"; - name = "kjumpingcube-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kjumpingcube-19.12.3.tar.xz"; + sha256 = "b969111cb884efc9ad8ef585066ca33d7168bb045c93a3f18668173a11d29ea2"; + name = "kjumpingcube-19.12.3.tar.xz"; }; }; kldap = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kldap-19.12.1.tar.xz"; - sha256 = "5595f840c2b97e96f265ffd91fb007f4beb198aaf67a0dbfd941108acbcb9aa3"; - name = "kldap-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kldap-19.12.3.tar.xz"; + sha256 = "49f1ad32ae10b7f997c77f3a8db0776b972b93f9e18873b77baabf0db05cd5d4"; + name = "kldap-19.12.3.tar.xz"; }; }; kleopatra = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kleopatra-19.12.1.tar.xz"; - sha256 = "94ee94031696dd5d79d7a0ca00a2e51b4569466689e8a76c129deae645af08f4"; - name = "kleopatra-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kleopatra-19.12.3.tar.xz"; + sha256 = "04edf29e42088b2bccdfe36b9b7170c38acd7816657673da5393244b73773098"; + name = "kleopatra-19.12.3.tar.xz"; }; }; klettres = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/klettres-19.12.1.tar.xz"; - sha256 = "4f103d85918d40e0a3ffc451bf3862c45b37b8bd2453e6ee7d21d4c738967c36"; - name = "klettres-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/klettres-19.12.3.tar.xz"; + sha256 = "f2a1bbb002954a80045780de24f494154214b8add53a5c01a8783cbeb26d26c7"; + name = "klettres-19.12.3.tar.xz"; }; }; klickety = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/klickety-19.12.1.tar.xz"; - sha256 = "66cba17839023b6fe563a461da8f52a3c8a2bd4949195da2d63d780547f2e159"; - name = "klickety-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/klickety-19.12.3.tar.xz"; + sha256 = "351e421ecca5fc80955ed614453c81d8b790200185db16f56be1e0ca9325ad39"; + name = "klickety-19.12.3.tar.xz"; }; }; klines = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/klines-19.12.1.tar.xz"; - sha256 = "111c4e607c4ba434a8ff593e45ba669c78e6c1fbf9e4d77d0fc5d611e733604e"; - name = "klines-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/klines-19.12.3.tar.xz"; + sha256 = "8d11894d0a02de20090e52ef697a5a3c00e902213c018a82c94ca0985e92350a"; + name = "klines-19.12.3.tar.xz"; }; }; kmag = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kmag-19.12.1.tar.xz"; - sha256 = "59e5a59407894976574acf78e7248fd0609ce6ee222c60388a99e5576ac2061f"; - name = "kmag-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kmag-19.12.3.tar.xz"; + sha256 = "d1e8bbc8006cd2cfcb345e30aac73350562bff98b69b0333ad49726cdce81e7e"; + name = "kmag-19.12.3.tar.xz"; }; }; kmahjongg = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kmahjongg-19.12.1.tar.xz"; - sha256 = "e157f2e603c03128fb99ac4d0b4bc3ab2002a60960c780a3907e35bb8aee9bd3"; - name = "kmahjongg-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kmahjongg-19.12.3.tar.xz"; + sha256 = "41a07f74cc4e3bf05f6a57a380d4e093b0303528cb703369981b262a0b1787c8"; + name = "kmahjongg-19.12.3.tar.xz"; }; }; kmail = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kmail-19.12.1.tar.xz"; - sha256 = "a8fa4a604f8f88b91beebf0f3f9bb0ac7c040671bd75ab4478d8087a21cde40c"; - name = "kmail-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kmail-19.12.3.tar.xz"; + sha256 = "7f70e5270960e474b15631a36110e13fdf7238d6fd9f1b3fdb6d8c145b6529ba"; + name = "kmail-19.12.3.tar.xz"; }; }; kmail-account-wizard = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kmail-account-wizard-19.12.1.tar.xz"; - sha256 = "e7cbda3946b19d01f5c3a722d2c104b7be072ab411f80437a25b8200d73e7cfa"; - name = "kmail-account-wizard-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kmail-account-wizard-19.12.3.tar.xz"; + sha256 = "4199e8c73456bf31b829596919ca481c3a95e59dee7c9bfb2e680311d0354ff0"; + name = "kmail-account-wizard-19.12.3.tar.xz"; }; }; kmailtransport = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kmailtransport-19.12.1.tar.xz"; - sha256 = "1a46563c441a7d09e6cc2bf98a628b724944193e0df88607d5d867f4fa65c1a4"; - name = "kmailtransport-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kmailtransport-19.12.3.tar.xz"; + sha256 = "077b3dba7c02dde9693c003ab7039f3b2a530e3b1aecfcf187313db5226e8953"; + name = "kmailtransport-19.12.3.tar.xz"; }; }; kmbox = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kmbox-19.12.1.tar.xz"; - sha256 = "7442fd3a421a917a3f27e47259a7da7e08ff6191290a0e9e67c67005c82c606a"; - name = "kmbox-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kmbox-19.12.3.tar.xz"; + sha256 = "de69683abb42c5c24ccb4f034e067f50c94d5a10c53f359b0e6ad4b75a70b376"; + name = "kmbox-19.12.3.tar.xz"; }; }; kmime = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kmime-19.12.1.tar.xz"; - sha256 = "4d6db5d59b239b884bf8811f3ea616520ab1f69224a809cef3f79023b2563085"; - name = "kmime-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kmime-19.12.3.tar.xz"; + sha256 = "5ed20ad77000c60ba5723aaa22149fca3a3956f930d63e70984f0a17b9339300"; + name = "kmime-19.12.3.tar.xz"; }; }; kmines = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kmines-19.12.1.tar.xz"; - sha256 = "8f921aa4bda7397c0fa6265ba07a6ce68190174864d0ee16ee575be806b49539"; - name = "kmines-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kmines-19.12.3.tar.xz"; + sha256 = "05d8004f2e560bf2c9e32a3ca1988b3848b99bfb9cc96307c1ac2b703c202dad"; + name = "kmines-19.12.3.tar.xz"; }; }; kmix = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kmix-19.12.1.tar.xz"; - sha256 = "97fff89e4a102351d01265a9659c5664b030b9b4f27fa021b997fe7ab8801ad6"; - name = "kmix-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kmix-19.12.3.tar.xz"; + sha256 = "a4c637383e988ffa21b9c48c72ef6d8855fe207c852d0679011337a331ccfc5c"; + name = "kmix-19.12.3.tar.xz"; }; }; kmousetool = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kmousetool-19.12.1.tar.xz"; - sha256 = "d056fd05ffb900f65670e3a77dc8a0c08fbc02d86f4fba1b34dd8f6b5f60c3e5"; - name = "kmousetool-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kmousetool-19.12.3.tar.xz"; + sha256 = "3741aff20c778bb704c76df7ff005da36ef6c41b07fca35f257ba440741b8413"; + name = "kmousetool-19.12.3.tar.xz"; }; }; kmouth = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kmouth-19.12.1.tar.xz"; - sha256 = "da46e472a05920225c3ae0caba21279dc817b7c8e77ae981b1ad6cf2083a49ad"; - name = "kmouth-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kmouth-19.12.3.tar.xz"; + sha256 = "424dd4cf81cd43e47630ada0f2a9e47be8106b31ebf2e5c8c1077e55e3a8113f"; + name = "kmouth-19.12.3.tar.xz"; }; }; kmplot = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kmplot-19.12.1.tar.xz"; - sha256 = "b82d9f9d4f3d3447e9125b42918819fe8effd5658d9a385da79e81e12f7466cf"; - name = "kmplot-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kmplot-19.12.3.tar.xz"; + sha256 = "2743e3a472ccf40281f5afd9c6110dde6fb9bc437e8e291beba484d405d8152e"; + name = "kmplot-19.12.3.tar.xz"; }; }; knavalbattle = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/knavalbattle-19.12.1.tar.xz"; - sha256 = "1cc2c7fec2e2edc634cb1f83cf7e433522b0bc7d76c04cbcde66bb486a832856"; - name = "knavalbattle-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/knavalbattle-19.12.3.tar.xz"; + sha256 = "59875e10b0f2b06c2d3165f2f2457113f04550215947c8296ce1dcaf385ee37f"; + name = "knavalbattle-19.12.3.tar.xz"; }; }; knetwalk = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/knetwalk-19.12.1.tar.xz"; - sha256 = "95725a45c56956a2b8e8e2db36b6baedfc0271af0d6e3541d6143342e6f41ca5"; - name = "knetwalk-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/knetwalk-19.12.3.tar.xz"; + sha256 = "24cb7cfa4143b2ab1bcaf38a6698cd01252201238c6561bc711e0673366642ae"; + name = "knetwalk-19.12.3.tar.xz"; }; }; knights = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/knights-19.12.1.tar.xz"; - sha256 = "60ce0d76eb13c95ba81b0f2dfe5bd3e80ed2226319e4ef97150c3240f428d355"; - name = "knights-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/knights-19.12.3.tar.xz"; + sha256 = "4796654dcaff355b4f1097260748cfe04812ff926acc7ca0f037711875dd1512"; + name = "knights-19.12.3.tar.xz"; }; }; knotes = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/knotes-19.12.1.tar.xz"; - sha256 = "e89f22ee1a918553be5241e167bd038797391502cb98c5f260c96b25017dd235"; - name = "knotes-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/knotes-19.12.3.tar.xz"; + sha256 = "b27846609dfac1ffcb3ac5e7165b7557231b096f6a84206da956c37233aed7b0"; + name = "knotes-19.12.3.tar.xz"; }; }; kolf = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kolf-19.12.1.tar.xz"; - sha256 = "78c5e74d61f8c19b31d4d08781d12a87bc6101d0105081e0c15f4506e36ef6f5"; - name = "kolf-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kolf-19.12.3.tar.xz"; + sha256 = "2ba1f781d7d98ca0b10231e4f963b27d043c726f44da662b6c77105da4f9cffc"; + name = "kolf-19.12.3.tar.xz"; }; }; kollision = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kollision-19.12.1.tar.xz"; - sha256 = "a48515f63c0dbcc890aa9c01e344ea5bcb123e587459879796acc39a16243c09"; - name = "kollision-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kollision-19.12.3.tar.xz"; + sha256 = "ce0bb077e8db8a959f965d463bb25bac02c91585b422af6c9249ad8a8f25eaab"; + name = "kollision-19.12.3.tar.xz"; }; }; kolourpaint = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kolourpaint-19.12.1.tar.xz"; - sha256 = "a2db2312ddf79024358309da8b70cb2b9979d208372ce5f0960f662b8aab2518"; - name = "kolourpaint-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kolourpaint-19.12.3.tar.xz"; + sha256 = "7c134da2feb75a87bfda6b4265ef705868a9be03d70a828111a2869ca0b517b1"; + name = "kolourpaint-19.12.3.tar.xz"; }; }; kompare = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kompare-19.12.1.tar.xz"; - sha256 = "c2eede65a85d59067caf6161606c3de4f18ec6b5e824cb1da9e6b3a8f1b7a92d"; - name = "kompare-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kompare-19.12.3.tar.xz"; + sha256 = "b89b266b6f648500627d2e70df29b73248c7b7d7d5e7c1bbcaddaedf072f6f1a"; + name = "kompare-19.12.3.tar.xz"; }; }; konqueror = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/konqueror-19.12.1.tar.xz"; - sha256 = "20da57d7dd141e2c45345457ca90be26af28c2078224eb461dff9f9589889a09"; - name = "konqueror-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/konqueror-19.12.3.tar.xz"; + sha256 = "0f2b31a1dae1740839232bd646bf22d7cb57e34995584b9a96271ebcb0da7f0e"; + name = "konqueror-19.12.3.tar.xz"; }; }; konquest = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/konquest-19.12.1.tar.xz"; - sha256 = "178e42f76115f8e8b47494ea7732fb76a692debe714590c06d84f7071930b65a"; - name = "konquest-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/konquest-19.12.3.tar.xz"; + sha256 = "e23732a7d78382c73fca0d31afb3ed85614ee4b4bfe2f07647a13582fa0811a5"; + name = "konquest-19.12.3.tar.xz"; }; }; konsole = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/konsole-19.12.1.tar.xz"; - sha256 = "39797ed81c5ace12fd90f4a6e65c25d33db8e4385ab2baad2bd6a3b2db0ef075"; - name = "konsole-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/konsole-19.12.3.tar.xz"; + sha256 = "0bde8eb6365c53e96489d0ceb05baa0bb0385ee865492622033164a4c4bfccdc"; + name = "konsole-19.12.3.tar.xz"; }; }; kontact = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kontact-19.12.1.tar.xz"; - sha256 = "e9f7911154953d58be962bd392baf7d9c310e9e665adb0c875ed5a50dcfe5e01"; - name = "kontact-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kontact-19.12.3.tar.xz"; + sha256 = "8dbd01f73c181f7b44df5dfffac1cf33c36b36149294fd854403bada9ef33052"; + name = "kontact-19.12.3.tar.xz"; }; }; kontactinterface = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kontactinterface-19.12.1.tar.xz"; - sha256 = "a88b782b495d662920fd5f51c287c472c107c577af92431b4470787a78866b2c"; - name = "kontactinterface-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kontactinterface-19.12.3.tar.xz"; + sha256 = "1a0392cbeb6833f4834c86f202ff06e5b6069d12100bffe37de6427f0531af89"; + name = "kontactinterface-19.12.3.tar.xz"; }; }; kopete = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kopete-19.12.1.tar.xz"; - sha256 = "eca3610cc9607c27620c7c23f9bb54bdd80d2fb295adaf6636506597fc0b848d"; - name = "kopete-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kopete-19.12.3.tar.xz"; + sha256 = "8d58fb0c9dd8b651bfc996e6928f7ccdad8e21cba39ffd0e54d46f7145fa7b27"; + name = "kopete-19.12.3.tar.xz"; }; }; korganizer = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/korganizer-19.12.1.tar.xz"; - sha256 = "8bd84dfdca4f4738152c19d336b8c516f0c79fd888f0361005bc5d6359eeb117"; - name = "korganizer-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/korganizer-19.12.3.tar.xz"; + sha256 = "ea0a970aa510d5cdbbf80e974049fa3e7591e02c9ec2c4206137c49266df1acb"; + name = "korganizer-19.12.3.tar.xz"; }; }; kpat = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kpat-19.12.1.tar.xz"; - sha256 = "cb72a256a2a6a34bd8ee05e09b28f0eedee6643f24f793c5f67a9465040c30c3"; - name = "kpat-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kpat-19.12.3.tar.xz"; + sha256 = "00b823b1b204b68e0c8671e5ddfe5f96abe8c9fcfb1efa9b7f70191cfa5384e1"; + name = "kpat-19.12.3.tar.xz"; }; }; kpimtextedit = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kpimtextedit-19.12.1.tar.xz"; - sha256 = "253ded44f3ccb7de1a0a8879e45cc361c14dda2924619aeb04f4286c917f5475"; - name = "kpimtextedit-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kpimtextedit-19.12.3.tar.xz"; + sha256 = "64be03d7a8d4b9ece40c0065a23113023c2b3320dc57068fe00f6c4bc72537d5"; + name = "kpimtextedit-19.12.3.tar.xz"; }; }; kpkpass = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kpkpass-19.12.1.tar.xz"; - sha256 = "b5a079dc1c102c52e29c1d0da3e5a1e51bf9e0a666bb82d6b783f1b55eaa7ada"; - name = "kpkpass-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kpkpass-19.12.3.tar.xz"; + sha256 = "45723989170e86c6739c8a377c54b3ba7456a8dc3ed6cf52eef884074c2df189"; + name = "kpkpass-19.12.3.tar.xz"; }; }; kqtquickcharts = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kqtquickcharts-19.12.1.tar.xz"; - sha256 = "641f5c993e627dd6d0778066016d20196b7502e34ab793fcf17dd6b226d08ae8"; - name = "kqtquickcharts-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kqtquickcharts-19.12.3.tar.xz"; + sha256 = "94669a7add0cef9a1c0969a92ece8e60a67fbb0ff32826cc49ce87bd890c976c"; + name = "kqtquickcharts-19.12.3.tar.xz"; }; }; krdc = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/krdc-19.12.1.tar.xz"; - sha256 = "b3d9b9c43bfe5801d807be08172ca4c773ff6fc2d846cf5b2456c3360ca21824"; - name = "krdc-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/krdc-19.12.3.tar.xz"; + sha256 = "12602912abbc22e061067b6b5048d37a7cbdaaf99d203829d3f52fdf7319acce"; + name = "krdc-19.12.3.tar.xz"; }; }; kreversi = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kreversi-19.12.1.tar.xz"; - sha256 = "b81e6544ba23b0869329d734618b3bc4408b585d550985338e6d90bf2d3a17f3"; - name = "kreversi-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kreversi-19.12.3.tar.xz"; + sha256 = "6bfe3a2faa7c0d08fb689b75341bfd5881d66bc865445573b2f4dbb316a751e8"; + name = "kreversi-19.12.3.tar.xz"; }; }; krfb = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/krfb-19.12.1.tar.xz"; - sha256 = "7f25790480ac3a8db8a8bd847d80937a0ab763f6c5c12fa2ce704c4b24810287"; - name = "krfb-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/krfb-19.12.3.tar.xz"; + sha256 = "cb88997dc7b15b992d1de5c5cabaeccb37122e20823501ac29140875259782ee"; + name = "krfb-19.12.3.tar.xz"; }; }; kross-interpreters = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kross-interpreters-19.12.1.tar.xz"; - sha256 = "c5ec40971befd1d214d80c8c2ced3e30aaadfd2d4000ea782751f769783f8130"; - name = "kross-interpreters-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kross-interpreters-19.12.3.tar.xz"; + sha256 = "2b4060494901a68ca1d07e0c345cc0814e11fb84e9f48014a7231021e4377487"; + name = "kross-interpreters-19.12.3.tar.xz"; }; }; kruler = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kruler-19.12.1.tar.xz"; - sha256 = "0ecbc70561c0d973866c4bd27333a5ddc904b748fb3a64f66b6b06040b30d34a"; - name = "kruler-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kruler-19.12.3.tar.xz"; + sha256 = "803a0d31bbb5bfbfa057b13a7f6bbf7630dcc1816a0d41ea13cc4592bdacaa47"; + name = "kruler-19.12.3.tar.xz"; }; }; kshisen = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kshisen-19.12.1.tar.xz"; - sha256 = "a361dfc41595640287dd5b800921859ff17a45f7360e5e2fc6f520cc0e421afa"; - name = "kshisen-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kshisen-19.12.3.tar.xz"; + sha256 = "f6ce353725d71ce65269b1b7b3d118cb8555cd065db0d3b17fe4696d87c10601"; + name = "kshisen-19.12.3.tar.xz"; }; }; ksirk = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/ksirk-19.12.1.tar.xz"; - sha256 = "4f71e4ef3b4d2041edd48537f4b475cb505fc54e45b39b81a08c82d4eec7cc8e"; - name = "ksirk-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/ksirk-19.12.3.tar.xz"; + sha256 = "6387d7a6320e644157f10b94474ca715e7ad7fd15cdf7156a8e7d94bff019dcb"; + name = "ksirk-19.12.3.tar.xz"; }; }; ksmtp = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/ksmtp-19.12.1.tar.xz"; - sha256 = "6c7d6ce91d65d7430cb31fb4a1fd44a600a5a459b3956807ee3180b5822dbac0"; - name = "ksmtp-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/ksmtp-19.12.3.tar.xz"; + sha256 = "1fd69f494afee91c11667ddbba43bc6cc316b51acf5894fe4c3a2631f53fae27"; + name = "ksmtp-19.12.3.tar.xz"; }; }; ksnakeduel = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/ksnakeduel-19.12.1.tar.xz"; - sha256 = "73e9c55cce88a6e5d00683c73382ee82db64bfe788c14c3a4eda8decf382188f"; - name = "ksnakeduel-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/ksnakeduel-19.12.3.tar.xz"; + sha256 = "8db1dece78571f3e6933f8edcd693c3ceb1035acff780547a72c98b9f7decb87"; + name = "ksnakeduel-19.12.3.tar.xz"; }; }; kspaceduel = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kspaceduel-19.12.1.tar.xz"; - sha256 = "0bc1f1c12bcfc9e5c778918fb9fa644f5c7ec5c3e687c015d45a7c5c31a27834"; - name = "kspaceduel-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kspaceduel-19.12.3.tar.xz"; + sha256 = "a9b5dc498b3695b59ae8925cc572cfc521ccadc8532756fa95ac876a7423c444"; + name = "kspaceduel-19.12.3.tar.xz"; }; }; ksquares = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/ksquares-19.12.1.tar.xz"; - sha256 = "955225b9fadbda464bdaf1b59c95c3d12310f84484a296968737e9fb87b37b46"; - name = "ksquares-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/ksquares-19.12.3.tar.xz"; + sha256 = "45a922e4d85835cc655de560b6fd9be87d8cabc74eadbdecda3f17ba53ac92af"; + name = "ksquares-19.12.3.tar.xz"; }; }; ksudoku = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/ksudoku-19.12.1.tar.xz"; - sha256 = "4dd72a5b0bb0c951508bbe2c60ce280efcd0414899e025a2ca4d92336576ec2a"; - name = "ksudoku-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/ksudoku-19.12.3.tar.xz"; + sha256 = "1cf36e762f31464b0640a88c739dfbb39b10129cace7fb5b74093ec607dea06c"; + name = "ksudoku-19.12.3.tar.xz"; }; }; ksystemlog = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/ksystemlog-19.12.1.tar.xz"; - sha256 = "497496ca7451cd34f193ba11fe3100479515a89a34f0437ca2f508a48e68e895"; - name = "ksystemlog-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/ksystemlog-19.12.3.tar.xz"; + sha256 = "8225b1308ace76ebbf9bb805a2b6fae9bf8a425d0b09518645234c1b2df522dc"; + name = "ksystemlog-19.12.3.tar.xz"; }; }; kteatime = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kteatime-19.12.1.tar.xz"; - sha256 = "49a0531b64e93ceb29548a7f75da755e75afda001fce2e6ba906372456b5dc17"; - name = "kteatime-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kteatime-19.12.3.tar.xz"; + sha256 = "0ab5fb6e33583e6d627b8f9dfaba5ce59e2b363e8045dfc66a4f65236d56542f"; + name = "kteatime-19.12.3.tar.xz"; }; }; ktimer = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/ktimer-19.12.1.tar.xz"; - sha256 = "0c5fac1baddfa3144b8930f3d42b78a3eb8681d642a3c3339c903ad2cb30a2ba"; - name = "ktimer-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/ktimer-19.12.3.tar.xz"; + sha256 = "921af876a176a4731a74b5e9e76d751853043ec4f4857301b39a5c680246557c"; + name = "ktimer-19.12.3.tar.xz"; }; }; ktnef = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/ktnef-19.12.1.tar.xz"; - sha256 = "2fce576e517e6ae9001ade6f07a51fcfa899a6569bc4b8c3948827adfc0af20c"; - name = "ktnef-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/ktnef-19.12.3.tar.xz"; + sha256 = "3537515b432e5da00d401046e94e0098fa54c071246cb0e357e3d8f47296ed3c"; + name = "ktnef-19.12.3.tar.xz"; }; }; ktouch = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/ktouch-19.12.1.tar.xz"; - sha256 = "64b8a025f82b951c69c3be7aa7d3c23f14ccef9ed5e900776eb01462cff9a99f"; - name = "ktouch-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/ktouch-19.12.3.tar.xz"; + sha256 = "522fb081da5877717d577493fdaeeecbfe3d8d773e5d7fc83ecced008744ef0e"; + name = "ktouch-19.12.3.tar.xz"; }; }; ktp-accounts-kcm = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/ktp-accounts-kcm-19.12.1.tar.xz"; - sha256 = "1ae81e4b7bae97d9d18c1fdc9e7083cc810b39d58dff5755dc9d78bd62551577"; - name = "ktp-accounts-kcm-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/ktp-accounts-kcm-19.12.3.tar.xz"; + sha256 = "ae5ae5004ecbf34596711a56e069d480c952de5ea784f5e90c391750439aff51"; + name = "ktp-accounts-kcm-19.12.3.tar.xz"; }; }; ktp-approver = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/ktp-approver-19.12.1.tar.xz"; - sha256 = "502a63f13db44fc8a28f64e37c43839b8da22086bf858dc9c492476d9ba14b50"; - name = "ktp-approver-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/ktp-approver-19.12.3.tar.xz"; + sha256 = "af4f6d247b6332745f6b6dfacef74eb2ea0f7bbea9398080fc7b57e5953fdfbd"; + name = "ktp-approver-19.12.3.tar.xz"; }; }; ktp-auth-handler = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/ktp-auth-handler-19.12.1.tar.xz"; - sha256 = "109583d4800d293fe11eeaa553d72643f2a3709c0d078a6e842f2e4b228d93e0"; - name = "ktp-auth-handler-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/ktp-auth-handler-19.12.3.tar.xz"; + sha256 = "40822e78879d97c3cc1d16f44f7d3b581980c4e249a273d7471b291adf3b9225"; + name = "ktp-auth-handler-19.12.3.tar.xz"; }; }; ktp-call-ui = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/ktp-call-ui-19.12.1.tar.xz"; - sha256 = "adb3025f8f878fd4a56ce125bd51c155f26b02661b9365b6321fb456153b0c55"; - name = "ktp-call-ui-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/ktp-call-ui-19.12.3.tar.xz"; + sha256 = "96b1dd64b0f87228d76f12b6cad3677afeb4c44d6f18645c3001555506573fb1"; + name = "ktp-call-ui-19.12.3.tar.xz"; }; }; ktp-common-internals = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/ktp-common-internals-19.12.1.tar.xz"; - sha256 = "4a1f189c1393164fba710e63b0e8f1aae6f22a5faacea0d86544e3e4a471603a"; - name = "ktp-common-internals-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/ktp-common-internals-19.12.3.tar.xz"; + sha256 = "48cde7fc4f2f0d39999f70699867044e0f85e06769a0824aac49c572fb1af5a4"; + name = "ktp-common-internals-19.12.3.tar.xz"; }; }; ktp-contact-list = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/ktp-contact-list-19.12.1.tar.xz"; - sha256 = "c293fa90899d496c4e29b9c9986a3864e06ef22dabbd4583123abbc232f4fe25"; - name = "ktp-contact-list-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/ktp-contact-list-19.12.3.tar.xz"; + sha256 = "093544e84ca12169966837be5f01d339ddc59e5f031d78e68ddf7be4dd890efd"; + name = "ktp-contact-list-19.12.3.tar.xz"; }; }; ktp-contact-runner = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/ktp-contact-runner-19.12.1.tar.xz"; - sha256 = "a86d8a67f3d8f3d741c6c4548a58cbdff384e8bd5ed5cd1d82db65456240ac0f"; - name = "ktp-contact-runner-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/ktp-contact-runner-19.12.3.tar.xz"; + sha256 = "50646e8670449d6f6a9b107e36f18174b5ec37052a7b4f471617f4f53fecc96b"; + name = "ktp-contact-runner-19.12.3.tar.xz"; }; }; ktp-desktop-applets = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/ktp-desktop-applets-19.12.1.tar.xz"; - sha256 = "63f1a0df6a392f41a54fda8c4896754c2687ba34968cf5bbc0ac84a37c1a1741"; - name = "ktp-desktop-applets-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/ktp-desktop-applets-19.12.3.tar.xz"; + sha256 = "4ab8f04537345db8e41ed9f8ff7a6a2f3135e3539382cef97d1a7e9f0eddb54e"; + name = "ktp-desktop-applets-19.12.3.tar.xz"; }; }; ktp-filetransfer-handler = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/ktp-filetransfer-handler-19.12.1.tar.xz"; - sha256 = "208aab8c78f4b7f38e331802a63fa10d00a65c115900c72c7a710b799ea56034"; - name = "ktp-filetransfer-handler-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/ktp-filetransfer-handler-19.12.3.tar.xz"; + sha256 = "b2e81fec33b51628d9d88707b6bd844c69eb2c9bfb00cb0b45759a4fd9769b03"; + name = "ktp-filetransfer-handler-19.12.3.tar.xz"; }; }; ktp-kded-module = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/ktp-kded-module-19.12.1.tar.xz"; - sha256 = "274f97c6874eeb2af14b937ed20430d2ac2e1a769890a70da8d477ac33ed6082"; - name = "ktp-kded-module-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/ktp-kded-module-19.12.3.tar.xz"; + sha256 = "6bb0c05683812738e254c88d39936565966096a7156111565d8a64a59c55ef0d"; + name = "ktp-kded-module-19.12.3.tar.xz"; }; }; ktp-send-file = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/ktp-send-file-19.12.1.tar.xz"; - sha256 = "5652e40e02ac191ad6e8df276a5faf8805000760261d495f3f4424416da3b977"; - name = "ktp-send-file-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/ktp-send-file-19.12.3.tar.xz"; + sha256 = "566d9dccc0c2fa7c23c95051c25543d3aabe76065ddff7dff9d8a37683d2022b"; + name = "ktp-send-file-19.12.3.tar.xz"; }; }; ktp-text-ui = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/ktp-text-ui-19.12.1.tar.xz"; - sha256 = "226efc09343bb9218c461858747a1bc084ad8291fbbcc9f49eb888acfe2039c6"; - name = "ktp-text-ui-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/ktp-text-ui-19.12.3.tar.xz"; + sha256 = "b8ad9a224ae300c0412874d0877fdc8e050869d3a8f60a4051a0919a8749c50f"; + name = "ktp-text-ui-19.12.3.tar.xz"; }; }; ktuberling = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/ktuberling-19.12.1.tar.xz"; - sha256 = "4c0d594ef72bd2dda5d42daf0f8b430319cbea6d28ba5c9725895b1221cdaace"; - name = "ktuberling-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/ktuberling-19.12.3.tar.xz"; + sha256 = "c4d74d18173d5761f7e6f8adf6178713a726c671aaa2eda4e6c77115484e9e55"; + name = "ktuberling-19.12.3.tar.xz"; }; }; kturtle = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kturtle-19.12.1.tar.xz"; - sha256 = "de10ea1ee142aea6fba8dee0d27d2e431aa806c6d7be4f5b5727cba8984e8d51"; - name = "kturtle-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kturtle-19.12.3.tar.xz"; + sha256 = "6958a88c484261919cd89cb1f0d163b0c5d5f1e28b10b3b4e3b6b9e82e379ef1"; + name = "kturtle-19.12.3.tar.xz"; }; }; kubrick = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kubrick-19.12.1.tar.xz"; - sha256 = "485e7e4a30b01cb2661c640214bdc71a3e0a8b61a9071c64ffbbe75e2270af3c"; - name = "kubrick-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kubrick-19.12.3.tar.xz"; + sha256 = "8fc0a0e68d255481c6efb3f4ff894c5e376367b29958c4738bd72d3f4b1ff557"; + name = "kubrick-19.12.3.tar.xz"; }; }; kwalletmanager = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kwalletmanager-19.12.1.tar.xz"; - sha256 = "b2370fbf559a3b8e8551daedada9c97d07041388dc74f8bd1286c64ab18b936b"; - name = "kwalletmanager-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kwalletmanager-19.12.3.tar.xz"; + sha256 = "247c7f80a54babd21a13e6b9386370b72ec12bdf928c08a7e8a647ccca53e393"; + name = "kwalletmanager-19.12.3.tar.xz"; }; }; kwave = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kwave-19.12.1.tar.xz"; - sha256 = "e6c336644c00a457b37820fc87668dd9b8a448d8abf84cda267b6e5cd01e0645"; - name = "kwave-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kwave-19.12.3.tar.xz"; + sha256 = "3c90115d4702dbe46767e2404c952d84533137fa558b787b87ff95ed61f6930d"; + name = "kwave-19.12.3.tar.xz"; }; }; kwordquiz = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/kwordquiz-19.12.1.tar.xz"; - sha256 = "8ee204de56fe2bf33e11d19b9c0c21d7e3dcf26bf550f9dffa79b22a3082659f"; - name = "kwordquiz-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/kwordquiz-19.12.3.tar.xz"; + sha256 = "6965a3b3c171c3f62aeecf4ccdddde14d23062ab914b1860822546a5770b80fc"; + name = "kwordquiz-19.12.3.tar.xz"; }; }; libgravatar = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/libgravatar-19.12.1.tar.xz"; - sha256 = "84525db5f24c04cfa2bb44376a3bd64368e9d9478a160cf862c695052f3fc254"; - name = "libgravatar-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/libgravatar-19.12.3.tar.xz"; + sha256 = "70ea306f48aede9f8f327eaa74ea5ce5761e5dfe67f2da50d3242c0f312edc86"; + name = "libgravatar-19.12.3.tar.xz"; }; }; libkcddb = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/libkcddb-19.12.1.tar.xz"; - sha256 = "50c139aaa14a5f27b3818cec7ec6ede4b764d461b6547651b61e4edd295afe6f"; - name = "libkcddb-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/libkcddb-19.12.3.tar.xz"; + sha256 = "69cbaf03adba24c0cabf957ee4149c4fa86d403eb6b8a07f7f80eb17be49e892"; + name = "libkcddb-19.12.3.tar.xz"; }; }; libkcompactdisc = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/libkcompactdisc-19.12.1.tar.xz"; - sha256 = "95b14098b24a86094b01b357e36ae135fb6c85c838e8735c843d27b101cc2bd9"; - name = "libkcompactdisc-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/libkcompactdisc-19.12.3.tar.xz"; + sha256 = "74aac7dcac84c60a7962f23e7bcc6eb693048fd96ca21015441a87487baa9d1c"; + name = "libkcompactdisc-19.12.3.tar.xz"; }; }; libkdcraw = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/libkdcraw-19.12.1.tar.xz"; - sha256 = "bbdd5b1b9b40780b5f2be567d9ba0ab163fe7dcc7121070b788106e0fe966c1e"; - name = "libkdcraw-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/libkdcraw-19.12.3.tar.xz"; + sha256 = "9454aed707ee311dbfb921f8d45fba11710ffc01f48d65f64585d12c2580116f"; + name = "libkdcraw-19.12.3.tar.xz"; }; }; libkdegames = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/libkdegames-19.12.1.tar.xz"; - sha256 = "317513544e08d03b2381bdb4c0bcd24c844dd8af7ccc4896569dd05933061d9c"; - name = "libkdegames-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/libkdegames-19.12.3.tar.xz"; + sha256 = "39cf5039b7fe11688028df026252c9cd4424546817b5bb635af2558f71ba6b20"; + name = "libkdegames-19.12.3.tar.xz"; }; }; libkdepim = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/libkdepim-19.12.1.tar.xz"; - sha256 = "1d626a959a0f9fcb24c4e01c553126d40314c789db9bc80d6b52f2bb75e233cd"; - name = "libkdepim-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/libkdepim-19.12.3.tar.xz"; + sha256 = "911e7d174240d4c056472549dbd1f3da4467a57c765f3cb34fbac32943f38dbb"; + name = "libkdepim-19.12.3.tar.xz"; }; }; libkeduvocdocument = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/libkeduvocdocument-19.12.1.tar.xz"; - sha256 = "a0e3921dab9d892d5efcddfbca548f230b508fc81ab4d7735c7610a710791816"; - name = "libkeduvocdocument-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/libkeduvocdocument-19.12.3.tar.xz"; + sha256 = "31594d30e03890507b25d676981164fd64258e69c6b264b85939118377eda964"; + name = "libkeduvocdocument-19.12.3.tar.xz"; }; }; libkexiv2 = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/libkexiv2-19.12.1.tar.xz"; - sha256 = "53b9a4ecda0f76df1a5b9f7b8184b85e847838cf97e4ad3036a6c5bb719993e5"; - name = "libkexiv2-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/libkexiv2-19.12.3.tar.xz"; + sha256 = "f5d0947f6b1ca0583d569990dc6f68bb01d8f7756a38bcc40b1e54f7814e4d4d"; + name = "libkexiv2-19.12.3.tar.xz"; }; }; libkgapi = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/libkgapi-19.12.1.tar.xz"; - sha256 = "8bfa16ab76b0042e2a0b827cf251b1155c0e693db39ffcb2805613d3393389cf"; - name = "libkgapi-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/libkgapi-19.12.3.tar.xz"; + sha256 = "f52923c382272b47782348fbadb32902fbcd4652f4100875a745ba57033cf48a"; + name = "libkgapi-19.12.3.tar.xz"; }; }; libkgeomap = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/libkgeomap-19.12.1.tar.xz"; - sha256 = "68c9c5b91e77a4b4a07ca646d58e8e890975825f8f851d850c95dacb7a1d90d2"; - name = "libkgeomap-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/libkgeomap-19.12.3.tar.xz"; + sha256 = "eb604deffe78cdcd4a8c7d888416246d0a17f2e3b7d80d6959e1412f03ab2755"; + name = "libkgeomap-19.12.3.tar.xz"; }; }; libkipi = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/libkipi-19.12.1.tar.xz"; - sha256 = "79f0a994b348467353425aea60dc4f4234c9a259cffcb55ac60d8c195bd0122c"; - name = "libkipi-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/libkipi-19.12.3.tar.xz"; + sha256 = "3a57d07cd4fe8e118558d807242bf483fa2aac1bcf3dcdc29139636c2b280786"; + name = "libkipi-19.12.3.tar.xz"; }; }; libkleo = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/libkleo-19.12.1.tar.xz"; - sha256 = "8e9b78fbeb861370ab81f98150ff9ea8afc960293ae8324fedd0b877302994a7"; - name = "libkleo-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/libkleo-19.12.3.tar.xz"; + sha256 = "1e715442a0c52ca561316abdce9662082f52ad9f3101ea01435a90984989a057"; + name = "libkleo-19.12.3.tar.xz"; }; }; libkmahjongg = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/libkmahjongg-19.12.1.tar.xz"; - sha256 = "e6a107a32c01c654a2372fda984724b4acd59dbc2902f3f9c7a7d9e14587639c"; - name = "libkmahjongg-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/libkmahjongg-19.12.3.tar.xz"; + sha256 = "f8ea23952a576e6081052d10e9c967bebe5db017ad62775183f91236158cc19f"; + name = "libkmahjongg-19.12.3.tar.xz"; }; }; libkomparediff2 = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/libkomparediff2-19.12.1.tar.xz"; - sha256 = "319d61742f7603a60d781151cd717291c5cb976ff0f2895df9d167526cfb0b4a"; - name = "libkomparediff2-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/libkomparediff2-19.12.3.tar.xz"; + sha256 = "aadc6e420e24bdebe203d4dfc76f5c23c8529be70ac057d89b516ab57b165094"; + name = "libkomparediff2-19.12.3.tar.xz"; }; }; libksane = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/libksane-19.12.1.tar.xz"; - sha256 = "5a5998996848e83c80589c8ed0b1a6c1fa48bb61686288d199d831ac810e1603"; - name = "libksane-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/libksane-19.12.3.tar.xz"; + sha256 = "0aab855b8414041c37ddfbb9f0732272206af1c0844376f1370b9d2a907af71d"; + name = "libksane-19.12.3.tar.xz"; }; }; libksieve = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/libksieve-19.12.1.tar.xz"; - sha256 = "6c3d49e2ce4d8e6b7c1b4328aa6065a01c7711223dd4f3b9db3a542f9fc0a84c"; - name = "libksieve-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/libksieve-19.12.3.tar.xz"; + sha256 = "990e6a15e7e88120bf6c744fe6f1ac78184d6470318005f24634a70219f45002"; + name = "libksieve-19.12.3.tar.xz"; }; }; lokalize = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/lokalize-19.12.1.tar.xz"; - sha256 = "ee29cff9a513d68cde72e6ace0f893de77be5cb3fe56b4b6e0d1fa5b808b424c"; - name = "lokalize-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/lokalize-19.12.3.tar.xz"; + sha256 = "8015c994e974fd51c1c7f5903a005bbbc25f094656bdd44cd5e8675cd69cea92"; + name = "lokalize-19.12.3.tar.xz"; }; }; lskat = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/lskat-19.12.1.tar.xz"; - sha256 = "0aa36c4cc554b708f7334b32362831537ea52db81b8480b80ffac5c27a041e8f"; - name = "lskat-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/lskat-19.12.3.tar.xz"; + sha256 = "5f13417ba9f6831a5f48c220a5c67a8d73787715b8b4aa433e6e356b7ac58776"; + name = "lskat-19.12.3.tar.xz"; }; }; mailcommon = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/mailcommon-19.12.1.tar.xz"; - sha256 = "160135049bc2e4984f14022af793a9ac05bf488faa6f9eb7bd86a094de1c9bfe"; - name = "mailcommon-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/mailcommon-19.12.3.tar.xz"; + sha256 = "d3999d290505b20aecbb4b14bec5af4d6a7db72d1f26f7a40b4aff231588c7e5"; + name = "mailcommon-19.12.3.tar.xz"; }; }; mailimporter = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/mailimporter-19.12.1.tar.xz"; - sha256 = "c1a042560438d6f6195a1f64355515489b74a44c1d2f5f547ced6785439215f1"; - name = "mailimporter-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/mailimporter-19.12.3.tar.xz"; + sha256 = "b81e8a5794aee24aa611c1a1912f93a308ce56c429ad4a72afe308e6b554c4a7"; + name = "mailimporter-19.12.3.tar.xz"; }; }; marble = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/marble-19.12.1.tar.xz"; - sha256 = "46ec0dcab4773ccfb843ae52881ae833b038a00b7690977a2e721099264dc8dd"; - name = "marble-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/marble-19.12.3.tar.xz"; + sha256 = "73a2c5234f8a1728e2a97499166e7bbf8dfb2f48d10fe8cff96380631d064627"; + name = "marble-19.12.3.tar.xz"; }; }; mbox-importer = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/mbox-importer-19.12.1.tar.xz"; - sha256 = "04dd6220192095d0f7befb368b9d96a321acac7af43b3575faf25ae89d17b5f4"; - name = "mbox-importer-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/mbox-importer-19.12.3.tar.xz"; + sha256 = "62fb1490517e0a49bf823946c8b747062cb970dbe00281d459adda73596f0046"; + name = "mbox-importer-19.12.3.tar.xz"; }; }; messagelib = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/messagelib-19.12.1.tar.xz"; - sha256 = "d2514ac31f78235340353701f735a15f69d99374a55566ec7702a3a5ddd23d05"; - name = "messagelib-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/messagelib-19.12.3.tar.xz"; + sha256 = "5e776d5ea7b0cbb246b03cf2bfc84a65a959e7433a7f80b77a5f67cfa7c23ccb"; + name = "messagelib-19.12.3.tar.xz"; }; }; minuet = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/minuet-19.12.1.tar.xz"; - sha256 = "735b340f9f0d6ee09c2c6aa76061282da6bd921f8b77683c53311731a77edff1"; - name = "minuet-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/minuet-19.12.3.tar.xz"; + sha256 = "740a3704004336f08c0fde148257c1562254b4e706704ec7eb2149fb3d7b6b9b"; + name = "minuet-19.12.3.tar.xz"; }; }; okular = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/okular-19.12.1.tar.xz"; - sha256 = "485044127c6bbe0d4c71f1518da15050957c06b8fe36633462367d15d684d4bd"; - name = "okular-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/okular-19.12.3.tar.xz"; + sha256 = "c5de22cc4292e3b7adae3f6ef6566dcba33a1dd5995fb0b968ea3e705a4c04e0"; + name = "okular-19.12.3.tar.xz"; }; }; palapeli = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/palapeli-19.12.1.tar.xz"; - sha256 = "ea4d9dd576066a610444680f3e8686f242bc8be9222020423acab52ec98a185f"; - name = "palapeli-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/palapeli-19.12.3.tar.xz"; + sha256 = "6989bbc94ed955f6990d40bccbc0c38768898bf2ccb8163c45119517340b723d"; + name = "palapeli-19.12.3.tar.xz"; }; }; parley = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/parley-19.12.1.tar.xz"; - sha256 = "54b91178a9bd1ff9c1817bd0df69a3a4bb9e4f3488f052034dd45e729f1325b6"; - name = "parley-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/parley-19.12.3.tar.xz"; + sha256 = "ebf9fdec981abca988d83d8a77e921e7ce871eb010b6cf4ea9065ee6d45f5089"; + name = "parley-19.12.3.tar.xz"; }; }; picmi = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/picmi-19.12.1.tar.xz"; - sha256 = "5428ef9add8dd9479f319b8c08fbfefca9ee34fbf503bee1c55b04ecf82ae9f9"; - name = "picmi-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/picmi-19.12.3.tar.xz"; + sha256 = "04a69125fc76b1fcd58d873452e4a4e642ee9ee672cdb7656214d8cd854fc178"; + name = "picmi-19.12.3.tar.xz"; }; }; pimcommon = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/pimcommon-19.12.1.tar.xz"; - sha256 = "d3058407ec578a32df82eb83eb7631d2904e75d6d345ed61dac0f3744840ebf5"; - name = "pimcommon-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/pimcommon-19.12.3.tar.xz"; + sha256 = "443e2915eb42a4f56f1ddf47785ceeceb4ca1e0384ff48bc93fc4a7756392766"; + name = "pimcommon-19.12.3.tar.xz"; }; }; pim-data-exporter = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/pim-data-exporter-19.12.1.tar.xz"; - sha256 = "3f650c1c221826079d7c739e4070e295a7a1b1156f75e8e3100b06f878efed12"; - name = "pim-data-exporter-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/pim-data-exporter-19.12.3.tar.xz"; + sha256 = "8e9961fcc4f1ed0305d589e3a417f8924657d89d798a77c53956d73f6bf19938"; + name = "pim-data-exporter-19.12.3.tar.xz"; }; }; pim-sieve-editor = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/pim-sieve-editor-19.12.1.tar.xz"; - sha256 = "3fdca7147c581dce4a014dc2d30bd7e6616c0559654cf9fee68e9292fd6ef037"; - name = "pim-sieve-editor-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/pim-sieve-editor-19.12.3.tar.xz"; + sha256 = "641ea56304df079a80e098fb253c173b63266990856f8795af093c144c3883ae"; + name = "pim-sieve-editor-19.12.3.tar.xz"; }; }; poxml = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/poxml-19.12.1.tar.xz"; - sha256 = "f02aa4d1f7de8fb38921fe73076b3e905185979d9b75ff6345efaca8aad0ebb9"; - name = "poxml-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/poxml-19.12.3.tar.xz"; + sha256 = "190178290ce18fe3a684c22d650843f3008a6e31ebbab8fff25491c58b21e276"; + name = "poxml-19.12.3.tar.xz"; }; }; print-manager = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/print-manager-19.12.1.tar.xz"; - sha256 = "76336be7da80a7494e2e5d5c9ab431047672a98630c7d61f916aa4b9edc35776"; - name = "print-manager-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/print-manager-19.12.3.tar.xz"; + sha256 = "74c13802a65136539b4542fec10fb248149a3324e8060e947a8f305ce665269a"; + name = "print-manager-19.12.3.tar.xz"; }; }; rocs = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/rocs-19.12.1.tar.xz"; - sha256 = "cc9ff080b05bd6c48ee438c968917d8eb6f6eccb45ca70b45c5e53dce396bb45"; - name = "rocs-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/rocs-19.12.3.tar.xz"; + sha256 = "f834e69e676913e364162906b79da5a75a6043f4a5c8506954d1630abda45e3c"; + name = "rocs-19.12.3.tar.xz"; }; }; signon-kwallet-extension = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/signon-kwallet-extension-19.12.1.tar.xz"; - sha256 = "a98397cc15733b9c1010f022a8d6bcf7727c4065ba6ae662273ba97864836bbe"; - name = "signon-kwallet-extension-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/signon-kwallet-extension-19.12.3.tar.xz"; + sha256 = "46199be023bad630b769b14c2c0a63feff2949da944c76780b1ebd9a50ee3daa"; + name = "signon-kwallet-extension-19.12.3.tar.xz"; }; }; spectacle = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/spectacle-19.12.1.tar.xz"; - sha256 = "140f388c531043eeefff8d639eb468d1ed33397925021c6809c0c8a799bb25c9"; - name = "spectacle-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/spectacle-19.12.3.tar.xz"; + sha256 = "443f114dab1fb50e7e12a046fdf06c0456bf99a3abdf09dce05605fdf7d3de81"; + name = "spectacle-19.12.3.tar.xz"; }; }; step = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/step-19.12.1.tar.xz"; - sha256 = "f171c58b567bb29ed50109b341e53dc00116e814c90f51aa7a6e405326982907"; - name = "step-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/step-19.12.3.tar.xz"; + sha256 = "0eb62c87553769e009daa02406b1d95742c946bdffe0d22327776ec558e7584b"; + name = "step-19.12.3.tar.xz"; }; }; svgpart = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/svgpart-19.12.1.tar.xz"; - sha256 = "6083457999121ead13b6c267211a78ea04c925d6f9f7447b31677c0b49f6898b"; - name = "svgpart-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/svgpart-19.12.3.tar.xz"; + sha256 = "942d877a516d8407ef2782d7c6869ab688274fee6cde9b23ab1061bcbddf2cc9"; + name = "svgpart-19.12.3.tar.xz"; }; }; sweeper = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/sweeper-19.12.1.tar.xz"; - sha256 = "50b1464c08b738f4af4c78b4edc291ce93877a52831b810cd12c8ca6a4df0cf9"; - name = "sweeper-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/sweeper-19.12.3.tar.xz"; + sha256 = "cf89cfba61c9eeda9b4e7921c21a23e7d9a110b134ab6fbd127c37d036bd0517"; + name = "sweeper-19.12.3.tar.xz"; }; }; umbrello = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/umbrello-19.12.1.tar.xz"; - sha256 = "077a1b5a3dfe15d37f03ee97ca5b40a1b8e7e0f2305df2f16a966861cc79e0d6"; - name = "umbrello-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/umbrello-19.12.3.tar.xz"; + sha256 = "b2f769c7bd1cc259170b62c68d2dca05b4a143dd1048dbb507cf2bbb3020a193"; + name = "umbrello-19.12.3.tar.xz"; }; }; yakuake = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/yakuake-19.12.1.tar.xz"; - sha256 = "abff4f358f41f544b2e12c340a74d92482241b1b95906b14add7810384602e42"; - name = "yakuake-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/yakuake-19.12.3.tar.xz"; + sha256 = "0e4f16eaf155750b0c35f1f8f1a625909f386f3359b9f23bf4e7c2f9045384e3"; + name = "yakuake-19.12.3.tar.xz"; }; }; zeroconf-ioslave = { - version = "19.12.1"; + version = "19.12.3"; src = fetchurl { - url = "${mirror}/stable/release-service/19.12.1/src/zeroconf-ioslave-19.12.1.tar.xz"; - sha256 = "39641a186de9d0704a58063a8a37cfb3a405ff6bd9957c7d09efec3bec4dfc60"; - name = "zeroconf-ioslave-19.12.1.tar.xz"; + url = "${mirror}/stable/release-service/19.12.3/src/zeroconf-ioslave-19.12.3.tar.xz"; + sha256 = "c9b2146030a9845b8164f5784d1c6fcc198b6cfe0e23f6a91edf78d093e4368f"; + name = "zeroconf-ioslave-19.12.3.tar.xz"; }; }; } diff --git a/pkgs/applications/kde/yakuake.nix b/pkgs/applications/kde/yakuake.nix index 6f9c8df3001..cb7f7070b24 100644 --- a/pkgs/applications/kde/yakuake.nix +++ b/pkgs/applications/kde/yakuake.nix @@ -24,7 +24,7 @@ mkDerivation { ]; meta = { - homepage = https://yakuake.kde.org; + homepage = "https://yakuake.kde.org"; description = "Quad-style terminal emulator for KDE"; maintainers = with lib.maintainers; [ fridh ]; license = lib.licenses.gpl2; diff --git a/pkgs/applications/misc/1password/default.nix b/pkgs/applications/misc/1password/default.nix index 1c409c232a8..010e9ae7a50 100644 --- a/pkgs/applications/misc/1password/default.nix +++ b/pkgs/applications/misc/1password/default.nix @@ -1,42 +1,45 @@ -{ stdenv, fetchzip }: +{ stdenv, fetchzip, autoPatchelfHook, fetchurl, xar, cpio }: stdenv.mkDerivation rec { pname = "1password"; - version = "0.7.0"; + version = "0.10.0"; src = if stdenv.hostPlatform.system == "i686-linux" then fetchzip { url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_386_v${version}.zip"; - sha256 = "1lhp0ws543855rvpvh84rjvyi471259lg618cciqj8j6k04ls1g0"; + sha256 = "07j11ikd0rzsj4d8rv74rfy497svq6l2q94ndf3b0a0mr8riyazj"; stripRoot = false; } else if stdenv.hostPlatform.system == "x86_64-linux" then fetchzip { url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_amd64_v${version}.zip"; - sha256 = "1sjv5qrc80fk9yz0cn2yj0cdm47ab3ch8n9hzj9hv9d64gjv4w8n"; + sha256 = "177cl4x7rj3d74kzrpmiwps5n31axmlhqdwrdpkmay2gk9inswbs"; stripRoot = false; } else if stdenv.hostPlatform.system == "x86_64-darwin" then - fetchzip { - url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_darwin_amd64_v${version}.zip"; - sha256 = "1hnixmq7mrc6ky79k3s61vv89v4qhkm31kyni3rscibfrab0r8ir"; - stripRoot = false; + fetchurl { + url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_darwin_amd64_v${version}.pkg"; + sha256 = "13yxmnh77g6zvl2gqf77m5i3v5706p2plgbgsn5hqrrf3g8ql63b"; } else throw "Architecture not supported"; + buildInputs = stdenv.lib.optionals stdenv.isDarwin [ xar cpio ]; + + unpackPhase = stdenv.lib.optionalString stdenv.isDarwin '' + xar -xf $src + zcat Payload | cpio -i + ''; + installPhase = '' install -D op $out/bin/op ''; - postFixup = stdenv.lib.optionalString stdenv.isLinux '' - patchelf \ - --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ - $out/bin/op - ''; + + nativeBuildInputs = stdenv.lib.optionals stdenv.isLinux [ autoPatchelfHook ]; meta = with stdenv.lib; { description = "1Password command-line tool"; - homepage = https://support.1password.com/command-line/; - downloadPage = https://app-updates.agilebits.com/product_history/CLI; + homepage = "https://support.1password.com/command-line/"; + downloadPage = "https://app-updates.agilebits.com/product_history/CLI"; maintainers = with maintainers; [ joelburget marsam ]; license = licenses.unfree; platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ]; diff --git a/pkgs/applications/misc/abook/default.nix b/pkgs/applications/misc/abook/default.nix index f87bd4c11ec..4c03b197b4a 100644 --- a/pkgs/applications/misc/abook/default.nix +++ b/pkgs/applications/misc/abook/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { buildInputs = [ ncurses readline ]; meta = { - homepage = http://abook.sourceforge.net/; + homepage = "http://abook.sourceforge.net/"; description = "Text-based addressbook program designed to use with mutt mail client"; license = stdenv.lib.licenses.gpl2; maintainers = [ stdenv.lib.maintainers.edwtjo ]; diff --git a/pkgs/applications/misc/adobe-reader/default.nix b/pkgs/applications/misc/adobe-reader/default.nix index d1e4856e052..b67e514ce54 100644 --- a/pkgs/applications/misc/adobe-reader/default.nix +++ b/pkgs/applications/misc/adobe-reader/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation { meta = { description = "Adobe Reader, a viewer for PDF documents"; - homepage = http://www.adobe.com/products/reader; + homepage = "http://www.adobe.com/products/reader"; license = stdenv.lib.licenses.unfree; }; } diff --git a/pkgs/applications/misc/airtame/default.nix b/pkgs/applications/misc/airtame/default.nix index 465c72d73f5..043f1c86bd1 100644 --- a/pkgs/applications/misc/airtame/default.nix +++ b/pkgs/applications/misc/airtame/default.nix @@ -70,7 +70,7 @@ in stdenv.mkDerivation rec { dontPatchELF = true; meta = with stdenv.lib; { - homepage = https://airtame.com/download; + homepage = "https://airtame.com/download"; description = "Wireless streaming client for Airtame devices"; license = licenses.unfree; maintainers = with maintainers; [ thanegill ]; diff --git a/pkgs/applications/misc/alacritty/default.nix b/pkgs/applications/misc/alacritty/default.nix index 78e7249a087..19f0790fea3 100644 --- a/pkgs/applications/misc/alacritty/default.nix +++ b/pkgs/applications/misc/alacritty/default.nix @@ -1,40 +1,38 @@ -{ stdenv, - lib, - fetchFromGitHub, - rustPlatform, +{ stdenv +, lib +, fetchFromGitHub +, rustPlatform - cmake, - gzip, - installShellFiles, - makeWrapper, - ncurses, - pkgconfig, - python3, +, cmake +, gzip +, installShellFiles +, makeWrapper +, ncurses +, pkgconfig +, python3 - expat, - fontconfig, - freetype, - libGL, - libX11, - libXcursor, - libXi, - libXrandr, - libXxf86vm, - libxcb, - libxkbcommon, - wayland, - xdg_utils, +, expat +, fontconfig +, freetype +, libGL +, libX11 +, libXcursor +, libXi +, libXrandr +, libXxf86vm +, libxcb +, libxkbcommon +, wayland +, xdg_utils # Darwin Frameworks - AppKit, - CoreGraphics, - CoreServices, - CoreText, - Foundation, - OpenGL }: - -with rustPlatform; - +, AppKit +, CoreGraphics +, CoreServices +, CoreText +, Foundation +, OpenGL +}: let rpathLibs = [ expat @@ -51,18 +49,19 @@ let libxkbcommon wayland ]; -in buildRustPackage rec { +in +rustPlatform.buildRustPackage rec { pname = "alacritty"; - version = "0.4.1"; + version = "0.4.2"; src = fetchFromGitHub { - owner = "jwilm"; + owner = "alacritty"; repo = pname; rev = "v${version}"; - sha256 = "05jcg33ifngpzw2hdhgb614j87ihhhlqgar0kky183rywg0dxikg"; + sha256 = "133d8vm7ihlvgw8n1jghhh35h664h0f52h6gci54f11vl6c1spws"; }; - cargoSha256 = "182j8ah67b2gw409vjfml3p41i00zh0klx9m8bwfkm64y2ki2bip"; + cargoSha256 = "07gq63qd11zz229b8jp9wqggz39qfpzd223z1zk1xch7rhqq0pn4"; nativeBuildInputs = [ cmake @@ -75,9 +74,17 @@ in buildRustPackage rec { ]; buildInputs = rpathLibs - ++ lib.optionals stdenv.isDarwin [ AppKit CoreGraphics CoreServices CoreText Foundation OpenGL ]; + ++ lib.optionals stdenv.isDarwin [ + AppKit + CoreGraphics + CoreServices + CoreText + Foundation + OpenGL + ]; outputs = [ "out" "terminfo" ]; + postPatch = '' substituteInPlace alacritty/src/config/mouse.rs \ --replace xdg-open ${xdg_utils}/bin/xdg-open @@ -88,16 +95,24 @@ in buildRustPackage rec { installPhase = '' runHook preInstall - install -D target/release/alacritty $out/bin/alacritty + install -D $releaseDir/alacritty $out/bin/alacritty - '' + (if stdenv.isDarwin then '' - mkdir $out/Applications - cp -r target/release/osx/Alacritty.app $out/Applications/Alacritty.app - '' else '' - install -D extra/linux/alacritty.desktop -t $out/share/applications/ - install -D extra/logo/alacritty-term.svg $out/share/icons/hicolor/scalable/apps/Alacritty.svg - patchelf --set-rpath "${stdenv.lib.makeLibraryPath rpathLibs}" $out/bin/alacritty - '') + '' + '' + ( + if stdenv.isDarwin then '' + mkdir $out/Applications + cp -r target/release/osx/Alacritty.app $out/Applications/Alacritty.app + '' else '' + install -D extra/linux/Alacritty.desktop -t $out/share/applications/ + install -D extra/logo/alacritty-term.svg $out/share/icons/hicolor/scalable/apps/Alacritty.svg + + # patchelf generates an ELF that binutils' "strip" doesn't like: + # strip: not enough room for program headers, try linking with -N + # As a workaround, strip manually before running patchelf. + strip -S $out/bin/alacritty + + patchelf --set-rpath "${lib.makeLibraryPath rpathLibs}" $out/bin/alacritty + '' + ) + '' installShellCompletion --zsh extra/completions/_alacritty installShellCompletion --bash extra/completions/alacritty.bash @@ -116,11 +131,11 @@ in buildRustPackage rec { dontPatchELF = true; - meta = with stdenv.lib; { - description = "GPU-accelerated terminal emulator"; - homepage = "https://github.com/jwilm/alacritty"; + meta = with lib; { + description = "A cross-platform, GPU-accelerated terminal emulator"; + homepage = "https://github.com/alacritty/alacritty"; license = licenses.asl20; - maintainers = with maintainers; [ filalex77 mic92 ]; + maintainers = with maintainers; [ filalex77 mic92 cole-h ]; platforms = platforms.unix; }; } diff --git a/pkgs/applications/misc/albert/default.nix b/pkgs/applications/misc/albert/default.nix index 6fc5f951465..5c43d717913 100644 --- a/pkgs/applications/misc/albert/default.nix +++ b/pkgs/applications/misc/albert/default.nix @@ -38,7 +38,7 @@ mkDerivation rec { ''; meta = with lib; { - homepage = https://albertlauncher.github.io/; + homepage = "https://albertlauncher.github.io/"; description = "Desktop agnostic launcher"; license = licenses.gpl3Plus; maintainers = with maintainers; [ ericsagnes synthetica ]; diff --git a/pkgs/applications/misc/almanah/default.nix b/pkgs/applications/misc/almanah/default.nix index 06321d9d621..f554d36a0c6 100644 --- a/pkgs/applications/misc/almanah/default.nix +++ b/pkgs/applications/misc/almanah/default.nix @@ -64,9 +64,9 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Small GTK application to allow to keep a diary of your life"; - homepage = https://wiki.gnome.org/Apps/Almanah_Diary; + homepage = "https://wiki.gnome.org/Apps/Almanah_Diary"; license = licenses.gpl3Plus; platforms = platforms.unix; - maintainers = gnome3.maintainers; + maintainers = teams.gnome.members; }; } diff --git a/pkgs/applications/misc/aminal/default.nix b/pkgs/applications/misc/aminal/default.nix index 8c5aded5ed9..dff6b15494b 100644 --- a/pkgs/applications/misc/aminal/default.nix +++ b/pkgs/applications/misc/aminal/default.nix @@ -61,7 +61,7 @@ buildGoPackage rec { - Built-in patched fonts for powerline - Retina display support ''; - homepage = https://github.com/liamg/aminal; + homepage = "https://github.com/liamg/aminal"; license = licenses.gpl3; maintainers = with maintainers; [ kalbasit ]; platforms = platforms.linux ++ platforms.darwin; diff --git a/pkgs/applications/misc/antfs-cli/default.nix b/pkgs/applications/misc/antfs-cli/default.nix index 8108b9e4ddb..49da252b6c0 100644 --- a/pkgs/applications/misc/antfs-cli/default.nix +++ b/pkgs/applications/misc/antfs-cli/default.nix @@ -5,7 +5,7 @@ python3Packages.buildPythonApplication { version = "unstable-2017-02-11"; meta = with stdenv.lib; { - homepage = https://github.com/Tigge/antfs-cli; + homepage = "https://github.com/Tigge/antfs-cli"; description = "Extracts FIT files from ANT-FS based sport watches"; license = licenses.mit; platforms = platforms.linux; diff --git a/pkgs/applications/misc/appeditor/default.nix b/pkgs/applications/misc/appeditor/default.nix index cda75ac4c05..d5d37ae27c9 100644 --- a/pkgs/applications/misc/appeditor/default.nix +++ b/pkgs/applications/misc/appeditor/default.nix @@ -58,7 +58,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Edit the Pantheon desktop application menu"; - homepage = https://github.com/donadigo/appeditor; + homepage = "https://github.com/donadigo/appeditor"; maintainers = with maintainers; [ kjuvi ] ++ pantheon.maintainers; platforms = platforms.linux; license = licenses.gpl3; diff --git a/pkgs/applications/misc/apvlv/default.nix b/pkgs/applications/misc/apvlv/default.nix index b5af1af91f3..48efafa74fc 100644 --- a/pkgs/applications/misc/apvlv/default.nix +++ b/pkgs/applications/misc/apvlv/default.nix @@ -59,7 +59,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = http://naihe2010.github.io/apvlv/; + homepage = "http://naihe2010.github.io/apvlv/"; description = "PDF viewer with Vim-like behaviour"; longDescription = '' apvlv is a PDF/DJVU/UMD/TXT Viewer Under Linux/WIN32 diff --git a/pkgs/applications/misc/artha/default.nix b/pkgs/applications/misc/artha/default.nix index b03d2aa208b..648a2cfd994 100644 --- a/pkgs/applications/misc/artha/default.nix +++ b/pkgs/applications/misc/artha/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "An offline thesaurus based on WordNet"; - homepage = http://artha.sourceforge.net; + homepage = "http://artha.sourceforge.net"; license = licenses.gpl2; maintainers = [ maintainers.goibhniu ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/asciiquarium/default.nix b/pkgs/applications/misc/asciiquarium/default.nix index 0e524ede091..592c0938ffb 100644 --- a/pkgs/applications/misc/asciiquarium/default.nix +++ b/pkgs/applications/misc/asciiquarium/default.nix @@ -22,7 +22,7 @@ in stdenv.mkDerivation { meta = with stdenv.lib; { description = "Enjoy the mysteries of the sea from the safety of your own terminal!"; - homepage = https://robobunny.com/projects/asciiquarium/html/; + homepage = "https://robobunny.com/projects/asciiquarium/html/"; license = licenses.gpl2; platforms = platforms.unix; maintainers = [ maintainers.utdemir ]; diff --git a/pkgs/applications/misc/audio/sox/default.nix b/pkgs/applications/misc/audio/sox/default.nix index 622e7169fae..32ea821b22d 100644 --- a/pkgs/applications/misc/audio/sox/default.nix +++ b/pkgs/applications/misc/audio/sox/default.nix @@ -42,7 +42,7 @@ stdenv.mkDerivation rec { meta = { description = "Sample Rate Converter for audio"; - homepage = http://sox.sourceforge.net/; + 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; diff --git a/pkgs/applications/misc/audio/soxr/default.nix b/pkgs/applications/misc/audio/soxr/default.nix index 20a754ba98a..59c7154fa7d 100644 --- a/pkgs/applications/misc/audio/soxr/default.nix +++ b/pkgs/applications/misc/audio/soxr/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { meta = { description = "An audio resampling library"; - homepage = http://soxr.sourceforge.net; + homepage = "http://soxr.sourceforge.net"; license = stdenv.lib.licenses.lgpl21Plus; platforms = stdenv.lib.platforms.unix; }; diff --git a/pkgs/applications/misc/audio/wavesurfer/default.nix b/pkgs/applications/misc/audio/wavesurfer/default.nix index 0add5ed78cc..0ca01c8d2ae 100644 --- a/pkgs/applications/misc/audio/wavesurfer/default.nix +++ b/pkgs/applications/misc/audio/wavesurfer/default.nix @@ -4,7 +4,7 @@ stdenv.mkDerivation { name = "wavesurfer-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-1.8.5.tar.gz"; sha256 = "1yx9s1j47cq0v40cwq2gn7bdizpw46l95ba4zl9z4gg31mfvm807"; }; @@ -22,7 +22,7 @@ stdenv.mkDerivation { meta = { description = "Tool for recording, playing, editing, viewing and labeling of audio"; - homepage = http://www.speech.kth.se/wavesurfer/; + homepage = "http://www.speech.kth.se/wavesurfer/"; license = "BSD"; }; } diff --git a/pkgs/applications/misc/audio/wavrsocvt/default.nix b/pkgs/applications/misc/audio/wavrsocvt/default.nix index 09b75e27d46..ebb04a30ab8 100644 --- a/pkgs/applications/misc/audio/wavrsocvt/default.nix +++ b/pkgs/applications/misc/audio/wavrsocvt/default.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation { supported sample rates in the standard NXT firmware). You can then upload these with e.g. nxt-python. ''; - homepage = http://bricxcc.sourceforge.net/; + homepage = "http://bricxcc.sourceforge.net/"; license = licenses.mpl11; maintainers = with maintainers; [ leenaars ]; platforms = with platforms; linux; diff --git a/pkgs/applications/misc/ausweisapp2/default.nix b/pkgs/applications/misc/ausweisapp2/default.nix new file mode 100644 index 00000000000..953e12a033d --- /dev/null +++ b/pkgs/applications/misc/ausweisapp2/default.nix @@ -0,0 +1,27 @@ +{ stdenv, mkDerivation, fetchFromGitHub, cmake, pkgconfig, pcsclite, qtsvg, qttools, qtwebsockets +, qtquickcontrols2, qtgraphicaleffects }: + +mkDerivation rec { + pname = "AusweisApp2"; + version = "1.20.0"; + + src = fetchFromGitHub { + owner = "Governikus"; + repo = "AusweisApp2"; + rev = "${version}"; + sha256 = "0qkwdaxhig4qjim7h20j6ln6w76ycppfc786nd8l69bd1qv46m40"; + }; + + nativeBuildInputs = [ cmake pkgconfig ]; + + buildInputs = [ qtsvg qttools qtwebsockets qtquickcontrols2 qtgraphicaleffects pcsclite ]; + + meta = with stdenv.lib; { + description = "Authentication software for the German ID card"; + downloadPage = "https://github.com/Governikus/AusweisApp2/releases"; + homepage = "https://www.ausweisapp.bund.de/ausweisapp2/"; + license = licenses.eupl12; + maintainers = with maintainers; [ b4dm4n ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/misc/autospotting/default.nix b/pkgs/applications/misc/autospotting/default.nix index b00686fb24f..a33261e7a59 100644 --- a/pkgs/applications/misc/autospotting/default.nix +++ b/pkgs/applications/misc/autospotting/default.nix @@ -20,7 +20,7 @@ buildGoPackage { ''; meta = with stdenv.lib; { - homepage = https://github.com/AutoSpotting/AutoSpotting; + homepage = "https://github.com/AutoSpotting/AutoSpotting"; description = "Automatically convert your existing AutoScaling groups to up to 90% cheaper spot instances with minimal configuration changes"; license = licenses.free; maintainers = [ maintainers.costrouc ]; diff --git a/pkgs/applications/misc/avrdudess/default.nix b/pkgs/applications/misc/avrdudess/default.nix index 165bee76b69..f4a56e4f924 100644 --- a/pkgs/applications/misc/avrdudess/default.nix +++ b/pkgs/applications/misc/avrdudess/default.nix @@ -34,7 +34,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "GUI for AVRDUDE (AVR microcontroller programmer)"; - homepage = https://github.com/zkemble/AVRDUDESS; + homepage = "https://github.com/zkemble/AVRDUDESS"; license = licenses.gpl3; platforms = platforms.linux; maintainers = [ maintainers.bjornfor ]; diff --git a/pkgs/applications/misc/barrier/default.nix b/pkgs/applications/misc/barrier/default.nix index 10e46176c6e..28b65d2b58b 100644 --- a/pkgs/applications/misc/barrier/default.nix +++ b/pkgs/applications/misc/barrier/default.nix @@ -32,8 +32,8 @@ mkDerivation rec { Synergy was a commercialized reimplementation of the original CosmoSynergy written by Chris Schoeneman. ''; - homepage = https://github.com/debauchee/barrier; - downloadPage = https://github.com/debauchee/barrier/releases; + homepage = "https://github.com/debauchee/barrier"; + downloadPage = "https://github.com/debauchee/barrier/releases"; license = stdenv.lib.licenses.gpl2; maintainers = [ stdenv.lib.maintainers.phryneas ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/misc/bashSnippets/default.nix b/pkgs/applications/misc/bashSnippets/default.nix index 0976e7625bc..4a023849f39 100644 --- a/pkgs/applications/misc/bashSnippets/default.nix +++ b/pkgs/applications/misc/bashSnippets/default.nix @@ -41,7 +41,7 @@ stdenv.mkDerivation { meta = with lib; { description = "A collection of small bash scripts for heavy terminal users"; - homepage = https://github.com/alexanderepstein/Bash-Snippets; + homepage = "https://github.com/alexanderepstein/Bash-Snippets"; license = licenses.mit; maintainers = with maintainers; [ infinisil ]; platforms = platforms.unix; diff --git a/pkgs/applications/misc/bb/default.nix b/pkgs/applications/misc/bb/default.nix index 06df1df9f76..fd7eb4990f0 100644 --- a/pkgs/applications/misc/bb/default.nix +++ b/pkgs/applications/misc/bb/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { ''; meta = with lib; { - homepage = http://aa-project.sourceforge.net/bb; + homepage = "http://aa-project.sourceforge.net/bb"; description = "AA-lib demo"; license = licenses.gpl2; maintainers = [ maintainers.rnhmjoj ]; diff --git a/pkgs/applications/misc/bibletime/default.nix b/pkgs/applications/misc/bibletime/default.nix index d0af940ac92..cfac79bef4b 100644 --- a/pkgs/applications/misc/bibletime/default.nix +++ b/pkgs/applications/misc/bibletime/default.nix @@ -1,8 +1,8 @@ -{ stdenv, fetchurl, cmake, pkgconfig, sword, boost, clucene_core +{ mkDerivation, stdenv, fetchurl, cmake, pkgconfig, sword, boost, clucene_core , qtbase, qttools, qtsvg, qtwebkit }: -stdenv.mkDerivation rec { +mkDerivation rec { version = "2.11.2"; @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { meta = { description = "A Qt4 Bible study tool"; - homepage = http://www.bibletime.info/; + homepage = "http://www.bibletime.info/"; platforms = stdenv.lib.platforms.linux; license = stdenv.lib.licenses.gpl2; maintainers = [ stdenv.lib.maintainers.piotr ]; diff --git a/pkgs/applications/misc/bicon/default.nix b/pkgs/applications/misc/bicon/default.nix index 22eb3e3d859..41b0d3c13a8 100644 --- a/pkgs/applications/misc/bicon/default.nix +++ b/pkgs/applications/misc/bicon/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A bidirectional console"; - homepage = https://github.com/behdad/bicon; + homepage = "https://github.com/behdad/bicon"; license = [ licenses.lgpl21 licenses.psfl licenses.bsd0 ]; maintainers = [ maintainers.linarcx ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/birdtray/default.nix b/pkgs/applications/misc/birdtray/default.nix index 39ecaa995d1..5385cf67884 100644 --- a/pkgs/applications/misc/birdtray/default.nix +++ b/pkgs/applications/misc/birdtray/default.nix @@ -7,32 +7,27 @@ , qtbase , qttools , qtx11extras - , sqlite }: mkDerivation rec { pname = "birdtray"; - version = "1.7.0"; + version = "1.8.1"; src = fetchFromGitHub { owner = "gyunaev"; repo = pname; - rev = "RELEASE_${version}"; - sha256 = "0wj2lq5bz1p0cf6yj43v3ifxschcrh5amwx30wqw2m4bb8syzjw1"; + rev = version; + sha256 = "15l8drdmamq1dpqpj0h9ajj2r5vcs23cx421drvhfgs6bqlzd1hl"; }; nativeBuildInputs = [ cmake pkgconfig ]; buildInputs = [ - qtbase qtx11extras sqlite + qtbase qttools qtx11extras ]; - installPhase = '' - install -Dm755 birdtray $out/bin/birdtray - ''; - meta = with lib; { description = "Mail system tray notification icon for Thunderbird"; - homepage = https://github.com/gyunaev/birdtray; + homepage = "https://github.com/gyunaev/birdtray"; license = licenses.gpl3Plus; maintainers = with maintainers; [ Flakebi ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/bleachbit/default.nix b/pkgs/applications/misc/bleachbit/default.nix index 4b2e1c66761..0111f8519e7 100644 --- a/pkgs/applications/misc/bleachbit/default.nix +++ b/pkgs/applications/misc/bleachbit/default.nix @@ -54,7 +54,7 @@ pythonPackages.buildPythonApplication rec { strictDeps = false; meta = with stdenv.lib; { - homepage = http://bleachbit.sourceforge.net; + homepage = "http://bleachbit.sourceforge.net"; description = "A program to clean your computer"; longDescription = "BleachBit helps you easily clean your computer to free space and maintain privacy."; license = licenses.gpl3; diff --git a/pkgs/applications/misc/blender/default.nix b/pkgs/applications/misc/blender/default.nix index 338a5249aeb..e27aca4fc3d 100644 --- a/pkgs/applications/misc/blender/default.nix +++ b/pkgs/applications/misc/blender/default.nix @@ -1,7 +1,7 @@ { config, stdenv, lib, fetchurl, boost, cmake, ffmpeg, gettext, glew , ilmbase, libXi, libX11, libXext, libXrender , libjpeg, libpng, libsamplerate, libsndfile -, libtiff, libGLU, libGL, openal, opencolorio, openexr, openimageio2, openjpeg, python3Packages +, libtiff, libGLU, libGL, openal, opencolorio, openexr, openimagedenoise, openimageio2, openjpeg, python3Packages , openvdb, libXxf86vm, tbb, alembic , zlib, fftw, opensubdiv, freetype, jemalloc, ocl-icd, addOpenGLRunpath , jackaudioSupport ? false, libjack2 @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { buildInputs = [ boost ffmpeg gettext glew ilmbase freetype libjpeg libpng libsamplerate libsndfile libtiff - opencolorio openexr openimageio2 openjpeg python zlib fftw jemalloc + opencolorio openexr openimagedenoise openimageio2 openjpeg python zlib fftw jemalloc alembic (opensubdiv.override { inherit cudaSupport; }) tbb diff --git a/pkgs/applications/misc/blugon/default.nix b/pkgs/applications/misc/blugon/default.nix index cdb317749ef..896daa27f7c 100644 --- a/pkgs/applications/misc/blugon/default.nix +++ b/pkgs/applications/misc/blugon/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "blugon"; - version = "1.12.0"; + version = "1.12.1"; src = fetchFromGitHub { owner = "jumper149"; repo = pname; rev = version; - sha256 = "0vdhq8v011awhpkccbcmigj9c46widyzh0m5knafapanai3kv7ii"; + sha256 = "1i67v8jxvavgax3dwvns200iwwdcvgki04liq0x64q52lg0vrh7m"; }; buildInputs = [ python3 libX11 libXrandr ]; diff --git a/pkgs/applications/misc/buku/default.nix b/pkgs/applications/misc/buku/default.nix index 98f6e2895d1..f4018cff5f4 100644 --- a/pkgs/applications/misc/buku/default.nix +++ b/pkgs/applications/misc/buku/default.nix @@ -1,14 +1,14 @@ { stdenv, python3, fetchFromGitHub }: with python3.pkgs; buildPythonApplication rec { - version = "4.2.2"; + version = "4.3"; pname = "buku"; src = fetchFromGitHub { owner = "jarun"; repo = "buku"; rev = "v${version}"; - sha256 = "1wy5i1av1s98yr56ybiq66kv0vg48zci3fp91zfgj04nh2966w1w"; + sha256 = "1cq508ymak3g5fhi1n4bdiiqkc86s2l3k4dvzw842vv2x0441cac"; }; checkInputs = [ @@ -31,6 +31,7 @@ with python3.pkgs; buildPythonApplication rec { flask-api flask-bootstrap flask-paginate + flask-reverse-proxy-fix flask_wtf arrow werkzeug @@ -70,7 +71,7 @@ with python3.pkgs; buildPythonApplication rec { meta = with stdenv.lib; { description = "Private cmdline bookmark manager"; - homepage = https://github.com/jarun/Buku; + homepage = "https://github.com/jarun/Buku"; license = licenses.gpl3; platforms = platforms.linux; maintainers = with maintainers; [ matthiasbeyer infinisil ]; diff --git a/pkgs/applications/misc/calcurse/default.nix b/pkgs/applications/misc/calcurse/default.nix index 8f8934cb084..ce3a2c0a271 100644 --- a/pkgs/applications/misc/calcurse/default.nix +++ b/pkgs/applications/misc/calcurse/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "calcurse"; - version = "4.5.1"; + version = "4.6.0"; src = fetchurl { url = "https://calcurse.org/files/${pname}-${version}.tar.gz"; - sha256 = "0cgkd285x5pk62lmdx9fjxl46c5lj8wj2cqbxq7d99yb4il5fdjk"; + sha256 = "0hzhdpkkn75jlymanwzl69hrrf1pw29hrchr11wlxqjpl43h62gs"; }; buildInputs = [ ncurses gettext python3 python3Packages.wrapPython ]; @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { customized to suit user needs and a very powerful set of command line options can be used to filter and format appointments, making it suitable for use in scripts. ''; - homepage = http://calcurse.org/; + homepage = "http://calcurse.org/"; license = licenses.bsd2; platforms = platforms.linux; }; diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix index e29a8ebfd19..afd602f6088 100644 --- a/pkgs/applications/misc/calibre/default.nix +++ b/pkgs/applications/misc/calibre/default.nix @@ -122,7 +122,16 @@ mkDerivation rec { export PODOFO_INC_DIR=${podofo.dev}/include/podofo export PODOFO_LIB_DIR=${podofo.lib}/lib export SIP_BIN=${pypkgs.sip}/bin/sip - ${pypkgs.python.interpreter} setup.py install --prefix=$out + export XDG_DATA_HOME=$out/share + export XDG_UTILS_INSTALL_MODE="user" + + ${pypkgs.python.interpreter} setup.py install --root=$out \ + --prefix=$out \ + --libdir=$out/lib \ + --staging-root=$out \ + --staging-libdir=$out/lib \ + --staging-sharedir=$out/share + PYFILES="$out/bin/* $out/lib/calibre/calibre/web/feeds/*.py $out/lib/calibre/calibre/ebooks/metadata/*.py @@ -131,13 +140,6 @@ mkDerivation rec { sed -i "s/env python[0-9.]*/python/" $PYFILES sed -i "2i import sys; sys.argv[0] = 'calibre'" $out/bin/calibre - # Replace @out@ by the output path. - mkdir -p $out/share/applications/ - cp {$calibreDesktopItem,$ebookEditDesktopItem,$ebookViewerDesktopItem}/share/applications/* $out/share/applications/ - for entry in $out/share/applications/*.desktop; do - substituteAllInPlace $entry - done - mkdir -p $out/share cp -a man-pages $out/share/man @@ -165,76 +167,6 @@ mkDerivation rec { disallowedReferences = [ podofo.dev ]; - calibreDesktopItem = makeDesktopItem { - name = "calibre-gui"; - desktopName = "calibre"; - exec = "@out@/bin/calibre --detach %F"; - genericName = "E-book library management"; - icon = "@out@/share/calibre/images/library.png"; - comment = "Manage, convert, edit, and read e-books"; - mimeType = lib.concatStringsSep ";" [ - "application/x-mobipocket-subscription" - "application/vnd.openxmlformats-officedocument.wordprocessingml.document" - "text/html" - "application/x-cbc" - "application/ereader" - "application/oebps-package+xml" - "image/vnd.djvu" - "application/x-sony-bbeb" - "application/vnd.ms-word.document.macroenabled.12" - "text/rtf" - "text/x-markdown" - "application/pdf" - "application/x-cbz" - "application/x-mobipocket-ebook" - "application/x-cbr" - "application/x-mobi8-ebook" - "text/fb2+xml" - "application/vnd.oasis.opendocument.text" - "application/epub+zip" - "text/plain" - "application/xhtml+xml" - ]; - categories = "Office"; - extraEntries = '' - Actions=Edit;Viewer; - - [Desktop Action Edit] - Name=Edit E-book - Icon=@out@/share/calibre/images/tweak.png - Exec=@out@/bin/ebook-edit --detach %F - - [Desktop Action Viewer] - Name=E-book Viewer - Icon=@out@/share/calibre/images/viewer.png - Exec=@out@/bin/ebook-viewer --detach %F - ''; - }; - - ebookEditDesktopItem = makeDesktopItem { - name = "calibre-edit-book"; - desktopName = "Edit E-book"; - genericName = "E-book Editor"; - comment = "Edit e-books"; - icon = "@out@/share/calibre/images/tweak.png"; - exec = "@out@/bin/ebook-edit --detach %F"; - categories = "Office;Publishing"; - mimeType = "application/epub+zip"; - extraEntries = "NoDisplay=true"; - }; - - ebookViewerDesktopItem = makeDesktopItem { - name = "calibre-ebook-viewer"; - desktopName = "E-book Viewer"; - genericName = "E-book Viewer"; - comment = "Read e-books in all the major formats"; - icon = "@out@/share/calibre/images/viewer.png"; - exec = "@out@/bin/ebook-viewer --detach %F"; - categories = "Office;Viewer"; - mimeType = "application/epub+zip"; - extraEntries = "NoDisplay=true"; - }; - meta = with lib; { description = "Comprehensive e-book software"; homepage = "https://calibre-ebook.com"; diff --git a/pkgs/applications/misc/candle/default.nix b/pkgs/applications/misc/candle/default.nix index 77cabc409c7..842ef2262d9 100644 --- a/pkgs/applications/misc/candle/default.nix +++ b/pkgs/applications/misc/candle/default.nix @@ -1,6 +1,6 @@ -{ stdenv, fetchFromGitHub, qtbase, qtserialport, qmake }: +{ mkDerivation, stdenv, fetchFromGitHub, qtbase, qtserialport, qmake }: -stdenv.mkDerivation rec { +mkDerivation rec { pname = "candle"; version = "1.1"; @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "GRBL controller application with G-Code visualizer written in Qt"; - homepage = https://github.com/Denvi/Candle; + homepage = "https://github.com/Denvi/Candle"; license = licenses.gpl3; maintainers = with maintainers; [ matti-kariluoma ]; }; diff --git a/pkgs/applications/misc/cardpeek/default.nix b/pkgs/applications/misc/cardpeek/default.nix index 40dbfea9801..83340f78dd4 100644 --- a/pkgs/applications/misc/cardpeek/default.nix +++ b/pkgs/applications/misc/cardpeek/default.nix @@ -20,7 +20,7 @@ in enableParallelBuilding = true; meta = with stdenv.lib; { - homepage = https://github.com/L1L1/cardpeek; + 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; diff --git a/pkgs/applications/misc/catclock/default.nix b/pkgs/applications/misc/catclock/default.nix index 09c36f9eb2f..6b4ab1f3a8b 100644 --- a/pkgs/applications/misc/catclock/default.nix +++ b/pkgs/applications/misc/catclock/default.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation { buildInputs = [ xlibsWrapper motif ]; meta = with stdenv.lib; { - homepage = http://codefromabove.com/2014/05/catclock/; + homepage = "http://codefromabove.com/2014/05/catclock/"; license = with licenses; mit; maintainers = with maintainers; [ ramkromberg ]; platforms = with platforms; linux ++ darwin; diff --git a/pkgs/applications/misc/cbatticon/default.nix b/pkgs/applications/misc/cbatticon/default.nix index ac2948c2d6e..e7664244db7 100644 --- a/pkgs/applications/misc/cbatticon/default.nix +++ b/pkgs/applications/misc/cbatticon/default.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Lightweight and fast battery icon that sits in the system tray"; - homepage = https://github.com/valr/cbatticon; + homepage = "https://github.com/valr/cbatticon"; license = licenses.gpl2; platforms = platforms.linux; maintainers = [ maintainers.domenkozar ]; diff --git a/pkgs/applications/misc/cgminer/default.nix b/pkgs/applications/misc/cgminer/default.nix index c05c7423d9a..09236565d59 100644 --- a/pkgs/applications/misc/cgminer/default.nix +++ b/pkgs/applications/misc/cgminer/default.nix @@ -36,7 +36,7 @@ stdenv.mkDerivation { monitoring, (over)clocking and fanspeed support for bitcoin and derivative coins. Do not use on multiple block chains at the same time! ''; - homepage = https://github.com/ckolivas/cgminer; + homepage = "https://github.com/ckolivas/cgminer"; license = licenses.gpl3; maintainers = [ maintainers.offline ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/misc/cheat/default.nix b/pkgs/applications/misc/cheat/default.nix index d4d0643bfdc..b4765c0aae3 100644 --- a/pkgs/applications/misc/cheat/default.nix +++ b/pkgs/applications/misc/cheat/default.nix @@ -1,24 +1,31 @@ -{ stdenv, fetchFromGitHub, buildGoModule }: +{ stdenv, fetchFromGitHub +, buildGoModule, installShellFiles }: buildGoModule rec { pname = "cheat"; - version = "3.0.7"; + version = "3.9.0"; src = fetchFromGitHub { - owner = "chrisallenlane"; + owner = "cheat"; repo = "cheat"; rev = version; - sha256 = "0i5j85ciimk14kndb81qxny1ksr57sr9xdvjn7x1ibc7h6pikjn5"; + sha256 = "0jbqflkcfdrinx1lk45klm8ml0n4cgp43nzls1376cd3hfayby1y"; }; subPackages = [ "cmd/cheat" ]; - modSha256 = "1v9hvxygwvqma2j5yz7r95g34xpwb0n29hm39i89vgmvl3hy67s0"; + nativeBuildInputs = [ installShellFiles ]; + + postInstall = '' + installShellCompletion scripts/cheat.{bash,fish,zsh} + ''; + + modSha256 = "1is19qca5wgzya332rmpk862nnivxzgxchkllv629f5fwwdvdgmg"; meta = with stdenv.lib; { description = "Create and view interactive cheatsheets on the command-line"; maintainers = with maintainers; [ mic92 ]; license = with licenses; [ gpl3 mit ]; - homepage = "https://github.com/chrisallenlane/cheat"; + inherit (src.meta) homepage; }; } diff --git a/pkgs/applications/misc/cherrytree/default.nix b/pkgs/applications/misc/cherrytree/default.nix index eec2b9dd24a..7c00add7797 100644 --- a/pkgs/applications/misc/cherrytree/default.nix +++ b/pkgs/applications/misc/cherrytree/default.nix @@ -1,12 +1,15 @@ -{ lib, fetchurl, pythonPackages, gettext }: +{ lib, fetchFromGitHub, pythonPackages, gettext }: pythonPackages.buildPythonApplication rec { pname = "cherrytree"; - version = "0.39.0"; + version = "0.39.2"; + + src = fetchFromGitHub { + owner = "giuspen"; + repo = "cherrytree"; + rev = version; + sha256 = "1l6wh24bhp4yhmsfmc0r4n2n10nlilkv4cmv5sfl80i250fiw7xa"; - src = fetchurl { - url = "https://www.giuspen.com/software/${pname}-${version}.tar.xz"; - sha256 = "07ibr891qix7xa2sk6fdxdsji8q56c1wf786mxaz77500m0xfx4m"; }; nativeBuildInputs = [ gettext ]; @@ -20,17 +23,16 @@ pythonPackages.buildPythonApplication rec { meta = with lib; { description = "An hierarchical note taking application"; longDescription = '' - Cherrytree is an hierarchical note taking application, - featuring rich text, syntax highlighting and powerful search - capabilities. It organizes all information in units called - "nodes", as in a tree, and can be very useful to store any piece - of information, from tables and links to pictures and even entire - documents. All those little bits of information you have scattered - around your hard drive can be conveniently placed into a - Cherrytree document where you can easily find it. + Cherrytree is an hierarchical note taking application, featuring rich + text, syntax highlighting and powerful search capabilities. It organizes + all information in units called "nodes", as in a tree, and can be very + useful to store any piece of information, from tables and links to + pictures and even entire documents. All those little bits of information + you have scattered around your hard drive can be conveniently placed into + a Cherrytree document where you can easily find it. ''; homepage = "http://www.giuspen.com/cherrytree"; license = licenses.gpl3; - maintainers = with maintainers; [ AndersonTorres ]; + maintainers = with maintainers; [ ]; }; } diff --git a/pkgs/applications/misc/cli-visualizer/default.nix b/pkgs/applications/misc/cli-visualizer/default.nix index 4986661e2f6..112341dcd4f 100644 --- a/pkgs/applications/misc/cli-visualizer/default.nix +++ b/pkgs/applications/misc/cli-visualizer/default.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = https://github.com/dpayne/cli-visualizer; + homepage = "https://github.com/dpayne/cli-visualizer"; description = "CLI based audio visualizer"; license = stdenv.lib.licenses.mit; maintainers = [ stdenv.lib.maintainers.matthiasbeyer ]; diff --git a/pkgs/applications/misc/clight/clightd.nix b/pkgs/applications/misc/clight/clightd.nix index f9c08d1f00a..bfa6f2ea855 100644 --- a/pkgs/applications/misc/clight/clightd.nix +++ b/pkgs/applications/misc/clight/clightd.nix @@ -65,7 +65,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Linux bus interface that changes screen brightness/temperature"; - homepage = https://github.com/FedeDP/Clightd; + homepage = "https://github.com/FedeDP/Clightd"; platforms = platforms.linux; license = licenses.gpl3; maintainers = with maintainers; [ diff --git a/pkgs/applications/misc/clight/default.nix b/pkgs/applications/misc/clight/default.nix index a2e45256269..ed8767419d4 100644 --- a/pkgs/applications/misc/clight/default.nix +++ b/pkgs/applications/misc/clight/default.nix @@ -48,7 +48,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "A C daemon that turns your webcam into a light sensor"; - homepage = https://github.com/FedeDP/Clight; + homepage = "https://github.com/FedeDP/Clight"; platforms = platforms.linux; license = licenses.gpl3; maintainers = with maintainers; [ diff --git a/pkgs/applications/misc/clipit/default.nix b/pkgs/applications/misc/clipit/default.nix index 129516a4498..02207fb9580 100644 --- a/pkgs/applications/misc/clipit/default.nix +++ b/pkgs/applications/misc/clipit/default.nix @@ -1,21 +1,35 @@ -{ fetchurl, stdenv, intltool, pkgconfig, gtk2, xdotool }: +{ fetchFromGitHub, fetchpatch, stdenv +, autoreconfHook, intltool, pkgconfig +, gtk3, xdotool, which, wrapGAppsHook }: stdenv.mkDerivation rec { pname = "clipit"; - version = "1.4.2"; + version = "1.4.5"; - src = fetchurl { - url = "https://github.com/downloads/shantzu/ClipIt/${pname}-${version}.tar.gz"; - sha256 = "0jrwn8qfgb15rwspdp1p8hb1nc0ngmpvgr87d4k3lhlvqg2cfqva"; + src = fetchFromGitHub { + owner = "CristianHenzel"; + repo = "ClipIt"; + rev = "45e2ea386d04dbfc411ea370299502450d589d0c"; + sha256 = "0byqz9hanwmdc7i55xszdby2iqrk93lws7hmjda2kv17g34apwl7"; }; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ intltool gtk2 xdotool ]; + preConfigure = '' + intltoolize --copy --force --automake + ''; + + nativeBuildInputs = [ pkgconfig wrapGAppsHook autoreconfHook intltool ]; + configureFlags = [ "--with-gtk3" ]; + buildInputs = [ gtk3 ]; + + gappsWrapperArgs = [ + "--prefix" "PATH" ":" "${stdenv.lib.makeBinPath [ xdotool which ]}" + ]; meta = with stdenv.lib; { description = "Lightweight GTK Clipboard Manager"; - homepage = "http://clipit.rspwn.com"; + inherit (src.meta) homepage; license = licenses.gpl3; platforms = platforms.linux; + maintainers = with maintainers; [ kamilchm ]; }; } diff --git a/pkgs/applications/misc/clipmenu/default.nix b/pkgs/applications/misc/clipmenu/default.nix index 7577c0a3db9..4bc56f0c452 100644 --- a/pkgs/applications/misc/clipmenu/default.nix +++ b/pkgs/applications/misc/clipmenu/default.nix @@ -4,13 +4,13 @@ let in stdenv.mkDerivation rec { pname = "clipmenu"; - version = "5.6.0"; + version = "6.0.1"; src = fetchFromGitHub { owner = "cdown"; repo = "clipmenu"; rev = version; - sha256 = "13hyarzazh6j33d808h3s5yk320wqzivc0ni9xm8kalvn4k3a0bq"; + sha256 = "0053j4i14lz5m2bzc5sch5id5ilr1bl196mp8fp0q8x74w3vavs9"; }; buildInputs = [ makeWrapper ]; diff --git a/pkgs/applications/misc/cmatrix/default.nix b/pkgs/applications/misc/cmatrix/default.nix index 9f86ec94f18..fa0e10f9eef 100644 --- a/pkgs/applications/misc/cmatrix/default.nix +++ b/pkgs/applications/misc/cmatrix/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { CMatrix simulates the display from "The Matrix" and is based on the screensaver from the movie's website. ''; - homepage = https://github.com/abishekvashok/cmatrix; + homepage = "https://github.com/abishekvashok/cmatrix"; platforms = ncurses.meta.platforms; maintainers = [ maintainers.AndersonTorres ]; }; diff --git a/pkgs/applications/misc/colort/default.nix b/pkgs/applications/misc/colort/default.nix index 554c7d8c78b..1eda11890e7 100644 --- a/pkgs/applications/misc/colort/default.nix +++ b/pkgs/applications/misc/colort/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "A program for 'tinting' color values"; - homepage = https://github.com/neeasade/colort; + homepage = "https://github.com/neeasade/colort"; license = licenses.mit; platforms = platforms.all; maintainers = [ maintainers.neeasade ]; diff --git a/pkgs/applications/misc/confclerk/default.nix b/pkgs/applications/misc/confclerk/default.nix index b07e0fb8c52..bb1aacc2069 100644 --- a/pkgs/applications/misc/confclerk/default.nix +++ b/pkgs/applications/misc/confclerk/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation { meta = { description = "Offline conference schedule viewer"; - homepage = http://www.toastfreeware.priv.at/confclerk; + homepage = "http://www.toastfreeware.priv.at/confclerk"; license = stdenv.lib.licenses.gpl2; maintainers = with stdenv.lib.maintainers; [ ehmry ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/misc/cool-retro-term/default.nix b/pkgs/applications/misc/cool-retro-term/default.nix index c9dcc97d5cd..739ad07adbf 100644 --- a/pkgs/applications/misc/cool-retro-term/default.nix +++ b/pkgs/applications/misc/cool-retro-term/default.nix @@ -38,7 +38,7 @@ mkDerivation rec { feel of the old cathode tube screens. It has been designed to be eye-candy, customizable, and reasonably lightweight. ''; - homepage = https://github.com/Swordfish90/cool-retro-term; + homepage = "https://github.com/Swordfish90/cool-retro-term"; license = stdenv.lib.licenses.gpl3Plus; platforms = with stdenv.lib.platforms; linux ++ darwin; maintainers = with stdenv.lib.maintainers; [ skeidel ]; diff --git a/pkgs/applications/misc/copyq/default.nix b/pkgs/applications/misc/copyq/default.nix index 16be8e06b68..081acb3acb6 100644 --- a/pkgs/applications/misc/copyq/default.nix +++ b/pkgs/applications/misc/copyq/default.nix @@ -21,7 +21,7 @@ mkDerivation rec { ] ++ lib.optional webkitSupport qtwebkit; meta = with lib; { - homepage = https://hluk.github.io/CopyQ; + homepage = "https://hluk.github.io/CopyQ"; description = "Clipboard Manager with Advanced Features"; license = licenses.gpl3; maintainers = [ maintainers.willtim ]; diff --git a/pkgs/applications/misc/coursera-dl/default.nix b/pkgs/applications/misc/coursera-dl/default.nix index c09457d2c65..bbb7c53b61f 100644 --- a/pkgs/applications/misc/coursera-dl/default.nix +++ b/pkgs/applications/misc/coursera-dl/default.nix @@ -38,7 +38,7 @@ in pythonPackages.buildPythonApplication rec { meta = with stdenv.lib; { description = "CLI for downloading Coursera.org videos and naming them"; - homepage = https://github.com/coursera-dl/coursera-dl; + homepage = "https://github.com/coursera-dl/coursera-dl"; license = licenses.lgpl3Plus; maintainers = with maintainers; [ alexfmpe ]; platforms = platforms.darwin ++ platforms.linux; diff --git a/pkgs/applications/misc/cpp-ethereum/default.nix b/pkgs/applications/misc/cpp-ethereum/default.nix index dae25f6b817..aed44d1213c 100644 --- a/pkgs/applications/misc/cpp-ethereum/default.nix +++ b/pkgs/applications/misc/cpp-ethereum/default.nix @@ -76,7 +76,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Ethereum C++ client"; - homepage = https://github.com/ethereum/cpp-ethereum; + homepage = "https://github.com/ethereum/cpp-ethereum"; license = licenses.gpl3; maintainers = with maintainers; [ artuuge ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/crumbs/default.nix b/pkgs/applications/misc/crumbs/default.nix index 2d612c16fef..889c17e6988 100644 --- a/pkgs/applications/misc/crumbs/default.nix +++ b/pkgs/applications/misc/crumbs/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Bookmarks for the command line"; - homepage = https://github.com/fasseg/crumbs; + homepage = "https://github.com/fasseg/crumbs"; license = licenses.wtfpl; platforms = platforms.all; maintainers = with maintainers; [ thesola10 ]; diff --git a/pkgs/applications/misc/ctodo/default.nix b/pkgs/applications/misc/ctodo/default.nix index 72918a40733..602fe430816 100644 --- a/pkgs/applications/misc/ctodo/default.nix +++ b/pkgs/applications/misc/ctodo/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = http://ctodo.apakoh.dk/; + homepage = "http://ctodo.apakoh.dk/"; description = "A simple ncurses-based task list manager"; license = stdenv.lib.licenses.mit; maintainers = [ stdenv.lib.maintainers.matthiasbeyer ]; diff --git a/pkgs/applications/misc/cura/default.nix b/pkgs/applications/misc/cura/default.nix index 7187b8c0099..4c4fe9b1abd 100644 --- a/pkgs/applications/misc/cura/default.nix +++ b/pkgs/applications/misc/cura/default.nix @@ -2,20 +2,20 @@ mkDerivation rec { pname = "cura"; - version = "4.4.0"; + version = "4.5.0"; src = fetchFromGitHub { owner = "Ultimaker"; repo = "Cura"; - rev = "v${version}"; - sha256 = "131n36qhdfky584wr3zv73ckjjprwaqb5fih8yln2syf8b7ziwlz"; + rev = version; + sha256 = "0fm04s912sgmr66wyb55ly4jh39ijsj6lx4fx9wn7hchlqmw5jxi"; }; materials = fetchFromGitHub { owner = "Ultimaker"; repo = "fdm_materials"; rev = version; - sha256 = "141cv1f2pv2pznhgj32zg8bw3kmw9002g6rx16jq7lhclr0x3xls"; + sha256 = "0fgkwz1anw49macq1jxjhjr79slhmx7g3zwij7g9fqyzzhrrmwqn"; }; buildInputs = [ qtbase qtquickcontrols2 qtgraphicaleffects ]; @@ -55,7 +55,7 @@ mkDerivation rec { meta = with lib; { description = "3D printer / slicing GUI built on top of the Uranium framework"; - homepage = https://github.com/Ultimaker/Cura; + homepage = "https://github.com/Ultimaker/Cura"; license = licenses.lgpl3Plus; platforms = platforms.linux; maintainers = with maintainers; [ abbradar gebner ]; diff --git a/pkgs/applications/misc/cura/lulzbot/curaengine-openmp-compat.patch b/pkgs/applications/misc/cura/lulzbot/curaengine-openmp-compat.patch new file mode 100644 index 00000000000..3826e92440f --- /dev/null +++ b/pkgs/applications/misc/cura/lulzbot/curaengine-openmp-compat.patch @@ -0,0 +1,47 @@ +# Notes by Charles Duffy -- +# +# - The new version of OpenMP does not allow outside variables to be referenced +# *at all* without an explicit declaration of how they're supposed to be +# handled. Thus, this was an outright build failure beforehand. The new +# pragmas copy the initial value from the outer scope into each parallel +# thread. Since these variables are all constant within the loops, this is +# clearly correct. (Not sure it's *optimal*, but quite sure it isn't +# *wrong*). +# - Upstream has been contacted -- I'm a Lulzbot customer with an active +# support contract and sent them the patch. That said, they're in the middle +# of some major corporate churn (sold themselves out of near-bankruptcy to an +# out-of-state business entity formed as a holding company; moved to that +# state; have been slowly restaffing after), so a response may take a while. +# - The patch is purely my own work. + +--- curaengine/src/support.cpp.orig 2020-03-28 10:38:01.953912363 -0500 ++++ curaengine/src/support.cpp 2020-03-28 10:45:28.999791908 -0500 +@@ -854,7 +854,7 @@ + const double tan_angle = tan(angle) - 0.01; // the XY-component of the supportAngle + xy_disallowed_per_layer[0] = storage.getLayerOutlines(0, false).offset(xy_distance); + // for all other layers (of non support meshes) compute the overhang area and possibly use that when calculating the support disallowed area +- #pragma omp parallel for default(none) shared(xy_disallowed_per_layer, storage, mesh) schedule(dynamic) ++ #pragma omp parallel for default(none) firstprivate(layer_count, is_support_mesh_place_holder, use_xy_distance_overhang, z_distance_top, tan_angle, xy_distance, xy_distance_overhang) shared(xy_disallowed_per_layer, storage, mesh) schedule(dynamic) + for (unsigned int layer_idx = 1; layer_idx < layer_count; layer_idx++) + { + Polygons outlines = storage.getLayerOutlines(layer_idx, false); +@@ -1054,7 +1054,7 @@ + const int max_checking_layer_idx = std::min(static_cast(storage.support.supportLayers.size()) + , static_cast(layer_count - (layer_z_distance_top - 1))); + const size_t max_checking_idx_size_t = std::max(0, max_checking_layer_idx); +-#pragma omp parallel for default(none) shared(support_areas, storage) schedule(dynamic) ++#pragma omp parallel for default(none) firstprivate(max_checking_idx_size_t, layer_z_distance_top) shared(support_areas, storage) schedule(dynamic) + for (size_t layer_idx = 0; layer_idx < max_checking_idx_size_t; layer_idx++) + { + support_areas[layer_idx] = support_areas[layer_idx].difference(storage.getLayerOutlines(layer_idx + layer_z_distance_top - 1, false)); +--- curaengine/src/layerPart.cpp.orig 2020-03-28 10:36:40.381023651 -0500 ++++ curaengine/src/layerPart.cpp 2020-03-28 10:39:54.584140465 -0500 +@@ -49,7 +49,7 @@ + { + const auto total_layers = slicer->layers.size(); + assert(mesh.layers.size() == total_layers); +-#pragma omp parallel for default(none) shared(mesh, slicer) schedule(dynamic) ++#pragma omp parallel for default(none) firstprivate(total_layers) shared(mesh, slicer) schedule(dynamic) + for (unsigned int layer_nr = 0; layer_nr < total_layers; layer_nr++) + { + SliceLayer& layer_storage = mesh.layers[layer_nr]; diff --git a/pkgs/applications/misc/cura/lulzbot/curaengine.nix b/pkgs/applications/misc/cura/lulzbot/curaengine.nix index aad9b9bee89..a5cfa937fd8 100644 --- a/pkgs/applications/misc/cura/lulzbot/curaengine.nix +++ b/pkgs/applications/misc/cura/lulzbot/curaengine.nix @@ -1,26 +1,27 @@ -{ stdenv, callPackage, fetchgit, fetchpatch, cmake, libarcusLulzbot, stb, protobuf }: +{ gcc8Stdenv, callPackage, fetchgit, fetchpatch, cmake, libarcusLulzbot, stb, protobuf }: -stdenv.mkDerivation rec { +gcc8Stdenv.mkDerivation rec { pname = "curaengine-lulzBot"; version = "3.6.21"; src = fetchgit { - url = https://code.alephobjects.com/source/curaengine-lulzbot.git; + url = "https://code.alephobjects.com/source/curaengine-lulzbot.git"; rev = "ec6a1a0f0aa387ef97e5c106633cf8d7fb9cd00d"; sha256 = "0wdkvg1hmqp1gaym804lw09x4ngf5ffasd861jhflpy7djbmkfn8"; }; + patches = [ ./curaengine-openmp-compat.patch ]; + nativeBuildInputs = [ cmake ]; buildInputs = [ libarcusLulzbot stb protobuf ]; cmakeFlags = [ "-DCURA_ENGINE_VERSION=${version}" ]; - meta = with stdenv.lib; { + meta = with gcc8Stdenv.lib; { description = "A powerful, fast and robust engine for processing 3D models into 3D printing instruction"; - homepage = https://code.alephobjects.com/source/curaengine-lulzbot/; + homepage = "https://code.alephobjects.com/source/curaengine-lulzbot/"; license = licenses.agpl3; platforms = platforms.linux; maintainers = with maintainers; [ chaduffy ]; }; } - diff --git a/pkgs/applications/misc/cura/lulzbot/default.nix b/pkgs/applications/misc/cura/lulzbot/default.nix index c67fcb74047..229966561c6 100644 --- a/pkgs/applications/misc/cura/lulzbot/default.nix +++ b/pkgs/applications/misc/cura/lulzbot/default.nix @@ -4,7 +4,7 @@ let # admittedly, we're using (printer firmware) blobs when we could compile them ourselves. curaBinaryDataVersion = "3.6.21"; # Marlin v2.0.0.174 for Bio, v2.0.0.144 for others. curaBinaryData = fetchgit { - url = https://code.alephobjects.com/diffusion/CBD/cura-binary-data.git; + url = "https://code.alephobjects.com/diffusion/CBD/cura-binary-data.git"; rev = "5c75d0f6c10d8b7a903e2072a48cd1f08059509e"; sha256 = "1qdsj6rczwzdwzyr7nz7fnypbphckjrnwl8c9dr6izsxyzs465c4"; }; @@ -30,7 +30,7 @@ mkDerivation rec { version = "3.6.21"; src = fetchgit { - url = https://code.alephobjects.com/source/cura-lulzbot.git; + url = "https://code.alephobjects.com/source/cura-lulzbot.git"; rev = "7faeb18604c83004846a02c60cb240708db0034f"; sha256 = "10q38s8c8x6xkh1vns4p3iqa5y267vrjh5vq8h55mg1q5001scyq"; }; @@ -74,7 +74,7 @@ mkDerivation rec { meta = with lib; { description = "3D printer / slicing GUI built on top of the Uranium framework"; - homepage = https://code.alephobjects.com/diffusion/CURA/; + homepage = "https://code.alephobjects.com/diffusion/CURA/"; license = licenses.agpl3; # a partial relicense to LGPL has happened, but not certain that all AGPL bits are expunged platforms = platforms.linux; maintainers = with maintainers; [ chaduffy ]; diff --git a/pkgs/applications/misc/cura/lulzbot/libarcus.nix b/pkgs/applications/misc/cura/lulzbot/libarcus.nix index 733aa27da85..5edaabbacb0 100644 --- a/pkgs/applications/misc/cura/lulzbot/libarcus.nix +++ b/pkgs/applications/misc/cura/lulzbot/libarcus.nix @@ -6,7 +6,7 @@ buildPythonPackage { format = "other"; src = fetchgit { - url = https://code.alephobjects.com/source/arcus.git; + url = "https://code.alephobjects.com/source/arcus.git"; rev = "aeda02d7727f45b657afb72cef203283fbf09325"; sha256 = "1ak0d4k745sx7paic27was3s4987z9h3czscjs21hxbi6qy83g99"; }; @@ -24,7 +24,7 @@ buildPythonPackage { meta = with stdenv.lib; { description = "Communication library between internal components for Ultimaker software"; - homepage = https://code.alephobjects.com/source/arcus/; + homepage = "https://code.alephobjects.com/source/arcus/"; license = licenses.lgpl3Plus; platforms = platforms.linux; maintainers = with maintainers; [ chaduffy ]; diff --git a/pkgs/applications/misc/cura/lulzbot/libsavitar.nix b/pkgs/applications/misc/cura/lulzbot/libsavitar.nix index e6c277959e0..e32117a103e 100644 --- a/pkgs/applications/misc/cura/lulzbot/libsavitar.nix +++ b/pkgs/applications/misc/cura/lulzbot/libsavitar.nix @@ -7,7 +7,7 @@ buildPythonPackage { format = "other"; src = fetchgit { - url = https://code.alephobjects.com/source/savitar.git; + url = "https://code.alephobjects.com/source/savitar.git"; rev = "ee8ada42c55f54727ce4d275c294ba426d3d8234"; sha256 = "1wm5ii3cmni8dk3c65kw4wglpypkdsfpgd480d3hc1r5bqpq0d6j"; }; @@ -25,7 +25,7 @@ buildPythonPackage { meta = with stdenv.lib; { description = "C++ implementation of 3mf loading with SIP python bindings"; - homepage = https://github.com/Ultimaker/libSavitar; + homepage = "https://github.com/Ultimaker/libSavitar"; license = licenses.lgpl3Plus; platforms = platforms.unix; maintainers = with maintainers; [ chaduffy ]; diff --git a/pkgs/applications/misc/cura/lulzbot/uranium.nix b/pkgs/applications/misc/cura/lulzbot/uranium.nix index acffc741d57..2ce0fab170e 100644 --- a/pkgs/applications/misc/cura/lulzbot/uranium.nix +++ b/pkgs/applications/misc/cura/lulzbot/uranium.nix @@ -8,7 +8,7 @@ buildPythonPackage { format = "other"; src = fetchgit { - url = https://code.alephobjects.com/diffusion/U/uranium.git; + url = "https://code.alephobjects.com/diffusion/U/uranium.git"; rev = "54d911edd2551c5875c554928896122835a0dd6c"; sha256 = "04bym3vwikaxw8ab0mymv9sc9n8i7yw5kfsv99ic811g9lzz3j1i"; }; @@ -29,7 +29,7 @@ buildPythonPackage { meta = with stdenv.lib; { description = "A Python framework for building Desktop applications"; - homepage = https://code.alephobjects.com/diffusion/U/; + homepage = "https://code.alephobjects.com/diffusion/U/"; license = licenses.lgpl3Plus; platforms = platforms.linux; maintainers = with maintainers; [ chaduffy ]; diff --git a/pkgs/applications/misc/cura/stable.nix b/pkgs/applications/misc/cura/stable.nix index 1972042f805..1191be09f76 100644 --- a/pkgs/applications/misc/cura/stable.nix +++ b/pkgs/applications/misc/cura/stable.nix @@ -66,7 +66,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "3D printing host software"; - homepage = https://github.com/daid/Cura; + homepage = "https://github.com/daid/Cura"; license = licenses.agpl3; platforms = platforms.linux; maintainers = with stdenv.lib.maintainers; [ the-kenny ]; diff --git a/pkgs/applications/misc/curabydagoma/default.nix b/pkgs/applications/misc/curabydagoma/default.nix index a367efaaef3..821b88f9b20 100644 --- a/pkgs/applications/misc/curabydagoma/default.nix +++ b/pkgs/applications/misc/curabydagoma/default.nix @@ -68,7 +68,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Slicer for 3D printers built by Dagoma"; - homepage = https://dagoma.fr/cura-by-dagoma.html; + homepage = "https://dagoma.fr/cura-by-dagoma.html"; license = licenses.agpl3; platforms = [ "x86_64-linux" ]; maintainers = with maintainers; [ tiramiseb ]; diff --git a/pkgs/applications/misc/curaengine/default.nix b/pkgs/applications/misc/curaengine/default.nix index 6594deb84a5..2eb256935d7 100644 --- a/pkgs/applications/misc/curaengine/default.nix +++ b/pkgs/applications/misc/curaengine/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "curaengine"; - version = "4.4.0"; + version = "4.5.0"; src = fetchFromGitHub { owner = "Ultimaker"; repo = "CuraEngine"; rev = version; - sha256 = "1m89bp4g0dldh7vv1clj110m29ajiaghdq7b49mb3y8ifgrf8rdi"; + sha256 = "1gml8f6yqmghgncl1zggs7h2hdh05wf68jw9npg0gh7n9l7yzkk4"; }; nativeBuildInputs = [ cmake ]; @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A powerful, fast and robust engine for processing 3D models into 3D printing instruction"; - homepage = https://github.com/Ultimaker/CuraEngine; + homepage = "https://github.com/Ultimaker/CuraEngine"; license = licenses.agpl3; platforms = platforms.linux; maintainers = with maintainers; [ abbradar gebner ]; diff --git a/pkgs/applications/misc/curaengine/stable.nix b/pkgs/applications/misc/curaengine/stable.nix index 41f110e9ee1..d353fff87ef 100644 --- a/pkgs/applications/misc/curaengine/stable.nix +++ b/pkgs/applications/misc/curaengine/stable.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Engine for processing 3D models into 3D printing instructions"; - homepage = https://github.com/Ultimaker/CuraEngine; + homepage = "https://github.com/Ultimaker/CuraEngine"; license = licenses.agpl3; platforms = platforms.linux; maintainers = with stdenv.lib.maintainers; [ the-kenny ]; diff --git a/pkgs/applications/misc/dbeaver/default.nix b/pkgs/applications/misc/dbeaver/default.nix index 9ff70af73dd..163cb5ed54e 100644 --- a/pkgs/applications/misc/dbeaver/default.nix +++ b/pkgs/applications/misc/dbeaver/default.nix @@ -7,7 +7,7 @@ stdenv.mkDerivation rec { pname = "dbeaver-ce"; - version = "7.0.0"; + version = "7.0.3"; desktopItem = makeDesktopItem { name = "dbeaver"; @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "https://dbeaver.io/files/${version}/dbeaver-ce-${version}-linux.gtk.x86_64.tar.gz"; - sha256 = "1fnvwndzny51z0zmdnlafdcxawsyz435g712mc4bjjj29qy0inzm"; + sha256 = "189rsavmaa7480r61qhpzagia3c8jr3dfcl01ks3nfyq53j08hml"; }; installPhase = '' @@ -55,7 +55,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = https://dbeaver.io/; + homepage = "https://dbeaver.io/"; description = "Universal SQL Client for developers, DBA and analysts. Supports MySQL, PostgreSQL, MariaDB, SQLite, and more"; longDescription = '' Free multi-platform database tool for developers, SQL programmers, database diff --git a/pkgs/applications/misc/dbvisualizer/default.nix b/pkgs/applications/misc/dbvisualizer/default.nix index fbeb965df38..7612c00393f 100644 --- a/pkgs/applications/misc/dbvisualizer/default.nix +++ b/pkgs/applications/misc/dbvisualizer/default.nix @@ -4,7 +4,7 @@ stdenv.mkDerivation { name = "dbvisualizer-9.5.7"; src = fetchurl { - url = https://www.dbvis.com/product_download/dbvis-9.5.7/media/dbvis_unix_9_5_7.tar.gz; + url = "https://www.dbvis.com/product_download/dbvis-9.5.7/media/dbvis_unix_9_5_7.tar.gz"; sha256 = "1xv4fw7cji2ffvv7z8vjl5lap512pj60s2ynihirrqld7pmklnyr"; }; @@ -19,7 +19,7 @@ stdenv.mkDerivation { meta = { description = "The universal database tool"; - homepage = https://www.dbvis.com/; + homepage = "https://www.dbvis.com/"; license = stdenv.lib.licenses.unfree; }; } diff --git a/pkgs/applications/misc/ddgr/default.nix b/pkgs/applications/misc/ddgr/default.nix index 7d211b26a42..82730842bac 100644 --- a/pkgs/applications/misc/ddgr/default.nix +++ b/pkgs/applications/misc/ddgr/default.nix @@ -1,40 +1,33 @@ -{stdenv, fetchFromGitHub, python3}: +{ stdenv, fetchFromGitHub, python3, installShellFiles }: stdenv.mkDerivation rec { - version = "1.7"; + version = "1.8.1"; pname = "ddgr"; src = fetchFromGitHub { owner = "jarun"; repo = "ddgr"; rev = "v${version}"; - sha256 = "0kcl8z9w8iwn3pxay1pfahhw6vs2l1dp60yfv3i19in4ac9va7m0"; + sha256 = "0668wzh1gqin0xscy3fly9hz370n2ny175f3kya9bsld0x0jkd5p"; }; + nativeBuildInputs = [ installShellFiles ]; + buildInputs = [ python3 ]; makeFlags = [ "PREFIX=$(out)" ]; - preBuild = '' - # Version 1.7 was released as 1.6 - # https://github.com/jarun/ddgr/pull/95 - sed -i "s/_VERSION_ = '1.6'/_VERSION_ = '1.7'/" ddgr - ''; - postInstall = '' - mkdir -p "$out/share/bash-completion/completions/" - cp "auto-completion/bash/ddgr-completion.bash" "$out/share/bash-completion/completions/" - mkdir -p "$out/share/fish/vendor_completions.d/" - cp "auto-completion/fish/ddgr.fish" "$out/share/fish/vendor_completions.d/" - mkdir -p "$out/share/zsh/site-functions/" - cp "auto-completion/zsh/_ddgr" "$out/share/zsh/site-functions/" + installShellCompletion --bash --name ddgr.bash auto-completion/bash/ddgr-completion.bash + installShellCompletion --fish auto-completion/fish/ddgr.fish + installShellCompletion --zsh auto-completion/zsh/_ddgr ''; meta = with stdenv.lib; { - homepage = https://github.com/jarun/ddgr; + homepage = "https://github.com/jarun/ddgr"; description = "Search DuckDuckGo from the terminal"; license = licenses.gpl3; maintainers = with maintainers; [ ceedubs markus1189 ]; - platforms = platforms.unix; + platforms = python3.meta.platforms; }; } diff --git a/pkgs/applications/misc/deco/default.nix b/pkgs/applications/misc/deco/default.nix index a1fdabd8ccb..ad8b56e830f 100644 --- a/pkgs/applications/misc/deco/default.nix +++ b/pkgs/applications/misc/deco/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = https://github.com/ebzzry/deco; + homepage = "https://github.com/ebzzry/deco"; description = "A simple root image setter"; license = licenses.mit; maintainers = [ maintainers.ebzzry ]; diff --git a/pkgs/applications/misc/devilspie2/default.nix b/pkgs/applications/misc/devilspie2/default.nix index 5699396a084..2961baee102 100644 --- a/pkgs/applications/misc/devilspie2/default.nix +++ b/pkgs/applications/misc/devilspie2/default.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { positioned at a specific screen position, or position a window on a specific workspace. ''; - homepage = http://www.gusnan.se/devilspie2/; + homepage = "https://www.gusnan.se/devilspie2/"; license = licenses.gpl3; maintainers = [ maintainers.ebzzry ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/dfilemanager/default.nix b/pkgs/applications/misc/dfilemanager/default.nix index 1bfb6bbfeaf..69c7f0dc17f 100644 --- a/pkgs/applications/misc/dfilemanager/default.nix +++ b/pkgs/applications/misc/dfilemanager/default.nix @@ -17,7 +17,7 @@ mkDerivation { cmakeFlags = [ "-DQT5BUILD=true" ]; meta = { - homepage = http://dfilemanager.sourceforge.net/; + homepage = "http://dfilemanager.sourceforge.net/"; description = "File manager written in Qt/C++"; license = stdenv.lib.licenses.gpl2; platforms = stdenv.lib.platforms.unix; diff --git a/pkgs/applications/misc/diffpdf/default.nix b/pkgs/applications/misc/diffpdf/default.nix index 957d3ee72bb..17dfd08f90b 100644 --- a/pkgs/applications/misc/diffpdf/default.nix +++ b/pkgs/applications/misc/diffpdf/default.nix @@ -11,7 +11,7 @@ mkDerivation rec { patches = [ (fetchpatch { - url = https://raw.githubusercontent.com/gentoo/gentoo/9b971631588ff46e7c2d501bc35cd0d9ce2d98e2/app-text/diffpdf/files/diffpdf-2.1.3-qt5.patch; + url = "https://raw.githubusercontent.com/gentoo/gentoo/9b971631588ff46e7c2d501bc35cd0d9ce2d98e2/app-text/diffpdf/files/diffpdf-2.1.3-qt5.patch"; sha256 = "0sax8gcqcmzf74hmdr3rarqs4nsxmml9qmh6pqyjmgl3lypxhafg"; }) ./fix_path_poppler_qt5.patch @@ -50,7 +50,7 @@ mkDerivation rec { ''; meta = { - homepage = http://www.qtrac.eu/diffpdfc.html; + homepage = "http://www.qtrac.eu/diffpdfc.html"; description = "Tool for diffing pdf files visually or textually"; license = stdenv.lib.licenses.gpl2Plus; maintainers = with stdenv.lib.maintainers; [ tstrobel ]; diff --git a/pkgs/applications/misc/digitalbitbox/default.nix b/pkgs/applications/misc/digitalbitbox/default.nix index a6ae4530655..95159d1927a 100644 --- a/pkgs/applications/misc/digitalbitbox/default.nix +++ b/pkgs/applications/misc/digitalbitbox/default.nix @@ -7,7 +7,7 @@ , libtool , qrencode , udev -, libusb +, libusb-compat-0_1 , makeWrapper , pkgconfig , qtbase @@ -70,7 +70,7 @@ in stdenv.mkDerivation rec { libevent libtool udev - libusb + libusb-compat-0_1 qrencode qtbase diff --git a/pkgs/applications/misc/ding/default.nix b/pkgs/applications/misc/ding/default.nix index e76f95b6a50..374c4cf6648 100644 --- a/pkgs/applications/misc/ding/default.nix +++ b/pkgs/applications/misc/ding/default.nix @@ -47,7 +47,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Simple and fast dictionary lookup tool"; - homepage = https://www-user.tu-chemnitz.de/~fri/ding/; + homepage = "https://www-user.tu-chemnitz.de/~fri/ding/"; license = licenses.gpl2Plus; platforms = platforms.linux; # homepage says: unix-like except darwin maintainers = [ maintainers.exi ]; diff --git a/pkgs/applications/misc/direwolf/default.nix b/pkgs/applications/misc/direwolf/default.nix index 8f7dbd2d2ed..038df41875f 100644 --- a/pkgs/applications/misc/direwolf/default.nix +++ b/pkgs/applications/misc/direwolf/default.nix @@ -36,7 +36,7 @@ stdenv.mkDerivation rec { meta = { description = "A Soundcard Packet TNC, APRS Digipeater, IGate, APRStt gateway"; - homepage = https://github.com/wb2osz/direwolf/; + homepage = "https://github.com/wb2osz/direwolf/"; license = licenses.gpl2; platforms = platforms.unix; maintainers = [ maintainers.the-kenny ]; diff --git a/pkgs/applications/misc/dmensamenu/default.nix b/pkgs/applications/misc/dmensamenu/default.nix index 1c3b4133867..cf02efdcece 100644 --- a/pkgs/applications/misc/dmensamenu/default.nix +++ b/pkgs/applications/misc/dmensamenu/default.nix @@ -26,7 +26,7 @@ buildPythonApplication rec { doCheck = false; meta = with stdenv.lib; { - homepage = https://github.com/dotlambda/dmensamenu; + homepage = "https://github.com/dotlambda/dmensamenu"; description = "Print German canteen menus using dmenu and OpenMensa"; license = licenses.mit; maintainers = with maintainers; [ dotlambda ]; diff --git a/pkgs/applications/misc/dmenu/default.nix b/pkgs/applications/misc/dmenu/default.nix index 8d13ac42e1f..e4d0c82c417 100644 --- a/pkgs/applications/misc/dmenu/default.nix +++ b/pkgs/applications/misc/dmenu/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A generic, highly customizable, and efficient menu for the X Window System"; - homepage = https://tools.suckless.org/dmenu; + homepage = "https://tools.suckless.org/dmenu"; license = licenses.mit; maintainers = with maintainers; [ pSub globin ]; platforms = platforms.all; diff --git a/pkgs/applications/misc/dmenu/wayland.nix b/pkgs/applications/misc/dmenu/wayland.nix index 7b17d484771..ca2e6f56e84 100644 --- a/pkgs/applications/misc/dmenu/wayland.nix +++ b/pkgs/applications/misc/dmenu/wayland.nix @@ -4,13 +4,13 @@ stdenv.mkDerivation rec { pname = "dmenu-wayland-unstable"; - version = "2020-02-28"; + version = "2020-04-03"; src = fetchFromGitHub { owner = "nyyManni"; repo = "dmenu-wayland"; - rev = "68e08e8bcde10a10ac3290431f173c6c7fce4238"; - sha256 = "10b1v2brgpgb6wkzn62haj56zmkf3aq6fs3p9rp6bxiw8bs2nvlm"; + rev = "550a7c39f3f925b803d51c616609c8cb6c0ea543"; + sha256 = "0az3w1csn4x6mjyacg6lf70kykdfqamic3hbr57mj83i5jjv0jlv"; }; outputs = [ "out" "man" ]; diff --git a/pkgs/applications/misc/dockbarx/default.nix b/pkgs/applications/misc/dockbarx/default.nix index 3888c4ce0a0..97510bc3b45 100644 --- a/pkgs/applications/misc/dockbarx/default.nix +++ b/pkgs/applications/misc/dockbarx/default.nix @@ -29,7 +29,7 @@ pythonPackages.buildPythonApplication rec { ++ [ keybinder ]; meta = with stdenv.lib; { - homepage = https://launchpad.net/dockbar/; + homepage = "https://launchpad.net/dockbar/"; description = "DockBarX is a lightweight taskbar / panel replacement for Linux which works as a stand-alone dock"; license = licenses.gpl3; platforms = platforms.linux; diff --git a/pkgs/applications/misc/doing/Gemfile.lock b/pkgs/applications/misc/doing/Gemfile.lock index 4d266827415..1b969869f76 100644 --- a/pkgs/applications/misc/doing/Gemfile.lock +++ b/pkgs/applications/misc/doing/Gemfile.lock @@ -22,4 +22,4 @@ DEPENDENCIES doing (= 1.0.10pre) BUNDLED WITH - 1.14.6 + 2.1.4 diff --git a/pkgs/applications/misc/doing/default.nix b/pkgs/applications/misc/doing/default.nix index d72a5b84826..48e45328f67 100644 --- a/pkgs/applications/misc/doing/default.nix +++ b/pkgs/applications/misc/doing/default.nix @@ -17,7 +17,7 @@ bundlerEnv { in a TaskPaper-formatted text file. It allows for multiple sections/categories and flexible output formatting. ''; - homepage = https://brettterpstra.com/projects/doing/; + homepage = "https://brettterpstra.com/projects/doing/"; license = licenses.mit; maintainers = with maintainers; [ ktf nicknovitski ]; platforms = platforms.unix; diff --git a/pkgs/applications/misc/doomseeker/default.nix b/pkgs/applications/misc/doomseeker/default.nix index da36e89db1f..999904a21d3 100644 --- a/pkgs/applications/misc/doomseeker/default.nix +++ b/pkgs/applications/misc/doomseeker/default.nix @@ -19,7 +19,7 @@ mkDerivation { hardeningDisable = stdenv.lib.optional stdenv.isDarwin "format"; meta = with stdenv.lib; { - homepage = http://doomseeker.drdteam.org/; + homepage = "http://doomseeker.drdteam.org/"; description = "Multiplayer server browser for many Doom source ports"; license = licenses.gpl2; platforms = platforms.unix; diff --git a/pkgs/applications/misc/dotfiles/default.nix b/pkgs/applications/misc/dotfiles/default.nix index 5150f13fb80..b515074fd47 100644 --- a/pkgs/applications/misc/dotfiles/default.nix +++ b/pkgs/applications/misc/dotfiles/default.nix @@ -17,7 +17,7 @@ pythonPackages.buildPythonApplication rec { meta = with stdenv.lib; { description = "Easily manage your dotfiles"; - homepage = https://github.com/jbernard/dotfiles; + homepage = "https://github.com/jbernard/dotfiles"; license = licenses.isc; }; } diff --git a/pkgs/applications/misc/dozenal/default.nix b/pkgs/applications/misc/dozenal/default.nix index 226bdea0301..05d3ddb7cfb 100644 --- a/pkgs/applications/misc/dozenal/default.nix +++ b/pkgs/applications/misc/dozenal/default.nix @@ -54,7 +54,7 @@ stdenv.mkDerivation rec { Roman numerals. Arbitrary ranks and symbols may be used. Defaults to dozenal Roman numerals. ''; - homepage = https://github.com/dgoodmaniii/dozenal/; + homepage = "https://github.com/dgoodmaniii/dozenal/"; maintainers = with stdenv.lib.maintainers; [ CharlesHD ]; license = stdenv.lib.licenses.gpl3; }; diff --git a/pkgs/applications/misc/eaglemode/default.nix b/pkgs/applications/misc/eaglemode/default.nix index 5d99cbaa988..052e290120d 100644 --- a/pkgs/applications/misc/eaglemode/default.nix +++ b/pkgs/applications/misc/eaglemode/default.nix @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = http://eaglemode.sourceforge.net; + homepage = "http://eaglemode.sourceforge.net"; description = "Zoomable User Interface"; license = licenses.gpl3; maintainers = with maintainers; [ ]; diff --git a/pkgs/applications/misc/electron-cash/default.nix b/pkgs/applications/misc/electron-cash/default.nix index 5b1cafaea32..1616c082c01 100644 --- a/pkgs/applications/misc/electron-cash/default.nix +++ b/pkgs/applications/misc/electron-cash/default.nix @@ -1,14 +1,14 @@ -{ lib, fetchFromGitHub, python3Packages, qtbase, wrapQtAppsHook }: +{ lib, fetchFromGitHub, python3Packages, qtbase, wrapQtAppsHook, secp256k1 }: python3Packages.buildPythonApplication rec { pname = "electron-cash"; - version = "4.0.11"; + version = "4.0.14"; src = fetchFromGitHub { owner = "Electron-Cash"; repo = "Electron-Cash"; rev = version; - sha256 = "1k4zbaj0g8bgk1l5vrb835a8bqfay2707bcb4ql2vx4igcwpb680"; + sha256 = "1dp7cj1185h6xfz6jzh0iq58zvg3wq9hl96bkgxkf5h4ygni2vm6"; }; propagatedBuildInputs = with python3Packages; [ @@ -25,6 +25,7 @@ python3Packages.buildPythonApplication rec { requests tlslite-ng qdarkstyle + stem # plugins keepkey @@ -56,8 +57,14 @@ python3Packages.buildPythonApplication rec { --replace "Exec=electron-cash" "Exec=$out/bin/electron-cash" ''; + # If secp256k1 wasn't added to the library path, the following warning is given: + # + # Electron Cash was unable to find the secp256k1 library on this system. + # Elliptic curve cryptography operations will be performed in slow + # Python-only mode. postFixup = '' - wrapQtApp $out/bin/electron-cash + wrapQtApp $out/bin/electron-cash \ + --prefix LD_LIBRARY_PATH : ${secp256k1}/lib ''; doInstallCheck = true; @@ -73,7 +80,7 @@ python3Packages.buildPythonApplication rec { and the ability to perform transactions without downloading a copy of the blockchain. ''; - homepage = https://www.electroncash.org/; + homepage = "https://www.electroncash.org/"; platforms = platforms.linux; maintainers = with maintainers; [ lassulus nyanloutre ]; license = licenses.mit; diff --git a/pkgs/applications/misc/electrum/dash.nix b/pkgs/applications/misc/electrum/dash.nix index fc5192bb5e4..33a8284744e 100644 --- a/pkgs/applications/misc/electrum/dash.nix +++ b/pkgs/applications/misc/electrum/dash.nix @@ -39,7 +39,7 @@ python2Packages.buildPythonApplication rec { meta = with stdenv.lib; { description = "Electrum DASH"; - homepage = https://github.com/dashpay/electrum-dash; + homepage = "https://github.com/dashpay/electrum-dash"; license = licenses.gpl3; maintainers = with maintainers; [ np ]; knownVulnerabilities = [ "CVE-2018-1000022" ]; diff --git a/pkgs/applications/misc/electrum/default.nix b/pkgs/applications/misc/electrum/default.nix index 924d4dc9e0b..d1011548b2a 100644 --- a/pkgs/applications/misc/electrum/default.nix +++ b/pkgs/applications/misc/electrum/default.nix @@ -143,7 +143,7 @@ python3Packages.buildPythonApplication { and the ability to perform transactions without downloading a copy of the blockchain. ''; - homepage = https://electrum.org/; + homepage = "https://electrum.org/"; license = licenses.mit; platforms = platforms.all; maintainers = with maintainers; [ ehmry joachifm np ]; diff --git a/pkgs/applications/misc/electrum/ltc.nix b/pkgs/applications/misc/electrum/ltc.nix index 88f44c6cc85..b7c655caaaf 100644 --- a/pkgs/applications/misc/electrum/ltc.nix +++ b/pkgs/applications/misc/electrum/ltc.nix @@ -48,7 +48,7 @@ python3Packages.buildPythonApplication rec { about losing your litecoins to theft or hardware failure. No waiting, no lengthy blockchain downloads and no syncing to the network. ''; - homepage = https://electrum-ltc.org/; + homepage = "https://electrum-ltc.org/"; license = licenses.mit; platforms = platforms.linux; maintainers = with maintainers; [ ]; diff --git a/pkgs/applications/misc/elogind/default.nix b/pkgs/applications/misc/elogind/default.nix index 84982b6b019..78dc54497dd 100644 --- a/pkgs/applications/misc/elogind/default.nix +++ b/pkgs/applications/misc/elogind/default.nix @@ -73,7 +73,7 @@ stdenv.mkDerivation rec { ]; meta = { - homepage = https://github.com/elogind/elogind; + homepage = "https://github.com/elogind/elogind"; description = ''The systemd project's "logind", extracted to a standalone package''; platforms = platforms.linux; # probably more license = licenses.lgpl21Plus; diff --git a/pkgs/applications/misc/emem/default.nix b/pkgs/applications/misc/emem/default.nix index 62358d41cc5..e0fcc221100 100644 --- a/pkgs/applications/misc/emem/default.nix +++ b/pkgs/applications/misc/emem/default.nix @@ -29,7 +29,7 @@ EOF ''; meta = with stdenv.lib; { - homepage = https://github.com/ebzzry/emem; + homepage = "https://github.com/ebzzry/emem"; description = "A trivial Markdown to HTML converter"; license = licenses.epl10; maintainers = [ maintainers.ebzzry ]; diff --git a/pkgs/applications/misc/epdfview/default.nix b/pkgs/applications/misc/epdfview/default.nix index de922bb3990..7cbae2271ae 100644 --- a/pkgs/applications/misc/epdfview/default.nix +++ b/pkgs/applications/misc/epdfview/default.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { ]; meta = with stdenv.lib; { - homepage = https://packages.debian.org/wheezy/epdfview; + homepage = "https://packages.debian.org/wheezy/epdfview"; description = "A lightweight PDF document viewer using Poppler and GTK"; longDescription = '' ePDFView is a free lightweight PDF document viewer using Poppler and diff --git a/pkgs/applications/misc/eterm/default.nix b/pkgs/applications/misc/eterm/default.nix index 56cac7ca918..b51acd9fa72 100644 --- a/pkgs/applications/misc/eterm/default.nix +++ b/pkgs/applications/misc/eterm/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Terminal emulator"; - homepage = http://www.eterm.org; + homepage = "http://www.eterm.org"; license = licenses.bsd2; maintainers = [ maintainers.AndersonTorres ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/etesync-dav/default.nix b/pkgs/applications/misc/etesync-dav/default.nix index 27ce4708ac3..69e2d3d5598 100644 --- a/pkgs/applications/misc/etesync-dav/default.nix +++ b/pkgs/applications/misc/etesync-dav/default.nix @@ -2,11 +2,11 @@ python3Packages.buildPythonApplication rec { pname = "etesync-dav"; - version = "0.15.0"; + version = "0.16.0"; src = python3Packages.fetchPypi { inherit pname version; - sha256 = "1rjp4lhxs6g5yw99rrdg5v98vcvagsabkqf51k1fhhsmbj47mdsm"; + sha256 = "1r0d52rlhg7dz6hziplzy7ypsfx9lgbs76j3ylinh2csplwkzv69"; }; propagatedBuildInputs = with python3Packages; [ diff --git a/pkgs/applications/misc/eureka-editor/default.nix b/pkgs/applications/misc/eureka-editor/default.nix index e9d1317390e..d72aeb629c3 100644 --- a/pkgs/applications/misc/eureka-editor/default.nix +++ b/pkgs/applications/misc/eureka-editor/default.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = http://eureka-editor.sourceforge.net; + homepage = "http://eureka-editor.sourceforge.net"; description = "A map editor for the classic DOOM games, and a few related games such as Heretic and Hexen"; license = licenses.gpl2; platforms = platforms.all; diff --git a/pkgs/applications/misc/evilvte/default.nix b/pkgs/applications/misc/evilvte/default.nix index 984ade077a8..7a5284a527a 100644 --- a/pkgs/applications/misc/evilvte/default.nix +++ b/pkgs/applications/misc/evilvte/default.nix @@ -8,7 +8,7 @@ stdenv.mkDerivation { version = "0.5.2-20140827"; src = fetchgit { - url = https://github.com/caleb-/evilvte.git; + url = "https://github.com/caleb-/evilvte.git"; rev = "8dfa41e26bc640dd8d8c7317ff7d04e3c01ded8a"; sha256 = "70f1d4234d077121e2223a735d749d1b53f0b84393507b635b8a37c3716e94d3"; }; @@ -27,7 +27,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "VTE based, highly customizable terminal emulator"; - homepage = http://www.calno.com/evilvte; + homepage = "http://www.calno.com/evilvte"; license = licenses.gpl2; maintainers = [ maintainers.bodil ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/extract_url/default.nix b/pkgs/applications/misc/extract_url/default.nix index f96d3f0f57c..9daaf7268c3 100644 --- a/pkgs/applications/misc/extract_url/default.nix +++ b/pkgs/applications/misc/extract_url/default.nix @@ -32,7 +32,7 @@ in stdenv.mkDerivation rec { ''; meta = with lib; { - homepage = https://www.memoryhole.net/~kyle/extract_url/; + homepage = "https://www.memoryhole.net/~kyle/extract_url/"; description = "Extracts URLs from MIME messages or plain text"; license = licenses.bsd2; maintainers = [ maintainers.qyliss ]; diff --git a/pkgs/applications/misc/far2l/default.nix b/pkgs/applications/misc/far2l/default.nix index 7c6573630a1..de2ed0d1596 100644 --- a/pkgs/applications/misc/far2l/default.nix +++ b/pkgs/applications/misc/far2l/default.nix @@ -74,13 +74,13 @@ stdenv.mkDerivation rec { wrapProgram $out/bin/far2l --argv0 $out/bin/far2l ''; - stripDebugList = "bin share"; + stripDebugList = [ "bin" "share" ]; enableParallelBuilding = true; meta = with stdenv.lib; { description = "An orthodox file manager"; - homepage = https://github.com/elfmz/far2l; + homepage = "https://github.com/elfmz/far2l"; license = licenses.gpl2; maintainers = [ maintainers.volth ]; platforms = platforms.all; diff --git a/pkgs/applications/misc/fbreader/default.nix b/pkgs/applications/misc/fbreader/default.nix index 857ef9ac27b..18798807743 100644 --- a/pkgs/applications/misc/fbreader/default.nix +++ b/pkgs/applications/misc/fbreader/default.nix @@ -65,7 +65,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "An e-book reader for Linux"; - homepage = http://www.fbreader.org/; + 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 diff --git a/pkgs/applications/misc/fehlstart/default.nix b/pkgs/applications/misc/fehlstart/default.nix index db78f2ec920..cae637c2c4a 100644 --- a/pkgs/applications/misc/fehlstart/default.nix +++ b/pkgs/applications/misc/fehlstart/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Small desktop application launcher with reasonable memory footprint"; - homepage = https://gitlab.com/fehlstart/fehlstart; + homepage = "https://gitlab.com/fehlstart/fehlstart"; license = licenses.gpl3; maintainers = [ maintainers.mounium ]; platforms = platforms.all; diff --git a/pkgs/applications/misc/fetchmail/default.nix b/pkgs/applications/misc/fetchmail/default.nix index 07691b26b75..9e379009027 100644 --- a/pkgs/applications/misc/fetchmail/default.nix +++ b/pkgs/applications/misc/fetchmail/default.nix @@ -1,7 +1,7 @@ { stdenv, fetchurl, openssl }: let - version = "6.4.2"; + version = "6.4.3"; in stdenv.mkDerivation { pname = "fetchmail"; @@ -9,7 +9,7 @@ stdenv.mkDerivation { src = fetchurl { url = "mirror://sourceforge/fetchmail/fetchmail-${version}.tar.xz"; - sha256 = "0c563if3kribnj771l14aj06irmrlhm61dc68w6dp7zj4qrnn7z2"; + sha256 = "1r6k14m40ni9114i3j1lr6zwpxky6k89mycgxxg0cpdap4a0wdmh"; }; buildInputs = [ openssl ]; @@ -17,7 +17,7 @@ stdenv.mkDerivation { configureFlags = [ "--with-ssl=${openssl.dev}" ]; meta = { - homepage = https://www.fetchmail.info/; + homepage = "https://www.fetchmail.info/"; description = "A full-featured remote-mail retrieval and forwarding utility"; longDescription = '' A full-featured, robust, well-documented remote-mail retrieval and diff --git a/pkgs/applications/misc/fff/default.nix b/pkgs/applications/misc/fff/default.nix index e87c86f1b4b..1397f0a057d 100644 --- a/pkgs/applications/misc/fff/default.nix +++ b/pkgs/applications/misc/fff/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Fucking Fast File-Manager"; - homepage = https://github.com/dylanaraps/fff; + homepage = "https://github.com/dylanaraps/fff"; license = licenses.mit; maintainers = [ maintainers.tadeokondrak ]; platforms = platforms.all; diff --git a/pkgs/applications/misc/filet/default.nix b/pkgs/applications/misc/filet/default.nix index edee9ab33e9..ee4b05fa689 100644 --- a/pkgs/applications/misc/filet/default.nix +++ b/pkgs/applications/misc/filet/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A fucking fucking fast file fucker (afffff)"; - homepage = https://github.com/buffet/filet; + homepage = "https://github.com/buffet/filet"; license = licenses.mpl20; platforms = platforms.all; maintainers = with maintainers; [ buffet ]; diff --git a/pkgs/applications/misc/firestarter/default.nix b/pkgs/applications/misc/firestarter/default.nix index 82bcf5a4aa0..05c535e62c0 100644 --- a/pkgs/applications/misc/firestarter/default.nix +++ b/pkgs/applications/misc/firestarter/default.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = https://tu-dresden.de/zih/forschung/projekte/firestarter; + homepage = "https://tu-dresden.de/zih/forschung/projekte/firestarter"; description = "Processor Stress Test Utility"; platforms = platforms.linux; maintainers = with maintainers; [ astro ]; diff --git a/pkgs/applications/misc/fitnesstrax/default.nix b/pkgs/applications/misc/fitnesstrax/default.nix new file mode 100644 index 00000000000..f0081c39102 --- /dev/null +++ b/pkgs/applications/misc/fitnesstrax/default.nix @@ -0,0 +1,43 @@ +{ fetchFromGitHub +, glib +, gtk3 +, lib +, rustPlatform +, wrapGAppsHook +}: + +rustPlatform.buildRustPackage rec { + pname = "fitnesstrax"; + version = "0.1.0"; + + src = fetchFromGitHub { + owner = "luminescent-dreams"; + repo = "fitnesstrax"; + rev = "${pname}-${version}"; + sha256 = "1k6zhnbs0ggx7q0ig2abcnzprsgrychlpvsh6d36dw6mr8zpfkp7"; + }; + + nativeBuildInputs = [ + wrapGAppsHook + ]; + + buildInputs = [ + glib + gtk3 + ]; + + cargoSha256 = "1xgyyxd2kz21xan0pk7rbxiym90s7m2qrzg2ddilcszva60bxdd9"; + + postInstall = '' + mkdir -p $out/share/glib-2.0/schemas + cp -r $src/share/* $out/share/ + glib-compile-schemas $out/share/glib-2.0/schemas + ''; + + meta = with lib; { + description = "Privacy-first fitness tracking"; + homepage = "https://github.com/luminescent-dreams/fitnesstrax"; + license = licenses.bsd3; + maintainers = with maintainers; [ savannidgerinel ]; + }; +} diff --git a/pkgs/applications/misc/flamerobin/default.nix b/pkgs/applications/misc/flamerobin/default.nix index 06cf3c06ffa..2e389c753e2 100644 --- a/pkgs/applications/misc/flamerobin/default.nix +++ b/pkgs/applications/misc/flamerobin/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Database administration tool for Firebird RDBMS"; - homepage = https://github.com/mariuz/flamerobin; + homepage = "https://github.com/mariuz/flamerobin"; license = licenses.bsdOriginal; maintainers = with maintainers; [ uralbash ]; platforms = platforms.unix; diff --git a/pkgs/applications/misc/fme/default.nix b/pkgs/applications/misc/fme/default.nix index 2ca059820ef..cf93729eddd 100644 --- a/pkgs/applications/misc/fme/default.nix +++ b/pkgs/applications/misc/fme/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation rec{ Its user-friendly interface will help you to edit, delete, move (Drag and Drop) a row, a submenu, etc very easily. ''; - homepage = https://github.com/rdehouss/fme/; + homepage = "https://github.com/rdehouss/fme/"; license = licenses.gpl2; maintainers = [ maintainers.AndersonTorres ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/font-manager/default.nix b/pkgs/applications/misc/font-manager/default.nix index afa0a06d33f..008e59eebee 100644 --- a/pkgs/applications/misc/font-manager/default.nix +++ b/pkgs/applications/misc/font-manager/default.nix @@ -44,7 +44,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = https://fontmanager.github.io/; + homepage = "https://fontmanager.github.io/"; description = "Simple font management for GTK desktop environments"; longDescription = '' Font Manager is intended to provide a way for average users to diff --git a/pkgs/applications/misc/freemind/default.nix b/pkgs/applications/misc/freemind/default.nix index aee3937689b..5774320220a 100644 --- a/pkgs/applications/misc/freemind/default.nix +++ b/pkgs/applications/misc/freemind/default.nix @@ -35,7 +35,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Mind-mapping software"; - homepage = http://freemind.sourceforge.net/wiki/index.php/Main_Page; + homepage = "http://freemind.sourceforge.net/wiki/index.php/Main_Page"; license = licenses.gpl2Plus; platforms = platforms.linux; }; diff --git a/pkgs/applications/misc/fsv/default.nix b/pkgs/applications/misc/fsv/default.nix index bbc78efe5cd..8b6898958d3 100644 --- a/pkgs/applications/misc/fsv/default.nix +++ b/pkgs/applications/misc/fsv/default.nix @@ -44,7 +44,7 @@ in stdenv.mkDerivation rec { hard drive, or any arbitrarily large collection of files, limited only by the host computer's memory and graphics hardware. ''; - homepage = https://github.com/mcuelenaere/fsv; + homepage = "https://github.com/mcuelenaere/fsv"; license = licenses.lgpl2; platforms = platforms.linux; maintainers = with maintainers; [ rnhmjoj ]; diff --git a/pkgs/applications/misc/fusee-interfacee-tk/default.nix b/pkgs/applications/misc/fusee-interfacee-tk/default.nix index d74b6565ba3..91a7b0ed37f 100644 --- a/pkgs/applications/misc/fusee-interfacee-tk/default.nix +++ b/pkgs/applications/misc/fusee-interfacee-tk/default.nix @@ -3,13 +3,13 @@ let pythonEnv = python3.withPackages(ps: [ ps.tkinter ps.pyusb ]); in stdenv.mkDerivation rec { pname = "fusee-interfacee-tk"; - version = "1.0.0"; + version = "1.0.1"; src = fetchFromGitHub { owner = "nh-server"; repo = pname; rev = "V${version}"; - sha256 = "0ycsxv71b5yvkcawxmcnmywxfvn8fdg1lyq71xdw7qrskxv5fgq7"; + sha256 = "0ngwbwsj999flprv14xvhk7lp51nprrvcnlbnbk6y4qx5casm5md"; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/applications/misc/gImageReader/default.nix b/pkgs/applications/misc/gImageReader/default.nix index 67d4bd65a9f..2884fca6239 100644 --- a/pkgs/applications/misc/gImageReader/default.nix +++ b/pkgs/applications/misc/gImageReader/default.nix @@ -62,7 +62,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A simple Gtk/Qt front-end to tesseract-ocr"; - homepage = https://github.com/manisandro/gImageReader; + homepage = "https://github.com/manisandro/gImageReader"; license = licenses.gpl3Plus; maintainers = with maintainers; [teto]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/galculator/default.nix b/pkgs/applications/misc/galculator/default.nix index ecf8ae9da8d..1964ba6aaf7 100644 --- a/pkgs/applications/misc/galculator/default.nix +++ b/pkgs/applications/misc/galculator/default.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { - Binary arithmetic of configurable bit length and signedness - Quad-precision floating point arithmetic, and 112-bit binary arithmetic ''; - homepage = http://galculator.sourceforge.net/; + homepage = "http://galculator.sourceforge.net/"; license = licenses.gpl2Plus; maintainers = [ maintainers.AndersonTorres ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/gallery-dl/default.nix b/pkgs/applications/misc/gallery-dl/default.nix index d0cf9673180..791db13e423 100644 --- a/pkgs/applications/misc/gallery-dl/default.nix +++ b/pkgs/applications/misc/gallery-dl/default.nix @@ -2,11 +2,11 @@ python3Packages.buildPythonApplication rec { pname = "gallery_dl"; - version = "1.13.1"; + version = "1.13.3"; src = python3Packages.fetchPypi { inherit pname version; - sha256 = "0a5k7gcs3vn6x1f2qg3ajpqsl39pmw2hsj2srd5y2l1xw7mkkqj6"; + sha256 = "0nhbhli45i2xhkmyj9mpg8fn1l58y2zmr6nnnnms557wpdpg112x"; }; doCheck = false; diff --git a/pkgs/applications/misc/gammu/default.nix b/pkgs/applications/misc/gammu/default.nix index fb6902634da..ff3408eb8dd 100644 --- a/pkgs/applications/misc/gammu/default.nix +++ b/pkgs/applications/misc/gammu/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; meta = { - homepage = https://wammu.eu/gammu/; + homepage = "https://wammu.eu/gammu/"; description = "Command line utility and library to control mobile phones"; license = licenses.gpl2; platforms = platforms.linux; diff --git a/pkgs/applications/misc/ganttproject-bin/default.nix b/pkgs/applications/misc/ganttproject-bin/default.nix index 96d3d34046e..2e8478f41d3 100644 --- a/pkgs/applications/misc/ganttproject-bin/default.nix +++ b/pkgs/applications/misc/ganttproject-bin/default.nix @@ -49,8 +49,8 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Project scheduling and management"; - homepage = https://www.ganttproject.biz/; - downloadPage = https://www.ganttproject.biz/download; + homepage = "https://www.ganttproject.biz/"; + downloadPage = "https://www.ganttproject.biz/download"; # GanttProject itself is GPL3+. All bundled libraries are declared # ‘GPL3-compatible’. See ${downloadPage} for detailed information. license = licenses.gpl3Plus; diff --git a/pkgs/applications/misc/garmin-plugin/default.nix b/pkgs/applications/misc/garmin-plugin/default.nix index b97b079ab66..95cbdd9c19b 100644 --- a/pkgs/applications/misc/garmin-plugin/default.nix +++ b/pkgs/applications/misc/garmin-plugin/default.nix @@ -1,13 +1,13 @@ -{ stdenv, fetchurl, garmintools, libgcrypt, libusb, pkgconfig, tinyxml, zlib }: +{ stdenv, fetchurl, garmintools, libgcrypt, libusb-compat-0_1, pkgconfig, tinyxml, zlib }: stdenv.mkDerivation { name = "garmin-plugin-0.3.26"; src = fetchurl { - url = https://github.com/adiesner/GarminPlugin/archive/V0.3.26.tar.gz; + url = "https://github.com/adiesner/GarminPlugin/archive/V0.3.26.tar.gz"; sha256 = "15gads1fj4sj970m5960dgnhys41ksi4cm53ldkf67wn8dc9i4k0"; }; sourceRoot = "GarminPlugin-0.3.26/src"; nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ garmintools libusb libgcrypt tinyxml zlib ]; + buildInputs = [ garmintools libusb-compat-0_1 libgcrypt tinyxml zlib ]; configureFlags = [ "--with-libgcrypt-prefix=${libgcrypt.dev}" "--with-garmintools-incdir=${garmintools}/include" @@ -18,7 +18,7 @@ stdenv.mkDerivation { cp npGarminPlugin.so $out/lib/mozilla/plugins ''; meta = { - homepage = http://www.andreas-diesner.de/garminplugin; + homepage = "http://www.andreas-diesner.de/garminplugin"; license = stdenv.lib.licenses.gpl3; maintainers = [ stdenv.lib.maintainers.ocharles ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/misc/gcal/default.nix b/pkgs/applications/misc/gcal/default.nix index 713000d3f69..24906b11dd5 100644 --- a/pkgs/applications/misc/gcal/default.nix +++ b/pkgs/applications/misc/gcal/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { hybrid and proleptic Julian and Gregorian calendar sheets. It also displays holiday lists for many countries around the globe. ''; - homepage = https://www.gnu.org/software/gcal/; + homepage = "https://www.gnu.org/software/gcal/"; license = stdenv.lib.licenses.gpl3Plus; platforms = stdenv.lib.platforms.unix; maintainers = [ stdenv.lib.maintainers.romildo ]; diff --git a/pkgs/applications/misc/gcalcli/default.nix b/pkgs/applications/misc/gcalcli/default.nix index 8381f182e5d..b8b1193058b 100644 --- a/pkgs/applications/misc/gcalcli/default.nix +++ b/pkgs/applications/misc/gcalcli/default.nix @@ -30,7 +30,7 @@ buildPythonApplication rec { meta = with lib; { description = "CLI for Google Calendar"; - homepage = https://github.com/insanum/gcalcli; + homepage = "https://github.com/insanum/gcalcli"; license = licenses.mit; maintainers = with maintainers; [ nocoolnametom ]; inherit version; diff --git a/pkgs/applications/misc/get_iplayer/default.nix b/pkgs/applications/misc/get_iplayer/default.nix index 5db328072e4..9c05e984720 100644 --- a/pkgs/applications/misc/get_iplayer/default.nix +++ b/pkgs/applications/misc/get_iplayer/default.nix @@ -33,7 +33,7 @@ perlPackages.buildPerlPackage rec { meta = { description = "Downloads TV and radio from BBC iPlayer"; license = licenses.gpl3Plus; - homepage = https://squarepenguin.co.uk/; + homepage = "https://squarepenguin.co.uk/"; platforms = platforms.all; maintainers = with maintainers; [ rika ]; }; diff --git a/pkgs/applications/misc/getxbook/default.nix b/pkgs/applications/misc/getxbook/default.nix index aa901a7ba51..8ac0b000c46 100644 --- a/pkgs/applications/misc/getxbook/default.nix +++ b/pkgs/applications/misc/getxbook/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A collection of tools to download books from Google Books"; - homepage = https://njw.me.uk/getxbook/; + homepage = "https://njw.me.uk/getxbook/"; license = licenses.isc; maintainers = with maintainers; [ obadz ]; platforms = platforms.all; diff --git a/pkgs/applications/misc/gkrellm/default.nix b/pkgs/applications/misc/gkrellm/default.nix index f44cdd0bad7..bc7c66ee531 100644 --- a/pkgs/applications/misc/gkrellm/default.nix +++ b/pkgs/applications/misc/gkrellm/default.nix @@ -38,7 +38,7 @@ stdenv.mkDerivation rec { manager, Gtk, or any other theme. ''; - homepage = http://gkrellm.srcbox.net; + homepage = "http://gkrellm.srcbox.net"; license = licenses.gpl3Plus; maintainers = [ ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/gksu/default.nix b/pkgs/applications/misc/gksu/default.nix index 4a806cbb183..bfa50447761 100644 --- a/pkgs/applications/misc/gksu/default.nix +++ b/pkgs/applications/misc/gksu/default.nix @@ -45,7 +45,7 @@ stdenv.mkDerivation rec { programs that need to ask a user's password to run another program as another user. ''; - homepage = https://www.nongnu.org/gksu/; + homepage = "https://www.nongnu.org/gksu/"; license = stdenv.lib.licenses.gpl2; maintainers = [ stdenv.lib.maintainers.romildo ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/misc/glava/default.nix b/pkgs/applications/misc/glava/default.nix index 519df42c789..88991bb40a1 100644 --- a/pkgs/applications/misc/glava/default.nix +++ b/pkgs/applications/misc/glava/default.nix @@ -82,7 +82,7 @@ in description = '' OpenGL audio spectrum visualizer ''; - homepage = https://github.com/wacossusca34/glava; + homepage = "https://github.com/wacossusca34/glava"; platforms = platforms.linux; license = licenses.gpl3; maintainers = with maintainers; [ diff --git a/pkgs/applications/misc/glom/default.nix b/pkgs/applications/misc/glom/default.nix index b8f13d01424..d576d2b5b47 100644 --- a/pkgs/applications/misc/glom/default.nix +++ b/pkgs/applications/misc/glom/default.nix @@ -28,7 +28,6 @@ , isocodes , gtksourceviewmm4 , postgresql -, gnome3 , gobject-introspection , yelp-tools , wrapGAppsHook @@ -125,9 +124,9 @@ in stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "An easy-to-use database designer and user interface"; - homepage = http://www.glom.org/; + homepage = "http://www.glom.org/"; license = [ licenses.lgpl2 licenses.gpl2 ]; - maintainers = gnome3.maintainers; + maintainers = teams.gnome.members; platforms = platforms.linux; }; } diff --git a/pkgs/applications/misc/gmrun/default.nix b/pkgs/applications/misc/gmrun/default.nix index 50dda9510b9..eaee8fb5fb3 100644 --- a/pkgs/applications/misc/gmrun/default.nix +++ b/pkgs/applications/misc/gmrun/default.nix @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { Also, supports CTRL-R / CTRL-S / "!" for searching through history. Running commands in a terminal with CTRL-Enter. URL handlers. ''; - homepage = https://sourceforge.net/projects/gmrun/; + homepage = "https://sourceforge.net/projects/gmrun/"; license = "GPL"; maintainers = []; platforms = stdenv.lib.platforms.all; diff --git a/pkgs/applications/misc/gmtp/default.nix b/pkgs/applications/misc/gmtp/default.nix index db2193dbd3d..5ed69e7bc69 100644 --- a/pkgs/applications/misc/gmtp/default.nix +++ b/pkgs/applications/misc/gmtp/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation { meta = { description = "A simple MP3 and Media player client for UNIX and UNIX like systems."; - homepage = https://gmtp.sourceforge.io; + homepage = "https://gmtp.sourceforge.io"; platforms = stdenv.lib.platforms.linux; maintainers = [ ]; license = stdenv.lib.licenses.bsd3; diff --git a/pkgs/applications/misc/gnome-firmware-updater/default.nix b/pkgs/applications/misc/gnome-firmware-updater/default.nix index f05c5fd210c..f007f0ae52e 100644 --- a/pkgs/applications/misc/gnome-firmware-updater/default.nix +++ b/pkgs/applications/misc/gnome-firmware-updater/default.nix @@ -6,7 +6,6 @@ , fwupd , gettext , glib -, gnome3 , gtk3 , libsoup , libxmlb @@ -70,7 +69,7 @@ stdenv.mkDerivation rec { homepage = "https://gitlab.gnome.org/hughsie/gnome-firmware-updater"; description = "Tool for installing firmware on devices"; license = licenses.gpl2Plus; - maintainers = gnome3.maintainers; + maintainers = teams.gnome.members; platforms = platforms.linux; }; } diff --git a/pkgs/applications/misc/gnome-multi-writer/default.nix b/pkgs/applications/misc/gnome-multi-writer/default.nix index 11bfbaaacd0..06bc0024995 100644 --- a/pkgs/applications/misc/gnome-multi-writer/default.nix +++ b/pkgs/applications/misc/gnome-multi-writer/default.nix @@ -54,9 +54,9 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Tool for writing an ISO file to multiple USB devices at once"; - homepage = https://wiki.gnome.org/Apps/MultiWriter; + homepage = "https://wiki.gnome.org/Apps/MultiWriter"; license = licenses.gpl2Plus; - maintainers = gnome3.maintainers; + maintainers = teams.gnome.members; platforms = platforms.linux; }; } diff --git a/pkgs/applications/misc/gnome-recipes/default.nix b/pkgs/applications/misc/gnome-recipes/default.nix index 01f5af339ff..cb9d10377cb 100644 --- a/pkgs/applications/misc/gnome-recipes/default.nix +++ b/pkgs/applications/misc/gnome-recipes/default.nix @@ -71,8 +71,8 @@ in stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Recipe management application for GNOME"; - homepage = https://wiki.gnome.org/Apps/Recipes; - maintainers = gnome3.maintainers; + homepage = "https://wiki.gnome.org/Apps/Recipes"; + maintainers = teams.gnome.members; license = licenses.gpl3; platforms = platforms.unix; }; diff --git a/pkgs/applications/misc/gnome-usage/default.nix b/pkgs/applications/misc/gnome-usage/default.nix index 7484998ab20..17aa7e9aa06 100644 --- a/pkgs/applications/misc/gnome-usage/default.nix +++ b/pkgs/applications/misc/gnome-usage/default.nix @@ -60,6 +60,6 @@ stdenv.mkDerivation rec { description = "A nice way to view information about use of system resources, like memory and disk space"; license = licenses.gpl3; platforms = platforms.linux; - maintainers = gnome3.maintainers; + maintainers = teams.gnome.members; }; } diff --git a/pkgs/applications/misc/golden-cheetah/default.nix b/pkgs/applications/misc/golden-cheetah/default.nix index 3dffc5c77c2..761d05e5f9f 100644 --- a/pkgs/applications/misc/golden-cheetah/default.nix +++ b/pkgs/applications/misc/golden-cheetah/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchFromGitHub, mkDerivation , qtbase, qtsvg, qtserialport, qtwebengine, qtmultimedia, qttools -, qtconnectivity, qtcharts, libusb +, qtconnectivity, qtcharts, libusb-compat-0_1 , yacc, flex, zlib, qmake, makeDesktopItem, makeWrapper }: @@ -27,7 +27,7 @@ in mkDerivation rec { buildInputs = [ qtbase qtsvg qtserialport qtwebengine qtmultimedia qttools zlib - qtconnectivity qtcharts libusb + qtconnectivity qtcharts libusb-compat-0_1 ]; nativeBuildInputs = [ flex makeWrapper qmake yacc ]; @@ -39,9 +39,9 @@ in mkDerivation rec { cp src/gcconfig.pri.in src/gcconfig.pri cp qwt/qwtconfig.pri.in qwt/qwtconfig.pri echo 'QMAKE_LRELEASE = ${qttools.dev}/bin/lrelease' >> src/gcconfig.pri - echo 'LIBUSB_INSTALL = ${libusb}' >> src/gcconfig.pri - echo 'LIBUSB_INCLUDE = ${libusb.dev}/include' >> src/gcconfig.pri - echo 'LIBUSB_LIBS = -L${libusb}/lib -lusb' >> src/gcconfig.pri + echo 'LIBUSB_INSTALL = ${libusb-compat-0_1}' >> src/gcconfig.pri + echo 'LIBUSB_INCLUDE = ${libusb-compat-0_1.dev}/include' >> src/gcconfig.pri + echo 'LIBUSB_LIBS = -L${libusb-compat-0_1}/lib -lusb' >> src/gcconfig.pri sed -i -e '21,23d' qwt/qwtconfig.pri # Removed forced installation to /usr/local # Use qtwebengine instead of qtwebkit diff --git a/pkgs/applications/misc/gollum/Gemfile.lock b/pkgs/applications/misc/gollum/Gemfile.lock index 6a705b6a9d8..4759cdcf573 100644 --- a/pkgs/applications/misc/gollum/Gemfile.lock +++ b/pkgs/applications/misc/gollum/Gemfile.lock @@ -1,59 +1,106 @@ GEM remote: https://rubygems.org/ specs: - charlock_holmes (0.7.7) - diff-lcs (1.3) - gemojione (3.3.0) + backports (3.17.0) + concurrent-ruby (1.1.6) + crass (1.0.6) + execjs (2.7.0) + ffi (1.12.2) + gemojione (4.3.2) json - github-markup (1.7.0) - gitlab-grit (2.8.3) - charlock_holmes (~> 0.7) - diff-lcs (~> 1.1) - mime-types (>= 1.16, < 3) - posix-spawn (~> 0.3) - gollum (4.1.4) - gemojione (~> 3.2) - gollum-lib (~> 4.2, >= 4.2.10) - kramdown (~> 1.9.0) + github-markup (3.0.4) + gollum (5.0.1) + gemojione (~> 4.1) + gollum-lib (~> 5.0) + kramdown (~> 2.1.0) + kramdown-parser-gfm (~> 1.0.0) mustache (>= 0.99.5, < 1.0.0) - sinatra (~> 1.4, >= 1.4.4) + octicons (~> 8.5) + rss (~> 0.2.9) + sass (~> 3.5) + sinatra (~> 2.0) + sinatra-contrib (~> 2.0) + sprockets (~> 3.7) + sprockets-helpers (~> 1.2) + therubyrhino (~> 2.1.0) + uglifier (~> 3.2) useragent (~> 0.16.2) - gollum-grit_adapter (1.0.1) - gitlab-grit (~> 2.7, >= 2.7.1) - gollum-lib (4.2.10) - gemojione (~> 3.2) - github-markup (~> 1.6) - gollum-grit_adapter (~> 1.0) - nokogiri (>= 1.6.1, < 2.0) - rouge (~> 2.1) - sanitize (~> 2.1.1, >= 2.1.1) - stringex (~> 2.6) + gollum-lib (5.0.3) + gemojione (~> 4.1) + github-markup (~> 3.0) + gollum-rugged_adapter (~> 0.99.4, >= 0.99.4) + loofah (~> 2.3) + nokogiri (~> 1.8) + octicons (~> 8.5) + rouge (~> 3.1) twitter-text (= 1.14.7) + gollum-rugged_adapter (0.99.4) + mime-types (>= 1.15) + rugged (~> 0.99) json (2.3.0) - kramdown (1.9.0) - mime-types (2.99.3) + kramdown (2.1.0) + kramdown-parser-gfm (1.0.1) + kramdown (~> 2.0) + loofah (2.5.0) + crass (~> 1.0.2) + nokogiri (>= 1.5.9) + mime-types (3.3.1) + mime-types-data (~> 3.2015) + mime-types-data (3.2019.1009) mini_portile2 (2.4.0) + multi_json (1.14.1) mustache (0.99.8) - nokogiri (1.10.8) + mustermann (1.1.1) + ruby2_keywords (~> 0.0.1) + nokogiri (1.10.9) mini_portile2 (~> 2.4.0) - posix-spawn (0.3.13) - rack (1.6.13) - rack-protection (1.5.5) + octicons (8.5.0) + nokogiri (>= 1.6.3.1) + rack (2.2.2) + rack-protection (2.0.8.1) rack - rouge (2.2.1) - sanitize (2.1.1) - nokogiri (>= 1.4.4) - sinatra (1.4.8) - rack (~> 1.5) - rack-protection (~> 1.4) - tilt (>= 1.3, < 3) - stringex (2.8.5) + rb-fsevent (0.10.3) + rb-inotify (0.10.1) + ffi (~> 1.0) + rexml (3.2.4) + rouge (3.17.0) + rss (0.2.9) + rexml + ruby2_keywords (0.0.2) + rugged (0.99.0) + sass (3.7.4) + sass-listen (~> 4.0.0) + sass-listen (4.0.0) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + sinatra (2.0.8.1) + mustermann (~> 1.0) + rack (~> 2.0) + rack-protection (= 2.0.8.1) + tilt (~> 2.0) + sinatra-contrib (2.0.8.1) + backports (>= 2.8.2) + multi_json + mustermann (~> 1.0) + rack-protection (= 2.0.8.1) + sinatra (= 2.0.8.1) + tilt (~> 2.0) + sprockets (3.7.2) + concurrent-ruby (~> 1.0) + rack (> 1, < 3) + sprockets-helpers (1.2.3) + sprockets (>= 2.2) + therubyrhino (2.1.2) + therubyrhino_jar (>= 1.7.4, < 1.7.9) + therubyrhino_jar (1.7.8) tilt (2.0.10) twitter-text (1.14.7) unf (~> 0.1.0) + uglifier (3.2.0) + execjs (>= 0.3.0, < 3) unf (0.1.4) unf_ext - unf_ext (0.0.7.6) + unf_ext (0.0.7.7) useragent (0.16.10) PLATFORMS @@ -63,4 +110,4 @@ DEPENDENCIES gollum BUNDLED WITH - 1.17.3 + 2.1.4 diff --git a/pkgs/applications/misc/gollum/default.nix b/pkgs/applications/misc/gollum/default.nix index 251e84f04c3..9005f38f563 100644 --- a/pkgs/applications/misc/gollum/default.nix +++ b/pkgs/applications/misc/gollum/default.nix @@ -3,7 +3,7 @@ stdenv.mkDerivation rec { pname = "gollum"; - # nix-shell -p bundix icu zlib + # nix-shell -p bundix icu zlib cmake pkg-config openssl version = (import ./gemset.nix).gollum.version; nativeBuildInputs = [ makeWrapper ]; @@ -20,13 +20,16 @@ stdenv.mkDerivation rec { mkdir -p $out/bin makeWrapper ${env}/bin/gollum $out/bin/gollum \ --prefix PATH ":" ${stdenv.lib.makeBinPath [ git ]} + makeWrapper ${env}/bin/gollum-migrate-tags $out/bin/gollum-migrate-tags \ + --prefix PATH ":" ${stdenv.lib.makeBinPath [ git ]} ''; passthru.updateScript = bundlerUpdateScript "gollum"; meta = with stdenv.lib; { - description = "A simple, Git-powered wiki"; - homepage = https://github.com/gollum/gollum; + description = "A simple, Git-powered wiki with a sweet API and local frontend"; + homepage = "https://github.com/gollum/gollum"; + changelog = "https://github.com/gollum/gollum/blob/v${version}/HISTORY.md"; license = licenses.mit; maintainers = with maintainers; [ jgillich primeos nicknovitski ]; platforms = platforms.unix; diff --git a/pkgs/applications/misc/gollum/gemset.nix b/pkgs/applications/misc/gollum/gemset.nix index 7ce1d853f36..3febcea2f9a 100644 --- a/pkgs/applications/misc/gollum/gemset.nix +++ b/pkgs/applications/misc/gollum/gemset.nix @@ -1,23 +1,53 @@ { - charlock_holmes = { + backports = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0hybw8jw9ryvz5zrki3gc9r88jqy373m6v46ynxsdzv1ysiyr40p"; + sha256 = "13ywgyyxzlgks7nb17gwqjmdqjjmhc8si3iliv8jhf51lb3s865v"; type = "gem"; }; - version = "0.7.7"; + version = "3.17.0"; }; - diff-lcs = { + concurrent-ruby = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza"; + sha256 = "094387x4yasb797mv07cs3g6f08y56virc2rjcpb1k79rzaj3nhl"; type = "gem"; }; - version = "1.3"; + version = "1.1.6"; + }; + crass = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0pfl5c0pyqaparxaqxi6s4gfl21bdldwiawrc0aknyvflli60lfw"; + type = "gem"; + }; + version = "1.0.6"; + }; + execjs = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1yz55sf2nd3l666ms6xr18sm2aggcvmb8qr3v53lr4rir32y1yp1"; + type = "gem"; + }; + version = "2.7.0"; + }; + ffi = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10lfhahnnc91v63xpvk65apn61pib086zha3z5sp1xk9acfx12h4"; + type = "gem"; + }; + version = "1.12.2"; }; gemojione = { dependencies = ["json"]; @@ -25,64 +55,53 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0ayk8r147k1s38nj18pwk76npx1p7jhi86silk800nj913pjvrhj"; + sha256 = "097mrsahv1h67kjrk1cpiqc1cbrfgvlp2rqwmzdzxrq0kx50461w"; type = "gem"; }; - version = "3.3.0"; + version = "4.3.2"; }; github-markup = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "17g6g18gdjg63k75sfwiskjzl9i0hfcnrkcpb4fwrnb20v3jgswp"; + sha256 = "14991x92v8s60hfqv7162jfmdqa20fifn2bz0km3k5cgi01pf9rs"; type = "gem"; }; - version = "1.7.0"; - }; - gitlab-grit = { - dependencies = ["charlock_holmes" "diff-lcs" "mime-types" "posix-spawn"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0xvcizc4856xlvara1zzwl6j61vxxshzcrdagp58xzfl68vbi63p"; - type = "gem"; - }; - version = "2.8.3"; + version = "3.0.4"; }; gollum = { - dependencies = ["gemojione" "gollum-lib" "kramdown" "mustache" "sinatra" "useragent"]; + dependencies = ["gemojione" "gollum-lib" "kramdown" "kramdown-parser-gfm" "mustache" "octicons" "rss" "sass" "sinatra" "sinatra-contrib" "sprockets" "sprockets-helpers" "therubyrhino" "uglifier" "useragent"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0ik1b0f73lcxfwfml1h84dp6br79g0z9v6x54wvl46n9d1ndrhl7"; + sha256 = "1f9p1230xmrvcb7ii2gkcvhpgcaqvvd47gy3c58nn730jkv471dr"; type = "gem"; }; - version = "4.1.4"; - }; - gollum-grit_adapter = { - dependencies = ["gitlab-grit"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0fcibm63v1afc0fj5rki0mm51m7nndil4cjcjjvkh3yigfn4nr4b"; - type = "gem"; - }; - version = "1.0.1"; + version = "5.0.1"; }; gollum-lib = { - dependencies = ["gemojione" "github-markup" "gollum-grit_adapter" "nokogiri" "rouge" "sanitize" "stringex" "twitter-text"]; + dependencies = ["gemojione" "github-markup" "gollum-rugged_adapter" "loofah" "nokogiri" "octicons" "rouge" "twitter-text"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1699wiir6f2a8yawk3qg0xn3zdc10mz783v53ri1ivfnzdrm3dvf"; + sha256 = "0r59fyf7i4rlp6wj9ilnqd9pmgpkafv0yl4jmrxa6hr2p4cmnf1g"; type = "gem"; }; - version = "4.2.10"; + version = "5.0.3"; + }; + gollum-rugged_adapter = { + dependencies = ["mime-types" "rugged"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0016yfac3b3sy34k9wrqg422mjm8cpd1jd1m4gdn4x2d4jxhxkzq"; + type = "gem"; + }; + version = "0.99.4"; }; json = { groups = ["default"]; @@ -99,20 +118,53 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "12sral2xli39mnr4b9m2sxdlgam4ni0a1mkxawc5311z107zj3p0"; + sha256 = "1dl840bvx8d9nq6lg3mxqyvbiqnr6lk3jfsm6r8zhz7p5srmd688"; type = "gem"; }; - version = "1.9.0"; + version = "2.1.0"; }; - mime-types = { + kramdown-parser-gfm = { + dependencies = ["kramdown"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "03j98xr0qw2p2jkclpmk7pm29yvmmh0073d8d43ajmr0h3w7i5l9"; + sha256 = "0ykna2apphld9llmjnz0210fipp4fkmj2ja18l7iz9xikg0h0ihi"; type = "gem"; }; - version = "2.99.3"; + version = "1.0.1"; + }; + loofah = { + dependencies = ["crass" "nokogiri"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jk9fgn5ayzbqvzqm11gbkqvas77zdbpkvynlylyiwynclgrn040"; + type = "gem"; + }; + version = "2.5.0"; + }; + mime-types = { + dependencies = ["mime-types-data"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zj12l9qk62anvk9bjvandpa6vy4xslil15wl6wlivyf51z773vh"; + type = "gem"; + }; + version = "3.3.1"; + }; + mime-types-data = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18x61fc36951vw7f74gq8cyybdpxvyg5d0azvqhrs82ddw3v16xh"; + type = "gem"; + }; + version = "3.2019.1009"; }; mini_portile2 = { groups = ["default"]; @@ -124,6 +176,16 @@ }; version = "2.4.0"; }; + multi_json = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xy54mjf7xg41l8qrg1bqri75agdqmxap9z466fjismc1rn2jwfr"; + type = "gem"; + }; + version = "1.14.1"; + }; mustache = { groups = ["default"]; platforms = []; @@ -134,36 +196,48 @@ }; version = "0.99.8"; }; + mustermann = { + dependencies = ["ruby2_keywords"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ccm54qgshr1lq3pr1dfh7gphkilc19dp63rw6fcx7460pjwy88a"; + type = "gem"; + }; + version = "1.1.1"; + }; nokogiri = { dependencies = ["mini_portile2"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1yi8j8hwrlc3rg5v3w52gxndmwifyk7m732q9yfbal0qajqbh1h8"; + sha256 = "12j76d0bp608932xkzmfi638c7aqah57l437q8494znzbj610qnm"; type = "gem"; }; - version = "1.10.8"; + version = "1.10.9"; }; - posix-spawn = { + octicons = { + dependencies = ["nokogiri"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1pmxmpins57qrbr31bs3bm7gidhaacmrp4md6i962gvpq4gyfcjw"; + sha256 = "0fy6shpfmla58dxx3kb2zi1hs7vmdw6pqrksaa8yrva05s4l3y75"; type = "gem"; }; - version = "0.3.13"; + version = "8.5.0"; }; rack = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0wr1f3g9rc9i8svfxa9cijajl1661d817s56b2w7rd572zwn0zi0"; + sha256 = "10mp9s48ssnw004aksq90gvhdvwczh8j6q82q2kqiqq92jd1zxbp"; type = "gem"; }; - version = "1.6.13"; + version = "2.2.2"; }; rack-protection = { dependencies = ["rack"]; @@ -171,52 +245,169 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0my0wlw4a5l3hs79jkx2xzv7djhajgf8d28k8ai1ddlnxxb0v7ss"; + sha256 = "1zyj97bfr1shfgwk4ddmdbw0mdkm4qdyh9s1hl0k7accf3kxx1yi"; type = "gem"; }; - version = "1.5.5"; + version = "2.0.8.1"; + }; + rb-fsevent = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lm1k7wpz69jx7jrc92w3ggczkjyjbfziq5mg62vjnxmzs383xx8"; + type = "gem"; + }; + version = "0.10.3"; + }; + rb-inotify = { + dependencies = ["ffi"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jm76h8f8hji38z3ggf4bzi8vps6p7sagxn3ab57qc0xyga64005"; + type = "gem"; + }; + version = "0.10.1"; + }; + rexml = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mkvkcw9fhpaizrhca0pdgjcrbns48rlz4g6lavl5gjjq3rk2sq3"; + type = "gem"; + }; + version = "3.2.4"; }; rouge = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "02kpahk5nkc33yxnn75649kzxaz073wvazr2zyg491nndykgnvcs"; + sha256 = "0xl7k5paf66p57sphm4nfa4k86yf93lhdzzr0cv0l4divq12g2pr"; type = "gem"; }; - version = "2.2.1"; + version = "3.17.0"; }; - sanitize = { - dependencies = ["nokogiri"]; + rss = { + dependencies = ["rexml"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "12ip1d80r0dgc621qn7c32bk12xxgkkg3w6q21s1ckxivcd7r898"; + sha256 = "1b1zx07kr64kkpm4lssd4r1a1qyr829ppmfl85i4adcvx9mqfid0"; type = "gem"; }; - version = "2.1.1"; + version = "0.2.9"; + }; + ruby2_keywords = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17pcc0wgvh3ikrkr7bm3nx0qhyiqwidd13ij0fa50k7gsbnr2p0l"; + type = "gem"; + }; + version = "0.0.2"; + }; + rugged = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04rkxwzaa6897da3mnm70g720gpxwyh71krfn6ag1dkk80x8a8yz"; + type = "gem"; + }; + version = "0.99.0"; + }; + sass = { + dependencies = ["sass-listen"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0p95lhs0jza5l7hqci1isflxakz83xkj97lkvxl919is0lwhv2w0"; + type = "gem"; + }; + version = "3.7.4"; + }; + sass-listen = { + dependencies = ["rb-fsevent" "rb-inotify"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xw3q46cmahkgyldid5hwyiwacp590zj2vmswlll68ryvmvcp7df"; + type = "gem"; + }; + version = "4.0.0"; }; sinatra = { - dependencies = ["rack" "rack-protection" "tilt"]; + dependencies = ["mustermann" "rack" "rack-protection" "tilt"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0byxzl7rx3ki0xd7aiv1x8mbah7hzd8f81l65nq8857kmgzj1jqq"; + sha256 = "0riy3hwjab1mr73jcqx3brmbmwspnw3d193j06a5f0fy1w35z15q"; type = "gem"; }; - version = "1.4.8"; + version = "2.0.8.1"; }; - stringex = { + sinatra-contrib = { + dependencies = ["backports" "multi_json" "mustermann" "rack-protection" "sinatra" "tilt"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "15ns7j5smw04w6w7bqd5mm2qcl7w9lhwykyb974i4isgg9yc23ys"; + sha256 = "1mmrfm4pqh98f3irjpkvfpazhcx6q42bnx6bbms9dqvmck3mid28"; type = "gem"; }; - version = "2.8.5"; + version = "2.0.8.1"; + }; + sprockets = { + dependencies = ["concurrent-ruby" "rack"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay"; + type = "gem"; + }; + version = "3.7.2"; + }; + sprockets-helpers = { + dependencies = ["sprockets"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hy67dwz76n5db00d9n3qy59ici96c2g25c9xpmp2nh8ilvha338"; + type = "gem"; + }; + version = "1.2.3"; + }; + therubyrhino = { + dependencies = ["therubyrhino_jar"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "034mzpkxm3zjsi4rwa45dhhgq2b9vkabs5bnzbl1d3ka7210b3fc"; + type = "gem"; + }; + version = "2.1.2"; + }; + therubyrhino_jar = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "149a5lsvn2n7k7vcfs77n836q1alv8yjh0503sf9cs65p974ah25"; + type = "gem"; + }; + version = "1.7.8"; }; tilt = { groups = ["default"]; @@ -239,6 +430,17 @@ }; version = "1.14.7"; }; + uglifier = { + dependencies = ["execjs"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0wmqvn4xncw6h3d5gp2a44170zwxfyj3iq4rsjp16zarvzbdmgnz"; + type = "gem"; + }; + version = "3.2.0"; + }; unf = { dependencies = ["unf_ext"]; groups = ["default"]; @@ -255,10 +457,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1ll6w64ibh81qwvjx19h8nj7mngxgffg7aigjx11klvf5k2g4nxf"; + sha256 = "0wc47r23h063l8ysws8sy24gzh74mks81cak3lkzlrw4qkqb3sg4"; type = "gem"; }; - version = "0.0.7.6"; + version = "0.0.7.7"; }; useragent = { groups = ["default"]; diff --git a/pkgs/applications/misc/googleearth/default.nix b/pkgs/applications/misc/googleearth/default.nix index 181273752ea..dff69130c18 100644 --- a/pkgs/applications/misc/googleearth/default.nix +++ b/pkgs/applications/misc/googleearth/default.nix @@ -99,7 +99,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A world sphere viewer"; - homepage = http://earth.google.com; + homepage = "http://earth.google.com"; license = licenses.unfree; maintainers = with maintainers; [ markus1189 ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/googler/default.nix b/pkgs/applications/misc/googler/default.nix index 3e4c9828ede..fba36f5e8ac 100644 --- a/pkgs/applications/misc/googler/default.nix +++ b/pkgs/applications/misc/googler/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "googler"; - version = "4.0"; + version = "4.1"; src = fetchFromGitHub { owner = "jarun"; repo = pname; rev = "v${version}"; - sha256 = "13jj15ph0vmbyxjslzl6z4h5b7wyllvhwgsrb6zf7qlkcmkd4vwy"; + sha256 = "04d7n2l159s7c9xzvyvbnbii1k3zdbajagpx09x1l692cwjbvpxw"; }; propagatedBuildInputs = [ python ]; diff --git a/pkgs/applications/misc/gosmore/default.nix b/pkgs/applications/misc/gosmore/default.nix index 41cdf267f5d..350cb56695f 100644 --- a/pkgs/applications/misc/gosmore/default.nix +++ b/pkgs/applications/misc/gosmore/default.nix @@ -9,7 +9,7 @@ stdenv.mkDerivation { # so we explicitly disable them to avoid breaking the hash # especially as the externals appear to be unused src = fetchsvn { - url = http://svn.openstreetmap.org/applications/rendering/gosmore; + url = "http://svn.openstreetmap.org/applications/rendering/gosmore"; sha256 = "0qsckpqx7i7f8gkqhkzdamr65250afk1rpnh3nbman35kdv3dsxi"; rev = version; ignoreExternals = true; @@ -28,7 +28,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Open Street Map viewer"; - homepage = https://sourceforge.net/projects/gosmore/; + homepage = "https://sourceforge.net/projects/gosmore/"; maintainers = with maintainers; [ raskin ]; diff --git a/pkgs/applications/misc/gpa/default.nix b/pkgs/applications/misc/gpa/default.nix index a4889014412..cd7b724a1d7 100644 --- a/pkgs/applications/misc/gpa/default.nix +++ b/pkgs/applications/misc/gpa/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Graphical user interface for the GnuPG"; - homepage = https://www.gnupg.org/related_software/gpa/; + homepage = "https://www.gnupg.org/related_software/gpa/"; license = licenses.gpl3Plus; platforms = platforms.unix; }; diff --git a/pkgs/applications/misc/gpg-mdp/default.nix b/pkgs/applications/misc/gpg-mdp/default.nix index 9954ff660ad..cf3d6fe9e93 100644 --- a/pkgs/applications/misc/gpg-mdp/default.nix +++ b/pkgs/applications/misc/gpg-mdp/default.nix @@ -6,7 +6,7 @@ in stdenv.mkDerivation { pname = "gpg-mdp"; inherit version; meta = { - homepage = https://tamentis.com/projects/mdp/; + homepage = "https://tamentis.com/projects/mdp/"; license = [stdenv.lib.licenses.isc]; description = "Manage your passwords with GnuPG and a text editor"; }; diff --git a/pkgs/applications/misc/gphoto2/default.nix b/pkgs/applications/misc/gphoto2/default.nix index d06970e8d07..1235a41ffc7 100644 --- a/pkgs/applications/misc/gphoto2/default.nix +++ b/pkgs/applications/misc/gphoto2/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { digital cameras. Through libgphoto2, it supports PTP, MTP, and much more.. ''; - homepage = http://www.gphoto.org/; + homepage = "http://www.gphoto.org/"; license = licenses.gpl2Plus; platforms = platforms.unix; maintainers = [ maintainers.jcumming ]; diff --git a/pkgs/applications/misc/gphoto2/gphotofs.nix b/pkgs/applications/misc/gphoto2/gphotofs.nix index c1c2a44bd7f..668706ca389 100644 --- a/pkgs/applications/misc/gphoto2/gphotofs.nix +++ b/pkgs/applications/misc/gphoto2/gphotofs.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Fuse FS to mount a digital camera"; - homepage = http://www.gphoto.org/; + homepage = "http://www.gphoto.org/"; maintainers = [ maintainers.raskin ]; platforms = platforms.linux; license = with licenses; [ lgpl2 gpl2 ]; diff --git a/pkgs/applications/misc/gpsbabel/default.nix b/pkgs/applications/misc/gpsbabel/default.nix index 9d244ca18f3..ef4c732ef52 100644 --- a/pkgs/applications/misc/gpsbabel/default.nix +++ b/pkgs/applications/misc/gpsbabel/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { patches = [ (fetchpatch { - url = https://sources.debian.net/data/main/g/gpsbabel/1.5.3-2/debian/patches/use_minizip; + url = "https://sources.debian.net/data/main/g/gpsbabel/1.5.3-2/debian/patches/use_minizip"; sha256 = "03fpsmlx1wc48d1j405zkzp8j64hcp0z72islf4mk1immql3ibcr"; }) ]; @@ -69,7 +69,7 @@ stdenv.mkDerivation rec { process data that may (or may not be) placed on a map, such as waypoints, tracks, and routes. ''; - homepage = http://www.gpsbabel.org/; + homepage = "http://www.gpsbabel.org/"; license = licenses.gpl2Plus; maintainers = [ maintainers.rycee ]; platforms = platforms.all; diff --git a/pkgs/applications/misc/gpsbabel/gui.nix b/pkgs/applications/misc/gpsbabel/gui.nix new file mode 100644 index 00000000000..57eca9f47a5 --- /dev/null +++ b/pkgs/applications/misc/gpsbabel/gui.nix @@ -0,0 +1,49 @@ +{ stdenv, mkDerivation, qmake, qttools, qtwebkit, qttranslations, gpsbabel }: + +mkDerivation { + pname = "gpsbabel-gui"; + + inherit (gpsbabel) src version; + + sourceRoot = "source/gui"; + + nativeBuildInputs = [ qmake qttools ]; + buildInputs = [ qtwebkit ]; + + postPatch = '' + substituteInPlace mainwindow.cc \ + --replace "QApplication::applicationDirPath() + \"/" "\"" \ + --replace "QApplication::applicationDirPath() + '/' + " "" \ + --replace "translator.load(full_filename)" "translator.load(filename)" \ + --replace "gpsbabelfe_%1.qm" "$out/share/gpsbabel/translations/gpsbabelfe_%1.qm" \ + --replace "gpsbabel_%1.qm" "$out/share/gpsbabel/translations/gpsbabel_%1.qm" \ + --replace "qt_%1.qm" "${qttranslations}/translations/qt_%1.qm" + substituteInPlace formatload.cc \ + --replace "QApplication::applicationDirPath() + \"/" "\"" + substituteInPlace gpsbabel.desktop \ + --replace "gpsbabelfe-bin" "gpsbabelfe" + ''; + + preConfigure = '' + lrelease *.ts coretool/*.ts + ''; + + qtWrapperArgs = [ + "--prefix PATH : ${stdenv.lib.makeBinPath [ gpsbabel ]}" + ]; + + postInstall = '' + install -Dm755 objects/gpsbabelfe -t $out/bin + install -Dm644 gpsbabel.desktop -t $out/share/applications + install -Dm644 images/appicon.png $out/share/icons/hicolor/512x512/apps/gpsbabel.png + install -Dm644 *.qm coretool/*.qm -t $out/share/gpsbabel/translations + ''; + + meta = with stdenv.lib; { + description = "Qt-based GUI for gpsbabel"; + homepage = "http://www.gpsbabel.org/"; + license = licenses.gpl2; + maintainers = with maintainers; [ sikmir ]; + platforms = with platforms; linux; + }; +} diff --git a/pkgs/applications/misc/gpsprune/default.nix b/pkgs/applications/misc/gpsprune/default.nix index 9c0dc48d42e..63ca213c2c4 100644 --- a/pkgs/applications/misc/gpsprune/default.nix +++ b/pkgs/applications/misc/gpsprune/default.nix @@ -1,16 +1,16 @@ -{ fetchurl, stdenv, makeDesktopItem, makeWrapper, unzip, jre8 }: +{ fetchurl, stdenv, makeDesktopItem, makeWrapper, unzip, jdk11 }: stdenv.mkDerivation rec { pname = "gpsprune"; - version = "19.2"; + version = "20"; src = fetchurl { url = "https://activityworkshop.net/software/gpsprune/gpsprune_${version}.jar"; - sha256 = "1q2kpkkh75b9l1x7fkmv88s8k84gzcdnrg5sgf8ih0zrp49lawg9"; + sha256 = "1i9p6h98azgradrrkcwx18zwz4c6zkxp4bfykpa2imi1z3ry5q2b"; }; nativeBuildInputs = [ makeWrapper ]; - buildInputs = [ jre8 ]; + buildInputs = [ jdk11 ]; desktopItem = makeDesktopItem { name = "gpsprune"; @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { buildCommand = '' mkdir -p $out/bin $out/share/java cp -v $src $out/share/java/gpsprune.jar - makeWrapper ${jre8}/bin/java $out/bin/gpsprune \ + makeWrapper ${jdk11}/bin/java $out/bin/gpsprune \ --add-flags "-jar $out/share/java/gpsprune.jar" mkdir -p $out/share/applications cp $desktopItem/share/applications"/"* $out/share/applications @@ -35,7 +35,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Application for viewing, editing and converting GPS coordinate data"; - homepage = https://activityworkshop.net/software/gpsprune/; + homepage = "https://activityworkshop.net/software/gpsprune/"; license = licenses.gpl2Plus; maintainers = [ maintainers.rycee ]; platforms = platforms.all; diff --git a/pkgs/applications/misc/gpx-viewer/default.nix b/pkgs/applications/misc/gpx-viewer/default.nix index 04ab062c1a1..64296688c93 100644 --- a/pkgs/applications/misc/gpx-viewer/default.nix +++ b/pkgs/applications/misc/gpx-viewer/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { buildInputs = [ gdl libchamplain gnome3.adwaita-icon-theme libxml2 ]; meta = with stdenv.lib; { - homepage = https://blog.sarine.nl/tag/gpxviewer/; + homepage = "https://blog.sarine.nl/tag/gpxviewer/"; description = "Simple tool to visualize tracks and waypoints stored in a gpx file"; platforms = with platforms; linux; license = licenses.gpl2Plus; diff --git a/pkgs/applications/misc/gpx/default.nix b/pkgs/applications/misc/gpx/default.nix index a341a212a37..dcf022fc445 100644 --- a/pkgs/applications/misc/gpx/default.nix +++ b/pkgs/applications/misc/gpx/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { meta = { description = "Gcode to x3g conversion postprocessor"; - homepage = https://github.com/markwal/GPX/; + homepage = "https://github.com/markwal/GPX/"; license = stdenv.lib.licenses.gpl2; platforms = stdenv.lib.platforms.unix; maintainers = [ stdenv.lib.maintainers.leo60228 ]; diff --git a/pkgs/applications/misc/gpxsee/default.nix b/pkgs/applications/misc/gpxsee/default.nix index 907a198ee3d..c519bf63e09 100644 --- a/pkgs/applications/misc/gpxsee/default.nix +++ b/pkgs/applications/misc/gpxsee/default.nix @@ -2,19 +2,19 @@ mkDerivation rec { pname = "gpxsee"; - version = "7.25"; + version = "7.29"; src = fetchFromGitHub { owner = "tumic0"; repo = "GPXSee"; rev = version; - sha256 = "0lml3hz2zxljl9j5wnh7bn9bj8k9v3wf6bk3g77x9nnarsmw0fcx"; + sha256 = "sha256-OTKyxEu7RZZy3JBHTM7YoH+G4lhoRfb1INLtQEKC5p4="; }; nativeBuildInputs = [ qmake qttools ]; preConfigure = '' - lrelease lang/*.ts + lrelease gpxsee.pro ''; postInstall = with stdenv; lib.optionalString isDarwin '' diff --git a/pkgs/applications/misc/gramps/default.nix b/pkgs/applications/misc/gramps/default.nix index 84be50ccb5e..e5a2b87f16e 100644 --- a/pkgs/applications/misc/gramps/default.nix +++ b/pkgs/applications/misc/gramps/default.nix @@ -58,7 +58,7 @@ in buildPythonApplication rec { meta = with stdenv.lib; { description = "Genealogy software"; - homepage = https://gramps-project.org; + homepage = "https://gramps-project.org"; license = licenses.gpl2; maintainers = with maintainers; [ joncojonathan ]; }; diff --git a/pkgs/applications/misc/green-pdfviewer/default.nix b/pkgs/applications/misc/green-pdfviewer/default.nix index d86db7adb9d..4e888f4faac 100644 --- a/pkgs/applications/misc/green-pdfviewer/default.nix +++ b/pkgs/applications/misc/green-pdfviewer/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation { ''; meta = with stdenv.lib; { - homepage = https://github.com/schandinat/green/; + homepage = "https://github.com/schandinat/green/"; description = "Viewer for PDF files, uses SDL and libpoppler"; platforms = platforms.unix; diff --git a/pkgs/applications/misc/gremlin-console/default.nix b/pkgs/applications/misc/gremlin-console/default.nix index 87e636b9c03..a4932943fa2 100644 --- a/pkgs/applications/misc/gremlin-console/default.nix +++ b/pkgs/applications/misc/gremlin-console/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = https://tinkerpop.apache.org/; + homepage = "https://tinkerpop.apache.org/"; description = "Console of the Apache TinkerPop graph computing framework"; license = licenses.asl20; maintainers = [ maintainers.lewo ]; diff --git a/pkgs/applications/misc/grip/default.nix b/pkgs/applications/misc/grip/default.nix index b70901bac81..e64ae08037a 100644 --- a/pkgs/applications/misc/grip/default.nix +++ b/pkgs/applications/misc/grip/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { meta = { description = "GTK-based audio CD player/ripper"; - homepage = http://nostatic.org/grip; + homepage = "http://nostatic.org/grip"; license = stdenv.lib.licenses.gpl2; maintainers = with stdenv.lib.maintainers; [ marcweber peti ]; diff --git a/pkgs/applications/misc/gsctl/default.nix b/pkgs/applications/misc/gsctl/default.nix index b84053b94ad..e80f43f5bd9 100644 --- a/pkgs/applications/misc/gsctl/default.nix +++ b/pkgs/applications/misc/gsctl/default.nix @@ -15,7 +15,7 @@ buildGoPackage rec { meta = with stdenv.lib; { description = "The Giant Swarm command line interface"; - homepage = https://github.com/giantswarm/gsctl; + homepage = "https://github.com/giantswarm/gsctl"; license = licenses.asl20; maintainers = with maintainers; [ joesalisbury ]; }; diff --git a/pkgs/applications/misc/gsimplecal/default.nix b/pkgs/applications/misc/gsimplecal/default.nix index ea78331e476..e83e349b21c 100644 --- a/pkgs/applications/misc/gsimplecal/default.nix +++ b/pkgs/applications/misc/gsimplecal/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { preConfigure = "./autogen.sh"; meta = { - homepage = http://dmedvinsky.github.io/gsimplecal/; + homepage = "http://dmedvinsky.github.io/gsimplecal/"; description = "Lightweight calendar application written in C++ using GTK"; longDescription = '' gsimplecal was intentionally made for use with tint2 panel in the diff --git a/pkgs/applications/misc/gtk2fontsel/default.nix b/pkgs/applications/misc/gtk2fontsel/default.nix index 9b8d6a7f976..21ad7d757a1 100644 --- a/pkgs/applications/misc/gtk2fontsel/default.nix +++ b/pkgs/applications/misc/gtk2fontsel/default.nix @@ -20,8 +20,8 @@ stdenv.mkDerivation rec { Font selection tool similar to xfontsel implemented using GTK 2. Trivial, but useful nonetheless. ''; - homepage = http://gtk2fontsel.sourceforge.net/; - downloadPage = https://sourceforge.net/projects/gtk2fontsel/; + homepage = "http://gtk2fontsel.sourceforge.net/"; + downloadPage = "https://sourceforge.net/projects/gtk2fontsel/"; license = licenses.gpl2; maintainers = [ maintainers.prikhi ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/gv/default.nix b/pkgs/applications/misc/gv/default.nix index f94f8f5dd70..accf62c0c46 100644 --- a/pkgs/applications/misc/gv/default.nix +++ b/pkgs/applications/misc/gv/default.nix @@ -32,7 +32,7 @@ stdenv.mkDerivation { doCheck = true; meta = { - homepage = https://www.gnu.org/software/gv/; + homepage = "https://www.gnu.org/software/gv/"; description = "PostScript/PDF document viewer"; longDescription = '' diff --git a/pkgs/applications/misc/gxneur/default.nix b/pkgs/applications/misc/gxneur/default.nix index c44523a8b75..adabe22c6b6 100644 --- a/pkgs/applications/misc/gxneur/default.nix +++ b/pkgs/applications/misc/gxneur/default.nix @@ -4,7 +4,7 @@ stdenv.mkDerivation { name = "gxneur-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/0.20.0/gxneur_0.20.0.orig.tar.gz"; sha256 = "0avmhdcj0hpr55fc0iih8fjykmdhn34c8mwdnqvl8jh4nhxxchxr"; }; diff --git a/pkgs/applications/misc/havoc/default.nix b/pkgs/applications/misc/havoc/default.nix new file mode 100644 index 00000000000..fc4cc680ca4 --- /dev/null +++ b/pkgs/applications/misc/havoc/default.nix @@ -0,0 +1,35 @@ +{ stdenv, fetchFromGitHub +, pkgconfig, libxkbcommon, wayland, wayland-protocols }: + +stdenv.mkDerivation rec { + + pname = "havoc"; + version = "2019-12-08"; + + src = fetchFromGitHub { + owner = "ii8"; + repo = pname; + rev = "507446c92ed7bf8380a58c5ba2b14aba5cdf412c"; + sha256 = "13nfnan1gmy4cqxmqv0rc8a4mcb1g62v73d56hy7z2psv4am7a09"; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ libxkbcommon wayland wayland-protocols ]; + + dontConfigure = true; + + installFlags = [ "PREFIX=$$out" ]; + + postInstall = '' + install -D -m 644 havoc.cfg -t $out/etc/${pname}/ + install -D -m 644 README.md -t $out/share/doc/${pname}-${version}/ + ''; + + meta = with stdenv.lib; { + description = "A minimal terminal emulator for Wayland"; + homepage = "https://github.com/ii8/havoc"; + license = with licenses; [ mit publicDomain ]; + platforms = with platforms; unix; + maintainers = with maintainers; [ AndersonTorres ]; + }; +} diff --git a/pkgs/applications/misc/haxor-news/default.nix b/pkgs/applications/misc/haxor-news/default.nix index 7353078600d..98f84ca68b8 100644 --- a/pkgs/applications/misc/haxor-news/default.nix +++ b/pkgs/applications/misc/haxor-news/default.nix @@ -35,7 +35,7 @@ buildPythonApplication rec { ''; meta = with stdenv.lib; { - homepage = https://github.com/donnemartin/haxor-news; + homepage = "https://github.com/donnemartin/haxor-news"; description = "Browse Hacker News like a haxor"; license = licenses.asl20; maintainers = with maintainers; [ matthiasbeyer ]; diff --git a/pkgs/applications/misc/hdate/default.nix b/pkgs/applications/misc/hdate/default.nix index 989dfb886ec..c97a67c0bd3 100644 --- a/pkgs/applications/misc/hdate/default.nix +++ b/pkgs/applications/misc/hdate/default.nix @@ -9,7 +9,7 @@ stdenv.mkDerivation rec { }; meta = { description = "Hebrew calendar and solar astronomical times library and utilities"; - homepage = https://sourceforge.net/projects/libhdate/; + homepage = "https://sourceforge.net/projects/libhdate/"; license = stdenv.lib.licenses.gpl3; maintainers = with stdenv.lib.maintainers; [ CharlesHD ]; }; diff --git a/pkgs/applications/misc/hello/default.nix b/pkgs/applications/misc/hello/default.nix index 8bae8ce373c..32c8c696730 100644 --- a/pkgs/applications/misc/hello/default.nix +++ b/pkgs/applications/misc/hello/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { GNU Hello is a program that prints "Hello, world!" when you run it. It is fully customizable. ''; - homepage = https://www.gnu.org/software/hello/manual/; + homepage = "https://www.gnu.org/software/hello/manual/"; changelog = "https://git.savannah.gnu.org/cgit/hello.git/plain/NEWS?h=v${version}"; license = licenses.gpl3Plus; maintainers = [ maintainers.eelco ]; diff --git a/pkgs/applications/misc/hivemind/default.nix b/pkgs/applications/misc/hivemind/default.nix index b3fb84340f2..8a8f80f5797 100644 --- a/pkgs/applications/misc/hivemind/default.nix +++ b/pkgs/applications/misc/hivemind/default.nix @@ -17,7 +17,7 @@ buildGoPackage rec { }; meta = with stdenv.lib; { - homepage = https://github.com/DarthSim/; + homepage = "https://github.com/DarthSim/"; description = "Process manager for Procfile-based applications"; license = with licenses; [ mit ]; maintainers = [ maintainers.sveitser ]; diff --git a/pkgs/applications/misc/houdini/runtime.nix b/pkgs/applications/misc/houdini/runtime.nix index 279791561d9..51b08af23c5 100644 --- a/pkgs/applications/misc/houdini/runtime.nix +++ b/pkgs/applications/misc/houdini/runtime.nix @@ -78,7 +78,7 @@ stdenv.mkDerivation rec { ''; meta = { description = "3D animation application software"; - homepage = https://www.sidefx.com; + homepage = "https://www.sidefx.com"; license = stdenv.lib.licenses.unfree; platforms = stdenv.lib.platforms.linux; maintainers = [ stdenv.lib.maintainers.canndrew ]; diff --git a/pkgs/applications/misc/hovercraft/default.nix b/pkgs/applications/misc/hovercraft/default.nix index ba23078bba9..edb8114e4a4 100644 --- a/pkgs/applications/misc/hovercraft/default.nix +++ b/pkgs/applications/misc/hovercraft/default.nix @@ -28,7 +28,7 @@ buildPythonApplication rec { meta = with lib; { description = "Makes impress.js presentations from reStructuredText"; - homepage = https://github.com/regebro/hovercraft; + homepage = "https://github.com/regebro/hovercraft"; license = licenses.mit; maintainers = with maintainers; [ goibhniu makefu ]; }; diff --git a/pkgs/applications/misc/hr/default.nix b/pkgs/applications/misc/hr/default.nix index 437c42b0331..91a66bc7378 100644 --- a/pkgs/applications/misc/hr/default.nix +++ b/pkgs/applications/misc/hr/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = https://github.com/LuRsT/hr; + homepage = "https://github.com/LuRsT/hr"; description = "A horizontal bar for your terminal"; license = licenses.mit; maintainers = [ maintainers.matthiasbeyer ]; diff --git a/pkgs/applications/misc/hstr/default.nix b/pkgs/applications/misc/hstr/default.nix index 31ecfccd584..b1e740fb760 100644 --- a/pkgs/applications/misc/hstr/default.nix +++ b/pkgs/applications/misc/hstr/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = https://github.com/dvorka/hstr; + homepage = "https://github.com/dvorka/hstr"; description = "Shell history suggest box - easily view, navigate, search and use your command history"; license = stdenv.lib.licenses.asl20; maintainers = [ stdenv.lib.maintainers.matthiasbeyer ]; diff --git a/pkgs/applications/misc/hubstaff/default.nix b/pkgs/applications/misc/hubstaff/default.nix index b2997ece5d5..bbe05e0396b 100644 --- a/pkgs/applications/misc/hubstaff/default.nix +++ b/pkgs/applications/misc/hubstaff/default.nix @@ -58,7 +58,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Time tracking software"; - homepage = https://hubstaff.com/; + homepage = "https://hubstaff.com/"; license = licenses.unfree; platforms = [ "x86_64-linux" ]; maintainers = with maintainers; [ michalrus srghma ]; diff --git a/pkgs/applications/misc/hugo/default.nix b/pkgs/applications/misc/hugo/default.nix index ab240aee12e..e58c933b84b 100644 --- a/pkgs/applications/misc/hugo/default.nix +++ b/pkgs/applications/misc/hugo/default.nix @@ -2,7 +2,7 @@ buildGoModule rec { pname = "hugo"; - version = "0.67.0"; + version = "0.69.2"; goPackagePath = "github.com/gohugoio/hugo"; @@ -10,10 +10,10 @@ buildGoModule rec { owner = "gohugoio"; repo = pname; rev = "v${version}"; - sha256 = "0rgwrcs1ydwccyf714zpn3427p8zlwynn0q1v8k5j63zxr91jdbq"; + sha256 = "0bw31264q8w2r3fm3g2qjh9531nmbn942vl5rjf2cjff25c0d4ji"; }; - modSha256 = "1f320zbqnv2ybsp3qmlgn3rsjgp2zdb24qjd3gcys30mw48cx3na"; + modSha256 = "1i1mw8jcklmnsqawc1jkgw4h1dxjxb9zaf2p8pgfzxzpy5cp6qkl"; buildFlags = [ "-tags" "extended" ]; diff --git a/pkgs/applications/misc/hyper/default.nix b/pkgs/applications/misc/hyper/default.nix index f21675e60b2..1535b1a2568 100644 --- a/pkgs/applications/misc/hyper/default.nix +++ b/pkgs/applications/misc/hyper/default.nix @@ -33,7 +33,7 @@ stdenv.mkDerivation rec { dontPatchELF = true; meta = with lib; { description = "A terminal built on web technologies"; - homepage = https://hyper.is/; + homepage = "https://hyper.is/"; maintainers = with maintainers; [ puffnfresh ]; license = licenses.mit; platforms = [ "x86_64-linux" ]; diff --git a/pkgs/applications/misc/icesl/default.nix b/pkgs/applications/misc/icesl/default.nix index 3ee4fd8259a..7b642dffa50 100644 --- a/pkgs/applications/misc/icesl/default.nix +++ b/pkgs/applications/misc/icesl/default.nix @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "IceSL is a GPU-accelerated procedural modeler and slicer for 3D printing."; - homepage = http://shapeforge.loria.fr/icesl/index.html; + homepage = "http://shapeforge.loria.fr/icesl/index.html"; license = licenses.inria-icesl; platforms = [ "i686-linux" "x86_64-linux" ]; maintainers = with maintainers; [ mgttlinger ]; diff --git a/pkgs/applications/misc/ikiwiki/default.nix b/pkgs/applications/misc/ikiwiki/default.nix index 8b908f1f9cf..1515b4b0f99 100644 --- a/pkgs/applications/misc/ikiwiki/default.nix +++ b/pkgs/applications/misc/ikiwiki/default.nix @@ -83,7 +83,7 @@ stdenv.mkDerivation { meta = { description = "Wiki compiler, storing pages and history in a RCS"; - homepage = http://ikiwiki.info/; + homepage = "http://ikiwiki.info/"; license = stdenv.lib.licenses.gpl2Plus; platforms = stdenv.lib.platforms.linux; maintainers = [ stdenv.lib.maintainers.peti ]; diff --git a/pkgs/applications/misc/img2pdf/default.nix b/pkgs/applications/misc/img2pdf/default.nix index 902e9268f72..972e3b7e7b6 100644 --- a/pkgs/applications/misc/img2pdf/default.nix +++ b/pkgs/applications/misc/img2pdf/default.nix @@ -4,11 +4,11 @@ with python3Packages; buildPythonApplication rec { pname = "img2pdf"; - version = "0.3.3"; + version = "0.3.4"; src = fetchPypi { inherit pname version; - sha256 = "1ksn33j9d9df04n4jx7dli70d700rafbm37gjaz6lwsswrzc2xwx"; + sha256 = "0jgfk191vvxn2r6bbdknvw5v510mx9g0xrgnmcghaxkv65zjnj0b"; }; doCheck = false; # needs pdfrw @@ -19,7 +19,7 @@ buildPythonApplication rec { meta = with stdenv.lib; { description = "Convert images to PDF via direct JPEG inclusion"; - homepage = https://gitlab.mister-muffin.de/josch/img2pdf; + homepage = "https://gitlab.mister-muffin.de/josch/img2pdf"; license = licenses.lgpl2; platforms = platforms.unix; maintainers = [ maintainers.veprbl ]; diff --git a/pkgs/applications/misc/ipmicfg/default.nix b/pkgs/applications/misc/ipmicfg/default.nix index 7daa2704e22..f561f15ab3e 100644 --- a/pkgs/applications/misc/ipmicfg/default.nix +++ b/pkgs/applications/misc/ipmicfg/default.nix @@ -2,12 +2,12 @@ stdenv.mkDerivation rec { pname = "ipmicfg"; - version = "1.29.0"; - buildVersion = "181029"; + version = "1.30.0"; + buildVersion = "190710"; src = fetchzip { - url = "ftp://ftp.supermicro.com/utility/IPMICFG/IPMICFG_${version}_build.${buildVersion}.zip"; - sha256 = "18nljs4xg6hffahyd0d5zlg1jhbwl7zr9ym925bkzwcnrkgqs2v3"; + url = "https://www.supermicro.com/wftp/utility/IPMICFG/IPMICFG_${version}_build.${buildVersion}.zip"; + sha256 = "0srkzivxa4qlf3x9zdkri7xfq7kjj4fsmn978vzmzsvbxkqswd5a"; extraPostFetch = "chmod u+rwX,go-rwx+X $out/"; }; diff --git a/pkgs/applications/misc/iterm2/default.nix b/pkgs/applications/misc/iterm2/default.nix index cabe306defc..e273eda45c3 100644 --- a/pkgs/applications/misc/iterm2/default.nix +++ b/pkgs/applications/misc/iterm2/default.nix @@ -39,7 +39,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A replacement for Terminal and the successor to iTerm"; - homepage = https://www.iterm2.com/; + homepage = "https://www.iterm2.com/"; license = licenses.gpl2; maintainers = with maintainers; [ tricktron ]; platforms = platforms.darwin; diff --git a/pkgs/applications/misc/jbidwatcher/default.nix b/pkgs/applications/misc/jbidwatcher/default.nix index c8951059d4c..2d7dca36d20 100644 --- a/pkgs/applications/misc/jbidwatcher/default.nix +++ b/pkgs/applications/misc/jbidwatcher/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = http://www.jbidwatcher.com/; + homepage = "http://www.jbidwatcher.com/"; description = "Monitor and snipe Ebay auctions"; license = "LGPL"; diff --git a/pkgs/applications/misc/jekyll/basic/Gemfile.lock b/pkgs/applications/misc/jekyll/basic/Gemfile.lock index 332f1bbf197..b421ea71795 100644 --- a/pkgs/applications/misc/jekyll/basic/Gemfile.lock +++ b/pkgs/applications/misc/jekyll/basic/Gemfile.lock @@ -98,4 +98,4 @@ DEPENDENCIES jemoji BUNDLED WITH - 1.17.3 + 2.1.4 diff --git a/pkgs/applications/misc/jekyll/default.nix b/pkgs/applications/misc/jekyll/default.nix index 4d4dd248bc5..111b0a8867a 100644 --- a/pkgs/applications/misc/jekyll/default.nix +++ b/pkgs/applications/misc/jekyll/default.nix @@ -46,7 +46,7 @@ in bundlerApp { web server. Jekyll is the engine behind GitHub Pages, which you can use to host sites right from your GitHub repositories. ''; - homepage = https://jekyllrb.com/; + homepage = "https://jekyllrb.com/"; license = licenses.mit; maintainers = with maintainers; [ primeos pesterhazy ]; platforms = platforms.unix; diff --git a/pkgs/applications/misc/jekyll/full/Gemfile.lock b/pkgs/applications/misc/jekyll/full/Gemfile.lock index ebde3c93e21..51a835e4b9f 100644 --- a/pkgs/applications/misc/jekyll/full/Gemfile.lock +++ b/pkgs/applications/misc/jekyll/full/Gemfile.lock @@ -149,4 +149,4 @@ DEPENDENCIES yajl-ruby (~> 1.4) BUNDLED WITH - 1.17.3 + 2.1.4 diff --git a/pkgs/applications/misc/jigdo/default.nix b/pkgs/applications/misc/jigdo/default.nix index 3561fcde839..134354de40b 100644 --- a/pkgs/applications/misc/jigdo/default.nix +++ b/pkgs/applications/misc/jigdo/default.nix @@ -5,13 +5,13 @@ stdenv.mkDerivation { # 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_0.7.3.orig.tar.gz"; sha256 = "1qvqzgzb0dzq82fa1ffs6hyij655rajnfwkljk1y0mnkygnha1xv"; }; patches = [ (fetchurl { - url = http://ftp.de.debian.org/debian/pool/main/j/jigdo/jigdo_0.7.3-4.diff.gz; + url = "http://ftp.de.debian.org/debian/pool/main/j/jigdo/jigdo_0.7.3-4.diff.gz"; sha256 = "03zsh57fijciiv23lf55k6fbfhhzm866xjhx83x54v5s1g2h6m8y"; }) ./sizewidth.patch @@ -23,7 +23,7 @@ stdenv.mkDerivation { meta = { description = "Download utility that can fetch files from several sources simultaneously"; - homepage = http://atterer.net/jigdo/; + homepage = "http://atterer.net/jigdo/"; license = stdenv.lib.licenses.gpl2; platforms = stdenv.lib.platforms.unix; }; diff --git a/pkgs/applications/misc/joplin-desktop/default.nix b/pkgs/applications/misc/joplin-desktop/default.nix index 4219851fc9d..5787836487b 100644 --- a/pkgs/applications/misc/joplin-desktop/default.nix +++ b/pkgs/applications/misc/joplin-desktop/default.nix @@ -2,7 +2,7 @@ let pname = "joplin-desktop"; - version = "1.0.179"; + version = "1.0.200"; desktopItem = makeDesktopItem { name = "Joplin"; exec = "joplin-desktop"; @@ -13,7 +13,7 @@ in appimageTools.wrapType2 rec { name = "${pname}-${version}"; src = fetchurl { url = "https://github.com/laurent22/joplin/releases/download/v${version}/Joplin-${version}.AppImage"; - sha256 = "0v7d5wzwiznl755pl6jfg33g6jxr1cbm9j13jpbmfi497hj8w82k"; + sha256 = "14gwv8i6dprvl96mifadq0zj77a82rww8xd5bmzm8ql6sidi2216"; }; @@ -40,9 +40,9 @@ in appimageTools.wrapType2 rec { applications directly or from your own text editor. The notes are in Markdown format. ''; - homepage = https://joplin.cozic.net/; + homepage = "https://joplinapp.org"; license = licenses.mit; - maintainers = with maintainers; [ rafaelgg raquelgb ]; + maintainers = with maintainers; [ hugoreeves rafaelgg raquelgb ]; platforms = [ "x86_64-linux" ]; }; } diff --git a/pkgs/applications/misc/josm/default.nix b/pkgs/applications/misc/josm/default.nix index 4a47437b249..eec7a066a88 100644 --- a/pkgs/applications/misc/josm/default.nix +++ b/pkgs/applications/misc/josm/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "josm"; - version = "15937"; + version = "16239"; src = fetchurl { url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar"; - sha256 = "1mwrmhs5k3b3pvl3cmq78h8gh8zna06l4sym1a4vvlcx6j26a01f"; + sha256 = "041n81mnd587043f8wwjv8ckbx0hlsqf3pc7hzbns1y89xdghms1"; }; buildInputs = [ jdk11 makeWrapper ]; @@ -38,7 +38,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "An extensible editor for OpenStreetMap"; - homepage = https://josm.openstreetmap.de/; + homepage = "https://josm.openstreetmap.de/"; license = licenses.gpl2Plus; maintainers = [ maintainers.rycee ]; platforms = platforms.all; diff --git a/pkgs/applications/misc/jotta-cli/default.nix b/pkgs/applications/misc/jotta-cli/default.nix index 48f369d3029..70ca28b4678 100644 --- a/pkgs/applications/misc/jotta-cli/default.nix +++ b/pkgs/applications/misc/jotta-cli/default.nix @@ -5,10 +5,10 @@ let in stdenv.mkDerivation rec { pname = "jotta-cli"; - version = "0.6.21799"; + version = "0.6.24251"; src = fetchzip { url = "https://repo.jotta.us/archives/linux/${arch}/jotta-cli-${version}_linux_${arch}.tar.gz"; - sha256 = "19axrcfmycmdfgphkfwl9qgwd9xj8g37gmwi4ynb45w7nhfid5vm"; + sha256 = "0f26fg5fqpz0f6jxp72cj5f2kf76jah5iaqlqsl87250y0hm330g"; stripRoot = false; }; @@ -25,8 +25,8 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Jottacloud CLI"; - homepage = https://www.jottacloud.com/; - downloadPage = https://repo.jotta.us/archives/linux/; + homepage = "https://www.jottacloud.com/"; + downloadPage = "https://repo.jotta.us/archives/linux/"; maintainers = with maintainers; [ evenbrenden ]; license = licenses.unfree; platforms = [ "x86_64-linux" ]; diff --git a/pkgs/applications/misc/jp2a/default.nix b/pkgs/applications/misc/jp2a/default.nix index 1aece5eb4e2..d30e5d96df4 100644 --- a/pkgs/applications/misc/jp2a/default.nix +++ b/pkgs/applications/misc/jp2a/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { buildInputs = [ libjpeg ]; meta = with stdenv.lib; { - homepage = https://csl.name/jp2a/; + homepage = "https://csl.name/jp2a/"; description = "A small utility that converts JPG images to ASCII"; license = licenses.gpl2; platforms = platforms.unix; diff --git a/pkgs/applications/misc/jrnl/default.nix b/pkgs/applications/misc/jrnl/default.nix index 3260f6a5069..992b981c003 100644 --- a/pkgs/applications/misc/jrnl/default.nix +++ b/pkgs/applications/misc/jrnl/default.nix @@ -22,7 +22,7 @@ buildPythonApplication rec { doCheck = false; meta = with stdenv.lib; { - homepage = http://maebert.github.io/jrnl/; + homepage = "http://maebert.github.io/jrnl/"; description = "A simple command line journal application that stores your journal in a plain text file"; license = licenses.mit; maintainers = with maintainers; [ zalakain ]; diff --git a/pkgs/applications/misc/k2pdfopt/default.nix b/pkgs/applications/misc/k2pdfopt/default.nix index 69d78575e2a..8899654cc4c 100644 --- a/pkgs/applications/misc/k2pdfopt/default.nix +++ b/pkgs/applications/misc/k2pdfopt/default.nix @@ -73,7 +73,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Optimizes PDF/DJVU files for mobile e-readers (e.g. the Kindle) and smartphones"; - homepage = http://www.willus.com/k2pdfopt; + homepage = "http://www.willus.com/k2pdfopt"; license = licenses.gpl3; platforms = platforms.linux; maintainers = with maintainers; [ bosu danielfullmer ]; diff --git a/pkgs/applications/misc/kanboard/default.nix b/pkgs/applications/misc/kanboard/default.nix index b790fb9e6c4..e6193d43563 100644 --- a/pkgs/applications/misc/kanboard/default.nix +++ b/pkgs/applications/misc/kanboard/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "kanboard"; - version = "1.2.13"; + version = "1.2.14"; src = fetchFromGitHub { owner = "kanboard"; repo = "kanboard"; rev = "v${version}"; - sha256 = "0mm5sx323v1rwykd1dhvk4d3ipgvgvi3wvhrlavbja3lgay3mdwk"; + sha256 = "11bwajzidnyagdyip7i8rwni1f66acv0k4lybdm0mc4195anivjh"; }; dontBuild = true; @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Kanban project management software"; - homepage = https://kanboard.net; + homepage = "https://kanboard.net"; license = licenses.mit; maintainers = with maintainers; [ fpletz lheckemann ]; }; diff --git a/pkgs/applications/misc/kdeconnect/default.nix b/pkgs/applications/misc/kdeconnect/default.nix index e8bdcb37118..c3d2feb2fed 100644 --- a/pkgs/applications/misc/kdeconnect/default.nix +++ b/pkgs/applications/misc/kdeconnect/default.nix @@ -44,7 +44,7 @@ mkDerivation rec { meta = with lib; { description = "KDE Connect provides several features to integrate your phone and your computer"; - homepage = https://community.kde.org/KDEConnect; + homepage = "https://community.kde.org/KDEConnect"; license = with licenses; [ gpl2 ]; maintainers = with maintainers; [ fridh ]; }; diff --git a/pkgs/applications/misc/keepass-plugins/keepasshttp/default.nix b/pkgs/applications/misc/keepass-plugins/keepasshttp/default.nix index 76ea9df78c2..f9dbf14624f 100644 --- a/pkgs/applications/misc/keepass-plugins/keepasshttp/default.nix +++ b/pkgs/applications/misc/keepass-plugins/keepasshttp/default.nix @@ -17,7 +17,7 @@ let meta = { description = "KeePass plugin to expose password entries securely (256bit AES/CBC) over HTTP"; - homepage = https://github.com/pfn/keepasshttp; + homepage = "https://github.com/pfn/keepasshttp"; platforms = with stdenv.lib.platforms; linux; license = stdenv.lib.licenses.gpl3; }; diff --git a/pkgs/applications/misc/keepass-plugins/keepassrpc/default.nix b/pkgs/applications/misc/keepass-plugins/keepassrpc/default.nix index 562835159eb..3d41c45f6dc 100644 --- a/pkgs/applications/misc/keepass-plugins/keepassrpc/default.nix +++ b/pkgs/applications/misc/keepass-plugins/keepassrpc/default.nix @@ -12,7 +12,7 @@ let meta = with stdenv.lib; { description = "The KeePassRPC plugin that needs to be installed inside KeePass in order for Kee to be able to connect your browser to your passwords"; - homepage = https://github.com/kee-org/keepassrpc; + homepage = "https://github.com/kee-org/keepassrpc"; platforms = [ "x86_64-linux" ]; license = licenses.gpl2; maintainers = with maintainers; [ mjanczyk svsdep mgregoire ]; diff --git a/pkgs/applications/misc/keepass/default.nix b/pkgs/applications/misc/keepass/default.nix index b954d2d3cdb..1d668e039bd 100644 --- a/pkgs/applications/misc/keepass/default.nix +++ b/pkgs/applications/misc/keepass/default.nix @@ -107,7 +107,7 @@ with builtins; buildDotnetPackage rec { meta = { description = "GUI password manager with strong cryptography"; - homepage = http://www.keepass.info/; + homepage = "http://www.keepass.info/"; maintainers = with stdenv.lib.maintainers; [ amorsillo obadz joncojonathan jraygauthier ]; platforms = with stdenv.lib.platforms; all; license = stdenv.lib.licenses.gpl2; diff --git a/pkgs/applications/misc/keepassx/2.0.nix b/pkgs/applications/misc/keepassx/2.0.nix index 36734a97516..fdd11db509f 100644 --- a/pkgs/applications/misc/keepassx/2.0.nix +++ b/pkgs/applications/misc/keepassx/2.0.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { meta = { description = "Qt password manager compatible with its Win32 and Pocket PC versions"; - homepage = https://www.keepassx.org/; + homepage = "https://www.keepassx.org/"; license = stdenv.lib.licenses.gpl2; maintainers = with stdenv.lib.maintainers; [ qknight ]; platforms = with stdenv.lib.platforms; linux; diff --git a/pkgs/applications/misc/keepassx/community.nix b/pkgs/applications/misc/keepassx/community.nix index c6bcd56167c..469b4cf5ea6 100644 --- a/pkgs/applications/misc/keepassx/community.nix +++ b/pkgs/applications/misc/keepassx/community.nix @@ -1,4 +1,10 @@ -{ stdenv, fetchFromGitHub, cmake, makeWrapper, qttools, darwin +{ stdenv +, fetchFromGitHub +, fetchpatch +, cmake +, makeWrapper +, qttools +, darwin , curl , glibcLocales @@ -33,13 +39,13 @@ with stdenv.lib; stdenv.mkDerivation rec { pname = "keepassxc"; - version = "2.5.2"; + version = "2.5.4"; src = fetchFromGitHub { owner = "keepassxreboot"; repo = "keepassxc"; rev = version; - sha256 = "0z5bd17qaq7zpv96gw6qwv6rb4xx7xjq86ss6wm5zskcrraf7r7n"; + sha256 = "1xih9q1pxszalc0l29fmjxwn1vrrrrbnhc8gmi8brw5sclhbs6bh"; }; NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isClang [ @@ -57,6 +63,11 @@ stdenv.mkDerivation rec { patches = [ ./darwin.patch + # use wl-copy on Wayland - can be dropped with the next version update + (fetchpatch { + url = "https://github.com/keepassxreboot/keepassxc/commit/6128e5d58294f26411160f44da91087ebe7f4b07.patch"; + sha256 = "16q0h7kijqjdbskmk4ar6p3g8vcxr0bq1zrlq2bk16pk10nv4bh1"; + }) ]; cmakeFlags = [ @@ -79,7 +90,8 @@ stdenv.mkDerivation rec { export LC_ALL="en_US.UTF-8" export QT_QPA_PLATFORM=offscreen export QT_PLUGIN_PATH="${qtbase.bin}/${qtbase.qtPluginPrefix}" - make test ARGS+="-E testgui --output-on-failure" + # testcli and testgui are flaky - skip them both + make test ARGS+="-E 'testcli|testgui' --output-on-failure" ''; nativeBuildInputs = [ cmake wrapQtAppsHook qttools ]; @@ -114,9 +126,9 @@ stdenv.mkDerivation rec { meta = { description = "Password manager to store your passwords safely and auto-type them into your everyday websites and applications"; longDescription = "A community fork of KeePassX, which is itself a port of KeePass Password Safe. The goal is to extend and improve KeePassX with new features and bugfixes to provide a feature-rich, fully cross-platform and modern open-source password manager. Accessible via native cross-platform GUI, CLI, and browser integration with the KeePassXC Browser Extension (https://github.com/keepassxreboot/keepassxc-browser)."; - homepage = https://keepassxc.org/; + homepage = "https://keepassxc.org/"; license = licenses.gpl2; - maintainers = with maintainers; [ jonafato ]; + maintainers = with maintainers; [ jonafato turion ]; platforms = platforms.linux ++ platforms.darwin; }; } diff --git a/pkgs/applications/misc/keepassx/darwin.patch b/pkgs/applications/misc/keepassx/darwin.patch index 6232d1118a7..95ca5d4587f 100644 --- a/pkgs/applications/misc/keepassx/darwin.patch +++ b/pkgs/applications/misc/keepassx/darwin.patch @@ -6,10 +6,10 @@ index 74b1a7ff..0a713a32 100644 set(PLUGIN_INSTALL_DIR ".") set(DATA_INSTALL_DIR "share") elseif(APPLE AND WITH_APP_BUNDLE) -+ set(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/Applications") ++ set(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/Applications") + set(BUNDLE_INSTALL_DIR "${PROGNAME}.app/Contents") set(CMAKE_INSTALL_MANDIR "${PROGNAME}.app/Contents/Resources/man") set(CLI_INSTALL_DIR "${PROGNAME}.app/Contents/MacOS") - set(PROXY_INSTALL_DIR "${PROGNAME}.app/Contents/MacOS") @@ -369,12 +370,6 @@ set(CMAKE_AUTORCC ON) if(APPLE) diff --git a/pkgs/applications/misc/keepassx/default.nix b/pkgs/applications/misc/keepassx/default.nix index 7adbcb86c50..d0980001c8f 100644 --- a/pkgs/applications/misc/keepassx/default.nix +++ b/pkgs/applications/misc/keepassx/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { meta = { description = "Qt password manager compatible with its Win32 and Pocket PC versions"; - homepage = https://www.keepassx.org/; + homepage = "https://www.keepassx.org/"; license = stdenv.lib.licenses.gpl2; maintainers = with stdenv.lib.maintainers; [ qknight ]; platforms = with stdenv.lib.platforms; linux; diff --git a/pkgs/applications/misc/khal/default.nix b/pkgs/applications/misc/khal/default.nix index c435eaefed5..323fc501c84 100644 --- a/pkgs/applications/misc/khal/default.nix +++ b/pkgs/applications/misc/khal/default.nix @@ -41,6 +41,13 @@ with python3.pkgs; buildPythonApplication rec { checkInputs = [ pytest glibcLocales ]; LC_ALL = "en_US.UTF-8"; + postPatch = '' + sed -i \ + -e "s/Invalid value for \"ics\"/Invalid value for \\\'ics\\\'/" \ + -e "s/Invalid value for \"\[ICS\]\"/Invalid value for \\\'\[ICS\]\\\'/" \ + tests/cli_test.py + ''; + postInstall = '' # zsh completion install -D misc/__khal $out/share/zsh/site-functions/__khal @@ -61,7 +68,7 @@ with python3.pkgs; buildPythonApplication rec { ''; meta = with stdenv.lib; { - homepage = http://lostpackets.de/khal/; + homepage = "http://lostpackets.de/khal/"; description = "CLI calendar application"; license = licenses.mit; maintainers = with maintainers; [ gebner ]; diff --git a/pkgs/applications/misc/khard/default.nix b/pkgs/applications/misc/khard/default.nix index 1c6708c51c9..0d3c9d0cbd0 100644 --- a/pkgs/applications/misc/khard/default.nix +++ b/pkgs/applications/misc/khard/default.nix @@ -1,12 +1,12 @@ { stdenv, glibcLocales, python3 }: python3.pkgs.buildPythonApplication rec { - version = "0.15.1"; + version = "0.16.0"; pname = "khard"; src = python3.pkgs.fetchPypi { inherit pname version; - sha256 = "18ba2xgfq8sw0bg6xmlfjpizid1hkzgswcfcc54gl21y2dwfda2w"; + sha256 = "0a1zpkq0pplmn9flxczq2wafs6zc07r9xx9qi6dqmyv9mhy9d87f"; }; propagatedBuildInputs = with python3.pkgs; [ @@ -23,7 +23,7 @@ python3.pkgs.buildPythonApplication rec { ''; meta = { - homepage = https://github.com/scheibler/khard; + homepage = "https://github.com/scheibler/khard"; description = "Console carddav client"; license = stdenv.lib.licenses.gpl3; maintainers = with stdenv.lib.maintainers; [ matthiasbeyer ]; diff --git a/pkgs/applications/misc/kitty/default.nix b/pkgs/applications/misc/kitty/default.nix index f5553cac6b5..90dd04c9d68 100644 --- a/pkgs/applications/misc/kitty/default.nix +++ b/pkgs/applications/misc/kitty/default.nix @@ -20,14 +20,14 @@ with python3Packages; buildPythonApplication rec { pname = "kitty"; - version = "0.16.0"; + version = "0.17.3"; format = "other"; src = fetchFromGitHub { owner = "kovidgoyal"; repo = "kitty"; rev = "v${version}"; - sha256 = "1bszyddar0g1gdz67h8rd3gbrdhi6ahjg7j14cjiqxm1938z9ajf"; + sha256 = "1nx8gjavq8kc656ayh3wign1f68b46jbnmy8zyks25wg0p9gid8l"; }; buildInputs = [ @@ -72,7 +72,6 @@ buildPythonApplication rec { }) ] ++ stdenv.lib.optionals stdenv.isDarwin [ ./no-lto.patch - ./png2icns.patch ]; # Causes build failure due to warning @@ -106,6 +105,7 @@ buildPythonApplication rec { mkdir -p "$out/share/"{bash-completion/completions,fish/vendor_completions.d,zsh/site-functions} "$out/bin/kitty" + complete setup fish > "$out/share/fish/vendor_completions.d/kitty.fish" "$out/bin/kitty" + complete setup bash > "$out/share/bash-completion/completions/kitty.bash" + "$out/bin/kitty" + complete setup zsh > "$out/share/zsh/site-functions/_kitty" ''; postInstall = '' @@ -122,7 +122,7 @@ buildPythonApplication rec { ''; meta = with stdenv.lib; { - homepage = https://github.com/kovidgoyal/kitty; + homepage = "https://github.com/kovidgoyal/kitty"; description = "A modern, hackable, featureful, OpenGL based terminal emulator"; license = licenses.gpl3; platforms = platforms.darwin ++ platforms.linux; diff --git a/pkgs/applications/misc/kitty/no-lto.patch b/pkgs/applications/misc/kitty/no-lto.patch index 44d231cb07f..8073c11fbd2 100644 --- a/pkgs/applications/misc/kitty/no-lto.patch +++ b/pkgs/applications/misc/kitty/no-lto.patch @@ -1,12 +1,13 @@ --- a/setup.py +++ b/setup.py -@@ -233,9 +233,6 @@ def init_env( +@@ -277,10 +277,6 @@ def init_env( cppflags += shlex.split(os.environ.get('CPPFLAGS', '')) cflags += shlex.split(os.environ.get('CFLAGS', '')) ldflags += shlex.split(os.environ.get('LDFLAGS', '')) - if not debug and not sanitize: - # See https://github.com/google/sanitizers/issues/647 -- cflags.append('-flto'), ldflags.append('-flto') +- cflags.append('-flto') +- ldflags.append('-flto') if profile: cppflags.append('-DWITH_PROFILER') diff --git a/pkgs/applications/misc/kitty/png2icns.patch b/pkgs/applications/misc/kitty/png2icns.patch deleted file mode 100644 index 68566e2a899..00000000000 --- a/pkgs/applications/misc/kitty/png2icns.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -aru a/setup.py b/setup.py ---- a/setup.py 2019-07-29 11:09:32.000000000 -0400 -+++ b/setup.py 2019-07-29 11:11:37.000000000 -0400 -@@ -784,9 +784,15 @@ - def create_macos_app_icon(where='Resources'): - logo_dir = os.path.abspath(os.path.join('logo', appname + '.iconset')) - subprocess.check_call([ -- 'iconutil', '-c', 'icns', logo_dir, '-o', -+ 'png2icns', - os.path.join(where, os.path.basename(logo_dir).partition('.')[0] + '.icns') -- ]) -+ ] + [os.path.join(logo_dir, logo) for logo in [ -+ 'icon_128x128.png', -+ 'icon_16x16.png', -+ 'icon_256x256.png', -+ 'icon_32x32.png', -+ 'icon_512x512.png', -+ ]]) - - - def create_minimal_macos_bundle(args, where): diff --git a/pkgs/applications/misc/kiwix/default.nix b/pkgs/applications/misc/kiwix/default.nix index 898186b714b..ff6b1e9de2d 100644 --- a/pkgs/applications/misc/kiwix/default.nix +++ b/pkgs/applications/misc/kiwix/default.nix @@ -9,19 +9,19 @@ with stdenv.lib; let xulrunner64_tar = fetchurl { - url = http://download.kiwix.org/dev/xulrunner-29.0.en-US.linux-x86_64.tar.bz2; + url = "http://download.kiwix.org/dev/xulrunner-29.0.en-US.linux-x86_64.tar.bz2"; sha256 = "0i3m30gm5z7qmas14id6ypvbmnb2k7jhz8aby2wz5vvv49zqmx3s"; }; xulrunnersdk64_tar = fetchurl { - url = http://download.kiwix.org/dev/xulrunner-29.0.en-US.linux-x86_64.sdk.tar.bz2; + url = "http://download.kiwix.org/dev/xulrunner-29.0.en-US.linux-x86_64.sdk.tar.bz2"; sha256 = "0z90v7c4mq15g5klmsj8vs2r10fbygj3qzynx4952hkv8ihw8n3a"; }; xulrunner32_tar = fetchurl { - url = http://download.kiwix.org/dev/xulrunner-29.0.en-US.linux-i686.tar.bz2; + url = "http://download.kiwix.org/dev/xulrunner-29.0.en-US.linux-i686.tar.bz2"; sha256 = "0yln6pxz8f6b9wm9124sx049z8mgi17lgd63rcv2hnix825y8gjb"; }; xulrunnersdk32_tar = fetchurl { - url = http://download.kiwix.org/dev/xulrunner-29.0.en-US.linux-i686.sdk.tar.bz2; + url = "http://download.kiwix.org/dev/xulrunner-29.0.en-US.linux-i686.sdk.tar.bz2"; sha256 = "1h9vcbvf8wgds6i2z20y7krpys0mqsqhv1ijyfljanp6vyll9fvi"; }; @@ -98,7 +98,7 @@ stdenv.mkDerivation rec { meta = { description = "An offline reader for Web content"; - homepage = https://kiwix.org; + homepage = "https://kiwix.org"; license = licenses.gpl3; platforms = platforms.linux; maintainers = with maintainers; [ robbinch ]; diff --git a/pkgs/applications/misc/kjv/default.nix b/pkgs/applications/misc/kjv/default.nix index 7868e74d010..307781931e9 100644 --- a/pkgs/applications/misc/kjv/default.nix +++ b/pkgs/applications/misc/kjv/default.nix @@ -2,7 +2,7 @@ let -patch-base = https://github.com/LukeSmithxyz/kjv/commit/; +patch-base = "https://github.com/LukeSmithxyz/kjv/commit/"; add-apocrypha = fetchpatch { url = patch-base + "b92b7622285d10464f9274f11e740bef90705bbc.patch"; diff --git a/pkgs/applications/misc/klayout/default.nix b/pkgs/applications/misc/klayout/default.nix new file mode 100644 index 00000000000..78b32f7fca1 --- /dev/null +++ b/pkgs/applications/misc/klayout/default.nix @@ -0,0 +1,63 @@ +{ lib, mkDerivation, fetchFromGitHub, fetchpatch +, python, ruby, qtbase, qtmultimedia, qttools, qtxmlpatterns +, which, perl, makeWrapper, fixDarwinDylibNames +}: + +mkDerivation rec { + pname = "klayout"; + version = "0.26.2"; + + src = fetchFromGitHub { + owner = "KLayout"; + repo = "klayout"; + rev = "v${version}"; + sha256 = "0svyqayvr45snqw0dhx6jpnjhg4qb097pz28s8k1crx5i31nnd94"; + }; + + postPatch = '' + substituteInPlace src/klayout.pri --replace "-Wno-reserved-user-defined-literal" "" + patchShebangs . + ''; + + nativeBuildInputs = [ + which + ]; + + buildInputs = [ + python + ruby + qtbase + qtmultimedia + qttools + qtxmlpatterns + ]; + + buildPhase = '' + runHook preBuild + mkdir -p $out/lib + ./build.sh -qt5 -prefix $out/lib -j$NIX_BUILD_CORES + runHook postBuild + ''; + + postBuild = '' + mkdir $out/bin + mv $out/lib/klayout $out/bin/ + ''; + + NIX_CFLAGS_COMPILE = [ "-Wno-parentheses" ]; + + dontInstall = true; # Installation already happens as part of "build.sh" + + # Fix: "gsiDeclQMessageLogger.cc:126:42: error: format not a string literal + # and no format arguments [-Werror=format-security]" + hardeningDisable = [ "format" ]; + + meta = with lib; { + description = "High performance layout viewer and editor with support for GDS and OASIS"; + license = with licenses; [ gpl3 ]; + homepage = "https://www.klayout.de/"; + platforms = platforms.linux; + maintainers = with maintainers; [ knedlsepp ]; + }; +} + diff --git a/pkgs/applications/misc/kondo/default.nix b/pkgs/applications/misc/kondo/default.nix new file mode 100644 index 00000000000..9df4c59717c --- /dev/null +++ b/pkgs/applications/misc/kondo/default.nix @@ -0,0 +1,22 @@ +{ stdenv, rustPlatform, fetchFromGitHub }: + +rustPlatform.buildRustPackage rec { + pname = "kondo"; + version = "0.3"; + + src = fetchFromGitHub { + owner = "tbillington"; + repo = pname; + rev = "v${version}"; + sha256 = "1rrg0xfm3vn5jh861r4ismrga673g7v6qnzl2v1haflgjhvdazwd"; + }; + + cargoSha256 = "1y7g8gw9hsm997d6i99c3dj2gb8y8cgws5001n85f9bpnlvvmf9y"; + + meta = with stdenv.lib; { + description = "Save disk space by cleaning unneeded files from software projects"; + homepage = "https://github.com/tbillington/kondo"; + license = licenses.mit; + maintainers = with maintainers; [ filalex77 ]; + }; +} diff --git a/pkgs/applications/misc/krename/default.nix b/pkgs/applications/misc/krename/default.nix index 8b6b7741c7d..816b352460b 100644 --- a/pkgs/applications/misc/krename/default.nix +++ b/pkgs/applications/misc/krename/default.nix @@ -25,7 +25,7 @@ in mkDerivation rec { meta = with lib; { description = "A powerful batch renamer for KDE"; - homepage = https://kde.org/applications/utilities/krename/; + homepage = "https://kde.org/applications/utilities/krename/"; license = licenses.gpl2; maintainers = with maintainers; [ peterhoeg ]; inherit (kconfig.meta) platforms; diff --git a/pkgs/applications/misc/krusader/default.nix b/pkgs/applications/misc/krusader/default.nix index 15979def34b..ab13c4989d9 100644 --- a/pkgs/applications/misc/krusader/default.nix +++ b/pkgs/applications/misc/krusader/default.nix @@ -19,8 +19,8 @@ in mkDerivation rec { meta = with lib; { description = "Norton/Total Commander clone for KDE"; license = licenses.gpl2; - homepage = http://www.krusader.org; - maintainers = with maintainers; [ sander ]; + homepage = "http://www.krusader.org"; + maintainers = with maintainers; [ sander turion ]; }; nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ]; diff --git a/pkgs/applications/misc/latte-dock/default.nix b/pkgs/applications/misc/latte-dock/default.nix index ad824b238f8..424da3ad360 100644 --- a/pkgs/applications/misc/latte-dock/default.nix +++ b/pkgs/applications/misc/latte-dock/default.nix @@ -3,11 +3,11 @@ mkDerivation rec { pname = "latte-dock"; - version = "0.9.9"; + version = "0.9.11"; src = fetchurl { url = "https://download.kde.org/stable/${pname}/${pname}-${version}.tar.xz"; - sha256 = "01b2zr2x5hnadkvj687lwi3l6dwq3kdn5y9k4qf1bv0sa4vw6hn9"; + sha256 = "0x7a93a7axsa0fzpbkkv1z722k9za4p51xcpzdpnh5ih1zij0csi"; name = "${pname}-${version}.tar.xz"; }; diff --git a/pkgs/applications/misc/lenmus/default.nix b/pkgs/applications/misc/lenmus/default.nix index 76abe7c9b4b..532166cf6fb 100644 --- a/pkgs/applications/misc/lenmus/default.nix +++ b/pkgs/applications/misc/lenmus/default.nix @@ -44,7 +44,7 @@ stdenv.mkDerivation rec { It allows you to focus on specific skills and exercises, on both theory and aural training. The different activities can be customized to meet your needs ''; - homepage = http://www.lenmus.org/; + homepage = "http://www.lenmus.org/"; license = licenses.gpl3Plus; maintainers = with maintainers; [ ramkromberg ]; platforms = with platforms; linux; diff --git a/pkgs/applications/misc/libosmocore/default.nix b/pkgs/applications/misc/libosmocore/default.nix index 846ce309842..2bd8bfa99bc 100644 --- a/pkgs/applications/misc/libosmocore/default.nix +++ b/pkgs/applications/misc/libosmocore/default.nix @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "libosmocore"; - homepage = https://github.com/osmocom/libosmocore; + homepage = "https://github.com/osmocom/libosmocore"; license = licenses.gpl2Plus; platforms = platforms.linux; maintainers = with maintainers; [ mog ]; diff --git a/pkgs/applications/misc/lighthouse/default.nix b/pkgs/applications/misc/lighthouse/default.nix index 7b5b40d65a3..9e651c59d4e 100644 --- a/pkgs/applications/misc/lighthouse/default.nix +++ b/pkgs/applications/misc/lighthouse/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A simple flexible popup dialog to run on X"; - homepage = https://github.com/emgram769/lighthouse; + homepage = "https://github.com/emgram769/lighthouse"; license = licenses.mit; maintainers = with maintainers; [ ramkromberg ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/lilyterm/default.nix b/pkgs/applications/misc/lilyterm/default.nix index e9dba4bcf46..28f9625b5b6 100644 --- a/pkgs/applications/misc/lilyterm/default.nix +++ b/pkgs/applications/misc/lilyterm/default.nix @@ -2,40 +2,41 @@ , pkgconfig , autoconf, automake, intltool, gettext , gtk, vte - , flavour ? "stable" }: assert lib.assertOneOf "flavour" flavour [ "stable" "git" ]; let + pname = "lilyterm"; stuff = if flavour == "stable" then rec { version = "0.9.9.4"; src = fetchurl { - url = "https://lilyterm.luna.com.tw/file/lilyterm-${version}.tar.gz"; + url = "https://lilyterm.luna.com.tw/file/${pname}-${version}.tar.gz"; sha256 = "0x2x59qsxq6d6xg5sd5lxbsbwsdvkwqlk17iw3h4amjg3m1jc9mp"; }; } else { - version = "2017-01-06"; + version = "2019-07-25"; src = fetchFromGitHub { owner = "Tetralet"; - repo = "lilyterm"; - rev = "20cce75d34fd24901c9828469d4881968183c389"; - sha256 = "0am0y65674rfqy69q4qz8izb8cq0isylr4w5ychi40jxyp68rkv2"; + repo = pname; + rev = "faf1254f46049edfb1fd6e9191e78b1b23b9c51d"; + sha256 = "054450gk237c62b677365bcwrijr63gd9xm8pv68br371wdzylz7"; }; }; in -stdenv.mkDerivation { - pname = "lilyterm"; +with stdenv.lib; +stdenv.mkDerivation rec { + inherit pname; inherit (stuff) src version; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ autoconf automake intltool gettext gtk vte ]; + nativeBuildInputs = [ pkgconfig autoconf automake intltool gettext ]; + buildInputs = [ gtk vte ]; preConfigure = "sh autogen.sh"; @@ -49,7 +50,7 @@ stdenv.mkDerivation { longDescription = '' LilyTerm is a terminal emulator based off of libvte that aims to be fast and lightweight. ''; - homepage = https://lilyterm.luna.com.tw/; + homepage = "https://lilyterm.luna.com.tw/"; license = licenses.gpl3; maintainers = with maintainers; [ AndersonTorres Profpatsch ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/llpp/default.nix b/pkgs/applications/misc/llpp/default.nix index 25f9b10b1e8..e2ec64932ff 100644 --- a/pkgs/applications/misc/llpp/default.nix +++ b/pkgs/applications/misc/llpp/default.nix @@ -48,7 +48,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = https://repo.or.cz/w/llpp.git; + homepage = "https://repo.or.cz/w/llpp.git"; description = "A MuPDF based PDF pager written in OCaml"; platforms = platforms.linux; maintainers = with maintainers; [ pSub enzime ]; diff --git a/pkgs/applications/misc/loxodo/default.nix b/pkgs/applications/misc/loxodo/default.nix index 846df292eb1..4b201c66fe5 100644 --- a/pkgs/applications/misc/loxodo/default.nix +++ b/pkgs/applications/misc/loxodo/default.nix @@ -30,7 +30,7 @@ py.buildPythonApplication { meta = with stdenv.lib; { description = "A Password Safe V3 compatible password vault"; - homepage = https://www.christoph-sommer.de/loxodo/; + homepage = "https://www.christoph-sommer.de/loxodo/"; license = licenses.gpl2Plus; platforms = platforms.linux; }; diff --git a/pkgs/applications/misc/ltwheelconf/default.nix b/pkgs/applications/misc/ltwheelconf/default.nix index 61151cb1550..2ceb8e91def 100644 --- a/pkgs/applications/misc/ltwheelconf/default.nix +++ b/pkgs/applications/misc/ltwheelconf/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation { ''; meta = with stdenv.lib; { - homepage = https://github.com/thk/LTWheelConf; + homepage = "https://github.com/thk/LTWheelConf"; description = "Logitech wheels configuration tool"; license = licenses.gpl3; maintainers = [ maintainers.ebzzry ]; diff --git a/pkgs/applications/misc/lutris/chrootenv.nix b/pkgs/applications/misc/lutris/chrootenv.nix index a3a5d0ce751..4505432b236 100644 --- a/pkgs/applications/misc/lutris/chrootenv.nix +++ b/pkgs/applications/misc/lutris/chrootenv.nix @@ -92,9 +92,9 @@ in buildFHSUserEnv { multiPkgs = pkgs: with pkgs; [ # Common libsndfile libtheora libogg libvorbis libopus libGLU libpcap libpulseaudio - libao libusb libevdev udev libgcrypt libxml2 libusb libpng libmpeg2 libv4l + libao libevdev udev libgcrypt libxml2 libusb-compat-0_1 libpng libmpeg2 libv4l libjpeg libxkbcommon libass libcdio libjack2 libsamplerate libzip libmad libaio - libcap libtiff libva libgphoto2 libxslt libtxc_dxtn libsndfile giflib zlib glib + libcap libtiff libva libgphoto2 libxslt libsndfile giflib zlib glib alsaLib zziplib bash dbus keyutils zip cabextract freetype unzip coreutils readline gcc SDL SDL2 curl graphite2 gtk2 gtk3 udev ncurses wayland libglvnd vulkan-loader xdg_utils sqlite gnutls libbsd @@ -103,7 +103,7 @@ in buildFHSUserEnv { # WINE cups lcms2 mpg123 cairo unixODBC samba4 sane-backends openldap - ocl-icd utillinux + ocl-icd utillinux libkrb5 # Winetricks fribidi diff --git a/pkgs/applications/misc/lutris/default.nix b/pkgs/applications/misc/lutris/default.nix index c9ea146f063..2ff2a82dd4f 100644 --- a/pkgs/applications/misc/lutris/default.nix +++ b/pkgs/applications/misc/lutris/default.nix @@ -1,7 +1,7 @@ -{ buildPythonApplication, lib, fetchFromGitHub -, wrapGAppsHook, gobject-introspection, gnome-desktop, libnotify, libgnome-keyring, pango +{ buildPythonApplication, lib, fetchFromGitHub, fetchpatch +, wrapGAppsHook, gobject-introspection, glib-networking, gnome-desktop, libnotify, libgnome-keyring, pango , gdk-pixbuf, atk, webkitgtk, gst_all_1 -, evdev, pyyaml, pygobject3, requests, pillow +, dbus-python, evdev, pyyaml, pygobject3, requests, pillow , xrandr, pciutils, psmisc, glxinfo, vulkan-tools, xboxdrv, pulseaudio, p7zip, xgamma , libstrangle, wine, fluidsynth, xorgserver }: @@ -31,17 +31,18 @@ let in buildPythonApplication rec { pname = "lutris-original"; - version = "0.5.3"; + version = "0.5.5"; src = fetchFromGitHub { owner = "lutris"; repo = "lutris"; rev = "v${version}"; - sha256 = "0n6xa3pnwvsvfipinrkbhxwjzfbw2cjpc9igv97nffcmpydmn5xv"; + sha256 = "1g093g0difnkjmnm91p20issdsxn9ri4c56zzddj5wfrbmhwdfag"; }; + nativeBuildInputs = [ wrapGAppsHook ]; buildInputs = [ - wrapGAppsHook gobject-introspection gnome-desktop libnotify libgnome-keyring pango + gobject-introspection glib-networking gnome-desktop libnotify libgnome-keyring pango gdk-pixbuf atk webkitgtk ] ++ gstDeps; @@ -50,7 +51,7 @@ in buildPythonApplication rec { ]; propagatedBuildInputs = [ - evdev pyyaml pygobject3 requests pillow + evdev pyyaml pygobject3 requests pillow dbus-python ]; preCheck = "export HOME=$PWD"; @@ -63,4 +64,3 @@ in buildPythonApplication rec { platforms = platforms.linux; }; } - diff --git a/pkgs/applications/misc/lxterminal/default.nix b/pkgs/applications/misc/lxterminal/default.nix index 0802a32d92b..8c002bd14b0 100644 --- a/pkgs/applications/misc/lxterminal/default.nix +++ b/pkgs/applications/misc/lxterminal/default.nix @@ -42,7 +42,7 @@ stdenv.mkDerivation { desktop-independent VTE-based terminal emulator for LXDE without any unnecessary dependencies. ''; - homepage = https://wiki.lxde.org/en/LXTerminal; + homepage = "https://wiki.lxde.org/en/LXTerminal"; license = stdenv.lib.licenses.gpl2; maintainers = [ stdenv.lib.maintainers.velovix ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/misc/lyx/default.nix b/pkgs/applications/misc/lyx/default.nix index f9d8599e329..b96e6b2a02d 100644 --- a/pkgs/applications/misc/lyx/default.nix +++ b/pkgs/applications/misc/lyx/default.nix @@ -36,7 +36,7 @@ mkDerivation rec { meta = with lib; { description = "WYSIWYM frontend for LaTeX, DocBook"; - homepage = http://www.lyx.org; + homepage = "http://www.lyx.org"; license = licenses.gpl2Plus; maintainers = [ maintainers.vcunat ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/madonctl/default.nix b/pkgs/applications/misc/madonctl/default.nix index 9a134343d29..a61c66d9374 100644 --- a/pkgs/applications/misc/madonctl/default.nix +++ b/pkgs/applications/misc/madonctl/default.nix @@ -23,7 +23,7 @@ buildGoPackage rec { meta = with stdenv.lib; { description = "CLI for the Mastodon social network API"; - homepage = https://github.com/McKael/madonctl; + homepage = "https://github.com/McKael/madonctl"; license = licenses.mit; platforms = platforms.unix; maintainers = with maintainers; [ ]; diff --git a/pkgs/applications/misc/makeself/default.nix b/pkgs/applications/misc/makeself/default.nix index f2585f78146..7dedf52e893 100644 --- a/pkgs/applications/misc/makeself/default.nix +++ b/pkgs/applications/misc/makeself/default.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = http://megastep.org/makeself; + homepage = "http://megastep.org/makeself"; description = "Utility to create self-extracting packages"; license = licenses.gpl2; maintainers = [ maintainers.wmertens ]; diff --git a/pkgs/applications/misc/mako/default.nix b/pkgs/applications/misc/mako/default.nix index f86effe989f..e1b14acb46f 100644 --- a/pkgs/applications/misc/mako/default.nix +++ b/pkgs/applications/misc/mako/default.nix @@ -1,6 +1,7 @@ { stdenv, fetchFromGitHub, meson, ninja, pkgconfig, scdoc , systemd, pango, cairo, gdk-pixbuf -, wayland, wayland-protocols }: +, wayland, wayland-protocols +, wrapGAppsHook }: stdenv.mkDerivation rec { pname = "mako"; @@ -13,14 +14,14 @@ stdenv.mkDerivation rec { sha256 = "0hwvibpnrximb628w9dsfjpi30b5jy7nfkm4d94z5vhp78p43vxh"; }; - nativeBuildInputs = [ meson ninja pkgconfig scdoc wayland-protocols ]; + nativeBuildInputs = [ meson ninja pkgconfig scdoc wayland-protocols wrapGAppsHook ]; buildInputs = [ systemd pango cairo gdk-pixbuf wayland ]; mesonFlags = [ "-Dzsh-completions=true" ]; meta = with stdenv.lib; { description = "A lightweight Wayland notification daemon"; - homepage = https://wayland.emersion.fr/mako/; + homepage = "https://wayland.emersion.fr/mako/"; license = licenses.mit; maintainers = with maintainers; [ dywedir synthetica ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/mapproxy/default.nix b/pkgs/applications/misc/mapproxy/default.nix index e5826c09d77..0261dfbe899 100644 --- a/pkgs/applications/misc/mapproxy/default.nix +++ b/pkgs/applications/misc/mapproxy/default.nix @@ -57,8 +57,8 @@ buildPythonApplication rec { doCheck = false; meta = with lib; { description = "MapProxy is an open source proxy for geospatial data"; - homepage = https://mapproxy.org/; + homepage = "https://mapproxy.org/"; license = licenses.asl20; maintainers = with maintainers; [ rakesh4g ]; }; -} \ No newline at end of file +} diff --git a/pkgs/applications/misc/mdp/default.nix b/pkgs/applications/misc/mdp/default.nix index 03f30d64fb2..b96c4d00214 100644 --- a/pkgs/applications/misc/mdp/default.nix +++ b/pkgs/applications/misc/mdp/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { buildInputs = [ ncurses ]; meta = with stdenv.lib; { - homepage = https://github.com/visit1985/mdp; + homepage = "https://github.com/visit1985/mdp"; description = "A command-line based markdown presentation tool"; maintainers = with maintainers; [ matthiasbeyer vrthra ]; license = licenses.gpl3; diff --git a/pkgs/applications/misc/mediainfo-gui/default.nix b/pkgs/applications/misc/mediainfo-gui/default.nix index b84bc08ddb3..bd018a690d4 100644 --- a/pkgs/applications/misc/mediainfo-gui/default.nix +++ b/pkgs/applications/misc/mediainfo-gui/default.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { MediaInfo is a convenient unified display of the most relevant technical and tag data for video and audio files. ''; - homepage = https://mediaarea.net/; + homepage = "https://mediaarea.net/"; license = licenses.bsd2; platforms = platforms.linux; maintainers = [ maintainers.devhell ]; diff --git a/pkgs/applications/misc/mediainfo/default.nix b/pkgs/applications/misc/mediainfo/default.nix index f084d17e389..1ed1ef4afb5 100644 --- a/pkgs/applications/misc/mediainfo/default.nix +++ b/pkgs/applications/misc/mediainfo/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, autoreconfHook, pkgconfig, libzen, libmediainfo, zlib }: stdenv.mkDerivation rec { - version = "19.09"; + version = "20.03"; pname = "mediainfo"; src = fetchurl { url = "https://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz"; - sha256 = "1a2ssklg12sjsw09y8my9kf35mizi3zj7w002nspcmw28apb1x82"; + sha256 = "1f1shnycf0f1fwka9k9s250l228xjkg0k4k73h8bpld8msighgnw"; }; nativeBuildInputs = [ autoreconfHook pkgconfig ]; @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { MediaInfo is a convenient unified display of the most relevant technical and tag data for video and audio files. ''; - homepage = https://mediaarea.net/; + homepage = "https://mediaarea.net/"; license = licenses.bsd2; platforms = platforms.unix; maintainers = [ maintainers.devhell ]; diff --git a/pkgs/applications/misc/megacmd/default.nix b/pkgs/applications/misc/megacmd/default.nix index 9fe810e4147..07d194dbff4 100644 --- a/pkgs/applications/misc/megacmd/default.nix +++ b/pkgs/applications/misc/megacmd/default.nix @@ -22,13 +22,13 @@ stdenv.mkDerivation rec { pname = "megacmd"; - version = "1.1.0"; + version = "1.2.0"; src = fetchFromGitHub { owner = "meganz"; repo = "MEGAcmd"; rev = "${version}_Linux"; - sha256 = "004j8m3xs6slx03g2g6wzr97myl2v3zc09wxnfar5c62a625pd53"; + sha256 = "0czyhsms0a0237d6h9b21n9p4nm4zkjanhhbvw26k6266g6c1nyr"; fetchSubmodules = true; }; @@ -80,7 +80,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "MEGA Command Line Interactive and Scriptable Application"; - homepage = https://mega.nz/; + homepage = "https://mega.nz/"; license = licenses.unfree; platforms = [ "i686-linux" "x86_64-linux" ]; maintainers = [ maintainers.wedens ]; diff --git a/pkgs/applications/misc/megasync/default.nix b/pkgs/applications/misc/megasync/default.nix index 6e51e3cda76..3a26def26c9 100644 --- a/pkgs/applications/misc/megasync/default.nix +++ b/pkgs/applications/misc/megasync/default.nix @@ -1,50 +1,22 @@ -{ stdenv -, autoconf -, automake -, c-ares -, cryptopp -, curl -, doxygen -, fetchFromGitHub -, ffmpeg -, libmediainfo -, libraw -, libsodium -, libtool -, libuv -, libzen -, lsb-release -, mkDerivation -, pkgconfig -, qtbase -, qttools -, sqlite -, swig -, unzip -, wget -}: +{ stdenv, autoconf, automake, c-ares, cryptopp, curl, doxygen, fetchFromGitHub +, fetchpatch, ffmpeg, libmediainfo, libraw, libsodium, libtool, libuv, libzen +, lsb-release, mkDerivation, pkgconfig, qtbase, qttools, sqlite, swig, unzip +, wget }: mkDerivation rec { pname = "megasync"; - version = "4.2.3.0"; + version = "4.3.0.8"; src = fetchFromGitHub { owner = "meganz"; repo = "MEGAsync"; rev = "v${version}_Linux"; - sha256 = "0l4yfrxjb62vc9dnlzy8rjqi68ga1bys5x5rfzs40daw13yf1adv"; + sha256 = "1rhxkc6j3039rcsi8cxy3n00g6w7acir82ymnksbpsnp4yxqv5r3"; fetchSubmodules = true; }; - nativeBuildInputs = [ - autoconf - automake - doxygen - lsb-release - pkgconfig - qttools - swig - ]; + nativeBuildInputs = + [ autoconf automake doxygen lsb-release pkgconfig qttools swig ]; buildInputs = [ c-ares cryptopp @@ -85,21 +57,21 @@ mkDerivation rec { ''; configureFlags = [ - "--disable-examples" - "--disable-java" - "--disable-php" - "--enable-chat" - "--with-cares" - "--with-cryptopp" - "--with-curl" - "--with-ffmpeg" - "--without-freeimage" # unreferenced even when found - "--without-readline" - "--without-termcap" - "--with-sodium" - "--with-sqlite" - "--with-zlib" - ]; + "--disable-examples" + "--disable-java" + "--disable-php" + "--enable-chat" + "--with-cares" + "--with-cryptopp" + "--with-curl" + "--with-ffmpeg" + "--without-freeimage" # unreferenced even when found + "--without-readline" + "--without-termcap" + "--with-sodium" + "--with-sqlite" + "--with-zlib" + ]; postConfigure = '' cd ../.. @@ -114,10 +86,11 @@ mkDerivation rec { ''; meta = with stdenv.lib; { - description = "Easy automated syncing between your computers and your MEGA Cloud Drive"; - homepage = https://mega.nz/; - license = licenses.unfree; - platforms = [ "i686-linux" "x86_64-linux" ]; + description = + "Easy automated syncing between your computers and your MEGA Cloud Drive"; + homepage = "https://mega.nz/"; + license = licenses.unfree; + platforms = [ "i686-linux" "x86_64-linux" ]; maintainers = [ maintainers.michojel ]; }; } diff --git a/pkgs/applications/misc/memo/default.nix b/pkgs/applications/misc/memo/default.nix index 3749f568aef..66fe0d7207c 100644 --- a/pkgs/applications/misc/memo/default.nix +++ b/pkgs/applications/misc/memo/default.nix @@ -43,8 +43,8 @@ stdenv.mkDerivation rec { A simple tool written in bash to memorize stuff. Memo organizes is structured through topics which are folders in ~/memo. ''; - homepage = http://palovandalo.com/memo/; - downloadPage = https://github.com/mrVanDalo/memo/releases; + homepage = "http://palovandalo.com/memo/"; + downloadPage = "https://github.com/mrVanDalo/memo/releases"; license = stdenv.lib.licenses.gpl3; maintainers = [ stdenv.lib.maintainers.mrVanDalo ]; platforms = stdenv.lib.platforms.all; diff --git a/pkgs/applications/misc/menumaker/default.nix b/pkgs/applications/misc/menumaker/default.nix index e06f2a88ade..22cf63e536c 100644 --- a/pkgs/applications/misc/menumaker/default.nix +++ b/pkgs/applications/misc/menumaker/default.nix @@ -13,7 +13,7 @@ pythonPackages.buildPythonApplication rec { meta = with stdenv.lib; { description = "Heuristics-driven menu generator for several window managers"; - homepage = http://menumaker.sourceforge.net; + homepage = "http://menumaker.sourceforge.net"; license = licenses.bsd2; platforms = platforms.unix; maintainers = [ maintainers.romildo ]; diff --git a/pkgs/applications/misc/merkaartor/default.nix b/pkgs/applications/misc/merkaartor/default.nix index 08643577b49..79ee45b4c1c 100644 --- a/pkgs/applications/misc/merkaartor/default.nix +++ b/pkgs/applications/misc/merkaartor/default.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "OpenStreetMap editor"; - homepage = http://merkaartor.be/; + homepage = "http://merkaartor.be/"; license = licenses.gpl2Plus; maintainers = with maintainers; [ ]; }; diff --git a/pkgs/applications/misc/metar/default.nix b/pkgs/applications/misc/metar/default.nix index ca4f91533ec..f5185c63987 100644 --- a/pkgs/applications/misc/metar/default.nix +++ b/pkgs/applications/misc/metar/default.nix @@ -12,7 +12,7 @@ stdenv.mkDerivation { buildInputs = [ curl ]; meta = with stdenv.lib; { - homepage = https://github.com/keesL/metar; + homepage = "https://github.com/keesL/metar"; license = licenses.gpl2; maintainers = [ maintainers.zalakain ]; description = "Downloads weather reports and optionally decodes them"; diff --git a/pkgs/applications/misc/microcom/default.nix b/pkgs/applications/misc/microcom/default.nix new file mode 100644 index 00000000000..8377505ec1c --- /dev/null +++ b/pkgs/applications/misc/microcom/default.nix @@ -0,0 +1,29 @@ +{ stdenv, + lib, + fetchFromGitHub, + readline, + autoreconfHook }: + +stdenv.mkDerivation rec { + pname = "microcom"; + version = "2019.01.0"; + + src = fetchFromGitHub { + owner = "pengutronix"; + repo = pname; + rev = "v${version}"; + sha256 = "056v28hvagnzns6p8i3bq8609k82d3w1ab2lab5dr4cdfwhs4pqj"; + }; + + nativeBuildInputs = [ autoreconfHook ]; + buildInputs = [ readline ]; + + meta = with lib; { + description = "A minimalistic terminal program for communicating + with devices over a serial connection"; + inherit (src.meta) homepage; + license = licenses.gpl2; + maintainers = with maintainers; [ emantor ]; + platforms = with platforms; linux; + }; +} diff --git a/pkgs/applications/misc/milu/default.nix b/pkgs/applications/misc/milu/default.nix index 2eee9ad40c1..84cc0e0bc8d 100644 --- a/pkgs/applications/misc/milu/default.nix +++ b/pkgs/applications/misc/milu/default.nix @@ -31,7 +31,7 @@ stdenv.mkDerivation { meta = { description = "Higher Order Mutation Testing Tool for C and C++ programs"; - homepage = https://github.com/yuejia/Milu; + homepage = "https://github.com/yuejia/Milu"; license = stdenv.lib.licenses.bsd2; platforms = stdenv.lib.platforms.linux; maintainers = [ stdenv.lib.maintainers.vrthra ]; diff --git a/pkgs/applications/misc/minder/default.nix b/pkgs/applications/misc/minder/default.nix index 7b6be997ffa..fd1aa050fe7 100644 --- a/pkgs/applications/misc/minder/default.nix +++ b/pkgs/applications/misc/minder/default.nix @@ -8,13 +8,13 @@ stdenv.mkDerivation rec { pname = "minder"; - version = "1.6.0"; + version = "1.7.2"; src = fetchFromGitHub { owner = "phase1geo"; repo = pname; rev = version; - sha256 = "0zma6hjx0068ih7fagb1gg5cgci0ccc764sd8qw6iglg61aihpx7"; + sha256 = "0pfp0dglj2ig2p1h000137dxw777mjvzzqj3gcnbxjxqz3m6fzc0"; }; nativeBuildInputs = [ pkgconfig meson ninja python3 wrapGAppsHook vala shared-mime-info ]; diff --git a/pkgs/applications/misc/minergate-cli/default.nix b/pkgs/applications/misc/minergate-cli/default.nix index eff93c8e99c..61b900c4012 100644 --- a/pkgs/applications/misc/minergate-cli/default.nix +++ b/pkgs/applications/misc/minergate-cli/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Minergate CPU/GPU console client mining software"; - homepage = https://www.minergate.com/; + homepage = "https://www.minergate.com/"; license = licenses.unfree; maintainers = with maintainers; [ bfortz ]; platforms = [ "x86_64-linux" ]; diff --git a/pkgs/applications/misc/minergate/default.nix b/pkgs/applications/misc/minergate/default.nix index a8402d97593..6fbe39c4da2 100644 --- a/pkgs/applications/misc/minergate/default.nix +++ b/pkgs/applications/misc/minergate/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Minergate CPU/GPU mining software"; - homepage = https://www.minergate.com/; + homepage = "https://www.minergate.com/"; license = licenses.unfree; maintainers = with maintainers; [ bfortz ]; platforms = [ "x86_64-linux" ]; diff --git a/pkgs/applications/misc/mlterm/default.nix b/pkgs/applications/misc/mlterm/default.nix index b2012801e17..da6250fadf3 100644 --- a/pkgs/applications/misc/mlterm/default.nix +++ b/pkgs/applications/misc/mlterm/default.nix @@ -85,7 +85,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Multi Lingual TERMinal emulator on X11"; - homepage = http://mlterm.sourceforge.net/; + homepage = "http://mlterm.sourceforge.net/"; license = licenses.bsd3; maintainers = with maintainers; [ vrthra ramkromberg ]; platforms = with platforms; linux; diff --git a/pkgs/applications/misc/moolticute/default.nix b/pkgs/applications/misc/moolticute/default.nix index e3154b7cd1c..0a54bc98bb9 100644 --- a/pkgs/applications/misc/moolticute/default.nix +++ b/pkgs/applications/misc/moolticute/default.nix @@ -9,13 +9,13 @@ mkDerivation rec { pname = "moolticute"; - version = "0.42.32-testing"; + version = "0.43.3"; src = fetchFromGitHub { owner = "mooltipass"; repo = pname; rev = "v${version}"; - sha256 = "1kx1p2h65dilj1pbzf36d1mxwym19kvln1sqg8fb7na8q7lk4b05"; + sha256 = "0kl7wksiqmy0hqbg6xwmzqfn3l17if2hiw7xc9x067x9rviyxrl3"; }; outputs = [ "out" "udev" ]; diff --git a/pkgs/applications/misc/moonlight-embedded/default.nix b/pkgs/applications/misc/moonlight-embedded/default.nix index 08f510a2840..328e106694b 100644 --- a/pkgs/applications/misc/moonlight-embedded/default.nix +++ b/pkgs/applications/misc/moonlight-embedded/default.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Open source implementation of NVIDIA's GameStream"; - homepage = https://github.com/irtimmer/moonlight-embedded; + homepage = "https://github.com/irtimmer/moonlight-embedded"; license = licenses.gpl3; maintainers = [ maintainers.globin ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/mop/default.nix b/pkgs/applications/misc/mop/default.nix index c0d41cda02d..81c23658965 100644 --- a/pkgs/applications/misc/mop/default.nix +++ b/pkgs/applications/misc/mop/default.nix @@ -24,7 +24,7 @@ buildGoPackage rec { meta = with stdenv.lib; { description = "Simple stock tracker implemented in go"; - homepage = https://github.com/mop-tracker/mop; + homepage = "https://github.com/mop-tracker/mop"; license = licenses.mit; platforms = platforms.all; }; diff --git a/pkgs/applications/misc/mpvc/default.nix b/pkgs/applications/misc/mpvc/default.nix index 35de284c0ba..eacc4b5758c 100644 --- a/pkgs/applications/misc/mpvc/default.nix +++ b/pkgs/applications/misc/mpvc/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "A mpc-like control interface for mpv"; - homepage = https://github.com/wildefyr/mpvc; + homepage = "https://github.com/wildefyr/mpvc"; license = licenses.mit; maintainers = [ maintainers.neeasade ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/mqtt-bench/default.nix b/pkgs/applications/misc/mqtt-bench/default.nix index 0e8cc2ebcea..1f6112d7d7b 100644 --- a/pkgs/applications/misc/mqtt-bench/default.nix +++ b/pkgs/applications/misc/mqtt-bench/default.nix @@ -26,7 +26,7 @@ buildGoPackage rec { meta = with stdenv.lib; { description = "Mosquitto benchmark tool"; - homepage = https://github.com/takanorig/mqtt-bench; + homepage = "https://github.com/takanorig/mqtt-bench"; maintainers = with maintainers; [ disassembler ]; }; } diff --git a/pkgs/applications/misc/mrxvt/default.nix b/pkgs/applications/misc/mrxvt/default.nix index a6efb19b577..6717fc3c97f 100644 --- a/pkgs/applications/misc/mrxvt/default.nix +++ b/pkgs/applications/misc/mrxvt/default.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation { ''; src = fetchurl { - url = mirror://sourceforge/materm/mrxvt-0.5.4.tar.gz; + url = "mirror://sourceforge/materm/mrxvt-0.5.4.tar.gz"; sha256 = "1mqhmnlz32lvld9rc6c1hyz7gjw4anwf39yhbsjkikcgj1das0zl"; }; @@ -33,7 +33,7 @@ stdenv.mkDerivation { Multitabbed lightweight terminal emulator based on rxvt. Supports transparency, backgroundimages, freetype fonts, ... "; - homepage = https://sourceforge.net/projects/materm; + homepage = "https://sourceforge.net/projects/materm"; license = "GPL"; platforms = stdenv.lib.platforms.linux; }; diff --git a/pkgs/applications/misc/mucommander/default.nix b/pkgs/applications/misc/mucommander/default.nix index 12a0720e447..e598e099d06 100644 --- a/pkgs/applications/misc/mucommander/default.nix +++ b/pkgs/applications/misc/mucommander/default.nix @@ -77,7 +77,7 @@ in stdenv.mkDerivation { ''; meta = with stdenv.lib; { - homepage = http://www.mucommander.com/; + homepage = "http://www.mucommander.com/"; description = "Cross-platform file manager"; license = licenses.gpl3; maintainers = with maintainers; [ volth ]; diff --git a/pkgs/applications/misc/multibootusb/default.nix b/pkgs/applications/misc/multibootusb/default.nix index ab8802a1b69..5225f88094f 100644 --- a/pkgs/applications/misc/multibootusb/default.nix +++ b/pkgs/applications/misc/multibootusb/default.nix @@ -76,7 +76,7 @@ python36Packages.buildPythonApplication rec { meta = with stdenv.lib; { description = "Multiboot USB creator for Linux live disks"; - homepage = http://multibootusb.org/; + homepage = "http://multibootusb.org/"; license = licenses.gpl2; maintainers = []; # Looking for a maintainer! }; diff --git a/pkgs/applications/misc/mupdf/default.nix b/pkgs/applications/misc/mupdf/default.nix index 32c117c0173..a3067bc4af8 100644 --- a/pkgs/applications/misc/mupdf/default.nix +++ b/pkgs/applications/misc/mupdf/default.nix @@ -80,8 +80,8 @@ in stdenv.mkDerivation rec { enableParallelBuilding = true; meta = with stdenv.lib; { - homepage = https://mupdf.com; - repositories.git = git://git.ghostscript.com/mupdf.git; + homepage = "https://mupdf.com"; + repositories.git = "git://git.ghostscript.com/mupdf.git"; description = "Lightweight PDF, XPS, and E-book viewer and toolkit written in portable C"; license = licenses.agpl3Plus; maintainers = with maintainers; [ vrthra fpletz ]; diff --git a/pkgs/applications/misc/mwic/default.nix b/pkgs/applications/misc/mwic/default.nix index 249d9ff1d40..3be02e7c41c 100644 --- a/pkgs/applications/misc/mwic/default.nix +++ b/pkgs/applications/misc/mwic/default.nix @@ -1,12 +1,12 @@ { stdenv, fetchurl, pythonPackages }: stdenv.mkDerivation rec { - version = "0.7.7"; + version = "0.7.8"; pname = "mwic"; src = fetchurl { url = "https://github.com/jwilk/mwic/releases/download/${version}/${pname}-${version}.tar.gz"; - sha256 = "0l4anwiiqclymx0awwn4hzaj8n26ycg8nz76wjphsyscn7z2awad"; + sha256 = "0nnhziz9v523hpciylnxfajmxabh2ig5iawzwrfpf7aww70v330x"; }; makeFlags=["PREFIX=\${out}"]; @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = http://jwilk.net/software/mwic; + homepage = "http://jwilk.net/software/mwic"; description = "spell-checker that groups possible misspellings and shows them in their contexts"; license = licenses.mit; maintainers = with maintainers; [ matthiasbeyer ]; diff --git a/pkgs/applications/misc/mystem/default.nix b/pkgs/applications/misc/mystem/default.nix index 6a6c95b6572..27caef9ea2e 100644 --- a/pkgs/applications/misc/mystem/default.nix +++ b/pkgs/applications/misc/mystem/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Morphological analysis of Russian text"; - homepage = https://yandex.ru/dev/mystem/; + homepage = "https://yandex.ru/dev/mystem/"; license = licenses.unfreeRedistributable; maintainers = with maintainers; [ abbradar ]; platforms = [ "x86_64-linux" ]; diff --git a/pkgs/applications/misc/nanoblogger/default.nix b/pkgs/applications/misc/nanoblogger/default.nix index b4d97c368ea..cf7689367bd 100644 --- a/pkgs/applications/misc/nanoblogger/default.nix +++ b/pkgs/applications/misc/nanoblogger/default.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { meta = { description = "Small weblog engine written in Bash for the command line"; - homepage = http://nanoblogger.sourceforge.net/; + homepage = "http://nanoblogger.sourceforge.net/"; license = stdenv.lib.licenses.gpl2; platforms = stdenv.lib.platforms.unix; }; diff --git a/pkgs/applications/misc/navipowm/default.nix b/pkgs/applications/misc/navipowm/default.nix index 9a40e3bc105..80c455f41a0 100644 --- a/pkgs/applications/misc/navipowm/default.nix +++ b/pkgs/applications/misc/navipowm/default.nix @@ -3,7 +3,7 @@ stdenv.mkDerivation rec { name = "navipowm-0.2.4"; src = fetchurl { - url = mirror://sourceforge/navipowm/NaviPOWM-0.2.4.tar.gz; + url = "mirror://sourceforge/navipowm/NaviPOWM-0.2.4.tar.gz"; sha256 = "1kdih8kwpgcgfh6l6njkr9gq2j5hv39xvzmzgvhip553kn6bss7b"; }; @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ qmake4Hook ]; meta = { - homepage = http://navipowm.sourceforge.net/; + homepage = "http://navipowm.sourceforge.net/"; description = "Car navigation system"; license = stdenv.lib.licenses.gpl2; maintainers = with stdenv.lib.maintainers; [ ]; diff --git a/pkgs/applications/misc/navit/default.nix b/pkgs/applications/misc/navit/default.nix index 2263dfc1fbc..099bcbfb25d 100644 --- a/pkgs/applications/misc/navit/default.nix +++ b/pkgs/applications/misc/navit/default.nix @@ -81,7 +81,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = https://www.navit-project.org; + homepage = "https://www.navit-project.org"; description = "Car navigation system with routing engine using OSM maps"; license = licenses.gpl2; maintainers = [ maintainers.genesis ]; diff --git a/pkgs/applications/misc/neap/default.nix b/pkgs/applications/misc/neap/default.nix index 4104d35cf10..992a3c0248a 100644 --- a/pkgs/applications/misc/neap/default.nix +++ b/pkgs/applications/misc/neap/default.nix @@ -36,7 +36,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Systray workspace pager"; - homepage = https://github.com/vzxwco/neap; + homepage = "https://github.com/vzxwco/neap"; license = licenses.bsd2; platforms = platforms.unix; maintainers = [ maintainers.romildo ]; diff --git a/pkgs/applications/misc/netsurf/browser/default.nix b/pkgs/applications/misc/netsurf/browser/default.nix index c1ba5ba23b1..f2fdd01215d 100644 --- a/pkgs/applications/misc/netsurf/browser/default.nix +++ b/pkgs/applications/misc/netsurf/browser/default.nix @@ -81,7 +81,7 @@ stdenv.mkDerivation rec { ]; meta = with stdenv.lib; { - homepage = http://www.netsurf-browser.org/; + homepage = "http://www.netsurf-browser.org/"; description = "Free opensource web browser"; license = licenses.gpl2; maintainers = [ maintainers.vrthra ]; diff --git a/pkgs/applications/misc/netsurf/buildsystem/default.nix b/pkgs/applications/misc/netsurf/buildsystem/default.nix index 0560b1d25b3..9d690546102 100644 --- a/pkgs/applications/misc/netsurf/buildsystem/default.nix +++ b/pkgs/applications/misc/netsurf/buildsystem/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { ]; meta = with stdenv.lib; { - homepage = http://www.netsurf-browser.org/; + homepage = "http://www.netsurf-browser.org/"; description = "Build system for netsurf browser"; license = licenses.gpl2; maintainers = [ maintainers.vrthra ]; diff --git a/pkgs/applications/misc/netsurf/libcss/default.nix b/pkgs/applications/misc/netsurf/libcss/default.nix index ed0b7b12e98..528b0d9b958 100644 --- a/pkgs/applications/misc/netsurf/libcss/default.nix +++ b/pkgs/applications/misc/netsurf/libcss/default.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { NIX_CFLAGS_COMPILE= "-Wno-error=implicit-fallthrough"; meta = with stdenv.lib; { - homepage = http://www.netsurf-browser.org/; + homepage = "http://www.netsurf-browser.org/"; description = "Cascading Style Sheets library for netsurf browser"; license = licenses.gpl2; maintainers = [ maintainers.vrthra ]; diff --git a/pkgs/applications/misc/netsurf/libdom/default.nix b/pkgs/applications/misc/netsurf/libdom/default.nix index de92219e7f9..8dde3e336cd 100644 --- a/pkgs/applications/misc/netsurf/libdom/default.nix +++ b/pkgs/applications/misc/netsurf/libdom/default.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { ]; meta = with stdenv.lib; { - homepage = http://www.netsurf-browser.org/; + homepage = "http://www.netsurf-browser.org/"; description = "Document Object Model library for netsurf browser"; license = licenses.gpl2; maintainers = [ maintainers.vrthra ]; diff --git a/pkgs/applications/misc/netsurf/libhubbub/default.nix b/pkgs/applications/misc/netsurf/libhubbub/default.nix index 03ee66fc598..7cfd0a935f3 100644 --- a/pkgs/applications/misc/netsurf/libhubbub/default.nix +++ b/pkgs/applications/misc/netsurf/libhubbub/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { ]; meta = with stdenv.lib; { - homepage = http://www.netsurf-browser.org/; + homepage = "http://www.netsurf-browser.org/"; description = "HTML5 parser library for netsurf browser"; license = licenses.gpl2; maintainers = [ maintainers.vrthra ]; diff --git a/pkgs/applications/misc/netsurf/libnsbmp/default.nix b/pkgs/applications/misc/netsurf/libnsbmp/default.nix index b0fb18c89b1..a553eb3e715 100644 --- a/pkgs/applications/misc/netsurf/libnsbmp/default.nix +++ b/pkgs/applications/misc/netsurf/libnsbmp/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { ]; meta = with stdenv.lib; { - homepage = http://www.netsurf-browser.org/; + homepage = "http://www.netsurf-browser.org/"; description = "BMP Decoder for netsurf browser"; license = licenses.gpl2; maintainers = [ maintainers.vrthra ]; diff --git a/pkgs/applications/misc/netsurf/libnsfb/default.nix b/pkgs/applications/misc/netsurf/libnsfb/default.nix index 29b0a7867db..4e56ce7f5a1 100644 --- a/pkgs/applications/misc/netsurf/libnsfb/default.nix +++ b/pkgs/applications/misc/netsurf/libnsfb/default.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { ]; meta = with stdenv.lib; { - homepage = http://www.netsurf-browser.org/; + homepage = "http://www.netsurf-browser.org/"; description = "CSS parser and selection library for netsurf browser"; license = licenses.gpl2; maintainers = [ maintainers.vrthra ]; diff --git a/pkgs/applications/misc/netsurf/libnsgif/default.nix b/pkgs/applications/misc/netsurf/libnsgif/default.nix index e826dee0d25..8bb67df70da 100644 --- a/pkgs/applications/misc/netsurf/libnsgif/default.nix +++ b/pkgs/applications/misc/netsurf/libnsgif/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { ]; meta = with stdenv.lib; { - homepage = http://www.netsurf-browser.org/; + homepage = "http://www.netsurf-browser.org/"; description = "GIF Decoder for netsurf browser"; license = licenses.gpl2; maintainers = [ maintainers.vrthra ]; diff --git a/pkgs/applications/misc/netsurf/libnslog/default.nix b/pkgs/applications/misc/netsurf/libnslog/default.nix index 497630c9aa6..43b4622ab03 100644 --- a/pkgs/applications/misc/netsurf/libnslog/default.nix +++ b/pkgs/applications/misc/netsurf/libnslog/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { ]; meta = with stdenv.lib; { - homepage = http://www.netsurf-browser.org/; + homepage = "http://www.netsurf-browser.org/"; description = "NetSurf Parametric Logging Library"; license = licenses.mit; maintainers = [ maintainers.samueldr ]; diff --git a/pkgs/applications/misc/netsurf/libnspsl/default.nix b/pkgs/applications/misc/netsurf/libnspsl/default.nix index f0abbdc049a..5ded38d974e 100644 --- a/pkgs/applications/misc/netsurf/libnspsl/default.nix +++ b/pkgs/applications/misc/netsurf/libnspsl/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { ]; meta = with stdenv.lib; { - homepage = http://www.netsurf-browser.org/; + homepage = "http://www.netsurf-browser.org/"; description = "NetSurf Public Suffix List - Handling library"; license = licenses.mit; maintainers = [ maintainers.samueldr ]; diff --git a/pkgs/applications/misc/netsurf/libnsutils/default.nix b/pkgs/applications/misc/netsurf/libnsutils/default.nix index 3eaa882cb73..6d3a3d1f104 100644 --- a/pkgs/applications/misc/netsurf/libnsutils/default.nix +++ b/pkgs/applications/misc/netsurf/libnsutils/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { ]; meta = with stdenv.lib; { - homepage = http://www.netsurf-browser.org/; + homepage = "http://www.netsurf-browser.org/"; description = "Generalised utility library for netsurf browser"; license = licenses.gpl2; maintainers = [ maintainers.vrthra ]; diff --git a/pkgs/applications/misc/netsurf/libparserutils/default.nix b/pkgs/applications/misc/netsurf/libparserutils/default.nix index ea9d7c9ea85..9fcd5cfebf6 100644 --- a/pkgs/applications/misc/netsurf/libparserutils/default.nix +++ b/pkgs/applications/misc/netsurf/libparserutils/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { ]; meta = with stdenv.lib; { - homepage = http://www.netsurf-browser.org/; + homepage = "http://www.netsurf-browser.org/"; description = "Parser building library for netsurf browser"; license = licenses.gpl2; maintainers = [ maintainers.vrthra ]; diff --git a/pkgs/applications/misc/netsurf/libsvgtiny/default.nix b/pkgs/applications/misc/netsurf/libsvgtiny/default.nix index 9a4f922c2b6..b6e1b5a1667 100644 --- a/pkgs/applications/misc/netsurf/libsvgtiny/default.nix +++ b/pkgs/applications/misc/netsurf/libsvgtiny/default.nix @@ -32,7 +32,7 @@ stdenv.mkDerivation rec { ]; meta = with stdenv.lib; { - homepage = http://www.netsurf-browser.org/; + homepage = "http://www.netsurf-browser.org/"; description = "NetSurf SVG decoder"; license = licenses.mit; maintainers = [ maintainers.samueldr ]; diff --git a/pkgs/applications/misc/netsurf/libutf8proc/default.nix b/pkgs/applications/misc/netsurf/libutf8proc/default.nix index 2144ccd3303..dcd56182e32 100644 --- a/pkgs/applications/misc/netsurf/libutf8proc/default.nix +++ b/pkgs/applications/misc/netsurf/libutf8proc/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { ]; meta = with stdenv.lib; { - homepage = http://www.netsurf-browser.org/; + homepage = "http://www.netsurf-browser.org/"; description = "UTF8 Processing library for netsurf browser"; license = licenses.gpl2; maintainers = [ maintainers.vrthra ]; diff --git a/pkgs/applications/misc/netsurf/libwapcaplet/default.nix b/pkgs/applications/misc/netsurf/libwapcaplet/default.nix index ad59b1be10e..f3c7bcbd1a0 100644 --- a/pkgs/applications/misc/netsurf/libwapcaplet/default.nix +++ b/pkgs/applications/misc/netsurf/libwapcaplet/default.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { NIX_CFLAGS_COMPILE = "-Wno-error=cast-function-type"; meta = with stdenv.lib; { - homepage = http://www.netsurf-browser.org/; + homepage = "http://www.netsurf-browser.org/"; description = "String internment library for netsurf browser"; license = licenses.gpl2; maintainers = [ maintainers.vrthra ]; diff --git a/pkgs/applications/misc/netsurf/nsgenbind/default.nix b/pkgs/applications/misc/netsurf/nsgenbind/default.nix index 88ac4f0c3eb..2dd4b830102 100644 --- a/pkgs/applications/misc/netsurf/nsgenbind/default.nix +++ b/pkgs/applications/misc/netsurf/nsgenbind/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { ]; meta = with stdenv.lib; { - homepage = http://www.netsurf-browser.org/; + homepage = "http://www.netsurf-browser.org/"; description = "Generator for JavaScript bindings for netsurf browser"; license = licenses.gpl2; maintainers = [ maintainers.vrthra ]; diff --git a/pkgs/applications/misc/nix-tour/default.nix b/pkgs/applications/misc/nix-tour/default.nix index 31afed3061a..05ef696f99b 100644 --- a/pkgs/applications/misc/nix-tour/default.nix +++ b/pkgs/applications/misc/nix-tour/default.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "'the tour of nix' from nixcloud.io/tour as offline version"; - homepage = https://nixcloud.io/tour; + homepage = "https://nixcloud.io/tour"; license = licenses.gpl2; platforms = platforms.linux; maintainers = with maintainers; [ qknight ]; diff --git a/pkgs/applications/misc/nixnote2/default.nix b/pkgs/applications/misc/nixnote2/default.nix index dec8b4ba0a7..92bb4ca2207 100644 --- a/pkgs/applications/misc/nixnote2/default.nix +++ b/pkgs/applications/misc/nixnote2/default.nix @@ -37,7 +37,7 @@ mkDerivation rec { meta = with stdenv.lib; { description = "An unofficial client of Evernote"; - homepage = http://www.nixnote.org/; + homepage = "http://www.nixnote.org/"; license = licenses.gpl2Plus; maintainers = with maintainers; [ htr ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/nnn/default.nix b/pkgs/applications/misc/nnn/default.nix index 67f0b4b3926..7adc777c00d 100644 --- a/pkgs/applications/misc/nnn/default.nix +++ b/pkgs/applications/misc/nnn/default.nix @@ -4,17 +4,17 @@ with stdenv.lib; stdenv.mkDerivation rec { pname = "nnn"; - version = "3.0"; + version = "3.1"; src = fetchFromGitHub { owner = "jarun"; repo = pname; rev = "v${version}"; - sha256 = "0kmfg61v3xnf8m4m9nna28sr7hdwqbxwivc7j91zhfj2wpdswywp"; + sha256 = "0wvn3jbxjcpdg9jzxkhx5dlc0zx2idky6mb75fpha8ww1jg7qf1g"; }; configFile = optionalString (conf != null) (builtins.toFile "nnn.h" conf); - preBuild = optionalString (conf != null) "cp ${configFile} nnn.h"; + preBuild = optionalString (conf != null) "cp ${configFile} src/nnn.h"; nativeBuildInputs = [ pkgconfig ]; buildInputs = [ readline ncurses ]; diff --git a/pkgs/applications/misc/noice/default.nix b/pkgs/applications/misc/noice/default.nix index 6cc5dc9066d..2be5a4ab83b 100644 --- a/pkgs/applications/misc/noice/default.nix +++ b/pkgs/applications/misc/noice/default.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { meta = { description = "Small ncurses-based file browser"; - homepage = https://git.2f30.org/noice/; + homepage = "https://git.2f30.org/noice/"; license = licenses.bsd2; platforms = platforms.all; maintainers = with maintainers; [ jfrankenau ]; diff --git a/pkgs/applications/misc/notejot/default.nix b/pkgs/applications/misc/notejot/default.nix index 1c02441474c..3498ef27867 100644 --- a/pkgs/applications/misc/notejot/default.nix +++ b/pkgs/applications/misc/notejot/default.nix @@ -3,13 +3,13 @@ stdenv.mkDerivation rec { pname = "notejot"; - version = "1.6.0"; + version = "1.6.3"; src = fetchFromGitHub { owner = "lainsce"; repo = pname; rev = version; - sha256 = "1b65m9gvq8ziqqgnw3vgjpjb1qw7bww40ngd3gardsjg9lcwpxaf"; + sha256 = "170dzgd6cnf2k3hfifjysmdggpskx6v1pjmblqgbwaj2d3snf3h8"; }; nativeBuildInputs = [ @@ -42,7 +42,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Stupidly-simple sticky notes applet"; - homepage = https://github.com/lainsce/notejot; + homepage = "https://github.com/lainsce/notejot"; license = licenses.gpl2Plus; maintainers = with maintainers; [ worldofpeace ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/notify-osd-customizable/default.nix b/pkgs/applications/misc/notify-osd-customizable/default.nix index d75ec9ef2c2..36fa888e888 100644 --- a/pkgs/applications/misc/notify-osd-customizable/default.nix +++ b/pkgs/applications/misc/notify-osd-customizable/default.nix @@ -40,7 +40,7 @@ in stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Daemon that displays passive pop-up notifications"; - homepage = https://launchpad.net/notify-osd; + homepage = "https://launchpad.net/notify-osd"; license = licenses.gpl3; maintainers = [ maintainers.imalison ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/notify-osd/default.nix b/pkgs/applications/misc/notify-osd/default.nix index 484ff62e9e6..e2bff003118 100644 --- a/pkgs/applications/misc/notify-osd/default.nix +++ b/pkgs/applications/misc/notify-osd/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Daemon that displays passive pop-up notifications"; - homepage = https://launchpad.net/notify-osd; + homepage = "https://launchpad.net/notify-osd"; license = licenses.gpl3; maintainers = [ maintainers.bodil ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/nrsc5/default.nix b/pkgs/applications/misc/nrsc5/default.nix index 3ad83776842..ada603cba96 100644 --- a/pkgs/applications/misc/nrsc5/default.nix +++ b/pkgs/applications/misc/nrsc5/default.nix @@ -43,7 +43,7 @@ in stdenv.mkDerivation { cmakeFlags = [ "-DUSE_COLOR=ON" "-DUSE_FAAD2=ON" ]; meta = with stdenv.lib; { - homepage = https://github.com/theori-io/nrsc5; + homepage = "https://github.com/theori-io/nrsc5"; description = "HD-Radio decoder for RTL-SDR"; platforms = stdenv.lib.platforms.linux; license = licenses.gpl3; diff --git a/pkgs/applications/misc/nut/default.nix b/pkgs/applications/misc/nut/default.nix index 8b0cab31588..8f188818d4f 100644 --- a/pkgs/applications/misc/nut/default.nix +++ b/pkgs/applications/misc/nut/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, neon, libusb, openssl, udev, avahi, freeipmi +{ stdenv, fetchurl, pkgconfig, neon, libusb-compat-0_1, openssl, udev, avahi, freeipmi , libtool, makeWrapper, autoreconfHook, fetchpatch }: @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { }) ]; - buildInputs = [ neon libusb openssl udev avahi freeipmi ]; + buildInputs = [ neon libusb-compat-0_1 openssl udev avahi freeipmi ]; nativeBuildInputs = [ autoreconfHook libtool pkgconfig makeWrapper ]; @@ -38,7 +38,7 @@ stdenv.mkDerivation rec { postInstall = '' wrapProgram $out/bin/nut-scanner --prefix LD_LIBRARY_PATH : \ - "$out/lib:${neon}/lib:${libusb.out}/lib:${avahi}/lib:${freeipmi}/lib" + "$out/lib:${neon}/lib:${libusb-compat-0_1.out}/lib:${avahi}/lib:${freeipmi}/lib" ''; meta = with stdenv.lib; { @@ -48,8 +48,8 @@ stdenv.mkDerivation rec { interface for monitoring and administering UPS, PDU and SCD hardware. It uses a layered approach to connect all of the parts. ''; - homepage = https://networkupstools.org/; - repositories.git = https://github.com/networkupstools/nut.git; + homepage = "https://networkupstools.org/"; + repositories.git = "https://github.com/networkupstools/nut.git"; platforms = platforms.linux; maintainers = [ maintainers.pierron ]; license = with licenses; [ gpl1Plus gpl2Plus gpl3Plus ]; diff --git a/pkgs/applications/misc/obinskit/default.nix b/pkgs/applications/misc/obinskit/default.nix index ff09500c43a..aa11c069a7a 100644 --- a/pkgs/applications/misc/obinskit/default.nix +++ b/pkgs/applications/misc/obinskit/default.nix @@ -29,11 +29,11 @@ let in stdenv.mkDerivation rec { pname = "obinskit"; - version = "1.1.1"; + version = "1.1.4"; src = fetchurl { url = "http://releases.obins.net/occ/linux/tar/ObinsKit_${version}_x64.tar.gz"; - sha256 = "0052m4msslc4k9g3i5vl933cz5q2n1affxhnm433w4apajr8h28h"; + sha256 = "0q422rmfn4k4ww1qlgrwdmxz4l10dxkd6piynbcw5cr4i5icnh2l"; }; unpackPhase = "tar -xzf $src"; diff --git a/pkgs/applications/misc/ocropus/default.nix b/pkgs/applications/misc/ocropus/default.nix index a604349afb0..ef371dc59ff 100644 --- a/pkgs/applications/misc/ocropus/default.nix +++ b/pkgs/applications/misc/ocropus/default.nix @@ -52,7 +52,7 @@ pythonPackages.buildPythonApplication rec { meta = with stdenv.lib; { description = "Open source document analysis and OCR system"; license = licenses.asl20; - homepage = https://github.com/tmbdev/ocropy/; + homepage = "https://github.com/tmbdev/ocropy/"; maintainers = with maintainers; [ domenkozar ]; platforms = platforms.linux; }; diff --git a/pkgs/applications/misc/octoprint/default.nix b/pkgs/applications/misc/octoprint/default.nix index 0f03cd7fae2..a03e7ee0c7f 100644 --- a/pkgs/applications/misc/octoprint/default.nix +++ b/pkgs/applications/misc/octoprint/default.nix @@ -90,7 +90,7 @@ let ]; meta = with stdenv.lib; { - homepage = https://octoprint.org/; + homepage = "https://octoprint.org/"; description = "The snappy web interface for your 3D printer"; license = licenses.agpl3; maintainers = with maintainers; [ abbradar gebner WhittlesJr ]; diff --git a/pkgs/applications/misc/octoprint/plugins.nix b/pkgs/applications/misc/octoprint/plugins.nix index 93c2d8c2edc..b5d52f5e5f8 100644 --- a/pkgs/applications/misc/octoprint/plugins.nix +++ b/pkgs/applications/misc/octoprint/plugins.nix @@ -41,7 +41,7 @@ in { meta = with stdenv.lib; { description = "OctoPrint plugin for the Micro 3D printer"; - homepage = https://github.com/donovan6000/M33-Fio; + homepage = "https://github.com/donovan6000/M33-Fio"; license = licenses.gpl3; maintainers = with maintainers; [ abbradar ]; }; @@ -62,7 +62,7 @@ in { meta = with stdenv.lib; { description = "Publish printer status MQTT"; - homepage = https://github.com/OctoPrint/OctoPrint-MQTT; + homepage = "https://github.com/OctoPrint/OctoPrint-MQTT"; license = licenses.agpl3; maintainers = with maintainers; [ peterhoeg ]; }; @@ -81,7 +81,7 @@ in { meta = with stdenv.lib; { description = "Show printers status in window title"; - homepage = https://github.com/MoonshineSG/OctoPrint-TitleStatus; + homepage = "https://github.com/MoonshineSG/OctoPrint-TitleStatus"; license = licenses.agpl3; maintainers = with maintainers; [ abbradar ]; }; @@ -100,7 +100,7 @@ in { meta = with stdenv.lib; { description = "A simple stl viewer tab for OctoPrint"; - homepage = https://github.com/jneilliii/Octoprint-STLViewer; + homepage = "https://github.com/jneilliii/Octoprint-STLViewer"; license = licenses.agpl3; maintainers = with maintainers; [ abbradar ]; }; diff --git a/pkgs/applications/misc/omegat.nix b/pkgs/applications/misc/omegat.nix index 27d7ad8730b..47536cc9f6a 100644 --- a/pkgs/applications/misc/omegat.nix +++ b/pkgs/applications/misc/omegat.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation { pname = "omegat"; src = fetchurl { # their zip has repeated files or something, so no fetchzip - url = mirror://sourceforge/project/omegat/OmegaT%20-%20Standard/OmegaT%204.3.0/OmegaT_4.3.0_Without_JRE.zip; + url = "mirror://sourceforge/project/omegat/OmegaT%20-%20Standard/OmegaT%204.3.0/OmegaT_4.3.0_Without_JRE.zip"; sha256 = "0axz7r30p34z5hgvdglznc82g7yvm3g56dv5190jixskx6ba58rs"; }; @@ -32,7 +32,7 @@ stdenv.mkDerivation { tool with fuzzy matching, translation memory, keyword search, glossaries, and translation leveraging into updated projects. ''; - homepage = http://www.omegat.org/; + homepage = "http://www.omegat.org/"; license = licenses.gpl3Plus; maintainers = with maintainers; [ t184256 ]; platforms = [ "i686-linux" "x86_64-linux" ]; diff --git a/pkgs/applications/misc/onboard/default.nix b/pkgs/applications/misc/onboard/default.nix index 1e578cde512..e427519d4d6 100644 --- a/pkgs/applications/misc/onboard/default.nix +++ b/pkgs/applications/misc/onboard/default.nix @@ -173,7 +173,7 @@ python3.pkgs.buildPythonApplication rec { ''; meta = with stdenv.lib; { - homepage = https://launchpad.net/onboard; + homepage = "https://launchpad.net/onboard"; description = "Onscreen keyboard useful for tablet PC users and for mobility impaired users"; maintainers = with maintainers; [ johnramsden ]; license = licenses.gpl3; diff --git a/pkgs/applications/misc/openbox-menu/default.nix b/pkgs/applications/misc/openbox-menu/default.nix index 8f7f74f7123..e5857010324 100644 --- a/pkgs/applications/misc/openbox-menu/default.nix +++ b/pkgs/applications/misc/openbox-menu/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { installPhase = "make install prefix=$out"; meta = { - homepage = http://fabrice.thiroux.free.fr/openbox-menu_en.html; + homepage = "http://fabrice.thiroux.free.fr/openbox-menu_en.html"; description = "Dynamic XDG menu generator for Openbox"; longDescription = '' Openbox-menu is a pipemenu for Openbox window manager. It provides a diff --git a/pkgs/applications/misc/openbrf/default.nix b/pkgs/applications/misc/openbrf/default.nix index e943263600c..8e990b6dffb 100644 --- a/pkgs/applications/misc/openbrf/default.nix +++ b/pkgs/applications/misc/openbrf/default.nix @@ -1,7 +1,7 @@ -{ stdenv, fetchFromGitHub, qtbase, vcg, glew, qmake, libGLU, libGL }: +{ mkDerivation, stdenv, fetchFromGitHub, qtbase, vcg, glew, qmake, libGLU, libGL }: -stdenv.mkDerivation { +mkDerivation { name = "openbrf-unstable-2016-01-09"; src = fetchFromGitHub { @@ -39,7 +39,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "A tool to edit resource files (BRF)"; - homepage = https://github.com/cfcohen/openbrf; + homepage = "https://github.com/cfcohen/openbrf"; maintainers = with stdenv.lib.maintainers; [ abbradar ]; license = licenses.free; platforms = platforms.linux; diff --git a/pkgs/applications/misc/opencpn/default.nix b/pkgs/applications/misc/opencpn/default.nix index 375552aaa33..f5a88cbaee1 100644 --- a/pkgs/applications/misc/opencpn/default.nix +++ b/pkgs/applications/misc/opencpn/default.nix @@ -28,6 +28,6 @@ stdenv.mkDerivation rec { maintainers = [ stdenv.lib.maintainers.kragniz ]; platforms = [ "x86_64-linux" ]; license = stdenv.lib.licenses.gpl2; - homepage = https://opencpn.org/; + homepage = "https://opencpn.org/"; }; } diff --git a/pkgs/applications/misc/openjump/default.nix b/pkgs/applications/misc/openjump/default.nix index c98defee57a..e537180686c 100644 --- a/pkgs/applications/misc/openjump/default.nix +++ b/pkgs/applications/misc/openjump/default.nix @@ -4,7 +4,7 @@ stdenv.mkDerivation { name = "openjump-1.3.1"; src = fetchurl { - url = mirror://sourceforge/jump-pilot/OpenJUMP/1.3.1/openjump-1.3.1.zip; + url = "mirror://sourceforge/jump-pilot/OpenJUMP/1.3.1/openjump-1.3.1.zip"; sha256 = "0y4z53yx0x7rp3c8rnj028ni3gr47r35apgcpqp3jl7r2di6zgqm"; }; @@ -31,7 +31,7 @@ stdenv.mkDerivation { meta = { description = "Open source Geographic Information System (GIS) written in the Java programming language"; - homepage = http://www.openjump.org/index.html; + homepage = "http://www.openjump.org/index.html"; license = stdenv.lib.licenses.gpl2; maintainers = [stdenv.lib.maintainers.marcweber]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/misc/opentx/default.nix b/pkgs/applications/misc/opentx/default.nix index 370f88d7b47..f20d5ccdc4a 100644 --- a/pkgs/applications/misc/opentx/default.nix +++ b/pkgs/applications/misc/opentx/default.nix @@ -1,50 +1,38 @@ -{ stdenv, fetchFromGitHub -, cmake, gcc-arm-embedded, binutils-arm-embedded, python -, qt5, SDL, gtest +{ stdenv, mkDerivation, fetchFromGitHub +, cmake, gcc-arm-embedded, python3Packages +, qtbase, qtmultimedia, qttranslations, SDL, gtest , dfu-util, avrdude }: -let - - version = "2.2.1"; - -in stdenv.mkDerivation { - +mkDerivation rec { pname = "opentx"; - inherit version; + version = "2.3.7"; src = fetchFromGitHub { owner = "opentx"; repo = "opentx"; - rev = version; - sha256 = "01lnnkrxach21aivnx1k1iqhih02nixh8c4nk6rpw408p13him9g"; + rev = "release/${version}"; + sha256 = "1wl3bk7s8h20dfys1hblzxc0br9zlwhcqlghgsbn81ki0xb6jmkf"; }; enableParallelBuilding = true; - nativeBuildInputs = [ - cmake - gcc-arm-embedded binutils-arm-embedded - ]; + nativeBuildInputs = [ cmake gcc-arm-embedded python3Packages.pillow ]; - buildInputs = with qt5; [ - python python.pkgs.pyqt4 - qtbase qtmultimedia qttranslations - SDL - ]; + buildInputs = [ qtbase qtmultimedia qttranslations SDL ]; postPatch = '' - sed -i companion/src/burnconfigdialog.cpp -e 's|/usr/.*bin/dfu-util|${dfu-util}/bin/dfu-util|' - sed -i companion/src/burnconfigdialog.cpp -e 's|/usr/.*bin/avrdude|${avrdude}/bin/avrdude|' + sed -i companion/src/burnconfigdialog.cpp \ + -e 's|/usr/.*bin/dfu-util|${dfu-util}/bin/dfu-util|' \ + -e 's|/usr/.*bin/avrdude|${avrdude}/bin/avrdude|' ''; cmakeFlags = [ "-DGTEST_ROOT=${gtest.src}/googletest" - "-DQT_TRANSLATIONS_DIR=${qt5.qttranslations}/translations" + "-DQT_TRANSLATIONS_DIR=${qttranslations}/translations" # XXX I would prefer to include these here, though we will need to file a bug upstream to get that changed. #"-DDFU_UTIL_PATH=${dfu-util}/bin/dfu-util" #"-DAVRDUDE_PATH=${avrdude}/bin/avrdude" - "-DNANO=NO" ]; meta = with stdenv.lib; { @@ -54,11 +42,10 @@ in stdenv.mkDerivation { firmware to the radio, backing up model settings, editing settings and running radio simulators. ''; - homepage = https://open-tx.org/; - license = stdenv.lib.licenses.gpl2; - platforms = [ "i686-linux" "x86_64-linux" ]; - maintainers = with maintainers; [ elitak ]; - broken = true; + homepage = "https://www.open-tx.org/"; + license = licenses.gpl2; + platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" ]; + maintainers = with maintainers; [ elitak lopsided98 ]; }; } diff --git a/pkgs/applications/misc/orca/default.nix b/pkgs/applications/misc/orca/default.nix index 998d5d528e9..c9fc0ff30fc 100644 --- a/pkgs/applications/misc/orca/default.nix +++ b/pkgs/applications/misc/orca/default.nix @@ -35,13 +35,13 @@ buildPythonApplication rec { pname = "orca"; - version = "3.34.2"; + version = "3.36.1"; format = "other"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "0aaagz8mxvfigrsdbmg22q44vf5yhkbw4rh4cnizysbfvijk4dan"; + sha256 = "07w3k0f791zd1pj9j6d27k7gk7c6hx112ngrdz18h573df5n9b61"; }; patches = [ @@ -110,7 +110,7 @@ buildPythonApplication rec { Needs `services.gnome3.at-spi2-core.enable = true;` in `configuration.nix`. ''; - maintainers = with maintainers; [ berce ] ++ gnome3.maintainers; + maintainers = with maintainers; [ berce ] ++ teams.gnome.members; license = licenses.lgpl21; platforms = platforms.linux; }; diff --git a/pkgs/applications/misc/orpie/default.nix b/pkgs/applications/misc/orpie/default.nix index e404da974c4..d869b093955 100644 --- a/pkgs/applications/misc/orpie/default.nix +++ b/pkgs/applications/misc/orpie/default.nix @@ -12,7 +12,7 @@ stdenv.mkDerivation rec { buildInputs = [ ncurses gsl ] ++ (with ocamlPackages; [ ocaml camlp4 ]); meta = { - homepage = https://github.com/pelzlpj/orpie; + homepage = "https://github.com/pelzlpj/orpie"; description = "A fullscreen RPN calculator for the console"; license = stdenv.lib.licenses.gpl2; platforms = stdenv.lib.platforms.all; diff --git a/pkgs/applications/misc/osmctools/default.nix b/pkgs/applications/misc/osmctools/default.nix index c03e57920da..b0f1f48d9ae 100644 --- a/pkgs/applications/misc/osmctools/default.nix +++ b/pkgs/applications/misc/osmctools/default.nix @@ -17,9 +17,9 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Command line tools for transforming Open Street Map files"; homepage = [ - https://wiki.openstreetmap.org/wiki/osmconvert - https://wiki.openstreetmap.org/wiki/osmfilter - https://wiki.openstreetmap.org/wiki/osmupdate + "https://wiki.openstreetmap.org/wiki/osmconvert" + "https://wiki.openstreetmap.org/wiki/osmfilter" + "https://wiki.openstreetmap.org/wiki/osmupdate" ]; maintainers = with maintainers; [ sikmir ]; platforms = platforms.unix; diff --git a/pkgs/applications/misc/pcmanfm/default.nix b/pkgs/applications/misc/pcmanfm/default.nix index c6cd118aea8..202e7a2de95 100644 --- a/pkgs/applications/misc/pcmanfm/default.nix +++ b/pkgs/applications/misc/pcmanfm/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { configureFlags = optional withGtk3 "--with-gtk=3"; meta = with stdenv.lib; { - homepage = https://blog.lxde.org/category/pcmanfm/; + homepage = "https://blog.lxde.org/category/pcmanfm/"; license = licenses.gpl2Plus; description = "File manager with GTK interface"; maintainers = [ maintainers.ttuegel ]; diff --git a/pkgs/applications/misc/pcmanx-gtk2/default.nix b/pkgs/applications/misc/pcmanx-gtk2/default.nix index 17253173a5e..6c3241d629b 100644 --- a/pkgs/applications/misc/pcmanx-gtk2/default.nix +++ b/pkgs/applications/misc/pcmanx-gtk2/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = https://pcman.ptt.cc; + homepage = "https://pcman.ptt.cc"; license = licenses.gpl2; description = "Telnet BBS browser with GTK interface"; maintainers = [ maintainers.sifmelcara ]; diff --git a/pkgs/applications/misc/pdf-quench/default.nix b/pkgs/applications/misc/pdf-quench/default.nix index 9756d9b42b0..d364074d445 100644 --- a/pkgs/applications/misc/pdf-quench/default.nix +++ b/pkgs/applications/misc/pdf-quench/default.nix @@ -28,7 +28,7 @@ pythonPackages.buildPythonApplication { ''; meta = with stdenv.lib; { - homepage = https://github.com/linuxerwang/pdf-quench; + homepage = "https://github.com/linuxerwang/pdf-quench"; description = "A visual tool for cropping pdf files"; platforms = platforms.linux; license = licenses.gpl2; diff --git a/pkgs/applications/misc/pdfarranger/default.nix b/pkgs/applications/misc/pdfarranger/default.nix index ed54ccbb0a1..58d889484d6 100644 --- a/pkgs/applications/misc/pdfarranger/default.nix +++ b/pkgs/applications/misc/pdfarranger/default.nix @@ -5,13 +5,13 @@ python3Packages.buildPythonApplication rec { pname = "pdfarranger"; - version = "1.3.1"; + version = "1.4.2"; src = fetchFromGitHub { owner = "jeromerobert"; repo = pname; rev = version; - sha256 = "1f8m8r81322i97wkqpmf7a4kiwnq244n6cnbldh03jc49vwq2kxx"; + sha256 = "11q14pxyp5z4y3gabjnis3ip3xss6n94zjl42akwf27dxgxlpcjk"; }; nativeBuildInputs = [ @@ -26,7 +26,8 @@ python3Packages.buildPythonApplication rec { propagatedBuildInputs = with python3Packages; [ pygobject3 - pypdf2 + pikepdf + setuptools ]; # incompatible with wrapGAppsHook diff --git a/pkgs/applications/misc/pdfdiff/default.nix b/pkgs/applications/misc/pdfdiff/default.nix index ee54904bfd6..93ca8c64479 100644 --- a/pkgs/applications/misc/pdfdiff/default.nix +++ b/pkgs/applications/misc/pdfdiff/default.nix @@ -33,7 +33,7 @@ py.buildPythonApplication rec { ''; meta = with stdenv.lib; { - homepage = http://www.cs.ox.ac.uk/people/cas.cremers/misc/pdfdiff.html; + homepage = "http://www.cs.ox.ac.uk/people/cas.cremers/misc/pdfdiff.html"; description = "Tool to view the difference between two PDF or PS files"; license = licenses.gpl2Plus; platforms = platforms.linux; diff --git a/pkgs/applications/misc/pdfpc/default.nix b/pkgs/applications/misc/pdfpc/default.nix index fa500989cac..d8203b9e7b5 100644 --- a/pkgs/applications/misc/pdfpc/default.nix +++ b/pkgs/applications/misc/pdfpc/default.nix @@ -41,7 +41,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A presenter console with multi-monitor support for PDF files"; - homepage = https://pdfpc.github.io/; + homepage = "https://pdfpc.github.io/"; license = licenses.gpl2Plus; maintainers = with maintainers; [ pSub ]; platforms = platforms.unix; diff --git a/pkgs/applications/misc/pdfsam-basic/default.nix b/pkgs/applications/misc/pdfsam-basic/default.nix index d82f8e1664b..abf49f93684 100644 --- a/pkgs/applications/misc/pdfsam-basic/default.nix +++ b/pkgs/applications/misc/pdfsam-basic/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "pdfsam-basic"; - version = "4.1.1"; + version = "4.1.2"; src = fetchurl { url = "https://github.com/torakiki/pdfsam/releases/download/v${version}/pdfsam_${version}-1_amd64.deb"; - sha256 = "17qb3l7xibhb3fbskddvparrj2cxj4kz9qbril094kxrgbvyc9gs"; + sha256 = "1k1azxz92vkb4hylk4ki0szfn47ids0lwg01zfs54yc89j0c6142"; }; unpackPhase = '' diff --git a/pkgs/applications/misc/pell/default.nix b/pkgs/applications/misc/pell/default.nix index fc4e5229c9c..ae96ce6925e 100644 --- a/pkgs/applications/misc/pell/default.nix +++ b/pkgs/applications/misc/pell/default.nix @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = https://github.com/ebzzry/pell; + homepage = "https://github.com/ebzzry/pell"; description = "A simple host availability monitor"; license = licenses.mit; maintainers = [ maintainers.ebzzry ]; diff --git a/pkgs/applications/misc/perkeep/default.nix b/pkgs/applications/misc/perkeep/default.nix index ae81ef3c9f6..5a1e5ba65de 100644 --- a/pkgs/applications/misc/perkeep/default.nix +++ b/pkgs/applications/misc/perkeep/default.nix @@ -13,13 +13,13 @@ let in buildGoPackage rec { name = "perkeep-${version}"; - version = "unstable-2019-07-29"; + version = "unstable-2020-03-23"; src = fetchFromGitHub { owner = "perkeep"; repo = "perkeep"; - rev = "c9f78d02adf9740f3b8d403a1418554293cc9f41"; - sha256 = "11rin94pjzg0kvizrq9ss42fjw7wfwx3g1pk8zdlhyfkiwwh2rmg"; + rev = "c2e31370ddefd86b6112a5d891100ea3382a4254"; + sha256 = "0jf02k20ms7h60wglcq6dj3vqi9rlfww7db5iplgwznbij70c1i4"; }; goPackagePath = "perkeep.org"; @@ -43,7 +43,7 @@ in buildGoPackage rec { meta = with lib; { description = "A way of storing, syncing, sharing, modelling and backing up content (née Camlistore)"; - homepage = https://perkeep.org; + homepage = "https://perkeep.org"; license = licenses.asl20; maintainers = with maintainers; [ cstrahan kalbasit ]; platforms = platforms.unix; diff --git a/pkgs/applications/misc/pgadmin/default.nix b/pkgs/applications/misc/pgadmin/default.nix index 86e10ae0943..5fc0703e011 100644 --- a/pkgs/applications/misc/pgadmin/default.nix +++ b/pkgs/applications/misc/pgadmin/default.nix @@ -33,7 +33,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "PostgreSQL administration GUI tool"; - homepage = https://www.pgadmin.org; + homepage = "https://www.pgadmin.org"; license = licenses.gpl2; maintainers = with maintainers; [ domenkozar wmertens ]; platforms = platforms.unix; diff --git a/pkgs/applications/misc/pgmanage/default.nix b/pkgs/applications/misc/pgmanage/default.nix index 241d5786468..68f29cb9b9a 100644 --- a/pkgs/applications/misc/pgmanage/default.nix +++ b/pkgs/applications/misc/pgmanage/default.nix @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { PostgreSQL interface can hope to be. (Note: pgManage replaces Postage, which is no longer maintained.) ''; - homepage = https://github.com/pgManage/pgManage; + homepage = "https://github.com/pgManage/pgManage"; license = licenses.postgresql; maintainers = [ maintainers.basvandijk ]; }; diff --git a/pkgs/applications/misc/pgmodeler/default.nix b/pkgs/applications/misc/pgmodeler/default.nix index 83e45e25581..7532c6e9bc9 100644 --- a/pkgs/applications/misc/pgmodeler/default.nix +++ b/pkgs/applications/misc/pgmodeler/default.nix @@ -24,9 +24,9 @@ mkDerivation rec { meta = with stdenv.lib; { description = "A database modeling tool for PostgreSQL"; longDescription = ''pgModeler (PostgreSQL Database Modeler) is an open source database modeling tool designed for PostgreSQL.''; - homepage = https://pgmodeler.io/; + homepage = "https://pgmodeler.io/"; license = licenses.gpl3; maintainers = [ maintainers.esclear ]; platforms = platforms.linux; }; -} \ No newline at end of file +} diff --git a/pkgs/applications/misc/phwmon/default.nix b/pkgs/applications/misc/phwmon/default.nix index 6fb70f1c9a2..017383a79a2 100644 --- a/pkgs/applications/misc/phwmon/default.nix +++ b/pkgs/applications/misc/phwmon/default.nix @@ -31,7 +31,7 @@ stdenv.mkDerivation { ''; meta = { - homepage = https://gitlab.com/o9000/phwmon; + homepage = "https://gitlab.com/o9000/phwmon"; description = "Hardware monitor (CPU, memory, network and disk I/O) for the system tray"; license = stdenv.lib.licenses.gpl2; platforms = stdenv.lib.platforms.unix; diff --git a/pkgs/applications/misc/playonlinux/default.nix b/pkgs/applications/misc/playonlinux/default.nix index 48188574ad4..e3b7c48d2b4 100644 --- a/pkgs/applications/misc/playonlinux/default.nix +++ b/pkgs/applications/misc/playonlinux/default.nix @@ -9,7 +9,7 @@ , imagemagick , netcat-gnu , p7zip -, python2Packages +, python2 , unzip , wget , wine @@ -27,25 +27,25 @@ let version = "4.3.4"; - binpath = stdenv.lib.makeBinPath - [ cabextract - python2Packages.python - gettext - glxinfo - gnupg - icoutils - imagemagick - netcat-gnu - p7zip - unzip - wget - wine - xdg-user-dirs - xterm - which - curl - jq - ]; + binpath = stdenv.lib.makeBinPath [ + cabextract + python + gettext + glxinfo + gnupg + icoutils + imagemagick + netcat-gnu + p7zip + unzip + wget + wine + xdg-user-dirs + xterm + which + curl + jq + ]; ld32 = if stdenv.hostPlatform.system == "x86_64-linux" then "${stdenv.cc}/nix-support/dynamic-linker-m32" @@ -54,6 +54,11 @@ let ld64 = "${stdenv.cc}/nix-support/dynamic-linker"; libs = pkgs: stdenv.lib.makeLibraryPath [ xorg.libX11 libGL ]; + python = python2.withPackages(ps: with ps; [ + wxPython + setuptools + ]); + in stdenv.mkDerivation { pname = "playonlinux"; inherit version; @@ -65,15 +70,13 @@ in stdenv.mkDerivation { nativeBuildInputs = [ makeWrapper ]; - buildInputs = - [ python2Packages.python - python2Packages.wxPython - python2Packages.setuptools - xorg.libX11 - libGL - ]; + buildInputs = [ + xorg.libX11 + libGL + python + ]; - patchPhase = '' + postPatch = '' patchShebangs python tests/python sed -i "s/ %F//g" etc/PlayOnLinux.desktop ''; @@ -85,7 +88,6 @@ in stdenv.mkDerivation { install -D -m644 etc/PlayOnLinux.desktop $out/share/applications/playonlinux.desktop makeWrapper $out/share/playonlinux/playonlinux $out/bin/playonlinux \ - --prefix PYTHONPATH : $PYTHONPATH:$(toPythonPath "$out") \ --prefix PATH : ${binpath} bunzip2 $out/share/playonlinux/bin/check_dd_x86.bz2 @@ -103,7 +105,7 @@ in stdenv.mkDerivation { meta = with stdenv.lib; { description = "GUI for managing Windows programs under linux"; - homepage = https://www.playonlinux.com/; + homepage = "https://www.playonlinux.com/"; license = licenses.gpl3; maintainers = [ maintainers.a1russell ]; platforms = [ "x86_64-linux" "i686-linux" ]; diff --git a/pkgs/applications/misc/polar-bookshelf/default.nix b/pkgs/applications/misc/polar-bookshelf/default.nix index 8413f8c8f10..fc86b2e885d 100644 --- a/pkgs/applications/misc/polar-bookshelf/default.nix +++ b/pkgs/applications/misc/polar-bookshelf/default.nix @@ -81,7 +81,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = https://getpolarized.io/; + homepage = "https://getpolarized.io/"; description = "Personal knowledge repository for PDF and web content supporting incremental reading and document annotation"; license = stdenv.lib.licenses.gpl3; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/misc/posterazor/default.nix b/pkgs/applications/misc/posterazor/default.nix index 7209ee3e400..674570ec3dd 100644 --- a/pkgs/applications/misc/posterazor/default.nix +++ b/pkgs/applications/misc/posterazor/default.nix @@ -29,7 +29,7 @@ stdenv.mkDerivation { ''; meta = with stdenv.lib; { - homepage = http://posterazor.sourceforge.net/; + homepage = "http://posterazor.sourceforge.net/"; description = "Cuts a raster image into pieces which can afterwards be printed out and assembled to a poster"; maintainers = [ maintainers.madjar ]; license = licenses.gpl3Plus; diff --git a/pkgs/applications/misc/printrun/default.nix b/pkgs/applications/misc/printrun/default.nix index 34144e35bd5..cadd98c7426 100644 --- a/pkgs/applications/misc/printrun/default.nix +++ b/pkgs/applications/misc/printrun/default.nix @@ -30,7 +30,7 @@ python27Packages.buildPythonApplication rec { meta = with stdenv.lib; { description = "Pronterface, Pronsole, and Printcore - Pure Python 3d printing host software"; - homepage = https://github.com/kliment/Printrun; + homepage = "https://github.com/kliment/Printrun"; license = licenses.gpl3; platforms = platforms.linux; }; diff --git a/pkgs/applications/misc/procmail/default.nix b/pkgs/applications/misc/procmail/default.nix index cd3a46ab09b..1e6c558defb 100644 --- a/pkgs/applications/misc/procmail/default.nix +++ b/pkgs/applications/misc/procmail/default.nix @@ -6,7 +6,7 @@ stdenv.mkDerivation { patches = [ ./CVE-2014-3618.patch (fetchurl { - url = https://sources.debian.org/data/main/p/procmail/3.22-26/debian/patches/30; + url = "https://sources.debian.org/data/main/p/procmail/3.22-26/debian/patches/30"; sha256 = "11zmz1bj0v9pay3ldmyyg7473b80h89gycrhndsgg9q50yhcqaaq"; name = "CVE-2017-16844"; }) @@ -25,13 +25,13 @@ stdenv.mkDerivation { ''; src = fetchurl { - url = ftp://ftp.fu-berlin.de/pub/unix/mail/procmail/procmail-3.22.tar.gz; + url = "ftp://ftp.fu-berlin.de/pub/unix/mail/procmail/procmail-3.22.tar.gz"; sha256 = "05z1c803n5cppkcq99vkyd5myff904lf9sdgynfqngfk9nrpaz08"; }; meta = with stdenv.lib; { description = "Mail processing and filtering utility"; - homepage = http://www.procmail.org/; + homepage = "http://www.procmail.org/"; license = licenses.gpl2; platforms = platforms.unix; maintainers = with maintainers; [ gebner ]; diff --git a/pkgs/applications/misc/prusa-slicer/default.nix b/pkgs/applications/misc/prusa-slicer/default.nix index caf4f270a15..144addf02c6 100644 --- a/pkgs/applications/misc/prusa-slicer/default.nix +++ b/pkgs/applications/misc/prusa-slicer/default.nix @@ -1,32 +1,34 @@ -{ stdenv, lib, fetchFromGitHub, makeWrapper, cmake, pkgconfig +{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig , boost, cereal, curl, eigen, expat, glew, libpng, tbb, wxGTK31 , gtest, nlopt, xorg, makeDesktopItem +, cgal_5, gmp, ilmbase, mpfr, qhull, openvdb, systemd }: -let - nloptVersion = if lib.hasAttr "version" nlopt - then lib.getAttr "version" nlopt - else "2.4"; -in stdenv.mkDerivation rec { pname = "prusa-slicer"; - version = "2.1.1"; + version = "2.2.0"; enableParallelBuilding = true; nativeBuildInputs = [ cmake - makeWrapper pkgconfig ]; buildInputs = [ boost cereal + cgal_5 curl eigen expat glew + gmp + ilmbase libpng + mpfr + nlopt + openvdb + systemd tbb wxGTK31 xorg.libX11 @@ -35,31 +37,34 @@ stdenv.mkDerivation rec { checkInputs = [ gtest ]; # The build system uses custom logic - defined in - # xs/src/libnest2d/cmake_modules/FindNLopt.cmake in the package source - - # for finding the nlopt library, which doesn't pick up the package in the nix store. - # We need to set the path via the NLOPT environment variable instead. + # cmake/modules/FindNLopt.cmake in the package source - for finding the nlopt + # library, which doesn't pick up the package in the nix store. We + # additionally need to set the path via the NLOPT environment variable. NLOPT = nlopt; - # Disable compiler warnings that clutter the build log + # Disable compiler warnings that clutter the build log. # It seems to be a known issue for Eigen: # http://eigen.tuxfamily.org/bz/show_bug.cgi?id=1221 NIX_CFLAGS_COMPILE = "-Wno-ignored-attributes"; + # prusa-slicer uses dlopen on `libudev.so` at runtime + NIX_LDFLAGS = "-ludev"; + prePatch = '' # In nix ioctls.h isn't available from the standard kernel-headers package # like in other distributions. The copy in glibc seems to be identical to the # one in the kernel though, so we use that one instead. sed -i 's|"/usr/include/asm-generic/ioctls.h"||g' src/libslic3r/GCodeSender.cpp - '' + lib.optionalString (lib.versionOlder "2.5" nloptVersion) '' + # Since version 2.5.0 of nlopt we need to link to libnlopt, as libnlopt_cxx # now seems to be integrated into the main lib. - sed -i 's|nlopt_cxx|nlopt|g' src/libnest2d/cmake_modules/FindNLopt.cmake + sed -i 's|nlopt_cxx|nlopt|g' cmake/modules/FindNLopt.cmake ''; src = fetchFromGitHub { owner = "prusa3d"; repo = "PrusaSlicer"; - sha256 = "0i393nbc2salb4j5l2hvy03ng7hmf90d2xj653pw9bsikhj0r3jd"; + sha256 = "0954k9sm09y8qnz1jyswyysg10k54ywz8mswnwa4n2hnpq9qx73m"; rev = "version_${version}"; }; @@ -86,8 +91,8 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "G-code generator for 3D printer"; - homepage = https://github.com/prusa3d/PrusaSlicer; + homepage = "https://github.com/prusa3d/PrusaSlicer"; license = licenses.agpl3; - maintainers = with maintainers; [ tweber ]; + maintainers = with maintainers; [ moredread tweber ]; }; } diff --git a/pkgs/applications/misc/pt/Gemfile.lock b/pkgs/applications/misc/pt/Gemfile.lock index 501fae0ef0a..dfaa018d372 100644 --- a/pkgs/applications/misc/pt/Gemfile.lock +++ b/pkgs/applications/misc/pt/Gemfile.lock @@ -66,4 +66,4 @@ DEPENDENCIES pt BUNDLED WITH - 1.17.2 + 2.1.4 diff --git a/pkgs/applications/misc/pt/default.nix b/pkgs/applications/misc/pt/default.nix index f5504721987..ef490702a67 100644 --- a/pkgs/applications/misc/pt/default.nix +++ b/pkgs/applications/misc/pt/default.nix @@ -9,7 +9,7 @@ bundlerApp { meta = with lib; { description = "Minimalist command-line Pivotal Tracker client"; - homepage = http://www.github.com/raul/pt; + homepage = "http://www.github.com/raul/pt"; license = licenses.mit; maintainers = with maintainers; [ ebzzry manveru nicknovitski ]; platforms = platforms.unix; diff --git a/pkgs/applications/misc/ptask/default.nix b/pkgs/applications/misc/ptask/default.nix index 81e316eb0ee..a5fd55c967b 100644 --- a/pkgs/applications/misc/ptask/default.nix +++ b/pkgs/applications/misc/ptask/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = http://wpitchoune.net/ptask/; + homepage = "http://wpitchoune.net/ptask/"; description = "GTK-based GUI for taskwarrior"; license = licenses.gpl2; maintainers = [ maintainers.spacefrogg ]; diff --git a/pkgs/applications/misc/pueue/default.nix b/pkgs/applications/misc/pueue/default.nix index aac371164fa..e90a86f225b 100644 --- a/pkgs/applications/misc/pueue/default.nix +++ b/pkgs/applications/misc/pueue/default.nix @@ -1,23 +1,19 @@ -{ lib, rustPlatform, fetchFromGitHub, installShellFiles }: +{ lib, rustPlatform, fetchFromGitHub }: rustPlatform.buildRustPackage rec { pname = "pueue"; - version = "0.1.6"; + version = "0.3.0"; src = fetchFromGitHub { owner = "Nukesor"; repo = pname; rev = "v${version}"; - sha256 = "1qp9h1xlfxwswcqi1qn2hfybxl547z13xjbvfgsx1nc8yj51bi3c"; + sha256 = "11x4y3ah9f7mv9jssws95sw7rd20fxwdh11mrhcb4vwk59cmqsjz"; }; - nativeBuildInputs = [ installShellFiles ]; + cargoSha256 = "06zv3li14sg4a8bgj38zzx576ggm32ss0djmys1g0h5a0nxaaqfx"; - cargoSha256 = "00va292bjdp42bkqdkjqajmzc2nshhqa1fj0yfwdf3rrx4nhssjd"; - - postInstall = '' - installShellCompletion utils/completions/pueue.{bash,fish} --zsh utils/completions/_pueue - ''; + checkPhase = "cargo test -- --skip test_single_huge_payload"; meta = with lib; { description = "A daemon for managing long running shell commands"; diff --git a/pkgs/applications/misc/pwsafe/default.nix b/pkgs/applications/misc/pwsafe/default.nix index b1f4e5f9e42..43197c6bf27 100644 --- a/pkgs/applications/misc/pwsafe/default.nix +++ b/pkgs/applications/misc/pwsafe/default.nix @@ -1,18 +1,18 @@ { stdenv, fetchFromGitHub, cmake, pkgconfig, zip, gettext, perl , wxGTK31, libXext, libXi, libXt, libXtst, xercesc , qrencode, libuuid, libyubikey, yubikey-personalization -, curl, openssl +, curl, openssl, file }: stdenv.mkDerivation rec { pname = "pwsafe"; - version = "1.08.2"; + version = "3.52.0"; src = fetchFromGitHub { owner = pname; repo = pname; - rev = "${version}BETA"; - sha256 = "14qwk3cv5psj7ll71ikyv452x55c7iwjw9765yrpij6741r4yjln"; + rev = "${version}"; + sha256 = "1ka7xsl63v0559fzf3pwc1iqr37gwr4vq5iaxa2hzar2g28hsxvh"; }; nativeBuildInputs = [ @@ -22,6 +22,7 @@ stdenv.mkDerivation rec { libXext libXi libXt libXtst wxGTK31 curl qrencode libuuid openssl xercesc libyubikey yubikey-personalization + file ]; cmakeFlags = [ diff --git a/pkgs/applications/misc/pydf/default.nix b/pkgs/applications/misc/pydf/default.nix index bfbee1bea24..aa283510708 100644 --- a/pkgs/applications/misc/pydf/default.nix +++ b/pkgs/applications/misc/pydf/default.nix @@ -9,9 +9,15 @@ python3Packages.buildPythonPackage rec { sha256 = "7f47a7c3abfceb1ac04fc009ded538df1ae449c31203962a1471a4eb3bf21439"; }; + postInstall = '' + mkdir -p $out/share/man/man1 $out/share/pydf + install -t $out/share/pydf -m 444 pydfrc + install -t $out/share/man/man1 -m 444 pydf.1 + ''; + meta = with stdenv.lib; { description = "colourised df(1)-clone"; - homepage = http://kassiopeia.juls.savba.sk/~garabik/software/pydf/; + homepage = "http://kassiopeia.juls.savba.sk/~garabik/software/pydf/"; license = licenses.publicDomain; maintainers = with maintainers; [ monsieurp ]; }; diff --git a/pkgs/applications/misc/pyditz/cerberus.nix b/pkgs/applications/misc/pyditz/cerberus.nix index 614e3ca8135..be12906e61e 100644 --- a/pkgs/applications/misc/pyditz/cerberus.nix +++ b/pkgs/applications/misc/pyditz/cerberus.nix @@ -12,7 +12,7 @@ buildPythonPackage rec { checkInputs = [ pytestrunner pytest ]; meta = with stdenv.lib; { - homepage = http://python-cerberus.org/; + homepage = "http://python-cerberus.org/"; description = "Lightweight, extensible schema and data validation tool for Python dictionaries"; license = licenses.mit; }; diff --git a/pkgs/applications/misc/pyditz/default.nix b/pkgs/applications/misc/pyditz/default.nix index 60de2f9abdc..05338b38dfe 100644 --- a/pkgs/applications/misc/pyditz/default.nix +++ b/pkgs/applications/misc/pyditz/default.nix @@ -20,7 +20,7 @@ in buildPythonApplication rec { ''; meta = with stdenv.lib; { - homepage = https://pythonhosted.org/pyditz/; + homepage = "https://pythonhosted.org/pyditz/"; description = "Drop-in replacement for the Ditz distributed issue tracker"; maintainers = [ maintainers.ilikeavocadoes ]; license = licenses.lgpl2; diff --git a/pkgs/applications/misc/pytrainer/default.nix b/pkgs/applications/misc/pytrainer/default.nix index bb3a92e72c3..00c45114179 100644 --- a/pkgs/applications/misc/pytrainer/default.nix +++ b/pkgs/applications/misc/pytrainer/default.nix @@ -85,7 +85,7 @@ python3.pkgs.buildPythonApplication rec { ''; meta = with stdenv.lib; { - homepage = https://github.com/pytrainer/pytrainer/wiki; + homepage = "https://github.com/pytrainer/pytrainer/wiki"; description = "Application for logging and graphing sporting excursions"; maintainers = [ maintainers.rycee ]; license = licenses.gpl2Plus; diff --git a/pkgs/applications/misc/qMasterPassword/default.nix b/pkgs/applications/misc/qMasterPassword/default.nix index 97751127342..c2adcabe414 100644 --- a/pkgs/applications/misc/qMasterPassword/default.nix +++ b/pkgs/applications/misc/qMasterPassword/default.nix @@ -40,7 +40,7 @@ mkDerivation rec { there is no password file that can be lost or get stolen. There is also no need to trust any online password service. ''; - homepage = https://github.com/bkueng/qMasterPassword; + homepage = "https://github.com/bkueng/qMasterPassword"; license = licenses.gpl3; maintainers = [ maintainers.tadeokondrak ]; platforms = platforms.all; diff --git a/pkgs/applications/misc/qcad/application-dir.patch b/pkgs/applications/misc/qcad/application-dir.patch new file mode 100644 index 00000000000..84782e1e717 --- /dev/null +++ b/pkgs/applications/misc/qcad/application-dir.patch @@ -0,0 +1,35 @@ +diff --git a/src/core/RS.cpp b/src/core/RS.cpp +index d8a135d6f..659795dbb 100644 +--- a/src/core/RS.cpp ++++ b/src/core/RS.cpp +@@ -151,7 +151,7 @@ QStringList RS::getDirectoryList(const QString& subDirectory) { + dirList.append(appDir + "/../../../" + subDirectory); + dirList.append(QDir::currentPath() + "/" + subDirectory); + #else +- dirList.append(appDir + "/" + subDirectory); ++ dirList.append(appDir + "/../lib/" + subDirectory); + #endif + + /* +diff --git a/src/core/RSettings.cpp b/src/core/RSettings.cpp +index c6c31cbf5..c51b59ce6 100644 +--- a/src/core/RSettings.cpp ++++ b/src/core/RSettings.cpp +@@ -367,6 +367,8 @@ QString RSettings::getApplicationPath() { + ret.cdUp(); + } + ++ ret.cd("../lib"); ++ + return ret.path(); + } + +@@ -1268,7 +1270,7 @@ QString RSettings::getRevisionString() { + } + + QString RSettings::getReleaseDate() { +- return __DATE__; ++ return ""; + } + + int RSettings::getSnapRange() { diff --git a/pkgs/applications/misc/qcad/default.nix b/pkgs/applications/misc/qcad/default.nix new file mode 100644 index 00000000000..4f046e34b18 --- /dev/null +++ b/pkgs/applications/misc/qcad/default.nix @@ -0,0 +1,92 @@ +{ boost +, fetchFromGitHub +, mkDerivationWith +, muparser +, pkgconfig +, qmake +, qt5 +, stdenv +, libGLU +}: + +mkDerivationWith stdenv.mkDerivation rec { + pname = "qcad"; + version = "3.24.2.1"; + + src = fetchFromGitHub { + owner = "qcad"; + repo = "qcad"; + rev = "v${version}"; + sha256 = "1g295gljq051x09f4d8k586bkg3vs8z22dn3rxj6xrm6803z8zw2"; + }; + + patches = [ + ./application-dir.patch + ]; + + postPatch = '' + mkdir src/3rdparty/qt-labs-qtscriptgenerator-${qt5.qtbase.version} + cp \ + src/3rdparty/qt-labs-qtscriptgenerator-5.12.3/qt-labs-qtscriptgenerator-5.12.3.pro \ + src/3rdparty/qt-labs-qtscriptgenerator-${qt5.qtbase.version}/qt-labs-qtscriptgenerator-${qt5.qtbase.version}.pro + ''; + + qmakeFlags = [ + "MUPARSER_DIR=${muparser}" + "INSTALLROOT=$(out)" + "BOOST_DIR=${boost.dev}" + ]; + + installPhase = '' + runHook preInstall + + install -Dm555 -t $out/bin release/qcad-bin + install -Dm555 -t $out/lib release/libspatialindexnavel.so + install -Dm555 -t $out/lib release/libqcadcore.so + install -Dm555 -t $out/lib release/libqcadentity.so + install -Dm555 -t $out/lib release/libqcadgrid.so + install -Dm555 -t $out/lib release/libqcadsnap.so + install -Dm555 -t $out/lib release/libqcadoperations.so + install -Dm555 -t $out/lib release/libqcadstemmer.so + install -Dm555 -t $out/lib release/libqcadspatialindex.so + install -Dm555 -t $out/lib release/libqcadgui.so + install -Dm555 -t $out/lib release/libqcadecmaapi.so + + install -Dm444 -t $out/share/applications qcad.desktop + install -Dm644 -t $out/share/pixmaps scripts/qcad_icon.png + + cp -r scripts $out/lib + cp -r plugins $out/lib/plugins + cp -r patterns $out/lib/patterns + + install -Dm644 scripts/qcad_icon.svg $out/share/icons/hicolor/scalable/apps/qcad.svg + + runHook postInstall + ''; + + buildInputs = [ + boost + muparser + libGLU + qt5.qtbase + qt5.qtscript + qt5.qtsvg + qt5.qtxmlpatterns + ]; + + nativeBuildInputs = [ + pkgconfig + qt5.qmake + qt5.qttools + ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + description = "2D CAD package based on Qt"; + homepage = "https://qcad.org"; + license = licenses.gpl3; + maintainers = with maintainers; [ yvesf ]; + platforms = qt5.qtbase.meta.platforms; + }; +} diff --git a/pkgs/applications/misc/qlandkartegt/default.nix b/pkgs/applications/misc/qlandkartegt/default.nix index b9645980c64..d780125fbbf 100644 --- a/pkgs/applications/misc/qlandkartegt/default.nix +++ b/pkgs/applications/misc/qlandkartegt/default.nix @@ -79,7 +79,7 @@ mkDerivation rec { ''; meta = with lib; { - homepage = http://www.qlandkarte.org/; + homepage = "http://www.qlandkarte.org/"; description = '' QLandkarte GT is the ultimate outdoor aficionado's tool. It supports GPS maps in GeoTiff format as well as Garmin's img vector map format. diff --git a/pkgs/applications/misc/qlandkartegt/garmindev.nix b/pkgs/applications/misc/qlandkartegt/garmindev.nix index 382e7dbe121..8705abd9259 100644 --- a/pkgs/applications/misc/qlandkartegt/garmindev.nix +++ b/pkgs/applications/misc/qlandkartegt/garmindev.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, cmake, libusb }: +{ stdenv, fetchurl, cmake, libusb-compat-0_1 }: stdenv.mkDerivation rec { pname = "garmindev"; @@ -11,12 +11,12 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake ]; - buildInputs = [ libusb ]; + buildInputs = [ libusb-compat-0_1 ]; enableParallelBuilding = true; meta = with stdenv.lib; { - homepage = http://www.qlandkarte.org/; + homepage = "http://www.qlandkarte.org/"; description = "Garmin Device Drivers for QlandkarteGT"; license = licenses.gpl2; maintainers = with maintainers; [ sikmir ]; diff --git a/pkgs/applications/misc/qlcplus/default.nix b/pkgs/applications/misc/qlcplus/default.nix index c0b844d121a..77a24413bdd 100644 --- a/pkgs/applications/misc/qlcplus/default.nix +++ b/pkgs/applications/misc/qlcplus/default.nix @@ -1,5 +1,5 @@ { stdenv, mkDerivation, fetchFromGitHub, qmake, pkgconfig, udev -, qtmultimedia, qtscript, alsaLib, ola, libftdi1, libusb +, qtmultimedia, qtscript, alsaLib, ola, libftdi1, libusb-compat-0_1 , libsndfile, libmad }: @@ -16,7 +16,7 @@ mkDerivation rec { nativeBuildInputs = [ qmake pkgconfig ]; buildInputs = [ - udev qtmultimedia qtscript alsaLib ola libftdi1 libusb libsndfile libmad + udev qtmultimedia qtscript alsaLib ola libftdi1 libusb-compat-0_1 libsndfile libmad ]; qmakeFlags = [ "INSTALLROOT=$(out)" ]; diff --git a/pkgs/applications/misc/qmapshack/default.nix b/pkgs/applications/misc/qmapshack/default.nix index 21fbbf3253f..a3238f7cba4 100644 --- a/pkgs/applications/misc/qmapshack/default.nix +++ b/pkgs/applications/misc/qmapshack/default.nix @@ -3,13 +3,13 @@ mkDerivation rec { pname = "qmapshack"; - version = "1.14.0"; + version = "1.14.1"; src = fetchFromGitHub { owner = "Maproom"; repo = pname; rev = "V_${version}"; - sha256 = "07c2hrq9sn456w7l3gdr599rmjfv2k6mh159zza7p1py8r7ywksa"; + sha256 = "0hghynb4ac98fg1pwc645zriqkghxwp8mr3jhr87pa6fh0y848py"; }; nativeBuildInputs = [ cmake ]; @@ -30,7 +30,7 @@ mkDerivation rec { ]; meta = with lib; { - homepage = https://github.com/Maproom/qmapshack; + homepage = "https://github.com/Maproom/qmapshack"; description = "Consumer grade GIS software"; license = licenses.gpl3; maintainers = with maintainers; [ dotlambda sikmir ]; diff --git a/pkgs/applications/misc/qmetro/default.nix b/pkgs/applications/misc/qmetro/default.nix index 49993f2f7ea..623bd050dc9 100644 --- a/pkgs/applications/misc/qmetro/default.nix +++ b/pkgs/applications/misc/qmetro/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; meta = with stdenv.lib; { - homepage = https://sourceforge.net/projects/qmetro/; + homepage = "https://sourceforge.net/projects/qmetro/"; description = "Worldwide transit maps viewer"; license = licenses.gpl3; diff --git a/pkgs/applications/misc/qolibri/default.nix b/pkgs/applications/misc/qolibri/default.nix index c96fbab4d81..913d2bc3c6b 100644 --- a/pkgs/applications/misc/qolibri/default.nix +++ b/pkgs/applications/misc/qolibri/default.nix @@ -20,7 +20,7 @@ mkDerivation { enableParallelBuilding = true; meta = with lib; { - homepage = https://github.com/ludios/qolibri; + homepage = "https://github.com/ludios/qolibri"; description = "EPWING reader for viewing Japanese dictionaries"; platforms = platforms.linux; maintainers = with maintainers; [ ]; diff --git a/pkgs/applications/misc/qpdfview/default.nix b/pkgs/applications/misc/qpdfview/default.nix index 4100ab3536b..3e55215f473 100644 --- a/pkgs/applications/misc/qpdfview/default.nix +++ b/pkgs/applications/misc/qpdfview/default.nix @@ -43,7 +43,7 @@ mkDerivation { license = stdenv.lib.licenses.gpl2; maintainers = [stdenv.lib.maintainers.raskin]; platforms = stdenv.lib.platforms.linux; - homepage = https://launchpad.net/qpdfview; + homepage = "https://launchpad.net/qpdfview"; updateWalker = true; }; } diff --git a/pkgs/applications/misc/qsyncthingtray/default.nix b/pkgs/applications/misc/qsyncthingtray/default.nix index 46b446b429b..70d9f600fa0 100644 --- a/pkgs/applications/misc/qsyncthingtray/default.nix +++ b/pkgs/applications/misc/qsyncthingtray/default.nix @@ -56,7 +56,7 @@ mkDerivation rec { enableParallelBuilding = true; meta = with lib; { - homepage = https://github.com/sieren/QSyncthingTray/; + homepage = "https://github.com/sieren/QSyncthingTray/"; description = "A Traybar Application for Syncthing written in C++"; longDescription = '' A cross-platform status bar for Syncthing. diff --git a/pkgs/applications/misc/qt-box-editor/default.nix b/pkgs/applications/misc/qt-box-editor/default.nix index 702cadfdaa9..852f0d30f9a 100644 --- a/pkgs/applications/misc/qt-box-editor/default.nix +++ b/pkgs/applications/misc/qt-box-editor/default.nix @@ -1,4 +1,5 @@ -{ stdenv +{ mkDerivation +, stdenv , fetchFromGitHub , qtbase , qtsvg @@ -7,7 +8,7 @@ , tesseract }: -stdenv.mkDerivation { +mkDerivation { pname = "qt-box-editor"; version = "unstable-2019-07-12"; @@ -30,7 +31,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Editor of tesseract-ocr box files"; - homepage = https://github.com/zdenop/qt-box-editor; + homepage = "https://github.com/zdenop/qt-box-editor"; license = licenses.asl20; maintainers = [ maintainers.costrouc ]; platforms = platforms.all; diff --git a/pkgs/applications/misc/qtbitcointrader/default.nix b/pkgs/applications/misc/qtbitcointrader/default.nix index 21d51f17258..c5dfdf95fb5 100644 --- a/pkgs/applications/misc/qtbitcointrader/default.nix +++ b/pkgs/applications/misc/qtbitcointrader/default.nix @@ -28,7 +28,7 @@ mkDerivation { meta = with stdenv.lib; { description = "Bitcoin trading client"; - homepage = https://centrabit.com/; + homepage = "https://centrabit.com/"; license = licenses.gpl3; platforms = qt5.qtbase.meta.platforms; maintainers = [ maintainers.ehmry ]; diff --git a/pkgs/applications/misc/qtpass/default.nix b/pkgs/applications/misc/qtpass/default.nix index 6b68071d4d0..faa19914749 100644 --- a/pkgs/applications/misc/qtpass/default.nix +++ b/pkgs/applications/misc/qtpass/default.nix @@ -53,7 +53,7 @@ mkDerivation rec { meta = with lib; { description = "A multi-platform GUI for pass, the standard unix password manager"; - homepage = https://qtpass.org; + homepage = "https://qtpass.org"; license = licenses.gpl3; maintainers = [ maintainers.hrdinka ]; platforms = platforms.all; diff --git a/pkgs/applications/misc/quicksynergy/default.nix b/pkgs/applications/misc/quicksynergy/default.nix index 948bcf33d37..1956f0ad41d 100644 --- a/pkgs/applications/misc/quicksynergy/default.nix +++ b/pkgs/applications/misc/quicksynergy/default.nix @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { Remember to open port 24800 (used by synergys program) if you want to host mouse and keyboard."; - homepage = https://sourceforge.net/projects/quicksynergy/; + homepage = "https://sourceforge.net/projects/quicksynergy/"; license = stdenv.lib.licenses.gpl2; maintainers = [ stdenv.lib.maintainers.spinus ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/misc/ranger/default.nix b/pkgs/applications/misc/ranger/default.nix index 243913d0a09..68ddef65697 100644 --- a/pkgs/applications/misc/ranger/default.nix +++ b/pkgs/applications/misc/ranger/default.nix @@ -56,7 +56,7 @@ python3Packages.buildPythonApplication rec { meta = with lib; { description = "File manager with minimalistic curses interface"; - homepage = http://ranger.github.io/; + homepage = "http://ranger.github.io/"; license = licenses.gpl3; platforms = platforms.unix; maintainers = [ maintainers.toonn maintainers.magnetophon ]; diff --git a/pkgs/applications/misc/redis-desktop-manager/default.nix b/pkgs/applications/misc/redis-desktop-manager/default.nix index ac62ccc00cb..ec40347cbcb 100644 --- a/pkgs/applications/misc/redis-desktop-manager/default.nix +++ b/pkgs/applications/misc/redis-desktop-manager/default.nix @@ -75,7 +75,7 @@ EOF meta = with lib; { description = "Cross-platform open source Redis DB management tool"; - homepage = https://redisdesktop.com/; + homepage = "https://redisdesktop.com/"; license = licenses.lgpl21; platforms = platforms.linux; maintainers = with maintainers; [ cstrahan ]; diff --git a/pkgs/applications/misc/redshift-plasma-applet/default.nix b/pkgs/applications/misc/redshift-plasma-applet/default.nix index 2eebe67c46d..c14eee398ce 100644 --- a/pkgs/applications/misc/redshift-plasma-applet/default.nix +++ b/pkgs/applications/misc/redshift-plasma-applet/default.nix @@ -37,7 +37,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "KDE Plasma 5 widget for controlling Redshift"; - homepage = https://github.com/kotelnik/plasma-applet-redshift-control; + homepage = "https://github.com/kotelnik/plasma-applet-redshift-control"; license = licenses.gpl2Plus; platforms = platforms.linux; maintainers = with maintainers; [ benley zraexy ]; diff --git a/pkgs/applications/misc/redshift/default.nix b/pkgs/applications/misc/redshift/default.nix index e9862041f4a..81fbcc8b483 100644 --- a/pkgs/applications/misc/redshift/default.nix +++ b/pkgs/applications/misc/redshift/default.nix @@ -93,7 +93,7 @@ rec { be set to match the lamps in your room. ''; license = licenses.gpl3Plus; - homepage = http://jonls.dk/redshift; + homepage = "http://jonls.dk/redshift"; platforms = platforms.unix; maintainers = with maintainers; [ yegortimoshenko globin ]; }; @@ -112,7 +112,7 @@ rec { meta = redshift.meta // { description = redshift.meta.description + "(with wlroots patches)"; - homepage = https://github.com/minus7/redshift; + homepage = "https://github.com/minus7/redshift"; }; }; } diff --git a/pkgs/applications/misc/regextester/default.nix b/pkgs/applications/misc/regextester/default.nix index 816a158c031..22f46eed7df 100644 --- a/pkgs/applications/misc/regextester/default.nix +++ b/pkgs/applications/misc/regextester/default.nix @@ -51,7 +51,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A desktop application to test regular expressions interactively"; - homepage = https://github.com/artemanufrij/regextester; + homepage = "https://github.com/artemanufrij/regextester"; maintainers = with maintainers; [ samdroid-apps ]; platforms = platforms.linux; license = licenses.gpl2Plus; diff --git a/pkgs/applications/misc/rescuetime/default.nix b/pkgs/applications/misc/rescuetime/default.nix index 13ae1f1ba7d..9784e24187b 100644 --- a/pkgs/applications/misc/rescuetime/default.nix +++ b/pkgs/applications/misc/rescuetime/default.nix @@ -5,15 +5,15 @@ let if stdenv.hostPlatform.system == "i686-linux" then fetchurl { name = "rescuetime-installer.deb"; url = "https://www.rescuetime.com/installers/rescuetime_current_i386.deb"; - sha256 = "0mw8dh9z7pqan0yrhycmv39h5c1sc4mbw5l02cfnn17cy75xdiay"; + sha256 = "1yzbs2lg04bq0clkr6gfkx3j6wrahpnxqfiq4askk9k76y4ncd4m"; } else fetchurl { name = "rescuetime-installer.deb"; url = "https://www.rescuetime.com/installers/rescuetime_current_amd64.deb"; - sha256 = "1a6pc8vi2ab721kzyhvg6bmw24dr85dgmx2m9j9vbf3jyr85fv10"; + sha256 = "1njxsh601d0p6n0hxv44gcg8gd43xwym83xwqba26vj6xw82bknv"; }; in mkDerivation { # https://www.rescuetime.com/updates/linux_release_notes.html - name = "rescuetime-2.14.5.2"; + name = "rescuetime-2.15.0.1"; inherit src; nativeBuildInputs = [ dpkg ]; # avoid https://github.com/NixOS/patchelf/issues/99 diff --git a/pkgs/applications/misc/robo3t/default.nix b/pkgs/applications/misc/robo3t/default.nix index 00640be6c74..f42a58e0057 100644 --- a/pkgs/applications/misc/robo3t/default.nix +++ b/pkgs/applications/misc/robo3t/default.nix @@ -70,7 +70,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = https://robomongo.org/; + homepage = "https://robomongo.org/"; description = "Query GUI for mongodb"; platforms = [ "x86_64-linux" ]; license = stdenv.lib.licenses.gpl3; diff --git a/pkgs/applications/misc/robomongo/default.nix b/pkgs/applications/misc/robomongo/default.nix index 8df4e960c18..ef0a3047297 100644 --- a/pkgs/applications/misc/robomongo/default.nix +++ b/pkgs/applications/misc/robomongo/default.nix @@ -68,7 +68,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = https://robomongo.org/; + homepage = "https://robomongo.org/"; description = "Query GUI for mongodb"; platforms = stdenv.lib.intersectLists stdenv.lib.platforms.linux stdenv.lib.platforms.x86_64; license = stdenv.lib.licenses.gpl3; diff --git a/pkgs/applications/misc/rofi-emoji/0001-Patch-plugindir-to-output.patch b/pkgs/applications/misc/rofi-emoji/0001-Patch-plugindir-to-output.patch new file mode 100644 index 00000000000..9b9479b1b49 --- /dev/null +++ b/pkgs/applications/misc/rofi-emoji/0001-Patch-plugindir-to-output.patch @@ -0,0 +1,25 @@ +From 695e7a441fc28b874e65917fe2c0059b5b8ca749 Mon Sep 17 00:00:00 2001 +From: Cole Helbling +Date: Sat, 28 Mar 2020 23:46:03 -0700 +Subject: [PATCH] Patch plugindir to output + +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 75e476f..cb1ddf7 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -55,7 +55,7 @@ PKG_CHECK_MODULES([glib], [glib-2.0 >= 2.40 gio-unix-2.0 gmodule-2.0 ]) + PKG_CHECK_MODULES([cairo], [cairo]) + PKG_CHECK_MODULES([rofi], [rofi]) + +-[rofi_PLUGIN_INSTALL_DIR]="`$PKG_CONFIG --variable=pluginsdir rofi`" ++[rofi_PLUGIN_INSTALL_DIR]="`echo $out/lib/rofi`" + AC_SUBST([rofi_PLUGIN_INSTALL_DIR]) + + LT_INIT([disable-static]) +-- +2.25.1 + diff --git a/pkgs/applications/misc/rofi-emoji/default.nix b/pkgs/applications/misc/rofi-emoji/default.nix new file mode 100644 index 00000000000..14742da35da --- /dev/null +++ b/pkgs/applications/misc/rofi-emoji/default.nix @@ -0,0 +1,69 @@ +{ stdenv +, lib +, fetchFromGitHub +, fetchpatch +, substituteAll +, makeWrapper + +, autoreconfHook +, pkgconfig + +, cairo +, glib +, libnotify +, rofi-unwrapped +, wl-clipboard +, xclip +, xsel +}: + +stdenv.mkDerivation rec { + pname = "rofi-emoji"; + version = "2.1.2"; + + src = fetchFromGitHub { + owner = "Mange"; + repo = pname; + rev = "v${version}"; + sha256 = "0knsvsdff2c7ww94120bq92735qrfriyd28mi0n72ccb2iikyi8b"; + }; + + patches = [ + # Look for plugin-related files in $out/lib/rofi + ./0001-Patch-plugindir-to-output.patch + ]; + + postPatch = '' + patchShebangs clipboard-adapter.sh + ''; + + postFixup = '' + chmod +x $out/share/rofi-emoji/clipboard-adapter.sh + wrapProgram $out/share/rofi-emoji/clipboard-adapter.sh \ + --prefix PATH ":" ${lib.makeBinPath [ libnotify wl-clipboard xclip xsel ]} + ''; + + nativeBuildInputs = [ + autoreconfHook + pkgconfig + ]; + + buildInputs = [ + cairo + glib + libnotify + makeWrapper + rofi-unwrapped + wl-clipboard + xclip + xsel + ]; + + meta = with lib; { + description = "An emoji selector plugin for Rofi"; + homepage = "https://github.com/Mange/rofi-emoji"; + license = licenses.mit; + maintainers = with maintainers; [ cole-h ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/misc/rofi-file-browser/default.nix b/pkgs/applications/misc/rofi-file-browser/default.nix new file mode 100644 index 00000000000..10453b85849 --- /dev/null +++ b/pkgs/applications/misc/rofi-file-browser/default.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchFromGitHub, cmake, pkgconfig, rofi, gtk3 }: + +stdenv.mkDerivation rec { + pname = "rofi-file-browser-extended"; + version = "1.1.1"; + + src = fetchFromGitHub { + owner = "marvinkreis"; + repo = pname; + rev = version; + sha256 = "10wk5sif3bmvsgyk2gdy0qhpv1b37zgzf89n3h0yh7pg195fi2gn"; + fetchSubmodules = true; + }; + + prePatch = '' + substituteInPlace ./CMakeLists.txt \ + --replace ' ''${ROFI_PLUGINS_DIR}' " $out/lib/rofi" \ + --replace "/usr/share/" "$out/share/" + ''; + + nativeBuildInputs = [ cmake pkgconfig ]; + buildInputs = [ rofi gtk3 ]; + + ROFI_PLUGINS_DIR = "$out/lib/rofi"; + + dontUseCmakeBuildDir = true; + + meta = with stdenv.lib; { + description = "Use rofi to quickly open files"; + homepage = "https://github.com/marvinkreis/rofi-file-browser-extended"; + license = licenses.mit; + maintainers = with maintainers; [ jluttine ]; + }; +} diff --git a/pkgs/applications/misc/rofi-menugen/default.nix b/pkgs/applications/misc/rofi-menugen/default.nix index 2255089ab7e..088ec29ae37 100644 --- a/pkgs/applications/misc/rofi-menugen/default.nix +++ b/pkgs/applications/misc/rofi-menugen/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { description = "Generates menu based applications using rofi"; - homepage = https://github.com/octotep/menugen; + homepage = "https://github.com/octotep/menugen"; maintainers = with maintainers; [ ]; platforms = platforms.all; }; diff --git a/pkgs/applications/misc/rofi/wrapper.nix b/pkgs/applications/misc/rofi/wrapper.nix index 1c7284a2db2..4e69f9cce14 100644 --- a/pkgs/applications/misc/rofi/wrapper.nix +++ b/pkgs/applications/misc/rofi/wrapper.nix @@ -1,23 +1,26 @@ -{ stdenv, rofi-unwrapped, makeWrapper, hicolor-icon-theme, theme ? null }: +{ symlinkJoin, lib, rofi-unwrapped, makeWrapper, hicolor-icon-theme, theme ? null, plugins ? [] }: -stdenv.mkDerivation { - pname = "rofi"; - version = rofi-unwrapped.version; +symlinkJoin { + name = "rofi-${rofi-unwrapped.version}"; + + paths = [ + rofi-unwrapped.out + ] ++ (lib.forEach plugins (p: p.out)); buildInputs = [ makeWrapper ]; preferLocalBuild = true; passthru.unwrapped = rofi-unwrapped; - buildCommand = '' - mkdir $out - ln -s ${rofi-unwrapped}/* $out - rm $out/bin + postBuild = '' + rm -rf $out/bin mkdir $out/bin ln -s ${rofi-unwrapped}/bin/* $out/bin rm $out/bin/rofi makeWrapper ${rofi-unwrapped}/bin/rofi $out/bin/rofi \ --prefix XDG_DATA_DIRS : ${hicolor-icon-theme}/share \ - ${if theme != null then ''--add-flags "-theme ${theme}"'' else ""} + ${lib.optionalString (plugins != []) ''--prefix XDG_DATA_DIRS : ${lib.concatStringsSep ":" (lib.forEach plugins (p: "${p.out}/share"))}''} \ + ${lib.optionalString (theme != null) ''--add-flags "-theme ${theme}"''} \ + ${lib.optionalString (plugins != []) ''--add-flags "-plugin-path $out/lib/rofi"''} rm $out/bin/rofi-theme-selector makeWrapper ${rofi-unwrapped}/bin/rofi-theme-selector $out/bin/rofi-theme-selector \ diff --git a/pkgs/applications/misc/rsibreak/default.nix b/pkgs/applications/misc/rsibreak/default.nix index 6ee9966401b..eefc0a0c577 100644 --- a/pkgs/applications/misc/rsibreak/default.nix +++ b/pkgs/applications/misc/rsibreak/default.nix @@ -22,7 +22,7 @@ in mkDerivation rec { meta = with lib; { description = "RSIBreak takes care of your health and regularly breaks your work to avoid repetitive strain injury (RSI)"; license = licenses.gpl2; - homepage = https://www.kde.org/applications/utilities/rsibreak/; + homepage = "https://www.kde.org/applications/utilities/rsibreak/"; maintainers = with maintainers; [ vandenoever ]; }; } diff --git a/pkgs/applications/misc/rtv/default.nix b/pkgs/applications/misc/rtv/default.nix index 20211ecb53b..c4547e87513 100644 --- a/pkgs/applications/misc/rtv/default.nix +++ b/pkgs/applications/misc/rtv/default.nix @@ -38,7 +38,7 @@ buildPythonApplication rec { ]; meta = with stdenv.lib; { - homepage = https://github.com/michael-lazar/rtv; + homepage = "https://github.com/michael-lazar/rtv"; description = "Browse Reddit from your Terminal"; license = licenses.mit; maintainers = with maintainers; [ matthiasbeyer wedens ]; diff --git a/pkgs/applications/misc/rxvt-unicode-plugins/urxvt-font-size/default.nix b/pkgs/applications/misc/rxvt-unicode-plugins/urxvt-font-size/default.nix index 4f4319af6cb..f81709b9739 100644 --- a/pkgs/applications/misc/rxvt-unicode-plugins/urxvt-font-size/default.nix +++ b/pkgs/applications/misc/rxvt-unicode-plugins/urxvt-font-size/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Change the urxvt font size on the fly"; - homepage = https://github.com/majutsushi/urxvt-font-size; + homepage = "https://github.com/majutsushi/urxvt-font-size"; license = licenses.mit; maintainers = with maintainers; [ cstrahan ]; platforms = with platforms; unix; diff --git a/pkgs/applications/misc/rxvt-unicode-plugins/urxvt-perl/default.nix b/pkgs/applications/misc/rxvt-unicode-plugins/urxvt-perl/default.nix index 13e005014f1..0c95acd7205 100644 --- a/pkgs/applications/misc/rxvt-unicode-plugins/urxvt-perl/default.nix +++ b/pkgs/applications/misc/rxvt-unicode-plugins/urxvt-perl/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Perl extensions for the rxvt-unicode terminal emulator"; - homepage = https://github.com/effigies/urxvt-perl; + homepage = "https://github.com/effigies/urxvt-perl"; license = licenses.gpl3; maintainers = with maintainers; [ cstrahan ]; platforms = with platforms; unix; diff --git a/pkgs/applications/misc/rxvt-unicode-plugins/urxvt-perls/default.nix b/pkgs/applications/misc/rxvt-unicode-plugins/urxvt-perls/default.nix index dac04141070..53bb938c333 100644 --- a/pkgs/applications/misc/rxvt-unicode-plugins/urxvt-perls/default.nix +++ b/pkgs/applications/misc/rxvt-unicode-plugins/urxvt-perls/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Perl extensions for the rxvt-unicode terminal emulator"; - homepage = https://github.com/muennich/urxvt-perls; + homepage = "https://github.com/muennich/urxvt-perls"; license = licenses.gpl2; maintainers = with maintainers; [ abbradar ]; platforms = with platforms; unix; diff --git a/pkgs/applications/misc/rxvt-unicode-plugins/urxvt-tabbedex/default.nix b/pkgs/applications/misc/rxvt-unicode-plugins/urxvt-tabbedex/default.nix index 2982c02cce9..71a55f9293c 100644 --- a/pkgs/applications/misc/rxvt-unicode-plugins/urxvt-tabbedex/default.nix +++ b/pkgs/applications/misc/rxvt-unicode-plugins/urxvt-tabbedex/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Tabbed plugin for rxvt-unicode with many enhancements (mina86's fork)"; - homepage = https://github.com/mina86/urxvt-tabbedex; + homepage = "https://github.com/mina86/urxvt-tabbedex"; maintainers = with maintainers; [ abbradar ]; platforms = with platforms; unix; }; diff --git a/pkgs/applications/misc/rxvt-unicode-plugins/urxvt-theme-switch/default.nix b/pkgs/applications/misc/rxvt-unicode-plugins/urxvt-theme-switch/default.nix index ba8ec3a6e72..5a84a9b472a 100644 --- a/pkgs/applications/misc/rxvt-unicode-plugins/urxvt-theme-switch/default.nix +++ b/pkgs/applications/misc/rxvt-unicode-plugins/urxvt-theme-switch/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "urxvt plugin that allows to switch color themes during runtime"; - homepage = https://github.com/felixr/urxvt-theme-switch; + homepage = "https://github.com/felixr/urxvt-theme-switch"; license = "CCBYNC"; maintainers = with maintainers; [ ]; platforms = with platforms; unix; diff --git a/pkgs/applications/misc/rxvt-unicode-plugins/urxvt-vtwheel/default.nix b/pkgs/applications/misc/rxvt-unicode-plugins/urxvt-vtwheel/default.nix index 3d0dec20c9a..aebbedacef6 100644 --- a/pkgs/applications/misc/rxvt-unicode-plugins/urxvt-vtwheel/default.nix +++ b/pkgs/applications/misc/rxvt-unicode-plugins/urxvt-vtwheel/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Pass mouse wheel commands to secondary screens (screen, less, nano, etc)"; - homepage = https://aur.archlinux.org/packages/urxvt-vtwheel; + homepage = "https://aur.archlinux.org/packages/urxvt-vtwheel"; license = licenses.mit; maintainers = with maintainers; [ danbst ]; platforms = with platforms; unix; diff --git a/pkgs/applications/misc/rxvt/default.nix b/pkgs/applications/misc/rxvt/default.nix index acdd21a1c21..c71973da13b 100644 --- a/pkgs/applications/misc/rxvt/default.nix +++ b/pkgs/applications/misc/rxvt/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = http://rxvt.sourceforge.net/; + homepage = "http://rxvt.sourceforge.net/"; description = "Colour vt102 terminal emulator with less features and lower memory consumption"; longDescription = '' rxvt (acronym for our extended virtual terminal) is a terminal diff --git a/pkgs/applications/misc/safeeyes/default.nix b/pkgs/applications/misc/safeeyes/default.nix index 125170d36c2..f6bb7133d99 100644 --- a/pkgs/applications/misc/safeeyes/default.nix +++ b/pkgs/applications/misc/safeeyes/default.nix @@ -61,7 +61,7 @@ in buildPythonApplication rec { doCheck = false; # no tests meta = { - homepage = http://slgobinath.github.io/SafeEyes; + homepage = "http://slgobinath.github.io/SafeEyes"; description = "Protect your eyes from eye strain using this simple and beautiful, yet extensible break reminder. A Free and Open Source Linux alternative to EyeLeo"; license = lib.licenses.gpl3; maintainers = with lib.maintainers; [ srghma ]; diff --git a/pkgs/applications/misc/sakura/default.nix b/pkgs/applications/misc/sakura/default.nix index f646b473915..34a6142e83a 100644 --- a/pkgs/applications/misc/sakura/default.nix +++ b/pkgs/applications/misc/sakura/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A terminal emulator based on GTK and VTE"; - homepage = http://www.pleyades.net/david/projects/sakura; + homepage = "http://www.pleyades.net/david/projects/sakura"; license = licenses.gpl2; maintainers = with maintainers; [ astsmtl codyopel ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/sbagen/default.nix b/pkgs/applications/misc/sbagen/default.nix index 6f38ba5662b..821fbe35ca1 100644 --- a/pkgs/applications/misc/sbagen/default.nix +++ b/pkgs/applications/misc/sbagen/default.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { meta = { description = "Binaural sound generator"; - homepage = http://uazu.net/sbagen; + homepage = "http://uazu.net/sbagen"; license = "GPL"; platforms = [ "i686-linux" ]; }; diff --git a/pkgs/applications/misc/sc-im/default.nix b/pkgs/applications/misc/sc-im/default.nix index c95eba48bdf..6ee4695d171 100644 --- a/pkgs/applications/misc/sc-im/default.nix +++ b/pkgs/applications/misc/sc-im/default.nix @@ -33,7 +33,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = https://github.com/andmarti1424/sc-im; + homepage = "https://github.com/andmarti1424/sc-im"; description = "SC-IM - Spreadsheet Calculator Improvised - SC fork"; license = licenses.bsdOriginal; maintainers = [ ]; diff --git a/pkgs/applications/misc/sdcv/default.nix b/pkgs/applications/misc/sdcv/default.nix index 3cebcc0101f..997786fc107 100644 --- a/pkgs/applications/misc/sdcv/default.nix +++ b/pkgs/applications/misc/sdcv/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { NIX_CFLAGS_COMPILE = "-D__GNU_LIBRARY__"; meta = with stdenv.lib; { - homepage = https://dushistov.github.io/sdcv/; + homepage = "https://dushistov.github.io/sdcv/"; description = "Console version of StarDict"; maintainers = with maintainers; [ lovek323 ]; license = licenses.gpl2; diff --git a/pkgs/applications/misc/sent/default.nix b/pkgs/applications/misc/sent/default.nix index 9bbae33b3e4..fe8598e4915 100644 --- a/pkgs/applications/misc/sent/default.nix +++ b/pkgs/applications/misc/sent/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A simple plaintext presentation tool"; - homepage = https://tools.suckless.org/sent/; + homepage = "https://tools.suckless.org/sent/"; license = licenses.isc; platforms = platforms.linux; maintainers = with maintainers; [ pSub ]; diff --git a/pkgs/applications/misc/sequeler/default.nix b/pkgs/applications/misc/sequeler/default.nix index 4199e198c53..070a81167ad 100644 --- a/pkgs/applications/misc/sequeler/default.nix +++ b/pkgs/applications/misc/sequeler/default.nix @@ -11,13 +11,13 @@ let in stdenv.mkDerivation rec { pname = "sequeler"; - version = "0.7.3"; + version = "0.7.9"; src = fetchFromGitHub { owner = "Alecaddd"; repo = pname; rev = "v${version}"; - sha256 = "16vc3v9qls9fxg9h8fsi67z68s4acl5hj14gbcrnqm7mf3kmk3aw"; + sha256 = "117gcc41rd24y5hpm3drqxfcfz52smpcr8w76xnykx8wb1ac50jf"; }; nativeBuildInputs = [ meson ninja pkgconfig vala gettext wrapGAppsHook python3 desktop-file-utils ]; @@ -43,7 +43,7 @@ in stdenv.mkDerivation rec { editor with language recognition, and visualize SELECT results in a Gtk.Grid Widget. ''; - homepage = https://github.com/Alecaddd/sequeler; + homepage = "https://github.com/Alecaddd/sequeler"; license = licenses.gpl3; maintainers = [ maintainers.etu ] ++ pantheon.maintainers; platforms = platforms.linux; diff --git a/pkgs/applications/misc/sequelpro/default.nix b/pkgs/applications/misc/sequelpro/default.nix index e81c0b99264..16a11342d81 100644 --- a/pkgs/applications/misc/sequelpro/default.nix +++ b/pkgs/applications/misc/sequelpro/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation { meta = { description = "MySQL database management for macOS"; - homepage = http://www.sequelpro.com/; + homepage = "http://www.sequelpro.com/"; license = stdenv.lib.licenses.mit; platforms = stdenv.lib.platforms.darwin; }; diff --git a/pkgs/applications/misc/sidequest/default.nix b/pkgs/applications/misc/sidequest/default.nix index 7059eeb2a0d..6c55c3157f5 100644 --- a/pkgs/applications/misc/sidequest/default.nix +++ b/pkgs/applications/misc/sidequest/default.nix @@ -1,7 +1,7 @@ { stdenv, lib, fetchurl, buildFHSUserEnv, makeDesktopItem, makeWrapper, atomEnv, libuuid, at-spi2-atk, icu, openssl, zlib }: let pname = "sidequest"; - version = "0.8.4"; + version = "0.10.2"; desktopItem = makeDesktopItem rec { name = "SideQuest"; @@ -16,7 +16,7 @@ src = fetchurl { url = "https://github.com/the-expanse/SideQuest/releases/download/v${version}/SideQuest-${version}.tar.xz"; - sha256 = "1fiqjzvl7isjn7w6vbbs439pp3bdhw6mnbf8483kvfb0fqhh3vs2"; + sha256 = "1vfxn4gx5b138gj6nk4w3jlp2l56cqpb8hq2kn5mrf4dhjii8n88"; }; buildInputs = [ makeWrapper ]; diff --git a/pkgs/applications/misc/sigal/default.nix b/pkgs/applications/misc/sigal/default.nix index 2b44b0398b5..c0e255a36e3 100644 --- a/pkgs/applications/misc/sigal/default.nix +++ b/pkgs/applications/misc/sigal/default.nix @@ -27,7 +27,7 @@ python3Packages.buildPythonApplication rec { meta = with lib; { description = "Yet another simple static gallery generator"; - homepage = http://sigal.saimon.org/en/latest/index.html; + homepage = "http://sigal.saimon.org/en/latest/index.html"; license = licenses.mit; maintainers = with maintainers; [ domenkozar matthiasbeyer ]; }; diff --git a/pkgs/applications/misc/simplenote/default.nix b/pkgs/applications/misc/simplenote/default.nix index 7ec72eae6fa..195437250a1 100644 --- a/pkgs/applications/misc/simplenote/default.nix +++ b/pkgs/applications/misc/simplenote/default.nix @@ -16,10 +16,10 @@ let pname = "simplenote"; - version = "1.15.0"; + version = "1.15.1"; sha256 = { - x86_64-linux = "08h3g2rw75k63ssd62c6jrb2dy9sz85y5jpfj5np64dvw70a1811"; + x86_64-linux = "1q1y5favj2ny0l2iq53vq39ns68zfr2z1plskxdg2d93jarvcr8x"; }.${system} or throwSystem; meta = with stdenv.lib; { diff --git a/pkgs/applications/misc/slade/default.nix b/pkgs/applications/misc/slade/default.nix index d2d5e9548a0..e93baa997c8 100644 --- a/pkgs/applications/misc/slade/default.nix +++ b/pkgs/applications/misc/slade/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Doom editor"; - homepage = http://slade.mancubus.net/; + homepage = "http://slade.mancubus.net/"; license = licenses.gpl2; platforms = [ "x86_64-linux" "i686-linux" ]; maintainers = with maintainers; [ abbradar ]; diff --git a/pkgs/applications/misc/slade/git.nix b/pkgs/applications/misc/slade/git.nix index 9ee30d347b0..1eaf907b7ed 100644 --- a/pkgs/applications/misc/slade/git.nix +++ b/pkgs/applications/misc/slade/git.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Doom editor"; - homepage = http://slade.mancubus.net/; + homepage = "http://slade.mancubus.net/"; license = licenses.gpl2Plus; platforms = [ "x86_64-linux" "i686-linux" ]; maintainers = with maintainers; [ ertes ]; diff --git a/pkgs/applications/misc/sleepyhead/default.nix b/pkgs/applications/misc/sleepyhead/default.nix index a3270929417..0753045cc4b 100644 --- a/pkgs/applications/misc/sleepyhead/default.nix +++ b/pkgs/applications/misc/sleepyhead/default.nix @@ -7,7 +7,7 @@ in stdenv.mkDerivation { inherit name; src = fetchgit { - url = https://gitlab.com/sleepyhead/sleepyhead-code.git; + url = "https://gitlab.com/sleepyhead/sleepyhead-code.git"; rev = "9e2329d8bca45693231b5e3dae80063717c24578"; sha256 = "0448z8gyaxpgpnksg34lzmffj36jdpm0ir4xxa5gvzagkx0wk07h"; }; @@ -29,7 +29,7 @@ in stdenv.mkDerivation { ''; meta = with stdenv.lib; { - homepage = https://sleepyhead.jedimark.net/; + homepage = "https://sleepyhead.jedimark.net/"; description = "Review and explore data produced by CPAP and related machines"; longDescription = '' SleepyHead is cross platform, opensource sleep tracking program for reviewing CPAP and Oximetry data, which are devices used in the treatment of Sleep Disorders like Obstructive Sleep Apnea. diff --git a/pkgs/applications/misc/slic3r/default.nix b/pkgs/applications/misc/slic3r/default.nix index 1465b0ea052..25019f76545 100644 --- a/pkgs/applications/misc/slic3r/default.nix +++ b/pkgs/applications/misc/slic3r/default.nix @@ -82,7 +82,7 @@ stdenv.mkDerivation rec { instructions for your 3D printer. It cuts the model into horizontal slices (layers), generates toolpaths to fill them and calculates the amount of material to be extruded.''; - homepage = https://slic3r.org/; + homepage = "https://slic3r.org/"; license = licenses.agpl3; platforms = platforms.linux; maintainers = with maintainers; [ bjornfor the-kenny ]; diff --git a/pkgs/applications/misc/slstatus/default.nix b/pkgs/applications/misc/slstatus/default.nix index bfb3d010a3c..5c13cbf8669 100644 --- a/pkgs/applications/misc/slstatus/default.nix +++ b/pkgs/applications/misc/slstatus/default.nix @@ -7,7 +7,7 @@ stdenv.mkDerivation rec { version = "unstable-2018-04-16"; src = fetchgit { - url = https://git.suckless.org/slstatus; + url = "https://git.suckless.org/slstatus"; rev = "97ef7c2a1d67bb2c9c379e657fbc8e35acd6aafb"; sha256 = "1777hgl10imk0l2sgnqgbkfchv1mpxrd82ninzwp7f1rgwchz36v"; }; @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { installFlags = [ "PREFIX=$(out)" ]; meta = { - homepage = https://tools.suckless.org/slstatus/; + homepage = "https://tools.suckless.org/slstatus/"; description = "status monitor for window managers that use WM_NAME like dwm"; license = licenses.isc; maintainers = with maintainers; [ geistesk ]; diff --git a/pkgs/applications/misc/solaar/default.nix b/pkgs/applications/misc/solaar/default.nix index 722b0bc5077..d2a883c295d 100644 --- a/pkgs/applications/misc/solaar/default.nix +++ b/pkgs/applications/misc/solaar/default.nix @@ -39,7 +39,7 @@ python3Packages.buildPythonApplication rec { To be able to use it, make sure you have access to /dev/hidraw* files. ''; license = licenses.gpl2; - homepage = https://pwr-solaar.github.io/Solaar/; + homepage = "https://pwr-solaar.github.io/Solaar/"; platforms = platforms.linux; maintainers = with maintainers; [ spinus ysndr ]; }; diff --git a/pkgs/applications/misc/spacefm/default.nix b/pkgs/applications/misc/spacefm/default.nix index 47e13fa2508..45dc487c8ed 100644 --- a/pkgs/applications/misc/spacefm/default.nix +++ b/pkgs/applications/misc/spacefm/default.nix @@ -47,7 +47,7 @@ stdenv.mkDerivation rec { with built-in VFS, udev- or HAL-based device manager, customizable menu system, and bash integration ''; - homepage = http://ignorantguru.github.io/spacefm/; + homepage = "http://ignorantguru.github.io/spacefm/"; platforms = platforms.linux; license = licenses.gpl3Plus; maintainers = with maintainers; [ jagajaga obadz ]; diff --git a/pkgs/applications/misc/sqliteman/default.nix b/pkgs/applications/misc/sqliteman/default.nix index 103075024dd..27d5610956d 100644 --- a/pkgs/applications/misc/sqliteman/default.nix +++ b/pkgs/applications/misc/sqliteman/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A simple but powerful Sqlite3 GUI database manager"; - homepage = http://sqliteman.yarpen.cz/; + homepage = "http://sqliteman.yarpen.cz/"; license = licenses.gpl2Plus; platforms = platforms.linux; maintainers = [ maintainers.eikek ]; diff --git a/pkgs/applications/misc/ssocr/default.nix b/pkgs/applications/misc/ssocr/default.nix index bb1655b4463..c52573785ef 100644 --- a/pkgs/applications/misc/ssocr/default.nix +++ b/pkgs/applications/misc/ssocr/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Seven Segment Optical Character Recognition"; - homepage = https://github.com/auerswal/ssocr; + homepage = "https://github.com/auerswal/ssocr"; license = licenses.gpl3; maintainers = [ maintainers.kroell ]; }; diff --git a/pkgs/applications/misc/st/default.nix b/pkgs/applications/misc/st/default.nix index 47d7279a47f..018fd9306ae 100644 --- a/pkgs/applications/misc/st/default.nix +++ b/pkgs/applications/misc/st/default.nix @@ -4,17 +4,17 @@ with stdenv.lib; stdenv.mkDerivation rec { - name = "st-0.8.2"; + name = "st-0.8.3"; src = fetchurl { url = "https://dl.suckless.org/st/${name}.tar.gz"; - sha256 = "0ddz2mdp1c7q67rd5vrvws9r0493ln0mlqyc3d73dv8im884xdxf"; + sha256 = "0ll5wbw1szs70wdf8zy1y2ig5mfbqw2w4ls8d64r8z3y4gdf76lk"; }; inherit patches; configFile = optionalString (conf!=null) (writeText "config.def.h" conf); - preBuild = optionalString (conf!=null) "cp ${configFile} config.def.h"; + postPatch = optionalString (conf!=null) "cp ${configFile} config.def.h"; nativeBuildInputs = [ pkgconfig ncurses ]; buildInputs = [ libX11 libXft ] ++ extraLibs; @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = https://st.suckless.org/; + homepage = "https://st.suckless.org/"; description = "Simple Terminal for X from Suckless.org Community"; license = licenses.mit; maintainers = with maintainers; [andsild]; diff --git a/pkgs/applications/misc/st/xst.nix b/pkgs/applications/misc/st/xst.nix index 9407243c6a2..3e29abee5d6 100644 --- a/pkgs/applications/misc/st/xst.nix +++ b/pkgs/applications/misc/st/xst.nix @@ -23,7 +23,7 @@ in stdenv.mkDerivation { ''; meta = { - homepage = https://github.com/neeasade/xst; + homepage = "https://github.com/neeasade/xst"; description = "Simple terminal fork that can load config from Xresources"; license = licenses.mit; maintainers = [ maintainers.vyp ]; diff --git a/pkgs/applications/misc/stag/default.nix b/pkgs/applications/misc/stag/default.nix index ebb50e685da..6b4bf194630 100644 --- a/pkgs/applications/misc/stag/default.nix +++ b/pkgs/applications/misc/stag/default.nix @@ -4,7 +4,7 @@ stdenv.mkDerivation { name = "stag-1.0"; src = fetchgit { - url = https://github.com/seenaburns/stag.git; + url = "https://github.com/seenaburns/stag.git"; rev = "90e2964959ea8242349250640d24cee3d1966ad6"; sha256 = "1yrzjhcwrxrxq5jj695wvpgb0pz047m88yq5n5ymkcw5qr78fy1v"; }; @@ -16,7 +16,7 @@ stdenv.mkDerivation { ''; meta = { - homepage = https://github.com/seenaburns/stag; + homepage = "https://github.com/seenaburns/stag"; description = "Terminal streaming bar graph passed through stdin"; license = stdenv.lib.licenses.bsdOriginal; maintainers = [ stdenv.lib.maintainers.matthiasbeyer ]; diff --git a/pkgs/applications/misc/stog/default.nix b/pkgs/applications/misc/stog/default.nix index 8c47de3afac..038d04adeaa 100644 --- a/pkgs/applications/misc/stog/default.nix +++ b/pkgs/applications/misc/stog/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "XML documents and web site compiler"; - homepage = https://www.good-eris.net/stog; + homepage = "https://www.good-eris.net/stog"; license = licenses.lgpl3; platforms = ocaml.meta.platforms or []; maintainers = with maintainers; [ regnat ]; diff --git a/pkgs/applications/misc/stretchly/default.nix b/pkgs/applications/misc/stretchly/default.nix index 75f3be85dad..87e8316c2c4 100644 --- a/pkgs/applications/misc/stretchly/default.nix +++ b/pkgs/applications/misc/stretchly/default.nix @@ -1,177 +1,38 @@ -{ GConf -, alsaLib -, at-spi2-atk -, at-spi2-core -, atk -, buildFHSUserEnv -, cairo +{ stdenv, lib, fetchurl, makeWrapper, wrapGAppsHook, electron , common-updater-scripts -, coreutils -, cups -, dbus -, expat -, fetchurl -, fontconfig -, gdk-pixbuf -, glib -, gtk2 -, gtk3 -, lib -, libX11 -, libXScrnSaver -, libXcomposite -, libXcursor -, libXdamage -, libXext -, libXfixes -, libXi -, libXrandr -, libXrender -, libXtst -, libappindicator -, libdrm -, libnotify -, libpciaccess -, libpng12 -, libuuid -, libxcb -, nspr -, nss -, pango -, pciutils -, pulseaudio -, runtimeShell -, stdenv -, udev -, wrapGAppsHook -, writeScript -, file +, writeShellScript }: -let - libs = [ - GConf - alsaLib - at-spi2-atk - at-spi2-core - atk - cairo - cups - dbus - expat - fontconfig - gdk-pixbuf - glib - gtk2 - gtk3 - libX11 - libXScrnSaver - libXcomposite - libXcursor - libXdamage - libXext - libXfixes - libXi - libXrandr - libXrender - libXtst - libappindicator - libdrm - libnotify - libpciaccess - libpng12 - libuuid - libxcb - nspr - nss - pango - pciutils - pulseaudio - stdenv.cc.cc.lib - udev +stdenv.mkDerivation rec { + pname = "stretchly"; + version = "0.21.1"; + + src = fetchurl { + url = "https://github.com/hovancik/stretchly/releases/download/v${version}/stretchly-${version}.tar.xz"; + sha256 = "0776pywyqylwd33m85l4wdr89x0q9xkrjgliag10fp1bswz844lf"; + }; + + nativeBuildInputs = [ + wrapGAppsHook ]; - libPath = lib.makeLibraryPath libs; + installPhase = '' + runHook preInstall - stretchly = - stdenv.mkDerivation rec { - pname = "stretchly"; - version = "0.21.0"; + mkdir -p $out/bin $out/share/${pname}/ + mv resources/app.asar $out/share/${pname}/ - src = fetchurl { - url = "https://github.com/hovancik/stretchly/releases/download/v${version}/stretchly-${version}.tar.xz"; - sha256 = "1gyyr22xq8s4miiacs8wqhp7lxnwvkvlwhngnq8671l62s6iyjzl"; - }; + makeWrapper ${electron}/bin/electron $out/bin/${pname} \ + --add-flags $out/share/${pname}/app.asar \ + "''${gappsWrapperArgs[@]}" \ + --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc.lib ]}" - nativeBuildInputs = [ - wrapGAppsHook - coreutils - ]; + runHook postInstall + ''; - buildInputs = libs; - - dontPatchELF = true; - dontBuild = true; - dontConfigure = true; - - installPhase = '' - mkdir -p $out/bin $out/lib/stretchly - cp -r ./* $out/lib/stretchly/ - ln -s $out/lib/stretchly/stretchly $out/bin/ - ''; - - preFixup = '' - patchelf --set-rpath "${libPath}" $out/lib/stretchly/libffmpeg.so - patchelf --set-rpath "${libPath}" $out/lib/stretchly/libEGL.so - patchelf --set-rpath "${libPath}" $out/lib/stretchly/libGLESv2.so - patchelf --set-rpath "${libPath}" $out/lib/stretchly/swiftshader/libEGL.so - patchelf --set-rpath "${libPath}" $out/lib/stretchly/swiftshader/libGLESv2.so - - patchelf \ - --set-rpath "$out/lib/stretchly:${libPath}" \ - --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ - $out/lib/stretchly/stretchly - - patchelf \ - --set-rpath "$out/lib/stretchly:${libPath}" \ - --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ - $out/lib/stretchly/chrome-sandbox - ''; - - meta = with stdenv.lib; { - description = "A break time reminder app"; - longDescription = '' - stretchly is a cross-platform electron app that reminds you to take - breaks when working on your computer. By default, it runs in your tray - and displays a reminder window containing an idea for a microbreak for 20 - seconds every 10 minutes. Every 30 minutes, it displays a window - containing an idea for a longer 5 minute break. - ''; - homepage = https://hovancik.net/stretchly; - downloadPage = https://hovancik.net/stretchly/downloads/; - license = licenses.bsd2; - maintainers = with maintainers; [ cdepillabout ]; - platforms = platforms.linux; - }; - }; - -in - -buildFHSUserEnv { - inherit (stretchly) meta; - - name = "stretchly"; - - targetPkgs = pkgs: [ - stretchly - ]; - - runScript = "stretchly"; passthru = { - updateScript = writeScript "update-stretchly" '' - #!${runtimeShell} - + updateScript = writeShellScript "update-stretchly" '' set -eu -o pipefail # get the latest release version @@ -179,9 +40,23 @@ buildFHSUserEnv { echo "updating to $latest_version..." - ${common-updater-scripts}/bin/update-source-version stretchly.passthru.stretchlyWrapped "$latest_version" + ${common-updater-scripts}/bin/update-source-version stretchly "$latest_version" ''; + }; - stretchlyWrapped = stretchly; + meta = with stdenv.lib; { + description = "A break time reminder app"; + longDescription = '' + stretchly is a cross-platform electron app that reminds you to take + breaks when working on your computer. By default, it runs in your tray + and displays a reminder window containing an idea for a microbreak for 20 + seconds every 10 minutes. Every 30 minutes, it displays a window + containing an idea for a longer 5 minute break. + ''; + homepage = "https://hovancik.net/stretchly"; + downloadPage = "https://hovancik.net/stretchly/downloads/"; + license = licenses.bsd2; + maintainers = with maintainers; [ cdepillabout ]; + platforms = platforms.linux; }; } diff --git a/pkgs/applications/misc/stupidterm/default.nix b/pkgs/applications/misc/stupidterm/default.nix index b786b34e955..0a6e947f15c 100644 --- a/pkgs/applications/misc/stupidterm/default.nix +++ b/pkgs/applications/misc/stupidterm/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Simple wrapper around the VTE terminal emulator widget for GTK"; - homepage = https://github.com/esmil/stupidterm; + homepage = "https://github.com/esmil/stupidterm"; license = licenses.lgpl3Plus; maintainers = [ maintainers.etu ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/styx/default.nix b/pkgs/applications/misc/styx/default.nix index 340b59d5ff2..67f48d67f80 100644 --- a/pkgs/applications/misc/styx/default.nix +++ b/pkgs/applications/misc/styx/default.nix @@ -63,8 +63,8 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Nix based static site generator"; maintainers = with maintainers; [ ericsagnes ]; - homepage = https://styx-static.github.io/styx-site/; - downloadPage = https://github.com/styx-static/styx/; + homepage = "https://styx-static.github.io/styx-site/"; + downloadPage = "https://github.com/styx-static/styx/"; platforms = platforms.all; license = licenses.mit; }; diff --git a/pkgs/applications/misc/subsurface/0001-core-fix-libgit-ifdef-to-handle-libgit2-v1.0-and-onw.patch b/pkgs/applications/misc/subsurface/0001-core-fix-libgit-ifdef-to-handle-libgit2-v1.0-and-onw.patch new file mode 100644 index 00000000000..027e3f493e1 --- /dev/null +++ b/pkgs/applications/misc/subsurface/0001-core-fix-libgit-ifdef-to-handle-libgit2-v1.0-and-onw.patch @@ -0,0 +1,41 @@ +From dfa4bcafec4425659a409550085417af3c5c787b Mon Sep 17 00:00:00 2001 +From: Florian Klink +Date: Sat, 11 Apr 2020 12:38:38 +0200 +Subject: [PATCH] core: fix libgit ifdef to handle libgit2 v1.0 and onwards + +Conditional code for older libgit versions was removed in +https://github.com/Subsurface-divelog/subsurface/pull/2737, +but it's a non-trivial backport, and master currently isn't really ready +for a release. + +So instead ship a patch fixing the one broken libgit2 conditional until +a 4.10 release has been made. + +Note the inverted logic - the if branch now handles the old libgit +condition, and the else branch the newer versions, consistent with how +it's done in the rest of the subsurface codebase. +--- + core/git-access.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/core/git-access.c b/core/git-access.c +index 3688cb90c..9997fc8fd 100644 +--- a/core/git-access.c ++++ b/core/git-access.c +@@ -359,10 +359,10 @@ static int try_to_git_merge(git_repository *repo, git_reference **local_p, git_r + } + + git_merge_init_options(&merge_options, GIT_MERGE_OPTIONS_VERSION); +-#if !LIBGIT2_VER_MAJOR && LIBGIT2_VER_MINOR > 23 +- merge_options.flags = GIT_MERGE_FIND_RENAMES; +-#else ++#if !LIBGIT2_VER_MAJOR && LIBGIT2_VER_MINOR <= 22 + merge_options.tree_flags = GIT_MERGE_TREE_FIND_RENAMES; ++#else ++ merge_options.flags = GIT_MERGE_FIND_RENAMES; + #endif + merge_options.file_favor = GIT_MERGE_FILE_FAVOR_UNION; + merge_options.rename_threshold = 100; +-- +2.25.1 + diff --git a/pkgs/applications/misc/subsurface/default.nix b/pkgs/applications/misc/subsurface/default.nix index 960b7b9eeef..e189351022b 100644 --- a/pkgs/applications/misc/subsurface/default.nix +++ b/pkgs/applications/misc/subsurface/default.nix @@ -1,19 +1,25 @@ { stdenv, fetchurl, fetchFromGitHub, autoreconfHook, cmake, wrapQtAppsHook, pkgconfig, qmake -, curl, grantlee, libgit2, libusb, libssh2, libxml2, libxslt, libzip, zlib +, curl, grantlee, libgit2, libusb-compat-0_1, libssh2, libxml2, libxslt, libzip, zlib , qtbase, qtconnectivity, qtlocation, qtsvg, qttools, qtwebkit, libXcomposite }: let - version = "4.8.2"; + version = "4.9.3"; + + subsurfaceSrc = (fetchFromGitHub { + owner = "Subsurface-divelog"; + repo = "subsurface"; + rev = "v${version}"; + sha256 = "1i07f7appifx9j205x5a7ng01wsipxr6n9a3692pm60jli2nsir5"; + fetchSubmodules = true; + }); libdc = stdenv.mkDerivation { pname = "libdivecomputer-ssrf"; inherit version; - src = fetchurl { - url = "https://subsurface-divelog.org/downloads/libdivecomputer-subsurface-branch-${version}.tgz"; - sha256 = "167qan59raibmilkc574gdqxfjg2f5ww2frn86xzk2kn4qg8190w"; - }; + src = subsurfaceSrc; + sourceRoot = "source/libdivecomputer"; nativeBuildInputs = [ autoreconfHook ]; @@ -22,7 +28,7 @@ let enableParallelBuilding = true; meta = with stdenv.lib; { - homepage = http://www.libdivecomputer.org; + homepage = "http://www.libdivecomputer.org"; description = "A cross-platform and open source library for communication with dive computers from various manufacturers"; maintainers = with maintainers; [ mguentner ]; license = licenses.lgpl21; @@ -70,14 +76,14 @@ in stdenv.mkDerivation { pname = "subsurface"; inherit version; - src = fetchurl { - url = "https://subsurface-divelog.org/downloads/Subsurface-${version}.tgz"; - sha256 = "1fzrq6rqb6pzs36wxar2453cl509dqpcy9w7nq4gw7b1v2331wfy"; - }; + src = subsurfaceSrc; + + # remove with the 4.10 release + patches = [ ./0001-core-fix-libgit-ifdef-to-handle-libgit2-v1.0-and-onw.patch ]; buildInputs = [ libdc googlemaps - curl grantlee libgit2 libssh2 libusb libxml2 libxslt libzip + curl grantlee libgit2 libssh2 libusb-compat-0_1 libxml2 libxslt libzip qtbase qtconnectivity qtsvg qttools qtwebkit ]; @@ -100,7 +106,7 @@ in stdenv.mkDerivation { conveniently be entered using a map interface), logging of equipment used and names of other divers, and lets users rate dives and provide additional notes. ''; - homepage = https://subsurface-divelog.org; + homepage = "https://subsurface-divelog.org"; license = licenses.gpl2; maintainers = with maintainers; [ mguentner ]; platforms = platforms.all; diff --git a/pkgs/applications/misc/super_user_spark/default.nix b/pkgs/applications/misc/super_user_spark/default.nix index 8102375479b..dd1218282d8 100644 --- a/pkgs/applications/misc/super_user_spark/default.nix +++ b/pkgs/applications/misc/super_user_spark/default.nix @@ -27,6 +27,6 @@ mkDerivation { jailbreak = true; description = "Configure your dotfile deployment with a DSL"; license = stdenv.lib.licenses.mit; - homepage = https://github.com/NorfairKing/super-user-spark; + homepage = "https://github.com/NorfairKing/super-user-spark"; maintainers = [ stdenv.lib.maintainers.badi ]; } diff --git a/pkgs/applications/misc/sweethome3d/default.nix b/pkgs/applications/misc/sweethome3d/default.nix index 76a62d1762c..7f094607859 100644 --- a/pkgs/applications/misc/sweethome3d/default.nix +++ b/pkgs/applications/misc/sweethome3d/default.nix @@ -59,7 +59,7 @@ let dontStrip = true; meta = { - homepage = http://www.sweethome3d.com/index.jsp; + homepage = "http://www.sweethome3d.com/index.jsp"; inherit description; inherit license; maintainers = [ stdenv.lib.maintainers.edwtjo ]; diff --git a/pkgs/applications/misc/sweethome3d/editors.nix b/pkgs/applications/misc/sweethome3d/editors.nix index 1d3f1a41e16..ec759572443 100644 --- a/pkgs/applications/misc/sweethome3d/editors.nix +++ b/pkgs/applications/misc/sweethome3d/editors.nix @@ -47,7 +47,7 @@ let dontStrip = true; meta = { - homepage = http://www.sweethome3d.com/index.jsp; + homepage = "http://www.sweethome3d.com/index.jsp"; inherit description; inherit license; maintainers = [ stdenv.lib.maintainers.edwtjo ]; diff --git a/pkgs/applications/misc/synapse/default.nix b/pkgs/applications/misc/synapse/default.nix index c12f5b17679..751c0a48f5b 100644 --- a/pkgs/applications/misc/synapse/default.nix +++ b/pkgs/applications/misc/synapse/default.nix @@ -29,7 +29,7 @@ in stdenv.mkDerivation rec { the Zeitgeist engine ''; description = "Semantic launcher to start applications and find relevant files"; - homepage = https://launchpad.net/synapse-project; + homepage = "https://launchpad.net/synapse-project"; license = licenses.gpl3; maintainers = with maintainers; [ mahe ]; platforms = with platforms; all; diff --git a/pkgs/applications/misc/syncthing-tray/default.nix b/pkgs/applications/misc/syncthing-tray/default.nix index a07fe0c7510..38826b7735f 100644 --- a/pkgs/applications/misc/syncthing-tray/default.nix +++ b/pkgs/applications/misc/syncthing-tray/default.nix @@ -20,7 +20,7 @@ buildGoPackage rec { meta = with stdenv.lib; { description = "Simple application tray for syncthing"; - homepage = https://github.com/alex2108/syncthing-tray; + homepage = "https://github.com/alex2108/syncthing-tray"; license = licenses.mit; maintainers = with maintainers; [ nickhu ]; platforms = platforms.all; diff --git a/pkgs/applications/misc/syncthingtray/default.nix b/pkgs/applications/misc/syncthingtray/default.nix index 610409af7a7..16bfdfb9a03 100644 --- a/pkgs/applications/misc/syncthingtray/default.nix +++ b/pkgs/applications/misc/syncthingtray/default.nix @@ -20,14 +20,14 @@ }: mkDerivation rec { - version = "0.10.6"; + version = "0.10.8"; pname = "syncthingtray"; src = fetchFromGitHub { owner = "Martchus"; repo = "syncthingtray"; rev = "v${version}"; - sha256 = "1lh1qsdy5081jrs27ba0mfh90ya1fj9h6j5k0cdsfap9mcxyjd9g"; + sha256 = "1g27v109m0ar090b340x6lsrzfp85hskcr3kapc2rgdhaa0mygpd"; }; buildInputs = [ qtbase cpp-utilities qtutilities ] diff --git a/pkgs/applications/misc/synergy/default.nix b/pkgs/applications/misc/synergy/default.nix index 645ed7433b3..bb922f3ca5b 100644 --- a/pkgs/applications/misc/synergy/default.nix +++ b/pkgs/applications/misc/synergy/default.nix @@ -1,11 +1,11 @@ -{ stdenv, lib, fetchFromGitHub, cmake, openssl +{ stdenv, lib, fetchFromGitHub, cmake, openssl, qttools , ApplicationServices, Carbon, Cocoa, CoreServices, ScreenSaver , xlibsWrapper, libX11, libXi, libXtst, libXrandr, xinput, avahi-compat , withGUI ? true, wrapQtAppsHook }: stdenv.mkDerivation rec { pname = "synergy"; - version = "1.11.0"; + version = "1.11.1"; src = fetchFromGitHub { owner = "symless"; @@ -43,6 +43,8 @@ stdenv.mkDerivation rec { buildInputs = [ openssl + ] ++ lib.optionals withGUI [ + qttools ] ++ lib.optionals stdenv.isDarwin [ ApplicationServices Carbon Cocoa CoreServices ScreenSaver ] ++ lib.optionals stdenv.isLinux [ @@ -71,7 +73,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Share one mouse and keyboard between multiple computers"; - homepage = http://synergy-project.org/; + homepage = "http://synergy-project.org/"; license = licenses.gpl2; maintainers = with maintainers; [ aszlig enzime ]; platforms = platforms.all; diff --git a/pkgs/applications/misc/tabula/default.nix b/pkgs/applications/misc/tabula/default.nix index fbb1832735b..1b29118c9b1 100644 --- a/pkgs/applications/misc/tabula/default.nix +++ b/pkgs/applications/misc/tabula/default.nix @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { out of PDF files. Tabula allows you to extract that data into a CSV or Microsoft Excel spreadsheet using a simple, easy-to-use interface. ''; - homepage = https://tabula.technology/; + homepage = "https://tabula.technology/"; license = licenses.mit; maintainers = [ maintainers.dpaetzel ]; platforms = platforms.all; diff --git a/pkgs/applications/misc/taizen/default.nix b/pkgs/applications/misc/taizen/default.nix index bf9770acacd..993606d39c0 100644 --- a/pkgs/applications/misc/taizen/default.nix +++ b/pkgs/applications/misc/taizen/default.nix @@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec { cargoSha256 = "0chrgwm97y1a3gj218x25yqk1y1h74a6gzyxjdm023msvs58nkni"; meta = with lib; { - homepage = https://crates.io/crates/taizen; + homepage = "https://crates.io/crates/taizen"; license = licenses.mit; description = "curses based mediawiki browser"; maintainers = with maintainers; [ ma27 ]; diff --git a/pkgs/applications/misc/taskjuggler/2.x/default.nix b/pkgs/applications/misc/taskjuggler/2.x/default.nix index a0dc7b7c71e..a1d04a13af8 100644 --- a/pkgs/applications/misc/taskjuggler/2.x/default.nix +++ b/pkgs/applications/misc/taskjuggler/2.x/default.nix @@ -60,7 +60,7 @@ stdenv.mkDerivation rec { installFlags = [ "kde_locale=\${out}/share/locale" ]; meta = { - homepage = http://www.taskjuggler.org; + homepage = "http://www.taskjuggler.org"; license = stdenv.lib.licenses.gpl2; description = "Project management tool"; longDescription = '' diff --git a/pkgs/applications/misc/taskjuggler/3.x/Gemfile.lock b/pkgs/applications/misc/taskjuggler/3.x/Gemfile.lock index d1642e76fa6..8831993117d 100644 --- a/pkgs/applications/misc/taskjuggler/3.x/Gemfile.lock +++ b/pkgs/applications/misc/taskjuggler/3.x/Gemfile.lock @@ -18,4 +18,4 @@ DEPENDENCIES taskjuggler BUNDLED WITH - 1.10.5 + 2.1.4 diff --git a/pkgs/applications/misc/taskjuggler/3.x/default.nix b/pkgs/applications/misc/taskjuggler/3.x/default.nix index 23252d0c480..6b3ef60d638 100644 --- a/pkgs/applications/misc/taskjuggler/3.x/default.nix +++ b/pkgs/applications/misc/taskjuggler/3.x/default.nix @@ -8,7 +8,7 @@ bundlerEnv { meta = { description = "A modern and powerful project management tool"; - homepage = http://taskjuggler.org/; + homepage = "http://taskjuggler.org/"; license = lib.licenses.gpl2; platforms = lib.platforms.unix; }; diff --git a/pkgs/applications/misc/taskjuggler/Gemfile.lock b/pkgs/applications/misc/taskjuggler/Gemfile.lock index dcc46e370e7..0f05c496173 100644 --- a/pkgs/applications/misc/taskjuggler/Gemfile.lock +++ b/pkgs/applications/misc/taskjuggler/Gemfile.lock @@ -18,4 +18,4 @@ DEPENDENCIES taskjuggler BUNDLED WITH - 1.17.2 + 2.1.4 diff --git a/pkgs/applications/misc/taskjuggler/default.nix b/pkgs/applications/misc/taskjuggler/default.nix index 838cc199a6c..64753397833 100644 --- a/pkgs/applications/misc/taskjuggler/default.nix +++ b/pkgs/applications/misc/taskjuggler/default.nix @@ -13,7 +13,7 @@ bundlerApp { meta = with lib; { description = "A modern and powerful project management tool"; - homepage = http://taskjuggler.org/; + homepage = "http://taskjuggler.org/"; license = licenses.gpl2; platforms = platforms.unix; maintainers = with maintainers; [ manveru nicknovitski ]; diff --git a/pkgs/applications/misc/tasknc/default.nix b/pkgs/applications/misc/tasknc/default.nix index 0450cb40a55..46378aec33a 100644 --- a/pkgs/applications/misc/tasknc/default.nix +++ b/pkgs/applications/misc/tasknc/default.nix @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { - homepage = https://github.com/lharding/tasknc; + homepage = "https://github.com/lharding/tasknc"; description = "A ncurses wrapper around taskwarrior"; maintainers = with maintainers; [ matthiasbeyer infinisil ]; platforms = platforms.linux; # Cannot test others diff --git a/pkgs/applications/misc/taskopen/default.nix b/pkgs/applications/misc/taskopen/default.nix index 847092356d2..a60ca997ee0 100644 --- a/pkgs/applications/misc/taskopen/default.nix +++ b/pkgs/applications/misc/taskopen/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Script for taking notes and open urls with taskwarrior"; - homepage = https://github.com/ValiValpas/taskopen; + homepage = "https://github.com/ValiValpas/taskopen"; platforms = platforms.linux; license = stdenv.lib.licenses.free ; maintainers = [ maintainers.winpat ]; diff --git a/pkgs/applications/misc/tasksh/default.nix b/pkgs/applications/misc/tasksh/default.nix index 931a27fbeff..4c577049f44 100644 --- a/pkgs/applications/misc/tasksh/default.nix +++ b/pkgs/applications/misc/tasksh/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "REPL for taskwarrior"; - homepage = http://tasktools.org; + homepage = "http://tasktools.org"; license = licenses.mit; maintainers = with maintainers; [ matthiasbeyer ]; platforms = platforms.unix; diff --git a/pkgs/applications/misc/taskwarrior/default.nix b/pkgs/applications/misc/taskwarrior/default.nix index ba919fbc626..67f2fd8927b 100644 --- a/pkgs/applications/misc/taskwarrior/default.nix +++ b/pkgs/applications/misc/taskwarrior/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Highly flexible command-line tool to manage TODO lists"; - homepage = https://taskwarrior.org; + homepage = "https://taskwarrior.org"; license = licenses.mit; maintainers = with maintainers; [ marcweber ]; platforms = platforms.linux ++ platforms.darwin; diff --git a/pkgs/applications/misc/tdrop/default.nix b/pkgs/applications/misc/tdrop/default.nix index 547eea4f2d2..020298a0c52 100644 --- a/pkgs/applications/misc/tdrop/default.nix +++ b/pkgs/applications/misc/tdrop/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "A Glorified WM-Independent Dropdown Creator"; - homepage = https://github.com/noctuid/tdrop; + homepage = "https://github.com/noctuid/tdrop"; license = licenses.bsd2; platforms = platforms.linux; maintainers = with maintainers; [ wedens ]; diff --git a/pkgs/applications/misc/termdown/default.nix b/pkgs/applications/misc/termdown/default.nix index 94eacb1fe06..5ccdbbbb6b4 100644 --- a/pkgs/applications/misc/termdown/default.nix +++ b/pkgs/applications/misc/termdown/default.nix @@ -20,7 +20,7 @@ buildPythonApplication rec { meta = with stdenv.lib; { description = "Starts a countdown to or from TIMESPEC"; longDescription = "Countdown timer and stopwatch in your terminal"; - homepage = https://github.com/trehn/termdown; + homepage = "https://github.com/trehn/termdown"; license = licenses.gpl3; platforms = platforms.all; }; diff --git a/pkgs/applications/misc/terminal-notifier/default.nix b/pkgs/applications/misc/terminal-notifier/default.nix index 00300e65abb..cde53ef4165 100644 --- a/pkgs/applications/misc/terminal-notifier/default.nix +++ b/pkgs/applications/misc/terminal-notifier/default.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { meta = with lib; { maintainers = with maintainers; [ cstrahan ]; - homepage = https://github.com/julienXX/terminal-notifier; + homepage = "https://github.com/julienXX/terminal-notifier"; license = licenses.mit; platforms = platforms.darwin; }; diff --git a/pkgs/applications/misc/terminal-parrot/default.nix b/pkgs/applications/misc/terminal-parrot/default.nix index ba898932f06..68241d79850 100644 --- a/pkgs/applications/misc/terminal-parrot/default.nix +++ b/pkgs/applications/misc/terminal-parrot/default.nix @@ -15,7 +15,7 @@ buildGoModule rec { meta = with stdenv.lib; { description = "Shows colorful, animated party parrot in your terminial"; - homepage = https://github.com/jmhobbs/terminal-parrot; + homepage = "https://github.com/jmhobbs/terminal-parrot"; license = licenses.mit; platforms = platforms.all; maintainers = [ maintainers.heel ]; diff --git a/pkgs/applications/misc/terminator/default.nix b/pkgs/applications/misc/terminator/default.nix index d09c98b6709..5de8109e3a4 100644 --- a/pkgs/applications/misc/terminator/default.nix +++ b/pkgs/applications/misc/terminator/default.nix @@ -1,28 +1,64 @@ -{ stdenv, fetchurl, python2, keybinder3, intltool, file, gtk3, gobject-introspection -, libnotify, wrapGAppsHook, vte +{ stdenv +, fetchFromGitHub +, python3 +, keybinder3 +, intltool +, file +, gtk3 +, gobject-introspection +, libnotify +, wrapGAppsHook +, vte }: -python2.pkgs.buildPythonApplication rec { - name = "terminator-${version}"; - version = "1.91"; +python3.pkgs.buildPythonApplication rec { + pname = "terminator"; + version = "1.92"; - src = fetchurl { - url = "https://launchpad.net/terminator/gtk3/${version}/+download/${name}.tar.gz"; - sha256 = "95f76e3c0253956d19ceab2f8da709a496f1b9cf9b1c5b8d3cd0b6da3cc7be69"; + src = fetchFromGitHub { + owner = "gnome-terminator"; + repo = "terminator"; + rev = "v${version}"; + sha256 = "105f660wzf9cpn24xzwaaa09igg5h3qhchafv190v5nqck6g1ssh"; }; - nativeBuildInputs = [ file intltool wrapGAppsHook gobject-introspection ]; - buildInputs = [ gtk3 vte libnotify keybinder3 - gobject-introspection # Temporary fix, see https://github.com/NixOS/nixpkgs/issues/56943 + nativeBuildInputs = [ + file + intltool + gobject-introspection + wrapGAppsHook + ]; + + buildInputs = [ + gtk3 + gobject-introspection # Temporary fix, see https://github.com/NixOS/nixpkgs/issues/56943 + keybinder3 + libnotify + python3 + vte + ]; + + propagatedBuildInputs = with python3.pkgs; [ + configobj + dbus-python + pygobject3 + psutil + pycairo ]; - propagatedBuildInputs = with python2.pkgs; [ pygobject3 psutil pycairo ]; postPatch = '' - patchShebangs . + patchShebangs run_tests tests po + # dbus-python is correctly passed in propagatedBuildInputs, but for some reason setup.py complains. + # The wrapped terminator has the correct path added, so ignore this. + substituteInPlace setup.py --replace "'dbus-python'," "" ''; checkPhase = '' + runHook preCheck + ./run_tests + + runHook postCheck ''; meta = with stdenv.lib; { @@ -33,7 +69,7 @@ python2.pkgs.buildPythonApplication rec { quadkonsole, etc. in that the main focus is arranging terminals in grids (tabs is the most common default method, which Terminator also supports). ''; - homepage = https://gnometerminator.blogspot.no/p/introduction.html; + homepage = "https://github.com/gnome-terminator/terminator"; license = licenses.gpl2; maintainers = with maintainers; [ bjornfor ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/terminus/default.nix b/pkgs/applications/misc/terminus/default.nix index fce46d120de..4c38e530247 100644 --- a/pkgs/applications/misc/terminus/default.nix +++ b/pkgs/applications/misc/terminus/default.nix @@ -35,7 +35,7 @@ stdenv.mkDerivation rec { dontPatchELF = true; meta = with lib; { description = "A terminal for a more modern age"; - homepage = https://eugeny.github.io/terminus/; + homepage = "https://eugeny.github.io/terminus/"; maintainers = with maintainers; [ jlesquembre ]; license = licenses.mit; platforms = [ "x86_64-linux" ]; diff --git a/pkgs/applications/misc/termite/default.nix b/pkgs/applications/misc/termite/default.nix index 2a610edde03..63565e207f7 100644 --- a/pkgs/applications/misc/termite/default.nix +++ b/pkgs/applications/misc/termite/default.nix @@ -77,7 +77,7 @@ in stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A simple VTE-based terminal"; license = licenses.lgpl2Plus; - homepage = https://github.com/thestinger/termite/; + homepage = "https://github.com/thestinger/termite/"; maintainers = with maintainers; [ koral ]; platforms = platforms.all; }; diff --git a/pkgs/applications/misc/termpdf.py/default.nix b/pkgs/applications/misc/termpdf.py/default.nix new file mode 100644 index 00000000000..5988f569109 --- /dev/null +++ b/pkgs/applications/misc/termpdf.py/default.nix @@ -0,0 +1,51 @@ +{ stdenv +, buildPythonApplication +, fetchFromGitHub +, fetchPypi +, bibtool +, pybtex +, pymupdf +, pynvim +, pyperclip +, roman +, pdfrw +, pagelabels +, setuptools +}: + +buildPythonApplication { + pname = "termpdf.py"; + version = "2019-10-03"; + + src = fetchFromGitHub { + owner = "dsanson"; + repo = "termpdf.py"; + rev = "4f3bdf4b5a00801631f2498f2c38c81e0a588ae2"; + sha256 = "05gbj2fqzqndq1mx6g9asa7i6z8a9jdjrvilfwx8lg23cs356m6m"; + }; + + propagatedBuildInputs = [ + bibtool + pybtex + pymupdf + pyperclip + roman + pagelabels + pdfrw + pynvim + setuptools + ]; + + # upstream doesn't contain tests + doCheck = false; + + meta = with stdenv.lib; { + description = '' + A graphical pdf (and epub, cbz, ...) reader that works + inside the kitty terminal. + ''; + homepage = "https://github.com/dsanson/termpdf.py"; + maintainers = with maintainers; [ teto ]; + license = licenses.mit; + }; +} diff --git a/pkgs/applications/misc/teseq/default.nix b/pkgs/applications/misc/teseq/default.nix index b1764591982..1ba22911c51 100644 --- a/pkgs/applications/misc/teseq/default.nix +++ b/pkgs/applications/misc/teseq/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation { }; meta = { - homepage = https://www.gnu.org/software/teseq/; + homepage = "https://www.gnu.org/software/teseq/"; description = "Escape sequence illuminator"; license = stdenv.lib.licenses.gpl3; diff --git a/pkgs/applications/misc/thinking-rock/default.nix b/pkgs/applications/misc/thinking-rock/default.nix index c057fde95d7..fd6065010fb 100644 --- a/pkgs/applications/misc/thinking-rock/default.nix +++ b/pkgs/applications/misc/thinking-rock/default.nix @@ -4,7 +4,7 @@ stdenv.mkDerivation { name = "thinkingrock-binary-2.2.1"; src = fetchurl { - url = mirror://sourceforge/thinkingrock/ThinkingRock/TR%202.2.1/tr-2.2.1.tar.gz; + url = "mirror://sourceforge/thinkingrock/ThinkingRock/TR%202.2.1/tr-2.2.1.tar.gz"; sha256 = "0hnwvvyc8miiz8w2g4iy7s4rgfy0kfbncgbgfzpsq6nrzq334kgm"; }; @@ -34,7 +34,7 @@ stdenv.mkDerivation { meta = { description = "Task management system"; - homepage = http://www.thinkingrock.com.au/; + homepage = "http://www.thinkingrock.com.au/"; license = "CDDL"; # Common Development and Distribution License platforms = stdenv.lib.platforms.unix; }; diff --git a/pkgs/applications/misc/tilda/default.nix b/pkgs/applications/misc/tilda/default.nix index 39f54156fef..f8ae5587ff9 100644 --- a/pkgs/applications/misc/tilda/default.nix +++ b/pkgs/applications/misc/tilda/default.nix @@ -1,20 +1,23 @@ -{ stdenv, fetchzip, pkgconfig -, autoreconfHook, gettext, expat +{ stdenv, fetchFromGitHub, pkgconfig +, autoreconfHook, gettext, expat, pcre2 , libconfuse, vte, gtk , makeWrapper }: +with stdenv.lib; stdenv.mkDerivation rec { pname = "tilda"; - version = "1.4.1"; + version = "1.5.0"; - src = fetchzip { - url = "https://github.com/lanoxx/tilda/archive/${pname}-${version}.tar.gz"; - sha256 = "154rsldqjv2m1bddisb930qicb0y35kx7bxq392n2hn68jr2pxkj"; + src = fetchFromGitHub { + owner = "lanoxx"; + repo = "tilda"; + rev = "${pname}-${version}"; + sha256 = "13djibj3s7ig13c57ywy38pxy3qfmqihii2c0g15fy2h9q8xp1gx"; }; nativeBuildInputs = [ autoreconfHook makeWrapper pkgconfig ]; - buildInputs = [ gettext libconfuse vte gtk ]; + buildInputs = [ gettext pcre2 libconfuse vte gtk ]; LD_LIBRARY_PATH = "${expat.out}/lib"; # ugly hack for xgettext to work during build @@ -27,9 +30,9 @@ stdenv.mkDerivation rec { --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" ''; - meta = with stdenv.lib; { + meta = { description = "A Gtk based drop down terminal for Linux and Unix"; - homepage = https://github.com/lanoxx/tilda/; + homepage = "https://github.com/lanoxx/tilda/"; license = licenses.gpl3; maintainers = [ maintainers.AndersonTorres ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/tilix/default.nix b/pkgs/applications/misc/tilix/default.nix index 2fa193fc8e7..4707685e3da 100644 --- a/pkgs/applications/misc/tilix/default.nix +++ b/pkgs/applications/misc/tilix/default.nix @@ -66,7 +66,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Tiling terminal emulator following the Gnome Human Interface Guidelines"; - homepage = https://gnunn1.github.io/tilix-web; + homepage = "https://gnunn1.github.io/tilix-web"; license = licenses.mpl20; maintainers = with maintainers; [ midchildan worldofpeace ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/tint2/default.nix b/pkgs/applications/misc/tint2/default.nix index c85feff4360..dc991402eec 100644 --- a/pkgs/applications/misc/tint2/default.nix +++ b/pkgs/applications/misc/tint2/default.nix @@ -32,7 +32,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = https://gitlab.com/o9000/tint2; + homepage = "https://gitlab.com/o9000/tint2"; description = "Simple panel/taskbar unintrusive and light (memory, cpu, aestetic)"; license = licenses.gpl2; platforms = platforms.linux; diff --git a/pkgs/applications/misc/tnef/default.nix b/pkgs/applications/misc/tnef/default.nix index bbd3073a4d8..40505c4fdbe 100644 --- a/pkgs/applications/misc/tnef/default.nix +++ b/pkgs/applications/misc/tnef/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { The TNEF program allows one to unpack the attachments which were encapsulated into the TNEF attachment. Thus alleviating the need to use Microsoft Outlook to view the attachment. ''; - homepage = https://github.com/verdammelt/tnef; + homepage = "https://github.com/verdammelt/tnef"; license = licenses.gpl2; maintainers = with maintainers; [ peterhoeg ]; platforms = platforms.all; diff --git a/pkgs/applications/misc/todoist-electron/default.nix b/pkgs/applications/misc/todoist-electron/default.nix index cb0ee20f555..798f1708ae7 100644 --- a/pkgs/applications/misc/todoist-electron/default.nix +++ b/pkgs/applications/misc/todoist-electron/default.nix @@ -4,18 +4,18 @@ stdenv.mkDerivation rec { pname = "todoist-electron"; - version = "1.19"; + version = "1.20"; src = fetchurl { url = "https://github.com/KryDos/todoist-linux/releases/download/${version}/Todoist_${version}.0_amd64.deb"; - sha256 = "1w0l7k7wmbhwzv71cffsir0q7zg9m0617fmyvd4a01b6flpxrpfx"; + sha256 = "0w885xqy1304cp6b0jll5lvm6b1zd1ciqjl97d2hkdi8c9gv3bqx"; }; desktopItem = makeDesktopItem { name = "Todoist"; exec = "todoist"; desktopName = "Todoist"; - categories = "Utility;Productivity"; + categories = "Utility"; }; nativeBuildInputs = [ makeWrapper dpkg ]; diff --git a/pkgs/applications/misc/todoist/default.nix b/pkgs/applications/misc/todoist/default.nix index 74b2b770215..1e82ac2cccb 100644 --- a/pkgs/applications/misc/todoist/default.nix +++ b/pkgs/applications/misc/todoist/default.nix @@ -14,7 +14,7 @@ buildGoModule rec { modSha256 = "1nnp5ijz4n34gc97rar4wlvlbx21ndpjyb2mc6gxdk1wzx3mgswp"; meta = { - homepage = https://github.com/sachaos/todoist; + homepage = "https://github.com/sachaos/todoist"; description = "Todoist CLI Client"; license = lib.licenses.mit; platforms = lib.platforms.unix; diff --git a/pkgs/applications/misc/toggldesktop/default.nix b/pkgs/applications/misc/toggldesktop/default.nix index bf22cb0181d..410c17be803 100644 --- a/pkgs/applications/misc/toggldesktop/default.nix +++ b/pkgs/applications/misc/toggldesktop/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchzip, buildEnv, makeDesktopItem, runCommand, writeText, pkgconfig +{ mkDerivation, lib, fetchzip, buildEnv, makeDesktopItem, runCommand, writeText, pkgconfig , cmake, qmake, cacert, jsoncpp, libX11, libXScrnSaver, lua, openssl, poco , qtbase, qtwebengine, qtx11extras, sqlite }: @@ -11,7 +11,7 @@ let sha256 = "01hqkx9dljnhwnyqi6mmzfp02hnbi2j50rsfiasniqrkbi99x9v1"; }; - bugsnag-qt = stdenv.mkDerivation rec { + bugsnag-qt = mkDerivation rec { pname = "bugsnag-qt"; version = "20180522.005732"; @@ -24,7 +24,7 @@ let buildInputs = [ qtbase ]; }; - qxtglobalshortcut = stdenv.mkDerivation rec { + qxtglobalshortcut = mkDerivation rec { pname = "qxtglobalshortcut"; version = "f584471dada2099ba06c574bdfdd8b078c2e3550"; @@ -37,7 +37,7 @@ let buildInputs = [ qtbase qtx11extras ]; }; - qt-oauth-lib = stdenv.mkDerivation rec { + qt-oauth-lib = mkDerivation rec { pname = "qt-oauth-lib"; version = "20190125.190943"; @@ -62,7 +62,7 @@ let mkdir -p $out/lib/pkgconfig && ln -s ${poco-pc} $_/poco.pc ''; - libtoggl = stdenv.mkDerivation { + libtoggl = mkDerivation { name = "libtoggl-${version}"; inherit src version; @@ -77,7 +77,7 @@ let ''; }; - toggldesktop = stdenv.mkDerivation { + toggldesktop = mkDerivation { name = "${name}-unwrapped"; inherit src version; @@ -108,7 +108,7 @@ let ]; }; - toggldesktop-icons = stdenv.mkDerivation { + toggldesktop-icons = mkDerivation { name = "${name}-icons"; inherit (toggldesktop) src sourceRoot; @@ -138,9 +138,9 @@ buildEnv { inherit name; paths = [ desktopItem toggldesktop-icons toggldesktop-wrapped ]; - meta = with stdenv.lib; { + meta = with lib; { description = "Client for Toggl time tracking service"; - homepage = https://github.com/toggl/toggldesktop; + homepage = "https://github.com/toggl/toggldesktop"; license = licenses.bsd3; maintainers = with maintainers; [ yegortimoshenko ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/tomboy/default.nix b/pkgs/applications/misc/tomboy/default.nix index d8a6f86f104..ff4faf139e6 100644 --- a/pkgs/applications/misc/tomboy/default.nix +++ b/pkgs/applications/misc/tomboy/default.nix @@ -34,7 +34,7 @@ stdenv.mkDerivation { ''; meta = with stdenv.lib; { - homepage = https://wiki.gnome.org/Apps/Tomboy; + homepage = "https://wiki.gnome.org/Apps/Tomboy"; description = "A simple note-taking application with synchronization"; platforms = platforms.linux; license = stdenv.lib.licenses.lgpl2; diff --git a/pkgs/applications/misc/tootle/default.nix b/pkgs/applications/misc/tootle/default.nix index e619ab053e7..904782f3e1f 100644 --- a/pkgs/applications/misc/tootle/default.nix +++ b/pkgs/applications/misc/tootle/default.nix @@ -70,7 +70,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Simple Mastodon client designed for elementary OS"; - homepage = https://github.com/bleakgrey/tootle; + homepage = "https://github.com/bleakgrey/tootle"; license = licenses.gpl3; maintainers = with maintainers; [ dtzWill ]; }; diff --git a/pkgs/applications/misc/tpmmanager/default.nix b/pkgs/applications/misc/tpmmanager/default.nix index b955711d003..2bbb95d01ae 100644 --- a/pkgs/applications/misc/tpmmanager/default.nix +++ b/pkgs/applications/misc/tpmmanager/default.nix @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = https://projects.sirrix.com/trac/tpmmanager; + homepage = "https://projects.sirrix.com/trac/tpmmanager"; description = "Tool for managing the TPM"; license = stdenv.lib.licenses.gpl2; maintainers = with stdenv.lib.maintainers; [ tstrobel ]; diff --git a/pkgs/applications/misc/translate-shell/default.nix b/pkgs/applications/misc/translate-shell/default.nix index a2f6980abd9..e418ee69b95 100644 --- a/pkgs/applications/misc/translate-shell/default.nix +++ b/pkgs/applications/misc/translate-shell/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = https://www.soimort.org/translate-shell; + homepage = "https://www.soimort.org/translate-shell"; description = "Command-line translator using Google Translate, Bing Translator, Yandex.Translate, and Apertium"; license = licenses.unlicense; maintainers = with maintainers; [ ebzzry infinisil ]; diff --git a/pkgs/applications/misc/tthsum/default.nix b/pkgs/applications/misc/tthsum/default.nix index 76ac3f75b26..792b80d0462 100644 --- a/pkgs/applications/misc/tthsum/default.nix +++ b/pkgs/applications/misc/tthsum/default.nix @@ -33,7 +33,7 @@ stdenv.mkDerivation rec { The specification of the THEX algorithm is at: http://adc.sourceforge.net/draft-jchapweske-thex-02.html ''; - homepage = http://tthsum.devs.nu/; + homepage = "http://tthsum.devs.nu/"; license = licenses.gpl3Plus; maintainers = [ maintainers.ebzzry ]; platforms = platforms.unix; diff --git a/pkgs/applications/misc/tuir/default.nix b/pkgs/applications/misc/tuir/default.nix index e479dc26f17..11bf70cb56b 100644 --- a/pkgs/applications/misc/tuir/default.nix +++ b/pkgs/applications/misc/tuir/default.nix @@ -3,13 +3,13 @@ with python3Packages; buildPythonApplication rec { pname = "tuir"; - version = "1.28.3"; + version = "1.29.0"; src = fetchFromGitLab { owner = "ajak"; repo = pname; rev = "v${version}"; - sha256 = "0nhpbb0vdngwb0fhlimjgm3wq2s67m4rb3vv920zyllnmfplk0lk"; + sha256 = "1fqp6bvq8kzdsf3nna4mn1phdcixpx76bya43xrivxjbzsfl59ib"; }; # Tests try to access network diff --git a/pkgs/applications/misc/tut/default.nix b/pkgs/applications/misc/tut/default.nix new file mode 100644 index 00000000000..e9b09d68da6 --- /dev/null +++ b/pkgs/applications/misc/tut/default.nix @@ -0,0 +1,24 @@ +{ stdenv, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + pname = "tut"; + version = "0.0.7"; + + goPackagePath = "github.com/RasmusLindroth/tut"; + goDeps = ./deps.nix; + + src = fetchFromGitHub { + owner = "RasmusLindroth"; + repo = pname; + rev = version; + sha256 = "1v1cvdsrxz1yj2vibx3iapw17ngfihjkr62zhxsn1msb77xyd7lb"; + }; + + meta = with stdenv.lib; { + description = "A TUI for Mastodon with vim inspired keys"; + homepage = "https://github.com/RasmusLindroth/tut"; + license = licenses.mit; + maintainers = with maintainers; [ equirosa ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/applications/misc/tut/deps.nix b/pkgs/applications/misc/tut/deps.nix new file mode 100644 index 00000000000..9264153e503 --- /dev/null +++ b/pkgs/applications/misc/tut/deps.nix @@ -0,0 +1,318 @@ +# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix) +[ + { + goPackagePath = "github.com/BurntSushi/toml"; + fetch = { + type = "git"; + url = "https://github.com/BurntSushi/toml"; + rev = "v0.3.1"; + sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6"; + }; + } + { + goPackagePath = "github.com/DATA-DOG/go-sqlmock"; + fetch = { + type = "git"; + url = "https://github.com/DATA-DOG/go-sqlmock"; + rev = "v1.3.3"; + sha256 = "1xrly2vmy1mgj9dbkmivhh8gvq6v9f9xy2yp2dw54i1895zzs928"; + }; + } + { + goPackagePath = "github.com/PuerkitoBio/goquery"; + fetch = { + type = "git"; + url = "https://github.com/PuerkitoBio/goquery"; + rev = "v1.5.0"; + sha256 = "1fqf4rs66wy02nxz6w4mvs2qawf2j8srz17i294v64y8gvxisp56"; + }; + } + { + goPackagePath = "github.com/andybalholm/cascadia"; + fetch = { + type = "git"; + url = "https://github.com/andybalholm/cascadia"; + rev = "v1.0.0"; + sha256 = "09j8cavbhqqdxjqrkwbc40g8p0i49zf3184rpjm5p2rjbprcghcc"; + }; + } + { + goPackagePath = "github.com/davecgh/go-spew"; + fetch = { + type = "git"; + url = "https://github.com/davecgh/go-spew"; + rev = "v1.1.1"; + sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y"; + }; + } + { + goPackagePath = "github.com/fatih/color"; + fetch = { + type = "git"; + url = "https://github.com/fatih/color"; + rev = "v1.9.0"; + sha256 = "086z8ssmr1fn9ba4mqnw7pnccfpys6l5yfhvycv1gdrsk7n27mvs"; + }; + } + { + goPackagePath = "github.com/gdamore/encoding"; + fetch = { + type = "git"; + url = "https://github.com/gdamore/encoding"; + rev = "v1.0.0"; + sha256 = "1vmm5zll92i2fm4ajqx0gyx0p9j36496x5nabi3y0x7h0inv0pk9"; + }; + } + { + goPackagePath = "github.com/gdamore/tcell"; + fetch = { + type = "git"; + url = "https://github.com/gdamore/tcell"; + rev = "v1.3.0"; + sha256 = "1csg9qkmbg4ksj5247kgqcy7bxvqgz6b98r0rv2s4c1mkc99gx2r"; + }; + } + { + goPackagePath = "github.com/gopherjs/gopherjs"; + fetch = { + type = "git"; + url = "https://github.com/gopherjs/gopherjs"; + rev = "0766667cb4d1"; + sha256 = "13pfc9sxiwjky2lm1xb3i3lcisn8p6mgjk2d927l7r92ysph8dmw"; + }; + } + { + goPackagePath = "github.com/gorilla/websocket"; + fetch = { + type = "git"; + url = "https://github.com/gorilla/websocket"; + rev = "v1.4.1"; + sha256 = "03n1n0nwz3k9qshmriycqznnnvd3dkzsfwpnfjzzvafjxk9kyapv"; + }; + } + { + goPackagePath = "github.com/jtolds/gls"; + fetch = { + type = "git"; + url = "https://github.com/jtolds/gls"; + rev = "v4.20.0"; + sha256 = "1k7xd2q2ysv2xsh373qs801v6f359240kx0vrl0ydh7731lngvk6"; + }; + } + { + goPackagePath = "github.com/kyoh86/xdg"; + fetch = { + type = "git"; + url = "https://github.com/kyoh86/xdg"; + rev = "v1.2.0"; + sha256 = "0a5nz53fdz1c2qvwlf2dpjdd72nxri95i6q4b07c37kiipgaxncn"; + }; + } + { + goPackagePath = "github.com/lucasb-eyer/go-colorful"; + fetch = { + type = "git"; + url = "https://github.com/lucasb-eyer/go-colorful"; + rev = "v1.0.3"; + sha256 = "12bgz6dxbb2ki1g3x7fg9ipsjgfkd58fp7cdpv63h4kvlj2n7j69"; + }; + } + { + goPackagePath = "github.com/mattn/go-colorable"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-colorable"; + rev = "v0.1.4"; + sha256 = "1yxcz08kminqr1221zxpibnbzfcgs3fafin0z9zqb3gqvf74jywz"; + }; + } + { + goPackagePath = "github.com/mattn/go-isatty"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-isatty"; + rev = "v0.0.11"; + sha256 = "0h671sv7hfprja495kavazkalkx7xzaqksjh13brcnwq67ijrali"; + }; + } + { + goPackagePath = "github.com/mattn/go-mastodon"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-mastodon"; + rev = "3e91c76504df"; + sha256 = "1wh2hqrzx80gfs1y34f4h68mnz83asx88v0bsw372ch5j1shswlr"; + }; + } + { + goPackagePath = "github.com/mattn/go-runewidth"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-runewidth"; + rev = "v0.0.8"; + sha256 = "14ilkbhnhl8yj443dd1ga4biapswv4g0b4vm2mix78a8srdww39j"; + }; + } + { + goPackagePath = "github.com/mattn/go-tty"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-tty"; + rev = "v0.0.3"; + sha256 = "0d1d63q02pc5k5ga8bw4yjbkrli2769vg237psajsskjirjy53vf"; + }; + } + { + goPackagePath = "github.com/microcosm-cc/bluemonday"; + fetch = { + type = "git"; + url = "https://github.com/microcosm-cc/bluemonday"; + rev = "v1.0.2"; + sha256 = "0j0aylsxqjcj49w7ph8cmpaqjlpvg7mb5mrcrd9bg71dlb9z9ir2"; + }; + } + { + goPackagePath = "github.com/pelletier/go-toml"; + fetch = { + type = "git"; + url = "https://github.com/pelletier/go-toml"; + rev = "v1.7.0"; + sha256 = "0sqrwldjj2qxrgjz1diw1ffviya4ma7mz7nhdgydbisi2h55lqla"; + }; + } + { + goPackagePath = "github.com/rivo/tview"; + fetch = { + type = "git"; + url = "https://github.com/rivo/tview"; + rev = "ca37f83cb2e7"; + sha256 = "05nifgrxv6aib8f20mhs9m0grdfdyyg5vyhk6zgwsxjlwbzaj021"; + }; + } + { + goPackagePath = "github.com/rivo/uniseg"; + fetch = { + type = "git"; + url = "https://github.com/rivo/uniseg"; + rev = "v0.1.0"; + sha256 = "0flpc1px1l6b1lxzhdxi0mvpkkjchppvgxshxxnlmm40s76i9ww5"; + }; + } + { + goPackagePath = "github.com/smartystreets/assertions"; + fetch = { + type = "git"; + url = "https://github.com/smartystreets/assertions"; + rev = "b2de0cb4f26d"; + sha256 = "1i7ldgavgl35c7gk25p7bvdr282ckng090zr4ch9mk1705akx09y"; + }; + } + { + goPackagePath = "github.com/smartystreets/goconvey"; + fetch = { + type = "git"; + url = "https://github.com/smartystreets/goconvey"; + rev = "v1.6.4"; + sha256 = "07zjxwszayal88z1j2bwnqrsa32vg8l4nivks5yfr9j8xfsw7n6m"; + }; + } + { + goPackagePath = "github.com/tomnomnom/linkheader"; + fetch = { + type = "git"; + url = "https://github.com/tomnomnom/linkheader"; + rev = "02ca5825eb80"; + sha256 = "1ghrv28vrvvrpyr4d4q817yby8g1j04mid8ql00sds1pvfv67d32"; + }; + } + { + goPackagePath = "github.com/urfave/cli"; + fetch = { + type = "git"; + url = "https://github.com/urfave/cli"; + rev = "v1.20.0"; + sha256 = "0y6f4sbzkiiwrxbl15biivj8c7qwxnvm3zl2dd3mw4wzg4x10ygj"; + }; + } + { + goPackagePath = "golang.org/x/crypto"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/crypto"; + rev = "c2843e01d9a2"; + sha256 = "01xgxbj5r79nmisdvpq48zfy8pzaaj90bn6ngd4nf33j9ar1dp8r"; + }; + } + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/net"; + rev = "d3edc9973b7e"; + sha256 = "12zbjwcsh9b0lwycqlkrnbyg5a6a9dzgj8hhgq399bdda5bd97y7"; + }; + } + { + goPackagePath = "golang.org/x/sync"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sync"; + rev = "cd5d95a43a6e"; + sha256 = "1nqkyz2y1qvqcma52ijh02s8aiqmkfb95j08f6zcjhbga3ds6hds"; + }; + } + { + goPackagePath = "golang.org/x/sys"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sys"; + rev = "85ca7c5b95cd"; + sha256 = "1504qkgbhhm4f0bhk77v2r1lj6x171ay5m79alkg78wjb5cign5l"; + }; + } + { + goPackagePath = "golang.org/x/text"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/text"; + rev = "v0.3.2"; + sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh"; + }; + } + { + goPackagePath = "golang.org/x/tools"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/tools"; + rev = "ab21143f2384"; + sha256 = "15fk0psk53pplpyghz55bhay0kvsv5rikmn5hwgjnnyxq9vfy178"; + }; + } + { + goPackagePath = "gopkg.in/check.v1"; + fetch = { + type = "git"; + url = "https://gopkg.in/check.v1"; + rev = "20d25e280405"; + sha256 = "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np"; + }; + } + { + goPackagePath = "gopkg.in/ini.v1"; + fetch = { + type = "git"; + url = "https://gopkg.in/ini.v1"; + rev = "v1.55.0"; + sha256 = "1b7wsfal3b3pl5pv5n2qix09b3imh0zhirrphlsg5p2rb8fk0d0j"; + }; + } + { + goPackagePath = "gopkg.in/yaml.v2"; + fetch = { + type = "git"; + url = "https://gopkg.in/yaml.v2"; + rev = "v2.2.8"; + sha256 = "1inf7svydzscwv9fcjd2rm61a4xjk6jkswknybmns2n58shimapw"; + }; + } +] diff --git a/pkgs/applications/misc/tvbrowser/bin.nix b/pkgs/applications/misc/tvbrowser/bin.nix index 38865ca4f3d..68d25e4e3de 100644 --- a/pkgs/applications/misc/tvbrowser/bin.nix +++ b/pkgs/applications/misc/tvbrowser/bin.nix @@ -48,7 +48,7 @@ in stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Electronic TV Program Guide"; - homepage = https://www.tvbrowser.org/; + homepage = "https://www.tvbrowser.org/"; license = licenses.gpl3; platforms = platforms.linux; maintainers = with maintainers; [ jfrankenau ]; diff --git a/pkgs/applications/misc/twmn/default.nix b/pkgs/applications/misc/twmn/default.nix index cd58219721c..69f58b828c4 100644 --- a/pkgs/applications/misc/twmn/default.nix +++ b/pkgs/applications/misc/twmn/default.nix @@ -28,7 +28,7 @@ mkDerivation { meta = { description = "A notification system for tiling window managers"; - homepage = https://github.com/sboli/twmn; + homepage = "https://github.com/sboli/twmn"; platforms = with lib.platforms; linux; maintainers = [ lib.maintainers.matejc ]; license = lib.licenses.lgpl3; diff --git a/pkgs/applications/misc/udevil/default.nix b/pkgs/applications/misc/udevil/default.nix index 3cc4fcc1517..dbf721888df 100644 --- a/pkgs/applications/misc/udevil/default.nix +++ b/pkgs/applications/misc/udevil/default.nix @@ -2,7 +2,7 @@ stdenv.mkDerivation { name = "udevil-0.4.4"; src = fetchurl { - url = https://github.com/IgnorantGuru/udevil/archive/0.4.4.tar.gz; + url = "https://github.com/IgnorantGuru/udevil/archive/0.4.4.tar.gz"; sha256 = "0z1bhaayambrcn7bgnrqk445k50ifabmw8q4i9qj49nnbcvxhbxd"; }; nativeBuildInputs = [ pkgconfig ]; @@ -22,7 +22,7 @@ stdenv.mkDerivation { patches = [ ./device-info-sys-stat.patch ]; meta = { description = "A command line Linux program which mounts and unmounts removable devices without a password, shows device info, and monitors device changes"; - homepage = https://ignorantguru.github.io/udevil/; + homepage = "https://ignorantguru.github.io/udevil/"; platforms = stdenv.lib.platforms.linux; license = stdenv.lib.licenses.gpl3; }; diff --git a/pkgs/applications/misc/udiskie/default.nix b/pkgs/applications/misc/udiskie/default.nix index 7b2c4997497..aa2246603f3 100644 --- a/pkgs/applications/misc/udiskie/default.nix +++ b/pkgs/applications/misc/udiskie/default.nix @@ -56,7 +56,7 @@ python3Packages.buildPythonApplication rec { meta = with stdenv.lib; { description = "Removable disk automounter for udisks"; license = licenses.mit; - homepage = https://github.com/coldfix/udiskie; + homepage = "https://github.com/coldfix/udiskie"; maintainers = with maintainers; [ AndersonTorres ]; }; } diff --git a/pkgs/applications/misc/ulauncher/0001-Adjust-get_data_path-for-NixOS.patch b/pkgs/applications/misc/ulauncher/0001-Adjust-get_data_path-for-NixOS.patch new file mode 100644 index 00000000000..f14d7f71802 --- /dev/null +++ b/pkgs/applications/misc/ulauncher/0001-Adjust-get_data_path-for-NixOS.patch @@ -0,0 +1,55 @@ +From 86cc27022015697a61d1ec1b13e52f9dbe7f6c57 Mon Sep 17 00:00:00 2001 +From: worldofpeace +Date: Mon, 23 Mar 2020 18:34:00 -0400 +Subject: [PATCH] Adjust get_data_path for NixOS + +We construct the ulauncher data path from xdg_data_dirs +and prevent it from being a nix store path or being xdg_data_home. +We do this to prevent /nix/store paths being hardcoded to shortcuts.json. +On NixOS this path will either be /run/current-system/sw/share/ulauncher +or $HOME/.nix-profile/share/ulauncher if the user used nix-env. +--- + ulauncher/config.py | 27 ++++++++++++++++++--------- + 1 file changed, 18 insertions(+), 9 deletions(-) + +diff --git a/ulauncher/config.py b/ulauncher/config.py +index f21014e..cc636e1 100644 +--- a/ulauncher/config.py ++++ b/ulauncher/config.py +@@ -50,15 +50,24 @@ def get_data_path(): + is specified at installation time. + """ + +- # Get pathname absolute or relative. +- path = os.path.join( +- os.path.dirname(__file__), __ulauncher_data_directory__) +- +- abs_data_path = os.path.abspath(path) +- if not os.path.exists(abs_data_path): +- raise ProjectPathNotFoundError(abs_data_path) +- +- return abs_data_path ++ paths = list( ++ filter( ++ os.path.exists, ++ [ ++ os.path.join(dir, "ulauncher") ++ for dir in xdg_data_dirs ++ # Get path that isn't in the /nix/store so they don't get hardcoded into configs ++ if not dir.startswith("/nix/store/") ++ # Exclude .local/share/ulauncher which isn't what we want ++ if not dir.startswith(xdg_data_home) ++ ], ++ ) ++ ) ++ ++ try: ++ return paths[0] ++ except: ++ raise ProjectPathNotFoundError() + + + def is_wayland(): +-- +2.25.1 + diff --git a/pkgs/applications/misc/ulauncher/default.nix b/pkgs/applications/misc/ulauncher/default.nix index 9fa284aba43..34ca82b8d04 100644 --- a/pkgs/applications/misc/ulauncher/default.nix +++ b/pkgs/applications/misc/ulauncher/default.nix @@ -1,8 +1,11 @@ { stdenv , fetchurl -, python27Packages +, python3Packages +, gdk-pixbuf +, glib , gnome3 , gobject-introspection +, gtk3 , wrapGAppsHook , webkitgtk , libnotify @@ -11,49 +14,54 @@ , intltool , wmctrl , xvfb_run +, librsvg }: -python27Packages.buildPythonApplication rec { +python3Packages.buildPythonApplication rec { pname = "ulauncher"; - version = "4.4.0.r1"; + version = "5.7.3"; - # Python 3 support is currently in development - # on the dev branch and 5.x.x releases - disabled = ! python27Packages.isPy27; + disabled = python3Packages.isPy27; src = fetchurl { url = "https://github.com/Ulauncher/Ulauncher/releases/download/${version}/ulauncher_${version}.tar.gz"; - sha256 = "12v7qpjhf0842ivsfflsl2zlvhiaw25f9ffv7vhnkvrhrmksim9f"; + sha256 = "0wq2zsq3496fjfg89q01dsm7sb7kv92sycvqm6ad8z1z2kpisrbh"; }; - nativeBuildInputs = with python27Packages; [ + nativeBuildInputs = with python3Packages; [ distutils_extra intltool wrapGAppsHook ]; buildInputs = [ + gdk-pixbuf + glib gnome3.adwaita-icon-theme gobject-introspection + gtk3 keybinder3 libappindicator libnotify + librsvg webkitgtk wmctrl ]; - propagatedBuildInputs = with python27Packages; [ + propagatedBuildInputs = with python3Packages; [ + mock + mypy + mypy-extensions dbus-python - notify pygobject3 pyinotify - pysqlite python-Levenshtein pyxdg + requests websocket_client ]; - checkInputs = with python27Packages; [ + checkInputs = with python3Packages; [ mock pytest pytest-mock @@ -63,6 +71,8 @@ python27Packages.buildPythonApplication rec { patches = [ ./fix-path.patch + ./0001-Adjust-get_data_path-for-NixOS.patch + ./fix-extensions.patch ]; postPatch = '' @@ -73,7 +83,7 @@ python27Packages.buildPythonApplication rec { doCheck = false; preCheck = '' - export PYTHONPATH=$PYTHONPATH:$out/${python27Packages.python.sitePackages} + export PYTHONPATH=$PYTHONPATH:$out/${python3Packages.python.sitePackages} ''; # Simple translation of @@ -95,7 +105,7 @@ python27Packages.buildPythonApplication rec { meta = with stdenv.lib; { description = "A fast application launcher for Linux, written in Python, using GTK"; - homepage = https://ulauncher.io/; + homepage = "https://ulauncher.io/"; license = licenses.gpl3; platforms = platforms.linux; maintainers = with maintainers; [ aaronjanse worldofpeace ]; diff --git a/pkgs/applications/misc/ulauncher/fix-extensions.patch b/pkgs/applications/misc/ulauncher/fix-extensions.patch new file mode 100644 index 00000000000..f6d00f9fafd --- /dev/null +++ b/pkgs/applications/misc/ulauncher/fix-extensions.patch @@ -0,0 +1,13 @@ +diff --git a/ulauncher/api/server/ExtensionRunner.py b/ulauncher/api/server/ExtensionRunner.py +index 22042bf..f7b31c8 100644 +--- a/ulauncher/api/server/ExtensionRunner.py ++++ b/ulauncher/api/server/ExtensionRunner.py +@@ -79,7 +79,7 @@ class ExtensionRunner: + cmd = [sys.executable, os.path.join(self.extensions_dir, extension_id, 'main.py')] + env = os.environ.copy() + env['ULAUNCHER_WS_API'] = self.extension_server.generate_ws_url(extension_id) +- env['PYTHONPATH'] = ':'.join(filter(bool, [ULAUNCHER_APP_DIR, os.getenv('PYTHONPATH')])) ++ env['PYTHONPATH'] = ':'.join([ULAUNCHER_APP_DIR] + sys.path) + + if self.verbose: + env['VERBOSE'] = '1' diff --git a/pkgs/applications/misc/upwork/default.nix b/pkgs/applications/misc/upwork/default.nix new file mode 100644 index 00000000000..3757c8ce3bb --- /dev/null +++ b/pkgs/applications/misc/upwork/default.nix @@ -0,0 +1,55 @@ +{ stdenv, fetchurl, dpkg, wrapGAppsHook, autoPatchelfHook, writeShellScript +, alsaLib, atk, at-spi2-atk, at-spi2-core, cairo, cups, dbus, expat, fontconfig, freetype +, gdk-pixbuf, glib, gtk3, libnotify, libX11, libXcomposite, libXcursor, libXdamage, libuuid +, libXext, libXfixes, libXi, libXrandr, libXrender, libXtst, nspr, nss, libxcb +, pango, systemd, libXScrnSaver, libcxx, libpulseaudio }: + +stdenv.mkDerivation rec { + pname = "upwork"; + version = "5.3.3-883"; + + src = fetchurl { + url = "https://updates-desktopapp.upwork.com/binaries/v5_3_3_883_1f817bc1fefd44e7/upwork_5.3.3.883_amd64.deb"; + sha256 = "072zns79w4h46bvbj23rvr8i12sf2l378ry0z3hchwcimkrph9wx"; + }; + + dontWrapGApps = true; + + nativeBuildInputs = [ + dpkg + wrapGAppsHook + autoPatchelfHook + ]; + + buildInputs = [ + libcxx systemd libpulseaudio + stdenv.cc.cc alsaLib 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 + ]; + + libPath = stdenv.lib.makeLibraryPath buildInputs; + + unpackPhase = '' + dpkg-deb -x ${src} ./ + ''; + + installPhase = '' + mv usr $out + mv opt $out + sed -e "s|/opt/Upwork|$out/bin|g" -i $out/share/applications/upwork.desktop + + makeWrapper $out/opt/Upwork/upwork \ + $out/bin/upwork \ + --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \ + --prefix LD_LIBRARY_PATH : ${libPath} + ''; + + meta = with stdenv.lib; { + description = "Online freelancing platform desktop application for time tracking"; + homepage = "https://www.upwork.com/ab/downloads/"; + license = licenses.unfree; + maintainers = with maintainers; [ zakkor ]; + }; +} \ No newline at end of file diff --git a/pkgs/applications/misc/urlscan/default.nix b/pkgs/applications/misc/urlscan/default.nix index 791075e4dd9..ef4684689b8 100644 --- a/pkgs/applications/misc/urlscan/default.nix +++ b/pkgs/applications/misc/urlscan/default.nix @@ -17,7 +17,7 @@ python3Packages.buildPythonApplication rec { meta = with stdenv.lib; { description = "Mutt and terminal url selector (similar to urlview)"; - homepage = https://github.com/firecat53/urlscan; + homepage = "https://github.com/firecat53/urlscan"; license = licenses.gpl2; maintainers = with maintainers; [ dpaetzel jfrankenau ]; }; diff --git a/pkgs/applications/misc/urlview/default.nix b/pkgs/applications/misc/urlview/default.nix index ad29c8f94d8..6430a1bc719 100644 --- a/pkgs/applications/misc/urlview/default.nix +++ b/pkgs/applications/misc/urlview/default.nix @@ -43,7 +43,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Extract URLs from text"; - homepage = https://packages.qa.debian.org/u/urlview.html; + homepage = "https://packages.qa.debian.org/u/urlview.html"; license = licenses.gpl2; platforms = with platforms; linux ++ darwin; maintainers = with maintainers; [ ma27 ]; diff --git a/pkgs/applications/misc/usync/default.nix b/pkgs/applications/misc/usync/default.nix index 344c07d845b..9234d8ad202 100644 --- a/pkgs/applications/misc/usync/default.nix +++ b/pkgs/applications/misc/usync/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = https://github.com/ebzzry/usync; + homepage = "https://github.com/ebzzry/usync"; description = "A simple site-to-site synchronization tool"; license = licenses.mit; maintainers = [ maintainers.ebzzry ]; diff --git a/pkgs/applications/misc/valentina/default.nix b/pkgs/applications/misc/valentina/default.nix index 5a12465c4c4..e9e8cfed796 100644 --- a/pkgs/applications/misc/valentina/default.nix +++ b/pkgs/applications/misc/valentina/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchhg +{ mkDerivation, stdenv, fetchhg , qmake, qttools , qtbase, qtsvg, qtxmlpatterns , poppler_utils @@ -6,7 +6,7 @@ with stdenv.lib; -stdenv.mkDerivation rec { +mkDerivation rec { pname = "valentina"; version = "0.6.1"; @@ -58,7 +58,7 @@ stdenv.mkDerivation rec { meta = { description = "An open source sewing pattern drafting software"; - homepage = https://valentinaproject.bitbucket.io/; + homepage = "https://valentinaproject.bitbucket.io/"; license = licenses.gpl3; platforms = platforms.linux; maintainers = with maintainers; [ jfrankenau ]; diff --git a/pkgs/applications/misc/variety/default.nix b/pkgs/applications/misc/variety/default.nix index 6d8da4a1007..4241f915329 100644 --- a/pkgs/applications/misc/variety/default.nix +++ b/pkgs/applications/misc/variety/default.nix @@ -66,7 +66,7 @@ buildPythonApplication rec { meta = with lib; { description = "A wallpaper manager for Linux systems. It supports numerous desktops and wallpaper sources, including local files and online services: Flickr, Wallhaven, Unsplash, and more"; - homepage = https://github.com/varietywalls/variety; + homepage = "https://github.com/varietywalls/variety"; license = licenses.gpl3; maintainers = [ maintainers.zfnmxt ]; }; diff --git a/pkgs/applications/misc/vcal/default.nix b/pkgs/applications/misc/vcal/default.nix index b25e7f76cef..9519e033473 100644 --- a/pkgs/applications/misc/vcal/default.nix +++ b/pkgs/applications/misc/vcal/default.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Parser for VCalendar and ICalendar files, usable from the command line"; - homepage = https://waynemorrison.com/software/; + homepage = "https://waynemorrison.com/software/"; license = licenses.asl20; maintainers = with maintainers; [ peterhoeg ]; }; diff --git a/pkgs/applications/misc/veracrypt/default.nix b/pkgs/applications/misc/veracrypt/default.nix index fe1de349cff..07e0a046ac5 100644 --- a/pkgs/applications/misc/veracrypt/default.nix +++ b/pkgs/applications/misc/veracrypt/default.nix @@ -46,7 +46,7 @@ stdenv.mkDerivation rec { meta = { description = "Free Open-Source filesystem on-the-fly encryption"; - homepage = https://www.veracrypt.fr/; + homepage = "https://www.veracrypt.fr/"; license = [ licenses.asl20 /* or */ "TrueCrypt License version 3.0" ]; maintainers = with maintainers; [ dsferruzza ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/verbiste/default.nix b/pkgs/applications/misc/verbiste/default.nix index 680573fd304..a322756c157 100644 --- a/pkgs/applications/misc/verbiste/default.nix +++ b/pkgs/applications/misc/verbiste/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; meta = with stdenv.lib; { - homepage = http://sarrazip.com/dev/verbiste.html; + homepage = "http://sarrazip.com/dev/verbiste.html"; description = "French and Italian verb conjugator"; license = licenses.gpl2Plus; platforms = platforms.linux; diff --git a/pkgs/applications/misc/vifm/default.nix b/pkgs/applications/misc/vifm/default.nix index f71e7a7a960..d939beb443e 100644 --- a/pkgs/applications/misc/vifm/default.nix +++ b/pkgs/applications/misc/vifm/default.nix @@ -37,7 +37,7 @@ in stdenv.mkDerivation rec { platforms = if mediaSupport then platforms.linux else platforms.unix; license = licenses.gpl2; downloadPage = "https://vifm.info/downloads.shtml"; - homepage = https://vifm.info/; + homepage = "https://vifm.info/"; inherit version; updateWalker = true; }; diff --git a/pkgs/applications/misc/viking/default.nix b/pkgs/applications/misc/viking/default.nix index 9ce37ea8a46..03d3256e375 100644 --- a/pkgs/applications/misc/viking/default.nix +++ b/pkgs/applications/misc/viking/default.nix @@ -66,7 +66,7 @@ stdenv.mkDerivation rec { on the map, make new tracks and waypoints, see real-time GPS position, etc. ''; - homepage = https://sourceforge.net/projects/viking/; + homepage = "https://sourceforge.net/projects/viking/"; license = licenses.gpl2Plus; maintainers = with maintainers; [ pSub sikmir ]; platforms = with platforms; linux; diff --git a/pkgs/applications/misc/visidata/default.nix b/pkgs/applications/misc/visidata/default.nix index 64645e00bd8..cc88cb1751e 100644 --- a/pkgs/applications/misc/visidata/default.nix +++ b/pkgs/applications/misc/visidata/default.nix @@ -1,5 +1,16 @@ -{ buildPythonApplication, lib, fetchFromGitHub -, dateutil, pyyaml, openpyxl, xlrd, h5py, fonttools, lxml, pandas, pyshp +{ buildPythonApplication +, lib +, fetchFromGitHub +, dateutil +, pyyaml +, openpyxl +, xlrd +, h5py +, fonttools +, lxml +, pandas +, pyshp +, setuptools }: buildPythonApplication rec { pname = "visidata"; @@ -12,16 +23,26 @@ buildPythonApplication rec { sha256 = "19gs8i6chrrwibz706gib5sixx1cjgfzh7v011kp3izcrn524mc0"; }; - propagatedBuildInputs = [dateutil pyyaml openpyxl xlrd h5py fonttools - lxml pandas pyshp ]; + propagatedBuildInputs = [ + dateutil + pyyaml + openpyxl + xlrd + h5py + fonttools + lxml + pandas + pyshp + setuptools + ]; doCheck = false; meta = { inherit version; description = "Interactive terminal multitool for tabular data"; - license = lib.licenses.gpl3 ; - maintainers = [lib.maintainers.raskin]; + license = lib.licenses.gpl3; + maintainers = [ lib.maintainers.raskin ]; platforms = lib.platforms.linux; homepage = "http://visidata.org/"; }; diff --git a/pkgs/applications/misc/vit/default.nix b/pkgs/applications/misc/vit/default.nix index 506ab559919..3ae4aacb872 100644 --- a/pkgs/applications/misc/vit/default.nix +++ b/pkgs/applications/misc/vit/default.nix @@ -32,7 +32,7 @@ buildPythonApplication rec { ''; meta = with lib; { - homepage = https://github.com/scottkosty/vit; + homepage = "https://github.com/scottkosty/vit"; description = "Visual Interactive Taskwarrior"; maintainers = with maintainers; [ dtzWill arcnmx ]; platforms = platforms.all; diff --git a/pkgs/applications/misc/volnoti/default.nix b/pkgs/applications/misc/volnoti/default.nix index 3561135ce61..845bdae6bec 100644 --- a/pkgs/applications/misc/volnoti/default.nix +++ b/pkgs/applications/misc/volnoti/default.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Lightweight volume notification for Linux"; - homepage = https://github.com/davidbrazdil/volnoti; + homepage = "https://github.com/davidbrazdil/volnoti"; license = licenses.gpl3; platforms = platforms.linux; maintainers = [ maintainers.gilligan ]; diff --git a/pkgs/applications/misc/vp/default.nix b/pkgs/applications/misc/vp/default.nix index a59a25a144e..7284fa65e8b 100644 --- a/pkgs/applications/misc/vp/default.nix +++ b/pkgs/applications/misc/vp/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { NIX_CFLAGS_COMPILE="-I${SDL}/include/SDL -I${SDL_image}/include/SDL"; meta = with stdenv.lib; { - homepage = http://brlcad.org/~erik/; + homepage = "http://brlcad.org/~erik/"; description = "SDL based picture viewer/slideshow"; platforms = platforms.unix; license = licenses.gpl3; diff --git a/pkgs/applications/misc/vym/default.nix b/pkgs/applications/misc/vym/default.nix index 3c6c4a87f98..ce45471c2f0 100644 --- a/pkgs/applications/misc/vym/default.nix +++ b/pkgs/applications/misc/vym/default.nix @@ -53,7 +53,7 @@ mkDerivation rec { While a tree like structure like shown on this page can be drawn by hand or any drawing software vym offers much more features to work with such maps. ''; - homepage = http://www.insilmaril.de/vym/; + homepage = "http://www.insilmaril.de/vym/"; license = licenses.gpl2; maintainers = [ maintainers.AndersonTorres ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/waybar/default.nix b/pkgs/applications/misc/waybar/default.nix index 69d6ff84268..408ef0a3233 100644 --- a/pkgs/applications/misc/waybar/default.nix +++ b/pkgs/applications/misc/waybar/default.nix @@ -10,13 +10,13 @@ }: stdenv.mkDerivation rec { pname = "waybar"; - version = "0.9.1"; + version = "0.9.2"; src = fetchFromGitHub { owner = "Alexays"; repo = "Waybar"; rev = version; - sha256 = "0drlv8im5phz39jxp3gxkc40b6f85bb3piff2v3hmnfzh7ib915s"; + sha256 = "1gfxyjzwfqznyrpyr3322z3w844i1lh77kly4hcpy9y5gsfmlafy"; }; nativeBuildInputs = [ diff --git a/pkgs/applications/misc/wcalc/default.nix b/pkgs/applications/misc/wcalc/default.nix index ff770f516bc..94c56ba5439 100644 --- a/pkgs/applications/misc/wcalc/default.nix +++ b/pkgs/applications/misc/wcalc/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A command line calculator"; - homepage = http://w-calc.sourceforge.net; + homepage = "http://w-calc.sourceforge.net"; license = licenses.gpl2; platforms = platforms.all; }; diff --git a/pkgs/applications/misc/weather/default.nix b/pkgs/applications/misc/weather/default.nix index 2748d576c69..ce4fae1cb22 100644 --- a/pkgs/applications/misc/weather/default.nix +++ b/pkgs/applications/misc/weather/default.nix @@ -32,7 +32,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = http://fungi.yuggoth.org/weather; + homepage = "http://fungi.yuggoth.org/weather"; description = "Quick access to current weather conditions and forecasts"; license = stdenv.lib.licenses.isc; maintainers = [ stdenv.lib.maintainers.matthiasbeyer ]; diff --git a/pkgs/applications/misc/wikicurses/default.nix b/pkgs/applications/misc/wikicurses/default.nix index 9b1e9f091e2..e528dab0c9f 100644 --- a/pkgs/applications/misc/wikicurses/default.nix +++ b/pkgs/applications/misc/wikicurses/default.nix @@ -25,7 +25,7 @@ pythonPackages.buildPythonApplication rec { meta = { description = "A simple curses interface for MediaWiki sites such as Wikipedia"; - homepage = https://github.com/ids1024/wikicurses/; + homepage = "https://github.com/ids1024/wikicurses/"; license = stdenv.lib.licenses.mit; platforms = stdenv.lib.platforms.unix; maintainers = with stdenv.lib.maintainers; [ pSub ]; diff --git a/pkgs/applications/misc/with-shell/default.nix b/pkgs/applications/misc/with-shell/default.nix index 6a5f7c17b20..d3b5541ac4d 100644 --- a/pkgs/applications/misc/with-shell/default.nix +++ b/pkgs/applications/misc/with-shell/default.nix @@ -12,7 +12,7 @@ stdenv.mkDerivation { cp with $out/bin/with ''; meta = { - homepage = https://github.com/mchav/With; + homepage = "https://github.com/mchav/With"; description = "Command prefixing for continuous workflow using a single tool"; license = stdenv.lib.licenses.asl20; platforms = stdenv.lib.platforms.unix; diff --git a/pkgs/applications/misc/wmname/default.nix b/pkgs/applications/misc/wmname/default.nix index 68f6c4df159..8e760b787b4 100644 --- a/pkgs/applications/misc/wmname/default.nix +++ b/pkgs/applications/misc/wmname/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { meta = { description = "Prints or set the window manager name property of the root window"; - homepage = https://tools.suckless.org/wmname; + homepage = "https://tools.suckless.org/wmname"; license = stdenv.lib.licenses.mit; platforms = stdenv.lib.platforms.unix; }; diff --git a/pkgs/applications/misc/wofi/default.nix b/pkgs/applications/misc/wofi/default.nix index 659b7099943..37b991e6d47 100644 --- a/pkgs/applications/misc/wofi/default.nix +++ b/pkgs/applications/misc/wofi/default.nix @@ -1,23 +1,33 @@ -{ stdenv, lib, fetchhg, pkg-config, meson, ninja, wayland, gtk3 }: +{ stdenv, lib, fetchhg, fetchpatch, pkg-config, meson, ninja, wayland, gtk3, wrapGAppsHook }: stdenv.mkDerivation rec { pname = "wofi"; - version = "1.1"; + version = "1.1.2"; src = fetchhg { url = "https://hg.sr.ht/~scoopta/wofi"; rev = "v${version}"; - sha256 = "0rq6c8fv0h7xj3jw1i01r39dz0f31k7jgf7hpgl6mlsyn0ddc80z"; + sha256 = "086j5wshawjbwdmmmldivfagc2rr7g5a2gk11l0snqqslm294xsn"; }; - nativeBuildInputs = [ pkg-config meson ninja ]; + nativeBuildInputs = [ pkg-config meson ninja wrapGAppsHook ]; buildInputs = [ wayland gtk3 ]; + # Fixes icon bug on NixOS. + # Will need to be removed on next release + # see https://todo.sr.ht/~scoopta/wofi/54 + patches = [ + (fetchpatch { + url = "https://paste.sr.ht/blob/1cbddafac3806afb203940c029e78ce8390d8f49"; + sha256 = "1n4jpmh66p7asjhj0z2s94ny91lmaq4hhh2356nj406vlqr15vbb"; + }) + ]; + meta = with lib; { description = "A launcher/menu program for wlroots based wayland compositors such as sway"; homepage = "https://hg.sr.ht/~scoopta/wofi"; license = licenses.gpl3; - maintainers = with maintainers; [ erictapen ]; + maintainers = with maintainers; [ elyhaka ]; platforms = with platforms; linux; }; } diff --git a/pkgs/applications/misc/wordnet/default.nix b/pkgs/applications/misc/wordnet/default.nix index 5a1093b4779..1f0414838ad 100644 --- a/pkgs/applications/misc/wordnet/default.nix +++ b/pkgs/applications/misc/wordnet/default.nix @@ -41,10 +41,10 @@ stdenv.mkDerivation rec { for computational linguistics and natural language processing. ''; - homepage = https://wordnet.princeton.edu/; + homepage = "https://wordnet.princeton.edu/"; license = { fullName = "WordNet 3.0 license"; - url = https://wordnet.princeton.edu/license-and-commercial-use; + url = "https://wordnet.princeton.edu/license-and-commercial-use"; }; maintainers = [ ]; platforms = with stdenv.lib.platforms; linux ++ darwin; diff --git a/pkgs/applications/misc/worker/default.nix b/pkgs/applications/misc/worker/default.nix index d8d9598e54a..8b9ed830064 100644 --- a/pkgs/applications/misc/worker/default.nix +++ b/pkgs/applications/misc/worker/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A two-pane file manager with advanced file manipulation features"; - homepage = http://www.boomerangsworld.de/cms/worker/index.html; + homepage = "http://www.boomerangsworld.de/cms/worker/index.html"; license = licenses.gpl2; maintainers = []; }; diff --git a/pkgs/applications/misc/workrave/default.nix b/pkgs/applications/misc/workrave/default.nix index 4fc06b5c1ad..b0020b64ede 100644 --- a/pkgs/applications/misc/workrave/default.nix +++ b/pkgs/applications/misc/workrave/default.nix @@ -37,8 +37,8 @@ stdenv.mkDerivation rec { Repetitive Strain Injury (RSI). The program frequently alerts you to take micro-pauses, rest breaks and restricts you to your daily limit. ''; - homepage = http://www.workrave.org/; - downloadPage = https://github.com/rcaelers/workrave/releases; + homepage = "http://www.workrave.org/"; + downloadPage = "https://github.com/rcaelers/workrave/releases"; license = licenses.gpl3; maintainers = with maintainers; [ prikhi ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/wtf/default.nix b/pkgs/applications/misc/wtf/default.nix index f12f96871c0..e557c5081c8 100644 --- a/pkgs/applications/misc/wtf/default.nix +++ b/pkgs/applications/misc/wtf/default.nix @@ -7,16 +7,16 @@ buildGoModule rec { pname = "wtf"; - version = "0.27.0"; + version = "0.29.0"; src = fetchFromGitHub { owner = "wtfutil"; repo = pname; rev = "v${version}"; - sha256 = "0j184s82bnnhrpm7vdsqg7i3xfm2wqz8jmwqxjkfw87ifgvaha5d"; + sha256 = "0v6yafpz3sycq6yb7w4dyxqclszvdgwbyhqs5ii8ckynqcf6ifn7"; }; - modSha256 = "14qbjv8rnidfqxzqhli7jyj4573s0swwypdj11mpykcrzk9by8xk"; + modSha256 = "0csxc5q7i2iq8z71ysfan2kwf4mghi89i5zja5g1a4cvmcabiq1g"; buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ]; diff --git a/pkgs/applications/misc/xastir/default.nix b/pkgs/applications/misc/xastir/default.nix index 4086c0e094a..719d26c7199 100644 --- a/pkgs/applications/misc/xastir/default.nix +++ b/pkgs/applications/misc/xastir/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Graphical APRS client"; - homepage = https://xastir.org; + homepage = "https://xastir.org"; license = licenses.gpl2; maintainers = [ maintainers.ehmry ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/xautoclick/default.nix b/pkgs/applications/misc/xautoclick/default.nix index 295d721d3c5..4f441d8a9a9 100644 --- a/pkgs/applications/misc/xautoclick/default.nix +++ b/pkgs/applications/misc/xautoclick/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Autoclicker application, which enables you to automatically click the left mousebutton"; - homepage = http://xautoclick.sourceforge.net; + homepage = "http://xautoclick.sourceforge.net"; license = licenses.gpl2; platforms = platforms.linux; }; diff --git a/pkgs/applications/misc/xca/default.nix b/pkgs/applications/misc/xca/default.nix index 8946e83c94a..bf6b37b1028 100644 --- a/pkgs/applications/misc/xca/default.nix +++ b/pkgs/applications/misc/xca/default.nix @@ -25,7 +25,7 @@ mkDerivation rec { meta = with lib; { description = "An x509 certificate generation tool, handling RSA, DSA and EC keys, certificate signing requests (PKCS#10) and CRLs"; - homepage = https://hohnstaedt.de/xca/; + homepage = "https://hohnstaedt.de/xca/"; license = licenses.bsd3; maintainers = with maintainers; [ offline peterhoeg ]; platforms = platforms.all; diff --git a/pkgs/applications/misc/xcruiser/default.nix b/pkgs/applications/misc/xcruiser/default.nix index 8875c95fe57..80a1ced563f 100644 --- a/pkgs/applications/misc/xcruiser/default.nix +++ b/pkgs/applications/misc/xcruiser/default.nix @@ -4,7 +4,7 @@ stdenv.mkDerivation { name = "xcruiser-0.30"; src = fetchurl { - url = mirror://sourceforge/xcruiser/xcruiser/xcruiser-0.30/xcruiser-0.30.tar.gz; + url = "mirror://sourceforge/xcruiser/xcruiser/xcruiser-0.30/xcruiser-0.30.tar.gz"; sha256 = "1r8whva38xizqdh7jmn6wcmfmsndc67pkw22wzfzr6rq0vf6hywi"; }; @@ -23,7 +23,7 @@ stdenv.mkDerivation { It constructs a virtually 3-D formed universe from a directory tree and allows you to "cruise" within a visualized filesystem. ''; - homepage = http://xcruiser.sourceforge.net/; + homepage = "http://xcruiser.sourceforge.net/"; license = licenses.gpl2; maintainers = with maintainers; [ ehmry ]; platforms = with platforms; linux; diff --git a/pkgs/applications/misc/xdgmenumaker/default.nix b/pkgs/applications/misc/xdgmenumaker/default.nix index 56168b34859..b4d821e1deb 100644 --- a/pkgs/applications/misc/xdgmenumaker/default.nix +++ b/pkgs/applications/misc/xdgmenumaker/default.nix @@ -40,7 +40,7 @@ python3Packages.buildPythonApplication rec { meta = with stdenv.lib; { description = "Command line tool that generates XDG menus for several window managers"; - homepage = https://github.com/gapan/xdgmenumaker; + homepage = "https://github.com/gapan/xdgmenumaker"; license = licenses.gpl2Plus; # NOTE: exclude darwin from platforms because Travis reports hash mismatch platforms = with platforms; filter (x: !(elem x darwin)) unix; diff --git a/pkgs/applications/misc/xfe/default.nix b/pkgs/applications/misc/xfe/default.nix index 444ab802673..29a20e0ece2 100644 --- a/pkgs/applications/misc/xfe/default.nix +++ b/pkgs/applications/misc/xfe/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { It is based on the popular, but discontinued, X Win Commander, which was developed by Maxim Baranov. Xfe aims to be the filemanager of choice for all the Unix addicts! ''; - homepage = https://sourceforge.net/projects/xfe/; + homepage = "https://sourceforge.net/projects/xfe/"; license = stdenv.lib.licenses.gpl2; maintainers = []; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/misc/xfontsel/default.nix b/pkgs/applications/misc/xfontsel/default.nix index 5d2b70a80ee..c61e64a8a3a 100644 --- a/pkgs/applications/misc/xfontsel/default.nix +++ b/pkgs/applications/misc/xfontsel/default.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = https://www.x.org/; + homepage = "https://www.x.org/"; description = "Allows testing the fonts available in an X server"; license = stdenv.lib.licenses.free; maintainers = with stdenv.lib.maintainers; [viric]; diff --git a/pkgs/applications/misc/xiphos/default.nix b/pkgs/applications/misc/xiphos/default.nix index 2e81e9b05d3..027ff8f264c 100644 --- a/pkgs/applications/misc/xiphos/default.nix +++ b/pkgs/applications/misc/xiphos/default.nix @@ -47,7 +47,7 @@ stdenv.mkDerivation rec { and featureful environment for reading, study, and research using modules from The SWORD Project and elsewhere. ''; - homepage = http://www.xiphos.org/; + homepage = "http://www.xiphos.org/"; license = licenses.gpl2Plus; maintainers = [ maintainers.AndersonTorres ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/xkbd/default.nix b/pkgs/applications/misc/xkbd/default.nix index d6709ecc1a6..d03d78a9fd1 100644 --- a/pkgs/applications/misc/xkbd/default.nix +++ b/pkgs/applications/misc/xkbd/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ autoreconfHook ]; meta = with stdenv.lib; { - homepage = https://github.com/mahatma-kaganovich/xkbd; + homepage = "https://github.com/mahatma-kaganovich/xkbd"; description = "onscreen soft keyboard for X11"; license = licenses.gpl2Plus; maintainers = [ maintainers.genesis ]; diff --git a/pkgs/applications/misc/xkblayout-state/default.nix b/pkgs/applications/misc/xkblayout-state/default.nix index abc808477a3..296d6f38db6 100644 --- a/pkgs/applications/misc/xkblayout-state/default.nix +++ b/pkgs/applications/misc/xkblayout-state/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A small command-line program to get/set the current XKB keyboard layout"; - homepage = https://github.com/nonpop/xkblayout-state; + homepage = "https://github.com/nonpop/xkblayout-state"; license = licenses.gpl2; maintainers = [ maintainers.jagajaga ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/xkbmon/default.nix b/pkgs/applications/misc/xkbmon/default.nix index dc618e4561e..1e6384c7d57 100644 --- a/pkgs/applications/misc/xkbmon/default.nix +++ b/pkgs/applications/misc/xkbmon/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { installPhase = "install -D -t $out/bin xkbmon"; meta = with stdenv.lib; { - homepage = https://github.com/xkbmon/xkbmon; + homepage = "https://github.com/xkbmon/xkbmon"; description = "Command-line keyboard layout monitor for X11"; license = licenses.mit; platforms = platforms.linux; diff --git a/pkgs/applications/misc/xmind/default.nix b/pkgs/applications/misc/xmind/default.nix index f65f5bc26e8..3e729af71fe 100644 --- a/pkgs/applications/misc/xmind/default.nix +++ b/pkgs/applications/misc/xmind/default.nix @@ -84,7 +84,7 @@ stdenv.mkDerivation rec { GTD. Meanwhile, XMind can read FreeMind and MindManager files, and save to Evernote. ''; - homepage = https://www.xmind.net/; + homepage = "https://www.xmind.net/"; license = licenses.unfree; platforms = platforms.linux; maintainers = with maintainers; [ michalrus ma27 ]; diff --git a/pkgs/applications/misc/xmrig/default.nix b/pkgs/applications/misc/xmrig/default.nix index 252d9dd87c6..a205b402bc8 100644 --- a/pkgs/applications/misc/xmrig/default.nix +++ b/pkgs/applications/misc/xmrig/default.nix @@ -4,13 +4,13 @@ stdenv.mkDerivation rec { pname = "xmrig"; - version = "5.7.0"; + version = "5.10.0"; src = fetchFromGitHub { owner = "xmrig"; repo = "xmrig"; rev = "v${version}"; - sha256 = "14mqfjwff7mj3xckz4wkxlmqm6a0ci1bz0zj1h045ac8hfvw5k4k"; + sha256 = "06nxhrb5vnlq3sxybiyzdpbv6ah1zam7r07s1c31sv37znlb77d5"; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/applications/misc/xneur/default.nix b/pkgs/applications/misc/xneur/default.nix index f3bbbf42d5b..e75055e92b8 100644 --- a/pkgs/applications/misc/xneur/default.nix +++ b/pkgs/applications/misc/xneur/default.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Utility for switching between keyboard layouts"; - homepage = https://xneur.ru; + homepage = "https://xneur.ru"; license = licenses.gpl2Plus; maintainers = [ maintainers.raskin ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/xpad/default.nix b/pkgs/applications/misc/xpad/default.nix index 40f7ef9da08..8944011a8d7 100644 --- a/pkgs/applications/misc/xpad/default.nix +++ b/pkgs/applications/misc/xpad/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A sticky note application for jotting down things to remember"; - homepage = https://launchpad.net/xpad; + homepage = "https://launchpad.net/xpad"; license = licenses.gpl3; platforms = platforms.linux; maintainers = with maintainers; [ michalrus ]; diff --git a/pkgs/applications/misc/xpdf/libxpdf.nix b/pkgs/applications/misc/xpdf/libxpdf.nix index cf6f5f32ee2..3b982b1766f 100644 --- a/pkgs/applications/misc/xpdf/libxpdf.nix +++ b/pkgs/applications/misc/xpdf/libxpdf.nix @@ -5,25 +5,25 @@ stdenv.mkDerivation { name = "libxpdf-3.02pl4"; src = fetchurl { - url = ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.02.tar.gz; + url = "ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.02.tar.gz"; sha256 = "000zq4ddbwyxiki4vdwpmxbnw5n9hsg9hvwra2p33hslyib7sfmk"; }; patches = [ (fetchurl { - url = ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.02pl1.patch; + url = "ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.02pl1.patch"; sha256 = "1wxv9l0d2kkwi961ihpdwi75whdvk7cgqxkbfym8cjj11fq17xjq"; }) (fetchurl { - url = ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.02pl2.patch; + url = "ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.02pl2.patch"; sha256 = "1nfrgsh9xj0vryd8h65myzd94bjz117y89gq0hzji9dqn23xihfi"; }) (fetchurl { - url = ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.02pl3.patch; + url = "ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.02pl3.patch"; sha256 = "0jskkv8x6dqr9zj4azaglas8cziwqqrkbbnzrpm2kzrvsbxyhk2r"; }) (fetchurl { - url = ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.02pl4.patch; + url = "ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.02pl4.patch"; sha256 = "1c48h7aizx0ngmzlzw0mpja1w8vqyy3pg62hyxp7c60k86al715h"; }) ./xpdf-3.02-protection.patch diff --git a/pkgs/applications/misc/xrandr-invert-colors/default.nix b/pkgs/applications/misc/xrandr-invert-colors/default.nix index 41071012ae9..9d57b4fcfac 100644 --- a/pkgs/applications/misc/xrandr-invert-colors/default.nix +++ b/pkgs/applications/misc/xrandr-invert-colors/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Inverts the colors of your screen"; license = stdenv.lib.licenses.gpl3Plus; - homepage = https://github.com/zoltanp/xrandr-invert-colors; + homepage = "https://github.com/zoltanp/xrandr-invert-colors"; maintainers = [stdenv.lib.maintainers.magnetophon ]; platforms = platforms.linux; }; diff --git a/pkgs/applications/misc/xrq/default.nix b/pkgs/applications/misc/xrq/default.nix index 244a2c43a15..e3db746ee02 100644 --- a/pkgs/applications/misc/xrq/default.nix +++ b/pkgs/applications/misc/xrq/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation { meta = { description = "X utility for querying xrdb"; - homepage = https://github.com/arianon/xrq; + homepage = "https://github.com/arianon/xrq"; license = stdenv.lib.licenses.mit; platforms = with stdenv.lib.platforms; unix; }; diff --git a/pkgs/applications/misc/xscope/default.nix b/pkgs/applications/misc/xscope/default.nix index 517105d7e1f..4db034476c7 100644 --- a/pkgs/applications/misc/xscope/default.nix +++ b/pkgs/applications/misc/xscope/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "program to monitor X11/Client conversations"; - homepage = https://cgit.freedesktop.org/xorg/app/xscope/; + homepage = "https://cgit.freedesktop.org/xorg/app/xscope/"; license = with licenses; [ mit ]; maintainers = with maintainers; [ ]; platforms = with platforms; unix; diff --git a/pkgs/applications/misc/xterm/default.nix b/pkgs/applications/misc/xterm/default.nix index 8dcd533b522..f6837b692b1 100644 --- a/pkgs/applications/misc/xterm/default.nix +++ b/pkgs/applications/misc/xterm/default.nix @@ -3,14 +3,14 @@ }: stdenv.mkDerivation rec { - name = "xterm-351"; + name = "xterm-353"; src = fetchurl { urls = [ "ftp://ftp.invisible-island.net/xterm/${name}.tgz" "https://invisible-mirror.net/archives/xterm/${name}.tgz" ]; - sha256 = "05kf586my4irrzz2bxgmwjdvynyrg9ybhvfqmx29g70w4888l2kn"; + sha256 = "0s5pkfn4r8iy09s1q1y78zhnr9f3sm6wgbqir7azaqggkppd68g5"; }; buildInputs = @@ -63,7 +63,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = https://invisible-island.net/xterm; + homepage = "https://invisible-island.net/xterm"; license = with stdenv.lib.licenses; [ mit ]; maintainers = with stdenv.lib.maintainers; [vrthra]; platforms = with stdenv.lib.platforms; linux ++ darwin; diff --git a/pkgs/applications/misc/xtermcontrol/default.nix b/pkgs/applications/misc/xtermcontrol/default.nix index 51575d62ed5..f7c0edf2242 100644 --- a/pkgs/applications/misc/xtermcontrol/default.nix +++ b/pkgs/applications/misc/xtermcontrol/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { Window manipulations de-/iconify, raise/lower, maximize/restore and reset are also supported. To complete the feature set; xtermcontrol lets advanced users issue any xterm control sequence of their choosing. ''; - homepage = http://thrysoee.dk/xtermcontrol; + homepage = "http://thrysoee.dk/xtermcontrol"; license = stdenv.lib.licenses.gpl2; platforms = stdenv.lib.platforms.unix; maintainers = [ stdenv.lib.maintainers.derchris ]; diff --git a/pkgs/applications/misc/xxkb/default.nix b/pkgs/applications/misc/xxkb/default.nix index 612e4a557a7..64d55322896 100644 --- a/pkgs/applications/misc/xxkb/default.nix +++ b/pkgs/applications/misc/xxkb/default.nix @@ -33,7 +33,7 @@ stdenv.mkDerivation rec { meta = { description = "A keyboard layout indicator and switcher"; - homepage = http://xxkb.sourceforge.net/; + homepage = "http://xxkb.sourceforge.net/"; license = stdenv.lib.licenses.artistic2; maintainers = with stdenv.lib.maintainers; [ rasendubi ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/misc/yaft/default.nix b/pkgs/applications/misc/yaft/default.nix index 2135c7fd617..e66f397a383 100644 --- a/pkgs/applications/misc/yaft/default.nix +++ b/pkgs/applications/misc/yaft/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { installFlags = [ "PREFIX=$(out)" "MANPREFIX=$(out)/share/man" ]; meta = { - homepage = https://github.com/uobikiemukot/yaft; + homepage = "https://github.com/uobikiemukot/yaft"; description = "Yet another framebuffer terminal"; license = stdenv.lib.licenses.mit; maintainers = [ stdenv.lib.maintainers.matthiasbeyer ]; diff --git a/pkgs/applications/misc/yarssr/default.nix b/pkgs/applications/misc/yarssr/default.nix index f2da2957bd3..c5489b8b981 100644 --- a/pkgs/applications/misc/yarssr/default.nix +++ b/pkgs/applications/misc/yarssr/default.nix @@ -55,7 +55,7 @@ stdenv.mkDerivation { ''; meta = with stdenv.lib; { - homepage = https://github.com/tsyrogit/zxcvbn-c; + homepage = "https://github.com/tsyrogit/zxcvbn-c"; description = "A fork of Yarssr (a RSS reader for the GNOME Tray) from http://yarssr.sf.net with various fixes."; license = licenses.gpl1; platforms = platforms.linux; diff --git a/pkgs/applications/misc/yate/default.nix b/pkgs/applications/misc/yate/default.nix index 09a6cc4a3c0..6c03bbc33b3 100644 --- a/pkgs/applications/misc/yate/default.nix +++ b/pkgs/applications/misc/yate/default.nix @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { meta = { description = "Yet another telephony engine"; - homepage = http://yate.null.ro/; + homepage = "http://yate.null.ro/"; # Yate's license is GPL with an exception for linking with # OpenH323 and PWlib (licensed under MPL). license = ["GPL" "MPL"]; diff --git a/pkgs/applications/misc/yokadi/default.nix b/pkgs/applications/misc/yokadi/default.nix index 6b3a4f747f4..00507d2ee88 100644 --- a/pkgs/applications/misc/yokadi/default.nix +++ b/pkgs/applications/misc/yokadi/default.nix @@ -22,7 +22,7 @@ buildPythonApplication rec { meta = with stdenv.lib; { description = "A command line oriented, sqlite powered, todo-list"; - homepage = https://yokadi.github.io/index.html; + homepage = "https://yokadi.github.io/index.html"; license = licenses.gpl3Plus; maintainers = [ maintainers.nipav ]; }; diff --git a/pkgs/applications/misc/zathura/cb/default.nix b/pkgs/applications/misc/zathura/cb/default.nix index 7c2c8fb31ca..4e2d16819ba 100644 --- a/pkgs/applications/misc/zathura/cb/default.nix +++ b/pkgs/applications/misc/zathura/cb/default.nix @@ -6,7 +6,7 @@ stdenv.mkDerivation rec { version = "0.1.8"; src = fetchurl { - url = "https://pwmt.org/projects/zathura/plugins/download/${pname}-${version}.tar.xz"; + url = "https://pwmt.org/projects/${pname}/download/${pname}-${version}.tar.xz"; sha256 = "1i6cf0vks501cggwvfsl6qb7mdaf3sszdymphimfvnspw810faj5"; }; @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { PKG_CONFIG_ZATHURA_PLUGINDIR = "lib/zathura"; meta = with lib; { - homepage = https://pwmt.org/projects/zathura-cb/; + homepage = "https://pwmt.org/projects/zathura-cb/"; description = "A zathura CB plugin"; longDescription = '' The zathura-cb plugin adds comic book support to zathura. diff --git a/pkgs/applications/misc/zathura/core/default.nix b/pkgs/applications/misc/zathura/core/default.nix index 99729125b63..44f200174d9 100644 --- a/pkgs/applications/misc/zathura/core/default.nix +++ b/pkgs/applications/misc/zathura/core/default.nix @@ -9,12 +9,12 @@ with stdenv.lib; stdenv.mkDerivation rec { - pname = "zathura-core"; - version = "0.4.4"; + pname = "zathura"; + version = "0.4.5"; src = fetchurl { - url = "https://git.pwmt.org/pwmt/zathura/-/archive/${version}/zathura-${version}.tar.gz"; - sha256 = "0v5klgr009rsxi41h73k0398jbgmgh37asvwz2w15i4fzmw89jgb"; + url = "https://pwmt.org/projects/${pname}/download/${pname}-${version}.tar.xz"; + sha256 = "0b3nrcvykkpv2vm99kijnic2gpfzva520bsjlihaxandzfm9ff8c"; }; outputs = [ "bin" "man" "dev" "out" ]; @@ -28,6 +28,8 @@ stdenv.mkDerivation rec { "-Dmanpages=enabled" "-Dconvert-icon=enabled" "-Dsynctex=enabled" + # Make sure tests are enabled for doCheck + "-Dtests=enabled" ]; nativeBuildInputs = [ diff --git a/pkgs/applications/misc/zathura/djvu/default.nix b/pkgs/applications/misc/zathura/djvu/default.nix index 54f68969d4f..954df5301e3 100644 --- a/pkgs/applications/misc/zathura/djvu/default.nix +++ b/pkgs/applications/misc/zathura/djvu/default.nix @@ -1,11 +1,12 @@ { stdenv, fetchurl, meson, ninja, pkgconfig, gtk, zathura_core, girara, djvulibre, gettext }: stdenv.mkDerivation rec { - name = "zathura-djvu-0.2.8"; + pname = "zathura-djvu"; + version = "0.2.9"; src = fetchurl { - url = "https://pwmt.org/projects/zathura/plugins/download/${name}.tar.xz"; - sha256 = "0axkv1crdxn0z44whaqp2ibkdqcykhjnxk7qzms0dp1b67an9rnh"; + url = "https://pwmt.org/projects/${pname}/download/${pname}-${version}.tar.xz"; + sha256 = "0062n236414db7q7pnn3ccg5111ghxj3407pn9ri08skxskgirln"; }; nativeBuildInputs = [ meson ninja pkgconfig ]; @@ -14,7 +15,7 @@ stdenv.mkDerivation rec { PKG_CONFIG_ZATHURA_PLUGINDIR = "lib/zathura"; meta = with stdenv.lib; { - homepage = https://pwmt.org/projects/zathura-djvu/; + homepage = "https://pwmt.org/projects/zathura-djvu/"; description = "A zathura DJVU plugin"; longDescription = '' The zathura-djvu plugin adds DjVu support to zathura by using the diff --git a/pkgs/applications/misc/zathura/pdf-mupdf/default.nix b/pkgs/applications/misc/zathura/pdf-mupdf/default.nix index d8c1364d395..82c94d48068 100644 --- a/pkgs/applications/misc/zathura/pdf-mupdf/default.nix +++ b/pkgs/applications/misc/zathura/pdf-mupdf/default.nix @@ -1,20 +1,13 @@ -{ stdenv, lib, meson, ninja, fetchFromGitHub +{ stdenv, lib, meson, ninja, fetchurl , pkgconfig, zathura_core, cairo , gtk-mac-integration, girara, mupdf }: stdenv.mkDerivation rec { version = "0.3.5"; pname = "zathura-pdf-mupdf"; - # pwmt.org server was down at the time of last update - # src = fetchurl { - # url = "https://pwmt.org/projects/zathura-pdf-mupdf/download/${name}.tar.xz"; - # sha256 = "1zbaqimav4wfgimpy3nfzl10qj7vyv23rdy2z5z7z93jwbp2rc2j"; - # }; - src = fetchFromGitHub { - owner = "pwmt"; - repo = "zathura-pdf-mupdf"; - rev = version; - sha256 = "0wb46hllykbi30ir69s8s23mihivqn13mgfdzawbsn2a21p8y4zl"; + src = fetchurl { + url = "https://pwmt.org/projects/${pname}/download/${pname}-${version}.tar.xz"; + sha256 = "1pjwsb7zwclxsvz229fl7y2saf1pv3ifwv3ay8viqxgrp9x3z9hq"; }; nativeBuildInputs = [ meson ninja pkgconfig ]; @@ -26,7 +19,7 @@ stdenv.mkDerivation rec { PKG_CONFIG_ZATHURA_PLUGINDIR= "lib/zathura"; meta = with lib; { - homepage = https://pwmt.org/projects/zathura-pdf-mupdf/; + homepage = "https://pwmt.org/projects/zathura-pdf-mupdf/"; description = "A zathura PDF plugin (mupdf)"; longDescription = '' The zathura-pdf-mupdf plugin adds PDF support to zathura by diff --git a/pkgs/applications/misc/zathura/pdf-poppler/default.nix b/pkgs/applications/misc/zathura/pdf-poppler/default.nix index 5b38555eda1..bafa293ad9c 100644 --- a/pkgs/applications/misc/zathura/pdf-poppler/default.nix +++ b/pkgs/applications/misc/zathura/pdf-poppler/default.nix @@ -1,12 +1,12 @@ { stdenv, lib, fetchurl, meson, ninja, pkgconfig, zathura_core, girara, poppler }: stdenv.mkDerivation rec { - version = "0.2.9"; pname = "zathura-pdf-poppler"; + version = "0.3.0"; src = fetchurl { - url = "https://git.pwmt.org/pwmt/zathura-pdf-poppler/-/archive/${version}/${pname}-${version}.tar.gz"; - sha256 = "0c15rnwh42m3ybrhax01bl36w0iynaq8xg6l08riml3cyljypi9l"; + url = "https://pwmt.org/projects/${pname}/download/${pname}-${version}.tar.xz"; + sha256 = "1vfl4vkyy3rf39r1sqaa7y8113bgkh2bkfq3nn2inis9mrykmk6m"; }; nativeBuildInputs = [ meson ninja pkgconfig zathura_core ]; @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { PKG_CONFIG_ZATHURA_PLUGINDIR = "lib/zathura"; meta = with lib; { - homepage = https://pwmt.org/projects/zathura-pdf-poppler/; + homepage = "https://pwmt.org/projects/zathura-pdf-poppler/"; description = "A zathura PDF plugin (poppler)"; longDescription = '' The zathura-pdf-poppler plugin adds PDF support to zathura by diff --git a/pkgs/applications/misc/zathura/ps/default.nix b/pkgs/applications/misc/zathura/ps/default.nix index 48d42b5e939..05cc570eb8f 100644 --- a/pkgs/applications/misc/zathura/ps/default.nix +++ b/pkgs/applications/misc/zathura/ps/default.nix @@ -1,10 +1,11 @@ { stdenv, lib, fetchurl, meson, ninja, pkgconfig, zathura_core, girara, libspectre, gettext }: stdenv.mkDerivation rec { - name = "zathura-ps-0.2.6"; + pname = "zathura-ps"; + version = "0.2.6"; src = fetchurl { - url = "https://pwmt.org/projects/zathura/plugins/download/${name}.tar.xz"; + url = "https://pwmt.org/projects/${pname}/download/${pname}-${version}.tar.xz"; sha256 = "0wygq89nyjrjnsq7vbpidqdsirjm6iq4w2rijzwpk2f83ys8bc3y"; }; @@ -14,7 +15,7 @@ stdenv.mkDerivation rec { PKG_CONFIG_ZATHURA_PLUGINDIR = "lib/zathura"; meta = with lib; { - homepage = https://pwmt.org/projects/zathura-ps/; + homepage = "https://pwmt.org/projects/zathura-ps/"; description = "A zathura PS plugin"; longDescription = '' The zathura-ps plugin adds PS support to zathura by using the diff --git a/pkgs/applications/misc/zathura/wrapper.nix b/pkgs/applications/misc/zathura/wrapper.nix index 6c8ad97d355..5d37b5190d0 100644 --- a/pkgs/applications/misc/zathura/wrapper.nix +++ b/pkgs/applications/misc/zathura/wrapper.nix @@ -8,6 +8,8 @@ in symlinkJoin { paths = with zathura_core; [ man dev out ]; + inherit plugins; + buildInputs = [ makeWrapper ]; postBuild = '' @@ -17,7 +19,7 @@ in symlinkJoin { ''; meta = with lib; { - homepage = https://git.pwmt.org/pwmt/zathura/; + homepage = "https://git.pwmt.org/pwmt/zathura/"; description = "A highly customizable and functional PDF viewer"; longDescription = '' Zathura is a highly customizable and functional PDF viewer based on the diff --git a/pkgs/applications/misc/zk-shell/default.nix b/pkgs/applications/misc/zk-shell/default.nix index ec8deadf9f5..df6e011e4d5 100644 --- a/pkgs/applications/misc/zk-shell/default.nix +++ b/pkgs/applications/misc/zk-shell/default.nix @@ -20,7 +20,7 @@ pythonPackages.buildPythonApplication rec { meta = { description = "A powerful & scriptable shell for Apache ZooKeeper"; - homepage = https://github.com/rgs1/zk_shell; + homepage = "https://github.com/rgs1/zk_shell"; license = stdenv.lib.licenses.asl20; maintainers = [ stdenv.lib.maintainers.mahe ]; platforms = stdenv.lib.platforms.all; diff --git a/pkgs/applications/misc/zscroll/default.nix b/pkgs/applications/misc/zscroll/default.nix index 18876cf355b..402032b5cec 100644 --- a/pkgs/applications/misc/zscroll/default.nix +++ b/pkgs/applications/misc/zscroll/default.nix @@ -20,7 +20,7 @@ python3Packages.buildPythonApplication { meta = with stdenv.lib; { description = "A text scroller for use with panels and shells"; - homepage = https://github.com/noctuid/zscroll; + homepage = "https://github.com/noctuid/zscroll"; license = licenses.bsd2; platforms = platforms.all; }; diff --git a/pkgs/applications/networking/Sylk/default.nix b/pkgs/applications/networking/Sylk/default.nix index d99a87954de..64e0a9dcba2 100644 --- a/pkgs/applications/networking/Sylk/default.nix +++ b/pkgs/applications/networking/Sylk/default.nix @@ -2,7 +2,7 @@ let pname = "Sylk"; - version = "2.5.0"; + version = "2.6.1"; in appimageTools.wrapType2 rec { @@ -10,7 +10,7 @@ appimageTools.wrapType2 rec { src = fetchurl { url = "http://download.ag-projects.com/Sylk/Sylk-${version}-x86_64.AppImage"; - sha256 = "1jhs25zzdac3r2wz886vlpb0bz77p52mdlrbsbv28h6is79pbd69"; + hash = "sha256:0417qk925k7p3fiq1zha9al86jrz6mqspda7mi3h9blpbyvlcy7w"; }; profile = '' diff --git a/pkgs/applications/networking/brig/default.nix b/pkgs/applications/networking/brig/default.nix index 31eb4dd7378..66329b64eac 100644 --- a/pkgs/applications/networking/brig/default.nix +++ b/pkgs/applications/networking/brig/default.nix @@ -17,7 +17,7 @@ buildGoPackage rec { meta = with stdenv.lib; { description = "File synchronization on top of ipfs with git like interface and FUSE filesystem"; - homepage = https://github.com/sahib/brig; + homepage = "https://github.com/sahib/brig"; license = licenses.agpl3; platforms = platforms.unix; maintainers = with maintainers; [ offline ]; diff --git a/pkgs/applications/networking/browsers/arora/default.nix b/pkgs/applications/networking/browsers/arora/default.nix index 57db827169e..88ad2c609bf 100644 --- a/pkgs/applications/networking/browsers/arora/default.nix +++ b/pkgs/applications/networking/browsers/arora/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { platforms = qt4.meta.platforms; maintainers = [ maintainers.phreedom ]; description = "A cross-platform Qt4 Webkit browser"; - homepage = https://github.com/Arora/arora; + homepage = "https://github.com/Arora/arora"; license = with licenses; [ gpl2 gpl3 ]; }; } diff --git a/pkgs/applications/networking/browsers/brave/default.nix b/pkgs/applications/networking/browsers/brave/default.nix index cf3750addf8..151ce5edc35 100644 --- a/pkgs/applications/networking/browsers/brave/default.nix +++ b/pkgs/applications/networking/browsers/brave/default.nix @@ -82,11 +82,11 @@ in stdenv.mkDerivation rec { pname = "brave"; - version = "1.4.96"; + version = "1.7.92"; src = fetchurl { url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb"; - sha256 = "12fdef417180d295170dd61ff0586e568a0c6475fabc0b3d003921ec924a84fc"; + sha256 = "1f262xh88c83m6ixqxc69z8kvkl3qbjc6jnv2g8n0flw8s70hs7z"; }; dontConfigure = true; diff --git a/pkgs/applications/networking/browsers/browsh/default.nix b/pkgs/applications/networking/browsers/browsh/default.nix index 2b910fe0c5c..3662c3badd3 100644 --- a/pkgs/applications/networking/browsers/browsh/default.nix +++ b/pkgs/applications/networking/browsers/browsh/default.nix @@ -26,7 +26,7 @@ in buildGoPackage rec { sha256 = "0gvf5k1gm81xxg7ha309kgfkgl5357dli0fbc4z01rmfgbl0rfa0"; }; - buildInputs = [ go-bindata ]; + nativeBuildInputs = [ go-bindata ]; # embed the web extension in a go file and place it where it's supposed to # be. See @@ -53,7 +53,7 @@ in buildGoPackage rec { meta = with stdenv.lib; { description = "A fully-modern text-based browser, rendering to TTY and browsers"; - homepage = https://www.brow.sh/; + homepage = "https://www.brow.sh/"; maintainers = [ maintainers.kalbasit ]; license = stdenv.lib.licenses.lgpl21; platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin; diff --git a/pkgs/applications/networking/browsers/captive-browser/default.nix b/pkgs/applications/networking/browsers/captive-browser/default.nix index 88bd32da8f1..3ce04842c6e 100644 --- a/pkgs/applications/networking/browsers/captive-browser/default.nix +++ b/pkgs/applications/networking/browsers/captive-browser/default.nix @@ -14,7 +14,7 @@ buildGoPackage rec { meta = with lib; { description = "Dedicated Chrome instance to log into captive portals without messing with DNS settings"; - homepage = https://blog.filippo.io/captive-browser; + homepage = "https://blog.filippo.io/captive-browser"; license = licenses.mit; platforms = platforms.all; maintainers = with maintainers; [ volth ]; diff --git a/pkgs/applications/networking/browsers/chromium/browser.nix b/pkgs/applications/networking/browsers/chromium/browser.nix index ec69f3d233f..7c0609730c2 100644 --- a/pkgs/applications/networking/browsers/chromium/browser.nix +++ b/pkgs/applications/networking/browsers/chromium/browser.nix @@ -18,6 +18,16 @@ mkChromiumDerivation (base: rec { cp -vLR "$buildPath/locales" "$buildPath/resources" "$libExecPath/" cp -v "$buildPath/chrome" "$libExecPath/$packageName" + # Swiftshader + # See https://stackoverflow.com/a/4264351/263061 for the find invocation. + if [ -n "$(find "$buildPath/swiftshader/" -maxdepth 1 -name '*.so' -print -quit)" ]; then + echo "Swiftshader files found; installing" + mkdir -p "$libExecPath/swiftshader" + cp -v "$buildPath/swiftshader/"*.so "$libExecPath/swiftshader/" + else + echo "Swiftshader files not found" + fi + mkdir -p "$sandbox/bin" cp -v "$buildPath/chrome_sandbox" "$sandbox/bin/${sandboxExecutableName}" @@ -66,7 +76,7 @@ mkChromiumDerivation (base: rec { the web. It has a minimalist user interface and provides the vast majority of source code for Google Chrome (which has some additional features). ''; - homepage = https://www.chromium.org/; + homepage = "https://www.chromium.org/"; maintainers = with maintainers; [ bendlas thefloweringash primeos ]; # Overview of the maintainer roles: # nixos-unstable: diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index 255b399ef3d..fdb8584f08e 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -1,4 +1,4 @@ -{ stdenv, llvmPackages, gn, ninja, which, nodejs, fetchpatch, gnutar +{ stdenv, llvmPackages, gnChromium, ninja, which, nodejs, fetchpatch, gnutar # default dependencies , bzip2, flac, speex, libopus @@ -7,7 +7,7 @@ , xdg_utils, yasm, minizip, libwebp , libusb1, pciutils, nss, re2, zlib -, python2Packages, perl, pkgconfig, clang-tools +, python2Packages, perl, pkgconfig , nspr, systemd, kerberos , utillinux, alsaLib , bison, gperf @@ -21,9 +21,16 @@ # optional dependencies , libgcrypt ? null # gnomeSupport || cupsSupport , libva ? null # useVaapi +, libdrm ? null, wayland ? null, mesa_drivers ? null, libxkbcommon ? null # useOzone # package customization -, useVaapi ? false +, useOzone ? false +, useVaapi ? !(useOzone || stdenv.isAarch64) # Built if supported, but disabled in the wrapper +# VA-API TODOs: +# - Ozone: M81 fails to build due to "ozone_platform_gbm = false" +# - Possible solutions: Write a patch to fix the build (wrong gn dependencies) +# or build with minigbm +# - AArch64: Causes serious regressions (https://github.com/NixOS/nixpkgs/pull/85253#issuecomment-614405879) , gnomeSupport ? false, gnome ? null , gnomeKeyringSupport ? false, libgnome-keyring3 ? null , proprietaryCodecs ? true @@ -104,8 +111,6 @@ let result else result; - llvm-clang-tools = clang-tools.override { inherit llvmPackages; }; - base = rec { name = "${packageName}-unwrapped-${version}"; inherit (upstream-info) channel version; @@ -117,7 +122,7 @@ let ninja which python2Packages.python perl pkgconfig python2Packages.ply python2Packages.jinja2 nodejs gnutar - ]; + ] ++ optional (versionAtLeast version "83") python2Packages.setuptools; buildInputs = defaultDependencies ++ [ nspr nss systemd @@ -127,11 +132,12 @@ let libXScrnSaver libXcursor libXtst libGLU libGL pciutils protobuf speechd libXdamage at-spi2-core jre - ] ++ optional gnomeKeyringSupport libgnome-keyring3 + ] ++ optional useVaapi libva + ++ optional gnomeKeyringSupport libgnome-keyring3 ++ optionals gnomeSupport [ gnome.GConf libgcrypt ] ++ optionals cupsSupport [ libgcrypt cups ] - ++ optional useVaapi libva - ++ optional pulseSupport libpulseaudio; + ++ optional pulseSupport libpulseaudio + ++ optionals useOzone [ libdrm wayland mesa_drivers libxkbcommon ]; patches = [ ./patches/nix_plugin_paths_68.patch @@ -148,10 +154,13 @@ let # # ++ optionals (channel == "dev") [ ( githubPatch "" "0000000000000000000000000000000000000000000000000000000000000000" ) ] # ++ optional (versionRange "68" "72") ( githubPatch "" "0000000000000000000000000000000000000000000000000000000000000000" ) - ] ++ optionals (useVaapi) [ - # source: https://aur.archlinux.org/cgit/aur.git/tree/vaapi-fix.patch?h=chromium-vaapi - ./patches/vaapi-fix.patch - ]; + ] ++ optionals (useVaapi) ([ # Fixes for the VA-API build: + ./patches/enable-vdpau-support-for-nvidia.patch # https://aur.archlinux.org/cgit/aur.git/tree/vdpau-support.patch?h=chromium-vaapi + ./patches/enable-video-acceleration-on-linux.patch # Can be controlled at runtime (i.e. without rebuilding Chromium) + ] ++ optionals (versionRange "81" "82") [ + (githubPatch "5b2ff215473e0526b5b24aeff4ad90d369b21c75" "0n00vh8wfpn2ay5fqsxcsx0zadnv7mihm72bcvnrfzh75nzbg902") + (githubPatch "98e343ab369e4262511b5fce547728e3e5eefba8" "00wwp653jk0k0yvix00vr7ymgck9dj7fxjwx4nc67ynn84dh6064") + ]); postPatch = '' # We want to be able to specify where the sandbox is via CHROME_DEVEL_SANDBOX @@ -216,8 +225,6 @@ let ln -s ${stdenv.cc}/bin/clang third_party/llvm-build/Release+Asserts/bin/clang ln -s ${stdenv.cc}/bin/clang++ third_party/llvm-build/Release+Asserts/bin/clang++ ln -s ${llvmPackages.llvm}/bin/llvm-ar third_party/llvm-build/Release+Asserts/bin/llvm-ar - '' + optionalString (stdenv.lib.versionAtLeast version "82") '' - ln -s ${llvm-clang-tools}/bin/clang-format buildtools/linux64/clang-format ''; gnFlags = mkGnFlags ({ @@ -244,7 +251,6 @@ let is_clang = stdenv.cc.isClang; clang_use_chrome_plugins = false; blink_symbol_level = 0; - enable_swiftshader = false; fieldtrial_testing_like_official_build = true; # Google API keys, see: @@ -264,6 +270,16 @@ let } // optionalAttrs pulseSupport { use_pulseaudio = true; link_pulseaudio = true; + } // optionalAttrs useOzone { + use_ozone = true; + ozone_platform_gbm = false; + use_xkbcommon = true; + use_glib = true; + use_gtk = true; + use_system_libwayland = true; + use_system_minigbm = true; + use_system_libdrm = true; + system_wayland_scanner_path = "${wayland}/bin/wayland-scanner"; } // (extraAttrs.gnFlags or {})); configurePhase = '' @@ -273,7 +289,7 @@ let libExecPath="${libExecPath}" python build/linux/unbundle/replace_gn_files.py \ --system-libraries ${toString gnSystemLibraries} - ${gn}/bin/gn gen --args=${escapeShellArg gnFlags} out/Release | tee gn-gen-outputs.txt + ${gnChromium}/bin/gn gen --args=${escapeShellArg gnFlags} out/Release | tee gn-gen-outputs.txt # Fail if `gn gen` contains a WARNING. grep -o WARNING gn-gen-outputs.txt && echo "Found gn WARNING, exiting nix build" && exit 1 @@ -281,6 +297,11 @@ let runHook postConfigure ''; + # Don't spam warnings about unknown warning options. This is useful because + # our Clang is always older than Chromium's and the build logs have a size + # of approx. 25 MB without this option (and this saves e.g. 66 %). + NIX_CFLAGS_COMPILE = "-Wno-unknown-warning-option"; + buildPhase = let # Build paralelism: on Hydra the build was frequently running into memory # exhaustion, and even other users might be running into similar issues. diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix index 8968a10bed0..25ef76f331b 100644 --- a/pkgs/applications/networking/browsers/chromium/default.nix +++ b/pkgs/applications/networking/browsers/chromium/default.nix @@ -1,25 +1,28 @@ { newScope, config, stdenv, llvmPackages_9, llvmPackages_10 , makeWrapper, ed -, glib, gtk3, gnome3, gsettings-desktop-schemas +, glib, gtk3, gnome3, gsettings-desktop-schemas, gn, fetchgit , libva ? null , gcc, nspr, nss, patchelfUnstable, runCommand , lib # package customization +# Note: enable* flags should not require full rebuilds (i.e. only affect the wrapper) , channel ? "stable" , gnomeSupport ? false, gnome ? null , gnomeKeyringSupport ? false , proprietaryCodecs ? true , enablePepperFlash ? false , enableWideVine ? false -, useVaapi ? false # test video on radeon, before enabling this +, useVaapi ? false # Deprecated, use enableVaapi instead! +, enableVaapi ? false # Disabled by default due to unofficial support and issues on radeon +, useOzone ? false , cupsSupport ? true , pulseSupport ? config.pulseaudio or stdenv.isLinux , commandLineArgs ? "" }: let - llvmPackages = if channel == "dev" + llvmPackages = if channel != "stable" then llvmPackages_10 else llvmPackages_9; stdenv = llvmPackages.stdenv; @@ -31,9 +34,20 @@ let upstream-info = (callPackage ./update.nix {}).getChannel channel; - mkChromiumDerivation = callPackage ./common.nix { - inherit gnome gnomeSupport gnomeKeyringSupport proprietaryCodecs cupsSupport pulseSupport useVaapi; - }; + mkChromiumDerivation = callPackage ./common.nix ({ + inherit gnome gnomeSupport gnomeKeyringSupport proprietaryCodecs cupsSupport pulseSupport useOzone; + gnChromium = gn; + } // lib.optionalAttrs (channel != "stable") { + # TODO: Remove after we can update gn for the stable channel (backward incompatible changes): + gnChromium = gn.overrideAttrs (oldAttrs: { + version = "2020-03-23"; + src = fetchgit { + url = "https://gn.googlesource.com/gn"; + rev = "5ed3c9cc67b090d5e311e4bd2aba072173e82db9"; + sha256 = "00y2d35wvqmx9glaqhfb62wdgbfpwr77v0934nnvh9ks71vnsjqy"; + }; + }); + }); browser = callPackage ./browser.nix { inherit channel enableWideVine; }; @@ -115,6 +129,14 @@ let cp -a ${widevineCdm}/WidevineCdm $out/libexec/chromium/ '' else browser; + + optionalVaapiFlags = if useVaapi # TODO: Remove after 20.09: + then throw '' + Chromium's useVaapi was replaced by enableVaapi and you don't need to pass + "--ignore-gpu-blacklist" anymore (also no rebuilds are required anymore). + '' else lib.optionalString + (!enableVaapi) + "--add-flags --disable-accelerated-video-decode --add-flags --disable-accelerated-video-encode"; in stdenv.mkDerivation { name = "chromium${suffix}-${version}"; inherit version; @@ -134,15 +156,14 @@ in stdenv.mkDerivation { buildCommand = let browserBinary = "${chromiumWV}/libexec/chromium/chromium"; getWrapperFlags = plugin: "$(< \"${plugin}/nix-support/wrapper-flags\")"; - libPath = stdenv.lib.makeLibraryPath ([] - ++ stdenv.lib.optional useVaapi libva - ); + libPath = stdenv.lib.makeLibraryPath [ libva ]; in with stdenv.lib; '' mkdir -p "$out/bin" eval makeWrapper "${browserBinary}" "$out/bin/chromium" \ --add-flags ${escapeShellArg (escapeShellArg commandLineArgs)} \ + ${optionalVaapiFlags} \ ${concatMapStringsSep " " getWrapperFlags chromium.plugins.enabled} ed -v -s "$out/bin/chromium" << EOF diff --git a/pkgs/applications/networking/browsers/chromium/patches/vaapi-fix.patch b/pkgs/applications/networking/browsers/chromium/patches/enable-vdpau-support-for-nvidia.patch similarity index 100% rename from pkgs/applications/networking/browsers/chromium/patches/vaapi-fix.patch rename to pkgs/applications/networking/browsers/chromium/patches/enable-vdpau-support-for-nvidia.patch diff --git a/pkgs/applications/networking/browsers/chromium/patches/enable-video-acceleration-on-linux.patch b/pkgs/applications/networking/browsers/chromium/patches/enable-video-acceleration-on-linux.patch new file mode 100644 index 00000000000..bd278633f67 --- /dev/null +++ b/pkgs/applications/networking/browsers/chromium/patches/enable-video-acceleration-on-linux.patch @@ -0,0 +1,48 @@ +From b2144fd28e09cd52e7a88a62a9d9b54cf9922f9f Mon Sep 17 00:00:00 2001 +From: Michael Weiss +Date: Tue, 14 Apr 2020 14:16:10 +0200 +Subject: [PATCH] Enable accelerated video decode on Linux + +This will enable accelerated video decode on Linux by default (i.e. +without "--ignore-gpu-blacklist"), but on NixOS we'll provide +"--disable-accelerated-video-decode" and +"--disable-accelerated-video-encode" by default to avoid regressions +(e.g. VA-API doesn't work properly for some radeon drivers). + +Video acceleration can then be enabled via: +chromium.override { enableVaapi = true; } +without rebuilding Chromium. +--- + gpu/config/software_rendering_list.json | 16 ---------------- + 1 file changed, 16 deletions(-) + +diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json +index 22712bdbf38f..a06dd19a50e4 100644 +--- a/gpu/config/software_rendering_list.json ++++ b/gpu/config/software_rendering_list.json +@@ -336,22 +336,6 @@ + ] + }, + { +- "id": 48, +- "description": "Accelerated video decode is unavailable on Linux", +- "cr_bugs": [137247, 1032907], +- "os": { +- "type": "linux" +- }, +- "exceptions": [ +- { +- "machine_model_name": ["Chromecast"] +- } +- ], +- "features": [ +- "accelerated_video_decode" +- ] +- }, +- { + "id": 50, + "description": "Disable VMware software renderer on older Mesa", + "cr_bugs": [145531, 332596, 571899, 629434], +-- +2.11.0 + diff --git a/pkgs/applications/networking/browsers/chromium/plugins.nix b/pkgs/applications/networking/browsers/chromium/plugins.nix index 434bd77b6d1..1dd9baa628a 100644 --- a/pkgs/applications/networking/browsers/chromium/plugins.nix +++ b/pkgs/applications/networking/browsers/chromium/plugins.nix @@ -45,11 +45,11 @@ let flash = stdenv.mkDerivation rec { pname = "flashplayer-ppapi"; - version = "32.0.0.344"; + version = "32.0.0.363"; src = fetchzip { url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz"; - sha256 = "05ijlgsby9zxx0qs6f3vav1z0p6xr1cg6idl4akxvfmsl6hn6hkq"; + sha256 = "0znk8an892mykgbz56hyv3gz65vc9mhb3vn96c6bsvicwl1fn460"; stripRoot = false; }; diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/pkgs/applications/networking/browsers/chromium/upstream-info.nix index a58131ce0e0..40ddafd2541 100644 --- a/pkgs/applications/networking/browsers/chromium/upstream-info.nix +++ b/pkgs/applications/networking/browsers/chromium/upstream-info.nix @@ -1,18 +1,18 @@ # This file is autogenerated from update.sh in the same directory. { beta = { - sha256 = "1yam7lg38dbpvmva7pc3bw3npvgi3d1v6im8ld4z92gjgniwsjh2"; - sha256bin64 = "0vsly218wv9x2nv5i82slz8pmb0hmdcl1z2mlhf2j5adnsxn9c5z"; - version = "81.0.4044.34"; + sha256 = "1s3flhzp69g62285r9nwc5m9fa65ldx19inwdm4nq1m5bn63v6lj"; + sha256bin64 = "0xbbj89xx98vvw1a4l4wj7hhwjasdmkxbbkgaad2cj4zqmbb8h52"; + version = "83.0.4103.23"; }; dev = { - sha256 = "0pxvwjvkajlidk5m7jiqk69mxnxg3h56dr7vpi916r51w17pds0l"; - sha256bin64 = "1jdyp0f2ig4251155db3m7lzd4jlmczcjqqnvdj5nwl2bn3ykc3s"; - version = "82.0.4068.4"; + sha256 = "1jgx55sb3azwb2rni89yxlz94j264iilwh0br29sngcailxamrbd"; + sha256bin64 = "107yndkcdb78zxpswn9aja63n0q4q5q49183058z5jm4zlplkgad"; + version = "84.0.4122.7"; }; stable = { - sha256 = "00f2hpi2d0n15yw29dv3dli566cgi7qh55bfpziag9a6j02i401c"; - sha256bin64 = "00xhacrs74ks3nrpsnnbqm5vk0r9ydyxrq5ifajzviqqyk2n24b8"; - version = "80.0.3987.132"; + sha256 = "1ls663s1f74p912x42qp3zcvm17kmjiv1ij6yy1c14gdhcpmjx7z"; + sha256bin64 = "0nzds27x1j3298cq5xkgikjdddymbw88gcpnlm03492b6090257y"; + version = "81.0.4044.129"; }; } diff --git a/pkgs/applications/networking/browsers/dillo/default.nix b/pkgs/applications/networking/browsers/dillo/default.nix index 8d6c99d2468..fa1fa76340c 100644 --- a/pkgs/applications/networking/browsers/dillo/default.nix +++ b/pkgs/applications/networking/browsers/dillo/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { configureFlags = [ "--enable-ssl" ]; meta = with stdenv.lib; { - homepage = https://www.dillo.org/; + homepage = "https://www.dillo.org/"; description = "A fast graphical web browser with a small footprint"; longDescription = '' Dillo is a small, fast web browser, tailored for older machines. diff --git a/pkgs/applications/networking/browsers/elinks/default.nix b/pkgs/applications/networking/browsers/elinks/default.nix index 8d62bd7d5cc..985497a095c 100644 --- a/pkgs/applications/networking/browsers/elinks/default.nix +++ b/pkgs/applications/networking/browsers/elinks/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation { name = "elinks-0.12pre6"; src = fetchurl { - url = http://elinks.or.cz/download/elinks-0.12pre6.tar.bz2; + url = "http://elinks.or.cz/download/elinks-0.12pre6.tar.bz2"; sha256 = "1nnakbi01g7yd3zqwprchh5yp45br8086b0kbbpmnclabcvlcdiq"; }; @@ -46,7 +46,7 @@ stdenv.mkDerivation { meta = { description = "Full-featured text-mode web browser"; - homepage = http://elinks.or.cz; + homepage = "http://elinks.or.cz"; license = stdenv.lib.licenses.gpl2; platforms = stdenv.lib.platforms.linux; }; diff --git a/pkgs/applications/networking/browsers/eolie/default.nix b/pkgs/applications/networking/browsers/eolie/default.nix index b9b183a03ff..cfccacf1ae0 100644 --- a/pkgs/applications/networking/browsers/eolie/default.nix +++ b/pkgs/applications/networking/browsers/eolie/default.nix @@ -59,7 +59,7 @@ python3.pkgs.buildPythonApplication rec { meta = with stdenv.lib; { description = "A new GNOME web browser"; - homepage = https://wiki.gnome.org/Apps/Eolie; + homepage = "https://wiki.gnome.org/Apps/Eolie"; license = licenses.gpl3Plus; maintainers = with maintainers; [ samdroid-apps worldofpeace ]; platforms = platforms.linux; diff --git a/pkgs/applications/networking/browsers/ephemeral/default.nix b/pkgs/applications/networking/browsers/ephemeral/default.nix index ea840694bd3..53d0ffb4c19 100644 --- a/pkgs/applications/networking/browsers/ephemeral/default.nix +++ b/pkgs/applications/networking/browsers/ephemeral/default.nix @@ -19,13 +19,13 @@ stdenv.mkDerivation rec { pname = "ephemeral"; - version = "6.3.0"; + version = "6.3.3"; src = fetchFromGitHub { owner = "cassidyjames"; repo = "ephemeral"; rev = version; - sha256 = "0h159szljvphs2hvagxwv6nncx46q0mvr4ylhl2nimap9jvss91n"; + sha256 = "093bqc40p4s8jc1s5rg49363x24vnwwjayvgzmi4xag28f1x6kn8"; }; nativeBuildInputs = [ @@ -62,7 +62,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "The always-incognito web browser"; - homepage = https://github.com/cassidyjames/ephemeral; + homepage = "https://github.com/cassidyjames/ephemeral"; maintainers = with maintainers; [ kjuvi ] ++ pantheon.maintainers; platforms = platforms.linux; license = licenses.gpl3; diff --git a/pkgs/applications/networking/browsers/falkon/default.nix b/pkgs/applications/networking/browsers/falkon/default.nix index 6e21456a9a9..954b45a2042 100644 --- a/pkgs/applications/networking/browsers/falkon/default.nix +++ b/pkgs/applications/networking/browsers/falkon/default.nix @@ -36,7 +36,7 @@ mkDerivation rec { meta = with stdenv.lib; { description = "QtWebEngine based cross-platform web browser"; - homepage = https://community.kde.org/Incubator/Projects/Falkon; + homepage = "https://community.kde.org/Incubator/Projects/Falkon"; license = licenses.gpl3; maintainers = with maintainers; [ peterhoeg ]; platforms = platforms.unix; diff --git a/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix index f9356fc802e..0737bac48c7 100644 --- a/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix +++ b/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix @@ -1,965 +1,965 @@ { - version = "75.0b2"; + version = "76.0b4"; sources = [ - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/ach/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ach/firefox-76.0b4.tar.bz2"; locale = "ach"; arch = "linux-x86_64"; - sha512 = "159fc50feb7ea1d8f567b94756476b8325de2a2255aceaadb7975cebd763ff44cc74c621532b840f5aef7156024f605ffefc3fb1b3609a44925d7a280b63f183"; + sha512 = "069dab2a91793ac9cdaa128473f706e194cf763df66ae448217cd7e5297857bb2d21ad198f9592bbe4831a2bbe9b76ec1ef96c288c4d8a85e35733ef0f75462f"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/af/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/af/firefox-76.0b4.tar.bz2"; locale = "af"; arch = "linux-x86_64"; - sha512 = "224a98e4028513e30897fe73de8dee67a90844990eb13564e7fc32c4aa9426730da7d4b528666ecd5a76a6ce68c0eb3d0564b09823e12721424c471fa7cfe191"; + sha512 = "bf1c4da2b03f95f241497e646d77ce5675f09dd8947def93983814c5bad257e38acc5c918faf7b758bf7293c09594baeac43ffaad814a47d3cbebcd5a49b4f4f"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/an/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/an/firefox-76.0b4.tar.bz2"; locale = "an"; arch = "linux-x86_64"; - sha512 = "7973ab3c94616e0eb1b2b36209836c3ed81c55927f26da9bfc672eeb5f6f36d8447bf9dac705219b38edd1d217c6b7d701ce11285f37d37219ddbc0340fbaf61"; + sha512 = "04bf37a16a65d453d1c9406196d095acd0087a0bfad0ffbb466afc2c99249f7a82899434a47343399db63c95d9c827a9a49b5c9eede2ad7bb7bcd91d82770fcf"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/ar/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ar/firefox-76.0b4.tar.bz2"; locale = "ar"; arch = "linux-x86_64"; - sha512 = "11dfb7553ca61b7abe857ab7dc75db73e3a3002b9d4dce98f005d0c298ff119d29b64309fb8e5c62fafa08f9ff426c14f45956e5f6cfb7cb9af7dde41190bf43"; + sha512 = "71bcef558731031d1e38b370494be88dcd82299918a98c45be7fbec61ba5122ffcf3bbf4f2705c2e81cc133a888289c118511d8713ed722d99638a530d5d4da2"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/ast/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ast/firefox-76.0b4.tar.bz2"; locale = "ast"; arch = "linux-x86_64"; - sha512 = "23f00418b48d660c64c4480cd6c983da80fd8990f3ae055a0e4792f01b881b69251f4ec123ef3d961623b94dd7a968a82f27d29aa87731ca77e4ac4b1ec32464"; + sha512 = "9f73a427c5a520fefd777d84aea6dfe50f2bd65f29e9acd16f0238ba5869e2c129872073c04769afab3ee973bfbcc6b50e204a53a8ca380a0e5d578557d59599"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/az/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/az/firefox-76.0b4.tar.bz2"; locale = "az"; arch = "linux-x86_64"; - sha512 = "85e1c4ef9870c9aaf670d107b5810782b7e148f6edf61123c4326be0809b1103f9bc5a05e87d06771fb8faf405d9f648df364d99cae9be32ae2242d1c488b5c9"; + sha512 = "8717b342a6c49356017674c516b58415a21aa2a84fdf986c427f0dfc6af3944dae822728aca93184a10f5517202cf5e6ee49221485c64526edc0e083b0caae52"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/be/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/be/firefox-76.0b4.tar.bz2"; locale = "be"; arch = "linux-x86_64"; - sha512 = "34bb18b6f6ecd032ce0984513e590e422d01ed5b92b8960a7a4e64b2a5f5b2f19aeeaa6b7227a96cf6b6e97168674a34cc3332d019dc5d3257504c7188ab8418"; + sha512 = "0bf61f3952c7b40e4950bfd294f5382da877eecc265bd9a1ea78135471b5802b69bc90361c6e286e2a2c7f5151a44c711c45f3d9b053324213ade49c79907b8b"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/bg/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/bg/firefox-76.0b4.tar.bz2"; locale = "bg"; arch = "linux-x86_64"; - sha512 = "2481e01d1656a26458cca5f1f9eb7d7f101dc98e7aa7ee620889b630393a70a82132758323d4ec37c5ee640874419cdd2d5464d64e820876cb924679f03eba64"; + sha512 = "de46cf916c7289f04590beab6ca3aecbcecb6ac65b7377206244e9cd41d0df8e68e6006ca49ae477ecabbb9b13c9b1df11c4cd732967b13aef3e9d0d708d2e3d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/bn/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/bn/firefox-76.0b4.tar.bz2"; locale = "bn"; arch = "linux-x86_64"; - sha512 = "6dc0d391e179cc13465f60c98f9a6425f6fc4f28f2340928a35bc3abfb623c28decbd179012d162cff661dc807974f5df34427879d4838ab481ffa75c0957e77"; + sha512 = "46ae6e3ef632317f2f449223d64ebdea050c21f72a37fb27e5cff10d60f87cdb5d8b58de0e0d63e1a6f55ed0559eb5ef40a0768615a52dd5e2f2dee1e0bcf08c"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/br/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/br/firefox-76.0b4.tar.bz2"; locale = "br"; arch = "linux-x86_64"; - sha512 = "6fce902e7e23277c8446df902349e626ae5dce2435ce56e57824c7a0b5729ae95b10878525f9b5251e9c91e1cbd97cc1ea7792136b271cf88626fc97cee5f4be"; + sha512 = "f0652632fe303db805cc422ee010f968493377014865a3a80af13ea308c3eca7c9793172106064dc2f36ec2f8f3aa3e679f285975a431fc7de6aeca4373db67d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/bs/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/bs/firefox-76.0b4.tar.bz2"; locale = "bs"; arch = "linux-x86_64"; - sha512 = "cd46d5f1e8d68a7390b2bdd4338829db0e25e5dcf0a52d538db311b957809c33f7fc9cfef92a73357743ddb9b3ed0ce593c9c0cc8428f7f891edc3292c00d37d"; + sha512 = "31efa7360e56508f2b249d2789387bb8130a3db14843b87463dfb600ba3f37328fb86113c263dca3ceb30c620e889810194bd408220941ce9700dddea908e1f5"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/ca-valencia/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ca-valencia/firefox-76.0b4.tar.bz2"; locale = "ca-valencia"; arch = "linux-x86_64"; - sha512 = "e79af87bd369b75319565bc6301cf312022b85562ccf6cd2abd6fd59a26b1081a62f166c7efb4fbb6ad1ccb7befa8a8eec557addd9c4115f7da1594a633d243c"; + sha512 = "f6ddaa4f75bf434474da6f441c8caedaa77a53ecfef92532135a27c8e76f8acad7afc26b3549a2f753676533c0352227cdd875d952c1a720332cf9cf4dfbfbf4"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/ca/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ca/firefox-76.0b4.tar.bz2"; locale = "ca"; arch = "linux-x86_64"; - sha512 = "4241eae0654e5466a1c04aff0de003a676c775470329a973204a2413590fc4558aec96ac33e9e14cf1ab7eb52054ec34e7ebbb149648dd4e8d33cefe2b3c18c7"; + sha512 = "4d58cd473798b52dfaa5fb4424f9ec57eb4e667c884808dd4fdceb851161ef3f3f72354588ce25eec24ff7ee671e7bdc1dfa7ef18c262540549ba34d8471ca42"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/cak/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/cak/firefox-76.0b4.tar.bz2"; locale = "cak"; arch = "linux-x86_64"; - sha512 = "5bb2b8a2eeffdb7a06c16244458ad8f305725741f05c0fa367534da99d0bf0c4399e05453b64c505f441c4036f3e5e7a4e5729852a848b8ff4210d674ce7f065"; + sha512 = "5aa6d504cf97e0d446e8699bbc34b9e69632455b97c0427c1081d9083c200ef3a83472b95ee3804612e36d93f0d5992bcc4f8bade7eb132a30c313d2efd7a75a"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/cs/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/cs/firefox-76.0b4.tar.bz2"; locale = "cs"; arch = "linux-x86_64"; - sha512 = "50c6ba425d3be7e12667d80bd6e57907082bd3c155b8d3b6bedae64054046d3bb02d8894445cd5d27e3251507730c06bd3eddc96a11c36c4e9c7a3b9cdf796ff"; + sha512 = "c8ee077240afe3df4052f093e6a5f13ec2449f84863063483edd11b8c76ccd42a45cce2c627ef57d5b4e337f71a88e510efdea1fb1f0065fddc1390d4753ce12"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/cy/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/cy/firefox-76.0b4.tar.bz2"; locale = "cy"; arch = "linux-x86_64"; - sha512 = "0dee8828858c2e0013788b680b8f907e6464e219fc6745af8d0e7d08575291e926f2be56ea7becb1b231f1fa0feb1827b5779b7f720606729a37847f7d8322db"; + sha512 = "b0352034fcfc9e2acbb546343ec2e8103f08b3c802289486611d694c07bd154d9bab7509e8a09134b44929ffb54a806ea4cf44a8d4b1ea506c23b84adee123ef"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/da/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/da/firefox-76.0b4.tar.bz2"; locale = "da"; arch = "linux-x86_64"; - sha512 = "d69320ec8c0ffbead25906f9957d73ee9bee8c7ff922e7d2d2e3cca3487ded5e836d41b8faca42627f722c1f2d43fd918e6db6e9d93268155865f1ebfaf6a5e5"; + sha512 = "57bfa4d27ab78cdf9da4d04a4bd6a38873918bb800ccc1e49259c5d6753e9fdee0620795c96193c84938c126a94423d21ae12a3c998274474ff7b71b3da9e701"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/de/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/de/firefox-76.0b4.tar.bz2"; locale = "de"; arch = "linux-x86_64"; - sha512 = "a64fe63ef81c8ceca0c1baa0bf55f0aa34b662fd9d0417a262e7d539164ac2f0b32eae89bcc74cec4113356fdb1ecce890509877bbef9af2eb6f7e91c2c2ca33"; + sha512 = "61cfd12448a01a71c98ef855ea9c54d105bde516d97e8e1d70e5008a3633c0a45c194a751f2a7884e0632c56d7ee830bfd1a0d9a07bcfd54606f7c37bf2b4b92"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/dsb/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/dsb/firefox-76.0b4.tar.bz2"; locale = "dsb"; arch = "linux-x86_64"; - sha512 = "776c66f6421f250f22063cb77c5313df75b20b7b06a396c8124f7836b56e7a18fbf9ea996d9ebffb58a00ca0a27957199e4a53b777f5ed04281317926a95a84a"; + sha512 = "d6d3f08595f1675f181b40cc55f03009ccc212bfa733c341e51151e24089372a357a3a2851806eee708cc143a75a1d1a8d8a078fffa5988683945183f927f801"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/el/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/el/firefox-76.0b4.tar.bz2"; locale = "el"; arch = "linux-x86_64"; - sha512 = "5daaea449ade4d15deb93864b0313f3b8f780b6f51e1ff63098a37fe83b39151bff5526d8685171fdcc2ff7ee874f697e689e47a60e37d01ffdf2a9d3efbc38f"; + sha512 = "559c34cd79cb820f674d0aff9aec9e9cccc51ff7b1fcbd17ef95b9066e35880c5c980155d2ec6913e1d9ad3f9e25ff8757ce84e0b22beb21e893ab0bf30ddd5b"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/en-CA/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/en-CA/firefox-76.0b4.tar.bz2"; locale = "en-CA"; arch = "linux-x86_64"; - sha512 = "2d3f4aaafd042888a2b192419fc5fd5e841a922a1b24ff8cc95d52343750e64ae8a0deda694faf3a1ec11e447f25d8303f5905b1f98349ba5f0e705eae4fd615"; + sha512 = "9f850ab71ab61eff4d2c9630cedbe42773982e1a8086a59723db64a01852a9ebf5ec90be7e315b9b7e142bc040eb2523b805eeab13b47a01ccd0978786d77fa4"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/en-GB/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/en-GB/firefox-76.0b4.tar.bz2"; locale = "en-GB"; arch = "linux-x86_64"; - sha512 = "e977d28c7f2a54793098e6557dbdba56a8a6b0069912188c59f246a004147d17454a338df4f4335144e9d4e5a52a510bc94076d3f38c8fb28797a08c59a903fa"; + sha512 = "134740c2c4efb9f014f42eb5002a4eddf8da67c62798f8c733623ec3f28a2ce7c2caad0e3b0f05fc5474148714c7394c53ba77953d4f5c56d1ad4aa8fd35c19d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/en-US/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/en-US/firefox-76.0b4.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; - sha512 = "e30d89b9ea552e7758f550632b41c19a34dcd75291a71def8aeccb4a51ddc0a3da16e181a8c9d441da0d671a89d0f7a481e19599f4815beb96aaf7a95e10e078"; + sha512 = "4401f8e0efe0ff589ae496ea959dec86834c331af0108cdae4a4380fc48e989068d12d33faca0cedbc4e5fb78460b6495a29022c42bbbcc94731cccede9927d3"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/eo/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/eo/firefox-76.0b4.tar.bz2"; locale = "eo"; arch = "linux-x86_64"; - sha512 = "5d086d6725cf99aa3894974d78cf0e337de0244163e3fe8507aeea9386233d14ae7a1f1550c563a5fb59f0cae51d579c4f0e578c9fb56ee48d39be6d644451d9"; + sha512 = "93a79dd6fc6acfc8829bd520139e6ba4075f67a091701c1a877212e495c4b530e35cc21bdf5d15526c27aacf2e25a87375f3a4aa555453677348f0442378ad37"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/es-AR/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/es-AR/firefox-76.0b4.tar.bz2"; locale = "es-AR"; arch = "linux-x86_64"; - sha512 = "ff818af501719ec198d21b5a53d54603fd591d266a2028827283ddbf5bccfceb4382e7ee9ad1119936a2301b067882f91fb04a354426d4587134e065033b4028"; + sha512 = "ac7d84178ac2b315007cd5a0ec632dad6172117378f3a4afe6ad0099b45ca6d50534230e93c3045d1d89a18e742541514f6600f1b581547931e75769d361954e"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/es-CL/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/es-CL/firefox-76.0b4.tar.bz2"; locale = "es-CL"; arch = "linux-x86_64"; - sha512 = "2bb98c8dbcdb4d2ff0eb660517e1adb99d7917e9cfc6429e870ed3ce168f4c2292feef353e870293bf76f7d9cea4095c6d22c59fb9ccaa9f336c93e9009f8d50"; + sha512 = "cba6f234b9e7f4612cffb24fb648dc715730b0128bcf070b3e4f44ff2026610be4f8e36c9ff122688d47930a2d22a96942df6cce8d2c40ed443a8fb7204f3e49"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/es-ES/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/es-ES/firefox-76.0b4.tar.bz2"; locale = "es-ES"; arch = "linux-x86_64"; - sha512 = "4992db4b3e0d5273e73fd7f88e7284809a5922c2b700b695830da7ccc11c40a23954a03a602bf319678a432da218be8de825b15e2eb62b6eb62a0f34787ba0f3"; + sha512 = "e65aec8d339144b3acc24867da6e7832658bb625277934320ed428c21af537df3eaae6922102d43b8b4742e5e33b789836865e64f3ceba08e7a752781e2ad8fa"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/es-MX/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/es-MX/firefox-76.0b4.tar.bz2"; locale = "es-MX"; arch = "linux-x86_64"; - sha512 = "df8fd54ca32af5e0d579a2fdff569688248f4abfd30ed677d56a0ad850fd603ac14aef086fe8ac167d1819d0e7b354de77c948613a9ccc3e9c9adefbab99d077"; + sha512 = "13c0a83ad36749003d96b8e56471d632cf7006cde3c4b89ce2ff98bc42ddfa76b1afa4f3437e87009182cf7677931c5a307a4a2ac0e0250346da3f12dc723f64"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/et/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/et/firefox-76.0b4.tar.bz2"; locale = "et"; arch = "linux-x86_64"; - sha512 = "ac96ffaac54039cab3b59063614ba8eb5e731ad0912e83f4b61f812c927f0f075d9d9a6123a3e1211bf96c886a925273f16fbd31d75709a195379b763e936fed"; + sha512 = "004eff52a5c6e4d8d60c488a52e894b0cfe8471f1c9258c319bf2e023c231c3bf282ef3d03d3a8045fcc8ef53e6e1173ea580dd71f73dd0bb2aea198f96eccb1"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/eu/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/eu/firefox-76.0b4.tar.bz2"; locale = "eu"; arch = "linux-x86_64"; - sha512 = "4ced029f5d52fdd172d9f25e8dd062278758b6987fae56554e657dc32c2323caa52ef89021564d9fcd4663e75e0a8163e925c32048d77acfc92a0db9ac171248"; + sha512 = "3633383291f77632882744592c09be7a808897ed02809f0fff84ee4f16a58bf0ca6a82c0efc82b6c7291bf8ed48b0fe8eded288affdae9b0b55137b4dbce40dd"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/fa/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/fa/firefox-76.0b4.tar.bz2"; locale = "fa"; arch = "linux-x86_64"; - sha512 = "c4f131631f72b98b9fc919596bfbfea8b605f2108b5094e9e265df84317a825de9a06cfc4ae52f7901138b429f9c7ffaa4b719b18e1485007c6ffe96d689f690"; + sha512 = "683984fd0b388d69206a5d9ac1cf174b513aec52ca19eb6644209818a0cbe54124428adccd15e1ad9e7d41c6016c34a70ad77b721440655b593ad95aa66290bd"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/ff/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ff/firefox-76.0b4.tar.bz2"; locale = "ff"; arch = "linux-x86_64"; - sha512 = "c0f61fe82231d8a22f550d8399e05e7ece426fb2f1d15d36b6c43ba3c3872f07f76102a69759fab6533bf08a8248ca7dac3c59d723b3f54161e959d85c24348a"; + sha512 = "7c12dc3450e511915494757ebcaa6b0a5a0f3ed1bd349ce1c28b4cce1b931844408daf59e27486eb044b669fd7bd1ca4cb9512eb2332e7a7d360e20dccdae260"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/fi/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/fi/firefox-76.0b4.tar.bz2"; locale = "fi"; arch = "linux-x86_64"; - sha512 = "39bab8b71d79b58157278d3f480353d637c54cd5f13e75323d9eb2ec95980bc004e828c612f080414f85838460e82f90a490dba51d312a5147788fa7fc5c5fd0"; + sha512 = "ffb87a2702b7f3e8fc80038670a3cf45bf64b11442b129751e7e80cd0b328d6009190b2658b8a28562f8ecabed52a64f327fd263a0d93540f8f5f09250d4a882"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/fr/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/fr/firefox-76.0b4.tar.bz2"; locale = "fr"; arch = "linux-x86_64"; - sha512 = "93a42248cddfd6d3c4151c6f53d2ab00f9200537056005998c7d9e5a3e8444a0f47c621d850829bc0e0f0b21cab9611c1ad5487f0bd8b2a3d41da7d1256119a3"; + sha512 = "aacb42dde2e18082ce80cf3e1201c73aa9985d711ccdb4b227efb6619a010fc108315a5dbfe23a666c9d851ba397f117dbaa53e5b4b3d0730c85a53ed4b0512d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/fy-NL/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/fy-NL/firefox-76.0b4.tar.bz2"; locale = "fy-NL"; arch = "linux-x86_64"; - sha512 = "23acca680d2d1a585103a26eb9aa1d8e84d35865fc3854d3a2055ec8337d42aac3d2bb0eac21930816577b60eb4bd6d47580fbce5f7a5e47791dbf798c50487f"; + sha512 = "ba06e4276fedbc7212bcbf62ee1b0a1dcb7005a449778de5e70d8b99e86d83ed48d9408fbf016bf33dde135ad049c80011d00b5c72b0965ec6be7f91b759471f"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/ga-IE/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ga-IE/firefox-76.0b4.tar.bz2"; locale = "ga-IE"; arch = "linux-x86_64"; - sha512 = "05cfd56f53d033a70c1e1ec08e1355e281ef525f6389ce849c87b92bc6edbb4c953e054326eb094c5862dd74db64839e36ec31cf8ad3fc2248ce2ea309a40bac"; + sha512 = "9318d21491ab5ab6f2ef1c437ac12f92bd755a4857d873231920f5d67a36b81b4bc415baa8da92aed1b060aebd31013aa58e8cf845bd7cdc7d0f778526875b80"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/gd/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/gd/firefox-76.0b4.tar.bz2"; locale = "gd"; arch = "linux-x86_64"; - sha512 = "aab0c4ce13a418c9de0fc5655bb5d5269dcd07ac67e75bec66c419f06348043c2c69816704b770398e95ea0a65cea531600bf9322545bb40394b3c599b71cf58"; + sha512 = "7f323988df0077354e5c391138468af9a331fe4430a2e70b039fd599e92b7f0cca770fb1da21c192f96342d6a7430502ddacce7ed026bbdc2b2685c5baab64a9"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/gl/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/gl/firefox-76.0b4.tar.bz2"; locale = "gl"; arch = "linux-x86_64"; - sha512 = "61f4b6e54d98939b361fdce716be0701a51fe789085db0df4dbeac5a64258fb3ef3dc30ee6cdc1539d9facce481cdff5076dc19bfffce31f459e6377f7fa6872"; + sha512 = "b68fc3c3323ac5683ab9c168e870917a93120a0fa94ee6d427b384031764018c055ddc3ef7b9de6a1803057db2eaeb5581c45d4c52d6c532b380144148270411"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/gn/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/gn/firefox-76.0b4.tar.bz2"; locale = "gn"; arch = "linux-x86_64"; - sha512 = "fc77cb70f71f832ca7f9c6b6ac9e7e6e75737c669b229e3dd68c9061a0b5b239cd3e5d4c501a45b8b964c862230736c21a1431dffbee82dabcb4b9f7b95ed09f"; + sha512 = "f326eff5f21e139e2e7f7f618997e4a9edf9b3fd0dbccd610eea731a5f7fc8e75711007c10b39a277cb1de353870bd0e0cf96b3239034be427422ab575d03e78"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/gu-IN/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/gu-IN/firefox-76.0b4.tar.bz2"; locale = "gu-IN"; arch = "linux-x86_64"; - sha512 = "c5e4d9e031b97c61b1026073fa3f772158b803c688c8bcf35fb6725b86daf9a3fa970788b8468f4e95303adf73c400ba7b72c52e008d0b6a835867c73a583164"; + sha512 = "49407bb72ff464ea85719b074b07c7495398d6a8900b64a4b5df267c9a51158248d416c8eff83984a3ff801769c069975500dd08b20abc2b6af461a2323bf9a8"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/he/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/he/firefox-76.0b4.tar.bz2"; locale = "he"; arch = "linux-x86_64"; - sha512 = "49ab14bae6d4e7211904a8da54558e70276897fbde5252760bab17aabd845f6d961e79b79c775e338564b94534a4610742968fa8abf09a4bbd49cf7241b86f8f"; + sha512 = "c5ae0b8b5f05770c7318a3b50ca4808ff4553521c10a1f71f385f25a133213aac84cc73eaa2016b3f9878bd890b4896b9814b9dc3624a26420e1596132682103"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/hi-IN/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/hi-IN/firefox-76.0b4.tar.bz2"; locale = "hi-IN"; arch = "linux-x86_64"; - sha512 = "f7b89b02f01de7f9157160523c30388064cfd1c9bb2f24788e41d3f6eff706a76d50c562c7f270d3b1287d8d886988f42d0480f39694aa6d1be141bcd926c6a0"; + sha512 = "7471dc2b1f24b6fb34d8af5bfd5043d80a6c1720d0a843d20911dbfec9dcf60f0a8aa9dd8cbb80b460325763dc3cb4334a451d39218e3c3d4190a69eb1122dc3"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/hr/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/hr/firefox-76.0b4.tar.bz2"; locale = "hr"; arch = "linux-x86_64"; - sha512 = "d8319df0d4ca8c3bb403fca56565fcd16916e1057470046173853fc9d299a04226eb2e00a1cd14206d9e576b73f64722ad65e7c0dc6c99de498bde7ea5b35f11"; + sha512 = "f8e3d737b9563edcd3423851eedc401529fb67baa4f82b4dd4924e789b60144032c675c461350fc0fd86410accc89c3fb6324a3cc2524cc4fc74ddc24362f602"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/hsb/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/hsb/firefox-76.0b4.tar.bz2"; locale = "hsb"; arch = "linux-x86_64"; - sha512 = "bcff9cb8396e05dfe124fb3bcff48cd526322920ff38800988a1c82dc9adb6927b8df41ad52b9bd3cee18a72e6f065c8dee0239137b84581d555cb9a69e3ee78"; + sha512 = "8e36e7885f185d43c46abd2fbeb54dbbfc73ce2562874a6ecdf91dcaca9d6516884014e5b0640eed287ac578ab0283b045b6d2d5fb49cb6aa07a2ebafe620da8"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/hu/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/hu/firefox-76.0b4.tar.bz2"; locale = "hu"; arch = "linux-x86_64"; - sha512 = "a570bfc699c1e3e5e9bb733eb1b92a8d8d31313aed84d57039a20cf3c821b51de36523c17d03dc4e1f05d57e53b07ca1457317452170cba84bb5a98ebcd59c41"; + sha512 = "fbf5014981544ef8dc0301aa92a9e809d02a2e861b0f1890d227f980fdd8967db28d092ffec3d8e3d3eab70eea955c0d7cf6cff7aedad3ec73fb3c4d34c5d9c5"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/hy-AM/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/hy-AM/firefox-76.0b4.tar.bz2"; locale = "hy-AM"; arch = "linux-x86_64"; - sha512 = "72758745bc2fd3ff651d5df2ec3a7af7697f299f488da5096fe2b740dc2a3340ef29cc4ed107318533c4b1e7438688169f5bf2d103b307c615bbb9400a334091"; + sha512 = "d3e4b26d3f6555041311c226aa3e6dceb18d7867075bcaa22469ff4f1a880ccd2d688eeff20bd2096aec8296327aa43757a2077f2d62eca9453ad5f5946fb54f"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/ia/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ia/firefox-76.0b4.tar.bz2"; locale = "ia"; arch = "linux-x86_64"; - sha512 = "9fb6659aad83d753c244e4efacf55e5918692964c84d6428f069e90710693da7b82a47ceedccbfda32eba6f3a8948e01ec32695c9261bc254c4b7e1b8f84eeb3"; + sha512 = "34799d3a4b84f46df4ca28c62c57ccb131b43a4a7264b0c6ba1503a153534bb9b2bffed6ab581be3fa86df50cceb4103818b7a5baee8a3dc9af15b8205e85539"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/id/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/id/firefox-76.0b4.tar.bz2"; locale = "id"; arch = "linux-x86_64"; - sha512 = "c54aba052fe2f4d4e9eb08a69b0bcddcd4e3dc84ec6be643d34eeaa638e50d17658f530100577d5d6acc97dc7a5b4baa640bfd0329648390cbdb22713ef70911"; + sha512 = "82758675bbba9d27115f3b9eee456f2559e81cefb8261d94966f2a65d17ca452c684112e5d4a1c4fde2366f797cd9bb3e98e4fca05a4f4929cf3cd0b5dfd1ead"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/is/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/is/firefox-76.0b4.tar.bz2"; locale = "is"; arch = "linux-x86_64"; - sha512 = "01f552f0224e2ad316e84d3ac55051f1403cf2338d5c07767db463db05bc19728b7f096a3d30bc03cdf86bf81bc799a310241d33b8a4e7e5dbf3db61bfbde263"; + sha512 = "e9dc6cff8cff9963c6bf9987a459c943d694c4dc672ad817c87cf5b1620bf6f9680d9154e36d34c36e21f76b19312ecc7f8e90992d55541fa00abc623eeddc19"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/it/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/it/firefox-76.0b4.tar.bz2"; locale = "it"; arch = "linux-x86_64"; - sha512 = "bbe8a2f64dfb54a3a4b13d7bb14a0746a28bd16be46608744696bb12aee1b6acd0ad4991e2ff7867e9679a3bc51c8d47690e08705b6c860cac1e27530aab24de"; + sha512 = "0b341c669e25f728928425ce782af1e723631f4db4d76b628a79afcf239e8c6269f900a50c515b6e81a960de4408496b3d4217a544294712e4692146b0c52aa5"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/ja/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ja/firefox-76.0b4.tar.bz2"; locale = "ja"; arch = "linux-x86_64"; - sha512 = "437e74242ac37576dc01be92bf4fa57900d282b0919e4fac8a073bcfaf681ac2dfe58c2461ea18e912fcee85b97ff40df3f8f1c649ea442a557388544887f7b8"; + sha512 = "86957c5b4a95b9fe948b6db1cc97d4ec0110852e921e3dc2819724afac89b5b7a237892669845a039a860d779cfb4116926eda6030d1627f6dd16821e2c81b5e"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/ka/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ka/firefox-76.0b4.tar.bz2"; locale = "ka"; arch = "linux-x86_64"; - sha512 = "d7d4374c1f2ea6e2c2c40e3d425093065dcf624b50532116e576f60fad51b85251ed7284a63b4cc2cc368d1bd80eadce8d82a581789e02ca5249a2811fcccdb4"; + sha512 = "bf412ae236b800497b528303cb3f1e34b051c3e3fe235b780700f044bf61e68a7c7f112b72347ab8c27ff3dacd6cf6209a3e0acde3a931b29be53dce2f580ab6"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/kab/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/kab/firefox-76.0b4.tar.bz2"; locale = "kab"; arch = "linux-x86_64"; - sha512 = "235f9ad96c86ac81ee8b7fe9ade89559751969ef48eab577276e0289cededc708bc05eaa413febae13ca4eede96772915ab4b6726dd8bd5bc6b7ee545971c791"; + sha512 = "4bebea8af04166fc6dcf87c2f2ba96dc752adf9121e01e5edd9dfae25829fede3ea7bc1e5245ab4a4a98af78d4211e8f1600a25b52ce97537c809169f5c7602b"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/kk/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/kk/firefox-76.0b4.tar.bz2"; locale = "kk"; arch = "linux-x86_64"; - sha512 = "d443ac7f6ef50da01038c7bba9bf4a2eb12b53410a5201f64162eb2a287f5f4f16d3408715ddfa58471d53e0e58edf46778141118a9b67dea410af683540f82d"; + sha512 = "1c04e195889e0b1e936e3cd3d0829c06963270353f4ff4b4e7dbd494436107848c07c8c2753270f2db596d32140e90f28e17188266e97bd600212a6aec708cd9"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/km/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/km/firefox-76.0b4.tar.bz2"; locale = "km"; arch = "linux-x86_64"; - sha512 = "b3d35fb421b9dbef950fbea28e80b530c9433a9d51760d1d43043637a6b497a3e2a890de8b2eee9b911e60a95308669035298fb429648a21151e3f08dc6a32ec"; + sha512 = "2b10e6d123c6158c250fbe3b5509c69937576d4b8db6e6c36fe44b25309c099e46bc807d7039608c5610bbcdba84d4e7a37f25371d741690c62308b26a6f3997"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/kn/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/kn/firefox-76.0b4.tar.bz2"; locale = "kn"; arch = "linux-x86_64"; - sha512 = "65d0bd986874b9619caa455f9585d309a30a87b482d0375de27e46a70dc84b5ffc4d066202b7b597d1ac7b28e7be91550bccebb419c4a24a847180c62b7c46de"; + sha512 = "10d9af4c6d6983c521db9fddeca2f8cf3b975e57772ebc7c6ef9af92a0436137ea277405bd1a2fefa1e8fea05cfd933582556d8f7cfc629fb21ae0336b7b7ba1"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/ko/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ko/firefox-76.0b4.tar.bz2"; locale = "ko"; arch = "linux-x86_64"; - sha512 = "bf43ec6311e6ba2259e802b1ba569516d5117207738ff4259b2346b97ff85b8048e5c1a6d2b4b3c27a91ebc40ad6a85eaba84250be79e41f4570294448a1dcde"; + sha512 = "00ad6c4a883e7de44eca52f1ff79b5c7fab992fdeac271dd341e18c9d2a9060efa33c5425a8cb81248e11377426888b66373eb35f2d8a5ffd7fb6d942f83b5c7"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/lij/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/lij/firefox-76.0b4.tar.bz2"; locale = "lij"; arch = "linux-x86_64"; - sha512 = "1af356fa06b39b9d638b13822e82f4961a237e3587f8b671baf5862a87898f440f564f9836284af6e2e3e8b1f3ec462af1e9c9621ae51289fd0b1bf827a2bf1e"; + sha512 = "46b3475e7f24773799140517e53d14a02d00e2bb2e09543fbbed3797d0b098a93ba226b146864c83a3945815b859ee124b7e2b5cdd484ab6e72157787fc8d232"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/lt/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/lt/firefox-76.0b4.tar.bz2"; locale = "lt"; arch = "linux-x86_64"; - sha512 = "a4ea24a874261b51032a1021878ed2c0102bbcddedbe887c8f5893f428c1d3fe6cd906b3dc53b5b51654c35e03245244aba8a2811deb7c3cd9f6d0e2dae3bdcb"; + sha512 = "f1088be15822fca949331c2977aed82c3db214a2d0c97bd2494890d427efa5fde0846d2ab552c254ef804f0cfc8623bb6fdf9275d396abe354c73dbd9d138eec"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/lv/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/lv/firefox-76.0b4.tar.bz2"; locale = "lv"; arch = "linux-x86_64"; - sha512 = "a8f385bb407d498ca291d088101adf0a4f93b8fcfb9abd3fc36311fd8e4e36424f888f5abcbc1662ec4f7dabba891ef765b10c4a9dd8364898e803fafb82f7a5"; + sha512 = "3516bb6d83b565bc05afb340d35923e32265202c203f498519c632731fde4a6d1fa1d1189f79e50b315f8f135c383c4d07d5ff44861130146c3167e7d899a416"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/mk/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/mk/firefox-76.0b4.tar.bz2"; locale = "mk"; arch = "linux-x86_64"; - sha512 = "453a3e2726115ff8aa057445bf05fbd9bf5c796fe8efad9590aa09ee8ef3d70cd6de3008503c336770ea3cd259d226962c1a6e198bf2519742e14cf3846b1975"; + sha512 = "7b217348ff5e7618f6907f2d434e55b0a3f7a442771bd4eeb00964563d601b73254274fdfe1280c86ab3fd397ead7ee7cdd0366cf12486dba208ae08225b38b6"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/mr/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/mr/firefox-76.0b4.tar.bz2"; locale = "mr"; arch = "linux-x86_64"; - sha512 = "91bde3db18f77850affe7c3b981b8d233febe8e95d8528443a80c0b569b587d2e605ae6109206463ab273c9a28ca8db51cd6920ac30664cbbde9148fcab6cd36"; + sha512 = "fa059e39ea57570763a96c4732e4ecce3cdd7afb9486669a209f1bebe4b65a4fd22a179f893a05bfb20de97ec8f7c22b6106b5456e752ae7093fb37f36789750"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/ms/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ms/firefox-76.0b4.tar.bz2"; locale = "ms"; arch = "linux-x86_64"; - sha512 = "8e758ecfbd281cf443dfff4950b1065337fa92b1c47c4a73f9e78f5ff1c19ef46e3d1ea1e9458646a9beb6367dde72062144a2d1d2a94a0e0ac1b40a2991fe3f"; + sha512 = "0ceabb970350d20d5189dca2c57224f5c0e09ab7aaa90ddaee4289df038ad647f04a3476275582b3168f553998d452e8c5a04e099e34567dc03be1d62681c696"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/my/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/my/firefox-76.0b4.tar.bz2"; locale = "my"; arch = "linux-x86_64"; - sha512 = "1129e76bbd5ba3c96e8110b3b00eab0975fe38749da46846ddd37299f73840b987826ad80a3d3f2dfc4ad0ff38305fe45f736fa90c671162a3a9563eb1a1e755"; + sha512 = "1540e1335b36c46574b1abb80900ba622d8f2e59b0ac5e91809fef3ec16c1dfacde14be967449a62ba2f2f2bbc65fd3fc750be121da6d2b6fe5de7e30eaa01dd"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/nb-NO/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/nb-NO/firefox-76.0b4.tar.bz2"; locale = "nb-NO"; arch = "linux-x86_64"; - sha512 = "3aa4e29466e7d6e3e3d34a570d967d4c14b3fc3977912161d30a6845d75abe6ec745ed77d08716a11ad8a6d6e6656f1c5861453af27c10184795ec29bb22a386"; + sha512 = "02d16488ad3e575a87038143c77287216290e355c1fa274233099b15878ac10ae0ef4d95651145684fd2896c09399099ffcf329922f093803741efc8f028be65"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/ne-NP/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ne-NP/firefox-76.0b4.tar.bz2"; locale = "ne-NP"; arch = "linux-x86_64"; - sha512 = "4f9e880dc686e04249553c5be99fc9628105aeee67af7db88cd0662bc4a9fd37e8b9b18921b608e275d7e0b5f2c03923552705094e6749e0a3d0421e82a2bfa8"; + sha512 = "9fd9caa037156164fac2a9c1b4bc556a8d8bacda7fd2fd051cf71f8614e7a5a032b5e60168821c72f2b0c17b261f1ead1fc16218afeb022751ad39437686976d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/nl/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/nl/firefox-76.0b4.tar.bz2"; locale = "nl"; arch = "linux-x86_64"; - sha512 = "e271a6208e6b7fe662284f76f22482d854be8e700923c96b2426036588f02a52c9698ef05bbe8422dcbc4a899eac3bfe247f28146e2f64ebe0699669219051ce"; + sha512 = "ebee59e46e8a6982d939c8e20c7586e0c273b9c3febc51eb69ab95e36b47060a4c340d321e935b2812bc7431fabd586b7cd88d2bb4f03a3dae167cb2f9b382e3"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/nn-NO/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/nn-NO/firefox-76.0b4.tar.bz2"; locale = "nn-NO"; arch = "linux-x86_64"; - sha512 = "e7a2b1e038cae097babc40eca692da1a4066f01a18ad958378533ea03cdc49e917e13c18aae0fc40dfc99723e3f86b25b1ae35f2d400f83add63c4151a4807a3"; + sha512 = "57c77cb4b877ecc1cc0cf37064c0c19aed334db2cb3d16460157941baea6d67c9459e68057f75f9108b227777e724caa7cf15e9eea5a9003544a864ff5a0f5e0"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/oc/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/oc/firefox-76.0b4.tar.bz2"; locale = "oc"; arch = "linux-x86_64"; - sha512 = "d9c3701024ac70fb83ccff3e2b843d224115608b7fad1d6db672af3716e9fe7a80efb8d92a366d085376dea51daf099299acca629113779622b39eb19750dfca"; + sha512 = "8b184fcee7e71be29ba02e615fbd9b050d8bcd2578639b08ff013a29e3240bd2f2be72ba9647edff2f80e23cf9723f14bcbf3d35b589d4f340f14888cb7daa06"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/pa-IN/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/pa-IN/firefox-76.0b4.tar.bz2"; locale = "pa-IN"; arch = "linux-x86_64"; - sha512 = "68d13fab28380f7ea29898dc2ff91d6a2d591a2bccf0498023494466827b4b4eb7ca7769b93e042dc855994d590d770b80b9c5d1b636f6923534a595cf6d356d"; + sha512 = "6a56a3ba86d28fe28d488ba2c5f3daa1e994b3b5f801e505ce5006cf78d40462d96ba4c9793c68cc23c687dee7aa936c5746a8838d54e80255e9aed9b244dc5a"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/pl/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/pl/firefox-76.0b4.tar.bz2"; locale = "pl"; arch = "linux-x86_64"; - sha512 = "69b5807c0cf3053f87e5a8b2fe51dfa40146685afbab623a7824f6fe6fbe786dbd17c683d697f6b61adf78f800b84c0c5a16e7caef54a6b3dc02d0ffd5ca89ac"; + sha512 = "cecef84e1c88e19e4c5881d07b842b9d6ef77b1293e304df4eddc68a9533061929582df8d2842ca9594072c29e0d564122ceb1ce9670afa7ede0f33cdf32da62"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/pt-BR/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/pt-BR/firefox-76.0b4.tar.bz2"; locale = "pt-BR"; arch = "linux-x86_64"; - sha512 = "f9ae02b7c9c72a97b8d28ef1e1196dfbbd5ae30acd82939c8b7fe37a1de0c73492ad286e4ff05c0b5f8c2784e0a1b2b68445b94bf765b501c062f33ad1ea8e61"; + sha512 = "80dbe662dd616c6b1e5e10be423f906463dea4e6a7c894ed14a21ce26ce544c0fe258cb6a7c9227335d18f11284bf082988a746b66243b44cef6b34d10cb0f56"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/pt-PT/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/pt-PT/firefox-76.0b4.tar.bz2"; locale = "pt-PT"; arch = "linux-x86_64"; - sha512 = "e89bada391d72440f6fb60933f33e78642a595dafb277d4d20768fd418c6049f6969cad8d1b95c76670cf7a033acdf438348e0a6efce9c699a7a2276d2b03f56"; + sha512 = "5c30b271b67ff97687e833c083d789ac86a79da984b3ed7ca3f9330f2b4412797edf5dbea0601d6af9cb0775cd571a55451d4fe2f2ec48c1738c08c3c93feaf4"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/rm/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/rm/firefox-76.0b4.tar.bz2"; locale = "rm"; arch = "linux-x86_64"; - sha512 = "281ff5d841f3dcf7e2ef42a159a5a43426fca475bda02f70a34b7fce50a0e313f61cb11d25f0876314aca3f3c285504098c60f0e79385653f8b877994e5e5275"; + sha512 = "d7e06efb84135db959d28c59d6b258b658bbe2f0961b1b3e0da796d3dd8ce4f2e726c1d719a8b111c2388285ec88528e6ee2d11fbbd6fe07ea01606984ab25f9"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/ro/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ro/firefox-76.0b4.tar.bz2"; locale = "ro"; arch = "linux-x86_64"; - sha512 = "62bd91413af9017d6d4b70145f4c763fa7b35d78719ed14ca808ab3a38a4a3717eff3584a29b4c38de05c78365351cdc5a07bb3a56d46c65ee5447a3a0226276"; + sha512 = "fe9aee440439e425a99780033da20ebd8a0928b30d862444ffa3d8d8a0cee012af0fb998de4eb20604e260d4d0b0726c20646d3bd3064131f32ee7b748e11562"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/ru/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ru/firefox-76.0b4.tar.bz2"; locale = "ru"; arch = "linux-x86_64"; - sha512 = "40e917d1a07ebe8a1cc6af2b399187f4f918ac3d509eeb8c6125147313b469847e34f8b9e705b400123d4327ad1b13f2b4de24f70e33236f7bd4260b4b13ca94"; + sha512 = "dc89313d47f0ca64de20fdd81afe30d797852333040f72243d8ff7f6713333dea6264bbb81cd5082ad3184ae463348816737a327ee2de2f7c446b32fb6bc4e80"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/si/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/si/firefox-76.0b4.tar.bz2"; locale = "si"; arch = "linux-x86_64"; - sha512 = "58874b4198c1a7b374ed0d72cc223733889a3bad6f717151dbfe7e584df3059527d6a4ba055575d1c2dea74393f3d70705185e0c2cc589306c5f1e62a31aecfb"; + sha512 = "45719657f156ce045666b8f2b3a3809d37eb9175b8f4750ee97ff6a2196236de4af8d3d1b47c2b67bedaf0e053111487a5682ea04230fc566dd2ec28540c29c4"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/sk/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/sk/firefox-76.0b4.tar.bz2"; locale = "sk"; arch = "linux-x86_64"; - sha512 = "6cc148e5f962006d2f5a5651c99e170b706c0e51ed82736aa51a3a15e8b254a67f6df6d7067e261d0a269e71995e1555de7fed81b02776885dab67881cd17cfd"; + sha512 = "af8f67818559137004954538f9b977516095abe7c2203ff0fcb3e942bcb14294e3e87db6a3b623b2f711eaa7c30fe98019f4c674fe6e735bee5c1d5341b05eb9"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/sl/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/sl/firefox-76.0b4.tar.bz2"; locale = "sl"; arch = "linux-x86_64"; - sha512 = "1abfd77e7ef638d1d1fe1e1d8b31631f0a93e982c22c6affc9fc9af77dacc81d53afa95f63fee1a1b444ea7db88826a4f6a851c87b6518f2c6a77329c4aa2c8d"; + sha512 = "2bf61fd712342493e47c134cb97cd7b174658551d22319face8e3d9df3c89081fa5326feac3d78604bed23f2a334000ce6e08967f36d4494fc98551bc2113754"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/son/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/son/firefox-76.0b4.tar.bz2"; locale = "son"; arch = "linux-x86_64"; - sha512 = "80e7fd5e34fbf115b4462913449d58e8bdd725f45120d068b8ea6624293cc944ddc218e3854b7e6935675ee1640446f063858515c70bc1a7990a3c10ac812529"; + sha512 = "33d57aa16bfa5851ae02887f845ea442ddfb78135f1af37f503503b3ef1057b74e631aea2fa8ba96629e5f13d3fb26df32626a11b78f589f39db5901e4a17623"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/sq/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/sq/firefox-76.0b4.tar.bz2"; locale = "sq"; arch = "linux-x86_64"; - sha512 = "9e5088a05c22a448bb1212d2296d0b8690189d6bba8053661445e891b6e8c2716ef76a82e6659eda9c434f92a7f063e13845ce20944df571ff318eef764c2ef2"; + sha512 = "813e08a3c6eb60b352ac4b62e7ebcfd9581650b911facfd301f6bf716ca8031283e7fcef9b9a10b2ef4ec52d19cfb2870b24fc0cfbe69fc87bb4457d8b696323"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/sr/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/sr/firefox-76.0b4.tar.bz2"; locale = "sr"; arch = "linux-x86_64"; - sha512 = "18bfaaf378edb31b99bee33a60ffb06138dc6c7ff34c166de30255ffdfbcd7c2cda214678bfd0e11d4f5afc4a666d6c3ab7d1ffc92137abbd08c9e704f4d1d7a"; + sha512 = "a7c93cdc4e45d826e4ee4dd62f6767192616f8b8efc5200137d8290d5bc6cd54cf391390e2ed831195187a0be14f539f8156548b86f4fbbca3c1951a3c1961eb"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/sv-SE/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/sv-SE/firefox-76.0b4.tar.bz2"; locale = "sv-SE"; arch = "linux-x86_64"; - sha512 = "f27fed18480927afae490b8f0c2c4c925045e56bb355404ef499289909e256fafc694cf51f030fd69ea395ad5b5e593f991ac428274af745bf39336d247e868d"; + sha512 = "ae6ce8e076ccbfa89a653d7458fa395cb43c8bb4926eee153cef0f7b2eae0843d3c54358206d9dcdd2ab8deb4f5416f22641c71c7665ac66f9bd5559a1ce3bce"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/ta/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ta/firefox-76.0b4.tar.bz2"; locale = "ta"; arch = "linux-x86_64"; - sha512 = "200b41c6db82f1282155cdb348b8496bc61c9e248e6049e7dbaaec3732b4711f32b38b3ea349b47f1228bd8c712b15db3b9296babc177169795fe1819144ca93"; + sha512 = "853517617c258d3c441cda468fb3d78a122cd75a369265ce2b290721e08daa1b681c8c84793339883bf701b0e7c5a24744c3382e2bcaa67de92b40162e420b9f"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/te/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/te/firefox-76.0b4.tar.bz2"; locale = "te"; arch = "linux-x86_64"; - sha512 = "193a3b9cf98de69ab236f9efd59e23deee25eec41e409a93c9949789d242957f2b58bf724fe3effa28111595c9d1e49a657a5d7f6c1b77a285386b712bee67aa"; + sha512 = "e5e511d2c19a5c289d337e5630c1a1d3aeb8edc5c6c5192fa8ee36c041c5ba1a344cefd5331c605335325b34d68609c08ac57816d33590c6f9416f50d0a60a4d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/th/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/th/firefox-76.0b4.tar.bz2"; locale = "th"; arch = "linux-x86_64"; - sha512 = "3ab9a77fb25870271c9cc415c31f1ec0258a66b3f1855c761dac367cfb509b6c73630c88f022cae271cc553adce8ffe63fb1bbd489067b92772286fbcd765c16"; + sha512 = "498f18339722286b024b968e0db485edd8d16cd944a1a84c95698695f4b0afda99faf5aa23e9dd893ffe0cf89fbd69f0ef34d9c7080cb3aea06178a38a1bb2c1"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/tl/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/tl/firefox-76.0b4.tar.bz2"; locale = "tl"; arch = "linux-x86_64"; - sha512 = "f386b2d32e2656ef8e9a0afe0050eb7c8d8a1a00b92badeb6b5c2c6d8e046a2ca7b038677af56e725d15ca4c6111a04e1c929cad0575a034745e2476497c2cdf"; + sha512 = "d04963a4247e8c53d748b9d32d0787beea159f1da8e31164a162de4090fa521d6a7c5a598a4874bf8b2be64733d922748a615d08871c90ba693bf4cd82d1398f"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/tr/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/tr/firefox-76.0b4.tar.bz2"; locale = "tr"; arch = "linux-x86_64"; - sha512 = "802c72564706b4e447f0cc2835046b44395519d0c2d7fcf6c8f8478540649362a49144dba942e1c1e33e69ff69708437a985665389ea2b1307f8c386690f9664"; + sha512 = "302a68064154f22e5bcff55da98dea6fc94abedb839f572db61e9542bda47021c740b51baf57741368a9e616e9a3620dcdba96f55f5010d783da1cf1e9acf37a"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/trs/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/trs/firefox-76.0b4.tar.bz2"; locale = "trs"; arch = "linux-x86_64"; - sha512 = "60f8f09625d8d2633ca7b08fa3f66573ce0d23035f16773a338fc96944c66e6bc77af36b128589634fc99f86009bb1016ee2d1ed503407c2ff085d20c5e2fb12"; + sha512 = "26ad41f597dc9addebdafa5632e0fe930e6b704e65b8b8058773de3954e1877f9b5be4856a53635417d7027364ce4c70025140caf53605c18ddac59447007099"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/uk/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/uk/firefox-76.0b4.tar.bz2"; locale = "uk"; arch = "linux-x86_64"; - sha512 = "d3b63163cacd6ba99e3f7dc9d5ac81e98155e77c0315ce9adc2e23cfce614f67b519ebc5ee8aa4f1aaf932c7f619f828487f41c6a712557c3f8289f9b3205f2e"; + sha512 = "d5d63e51c3cc11ee58ee0ee2c9190a66d4cf136af6aff31e2db28107e8f3af5d492d92e5e869b3bca570f7ba9f4fb513df6b21d064d75d5d246671dadd050e59"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/ur/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/ur/firefox-76.0b4.tar.bz2"; locale = "ur"; arch = "linux-x86_64"; - sha512 = "ae76e9dfd1b22a7cdd15c4b4b8b2a508168359cbc6b15ec9b52e489f2670799e1056eb6d7fd6fd28680b721a4912bba982ab259a02b050834e31030960b2a8d8"; + sha512 = "e7a3492d0802acc3d3db2410fc57282334d16405ecc6ff3420c29c6eb35ba313f3e46dcb7f0fe830e0869b355138f07ef51b33caeccceada7ac7e95d69cc4304"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/uz/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/uz/firefox-76.0b4.tar.bz2"; locale = "uz"; arch = "linux-x86_64"; - sha512 = "6216b85a6b4329f378d057d72418a283c4e9e1454f918636c7dd0845e63a00827259397e82c7875d1157bf05dba32d706cef94239cd9ef6ffe03fb02255659f7"; + sha512 = "397adc911b685b261cfb38f50ef9f107db83c3e21c5d0f3435c47b345ea007c9f6cd98f8b0353c804071874e3d5bd715d5942c484f1062ad8341a9a781b1ce93"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/vi/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/vi/firefox-76.0b4.tar.bz2"; locale = "vi"; arch = "linux-x86_64"; - sha512 = "ba8fff9fdeb195f42409a10d0fdcb6e8889a6cc49fd3c787013109b32692e19109b9029d69a8458b05b51d8df1dcf085c818a0c1ff5a48d32f68d251e41e9681"; + sha512 = "049675506e157ec2d3b7af91a6bce93566c990eae6334620de4fc1c9aeeb9bca01cc16b00c79d0396ec49470759855b690fbbfcd3b4b1c5ee90df70efb9eacd9"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/xh/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/xh/firefox-76.0b4.tar.bz2"; locale = "xh"; arch = "linux-x86_64"; - sha512 = "0493e6e0d685809ac5f757a829cc0ca0564d8d778dadec422698c369f9aecdccf94be594919273b9bdcd23677f0e8a760e01dd40439262c98c9ae5f17b7888cb"; + sha512 = "08cae5e6d2b4a826e4e4c6485a793ba2a991c1759498641c63f4ffb8334c68efa6190bc7d33fc8ec83e8cad8299ca81825dfffa7e20cff6179e3fac023a9d3c9"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/zh-CN/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/zh-CN/firefox-76.0b4.tar.bz2"; locale = "zh-CN"; arch = "linux-x86_64"; - sha512 = "efe3823502fd81587460486dd7df33fbb878e8dc657c3d65d8e3f112374d3452abdfb797eb95ea7d4e3fd7003a2b906e78643ff1f344088e9a8a577f554affb2"; + sha512 = "c989ef3602539795503af56d6ebbd426d4985db0c35be60eb911b1f46ac20b317ea15df3d915fcff361a22cc6ec654c5378c615e5b5271b3f436a2f4713af59c"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-x86_64/zh-TW/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-x86_64/zh-TW/firefox-76.0b4.tar.bz2"; locale = "zh-TW"; arch = "linux-x86_64"; - sha512 = "d3561f2f043480c2c6bb2e0d455a752c2a00f800fd049a21c80cddd03ddf04d184f3bf352446dd3a858bcab5a42543992ebcc86246815205a455095b5884df75"; + sha512 = "8c3479944dad80dc70ebb285731ee8df051fe63f8d0a5bdfccdce5315ed07e54bd66e4b2d0c7b75b575ff63dd2dd80117166382e389c21a581bd848570805c70"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/ach/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ach/firefox-76.0b4.tar.bz2"; locale = "ach"; arch = "linux-i686"; - sha512 = "7b9cf2172a3e4a7e7bfea4ecec10adba14944dad36db06d3ed60c36a5d893c67a0c6eb9e65f612040e7c3e2b7a9e966c53be7c2d5faca60e37fad2c497194d44"; + sha512 = "547a8dc40bea2ed9cd47acd06c1f6a0e12a0d4631adea0193d8f0ef8baa41bf4cac9e53b7954ade543ceb85cd22cf0798b7212b2a91d795782af5f2575b4c729"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/af/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/af/firefox-76.0b4.tar.bz2"; locale = "af"; arch = "linux-i686"; - sha512 = "3dd2f4ac297e6e358657f90beaac9093816d339f84c21dbe3f87283c6712b1ab70c6fd9e70d05bc79a8997ba314711c37ace35c7c7e8a4140b9da99d953968f0"; + sha512 = "cb853435e91129651532055c5c5293dbfc758e806a316ade7023ed0f8e646594834ee18d470fec2372f954e1dfad3aa8ebe7f9457cb885ba8758d55e1027e8c0"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/an/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/an/firefox-76.0b4.tar.bz2"; locale = "an"; arch = "linux-i686"; - sha512 = "e04e6875c8873fdeceae22c486b0a5f718085f35a5e46b4f3340ce4654709e4421060be73bccb315db4ac4a93991b5e844653b19518fc122150dd6c6ad84e89f"; + sha512 = "6be613e6d99cf74fe7f08c109805b8847fc8a4e6ef3c972baf6bf2ea730f4eb6666eaec2606560f2d14db649d2148b718d4882af9aad894becdf436b08f6112f"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/ar/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ar/firefox-76.0b4.tar.bz2"; locale = "ar"; arch = "linux-i686"; - sha512 = "0c1728f66fc037ffef1ab0f68d5a7e5ca3207467ad03981c0681981c562b6f51df0026b8b323dc4f0e15ccfcca470c1705776353c0b2d4802aeb8879fe306548"; + sha512 = "28d5fb36ecc45d3ce09087ed2aa2da7431334f66a6b183187d36ac9309f9785d32e1d59f0bb14ae281f1a66795f546507269919fb001ebbb72fadeb79c26df69"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/ast/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ast/firefox-76.0b4.tar.bz2"; locale = "ast"; arch = "linux-i686"; - sha512 = "1b8fb16468b2db02e8e16d6f11d4924960f48dec2996ff087d94106d4b80c2250acc6e07f510ae4f7db65f590944df8a44eacede55deb915259fa719ad30514e"; + sha512 = "8384154a51d40037a39cd4fb4bb21cd9c7174ec75c9ddd36d79f35bea00380b1ec74eba449b240bf0cd66ffebd014c9a948d60bdcde7efd67e5136d047b75bb0"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/az/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/az/firefox-76.0b4.tar.bz2"; locale = "az"; arch = "linux-i686"; - sha512 = "500ea5cea770c8d8e5e89d367e9239fe4ad065f43ceb2c1ecb2ca997dc27989a489586b6f387149d6d97d204a2cedfef7ee3eb745bc91d140ee8ff162d6327be"; + sha512 = "84d902069d997ea001efe7f836f25d78fe921f40ad1c383f3d510c34f12219c0ed372a1aabb27c5b43465dec2647babfbfcb3e3d4e2916fe4641063df4547f46"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/be/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/be/firefox-76.0b4.tar.bz2"; locale = "be"; arch = "linux-i686"; - sha512 = "5c258e46db0b6a22b6a658dbbb4a321226b54ca66fcbf8e41d345ace9c1fb36fcfb415d06dcbe0da14cb9ef9d952146f232ebe962b975d5a45df70b30e0b0b50"; + sha512 = "b973756f954d83a87e2bf9b114c5b5631b42819abb1f586c6ab9fe49b2599fb9dd5bffc995453113499db2bee449e2755db61cd4957bdc6f5be7514d62d7eb74"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/bg/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/bg/firefox-76.0b4.tar.bz2"; locale = "bg"; arch = "linux-i686"; - sha512 = "a970851cfb8c1231399d2fadd15390f7a7a9a317169b85543d262b7c1003c84e11140fa364312938271c0288e4a10804628f6ee286dd68d1bccf1cabf4c015d8"; + sha512 = "a5ae19c797b3c32f20db99777cc8b35d586f9cf2e5714213cf4322df140c6fc87ff2cb03c0de88f9e48395d808196d54a1102b659f9d574f0c9698da5a7ca7a4"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/bn/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/bn/firefox-76.0b4.tar.bz2"; locale = "bn"; arch = "linux-i686"; - sha512 = "a8442613f7aefa8bb4ab963e2271612cddb102bb8274e09cc80436e85ad606fa3d4938188c85c0a10aa01479976dadc4c4d6c2a17835980191e9dfc4608a9482"; + sha512 = "63d6f402dd97e0728fe77428b13a3532770e13d7f8099b853d370d0db45aa9c1c753b2523c25a764cf810cde0c50f1db932e26416b9ea38eac56dbe89e7ea697"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/br/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/br/firefox-76.0b4.tar.bz2"; locale = "br"; arch = "linux-i686"; - sha512 = "a3d32c2ee9fc1abb86162f04ebc7d13d3bf03d1596874c2198e031e2f993d0140fdbdc47f22bb7c821ade80f2cf12471f9d8191c5b7f7c87849a5577e4638531"; + sha512 = "7fbdeb3a3c1f5adb723dfbeba22390091483155b30fcfb3f80d58b47e181f7b88bb0870c5e2a82b638baa3771ba93f776c47f5e98f66dc40ae9ca58933ba311c"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/bs/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/bs/firefox-76.0b4.tar.bz2"; locale = "bs"; arch = "linux-i686"; - sha512 = "a5d54761563e2a62d0aae4b946b39f2d04d57f2a1245266c11bb4bd872d73cf7738c3a9d7c2ad47ee4c13175bf4f142e45a3a7f62582bef03a946ae98b7c038f"; + sha512 = "7fac00f114f2f792bcc4c42febd5b8a5a1a7952a7acf2d596c4ee4125e82e510d956a7de575405c98c0fc776eee4b27ab24291bb4f5db6d5a955be5c0d6c8dd0"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/ca-valencia/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ca-valencia/firefox-76.0b4.tar.bz2"; locale = "ca-valencia"; arch = "linux-i686"; - sha512 = "0b6d18b4f6cc77704997a7fa9d81dc58e70c1f4c08403164b93ab915683c7005410f5f90204a8e609a54dfba5cdaafdb268450d075182efdbc73701f07adc1ef"; + sha512 = "75b7d3222b5d3efba3d97ebe44b1b28e82cbfc441689776386516a84d42075f1ced4b80856c1a8c87d3cd8101376cf747a4a5eec0f442608fc303862b34a7193"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/ca/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ca/firefox-76.0b4.tar.bz2"; locale = "ca"; arch = "linux-i686"; - sha512 = "c65b0437b82cb4ea3b1eff84fc75ebcbf65cbaae22631471fbc8ccf4e2a6ff846adb88e4d93566fcfd394fd4ef4c4d15e63e41c11ded3678fe69032765dbd3d9"; + sha512 = "23e050317e92745044a0a5af3b9455a8f112884fbdf9e9d701ae5e8c614cc3d97a4de06ab10e2ffe22344c38108e575eb8d8ae6a1f3095ac1ba15bc6a37b104f"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/cak/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/cak/firefox-76.0b4.tar.bz2"; locale = "cak"; arch = "linux-i686"; - sha512 = "2eb289a7c474279422dbd4fd6396f08946790e3ec98a6c5c40e217efc47a9099d16f01205027c995c0441e5787f48d95d6c40216ced393219eca3d55159a5459"; + sha512 = "58179bf33afda4d10fd6dbb9143f6724ca8ae5bb6122b292eb48773c84458cbcb85120c2ea87c6a3f4f4878004fdb997354b571223a35ef9cdee23902292296f"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/cs/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/cs/firefox-76.0b4.tar.bz2"; locale = "cs"; arch = "linux-i686"; - sha512 = "bf15d558e81ae3a766801b532b9cc2ac5511b2ca6eafaef012a4f9dc8fba06c6ae0e906541db01b59d566453b916bcad79749e1b036573c4a01a04a95a0dd60c"; + sha512 = "41557936332f5c966a1b51d8791699783a162eac46b14e22fd0f79abe6175a31fe0f6252270b51c816c88ec15f2982df17babec0101a0eecd6cb25a8ae900dbb"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/cy/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/cy/firefox-76.0b4.tar.bz2"; locale = "cy"; arch = "linux-i686"; - sha512 = "66883ec6b398b6071b13c55027a3e3343e3e71b6de5ce7ea72c052c9991636a09737509d8127d2a27fb6550e0937ea21954c85d6daa8492c87c2287d542d73ad"; + sha512 = "1603e2dd3cfd417b12c0a6c933708835505cc8f5e0e827fb5072af0f440a0dd0dab5d961d58fd712776d58e803d1ff3dab179c7ab45a30e08be6c895fa1c1c06"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/da/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/da/firefox-76.0b4.tar.bz2"; locale = "da"; arch = "linux-i686"; - sha512 = "d496d35be0076336a5ce37097026959ff8ce391c07b7ecdaa543d45740af18e3d466470478c9639c4f3b8a5d6ea76dade7196f65e411bd90e5dad9ec1c10a258"; + sha512 = "4ba2198d4224c3b2b609c8471a1b8d6bd47d51cb42caf81e7f1a4e7ee0220ba459b4d2a4d6270d5ad25806d8ab0b9012cfbd9e3b242b4f4be54f0c5f7885ff67"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/de/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/de/firefox-76.0b4.tar.bz2"; locale = "de"; arch = "linux-i686"; - sha512 = "7df38aa573d796c23e00715ca333c7a1f90d560513c17ae35afa80ddf2783ed4f091cf2e0d8b25174186008ef818e5aabe993e2f013af7d9b61fb0ad0c954886"; + sha512 = "1a3e1997151a4a74a6e2a35037564c2189f4d0c90359084aa387212177ac3df08e8114b514bccbeb9b7b63dee5eb8028614c08d680cae0529784cb471864b380"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/dsb/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/dsb/firefox-76.0b4.tar.bz2"; locale = "dsb"; arch = "linux-i686"; - sha512 = "d72d5940904da04577dd0ec0f90128bf4c89b8261f54ade9a265547957fa9ebb7687ade1503a0b8bfbffac094953cd0d1fcc836e26203545ad497221152a2847"; + sha512 = "6e40f39108d5f00faf81793852de22623574fb3f201080a2f9d8e3c31de80373eccda582cc0d63adf6e86c67748ece5b5405e880e6db8636428c3139aafe156b"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/el/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/el/firefox-76.0b4.tar.bz2"; locale = "el"; arch = "linux-i686"; - sha512 = "d05716e457a5eb13a51b0bbfda6eba4f9ce775f567e4750831a1a3fe2d5d2beb8668d80dd7375e7b4db2603d589a6209634d6704ef34a851f1a8a750d1ec40db"; + sha512 = "f08984d8fbe3b5c585e7e361c1f21b7d6374ee3e58a12aee599444788f89bb570d277fb178a76e773917ae4445904e3d3cdae99096d8e1b8a188720a161d436b"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/en-CA/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/en-CA/firefox-76.0b4.tar.bz2"; locale = "en-CA"; arch = "linux-i686"; - sha512 = "0821949d86082a2556ed163fa2c977e79293f45b6dfbf2517c3a01cb4ad5d50491e6db900106c4141a93461cb456d613c5be3aeb9afc8d4f502df0fae15c1b58"; + sha512 = "6fecccf3fef10d99fcdbec8674ebca50b4d2a5708bf423778266a440fcd5f7fd4ea0255808d86567fa26542c229bd4ba06448e40ee0faa3a5dcb2b36d694f1ee"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/en-GB/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/en-GB/firefox-76.0b4.tar.bz2"; locale = "en-GB"; arch = "linux-i686"; - sha512 = "df4bba4600e6100772a373c6bad0064c0ba3d04c7db50a2a8780bece46666e254402d3cfae20114b29a1cadf19d978d47127c0e39619d40876b0fa3df4b2a84b"; + sha512 = "d9336c9eeb6678923c53a21873760ecea096262bf4b3cab6afe69c1cf30d57fa95c8cd496508a80bf1538dff3cfd4e68ca864ba8bc9d58906b4155011c5adc38"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/en-US/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/en-US/firefox-76.0b4.tar.bz2"; locale = "en-US"; arch = "linux-i686"; - sha512 = "56f6fa58f059e2c757e564a3cc25121d816c2afc347bb47fcf2c5de23b384cdaadf291f02636aa179eab0e6ef185b3b79653f5bdccf6a92d825c3a7c2c9a11a7"; + sha512 = "fb405ed1f6c6429c98a7be7046e8a4e39b594febf7ef11fa163c863c3daacc887142cc77d7da30f709ffc6384c2092896f8ad4dc69665701b0c83013374f8a8c"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/eo/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/eo/firefox-76.0b4.tar.bz2"; locale = "eo"; arch = "linux-i686"; - sha512 = "9ff03e25d258168238f0d6c2654ae4896fad897e0c9b797911716e7496846b853601e0dba92db5b1c86ae94476752d9dd5714242dce620cabb5ebddaeae062c4"; + sha512 = "804001240e8a6809312634de4afc2b8a055051e9c8d399dd25cb96f9bfeefdf6b9526c8cbee670616a63420ff848873b6d8d1cedd8496fee38752408bdae21e8"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/es-AR/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/es-AR/firefox-76.0b4.tar.bz2"; locale = "es-AR"; arch = "linux-i686"; - sha512 = "05be15de79e1c2807427a927ca3d580d3bbdb5d4df0e4be06e23462a843d125df22471d5793be410a24b262b1796fbbaabcd27cdfa12cd0769b68967ebc9f5f1"; + sha512 = "b98d387cc62b3c87acde8336843c2111f67f2ec425ad78ad1033a150efc253561d9f12a42a61c8b2db5a926e9ec18dd466ab81df93fd12cf8342de2f2baca21c"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/es-CL/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/es-CL/firefox-76.0b4.tar.bz2"; locale = "es-CL"; arch = "linux-i686"; - sha512 = "22e4bb6047ed7ad134ed1c33880e44dc7067a2e1510452483004075763b30f91dd1221cf3ac0069e2f31cf0a360305bbcbd116e62133b56ad509ac3c4035bce6"; + sha512 = "cb5b8275ef7d62647b623506ac73b87e4552ab7d946838a4bfb7e690c8976d4acf7862a7bcd6642994d0c42c510e6aee5f3177a6a7d3c566678d5f0897b53368"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/es-ES/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/es-ES/firefox-76.0b4.tar.bz2"; locale = "es-ES"; arch = "linux-i686"; - sha512 = "0930851d3c29384c619347fe6098764119b1a994640c744ab57f2b727164f6596b7c2c160459e483a9947fbecc55d6a1781ebfe52e8b6ed28403f3464f56c98e"; + sha512 = "8c0bd3e0901696be921b440b03c919bd77cbd15f22e3022e0ac077db4b8bd9df34ca8f321f8bc27d459b71f89e19ca5549b140a7cba27014f4b6fd68cff5d214"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/es-MX/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/es-MX/firefox-76.0b4.tar.bz2"; locale = "es-MX"; arch = "linux-i686"; - sha512 = "ce7b0b898fdf70b6751ee95ca098e5b1bd6a8798313cb1cce0201d8457bb90b10faa2ed2bcba04113e10a76f92f3b3b0b8beab7771fefb9cf2cdcac3a4385041"; + sha512 = "a580888df34b1062e6dcfd55112a61de1f6c031eb9dedfa4e8150f3b02f907b222e8f8ec570ffe1f21cba29a561f2ffe51701a509249ea3ccd6f2b01b6c00563"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/et/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/et/firefox-76.0b4.tar.bz2"; locale = "et"; arch = "linux-i686"; - sha512 = "0d8961cde7ca4bcdb16bcf579158ceebbff44f07565267765178ddbb9a5318e58d60b2f70bc1fe0a939d06d1705f986770b9fb17a8d22149feb1d66c44e89d38"; + sha512 = "03ce56316a24ff43f9070205eb154254f139d1791c46dc7d37879208ac59234494cf0e584f43e2c483d1a1516de5c3d8b8d0debe551f377df2ef9d7ef382e6c0"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/eu/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/eu/firefox-76.0b4.tar.bz2"; locale = "eu"; arch = "linux-i686"; - sha512 = "f77101548344ab87593ea80be86fcf6f27ef6db48f394db549815c1faed4fd439a28ba87321befcbf79f0c9dda93169abd1cf68649f626da694032fb291a0434"; + sha512 = "eeca8dafce55e70b17ae42e8f3c807207ebfc2eabec44934f0f2984214426230fc498f3a683d2e4841787352ba8e52e37f5c70a0e5e78217e9a5516371a35a9d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/fa/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/fa/firefox-76.0b4.tar.bz2"; locale = "fa"; arch = "linux-i686"; - sha512 = "c65ad5b2726dc17ae327ee02704ef1eddf29bdea9b27096ca571dfc4f12449a4f1a6cb8550e401d6ecb106a2ac0ffdbd536a12f41d6fb4944012f106adb0b72b"; + sha512 = "d16ae96bf3c7f4f31861814194f348737f4b02746de6acf0eb377eba8c3d66e36cc53b0cd1a0606d88d9604989bfa984d1897b504c38b06ee562a326224216aa"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/ff/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ff/firefox-76.0b4.tar.bz2"; locale = "ff"; arch = "linux-i686"; - sha512 = "09baa6e459175ca1042b489b63c0f6e8248e4039d6addb2d873dee777cc94b5e3e4b0c77f78f8462239f6886e74deeaff528c271a03433589caf4db6c2202c4a"; + sha512 = "9aca0543d152c6886d706e759b174a490a52ff897d0a4a455b40c7eb9f9e6cad72c720fce6f63991e995e3b50f4517a5c3640aca81f12ad6e0d4e55c84d78773"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/fi/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/fi/firefox-76.0b4.tar.bz2"; locale = "fi"; arch = "linux-i686"; - sha512 = "52d3945bb5f16874c28a37230c0b2a593d368842dea2aaca9cae6c017f182eaf165fb3658a6a1a0881d54c88fa5dd7ff42806f8eb95653095364f66f0598b26a"; + sha512 = "40cf4a38094db6df21bd188e7ddd008488af74d502d2a151e0761c37ec8c31040863f152419902b38ce28b3e70033795b7499374e38ec354f690489a18e45316"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/fr/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/fr/firefox-76.0b4.tar.bz2"; locale = "fr"; arch = "linux-i686"; - sha512 = "8bd4b0d20ca32693f34c8aba6f01fe1a2b0a3a7730ef1948de81dbe8944dba09ca6d24f87a131831d7276f9ecc44234778cedf4d1f814784e65607d13829990c"; + sha512 = "b0bdfc5be5c95338b235eea81d9de384268d05af2d501735fe4de3a8b525b6a08f98a40dfbbe60a6adbfcd92e806072a5baec8f2692a0823e686c124bc308b61"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/fy-NL/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/fy-NL/firefox-76.0b4.tar.bz2"; locale = "fy-NL"; arch = "linux-i686"; - sha512 = "851cb969a20e1927f06a6d33a0851f6e63ed14defea566de90ed2c98e592a00cfd1bf34de55c125449c2355002870b7cf5e3548d37055a5cc16a36192f9c92d2"; + sha512 = "0952e195b01c4a42db08b1ea6afdc4eaa4806f3fa98a35a7f7e55789de6902a255a2a5ea6bacb47c5e3b9439b83548ee81b85fe5c6520629ae8cf2e9b803eead"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/ga-IE/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ga-IE/firefox-76.0b4.tar.bz2"; locale = "ga-IE"; arch = "linux-i686"; - sha512 = "79ab060d152b810917803cffab7aef198670a98d8d72d9ebde1c3d3dfb6882ba19cc27e6454654d7a164dd712280d257b33e954f628ed7d59c8d3915031c2767"; + sha512 = "02d735bc251be237efc86ff7642af066819b59c0c890b9a8c8525306537d52a603301fb81e4f2628a9f8d2af062425022b01db35b19fcc705b8de6d888c2bb6f"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/gd/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/gd/firefox-76.0b4.tar.bz2"; locale = "gd"; arch = "linux-i686"; - sha512 = "4800e3ec3a0a53ef9a2cd605ec93d4609f862afe1f3c2e7bc7d64ebc5b5ca17ead6aa2027a5da7b28648d7e4db2059987872d74225ad765f68a4cc5c45f14a1f"; + sha512 = "404d9aaa382f9d641486dc1339b55f113c6c67f5b7523fb7b2c07c8114b4732e6e4882538d5dc2c57ec871b41bcd2e7248326db84baf4970a0ca451b785c711d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/gl/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/gl/firefox-76.0b4.tar.bz2"; locale = "gl"; arch = "linux-i686"; - sha512 = "8fa1cd71b985fbac1f0e4d817a1c3c7c7ccef1a1e8c59fe14593f4ac09a6f6f55919c060adf25f3fee9aec706e5ae07a14ea3d7c945d6820129a712ea237b232"; + sha512 = "fca768b0d97af4c14d71ee0963da7861bebf77d6c67378091842b184360f2ed7a54cb5e9d80918ba21fc34a77f36e2e1402c773b5e551f20b9ab9cd92e4f91b1"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/gn/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/gn/firefox-76.0b4.tar.bz2"; locale = "gn"; arch = "linux-i686"; - sha512 = "8eb3a9b75d70ef358559414b39853177fc65bc7d7756f446ce65a5c9c94ece92d59f76d74c17dbdf877ffd977aa41cc2e52b3ab10122908e422566f12a016c6c"; + sha512 = "e8925de0b33c779c0f26974a1f7f4f1586b7ff7ed969eab7e2721307aec67ac447dd85ac9c838d5cb9c799fd3f85e0f4e7236fc94111cad341aeb2b8a616c45d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/gu-IN/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/gu-IN/firefox-76.0b4.tar.bz2"; locale = "gu-IN"; arch = "linux-i686"; - sha512 = "741004043f30eaf344a1bd6ad36f7de64d935f7b056dd9daa516df64dff3632dae02d300afc27ff1c0cdcc5208e64dadec64b1df8139098efdc05f7d95a066d2"; + sha512 = "11e8e2d7c434861e4119e5e2a6db9e1dbebcbfb318a9f707f3a09418889c4998faf280a63aa54f1a4d7f970ac657950e558004a019148e77ef539fea38072f54"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/he/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/he/firefox-76.0b4.tar.bz2"; locale = "he"; arch = "linux-i686"; - sha512 = "b6afd8db87c18cc0b5cb7ba45386555ca45b27baa469272dba66ad4b3fe11db7e5c6c48742691febcbe7963729bf34c778dbb6248c01c1db3a685f38a17d6bfe"; + sha512 = "a72b2da8c97f0517c8a1410114adbaaf8d3cb6ad76ad96cea967f6e73e934280e9af3a25b5c4457ba929b91db9f07b6ab740dcd19b0b4eb8093ce943a889e354"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/hi-IN/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/hi-IN/firefox-76.0b4.tar.bz2"; locale = "hi-IN"; arch = "linux-i686"; - sha512 = "b73988b29f52012ed911bdc97e1978ad8e56e640666879358a1cb79f88c56676e25f578a64b449372522a27abcfd37c44071955e273f4291ccf15fccceedb645"; + sha512 = "07f298aa7f1ea9a484dfd918b61c2373b7114e0440759c91ff77d2f1f9712294a55bcd941f689431496fca05aed17d4e8a167e7e9b2afda6da2d5896e49c7818"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/hr/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/hr/firefox-76.0b4.tar.bz2"; locale = "hr"; arch = "linux-i686"; - sha512 = "603ac12312015dc9f9f24d0ae48b50b55d8f109e31566823f387ffc17a1b99fa958d14f6214d7aa8efc4cb71e090901fdca2068e491218cb17acf914e3f8570c"; + sha512 = "02f1a630873af11a48fb4a2e56653a4e13b363dcbe49979b56f7049f14f6154b26cda2ac2311940a88be97e055e3e19b54db02044b8829ab833fdf76c2e6156e"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/hsb/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/hsb/firefox-76.0b4.tar.bz2"; locale = "hsb"; arch = "linux-i686"; - sha512 = "a15a1c2a67ab12f2dc506e9138bcfde2740de9dddbcbe825300555b7c72be7b78ef15433eba60a132f8c8537cd1b42f05272eee399dc3f69e8defbe5ac696fa6"; + sha512 = "0983f9e86b860b3070092d2a6f6478ea5d3e73ae46d3c0b2da20c03290d24fdc7dbdf14f0df78ec0d187c37410319c0c7e4ff1a1e8152646780fff0015e33ae9"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/hu/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/hu/firefox-76.0b4.tar.bz2"; locale = "hu"; arch = "linux-i686"; - sha512 = "829f16afa6bd4d1909633e3f4cd0134a4d397b32c1b85b1203f54217f23577da0eda8bb207b07a46a7c9c09bccd392f4dd89ade408d2460720ba5667842b9a4d"; + sha512 = "ec77cede3cd23c70f0a8ac5e3ea46c3cf8771df271e91df5e2d0e35edd1c08e0e3151282e9a14c82df18cb907393428f38f58619dd198bbf57ff8f062222317a"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/hy-AM/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/hy-AM/firefox-76.0b4.tar.bz2"; locale = "hy-AM"; arch = "linux-i686"; - sha512 = "acca12ef2379c4c833b3cae7510fbc01f71edc3d6a9b6ca39dc560fd892b8ade2aa05eab318a79db5bac0e1d98af6c31599bac029ee7f58195c062d3bbdf3a23"; + sha512 = "590562000f4aa0a8a6a4ebcb95ac01f38f8bd1f42e3dbadeeb8f03c4f6fcf62d5dd81fd8841ebbd8716a702526276bad17a6e767d4b6c483102ce0c9ba686ca0"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/ia/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ia/firefox-76.0b4.tar.bz2"; locale = "ia"; arch = "linux-i686"; - sha512 = "c33bf450f946110bf8c72023c1c6079287c944af445f63e4d8154de3fa5be8f6905c9b479d79aa82883aed95741f6d53776b87245e7d0d71af3988f54591f344"; + sha512 = "098497d2dbb70a702b0c804a22734b2dfaecec0cdc325ed8f63f2a4d03b295442363c6d9214d21a3b96d63221123b43a3ad27f1335b38eb4198e7cc1c5eff5ff"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/id/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/id/firefox-76.0b4.tar.bz2"; locale = "id"; arch = "linux-i686"; - sha512 = "f3c9aa62d4a35b43aa60d6d577ac6136d1646e5d577a0a1b7e02781dd33f7579fc5dca0c82c1ed0be226c0b3fb8fd1cbf1eac4d17a8cbde2fefef026e9e4518c"; + sha512 = "38ecd79e96d54887ab8358d848cabfcc638d2f6e66e73349f92f3ef2f4f7f5ed3f6be00e84b4062cf7cca082ebd851fccdb7c398f10c7a56b2f2587d5da7a9c7"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/is/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/is/firefox-76.0b4.tar.bz2"; locale = "is"; arch = "linux-i686"; - sha512 = "e3fdd7ab88f947359973827320c4b27150c83ddf9c650d4358198d8466c7da92df2e50252a8988ea346c72ae491a6013558795b968ec947ab9215ae285416a40"; + sha512 = "18def001b8dbf3e70f424990cb78b54e9700dbe4ac6285acc402c1c28e4ad2c5e4fdd74d703bffa296381d89798bbbc12b9cb929cc26137dfebee683bf4a692e"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/it/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/it/firefox-76.0b4.tar.bz2"; locale = "it"; arch = "linux-i686"; - sha512 = "1d02f91f1612e3e94e9c39307fcca3ec90148a46c6289ab4b6509fa6dd5249e1fb3677980adfbd43166c104f265f5059ca732f56a37ca19bbe9937dbc0971113"; + sha512 = "06084de26c5266892d6da49ee126aa53a96b515ff66669d369334d02cf8c25b553bd3d00899f655f8ac09aa9c1891c247021241bf7ce8600f5e9d4d1bf9304de"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/ja/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ja/firefox-76.0b4.tar.bz2"; locale = "ja"; arch = "linux-i686"; - sha512 = "cdc66861781be3233ba9461aaac720ed2e0f1517b97dd76d002cba7ae5c9ca4f3fa11b69e0f87a284e52c96ca6274ec6386d8392ce47e433c65eecb20a5e9cd6"; + sha512 = "5e2742f4030a941ea741bff0d363ce39c115a83988149ef682c30554ddabd3b94a7d72d9bbb4172ad1faae893fce35efa30b01b9cabf1eefa89c69199ddee7ac"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/ka/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ka/firefox-76.0b4.tar.bz2"; locale = "ka"; arch = "linux-i686"; - sha512 = "95e2d1276083f356d8c176ef2deee23b933f8dea4056d68e6befa45ed4848d985eecc2cb6024bb51fa9768ef9463b84cb66180fe1ca7da752a5828bd721a7344"; + sha512 = "f8f2d3b22d4fddbf25348eef1527c7e9bf0733572093c1fed1831feaa2c53b2559380bac3198fd79a51fddf5ebdcbaccf09e27c4d69317081aef52f37abacb7e"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/kab/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/kab/firefox-76.0b4.tar.bz2"; locale = "kab"; arch = "linux-i686"; - sha512 = "d9d7eca0eac6554d1917c750c9f6b3fd1a0f838e3dece2f1e6e7f3e943051978ddc430fda3b73bed8b21fe3b07a7c509f2fdc61e061e8ab227beb277b7e3388f"; + sha512 = "1600fa39c920554bb733009cfd6de7c0cd2ccfe53e91e8f3c770fcce29843dd89c488d733fb0beb81c868d26a74fa7b770fd64ec92459ff9f6a8ff9d98d42d02"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/kk/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/kk/firefox-76.0b4.tar.bz2"; locale = "kk"; arch = "linux-i686"; - sha512 = "a3b7c99fec93983aa18541b3b0ef11e57366f38da522ebb283bffeabc504e21672f4eee2b93e2f364dc6c2656b39fbdd4beb74880b86b6bfd88a09f6764b2c8e"; + sha512 = "a2701ef2fa5f2127808c17a4136e4ec291225f613318ec04c0ad812d75356fe90b0ce94c0de5fedb17e16462f46c480e89e1a0ce92ad113430dff04756675b59"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/km/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/km/firefox-76.0b4.tar.bz2"; locale = "km"; arch = "linux-i686"; - sha512 = "f5c35db5f9b64656b4cec5361587371374bf7577e7d5aabe329d34e9f02d4b4c27508ef8fe7743c8453c61e3534cd5b85178460778174eb7e19ad15260f9d682"; + sha512 = "373caab422978dfa5629f4f6152a72e6e8f16f5add1f341528b98a617672c9dec3db41bc3021c561808b2c65124bebc0b2dd39163f3961e46204f9bd1aafe04a"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/kn/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/kn/firefox-76.0b4.tar.bz2"; locale = "kn"; arch = "linux-i686"; - sha512 = "c94cae5a2bd8797bba6cdb689d885f106a94b34c06ceaec11798a1a3bbc36a64ebac4d2bfe978e92ddf5cd4c9aa23a4924def8e6b54c457ad54b25d4768b3b3a"; + sha512 = "203b7f9ea3ef8520cd9e614451275bad69b477deba0a26956b633545ba203a9a2ca88743c619aa311ea3f4f3acabfe96c2ea9463e2cd5b988951738073766c60"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/ko/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ko/firefox-76.0b4.tar.bz2"; locale = "ko"; arch = "linux-i686"; - sha512 = "2ca35e7e02b4ac0188be48666636bc9adda6a3e98f0725c65ee8e5ac941837f056479697fbcbbd1f9f8f87d7f48f52fd8aefbfe3db5ba472cb38f9e33162c96c"; + sha512 = "0dbe6bdee022274aca34cf8f480b7733f62bb38486c3c449805f636f9bb7439435e9e9af0442b4c4fa6c266cb97ab678eb46ac3a1b42376cc025ce5131c32c54"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/lij/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/lij/firefox-76.0b4.tar.bz2"; locale = "lij"; arch = "linux-i686"; - sha512 = "6d1584249c1ba837d6be87f2bf57a52c4cc0dcacc3de82b26e57a55171db872de809773ee42a74017552b38718e5cd2fd9a57332730b303c379ea62b4047486c"; + sha512 = "e98b22e33ce330a8f3da068d13086a48740e4c8de43f0fc0851cfad3cf519e5fb29eae3c30fc93e9c8d341842079655a921dad762c1014d408763de695300876"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/lt/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/lt/firefox-76.0b4.tar.bz2"; locale = "lt"; arch = "linux-i686"; - sha512 = "ceca1e4224cec7c4bb9eedcf5c5e563ec7592add530aef1d701d06023359ce519a3e4c885cf3e691aec7fb732705f8a8f9ef919495a6a55a4eb1324956a6dd7c"; + sha512 = "b9205df8b26104adb8f7c699317d972ba8f1e7de95580e916cd7ff9c019745ee5b60bb6650aadee54c48da773c65679b9427a3d8b3efaeb70a345e71ff8de837"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/lv/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/lv/firefox-76.0b4.tar.bz2"; locale = "lv"; arch = "linux-i686"; - sha512 = "005ef32f152e7eb8021ee3872105c9915a647440a5302a951abb7a1967210719b38923c3355150c7dc76f2ce52dc508ac6defcf1d6f7ee834ed59b8ffa166122"; + sha512 = "52df48db54bf4c2029366836708324940890d6387cf0ad21b918c420e9388b8f6cd29ed88e4eb230d162df0702fa5c6ad3d674a56d6d4c0b8e273f1776b2f6c8"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/mk/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/mk/firefox-76.0b4.tar.bz2"; locale = "mk"; arch = "linux-i686"; - sha512 = "98c87f7d897b9857955ca24f3bae177e9329010fd22445da16f71897e88f74cf641410c0cb77573bb74a51dc54943fe06082f6963b0594e1c1caf727a573961a"; + sha512 = "610086ca01b542ac23e6b162aad833931354729df4b90949f2db3a22ee6fe6193cb3bce1472a859bdf5d0e718c4c72d06b0427df2001a984cfa2ac6d275c3e51"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/mr/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/mr/firefox-76.0b4.tar.bz2"; locale = "mr"; arch = "linux-i686"; - sha512 = "fdb22c0feec80297fe3339a9f08756e419b3439df2ed23c91d26eb6d870f55501785a11fb3eb98113df031aeb3d4f0462a790f16740862054fe90fc35878a8ab"; + sha512 = "725e696800f68a6ef7c9af9542d830a38872b4ca0aa864d1d415ee05f1d287d88d7dc19346f472fcab8f64094ff592575787dfbe2c62e14c97d69e82b8205bfd"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/ms/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ms/firefox-76.0b4.tar.bz2"; locale = "ms"; arch = "linux-i686"; - sha512 = "e6c5ada949b9950b218d189904ba050e476f6f9705b1b125ac5df974c25031d804e1fb1852d3d2bec1e87900b4757e5a62a793d97fc597fa3ff136939f9e733d"; + sha512 = "d6cee082a677b0f97f9f2792a4bbdb1b50d96b09693ce72b9de855eed006b6da6e89f9c6e671aef06ee9b7c166d1136ca86b9c977ba4eaf57790537917b0f0dd"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/my/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/my/firefox-76.0b4.tar.bz2"; locale = "my"; arch = "linux-i686"; - sha512 = "0666911bab682f27bc89b33ce186cb229ededa1637d7ffa9007c4de2fe74412a89b9774ceb04007052b85093b9752df3844403ce22f07481ad502145a2f34742"; + sha512 = "af5c543a13b1deb82fbe7596349a883c61bfff3fbbf029a117e8194e27d16d587b721c317d96f6c76eeb54a9a4483fbbb416a5f46290de64d7048245c0d000c0"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/nb-NO/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/nb-NO/firefox-76.0b4.tar.bz2"; locale = "nb-NO"; arch = "linux-i686"; - sha512 = "46d4851f65d91e4585c24f7d89f271a18e92611431e2c4a6a5f369c066e7b4dbe07b7816e586668faa2b6d8d8f0eda04616fc48664287d08f7b17e84de26a96b"; + sha512 = "e4e6e9d1bf9eb930fee48b2ffb29da791fec545a835e034799bd88423c7cb207d3a24d68e8da2bfd18a20529b1d03d818fd0d4331ab91099d7c01ccce44a289c"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/ne-NP/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ne-NP/firefox-76.0b4.tar.bz2"; locale = "ne-NP"; arch = "linux-i686"; - sha512 = "d2bb3f29f6939e36c66bd9a7e92a9c81784458ff75bcf570c6efbedba3e526a75ee797d9fb836e0d20e78d7bed5a64ed9d640ae71900f64a98c0a928809c40c7"; + sha512 = "ea5b7bcb45fb54509f2d11d261c1c1672e1a2664e310f291c7022bd11e69e0686c2a1da9f8b42d7c6c152b3e1213fee221ce44576d7c370bb09cb128c62a04e9"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/nl/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/nl/firefox-76.0b4.tar.bz2"; locale = "nl"; arch = "linux-i686"; - sha512 = "bc8acde71daf8794956c5014e35eae1fdf557b1b9de7bb955b8f8a457e81d043880b9978e3b14fda504a53efb2768c5745ffef32c89e1bbbde77469429d7f686"; + sha512 = "bb0c66623c439b0a274d98498dfbb9aa9ee620bd02fa0f4f41556a020975522799800f23872cbcdf47fbd8592afffd578d10da87d0469ec43c4f28564f8d93ed"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/nn-NO/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/nn-NO/firefox-76.0b4.tar.bz2"; locale = "nn-NO"; arch = "linux-i686"; - sha512 = "a5911405c58a400c332b697ade2c7756e416575dceb9b3a6f8ddde8759aa79e54454f53449688d080b7c6859f6595c7cd79b71ee88062158b95a4525b23e1076"; + sha512 = "e58160d3ca153065e82216d3773c15947d66ed7cc9c646d1990c66fdad869a8717cfb1cef9a2239996b625894cf4214712c36b54852eb955848da270a269982e"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/oc/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/oc/firefox-76.0b4.tar.bz2"; locale = "oc"; arch = "linux-i686"; - sha512 = "7b0323fbf64f9a6c693f85972b3c6999314bbf72a3291330e1fa7c9905d1d2a3c5783cd0ed0535363c197cd4a78a2ec7dd0a6c6bd48497a254f53eece2b35633"; + sha512 = "d2174ee3a3288bc424d41f0e51626a217dff28f1f8b8f153e9ff5d51f867f2bfbd9c81bfb6ab004053f5bffffa390264c72a9af522ed13523e04e74f03d7c6c5"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/pa-IN/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/pa-IN/firefox-76.0b4.tar.bz2"; locale = "pa-IN"; arch = "linux-i686"; - sha512 = "20830ece0ef0129dc5ce188f55aa1c699052f12819e40cb4a0d9dd300f9c15a464f0957d060d61fd0db56aaf0081b6c8e587990e7b91989e880feccc8d22eed9"; + sha512 = "ef26bdbf4c4e602dbfd84c64ac4c91960d648123ceda5039aee40e40c9df360d690d0490c18362f3d29b355578eb56b05fd5e2c8cb10304ca368db6b2133b414"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/pl/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/pl/firefox-76.0b4.tar.bz2"; locale = "pl"; arch = "linux-i686"; - sha512 = "3dc0c22bb4fba597fb225b98a1ed112759d9f3f83d5620a05fd7aa20cf2d0cf79802dc1455a346206376bb11ec325da4a043bde87f61226c043a935a7d975d23"; + sha512 = "35c8c303987fc6226678c02ed5eca9e36377f20c44a22513aaabbc1a86a661a4ef295a393d86e65707e714df13a877cdb2b1d52819c12382bf063f14e32044f0"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/pt-BR/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/pt-BR/firefox-76.0b4.tar.bz2"; locale = "pt-BR"; arch = "linux-i686"; - sha512 = "b97e061bcbb1eb7593676d1b96f4601c130a64cfc1836e0f49fa058d18a6e9d935e02b58f4a65cd227cc3364e79add782d379cf729ae41e7a6544cfcf280a26a"; + sha512 = "9c04bd4dfcb38b887fef24a784fd3c7aec9a76b52675023f89c9d2cd9e83a0bff7a8c00fd91c7ba309112ffdbad1e2e9776ee2eeba9736438dffe0bd7f7a07a9"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/pt-PT/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/pt-PT/firefox-76.0b4.tar.bz2"; locale = "pt-PT"; arch = "linux-i686"; - sha512 = "21f6d41bbef5b12aeab46aba2cc05797d4852dd7effcc00d5346604424dfbb5efcb673567b1933b4d723be80f9fdbcca98eb69cad8059d8e6f716675e2255ede"; + sha512 = "a056d933c16581e0b78df43c419fb6eb0fddbd970ad00ad13ace6076a19f21289722b6cecbe859761dbce0c3042a6d00cff4d04de7c4d594619a14cdf8daf5d2"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/rm/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/rm/firefox-76.0b4.tar.bz2"; locale = "rm"; arch = "linux-i686"; - sha512 = "fb13e69e606e4508a02221a1778a72e24524ba61f1683f5e076b4105e84fba03d8b27f29e2eb6ff3941da688b2ff5288a72af081db875ada83c6ae82149ab91b"; + sha512 = "6c808501f9bf72bee900665a689ca27fa0017ee23e08ddaf3fc969fd37bf113e189f57aa5ba8cbe3073e08993515120cf9907ef3981a2f18ad3bb4b5a8ac99c2"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/ro/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ro/firefox-76.0b4.tar.bz2"; locale = "ro"; arch = "linux-i686"; - sha512 = "0d1f1df7d7516f10bc7c3f6144656936feeb7068839db29f97495697235ea9ab50a1587146bb069cc1e025b6a7345ccbba041043ec5b467bc9ce878403d8e7dd"; + sha512 = "e21c30b888b9a5cd8a1276abadf1cb7b61ef16aea1a2d14570649b887e6d4130e0e4d42bcbdb0e9f48760338c0cb2a8f52081cf6ed5163a4b7339923e5e13acf"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/ru/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ru/firefox-76.0b4.tar.bz2"; locale = "ru"; arch = "linux-i686"; - sha512 = "be89a374b149f4ae21b544b75146bcdd71a90c0a3be44e4abde75d3b0eae11afb9b7cc6447e33019aad216f0ff1ae46e80b612aaa0b8f27590d75ef9454098df"; + sha512 = "6e8ebb45f4d0dc3b73c692db8e07032c62948d5a8ca6799d09087206a071db61c98cb883c85db0dfe1423f99383ef7efb613d5092fb0b295b9c3a24d29b60f6a"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/si/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/si/firefox-76.0b4.tar.bz2"; locale = "si"; arch = "linux-i686"; - sha512 = "12693ba3b6fea7b54d8f128e37b0529f22b45e975c6a0b890a7fcad37db7679a85b0a79adeeb3a15737b6f5135d98e87506b51751a77e054553f67285a2ddcfe"; + sha512 = "0d588d2befab1e7b23591f373b76083bfedca1ecc269c72f8d63a35e30d71db2a98c6b1ea18ed298909628800acd274ebc281c4d5e5399bec3f359f1f66e9bcd"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/sk/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/sk/firefox-76.0b4.tar.bz2"; locale = "sk"; arch = "linux-i686"; - sha512 = "94294db92a4053c209b7350d5979c3310e683da4292d4bbcf2eaf0e1729a15cc12773dfed0dd9a3e097807a3c889388fc95f28781ffa924e9128625a7fb888dc"; + sha512 = "f4fd28a6f9397290f7db17ad30078b51e743f7093351493eaa117b526893f5a8f8ef36f255b50503d2b48c4bb3fbb3071ed0b25ea687cab01b01379b6ad64e6d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/sl/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/sl/firefox-76.0b4.tar.bz2"; locale = "sl"; arch = "linux-i686"; - sha512 = "70d556713742972870b6cbe5805a5a9b55360ee501ce8162164abd809be3ddd0f4220b7f151aa5bfa5d67cb2307ddd3ec0d353c1a40d94692381ca5023b5a8e3"; + sha512 = "8d6218ee90b9a767e03acb9f6bce4602bb948377cf91cc81b0dbe2020b5dac0750f1e283913940c59e0ee1cc14a0ce1928338ea90695948e5ddc854244b62c47"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/son/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/son/firefox-76.0b4.tar.bz2"; locale = "son"; arch = "linux-i686"; - sha512 = "886b2fdd7cd5ea376cf17ffd07f5ba3521fce40265a6e45fe9b586c6e57519648cd8cab57e0004288318de706a075ec5bd89b13bae3e34eaa3fc6861c9620a70"; + sha512 = "4818470e713cb9b7209cf9b6b73fd2682ec9b017516f56570b83d1123e69921f7bf2f8c2ff8de36d622f0f93e1191e8671b00357864e1aa862ffeb7b88a90dc5"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/sq/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/sq/firefox-76.0b4.tar.bz2"; locale = "sq"; arch = "linux-i686"; - sha512 = "6a4f4b87286df05d4c5ee9f2810e7aa5d77fead041061223a21d51dd4705cef15bdc2060ed85ee1e2a4c54555698df6ab8880554b1a476d5d27947d95a13a31c"; + sha512 = "0ef59e995790814ca0ed50c2b510a1971ae802a1f362d2bb5a90e35687fae26aed9ba925c8e08bb68a7a0279a832132e2d66adb5dc1471a4a8e426cd4731d7aa"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/sr/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/sr/firefox-76.0b4.tar.bz2"; locale = "sr"; arch = "linux-i686"; - sha512 = "ba5bdc0c0de9a1f773497fdd50a84eb4314ab6caeed3514e7ce63acea8ca1ffd7d9544ff4d3a12142dcedd19d0ec933ecf5ec522a3bd2943064fa39e0f84da34"; + sha512 = "5387f446bb9a4e3edb89a3aa8f19bff7972c932cfba97b386bc07875354ed6585fe39873a3e9f74aa68ae13ca4d7a1e765e3185517c5a266072167069b037786"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/sv-SE/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/sv-SE/firefox-76.0b4.tar.bz2"; locale = "sv-SE"; arch = "linux-i686"; - sha512 = "30e581b784a7290f4a4238839afcf76948987cc1fe8f073a264d65c3adca97b243e1ae335e0104044f0e768ffaf0d9c3553f95ef4b7d53c5d06b656e23e5fae5"; + sha512 = "067f132d49fedf4e8dcc1401b39445b88a11aa5a7796ee24a06233540dd2b1ace5042dc06218f28bb6472716747dafedfa183b1db1e87d22ca5b865fa6f972eb"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/ta/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ta/firefox-76.0b4.tar.bz2"; locale = "ta"; arch = "linux-i686"; - sha512 = "31c2f580cd9ad62413161b437fefd13ab793d94ed2532537c1ceac939ec57d84c82cff07d300a743dd6c7be08db7010320b78a9a70f96c0363add4a059f9a053"; + sha512 = "4016a1677a62dc4877dad75c0ec2f4d8dd5ed3aaaf625c73175fadae527d54f628bd29db2044f90c8be36e72b89422280e8030a231cda9db0f98c18d3fc037da"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/te/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/te/firefox-76.0b4.tar.bz2"; locale = "te"; arch = "linux-i686"; - sha512 = "52bd53f013d149df4ddf4026419293c7cf16f72eeebbe7db2167688e149ae8e4bba724ace2a56c93a6177908581bac163eb4db6d5f9a2ffa48f2665e2a80e35c"; + sha512 = "bd4a683f30e92fe9631506bfb2aaf726c6765044db65adb8d85795e60365684c7a9d2d351b7ae5b02125546dea8ffea6ec637a39e417bcd61acc57b8560068ee"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/th/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/th/firefox-76.0b4.tar.bz2"; locale = "th"; arch = "linux-i686"; - sha512 = "f81c421dcedf9755836e8554bddac1394b94185f22b83b3628622023b325e7dcbbc8e008d082d6478546dc1a1f6bf7181fbd41f1d746986dbf8b273639e95fc1"; + sha512 = "1b10aa327fdb46c322af0848a66ca03ecff38fc29ada50fce6e44e9056a874275407bcc3959cc7668493a6de599e71644e6c4f57f83e031b18d4a88505b35f9f"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/tl/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/tl/firefox-76.0b4.tar.bz2"; locale = "tl"; arch = "linux-i686"; - sha512 = "6a29bbb380253caec23fc7493ef52bcac4688979292803c4063d6d318870346eb917d8f57b17279ab45171cf1554d7314e5f4f84bd94ff466b504db9e1461be4"; + sha512 = "febcf3fc454d7079bece7a9da0a9d158c15d0cd7a61058befb411d921e35f7d180773b2063c2084552cb6f7fda552430778f75875b474312878f72014ae9913a"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/tr/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/tr/firefox-76.0b4.tar.bz2"; locale = "tr"; arch = "linux-i686"; - sha512 = "346c02d8dd9e6330e83c9984d757d23ec8648172803f808cc096af6e8e7ca768b1bba36a8c35689644bcbc02e63b118d738471270180101eec8e00d7cbfced49"; + sha512 = "a23a443245eadeb943858bde3cb5d824277b47365cab047904268f783ffe3e0f42c0809b0b083a428b1d16038ae24cfc873b545d9513e1449661b511d17313d2"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/trs/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/trs/firefox-76.0b4.tar.bz2"; locale = "trs"; arch = "linux-i686"; - sha512 = "c3201998646d7bf8b1449571597cd0fe2911a4bd74c265afb21b706161a5667bb5556d8e1be4dbfefa29e753bc6544adc26e966dfcb79acc38485e6c618bf282"; + sha512 = "c614aae0b803329d05aec5f60aec633d31353bed9822d9b8b7c5dff5d08fcbbc551aae480c02021abf0bdad1059b665e4ef627dc00ac5cab0380fa30111cb15d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/uk/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/uk/firefox-76.0b4.tar.bz2"; locale = "uk"; arch = "linux-i686"; - sha512 = "24b01dbd82c4cef9ffd8b88db4415eaf1bb9d83c7bd307663636bb372a1525789354ab15021b591e7aa697db511c71d078cf3fccf89024f13b19099925e9ed54"; + sha512 = "80bce7f860ed4d8921e9826d25f6d877879c3e4e3e3bf7bd8bf9ed4de4cc10cf72e42cb6323240f799a53ac6fc366ee7e1e6deb4b1c697f2444e97ab090ab9db"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/ur/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/ur/firefox-76.0b4.tar.bz2"; locale = "ur"; arch = "linux-i686"; - sha512 = "720d058c4e4d2cf4a08460ac4ed4616bf492704c8db10d28faa3117d6d3662a3325155f99414a7d61421eeee96be4d36ab11304e029751eed423fae3487cd2b7"; + sha512 = "ac2d7c2ab3d26157feb78283a16e8d2195f78eabeeecb4ded60352fd423d8ff57f5e8a5fde72feaf32c3fece3a4e90c49d18d672ccff5775bc497e1c89b3fbea"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/uz/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/uz/firefox-76.0b4.tar.bz2"; locale = "uz"; arch = "linux-i686"; - sha512 = "59554a7a87b11e679487ecf9bd0ff6001f86bf14a0f73768b1984ca36cc2ee4774e99dacecc238d633556bb04816451ad82cb5ed2d26b2b811bddecee01e53eb"; + sha512 = "a3cde7db978a3876b3ea596ae5b3e1aa1e77064f49686eb39bb083e4344cdda8366f01d37ceee4a007c1a36b4fd18499b2c46b2233f58b7efa8be4e59cc9e347"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/vi/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/vi/firefox-76.0b4.tar.bz2"; locale = "vi"; arch = "linux-i686"; - sha512 = "030c10b2314545644b402d6b5b011c7b782c06be1f7460782f02e2071230cd9adb018558db7f98f8c2c64e7e7a6d835b38a14bb7080f1dbd160cbd113348b1f7"; + sha512 = "b76c01da5b4be1e39a3080ed2088bf6cad5e6f08364edae08a74c6b5ec07c35a214c47ef80b8bf5e3f4c53db6789e8eff1d6be22a1a75d408570fd9a9bf5140c"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/xh/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/xh/firefox-76.0b4.tar.bz2"; locale = "xh"; arch = "linux-i686"; - sha512 = "25bfbc493a66ecedbf1a625d96e3c98dd6c1d835823c2f2afede41329a1dadd146459e6b44d49a4f966d9eccec1e2e1d8046f00573ffa4ba8cb43c8a0802e18a"; + sha512 = "9175fe7659d000ed22cbbd8968146e57e0d8b39a112ce22f1bc18f553bca36c94c374f0f89d7b4743a521f654f2689e50ea4a4cf13ff320752c498e038abdbdf"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/zh-CN/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/zh-CN/firefox-76.0b4.tar.bz2"; locale = "zh-CN"; arch = "linux-i686"; - sha512 = "dea1bde6eaa34ce31d7775c3f86bdedf442bb67623a890549a470386e93e93bdcf7f50a7006a1230ea3880b0031a2ea7590b94862f1a098cebfb7664f9aa6380"; + sha512 = "0ffaffd4a316c36aeb75242902cf05bfd99143b6bbd67eed7bc6070ca4eb4328dcc7903f706fcf7e93e980d916b24d2041ecd5f7324b0bbe5e7ca2fb7b755574"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/75.0b2/linux-i686/zh-TW/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b4/linux-i686/zh-TW/firefox-76.0b4.tar.bz2"; locale = "zh-TW"; arch = "linux-i686"; - sha512 = "22224a9a06c8b528d0847e10a95003d19fbc7cdadddc605e1188da7de845d38f511319e73de6201b7daf9b2b3b59a2eb12a6ced03cafcc1bbcd86e51422a2497"; + sha512 = "ca46afa28f7e756718aa45e7d84fc5a14773671aa18edcc33b4c3e5ca68017a14a6f0d7b737ccfd098875c333c6d65b271a3521eecd3d4c64f535620f8c66346"; } ]; } diff --git a/pkgs/applications/networking/browsers/firefox-bin/default.nix b/pkgs/applications/networking/browsers/firefox-bin/default.nix index c9dbe6ba4b9..71940c1b33a 100644 --- a/pkgs/applications/networking/browsers/firefox-bin/default.nix +++ b/pkgs/applications/networking/browsers/firefox-bin/default.nix @@ -199,10 +199,10 @@ stdenv.mkDerivation { }; meta = with stdenv.lib; { description = "Mozilla Firefox, free web browser (binary package)"; - homepage = http://www.mozilla.org/firefox/; + homepage = "http://www.mozilla.org/firefox/"; license = { free = false; - url = http://www.mozilla.org/en-US/foundation/trademarks/policy/; + url = "http://www.mozilla.org/en-US/foundation/trademarks/policy/"; }; platforms = builtins.attrNames mozillaPlatforms; maintainers = with maintainers; [ taku0 ]; diff --git a/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix index e84a48660c6..f10bd8e9f39 100644 --- a/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix +++ b/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix @@ -1,965 +1,965 @@ { - version = "75.0b2"; + version = "76.0b4"; sources = [ - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/ach/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ach/firefox-76.0b4.tar.bz2"; locale = "ach"; arch = "linux-x86_64"; - sha512 = "73f8521550149a0c62c841b23289371f945a94aafdab6752b6b4838594147c68dee1352608fdca2682251db3fed691ddf606e0a7874e2a35c905c30a2dedf4a3"; + sha512 = "9d76b71a20b9079513af70a082d6ab7373378e01b126cac5111437a040b08aaf3c78ad6d944cb27943043917be5d00ad90dd428ac3f2107754e2c96d5ec5c7cc"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/af/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/af/firefox-76.0b4.tar.bz2"; locale = "af"; arch = "linux-x86_64"; - sha512 = "e6933f3de32fa91f4835553bb8aa48ad20ea45288087bda59920d6edb616809d12cbf9966c722040d0473a35f5a4aa0a7c17fe38d8a0c2eef5fbc5d7451ec709"; + sha512 = "b498c1f6b56a65b66765173ac6c4568066facbf67b945d8e863a0d046cfdfda5e792acffaaffd1e7e5e5e5753b4a85ece8d19aa97d743340028346686a65cc7a"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/an/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/an/firefox-76.0b4.tar.bz2"; locale = "an"; arch = "linux-x86_64"; - sha512 = "186edc252065ea668412630d7ae37a6cc465d41104578886c6f01bd90d8a605afe6e023cb9d566d53b43d9fe411fc56a4322e2140983279521e1f73fdd2c251e"; + sha512 = "115e952394389af064117dc837d1f2ec157ced9aa35affc1d490e0a4860f36309c445a0e4781d0020420e2f4f3bdad18d078321b6bb760aaf2900273f5601e5b"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/ar/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ar/firefox-76.0b4.tar.bz2"; locale = "ar"; arch = "linux-x86_64"; - sha512 = "cc5c4cad6ffd695590264ef222fae56004c3b626c8e36cdb3b118daf62e84c912f112df7bc8471cb9c549f385cc878c12ed06b1ecbca164f12f26cda3213e7d7"; + sha512 = "cdebc4f71f304c930ee06c2048a142a1b610965059a3c2167882f6859446eb8af661c5d64011de3639144702b3b1936c1ef6af7eccaf7944fbbd7eda7161f569"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/ast/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ast/firefox-76.0b4.tar.bz2"; locale = "ast"; arch = "linux-x86_64"; - sha512 = "62ef8d3ff486543b45751f4aa43a3b009ebc9c909d1e0904622c212fd534bba14014ec8389ef5d21815fc3d5909757c7289a814f3a836d94188819b94ebe2640"; + sha512 = "6a96535466e06326f0577f045bdaf310d05a7f3878db940521bef58f60abef196cca038912145f25bd6879b55a693b6c98933d0045bfd5da58ff436cdcd1de6d"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/az/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/az/firefox-76.0b4.tar.bz2"; locale = "az"; arch = "linux-x86_64"; - sha512 = "c2161b2f4a3decc15ac5e780126b94a805d521bf8999379643f4ff8f9c1630fb07094528e37f2aea8c8789925acee7c77d0c6a179d4428b984ab329a973a5a0f"; + sha512 = "327cf4ba8de32044426d6ced1e250e03972e9a24705373a0c15e46c2f6c4994fc83cd1c67aacf09c2d11d9b665e63dba6176e845ef8c037241c55e9c536caa8a"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/be/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/be/firefox-76.0b4.tar.bz2"; locale = "be"; arch = "linux-x86_64"; - sha512 = "9e49307c8bb04dbc83532414a5f09ce8cb202fcd68e145d2ef132a20ee47988d459ef1851ea610ddd527f335bb68a7f1fa04041914097fd65f6fd03ea6499ebb"; + sha512 = "9fa7311bf0425d7314298751553b49597b6eee71f9d251e52318f13e1d38d86adbfe1a1b6d599319d6f61de47652a5cfd33ef3f3ae9a2ee3f16af53629f0b85a"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/bg/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/bg/firefox-76.0b4.tar.bz2"; locale = "bg"; arch = "linux-x86_64"; - sha512 = "ee5fe8387cffa96d449d4dd5a2671558a6f36645b15cdd017ebdbe7316d3e0740f05efb6ca5175ca917a937f4483175c9a20cad2fd956bff5110cd7d641a12c0"; + sha512 = "084fffbd48bad4fd38c649dd7ef5aaacfd5c86be4482a87f25c8e19ac6469e28897cf1ceeaed14cda55f40c77b08425a75ae3679d9866c255eaa8927a3c4e7e1"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/bn/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/bn/firefox-76.0b4.tar.bz2"; locale = "bn"; arch = "linux-x86_64"; - sha512 = "4409a8d09e837a95fbfaaa5c8476fe25d50926c11be2927c0415b8a7e71f18ddc392a90ffcd5c142ce4c5847ad493f3a51680e802eb2f709aa8148375c9ccd30"; + sha512 = "bd6d179e2ebc392bd8a2b5fc2b67d486150b00a4d881aa23c4d49ec2bbb7e8b8e9d70247bd704f608972af5ea3ffc5f53f949096a33455bb1fcb018acd4a0987"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/br/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/br/firefox-76.0b4.tar.bz2"; locale = "br"; arch = "linux-x86_64"; - sha512 = "cf71b0554eb8058e3f2457518d473b7170f9fa654c2f5033db830f633e7cb8ee16f08f651c245f4146f85b537b30f3adf235786d66c625cca61438ed502d7ccd"; + sha512 = "55d293e4f510229cc6545e41631db06987779f094020edf70093a38d1612d755334b59fc492f6b77ad3bb5e9996883231c0896d99ab83ffa418ea55b61cb76ee"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/bs/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/bs/firefox-76.0b4.tar.bz2"; locale = "bs"; arch = "linux-x86_64"; - sha512 = "743b0b485eaab640a54c6777c8849356b847d7fb4ccb56318007dbb01480410fbc119e7721393afbe2886af59d51b9aeefeaf495e670562dd16a350e803fec74"; + sha512 = "b69e81c5b10411e7b391de4f9a3d3df4d183e4870b81ee3963bb663b85da2b955d2ea71ffa6246790a77cd2f512a1797bbe90f35d9da75b5d4bfe0c4e4209621"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/ca-valencia/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ca-valencia/firefox-76.0b4.tar.bz2"; locale = "ca-valencia"; arch = "linux-x86_64"; - sha512 = "547c80bf05a23023ede2d7268e0c023756e196c3a18f81ef084cac330ee0c7bb69021f33ff926162a2ca7afd2c0b4ff08107a4e18560382810b5d7110cef02ee"; + sha512 = "047cb7e2135ad93aa4d1378e9d48e8baaeac711aed823ae603f6d9431b90a8e46096948712f4fbaa6a80ae519ae7d75dcc5704305323c7eaa9c307cc688194fb"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/ca/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ca/firefox-76.0b4.tar.bz2"; locale = "ca"; arch = "linux-x86_64"; - sha512 = "86648dfaa650d18bd934efd57c5de495c963728f45e375b6e6f4c71caa163fadbec2b5064ce370e981bd668445314fff64374e15a17d2c8c337cb1f088edc486"; + sha512 = "417dfb9a91902fd3bf7245accf6c48ce0dc1b9944376d5c73d38816e5b8c05ce214c1327f31773d5a72470a4b565b17f2469ed2f9d3fd6a7739699e19ac9bbd9"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/cak/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/cak/firefox-76.0b4.tar.bz2"; locale = "cak"; arch = "linux-x86_64"; - sha512 = "023afccafe29bb6f70657cb0c1b9e285a661127599f0b4e350f814370b4afd17a82157e836ccc394e8bb6b535a7e7341981f006363c03a46a723e4cb480c180a"; + sha512 = "823f2cb33b41a6a4ad870515f5f443213df254bc6306cda23ce2b2b8a435f6a6bfa0884ea504645791a15c76934bdb92460674fb628b517f9d4e1f2263347fdd"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/cs/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/cs/firefox-76.0b4.tar.bz2"; locale = "cs"; arch = "linux-x86_64"; - sha512 = "7d14b78faf8151ee01e8899a85fa8f9851c6958f4c3d7a99f7cd934fed8b704c40d2dfe53e24ac5b7a44bf67da2131eb7cd8161c315d4e0cf9bd7cdb1bc75446"; + sha512 = "618e4e48246192c6103757ef151ec192e41ac1011786478d631169d934569610d2e280cf20de2db54a57e1e794fd66c685427d69d2a6cf185508234066f71d34"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/cy/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/cy/firefox-76.0b4.tar.bz2"; locale = "cy"; arch = "linux-x86_64"; - sha512 = "5fec2412e904bc231c4203aeb40f3f7a6386c56476f83e80e94c2395c20f09436b6d2195c42861130606d101639eeb2fa2f710d5f5e23422cf39befcf46c840e"; + sha512 = "000d6c8434ef716a63fe4885d2b4ee2f6d025b58ec0de6ae2957a9d8807d9ed1c740fe37b679a66a1ca63a7f5690aa9a3ceb3aca6011dbb13071a66d329caab8"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/da/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/da/firefox-76.0b4.tar.bz2"; locale = "da"; arch = "linux-x86_64"; - sha512 = "b78ba1e8748775d3655305b3cb925e13423cc11e4429c806902b029a195105cc1ec83c57245c97ee046149f94488c8b09bcc043a0220cba87809a98f20d34e42"; + sha512 = "b49a8f64bb4a5625bd7b4d8046fb819296ea56aac468d4ea3220a73730c8d512a5ecc0d3798cffdb27afdc13b584830ce2c800a912976467a4b7851712fae481"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/de/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/de/firefox-76.0b4.tar.bz2"; locale = "de"; arch = "linux-x86_64"; - sha512 = "e5afe83d665cae93e9c25827a9079953a55dc1523027bfa8e2e8ecd0b347465f48e190233e3c7e08dcd647211a5063172bf05d55efb567a4f29c5123485bc2c1"; + sha512 = "fb82402e6e65bb87878b036f54518cd04b078564a14ebd8ef25dd60a006fe9f12c5e34b7f4bc10858228982dd0eaf05ada0a9f099059a9d71fe3933b49b3b2ca"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/dsb/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/dsb/firefox-76.0b4.tar.bz2"; locale = "dsb"; arch = "linux-x86_64"; - sha512 = "f9455b9cfc3b65b18960d870db977fa57ae03801fd42c6313aa114851897a14f1a64c02351a95f5a841476c41b55a39f6fc47bb5173e21b2a7da0f6536d73582"; + sha512 = "c447e017eb5df8ba8ece0ff51a62b3ec7b8c7cd12f55b1b41cfcfccb1a7f936e8efb12792b9075c8eb6995802dc24d17d43b395805b03476196103fcbc1a2faf"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/el/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/el/firefox-76.0b4.tar.bz2"; locale = "el"; arch = "linux-x86_64"; - sha512 = "d697998bcc27f468bce353b6f8a4bb0c01f0cbdbeda5a0ffa92054b590eb8f2255654740db2e31fc95513c7a6a4de703772ed35122e7c4e3e9b21ab3cd9e7626"; + sha512 = "d3e17c8c3a6f6f1290c64b19f6f2184f0cfc80c087ef3c02684c16c6e9b1b1e311feb9a134bfb7bf577d6995c8fd45365154935a25aa5f40e37ad198e41de62d"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/en-CA/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/en-CA/firefox-76.0b4.tar.bz2"; locale = "en-CA"; arch = "linux-x86_64"; - sha512 = "362ce03dfe65b802b153360be1540cd1c760e81bea0d35e2a59af701fec1a489abf30d52b1b1b0f66acafbc91c2bba3bc60bbd1f2a05844b7f53b25696712066"; + sha512 = "7175f58d6d81c34647e6c021cb0cf7c9d3a30c4a3d732d931821219c649e89f693529177d4bf037c56b37c330f8b29d3dce9038a7d2cb24590445b387b64801d"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/en-GB/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/en-GB/firefox-76.0b4.tar.bz2"; locale = "en-GB"; arch = "linux-x86_64"; - sha512 = "d674575f46fe24fc85af4dea8d0c18b2c1c8a0e92eaac76447a476c5532891d87247f6497663fcce546a85e92076f23fdf3890c8c8e3a902e3cd6a4eab6b84fc"; + sha512 = "0a003523e3e254f631834dba70784af7fdde9d0e912e17e2a92e8e0cb9d6973ada3670f1f83927d53afbe4b90be9de6e456cbe8b32c7bfbf2aba54bfa6c3dad0"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/en-US/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/en-US/firefox-76.0b4.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; - sha512 = "092e13a53b18c2c09a4c79b2fe15d49468b60509bd6668bf5710f425a0cc0d4f89216e3bc1e252b7781186bd553cf015c53c5bced5aefe2cbe43666fd5337f3e"; + sha512 = "4ea639262102238e209a7164d5be46bb88d38e275f265340b109a7477ad8d5c3833772c44cf37ac9dda96dd859b3b07a86ed0942ba0e1c4a4b58b767c218c8a1"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/eo/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/eo/firefox-76.0b4.tar.bz2"; locale = "eo"; arch = "linux-x86_64"; - sha512 = "199ac2eb0253659dc0c862869a72879d1d90d5b2d7d01a68dcc674e0b0b815f04823edea1d9794626e86489120da08585ef10c0852a636f1897df23e363579f6"; + sha512 = "083063dcf61db9d69ca39756c9fe697af133dbf87f455ce3590b2d336e629c67566ec1f3a8973f2d28122e283a8e718ef84bdadbbae3844b00e7e6aac2978454"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/es-AR/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/es-AR/firefox-76.0b4.tar.bz2"; locale = "es-AR"; arch = "linux-x86_64"; - sha512 = "0faeb4ef0fc8033156f922bf25367351e389596ccad6b2b435678bafd563ac0624bae5f5a49183e442ea93f1d76e8ac8e53121c6d8dfbea1f254c84d7d323f46"; + sha512 = "c43aed8aab29941423a292734525a2f5c8594ce3ae62cec91fe4f5ad6f04908e14a13c409b4ffc47ab9049c4c9194c388097bff307edf632fcfd06d363619085"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/es-CL/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/es-CL/firefox-76.0b4.tar.bz2"; locale = "es-CL"; arch = "linux-x86_64"; - sha512 = "f0bb330857416097308928d8cafd09c3d1fec559f78ac94e2fd3624381074d511eb8d5e2764feb1f33494f09be6b9fd3cd63e182296a8ddca06b84c673e2b0bb"; + sha512 = "b7ae67f8943841f254650820b4d36b164e95dee1bf8c425cfb9c878f4efcf4c4f0892a84ec5ed7ee2ccc7f03ec43a5f67374f3e1e268ccb753db4bb2f5b6474a"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/es-ES/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/es-ES/firefox-76.0b4.tar.bz2"; locale = "es-ES"; arch = "linux-x86_64"; - sha512 = "37b149761f68bc8b2326e0c4ec9eed789ee2d04edc0e42219b9faba420835c7b4a7f2cde76a02fc4f7bd452059572fd2b4551fe9d879fa74c34f066689ba2934"; + sha512 = "b298d239fcef24f2e34e5672329779db55032f500a08e2b2e8e0663bddfdf3925a1eb16eb08a1729898a8cc122d2ca923d26c0be3e147172e4b869305df05b31"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/es-MX/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/es-MX/firefox-76.0b4.tar.bz2"; locale = "es-MX"; arch = "linux-x86_64"; - sha512 = "80ffc2ab7314fc8a435aef01926f159166f4bd7d88fe1b44061abb80feb606115ba976cd321a2ba1384f2152499a59481e9ac622f1ab57d096eaa05b73f92869"; + sha512 = "e9a107d459a4a7eb90b38edbb33a67c6f03d7851fca8be00c5f981849cdf9c88b92e283d094d3a13ff1b3f37da417c09e0d0379828eddebcb984e9684b000385"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/et/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/et/firefox-76.0b4.tar.bz2"; locale = "et"; arch = "linux-x86_64"; - sha512 = "87f00de95bf58fd3bcf54569843973eaa8a435d7a4d861346f7bd08ffa475bac7c43a2ab178b1907b9614cc6fbbf7af611163fb5c13e685f7c748e3451d01110"; + sha512 = "3f859bfcd75718abf816668a1fd15b26bff4b70fcbddd330e69180476d7ad40be13447c533e49ba24bbfe5667dede1fd0024b7aa976df5e4c739ffe75b0ed31d"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/eu/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/eu/firefox-76.0b4.tar.bz2"; locale = "eu"; arch = "linux-x86_64"; - sha512 = "551e2df324eaa2741619c3f2fa3a6b3d90e3f85d1b410ceeb372541bddf2b049aaeb165cd33f4b20a7164cd7fa5e8d201860f429e35adb071eac22e9ff87f4e7"; + sha512 = "6081be920d434127391e4946429e677f421b381f371fc0539ebc92e29963aeabe07116dc9c81d2430ca0cbbdd52bea69157ade801f076cc8b192e3eaa2f5e427"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/fa/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/fa/firefox-76.0b4.tar.bz2"; locale = "fa"; arch = "linux-x86_64"; - sha512 = "15f7a4b78ed89634d7ce99c0ea68c8bd1251c8c88f6d789f8bbd0f3b37c5d5f651b973478679c05d29c1b04ec0c6b6f230363f444406f451d9422fbda7770df0"; + sha512 = "abc53c13aae0ced9217532e92a9e9b4a9f9d95d76ec8ae0395d77447804d24aa503caf644a030acc29e69feb6f89569b53b9036589f454a1e9e72eb900403ef7"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/ff/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ff/firefox-76.0b4.tar.bz2"; locale = "ff"; arch = "linux-x86_64"; - sha512 = "4c01c5163f14c531e9eb864b7deda329ea9914ea023cb7efb64cf4f56d48fd13d08dd4057207c4543a6b60bc23037d9c343ac36901d6819c422cfc14ea75b38a"; + sha512 = "ba30dc08436d48280298efcf85f509a56c903e5bff1909332b792449032178764bdd7ca77ae81d02047f439da93cac45486a2a8fcce0d1dc1c876c01b3468066"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/fi/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/fi/firefox-76.0b4.tar.bz2"; locale = "fi"; arch = "linux-x86_64"; - sha512 = "a5c1063a00ae0f9dde7e51556aa42846230a5c802c94c84c06d4bd91cbe767363c40962b8e9d940f1e99141e73267fdaf8b35c85122b3fceecaf57a939507273"; + sha512 = "5e6833e0d4cc404a9224ecf5ae6cd1e5efb4a5776cefc19f7b1eca9aafde6b3b6a3eac8a34b2cf33b16c60b68f2940fa206ee8f34b3a1acbb13aa468dd5f1457"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/fr/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/fr/firefox-76.0b4.tar.bz2"; locale = "fr"; arch = "linux-x86_64"; - sha512 = "42015fa91befd39501ede0fc44ba98835703bf939e7dc4de9ca6c26390350c0e1196ace4eebd4f8d9e162c8f515249eb61a56ed370cf7279831a75c6abca570a"; + sha512 = "c33412dce69592c1b92b42e982a7a7392f46142036a250ad39f4e1a0de741017081b6730fe1ef93a3b8015abee13a8e4f3ffab652d1b7a86be04d469b910fd85"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/fy-NL/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/fy-NL/firefox-76.0b4.tar.bz2"; locale = "fy-NL"; arch = "linux-x86_64"; - sha512 = "c775dbaf216863c0dfc91bb1d26cd9ba9908684d981b7c9ac416fb0fe5f1dde7c64ebf13b8864bdb4c56e7051c3e33e677e757c225876a6e1f88955ebe01cc05"; + sha512 = "f1dacff746fc0695c9e3576da48a6d1dc485398b5468659fadc03f7ec24a2b9ca1e530f4c1c8a8556d80f682d36fc977438cdb8bb2397a01dab54f8e09ff41fd"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/ga-IE/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ga-IE/firefox-76.0b4.tar.bz2"; locale = "ga-IE"; arch = "linux-x86_64"; - sha512 = "958277939ca65eaae828ed5e9a0f76b612be6f803176ddf0cceb13d1e60baa35a051ff95ecf344c1ca2d5cb6474dcc446c272053141d49b8f4604dbd70df8793"; + sha512 = "423ccf14bc5a31a332428c023784f33ae35106fb282591d161194504f9c3b4f647dedc6af919720b718925250d1bf2a4c3595aaeaee0502d0bff85025bcaa441"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/gd/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/gd/firefox-76.0b4.tar.bz2"; locale = "gd"; arch = "linux-x86_64"; - sha512 = "db79dc9ab736973d08e6e180a4b7b10e903c7627eb0e0222c044d4b3f4d4d3edbb9f2f73d0e6f19d304e4fa75208db6395c0fad28d1e3875386036bb30086c41"; + sha512 = "004b52581644e3263aa8212048c48e163e48bac6172cbf17da9de686a6265299f96f72ebb7b2d3e8aa60fb1e71e1459b4ee717a8d74557c576edd79cd5c581dc"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/gl/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/gl/firefox-76.0b4.tar.bz2"; locale = "gl"; arch = "linux-x86_64"; - sha512 = "212a697f1289dcf582201a2f0be56b739a71d2ddc0157c65b567c7dbcf6f51922ab2d0743dd979134b1127661addde43612d18f6a4b88b530578fdfccaee4063"; + sha512 = "206fe47aaf14c3c054d1371d84a1adfba8853ed0e5622c871566bc4540f6f099530ad62d0e719f1731816a014fc9310db5dff5881a8bf48ef3807b143d42a2ff"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/gn/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/gn/firefox-76.0b4.tar.bz2"; locale = "gn"; arch = "linux-x86_64"; - sha512 = "713022f28bac680227d1bd5e2bedd36aff2950c0c2e498ef1205a02d6b3ec0bb7dfd754d18a43e7b141b535ddfb71b1ca711b1b4dd955c66ff469f43db71a8ff"; + sha512 = "f5089e9300d10b3e51f29d90821c6e9117bacec194d37c89d9c26d28a00f1bf694b5399f51bb7a314dc42e30b2693e8507af8eb5edab6d9edbd509e0c0e11761"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/gu-IN/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/gu-IN/firefox-76.0b4.tar.bz2"; locale = "gu-IN"; arch = "linux-x86_64"; - sha512 = "f0c80568e5050cb4758f8269b951f622441799e0d8ae70d1e3cc1c3a7af0972f6323ade7844f3b3002f8a701a2a1b29af320ee95e72a349ba9d9903cc4aee012"; + sha512 = "38756c6000aa8032a6f182f3267e738cb100ceb7762900d718e996a9b538a92bee3acc9d2368cae1a675647031c4f05218745111828031587e0d29195f56eb04"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/he/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/he/firefox-76.0b4.tar.bz2"; locale = "he"; arch = "linux-x86_64"; - sha512 = "5a5746afb795c4708559218d3de66042f220f6357d634e20c001d45a3b86df99fc6b277875837ad13138bf86f2d9577c27fc5573817c31e434de41d5f13a6dbc"; + sha512 = "bba86d7a1fc6746b1f14e1df5720d5cfd688140779ed0117eb0b7966d3d1500537a3caac19968c7c272f9061bb6d57dd068543456cf87d939ce567c99974a014"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/hi-IN/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/hi-IN/firefox-76.0b4.tar.bz2"; locale = "hi-IN"; arch = "linux-x86_64"; - sha512 = "b03942c6d93f3baaf0944ebeb27aea39fa331806375135f91e9c8e45ad1ef62c9468d05d4c776f2c4766c0db31183fd23fa16a18f860ebd75dc0b79ff2abdf0d"; + sha512 = "90ad90dae1a6864e1df05b174105e145d0a2395e465f5e517e6a4b240e157bd3710b6a44c6c016fd49fec3756d9f59e2122d1ec6279fd7717881f40f17eeca13"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/hr/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/hr/firefox-76.0b4.tar.bz2"; locale = "hr"; arch = "linux-x86_64"; - sha512 = "c090bb4ed245ed043218fb202f00e227bdf8a5425f78a9a311b1684df0d1987c1f54904f89a46a8408c28726e06798da5755ca83c0b7383561f9035ed4b8c105"; + sha512 = "b0ff873b157d62f227a0855cea5a14651a42533c6eacfd4a278a3c28ee9cc87aef79c459dcb28c90f2554c65f5974b03378cfb764b54a0d1d89fe45d6572147f"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/hsb/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/hsb/firefox-76.0b4.tar.bz2"; locale = "hsb"; arch = "linux-x86_64"; - sha512 = "71155f0231fcaa744be1828967a1194b5ecfcd30b2ead3fa0294be46ee7ed3476636304862c3fd222359ac8fadfb5279882bd2f7965eadf39641cb611c12d6cc"; + sha512 = "742a1ade2fb13ede18024c8d24268012ff00cd9dec283a7ca93dca80d6f3ad4eb0835cc151cdbc70327a2da0d53b34c366239a9da625d4b6a6b19951a32168af"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/hu/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/hu/firefox-76.0b4.tar.bz2"; locale = "hu"; arch = "linux-x86_64"; - sha512 = "f35a883d82dca691e4537fd9860d72c8f68127f4b91a7dc1641342eeb2207700fe31965750e6916e1633728ee022bb9c940fef37d3d973bb4b1f1689779a74cb"; + sha512 = "d8635bffa34c824f15b8328ffc5a3334321470a9f2f4a9d16a534fe2548f4e438a612ccea108ad5165b6e87b9cd837c478e8fbe42c89fbba36202dcf49896ca8"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/hy-AM/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/hy-AM/firefox-76.0b4.tar.bz2"; locale = "hy-AM"; arch = "linux-x86_64"; - sha512 = "b0c61c67db761c1c6833aebce55c02e17aaa7200150379ef9ba59d94d8a40ba61054863f80d0c6740a1fdab4abcf221b98407c4600507b0a1f363d4356fb1503"; + sha512 = "ff885e94eadc4734a640b97c85e540a662737bc68ba26ac6dc4a467b30c96a5d29a08a635542981d60e38754123d843c5f9722a9e94928a7b408ca252823089d"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/ia/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ia/firefox-76.0b4.tar.bz2"; locale = "ia"; arch = "linux-x86_64"; - sha512 = "711ab43445da8d8f72411148fefcaddb346e253b191558ebe9fd363154bf6eb320a7bf5715e9c47bfa154623c2a4a96461aeecd69234155b130672bda1a991ce"; + sha512 = "65e62703b9ea3b10d3134956c56e3ea6c44a1ea4c4d36c1a6c1cdff46fccd25baf43500108ff34a8a8c5b8328c478600b3cf7d33ce865884302aad407b46e89c"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/id/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/id/firefox-76.0b4.tar.bz2"; locale = "id"; arch = "linux-x86_64"; - sha512 = "a622c5f7a0e06eccd3f3a8da31b23837dc78ca1bfd3714c002ad551c6e12de8331e1ae12665395ddd174aaecf3b793f5190b51e34c33934f68636c5e49996a00"; + sha512 = "02656928185eab47e08787fc1ff267447c3b5cd4997b4a1d954d31c26c36fc78445f28e85250c3d0bd94244900e7bd9a962e3a93e8eb4046ae8979e407b07ce3"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/is/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/is/firefox-76.0b4.tar.bz2"; locale = "is"; arch = "linux-x86_64"; - sha512 = "2ed96a3de14709ce8c03e86b12ae1b77b707bc17bbccb05b0462680f19c0579e458be29c48aa293d6eb841aeece5ae8acd7b38209716c8d3c769297741e283e6"; + sha512 = "597a29fdefc3ac3746eb1b898a51f1294cdce2fc7edfb958a8967c624291275d46b382e103fb3f3e39c08684b1bc4a90235e62256b16c37bdd230e4eb2b65e7e"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/it/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/it/firefox-76.0b4.tar.bz2"; locale = "it"; arch = "linux-x86_64"; - sha512 = "302a12bedc6d20a568552da06c5a03cfae9f85d34cf8c6c5be1385025f3214affc23d1392fb237bd6f215ad12fcb0600230e87202ade6b9cc3ae5c13e0878f5d"; + sha512 = "6eb5658a073a1ee84803ed669794bf307cbd615c220d8e95596f4c27811f20afa4f2b67bfaed94553dfb2cf3c4f5a09f0a5b4ab61f517794200a8ac11e00262f"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/ja/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ja/firefox-76.0b4.tar.bz2"; locale = "ja"; arch = "linux-x86_64"; - sha512 = "76217b47ae6936673906c0d60e15a516a855aed316df646f50a05228c52e63c19da8463c779ad95008ad190139152efd9c94603c2e71d3eaf28128832a70965d"; + sha512 = "0292e5eb4fe8a11f13a8a824cc1f996133abf49968956887847a9556f2f418fd4146629d806a8364e103ab62542abac4c405e32800567b140a51036b5a99eede"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/ka/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ka/firefox-76.0b4.tar.bz2"; locale = "ka"; arch = "linux-x86_64"; - sha512 = "f61d5547e24b91b03c876aeb63764b9d382061aabfc43373cd0bd72be1173296ac0470b78861bec755ed83b0336debee3b63c93fb7b8f2b58cbdb4098b43004b"; + sha512 = "19d98eeca2ad2198b928f9c28c2ccf27328b3fa47b56a9f6aa1878299d582d1a18209625dca3e00285219b2fa8c08ae6e4ef581db80611af699304b8072a56f4"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/kab/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/kab/firefox-76.0b4.tar.bz2"; locale = "kab"; arch = "linux-x86_64"; - sha512 = "79368f5f6a68586927cc8831a1b0ec5af4141e17326f919cda3f526c86fe210dcb80fb598a04441d23559016c99d2e090aebec2ce4fb34e45fdbb686db5a5466"; + sha512 = "f47d60eec573dfe2234cd166270c078aa649e0af0b5c85b6a439ed83535b497185bce6be633a923a557a845f6a66f441c42b7a8e8b76118eab5a545f6dafd512"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/kk/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/kk/firefox-76.0b4.tar.bz2"; locale = "kk"; arch = "linux-x86_64"; - sha512 = "dc8ccef23f39f21b1d669968f72bbdb63ddad45b869b3ec0ac1a81c0f6b00bf5eb272426e4a44d002b51391bc86ca91b7271d48877824d094455ad059cb9b624"; + sha512 = "d25c996f6255d6df234504f7a0cd6de5e231ad00ee1baad4d09ca15543bb7fdca6ee94c9e06a61090360377245d367dcbb8686fc94997722cf3d2b75ddbe2e1e"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/km/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/km/firefox-76.0b4.tar.bz2"; locale = "km"; arch = "linux-x86_64"; - sha512 = "79ee964f99857f95d86a9d7ed45e52cbb19711a94aba236ab594a0bd98585f82957e113c02dcc0e094a23e5857107df2c8d3a88dbdda8fb9a04095b350155361"; + sha512 = "24b64f1d5f8b5f26d213390559f1cf3145a845d0bc5d27bd53fd9311a3110f0bfdb54f03962daeed0c456fd59e9db26c400af67df783e9f76546e3a9bc689615"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/kn/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/kn/firefox-76.0b4.tar.bz2"; locale = "kn"; arch = "linux-x86_64"; - sha512 = "47648e65c7ca94b8208d6465544ecaff521e03b7abe333954edcf62ae24d1f0e886cbf63c637eb8aa6c97d3af1fcda88e8b4dedc037469a7e25eee7ef55fb276"; + sha512 = "6305fc10709819a454b475a6828fa309aa23634de6704a2edc46ff41e05cb899c96189ec8698b72d375a3d33da47eab654d26e4987ba86c97edda4184fe33e96"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/ko/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ko/firefox-76.0b4.tar.bz2"; locale = "ko"; arch = "linux-x86_64"; - sha512 = "dff738fabdaadfd325701b5e070e755f8e30c69e954b3a51706d6cf10e8888e55641ed9ac1f1d3434bcbf453bc86b9e4755cb596fba2c6928aa1e10dcdbecea9"; + sha512 = "2359b56d7262c17689f5c1b1609f08c36312b5f01a1aeba482b8e2f274d3bfa6142d936867c01656abdb9502d688a94d39924c422883918e74bb55f365decee6"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/lij/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/lij/firefox-76.0b4.tar.bz2"; locale = "lij"; arch = "linux-x86_64"; - sha512 = "64a5d2546d0c10e9007c947b7ebada5f779ea5447c371014cd06edc4d6ee4e2511b8d3b5b39c8498f879734e7dc65f375bf32cde445a0331cf81465d61c90df8"; + sha512 = "d0e6bafc119c5e5d466420b5713ba0720871cd2f51c19c7c71c60cc5676c21bbde865d94d118747377dd0ea73a572dd50fa43c853ca5df13523549f4b6979be4"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/lt/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/lt/firefox-76.0b4.tar.bz2"; locale = "lt"; arch = "linux-x86_64"; - sha512 = "0ecc945a159d80dd86a8b66061b9278a92a4b8f6f41dcd6f260202f1b57a8c0f582e7f92fbca675de8227893ed5f86a29a7dd79bbf95264dfbb2592fb499ca9a"; + sha512 = "95c0ccfbf994ca172eb1e69edaf896b2c471f6eb1da2884e28273f91b8ee7617b29e0f713228f5c6f4a39a13baac39e6ec760ed33961264bbf915cdb4641cba1"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/lv/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/lv/firefox-76.0b4.tar.bz2"; locale = "lv"; arch = "linux-x86_64"; - sha512 = "d0bcb0a69c29be9ebbc103830c0c3aaf264e07c6de0716fbdf38eadaec70d7d2928f64256e66a7e5bf916e6306e3dbc1105be12129e26254f2e5c969d348345d"; + sha512 = "7c4951a58394c510499d8d0350cb5ae5124f26c926129471ec2b3067cfa69416855f49cab8cd32b86d1b003f2ed13e672635cfb46389b45fc59c0308a638c6e5"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/mk/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/mk/firefox-76.0b4.tar.bz2"; locale = "mk"; arch = "linux-x86_64"; - sha512 = "86924cb5f2215b84aa92e20db474ebcbaf9428692f1dadf92af5a84f6eabfdb8ba86f304671f5190b0241ad564b639fb6a3311145f989c9815caac588a5b652a"; + sha512 = "7694100e1894b91632393c9662e376a9884cb5c69298dab112daf47123f16509ff020c3f52f790c2173b5bf8b1316e893def1c9fa8b2d4643e0db6c5da7ab475"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/mr/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/mr/firefox-76.0b4.tar.bz2"; locale = "mr"; arch = "linux-x86_64"; - sha512 = "c3eda294490d43f5d3565d17da214c8743f21016758c3892958abeded0acfafa01239c3b9921a8ace6d973252952ecd48c968f915ebb58632accd6ff378ccaf9"; + sha512 = "ff15aeed5144f65978b28e7fdf3679ebb3de83f696b7bc7ec3a390dbd9375c85e7d793a157ebffd958eea271a69ae054b4bf7112488ef42cdbee5b7a72d16783"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/ms/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ms/firefox-76.0b4.tar.bz2"; locale = "ms"; arch = "linux-x86_64"; - sha512 = "a05273b907ef572864b90af5a1118feb52d47379c9e642c23be5767c6505b180f7a45575d9853e754d8ca7d0e73cc955980d29cf628b9a5cdf553a385822e9f9"; + sha512 = "1c0b206705a8fe0dd4b7adf155feb4ba1e8dabd176f891754f5b3ff7cc2279d17cf5ca3b23e85fc6033092cc0bce4cfb62d433a4905d42940028c4075704cdc0"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/my/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/my/firefox-76.0b4.tar.bz2"; locale = "my"; arch = "linux-x86_64"; - sha512 = "2b566d3ec5ea31599f1ef580cb18c5e1b85a73f6ec186c00e64f11e668da3b7c8eed1f8fafbe4fc8e33ad51859b4b02ef1596af591e9c519bfdc798320d0e013"; + sha512 = "a3fb6b26e2ef26b681240d3bc3b9e46ee164260e0d3b14d9541a041a8c0c3e8129e6b2f6c7995825462b3f9c423611fc3c7327725aee8aa3dccf571d5f178be2"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/nb-NO/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/nb-NO/firefox-76.0b4.tar.bz2"; locale = "nb-NO"; arch = "linux-x86_64"; - sha512 = "7608a9470683703efdda2fcc4168bcb4b77ee006fc1a94329de91676b9922d1540770a760dff84ca10b2c5a91e6f8b1adf96d9cf8d9b333427be373d5f4def3b"; + sha512 = "8f0a43f17490354a6f3a800e069dcaccdf3c8acd99a2133e5cc65c0fd8ee62637967ab528dc0fe7b992e35a69e508db95b30c42375c5b8d5268de153169caa81"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/ne-NP/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ne-NP/firefox-76.0b4.tar.bz2"; locale = "ne-NP"; arch = "linux-x86_64"; - sha512 = "17d488b5a8db722470fa0665f3985f9756a1e5f76a92f3770c4688b96148503697bef4ebee523071b7769ed859bb6cc70b5a4997f7126bf428da5433decd3d17"; + sha512 = "c7379020b8800e44e18a3beb98729a716159d8a4e9b19556aaee935bce39a99ec629056c5a9fc40deced93d2947a1d360498c87fb6e9060545ac359774589912"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/nl/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/nl/firefox-76.0b4.tar.bz2"; locale = "nl"; arch = "linux-x86_64"; - sha512 = "e773852f0f9a9dc60fb2de5b85d33f281aefc6b32d0b6e4036af6d46dce0aabad88f0d772180a14f876c42112c65339a87177d53477f672f83f438ad933b3df7"; + sha512 = "88b24713707ab9991dc189973a9077dba86833580edab2ef5c40641a55a34306fc27c68dc56baa0d84b30051f170aab2db89a4433daf5b14a3dc29d58c01f691"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/nn-NO/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/nn-NO/firefox-76.0b4.tar.bz2"; locale = "nn-NO"; arch = "linux-x86_64"; - sha512 = "e0dc703dbd18b1e08fe7e6b6d1d359389497aa4339bedb5bb3916de0c1bac40acbc0ef8bde51cfcd05167c98dd81c9b06e53bde773f4c2a0d51bcc9afd8317e5"; + sha512 = "55c9b1ad3b7f452de4357b423240ccffdeeb37ed8c1bf5b428f36e12337ce81de9c53f3a3fc7c5db1171080d07d8b62dd8cbc3c984730dfb39d7deef70dba46a"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/oc/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/oc/firefox-76.0b4.tar.bz2"; locale = "oc"; arch = "linux-x86_64"; - sha512 = "067eea40605f84011c9cb7cae951c5a4d3ba2952971a613148946f5f83a4dfe19576f6b9acde65dd2d266bf2bf5ab83ef94e4a169ec54a70091e89b6ce7ba8a7"; + sha512 = "fda67181ce402948b53b37975e85803d34be4269e8668bd1446f814f644c2c6adaa1c01f097efaa68f6c1ed90e183fef85a838248102c5b2858039575363eff0"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/pa-IN/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/pa-IN/firefox-76.0b4.tar.bz2"; locale = "pa-IN"; arch = "linux-x86_64"; - sha512 = "edbd11856f14a1c2e4dc430752a9dc78b3f5f6d6587208e936b436aff6e2384c8604e9dfb90f292690f7ab7952b2b6598b04635972640336a17b01a03b7d7c62"; + sha512 = "dc29b7e1d0fe74cf8d5ddcee4b201e34e538e7ed0e9b1a6271957183c40aa07a978cc02dcd71eae546c4894f7d869938c312e896d84b9c966bbd8765bf407567"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/pl/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/pl/firefox-76.0b4.tar.bz2"; locale = "pl"; arch = "linux-x86_64"; - sha512 = "78b9c89b93edec1e3a53697f3212c7084c714147e44437620b966f2a90b8b2c917bc219c3b8cba27b08bc327515e0993a7380b3316d2efb385be7af120e72de1"; + sha512 = "e6730cd1d34b13a26f6e6e7ecd6c893ae49d3158a9173b4870a913a35c8ac743f26e7220a4c4b3a7e10209e2bf3593416da74b9b07ef27e91bd46ac9df833010"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/pt-BR/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/pt-BR/firefox-76.0b4.tar.bz2"; locale = "pt-BR"; arch = "linux-x86_64"; - sha512 = "3ad8e83f2169ab552cb6e03f60d343762571824cef104f7884352583a5d77caa2a1e8c85c29793e43555dafd8761df684c8d6d11b733ff899d5da2b7d42822b6"; + sha512 = "4d7f7598095164a8784157f7fbf5e9a7e08be8cc66492dd2bb083002546675c725819281b1d46f3095b9d5735ad8375b083b90936b301c2b90bbd2db0f7ccf35"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/pt-PT/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/pt-PT/firefox-76.0b4.tar.bz2"; locale = "pt-PT"; arch = "linux-x86_64"; - sha512 = "83f4200e1de395c37fdc626aa6dfd3ee35597743d5f4d32832c143e917983426a725b0ae3f73090a35abdb96fb2c7aa55fc4595668641ad868e9b596679ed2e4"; + sha512 = "6c929036a8acaa3bcc0e7fe824b6d899abe06cfcfecc0a382db722ec139969f78789dda53432d14640d538648237fe3c93e532c035d81c3ca72023a6800f0ede"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/rm/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/rm/firefox-76.0b4.tar.bz2"; locale = "rm"; arch = "linux-x86_64"; - sha512 = "5c25da1ff0d73ecb7b77901341350c7f8caea4c8ee2d40740ad6f5ea70a7a83127df8efefeca2ef3b1f3240013540fc4f70208955c62c25e0ad9bc7c56763f92"; + sha512 = "f21aefb4ca321533b46c550421db84094a5df593f6d77a6e036d25284dde0394c317bca12ac1ec45f04b6d16cd94cf12e0c5a3f6f43b3336e16f6ec0f6317e2b"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/ro/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ro/firefox-76.0b4.tar.bz2"; locale = "ro"; arch = "linux-x86_64"; - sha512 = "fd60dbebfec4b2514ca7151fffc9516c94cddf4bfb75e337735e0025746d1d19ca90762c84b97ca15893e81e29a1f62fafb4c970fcf1ea8e191fe74238078537"; + sha512 = "598376640d64d6a882653adb0a77164267ca694dcdb1a87024591393e209df516df891e5fc548edb2cb045901846f898c203bc6d08e56792341498fdae64a0a7"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/ru/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ru/firefox-76.0b4.tar.bz2"; locale = "ru"; arch = "linux-x86_64"; - sha512 = "db1015936799ed1ba14a4ae81adc5046e9b51b99fdf01d3e88e9925bdacd8367d97662278e2512cb15eadc4fe9fb40a6c4f66bdb6c7492dc6f411afa6e31b430"; + sha512 = "d3d45abfe074d85c992bd74b622387d738d8d19bb4e994669aef9b63b15e9de0a9ffdd0349ff9684380a8797dc23934e2ddfd7d54438b5fbd9c310a1a421ac6d"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/si/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/si/firefox-76.0b4.tar.bz2"; locale = "si"; arch = "linux-x86_64"; - sha512 = "16b685a3d27a94ea3bf1c35054d2b5c6b718e528598f0a749382470986adceeaa96e194090a4d0a0d3ddd3ae8b70b57f4a31307e81c1dc15dd7e30d4db8ea359"; + sha512 = "c7cdd65c9f7404146101c265e79ccd33554b398595506acea531beaa022e8f64a8ab62feca77c94a355cc86ade99d6d470818b84c9dac80ca143390ec3617873"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/sk/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/sk/firefox-76.0b4.tar.bz2"; locale = "sk"; arch = "linux-x86_64"; - sha512 = "60b18d7786cdee2789cab02ad9fb28754ea9cc5325fe780b46f3e0766ef37cf0a7ffeff4ec1c207db3b0e14bfedf2a1598fcd0adb4ba28c63ba6411d2c95c79c"; + sha512 = "6e7040a36cccebee23671247a150fe3be0a0b7c831615c7c65d5aa615ddf740c94cc2c27418e7aac8eee136c9e829b3724c767e7be1c88d001d44dcc7ad9ba06"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/sl/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/sl/firefox-76.0b4.tar.bz2"; locale = "sl"; arch = "linux-x86_64"; - sha512 = "55fa56427b0f6e6667ccc12f6b326111e7b19b88b231d084925d57a7d8c1528b81efb0be1dab5c0a857efdc112189d6d72f86736793264a866dae120ac28acbd"; + sha512 = "bac64f281f57da938e1acfecdfcfa69dbcca2b1b5f923e92a5a01aa0f706a40db34dd563dfc19b2f2cf4eb3d3216c78eb1af9001beac4d3f387401f442bbe6a3"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/son/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/son/firefox-76.0b4.tar.bz2"; locale = "son"; arch = "linux-x86_64"; - sha512 = "7a6aa2228a562910e1e1b0f358669d4da66112977373c7bb88e3138bcdcec8cce0c8c7530700b28872f5f38e6ac06a338c6740959b4ff7d75091f2c378c4a905"; + sha512 = "1f0a557c16baef46717b448e84b5e5cc249e706a8ab9f4fdfc1b0ead85334beed931fcb19484f0eb796946638c09342bad52b8c0b93c8a9f6eeb71e7d96d0a2f"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/sq/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/sq/firefox-76.0b4.tar.bz2"; locale = "sq"; arch = "linux-x86_64"; - sha512 = "4a2eaec9124333ee83d461762ba1d8fd12c9c108b1bcb7203e4a6d437e510b26eeec2706f8338f85ce161292758e719798cc20c6b79a0466be22dbdfa0939f88"; + sha512 = "7e996dccbaf10e76939b018c1fb656a42691d2f9b70bd8d018b2767cad55bd34c1241e0dd4a738b7ab503efebbb17b8ae9353a70fae296f0fbe3549b4071a9e8"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/sr/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/sr/firefox-76.0b4.tar.bz2"; locale = "sr"; arch = "linux-x86_64"; - sha512 = "a6fe13a64012c7383313304da2c8b4dac691416ba50d364fd6a40679353449700e2e320103fb542d8a979509730de2c84728fefd4b1fb2ebb203f7c7fc52b808"; + sha512 = "6cfb8e0e55a61bbf5b74153503ee71fb2851bff5905c68e61adbe2501d7898f45014e7b20073beffd2b02c0f51d861b5be8473522a42acedcac463e55998c959"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/sv-SE/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/sv-SE/firefox-76.0b4.tar.bz2"; locale = "sv-SE"; arch = "linux-x86_64"; - sha512 = "54568bca3be19e5d9777a2d0cccccd936b2b3b559b238635c89dd392a1c7f72504aa2198413d6954cae18000ded74593147a11abd9000ef10f61071d531b0e28"; + sha512 = "88aeb01a8983a482a0e984d95c40d737f1fa89e39d37f7d5feb5e246c25a39f42e0cb99a8d3b8f7da001854d60cc370cc3f62ade04498e6d2f9817ccb869f312"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/ta/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ta/firefox-76.0b4.tar.bz2"; locale = "ta"; arch = "linux-x86_64"; - sha512 = "a6b68224395e3ddba38740d283e1841ce43a28a1f4cbe6810ea71d6b7cd40001dfafe2fb053d212faa5133e2805366575566de2bea3bc8d3acaf7b782c3cdbaf"; + sha512 = "8e8dfd8a3a0fab2528ffd237d6ca83c3fa41551be79e2d85fbee9766731ff53345f912af6689b336db7dc8467a57b92664c0981f5c660217a8deacdb2b350408"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/te/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/te/firefox-76.0b4.tar.bz2"; locale = "te"; arch = "linux-x86_64"; - sha512 = "e20d28c7cd95bbbe5b1680301d94894bf0b8c60aad997515d73f792c7fdf17c3efa4314c210082886bc8957b00a7f919959815e15b994bb616bd7c0ed0d40100"; + sha512 = "43af76e66b26af3736c373a54b2bd03571257aa819e33b7ba40659dd7e5f9e7815116ccb80bad66ce5a2bcea4d9130a07830cb72b70624e567d1b9650dd31c4c"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/th/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/th/firefox-76.0b4.tar.bz2"; locale = "th"; arch = "linux-x86_64"; - sha512 = "11564e0ba2770f87549c272faecb746323e19f46d9c6e116ef44a977d571c4ab917d89d1c0cab702074242d36f544fa4a6810bedd2b1088af6d3e23cdd78a924"; + sha512 = "c8ff860ceb0176dead8663f5043ff68865a38ff008a8a110bb37212afecc57042afd150c35c0b39a56fadc04479b95494e95f966c79a789adefb295269420222"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/tl/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/tl/firefox-76.0b4.tar.bz2"; locale = "tl"; arch = "linux-x86_64"; - sha512 = "072602e5f2973d7412dc8d3e4d0aa4a76aeecd493e2a1444d9348e66ee9dbcff1d8c09f35ba676dbf2f056aa0e843e87c2da6d73c6f3efd38281fea7f60c5d12"; + sha512 = "b6d313bae860d3d7449eec5527be23a8cd148a580b416bdb2bb8760c2c5996863a31b175291cc4682d574635d3dfd35e70230cd0fc7933be78a217092ebc0c64"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/tr/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/tr/firefox-76.0b4.tar.bz2"; locale = "tr"; arch = "linux-x86_64"; - sha512 = "2b5ca4ee7ff322fbb986cf4946fcb65617606f8f317cdf357a81c2a9beb6492b3167286cce7a18083df5bc99a5782f98953ec79f6ed314d84b734f41c5b76254"; + sha512 = "42b3895f52de7c7f332f337ed0dd3ad108c3d41cbce8a6c3bfc64d4041266bcdb240d0960519e6157a5ee1537f3fb50fac8aec3bbf89aff0cf1a4d99fde9ccf8"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/trs/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/trs/firefox-76.0b4.tar.bz2"; locale = "trs"; arch = "linux-x86_64"; - sha512 = "10ed6b3cdef78a903ac32bf02dd767a016a33e7d59de0dbc9586d8afaf16ddf8bbceb557909753ca52e1c0fe1b24da5b72c3749bdb7a56986bfe30f49e2f6d9e"; + sha512 = "f4982e28dbe0f5ffb9cdb5038d230f7401c77c368e6a1427018ea4e085bce534c8deee81b30a8b4f1b93d48baa0298d6d74720cfc0667f0c9555eb18a6746e26"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/uk/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/uk/firefox-76.0b4.tar.bz2"; locale = "uk"; arch = "linux-x86_64"; - sha512 = "2e640904dc0e6735510ec50a2f735f3647fde090f2c4a48b34ae2d123e39ad2b71923e58101a646da86d54865dac69b2c5ec7d4d54d30cf9521008e9ad6c0f04"; + sha512 = "d82258a4aa12e64e13e5e22948f9a80be1482fb59585e31ac5caffa80d0886af98cf14c122394f0978b5706e66e34b1158a0e19da213c49037b3f65683a39984"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/ur/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/ur/firefox-76.0b4.tar.bz2"; locale = "ur"; arch = "linux-x86_64"; - sha512 = "6aa743480ea70566a12f4486ed8bba83482c34387773f6ac7735ac4ed6a14a9e7e53fca77d5fd295c6cfeeb395fb309efa41af0bd00d77355e4b2a2da2575e2f"; + sha512 = "527296db4c495f09b66b4898e6b04f496ae202ad23243de7259715043ac026863ce8a1c849493226e935dc04d04f528ba9a7bd4e9498ac36b2215eba118dace7"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/uz/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/uz/firefox-76.0b4.tar.bz2"; locale = "uz"; arch = "linux-x86_64"; - sha512 = "3292332ce5efa59d889c0f32daab5279a37b342c98e6f4aa05e90a3db8c91f8517c26fe83a5cd59b17400e7bea0e256ae8a44b58f9b620e58497bf3fc0a52b96"; + sha512 = "4a211cd2c988c7bfaa0ee28b2703d084ac17331263231847c23e210630162e8347539c5103fad19638a8abfc2bd2c4d0b08dd3d81be24d248d685dc80831f761"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/vi/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/vi/firefox-76.0b4.tar.bz2"; locale = "vi"; arch = "linux-x86_64"; - sha512 = "8969ebe5a3148b85daf23f7a4299e755461c722b4696a700e2b6c66164ce14c60d2891691afb4093cc394021718c670ca6bd113bc8dbb7f6ae705299fc51f9f5"; + sha512 = "1d445fb767d74fe9d242722346e0475e6ed18c0d7110cab12596265e68916dc7f09017da7a2fca79b249c3da7eb140a13377ae4fb6c69a7f2f0f55198f705f23"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/xh/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/xh/firefox-76.0b4.tar.bz2"; locale = "xh"; arch = "linux-x86_64"; - sha512 = "570a250b522b5061ee9b3fbfddecd9018c93baed7e813847ab9fd9426855ecc6bd940e15dd08b5bb0d3b34991245104ee95a5da4f74c7aca895fe086e0b66973"; + sha512 = "2bd07a9e4e4f4bc17765a06616f0c5449968c111430d82f2b506c316305b1ad417d17c9812642f0651cba5f32b4b3ea4330254ddfa2ea9b08f2e980348f4bc39"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/zh-CN/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/zh-CN/firefox-76.0b4.tar.bz2"; locale = "zh-CN"; arch = "linux-x86_64"; - sha512 = "b86320fe1ddbed83cf9ceba5d60c0d40e0e137f509a13b70be7b2024052bc5589fb3bc84ded1b3987bff6416dfca11a094f7e6fe881f04b35899fcce2854ce0e"; + sha512 = "f0274b0bddf3ab7b69071482aa3be4b7ab712ed78c3f5f4aa51b64f1ba8c93408b64223c73139a4c4fe186d7bc0b69169d98c9ebd859c1c8881aeaf8050a1eb2"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-x86_64/zh-TW/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-x86_64/zh-TW/firefox-76.0b4.tar.bz2"; locale = "zh-TW"; arch = "linux-x86_64"; - sha512 = "0d5cc478d801dc2a70bac8a38bde654311d32ba5059f0047d07e8fd321fa593ae56baf3b8c8f6e93dfc9c3ea4a9c5298079271220da0b92010e65eab2b7dd707"; + sha512 = "973c4d852d71cbae5430afedf33adb1cd143d2e333e06cbe697400c1ee2ae30c6e8361f78c99e131917150152b2fc30acc2b5cb274147ec5badc466c7d3ad67e"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/ach/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ach/firefox-76.0b4.tar.bz2"; locale = "ach"; arch = "linux-i686"; - sha512 = "f95b9ba5463a59a45fd34abceb5026c1f3834064cc318f91cf76aa118be5a796482b5fea14803f36b973c7a9f9f07af83561248feb7f92c82c1ec793471715c4"; + sha512 = "7ce4970144e5f1d09daf747629b737567bf9fdacc21f5477ecd176dce714a7b9a8a22e195d772f47ea9bfe97c4c8b1bfb515aa785786c47c2c070f58ab02376c"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/af/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/af/firefox-76.0b4.tar.bz2"; locale = "af"; arch = "linux-i686"; - sha512 = "4f68f211b7f2bd2e6c3f42f9698eba479b2c9dc60f8970cee1f0dad2f9a231ab8a1f093da4d1fca0589842e94bbda148ec79fc09290e1a85e7c505cb4f006020"; + sha512 = "33d364d036646bcac7e6ab694fe180a548bfe6de420fe1a7ca684177da8086d70e1264720e508251163819e9bb59a54e2027431056e4c75688a0b587ca5fc010"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/an/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/an/firefox-76.0b4.tar.bz2"; locale = "an"; arch = "linux-i686"; - sha512 = "744962dde4cacbe6d9ba67fe7dc01a4267fa16578127a48d7ef59a2ef6768dc70f681bfc73405e827a1cf1b0b7d217133663ac47601fd35ece900d851c7ff78e"; + sha512 = "46b8645a1148b0a8d2c8c2dd5baa36459fc9ba4504b875c2f0252cff8202dd0a1c45cbc13422a2d36650db3e07e5f8ecb214d74b14dea728f76d721c53bf1486"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/ar/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ar/firefox-76.0b4.tar.bz2"; locale = "ar"; arch = "linux-i686"; - sha512 = "f71b142c885ed61f78921fa058ff107cf4079c1a7f0c5fb67ed07a30188d878086cf4cc3b07c3ec2d6a7febf4f2126c739b3dd14f2462d2a8cca418ef4b26b2c"; + sha512 = "cee1cd38ea9fbb4151ef7a2f5df2f67a6feac721ae6bc2ca580f933685f71cc25062c9f00a9d25402ba63249170c1357047248488d0aaf65acd685715f97c011"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/ast/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ast/firefox-76.0b4.tar.bz2"; locale = "ast"; arch = "linux-i686"; - sha512 = "3b30a05ccc6d10af86f7342d8b184f78e789275031ef317548acb051ca7f5e3b6e668f67087818a750999265674573cb55f2860690bb69a155d4e762bae59f52"; + sha512 = "4d34d3f28d1ac26e940b8f335469aee541358c19ada123dca3b87d420d7bcef8ba430d02b2445834cf495660faa4dae3bd66e0330f15c43170bdadb63c87be13"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/az/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/az/firefox-76.0b4.tar.bz2"; locale = "az"; arch = "linux-i686"; - sha512 = "a054387e9bbafa9c99013066627f028bca1bb59fe01168113957eb7b28aea6b367050bbaf73271ea332beb7d634f2374de0f7b29b5e72b37ccc65065efae0bd8"; + sha512 = "ceba1c862b0610e67053c1671907d1a1f80eb381648349340c18169c0ef6d7d6d4f65a7476dda42329f7a681b1d3b3924d0cd9addb7c5117a414e492392c208b"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/be/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/be/firefox-76.0b4.tar.bz2"; locale = "be"; arch = "linux-i686"; - sha512 = "e865a0721f0ac9d6ef36b511b241d869cb2b9d6b76897c7a3b6f96c66c38b00da032ba8ad94fed9cd65a9c56736742f56fc0073768e594374ef39abdfe36c8d9"; + sha512 = "7a6fb8b6ad17fb89796d93164c39e8e446af972dfe14153a75495dd9aaff329dac58d708ff4f7c85ddf8a65cc441b71d07482e0eb0e240552c7b50f03f3ad463"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/bg/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/bg/firefox-76.0b4.tar.bz2"; locale = "bg"; arch = "linux-i686"; - sha512 = "0da867e56f18f268abb91da626a4519546d6ac73fc8eba66c52cab33de81456117791126094f4ee95169d64cf046c6800006ca8b85250fd0e240f0280376b62e"; + sha512 = "d846ed4044aaacf02e02078d00f5ecefa59f4f91ff174526e96597aa73a46f4ea4d2595f39e5ea17583ffbe9ebc046265c73a5dca7155ea72814ae4ca7c697ce"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/bn/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/bn/firefox-76.0b4.tar.bz2"; locale = "bn"; arch = "linux-i686"; - sha512 = "2ecffd8e81e3c8d570b2931a0579cf30a111710703eef07c24358506f9ed9a2b09952bc481bda2632417af9993560ac0dbe1784b98ba34b21784c626429339ef"; + sha512 = "1deeb8bd99d8e3c86ea16b08583dd6467cdc8b255f99c0782268d5319e9013910eecd121f0ec770b53189c488a239966eb5850790e5c0264351fad8ba9a587b1"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/br/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/br/firefox-76.0b4.tar.bz2"; locale = "br"; arch = "linux-i686"; - sha512 = "6ae78396927fc66c2a3a4097c6fa6f7f5e4c60757242e06e621ec0dc97b482425514a31a989de7aa2ce32c5e1caa99e77b9f8849d708f8f2af45a1004f919137"; + sha512 = "8f8553f1eac30e497f124e5407b1658691e8456ca0d2307e4e8244024c6ec6ef4695644e169d840f832b4bbfe2ffa7dd0b178bb2b9500ceb7a7b515dc8d68af8"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/bs/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/bs/firefox-76.0b4.tar.bz2"; locale = "bs"; arch = "linux-i686"; - sha512 = "e40f191a49741e48b4dec8871f290ca2ef72b11a37f57956bfa57b24bc1c3983e949e13cf22fe11a878744f401e9bc6fb699a5d78edbf55620c6b7b4efda42fc"; + sha512 = "129207de0d362fccb2dcb82ec62c0802fd8fcdc5fbda638c7f8c2d3bcf38c43a25640b20bd118efaa9dde93a2b305eb8b194b38da5c97b42bb272b732a1b1597"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/ca-valencia/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ca-valencia/firefox-76.0b4.tar.bz2"; locale = "ca-valencia"; arch = "linux-i686"; - sha512 = "bf57f081cc6bdf3d0305ebbb01e98311b5ba40bd23773d93dd568bdf214ff867e495da4ddc6201d8b398f53976270ce81658017f10fc2f225419c373e68813a6"; + sha512 = "08e733d738d1e4a48eb8493d7fbfeb14a4fcd3db41bc0d39d7440a3751b9bfa9ef2b1c517efa88af649902464fbb04a77375d8eb1cedf325aa781710c704a1bd"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/ca/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ca/firefox-76.0b4.tar.bz2"; locale = "ca"; arch = "linux-i686"; - sha512 = "14ff3f4e17101054c64f408458d778771584581429a757f6d5d7bcaa31a51df1f2c0712b88a216b9792496ac92f6d3e56439660b56e2c1eb062094c74eb393ed"; + sha512 = "f9ebb1e5c03bf7a2e51e5f4228df588ef17f5d3aa406a1d1d307e49235a2b45100fa62d183878db4c217593f4d92dba3454be89cc80bd615bb3b8fc6dd471cfe"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/cak/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/cak/firefox-76.0b4.tar.bz2"; locale = "cak"; arch = "linux-i686"; - sha512 = "a600dc50aa7eb2c2fc5f3cc2f5ff31cf19f3aaaa680319599f77cbb615b6545c1fefbc1f75a3dfd455bfc0e7881d9793ae05b193842ce56bda5eb4c42da37c5d"; + sha512 = "1d8aedf181de567499aa9455a819d31e657da1d5d437f67df0eafb02d7f846a79bbd7e030c59a3f2c1c5766f668149f97881d0bfe3a98394796fe21b628df374"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/cs/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/cs/firefox-76.0b4.tar.bz2"; locale = "cs"; arch = "linux-i686"; - sha512 = "117f94c4f3b892070b071e16660e7b6dc62df90f62783fc456a220a3840917b5344379f88164a2b796cf7b9565025a5752498575ea7b68afc24a55dd2f975ed9"; + sha512 = "748901b2df6a1ab54dec6f5236fb4fcc2f762b5522dabc87b0e59890cfa895c9ad4e8d81662a9fbcf720549c88d4b792200ba1ae2a2f2e0819e9f183fb83a8e4"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/cy/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/cy/firefox-76.0b4.tar.bz2"; locale = "cy"; arch = "linux-i686"; - sha512 = "87ac39c6ce202d6eca6823a7d249ac122f36487c40b6386a179fb86657fb855baf149db5e73d4f9aa437de43bcb24f32b16772da29057e4a2e02044890dc314b"; + sha512 = "8143fe0b4fa7a26296b77eee23015df6eadc48bdae8ecd69fa1f731fed9ea7d2d544093c928641b55628c54e72ac48b974f6d2002bb56a613c745992297b577a"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/da/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/da/firefox-76.0b4.tar.bz2"; locale = "da"; arch = "linux-i686"; - sha512 = "9d89aaebbe4e8110d12bc1ccb9c84b03b4f39eda2f542c15eb77befa6cb28fd8bc6f6bd1e91a115ab4c5ff2c12df48ae97c8dbc06860911995ab6687f7a36ee7"; + sha512 = "2f9edd32302639e730ea4e28749ead3aedfee8716ec06ba4283e4401e1f6608870e26886b957aa758efc1fff52ac92087e95230fdfc024a062a0813c2a941e63"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/de/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/de/firefox-76.0b4.tar.bz2"; locale = "de"; arch = "linux-i686"; - sha512 = "e1e6df8039fbdf1071606cb6146b5b7e8c7cc793e4495c845ee68d6245820bb8f4e41c42e4c7dc4135bb21a0489bf2366cdea47c99fc56e89a89f77215167c50"; + sha512 = "a725ad54dc31276d7f58d122218d381fbbc3642853958315c04abdb4ed5eab917a81c903b6a72f324896442c87608296e98a12892c81774e53d674862ebb380d"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/dsb/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/dsb/firefox-76.0b4.tar.bz2"; locale = "dsb"; arch = "linux-i686"; - sha512 = "b3630e5ca8a4ff299717e8458d9d3f8cf6d06c470e634e557c675c89f4c861f6cdcb3ed6ae4c8af4e17bdc0c3e6ceb10584fa08e600ae1355dae8ebc1d20acd8"; + sha512 = "a5d06b692b11f42da8465f787eace49d2ab1c5c9b575f3471042f2db1c499cebe1b3929cf131a6451cfa388cba4cb995fc51f3a30059a76879db9f78e8e1bde7"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/el/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/el/firefox-76.0b4.tar.bz2"; locale = "el"; arch = "linux-i686"; - sha512 = "9d6a637eedec5d5d4a794384201309b1bc57848760ed1af3c0afd1fb2bd70cba465710cd618bdb610cbc171253f4b8b3270b004af10a5604e0bd373dd0eae420"; + sha512 = "92fbea5af2bdb838af9c13d6938eb4f977fbe867dd90dfd5328f947917503feaeaef63d66cb7297aa049f486056481cc2525e47d7e5fd994908041924b1d88df"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/en-CA/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/en-CA/firefox-76.0b4.tar.bz2"; locale = "en-CA"; arch = "linux-i686"; - sha512 = "1658adcd506c209366efacbd730a0576c77591ba672a9d0714b6296b9ea24cd5f291a6a8003da6cb5d8667efb5c8db41dcbd0dbe83140ee45d8977f51882f4da"; + sha512 = "03ee4474802ee0971d4d1bad6814be66a5e0bd8adb0f9fd1c7fcf748915cfc0f2b14694135db6011216a114b388cdffa3c7109e66b834bacc7e28aafc0d79a2c"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/en-GB/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/en-GB/firefox-76.0b4.tar.bz2"; locale = "en-GB"; arch = "linux-i686"; - sha512 = "61720522cce0fafc76173331fae77d293b952bb05c5b6fede29f1b3ab3ecaa2a546c9a16a16ef4f62ebd19c04f0925db232d4de5b3da172b5468f9657b0d59f7"; + sha512 = "e62f4de36b5ff1ec5d934d514c5257b2614e890efcc8e6e924116494a029c2fdc40ad90924920dfebdf286a63cb61d0bb64ba5fca3e45b4852b0633f3f74bd67"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/en-US/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/en-US/firefox-76.0b4.tar.bz2"; locale = "en-US"; arch = "linux-i686"; - sha512 = "a45899b9efdf8de1ecae76d19c5c8a081ddc81ac2b04991c5000a3d7379d13ceaf192419bbcc87fbbfb9dea50fc6b99ffd7845f11ba47e280dee51fd5d832edb"; + sha512 = "bcf2a75d906ad5e42cb2a77c210cc78afd4c722ecb686fe256dc14daeaf9794e7ecae9668171c6d028aeab0e34ddd41fc65648d87e796e57a9b3ecfd33397361"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/eo/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/eo/firefox-76.0b4.tar.bz2"; locale = "eo"; arch = "linux-i686"; - sha512 = "97409a0943ac848f96c54dc6e7ca8c955b6ed2aeed078833f8a69e187e550bc588c3b5ec82d4f56061cbcb689e5548a8a9b7f9171e637d04a096b91b4d4421d9"; + sha512 = "64093337bf69f005ed5db33d1e06e0c65011c53e1f392026990744e9393f6cfed0a602004eaec16b3e5841f87614a7323ac64b12f0099177f793c2fa9e1fe53c"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/es-AR/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/es-AR/firefox-76.0b4.tar.bz2"; locale = "es-AR"; arch = "linux-i686"; - sha512 = "75c37f77ab57a1503de3ea27b55d4d77393d426b490413c4c35ff1072534da38bd31a2e78c5655bdc9b5d5f32ccc9517e83bca1be1a10fda7cbb3ba289e0ba3d"; + sha512 = "820e8ca43a53d5224b8f61e47725b775cc2ad4c15d816802bf16609ddba1374d15f1826d67872db16ce071454589b1dfa224a9cfdbaf44722baa5c8fb4c7c07a"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/es-CL/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/es-CL/firefox-76.0b4.tar.bz2"; locale = "es-CL"; arch = "linux-i686"; - sha512 = "d9c58844f4b241d749dc0cbd1d04a8e490a6296d0c3cd26da062b043060488794923728e29adfe171834b331ce9461465f14b71f6064e49a39d458256a99ac08"; + sha512 = "93cdf71a41b7c7d615199d4111892a467afdb861ff9bb374cafaa7f802a026d7b2618beaed80e5f078a0751a1ba0716bd866c683d8720f243228e976c816b865"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/es-ES/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/es-ES/firefox-76.0b4.tar.bz2"; locale = "es-ES"; arch = "linux-i686"; - sha512 = "9f4e74d5f01ce99e5bb9ee47f262b0442bc4ecfdf25a45e204bbc207a0bc49698b2e82bbb8ea8a80b5b912d6dbd4a3e0e42de75d3becb0a2fc2ebfb3c2bdabe9"; + sha512 = "d06a02148f2f87cb3f4b961a9d3389b2ae3cc6efd1d78a7132e8258dc4c86ffcad47055950768322a85dda62baced3516666330ce584be89e9562d1b306736da"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/es-MX/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/es-MX/firefox-76.0b4.tar.bz2"; locale = "es-MX"; arch = "linux-i686"; - sha512 = "612a5d746e31afd8d4f3be3b56c0bf28166474e68a16b237d6c65c974a6f5e1589c3c29165e52936117969c856ea1b5488649d22bdd08a4db05dee8a80142207"; + sha512 = "d7dd2306ff4b79910f1aa09bbd28e7b7e37e64d7e99fd1293e37a76ad6135edeb247fcb57102cf002bdd43361451327d576a1b58def5c99fd09a6e68a26e369e"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/et/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/et/firefox-76.0b4.tar.bz2"; locale = "et"; arch = "linux-i686"; - sha512 = "cd59ba16ededf91c6abbe45d059822fdb1e7f450fcc4a7c90816ebcf4aa7d9bca86ca23c105b1fde01944b06e188b240f8622b7664207fd680d73063164df81b"; + sha512 = "4258156d27a720cd68bc74b70618e88014faa00360e055ea6a254154b5929860f27223b89c460674feeb1e1542dc4baae1b81369e9382c455d8bffee8bbe0585"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/eu/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/eu/firefox-76.0b4.tar.bz2"; locale = "eu"; arch = "linux-i686"; - sha512 = "4a6d6c84ee790000a0e50b296d41956d9fb1708a20d55ab0d093147d823fb3b1d3b209cf83bea40c4a17ccd5f2fdfb898425ddc105bd11f7375fafdbe138d12f"; + sha512 = "822401e47e96a232a411655367299a9b64aeca133c0eaf18a0d9771a0a8f5f15c761c7889b815339cba391027a807a490f2eb8866e8f81883935249fe1907d36"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/fa/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/fa/firefox-76.0b4.tar.bz2"; locale = "fa"; arch = "linux-i686"; - sha512 = "12f2a70b386a6dcb7184c0afcb28b6f01daa0e2a5df0cb83cd9407659086036a379cf3e87a4c00466b1e6d730811f1394d2fe870a33149915a9551571054bd38"; + sha512 = "fb498b47f79337f55835a343a6141556ae3119095aded17611b315e0ac4206d92774737d0a149b71c62c1e0712110a8eccd18b23e024d9aeda4a2540a0dbf9d4"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/ff/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ff/firefox-76.0b4.tar.bz2"; locale = "ff"; arch = "linux-i686"; - sha512 = "de6af7697f9450035c4bd14daa319c020f53943521e9867e3784c6c68183192d5a4076e1f416bf062d76d16cb2ce113c3aa2a462a879b360c8641cfe49e7cae0"; + sha512 = "d03acc6ef34f1476fbfc5f398a21cabbd47c5c5d17c4d2ad83e0efaf2262deefe413032d6780303ce908b7707cb4f3053480c1f880a28cf15f105e7bec89f552"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/fi/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/fi/firefox-76.0b4.tar.bz2"; locale = "fi"; arch = "linux-i686"; - sha512 = "3b5a6b5ff92c79978dde410bade97b835bbc8159db7659557c6ce22675e33bb96c49478596ee3b3a8acfc67d8f4a24e02ddac18ee481a95250b975c174c4dab9"; + sha512 = "9a4f97c1d41b256e5dcda088de88066c3f2db91c5d2c5bbd676c3f1081ef87873d68aa4cdaaf55f12b7fcfab85649aded56fad65a7a05322be794f463da152a2"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/fr/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/fr/firefox-76.0b4.tar.bz2"; locale = "fr"; arch = "linux-i686"; - sha512 = "1038cf04afdeb236ef0b12ad096d0431c8576105e861c09bcaecd1b27a2ee02f56834eb874b8007f50534bd43a92859c51dd0aa0150cd258cb22368337da1d71"; + sha512 = "e8eb90ad95e9fbea466d448abc4454bc6ab68b5f60d84cc74d1a7a8da8f6bb9a8837b2542194722ac85589f81bd6da43f683416b9bcf78fcd8511f9274a88e10"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/fy-NL/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/fy-NL/firefox-76.0b4.tar.bz2"; locale = "fy-NL"; arch = "linux-i686"; - sha512 = "c5139756c49eb6977f053003238df9b771fd61645d540482875775ab76157eac29be84869390d62261ddafc1b6005ce1df58bbfb7cbaf8d22ae4e98daf6d5d9a"; + sha512 = "7eadae35b7f45d91031a7c2984fa0f9e6dfc72ea3a5e53d6c0b2481106ff095c4fcc3e9398a06fe5c2f1a036074b03bdeefef57df32393a39209cd9aff8d5ebd"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/ga-IE/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ga-IE/firefox-76.0b4.tar.bz2"; locale = "ga-IE"; arch = "linux-i686"; - sha512 = "d9a5baf26001f438f20cb7799a6da9086039743e184814914199c57a64cf7cc993bdfb477ea61bcee43e2f7db05ccc02edff99a093a1e2a1f41de0ba72cca2f2"; + sha512 = "c9ab2805f65cdfbf5ef5ad441c675f3ab6eb7bdcbfb7575b3ca374a6e9409f35be63ceadf495557e29bac58fe368d4410b8ea2ad5d5a26c21a60bfe1f69b9f60"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/gd/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/gd/firefox-76.0b4.tar.bz2"; locale = "gd"; arch = "linux-i686"; - sha512 = "d9c4f1ac7d5abb7c90b7cdb6aef437c5f3ba2f524db43a34cf65df3822b811293a5d4bc56707fe254cbb57f7a00cb0773a1619113f3b455ceac50c388fc8a2d7"; + sha512 = "7111c65eb5904a33128b6046c76b7936d11c09842b288f234203973c5f129e110fc58d1271482d719afc57479c8283010a285b890d80795cce2ea969272283db"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/gl/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/gl/firefox-76.0b4.tar.bz2"; locale = "gl"; arch = "linux-i686"; - sha512 = "32b7e11e9f5c76b12c3012fcd90d5b0bc2ceed289780db6fe32e53ecb3dbe9fc31a83c5a684496aa35d3c51693c14265a24725131b9e0b6653c811dd2b60d933"; + sha512 = "0e19ad36251623f60f5d6bb8cd745339cff6231f2bda3f8ac5d87fb0de6b27b4da5fdaa727c34c058d93bc06b3ea335de6dafaf247cbb7bcafa2f483acb7a337"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/gn/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/gn/firefox-76.0b4.tar.bz2"; locale = "gn"; arch = "linux-i686"; - sha512 = "89c763e8ddb051304e8b192a8071fde4c4dc4c0d1b233cde51faad5b2d8899609ba5c06399569203780959a70207041b59a0b8ebd0c1f08891afaa37a3e44a9f"; + sha512 = "9328e140e98f3e24057436e6e14eddb0d50dcd55aa1713d22f7ea4f9c8384ce077a61bb2fc9191c948a78cc38e9e8b08188bcc792e9725ecfcc91a5651fac290"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/gu-IN/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/gu-IN/firefox-76.0b4.tar.bz2"; locale = "gu-IN"; arch = "linux-i686"; - sha512 = "4ed360cf1f16896f2bc7d9f90f66943ca4f8bf27336a4cce928760b820572b50bb4403137fbe9344c117e7a289cfaf70006d702e1aa6bc4eb15150fbb743119c"; + sha512 = "64cbdd669d1641ec365d4c1aced98d067cbd3a21124ec10472b3db2105db2774c283919652e5fa6c35c5548d8b8c1db055dbb7ec1c83ff05ad369923a37d45da"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/he/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/he/firefox-76.0b4.tar.bz2"; locale = "he"; arch = "linux-i686"; - sha512 = "f1aa69b9ecb760d4797dc15a15dc7237704e51575cb02ed7019652e81c0f862db3494b6aa5059a1e7c6b7159cd712666e7f279ec95466ef57af85e1ebe4dde85"; + sha512 = "16c90f8125882063f4b6429ec810d23375632be9a34a5ec4a3f7d95866ea79d5c59f454a294a4ec78da2eb1a4d8a9dd9c34fcf17f0407aefc9cb8f25a2c8204c"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/hi-IN/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/hi-IN/firefox-76.0b4.tar.bz2"; locale = "hi-IN"; arch = "linux-i686"; - sha512 = "fdc7f76be1affb5e93cb316844724ee8929e84d6fd629797d3c0e150144595b0d6d2b06763d7f6a63210622b3da9a4181e5f704d2ea2383664857561806c2cd6"; + sha512 = "31084eac35a7d579efad4ccd8b269c04990065a4a93686d7acaa65d6d3733183229598c173a8372ad6f78907c57a7b65f63a27187817bb9144483c237cb06de5"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/hr/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/hr/firefox-76.0b4.tar.bz2"; locale = "hr"; arch = "linux-i686"; - sha512 = "dae36784f556cb0e4d371620b333b167b16e810eab97d4f4857320a9d61f14ae392a4b2a472fd43565a807ba2d75d4dd4848a25effe1e2e7747dbbc30d893cd6"; + sha512 = "de1b69cd8b3fcc52275f6ae8a1b2fe85cab48c940ec62c8b667ff9c6ce4d4f32ff51d2aa46d3769a421355832e165b88f3abb4ef89329ae797c0abef4fed130f"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/hsb/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/hsb/firefox-76.0b4.tar.bz2"; locale = "hsb"; arch = "linux-i686"; - sha512 = "04c175a3ca68db0d848a6ed2eead84cedbd7078d741b43e725fb51f5a4124487c3e30f18c940eebb7702154061e67b9e63a53d7d219b8ba25121cc47de3a8049"; + sha512 = "7ecaa9b96d492165a155821b34401e218a507fa91ca3e9f72ebdb6fabcaaeeaade4c4ea2e0cc2e0f59a217575d63931a9290c03644cc89fc7c217262e13a1935"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/hu/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/hu/firefox-76.0b4.tar.bz2"; locale = "hu"; arch = "linux-i686"; - sha512 = "d6503a482ff7c43cc136e23126524c22e5636a7c5c8210052f353cbafc5d4a040c31572fd3271972dfe116ce3ac0d924ab509f677f4d8217bde282f76820180d"; + sha512 = "4f80a18eef58ab3acea954a48f48575b9a152f6204db85bb30e423a0b73013f1a10c71a76b2f3add3c03fcbbd87beac7fa510fc6075e23a5ec773db67e8358e3"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/hy-AM/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/hy-AM/firefox-76.0b4.tar.bz2"; locale = "hy-AM"; arch = "linux-i686"; - sha512 = "4082fc2ef233e02b384cd576ec79bb2697bbbb8a04f469a1574f89fd9854ccf4138aed2569c2381697db2e073a471fe1e5a1b25b58b14a492d26d54229a1c6df"; + sha512 = "7c09f13f31226705f63cbac2fd15d00d87dc16ad43839e0593d19ea7d69a40b22abf0d7297576b5574a7844d390c35af951fde2e33d80caec626b5370dff7300"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/ia/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ia/firefox-76.0b4.tar.bz2"; locale = "ia"; arch = "linux-i686"; - sha512 = "f3e24a2778346cfe24a00f6cd966a2ba7b59906a0cf28e240313c72305ff9ad1a307b4db6846a6ff02b89deb72b3c9c4233f0f7c00e9e6f5f5dd949e04b12789"; + sha512 = "b7af42a5925188a25c5f3e77991c7cad73e36a01e5948d02666cae405a7ba1c30fc59fc62bd5e799725584a7714b4cae97a335bed677ce957bbf6fa92c8f5864"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/id/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/id/firefox-76.0b4.tar.bz2"; locale = "id"; arch = "linux-i686"; - sha512 = "4728f20776da754eb696036f69b6a341d912856bd0d9c105954f56d1181abe6b3b71a125b836d86061dfb39ed6282c4eadc3c9a0a33f39c24e9b34ae8ce047fc"; + sha512 = "2dcf6f549b08b4e705c4f7048225e1ca9c8b1ff8869a42482e78bbc58b0bf58bc7df8207d93229dbc8fcd5864a1d84c10af244f3d49a6651c514adfd30f933c6"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/is/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/is/firefox-76.0b4.tar.bz2"; locale = "is"; arch = "linux-i686"; - sha512 = "0eee6d75916bc89554bbd9cc6736a289c816cfcd76c61999fe546489f5907ee23d9240686cc2f85fc56b005b4519883692d17225ea2daab7165f6bf0023d6290"; + sha512 = "9500b5068ae3f72f21765cb1cb8ba35bc07d813fa6301bccdee917c00daa9f5cf2be70eb3cb2faa3d363ad3fddcefbaecbce1b7118251a9e06abe80bf9a30cf5"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/it/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/it/firefox-76.0b4.tar.bz2"; locale = "it"; arch = "linux-i686"; - sha512 = "e61500f91e7351ea75b5fce63c0b3a258881449d16750cb84a8b91e65fdabae42cf2e8142ec06e408fc221c86e372a60a282a8635bdf103bfd65c097bf51d709"; + sha512 = "fb8e9abf309a8396edb81ae87ca4cdf2d84f5a9370b565f1b509ee64740f7f6fa1afc1a0eece273131ced6bc22996ff1a72e84a7d5aa09d2f607398cf03bfd39"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/ja/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ja/firefox-76.0b4.tar.bz2"; locale = "ja"; arch = "linux-i686"; - sha512 = "f4e8bcc5435864de90bf69820f18c8b2647fd8da250089e4940e752d36b2ecb5a437794874c3cfa5d3cd96ddeda4f6cbdf4c17725a31d57474e4d6330eafa801"; + sha512 = "35be6d50c17780ac8174302c9b400ade8e7f7ff9e08d8d716ee9d879593c39c2aada3f49dac898d5004d7e5d9538b2e545db265011b1a11c06e1bbfa756badcd"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/ka/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ka/firefox-76.0b4.tar.bz2"; locale = "ka"; arch = "linux-i686"; - sha512 = "b516b2f8af0f306b78a67af63d9576b358f17f40f71520e82be35fc8dfab29b61ce5e4dd56cd52b6bed2e029597524db4a059fdc63f58ffa4013b1c6bed39cde"; + sha512 = "c3ff5e7047c0eaa90ba765f75bde2e7594ca8e63ad8e3688f61573740bad234906b1e20137308be05f5173b4c01d42564c1d3a70609f012593406986fd7e5bba"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/kab/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/kab/firefox-76.0b4.tar.bz2"; locale = "kab"; arch = "linux-i686"; - sha512 = "7a5c35f97deb3132f2575071eb81b5118f16403f37274f1f0d6677811de7b88059c2094aa3c35a7350a5a0f3308e904378e6095662af49188ad714b1bea920cf"; + sha512 = "3feaafc92c9f4760e1c87f2733127d46eed4a5986862b4b4aae8557cec6b21a95838bc5f768791a2406d8651430efacfead9ccce13ddb3e3b97529a4d17072f0"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/kk/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/kk/firefox-76.0b4.tar.bz2"; locale = "kk"; arch = "linux-i686"; - sha512 = "f7a21230d6f2102d0ef34e3407339e289f3c426fbea1e22044653908dab9430422d85000ea5c30fc2b07905a10aa2afa3662904f6ca388031ba30c91de760d0d"; + sha512 = "96ed2598748c08571bdb79df888e5a3cd3ae0bab46e039e79b75531d8e23a9cf3dd2445ff51d1718e69d80dc54d9249c142c61640e2c202655183de4f87f63a2"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/km/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/km/firefox-76.0b4.tar.bz2"; locale = "km"; arch = "linux-i686"; - sha512 = "b2b66527be2330554a69380ad44b56fb2b1c297ad9aab118446e55bacc35b7958f704b5acb543b826919db6c36e91514cbccb4aff3856dd9ee58dea9bda43cbf"; + sha512 = "8c6a66f77a6996b12498411edbf53d27b9a16c74eb74b586f5d1658edbecc18b427309b3e1e75e66db5a6f58821b5272f81fc01703f7d9e326318fbd4bc32bd5"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/kn/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/kn/firefox-76.0b4.tar.bz2"; locale = "kn"; arch = "linux-i686"; - sha512 = "b110a46b8c5d6f4e7a9cfcd126a80fee7ba95cc35082845ad8aeec0f6778dfcde805377ab395e70a5e9dce518c53449a5586d9ae6eb8c19dce0eed6b4757b8cf"; + sha512 = "3c3c30b44487af9bc0ceed9d200b5d6a9692c6574c29eb93cb163a0205f4833801bae94d565b1853d1186ce6709f3f10043079b802af485ce19d6614a7e7ea2e"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/ko/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ko/firefox-76.0b4.tar.bz2"; locale = "ko"; arch = "linux-i686"; - sha512 = "9a35c7a81cd8ee930f8164bb59e58c321f35aa47abe5f0e28faf320216b1555b89516aca94bd49a1b76c892abf29dace03a7055e571198bf981c4beeaf965973"; + sha512 = "833627797838baf083b46f93705ba5e9d1e25a562034efa9b72406b703b77fbd986ba443fe19b2204424a586e361bfecbd7af5bb25d656d34c13c31f007a6501"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/lij/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/lij/firefox-76.0b4.tar.bz2"; locale = "lij"; arch = "linux-i686"; - sha512 = "21a09cac09faa88963e185d2e1f732aacbe2dd8629a389a851bb149eb1b09e4aa21a78996021ac43f7861cd67646e6008e63420c690bd8072138bc707d937b04"; + sha512 = "21b18f367619c42f637fd6705a73d41f70a64b3f129293b7af7c92f3a97c05536a2d79a23edf8d96e0ffb02715fdf6816be5dbc4c67b658202ba22a53a9c75ca"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/lt/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/lt/firefox-76.0b4.tar.bz2"; locale = "lt"; arch = "linux-i686"; - sha512 = "67864e1188716ae7e93f8a824709d597124ecdd4d76dd61ffc6a1dcc7048429e17440c8d096475811c7a00db2c42c778477f3c32f26e2facfdf538f562fd580e"; + sha512 = "89063af404f2d0a4c182625c387ff2455ca987c15b824f88c3a7463befa4b65b487e9da3e0d0b1b7499975d5ac1c8104e64c03f1fbe6236b6f1c429e68d4b6bc"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/lv/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/lv/firefox-76.0b4.tar.bz2"; locale = "lv"; arch = "linux-i686"; - sha512 = "de68b8cce2abe936bed8015c88a9dd998bd99d177b127ffcc205c975aafd3f51eff40b83d8b8e18cf66ce8dbb9931a9a9ca27684dcd2e2bdaaffd7b96607dc4d"; + sha512 = "b4647fb4c7ee30bf3a1c4249779e46031681cde4ea457869bbb474aae05fef56dcf190b6e6f70399430563c000d41b6919884bc3cc44c212d12b7f763b411157"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/mk/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/mk/firefox-76.0b4.tar.bz2"; locale = "mk"; arch = "linux-i686"; - sha512 = "c5f0baa178293cf993fbfe73f54a7052a249dc070a3c1538df27949c38c14d1e3d486d7bac26a5c97bd744c051dbae265b4bea215b1bc96ac732fe57a7766439"; + sha512 = "d2dc5d9b2a2fb97ebc9fa1e96a0fe878f5a9dc7795e702d19e93b8af7a48a33230516fa348097b1715503c30ecd1b9f372fe24c5f3cd335d2d83f9ce4962cb53"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/mr/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/mr/firefox-76.0b4.tar.bz2"; locale = "mr"; arch = "linux-i686"; - sha512 = "61e9f28f0c8505d6a132195aad5ba56ef5c9c41caffb22b323b764029b1af0f92dc43cea70580246fd11bac75908023553f3bc2238d842ee1f6962ac6c059ae5"; + sha512 = "6ae482acb98e30a89e4cedb2b763f8931e1b2b2f5afc98b686a24eb3fab42e4731b46dcea4428adfae08a72d1eb442058e4c297958f93b6c7ee1435090ef828e"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/ms/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ms/firefox-76.0b4.tar.bz2"; locale = "ms"; arch = "linux-i686"; - sha512 = "4196f1eb297eca219ed58c58db77d691580f9a33158769f0559a2d1a815f4170c89d282bc01d4a94884b5dce6bf83fc6a6a687041eb02fd38f6dc0aaae78f555"; + sha512 = "aa18474baeb710c4322df1e1bd04e6bed566a8f53e8932ccf9abdca3b74fd33b1127e006d9997550b31e1db7d4d6bb86087208d2589a14b47614a9b49ff3002a"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/my/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/my/firefox-76.0b4.tar.bz2"; locale = "my"; arch = "linux-i686"; - sha512 = "4c1b2e13bbf33ae4d8c213e94a0d1d41fcdf1471304e9eede6ed74d28eab659be559f2a5ffcade436b624604e26255e37941afcb8d9f36cfdca2c3fb9031f758"; + sha512 = "8041f361adc88462f3d1f63ad4789081f6750d2d78e063be13f770174fca48c18424422a8954ec2b1fda4d7be14cba964d5d2138ddb6a85d18c0b1e47d274e85"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/nb-NO/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/nb-NO/firefox-76.0b4.tar.bz2"; locale = "nb-NO"; arch = "linux-i686"; - sha512 = "fc6d764124ae4182c01a96c12ba13ed807a7715d1ead7a7ae57c0c65d394166f0b80a18b12c351f87d8f28f894700d3e0892a42156cb6601fa34d173413ec121"; + sha512 = "9136a922d582db8871f72deaf308d6da711b931b20a491f139e4d7b4fa95de0b028814765b84632d485727fd6bb40732ae716582a38bac59d30f709a02070cb2"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/ne-NP/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ne-NP/firefox-76.0b4.tar.bz2"; locale = "ne-NP"; arch = "linux-i686"; - sha512 = "f285ea0cf2e4e6cd5da9ea2e04c5a942de5a9ba639c0c6be32fe64cb2d4076b15a0b8478a6b8e25d0bb7555b8148fda33313e5c78d91c5397d3cb8af7a5ab09d"; + sha512 = "41c6d2f49c1e08f7ea647203f6d5b94f6b8b8c12edd181b5865e13234fcc47275dff9a553a2609fb107e5b0f3edf0a1fbb5cbede97716ecf48b7a83a51b5d4f0"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/nl/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/nl/firefox-76.0b4.tar.bz2"; locale = "nl"; arch = "linux-i686"; - sha512 = "1e7e423cc24de27099375279a8f46572310a245709ab3b8450c7c1257ae28e219a1867477aaf50f68762eb1cb32b831ce3b73a1d4d7fcacef1fa4f6bc6a864f4"; + sha512 = "3ca94e9cec360529bbde7cc8c713ce129e8cab654d2551babb91192485b04233932cac5e0256e2bcaa55fa34949116d1d207eb73acc41b1cb86a1231d939e880"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/nn-NO/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/nn-NO/firefox-76.0b4.tar.bz2"; locale = "nn-NO"; arch = "linux-i686"; - sha512 = "a1e70c2c4eac55f9f6ef46cf741fe421449e5ef1cdf1a125e07a86037c1d5ee7a329d0e2041338856ae8385778207ebb95163cce1a124da64a5ff334c73fb5dc"; + sha512 = "2914d4488a847bccd7aa008d43a659d46cb06e377032c8d3496da32a2c13387b8dc33f21ca6345abe874a9c6c65464262ee4bbddc83dfaf6532ddbfd554e2b50"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/oc/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/oc/firefox-76.0b4.tar.bz2"; locale = "oc"; arch = "linux-i686"; - sha512 = "ac4abba844e7d9bca5d10889ec5150c2fe357bc5e2fcc1a47cb4ae1489645ec884de70a0190b7cc7ea943f1233dae708e33be8c9e4453a39e10c89b418a05e32"; + sha512 = "08e5e5b775b90684b6c275eeaf556eb4dc3e331db3f2807dca313273c4fddff37e31fa2ad36ed2dd7bd76e3ce5e7dac97a4bba85e7c4f07fce2d35bbb63e5759"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/pa-IN/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/pa-IN/firefox-76.0b4.tar.bz2"; locale = "pa-IN"; arch = "linux-i686"; - sha512 = "59e0ac652e3a619d5a9ba1d94014e583fe85118f4fe54779abb657e9ac5f59865483007bc6c254fce6f29270b24b74805ee6b9d227eca6ca61a651e051be6bd7"; + sha512 = "10dcdcb6268a32b84ecdeaf4bed76ee78b9358e9e84f4fc8cf868f080a4425adf228116d03b440a48fd82d0808335c9632b0dc967a417bc44a5bea3edd79bbf6"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/pl/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/pl/firefox-76.0b4.tar.bz2"; locale = "pl"; arch = "linux-i686"; - sha512 = "3ba13b4616bd7381268e618cf0c00ea4ed807c38ff81e1f1b45457f9ab780e6676bfc563cea62df8767bbfe6962d91b8f1d7de63fc101242d18d2b1bbc045a1d"; + sha512 = "7057c8e9a2b0b988d275041dcee47d0c6a2d23d765340e68846c66ca545ba6ee735d8d167ccbc57d8054f46bb4c074ccc22f88d51ade9492d6f904671be88367"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/pt-BR/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/pt-BR/firefox-76.0b4.tar.bz2"; locale = "pt-BR"; arch = "linux-i686"; - sha512 = "e115b3c9cbd88ea0fd43b58e9ba7996f3a95004269c5825b23244c9d30c75fb2f63abc4ebe6e645a91e21c798c4dfd7627604f44c0862547e156aa8f28e13d13"; + sha512 = "e4f71f9cfcae8afb55757fb1873b5561bbfd110e9deb52b65244d5c7db48467ce035b663cf972f4fa976b52da1b945e551ced73366fb859c17beabc54b0f20c7"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/pt-PT/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/pt-PT/firefox-76.0b4.tar.bz2"; locale = "pt-PT"; arch = "linux-i686"; - sha512 = "7f53c4ba63b41c1f69c3ce11d401464d685983a906f44911a4a984073193c75b64d4df3d295fac9df004b4c8858d586424381d5607228d24663d4a3114e80a2c"; + sha512 = "d48c432d4c84a1288f7a98654a95731978aadfb32dbef7e3464cd468abdb4153fc929edad4d4dab9b19bce7cdb8545d5987c7ded1b600fe181f044b3675c6b5e"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/rm/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/rm/firefox-76.0b4.tar.bz2"; locale = "rm"; arch = "linux-i686"; - sha512 = "a397e6373787d0614f77641a10658dd72484364549f39ce89599554ec41b883a1c32b3a6a8df26a0b9065664012fd88e1c88d04d493ad4b2b5b39745113f4e99"; + sha512 = "b6231ff9e8cc373328210dcf5389590a2608c60fed17fde5a880412614213feb5066dd9c05cc0ae813f6af1701f4469586b255930449a11cd5bdae1c5ace54b9"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/ro/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ro/firefox-76.0b4.tar.bz2"; locale = "ro"; arch = "linux-i686"; - sha512 = "7eea48885af4efae7083c92797039d940594a26762551a5ec91479005414a8bdd7e0b57ae7e7f64d9fe80ed5d1da9dfb9c5b04aa1f721a7edaebde2c3885f790"; + sha512 = "919afe9f6850f39a61d825e2e7fb7ce109b3b942fbbfffcb8a9626b67dd9b5c7fbd6f43267c0b58b5fdd1f645366897ec15116eb21ddac93a48f7e3800bf0403"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/ru/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ru/firefox-76.0b4.tar.bz2"; locale = "ru"; arch = "linux-i686"; - sha512 = "1362e789bb4890ce7791fb3c3d2e48428adab90ea5fa3f7644cf6fde6f6e0ad13ae01d318265013c48c8d0fb1d4bf67d2bf1001c6a49a2ab2fc0cc71813f6b3f"; + sha512 = "75612a4126aa52560e2cdc29b7c2fa1bd35fec34c9033f0ca276fb1239fe4dd50c1c4b024895c7aa8abb28435e58961adce4bf968922669dfd1abfbccddf40eb"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/si/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/si/firefox-76.0b4.tar.bz2"; locale = "si"; arch = "linux-i686"; - sha512 = "f0369e0f40aa26933cd34b3e34e25a4fd3dc0f28ab85f58e4c5973732e1dd0c9539c9b2e83c82f70524fc0cd2d735a977ae2c62043470f2a590d9cd6e1f35643"; + sha512 = "e5f4c69e7656a198f831d693465ae2780d33f0692907ac4ae9781c0a307e8f7a654377af0d76eb9d63d120ac65bd147a858485b4e211f5c119bc92798bd917c6"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/sk/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/sk/firefox-76.0b4.tar.bz2"; locale = "sk"; arch = "linux-i686"; - sha512 = "2c24711825bdf49ec2cc5ac558ab1dee43c4282966cf9dc00f4ec5c0f20761c31e57a79640b7465a50010d65270c5f730c4ba08bf268e9b85d87e3e800e77bb1"; + sha512 = "547ee4c8ec75ad4ce583abde35a604c1b607dc7ce71cce1a955e4269fbb18dc20af756a07facb56fb194c2afda8170f4114511228dbe058c1126f932d6c94793"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/sl/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/sl/firefox-76.0b4.tar.bz2"; locale = "sl"; arch = "linux-i686"; - sha512 = "b25e7a1c421d98455bb141a48d29e3f6b57974b1869b5950c898c56a285fabc6c10b1308a64e033fce77ce9376c580a3d877a42c1cf336d4c17f99dc8c375789"; + sha512 = "468cff45ebf0706887b01890431b7cbdcea6eca30fe86a2911de19160b8b068ab45a49801e28ea6413ece5fb6cad4c8bdd3601da2e237b8946bdacbd4e51b764"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/son/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/son/firefox-76.0b4.tar.bz2"; locale = "son"; arch = "linux-i686"; - sha512 = "10011f2340274dbf7bd6183bebbeacbfa41f45eb8a2b255ef996f9c7285781bd80f4ba5e3411093dcccd7431cf57936ab87c8fb27c4458e19a8f0a5489ddaecf"; + sha512 = "7daf5b95990a2a4386b04b0d11459e64cd3b101c57e18c514a28b28d1d62d797256b049f94809e423a8102269f7934b0074b2522109b2005c7bf317a705f5763"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/sq/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/sq/firefox-76.0b4.tar.bz2"; locale = "sq"; arch = "linux-i686"; - sha512 = "e65105f1d8bb2aedfff769c5dfc55426cb846008d1d4bcc639a45c1fc24a00b2bdb8d1a1072755e552c7878526b75bac33d4a9bef6eb4637bbdc5a0d97020cc3"; + sha512 = "91b0e82ca4de76a5efe2a759f8325f784441c1fc118bca51b9ccf832f4866732dfa00b40c64c3cf767787ee5fbb11b9b09bc838c933c4ccf2d8472533cc1d07c"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/sr/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/sr/firefox-76.0b4.tar.bz2"; locale = "sr"; arch = "linux-i686"; - sha512 = "3d0bfadf39fbdd5b51c8187fac2ac6643bcceb06252365532b0369ca4beb0e09ef5116704f208d5fd66e23b321828a24dda7dd277c475967711128a6f8f3bdca"; + sha512 = "b41cbce7747ad6937c471f7f54d88e506a415dd6fa145979cdb88c07e1e929922b54ae9e61a674e47c120c9b53e2062d9b8c75b2cb84825fbb52dec2f2ef2751"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/sv-SE/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/sv-SE/firefox-76.0b4.tar.bz2"; locale = "sv-SE"; arch = "linux-i686"; - sha512 = "036773f6324a6c6872ed0fa312c7ee63a891fceef9ba51f402e135b1572bacfd31c7b137014118ac91f13607056430eedcf082aa4889c68af4f4249035bbf7ca"; + sha512 = "902273fe8c9057b7d7778ac3b21b3230735d60ed3de6b48c9bb9554825c0e8f8131e7dd4a53aa4170f44220c25d64f23bf5f464402db9797a0d30c8bd3e388f0"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/ta/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ta/firefox-76.0b4.tar.bz2"; locale = "ta"; arch = "linux-i686"; - sha512 = "c9e4290b20655e9ad5e2f9bcf8982cfdb8c0492318ffdc716b0c257bd707b0d7db69bd6b48802e17026a3416cf1c78f6d10e782cdcdcaa0cc4a382517e1ea9e7"; + sha512 = "4fac2fc24242045e01bb7fcff75238d2cf4ad85da11efadc0b4a180a402deeeab4f4eaf39f32118a5668c872569e67dcd2b86793bbaa57391cf8c860a7bee345"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/te/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/te/firefox-76.0b4.tar.bz2"; locale = "te"; arch = "linux-i686"; - sha512 = "53a4c90bbd7854031dd180fddab6452f29c33f56111ba40d9bd634bb5e87584016581137e1b100ed247565557b8a556c6a473d2c46e1bd65f78fe5506420091a"; + sha512 = "9c6eda370b7fffab80d3a4dc76f19a660f17ddd845251f99fa6bfa79ed5bd8bba601ba4bf07c108186423ade57358461756e82427e1f5db77807336d4eef62a2"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/th/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/th/firefox-76.0b4.tar.bz2"; locale = "th"; arch = "linux-i686"; - sha512 = "f75d583ec397c57cac3bd1c384393c818020c3f46ed3b196060497fc2f09a36df3d31cb7b6637e3697a50e04c5222cde0c50fffafabf3415cb097552b67061f6"; + sha512 = "38b01f7e48cee6ed453b48bf0924beff15755ff1b4870b625120bb82eb4a36825295b5f314ebac977b4ec1fc0be2f475ca8d288293526c856563829cfb5b52e3"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/tl/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/tl/firefox-76.0b4.tar.bz2"; locale = "tl"; arch = "linux-i686"; - sha512 = "607e6371397bf29c10893b5a72ff706c6cab84024c93832aedd1e7a57c1431c47350023424614680350536a3e8c6909a3ad89392d15208bdbceb6d63e1a2d95d"; + sha512 = "a949c67154859aceacd77a2d090f1ef9e585eb11ec817f8b0ad19a5e661391fe24d33c4a996137ac5ed2c312bad833d07dd140aa8bb0cfc0d223dca8ed4b84bc"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/tr/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/tr/firefox-76.0b4.tar.bz2"; locale = "tr"; arch = "linux-i686"; - sha512 = "c28d89bcae7ffc6145a1d8393a7cf4e9e63025f09ec54c42a7d5d7e6a0584f02ab52fbd4346c74e54b116ff461dedf7c533a77f2b2175e34b53f7a2b725023bc"; + sha512 = "460430a84436bbafb814c722a66e228e3a9e6fb4b1e250a8cb5955ae43e7de604bdbf374db7788b6bd26e3f6e038d1fe88f250fe37b5a4798d5d8a03f85cd3d6"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/trs/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/trs/firefox-76.0b4.tar.bz2"; locale = "trs"; arch = "linux-i686"; - sha512 = "eb505f85d35dade14f853bfbf4086f3ce28faed1f497a35f612f30bcf35d49fab6ea32bf2b00e436d12d255ae37dce6ff1fbdb1eb3dd1743064181404bb28774"; + sha512 = "0ba10c70b32ec847e497d20cc8e872ea1b867a8d5c608df1568edbd15475d9eb4e53ce6e7a96e249a9e0835fbd18137d4fc69a5f29e81abd9c154acfdd0db398"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/uk/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/uk/firefox-76.0b4.tar.bz2"; locale = "uk"; arch = "linux-i686"; - sha512 = "5045d30636c9f3d893ffe5a90e87f22d91718e36e720962e4d6d505106922290bed710ccb9ba50897228836f5df6844de21384143275460ef50aee37ca175ad6"; + sha512 = "f6fa0f31ac6007420f9e6ba01db67d98e380375aa3fd0cf12ebf94db157dc35d905b76f5ab6e0087fde825cddd8031da860a15c59f6747268b6547546f08e796"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/ur/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/ur/firefox-76.0b4.tar.bz2"; locale = "ur"; arch = "linux-i686"; - sha512 = "78daf235a6cd6301b356a887bb0b8318e9a8f7785ace0c3a398fbd982e4131acd8c43f818addc516f0f14b56d41ae41d51ba07f2848c0630baa057b323a5f268"; + sha512 = "b723e0c609705f4ddb29e3d3349b0195520b842af7ca0a1ccc427da5d0a9dfeeb1b71f2570c5c877b1351886bec5d810ae8ce38525dd771b10f9923fc076de83"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/uz/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/uz/firefox-76.0b4.tar.bz2"; locale = "uz"; arch = "linux-i686"; - sha512 = "ed6edd3f1c54e2675c650ff48e5102f54c258cc999506ace655a99f19dccfb9e3140e4c63d6bede4d72b6f84a6eb300ba485d932316b83922288d3ed6ac66e00"; + sha512 = "d0c085a5bb75e5f6d9e1950aba926d5e3b31af7ee96503fc8716091382ce9f85c9e9c6bde4c693034517299ed2a3c650026b0c811d969974de6b79db8f5e74d5"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/vi/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/vi/firefox-76.0b4.tar.bz2"; locale = "vi"; arch = "linux-i686"; - sha512 = "125e68eb19e1f1fbfc8a8ac0809bfeac48ec37da172052921cb0710d8ddbcb031c72139c81c6349a4ef3946eb6d10e49d398e561e2b09c23752182ad979c932b"; + sha512 = "b5bb0ef8535422d83c24103e72a3fe619347f537230aa2f03b24ea8f29b726cd4fd5c94312466918a166ab8166df22403e3eb1c74a8aeea4bb3c71d4a378f755"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/xh/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/xh/firefox-76.0b4.tar.bz2"; locale = "xh"; arch = "linux-i686"; - sha512 = "bdd6749ddbe15d1332a749a9f9d954b4f018c91c3975b61af2863509fb97169f2c1afe31bfcfb2b3ee68fb30a5b7cbe6fcb4e94ed751d5a1710c743b3a6bd9de"; + sha512 = "3b8b91d953a1f62402d5c8d709ba7ae9d873acdc7a49604453bf862a223453f02b34bc2857e0e3744b608c41fcc906ec2f3771fe4510c9dc0cd5b6d0763e50bc"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/zh-CN/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/zh-CN/firefox-76.0b4.tar.bz2"; locale = "zh-CN"; arch = "linux-i686"; - sha512 = "2da359cbc166375462ce9f75f60ee802b2b63bfd21afa661d3bdce7ee41a3c76639c81f6700292d352739f8d3988de3a33e27464d7a8d7023e52440865e92c12"; + sha512 = "4446989a2531865b5266c7a5e4066a94399faba26f2349f92797bfad5fafccd658d0af57e2af4f62222b03818a8a57e7f2709d6f87dd97f9db419221c72199ef"; } - { url = "http://archive.mozilla.org/pub/devedition/releases/75.0b2/linux-i686/zh-TW/firefox-75.0b2.tar.bz2"; + { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b4/linux-i686/zh-TW/firefox-76.0b4.tar.bz2"; locale = "zh-TW"; arch = "linux-i686"; - sha512 = "99869cdc515c28505d025348013d7617a16ab79bc4b024240b893628e1884221fece1bee33013a62f800e2633bc1edbac256e74c411ea10b32b6802eac9e7855"; + sha512 = "a77c23a6bc0844a43569e91b2725b580c8f542804f20d81164328e7bf84332513bca2ebf3b60f0d87f64c450e7dfc34e81d0147a449738c7b6754e0cd134790e"; } ]; } diff --git a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix index 02c90006f34..997d6d98405 100644 --- a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix +++ b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix @@ -1,965 +1,965 @@ { - version = "74.0"; + version = "75.0"; sources = [ - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/ach/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ach/firefox-75.0.tar.bz2"; locale = "ach"; arch = "linux-x86_64"; - sha512 = "e5d3f75026891916b44fe962b8a01bb76e434269c2e9c10c8815765a8fe3b5eadcd63ade57ac2b103a8b66fe26ea6715f6c6d1ef675390e339c4d82c7f6a2723"; + sha512 = "654ce2cccf5b123e25509f71f4526f42052b3cd6eb79694de47f94363af4ab2b98b60d73020bf45c11d5aee9d0b3e246f72a7795cdf770f34a34f8c097d3cb5b"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/af/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/af/firefox-75.0.tar.bz2"; locale = "af"; arch = "linux-x86_64"; - sha512 = "0a901248b2ebf5a8cf9755abda8bc170a295f65fca461e39d4957595295b61b7be91af3d5ce72c20fb1848a2d2bd017d6d6ce1e13415383d1087bb824a9e56ce"; + sha512 = "615b948a59066bf7503d66a3fd574fa6523f85765f7e7f84d3929a78ef82b4833be6e810eeb95e266e3609e943703e1c84a0f7a26a542fb5e8a8bb0fcf379065"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/an/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/an/firefox-75.0.tar.bz2"; locale = "an"; arch = "linux-x86_64"; - sha512 = "ce2ccb8f33acf35b58462573efe1ae5c37ba79c6174340b0e5391d90f826b2ba40aa1925d1aa247f15ab4f1272f552a15167019161f3ba53edcb6b994592d83d"; + sha512 = "070d250a2a22ae6b97efc618fb65fe93efe209b82aab53f9c13d20c3c8bf3fb9b84e209661d0322759a0dbed68e17c69ce6ef24a53d9dfd3186f1fd987e7c60c"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/ar/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ar/firefox-75.0.tar.bz2"; locale = "ar"; arch = "linux-x86_64"; - sha512 = "8f7e36ce99b292084528ff29f78a85808f9259d7c6f6b20aba1a1b20de97238a9efc5fc6aefb6ddd1137f98a27e1f6ce62db3f8bac0fb2d8a7659a6f1ffe7049"; + sha512 = "36f7e51b0a1b7eb1c5df858cd0e90c301c162bb0413882dc3e64ed1240b4c81fde26eb0d9f7d813ce92c8bbae1e87a98e97d4a6360d765fb32ffdd84298f7f37"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/ast/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ast/firefox-75.0.tar.bz2"; locale = "ast"; arch = "linux-x86_64"; - sha512 = "042d6eec61bbc6d4b98bae661ac3fe30120ad8c732ee450b363cc6ffc78ba8367eb72d42fcf6244b72822d6a333045d7cbd38498ef12901566d3b2576d34d181"; + sha512 = "693cc4eedc5ec9a058ecb618ef70b322bc55b5a6159f480b219807940061ec22c92843fd288252ef30341dc1e42d0ad63586f5b9f438011726dc5fe88ad6037e"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/az/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/az/firefox-75.0.tar.bz2"; locale = "az"; arch = "linux-x86_64"; - sha512 = "3ad861f357fb538d45388b9b2959043b157422144e426053e84b3094ac99a61af1bcbcd4697ba4da9bae70ce50915aaeea62b82f03e465669c54c9ddba4482a6"; + sha512 = "9d78aa451a95f5c26685b6065c93c77c7b3f14db6cbc57ceb0b868a30ce2a023d28063d4a14b5617f65c2ebcb6eab7d2ec6ba2eab0909e44ab3f25b2b69471df"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/be/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/be/firefox-75.0.tar.bz2"; locale = "be"; arch = "linux-x86_64"; - sha512 = "cbaaf387a9cdd6918d0a8dfe81ce02c0c6de644d791bd4ffb26dc84679a2129abfea068569967389672d7097e03c73b8999466b816942b14739eaa9d4c7c8772"; + sha512 = "6b898118e72cb2311d6230a2a151505c1927a35060bf703da6ce97a5d0735b06e56b163d5e5d4542931453923cf5e0afb9b527d2392e324a509da5185f2a2720"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/bg/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/bg/firefox-75.0.tar.bz2"; locale = "bg"; arch = "linux-x86_64"; - sha512 = "7cce07ef87dd0d0c2a7040238c2a3f9f2d52eb2e13f1037031d5e8e1c9ffd4b64f018b2e6ca76dd3bf9556603da2454bd5e0ec86af9bf38b4001fa9cdc3f1707"; + sha512 = "b9a12097e8312c099622c3f506c09507a9f3cb25e36f25967001c37f3840916f58c6693f272725ef3a35b22be916c3f4eea78b3bd0ea4a110647a0db53484cfd"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/bn/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/bn/firefox-75.0.tar.bz2"; locale = "bn"; arch = "linux-x86_64"; - sha512 = "3208c555544130df757d30a89769b9ed30a458712a109868d5d2d09212caba02b5c2200a30ae12546113c96b6ea32996367013aae11cfcfe358cbf60f2a26f87"; + sha512 = "b396e1e57c0e1cb7d554eb32ff4cd92db5458c5c232855bce42765aa2ab0d387ccd817f8a06624f84122f74dc1d5818992e9ca18138085a2f164ae3095485e14"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/br/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/br/firefox-75.0.tar.bz2"; locale = "br"; arch = "linux-x86_64"; - sha512 = "2840bc7fda4e4713dbba8f09c0295b8c566de5aa86486db33be1f05b56ac02204227559b546b18c4531539e3a4beec13b8c61c2e9aa756bb38329a5dc2d6ab81"; + sha512 = "3aa6fb9dc3300b38038873e5fb06e40f4e9adbf30aa6fc4f3cfa7ebc399bd94d3464081f304843e83d4478989874283a8ae1be5704d34f4e43b2a699aab31466"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/bs/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/bs/firefox-75.0.tar.bz2"; locale = "bs"; arch = "linux-x86_64"; - sha512 = "c0155a15069791538342d767e36ded097deae8ba66b27f6ed34ee00b31ce045fba718e58452dda47b53fa4f26dbc44420b5d1c2d6b6610c5a57d3a58c63eaef0"; + sha512 = "baf9e2909320fa15c70fc4a37e4e15a89726079d49d2a7edb72dcc4908b59cd8a8ae4917c1f4338063f5b85b119dfdd9c8d0480d71dd4fc45cca77ce465a3170"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/ca-valencia/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ca-valencia/firefox-75.0.tar.bz2"; locale = "ca-valencia"; arch = "linux-x86_64"; - sha512 = "29051c03f47f5c7d9c9b1ec62d4e94b3732f2e695f92300f1f035226cd81f308f3bdfe987bdbfbed19b15618e89bc1955be3086828a6f495488730d7cc76b014"; + sha512 = "a3e16f4ef89e8ffa65981cee1ed53817dc2ed235f2f3f7b9ba035db92ccc58893b10f5719fa7c37a400bfb9da07309f788c142e36e5f7a91e286d7f0d9ec3092"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/ca/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ca/firefox-75.0.tar.bz2"; locale = "ca"; arch = "linux-x86_64"; - sha512 = "8cc5c4a3302cae8449fbb215c456073a03d86cc555737ef0481480b695ff6e72d59a4ec54d8205423eb588f4aa9273711a2a61722241335d68461aa6597ec4ad"; + sha512 = "a68a75844cf22ecccd407f0478bd38b3ed6f19cf8e6b32cef2c9e5e6d03eaa621b60be924a649c729b6cca3dbdeaf518f56676cb0bc295cb50ebb1038571e31b"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/cak/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/cak/firefox-75.0.tar.bz2"; locale = "cak"; arch = "linux-x86_64"; - sha512 = "ba11aa53222ad1947a0a8d41b2a0d5e16afdf2857a0415e28c21fee8b27464741c0d10f8655182c5b2992362f040290aa6dfa720b3f76968f26407e9e9183ca6"; + sha512 = "5759039f87134d0a1653d8175c53a0aa8a71379cc4aad75831282956711e4fe485e62040c3325f24684e2d676fe4208ec4319aa959cb29c9682847b35906589d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/cs/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/cs/firefox-75.0.tar.bz2"; locale = "cs"; arch = "linux-x86_64"; - sha512 = "59c3c417a4a686ab3ef0073f8e153964f2e516c98f6772cb1be93e6f25ff9d34a830042043ef9ef7436445e9932f862f59ac1c00ee55cdf273f4c514473df1cd"; + sha512 = "dcb7a5c9b89c524e61f7a99a2926099cb7ba088c7fbce82f3e8450b00554efc587dd7c4b757b6567519f0ec928edf50fcfd438367c37b48a3bff7d1ef66b4d51"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/cy/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/cy/firefox-75.0.tar.bz2"; locale = "cy"; arch = "linux-x86_64"; - sha512 = "06225ca6ee4fa5e7b4c790b0904faac902ff260acfc52df60f87d0a146c6bb299b74ce0163ffa6c2dd951bb8a6abc79f99ceff03ddac1481c548eac7ab717708"; + sha512 = "e788954f6ce821cc68afe9428c02823870533164b36123d7f7a9bce7a4d82392606d397713e8cf28b5360dc5897ca35bd3ff6aaaafbabb7fe5106462e8f687f2"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/da/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/da/firefox-75.0.tar.bz2"; locale = "da"; arch = "linux-x86_64"; - sha512 = "0e0f3db805b0d63182060cd94dd0611ddedd2bdb0e9dd41e29ab8ea5e14c31ada265c284000de07fb3315e83a5c49bae7ad5d7976bf6eaff819de80270a8eaea"; + sha512 = "4a2da0b04a3f6cd6a5dff9c4d575d83b8ac195d815d4bc64e1bf59f5993c4b7e26fd56b81d7f0c5f6e5d084365b4d21477f7d554ab06a4f73400b8c484ad0fcc"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/de/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/de/firefox-75.0.tar.bz2"; locale = "de"; arch = "linux-x86_64"; - sha512 = "35a674acf20ac903d208bad89ff681ede7fb4c9ce2bfaa3ae0696ccdfe38e065c8e19cc9afbd711aa3ef0591a3fbb0f196e71e2bb2d3407d9084f12b297d0eab"; + sha512 = "6dd27ff5b7eab20c2548cb0dded8e677334b58040ee4e15a0d1095cafaa209bdde069d03b87ea7133899093375d425621bce7a9a3816f62aa603e20304be56af"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/dsb/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/dsb/firefox-75.0.tar.bz2"; locale = "dsb"; arch = "linux-x86_64"; - sha512 = "7aa789662ef83d31d7bb68ec95405becf328df9127b02d128638b6726ace88038b75b94262ff12774c2f4538e789ac75d8447935b0160b7967b8b46b4f576d55"; + sha512 = "abff1c0ab591a1c2572e88c25c785f218bfb7b9d86c415f4390830f4d0e2ae97f9ba44d2f0a552356fcdc2d6ef9a238b6d00f1287132df60348728b63fa322bd"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/el/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/el/firefox-75.0.tar.bz2"; locale = "el"; arch = "linux-x86_64"; - sha512 = "67bde03970d1e5ec54badb0964ff2080158e49c8f6a39243c58e7152d17d7908ecf79c6513e1e492f2816d5e5daa31bbb60631be6d56545b55a37bc36d3d1fa3"; + sha512 = "9bfa5257fbefdc079f5d372d7feb3f52f52a33137367676e141a3aa57b5fde64a1e6d218a6cf9d81941a89fb3917edb5f1c4883796148fc63a32c55554538796"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/en-CA/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/en-CA/firefox-75.0.tar.bz2"; locale = "en-CA"; arch = "linux-x86_64"; - sha512 = "322cda1175c9550d10317149761f7fe4bb0a518adb1a7d4cbb96801f9cf3ecd86ca23b30109ccb513b398c1de7e4c9d3f86571a97fd8b3904c81cab1f18bf45c"; + sha512 = "5b6ff6a0b422bd399a5ac2893e187e4f46c6afc106aed7177d3f3a6a9f72c5cf283a589ec589625deed0ce4e3d7d1d45cd9d8a6c7015c48b7187edeb1c07b129"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/en-GB/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/en-GB/firefox-75.0.tar.bz2"; locale = "en-GB"; arch = "linux-x86_64"; - sha512 = "80200e9e82544cdc88d39d620be89c6794d9f9c094fede1f3b0dcc59ae782ae1335954a8ef230ed30bb4295c067ea9bb080bd1415fceda0acec1f7886c667d47"; + sha512 = "03e20bb7811ba53b2ae3f051279c478b4a240ad9ce0381e9a15daa8d04f15b11446456b05c84f41c3f628e3c7166ab2d19b8074c77b7f3190795cc4219be9be6"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/en-US/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/en-US/firefox-75.0.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; - sha512 = "6efa1ab5c884348ce011a5c3d370f04941ad37d14fbc36646f650ae877f2d3fa34960ab35368f8811132127d205c9d00bbca9d8d40f01a4d32f126bd20d9b0c1"; + sha512 = "7cbe8df35f61d82115ca1e4db4dd2e17cc96ba74cdf4e5e48aa4c1f5bdadf4e8b612b6ab58a09ce1352129ccfa68043ae92836b175fc5c328c3696f1f3426107"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/eo/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/eo/firefox-75.0.tar.bz2"; locale = "eo"; arch = "linux-x86_64"; - sha512 = "afb711b4f859997c26973bb0c76dc1f1b30c2fc2b3bd7bad29e7a804d20cbdec746678767fc906f18263fecb0d2199ee96d569f9d13d7a23070804f7b2dcc3e8"; + sha512 = "933a872f25c6377abe21e33fe56a3184e605e299369cf11b84c0fcf420336f119abdc9568eb81b1e51bb58228616cab4c7171cfb8f8e40329bffb377a455c832"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/es-AR/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/es-AR/firefox-75.0.tar.bz2"; locale = "es-AR"; arch = "linux-x86_64"; - sha512 = "8411449eb3699f43d2c430791b31f76d65e446a171757a6f6a461966640e23ddd94bf94f832537b0b6bbc2f4618b7384856cbeb2a8a5e0130a40ce9362561ebc"; + sha512 = "5da5004a2985fce3a6dff5461f2c0fe174d3ad58e3dd37c4535edcd0883fad6f5a449f9f898c5bde5de3aebd9911e87e82c99bd48a06e9d953e38666e3f8fdee"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/es-CL/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/es-CL/firefox-75.0.tar.bz2"; locale = "es-CL"; arch = "linux-x86_64"; - sha512 = "20400f859333966edf138b391206595c8c57cdfd57803fcecec993d6149019662d02b31a9e7c82bbbd3a57a827f29940ed1b4112a73e4cf4be6a1f327e834265"; + sha512 = "c2acae33bbf335d871ef14e27d197f4378e8ad1a94b9ba2df28497e4a72fd554a1d9428692cbd7cd5e3147f575d7517dbca07b3edb5eaa66c390000e7cbf5a7d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/es-ES/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/es-ES/firefox-75.0.tar.bz2"; locale = "es-ES"; arch = "linux-x86_64"; - sha512 = "b9017bc5587d16dd2cd5f1d3ac8ee6eda2768a4a6f15fbd05ecb437cb9cd341bf12a795a8dd110474abed874549855550af1f4d6836b13c4e020f6b66ef6f7f8"; + sha512 = "ce8ca7ce217bde7b42c9ce6d64874d37306754ccfd61f0b61c898e22f84feba6e30a33468b9766ad96f5ae8e6e674eab93881f36ded52f010216d8efa5f77907"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/es-MX/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/es-MX/firefox-75.0.tar.bz2"; locale = "es-MX"; arch = "linux-x86_64"; - sha512 = "ec482c757317556b4e77e46bf885d99824b4a48577e3efde0c89d7bcb9464199c005ac4aae380294049f5c72b1f792c41fcc6592bac97cf4b7961925e82a5f58"; + sha512 = "fe32f01fcc01ccefaf7207fdc56da4450fd17928185382cd738d7a22425b5c3761ef60d0a9f7d35d314d0b7884859d614f08903eb20fb0a679f27dd1f4b136b2"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/et/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/et/firefox-75.0.tar.bz2"; locale = "et"; arch = "linux-x86_64"; - sha512 = "afd3cf4f9384cccc079160f3bee5a87d0ced59387b1ee653200c73f541bfaf414f983110e29ef54bf45c869dc7b9e82f50baad2691c0bcbabf1f2f49283ba144"; + sha512 = "fc1855e6c7bc19f181c7e87909a79e1a5d08ce1fd38f52d65e20331daec8af8b54c1bb7f90eb1c3e53c900f141ae264f55895f6fdd3690a83945a26707eec27d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/eu/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/eu/firefox-75.0.tar.bz2"; locale = "eu"; arch = "linux-x86_64"; - sha512 = "b09cd73ed933b56266955a82ebb2b6dc0f9f6ef372680172e5198f4ecc369e9bbeb98cf09a6278c4363c9a88c3367806453821da5293fbda18cf961c09cf94b5"; + sha512 = "a285ac60590113e41f04a85183038ad02f0d7e24fb42fe1a7b313eb6d3fb5b747ac5f90364278f7c8cc3f35d0ddc86c0bfbc7f7fa7ed2adc56ef6c77c5b25ad8"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/fa/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/fa/firefox-75.0.tar.bz2"; locale = "fa"; arch = "linux-x86_64"; - sha512 = "8661510591646f2b581866a2f2c1816eefafedaea05f7daffb7a4ba51423de1390f9f234b03021ecbc1a344a2537585ad1284d69efb5b0e314d53cdae09f194d"; + sha512 = "84ee3198ca0cd8a3b20f4c696f6c08b94d35f9346e4443e1d6d6ef447d94a20fa1d58488a12124440290c4ae00ae827ee59c0cbdb7905210bdfca0c012f7e01c"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/ff/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ff/firefox-75.0.tar.bz2"; locale = "ff"; arch = "linux-x86_64"; - sha512 = "b42acd23ac34c4998e1cf27a1b74d12fbb954dc65ce7351d7721f91c16338e30239c79660c8d6c07eedcd9601fff6d7b7c94b69f7e86dbaf8001341a9bad8b20"; + sha512 = "f3b615fc63b12ade11fad5b5532d81741147156ae84d08b1bc3c0f43f2c204993601e1bb363ce7e3ed7ed3a5d790428ca51e3cb5decf56f159bf7a25e2e43a83"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/fi/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/fi/firefox-75.0.tar.bz2"; locale = "fi"; arch = "linux-x86_64"; - sha512 = "25ec4fa9f055d2929d400614442bf771941236d6b54741ba1961d6775c070612367d61a23fb21ff3a8773b55614960e722372287c98079947afcbea6dc65a0cd"; + sha512 = "b629b55fe05c53ef814b091ff5222704afb3802630a5f44047bcaa17f8140c834725eff9e51786e55336910c462ac07b956878b551a5a48190b1ccd2904e57dd"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/fr/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/fr/firefox-75.0.tar.bz2"; locale = "fr"; arch = "linux-x86_64"; - sha512 = "2fe23f3c5b82b831f2cdc9b07381160078cf0ff92df5e464d249f896ab9467b8e4464d5415267014b9f620601e7bdeef884fd1eccfeffcd6c0df454df4c7853a"; + sha512 = "1794f58a31e91916492319091437ad9e5bbed95b3925854f744e6e635e9fb4c06abe73f9fed429fd04027c12cc29b63363e60a0c099640226a5a626a428b3002"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/fy-NL/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/fy-NL/firefox-75.0.tar.bz2"; locale = "fy-NL"; arch = "linux-x86_64"; - sha512 = "3620d8f7e24f31a261c73fa6f34c88761148f5ddfd3341575e12e82e1889dd59d0cb21ee8bdbb43b92d9033d274bc4e98ae4a29adb95a750f07abe9e605a4f03"; + sha512 = "3aa9f95eeeadd81d0ecfa93b1df9b1b455425f430968395bfe65e60a65c6aed3d9316f842673c2638acffedfbf1d93940086f6b7a113496c7d8e580aecd8f25d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/ga-IE/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ga-IE/firefox-75.0.tar.bz2"; locale = "ga-IE"; arch = "linux-x86_64"; - sha512 = "75362b8c7bf608a2049d217a442364d0cf3e7dc31419997e43cb25a821d8a31e1d923a2770f9b360cb32923e4338c16718697fab9b16c018a7670299d55da462"; + sha512 = "43bb9830e38dddcc59480a7e162214e37ca3516cfa0d773c4851ec60f098837ea2849917eb460ae7e388612619b13cf29d26d9b1908a8734b6fde1add36c65bc"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/gd/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/gd/firefox-75.0.tar.bz2"; locale = "gd"; arch = "linux-x86_64"; - sha512 = "e888397bc7655e55c4c91376b7165a1dcbbd320e591cafddeef7726caf8c7eb5acca6fd82600ff05a22cf0e1514b9a2cecc8d34d8ae75142cf47a2134cd50407"; + sha512 = "8cf151995af5ebfaf9f713dc7373b9ff3d12ce582c4fd062741eb99e291aec68fe636d871709ee0a0bd628af0e9f1a412a12289c539334783c7a5d6b6b0d4822"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/gl/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/gl/firefox-75.0.tar.bz2"; locale = "gl"; arch = "linux-x86_64"; - sha512 = "66c695344af848e4d96c727abf72cfbe348dab0eb61cdd24feaeb462f90aadd55b6115c9e6ac6af7a3ec0691f2d8233008915eb51303da637a9b6167336347f1"; + sha512 = "da133c0af8546ab62c335faded8b35f917af2cc7fafac8cd22db1e3a867b390de60a2bc15adc7687044702907a675eee42b049cde335d41a55894537dd137fd0"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/gn/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/gn/firefox-75.0.tar.bz2"; locale = "gn"; arch = "linux-x86_64"; - sha512 = "c266adc6f166a57994ae92df8df47c9d6fd7a406b4d3b0f157a33196b31c04b8ad2fbf5c491b80b7fa200c98887b4b4a5ffd3750930984f18c8c86bf43d6b956"; + sha512 = "a1f6063560d70f81cab8d40f1f0e28ea866f284ec94a0093fe874c96795ad3e823c202e82dee2de7578f3ffc1231ac0e8bdcc1a21c44107cb1d4ab56cb56effe"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/gu-IN/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/gu-IN/firefox-75.0.tar.bz2"; locale = "gu-IN"; arch = "linux-x86_64"; - sha512 = "4924605c3be69db7639708e76cab66758c4bfd217f8a1bc1340b772db1d31f5df19099dc30ca3422db53a7bddf548c87e8338535e1454fd4d9ace57a24b71832"; + sha512 = "60123058d668641a6c48a7a6a4247337515493267b3489a16e9f7fa2d0ab1ed8a5382974705a156fc041501560b8f6a2be3a97b47ebfdb5f6f527e63ac5acbcd"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/he/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/he/firefox-75.0.tar.bz2"; locale = "he"; arch = "linux-x86_64"; - sha512 = "faabb65699d0c83321178d845d7831c82078dd592d6a602a6b25eb56d5424c4c479345cd4ff331bda79e9dce616a06141973bfd7c221b20b3a8ebe899ffa2130"; + sha512 = "7693bad7f6505cfd1718e8268611133d26826adc49003eeb6d30bf38ddc1908c39ec270b80e20463c016e4b367ea8035dc8c9707b410299581e1b09df7a08df0"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/hi-IN/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/hi-IN/firefox-75.0.tar.bz2"; locale = "hi-IN"; arch = "linux-x86_64"; - sha512 = "6d331d8ac6ba025785b49af71067bf2fdc406caf9f1c82fa90e26b4f56a1a2eaf4043fbf5ff6a477ac69836377cfa2205e029bd9125982b7c4076d90111bae1c"; + sha512 = "f5b58f3507852cb2d900d1398c934bb8de725b3578d1037d424f5b81d7cf2e0a247e6be50037e027649dece8cae55c579f81205259c93f22eefb2d67af8b0d57"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/hr/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/hr/firefox-75.0.tar.bz2"; locale = "hr"; arch = "linux-x86_64"; - sha512 = "8229ec61969f2378f02e49f5071b49417c871799986a8ff9a77b177aa1753d410e76eef80675facc76b4c55799ddc4a16984cea4e1a321a96090afc98e741abf"; + sha512 = "6504e82cb541bcc9a893c5adcc063a8de3b85e68329d3e5dee0a461a0c614b330d7b59b6f3fa0195a01d69ee011017bdf999f95fbb19ad25136b291feef1ccb3"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/hsb/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/hsb/firefox-75.0.tar.bz2"; locale = "hsb"; arch = "linux-x86_64"; - sha512 = "d78cd5a9dd7c5049e9b705412268a568b62e2a56602896659af9144ae9ae2ef0e25b7da6d470c7423bc2fec3fe14487b7d966ddeba69d5a451c6e3558808edcf"; + sha512 = "6d0828ce7c721aecdc66a1df441cd7ad43a1e96487797a414a5a9843bbee6edc1ad2aa23d82edac7b2bb1264a0880b1852bf2cbab184ac1f5f91da99fb4bb06d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/hu/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/hu/firefox-75.0.tar.bz2"; locale = "hu"; arch = "linux-x86_64"; - sha512 = "e0da837fdb4071e88bc74de77fb57367eb2d69fc6f319b1672c32e3d051facfbacbc93806f5067674342898cf9adb44158a99882c66428b65427b952d53842e1"; + sha512 = "a252051af8e299e6b21e9d601e54cbb0413d73eebce693403b522354cb0b6ceb240ef70b50c99ab55379d2a99a0f268483e2b0a02da3f9684a5b7a958b732cd1"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/hy-AM/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/hy-AM/firefox-75.0.tar.bz2"; locale = "hy-AM"; arch = "linux-x86_64"; - sha512 = "6f9ad04f2f48830cdbb1c9fbd781f50199593fcd3da0b8853b305c6c61dc627eb7669968aa69beb1ab6c0c93ec15a942e85b2984d55cd40d0b9447e28db458e5"; + sha512 = "aca7eb55987d98d69f024ac41414fc9394c8f05949bde1880d191c3b09bdea4798baedb4a92119faf923e5a36c760360d87ecfadc771a57f6425302483b6dd08"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/ia/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ia/firefox-75.0.tar.bz2"; locale = "ia"; arch = "linux-x86_64"; - sha512 = "4e399cfa525c847a0aed0b1c46d85bd981af6a3a68b07ec63860d53cb0d0e9cd004402522e2b54ffe81d95a6b594fb16290d9a5e01cff5cbe7264bef5e12a6e4"; + sha512 = "e23d26cd4f7cd40610ca841fd2b8be72f199eb2102560002c419fb6f00b1f2fffcf5fad6fd06c6e7a0146d2b7525c006e6dc696271f4bd4f5bb3bcefb8980e9a"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/id/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/id/firefox-75.0.tar.bz2"; locale = "id"; arch = "linux-x86_64"; - sha512 = "50255eef2e33bb5737826a9864af5837e3b5e626e22361c5a3fae52a84afd0469d3de1db05317f1c8734f34c0a3e85e7853217660eb8fddb8cdaa0998535ebf8"; + sha512 = "f8ecfe334dbcf6598cc2241c56d6496ccf0755494d11c26e2624803d3f1a6001944d8c9b78c62bd8bdac85fc3d1e60b90212b8bd8b2842e0faf6824a1651a31d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/is/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/is/firefox-75.0.tar.bz2"; locale = "is"; arch = "linux-x86_64"; - sha512 = "69e96b479069ef1bf07df49cf77e623ed56d71ddcb44417b5d8b7d410bcd93f18c2a49bbae6a128e16998bae99617aa2128aa2d13afa0987f3b3c98cb9f39a8a"; + sha512 = "9ce50d9746bcf6384627a83538a0e023091b7f264c6364e88de2bd8ebed0e081e1d31681ae0679d2a88f462bf9e04d7e9cd07826822cff3db1a1d338816875ac"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/it/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/it/firefox-75.0.tar.bz2"; locale = "it"; arch = "linux-x86_64"; - sha512 = "a240412ffb762df4063532b6c07b5e1bed86b9d77d31ae2ffa58b2e7aa596ce6ab906e03a416039cea1ced3904a152b225106690e2f793c4061f0858fb807f07"; + sha512 = "9284d8657a4097696523cc07217908449102f46dba9564f98b2e4889707082be4cf285f889f650ceaa92e06f564daa19691dfcfe95b0b4a865987b767665b837"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/ja/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ja/firefox-75.0.tar.bz2"; locale = "ja"; arch = "linux-x86_64"; - sha512 = "dd419563541b90833e50f3a65d54638719df741e5cdbe53d6dcee39f7623745925cb6777ec07097e9c25dd69deb0c7a183ae26055e623869df6e7a65bc020c6e"; + sha512 = "68bfe86b27d5d5d71121735a627e29964b2c3dd70e33e12f8ce3a9d380d253c33bede8d33eb7f0185acc68deb388b731ae6b40c7d71ac49c6fb5ee60e44e787c"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/ka/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ka/firefox-75.0.tar.bz2"; locale = "ka"; arch = "linux-x86_64"; - sha512 = "a1ad0cdb38c4fe1e2d87bf076cf16fb463f9f6fbdc60173768807570b6b1d4b7ebef9826d59e8666aba4598282556787e808371de37935c83c870d1514b855ea"; + sha512 = "b784f5fcc063c98481ee3eae767eb3df60c9ba4464fbb612cd10bbdf1abf54f5b2098700345f2494358de1ced339f1fade979ab6603f036e4a2f76b25c46a33e"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/kab/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/kab/firefox-75.0.tar.bz2"; locale = "kab"; arch = "linux-x86_64"; - sha512 = "d7f80172e0ae8ca780ad2f83fce0f75f53dc9a86d14908f14bf12c36ce4beededad592db90f35981e8c86ceafd41075c561e7b9b45340a27aae4489fa6cd8cc4"; + sha512 = "ac26df50c827efe7fecac013ae417a4b68d2a49062ec9fd443f5ff6d47646333ccbf6a98e92e0c8c2d5aa293b170336752c92d33999e41e3ed163292a6bf3d0b"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/kk/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/kk/firefox-75.0.tar.bz2"; locale = "kk"; arch = "linux-x86_64"; - sha512 = "d7c42163e48e7612d819247300a06d99f474a68016d099626c7493d6a836b9f6a0b641f686a2e110fea76c1df2f91c9d1b768c90011f9001cf708c5c4f6e8d95"; + sha512 = "47e516fc9fbba8e5b57fa3172df29fccf8d318fe1431233c2d70c5c657d40f2a8af1b20daf5e3d6b3978ee093b1d100dbf7ef8838385791b58ce5463d6899946"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/km/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/km/firefox-75.0.tar.bz2"; locale = "km"; arch = "linux-x86_64"; - sha512 = "3d9e3e5d211260e5816419b77b9dcc8aa77bf967c795949f9483978ebcd588928b9c36cac637d7f7601239278cb72860a2f047e22c3cc9af8fa8ef56500c6fe7"; + sha512 = "ae0baee8e59fc4d44ebf57d7f708d3f30126989e4bd32309d8daa4478facfa4a929a96972acfb248eab0a1e04597b2dd521a4fee40f748fb0a4f6108220464de"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/kn/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/kn/firefox-75.0.tar.bz2"; locale = "kn"; arch = "linux-x86_64"; - sha512 = "ce3247275a30028580a0797838d7040e3f048bbee92684a39abe65a7d0425e883460aed711d4d7aa88295a5423a09872fddf51ac0d122fed50ca5d370fa27a84"; + sha512 = "c0c37e1b36408b0d8a4d34fbba254a6d6b37c80287ddc4abce88a623ba3fd5b92108509bee27bbee500abfc08d364886ce8ed5b816b9450aacd127aeba39df94"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/ko/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ko/firefox-75.0.tar.bz2"; locale = "ko"; arch = "linux-x86_64"; - sha512 = "a869918da7166a3de1918115c4fd080c0e17455bfcb54141332f5046fc546e4cfeb301640c5c1475b5b562d6cc7c29bb970423982bbdaeeb5da469b59262c6b7"; + sha512 = "8867aa119becc3e88c63096c5ebfb2bea3a396cbbbc18f35725d5983df098543827bf6c069292322507b871263f744ffb411a59437687780a9dcafd276d04410"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/lij/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/lij/firefox-75.0.tar.bz2"; locale = "lij"; arch = "linux-x86_64"; - sha512 = "c5cace7eafa3fd6572bd00575c2e342ab1614b9647ba0fbe5b79faf65bc89c31deeca52fbc7618533dc48f6d60911a4af0020cd40fb28fc33f1c1538d3c3100f"; + sha512 = "c10c9dbcbd911c3ce324aef23629f37df959797128fcea7373f3d77fb8b3d538850aed797e754bd15edf59e666412158bcee2c1a9ce8d040d1b457de9ee007f1"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/lt/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/lt/firefox-75.0.tar.bz2"; locale = "lt"; arch = "linux-x86_64"; - sha512 = "a53f8f6c7585d2301a8490a75ee7e90d3f47b1503e8521b1b80de49a062531749c2302b92a2332b5cab7f9a4453dcaddf623ad63c5f78dfef11ca190bb73e6b3"; + sha512 = "58517b58ac3c51c5aa2fddc0b5a458d100d3eec44e51c6d188a85c2e7538caf37cabb1440f4ebdc97d54d3677697a5fe07235d67ddc5c4287bcef10f9b7dc3bc"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/lv/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/lv/firefox-75.0.tar.bz2"; locale = "lv"; arch = "linux-x86_64"; - sha512 = "26e7d07a0cfff802cd2a52e303af0df2227bd40616809acadcaf6787ed302e8ea5686de2a1cff800121f3899120c77de4df4eac246c9768b741b5e5e411e5d3b"; + sha512 = "9e07357febaa5b67eafa435d30a2a8f75f2ad25d1e87968cf71b8a265a647ea0020169d6f2cd77c4779dff905774664f84ad26fbcc8b9d4c986dfad52000e175"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/mk/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/mk/firefox-75.0.tar.bz2"; locale = "mk"; arch = "linux-x86_64"; - sha512 = "e07991906c0c4d73a83205add07eeb7522ab51d32133f9d3601dc0e99479073f1f55e617913f7ab02f5022d898aa023d473652577d2e48e86f6c5d87635940dd"; + sha512 = "249c45bf3f1b22e355bcfb4f5afa829163d8d1d72a8f192111eff2158b10585152c9c2dcb2fbc9ce66d8351d83d83236a04b42da4607fad92d2b4e25acdd39a4"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/mr/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/mr/firefox-75.0.tar.bz2"; locale = "mr"; arch = "linux-x86_64"; - sha512 = "ce1f14f12949f7bb6493d72878fe81642619fa00dcb35c7de6d818a25c6cf1349c983ccb3976b796673340adecfcfd344042ef59c0eeca159cd1c60bd59d18ea"; + sha512 = "b5860b41a310cddc4dc81074f01deffdbd10ec3f682aaf3d27881f8c190cf5ba39c428b7bae688301f8fb40ca12b3cfdd9377501a3e750ce8995e1331fc015ed"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/ms/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ms/firefox-75.0.tar.bz2"; locale = "ms"; arch = "linux-x86_64"; - sha512 = "a2f3a1a8152835045c944cd70dd86a8053ab5cbdde7097d6d2e3c06485717ef8efd762f97c81b88f8f2bbed5e6d3d14e6adf192b286eebe413529bb60326a742"; + sha512 = "a1b88f527ce9e4d9f69d4b727313a68432db2d989d360fe5716f896d61e7dc098667720a2c60e33612b43157566f95abe6f1b149f7aa507a9738753e6c3213bd"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/my/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/my/firefox-75.0.tar.bz2"; locale = "my"; arch = "linux-x86_64"; - sha512 = "e6280fa3a25bd44bfdfd80ae28b6909417731a81dc86bc728d70a3baa35f29d172c9495de43a87911b36e5bba187d4aba3d6680204ffd62b966bf0044ee7f6b1"; + sha512 = "74efc375475884fb9bfa9fa4d944dde0f6c734d1c73676d37b80a909618773147f12faa94ed6570a6aab6652c4c5c32cf386ac096acc025ba6c8440d8d345026"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/nb-NO/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/nb-NO/firefox-75.0.tar.bz2"; locale = "nb-NO"; arch = "linux-x86_64"; - sha512 = "d0ea04c9f898eeef36ee46918b345f6a307877d6aee8f9ab958e1600c74494e3851563aadc8a34f0997d285cc0f2118052dac009a0efec3034d6c3eee72d119e"; + sha512 = "c1d4eafece0ba52022c96fd939651ad047e942fd9128dd8c6bada79f2d0eba01311b4829c805eafbbcc53ec4dee34d14e015742a86ec67de07d84d6950fff41e"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/ne-NP/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ne-NP/firefox-75.0.tar.bz2"; locale = "ne-NP"; arch = "linux-x86_64"; - sha512 = "2baa7e1108390ca2baa28eb55afafecc7a67e746d3cf1a883fa515c623a9aaf996efcc4d54b6ba661f05f1ee00ad607ae75ed286847e7f9e74713e1a96df5cf7"; + sha512 = "a97b467bd40e1564973b18ad6acb10412da67184daaad25c34b84ec2a8f3a840f01fe4b9720f4774a546a7e035338d9ce297eeb882a3df2b50f6a9cffa2bee13"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/nl/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/nl/firefox-75.0.tar.bz2"; locale = "nl"; arch = "linux-x86_64"; - sha512 = "e6c2a98851617b9d6e0f2f2005b049de15cc6dc89793c977c0566be9ec1000041c5f2e423cfd5e71351913765c37ed37e62b4defaec4c59b7d2c5e698dada651"; + sha512 = "2d84393b851618e1742616ab6f3b1fb21b7f00cd65a98438cf3a1250275b7b184f6eb0cdb1d1425293d1ecbcf4591fba392283596146a5b18f29166111cd8844"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/nn-NO/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/nn-NO/firefox-75.0.tar.bz2"; locale = "nn-NO"; arch = "linux-x86_64"; - sha512 = "df2ae022d88000d677a487f5c409d57d1ea703ca5a91770863da62f74ffd3ebf7e58e463ab9e67d44514c630b7226b7b623797dd2e90185341afe532311ef039"; + sha512 = "c5782ddf73e00481ed338ccc989b2c2760f15e2b2960457cd3cf6403d6d3ad5d1b5d34cc6194b3a1ddc83df8d376796802d4e945b8ab47b7b7e1a4d5a4387a6e"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/oc/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/oc/firefox-75.0.tar.bz2"; locale = "oc"; arch = "linux-x86_64"; - sha512 = "8c52efdaab0e3b9eb2f4e99710c8c7cd9d1d1e894d4c38cd877fde81fd52f5d135f039c9b8619995c384dfe4aa44fda37121d9e0cb87003b8e9dc5eb013ec0cc"; + sha512 = "cd3a3fde21ab21e08467ebbb45d0a2d32cb901c2b6807edd6298eb75bc089684f9fd26c0741295f2ea82c2e25cb375bcd1e45e26c267c59d12d285a00f0d0b74"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/pa-IN/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/pa-IN/firefox-75.0.tar.bz2"; locale = "pa-IN"; arch = "linux-x86_64"; - sha512 = "fdb7acfb49db508be8334685ce47216fe84976205bd83b159d5e573c004417d6adbb49f7d471af81edf026d417f2abfd5411d0e360ab36c1b591282d767873c4"; + sha512 = "546e36c717f8a0c216c32f53cb56d2fb709702052bd52ac1184860c7cd755f9f0d657b8955c3f6347c37d382600ff9cf5add261dd066e8881e6a3e410fea151d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/pl/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/pl/firefox-75.0.tar.bz2"; locale = "pl"; arch = "linux-x86_64"; - sha512 = "ef4430578cb71488d0bae269610d962603f4da4a5e7e614acb90f700f4d487127faf8afff3000a9e46f81bb6a271fc2f6b40f06c881bad2096ce4a0de38dbd8e"; + sha512 = "837bde42f6b9c1aaca794be4fcf819fcee3e3456a883743882ed6983e71f98ba25e02292bb01811958a9f21cedac55586deb8066f52939971c348e21ef5ab75d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/pt-BR/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/pt-BR/firefox-75.0.tar.bz2"; locale = "pt-BR"; arch = "linux-x86_64"; - sha512 = "0987da83232c8319a890c8f0f62cf43dd9e0a8c82b8e06b3f1277cf83d6eb09e73df163b0a9faf420ac9db8924b1ad8ef84f1d0e81ea54682a831f941dd40700"; + sha512 = "81a2620aee0f210782aba431e7e9e15ab2a0db49489aa61cf7a6af5944e59c62f38b65aafb198355d5d49aa5c52e1052ba60c03b1772916a972ed06aad616f25"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/pt-PT/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/pt-PT/firefox-75.0.tar.bz2"; locale = "pt-PT"; arch = "linux-x86_64"; - sha512 = "4c052c11785da470cdad1a098ac1b1c8527a49e88a735319aa9385f4139c8f5f9e8fed496d1832cc502ff34be570dd5578c6b0d3af93731891753d842d3c07d4"; + sha512 = "c6b317d17a14c5d5d428410f7e86c7b9089442bcbefdf1a44875373390d649b2f7eff26c09c5cb32fd2f8f42293d289044a7007dae4b075bb1fc522b63f4b18a"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/rm/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/rm/firefox-75.0.tar.bz2"; locale = "rm"; arch = "linux-x86_64"; - sha512 = "462d3e3514141bc7e604fa9666800b30bb15a01757bdb8e1119cc0d97dc4d585a0998b94459ae92f9ecddbbaabf2f1aa342c13acb03135620b0706246f0f7e38"; + sha512 = "12e6c10fcc9419a66aef11e50969fc6adc7084db46d2cc6202a08e1a7225b797fdcdebbfb9dff6a441e3fcc782cb33753361ef37767e5ccff35af2efefd82256"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/ro/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ro/firefox-75.0.tar.bz2"; locale = "ro"; arch = "linux-x86_64"; - sha512 = "47bc24b33127efa652d2223fd6a624b6d8237911e10b8629f7b8ebba3320a4133f5751b9ec62f2acde9aaa45df0f0454e12a8b9defb366f8d2164db0356880ca"; + sha512 = "c03df00b865bec9765d28bf0171a5eb6a57e3c8cd64a9002f17bf67d4d0c118414d6b25a782aa3eaca50d5997203c40e376562f64a252aac4b26fd8419872feb"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/ru/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ru/firefox-75.0.tar.bz2"; locale = "ru"; arch = "linux-x86_64"; - sha512 = "57f796bcf9d755e49639af0f4d7e38878d8f0fa0a4466f3c92fc8ea62c5fe365c10a81871017c3cc83915f80cd3db40669f470b53303bf3433c618c87c0c8502"; + sha512 = "418b70ec07a966a51c101e9ae341b0c949476452b75ed00677ee87b032d592fef65e6ce746004deb0d89b94cf9e2d18ffaf1d388026bb5024dff0994dc2fb058"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/si/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/si/firefox-75.0.tar.bz2"; locale = "si"; arch = "linux-x86_64"; - sha512 = "d028506d4edeede079c14cc2f97d7d9cc665ff54f163a691ad84da2731250e119ecc8e69dc4351a7bb58e9d2402a1ccfb26d30a2fac8b3881ba149c71fdbb9a7"; + sha512 = "5adc26e616a8116fcd5b9579acccbb402fc5c88ac334cbbaca2da48e246c7e44868b6454c75bea355f5cbf6a182346efeb50f7a49b2c3f92c8fa988d50e19e52"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/sk/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/sk/firefox-75.0.tar.bz2"; locale = "sk"; arch = "linux-x86_64"; - sha512 = "f56f3c77fcb6c12539f1b264f565f371a7c4e5635fb644ec706b19bfb6cb10d546e217e06f04af0b5f96754c65f70f2c7008219e4428e7e17e76296f04f903f4"; + sha512 = "d173c26b5ba44a98070fff9996efc5a35a3ad90de128c5345a996c83d4a68ca7d09e588bd75530c31abedd9f20f38561e22484a45e20fdf66f1cce682dfbc31a"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/sl/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/sl/firefox-75.0.tar.bz2"; locale = "sl"; arch = "linux-x86_64"; - sha512 = "e3e284a74f742939ec99ecae43240be1e4ae6ab3e600d08cc07aa3df41aa15d9685256f4b976eb83409884209b1e3bea8522d6e3855f75eb67b88a842715e5eb"; + sha512 = "1b16278f2f6e4df7cd437a7bb6a17b950540dfed646e948585cf0bdeba45630b4d5bdfc249d4fb49bf37dcde8a415053ef4ac3384c2534592ba189264bcf4e0b"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/son/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/son/firefox-75.0.tar.bz2"; locale = "son"; arch = "linux-x86_64"; - sha512 = "baad547898d92d1c783463a8defccd2b87164773dccf45c8c3442da063a4e6379ccf75452e70993d7cff8654ee37bdacb281a608c5786f6baf31d2dfd5b0cce6"; + sha512 = "7e9c5c578d9669f47f3871a4d47e211d2ec9215633163605239603c0fc51cce1d1d4b5c3c5a06a9c29c16f82c3ff2583fef1b78652c8afbf093557375e912430"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/sq/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/sq/firefox-75.0.tar.bz2"; locale = "sq"; arch = "linux-x86_64"; - sha512 = "c38aa06a66a551d609a343528275f58c4a4f43b99066e5bb40f7653a0f2797d516819424164ff9d31d206598cea68e74db7c5023d05edb875dab8b7070d6b800"; + sha512 = "09dd8df3e07b2bcc59e77c55ff4f9b607c5c2cd343d784a3bfe172cc09fe0fa31ea519bdf671206a16ae73fa9550f08b77cfda0e030dac455de4be16750ce431"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/sr/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/sr/firefox-75.0.tar.bz2"; locale = "sr"; arch = "linux-x86_64"; - sha512 = "68d2d885f01e5bbd2e689752822e8562ea2825e806fac97e8c356ad98be05374f2feb2a329524128e67e26505b3ad8989260df3c9a9c12e55e936b19efa77d27"; + sha512 = "5a4dc12d716185ea86a8f31018198dc4eae0f791b04a247d2f2807d88747fd52fa39904bcd440c9da2e0225e64445c20da7cd7df75198c173a39aba59326e613"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/sv-SE/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/sv-SE/firefox-75.0.tar.bz2"; locale = "sv-SE"; arch = "linux-x86_64"; - sha512 = "a7f612ccb43b4df144f48a635d0135967a1ecc27c61e637605b08f2e2d3edb038770df691ee07d1f734aef7044cd52a46973dd907ae988bc20da4937f0d51ec8"; + sha512 = "7082fcd2db01626e90e6850230b0a2b51c0eb394d47604a76de5d03e30997366f7331a7247e7610dbddb16f50c2a3259a842be248614fd3725f0063138e18d49"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/ta/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ta/firefox-75.0.tar.bz2"; locale = "ta"; arch = "linux-x86_64"; - sha512 = "f172d687b513750551f2ae314a8d9676c3714fb9909a0a6ac1dda26dacdddc5cbb37c6123700bb43aaa25ed8d7dc725b92be36028d9abde9a1e27ddd1769affb"; + sha512 = "a85ff07912d369b915d543f9d06cf383a180bd14fd9355fce6d918506d8191da6f89c32fade5a9146700a95dbaa4a181fb513df1b8f28aeb7a09641baeece0ec"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/te/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/te/firefox-75.0.tar.bz2"; locale = "te"; arch = "linux-x86_64"; - sha512 = "e7989468298980f55157554d8ea79a4d2f6089179eb813e66244489dc9744ba0c509bd45dde97c489e823ab3c3d7dc3dea0603228e025b998573001d6e51e786"; + sha512 = "5313549c22fba2a3bad6550a000e59c15595dc0bd684a14ba025fe2c4de9097a1dd47566b8f256f569b74a21d20538ae89182d5278af01c674f50e00d49c873a"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/th/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/th/firefox-75.0.tar.bz2"; locale = "th"; arch = "linux-x86_64"; - sha512 = "914d4815daae91dc0c0a8322252e026172ee2f8de3e08f5dc9cb455565540985928ff5650c5a597acca7538b75668d249aa123bc5539595a346046e9ea68bb8c"; + sha512 = "3f2b038b17553c962d2d964d342bb0884dc4acb4204fddfa90f8ed3dceba1aac40d537745aa32629402a7077a97cb01efd1225009ccef5412e14fd08d2aefeee"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/tl/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/tl/firefox-75.0.tar.bz2"; locale = "tl"; arch = "linux-x86_64"; - sha512 = "698c3404d574501c9acd61a38d778730ca7ce1b0003375ab2ce470530cec3a792ff5a6d9aed7788af293edc246c704f7ee96352bef792d2a43c14f56fc0ede41"; + sha512 = "1bd4ac5a59a06a71fc5bdf976e76da9535d0adb74da0aad922ce5ff6101bc48a7e6727c3f2d37161e1ae48be2ec47c2b7f6cb614a883739a8fa843fc5a5602b4"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/tr/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/tr/firefox-75.0.tar.bz2"; locale = "tr"; arch = "linux-x86_64"; - sha512 = "bdd0aca34a6fdcec44af39a9db78e7d786586a782203bc98b6484f971dd09f45ab5976e5729a028a29adc4c05baafbfb5058773426dae329c7b09aa6fb2130d5"; + sha512 = "817d6e54c256d72469f5e1c6f6ffd8d95669193c3506a36d9cf06756847e074be018ad6dac9ff8e91c7720cc70811df2768124e4df85f34f2963a6a64e9f7d26"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/trs/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/trs/firefox-75.0.tar.bz2"; locale = "trs"; arch = "linux-x86_64"; - sha512 = "36e2c6bc099ec381565afcdf36fc69e8a01234a5dca7500fd2e0e642fbb294c819eb869ecdd57bdb1407c2de224db5b6a4e6b82a90daceb77346f561f99cf839"; + sha512 = "f3d691e6f04658aa09b4f864f0adabc9c8dd6a2fc135065126ef124f025a5ce6768ac9792470d60fb436f8d21229a92e1acb6abc848b3b84a2026179c15ae1cd"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/uk/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/uk/firefox-75.0.tar.bz2"; locale = "uk"; arch = "linux-x86_64"; - sha512 = "cf7a6ae1535b09ccdd0d3354e682e5441324a914d7852fde12ddca3ab67e211860e6f2e87144185b6348d70a6243899c48d29be906f915ddc12a025a72b153bf"; + sha512 = "679b75df8c1d2d84a7cf9950a65869484cdd20b0a1c016007280d08782c2ae2ef393bc553fa5c3c85177bbf922e62158fd57bab43b222327048753934aff5bfa"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/ur/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/ur/firefox-75.0.tar.bz2"; locale = "ur"; arch = "linux-x86_64"; - sha512 = "976eb06f7b0de8abb1a512b3f142920ebc4d3b35ab719913d5d01201921ae3380b8c5da8dd3e18de3b96eb139deb69502684d6fd1d33e378325103204cfa4004"; + sha512 = "e4408eb34923ec1f668b7313ade263d1cdfacf1a748b32a6aa54c3c38886c8e1ea750179b0fb6dd41dc92fb419c9307aa2f32a7acce7248e460fe136af7f175b"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/uz/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/uz/firefox-75.0.tar.bz2"; locale = "uz"; arch = "linux-x86_64"; - sha512 = "e0e750a921ac766d46726ea1c0073604dd4a17ba29713dae7ee42679a0b305c5723f6d3776603c79719e4100717a9cdc0b0016521a20ffee762b4f8cd614630e"; + sha512 = "30a9c63cab66e47ba4b7f8bad3b798e720d3668f44f230581c564e8887b6674d2df90b8534a1d9b28684b07f1b928585a4c4b46edf1e740e3541b60b5607758c"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/vi/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/vi/firefox-75.0.tar.bz2"; locale = "vi"; arch = "linux-x86_64"; - sha512 = "12561e674ef47a5d1817dd535f050b027ce316c75cef5802a8e365a4568609e44ff85840d27b91e81b5c46e4595b7e52736e2a43ed495db63b74fb2e2df1b376"; + sha512 = "dea4cc3161f0d1a79f91b8eaa426a6fd8ee045d843261e7a2191bbe7addc9fa131b2d9455925381957f90e91145711be13fdc3957ec4bd8fddb8252b6f8bba3e"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/xh/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/xh/firefox-75.0.tar.bz2"; locale = "xh"; arch = "linux-x86_64"; - sha512 = "365fdd88ddf29ac41d5cf388ade3dfe08bcba361153d244e45cb1f451969044956ca2387bae7e5f783c8cf0862e89141a39f52af873533139f49d2539f9401ed"; + sha512 = "d1fa435a17e23f3228a767733e54d24ba000599822fdb507d3a6dc35d92485bb87a3a398c12750080f79ea7e81dcf74dc73cc1747f923c0015f4875bdf3e75c3"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/zh-CN/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/zh-CN/firefox-75.0.tar.bz2"; locale = "zh-CN"; arch = "linux-x86_64"; - sha512 = "29451eab0d61193258338fe19382c0fe2851bc02af668c4ab7e2702b782718ff80f5773622c7580a731214ae11a199e6158985f678f98e51cf18e0afdcd035cb"; + sha512 = "5e236fd89a0c099da13c65c00526e93d152258049f9b7c8ff0387ce0ed6b843504163ef82cc205b01e0a0f265602b2d6ca64aa04c811cc0a6e94d1a8dc952e9b"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-x86_64/zh-TW/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-x86_64/zh-TW/firefox-75.0.tar.bz2"; locale = "zh-TW"; arch = "linux-x86_64"; - sha512 = "7724fd993d38cc7169901b6f589868ef3e884ee25b9957cd05b30b06a3cd25f3fd7d7ecb500c6b286272aec6031e18b5df6e03c739d81d92b73de932d4029293"; + sha512 = "5b6b876f3dc8c2bd22ebb183cd4ee16a9157e14d93951e840d14a11a4067f85975c72873b82e49d797f7e67c00df6898e423a70360558838e8a18d95377af4ce"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/ach/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ach/firefox-75.0.tar.bz2"; locale = "ach"; arch = "linux-i686"; - sha512 = "8c1773be02e8f9c40a77ff4078ee4e5d035b891e7de70f412d22cad305b0554f87c77ddad8663ff0d0dd36f621b58c7a143364ac3cd5c8ce5e2c87ea81fba400"; + sha512 = "33ab7bae767308f01bb5d0a5bf7ad73fee8eec71d8393246b704702b81b46240cdbf02c041753e1910bd8171e36f380c77a21afa2f71926f25dcadcb2d6c2b2b"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/af/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/af/firefox-75.0.tar.bz2"; locale = "af"; arch = "linux-i686"; - sha512 = "678c058ecbd6bcf6bb749ec2677c0486b94af43b28a950dfada30516a70e8ec45fb2c76e4acc8c30125d07e5b4fe7c4387d73ab130e57bcb8592318225685356"; + sha512 = "83842f5ca120205597b6eaa5f03e2f1d720a91cf3323fd44723c79c9aa3bb73e2c31054665fb32300f6ce707363a32d5d34859d7407015d3b4456c831b290ecc"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/an/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/an/firefox-75.0.tar.bz2"; locale = "an"; arch = "linux-i686"; - sha512 = "7512f534594f36aebd9f9aa2524f568c35d55167fe89090313578aded6e87404fd8df3f34bb1da658349374537146cb02cc3119a87346f2eaf1c5cc38dec0cf5"; + sha512 = "2d53551b4918ce86842645492072db26fdc50fd4eaa4edffaecf04fbd83bc597c469a5d795c62aaffba4abfd3d130752d96739fdeeb82970c35826d005af16cd"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/ar/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ar/firefox-75.0.tar.bz2"; locale = "ar"; arch = "linux-i686"; - sha512 = "51a65a604f8adbb07d1ec59a8013e3d0c2e0658b2691714c64971203e463f8934aaf9d2e71bc1685c255172eb474bea0823d1205d84cc3a530befe80ed257d01"; + sha512 = "1e42d930aa9903adf8385b695bd1a3aa051d51ad494d1dffc5d2bc04ba95574472daba608c182332195d7d60069b045f2a5c5762b7505e14ed7a639086fef264"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/ast/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ast/firefox-75.0.tar.bz2"; locale = "ast"; arch = "linux-i686"; - sha512 = "ed032607ca192adcbc20a03b5b5742641500ad36de0685524ce36b33e49f74f83e491b9b5c5278d8f62ac19f701a9e393470d608c4de0c855e3ff91127c472ff"; + sha512 = "d52c316d21089535252ca626b6774b65e5994a62732203200a39605d7a5bace9c681d1f120e1425936be212a9ac871c24f739dd7d91c0f371029083e3d3afde8"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/az/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/az/firefox-75.0.tar.bz2"; locale = "az"; arch = "linux-i686"; - sha512 = "a8583b604f720549ac3ec92fc89174cf8ac56b68c230e69d718662e1a788aa2038101a2d76199b6030dfcedf27d66659b78eb4e361c2e74f5e66a49ca8ca256e"; + sha512 = "121c1e51d5b58f9ac912d0737c23ec34471a4c8fe99287606a350e70890edf23b28c9c145d8aa0d29d567753d047d484a0156c1f004228682a347145c1bd85af"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/be/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/be/firefox-75.0.tar.bz2"; locale = "be"; arch = "linux-i686"; - sha512 = "3f917c28730d23e7d0c03053d0d86c8ef75c173e31529dc312d6d86a87852229c4a6d2727af2c2071959772a3deef5662b5075e52f37fa63b37c6cbed9cfa2e9"; + sha512 = "f7c3039db50db23a43575e5ecda63643214731703179a42007b2ae44ea20649dc9629bce1f9738f35a882841666b1c3a0ff4bcfc38ed0e5005bb2b6b058b44a5"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/bg/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/bg/firefox-75.0.tar.bz2"; locale = "bg"; arch = "linux-i686"; - sha512 = "4f960a211d2838308000aed8f20465dee70768734d111b5208a04fdf71af00bf8d4bcfd352d5d5490345a9e21a05c13b8ca1a1102181f785f4710cc56e60d04d"; + sha512 = "d9853f385468a9644684f3accd7572f081395071ab62b4bb8adaebc9213cb8bad8772ba613a404f9a2f0e75469a6d224264ce5d00ea97fe2f16f8d0a044b3104"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/bn/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/bn/firefox-75.0.tar.bz2"; locale = "bn"; arch = "linux-i686"; - sha512 = "7d8378c33447dc528937409dc1c0eec947ef7c147cf026bc7f0a78fe4e76ec692f0a7dfa964bd93fe5093b1c2caec39b42fbcebe92ac9771d9e3598bf00c2fc6"; + sha512 = "1bff545fa7dfc083f07c8546b5d2c18d1bab3ce4844fb1bb667d151c081c639b3fdbc2122e45230ab45bd5251364b45d937d24a7b285b69139f4dc544e525c7f"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/br/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/br/firefox-75.0.tar.bz2"; locale = "br"; arch = "linux-i686"; - sha512 = "59a4dba230c0a8e5c7754ead9088ef3407669a4d9340b2f3736fcf4a3d2049568b131ca929fd12b8167e08280b6cfc04f843f1dccbf06a1d7826bb264dac772f"; + sha512 = "cd724a5c402333792e5d739ba274c87cef983d3c29f6371cc1788a6b285031c5150b21cab235b603b240da3551c044abbc283f8313c8dd8b0082677b65406fd8"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/bs/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/bs/firefox-75.0.tar.bz2"; locale = "bs"; arch = "linux-i686"; - sha512 = "65a44a974e5aa9b9e28a01de9e954dbb36f5acdbe2537ade59d9d956074dac9382dfe7ebdc7df2269d82fcd8b9fe5c73e49eff9dd2692c7a3690b1bc8e54ecc7"; + sha512 = "47770c4421d2ec0035b0b3c6158462042f792f4ac87887c6704be2f3d34c8409c3e0570c6827f87e72c4697f89e5f0e0c574b9e90704798e9fbeb80c20968aa8"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/ca-valencia/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ca-valencia/firefox-75.0.tar.bz2"; locale = "ca-valencia"; arch = "linux-i686"; - sha512 = "6cd4cf9b69dc35f4f5bab782305b6b4fc5044b807a5409ed4a8b13836c551f1df233c77614b989767755ce5357d597b9cd24f0011e62ad298ee5521766931f1e"; + sha512 = "9d23f45405e98eb5d6534d19e09237f7488cd9a6310acf85935c0f40132a91ba2f355a15a46742796d1f397d65e4f17d599aa81ccba57f2acb76da80c2d95af1"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/ca/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ca/firefox-75.0.tar.bz2"; locale = "ca"; arch = "linux-i686"; - sha512 = "2bf061c948f012281468a0b7cf15bb8b806cef95b2e7b667b94825030ea134d110a261bee14717732fc176cad78988aa2c6d8acdcfba851dc8ea4122a1ad36b3"; + sha512 = "4f27d129114a4db3f597fc253447c6f27bcfb566fb197dc4dc26a984f1abbd868242b1c0d077e6d514efe1e2e083378304ff490eaba26f669ccfb5a744d3899d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/cak/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/cak/firefox-75.0.tar.bz2"; locale = "cak"; arch = "linux-i686"; - sha512 = "c5e1c05b9649521470fcfd0eb89a4a7467c7cbe9e8f15916e6d5ac4ad88dde2e4eb62527e1436a2e48dd4d6d3aba7ea28ffdf6615ed31fc7d4b8dbbc729af515"; + sha512 = "522852f4ced9302068b6251a33735846cbec73bbbe9ab0371e8456d3665bcddfc81bc4c258ecf4f0e5bc8f6f15ed27d3e4f88ffe471e9e8af4beeae85aabc949"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/cs/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/cs/firefox-75.0.tar.bz2"; locale = "cs"; arch = "linux-i686"; - sha512 = "1f0d647db99680521bdff74038fa31e9881a71789a2cb18f552bd770bfef25760231fd27436608fc393829c14b2018de211a10bff6890c931b8a78fb3af888e1"; + sha512 = "1192630fffc7bbc3232c8328e066f8392f967da5a2254ba726243ed7a681c321747a39397dec8b11c5ddc4d725445712ffbb238677856b2ad2ddea41c8db090f"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/cy/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/cy/firefox-75.0.tar.bz2"; locale = "cy"; arch = "linux-i686"; - sha512 = "b19948cfcb0f10978e7aeb859f3741b797a473163823232b20dd6327475df1a1a3c752769903cee00d048952ecca9f73c0de59300f596f10154dd150b58cde28"; + sha512 = "3a327e31faf8eae17c60f7787bd53249957e5177d38ac2138cade1454ec4bd870c429215f1e0a5b9cd124aa660cf4d77a091ee579d865470c5cdae0703086b02"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/da/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/da/firefox-75.0.tar.bz2"; locale = "da"; arch = "linux-i686"; - sha512 = "7978f11614514d9aa7c18007729645af4a3a50a3d13ac500d0c23ddbd80bb50724d7b627f62c7a6c05a74c9e6182cc49243b6a0a1966b433335d22fa535eed73"; + sha512 = "297291ed06c290fbd9ad6172afb790e8f8a619ff0330337f5e777d1e4ef17ef52ff1cb94b2966161639a28221dbc9ce2eb28bd9ad14029ebcb878f79053386f0"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/de/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/de/firefox-75.0.tar.bz2"; locale = "de"; arch = "linux-i686"; - sha512 = "819a4947a53ff27d421af3e09326c2f0451eefd9b0d95dc7427bf600780a9350c0ae84ff062816d5599eef1b44e2d4c742ef2c07ab83ed9cdc0b7382972706ee"; + sha512 = "7dec33f42715250c9a765c7f3f4f177101c69f7150661fc844c4742434a8d063fe1bc9149adf81c2729e848584fd6f68d1cd3d697159a1d5b4ed46d8dd9ae9ed"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/dsb/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/dsb/firefox-75.0.tar.bz2"; locale = "dsb"; arch = "linux-i686"; - sha512 = "2e688088ee0c3712a5de56d855b013ecae815c482584711a4a27273f6a17a692552b70b2dc9d9beb108693b2c095c2e7365e661e8fbb84404fe27736964d8b88"; + sha512 = "b5d8c78df21e8f8f1d96ddb042dcbae44b4d622d6d39a0a3d7967e89004e5e229aee84842b6fbacc90ae3c65bbc252a9a879b552a2546ae168d7f07cc312d207"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/el/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/el/firefox-75.0.tar.bz2"; locale = "el"; arch = "linux-i686"; - sha512 = "5b703bd93ad3e43027d2f85ad9f2916b9103d69a1380ffa529800800188d3227837ca84f835a6007197231ddc9f93bd60f00bbf8954cca6f14702eb4ce101292"; + sha512 = "8888a897dec9005edb469d27f40ce9ba3446c4ba713401f40955483f329114271c34a832afb93b48e0e41adfc1910e4813f79fd619a085ea15443743a72eeba6"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/en-CA/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/en-CA/firefox-75.0.tar.bz2"; locale = "en-CA"; arch = "linux-i686"; - sha512 = "c94222ea766fb7d8131686d9ec3c2d3ac59e8a91c6d1e65366776eb717804120c4221f8568a3537fce247f12e2f8085a22df6d31a405a1b654a074727b4cc1ba"; + sha512 = "713522e5c5305d111bd1eb55bba42cf201da74641593506b191ed1ab3eace55c1ac9c9a86182d667d7eae2bb4cf6fc9ddfa1ce4c8d31dcfdb0f2fab587fa6a8f"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/en-GB/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/en-GB/firefox-75.0.tar.bz2"; locale = "en-GB"; arch = "linux-i686"; - sha512 = "24e91c045d36be25346e598af8d8ac187cf37b2c790957887a7d3fa42b102dacd05c236476ed1dff20e21d51c88aac2d5123352d868580704a0dff88747bd62b"; + sha512 = "021b66ac6720deb68e45b1bdca86d8aa7db2e74cfa7391daee108cd002dbabc3f6302f380e6c029c7b56781dfd9bd34f8cdc1135851297e4dac9dc56f762eb69"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/en-US/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/en-US/firefox-75.0.tar.bz2"; locale = "en-US"; arch = "linux-i686"; - sha512 = "19e3bde2ad51783ca5aa492ffe9a097e91db66a5d18c28c6ea36f6cfca7e14e41172cfca9f9c223bf42632c2235fb5a942ffac470e2c210d1b7992c75c48beed"; + sha512 = "feef8046d08aba827f6dd2510cadea53a89983a4889c9c2baad3d88123639b90c8052b552e2bcfb03b6e9fb43ebda29815825ef7fd4d9ca867f238cfaa0ad1da"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/eo/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/eo/firefox-75.0.tar.bz2"; locale = "eo"; arch = "linux-i686"; - sha512 = "160912a75ca11a38c360924f206ed7baf53e0e0be4d42440c10e3e7e3a9ced4f4884db329917954af23ec5bb01b70ea7f567310c85242073d3d13c4ba19629c9"; + sha512 = "49b0adb7c5dc8e1b7ecc121f65e8a6853f497a9cc151b4eb9ff6631af33b12f7b00186ac2d13390cfcadd9fbd1b361a597ec1d9da62b1a0466d85d8e313be4fa"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/es-AR/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/es-AR/firefox-75.0.tar.bz2"; locale = "es-AR"; arch = "linux-i686"; - sha512 = "cfa240589014caf944d54971f7ed8f5b2f8656b03bffe7bc28628e07198f308406277b4ae8584a9b79d2e218f952f22c345982a264a47a7e2f129c297da134da"; + sha512 = "a74988338fec99d50f5a16ab6c59630ec1e535338da3f23f05c7967bdeff41cb058c238ab2e873f96cab93db821ab066e6222397761578a12fa73b42c0ffe3e9"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/es-CL/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/es-CL/firefox-75.0.tar.bz2"; locale = "es-CL"; arch = "linux-i686"; - sha512 = "228cda9199e333c030b43ed1fcc46d0f1d782f904e796f546092927597e661505477634219ea518972764049fce3a9db2e1e31ea766caea612a765d9532b5f50"; + sha512 = "b4abd3f7abf1869bf360f5987e13c37b142b4c8afde51c790feb2563351a4754f385e0880ed51a1cd7aa3a5ed907e3cc22ff3c707d2923c47459c977cfedeb08"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/es-ES/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/es-ES/firefox-75.0.tar.bz2"; locale = "es-ES"; arch = "linux-i686"; - sha512 = "569c63b7b4599afb94fc725242661ae33d01de58012dd6bf46c020b55fcf5fc1dea1a95371f36e68aad6ae89f7e674e99e96139553fff3839a60a6ec36c418cf"; + sha512 = "8a9c61dd9329c983c394c33c97c962c703fcf51a283dce09bb781d96879450adae5d8d78ca9d0d1892380fcac7ab95651e37133a0f836865a13946e2cb8a7e39"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/es-MX/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/es-MX/firefox-75.0.tar.bz2"; locale = "es-MX"; arch = "linux-i686"; - sha512 = "debb715bf2034640e573208b048c4f519a51a3b34c4500d27452f25f0f2d939f6812bf1f68856699a776ec8092696954e409381178b3328d417e97747f8ab720"; + sha512 = "a1b7dc0eab0d4a8c713e27620235617a244ecadd62a125de8b1b60de7811a4d7e65051569ad4391b2a312107cb750c74d4c541c580f3af86b88b2fb84d93ce67"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/et/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/et/firefox-75.0.tar.bz2"; locale = "et"; arch = "linux-i686"; - sha512 = "2ce02c48e6fc9407a09f89926e8452c385e8df739eb014f45d0d286d11d5c3f9c84220c99379ee7ce20f658617c3b28b8e59724c0a62a5fc961dcc47a1172cd8"; + sha512 = "181aaa954ff9024a4efc211bba348461c28b892b1cc04eb50989cc8da78d88a350341de520b4a60da096ae399c28ad05802aeb73cf133171e8a4ea2693cce5f9"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/eu/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/eu/firefox-75.0.tar.bz2"; locale = "eu"; arch = "linux-i686"; - sha512 = "25356e53f1334cbcba60d44739fcd69a03945d923a36dda4accbb2a471927df1977ed956f993d510d60df8fcace4dfb2fe773b49f3ebde6d227e1f474ec8483b"; + sha512 = "893fa9700ca874b2a460d830f2e10f7999a6b521a351a88bf480232ca0270581f4ab334ac2d4721e3f5fbaec0105497afd5ef09b13f3b96a1e84556db79d0ef9"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/fa/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/fa/firefox-75.0.tar.bz2"; locale = "fa"; arch = "linux-i686"; - sha512 = "d680434838694f6666c8decfee363e2aa5de22ecfdf690895bc7c027bdc2466c67518e69444d48413f1538e7c3751cda716df8fb2cb83ad68beff6b0975d3dc1"; + sha512 = "fbe8cefe9e626d07f360b1ab30fd04c8628669f5164d5dbfd12cca72e17e6454de367e170565e0d7f1c30e300d315f54d7c6cc06c8367e6d0c428a994e9ba067"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/ff/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ff/firefox-75.0.tar.bz2"; locale = "ff"; arch = "linux-i686"; - sha512 = "3b6f7bb0dd61c2872b8ae2e9dff50d9c6e21f2755d8dac5eeb44708af3441ecfe43ba5eeba31a2de09fdd246afdaaae8ab8ce10f2f83495588cef561446956cd"; + sha512 = "7ea337b8f3cf536749cca253e063ab326e66a0a33ee0bb7863ba7c46d7d9ceef443bfec0551770346701f23f5adc2750225e8961d6fbbb48492afe7ec39a1272"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/fi/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/fi/firefox-75.0.tar.bz2"; locale = "fi"; arch = "linux-i686"; - sha512 = "0462288f84a7d4cc97758919cd8d6a2d275757ac91980752f538d0cc785813acf79f4e6908fda1eddbc34db2b574d5c381c03b8cef90c796f837706071a98044"; + sha512 = "c97d9ceb5a98acf54bf37c1397973c2872a039812bc591979b44497e7f2db1cf7bb5fab75b4a0cb70df2d48eee4cf5fc55def69c22da9a0b5964e2af81bd0457"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/fr/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/fr/firefox-75.0.tar.bz2"; locale = "fr"; arch = "linux-i686"; - sha512 = "9a40af49d33a5c391a084d181d74bf418e5fb24ccc4aac96959f719624913b7b7d11b6977e4673046c89dcb5935a1b496b82b8a0b9729595689b158a7a96adc8"; + sha512 = "15081d21ed77c376257e23cec42ba26023792cceb634b0d0b928471e1abeba17d9245ba5454452b17e786e576e19e8e47f20478002a3df2e15c56e8cb19faaf0"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/fy-NL/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/fy-NL/firefox-75.0.tar.bz2"; locale = "fy-NL"; arch = "linux-i686"; - sha512 = "97bc9a69879981a6f6ff32f534b31b986523a7d956644ad15de94913aa648af6b163a4a6125e6cb6869eb48d1d903773c3cd4f07a625da191b9fe34aa4b6dfa7"; + sha512 = "c352989e6ed3eeda8ce724ff110bb09c2ad3ce4a5b1f45bd9335c1186dcc1c310efdd24c9a2adf7a0f31278b3989d79a683f7f770670c8b1419967ccc2e0704a"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/ga-IE/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ga-IE/firefox-75.0.tar.bz2"; locale = "ga-IE"; arch = "linux-i686"; - sha512 = "72d3dbc9799be8c37880cae2603423e128040b99409148a8c316ef9400b259963078bcf9a86dbe3d69bd017276312ed9631512972dd718c6ffb0fa2f3d351a90"; + sha512 = "ba27396ca8f76533033bc78066074c3aebcd687f1621b14db92a4952b226bebec0bd399f697dac92b71e14e91fefedfa6d4188dc067bbd575e07317182408510"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/gd/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/gd/firefox-75.0.tar.bz2"; locale = "gd"; arch = "linux-i686"; - sha512 = "637f08600c79790df3f683c7aadd1a7597e09f387d6f1e929ab7eb6301cf462df85e2a68a1ef5480cde0afc716c63dccee08f173c96358d461f3b5798ca2d75b"; + sha512 = "f18b4acc47fcb9135ac28206011b6fb3fef5dd6640fab3e88d8e8f9dc23b19d427fcd461f70a00750c1739b3e3f6874c171dacd9c54b213eb9076dbb9a511b5b"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/gl/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/gl/firefox-75.0.tar.bz2"; locale = "gl"; arch = "linux-i686"; - sha512 = "964541eb0d5ae8a7cef59b17d2e4002bf34b2137beb72593c2fee6e578e4e02f06bc443effa7d958631d46d097f482119aedcab4862f3881a8c68527bb88a998"; + sha512 = "e4bec63583908fd225b903e45007e29f357e00fe7901524d5fa15bfea04211f55d2557c1ccc1fba28eff1f2dfc5b364cb7c52d438428c26f09aed3592f817c50"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/gn/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/gn/firefox-75.0.tar.bz2"; locale = "gn"; arch = "linux-i686"; - sha512 = "8c808172327308ea1eb4eca12642ee2628a01e1461ab33d56e326c4e5f675f3294a563f83bb42bb3b4eaa15311f89ae59c6de65c0fc565464611b89ca03d9a6b"; + sha512 = "dca1a1062e47b8644a7e1a772f6abec1ff615d8857d74d576baf9a515fbef814f6d2e89878a3ea2aa4a7efb6931caecb3845f6eefec91c70299c463c2141689c"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/gu-IN/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/gu-IN/firefox-75.0.tar.bz2"; locale = "gu-IN"; arch = "linux-i686"; - sha512 = "9338b5d59f01b32d608a7e3202992e6e44e9f62f947bb8ab6aa64e539f8105dfd0e6436705276efde769a196e7de7a63190a98fd2d6664e2aa74365e0997fb7c"; + sha512 = "efa6f443a092585defac47cb75d8ce85faec76c2624ecbf4cec3b4e8ffe4e582de0fb55f4901bcebedb0d991d709338bba212117fe59b3c6496fc5f35c1a7694"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/he/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/he/firefox-75.0.tar.bz2"; locale = "he"; arch = "linux-i686"; - sha512 = "fbac46c204f656f07f1ed43fdab6cfe2b3db33a0c46030e23eb716eda26064329fbbf97ce0a07c031ee06d90c1b76c432dc4ab1b55b9b53b26fbcd8e640819e1"; + sha512 = "ea76707fa795234f36088749cdc5a139482577d4488d476856cba926e40ce24d020f76a526efeebfd8a5840b9ebb2a93d71ce9be9fa8cd9255e6940074f22a8b"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/hi-IN/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/hi-IN/firefox-75.0.tar.bz2"; locale = "hi-IN"; arch = "linux-i686"; - sha512 = "3b5bb0426fde394e9102d13af677974bf522a6635921071bf5dc453d76431a10279a8622c8aa6642385c0803e30275058575e1dd0e986726e4f9e4f2ef742ce0"; + sha512 = "73bde105b324df05adbc581e59c1b723b1dc0ecd2b35b9029ececdb83acbd5cb9946382f78c9bd02a480635c58c9578ec982d61793ae7e64e5cf940c09c5a508"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/hr/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/hr/firefox-75.0.tar.bz2"; locale = "hr"; arch = "linux-i686"; - sha512 = "cdc430d37f861e65248d95f29aa384ba4910e9e2fbaff9f3bf236cc9b93ee16c71c1128fea51c84772859002e00d3015ac2028a3103d13cde9ef2335f650095e"; + sha512 = "e237486d9cc6418d213a006e07c23ecaa3732496d169f7a24a568866e1ec1276aa9096c16aa696baffe689096b8321c83e9d47a119257effd77c3b1b938323bd"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/hsb/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/hsb/firefox-75.0.tar.bz2"; locale = "hsb"; arch = "linux-i686"; - sha512 = "07d4c85e8838022d4626ceac115b9d41a88db711107dced35a80967a359f72395b657219e92a7cf5e4f5a4e6c521a36101d4a219c58e56b63dfe0b25bc942155"; + sha512 = "be2a1bd69573ae49b011f266402a5f185a4eb8eb3e9b506a606b1444ef54091b36023e6d2dea2d118fa4ca5cc58dcd1afdf2e5dcbc3d38a7ceb776e6e06756b3"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/hu/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/hu/firefox-75.0.tar.bz2"; locale = "hu"; arch = "linux-i686"; - sha512 = "cd2b6d36f7b6f12d77e43333f1741828804e0434e1394142a554ac7fe3e42d46dd66617c58921114a7472092b7714618247ec30d46abba5fc40b7306ce5f88ed"; + sha512 = "405ce0eb8c7694ed2d9bb5548f8e56d63c14e59025cda561bd49f0deda1bf0b280c344138d154510ac8ed124e4ec95528f84212fe1634bf16477615971148f17"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/hy-AM/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/hy-AM/firefox-75.0.tar.bz2"; locale = "hy-AM"; arch = "linux-i686"; - sha512 = "ae4b468bfa3f03ebf5f7793acfb6f3785238bd4a6e78c0e7542c49627b5436d55d8e0108c7db0bb755009962020010e767e49105a8374087d1ca5d50eb7b7340"; + sha512 = "21d7c5343f62cb8a841872470013d9b836eecb0f780794108f56120c4bf26ddfe923400e630f6d981913d06875e7473dedaa3d4cbc2f9173db80ef34c3a6e0f4"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/ia/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ia/firefox-75.0.tar.bz2"; locale = "ia"; arch = "linux-i686"; - sha512 = "87fdedb6b07be5709ff0c5de383eaa12707bbd64487559a5a75d475abe72a9b7877645fb61911d0a95b27616318cac2208a6344b90d4c1bfdaef6d11208fc62c"; + sha512 = "a8c070f164ebda582055628b324e03971602f15741314ce26024eec0539a92341020b7fee16cfd849189c5c106a0b3dc1fcb04d3177d7a4b06bd0cd2db74b614"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/id/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/id/firefox-75.0.tar.bz2"; locale = "id"; arch = "linux-i686"; - sha512 = "b42fae3bdeaef76715c1698ed39f710e3932b39d7db67fa00c94e085c5ec23afea7bddfce99d444991126c67f3a9d81976362a3f32f99d7f24c81a0a70487bde"; + sha512 = "4bc7b360f3fb9a8115541da54f867c693e7c8c98bf24685ae9ac1c052c4cf54126ccfaa3aa2c714a0450ffee0b6198370b1092ac99ba13c289bc46a202ac1189"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/is/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/is/firefox-75.0.tar.bz2"; locale = "is"; arch = "linux-i686"; - sha512 = "0e9888e900536eee6199d7847f4b92cf6314c63b35877b08bc0f51f2f4877e1f965bf760a59a080a517a9ca1b8da814abe465a893b0816d3e5e00f1b02da67c0"; + sha512 = "c9a1c9b03d3e7089a12f2ccceaa525b5c9ce62dc1e602a3899914e8adae571bfe12dfe7b2b5e54a4b2de01c869c33fa1f7478d1bc6d54e4dcb284ce1da7b32bc"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/it/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/it/firefox-75.0.tar.bz2"; locale = "it"; arch = "linux-i686"; - sha512 = "396e0b54e912317e3861c5eb25d32f7cbf3ea558bb115c7c6f0a7732a18b246c9a97dc8ca3172a1b21ed3238f5358a9a70c0976d83ffc7640f4d522adbe4317c"; + sha512 = "0adc5cb03da1e36650c90de0cd82065a014bd944da4ba29f80f2fe74eee91fbff13378011c938bd79c110bacd0e04fcb5ad6ee7995fd76bd5ee98cacf32c2c98"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/ja/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ja/firefox-75.0.tar.bz2"; locale = "ja"; arch = "linux-i686"; - sha512 = "0c8620750bcdc116ca0c9d26d8cda350afd1de3f8cab93f98df685c12a3f1551d537cde094f74675c8156a48e6c88d77ec077ae20f3bb0bc7b72d3ed023cc622"; + sha512 = "fe743972968881f327812dd0a81ffb8564e0fa7a6f739a3a59dd039f560078827ddd36ba057b80792347b1cb19e262f34c276f6ce788453089ca0d8cf8d69a55"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/ka/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ka/firefox-75.0.tar.bz2"; locale = "ka"; arch = "linux-i686"; - sha512 = "2e91dc34ee5656cf39aeafab2c7648b9465fc56a3afed40ae5a9e391bf8c0a897551bf402409db0d265ea196bfb0abbf100290fbbb108c79979266f1e2b0dece"; + sha512 = "0715da694820f26550e0becaa151c19d366954fcfc2af7084b880cd12b2f031b6508e69b3ff687941f71c0b3467f5d118ec3f79be2cea6cdff22d2b5e4f050ff"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/kab/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/kab/firefox-75.0.tar.bz2"; locale = "kab"; arch = "linux-i686"; - sha512 = "fe91f60852d0c6922884b1954f753cc04db696d28ecfe91505fc3cb23d2fd0c23dc010c37e0326fc3b782672400cb65f887ff799b6f6b039783d5f80c7373367"; + sha512 = "2de6d3cea7077ddc896cdb95104a122b85f001013c0f59902b049423fdb370d5090a8630501009803592935fd5f90ade7625ef64b3b0bfecc712141b10f2366f"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/kk/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/kk/firefox-75.0.tar.bz2"; locale = "kk"; arch = "linux-i686"; - sha512 = "581a46df5cb334c8cfd0925c78752887e636388d4e76ff41687ab2193f1a26c87be848a02753e427f297fa5169e7e203767b66ad96fd0825276aaad527f1fb88"; + sha512 = "a0a1a9e7c2fda1bc92bce084472d432d4007fdc96707d7a926e884521c4ba8993374ef55179b7da7267d14699f079f5722974edf2713d449a59b76f01fb897cf"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/km/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/km/firefox-75.0.tar.bz2"; locale = "km"; arch = "linux-i686"; - sha512 = "8e53ba868d2d0a9dad832e68710c6958d55ccc70d75f16a138983bf5d1ec24ffda1e320d40fda0ea62bcad5e01419c81db52fd0b1eb3ef11cd90c4aa92b11be7"; + sha512 = "4008860591482c70b0194e565f3f1fbb30b1607b486c8a3afc3e3d9465e24c3cc0da2c889905a7cad349484a386d7a2082e86e29f41fba84073cabcd75c5e358"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/kn/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/kn/firefox-75.0.tar.bz2"; locale = "kn"; arch = "linux-i686"; - sha512 = "ea0e3dcad9bee6b37b2de3178eec5c980b1f85ca38f47c4049f8f1d614dce581b8ed7ea7f8751443e737db62e09bc9888358f9d68690cd8c8d9ab16a4e62e727"; + sha512 = "2628e52d65223c5a1941d94435398041cdbc7d5588a2227a9f17227800576a56975d5db2283d295e82e63e10c4ce6d3bc7999329fa26dd3c8d44dea025f96640"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/ko/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ko/firefox-75.0.tar.bz2"; locale = "ko"; arch = "linux-i686"; - sha512 = "a486e93785532f05f4004253f369d384d2949b86eff8fc88dc49cbb76def0214a35f4675d86728c2e3ab6d1786b90546d223d7fcb8f70092f35e7d117a20f76b"; + sha512 = "9b78d17bec3f243154cca1ae1d955282e8700dac9bd93890be6fe92852af67a1f81eaa5dc2465e2881398508af90f67fcb2c90d54edb1fe874f9717bd25dbe2b"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/lij/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/lij/firefox-75.0.tar.bz2"; locale = "lij"; arch = "linux-i686"; - sha512 = "ae06bc4a21640d47034596522415c275faa16fd12866582aeab9b0b8cf8dac4b854bb22067f36419fc1c45810c499ac60f9319127199cd30f8dca1c1daa8e035"; + sha512 = "01e4dbb561a962b4332cde78df74a229d6aae4cfe56bd471262fedd9fc16a948415e6f993724ed53eb878a999020b22f761f4ee3e6f006ae8447513201ed27d1"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/lt/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/lt/firefox-75.0.tar.bz2"; locale = "lt"; arch = "linux-i686"; - sha512 = "d79206839e72915a5ad36674d624974aa4c2e09fc9b24eb82b54648f5e86cc97ca9c65c1e5fc97aa80b0afeae4cbd06a36fbc5cc6f0b8e915a820fde6d330d1b"; + sha512 = "c17fff73a4f72378dc3173ea0ecde0492937a6fcee4108935126256f0ab085eb934be830907f1f4464205673023ed3cb21794cd540533f4e8defb42325b3bc93"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/lv/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/lv/firefox-75.0.tar.bz2"; locale = "lv"; arch = "linux-i686"; - sha512 = "c7c1a9d6cab35e29492440a94c31514fd21ce9f6d6828e1f83addbc60b67ad83553913b102312ce3b4d9014f222f16d25cf510cf6a816c9212324fc4fe7baacf"; + sha512 = "22c90601b8162512ac045ffcc3d186dcf4e0d9d2330885e07f7df72224a840073415de0100419b981c08b73ba4c92da01edb49d1dcc9efb1abc0ce47b94da012"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/mk/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/mk/firefox-75.0.tar.bz2"; locale = "mk"; arch = "linux-i686"; - sha512 = "59dbf4c86c78ec02db97900b0db1ecf6d2f94c34bb8c5c7bcd60f2a3e8748655873d5994a9e4bf7a8762cd9646a14e180d1e330cdb2464bc146a1d365a7f789d"; + sha512 = "a185e91441e302b9111d558c3ea0d7601347e843393e00adda74a903ad0f93a23ded2c8e61c5eb628996c0ef5b0fd63209fa9fd98f3a0040a9a8d419214e5df6"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/mr/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/mr/firefox-75.0.tar.bz2"; locale = "mr"; arch = "linux-i686"; - sha512 = "d11f86f1b515d047cbb68fedf17b535776ffd42c20f7cb60c7c3dd39afaab6f07744ca0a4da0b9a40379bd24a9ff1699f901b8221e587f440faa2243088506b5"; + sha512 = "e8d5066dcaa0c7168f804d1f1047435bb188c6daaf3f8aa472654b617c7d4471f7469ac2560782b6463c315ccd9ad60efacc8582110bec9279cdd16dc7da7d09"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/ms/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ms/firefox-75.0.tar.bz2"; locale = "ms"; arch = "linux-i686"; - sha512 = "a8d2447ca79e9d66344a4f1ffee66ad7de50ed5c0e01c9f32303011324229d0fe414f39e8844b5e4a06732509e17a17dca9cc729c87e51cf8b2ecb925c194815"; + sha512 = "dcdb08020fca5a43581b1900316cf7acba285a87b9cc0532ecaca8f85d1ac3b188eeb9d65ba68557d4350b7f2e0fee478dd5a9ababfd3c40ef1f7b4c57f08a39"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/my/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/my/firefox-75.0.tar.bz2"; locale = "my"; arch = "linux-i686"; - sha512 = "9062c54b41a7bf1b7465cc649f90790a912576457ac1203aa6bbd14d927bdddaa41f31a9e7ddd7934c24d2db8357f8366d1b45a50a8f35462eb2b05028d673e4"; + sha512 = "d7005ab40feaa6053af8624130ba4e5d60e54978452b6e63a658afc8321c9f4a7eed5406f07a16961f6051e794943c6ac6582e1723cb8a518332557a94dedcc4"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/nb-NO/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/nb-NO/firefox-75.0.tar.bz2"; locale = "nb-NO"; arch = "linux-i686"; - sha512 = "fba107427926346ecac412016c7a6e58fd1e6652d13b6df632ccbbe3568ec34e8927771036394cd52a232b5aae975394061f6ace87958b84e6d8ca685930bc58"; + sha512 = "b6e0894cae9d257ce4d0becdcb65f9fe3693a947cfadfc88eb51ee93a4ade9924895a7f252317d145304d5bdc866294c437a5f03c15982fef8a970145678aa0e"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/ne-NP/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ne-NP/firefox-75.0.tar.bz2"; locale = "ne-NP"; arch = "linux-i686"; - sha512 = "9b1b57700f22ee7827fdc7b391d05117b4286e0a27e90a45d25ec4afc7d9738a7d400f2720fcfdcaac311b6d6e4605c5a2e77ea2ae337cbd1acf5071b217c1f7"; + sha512 = "fc7a97902679402185813d666ea65cfa059e4121c126a4b82f2fc70ac04790b7e73441c4a3e7c49ea6292e049792368f7abb9924c74b52ca342d832231e80c51"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/nl/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/nl/firefox-75.0.tar.bz2"; locale = "nl"; arch = "linux-i686"; - sha512 = "f208d274f971c53db962b731226039e6cf0f33ef59ecb64614000be634daf40bbf89730c13affd5445986cef9c1f9a1d1c32f94c1cfd7133dd254f3e8a1cbac4"; + sha512 = "c96cfd08d2b3bcfc3380cfa4e7945c92ad6c1a1ca1f47db6977769792752a4f64ee99f90f6f904811ff3f1b7b2d07ba570ad1b80337d22e34c6bbb6ed0e511cd"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/nn-NO/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/nn-NO/firefox-75.0.tar.bz2"; locale = "nn-NO"; arch = "linux-i686"; - sha512 = "126eed4ad3a922c0b2e4f2f575be874a739d37d97fc19f83fcec01b8a029fc79c0132790e69c61622ef811f8f7bd16ebb1f742a8991f6e0aad0dd7a52af3ab34"; + sha512 = "7e10f521aa2ea9900d03a2874861f079171a62860f3508edd7dc51c39db88cef7a603ba0c6ca69469c2593182b027d354b6a8c13209beabd51a8690717d11eb4"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/oc/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/oc/firefox-75.0.tar.bz2"; locale = "oc"; arch = "linux-i686"; - sha512 = "f0bba67e75513aaea00371bd3b6eadfcc765b5bceb8712f82dc1a0432bf9360e979190ca569fb9c677faa23200a62766775536910d29689a51bb496c2d82cf38"; + sha512 = "43413c027b618cd5ddd36fa42fa26f99a294ce2f6f33937a299b55d698b64b6e85d04954101ef27e7a739c00407d7457322e3b32d38a90df87529372c19e1b67"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/pa-IN/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/pa-IN/firefox-75.0.tar.bz2"; locale = "pa-IN"; arch = "linux-i686"; - sha512 = "2e60b06a677e21149ed55e9b1f2cc3a4555fcaf78df90dd81f7a6fe56140ba1cdb6eaf29141c123b46e21c27bc116e1e8b97feedd86391fdc564ba20df078059"; + sha512 = "fb59faad43d729eeff12e1eeab15c0712f2429892574c526c1f59326518c9c652475177c9aba14aa591e4c449b133a6a8fcbef7bbc8d0c89b2b4d5dffd053abe"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/pl/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/pl/firefox-75.0.tar.bz2"; locale = "pl"; arch = "linux-i686"; - sha512 = "a834560790d35559db67db2e6f826fbd8788eeef8ae47cfb48e0f3a8b7416b389e6c37150a8dda1d80e133d8a9219ff30e3d9a4422ce8d2de83ef6ef7f638049"; + sha512 = "406097bb810d60a16a88b675f6a893af84e0de905c222534b0e09802ae5b57912d000188920b06c4ffba198af0d096e42f9984222a94f53d45db64f41a4f3f9b"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/pt-BR/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/pt-BR/firefox-75.0.tar.bz2"; locale = "pt-BR"; arch = "linux-i686"; - sha512 = "ea8a2de3fc7f89ca15e118c9d4a2b75604fcb295c3ec1cb2b9b1961fe6a0abfc1bc9813f5fc7cc71e1ca10516d390cc7d36de03b57ef72e7fe7a45095fac8678"; + sha512 = "519f9777303a5dc6eca8933406ff0ffbf7654c75305c16e13f1600550d924569ded9dc6ba606050c9bacc31ecbc0d6e43dd91dbe8cb3b587ab71d20467564cd5"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/pt-PT/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/pt-PT/firefox-75.0.tar.bz2"; locale = "pt-PT"; arch = "linux-i686"; - sha512 = "b6eb4096e7cdc2823667a99c654004c95b526a495d0dd1f24ea45643c8135cc01403417e7cd4d2aeb5fd935d153d44bbae53c6a581d9601c245a320f8114fd9e"; + sha512 = "92500d0b49090382e261baa0fdd4620e5d9e4a047c9c7098ad3f7ce34a5e97bde419a87019517125239144d21589b428c11138aec691328530fd41d5a78cc5db"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/rm/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/rm/firefox-75.0.tar.bz2"; locale = "rm"; arch = "linux-i686"; - sha512 = "8de865c608b288feab89de6677974cbbb2897678514945907f421159049b2b63a332c9302a01e5ec4b355486085838930ef4b44ced7fdf78e5cd0a1f65186cf1"; + sha512 = "6b8f3655d962612a047bb7d961ba74b362da0bcf740362e8f31a2263b0898da90e051951cf5894bd8a493f40d2d89fd50d6060eecc78908518f8611218a27eb3"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/ro/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ro/firefox-75.0.tar.bz2"; locale = "ro"; arch = "linux-i686"; - sha512 = "848f4b90fdce6455a563bb38b097d9b4853aaee8e43ec0d9101f41a4046719527a714c0b5d2ad07461ac5dfb34e0cd10060b5169276004c6f7cee839e2b3d669"; + sha512 = "4f2e2012136c9821792241f2189550843320b52c44905d9902c7ef3f2be21f26dd79f930b719f752d3d4b5e7ab6ca8429d12ba6120f6bc365bf9e2f496ea85e2"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/ru/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ru/firefox-75.0.tar.bz2"; locale = "ru"; arch = "linux-i686"; - sha512 = "9b624a07fccf6f2aa1707e8d4e04894e6a2d3f467dbde806bcd11eaa7ff3cf8cced1ee1ac237037c309472588db247d175151393001ab03ee9e281fcef91890f"; + sha512 = "7ce2ab97b3483b9632d24a979bbe051d8db539329359f91dc9df4446db0b4c1201dcbc6422e1406400dd3df007e5c3af6bcc8279966cf7448671608cc05a4231"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/si/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/si/firefox-75.0.tar.bz2"; locale = "si"; arch = "linux-i686"; - sha512 = "c6f2d9666b32e635d35ba7c94dbc2c68c497a44b1cf464038ceacc0278a7348f11150c8e879ea5814f43ab9e9fc5ab14b0bfb553e52cf6e26c826cd3da154572"; + sha512 = "65edb310b0c94dbaa2f5ece2eb6593a4fa7d89b2fc9e4d3bd8c77bd43dd4517d09895a7a325b9d6a1b5fda965e9d6e3c10f7e4b889b582ad4aacc2061db6a443"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/sk/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/sk/firefox-75.0.tar.bz2"; locale = "sk"; arch = "linux-i686"; - sha512 = "c89e44eebcbd0945b1c462f748a71286167739d75d9b0e65529be07793bfb20dfe01eaed8280b94047d2523e0a0592145eb7af524f4de630388ea3c2c1638aa5"; + sha512 = "4e29357906cafb6df7dfddb4c668479d8e52722a4771e043a1d9e0c254e434251768a716f7791c6969e34c5004f276d1b3ae8b8c77176bb1ba76409295126671"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/sl/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/sl/firefox-75.0.tar.bz2"; locale = "sl"; arch = "linux-i686"; - sha512 = "e93922b8a6e946e39febb8d690d251d01d69cd82f4f07546209f21cb89532c342e6f4e37319821fd6786bc5bf5f7927a28463e5f2d1bc8fe87bba1817af5af00"; + sha512 = "c84cdabcb498c6a387a08b7ead1cdadfb68c173a955e34f4118a4d56417918649b7ffab2eeb88ddfa276656367f8429e17ddad4b909b1f39e120e41d1caca56c"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/son/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/son/firefox-75.0.tar.bz2"; locale = "son"; arch = "linux-i686"; - sha512 = "f7d2757cad117522d9964885d002d717772012b9952d1e03a53bce775967e927c7cba1358fcf6165f8732f761aeb148b393d32f7cd0e540d449605cadbc8a0f9"; + sha512 = "3fdf243217a00baef75aa36b9bcc257e1741fadc8070f5e50a4573c3c4b6b86eeb4405fab327b057e5d92543a0643429fc1159d3b77fe30ad918d8757d8970b1"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/sq/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/sq/firefox-75.0.tar.bz2"; locale = "sq"; arch = "linux-i686"; - sha512 = "b19f1832a460298e36509bd3e8a8dbcaf300373954ccbec9c4f402fe4e60bb9b24a79e52e62c63c0ac9cf5abbb32187215cf7690781dd88b3649eab1f4b60cf9"; + sha512 = "f8c32ef45297c86935bc8b99a9d6b8e4804320f76e085e70f988def0ec003f221666e8f7e34e1866c52c38dc45a3b6a39397ac1e81a7033a74652a1d42d32355"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/sr/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/sr/firefox-75.0.tar.bz2"; locale = "sr"; arch = "linux-i686"; - sha512 = "15a93a42b3d19d3d2da4e06ea0b071c05cbf82dd820d43f52e263900f233894112cd40132de93a85e544d7961ee7be11766be0e4c827b805025b0353bc4cdb7e"; + sha512 = "10dfc0655723a00be5b5e32a280ffc660cf464df0be0686601b2bb502730ea5ee6f7c23c3f40616e9df3c5eb17638b841cc70e8b2271b442cc8b95927191dd62"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/sv-SE/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/sv-SE/firefox-75.0.tar.bz2"; locale = "sv-SE"; arch = "linux-i686"; - sha512 = "c1c7cb83323e39d13bd04a65ab3bbacd9cca1ef90bf1870afd49ab72f0819bbcda8ef5c50db08537babd35e3ef117441915d87ee4b4dfd4548b023faf834adaa"; + sha512 = "57e77414cd484560716ef659271e28c14a8f02f7189bc858b4293a72ac07cb0acc77a6e719c25b7a9b76cd4da6b3b56df8a75236b6ddef0ace9f87113f4f8d72"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/ta/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ta/firefox-75.0.tar.bz2"; locale = "ta"; arch = "linux-i686"; - sha512 = "56ce445bdf12c7ab1bc31fd2f06f5ed3f63c0935e91d23e0e153a81362b1b44b1c874a3f36c2f3b7adf7821f1d08aa80aa55bc01594144fbd92da62e13ba8cc6"; + sha512 = "396fe91815427866908619b33df4fcc503e0b30f03c567a9d4baa51bfae19d91de816cfbca4bd94a48447c7abdfb56d52a294ad0b8fff8134d935db9d6a81221"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/te/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/te/firefox-75.0.tar.bz2"; locale = "te"; arch = "linux-i686"; - sha512 = "2381931f7fab5578e870d589975eae78c4b45f14d75497d1524b9500ce8305ded0aca89409371cdab866be0b32e714ebd1efeedf83d176c12b4518d07b096c6b"; + sha512 = "87237a320372b1c34c583335335b5b8e85eaf0dd774883b0b0c74e883854c1cd14d459cc8b84db2dade7dc92b36d176c8f30bd17658f6e5660660b0f167fc715"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/th/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/th/firefox-75.0.tar.bz2"; locale = "th"; arch = "linux-i686"; - sha512 = "0cc8606b5b15bd3cfc8e37f13c73eabf454c9997102c5bd4fb325b99f029c75bdbb6d48352c4dce40c3790c9446e6c2236885f2aa33ec171ff81a51b7277b780"; + sha512 = "ca5ca4be8242e1fe9a9714b117965b67ebe86b578381ea4339f378dfe74e08f268b63346b5d3bcf30cf1c108a933609d8cbb393caa7f7646557d265c2b40decb"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/tl/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/tl/firefox-75.0.tar.bz2"; locale = "tl"; arch = "linux-i686"; - sha512 = "5f7bcd704a3c960b2d89788e841dcac15eae1fa575205ce67bf75726a5477a0356c968e77146297ed96206e5f05083477155fc3db2c9ddef53bae373104d12cf"; + sha512 = "99322a06d7122438715b92f176b07203246c1e15a0a42dae4349f424232778f3d2b9bcd17a7b239b8eb6273a6ada8e259480601258275f16c567d9cee51fd16f"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/tr/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/tr/firefox-75.0.tar.bz2"; locale = "tr"; arch = "linux-i686"; - sha512 = "8fdf1faad4615db6c2aa577391c7a9aa2600e486234d9d20ec0cc340552f98e199565ee391ec48d2c660fb347cbf3ff733c16d58350c4ed1a47076108d731a0e"; + sha512 = "95a86989879b65c85032e9b8ffa9290d9a6fa1be409786b9782b284e4c0fb894719fc464ef7e6b96554e2cb852a3276a8e042bbff02a17bdb44aaf9ddc170361"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/trs/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/trs/firefox-75.0.tar.bz2"; locale = "trs"; arch = "linux-i686"; - sha512 = "1a08a191f34c3fe120d0d7915f872750f903e6692819c0ee1bf1341539346f8f816e89e79970a81e610fb78b0b1fd0327655e7a5db10c717c60a3ab425cc1b01"; + sha512 = "aae0652f74e82b0cdd752cb8f0747fd4f36f04fcdc50c3cd9d084c6418694cd3015e8de87d851605f5cac0b0159ddd8f9521755d81adbee0e561926b2ea1d393"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/uk/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/uk/firefox-75.0.tar.bz2"; locale = "uk"; arch = "linux-i686"; - sha512 = "0e93003cc99f7251e6596b960a89eb4348e260fdebb348ed9356e850e5d5a589d1affe131bc94a3d370ba340062d3d8b59f18eaa0d446f677f767f3a4e26884d"; + sha512 = "df038e62ba6284245212f23c5458b2df14547ed532ba66adfed2297041ae7acf693a6e01a6af9c16f4a2e141806d9baf3c4fce91bf3316e635da7211ba9b057f"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/ur/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/ur/firefox-75.0.tar.bz2"; locale = "ur"; arch = "linux-i686"; - sha512 = "ab5c15ed6f63d6c7b38e592f28e57cc895e191aa60e2eec819129c684a73480315925965ca0c4b69612c873637e56262b2c3372a59d451c11d73bcc888c92194"; + sha512 = "1bcc2f2e8f5e389c29fd0e7f4a5a376d91268e326758b396c9d829e59d1315a52df0449fe49e81170713f1161946c2ed224560dc96329f30a5d13c8413f26823"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/uz/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/uz/firefox-75.0.tar.bz2"; locale = "uz"; arch = "linux-i686"; - sha512 = "58a83c8ee2582112eb4bb04e875ebad5c3f31fb7f6be790cecaa4f599b2e2f2c3935df019578d5c79dc2df2e3f177796830dcd7b8d96e1435f0cc8cc338d4cf7"; + sha512 = "d957e4942ead1634d792555f57c6dbe54972fd9a97071e63901b422ed6b723426b27fe85afc8c33d75087a502112a4b4b2e0dc3f3a04a9d44a48ec867dc78cb2"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/vi/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/vi/firefox-75.0.tar.bz2"; locale = "vi"; arch = "linux-i686"; - sha512 = "70c26fa5f2922979919f30454ef5714f69b61089af76158e2f4c59204e9ca800e7af620d60cf8ac6208b791677e00d5337ded25b4bbd7a64dd46d353bb728d84"; + sha512 = "e3209382cf01d827f3e68230c46c6eda837798f92812c93ac19e81a77a0d72f3a5b53681320b71d886d8d4339fb2eb51d056bb4bc41466116aa51ffd50ff05d1"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/xh/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/xh/firefox-75.0.tar.bz2"; locale = "xh"; arch = "linux-i686"; - sha512 = "1dab6166eeb18ec291b7c96662c74583adeeed7fec56414cdf827b1d0d2976374d84437df6ebd131628fee9607b91307e074cfa0d3c4ea65423d37dde0951fa7"; + sha512 = "8719acd4bca1136668c6a90b3f7caaf29bd773acaab2776f2b7daca3c9028c33e73dc2c15c82d44064e92b61def23ca889a2ad09043c5bc5ad91db3214af1919"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/zh-CN/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/zh-CN/firefox-75.0.tar.bz2"; locale = "zh-CN"; arch = "linux-i686"; - sha512 = "2f4c9461b178b646da63da07893fb3dc598ac2aa65e384ac4e0406eb748625bebb06b6e7d348b4324eddc794d0818e87958398d65a8d3354faec26854dfa7d07"; + sha512 = "681e276d7ff6a6f91be59994e53f9f6f082e16f9d22ec7e1d1b65813e91c6c2661f28989b0331100b6f0d4cdbbb0589204b0ed80bf5f0bc0d18016e905a71148"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/74.0/linux-i686/zh-TW/firefox-74.0.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/75.0/linux-i686/zh-TW/firefox-75.0.tar.bz2"; locale = "zh-TW"; arch = "linux-i686"; - sha512 = "f1e0e92ba60358f3b5e1edc1f3fd2a58482a4723785ed9e8d914519b6550617f5d19468ce9b8a5a5f81a212ae0e387d3f39335755838e074cbbf765f2440027a"; + sha512 = "71ee272a7d02758187a9ef2d0a722760d04d9bf0fe11c90e841e15dc9019f44ba22483b6698e3f8eba9620e34d2678db2dbc2974c1ab5c7f0f79934aa4142432"; } ]; } diff --git a/pkgs/applications/networking/browsers/firefox/common.nix b/pkgs/applications/networking/browsers/firefox/common.nix index 82f1c267e77..5dc791631d8 100644 --- a/pkgs/applications/networking/browsers/firefox/common.nix +++ b/pkgs/applications/networking/browsers/firefox/common.nix @@ -6,7 +6,8 @@ , libjpeg, zlib, dbus, dbus-glib, bzip2, xorg , freetype, fontconfig, file, nspr, nss, libnotify , yasm, libGLU, libGL, sqlite, unzip, makeWrapper -, hunspell, libXdamage, libevent, libstartup_notification, libvpx +, hunspell, libXdamage, libevent, libstartup_notification +, libvpx, libvpx_1_8 , icu, libpng, jemalloc, glib , autoconf213, which, gnused, cargo, rustc, llvmPackages , rust-cbindgen, nodejs, nasm, fetchpatch @@ -108,8 +109,8 @@ stdenv.mkDerivation ({ xorg.libX11 xorg.libXrender xorg.libXft xorg.libXt file libnotify xorg.pixman yasm libGLU libGL xorg.libXScrnSaver xorg.xorgproto - xorg.libXext sqlite unzip makeWrapper - libevent libstartup_notification libvpx /* cairo */ + xorg.libXext unzip makeWrapper + libevent libstartup_notification /* cairo */ icu libpng jemalloc glib nasm # >= 66 requires nasm for the AV1 lib dav1d @@ -118,7 +119,8 @@ stdenv.mkDerivation ({ # https://groups.google.com/forum/#!msg/mozilla.dev.platform/o-8levmLU80/SM_zQvfzCQAJ nspr nss ] - + ++ lib.optionals (lib.versionOlder ffversion "75") [ libvpx sqlite ] + ++ lib.optional (lib.versionAtLeast ffversion "75.0") libvpx_1_8 ++ lib.optional alsaSupport alsaLib ++ lib.optional pulseaudioSupport libpulseaudio # only headers are needed ++ lib.optional gtk3Support gtk3 @@ -178,7 +180,7 @@ stdenv.mkDerivation ({ $(< ${stdenv.cc}/nix-support/cc-cflags) \ ${stdenv.cc.default_cxx_stdlib_compile} \ ${lib.optionalString stdenv.cc.isClang "-idirafter ${stdenv.cc.cc}/lib/clang/${lib.getVersion stdenv.cc.cc}/include"} \ - ${lib.optionalString stdenv.cc.isGNU "-isystem ${stdenv.cc.cc}/include/c++/${lib.getVersion stdenv.cc.cc} -isystem ${stdenv.cc.cc}/include/c++/${lib.getVersion stdenv.cc.cc}/$(cc -dumpmachine)"} \ + ${lib.optionalString stdenv.cc.isGNU "-isystem ${stdenv.cc.cc}/include/c++/${lib.getVersion stdenv.cc.cc} -isystem ${stdenv.cc.cc}/include/c++/${lib.getVersion stdenv.cc.cc}/${stdenv.hostPlatform.config}"} \ $NIX_CFLAGS_COMPILE" echo "ac_add_options BINDGEN_CFLAGS='$BINDGEN_CFLAGS'" >> $MOZCONFIG @@ -206,7 +208,6 @@ stdenv.mkDerivation ({ "--with-system-icu" "--enable-system-ffi" "--enable-system-pixman" - "--enable-system-sqlite" #"--enable-system-cairo" "--enable-startup-notification" #"--enable-content-sandbox" # TODO: probably enable after 54 @@ -221,6 +222,7 @@ stdenv.mkDerivation ({ "--with-system-nspr" "--with-system-nss" ] + ++ lib.optional (lib.versionOlder ffversion "75") "--enable-system-sqlite" ++ lib.optional (stdenv.isDarwin) "--disable-xcode-checks" ++ lib.optionals (lib.versionOlder ffversion "69") [ "--enable-webrender=build" diff --git a/pkgs/applications/networking/browsers/firefox/packages.nix b/pkgs/applications/networking/browsers/firefox/packages.nix index cf44639ad57..e419137c4e9 100644 --- a/pkgs/applications/networking/browsers/firefox/packages.nix +++ b/pkgs/applications/networking/browsers/firefox/packages.nix @@ -1,4 +1,4 @@ -{ config, lib, callPackage, fetchurl }: +{ config, stdenv, lib, callPackage, fetchurl }: let common = opts: callPackage (import ./common.nix opts) {}; @@ -7,10 +7,10 @@ in rec { firefox = common rec { pname = "firefox"; - ffversion = "74.0"; + ffversion = "75.0"; src = fetchurl { url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz"; - sha512 = "245n2ilfgx3rd0xlxzpg4gcwddcy0cgaqnaf5pwixjx0n8py1imiylwlsbihf70s41cq5q8awckchs287yysr4v6pdfqqbj7s0f02ki"; + sha512 = "0m3ibm6dy9cpvsxkzkzwj7na5rm5qz7sm3bpx604ibay9pccvgv59jxapisvmswzmlz2nv02l6p2gxlz3b0lbcg7rd5zasia92y7j99"; }; patches = [ @@ -19,10 +19,12 @@ rec { meta = { description = "A web browser built from Firefox source tree"; - homepage = http://www.mozilla.com/en-US/firefox/; + homepage = "http://www.mozilla.com/en-US/firefox/"; maintainers = with lib.maintainers; [ eelco andir ]; 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; }; updateScript = callPackage ./update.nix { @@ -33,10 +35,10 @@ rec { firefox-esr-68 = common rec { pname = "firefox-esr"; - ffversion = "68.6.0esr"; + ffversion = "68.7.0esr"; src = fetchurl { url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz"; - sha512 = "2ipajk86s7hfz7qky9lh24i5fgzgpv9hl12invr1rr6jhpp0h6gbb44ffim0z9lmcj49cr01cgqis0swhb4vph8dl1jvgfq9rjmsml4"; + sha512 = "29qbcc78hz1rsnz735a5miwfj0c3r1c5qm2043vyd9qz879vsh4ab82k7wncm3xa04kqdff26zh1rpbbjmdr7gwn4q8nmjzzs7wzpd3"; }; patches = [ diff --git a/pkgs/applications/networking/browsers/firefox/wrapper.nix b/pkgs/applications/networking/browsers/firefox/wrapper.nix index 8256487b751..0afa8ca7b83 100644 --- a/pkgs/applications/networking/browsers/firefox/wrapper.nix +++ b/pkgs/applications/networking/browsers/firefox/wrapper.nix @@ -2,10 +2,8 @@ ## various stuff that can be plugged in , flashplayer, hal-flash -, MPlayerPlugin, ffmpeg, xorg, libpulseaudio, libcanberra-gtk2, libglvnd -, jrePlugin, adoptopenjdk-icedtea-web -, bluejeans, djview4, adobe-reader -, google_talk_plugin, fribid, gnome3/*.gnome-shell*/ +, ffmpeg, xorg, libpulseaudio, libcanberra-gtk2, libglvnd +, gnome3/*.gnome-shell*/ , browserpass, chrome-gnome-shell, uget-integrator, plasma-browser-integration, bukubrow , tridactyl-native , fx_cast_bridge @@ -26,7 +24,6 @@ let (lib.toUpper (lib.substring 0 1 browserName) + lib.substring 1 (-1) browserName) , nameSuffix ? "" , icon ? browserName - , extraPlugins ? [] , extraNativeMessagingHosts ? [] , gdkWayland ? false , cfg ? config.${browserName} or {} @@ -38,32 +35,24 @@ let enableAdobeFlash = cfg.enableAdobeFlash or false; ffmpegSupport = browser.ffmpegSupport or false; gssSupport = browser.gssSupport or false; - jre = cfg.jre or false; - icedtea = cfg.icedtea or false; - supportsJDK = - stdenv.hostPlatform.system == "i686-linux" || - stdenv.hostPlatform.system == "x86_64-linux" || - stdenv.hostPlatform.system == "armv7l-linux" || - stdenv.hostPlatform.system == "aarch64-linux"; plugins = - assert !(jre && icedtea); - if builtins.hasAttr "enableVLC" cfg - then throw "The option \"${browserName}.enableVLC\" has been removed since Firefox no longer supports npapi plugins" - else - ([ ] - ++ lib.optional enableAdobeFlash flashplayer - ++ lib.optional (cfg.enableDjvu or false) (djview4) - ++ lib.optional (cfg.enableMPlayer or false) (MPlayerPlugin browser) - ++ lib.optional (supportsJDK && jre && jrePlugin ? mozillaPlugin) jrePlugin - ++ lib.optional icedtea adoptopenjdk-icedtea-web - ++ lib.optional (cfg.enableGoogleTalkPlugin or false) google_talk_plugin - ++ lib.optional (cfg.enableFriBIDPlugin or false) fribid - ++ lib.optional (cfg.enableGnomeExtensions or false) gnome3.gnome-shell - ++ lib.optional (cfg.enableBluejeans or false) bluejeans - ++ lib.optional (cfg.enableAdobeReader or false) adobe-reader - ++ extraPlugins - ); + let + removed = lib.filter (a: builtins.hasAttr a cfg) [ + "enableVLC" + "enableDjvu" + "enableMPlayer" + "jre" + "icedtea" + "enableGoogleTalkPlugin" + "enableFriBIDPlugin" + "enableBluejeans" + "enableAdobeReader" + ]; + in if removed != [] + then throw "Your configuration mentions ${lib.concatMapStringsSep ", " (p: browserName + "." + p) removed}. All plugin related options, except for the adobe flash player, have been removed, since Firefox from version 52 onwards no longer supports npapi plugins (see https://support.mozilla.org/en-US/kb/npapi-plugins)." + else lib.optional enableAdobeFlash flashplayer; + nativeMessagingHosts = ([ ] ++ lib.optional (cfg.enableBrowserpass or false) (lib.getBin browserpass) diff --git a/pkgs/applications/networking/browsers/google-chrome/default.nix b/pkgs/applications/networking/browsers/google-chrome/default.nix index 53255ec5183..e5cd08f7df7 100644 --- a/pkgs/applications/networking/browsers/google-chrome/default.nix +++ b/pkgs/applications/networking/browsers/google-chrome/default.nix @@ -108,7 +108,7 @@ in stdenv.mkDerivation { --replace /opt/google/$appname/google-$appname $exe substituteInPlace $out/share/menu/google-$appname.menu \ --replace /opt $out/share \ - --replace $out/share/google/chrome/google-$appname $exe + --replace $out/share/google/$appname/google-$appname $exe for icon_file in $out/share/google/chrome*/product_logo_*[0-9].png; do num_and_suffix="''${icon_file##*logo_}" @@ -133,7 +133,7 @@ in stdenv.mkDerivation { meta = { description = "A freeware web browser developed by Google"; - homepage = https://www.google.com/chrome/browser/; + homepage = "https://www.google.com/chrome/browser/"; license = licenses.unfree; maintainers = [ maintainers.msteen ]; platforms = [ "x86_64-linux" ]; diff --git a/pkgs/applications/networking/browsers/links2/default.nix b/pkgs/applications/networking/browsers/links2/default.nix index b09be81cc41..d58fc8fd19b 100644 --- a/pkgs/applications/networking/browsers/links2/default.nix +++ b/pkgs/applications/networking/browsers/links2/default.nix @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { ++ stdenv.lib.optional enableDirectFB "--with-directfb"; meta = with stdenv.lib; { - homepage = http://links.twibright.com/; + homepage = "http://links.twibright.com/"; description = "A small browser with some graphics support"; maintainers = with maintainers; [ raskin ]; platforms = platforms.unix; diff --git a/pkgs/applications/networking/browsers/luakit/default.nix b/pkgs/applications/networking/browsers/luakit/default.nix index 0605eda7fc7..bf10043e942 100644 --- a/pkgs/applications/networking/browsers/luakit/default.nix +++ b/pkgs/applications/networking/browsers/luakit/default.nix @@ -55,7 +55,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Fast, small, webkit based browser framework extensible in Lua"; - homepage = https://luakit.github.io/; + homepage = "https://luakit.github.io/"; license = licenses.gpl3; platforms = platforms.linux; # Only tested linux }; diff --git a/pkgs/applications/networking/browsers/lynx/default.nix b/pkgs/applications/networking/browsers/lynx/default.nix index 3f4f96d33ef..8aeee45b9e5 100644 --- a/pkgs/applications/networking/browsers/lynx/default.nix +++ b/pkgs/applications/networking/browsers/lynx/default.nix @@ -43,7 +43,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A text-mode web browser"; - homepage = https://lynx.invisible-island.net/; + homepage = "https://lynx.invisible-island.net/"; license = licenses.gpl2Plus; platforms = platforms.unix; }; diff --git a/pkgs/applications/networking/browsers/midori/default.nix b/pkgs/applications/networking/browsers/midori/default.nix index 1d1928d168b..66f6384643a 100644 --- a/pkgs/applications/networking/browsers/midori/default.nix +++ b/pkgs/applications/networking/browsers/midori/default.nix @@ -51,7 +51,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Lightweight WebKitGTK web browser"; - homepage = https://www.midori-browser.org/; + homepage = "https://www.midori-browser.org/"; license = with licenses; [ lgpl21Plus ]; platforms = with platforms; linux; maintainers = with maintainers; [ raskin ramkromberg ]; diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/bluejeans/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/bluejeans/default.nix deleted file mode 100644 index e8841a0ab6f..00000000000 --- a/pkgs/applications/networking/browsers/mozilla-plugins/bluejeans/default.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ stdenv, fetchurl, xorg, gtk2, glib, gdk-pixbuf, dpkg, libXext, libXfixes -, libXrender, libuuid, libXrandr, libXcomposite, libpulseaudio -}: - -with stdenv.lib; - -let - - rpathInstaller = makeLibraryPath - [gtk2 glib stdenv.cc.cc]; - - rpathPlugin = makeLibraryPath - ([ stdenv.cc.cc gtk2 glib xorg.libX11 gdk-pixbuf libXext libXfixes libXrender libXrandr libXcomposite libpulseaudio ] ++ optional (libuuid != null) libuuid); - -in - -stdenv.mkDerivation rec { - pname = "bluejeans"; - - version = "2.180.71.8"; - - src = fetchurl { - url = "https://swdl.bluejeans.com/skinny/bjnplugin_${version}-1_amd64.deb"; - sha256 = "1fgjgzss0ghk734xpfidazyknfdn11pmyw77pc3wigl83dvx4nb2"; - }; - - unpackPhase = "${dpkg}/bin/dpkg-deb -x $src ."; - - installPhase = - '' - mkdir -p $out - cp -R usr/lib $out/ - - plugins=$out/lib/mozilla/plugins - patchelf \ - --set-rpath "${rpathPlugin}" \ - $plugins/npbjnplugin_${version}.so - - patchelf \ - --set-rpath "${rpathInstaller}" \ - $plugins/npbjninstallplugin_${version}.so - ''; - - dontStrip = true; - dontPatchELF = true; - - passthru.mozillaPlugin = "/lib/mozilla/plugins"; - - meta = { - homepage = http://bluejeans.com; - license = stdenv.lib.licenses.unfree; - maintainers = with maintainers; [ ocharles kamilchm ]; - platforms = stdenv.lib.platforms.linux; - }; -} diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix index 46a759cf27a..6672a75d574 100644 --- a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix +++ b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix @@ -74,7 +74,7 @@ let in stdenv.mkDerivation rec { pname = "flashplayer"; - version = "32.0.0.344"; + version = "32.0.0.363"; src = fetchurl { url = @@ -85,14 +85,14 @@ stdenv.mkDerivation rec { sha256 = if debug then if arch == "x86_64" then - "1kkwijxlcs1rlqxr1vj51h95fwwrp5m0c9lngqpncgmmhh8v9dyr" + "06711k4vbn6mqfd8gvx2snsxyalhw15hn5b64sja8726z5rxvzy7" else - "0r47s19fw7gsph73rd5jb2zfsjwz7mjawm6c49rir9rsa0zxrsks" + "0v584aqhy4xk08afi3ypkq4mqjq57y136z82i5ixyim88dqbaf4f" else if arch == "x86_64" then - "1ki3i7zw0q48xf01xjfm1mpizc5flk768p9hqxpg881r4h65dh6b" + "1g1ijxypm8a8mfc1x58gksmaakqpp7xmf277wiir8zqjn3vd6c64" else - "1v527i60sljwyvv4l1kg9ml05skjgm3naynlswd35hsz258jnxl4"; + "13nbxmqmbxqvdhdwdqimim2f9fz3y2vrsx6b3pck6352m4i4wzh8"; }; nativeBuildInputs = [ unzip ]; @@ -139,7 +139,7 @@ stdenv.mkDerivation rec { meta = { description = "Adobe Flash Player browser plugin"; - homepage = http://www.adobe.com/products/flashplayer/; + homepage = "http://www.adobe.com/products/flashplayer/"; license = stdenv.lib.licenses.unfree; maintainers = with stdenv.lib.maintainers; [ taku0 ]; platforms = [ "x86_64-linux" "i686-linux" ]; diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix index 5274d30e68a..3661f6edb53 100644 --- a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix +++ b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix @@ -50,7 +50,7 @@ stdenv.mkDerivation { pname = "flashplayer-standalone"; - version = "32.0.0.344"; + version = "32.0.0.363"; src = fetchurl { url = @@ -60,9 +60,9 @@ stdenv.mkDerivation { "https://fpdownload.macromedia.com/pub/flashplayer/updaters/32/flash_player_sa_linux.x86_64.tar.gz"; sha256 = if debug then - "1ymsk07xmnanyv86r58ar1l4wgjarlq0fc111ajc76pp8dsxnfx8" + "03zhza8lvc1nvz3racwfsajfd6rnbw3g56dp5wvr1qmaps8xaaqg" else - "0wiwpn4a0jxslw4ahalq74rksn82y0aqa3lrjr9qs7kdcak74vky"; + "0bhp7jv2l2agfzr8m564k749a5g75dw1390phlwvf49n1h8ldap2"; }; nativeBuildInputs = [ unzip ]; @@ -95,7 +95,7 @@ stdenv.mkDerivation { meta = { description = "Adobe Flash Player standalone executable"; - homepage = https://www.adobe.com/support/flashplayer/debug_downloads.html; + homepage = "https://www.adobe.com/support/flashplayer/debug_downloads.html"; license = stdenv.lib.licenses.unfree; maintainers = with stdenv.lib.maintainers; [ taku0 ]; platforms = [ "x86_64-linux" ]; diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/fribid/builder.sh b/pkgs/applications/networking/browsers/mozilla-plugins/fribid/builder.sh deleted file mode 100644 index fb36125b3a1..00000000000 --- a/pkgs/applications/networking/browsers/mozilla-plugins/fribid/builder.sh +++ /dev/null @@ -1,4 +0,0 @@ -source $stdenv/setup -export PREFIX=$out -configureFlags="--plugin-path=$out/lib/mozilla/plugins" -genericBuild diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix deleted file mode 100644 index 101ae99d665..00000000000 --- a/pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ stdenv, fetchurl, pkgconfig, openssl, glib, libX11, gtk2, gettext, intltool }: - -stdenv.mkDerivation rec { - pname = "fribid"; - version = "1.0.4"; - builder = ./builder.sh; - - src = fetchurl { - url = "https://fribid.se/releases/source/${pname}-${version}.tar.bz2"; - sha256 = "a679f3a0534d5f05fac10b16b49630a898c0b721cfa24d2c827fa45485476649"; - }; - - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ openssl libX11 gtk2 glib gettext intltool ]; - patches = [ - ./translation-xgettext-to-intltool.patch - ./plugin-linkfix.patch - ./ipc-lazytrace.patch - ]; - - postPatch = "substituteInPlace plugin/pluginutil.c --replace strndup strndup_"; - - passthru.mozillaPlugin = "/lib/mozilla/plugins"; - - meta = with stdenv.lib; { - description = "A browser plugin to manage Swedish BankID:s"; - longDescription = '' - FriBID is an open source software for the Swedish e-id system - called BankID. FriBID also supports processor architectures and - Linux/BSD distributions that the official software doesn't - support. - ''; - homepage = http://fribid.se; - license = with licenses; [ gpl2 mpl10 ]; - maintainers = [ maintainers.edwtjo ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/fribid/ipc-lazytrace.patch b/pkgs/applications/networking/browsers/mozilla-plugins/fribid/ipc-lazytrace.patch deleted file mode 100644 index b7d05ddd0ef..00000000000 --- a/pkgs/applications/networking/browsers/mozilla-plugins/fribid/ipc-lazytrace.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/plugin/ipc.c 2012-11-14 18:02:43.000000000 +0100 -+++ b/plugin/ipc.c 2013-09-21 08:55:39.960265058 +0200 -@@ -74,6 +74,7 @@ - //close(pipeOut[PIPE_READ_END]); - - execvp(mainBinary, (char *const *)argv); -+ fprintf(stderr, "Wanted signing executable\t<%s>\n", mainBinary); - perror(BINNAME ": Failed to execute main binary"); - exit(1); - } else { diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/fribid/plugin-linkfix.patch b/pkgs/applications/networking/browsers/mozilla-plugins/fribid/plugin-linkfix.patch deleted file mode 100644 index 1128381238b..00000000000 --- a/pkgs/applications/networking/browsers/mozilla-plugins/fribid/plugin-linkfix.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/plugin/Makefile 2013-09-18 13:55:11.091652553 +0200 -+++ b/plugin/Makefile 2013-09-18 13:58:27.513618750 +0200 -@@ -60,7 +60,7 @@ - for path in $(NPAPI_PLUGIN_PATHS); do \ - (../configure --internal--remove-link $(DESTDIR)$$path/libfribidplugin.so $(NPAPI_PLUGIN_LIB) || exit 1) && \ - install -d $(DESTDIR)$$path && \ -- ln -sf $(NPAPI_PLUGIN_LIB) $(DESTDIR)$$path/libfribidplugin.so; \ -+ ln -sf $(DESTDIR)$(NPAPI_PLUGIN_LIB) $(DESTDIR)$$path/libfribidplugin.so; \ - done - - uninstall: diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/fribid/translation-xgettext-to-intltool.patch b/pkgs/applications/networking/browsers/mozilla-plugins/fribid/translation-xgettext-to-intltool.patch deleted file mode 100644 index dcac4f17928..00000000000 --- a/pkgs/applications/networking/browsers/mozilla-plugins/fribid/translation-xgettext-to-intltool.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- a/translations/Makefile 2013-09-18 07:25:16.503800613 +0200 -+++ b/translations/Makefile 2013-09-18 07:25:29.495869405 +0200 -@@ -38,7 +38,7 @@ - all: template.pot $(MOFILES) - - template.pot: $(POTFILES) $(DEFINES) -- xgettext -k_ -ktranslatable -d $(DOMAIN) --package-name=$(PACKAGENAME) --package-version=$(PACKAGEVERSION) --copyright-holder='YOUR NAME' -o $@ $(POTFILES) -+ intltool-update --gettext-package=$(PACKAGENAME) -o $@ sv - - .po.mo: - msgfmt $< -o $@ ---- a/translations/POTFILES.in 2013-09-16 20:28:56.766106014 +0200 -+++ b/translations/POTFILES.in 2013-09-18 13:15:05.252689648 +0200 -@@ -0,0 +1,2 @@ -+client/gtk.c -+client/gtk/sign.glade diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix deleted file mode 100644 index 93f2ab2adfa..00000000000 --- a/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix +++ /dev/null @@ -1,117 +0,0 @@ -{ stdenv, fetchurl, libGL, xorg, cairo -, libpng, gtk2, glib, gdk-pixbuf, fontconfig, freetype, curl -, dbus-glib, alsaLib, libpulseaudio, systemd, pango -}: - -with stdenv.lib; - -let - - baseURL = "http://dl.google.com/linux/talkplugin/deb/pool/main/g/google-talkplugin"; - - rpathPlugin = makeLibraryPath - [ libGL - xorg.libXt - xorg.libX11 - xorg.libXrender - cairo - libpng - gtk2 - glib - fontconfig - freetype - curl - ]; - - rpathProgram = makeLibraryPath - [ gdk-pixbuf - glib - gtk2 - xorg.libX11 - xorg.libXcomposite - xorg.libXfixes - xorg.libXrender - xorg.libXrandr - xorg.libXext - stdenv.cc.cc - alsaLib - libpulseaudio - dbus-glib - systemd - curl - pango - cairo - ]; - -in - -stdenv.mkDerivation rec { - pname = "google-talk-plugin"; - - # You can get the upstream version and SHA-256 hash from the following URLs: - # curl -s http://dl.google.com/linux/talkplugin/deb/dists/stable/main/binary-amd64/Packages | grep -E 'Version|SHA256' - # curl -s http://dl.google.com/linux/talkplugin/deb/dists/stable/main/binary-i386/Packages | grep -E 'Version|SHA256' - version = "5.41.3.0"; - - src = - if stdenv.hostPlatform.system == "x86_64-linux" then - fetchurl { - url = "${baseURL}/google-talkplugin_${version}-1_amd64.deb"; - sha256 = "af7e23d2b6215afc547f96615b99f04e0561557cc58c0c9302364b5a3840d97d"; - } - else if stdenv.hostPlatform.system == "i686-linux" then - fetchurl { - url = "${baseURL}/google-talkplugin_${version}-1_i386.deb"; - sha256 = "4c46d2b7f2018640288cd7ac49adc47e309d0beadfd979eb03030e672016b4a7"; - } - else throw "Google Talk does not support your platform."; - - unpackPhase = '' - ar p "$src" data.tar.gz | tar xz - ''; - - installPhase = - '' - plugins=$out/lib/mozilla/plugins - mkdir -p $plugins - cp opt/google/talkplugin/*.so $plugins - - for i in libnpgoogletalk.so libppgoogletalk.so libppo1d.so; do - patchelf --set-rpath "${makeLibraryPath [ stdenv.cc.cc xorg.libX11 ]}:${stdenv.cc.cc.lib}/lib64" $plugins/$i - done - - for i in libgoogletalkremoting.so libnpo1d.so; do - patchelf --set-rpath "$out/libexec/google/talkplugin/lib:${rpathPlugin}:${stdenv.cc.cc.lib}/lib64" $plugins/$i - done - - mkdir -p $out/libexec/google/talkplugin - cp -prd opt/google/talkplugin/{data,GoogleTalkPlugin,locale,remoting24x24.png,windowpicker.glade} $out/libexec/google/talkplugin/ - - patchelf \ - --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ - --set-rpath "${rpathProgram}:${stdenv.cc.cc.lib}/lib64" \ - $out/libexec/google/talkplugin/GoogleTalkPlugin - - # Generate an LD_PRELOAD wrapper to redirect execvp() calls to - # /opt/../GoogleTalkPlugin. - preload=$out/libexec/google/talkplugin/libpreload.so - mkdir -p $(dirname $preload) - gcc -shared ${./preload.c} -o $preload -ldl -DOUT=\"$out\" -fPIC - echo $preload > $plugins/extra-ld-preload - - # Prevent a dependency on gcc. - strip -S $preload - patchELF $preload - ''; - - dontStrip = true; - dontPatchELF = true; - - passthru.mozillaPlugin = "/lib/mozilla/plugins"; - - meta = { - homepage = http://www.google.com/chat/video/; - license = stdenv.lib.licenses.unfree; - maintainers = [ stdenv.lib.maintainers.eelco ]; - }; -} diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/preload.c b/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/preload.c deleted file mode 100644 index 1e2c31d9527..00000000000 --- a/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/preload.c +++ /dev/null @@ -1,60 +0,0 @@ -/* Google Talk Plugin executes a helper program in /opt. This - LD_PRELOAD library intercepts execvp() calls to redirect them to - the corresponding location in $out. */ - -#define _GNU_SOURCE -#include -#include -#include -#include -#include -#include -#include -#include -#include - -char origDir [] = "/opt/google/talkplugin"; -char realDir [] = OUT "/libexec/google/talkplugin"; - -const char * rewrite(const char * path, char * buf) -{ - if (strncmp(path, origDir, sizeof(origDir) - 1) != 0) return path; - if (snprintf(buf, PATH_MAX, "%s%s", realDir, path + sizeof(origDir) - 1) >= PATH_MAX) - abort(); - return buf; -} - -int execvp(const char * path, char * const argv[]) -{ - int (*_execvp) (const char *, char * const argv[]) = dlsym(RTLD_NEXT, "execvp"); - char buf[PATH_MAX]; - return _execvp(rewrite(path, buf), argv); -} - -int open(const char *path, int flags, ...) -{ - char buf[PATH_MAX]; - int (*_open) (const char *, int, mode_t) = dlsym(RTLD_NEXT, "open"); - mode_t mode = 0; - if (flags & O_CREAT) { - va_list ap; - va_start(ap, flags); - mode = va_arg(ap, mode_t); - va_end(ap); - } - return _open(rewrite(path, buf), flags, mode); -} - -int open64(const char *path, int flags, ...) -{ - char buf[PATH_MAX]; - int (*_open64) (const char *, int, mode_t) = dlsym(RTLD_NEXT, "open64"); - mode_t mode = 0; - if (flags & O_CREAT) { - va_list ap; - va_start(ap, flags); - mode = va_arg(ap, mode_t); - va_end(ap); - } - return _open64(rewrite(path, buf), flags, mode); -} diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/mozplugger/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/mozplugger/default.nix deleted file mode 100644 index fd956f62327..00000000000 --- a/pkgs/applications/networking/browsers/mozilla-plugins/mozplugger/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ stdenv, fetchurl, firefox, libX11, xorgproto }: - -stdenv.mkDerivation rec { - pname = "mozplugger"; - version = "2.1.6"; - - src = fetchurl { - url = "http://mozplugger.mozdev.org/files/mozplugger-${version}.tar.gz"; - sha256 = "1vszkq4kdbaxsrqr2xn9rq6ipza9fngdri79gvjqk3bvsdmg0k19"; - }; - - buildInputs = [ firefox libX11 xorgproto ]; - - installPhase = '' - mkdir -p "$out/etc" "$out/bin" "$out/lib/mozilla/plugins" "$out/share/man/man7" - cp mozpluggerrc "$out/etc" - cp mozplugger-{helper,controller,linker,update} "$out/bin" - cp mozplugger.so "$out/lib/mozilla/plugins" - cp mozplugger.7 "$out/share/man/man7" - - mkdir -p "$out/share/${pname}-${version}/plugin" - ln -s "$out/lib/mozilla/plugins/mozplugger.so" "$out/share/${pname}-${version}/plugin" - ''; - - meta = { - description = "Mozilla plugin for launching external program for handling in-page objects"; - homepage = http://mozplugger.mozdev.org/; - license = stdenv.lib.licenses.gpl2Plus; - platforms = stdenv.lib.platforms.linux; - }; -} diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/mplayerplug-in/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/mplayerplug-in/default.nix deleted file mode 100644 index a5bfda9f26c..00000000000 --- a/pkgs/applications/networking/browsers/mozilla-plugins/mplayerplug-in/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{stdenv, fetchurl, pkgconfig, browser, libXpm, gettext}: - -stdenv.mkDerivation rec { - name = "mplayerplug-in-3.55"; - - src = fetchurl { - url = "mirror://sourceforge/mplayerplug-in/${name}.tar.gz"; - sha256 = "0zkvqrzibrbljiccvz3rhbmgifxadlrfjylqpz48jnjx9kggynms"; - }; - - postConfigure = - (if browser ? isFirefox3Like then '' - # Cause a rebuild of these file from the IDL file, needed for GNU IceCat 3 - # and Mozilla Firefox 3. - # See, e.g., http://article.gmane.org/gmane.comp.mozilla.mplayerplug-in/2104 . - rm -f Source/nsIScriptableMplayerPlugin.h - '' - else ""); - - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ browser (browser.gtk) libXpm gettext ]; - - installPhase = '' - mkdir -p $out/lib/mozilla/plugins - cp -p mplayerplug-in*.so mplayerplug-in*.xpt $out/lib/mozilla/plugins - ''; - - passthru = { - mozillaPlugin = "/lib/mozilla/plugins"; - }; - - meta = with stdenv.lib; { - description = "A browser plugin that uses mplayer to play digital media from websites"; - homepage = http://mplayerplug-in.sourceforge.net/; - license = with licenses; [ gpl2Plus lgpl2Plus "MPLv1+" ]; - }; -} diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/nspluginwrapper/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/nspluginwrapper/default.nix deleted file mode 100644 index 10ae0eb1da6..00000000000 --- a/pkgs/applications/networking/browsers/mozilla-plugins/nspluginwrapper/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{stdenv, fetchurl, which, pkgconfig, file, glib, gtk2, gtk3, curl, libXt}: -let - srcData = # Generated upstream information - rec { - baseName="nspluginwrapper"; - version="1.4.4"; - name="${baseName}-${version}"; - hash="1fxjz9ifhw0drm12havlsl4jpsq1nv930gqa005kgddv5pa99vgj"; - url="http://nspluginwrapper.org/download/nspluginwrapper-1.4.4.tar.gz"; - }; -in -stdenv.mkDerivation { - inherit (srcData) name version; - - src = fetchurl{ - inherit (srcData) url; - sha256 = srcData.hash; - }; - - preConfigure = '' - sed -e 's@/usr/bin/@@g' -i configure - sed -e '/gthread[.]h/d' -i src/npw-player.c - export NIX_LDFLAGS="$NIX_LDFLAGS -lgthread-2.0" - export configureFlags="$configureFlags --target-cpu=$(uname -m)" - ''; - - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [which file glib gtk2 gtk3 curl libXt]; - - preferLocalBuild = true; - - meta = { - description = ''A wrapper to run browser plugins out-of-process''; - homepage = http://nspluginwrapper.org/; - license = stdenv.lib.licenses.gpl2; - platforms = [ "x64_64-linux" "i686-linux" ]; - maintainers = [ stdenv.lib.maintainers.raskin ]; - inherit (srcData) version; - }; -} diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/nspluginwrapper/default.upstream b/pkgs/applications/networking/browsers/mozilla-plugins/nspluginwrapper/default.upstream deleted file mode 100644 index 62831613a2e..00000000000 --- a/pkgs/applications/networking/browsers/mozilla-plugins/nspluginwrapper/default.upstream +++ /dev/null @@ -1,4 +0,0 @@ -name nspluginwrapper -target default.nix -url http://nspluginwrapper.org/download/ -version_link /nspluginwrapper-[0-9]+ diff --git a/pkgs/applications/networking/browsers/next/default.nix b/pkgs/applications/networking/browsers/next/default.nix index d4726fab651..e03f918a587 100644 --- a/pkgs/applications/networking/browsers/next/default.nix +++ b/pkgs/applications/networking/browsers/next/default.nix @@ -87,7 +87,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Infinitely extensible web-browser (with Lisp development files using WebKitGTK platform port)"; - homepage = https://next.atlas.engineer; + homepage = "https://next.atlas.engineer"; license = licenses.bsd3; maintainers = [ maintainers.lewo ]; platforms = [ "x86_64-linux" ]; diff --git a/pkgs/applications/networking/browsers/next/next-gtk-webkit.nix b/pkgs/applications/networking/browsers/next/next-gtk-webkit.nix index a71583ffbec..8039c549240 100644 --- a/pkgs/applications/networking/browsers/next/next-gtk-webkit.nix +++ b/pkgs/applications/networking/browsers/next/next-gtk-webkit.nix @@ -42,7 +42,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Infinitely extensible web-browser (user interface only)"; - homepage = https://next.atlas.engineer; + homepage = "https://next.atlas.engineer"; license = licenses.bsd3; maintainers = [ maintainers.lewo ]; platforms = [ "x86_64-linux" ]; diff --git a/pkgs/applications/networking/browsers/palemoon/default.nix b/pkgs/applications/networking/browsers/palemoon/default.nix index 7c010b91a1e..b22a35bc54f 100644 --- a/pkgs/applications/networking/browsers/palemoon/default.nix +++ b/pkgs/applications/networking/browsers/palemoon/default.nix @@ -1,25 +1,28 @@ -{ stdenv, fetchFromGitHub, makeDesktopItem +{ stdenv, lib, fetchgit, makeDesktopItem , pkgconfig, autoconf213, alsaLib, bzip2, cairo , dbus, dbus-glib, ffmpeg, file, fontconfig, freetype , gnome2, gnum4, gtk2, hunspell, libevent, libjpeg , libnotify, libstartup_notification, makeWrapper -, libGLU, libGL, perl, python, libpulseaudio +, libGLU, libGL, perl, python2, libpulseaudio , unzip, xorg, wget, which, yasm, zip, zlib + +, withGTK3 ? false, gtk3 }: let - libPath = stdenv.lib.makeLibraryPath [ ffmpeg ]; + libPath = lib.makeLibraryPath [ ffmpeg ]; + gtkVersion = if withGTK3 then "3" else "2"; in stdenv.mkDerivation rec { pname = "palemoon"; - version = "28.8.4"; + version = "28.9.1"; - src = fetchFromGitHub { - owner = "MoonchildProductions"; - repo = "UXP"; - rev = "PM${version}_Release"; - sha256 = "1k2j4rlgjwkns3a592pbiwwhrpja3fachvzby1his3d1mhdvyc6f"; + src = fetchgit { + url = "https://github.com/MoonchildProductions/Pale-Moon.git"; + rev = "${version}_Release"; + sha256 = "1772by9r9l1l0wmj4hs89r3zyckcbrq1krb09bn3pxvjjywzvkfl"; + fetchSubmodules = true; }; desktopItem = makeDesktopItem { @@ -29,7 +32,7 @@ in stdenv.mkDerivation rec { desktopName = "Pale Moon"; genericName = "Web Browser"; categories = "Application;Network;WebBrowser;"; - mimeType = stdenv.lib.concatStringsSep ";" [ + mimeType = lib.concatStringsSep ";" [ "text/html" "text/xml" "application/xhtml+xml" @@ -40,60 +43,75 @@ in stdenv.mkDerivation rec { ]; }; + nativeBuildInputs = [ + file gnum4 makeWrapper perl pkgconfig python2 wget which + ]; + buildInputs = [ - alsaLib bzip2 cairo dbus dbus-glib ffmpeg file fontconfig freetype - gnome2.GConf gnum4 gtk2 hunspell libevent libjpeg libnotify - libstartup_notification makeWrapper libGLU libGL perl - pkgconfig python libpulseaudio unzip wget which yasm zip zlib - ] ++ (with xorg; [ + alsaLib bzip2 cairo dbus dbus-glib ffmpeg fontconfig freetype + gnome2.GConf gtk2 hunspell libevent libjpeg libnotify + libstartup_notification libGLU libGL + libpulseaudio unzip yasm zip zlib + ] + ++ (with xorg; [ libX11 libXext libXft libXi libXrender libXScrnSaver libXt pixman xorgproto - ]); + ]) + ++ lib.optional withGTK3 gtk3; enableParallelBuilding = true; configurePhase = '' - export MOZBUILD_STATE_PATH=$(pwd)/mozbuild export MOZCONFIG=$(pwd)/mozconfig export MOZ_NOSPAM=1 - export builddir=$(pwd)/pmbuild - echo > $MOZCONFIG " - mk_add_options AUTOCLOBBER=1 - mk_add_options MOZ_OBJDIR=$builddir + # 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"} + + # 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-optimize='-O2' + 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 --enable-default-toolkit=cairo-gtk2 - ac_add_options --enable-jemalloc - ac_add_options --enable-strip - ac_add_options --with-pthreads + ac_add_options --x-libraries=${lib.makeLibraryPath [ xorg.libX11 ]} - ac_add_options --disable-tests - ac_add_options --disable-eme - ac_add_options --disable-parental-controls - ac_add_options --disable-accessibility - ac_add_options --disable-webrtc - ac_add_options --disable-gamepad - ac_add_options --disable-necko-wifi - ac_add_options --disable-updater + export MOZ_PKG_SPECIAL=gtk$_GTK_VERSION - ac_add_options --x-libraries=${xorg.libX11.out}/lib + # + # NixOS-specific adjustments + # ac_add_options --prefix=$out - mk_add_options MOZ_MAKE_FLAGS='-j$NIX_BUILD_CORES' + + mk_add_options MOZ_MAKE_FLAGS="-j$NIX_BUILD_CORES" mk_add_options AUTOCONF=${autoconf213}/bin/autoconf - " + ' ''; - buildPhase = '' - $src/mach build - ''; + buildPhase = "$src/mach build"; installPhase = '' $src/mach install @@ -104,7 +122,7 @@ in stdenv.mkDerivation rec { for n in 16 22 24 32 48 256; do size=$n"x"$n mkdir -p $out/share/icons/hicolor/$size/apps - cp $src/application/palemoon/branding/official/default$n.png \ + cp $src/palemoon/branding/official/default$n.png \ $out/share/icons/hicolor/$size/apps/palemoon.png done @@ -112,7 +130,7 @@ in stdenv.mkDerivation rec { --prefix LD_LIBRARY_PATH : "${libPath}" ''; - meta = with stdenv.lib; { + meta = with lib; { 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 diff --git a/pkgs/applications/networking/browsers/qutebrowser/default.nix b/pkgs/applications/networking/browsers/qutebrowser/default.nix index 12cf9b30fa6..d75be65c196 100644 --- a/pkgs/applications/networking/browsers/qutebrowser/default.nix +++ b/pkgs/applications/networking/browsers/qutebrowser/default.nix @@ -21,12 +21,12 @@ let in mkDerivationWith python3Packages.buildPythonApplication rec { pname = "qutebrowser"; - version = "1.10.1"; + version = "1.11.0"; # the release tarballs are different from the git checkout! src = fetchurl { url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/${pname}-${version}.tar.gz"; - sha256 = "06bcnsfb4kz92bh8xjxwaghhy9x2mmcb76wk3fv868jb1ga75vd8"; + sha256 = "0b0qlki9bp9mm41lrh6rc6qqvm4nsz8da63sby3a1f2xm9b9vvg2"; }; # Needs tox @@ -105,7 +105,7 @@ in mkDerivationWith python3Packages.buildPythonApplication rec { ''; meta = with stdenv.lib; { - homepage = https://github.com/The-Compiler/qutebrowser; + homepage = "https://github.com/The-Compiler/qutebrowser"; description = "Keyboard-focused browser with a minimal GUI"; license = licenses.gpl3Plus; maintainers = with maintainers; [ jagajaga rnhmjoj ebzzry ]; diff --git a/pkgs/applications/networking/browsers/surf/default.nix b/pkgs/applications/networking/browsers/surf/default.nix index 0437ab933bd..03571469da1 100644 --- a/pkgs/applications/networking/browsers/surf/default.nix +++ b/pkgs/applications/networking/browsers/surf/default.nix @@ -39,7 +39,7 @@ stdenv.mkDerivation rec { possible to embed it in another application. Furthermore, one can point surf to another URI by setting its XProperties. ''; - homepage = https://surf.suckless.org; + homepage = "https://surf.suckless.org"; license = licenses.mit; platforms = webkitgtk.meta.platforms; maintainers = with maintainers; [ joachifm ]; diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix index 4fafe19b379..97a03ccbab5 100644 --- a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix +++ b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix @@ -28,7 +28,7 @@ , apulse # Media support (implies audio support) -, mediaSupport ? false +, mediaSupport ? true , ffmpeg , gmp @@ -90,19 +90,19 @@ let fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ]; # Upstream source - version = "9.0.5"; + version = "9.0.9"; lang = "en-US"; srcs = { x86_64-linux = fetchurl { url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz"; - sha256 = "1d4c3mrvqd6v086mwn3rnv776y2j3y45agnd0k5njqnmr53ybn2s"; + sha256 = "0ws4s0jn559j1ih60wqspxvr5wpqww29kzk0xzzbr56wfyahp4fg"; }; i686-linux = fetchurl { url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz"; - sha256 = "040nh79hjkg5afvzshzhp7588dbi1pcpjsyk8phfqaapds74ma8y"; + sha256 = "0sv73jlv0qwlkxgqkmqg1flsa9lbkxa4yahny5wrfgsbw74xibkl"; }; }; in diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/browser.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/browser.nix new file mode 100644 index 00000000000..87248013a9a --- /dev/null +++ b/pkgs/applications/networking/browsers/ungoogled-chromium/browser.nix @@ -0,0 +1,94 @@ +{ stdenv, mkChromiumDerivation, channel, enableWideVine }: + +with stdenv.lib; + +mkChromiumDerivation (base: rec { + name = "chromium-browser"; + packageName = "chromium"; + buildTargets = [ "mksnapshot" "chrome_sandbox" "chrome" ]; + + outputs = ["out" "sandbox"]; + + sandboxExecutableName = "__chromium-suid-sandbox"; + + installPhase = '' + mkdir -p "$libExecPath" + cp -v "$buildPath/"*.pak "$buildPath/"*.bin "$libExecPath/" + cp -v "$buildPath/icudtl.dat" "$libExecPath/" + cp -vLR "$buildPath/locales" "$buildPath/resources" "$libExecPath/" + cp -v "$buildPath/chrome" "$libExecPath/$packageName" + + # Swiftshader + # See https://stackoverflow.com/a/4264351/263061 for the find invocation. + if [ -n "$(find "$buildPath/swiftshader/" -maxdepth 1 -name '*.so' -print -quit)" ]; then + echo "Swiftshader files found; installing" + mkdir -p "$libExecPath/swiftshader" + cp -v "$buildPath/swiftshader/"*.so "$libExecPath/swiftshader/" + else + echo "Swiftshader files not found" + fi + + mkdir -p "$sandbox/bin" + cp -v "$buildPath/chrome_sandbox" "$sandbox/bin/${sandboxExecutableName}" + + mkdir -vp "$out/share/man/man1" + cp -v "$buildPath/chrome.1" "$out/share/man/man1/$packageName.1" + + for icon_file in chrome/app/theme/chromium/product_logo_*[0-9].png; do + num_and_suffix="''${icon_file##*logo_}" + icon_size="''${num_and_suffix%.*}" + expr "$icon_size" : "^[0-9][0-9]*$" || continue + logo_output_prefix="$out/share/icons/hicolor" + logo_output_path="$logo_output_prefix/''${icon_size}x''${icon_size}/apps" + mkdir -vp "$logo_output_path" + cp -v "$icon_file" "$logo_output_path/$packageName.png" + done + + # Install Desktop Entry + install -D chrome/installer/linux/common/desktop.template \ + $out/share/applications/chromium-browser.desktop + + substituteInPlace $out/share/applications/chromium-browser.desktop \ + --replace "@@MENUNAME@@" "Chromium" \ + --replace "@@PACKAGE@@" "chromium" \ + --replace "Exec=/usr/bin/@@USR_BIN_SYMLINK_NAME@@" "Exec=chromium" + + # Append more mime types to the end + sed -i '/^MimeType=/ s,$,x-scheme-handler/webcal;x-scheme-handler/mailto;x-scheme-handler/about;x-scheme-handler/unknown,' \ + $out/share/applications/chromium-browser.desktop + + # See https://github.com/NixOS/nixpkgs/issues/12433 + sed -i \ + -e '/\[Desktop Entry\]/a\' \ + -e 'StartupWMClass=chromium-browser' \ + $out/share/applications/chromium-browser.desktop + ''; + + passthru = { inherit sandboxExecutableName; }; + + requiredSystemFeatures = [ "big-parallel" ]; + + meta = { + description = "An open source web browser from Google, with dependencies on Google web services removed"; + longDescription = '' + Chromium is an open source web browser from Google that aims to build a + safer, faster, and more stable way for all Internet users to experience + the web. It has a minimalist user interface and provides the vast majority + of source code for Google Chrome (which has some additional features). + ''; + homepage = https://github.com/Eloston/ungoogled-chromium; + maintainers = with maintainers; [ squalus ]; + # Overview of the maintainer roles: + # nixos-unstable: + # - TODO: Need a new maintainer for x86_64 [0] + # - @thefloweringash: aarch64 + # - @primeos: Provisional maintainer (x86_64) + # Stable channel: + # - TODO (need someone to test backports [0]) + # [0]: https://github.com/NixOS/nixpkgs/issues/78450 + license = if enableWideVine then licenses.unfree else licenses.bsd3; + platforms = platforms.linux; + hydraPlatforms = if channel == "stable" then ["aarch64-linux" "x86_64-linux"] else []; + timeout = 172800; # 48 hours + }; +}) diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/common.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/common.nix new file mode 100644 index 00000000000..25ee5462b29 --- /dev/null +++ b/pkgs/applications/networking/browsers/ungoogled-chromium/common.nix @@ -0,0 +1,366 @@ +{ stdenv, llvmPackages, gnChromium, ninja, which, nodejs, fetchpatch, gnutar + +# default dependencies +, bzip2, flac, speex, libopus +, libevent, expat, libjpeg, snappy +, libpng, libcap +, xdg_utils, yasm, minizip, libwebp +, libusb1, pciutils, nss, re2, zlib + +, python2Packages, perl, pkgconfig +, nspr, systemd, kerberos +, utillinux, alsaLib +, bison, gperf +, glib, gtk3, dbus-glib +, glibc +, libXScrnSaver, libXcursor, libXtst, libGLU, libGL +, protobuf, speechd, libXdamage, cups +, ffmpeg, libxslt, libxml2, at-spi2-core +, jre + +# optional dependencies +, libgcrypt ? null # gnomeSupport || cupsSupport +, libva ? null # useVaapi +, libdrm ? null, wayland ? null, mesa_drivers ? null, libxkbcommon ? null # useOzone + +# package customization +, useOzone ? false +, useVaapi ? !(useOzone || stdenv.isAarch64) # Built if supported, but disabled in the wrapper +# VA-API TODOs: +# - Ozone: M81 fails to build due to "ozone_platform_gbm = false" +# - Possible solutions: Write a patch to fix the build (wrong gn dependencies) +# or build with minigbm +# - AArch64: Causes serious regressions (https://github.com/NixOS/nixpkgs/pull/85253#issuecomment-614405879) +, gnomeSupport ? false, gnome ? null +, gnomeKeyringSupport ? false, libgnome-keyring3 ? null +, proprietaryCodecs ? true +, cupsSupport ? true +, pulseSupport ? false, libpulseaudio ? null +, ungoogled-chromium +, ungoogled ? false + +, upstream-info +}: + +buildFun: + +with stdenv.lib; + +# see http://www.linuxfromscratch.org/blfs/view/cvs/xsoft/chromium.html + +let + # The additional attributes for creating derivations based on the chromium + # source tree. + extraAttrs = buildFun base; + + githubPatch = commit: sha256: fetchpatch { + url = "https://github.com/chromium/chromium/commit/${commit}.patch"; + inherit sha256; + }; + + mkGnFlags = + let + # Serialize Nix types into GN types according to this document: + # https://chromium.googlesource.com/chromium/src/+/master/tools/gn/docs/language.md + mkGnString = value: "\"${escape ["\"" "$" "\\"] value}\""; + sanitize = value: + if value == true then "true" + else if value == false then "false" + else if isList value then "[${concatMapStringsSep ", " sanitize value}]" + else if isInt value then toString value + else if isString value then mkGnString value + else throw "Unsupported type for GN value `${value}'."; + toFlag = key: value: "${key}=${sanitize value}"; + in attrs: concatStringsSep " " (attrValues (mapAttrs toFlag attrs)); + + gnSystemLibraries = [ + "flac" "libwebp" "libxslt" "yasm" "opus" "snappy" "libpng" + # "zlib" # version 77 reports unresolved dependency on //third_party/zlib:zlib_config + # "libjpeg" # fails with multiple undefined references to chromium_jpeg_* + # "re2" # fails with linker errors + # "ffmpeg" # https://crbug.com/731766 + # "harfbuzz-ng" # in versions over 63 harfbuzz and freetype are being built together + # so we can't build with one from system and other from source + ]; + + opusWithCustomModes = libopus.override { + withCustomModes = true; + }; + + defaultDependencies = [ + bzip2 flac speex opusWithCustomModes + libevent expat libjpeg snappy + libpng libcap + xdg_utils yasm minizip libwebp + libusb1 re2 zlib + ffmpeg libxslt libxml2 + # harfbuzz # in versions over 63 harfbuzz and freetype are being built together + # so we can't build with one from system and other from source + ]; + + # build paths and release info + packageName = extraAttrs.packageName or extraAttrs.name; + buildType = "Release"; + buildPath = "out/${buildType}"; + libExecPath = "$out/libexec/${packageName}"; + + versionRange = min-version: upto-version: + let inherit (upstream-info) version; + result = versionAtLeast version min-version && versionOlder version upto-version; + stable-version = (import ./upstream-info.nix).stable.version; + in if versionAtLeast stable-version upto-version + then warn "chromium: stable version ${stable-version} is newer than a patchset bounded at ${upto-version}. You can safely delete it." + result + else result; + + ungoogler = + let versionEntry = (import ./ungoogled-src.nix)."${upstream-info.version}"; + in ungoogled-chromium { + inherit (versionEntry) rev sha256; + }; + base = rec { + name = "${packageName}-unwrapped-${version}"; + inherit (upstream-info) channel version; + inherit packageName buildType buildPath; + + src = upstream-info.main; + + nativeBuildInputs = [ + ninja which python2Packages.python perl pkgconfig + python2Packages.ply python2Packages.jinja2 nodejs + gnutar + ] ++ optional (versionAtLeast version "83") python2Packages.setuptools; + + buildInputs = defaultDependencies ++ [ + nspr nss systemd + utillinux alsaLib + bison gperf kerberos + glib gtk3 dbus-glib + libXScrnSaver libXcursor libXtst libGLU libGL + pciutils protobuf speechd libXdamage at-spi2-core + jre + ] ++ optional useVaapi libva + ++ optional gnomeKeyringSupport libgnome-keyring3 + ++ optionals gnomeSupport [ gnome.GConf libgcrypt ] + ++ optionals cupsSupport [ libgcrypt cups ] + ++ optional pulseSupport libpulseaudio + ++ optionals useOzone [ libdrm wayland mesa_drivers libxkbcommon ]; + + patches = [ + ./patches/nix_plugin_paths_68.patch + ./patches/remove-webp-include-69.patch + ./patches/no-build-timestamps.patch + ./patches/widevine-79.patch + ./patches/dont-use-ANGLE-by-default.patch + # Unfortunately, chromium regularly breaks on major updates and + # then needs various patches backported in order to be compiled with GCC. + # Good sources for such patches and other hints: + # - https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/ + # - https://git.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/chromium + # - https://github.com/chromium/chromium/search?q=GCC&s=committer-date&type=Commits + # + # ++ optionals (channel == "dev") [ ( githubPatch "" "0000000000000000000000000000000000000000000000000000000000000000" ) ] + # ++ optional (versionRange "68" "72") ( githubPatch "" "0000000000000000000000000000000000000000000000000000000000000000" ) + ] ++ optionals (useVaapi) ([ # Fixes for the VA-API build: + ./patches/enable-vdpau-support-for-nvidia.patch # https://aur.archlinux.org/cgit/aur.git/tree/vdpau-support.patch?h=chromium-vaapi + ./patches/enable-video-acceleration-on-linux.patch # Can be controlled at runtime (i.e. without rebuilding Chromium) + ] ++ optionals (versionRange "81" "82") [ + (githubPatch "5b2ff215473e0526b5b24aeff4ad90d369b21c75" "0n00vh8wfpn2ay5fqsxcsx0zadnv7mihm72bcvnrfzh75nzbg902") + (githubPatch "98e343ab369e4262511b5fce547728e3e5eefba8" "00wwp653jk0k0yvix00vr7ymgck9dj7fxjwx4nc67ynn84dh6064") + ]); + + postPatch = '' + # We want to be able to specify where the sandbox is via CHROME_DEVEL_SANDBOX + substituteInPlace sandbox/linux/suid/client/setuid_sandbox_host.cc \ + --replace \ + 'return sandbox_binary;' \ + 'return base::FilePath(GetDevelSandboxPath());' + + substituteInPlace services/audio/audio_sandbox_hook_linux.cc \ + --replace \ + '/usr/share/alsa/' \ + '${alsaLib}/share/alsa/' \ + --replace \ + '/usr/lib/x86_64-linux-gnu/gconv/' \ + '${glibc}/lib/gconv/' \ + --replace \ + '/usr/share/locale/' \ + '${glibc}/share/locale/' + + sed -i -e 's@"\(#!\)\?.*xdg-@"\1${xdg_utils}/bin/xdg-@' \ + chrome/browser/shell_integration_linux.cc + + sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${systemd.lib}/lib/\1!' \ + device/udev_linux/udev?_loader.cc + + sed -i -e '/libpci_loader.*Load/s!"\(libpci\.so\)!"${pciutils}/lib/\1!' \ + gpu/config/gpu_info_collector_linux.cc + + sed -i -re 's/([^:])\<(isnan *\()/\1std::\2/g' \ + chrome/browser/ui/webui/engagement/site_engagement_ui.cc + + sed -i -e '/#include/ { + i #include + :l; n; bl + }' gpu/config/gpu_control_list.cc + + # Allow to put extensions into the system-path. + sed -i -e 's,/usr,/run/current-system/sw,' chrome/common/chrome_paths.cc + + patchShebangs . + # use our own nodejs + mkdir -p third_party/node/linux/node-linux-x64/bin + ln -s $(which node) third_party/node/linux/node-linux-x64/bin/node + + # remove unused third-party + # in third_party/crashpad third_party/zlib contains just a header-adapter + for lib in ${toString gnSystemLibraries}; do + find -type f -path "*third_party/$lib/*" \ + \! -path "*third_party/crashpad/crashpad/third_party/zlib/*" \ + \! -path "*third_party/$lib/chromium/*" \ + \! -path "*third_party/$lib/google/*" \ + \! -path "*base/third_party/icu/*" \ + \! -path "*base/third_party/libevent/*" \ + \! -regex '.*\.\(gn\|gni\|isolate\|py\)' \ + -delete + done + '' + optionalString stdenv.isAarch64 '' + substituteInPlace build/toolchain/linux/BUILD.gn \ + --replace 'toolprefix = "aarch64-linux-gnu-"' 'toolprefix = ""' + '' + optionalString stdenv.cc.isClang '' + mkdir -p third_party/llvm-build/Release+Asserts/bin + ln -s ${stdenv.cc}/bin/clang third_party/llvm-build/Release+Asserts/bin/clang + ln -s ${stdenv.cc}/bin/clang++ third_party/llvm-build/Release+Asserts/bin/clang++ + ln -s ${llvmPackages.llvm}/bin/llvm-ar third_party/llvm-build/Release+Asserts/bin/llvm-ar + '' + optionalString ungoogled '' + ${ungoogler}/utils/prune_binaries.py . ${ungoogler}/pruning.list || echo "some errors" + ${ungoogler}/utils/patches.py . ${ungoogler}/patches + ${ungoogler}/utils/domain_substitution.py apply -r ${ungoogler}/domain_regex.list -f ${ungoogler}/domain_substitution.list -c ./ungoogled-domsubcache.tar.gz . + ''; + + gnFlags = mkGnFlags ({ + linux_use_bundled_binutils = false; + use_lld = false; + use_gold = true; + gold_path = "${stdenv.cc}/bin"; + is_debug = false; + + proprietary_codecs = false; + use_sysroot = false; + use_gnome_keyring = gnomeKeyringSupport; + use_gio = gnomeSupport; + # ninja: error: '../../native_client/toolchain/linux_x86/pnacl_newlib/bin/x86_64-nacl-objcopy', + # needed by 'nacl_irt_x86_64.nexe', missing and no known rule to make it + enable_nacl = false; + # Enabling the Widevine component here doesn't affect whether we can + # redistribute the chromium package; the Widevine component is either + # added later in the wrapped -wv build or downloaded from Google. + enable_widevine = true; + use_cups = cupsSupport; + + treat_warnings_as_errors = false; + is_clang = stdenv.cc.isClang; + clang_use_chrome_plugins = false; + blink_symbol_level = 0; + fieldtrial_testing_like_official_build = true; + + # Google API keys, see: + # http://www.chromium.org/developers/how-tos/api-keys + # Note: These are for NixOS/nixpkgs use ONLY. For your own distribution, + # please get your own set of keys. + google_api_key = "AIzaSyDGi15Zwl11UNe6Y-5XW_upsfyw31qwZPI"; + google_default_client_id = "404761575300.apps.googleusercontent.com"; + google_default_client_secret = "9rIFQjfnkykEmqb6FfjJQD1D"; + } // optionalAttrs proprietaryCodecs { + # enable support for the H.264 codec + proprietary_codecs = true; + enable_hangout_services_extension = true; + ffmpeg_branding = "Chrome"; + } // optionalAttrs useVaapi { + use_vaapi = true; + } // optionalAttrs pulseSupport { + use_pulseaudio = true; + link_pulseaudio = true; + } // optionalAttrs useOzone { + use_ozone = true; + ozone_platform_gbm = false; + use_xkbcommon = true; + use_glib = true; + use_gtk = true; + use_system_libwayland = true; + use_system_minigbm = true; + use_system_libdrm = true; + system_wayland_scanner_path = "${wayland}/bin/wayland-scanner"; + } // optionalAttrs ungoogled { + closure_compile = false; + enable_hangout_services_extension = false; + enable_mdns = false; + enable_nacl_nonsfi = false; + enable_one_click_signin = false; + enable_reading_list = false; + enable_remoting = false; + enable_reporting = false; + enable_service_discovery = false; + exclude_unwind_tables = true; + google_api_key = ""; + google_default_client_id = ""; + google_default_client_secret = ""; + optimize_webui = false; + safe_browsing_mode = 0; + use_official_google_api_keys = false; + use_unofficial_version_number = false; + } // (extraAttrs.gnFlags or {})); + + configurePhase = '' + runHook preConfigure + + # This is to ensure expansion of $out. + libExecPath="${libExecPath}" + python build/linux/unbundle/replace_gn_files.py \ + --system-libraries ${toString gnSystemLibraries} + ${gnChromium}/bin/gn gen --args=${escapeShellArg gnFlags} out/Release | tee gn-gen-outputs.txt + + # Fail if `gn gen` contains a WARNING. + grep -o WARNING gn-gen-outputs.txt && echo "Found gn WARNING, exiting nix build" && exit 1 + + runHook postConfigure + ''; + + # Don't spam warnings about unknown warning options. This is useful because + # our Clang is always older than Chromium's and the build logs have a size + # of approx. 25 MB without this option (and this saves e.g. 66 %). + NIX_CFLAGS_COMPILE = "-Wno-unknown-warning-option"; + + buildPhase = let + # Build paralelism: on Hydra the build was frequently running into memory + # exhaustion, and even other users might be running into similar issues. + # -j is halved to avoid memory problems, and -l is slightly increased + # so that the build gets slight preference before others + # (it will often be on "critical path" and at risk of timing out) + buildCommand = target: '' + ninja -C "${buildPath}" \ + -j$(( ($NIX_BUILD_CORES+1) / 2 )) -l$(( $NIX_BUILD_CORES+1 )) \ + "${target}" + ( + source chrome/installer/linux/common/installer.include + PACKAGE=$packageName + MENUNAME="Chromium" + process_template chrome/app/resources/manpage.1.in "${buildPath}/chrome.1" + ) + ''; + targets = extraAttrs.buildTargets or []; + commands = map buildCommand targets; + in concatStringsSep "\n" commands; + + postFixup = '' + # Make sure that libGLESv2 is found by dlopen (if using EGL). + chromiumBinary="$libExecPath/$packageName" + origRpath="$(patchelf --print-rpath "$chromiumBinary")" + patchelf --set-rpath "${libGL}/lib:$origRpath" "$chromiumBinary" + ''; + }; + +# Remove some extraAttrs we supplied to the base attributes already. +in stdenv.mkDerivation (base // removeAttrs extraAttrs [ + "name" "gnFlags" "buildTargets" +]) diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/default.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/default.nix new file mode 100644 index 00000000000..9d6c7fada70 --- /dev/null +++ b/pkgs/applications/networking/browsers/ungoogled-chromium/default.nix @@ -0,0 +1,215 @@ +{ newScope, config, stdenv, llvmPackages_9, llvmPackages_10 +, makeWrapper, ed +, glib, gtk3, gnome3, gsettings-desktop-schemas, gn, fetchgit +, libva ? null +, gcc, nspr, nss, patchelfUnstable, runCommand +, lib + +# package customization +# Note: enable* flags should not require full rebuilds (i.e. only affect the wrapper) +, channel ? "stable" +, gnomeSupport ? false, gnome ? null +, gnomeKeyringSupport ? false +, proprietaryCodecs ? true +, enablePepperFlash ? false +, enableWideVine ? false +, useVaapi ? false # Deprecated, use enableVaapi instead! +, enableVaapi ? false # Disabled by default due to unofficial support and issues on radeon +, ungoogled ? true +, useOzone ? false +, cupsSupport ? true +, pulseSupport ? config.pulseaudio or stdenv.isLinux +, commandLineArgs ? "" +}: + +let + llvmPackages = if channel != "stable" + then llvmPackages_10 + else llvmPackages_9; + stdenv = llvmPackages.stdenv; + + callPackage = newScope chromium; + + chromium = { + inherit stdenv llvmPackages; + + upstream-info = (callPackage ./update.nix {}).getChannel channel; + + mkChromiumDerivation = callPackage ./common.nix ({ + inherit gnome gnomeSupport gnomeKeyringSupport proprietaryCodecs cupsSupport pulseSupport useOzone; + inherit ungoogled; + gnChromium = gn; + } // lib.optionalAttrs (channel != "stable") { + # TODO: Remove after we can update gn for the stable channel (backward incompatible changes): + gnChromium = gn.overrideAttrs (oldAttrs: { + version = "2020-03-23"; + src = fetchgit { + url = "https://gn.googlesource.com/gn"; + rev = "5ed3c9cc67b090d5e311e4bd2aba072173e82db9"; + sha256 = "00y2d35wvqmx9glaqhfb62wdgbfpwr77v0934nnvh9ks71vnsjqy"; + }; + }); + }); + + browser = callPackage ./browser.nix { inherit channel enableWideVine; }; + + plugins = callPackage ./plugins.nix { + inherit enablePepperFlash; + }; + + ungoogled-chromium = callPackage ./ungoogled.nix {}; + }; + + mkrpath = p: "${lib.makeSearchPathOutput "lib" "lib64" p}:${lib.makeLibraryPath p}"; + widevineCdm = let upstream-info = chromium.upstream-info; in stdenv.mkDerivation { + name = "chrome-widevine-cdm"; + + # The .deb file for Google Chrome + src = upstream-info.binary; + + nativeBuildInputs = [ patchelfUnstable ]; + + phases = [ "unpackPhase" "patchPhase" "installPhase" "checkPhase" ]; + + unpackCmd = let + widevineCdmPath = + if upstream-info.channel == "stable" then + "./opt/google/chrome/WidevineCdm" + else if upstream-info.channel == "beta" then + "./opt/google/chrome-beta/WidevineCdm" + else if upstream-info.channel == "dev" then + "./opt/google/chrome-unstable/WidevineCdm" + else + throw "Unknown chromium channel."; + in '' + # Extract just WidevineCdm from upstream's .deb file + ar p "$src" data.tar.xz | tar xJ "${widevineCdmPath}" + + # Move things around so that we don't have to reference a particular + # chrome-* directory later. + mv "${widevineCdmPath}" ./ + + # unpackCmd wants a single output directory; let it take WidevineCdm/ + rm -rf opt + ''; + + doCheck = true; + checkPhase = '' + ! find -iname '*.so' -exec ldd {} + | grep 'not found' + ''; + + PATCH_RPATH = mkrpath [ gcc.cc glib nspr nss ]; + + patchPhase = '' + patchelf --set-rpath "$PATCH_RPATH" _platform_specific/linux_x64/libwidevinecdm.so + ''; + + installPhase = '' + mkdir -p $out/WidevineCdm + cp -a * $out/WidevineCdm/ + ''; + + meta = { + platforms = [ "x86_64-linux" ]; + license = lib.licenses.unfree; + }; + }; + + suffix = if channel != "stable" then "-" + channel else ""; + + sandboxExecutableName = chromium.browser.passthru.sandboxExecutableName; + + version = chromium.browser.version; + + # We want users to be able to enableWideVine without rebuilding all of + # chromium, so we have a separate derivation here that copies chromium + # and adds the unfree WidevineCdm. + chromiumWV = let browser = chromium.browser; in if enableWideVine then + runCommand (browser.name + "-wv") { version = browser.version; } + '' + mkdir -p $out + cp -a ${browser}/* $out/ + chmod u+w $out/libexec/chromium + cp -a ${widevineCdm}/WidevineCdm $out/libexec/chromium/ + '' + else browser; + + optionalVaapiFlags = if useVaapi # TODO: Remove after 20.09: + then throw '' + Chromium's useVaapi was replaced by enableVaapi and you don't need to pass + "--ignore-gpu-blacklist" anymore (also no rebuilds are required anymore). + '' else lib.optionalString + (!enableVaapi) + "--add-flags --disable-accelerated-video-decode --add-flags --disable-accelerated-video-encode"; +in stdenv.mkDerivation { + name = "chromium${suffix}-${version}"; + inherit version; + + buildInputs = [ + makeWrapper ed + + # needed for GSETTINGS_SCHEMAS_PATH + gsettings-desktop-schemas glib gtk3 + + # needed for XDG_ICON_DIRS + gnome3.adwaita-icon-theme + ]; + + outputs = ["out" "sandbox"]; + + buildCommand = let + browserBinary = "${chromiumWV}/libexec/chromium/chromium"; + getWrapperFlags = plugin: "$(< \"${plugin}/nix-support/wrapper-flags\")"; + libPath = stdenv.lib.makeLibraryPath [ libva ]; + + in with stdenv.lib; '' + mkdir -p "$out/bin" + + eval makeWrapper "${browserBinary}" "$out/bin/chromium" \ + --add-flags ${escapeShellArg (escapeShellArg commandLineArgs)} \ + ${optionalVaapiFlags} \ + ${concatMapStringsSep " " getWrapperFlags chromium.plugins.enabled} + + ed -v -s "$out/bin/chromium" << EOF + 2i + + if [ -x "/run/wrappers/bin/${sandboxExecutableName}" ] + then + export CHROME_DEVEL_SANDBOX="/run/wrappers/bin/${sandboxExecutableName}" + else + export CHROME_DEVEL_SANDBOX="$sandbox/bin/${sandboxExecutableName}" + fi + + '' + lib.optionalString (libPath != "") '' + # To avoid loading .so files from cwd, LD_LIBRARY_PATH here must not + # contain an empty section before or after a colon. + export LD_LIBRARY_PATH="\$LD_LIBRARY_PATH\''${LD_LIBRARY_PATH:+:}${libPath}" + '' + '' + + # libredirect causes chromium to deadlock on startup + export LD_PRELOAD="\$(echo -n "\$LD_PRELOAD" | tr ':' '\n' | grep -v /lib/libredirect\\\\.so$ | tr '\n' ':')" + + export XDG_DATA_DIRS=$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH\''${XDG_DATA_DIRS:+:}\$XDG_DATA_DIRS + + . + w + EOF + + ln -sv "${chromium.browser.sandbox}" "$sandbox" + + ln -s "$out/bin/chromium" "$out/bin/chromium-browser" + + mkdir -p "$out/share" + for f in '${chromium.browser}'/share/*; do # hello emacs */ + ln -s -t "$out/share/" "$f" + done + ''; + + inherit (chromium.browser) packageName; + meta = chromium.browser.meta; + passthru = { + inherit (chromium) upstream-info browser; + mkDerivation = chromium.mkChromiumDerivation; + inherit sandboxExecutableName; + }; +} diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/patches/dont-use-ANGLE-by-default.patch b/pkgs/applications/networking/browsers/ungoogled-chromium/patches/dont-use-ANGLE-by-default.patch new file mode 100644 index 00000000000..9f14a304eb3 --- /dev/null +++ b/pkgs/applications/networking/browsers/ungoogled-chromium/patches/dont-use-ANGLE-by-default.patch @@ -0,0 +1,26 @@ +A field trial currently enables the passthrough command decoder, which causes +gl_factory.cc to try kGLImplementationEGLANGLE first, which causes Chromium to fail +to load libGLESv2.so on NixOS. It somehow does not try kGLImplementationDesktopGL, +and so there is no GL support at all. + +Revert to using the validating command decoder, which prevents gl_factory.cc +from touching allowed_impls, allowing it to successfully use kGLImplementationDesktopGL. + +diff --git a/ui/gl/gl_utils.cc b/ui/gl/gl_utils.cc +index 697cbed5fe2d..8419bdb21a2f 100644 +--- a/ui/gl/gl_utils.cc ++++ b/ui/gl/gl_utils.cc +@@ -71,9 +71,10 @@ bool UsePassthroughCommandDecoder(const base::CommandLine* command_line) { + } else if (switch_value == kCmdDecoderValidatingName) { + return false; + } else { +- // Unrecognized or missing switch, use the default. +- return base::FeatureList::IsEnabled( +- features::kDefaultPassthroughCommandDecoder); ++ // Ignore the field trial that enables it; disable it until ++ // gl_factory.cc kGLImplementationEGLANGLE issues are sorted ++ // out on NixOS. ++ return false; + } + } + } diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/patches/enable-vdpau-support-for-nvidia.patch b/pkgs/applications/networking/browsers/ungoogled-chromium/patches/enable-vdpau-support-for-nvidia.patch new file mode 100644 index 00000000000..b5372d1a255 --- /dev/null +++ b/pkgs/applications/networking/browsers/ungoogled-chromium/patches/enable-vdpau-support-for-nvidia.patch @@ -0,0 +1,74 @@ +--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc ++++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc +@@ -641,6 +641,7 @@ void VaapiVideoDecodeAccelerator::AssignPictureBuffers( + // |vpp_vaapi_wrapper_| for VaapiPicture to DownloadFromSurface() the VA's + // internal decoded frame. + if (buffer_allocation_mode_ != BufferAllocationMode::kNone && ++ buffer_allocation_mode_ != BufferAllocationMode::kWrapVdpau && + !vpp_vaapi_wrapper_) { + vpp_vaapi_wrapper_ = VaapiWrapper::Create( + VaapiWrapper::kVideoProcess, VAProfileNone, +@@ -665,7 +666,8 @@ void VaapiVideoDecodeAccelerator::AssignPictureBuffers( + PictureBuffer buffer = buffers[i]; + buffer.set_size(requested_pic_size_); + std::unique_ptr picture = vaapi_picture_factory_->Create( +- (buffer_allocation_mode_ == BufferAllocationMode::kNone) ++ ((buffer_allocation_mode_ == BufferAllocationMode::kNone) || ++ (buffer_allocation_mode_ == BufferAllocationMode::kWrapVdpau)) + ? vaapi_wrapper_ + : vpp_vaapi_wrapper_, + make_context_current_cb_, bind_image_cb_, buffer); +@@ -1093,6 +1095,12 @@ VaapiVideoDecodeAccelerator::GetSupportedProfiles() { + + VaapiVideoDecodeAccelerator::BufferAllocationMode + VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() { ++ // NVIDIA blobs use VDPAU ++ if (VaapiWrapper::GetImplementationType() == VAImplementation::kNVIDIAVDPAU) { ++ LOG(INFO) << "VA-API driver on VDPAU backend"; ++ return BufferAllocationMode::kWrapVdpau; ++ } ++ + // TODO(crbug.com/912295): Enable a better BufferAllocationMode for IMPORT + // |output_mode_| as well. + if (output_mode_ == VideoDecodeAccelerator::Config::OutputMode::IMPORT) +@@ -1105,7 +1113,7 @@ VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() { + // depends on the bitstream and sometimes it's not enough to cover the amount + // of frames needed by the client pipeline (see b/133733739). + // TODO(crbug.com/911754): Enable for VP9 Profile 2. +- if (IsGeminiLakeOrLater() && ++ if (false && IsGeminiLakeOrLater() && + (profile_ == VP9PROFILE_PROFILE0 || profile_ == VP8PROFILE_ANY)) { + // Add one to the reference frames for the one being currently egressed, and + // an extra allocation for both |client_| and |decoder_|, see +--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.h ++++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.h +@@ -204,6 +204,7 @@ class MEDIA_GPU_EXPORT VaapiVideoDecodeAccelerator + // Using |client_|s provided PictureBuffers and as many internally + // allocated. + kNormal, ++ kWrapVdpau, + }; + + // Decides the concrete buffer allocation mode, depending on the hardware +--- a/media/gpu/vaapi/vaapi_wrapper.cc ++++ b/media/gpu/vaapi/vaapi_wrapper.cc +@@ -131,6 +131,9 @@ media::VAImplementation VendorStringToImplementationType( + } else if (base::StartsWith(va_vendor_string, "Intel iHD driver", + base::CompareCase::SENSITIVE)) { + return media::VAImplementation::kIntelIHD; ++ } else if (base::StartsWith(va_vendor_string, "Splitted-Desktop Systems VDPAU", ++ base::CompareCase::SENSITIVE)) { ++ return media::VAImplementation::kNVIDIAVDPAU; + } + return media::VAImplementation::kOther; + } +--- a/media/gpu/vaapi/vaapi_wrapper.h ++++ b/media/gpu/vaapi/vaapi_wrapper.h +@@ -79,6 +79,7 @@ enum class VAImplementation { + kIntelIHD, + kOther, + kInvalid, ++ kNVIDIAVDPAU, + }; + + // This class handles VA-API calls and ensures proper locking of VA-API calls diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/patches/enable-video-acceleration-on-linux.patch b/pkgs/applications/networking/browsers/ungoogled-chromium/patches/enable-video-acceleration-on-linux.patch new file mode 100644 index 00000000000..bd278633f67 --- /dev/null +++ b/pkgs/applications/networking/browsers/ungoogled-chromium/patches/enable-video-acceleration-on-linux.patch @@ -0,0 +1,48 @@ +From b2144fd28e09cd52e7a88a62a9d9b54cf9922f9f Mon Sep 17 00:00:00 2001 +From: Michael Weiss +Date: Tue, 14 Apr 2020 14:16:10 +0200 +Subject: [PATCH] Enable accelerated video decode on Linux + +This will enable accelerated video decode on Linux by default (i.e. +without "--ignore-gpu-blacklist"), but on NixOS we'll provide +"--disable-accelerated-video-decode" and +"--disable-accelerated-video-encode" by default to avoid regressions +(e.g. VA-API doesn't work properly for some radeon drivers). + +Video acceleration can then be enabled via: +chromium.override { enableVaapi = true; } +without rebuilding Chromium. +--- + gpu/config/software_rendering_list.json | 16 ---------------- + 1 file changed, 16 deletions(-) + +diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json +index 22712bdbf38f..a06dd19a50e4 100644 +--- a/gpu/config/software_rendering_list.json ++++ b/gpu/config/software_rendering_list.json +@@ -336,22 +336,6 @@ + ] + }, + { +- "id": 48, +- "description": "Accelerated video decode is unavailable on Linux", +- "cr_bugs": [137247, 1032907], +- "os": { +- "type": "linux" +- }, +- "exceptions": [ +- { +- "machine_model_name": ["Chromecast"] +- } +- ], +- "features": [ +- "accelerated_video_decode" +- ] +- }, +- { + "id": 50, + "description": "Disable VMware software renderer on older Mesa", + "cr_bugs": [145531, 332596, 571899, 629434], +-- +2.11.0 + diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/patches/nix_plugin_paths_68.patch b/pkgs/applications/networking/browsers/ungoogled-chromium/patches/nix_plugin_paths_68.patch new file mode 100644 index 00000000000..da6a4c92b46 --- /dev/null +++ b/pkgs/applications/networking/browsers/ungoogled-chromium/patches/nix_plugin_paths_68.patch @@ -0,0 +1,61 @@ +diff --git a/chrome/common/chrome_paths.cc b/chrome/common/chrome_paths.cc +index f4e119d..d9775bd 100644 +--- a/chrome/common/chrome_paths.cc ++++ b/chrome/common/chrome_paths.cc +@@ -68,21 +68,14 @@ static base::LazyInstance + g_invalid_specified_user_data_dir = LAZY_INSTANCE_INITIALIZER; + + // Gets the path for internal plugins. +-bool GetInternalPluginsDirectory(base::FilePath* result) { +-#if defined(OS_MACOSX) +- // If called from Chrome, get internal plugins from a subdirectory of the +- // framework. +- if (base::mac::AmIBundled()) { +- *result = chrome::GetFrameworkBundlePath(); +- DCHECK(!result->empty()); +- *result = result->Append("Internet Plug-Ins"); +- return true; +- } +- // In tests, just look in the module directory (below). +-#endif +- +- // The rest of the world expects plugins in the module directory. +- return base::PathService::Get(base::DIR_MODULE, result); ++bool GetInternalPluginsDirectory(base::FilePath* result, ++ const std::string& ident) { ++ std::string full_env = std::string("NIX_CHROMIUM_PLUGIN_PATH_") + ident; ++ const char* value = getenv(full_env.c_str()); ++ if (value == NULL) ++ return base::PathService::Get(base::DIR_MODULE, result); ++ else ++ *result = base::FilePath(value); + } + + // Gets the path for bundled implementations of components. Note that these +@@ -272,7 +265,7 @@ bool PathProvider(int key, base::FilePath* result) { + create_dir = true; + break; + case chrome::DIR_INTERNAL_PLUGINS: +- if (!GetInternalPluginsDirectory(&cur)) ++ if (!GetInternalPluginsDirectory(&cur, "ALL")) + return false; + break; + case chrome::DIR_COMPONENTS: +@@ -280,7 +273,7 @@ bool PathProvider(int key, base::FilePath* result) { + return false; + break; + case chrome::DIR_PEPPER_FLASH_PLUGIN: +- if (!GetInternalPluginsDirectory(&cur)) ++ if (!GetInternalPluginsDirectory(&cur, "PEPPERFLASH")) + return false; + cur = cur.Append(kPepperFlashBaseDirectory); + break; +@@ -358,7 +351,7 @@ bool PathProvider(int key, base::FilePath* result) { + cur = cur.DirName(); + } + #else +- if (!GetInternalPluginsDirectory(&cur)) ++ if (!GetInternalPluginsDirectory(&cur, "PNACL")) + return false; + #endif + cur = cur.Append(FILE_PATH_LITERAL("pnacl")); diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/patches/no-build-timestamps.patch b/pkgs/applications/networking/browsers/ungoogled-chromium/patches/no-build-timestamps.patch new file mode 100644 index 00000000000..6b788f43d29 --- /dev/null +++ b/pkgs/applications/networking/browsers/ungoogled-chromium/patches/no-build-timestamps.patch @@ -0,0 +1,17 @@ +--- chromium-70.0.3538.67/build/compute_build_timestamp.py.orig 2018-11-02 16:00:34.368933077 +0200 ++++ chromium-70.0.3538.67/build/compute_build_timestamp.py 2018-11-08 04:06:21.658105129 +0200 +@@ -94,6 +94,14 @@ + 'build_type', help='The type of build', choices=('official', 'default')) + args = argument_parser.parse_args() + ++ # I don't trust LASTCHANGE magic, and I definelly want something deterministic here ++ SOURCE_DATE_EPOCH = os.getenv("SOURCE_DATE_EPOCH", None) ++ if SOURCE_DATE_EPOCH is not None: ++ print(SOURCE_DATE_EPOCH) ++ return 0 ++ else: ++ raise RuntimeError("SOURCE_DATE_EPOCH not set") ++ + # The mtime of the revision in build/util/LASTCHANGE is stored in a file + # next to it. Read it, to get a deterministic time close to "now". + # That date is then modified as described at the top of the file so that diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/patches/remove-webp-include-69.patch b/pkgs/applications/networking/browsers/ungoogled-chromium/patches/remove-webp-include-69.patch new file mode 100644 index 00000000000..07572cf7ee9 --- /dev/null +++ b/pkgs/applications/networking/browsers/ungoogled-chromium/patches/remove-webp-include-69.patch @@ -0,0 +1,11 @@ +--- a/third_party/blink/renderer/platform/image-encoders/image_encoder.cc ++++ b/third_party/blink/renderer/platform/image-encoders/image_encoder.cc +@@ -13,7 +13,7 @@ + + #include "jpeglib.h" // for JPEG_MAX_DIMENSION + +-#include "third_party/libwebp/src/webp/encode.h" // for WEBP_MAX_DIMENSION ++#define WEBP_MAX_DIMENSION 16383 + + namespace blink { + diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/patches/widevine-79.patch b/pkgs/applications/networking/browsers/ungoogled-chromium/patches/widevine-79.patch new file mode 100644 index 00000000000..32f0ae2fb5e --- /dev/null +++ b/pkgs/applications/networking/browsers/ungoogled-chromium/patches/widevine-79.patch @@ -0,0 +1,13 @@ +diff --git a/third_party/widevine/cdm/BUILD.gn b/third_party/widevine/cdm/BUILD.gn +index ed0e2f5208b..5b431a030d5 100644 +--- a/third_party/widevine/cdm/BUILD.gn ++++ b/third_party/widevine/cdm/BUILD.gn +@@ -14,7 +14,7 @@ buildflag_header("buildflags") { + + flags = [ + "ENABLE_WIDEVINE=$enable_widevine", +- "BUNDLE_WIDEVINE_CDM=$bundle_widevine_cdm", ++ "BUNDLE_WIDEVINE_CDM=true", + "ENABLE_WIDEVINE_CDM_COMPONENT=$enable_widevine_cdm_component", + ] + } diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/plugins.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/plugins.nix new file mode 100644 index 00000000000..1dd9baa628a --- /dev/null +++ b/pkgs/applications/networking/browsers/ungoogled-chromium/plugins.nix @@ -0,0 +1,93 @@ +{ stdenv, gcc +, jshon +, glib +, nspr +, nss +, fetchzip +, patchelfUnstable +, enablePepperFlash ? false + +, upstream-info +}: + +with stdenv.lib; + +let + mkrpath = p: "${makeSearchPathOutput "lib" "lib64" p}:${makeLibraryPath p}"; + + # Generate a shell fragment that emits flags appended to the + # final makeWrapper call for wrapping the browser's main binary. + # + # Note that this is shell-escaped so that only the variable specified + # by the "output" attribute is substituted. + mkPluginInfo = { output ? "out", allowedVars ? [ output ] + , flags ? [], envVars ? {} + }: let + shSearch = ["'"] ++ map (var: "@${var}@") allowedVars; + shReplace = ["'\\''"] ++ map (var: "'\"\${${var}}\"'") allowedVars; + # We need to triple-escape "val": + # * First because makeWrapper doesn't do any quoting of its arguments by + # itself. + # * Second because it's passed to the makeWrapper call separated by IFS but + # not by the _real_ arguments, for example the Widevine plugin flags + # contain spaces, so they would end up as separate arguments. + # * Third in order to be correctly quoted for the "echo" call below. + shEsc = val: "'${replaceStrings ["'"] ["'\\''"] val}'"; + mkSh = val: "'${replaceStrings shSearch shReplace (shEsc val)}'"; + mkFlag = flag: ["--add-flags" (shEsc flag)]; + mkEnvVar = key: val: ["--set" (shEsc key) (shEsc val)]; + envList = mapAttrsToList mkEnvVar envVars; + quoted = map mkSh (flatten ((map mkFlag flags) ++ envList)); + in '' + mkdir -p "''$${output}/nix-support" + echo ${toString quoted} > "''$${output}/nix-support/wrapper-flags" + ''; + + flash = stdenv.mkDerivation rec { + pname = "flashplayer-ppapi"; + version = "32.0.0.363"; + + src = fetchzip { + url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz"; + sha256 = "0znk8an892mykgbz56hyv3gz65vc9mhb3vn96c6bsvicwl1fn460"; + stripRoot = false; + }; + + patchPhase = '' + chmod +x libpepflashplayer.so + patchelf --set-rpath "${mkrpath [ gcc.cc ]}" libpepflashplayer.so + ''; + + doCheck = true; + checkPhase = '' + ! find -iname '*.so' -exec ldd {} + | grep 'not found' + ''; + + installPhase = '' + flashVersion="$( + "${jshon}/bin/jshon" -F manifest.json -e version -u + )" + + install -vD libpepflashplayer.so "$out/lib/libpepflashplayer.so" + + ${mkPluginInfo { + allowedVars = [ "out" "flashVersion" ]; + flags = [ + "--ppapi-flash-path=@out@/lib/libpepflashplayer.so" + "--ppapi-flash-version=@flashVersion@" + ]; + }} + ''; + + dontStrip = true; + + meta = { + license = stdenv.lib.licenses.unfree; + maintainers = with stdenv.lib.maintainers; [ taku0 ]; + platforms = platforms.x86_64; + }; + }; + +in { + enabled = optional enablePepperFlash flash; +} diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled-src.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled-src.nix new file mode 100644 index 00000000000..f6f3c06e937 --- /dev/null +++ b/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled-src.nix @@ -0,0 +1,6 @@ +{ + "81.0.4044.122" = { + rev = "81.0.4044.122-2"; + sha256 = "0bbr4a2gkgm3ykdgpj8x58sd3dwam6qkifhzfs2997681g7b2v2q"; + }; +} diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled.nix new file mode 100644 index 00000000000..17418c90af4 --- /dev/null +++ b/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled.nix @@ -0,0 +1,42 @@ +{ stdenv +, fetchFromGitHub +, python3Packages +, makeWrapper +, patch +}: +{ rev +, sha256 +}: + +stdenv.mkDerivation rec { + name = "ungoogled-chromium-${version}"; + + version = rev; + + src = fetchFromGitHub { + owner = "Eloston"; + repo = "ungoogled-chromium"; + inherit rev sha256; + }; + + dontBuild = true; + + buildInputs = [ + python3Packages.python + patch + ]; + + nativeBuildInputs = [ + makeWrapper + ]; + + patchPhase = '' + sed -i '/chromium-widevine/d' patches/series + ''; + + installPhase = '' + mkdir $out + cp -R * $out/ + wrapProgram $out/utils/patches.py --add-flags "apply" --prefix PATH : "${patch}/bin" + ''; +} diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/update.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/update.nix new file mode 100644 index 00000000000..6dff17c69dd --- /dev/null +++ b/pkgs/applications/networking/browsers/ungoogled-chromium/update.nix @@ -0,0 +1,271 @@ +let maybePkgs = import ../../../../../. {}; in + +{ stdenv ? maybePkgs.stdenv +, runCommand ? maybePkgs.runCommand +, fetchurl ? maybePkgs.fetchurl +, writeText ? maybePkgs.writeText +, curl ? maybePkgs.curl +, cacert ? maybePkgs.cacert +, nix ? maybePkgs.nix +}: + +let + inherit (stdenv) lib; + + sources = if builtins.pathExists ./upstream-info.nix + then import ./upstream-info.nix + else {}; + + bucketURL = "https://commondatastorage.googleapis.com/" + + "chromium-browser-official"; + + mkVerURL = version: "${bucketURL}/chromium-${version}.tar.xz"; + + debURL = "https://dl.google.com/linux/chrome/deb/pool/main/g"; + + getDebURL = channelName: version: arch: mirror: let + packageSuffix = if channelName == "dev" then "unstable" else channelName; + packageName = "google-chrome-${packageSuffix}"; + in "${mirror}/${packageName}/${packageName}_${version}-1_${arch}.deb"; + + # Untrusted mirrors, don't try to update from them! + debMirrors = [ + "http://95.31.35.30/chrome/pool/main/g" + "http://mirror.pcbeta.com/google/chrome/deb/pool/main/g" + "http://repo.fdzh.org/chrome/deb/pool/main/g" + ]; + +in { + getChannel = channel: let + chanAttrs = builtins.getAttr channel sources; + in { + inherit channel; + inherit (chanAttrs) version; + + main = fetchurl { + url = mkVerURL chanAttrs.version; + inherit (chanAttrs) sha256; + }; + + binary = fetchurl (let + mkUrls = arch: let + mkURLForMirror = getDebURL channel chanAttrs.version arch; + in map mkURLForMirror ([ debURL ] ++ debMirrors); + in if stdenv.is64bit && chanAttrs ? sha256bin64 then { + urls = mkUrls "amd64"; + sha256 = chanAttrs.sha256bin64; + } else if !stdenv.is64bit && chanAttrs ? sha256bin32 then { + urls = mkUrls "i386"; + sha256 = chanAttrs.sha256bin32; + } else throw "No Chrome plugins are available for your architecture."); + }; + + update = let + csv2nix = name: src: import (runCommand "${name}.nix" { + src = builtins.fetchurl src; + } '' + esc() { echo "\"$(echo "$1" | sed -e 's/"\\$/\\&/')\""; } # ohai emacs " + IFS=, read -r -a headings <<< "$(head -n1 "$src")" + echo "[" > "$out" + tail -n +2 "$src" | while IFS=, read -r -a line; do + echo " {" + for idx in "''${!headings[@]}"; do + echo " $(esc "''${headings[idx]}") = $(esc ''${line[$idx]});" + done + echo " }" + done >> "$out" + echo "]" >> "$out" + ''); + + channels = lib.fold lib.recursiveUpdate {} (map (attrs: { + ${attrs.os}.${attrs.channel} = attrs // { + history = let + drvName = "omahaproxy-${attrs.os}.${attrs.channel}-info"; + history = csv2nix drvName "http://omahaproxy.appspot.com/history"; + cond = h: attrs.os == h.os && attrs.channel == h.channel + && lib.versionOlder h.version attrs.current_version; + # Note that this is a *reverse* sort! + sorter = a: b: lib.versionOlder b.version a.version; + sorted = builtins.sort sorter (lib.filter cond history); + in map (lib.flip removeAttrs ["os" "channel"]) sorted; + version = attrs.current_version; + }; + }) (csv2nix "omahaproxy-info" "http://omahaproxy.appspot.com/all?csv=1")); + + /* + XXX: This is essentially the same as: + + builtins.tryEval (builtins.fetchurl url) + + ... except that tryEval on fetchurl isn't working and doesn't catch + errors for fetchurl, so we go for a different approach. + + We only have fixed-output derivations that can have networking access, so + we abuse SHA1 and its weaknesses to forge a fixed-output derivation which + is not so fixed, because it emits different contents that have the same + SHA1 hash. + + Using this method, we can distinguish whether the URL is available or + whether it's not based on the actual content. + + So let's use tryEval as soon as it's working with fetchurl in Nix. + */ + tryFetch = url: let + # SHA1 hash collisions from https://shattered.io/static/shattered.pdf: + collisions = runCommand "sha1-collisions" { + outputs = [ "out" "good" "bad" ]; + base64 = '' + QlpoOTFBWSZTWbL5V5MABl///////9Pv///v////+/////HDdK739/677r+W3/75rUNr4 + Aa/AAAAAAACgEVTRtQDQAaA0AAyGmjTQGmgAAANGgAaMIAYgGgAABo0AAAAAADQAIAGQ0 + MgDIGmjQA0DRk0AaMQ0DQAGIANGgAAGRoNGQMRpo0GIGgBoGQAAIAGQ0MgDIGmjQA0DRk + 0AaMQ0DQAGIANGgAAGRoNGQMRpo0GIGgBoGQAAIAGQ0MgDIGmjQA0DRk0AaMQ0DQAGIAN + GgAAGRoNGQMRpo0GIGgBoGQAAIAGQ0MgDIGmjQA0DRk0AaMQ0DQAGIANGgAAGRoNGQMRp + o0GIGgBoGQAABVTUExEZATTICnkxNR+p6E09JppoyamjGhkm0ammIyaekbUejU9JiGnqZ + qaaDxJ6m0JkZMQ2oaYmJ6gxqMyE2TUzJqfItligtJQJfYbl9Zy9QjQuB5mHQRdSSXCCTH + MgmSDYmdOoOmLTBJWiCpOhMQYpQlOYpJjn+wQUJSTCEpOMekaFaaNB6glCC0hKEJdHr6B + mUIHeph7YxS8WJYyGwgWnMTFJBDFSxSCCYljiEk7HZgJzJVDHJxMgY6tCEIIWgsKSlSZ0 + S8GckoIIF+551Ro4RCw260VCEpWJSlpWx/PMrLyVoyhWMAneDilBcUIeZ1j6NCkus0qUC + Wnahhk5KT4GpWMh3vm2nJWjTL9Qg+84iExBJhNKpbV9tvEN265t3fu/TKkt4rXFTsV+Nc + upJXhOhOhJMQQktrqt4K8mSh9M2DAO2X7uXGVL9YQxUtzQmS7uBndL7M6R7vX869VxqPu + renSuHYNq1yTXOfNWLwgvKlRlFYqLCs6OChDp0HuTzCWscmGudLyqUuwVGG75nmyZhKpJ + yOE/pOZyHyrZxGM51DYIN+Jc8yVJgAykxKCEtW55MlfudLg3KG6TtozalunXrroSxUpVL + StWrWLFihMnVpkyZOrQnUrE6xq1CGtJlbAb5ShMbV1CZgqlKC0wCFCpMmUKSEkvFLaZC8 + wHOCVAlvzaJQ/T+XLb5Dh5TNM67p6KZ4e4ZSGyVENx2O27LzrTIteAreTkMZpW95GS0CE + JYhMc4nToTJ0wQhKEyddaLb/rTqmgJSlkpnALxMhlNmuKEpkEkqhKUoEq3SoKUpIQcDgW + lC0rYahMmLuPQ0fHqZaF4v2W8IoJ2EhMhYmSw7qql27WJS+G4rUplToFi2rSv0NSrVvDU + pltQ8Lv6F8pXyxmFBSxiLSxglNC4uvXVKmAtusXy4YXGX1ixedEvXF1aX6t8adYnYCpC6 + rW1ZzdZYlCCxKEv8vpbqdSsXl8v1jCQv0KEPxPTa/5rtWSF1dSgg4z4KjfIMNtgwWoWLE + sRhKxsSA9ji7V5LRPwtumeQ8V57UtFSPIUmtQdOQfseI2Ly1DMtk4Jl8n927w34zrWG6P + i4jzC82js/46Rt2IZoadWxOtMInS2xYmcu8mOw9PLYxQ4bdfFw3ZPf/g2pzSwZDhGrZAl + 9lqky0W+yeanadC037xk496t0Dq3ctfmqmjgie8ln9k6Q0K1krb3dK9el4Xsu44LpGcen + r2eQZ1s1IhOhnE56WnXf0BLWn9Xz15fMkzi4kpVxiTKGEpffErEEMvEeMZhUl6yD1SdeJ + YbxzGNM3ak2TAaglLZlDCVnoM6wV5DRrycwF8Zh/fRsdmhkMfAO1duwknrsFwrzePWeMw + l107DWzymxdQwiSXx/lncnn75jL9mUzw2bUDqj20LTgtawxK2SlQg1CCZDQMgSpEqLjRM + sykM9zbSIUqil0zNk7Nu+b5J0DKZlhl9CtpGKgX5uyp0idoJ3we9bSrY7PupnUL5eWiDp + V5mmnNUhOnYi8xyClkLbNmAXyoWk7GaVrM2umkbpqHDzDymiKjetgzTocWNsJ2E0zPcfh + t46J4ipaXGCfF7fuO0a70c82bvqo3HceIcRlshgu73seO8BqlLIap2z5jTOY+T2ucCnBt + Atva3aHdchJg9AJ5YdKHz7LoA3VKmeqxAlFyEnQLBxB2PAhAZ8KvmuR6ELXws1Qr13Nd1 + i4nsp189jqvaNzt+0nEnIaniuP1+/UOZdyfoZh57ku8sYHKdvfW/jYSUks+0rK+qtte+p + y8jWL9cOJ0fV8rrH/t+85/p1z2N67p/ZsZ3JmdyliL7lrNxZUlx0MVIl6PxXOUuGOeArW + 3vuEvJ2beoh7SGyZKHKbR2bBWO1d49JDIcVM6lQtu9UO8ec8pOnXmkcponBPLNM2CwZ9k + NC/4ct6rQkPkQHMcV/8XckU4UJCy+VeTA== + ''; + } '' + echo "$base64" | base64 -d | tar xj + mv good.pdf "$good" + mv bad.pdf "$bad" + touch "$out" + ''; + + cacheVal = let + urlHash = builtins.hashString "sha256" url; + timeSlice = builtins.currentTime / 600; + in "${urlHash}-${toString timeSlice}"; + + in { + success = import (runCommand "check-success" { + result = stdenv.mkDerivation { + name = "tryfetch-${cacheVal}"; + inherit url; + + outputHash = "d00bbe65d80f6d53d5c15da7c6b4f0a655c5a86a"; + outputHashMode = "flat"; + outputHashAlgo = "sha1"; + + nativeBuildInputs = [ curl ]; + preferLocalBuild = true; + + inherit (collisions) good bad; + + buildCommand = '' + if SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt" \ + curl -s -L -f -I "$url" > /dev/null; then + cp "$good" "$out" + else + cp "$bad" "$out" + fi + ''; + + impureEnvVars = lib.fetchers.proxyImpureEnvVars; + }; + inherit (collisions) good; + } '' + if cmp -s "$result" "$good"; then + echo true > "$out" + else + echo false > "$out" + fi + ''); + value = builtins.fetchurl url; + }; + + fetchLatest = channel: let + result = tryFetch (mkVerURL channel.version); + in if result.success then result.value else fetchLatest (channel // { + version = if channel.history != [] + then (lib.head channel.history).version + else throw "Unfortunately there's no older version than " + + "${channel.version} available for channel " + + "${channel.channel} on ${channel.os}."; + history = lib.tail channel.history; + }); + + getHash = path: import (runCommand "gethash.nix" { + inherit path; + nativeBuildInputs = [ nix ]; + } '' + sha256="$(nix-hash --flat --base32 --type sha256 "$path")" + echo "\"$sha256\"" > "$out" + ''); + + isLatest = channel: version: let + ourVersion = sources.${channel}.version or null; + in if ourVersion == null then false + else lib.versionOlder version sources.${channel}.version + || version == sources.${channel}.version; + + # We only support GNU/Linux right now. + linuxChannels = let + genLatest = channelName: channel: let + newUpstream = { + inherit (channel) version; + sha256 = getHash (fetchLatest channel); + }; + keepOld = let + oldChannel = sources.${channelName}; + in { + inherit (oldChannel) version sha256; + } // lib.optionalAttrs (oldChannel ? sha256bin32) { + inherit (oldChannel) sha256bin32; + } // lib.optionalAttrs (oldChannel ? sha256bin64) { + inherit (oldChannel) sha256bin64; + }; + in if isLatest channelName channel.version then keepOld else newUpstream; + in lib.mapAttrs genLatest channels.linux; + + getLinuxFlash = channelName: channel: let + inherit (channel) version; + fetchArch = arch: tryFetch (getDebURL channelName version arch debURL); + packages = lib.genAttrs ["i386" "amd64"] fetchArch; + isNew = arch: attr: !(builtins.hasAttr attr channel) + && packages.${arch}.success; + in channel // lib.optionalAttrs (isNew "i386" "sha256bin32") { + sha256bin32 = getHash (packages.i386.value); + } // lib.optionalAttrs (isNew "amd64" "sha256bin64") { + sha256bin64 = getHash (packages.amd64.value); + }; + + newChannels = lib.mapAttrs getLinuxFlash linuxChannels; + + dumpAttrs = indent: attrs: let + mkVal = val: if lib.isAttrs val then dumpAttrs (indent + 1) val + else "\"${lib.escape ["$" "\\" "\""] (toString val)}\""; + mkIndent = level: lib.concatStrings (builtins.genList (_: " ") level); + mkAttr = key: val: "${mkIndent (indent + 1)}${key} = ${mkVal val};\n"; + attrLines = lib.mapAttrsToList mkAttr attrs; + in "{\n" + (lib.concatStrings attrLines) + (mkIndent indent) + "}"; + in writeText "chromium-new-upstream-info.nix" '' + # This file is autogenerated from update.sh in the same directory. + ${dumpAttrs 0 newChannels} + ''; +} diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/update.sh b/pkgs/applications/networking/browsers/ungoogled-chromium/update.sh new file mode 100755 index 00000000000..ea67a62c107 --- /dev/null +++ b/pkgs/applications/networking/browsers/ungoogled-chromium/update.sh @@ -0,0 +1,4 @@ +#!/bin/sh -e +cd "$(dirname "$0")" +sp="$(nix-build --builders "" -Q --no-out-link update.nix -A update)" +cat "$sp" > upstream-info.nix diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.nix new file mode 100644 index 00000000000..77505b47d85 --- /dev/null +++ b/pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.nix @@ -0,0 +1,18 @@ +# This file is autogenerated from update.sh in the same directory. +{ + beta = { + sha256 = "1s16wl101yabq0l7w0q50lxkr2gn090pcaj6l5sj6g5xvi9lhgbf"; + sha256bin64 = "0k6fsqlpiwp9vds83hb3cg9xf74hqgbfdm3ijyad2rmwc5rqk0ax"; + version = "83.0.4103.14"; + }; + dev = { + sha256 = "0djppzwzpfyyfjb1mhy5wws2379m3wpzyk2x3kw5nd0mdz35hbny"; + sha256bin64 = "1wg55qhfvd5zvigjl6496za81mh9b2c5da53zy07bk8wj91ly8pf"; + version = "84.0.4115.5"; + }; + stable = { + sha256 = "0ahqh3vmzbpai4xwn7qybgw9phc8ssjdvfc7384mxqk9swqgv7qg"; + sha256bin64 = "0gpgim244594m35qwf625blwdqgjbp4qr846wq75a9a9zqwqs05w"; + version = "81.0.4044.122"; + }; +} diff --git a/pkgs/applications/networking/browsers/vimb/default.nix b/pkgs/applications/networking/browsers/vimb/default.nix index 0a72099e653..099d81c99f8 100644 --- a/pkgs/applications/networking/browsers/vimb/default.nix +++ b/pkgs/applications/networking/browsers/vimb/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { editor and also easily configurable during runtime. Vimb is mostly keyboard driven and does not detract you from your daily work. ''; - homepage = https://fanglingsu.github.io/vimb/; + homepage = "https://fanglingsu.github.io/vimb/"; license = stdenv.lib.licenses.gpl3; maintainers = []; platforms = with stdenv.lib.platforms; linux; diff --git a/pkgs/applications/networking/browsers/vivaldi/default.nix b/pkgs/applications/networking/browsers/vivaldi/default.nix index d0e1114bdd3..776ed8f4471 100644 --- a/pkgs/applications/networking/browsers/vivaldi/default.nix +++ b/pkgs/applications/networking/browsers/vivaldi/default.nix @@ -17,11 +17,11 @@ let vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi"; in stdenv.mkDerivation rec { pname = "vivaldi"; - version = "2.11.1811.47-1"; + version = "2.11.1811.52-1"; src = fetchurl { url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}_amd64.deb"; - sha256 = "16fw6v00xy66mxkkq0b4k49jd0wwlyyvxaaml2gglfk7swxy7i02"; + sha256 = "0bq9ggk75xzka2nbrnc7vghq8s7jjy9nbfmyrf51kf0nni1zg1fp"; }; unpackPhase = '' diff --git a/pkgs/applications/networking/browsers/w3m/default.nix b/pkgs/applications/networking/browsers/w3m/default.nix index 373fa43c72c..a15d6844f56 100644 --- a/pkgs/applications/networking/browsers/w3m/default.nix +++ b/pkgs/applications/networking/browsers/w3m/default.nix @@ -91,7 +91,7 @@ in stdenv.mkDerivation rec { LIBS = optionalString x11Support "-lX11"; meta = { - homepage = http://w3m.sourceforge.net/; + homepage = "http://w3m.sourceforge.net/"; description = "A text-mode web browser"; maintainers = [ maintainers.cstrahan ]; platforms = stdenv.lib.platforms.unix; diff --git a/pkgs/applications/networking/browsers/webmacs/default.nix b/pkgs/applications/networking/browsers/webmacs/default.nix index b86ba3c39f0..7dbb6a3c538 100644 --- a/pkgs/applications/networking/browsers/webmacs/default.nix +++ b/pkgs/applications/networking/browsers/webmacs/default.nix @@ -65,8 +65,8 @@ mkDerivationWith python3Packages.buildPythonApplication rec { Based on QtWebEngine and Python 3. Fully customizable in Python. ''; - homepage = https://webmacs.readthedocs.io/en/latest/; - changelog = https://github.com/parkouss/webmacs/blob/master/CHANGELOG.md; + homepage = "https://webmacs.readthedocs.io/en/latest/"; + changelog = "https://github.com/parkouss/webmacs/blob/master/CHANGELOG.md"; license = licenses.gpl3; maintainers = with maintainers; [ jacg ]; platforms = platforms.all; diff --git a/pkgs/applications/networking/c14/default.nix b/pkgs/applications/networking/c14/default.nix index c000a37ff02..98d2f4aa81d 100644 --- a/pkgs/applications/networking/c14/default.nix +++ b/pkgs/applications/networking/c14/default.nix @@ -17,7 +17,7 @@ buildGoPackage rec { meta = with stdenv.lib; { description = "C14 is designed for data archiving & long-term backups."; - homepage = https://www.online.net/en/storage/c14-cold-storage; + homepage = "https://www.online.net/en/storage/c14-cold-storage"; license = licenses.mit; maintainers = with maintainers; [ apeyroux ]; }; diff --git a/pkgs/applications/networking/calls/default.nix b/pkgs/applications/networking/calls/default.nix index 71997ff8ffa..18a9bc0f422 100644 --- a/pkgs/applications/networking/calls/default.nix +++ b/pkgs/applications/networking/calls/default.nix @@ -22,14 +22,14 @@ stdenv.mkDerivation rec { pname = "calls"; - version = "0.1.2"; + version = "0.1.4"; src = fetchFromGitLab { domain = "source.puri.sm"; owner = "Librem5"; repo = "calls"; rev = "v${version}"; - sha256 = "105r631a0rva1k1fa50lravsfk5dd3f0k3gfc7lvpn2jkd99s1g6"; + sha256 = "0715cap3w8gppxlfaynhiqvc2ss512xgykjcpqq8f5syz2776skh"; }; nativeBuildInputs = [ diff --git a/pkgs/applications/networking/cawbird/default.nix b/pkgs/applications/networking/cawbird/default.nix index af8b7241659..c9e6b6f6de0 100644 --- a/pkgs/applications/networking/cawbird/default.nix +++ b/pkgs/applications/networking/cawbird/default.nix @@ -20,14 +20,14 @@ }: stdenv.mkDerivation rec { - version = "1.0.4"; + version = "1.0.5"; pname = "cawbird"; src = fetchFromGitHub { owner = "IBBoard"; repo = "cawbird"; rev = "v${version}"; - sha256 = "sha256:1gqi7bn08b9cjpb0mgs6bk1a2npdfhn56ckps95nck0jyqzfbnir"; + sha256 = "sha256:0prrrkgmnm78sq2c6yvy86qb3lcl51d250q7gvmqili2ffnjmamf"; }; nativeBuildInputs = [ diff --git a/pkgs/applications/networking/charles/default.nix b/pkgs/applications/networking/charles/default.nix index 4c1f7ea7749..11eb24ff703 100644 --- a/pkgs/applications/networking/charles/default.nix +++ b/pkgs/applications/networking/charles/default.nix @@ -47,7 +47,7 @@ let meta = with stdenv.lib; { description = "Web Debugging Proxy"; - homepage = https://www.charlesproxy.com/; + homepage = "https://www.charlesproxy.com/"; maintainers = [ maintainers.kalbasit ]; license = stdenv.lib.licenses.unfree; platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin; diff --git a/pkgs/applications/networking/cluster/argo/default.nix b/pkgs/applications/networking/cluster/argo/default.nix index f02b64e92c8..891d153a09e 100644 --- a/pkgs/applications/networking/cluster/argo/default.nix +++ b/pkgs/applications/networking/cluster/argo/default.nix @@ -41,7 +41,7 @@ buildGoModule rec { meta = with lib; { description = "Container native workflow engine for Kubernetes"; - homepage = https://github.com/argoproj/argo; + homepage = "https://github.com/argoproj/argo"; license = licenses.asl20; maintainers = with maintainers; [ groodt ]; platforms = platforms.unix; diff --git a/pkgs/applications/networking/cluster/chronos/default.nix b/pkgs/applications/networking/cluster/chronos/default.nix index 78be19cd81e..e2452b2b441 100644 --- a/pkgs/applications/networking/cluster/chronos/default.nix +++ b/pkgs/applications/networking/cluster/chronos/default.nix @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { ''; meta = with lib; { - homepage = http://airbnb.github.io/chronos; + homepage = "http://airbnb.github.io/chronos"; license = licenses.asl20; description = "Fault tolerant job scheduler for Mesos which handles dependencies and ISO8601 based schedules"; maintainers = with maintainers; [ offline ]; diff --git a/pkgs/applications/networking/cluster/click/default.nix b/pkgs/applications/networking/cluster/click/default.nix index ef90c0cde32..2c0e73fb30d 100644 --- a/pkgs/applications/networking/cluster/click/default.nix +++ b/pkgs/applications/networking/cluster/click/default.nix @@ -19,7 +19,7 @@ buildRustPackage rec { meta = with stdenv.lib; { description = ''The "Command Line Interactive Controller for Kubernetes"''; - homepage = https://github.com/databricks/click; + homepage = "https://github.com/databricks/click"; license = [ licenses.asl20 ]; maintainers = [ maintainers.mbode ]; platforms = [ "x86_64-linux" "x86_64-darwin" ]; diff --git a/pkgs/applications/networking/cluster/cni/default.nix b/pkgs/applications/networking/cluster/cni/default.nix index 88dbd177da0..49d3aaa298d 100644 --- a/pkgs/applications/networking/cluster/cni/default.nix +++ b/pkgs/applications/networking/cluster/cni/default.nix @@ -1,21 +1,22 @@ -{ stdenv, fetchFromGitHub, buildGoPackage }: +{ lib, fetchFromGitHub, buildGoPackage }: buildGoPackage rec { pname = "cni"; - version = "0.7.0"; + version = "0.7.1"; src = fetchFromGitHub { owner = "containernetworking"; repo = pname; rev = "v${version}"; - sha256 = "15ad323dw44k82bfx9r8w5q2kn7jix60p9v4ciyzx2p5pip36wp8"; + sha256 = "02qn1br8164d99978acalisy1sx294g1axnii4yh1wji0fc735xz"; }; goPackagePath = "github.com/containernetworking/cni"; - meta = with stdenv.lib; { + + meta = with lib; { description = "Container Network Interface - networking for Linux containers"; license = licenses.asl20; - homepage = https://github.com/containernetworking/cni; + homepage = "https://github.com/containernetworking/cni"; maintainers = with maintainers; [ offline vdemeester ]; platforms = [ "x86_64-linux" ]; }; diff --git a/pkgs/applications/networking/cluster/cni/plugins-deps.nix b/pkgs/applications/networking/cluster/cni/plugins-deps.nix deleted file mode 100644 index a6bbd333be4..00000000000 --- a/pkgs/applications/networking/cluster/cni/plugins-deps.nix +++ /dev/null @@ -1,210 +0,0 @@ -# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix) -[ - { - goPackagePath = "github.com/Microsoft/go-winio"; - fetch = { - type = "git"; - url = "https://github.com/Microsoft/go-winio"; - rev = "v0.4.11"; - sha256 = "14y1gryr3pb3zy09v2g8dh89m363rfd9sch0wgbabh531hfx72vn"; - }; - } - { - goPackagePath = "github.com/Microsoft/hcsshim"; - fetch = { - type = "git"; - url = "https://github.com/Microsoft/hcsshim"; - rev = "v0.7.4"; - sha256 = "0hky9p6xvkkx2jfkd4fy2d6iaikvlzalyw67gypyqyxygf2hsshg"; - }; - } - { - goPackagePath = "github.com/alexflint/go-filemutex"; - fetch = { - type = "git"; - url = "https://github.com/alexflint/go-filemutex"; - rev = "72bdc8eae2ae"; - sha256 = "082y6y9zv40q3kaqvsv6fyaw2fc42j0sn9z0dl9rbiz4szixj3c4"; - }; - } - { - goPackagePath = "github.com/buger/jsonparser"; - fetch = { - type = "git"; - url = "https://github.com/buger/jsonparser"; - rev = "f4dd9f5a6b44"; - sha256 = "12qa2n33s7yz88ywpr3k9kg3b4gm6rqgnv28iyikyxw8h5jascz5"; - }; - } - { - goPackagePath = "github.com/containernetworking/cni"; - fetch = { - type = "git"; - url = "https://github.com/containernetworking/cni"; - rev = "v0.7.0"; - sha256 = "15ad323dw44k82bfx9r8w5q2kn7jix60p9v4ciyzx2p5pip36wp8"; - }; - } - { - goPackagePath = "github.com/coreos/go-iptables"; - fetch = { - type = "git"; - url = "https://github.com/coreos/go-iptables"; - rev = "v0.4.1"; - sha256 = "0id1npqw3rd5rrkslf6i9yy6lpmd7l5qcglln38g85ylq7inysyi"; - }; - } - { - goPackagePath = "github.com/coreos/go-systemd"; - fetch = { - type = "git"; - url = "https://github.com/coreos/go-systemd"; - rev = "39ca1b05acc7"; - sha256 = "1kzqrrzqspa5qm7kwslxl3m16lqzns23c24rv474ajzwmj3ixmx1"; - }; - } - { - goPackagePath = "github.com/d2g/dhcp4"; - fetch = { - type = "git"; - url = "https://github.com/d2g/dhcp4"; - rev = "f0e4d29ff023"; - sha256 = "07gn9bjvnlfz2jv9wdq3gxxxm9lpwgrwk8z65072jdrz9rs9izpr"; - }; - } - { - goPackagePath = "github.com/d2g/dhcp4client"; - fetch = { - type = "git"; - url = "https://github.com/d2g/dhcp4client"; - rev = "bed07e1bc5b8"; - sha256 = "0kyjalv1kah7sk3i96abg71cgy5s9kzpff2zc7mwj69vicbj7mi3"; - }; - } - { - goPackagePath = "github.com/d2g/dhcp4server"; - fetch = { - type = "git"; - url = "https://github.com/d2g/dhcp4server"; - rev = "477b11cea4dc"; - sha256 = "010dpw6cxrsm6dm49w1q6qpz5xz3lbi5viz6wywxk49fxvnzmx9l"; - }; - } - { - goPackagePath = "github.com/godbus/dbus"; - fetch = { - type = "git"; - url = "https://github.com/godbus/dbus"; - rev = "885f9cc04c9c"; - sha256 = "0wjpaj4vr5lvpnwc5faf3qizd7zd2v9yq0fm0558wap1hiyqb8x8"; - }; - } - { - goPackagePath = "github.com/j-keck/arping"; - fetch = { - type = "git"; - url = "https://github.com/j-keck/arping"; - rev = "2cf9dc699c56"; - sha256 = "1bid8mpx3j4546ni0a6q5xyz7hb854g95qnxqmg5jzs9vrcird3c"; - }; - } - { - goPackagePath = "github.com/juju/errors"; - fetch = { - type = "git"; - url = "https://github.com/juju/errors"; - rev = "22422dad46e1"; - sha256 = "1766ys24y9qgngaqbx0g84lmh54b3369v8hk5fa1k8si2d34fxas"; - }; - } - { - goPackagePath = "github.com/mattn/go-shellwords"; - fetch = { - type = "git"; - url = "https://github.com/mattn/go-shellwords"; - rev = "v1.0.3"; - sha256 = "1pg7pl25wvpl2dbpyrv9p1r7prnqimxlf6136vn0dfm54j2x4mnr"; - }; - } - { - goPackagePath = "github.com/onsi/ginkgo"; - fetch = { - type = "git"; - url = "https://github.com/onsi/ginkgo"; - rev = "7f8ab55aaf3b"; - sha256 = "0nas6wqdym4jx42kw9wj80b58r69k9qhnvglz009lj34g5gba7rw"; - }; - } - { - goPackagePath = "github.com/onsi/gomega"; - fetch = { - type = "git"; - url = "https://github.com/onsi/gomega"; - rev = "2152b45fa28a"; - sha256 = "0amjlkawp84mmdqjgdamf93p1546cla6h4wwrx7hf5r862r2qcw2"; - }; - } - { - goPackagePath = "github.com/safchain/ethtool"; - fetch = { - type = "git"; - url = "https://github.com/safchain/ethtool"; - rev = "42ed695e3de8"; - sha256 = "0n5hkrzc1bh46nidcssx4539kvcmgj501v3kzh2pljpg27509daj"; - }; - } - { - goPackagePath = "github.com/sirupsen/logrus"; - fetch = { - type = "git"; - url = "https://github.com/sirupsen/logrus"; - rev = "v1.0.6"; - sha256 = "029irw2lsbqi944gdrbkwdw0m2794sqni4g21gsnmz142hbzds8c"; - }; - } - { - goPackagePath = "github.com/vishvananda/netlink"; - fetch = { - type = "git"; - url = "https://github.com/vishvananda/netlink"; - rev = "023a6dafdcdf"; - sha256 = "1i5q8r8rg7lxzvq2vhbf25lrkzdlgficfv0bxg9rf7cgg6z819sn"; - }; - } - { - goPackagePath = "github.com/vishvananda/netns"; - fetch = { - type = "git"; - url = "https://github.com/vishvananda/netns"; - rev = "13995c7128cc"; - sha256 = "1zk6w8158qi4niva5rijchbv9ixgmijsgqshh54wdaav4xrhjshn"; - }; - } - { - goPackagePath = "golang.org/x/crypto"; - fetch = { - type = "git"; - url = "https://go.googlesource.com/crypto"; - rev = "7c1a557ab941"; - sha256 = "1f1q9mby8m7ws3gbj90v0prhnf4g2sgf74azmw31kzwd6azlar3m"; - }; - } - { - goPackagePath = "golang.org/x/net"; - fetch = { - type = "git"; - url = "https://go.googlesource.com/net"; - rev = "49bb7cea24b1"; - sha256 = "111q4qm3hcjvzvyv9y5rz8ydnyg48rckcygxqy6gv63q618wz6gn"; - }; - } - { - goPackagePath = "golang.org/x/sys"; - fetch = { - type = "git"; - url = "https://go.googlesource.com/sys"; - rev = "66b7b1311ac8"; - sha256 = "00ny4r2bbj6rz939iy9g699acqydq7rfi6r6awn25w9i2dld9m13"; - }; - } -] diff --git a/pkgs/applications/networking/cluster/cni/plugins.nix b/pkgs/applications/networking/cluster/cni/plugins.nix index 39c3b9f6507..d457ddd98bf 100644 --- a/pkgs/applications/networking/cluster/cni/plugins.nix +++ b/pkgs/applications/networking/cluster/cni/plugins.nix @@ -1,24 +1,22 @@ -{ stdenv, lib, fetchFromGitHub, go, removeReferencesTo, buildGoPackage }: +{ lib, fetchFromGitHub, buildGoPackage }: + buildGoPackage rec { pname = "cni-plugins"; - version = "0.8.4"; + version = "0.8.5"; src = fetchFromGitHub { owner = "containernetworking"; repo = "plugins"; rev = "v${version}"; - sha256 = "02kz6y3klhbriybsskn4hmldwli28cycnp2klsm2x0y9c73iczdp"; + sha256 = "17c8pvpn0dpda6ah7irr9hhd8sk7mnm32zv72nc5pxg1xvfpaipi"; }; - goDeps = ./plugins-deps.nix; goPackagePath = "github.com/containernetworking/plugins"; + subPackages = [ - "plugins/meta/bandwidth" - "plugins/meta/firewall" - "plugins/meta/flannel" - "plugins/meta/portmap" - "plugins/meta/sbr" - "plugins/meta/tuning" + "plugins/ipam/dhcp" + "plugins/ipam/host-local" + "plugins/ipam/static" "plugins/main/bridge" "plugins/main/host-device" "plugins/main/ipvlan" @@ -26,15 +24,19 @@ buildGoPackage rec { "plugins/main/macvlan" "plugins/main/ptp" "plugins/main/vlan" - "plugins/ipam/dhcp" - "plugins/ipam/host-local" - "plugins/ipam/static" + "plugins/meta/bandwidth" + "plugins/meta/firewall" + "plugins/meta/flannel" + "plugins/meta/portmap" + "plugins/meta/sbr" + "plugins/meta/tuning" ]; + meta = with lib; { description = "Some standard networking plugins, maintained by the CNI team"; - homepage = https://github.com/containernetworking/plugins; + homepage = "https://github.com/containernetworking/plugins"; license = licenses.asl20; platforms = platforms.linux; - maintainers = with maintainers; [ cstrahan saschagrunert ]; + maintainers = with maintainers; [ cstrahan ] ++ teams.podman.members; }; } diff --git a/pkgs/applications/networking/cluster/docker-machine/default.nix b/pkgs/applications/networking/cluster/docker-machine/default.nix index 115dc3835fc..a801a122374 100644 --- a/pkgs/applications/networking/cluster/docker-machine/default.nix +++ b/pkgs/applications/networking/cluster/docker-machine/default.nix @@ -1,5 +1,5 @@ # This file was generated by go2nix. -{ stdenv, buildGoPackage, fetchFromGitHub }: +{ stdenv, buildGoPackage, fetchFromGitHub, installShellFiles }: buildGoPackage rec { pname = "machine"; @@ -14,17 +14,17 @@ buildGoPackage rec { sha256 = "0xxzxi5v7ji9j2k7kxhi0ah91lfa7b9rg3nywgx0lkv8dlgp8kmy"; }; - postInstall = '' - mkdir -p \ - $bin/share/bash-completion/completions/ \ - $bin/share/zsh/site-functions/ + nativeBuildInputs = [ installShellFiles ]; - cp go/src/github.com/docker/machine/contrib/completion/bash/* $bin/share/bash-completion/completions/ - cp go/src/github.com/docker/machine/contrib/completion/zsh/* $bin/share/zsh/site-functions/ + postInstall = '' + pushd go/src/${goPackagePath}/contrib/completion + installShellCompletion --bash bash/* + installShellCompletion --zsh zsh/* + popd ''; meta = with stdenv.lib; { - homepage = https://docs.docker.com/machine/; + homepage = "https://docs.docker.com/machine/"; description = "Docker Machine is a tool that lets you install Docker Engine on virtual hosts, and manage Docker Engine on the hosts."; license = licenses.asl20; maintainers = with maintainers; [ offline tailhook ]; diff --git a/pkgs/applications/networking/cluster/docker-machine/hyperkit.nix b/pkgs/applications/networking/cluster/docker-machine/hyperkit.nix new file mode 100644 index 00000000000..ec5a79e9ace --- /dev/null +++ b/pkgs/applications/networking/cluster/docker-machine/hyperkit.nix @@ -0,0 +1,23 @@ +{ lib, buildGoModule, minikube }: + +buildGoModule rec { + inherit (minikube) version src nativeBuildInputs buildInputs modSha256 commit; + + pname = "docker-machine-hyperkit"; + + buildPhase = '' + make docker-machine-driver-hyperkit COMMIT=${commit} + ''; + + installPhase = '' + install out/docker-machine-driver-hyperkit -Dt $out/bin + ''; + + meta = with lib; { + homepage = "https://minikube.sigs.k8s.io/docs/drivers/hyperkit"; + description = "HyperKit driver for docker-machine."; + license = licenses.asl20; + maintainers = with maintainers; [ atkinschang ]; + platforms = platforms.darwin; + }; +} diff --git a/pkgs/applications/networking/cluster/docker-machine/kvm.nix b/pkgs/applications/networking/cluster/docker-machine/kvm.nix index de122dd2a5a..9352ba69da8 100644 --- a/pkgs/applications/networking/cluster/docker-machine/kvm.nix +++ b/pkgs/applications/networking/cluster/docker-machine/kvm.nix @@ -19,7 +19,7 @@ buildGoPackage rec { buildInputs = [ libvirt ]; meta = with stdenv.lib; { - homepage = https://github.com/dhiltgen/docker-machine-kvm; + homepage = "https://github.com/dhiltgen/docker-machine-kvm"; description = "KVM driver for docker-machine."; license = licenses.asl20; maintainers = with maintainers; [ offline ]; diff --git a/pkgs/applications/networking/cluster/docker-machine/kvm2.nix b/pkgs/applications/networking/cluster/docker-machine/kvm2.nix index eb2946cec77..6af1bf126b5 100644 --- a/pkgs/applications/networking/cluster/docker-machine/kvm2.nix +++ b/pkgs/applications/networking/cluster/docker-machine/kvm2.nix @@ -1,32 +1,27 @@ -{ stdenv, buildGoModule, libvirt, pkgconfig, minikube }: +{ lib, buildGoModule, minikube }: buildGoModule rec { + inherit (minikube) version src nativeBuildInputs buildInputs modSha256 commit; + pname = "docker-machine-kvm2"; - version = minikube.version; - goPackagePath = "k8s.io/minikube"; - subPackages = [ "cmd/drivers/kvm" ]; - - src = minikube.src; - - modSha256 = minikube.go-modules.outputHash; - - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ libvirt ]; - - preBuild = '' - export buildFlagsArray=(-ldflags="-X k8s.io/minikube/pkg/drivers/kvm/version.VERSION=v${version}") + postPatch = '' + sed -i '/GOARCH=$*/d' Makefile ''; - postInstall = '' - mv $out/bin/kvm $out/bin/docker-machine-driver-kvm2 + buildPhase = '' + make docker-machine-driver-kvm2 COMMIT=${commit} ''; - meta = with stdenv.lib; { - homepage = https://github.com/kubernetes/minikube/blob/master/docs/drivers.md; + installPhase = '' + install out/docker-machine-driver-kvm2 -Dt $out/bin + ''; + + meta = with lib; { + homepage = "https://minikube.sigs.k8s.io/docs/drivers/kvm2"; description = "KVM2 driver for docker-machine."; license = licenses.asl20; - maintainers = with maintainers; [ tadfisher ]; - platforms = platforms.unix; + maintainers = with maintainers; [ tadfisher atkinschang ]; + platforms = platforms.linux; }; } diff --git a/pkgs/applications/networking/cluster/docker-machine/xhyve.nix b/pkgs/applications/networking/cluster/docker-machine/xhyve.nix index 1f1e59a56a4..8c63a70b6d6 100644 --- a/pkgs/applications/networking/cluster/docker-machine/xhyve.nix +++ b/pkgs/applications/networking/cluster/docker-machine/xhyve.nix @@ -30,7 +30,7 @@ buildGoPackage rec { buildInputs = [ Hypervisor vmnet ]; meta = with stdenv.lib; { - homepage = https://github.com/machine-drivers/docker-machine-driver-xhyve; + homepage = "https://github.com/machine-drivers/docker-machine-driver-xhyve"; description = "Xhyve driver for docker-machine."; license = licenses.bsd3; maintainers = with maintainers; [ periklis ]; diff --git a/pkgs/applications/networking/cluster/flink/default.nix b/pkgs/applications/networking/cluster/flink/default.nix index f8c73c65991..3d418f9a47f 100644 --- a/pkgs/applications/networking/cluster/flink/default.nix +++ b/pkgs/applications/networking/cluster/flink/default.nix @@ -44,11 +44,11 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A distributed stream processing framework"; - homepage = https://flink.apache.org; - downloadPage = https://flink.apache.org/downloads.html; + homepage = "https://flink.apache.org"; + downloadPage = "https://flink.apache.org/downloads.html"; license = licenses.asl20; platforms = platforms.all; maintainers = with maintainers; [ mbode ]; - repositories.git = git://git.apache.org/flink.git; + repositories.git = "git://git.apache.org/flink.git"; }; } diff --git a/pkgs/applications/networking/cluster/fluxctl/default.nix b/pkgs/applications/networking/cluster/fluxctl/default.nix index 982add3d517..10991d47cca 100644 --- a/pkgs/applications/networking/cluster/fluxctl/default.nix +++ b/pkgs/applications/networking/cluster/fluxctl/default.nix @@ -2,19 +2,21 @@ buildGoModule rec { pname = "fluxctl"; - version = "1.18.0"; + version = "1.19.0"; src = fetchFromGitHub { owner = "weaveworks"; repo = "flux"; rev = version; - sha256 = "1sk82cnrj5ngcaml54rhh7ak8dg80r25623c4s8p7ybrj1m7krqj"; + sha256 = "1w6ndp0nrpps6pkxnq38hikbnzwahi6j9gn8l0bxd0qkf7cjc5w0"; }; - modSha256 = "0ij5q31a0818nmqsdql1ii6rhq6nb0liplnw509qih8py7dk5xkg"; + modSha256 = "0zwq7n1lggj27j5yxgfplbaccw5fhbm7vm0sja839r1jamrn3ips"; subPackages = [ "cmd/fluxctl" ]; + buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ]; + meta = with stdenv.lib; { description = "CLI client for Flux, the GitOps Kubernetes operator"; homepage = "https://github.com/fluxcd/flux"; diff --git a/pkgs/applications/networking/cluster/habitat/default.nix b/pkgs/applications/networking/cluster/habitat/default.nix index 31184bd68ff..f2f3925fbe4 100644 --- a/pkgs/applications/networking/cluster/habitat/default.nix +++ b/pkgs/applications/networking/cluster/habitat/default.nix @@ -1,27 +1,23 @@ -{ lib, fetchFromGitHub, rustPlatform, pkgconfig -, libsodium, libarchive, openssl }: +{ stdenv, fetchFromGitHub, rustPlatform, pkgconfig +, libsodium, libarchive, openssl, zeromq }: -with rustPlatform; - -buildRustPackage rec { +rustPlatform.buildRustPackage rec { pname = "habitat"; - version = "0.30.2"; + # Newer versions required protobuf, which requires some finesse to get to + # compile with the vendored protobuf crate. + version = "0.90.6"; src = fetchFromGitHub { owner = "habitat-sh"; repo = "habitat"; rev = version; - sha256 = "0pqrm85pd9hqn5fwqjbyyrrfh4k7q9mi9qy9hm8yigk5l8mw44y1"; + sha256 = "0rwi0lkmhlq4i8fba3s9nd9ajhz2dqxzkgfp5i8y0rvbfmhmfd6b"; }; - # Delete this on next update; see #79975 for details - legacyCargoFetcher = true; - - cargoSha256 = "1ahfm5agvabqqqgjsyjb95xxbc7mng1mdyclcakwp1m1qdkxx9p0"; - - buildInputs = [ libsodium libarchive openssl ]; + cargoSha256 = "08sncz0jgsr2s821j3s4bk7d54xqwmnld7m57avavym1xqvsnbmy"; nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ libsodium libarchive openssl zeromq ]; cargoBuildFlags = ["--package hab"]; @@ -32,12 +28,11 @@ buildRustPackage rec { runHook postCheck ''; - meta = with lib; { + meta = with stdenv.lib; { description = "An application automation framework"; - homepage = https://www.habitat.sh; + homepage = "https://www.habitat.sh"; license = licenses.asl20; - maintainers = [ maintainers.rushmorem ]; - platforms = [ "x86_64-linux" "x86_64-darwin" ]; - broken = true; # mark temporary as broken due git dependencies + maintainers = with maintainers; [ rushmorem ]; + platforms = [ "x86_64-linux" ]; }; } diff --git a/pkgs/applications/networking/cluster/helm/default.nix b/pkgs/applications/networking/cluster/helm/default.nix index 88ca9b3da94..deb6d75f12c 100644 --- a/pkgs/applications/networking/cluster/helm/default.nix +++ b/pkgs/applications/networking/cluster/helm/default.nix @@ -2,15 +2,15 @@ buildGoModule rec { pname = "helm"; - version = "3.1.2"; + version = "3.2.0"; src = fetchFromGitHub { owner = "helm"; repo = "helm"; rev = "v${version}"; - sha256 = "0pg5cwgyfb4isy2fn233kj3bdn0i8qqp90yzix0khs5maalpnrk1"; + sha256 = "1x05xnc3czk7vpn9qnfdavdjy5agv800nh7jyqczpiw125l9jfyd"; }; - modSha256 = "0618zzi4x37ahsrazsr82anghhfva8yaryzb3p5d737p3ixbiyv8"; + modSha256 = "000knqwsajlqika4abp3fh721mn1vykcsnv3c1qw0mzffkmzwsqd"; subPackages = [ "cmd/helm" ]; buildFlagsArray = [ "-ldflags=-w -s -X helm.sh/helm/v3/internal/version.version=v${version}" ]; @@ -23,7 +23,7 @@ buildGoModule rec { ''; meta = with stdenv.lib; { - homepage = https://github.com/kubernetes/helm; + homepage = "https://github.com/kubernetes/helm"; description = "A package manager for kubernetes"; license = licenses.asl20; maintainers = with maintainers; [ rlupton20 edude03 saschagrunert Frostman ]; diff --git a/pkgs/applications/networking/cluster/helmfile/default.nix b/pkgs/applications/networking/cluster/helmfile/default.nix index ee7c4ab9cbd..1318ff003de 100644 --- a/pkgs/applications/networking/cluster/helmfile/default.nix +++ b/pkgs/applications/networking/cluster/helmfile/default.nix @@ -1,6 +1,6 @@ { lib, buildGoModule, fetchFromGitHub, makeWrapper, kubernetes-helm, ... }: -let version = "0.102.0"; in +let version = "0.106.3"; in buildGoModule { pname = "helmfile"; @@ -10,12 +10,12 @@ buildGoModule { owner = "roboll"; repo = "helmfile"; rev = "v${version}"; - sha256 = "0v7mhsnhswiqd62wrmkcpzsg9nfi6wvkh9danngs5rqjiz1zffhy"; + sha256 = "0pwkkgdcj9vx6nk574iaqwn074qfpgqd1c44d3kr3xdbac89yfyf"; }; goPackagePath = "github.com/roboll/helmfile"; - modSha256 = "0s7j7jbgr8gdc0s9dnl6zjwkpywqj05xyb7mkcank54kgrz0g5vq"; + modSha256 = "1yv2b44qac0rms66v0qg13wsga0di6hwxa4dh2l0b1xvaf75ysay"; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/applications/networking/cluster/heptio-ark/default.nix b/pkgs/applications/networking/cluster/heptio-ark/default.nix index b9413577b10..aa86dcbeb24 100644 --- a/pkgs/applications/networking/cluster/heptio-ark/default.nix +++ b/pkgs/applications/networking/cluster/heptio-ark/default.nix @@ -13,11 +13,11 @@ buildGoPackage rec { sha256 = "18h9hvp95va0hyl268gnzciwy1dqmc57bpifbj885870rdfp0ffv"; }; - postInstall = "rm $bin/bin/issue-template-gen"; + excludedPackages = [ "issue-template-gen" ]; meta = with stdenv.lib; { description = "A utility for managing disaster recovery, specifically for your Kubernetes cluster resources and persistent volumes"; - homepage = https://heptio.github.io/ark/; + homepage = "https://heptio.github.io/ark/"; license = licenses.asl20; maintainers = [maintainers.mbode]; platforms = platforms.unix; diff --git a/pkgs/applications/networking/cluster/hetzner-kube/default.nix b/pkgs/applications/networking/cluster/hetzner-kube/default.nix index 4de0c3fbd7b..1d9940c8f31 100644 --- a/pkgs/applications/networking/cluster/hetzner-kube/default.nix +++ b/pkgs/applications/networking/cluster/hetzner-kube/default.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "hetzner-kube"; - version = "0.4.1"; + version = "0.5.1"; src = fetchFromGitHub { owner = "xetys"; repo = "hetzner-kube"; rev = version; - sha256 = "11202i3340vaz8xh59gwj5x0djcgbzq9jfy2214lcpml71qc85f0"; + sha256 = "1iqgpmljqx6rhmvsir2675waj78amcfiw08knwvlmavjgpxx2ysw"; }; - modSha256 = "1j04xyjkz7jcqrs5p5z94jqagrzcxjr9m3lyp8i91c0ymxf5m2g3"; + modSha256 = "0jjrk93wdi13wrb5gchhqk7rgwm74kcizrbqsibgkgs2dszwfazh"; buildFlagsArray = '' -ldflags= @@ -20,7 +20,7 @@ buildGoModule rec { meta = { description = "A CLI tool for provisioning Kubernetes clusters on Hetzner Cloud"; - homepage = https://github.com/xetys/hetzner-kube; + homepage = "https://github.com/xetys/hetzner-kube"; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ eliasp ]; platforms = lib.platforms.unix; diff --git a/pkgs/applications/networking/cluster/jx/default.nix b/pkgs/applications/networking/cluster/jx/default.nix index 88aa8777ee5..e2c0b663bef 100644 --- a/pkgs/applications/networking/cluster/jx/default.nix +++ b/pkgs/applications/networking/cluster/jx/default.nix @@ -28,7 +28,7 @@ buildGoModule rec { meta = with lib; { description = "JX is a command line tool for installing and using Jenkins X."; - homepage = https://jenkins-x.io; + homepage = "https://jenkins-x.io"; longDescription = '' Jenkins X provides automated CI+CD for Kubernetes with Preview Environments on Pull Requests using Jenkins, Knative Build, Prow, diff --git a/pkgs/applications/networking/cluster/k3s/default.nix b/pkgs/applications/networking/cluster/k3s/default.nix new file mode 100644 index 00000000000..b18e1f08dd4 --- /dev/null +++ b/pkgs/applications/networking/cluster/k3s/default.nix @@ -0,0 +1,235 @@ +{ stdenv, lib, makeWrapper, socat, iptables, iproute, bridge-utils +, conntrack-tools, buildGoPackage, git, runc, libseccomp, pkgconfig +, ethtool, utillinux, ipset, fetchFromGitHub, fetchurl, fetchzip +, fetchgit +}: + +with lib; + +# k3s is a kinda weird derivation. One of the main points of k3s is the +# simplicity of it being one binary that can perform several tasks. +# However, when you have a good package manager (like nix), that doesn't +# actually make much of a difference; you don't really care if it's one binary +# or 10 since with a good package manager, installing and running it is +# identical. +# Since upstream k3s packages itself as one large binary with several +# "personalities" (in the form of subcommands like 'k3s agent' and 'k3s +# kubectl'), it ends up being easiest to mostly mimic upstream packaging, with +# some exceptions. +# K3s also carries patches to some packages (such as containerd and cni +# plugins), so we intentionally use the k3s versions of those binaries for k3s, +# even if the upstream version of those binaries exist in nixpkgs already. In +# the end, that means we have a thick k3s binary that behaves like the upstream +# one for the most part. +# However, k3s also bundles several pieces of unpatched software, from the +# strongswan vpn software, to iptables, to socat, conntrack, busybox, etc. +# 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.17.3+k3s1"; # k3s git tag + traefikChartVersion = "1.81.0"; # taken from ./scripts/version.sh at the above k3s tag + k3sRootVersion = "0.3.0"; # taken from .s/cripts/version.sh at the above k3s tag + # bundled into the k3s binary + traefikChart = fetchurl { + url = "https://kubernetes-charts.storage.googleapis.com/traefik-${traefikChartVersion}.tgz"; + sha256 = "1aqpzgjlvqhil0g3angz94zd4xbl4iq0qmpjcy5aq1xv9qciwdi9"; + }; + # so, k3s is a complicated thing to package + # This derivation attempts to avoid including any random binaries from the + # internet. k3s-root is _mostly_ binaries built to be bundled in k3s (which + # we don't care about doing, we can add those as build or runtime + # dependencies using a real package manager). + # In addition to those binaries, it's also configuration though (right now + # mostly strongswan configuration), and k3s does use those files. + # As such, we download it in order to grab 'etc' and bundle it into the final + # k3s binary. + k3sRoot = fetchzip { + # Note: marked as apache 2.0 license + url = "https://github.com/rancher/k3s-root/releases/download/v${k3sRootVersion}/k3s-root-amd64.tar"; + sha256 = "12xafn5jivl8lqdcs25b28xrc4mf7yf1xif5np169nvvxgvmpdxp"; + stripRoot=false; + }; + k3sPlugins = buildGoPackage rec { + name = "k3s-cni-plugins"; + version = "0.7.6-k3s1"; # from ./scripts/version.sh 'VERSION_CNIPLUGINS'; update when k3s's repo is updated. + + goPackagePath = "github.com/containernetworking/plugins"; + subPackages = [ "." ]; + + src = fetchFromGitHub { + owner = "rancher"; + repo = "plugins"; + rev = "v${version}"; + sha256 = "0ax72z1ziann352bp6khfds8vlf3bbkqckrkpx4l4jxgqks45izs"; + }; + + meta = { + description = "CNI plugins, as patched by rancher for k3s"; + license = licenses.asl20; + homepage = "https://k3s.io"; + maintainers = [ maintainers.euank ]; + platforms = platforms.linux; + }; + }; + # Grab this separately from a build because it's used by both stages of the + # k3s build. + k3sRepo = fetchgit { + url = "https://github.com/rancher/k3s"; + rev = "v${k3sVersion}"; + leaveDotGit = true; # ./scripts/version.sh depends on git + sha256 = "0qahyc0mf9glxj49va6d20mcncqg4svfic2iz8b1lqid5c4g68mm"; + }; + # Stage 1 of the k3s build: + # Let's talk about how k3s is structured. + # One of the ideas of k3s is that there's the single "k3s" binary which can + # do everything you need, from running a k3s server, to being a worker node, + # to running kubectl. + # The way that actually works is that k3s is a single go binary that contains + # a bunch of bindata that it unpacks at runtime into directories (either the + # user's home directory or /var/lib/rancher if run as root). + # This bindata includes both binaries and configuration. + # In order to let nixpkgs do all its autostripping/patching/etc, we split this into two derivations. + # First, we build all the binaries that get packed into the thick k3s binary + # (and output them from one derivation so they'll all be suitably patched up). + # Then, we bundle those binaries into our thick k3s binary and use that as + # the final single output. + # This approach was chosen because it ensures the bundled binaries all are + # correctly built to run with nix (we can lean on the existing buildGoPackage + # stuff), and we can again lean on that tooling for the final k3s binary too. + # Other alternatives would be to manually run the + # strip/patchelf/remove-references step ourselves in the installPhase of the + # derivation when we've built all the binaries, but haven't bundled them in + # with generated bindata yet. + k3sBuildStage1 = buildGoPackage rec { + name = "k3s-build-1"; + version = "${k3sVersion}"; + + goPackagePath = "github.com/rancher/k3s"; + + src = k3sRepo; + + patches = [ ./patches/00-k3s.patch ]; + + nativeBuildInputs = [ git pkgconfig ]; + buildInputs = [ libseccomp ]; + + buildPhase = '' + pushd go/src/${goPackagePath} + + patchShebangs ./scripts/build ./scripts/version.sh + mkdir -p bin + ./scripts/build + + popd + ''; + + installPhase = '' + pushd go/src/${goPackagePath} + + mkdir -p "$bin/bin" + install -m 0755 -t "$bin/bin" ./bin/* + + popd + ''; + + meta = { + description = "The various binaries that get packaged into the final k3s binary."; + license = licenses.asl20; + homepage = "https://k3s.io"; + maintainers = [ maintainers.euank ]; + platforms = platforms.linux; + }; + }; + k3sBuild = buildGoPackage rec { + name = "k3s-build"; + version = "${k3sVersion}"; + + goPackagePath = "github.com/rancher/k3s"; + + src = k3sRepo; + + patches = [ ./patches/00-k3s.patch ]; + + nativeBuildInputs = [ git pkgconfig ]; + buildInputs = [ k3sBuildStage1 k3sPlugins runc ]; + + # In order to build the thick k3s binary (which is what + # ./scripts/package-cli does), we need to get all the binaries that script + # expects in place. + buildPhase = '' + pushd go/src/${goPackagePath} + + patchShebangs ./scripts/build ./scripts/version.sh ./scripts/package-cli + + mkdir -p bin + + install -m 0755 -t ./bin ${k3sBuildStage1}/bin/* + install -m 0755 -T "${k3sPlugins}/bin/plugins" ./bin/cni + # Note: use the already-nixpkgs-bundled k3s rather than the one bundled + # in k3s because the k3s one is completely unmodified from upstream + # (unlike containerd, cni, etc) + install -m 0755 -T "${runc}/bin/runc" ./bin/runc + cp -R "${k3sRoot}/etc" ./etc + mkdir -p "build/static/charts" + cp "${traefikChart}" "build/static/charts/traefik-${traefikChartVersion}.tgz" + + ./scripts/package-cli + + popd + ''; + + installPhase = '' + pushd go/src/${goPackagePath} + + mkdir -p "$bin/bin" + install -m 0755 -t "$bin/bin" ./dist/artifacts/k3s + + popd + ''; + + meta = { + description = "The k3s go binary which is used by the final wrapped output below."; + license = licenses.asl20; + homepage = "https://k3s.io"; + maintainers = [ maintainers.euank ]; + platforms = platforms.linux; + }; + }; +in +stdenv.mkDerivation rec { + name = "k3s"; + + # Important utilities used by the kubelet, see + # https://github.com/kubernetes/kubernetes/issues/26093#issuecomment-237202494 + # Note the list in that issue is stale and some aren't relevant for k3s. + k3sRuntimeDeps = [ + socat iptables iproute bridge-utils ethtool utillinux ipset conntrack-tools + ]; + + buildInputs = [ + k3sBuild makeWrapper + ] ++ k3sRuntimeDeps; + + unpackPhase = "true"; + + # And, one final derivation (you thought the last one was it, right?) + # We got the binary we wanted above, but it doesn't have all the runtime + # dependencies k8s wants, including mount utilities for kubelet, networking + # tools for cni/kubelet stuff, etc + # Use a wrapper script to reference all the binaries that k3s tries to + # execute, but that we didn't bundle with it. + installPhase = '' + mkdir -p "$out/bin" + makeWrapper ${k3sBuild}/bin/k3s "$out/bin/k3s" \ + --prefix PATH : ${lib.makeBinPath k3sRuntimeDeps} \ + --prefix PATH : "$out/bin" + ''; + + meta = { + description = "A lightweight Kubernetes distribution."; + license = licenses.asl20; + homepage = "https://k3s.io"; + maintainers = [ maintainers.euank ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/networking/cluster/k3s/patches/00-k3s.patch b/pkgs/applications/networking/cluster/k3s/patches/00-k3s.patch new file mode 100644 index 00000000000..afe2c356aa4 --- /dev/null +++ b/pkgs/applications/networking/cluster/k3s/patches/00-k3s.patch @@ -0,0 +1,74 @@ +diff --git a/main.go b/main.go +index 62908bb7bb..0527222887 100644 +--- a/main.go ++++ b/main.go +@@ -1,5 +1,5 @@ + //go:generate go run pkg/codegen/cleanup/main.go +-//go:generate /bin/rm -rf pkg/generated ++//go:generate rm -rf pkg/generated + //go:generate go run pkg/codegen/main.go + //go:generate go fmt pkg/deploy/zz_generated_bindata.go + //go:generate go fmt pkg/static/zz_generated_bindata.go +diff --git a/scripts/build b/scripts/build +index 72d3c07ece..3e5455b262 100755 +--- a/scripts/build ++++ b/scripts/build +@@ -10,7 +10,8 @@ PKG_CONTAINERD="github.com/containerd/containerd" + PKG_RANCHER_CONTAINERD="github.com/rancher/containerd" + PKG_CRICTL="github.com/kubernetes-sigs/cri-tools" + +-buildDate=$(date -u '+%Y-%m-%dT%H:%M:%SZ') ++# Deterministic build date ++buildDate="$(date -d "$(git log -1 --format=%ai)" -u "+%Y-%m-%dT%H:%M:%SZ")" + + VENDOR_PREFIX="${PKG}/vendor/" + VERSIONFLAGS=" +@@ -82,17 +83,7 @@ cleanup() { + } + + INSTALLBIN=$(pwd)/bin +-if [ ! -x ${INSTALLBIN}/cni ]; then +-( +- echo Building cni +- TMPDIR=$(mktemp -d) +- trap cleanup EXIT +- WORKDIR=$TMPDIR/src/github.com/containernetworking/plugins +- git clone -b $VERSION_CNIPLUGINS https://github.com/rancher/plugins.git $WORKDIR +- cd $WORKDIR +- GOPATH=$TMPDIR CGO_ENABLED=0 go build -tags "$TAGS" -ldflags "$LDFLAGS $STATIC" -o $INSTALLBIN/cni +-) +-fi ++# skip building cni, use our separately built one + # echo Building agent + # CGO_ENABLED=1 go build -tags "$TAGS" -ldflags "$VERSIONFLAGS $LDFLAGS $STATIC" -o bin/k3s-agent ./cmd/agent/main.go + echo Building server +@@ -108,9 +99,8 @@ ln -s containerd ./bin/ctr + #CGO_ENABLED=1 go build -tags "$TAGS" -ldflags "$VERSIONFLAGS $LDFLAGS $STATIC_SQLITE" -o bin/ctr ./cmd/ctr/main.go + # echo Building containerd + # CGO_ENABLED=0 go build -tags "$TAGS" -ldflags "$VERSIONFLAGS $LDFLAGS $STATIC" -o bin/containerd ./cmd/containerd/ +-echo Building runc +-make EXTRA_LDFLAGS="-w -s" BUILDTAGS="apparmor seccomp" -C ./vendor/github.com/opencontainers/runc static +-cp -f ./vendor/github.com/opencontainers/runc/runc ./bin/runc ++ ++# skip building runc; use our packaged one + + echo Building containerd-shim + make -C ./vendor/github.com/containerd/containerd bin/containerd-shim +diff --git a/scripts/package-cli b/scripts/package-cli +index 4c66ce32df..6d1e0c03cb 100755 +--- a/scripts/package-cli ++++ b/scripts/package-cli +@@ -55,10 +55,10 @@ LDFLAGS=" + -X github.com/rancher/k3s/pkg/version.GitCommit=${COMMIT:0:8} + -w -s + " +-STATIC="-extldflags '-static'" + if [ "$DQLITE" = "true" ]; then + DQLITE_TAGS="dqlite" + fi +-CGO_ENABLED=0 go build -tags "$DQLITE_TAGS" -ldflags "$LDFLAGS $STATIC" -o ${CMD_NAME} ./cmd/k3s/main.go ++go build -tags "$DQLITE_TAGS" -ldflags "$LDFLAGS" -o ${CMD_NAME} ./cmd/k3s/main.go + +-./scripts/build-upload ${CMD_NAME} ${COMMIT} ++# for nixos, don't upload it ++# ./scripts/build-upload ${CMD_NAME} ${COMMIT} diff --git a/pkgs/applications/networking/cluster/k9s/default.nix b/pkgs/applications/networking/cluster/k9s/default.nix index 99326a20bfa..a51d1afb367 100644 --- a/pkgs/applications/networking/cluster/k9s/default.nix +++ b/pkgs/applications/networking/cluster/k9s/default.nix @@ -2,25 +2,23 @@ buildGoModule rec { pname = "k9s"; - version = "0.17.7"; - # rev is the release commit, mainly for version command output - rev = "8fedc42304ce33df314664eb0c4ac73be59065af"; + version = "0.19.4"; src = fetchFromGitHub { owner = "derailed"; repo = "k9s"; rev = "v${version}"; - sha256 = "0bqx1ckk89vzmk6fmqmv03cbdvw0agwrqzywzw35b4n0di37x0nv"; + sha256 = "1ya3lrw31pxd1rxzf88l5hzilaxwrng1a3ibawgn57my333hrmf6"; }; buildFlagsArray = '' -ldflags= -s -w -X github.com/derailed/k9s/cmd.version=${version} - -X github.com/derailed/k9s/cmd.commit=${rev} + -X github.com/derailed/k9s/cmd.commit=${src.rev} ''; - modSha256 = "06m4xgl29zx6zpqx630m9cm52wmljms9cvly5f4pqdb4zicq7n86"; + modSha256 = "11jxyzajlk6b5j19sg1kjr7qdzpxkwjwrvyhx9mwy6jb5sgqbzv8"; meta = with stdenv.lib; { description = "Kubernetes CLI To Manage Your Clusters In Style."; diff --git a/pkgs/applications/networking/cluster/kanif/default.nix b/pkgs/applications/networking/cluster/kanif/default.nix index 52abc318990..ebf98840ee2 100644 --- a/pkgs/applications/networking/cluster/kanif/default.nix +++ b/pkgs/applications/networking/cluster/kanif/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { directories to several nodes ('kaput' command), and to gather several remote files or directories locally ('kaget' command). It relies on TakTuk for efficiency and scalability.''; - homepage = http://taktuk.gforge.inria.fr/kanif; + homepage = "http://taktuk.gforge.inria.fr/kanif"; license = stdenv.lib.licenses.gpl2; maintainers = [ stdenv.lib.maintainers.bzizou ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/networking/cluster/kompose/default.nix b/pkgs/applications/networking/cluster/kompose/default.nix index 09a69f4b80e..2467ed93b32 100644 --- a/pkgs/applications/networking/cluster/kompose/default.nix +++ b/pkgs/applications/networking/cluster/kompose/default.nix @@ -15,9 +15,10 @@ buildGoPackage rec { nativeBuildInputs = [ installShellFiles ]; postInstall = '' - $bin/bin/kompose completion bash > kompose.bash - $bin/bin/kompose completion zsh > kompose.zsh - installShellCompletion kompose.{bash,zsh} + for shell in bash zsh; do + $bin/bin/kompose completion $shell > kompose.$shell + installShellCompletion kompose.$shell + done ''; meta = with lib; { diff --git a/pkgs/applications/networking/cluster/kontemplate/default.nix b/pkgs/applications/networking/cluster/kontemplate/default.nix index 359b289dbbc..87ae71f6a48 100644 --- a/pkgs/applications/networking/cluster/kontemplate/default.nix +++ b/pkgs/applications/networking/cluster/kontemplate/default.nix @@ -20,7 +20,7 @@ buildGoPackage rec { license = licenses.gpl3; maintainers = with maintainers; [ mbode tazjin ]; platforms = platforms.unix; - repositories.git = git://github.com/tazjin/kontemplate.git; + repositories.git = "git://github.com/tazjin/kontemplate.git"; longDescription = '' Kontemplate is a simple CLI tool that can take sets of diff --git a/pkgs/applications/networking/cluster/kops/default.nix b/pkgs/applications/networking/cluster/kops/default.nix index 595cfae2e69..b4983a602e6 100644 --- a/pkgs/applications/networking/cluster/kops/default.nix +++ b/pkgs/applications/networking/cluster/kops/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, buildGoPackage, fetchFromGitHub, go-bindata }: +{ stdenv, lib, buildGoPackage, fetchFromGitHub, go-bindata, installShellFiles }: let goPackagePath = "k8s.io/kops"; @@ -18,8 +18,8 @@ let inherit sha256; }; - buildInputs = [go-bindata]; - subPackages = ["cmd/kops"]; + nativeBuildInputs = [ go-bindata installShellFiles ]; + subPackages = [ "cmd/kops" ]; buildFlagsArray = '' -ldflags= @@ -33,17 +33,17 @@ let ''; postInstall = '' - mkdir -p $bin/share/bash-completion/completions - mkdir -p $bin/share/zsh/site-functions - $bin/bin/kops completion bash > $bin/share/bash-completion/completions/kops - $bin/bin/kops completion zsh > $bin/share/zsh/site-functions/_kops + for shell in bash zsh; do + $bin/bin/kops completion $shell > kops.$shell + installShellCompletion kops.$shell + done ''; meta = with stdenv.lib; { description = "Easiest way to get a production Kubernetes up and running"; - homepage = https://github.com/kubernetes/kops; + homepage = "https://github.com/kubernetes/kops"; license = licenses.asl20; - maintainers = with maintainers; [offline zimbatm kampka]; + maintainers = with maintainers; [ offline zimbatm kampka ]; platforms = platforms.unix; }; } // attrs'; @@ -51,23 +51,13 @@ in rec { mkKops = generic; - kops_1_12 = mkKops { - version = "1.12.3"; - sha256 = "0rpbaz54l5v1z7ab5kpxcb4jyakkl5ysgz1sxajqmw2d6dvf7xly"; - }; - - kops_1_13 = mkKops { - version = "1.13.2"; - sha256 = "0lkkg34vn020r62ga8vg5d3a8jwvq00xlv3p1s01nkz33f6salng"; - }; - - kops_1_14 = mkKops { - version = "1.14.1"; - sha256 = "0ikd8qwrjh8s1sc95g18sm0q6p33swz2m1rjd8zw34mb2w9jv76n"; - }; - kops_1_15 = mkKops { version = "1.15.2"; sha256 = "1sjfd7pfi81ccq1dkgkh9xx6y94bqzlp727pvyf7l01x3d14z2b3"; }; + + kops_1_16 = mkKops { + version = "1.16.1"; + sha256 = "04ji1703z6b3rd4wmccah68api0jj2bndzkgdzqi855gccqbmi5g"; + }; } diff --git a/pkgs/applications/networking/cluster/kubecfg/default.nix b/pkgs/applications/networking/cluster/kubecfg/default.nix index 69d013e3f03..bf4ec949215 100644 --- a/pkgs/applications/networking/cluster/kubecfg/default.nix +++ b/pkgs/applications/networking/cluster/kubecfg/default.nix @@ -17,7 +17,7 @@ buildGoPackage { meta = { description = "A tool for managing Kubernetes resources as code"; - homepage = https://github.com/bitnami/kubecfg; + homepage = "https://github.com/bitnami/kubecfg"; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ benley ]; platforms = lib.platforms.unix; diff --git a/pkgs/applications/networking/cluster/kubernetes/default.nix b/pkgs/applications/networking/cluster/kubernetes/default.nix index 5178b7a2bd4..3a91efd064c 100644 --- a/pkgs/applications/networking/cluster/kubernetes/default.nix +++ b/pkgs/applications/networking/cluster/kubernetes/default.nix @@ -15,16 +15,16 @@ with lib; stdenv.mkDerivation rec { pname = "kubernetes"; - version = "1.17.3"; + version = "1.18.1"; src = fetchFromGitHub { owner = "kubernetes"; repo = "kubernetes"; rev = "v${version}"; - sha256 = "0caqczz8hrwqb8j94158hz6919i7c9v1v0zknh9m2zbbng4b1awi"; + sha256 = "1z109h0jqqfxvgyhmxsiggf6fb9kdrwvmv9wdi1n58n4yk65hvl6"; }; - buildInputs = [ removeReferencesTo makeWrapper which go rsync go-bindata ]; + nativeBuildInputs = [ removeReferencesTo makeWrapper which go rsync go-bindata ]; outputs = ["out" "man" "pause"]; @@ -72,7 +72,7 @@ stdenv.mkDerivation rec { meta = { description = "Production-Grade Container Scheduling and Management"; license = licenses.asl20; - homepage = https://kubernetes.io; + homepage = "https://kubernetes.io"; maintainers = with maintainers; [johanot offline saschagrunert]; platforms = platforms.unix; }; diff --git a/pkgs/applications/networking/cluster/kubernix/default.nix b/pkgs/applications/networking/cluster/kubernix/default.nix new file mode 100644 index 00000000000..2251b12e499 --- /dev/null +++ b/pkgs/applications/networking/cluster/kubernix/default.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchFromGitHub, rustPlatform }: + +rustPlatform.buildRustPackage rec { + pname = "kubernix"; + version = "0.2.0"; + + src = fetchFromGitHub { + owner = "saschagrunert"; + repo = pname; + rev = "v${version}"; + sha256 = "04dzfdzjwcwwaw9min322g30q0saxpq5kqzld4f22fmk820ki6gp"; + }; + + cargoSha256 = "17agwqx7nhzi124yq1s6zpqb227drrhp9c11r3jbicc08dz88bwg"; + doCheck = false; + + meta = with stdenv.lib; { + description = "Single dependency Kubernetes clusters for local testing, experimenting and development"; + homepage = "https://github.com/saschagrunert/kubernix"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ saschagrunert ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/networking/cluster/kubeseal/default.nix b/pkgs/applications/networking/cluster/kubeseal/default.nix index 6d35d233d4f..ef87b67a360 100644 --- a/pkgs/applications/networking/cluster/kubeseal/default.nix +++ b/pkgs/applications/networking/cluster/kubeseal/default.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "kubeseal"; - version = "0.10.0"; + version = "0.12.0"; src = fetchFromGitHub { owner = "bitnami-labs"; repo = "sealed-secrets"; rev = "v${version}"; - sha256 = "14ahb02p1gqcqbjz6mn3axw436b6bi4ygq5ckm85jzs28s4wrfsv"; + sha256 = "0z51iwdc4m0y8wyyx3mcvbzxlrgws7n5wkcd0g7nr73irnsld4lh"; }; - modSha256 = "04dmjyz3vi2l0dfpyy42lkp2fv1vlfkvblrxh1dvb37phrkd5lbd"; + modSha256 = "029h0zr3fpzlsv9hf1d1x5j7aalxkcsyszsxjz8fqrhjafqc7zvq"; subPackages = [ "cmd/kubeseal" ]; diff --git a/pkgs/applications/networking/cluster/kubetail/default.nix b/pkgs/applications/networking/cluster/kubetail/default.nix index 779edad8de3..114c5f5af15 100644 --- a/pkgs/applications/networking/cluster/kubetail/default.nix +++ b/pkgs/applications/networking/cluster/kubetail/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { multiple pods into one stream. This is the same as running "kubectl logs -f " but for multiple pods. ''; - homepage = https://github.com/johanhaleby/kubetail; + homepage = "https://github.com/johanhaleby/kubetail"; license = licenses.asl20; maintainers = with maintainers; [ kalbasit ]; platforms = platforms.all; diff --git a/pkgs/applications/networking/cluster/kubeval/default.nix b/pkgs/applications/networking/cluster/kubeval/default.nix index 84e9b889943..569baf6000a 100644 --- a/pkgs/applications/networking/cluster/kubeval/default.nix +++ b/pkgs/applications/networking/cluster/kubeval/default.nix @@ -1,26 +1,5 @@ { stdenv, lib, fetchFromGitHub, buildGoModule, makeWrapper }: -let - - # Cache schema as a package so network calls are not - # necessary at runtime, allowing use in package builds - schema = stdenv.mkDerivation { - name = "kubeval-schema"; - src = fetchFromGitHub { - owner = "instrumenta"; - repo = "kubernetes-json-schema"; - rev = "6a498a60dc68c5f6a1cc248f94b5cd1e7241d699"; - sha256 = "1y9m2ma3n4h7sf2lg788vjw6pkfyi0fa7gzc870faqv326n6x2jr"; - }; - - installPhase = '' - mkdir -p $out/kubernetes-json-schema/master - cp -R . $out/kubernetes-json-schema/master - ''; - }; - -in - buildGoModule rec { pname = "kubeval"; version = "0.14.0"; @@ -32,15 +11,11 @@ buildGoModule rec { sha256 = "0kpwk7bv36m3i8vavm1pqc8l611c6l9qbagcc64v6r85qig4w5xv"; }; - buildInputs = [ makeWrapper ]; - modSha256 = "0y9x44y3bchi8xg0a6jmp2rmi8dybkl6qlywb6nj1viab1s8dd4y"; - postFixup = "wrapProgram $out/bin/kubeval --set KUBEVAL_SCHEMA_LOCATION file:///${schema}/kubernetes-json-schema/master"; - meta = with lib; { description = "Validate your Kubernetes configuration files"; - homepage = https://github.com/instrumenta/kubeval; + homepage = "https://github.com/instrumenta/kubeval"; license = licenses.asl20; maintainers = with maintainers; [ nicknovitski ]; platforms = platforms.all; diff --git a/pkgs/applications/networking/cluster/kubeval/schema.nix b/pkgs/applications/networking/cluster/kubeval/schema.nix new file mode 100644 index 00000000000..370fe9a1cd8 --- /dev/null +++ b/pkgs/applications/networking/cluster/kubeval/schema.nix @@ -0,0 +1,15 @@ +{ fetchFromGitHub }: +# To cache schema as a package so network calls are not +# necessary at runtime, allowing use in package builds you can use the following: + +# KUBEVAL_SCHEMA_LOCATION="file:///${kubeval-schema}"; +(fetchFromGitHub { + name = "kubeval-schema"; + owner = "instrumenta"; + repo = "kubernetes-json-schema"; + rev = "6a498a60dc68c5f6a1cc248f94b5cd1e7241d699"; + sha256 = "1y9m2ma3n4h7sf2lg788vjw6pkfyi0fa7gzc870faqv326n6x2jr"; +}) // { + # the schema is huge (> 7GB), we don't get any benefit from building int on hydra + meta.hydraPlatforms = []; +} diff --git a/pkgs/applications/networking/cluster/linkerd/default.nix b/pkgs/applications/networking/cluster/linkerd/default.nix index 8c0265d1491..3d66a7c62f2 100644 --- a/pkgs/applications/networking/cluster/linkerd/default.nix +++ b/pkgs/applications/networking/cluster/linkerd/default.nix @@ -17,7 +17,7 @@ buildGoModule { meta = with stdenv.lib; { description = "A service mesh for Kubernetes and beyond."; - homepage = https://linkerd.io/; + homepage = "https://linkerd.io/"; license = licenses.asl20; maintainers = with maintainers; [ Gonzih ]; }; diff --git a/pkgs/applications/networking/cluster/luigi/default.nix b/pkgs/applications/networking/cluster/luigi/default.nix index af20be1b0da..010d8cf4d21 100644 --- a/pkgs/applications/networking/cluster/luigi/default.nix +++ b/pkgs/applications/networking/cluster/luigi/default.nix @@ -18,7 +18,7 @@ python3Packages.buildPythonApplication rec { makeWrapperArgs = ["--prefix PYTHONPATH . :"]; meta = with lib; { - homepage = https://github.com/spotify/luigi; + homepage = "https://github.com/spotify/luigi"; description = "Python package that helps you build complex pipelines of batch jobs"; longDescription = '' Luigi handles dependency resolution, workflow management, visualization, diff --git a/pkgs/applications/networking/cluster/marathon/default.nix b/pkgs/applications/networking/cluster/marathon/default.nix index b7decc0c141..df571f4cf86 100644 --- a/pkgs/applications/networking/cluster/marathon/default.nix +++ b/pkgs/applications/networking/cluster/marathon/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = https://mesosphere.github.io/marathon; + homepage = "https://mesosphere.github.io/marathon"; description = "Cluster-wide init and control system for services in cgroups or Docker containers"; license = licenses.asl20; maintainers = with maintainers; [ kamilchm pradeepchhetri ]; diff --git a/pkgs/applications/networking/cluster/mesos/default.nix b/pkgs/applications/networking/cluster/mesos/default.nix index ec152fdc464..ac1feee5d72 100644 --- a/pkgs/applications/networking/cluster/mesos/default.nix +++ b/pkgs/applications/networking/cluster/mesos/default.nix @@ -258,5 +258,6 @@ in stdenv.mkDerivation rec { description = "A cluster manager that provides efficient resource isolation and sharing across distributed applications, or frameworks"; maintainers = with maintainers; [ cstrahan offline ]; platforms = platforms.unix; + broken = true; # Broken since 2019-10-22 (https://hydra.nixos.org/build/115475123) }; } diff --git a/pkgs/applications/networking/cluster/minikube/default.nix b/pkgs/applications/networking/cluster/minikube/default.nix index 5637e486ef1..9c5727ec735 100644 --- a/pkgs/applications/networking/cluster/minikube/default.nix +++ b/pkgs/applications/networking/cluster/minikube/default.nix @@ -1,68 +1,56 @@ -{ stdenv, buildGoModule, fetchFromGitHub, go-bindata, libvirt, qemu -, gpgme, makeWrapper, vmnet -, docker-machine-kvm, docker-machine-kvm2 -, extraDrivers ? [] +{ stdenv +, buildGoModule +, fetchFromGitHub +, go-bindata +, installShellFiles +, pkg-config +, which +, libvirt +, vmnet }: -let - drivers = stdenv.lib.filter (d: d != null) (extraDrivers - ++ stdenv.lib.optionals stdenv.isLinux [ docker-machine-kvm docker-machine-kvm2 ]); +buildGoModule rec { + pname = "minikube"; + version = "1.9.2"; - binPath = drivers - ++ stdenv.lib.optionals stdenv.isLinux ([ libvirt qemu ]); + # for -ldflags + commit = "1b78a7b8a99ad6a3c62b8d22f57120d614d17935"; -in buildGoModule rec { - pname = "minikube"; - version = "1.2.0"; - - kubernetesVersion = "1.15.0"; - - goPackagePath = "k8s.io/minikube"; + modSha256 = "1pxs6myszgma3rzz0nhfjbnylv6m0xzlinvmlg0c4ijvkkzxg3v5"; src = fetchFromGitHub { - owner = "kubernetes"; - repo = "minikube"; - rev = "v${version}"; - sha256 = "0l9znrp49877cp1bkwx84c8lv282ga5a946rjbxi8gznkf3kwaw7"; + owner = "kubernetes"; + repo = "minikube"; + rev = "v${version}"; + sha256 = "025v45427d885qkjjg7ig8fgrvjalnf1lajsj0cnbwbih2m69svg"; }; - modSha256 = "1cp63n0x2lgbqvvymx9byx48r42qw6w224x5x4iiarc2nryfdhn0"; + nativeBuildInputs = [ go-bindata installShellFiles pkg-config which ]; - buildInputs = [ go-bindata makeWrapper gpgme ] ++ stdenv.lib.optional stdenv.hostPlatform.isDarwin vmnet; - subPackages = [ "cmd/minikube" ] ++ stdenv.lib.optional stdenv.hostPlatform.isDarwin "cmd/drivers/hyperkit"; + buildInputs = if stdenv.isDarwin then [ vmnet ] else if stdenv.isLinux then [ libvirt ] else null; - preBuild = '' - go-bindata -nomemcopy -o pkg/minikube/assets/assets.go -pkg assets deploy/addons/... - - VERSION_MAJOR=$(grep "^VERSION_MAJOR" Makefile | sed "s/^.*\s//") - VERSION_MINOR=$(grep "^VERSION_MINOR" Makefile | sed "s/^.*\s//") - ISO_VERSION=v$VERSION_MAJOR.$VERSION_MINOR.0 - ISO_BUCKET=$(grep "^ISO_BUCKET" Makefile | sed "s/^.*\s//") - KUBERNETES_VERSION=${kubernetesVersion} - - export buildFlagsArray="-ldflags=\ - -X k8s.io/minikube/pkg/version.version=v${version} \ - -X k8s.io/minikube/pkg/version.isoVersion=$ISO_VERSION \ - -X k8s.io/minikube/pkg/version.isoPath=$ISO_BUCKET \ - -X k8s.io/minikube/vendor/k8s.io/client-go/pkg/version.gitVersion=$KUBERNETES_VERSION \ - -X k8s.io/minikube/vendor/k8s.io/kubernetes/pkg/version.gitVersion=$KUBERNETES_VERSION" + buildPhase = '' + make COMMIT=${commit} ''; - postInstall = '' - wrapProgram $out/bin/${pname} --prefix PATH : $out/bin:${stdenv.lib.makeBinPath binPath} - mkdir -p $out/share/bash-completion/completions/ - MINIKUBE_WANTUPDATENOTIFICATION=false MINIKUBE_WANTKUBECTLDOWNLOADMSG=false HOME=$PWD $out/bin/minikube completion bash > $out/share/bash-completion/completions/minikube - mkdir -p $out/share/zsh/site-functions/ - MINIKUBE_WANTUPDATENOTIFICATION=false MINIKUBE_WANTKUBECTLDOWNLOADMSG=false HOME=$PWD $out/bin/minikube completion zsh > $out/share/zsh/site-functions/_minikube - ''+ stdenv.lib.optionalString stdenv.hostPlatform.isDarwin '' - mv $out/bin/hyperkit $out/bin/docker-machine-driver-hyperkit + installPhase = '' + install out/minikube -Dt $out/bin + + export HOME=$PWD + export MINIKUBE_WANTUPDATENOTIFICATION=false + export MINIKUBE_WANTKUBECTLDOWNLOADMSG=false + + for shell in bash zsh; do + $out/bin/minikube completion $shell > minikube.$shell + installShellCompletion minikube.$shell + done ''; meta = with stdenv.lib; { - homepage = https://github.com/kubernetes/minikube; + homepage = "https://minikube.sigs.k8s.io"; description = "A tool that makes it easy to run Kubernetes locally"; - license = licenses.asl20; - maintainers = with maintainers; [ ebzzry copumpkin vdemeester ]; - platforms = with platforms; unix; + license = licenses.asl20; + maintainers = with maintainers; [ ebzzry copumpkin vdemeester atkinschang ]; + platforms = platforms.unix; }; } diff --git a/pkgs/applications/networking/cluster/minishift/default.nix b/pkgs/applications/networking/cluster/minishift/default.nix index 43e960d9403..3dcfbf6fd7e 100644 --- a/pkgs/applications/networking/cluster/minishift/default.nix +++ b/pkgs/applications/networking/cluster/minishift/default.nix @@ -59,7 +59,7 @@ in buildGoPackage rec { a single-node OpenShift cluster inside a VM. You can try out OpenShift or develop with it, day-to-day, on your local host. ''; - homepage = https://github.com/minishift/minishift; + homepage = "https://github.com/minishift/minishift"; maintainers = with maintainers; [ fpletz vdemeester ]; platforms = platforms.linux; license = licenses.asl20; diff --git a/pkgs/applications/networking/cluster/node-problem-detector/default.nix b/pkgs/applications/networking/cluster/node-problem-detector/default.nix new file mode 100644 index 00000000000..a7a98de6d39 --- /dev/null +++ b/pkgs/applications/networking/cluster/node-problem-detector/default.nix @@ -0,0 +1,50 @@ +{ stdenv, buildGoModule, fetchFromGitHub, systemd }: + +buildGoModule rec { + pname = "node-problem-detector"; + version = "0.8.1"; + + src = fetchFromGitHub { + owner = "kubernetes"; + repo = pname; + rev = "v${version}"; + sha256 = "02avknglmkr9k933a64hkw0rjfxvyh4sc3x70p41b8q2g6vzv2gs"; + }; + + # Project upstream recommends building through vendoring + overrideModAttrs = (_: { + buildCommand = '' + echo "Skipping go.mod, using vendoring instead." && touch $out + ''; + }); + + modSha256 = "0ip26j2h11n1kgkz36rl4akv694yz65hr72q4kv4b3lxcbi65b3p"; + + # Optionally, a log counter binary can be created to parse journald logs. + # The binary is dynamically linked against systemd libraries, making it a + # Linux-only feature. See 'ENABLE_JOURNALD' upstream: + # https://github.com/kubernetes/node-problem-detector/blob/master/Makefile + subPackages = [ "cmd/nodeproblemdetector" ] ++ + stdenv.lib.optionals stdenv.isLinux [ "cmd/logcounter" ]; + + preBuild = '' + export CGO_ENABLED=${if stdenv.isLinux then "1" else "0"} + ''; + + buildInputs = stdenv.lib.optionals stdenv.isLinux [ systemd ]; + + buildFlags = "-mod vendor" + + stdenv.lib.optionalString stdenv.isLinux " -tags journald"; + + buildFlagsArray = [ + "-ldflags=" + "-X k8s.io/${pname}/pkg/version.version=v${version}" + ]; + + meta = with stdenv.lib; { + description = "Various problem detectors running on the Kubernetes nodes"; + homepage = "https://github.com/kubernetes/node-problem-detector"; + license = licenses.asl20; + maintainers = with maintainers; [ lbpdt ]; + }; +} diff --git a/pkgs/applications/networking/cluster/nomad/default.nix b/pkgs/applications/networking/cluster/nomad/default.nix index 6afbbf215a3..da668b9589a 100644 --- a/pkgs/applications/networking/cluster/nomad/default.nix +++ b/pkgs/applications/networking/cluster/nomad/default.nix @@ -2,7 +2,7 @@ buildGoPackage rec { pname = "nomad"; - version = "0.10.2"; + version = "0.11.1"; rev = "v${version}"; goPackagePath = "github.com/hashicorp/nomad"; @@ -12,7 +12,7 @@ buildGoPackage rec { owner = "hashicorp"; repo = pname; inherit rev; - sha256 = "1kv67rkqnxiz2dkmc1v1df6qx9j5j4h7cis00v2i15sl824g22jw"; + sha256 = "1pcn1bk7sqhhsrm3izqljwyrwdz6bdlplrajvjzka39l3k6f9hgc"; }; # ui: @@ -32,7 +32,7 @@ buildGoPackage rec { ''; meta = with stdenv.lib; { - homepage = https://www.nomadproject.io/; + homepage = "https://www.nomadproject.io/"; description = "A Distributed, Highly Available, Datacenter-Aware Scheduler"; platforms = platforms.unix; license = licenses.mpl20; diff --git a/pkgs/applications/networking/cluster/openshift/default.nix b/pkgs/applications/networking/cluster/openshift/default.nix index 3b96ef4ea45..19272c37ee8 100644 --- a/pkgs/applications/networking/cluster/openshift/default.nix +++ b/pkgs/applications/networking/cluster/openshift/default.nix @@ -1,5 +1,5 @@ { stdenv, lib, fetchFromGitHub, buildGoPackage, which, go-bindata, rsync, utillinux -, coreutils, kerberos, clang +, coreutils, kerberos, ncurses, clang, installShellFiles , components ? [ "cmd/oc" "cmd/openshift" @@ -9,12 +9,12 @@ with lib; let - version = "3.11.0"; + version = "4.1.0"; ver = stdenv.lib.elemAt (stdenv.lib.splitVersion version); versionMajor = ver 0; versionMinor = ver 1; versionPatch = ver 2; - gitCommit = "0cbc58b"; + gitCommit = "b4261e0"; # version is in vendor/k8s.io/kubernetes/pkg/version/base.go k8sversion = "v1.11.1"; k8sgitcommit = "b1b2997"; @@ -28,27 +28,17 @@ in buildGoPackage rec { owner = "openshift"; repo = "origin"; rev = "v${version}"; - sha256 = "06q4v2a1mm6c659ab0rzkqz6b66vx4avqfg0s9xckwhq420lzgka"; + sha256 = "16bc6ljm418kxz92gz8ldm82491mvlqamrvigyr6ff72rf7ml7ba"; }; goPackagePath = "github.com/openshift/origin"; - buildInputs = [ which rsync go-bindata kerberos clang ]; + buildInputs = [ kerberos ncurses ]; + + nativeBuildInputs = [ which rsync go-bindata clang installShellFiles ]; patchPhase = '' patchShebangs ./hack - - substituteInPlace pkg/oc/clusterup/docker/host/host.go \ - --replace 'nsenter --mount=/rootfs/proc/1/ns/mnt findmnt' \ - 'nsenter --mount=/rootfs/proc/1/ns/mnt ${utillinux}/bin/findmnt' - - substituteInPlace pkg/oc/clusterup/docker/host/host.go \ - --replace 'nsenter --mount=/rootfs/proc/1/ns/mnt mount' \ - 'nsenter --mount=/rootfs/proc/1/ns/mnt ${utillinux}/bin/mount' - - substituteInPlace pkg/oc/clusterup/docker/host/host.go \ - --replace 'nsenter --mount=/rootfs/proc/1/ns/mnt mkdir' \ - 'nsenter --mount=/rootfs/proc/1/ns/mnt ${coreutils}/bin/mkdir' ''; buildPhase = '' @@ -56,6 +46,7 @@ in buildGoPackage rec { # Openshift build require this variables to be set # unless there is a .git folder which is not the case with fetchFromGitHub echo "OS_GIT_VERSION=v${version}" >> os-version-defs + echo "OS_GIT_TREE_STATE=clean" >> os-version-defs echo "OS_GIT_MAJOR=${versionMajor}" >> os-version-defs echo "OS_GIT_MINOR=${versionMinor}" >> os-version-defs echo "OS_GIT_PATCH=${versionPatch}" >> os-version-defs @@ -72,14 +63,14 @@ in buildGoPackage rec { installPhase = '' mkdir -p $bin/bin cp -a "_output/local/bin/$(go env GOOS)/$(go env GOARCH)/"* "$bin/bin/" - install -D -t "$bin/etc/bash_completion.d" contrib/completions/bash/* - install -D -t "$bin/share/zsh/site-functions" contrib/completions/zsh/* + installShellCompletion --bash contrib/completions/bash/* + installShellCompletion --zsh contrib/completions/zsh/* ''; meta = with stdenv.lib; { description = "Build, deploy, and manage your applications with Docker and Kubernetes"; license = licenses.asl20; - homepage = http://www.openshift.org; + homepage = "http://www.openshift.org"; maintainers = with maintainers; [offline bachp moretea]; platforms = platforms.unix; }; diff --git a/pkgs/applications/networking/cluster/pachyderm/default.nix b/pkgs/applications/networking/cluster/pachyderm/default.nix index de0bb015852..65a4a193843 100644 --- a/pkgs/applications/networking/cluster/pachyderm/default.nix +++ b/pkgs/applications/networking/cluster/pachyderm/default.nix @@ -17,7 +17,7 @@ buildGoPackage rec { meta = with lib; { description = "Containerized Data Analytics"; - homepage = https://github.com/pachyderm/pachyderm; + homepage = "https://github.com/pachyderm/pachyderm"; license = licenses.asl20; maintainers = with maintainers; [offline]; }; diff --git a/pkgs/applications/networking/cluster/pig/default.nix b/pkgs/applications/networking/cluster/pig/default.nix index 26c39f8cbe2..afcd736e629 100644 --- a/pkgs/applications/networking/cluster/pig/default.nix +++ b/pkgs/applications/networking/cluster/pig/default.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = https://pig.apache.org/; + homepage = "https://pig.apache.org/"; description = "High-level language for Apache Hadoop"; license = licenses.asl20; diff --git a/pkgs/applications/networking/cluster/prow/13918-fix-go-sum.patch b/pkgs/applications/networking/cluster/prow/13918-fix-go-sum.patch deleted file mode 100644 index ae407727b9d..00000000000 --- a/pkgs/applications/networking/cluster/prow/13918-fix-go-sum.patch +++ /dev/null @@ -1,22 +0,0 @@ -From b0ab95b9664916618ebf5fe637b1bc4de4ba9a6e Mon Sep 17 00:00:00 2001 -From: "Wael M. Nasreddine" -Date: Wed, 14 Aug 2019 23:07:51 -0700 -Subject: [PATCH] fix the hash of gomodules.xyz/jsonpatch/v2 - ---- - go.sum | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/go.sum b/go.sum -index 6bb130b4d9b..b3f48a85d4a 100644 ---- a/go.sum -+++ b/go.sum -@@ -452,7 +452,7 @@ golang.org/x/tools v0.0.0-20190312170243-e65039ee4138 h1:H3uGjxCR/6Ds0Mjgyp7LMK8 - golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= - golang.org/x/tools v0.0.0-20190404132500-923d25813098 h1:MtqjsZmyGRgMmLUgxnmMJ6RYdvd2ib8ipiayHhqSxs4= - golang.org/x/tools v0.0.0-20190404132500-923d25813098/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= --gomodules.xyz/jsonpatch/v2 v2.0.0 h1:lHNQverf0+Gm1TbSbVIDWVXOhZ2FpZopxRqpr2uIjs4= -+gomodules.xyz/jsonpatch/v2 v2.0.0 h1:OyHbl+7IOECpPKfVK42oFr6N7+Y2dR+Jsb/IiDV3hOo= - gomodules.xyz/jsonpatch/v2 v2.0.0/go.mod h1:IhYNNY4jnS53ZnfE4PAmpKtDpTCj1JFXc+3mwe7XcUU= - google.golang.org/api v0.0.0-20180910000450-7ca32eb868bf/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= - google.golang.org/api v0.0.0-20181021000519-a2651947f503/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= diff --git a/pkgs/applications/networking/cluster/prow/default.nix b/pkgs/applications/networking/cluster/prow/default.nix index 1c802802c09..0b2f798d35b 100644 --- a/pkgs/applications/networking/cluster/prow/default.nix +++ b/pkgs/applications/networking/cluster/prow/default.nix @@ -2,56 +2,51 @@ buildGoModule rec { pname = "prow-unstable"; - version = "2019-08-14"; - rev = "35a7744f5737bbc1c4e1256a9c9c5ad135c650e4"; + version = "2020-04-01"; + rev = "32e3b5ce7695fb622381421653db436cb57b47c5"; src = fetchFromGitHub { inherit rev; owner = "kubernetes"; repo = "test-infra"; - sha256 = "07kdlzrj59xyaa73vlx4s50fpg0brrkb0h0cyjgx81a0hsc7s03k"; + sha256 = "0mc3ynmbf3kidibdy8k3v3xjlvmxl8w7zm1z2m0skmhd0y4bpmk4"; }; - patches = [ - # https://github.com/kubernetes/test-infra/pull/13918 - ./13918-fix-go-sum.patch - ]; - - modSha256 = "06q1zvhm78k64aj475k1xl38h7nk83mysd0bja0wknja048ymgsq"; + modSha256 = "1xajdg10a27icc7g1y3ym4pkgg64rp4afybbjlhbg3k3whir9xa1"; subPackages = [ - "./prow/cmd/admission" - "./prow/cmd/artifact-uploader" - "./prow/cmd/branchprotector" - "./prow/cmd/build" - "./prow/cmd/checkconfig" - "./prow/cmd/clonerefs" - "./prow/cmd/config-bootstrapper" - "./prow/cmd/crier" - "./prow/cmd/deck" - "./prow/cmd/entrypoint" - "./prow/cmd/gcsupload" - "./prow/cmd/gerrit" - "./prow/cmd/hook" - "./prow/cmd/horologium" - "./prow/cmd/initupload" - "./prow/cmd/jenkins-operator" - "./prow/cmd/mkbuild-cluster" - "./prow/cmd/mkpj" - "./prow/cmd/mkpod" - "./prow/cmd/peribolos" - "./prow/cmd/phaino" - "./prow/cmd/phony" - "./prow/cmd/pipeline" - "./prow/cmd/plank" - "./prow/cmd/sidecar" - "./prow/cmd/sinker" - "./prow/cmd/status-reconciler" - "./prow/cmd/sub" - "./prow/cmd/tackle" - "./prow/cmd/tide" - "./prow/cmd/tot" + "prow/cmd/admission" + "prow/cmd/branchprotector" + "prow/cmd/checkconfig" + "prow/cmd/clonerefs" + "prow/cmd/cm2kc" + "prow/cmd/config-bootstrapper" + "prow/cmd/crier" + "prow/cmd/deck" + "prow/cmd/entrypoint" + "prow/cmd/exporter" + "prow/cmd/gcsupload" + "prow/cmd/gerrit" + "prow/cmd/hook" + "prow/cmd/horologium" + "prow/cmd/initupload" + "prow/cmd/jenkins-operator" + "prow/cmd/mkbuild-cluster" + "prow/cmd/mkpj" + "prow/cmd/mkpod" + "prow/cmd/peribolos" + "prow/cmd/phaino" + "prow/cmd/phony" + "prow/cmd/pipeline" + "prow/cmd/plank" + "prow/cmd/sidecar" + "prow/cmd/sinker" + "prow/cmd/status-reconciler" + "prow/cmd/sub" + "prow/cmd/tackle" + "prow/cmd/tide" + "prow/cmd/tot" ]; meta = with lib; { diff --git a/pkgs/applications/networking/cluster/qbec/default.nix b/pkgs/applications/networking/cluster/qbec/default.nix index 9e578b9b333..53b421ec552 100644 --- a/pkgs/applications/networking/cluster/qbec/default.nix +++ b/pkgs/applications/networking/cluster/qbec/default.nix @@ -2,20 +2,20 @@ buildGoModule rec { pname = "qbec"; - version = "0.7.5"; + version = "0.11.0"; src = fetchFromGitHub { owner = "splunk"; repo = "qbec"; rev = "v${version}"; - sha256 = "1q3rbxih4fn0zv8dni5dxb3pq840spplfy08x941najqfgflv9gb"; + sha256 = "0krdfaha19wzi10rh0wfhki5nknbd5mndaxhrq7y9m840xy43d6d"; }; - modSha256 = "0s1brqvzm1ghhqb46aqfj0lpnaq76rav0hwwb82ccw8h7052y4jn"; + modSha256 = "1wb15vrkb4ryvrjp68ygmadnf78s354106ya210pnmsbb53rbhaz"; meta = with lib; { description = "Configure kubernetes objects on multiple clusters using jsonnet https://qbec.io"; - homepage = https://github.com/splunk/qbec; + homepage = "https://github.com/splunk/qbec"; license = licenses.asl20; maintainers = with maintainers; [ groodt ]; }; diff --git a/pkgs/applications/networking/cluster/spacegun/node-composition.nix b/pkgs/applications/networking/cluster/spacegun/node-composition.nix index 6a5283528fc..47cdb6942ce 100644 --- a/pkgs/applications/networking/cluster/spacegun/node-composition.nix +++ b/pkgs/applications/networking/cluster/spacegun/node-composition.nix @@ -1,4 +1,4 @@ -# This file has been generated by node2nix 1.7.0. Do not edit! +# This file has been generated by node2nix 1.8.0. Do not edit! {pkgs ? import { inherit system; diff --git a/pkgs/applications/networking/cluster/spacegun/node-packages.nix b/pkgs/applications/networking/cluster/spacegun/node-packages.nix index a69352a9c21..ece04f6621b 100644 --- a/pkgs/applications/networking/cluster/spacegun/node-packages.nix +++ b/pkgs/applications/networking/cluster/spacegun/node-packages.nix @@ -1,142 +1,142 @@ -# This file has been generated by node2nix 1.7.0. Do not edit! +# This file has been generated by node2nix 1.8.0. Do not edit! {nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}: let sources = { - "@babel/code-frame-7.5.5" = { + "@babel/code-frame-7.8.3" = { name = "_at_babel_slash_code-frame"; packageName = "@babel/code-frame"; - version = "7.5.5"; + version = "7.8.3"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz"; - sha512 = "27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw=="; + url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz"; + sha512 = "a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g=="; }; }; - "@babel/core-7.6.2" = { + "@babel/core-7.8.7" = { name = "_at_babel_slash_core"; packageName = "@babel/core"; - version = "7.6.2"; + version = "7.8.7"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/core/-/core-7.6.2.tgz"; - sha512 = "l8zto/fuoZIbncm+01p8zPSDZu/VuuJhAfA7d/AbzM09WR7iVhavvfNDYCNpo1VvLk6E6xgAoP9P+/EMJHuRkQ=="; + url = "https://registry.npmjs.org/@babel/core/-/core-7.8.7.tgz"; + sha512 = "rBlqF3Yko9cynC5CCFy6+K/w2N+Sq/ff2BPy+Krp7rHlABIr5epbA7OxVeKoMHB39LZOp1UY5SuLjy6uWi35yA=="; }; }; - "@babel/generator-7.6.2" = { + "@babel/generator-7.8.8" = { name = "_at_babel_slash_generator"; packageName = "@babel/generator"; - version = "7.6.2"; + version = "7.8.8"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/generator/-/generator-7.6.2.tgz"; - sha512 = "j8iHaIW4gGPnViaIHI7e9t/Hl8qLjERI6DcV9kEpAIDJsAOrcnXqRS7t+QbhL76pwbtqP+QCQLL0z1CyVmtjjQ=="; + url = "https://registry.npmjs.org/@babel/generator/-/generator-7.8.8.tgz"; + sha512 = "HKyUVu69cZoclptr8t8U5b6sx6zoWjh8jiUhnuj3MpZuKT2dJ8zPTuiy31luq32swhI0SpwItCIlU8XW7BZeJg=="; }; }; - "@babel/helper-function-name-7.1.0" = { + "@babel/helper-function-name-7.8.3" = { name = "_at_babel_slash_helper-function-name"; packageName = "@babel/helper-function-name"; - version = "7.1.0"; + version = "7.8.3"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz"; - sha512 = "A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw=="; + url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz"; + sha512 = "BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA=="; }; }; - "@babel/helper-get-function-arity-7.0.0" = { + "@babel/helper-get-function-arity-7.8.3" = { name = "_at_babel_slash_helper-get-function-arity"; packageName = "@babel/helper-get-function-arity"; - version = "7.0.0"; + version = "7.8.3"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz"; - sha512 = "r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ=="; + url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz"; + sha512 = "FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA=="; }; }; - "@babel/helper-plugin-utils-7.0.0" = { + "@babel/helper-plugin-utils-7.8.3" = { name = "_at_babel_slash_helper-plugin-utils"; packageName = "@babel/helper-plugin-utils"; - version = "7.0.0"; + version = "7.8.3"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz"; - sha512 = "CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA=="; + url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz"; + sha512 = "j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ=="; }; }; - "@babel/helper-split-export-declaration-7.4.4" = { + "@babel/helper-split-export-declaration-7.8.3" = { name = "_at_babel_slash_helper-split-export-declaration"; packageName = "@babel/helper-split-export-declaration"; - version = "7.4.4"; + version = "7.8.3"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz"; - sha512 = "Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q=="; + url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz"; + sha512 = "3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA=="; }; }; - "@babel/helpers-7.6.2" = { + "@babel/helpers-7.8.4" = { name = "_at_babel_slash_helpers"; packageName = "@babel/helpers"; - version = "7.6.2"; + version = "7.8.4"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.6.2.tgz"; - sha512 = "3/bAUL8zZxYs1cdX2ilEE0WobqbCmKWr/889lf2SS0PpDcpEIY8pb1CCyz0pEcX3pEb+MCbks1jIokz2xLtGTA=="; + url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz"; + sha512 = "VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w=="; }; }; - "@babel/highlight-7.5.0" = { + "@babel/highlight-7.8.3" = { name = "_at_babel_slash_highlight"; packageName = "@babel/highlight"; - version = "7.5.0"; + version = "7.8.3"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz"; - sha512 = "7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ=="; + url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz"; + sha512 = "PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg=="; }; }; - "@babel/parser-7.6.2" = { + "@babel/parser-7.8.8" = { name = "_at_babel_slash_parser"; packageName = "@babel/parser"; - version = "7.6.2"; + version = "7.8.8"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/parser/-/parser-7.6.2.tgz"; - sha512 = "mdFqWrSPCmikBoaBYMuBulzTIKuXVPtEISFbRRVNwMWpCms/hmE2kRq0bblUHaNRKrjRlmVbx1sDHmjmRgD2Xg=="; + url = "https://registry.npmjs.org/@babel/parser/-/parser-7.8.8.tgz"; + sha512 = "mO5GWzBPsPf6865iIbzNE0AvkKF3NE+2S3eRUpE+FE07BOAkXh6G+GW/Pj01hhXjve1WScbaIO4UlY1JKeqCcA=="; }; }; - "@babel/plugin-syntax-object-rest-spread-7.2.0" = { + "@babel/plugin-syntax-object-rest-spread-7.8.3" = { name = "_at_babel_slash_plugin-syntax-object-rest-spread"; packageName = "@babel/plugin-syntax-object-rest-spread"; - version = "7.2.0"; + version = "7.8.3"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz"; - sha512 = "t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA=="; + url = "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz"; + sha512 = "XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA=="; }; }; - "@babel/template-7.6.0" = { + "@babel/template-7.8.6" = { name = "_at_babel_slash_template"; packageName = "@babel/template"; - version = "7.6.0"; + version = "7.8.6"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/template/-/template-7.6.0.tgz"; - sha512 = "5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ=="; + url = "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz"; + sha512 = "zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg=="; }; }; - "@babel/traverse-7.6.2" = { + "@babel/traverse-7.8.6" = { name = "_at_babel_slash_traverse"; packageName = "@babel/traverse"; - version = "7.6.2"; + version = "7.8.6"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.6.2.tgz"; - sha512 = "8fRE76xNwNttVEF2TwxJDGBLWthUkHWSldmfuBzVRmEDWOtu4XdINTgN7TDWzuLg4bbeIMLvfMFD9we5YcWkRQ=="; + url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz"; + sha512 = "2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A=="; }; }; - "@babel/types-7.6.1" = { + "@babel/types-7.8.7" = { name = "_at_babel_slash_types"; packageName = "@babel/types"; - version = "7.6.1"; + version = "7.8.7"; src = fetchurl { - url = "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz"; - sha512 = "X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g=="; + url = "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz"; + sha512 = "k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw=="; }; }; - "@cnakazawa/watch-1.0.3" = { + "@cnakazawa/watch-1.0.4" = { name = "_at_cnakazawa_slash_watch"; packageName = "@cnakazawa/watch"; - version = "1.0.3"; + version = "1.0.4"; src = fetchurl { - url = "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.3.tgz"; - sha512 = "r5160ogAvGyHsal38Kux7YYtodEKOj89RGb28ht1jh3SJb08VwRwAKKJL0bGb04Zd/3r9FL3BFIc3bBidYffCA=="; + url = "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz"; + sha512 = "v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ=="; }; }; "@jest/console-24.9.0" = { @@ -274,22 +274,22 @@ let sha512 = "dBtBbrc+qTHy1WdfHYjBwRln4+LWqASWakLHsWHR2NWHIFkv4W3O070IGoGLEBrJBvct3r0L1BUPuvURi7kYUQ=="; }; }; - "@types/babel__core-7.1.3" = { + "@types/babel__core-7.1.6" = { name = "_at_types_slash_babel__core"; packageName = "@types/babel__core"; - version = "7.1.3"; + version = "7.1.6"; src = fetchurl { - url = "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.3.tgz"; - sha512 = "8fBo0UR2CcwWxeX7WIIgJ7lXjasFxoYgRnFHUj+hRvKkpiBJbxhdAPTCY6/ZKM0uxANFVzt4yObSLuTiTnazDA=="; + url = "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.6.tgz"; + sha512 = "tTnhWszAqvXnhW7m5jQU9PomXSiKXk2sFxpahXvI20SZKu9ylPi8WtIxueZ6ehDWikPT0jeFujMj3X4ZHuf3Tg=="; }; }; - "@types/babel__generator-7.6.0" = { + "@types/babel__generator-7.6.1" = { name = "_at_types_slash_babel__generator"; packageName = "@types/babel__generator"; - version = "7.6.0"; + version = "7.6.1"; src = fetchurl { - url = "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.0.tgz"; - sha512 = "c1mZUu4up5cp9KROs/QAw0gTeHrw/x7m52LcnvMxxOZ03DmLwPV0MlGmlgzV3cnSdjhJOZsj7E7FHeioai+egw=="; + url = "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz"; + sha512 = "bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew=="; }; }; "@types/babel__template-7.0.2" = { @@ -301,13 +301,13 @@ let sha512 = "/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg=="; }; }; - "@types/babel__traverse-7.0.7" = { + "@types/babel__traverse-7.0.9" = { name = "_at_types_slash_babel__traverse"; packageName = "@types/babel__traverse"; - version = "7.0.7"; + version = "7.0.9"; src = fetchurl { - url = "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.7.tgz"; - sha512 = "CeBpmX1J8kWLcDEnI3Cl2Eo6RfbGvzUctA+CjZUhOKDFbLfcr7fc4usEqLNWetrlJd7RhAkyYe2czXop4fICpw=="; + url = "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.9.tgz"; + sha512 = "jEFQ8L1tuvPjOI8lnpaf73oCJe+aoxL6ygqSy6c8LcW98zaC+4mzWuQIRCEvKeCOu+lbqdXcg4Uqmm1S8AP1tw=="; }; }; "@types/babylon-6.16.5" = { @@ -319,13 +319,13 @@ let sha512 = "xH2e58elpj1X4ynnKp9qSnWlsRTIs6n3tgLGNfwAGHwePw0mulHQllV34n0T25uYSu1k0hRKkWXF890B1yS47w=="; }; }; - "@types/body-parser-1.17.1" = { + "@types/body-parser-1.19.0" = { name = "_at_types_slash_body-parser"; packageName = "@types/body-parser"; - version = "1.17.1"; + version = "1.19.0"; src = fetchurl { - url = "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.17.1.tgz"; - sha512 = "RoX2EZjMiFMjZh9lmYrwgoP9RTpAjSHiJxdp4oidAQVO02T7HER3xj9UKue5534ULWeqVEkujhWcyvUce+d68w=="; + url = "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz"; + sha512 = "W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ=="; }; }; "@types/caseless-0.12.2" = { @@ -346,13 +346,13 @@ let sha512 = "4eOPXyn5DmP64MCMF8ePDvdlvlzt2a+F8ZaVjqmh2yFCpGjc1kI3kGnCFYX9SCsGTjQcWIyVZ86IHCEyjy/MNg=="; }; }; - "@types/connect-3.4.32" = { + "@types/connect-3.4.33" = { name = "_at_types_slash_connect"; packageName = "@types/connect"; - version = "3.4.32"; + version = "3.4.33"; src = fetchurl { - url = "https://registry.npmjs.org/@types/connect/-/connect-3.4.32.tgz"; - sha512 = "4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg=="; + url = "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz"; + sha512 = "2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A=="; }; }; "@types/cookies-0.7.4" = { @@ -364,13 +364,13 @@ let sha512 = "oTGtMzZZAVuEjTwCjIh8T8FrC8n/uwy+PG0yTvQcdZ7etoel7C7/3MSd7qrukENTgQtotG7gvBlBojuVs7X5rw=="; }; }; - "@types/cron-1.7.1" = { + "@types/cron-1.7.2" = { name = "_at_types_slash_cron"; packageName = "@types/cron"; - version = "1.7.1"; + version = "1.7.2"; src = fetchurl { - url = "https://registry.npmjs.org/@types/cron/-/cron-1.7.1.tgz"; - sha512 = "48brwgU18DqA0mQX1As5OcJEo1yNjaXMM6Mk4r8K1dOzLJRQ37FE/kCivKx7ClKEHfhX2FdcxKzJ1B744a+V3A=="; + url = "https://registry.npmjs.org/@types/cron/-/cron-1.7.2.tgz"; + sha512 = "AEpNLRcsVSc5AdseJKNHpz0d4e8+ow+abTaC0fKDbAU86rF1evoFF0oC2fV9FdqtfVXkG2LKshpLTJCFOpyvTg=="; }; }; "@types/events-3.0.0" = { @@ -382,22 +382,22 @@ let sha512 = "EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g=="; }; }; - "@types/express-4.17.1" = { + "@types/express-4.17.3" = { name = "_at_types_slash_express"; packageName = "@types/express"; - version = "4.17.1"; + version = "4.17.3"; src = fetchurl { - url = "https://registry.npmjs.org/@types/express/-/express-4.17.1.tgz"; - sha512 = "VfH/XCP0QbQk5B5puLqTLEeFgR8lfCJHZJKkInZ9mkYd+u8byX0kztXEQxEk4wZXJs8HI+7km2ALXjn4YKcX9w=="; + url = "https://registry.npmjs.org/@types/express/-/express-4.17.3.tgz"; + sha512 = "I8cGRJj3pyOLs/HndoP+25vOqhqWkAZsWMEmq1qXy/b/M3ppufecUwaK2/TVDVxcV61/iSdhykUjQQ2DLSrTdg=="; }; }; - "@types/express-serve-static-core-4.16.9" = { + "@types/express-serve-static-core-4.17.2" = { name = "_at_types_slash_express-serve-static-core"; packageName = "@types/express-serve-static-core"; - version = "4.16.9"; + version = "4.17.2"; src = fetchurl { - url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.16.9.tgz"; - sha512 = "GqpaVWR0DM8FnRUJYKlWgyARoBUAVfRIeVDZQKOttLFp5SmhhF9YFIYeTPwMd/AXfxlP7xVO2dj1fGu0Q+krKQ=="; + url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.2.tgz"; + sha512 = "El9yMpctM6tORDAiBwZVLMcxoTMcqqRO9dVyYcn7ycLWbvR8klrDn8CAOwRfZujZtWD7yS/mshTdz43jMOejbg=="; }; }; "@types/formidable-1.0.31" = { @@ -436,13 +436,13 @@ let sha512 = "hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg=="; }; }; - "@types/istanbul-lib-report-1.1.1" = { + "@types/istanbul-lib-report-3.0.0" = { name = "_at_types_slash_istanbul-lib-report"; packageName = "@types/istanbul-lib-report"; - version = "1.1.1"; + version = "3.0.0"; src = fetchurl { - url = "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz"; - sha512 = "3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg=="; + url = "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz"; + sha512 = "plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg=="; }; }; "@types/istanbul-reports-1.1.1" = { @@ -454,67 +454,58 @@ let sha512 = "UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA=="; }; }; - "@types/jest-24.0.18" = { + "@types/jest-24.9.1" = { name = "_at_types_slash_jest"; packageName = "@types/jest"; - version = "24.0.18"; + version = "24.9.1"; src = fetchurl { - url = "https://registry.npmjs.org/@types/jest/-/jest-24.0.18.tgz"; - sha512 = "jcDDXdjTcrQzdN06+TSVsPPqxvsZA/5QkYfIZlq1JMw7FdP5AZylbOc+6B/cuDurctRe+MziUMtQ3xQdrbjqyQ=="; + url = "https://registry.npmjs.org/@types/jest/-/jest-24.9.1.tgz"; + sha512 = "Fb38HkXSVA4L8fGKEZ6le5bB8r6MRWlOCZbVuWZcmOMSCd2wCYOwN1ibj8daIoV9naq7aaOZjrLCoCMptKU/4Q=="; }; }; - "@types/jest-diff-20.0.1" = { - name = "_at_types_slash_jest-diff"; - packageName = "@types/jest-diff"; - version = "20.0.1"; - src = fetchurl { - url = "https://registry.npmjs.org/@types/jest-diff/-/jest-diff-20.0.1.tgz"; - sha512 = "yALhelO3i0hqZwhjtcr6dYyaLoCHbAMshwtj6cGxTvHZAKXHsYGdff6E8EPw3xLKY0ELUTQ69Q1rQiJENnccMA=="; - }; - }; - "@types/js-yaml-3.12.1" = { + "@types/js-yaml-3.12.2" = { name = "_at_types_slash_js-yaml"; packageName = "@types/js-yaml"; - version = "3.12.1"; + version = "3.12.2"; src = fetchurl { - url = "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-3.12.1.tgz"; - sha512 = "SGGAhXLHDx+PK4YLNcNGa6goPf9XRWQNAUUbffkwVGGXIxmDKWyGGL4inzq2sPmExu431Ekb9aEMn9BkPqEYFA=="; + url = "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-3.12.2.tgz"; + sha512 = "0CFu/g4mDSNkodVwWijdlr8jH7RoplRWNgovjFLEZeT+QEbbZXjBmCe3HwaWheAlCbHwomTwzZoSedeOycABug=="; }; }; - "@types/keygrip-1.0.1" = { + "@types/keygrip-1.0.2" = { name = "_at_types_slash_keygrip"; packageName = "@types/keygrip"; - version = "1.0.1"; + version = "1.0.2"; src = fetchurl { - url = "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.1.tgz"; - sha1 = "ff540462d2fb4d0a88441ceaf27d287b01c3d878"; + url = "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz"; + sha512 = "GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw=="; }; }; - "@types/koa-2.0.50" = { + "@types/koa-2.11.2" = { name = "_at_types_slash_koa"; packageName = "@types/koa"; - version = "2.0.50"; + version = "2.11.2"; src = fetchurl { - url = "https://registry.npmjs.org/@types/koa/-/koa-2.0.50.tgz"; - sha512 = "TcgOD2lh0EISSadAk1DOBYw7kNoY9XdeB3vEMOKiDDaTMYm+V54nyPsU7Ulb/htb5OBIR79RgTeCWntCcophLw=="; + url = "https://registry.npmjs.org/@types/koa/-/koa-2.11.2.tgz"; + sha512 = "2UPelagNNW6bnc1I5kIzluCaheXRA9S+NyOdXEFFj9Az7jc15ek5V03kb8OTbb3tdZ5i2BIJObe86PhHvpMolg=="; }; }; - "@types/koa-compose-3.2.4" = { + "@types/koa-compose-3.2.5" = { name = "_at_types_slash_koa-compose"; packageName = "@types/koa-compose"; - version = "3.2.4"; + version = "3.2.5"; src = fetchurl { - url = "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.4.tgz"; - sha512 = "ioou0rxkuWL+yBQYsHUQAzRTfVxAg8Y2VfMftU+Y3RA03/MzuFL0x/M2sXXj3PkfnENbHsjeHR1aMdezLYpTeA=="; + url = "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz"; + sha512 = "B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ=="; }; }; - "@types/koa-router-7.0.42" = { + "@types/koa-router-7.4.0" = { name = "_at_types_slash_koa-router"; packageName = "@types/koa-router"; - version = "7.0.42"; + version = "7.4.0"; src = fetchurl { - url = "https://registry.npmjs.org/@types/koa-router/-/koa-router-7.0.42.tgz"; - sha512 = "mggrNY7Ywwjt7QjaMAlbb1ixE+v7AFskOeyKdmZT/NvPVEAo48gYUxIcF8ILlMc3eg1bo6SxNoUcbxhTv7edrA=="; + url = "https://registry.npmjs.org/@types/koa-router/-/koa-router-7.4.0.tgz"; + sha512 = "CkNyhGOCJ6rpBEG0rlSQhwHsHNwMzGLE49tV3jE5f0TvMzy/SmoCAIlHWdOLs8Mro+BqtKFH6e/lDaibWkydag=="; }; }; "@types/koa-send-4.1.2" = { @@ -535,22 +526,22 @@ let sha512 = "SSpct5fEcAeRkBHa3RiwCIRfDHcD1cZRhwRF///ZfvRt8KhoqRrhK6wpDlYPk/vWHVFE9hPGqh68bhzsHkir4w=="; }; }; - "@types/koa-views-2.0.3" = { + "@types/koa-views-2.0.4" = { name = "_at_types_slash_koa-views"; packageName = "@types/koa-views"; - version = "2.0.3"; + version = "2.0.4"; src = fetchurl { - url = "https://registry.npmjs.org/@types/koa-views/-/koa-views-2.0.3.tgz"; - sha512 = "XLn//7qUUz2U9ZKXyHPwVIcQbZcW3phYTFXHGa1eW5BN88bi8n2fegvwJ+TokL2jRmRqBWwMB5p7Aab9iq1sZw=="; + url = "https://registry.npmjs.org/@types/koa-views/-/koa-views-2.0.4.tgz"; + sha512 = "aGFBVLiPC7FkXTqHLhnmjKhx3COV+GeJHO9OkLX/p/iAQTgDB5bbnsddx3XgrS6aACWyxR3BpQJVDdSqCNY1lw=="; }; }; - "@types/lodash-4.14.141" = { + "@types/lodash-4.14.149" = { name = "_at_types_slash_lodash"; packageName = "@types/lodash"; - version = "4.14.141"; + version = "4.14.149"; src = fetchurl { - url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.141.tgz"; - sha512 = "v5NYIi9qEbFEUpCyikmnOYe4YlP8BMUdTcNCAquAKzu+FA7rZ1onj9x80mbnDdOW/K5bFf3Tv5kJplP33+gAbQ=="; + url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.149.tgz"; + sha512 = "ijGqzZt/b7BfzcK9vTrS6MFljQRPn5BFWOx8oE0GYxribu6uV+aA9zZuXI1zc/etK9E8nrgdoF2+LgUw7+9tJQ=="; }; }; "@types/lodash.clonedeep-4.5.6" = { @@ -589,22 +580,22 @@ let sha512 = "U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg=="; }; }; - "@types/node-10.14.20" = { + "@types/node-10.17.17" = { name = "_at_types_slash_node"; packageName = "@types/node"; - version = "10.14.20"; + version = "10.17.17"; src = fetchurl { - url = "https://registry.npmjs.org/@types/node/-/node-10.14.20.tgz"; - sha512 = "An+MXSV8CGXz/BO9C1KKsoJ/8WDrvlNUaRMsm2h+IHZuSyQkM8U5bJJkb8ItLKA73VePG/nUK+t+EuW2IWuhsQ=="; + url = "https://registry.npmjs.org/@types/node/-/node-10.17.17.tgz"; + sha512 = "gpNnRnZP3VWzzj5k3qrpRC6Rk3H/uclhAVo1aIvwzK5p5cOrs9yEyQ8H/HBsBY0u5rrWxXEiVPQ0dEB6pkjE8Q=="; }; }; - "@types/node-12.7.11" = { + "@types/node-12.12.30" = { name = "_at_types_slash_node"; packageName = "@types/node"; - version = "12.7.11"; + version = "12.12.30"; src = fetchurl { - url = "https://registry.npmjs.org/@types/node/-/node-12.7.11.tgz"; - sha512 = "Otxmr2rrZLKRYIybtdG/sgeO+tHY20GxeDjcGmUnmmlCWyEnv2a2x1ZXBo3BTec4OiTXMQCiazB8NMBf0iRlFw=="; + url = "https://registry.npmjs.org/@types/node/-/node-12.12.30.tgz"; + sha512 = "sz9MF/zk6qVr3pAnM0BSQvYIBK44tS75QC5N+VbWSE4DjCV/pJ+UzCW/F+vVnl7TkOPcuwQureKNtSSwjBTaMg=="; }; }; "@types/ora-3.2.0" = { @@ -625,13 +616,13 @@ let sha512 = "ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA=="; }; }; - "@types/request-2.48.3" = { + "@types/request-2.48.4" = { name = "_at_types_slash_request"; packageName = "@types/request"; - version = "2.48.3"; + version = "2.48.4"; src = fetchurl { - url = "https://registry.npmjs.org/@types/request/-/request-2.48.3.tgz"; - sha512 = "3Wo2jNYwqgXcIz/rrq18AdOZUQB8cQ34CXZo+LUwPJNpvRAL86+Kc2wwI8mqpz9Cr1V+enIox5v+WZhy/p3h8w=="; + url = "https://registry.npmjs.org/@types/request/-/request-2.48.4.tgz"; + sha512 = "W1t1MTKYR8PxICH+A4HgEIPuAC3sbljoEVfyZbeFJJDbr30guDspJri2XOaM2E+Un7ZjrihaDi7cf6fPa2tbgw=="; }; }; "@types/serve-static-1.13.3" = { @@ -652,22 +643,22 @@ let sha512 = "l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw=="; }; }; - "@types/tough-cookie-2.3.5" = { + "@types/tough-cookie-2.3.6" = { name = "_at_types_slash_tough-cookie"; packageName = "@types/tough-cookie"; - version = "2.3.5"; + version = "2.3.6"; src = fetchurl { - url = "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.5.tgz"; - sha512 = "SCcK7mvGi3+ZNz833RRjFIxrn4gI1PPR3NtuIS+6vMkvmsGjosqTJwRt5bAEFLRz+wtJMWv8+uOnZf2hi2QXTg=="; + url = "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.6.tgz"; + sha512 = "wHNBMnkoEBiRAd3s8KTKwIuO9biFtTf0LehITzBhSco+HQI0xkXZbLOD55SW3Aqw3oUkHstkm5SPv58yaAdFPQ=="; }; }; - "@types/underscore-1.9.3" = { + "@types/underscore-1.9.4" = { name = "_at_types_slash_underscore"; packageName = "@types/underscore"; - version = "1.9.3"; + version = "1.9.4"; src = fetchurl { - url = "https://registry.npmjs.org/@types/underscore/-/underscore-1.9.3.tgz"; - sha512 = "SwbHKB2DPIDlvYqtK5O+0LFtZAyrUSw4c0q+HWwmH1Ve3KMQ0/5PlV3RX97+3dP7yMrnNQ8/bCWWvQpPl03Mug=="; + url = "https://registry.npmjs.org/@types/underscore/-/underscore-1.9.4.tgz"; + sha512 = "CjHWEMECc2/UxOZh0kpiz3lEyX2Px3rQS9HzD20lxMvx571ivOBQKeLnqEjxUY0BMgp6WJWo/pQLRBwMW5v4WQ=="; }; }; "@types/websocket-0.0.40" = { @@ -679,31 +670,31 @@ let sha512 = "ldteZwWIgl9cOy7FyvYn+39Ah4+PfpVE72eYKw75iy2L0zTbhbcwvzeJ5IOu6DQP93bjfXq0NGHY6FYtmYoqFQ=="; }; }; - "@types/ws-6.0.3" = { + "@types/ws-6.0.4" = { name = "_at_types_slash_ws"; packageName = "@types/ws"; - version = "6.0.3"; + version = "6.0.4"; src = fetchurl { - url = "https://registry.npmjs.org/@types/ws/-/ws-6.0.3.tgz"; - sha512 = "yBTM0P05Tx9iXGq00BbJPo37ox68R5vaGTXivs6RGh/BQ6QP5zqZDGWdAO6JbRE/iR1l80xeGAwCQS2nMV9S/w=="; + url = "https://registry.npmjs.org/@types/ws/-/ws-6.0.4.tgz"; + sha512 = "PpPrX7SZW9re6+Ha8ojZG4Se8AZXgf0GK6zmfqEuCsY49LFDNXO3SByp44X3dFEqtB73lkCDAdUazhAjVPiNwg=="; }; }; - "@types/yargs-13.0.3" = { + "@types/yargs-13.0.8" = { name = "_at_types_slash_yargs"; packageName = "@types/yargs"; - version = "13.0.3"; + version = "13.0.8"; src = fetchurl { - url = "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.3.tgz"; - sha512 = "K8/LfZq2duW33XW/tFwEAfnZlqIfVsoyRB3kfXdPXYhl0nfM8mmh7GS0jg7WrX2Dgq/0Ha/pR1PaR+BvmWwjiQ=="; + url = "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz"; + sha512 = "XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA=="; }; }; - "@types/yargs-parser-13.1.0" = { + "@types/yargs-parser-15.0.0" = { name = "_at_types_slash_yargs-parser"; packageName = "@types/yargs-parser"; - version = "13.1.0"; + version = "15.0.0"; src = fetchurl { - url = "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-13.1.0.tgz"; - sha512 = "gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg=="; + url = "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz"; + sha512 = "FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw=="; }; }; "@webassemblyjs/ast-1.8.5" = { @@ -886,13 +877,13 @@ let sha512 = "NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="; }; }; - "abab-2.0.2" = { + "abab-2.0.3" = { name = "abab"; packageName = "abab"; - version = "2.0.2"; + version = "2.0.3"; src = fetchurl { - url = "https://registry.npmjs.org/abab/-/abab-2.0.2.tgz"; - sha512 = "2scffjvioEmNz0OyDSLGWDfKCVwaKc6l9Pm9kOIREU13ClXZvHpg/nRL5xyjSSSLhOnXqft2HpsAzNEEA8cFFg=="; + url = "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz"; + sha512 = "tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg=="; }; }; "abbrev-1.1.1" = { @@ -931,22 +922,31 @@ let sha1 = "105495ae5361d697bd195c825192e1ad7f253787"; }; }; - "acorn-5.7.3" = { + "acorn-5.7.4" = { name = "acorn"; packageName = "acorn"; - version = "5.7.3"; + version = "5.7.4"; src = fetchurl { - url = "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz"; - sha512 = "T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw=="; + url = "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz"; + sha512 = "1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg=="; }; }; - "acorn-6.3.0" = { + "acorn-6.4.1" = { name = "acorn"; packageName = "acorn"; - version = "6.3.0"; + version = "6.4.1"; src = fetchurl { - url = "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz"; - sha512 = "/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA=="; + url = "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz"; + sha512 = "ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA=="; + }; + }; + "acorn-7.1.1" = { + name = "acorn"; + packageName = "acorn"; + version = "7.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz"; + sha512 = "add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg=="; }; }; "acorn-globals-3.1.0" = { @@ -976,6 +976,15 @@ let sha512 = "7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA=="; }; }; + "acorn-walk-7.1.1" = { + name = "acorn-walk"; + packageName = "acorn-walk"; + version = "7.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.1.1.tgz"; + sha512 = "wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ=="; + }; + }; "aggregate-error-1.0.0" = { name = "aggregate-error"; packageName = "aggregate-error"; @@ -985,13 +994,13 @@ let sha1 = "888344dad0220a72e3af50906117f48771925fac"; }; }; - "ajv-6.10.2" = { + "ajv-6.12.0" = { name = "ajv"; packageName = "ajv"; - version = "6.10.2"; + version = "6.12.0"; src = fetchurl { - url = "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz"; - sha512 = "TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw=="; + url = "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz"; + sha512 = "D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw=="; }; }; "ajv-errors-1.0.1" = { @@ -1282,13 +1291,13 @@ let sha512 = "+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg=="; }; }; - "async-1.5.2" = { + "async-2.6.3" = { name = "async"; packageName = "async"; - version = "1.5.2"; + version = "2.6.3"; src = fetchurl { - url = "https://registry.npmjs.org/async/-/async-1.5.2.tgz"; - sha1 = "ec6a61ae56480c0c3cb241c95618e20892f9672a"; + url = "https://registry.npmjs.org/async/-/async-2.6.3.tgz"; + sha512 = "zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg=="; }; }; "async-each-1.0.3" = { @@ -1345,22 +1354,22 @@ let sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"; }; }; - "aws4-1.8.0" = { + "aws4-1.9.1" = { name = "aws4"; packageName = "aws4"; - version = "1.8.0"; + version = "1.9.1"; src = fetchurl { - url = "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz"; - sha512 = "ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ=="; + url = "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz"; + sha512 = "wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug=="; }; }; - "axios-0.19.0" = { + "axios-0.19.2" = { name = "axios"; packageName = "axios"; - version = "0.19.0"; + version = "0.19.2"; src = fetchurl { - url = "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz"; - sha512 = "1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ=="; + url = "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz"; + sha512 = "fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA=="; }; }; "babel-6.23.0" = { @@ -1966,13 +1975,22 @@ let sha512 = "Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw=="; }; }; - "bluebird-3.7.0" = { + "bindings-1.5.0" = { + name = "bindings"; + packageName = "bindings"; + version = "1.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz"; + sha512 = "p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ=="; + }; + }; + "bluebird-3.7.2" = { name = "bluebird"; packageName = "bluebird"; - version = "3.7.0"; + version = "3.7.2"; src = fetchurl { - url = "https://registry.npmjs.org/bluebird/-/bluebird-3.7.0.tgz"; - sha512 = "aBQ1FxIa7kSWCcmKHlcHFlT2jt6J/l4FzC7KcPELkOJOsPOb/bccdhmIrKDfXhwFrmc7vDoDrrepFvGqjyXGJg=="; + url = "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz"; + sha512 = "XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="; }; }; "bn.js-4.11.8" = { @@ -2029,13 +2047,13 @@ let sha1 = "12c25efe40a45e3c323eb8675a0a0ce57b22371f"; }; }; - "browser-process-hrtime-0.1.3" = { + "browser-process-hrtime-1.0.0" = { name = "browser-process-hrtime"; packageName = "browser-process-hrtime"; - version = "0.1.3"; + version = "1.0.0"; src = fetchurl { - url = "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz"; - sha512 = "bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw=="; + url = "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz"; + sha512 = "9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow=="; }; }; "browser-resolve-1.11.3" = { @@ -2119,22 +2137,22 @@ let sha512 = "pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog=="; }; }; - "bser-2.1.0" = { + "bser-2.1.1" = { name = "bser"; packageName = "bser"; - version = "2.1.0"; + version = "2.1.1"; src = fetchurl { - url = "https://registry.npmjs.org/bser/-/bser-2.1.0.tgz"; - sha512 = "8zsjWrQkkBoLK6uxASk1nJ2SKv97ltiGDo6A3wA0/yRPz+CwmEyDo0hUrhIuukG2JHpAl3bvFIixw2/3Hi0DOg=="; + url = "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz"; + sha512 = "gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ=="; }; }; - "buffer-4.9.1" = { + "buffer-4.9.2" = { name = "buffer"; packageName = "buffer"; - version = "4.9.1"; + version = "4.9.2"; src = fetchurl { - url = "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz"; - sha1 = "6d1bb601b07a4efced97094132093027c95bc298"; + url = "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz"; + sha512 = "xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg=="; }; }; "buffer-from-1.1.1" = { @@ -2281,13 +2299,13 @@ let sha512 = "L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="; }; }; - "caniuse-lite-1.0.30000999" = { + "caniuse-lite-1.0.30001035" = { name = "caniuse-lite"; packageName = "caniuse-lite"; - version = "1.0.30000999"; + version = "1.0.30001035"; src = fetchurl { - url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000999.tgz"; - sha512 = "1CUyKyecPeksKwXZvYw0tEoaMCo/RwBlXmEtN5vVnabvO0KPd9RQLcaAuR9/1F+KDMv6esmOFWlsXuzDk+8rxg=="; + url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001035.tgz"; + sha512 = "C1ZxgkuA4/bUEdMbU5WrGY4+UhMFFiXrgNAfxiMIqWgFTWfv/xsZCS2xEHT2LMq7xAZfuAnu6mcqyDl0ZR6wLQ=="; }; }; "capture-exit-2.0.0" = { @@ -2362,13 +2380,13 @@ let sha512 = "ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg=="; }; }; - "chownr-1.1.3" = { + "chownr-1.1.4" = { name = "chownr"; packageName = "chownr"; - version = "1.1.3"; + version = "1.1.4"; src = fetchurl { - url = "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz"; - sha512 = "i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw=="; + url = "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz"; + sha512 = "jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="; }; }; "chrome-trace-event-1.0.2" = { @@ -2407,13 +2425,13 @@ let sha512 = "qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg=="; }; }; - "clean-css-4.2.1" = { + "clean-css-4.2.3" = { name = "clean-css"; packageName = "clean-css"; - version = "4.2.1"; + version = "4.2.3"; src = fetchurl { - url = "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz"; - sha512 = "4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g=="; + url = "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz"; + sha512 = "VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA=="; }; }; "clean-stack-1.3.0" = { @@ -2560,13 +2578,13 @@ let sha512 = "hL/eG8lrll1Qy1ezvkant+trihbGnaKaeEjj6Scyr3DN+RC7iQ5Rz84IeLERfAWDGo0HBSNAakczwgCilDXnWg=="; }; }; - "commander-2.20.1" = { + "commander-2.20.3" = { name = "commander"; packageName = "commander"; - version = "2.20.1"; + version = "2.20.3"; src = fetchurl { - url = "https://registry.npmjs.org/commander/-/commander-2.20.1.tgz"; - sha512 = "cCuLsMhJeWQ/ZpsFTbE765kvVfoeSddc4nU3up4fV+fDBcfUXnbITJ+JzhkdjzOqhURjZgujxaioam4RM9yGUg=="; + url = "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz"; + sha512 = "GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="; }; }; "commondir-1.0.1" = { @@ -2587,13 +2605,13 @@ let sha512 = "Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="; }; }; - "compressible-2.0.17" = { + "compressible-2.0.18" = { name = "compressible"; packageName = "compressible"; - version = "2.0.17"; + version = "2.0.18"; src = fetchurl { - url = "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz"; - sha512 = "BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw=="; + url = "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz"; + sha512 = "AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg=="; }; }; "compression-1.7.4" = { @@ -2650,13 +2668,13 @@ let sha512 = "e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg=="; }; }; - "console-browserify-1.1.0" = { + "console-browserify-1.2.0" = { name = "console-browserify"; packageName = "console-browserify"; - version = "1.1.0"; + version = "1.2.0"; src = fetchurl { - url = "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz"; - sha1 = "f0241c45730a9fc6323b206dbf38edc741d0bb10"; + url = "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz"; + sha512 = "ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA=="; }; }; "consolidate-0.15.1" = { @@ -2704,13 +2722,13 @@ let sha512 = "hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="; }; }; - "convert-source-map-1.6.0" = { + "convert-source-map-1.7.0" = { name = "convert-source-map"; packageName = "convert-source-map"; - version = "1.6.0"; + version = "1.7.0"; src = fetchurl { - url = "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz"; - sha512 = "eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A=="; + url = "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz"; + sha512 = "4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA=="; }; }; "cookie-0.4.0" = { @@ -2731,13 +2749,13 @@ let sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c"; }; }; - "cookies-0.7.3" = { + "cookies-0.8.0" = { name = "cookies"; packageName = "cookies"; - version = "0.7.3"; + version = "0.8.0"; src = fetchurl { - url = "https://registry.npmjs.org/cookies/-/cookies-0.7.3.tgz"; - sha512 = "+gixgxYSgQLTaTIilDHAdlNPZDENDQernEMiIcZpYYP14zgHsCt4Ce1FEjFtcp6GefhozebB6orvhAAWx/IS0A=="; + url = "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz"; + sha512 = "8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow=="; }; }; "copy-concurrently-1.0.5" = { @@ -2767,13 +2785,13 @@ let sha512 = "Y+SQCF+0NoWQryez2zXn5J5knmr9z/9qSQt7fbL78u83rxmigOy8X5+BFn8CFSuX+nKT8gpYwJX68ekqtQt6ZA=="; }; }; - "core-js-2.6.9" = { + "core-js-2.6.11" = { name = "core-js"; packageName = "core-js"; - version = "2.6.9"; + version = "2.6.11"; src = fetchurl { - url = "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz"; - sha512 = "HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A=="; + url = "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz"; + sha512 = "5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg=="; }; }; "core-util-is-1.0.2" = { @@ -2812,13 +2830,13 @@ let sha512 = "MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg=="; }; }; - "cron-1.7.2" = { + "cron-1.8.2" = { name = "cron"; packageName = "cron"; - version = "1.7.2"; + version = "1.8.2"; src = fetchurl { - url = "https://registry.npmjs.org/cron/-/cron-1.7.2.tgz"; - sha512 = "+SaJ2OfeRvfQqwXQ2kgr0Y5pzBR/lijf5OpnnaruwWnmI799JfWr2jN2ItOV9s3A/+TFOt6mxvKzQq5F0Jp6VQ=="; + url = "https://registry.npmjs.org/cron/-/cron-1.8.2.tgz"; + sha512 = "Gk2c4y6xKEO8FSAUTklqtfSr7oTq0CiPQeLBG5Fl0qoXpZyMcj1SG59YL+hqq04bu6/IuEA7lMkYDAplQNKkyg=="; }; }; "cross-spawn-6.0.5" = { @@ -2893,15 +2911,6 @@ let sha512 = "YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ=="; }; }; - "date-now-0.1.4" = { - name = "date-now"; - packageName = "date-now"; - version = "0.1.4"; - src = fetchurl { - url = "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz"; - sha1 = "eaf439fd4d4848ad74e5cc7dbef200672b9e345b"; - }; - }; "debug-2.6.9" = { name = "debug"; packageName = "debug"; @@ -3073,13 +3082,22 @@ let sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9"; }; }; - "des.js-1.0.0" = { + "depd-2.0.0" = { + name = "depd"; + packageName = "depd"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz"; + sha512 = "g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="; + }; + }; + "des.js-1.0.1" = { name = "des.js"; packageName = "des.js"; - version = "1.0.0"; + version = "1.0.1"; src = fetchurl { - url = "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz"; - sha1 = "c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc"; + url = "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz"; + sha512 = "Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA=="; }; }; "destroy-1.0.4" = { @@ -3262,31 +3280,31 @@ let sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d"; }; }; - "ejs-2.7.1" = { + "ejs-2.7.4" = { name = "ejs"; packageName = "ejs"; - version = "2.7.1"; + version = "2.7.4"; src = fetchurl { - url = "https://registry.npmjs.org/ejs/-/ejs-2.7.1.tgz"; - sha512 = "kS/gEPzZs3Y1rRsbGX4UOSjtP/CeJP0CxSNZHYxGfVM/VgLcv0ZqM7C45YyTj2DI2g7+P9Dd24C+IMIg6D0nYQ=="; + url = "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz"; + sha512 = "7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA=="; }; }; - "electron-to-chromium-1.3.275" = { + "electron-to-chromium-1.3.376" = { name = "electron-to-chromium"; packageName = "electron-to-chromium"; - version = "1.3.275"; + version = "1.3.376"; src = fetchurl { - url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.275.tgz"; - sha512 = "/YWtW/VapMnuYA1lNOaa1F4GhR1LBf+CUTp60lzDPEEh0XOzyOAyULyYZVF9vziZ3qSbTqCwmKwsyRXp66STbw=="; + url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.376.tgz"; + sha512 = "cv/PYVz5szeMz192ngilmezyPNFkUjuynuL2vNdiqIrio440nfTDdc0JJU0TS2KHLSVCs9gBbt4CFqM+HcBnjw=="; }; }; - "elliptic-6.5.1" = { + "elliptic-6.5.2" = { name = "elliptic"; packageName = "elliptic"; - version = "6.5.1"; + version = "6.5.2"; src = fetchurl { - url = "https://registry.npmjs.org/elliptic/-/elliptic-6.5.1.tgz"; - sha512 = "xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg=="; + url = "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz"; + sha512 = "f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw=="; }; }; "emoji-regex-7.0.3" = { @@ -3307,6 +3325,15 @@ let sha1 = "4daa4d9db00f9819880c79fa457ae5b09a1fd389"; }; }; + "emojis-list-3.0.0" = { + name = "emojis-list"; + packageName = "emojis-list"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz"; + sha512 = "/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q=="; + }; + }; "encodeurl-1.0.2" = { name = "encodeurl"; packageName = "encodeurl"; @@ -3334,6 +3361,15 @@ let sha512 = "F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng=="; }; }; + "enhanced-resolve-4.1.1" = { + name = "enhanced-resolve"; + packageName = "enhanced-resolve"; + version = "4.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz"; + sha512 = "98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA=="; + }; + }; "errno-0.1.7" = { name = "errno"; packageName = "errno"; @@ -3361,31 +3397,31 @@ let sha1 = "e2b3d91b54aed672f309d950d154850fa11d4f37"; }; }; - "es-abstract-1.15.0" = { + "es-abstract-1.17.4" = { name = "es-abstract"; packageName = "es-abstract"; - version = "1.15.0"; + version = "1.17.4"; src = fetchurl { - url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.15.0.tgz"; - sha512 = "bhkEqWJ2t2lMeaJDuk7okMkJWI/yqgH/EoGwpcvv0XW9RWQsRspI4wt6xuyuvMvvQE3gg/D9HXppgk21w78GyQ=="; + url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz"; + sha512 = "Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ=="; }; }; - "es-to-primitive-1.2.0" = { + "es-to-primitive-1.2.1" = { name = "es-to-primitive"; packageName = "es-to-primitive"; - version = "1.2.0"; + version = "1.2.1"; src = fetchurl { - url = "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz"; - sha512 = "qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg=="; + url = "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz"; + sha512 = "QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA=="; }; }; - "es5-ext-0.10.51" = { + "es5-ext-0.10.53" = { name = "es5-ext"; packageName = "es5-ext"; - version = "0.10.51"; + version = "0.10.53"; src = fetchurl { - url = "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.51.tgz"; - sha512 = "oRpWzM2WcLHVKpnrcyB7OW8j/s67Ba04JCm0WnNv3RiABSvs7mrQlutB8DBv793gKcp0XENR8Il8WxGTlZ73gQ=="; + url = "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz"; + sha512 = "Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q=="; }; }; "es6-iterator-2.0.3" = { @@ -3406,13 +3442,13 @@ let sha512 = "HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="; }; }; - "es6-symbol-3.1.2" = { + "es6-symbol-3.1.3" = { name = "es6-symbol"; packageName = "es6-symbol"; - version = "3.1.2"; + version = "3.1.3"; src = fetchurl { - url = "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.2.tgz"; - sha512 = "/ZypxQsArlv+KHpGvng52/Iz8by3EQPxhmbuz8yFG89N/caTFBSbcXONDw0aMjy827gQg26XAjP4uXFvnfINmQ=="; + url = "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz"; + sha512 = "NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA=="; }; }; "escape-html-1.0.3" = { @@ -3433,13 +3469,13 @@ let sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"; }; }; - "escodegen-1.12.0" = { + "escodegen-1.14.1" = { name = "escodegen"; packageName = "escodegen"; - version = "1.12.0"; + version = "1.14.1"; src = fetchurl { - url = "https://registry.npmjs.org/escodegen/-/escodegen-1.12.0.tgz"; - sha512 = "TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg=="; + url = "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz"; + sha512 = "Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ=="; }; }; "eslint-scope-4.0.3" = { @@ -3451,15 +3487,6 @@ let sha512 = "p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg=="; }; }; - "esprima-3.1.3" = { - name = "esprima"; - packageName = "esprima"; - version = "3.1.3"; - src = fetchurl { - url = "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz"; - sha1 = "fdca51cee6133895e3c88d535ce49dbff62a4633"; - }; - }; "esprima-4.0.1" = { name = "esprima"; packageName = "esprima"; @@ -3514,13 +3541,13 @@ let sha512 = "qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg=="; }; }; - "events-3.0.0" = { + "events-3.1.0" = { name = "events"; packageName = "events"; - version = "3.0.0"; + version = "3.1.0"; src = fetchurl { - url = "https://registry.npmjs.org/events/-/events-3.0.0.tgz"; - sha512 = "Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA=="; + url = "https://registry.npmjs.org/events/-/events-3.1.0.tgz"; + sha512 = "Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg=="; }; }; "eventsource-1.0.7" = { @@ -3541,13 +3568,13 @@ let sha512 = "/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA=="; }; }; - "exec-sh-0.3.2" = { + "exec-sh-0.3.4" = { name = "exec-sh"; packageName = "exec-sh"; - version = "0.3.2"; + version = "0.3.4"; src = fetchurl { - url = "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.2.tgz"; - sha512 = "9sLAvzhI5nc8TpuQUh4ahMdCrWT00wPWz7j47/emR5+2qEfoZP5zzUXvx+vdx+H6ohhnsYC31iX04QLYJK8zTg=="; + url = "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz"; + sha512 = "sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A=="; }; }; "execa-1.0.0" = { @@ -3604,6 +3631,15 @@ let sha512 = "mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g=="; }; }; + "ext-1.4.0" = { + name = "ext"; + packageName = "ext"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz"; + sha512 = "Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A=="; + }; + }; "extend-3.0.2" = { name = "extend"; packageName = "extend"; @@ -3649,22 +3685,22 @@ let sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05"; }; }; - "fast-deep-equal-2.0.1" = { + "fast-deep-equal-3.1.1" = { name = "fast-deep-equal"; packageName = "fast-deep-equal"; - version = "2.0.1"; + version = "3.1.1"; src = fetchurl { - url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz"; - sha1 = "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"; + url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz"; + sha512 = "8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA=="; }; }; - "fast-json-stable-stringify-2.0.0" = { + "fast-json-stable-stringify-2.1.0" = { name = "fast-json-stable-stringify"; packageName = "fast-json-stable-stringify"; - version = "2.0.0"; + version = "2.1.0"; src = fetchurl { - url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz"; - sha1 = "d5142c0caee6b1189f87d3a76111064f86c8bbf2"; + url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"; + sha512 = "lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="; }; }; "fast-levenshtein-2.0.6" = { @@ -3694,13 +3730,13 @@ let sha512 = "D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA=="; }; }; - "fb-watchman-2.0.0" = { + "fb-watchman-2.0.1" = { name = "fb-watchman"; packageName = "fb-watchman"; - version = "2.0.0"; + version = "2.0.1"; src = fetchurl { - url = "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz"; - sha1 = "54e9abf7dfa2f26cd9b1636c588c1afc05de5d58"; + url = "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz"; + sha512 = "DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg=="; }; }; "figgy-pudding-3.5.1" = { @@ -3712,6 +3748,15 @@ let sha512 = "vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w=="; }; }; + "file-uri-to-path-1.0.0" = { + name = "file-uri-to-path"; + packageName = "file-uri-to-path"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz"; + sha512 = "0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="; + }; + }; "filesize-3.6.1" = { name = "filesize"; packageName = "filesize"; @@ -3847,13 +3892,13 @@ let sha512 = "m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA=="; }; }; - "formidable-1.2.1" = { + "formidable-1.2.2" = { name = "formidable"; packageName = "formidable"; - version = "1.2.1"; + version = "1.2.2"; src = fetchurl { - url = "https://registry.npmjs.org/formidable/-/formidable-1.2.1.tgz"; - sha512 = "Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg=="; + url = "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz"; + sha512 = "V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q=="; }; }; "forwarded-0.1.2" = { @@ -3910,13 +3955,13 @@ let sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f"; }; }; - "fsevents-1.2.9" = { + "fsevents-1.2.11" = { name = "fsevents"; packageName = "fsevents"; - version = "1.2.9"; + version = "1.2.11"; src = fetchurl { - url = "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz"; - sha512 = "oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw=="; + url = "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz"; + sha512 = "+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw=="; }; }; "function-bind-1.1.1" = { @@ -3928,6 +3973,15 @@ let sha512 = "yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="; }; }; + "gensync-1.0.0-beta.1" = { + name = "gensync"; + packageName = "gensync"; + version = "1.0.0-beta.1"; + src = fetchurl { + url = "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz"; + sha512 = "r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg=="; + }; + }; "get-caller-file-1.0.3" = { name = "get-caller-file"; packageName = "get-caller-file"; @@ -3991,13 +4045,13 @@ let sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa"; }; }; - "glob-7.1.4" = { + "glob-7.1.6" = { name = "glob"; packageName = "glob"; - version = "7.1.4"; + version = "7.1.6"; src = fetchurl { - url = "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz"; - sha512 = "hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A=="; + url = "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz"; + sha512 = "LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA=="; }; }; "glob-parent-3.1.0" = { @@ -4090,13 +4144,13 @@ let sha512 = "qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw=="; }; }; - "graceful-fs-4.2.2" = { + "graceful-fs-4.2.3" = { name = "graceful-fs"; packageName = "graceful-fs"; - version = "4.2.2"; + version = "4.2.3"; src = fetchurl { - url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz"; - sha512 = "IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q=="; + url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz"; + sha512 = "a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="; }; }; "growly-1.3.0" = { @@ -4126,15 +4180,6 @@ let sha512 = "d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ=="; }; }; - "handlebars-4.4.2" = { - name = "handlebars"; - packageName = "handlebars"; - version = "4.4.2"; - src = fetchurl { - url = "https://registry.npmjs.org/handlebars/-/handlebars-4.4.2.tgz"; - sha512 = "cIv17+GhL8pHHnRJzGu2wwcthL5sb8uDKBHvZ2Dtu5s1YNt0ljbzKbamnc+gr69y7bzwQiBdr5+hOpRd5pnOdg=="; - }; - }; "har-schema-2.0.0" = { name = "har-schema"; packageName = "har-schema"; @@ -4189,13 +4234,13 @@ let sha512 = "3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw=="; }; }; - "has-symbols-1.0.0" = { + "has-symbols-1.0.1" = { name = "has-symbols"; packageName = "has-symbols"; - version = "1.0.0"; + version = "1.0.1"; src = fetchurl { - url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz"; - sha1 = "ba1a8f1af2a0fc39650f5c850367704122063b44"; + url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz"; + sha512 = "PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg=="; }; }; "has-to-string-tag-x-1.4.1" = { @@ -4297,13 +4342,13 @@ let sha512 = "HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ=="; }; }; - "hosted-git-info-2.8.4" = { + "hosted-git-info-2.8.8" = { name = "hosted-git-info"; packageName = "hosted-git-info"; - version = "2.8.4"; + version = "2.8.8"; src = fetchurl { - url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.4.tgz"; - sha512 = "pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ=="; + url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz"; + sha512 = "f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg=="; }; }; "hpack.js-2.1.6" = { @@ -4333,6 +4378,15 @@ let sha1 = "0df29351f0721163515dfb9e5543e5f6eed5162f"; }; }; + "html-escaper-2.0.0" = { + name = "html-escaper"; + packageName = "html-escaper"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.0.tgz"; + sha512 = "a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig=="; + }; + }; "http-assert-1.4.1" = { name = "http-assert"; packageName = "http-assert"; @@ -4621,13 +4675,13 @@ let sha1 = "fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"; }; }; - "ipaddr.js-1.9.0" = { + "ipaddr.js-1.9.1" = { name = "ipaddr.js"; packageName = "ipaddr.js"; - version = "1.9.0"; + version = "1.9.1"; src = fetchurl { - url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz"; - sha512 = "M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA=="; + url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz"; + sha512 = "0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="; }; }; "is-absolute-url-3.0.3" = { @@ -4684,22 +4738,13 @@ let sha512 = "NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="; }; }; - "is-buffer-2.0.4" = { - name = "is-buffer"; - packageName = "is-buffer"; - version = "2.0.4"; - src = fetchurl { - url = "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz"; - sha512 = "Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A=="; - }; - }; - "is-callable-1.1.4" = { + "is-callable-1.1.5" = { name = "is-callable"; packageName = "is-callable"; - version = "1.1.4"; + version = "1.1.5"; src = fetchurl { - url = "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz"; - sha512 = "r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA=="; + url = "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz"; + sha512 = "ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q=="; }; }; "is-ci-2.0.0" = { @@ -4729,13 +4774,13 @@ let sha512 = "jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ=="; }; }; - "is-date-object-1.0.1" = { + "is-date-object-1.0.2" = { name = "is-date-object"; packageName = "is-date-object"; - version = "1.0.1"; + version = "1.0.2"; src = fetchurl { - url = "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz"; - sha1 = "9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"; + url = "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz"; + sha512 = "USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g=="; }; }; "is-descriptor-0.1.6" = { @@ -4792,13 +4837,13 @@ let sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2"; }; }; - "is-finite-1.0.2" = { + "is-finite-1.1.0" = { name = "is-finite"; packageName = "is-finite"; - version = "1.0.2"; + version = "1.1.0"; src = fetchurl { - url = "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz"; - sha1 = "cc6677695602be550ef11e8b4aa6305342b6d0aa"; + url = "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz"; + sha512 = "cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w=="; }; }; "is-fullwidth-code-point-1.0.0" = { @@ -4927,13 +4972,13 @@ let sha1 = "79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"; }; }; - "is-regex-1.0.4" = { + "is-regex-1.0.5" = { name = "is-regex"; packageName = "is-regex"; - version = "1.0.4"; + version = "1.0.5"; src = fetchurl { - url = "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz"; - sha1 = "5517489b547091b0930e095654ced25ee97e9491"; + url = "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz"; + sha512 = "vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ=="; }; }; "is-retry-allowed-1.2.0" = { @@ -4954,13 +4999,13 @@ let sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"; }; }; - "is-symbol-1.0.2" = { + "is-symbol-1.0.3" = { name = "is-symbol"; packageName = "is-symbol"; - version = "1.0.2"; + version = "1.0.3"; src = fetchurl { - url = "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz"; - sha512 = "HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw=="; + url = "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz"; + sha512 = "OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ=="; }; }; "is-typedarray-1.0.0" = { @@ -5098,13 +5143,13 @@ let sha512 = "R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw=="; }; }; - "istanbul-reports-2.2.6" = { + "istanbul-reports-2.2.7" = { name = "istanbul-reports"; packageName = "istanbul-reports"; - version = "2.2.6"; + version = "2.2.7"; src = fetchurl { - url = "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.6.tgz"; - sha512 = "SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA=="; + url = "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz"; + sha512 = "uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg=="; }; }; "isurl-1.0.0" = { @@ -5368,13 +5413,13 @@ let sha512 = "51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw=="; }; }; - "js-beautify-1.10.2" = { + "js-beautify-1.10.3" = { name = "js-beautify"; packageName = "js-beautify"; - version = "1.10.2"; + version = "1.10.3"; src = fetchurl { - url = "https://registry.npmjs.org/js-beautify/-/js-beautify-1.10.2.tgz"; - sha512 = "ZtBYyNUYJIsBWERnQP0rPN9KjkrDfJcMjuVGcvXOUJrD1zmOGwhRwQ4msG+HJ+Ni/FA7+sRQEMYVzdTQDvnzvQ=="; + url = "https://registry.npmjs.org/js-beautify/-/js-beautify-1.10.3.tgz"; + sha512 = "wfk/IAWobz1TfApSdivH5PJ0miIHgDoYb1ugSqHcODPmaYu46rYe5FVuIEkhjg8IQiv6rDNPyhsqbsohI/C2vQ=="; }; }; "js-stringify-1.0.2" = { @@ -5566,13 +5611,13 @@ let sha1 = "ed8bf0921e2f3f1ed4d5c1a44f68709ed24722c3"; }; }; - "keygrip-1.0.3" = { + "keygrip-1.1.0" = { name = "keygrip"; packageName = "keygrip"; - version = "1.0.3"; + version = "1.1.0"; src = fetchurl { - url = "https://registry.npmjs.org/keygrip/-/keygrip-1.0.3.tgz"; - sha512 = "/PpesirAIfaklxUzp4Yb7xBper9MwP6hNRA6BGGUFCgbJ+BM5CKBtsoxinNXkLHAr+GXS1/lSlF2rP7cv5Fl+g=="; + url = "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz"; + sha512 = "iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ=="; }; }; "keyv-3.0.0" = { @@ -5620,13 +5665,13 @@ let sha512 = "NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="; }; }; - "kind-of-6.0.2" = { + "kind-of-6.0.3" = { name = "kind-of"; packageName = "kind-of"; - version = "6.0.2"; + version = "6.0.3"; src = fetchurl { - url = "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz"; - sha512 = "s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="; + url = "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz"; + sha512 = "dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="; }; }; "kleur-3.0.3" = { @@ -5638,13 +5683,13 @@ let sha512 = "eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="; }; }; - "koa-2.8.2" = { + "koa-2.11.0" = { name = "koa"; packageName = "koa"; - version = "2.8.2"; + version = "2.11.0"; src = fetchurl { - url = "https://registry.npmjs.org/koa/-/koa-2.8.2.tgz"; - sha512 = "q1uZOgpl3wjr5FS/tjbABJ8lA5+NeKa9eq7QyBP5xxgOBwJN4iBrMEgO3LroE51lrIw3BsO0WZZ0Yi6giSiMDw=="; + url = "https://registry.npmjs.org/koa/-/koa-2.11.0.tgz"; + sha512 = "EpR9dElBTDlaDgyhDMiLkXrPwp6ZqgAIBvhhmxQ9XN4TFgW+gEz6tkcsNI6BnUbUftrKDjVFj4lW2/J2aNBMMA=="; }; }; "koa-body-4.1.1" = { @@ -5683,15 +5728,6 @@ let sha1 = "da40875df49de0539098d1700b50820cebcd21d0"; }; }; - "koa-is-json-1.0.0" = { - name = "koa-is-json"; - packageName = "koa-is-json"; - version = "1.0.0"; - src = fetchurl { - url = "https://registry.npmjs.org/koa-is-json/-/koa-is-json-1.0.0.tgz"; - sha1 = "273c07edcdcb8df6a2c1ab7d59ee76491451ec14"; - }; - }; "koa-router-7.4.0" = { name = "koa-router"; packageName = "koa-router"; @@ -5800,6 +5836,15 @@ let sha512 = "fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA=="; }; }; + "loader-utils-1.4.0" = { + name = "loader-utils"; + packageName = "loader-utils"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz"; + sha512 = "qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA=="; + }; + }; "locate-path-2.0.0" = { name = "locate-path"; packageName = "locate-path"; @@ -5872,13 +5917,13 @@ let sha512 = "VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg=="; }; }; - "loglevel-1.6.4" = { + "loglevel-1.6.7" = { name = "loglevel"; packageName = "loglevel"; - version = "1.6.4"; + version = "1.6.7"; src = fetchurl { - url = "https://registry.npmjs.org/loglevel/-/loglevel-1.6.4.tgz"; - sha512 = "p0b6mOGKcGa+7nnmKbpzR6qloPbrgLcnio++E+14Vo/XffOGwZtRpUhr8dTH/x2oCMmEoIU0Zwm3ZauhvYD17g=="; + url = "https://registry.npmjs.org/loglevel/-/loglevel-1.6.7.tgz"; + sha512 = "cY2eLFrQSAfVPhCgH1s7JI73tMbg9YC3v3+ZHVW67sBS7UxWzNEk/ZBbSfLykBWHp33dqqtOv82gjhKEi81T/A=="; }; }; "loglevelnext-1.0.5" = { @@ -5971,13 +6016,13 @@ let sha512 = "LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA=="; }; }; - "make-error-1.3.5" = { + "make-error-1.3.6" = { name = "make-error"; packageName = "make-error"; - version = "1.3.5"; + version = "1.3.6"; src = fetchurl { - url = "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz"; - sha512 = "c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g=="; + url = "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz"; + sha512 = "s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="; }; }; "makeerror-1.0.11" = { @@ -6061,6 +6106,15 @@ let sha1 = "3a9a20b8462523e447cfbc7e8bb80ed667bfc552"; }; }; + "memory-fs-0.5.0" = { + name = "memory-fs"; + packageName = "memory-fs"; + version = "0.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz"; + sha512 = "jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA=="; + }; + }; "merge-descriptors-1.0.1" = { name = "merge-descriptors"; packageName = "merge-descriptors"; @@ -6124,22 +6178,22 @@ let sha512 = "LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA=="; }; }; - "mime-db-1.40.0" = { + "mime-db-1.43.0" = { name = "mime-db"; packageName = "mime-db"; - version = "1.40.0"; + version = "1.43.0"; src = fetchurl { - url = "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz"; - sha512 = "jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="; + url = "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz"; + sha512 = "+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ=="; }; }; - "mime-types-2.1.24" = { + "mime-types-2.1.26" = { name = "mime-types"; packageName = "mime-types"; - version = "2.1.24"; + version = "2.1.26"; src = fetchurl { - url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz"; - sha512 = "WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ=="; + url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz"; + sha512 = "01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ=="; }; }; "mimic-fn-1.2.0" = { @@ -6205,13 +6259,13 @@ let sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d"; }; }; - "minimist-1.2.0" = { + "minimist-1.2.5" = { name = "minimist"; packageName = "minimist"; - version = "1.2.0"; + version = "1.2.5"; src = fetchurl { - url = "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz"; - sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284"; + url = "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz"; + sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="; }; }; "mississippi-2.0.0" = { @@ -6259,13 +6313,13 @@ let sha512 = "bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg=="; }; }; - "moment-timezone-0.5.26" = { + "moment-timezone-0.5.28" = { name = "moment-timezone"; packageName = "moment-timezone"; - version = "0.5.26"; + version = "0.5.28"; src = fetchurl { - url = "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.26.tgz"; - sha512 = "sFP4cgEKTCymBBKgoxZjYzlSovC20Y6J7y3nanDc5RoBIXKlZhoYwBoZGe3flwU6A372AcRwScH8KiwV6zjy1g=="; + url = "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.28.tgz"; + sha512 = "TDJkZvAyKIVWg5EtVqRzU97w0Rb0YVbfpqyjgu6GwXCAohVRqwZjf4fOzDE6p1Ch98Sro/8hQQi65WDXW5STPw=="; }; }; "move-concurrently-1.0.1" = { @@ -6457,13 +6511,13 @@ let sha512 = "M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q=="; }; }; - "nopt-4.0.1" = { + "nopt-4.0.3" = { name = "nopt"; packageName = "nopt"; - version = "4.0.1"; + version = "4.0.3"; src = fetchurl { - url = "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz"; - sha1 = "d0d4685afd5415193c8c7505602d0d17cd64474d"; + url = "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz"; + sha512 = "CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg=="; }; }; "normalize-package-data-2.5.0" = { @@ -6520,13 +6574,13 @@ let sha1 = "097b602b53422a522c1afb8790318336941a011d"; }; }; - "nwsapi-2.1.4" = { + "nwsapi-2.2.0" = { name = "nwsapi"; packageName = "nwsapi"; - version = "2.1.4"; + version = "2.2.0"; src = fetchurl { - url = "https://registry.npmjs.org/nwsapi/-/nwsapi-2.1.4.tgz"; - sha512 = "iGfd9Y6SFdTNldEy2L0GUhcarIutFmk+MPWIn9dmj8NMIup03G08uUF2KGbbmv/Ux4RT0VZJoP/sVbWA6d/VIw=="; + url = "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz"; + sha512 = "h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ=="; }; }; "oauth-sign-0.9.0" = { @@ -6565,13 +6619,13 @@ let sha512 = "OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA=="; }; }; - "object-inspect-1.6.0" = { + "object-inspect-1.7.0" = { name = "object-inspect"; packageName = "object-inspect"; - version = "1.6.0"; + version = "1.7.0"; src = fetchurl { - url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz"; - sha512 = "GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ=="; + url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz"; + sha512 = "a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw=="; }; }; "object-keys-1.1.1" = { @@ -6601,13 +6655,13 @@ let sha512 = "exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w=="; }; }; - "object.getownpropertydescriptors-2.0.3" = { + "object.getownpropertydescriptors-2.1.0" = { name = "object.getownpropertydescriptors"; packageName = "object.getownpropertydescriptors"; - version = "2.0.3"; + version = "2.1.0"; src = fetchurl { - url = "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz"; - sha1 = "8758c846f5b407adab0f236e0986f14b051caa16"; + url = "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz"; + sha512 = "Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg=="; }; }; "object.pick-1.3.0" = { @@ -6709,22 +6763,13 @@ let sha512 = "PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA=="; }; }; - "optimist-0.6.1" = { - name = "optimist"; - packageName = "optimist"; - version = "0.6.1"; - src = fetchurl { - url = "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz"; - sha1 = "da3ea74686fa21a19a111c326e90eb15a0196686"; - }; - }; - "optionator-0.8.2" = { + "optionator-0.8.3" = { name = "optionator"; packageName = "optionator"; - version = "0.8.2"; + version = "0.8.3"; src = fetchurl { - url = "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz"; - sha1 = "364c5e409d3f4d6301d6c0b4c05bba50180aeb64"; + url = "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz"; + sha512 = "+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA=="; }; }; "ora-3.4.0" = { @@ -6862,13 +6907,13 @@ let sha512 = "vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q=="; }; }; - "p-limit-2.2.1" = { + "p-limit-2.2.2" = { name = "p-limit"; packageName = "p-limit"; - version = "2.2.1"; + version = "2.2.2"; src = fetchurl { - url = "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz"; - sha512 = "85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg=="; + url = "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz"; + sha512 = "WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ=="; }; }; "p-locate-2.0.0" = { @@ -6952,13 +6997,13 @@ let sha512 = "R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="; }; }; - "pako-1.0.10" = { + "pako-1.0.11" = { name = "pako"; packageName = "pako"; - version = "1.0.10"; + version = "1.0.11"; src = fetchurl { - url = "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz"; - sha512 = "0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw=="; + url = "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz"; + sha512 = "4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="; }; }; "parallel-transform-1.2.0" = { @@ -7096,13 +7141,13 @@ let sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c"; }; }; - "path-to-regexp-1.7.0" = { + "path-to-regexp-1.8.0" = { name = "path-to-regexp"; packageName = "path-to-regexp"; - version = "1.7.0"; + version = "1.8.0"; src = fetchurl { - url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz"; - sha1 = "59fde0f435badacba103a84e9d3bc64e96b9937d"; + url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz"; + sha512 = "n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA=="; }; }; "path-type-3.0.0" = { @@ -7213,13 +7258,13 @@ let sha512 = "2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA=="; }; }; - "portfinder-1.0.24" = { + "portfinder-1.0.25" = { name = "portfinder"; packageName = "portfinder"; - version = "1.0.24"; + version = "1.0.25"; src = fetchurl { - url = "https://registry.npmjs.org/portfinder/-/portfinder-1.0.24.tgz"; - sha512 = "ekRl7zD2qxYndYflwiryJwMioBI7LI7rVXg3EnLK3sjkouT5eOuhS3gS255XxBksa30VG8UPZYZCdgfGOfkSUg=="; + url = "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz"; + sha512 = "6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg=="; }; }; "posix-character-classes-0.1.1" = { @@ -7249,13 +7294,13 @@ let sha1 = "e92434bfa5ea8c19f41cdfd401d741a3c819d897"; }; }; - "prettier-1.18.2" = { + "prettier-1.19.1" = { name = "prettier"; packageName = "prettier"; - version = "1.18.2"; + version = "1.19.1"; src = fetchurl { - url = "https://registry.npmjs.org/prettier/-/prettier-1.18.2.tgz"; - sha512 = "OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw=="; + url = "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz"; + sha512 = "s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew=="; }; }; "pretty-2.0.0" = { @@ -7321,13 +7366,13 @@ let sha1 = "98472870bf228132fcbdd868129bad12c3c029e3"; }; }; - "prompts-2.2.1" = { + "prompts-2.3.1" = { name = "prompts"; packageName = "prompts"; - version = "2.2.1"; + version = "2.3.1"; src = fetchurl { - url = "https://registry.npmjs.org/prompts/-/prompts-2.2.1.tgz"; - sha512 = "VObPvJiWPhpZI6C5m60XOzTfnYg/xc/an+r9VYymj9WJW3B/DIH+REzjpAACPf8brwPeP+7vz3bIim3S+AaMjw=="; + url = "https://registry.npmjs.org/prompts/-/prompts-2.3.1.tgz"; + sha512 = "qIP2lQyCwYbdzcqHIUi2HAxiWixhoM9OdLCWf8txXsapC/X9YdsCoeyRIXE/GP+Q0J37Q7+XN/MFqbUa7IzXNA=="; }; }; "proto-list-1.2.4" = { @@ -7339,13 +7384,13 @@ let sha1 = "212d5bfe1318306a420f6402b8e26ff39647a849"; }; }; - "proxy-addr-2.0.5" = { + "proxy-addr-2.0.6" = { name = "proxy-addr"; packageName = "proxy-addr"; - version = "2.0.5"; + version = "2.0.6"; src = fetchurl { - url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz"; - sha512 = "t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ=="; + url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz"; + sha512 = "dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw=="; }; }; "prr-1.0.1" = { @@ -7366,13 +7411,13 @@ let sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3"; }; }; - "psl-1.4.0" = { + "psl-1.7.0" = { name = "psl"; packageName = "psl"; - version = "1.4.0"; + version = "1.7.0"; src = fetchurl { - url = "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz"; - sha512 = "HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw=="; + url = "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz"; + sha512 = "5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ=="; }; }; "public-encrypt-4.0.3" = { @@ -7645,13 +7690,13 @@ let sha512 = "9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA=="; }; }; - "react-is-16.10.2" = { + "react-is-16.13.0" = { name = "react-is"; packageName = "react-is"; - version = "16.10.2"; + version = "16.13.0"; src = fetchurl { - url = "https://registry.npmjs.org/react-is/-/react-is-16.10.2.tgz"; - sha512 = "INBT1QEgtcCCgvccr5/86CfD71fw9EPmDxgiJX4I2Ddr6ZsV6iFXsuby+qWJPtmNuMY0zByTsG4468P7nHuNWA=="; + url = "https://registry.npmjs.org/react-is/-/react-is-16.13.0.tgz"; + sha512 = "GFMtL0vHkiBv9HluwNZTggSn/sCyEt9n02aM0dSAjGGyqyNlAyftYm4phPxdvCigG15JreC5biwxCgTAJZ7yAA=="; }; }; "read-pkg-3.0.0" = { @@ -7672,22 +7717,22 @@ let sha512 = "6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA=="; }; }; - "readable-stream-2.3.6" = { + "readable-stream-2.3.7" = { name = "readable-stream"; packageName = "readable-stream"; - version = "2.3.6"; + version = "2.3.7"; src = fetchurl { - url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz"; - sha512 = "tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw=="; + url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz"; + sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw=="; }; }; - "readable-stream-3.4.0" = { + "readable-stream-3.6.0" = { name = "readable-stream"; packageName = "readable-stream"; - version = "3.4.0"; + version = "3.6.0"; src = fetchurl { - url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz"; - sha512 = "jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ=="; + url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz"; + sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA=="; }; }; "readdirp-2.2.1" = { @@ -7816,31 +7861,31 @@ let sha1 = "5214c53a926d3552707527fbab415dbc08d06dda"; }; }; - "request-2.88.0" = { + "request-2.88.2" = { name = "request"; packageName = "request"; - version = "2.88.0"; + version = "2.88.2"; src = fetchurl { - url = "https://registry.npmjs.org/request/-/request-2.88.0.tgz"; - sha512 = "NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg=="; + url = "https://registry.npmjs.org/request/-/request-2.88.2.tgz"; + sha512 = "MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw=="; }; }; - "request-promise-core-1.1.2" = { + "request-promise-core-1.1.3" = { name = "request-promise-core"; packageName = "request-promise-core"; - version = "1.1.2"; + version = "1.1.3"; src = fetchurl { - url = "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz"; - sha512 = "UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag=="; + url = "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz"; + sha512 = "QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ=="; }; }; - "request-promise-native-1.0.7" = { + "request-promise-native-1.0.8" = { name = "request-promise-native"; packageName = "request-promise-native"; - version = "1.0.7"; + version = "1.0.8"; src = fetchurl { - url = "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.7.tgz"; - sha512 = "rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w=="; + url = "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz"; + sha512 = "dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ=="; }; }; "require-directory-2.1.1" = { @@ -7888,13 +7933,13 @@ let sha1 = "203114d82ad2c5ed9e8e0411b3932875e889e97b"; }; }; - "resolve-1.12.0" = { + "resolve-1.15.1" = { name = "resolve"; packageName = "resolve"; - version = "1.12.0"; + version = "1.15.1"; src = fetchurl { - url = "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz"; - sha512 = "B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w=="; + url = "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz"; + sha512 = "84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w=="; }; }; "resolve-cwd-2.0.0" = { @@ -8023,13 +8068,13 @@ let sha1 = "e848396f057d223f24386924618e25694161ec47"; }; }; - "rxjs-6.5.3" = { + "rxjs-6.5.4" = { name = "rxjs"; packageName = "rxjs"; - version = "6.5.3"; + version = "6.5.4"; src = fetchurl { - url = "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz"; - sha512 = "wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA=="; + url = "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz"; + sha512 = "naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q=="; }; }; "safe-buffer-5.1.2" = { @@ -8149,6 +8194,15 @@ let sha512 = "0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A=="; }; }; + "serialize-javascript-2.1.2" = { + name = "serialize-javascript"; + packageName = "serialize-javascript"; + version = "2.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz"; + sha512 = "rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ=="; + }; + }; "serve-index-1.9.1" = { name = "serve-index"; packageName = "serve-index"; @@ -8284,13 +8338,13 @@ let sha512 = "+gXuzJFpGtK9zCa7rPMMNs8AF2weWMsB0Vlyym5VkFX2VGQ3VBzKhnxPN//PWrGuPFGQ/u0F1yL6rZoPhj/KPQ=="; }; }; - "sisteransi-1.0.3" = { + "sisteransi-1.0.4" = { name = "sisteransi"; packageName = "sisteransi"; - version = "1.0.3"; + version = "1.0.4"; src = fetchurl { - url = "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.3.tgz"; - sha512 = "SbEG75TzH8G7eVXFSN5f9EExILKfly7SUvVY5DhhYLvfhKqhDFY0OzevWa/zwak0RLRfWS5AvfMWpd9gJvr5Yg=="; + url = "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.4.tgz"; + sha512 = "/ekMoM4NJ59ivGSfKapeG+FWtrmWvA1p6FBZwXrqojw90vJu8lBmrTxCMuBCydKtkaUe2zt4PlxeTKpjwMbyig=="; }; }; "slash-1.0.0" = { @@ -8392,13 +8446,13 @@ let sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="; }; }; - "source-map-resolve-0.5.2" = { + "source-map-resolve-0.5.3" = { name = "source-map-resolve"; packageName = "source-map-resolve"; - version = "0.5.2"; + version = "0.5.3"; src = fetchurl { - url = "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz"; - sha512 = "MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA=="; + url = "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz"; + sha512 = "Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw=="; }; }; "source-map-support-0.4.18" = { @@ -8410,13 +8464,13 @@ let sha512 = "try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA=="; }; }; - "source-map-support-0.5.13" = { + "source-map-support-0.5.16" = { name = "source-map-support"; packageName = "source-map-support"; - version = "0.5.13"; + version = "0.5.16"; src = fetchurl { - url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz"; - sha512 = "SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w=="; + url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz"; + sha512 = "efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ=="; }; }; "source-map-url-0.4.0" = { @@ -8590,13 +8644,13 @@ let sha512 = "+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw=="; }; }; - "stream-shift-1.0.0" = { + "stream-shift-1.0.1" = { name = "stream-shift"; packageName = "stream-shift"; - version = "1.0.0"; + version = "1.0.1"; src = fetchurl { - url = "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz"; - sha1 = "d5c752825e5367e786f78e18e445ea223a155952"; + url = "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz"; + sha512 = "AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ=="; }; }; "strict-uri-encode-1.1.0" = { @@ -8644,22 +8698,22 @@ let sha512 = "vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w=="; }; }; - "string.prototype.trimleft-2.1.0" = { + "string.prototype.trimleft-2.1.1" = { name = "string.prototype.trimleft"; packageName = "string.prototype.trimleft"; - version = "2.1.0"; + version = "2.1.1"; src = fetchurl { - url = "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz"; - sha512 = "FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw=="; + url = "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz"; + sha512 = "iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag=="; }; }; - "string.prototype.trimright-2.1.0" = { + "string.prototype.trimright-2.1.1" = { name = "string.prototype.trimright"; packageName = "string.prototype.trimright"; - version = "2.1.0"; + version = "2.1.1"; src = fetchurl { - url = "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz"; - sha512 = "fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg=="; + url = "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz"; + sha512 = "qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g=="; }; }; "string_decoder-1.1.1" = { @@ -8761,22 +8815,22 @@ let sha512 = "4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA=="; }; }; - "terser-4.3.8" = { + "terser-4.6.6" = { name = "terser"; packageName = "terser"; - version = "4.3.8"; + version = "4.6.6"; src = fetchurl { - url = "https://registry.npmjs.org/terser/-/terser-4.3.8.tgz"; - sha512 = "otmIRlRVmLChAWsnSFNO0Bfk6YySuBp6G9qrHiJwlLDd4mxe2ta4sjI7TzIR+W1nBMjilzrMcPOz9pSusgx3hQ=="; + url = "https://registry.npmjs.org/terser/-/terser-4.6.6.tgz"; + sha512 = "4lYPyeNmstjIIESr/ysHg2vUPRGf2tzF9z2yYwnowXVuVzLEamPN1Gfrz7f8I9uEPuHcbFlW4PLIAsJoxXyJ1g=="; }; }; - "terser-webpack-plugin-1.4.1" = { + "terser-webpack-plugin-1.4.3" = { name = "terser-webpack-plugin"; packageName = "terser-webpack-plugin"; - version = "1.4.1"; + version = "1.4.3"; src = fetchurl { - url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz"; - sha512 = "ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg=="; + url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz"; + sha512 = "QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA=="; }; }; "test-exclude-5.2.3" = { @@ -8824,13 +8878,13 @@ let sha512 = "/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ=="; }; }; - "thunky-1.0.3" = { + "thunky-1.1.0" = { name = "thunky"; packageName = "thunky"; - version = "1.0.3"; + version = "1.1.0"; src = fetchurl { - url = "https://registry.npmjs.org/thunky/-/thunky-1.0.3.tgz"; - sha512 = "YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow=="; + url = "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz"; + sha512 = "eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA=="; }; }; "timed-out-4.0.1" = { @@ -8932,13 +8986,13 @@ let sha1 = "ceeefc717a76c4316f126d0b9dbaa55d7e7df01a"; }; }; - "tough-cookie-2.4.3" = { + "tough-cookie-2.5.0" = { name = "tough-cookie"; packageName = "tough-cookie"; - version = "2.4.3"; + version = "2.5.0"; src = fetchurl { - url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz"; - sha512 = "Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ=="; + url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz"; + sha512 = "nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g=="; }; }; "tr46-1.0.1" = { @@ -8968,22 +9022,31 @@ let sha512 = "c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA=="; }; }; - "ts-jest-24.1.0" = { + "ts-jest-24.3.0" = { name = "ts-jest"; packageName = "ts-jest"; - version = "24.1.0"; + version = "24.3.0"; src = fetchurl { - url = "https://registry.npmjs.org/ts-jest/-/ts-jest-24.1.0.tgz"; - sha512 = "HEGfrIEAZKfu1pkaxB9au17b1d9b56YZSqz5eCVE8mX68+5reOvlM93xGOzzCREIov9mdH7JBG+s0UyNAqr0tQ=="; + url = "https://registry.npmjs.org/ts-jest/-/ts-jest-24.3.0.tgz"; + sha512 = "Hb94C/+QRIgjVZlJyiWwouYUF+siNJHJHknyspaOcZ+OQAIdFG/UrdQVXw/0B8Z3No34xkUXZJpOTy9alOWdVQ=="; }; }; - "tslib-1.10.0" = { + "tslib-1.11.1" = { name = "tslib"; packageName = "tslib"; - version = "1.10.0"; + version = "1.11.1"; src = fetchurl { - url = "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz"; - sha512 = "qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ=="; + url = "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz"; + sha512 = "aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA=="; + }; + }; + "tsscmp-1.0.6" = { + name = "tsscmp"; + packageName = "tsscmp"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz"; + sha512 = "LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA=="; }; }; "tty-browserify-0.0.0" = { @@ -9022,6 +9085,15 @@ let sha512 = "+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="; }; }; + "type-2.0.0" = { + name = "type"; + packageName = "type"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/type/-/type-2.0.0.tgz"; + sha512 = "KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow=="; + }; + }; "type-check-0.3.2" = { name = "type-check"; packageName = "type-check"; @@ -9058,13 +9130,13 @@ let sha512 = "zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q=="; }; }; - "typescript-3.6.3" = { + "typescript-3.8.3" = { name = "typescript"; packageName = "typescript"; - version = "3.6.3"; + version = "3.8.3"; src = fetchurl { - url = "https://registry.npmjs.org/typescript/-/typescript-3.6.3.tgz"; - sha512 = "N7bceJL1CtRQ2RiG0AQME13ksR7DiuQh/QehubYcghzv20tnh+MQnQIuJddTmsbqYj+dztchykemz0zFzlvdQw=="; + url = "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz"; + sha512 = "MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w=="; }; }; "typical-4.0.0" = { @@ -9085,15 +9157,6 @@ let sha1 = "29c5733148057bb4e1f75df35b7a9cb72e6a59dd"; }; }; - "uglify-js-3.6.0" = { - name = "uglify-js"; - packageName = "uglify-js"; - version = "3.6.0"; - src = fetchurl { - url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz"; - sha512 = "W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg=="; - }; - }; "uglify-to-browserify-1.0.2" = { name = "uglify-to-browserify"; packageName = "uglify-to-browserify"; @@ -9103,13 +9166,13 @@ let sha1 = "6e0924d6bda6b5afe349e39a6d632850a0f882b7"; }; }; - "underscore-1.9.1" = { + "underscore-1.9.2" = { name = "underscore"; packageName = "underscore"; - version = "1.9.1"; + version = "1.9.2"; src = fetchurl { - url = "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz"; - sha512 = "5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg=="; + url = "https://registry.npmjs.org/underscore/-/underscore-1.9.2.tgz"; + sha512 = "D39qtimx0c1fI3ya1Lnhk3E9nONswSKhnffBI0gME9C99fYOkNi04xs8K6pePLhvl1frbDemkaBQ5ikWllR2HQ=="; }; }; "union-value-1.0.1" = { @@ -9175,13 +9238,13 @@ let sha512 = "KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ=="; }; }; - "urijs-1.19.1" = { + "urijs-1.19.2" = { name = "urijs"; packageName = "urijs"; - version = "1.19.1"; + version = "1.19.2"; src = fetchurl { - url = "https://registry.npmjs.org/urijs/-/urijs-1.19.1.tgz"; - sha512 = "xVrGVi94ueCJNrBSTjWqjvtgvl3cyOTThp2zaMaFNGp3F542TR6sM3f2o8RqZl+AwteClSVmoCyt0ka4RjQOQg=="; + url = "https://registry.npmjs.org/urijs/-/urijs-1.19.2.tgz"; + sha512 = "s/UIq9ap4JPZ7H1EB5ULo/aOUbWqfDi7FKzMC2Nz+0Si8GiT1rIEaprt8hy3Vy2Ex2aJPpOQv4P4DuOZ+K1c6w=="; }; }; "urix-0.1.0" = { @@ -9265,13 +9328,13 @@ let sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf"; }; }; - "util.promisify-1.0.0" = { + "util.promisify-1.0.1" = { name = "util.promisify"; packageName = "util.promisify"; - version = "1.0.0"; + version = "1.0.1"; src = fetchurl { - url = "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz"; - sha512 = "i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA=="; + url = "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz"; + sha512 = "g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA=="; }; }; "utils-merge-1.0.1" = { @@ -9283,13 +9346,13 @@ let sha1 = "9f95710f50a267947b2ccc124741c1028427e713"; }; }; - "uuid-3.3.3" = { + "uuid-3.4.0" = { name = "uuid"; packageName = "uuid"; - version = "3.3.3"; + version = "3.4.0"; src = fetchurl { - url = "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz"; - sha512 = "pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ=="; + url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz"; + sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="; }; }; "v8-compile-cache-2.0.3" = { @@ -9328,13 +9391,13 @@ let sha1 = "3a105ca17053af55d6e270c1f8288682e18da400"; }; }; - "vm-browserify-1.1.0" = { + "vm-browserify-1.1.2" = { name = "vm-browserify"; packageName = "vm-browserify"; - version = "1.1.0"; + version = "1.1.2"; src = fetchurl { - url = "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz"; - sha512 = "iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw=="; + url = "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz"; + sha512 = "2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ=="; }; }; "void-elements-2.0.1" = { @@ -9346,13 +9409,13 @@ let sha1 = "c066afb582bb1cb4128d60ea92392e94d5e9dbec"; }; }; - "w3c-hr-time-1.0.1" = { + "w3c-hr-time-1.0.2" = { name = "w3c-hr-time"; packageName = "w3c-hr-time"; - version = "1.0.1"; + version = "1.0.2"; src = fetchurl { - url = "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz"; - sha1 = "82ac2bff63d950ea9e3189a58a65625fedf19045"; + url = "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz"; + sha512 = "z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ=="; }; }; "walker-1.0.7" = { @@ -9400,31 +9463,31 @@ let sha512 = "YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg=="; }; }; - "webpack-4.41.0" = { + "webpack-4.42.0" = { name = "webpack"; packageName = "webpack"; - version = "4.41.0"; + version = "4.42.0"; src = fetchurl { - url = "https://registry.npmjs.org/webpack/-/webpack-4.41.0.tgz"; - sha512 = "yNV98U4r7wX1VJAj5kyMsu36T8RPPQntcb5fJLOsMz/pt/WrKC0Vp1bAlqPLkA1LegSwQwf6P+kAbyhRKVQ72g=="; + url = "https://registry.npmjs.org/webpack/-/webpack-4.42.0.tgz"; + sha512 = "EzJRHvwQyBiYrYqhyjW9AqM90dE4+s1/XtCfn7uWg6cS72zH+2VPFAlsnW0+W0cDi0XRjNKUMoJtpSi50+Ph6w=="; }; }; - "webpack-bundle-analyzer-3.5.2" = { + "webpack-bundle-analyzer-3.6.1" = { name = "webpack-bundle-analyzer"; packageName = "webpack-bundle-analyzer"; - version = "3.5.2"; + version = "3.6.1"; src = fetchurl { - url = "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.5.2.tgz"; - sha512 = "g9spCNe25QYUVqHRDkwG414GTok2m7pTTP0wr6l0J50Z3YLS04+BGodTqqoVBL7QfU/U/9p/oiI5XFOyfZ7S/A=="; + url = "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.6.1.tgz"; + sha512 = "Nfd8HDwfSx1xBwC+P8QMGvHAOITxNBSvu/J/mCJvOwv+G4VWkU7zir9SSenTtyCi0LnVtmsc7G5SZo1uV+bxRw=="; }; }; - "webpack-cli-3.3.9" = { + "webpack-cli-3.3.11" = { name = "webpack-cli"; packageName = "webpack-cli"; - version = "3.3.9"; + version = "3.3.11"; src = fetchurl { - url = "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.9.tgz"; - sha512 = "xwnSxWl8nZtBl/AFJCOn9pG7s5CYUYdZxmmukv+fAHLcBIHM36dImfpQg3WfShZXeArkWlf6QRw24Klcsv8a5A=="; + url = "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.11.tgz"; + sha512 = "dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g=="; }; }; "webpack-dev-middleware-3.7.2" = { @@ -9436,13 +9499,13 @@ let sha512 = "1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw=="; }; }; - "webpack-dev-server-3.8.2" = { + "webpack-dev-server-3.10.3" = { name = "webpack-dev-server"; packageName = "webpack-dev-server"; - version = "3.8.2"; + version = "3.10.3"; src = fetchurl { - url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.8.2.tgz"; - sha512 = "0xxogS7n5jHDQWy0WST0q6Ykp7UGj4YvWh+HVN71JoE7BwPxMZrwgraBvmdEMbDVMBzF0u+mEzn8TQzBm5NYJQ=="; + url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz"; + sha512 = "e4nWev8YzEVNdOMcNzNeCN947sWJNd43E5XvsJzbAL08kGc2frm1tQ32hTJslRS+H65LCb/AaUCYU7fjHCpDeQ=="; }; }; "webpack-log-1.2.0" = { @@ -9472,13 +9535,13 @@ let sha512 = "lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ=="; }; }; - "websocket-1.0.30" = { + "websocket-1.0.31" = { name = "websocket"; packageName = "websocket"; - version = "1.0.30"; + version = "1.0.31"; src = fetchurl { - url = "https://registry.npmjs.org/websocket/-/websocket-1.0.30.tgz"; - sha512 = "aO6klgaTdSMkhfl5VVJzD5fm+Srhh5jLYbS15+OiI1sN6h/RU/XW6WN9J1uVIpUKNmsTvT3Hs35XAFjn9NMfOw=="; + url = "https://registry.npmjs.org/websocket/-/websocket-1.0.31.tgz"; + sha512 = "VAouplvGKPiKFDTeCCO65vYHsyay8DqoBSlzIO3fayrfOgU94lQN5a1uWVnFrMLceTJw/+fQXR5PGbUVRaHshQ=="; }; }; "websocket-driver-0.7.3" = { @@ -9526,13 +9589,13 @@ let sha512 = "rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ=="; }; }; - "whatwg-url-7.0.0" = { + "whatwg-url-7.1.0" = { name = "whatwg-url"; packageName = "whatwg-url"; - version = "7.0.0"; + version = "7.1.0"; src = fetchurl { - url = "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz"; - sha512 = "37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ=="; + url = "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz"; + sha512 = "WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg=="; }; }; "which-1.3.1" = { @@ -9571,6 +9634,15 @@ let sha1 = "fa4daa92daf32c4ea94ed453c81f04686b575dfe"; }; }; + "word-wrap-1.2.3" = { + name = "word-wrap"; + packageName = "word-wrap"; + version = "1.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz"; + sha512 = "Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ=="; + }; + }; "wordwrap-0.0.2" = { name = "wordwrap"; packageName = "wordwrap"; @@ -9580,15 +9652,6 @@ let sha1 = "b79669bb42ecb409f83d583cad52ca17eaa1643f"; }; }; - "wordwrap-1.0.0" = { - name = "wordwrap"; - packageName = "wordwrap"; - version = "1.0.0"; - src = fetchurl { - url = "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz"; - sha1 = "27584810891456a4171c8d0226441ade90cbcaeb"; - }; - }; "worker-farm-1.7.0" = { name = "worker-farm"; packageName = "worker-farm"; @@ -9724,13 +9787,13 @@ let sha512 = "HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg=="; }; }; - "yargs-13.3.0" = { + "yargs-13.3.2" = { name = "yargs"; packageName = "yargs"; - version = "13.3.0"; + version = "13.3.2"; src = fetchurl { - url = "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz"; - sha512 = "2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA=="; + url = "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz"; + sha512 = "AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw=="; }; }; "yargs-3.10.0" = { @@ -9760,13 +9823,13 @@ let sha512 = "C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ=="; }; }; - "yargs-parser-13.1.1" = { + "yargs-parser-13.1.2" = { name = "yargs-parser"; packageName = "yargs-parser"; - version = "13.1.1"; + version = "13.1.2"; src = fetchurl { - url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz"; - sha512 = "oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ=="; + url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz"; + sha512 = "3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg=="; }; }; "ylru-1.2.1" = { @@ -9791,50 +9854,50 @@ in sha256 = "589bfc9e3e26af38989144e8551547cbeb5ffc9a0b668a7a4cb211a2ebf7a931"; }; dependencies = [ - sources."@babel/code-frame-7.5.5" - (sources."@babel/core-7.6.2" // { + sources."@babel/code-frame-7.8.3" + (sources."@babel/core-7.8.7" // { dependencies = [ sources."debug-4.1.1" sources."json5-2.1.1" - sources."minimist-1.2.0" + sources."minimist-1.2.5" sources."ms-2.1.2" sources."source-map-0.5.7" ]; }) - (sources."@babel/generator-7.6.2" // { + (sources."@babel/generator-7.8.8" // { dependencies = [ sources."jsesc-2.5.2" sources."source-map-0.5.7" ]; }) - sources."@babel/helper-function-name-7.1.0" - sources."@babel/helper-get-function-arity-7.0.0" - sources."@babel/helper-plugin-utils-7.0.0" - sources."@babel/helper-split-export-declaration-7.4.4" - sources."@babel/helpers-7.6.2" - (sources."@babel/highlight-7.5.0" // { + sources."@babel/helper-function-name-7.8.3" + sources."@babel/helper-get-function-arity-7.8.3" + sources."@babel/helper-plugin-utils-7.8.3" + sources."@babel/helper-split-export-declaration-7.8.3" + sources."@babel/helpers-7.8.4" + (sources."@babel/highlight-7.8.3" // { dependencies = [ sources."js-tokens-4.0.0" ]; }) - sources."@babel/parser-7.6.2" - sources."@babel/plugin-syntax-object-rest-spread-7.2.0" - sources."@babel/template-7.6.0" - (sources."@babel/traverse-7.6.2" // { + sources."@babel/parser-7.8.8" + sources."@babel/plugin-syntax-object-rest-spread-7.8.3" + sources."@babel/template-7.8.6" + (sources."@babel/traverse-7.8.6" // { dependencies = [ sources."debug-4.1.1" sources."globals-11.12.0" sources."ms-2.1.2" ]; }) - (sources."@babel/types-7.6.1" // { + (sources."@babel/types-7.8.7" // { dependencies = [ sources."to-fast-properties-2.0.0" ]; }) - (sources."@cnakazawa/watch-1.0.3" // { + (sources."@cnakazawa/watch-1.0.4" // { dependencies = [ - sources."minimist-1.2.0" + sources."minimist-1.2.5" ]; }) (sources."@jest/console-24.9.0" // { @@ -9865,64 +9928,63 @@ in sources."@jest/types-24.9.0" (sources."@kubernetes/client-node-0.10.3" // { dependencies = [ - sources."@types/node-10.14.20" + sources."@types/node-10.17.17" ]; }) sources."@sindresorhus/is-0.7.0" sources."@types/accepts-1.3.5" sources."@types/axios-0.14.0" sources."@types/babel-types-7.0.7" - sources."@types/babel__core-7.1.3" - sources."@types/babel__generator-7.6.0" + sources."@types/babel__core-7.1.6" + sources."@types/babel__generator-7.6.1" sources."@types/babel__template-7.0.2" - sources."@types/babel__traverse-7.0.7" + sources."@types/babel__traverse-7.0.9" sources."@types/babylon-6.16.5" - sources."@types/body-parser-1.17.1" + sources."@types/body-parser-1.19.0" sources."@types/caseless-0.12.2" sources."@types/command-line-args-5.0.0" - sources."@types/connect-3.4.32" + sources."@types/connect-3.4.33" sources."@types/cookies-0.7.4" - sources."@types/cron-1.7.1" + sources."@types/cron-1.7.2" sources."@types/events-3.0.0" - sources."@types/express-4.17.1" - sources."@types/express-serve-static-core-4.16.9" + sources."@types/express-4.17.3" + sources."@types/express-serve-static-core-4.17.2" sources."@types/formidable-1.0.31" sources."@types/glob-7.1.1" sources."@types/http-assert-1.5.1" sources."@types/istanbul-lib-coverage-2.0.1" - sources."@types/istanbul-lib-report-1.1.1" + sources."@types/istanbul-lib-report-3.0.0" sources."@types/istanbul-reports-1.1.1" - sources."@types/jest-24.0.18" - sources."@types/jest-diff-20.0.1" - sources."@types/js-yaml-3.12.1" - sources."@types/keygrip-1.0.1" - sources."@types/koa-2.0.50" - sources."@types/koa-compose-3.2.4" - sources."@types/koa-router-7.0.42" + sources."@types/jest-24.9.1" + sources."@types/js-yaml-3.12.2" + sources."@types/keygrip-1.0.2" + sources."@types/koa-2.11.2" + sources."@types/koa-compose-3.2.5" + sources."@types/koa-router-7.4.0" sources."@types/koa-send-4.1.2" sources."@types/koa-static-4.0.1" - sources."@types/koa-views-2.0.3" - sources."@types/lodash-4.14.141" + sources."@types/koa-views-2.0.4" + sources."@types/lodash-4.14.149" sources."@types/lodash.clonedeep-4.5.6" sources."@types/mime-2.0.1" sources."@types/minimatch-3.0.3" sources."@types/mkdirp-0.5.2" - sources."@types/node-12.7.11" + sources."@types/node-12.12.30" sources."@types/ora-3.2.0" sources."@types/range-parser-1.2.3" - (sources."@types/request-2.48.3" // { + (sources."@types/request-2.48.4" // { dependencies = [ sources."form-data-2.5.1" ]; }) sources."@types/serve-static-1.13.3" sources."@types/stack-utils-1.0.1" - sources."@types/tough-cookie-2.3.5" - sources."@types/underscore-1.9.3" + sources."@types/tough-cookie-2.3.6" + sources."@types/underscore-1.9.4" sources."@types/websocket-0.0.40" - sources."@types/ws-6.0.3" - sources."@types/yargs-13.0.3" - sources."@types/yargs-parser-13.1.0" + sources."@types/ws-6.0.4" + sources."@types/yargs-13.0.8" + sources."@types/yargs-parser-15.0.0" sources."@webassemblyjs/ast-1.8.5" sources."@webassemblyjs/floating-point-hex-parser-1.8.5" sources."@webassemblyjs/helper-api-error-1.8.5" @@ -9943,7 +10005,7 @@ in sources."@webassemblyjs/wast-printer-1.8.5" sources."@xtuc/ieee754-1.2.0" sources."@xtuc/long-4.2.2" - sources."abab-2.0.2" + sources."abab-2.0.3" sources."abbrev-1.1.1" sources."accepts-1.3.7" sources."acorn-3.3.0" @@ -9954,7 +10016,7 @@ in }) sources."acorn-walk-6.2.0" sources."aggregate-error-1.0.0" - sources."ajv-6.10.2" + sources."ajv-6.12.0" sources."ajv-errors-1.0.1" sources."ajv-keywords-3.4.1" sources."align-text-0.1.4" @@ -9988,15 +10050,15 @@ in sources."assert-plus-1.0.0" sources."assign-symbols-1.0.0" sources."astral-regex-1.0.0" - sources."async-1.5.2" + sources."async-2.6.3" sources."async-each-1.0.3" sources."async-limiter-1.0.1" sources."asynckit-0.4.0" sources."atob-2.1.2" sources."awesome-typescript-loader-5.2.1" sources."aws-sign2-0.7.0" - sources."aws4-1.8.0" - sources."axios-0.19.0" + sources."aws4-1.9.1" + sources."axios-0.19.2" sources."babel-6.23.0" (sources."babel-code-frame-6.26.0" // { dependencies = [ @@ -10099,7 +10161,8 @@ in sources."bfj-6.1.2" sources."big.js-5.2.2" sources."binary-extensions-1.13.1" - sources."bluebird-3.7.0" + sources."bindings-1.5.0" + sources."bluebird-3.7.2" sources."bn.js-4.11.8" (sources."body-parser-1.19.0" // { dependencies = [ @@ -10118,7 +10181,7 @@ in sources."brace-expansion-1.1.11" sources."braces-2.3.2" sources."brorand-1.1.0" - sources."browser-process-hrtime-0.1.3" + sources."browser-process-hrtime-1.0.0" (sources."browser-resolve-1.11.3" // { dependencies = [ sources."resolve-1.1.7" @@ -10132,8 +10195,8 @@ in sources."browserify-zlib-0.2.0" sources."browserslist-3.2.8" sources."bs-logger-0.2.6" - sources."bser-2.1.0" - sources."buffer-4.9.1" + sources."bser-2.1.1" + sources."buffer-4.9.2" sources."buffer-from-1.1.1" sources."buffer-indexof-1.1.1" sources."buffer-xor-1.0.3" @@ -10156,7 +10219,7 @@ in }) sources."callsites-3.1.0" sources."camelcase-1.2.1" - sources."caniuse-lite-1.0.30000999" + sources."caniuse-lite-1.0.30001035" sources."capture-exit-2.0.0" sources."caseless-0.12.0" sources."center-align-0.1.3" @@ -10168,7 +10231,7 @@ in sources."normalize-path-3.0.0" ]; }) - sources."chownr-1.1.3" + sources."chownr-1.1.4" sources."chrome-trace-event-1.0.2" sources."ci-info-2.0.0" sources."cipher-base-1.0.4" @@ -10180,7 +10243,6 @@ in sources."kind-of-3.2.2" ]; }) - sources."is-buffer-1.1.6" (sources."is-data-descriptor-0.1.4" // { dependencies = [ sources."kind-of-3.2.2" @@ -10190,7 +10252,7 @@ in sources."kind-of-5.1.0" ]; }) - sources."clean-css-4.2.1" + sources."clean-css-4.2.3" sources."clean-stack-1.3.0" sources."cli-cursor-2.1.0" sources."cli-spinners-2.2.0" @@ -10205,10 +10267,10 @@ in sources."color-name-1.1.3" sources."combined-stream-1.0.8" sources."command-line-args-5.1.1" - sources."commander-2.20.1" + sources."commander-2.20.3" sources."commondir-1.0.1" sources."component-emitter-1.3.0" - sources."compressible-2.0.17" + sources."compressible-2.0.18" (sources."compression-1.7.4" // { dependencies = [ sources."bytes-3.0.0" @@ -10221,7 +10283,7 @@ in sources."condense-newlines-0.2.1" sources."config-chain-1.1.12" sources."connect-history-api-fallback-1.6.0" - sources."console-browserify-1.1.0" + sources."console-browserify-1.2.0" sources."consolidate-0.15.1" sources."constantinople-3.1.2" sources."constants-browserify-1.0.0" @@ -10231,14 +10293,18 @@ in ]; }) sources."content-type-1.0.4" - (sources."convert-source-map-1.6.0" // { + (sources."convert-source-map-1.7.0" // { dependencies = [ sources."safe-buffer-5.1.2" ]; }) sources."cookie-0.4.0" sources."cookie-signature-1.0.6" - sources."cookies-0.7.3" + (sources."cookies-0.8.0" // { + dependencies = [ + sources."depd-2.0.0" + ]; + }) sources."copy-concurrently-1.0.5" sources."copy-descriptor-0.1.1" (sources."copy-webpack-plugin-4.6.0" // { @@ -10247,12 +10313,12 @@ in sources."p-try-1.0.0" ]; }) - sources."core-js-2.6.9" + sources."core-js-2.6.11" sources."core-util-is-1.0.2" sources."create-ecdh-4.0.3" sources."create-hash-1.2.0" sources."create-hmac-1.1.7" - sources."cron-1.7.2" + sources."cron-1.8.2" sources."cross-spawn-6.0.5" sources."crypto-browserify-3.12.0" sources."cssom-0.3.8" @@ -10262,10 +10328,9 @@ in sources."dashdash-1.14.1" (sources."data-urls-1.1.0" // { dependencies = [ - sources."whatwg-url-7.0.0" + sources."whatwg-url-7.1.0" ]; }) - sources."date-now-0.1.4" sources."debug-3.1.0" sources."decamelize-1.2.0" sources."decode-uri-component-0.2.0" @@ -10289,7 +10354,7 @@ in sources."delayed-stream-1.0.0" sources."delegates-1.0.0" sources."depd-1.1.2" - sources."des.js-1.0.0" + sources."des.js-1.0.1" sources."destroy-1.0.4" sources."detect-file-1.0.0" sources."detect-indent-4.0.0" @@ -10315,37 +10380,37 @@ in ]; }) sources."ee-first-1.1.1" - sources."ejs-2.7.1" - sources."electron-to-chromium-1.3.275" - sources."elliptic-6.5.1" + sources."ejs-2.7.4" + sources."electron-to-chromium-1.3.376" + sources."elliptic-6.5.2" sources."emoji-regex-7.0.3" - sources."emojis-list-2.1.0" + sources."emojis-list-3.0.0" sources."encodeurl-1.0.2" sources."end-of-stream-1.4.4" - sources."enhanced-resolve-4.1.0" + sources."enhanced-resolve-4.1.1" sources."errno-0.1.7" sources."error-ex-1.3.2" sources."error-inject-1.0.0" - sources."es-abstract-1.15.0" - sources."es-to-primitive-1.2.0" - sources."es5-ext-0.10.51" + sources."es-abstract-1.17.4" + sources."es-to-primitive-1.2.1" + sources."es5-ext-0.10.53" sources."es6-iterator-2.0.3" sources."es6-promise-4.2.8" - sources."es6-symbol-3.1.2" + sources."es6-symbol-3.1.3" sources."escape-html-1.0.3" sources."escape-string-regexp-1.0.5" - sources."escodegen-1.12.0" + sources."escodegen-1.14.1" sources."eslint-scope-4.0.3" - sources."esprima-3.1.3" + sources."esprima-4.0.1" sources."esrecurse-4.2.1" sources."estraverse-4.3.0" sources."esutils-2.0.3" sources."etag-1.8.1" sources."eventemitter3-4.0.0" - sources."events-3.0.0" + sources."events-3.1.0" sources."eventsource-1.0.7" sources."evp_bytestokey-1.0.3" - sources."exec-sh-0.3.2" + sources."exec-sh-0.3.4" sources."execa-1.0.0" sources."exit-0.1.2" (sources."expand-brackets-2.1.4" // { @@ -10357,7 +10422,6 @@ in sources."kind-of-3.2.2" ]; }) - sources."is-buffer-1.1.6" (sources."is-data-descriptor-0.1.4" // { dependencies = [ sources."kind-of-3.2.2" @@ -10377,6 +10441,11 @@ in sources."safe-buffer-5.1.2" ]; }) + (sources."ext-1.4.0" // { + dependencies = [ + sources."type-2.0.0" + ]; + }) sources."extend-3.0.2" sources."extend-shallow-2.0.1" (sources."extglob-2.0.4" // { @@ -10385,12 +10454,13 @@ in ]; }) sources."extsprintf-1.3.0" - sources."fast-deep-equal-2.0.1" - sources."fast-json-stable-stringify-2.0.0" + sources."fast-deep-equal-3.1.1" + sources."fast-json-stable-stringify-2.1.0" sources."fast-levenshtein-2.0.6" sources."faye-websocket-0.10.0" - sources."fb-watchman-2.0.0" + sources."fb-watchman-2.0.1" sources."figgy-pudding-3.5.1" + sources."file-uri-to-path-1.0.0" sources."filesize-3.6.1" sources."fill-range-4.0.0" (sources."finalhandler-1.1.2" // { @@ -10407,15 +10477,16 @@ in sources."for-in-1.0.2" sources."forever-agent-0.6.1" sources."form-data-2.3.3" - sources."formidable-1.2.1" + sources."formidable-1.2.2" sources."forwarded-0.1.2" sources."fragment-cache-0.2.1" sources."fresh-0.5.2" sources."from2-2.3.0" sources."fs-write-stream-atomic-1.0.10" sources."fs.realpath-1.0.0" - sources."fsevents-1.2.9" + sources."fsevents-1.2.11" sources."function-bind-1.1.1" + sources."gensync-1.0.0-beta.1" sources."get-caller-file-2.0.5" (sources."get-paths-0.0.7" // { dependencies = [ @@ -10425,7 +10496,7 @@ in sources."get-stream-4.1.0" sources."get-value-2.0.6" sources."getpass-0.1.7" - sources."glob-7.1.4" + sources."glob-7.1.6" (sources."glob-parent-3.1.0" // { dependencies = [ sources."is-glob-3.1.0" @@ -10434,7 +10505,7 @@ in (sources."global-modules-2.0.0" // { dependencies = [ sources."global-prefix-3.0.0" - sources."kind-of-6.0.2" + sources."kind-of-6.0.3" ]; }) sources."global-prefix-1.0.2" @@ -10445,7 +10516,7 @@ in sources."get-stream-3.0.0" ]; }) - sources."graceful-fs-4.2.2" + sources."graceful-fs-4.2.3" sources."growly-1.3.0" (sources."gzip-size-5.1.1" // { dependencies = [ @@ -10453,11 +10524,6 @@ in ]; }) sources."handle-thing-2.0.0" - (sources."handlebars-4.4.2" // { - dependencies = [ - sources."uglify-js-3.6.0" - ]; - }) sources."har-schema-2.0.0" sources."har-validator-5.1.3" sources."has-1.0.3" @@ -10468,12 +10534,11 @@ in }) sources."has-flag-3.0.0" sources."has-symbol-support-x-1.4.2" - sources."has-symbols-1.0.0" + sources."has-symbols-1.0.1" sources."has-to-string-tag-x-1.4.1" sources."has-value-1.0.0" (sources."has-values-1.0.0" // { dependencies = [ - sources."is-buffer-1.1.6" sources."kind-of-4.0.0" ]; }) @@ -10483,10 +10548,11 @@ in sources."home-or-tmp-2.0.0" sources."homedir-polyfill-1.0.3" sources."hoopy-0.1.4" - sources."hosted-git-info-2.8.4" + sources."hosted-git-info-2.8.8" sources."hpack.js-2.1.6" sources."html-encoding-sniffer-1.0.2" sources."html-entities-1.2.1" + sources."html-escaper-2.0.0" sources."http-assert-1.4.1" sources."http-cache-semantics-3.8.1" sources."http-deceiver-1.2.7" @@ -10519,27 +10585,27 @@ in sources."invert-kv-2.0.0" sources."ip-1.1.5" sources."ip-regex-2.1.0" - sources."ipaddr.js-1.9.0" + sources."ipaddr.js-1.9.1" sources."is-absolute-url-3.0.3" (sources."is-accessor-descriptor-1.0.0" // { dependencies = [ - sources."kind-of-6.0.2" + sources."kind-of-6.0.3" ]; }) sources."is-arrayish-0.2.1" sources."is-binary-path-1.0.1" - sources."is-buffer-2.0.4" - sources."is-callable-1.1.4" + sources."is-buffer-1.1.6" + sources."is-callable-1.1.5" sources."is-ci-2.0.0" (sources."is-data-descriptor-1.0.0" // { dependencies = [ - sources."kind-of-6.0.2" + sources."kind-of-6.0.3" ]; }) - sources."is-date-object-1.0.1" + sources."is-date-object-1.0.2" (sources."is-descriptor-1.0.2" // { dependencies = [ - sources."kind-of-6.0.2" + sources."kind-of-6.0.3" ]; }) (sources."is-expression-3.0.0" // { @@ -10549,7 +10615,7 @@ in }) sources."is-extendable-0.1.1" sources."is-extglob-2.1.1" - sources."is-finite-1.0.2" + sources."is-finite-1.1.0" sources."is-fullwidth-code-point-2.0.0" sources."is-generator-fn-2.1.0" sources."is-generator-function-1.0.7" @@ -10562,10 +10628,10 @@ in sources."is-plain-obj-1.1.0" sources."is-plain-object-2.0.4" sources."is-promise-2.1.0" - sources."is-regex-1.0.4" + sources."is-regex-1.0.5" sources."is-retry-allowed-1.2.0" sources."is-stream-1.1.0" - sources."is-symbol-1.0.2" + sources."is-symbol-1.0.3" sources."is-typedarray-1.0.0" sources."is-whitespace-0.3.0" sources."is-windows-1.0.2" @@ -10596,14 +10662,14 @@ in sources."pify-4.0.1" ]; }) - sources."istanbul-reports-2.2.6" + sources."istanbul-reports-2.2.7" sources."isurl-1.0.0" sources."jest-24.9.0" sources."jest-changed-files-24.9.0" (sources."jest-cli-24.9.0" // { dependencies = [ sources."cliui-5.0.0" - sources."yargs-13.3.0" + sources."yargs-13.3.2" ]; }) sources."jest-config-24.9.0" @@ -10632,7 +10698,7 @@ in dependencies = [ sources."cliui-5.0.0" sources."slash-2.0.0" - sources."yargs-13.3.0" + sources."yargs-13.3.2" ]; }) sources."jest-serializer-24.9.0" @@ -10657,21 +10723,17 @@ in sources."supports-color-6.1.0" ]; }) - sources."js-beautify-1.10.2" + sources."js-beautify-1.10.3" sources."js-stringify-1.0.2" sources."js-tokens-3.0.2" - (sources."js-yaml-3.13.1" // { - dependencies = [ - sources."esprima-4.0.1" - ]; - }) + sources."js-yaml-3.13.1" sources."jsbn-0.1.1" (sources."jsdom-11.12.0" // { dependencies = [ - sources."acorn-5.7.3" + sources."acorn-5.7.4" (sources."acorn-globals-4.3.4" // { dependencies = [ - sources."acorn-6.3.0" + sources."acorn-6.4.1" ]; }) sources."ws-5.2.2" @@ -10686,22 +10748,18 @@ in sources."json3-3.3.3" (sources."json5-1.0.1" // { dependencies = [ - sources."minimist-1.2.0" + sources."minimist-1.2.5" ]; }) sources."jsonpath-plus-0.19.0" sources."jsprim-1.4.1" sources."jstransformer-1.0.0" - sources."keygrip-1.0.3" + sources."keygrip-1.1.0" sources."keyv-3.0.0" sources."killable-1.0.1" - (sources."kind-of-3.2.2" // { - dependencies = [ - sources."is-buffer-1.1.6" - ]; - }) + sources."kind-of-3.2.2" sources."kleur-3.0.3" - sources."koa-2.8.2" + sources."koa-2.11.0" sources."koa-body-4.1.1" sources."koa-compose-4.1.0" (sources."koa-convert-1.2.0" // { @@ -10709,7 +10767,6 @@ in sources."koa-compose-3.2.1" ]; }) - sources."koa-is-json-1.0.0" (sources."koa-router-7.4.0" // { dependencies = [ sources."koa-compose-3.2.1" @@ -10730,7 +10787,7 @@ in sources."levn-0.3.0" sources."load-json-file-4.0.0" sources."loader-runner-2.4.0" - sources."loader-utils-1.2.3" + sources."loader-utils-1.4.0" sources."locate-path-3.0.0" sources."lodash-4.17.15" sources."lodash.camelcase-4.3.0" @@ -10738,7 +10795,7 @@ in sources."lodash.memoize-4.1.2" sources."lodash.sortby-4.7.0" sources."log-symbols-2.2.0" - sources."loglevel-1.6.4" + sources."loglevel-1.6.7" sources."loglevelnext-1.0.5" sources."long-4.0.0" sources."longest-1.0.1" @@ -10746,7 +10803,7 @@ in sources."lowercase-keys-1.0.1" sources."lru-cache-5.1.1" sources."make-dir-1.3.0" - sources."make-error-1.3.5" + sources."make-error-1.3.6" sources."makeerror-1.0.11" sources."mamacro-0.0.3" sources."map-age-cleaner-0.1.3" @@ -10760,7 +10817,7 @@ in sources."p-is-promise-2.1.0" ]; }) - sources."memory-fs-0.4.1" + sources."memory-fs-0.5.0" sources."merge-descriptors-1.0.1" sources."merge-stream-2.0.0" sources."methods-1.1.2" @@ -10768,13 +10825,13 @@ in dependencies = [ sources."extend-shallow-3.0.2" sources."is-extendable-1.0.1" - sources."kind-of-6.0.2" + sources."kind-of-6.0.3" ]; }) sources."miller-rabin-4.0.1" sources."mime-1.6.0" - sources."mime-db-1.40.0" - sources."mime-types-2.1.24" + sources."mime-db-1.43.0" + sources."mime-types-2.1.26" sources."mimic-fn-1.2.0" sources."mimic-response-1.0.1" sources."minimalistic-assert-1.0.1" @@ -10793,7 +10850,7 @@ in }) sources."mkdirp-0.5.1" sources."moment-2.24.0" - sources."moment-timezone-0.5.26" + sources."moment-timezone-0.5.28" sources."move-concurrently-1.0.1" sources."ms-2.0.0" sources."multicast-dns-6.2.3" @@ -10804,7 +10861,7 @@ in dependencies = [ sources."extend-shallow-3.0.2" sources."is-extendable-1.0.1" - sources."kind-of-6.0.2" + sources."kind-of-6.0.3" ]; }) sources."natural-compare-1.4.0" @@ -10822,13 +10879,13 @@ in }) sources."node-modules-regexp-1.0.0" sources."node-notifier-5.4.3" - sources."nopt-4.0.1" + sources."nopt-4.0.3" sources."normalize-package-data-2.5.0" sources."normalize-path-2.1.1" sources."normalize-url-2.0.1" sources."npm-run-path-2.0.2" sources."number-is-nan-1.0.1" - sources."nwsapi-2.1.4" + sources."nwsapi-2.2.0" sources."oauth-sign-0.9.0" sources."object-assign-4.1.1" (sources."object-copy-0.1.0" // { @@ -10844,11 +10901,11 @@ in ]; }) sources."object-hash-1.3.1" - sources."object-inspect-1.6.0" + sources."object-inspect-1.7.0" sources."object-keys-1.1.1" sources."object-visit-1.0.1" sources."object.assign-4.1.0" - sources."object.getownpropertydescriptors-2.0.3" + sources."object.getownpropertydescriptors-2.1.0" sources."object.pick-1.3.0" sources."obuf-1.1.2" sources."oidc-token-hash-3.0.2" @@ -10860,12 +10917,7 @@ in sources."opener-1.5.1" sources."openid-client-2.5.0" sources."opn-5.5.0" - sources."optimist-0.6.1" - (sources."optionator-0.8.2" // { - dependencies = [ - sources."wordwrap-1.0.0" - ]; - }) + sources."optionator-0.8.3" sources."ora-3.4.0" sources."original-1.0.2" sources."os-browserify-0.3.0" @@ -10879,7 +10931,7 @@ in sources."p-each-series-1.0.0" sources."p-finally-1.0.0" sources."p-is-promise-1.1.0" - sources."p-limit-2.2.1" + sources."p-limit-2.2.2" sources."p-locate-3.0.0" sources."p-map-2.1.0" sources."p-reduce-1.0.0" @@ -10887,7 +10939,7 @@ in sources."p-some-2.0.1" sources."p-timeout-2.0.1" sources."p-try-2.2.0" - sources."pako-1.0.10" + sources."pako-1.0.11" sources."parallel-transform-1.2.0" sources."parse-asn1-5.1.5" sources."parse-json-4.0.0" @@ -10902,7 +10954,7 @@ in sources."path-is-inside-1.0.2" sources."path-key-2.0.1" sources."path-parse-1.0.6" - (sources."path-to-regexp-1.7.0" // { + (sources."path-to-regexp-1.8.0" // { dependencies = [ sources."isarray-0.0.1" ]; @@ -10924,15 +10976,16 @@ in ]; }) sources."pn-1.1.0" - (sources."portfinder-1.0.24" // { + (sources."portfinder-1.0.25" // { dependencies = [ - sources."debug-2.6.9" + sources."debug-3.2.6" + sources."ms-2.1.2" ]; }) sources."posix-character-classes-0.1.1" sources."prelude-ls-1.1.2" sources."prepend-http-2.0.0" - sources."prettier-1.18.2" + sources."prettier-1.19.1" sources."pretty-2.0.0" sources."pretty-format-24.9.0" sources."private-0.1.8" @@ -10940,12 +10993,12 @@ in sources."process-nextick-args-2.0.1" sources."promise-7.3.1" sources."promise-inflight-1.0.1" - sources."prompts-2.2.1" + sources."prompts-2.3.1" sources."proto-list-1.2.4" - sources."proxy-addr-2.0.5" + sources."proxy-addr-2.0.6" sources."prr-1.0.1" sources."pseudomap-1.0.2" - sources."psl-1.4.0" + sources."psl-1.7.0" sources."public-encrypt-4.0.3" sources."pug-2.0.4" sources."pug-attrs-2.0.4" @@ -10975,10 +11028,10 @@ in sources."randomfill-1.0.4" sources."range-parser-1.2.1" sources."raw-body-2.4.1" - sources."react-is-16.10.2" + sources."react-is-16.13.0" sources."read-pkg-3.0.0" sources."read-pkg-up-4.0.0" - (sources."readable-stream-2.3.6" // { + (sources."readable-stream-2.3.7" // { dependencies = [ sources."safe-buffer-5.1.2" ]; @@ -11006,13 +11059,13 @@ in sources."repeat-element-1.1.3" sources."repeat-string-1.6.1" sources."repeating-2.0.1" - sources."request-2.88.0" - sources."request-promise-core-1.1.2" - sources."request-promise-native-1.0.7" + sources."request-2.88.2" + sources."request-promise-core-1.1.3" + sources."request-promise-native-1.0.8" sources."require-directory-2.1.1" sources."require-main-filename-2.0.0" sources."requires-port-1.0.0" - sources."resolve-1.12.0" + sources."resolve-1.15.1" sources."resolve-cwd-2.0.0" (sources."resolve-dir-1.0.1" // { dependencies = [ @@ -11037,13 +11090,13 @@ in sources."ripemd160-2.0.2" sources."rsvp-4.8.5" sources."run-queue-1.0.3" - sources."rxjs-6.5.3" + sources."rxjs-6.5.4" sources."safe-buffer-5.2.0" sources."safe-regex-1.1.0" sources."safer-buffer-2.1.2" (sources."sane-4.1.0" // { dependencies = [ - sources."minimist-1.2.0" + sources."minimist-1.2.5" ]; }) sources."sax-1.2.4" @@ -11087,7 +11140,7 @@ in sources."sigmund-1.0.1" sources."signal-exit-3.0.2" sources."simple-git-1.96.0" - sources."sisteransi-1.0.3" + sources."sisteransi-1.0.4" sources."slash-1.0.0" (sources."snapdragon-0.8.2" // { dependencies = [ @@ -11098,7 +11151,6 @@ in sources."kind-of-3.2.2" ]; }) - sources."is-buffer-1.1.6" (sources."is-data-descriptor-0.1.4" // { dependencies = [ sources."kind-of-3.2.2" @@ -11126,8 +11178,8 @@ in sources."sort-keys-2.0.0" sources."source-list-map-2.0.1" sources."source-map-0.6.1" - sources."source-map-resolve-0.5.2" - sources."source-map-support-0.5.13" + sources."source-map-resolve-0.5.3" + sources."source-map-support-0.5.16" sources."source-map-url-0.4.0" sources."spdx-correct-3.1.0" sources."spdx-exceptions-2.2.0" @@ -11143,7 +11195,7 @@ in dependencies = [ sources."debug-4.1.1" sources."ms-2.1.2" - sources."readable-stream-3.4.0" + sources."readable-stream-3.6.0" ]; }) (sources."split-string-3.1.0" // { @@ -11164,7 +11216,6 @@ in sources."kind-of-3.2.2" ]; }) - sources."is-buffer-1.1.6" (sources."is-data-descriptor-0.1.4" // { dependencies = [ sources."kind-of-3.2.2" @@ -11179,7 +11230,7 @@ in sources."stream-browserify-2.0.2" sources."stream-each-1.2.3" sources."stream-http-2.8.3" - sources."stream-shift-1.0.0" + sources."stream-shift-1.0.1" sources."strict-uri-encode-1.1.0" (sources."string-length-2.0.0" // { dependencies = [ @@ -11188,8 +11239,8 @@ in ]; }) sources."string-width-3.1.0" - sources."string.prototype.trimleft-2.1.0" - sources."string.prototype.trimright-2.1.0" + sources."string.prototype.trimleft-2.1.1" + sources."string.prototype.trimright-2.1.1" (sources."string_decoder-1.1.1" // { dependencies = [ sources."safe-buffer-5.1.2" @@ -11201,8 +11252,8 @@ in sources."supports-color-5.5.0" sources."symbol-tree-3.2.4" sources."tapable-1.1.3" - sources."terser-4.3.8" - (sources."terser-webpack-plugin-1.4.1" // { + sources."terser-4.6.6" + (sources."terser-webpack-plugin-1.4.3" // { dependencies = [ sources."cacache-12.0.3" sources."find-cache-dir-2.1.0" @@ -11210,6 +11261,7 @@ in sources."mississippi-3.0.0" sources."pify-4.0.1" sources."pkg-dir-3.0.0" + sources."serialize-javascript-2.1.2" sources."ssri-6.0.1" ]; }) @@ -11218,7 +11270,7 @@ in sources."thenify-all-1.6.0" sources."throat-4.1.0" sources."through2-2.0.5" - sources."thunky-1.0.3" + sources."thunky-1.1.0" sources."timed-out-4.0.1" sources."timers-browserify-2.0.11" sources."tmpl-1.0.4" @@ -11234,23 +11286,20 @@ in sources."to-regex-range-2.1.1" sources."toidentifier-1.0.0" sources."token-stream-0.0.1" - (sources."tough-cookie-2.4.3" // { - dependencies = [ - sources."punycode-1.4.1" - ]; - }) + sources."tough-cookie-2.5.0" sources."tr46-1.0.1" sources."trim-right-1.0.1" sources."tryer-1.0.1" - (sources."ts-jest-24.1.0" // { + (sources."ts-jest-24.3.0" // { dependencies = [ sources."camelcase-4.1.0" sources."json5-2.1.1" - sources."minimist-1.2.0" + sources."minimist-1.2.5" sources."yargs-parser-10.1.0" ]; }) - sources."tslib-1.10.0" + sources."tslib-1.11.1" + sources."tsscmp-1.0.6" sources."tty-browserify-0.0.0" sources."tunnel-agent-0.6.0" sources."tweetnacl-0.14.5" @@ -11259,7 +11308,7 @@ in sources."type-is-1.6.18" sources."typedarray-0.0.6" sources."typedarray-to-buffer-3.1.5" - sources."typescript-3.6.3" + sources."typescript-3.8.3" sources."typical-4.0.0" (sources."uglify-js-2.8.29" // { dependencies = [ @@ -11267,7 +11316,7 @@ in ]; }) sources."uglify-to-browserify-1.0.2" - sources."underscore-1.9.1" + sources."underscore-1.9.2" sources."union-value-1.0.1" sources."unique-filename-1.1.1" sources."unique-slug-2.0.2" @@ -11284,7 +11333,7 @@ in }) sources."upath-1.2.0" sources."uri-js-4.2.2" - sources."urijs-1.19.1" + sources."urijs-1.19.2" sources."urix-0.1.0" (sources."url-0.11.0" // { dependencies = [ @@ -11301,45 +11350,52 @@ in ]; }) sources."util-deprecate-1.0.2" - sources."util.promisify-1.0.0" + sources."util.promisify-1.0.1" sources."utils-merge-1.0.1" - sources."uuid-3.3.3" + sources."uuid-3.4.0" sources."v8-compile-cache-2.0.3" sources."validate-npm-package-license-3.0.4" sources."vary-1.1.2" sources."verror-1.10.0" - sources."vm-browserify-1.1.0" + sources."vm-browserify-1.1.2" sources."void-elements-2.0.1" - sources."w3c-hr-time-1.0.1" + sources."w3c-hr-time-1.0.2" sources."walker-1.0.7" sources."watchpack-1.6.0" sources."wbuf-1.7.3" sources."wcwidth-1.0.1" sources."webidl-conversions-4.0.2" - (sources."webpack-4.41.0" // { + (sources."webpack-4.42.0" // { dependencies = [ - sources."acorn-6.3.0" + sources."acorn-6.4.1" + sources."memory-fs-0.4.1" ]; }) - (sources."webpack-bundle-analyzer-3.5.2" // { + (sources."webpack-bundle-analyzer-3.6.1" // { dependencies = [ - sources."acorn-6.3.0" + sources."acorn-7.1.1" + sources."acorn-walk-7.1.1" ]; }) - (sources."webpack-cli-3.3.9" // { + (sources."webpack-cli-3.3.11" // { dependencies = [ sources."cliui-5.0.0" + sources."emojis-list-2.1.0" + sources."enhanced-resolve-4.1.0" + sources."loader-utils-1.2.3" + sources."memory-fs-0.4.1" sources."supports-color-6.1.0" sources."yargs-13.2.4" ]; }) (sources."webpack-dev-middleware-3.7.2" // { dependencies = [ + sources."memory-fs-0.4.1" sources."mime-2.4.4" sources."webpack-log-2.0.0" ]; }) - (sources."webpack-dev-server-3.8.2" // { + (sources."webpack-dev-server-3.10.3" // { dependencies = [ sources."ansi-regex-2.1.1" sources."camelcase-5.3.1" @@ -11376,7 +11432,7 @@ in }) sources."webpack-log-1.2.0" sources."webpack-sources-1.4.3" - (sources."websocket-1.0.30" // { + (sources."websocket-1.0.31" // { dependencies = [ sources."debug-2.6.9" ]; @@ -11390,6 +11446,7 @@ in sources."which-module-2.0.0" sources."window-size-0.1.0" sources."with-5.1.1" + sources."word-wrap-1.2.3" sources."wordwrap-0.0.2" sources."worker-farm-1.7.0" sources."wrap-ansi-5.1.0" @@ -11402,7 +11459,7 @@ in sources."yaeti-0.0.6" sources."yallist-3.1.1" sources."yargs-3.10.0" - (sources."yargs-parser-13.1.1" // { + (sources."yargs-parser-13.1.2" // { dependencies = [ sources."camelcase-5.3.1" ]; diff --git a/pkgs/applications/networking/cluster/spark/default.nix b/pkgs/applications/networking/cluster/spark/default.nix index b8d4b947e32..162585851d0 100644 --- a/pkgs/applications/networking/cluster/spark/default.nix +++ b/pkgs/applications/networking/cluster/spark/default.nix @@ -54,6 +54,6 @@ stdenv.mkDerivation rec { license = stdenv.lib.licenses.asl20; platforms = stdenv.lib.platforms.all; maintainers = with maintainers; [ thoughtpolice offline kamilchm ]; - repositories.git = git://git.apache.org/spark.git; + repositories.git = "git://git.apache.org/spark.git"; }; } diff --git a/pkgs/applications/networking/cluster/stern/default.nix b/pkgs/applications/networking/cluster/stern/default.nix index 144d46043ff..95ad965c346 100644 --- a/pkgs/applications/networking/cluster/stern/default.nix +++ b/pkgs/applications/networking/cluster/stern/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, buildPackages, buildGoPackage, fetchFromGitHub }: +{ stdenv, lib, buildPackages, buildGoPackage, fetchFromGitHub, installShellFiles }: let isCrossBuild = stdenv.hostPlatform != stdenv.buildPlatform; in @@ -17,13 +17,15 @@ buildGoPackage rec { goDeps = ./deps.nix; + nativeBuildInputs = [ installShellFiles ]; + postInstall = let stern = if isCrossBuild then buildPackages.stern else "$bin"; in '' - mkdir -p $bin/share/bash-completion/completions - ${stern}/bin/stern --completion bash > $bin/share/bash-completion/completions/stern - mkdir -p $bin/share/zsh/site-functions - ${stern}/bin/stern --completion zsh > $bin/share/zsh/site-functions/_stern + for shell in bash zsh; do + ${stern}/bin/stern --completion $shell > stern.$shell + installShellCompletion stern.$shell + done ''; meta = with lib; { diff --git a/pkgs/applications/networking/cluster/taktuk/default.nix b/pkgs/applications/networking/cluster/taktuk/default.nix index 3423163f590..a5a2ace2399 100644 --- a/pkgs/applications/networking/cluster/taktuk/default.nix +++ b/pkgs/applications/networking/cluster/taktuk/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { network to transport commands and perform I/Os multiplexing. It doesn't require any specific software on the nodes thanks to a self-propagation algorithm.''; - homepage = http://taktuk.gforge.inria.fr/; + homepage = "http://taktuk.gforge.inria.fr/"; license = stdenv.lib.licenses.gpl2; maintainers = [ stdenv.lib.maintainers.bzizou ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/networking/cluster/terraform-docs/default.nix b/pkgs/applications/networking/cluster/terraform-docs/default.nix index 606cd0370aa..a5b6e7d2f5e 100644 --- a/pkgs/applications/networking/cluster/terraform-docs/default.nix +++ b/pkgs/applications/networking/cluster/terraform-docs/default.nix @@ -1,7 +1,7 @@ { lib, buildGoPackage, fetchFromGitHub }: buildGoPackage rec { pname = "terraform-docs"; - version = "0.6.0"; + version = "0.9.1"; goPackagePath = "github.com/segmentio/${pname}"; @@ -9,7 +9,7 @@ buildGoPackage rec { owner = "segmentio"; repo = pname; rev = "v${version}"; - sha256 = "1p6prhjf82qnhf1zwl9h92j4ds5g383a6g9pwwnqbc3wdwy5zx7d"; + sha256 = "00sfzdqhf8g85m03r6mbzfas5vvc67iq7syb8ljcgxg8l1knxnjx"; }; preBuild = '' diff --git a/pkgs/applications/networking/cluster/terraform-inventory/default.nix b/pkgs/applications/networking/cluster/terraform-inventory/default.nix index 1bb8df88d01..38fbd1b4286 100644 --- a/pkgs/applications/networking/cluster/terraform-inventory/default.nix +++ b/pkgs/applications/networking/cluster/terraform-inventory/default.nix @@ -19,7 +19,7 @@ buildGoPackage rec { goDeps = ./deps.nix; meta = with stdenv.lib; { - homepage = https://github.com/adammck/terraform-inventory; + homepage = "https://github.com/adammck/terraform-inventory"; description = "Terraform state to ansible inventory adapter"; platforms = platforms.all; license = licenses.mit; diff --git a/pkgs/applications/networking/cluster/terraform-landscape/Gemfile.lock b/pkgs/applications/networking/cluster/terraform-landscape/Gemfile.lock index b801fad546d..7307d8a33f3 100644 --- a/pkgs/applications/networking/cluster/terraform-landscape/Gemfile.lock +++ b/pkgs/applications/networking/cluster/terraform-landscape/Gemfile.lock @@ -22,4 +22,4 @@ DEPENDENCIES terraform_landscape BUNDLED WITH - 1.16.3 + 2.1.4 diff --git a/pkgs/applications/networking/cluster/terraform-landscape/default.nix b/pkgs/applications/networking/cluster/terraform-landscape/default.nix index 32f6680b2f8..903aa9abb6e 100644 --- a/pkgs/applications/networking/cluster/terraform-landscape/default.nix +++ b/pkgs/applications/networking/cluster/terraform-landscape/default.nix @@ -10,7 +10,7 @@ bundlerApp { meta = with lib; { description = "Improve Terraform's plan output to be easier to read and understand"; - homepage = https://github.com/coinbase/terraform-landscape; + homepage = "https://github.com/coinbase/terraform-landscape"; license = with licenses; asl20; maintainers = with maintainers; [ mbode manveru nicknovitski ]; platforms = platforms.unix; diff --git a/pkgs/applications/networking/cluster/terraform-providers/data.nix b/pkgs/applications/networking/cluster/terraform-providers/data.nix index b78ab3f6dda..6994f2b85a3 100644 --- a/pkgs/applications/networking/cluster/terraform-providers/data.nix +++ b/pkgs/applications/networking/cluster/terraform-providers/data.nix @@ -1,5 +1,13 @@ # Generated with ./update-all { + aci = + { + owner = "terraform-providers"; + repo = "terraform-provider-aci"; + rev = "v0.2.1"; + version = "0.2.1"; + sha256 = "1ylc3w5m68q7vvdignrgw3kwdmrw7w0blmfffxc4cam0a6a7q05l"; + }; acme = { owner = "terraform-providers"; @@ -8,17 +16,25 @@ version = "1.5.0"; sha256 = "1h53bgflchavnn4laf801d920bsgqqg0ph4slnf7y1fpb0mz5vdv"; }; + akamai = + { + owner = "terraform-providers"; + repo = "terraform-provider-akamai"; + rev = "v0.5.0"; + version = "0.5.0"; + sha256 = "18l1ik10pn4aq0911sqnfjw9a5zxrm0qbsgynvf5vxc02zds13n5"; + }; alicloud = { owner = "terraform-providers"; repo = "terraform-provider-alicloud"; - rev = "v1.70.1"; - version = "1.70.1"; - sha256 = "19bhnnw5gh4pqap8y23v57lyk27z7fw1wb4p0faj860kdf2zpq4j"; + rev = "v1.80.1"; + version = "1.80.1"; + sha256 = "0d483lp3rwz99f77sds717hafzbz1z7gq58dw52qzqagam8lrc10"; }; archive = { - owner = "terraform-providers"; + owner = "hashicorp"; repo = "terraform-provider-archive"; rev = "v1.3.0"; version = "1.3.0"; @@ -32,37 +48,53 @@ version = "1.1.0"; sha256 = "1akl9fzgm5qv01vz18xjzyqjnlxw699qq4x8vr96j16l1zf10h99"; }; - atlas = + auth0 = { owner = "terraform-providers"; - repo = "terraform-provider-atlas"; - rev = "v0.1.1"; - version = "0.1.1"; - sha256 = "0k73vv14vnjl5qm33w54s5zzi0mmk1kn2zs3qkfq71aqi9ml7d14"; + repo = "terraform-provider-auth0"; + rev = "v0.9.3"; + version = "0.9.3"; + sha256 = "04dd7jxhpw2dqj6h3sbknbl1fa92jzshznm8icxrjajpxhcnbc32"; + }; + avi = + { + owner = "terraform-providers"; + repo = "terraform-provider-avi"; + rev = "18.2.8"; + version = "18.2.8"; + sha256 = "0vpa6wksvb4gz65hgq0vizw0bky400bqh9zgf41g0mqkhv3wwb4i"; + }; + aviatrix = + { + owner = "terraform-providers"; + repo = "terraform-provider-aviatrix"; + rev = "v2.13.0"; + version = "2.13.0"; + sha256 = "1913fp3lfvdr3npwr0vbdhb4xsvyyr1r76hv3h7rg5fidf3vpw5a"; }; aws = { owner = "terraform-providers"; repo = "terraform-provider-aws"; - rev = "v2.45.0"; - version = "2.45.0"; - sha256 = "0416f32wy88zyagnwcf2flh1rh7i118b9h5qn8fwrm3sv43p3blm"; + rev = "v2.59.0"; + version = "2.59.0"; + sha256 = "0hkvjvabw8phl5mb9km2dxm64a5lf56g9aq9qf593zsij1rsjwkk"; }; azuread = { owner = "terraform-providers"; repo = "terraform-provider-azuread"; - rev = "v0.7.0"; - version = "0.7.0"; - sha256 = "1a7w31dvjz5498445ia4m5gd1js3k7ghz6qqfq51f2n86iafs0xq"; + rev = "v0.8.0"; + version = "0.8.0"; + sha256 = "0vljhjbizxh5s8f2ki7yn6hzf5xbn5swhxmq9wpxmg7jw5z0k6ha"; }; azurerm = { owner = "terraform-providers"; repo = "terraform-provider-azurerm"; - rev = "v1.41.0"; - version = "1.41.0"; - sha256 = "0ma291m9d452wavjr3lgyik01r8napmwz91bbnbfzp1j48hhqc4h"; + rev = "v2.7.0"; + version = "2.7.0"; + sha256 = "0w4bafj3kn5kvkrc26ix1y9rgf3w4810x7la7g1aclpg7507fcv3"; }; azurestack = { @@ -72,21 +104,29 @@ version = "0.9.0"; sha256 = "1msm7jwzry0vmas3l68h6p0migrsm6d18zpxcncv197m8xbvg324"; }; + baiducloud = + { + owner = "terraform-providers"; + repo = "terraform-provider-baiducloud"; + rev = "v1.2.0"; + version = "1.2.0"; + sha256 = "1s2vk4vjni5nc50pdw60pm0grrf835xy551i6d4cmfxkkpqx3f6f"; + }; bigip = { owner = "terraform-providers"; repo = "terraform-provider-bigip"; - rev = "v1.1.1"; - version = "1.1.1"; - sha256 = "15rx25fbvdmgvg5n0qnq1hyfnr7l4nx8igdb4107g41fp73bxg32"; + rev = "v1.12"; + version = "1.12"; + sha256 = "0yjv0xldplx7jfld1izzc7i93bzwdqrjjzymq02isy2xyfh8by35"; }; bitbucket = { owner = "terraform-providers"; repo = "terraform-provider-bitbucket"; - rev = "v1.1.0"; - version = "1.1.0"; - sha256 = "06bjagbgpgfphwym015wl00wx6qf7lsdig0fhpxqaykvlkn3sg49"; + rev = "v1.2.0"; + version = "1.2.0"; + sha256 = "11n4wpvmaab164g6k077n9dbdbhd5lwl7pxpha5492ks468nd95b"; }; brightbox = { @@ -96,6 +136,14 @@ version = "1.2.0"; sha256 = "0s1b2k58r2kmjrdqrkw2dlfpby79i81gml9rpa10y372bwq314zd"; }; + checkpoint = + { + owner = "terraform-providers"; + repo = "terraform-provider-checkpoint"; + rev = "v1.0.1"; + version = "1.0.1"; + sha256 = "1z2m8lbnplcfaij1xnclyhl4zlchx6bmvrc2fr4hwfzc58m9v7ra"; + }; chef = { owner = "terraform-providers"; @@ -104,13 +152,21 @@ version = "0.2.0"; sha256 = "0ihn4706fflmf0585w22l7arzxsa9biq4cgh8nlhlp5y0zy934ns"; }; - circonus = + cherryservers = { owner = "terraform-providers"; - repo = "terraform-provider-circonus"; - rev = "v0.5.0"; - version = "0.5.0"; - sha256 = "0m6xbmgbismsmxnh79xb9p3mvy9aqdwvmsvifpxsbd73lki232mc"; + repo = "terraform-provider-cherryservers"; + rev = "v1.0.0"; + version = "1.0.0"; + sha256 = "1z6ai6q8aw38kiy8x13rp0dsvb4jk40cv8pk5c069q15m4jab8lh"; + }; + ciscoasa = + { + owner = "terraform-providers"; + repo = "terraform-provider-ciscoasa"; + rev = "v1.2.0"; + version = "1.2.0"; + sha256 = "033pgy42qwjpmjyzylpml7sfzd6dvvybs56cid1f6sm4ykmxbal7"; }; clc = { @@ -124,17 +180,25 @@ { owner = "terraform-providers"; repo = "terraform-provider-cloudflare"; - rev = "v2.3.0"; - version = "2.3.0"; - sha256 = "031xb0g1g74gc44nadbgrfn59hzjr5q0s98lgxrglsdm5mfgzdfr"; + rev = "v2.6.0"; + version = "2.6.0"; + sha256 = "01z2znif5yy4bawcf76b6d0j3b67fljbx87b4b2cb5vqy4l4aamk"; + }; + cloudinit = + { + owner = "hashicorp"; + repo = "terraform-provider-cloudinit"; + rev = "v1.0.0"; + version = "1.0.0"; + sha256 = "0i926f4xkfydd2bxmim69xrvi9ymn1vrc66zl117axzsmy9200zx"; }; cloudscale = { owner = "terraform-providers"; repo = "terraform-provider-cloudscale"; - rev = "v2.1.1"; - version = "2.1.1"; - sha256 = "122yi2wbd8mqddkwp2la6vwqw0kw7c9ff5j6y4xqczjg2bwb9mph"; + rev = "v2.1.2"; + version = "2.1.2"; + sha256 = "052pa17a77fkmhvygfgmpz87xlc08qvz1apzc2scg2449xfdv7zb"; }; cloudstack = { @@ -156,25 +220,25 @@ { owner = "terraform-providers"; repo = "terraform-provider-consul"; - rev = "v2.6.1"; - version = "2.6.1"; - sha256 = "17lgfanz3by7wfrgqbwbsbxs46mrr8a1iyqkj38qc8xg0m6pg97v"; + rev = "v2.7.0"; + version = "2.7.0"; + sha256 = "11c54waq7w34l79ak4kizjkmh8zjca5ygh9yib691hdmxsx2cifj"; }; datadog = { owner = "terraform-providers"; repo = "terraform-provider-datadog"; - rev = "v2.6.0"; - version = "2.6.0"; - sha256 = "05ijf01sxdxrxc3ii68ha8b6x8pz025kfa51i91q42ldhf3kqhsz"; + rev = "v2.7.0"; + version = "2.7.0"; + sha256 = "0cq11cjcm2nlszqhsrj425mk8dp0h5ljrrn7jplrbffp8g6wvadd"; }; digitalocean = { owner = "terraform-providers"; repo = "terraform-provider-digitalocean"; - rev = "v1.12.0"; - version = "1.12.0"; - sha256 = "137p8q30pv28h5gfqag0i44dxbc1dbq239gnzbb4hkzgsqgrb9gp"; + rev = "v1.16.0"; + version = "1.16.0"; + sha256 = "0yymgkn66a9mif0wic4rais7ap6d4gfxij835ssr2pr3rb49ay8d"; }; dme = { @@ -184,29 +248,37 @@ version = "0.1.0"; sha256 = "1ipqw1sbx0i9rhxawsysrqxvf10z8ra2y86xwd4iz0f12x9drblv"; }; - dns = + dnsimple = { owner = "terraform-providers"; + repo = "terraform-provider-dnsimple"; + rev = "v0.3.0"; + version = "0.3.0"; + sha256 = "1m38whc6jx5mccaisnbnkawwlz1bxvy991rqy6h9xb10zyvqar62"; + }; + dns = + { + owner = "hashicorp"; repo = "terraform-provider-dns"; rev = "v2.2.0"; version = "2.2.0"; sha256 = "11xdxj6hfclaq9glbh14nihmrsk220crm9ld8bdv77w0bppmrrch"; }; - dnsimple = - { - owner = "terraform-providers"; - repo = "terraform-provider-dnsimple"; - rev = "v0.2.0"; - version = "0.2.0"; - sha256 = "0jj82fffqaz7gramj5d4avx7vka6w190yz4r9q7628qh8ih2pfhz"; - }; docker = { owner = "terraform-providers"; repo = "terraform-provider-docker"; - rev = "v2.6.0"; - version = "2.6.0"; - sha256 = "12qq7m75yxfczik78klqaimrzhp70m2vk5q0h3v8b2dwvvynj0dg"; + rev = "v2.7.0"; + version = "2.7.0"; + sha256 = "0pl515xjnic7mhfvqbml1z1win5mrhjdqb84jhd5n09j39lb24gx"; + }; + dome9 = + { + owner = "terraform-providers"; + repo = "terraform-provider-dome9"; + rev = "v1.18.1"; + version = "1.18.1"; + sha256 = "0m4fxpik55z9ah5nlhvy314xyxvlaldqbwdp3bx1xs9kpm3znvyl"; }; dyn = { @@ -216,9 +288,17 @@ version = "1.2.0"; sha256 = "1a3kxmbib2y0nl7gnxknbhsflj5kfknxnm3gjxxrb2h5d2kvqy48"; }; - external = + exoscale = { owner = "terraform-providers"; + repo = "terraform-provider-exoscale"; + rev = "v0.16.2"; + version = "0.16.2"; + sha256 = "102z4v3shk0as76v90151j4c6p93wy16m1hzzk1yp50dlc8ffsks"; + }; + external = + { + owner = "hashicorp"; repo = "terraform-provider-external"; rev = "v1.2.0"; version = "1.2.0"; @@ -228,49 +308,65 @@ { owner = "terraform-providers"; repo = "terraform-provider-fastly"; - rev = "v0.12.1"; - version = "0.12.1"; - sha256 = "1bczp7rdbpmycbky9ijirfix2capw0hjai4c7w5hmm4wda5spwb1"; + rev = "v0.14.0"; + version = "0.14.0"; + sha256 = "1ak5gyrv66dnf5qy54hvwc4478n3cs5nxd0nwa2vf0gn2zp55bhy"; }; flexibleengine = { owner = "terraform-providers"; repo = "terraform-provider-flexibleengine"; - rev = "v1.10.0"; - version = "1.10.0"; - sha256 = "1ys1dd7knfk3hic6ph4gi7qsf75s2m5mxkil16p3f9ywvfxpzq8w"; + rev = "v1.11.1"; + version = "1.11.1"; + sha256 = "12kgnq2ydwi2n29y0dc7r251zrnq8kkskiq8p5ypsrm23j3jm6dw"; + }; + fortios = + { + owner = "terraform-providers"; + repo = "terraform-provider-fortios"; + rev = "v1.1.0"; + version = "1.1.0"; + sha256 = "0m006ah351f2ih7zvd3pnpga4d8mh42i4m8af4wflhvyzkw50xnf"; + }; + genymotion = + { + owner = "terraform-providers"; + repo = "terraform-provider-genymotion"; + rev = "v1.1.0"; + version = "1.1.0"; + sha256 = "02jpr3cm7rrf810c69sr6lcxzvxpnf7icc5z80gnvg67wwfg4ph4"; }; github = { owner = "terraform-providers"; repo = "terraform-provider-github"; - rev = "v2.3.0"; - version = "2.3.0"; - sha256 = "02fd6rq25ms9lpjqn4n1wy13i2mnl9lvczpgjqlz69yj2aiwyw34"; + rev = "v2.6.1"; + version = "2.6.1"; + sha256 = "1hg5pij2hllj6m6x8salsgw404ap7pw6yccvgynw4y4k26dl0jlr"; }; gitlab = { owner = "terraform-providers"; repo = "terraform-provider-gitlab"; - rev = "v2.5.0"; - version = "2.5.0"; - sha256 = "1g7girhjks6p7rcs82p2zd8clp6kdfn6d1synlmfwiw6d3496fvf"; - }; - google = - { - owner = "terraform-providers"; - repo = "terraform-provider-google"; - rev = "v3.5.0"; - version = "3.5.0"; - sha256 = "09mlic67940bnq5f8a7magn27k2jm8hvq3z0zh2cv6a9gdpg821i"; + rev = "v2.6.0"; + version = "2.6.0"; + sha256 = "0qy58fgwipcjwxz473rpcnpkb22n9hqsjckx88lhc2br4pgbcbrd"; }; google-beta = { owner = "terraform-providers"; repo = "terraform-provider-google-beta"; - rev = "v3.5.0"; - version = "3.5.0"; - sha256 = "1qkfvvidvb2j76x095vprj2vm272lig38a8rbxsir2kkvkmnzv5l"; + rev = "v3.18.0"; + version = "3.18.0"; + sha256 = "1rsaqrgr6ddgx1pala83y70dk32s0mvf6vi877awmimxjzsa1l4r"; + }; + google = + { + owner = "terraform-providers"; + repo = "terraform-provider-google"; + rev = "v3.18.0"; + version = "3.18.0"; + sha256 = "18cxl1qw1wyvzvhgjm1s3c19hbi5z9s6mipgazhrac70myw8dmy7"; }; grafana = { @@ -280,61 +376,85 @@ version = "1.5.0"; sha256 = "0zy3bqgpxymp2zygaxzllk1ysdankwxa1sy1djfgr4fs2nlggkwi"; }; + gridscale = + { + owner = "terraform-providers"; + repo = "terraform-provider-gridscale"; + rev = "v1.5.1"; + version = "1.5.1"; + sha256 = "0m5j9y26a7jl3frnw1j8gll999brprgf0i29p201d3c9b02pxnla"; + }; hcloud = { owner = "terraform-providers"; repo = "terraform-provider-hcloud"; - rev = "v1.15.0"; - version = "1.15.0"; - sha256 = "0l554mf6s248j0453b4r5pafshcvhn2smk4pp23y9kq5g1xd0xmd"; + rev = "v1.16.0"; + version = "1.16.0"; + sha256 = "09v2bg4ffyh4ibz449dygxgd7mvjgh4b2r242l3cwi7pzn66imrz"; }; hedvig = { owner = "terraform-providers"; repo = "terraform-provider-hedvig"; - rev = "v1.0.5"; - version = "1.0.5"; - sha256 = "0dic4kqjwi3s8pss1pmgixnr7xi503gl5i7pcx66fam5y5ar92v5"; + rev = "v1.1.1"; + version = "1.1.1"; + sha256 = "1gd26jm9frn52hy2vm5sv003lbai5sjgdign6akhjmw5sdsmfr05"; }; helm = { owner = "terraform-providers"; repo = "terraform-provider-helm"; - rev = "v0.10.4"; - version = "0.10.4"; - sha256 = "0xl0wgh1j6yhymadqvlj21qddxfzaxk3d5wpzskfmhfk732795rc"; + rev = "v1.1.1"; + version = "1.1.1"; + sha256 = "0sna0xaibdh1aw3lxs1r2hidw95lxkpm4fqdw0hzmdqxwdmg4b40"; }; heroku = { owner = "terraform-providers"; repo = "terraform-provider-heroku"; - rev = "v2.2.1"; - version = "2.2.1"; - sha256 = "145kfm4asca0ksprb076mjdhs5ahrlrad8cqz8spxra5fa3j46sq"; + rev = "v2.4.0"; + version = "2.4.0"; + sha256 = "1rhny1mbkqkfiqshps5mc5f3ykxnpypsdi72hw4g1k29pbvr4hh8"; }; http = { - owner = "terraform-providers"; + owner = "hashicorp"; repo = "terraform-provider-http"; - rev = "v1.1.1"; - version = "1.1.1"; - sha256 = "0ah4wi9gm5m7z0wyy6vn3baz2iw2sq7ah7q0lb9srwr887aai3x0"; + rev = "v1.2.0"; + version = "1.2.0"; + sha256 = "0q8ichbqrq62q1j0rc7sdz1jzfwg2l9v4ac9jqf6y485dblhmwqd"; + }; + huaweicloudstack = + { + owner = "terraform-providers"; + repo = "terraform-provider-huaweicloudstack"; + rev = "v1.1.0"; + version = "1.1.0"; + sha256 = "1zzf7jbvdlccfbb4cmw2k3mlfj4hh0lv59zahq2zy8afiajsb68i"; }; huaweicloud = { owner = "terraform-providers"; repo = "terraform-provider-huaweicloud"; - rev = "v1.12.0"; - version = "1.12.0"; - sha256 = "1wcr1d9y6bnwjh6b0a49i566wyn0d8bjnxnpgmd4s6wmr9sc4l0b"; + rev = "v1.14.0"; + version = "1.14.0"; + sha256 = "10g5xl3pspzmj0bjzqbw3br4k7kh2jplph06f7sz2zg9dncl4h5z"; + }; + ibm = + { + owner = "IBM-Cloud"; + repo = "terraform-provider-ibm"; + rev = "v1.4.0"; + version = "1.4.0"; + sha256 = "147vl55g6c49ihk8z2hwfq2v7g1yj35id1qfjlz0dxalm7cwa3l6"; }; icinga2 = { owner = "terraform-providers"; repo = "terraform-provider-icinga2"; - rev = "v0.2.0"; - version = "0.2.0"; - sha256 = "02ladn2w75k35vn8llj3zh9hbpnnnvpm47c9f29zshfs04acwbq0"; + rev = "v0.3.0"; + version = "0.3.0"; + sha256 = "0xwjxb84glhp9viqykziwanj696w2prq4r7k0565k0w3qiaz440v"; }; ignition = { @@ -344,6 +464,14 @@ version = "1.2.1"; sha256 = "0wd29iw0a5w7ykgs9m1mmi0bw5z9dl4z640qyz64x8rlh5hl1wql"; }; + incapsula = + { + owner = "terraform-providers"; + repo = "terraform-provider-incapsula"; + rev = "v2.1.0"; + version = "2.1.0"; + sha256 = "12zw2m7j52rszfawywbiv9rgv976h1w6bp98012qn45d4ap2kvzy"; + }; influxdb = { owner = "terraform-providers"; @@ -352,13 +480,37 @@ version = "1.3.0"; sha256 = "19af40g8hgz2rdz6523v0fs71ww7qdlf2mh5j9vb7pfzriqwa5k9"; }; + infoblox = + { + owner = "terraform-providers"; + repo = "terraform-provider-infoblox"; + rev = "v1.0.0"; + version = "1.0.0"; + sha256 = "0p95y5w3fzddygmsjc0j60z0f4aazvy5iwbwszj0i8gs42qhda2f"; + }; + jdcloud = + { + owner = "terraform-providers"; + repo = "terraform-provider-jdcloud"; + rev = "v1.1.0"; + version = "1.1.0"; + sha256 = "04vz0m3z9rfw2hp0h3jhn625r2v37b319krznvhqylqzksv39dzf"; + }; kubernetes = { owner = "terraform-providers"; repo = "terraform-provider-kubernetes"; - rev = "v1.10.0"; - version = "1.10.0"; - sha256 = "04hd9n9jm72fi81cmdz0yf374fg52r8yinsxy0ag29rd3r2l1k81"; + rev = "v1.11.1"; + version = "1.11.1"; + sha256 = "13m0g52i2z4s58grk22rv0yqbrfszfbxxhwisb5mi7cma4cp7506"; + }; + launchdarkly = + { + owner = "terraform-providers"; + repo = "terraform-provider-launchdarkly"; + rev = "v1.2.2"; + version = "1.2.2"; + sha256 = "0rvyzn2a8bh8hvd3f6whfwzpx2frqnfmh8nwlasb0r4xya8lv3bc"; }; librato = { @@ -372,13 +524,13 @@ { owner = "terraform-providers"; repo = "terraform-provider-linode"; - rev = "v1.9.1"; - version = "1.9.1"; - sha256 = "10f7nij91fhgf1808r6rv3l13nz7p37mcln5p3nfvhsxskss3vxn"; + rev = "v1.9.3"; + version = "1.9.3"; + sha256 = "12jwvpnv4xl9crq6jynking2rcl4ci8ci22db3fadigxqs98hb4w"; }; local = { - owner = "terraform-providers"; + owner = "hashicorp"; repo = "terraform-provider-local"; rev = "v1.4.0"; version = "1.4.0"; @@ -396,9 +548,9 @@ { owner = "terraform-providers"; repo = "terraform-provider-logicmonitor"; - rev = "v1.2.1"; - version = "1.2.1"; - sha256 = "1fcv5g92l6xr4x69h9rg48zazjr99wrz9mkmr122fyq9s7kdd98y"; + rev = "v1.3.0"; + version = "1.3.0"; + sha256 = "00d8qx95cxaif636dyh935nv9nn6lmb1ybxy7n4myy9g80y50ap1"; }; mailgun = { @@ -408,6 +560,30 @@ version = "0.4.1"; sha256 = "1l76pg4hmww9zg2n4rkhm5dwjh42fxri6d41ih1bf670krkxwsmz"; }; + matchbox = + { + owner = "poseidon"; + repo = "terraform-provider-matchbox"; + rev = "v0.3.0"; + version = "0.3.0"; + sha256 = "1nq7k8qa7rv8xyryjigwpwcwvj1sw85c4j46rkfdv70b6js25jz3"; + }; + metalcloud = + { + owner = "terraform-providers"; + repo = "terraform-provider-metalcloud"; + rev = "v2.2.0"; + version = "2.2.0"; + sha256 = "0xii9gk96srzi9y4pbvlx2cvwypll4igvk89f9qrg18qrw72ags3"; + }; + mongodbatlas = + { + owner = "terraform-providers"; + repo = "terraform-provider-mongodbatlas"; + rev = "v0.5.0"; + version = "0.5.0"; + sha256 = "15m7qmn1gd7gmzlqgf2q70kmihf8ihqabpkf122pxhb3iyikwh77"; + }; mysql = { owner = "terraform-providers"; @@ -416,49 +592,65 @@ version = "1.9.0"; sha256 = "14gxxki3jhncv3s2x828ns2vgmf2xxzigdyp9b54mbkw5rnv1k2g"; }; + ncloud = + { + owner = "terraform-providers"; + repo = "terraform-provider-ncloud"; + rev = "v1.2.0"; + version = "1.2.0"; + sha256 = "1h2fr0ss58dr3ypqj6kw90iyji6s83sz2i85vhs5z2adjbk7h8va"; + }; netlify = { owner = "terraform-providers"; repo = "terraform-provider-netlify"; - rev = "v0.3.0"; - version = "0.3.0"; - sha256 = "0mmbli6d3fbpyvvdfsg32f1w83g8ga3x21b36rgmx3mn156r7yij"; + rev = "v0.4.0"; + version = "0.4.0"; + sha256 = "07xds84k2vgpvn2cy3id7hmzg57sz2603zs4msn3ysxmi28lmqyg"; }; newrelic = { owner = "terraform-providers"; repo = "terraform-provider-newrelic"; - rev = "v1.12.1"; - version = "1.12.1"; - sha256 = "17xdwhiyzfjxirvjwwl5jnan84i3zd930zch8l4jx04946vjzsc5"; + rev = "v1.16.0"; + version = "1.16.0"; + sha256 = "0ddfffyrw28syg0y2q9j7xh4k2sjb8l40167rwgz19w39p1caffv"; + }; + nixos = + { + owner = "tweag"; + repo = "terraform-provider-nixos"; + rev = "v0.0.1"; + version = "0.0.1"; + sha256 = "00vz6qjq1pk39iqg4356b8g3c6slla9jifkv2knk46gc9q93q0lf"; }; nomad = { owner = "terraform-providers"; repo = "terraform-provider-nomad"; - rev = "v1.4.2"; - version = "1.4.2"; - sha256 = "0h0snkzqdi4g5lp78f5pq98x6556ldwgkg9p9jkmrg04y7928w5v"; + rev = "v1.4.5"; + version = "1.4.5"; + sha256 = "1sccm4mspjn92ky6nscsrmbb573mx53wzsvvapsf2p4119h9s30i"; }; ns1 = { owner = "terraform-providers"; repo = "terraform-provider-ns1"; - rev = "v1.6.4"; - version = "1.6.4"; - sha256 = "08wg5qlqj7id5gfwxckjyx1ypfkiq919vjzq8qsdayg9sr9dpf5i"; + rev = "v1.8.1"; + version = "1.8.1"; + sha256 = "04s46f40md8hrqqiwj6wcq4qpx0115qk8hwbln9a7lsrh0zmmmb3"; }; nsxt = { owner = "terraform-providers"; repo = "terraform-provider-nsxt"; - rev = "v1.1.2"; - version = "1.1.2"; - sha256 = "1hnxivad7371j363sp3460mfzl5alb3dhxsbp0qwfl5mzvriwrbl"; + rev = "v2.0.0"; + version = "2.0.0"; + sha256 = "0fka793r0c06sz8vlxk0z7vbm6kab5xzk39r5pznkq34004r17sl"; }; null = { - owner = "terraform-providers"; + owner = "hashicorp"; repo = "terraform-provider-null"; rev = "v2.1.2"; version = "2.1.2"; @@ -476,9 +668,25 @@ { owner = "terraform-providers"; repo = "terraform-provider-oci"; - rev = "v3.59.0-rc1"; - version = "3.59.0-rc1"; - sha256 = "1pgl95rmxk9h9whbkfgpzpbvvkhnm3223flqk73w673ylgrxss49"; + rev = "v3.72.0"; + version = "3.72.0"; + sha256 = "05sl702b0j9lpsy3bjac104qngjlsln0v2ni8a78j97xif8jb0an"; + }; + oktaasa = + { + owner = "terraform-providers"; + repo = "terraform-provider-oktaasa"; + rev = "v1.0.0"; + version = "1.0.0"; + sha256 = "093d5r8dz8gryk8qp5var2qrrgkvs1gwgw3zqpxry9xc5cpn30w0"; + }; + okta = + { + owner = "terraform-providers"; + repo = "terraform-provider-okta"; + rev = "v3.2.0"; + version = "3.2.0"; + sha256 = "13z5srra4pj5p2dwzrqiny2ph4vmmp8q59ycmd7x2yi93fd02mcl"; }; oneandone = { @@ -492,33 +700,41 @@ { owner = "terraform-providers"; repo = "terraform-provider-opc"; - rev = "v1.3.7"; - version = "1.3.7"; - sha256 = "01g09w8mqfp1d8phplsdj0vz63q5bgq9fqwy2kp4vrnwb70dq52w"; + rev = "v1.4.0"; + version = "1.4.0"; + sha256 = "1yl8bbh4pf94wlmna294zcawylr9hiaix82wr321g9wb0vi3d5l8"; + }; + opennebula = + { + owner = "terraform-providers"; + repo = "terraform-provider-opennebula"; + rev = "v0.1.1"; + version = "0.1.1"; + sha256 = "048cqd89fz5xpji1w8ylg75nbzzcx1c5n89y1k0ra8d3g2208yb2"; }; openstack = { owner = "terraform-providers"; repo = "terraform-provider-openstack"; - rev = "v1.25.0"; - version = "1.25.0"; - sha256 = "1yqc7nhmzlcq48csn23ma3fv6yb6cmkqqrxv63jjg6bxb7nyyqxd"; + rev = "v1.27.0"; + version = "1.27.0"; + sha256 = "0d6dms5y8vndcm10zfid1g13c5fi19z7hqll8z07jr0hgvhbzp2v"; }; opentelekomcloud = { owner = "terraform-providers"; repo = "terraform-provider-opentelekomcloud"; - rev = "v1.15.0"; - version = "1.15.0"; - sha256 = "080lzs40m3vny5bmg4vhsy7qz884c44ysmh325hi6s3v76dv4jxg"; + rev = "v1.16.0"; + version = "1.16.0"; + sha256 = "1bxkh8qnm1mw37wi4rxf29q8lksp864124nwbyn14fwb4h6m1yj4"; }; opsgenie = { owner = "terraform-providers"; repo = "terraform-provider-opsgenie"; - rev = "v0.2.7"; - version = "0.2.7"; - sha256 = "0yylf5iv1dba9naqys65l5whym3q0bwpn98dwxr0lyj0skr8nz7r"; + rev = "v0.3.1"; + version = "0.3.1"; + sha256 = "1ciqhibij0fk2z20yabl464mj9srp1v6dy04dyazmxkw46bm1lc5"; }; oraclepaas = { @@ -532,25 +748,25 @@ { owner = "terraform-providers"; repo = "terraform-provider-ovh"; - rev = "v0.6.0"; - version = "0.6.0"; - sha256 = "0hj029q9j2751hnay0rh0c8yxgmv2wd6xjwi12gkj6k6rmpgqfdh"; + rev = "v0.7.0"; + version = "0.7.0"; + sha256 = "167msjsl8xh8zy7lrxvkq2h98xpvxpsjzlil8lcxqmz8qq8a0q5f"; }; packet = { owner = "terraform-providers"; repo = "terraform-provider-packet"; - rev = "v2.7.3"; - version = "2.7.3"; - sha256 = "1dd9fa416crh5y61qyaj2l0jhn1kh0ndkzqdw3lsxjqdhcqppbns"; + rev = "v2.8.1"; + version = "2.8.1"; + sha256 = "1idrvkc2bbp3vwz2w45nazr1hq10f7bmyamb57q7mlswydcyk6b2"; }; pagerduty = { owner = "terraform-providers"; repo = "terraform-provider-pagerduty"; - rev = "v1.4.1"; - version = "1.4.1"; - sha256 = "0dmafnlziyczad907isjqzsn1fyjzc8pdigp3m6114bbnca0ry5k"; + rev = "v1.7.0"; + version = "1.7.0"; + sha256 = "168v1mpl9df63yp8zjq79hyxcjj4imyzg20rdn6n71d6iz8v85g8"; }; panos = { @@ -560,13 +776,21 @@ version = "1.6.2"; sha256 = "1qy6jynv61zhvq16s8jkwjhxz7r65cmk9k37ahh07pbhdx707mz5"; }; + pass = + { + owner = "camptocamp"; + repo = "terraform-provider-pass"; + rev = "1.2.1"; + version = "1.2.1"; + sha256 = "1hf5mvgz5ycp7shiy8px205d9kwswfjmclg7mlh9a55bkraffahk"; + }; postgresql = { owner = "terraform-providers"; repo = "terraform-provider-postgresql"; - rev = "v1.4.0"; - version = "1.4.0"; - sha256 = "162j6dyrbc9r4ipj6igj64wm6r65l4vb0dlwczfhlksix3qzr3kx"; + rev = "v1.5.0"; + version = "1.5.0"; + sha256 = "1c9vn1jpfan04iidzn030q21bz3xabrd5pdhlbblblf558ykn4q0"; }; powerdns = { @@ -580,17 +804,33 @@ { owner = "terraform-providers"; repo = "terraform-provider-profitbricks"; - rev = "v1.4.4"; - version = "1.4.4"; - sha256 = "0pzcl3pdhaykihvv1v38zrv607mydchvkzrzhwcakgmdkp3vq54i"; + rev = "v1.5.0"; + version = "1.5.0"; + sha256 = "0v9x8sj9c6acmbnkv4bnjvz93dd1fmg9b98rwghiakf968hxx6hl"; + }; + pureport = + { + owner = "terraform-providers"; + repo = "terraform-provider-pureport"; + rev = "v1.1.8"; + version = "1.1.8"; + sha256 = "02vmqwjz5m5hj4zghwicjp27dxvc4qsiwj4gjsi66w6djdqnh4h1"; }; rabbitmq = { owner = "terraform-providers"; repo = "terraform-provider-rabbitmq"; - rev = "v1.2.0"; - version = "1.2.0"; - sha256 = "1lhra8dvfyi6gn4s8mjd3lkkj6bz8y7xjhw1ki2kl5vpfw79d4l9"; + rev = "v1.3.0"; + version = "1.3.0"; + sha256 = "1adkbfm0p7a9i1i53bdmb34g5871rklgqkx7kzmwmk4fvv89n6g8"; + }; + rancher2 = + { + owner = "terraform-providers"; + repo = "terraform-provider-rancher2"; + rev = "v1.8.3"; + version = "1.8.3"; + sha256 = "1k2d9j17b7sssliraww6as196ihdcra1ylhg1qbynklpr0asiwna"; }; rancher = { @@ -602,7 +842,7 @@ }; random = { - owner = "terraform-providers"; + owner = "hashicorp"; repo = "terraform-provider-random"; rev = "v2.2.1"; version = "2.2.1"; @@ -636,25 +876,49 @@ { owner = "terraform-providers"; repo = "terraform-provider-scaleway"; - rev = "v1.13.0"; - version = "1.13.0"; - sha256 = "085wv59cfsaac2373gn783lknzp4qmgnrgi2yl1g27znm4b940i7"; + rev = "v1.14.0"; + version = "1.14.0"; + sha256 = "0j428pinwyyldg1jhlkad32213z98q3891yv906d6n7jg2bk5m6a"; + }; + secret = + { + owner = "tweag"; + repo = "terraform-provider-secret"; + rev = "v1.1.0"; + version = "1.1.0"; + sha256 = "09gv0fpsrxzgna0xrhrdk8d4va9s0gvdbz596r306qxb4mip4w3r"; + }; + segment = + { + owner = "ajbosco"; + repo = "terraform-provider-segment"; + rev = "v0.2.0"; + version = "0.2.0"; + sha256 = "0ic5b9djhnb1bs2bz3zdprgy3r55dng09xgc4d9l9fyp85g2amaz"; }; selectel = { owner = "terraform-providers"; repo = "terraform-provider-selectel"; - rev = "v3.0.0"; - version = "3.0.0"; - sha256 = "0fr97j85inaqvdqmlfk3xcq73zvncn001nsd03pp2ws30qqa8p7r"; + rev = "v3.1.0"; + version = "3.1.0"; + sha256 = "1ajhnjlx4bf91z04cp8245j3h2h9c30ajf934zr29jvwli0y3piw"; + }; + signalfx = + { + owner = "terraform-providers"; + repo = "terraform-provider-signalfx"; + rev = "v4.19.4"; + version = "4.19.4"; + sha256 = "15cf9paqrcznj99gv6mxqvgvkd8qbxkwz2145h2qxp5vdcykj78g"; }; skytap = { owner = "terraform-providers"; repo = "terraform-provider-skytap"; - rev = "v0.13.0"; - version = "0.13.0"; - sha256 = "1why3ipi5a7whf18z87f97lbzdj020hfp8gxpgzl0nwpzpwkhdz3"; + rev = "v0.14.1"; + version = "0.14.1"; + sha256 = "0ygsdkv7czyhsjsx1q57rmmcl8x66d65yarhg40hlng5c7xpi52g"; }; softlayer = { @@ -664,13 +928,29 @@ version = "0.0.1"; sha256 = "1xcg5zm2n1pc3l7ng94k589r7ykv6fxsmr5qn9xmmpdf912rdnfq"; }; + sops = + { + owner = "carlpett"; + repo = "terraform-provider-sops"; + rev = "v0.5.0"; + version = "0.5.0"; + sha256 = "18zhqjkw1639a1vrxniws3sf5p91vrf5m7kksaj3yfiavsr5q2ki"; + }; spotinst = { owner = "terraform-providers"; repo = "terraform-provider-spotinst"; - rev = "v1.13.4"; - version = "1.13.4"; - sha256 = "063lhm065y6qh9b2k11qjnqyfg5zrx6wa3bqrm7d1dqcha1i6d9f"; + rev = "v1.14.3"; + version = "1.14.3"; + sha256 = "06brm0bvr13f31km55y8bp4z1xj3imfi11k7l5nirjp73cbvcpmg"; + }; + stackpath = + { + owner = "terraform-providers"; + repo = "terraform-provider-stackpath"; + rev = "v1.3.0"; + version = "1.3.0"; + sha256 = "0gsr903v6fngaxm2r5h53g9yc3jpx2zccqq07rhzm9jbsfb6rlzn"; }; statuscake = { @@ -680,6 +960,14 @@ version = "1.0.0"; sha256 = "1x295va6c72465cxps0kx3rrb7s9aip2cniy6icsg1b2yrsb9b26"; }; + sumologic = + { + owner = "terraform-providers"; + repo = "terraform-provider-sumologic"; + rev = "v2.0.0"; + version = "2.0.0"; + sha256 = "0j6lq9xcc3znjd4yd8gyzsbhwbbwi95k16kj1la9cicbvgra8iap"; + }; telefonicaopencloud = { owner = "terraform-providers"; @@ -690,7 +978,7 @@ }; template = { - owner = "terraform-providers"; + owner = "hashicorp"; repo = "terraform-provider-template"; rev = "v2.1.2"; version = "2.1.2"; @@ -700,9 +988,9 @@ { owner = "terraform-providers"; repo = "terraform-provider-tencentcloud"; - rev = "v1.30.1"; - version = "1.30.1"; - sha256 = "0gy7c3w217yzysv9hyrsw3q452g0iba9z72iijyfwcqm79gw3208"; + rev = "v1.32.0"; + version = "1.32.0"; + sha256 = "014zgslr14r446qifk4slq9g5qydxs7bk181gw227k9mr6krgba1"; }; terraform = { @@ -716,13 +1004,13 @@ { owner = "terraform-providers"; repo = "terraform-provider-tfe"; - rev = "v0.11.4"; - version = "0.11.4"; - sha256 = "0ls5736cwshj3z1wgpbcma6bml9p45k5g7hm530bmqdxsamxfj1m"; + rev = "v0.16.0"; + version = "0.16.0"; + sha256 = "0c9csyp655wijlnr3rbmymg6gaa23y4fyav0b1y99qsxaa358af5"; }; tls = { - owner = "terraform-providers"; + owner = "hashicorp"; repo = "terraform-provider-tls"; rev = "v2.1.1"; version = "2.1.1"; @@ -736,13 +1024,21 @@ version = "0.6.0"; sha256 = "10z032fa64sd8d6r4v2f4m7gp93v8wb2zk2r13fflzg5rfk5740z"; }; + turbot = + { + owner = "terraform-providers"; + repo = "terraform-provider-turbot"; + rev = "v1.1.0"; + version = "1.1.0"; + sha256 = "1wb5n17rv1r5jn6xdzjjafw7s96i826x9ww8w6llllihgl798zn7"; + }; ucloud = { owner = "terraform-providers"; repo = "terraform-provider-ucloud"; - rev = "v1.15.1"; - version = "1.15.1"; - sha256 = "1djlpjig8y6x149r6f21x7y3p49fjvrxx7pbs2fpsyv437zff9vj"; + rev = "v1.19.0"; + version = "1.19.0"; + sha256 = "17wkhhxvriqix520nv4q4jrk7gah8kkq3l4nj0rzp1kdwxphmsz0"; }; ultradns = { @@ -756,57 +1052,57 @@ { owner = "terraform-providers"; repo = "terraform-provider-vault"; - rev = "v2.7.1"; - version = "2.7.1"; - sha256 = "1lvpgdyi8qk1bvz9i1wml22mmm5ga8kf413xmpj966wvxqsgw6z5"; + rev = "v2.10.0"; + version = "2.10.0"; + sha256 = "1yg8ck9z5ycw8akfhnv4pnxyfzav9dzbhizv4dp78xi2gnddrawi"; }; vcd = { owner = "terraform-providers"; repo = "terraform-provider-vcd"; - rev = "v2.6.0"; - version = "2.6.0"; - sha256 = "0f7c5l05h0xcq51yaqpx1v3lg4wmysszayysvcspipiwzrhx5cmg"; + rev = "v2.8.0"; + version = "2.8.0"; + sha256 = "0myj5a9mrh7vg6h3gk5f0wsdp6832nz0z10h184107sdchpv253n"; + }; + venafi = + { + owner = "terraform-providers"; + repo = "terraform-provider-venafi"; + rev = "v0.9.2"; + version = "0.9.2"; + sha256 = "06nk5c7lxs8fc04sz97lc3yk1zk1b9phkzw6fj9fnmpgaak87bj9"; + }; + vra7 = + { + owner = "terraform-providers"; + repo = "terraform-provider-vra7"; + rev = "v1.0.1"; + version = "1.0.1"; + sha256 = "0qmldgxmrv840c5rbmskdf4f9g4v52gg9v7magm6j2w2g0dp1022"; }; vsphere = { owner = "terraform-providers"; repo = "terraform-provider-vsphere"; - rev = "v1.15.0"; - version = "1.15.0"; - sha256 = "1hxzxkqphm00gp0d1s32xn0knxgf5vg05nq68ba3q27wpx4ipanl"; + rev = "v1.17.3"; + version = "1.17.3"; + sha256 = "109rg8w6szdqq2hb9jg4j3i79z5ppb6vayikl1cg8m8dsv2whhrj"; }; - yandex = + vthunder = { owner = "terraform-providers"; - repo = "terraform-provider-yandex"; - rev = "v0.28.0"; - version = "0.28.0"; - sha256 = "1ml96cqjvxzapb76fpblgl6ak15idv3jj5wcs9ix0dr6i2fdfwpc"; + repo = "terraform-provider-vthunder"; + rev = "v0.1.0"; + version = "0.1.0"; + sha256 = "1mw55g0kjgp300p6y4s8wc91fgfxjm0cbszfzgbc8ca4b00j8cc2"; }; - segment = + vultr = { - owner = "ajbosco"; - repo = "terraform-provider-segment"; - rev = "v0.2.0"; - version = "0.2.0"; - sha256 = "0ic5b9djhnb1bs2bz3zdprgy3r55dng09xgc4d9l9fyp85g2amaz"; - }; - pass = - { - owner = "camptocamp"; - repo = "terraform-provider-pass"; - rev = "1.2.1"; - version = "1.2.1"; - sha256 = "1hf5mvgz5ycp7shiy8px205d9kwswfjmclg7mlh9a55bkraffahk"; - }; - matchbox = - { - owner = "poseidon"; - repo = "terraform-provider-matchbox"; - rev = "v0.3.0"; - version = "0.3.0"; - sha256 = "1nq7k8qa7rv8xyryjigwpwcwvj1sw85c4j46rkfdv70b6js25jz3"; + owner = "terraform-providers"; + repo = "terraform-provider-vultr"; + rev = "v1.1.5"; + version = "1.1.5"; + sha256 = "06sxcqklqqsninqach05fzilh6k2h9bv66mgfhf9s53ggs5nm8z7"; }; wavefront = { @@ -816,20 +1112,12 @@ version = "2.1.1"; sha256 = "0cbs74kd820i8f13a9jfbwh2y5zmmx3c2mp07qy7m0xx3m78jksn"; }; - nixos = + yandex = { - owner = "tweag"; - repo = "terraform-provider-nixos"; - rev = "v0.0.1"; - version = "0.0.1"; - sha256 = "00vz6qjq1pk39iqg4356b8g3c6slla9jifkv2knk46gc9q93q0lf"; - }; - secret = - { - owner = "tweag"; - repo = "terraform-provider-secret"; - rev = "v1.1.0"; - version = "1.1.0"; - sha256 = "09gv0fpsrxzgna0xrhrdk8d4va9s0gvdbz596r306qxb4mip4w3r"; + owner = "terraform-providers"; + repo = "terraform-provider-yandex"; + rev = "v0.38.0"; + version = "0.38.0"; + sha256 = "16s9ffbdgws5hglfr6f48ipjv2sbkdpkg20m9s1m6v2f055nxwak"; }; } diff --git a/pkgs/applications/networking/cluster/terraform-providers/default.nix b/pkgs/applications/networking/cluster/terraform-providers/default.nix index 6298c25ba25..82ce5a70679 100644 --- a/pkgs/applications/networking/cluster/terraform-providers/default.nix +++ b/pkgs/applications/networking/cluster/terraform-providers/default.nix @@ -2,7 +2,6 @@ , buildGoPackage , fetchFromGitHub , callPackage -, buildGo112Module }: let list = import ./data.nix; @@ -16,22 +15,128 @@ let src = fetchFromGitHub { inherit owner repo rev sha256; }; - - # Terraform allow checking the provider versions, but this breaks # if the versions are not provided via file paths. postBuild = "mv go/bin/${repo}{,_v${version}}"; }; -in - { - elasticsearch = callPackage ./elasticsearch { - # Version 0.7.0 fails to build with go 1.13 due to dependencies: - # verifying git.apache.org/thrift.git@v0.12.0/go.mod: git.apache.org/thrift.git@v0.12.0/go.mod: Get https://sum.golang.org/lookup/git.apache.org/thrift.git@v0.12.0: dial tcp: lookup sum.golang.org on [::1]:53: read udp [::1]:52968->[::1]:53: read: connection refused - # verifying github.com/hashicorp/terraform@v0.12.0/go.mod: github.com/hashicorp/terraform@v0.12.0/go.mod: Get https://sum.golang.org/lookup/github.com/hashicorp/terraform@v0.12.0: dial tcp: lookup sum.golang.org on [::1]:53: read udp [::1]:52968->[::1]:53: read: connection refused - buildGoModule = buildGo112Module; - }; - gandi = callPackage ./gandi {}; - ibm = callPackage ./ibm {}; - libvirt = callPackage ./libvirt {}; + + # Google is now using the vendored go modules, which works a bit differently + # and is not 100% compatible with the pre-modules vendored folders. + # + # Instead of switching to goModules which requires a goModSha256, patch the + # goPackage derivation so it can install the top-level. + patchGoModVendor = drv: + drv.overrideAttrs (attrs: { + buildFlags = "-mod=vendor"; + + # override configurePhase to not move the source into GOPATH + configurePhase = '' + export GOPATH=$NIX_BUILD_TOP/go:$GOPATH + export GOCACHE=$TMPDIR/go-cache + export GO111MODULE=on + ''; + + # just build and install into $GOPATH/bin + buildPhase = '' + go install -mod=vendor -v -p 16 . + ''; + + # don't run the tests, they are broken in this setup + doCheck = false; + }); + + # These providers are managed with the ./update-all script + automated-providers = lib.mapAttrs (_: toDrv) list; + + # These are the providers that don't fall in line with the default model + special-providers = { + # Override providers that use Go modules + vendor/ folder + google = patchGoModVendor automated-providers.google; + google-beta = patchGoModVendor automated-providers.google-beta; + ibm = patchGoModVendor automated-providers.ibm; + + # providers that were moved to the `hashicorp` organization, + # but haven't updated their references yet: + + # https://github.com/hashicorp/terraform-provider-archive/pull/67 + archive = automated-providers.archive.overrideAttrs (attrs: { + prePatch = attrs.prePatch or "" + '' + substituteInPlace go.mod --replace terraform-providers/terraform-provider-archive hashicorp/terraform-provider-archive + substituteInPlace main.go --replace terraform-providers/terraform-provider-archive hashicorp/terraform-provider-archive + ''; + }); + + # https://github.com/hashicorp/terraform-provider-dns/pull/101 + dns = automated-providers.dns.overrideAttrs (attrs: { + prePatch = attrs.prePatch or "" + '' + substituteInPlace go.mod --replace terraform-providers/terraform-provider-dns hashicorp/terraform-provider-dns + substituteInPlace main.go --replace terraform-providers/terraform-provider-dns hashicorp/terraform-provider-dns + ''; + }); + + # https://github.com/hashicorp/terraform-provider-external/pull/41 + external = automated-providers.external.overrideAttrs (attrs: { + prePatch = attrs.prePatch or "" + '' + substituteInPlace go.mod --replace terraform-providers/terraform-provider-external hashicorp/terraform-provider-external + substituteInPlace main.go --replace terraform-providers/terraform-provider-external hashicorp/terraform-provider-external + ''; + }); + + # https://github.com/hashicorp/terraform-provider-http/pull/40 + http = automated-providers.http.overrideAttrs (attrs: { + prePatch = attrs.prePatch or "" + '' + substituteInPlace go.mod --replace terraform-providers/terraform-provider-http hashicorp/terraform-provider-http + substituteInPlace main.go --replace terraform-providers/terraform-provider-http hashicorp/terraform-provider-http + ''; + }); + + # https://github.com/hashicorp/terraform-provider-local/pull/40 + local = automated-providers.local.overrideAttrs (attrs: { + prePatch = attrs.prePatch or "" + '' + substituteInPlace go.mod --replace terraform-providers/terraform-provider-local hashicorp/terraform-provider-local + substituteInPlace main.go --replace terraform-providers/terraform-provider-local hashicorp/terraform-provider-local + ''; + }); + + # https://github.com/hashicorp/terraform-provider-null/pull/43 + null = automated-providers.null.overrideAttrs (attrs: { + prePatch = attrs.prePatch or "" + '' + substituteInPlace go.mod --replace terraform-providers/terraform-provider-null hashicorp/terraform-provider-null + substituteInPlace main.go --replace terraform-providers/terraform-provider-null hashicorp/terraform-provider-null + ''; + }); + + # https://github.com/hashicorp/terraform-provider-random/pull/107 + random = automated-providers.random.overrideAttrs (attrs: { + prePatch = attrs.prePatch or "" + '' + substituteInPlace go.mod --replace terraform-providers/terraform-provider-random hashicorp/terraform-provider-random + substituteInPlace main.go --replace terraform-providers/terraform-provider-random hashicorp/terraform-provider-random + ''; + }); + + # https://github.com/hashicorp/terraform-provider-template/pull/79 + template = automated-providers.template.overrideAttrs (attrs: { + prePatch = attrs.prePatch or "" + '' + substituteInPlace go.mod --replace terraform-providers/terraform-provider-template hashicorp/terraform-provider-template + substituteInPlace main.go --replace terraform-providers/terraform-provider-template hashicorp/terraform-provider-template + ''; + }); + + # https://github.com/hashicorp/terraform-provider-tls/pull/71 + tls = automated-providers.tls.overrideAttrs (attrs: { + prePatch = attrs.prePatch or "" + '' + substituteInPlace go.mod --replace terraform-providers/terraform-provider-tls hashicorp/terraform-provider-tls + substituteInPlace main.go --replace terraform-providers/terraform-provider-tls hashicorp/terraform-provider-tls + ''; + }); + + # Packages that don't fit the default model ansible = callPackage ./ansible {}; - } // lib.mapAttrs (n: v: toDrv v) list + gandi = callPackage ./gandi {}; + elasticsearch = callPackage ./elasticsearch {}; + libvirt = callPackage ./libvirt {}; + lxd = callPackage ./lxd {}; + vpsadmin = callPackage ./vpsadmin {}; + }; +in + automated-providers // special-providers diff --git a/pkgs/applications/networking/cluster/terraform-providers/ibm/default.nix b/pkgs/applications/networking/cluster/terraform-providers/ibm/default.nix deleted file mode 100644 index 06d7b8a9f07..00000000000 --- a/pkgs/applications/networking/cluster/terraform-providers/ibm/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ stdenv, buildGoPackage, fetchFromGitHub }: - -# -# USAGE: -# install the following package globally or in nix-shell: -# -# (terraform.withPlugins ( plugins: [ terraform-provider-ibm ])) -# -# examples: -# https://github.com/IBM-Cloud/terraform-provider-ibm/tree/master/examples -# - -buildGoPackage rec { - pname = "terraform-provider-ibm"; - version = "0.11.1"; - - goPackagePath = "github.com/terraform-providers/terraform-provider-ibm"; - subPackages = [ "./" ]; - - src = fetchFromGitHub { - owner = "IBM-Cloud"; - repo = "terraform-provider-ibm"; - sha256 = "1vp1kzadfkacn6c4illxjra8yki1fx7h77b38fixkcvc79mzasmv"; - rev = "v${version}"; - }; - - # Terraform allow checking the provider versions, but this breaks - # if the versions are not provided via file paths. - postBuild = "mv go/bin/terraform-provider-ibm{,_v${version}}"; - - meta = with stdenv.lib; { - homepage = https://github.com/IBM-Cloud/terraform-provider-ibm; - description = "Terraform provider is used to manage IBM Cloud resources."; - platforms = platforms.all; - license = licenses.mpl20; - maintainers = with maintainers; [ jensbin ]; - }; -} diff --git a/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix b/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix index 40a6bb11c7d..daffb593090 100644 --- a/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix +++ b/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix @@ -30,7 +30,9 @@ buildGoPackage rec { sha256 = "1l2n97nj6g44n7bhnbjwmv36xi6754p4iq2qnpkdh39x4384a0zz"; }; - buildInputs = [ libvirt pkgconfig makeWrapper ]; + nativeBuildInputs = [ pkgconfig makeWrapper ]; + + buildInputs = [ libvirt ]; # mkisofs needed to create ISOs holding cloud-init data, # and wrapped to terraform via deecb4c1aab780047d79978c636eeb879dd68630 @@ -41,11 +43,10 @@ buildGoPackage rec { postBuild = "mv go/bin/terraform-provider-libvirt{,_v${version}}"; meta = with stdenv.lib; { - homepage = https://github.com/dmacvicar/terraform-provider-libvirt; + homepage = "https://github.com/dmacvicar/terraform-provider-libvirt"; description = "Terraform provider for libvirt"; platforms = platforms.linux; license = licenses.asl20; maintainers = with maintainers; [ mic92 ]; }; } - diff --git a/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix b/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix new file mode 100644 index 00000000000..fd2a6c36d65 --- /dev/null +++ b/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix @@ -0,0 +1,25 @@ +{ stdenv, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "terraform-provider-lxd"; + version = "1.3.0"; + + src = fetchFromGitHub { + owner = "sl1pm4t"; + repo = "terraform-provider-lxd"; + rev = "v${version}"; + sha256 = "1k54021178zybh9dqly2ly8ji9x5rka8dn9xd6rv7gkcl5w3y6fv"; + }; + + modSha256 = "1h95ng9by3i3v15s1ws1fv86a47vglivn42xbffdy94s108g0908"; + + postBuild = "mv ../go/bin/terraform-provider-lxd{,_v${version}}"; + + meta = with stdenv.lib; { + homepage = "https://github.com/sl1pm4t/terraform-provider-lxd"; + description = "Terraform provider for lxd"; + platforms = platforms.linux; + license = licenses.mpl20; + maintainers = with maintainers; [ gila ]; + }; +} diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.txt b/pkgs/applications/networking/cluster/terraform-providers/providers.txt deleted file mode 100644 index bdde6600678..00000000000 --- a/pkgs/applications/networking/cluster/terraform-providers/providers.txt +++ /dev/null @@ -1,18 +0,0 @@ -# lines starting with a # are comments - -# The accepted format (double escape all grep expresssions): -# [grep-expression] [grep-v-expression] - include all repositories in the organisation. -# grep-expression: filter repo matching the expression -# grep-v-expression: filter repo not matching the expression -# / - include only the named repository. - -# include all terraform-providers -terraform-providers terraform-provider- terraform-provider-\\(azure-classic\\|scaffolding\\) - -# include providers from individual repos -ajbosco/terraform-provider-segment -camptocamp/terraform-provider-pass -poseidon/terraform-provider-matchbox -spaceapegames/terraform-provider-wavefront -tweag/terraform-provider-nixos -tweag/terraform-provider-secret diff --git a/pkgs/applications/networking/cluster/terraform-providers/update-all b/pkgs/applications/networking/cluster/terraform-providers/update-all index 893a6b1c7d7..70dfc2f825d 100755 --- a/pkgs/applications/networking/cluster/terraform-providers/update-all +++ b/pkgs/applications/networking/cluster/terraform-providers/update-all @@ -1,6 +1,7 @@ #!/usr/bin/env nix-shell -#! nix-shell -i bash -p bash coreutils curl jq nix +#! nix-shell -i bash -p bash coreutils jq nix gitAndTools.hub # vim: ft=sh sw=2 et +# shellcheck shell=bash # # This scripts scans the github terraform-providers repo for new releases, # generates the corresponding nix code and finally generates an index of @@ -10,37 +11,53 @@ set -euo pipefail # the maximum number of attempts before giving up inside of GET and prefetch_github readonly maxAttempts=30 -GET() { - local url=$1 - local retry=1 - echo "fetching $url" >&2 - while ! curl -#fL -u "$GITHUB_AUTH" "$url"; do - echo "The curl command has failed. Attempt $retry/${maxAttempts}" >&2 - if [[ "${retry}" -eq "${maxAttempts}" ]]; then - exit 1 - fi - retry=$(( retry + 1 )) - sleep 5 - done -} - -get_org_repos() { +get_tf_providers_org() { + # returns all terraform providers in a given organization, and their the + # latest tags, in the format + # $org/$repo $rev local org=$1 - local page=1 - GET "https://api.github.com/orgs/$org/repos?per_page=100" | jq -r '.[].name' + hub api --paginate graphql -f query=" + query(\$endCursor: String) { + repositoryOwner(login: \"${org}\") { + repositories(first: 100, after: \$endCursor) { + nodes { + nameWithOwner + name + refs(first: 1, refPrefix: \"refs/tags/\", orderBy: {field: TAG_COMMIT_DATE, direction: DESC}) { + nodes { + name + } + } + } + pageInfo { + hasNextPage + endCursor + } + } + } + }" | \ + jq -r '.data.repositoryOwner.repositories.nodes[] | select(.name | startswith("terraform-provider-")) | select((.refs.nodes | length) > 0) | .nameWithOwner + " " + .refs.nodes[0].name' + # filter the result with jq: + # - repos need to start with `teraform-provider-` + # - they need to have at least one tag + # for each of the remaining repos, assemble a string $org/$repo $rev } -get_repo_tags() { +get_latest_repo_tag() { + # of a given repo and owner, retrieve the latest tag local owner=$1 local repo=$2 - GET "https://api.github.com/repos/$owner/$repo/git/refs/tags?per_page=100" | \ + hub api --paginate "https://api.github.com/repos/$owner/$repo/git/refs/tags" | \ jq -r '.[].ref' | \ grep -v 'v\.' | \ cut -d '/' -f 3- | \ - sort --version-sort + sort --version-sort | \ + tail -1 } prefetch_github() { + # of a given owner, repo and rev, fetch the tarball and return the output of + # `nix-prefetch-url` local owner=$1 local repo=$2 local rev=$3 @@ -59,7 +76,7 @@ echo_entry() { local owner=$1 local repo=$2 local rev=$3 - local version=$(echo $3 | sed 's/^v//') + local version=${rev#v} local sha256=$4 cat <> data.nix } @@ -93,50 +110,65 @@ add_repo() { cd "$(dirname "$0")" -if [[ -z "${GITHUB_AUTH:-}" ]]; then - cat <<'HELP' -Missing the GITHUB_AUTH env. This is required to work around the 60 request -per hour rate-limit. +# individual repos to fetch +slugs=( + IBM-Cloud/terraform-provider-ibm + ajbosco/terraform-provider-segment + camptocamp/terraform-provider-pass + carlpett/terraform-provider-sops + poseidon/terraform-provider-matchbox + spaceapegames/terraform-provider-wavefront + tweag/terraform-provider-nixos + tweag/terraform-provider-secret +) -Go to https://github.com/settings/tokens and create a new token with the -"public_repo" scope. - -Then `export GITHUB_AUTH=:` and run this script again. -HELP - exit 1 -fi +# a list of providers to ignore +blacklist=( + terraform-providers/terraform-provider-azure-classic + terraform-providers/terraform-provider-cidr + terraform-providers/terraform-provider-circonus + terraform-providers/terraform-provider-cloudinit + terraform-providers/terraform-provider-quorum + hashicorp/terraform-provider-time + terraform-providers/terraform-provider-vmc +) cat <
data.nix # Generated with ./update-all { HEADER -while read line; do - IFS=' ' read -r -a fields <<< "$line" - if [[ "${#fields[@]}" -eq 0 ]]; then - continue - fi +# assemble list of terraform providers +providers=$(get_tf_providers_org "terraform-providers") +providers=$(echo "$providers";get_tf_providers_org "hashicorp") - if [[ "${fields[0]}" = *"/"* ]]; then - org="$(echo "${fields[0]}" | cut -d/ -f1)" - repo="$(echo "${fields[0]}" | cut -d/ -f2)" - add_repo "${org}" "${repo}" - else - org="${fields[0]}" - repos=$(get_org_repos "$org") - if [[ "${#fields[@]}" -ge 2 ]] && [[ -n "${fields[1]}" ]]; then - repos="$( echo "${repos[@]}" | grep "${fields[1]}" )" - fi - if [[ "${#fields[@]}" -eq 3 ]] && [[ -n "${fields[2]}" ]]; then - repos="$( echo "${repos[@]}" | grep -v "${fields[2]}" )" - fi - repos="$( echo "${repos[@]}" | sort )" +# add terraform-providers from slugs +for slug in "${slugs[@]}"; do + # retrieve latest tag + org=${slug%/*} + repo=${slug#*/} + rev=$(get_latest_repo_tag "$org" "$repo") - for repo in $repos; do - add_repo "$org" "$repo" - done - fi -done < <(grep -v '^#\|^$' providers.txt) + # add to list + providers=$(echo "$providers";echo "$org/$repo $rev") +done + +# filter out all providers on the blacklist +for repo in "${blacklist[@]}"; do + providers=$(echo "$providers" | grep -v "^${repo} ") +done + +# sort results alphabetically by repo name +providers=$(echo "$providers" | sort -t "/" --key=2) + +# render list +IFS=$'\n' +for provider in $providers; do + org=$(echo "$provider" | cut -d " " -f 1 | cut -d "/" -f1) + repo=$(echo "$provider" | cut -d " " -f 1 | cut -d "/" -f2) + rev=$(echo "$provider" | cut -d " " -f 2) + add_provider "${org}" "${repo}" "${rev}" +done cat <