diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 58834f4597e..6eda7473bf6 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -52,17 +52,17 @@
# Python-related code and docs
/maintainers/scripts/update-python-libraries @FRidh
-/pkgs/top-level/python-packages.nix @FRidh
+/pkgs/top-level/python-packages.nix @FRidh @jonringer
/pkgs/development/interpreters/python @FRidh
-/pkgs/development/python-modules @FRidh
+/pkgs/development/python-modules @FRidh @jonringer
/doc/languages-frameworks/python.section.md @FRidh
# Haskell
-/pkgs/development/compilers/ghc @basvandijk
-/pkgs/development/haskell-modules @basvandijk
-/pkgs/development/haskell-modules/default.nix @basvandijk
-/pkgs/development/haskell-modules/generic-builder.nix @basvandijk
-/pkgs/development/haskell-modules/hoogle.nix @basvandijk
+/pkgs/development/compilers/ghc @basvandijk @cdepillabout
+/pkgs/development/haskell-modules @basvandijk @cdepillabout
+/pkgs/development/haskell-modules/default.nix @basvandijk @cdepillabout
+/pkgs/development/haskell-modules/generic-builder.nix @basvandijk @cdepillabout
+/pkgs/development/haskell-modules/hoogle.nix @basvandijk @cdepillabout
# Perl
/pkgs/development/interpreters/perl @volth
@@ -130,6 +130,12 @@
/nixos/tests/hardened.nix @joachifm
/pkgs/os-specific/linux/kernel/hardened-config.nix @joachifm
+# Network Time Daemons
+/pkgs/tools/networking/chrony @thoughtpolice
+/pkgs/tools/networking/ntp @thoughtpolice
+/pkgs/tools/networking/openntpd @thoughtpolice
+/nixos/modules/services/networking/ntp @thoughtpolice
+
# Dhall
/pkgs/development/dhall-modules @Gabriel439 @Profpatsch
/pkgs/development/interpreters/dhall @Gabriel439 @Profpatsch
@@ -150,3 +156,19 @@
/pkgs/applications/editors/emacs-modes @adisbladis
/pkgs/applications/editors/emacs @adisbladis
/pkgs/top-level/emacs-packages.nix @adisbladis
+
+# VimPlugins
+/pkgs/misc/vim-plugins @jonringer
+
+# VsCode Extensions
+/pkgs/misc/vscode-extensions @jonringer
+
+# Prometheus exporter modules and tests
+/nixos/modules/services/monitoring/prometheus/exporters.nix @WilliButz
+/nixos/modules/services/monitoring/prometheus/exporters.xml @WilliButz
+/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
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index 07eddc80c25..4577cea2225 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -51,4 +51,4 @@ For package version upgrades and such a one-line commit message is usually suffi
## Reviewing contributions
-See the nixpkgs manual for more details on how to [Review contributions](https://nixos.org/nixpkgs/manual/#sec-reviewing-contributions).
+See the nixpkgs manual for more details on how to [Review contributions](https://nixos.org/nixpkgs/manual/#chap-reviewing-contributions).
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index a4f1c61e8f5..89c751f4db7 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -1,4 +1,4 @@
-
+
###### Motivation for this change
@@ -6,7 +6,7 @@
-- [ ] Tested using sandboxing ([nix.useSandbox](http://nixos.org/nixos/manual/options.html#opt-nix.useSandbox) on NixOS, or option `sandbox` in [`nix.conf`](http://nixos.org/nix/manual/#sec-conf-file) on non-NixOS)
+- [ ] Tested using sandboxing ([nix.useSandbox](http://nixos.org/nixos/manual/options.html#opt-nix.useSandbox) on NixOS, or option `sandbox` in [`nix.conf`](http://nixos.org/nix/manual/#sec-conf-file) on non-NixOS linux)
- Built on platform(s)
- [ ] NixOS
- [ ] macOS
diff --git a/.github/stale.yml b/.github/stale.yml
new file mode 100644
index 00000000000..bf47ba3c25b
--- /dev/null
+++ b/.github/stale.yml
@@ -0,0 +1,32 @@
+# Number of days of inactivity before an issue becomes stale
+daysUntilStale: 180
+# Number of days of inactivity before a stale issue is closed
+daysUntilClose: false
+# Issues with these labels will never be considered stale
+exemptLabels:
+ - 1.severity: security
+# Label to use when marking an issue as stale
+staleLabel: 2.status: stale
+# Comment to post when marking an issue as stale. Set to `false` to disable
+markComment: >
+ Thank you for your contributions.
+
+ This has been automatically marked as stale because it has had no
+ activity for 180 days.
+
+ If this is still important to you, we ask that you leave a
+ comment below. Your comment can be as simple as "still important
+ to me". This lets people see that at least one person still cares
+ about this. Someone will have to do this at most twice a year if
+ there is no other activity.
+
+ Here are suggestions that might help resolve this more quickly:
+
+ 1. Search for maintainers and people that previously touched the
+ related code and @ mention them in a comment.
+ 2. Ask on the [NixOS Discourse](https://discourse.nixos.org/).
+ 3. Ask on the [#nixos channel](irc://irc.freenode.net/#nixos) on
+ [irc.freenode.net](https://freenode.net).
+
+# Comment to post when closing a stale issue. Set to `false` to disable
+closeComment: false
diff --git a/.version b/.version
index ba19dc3bb41..88b8320330d 100644
--- a/.version
+++ b/.version
@@ -1 +1 @@
-19.09
\ No newline at end of file
+20.03
\ No newline at end of file
diff --git a/README.md b/README.md
index b34438e41a8..15ef4048d90 100644
--- a/README.md
+++ b/README.md
@@ -44,16 +44,14 @@ Nixpkgs and NixOS are built and tested by our continuous integration
system, [Hydra](https://hydra.nixos.org/).
* [Continuous package builds for unstable/master](https://hydra.nixos.org/jobset/nixos/trunk-combined)
-* [Continuous package builds for the NixOS 19.03 release](https://hydra.nixos.org/jobset/nixos/release-19.03)
+* [Continuous package builds for the NixOS 19.09 release](https://hydra.nixos.org/jobset/nixos/release-19.09)
* [Tests for unstable/master](https://hydra.nixos.org/job/nixos/trunk-combined/tested#tabs-constituents)
-* [Tests for the NixOS 19.03 release](https://hydra.nixos.org/job/nixos/release-19.03/tested#tabs-constituents)
+* [Tests for the NixOS 19.09 release](https://hydra.nixos.org/job/nixos/release-19.09/tested#tabs-constituents)
Artifacts successfully built with Hydra are published to cache at
https://cache.nixos.org/. When successful build and test criteria are
met, the Nixpkgs expressions are distributed via [Nix
-channels](https://nixos.org/nix/manual/#sec-channels). The channels
-are provided via a read-only mirror of the Nixpkgs repository called
-[nixpkgs-channels](https://github.com/NixOS/nixpkgs-channels).
+channels](https://nixos.org/nix/manual/#sec-channels).
# Contributing
diff --git a/doc/builders/fetchers.xml b/doc/builders/fetchers.xml
new file mode 100644
index 00000000000..ff398833491
--- /dev/null
+++ b/doc/builders/fetchers.xml
@@ -0,0 +1,139 @@
+
+ Fetchers
+
+ When using Nix, you will frequently need to download source code and other files from the internet. Nixpkgs comes with a few helper functions that allow you to fetch fixed-output derivations in a structured way.
+
+
+ The two fetcher primitives are fetchurl and fetchzip . Both of these have two required arguments, a URL and a hash. The hash is typically sha256 , although many more hash algorithms are supported. Nixpkgs contributors are currently recommended to use sha256 . This hash will be used by Nix to identify your source. A typical usage of fetchurl is provided below.
+
+
+
+ The main difference between fetchurl and fetchzip is in how they store the contents. fetchurl will store the unaltered contents of the URL within the Nix store. fetchzip on the other hand will decompress the archive for you, making files and directories directly accessible in the future. fetchzip can only be used with archives. Despite the name, fetchzip is not limited to .zip files and can also be used with any tarball.
+
+
+ fetchpatch works very similarly to fetchurl with the same arguments expected. It expects patch files as a source and and performs normalization on them before computing the checksum. For example it will remove comments or other unstable parts that are sometimes added by version control systems and can change over time.
+
+
+ Other fetcher functions allow you to add source code directly from a VCS such as subversion or git. These are mostly straightforward names based on the name of the command used with the VCS system. Because they give you a working repository, they act most like fetchzip .
+
+
+
+
+ fetchsvn
+
+
+
+ Used with Subversion. Expects url to a Subversion directory, rev , and sha256 .
+
+
+
+
+
+ fetchgit
+
+
+
+ Used with Git. Expects url to a Git repo, rev , and sha256 . rev in this case can be full the git commit id (SHA1 hash) or a tag name like refs/tags/v1.0 .
+
+
+
+
+
+ fetchfossil
+
+
+
+ Used with Fossil. Expects url to a Fossil archive, rev , and sha256 .
+
+
+
+
+
+ fetchcvs
+
+
+
+ Used with CVS. Expects cvsRoot , tag , and sha256 .
+
+
+
+
+
+ fetchhg
+
+
+
+ Used with Mercurial. Expects url , rev , and sha256 .
+
+
+
+
+
+ A number of fetcher functions wrap part of fetchurl and fetchzip . They are mainly convenience functions intended for commonly used destinations of source code in Nixpkgs. These wrapper fetchers are listed below.
+
+
+
+
+ fetchFromGitHub
+
+
+
+ fetchFromGitHub expects four arguments. owner is a string corresponding to the GitHub user or organization that controls this repository. repo corresponds to the name of the software repository. These are located at the top of every GitHub HTML page as owner /repo . rev corresponds to the Git commit hash or tag (e.g v1.0 ) that will be downloaded from Git. Finally, sha256 corresponds to the hash of the extracted directory. Again, other hash algorithms are also available but sha256 is currently preferred.
+
+
+
+
+
+ fetchFromGitLab
+
+
+
+ This is used with GitLab repositories. The arguments expected are very similar to fetchFromGitHub above.
+
+
+
+
+
+ fetchFromBitbucket
+
+
+
+ This is used with BitBucket repositories. The arguments expected are very similar to fetchFromGitHub above.
+
+
+
+
+
+ fetchFromSavannah
+
+
+
+ This is used with Savannah repositories. The arguments expected are very similar to fetchFromGitHub above.
+
+
+
+
+
+ fetchFromRepoOrCz
+
+
+
+ This is used with repo.or.cz repositories. The arguments expected are very similar to fetchFromGitHub above.
+
+
+
+
+
diff --git a/doc/builders/images.xml b/doc/builders/images.xml
new file mode 100644
index 00000000000..5e042a8ada8
--- /dev/null
+++ b/doc/builders/images.xml
@@ -0,0 +1,12 @@
+
+ Images
+
+ This chapter describes tools for creating various types of images.
+
+
+
+
+
+
diff --git a/doc/functions/appimagetools.xml b/doc/builders/images/appimagetools.xml
similarity index 74%
rename from doc/functions/appimagetools.xml
rename to doc/builders/images/appimagetools.xml
index e6dbc22f48d..37e4251cda2 100644
--- a/doc/functions/appimagetools.xml
+++ b/doc/builders/images/appimagetools.xml
@@ -5,17 +5,12 @@
pkgs.appimageTools
- pkgs.appimageTools is a set of functions for extracting
- and wrapping AppImage files.
- They are meant to be used if traditional packaging from source is infeasible,
- or it would take too long. To quickly run an AppImage file,
- pkgs.appimage-run can be used as well.
+ pkgs.appimageTools is a set of functions for extracting and wrapping AppImage files. They are meant to be used if traditional packaging from source is infeasible, or it would take too long. To quickly run an AppImage file, pkgs.appimage-run can be used as well.
- The appimageTools API is unstable and may be subject to
- backwards-incompatible changes in the future.
+ The appimageTools API is unstable and may be subject to backwards-incompatible changes in the future.
@@ -23,9 +18,7 @@
AppImage formats
- There are different formats for AppImages, see
- the
- specification for details.
+ There are different formats for AppImages, see the specification for details.
@@ -55,8 +48,7 @@ type2.AppImage: ELF 64-bit LSB executable, x86-64, version 1 (SYSV) (Lepton 3.x)
- Note how the type 1 AppImage is described as an ISO 9660 CD-ROM
- filesystem , and the type 2 AppImage is not.
+ Note how the type 1 AppImage is described as an ISO 9660 CD-ROM filesystem , and the type 2 AppImage is not.
@@ -64,8 +56,7 @@ type2.AppImage: ELF 64-bit LSB executable, x86-64, version 1 (SYSV) (Lepton 3.x)
Wrapping
- Depending on the type of AppImage you're wrapping, you'll have to use
- wrapType1 or wrapType2 .
+ Depending on the type of AppImage you're wrapping, you'll have to use wrapType1 or wrapType2 .
@@ -91,23 +82,16 @@ appimageTools.wrapType2 { # or wrapType1
- extraPkgs allows you to pass a function to include
- additional packages inside the FHS environment your AppImage is going to
- run in. There are a few ways to learn which dependencies an application
- needs:
+ extraPkgs allows you to pass a function to include additional packages inside the FHS environment your AppImage is going to run in. There are a few ways to learn which dependencies an application needs:
- Looking through the extracted AppImage files, reading its scripts and
- running patchelf and ldd on its
- executables. This can also be done in appimage-run ,
- by setting APPIMAGE_DEBUG_EXEC=bash .
+ Looking through the extracted AppImage files, reading its scripts and running patchelf and ldd on its executables. This can also be done in appimage-run , by setting APPIMAGE_DEBUG_EXEC=bash .
- Running strace -vfefile on the wrapped executable,
- looking for libraries that can't be found.
+ Running strace -vfefile on the wrapped executable, looking for libraries that can't be found.
diff --git a/doc/functions/dockertools.xml b/doc/builders/images/dockertools.xml
similarity index 60%
rename from doc/functions/dockertools.xml
rename to doc/builders/images/dockertools.xml
index a284182bb04..2243453c3e9 100644
--- a/doc/functions/dockertools.xml
+++ b/doc/builders/images/dockertools.xml
@@ -5,17 +5,12 @@
pkgs.dockerTools
- pkgs.dockerTools is a set of functions for creating and
- manipulating Docker images according to the
-
- Docker Image Specification v1.2.0 . Docker itself is not used to
- perform any of the operations done by these functions.
+ pkgs.dockerTools is a set of functions for creating and manipulating Docker images according to the Docker Image Specification v1.2.0 . Docker itself is not used to perform any of the operations done by these functions.
- The dockerTools API is unstable and may be subject to
- backwards-incompatible changes in the future.
+ The dockerTools API is unstable and may be subject to backwards-incompatible changes in the future.
@@ -23,15 +18,11 @@
buildImage
- This function is analogous to the docker build command,
- in that it can be used to build a Docker-compatible repository tarball
- containing a single image with one or multiple layers. As such, the result
- is suitable for being loaded in Docker with docker load .
+ This function is analogous to the docker build command, in that it can be used to build a Docker-compatible repository tarball containing a single image with one or multiple layers. As such, the result is suitable for being loaded in Docker with docker load .
- The parameters of buildImage with relative example values
- are described below:
+ The parameters of buildImage with relative example values are described below:
@@ -63,135 +54,89 @@ buildImage {
- The above example will build a Docker image redis/latest
- from the given base image. Loading and running this image in Docker results
- in redis-server being started automatically.
+ The above example will build a Docker image redis/latest from the given base image. Loading and running this image in Docker results in redis-server being started automatically.
- name specifies the name of the resulting image. This is
- the only required argument for buildImage .
+ name specifies the name of the resulting image. This is the only required argument for buildImage .
- tag specifies the tag of the resulting image. By
- default it's null , which indicates that the nix output
- hash will be used as tag.
+ tag specifies the tag of the resulting image. By default it's null , which indicates that the nix output hash will be used as tag.
- fromImage is the repository tarball containing the base
- image. It must be a valid Docker image, such as exported by
- docker save . By default it's null ,
- which can be seen as equivalent to FROM scratch of a
- Dockerfile .
+ fromImage is the repository tarball containing the base image. It must be a valid Docker image, such as exported by docker save . By default it's null , which can be seen as equivalent to FROM scratch of a Dockerfile .
- fromImageName can be used to further specify the base
- image within the repository, in case it contains multiple images. By
- default it's null , in which case
- buildImage will peek the first image available in the
- repository.
+ fromImageName can be used to further specify the base image within the repository, in case it contains multiple images. By default it's null , in which case buildImage will peek the first image available in the repository.
- fromImageTag can be used to further specify the tag of
- the base image within the repository, in case an image contains multiple
- tags. By default it's null , in which case
- buildImage will peek the first tag available for the
- base image.
+ fromImageTag can be used to further specify the tag of the base image within the repository, in case an image contains multiple tags. By default it's null , in which case buildImage will peek the first tag available for the base image.
- contents is a derivation that will be copied in the new
- layer of the resulting image. This can be similarly seen as ADD
- contents/ / in a Dockerfile . By default
- it's null .
+ contents is a derivation that will be copied in the new layer of the resulting image. This can be similarly seen as ADD contents/ / in a Dockerfile . By default it's null .
- runAsRoot is a bash script that will run as root in an
- environment that overlays the existing layers of the base image with the
- new resulting layer, including the previously copied
- contents derivation. This can be similarly seen as
- RUN ... in a Dockerfile .
+ runAsRoot is a bash script that will run as root in an environment that overlays the existing layers of the base image with the new resulting layer, including the previously copied contents derivation. This can be similarly seen as RUN ... in a Dockerfile .
- Using this parameter requires the kvm device to be
- available.
+ Using this parameter requires the kvm device to be available.
- config is used to specify the configuration of the
- containers that will be started off the built image in Docker. The
- available options are listed in the
-
- Docker Image Specification v1.2.0 .
+ config is used to specify the configuration of the containers that will be started off the built image in Docker. The available options are listed in the Docker Image Specification v1.2.0 .
- After the new layer has been created, its closure (to which
- contents , config and
- runAsRoot contribute) will be copied in the layer itself.
- Only new dependencies that are not already in the existing layers will be
- copied.
+ After the new layer has been created, its closure (to which contents , config and runAsRoot contribute) will be copied in the layer itself. Only new dependencies that are not already in the existing layers will be copied.
- At the end of the process, only one new single layer will be produced and
- added to the resulting image.
+ At the end of the process, only one new single layer will be produced and added to the resulting image.
- The resulting repository will only list the single image
- image/tag . In the case of
- it would be
- redis/latest .
+ The resulting repository will only list the single image image/tag . In the case of it would be redis/latest .
- It is possible to inspect the arguments with which an image was built using
- its buildArgs attribute.
+ It is possible to inspect the arguments with which an image was built using its buildArgs attribute.
- If you see errors similar to getProtocolByName: does not exist (no
- such protocol name: tcp) you may need to add
- pkgs.iana-etc to contents .
+ If you see errors similar to getProtocolByName: does not exist (no such protocol name: tcp) you may need to add pkgs.iana-etc to contents .
- If you see errors similar to Error_Protocol ("certificate has
- unknown CA",True,UnknownCa) you may need to add
- pkgs.cacert to contents .
+ If you see errors similar to Error_Protocol ("certificate has unknown CA",True,UnknownCa) you may need to add pkgs.cacert to contents .
Impurely Defining a Docker Layer's Creation Date
- By default buildImage will use a static date of one
- second past the UNIX Epoch. This allows buildImage to
- produce binary reproducible images. When listing images with
- docker images , the newly created images will be listed
- like this:
+ By default buildImage will use a static date of one second past the UNIX Epoch. This allows buildImage to produce binary reproducible images. When listing images with docker images , the newly created images will be listed like this:
- You can break binary reproducibility but have a sorted, meaningful
- CREATED column by setting created to
- now .
+ You can break binary reproducibility but have a sorted, meaningful CREATED column by setting created to now .
- and now the Docker CLI will display a reasonable date and sort the images
- as expected:
+ and now the Docker CLI will display a reasonable date and sort the images as expected:
buildLayeredImage
- Create a Docker image with many of the store paths being on their own layer
- to improve sharing between images.
+ Create a Docker image with many of the store paths being on their own layer to improve sharing between images.
@@ -264,8 +205,7 @@ hello latest de2bf4786de6 About a minute ago 25.2MB
- Top level paths in the container. Either a single derivation, or a list
- of derivations.
+ Top level paths in the container. Either a single derivation, or a list of derivations.
Default: []
@@ -278,10 +218,7 @@ hello latest de2bf4786de6 About a minute ago 25.2MB
- Run-time configuration of the container. A full list of the options are
- available at in the
-
- Docker Image Specification v1.2.0 .
+ Run-time configuration of the container. A full list of the options are available at in the Docker Image Specification v1.2.0 .
Default: {}
@@ -294,9 +231,7 @@ hello latest de2bf4786de6 About a minute ago 25.2MB
- Date and time the layers were created. Follows the same
- now exception supported by
- buildImage .
+ Date and time the layers were created. Follows the same now exception supported by buildImage .
Default: 1970-01-01T00:00:01Z
@@ -325,10 +260,7 @@ hello latest de2bf4786de6 About a minute ago 25.2MB
- Shell commands to run while building the final layer, without access
- to most of the layer contents. Changes to this layer are "on top"
- of all the other layers, so can create additional directories
- and files.
+ Shell commands to run while building the final layer, without access to most of the layer contents. Changes to this layer are "on top" of all the other layers, so can create additional directories and files.
@@ -338,8 +270,7 @@ hello latest de2bf4786de6 About a minute ago 25.2MB
Behavior of contents in the final image
- Each path directly listed in contents will have a
- symlink in the root of the image.
+ Each path directly listed in contents will have a symlink in the root of the image.
@@ -350,8 +281,7 @@ pkgs.dockerTools.buildLayeredImage {
contents = [ pkgs.hello ];
}
]]>
- will create symlinks for all the paths in the hello
- package:
+ will create symlinks for all the paths in the hello package:
/nix/store/h1zb1padqbbb7jicsvkmrym3r6snphxg-hello-2.10/bin/hello
/share/info/hello.info -> /nix/store/h1zb1padqbbb7jicsvkmrym3r6snphxg-hello-2.10/share/info/hello.info
@@ -364,13 +294,11 @@ pkgs.dockerTools.buildLayeredImage {
Automatic inclusion of config references
- The closure of config is automatically included in the
- closure of the final image.
+ The closure of config is automatically included in the closure of the final image.
- This allows you to make very simple Docker images with very little code.
- This container will start up and run hello :
+ This allows you to make very simple Docker images with very little code. This container will start up and run hello :
Adjusting maxLayers
- Increasing the maxLayers increases the number of layers
- which have a chance to be shared between different images.
+ Increasing the maxLayers increases the number of layers which have a chance to be shared between different images.
- Modern Docker installations support up to 128 layers, however older
- versions support as few as 42.
+ Modern Docker installations support up to 128 layers, however older versions support as few as 42.
- If the produced image will not be extended by other Docker builds, it is
- safe to set maxLayers to 128 . However
- it will be impossible to extend the image further.
+ If the produced image will not be extended by other Docker builds, it is safe to set maxLayers to 128 . However it will be impossible to extend the image further.
- The first (maxLayers-2 ) most "popular" paths will have
- their own individual layers, then layer #maxLayers-1
- will contain all the remaining "unpopular" paths, and finally layer
- #maxLayers will contain the Image configuration.
+ The first (maxLayers-2 ) most "popular" paths will have their own individual layers, then layer #maxLayers-1 will contain all the remaining "unpopular" paths, and finally layer #maxLayers will contain the Image configuration.
- Docker's Layers are not inherently ordered, they are content-addressable
- and are not explicitly layered until they are composed in to an Image.
+ Docker's Layers are not inherently ordered, they are content-addressable and are not explicitly layered until they are composed in to an Image.
@@ -417,10 +337,7 @@ pkgs.dockerTools.buildLayeredImage {
pullImage
- This function is analogous to the docker pull command, in
- that it can be used to pull a Docker image from a Docker registry. By
- default Docker Hub is used
- to pull images.
+ This function is analogous to the docker pull command, in that it can be used to pull a Docker image from a Docker registry. By default Docker Hub is used to pull images.
@@ -445,76 +362,51 @@ pullImage {
- imageName specifies the name of the image to be
- downloaded, which can also include the registry namespace (e.g.
- nixos ). This argument is required.
+ imageName specifies the name of the image to be downloaded, which can also include the registry namespace (e.g. nixos ). This argument is required.
- imageDigest specifies the digest of the image to be
- downloaded. This argument is required.
+ imageDigest specifies the digest of the image to be downloaded. This argument is required.
- finalImageName , if specified, this is the name of the
- image to be created. Note it is never used to fetch the image since we
- prefer to rely on the immutable digest ID. By default it's equal to
- imageName .
+ finalImageName , if specified, this is the name of the image to be created. Note it is never used to fetch the image since we prefer to rely on the immutable digest ID. By default it's equal to imageName .
- finalImageTag , if specified, this is the tag of the
- image to be created. Note it is never used to fetch the image since we
- prefer to rely on the immutable digest ID. By default it's
- latest .
+ finalImageTag , if specified, this is the tag of the image to be created. Note it is never used to fetch the image since we prefer to rely on the immutable digest ID. By default it's latest .
- sha256 is the checksum of the whole fetched image. This
- argument is required.
+ sha256 is the checksum of the whole fetched image. This argument is required.
- os , if specified, is the operating system of the
- fetched image. By default it's linux .
+ os , if specified, is the operating system of the fetched image. By default it's linux .
- arch , if specified, is the cpu architecture of the
- fetched image. By default it's x86_64 .
+ arch , if specified, is the cpu architecture of the fetched image. By default it's x86_64 .
- nix-prefetch-docker command can be used to get required
- image parameters:
-
+ nix-prefetch-docker command can be used to get required image parameters:
$ nix run nixpkgs.nix-prefetch-docker -c nix-prefetch-docker --image-name mysql --image-tag 5
-
- Since a given imageName may transparently refer to a
- manifest list of images which support multiple architectures and/or
- operating systems, you can supply the --os and
- --arch arguments to specify exactly which image you want.
- By default it will match the OS and architecture of the host the command is
- run on.
-
+ Since a given imageName may transparently refer to a manifest list of images which support multiple architectures and/or operating systems, you can supply the --os and --arch arguments to specify exactly which image you want. By default it will match the OS and architecture of the host the command is run on.
$ nix-prefetch-docker --image-name mysql --image-tag 5 --arch x86_64 --os linux
-
- Desired image name and tag can be set using
- --final-image-name and --final-image-tag
- arguments:
-
+ Desired image name and tag can be set using --final-image-name and --final-image-tag arguments:
$ nix-prefetch-docker --image-name mysql --image-tag 5 --final-image-name eu.gcr.io/my-project/mysql --final-image-tag prod
@@ -525,17 +417,12 @@ pullImage {
exportImage
- This function is analogous to the docker export command,
- in that it can be used to flatten a Docker image that contains multiple
- layers. It is in fact the result of the merge of all the layers of the
- image. As such, the result is suitable for being imported in Docker with
- docker import .
+ This function is analogous to the docker export command, in that it can be used to flatten a Docker image that contains multiple layers. It is in fact the result of the merge of all the layers of the image. As such, the result is suitable for being imported in Docker with docker import .
- Using this function requires the kvm device to be
- available.
+ Using this function requires the kvm device to be available.
@@ -557,14 +444,11 @@ exportImage {
- The parameters relative to the base image have the same synopsis as
- described in , except that
- fromImage is the only required argument in this case.
+ The parameters relative to the base image have the same synopsis as described in , except that fromImage is the only required argument in this case.
- The name argument is the name of the derivation output,
- which defaults to fromImage.name .
+ The name argument is the name of the derivation output, which defaults to fromImage.name .
@@ -572,11 +456,7 @@ exportImage {
shadowSetup
- This constant string is a helper for setting up the base files for managing
- users and groups, only if such files don't exist already. It is suitable for
- being used in a runAsRoot
- script for cases like
- in the example below:
+ This constant string is a helper for setting up the base files for managing users and groups, only if such files don't exist already. It is suitable for being used in a runAsRoot script for cases like in the example below:
@@ -598,9 +478,7 @@ buildImage {
- Creating base files like /etc/passwd or
- /etc/login.defs is necessary for shadow-utils to
- manipulate users and groups.
+ Creating base files like /etc/passwd or /etc/login.defs is necessary for shadow-utils to manipulate users and groups.
diff --git a/doc/functions/ocitools.xml b/doc/builders/images/ocitools.xml
similarity index 60%
rename from doc/functions/ocitools.xml
rename to doc/builders/images/ocitools.xml
index 163bee2382e..f61075b242f 100644
--- a/doc/functions/ocitools.xml
+++ b/doc/builders/images/ocitools.xml
@@ -5,26 +5,18 @@
pkgs.ociTools
- pkgs.ociTools is a set of functions for creating
- containers according to the
- OCI
- container specification v1.0.0. Beyond that it makes no assumptions
- about the container runner you choose to use to run the created container.
+ pkgs.ociTools is a set of functions for creating containers according to the OCI container specification v1.0.0. Beyond that it makes no assumptions about the container runner you choose to use to run the created container.
buildContainer
- This function creates a simple OCI container that runs a single command
- inside of it. An OCI container consists of a config.json
- and a rootfs directory.The nix store of the container will contain all
- referenced dependencies of the given command.
+ This function creates a simple OCI container that runs a single command inside of it. An OCI container consists of a config.json and a rootfs directory.The nix store of the container will contain all referenced dependencies of the given command.
- The parameters of buildContainer with an example value
- are described below:
+ The parameters of buildContainer with an example value are described below:
@@ -51,23 +43,17 @@ buildContainer {
- args specifies a set of arguments to run inside the container.
- This is the only required argument for buildContainer .
- All referenced packages inside the derivation will be made available
- inside the container
+ args specifies a set of arguments to run inside the container. This is the only required argument for buildContainer . All referenced packages inside the derivation will be made available inside the container
- mounts specifies additional mount points chosen by the
- user. By default only a minimal set of necessary filesystems are mounted
- into the container (e.g procfs, cgroupfs)
+ mounts specifies additional mount points chosen by the user. By default only a minimal set of necessary filesystems are mounted into the container (e.g procfs, cgroupfs)
- readonly makes the container's rootfs read-only if it is set to true.
- The default value is false false .
+ readonly makes the container's rootfs read-only if it is set to true. The default value is false false .
diff --git a/doc/functions/snap/example-firefox.nix b/doc/builders/images/snap/example-firefox.nix
similarity index 100%
rename from doc/functions/snap/example-firefox.nix
rename to doc/builders/images/snap/example-firefox.nix
diff --git a/doc/functions/snap/example-hello.nix b/doc/builders/images/snap/example-hello.nix
similarity index 100%
rename from doc/functions/snap/example-hello.nix
rename to doc/builders/images/snap/example-hello.nix
diff --git a/doc/functions/snaptools.xml b/doc/builders/images/snaptools.xml
similarity index 61%
rename from doc/functions/snaptools.xml
rename to doc/builders/images/snaptools.xml
index d0e3efdf6c6..422fcfa37d8 100644
--- a/doc/functions/snaptools.xml
+++ b/doc/builders/images/snaptools.xml
@@ -5,28 +5,22 @@
pkgs.snapTools
- pkgs.snapTools is a set of functions for creating
- Snapcraft images. Snap and Snapcraft is not used to perform these operations.
+ pkgs.snapTools is a set of functions for creating Snapcraft images. Snap and Snapcraft is not used to perform these operations.
The makeSnap Function
- makeSnap takes a single named argument,
- meta . This argument mirrors
- the upstream
- snap.yaml format exactly.
+ makeSnap takes a single named argument, meta . This argument mirrors the upstream snap.yaml format exactly.
- The base should not be be specified, as
- makeSnap will force set it.
+ The base should not be be specified, as makeSnap will force set it.
- Currently, makeSnap does not support creating GUI
- stubs.
+ Currently, makeSnap does not support creating GUI stubs.
@@ -40,9 +34,7 @@
- nix-build this expression and install it with
- snap install ./result --dangerous .
- hello will now be the Snapcraft version of the package.
+ nix-build this expression and install it with snap install ./result --dangerous . hello will now be the Snapcraft version of the package.
@@ -53,21 +45,14 @@
Making a Graphical Snap
- Graphical programs require many more integrations with the host. This
- example uses Firefox as an example, because it is one of the most
- complicated programs we could package.
+ Graphical programs require many more integrations with the host. This example uses Firefox as an example, because it is one of the most complicated programs we could package.
- nix-build this expression and install it with
- snap install ./result --dangerous .
- nix-example-firefox will now be the Snapcraft version of
- the Firefox package.
+ nix-build this expression and install it with snap install ./result --dangerous . nix-example-firefox will now be the Snapcraft version of the Firefox package.
- The specific meaning behind plugs can be looked up in the
- Snapcraft
- interface documentation.
+ The specific meaning behind plugs can be looked up in the Snapcraft interface documentation.
diff --git a/doc/builders/packages/citrix.xml b/doc/builders/packages/citrix.xml
new file mode 100644
index 00000000000..c629dc9ee50
--- /dev/null
+++ b/doc/builders/packages/citrix.xml
@@ -0,0 +1,44 @@
+
+ Citrix Workspace
+
+
+
+
+ Please note that the citrix_receiver package has been deprecated since its development was discontinued by upstream and has been replaced by the citrix workspace app.
+
+
+ Citrix Receiver and Citrix Workspace App are a remote desktop viewers which provide access to XenDesktop installations.
+
+
+
+ Basic usage
+
+
+ The tarball archive needs to be downloaded manually as the license agreements of the vendor for Citrix Receiver or Citrix Workspace need to be accepted first. Then run nix-prefetch-url file://$PWD/linuxx64-$version.tar.gz . With the archive available in the store the package can be built and installed with Nix.
+
+
+
+ Caution with nix-shell installs
+
+ It's recommended to install Citrix Receiver and/or Citrix Workspace using nix-env -i or globally to ensure that the .desktop files are installed properly into $XDG_CONFIG_DIRS . Otherwise it won't be possible to open .ica files automatically from the browser to start a Citrix connection.
+
+
+
+
+
+ Custom certificates
+
+
+ The Citrix Workspace App in nixpkgs trust several certificates from the Mozilla database by default. However several companies using Citrix might require their own corporate certificate. On distros with imperative packaging these certs can be stored easily in $ICAROOT , however this directory is a store path in nixpkgs . In order to work around this issue the package provides a simple mechanism to add custom certificates without rebuilding the entire package using symlinkJoin :
+
+ { config.allowUnfree = true; };
+let extraCerts = [ ./custom-cert-1.pem ./custom-cert-2.pem /* ... */ ]; in
+citrix_workspace.override {
+ inherit extraCerts;
+}]]>
+
+
+
+
diff --git a/doc/builders/packages/dlib.xml b/doc/builders/packages/dlib.xml
new file mode 100644
index 00000000000..5f768dd51b6
--- /dev/null
+++ b/doc/builders/packages/dlib.xml
@@ -0,0 +1,24 @@
+
+ DLib
+
+
+ DLib is a modern, C++-based toolkit which provides several machine learning algorithms.
+
+
+
+ Compiling without AVX support
+
+
+ Especially older CPUs don't support AVX (Advanced Vector Extensions ) instructions that are used by DLib to optimize their algorithms.
+
+
+
+ On the affected hardware errors like Illegal instruction will occur. In those cases AVX support needs to be disabled:
+self: super: {
+ dlib = super.dlib.override { avxSupport = false; };
+}
+
+
+
diff --git a/doc/builders/packages/eclipse.xml b/doc/builders/packages/eclipse.xml
new file mode 100644
index 00000000000..fc5094ed8f3
--- /dev/null
+++ b/doc/builders/packages/eclipse.xml
@@ -0,0 +1,72 @@
+
+ Eclipse
+
+
+ The Nix expressions related to the Eclipse platform and IDE are in pkgs/applications/editors/eclipse .
+
+
+
+ Nixpkgs provides a number of packages that will install Eclipse in its various forms. These range from the bare-bones Eclipse Platform to the more fully featured Eclipse SDK or Scala-IDE packages and multiple version are often available. It is possible to list available Eclipse packages by issuing the command:
+
+$ nix-env -f '<nixpkgs>' -qaP -A eclipses --description
+
+ Once an Eclipse variant is installed it can be run using the eclipse command, as expected. From within Eclipse it is then possible to install plugins in the usual manner by either manually specifying an Eclipse update site or by installing the Marketplace Client plugin and using it to discover and install other plugins. This installation method provides an Eclipse installation that closely resemble a manually installed Eclipse.
+
+
+
+ If you prefer to install plugins in a more declarative manner then Nixpkgs also offer a number of Eclipse plugins that can be installed in an Eclipse environment . This type of environment is created using the function eclipseWithPlugins found inside the nixpkgs.eclipses attribute set. This function takes as argument { eclipse, plugins ? [], jvmArgs ? [] } where eclipse is a one of the Eclipse packages described above, plugins is a list of plugin derivations, and jvmArgs is a list of arguments given to the JVM running the Eclipse. For example, say you wish to install the latest Eclipse Platform with the popular Eclipse Color Theme plugin and also allow Eclipse to use more RAM. You could then add
+
+packageOverrides = pkgs: {
+ myEclipse = with pkgs.eclipses; eclipseWithPlugins {
+ eclipse = eclipse-platform;
+ jvmArgs = [ "-Xmx2048m" ];
+ plugins = [ plugins.color-theme ];
+ };
+}
+
+ to your Nixpkgs configuration (~/.config/nixpkgs/config.nix ) and install it by running nix-env -f '<nixpkgs>' -iA myEclipse and afterward run Eclipse as usual. It is possible to find out which plugins are available for installation using eclipseWithPlugins by running
+
+$ nix-env -f '<nixpkgs>' -qaP -A eclipses.plugins --description
+
+
+
+
+ If there is a need to install plugins that are not available in Nixpkgs then it may be possible to define these plugins outside Nixpkgs using the buildEclipseUpdateSite and buildEclipsePlugin functions found in the nixpkgs.eclipses.plugins attribute set. Use the buildEclipseUpdateSite function to install a plugin distributed as an Eclipse update site. This function takes { name, src } as argument where src indicates the Eclipse update site archive. All Eclipse features and plugins within the downloaded update site will be installed. When an update site archive is not available then the buildEclipsePlugin function can be used to install a plugin that consists of a pair of feature and plugin JARs. This function takes an argument { name, srcFeature, srcPlugin } where srcFeature and srcPlugin are the feature and plugin JARs, respectively.
+
+
+
+ Expanding the previous example with two plugins using the above functions we have
+
+packageOverrides = pkgs: {
+ myEclipse = with pkgs.eclipses; eclipseWithPlugins {
+ eclipse = eclipse-platform;
+ jvmArgs = [ "-Xmx2048m" ];
+ plugins = [
+ plugins.color-theme
+ (plugins.buildEclipsePlugin {
+ name = "myplugin1-1.0";
+ srcFeature = fetchurl {
+ url = "http://…/features/myplugin1.jar";
+ sha256 = "123…";
+ };
+ srcPlugin = fetchurl {
+ url = "http://…/plugins/myplugin1.jar";
+ sha256 = "123…";
+ };
+ });
+ (plugins.buildEclipseUpdateSite {
+ name = "myplugin2-1.0";
+ src = fetchurl {
+ stripRoot = false;
+ url = "http://…/myplugin2.zip";
+ sha256 = "123…";
+ };
+ });
+ ];
+ };
+}
+
+
+
diff --git a/doc/builders/packages/elm.xml b/doc/builders/packages/elm.xml
new file mode 100644
index 00000000000..a067f6c7c70
--- /dev/null
+++ b/doc/builders/packages/elm.xml
@@ -0,0 +1,17 @@
+
+ Elm
+
+
+ To start a development environment do nix-shell -p elmPackages.elm elmPackages.elm-format
+
+
+
+ To update Elm compiler, see nixpkgs/pkgs/development/compilers/elm/README.md .
+
+
+
+ To package Elm applications, read about elm2nix.
+
+
diff --git a/doc/builders/packages/emacs.xml b/doc/builders/packages/emacs.xml
new file mode 100644
index 00000000000..9cce7c40863
--- /dev/null
+++ b/doc/builders/packages/emacs.xml
@@ -0,0 +1,131 @@
+
+ Emacs
+
+
+ Configuring Emacs
+
+
+ The Emacs package comes with some extra helpers to make it easier to configure. emacsWithPackages allows you to manage packages from ELPA. This means that you will not have to install that packages from within Emacs. For instance, if you wanted to use company , counsel , flycheck , ivy , magit , projectile , and use-package you could use this as a ~/.config/nixpkgs/config.nix override:
+
+
+
+{
+ packageOverrides = pkgs: with pkgs; {
+ myEmacs = emacsWithPackages (epkgs: (with epkgs.melpaStablePackages; [
+ company
+ counsel
+ flycheck
+ ivy
+ magit
+ projectile
+ use-package
+ ]));
+ }
+}
+
+
+
+ You can install it like any other packages via nix-env -iA myEmacs . However, this will only install those packages. It will not configure them for us. To do this, we need to provide a configuration file. Luckily, it is possible to do this from within Nix! By modifying the above example, we can make Emacs load a custom config file. The key is to create a package that provide a default.el file in /share/emacs/site-start/ . Emacs knows to load this file automatically when it starts.
+
+
+
+{
+ packageOverrides = pkgs: with pkgs; rec {
+ myEmacsConfig = writeText "default.el" ''
+;; initialize package
+
+(require 'package)
+(package-initialize 'noactivate)
+(eval-when-compile
+ (require 'use-package))
+
+;; load some packages
+
+(use-package company
+ :bind ("<C-tab>" . company-complete)
+ :diminish company-mode
+ :commands (company-mode global-company-mode)
+ :defer 1
+ :config
+ (global-company-mode))
+
+(use-package counsel
+ :commands (counsel-descbinds)
+ :bind (([remap execute-extended-command] . counsel-M-x)
+ ("C-x C-f" . counsel-find-file)
+ ("C-c g" . counsel-git)
+ ("C-c j" . counsel-git-grep)
+ ("C-c k" . counsel-ag)
+ ("C-x l" . counsel-locate)
+ ("M-y" . counsel-yank-pop)))
+
+(use-package flycheck
+ :defer 2
+ :config (global-flycheck-mode))
+
+(use-package ivy
+ :defer 1
+ :bind (("C-c C-r" . ivy-resume)
+ ("C-x C-b" . ivy-switch-buffer)
+ :map ivy-minibuffer-map
+ ("C-j" . ivy-call))
+ :diminish ivy-mode
+ :commands ivy-mode
+ :config
+ (ivy-mode 1))
+
+(use-package magit
+ :defer
+ :if (executable-find "git")
+ :bind (("C-x g" . magit-status)
+ ("C-x G" . magit-dispatch-popup))
+ :init
+ (setq magit-completing-read-function 'ivy-completing-read))
+
+(use-package projectile
+ :commands projectile-mode
+ :bind-keymap ("C-c p" . projectile-command-map)
+ :defer 5
+ :config
+ (projectile-global-mode))
+ '';
+ myEmacs = emacsWithPackages (epkgs: (with epkgs.melpaStablePackages; [
+ (runCommand "default.el" {} ''
+mkdir -p $out/share/emacs/site-lisp
+cp ${myEmacsConfig} $out/share/emacs/site-lisp/default.el
+'')
+ company
+ counsel
+ flycheck
+ ivy
+ magit
+ projectile
+ use-package
+ ]));
+ };
+}
+
+
+
+ This provides a fairly full Emacs start file. It will load in addition to the user's presonal config. You can always disable it by passing -q to the Emacs command.
+
+
+
+ Sometimes emacsWithPackages is not enough, as this package set has some priorities imposed on packages (with the lowest priority assigned to Melpa Unstable, and the highest for packages manually defined in pkgs/top-level/emacs-packages.nix ). But you can't control this priorities when some package is installed as a dependency. You can override it on per-package-basis, providing all the required dependencies manually - but it's tedious and there is always a possibility that an unwanted dependency will sneak in through some other package. To completely override such a package you can use overrideScope' .
+
+
+
+overrides = self: super: rec {
+ haskell-mode = self.melpaPackages.haskell-mode;
+ ...
+};
+((emacsPackagesGen emacs).overrideScope' overrides).emacsWithPackages (p: with p; [
+ # here both these package will use haskell-mode of our own choice
+ ghc-mod
+ dante
+])
+
+
+
diff --git a/doc/builders/packages/ibus.xml b/doc/builders/packages/ibus.xml
new file mode 100644
index 00000000000..2ed37903a27
--- /dev/null
+++ b/doc/builders/packages/ibus.xml
@@ -0,0 +1,57 @@
+
+ ibus-engines.typing-booster
+
+
+ This package is an ibus-based completion method to speed up typing.
+
+
+
+ Activating the engine
+
+
+ IBus needs to be configured accordingly to activate typing-booster . The configuration depends on the desktop manager in use. For detailed instructions, please refer to the upstream docs.
+
+
+
+ On NixOS you need to explicitly enable ibus with given engines before customizing your desktop to use typing-booster . This can be achieved using the ibus module:
+{ pkgs, ... }: {
+ i18n.inputMethod = {
+ enabled = "ibus";
+ ibus.engines = with pkgs.ibus-engines; [ typing-booster ];
+ };
+}
+
+
+
+
+ Using custom hunspell dictionaries
+
+
+ The IBus engine is based on hunspell to support completion in many languages. By default the dictionaries de-de , en-us , fr-moderne es-es , it-it , sv-se and sv-fi are in use. To add another dictionary, the package can be overridden like this:
+ibus-engines.typing-booster.override {
+ langs = [ "de-at" "en-gb" ];
+}
+
+
+
+ Note: each language passed to langs must be an attribute name in pkgs.hunspellDicts .
+
+
+
+
+ Built-in emoji picker
+
+
+ The ibus-engines.typing-booster package contains a program named emoji-picker . To display all emojis correctly, a special font such as noto-fonts-emoji is needed:
+
+
+
+ On NixOS it can be installed using the following expression:
+{ pkgs, ... }: {
+ fonts.fonts = with pkgs; [ noto-fonts-emoji ];
+}
+
+
+
diff --git a/doc/builders/packages/index.xml b/doc/builders/packages/index.xml
new file mode 100644
index 00000000000..9f3f58a8d90
--- /dev/null
+++ b/doc/builders/packages/index.xml
@@ -0,0 +1,23 @@
+
+ Packages
+
+ This chapter contains information about how to use and maintain the Nix expressions for a number of specific packages, such as the Linux kernel or X.org.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/doc/builders/packages/kakoune.xml b/doc/builders/packages/kakoune.xml
new file mode 100644
index 00000000000..728d40dacc9
--- /dev/null
+++ b/doc/builders/packages/kakoune.xml
@@ -0,0 +1,14 @@
+
+ Kakoune
+
+
+ Kakoune can be built to autoload plugins:
+(kakoune.override {
+ configure = {
+ plugins = with pkgs.kakounePlugins; [ parinfer-rust ];
+ };
+})
+
+
diff --git a/doc/builders/packages/linux.xml b/doc/builders/packages/linux.xml
new file mode 100644
index 00000000000..72d0e21493b
--- /dev/null
+++ b/doc/builders/packages/linux.xml
@@ -0,0 +1,85 @@
+
+ Linux kernel
+
+
+ The Nix expressions to build the Linux kernel are in pkgs/os-specific/linux/kernel .
+
+
+
+ The function that builds the kernel has an argument kernelPatches which should be a list of {name, patch, extraConfig} attribute sets, where name is the name of the patch (which is included in the kernel’s meta.description attribute), patch is the patch itself (possibly compressed), and extraConfig (optional) is a string specifying extra options to be concatenated to the kernel configuration file (.config ).
+
+
+
+ The kernel derivation exports an attribute features specifying whether optional functionality is or isn’t enabled. This is used in NixOS to implement kernel-specific behaviour. For instance, if the kernel has the iwlwifi feature (i.e. has built-in support for Intel wireless chipsets), then NixOS doesn’t have to build the external iwlwifi package:
+
+modulesTree = [kernel]
+ ++ pkgs.lib.optional (!kernel.features ? iwlwifi) kernelPackages.iwlwifi
+ ++ ...;
+
+
+
+
+ How to add a new (major) version of the Linux kernel to Nixpkgs:
+
+
+
+ Copy the old Nix expression (e.g. linux-2.6.21.nix ) to the new one (e.g. linux-2.6.22.nix ) and update it.
+
+
+
+
+ Add the new kernel to all-packages.nix (e.g., create an attribute kernel_2_6_22 ).
+
+
+
+
+ Now we’re going to update the kernel configuration. First unpack the kernel. Then for each supported platform (i686 , x86_64 , uml ) do the following:
+
+
+
+ Make an copy from the old config (e.g. config-2.6.21-i686-smp ) to the new one (e.g. config-2.6.22-i686-smp ).
+
+
+
+
+ Copy the config file for this platform (e.g. config-2.6.22-i686-smp ) to .config in the kernel source tree.
+
+
+
+
+ Run make oldconfig ARCH={i386,x86_64,um} and answer all questions. (For the uml configuration, also add SHELL=bash .) Make sure to keep the configuration consistent between platforms (i.e. don’t enable some feature on i686 and disable it on x86_64 ).
+
+
+
+
+ If needed you can also run make menuconfig :
+
+$ nix-env -i ncurses
+$ export NIX_CFLAGS_LINK=-lncurses
+$ make menuconfig ARCH=arch
+
+
+
+
+ Copy .config over the new config file (e.g. config-2.6.22-i686-smp ).
+
+
+
+
+
+
+
+ Test building the kernel: nix-build -A kernel_2_6_22 . If it compiles, ship it! For extra credit, try booting NixOS with it.
+
+
+
+
+ It may be that the new kernel requires updating the external kernel modules and kernel-dependent packages listed in the linuxPackagesFor function in all-packages.nix (such as the NVIDIA drivers, AUFS, etc.). If the updated packages aren’t backwards compatible with older kernels, you may need to keep the older versions around.
+
+
+
+
+
diff --git a/doc/builders/packages/locales.xml b/doc/builders/packages/locales.xml
new file mode 100644
index 00000000000..44fdef034e7
--- /dev/null
+++ b/doc/builders/packages/locales.xml
@@ -0,0 +1,13 @@
+
+ Locales
+
+
+ To allow simultaneous use of packages linked against different versions of glibc with different locale archive formats Nixpkgs patches glibc to rely on LOCALE_ARCHIVE environment variable.
+
+
+
+ On non-NixOS distributions this variable is obviously not set. This can cause regressions in language support or even crashes in some Nixpkgs-provided programs. The simplest way to mitigate this problem is exporting the LOCALE_ARCHIVE variable pointing to ${glibcLocales}/lib/locale/locale-archive . The drawback (and the reason this is not the default) is the relatively large (a hundred MiB) size of the full set of locales. It is possible to build a custom set of locales by overriding parameters allLocales and locales of the package.
+
+
diff --git a/doc/builders/packages/nginx.xml b/doc/builders/packages/nginx.xml
new file mode 100644
index 00000000000..65854ba0236
--- /dev/null
+++ b/doc/builders/packages/nginx.xml
@@ -0,0 +1,25 @@
+
+ Nginx
+
+
+ Nginx is a reverse proxy and lightweight webserver.
+
+
+
+ ETags on static files served from the Nix store
+
+
+ HTTP has a couple different mechanisms for caching to prevent clients from having to download the same content repeatedly if a resource has not changed since the last time it was requested. When nginx is used as a server for static files, it implements the caching mechanism based on the Last-Modified response header automatically; unfortunately, it works by using filesystem timestamps to determine the value of the Last-Modified header. This doesn't give the desired behavior when the file is in the Nix store, because all file timestamps are set to 0 (for reasons related to build reproducibility).
+
+
+
+ Fortunately, HTTP supports an alternative (and more effective) caching mechanism: the ETag response header. The value of the ETag header specifies some identifier for the particular content that the server is sending (e.g. a hash). When a client makes a second request for the same resource, it sends that value back in an If-None-Match header. If the ETag value is unchanged, then the server does not need to resend the content.
+
+
+
+ As of NixOS 19.09, the nginx package in Nixpkgs is patched such that when nginx serves a file out of /nix/store , the hash in the store path is used as the ETag header in the HTTP response, thus providing proper caching functionality. This happens automatically; you do not need to do modify any configuration to get this behavior.
+
+
+
diff --git a/doc/builders/packages/opengl.xml b/doc/builders/packages/opengl.xml
new file mode 100644
index 00000000000..5f4433a2884
--- /dev/null
+++ b/doc/builders/packages/opengl.xml
@@ -0,0 +1,9 @@
+
+ OpenGL
+
+
+ Packages that use OpenGL have NixOS desktop as their primary target. The current solution for loading the GPU-specific drivers is based on libglvnd and looks for the driver implementation in LD_LIBRARY_PATH . If you are using a non-NixOS GNU/Linux/X11 desktop with free software video drivers, consider launching OpenGL-dependent programs from Nixpkgs with Nixpkgs versions of libglvnd and mesa_drivers in LD_LIBRARY_PATH . For proprietary video drivers you might have luck with also adding the corresponding video driver package.
+
+
diff --git a/doc/builders/packages/shell-helpers.xml b/doc/builders/packages/shell-helpers.xml
new file mode 100644
index 00000000000..cb70d527d67
--- /dev/null
+++ b/doc/builders/packages/shell-helpers.xml
@@ -0,0 +1,25 @@
+
+ Interactive shell helpers
+
+
+ Some packages provide the shell integration to be more useful. But unlike other systems, nix doesn't have a standard share directory location. This is why a bunch PACKAGE-share scripts are shipped that print the location of the corresponding shared folder. Current list of such packages is as following:
+
+
+
+ autojump : autojump-share
+
+
+
+
+ fzf : fzf-share
+
+
+
+ E.g. autojump can then used in the .bashrc like this:
+
+ source "$(autojump-share)/autojump.bash"
+
+
+
diff --git a/doc/builders/packages/steam.xml b/doc/builders/packages/steam.xml
new file mode 100644
index 00000000000..8dfede59ac1
--- /dev/null
+++ b/doc/builders/packages/steam.xml
@@ -0,0 +1,131 @@
+
+ Steam
+
+
+ Steam in Nix
+
+
+ Steam is distributed as a .deb file, for now only as an i686 package (the amd64 package only has documentation). When unpacked, it has a script called steam that in Ubuntu (their target distro) would go to /usr/bin . When run for the first time, this script copies some files to the user's home, which include another script that is the ultimate responsible for launching the steam binary, which is also in $HOME.
+
+
+
+ Nix problems and constraints:
+
+
+
+ We don't have /bin/bash and many scripts point there. Similarly for /usr/bin/python .
+
+
+
+
+ We don't have the dynamic loader in /lib .
+
+
+
+
+ The steam.sh script in $HOME can not be patched, as it is checked and rewritten by steam.
+
+
+
+
+ The steam binary cannot be patched, it's also checked.
+
+
+
+
+
+
+ The current approach to deploy Steam in NixOS is composing a FHS-compatible chroot environment, as documented here. This allows us to have binaries in the expected paths without disrupting the system, and to avoid patching them to work in a non FHS environment.
+
+
+
+
+ How to play
+
+
+ For 64-bit systems it's important to have
+hardware.opengl.driSupport32Bit = true;
+ in your /etc/nixos/configuration.nix . You'll also need
+hardware.pulseaudio.support32Bit = true;
+ if you are using PulseAudio - this will enable 32bit ALSA apps integration. To use the Steam controller or other Steam supported controllers such as the DualShock 4 or Nintendo Switch Pro, you need to add
+hardware.steam-hardware.enable = true;
+ to your configuration.
+
+
+
+
+ Troubleshooting
+
+
+
+
+
+ Steam fails to start. What do I do?
+
+
+
+ Try to run
+strace steam
+ to see what is causing steam to fail.
+
+
+
+
+
+ Using the FOSS Radeon or nouveau (nvidia) drivers
+
+
+
+
+
+ The newStdcpp parameter was removed since NixOS 17.09 and should not be needed anymore.
+
+
+
+
+ Steam ships statically linked with a version of libcrypto that conflics with the one dynamically loaded by radeonsi_dri.so. If you get the error
+steam.sh: line 713: 7842 Segmentation fault (core dumped)
+ have a look at this pull request.
+
+
+
+
+
+
+
+ Java
+
+
+
+
+
+ There is no java in steam chrootenv by default. If you get a message like
+/home/foo/.local/share/Steam/SteamApps/common/towns/towns.sh: line 1: java: command not found
+ You need to add
+ steam.override { withJava = true; };
+ to your configuration.
+
+
+
+
+
+
+
+
+
+
+ steam-run
+
+
+ The FHS-compatible chroot used for steam can also be used to run other linux games that expect a FHS environment. To do it, add
+pkgs.(steam.override {
+ nativeOnly = true;
+ newStdcpp = true;
+ }).run
+ to your configuration, rebuild, and run the game with
+steam-run ./foo
+
+
+
diff --git a/doc/builders/packages/unfree.xml b/doc/builders/packages/unfree.xml
new file mode 100644
index 00000000000..3d4f199f8fb
--- /dev/null
+++ b/doc/builders/packages/unfree.xml
@@ -0,0 +1,13 @@
+
+ Unfree software
+
+
+ All users of Nixpkgs are free software users, and many users (and developers) of Nixpkgs want to limit and tightly control their exposure to unfree software. At the same time, many users need (or want) to run some specific pieces of proprietary software. Nixpkgs includes some expressions for unfree software packages. By default unfree software cannot be installed and doesn’t show up in searches. To allow installing unfree software in a single Nix invocation one can export NIXPKGS_ALLOW_UNFREE=1 . For a persistent solution, users can set allowUnfree in the Nixpkgs configuration.
+
+
+
+ Fine-grained control is possible by defining allowUnfreePredicate function in config; it takes the mkDerivation parameter attrset and returns true for unfree packages that should be allowed.
+
+
diff --git a/doc/builders/packages/weechat.xml b/doc/builders/packages/weechat.xml
new file mode 100644
index 00000000000..a110d3f491c
--- /dev/null
+++ b/doc/builders/packages/weechat.xml
@@ -0,0 +1,85 @@
+
+ Weechat
+
+
+ Weechat can be configured to include your choice of plugins, reducing its closure size from the default configuration which includes all available plugins. To make use of this functionality, install an expression that overrides its configuration such as
+weechat.override {configure = {availablePlugins, ...}: {
+ plugins = with availablePlugins; [ python perl ];
+ }
+}
+ If the configure function returns an attrset without the plugins attribute, availablePlugins will be used automatically.
+
+
+
+ The plugins currently available are python , perl , ruby , guile , tcl and lua .
+
+
+
+ The python and perl plugins allows the addition of extra libraries. For instance, the inotify.py script in weechat-scripts requires D-Bus or libnotify, and the fish.py script requires pycrypto. To use these scripts, use the plugin's withPackages attribute:
+weechat.override { configure = {availablePlugins, ...}: {
+ plugins = with availablePlugins; [
+ (python.withPackages (ps: with ps; [ pycrypto python-dbus ]))
+ ];
+ };
+}
+
+
+
+
+ In order to also keep all default plugins installed, it is possible to use the following method:
+weechat.override { configure = { availablePlugins, ... }: {
+ plugins = builtins.attrValues (availablePlugins // {
+ python = availablePlugins.python.withPackages (ps: with ps; [ pycrypto python-dbus ]);
+ });
+}; }
+
+
+
+
+ WeeChat allows to set defaults on startup using the --run-command . The configure method can be used to pass commands to the program:
+weechat.override {
+ configure = { availablePlugins, ... }: {
+ init = ''
+ /set foo bar
+ /server add freenode chat.freenode.org
+ '';
+ };
+}
+ Further values can be added to the list of commands when running weechat --run-command "your-commands" .
+
+
+
+ Additionally it's possible to specify scripts to be loaded when starting weechat . These will be loaded before the commands from init :
+weechat.override {
+ configure = { availablePlugins, ... }: {
+ scripts = with pkgs.weechatScripts; [
+ weechat-xmpp weechat-matrix-bridge wee-slack
+ ];
+ init = ''
+ /set plugins.var.python.jabber.key "val"
+ '':
+ };
+}
+
+
+
+ In nixpkgs there's a subpackage which contains derivations for WeeChat scripts. Such derivations expect a passthru.scripts attribute which contains a list of all scripts inside the store path. Furthermore all scripts have to live in $out/share . An exemplary derivation looks like this:
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation {
+ name = "exemplary-weechat-script";
+ src = fetchurl {
+ url = "https://scripts.tld/your-scripts.tar.gz";
+ sha256 = "...";
+ };
+ passthru.scripts = [ "foo.py" "bar.lua" ];
+ installPhase = ''
+ mkdir $out/share
+ cp foo.py $out/share
+ cp bar.lua $out/share
+ '';
+}
+
+
diff --git a/doc/builders/packages/xorg.xml b/doc/builders/packages/xorg.xml
new file mode 100644
index 00000000000..ebf4930cc09
--- /dev/null
+++ b/doc/builders/packages/xorg.xml
@@ -0,0 +1,34 @@
+
+ X.org
+
+
+ The Nix expressions for the X.org packages reside in pkgs/servers/x11/xorg/default.nix . This file is automatically generated from lists of tarballs in an X.org release. As such it should not be modified directly; rather, you should modify the lists, the generator script or the file pkgs/servers/x11/xorg/overrides.nix , in which you can override or add to the derivations produced by the generator.
+
+
+
+ The generator is invoked as follows:
+
+$ cd pkgs/servers/x11/xorg
+$ cat tarballs-7.5.list extra.list old.list \
+ | perl ./generate-expr-from-tarballs.pl
+
+ For each of the tarballs in the .list files, the script downloads it, unpacks it, and searches its configure.ac and *.pc.in files for dependencies. This information is used to generate default.nix . The generator caches downloaded tarballs between runs. Pay close attention to the NOT FOUND: name messages at the end of the run, since they may indicate missing dependencies. (Some might be optional dependencies, however.)
+
+
+
+ A file like tarballs-7.5.list contains all tarballs in a X.org release. It can be generated like this:
+
+$ export i="mirror://xorg/X11R7.4/src/everything/"
+$ cat $(PRINT_PATH=1 nix-prefetch-url $i | tail -n 1) \
+ | perl -e 'while (<>) { if (/(href|HREF)="([^"]*.bz2)"/) { print "$ENV{'i'}$2\n"; }; }' \
+ | sort > tarballs-7.4.list
+
+ extra.list contains libraries that aren’t part of X.org proper, but are closely related to it, such as libxcb . old.list contains some packages that were removed from X.org, but are still needed by some people or by other packages (such as imake ).
+
+
+
+ If the expression for a package requires derivation attributes that the generator cannot figure out automatically (say, patches or a postInstall hook), you should modify pkgs/servers/x11/xorg/overrides.nix .
+
+
diff --git a/doc/builders/special.xml b/doc/builders/special.xml
new file mode 100644
index 00000000000..15fdba9a041
--- /dev/null
+++ b/doc/builders/special.xml
@@ -0,0 +1,10 @@
+
+ Special builders
+
+ This chapter describes several special builders.
+
+
+
+
diff --git a/doc/functions/fhs-environments.xml b/doc/builders/special/fhs-environments.xml
similarity index 65%
rename from doc/functions/fhs-environments.xml
rename to doc/builders/special/fhs-environments.xml
index 79682080be3..e7b81e97a23 100644
--- a/doc/functions/fhs-environments.xml
+++ b/doc/builders/special/fhs-environments.xml
@@ -5,15 +5,7 @@
buildFHSUserEnv
- buildFHSUserEnv provides a way to build and run
- FHS-compatible lightweight sandboxes. It creates an isolated root with bound
- /nix/store , so its footprint in terms of disk space
- needed is quite small. This allows one to run software which is hard or
- unfeasible to patch for NixOS -- 3rd-party source trees with FHS assumptions,
- games distributed as tarballs, software with integrity checking and/or
- external self-updated binaries. It uses Linux namespaces feature to create
- temporary lightweight environments which are destroyed after all child
- processes exit, without root user rights requirement. Accepted arguments are:
+ buildFHSUserEnv provides a way to build and run FHS-compatible lightweight sandboxes. It creates an isolated root with bound /nix/store , so its footprint in terms of disk space needed is quite small. This allows one to run software which is hard or unfeasible to patch for NixOS -- 3rd-party source trees with FHS assumptions, games distributed as tarballs, software with integrity checking and/or external self-updated binaries. It uses Linux namespaces feature to create temporary lightweight environments which are destroyed after all child processes exit, without root user rights requirement. Accepted arguments are:
@@ -33,8 +25,7 @@
- Packages to be installed for the main host's architecture (i.e. x86_64 on
- x86_64 installations). Along with libraries binaries are also installed.
+ Packages to be installed for the main host's architecture (i.e. x86_64 on x86_64 installations). Along with libraries binaries are also installed.
@@ -44,9 +35,7 @@
- Packages to be installed for all architectures supported by a host (i.e.
- i686 and x86_64 on x86_64 installations). Only libraries are installed by
- default.
+ Packages to be installed for all architectures supported by a host (i.e. i686 and x86_64 on x86_64 installations). Only libraries are installed by default.
@@ -66,8 +55,7 @@
- Like extraBuildCommands , but executed only on multilib
- architectures.
+ Like extraBuildCommands , but executed only on multilib architectures.
@@ -77,8 +65,7 @@
- Additional derivation outputs to be linked for both target and
- multi-architecture packages.
+ Additional derivation outputs to be linked for both target and multi-architecture packages.
@@ -88,8 +75,7 @@
- Additional commands to be executed for finalizing the derivation with
- runner script.
+ Additional commands to be executed for finalizing the derivation with runner script.
@@ -99,16 +85,14 @@
- A command that would be executed inside the sandbox and passed all the
- command line arguments. It defaults to bash .
+ A command that would be executed inside the sandbox and passed all the command line arguments. It defaults to bash .
- One can create a simple environment using a shell.nix like
- that:
+ One can create a simple environment using a shell.nix like that:
- Running nix-shell would then drop you into a shell with
- these libraries and binaries available. You can use this to run closed-source
- applications which expect FHS structure without hassles: simply change
- runScript to the application path, e.g.
- ./bin/start.sh -- relative paths are supported.
+ Running nix-shell would then drop you into a shell with these libraries and binaries available. You can use this to run closed-source applications which expect FHS structure without hassles: simply change runScript to the application path, e.g. ./bin/start.sh -- relative paths are supported.
diff --git a/doc/functions/shell.xml b/doc/builders/special/mkshell.xml
similarity index 79%
rename from doc/functions/shell.xml
rename to doc/builders/special/mkshell.xml
index e5031c9463c..cef65d06b88 100644
--- a/doc/functions/shell.xml
+++ b/doc/builders/special/mkshell.xml
@@ -5,9 +5,7 @@
pkgs.mkShell
- pkgs.mkShell is a special kind of derivation that is
- only useful when using it combined with nix-shell . It will
- in fact fail to instantiate when invoked with nix-build .
+ pkgs.mkShell is a special kind of derivation that is only useful when using it combined with nix-shell . It will in fact fail to instantiate when invoked with nix-build .
diff --git a/doc/builders/trivial-builders.xml b/doc/builders/trivial-builders.xml
new file mode 100644
index 00000000000..df0e38da1aa
--- /dev/null
+++ b/doc/builders/trivial-builders.xml
@@ -0,0 +1,77 @@
+
+ Trivial builders
+
+ Nixpkgs provides a couple of functions that help with building derivations. The most important one, stdenv.mkDerivation , has already been documented above. The following functions wrap stdenv.mkDerivation , making it easier to use in certain cases.
+
+
+
+
+ runCommand
+
+
+
+ This takes three arguments, name , env , and buildCommand . name is just the name that Nix will append to the store path in the same way that stdenv.mkDerivation uses its name attribute. env is an attribute set specifying environment variables that will be set for this derivation. These attributes are then passed to the wrapped stdenv.mkDerivation . buildCommand specifies the commands that will be run to create this derivation. Note that you will need to create $out for Nix to register the command as successful.
+
+
+ An example of using runCommand is provided below.
+
+
+(import <nixpkgs> {}).runCommand "my-example" {} ''
+ echo My example command is running
+
+ mkdir $out
+
+ echo I can write data to the Nix store > $out/message
+
+ echo I can also run basic commands like:
+
+ echo ls
+ ls
+
+ echo whoami
+ whoami
+
+ echo date
+ date
+''
+
+
+
+
+
+ runCommandCC
+
+
+
+ This works just like runCommand . The only difference is that it also provides a C compiler in buildCommand ’s environment. To minimize your dependencies, you should only use this if you are sure you will need a C compiler as part of running your command.
+
+
+
+
+
+ writeTextFile , writeText , writeTextDir , writeScript , writeScriptBin
+
+
+
+ These functions write text to the Nix store. This is useful for creating scripts from Nix expressions. writeTextFile takes an attribute set and expects two arguments, name and text . name corresponds to the name used in the Nix store path. text will be the contents of the file. You can also set executable to true to make this file have the executable bit set.
+
+
+ Many more commands wrap writeTextFile including writeText , writeTextDir , writeScript , and writeScriptBin . These are convenience functions over writeTextFile .
+
+
+
+
+
+ symlinkJoin
+
+
+
+ This can be used to put many derivations into the same directory structure. It works by creating a new derivation and adding symlinks to each of the paths listed. It expects two arguments, name , and paths . name is the name used in the Nix store path for the created derivation. paths is a list of paths that will be symlinked. These paths can be to Nix store derivations or any other subdirectory contained within.
+
+
+
+
+
diff --git a/doc/coding-conventions.xml b/doc/contributing/coding-conventions.xml
similarity index 64%
rename from doc/coding-conventions.xml
rename to doc/contributing/coding-conventions.xml
index 48356247a49..799f1479467 100644
--- a/doc/coding-conventions.xml
+++ b/doc/contributing/coding-conventions.xml
@@ -8,24 +8,17 @@
- Use 2 spaces of indentation per indentation level in Nix expressions, 4
- spaces in shell scripts.
+ Use 2 spaces of indentation per indentation level in Nix expressions, 4 spaces in shell scripts.
- Do not use tab characters, i.e. configure your editor to use soft tabs.
- For instance, use (setq-default indent-tabs-mode nil)
- in Emacs. Everybody has different tab settings so it’s asking for
- trouble.
+ Do not use tab characters, i.e. configure your editor to use soft tabs. For instance, use (setq-default indent-tabs-mode nil) in Emacs. Everybody has different tab settings so it’s asking for trouble.
- Use lowerCamelCase for variable names, not
- UpperCamelCase . Note, this rule does not apply to
- package attribute names, which instead follow the rules in
- .
+ Use lowerCamelCase for variable names, not UpperCamelCase . Note, this rule does not apply to package attribute names, which instead follow the rules in .
@@ -52,8 +45,7 @@ foo { arg = ...; }
- In attribute sets or lists that span multiple lines, the attribute names
- or list elements should be aligned:
+ In attribute sets or lists that span multiple lines, the attribute names or list elements should be aligned:
# A long list.
list = [
@@ -97,8 +89,7 @@ attrs = { x = 1280; y = 1024; };
- Breaking in the middle of a function argument can give hard-to-read code,
- like
+ Breaking in the middle of a function argument can give hard-to-read code, like
someFunction { x = 1280;
y = 1024; } otherArg
@@ -123,8 +114,7 @@ in someFunction res otherArg yetAnotherArg
- The bodies of functions, asserts, and withs are not indented to prevent a
- lot of superfluous indentation levels, i.e.
+ The bodies of functions, asserts, and withs are not indented to prevent a lot of superfluous indentation levels, i.e.
{ arg1, arg2 }:
assert system == "i686-linux";
@@ -156,8 +146,7 @@ stdenv.mkDerivation { ...
- Functions should list their expected arguments as precisely as possible.
- That is, write
+ Functions should list their expected arguments as precisely as possible. That is, write
{ stdenv, fetchurl, perl }: ...
@@ -171,9 +160,7 @@ args: with args; ...
- For functions that are truly generic in the number of arguments (such as
- wrappers around mkDerivation ) that have some required
- arguments, you should write them using an @ -pattern:
+ For functions that are truly generic in the number of arguments (such as wrappers around mkDerivation ) that have some required arguments, you should write them using an @ -pattern:
{ stdenv, doCoverageAnalysis ? false, ... } @ args:
@@ -197,35 +184,20 @@ args.stdenv.mkDerivation (args // {
Package naming
- The key words must , must not ,
- required , shall , shall
- not , should , should
- not , recommended , may ,
- and optional in this section are to be interpreted as
- described in RFC
- 2119. Only emphasized words are to be
- interpreted in this way.
+ The key words must , must not , required , shall , shall not , should , should not , recommended , may , and optional in this section are to be interpreted as described in RFC 2119. Only emphasized words are to be interpreted in this way.
- In Nixpkgs, there are generally three different names associated with a
- package:
+ In Nixpkgs, there are generally three different names associated with a package:
- The name attribute of the derivation (excluding the
- version part). This is what most users see, in particular when using
- nix-env .
+ The name attribute of the derivation (excluding the version part). This is what most users see, in particular when using nix-env .
- The variable name used for the instantiated package in
- all-packages.nix , and when passing it as a
- dependency to other functions. Typically this is called the
- package attribute name . This is what Nix expression
- authors see. It can also be used when installing using nix-env
- -iA .
+ The variable name used for the instantiated package in all-packages.nix , and when passing it as a dependency to other functions. Typically this is called the package attribute name . This is what Nix expression authors see. It can also be used when installing using nix-env -iA .
@@ -234,12 +206,7 @@ args.stdenv.mkDerivation (args // {
- Most of the time, these are the same. For instance, the package
- e2fsprogs has a name attribute
- "e2fsprogs-version " , is bound
- to the variable name e2fsprogs in
- all-packages.nix , and the Nix expression is in
- pkgs/os-specific/linux/e2fsprogs/default.nix .
+ Most of the time, these are the same. For instance, the package e2fsprogs has a name attribute "e2fsprogs-version " , is bound to the variable name e2fsprogs in all-packages.nix , and the Nix expression is in pkgs/os-specific/linux/e2fsprogs/default.nix .
@@ -247,51 +214,32 @@ args.stdenv.mkDerivation (args // {
- The name attribute should be
- identical to the upstream package name.
+ The name attribute should be identical to the upstream package name.
- The name attribute must not
- contain uppercase letters — e.g., "mplayer-1.0rc2"
- instead of "MPlayer-1.0rc2" .
+ The name attribute must not contain uppercase letters — e.g., "mplayer-1.0rc2" instead of "MPlayer-1.0rc2" .
- The version part of the name attribute
- must start with a digit (following a dash) — e.g.,
- "hello-0.3.1rc2" .
+ The version part of the name attribute must start with a digit (following a dash) — e.g., "hello-0.3.1rc2" .
- If a package is not a release but a commit from a repository, then the
- version part of the name must be the date of that
- (fetched) commit. The date must be in
- "YYYY-MM-DD" format. Also append
- "unstable" to the name - e.g.,
- "pkgname-unstable-2014-09-23" .
+ If a package is not a release but a commit from a repository, then the version part of the name must be the date of that (fetched) commit. The date must be in "YYYY-MM-DD" format. Also append "unstable" to the name - e.g., "pkgname-unstable-2014-09-23" .
- Dashes in the package name should be preserved in
- new variable names, rather than converted to underscores or camel cased
- — e.g., http-parser instead of
- http_parser or httpParser . The
- hyphenated style is preferred in all three package names.
+ Dashes in the package name should be preserved in new variable names, rather than converted to underscores or camel cased — e.g., http-parser instead of http_parser or httpParser . The hyphenated style is preferred in all three package names.
- If there are multiple versions of a package, this
- should be reflected in the variable names in
- all-packages.nix , e.g. json-c-0-9
- and json-c-0-11 . If there is an obvious “default”
- version, make an attribute like json-c = json-c-0-9; .
- See also
+ If there are multiple versions of a package, this should be reflected in the variable names in all-packages.nix , e.g. json-c-0-9 and json-c-0-11 . If there is an obvious “default” version, make an attribute like json-c = json-c-0-9; . See also
@@ -301,31 +249,18 @@ args.stdenv.mkDerivation (args // {
File naming and organisation
- Names of files and directories should be in lowercase, with dashes between
- words — not in camel case. For instance, it should be
- all-packages.nix , not
- allPackages.nix or
- AllPackages.nix .
+ Names of files and directories should be in lowercase, with dashes between words — not in camel case. For instance, it should be all-packages.nix , not allPackages.nix or AllPackages.nix .
Hierarchy
- Each package should be stored in its own directory somewhere in the
- pkgs/ tree, i.e. in
- pkgs/category /subcategory /... /pkgname .
- Below are some rules for picking the right category for a package. Many
- packages fall under several categories; what matters is the
- primary purpose of a package. For example, the
- libxml2 package builds both a library and some tools;
- but it’s a library foremost, so it goes under
- pkgs/development/libraries .
+ Each package should be stored in its own directory somewhere in the pkgs/ tree, i.e. in pkgs/category /subcategory /... /pkgname . Below are some rules for picking the right category for a package. Many packages fall under several categories; what matters is the primary purpose of a package. For example, the libxml2 package builds both a library and some tools; but it’s a library foremost, so it goes under pkgs/development/libraries .
- When in doubt, consider refactoring the pkgs/ tree,
- e.g. creating new categories or splitting up an existing category.
+ When in doubt, consider refactoring the pkgs/ tree, e.g. creating new categories or splitting up an existing category.
@@ -341,8 +276,7 @@ args.stdenv.mkDerivation (args // {
- development/libraries (e.g.
- libxml2 )
+ development/libraries (e.g. libxml2 )
@@ -352,8 +286,7 @@ args.stdenv.mkDerivation (args // {
- development/compilers (e.g.
- gcc )
+ development/compilers (e.g. gcc )
@@ -363,8 +296,7 @@ args.stdenv.mkDerivation (args // {
- development/interpreters (e.g.
- guile )
+ development/interpreters (e.g. guile )
@@ -380,8 +312,7 @@ args.stdenv.mkDerivation (args // {
- development/tools/parsing (e.g.
- bison , flex )
+ development/tools/parsing (e.g. bison , flex )
@@ -391,8 +322,7 @@ args.stdenv.mkDerivation (args // {
- development/tools/build-managers (e.g.
- gnumake )
+ development/tools/build-managers (e.g. gnumake )
@@ -402,8 +332,7 @@ args.stdenv.mkDerivation (args // {
- development/tools/misc (e.g.
- binutils )
+ development/tools/misc (e.g. binutils )
@@ -429,8 +358,7 @@ args.stdenv.mkDerivation (args // {
- (A tool is a relatively small program, especially one intended to be
- used non-interactively.)
+ (A tool is a relatively small program, especially one intended to be used non-interactively.)
@@ -439,8 +367,7 @@ args.stdenv.mkDerivation (args // {
- tools/networking (e.g.
- wget )
+ tools/networking (e.g. wget )
@@ -470,8 +397,7 @@ args.stdenv.mkDerivation (args // {
- tools/archivers (e.g. zip ,
- tar )
+ tools/archivers (e.g. zip , tar )
@@ -481,8 +407,7 @@ args.stdenv.mkDerivation (args // {
- tools/compression (e.g.
- gzip , bzip2 )
+ tools/compression (e.g. gzip , bzip2 )
@@ -492,8 +417,7 @@ args.stdenv.mkDerivation (args // {
- tools/security (e.g. nmap ,
- gnupg )
+ tools/security (e.g. nmap , gnupg )
@@ -532,8 +456,7 @@ args.stdenv.mkDerivation (args // {
- servers/http (e.g.
- apache-httpd )
+ servers/http (e.g. apache-httpd )
@@ -543,8 +466,7 @@ args.stdenv.mkDerivation (args // {
- servers/x11 (e.g. xorg —
- this includes the client libraries and programs)
+ servers/x11 (e.g. xorg — this includes the client libraries and programs)
@@ -567,8 +489,7 @@ args.stdenv.mkDerivation (args // {
- desktops (e.g. kde ,
- gnome , enlightenment )
+ desktops (e.g. kde , gnome , enlightenment )
@@ -578,8 +499,7 @@ args.stdenv.mkDerivation (args // {
- applications/window-managers (e.g.
- awesome , stumpwm )
+ applications/window-managers (e.g. awesome , stumpwm )
@@ -589,8 +509,7 @@ args.stdenv.mkDerivation (args // {
- A (typically large) program with a distinct user interface, primarily
- used interactively.
+ A (typically large) program with a distinct user interface, primarily used interactively.
@@ -599,8 +518,7 @@ args.stdenv.mkDerivation (args // {
- applications/version-management (e.g.
- subversion )
+ applications/version-management (e.g. subversion )
@@ -610,8 +528,7 @@ args.stdenv.mkDerivation (args // {
- applications/video (e.g.
- vlc )
+ applications/video (e.g. vlc )
@@ -621,8 +538,7 @@ args.stdenv.mkDerivation (args // {
- applications/graphics (e.g.
- gimp )
+ applications/graphics (e.g. gimp )
@@ -638,8 +554,7 @@ args.stdenv.mkDerivation (args // {
- applications/networking/mailreaders (e.g.
- thunderbird )
+ applications/networking/mailreaders (e.g. thunderbird )
@@ -649,8 +564,7 @@ args.stdenv.mkDerivation (args // {
- applications/networking/newsreaders (e.g.
- pan )
+ applications/networking/newsreaders (e.g. pan )
@@ -660,8 +574,7 @@ args.stdenv.mkDerivation (args // {
- applications/networking/browsers (e.g.
- firefox )
+ applications/networking/browsers (e.g. firefox )
@@ -719,8 +632,7 @@ args.stdenv.mkDerivation (args // {
- data/sgml+xml/schemas/xml-dtd (e.g.
- docbook )
+ data/sgml+xml/schemas/xml-dtd (e.g. docbook )
@@ -733,8 +645,7 @@ args.stdenv.mkDerivation (args // {
(Okay, these are executable...)
- data/sgml+xml/stylesheets/xslt (e.g.
- docbook-xsl )
+ data/sgml+xml/stylesheets/xslt (e.g. docbook-xsl )
@@ -771,36 +682,15 @@ args.stdenv.mkDerivation (args // {
Versioning
- Because every version of a package in Nixpkgs creates a potential
- maintenance burden, old versions of a package should not be kept unless
- there is a good reason to do so. For instance, Nixpkgs contains several
- versions of GCC because other packages don’t build with the latest
- version of GCC. Other examples are having both the latest stable and latest
- pre-release version of a package, or to keep several major releases of an
- application that differ significantly in functionality.
+ Because every version of a package in Nixpkgs creates a potential maintenance burden, old versions of a package should not be kept unless there is a good reason to do so. For instance, Nixpkgs contains several versions of GCC because other packages don’t build with the latest version of GCC. Other examples are having both the latest stable and latest pre-release version of a package, or to keep several major releases of an application that differ significantly in functionality.
- If there is only one version of a package, its Nix expression should be
- named e2fsprogs/default.nix . If there are multiple
- versions, this should be reflected in the filename, e.g.
- e2fsprogs/1.41.8.nix and
- e2fsprogs/1.41.9.nix . The version in the filename
- should leave out unnecessary detail. For instance, if we keep the latest
- Firefox 2.0.x and 3.5.x versions in Nixpkgs, they should be named
- firefox/2.0.nix and
- firefox/3.5.nix , respectively (which, at a given
- point, might contain versions 2.0.0.20 and
- 3.5.4 ). If a version requires many auxiliary files, you
- can use a subdirectory for each version, e.g.
- firefox/2.0/default.nix and
- firefox/3.5/default.nix .
+ If there is only one version of a package, its Nix expression should be named e2fsprogs/default.nix . If there are multiple versions, this should be reflected in the filename, e.g. e2fsprogs/1.41.8.nix and e2fsprogs/1.41.9.nix . The version in the filename should leave out unnecessary detail. For instance, if we keep the latest Firefox 2.0.x and 3.5.x versions in Nixpkgs, they should be named firefox/2.0.nix and firefox/3.5.nix , respectively (which, at a given point, might contain versions 2.0.0.20 and 3.5.4 ). If a version requires many auxiliary files, you can use a subdirectory for each version, e.g. firefox/2.0/default.nix and firefox/3.5/default.nix .
- All versions of a package must be included in
- all-packages.nix to make sure that they evaluate
- correctly.
+ All versions of a package must be included in all-packages.nix to make sure that they evaluate correctly.
@@ -808,25 +698,15 @@ args.stdenv.mkDerivation (args // {
Fetching Sources
- There are multiple ways to fetch a package source in nixpkgs. The general
- guideline is that you should package reproducible sources with a high degree
- of availability. Right now there is only one fetcher which has mirroring
- support and that is fetchurl . Note that you should also
- prefer protocols which have a corresponding proxy environment variable.
+ There are multiple ways to fetch a package source in nixpkgs. The general guideline is that you should package reproducible sources with a high degree of availability. Right now there is only one fetcher which has mirroring support and that is fetchurl . Note that you should also prefer protocols which have a corresponding proxy environment variable.
- You can find many source fetch helpers in
- pkgs/build-support/fetch* .
+ You can find many source fetch helpers in pkgs/build-support/fetch* .
- In the file pkgs/top-level/all-packages.nix you can find
- fetch helpers, these have names on the form fetchFrom* .
- The intention of these are to provide snapshot fetches but using the same
- api as some of the version controlled fetchers from
- pkgs/build-support/ . As an example going from bad to
- good:
+ In the file pkgs/top-level/all-packages.nix you can find fetch helpers, these have names on the form fetchFrom* . The intention of these are to provide snapshot fetches but using the same api as some of the version controlled fetchers from pkgs/build-support/ . As an example going from bad to good:
@@ -863,11 +743,7 @@ src = fetchFromGitHub {
sha256 = "1i2yxndxb6yc9l6c99pypbd92lfq5aac4klq7y2v93c9qvx2cgpc";
}
- Find the value to put as sha256 by running
- nix run -f '<nixpkgs>' nix-prefetch-github -c
- nix-prefetch-github --rev 1f795f9f44607cc5bec70d1300150bfefcef2aae NixOS
- nix or nix-prefetch-url --unpack
- https://github.com/NixOS/nix/archive/1f795f9f44607cc5bec70d1300150bfefcef2aae.tar.gz .
+ Find the value to put as sha256 by running nix run -f '<nixpkgs>' nix-prefetch-github -c nix-prefetch-github --rev 1f795f9f44607cc5bec70d1300150bfefcef2aae NixOS nix or nix-prefetch-url --unpack https://github.com/NixOS/nix/archive/1f795f9f44607cc5bec70d1300150bfefcef2aae.tar.gz .
@@ -883,40 +759,23 @@ src = fetchFromGitHub {
- Prefetch URL (with nix-prefetch-XXX
- URL , where
- XXX is one of url ,
- git , hg , cvs ,
- bzr , svn ). Hash is printed to
- stdout.
+ Prefetch URL (with nix-prefetch-XXX URL , where XXX is one of url , git , hg , cvs , bzr , svn ). Hash is printed to stdout.
- Prefetch by package source (with nix-prefetch-url
- '<nixpkgs>' -A PACKAGE .src ,
- where PACKAGE is package attribute name). Hash
- is printed to stdout.
+ Prefetch by package source (with nix-prefetch-url '<nixpkgs>' -A PACKAGE .src , where PACKAGE is package attribute name). Hash is printed to stdout.
- This works well when you've upgraded existing package version and want to
- find out new hash, but is useless if package can't be accessed by
- attribute or package has multiple sources (.srcs ,
- architecture-dependent sources, etc).
+ This works well when you've upgraded existing package version and want to find out new hash, but is useless if package can't be accessed by attribute or package has multiple sources (.srcs , architecture-dependent sources, etc).
- Upstream provided hash: use it when upstream provides
- sha256 or sha512 (when upstream
- provides md5 , don't use it, compute
- sha256 instead).
+ Upstream provided hash: use it when upstream provides sha256 or sha512 (when upstream provides md5 , don't use it, compute sha256 instead).
- A little nuance is that nix-prefetch-* tools produce
- hash encoded with base32 , but upstream usually provides
- hexadecimal (base16 ) encoding. Fetchers understand both
- formats. Nixpkgs does not standardize on any one format.
+ A little nuance is that nix-prefetch-* tools produce hash encoded with base32 , but upstream usually provides hexadecimal (base16 ) encoding. Fetchers understand both formats. Nixpkgs does not standardize on any one format.
You can convert between formats with nix-hash, for example:
@@ -927,28 +786,18 @@ src = fetchFromGitHub {
- Extracting hash from local source tarball can be done with
- sha256sum . Use nix-prefetch-url
- file:///path/to/tarball if you want base32 hash.
+ Extracting hash from local source tarball can be done with sha256sum . Use nix-prefetch-url file:///path/to/tarball if you want base32 hash.
- Fake hash: set fake hash in package expression, perform build and extract
- correct hash from error Nix prints.
+ Fake hash: set fake hash in package expression, perform build and extract correct hash from error Nix prints.
- For package updates it is enough to change one symbol to make hash fake.
- For new packages, you can use lib.fakeSha256 ,
- lib.fakeSha512 or any other fake hash.
+ For package updates it is enough to change one symbol to make hash fake. For new packages, you can use lib.fakeSha256 , lib.fakeSha512 or any other fake hash.
- This is last resort method when reconstructing source URL is non-trivial
- and nix-prefetch-url -A isn't applicable (for example,
-
- one of kodi dependencies). The easiest way then
- would be replace hash with a fake one and rebuild. Nix build will fail and
- error message will contain desired hash.
+ This is last resort method when reconstructing source URL is non-trivial and nix-prefetch-url -A isn't applicable (for example, one of kodi dependencies). The easiest way then would be replace hash with a fake one and rebuild. Nix build will fail and error message will contain desired hash.
@@ -962,9 +811,7 @@ src = fetchFromGitHub {
Obtaining hashes securely
- Let's say Man-in-the-Middle (MITM) sits close to your network. Then instead
- of fetching source you can fetch malware, and instead of source hash you
- get hash of malware. Here are security considerations for this scenario:
+ Let's say Man-in-the-Middle (MITM) sits close to your network. Then instead of fetching source you can fetch malware, and instead of source hash you get hash of malware. Here are security considerations for this scenario:
@@ -975,8 +822,7 @@ src = fetchFromGitHub {
- hashes from upstream (in method 3) should be obtained via secure
- protocol;
+ hashes from upstream (in method 3) should be obtained via secure protocol;
@@ -986,12 +832,7 @@ src = fetchFromGitHub {
- https:// URLs are not secure in method 5. When
- obtaining hashes with fake hash method, TLS checks are disabled. So
- refetch source hash from several different networks to exclude MITM
- scenario. Alternatively, use fake hash method to make Nix error, but
- instead of extracting hash from error, extract
- https:// URL and prefetch it with method 1.
+ https:// URLs are not secure in method 5. When obtaining hashes with fake hash method, TLS checks are disabled. So refetch source hash from several different networks to exclude MITM scenario. Alternatively, use fake hash method to make Nix error, but instead of extracting hash from error, extract https:// URL and prefetch it with method 1.
@@ -1001,8 +842,7 @@ src = fetchFromGitHub {
Patches
- Patches available online should be retrieved using
- fetchpatch .
+ Patches available online should be retrieved using fetchpatch .
@@ -1018,10 +858,7 @@ patches = [
- Otherwise, you can add a .patch file to the
- nixpkgs repository. In the interest of keeping our
- maintenance burden to a minimum, only patches that are unique to
- nixpkgs should be added in this way.
+ Otherwise, you can add a .patch file to the nixpkgs repository. In the interest of keeping our maintenance burden to a minimum, only patches that are unique to nixpkgs should be added in this way.
@@ -1031,8 +868,7 @@ patches = [ ./0001-changes.patch ];
- If you do need to do create this sort of patch file, one way to do so is
- with git:
+ If you do need to do create this sort of patch file, one way to do so is with git:
@@ -1043,8 +879,7 @@ patches = [ ./0001-changes.patch ];
- If a git repository is not already present, create one and stage all of
- the source files.
+ If a git repository is not already present, create one and stage all of the source files.
$ git init
$ git add .
@@ -1052,8 +887,7 @@ patches = [ ./0001-changes.patch ];
- Edit some files to make whatever changes need to be included in the
- patch.
+ Edit some files to make whatever changes need to be included in the patch.
diff --git a/doc/contributing.xml b/doc/contributing/contributing-to-documentation.xml
similarity index 71%
rename from doc/contributing.xml
rename to doc/contributing/contributing-to-documentation.xml
index 523c1c9c8f0..b0266043775 100644
--- a/doc/contributing.xml
+++ b/doc/contributing/contributing-to-documentation.xml
@@ -3,10 +3,8 @@
xml:id="chap-contributing">
Contributing to this documentation
- The DocBook sources of the Nixpkgs manual are in the
- doc
- subdirectory of the Nixpkgs repository.
+ The DocBook sources of the Nixpkgs manual are in the doc subdirectory of the Nixpkgs repository.
You can quickly check your edits with make :
@@ -17,19 +15,16 @@ xlink:href="https://github.com/NixOS/nixpkgs/tree/master/doc">doc
[nix-shell]$ make
- If you experience problems, run make debug to help
- understand the docbook errors.
+ If you experience problems, run make debug to help understand the docbook errors.
- After making modifications to the manual, it's important to build it before
- committing. You can do that as follows:
+ After making modifications to the manual, it's important to build it before committing. You can do that as follows:
$ cd /path/to/nixpkgs/doc
$ nix-shell
[nix-shell]$ make clean
[nix-shell]$ nix-build .
- If the build succeeds, the manual will be in
- ./result/share/doc/nixpkgs/manual.html .
+ If the build succeeds, the manual will be in ./result/share/doc/nixpkgs/manual.html .
diff --git a/doc/quick-start.xml b/doc/contributing/quick-start.xml
similarity index 52%
rename from doc/quick-start.xml
rename to doc/contributing/quick-start.xml
index 292d66864a4..80514cba490 100644
--- a/doc/quick-start.xml
+++ b/doc/contributing/quick-start.xml
@@ -15,120 +15,75 @@
- Find a good place in the Nixpkgs tree to add the Nix expression for your
- package. For instance, a library package typically goes into
- pkgs/development/libraries/pkgname ,
- while a web browser goes into
- pkgs/applications/networking/browsers/pkgname .
- See for some hints on the tree
- organisation. Create a directory for your package, e.g.
+ Find a good place in the Nixpkgs tree to add the Nix expression for your package. For instance, a library package typically goes into pkgs/development/libraries/pkgname , while a web browser goes into pkgs/applications/networking/browsers/pkgname . See for some hints on the tree organisation. Create a directory for your package, e.g.
$ mkdir pkgs/development/libraries/libfoo
- In the package directory, create a Nix expression — a piece of code that
- describes how to build the package. In this case, it should be a
- function that is called with the package dependencies
- as arguments, and returns a build of the package in the Nix store. The
- expression should usually be called default.nix .
+ In the package directory, create a Nix expression — a piece of code that describes how to build the package. In this case, it should be a function that is called with the package dependencies as arguments, and returns a build of the package in the Nix store. The expression should usually be called default.nix .
$ emacs pkgs/development/libraries/libfoo/default.nix
$ git add pkgs/development/libraries/libfoo/default.nix
- You can have a look at the existing Nix expressions under
- pkgs/ to see how it’s done. Here are some good
- ones:
+ You can have a look at the existing Nix expressions under pkgs/ to see how it’s done. Here are some good ones:
- GNU Hello:
- pkgs/applications/misc/hello/default.nix .
- Trivial package, which specifies some meta
- attributes which is good practice.
+ GNU Hello: pkgs/applications/misc/hello/default.nix . Trivial package, which specifies some meta attributes which is good practice.
- GNU cpio:
- pkgs/tools/archivers/cpio/default.nix .
- Also a simple package. The generic builder in stdenv
- does everything for you. It has no dependencies beyond
- stdenv .
+ GNU cpio: pkgs/tools/archivers/cpio/default.nix . Also a simple package. The generic builder in stdenv does everything for you. It has no dependencies beyond stdenv .
- GNU Multiple Precision arithmetic library (GMP):
- pkgs/development/libraries/gmp/5.1.x.nix .
- Also done by the generic builder, but has a dependency on
- m4 .
+ GNU Multiple Precision arithmetic library (GMP): pkgs/development/libraries/gmp/5.1.x.nix . Also done by the generic builder, but has a dependency on m4 .
- Pan, a GTK-based newsreader:
- pkgs/applications/networking/newsreaders/pan/default.nix .
- Has an optional dependency on gtkspell , which is
- only built if spellCheck is true .
+ Pan, a GTK-based newsreader: pkgs/applications/networking/newsreaders/pan/default.nix . Has an optional dependency on gtkspell , which is only built if spellCheck is true .
- Apache HTTPD:
- pkgs/servers/http/apache-httpd/2.4.nix .
- A bunch of optional features, variable substitutions in the configure
- flags, a post-install hook, and miscellaneous hackery.
+ Apache HTTPD: pkgs/servers/http/apache-httpd/2.4.nix . A bunch of optional features, variable substitutions in the configure flags, a post-install hook, and miscellaneous hackery.
- Thunderbird:
- pkgs/applications/networking/mailreaders/thunderbird/default.nix .
- Lots of dependencies.
+ Thunderbird: pkgs/applications/networking/mailreaders/thunderbird/default.nix . Lots of dependencies.
- JDiskReport, a Java utility:
- pkgs/tools/misc/jdiskreport/default.nix
- (and the
- builder).
- Nixpkgs doesn’t have a decent stdenv for Java yet
- so this is pretty ad-hoc.
+ JDiskReport, a Java utility: pkgs/tools/misc/jdiskreport/default.nix (and the builder). Nixpkgs doesn’t have a decent stdenv for Java yet so this is pretty ad-hoc.
- XML::Simple, a Perl module:
- pkgs/top-level/perl-packages.nix
- (search for the XMLSimple attribute). Most Perl
- modules are so simple to build that they are defined directly in
- perl-packages.nix ; no need to make a separate file
- for them.
+ XML::Simple, a Perl module: pkgs/top-level/perl-packages.nix (search for the XMLSimple attribute). Most Perl modules are so simple to build that they are defined directly in perl-packages.nix ; no need to make a separate file for them.
- Adobe Reader:
- pkgs/applications/misc/adobe-reader/default.nix .
- Shows how binary-only packages can be supported. In particular the
- builder
- uses patchelf to set the RUNPATH and ELF interpreter
- of the executables so that the right libraries are found at runtime.
+ Adobe Reader: pkgs/applications/misc/adobe-reader/default.nix . Shows how binary-only packages can be supported. In particular the builder uses patchelf to set the RUNPATH and ELF interpreter of the executables so that the right libraries are found at runtime.
@@ -138,67 +93,45 @@
- All meta attributes are
- optional, but it’s still a good idea to provide at least the
- description , homepage and
- meta attributes are optional, but it’s still a good idea to provide at least the description , homepage and license .
- You can use nix-prefetch-url
- url to get the SHA-256 hash of source
- distributions. There are similar commands as
- nix-prefetch-git and
- nix-prefetch-hg available in
- nix-prefetch-scripts package.
+ You can use nix-prefetch-url url to get the SHA-256 hash of source distributions. There are similar commands as nix-prefetch-git and nix-prefetch-hg available in nix-prefetch-scripts package.
- A list of schemes for mirror:// URLs can be found in
- mirror:// URLs can be found in pkgs/build-support/fetchurl/mirrors.nix .
- The exact syntax and semantics of the Nix expression language, including
- the built-in function, are described in the Nix manual in the
- chapter
- on writing Nix expressions.
+ The exact syntax and semantics of the Nix expression language, including the built-in function, are described in the Nix manual in the chapter on writing Nix expressions.
- Add a call to the function defined in the previous step to
- pkgs/top-level/all-packages.nix
- with some descriptive name for the variable, e.g.
- libfoo .
+ Add a call to the function defined in the previous step to pkgs/top-level/all-packages.nix with some descriptive name for the variable, e.g. libfoo .
$ emacs pkgs/top-level/all-packages.nix
- The attributes in that file are sorted by category (like “Development /
- Libraries”) that more-or-less correspond to the directory structure of
- Nixpkgs, and then by attribute name.
+ The attributes in that file are sorted by category (like “Development / Libraries”) that more-or-less correspond to the directory structure of Nixpkgs, and then by attribute name.
- To test whether the package builds, run the following command from the
- root of the nixpkgs source tree:
+ To test whether the package builds, run the following command from the root of the nixpkgs source tree:
$ nix-build -A libfoo
- where libfoo should be the variable name defined in the
- previous step. You may want to add the flag -K to keep
- the temporary build directory in case something fails. If the build
- succeeds, a symlink ./result to the package in the
- Nix store is created.
+ where libfoo should be the variable name defined in the previous step. You may want to add the flag -K to keep the temporary build directory in case something fails. If the build succeeds, a symlink ./result to the package in the Nix store is created.
@@ -211,11 +144,8 @@
Optionally commit the new package and open a pull request to nixpkgs, or
- use
- the Patches category on Discourse for sending a patch without a
- GitHub account.
+ xlink:href="https://github.com/NixOS/nixpkgs/pulls">to nixpkgs, or use the Patches category on Discourse for sending a patch without a GitHub account.
diff --git a/doc/reviewing-contributions.xml b/doc/contributing/reviewing-contributions.xml
similarity index 71%
rename from doc/reviewing-contributions.xml
rename to doc/contributing/reviewing-contributions.xml
index 5aa950625ef..ed8f379c460 100644
--- a/doc/reviewing-contributions.xml
+++ b/doc/contributing/reviewing-contributions.xml
@@ -2,72 +2,44 @@
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
version="5.0"
- xml:id="sec-reviewing-contributions">
+ xml:id="chap-reviewing-contributions">
Reviewing contributions
- The following section is a draft, and the policy for reviewing is still
- being discussed in issues such as
- #11166
- and
- #20836
- .
+ The following section is a draft, and the policy for reviewing is still being discussed in issues such as #11166 and #20836 .
- The Nixpkgs project receives a fairly high number of contributions via GitHub
- pull requests. Reviewing and approving these is an important task and a way
- to contribute to the project.
+ The Nixpkgs project receives a fairly high number of contributions via GitHub pull requests. Reviewing and approving these is an important task and a way to contribute to the project.
- The high change rate of Nixpkgs makes any pull request that remains open for
- too long subject to conflicts that will require extra work from the submitter
- or the merger. Reviewing pull requests in a timely manner and being
- responsive to the comments is the key to avoid this issue. GitHub provides
- sort filters that can be used to see the
- most
- recently and the
- least
- recently updated pull requests. We highly encourage looking at
-
- this list of ready to merge, unreviewed pull requests.
+ The high change rate of Nixpkgs makes any pull request that remains open for too long subject to conflicts that will require extra work from the submitter or the merger. Reviewing pull requests in a timely manner and being responsive to the comments is the key to avoid this issue. GitHub provides sort filters that can be used to see the most recently and the least recently updated pull requests. We highly encourage looking at this list of ready to merge, unreviewed pull requests.
- When reviewing a pull request, please always be nice and polite.
- Controversial changes can lead to controversial opinions, but it is important
- to respect every community member and their work.
+ When reviewing a pull request, please always be nice and polite. Controversial changes can lead to controversial opinions, but it is important to respect every community member and their work.
- GitHub provides reactions as a simple and quick way to provide feedback to
- pull requests or any comments. The thumb-down reaction should be used with
- care and if possible accompanied with some explanation so the submitter has
- directions to improve their contribution.
+ GitHub provides reactions as a simple and quick way to provide feedback to pull requests or any comments. The thumb-down reaction should be used with care and if possible accompanied with some explanation so the submitter has directions to improve their contribution.
- pull request reviews should include a list of what has been reviewed in a
- comment, so other reviewers and mergers can know the state of the review.
+ pull request reviews should include a list of what has been reviewed in a comment, so other reviewers and mergers can know the state of the review.
- All the review template samples provided in this section are generic and
- meant as examples. Their usage is optional and the reviewer is free to adapt
- them to their liking.
+ All the review template samples provided in this section are generic and meant as examples. Their usage is optional and the reviewer is free to adapt them to their liking.
Package updates
- A package update is the most trivial and common type of pull request. These
- pull requests mainly consist of updating the version part of the package
- name and the source hash.
+ A package update is the most trivial and common type of pull request. These pull requests mainly consist of updating the version part of the package name and the source hash.
- It can happen that non-trivial updates include patches or more complex
- changes.
+ It can happen that non-trivial updates include patches or more complex changes.
@@ -82,8 +54,7 @@
- 8.has: package (update) and any topic label that fit
- the updated package.
+ 8.has: package (update) and any topic label that fit the updated package.
@@ -105,9 +76,7 @@
- CODEOWNERS
- will make GitHub notify users based on the submitted changes, but it can
- happen that it misses some of the package maintainers.
+ CODEOWNERS will make GitHub notify users based on the submitted changes, but it can happen that it misses some of the package maintainers.
@@ -119,15 +88,12 @@
- License can change with version updates, so it should be checked to
- match the upstream license.
+ License can change with version updates, so it should be checked to match the upstream license.
- If the package has no maintainer, a maintainer must be set. This can be
- the update submitter or a community member that accepts to take
- maintainership of the package.
+ If the package has no maintainer, a maintainer must be set. This can be the update submitter or a community member that accepts to take maintainership of the package.
@@ -144,29 +110,17 @@
- pull requests are often targeted to the master or staging branch, and
- building the pull request locally when it is submitted can trigger many
- source builds.
+ pull requests are often targeted to the master or staging branch, and building the pull request locally when it is submitted can trigger many source builds.
- It is possible to rebase the changes on nixos-unstable or
- nixpkgs-unstable for easier review by running the following commands
- from a nixpkgs clone.
+ It is possible to rebase the changes on nixos-unstable or nixpkgs-unstable for easier review by running the following commands from a nixpkgs clone.
-$ git remote add channels https://github.com/NixOS/nixpkgs-channels.git
-$ git fetch channels nixos-unstable
+$ git fetch origin nixos-unstable
$ git fetch origin pull/PRNUMBER/head
$ git rebase --onto nixos-unstable BASEBRANCH FETCH_HEAD
-
-
- This should be done only once to be able to fetch channel branches
- from the nixpkgs-channels repository.
-
-
Fetching the nixos-unstable branch.
@@ -174,9 +128,7 @@
- Fetching the pull request changes, PRNUMBER is the
- number at the end of the pull request title and
- BASEBRANCH the base branch of the pull request.
+ Fetching the pull request changes, PRNUMBER is the number at the end of the pull request title and BASEBRANCH the base branch of the pull request.
@@ -189,12 +141,7 @@
- The
- nix-review
- tool can be used to review a pull request content in a single command.
- PRNUMBER should be replaced by the number at the end
- of the pull request title. You can also provide the full github pull
- request url.
+ The nix-review tool can be used to review a pull request content in a single command. PRNUMBER should be replaced by the number at the end of the pull request title. You can also provide the full github pull request url.
$ nix-shell -p nix-review --run "nix-review pr PRNUMBER"
@@ -231,8 +178,7 @@
New packages
- New packages are a common type of pull requests. These pull requests
- consists in adding a new nix-expression for a package.
+ New packages are a common type of pull requests. These pull requests consists in adding a new nix-expression for a package.
@@ -247,8 +193,7 @@
- 8.has: package (new) and any topic label that fit the
- new package.
+ 8.has: package (new) and any topic label that fit the new package.
@@ -280,8 +225,7 @@
- A maintainer must be set. This can be the package submitter or a
- community member that accepts to take maintainership of the package.
+ A maintainer must be set. This can be the package submitter or a community member that accepts to take maintainership of the package.
@@ -303,8 +247,7 @@
- The most appropriate function should be used (e.g. packages from GitHub
- should use fetchFromGitHub ).
+ The most appropriate function should be used (e.g. packages from GitHub should use fetchFromGitHub ).
@@ -351,8 +294,7 @@
Module updates
- Module updates are submissions changing modules in some ways. These often
- contains changes to the options or introduce new options.
+ Module updates are submissions changing modules in some ways. These often contains changes to the options or introduce new options.
@@ -367,8 +309,7 @@
- 8.has: module (update) and any topic label that fit
- the module.
+ 8.has: module (update) and any topic label that fit the module.
@@ -380,9 +321,7 @@
- CODEOWNERS
- will make GitHub notify users based on the submitted changes, but it can
- happen that it misses some of the package maintainers.
+ CODEOWNERS will make GitHub notify users based on the submitted changes, but it can happen that it misses some of the package maintainers.
@@ -399,9 +338,7 @@
- Type should be appropriate (string related types differs in their
- merging capabilities, optionSet and
- string types are deprecated).
+ Type should be appropriate (string related types differs in their merging capabilities, optionSet and string types are deprecated).
@@ -418,23 +355,19 @@
- mkRenamedOptionModule and
- mkAliasOptionModule functions provide way to make
- option changes backward compatible.
+ mkRenamedOptionModule and mkAliasOptionModule functions provide way to make option changes backward compatible.
- Ensure that removed options are declared with
- mkRemovedOptionModule
+ Ensure that removed options are declared with mkRemovedOptionModule
- Ensure that changes that are not backward compatible are mentioned in
- release notes.
+ Ensure that changes that are not backward compatible are mentioned in release notes.
@@ -480,8 +413,7 @@
- 8.has: module (new) and any topic label that fit the
- module.
+ 8.has: module (new) and any topic label that fit the module.
@@ -498,9 +430,7 @@
- Type should be appropriate (string related types differs in their
- merging capabilities, optionSet and
- string types are deprecated).
+ Type should be appropriate (string related types differs in their merging capabilities, optionSet and string types are deprecated).
@@ -522,8 +452,7 @@
- Module documentation should be declared with
- meta.doc .
+ Module documentation should be declared with meta.doc .
@@ -535,8 +464,7 @@
- For example, enabling a module should not open firewall ports by
- default.
+ For example, enabling a module should not open firewall ports by default.
@@ -573,25 +501,18 @@
- If you consider having enough knowledge and experience in a topic and would
- like to be a long-term reviewer for related submissions, please contact the
- current reviewers for that topic. They will give you information about the
- reviewing process. The main reviewers for a topic can be hard to find as
- there is no list, but checking past pull requests to see who reviewed or
- git-blaming the code to see who committed to that topic can give some hints.
+ If you consider having enough knowledge and experience in a topic and would like to be a long-term reviewer for related submissions, please contact the current reviewers for that topic. They will give you information about the reviewing process. The main reviewers for a topic can be hard to find as there is no list, but checking past pull requests to see who reviewed or git-blaming the code to see who committed to that topic can give some hints.
- Container system, boot system and library changes are some examples of the
- pull requests fitting this category.
+ Container system, boot system and library changes are some examples of the pull requests fitting this category.
Merging pull requests
- It is possible for community members that have enough knowledge and
- experience on a special topic to contribute by merging pull requests.
+ It is possible for community members that have enough knowledge and experience on a special topic to contribute by merging pull requests.
@@ -608,12 +529,8 @@ policy.
-->
- In a case a contributor definitively leaves the Nix community, they should
- create an issue or post on
- Discourse with
- references of packages and modules they maintain so the maintainership can
- be taken over by other contributors.
+ In a case a contributor definitively leaves the Nix community, they should create an issue or post on Discourse with references of packages and modules they maintain so the maintainership can be taken over by other contributors.
diff --git a/doc/submitting-changes.xml b/doc/contributing/submitting-changes.xml
similarity index 56%
rename from doc/submitting-changes.xml
rename to doc/contributing/submitting-changes.xml
index a04ec08b048..950e1ea974a 100644
--- a/doc/submitting-changes.xml
+++ b/doc/contributing/submitting-changes.xml
@@ -8,8 +8,7 @@
- Read Manual (How to
- write packages for Nix).
+ Read Manual (How to write packages for Nix).
@@ -23,15 +22,11 @@
- You can make branch from a commit of your local
- nixos-version . That will help you to avoid
- additional local compilations. Because you will receive packages from
- binary cache.
+ You can make branch from a commit of your local nixos-version . That will help you to avoid additional local compilations. Because you will receive packages from binary cache.
- For example: nixos-version returns
- 15.05.git.0998212 (Dingo) . So you can do:
+ For example: nixos-version returns 15.05.git.0998212 (Dingo) . So you can do:
@@ -55,9 +50,7 @@
- If you removed pkgs, made some major NixOS changes etc., write about
- them in
- nixos/doc/manual/release-notes/rl-unstable.xml .
+ If you removed pkgs, made some major NixOS changes etc., write about them in nixos/doc/manual/release-notes/rl-unstable.xml .
@@ -65,8 +58,7 @@
- Check for unnecessary whitespace with git diff --check
- before committing.
+ Check for unnecessary whitespace with git diff --check before committing.
@@ -121,8 +113,7 @@ Additional information.
- nix-env -i pkg-name -f <path to your local nixpkgs
- folder>
+ nix-env -i pkg-name -f <path to your local nixpkgs folder>
@@ -134,14 +125,12 @@ Additional information.
- Make sure it's in
- pkgs/top-level/all-packages.nix
+ Make sure it's in pkgs/top-level/all-packages.nix
- nix-env -i pkg-name -f <path to your local nixpkgs
- folder>
+ nix-env -i pkg-name -f <path to your local nixpkgs folder>
@@ -149,15 +138,11 @@ Additional information.
- If you don't want to install pkg in you
- profile .
+ If you don't want to install pkg in you profile .
- nix-build -A pkg-attribute-name <path to your local
- nixpkgs folder>/default.nix and check results in the
- folder result . It will appear in the same
- directory where you did nix-build .
+ nix-build -A pkg-attribute-name <path to your local nixpkgs folder>/default.nix and check results in the folder result . It will appear in the same directory where you did nix-build .
@@ -165,9 +150,7 @@ Additional information.
- If you did nix-env -i pkg-name you can do
- nix-env -e pkg-name to uninstall it from your
- system.
+ If you did nix-env -i pkg-name you can do nix-env -e pkg-name to uninstall it from your system.
@@ -179,10 +162,7 @@ Additional information.
- You can add new module to your NixOS configuration file (usually
- it's /etc/nixos/configuration.nix ). And do
- sudo nixos-rebuild test -I nixpkgs=<path to your local
- nixpkgs folder> --fast .
+ You can add new module to your NixOS configuration file (usually it's /etc/nixos/configuration.nix ). And do sudo nixos-rebuild test -I nixpkgs=<path to your local nixpkgs folder> --fast .
@@ -193,9 +173,7 @@ Additional information.
- If you have commits pkg-name: oh, forgot to insert
- whitespace : squash commits in this case. Use git rebase
- -i .
+ If you have commits pkg-name: oh, forgot to insert whitespace : squash commits in this case. Use git rebase -i .
@@ -220,8 +198,7 @@ Additional information.
- Write the title in format (pkg-name | nixos/<module>):
- improvement .
+ Write the title in format (pkg-name | nixos/<module>): improvement .
@@ -233,8 +210,7 @@ Additional information.
- Write in comment if you have tested your patch. Do not rely much on
- TravisCI .
+ Write in comment if you have tested your patch. Do not rely much on TravisCI .
@@ -244,8 +220,7 @@ Additional information.
- Notify maintainers of the package. For example add to the message:
- cc @jagajaga @domenkozar .
+ Notify maintainers of the package. For example add to the message: cc @jagajaga @domenkozar .
@@ -253,69 +228,71 @@ Additional information.
+
+ Submitting security fixes
+
+
+ Security fixes are submitted in the same way as other changes and thus the same guidelines apply.
+
+
+
+ If the security fix comes in the form of a patch and a CVE is available, then the name of the patch should be the CVE identifier, so e.g. CVE-2019-13636.patch in the case of a patch that is included in the Nixpkgs tree. If a patch is fetched the name needs to be set as well, e.g.:
+
+
+
+ (fetchpatch {
+ name = "CVE-2019-11068.patch";
+ url = "https://gitlab.gnome.org/GNOME/libxslt/commit/e03553605b45c88f0b4b2980adfbbb8f6fca2fd6.patch";
+ sha256 = "0pkpb4837km15zgg6h57bncp66d5lwrlvkr73h0lanywq7zrwhj8";
+ })
+
+
+
+ If a security fix applies to both master and a stable release then, similar to regular changes, they are preferably delivered via master first and cherry-picked to the release branch.
+
+
+
+ Critical security fixes may by-pass the staging branches and be delivered directly to release branches such as master and release-* .
+
+
Pull Request Template
- The pull request template helps determine what steps have been made for a
- contribution so far, and will help guide maintainers on the status of a
- change. The motivation section of the PR should include any extra details
- the title does not address and link any existing issues related to the pull
- request.
+ The pull request template helps determine what steps have been made for a contribution so far, and will help guide maintainers on the status of a change. The motivation section of the PR should include any extra details the title does not address and link any existing issues related to the pull request.
- When a PR is created, it will be pre-populated with some checkboxes detailed
- below:
+ When a PR is created, it will be pre-populated with some checkboxes detailed below:
Tested using sandboxing
- When sandbox builds are enabled, Nix will setup an isolated environment for
- each build process. It is used to remove further hidden dependencies set by
- the build environment to improve reproducibility. This includes access to
- the network during the build outside of fetch*
- functions and files outside the Nix store. Depending on the operating
- system access to other resources are blocked as well (ex. inter process
- communication is isolated on Linux); see
- build-use-sandbox
- in Nix manual for details.
+ When sandbox builds are enabled, Nix will setup an isolated environment for each build process. It is used to remove further hidden dependencies set by the build environment to improve reproducibility. This includes access to the network during the build outside of fetch* functions and files outside the Nix store. Depending on the operating system access to other resources are blocked as well (ex. inter process communication is isolated on Linux); see sandbox in Nix manual for details.
- Sandboxing is not enabled by default in Nix due to a small performance hit
- on each build. In pull requests for
- nixpkgs
- people are asked to test builds with sandboxing enabled (see
- Tested using sandboxing in the pull request template)
- because
- in https://nixos.org/hydra/
- sandboxing is also used.
+ Sandboxing is not enabled by default in Nix due to a small performance hit on each build. In pull requests for nixpkgs people are asked to test builds with sandboxing enabled (see Tested using sandboxing in the pull request template) because in https://nixos.org/hydra/ sandboxing is also used.
- Depending if you use NixOS or other platforms you can use one of the
- following methods to enable sandboxing
- before building the package:
+ Depending if you use NixOS or other platforms you can use one of the following methods to enable sandboxing before building the package:
- Globally enable sandboxing on NixOS :
- add the following to configuration.nix
+ Globally enable sandboxing on NixOS : add the following to configuration.nix
nix.useSandbox = true;
- Globally enable sandboxing on non-NixOS
- platforms : add the following to:
- /etc/nix/nix.conf
-build-use-sandbox = true
+ Globally enable sandboxing on non-NixOS platforms : add the following to: /etc/nix/nix.conf
+sandbox = true
@@ -326,11 +303,7 @@ Additional information.
Built on platform(s)
- Many Nix packages are designed to run on multiple platforms. As such, it's
- important to let the maintainer know which platforms your changes have been
- tested on. It's not always practical to test a change on all platforms, and
- is not required for a pull request to be merged. Only check the systems you
- tested the build on in this section.
+ Many Nix packages are designed to run on multiple platforms. As such, it's important to let the maintainer know which platforms your changes have been tested on. It's not always practical to test a change on all platforms, and is not required for a pull request to be merged. Only check the systems you tested the build on in this section.
@@ -338,15 +311,8 @@ Additional information.
Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
- Packages with automated tests are much more likely to be merged in a timely
- fashion because it doesn't require as much manual testing by the maintainer
- to verify the functionality of the package. If there are existing tests for
- the package, they should be run to verify your changes do not break the
- tests. Tests only apply to packages with NixOS modules defined and can only
- be run on Linux. For more details on writing and running tests, see the
- section
- in the NixOS manual.
+ Packages with automated tests are much more likely to be merged in a timely fashion because it doesn't require as much manual testing by the maintainer to verify the functionality of the package. If there are existing tests for the package, they should be run to verify your changes do not break the tests. Tests only apply to packages with NixOS modules defined and can only be run on Linux. For more details on writing and running tests, see the section in the NixOS manual.
@@ -354,21 +320,22 @@ Additional information.
Tested compilation of all pkgs that depend on this change using nix-review
- If you are updating a package's version, you can use nix-review to make
- sure all packages that depend on the updated package still compile
- correctly. The nix-review utility can look for and build
- all dependencies either based on uncommited changes with the
- wip option or specifying a github pull request number.
+ If you are updating a package's version, you can use nix-review to make sure all packages that depend on the updated package still compile correctly. The nix-review utility can look for and build all dependencies either based on uncommited changes with the wip option or specifying a github pull request number.
review changes from pull request number 12345:
-nix-shell -p nix-review --run "nix-review pr 12345"
+ nix run nixpkgs.nix-review -c nix-review pr 12345
review uncommitted changes:
-nix-shell -p nix-review --run "nix-review wip"
+ nix run nixpkgs.nix-review -c nix-review wip
+
+
+
+ review changes from last commit:
+ nix run nixpkgs.nix-review -c nix-review rev HEAD
@@ -376,13 +343,7 @@ Additional information.
Tested execution of all binary files (usually in ./result/bin/ )
- It's important to test any executables generated by a build when you change
- or create a package in nixpkgs. This can be done by looking in
- ./result/bin and running any files in there, or at a
- minimum, the main executable for the package. For example, if you make a
- change to texlive , you probably would only check the
- binaries associated with the change you made rather than testing all of
- them.
+ It's important to test any executables generated by a build when you change or create a package in nixpkgs. This can be done by looking in ./result/bin and running any files in there, or at a minimum, the main executable for the package. For example, if you make a change to texlive , you probably would only check the binaries associated with the change you made rather than testing all of them.
@@ -390,14 +351,8 @@ Additional information.
Meets Nixpkgs contribution standards
- The last checkbox is fits
- CONTRIBUTING.md.
- The contributing document has detailed information on standards the Nix
- community has for commit messages, reviews, licensing of contributions you
- make to the project, etc... Everyone should read and understand the
- standards the community has for contributing before submitting a pull
- request.
+ The last checkbox is fits CONTRIBUTING.md. The contributing document has detailed information on standards the Nix community has for commit messages, reviews, licensing of contributions you make to the project, etc... Everyone should read and understand the standards the community has for contributing before submitting a pull request.
@@ -435,61 +390,49 @@ Additional information.
- Commits must be sufficiently tested before being merged, both for the
- master and staging branches.
+ Commits must be sufficiently tested before being merged, both for the master and staging branches.
- Hydra builds for master and staging should not be used as testing
- platform, it's a build farm for changes that have been already tested.
+ Hydra builds for master and staging should not be used as testing platform, it's a build farm for changes that have been already tested.
- When changing the bootloader installation process, extra care must be
- taken. Grub installations cannot be rolled back, hence changes may break
- people's installations forever. For any non-trivial change to the
- bootloader please file a PR asking for review, especially from @edolstra.
+ When changing the bootloader installation process, extra care must be taken. Grub installations cannot be rolled back, hence changes may break people's installations forever. For any non-trivial change to the bootloader please file a PR asking for review, especially from @edolstra.
Master branch
-
-
-
-
- It should only see non-breaking commits that do not cause mass rebuilds.
-
-
-
+
+ The master branch is the main development branch.
+ It should only see non-breaking commits that do not cause mass rebuilds.
+
Staging branch
+
+ The staging branch is a development branch where mass-rebuilds go.
+ It should only see non-breaking mass-rebuild commits.
+ That means it is not to be used for testing, and changes must have been well tested already.
+ If the branch is already in a broken state, please refrain from adding extra new breakages.
+
+
-
-
-
- It's only for non-breaking mass-rebuild commits. That means it's not to
- be used for testing, and changes must have been well tested already.
- Read
- policy here.
-
-
-
-
- If the branch is already in a broken state, please refrain from adding
- extra new breakages. Stabilize it for a few days, merge into master, then
- resume development on staging.
- Keep
- an eye on the staging evaluations here. If any fixes for staging
- happen to be already in master, then master can be merged into staging.
-
-
-
+
+ Staging-next branch
+
+ The staging-next branch is for stabilizing mass-rebuilds submitted to the staging branch prior to merging them into master .
+ Mass-rebuilds should go via the staging branch.
+ It should only see non-breaking commits that are fixing issues blocking it from being merged into the master branch.
+
+
+ If the branch is already in a broken state, please refrain from adding extra new breakages. Stabilize it for a few days and then merge into master.
+
@@ -498,10 +441,7 @@ Additional information.
- If you're cherry-picking a commit to a stable release branch, 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.
+ 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.
An example of a cherry-picked commit would look like this:
diff --git a/doc/cross-compilation.xml b/doc/cross-compilation.xml
deleted file mode 100644
index b7844da195d..00000000000
--- a/doc/cross-compilation.xml
+++ /dev/null
@@ -1,678 +0,0 @@
-
- Cross-compilation
-
- Introduction
-
-
- "Cross-compilation" means compiling a program on one machine for another
- type of machine. For example, a typical use of cross-compilation is to
- compile programs for embedded devices. These devices often don't have the
- computing power and memory to compile their own programs. One might think
- that cross-compilation is a fairly niche concern. However, there are
- significant advantages to rigorously distinguishing between build-time and
- run-time environments! Significant, because the benefits apply even when one
- is developing and deploying on the same machine. Nixpkgs is increasingly
- adopting the opinion that packages should be written with cross-compilation
- in mind, and nixpkgs should evaluate in a similar way (by minimizing
- cross-compilation-specific special cases) whether or not one is
- cross-compiling.
-
-
-
- This chapter will be organized in three parts. First, it will describe the
- basics of how to package software in a way that supports cross-compilation.
- Second, it will describe how to use Nixpkgs when cross-compiling. Third, it
- will describe the internal infrastructure supporting cross-compilation.
-
-
-
-
- Packaging in a cross-friendly manner
-
-
- Platform parameters
-
-
- Nixpkgs follows the
- conventions
- of GNU autoconf. We distinguish between 3 types of platforms when
- building a derivation: build ,
- host , and target . In
- summary, build is the platform on which a package
- is being built, host is the platform on which it
- will run. The third attribute, target , is relevant
- only for certain specific compilers and build tools.
-
-
-
- In Nixpkgs, these three platforms are defined as attribute sets under the
- names buildPlatform , hostPlatform ,
- and targetPlatform . They are always defined as
- attributes in the standard environment. That means one can access them
- like:
-{ stdenv, fooDep, barDep, .. }: ...stdenv.buildPlatform...
- .
-
-
-
-
-
- buildPlatform
-
-
-
- The "build platform" is the platform on which a package is built. Once
- someone has a built package, or pre-built binary package, the build
- platform should not matter and can be ignored.
-
-
-
-
-
- hostPlatform
-
-
-
- The "host platform" is the platform on which a package will be run. This
- is the simplest platform to understand, but also the one with the worst
- name.
-
-
-
-
-
- targetPlatform
-
-
-
- The "target platform" attribute is, unlike the other two attributes, not
- actually fundamental to the process of building software. Instead, it is
- only relevant for compatibility with building certain specific compilers
- and build tools. It can be safely ignored for all other packages.
-
-
- The build process of certain compilers is written in such a way that the
- compiler resulting from a single build can itself only produce binaries
- for a single platform. The task of specifying this single "target
- platform" is thus pushed to build time of the compiler. The root cause
- of this is that the compiler (which will be run on the host) and the
- standard library/runtime (which will be run on the target) are built by
- a single build process.
-
-
- There is no fundamental need to think about a single target ahead of
- time like this. If the tool supports modular or pluggable backends, both
- the need to specify the target at build time and the constraint of
- having only a single target disappear. An example of such a tool is
- LLVM.
-
-
- Although the existence of a "target platfom" is arguably a historical
- mistake, it is a common one: examples of tools that suffer from it are
- GCC, Binutils, GHC and Autoconf. Nixpkgs tries to avoid sharing in the
- mistake where possible. Still, because the concept of a target platform
- is so ingrained, it is best to support it as is.
-
-
-
-
-
-
- The exact schema these fields follow is a bit ill-defined due to a long and
- convoluted evolution, but this is slowly being cleaned up. You can see
- examples of ones used in practice in
- lib.systems.examples ; note how they are not all very
- consistent. For now, here are few fields can count on them containing:
-
-
-
-
-
- system
-
-
-
- This is a two-component shorthand for the platform. Examples of this
- would be "x86_64-darwin" and "i686-linux"; see
- lib.systems.doubles for more. The first component
- corresponds to the CPU architecture of the platform and the second to
- the operating system of the platform ([cpu]-[os] ).
- This format has built-in support in Nix, such as the
- builtins.currentSystem impure string.
-
-
-
-
-
- config
-
-
-
- This is a 3- or 4- component shorthand for the platform. Examples of
- this would be x86_64-unknown-linux-gnu and
- aarch64-apple-darwin14 . This is a standard format
- called the "LLVM target triple", as they are pioneered by LLVM. In the
- 4-part form, this corresponds to
- [cpu]-[vendor]-[os]-[abi] . This format is strictly
- more informative than the "Nix host double", as the previous format
- could analogously be termed. This needs a better name than
- config !
-
-
-
-
-
- parsed
-
-
-
- This is a Nix representation of a parsed LLVM target triple with
- white-listed components. This can be specified directly, or actually
- parsed from the config . See
- lib.systems.parse for the exact representation.
-
-
-
-
-
- libc
-
-
-
- This is a string identifying the standard C library used. Valid
- identifiers include "glibc" for GNU libc, "libSystem" for Darwin's
- Libsystem, and "uclibc" for µClibc. It should probably be refactored to
- use the module system, like parse .
-
-
-
-
-
- is*
-
-
-
- These predicates are defined in lib.systems.inspect ,
- and slapped onto every platform. They are superior to the ones in
- stdenv as they force the user to be explicit about
- which platform they are inspecting. Please use these instead of those.
-
-
-
-
-
- platform
-
-
-
- This is, quite frankly, a dumping ground of ad-hoc settings (it's an
- attribute set). See lib.systems.platforms for
- examples—there's hopefully one in there that will work verbatim for
- each platform that is working. Please help us triage these flags and
- give them better homes!
-
-
-
-
-
-
-
- Theory of dependency categorization
-
-
-
- This is a rather philosophical description that isn't very
- Nixpkgs-specific. For an overview of all the relevant attributes given to
- mkDerivation , see
- . For a description of how
- everything is implemented, see
- .
-
-
-
-
- In this section we explore the relationship between both runtime and
- build-time dependencies and the 3 Autoconf platforms.
-
-
-
- A run time dependency between two packages requires that their host
- platforms match. This is directly implied by the meaning of "host platform"
- and "runtime dependency": The package dependency exists while both packages
- are running on a single host platform.
-
-
-
- A build time dependency, however, has a shift in platforms between the
- depending package and the depended-on package. "build time dependency"
- means that to build the depending package we need to be able to run the
- depended-on's package. The depending package's build platform is therefore
- equal to the depended-on package's host platform.
-
-
-
- If both the dependency and depending packages aren't compilers or other
- machine-code-producing tools, we're done. And indeed
- buildInputs and nativeBuildInputs
- have covered these simpler build-time and run-time (respectively) changes
- for many years. But if the dependency does produce machine code, we might
- need to worry about its target platform too. In principle, that target
- platform might be any of the depending package's build, host, or target
- platforms, but we prohibit dependencies from a "later" platform to an
- earlier platform to limit confusion because we've never seen a legitimate
- use for them.
-
-
-
- Finally, if the depending package is a compiler or other
- machine-code-producing tool, it might need dependencies that run at "emit
- time". This is for compilers that (regrettably) insist on being built
- together with their source langauges' standard libraries. Assuming build !=
- host != target, a run-time dependency of the standard library cannot be run
- at the compiler's build time or run time, but only at the run time of code
- emitted by the compiler.
-
-
-
- Putting this all together, that means we have dependencies in the form
- "host → target", in at most the following six combinations:
-
- Possible dependency types
-
-
- Dependency's host platform
- Dependency's target platform
-
-
-
-
- build
- build
-
-
- build
- host
-
-
- build
- target
-
-
- host
- host
-
-
- host
- target
-
-
- target
- target
-
-
-
-
-
-
- Some examples will make this table clearer. Suppose there's some package
- that is being built with a (build, host, target)
- platform triple of (foo, bar, baz) . If it has a
- build-time library dependency, that would be a "host → build" dependency
- with a triple of (foo, foo, *) (the target platform is
- irrelevant). If it needs a compiler to be built, that would be a "build →
- host" dependency with a triple of (foo, foo, *) (the
- target platform is irrelevant). That compiler, would be built with another
- compiler, also "build → host" dependency, with a triple of (foo,
- foo, foo) .
-
-
-
-
- Cross packaging cookbook
-
-
- Some frequently encountered problems when packaging for cross-compilation
- should be answered here. Ideally, the information above is exhaustive, so
- this section cannot provide any new information, but it is ludicrous and
- cruel to expect everyone to spend effort working through the interaction of
- many features just to figure out the same answer to the same common
- problem. Feel free to add to this list!
-
-
-
-
-
-
- What if my package's build system needs to build a C program to be run
- under the build environment?
-
-
-
-
-depsBuildBuild = [ buildPackages.stdenv.cc ];
- Add it to your mkDerivation invocation.
-
-
-
-
-
-
- My package fails to find ar .
-
-
-
-
- Many packages assume that an unprefixed ar is
- available, but Nix doesn't provide one. It only provides a prefixed one,
- just as it only does for all the other binutils programs. It may be
- necessary to patch the package to fix the build system to use a prefixed
- `ar`.
-
-
-
-
-
-
- My package's testsuite needs to run host platform code.
-
-
-
-
-doCheck = stdenv.hostPlatform != stdenv.buildPlatfrom;
- Add it to your mkDerivation invocation.
-
-
-
-
-
-
-
-
- Cross-building packages
-
-
- Nixpkgs can be instantiated with localSystem alone, in
- which case there is no cross-compiling and everything is built by and for
- that system, or also with crossSystem , in which case
- packages run on the latter, but all building happens on the former. Both
- parameters take the same schema as the 3 (build, host, and target) platforms
- defined in the previous section. As mentioned above,
- lib.systems.examples has some platforms which are used as
- arguments for these parameters in practice. You can use them
- programmatically, or on the command line:
-
-nix-build <nixpkgs> --arg crossSystem '(import <nixpkgs/lib>).systems.examples.fooBarBaz' -A whatever
-
-
-
-
- Eventually we would like to make these platform examples an unnecessary
- convenience so that
-
-nix-build <nixpkgs> --arg crossSystem '{ config = "<arch>-<os>-<vendor>-<abi>"; }' -A whatever
- works in the vast majority of cases. The problem today is dependencies on
- other sorts of configuration which aren't given proper defaults. We rely on
- the examples to crudely to set those configuration parameters in some
- vaguely sane manner on the users behalf. Issue
- #34274
- tracks this inconvenience along with its root cause in crufty configuration
- options.
-
-
-
-
- While one is free to pass both parameters in full, there's a lot of logic to
- fill in missing fields. As discussed in the previous section, only one of
- system , config , and
- parsed is needed to infer the other two. Additionally,
- libc will be inferred from parse .
- Finally, localSystem.system is also
- impurely inferred based on the platform evaluation
- occurs. This means it is often not necessary to pass
- localSystem at all, as in the command-line example in the
- previous paragraph.
-
-
-
-
- Many sources (manual, wiki, etc) probably mention passing
- system , platform , along with the
- optional crossSystem to nixpkgs: import
- <nixpkgs> { system = ..; platform = ..; crossSystem = ..;
- } . Passing those two instead of localSystem is
- still supported for compatibility, but is discouraged. Indeed, much of the
- inference we do for these parameters is motivated by compatibility as much
- as convenience.
-
-
-
-
- One would think that localSystem and
- crossSystem overlap horribly with the three
- *Platforms (buildPlatform ,
- hostPlatform, and targetPlatform ; see
- stage.nix or the manual). Actually, those identifiers are
- purposefully not used here to draw a subtle but important distinction: While
- the granularity of having 3 platforms is necessary to properly *build*
- packages, it is overkill for specifying the user's *intent* when making a
- build plan or package set. A simple "build vs deploy" dichotomy is adequate:
- the sliding window principle described in the previous section shows how to
- interpolate between the these two "end points" to get the 3 platform triple
- for each bootstrapping stage. That means for any package a given package
- set, even those not bound on the top level but only reachable via
- dependencies or buildPackages , the three platforms will
- be defined as one of localSystem or
- crossSystem , with the former replacing the latter as one
- traverses build-time dependencies. A last simple difference is that
- crossSystem should be null when one doesn't want to
- cross-compile, while the *Platform s are always non-null.
- localSystem is always non-null.
-
-
-
-
- Cross-compilation infrastructure
-
-
- Implementation of dependencies
-
-
- The categorizes of dependencies developed in
- are specified as
- lists of derivations given to mkDerivation , as
- documented in . In short,
- each list of dependencies for "host → target" of "foo → bar" is called
- depsFooBar , with exceptions for backwards
- compatibility that depsBuildHost is instead called
- nativeBuildInputs and depsHostTarget
- is instead called buildInputs . Nixpkgs is now structured
- so that each depsFooBar is automatically taken from
- pkgsFooBar . (These pkgsFooBar s are
- quite new, so there is no special case for
- nativeBuildInputs and buildInputs .)
- For example, pkgsBuildHost.gcc should be used at
- build-time, while pkgsHostTarget.gcc should be used at
- run-time.
-
-
-
- Now, for most of Nixpkgs's history, there were no
- pkgsFooBar attributes, and most packages have not been
- refactored to use it explicitly. Prior to those, there were just
- buildPackages , pkgs , and
- targetPackages . Those are now redefined as aliases to
- pkgsBuildHost , pkgsHostTarget , and
- pkgsTargetTarget . It is acceptable, even
- recommended, to use them for libraries to show that the host platform is
- irrelevant.
-
-
-
- But before that, there was just pkgs , even though both
- buildInputs and nativeBuildInputs
- existed. [Cross barely worked, and those were implemented with some hacks
- on mkDerivation to override dependencies.] What this
- means is the vast majority of packages do not use any explicit package set
- to populate their dependencies, just using whatever
- callPackage gives them even if they do correctly sort
- their dependencies into the multiple lists described above. And indeed,
- asking that users both sort their dependencies, and
- take them from the right attribute set, is both too onerous and redundant,
- so the recommended approach (for now) is to continue just categorizing by
- list and not using an explicit package set.
-
-
-
- To make this work, we "splice" together the six
- pkgsFooBar package sets and have
- callPackage actually take its arguments from that. This
- is currently implemented in pkgs/top-level/splice.nix .
- mkDerivation then, for each dependency attribute, pulls
- the right derivation out from the splice. This splicing can be skipped when
- not cross-compiling as the package sets are the same, but still is a bit
- slow for cross-compiling. We'd like to do something better, but haven't
- come up with anything yet.
-
-
-
-
- Bootstrapping
-
-
- Each of the package sets described above come from a single bootstrapping
- stage. While pkgs/top-level/default.nix , coordinates
- the composition of stages at a high level,
- pkgs/top-level/stage.nix "ties the knot" (creates the
- fixed point) of each stage. The package sets are defined per-stage however,
- so they can be thought of as edges between stages (the nodes) in a graph.
- Compositions like pkgsBuildTarget.targetPackages can be
- thought of as paths to this graph.
-
-
-
- While there are many package sets, and thus many edges, the stages can also
- be arranged in a linear chain. In other words, many of the edges are
- redundant as far as connectivity is concerned. This hinges on the type of
- bootstrapping we do. Currently for cross it is:
-
-
-
- (native, native, native)
-
-
-
-
- (native, native, foreign)
-
-
-
-
- (native, foreign, foreign)
-
-
-
- In each stage, pkgsBuildHost refers the the previous
- stage, pkgsBuildBuild refers to the one before that, and
- pkgsHostTarget refers to the current one, and
- pkgsTargetTarget refers to the next one. When there is
- no previous or next stage, they instead refer to the current stage. Note
- how all the invariants regarding the mapping between dependency and depending
- packages' build host and target platforms are preserved.
- pkgsBuildTarget and pkgsHostHost are
- more complex in that the stage fitting the requirements isn't always a
- fixed chain of "prevs" and "nexts" away (modulo the "saturating"
- self-references at the ends). We just special case each instead. All the primary
- edges are implemented is in pkgs/stdenv/booter.nix ,
- and secondarily aliases in pkgs/top-level/stage.nix .
-
-
-
-
- Note the native stages are bootstrapped in legacy ways that predate the
- current cross implementation. This is why the the bootstrapping stages
- leading up to the final stages are ignored inthe previous paragraph.
-
-
-
-
- If one looks at the 3 platform triples, one can see that they overlap such
- that one could put them together into a chain like:
-
-(native, native, native, foreign, foreign)
-
- If one imagines the saturating self references at the end being replaced
- with infinite stages, and then overlays those platform triples, one ends up
- with the infinite tuple:
-
-(native..., native, native, native, foreign, foreign, foreign...)
-
- On can then imagine any sequence of platforms such that there are bootstrap
- stages with their 3 platforms determined by "sliding a window" that is the
- 3 tuple through the sequence. This was the original model for
- bootstrapping. Without a target platform (assume a better world where all
- compilers are multi-target and all standard libraries are built in their
- own derivation), this is sufficient. Conversely if one wishes to cross
- compile "faster", with a "Canadian Cross" bootstraping stage where
- build != host != target , more bootstrapping stages are
- needed since no sliding window providess the pesky
- pkgsBuildTarget package set since it skips the Canadian
- cross stage's "host".
-
-
-
-
- It is much better to refer to buildPackages than
- targetPackages , or more broadly package sets that do
- not mention "target". There are three reasons for this.
-
-
- First, it is because bootstrapping stages do not have a unique
- targetPackages . For example a (x86-linux,
- x86-linux, arm-linux) and (x86-linux, x86-linux,
- x86-windows) package set both have a (x86-linux,
- x86-linux, x86-linux) package set. Because there is no canonical
- targetPackages for such a native (build ==
- host == target ) package set, we set their
- targetPackages
-
-
- Second, it is because this is a frequent source of hard-to-follow
- "infinite recursions" / cycles. When only package sets that don't mention
- target are used, the package set forms a directed acyclic graph. This
- means that all cycles that exist are confined to one stage. This means
- they are a lot smaller, and easier to follow in the code or a backtrace. It
- also means they are present in native and cross builds alike, and so more
- likely to be caught by CI and other users.
-
-
- Thirdly, it is because everything target-mentioning only exists to
- accommodate compilers with lousy build systems that insist on the compiler
- itself and standard library being built together. Of course that is bad
- because bigger derivations means longer rebuilds. It is also problematic because
- it tends to make the standard libraries less like other libraries than
- they could be, complicating code and build systems alike. Because of the
- other problems, and because of these innate disadvantages, compilers ought
- to be packaged another way where possible.
-
-
-
-
-
- If one explores Nixpkgs, they will see derivations with names like
- gccCross . Such *Cross derivations is
- a holdover from before we properly distinguished between the host and
- target platforms—the derivation with "Cross" in the name covered the
- build = host != target case, while the other covered
- the host = target , with build platform the same or not
- based on whether one was using its .nativeDrv or
- .crossDrv . This ugliness will disappear soon.
-
-
-
-
-
diff --git a/doc/doc-support/parameters.xml b/doc/doc-support/parameters.xml
index bc13e2b70de..e4b33e66ee4 100644
--- a/doc/doc-support/parameters.xml
+++ b/doc/doc-support/parameters.xml
@@ -8,7 +8,7 @@
-
+
diff --git a/doc/functions.xml b/doc/functions.xml
index 96bd95958ea..5a9240ec800 100644
--- a/doc/functions.xml
+++ b/doc/functions.xml
@@ -4,21 +4,11 @@
xml:id="chap-functions">
Functions reference
- The nixpkgs repository has several utility functions to manipulate Nix
- expressions.
+ The nixpkgs repository has several utility functions to manipulate Nix expressions.
-
-
-
-
-
-
-
-
-
diff --git a/doc/functions/debug.xml b/doc/functions/debug.xml
index c6b3611eea5..c27421f12e7 100644
--- a/doc/functions/debug.xml
+++ b/doc/functions/debug.xml
@@ -5,17 +5,10 @@
Debugging Nix Expressions
- Nix is a unityped, dynamic language, this means every value can potentially
- appear anywhere. Since it is also non-strict, evaluation order and what
- ultimately is evaluated might surprise you. Therefore it is important to be
- able to debug nix expressions.
+ Nix is a unityped, dynamic language, this means every value can potentially appear anywhere. Since it is also non-strict, evaluation order and what ultimately is evaluated might surprise you. Therefore it is important to be able to debug nix expressions.
- In the lib/debug.nix file you will find a number of
- functions that help (pretty-)printing values while evaluation is runnnig. You
- can even specify how deep these values should be printed recursively, and
- transform them on the fly. Please consult the docstrings in
- lib/debug.nix for usage information.
+ In the lib/debug.nix file you will find a number of functions that help (pretty-)printing values while evaluation is runnnig. You can even specify how deep these values should be printed recursively, and transform them on the fly. Please consult the docstrings in lib/debug.nix for usage information.
diff --git a/doc/functions/fetchers.xml b/doc/functions/fetchers.xml
deleted file mode 100644
index a736008c9d4..00000000000
--- a/doc/functions/fetchers.xml
+++ /dev/null
@@ -1,194 +0,0 @@
-
- Fetcher functions
-
-
- When using Nix, you will frequently need to download source code and other
- files from the internet. Nixpkgs comes with a few helper functions that allow
- you to fetch fixed-output derivations in a structured way.
-
-
-
- The two fetcher primitives are fetchurl and
- fetchzip . Both of these have two required arguments, a
- URL and a hash. The hash is typically sha256 , although
- many more hash algorithms are supported. Nixpkgs contributors are currently
- recommended to use sha256 . This hash will be used by Nix
- to identify your source. A typical usage of fetchurl is provided below.
-
-
-
-
-
- The main difference between fetchurl and
- fetchzip is in how they store the contents.
- fetchurl will store the unaltered contents of the URL
- within the Nix store. fetchzip on the other hand will
- decompress the archive for you, making files and directories directly
- accessible in the future. fetchzip can only be used with
- archives. Despite the name, fetchzip is not limited to
- .zip files and can also be used with any tarball.
-
-
-
- fetchpatch works very similarly to
- fetchurl with the same arguments expected. It expects
- patch files as a source and and performs normalization on them before
- computing the checksum. For example it will remove comments or other unstable
- parts that are sometimes added by version control systems and can change over
- time.
-
-
-
- Other fetcher functions allow you to add source code directly from a VCS such
- as subversion or git. These are mostly straightforward names based on the
- name of the command used with the VCS system. Because they give you a working
- repository, they act most like fetchzip .
-
-
-
-
-
- fetchsvn
-
-
-
- Used with Subversion. Expects url to a Subversion
- directory, rev , and sha256 .
-
-
-
-
-
- fetchgit
-
-
-
- Used with Git. Expects url to a Git repo,
- rev , and sha256 .
- rev in this case can be full the git commit id (SHA1
- hash) or a tag name like refs/tags/v1.0 .
-
-
-
-
-
- fetchfossil
-
-
-
- Used with Fossil. Expects url to a Fossil archive,
- rev , and sha256 .
-
-
-
-
-
- fetchcvs
-
-
-
- Used with CVS. Expects cvsRoot , tag ,
- and sha256 .
-
-
-
-
-
- fetchhg
-
-
-
- Used with Mercurial. Expects url ,
- rev , and sha256 .
-
-
-
-
-
-
- A number of fetcher functions wrap part of fetchurl and
- fetchzip . They are mainly convenience functions intended
- for commonly used destinations of source code in Nixpkgs. These wrapper
- fetchers are listed below.
-
-
-
-
-
- fetchFromGitHub
-
-
-
- fetchFromGitHub expects four arguments.
- owner is a string corresponding to the GitHub user or
- organization that controls this repository. repo
- corresponds to the name of the software repository. These are located at
- the top of every GitHub HTML page as
- owner /repo . rev
- corresponds to the Git commit hash or tag (e.g v1.0 )
- that will be downloaded from Git. Finally, sha256
- corresponds to the hash of the extracted directory. Again, other hash
- algorithms are also available but sha256 is currently
- preferred.
-
-
-
-
-
- fetchFromGitLab
-
-
-
- This is used with GitLab repositories. The arguments expected are very
- similar to fetchFromGitHub above.
-
-
-
-
-
- fetchFromBitbucket
-
-
-
- This is used with BitBucket repositories. The arguments expected are very
- similar to fetchFromGitHub above.
-
-
-
-
-
- fetchFromSavannah
-
-
-
- This is used with Savannah repositories. The arguments expected are very
- similar to fetchFromGitHub above.
-
-
-
-
-
- fetchFromRepoOrCz
-
-
-
- This is used with repo.or.cz repositories. The arguments expected are very
- similar to fetchFromGitHub above.
-
-
-
-
-
diff --git a/doc/functions/generators.xml b/doc/functions/generators.xml
index e860b10e897..9ce1f85eb17 100644
--- a/doc/functions/generators.xml
+++ b/doc/functions/generators.xml
@@ -5,28 +5,15 @@
Generators
- Generators are functions that create file formats from nix data structures,
- e. g. for configuration files. There are generators available for:
- INI , JSON and YAML
+ Generators are functions that create file formats from nix data structures, e. g. for configuration files. There are generators available for: INI , JSON and YAML
- All generators follow a similar call interface: generatorName
- configFunctions data
, where configFunctions is an
- attrset of user-defined functions that format nested parts of the content.
- They each have common defaults, so often they do not need to be set manually.
- An example is mkSectionName ? (name: libStr.escape [ "[" "]" ]
- name)
from the INI generator. It receives the name
- of a section and sanitizes it. The default mkSectionName
- escapes [ and ] with a backslash.
+ All generators follow a similar call interface: generatorName configFunctions data
, where configFunctions is an attrset of user-defined functions that format nested parts of the content. They each have common defaults, so often they do not need to be set manually. An example is mkSectionName ? (name: libStr.escape [ "[" "]" ] name)
from the INI generator. It receives the name of a section and sanitizes it. The default mkSectionName escapes [ and ] with a backslash.
- Generators can be fine-tuned to produce exactly the file format required by
- your application/service. One example is an INI-file format which uses
- : as separator, the strings
- "yes" /"no" as boolean values and
- requires all string values to be quoted:
+ Generators can be fine-tuned to produce exactly the file format required by your application/service. One example is an INI-file format which uses : as separator, the strings "yes" /"no" as boolean values and requires all string values to be quoted:
@@ -77,13 +64,11 @@ merge:"diff3"
- Nix store paths can be converted to strings by enclosing a derivation
- attribute like so: "${drv}"
.
+ Nix store paths can be converted to strings by enclosing a derivation attribute like so: "${drv}"
.
- Detailed documentation for each generator can be found in
- lib/generators.nix .
+ Detailed documentation for each generator can be found in lib/generators.nix .
diff --git a/doc/functions/library.xml b/doc/functions/library.xml
index e6aedaa6efd..6ffb944b5a6 100644
--- a/doc/functions/library.xml
+++ b/doc/functions/library.xml
@@ -5,8 +5,7 @@
Nixpkgs Library Functions
- Nixpkgs provides a standard library at pkgs.lib , or
- through import <nixpkgs/lib>
.
+ Nixpkgs provides a standard library at pkgs.lib , or through import <nixpkgs/lib>
.
diff --git a/doc/functions/library/asserts.xml b/doc/functions/library/asserts.xml
index 437850e408b..10891039e86 100644
--- a/doc/functions/library/asserts.xml
+++ b/doc/functions/library/asserts.xml
@@ -27,8 +27,7 @@
- Condition under which the msg should
- not be printed.
+ Condition under which the msg should not be printed.
@@ -64,9 +63,7 @@ stderr> assert failed
- Specialized asserts.assertMsg for checking if
- val is one of the elements of xs .
- Useful for checking enums.
+ Specialized asserts.assertMsg for checking if val is one of the elements of xs . Useful for checking enums.
@@ -76,8 +73,7 @@ stderr> assert failed
- The name of the variable the user entered val into,
- for inclusion in the error message.
+ The name of the variable the user entered val into, for inclusion in the error message.
@@ -87,8 +83,7 @@ stderr> assert failed
- The value of what the user provided, to be compared against the values in
- xs .
+ The value of what the user provided, to be compared against the values in xs .
diff --git a/doc/functions/library/attrsets.xml b/doc/functions/library/attrsets.xml
index 65d0b40e2e8..f9234069392 100644
--- a/doc/functions/library/attrsets.xml
+++ b/doc/functions/library/attrsets.xml
@@ -23,8 +23,7 @@
- A list of strings representing the path through the nested attribute set
- set .
+ A list of strings representing the path through the nested attribute set set .
@@ -34,8 +33,7 @@
- Default value if attrPath does not resolve to an
- existing value.
+ Default value if attrPath does not resolve to an existing value.
@@ -88,8 +86,7 @@ lib.attrsets.attrByPath [ "a" "b" ] 0 {}
- A list of strings representing the path through the nested attribute set
- set .
+ A list of strings representing the path through the nested attribute set set .
@@ -125,8 +122,7 @@ lib.attrsets.hasAttrByPath
- Create a new attribute set with value set at the nested
- attribute location specified in attrPath .
+ Create a new attribute set with value set at the nested attribute location specified in attrPath .
@@ -146,8 +142,7 @@ lib.attrsets.hasAttrByPath
- The value to set at the location described by
- attrPath .
+ The value to set at the location described by attrPath .
@@ -171,8 +166,7 @@ lib.attrsets.setAttrByPath [ "a" "b" ] 3
- Like except
- without a default, and it will throw if the value doesn't exist.
+ Like except without a default, and it will throw if the value doesn't exist.
@@ -182,8 +176,7 @@ lib.attrsets.setAttrByPath [ "a" "b" ] 3
- A list of strings representing the path through the nested attribute set
- set .
+ A list of strings representing the path through the nested attribute set set .
@@ -235,8 +228,7 @@ lib.attrsets.getAttrFromPath [ "x" "y" ] { }
- The list of attributes to fetch from set . Each
- attribute name must exist on the attrbitue set.
+ The list of attributes to fetch from set . Each attribute name must exist on the attrbitue set.
@@ -282,8 +274,7 @@ error: attribute 'd' missing
- Provides a backwards-compatible interface of
- builtins.attrValues for Nix version older than 1.8.
+ Provides a backwards-compatible interface of builtins.attrValues for Nix version older than 1.8.
@@ -317,14 +308,11 @@ lib.attrsets.attrValues { a = 1; b = 2; c = 3; }
- Collect each attribute named `attr' from the list of attribute sets,
- sets . Sets that don't contain the named attribute are
- ignored.
+ Collect each attribute named `attr' from the list of attribute sets, sets . Sets that don't contain the named attribute are ignored.
- Provides a backwards-compatible interface of
- builtins.catAttrs for Nix version older than 1.9.
+ Provides a backwards-compatible interface of builtins.catAttrs for Nix version older than 1.9.
@@ -334,8 +322,7 @@ lib.attrsets.attrValues { a = 1; b = 2; c = 3; }
- Attribute name to select from each attribute set in
- sets .
+ Attribute name to select from each attribute set in sets .
@@ -372,8 +359,7 @@ catAttrs "a" [{a = 1;} {b = 0;} {a = 2;}]
- Filter an attribute set by removing all attributes for which the given
- predicate return false.
+ Filter an attribute set by removing all attributes for which the given predicate return false.
@@ -386,8 +372,7 @@ catAttrs "a" [{a = 1;} {b = 0;} {a = 2;}]
String -> Any -> Bool
- Predicate which returns true to include an attribute, or returns false to
- exclude it.
+ Predicate which returns true to include an attribute, or returns false to exclude it.
@@ -412,8 +397,7 @@ catAttrs "a" [{a = 1;} {b = 0;} {a = 2;}]
- Returns true to include the attribute,
- false to exclude the attribute.
+ Returns true to include the attribute, false to exclude the attribute.
@@ -447,8 +431,7 @@ filterAttrs (n: v: n == "foo") { foo = 1; bar = 2; }
- Filter an attribute set recursively by removing all attributes for which the
- given predicate return false.
+ Filter an attribute set recursively by removing all attributes for which the given predicate return false.
@@ -461,8 +444,7 @@ filterAttrs (n: v: n == "foo") { foo = 1; bar = 2; }
String -> Any -> Bool
- Predicate which returns true to include an attribute, or returns false to
- exclude it.
+ Predicate which returns true to include an attribute, or returns false to exclude it.
@@ -487,8 +469,7 @@ filterAttrs (n: v: n == "foo") { foo = 1; bar = 2; }
- Returns true to include the attribute,
- false to exclude the attribute.
+ Returns true to include the attribute, false to exclude the attribute.
@@ -557,8 +538,7 @@ lib.attrsets.filterAttrsRecursive
Any -> Any -> Any
- Given a value val and a collector
- col , combine the two.
+ Given a value val and a collector col , combine the two.
@@ -578,8 +558,7 @@ lib.attrsets.filterAttrsRecursive
- The result of previous op calls with other values
- and nul .
+ The result of previous op calls with other values and nul .
@@ -632,9 +611,7 @@ lib.attrsets.foldAttrs
- Recursively collect sets that verify a given predicate named
- pred from the set attrs . The recursion
- stops when pred returns true .
+ Recursively collect sets that verify a given predicate named pred from the set attrs . The recursion stops when pred returns true .
@@ -702,8 +679,7 @@ collect (x: x ? outPath)
- Utility function that creates a {name, value} pair as
- expected by builtins.listToAttrs .
+ Utility function that creates a {name, value} pair as expected by builtins.listToAttrs .
@@ -747,13 +723,11 @@ nameValuePair "some" 6
- Apply a function to each element in an attribute set, creating a new
- attribute set.
+ Apply a function to each element in an attribute set, creating a new attribute set.
- Provides a backwards-compatible interface of
- builtins.mapAttrs for Nix version older than 2.1.
+ Provides a backwards-compatible interface of builtins.mapAttrs for Nix version older than 2.1.
@@ -814,9 +788,7 @@ lib.attrsets.mapAttrs
- Like mapAttrs , but allows the name of each attribute to
- be changed in addition to the value. The applied function should return both
- the new name and value as a nameValuePair .
+ Like mapAttrs , but allows the name of each attribute to be changed in addition to the value. The applied function should return both the new name and value as a nameValuePair .
@@ -829,10 +801,8 @@ lib.attrsets.mapAttrs
String -> Any -> { name = String; value = Any }
- Given an attribute's name and value, return a new
- name
- value pair.
+ Given an attribute's name and value, return a new name value pair.
@@ -891,8 +861,7 @@ lib.attrsets.mapAttrs' (name: value: lib.attrsets.nameValuePair ("foo_" + name)
- Call fn for each attribute in the given
- set and return the result in a list.
+ Call fn for each attribute in the given set and return the result in a list.
@@ -962,9 +931,7 @@ lib.attrsets.mapAttrsToList (name: value: "${name}=${value}")
- Like mapAttrs , except that it recursively applies
- itself to attribute sets. Also, the first argument of the argument function
- is a list of the names of the containing attributes.
+ Like mapAttrs , except that it recursively applies itself to attribute sets. Also, the first argument of the argument function is a list of the names of the containing attributes.
@@ -989,10 +956,7 @@ lib.attrsets.mapAttrsToList (name: value: "${name}=${value}")
The list of attribute names to this value.
- For example, the name_path for the
- example string in the attribute set { foo
- = { bar = "example"; }; } is [ "foo" "bar"
- ] .
+ For example, the name_path for the example string in the attribute set { foo = { bar = "example"; }; } is [ "foo" "bar" ] .
@@ -1059,11 +1023,7 @@ mapAttrsRecursive
- Like mapAttrsRecursive , but it takes an additional
- predicate function that tells it whether to recursive into an attribute set.
- If it returns false, mapAttrsRecursiveCond does not
- recurse, but does apply the map function. It is returns true, it does
- recurse, and does not apply the map function.
+ Like mapAttrsRecursive , but it takes an additional predicate function that tells it whether to recursive into an attribute set. If it returns false, mapAttrsRecursiveCond does not recurse, but does apply the map function. It is returns true, it does recurse, and does not apply the map function.
@@ -1076,8 +1036,7 @@ mapAttrsRecursive
(AttrSet -> Bool)
- Determine if mapAttrsRecursive should recurse deeper
- in to the attribute set.
+ Determine if mapAttrsRecursive should recurse deeper in to the attribute set.
@@ -1114,10 +1073,7 @@ mapAttrsRecursive
The list of attribute names to this value.
- For example, the name_path for the
- example string in the attribute set { foo
- = { bar = "example"; }; } is [ "foo" "bar"
- ] .
+ For example, the name_path for the example string in the attribute set { foo = { bar = "example"; }; } is [ "foo" "bar" ] .
@@ -1181,8 +1137,7 @@ lib.attrsets.mapAttrsRecursiveCond
- Generate an attribute set by mapping a function over a list of attribute
- names.
+ Generate an attribute set by mapping a function over a list of attribute names.
@@ -1241,8 +1196,7 @@ lib.attrsets.genAttrs [ "foo" "bar" ] (name: "x_${name}")
- Check whether the argument is a derivation. Any set with { type =
- "derivation"; }
counts as a derivation.
+ Check whether the argument is a derivation. Any set with { type = "derivation"; }
counts as a derivation.
@@ -1320,8 +1274,7 @@ lib.attrsets.isDerivation "foobar"
- Condition under which the as attribute set is
- returned.
+ Condition under which the as attribute set is returned.
@@ -1363,8 +1316,7 @@ lib.attrsets.optionalAttrs false { my = "set"; }
- Merge sets of attributes and use the function f to merge
- attribute values where the attribute name is in names .
+ Merge sets of attributes and use the function f to merge attribute values where the attribute name is in names .
@@ -1451,11 +1403,8 @@ lib.attrsets.zipAttrsWithNames
- Merge sets of attributes and use the function f to merge
- attribute values. Similar to
- where
- all key names are passed for names .
+ Merge sets of attributes and use the function f to merge attribute values. Similar to where all key names are passed for names .
@@ -1531,9 +1480,7 @@ lib.attrsets.zipAttrsWith
- Merge sets of attributes and combine each attribute value in to a list.
- Similar to
- where the merge function returns a list of all values.
+ Merge sets of attributes and combine each attribute value in to a list. Similar to where the merge function returns a list of all values.
@@ -1573,12 +1520,7 @@ lib.attrsets.zipAttrs
- Does the same as the update operator // except that
- attributes are merged until the given predicate is verified. The predicate
- should accept 3 arguments which are the path to reach the attribute, a part
- of the first attribute set and a part of the second attribute set. When the
- predicate is verified, the value of the first attribute set is replaced by
- the value of the second attribute set.
+ Does the same as the update operator // except that attributes are merged until the given predicate is verified. The predicate should accept 3 arguments which are the path to reach the attribute, a part of the first attribute set and a part of the second attribute set. When the predicate is verified, the value of the first attribute set is replaced by the value of the second attribute set.
@@ -1681,10 +1623,7 @@ lib.attrsets.recursiveUpdateUntil (path: l: r: path == ["foo"])
- A recursive variant of the update operator // . The
- recursion stops when one of the attribute values is not an attribute set, in
- which case the right hand side value takes precedence over the left hand
- side value.
+ A recursive variant of the update operator // . The recursion stops when one of the attribute values is not an attribute set, in which case the right hand side value takes precedence over the left hand side value.
diff --git a/doc/functions/nix-gitignore.xml b/doc/functions/nix-gitignore.xml
index 9011570d1ea..37a82b196cc 100644
--- a/doc/functions/nix-gitignore.xml
+++ b/doc/functions/nix-gitignore.xml
@@ -5,21 +5,14 @@
pkgs.nix-gitignore
- pkgs.nix-gitignore is a function that acts similarly to
- builtins.filterSource but also allows filtering with the
- help of the gitignore format.
+ pkgs.nix-gitignore is a function that acts similarly to builtins.filterSource but also allows filtering with the help of the gitignore format.
Usage
- pkgs.nix-gitignore exports a number of functions, but
- you'll most likely need either gitignoreSource or
- gitignoreSourcePure . As their first argument, they both
- accept either 1. a file with gitignore lines or 2. a string with gitignore
- lines, or 3. a list of either of the two. They will be concatenated into a
- single big string.
+ pkgs.nix-gitignore exports a number of functions, but you'll most likely need either gitignoreSource or gitignoreSourcePure . As their first argument, they both accept either 1. a file with gitignore lines or 2. a string with gitignore lines, or 3. a list of either of the two. They will be concatenated into a single big string.
- These functions are derived from the Filter functions by
- setting the first filter argument to (_: _: true) :
+ These functions are derived from the Filter functions by setting the first filter argument to (_: _: true) :
- Those filter functions accept the same arguments the
- builtins.filterSource function would pass to its filters,
- thus fn: gitignoreFilterSourcePure fn "" should be
- extensionally equivalent to filterSource . The file is
- blacklisted iff it's blacklisted by either your filter or the
- gitignoreFilter.
+ Those filter functions accept the same arguments the builtins.filterSource function would pass to its filters, thus fn: gitignoreFilterSourcePure fn "" should be extensionally equivalent to filterSource . The file is blacklisted iff it's blacklisted by either your filter or the gitignoreFilter.
@@ -71,8 +58,7 @@ gitignoreFilter = ign: root: filterPattern (gitignoreToPatterns ign) root;
gitignore files in subdirectories
- If you wish to use a filter that would search for .gitignore files in
- subdirectories, just like git does by default, use this function:
+ If you wish to use a filter that would search for .gitignore files in subdirectories, just like git does by default, use this function:
- Overriding
-
-
- Sometimes one wants to override parts of nixpkgs , e.g.
- derivation attributes, the results of derivations.
-
-
-
- These functions are used to make changes to packages, returning only single
- packages. Overlays, on the other
- hand, can be used to combine the overridden packages across the entire
- package set of Nixpkgs.
-
-
-
- <pkg>.override
-
-
- The function override is usually available for all the
- derivations in the nixpkgs expression (pkgs ).
-
-
-
- It is used to override the arguments passed to a function.
-
-
-
- Example usages:
-pkgs.foo.override { arg1 = val1; arg2 = val2; ... }
-
-
-import pkgs.path { overlays = [ (self: super: {
- foo = super.foo.override { barSupport = true ; };
- })]};
-
-
-mypkg = pkgs.callPackage ./mypkg.nix {
- mydep = pkgs.mydep.override { ... };
- }
-
-
-
-
- In the first example, pkgs.foo is the result of a
- function call with some default arguments, usually a derivation. Using
- pkgs.foo.override will call the same function with the
- given new arguments.
-
-
-
-
- <pkg>.overrideAttrs
-
-
- The function overrideAttrs allows overriding the
- attribute set passed to a stdenv.mkDerivation call,
- producing a new derivation based on the original one. This function is
- available on all derivations produced by the
- stdenv.mkDerivation function, which is most packages in
- the nixpkgs expression pkgs .
-
-
-
- Example usage:
-
-helloWithDebug = pkgs.hello.overrideAttrs (oldAttrs: rec {
- separateDebugInfo = true;
-});
-
-
-
-
- In the above example, the separateDebugInfo attribute is
- overridden to be true, thus building debug info for
- helloWithDebug , while all other attributes will be
- retained from the original hello package.
-
-
-
- The argument oldAttrs is conventionally used to refer to
- the attr set originally passed to stdenv.mkDerivation .
-
-
-
-
- Note that separateDebugInfo is processed only by the
- stdenv.mkDerivation function, not the generated, raw Nix
- derivation. Thus, using overrideDerivation will not work
- in this case, as it overrides only the attributes of the final derivation.
- It is for this reason that overrideAttrs should be
- preferred in (almost) all cases to overrideDerivation ,
- i.e. to allow using stdenv.mkDerivation to process input
- arguments, as well as the fact that it is easier to use (you can use the
- same attribute names you see in your Nix code, instead of the ones
- generated (e.g. buildInputs vs
- nativeBuildInputs ), and it involves less typing).
-
-
-
-
-
- <pkg>.overrideDerivation
-
-
-
- You should prefer overrideAttrs in almost all cases, see
- its documentation for the reasons why.
- overrideDerivation is not deprecated and will continue
- to work, but is less nice to use and does not have as many abilities as
- overrideAttrs .
-
-
-
-
-
- Do not use this function in Nixpkgs as it evaluates a Derivation before
- modifying it, which breaks package abstraction and removes error-checking
- of function arguments. In addition, this evaluation-per-function
- application incurs a performance penalty, which can become a problem if
- many overrides are used. It is only intended for ad-hoc customisation, such
- as in ~/.config/nixpkgs/config.nix .
-
-
-
-
- The function overrideDerivation creates a new derivation
- based on an existing one by overriding the original's attributes with the
- attribute set produced by the specified function. This function is available
- on all derivations defined using the makeOverridable
- function. Most standard derivation-producing functions, such as
- stdenv.mkDerivation , are defined using this function,
- which means most packages in the nixpkgs expression,
- pkgs , have this function.
-
-
-
- Example usage:
-
-mySed = pkgs.gnused.overrideDerivation (oldAttrs: {
- name = "sed-4.2.2-pre";
- src = fetchurl {
- url = ftp://alpha.gnu.org/gnu/sed/sed-4.2.2-pre.tar.bz2;
- sha256 = "11nq06d131y4wmf3drm0yk502d2xc6n5qy82cg88rb9nqd2lj41k";
- };
- patches = [];
-});
-
-
-
-
- In the above example, the name , src ,
- and patches of the derivation will be overridden, while
- all other attributes will be retained from the original derivation.
-
-
-
- The argument oldAttrs is used to refer to the attribute
- set of the original derivation.
-
-
-
-
- A package's attributes are evaluated *before* being modified by the
- overrideDerivation function. For example, the
- name attribute reference in url =
- "mirror://gnu/hello/${name}.tar.gz"; is filled-in *before* the
- overrideDerivation function modifies the attribute set.
- This means that overriding the name attribute, in this
- example, *will not* change the value of the url
- attribute. Instead, we need to override both the name
- *and* url attributes.
-
-
-
-
-
- lib.makeOverridable
-
-
- The function lib.makeOverridable is used to make the
- result of a function easily customizable. This utility only makes sense for
- functions that accept an argument set and return an attribute set.
-
-
-
- Example usage:
-
-f = { a, b }: { result = a+b; };
-c = lib.makeOverridable f { a = 1; b = 2; };
-
-
-
-
- The variable c is the value of the f
- function applied with some default arguments. Hence the value of
- c.result is 3 , in this example.
-
-
-
- The variable c however also has some additional
- functions, like c.override which can
- be used to override the default arguments. In this example the value of
- (c.override { a = 4; }).result is 6.
-
-
-
diff --git a/doc/functions/prefer-remote-fetch.xml b/doc/functions/prefer-remote-fetch.xml
index 3e43fd28ade..94d25d3d3ae 100644
--- a/doc/functions/prefer-remote-fetch.xml
+++ b/doc/functions/prefer-remote-fetch.xml
@@ -5,16 +5,12 @@
prefer-remote-fetch overlay
- prefer-remote-fetch is an overlay that download sources
- on remote builder. This is useful when the evaluating machine has a slow
- upload while the builder can fetch faster directly from the source. To use
- it, put the following snippet as a new overlay:
+ prefer-remote-fetch is an overlay that download sources on remote builder. This is useful when the evaluating machine has a slow upload while the builder can fetch faster directly from the source. To use it, put the following snippet as a new overlay:
self: super:
(super.prefer-remote-fetch self super)
- A full configuration example for that sets the overlay up for your own
- account, could look like this
+ A full configuration example for that sets the overlay up for your own account, could look like this
$ mkdir ~/.config/nixpkgs/overlays/
$ cat > ~/.config/nixpkgs/overlays/prefer-remote-fetch.nix <<EOF
diff --git a/doc/functions/trivial-builders.xml b/doc/functions/trivial-builders.xml
deleted file mode 100644
index 0211a4f3172..00000000000
--- a/doc/functions/trivial-builders.xml
+++ /dev/null
@@ -1,113 +0,0 @@
-
- Trivial builders
-
-
- Nixpkgs provides a couple of functions that help with building derivations.
- The most important one, stdenv.mkDerivation , has already
- been documented above. The following functions wrap
- stdenv.mkDerivation , making it easier to use in certain
- cases.
-
-
-
-
-
- runCommand
-
-
-
- This takes three arguments, name ,
- env , and buildCommand .
- name is just the name that Nix will append to the store
- path in the same way that stdenv.mkDerivation uses its
- name attribute. env is an attribute
- set specifying environment variables that will be set for this derivation.
- These attributes are then passed to the wrapped
- stdenv.mkDerivation . buildCommand
- specifies the commands that will be run to create this derivation. Note
- that you will need to create $out for Nix to register
- the command as successful.
-
-
- An example of using runCommand is provided below.
-
-
-(import <nixpkgs> {}).runCommand "my-example" {} ''
- echo My example command is running
-
- mkdir $out
-
- echo I can write data to the Nix store > $out/message
-
- echo I can also run basic commands like:
-
- echo ls
- ls
-
- echo whoami
- whoami
-
- echo date
- date
-''
-
-
-
-
-
- runCommandCC
-
-
-
- This works just like runCommand . The only difference is
- that it also provides a C compiler in buildCommand ’s
- environment. To minimize your dependencies, you should only use this if
- you are sure you will need a C compiler as part of running your command.
-
-
-
-
-
- writeTextFile , writeText , writeTextDir , writeScript , writeScriptBin
-
-
-
- These functions write text to the Nix store. This is
- useful for creating scripts from Nix expressions.
- writeTextFile takes an attribute set and expects two
- arguments, name and text .
- name corresponds to the name used in the Nix store
- path. text will be the contents of the file. You can
- also set executable to true to make this file have the
- executable bit set.
-
-
- Many more commands wrap writeTextFile including
- writeText , writeTextDir ,
- writeScript , and writeScriptBin .
- These are convenience functions over writeTextFile .
-
-
-
-
-
- symlinkJoin
-
-
-
- This can be used to put many derivations into the same directory
- structure. It works by creating a new derivation and adding symlinks to
- each of the paths listed. It expects two arguments,
- name , and paths .
- name is the name used in the Nix store path for the
- created derivation. paths is a list of paths that will
- be symlinked. These paths can be to Nix store derivations or any other
- subdirectory contained within.
-
-
-
-
-
diff --git a/doc/languages-frameworks/android.section.md b/doc/languages-frameworks/android.section.md
index f268c552566..9a5df2523a2 100644
--- a/doc/languages-frameworks/android.section.md
+++ b/doc/languages-frameworks/android.section.md
@@ -95,7 +95,7 @@ $ nix-build
The Android SDK gets deployed with all desired plugin versions.
-We can also deploy subsets of the Android SDK. For example, to only the the
+We can also deploy subsets of the Android SDK. For example, to only the
`platform-tools` package, you can evaluate the following expression:
```nix
diff --git a/doc/languages-frameworks/beam.xml b/doc/languages-frameworks/beam.xml
index dee7f2d7419..278535237c2 100644
--- a/doc/languages-frameworks/beam.xml
+++ b/doc/languages-frameworks/beam.xml
@@ -7,12 +7,7 @@
Introduction
- In this document and related Nix expressions, we use the term,
- BEAM , to describe the environment. BEAM is the name of
- the Erlang Virtual Machine and, as far as we're concerned, from a packaging
- perspective, all languages that run on the BEAM are interchangeable. That
- which varies, like the build system, is transparent to users of any given
- BEAM package, so we make no distinction.
+ In this document and related Nix expressions, we use the term, BEAM , to describe the environment. BEAM is the name of the Erlang Virtual Machine and, as far as we're concerned, from a packaging perspective, all languages that run on the BEAM are interchangeable. That which varies, like the build system, is transparent to users of any given BEAM package, so we make no distinction.
@@ -20,57 +15,32 @@
Structure
- All BEAM-related expressions are available via the top-level
- beam attribute, which includes:
+ All BEAM-related expressions are available via the top-level beam attribute, which includes:
- interpreters : a set of compilers running on the BEAM,
- including multiple Erlang/OTP versions
- (beam.interpreters.erlangR19 , etc), Elixir
- (beam.interpreters.elixir ) and LFE
- (beam.interpreters.lfe ).
+ interpreters : a set of compilers running on the BEAM, including multiple Erlang/OTP versions (beam.interpreters.erlangR19 , etc), Elixir (beam.interpreters.elixir ) and LFE (beam.interpreters.lfe ).
- packages : a set of package sets, each compiled with a
- specific Erlang/OTP version, e.g.
- beam.packages.erlangR19 .
+ packages : a set of package builders (Mix and rebar3), each compiled with a specific Erlang/OTP version, e.g. beam.packages.erlangR19 .
- The default Erlang compiler, defined by
- beam.interpreters.erlang , is aliased as
- erlang . The default BEAM package set is defined by
- beam.packages.erlang and aliased at the top level as
- beamPackages .
+ The default Erlang compiler, defined by beam.interpreters.erlang , is aliased as erlang . The default BEAM package set is defined by beam.packages.erlang and aliased at the top level as beamPackages .
- To create a package set built with a custom Erlang version, use the lambda,
- beam.packagesWith , which accepts an Erlang/OTP derivation
- and produces a package set similar to
- beam.packages.erlang .
+ To create a package builder built with a custom Erlang version, use the lambda, beam.packagesWith , which accepts an Erlang/OTP derivation and produces a package builder similar to beam.packages.erlang .
- Many Erlang/OTP distributions available in
- beam.interpreters have versions with ODBC and/or Java
- enabled. For example, there's
- beam.interpreters.erlangR19_odbc_javac , which corresponds
- to beam.interpreters.erlangR19 .
-
-
-
- We also provide the lambda,
- beam.packages.erlang.callPackage , which simplifies
- writing BEAM package definitions by injecting all packages from
- beam.packages.erlang into the top-level context.
+ Many Erlang/OTP distributions available in beam.interpreters have versions with ODBC and/or Java enabled or without wx (no observer support). For example, there's beam.interpreters.erlangR22_odbc_javac , which corresponds to beam.interpreters.erlangR22 and beam.interpreters.erlangR22_nox , which corresponds to beam.interpreters.erlangR22 .
@@ -81,28 +51,7 @@
Rebar3
- By default, Rebar3 wants to manage its own dependencies. This is perfectly
- acceptable in the normal, non-Nix setup, but in the Nix world, it is not.
- To rectify this, we provide two versions of Rebar3:
-
-
-
- rebar3 : patched to remove the ability to download
- anything. When not running it via nix-shell or
- nix-build , it's probably not going to work as
- desired.
-
-
-
-
- rebar3-open : the normal, unmodified Rebar3. It should
- work exactly as would any other version of Rebar3. Any Erlang package
- should rely on rebar3 instead. See
- .
-
-
-
+ We provide a version of Rebar3, under rebar3 . We also provide a helper to fetch Rebar3 dependencies from a lockfile under fetchRebar3Deps .
@@ -110,10 +59,7 @@
Mix & Erlang.mk
- Both Mix and Erlang.mk work exactly as expected. There is a bootstrap
- process that needs to be run for both, however, which is supported by the
- buildMix and buildErlangMk
- derivations, respectively.
+ Both Mix and Erlang.mk work exactly as expected. There is a bootstrap process that needs to be run for both, however, which is supported by the buildMix and buildErlangMk derivations, respectively.
@@ -122,41 +68,14 @@
How to Install BEAM Packages
- BEAM packages are not registered at the top level, simply because they are
- not relevant to the vast majority of Nix users. They are installable using
- the beam.packages.erlang attribute set (aliased as
- beamPackages ), which points to packages built by the
- default Erlang/OTP version in Nixpkgs, as defined by
- beam.interpreters.erlang . To list the available packages
- in beamPackages , use the following command:
+ BEAM builders are not registered at the top level, simply because they are not relevant to the vast majority of Nix users.
+ To install any of those builders into your profile, refer to them by their attribute path beamPackages.rebar3 :
-
-$ nix-env -f "<nixpkgs>" -qaP -A beamPackages
-beamPackages.esqlite esqlite-0.2.1
-beamPackages.goldrush goldrush-0.1.7
-beamPackages.ibrowse ibrowse-4.2.2
-beamPackages.jiffy jiffy-0.14.5
-beamPackages.lager lager-3.0.2
-beamPackages.meck meck-0.8.3
-beamPackages.rebar3-pc pc-1.1.0
-
-
-
- To install any of those packages into your profile, refer to them by their
- attribute path (first column):
-
-
-
-$ nix-env -f "<nixpkgs>" -iA beamPackages.ibrowse
-
-
-
- The attribute path of any BEAM package corresponds to the name of that
- particular package in Hex or its
- OTP Application/Release name.
-
-
+
+ $ nix-env -f "<nixpkgs>" -iA beamPackages.rebar3
+
+
Packaging BEAM Applications
@@ -168,53 +87,11 @@ beamPackages.rebar3-pc pc-1.1.0
Rebar3 Packages
- The Nix function, buildRebar3 , defined in
- beam.packages.erlang.buildRebar3 and aliased at the top
- level, can be used to build a derivation that understands how to build a
- Rebar3 project. For example, we can build
- hex2nix
- as follows:
-
-
-
-{ stdenv, fetchFromGitHub, buildRebar3, ibrowse, jsx, erlware_commons }:
-
-buildRebar3 rec {
- name = "hex2nix";
- version = "0.0.1";
-
- src = fetchFromGitHub {
- owner = "ericbmerritt";
- repo = "hex2nix";
- rev = "${version}";
- sha256 = "1w7xjidz1l5yjmhlplfx7kphmnpvqm67w99hd2m7kdixwdxq0zqg";
- };
-
- beamDeps = [ ibrowse jsx erlware_commons ];
-}
-
-
-
- Such derivations are callable with
- beam.packages.erlang.callPackage (see
- ). To call this package using
- the normal callPackage , refer to dependency packages
- via beamPackages , e.g.
- beamPackages.ibrowse .
+ The Nix function, buildRebar3 , defined in beam.packages.erlang.buildRebar3 and aliased at the top level, can be used to build a derivation that understands how to build a Rebar3 project.
- Notably, buildRebar3 includes
- beamDeps , while stdenv.mkDerivation
- does not. BEAM dependencies added there will be correctly handled by the
- system.
-
-
-
- If a package needs to compile native code via Rebar3's port compilation
- mechanism, add compilePort = true; to the derivation.
+ If a package needs to compile native code via Rebar3's port compilation mechanism, add compilePort = true; to the derivation.
@@ -222,96 +99,21 @@ buildRebar3 rec {
Erlang.mk Packages
- Erlang.mk functions similarly to Rebar3, except we use
- buildErlangMk instead of
- buildRebar3 .
+ Erlang.mk functions similarly to Rebar3, except we use buildErlangMk instead of buildRebar3 .
-
-{ buildErlangMk, fetchHex, cowlib, ranch }:
-
-buildErlangMk {
- name = "cowboy";
- version = "1.0.4";
-
- src = fetchHex {
- pkg = "cowboy";
- version = "1.0.4";
- sha256 = "6a0edee96885fae3a8dd0ac1f333538a42e807db638a9453064ccfdaa6b9fdac";
- };
-
- beamDeps = [ cowlib ranch ];
-
- meta = {
- description = ''
- Small, fast, modular HTTP server written in Erlang
- '';
- license = stdenv.lib.licenses.isc;
- homepage = https://github.com/ninenines/cowboy;
- };
-}
-
Mix Packages
- Mix functions similarly to Rebar3, except we use
- buildMix instead of buildRebar3 .
+ Mix functions similarly to Rebar3, except we use buildMix instead of buildRebar3 .
-
-{ buildMix, fetchHex, plug, absinthe }:
-
-buildMix {
- name = "absinthe_plug";
- version = "1.0.0";
-
- src = fetchHex {
- pkg = "absinthe_plug";
- version = "1.0.0";
- sha256 = "08459823fe1fd4f0325a8bf0c937a4520583a5a26d73b193040ab30a1dfc0b33";
- };
-
- beamDeps = [ plug absinthe ];
-
- meta = {
- description = ''
- A plug for Absinthe, an experimental GraphQL toolkit
- '';
- license = stdenv.lib.licenses.bsd3;
- homepage = https://github.com/CargoSense/absinthe_plug;
- };
-}
-
-
Alternatively, we can use buildHex as a shortcut:
-
-
-{ buildHex, buildMix, plug, absinthe }:
-
-buildHex {
- name = "absinthe_plug";
- version = "1.0.0";
-
- sha256 = "08459823fe1fd4f0325a8bf0c937a4520583a5a26d73b193040ab30a1dfc0b33";
-
- builder = buildMix;
-
- beamDeps = [ plug absinthe ];
-
- meta = {
- description = ''
- A plug for Absinthe, an experimental GraphQL toolkit
- '';
- license = stdenv.lib.licenses.bsd3;
- homepage = https://github.com/CargoSense/absinthe_plug;
- };
-}
-
@@ -319,75 +121,13 @@ buildHex {
How to Develop
-
- Accessing an Environment
-
-
- Often, we simply want to access a valid environment that contains a
- specific package and its dependencies. We can accomplish that with the
- env attribute of a derivation. For example, let's say we
- want to access an Erlang REPL with ibrowse loaded up. We
- could do the following:
-
-
-
-$ nix-shell -A beamPackages.ibrowse.env --run "erl"
-Erlang/OTP 18 [erts-7.0] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]
-
-Eshell V7.0 (abort with ^G)
-1> m(ibrowse).
-Module: ibrowse
-MD5: 3b3e0137d0cbb28070146978a3392945
-Compiled: January 10 2016, 23:34
-Object file: /nix/store/g1rlf65rdgjs4abbyj4grp37ry7ywivj-ibrowse-4.2.2/lib/erlang/lib/ibrowse-4.2.2/ebin/ibrowse.beam
-Compiler options: [{outdir,"/tmp/nix-build-ibrowse-4.2.2.drv-0/hex-source-ibrowse-4.2.2/_build/default/lib/ibrowse/ebin"},
-debug_info,debug_info,nowarn_shadow_vars,
-warn_unused_import,warn_unused_vars,warnings_as_errors,
-{i,"/tmp/nix-build-ibrowse-4.2.2.drv-0/hex-source-ibrowse-4.2.2/_build/default/lib/ibrowse/include"}]
-Exports:
-add_config/1 send_req_direct/7
-all_trace_off/0 set_dest/3
-code_change/3 set_max_attempts/3
-get_config_value/1 set_max_pipeline_size/3
-get_config_value/2 set_max_sessions/3
-get_metrics/0 show_dest_status/0
-get_metrics/2 show_dest_status/1
-handle_call/3 show_dest_status/2
-handle_cast/2 spawn_link_worker_process/1
-handle_info/2 spawn_link_worker_process/2
-init/1 spawn_worker_process/1
-module_info/0 spawn_worker_process/2
-module_info/1 start/0
-rescan_config/0 start_link/0
-rescan_config/1 stop/0
-send_req/3 stop_worker_process/1
-send_req/4 stream_close/1
-send_req/5 stream_next/1
-send_req/6 terminate/2
-send_req_direct/4 trace_off/0
-send_req_direct/5 trace_off/2
-send_req_direct/6 trace_on/0
-trace_on/2
-ok
-2>
-
-
-
- Notice the -A beamPackages.ibrowse.env . That is the key
- to this functionality.
-
-
-
Creating a Shell
-
- Getting access to an environment often isn't enough to do real development.
- Usually, we need to create a shell.nix file and do our
- development inside of the environment specified therein. This file looks a
- lot like the packaging described above, except that src
- points to the project root and we call the package directly.
-
+
+ Usually, we need to create a shell.nix file and do our development inside of the environment specified therein. Just install your version of erlang and other interpreter, and then user your normal build tools.
+ As an example with elixir:
+
{ pkgs ? import "<nixpkgs"> {} }:
@@ -396,133 +136,24 @@ with pkgs;
let
- f = { buildRebar3, ibrowse, jsx, erlware_commons }:
- buildRebar3 {
- name = "hex2nix";
- version = "0.1.0";
- src = ./.;
- beamDeps = [ ibrowse jsx erlware_commons ];
- };
- drv = beamPackages.callPackage f {};
+ elixir = beam.packages.erlangR22.elixir_1_9;
in
+mkShell {
+ buildInputs = [ elixir ];
- drv
+ ERL_INCLUDE_PATH="${erlang}/lib/erlang/usr/include";
+}
Building in a Shell (for Mix Projects)
- We can leverage the support of the derivation, irrespective of the build
- derivation, by calling the commands themselves.
-
-
-
-# =============================================================================
-# Variables
-# =============================================================================
-
-NIX_TEMPLATES := "$(CURDIR)/nix-templates"
-
-TARGET := "$(PREFIX)"
-
-PROJECT_NAME := thorndyke
-
-NIXPKGS=../nixpkgs
-NIX_PATH=nixpkgs=$(NIXPKGS)
-NIX_SHELL=nix-shell -I "$(NIX_PATH)" --pure
-# =============================================================================
-# Rules
-# =============================================================================
-.PHONY= all test clean repl shell build test analyze configure install \
- test-nix-install publish plt analyze
-
-all: build
-
-guard-%:
- @ if [ "${${*}}" == "" ]; then \
- echo "Environment variable $* not set"; \
- exit 1; \
- fi
-
-clean:
- rm -rf _build
- rm -rf .cache
-
-repl:
- $(NIX_SHELL) --run "iex -pa './_build/prod/lib/*/ebin'"
-
-shell:
- $(NIX_SHELL)
-
-configure:
- $(NIX_SHELL) --command 'eval "$$configurePhase"'
-
-build: configure
- $(NIX_SHELL) --command 'eval "$$buildPhase"'
-
-install:
- $(NIX_SHELL) --command 'eval "$$installPhase"'
-
-test:
- $(NIX_SHELL) --command 'mix test --no-start --no-deps-check'
-
-plt:
- $(NIX_SHELL) --run "mix dialyzer.plt --no-deps-check"
-
-analyze: build plt
- $(NIX_SHELL) --run "mix dialyzer --no-compile"
-
-
-
-
- Using a shell.nix as described (see
- ) should just work. Aside from
- test , plt , and
- analyze , the Make targets work just fine for all of the
- build derivations.
+ Using a shell.nix as described (see ) should just work.
-
-
- Generating Packages from Hex with hex2nix
-
-
- Updating the Hex package set
- requires
- hex2nix.
- Given the path to the Erlang modules (usually
- pkgs/development/erlang-modules ), it will dump a file
- called hex-packages.nix , containing all the packages that
- use a recognized build system in
- Hex. It can't be determined,
- however, whether every package is buildable.
-
-
-
- To make life easier for our users, try to build every
- Hex package and remove those
- that fail. To do that, simply run the following command in the root of your
- nixpkgs repository:
-
-
-
-$ nix-build -A beamPackages
-
-
-
- That will attempt to build every package in beamPackages .
- Then manually remove those that fail. Hopefully, someone will improve
- hex2nix
- in the future to automate the process.
-
-
diff --git a/doc/languages-frameworks/bower.xml b/doc/languages-frameworks/bower.xml
index 118f6e10473..b0738cad293 100644
--- a/doc/languages-frameworks/bower.xml
+++ b/doc/languages-frameworks/bower.xml
@@ -4,32 +4,22 @@
Bower
- Bower is a package manager for web
- site front-end components. Bower packages (comprising of build artefacts and
- sometimes sources) are stored in git repositories,
- typically on Github. The package registry is run by the Bower team with
- package metadata coming from the bower.json file within
- each package.
+ Bower is a package manager for web site front-end components. Bower packages (comprising of build artefacts and sometimes sources) are stored in git repositories, typically on Github. The package registry is run by the Bower team with package metadata coming from the bower.json file within each package.
- The end result of running Bower is a bower_components
- directory which can be included in the web app's build process.
+ The end result of running Bower is a bower_components directory which can be included in the web app's build process.
- Bower can be run interactively, by installing
- nodePackages.bower . More interestingly, the Bower
- components can be declared in a Nix derivation, with the help of
- nodePackages.bower2nix .
+ Bower can be run interactively, by installing nodePackages.bower . More interestingly, the Bower components can be declared in a Nix derivation, with the help of nodePackages.bower2nix .
bower2nix usage
- Suppose you have a bower.json with the following
- contents:
+ Suppose you have a bower.json with the following contents:
bower.json
@@ -45,8 +35,7 @@
- Running bower2nix will produce something like the
- following output:
+ Running bower2nix will produce something like the following output:
- Using the bower2nix command line arguments, the output
- can be redirected to a file. A name like
- bower-packages.nix would be fine.
+ Using the bower2nix command line arguments, the output can be redirected to a file. A name like bower-packages.nix would be fine.
- The resulting derivation is a union of all the downloaded Bower packages
- (and their dependencies). To use it, they still need to be linked together
- by Bower, which is where buildBowerComponents is useful.
+ The resulting derivation is a union of all the downloaded Bower packages (and their dependencies). To use it, they still need to be linked together by Bower, which is where buildBowerComponents is useful.
@@ -74,10 +59,7 @@ buildEnv { name = "bower-env"; ignoreCollisions = true; paths = [
buildBowerComponents function
- The function is implemented in
-
- pkgs/development/bower-modules/generic/default.nix .
- Example usage:
+ The function is implemented in pkgs/development/bower-modules/generic/default.nix . Example usage:
buildBowerComponents
@@ -91,34 +73,27 @@ bowerComponents = buildBowerComponents {
- In , the following arguments are
- of special significance to the function:
+ In , the following arguments are of special significance to the function:
- generated specifies the file which was created by
- bower2nix .
+ generated specifies the file which was created by bower2nix .
- src is your project's sources. It needs to contain a
- bower.json file.
+ src is your project's sources. It needs to contain a bower.json file.
- buildBowerComponents will run Bower to link together the
- output of bower2nix , resulting in a
- bower_components directory which can be used.
+ buildBowerComponents will run Bower to link together the output of bower2nix , resulting in a bower_components directory which can be used.
- Here is an example of a web frontend build process using
- gulp . You might use grunt , or anything
- else.
+ Here is an example of a web frontend build process using gulp . You might use grunt , or anything else.
@@ -174,21 +149,17 @@ pkgs.stdenv.mkDerivation {
- The result of buildBowerComponents is an input to the
- frontend build.
+ The result of buildBowerComponents is an input to the frontend build.
- Whether to symlink or copy the bower_components
- directory depends on the build tool in use. In this case a copy is used
- to avoid gulp silliness with permissions.
+ Whether to symlink or copy the bower_components directory depends on the build tool in use. In this case a copy is used to avoid gulp silliness with permissions.
- gulp requires HOME to refer to a
- writeable directory.
+ gulp requires HOME to refer to a writeable directory.
@@ -210,17 +181,13 @@ pkgs.stdenv.mkDerivation {
- This means that Bower was looking for a package version which doesn't
- exist in the generated bower-packages.nix .
+ This means that Bower was looking for a package version which doesn't exist in the generated bower-packages.nix .
- If bower.json has been updated, then run
- bower2nix again.
+ If bower.json has been updated, then run bower2nix again.
- It could also be a bug in bower2nix or
- fetchbower . If possible, try reformulating the version
- specification in bower.json .
+ It could also be a bug in bower2nix or fetchbower . If possible, try reformulating the version specification in bower.json .
diff --git a/doc/languages-frameworks/coq.xml b/doc/languages-frameworks/coq.xml
index 4314df5c9df..86d9226166f 100644
--- a/doc/languages-frameworks/coq.xml
+++ b/doc/languages-frameworks/coq.xml
@@ -4,31 +4,19 @@
Coq
- Coq libraries should be installed in
- $(out)/lib/coq/${coq.coq-version}/user-contrib/ . Such
- directories are automatically added to the $COQPATH
- environment variable by the hook defined in the Coq derivation.
+ Coq libraries should be installed in $(out)/lib/coq/${coq.coq-version}/user-contrib/ . Such directories are automatically added to the $COQPATH environment variable by the hook defined in the Coq derivation.
- Some extensions (plugins) might require OCaml and sometimes other OCaml
- packages. The coq.ocamlPackages attribute can be used to
- depend on the same package set Coq was built against.
+ Some extensions (plugins) might require OCaml and sometimes other OCaml packages. The coq.ocamlPackages attribute can be used to depend on the same package set Coq was built against.
- Coq libraries may be compatible with some specific versions of Coq only. The
- compatibleCoqVersions attribute is used to precisely
- select those versions of Coq that are compatible with this derivation.
+ Coq libraries may be compatible with some specific versions of Coq only. The compatibleCoqVersions attribute is used to precisely select those versions of Coq that are compatible with this derivation.
- Here is a simple package example. It is a pure Coq library, thus it depends
- on Coq. It builds on the Mathematical Components library, thus it also takes
- mathcomp as buildInputs . Its
- Makefile has been generated using
- coq_makefile so we only have to set the
- $COQLIB variable at install time.
+ Here is a simple package example. It is a pure Coq library, thus it depends on Coq. It builds on the Mathematical Components library, thus it also takes mathcomp as buildInputs . Its Makefile has been generated using coq_makefile so we only have to set the $COQLIB variable at install time.
diff --git a/doc/languages-frameworks/emscripten.section.md b/doc/languages-frameworks/emscripten.section.md
index 24c49ec1409..80e1094809a 100644
--- a/doc/languages-frameworks/emscripten.section.md
+++ b/doc/languages-frameworks/emscripten.section.md
@@ -1,4 +1,4 @@
-# User's Guide to Emscripten in Nixpkgs
+# Emscripten
[Emscripten](https://github.com/kripken/emscripten): An LLVM-to-JavaScript Compiler
diff --git a/doc/languages-frameworks/gnome.xml b/doc/languages-frameworks/gnome.xml
new file mode 100644
index 00000000000..3d69d77a1c8
--- /dev/null
+++ b/doc/languages-frameworks/gnome.xml
@@ -0,0 +1,282 @@
+
+ GNOME
+
+
+ Packaging GNOME applications
+
+
+ Programs in the GNOME universe are written in various languages but they all use GObject-based libraries like GLib, GTK or GStreamer. These libraries are often modular, relying on looking into certain directories to find their modules. However, due to Nix’s specific file system organization, this will fail without our intervention. Fortunately, the libraries usually allow overriding the directories through environment variables, either natively or thanks to a patch in nixpkgs. Wrapping the executables to ensure correct paths are available to the application constitutes a significant part of packaging a modern desktop application. In this section, we will describe various modules needed by such applications, environment variables needed to make the modules load, and finally a script that will do the work for us.
+
+
+
+ Settings
+
+
+ GSettings API is often used for storing settings. GSettings schemas are required, to know the type and other metadata of the stored values. GLib looks for glib-2.0/schemas/gschemas.compiled files inside the directories of XDG_DATA_DIRS .
+
+
+
+ On Linux, GSettings API is implemented using dconf backend. You will need to add dconf GIO module to GIO_EXTRA_MODULES variable, otherwise the memory backend will be used and the saved settings will not be persistent.
+
+
+
+ Last you will need the dconf database D-Bus service itself. You can enable it using programs.dconf.enable .
+
+
+
+ Some applications will also require gsettings-desktop-schemas for things like reading proxy configuration or user interface customization. This dependency is often not mentioned by upstream, you should grep for org.gnome.desktop and org.gnome.system to see if the schemas are needed.
+
+
+
+
+ Icons
+
+
+ When an application uses icons, an icon theme should be available in XDG_DATA_DIRS during runtime. The package for the default, icon-less hicolor-icon-theme (should be propagated by every icon theme) contains a setup hook that will pick up icon themes from buildInputs and pass it to our wrapper. Unfortunately, relying on that would mean every user has to download the theme included in the package expression no matter their preference. For that reason, we leave the installation of icon theme on the user. If you use one of the desktop environments, you probably already have an icon theme installed.
+
+
+
+ To avoid costly file system access when locating icons, GTK, as well as Qt, can rely on icon-theme.cache files from the themes’ top-level directories. These files are generated using gtk-update-icon-cache , which is expected to be run whenever an icon is added or removed to an icon theme (typically an application icon into hicolor theme) and some programs do indeed run this after icon installation. However, since packages are installed into their own prefix by Nix, this would lead to conflicts. For that reason, gtk3 provides a setup hook that will clean the file from installation. Since most applications only ship their own icon that will be loaded on start-up, it should not affect them too much. On the other hand, icon themes are much larger and more widely used so we need to cache them. Because we recommend installing icon themes globally, we will generate the cache files from all packages in a profile using a NixOS module. You can enable the cache generation using gtk.iconCache.enable option if your desktop environment does not already do that.
+
+
+
+
+ GTK Themes
+
+
+ Previously, a GTK theme needed to be in XDG_DATA_DIRS . This is no longer necessary for most programs since GTK incorporated Adwaita theme. Some programs (for example, those designed for elementary HIG) might require a special theme like pantheon.elementary-gtk-theme .
+
+
+
+
+ GObject introspection typelibs
+
+
+ GObject introspection allows applications to use C libraries in other languages easily. It does this through typelib files searched in GI_TYPELIB_PATH .
+
+
+
+
+ Various plug-ins
+
+
+ If your application uses GStreamer or Grilo, you should set GST_PLUGIN_SYSTEM_PATH_1_0 and GRL_PLUGIN_PATH , respectively.
+
+
+
+
+
+ Onto wrapGAppsHook
+
+
+ Given the requirements above, the package expression would become messy quickly:
+
+preFixup = ''
+ for f in $(find $out/bin/ $out/libexec/ -type f -executable); do
+ wrapProgram "$f" \
+ --prefix GIO_EXTRA_MODULES : "${getLib gnome3.dconf}/lib/gio/modules" \
+ --prefix XDG_DATA_DIRS : "$out/share" \
+ --prefix XDG_DATA_DIRS : "$out/share/gsettings-schemas/${name}" \
+ --prefix XDG_DATA_DIRS : "${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}" \
+ --prefix XDG_DATA_DIRS : "${hicolor-icon-theme}/share" \
+ --prefix GI_TYPELIB_PATH : "${lib.makeSearchPath "lib/girepository-1.0" [ pango json-glib ]}"
+ done
+'';
+
+ Fortunately, there is wrapGAppsHook , that does the wrapping for us. In particular, it works in conjunction with other setup hooks that will populate the variable:
+
+
+
+ wrapGAppsHook itself will add the package’s share directory to XDG_DATA_DIRS .
+
+
+
+
+ glib setup hook will populate GSETTINGS_SCHEMAS_PATH and then wrapGAppsHook will prepend it to XDG_DATA_DIRS .
+
+
+
+
+ One of gtk3 ’s setup hooks will remove icon-theme.cache files from package’s icon theme directories to avoid conflicts. Icon theme packages should prevent this with dontDropIconThemeCache = true;
.
+
+
+
+
+ gnome3.dconf.lib is a dependency of wrapGAppsHook , which then also adds it to the GIO_EXTRA_MODULES variable.
+
+
+
+
+ hicolor-icon-theme ’s setup hook will add icon themes to XDG_ICON_DIRS which is prepended to XDG_DATA_DIRS by wrapGAppsHook .
+
+
+
+
+ gobject-introspection setup hook populates GI_TYPELIB_PATH variable with lib/girepository-1.0 directories of dependencies, which is then added to wrapper by wrapGAppsHook . It also adds share directories of dependencies to XDG_DATA_DIRS , which is intended to promote GIR files but it also pollutes the closures of packages using wrapGAppsHook .
+
+
+
+ The setup hook currently does not work in expressions with strictDeps enabled, like Python packages. In those cases, you will need to disable it with strictDeps = false;
.
+
+
+
+
+
+ Setup hooks of gst_all_1.gstreamer and gnome3.grilo will populate the GST_PLUGIN_SYSTEM_PATH_1_0 and GRL_PLUGIN_PATH variables, respectively, which will then be added to the wrapper by wrapGAppsHook .
+
+
+
+
+
+
+ You can also pass additional arguments to makeWrapper using gappsWrapperArgs in preFixup hook:
+
+preFixup = ''
+ gappsWrapperArgs+=(
+ # Thumbnailers
+ --prefix XDG_DATA_DIRS : "${gdk-pixbuf}/share"
+ --prefix XDG_DATA_DIRS : "${librsvg}/share"
+ --prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
+ )
+'';
+
+
+
+
+
+ Updating GNOME packages
+
+
+ Most GNOME package offer updateScript , it is therefore possible to update to latest source tarball by running nix-shell maintainers/scripts/update.nix --argstr package gnome3.nautilus or even en masse with nix-shell maintainers/scripts/update.nix --argstr path gnome3 . Read the package’s NEWS file to see what changed.
+
+
+
+
+ Frequently encountered issues
+
+
+
+
+ GLib-GIO-ERROR **: 06:04:50.903 : No GSettings schemas are installed on the system
+
+
+
+ There are no schemas avalable in XDG_DATA_DIRS . Temporarily add a random package containing schemas like gsettings-desktop-schemas to buildInputs . glib and wrapGAppsHook setup hooks will take care of making the schemas available to application and you will see the actual missing schemas with the next error. Or you can try looking through the source code for the actual schemas used.
+
+
+
+
+
+ GLib-GIO-ERROR **: 06:04:50.903 : Settings schema ‘org.gnome.foo ’ is not installed
+
+
+
+ Package is missing some GSettings schemas. You can find out the package containing the schema with nix-locate org.gnome.foo .gschema.xml and let the hooks handle the wrapping as above.
+
+
+
+
+
+ When using wrapGAppsHook with special derivers you can end up with double wrapped binaries.
+
+
+
+ This is because derivers like python.pkgs.buildPythonApplication or qt5.mkDerivation have setup-hooks automatically added that produce wrappers with makeWrapper . The simplest way to workaround that is to disable the wrapGAppsHook automatic wrapping with dontWrapGApps = true;
and pass the arguments it intended to pass to makeWrapper to another.
+
+
+ In the case of a Python application it could look like:
+
+python3.pkgs.buildPythonApplication {
+ pname = "gnome-music";
+ version = "3.32.2";
+
+ nativeBuildInputs = [
+ wrapGAppsHook
+ gobject-introspection
+ ...
+ ];
+
+ dontWrapGApps = true;
+
+ # Arguments to be passed to `makeWrapper`, only used by buildPython*
+ makeWrapperArgs = [
+ "\${gappsWrapperArgs[@]}"
+ ];
+}
+
+ And for a QT app like:
+
+mkDerivation {
+ pname = "calibre";
+ version = "3.47.0";
+
+ nativeBuildInputs = [
+ wrapGAppsHook
+ qmake
+ ...
+ ];
+
+ dontWrapGApps = true;
+
+ # Arguments to be passed to `makeWrapper`, only used by qt5’s mkDerivation
+ qtWrapperArgs = [
+ "\${gappsWrapperArgs[@]}"
+ ];
+}
+
+
+
+
+
+
+ I am packaging a project that cannot be wrapped, like a library or GNOME Shell extension.
+
+
+
+ You can rely on applications depending on the library set the necessary environment variables but that it often easy to miss. Instead we recommend to patch the paths in the source code whenever possible. Here are some examples:
+
+
+
+ Replacing a GI_TYPELIB_PATH in GNOME Shell extension – we are using substituteAll to include the path to a typelib into a patch.
+
+
+
+
+ The following examples are hardcoding GSettings schema paths. To get the schema paths we use the functions
+
+
+
+ glib.getSchemaPath Takes a nix package attribute as an argument.
+
+
+
+
+ glib.makeSchemaPath Takes a package output like $out and a derivation name. You should use this if the schemas you need to hardcode are in the same derivation.
+
+
+
+
+
+ Hard-coding GSettings schema path in Vala plug-in (dynamically loaded library) – here, substituteAll cannot be used since the schema comes from the same package preventing us from pass its path to the function, probably due to a Nix bug.
+
+
+ Hard-coding GSettings schema path in C library – nothing special other than using Coccinelle patch to generate the patch itself.
+
+
+
+
+
+
+
+
+ I need to wrap a binary outside bin and libexec directories.
+
+
+
+ You can manually trigger the wrapping with wrapGApp in preFixup phase. It takes a path to a program as a first argument; the remaining arguments are passed directly to wrapProgram function.
+
+
+
+
+
+
diff --git a/doc/languages-frameworks/go.xml b/doc/languages-frameworks/go.xml
index b2b4962cb5f..288a9029863 100644
--- a/doc/languages-frameworks/go.xml
+++ b/doc/languages-frameworks/go.xml
@@ -7,21 +7,16 @@
Go modules
- The function buildGoModule builds Go programs managed
- with Go modules. It builds a
- Go
- modules through a two phase build:
+ The function buildGoModule builds Go programs managed with Go modules. It builds a Go modules through a two phase build:
- An intermediate fetcher derivation. This derivation will be used to fetch
- all of the dependencies of the Go module.
+ An intermediate fetcher derivation. This derivation will be used to fetch all of the dependencies of the Go module.
- A final derivation will use the output of the intermediate derivation to
- build the binaries and produce the final output.
+ A final derivation will use the output of the intermediate derivation to build the binaries and produce the final output.
@@ -57,21 +52,16 @@ pet = buildGoModule rec {
- is an example expression using
- buildGoModule, the following arguments are of special significance to the
- function:
+ is an example expression using buildGoModule, the following arguments are of special significance to the function:
- modSha256 is the hash of the output of the
- intermediate fetcher derivation.
+ modSha256 is the hash of the output of the intermediate fetcher derivation.
- subPackages limits the builder from building child
- packages that have not been listed. If subPackages is
- not specified, all child packages will be built.
+ subPackages limits the builder from building child packages that have not been listed. If subPackages is not specified, all child packages will be built.
@@ -82,8 +72,7 @@ pet = buildGoModule rec {
Go legacy
- The function buildGoPackage builds legacy Go programs,
- not supporting Go modules.
+ The function buildGoPackage builds legacy Go programs, not supporting Go modules.
@@ -111,49 +100,36 @@ deis = buildGoPackage rec {
- is an example expression using
- buildGoPackage, the following arguments are of special significance to the
- function:
+ is an example expression using buildGoPackage, the following arguments are of special significance to the function:
- goPackagePath specifies the package's canonical Go
- import path.
+ goPackagePath specifies the package's canonical Go import path.
- subPackages limits the builder from building child
- packages that have not been listed. If subPackages is
- not specified, all child packages will be built.
+ subPackages limits the builder from building child packages that have not been listed. If subPackages is not specified, all child packages will be built.
- In this example only github.com/deis/deis/client will
- be built.
+ In this example only github.com/deis/deis/client will be built.
- goDeps is where the Go dependencies of a Go program
- are listed as a list of package source identified by Go import path. It
- could be imported as a separate deps.nix file for
- readability. The dependency data structure is described below.
+ goDeps is where the Go dependencies of a Go program are listed as a list of package source identified by Go import path. It could be imported as a separate deps.nix file for readability. The dependency data structure is described below.
- buildFlags is a list of flags passed to the go build
- command.
+ buildFlags is a list of flags passed to the go build command.
- The goDeps attribute can be imported from a separate
- nix file that defines which Go libraries are needed and
- should be included in GOPATH for
- buildPhase .
+ The goDeps attribute can be imported from a separate nix file that defines which Go libraries are needed and should be included in GOPATH for buildPhase .
@@ -196,27 +172,18 @@ deis = buildGoPackage rec {
- fetch type that needs to be used to get package
- source. If git is used there should be
- url , rev and
- sha256 defined next to it.
+ fetch type that needs to be used to get package source. If git is used there should be url , rev and sha256 defined next to it.
- To extract dependency information from a Go package in automated way use
- go2nix. It can
- produce complete derivation and goDeps file for Go
- programs.
+ To extract dependency information from a Go package in automated way use go2nix. It can produce complete derivation and goDeps file for Go programs.
- buildGoPackage produces
- where
- bin includes program binaries. You can test build a Go
- binary as follows:
+ buildGoPackage produces where bin includes program binaries. You can test build a Go binary as follows:
$ nix-build -A deis.bin
@@ -224,13 +191,11 @@ deis = buildGoPackage rec {
$ nix-build -A deis.all
- bin output will be installed by default with
- nix-env -i or systemPackages .
+ bin output will be installed by default with nix-env -i or systemPackages .
- You may use Go packages installed into the active Nix profiles by adding the
- following to your ~/.bashrc:
+ You may use Go packages installed into the active Nix profiles by adding the following to your ~/.bashrc:
for p in $NIX_PROFILES; do
GOPATH="$p/share/go:$GOPATH"
diff --git a/doc/languages-frameworks/haskell.section.md b/doc/languages-frameworks/haskell.section.md
index 48d22831cd9..7cbac95f7d4 100644
--- a/doc/languages-frameworks/haskell.section.md
+++ b/doc/languages-frameworks/haskell.section.md
@@ -3,7 +3,7 @@ title: User's Guide for Haskell in Nixpkgs
author: Peter Simons
date: 2015-06-01
---
-# User's Guide to the Haskell Infrastructure
+# Haskell
## How to install Haskell packages
@@ -398,7 +398,9 @@ nix:
For more on how to write a `shell.nix` file see the below section. You'll need
to express a derivation. Note that Nixpkgs ships with a convenience wrapper
function around `mkDerivation` called `haskell.lib.buildStackProject` to help you
-create this derivation in exactly the way Stack expects. All of the same inputs
+create this derivation in exactly the way Stack expects. However for this to work
+you need to disable the sandbox, which you can do by using `--option sandbox relaxed`
+or `--option sandbox false` to the Nix command. All of the same inputs
as `mkDerivation` can be provided. For example, to build a Stack project that
including packages that link against a version of the R library compiled with
special options turned on:
diff --git a/doc/languages-frameworks/idris.section.md b/doc/languages-frameworks/idris.section.md
index e88015f08e3..8d7962d7fb9 100644
--- a/doc/languages-frameworks/idris.section.md
+++ b/doc/languages-frameworks/idris.section.md
@@ -1,4 +1,4 @@
-# Idris packages
+# Idris
## Installing Idris
diff --git a/doc/languages-frameworks/index.xml b/doc/languages-frameworks/index.xml
index cd4e95cfae6..9364c764bbf 100644
--- a/doc/languages-frameworks/index.xml
+++ b/doc/languages-frameworks/index.xml
@@ -1,19 +1,17 @@
- Support for specific programming languages and frameworks
+ Languages and frameworks
- The standard build environment makes it
- easy to build typical Autotools-based packages with very little code. Any
- other kind of package can be accomodated by overriding the appropriate phases
- of stdenv . However, there are specialised functions in
- Nixpkgs to easily build packages for other programming languages, such as
- Perl or Haskell. These are described in this chapter.
+ The standard build environment makes it easy to build typical Autotools-based packages with very little code. Any other kind of package can be accomodated by overriding the appropriate phases of stdenv . However, there are specialised functions in Nixpkgs to easily build packages for other programming languages, such as Perl or Haskell. These are described in this chapter.
+
+
+
@@ -31,6 +29,4 @@
-
-
diff --git a/doc/languages-frameworks/ios.section.md b/doc/languages-frameworks/ios.section.md
index 6684b809ffe..5a81795c004 100644
--- a/doc/languages-frameworks/ios.section.md
+++ b/doc/languages-frameworks/ios.section.md
@@ -1,7 +1,7 @@
---
title: iOS
author: Sander van der Burg
-date: 2018-11-18
+date: 2019-11-10
---
# iOS
@@ -217,3 +217,13 @@ xcode.simulateApp {
By providing the result of an `xcode.buildApp {}` function and configuring the
app bundle id, the app gets deployed automatically and started.
+
+Troubleshooting
+---------------
+In some rare cases, it may happen that after a failure, changes are not picked
+up. Most likely, this is caused by a derived data cache that Xcode maintains.
+To wipe it you can run:
+
+```bash
+$ rm -rf ~/Library/Developer/Xcode/DerivedData
+```
diff --git a/doc/languages-frameworks/java.xml b/doc/languages-frameworks/java.xml
index 68a1a097984..bf0fc488392 100644
--- a/doc/languages-frameworks/java.xml
+++ b/doc/languages-frameworks/java.xml
@@ -15,37 +15,24 @@ stdenv.mkDerivation {
buildPhase = "ant";
}
- Note that jdk is an alias for the OpenJDK (self-built
- where available, or pre-built via Zulu). Platforms with OpenJDK not (yet) in
- Nixpkgs (Aarch32 , Aarch64 ) point to the
- (unfree) oraclejdk .
+ Note that jdk is an alias for the OpenJDK (self-built where available, or pre-built via Zulu). Platforms with OpenJDK not (yet) in Nixpkgs (Aarch32 , Aarch64 ) point to the (unfree) oraclejdk .
- JAR files that are intended to be used by other packages should be installed
- in $out/share/java . JDKs have a stdenv setup hook that
- add any JARs in the share/java directories of the build
- inputs to the CLASSPATH environment variable. For instance, if
- the package libfoo installs a JAR named
- foo.jar in its share/java
- directory, and another package declares the attribute
+ JAR files that are intended to be used by other packages should be installed in $out/share/java . JDKs have a stdenv setup hook that add any JARs in the share/java directories of the build inputs to the CLASSPATH environment variable. For instance, if the package libfoo installs a JAR named foo.jar in its share/java directory, and another package declares the attribute
buildInputs = [ libfoo ];
nativeBuildInputs = [ jdk ];
- then CLASSPATH will be set to
- /nix/store/...-libfoo/share/java/foo.jar .
+ then CLASSPATH will be set to /nix/store/...-libfoo/share/java/foo.jar .
- Private JARs should be installed in a location like
- $out/share/package-name .
+ Private JARs should be installed in a location like $out/share/package-name .
- If your Java package provides a program, you need to generate a wrapper
- script to run it using the OpenJRE. You can use
- makeWrapper for this:
+ If your Java package provides a program, you need to generate a wrapper script to run it using the OpenJRE. You can use makeWrapper for this:
nativeBuildInputs = [ makeWrapper ];
@@ -56,30 +43,21 @@ installPhase =
--add-flags "-cp $out/share/java/foo.jar org.foo.Main"
'';
- Note the use of jre , which is the part of the OpenJDK
- package that contains the Java Runtime Environment. By using
- ${jre}/bin/java instead of
- ${jdk}/bin/java , you prevent your package from depending
- on the JDK at runtime.
+ Note the use of jre , which is the part of the OpenJDK package that contains the Java Runtime Environment. By using ${jre}/bin/java instead of ${jdk}/bin/java , you prevent your package from depending on the JDK at runtime.
- Note all JDKs passthru home , so if your application
- requires environment variables like JAVA_HOME being set, that
- can be done in a generic fashion with the --set argument
- of makeWrapper :
+ Note all JDKs passthru home , so if your application requires environment variables like JAVA_HOME being set, that can be done in a generic fashion with the --set argument of makeWrapper :
--set JAVA_HOME ${jdk.home}
- It is possible to use a different Java compiler than javac
- from the OpenJDK. For instance, to use the GNU Java Compiler:
+ It is possible to use a different Java compiler than javac from the OpenJDK. For instance, to use the GNU Java Compiler:
nativeBuildInputs = [ gcj ant ];
- Here, Ant will automatically use gij (the GNU Java
- Runtime) instead of the OpenJRE.
+ Here, Ant will automatically use gij (the GNU Java Runtime) instead of the OpenJRE.
diff --git a/doc/languages-frameworks/lua.xml b/doc/languages-frameworks/lua.xml
index 5144bb24ff6..bcca6b73753 100644
--- a/doc/languages-frameworks/lua.xml
+++ b/doc/languages-frameworks/lua.xml
@@ -4,18 +4,11 @@
Lua
- Lua packages are built by the buildLuaPackage function.
- This function is implemented in
-
- pkgs/development/lua-modules/generic/default.nix
- and works similarly to buildPerlPackage . (See
- for details.)
+ Lua packages are built by the buildLuaPackage function. This function is implemented in pkgs/development/lua-modules/generic/default.nix and works similarly to buildPerlPackage . (See for details.)
- Lua packages are defined in
- pkgs/top-level/lua-packages.nix .
- Most of them are simple. For example:
+ Lua packages are defined in pkgs/top-level/lua-packages.nix . Most of them are simple. For example:
fileSystem = buildLuaPackage {
name = "filesystem-1.6.2";
@@ -33,16 +26,11 @@ fileSystem = buildLuaPackage {
- Though, more complicated package should be placed in a seperate file in
- pkgs/development/lua-modules .
- Lua packages accept additional parameter disabled , which
- defines the condition of disabling package from luaPackages. For example, if
- package has disabled assigned to lua.luaversion
- != "5.1" , it will not be included in any luaPackages except
- lua51Packages, making it only be built for lua 5.1.
+ Lua packages accept additional parameter disabled , which defines the condition of disabling package from luaPackages. For example, if package has disabled assigned to lua.luaversion != "5.1" , it will not be included in any luaPackages except lua51Packages, making it only be built for lua 5.1.
diff --git a/doc/languages-frameworks/node.section.md b/doc/languages-frameworks/node.section.md
index c6dce04c7b8..4dc95fc1dd9 100644
--- a/doc/languages-frameworks/node.section.md
+++ b/doc/languages-frameworks/node.section.md
@@ -1,5 +1,5 @@
-Node.js packages
-================
+Node.js
+=======
The `pkgs/development/node-packages` folder contains a generated collection of
[NPM packages](https://npmjs.com/) that can be installed with the Nix package
manager.
diff --git a/doc/languages-frameworks/ocaml.xml b/doc/languages-frameworks/ocaml.xml
index b7006ecba99..a0ea209b493 100644
--- a/doc/languages-frameworks/ocaml.xml
+++ b/doc/languages-frameworks/ocaml.xml
@@ -4,35 +4,15 @@
OCaml
- OCaml libraries should be installed in
- $(out)/lib/ocaml/${ocaml.version}/site-lib/ . Such
- directories are automatically added to the $OCAMLPATH
- environment variable when building another package that depends on them or
- when opening a nix-shell .
+ OCaml libraries should be installed in $(out)/lib/ocaml/${ocaml.version}/site-lib/ . Such directories are automatically added to the $OCAMLPATH environment variable when building another package that depends on them or when opening a nix-shell .
- Given that most of the OCaml ecosystem is now built with dune, nixpkgs
- includes a convenience build support function called
- buildDunePackage that will build an OCaml package using
- dune, OCaml and findlib and any additional dependencies provided as
- buildInputs or propagatedBuildInputs .
+ Given that most of the OCaml ecosystem is now built with dune, nixpkgs includes a convenience build support function called buildDunePackage that will build an OCaml package using dune, OCaml and findlib and any additional dependencies provided as buildInputs or propagatedBuildInputs .
- Here is a simple package example. It defines an (optional) attribute
- minimumOCamlVersion that will be used to throw a
- descriptive evaluation error if building with an older OCaml is attempted. It
- uses the fetchFromGitHub fetcher to get its source. It
- sets the doCheck (optional) attribute to
- true which means that tests will be run with dune
- runtest -p angstrom after the build (dune build -p
- angstrom ) is complete. It uses alcotest as a
- build input (because it is needed to run the tests) and
- bigstringaf and result as propagated
- build inputs (thus they will also be available to libraries depending on this
- library). The library will be installed using the
- angstrom.install file that dune generates.
+ Here is a simple package example. It defines an (optional) attribute minimumOCamlVersion that will be used to throw a descriptive evaluation error if building with an older OCaml is attempted. It uses the fetchFromGitHub fetcher to get its source. It sets the doCheck (optional) attribute to true which means that tests will be run with dune runtest -p angstrom after the build (dune build -p angstrom ) is complete. It uses alcotest as a build input (because it is needed to run the tests) and bigstringaf and result as propagated build inputs (thus they will also be available to libraries depending on this library). The library will be installed using the angstrom.install file that dune generates.
@@ -65,11 +45,7 @@ buildDunePackage rec {
- Here is a second example, this time using a source archive generated with
- dune-release . It is a good idea to use this archive when
- it is available as it will usually contain substituted variables such as a
- %%VERSION%% field. This library does not depend on any
- other OCaml library and no tests are run after building it.
+ Here is a second example, this time using a source archive generated with dune-release . It is a good idea to use this archive when it is available as it will usually contain substituted variables such as a %%VERSION%% field. This library does not depend on any other OCaml library and no tests are run after building it.
diff --git a/doc/languages-frameworks/perl.xml b/doc/languages-frameworks/perl.xml
index 065212a0e18..d9b6b2721c6 100644
--- a/doc/languages-frameworks/perl.xml
+++ b/doc/languages-frameworks/perl.xml
@@ -4,24 +4,13 @@
Perl
- Nixpkgs provides a function buildPerlPackage , a generic
- package builder function for any Perl package that has a standard
- Makefile.PL . It’s implemented in
- buildPerlPackage, a generic package builder function for any Perl package that has a standard Makefile.PL . It’s implemented in pkgs/development/perl-modules/generic .
- Perl packages from CPAN are defined in
- pkgs/top-level/perl-packages.nix ,
- rather than pkgs/all-packages.nix . Most Perl packages
- are so straight-forward to build that they are defined here directly, rather
- than having a separate function for each package called from
- perl-packages.nix . However, more complicated packages
- should be put in a separate file, typically in
- pkgs/development/perl-modules . Here is an example of the
- former:
+ Perl packages from CPAN are defined in pkgs/top-level/perl-packages.nix , rather than pkgs/all-packages.nix . Most Perl packages are so straight-forward to build that they are defined here directly, rather than having a separate function for each package called from perl-packages.nix . However, more complicated packages should be put in a separate file, typically in pkgs/development/perl-modules . Here is an example of the former:
ClassC3 = buildPerlPackage rec {
name = "Class-C3-0.21";
@@ -31,32 +20,22 @@ ClassC3 = buildPerlPackage rec {
};
};
- Note the use of mirror://cpan/ , and the
- ${name} in the URL definition to ensure that the name
- attribute is consistent with the source that we’re actually downloading.
- Perl packages are made available in all-packages.nix
- through the variable perlPackages . For instance, if you
- have a package that needs ClassC3 , you would typically
- write
+ Note the use of mirror://cpan/ , and the ${name} in the URL definition to ensure that the name attribute is consistent with the source that we’re actually downloading. Perl packages are made available in all-packages.nix through the variable perlPackages . For instance, if you have a package that needs ClassC3 , you would typically write
foo = import ../path/to/foo.nix {
inherit stdenv fetchurl ...;
inherit (perlPackages) ClassC3;
};
- in all-packages.nix . You can test building a Perl
- package as follows:
+ in all-packages.nix . You can test building a Perl package as follows:
$ nix-build -A perlPackages.ClassC3
- buildPerlPackage adds perl- to the
- start of the name attribute, so the package above is actually called
- perl-Class-C3-0.21 . So to install it, you can say:
+ buildPerlPackage adds perl- to the start of the name attribute, so the package above is actually called perl-Class-C3-0.21 . So to install it, you can say:
$ nix-env -i perl-Class-C3
- (Of course you can also install using the attribute name: nix-env -i
- -A perlPackages.ClassC3 .)
+ (Of course you can also install using the attribute name: nix-env -i -A perlPackages.ClassC3 .)
@@ -64,40 +43,24 @@ foo = import ../path/to/foo.nix {
- In the configure phase, it calls perl Makefile.PL to
- generate a Makefile. You can set the variable
- makeMakerFlags to pass flags to
- Makefile.PL
+ In the configure phase, it calls perl Makefile.PL to generate a Makefile. You can set the variable makeMakerFlags to pass flags to Makefile.PL
- It adds the contents of the PERL5LIB environment variable
- to #! .../bin/perl line of Perl scripts as
- -Idir flags. This ensures
- that a script can find its dependencies. (This can cause this shebang line
- to become too long for Darwin to handle; see the note below.)
+ It adds the contents of the PERL5LIB environment variable to #! .../bin/perl line of Perl scripts as -Idir flags. This ensures that a script can find its dependencies. (This can cause this shebang line to become too long for Darwin to handle; see the note below.)
- In the fixup phase, it writes the propagated build inputs
- (propagatedBuildInputs ) to the file
- $out/nix-support/propagated-user-env-packages .
- nix-env recursively installs all packages listed in
- this file when you install a package that has it. This ensures that a Perl
- package can find its dependencies.
+ In the fixup phase, it writes the propagated build inputs (propagatedBuildInputs ) to the file $out/nix-support/propagated-user-env-packages . nix-env recursively installs all packages listed in this file when you install a package that has it. This ensures that a Perl package can find its dependencies.
- buildPerlPackage is built on top of
- stdenv , so everything can be customised in the usual way.
- For instance, the BerkeleyDB module has a
- preConfigure hook to generate a configuration file used by
- Makefile.PL :
+ buildPerlPackage is built on top of stdenv , so everything can be customised in the usual way. For instance, the BerkeleyDB module has a preConfigure hook to generate a configuration file used by Makefile.PL :
{ buildPerlPackage, fetchurl, db }:
@@ -118,12 +81,7 @@ buildPerlPackage rec {
- Dependencies on other Perl packages can be specified in the
- buildInputs and propagatedBuildInputs
- attributes. If something is exclusively a build-time dependency, use
- buildInputs ; if it’s (also) a runtime dependency, use
- propagatedBuildInputs . For instance, this builds a Perl
- module that has runtime dependencies on a bunch of other modules:
+ Dependencies on other Perl packages can be specified in the buildInputs and propagatedBuildInputs attributes. If something is exclusively a build-time dependency, use buildInputs ; if it’s (also) a runtime dependency, use propagatedBuildInputs . For instance, this builds a Perl module that has runtime dependencies on a bunch of other modules:
ClassC3Componentised = buildPerlPackage rec {
name = "Class-C3-Componentised-1.0004";
@@ -139,11 +97,7 @@ ClassC3Componentised = buildPerlPackage rec {
- On Darwin, if a script has too many
- -Idir flags in its first line
- (its “shebang line”), it will not run. This can be worked around by calling
- the shortenPerlShebang function from the
- postInstall phase:
+ On Darwin, if a script has too many -Idir flags in its first line (its “shebang line”), it will not run. This can be worked around by calling the shortenPerlShebang function from the postInstall phase:
{ stdenv, buildPerlPackage, fetchurl, shortenPerlShebang }:
@@ -162,20 +116,14 @@ ImageExifTool = buildPerlPackage {
'';
};
- This will remove the -I flags from the shebang line,
- rewrite them in the use lib form, and put them on the next
- line instead. This function can be given any number of Perl scripts as
- arguments; it will modify them in-place.
+ This will remove the -I flags from the shebang line, rewrite them in the use lib form, and put them on the next line instead. This function can be given any number of Perl scripts as arguments; it will modify them in-place.
Generation from CPAN
- Nix expressions for Perl packages can be generated (almost) automatically
- from CPAN. This is done by the program
- nix-generate-from-cpan , which can be installed as
- follows:
+ Nix expressions for Perl packages can be generated (almost) automatically from CPAN. This is done by the program nix-generate-from-cpan , which can be installed as follows:
@@ -183,9 +131,7 @@ ImageExifTool = buildPerlPackage {
- This program takes a Perl module name, looks it up on CPAN, fetches and
- unpacks the corresponding package, and prints a Nix expression on standard
- output. For example:
+ This program takes a Perl module name, looks it up on CPAN, fetches and unpacks the corresponding package, and prints a Nix expression on standard output. For example:
$ nix-generate-from-cpan XML::Simple
XMLSimple = buildPerlPackage rec {
@@ -201,9 +147,7 @@ ImageExifTool = buildPerlPackage {
};
};
- The output can be pasted into
- pkgs/top-level/perl-packages.nix or wherever else you
- need it.
+ The output can be pasted into pkgs/top-level/perl-packages.nix or wherever else you need it.
@@ -211,13 +155,7 @@ ImageExifTool = buildPerlPackage {
Cross-compiling modules
- Nixpkgs has experimental support for cross-compiling Perl modules. In many
- cases, it will just work out of the box, even for modules with native
- extensions. Sometimes, however, the Makefile.PL for a module may
- (indirectly) import a native module. In that case, you will need to make a
- stub for that module that will satisfy the Makefile.PL and install it into
- lib/perl5/site_perl/cross_perl/${perl.version} . See the
- postInstall for DBI for an example.
+ Nixpkgs has experimental support for cross-compiling Perl modules. In many cases, it will just work out of the box, even for modules with native extensions. Sometimes, however, the Makefile.PL for a module may (indirectly) import a native module. In that case, you will need to make a stub for that module that will satisfy the Makefile.PL and install it into lib/perl5/site_perl/cross_perl/${perl.version} . See the postInstall for DBI for an example.
diff --git a/doc/languages-frameworks/python.section.md b/doc/languages-frameworks/python.section.md
index 88dc42ebc6c..1bedebd1190 100644
--- a/doc/languages-frameworks/python.section.md
+++ b/doc/languages-frameworks/python.section.md
@@ -144,6 +144,24 @@ What's happening here?
2. Then we create a Python 3.5 environment with the `withPackages` function.
3. The `withPackages` function expects us to provide a function as an argument that takes the set of all python packages and returns a list of packages to include in the environment. Here, we select the packages `numpy` and `toolz` from the package set.
+To combine this with `mkShell` you can:
+
+```nix
+with import {};
+
+let
+ pythonEnv = python35.withPackages (ps: [
+ ps.numpy
+ ps.toolz
+ ]);
+in mkShell {
+ buildInputs = [
+ pythonEnv
+ hello
+ ];
+}
+```
+
##### Execute command with `--run`
A convenient option with `nix-shell` is the `--run`
option, with which you can execute a command in the `nix-shell`. We can
@@ -593,7 +611,7 @@ as the interpreter unless overridden otherwise.
All parameters from `stdenv.mkDerivation` function are still supported. The following are specific to `buildPythonPackage`:
* `catchConflicts ? true`: If `true`, abort package build if a package name appears more than once in dependency tree. Default is `true`.
-* `disabled` ? false: If `true`, package is not build for the particular Python interpreter version.
+* `disabled` ? false: If `true`, package is not built for the particular Python interpreter version.
* `dontWrapPythonPrograms ? false`: Skip wrapping of python programs.
* `permitUserSite ? false`: Skip setting the `PYTHONNOUSERSITE` environment variable in wrapped programs.
* `installFlags ? []`: A list of strings. Arguments to be passed to `pip install`. To pass options to `python setup.py install`, use `--install-option`. E.g., `installFlags=["--install-option='--cpp_implementation'"]`.
@@ -850,9 +868,8 @@ Note: There is a boolean value `lib.inNixShell` set to `true` if nix-shell is in
Packages inside nixpkgs are written by hand. However many tools exist in
community to help save time. No tool is preferred at the moment.
-- [python2nix](https://github.com/proger/python2nix) by Vladimir Kirillov
-- [pypi2nix](https://github.com/garbas/pypi2nix) by Rok Garbas
-- [pypi2nix](https://github.com/offlinehacker/pypi2nix) by Jaka Hudoklin
+- [pypi2nix](https://github.com/nix-community/pypi2nix): Generate Nix expressions for your Python project. Note that [sharing derivations from pypi2nix with nixpkgs is possible but not encouraged](https://github.com/nix-community/pypi2nix/issues/222#issuecomment-443497376).
+- [python2nix](https://github.com/proger/python2nix) by Vladimir Kirillov.
### Deterministic builds
diff --git a/doc/languages-frameworks/qt.xml b/doc/languages-frameworks/qt.xml
index 3332ce8c06e..8d97de504ad 100644
--- a/doc/languages-frameworks/qt.xml
+++ b/doc/languages-frameworks/qt.xml
@@ -4,16 +4,12 @@
Qt
- This section describes the differences between Nix expressions for Qt
- libraries and applications and Nix expressions for other C++ software. Some
- knowledge of the latter is assumed. There are primarily two problems which
- the Qt infrastructure is designed to address: ensuring consistent versioning
- of all dependencies and finding dependencies at runtime.
+ This section describes the differences between Nix expressions for Qt libraries and applications and Nix expressions for other C++ software. Some knowledge of the latter is assumed. There are primarily two problems which the Qt infrastructure is designed to address: ensuring consistent versioning of all dependencies and finding dependencies at runtime.
- Nix expression for a Qt package (default.nix )
-
+ Nix expression for a Qt package (default.nix )
+
{ mkDerivation, lib, qtbase }:
mkDerivation {
@@ -26,53 +22,36 @@ mkDerivation {
-
-
- Import mkDerivation and Qt (such as
- qtbase modules directly. Do not
- import Qt package sets; the Qt versions of dependencies may not be
- coherent, causing build and runtime failures.
-
-
-
-
- Use mkDerivation instead of
- stdenv.mkDerivation . mkDerivation
- is a wrapper around stdenv.mkDerivation which
- applies some Qt-specific settings.
- This deriver accepts the same arguments as
- stdenv.mkDerivation ; refer to
- for details.
-
-
- To use another deriver instead of
- stdenv.mkDerivation , use
- mkDerivationWith :
+
+
+ Import mkDerivation and Qt (such as qtbase modules directly. Do not import Qt package sets; the Qt versions of dependencies may not be coherent, causing build and runtime failures.
+
+
+
+
+ Use mkDerivation instead of stdenv.mkDerivation . mkDerivation is a wrapper around stdenv.mkDerivation which applies some Qt-specific settings. This deriver accepts the same arguments as stdenv.mkDerivation ; refer to for details.
+
+
+ To use another deriver instead of stdenv.mkDerivation , use mkDerivationWith :
mkDerivationWith myDeriver {
# ...
}
- If you cannot use mkDerivationWith , please refer to
- .
-
-
-
-
- mkDerivation accepts the same arguments as
- stdenv.mkDerivation , such as
- buildInputs .
-
-
+ If you cannot use mkDerivationWith , please refer to .
+
+
+
+
+ mkDerivation accepts the same arguments as stdenv.mkDerivation , such as buildInputs .
+
+
- Locating runtime dependencies
-
- Qt applications need to be wrapped to find runtime dependencies. If you
- cannot use mkDerivation or
- mkDerivationWith above, include
- wrapQtAppsHook in nativeBuildInputs :
+ Locating runtime dependencies
+
+ Qt applications need to be wrapped to find runtime dependencies. If you cannot use mkDerivation or mkDerivationWith above, include wrapQtAppsHook in nativeBuildInputs :
stdenv.mkDerivation {
# ...
@@ -80,13 +59,11 @@ stdenv.mkDerivation {
nativeBuildInputs = [ wrapQtAppsHook ];
}
-
+
- Entries added to qtWrapperArgs are used to modify the
- wrappers created by wrapQtAppsHook . The entries are
- passed as arguments to .
+ Entries added to qtWrapperArgs are used to modify the wrappers created by wrapQtAppsHook . The entries are passed as arguments to .
mkDerivation {
# ...
@@ -97,10 +74,7 @@ mkDerivation {
- Set dontWrapQtApps to stop applications from being
- wrapped automatically. It is required to wrap applications manually with
- wrapQtApp , using the syntax of
- :
+ Set dontWrapQtApps to stop applications from being wrapped automatically. It is required to wrap applications manually with wrapQtApp , using the syntax of :
mkDerivation {
# ...
@@ -115,16 +89,12 @@ mkDerivation {
- wrapQtAppsHook ignores files that are non-ELF executables.
- This means that scripts won't be automatically wrapped so you'll need to manually
- wrap them as previously mentioned. An example of when you'd always need to do this
- is with Python applications that use PyQT.
+ wrapQtAppsHook ignores files that are non-ELF executables. This means that scripts won't be automatically wrapped so you'll need to manually wrap them as previously mentioned. An example of when you'd always need to do this is with Python applications that use PyQT.
- Libraries are built with every available version of Qt. Use the meta.broken
- attribute to disable the package for unsupported Qt versions:
+ Libraries are built with every available version of Qt. Use the meta.broken attribute to disable the package for unsupported Qt versions:
mkDerivation {
# ...
@@ -136,13 +106,11 @@ mkDerivation {
- Adding a library to Nixpkgs
-
- Add a Qt library to all-packages.nix by adding it to the
- collection inside mkLibsForQt5 . This ensures that the
- library is built with every available version of Qt as needed.
-
- Adding a Qt library to all-packages.nix
+ Adding a library to Nixpkgs
+
+ Add a Qt library to all-packages.nix by adding it to the collection inside mkLibsForQt5 . This ensures that the library is built with every available version of Qt as needed.
+
+ Adding a Qt library to all-packages.nix
{
# ...
@@ -156,19 +124,16 @@ mkDerivation {
# ...
}
-
-
+
+
- Adding an application to Nixpkgs
-
- Add a Qt application to all-packages.nix using
- libsForQt5.callPackage instead of the usual
- callPackage . The former ensures that all dependencies
- are built with the same version of Qt.
-
- Adding a Qt application to all-packages.nix
+ Adding an application to Nixpkgs
+
+ Add a Qt application to all-packages.nix using libsForQt5.callPackage instead of the usual callPackage . The former ensures that all dependencies are built with the same version of Qt.
+
+ Adding a Qt application to all-packages.nix
{
# ...
@@ -178,8 +143,7 @@ mkDerivation {
# ...
}
-
-
+
+
-
diff --git a/doc/languages-frameworks/r.section.md b/doc/languages-frameworks/r.section.md
index c8f02bd1478..d4e1617779c 100644
--- a/doc/languages-frameworks/r.section.md
+++ b/doc/languages-frameworks/r.section.md
@@ -1,5 +1,5 @@
-R packages
-==========
+R
+=
## Installation
diff --git a/doc/languages-frameworks/ruby.xml b/doc/languages-frameworks/ruby.xml
index df4e5acb22c..b28745fd6e2 100644
--- a/doc/languages-frameworks/ruby.xml
+++ b/doc/languages-frameworks/ruby.xml
@@ -4,11 +4,7 @@
Ruby
- There currently is support to bundle applications that are packaged as Ruby
- gems. The utility "bundix" allows you to write a
- Gemfile , let bundler create a
- Gemfile.lock , and then convert this into a nix
- expression that contains all Gem dependencies automatically.
+ There currently is support to bundle applications that are packaged as Ruby gems. The utility "bundix" allows you to write a Gemfile , let bundler create a Gemfile.lock , and then convert this into a nix expression that contains all Gem dependencies automatically.
@@ -45,9 +41,7 @@ bundlerEnv rec {
- Please check in the Gemfile ,
- Gemfile.lock and the gemset.nix so
- future updates can be run easily.
+ Please check in the Gemfile , Gemfile.lock and the gemset.nix so future updates can be run easily.
@@ -62,10 +56,7 @@ $ nix-shell -p bundix --run 'bundix'
- For tools written in Ruby - i.e. where the desire is to install a package and
- then execute e.g. rake at the command line, there is an
- alternative builder called bundlerApp . Set up the
- gemset.nix the same way, and then, for example:
+ For tools written in Ruby - i.e. where the desire is to install a package and then execute e.g. rake at the command line, there is an alternative builder called bundlerApp . Set up the gemset.nix the same way, and then, for example:
@@ -87,29 +78,11 @@ bundlerApp {
- The chief advantage of bundlerApp over
- bundlerEnv is the executables introduced in the
- environment are precisely those selected in the exes list,
- as opposed to bundlerEnv which adds all the executables
- made available by gems in the gemset, which can mean e.g.
- rspec or rake in unpredictable versions
- available from various packages.
+ The chief advantage of bundlerApp over bundlerEnv is the executables introduced in the environment are precisely those selected in the exes list, as opposed to bundlerEnv which adds all the executables made available by gems in the gemset, which can mean e.g. rspec or rake in unpredictable versions available from various packages.
- Resulting derivations for both builders also have two helpful attributes,
- env and wrappedRuby . The first one
- allows one to quickly drop into nix-shell with the
- specified environment present. E.g. nix-shell -A sensu.env
- would give you an environment with Ruby preset so it has all the libraries
- necessary for sensu in its paths. The second one can be
- used to make derivations from custom Ruby scripts which have
- Gemfile s with their dependencies specified. It is a
- derivation with ruby wrapped so it can find all the needed
- dependencies. For example, to make a derivation my-script
- for a my-script.rb (which should be placed in
- bin ) you should run bundix as
- specified above and then use bundlerEnv like this:
+ Resulting derivations for both builders also have two helpful attributes, env and wrappedRuby . The first one allows one to quickly drop into nix-shell with the specified environment present. E.g. nix-shell -A sensu.env would give you an environment with Ruby preset so it has all the libraries necessary for sensu in its paths. The second one can be used to make derivations from custom Ruby scripts which have Gemfile s with their dependencies specified. It is a derivation with ruby wrapped so it can find all the needed dependencies. For example, to make a derivation my-script for a my-script.rb (which should be placed in bin ) you should run bundix as specified above and then use bundlerEnv like this:
diff --git a/doc/languages-frameworks/rust.section.md b/doc/languages-frameworks/rust.section.md
index 2d9338f2e89..709a0d504cf 100644
--- a/doc/languages-frameworks/rust.section.md
+++ b/doc/languages-frameworks/rust.section.md
@@ -4,7 +4,7 @@ author: Matthias Beyer
date: 2017-03-05
---
-# User's Guide to the Rust Infrastructure
+# Rust
To install the rust compiler and cargo put
@@ -43,6 +43,7 @@ rustPlatform.buildRustPackage rec {
};
cargoSha256 = "0q68qyl2h6i0qsz82z840myxlnjay8p1w5z7hfyr8fqp7wgwa9cx";
+ verifyCargoDeps = true;
meta = with stdenv.lib; {
description = "A fast line-oriented regex search tool, similar to ag and ack";
@@ -64,6 +65,20 @@ When the `Cargo.lock`, provided by upstream, is not in sync with the
added in `cargoPatches` will also be prepended to the patches in `patches` at
build-time.
+When `verifyCargoDeps` is set to `true`, the build will also verify that the
+`cargoSha256` is not out of date by comparing the `Cargo.lock` file in both the `cargoDeps` and `src`. Note that this option changes the value of `cargoSha256` since it also copies the `Cargo.lock` in it. To avoid breaking backward-compatibility this option is not enabled by default but hopefully will be in the future.
+
+### Building a crate for a different target
+
+To build your crate with a different cargo `--target` simply specify the `target` attribute:
+
+```nix
+pkgs.rustPlatform.buildRustPackage {
+ (...)
+ target = "x86_64-fortanix-unknown-sgx";
+}
+```
+
## Compiling Rust crates using Nix instead of Cargo
### Simple operation
@@ -188,7 +203,7 @@ argument and returns a set that contains all attribute that should be
overwritten.
For more complicated cases, such as when parts of the crate's
-derivation depend on the the crate's version, the `attrs` argument of
+derivation depend on the crate's version, the `attrs` argument of
the override above can be read, as in the following example, which
patches the derivation:
diff --git a/doc/languages-frameworks/texlive.xml b/doc/languages-frameworks/texlive.xml
index 97f274933be..7876cc213b6 100644
--- a/doc/languages-frameworks/texlive.xml
+++ b/doc/languages-frameworks/texlive.xml
@@ -4,8 +4,7 @@
TeX Live
- Since release 15.09 there is a new TeX Live packaging that lives entirely
- under attribute texlive .
+ Since release 15.09 there is a new TeX Live packaging that lives entirely under attribute texlive .
@@ -14,28 +13,23 @@
- For basic usage just pull texlive.combined.scheme-basic
- for an environment with basic LaTeX support.
+ For basic usage just pull texlive.combined.scheme-basic for an environment with basic LaTeX support.
- It typically won't work to use separately installed packages together.
- Instead, you can build a custom set of packages like this:
+ It typically won't work to use separately installed packages together. Instead, you can build a custom set of packages like this:
texlive.combine {
inherit (texlive) scheme-small collection-langkorean algorithms cm-super;
}
- There are all the schemes, collections and a few thousand packages, as
- defined upstream (perhaps with tiny differences).
+ There are all the schemes, collections and a few thousand packages, as defined upstream (perhaps with tiny differences).
- By default you only get executables and files needed during runtime, and a
- little documentation for the core packages. To change that, you need to
- add pkgFilter function to combine .
+ By default you only get executables and files needed during runtime, and a little documentation for the core packages. To change that, you need to add pkgFilter function to combine .
texlive.combine {
# inherit (texlive) whatever-you-want;
@@ -59,10 +53,7 @@ nix-repl> texlive.collection-
- Note that the wrapper assumes that the result has a chance to be useful.
- For example, the core executables should be present, as well as some core
- data files. The supported way of ensuring this is by including some
- scheme, for example scheme-basic , into the combination.
+ Note that the wrapper assumes that the result has a chance to be useful. For example, the core executables should be present, as well as some core data files. The supported way of ensuring this is by including some scheme, for example scheme-basic , into the combination.
@@ -84,14 +75,12 @@ nix-repl> texlive.collection-
- feature/bug: when a package is rejected by pkgFilter ,
- its dependencies are still propagated;
+ 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.
+ 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 537e7b93e52..05a23d26cf2 100644
--- a/doc/languages-frameworks/vim.section.md
+++ b/doc/languages-frameworks/vim.section.md
@@ -3,7 +3,7 @@ title: User's Guide for Vim in Nixpkgs
author: Marc Weber
date: 2016-06-25
---
-# User's Guide to Vim Plugins/Addons/Bundles/Scripts in Nixpkgs
+# Vim
Both Neovim and Vim can be configured to include your favorite plugins
and additional libraries.
diff --git a/doc/manual.xml b/doc/manual.xml
index ab845e1a108..1f69872d2a7 100644
--- a/doc/manual.xml
+++ b/doc/manual.xml
@@ -5,21 +5,37 @@
Version
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ Using Nixpkgs
+
+
+
+
+
+
+ Standard environment
+
+
+
+
+
+
+
+ Builders
+
+
+
+
+
+
+
+
+ Contributing to Nixpkgs
+
+
+
+
+
+
diff --git a/doc/multiple-output.xml b/doc/multiple-output.xml
deleted file mode 100644
index d0247e081f9..00000000000
--- a/doc/multiple-output.xml
+++ /dev/null
@@ -1,330 +0,0 @@
-
-
-]>
-
- Multiple-output packages
-
- Introduction
-
-
- The Nix language allows a derivation to produce multiple outputs, which is
- similar to what is utilized by other Linux distribution packaging systems.
- The outputs reside in separate Nix store paths, so they can be mostly
- handled independently of each other, including passing to build inputs,
- garbage collection or binary substitution. The exception is that building
- from source always produces all the outputs.
-
-
-
- The main motivation is to save disk space by reducing runtime closure sizes;
- consequently also sizes of substituted binaries get reduced. Splitting can
- be used to have more granular runtime dependencies, for example the typical
- reduction is to split away development-only files, as those are typically
- not needed during runtime. As a result, closure sizes of many packages can
- get reduced to a half or even much less.
-
-
-
-
- The reduction effects could be instead achieved by building the parts in
- completely separate derivations. That would often additionally reduce
- build-time closures, but it tends to be much harder to write such
- derivations, as build systems typically assume all parts are being built at
- once. This compromise approach of single source package producing multiple
- binary packages is also utilized often by rpm and deb.
-
-
-
-
- Installing a split package
-
-
- When installing a package via systemPackages or
- nix-env you have several options:
-
-
-
-
-
- You can install particular outputs explicitly, as each is available in the
- Nix language as an attribute of the package. The
- outputs attribute contains a list of output names.
-
-
-
-
- You can let it use the default outputs. These are handled by
- meta.outputsToInstall attribute that contains a list of
- output names.
-
-
- TODO: more about tweaking the attribute, etc.
-
-
-
-
- NixOS provides configuration option
- environment.extraOutputsToInstall that allows adding
- extra outputs of environment.systemPackages atop the
- default ones. It's mainly meant for documentation and debug symbols, and
- it's also modified by specific options.
-
-
-
- At this moment there is no similar configurability for packages installed
- by nix-env . You can still use approach from
- to override
- meta.outputsToInstall attributes, but that's a rather
- inconvenient way.
-
-
-
-
-
-
- Using a split package
-
-
- In the Nix language the individual outputs can be reached explicitly as
- attributes, e.g. coreutils.info , but the typical case is
- just using packages as build inputs.
-
-
-
- When a multiple-output derivation gets into a build input of another
- derivation, the dev output is added if it exists,
- otherwise the first output is added. In addition to that,
- propagatedBuildOutputs of that package which by default
- contain $outputBin and $outputLib are
- also added. (See .)
-
-
-
- In some cases it may be desirable to combine different outputs under a
- single store path. A function symlinkJoin can be used to
- do this. (Note that it may negate some closure size benefits of using a
- multiple-output package.)
-
-
-
- Writing a split derivation
-
-
- Here you find how to write a derivation that produces multiple outputs.
-
-
-
- In nixpkgs there is a framework supporting multiple-output derivations. It
- tries to cover most cases by default behavior. You can find the source
- separated in
- <nixpkgs/pkgs/build-support/setup-hooks/multiple-outputs.sh >;
- it's relatively well-readable. The whole machinery is triggered by defining
- the outputs attribute to contain the list of desired
- output names (strings).
-
-
-outputs = [ "bin" "dev" "out" "doc" ];
-
-
- Often such a single line is enough. For each output an equally named
- environment variable is passed to the builder and contains the path in nix
- store for that output. Typically you also want to have the main
- out output, as it catches any files that didn't get
- elsewhere.
-
-
-
-
- There is a special handling of the debug output,
- described at .
-
-
-
-
- Binaries first
-
-
- A commonly adopted convention in nixpkgs is that
- executables provided by the package are contained within its first output.
- This convention allows the dependent packages to reference the executables
- provided by packages in a uniform manner. For instance, provided with the
- knowledge that the perl package contains a
- perl executable it can be referenced as
- ${pkgs.perl}/bin/perl within a Nix derivation that needs
- to execute a Perl script.
-
-
-
- The glibc package is a deliberate single exception to
- the binaries first
convention. The glibc
- has libs as its first output allowing the libraries
- provided by glibc to be referenced directly (e.g.
- ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 ). The
- executables provided by glibc can be accessed via its
- bin attribute (e.g.
- ${stdenv.glibc.bin}/bin/ldd ).
-
-
-
- The reason for why glibc deviates from the convention is
- because referencing a library provided by glibc is a
- very common operation among Nix packages. For instance, third-party
- executables packaged by Nix are typically patched and relinked with the
- relevant version of glibc libraries from Nix packages
- (please see the documentation on
- patchelf for more
- details).
-
-
-
-
- File type groups
-
-
- The support code currently recognizes some particular kinds of outputs and
- either instructs the build system of the package to put files into their
- desired outputs or it moves the files during the fixup phase. Each group of
- file types has an outputFoo variable specifying the
- output name where they should go. If that variable isn't defined by the
- derivation writer, it is guessed – a default output name is defined,
- falling back to other possibilities if the output isn't defined.
-
-
-
-
-
- $outputDev
-
-
-
- is for development-only files. These include C(++) headers, pkg-config,
- cmake and aclocal files. They go to dev or
- out by default.
-
-
-
-
-
- $outputBin
-
-
-
- is meant for user-facing binaries, typically residing in bin/. They go
- to bin or out by default.
-
-
-
-
-
- $outputLib
-
-
-
- is meant for libraries, typically residing in lib/
- and libexec/ . They go to lib or
- out by default.
-
-
-
-
-
- $outputDoc
-
-
-
- is for user documentation, typically residing in
- share/doc/ . It goes to doc or
- out by default.
-
-
-
-
-
- $outputDevdoc
-
-
-
- is for developer documentation. Currently we count
- gtk-doc and devhelp books in there. It goes to devdoc
- or is removed (!) by default. This is because e.g. gtk-doc tends to be
- rather large and completely unused by nixpkgs users.
-
-
-
-
-
- $outputMan
-
-
-
- is for man pages (except for section 3). They go to
- man or $outputBin by default.
-
-
-
-
-
- $outputDevman
-
-
-
- is for section 3 man pages. They go to devman or
- $outputMan by default.
-
-
-
-
-
- $outputInfo
-
-
-
- is for info pages. They go to info or
- $outputBin by default.
-
-
-
-
-
-
-
- Common caveats
-
-
-
-
- Some configure scripts don't like some of the parameters passed by
- default by the framework, e.g. --docdir=/foo/bar . You
- can disable this by setting setOutputFlags = false; .
-
-
-
-
- The outputs of a single derivation can retain references to each other,
- but note that circular references are not allowed. (And each
- strongly-connected component would act as a single output anyway.)
-
-
-
-
- Most of split packages contain their core functionality in libraries.
- These libraries tend to refer to various kind of data that typically gets
- into out , e.g. locale strings, so there is often no
- advantage in separating the libraries into lib , as
- keeping them in out is easier.
-
-
-
-
- Some packages have hidden assumptions on install paths, which complicates
- splitting.
-
-
-
-
-
-
-
diff --git a/doc/overlays.xml b/doc/overlays.xml
deleted file mode 100644
index bff2339ca93..00000000000
--- a/doc/overlays.xml
+++ /dev/null
@@ -1,195 +0,0 @@
-
- Overlays
-
- This chapter describes how to extend and change Nixpkgs using overlays.
- Overlays are used to add layers in the fixed-point used by Nixpkgs to compose
- the set of all packages.
-
-
- Nixpkgs can be configured with a list of overlays, which are applied in
- order. This means that the order of the overlays can be significant if
- multiple layers override the same package.
-
-
-
- Installing overlays
-
-
- The list of overlays can be set either explicitly in a Nix expression, or
- through <nixpkgs-overlays> or user configuration
- files.
-
-
-
- Set overlays in NixOS or Nix expressions
-
-
- On a NixOS system the value of the nixpkgs.overlays
- option, if present, is passed to the system Nixpkgs directly as an
- argument. Note that this does not affect the overlays for non-NixOS
- operations (e.g. nix-env ), which are
- looked up independently.
-
-
-
- The list of overlays can be passed explicitly when importing nixpkgs, for
- example import <nixpkgs> { overlays = [ overlay1 overlay2 ];
- } .
-
-
-
- Further overlays can be added by calling the pkgs.extend
- or pkgs.appendOverlays , although it is often preferable
- to avoid these functions, because they recompute the Nixpkgs fixpoint,
- which is somewhat expensive to do.
-
-
-
-
- Install overlays via configuration lookup
-
-
- The list of overlays is determined as follows.
-
-
-
-
-
-
- First, if an
- overlays
- argument to the Nixpkgs function itself is given, then that is
- used and no path lookup will be performed.
-
-
-
-
- Otherwise, if the Nix path entry
- <nixpkgs-overlays> exists, we look for overlays at
- that path, as described below.
-
-
- See the section on NIX_PATH in the Nix manual for
- more details on how to set a value for
- <nixpkgs-overlays>.
-
-
-
-
- If one of ~/.config/nixpkgs/overlays.nix and
- ~/.config/nixpkgs/overlays/ exists, then we look
- for overlays at that path, as described below. It is an error if both
- exist.
-
-
-
-
-
-
- If we are looking for overlays at a path, then there are two cases:
-
-
-
- If the path is a file, then the file is imported as a Nix expression and
- used as the list of overlays.
-
-
-
-
- If the path is a directory, then we take the content of the directory,
- order it lexicographically, and attempt to interpret each as an overlay
- by:
-
-
-
- Importing the file, if it is a .nix file.
-
-
-
-
- Importing a top-level default.nix file, if it is
- a directory.
-
-
-
-
-
-
-
-
-
- Because overlays that are set in NixOS configuration do not affect
- non-NixOS operations such as nix-env , the
- overlays.nix option provides a convenient way to use
- the same overlays for a NixOS system configuration and user configuration:
- the same file can be used as overlays.nix and imported
- as the value of nixpkgs.overlays .
-
-
-
-
-
-
-
- Defining overlays
-
-
- Overlays are Nix functions which accept two arguments, conventionally called
- self and super , and return a set of
- packages. For example, the following is a valid overlay.
-
-
-
-self: super:
-
-{
- boost = super.boost.override {
- python = self.python3;
- };
- rr = super.callPackage ./pkgs/rr {
- stdenv = self.stdenv_32bit;
- };
-}
-
-
-
- The first argument (self ) corresponds to the final
- package set. You should use this set for the dependencies of all packages
- specified in your overlay. For example, all the dependencies of
- rr in the example above come from
- self , as well as the overridden dependencies used in the
- boost override.
-
-
-
- The second argument (super ) corresponds to the result of
- the evaluation of the previous stages of Nixpkgs. It does not contain any of
- the packages added by the current overlay, nor any of the following
- overlays. This set should be used either to refer to packages you wish to
- override, or to access functions defined in Nixpkgs. For example, the
- original recipe of boost in the above example, comes from
- super , as well as the callPackage
- function.
-
-
-
- The value returned by this function should be a set similar to
- pkgs/top-level/all-packages.nix , containing overridden
- and/or new packages.
-
-
-
- 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.
-
-
-
diff --git a/doc/package-notes.xml b/doc/package-notes.xml
deleted file mode 100644
index d2c660e22a9..00000000000
--- a/doc/package-notes.xml
+++ /dev/null
@@ -1,590 +0,0 @@
-
- Package Notes
-
- This chapter contains information about how to use and maintain the Nix
- expressions for a number of specific packages, such as the Linux kernel or
- X.org.
-
-
-
- Linux kernel
-
-
- The Nix expressions to build the Linux kernel are in
- pkgs/os-specific/linux/kernel .
-
-
-
- The function that builds the kernel has an argument
- kernelPatches which should be a list of {name,
- patch, extraConfig} attribute sets, where name
- is the name of the patch (which is included in the kernel’s
- meta.description attribute), patch is
- the patch itself (possibly compressed), and extraConfig
- (optional) is a string specifying extra options to be concatenated to the
- kernel configuration file (.config ).
-
-
-
- The kernel derivation exports an attribute features
- specifying whether optional functionality is or isn’t enabled. This is
- used in NixOS to implement kernel-specific behaviour. For instance, if the
- kernel has the iwlwifi feature (i.e. has built-in support
- for Intel wireless chipsets), then NixOS doesn’t have to build the
- external iwlwifi package:
-
-modulesTree = [kernel]
- ++ pkgs.lib.optional (!kernel.features ? iwlwifi) kernelPackages.iwlwifi
- ++ ...;
-
-
-
-
- How to add a new (major) version of the Linux kernel to Nixpkgs:
-
-
-
- Copy the old Nix expression (e.g. linux-2.6.21.nix )
- to the new one (e.g. linux-2.6.22.nix ) and update
- it.
-
-
-
-
- Add the new kernel to all-packages.nix (e.g., create
- an attribute kernel_2_6_22 ).
-
-
-
-
- Now we’re going to update the kernel configuration. First unpack the
- kernel. Then for each supported platform (i686 ,
- x86_64 , uml ) do the following:
-
-
-
- Make an copy from the old config (e.g.
- config-2.6.21-i686-smp ) to the new one (e.g.
- config-2.6.22-i686-smp ).
-
-
-
-
- Copy the config file for this platform (e.g.
- config-2.6.22-i686-smp ) to
- .config in the kernel source tree.
-
-
-
-
- Run make oldconfig
- ARCH={i386,x86_64,um} and answer
- all questions. (For the uml configuration, also add
- SHELL=bash .) Make sure to keep the configuration
- consistent between platforms (i.e. don’t enable some feature on
- i686 and disable it on x86_64 ).
-
-
-
-
- If needed you can also run make menuconfig :
-
-$ nix-env -i ncurses
-$ export NIX_CFLAGS_LINK=-lncurses
-$ make menuconfig ARCH=arch
-
-
-
-
- Copy .config over the new config file (e.g.
- config-2.6.22-i686-smp ).
-
-
-
-
-
-
-
- Test building the kernel: nix-build -A kernel_2_6_22 .
- If it compiles, ship it! For extra credit, try booting NixOS with it.
-
-
-
-
- It may be that the new kernel requires updating the external kernel
- modules and kernel-dependent packages listed in the
- linuxPackagesFor function in
- all-packages.nix (such as the NVIDIA drivers, AUFS,
- etc.). If the updated packages aren’t backwards compatible with older
- kernels, you may need to keep the older versions around.
-
-
-
-
-
-
-
- X.org
-
-
- The Nix expressions for the X.org packages reside in
- pkgs/servers/x11/xorg/default.nix . This file is
- automatically generated from lists of tarballs in an X.org release. As such
- it should not be modified directly; rather, you should modify the lists, the
- generator script or the file
- pkgs/servers/x11/xorg/overrides.nix , in which you can
- override or add to the derivations produced by the generator.
-
-
-
- The generator is invoked as follows:
-
-$ cd pkgs/servers/x11/xorg
-$ cat tarballs-7.5.list extra.list old.list \
- | perl ./generate-expr-from-tarballs.pl
-
- For each of the tarballs in the .list files, the script
- downloads it, unpacks it, and searches its configure.ac
- and *.pc.in files for dependencies. This information is
- used to generate default.nix . The generator caches
- downloaded tarballs between runs. Pay close attention to the NOT
- FOUND: name messages at the end of the
- run, since they may indicate missing dependencies. (Some might be optional
- dependencies, however.)
-
-
-
- A file like tarballs-7.5.list contains all tarballs in
- a X.org release. It can be generated like this:
-
-$ export i="mirror://xorg/X11R7.4/src/everything/"
-$ cat $(PRINT_PATH=1 nix-prefetch-url $i | tail -n 1) \
- | perl -e 'while (<>) { if (/(href|HREF)="([^"]*.bz2)"/) { print "$ENV{'i'}$2\n"; }; }' \
- | sort > tarballs-7.4.list
-
- extra.list contains libraries that aren’t part of
- X.org proper, but are closely related to it, such as
- libxcb . old.list contains some
- packages that were removed from X.org, but are still needed by some people
- or by other packages (such as imake ).
-
-
-
- If the expression for a package requires derivation attributes that the
- generator cannot figure out automatically (say, patches
- or a postInstall hook), you should modify
- pkgs/servers/x11/xorg/overrides.nix .
-
-
-
-
-
-
-
-
- Eclipse
-
-
- The Nix expressions related to the Eclipse platform and IDE are in
- pkgs/applications/editors/eclipse .
-
-
-
- Nixpkgs provides a number of packages that will install Eclipse in its
- various forms. These range from the bare-bones Eclipse Platform to the more
- fully featured Eclipse SDK or Scala-IDE packages and multiple version are
- often available. It is possible to list available Eclipse packages by
- issuing the command:
-
-$ nix-env -f '<nixpkgs>' -qaP -A eclipses --description
-
- Once an Eclipse variant is installed it can be run using the
- eclipse command, as expected. From within Eclipse it is
- then possible to install plugins in the usual manner by either manually
- specifying an Eclipse update site or by installing the Marketplace Client
- plugin and using it to discover and install other plugins. This installation
- method provides an Eclipse installation that closely resemble a manually
- installed Eclipse.
-
-
-
- If you prefer to install plugins in a more declarative manner then Nixpkgs
- also offer a number of Eclipse plugins that can be installed in an
- Eclipse environment . This type of environment is
- created using the function eclipseWithPlugins found
- inside the nixpkgs.eclipses attribute set. This function
- takes as argument { eclipse, plugins ? [], jvmArgs ? [] }
- where eclipse is a one of the Eclipse packages described
- above, plugins is a list of plugin derivations, and
- jvmArgs is a list of arguments given to the JVM running
- the Eclipse. For example, say you wish to install the latest Eclipse
- Platform with the popular Eclipse Color Theme plugin and also allow Eclipse
- to use more RAM. You could then add
-
-packageOverrides = pkgs: {
- myEclipse = with pkgs.eclipses; eclipseWithPlugins {
- eclipse = eclipse-platform;
- jvmArgs = [ "-Xmx2048m" ];
- plugins = [ plugins.color-theme ];
- };
-}
-
- to your Nixpkgs configuration
- (~/.config/nixpkgs/config.nix ) and install it by
- running nix-env -f '<nixpkgs>' -iA myEclipse and
- afterward run Eclipse as usual. It is possible to find out which plugins are
- available for installation using eclipseWithPlugins by
- running
-
-$ nix-env -f '<nixpkgs>' -qaP -A eclipses.plugins --description
-
-
-
-
- If there is a need to install plugins that are not available in Nixpkgs then
- it may be possible to define these plugins outside Nixpkgs using the
- buildEclipseUpdateSite and
- buildEclipsePlugin functions found in the
- nixpkgs.eclipses.plugins attribute set. Use the
- buildEclipseUpdateSite function to install a plugin
- distributed as an Eclipse update site. This function takes { name,
- src } as argument where src indicates the
- Eclipse update site archive. All Eclipse features and plugins within the
- downloaded update site will be installed. When an update site archive is not
- available then the buildEclipsePlugin function can be
- used to install a plugin that consists of a pair of feature and plugin JARs.
- This function takes an argument { name, srcFeature, srcPlugin
- } where srcFeature and
- srcPlugin are the feature and plugin JARs, respectively.
-
-
-
- Expanding the previous example with two plugins using the above functions we
- have
-
-packageOverrides = pkgs: {
- myEclipse = with pkgs.eclipses; eclipseWithPlugins {
- eclipse = eclipse-platform;
- jvmArgs = [ "-Xmx2048m" ];
- plugins = [
- plugins.color-theme
- (plugins.buildEclipsePlugin {
- name = "myplugin1-1.0";
- srcFeature = fetchurl {
- url = "http://…/features/myplugin1.jar";
- sha256 = "123…";
- };
- srcPlugin = fetchurl {
- url = "http://…/plugins/myplugin1.jar";
- sha256 = "123…";
- };
- });
- (plugins.buildEclipseUpdateSite {
- name = "myplugin2-1.0";
- src = fetchurl {
- stripRoot = false;
- url = "http://…/myplugin2.zip";
- sha256 = "123…";
- };
- });
- ];
- };
-}
-
-
-
-
- Elm
-
-
- To start a development environment do nix-shell -p elmPackages.elm elmPackages.elm-format
-
-
-
- To update Elm compiler, see
- nixpkgs/pkgs/development/compilers/elm/README.md .
-
-
-
- To package Elm applications,
- read about
- elm2nix.
-
-
-
- Kakoune
-
-
- Kakoune can be built to autoload plugins:
-(kakoune.override {
- configure = {
- plugins = with pkgs.kakounePlugins; [ parinfer-rust ];
- };
-})
-
-
-
- Interactive shell helpers
-
-
- Some packages provide the shell integration to be more useful. But unlike
- other systems, nix doesn't have a standard share directory location. This is
- why a bunch PACKAGE-share scripts are shipped that print
- the location of the corresponding shared folder. Current list of such
- packages is as following:
-
-
-
- autojump : autojump-share
-
-
-
-
- fzf : fzf-share
-
-
-
- E.g. autojump can then used in the .bashrc like this:
-
- source "$(autojump-share)/autojump.bash"
-
-
-
-
- Weechat
-
-
- Weechat can be configured to include your choice of plugins, reducing its
- closure size from the default configuration which includes all available
- plugins. To make use of this functionality, install an expression that
- overrides its configuration such as
-weechat.override {configure = {availablePlugins, ...}: {
- plugins = with availablePlugins; [ python perl ];
- }
-}
- If the configure function returns an attrset without the
- plugins attribute, availablePlugins
- will be used automatically.
-
-
-
- The plugins currently available are python ,
- perl , ruby , guile ,
- tcl and lua .
-
-
-
- The python and perl plugins allows the addition of extra libraries. For
- instance, the inotify.py script in weechat-scripts
- requires D-Bus or libnotify, and the fish.py script
- requires pycrypto. To use these scripts, use the plugin's
- withPackages attribute:
-weechat.override { configure = {availablePlugins, ...}: {
- plugins = with availablePlugins; [
- (python.withPackages (ps: with ps; [ pycrypto python-dbus ]))
- ];
- };
-}
-
-
-
-
- In order to also keep all default plugins installed, it is possible to use
- the following method:
-weechat.override { configure = { availablePlugins, ... }: {
- plugins = builtins.attrValues (availablePlugins // {
- python = availablePlugins.python.withPackages (ps: with ps; [ pycrypto python-dbus ]);
- });
-}; }
-
-
-
-
- WeeChat allows to set defaults on startup using the
- --run-command . The configure method
- can be used to pass commands to the program:
-weechat.override {
- configure = { availablePlugins, ... }: {
- init = ''
- /set foo bar
- /server add freenode chat.freenode.org
- '';
- };
-}
- Further values can be added to the list of commands when running
- weechat --run-command "your-commands" .
-
-
-
- Additionally it's possible to specify scripts to be loaded when starting
- weechat . These will be loaded before the commands from
- init :
-weechat.override {
- configure = { availablePlugins, ... }: {
- scripts = with pkgs.weechatScripts; [
- weechat-xmpp weechat-matrix-bridge wee-slack
- ];
- init = ''
- /set plugins.var.python.jabber.key "val"
- '':
- };
-}
-
-
-
- In nixpkgs there's a subpackage which contains
- derivations for WeeChat scripts. Such derivations expect a
- passthru.scripts attribute which contains a list of all
- scripts inside the store path. Furthermore all scripts have to live in
- $out/share . An exemplary derivation looks like this:
-{ stdenv, fetchurl }:
-
-stdenv.mkDerivation {
- name = "exemplary-weechat-script";
- src = fetchurl {
- url = "https://scripts.tld/your-scripts.tar.gz";
- sha256 = "...";
- };
- passthru.scripts = [ "foo.py" "bar.lua" ];
- installPhase = ''
- mkdir $out/share
- cp foo.py $out/share
- cp bar.lua $out/share
- '';
-}
-
-
-
- ibus-engines.typing-booster
-
-
- This package is an ibus-based completion method to speed up typing.
-
-
-
- Activating the engine
-
-
- IBus needs to be configured accordingly to activate
- typing-booster . The configuration depends on the desktop
- manager in use. For detailed instructions, please refer to the
- upstream
- docs.
-
-
-
- On NixOS you need to explicitly enable ibus with given
- engines before customizing your desktop to use
- typing-booster . This can be achieved using the
- ibus module:
-{ pkgs, ... }: {
- i18n.inputMethod = {
- enabled = "ibus";
- ibus.engines = with pkgs.ibus-engines; [ typing-booster ];
- };
-}
-
-
-
-
- Using custom hunspell dictionaries
-
-
- The IBus engine is based on hunspell to support
- completion in many languages. By default the dictionaries
- de-de , en-us , fr-moderne
- es-es , it-it ,
- sv-se and sv-fi are in use. To add
- another dictionary, the package can be overridden like this:
-ibus-engines.typing-booster.override {
- langs = [ "de-at" "en-gb" ];
-}
-
-
-
- Note: each language passed to langs must be an
- attribute name in pkgs.hunspellDicts .
-
-
-
-
- Built-in emoji picker
-
-
- The ibus-engines.typing-booster package contains a
- program named emoji-picker . To display all emojis
- correctly, a special font such as noto-fonts-emoji is
- needed:
-
-
-
- On NixOS it can be installed using the following expression:
-{ pkgs, ... }: {
- fonts.fonts = with pkgs; [ noto-fonts-emoji ];
-}
-
-
-
-
- Nginx
-
-
- Nginx is a
- reverse proxy and lightweight webserver.
-
-
-
- ETags on static files served from the Nix store
-
-
- HTTP has a couple different mechanisms for caching to prevent
- clients from having to download the same content repeatedly
- if a resource has not changed since the last time it was requested.
- When nginx is used as a server for static files, it implements
- the caching mechanism based on the
- Last-Modified
- response header automatically; unfortunately, it works by using
- filesystem timestamps to determine the value of the
- Last-Modified header. This doesn't give the
- desired behavior when the file is in the Nix store, because all
- file timestamps are set to 0 (for reasons related to build
- reproducibility).
-
-
-
- Fortunately, HTTP supports an alternative (and more effective)
- caching mechanism: the
- ETag
- response header. The value of the ETag header
- specifies some identifier for the particular content that the
- server is sending (e.g. a hash). When a client makes a second
- request for the same resource, it sends that value back in an
- If-None-Match header. If the ETag value is
- unchanged, then the server does not need to resend the content.
-
-
-
- As of NixOS 19.09, the nginx package in Nixpkgs is patched such
- that when nginx serves a file out of /nix/store ,
- the hash in the store path is used as the ETag
- header in the HTTP response, thus providing proper caching functionality.
- This happens automatically; you do not need to do modify any
- configuration to get this behavior.
-
-
-
-
diff --git a/doc/package-specific-user-notes.xml b/doc/package-specific-user-notes.xml
deleted file mode 100644
index a176f4d1395..00000000000
--- a/doc/package-specific-user-notes.xml
+++ /dev/null
@@ -1,482 +0,0 @@
-
- Package-specific usage notes
-
- These chapters includes some notes
- that apply to specific packages and should
- answer some of the frequently asked questions
- related to Nixpkgs use.
-
- Some useful information related to package use
- can be found in package-specific development notes.
-
-
-
- OpenGL
-
-
- Packages that use OpenGL have NixOS desktop as their primary target. The
- current solution for loading the GPU-specific drivers is based on
- libglvnd and looks for the driver implementation in
- LD_LIBRARY_PATH . If you are using a non-NixOS
- GNU/Linux/X11 desktop with free software video drivers, consider launching
- OpenGL-dependent programs from Nixpkgs with Nixpkgs versions of
- libglvnd and mesa_drivers in
- LD_LIBRARY_PATH . For proprietary video drivers you might
- have luck with also adding the corresponding video driver package.
-
-
-
- Locales
-
-
- To allow simultaneous use of packages linked against different versions of
- glibc with different locale archive formats Nixpkgs
- patches glibc to rely on
- LOCALE_ARCHIVE environment variable.
-
-
-
- On non-NixOS distributions this variable is obviously not set. This can
- cause regressions in language support or even crashes in some
- Nixpkgs-provided programs. The simplest way to mitigate this problem is
- exporting the LOCALE_ARCHIVE variable pointing to
- ${glibcLocales}/lib/locale/locale-archive . The drawback
- (and the reason this is not the default) is the relatively large (a hundred
- MiB) size of the full set of locales. It is possible to build a custom set
- of locales by overriding parameters allLocales and
- locales of the package.
-
-
-
-
- Emacs
-
-
- Configuring Emacs
-
-
- The Emacs package comes with some extra helpers to make it easier to
- configure. emacsWithPackages allows you to manage
- packages from ELPA. This means that you will not have to install that
- packages from within Emacs. For instance, if you wanted to use
- company , counsel ,
- flycheck , ivy ,
- magit , projectile , and
- use-package you could use this as a
- ~/.config/nixpkgs/config.nix override:
-
-
-
-{
- packageOverrides = pkgs: with pkgs; {
- myEmacs = emacsWithPackages (epkgs: (with epkgs.melpaStablePackages; [
- company
- counsel
- flycheck
- ivy
- magit
- projectile
- use-package
- ]));
- }
-}
-
-
-
- You can install it like any other packages via nix-env -iA
- myEmacs . However, this will only install those packages. It will
- not configure them for us. To do this, we need to
- provide a configuration file. Luckily, it is possible to do this from
- within Nix! By modifying the above example, we can make Emacs load a custom
- config file. The key is to create a package that provide a
- default.el file in
- /share/emacs/site-start/ . Emacs knows to load this
- file automatically when it starts.
-
-
-
-{
- packageOverrides = pkgs: with pkgs; rec {
- myEmacsConfig = writeText "default.el" ''
-;; initialize package
-
-(require 'package)
-(package-initialize 'noactivate)
-(eval-when-compile
- (require 'use-package))
-
-;; load some packages
-
-(use-package company
- :bind ("<C-tab>" . company-complete)
- :diminish company-mode
- :commands (company-mode global-company-mode)
- :defer 1
- :config
- (global-company-mode))
-
-(use-package counsel
- :commands (counsel-descbinds)
- :bind (([remap execute-extended-command] . counsel-M-x)
- ("C-x C-f" . counsel-find-file)
- ("C-c g" . counsel-git)
- ("C-c j" . counsel-git-grep)
- ("C-c k" . counsel-ag)
- ("C-x l" . counsel-locate)
- ("M-y" . counsel-yank-pop)))
-
-(use-package flycheck
- :defer 2
- :config (global-flycheck-mode))
-
-(use-package ivy
- :defer 1
- :bind (("C-c C-r" . ivy-resume)
- ("C-x C-b" . ivy-switch-buffer)
- :map ivy-minibuffer-map
- ("C-j" . ivy-call))
- :diminish ivy-mode
- :commands ivy-mode
- :config
- (ivy-mode 1))
-
-(use-package magit
- :defer
- :if (executable-find "git")
- :bind (("C-x g" . magit-status)
- ("C-x G" . magit-dispatch-popup))
- :init
- (setq magit-completing-read-function 'ivy-completing-read))
-
-(use-package projectile
- :commands projectile-mode
- :bind-keymap ("C-c p" . projectile-command-map)
- :defer 5
- :config
- (projectile-global-mode))
- '';
- myEmacs = emacsWithPackages (epkgs: (with epkgs.melpaStablePackages; [
- (runCommand "default.el" {} ''
-mkdir -p $out/share/emacs/site-lisp
-cp ${myEmacsConfig} $out/share/emacs/site-lisp/default.el
-'')
- company
- counsel
- flycheck
- ivy
- magit
- projectile
- use-package
- ]));
- };
-}
-
-
-
- This provides a fairly full Emacs start file. It will load in addition to
- the user's presonal config. You can always disable it by passing
- -q to the Emacs command.
-
-
-
- Sometimes emacsWithPackages is not enough, as this
- package set has some priorities imposed on packages (with the lowest
- priority assigned to Melpa Unstable, and the highest for packages manually
- defined in pkgs/top-level/emacs-packages.nix ). But you
- can't control this priorities when some package is installed as a
- dependency. You can override it on per-package-basis, providing all the
- required dependencies manually - but it's tedious and there is always a
- possibility that an unwanted dependency will sneak in through some other
- package. To completely override such a package you can use
- overrideScope' .
-
-
-
-overrides = self: super: rec {
- haskell-mode = self.melpaPackages.haskell-mode;
- ...
-};
-((emacsPackagesGen emacs).overrideScope' overrides).emacsWithPackages (p: with p; [
- # here both these package will use haskell-mode of our own choice
- ghc-mod
- dante
-])
-
-
-
-
-
- DLib
-
-
- DLib is a modern, C++-based toolkit which
- provides several machine learning algorithms.
-
-
-
- Compiling without AVX support
-
-
- Especially older CPUs don't support
- AVX
- (Advanced Vector Extensions ) instructions that are used by DLib to
- optimize their algorithms.
-
-
-
- On the affected hardware errors like Illegal instruction will occur.
- In those cases AVX support needs to be disabled:
-self: super: {
- dlib = super.dlib.override { avxSupport = false; };
-}
-
-
-
-
-
- Unfree software
-
-
- All users of Nixpkgs are free software users, and many users (and
- developers) of Nixpkgs want to limit and tightly control their exposure to
- unfree software. At the same time, many users need (or want)
- to run some specific
- pieces of proprietary software. Nixpkgs includes some expressions for unfree
- software packages. By default unfree software cannot be installed and
- doesn’t show up in searches. To allow installing unfree software in a
- single Nix invocation one can export
- NIXPKGS_ALLOW_UNFREE=1 . For a persistent solution, users
- can set allowUnfree in the Nixpkgs configuration.
-
-
-
- Fine-grained control is possible by defining
- allowUnfreePredicate function in config; it takes the
- mkDerivation parameter attrset and returns
- true for unfree packages that should be allowed.
-
-
-
-
- Steam
-
-
- Steam in Nix
-
-
- Steam is distributed as a .deb file, for now only as
- an i686 package (the amd64 package only has documentation). When unpacked,
- it has a script called steam that in Ubuntu (their
- target distro) would go to /usr/bin . When run for the
- first time, this script copies some files to the user's home, which include
- another script that is the ultimate responsible for launching the steam
- binary, which is also in $HOME.
-
-
-
- Nix problems and constraints:
-
-
-
- We don't have /bin/bash and many scripts point
- there. Similarly for /usr/bin/python .
-
-
-
-
- We don't have the dynamic loader in /lib .
-
-
-
-
- The steam.sh script in $HOME can not be patched, as
- it is checked and rewritten by steam.
-
-
-
-
- The steam binary cannot be patched, it's also checked.
-
-
-
-
-
-
- The current approach to deploy Steam in NixOS is composing a FHS-compatible
- chroot environment, as documented
- here.
- This allows us to have binaries in the expected paths without disrupting
- the system, and to avoid patching them to work in a non FHS environment.
-
-
-
-
- How to play
-
-
- For 64-bit systems it's important to have
-hardware.opengl.driSupport32Bit = true;
- in your /etc/nixos/configuration.nix . You'll also need
-hardware.pulseaudio.support32Bit = true;
- if you are using PulseAudio - this will enable 32bit ALSA apps integration.
- To use the Steam controller or other Steam supported controllers such as
- the DualShock 4 or Nintendo Switch Pro, you need to add
-hardware.steam-hardware.enable = true;
- to your configuration.
-
-
-
-
- Troubleshooting
-
-
-
-
-
- Steam fails to start. What do I do?
-
-
-
- Try to run
-strace steam
- to see what is causing steam to fail.
-
-
-
-
-
- Using the FOSS Radeon or nouveau (nvidia) drivers
-
-
-
-
-
- The newStdcpp parameter was removed since NixOS
- 17.09 and should not be needed anymore.
-
-
-
-
- Steam ships statically linked with a version of libcrypto that
- conflics with the one dynamically loaded by radeonsi_dri.so. If you
- get the error
-steam.sh: line 713: 7842 Segmentation fault (core dumped)
- have a look at
- this
- pull request.
-
-
-
-
-
-
-
- Java
-
-
-
-
-
- There is no java in steam chrootenv by default. If you get a message
- like
-/home/foo/.local/share/Steam/SteamApps/common/towns/towns.sh: line 1: java: command not found
- You need to add
- steam.override { withJava = true; };
- to your configuration.
-
-
-
-
-
-
-
-
-
-
- steam-run
-
-
- The FHS-compatible chroot used for steam can also be used to run other
- linux games that expect a FHS environment. To do it, add
-pkgs.(steam.override {
- nativeOnly = true;
- newStdcpp = true;
- }).run
- to your configuration, rebuild, and run the game with
-steam-run ./foo
-
-
-
-
-
- Citrix Receiver & Citrix Workspace App
-
-
-
-
- Please note that the citrix_receiver package has been deprecated since its
- development was discontinued by upstream
- and will be replaced by the citrix workspace app.
-
-
- Citrix Receiver and
- Citrix Workspace App
- are a remote desktop viewers which provide access to
- XenDesktop
- installations.
-
-
-
- Basic usage
-
-
- The tarball archive needs to be downloaded manually as the license
- agreements of the vendor for
- Citrix Receiver
- or Citrix Workspace
- need to be accepted first.
- Then run nix-prefetch-url file://$PWD/linuxx64-$version.tar.gz .
- With the archive available
- in the store the package can be built and installed with Nix.
-
-
-
- Caution with nix-shell installs
-
- It's recommended to install Citrix Receiver
- and/or Citrix Workspace using
- nix-env -i or globally to
- ensure that the .desktop files are installed properly
- into $XDG_CONFIG_DIRS . Otherwise it won't be possible to
- open .ica files automatically from the browser to start
- a Citrix connection.
-
-
-
-
-
- Custom certificates
-
-
- The Citrix Receiver and Citrix Workspace App
- in nixpkgs trust several certificates
- from the
- Mozilla database by default. However several companies using Citrix
- might require their own corporate certificate. On distros with imperative
- packaging these certs can be stored easily in
- $ICAROOT ,
- however this directory is a store path in nixpkgs . In
- order to work around this issue the package provides a simple mechanism to
- add custom certificates without rebuilding the entire package using
- symlinkJoin :
-
- { config.allowUnfree = true; };
-let extraCerts = [ ./custom-cert-1.pem ./custom-cert-2.pem /* ... */ ]; in
-citrix_workspace.override { # the same applies for `citrix_receiver` if used.
- inherit extraCerts;
-}]]>
-
-
-
-
-
diff --git a/doc/introduction.chapter.md b/doc/preface.chapter.md
similarity index 67%
rename from doc/introduction.chapter.md
rename to doc/preface.chapter.md
index 6abdc2714e2..88ca5e2e3ce 100644
--- a/doc/introduction.chapter.md
+++ b/doc/preface.chapter.md
@@ -1,44 +1,45 @@
---
-title: Introduction
+title: Preface
author: Frederik Rietdijk
date: 2015-11-25
---
-# Introduction
+# Preface
The Nix Packages collection (Nixpkgs) is a set of thousands of packages for the
-[Nix package manager](http://nixos.org/nix/), released under a
+[Nix package manager](https://nixos.org/nix/), released under a
[permissive MIT/X11 license](https://github.com/NixOS/nixpkgs/blob/master/COPYING).
Packages are available for several platforms, and can be used with the Nix
-package manager on most GNU/Linux distributions as well as NixOS.
+package manager on most GNU/Linux distributions as well as [NixOS](https://nixos.org/nixos).
This manual primarily describes how to write packages for the Nix Packages collection
(Nixpkgs). Thus it’s mainly for packagers and developers who want to add packages to
Nixpkgs. If you like to learn more about the Nix package manager and the Nix
-expression language, then you are kindly referred to the [Nix manual](http://nixos.org/nix/manual/).
+expression language, then you are kindly referred to the [Nix manual](https://nixos.org/nix/manual/).
+The NixOS distribution is documented in the [NixOS manual](https://nixos.org/nixos/manual/).
## Overview of Nixpkgs
Nix expressions describe how to build packages from source and are collected in
the [nixpkgs repository](https://github.com/NixOS/nixpkgs). Also included in the
collection are Nix expressions for
-[NixOS modules](http://nixos.org/nixos/manual/index.html#sec-writing-modules).
+[NixOS modules](https://nixos.org/nixos/manual/index.html#sec-writing-modules).
With these expressions the Nix package manager can build binary packages.
Packages, including the Nix packages collection, are distributed through
-[channels](http://nixos.org/nix/manual/#sec-channels). The collection is
+[channels](https://nixos.org/nix/manual/#sec-channels). The collection is
distributed for users of Nix on non-NixOS distributions through the channel
`nixpkgs`. Users of NixOS generally use one of the `nixos-*` channels, e.g.
-`nixos-16.03`, which includes all packages and modules for the stable NixOS
-16.03. Stable NixOS releases are generally only given
+`nixos-19.09`, which includes all packages and modules for the stable NixOS
+19.09. Stable NixOS releases are generally only given
security updates. More up to date packages and modules are available via the
`nixos-unstable` channel.
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](http://howoldis.herokuapp.com/). Updates to a channel are
+[a couple of days](https://howoldis.herokuapp.com/). Updates to a channel are
distributed as soon as all tests for that channel pass, e.g.
-[this table](http://hydra.nixos.org/job/nixpkgs/trunk/unstable#tabs-constituents)
+[this table](https://hydra.nixos.org/job/nixpkgs/trunk/unstable#tabs-constituents)
shows the status of tests for the `nixpkgs` channel.
The tests are conducted by a cluster called [Hydra](http://nixos.org/hydra/),
@@ -47,5 +48,5 @@ which also builds binary packages from the Nix expressions in Nixpkgs for
The binaries are made available via a [binary cache](https://cache.nixos.org).
The current Nix expressions of the channels are available in the
-[`nixpkgs-channels`](https://github.com/NixOS/nixpkgs-channels) repository,
-which has branches corresponding to the available channels.
+[`nixpkgs`](https://github.com/NixOS/nixpkgs) repository in branches
+that correspond to the channel names (e.g. `nixos-19.09-small`).
diff --git a/doc/release-notes.xml b/doc/release-notes.xml
index 8d9b1813010..b85f61da079 100644
--- a/doc/release-notes.xml
+++ b/doc/release-notes.xml
@@ -6,15 +6,11 @@
Release 0.14 (June 4, 2012)
- In preparation for the switch from Subversion to Git, this release is mainly
- the prevent the Nixpkgs version number from going backwards. (This would
- happen because prerelease version numbers produced for the Git repository
- are lower than those for the Subversion repository.)
+ In preparation for the switch from Subversion to Git, this release is mainly the prevent the Nixpkgs version number from going backwards. (This would happen because prerelease version numbers produced for the Git repository are lower than those for the Subversion repository.)
- Since the last release, there have been thousands of changes and new
- packages by numerous contributors. For details, see the commit logs.
+ Since the last release, there have been thousands of changes and new packages by numerous contributors. For details, see the commit logs.
@@ -55,14 +51,11 @@
Release 0.12 (April 24, 2009)
- There are way too many additions to Nixpkgs since the last release to list
- here: for example, the number of packages on Linux has increased from 1002
- to 2159. However, some specific improvements are worth listing:
+ There are way too many additions to Nixpkgs since the last release to list here: for example, the number of packages on Linux has increased from 1002 to 2159. However, some specific improvements are worth listing:
- Nixpkgs now has a manual. In particular, it describes the standard build
- environment in detail.
+ Nixpkgs now has a manual. In particular, it describes the standard build environment in detail.
@@ -122,9 +115,7 @@
- Support for building derivations in a virtual machine, including RPM and
- Debian builds in automatically generated VM images. See
- pkgs/build-support/vm/default.nix for details.
+ Support for building derivations in a virtual machine, including RPM and Debian builds in automatically generated VM images. See pkgs/build-support/vm/default.nix for details.
@@ -136,13 +127,7 @@
- The following people contributed to this release: Andres Löh, Arie
- Middelkoop, Armijn Hemel, Eelco Dolstra, Lluís Batlle, Ludovic Courtès,
- Marc Weber, Mart Kolthof, Martin Bravenboer, Michael Raskin, Nicolas
- Pierron, Peter Simons, Pjotr Prins, Rob Vermaas, Sander van der Burg, Tobias
- Hammerschmidt, Valentin David, Wouter den Breejen and Yury G. Kudryashov. In
- addition, several people contributed patches on the
- nix-dev mailing list.
+ The following people contributed to this release: Andres Löh, Arie Middelkoop, Armijn Hemel, Eelco Dolstra, Lluís Batlle, Ludovic Courtès, Marc Weber, Mart Kolthof, Martin Bravenboer, Michael Raskin, Nicolas Pierron, Peter Simons, Pjotr Prins, Rob Vermaas, Sander van der Burg, Tobias Hammerschmidt, Valentin David, Wouter den Breejen and Yury G. Kudryashov. In addition, several people contributed patches on the nix-dev mailing list.
@@ -153,25 +138,12 @@
- The standard build environment (stdenv ) is now pure on
- the x86_64-linux and powerpc-linux
- platforms, just as on i686-linux . (Purity means that
- building and using the standard environment has no dependencies outside
- of the Nix store. For instance, it doesn’t require an external C
- compiler such as /usr/bin/gcc .) Also, the statically
- linked binaries used in the bootstrap process are now automatically
- reproducible, making it easy to update the bootstrap tools and to add
- support for other Linux platforms. See
- pkgs/stdenv/linux/make-bootstrap-tools.nix for
- details.
+ The standard build environment (stdenv ) is now pure on the x86_64-linux and powerpc-linux platforms, just as on i686-linux . (Purity means that building and using the standard environment has no dependencies outside of the Nix store. For instance, it doesn’t require an external C compiler such as /usr/bin/gcc .) Also, the statically linked binaries used in the bootstrap process are now automatically reproducible, making it easy to update the bootstrap tools and to add support for other Linux platforms. See pkgs/stdenv/linux/make-bootstrap-tools.nix for details.
- Hook variables in the generic builder are now executed using the
- eval shell command. This has a major advantage: you
- can write hooks directly in Nix expressions. For instance, rather than
- writing a builder like this:
+ Hook variables in the generic builder are now executed using the eval shell command. This has a major advantage: you can write hooks directly in Nix expressions. For instance, rather than writing a builder like this:
source $stdenv/setup
@@ -182,91 +154,57 @@ postInstall() {
}
genericBuild
- (the gzip builder), you can just add this attribute to
- the derivation:
+ (the gzip builder), you can just add this attribute to the derivation:
postInstall = "ln -sf gzip $out/bin/gunzip; ln -sf gzip $out/bin/zcat";
- and so a separate build script becomes unnecessary. This should allow us
- to get rid of most builders in Nixpkgs.
+ and so a separate build script becomes unnecessary. This should allow us to get rid of most builders in Nixpkgs.
- It is now possible to have the generic builder pass arguments to
- configure and make that contain
- whitespace. Previously, for example, you could say in a builder,
+ It is now possible to have the generic builder pass arguments to configure and make that contain whitespace. Previously, for example, you could say in a builder,
configureFlags="CFLAGS=-O0"
but not
configureFlags="CFLAGS=-O0 -g"
- since the -g would be interpreted as a separate
- argument to configure . Now you can say
+ since the -g would be interpreted as a separate argument to configure . Now you can say
configureFlagsArray=("CFLAGS=-O0 -g")
or similarly
configureFlagsArray=("CFLAGS=-O0 -g" "LDFLAGS=-L/foo -L/bar")
- which does the right thing. Idem for makeFlags ,
- installFlags , checkFlags and
- distFlags .
+ which does the right thing. Idem for makeFlags , installFlags , checkFlags and distFlags .
- Unfortunately you can't pass arrays to Bash through the environment, so
- you can't put the array above in a Nix expression, e.g.,
+ Unfortunately you can't pass arrays to Bash through the environment, so you can't put the array above in a Nix expression, e.g.,
configureFlagsArray = ["CFLAGS=-O0 -g"];
- since it would just be flattened to a since string. However, you
- can use the inline hooks described above:
+ since it would just be flattened to a since string. However, you can use the inline hooks described above:
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
+ 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;
sha1 = "eb72f55e4a8bf08e8c6ef227c0ade3d068ba1082";
}
- fetchurl will first try to download this file from
- .
- If that file doesn’t exist, it will try the original URL. In general,
- the “content-addressed” location is
- mirror / hash-type / hash .
- There is currently only one content-addressable mirror
- ( ), but more can be
- specified in the hashedMirrors attribute in
- pkgs/build-support/fetchurl/mirrors.nix , or by
- setting the NIX_HASHED_MIRRORS environment variable to a
- whitespace-separated list of URLs.
+ fetchurl will first try to download this file from . If that file doesn’t exist, it will try the original URL. In general, the “content-addressed” location is mirror / hash-type / hash . There is currently only one content-addressable mirror ( ), but more can be specified in the hashedMirrors attribute in pkgs/build-support/fetchurl/mirrors.nix , or by setting the NIX_HASHED_MIRRORS environment variable to a whitespace-separated list of URLs.
- Second, fetchurl has support for widely-mirrored
- distribution sites such as SourceForge or the Linux kernel archives.
- Given a URL of the form
- mirror://site /path ,
- it will try to download path from a
- configurable list of mirrors for site . (This
- idea was borrowed from Gentoo Linux.) Example:
+ Second, fetchurl has support for widely-mirrored distribution sites such as SourceForge or the Linux kernel archives. Given a URL of the form mirror://site /path , it will try to download path from a configurable list of mirrors for site . (This idea was borrowed from Gentoo Linux.) Example:
fetchurl {
url = mirror://gnu/gcc/gcc-4.2.0/gcc-core-4.2.0.tar.bz2;
sha256 = "0ykhzxhr8857dr97z0j9wyybfz1kjr71xk457cfapfw5fjas4ny1";
}
- Currently site can be
- sourceforge , gnu and
- kernel . The list of mirrors is defined in
- pkgs/build-support/fetchurl/mirrors.nix . You can
- override the list of mirrors for a particular site by setting the
- environment variable
- NIX_MIRRORS_site , e.g.
+ Currently site can be sourceforge , gnu and kernel . The list of mirrors is defined in pkgs/build-support/fetchurl/mirrors.nix . You can override the list of mirrors for a particular site by setting the environment variable NIX_MIRRORS_site , e.g.
export NIX_MIRRORS_sourceforge=http://osdn.dl.sourceforge.net/sourceforge/
@@ -339,9 +277,7 @@ export NIX_MIRRORS_sourceforge=http://osdn.dl.sourceforge.net/sourceforge/
- The following people contributed to this release: Andres Löh, Arie
- Middelkoop, Armijn Hemel, Eelco Dolstra, Marc Weber, Mart Kolthof, Martin
- Bravenboer, Michael Raskin, Wouter den Breejen and Yury G. Kudryashov.
+ The following people contributed to this release: Andres Löh, Arie Middelkoop, Armijn Hemel, Eelco Dolstra, Marc Weber, Mart Kolthof, Martin Bravenboer, Michael Raskin, Wouter den Breejen and Yury G. Kudryashov.
@@ -349,10 +285,8 @@ export NIX_MIRRORS_sourceforge=http://osdn.dl.sourceforge.net/sourceforge/
- This release of Nixpkgs requires
- Nix 0.10
- or higher.
+ This release of Nixpkgs requires Nix 0.10 or higher.
@@ -363,32 +297,15 @@ xlink:href='http://nixos.org/releases/nix/nix-0.10/'>Nix 0.10
- pkgs/system/all-packages-generic.nix is gone, we now
- just have pkgs/top-level/all-packages.nix that
- contains all available packages. This should cause much less confusion
- with users. all-packages.nix is a function that by
- default returns packages for the current platform, but you can override
- this by specifying a different system argument.
+ pkgs/system/all-packages-generic.nix is gone, we now just have pkgs/top-level/all-packages.nix that contains all available packages. This should cause much less confusion with users. all-packages.nix is a function that by default returns packages for the current platform, but you can override this by specifying a different system argument.
- Certain packages in Nixpkgs are now user-configurable through a
- configuration file, i.e., without having to edit the Nix expressions in
- Nixpkgs. For instance, the Firefox provided in the Nixpkgs channel is
- built without the RealPlayer plugin (for legal reasons). Previously, you
- could easily enable RealPlayer support by editing the call to the Firefox
- function in all-packages.nix , but such changes are
- not respected when Firefox is subsequently updated through the Nixpkgs
- channel.
+ Certain packages in Nixpkgs are now user-configurable through a configuration file, i.e., without having to edit the Nix expressions in Nixpkgs. For instance, the Firefox provided in the Nixpkgs channel is built without the RealPlayer plugin (for legal reasons). Previously, you could easily enable RealPlayer support by editing the call to the Firefox function in all-packages.nix , but such changes are not respected when Firefox is subsequently updated through the Nixpkgs channel.
- The Nixpkgs configuration file (found in
- ~/.nixpkgs/config.nix or through the
- NIXPKGS_CONFIG environment variable) is an attribute set
- that contains configuration options that
- all-packages.nix reads and uses for certain packages.
- For instance, the following configuration file:
+ The Nixpkgs configuration file (found in ~/.nixpkgs/config.nix or through the NIXPKGS_CONFIG environment variable) is an attribute set that contains configuration options that all-packages.nix reads and uses for certain packages. For instance, the following configuration file:
{
firefox = {
@@ -398,9 +315,7 @@ xlink:href='http://nixos.org/releases/nix/nix-0.10/'>Nix 0.10
persistently enables RealPlayer support in the Firefox build.
- (Actually, firefox.enableRealPlayer is the
- only configuration option currently available, but
- more are sure to be added.)
+ (Actually, firefox.enableRealPlayer is the only configuration option currently available, but more are sure to be added.)
@@ -409,17 +324,8 @@ xlink:href='http://nixos.org/releases/nix/nix-0.10/'>Nix 0.10
- i686-cygwin , i.e., Windows (using
- Cygwin). The standard
- environment on i686-cygwin by default builds
- binaries for the Cygwin environment (i.e., it uses Cygwin tools and
- produces executables that use the Cygwin library). However, there is
- also a standard environment that produces binaries that use
- MinGW. You can
- use it by calling all-package.nix with the
- stdenvType argument set to
- "i686-mingw" .
+ i686-cygwin , i.e., Windows (using Cygwin). The standard environment on i686-cygwin by default builds binaries for the Cygwin environment (i.e., it uses Cygwin tools and produces executables that use the Cygwin library). However, there is also a standard environment that produces binaries that use MinGW. You can use it by calling all-package.nix with the stdenvType argument set to "i686-mingw" .
@@ -434,9 +340,7 @@ xlink:href='http://nixos.org/releases/nix/nix-0.10/'>Nix 0.10
- x86_64-linux , i.e., Linux on 64-bit AMD/Intel CPUs.
- Unlike i686-linux , this platform doesn’t have a
- pure stdenv yet.
+ x86_64-linux , i.e., Linux on 64-bit AMD/Intel CPUs. Unlike i686-linux , this platform doesn’t have a pure stdenv yet.
@@ -472,21 +376,10 @@ xlink:href='http://nixos.org/releases/nix/nix-0.10/'>Nix 0.10
- It is now much easier to override the default C
- compiler and other tools in stdenv for specific
- packages. all-packages.nix provides two utility
- functions for this purpose: overrideGCC and
- overrideInStdenv . Both take a
- stdenv and return an augmented
- stdenv ; the formed changes the C compiler, and the
- latter adds additional packages to the front of
- stdenv ’s initial PATH , allowing tools
- to be overridden.
+ It is now much easier to override the default C compiler and other tools in stdenv for specific packages. all-packages.nix provides two utility functions for this purpose: overrideGCC and overrideInStdenv . Both take a stdenv and return an augmented stdenv ; the formed changes the C compiler, and the latter adds additional packages to the front of stdenv ’s initial PATH , allowing tools to be overridden.
- For instance, the package strategoxt doesn’t build
- with the GNU Make in stdenv (version 3.81), so we call
- it with an augmented stdenv that uses GNU Make 3.80:
+ For instance, the package strategoxt doesn’t build with the GNU Make in stdenv (version 3.81), so we call it with an augmented stdenv that uses GNU Make 3.80:
strategoxt = (import ../development/compilers/strategoxt) {
inherit fetchurl pkgconfig sdf aterm;
@@ -494,8 +387,7 @@ strategoxt = (import ../development/compilers/strategoxt) {
};
gnumake380 = ... ;
- Likewise, there are many packages that don’t compile with the default
- GCC (4.1.1), but that’s easily fixed:
+ Likewise, there are many packages that don’t compile with the default GCC (4.1.1), but that’s easily fixed:
exult = import ../games/exult {
inherit fetchurl SDL SDL_mixer zlib libpng unzip;
@@ -505,13 +397,7 @@ exult = import ../games/exult {
- It has also become much easier to experiment with changes to the
- stdenv setup script (which notably contains the generic
- builder). Since edits to pkgs/stdenv/generic/setup.sh
- trigger a rebuild of everything , this was formerly
- quite painful. But now stdenv contains a function to
- “regenerate” stdenv with a different setup script,
- allowing the use of a different setup script for specific packages:
+ It has also become much easier to experiment with changes to the stdenv setup script (which notably contains the generic builder). Since edits to pkgs/stdenv/generic/setup.sh trigger a rebuild of everything , this was formerly quite painful. But now stdenv contains a function to “regenerate” stdenv with a different setup script, allowing the use of a different setup script for specific packages:
pkg = import ... {
stdenv = stdenv.regenerate ./my-setup.sh;
@@ -521,10 +407,7 @@ pkg = import ... {
- Packages can now have a human-readable description
- field. Package descriptions are shown by nix-env -qa
- --description . In addition, they’re shown on the Nixpkgs
- release page. A description can be added to a package as follows:
+ Packages can now have a human-readable description field. Package descriptions are shown by nix-env -qa --description . In addition, they’re shown on the Nixpkgs release page. A description can be added to a package as follows:
stdenv.mkDerivation {
name = "exult-1.2";
@@ -533,34 +416,26 @@ stdenv.mkDerivation {
description = "A reimplementation of the Ultima VII game engine";
};
}
- The meta attribute is not passed to the builder, so
- changes to the description do not trigger a rebuild. Additional
- meta attributes may be defined in the future (such as
- the URL of the package’s homepage, the license, etc.).
+ The meta attribute is not passed to the builder, so changes to the description do not trigger a rebuild. Additional meta attributes may be defined in the future (such as the URL of the package’s homepage, the license, etc.).
- The following people contributed to this release: Andres Löh, Armijn Hemel,
- Christof Douma, Eelco Dolstra, Eelco Visser, Mart Kolthof, Martin
- Bravenboer, Merijn de Jonge, Rob Vermaas and Roy van den Broek.
+ The following people contributed to this release: Andres Löh, Armijn Hemel, Christof Douma, Eelco Dolstra, Eelco Visser, Mart Kolthof, Martin Bravenboer, Merijn de Jonge, Rob Vermaas and Roy van den Broek.
Release 0.9 (January 31, 2006)
- There have been zillions of changes since the last release of Nixpkgs. Many
- packages have been added or updated. The following are some of the more
- notable changes:
+ There have been zillions of changes since the last release of Nixpkgs. Many packages have been added or updated. The following are some of the more notable changes:
- Distribution files have been moved to
- .
@@ -576,24 +451,17 @@ stdenv.mkDerivation {
- The old, unofficial Xlibs has been replaced by the official modularised
- X11 distribution from X.org, i.e., X11R7.0. X11R7.0 consists of 287 (!)
- packages, all of which are in Nixpkgs though not all have been tested. It
- is now possible to build a working X server (previously we only had X
- client libraries). We use a fully Nixified X server on NixOS.
+ The old, unofficial Xlibs has been replaced by the official modularised X11 distribution from X.org, i.e., X11R7.0. X11R7.0 consists of 287 (!) packages, all of which are in Nixpkgs though not all have been tested. It is now possible to build a working X server (previously we only had X client libraries). We use a fully Nixified X server on NixOS.
- The Sun JDK 5 has been purified, i.e., it doesn’t require any non-Nix
- components such as /lib/ld-linux.so.2 . This means
- that Java applications such as Eclipse and Azureus can run on NixOS.
+ The Sun JDK 5 has been purified, i.e., it doesn’t require any non-Nix components such as /lib/ld-linux.so.2 . This means that Java applications such as Eclipse and Azureus can run on NixOS.
- Hardware-accelerated OpenGL support, used by games like Quake 3 (which is
- now built from source).
+ Hardware-accelerated OpenGL support, used by games like Quake 3 (which is now built from source).
@@ -608,8 +476,7 @@ stdenv.mkDerivation {
- Some support for cross-compilation: cross-compiling builds of GCC and
- Binutils, and cross-compiled builds of the C library uClibc.
+ Some support for cross-compilation: cross-compiling builds of GCC and Binutils, and cross-compiled builds of the C library uClibc.
@@ -618,8 +485,7 @@ stdenv.mkDerivation {
- teTeX, including support for building LaTeX documents using Nix (with
- automatic dependency determination).
+ teTeX, including support for building LaTeX documents using Nix (with automatic dependency determination).
@@ -629,14 +495,12 @@ stdenv.mkDerivation {
- System-level packages to support NixOS, e.g. Grub, GNU
- parted and so on.
+ System-level packages to support NixOS, e.g. Grub, GNU parted and so on.
- ecj , the Eclipse Compiler for Java, so we finally
- have a freely distributable compiler that supports Java 5.0.
+ ecj , the Eclipse Compiler for Java, so we finally have a freely distributable compiler that supports Java 5.0.
@@ -661,8 +525,7 @@ stdenv.mkDerivation {
- kdelibs . This allows us to add KDE-based packages
- (such as kcachegrind ).
+ kdelibs . This allows us to add KDE-based packages (such as kcachegrind ).
@@ -671,17 +534,14 @@ stdenv.mkDerivation {
- The following people contributed to this release: Andres Löh, Armijn Hemel,
- Bogdan Dumitriu, Christof Douma, Eelco Dolstra, Eelco Visser, Mart Kolthof,
- Martin Bravenboer, Rob Vermaas and Roy van den Broek.
+ The following people contributed to this release: Andres Löh, Armijn Hemel, Bogdan Dumitriu, Christof Douma, Eelco Dolstra, Eelco Visser, Mart Kolthof, Martin Bravenboer, Rob Vermaas and Roy van den Broek.
Release 0.8 (April 11, 2005)
- This release is mostly to remain synchronised with the changed hashing
- scheme in Nix 0.8.
+ This release is mostly to remain synchronised with the changed hashing scheme in Nix 0.8.
@@ -706,16 +566,10 @@ stdenv.mkDerivation {
- The bootstrap process for the standard build environment on Linux
- (stdenv-linux) has been improved. It is no longer dependent in its initial
- bootstrap stages on the system Glibc, GCC, and other tools. Rather,
- Nixpkgs contains a statically linked bash and curl, and uses that to
- download other statically linked tools. These are then used to build a
- Glibc and dynamically linked versions of all other tools.
+ The bootstrap process for the standard build environment on Linux (stdenv-linux) has been improved. It is no longer dependent in its initial bootstrap stages on the system Glibc, GCC, and other tools. Rather, Nixpkgs contains a statically linked bash and curl, and uses that to download other statically linked tools. These are then used to build a Glibc and dynamically linked versions of all other tools.
- This change also makes the bootstrap process faster. For instance, GCC is
- built only once instead of three times.
+ This change also makes the bootstrap process faster. For instance, GCC is built only once instead of three times.
(Contributed by Armijn Hemel.)
@@ -723,17 +577,13 @@ stdenv.mkDerivation {
- Tarballs used by Nixpkgs are now obtained from the same server that hosts
- Nixpkgs ( ). This
- reduces the risk of packages being unbuildable due to moved or deleted
- files on various servers.
+ Tarballs used by Nixpkgs are now obtained from the same server that hosts Nixpkgs ( ). This reduces the risk of packages being unbuildable due to moved or deleted files on various servers.
- There now is a generic mechanism for building Perl modules. See the
- various Perl modules defined in pkgs/system/all-packages-generic.nix.
+ There now is a generic mechanism for building Perl modules. See the various Perl modules defined in pkgs/system/all-packages-generic.nix.
diff --git a/doc/stdenv.xml b/doc/stdenv.xml
deleted file mode 100644
index 15a13ba49e8..00000000000
--- a/doc/stdenv.xml
+++ /dev/null
@@ -1,3136 +0,0 @@
-
- The Standard Environment
-
- The standard build environment in the Nix Packages collection provides an
- environment for building Unix packages that does a lot of common build tasks
- automatically. In fact, for Unix packages that use the standard
- ./configure; make; make install build interface, you
- don’t need to write a build script at all; the standard environment does
- everything automatically. If stdenv doesn’t do what you
- need automatically, you can easily customise or override the various build
- phases.
-
-
- Using stdenv
-
-
- To build a package with the standard environment, you use the function
- stdenv.mkDerivation , instead of the primitive built-in
- function derivation , e.g.
-
-stdenv.mkDerivation {
- name = "libfoo-1.2.3";
- src = fetchurl {
- url = http://example.org/libfoo-1.2.3.tar.bz2;
- sha256 = "0x2g1jqygyr5wiwg4ma1nd7w4ydpy82z9gkcv8vh2v8dn3y58v5m";
- };
-}
- (stdenv needs to be in scope, so if you write this in a
- separate Nix expression from pkgs/all-packages.nix , you
- need to pass it as a function argument.) Specifying a
- name and a src is the absolute minimum
- Nix requires. For convenience, you can also use pname and
- version attributes and mkDerivation
- will automatically set name to
- "${pname}-${version}" by default. Since
- RFC 0035,
- this is preferred for packages in Nixpkgs, as it allows us to reuse the
- version easily:
-
-stdenv.mkDerivation rec {
- pname = "libfoo";
- version = "1.2.3";
- src = fetchurl {
- url = "http://example.org/libfoo-source-${version}.tar.bz2";
- sha256 = "0x2g1jqygyr5wiwg4ma1nd7w4ydpy82z9gkcv8vh2v8dn3y58v5m";
- };
-}
-
-
-
- Many packages have dependencies that are not provided in the standard
- environment. It’s usually sufficient to specify those dependencies in the
- buildInputs attribute:
-
-stdenv.mkDerivation {
- name = "libfoo-1.2.3";
- ...
- buildInputs = [libbar perl ncurses];
-}
- This attribute ensures that the bin subdirectories of
- these packages appear in the PATH environment variable during
- the build, that their include subdirectories are
- searched by the C compiler, and so on. (See
- for details.)
-
-
-
- Often it is necessary to override or modify some aspect of the build. To
- make this easier, the standard environment breaks the package build into a
- number of phases , all of which can be overridden or
- modified individually: unpacking the sources, applying patches, configuring,
- building, and installing. (There are some others; see
- .) For instance, a package that doesn’t
- supply a makefile but instead has to be compiled “manually” could be
- handled like this:
-
-stdenv.mkDerivation {
- name = "fnord-4.5";
- ...
- buildPhase = ''
- gcc foo.c -o foo
- '';
- installPhase = ''
- mkdir -p $out/bin
- cp foo $out/bin
- '';
-}
- (Note the use of '' -style string literals, which are very
- convenient for large multi-line script fragments because they don’t need
- escaping of " and \ , and because
- indentation is intelligently removed.)
-
-
-
- There are many other attributes to customise the build. These are listed in
- .
-
-
-
- While the standard environment provides a generic builder, you can still
- supply your own build script:
-
-stdenv.mkDerivation {
- name = "libfoo-1.2.3";
- ...
- builder = ./builder.sh;
-}
- where the builder can do anything it wants, but typically starts with
-
-source $stdenv/setup
-
- to let stdenv set up the environment (e.g., process the
- buildInputs ). If you want, you can still use
- stdenv ’s generic builder:
-
-source $stdenv/setup
-
-buildPhase() {
- echo "... this is my custom build phase ..."
- gcc foo.c -o foo
-}
-
-installPhase() {
- mkdir -p $out/bin
- cp foo $out/bin
-}
-
-genericBuild
-
-
-
-
- Tools provided by stdenv
-
-
- The standard environment provides the following packages:
-
-
-
- The GNU C Compiler, configured with C and C++ support.
-
-
-
-
- GNU coreutils (contains a few dozen standard Unix commands).
-
-
-
-
- GNU findutils (contains find ).
-
-
-
-
- GNU diffutils (contains diff , cmp ).
-
-
-
-
- GNU sed .
-
-
-
-
- GNU grep .
-
-
-
-
- GNU awk .
-
-
-
-
- GNU tar .
-
-
-
-
- gzip , bzip2 and
- xz .
-
-
-
-
- GNU Make. It has been patched to provide nested
output
- that can be fed into the nix-log2xml command and
- log2html stylesheet to create a structured, readable
- output of the build steps performed by Make.
-
-
-
-
- Bash. This is the shell used for all builders in the Nix Packages
- collection. Not using /bin/sh removes a large source
- of portability problems.
-
-
-
-
- The patch command.
-
-
-
-
-
-
- On Linux, stdenv also includes the
- patchelf utility.
-
-
-
- Specifying dependencies
-
-
- As described in the Nix manual, almost any *.drv store
- path in a derivation's attribute set will induce a dependency on that
- derivation. mkDerivation , however, takes a few attributes
- intended to, between them, include all the dependencies of a package. This
- is done both for structure and consistency, but also so that certain other
- setup can take place. For example, certain dependencies need their bin
- directories added to the PATH . That is built-in, but other
- setup is done via a pluggable mechanism that works in conjunction with these
- dependency attributes. See for details.
-
-
-
- Dependencies can be broken down along three axes: their host and target
- platforms relative to the new derivation's, and whether they are propagated.
- The platform distinctions are motivated by cross compilation; see
- for exactly what each platform means.
-
-
- The build platform is ignored because it is a mere implementation detail
- of the package satisfying the dependency: As a general programming
- principle, dependencies are always specified as
- interfaces, not concrete implementation.
-
-
- But even if one is not cross compiling, the platforms imply whether or not
- the dependency is needed at run-time or build-time, a concept that makes
- perfect sense outside of cross compilation. By default, the
- run-time/build-time distinction is just a hint for mental clarity, but with
- strictDeps set it is mostly enforced even in the native
- case.
-
-
-
- The extension of PATH with dependencies, alluded to above,
- proceeds according to the relative platforms alone. The process is carried
- out only for dependencies whose host platform matches the new derivation's
- build platform i.e. dependencies which run on the platform where the new
- derivation will be built.
-
-
- Currently, this means for native builds all dependencies are put on the
- PATH . But in the future that may not be the case for sake
- of matching cross: the platforms would be assumed to be unique for native
- and cross builds alike, so only the depsBuild* and
- nativeBuildInputs would be added to the
- PATH .
-
-
- For each dependency dep of those dependencies,
- dep /bin , if present, is
- added to the PATH environment variable.
-
-
-
- The dependency is propagated when it forces some of its other-transitive
- (non-immediate) downstream dependencies to also take it on as an immediate
- dependency. Nix itself already takes a package's transitive dependencies
- into account, but this propagation ensures nixpkgs-specific infrastructure
- like setup hooks (mentioned above) also are run as if the propagated
- dependency.
-
-
-
- It is important to note that dependencies are not necessarily propagated as
- the same sort of dependency that they were before, but rather as the
- corresponding sort so that the platform rules still line up. The exact rules
- for dependency propagation can be given by assigning to each dependency two
- integers based one how its host and target platforms are offset from the
- depending derivation's platforms. Those offsets are given below in the
- descriptions of each dependency list attribute. Algorithmically, we traverse
- propagated inputs, accumulating every propagated dependency's propagated
- dependencies and adjusting them to account for the "shift in perspective"
- described by the current dependency's platform offsets. This results in sort
- a transitive closure of the dependency relation, with the offsets being
- approximately summed when two dependency links are combined. We also prune
- transitive dependencies whose combined offsets go out-of-bounds, which can
- be viewed as a filter over that transitive closure removing dependencies
- that are blatantly absurd.
-
-
-
- We can define the process precisely with
- Natural
- Deduction using the inference rules. This probably seems a bit
- obtuse, but so is the bash code that actually implements it!
-
-
- The findInputs function, currently residing in
- pkgs/stdenv/generic/setup.sh , implements the
- propagation logic.
-
-
- They're confusing in very different ways so... hopefully if something
- doesn't make sense in one presentation, it will in the other!
-
-let mapOffset(h, t, i) = i + (if i <= 0 then h else t - 1)
-
-propagated-dep(h0, t0, A, B)
-propagated-dep(h1, t1, B, C)
-h0 + h1 in {-1, 0, 1}
-h0 + t1 in {-1, 0, 1}
--------------------------------------- Transitive property
-propagated-dep(mapOffset(h0, t0, h1),
- mapOffset(h0, t0, t1),
- A, C)
-
-let mapOffset(h, t, i) = i + (if i <= 0 then h else t - 1)
-
-dep(h0, _, A, B)
-propagated-dep(h1, t1, B, C)
-h0 + h1 in {-1, 0, 1}
-h0 + t1 in {-1, 0, -1}
------------------------------ Take immediate dependencies' propagated dependencies
-propagated-dep(mapOffset(h0, t0, h1),
- mapOffset(h0, t0, t1),
- A, C)
-
-propagated-dep(h, t, A, B)
------------------------------ Propagated dependencies count as dependencies
-dep(h, t, A, B)
- Some explanation of this monstrosity is in order. In the common case, the
- target offset of a dependency is the successor to the target offset:
- t = h + 1 . That means that:
-
-let f(h, t, i) = i + (if i <= 0 then h else t - 1)
-let f(h, h + 1, i) = i + (if i <= 0 then h else (h + 1) - 1)
-let f(h, h + 1, i) = i + (if i <= 0 then h else h)
-let f(h, h + 1, i) = i + h
-
- This is where "sum-like" comes in from above: We can just sum all of the
- host offsets to get the host offset of the transitive dependency. The target
- offset is the transitive dependency is simply the host offset + 1, just as
- it was with the dependencies composed to make this transitive one; it can be
- ignored as it doesn't add any new information.
-
-
-
- Because of the bounds checks, the uncommon cases are h =
- t and h + 2 = t . In the former case, the
- motivation for mapOffset is that since its host and
- target platforms are the same, no transitive dependency of it should be able
- to "discover" an offset greater than its reduced target offsets.
- mapOffset effectively "squashes" all its transitive
- dependencies' offsets so that none will ever be greater than the target
- offset of the original h = t package. In the other case,
- h + 1 is skipped over between the host and target
- offsets. Instead of squashing the offsets, we need to "rip" them apart so no
- transitive dependencies' offset is that one.
-
-
-
- Overall, the unifying theme here is that propagation shouldn't be
- introducing transitive dependencies involving platforms the depending
- package is unaware of. [One can imagine the dependending package asking for
- dependencies with the platforms it knows about; other platforms it doesn't
- know how to ask for. The platform description in that scenario is a kind of
- unforagable capability.] The offset bounds checking and definition of
- mapOffset together ensure that this is the case.
- Discovering a new offset is discovering a new platform, and since those
- platforms weren't in the derivation "spec" of the needing package, they
- cannot be relevant. From a capability perspective, we can imagine that the
- host and target platforms of a package are the capabilities a package
- requires, and the depending package must provide the capability to the
- dependency.
-
-
-
- Variables specifying dependencies
-
-
- depsBuildBuild
-
-
-
- A list of dependencies whose host and target platforms are the new
- derivation's build platform. This means a -1 host and
- -1 target offset from the new derivation's platforms.
- These are programs and libraries used at build time that produce programs
- and libraries also used at build time. If the dependency doesn't care
- about the target platform (i.e. isn't a compiler or similar tool), put it
- in nativeBuildInputs instead. The most common use of
- this buildPackages.stdenv.cc , the default C compiler
- for this role. That example crops up more than one might think in old
- commonly used C libraries.
-
-
- Since these packages are able to be run at build-time, they are always
- added to the PATH , as described above. But since these
- packages are only guaranteed to be able to run then, they shouldn't
- persist as run-time dependencies. This isn't currently enforced, but
- could be in the future.
-
-
-
-
-
- nativeBuildInputs
-
-
-
- A list of dependencies whose host platform is the new derivation's build
- platform, and target platform is the new derivation's host platform. This
- means a -1 host offset and 0 target
- offset from the new derivation's platforms. These are programs and
- libraries used at build-time that, if they are a compiler or similar
- tool, produce code to run at run-time—i.e. tools used to build the new
- derivation. If the dependency doesn't care about the target platform
- (i.e. isn't a compiler or similar tool), put it here, rather than in
- depsBuildBuild or depsBuildTarget .
- This could be called depsBuildHost but
- nativeBuildInputs is used for historical continuity.
-
-
- Since these packages are able to be run at build-time, they are added to
- the PATH , as described above. But since these packages are
- only guaranteed to be able to run then, they shouldn't persist as
- run-time dependencies. This isn't currently enforced, but could be in the
- future.
-
-
-
-
-
- depsBuildTarget
-
-
-
- A list of dependencies whose host platform is the new derivation's build
- platform, and target platform is the new derivation's target platform.
- This means a -1 host offset and 1
- target offset from the new derivation's platforms. These are programs
- used at build time that produce code to run with code produced by the
- depending package. Most commonly, these are tools used to build the
- runtime or standard library that the currently-being-built compiler will
- inject into any code it compiles. In many cases, the
- currently-being-built-compiler is itself employed for that task, but when
- that compiler won't run (i.e. its build and host platform differ) this is
- not possible. Other times, the compiler relies on some other tool, like
- binutils, that is always built separately so that the dependency is
- unconditional.
-
-
- This is a somewhat confusing concept to wrap one’s head around, and for
- good reason. As the only dependency type where the platform offsets are
- not adjacent integers, it requires thinking of a bootstrapping stage
- two away from the current one. It and its use-case
- go hand in hand and are both considered poor form: try to not need this
- sort of dependency, and try to avoid building standard libraries and
- runtimes in the same derivation as the compiler produces code using them.
- Instead strive to build those like a normal library, using the
- newly-built compiler just as a normal library would. In short, do not use
- this attribute unless you are packaging a compiler and are sure it is
- needed.
-
-
- Since these packages are able to run at build time, they are added to the
- PATH , as described above. But since these packages are
- only guaranteed to be able to run then, they shouldn't persist as
- run-time dependencies. This isn't currently enforced, but could be in the
- future.
-
-
-
-
-
- depsHostHost
-
-
-
- A list of dependencies whose host and target platforms match the new
- derivation's host platform. This means a 0 host offset
- and 0 target offset from the new derivation's host
- platform. These are packages used at run-time to generate code also used
- at run-time. In practice, this would usually be tools used by compilers
- for macros or a metaprogramming system, or libraries used by the macros
- or metaprogramming code itself. It's always preferable to use a
- depsBuildBuild dependency in the derivation being
- built over a depsHostHost on the tool doing the
- building for this purpose.
-
-
-
-
-
- buildInputs
-
-
-
- A list of dependencies whose host platform and target platform match the
- new derivation's. This means a 0 host offset and a
- 1 target offset from the new derivation's host
- platform. This would be called depsHostTarget but for
- historical continuity. If the dependency doesn't care about the target
- platform (i.e. isn't a compiler or similar tool), put it here, rather
- than in depsBuildBuild .
-
-
- These are often programs and libraries used by the new derivation at
- run -time, but that isn't always the case. For
- example, the machine code in a statically-linked library is only used at
- run-time, but the derivation containing the library is only needed at
- build-time. Even in the dynamic case, the library may also be needed at
- build-time to appease the linker.
-
-
-
-
-
- depsTargetTarget
-
-
-
- A list of dependencies whose host platform matches the new derivation's
- target platform. This means a 1 offset from the new
- derivation's platforms. These are packages that run on the target
- platform, e.g. the standard library or run-time deps of standard library
- that a compiler insists on knowing about. It's poor form in almost all
- cases for a package to depend on another from a future stage [future
- stage corresponding to positive offset]. Do not use this attribute unless
- you are packaging a compiler and are sure it is needed.
-
-
-
-
-
- depsBuildBuildPropagated
-
-
-
- The propagated equivalent of depsBuildBuild . This
- perhaps never ought to be used, but it is included for consistency [see
- below for the others].
-
-
-
-
-
- propagatedNativeBuildInputs
-
-
-
- The propagated equivalent of nativeBuildInputs . This
- would be called depsBuildHostPropagated but for
- historical continuity. For example, if package Y has
- propagatedNativeBuildInputs = [X] , and package
- Z has buildInputs = [Y] , then
- package Z will be built as if it included package
- X in its nativeBuildInputs . If
- instead, package Z has nativeBuildInputs =
- [Y] , then Z will be built as if it included
- X in the depsBuildBuild of package
- Z , because of the sum of the two -1
- host offsets.
-
-
-
-
-
- depsBuildTargetPropagated
-
-
-
- The propagated equivalent of depsBuildTarget . This is
- prefixed for the same reason of alerting potential users.
-
-
-
-
-
- depsHostHostPropagated
-
-
-
- The propagated equivalent of depsHostHost .
-
-
-
-
-
- propagatedBuildInputs
-
-
-
- The propagated equivalent of buildInputs . This would
- be called depsHostTargetPropagated but for historical
- continuity.
-
-
-
-
-
- depsTargetTargetPropagated
-
-
-
- The propagated equivalent of depsTargetTarget . This is
- prefixed for the same reason of alerting potential users.
-
-
-
-
-
-
- Attributes
-
-
- Variables affecting stdenv initialisation
-
-
- NIX_DEBUG
-
-
-
- A natural number indicating how much information to log. If set to 1 or
- higher, stdenv will print moderate debugging
- information during the build. In particular, the gcc
- and ld wrapper scripts will print out the complete
- command line passed to the wrapped tools. If set to 6 or higher, the
- stdenv setup script will be run with set
- -x tracing. If set to 7 or higher, the gcc
- and ld wrapper scripts will also be run with
- set -x tracing.
-
-
-
-
-
-
- Attributes affecting build properties
-
-
- enableParallelBuilding
-
-
-
- If set to true , stdenv will pass
- specific flags to make and other build tools to enable
- parallel building with up to build-cores workers.
-
-
- Unless set to false , some build systems with good
- support for parallel building including cmake ,
- meson , and qmake will set it to
- true .
-
-
-
-
-
-
- Special variables
-
-
- passthru
-
-
-
- This is an attribute set which can be filled with arbitrary values. For
- example:
-
-passthru = {
- foo = "bar";
- baz = {
- value1 = 4;
- value2 = 5;
- };
-}
-
-
-
- Values inside it are not passed to the builder, so you can change them
- without triggering a rebuild. However, they can be accessed outside of a
- derivation directly, as if they were set inside a derivation itself, e.g.
- hello.baz.value1 . We don't specify any usage or schema
- of passthru - it is meant for values that would be
- useful outside the derivation in other parts of a Nix expression (e.g. in
- other derivations). An example would be to convey some specific
- dependency of your derivation which contains a program with plugins
- support. Later, others who make derivations with plugins can use
- passed-through dependency to ensure that their plugin would be
- binary-compatible with built program.
-
-
-
-
-
- passthru.updateScript
-
-
-
- A script to be run by maintainers/scripts/update.nix
- when the package is matched. It needs to be an executable file, either on
- the file system:
-
-passthru.updateScript = ./update.sh;
-
- or inside the expression itself:
-
-passthru.updateScript = writeScript "update-zoom-us" ''
- #!/usr/bin/env nix-shell
- #!nix-shell -i bash -p curl pcre common-updater-scripts
-
- set -eu -o pipefail
-
- version="$(curl -sI https://zoom.us/client/latest/zoom_x86_64.tar.xz | grep -Fi 'Location:' | pcregrep -o1 '/(([0-9]\.?)+)/')"
- update-source-version zoom-us "$version"
-'';
-
- The attribute can also contain a list, a script followed by arguments to
- be passed to it:
-
-passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ];
-
-
-
- The script will be usually run from the root of the Nixpkgs repository
- but you should not rely on that. Also note that the update scripts will
- be run in parallel by default; you should avoid running git
- commit or any other commands that cannot handle that.
-
-
- For information about how to run the updates, execute
- nix-shell maintainers/scripts/update.nix .
-
-
-
-
-
-
- Phases
-
-
- The generic builder has a number of phases . Package
- builds are split into phases to make it easier to override specific parts of
- the build (e.g., unpacking the sources or installing the binaries).
- Furthermore, it allows a nicer presentation of build logs in the Nix build
- farm.
-
-
-
- Each phase can be overridden in its entirety either by setting the
- environment variable name Phase
- to a string containing some shell commands to be executed, or by redefining
- the shell function name Phase .
- The former is convenient to override a phase from the derivation, while the
- latter is convenient from a build script. However, typically one only wants
- to add some commands to a phase, e.g. by defining
- postInstall or preFixup , as skipping
- some of the default actions may have unexpected consequences. The default
- script for each phase is defined in the file pkgs/stdenv/generic/setup.sh .
-
-
-
- Controlling phases
-
-
- There are a number of variables that control what phases are executed and
- in what order:
-
- Variables affecting phase control
-
-
- phases
-
-
-
- Specifies the phases. You can change the order in which phases are
- executed, or add new phases, by setting this variable. If it’s not
- set, the default value is used, which is $prePhases
- unpackPhase patchPhase $preConfigurePhases configurePhase
- $preBuildPhases buildPhase checkPhase $preInstallPhases installPhase
- fixupPhase installCheckPhase $preDistPhases distPhase $postPhases .
-
-
- Usually, if you just want to add a few phases, it’s more convenient
- to set one of the variables below (such as
- preInstallPhases ), as you then don’t specify all
- the normal phases.
-
-
-
-
-
- prePhases
-
-
-
- Additional phases executed before any of the default phases.
-
-
-
-
-
- preConfigurePhases
-
-
-
- Additional phases executed just before the configure phase.
-
-
-
-
-
- preBuildPhases
-
-
-
- Additional phases executed just before the build phase.
-
-
-
-
-
- preInstallPhases
-
-
-
- Additional phases executed just before the install phase.
-
-
-
-
-
- preFixupPhases
-
-
-
- Additional phases executed just before the fixup phase.
-
-
-
-
-
- preDistPhases
-
-
-
- Additional phases executed just before the distribution phase.
-
-
-
-
-
- postPhases
-
-
-
- Additional phases executed after any of the default phases.
-
-
-
-
-
-
-
-
- The unpack phase
-
-
- The unpack phase is responsible for unpacking the source code of the
- package. The default implementation of unpackPhase
- unpacks the source files listed in the src environment
- variable to the current directory. It supports the following files by
- default:
-
-
-
- Tar files
-
-
-
- These can optionally be compressed using gzip
- (.tar.gz , .tgz or
- .tar.Z ), bzip2
- (.tar.bz2 , .tbz2 or
- .tbz ) or xz
- (.tar.xz , .tar.lzma or
- .txz ).
-
-
-
-
-
- Zip files
-
-
-
- Zip files are unpacked using unzip . However,
- unzip is not in the standard environment, so you
- should add it to nativeBuildInputs yourself.
-
-
-
-
-
- Directories in the Nix store
-
-
-
- These are simply copied to the current directory. The hash part of the
- file name is stripped, e.g.
- /nix/store/1wydxgby13cz...-my-sources would be
- copied to my-sources .
-
-
-
-
- Additional file types can be supported by setting the
- unpackCmd variable (see below).
-
-
-
-
-
- Variables controlling the unpack phase
-
-
- srcs / src
-
-
-
- The list of source files or directories to be unpacked or copied. One of
- these must be set.
-
-
-
-
-
- sourceRoot
-
-
-
- After running unpackPhase , the generic builder
- changes the current directory to the directory created by unpacking the
- sources. If there are multiple source directories, you should set
- sourceRoot to the name of the intended directory.
-
-
-
-
-
- setSourceRoot
-
-
-
- Alternatively to setting sourceRoot , you can set
- setSourceRoot to a shell command to be evaluated by
- the unpack phase after the sources have been unpacked. This command must
- set sourceRoot .
-
-
-
-
-
- preUnpack
-
-
-
- Hook executed at the start of the unpack phase.
-
-
-
-
-
- postUnpack
-
-
-
- Hook executed at the end of the unpack phase.
-
-
-
-
-
- dontUnpack
-
-
-
- Set to true to skip the unpack phase.
-
-
-
-
-
- dontMakeSourcesWritable
-
-
-
- If set to 1 , the unpacked sources are
- not made writable. By default, they are made
- writable to prevent problems with read-only sources. For example, copied
- store directories would be read-only without this.
-
-
-
-
-
- unpackCmd
-
-
-
- The unpack phase evaluates the string $unpackCmd for
- any unrecognised file. The path to the current source file is contained
- in the curSrc variable.
-
-
-
-
-
-
-
- The patch phase
-
-
- The patch phase applies the list of patches defined in the
- patches variable.
-
-
-
- Variables controlling the patch phase
-
-
- patches
-
-
-
- The list of patches. They must be in the format accepted by the
- patch command, and may optionally be compressed using
- gzip (.gz ),
- bzip2 (.bz2 ) or
- xz (.xz ).
-
-
-
-
-
- patchFlags
-
-
-
- Flags to be passed to patch . If not set, the argument
- -p1 is used, which causes the leading directory
- component to be stripped from the file names in each patch.
-
-
-
-
-
- prePatch
-
-
-
- Hook executed at the start of the patch phase.
-
-
-
-
-
- postPatch
-
-
-
- Hook executed at the end of the patch phase.
-
-
-
-
-
-
-
- The configure phase
-
-
- The configure phase prepares the source tree for building. The default
- configurePhase runs ./configure
- (typically an Autoconf-generated script) if it exists.
-
-
-
- Variables controlling the configure phase
-
-
- configureScript
-
-
-
- The name of the configure script. It defaults to
- ./configure if it exists; otherwise, the configure
- phase is skipped. This can actually be a command (like perl
- ./Configure.pl ).
-
-
-
-
-
- configureFlags
-
-
-
- A list of strings passed as additional arguments to the configure
- script.
-
-
-
-
-
- dontConfigure
-
-
-
- Set to true to skip the configure phase.
-
-
-
-
-
- configureFlagsArray
-
-
-
- A shell array containing additional arguments passed to the configure
- script. You must use this instead of configureFlags
- if the arguments contain spaces.
-
-
-
-
-
- dontAddPrefix
-
-
-
- By default, the flag --prefix=$prefix is added to the
- configure flags. If this is undesirable, set this variable to true.
-
-
-
-
-
- prefix
-
-
-
- The prefix under which the package must be installed, passed via the
- --prefix option to the configure script. It defaults to
- $out .
-
-
-
-
-
- prefixKey
-
-
-
- The key to use when specifying the prefix. By default, this is set to
- --prefix= as that is used by the majority of packages.
-
-
-
-
-
- dontAddDisableDepTrack
-
-
-
- By default, the flag --disable-dependency-tracking is
- added to the configure flags to speed up Automake-based builds. If this
- is undesirable, set this variable to true.
-
-
-
-
-
- dontFixLibtool
-
-
-
- By default, the configure phase applies some special hackery to all
- files called ltmain.sh before running the configure
- script in order to improve the purity of Libtool-based packages
-
-
- It clears the
- sys_lib_* search_path
- variables in the Libtool script to prevent Libtool from using
- libraries in /usr/lib and such.
-
-
- . If this is undesirable, set this variable to true.
-
-
-
-
-
- dontDisableStatic
-
-
-
- By default, when the configure script has
- --enable-static , the option
- --disable-static is added to the configure flags.
-
-
- If this is undesirable, set this variable to true.
-
-
-
-
-
- configurePlatforms
-
-
-
- By default, when cross compiling, the configure script has
- --build=... and --host=... passed.
- Packages can instead pass [ "build" "host" "target" ]
- or a subset to control exactly which platform flags are passed.
- Compilers and other tools can use this to also pass the target platform.
-
-
- Eventually these will be passed building natively as well, to improve
- determinism: build-time guessing, as is done today, is a risk of
- impurity.
-
-
-
-
-
-
-
- preConfigure
-
-
-
- Hook executed at the start of the configure phase.
-
-
-
-
-
- postConfigure
-
-
-
- Hook executed at the end of the configure phase.
-
-
-
-
-
-
-
- The build phase
-
-
- The build phase is responsible for actually building the package (e.g.
- compiling it). The default buildPhase simply calls
- make if a file named Makefile ,
- makefile or GNUmakefile exists in
- the current directory (or the makefile is explicitly
- set); otherwise it does nothing.
-
-
-
- Variables controlling the build phase
-
-
- dontBuild
-
-
-
- Set to true to skip the build phase.
-
-
-
-
-
- makefile
-
-
-
- The file name of the Makefile.
-
-
-
-
-
- makeFlags
-
-
-
- A list of strings passed as additional flags to make .
- These flags are also used by the default install and check phase. For
- setting make flags specific to the build phase, use
- buildFlags (see below).
-
-makeFlags = [ "PREFIX=$(out)" ];
-
-
-
- The flags are quoted in bash, but environment variables can be
- specified by using the make syntax.
-
-
-
-
-
-
-
- makeFlagsArray
-
-
-
- A shell array containing additional arguments passed to
- make . You must use this instead of
- makeFlags if the arguments contain spaces, e.g.
-
-preBuild = ''
- makeFlagsArray+=(CFLAGS="-O0 -g" LDFLAGS="-lfoo -lbar")
-'';
-
- Note that shell arrays cannot be passed through environment variables,
- so you cannot set makeFlagsArray in a derivation
- attribute (because those are passed through environment variables): you
- have to define them in shell code.
-
-
-
-
-
- buildFlags / buildFlagsArray
-
-
-
- A list of strings passed as additional flags to make .
- Like makeFlags and makeFlagsArray ,
- but only used by the build phase.
-
-
-
-
-
- preBuild
-
-
-
- Hook executed at the start of the build phase.
-
-
-
-
-
- postBuild
-
-
-
- Hook executed at the end of the build phase.
-
-
-
-
-
-
- You can set flags for make through the
- makeFlags variable.
-
-
-
- Before and after running make , the hooks
- preBuild and postBuild are called,
- respectively.
-
-
-
-
- The check phase
-
-
- The check phase checks whether the package was built correctly by running
- its test suite. The default checkPhase calls
- make check , but only if the doCheck
- variable is enabled.
-
-
-
- Variables controlling the check phase
-
-
- doCheck
-
-
-
- Controls whether the check phase is executed. By default it is skipped,
- but if doCheck is set to true, the check phase is
- usually executed. Thus you should set
-doCheck = true;
- in the derivation to enable checks. The exception is cross compilation.
- Cross compiled builds never run tests, no matter how
- doCheck is set, as the newly-built program won't run
- on the platform used to build it.
-
-
-
-
-
- makeFlags / makeFlagsArray / makefile
-
-
-
- See the build phase for details.
-
-
-
-
-
- checkTarget
-
-
-
- The make target that runs the tests. Defaults to
- check .
-
-
-
-
-
- checkFlags / checkFlagsArray
-
-
-
- A list of strings passed as additional flags to make .
- Like makeFlags and makeFlagsArray ,
- but only used by the check phase.
-
-
-
-
-
- checkInputs
-
-
-
- A list of dependencies used by the phase. This gets included in
- nativeBuildInputs when doCheck is
- set.
-
-
-
-
-
- preCheck
-
-
-
- Hook executed at the start of the check phase.
-
-
-
-
-
- postCheck
-
-
-
- Hook executed at the end of the check phase.
-
-
-
-
-
-
-
- The install phase
-
-
- The install phase is responsible for installing the package in the Nix
- store under out . The default
- installPhase creates the directory
- $out and calls make install .
-
-
-
- Variables controlling the install phase
-
-
- makeFlags / makeFlagsArray / makefile
-
-
-
- See the build phase for details.
-
-
-
-
-
- installTargets
-
-
-
- The make targets that perform the installation. Defaults to
- install . Example:
-
-installTargets = "install-bin install-doc";
-
-
-
-
-
- installFlags / installFlagsArray
-
-
-
- A list of strings passed as additional flags to make .
- Like makeFlags and makeFlagsArray ,
- but only used by the install phase.
-
-
-
-
-
- preInstall
-
-
-
- Hook executed at the start of the install phase.
-
-
-
-
-
- postInstall
-
-
-
- Hook executed at the end of the install phase.
-
-
-
-
-
-
-
- The fixup phase
-
-
- The fixup phase performs some (Nix-specific) post-processing actions on the
- files installed under $out by the install phase. The
- default fixupPhase does the following:
-
-
-
- It moves the man/ , doc/ and
- info/ subdirectories of $out to
- share/ .
-
-
-
-
- It strips libraries and executables of debug information.
-
-
-
-
- On Linux, it applies the patchelf command to ELF
- executables and libraries to remove unused directories from the
- RPATH in order to prevent unnecessary runtime
- dependencies.
-
-
-
-
- It rewrites the interpreter paths of shell scripts to paths found in
- PATH . E.g., /usr/bin/perl will be
- rewritten to
- /nix/store/some-perl /bin/perl
- found in PATH .
-
-
-
-
-
-
- Variables controlling the fixup phase
-
-
- dontFixup
-
-
-
- Set to true to skip the fixup phase.
-
-
-
-
-
- dontStrip
-
-
-
- If set, libraries and executables are not stripped. By default, they
- are.
-
-
-
-
-
- dontStripHost
-
-
-
- Like dontStrip , but only affects the
- strip command targetting the package's host platform.
- Useful when supporting cross compilation, but otherwise feel free to
- ignore.
-
-
-
-
-
- dontStripTarget
-
-
-
- Like dontStrip , but only affects the
- strip command targetting the packages' target
- platform. Useful when supporting cross compilation, but otherwise feel
- free to ignore.
-
-
-
-
-
- dontMoveSbin
-
-
-
- If set, files in $out/sbin are not moved to
- $out/bin . By default, they are.
-
-
-
-
-
- stripAllList
-
-
-
- List of directories to search for libraries and executables from which
- all symbols should be stripped. By default, it’s
- empty. Stripping all symbols is risky, since it may remove not just
- debug symbols but also ELF information necessary for normal execution.
-
-
-
-
-
- stripAllFlags
-
-
-
- Flags passed to the strip command applied to the
- files in the directories listed in stripAllList .
- Defaults to -s (i.e. --strip-all ).
-
-
-
-
-
- stripDebugList
-
-
-
- List of directories to search for libraries and executables from which
- only debugging-related symbols should be stripped. It defaults to
- lib bin sbin .
-
-
-
-
-
- stripDebugFlags
-
-
-
- Flags passed to the strip command applied to the
- files in the directories listed in stripDebugList .
- Defaults to -S (i.e. --strip-debug ).
-
-
-
-
-
- dontPatchELF
-
-
-
- If set, the patchelf command is not used to remove
- unnecessary RPATH entries. Only applies to Linux.
-
-
-
-
-
- dontPatchShebangs
-
-
-
- If set, scripts starting with #! do not have their
- interpreter paths rewritten to paths in the Nix store.
-
-
-
-
-
- dontPruneLibtoolFiles
-
-
-
- If set, libtool .la files associated with shared
- libraries won't have their dependency_libs field
- cleared.
-
-
-
-
-
- forceShare
-
-
-
- The list of directories that must be moved from
- $out to $out/share . Defaults
- to man doc info .
-
-
-
-
-
- setupHook
-
-
-
- A package can export a setup
- hook by setting this variable. The setup hook, if defined, is
- copied to $out/nix-support/setup-hook . Environment
- variables are then substituted in it using
- substituteAll .
-
-
-
-
-
- preFixup
-
-
-
- Hook executed at the start of the fixup phase.
-
-
-
-
-
- postFixup
-
-
-
- Hook executed at the end of the fixup phase.
-
-
-
-
-
- separateDebugInfo
-
-
-
- If set to true , the standard environment will enable
- debug information in C/C++ builds. After installation, the debug
- information will be separated from the executables and stored in the
- output named debug . (This output is enabled
- automatically; you don’t need to set the outputs
- attribute explicitly.) To be precise, the debug information is stored in
- debug /lib/debug/.build-id/XX /YYYY… ,
- where XXYYYY… is the build
- ID of the binary — a SHA-1 hash of the contents of the
- binary. Debuggers like GDB use the build ID to look up the separated
- debug information.
-
-
- For example, with GDB, you can add
-
-set debug-file-directory ~/.nix-profile/lib/debug
-
- to ~/.gdbinit . GDB will then be able to find debug
- information installed via nix-env -i .
-
-
-
-
-
-
-
- The installCheck phase
-
-
- The installCheck phase checks whether the package was installed correctly
- by running its test suite against the installed directories. The default
- installCheck calls make
- installcheck .
-
-
-
- Variables controlling the installCheck phase
-
-
- doInstallCheck
-
-
-
- Controls whether the installCheck phase is executed. By default it is
- skipped, but if doInstallCheck is set to true, the
- installCheck phase is usually executed. Thus you should set
-doInstallCheck = true;
- in the derivation to enable install checks. The exception is cross
- compilation. Cross compiled builds never run tests, no matter how
- doInstallCheck is set, as the newly-built program
- won't run on the platform used to build it.
-
-
-
-
-
- installCheckTarget
-
-
-
- The make target that runs the install tests. Defaults to
- installcheck .
-
-
-
-
-
- installCheckFlags / installCheckFlagsArray
-
-
-
- A list of strings passed as additional flags to make .
- Like makeFlags and makeFlagsArray ,
- but only used by the installCheck phase.
-
-
-
-
-
- installCheckInputs
-
-
-
- A list of dependencies used by the phase. This gets included in
- nativeBuildInputs when
- doInstallCheck is set.
-
-
-
-
-
- preInstallCheck
-
-
-
- Hook executed at the start of the installCheck phase.
-
-
-
-
-
- postInstallCheck
-
-
-
- Hook executed at the end of the installCheck phase.
-
-
-
-
-
-
-
- The distribution phase
-
-
- The distribution phase is intended to produce a source distribution of the
- package. The default distPhase first calls
- make dist , then it copies the resulting source tarballs
- to $out/tarballs/ . This phase is only executed if the
- attribute doDist is set.
-
-
-
- Variables controlling the distribution phase
-
-
- distTarget
-
-
-
- The make target that produces the distribution. Defaults to
- dist .
-
-
-
-
-
- distFlags / distFlagsArray
-
-
-
- Additional flags passed to make .
-
-
-
-
-
- tarballs
-
-
-
- The names of the source distribution files to be copied to
- $out/tarballs/ . It can contain shell wildcards. The
- default is *.tar.gz .
-
-
-
-
-
- dontCopyDist
-
-
-
- If set, no files are copied to $out/tarballs/ .
-
-
-
-
-
- preDist
-
-
-
- Hook executed at the start of the distribution phase.
-
-
-
-
-
- postDist
-
-
-
- Hook executed at the end of the distribution phase.
-
-
-
-
-
-
-
- Shell functions
-
-
- The standard environment provides a number of useful functions.
-
-
-
-
-
- makeWrapper executable wrapperfile args
-
-
-
- Constructs a wrapper for a program with various possible arguments. For
- example:
-
-# adds `FOOBAR=baz` to `$out/bin/foo`’s environment
-makeWrapper $out/bin/foo $wrapperfile --set FOOBAR baz
-
-# prefixes the binary paths of `hello` and `git`
-# Be advised that paths often should be patched in directly
-# (via string replacements or in `configurePhase`).
-makeWrapper $out/bin/foo $wrapperfile --prefix PATH : ${lib.makeBinPath [ hello git ]}
-
- There’s many more kinds of arguments, they are documented in
- nixpkgs/pkgs/build-support/setup-hooks/make-wrapper.sh .
-
-
- wrapProgram is a convenience function you probably
- want to use most of the time.
-
-
-
-
-
- substitute infile outfile subs
-
-
-
- Performs string substitution on the contents of
- infile , writing the result to
- outfile . The substitutions in
- subs are of the following form:
-
-
-
- --replace s1 s2
-
-
-
- Replace every occurrence of the string s1
- by s2 .
-
-
-
-
-
- --subst-var varName
-
-
-
- Replace every occurrence of
- @varName @ by the
- contents of the environment variable
- varName . This is useful for generating
- files from templates, using
- @... @ in the template
- as placeholders.
-
-
-
-
-
- --subst-var-by varName s
-
-
-
- Replace every occurrence of
- @varName @ by the string
- s .
-
-
-
-
-
-
- Example:
-
-substitute ./foo.in ./foo.out \
- --replace /usr/bin/bar $bar/bin/bar \
- --replace "a string containing spaces" "some other text" \
- --subst-var someVar
-
-
-
- substitute is implemented using the
- replace
- command. Unlike with the sed command, you don’t have
- to worry about escaping special characters. It supports performing
- substitutions on binary files (such as executables), though there
- you’ll probably want to make sure that the replacement string is as
- long as the replaced string.
-
-
-
-
-
- substituteInPlace file subs
-
-
-
- Like substitute , but performs the substitutions in
- place on the file file .
-
-
-
-
-
- substituteAll infile outfile
-
-
-
- Replaces every occurrence of
- @varName @ , where
- varName is any environment variable, in
- infile , writing the result to
- outfile . For instance, if
- infile has the contents
-
-#! @bash@/bin/sh
-PATH=@coreutils@/bin
-echo @foo@
-
- and the environment contains
- bash=/nix/store/bmwp0q28cf21...-bash-3.2-p39 and
- coreutils=/nix/store/68afga4khv0w...-coreutils-6.12 ,
- but does not contain the variable foo , then the output
- will be
-
-#! /nix/store/bmwp0q28cf21...-bash-3.2-p39/bin/sh
-PATH=/nix/store/68afga4khv0w...-coreutils-6.12/bin
-echo @foo@
-
- That is, no substitution is performed for undefined variables.
-
-
- Environment variables that start with an uppercase letter or an
- underscore are filtered out, to prevent global variables (like
- HOME ) or private variables (like
- __ETC_PROFILE_DONE ) from accidentally getting
- substituted. The variables also have to be valid bash “names”, as
- defined in the bash manpage (alphanumeric or _ , must
- not start with a number).
-
-
-
-
-
- substituteAllInPlace file
-
-
-
- Like substituteAll , but performs the substitutions
- in place on the file file .
-
-
-
-
-
- stripHash path
-
-
-
- Strips the directory and hash part of a store path, outputting the name
- part to stdout . For example:
-
-# prints coreutils-8.24
-stripHash "/nix/store/9s9r019176g7cvn2nvcw41gsp862y6b4-coreutils-8.24"
-
- If you wish to store the result in another variable, then the following
- idiom may be useful:
-
-name="/nix/store/9s9r019176g7cvn2nvcw41gsp862y6b4-coreutils-8.24"
-someVar=$(stripHash $name)
-
-
-
-
-
-
- wrapProgram executable makeWrapperArgs
-
-
-
- Convenience function for makeWrapper that
- automatically creates a sane wrapper file It takes all the same arguments
- as makeWrapper , except for --argv0 .
-
-
- It cannot be applied multiple times, since it will overwrite the wrapper
- file.
-
-
-
-
-
-
- Package setup hooks
-
-
- Nix itself considers a build-time dependency as merely something that should
- previously be built and accessible at build time—packages themselves are
- on their own to perform any additional setup. In most cases, that is fine,
- and the downstream derivation can deal with its own dependencies. But for a
- few common tasks, that would result in almost every package doing the same
- sort of setup work—depending not on the package itself, but entirely on
- which dependencies were used.
-
-
-
- In order to alleviate this burden, the setup hook
- mechanism was written, where any package can include a shell script that [by
- convention rather than enforcement by Nix], any downstream
- reverse-dependency will source as part of its build process. That allows the
- downstream dependency to merely specify its dependencies, and lets those
- dependencies effectively initialize themselves. No boilerplate mirroring the
- list of dependencies is needed.
-
-
-
- The setup hook mechanism is a bit of a sledgehammer though: a powerful
- feature with a broad and indiscriminate area of effect. The combination of
- its power and implicit use may be expedient, but isn't without costs. Nix
- itself is unchanged, but the spirit of added dependencies being effect-free
- is violated even if the letter isn't. For example, if a derivation path is
- mentioned more than once, Nix itself doesn't care and simply makes sure the
- dependency derivation is already built just the same—depending is just
- needing something to exist, and needing is idempotent. However, a dependency
- specified twice will have its setup hook run twice, and that could easily
- change the build environment (though a well-written setup hook will
- therefore strive to be idempotent so this is in fact not observable). More
- broadly, setup hooks are anti-modular in that multiple dependencies, whether
- the same or different, should not interfere and yet their setup hooks may
- well do so.
-
-
-
- The most typical use of the setup hook is actually to add other hooks which
- are then run (i.e. after all the setup hooks) on each dependency. For
- example, the C compiler wrapper's setup hook feeds itself flags for each
- dependency that contains relevant libraries and headers. This is done by
- defining a bash function, and appending its name to one of
- envBuildBuildHooks `, envBuildHostHooks `,
- envBuildTargetHooks `, envHostHostHooks `,
- envHostTargetHooks `, or envTargetTargetHooks `.
- These 6 bash variables correspond to the 6 sorts of dependencies by platform
- (there's 12 total but we ignore the propagated/non-propagated axis).
-
-
-
- Packages adding a hook should not hard code a specific hook, but rather
- choose a variable relative to how they are included.
- Returning to the C compiler wrapper example, if the wrapper itself is an
- n dependency, then it only wants to accumulate flags from
- n + 1 dependencies, as only those ones match the
- compiler's target platform. The hostOffset variable is
- defined with the current dependency's host offset
- targetOffset with its target offset, before its setup hook is
- sourced. Additionally, since most environment hooks don't care about the
- target platform, that means the setup hook can append to the right bash
- array by doing something like
-
-addEnvHooks "$hostOffset" myBashFunction
-
-
-
-
- The existence of setups hooks has long been documented
- and packages inside Nixpkgs are free to use this mechanism. Other packages,
- however, should not rely on these mechanisms not changing between Nixpkgs
- versions. Because of the existing issues with this system, there's little
- benefit from mandating it be stable for any period of time.
-
-
-
- First, let’s cover some setup hooks that are part of Nixpkgs default
- stdenv. This means that they are run for every package built using
- stdenv.mkDerivation . Some of these are platform
- specific, so they may run on Linux but not Darwin or vice-versa.
-
-
-
- move-docs.sh
-
-
-
- This setup hook moves any installed documentation to the
- /share subdirectory directory. This includes the man,
- doc and info directories. This is needed for legacy programs that do not
- know how to use the share subdirectory.
-
-
-
-
-
- compress-man-pages.sh
-
-
-
- This setup hook compresses any man pages that have been installed. The
- compression is done using the gzip program. This helps to reduce the
- installed size of packages.
-
-
-
-
-
- strip.sh
-
-
-
- This runs the strip command on installed binaries and libraries. This
- removes unnecessary information like debug symbols when they are not
- needed. This also helps to reduce the installed size of packages.
-
-
-
-
-
- patch-shebangs.sh
-
-
-
- This setup hook patches installed scripts to use the full path to the
- shebang interpreter. A shebang interpreter is the first commented line
- of a script telling the operating system which program will run the
- script (e.g #!/bin/bash ). In Nix, we want an exact
- path to that interpreter to be used. This often replaces
- /bin/sh with a path in the Nix store.
-
-
-
-
-
- audit-tmpdir.sh
-
-
-
- This verifies that no references are left from the install binaries to
- the directory used to build those binaries. This ensures that the
- binaries do not need things outside the Nix store. This is currently
- supported in Linux only.
-
-
-
-
-
- multiple-outputs.sh
-
-
-
- This setup hook adds configure flags that tell packages to install files
- into any one of the proper outputs listed in outputs .
- This behavior can be turned off by setting
- setOutputFlags to false in the derivation
- environment. See for more
- information.
-
-
-
-
-
- move-sbin.sh
-
-
-
- This setup hook moves any binaries installed in the sbin subdirectory
- into bin. In addition, a link is provided from sbin to bin for
- compatibility.
-
-
-
-
-
- move-lib64.sh
-
-
-
- This setup hook moves any libraries installed in the lib64 subdirectory
- into lib. In addition, a link is provided from lib64 to lib for
- compatibility.
-
-
-
-
-
- set-source-date-epoch-to-latest.sh
-
-
-
- This sets SOURCE_DATE_EPOCH to the modification time
- of the most recent file.
-
-
-
-
-
- Bintools Wrapper
-
-
-
- The Bintools Wrapper wraps the binary utilities for a bunch of
- miscellaneous purposes. These are GNU Binutils when targetting Linux,
- and a mix of cctools and GNU binutils for Darwin. [The "Bintools" name
- is supposed to be a compromise between "Binutils" and "cctools" not
- denoting any specific implementation.] Specifically, the underlying
- bintools package, and a C standard library (glibc or Darwin's libSystem,
- just for the dynamic loader) are all fed in, and dependency finding,
- hardening (see below), and purity checks for each are handled by the
- Bintools Wrapper. Packages typically depend on CC Wrapper, which in turn
- (at run time) depends on the Bintools Wrapper.
-
-
- The Bintools Wrapper was only just recently split off from CC Wrapper,
- so the division of labor is still being worked out. For example, it
- shouldn't care about about the C standard library, but just take a
- derivation with the dynamic loader (which happens to be the glibc on
- linux). Dependency finding however is a task both wrappers will continue
- to need to share, and probably the most important to understand. It is
- currently accomplished by collecting directories of host-platform
- dependencies (i.e. buildInputs and
- nativeBuildInputs ) in environment variables. The
- Bintools Wrapper's setup hook causes any lib and
- lib64 subdirectories to be added to
- NIX_LDFLAGS . Since the CC Wrapper and the Bintools
- Wrapper use the same strategy, most of the Bintools Wrapper code is
- sparsely commented and refers to the CC Wrapper. But the CC Wrapper's
- code, by contrast, has quite lengthy comments. The Bintools Wrapper
- merely cites those, rather than repeating them, to avoid falling out of
- sync.
-
-
- A final task of the setup hook is defining a number of standard
- environment variables to tell build systems which executables fulfill
- which purpose. They are defined to just be the base name of the tools,
- under the assumption that the Bintools Wrapper's binaries will be on the
- path. Firstly, this helps poorly-written packages, e.g. ones that look
- for just gcc when CC isn't defined yet
- clang is to be used. Secondly, this helps packages
- not get confused when cross-compiling, in which case multiple Bintools
- Wrappers may simultaneously be in use.
-
-
- Each wrapper targets a single platform, so if binaries for multiple
- platforms are needed, the underlying binaries must be wrapped multiple
- times. As this is a property of the wrapper itself, the multiple
- wrappings are needed whether or not the same underlying binaries can
- target multiple platforms.
-
-
- BUILD_ - and TARGET_ -prefixed versions of
- the normal environment variable are defined for additional Bintools
- Wrappers, properly disambiguating them.
-
-
- A problem with this final task is that the Bintools Wrapper is honest
- and defines LD as ld . Most packages,
- however, firstly use the C compiler for linking, secondly use
- LD anyways, defining it as the C compiler, and thirdly,
- only so define LD when it is undefined as a fallback.
- This triple-threat means Bintools Wrapper will break those packages, as
- LD is already defined as the actual linker which the package won't
- override yet doesn't want to use. The workaround is to define, just for
- the problematic package, LD as the C compiler. A good way
- to do this would be preConfigure = "LD=$CC" .
-
-
-
-
-
- CC Wrapper
-
-
-
- The CC Wrapper wraps a C toolchain for a bunch of miscellaneous
- purposes. Specifically, a C compiler (GCC or Clang), wrapped binary
- tools, and a C standard library (glibc or Darwin's libSystem, just for
- the dynamic loader) are all fed in, and dependency finding, hardening
- (see below), and purity checks for each are handled by the CC Wrapper.
- Packages typically depend on the CC Wrapper, which in turn (at run-time)
- depends on the Bintools Wrapper.
-
-
- Dependency finding is undoubtedly the main task of the CC Wrapper. This
- works just like the Bintools Wrapper, except that any
- include subdirectory of any relevant dependency is
- added to NIX_CFLAGS_COMPILE . The setup hook itself
- contains some lengthy comments describing the exact convoluted mechanism
- by which this is accomplished.
-
-
- Similarly, the CC Wrapper follows the Bintools Wrapper in defining
- standard environment variables with the names of the tools it wraps, for
- the same reasons described above. Importantly, while it includes a
- cc symlink to the c compiler for portability, the
- CC will be defined using the compiler's "real name" (i.e.
- gcc or clang ). This helps lousy
- build systems that inspect on the name of the compiler rather than run
- it.
-
-
-
-
-
-
-
- Here are some more packages that provide a setup hook. Since the list of
- hooks is extensible, this is not an exhaustive list the mechanism is only to
- be used as a last resort, it might cover most uses.
-
-
-
- Perl
-
-
-
- Adds the lib/site_perl subdirectory of each build
- input to the PERL5LIB environment variable. For instance,
- if buildInputs contains Perl, then the
- lib/site_perl subdirectory of each input is added
- to the PERL5LIB environment variable.
-
-
-
-
-
- Python
-
-
-
- Adds the lib/${python.libPrefix}/site-packages
- subdirectory of each build input to the PYTHONPATH
- environment variable.
-
-
-
-
-
- pkg-config
-
-
-
- Adds the lib/pkgconfig and
- share/pkgconfig subdirectories of each build input
- to the PKG_CONFIG_PATH environment variable.
-
-
-
-
-
- Automake
-
-
-
- Adds the share/aclocal subdirectory of each build
- input to the ACLOCAL_PATH environment variable.
-
-
-
-
-
- Autoconf
-
-
-
- The autoreconfHook derivation adds
- autoreconfPhase , which runs autoreconf, libtoolize
- and automake, essentially preparing the configure script in
- autotools-based builds. Most autotools-based packages come with the
- configure script pre-generated, but this hook is necessary for a few
- packages and when you need to patch the package’s configure scripts.
-
-
-
-
-
- libxml2
-
-
-
- Adds every file named catalog.xml found under the
- xml/dtd and xml/xsl
- subdirectories of each build input to the
- XML_CATALOG_FILES environment variable.
-
-
-
-
-
- teTeX / TeX Live
-
-
-
- Adds the share/texmf-nix subdirectory of each build
- input to the TEXINPUTS environment variable.
-
-
-
-
-
- Qt 4
-
-
-
- Sets the QTDIR environment variable to Qt’s path.
-
-
-
-
-
- gdk-pixbuf
-
-
-
- Exports GDK_PIXBUF_MODULE_FILE environment variable to
- the builder. Add librsvg package to buildInputs to
- get svg support.
-
-
-
-
-
- GHC
-
-
-
- Creates a temporary package database and registers every Haskell build
- input in it (TODO: how?).
-
-
-
-
-
- GStreamer
-
-
-
- Adds the GStreamer plugins subdirectory of each build input to the
- GST_PLUGIN_SYSTEM_PATH_1_0 or
- GST_PLUGIN_SYSTEM_PATH environment variable.
-
-
-
-
-
- autoPatchelfHook
-
-
-
- This is a special setup hook which helps in packaging proprietary
- software in that it automatically tries to find missing shared library
- dependencies of ELF files based on the given
- buildInputs and nativeBuildInputs .
-
-
- You can also specify a runtimeDependencies environment
- variable which lists dependencies that are unconditionally added to all
- executables.
-
-
- This is useful for programs that use
- dlopen
- 3 to load libraries at runtime.
-
-
- In certain situations you may want to run the main command
- (autoPatchelf ) of the setup hook on a file or a set
- of directories instead of unconditionally patching all outputs. This can
- be done by setting the dontAutoPatchelf environment
- variable to a non-empty value.
-
-
- The autoPatchelf command also recognizes a
- --no-recurse command line flag,
- which prevents it from recursing into subdirectories.
-
-
-
-
-
- breakpointHook
-
-
-
- This hook will make a build pause instead of stopping when a failure
- happens. It prevents nix from cleaning up the build environment
- immediately and allows the user to attach to a build environment using
- the cntr command. Upon build error it will print
- instructions on how to use cntr , which can be used to
- enter the environment for debugging. Installing cntr and running the
- command will provide shell access to the build sandbox of failed build.
- At /var/lib/cntr the sandboxed filesystem is
- mounted. All commands and files of the system are still accessible
- within the shell. To execute commands from the sandbox use the cntr exec
- subcommand. cntr is only supported
- on Linux-based platforms. To use it first add cntr to
- your environment.systemPackages on NixOS or
- alternatively to the root user on non-NixOS systems. Then in the package
- that is supposed to be inspected, add breakpointHook
- to nativeBuildInputs .
-
-nativeBuildInputs = [ breakpointHook ];
-
- When a build failure happens there will be an instruction printed that
- shows how to attach with cntr to the build sandbox.
-
-
- Caution with remote builds
-
- This won't work with remote builds as the build environment is on
- a different machine and can't be accessed by cntr .
- Remote builds can be turned off by setting --option builders ''
- for nix-build or --builders '' for
- nix build .
-
-
-
-
-
-
- installShellFiles
-
-
-
- This hook helps with installing manpages and shell completion files. It
- exposes 2 shell functions installManPage and
- installShellCompletion that can be used from your
- postInstall hook.
-
-
- The installManPage function takes one or more paths
- to manpages to install. The manpages must have a section suffix, and may
- optionally be compressed (with .gz suffix). This
- function will place them into the correct directory.
-
-
- The installShellCompletion function takes one or more
- paths to shell completion files. By default it will autodetect the shell
- type from the completion file extension, but you may also specify it by
- passing one of --bash , --fish , or
- --zsh . These flags apply to all paths listed after
- them (up until another shell flag is given). Each path may also have a
- custom installation name provided by providing a flag --name
- NAME before the path. If this flag is not provided, zsh
- completions will be renamed automatically such that
- foobar.zsh becomes _foobar .
-
-nativeBuildInputs = [ installShellFiles ];
-postInstall = ''
- installManPage doc/foobar.1 doc/barfoo.3
- # explicit behavior
- installShellCompletion --bash --name foobar.bash share/completions.bash
- installShellCompletion --fish --name foobar.fish share/completions.fish
- installShellCompletion --zsh --name _foobar share/completions.zsh
- # implicit behavior
- installShellCompletion share/completions/foobar.{bash,fish,zsh}
-'';
-
-
-
-
-
-
- libiconv, libintl
-
-
-
- A few libraries automatically add to NIX_LDFLAGS
- their library, making their symbols automatically available to the
- linker. This includes libiconv and libintl (gettext). This is done to
- provide compatibility between GNU Linux, where libiconv and libintl are
- bundled in, and other systems where that might not be the case.
- Sometimes, this behavior is not desired. To disable this behavior, set
- dontAddExtraLibs .
-
-
-
-
-
- cmake
-
-
-
- Overrides the default configure phase to run the CMake command. By
- default, we use the Make generator of CMake. In addition, dependencies
- are added automatically to CMAKE_PREFIX_PATH so that packages are
- correctly detected by CMake. Some additional flags are passed in to give
- similar behavior to configure-based packages. You can disable this
- hook’s behavior by setting configurePhase to a custom value, or by
- setting dontUseCmakeConfigure. cmakeFlags controls flags passed only to
- CMake. By default, parallel building is enabled as CMake supports
- parallel building almost everywhere. When Ninja is also in use, CMake
- will detect that and use the ninja generator.
-
-
-
-
-
- xcbuildHook
-
-
-
- Overrides the build and install phases to run the “xcbuild” command.
- This hook is needed when a project only comes with build files for the
- XCode build system. You can disable this behavior by setting buildPhase
- and configurePhase to a custom value. xcbuildFlags controls flags passed
- only to xcbuild.
-
-
-
-
-
- meson
-
-
-
- Overrides the configure phase to run meson to generate Ninja files. You
- can disable this behavior by setting configurePhase to a custom value,
- or by setting dontUseMesonConfigure. To run these files, you should
- accompany meson with ninja. mesonFlags controls only the flags passed to
- meson. By default, parallel building is enabled as Meson supports
- parallel building almost everywhere.
-
-
-
-
-
- ninja
-
-
-
- Overrides the build, install, and check phase to run ninja instead of
- make. You can disable this behavior with the dontUseNinjaBuild,
- dontUseNinjaInstall, and dontUseNinjaCheck, respectively. Parallel
- building is enabled by default in Ninja.
-
-
-
-
-
- unzip
-
-
-
- This setup hook will allow you to unzip .zip files specified in $src.
- There are many similar packages like unrar, undmg, etc.
-
-
-
-
-
- wafHook
-
-
-
- Overrides the configure, build, and install phases. This will run the
- "waf" script used by many projects. If wafPath (default ./waf) doesn’t
- exist, it will copy the version of waf available in Nixpkgs. wafFlags can
- be used to pass flags to the waf script.
-
-
-
-
-
- scons
-
-
-
- Overrides the build, install, and check phases. This uses the scons
- build system as a replacement for make. scons does not provide a
- configure phase, so everything is managed at build and install time.
-
-
-
-
-
-
-
- Purity in Nixpkgs
-
-
- [measures taken to prevent dependencies on packages outside the store, and
- what you can do to prevent them]
-
-
-
- GCC doesn't search in locations such as /usr/include .
- In fact, attempts to add such directories through the -I
- flag are filtered out. Likewise, the linker (from GNU binutils) doesn't
- search in standard locations such as /usr/lib . Programs
- built on Linux are linked against a GNU C Library that likewise doesn't
- search in the default system locations.
-
-
-
- Hardening in Nixpkgs
-
-
- There are flags available to harden packages at compile or link-time. These
- can be toggled using the stdenv.mkDerivation parameters
- hardeningDisable and hardeningEnable .
-
-
-
- Both parameters take a list of flags as strings. The special
- "all" flag can be passed to
- hardeningDisable to turn off all hardening. These flags
- can also be used as environment variables for testing or development
- purposes.
-
-
-
- The following flags are enabled by default and might require disabling with
- hardeningDisable if the program to package is
- incompatible.
-
-
-
-
-
- format
-
-
-
- Adds the -Wformat -Wformat-security
- -Werror=format-security compiler options. At present, this warns
- about calls to printf and scanf
- functions where the format string is not a string literal and there are
- no format arguments, as in printf(foo); . This may be a
- security hole if the format string came from untrusted input and contains
- %n .
-
-
- This needs to be turned off or fixed for errors similar to:
-
-
-/tmp/nix-build-zynaddsubfx-2.5.2.drv-0/zynaddsubfx-2.5.2/src/UI/guimain.cpp:571:28: error: format not a string literal and no format arguments [-Werror=format-security]
- printf(help_message);
- ^
-cc1plus: some warnings being treated as errors
-
-
-
-
-
- stackprotector
-
-
-
- Adds the -fstack-protector-strong --param
- ssp-buffer-size=4 compiler options. This adds safety checks
- against stack overwrites rendering many potential code injection attacks
- into aborting situations. In the best case this turns code injection
- vulnerabilities into denial of service or into non-issues (depending on
- the application).
-
-
- This needs to be turned off or fixed for errors similar to:
-
-
-bin/blib.a(bios_console.o): In function `bios_handle_cup':
-/tmp/nix-build-ipxe-20141124-5cbdc41.drv-0/ipxe-5cbdc41/src/arch/i386/firmware/pcbios/bios_console.c:86: undefined reference to `__stack_chk_fail'
-
-
-
-
-
- fortify
-
-
-
- Adds the -O2 -D_FORTIFY_SOURCE=2 compiler options.
- During code generation the compiler knows a great deal of information
- about buffer sizes (where possible), and attempts to replace insecure
- unlimited length buffer function calls with length-limited ones. This is
- especially useful for old, crufty code. Additionally, format strings in
- writable memory that contain '%n' are blocked. If an application depends
- on such a format string, it will need to be worked around.
-
-
- Additionally, some warnings are enabled which might trigger build
- failures if compiler warnings are treated as errors in the package build.
- In this case, set NIX_CFLAGS_COMPILE to
- -Wno-error=warning-type .
-
-
- This needs to be turned off or fixed for errors similar to:
-
-
-malloc.c:404:15: error: return type is an incomplete type
-malloc.c:410:19: error: storage size of 'ms' isn't known
-
-
-strdup.h:22:1: error: expected identifier or '(' before '__extension__'
-
-
-strsep.c:65:23: error: register name not specified for 'delim'
-
-
-installwatch.c:3751:5: error: conflicting types for '__open_2'
-
-
-fcntl2.h:50:4: error: call to '__open_missing_mode' declared with attribute error: open with O_CREAT or O_TMPFILE in second argument needs 3 arguments
-
-
-
-
-
- pic
-
-
-
- Adds the -fPIC compiler options. This options adds
- support for position independent code in shared libraries and thus making
- ASLR possible.
-
-
- Most notably, the Linux kernel, kernel modules and other code not running
- in an operating system environment like boot loaders won't build with PIC
- enabled. The compiler will is most cases complain that PIC is not
- supported for a specific build.
-
-
- This needs to be turned off or fixed for assembler errors similar to:
-
-
-ccbLfRgg.s: Assembler messages:
-ccbLfRgg.s:33: Error: missing or invalid displacement expression `private_key_len@GOTOFF'
-
-
-
-
-
- strictoverflow
-
-
-
- Signed integer overflow is undefined behaviour according to the C
- standard. If it happens, it is an error in the program as it should check
- for overflow before it can happen, not afterwards. GCC provides built-in
- functions to perform arithmetic with overflow checking, which are correct
- and faster than any custom implementation. As a workaround, the option
- -fno-strict-overflow makes gcc behave as if signed
- integer overflows were defined.
-
-
- This flag should not trigger any build or runtime errors.
-
-
-
-
-
- relro
-
-
-
- Adds the -z relro linker option. During program load,
- several ELF memory sections need to be written to by the linker, but can
- be turned read-only before turning over control to the program. This
- prevents some GOT (and .dtors) overwrite attacks, but at least the part
- of the GOT used by the dynamic linker (.got.plt) is still vulnerable.
-
-
- This flag can break dynamic shared object loading. For instance, the
- module systems of Xorg and OpenCV are incompatible with this flag. In
- almost all cases the bindnow flag must also be
- disabled and incompatible programs typically fail with similar errors at
- runtime.
-
-
-
-
-
- bindnow
-
-
-
- Adds the -z bindnow linker option. During program load,
- all dynamic symbols are resolved, allowing for the complete GOT to be
- marked read-only (due to relro ). This prevents GOT
- overwrite attacks. For very large applications, this can incur some
- performance loss during initial load while symbols are resolved, but this
- shouldn't be an issue for daemons.
-
-
- This flag can break dynamic shared object loading. For instance, the
- module systems of Xorg and PHP are incompatible with this flag. Programs
- incompatible with this flag often fail at runtime due to missing symbols,
- like:
-
-
-intel_drv.so: undefined symbol: vgaHWFreeHWRec
-
-
-
-
-
-
- The following flags are disabled by default and should be enabled with
- hardeningEnable for packages that take untrusted input
- like network services.
-
-
-
-
-
- pie
-
-
-
- Adds the -fPIE compiler and -pie linker
- options. Position Independent Executables are needed to take advantage of
- Address Space Layout Randomization, supported by modern kernel versions.
- While ASLR can already be enforced for data areas in the stack and heap
- (brk and mmap), the code areas must be compiled as position-independent.
- Shared libraries already do this with the pic flag, so
- they gain ASLR automatically, but binary .text regions need to be build
- with pie to gain ASLR. When this happens, ROP attacks
- are much harder since there are no static locations to bounce off of
- during a memory corruption attack.
-
-
-
-
-
-
- For more in-depth information on these hardening flags and hardening in
- general, refer to the
- Debian Wiki,
- Ubuntu
- Wiki,
- Gentoo
- Wiki, and the
-
- Arch Wiki.
-
-
-
diff --git a/doc/stdenv/cross-compilation.xml b/doc/stdenv/cross-compilation.xml
new file mode 100644
index 00000000000..5476c9a4893
--- /dev/null
+++ b/doc/stdenv/cross-compilation.xml
@@ -0,0 +1,394 @@
+
+ Cross-compilation
+
+ Introduction
+
+
+ "Cross-compilation" means compiling a program on one machine for another type of machine. For example, a typical use of cross-compilation is to compile programs for embedded devices. These devices often don't have the computing power and memory to compile their own programs. One might think that cross-compilation is a fairly niche concern. However, there are significant advantages to rigorously distinguishing between build-time and run-time environments! Significant, because the benefits apply even when one is developing and deploying on the same machine. Nixpkgs is increasingly adopting the opinion that packages should be written with cross-compilation in mind, and nixpkgs should evaluate in a similar way (by minimizing cross-compilation-specific special cases) whether or not one is cross-compiling.
+
+
+
+ This chapter will be organized in three parts. First, it will describe the basics of how to package software in a way that supports cross-compilation. Second, it will describe how to use Nixpkgs when cross-compiling. Third, it will describe the internal infrastructure supporting cross-compilation.
+
+
+
+
+ Packaging in a cross-friendly manner
+
+
+ Platform parameters
+
+
+ Nixpkgs follows the conventions of GNU autoconf. We distinguish between 3 types of platforms when building a derivation: build , host , and target . In summary, build is the platform on which a package is being built, host is the platform on which it will run. The third attribute, target , is relevant only for certain specific compilers and build tools.
+
+
+
+ In Nixpkgs, these three platforms are defined as attribute sets under the names buildPlatform , hostPlatform , and targetPlatform . They are always defined as attributes in the standard environment. That means one can access them like:
+{ stdenv, fooDep, barDep, .. }: ...stdenv.buildPlatform...
+ .
+
+
+
+
+
+ buildPlatform
+
+
+
+ The "build platform" is the platform on which a package is built. Once someone has a built package, or pre-built binary package, the build platform should not matter and can be ignored.
+
+
+
+
+
+ hostPlatform
+
+
+
+ The "host platform" is the platform on which a package will be run. This is the simplest platform to understand, but also the one with the worst name.
+
+
+
+
+
+ targetPlatform
+
+
+
+ The "target platform" attribute is, unlike the other two attributes, not actually fundamental to the process of building software. Instead, it is only relevant for compatibility with building certain specific compilers and build tools. It can be safely ignored for all other packages.
+
+
+ The build process of certain compilers is written in such a way that the compiler resulting from a single build can itself only produce binaries for a single platform. The task of specifying this single "target platform" is thus pushed to build time of the compiler. The root cause of this is that the compiler (which will be run on the host) and the standard library/runtime (which will be run on the target) are built by a single build process.
+
+
+ There is no fundamental need to think about a single target ahead of time like this. If the tool supports modular or pluggable backends, both the need to specify the target at build time and the constraint of having only a single target disappear. An example of such a tool is LLVM.
+
+
+ Although the existence of a "target platfom" is arguably a historical mistake, it is a common one: examples of tools that suffer from it are GCC, Binutils, GHC and Autoconf. Nixpkgs tries to avoid sharing in the mistake where possible. Still, because the concept of a target platform is so ingrained, it is best to support it as is.
+
+
+
+
+
+
+ The exact schema these fields follow is a bit ill-defined due to a long and convoluted evolution, but this is slowly being cleaned up. You can see examples of ones used in practice in lib.systems.examples ; note how they are not all very consistent. For now, here are few fields can count on them containing:
+
+
+
+
+
+ system
+
+
+
+ This is a two-component shorthand for the platform. Examples of this would be "x86_64-darwin" and "i686-linux"; see lib.systems.doubles for more. The first component corresponds to the CPU architecture of the platform and the second to the operating system of the platform ([cpu]-[os] ). This format has built-in support in Nix, such as the builtins.currentSystem impure string.
+
+
+
+
+
+ config
+
+
+
+ This is a 3- or 4- component shorthand for the platform. Examples of this would be x86_64-unknown-linux-gnu and aarch64-apple-darwin14 . This is a standard format called the "LLVM target triple", as they are pioneered by LLVM. In the 4-part form, this corresponds to [cpu]-[vendor]-[os]-[abi] . This format is strictly more informative than the "Nix host double", as the previous format could analogously be termed. This needs a better name than config !
+
+
+
+
+
+ parsed
+
+
+
+ This is a Nix representation of a parsed LLVM target triple with white-listed components. This can be specified directly, or actually parsed from the config . See lib.systems.parse for the exact representation.
+
+
+
+
+
+ libc
+
+
+
+ This is a string identifying the standard C library used. Valid identifiers include "glibc" for GNU libc, "libSystem" for Darwin's Libsystem, and "uclibc" for µClibc. It should probably be refactored to use the module system, like parse .
+
+
+
+
+
+ is*
+
+
+
+ These predicates are defined in lib.systems.inspect , and slapped onto every platform. They are superior to the ones in stdenv as they force the user to be explicit about which platform they are inspecting. Please use these instead of those.
+
+
+
+
+
+ platform
+
+
+
+ This is, quite frankly, a dumping ground of ad-hoc settings (it's an attribute set). See lib.systems.platforms for examples—there's hopefully one in there that will work verbatim for each platform that is working. Please help us triage these flags and give them better homes!
+
+
+
+
+
+
+
+ Theory of dependency categorization
+
+
+
+ This is a rather philosophical description that isn't very Nixpkgs-specific. For an overview of all the relevant attributes given to mkDerivation , see . For a description of how everything is implemented, see .
+
+
+
+
+ In this section we explore the relationship between both runtime and build-time dependencies and the 3 Autoconf platforms.
+
+
+
+ A run time dependency between two packages requires that their host platforms match. This is directly implied by the meaning of "host platform" and "runtime dependency": The package dependency exists while both packages are running on a single host platform.
+
+
+
+ A build time dependency, however, has a shift in platforms between the depending package and the depended-on package. "build time dependency" means that to build the depending package we need to be able to run the depended-on's package. The depending package's build platform is therefore equal to the depended-on package's host platform.
+
+
+
+ If both the dependency and depending packages aren't compilers or other machine-code-producing tools, we're done. And indeed buildInputs and nativeBuildInputs have covered these simpler build-time and run-time (respectively) changes for many years. But if the dependency does produce machine code, we might need to worry about its target platform too. In principle, that target platform might be any of the depending package's build, host, or target platforms, but we prohibit dependencies from a "later" platform to an earlier platform to limit confusion because we've never seen a legitimate use for them.
+
+
+
+ Finally, if the depending package is a compiler or other machine-code-producing tool, it might need dependencies that run at "emit time". This is for compilers that (regrettably) insist on being built together with their source langauges' standard libraries. Assuming build != host != target, a run-time dependency of the standard library cannot be run at the compiler's build time or run time, but only at the run time of code emitted by the compiler.
+
+
+
+ Putting this all together, that means we have dependencies in the form "host → target", in at most the following six combinations:
+
+ Possible dependency types
+
+
+ Dependency's host platform
+ Dependency's target platform
+
+
+
+
+ build
+ build
+
+
+ build
+ host
+
+
+ build
+ target
+
+
+ host
+ host
+
+
+ host
+ target
+
+
+ target
+ target
+
+
+
+
+
+
+ Some examples will make this table clearer. Suppose there's some package that is being built with a (build, host, target) platform triple of (foo, bar, baz) . If it has a build-time library dependency, that would be a "host → build" dependency with a triple of (foo, foo, *) (the target platform is irrelevant). If it needs a compiler to be built, that would be a "build → host" dependency with a triple of (foo, foo, *) (the target platform is irrelevant). That compiler, would be built with another compiler, also "build → host" dependency, with a triple of (foo, foo, foo) .
+
+
+
+
+ Cross packaging cookbook
+
+
+ Some frequently encountered problems when packaging for cross-compilation should be answered here. Ideally, the information above is exhaustive, so this section cannot provide any new information, but it is ludicrous and cruel to expect everyone to spend effort working through the interaction of many features just to figure out the same answer to the same common problem. Feel free to add to this list!
+
+
+
+
+
+
+ What if my package's build system needs to build a C program to be run under the build environment?
+
+
+
+
+depsBuildBuild = [ buildPackages.stdenv.cc ];
+ Add it to your mkDerivation invocation.
+
+
+
+
+
+
+ My package fails to find ar .
+
+
+
+
+ Many packages assume that an unprefixed ar is available, but Nix doesn't provide one. It only provides a prefixed one, just as it only does for all the other binutils programs. It may be necessary to patch the package to fix the build system to use a prefixed `ar`.
+
+
+
+
+
+
+ My package's testsuite needs to run host platform code.
+
+
+
+
+doCheck = stdenv.hostPlatform != stdenv.buildPlatfrom;
+ Add it to your mkDerivation invocation.
+
+
+
+
+
+
+
+
+ Cross-building packages
+
+
+ Nixpkgs can be instantiated with localSystem alone, in which case there is no cross-compiling and everything is built by and for that system, or also with crossSystem , in which case packages run on the latter, but all building happens on the former. Both parameters take the same schema as the 3 (build, host, and target) platforms defined in the previous section. As mentioned above, lib.systems.examples has some platforms which are used as arguments for these parameters in practice. You can use them programmatically, or on the command line:
+
+nix-build '<nixpkgs>' --arg crossSystem '(import <nixpkgs/lib>).systems.examples.fooBarBaz' -A whatever
+
+
+
+
+ Eventually we would like to make these platform examples an unnecessary convenience so that
+
+nix-build '<nixpkgs>' --arg crossSystem '{ config = "<arch>-<os>-<vendor>-<abi>"; }' -A whatever
+ works in the vast majority of cases. The problem today is dependencies on other sorts of configuration which aren't given proper defaults. We rely on the examples to crudely to set those configuration parameters in some vaguely sane manner on the users behalf. Issue #34274 tracks this inconvenience along with its root cause in crufty configuration options.
+
+
+
+
+ While one is free to pass both parameters in full, there's a lot of logic to fill in missing fields. As discussed in the previous section, only one of system , config , and parsed is needed to infer the other two. Additionally, libc will be inferred from parse . Finally, localSystem.system is also impurely inferred based on the platform evaluation occurs. This means it is often not necessary to pass localSystem at all, as in the command-line example in the previous paragraph.
+
+
+
+
+ Many sources (manual, wiki, etc) probably mention passing system , platform , along with the optional crossSystem to nixpkgs: import <nixpkgs> { system = ..; platform = ..; crossSystem = ..; } . Passing those two instead of localSystem is still supported for compatibility, but is discouraged. Indeed, much of the inference we do for these parameters is motivated by compatibility as much as convenience.
+
+
+
+
+ One would think that localSystem and crossSystem overlap horribly with the three *Platforms (buildPlatform , hostPlatform, and targetPlatform ; see stage.nix or the manual). Actually, those identifiers are purposefully not used here to draw a subtle but important distinction: While the granularity of having 3 platforms is necessary to properly *build* packages, it is overkill for specifying the user's *intent* when making a build plan or package set. A simple "build vs deploy" dichotomy is adequate: the sliding window principle described in the previous section shows how to interpolate between the these two "end points" to get the 3 platform triple for each bootstrapping stage. That means for any package a given package set, even those not bound on the top level but only reachable via dependencies or buildPackages , the three platforms will be defined as one of localSystem or crossSystem , with the former replacing the latter as one traverses build-time dependencies. A last simple difference is that crossSystem should be null when one doesn't want to cross-compile, while the *Platform s are always non-null. localSystem is always non-null.
+
+
+
+
+ Cross-compilation infrastructure
+
+
+ Implementation of dependencies
+
+
+ The categorizes of dependencies developed in are specified as lists of derivations given to mkDerivation , as documented in . In short, each list of dependencies for "host → target" of "foo → bar" is called depsFooBar , with exceptions for backwards compatibility that depsBuildHost is instead called nativeBuildInputs and depsHostTarget is instead called buildInputs . Nixpkgs is now structured so that each depsFooBar is automatically taken from pkgsFooBar . (These pkgsFooBar s are quite new, so there is no special case for nativeBuildInputs and buildInputs .) For example, pkgsBuildHost.gcc should be used at build-time, while pkgsHostTarget.gcc should be used at run-time.
+
+
+
+ Now, for most of Nixpkgs's history, there were no pkgsFooBar attributes, and most packages have not been refactored to use it explicitly. Prior to those, there were just buildPackages , pkgs , and targetPackages . Those are now redefined as aliases to pkgsBuildHost , pkgsHostTarget , and pkgsTargetTarget . It is acceptable, even recommended, to use them for libraries to show that the host platform is irrelevant.
+
+
+
+ But before that, there was just pkgs , even though both buildInputs and nativeBuildInputs existed. [Cross barely worked, and those were implemented with some hacks on mkDerivation to override dependencies.] What this means is the vast majority of packages do not use any explicit package set to populate their dependencies, just using whatever callPackage gives them even if they do correctly sort their dependencies into the multiple lists described above. And indeed, asking that users both sort their dependencies, and take them from the right attribute set, is both too onerous and redundant, so the recommended approach (for now) is to continue just categorizing by list and not using an explicit package set.
+
+
+
+ To make this work, we "splice" together the six pkgsFooBar package sets and have callPackage actually take its arguments from that. This is currently implemented in pkgs/top-level/splice.nix . mkDerivation then, for each dependency attribute, pulls the right derivation out from the splice. This splicing can be skipped when not cross-compiling as the package sets are the same, but still is a bit slow for cross-compiling. We'd like to do something better, but haven't come up with anything yet.
+
+
+
+
+ Bootstrapping
+
+
+ Each of the package sets described above come from a single bootstrapping stage. While pkgs/top-level/default.nix , coordinates the composition of stages at a high level, pkgs/top-level/stage.nix "ties the knot" (creates the fixed point) of each stage. The package sets are defined per-stage however, so they can be thought of as edges between stages (the nodes) in a graph. Compositions like pkgsBuildTarget.targetPackages can be thought of as paths to this graph.
+
+
+
+ While there are many package sets, and thus many edges, the stages can also be arranged in a linear chain. In other words, many of the edges are redundant as far as connectivity is concerned. This hinges on the type of bootstrapping we do. Currently for cross it is:
+
+
+
+ (native, native, native)
+
+
+
+
+ (native, native, foreign)
+
+
+
+
+ (native, foreign, foreign)
+
+
+
+ In each stage, pkgsBuildHost refers to the previous stage, pkgsBuildBuild refers to the one before that, and pkgsHostTarget refers to the current one, and pkgsTargetTarget refers to the next one. When there is no previous or next stage, they instead refer to the current stage. Note how all the invariants regarding the mapping between dependency and depending packages' build host and target platforms are preserved. pkgsBuildTarget and pkgsHostHost are more complex in that the stage fitting the requirements isn't always a fixed chain of "prevs" and "nexts" away (modulo the "saturating" self-references at the ends). We just special case each instead. All the primary edges are implemented is in pkgs/stdenv/booter.nix , and secondarily aliases in pkgs/top-level/stage.nix .
+
+
+
+
+ Note the native stages are bootstrapped in legacy ways that predate the current cross implementation. This is why the bootstrapping stages leading up to the final stages are ignored inthe previous paragraph.
+
+
+
+
+ If one looks at the 3 platform triples, one can see that they overlap such that one could put them together into a chain like:
+
+(native, native, native, foreign, foreign)
+
+ If one imagines the saturating self references at the end being replaced with infinite stages, and then overlays those platform triples, one ends up with the infinite tuple:
+
+(native..., native, native, native, foreign, foreign, foreign...)
+
+ On can then imagine any sequence of platforms such that there are bootstrap stages with their 3 platforms determined by "sliding a window" that is the 3 tuple through the sequence. This was the original model for bootstrapping. Without a target platform (assume a better world where all compilers are multi-target and all standard libraries are built in their own derivation), this is sufficient. Conversely if one wishes to cross compile "faster", with a "Canadian Cross" bootstraping stage where build != host != target , more bootstrapping stages are needed since no sliding window providess the pesky pkgsBuildTarget package set since it skips the Canadian cross stage's "host".
+
+
+
+
+ It is much better to refer to buildPackages than targetPackages , or more broadly package sets that do not mention "target". There are three reasons for this.
+
+
+ First, it is because bootstrapping stages do not have a unique targetPackages . For example a (x86-linux, x86-linux, arm-linux) and (x86-linux, x86-linux, x86-windows) package set both have a (x86-linux, x86-linux, x86-linux) package set. Because there is no canonical targetPackages for such a native (build == host == target ) package set, we set their targetPackages
+
+
+ Second, it is because this is a frequent source of hard-to-follow "infinite recursions" / cycles. When only package sets that don't mention target are used, the package set forms a directed acyclic graph. This means that all cycles that exist are confined to one stage. This means they are a lot smaller, and easier to follow in the code or a backtrace. It also means they are present in native and cross builds alike, and so more likely to be caught by CI and other users.
+
+
+ Thirdly, it is because everything target-mentioning only exists to accommodate compilers with lousy build systems that insist on the compiler itself and standard library being built together. Of course that is bad because bigger derivations means longer rebuilds. It is also problematic because it tends to make the standard libraries less like other libraries than they could be, complicating code and build systems alike. Because of the other problems, and because of these innate disadvantages, compilers ought to be packaged another way where possible.
+
+
+
+
+
+ If one explores Nixpkgs, they will see derivations with names like gccCross . Such *Cross derivations is a holdover from before we properly distinguished between the host and target platforms—the derivation with "Cross" in the name covered the build = host != target case, while the other covered the host = target , with build platform the same or not based on whether one was using its .nativeDrv or .crossDrv . This ugliness will disappear soon.
+
+
+
+
+
diff --git a/doc/meta.xml b/doc/stdenv/meta.xml
similarity index 58%
rename from doc/meta.xml
rename to doc/stdenv/meta.xml
index 58c390a68b8..9371196818a 100644
--- a/doc/meta.xml
+++ b/doc/stdenv/meta.xml
@@ -3,10 +3,7 @@
xml:id="chap-meta">
Meta-attributes
- Nix packages can declare meta-attributes that contain
- information about a package such as a description, its homepage, its license,
- and so on. For instance, the GNU Hello package has a meta
- declaration like this:
+ Nix packages can declare meta-attributes that contain information about a package such as a description, its homepage, its license, and so on. For instance, the GNU Hello package has a meta declaration like this:
meta = with stdenv.lib; {
description = "A program that produces a familiar, friendly greeting";
@@ -22,13 +19,10 @@ meta = with stdenv.lib; {
- Meta-attributes are not passed to the builder of the package. Thus, a change
- to a meta-attribute doesn’t trigger a recompilation of the package. The
- value of a meta-attribute must be a string.
+ Meta-attributes are not passed to the builder of the package. Thus, a change to a meta-attribute doesn’t trigger a recompilation of the package. The value of a meta-attribute must be a string.
- The meta-attributes of a package can be queried from the command-line using
- nix-env :
+ The meta-attributes of a package can be queried from the command-line using nix-env :
$ nix-env -qa hello --json
{
@@ -67,8 +61,7 @@ meta = with stdenv.lib; {
- nix-env knows about the description
- field specifically:
+ nix-env knows about the description field specifically:
$ nix-env -qa hello --description
hello-2.3 A program that produces a familiar, friendly greeting
@@ -88,18 +81,13 @@ hello-2.3 A program that produces a familiar, friendly greeting
- A short (one-line) description of the package. This is shown by
- nix-env -q --description and also on the Nixpkgs
- release pages.
+ A short (one-line) description of the package. This is shown by nix-env -q --description and also on the Nixpkgs release pages.
- Don’t include a period at the end. Don’t include newline characters.
- Capitalise the first character. For brevity, don’t repeat the name of
- package — just describe what it does.
+ Don’t include a period at the end. Don’t include newline characters. Capitalise the first character. For brevity, don’t repeat the name of package — just describe what it does.
- Wrong: "libpng is a library that allows you to decode PNG
- images."
+ Wrong: "libpng is a library that allows you to decode PNG images."
Right: "A library for decoding PNG images"
@@ -122,9 +110,7 @@ hello-2.3 A program that produces a familiar, friendly greeting
- Release branch. Used to specify that a package is not going to receive
- updates that are not in this branch; for example, Linux kernel 3.0 is
- supposed to be updated to 3.0.X, not 3.1.
+ Release branch. Used to specify that a package is not going to receive updates that are not in this branch; for example, Linux kernel 3.0 is supposed to be updated to 3.0.X, not 3.1.
@@ -134,8 +120,7 @@ hello-2.3 A program that produces a familiar, friendly greeting
- The package’s homepage. Example:
- https://www.gnu.org/software/hello/manual/
+ The package’s homepage. Example: https://www.gnu.org/software/hello/manual/
@@ -145,8 +130,7 @@ hello-2.3 A program that produces a familiar, friendly greeting
- The page where a link to the current version can be found. Example:
- https://ftp.gnu.org/gnu/hello/
+ The page where a link to the current version can be found. Example: https://ftp.gnu.org/gnu/hello/
@@ -156,10 +140,7 @@ hello-2.3 A program that produces a familiar, friendly greeting
- A link or a list of links to the location of Changelog for a package.
- A link may use expansion to refer to the correct changelog version.
- Example:
- "https://git.savannah.gnu.org/cgit/hello.git/plain/NEWS?h=v${version}"
+ A link or a list of links to the location of Changelog for a package. A link may use expansion to refer to the correct changelog version. Example: "https://git.savannah.gnu.org/cgit/hello.git/plain/NEWS?h=v${version}"
@@ -169,46 +150,32 @@ hello-2.3 A program that produces a familiar, friendly greeting
- The license, or licenses, for the package. One from the attribute set
- defined in
-
- nixpkgs/lib/licenses.nix . At this moment
- using both a list of licenses and a single license is valid. If the
- license field is in the form of a list representation, then it means that
- parts of the package are licensed differently. Each license should
- preferably be referenced by their attribute. The non-list attribute value
- can also be a space delimited string representation of the contained
- attribute shortNames or spdxIds. The following are all valid examples:
+ The license, or licenses, for the package. One from the attribute set defined in nixpkgs/lib/licenses.nix . At this moment using both a list of licenses and a single license is valid. If the license field is in the form of a list representation, then it means that parts of the package are licensed differently. Each license should preferably be referenced by their attribute. The non-list attribute value can also be a space delimited string representation of the contained attribute shortNames or spdxIds. The following are all valid examples:
- Single license referenced by attribute (preferred)
- stdenv.lib.licenses.gpl3 .
+ Single license referenced by attribute (preferred) stdenv.lib.licenses.gpl3 .
- Single license referenced by its attribute shortName (frowned upon)
- "gpl3" .
+ Single license referenced by its attribute shortName (frowned upon) "gpl3" .
- Single license referenced by its attribute spdxId (frowned upon)
- "GPL-3.0" .
+ Single license referenced by its attribute spdxId (frowned upon) "GPL-3.0" .
- Multiple licenses referenced by attribute (preferred) with
- stdenv.lib.licenses; [ asl20 free ofl ] .
+ Multiple licenses referenced by attribute (preferred) with stdenv.lib.licenses; [ asl20 free ofl ] .
- Multiple licenses referenced as a space delimited string of attribute
- shortNames (frowned upon) "asl20 free ofl" .
+ Multiple licenses referenced as a space delimited string of attribute shortNames (frowned upon) "asl20 free ofl" .
@@ -222,13 +189,8 @@ hello-2.3 A program that produces a familiar, friendly greeting
- A list of names and e-mail addresses of the maintainers of this Nix
- expression. If you would like to be a maintainer of a package, you may
- want to add yourself to
- nixpkgs/maintainers/maintainer-list.nix
- and write something like [ stdenv.lib.maintainers.alice
- stdenv.lib.maintainers.bob ] .
+ A list of names and e-mail addresses of the maintainers of this Nix expression. If you would like to be a maintainer of a package, you may want to add yourself to nixpkgs/maintainers/maintainer-list.nix and write something like [ stdenv.lib.maintainers.alice stdenv.lib.maintainers.bob ] .
@@ -238,10 +200,7 @@ hello-2.3 A program that produces a familiar, friendly greeting
- The priority of the package, used by
- nix-env to resolve file name conflicts between
- packages. See the Nix manual page for nix-env for
- details. Example: "10" (a low-priority package).
+ The priority of the package, used by nix-env to resolve file name conflicts between packages. See the Nix manual page for nix-env for details. Example: "10" (a low-priority package).
@@ -251,15 +210,11 @@ hello-2.3 A program that produces a familiar, friendly greeting
- The list of Nix platform types on which the package is supported. Hydra
- builds packages according to the platform specified. If no platform is
- specified, the package does not have prebuilt binaries. An example is:
+ The list of Nix platform types on which the package is supported. Hydra builds packages according to the platform specified. If no platform is specified, the package does not have prebuilt binaries. An example is:
meta.platforms = stdenv.lib.platforms.linux;
- Attribute Set stdenv.lib.platforms defines
-
- various common lists of platforms types.
+ Attribute Set stdenv.lib.platforms defines various common lists of platforms types.
@@ -270,23 +225,14 @@ meta.platforms = stdenv.lib.platforms.linux;
- This attribute is special in that it is not actually under the
- meta attribute set but rather under the
- passthru attribute set. This is due to how
- meta attributes work, and the fact that they
- are supposed to contain only metadata, not derivations.
+ This attribute is special in that it is not actually under the meta attribute set but rather under the passthru attribute set. This is due to how meta attributes work, and the fact that they are supposed to contain only metadata, not derivations.
- An attribute set with as values tests. A test is a derivation, which
- builds successfully when the test passes, and fails to build otherwise. A
- derivation that is a test needs to have meta.timeout
- defined.
+ An attribute set with as values tests. A test is a derivation, which builds successfully when the test passes, and fails to build otherwise. A derivation that is a test needs to have meta.timeout defined.
- The NixOS tests are available as nixosTests in
- parameters of derivations. For instance, the OpenSMTPD derivation
- includes lines similar to:
+ The NixOS tests are available as nixosTests in parameters of derivations. For instance, the OpenSMTPD derivation includes lines similar to:
{ /* ... */, nixosTests }:
{
@@ -305,13 +251,7 @@ meta.platforms = stdenv.lib.platforms.linux;
- A timeout (in seconds) for building the derivation. If the derivation
- takes longer than this time to build, it can fail due to breaking the
- timeout. However, all computers do not have the same computing power,
- hence some builders may decide to apply a multiplicative factor to this
- value. When filling this value in, try to keep it approximately
- consistent with other values already present in
- nixpkgs .
+ A timeout (in seconds) for building the derivation. If the derivation takes longer than this time to build, it can fail due to breaking the timeout. However, all computers do not have the same computing power, hence some builders may decide to apply a multiplicative factor to this value. When filling this value in, try to keep it approximately consistent with other values already present in nixpkgs .
@@ -321,13 +261,7 @@ meta.platforms = stdenv.lib.platforms.linux;
- The list of Nix platform types for which the Hydra instance at
- hydra.nixos.org will build the package. (Hydra is the
- Nix-based continuous build system.) It defaults to the value of
- meta.platforms . Thus, the only reason to set
- meta.hydraPlatforms is if you want
- hydra.nixos.org to build the package on a subset of
- meta.platforms , or not at all, e.g.
+ The list of Nix platform types for which the Hydra instance at hydra.nixos.org will build the package. (Hydra is the Nix-based continuous build system.) It defaults to the value of meta.platforms . Thus, the only reason to set meta.hydraPlatforms is if you want hydra.nixos.org to build the package on a subset of meta.platforms , or not at all, e.g.
meta.platforms = stdenv.lib.platforms.linux;
meta.hydraPlatforms = [];
@@ -341,10 +275,7 @@ meta.hydraPlatforms = [];
- If set to true , the package is marked as “broken”,
- meaning that it won’t show up in nix-env -qa , and
- cannot be built or installed. Such packages should be removed from
- Nixpkgs eventually unless they are fixed.
+ If set to true , the package is marked as “broken”, meaning that it won’t show up in nix-env -qa , and cannot be built or installed. Such packages should be removed from Nixpkgs eventually unless they are fixed.
@@ -354,12 +285,7 @@ meta.hydraPlatforms = [];
- If set to true , the package is tested to be updated
- correctly by the update-walker.sh script without
- additional settings. Such packages have meta.version
- set and their homepage (or the page specified by
- meta.downloadPage ) contains a direct link to the
- package tarball.
+ If set to true , the package is tested to be updated correctly by the update-walker.sh script without additional settings. Such packages have meta.version set and their homepage (or the page specified by meta.downloadPage ) contains a direct link to the package tarball.
@@ -369,17 +295,11 @@ meta.hydraPlatforms = [];
Licenses
- The meta.license attribute should preferrably contain a
- value from stdenv.lib.licenses defined in
-
- nixpkgs/lib/licenses.nix , or in-place license
- description of the same format if the license is unlikely to be useful in
- another expression.
+ The meta.license attribute should preferrably contain a value from stdenv.lib.licenses defined in nixpkgs/lib/licenses.nix , or in-place license description of the same format if the license is unlikely to be useful in another expression.
- Although it's typically better to indicate the specific license, a few
- generic options are available:
+ Although it's typically better to indicate the specific license, a few generic options are available:
@@ -397,18 +317,10 @@ meta.hydraPlatforms = [];
- Unfree package that can be redistributed in binary form. That is, it’s
- legal to redistribute the output of the derivation.
- This means that the package can be included in the Nixpkgs channel.
+ Unfree package that can be redistributed in binary form. That is, it’s legal to redistribute the output of the derivation. This means that the package can be included in the Nixpkgs channel.
- Sometimes proprietary software can only be redistributed unmodified.
- Make sure the builder doesn’t actually modify the original binaries;
- otherwise we’re breaking the license. For instance, the NVIDIA X11
- drivers can be redistributed unmodified, but our builder applies
- patchelf to make them work. Thus, its license is
- "unfree" and it cannot be included in the Nixpkgs
- channel.
+ Sometimes proprietary software can only be redistributed unmodified. Make sure the builder doesn’t actually modify the original binaries; otherwise we’re breaking the license. For instance, the NVIDIA X11 drivers can be redistributed unmodified, but our builder applies patchelf to make them work. Thus, its license is "unfree" and it cannot be included in the Nixpkgs channel.
@@ -418,9 +330,7 @@ meta.hydraPlatforms = [];
- Unfree package that cannot be redistributed. You can build it yourself,
- but you cannot redistribute the output of the derivation. Thus it cannot
- be included in the Nixpkgs channel.
+ Unfree package that cannot be redistributed. You can build it yourself, but you cannot redistribute the output of the derivation. Thus it cannot be included in the Nixpkgs channel.
@@ -430,9 +340,7 @@ meta.hydraPlatforms = [];
- This package supplies unfree, redistributable firmware. This is a
- separate value from unfree-redistributable because
- not everybody cares whether firmware is free.
+ This package supplies unfree, redistributable firmware. This is a separate value from unfree-redistributable because not everybody cares whether firmware is free.
diff --git a/doc/stdenv/multiple-output.xml b/doc/stdenv/multiple-output.xml
new file mode 100644
index 00000000000..83275bb2fbd
--- /dev/null
+++ b/doc/stdenv/multiple-output.xml
@@ -0,0 +1,232 @@
+
+
+]>
+
+ Multiple-output packages
+
+ Introduction
+
+
+ The Nix language allows a derivation to produce multiple outputs, which is similar to what is utilized by other Linux distribution packaging systems. The outputs reside in separate Nix store paths, so they can be mostly handled independently of each other, including passing to build inputs, garbage collection or binary substitution. The exception is that building from source always produces all the outputs.
+
+
+
+ The main motivation is to save disk space by reducing runtime closure sizes; consequently also sizes of substituted binaries get reduced. Splitting can be used to have more granular runtime dependencies, for example the typical reduction is to split away development-only files, as those are typically not needed during runtime. As a result, closure sizes of many packages can get reduced to a half or even much less.
+
+
+
+
+ The reduction effects could be instead achieved by building the parts in completely separate derivations. That would often additionally reduce build-time closures, but it tends to be much harder to write such derivations, as build systems typically assume all parts are being built at once. This compromise approach of single source package producing multiple binary packages is also utilized often by rpm and deb.
+
+
+
+
+ Installing a split package
+
+
+ When installing a package via systemPackages or nix-env you have several options:
+
+
+
+
+
+ You can install particular outputs explicitly, as each is available in the Nix language as an attribute of the package. The outputs attribute contains a list of output names.
+
+
+
+
+ You can let it use the default outputs. These are handled by meta.outputsToInstall attribute that contains a list of output names.
+
+
+ TODO: more about tweaking the attribute, etc.
+
+
+
+
+ NixOS provides configuration option environment.extraOutputsToInstall that allows adding extra outputs of environment.systemPackages atop the default ones. It's mainly meant for documentation and debug symbols, and it's also modified by specific options.
+
+
+
+ At this moment there is no similar configurability for packages installed by nix-env . You can still use approach from to override meta.outputsToInstall attributes, but that's a rather inconvenient way.
+
+
+
+
+
+
+ Using a split package
+
+
+ In the Nix language the individual outputs can be reached explicitly as attributes, e.g. coreutils.info , but the typical case is just using packages as build inputs.
+
+
+
+ When a multiple-output derivation gets into a build input of another derivation, the dev output is added if it exists, otherwise the first output is added. In addition to that, propagatedBuildOutputs of that package which by default contain $outputBin and $outputLib are also added. (See .)
+
+
+
+ In some cases it may be desirable to combine different outputs under a single store path. A function symlinkJoin can be used to do this. (Note that it may negate some closure size benefits of using a multiple-output package.)
+
+
+
+ Writing a split derivation
+
+
+ Here you find how to write a derivation that produces multiple outputs.
+
+
+
+ In nixpkgs there is a framework supporting multiple-output derivations. It tries to cover most cases by default behavior. You can find the source separated in <nixpkgs/pkgs/build-support/setup-hooks/multiple-outputs.sh >; it's relatively well-readable. The whole machinery is triggered by defining the outputs attribute to contain the list of desired output names (strings).
+
+
+outputs = [ "bin" "dev" "out" "doc" ];
+
+
+ Often such a single line is enough. For each output an equally named environment variable is passed to the builder and contains the path in nix store for that output. Typically you also want to have the main out output, as it catches any files that didn't get elsewhere.
+
+
+
+
+ There is a special handling of the debug output, described at .
+
+
+
+
+ Binaries first
+
+
+ A commonly adopted convention in nixpkgs is that executables provided by the package are contained within its first output. This convention allows the dependent packages to reference the executables provided by packages in a uniform manner. For instance, provided with the knowledge that the perl package contains a perl executable it can be referenced as ${pkgs.perl}/bin/perl within a Nix derivation that needs to execute a Perl script.
+
+
+
+ The glibc package is a deliberate single exception to the binaries first
convention. The glibc has libs as its first output allowing the libraries provided by glibc to be referenced directly (e.g. ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 ). The executables provided by glibc can be accessed via its bin attribute (e.g. ${stdenv.glibc.bin}/bin/ldd ).
+
+
+
+ The reason for why glibc deviates from the convention is because referencing a library provided by glibc is a very common operation among Nix packages. For instance, third-party executables packaged by Nix are typically patched and relinked with the relevant version of glibc libraries from Nix packages (please see the documentation on patchelf for more details).
+
+
+
+
+ File type groups
+
+
+ The support code currently recognizes some particular kinds of outputs and either instructs the build system of the package to put files into their desired outputs or it moves the files during the fixup phase. Each group of file types has an outputFoo variable specifying the output name where they should go. If that variable isn't defined by the derivation writer, it is guessed – a default output name is defined, falling back to other possibilities if the output isn't defined.
+
+
+
+
+
+ $outputDev
+
+
+
+ is for development-only files. These include C(++) headers, pkg-config, cmake and aclocal files. They go to dev or out by default.
+
+
+
+
+
+ $outputBin
+
+
+
+ is meant for user-facing binaries, typically residing in bin/. They go to bin or out by default.
+
+
+
+
+
+ $outputLib
+
+
+
+ is meant for libraries, typically residing in lib/ and libexec/ . They go to lib or out by default.
+
+
+
+
+
+ $outputDoc
+
+
+
+ is for user documentation, typically residing in share/doc/ . It goes to doc or out by default.
+
+
+
+
+
+ $outputDevdoc
+
+
+
+ is for developer documentation. Currently we count gtk-doc and devhelp books in there. It goes to devdoc or is removed (!) by default. This is because e.g. gtk-doc tends to be rather large and completely unused by nixpkgs users.
+
+
+
+
+
+ $outputMan
+
+
+
+ is for man pages (except for section 3). They go to man or $outputBin by default.
+
+
+
+
+
+ $outputDevman
+
+
+
+ is for section 3 man pages. They go to devman or $outputMan by default.
+
+
+
+
+
+ $outputInfo
+
+
+
+ is for info pages. They go to info or $outputBin by default.
+
+
+
+
+
+
+
+ Common caveats
+
+
+
+
+ Some configure scripts don't like some of the parameters passed by default by the framework, e.g. --docdir=/foo/bar . You can disable this by setting setOutputFlags = false; .
+
+
+
+
+ The outputs of a single derivation can retain references to each other, but note that circular references are not allowed. (And each strongly-connected component would act as a single output anyway.)
+
+
+
+
+ Most of split packages contain their core functionality in libraries. These libraries tend to refer to various kind of data that typically gets into out , e.g. locale strings, so there is often no advantage in separating the libraries into lib , as keeping them in out is easier.
+
+
+
+
+ Some packages have hidden assumptions on install paths, which complicates splitting.
+
+
+
+
+
+
+
diff --git a/doc/platform-notes.xml b/doc/stdenv/platform-notes.xml
similarity index 55%
rename from doc/platform-notes.xml
rename to doc/stdenv/platform-notes.xml
index 157d3fe2fcd..5a266fdc0ee 100644
--- a/doc/platform-notes.xml
+++ b/doc/stdenv/platform-notes.xml
@@ -1,6 +1,6 @@
+ xml:id="chap-platform-notes">
Platform Notes
Darwin (macOS)
@@ -12,12 +12,7 @@
- The Darwin stdenv uses clang instead of gcc. When
- referring to the compiler $CC or cc
- will work in both cases. Some builds hardcode gcc/g++ in their build
- scripts, that can usually be fixed with using something like
- makeFlags = [ "CC=cc" ]; or by patching the build
- scripts.
+ The Darwin stdenv uses clang instead of gcc. When referring to the compiler $CC or cc will work in both cases. Some builds hardcode gcc/g++ in their build scripts, that can usually be fixed with using something like makeFlags = [ "CC=cc" ]; or by patching the build scripts.
stdenv.mkDerivation {
@@ -31,12 +26,7 @@ stdenv.mkDerivation {
- On Darwin, libraries are linked using absolute paths, libraries are
- resolved by their install_name at link time. Sometimes
- packages won't set this correctly causing the library lookups to fail at
- runtime. This can be fixed by adding extra linker flags or by running
- install_name_tool -id during the
- fixupPhase .
+ On Darwin, libraries are linked using absolute paths, libraries are resolved by their install_name at link time. Sometimes packages won't set this correctly causing the library lookups to fail at runtime. This can be fixed by adding extra linker flags or by running install_name_tool -id during the fixupPhase .
stdenv.mkDerivation {
@@ -48,16 +38,10 @@ stdenv.mkDerivation {
- Even if the libraries are linked using absolute paths and resolved via
- their install_name correctly, tests can sometimes fail
- to run binaries. This happens because the checkPhase
- runs before the libraries are installed.
+ Even if the libraries are linked using absolute paths and resolved via their install_name correctly, tests can sometimes fail to run binaries. This happens because the checkPhase runs before the libraries are installed.
- This can usually be solved by running the tests after the
- installPhase or alternatively by using
- DYLD_LIBRARY_PATH . More information about this variable
- can be found in the
+ This can usually be solved by running the tests after the installPhase or alternatively by using DYLD_LIBRARY_PATH . More information about this variable can be found in the
dyld
1 manpage.
@@ -78,11 +62,7 @@ stdenv.mkDerivation {
- Some packages assume xcode is available and use xcrun
- to resolve build tools like clang , etc. This causes
- errors like xcode-select: error: no developer tools were found at
- '/Applications/Xcode.app'
while the build doesn't actually depend
- on xcode.
+ Some packages assume xcode is available and use xcrun to resolve build tools like clang , etc. This causes errors like xcode-select: error: no developer tools were found at '/Applications/Xcode.app'
while the build doesn't actually depend on xcode.
stdenv.mkDerivation {
@@ -95,9 +75,7 @@ stdenv.mkDerivation {
}
- The package xcbuild can be used to build projects that
- really depend on Xcode. However, this replacement is not 100% compatible
- with Xcode and can occasionally cause issues.
+ The package xcbuild can be used to build projects that really depend on Xcode. However, this replacement is not 100% compatible with Xcode and can occasionally cause issues.
diff --git a/doc/stdenv/stdenv.xml b/doc/stdenv/stdenv.xml
new file mode 100644
index 00000000000..0b59f90eb49
--- /dev/null
+++ b/doc/stdenv/stdenv.xml
@@ -0,0 +1,2375 @@
+
+ The Standard Environment
+
+ The standard build environment in the Nix Packages collection provides an environment for building Unix packages that does a lot of common build tasks automatically. In fact, for Unix packages that use the standard ./configure; make; make install build interface, you don’t need to write a build script at all; the standard environment does everything automatically. If stdenv doesn’t do what you need automatically, you can easily customise or override the various build phases.
+
+
+ Using stdenv
+
+
+ To build a package with the standard environment, you use the function stdenv.mkDerivation , instead of the primitive built-in function derivation , e.g.
+
+stdenv.mkDerivation {
+ name = "libfoo-1.2.3";
+ src = fetchurl {
+ url = http://example.org/libfoo-1.2.3.tar.bz2;
+ sha256 = "0x2g1jqygyr5wiwg4ma1nd7w4ydpy82z9gkcv8vh2v8dn3y58v5m";
+ };
+}
+ (stdenv needs to be in scope, so if you write this in a separate Nix expression from pkgs/all-packages.nix , you need to pass it as a function argument.) Specifying a name and a src is the absolute minimum Nix requires. For convenience, you can also use pname and version attributes and mkDerivation will automatically set name to "${pname}-${version}" by default. Since RFC 0035, this is preferred for packages in Nixpkgs, as it allows us to reuse the version easily:
+
+stdenv.mkDerivation rec {
+ pname = "libfoo";
+ version = "1.2.3";
+ src = fetchurl {
+ url = "http://example.org/libfoo-source-${version}.tar.bz2";
+ sha256 = "0x2g1jqygyr5wiwg4ma1nd7w4ydpy82z9gkcv8vh2v8dn3y58v5m";
+ };
+}
+
+
+
+ Many packages have dependencies that are not provided in the standard environment. It’s usually sufficient to specify those dependencies in the buildInputs attribute:
+
+stdenv.mkDerivation {
+ name = "libfoo-1.2.3";
+ ...
+ buildInputs = [libbar perl ncurses];
+}
+ This attribute ensures that the bin subdirectories of these packages appear in the PATH environment variable during the build, that their include subdirectories are searched by the C compiler, and so on. (See for details.)
+
+
+
+ Often it is necessary to override or modify some aspect of the build. To make this easier, the standard environment breaks the package build into a number of phases , all of which can be overridden or modified individually: unpacking the sources, applying patches, configuring, building, and installing. (There are some others; see .) For instance, a package that doesn’t supply a makefile but instead has to be compiled “manually” could be handled like this:
+
+stdenv.mkDerivation {
+ name = "fnord-4.5";
+ ...
+ buildPhase = ''
+ gcc foo.c -o foo
+ '';
+ installPhase = ''
+ mkdir -p $out/bin
+ cp foo $out/bin
+ '';
+}
+ (Note the use of '' -style string literals, which are very convenient for large multi-line script fragments because they don’t need escaping of " and \ , and because indentation is intelligently removed.)
+
+
+
+ There are many other attributes to customise the build. These are listed in .
+
+
+
+ While the standard environment provides a generic builder, you can still supply your own build script:
+
+stdenv.mkDerivation {
+ name = "libfoo-1.2.3";
+ ...
+ builder = ./builder.sh;
+}
+ where the builder can do anything it wants, but typically starts with
+
+source $stdenv/setup
+
+ to let stdenv set up the environment (e.g., process the buildInputs ). If you want, you can still use stdenv ’s generic builder:
+
+source $stdenv/setup
+
+buildPhase() {
+ echo "... this is my custom build phase ..."
+ gcc foo.c -o foo
+}
+
+installPhase() {
+ mkdir -p $out/bin
+ cp foo $out/bin
+}
+
+genericBuild
+
+
+
+
+ Tools provided by stdenv
+
+
+ The standard environment provides the following packages:
+
+
+
+ The GNU C Compiler, configured with C and C++ support.
+
+
+
+
+ GNU coreutils (contains a few dozen standard Unix commands).
+
+
+
+
+ GNU findutils (contains find ).
+
+
+
+
+ GNU diffutils (contains diff , cmp ).
+
+
+
+
+ GNU sed .
+
+
+
+
+ GNU grep .
+
+
+
+
+ GNU awk .
+
+
+
+
+ GNU tar .
+
+
+
+
+ gzip , bzip2 and xz .
+
+
+
+
+ GNU Make. It has been patched to provide nested
output that can be fed into the nix-log2xml command and log2html stylesheet to create a structured, readable output of the build steps performed by Make.
+
+
+
+
+ Bash. This is the shell used for all builders in the Nix Packages collection. Not using /bin/sh removes a large source of portability problems.
+
+
+
+
+ The patch command.
+
+
+
+
+
+
+ On Linux, stdenv also includes the patchelf utility.
+
+
+
+ Specifying dependencies
+
+
+ As described in the Nix manual, almost any *.drv store path in a derivation's attribute set will induce a dependency on that derivation. mkDerivation , however, takes a few attributes intended to, between them, include all the dependencies of a package. This is done both for structure and consistency, but also so that certain other setup can take place. For example, certain dependencies need their bin directories added to the PATH . That is built-in, but other setup is done via a pluggable mechanism that works in conjunction with these dependency attributes. See for details.
+
+
+
+ Dependencies can be broken down along three axes: their host and target platforms relative to the new derivation's, and whether they are propagated. The platform distinctions are motivated by cross compilation; see for exactly what each platform means.
+
+
+ The build platform is ignored because it is a mere implementation detail of the package satisfying the dependency: As a general programming principle, dependencies are always specified as interfaces, not concrete implementation.
+
+
+ But even if one is not cross compiling, the platforms imply whether or not the dependency is needed at run-time or build-time, a concept that makes perfect sense outside of cross compilation. By default, the run-time/build-time distinction is just a hint for mental clarity, but with strictDeps set it is mostly enforced even in the native case.
+
+
+
+ The extension of PATH with dependencies, alluded to above, proceeds according to the relative platforms alone. The process is carried out only for dependencies whose host platform matches the new derivation's build platform i.e. dependencies which run on the platform where the new derivation will be built.
+
+
+ Currently, this means for native builds all dependencies are put on the PATH . But in the future that may not be the case for sake of matching cross: the platforms would be assumed to be unique for native and cross builds alike, so only the depsBuild* and nativeBuildInputs would be added to the PATH .
+
+
+ For each dependency dep of those dependencies, dep /bin , if present, is added to the PATH environment variable.
+
+
+
+ The dependency is propagated when it forces some of its other-transitive (non-immediate) downstream dependencies to also take it on as an immediate dependency. Nix itself already takes a package's transitive dependencies into account, but this propagation ensures nixpkgs-specific infrastructure like setup hooks (mentioned above) also are run as if the propagated dependency.
+
+
+
+ It is important to note that dependencies are not necessarily propagated as the same sort of dependency that they were before, but rather as the corresponding sort so that the platform rules still line up. The exact rules for dependency propagation can be given by assigning to each dependency two integers based one how its host and target platforms are offset from the depending derivation's platforms. Those offsets are given below in the descriptions of each dependency list attribute. Algorithmically, we traverse propagated inputs, accumulating every propagated dependency's propagated dependencies and adjusting them to account for the "shift in perspective" described by the current dependency's platform offsets. This results in sort a transitive closure of the dependency relation, with the offsets being approximately summed when two dependency links are combined. We also prune transitive dependencies whose combined offsets go out-of-bounds, which can be viewed as a filter over that transitive closure removing dependencies that are blatantly absurd.
+
+
+
+ We can define the process precisely with Natural Deduction using the inference rules. This probably seems a bit obtuse, but so is the bash code that actually implements it!
+
+
+ The findInputs function, currently residing in pkgs/stdenv/generic/setup.sh , implements the propagation logic.
+
+
+ They're confusing in very different ways so... hopefully if something doesn't make sense in one presentation, it will in the other!
+
+let mapOffset(h, t, i) = i + (if i <= 0 then h else t - 1)
+
+propagated-dep(h0, t0, A, B)
+propagated-dep(h1, t1, B, C)
+h0 + h1 in {-1, 0, 1}
+h0 + t1 in {-1, 0, 1}
+-------------------------------------- Transitive property
+propagated-dep(mapOffset(h0, t0, h1),
+ mapOffset(h0, t0, t1),
+ A, C)
+
+let mapOffset(h, t, i) = i + (if i <= 0 then h else t - 1)
+
+dep(h0, _, A, B)
+propagated-dep(h1, t1, B, C)
+h0 + h1 in {-1, 0, 1}
+h0 + t1 in {-1, 0, -1}
+----------------------------- Take immediate dependencies' propagated dependencies
+propagated-dep(mapOffset(h0, t0, h1),
+ mapOffset(h0, t0, t1),
+ A, C)
+
+propagated-dep(h, t, A, B)
+----------------------------- Propagated dependencies count as dependencies
+dep(h, t, A, B)
+ Some explanation of this monstrosity is in order. In the common case, the target offset of a dependency is the successor to the target offset: t = h + 1 . That means that:
+
+let f(h, t, i) = i + (if i <= 0 then h else t - 1)
+let f(h, h + 1, i) = i + (if i <= 0 then h else (h + 1) - 1)
+let f(h, h + 1, i) = i + (if i <= 0 then h else h)
+let f(h, h + 1, i) = i + h
+
+ This is where "sum-like" comes in from above: We can just sum all of the host offsets to get the host offset of the transitive dependency. The target offset is the transitive dependency is simply the host offset + 1, just as it was with the dependencies composed to make this transitive one; it can be ignored as it doesn't add any new information.
+
+
+
+ Because of the bounds checks, the uncommon cases are h = t and h + 2 = t . In the former case, the motivation for mapOffset is that since its host and target platforms are the same, no transitive dependency of it should be able to "discover" an offset greater than its reduced target offsets. mapOffset effectively "squashes" all its transitive dependencies' offsets so that none will ever be greater than the target offset of the original h = t package. In the other case, h + 1 is skipped over between the host and target offsets. Instead of squashing the offsets, we need to "rip" them apart so no transitive dependencies' offset is that one.
+
+
+
+ Overall, the unifying theme here is that propagation shouldn't be introducing transitive dependencies involving platforms the depending package is unaware of. [One can imagine the dependending package asking for dependencies with the platforms it knows about; other platforms it doesn't know how to ask for. The platform description in that scenario is a kind of unforagable capability.] The offset bounds checking and definition of mapOffset together ensure that this is the case. Discovering a new offset is discovering a new platform, and since those platforms weren't in the derivation "spec" of the needing package, they cannot be relevant. From a capability perspective, we can imagine that the host and target platforms of a package are the capabilities a package requires, and the depending package must provide the capability to the dependency.
+
+
+
+ Variables specifying dependencies
+
+
+ depsBuildBuild
+
+
+
+ A list of dependencies whose host and target platforms are the new derivation's build platform. This means a -1 host and -1 target offset from the new derivation's platforms. These are programs and libraries used at build time that produce programs and libraries also used at build time. If the dependency doesn't care about the target platform (i.e. isn't a compiler or similar tool), put it in nativeBuildInputs instead. The most common use of this buildPackages.stdenv.cc , the default C compiler for this role. That example crops up more than one might think in old commonly used C libraries.
+
+
+ Since these packages are able to be run at build-time, they are always added to the PATH , as described above. But since these packages are only guaranteed to be able to run then, they shouldn't persist as run-time dependencies. This isn't currently enforced, but could be in the future.
+
+
+
+
+
+ nativeBuildInputs
+
+
+
+ A list of dependencies whose host platform is the new derivation's build platform, and target platform is the new derivation's host platform. This means a -1 host offset and 0 target offset from the new derivation's platforms. These are programs and libraries used at build-time that, if they are a compiler or similar tool, produce code to run at run-time—i.e. tools used to build the new derivation. If the dependency doesn't care about the target platform (i.e. isn't a compiler or similar tool), put it here, rather than in depsBuildBuild or depsBuildTarget . This could be called depsBuildHost but nativeBuildInputs is used for historical continuity.
+
+
+ Since these packages are able to be run at build-time, they are added to the PATH , as described above. But since these packages are only guaranteed to be able to run then, they shouldn't persist as run-time dependencies. This isn't currently enforced, but could be in the future.
+
+
+
+
+
+ depsBuildTarget
+
+
+
+ A list of dependencies whose host platform is the new derivation's build platform, and target platform is the new derivation's target platform. This means a -1 host offset and 1 target offset from the new derivation's platforms. These are programs used at build time that produce code to run with code produced by the depending package. Most commonly, these are tools used to build the runtime or standard library that the currently-being-built compiler will inject into any code it compiles. In many cases, the currently-being-built-compiler is itself employed for that task, but when that compiler won't run (i.e. its build and host platform differ) this is not possible. Other times, the compiler relies on some other tool, like binutils, that is always built separately so that the dependency is unconditional.
+
+
+ This is a somewhat confusing concept to wrap one’s head around, and for good reason. As the only dependency type where the platform offsets are not adjacent integers, it requires thinking of a bootstrapping stage two away from the current one. It and its use-case go hand in hand and are both considered poor form: try to not need this sort of dependency, and try to avoid building standard libraries and runtimes in the same derivation as the compiler produces code using them. Instead strive to build those like a normal library, using the newly-built compiler just as a normal library would. In short, do not use this attribute unless you are packaging a compiler and are sure it is needed.
+
+
+ Since these packages are able to run at build time, they are added to the PATH , as described above. But since these packages are only guaranteed to be able to run then, they shouldn't persist as run-time dependencies. This isn't currently enforced, but could be in the future.
+
+
+
+
+
+ depsHostHost
+
+
+
+ A list of dependencies whose host and target platforms match the new derivation's host platform. This means a 0 host offset and 0 target offset from the new derivation's host platform. These are packages used at run-time to generate code also used at run-time. In practice, this would usually be tools used by compilers for macros or a metaprogramming system, or libraries used by the macros or metaprogramming code itself. It's always preferable to use a depsBuildBuild dependency in the derivation being built over a depsHostHost on the tool doing the building for this purpose.
+
+
+
+
+
+ buildInputs
+
+
+
+ A list of dependencies whose host platform and target platform match the new derivation's. This means a 0 host offset and a 1 target offset from the new derivation's host platform. This would be called depsHostTarget but for historical continuity. If the dependency doesn't care about the target platform (i.e. isn't a compiler or similar tool), put it here, rather than in depsBuildBuild .
+
+
+ These are often programs and libraries used by the new derivation at run -time, but that isn't always the case. For example, the machine code in a statically-linked library is only used at run-time, but the derivation containing the library is only needed at build-time. Even in the dynamic case, the library may also be needed at build-time to appease the linker.
+
+
+
+
+
+ depsTargetTarget
+
+
+
+ A list of dependencies whose host platform matches the new derivation's target platform. This means a 1 offset from the new derivation's platforms. These are packages that run on the target platform, e.g. the standard library or run-time deps of standard library that a compiler insists on knowing about. It's poor form in almost all cases for a package to depend on another from a future stage [future stage corresponding to positive offset]. Do not use this attribute unless you are packaging a compiler and are sure it is needed.
+
+
+
+
+
+ depsBuildBuildPropagated
+
+
+
+ The propagated equivalent of depsBuildBuild . This perhaps never ought to be used, but it is included for consistency [see below for the others].
+
+
+
+
+
+ propagatedNativeBuildInputs
+
+
+
+ The propagated equivalent of nativeBuildInputs . This would be called depsBuildHostPropagated but for historical continuity. For example, if package Y has propagatedNativeBuildInputs = [X] , and package Z has buildInputs = [Y] , then package Z will be built as if it included package X in its nativeBuildInputs . If instead, package Z has nativeBuildInputs = [Y] , then Z will be built as if it included X in the depsBuildBuild of package Z , because of the sum of the two -1 host offsets.
+
+
+
+
+
+ depsBuildTargetPropagated
+
+
+
+ The propagated equivalent of depsBuildTarget . This is prefixed for the same reason of alerting potential users.
+
+
+
+
+
+ depsHostHostPropagated
+
+
+
+ The propagated equivalent of depsHostHost .
+
+
+
+
+
+ propagatedBuildInputs
+
+
+
+ The propagated equivalent of buildInputs . This would be called depsHostTargetPropagated but for historical continuity.
+
+
+
+
+
+ depsTargetTargetPropagated
+
+
+
+ The propagated equivalent of depsTargetTarget . This is prefixed for the same reason of alerting potential users.
+
+
+
+
+
+
+ Attributes
+
+
+ Variables affecting stdenv initialisation
+
+
+ NIX_DEBUG
+
+
+
+ A natural number indicating how much information to log. If set to 1 or higher, stdenv will print moderate debugging information during the build. In particular, the gcc and ld wrapper scripts will print out the complete command line passed to the wrapped tools. If set to 6 or higher, the stdenv setup script will be run with set -x tracing. If set to 7 or higher, the gcc and ld wrapper scripts will also be run with set -x tracing.
+
+
+
+
+
+
+ Attributes affecting build properties
+
+
+ enableParallelBuilding
+
+
+
+ If set to true , stdenv will pass specific flags to make and other build tools to enable parallel building with up to build-cores workers.
+
+
+ Unless set to false , some build systems with good support for parallel building including cmake , meson , and qmake will set it to true .
+
+
+
+
+
+
+ Special variables
+
+
+ passthru
+
+
+
+ This is an attribute set which can be filled with arbitrary values. For example:
+
+passthru = {
+ foo = "bar";
+ baz = {
+ value1 = 4;
+ value2 = 5;
+ };
+}
+
+
+
+ Values inside it are not passed to the builder, so you can change them without triggering a rebuild. However, they can be accessed outside of a derivation directly, as if they were set inside a derivation itself, e.g. hello.baz.value1 . We don't specify any usage or schema of passthru - it is meant for values that would be useful outside the derivation in other parts of a Nix expression (e.g. in other derivations). An example would be to convey some specific dependency of your derivation which contains a program with plugins support. Later, others who make derivations with plugins can use passed-through dependency to ensure that their plugin would be binary-compatible with built program.
+
+
+
+
+
+ passthru.updateScript
+
+
+
+ A script to be run by maintainers/scripts/update.nix when the package is matched. It needs to be an executable file, either on the file system:
+
+passthru.updateScript = ./update.sh;
+
+ or inside the expression itself:
+
+passthru.updateScript = writeScript "update-zoom-us" ''
+ #!/usr/bin/env nix-shell
+ #!nix-shell -i bash -p curl pcre common-updater-scripts
+
+ set -eu -o pipefail
+
+ version="$(curl -sI https://zoom.us/client/latest/zoom_x86_64.tar.xz | grep -Fi 'Location:' | pcregrep -o1 '/(([0-9]\.?)+)/')"
+ update-source-version zoom-us "$version"
+'';
+
+ The attribute can also contain a list, a script followed by arguments to be passed to it:
+
+passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ];
+
+
+
+ The script will be usually run from the root of the Nixpkgs repository but you should not rely on that. Also note that the update scripts will be run in parallel by default; you should avoid running git commit or any other commands that cannot handle that.
+
+
+ For information about how to run the updates, execute nix-shell maintainers/scripts/update.nix .
+
+
+
+
+
+
+ Phases
+
+
+ The generic builder has a number of phases . Package builds are split into phases to make it easier to override specific parts of the build (e.g., unpacking the sources or installing the binaries). Furthermore, it allows a nicer presentation of build logs in the Nix build farm.
+
+
+
+ Each phase can be overridden in its entirety either by setting the environment variable name Phase to a string containing some shell commands to be executed, or by redefining the shell function name Phase . The former is convenient to override a phase from the derivation, while the latter is convenient from a build script. However, typically one only wants to add some commands to a phase, e.g. by defining postInstall or preFixup , as skipping some of the default actions may have unexpected consequences. The default script for each phase is defined in the file pkgs/stdenv/generic/setup.sh .
+
+
+
+ Controlling phases
+
+
+ There are a number of variables that control what phases are executed and in what order:
+
+ Variables affecting phase control
+
+
+ phases
+
+
+
+ Specifies the phases. You can change the order in which phases are executed, or add new phases, by setting this variable. If it’s not set, the default value is used, which is $prePhases unpackPhase patchPhase $preConfigurePhases configurePhase $preBuildPhases buildPhase checkPhase $preInstallPhases installPhase fixupPhase installCheckPhase $preDistPhases distPhase $postPhases .
+
+
+ Usually, if you just want to add a few phases, it’s more convenient to set one of the variables below (such as preInstallPhases ), as you then don’t specify all the normal phases.
+
+
+
+
+
+ prePhases
+
+
+
+ Additional phases executed before any of the default phases.
+
+
+
+
+
+ preConfigurePhases
+
+
+
+ Additional phases executed just before the configure phase.
+
+
+
+
+
+ preBuildPhases
+
+
+
+ Additional phases executed just before the build phase.
+
+
+
+
+
+ preInstallPhases
+
+
+
+ Additional phases executed just before the install phase.
+
+
+
+
+
+ preFixupPhases
+
+
+
+ Additional phases executed just before the fixup phase.
+
+
+
+
+
+ preDistPhases
+
+
+
+ Additional phases executed just before the distribution phase.
+
+
+
+
+
+ postPhases
+
+
+
+ Additional phases executed after any of the default phases.
+
+
+
+
+
+
+
+
+ The unpack phase
+
+
+ The unpack phase is responsible for unpacking the source code of the package. The default implementation of unpackPhase unpacks the source files listed in the src environment variable to the current directory. It supports the following files by default:
+
+
+
+ Tar files
+
+
+
+ These can optionally be compressed using gzip (.tar.gz , .tgz or .tar.Z ), bzip2 (.tar.bz2 , .tbz2 or .tbz ) or xz (.tar.xz , .tar.lzma or .txz ).
+
+
+
+
+
+ Zip files
+
+
+
+ Zip files are unpacked using unzip . However, unzip is not in the standard environment, so you should add it to nativeBuildInputs yourself.
+
+
+
+
+
+ Directories in the Nix store
+
+
+
+ These are simply copied to the current directory. The hash part of the file name is stripped, e.g. /nix/store/1wydxgby13cz...-my-sources would be copied to my-sources .
+
+
+
+
+ Additional file types can be supported by setting the unpackCmd variable (see below).
+
+
+
+
+
+ Variables controlling the unpack phase
+
+
+ srcs / src
+
+
+
+ The list of source files or directories to be unpacked or copied. One of these must be set.
+
+
+
+
+
+ sourceRoot
+
+
+
+ After running unpackPhase , the generic builder changes the current directory to the directory created by unpacking the sources. If there are multiple source directories, you should set sourceRoot to the name of the intended directory.
+
+
+
+
+
+ setSourceRoot
+
+
+
+ Alternatively to setting sourceRoot , you can set setSourceRoot to a shell command to be evaluated by the unpack phase after the sources have been unpacked. This command must set sourceRoot .
+
+
+
+
+
+ preUnpack
+
+
+
+ Hook executed at the start of the unpack phase.
+
+
+
+
+
+ postUnpack
+
+
+
+ Hook executed at the end of the unpack phase.
+
+
+
+
+
+ dontUnpack
+
+
+
+ Set to true to skip the unpack phase.
+
+
+
+
+
+ dontMakeSourcesWritable
+
+
+
+ If set to 1 , the unpacked sources are not made writable. By default, they are made writable to prevent problems with read-only sources. For example, copied store directories would be read-only without this.
+
+
+
+
+
+ unpackCmd
+
+
+
+ The unpack phase evaluates the string $unpackCmd for any unrecognised file. The path to the current source file is contained in the curSrc variable.
+
+
+
+
+
+
+
+ The patch phase
+
+
+ The patch phase applies the list of patches defined in the patches variable.
+
+
+
+ Variables controlling the patch phase
+
+
+ patches
+
+
+
+ The list of patches. They must be in the format accepted by the patch command, and may optionally be compressed using gzip (.gz ), bzip2 (.bz2 ) or xz (.xz ).
+
+
+
+
+
+ patchFlags
+
+
+
+ Flags to be passed to patch . If not set, the argument -p1 is used, which causes the leading directory component to be stripped from the file names in each patch.
+
+
+
+
+
+ prePatch
+
+
+
+ Hook executed at the start of the patch phase.
+
+
+
+
+
+ postPatch
+
+
+
+ Hook executed at the end of the patch phase.
+
+
+
+
+
+
+
+ The configure phase
+
+
+ The configure phase prepares the source tree for building. The default configurePhase runs ./configure (typically an Autoconf-generated script) if it exists.
+
+
+
+ Variables controlling the configure phase
+
+
+ configureScript
+
+
+
+ The name of the configure script. It defaults to ./configure if it exists; otherwise, the configure phase is skipped. This can actually be a command (like perl ./Configure.pl ).
+
+
+
+
+
+ configureFlags
+
+
+
+ A list of strings passed as additional arguments to the configure script.
+
+
+
+
+
+ dontConfigure
+
+
+
+ Set to true to skip the configure phase.
+
+
+
+
+
+ configureFlagsArray
+
+
+
+ A shell array containing additional arguments passed to the configure script. You must use this instead of configureFlags if the arguments contain spaces.
+
+
+
+
+
+ dontAddPrefix
+
+
+
+ By default, the flag --prefix=$prefix is added to the configure flags. If this is undesirable, set this variable to true.
+
+
+
+
+
+ prefix
+
+
+
+ The prefix under which the package must be installed, passed via the --prefix option to the configure script. It defaults to $out .
+
+
+
+
+
+ prefixKey
+
+
+
+ The key to use when specifying the prefix. By default, this is set to --prefix= as that is used by the majority of packages.
+
+
+
+
+
+ dontAddDisableDepTrack
+
+
+
+ By default, the flag --disable-dependency-tracking is added to the configure flags to speed up Automake-based builds. If this is undesirable, set this variable to true.
+
+
+
+
+
+ dontFixLibtool
+
+
+
+ By default, the configure phase applies some special hackery to all files called ltmain.sh before running the configure script in order to improve the purity of Libtool-based packages
+
+
+ It clears the sys_lib_* search_path variables in the Libtool script to prevent Libtool from using libraries in /usr/lib and such.
+
+
+ . If this is undesirable, set this variable to true.
+
+
+
+
+
+ dontDisableStatic
+
+
+
+ By default, when the configure script has --enable-static , the option --disable-static is added to the configure flags.
+
+
+ If this is undesirable, set this variable to true.
+
+
+
+
+
+ configurePlatforms
+
+
+
+ By default, when cross compiling, the configure script has --build=... and --host=... passed. Packages can instead pass [ "build" "host" "target" ] or a subset to control exactly which platform flags are passed. Compilers and other tools can use this to also pass the target platform.
+
+
+ Eventually these will be passed building natively as well, to improve determinism: build-time guessing, as is done today, is a risk of impurity.
+
+
+
+
+
+
+
+ preConfigure
+
+
+
+ Hook executed at the start of the configure phase.
+
+
+
+
+
+ postConfigure
+
+
+
+ Hook executed at the end of the configure phase.
+
+
+
+
+
+
+
+ The build phase
+
+
+ The build phase is responsible for actually building the package (e.g. compiling it). The default buildPhase simply calls make if a file named Makefile , makefile or GNUmakefile exists in the current directory (or the makefile is explicitly set); otherwise it does nothing.
+
+
+
+ Variables controlling the build phase
+
+
+ dontBuild
+
+
+
+ Set to true to skip the build phase.
+
+
+
+
+
+ makefile
+
+
+
+ The file name of the Makefile.
+
+
+
+
+
+ makeFlags
+
+
+
+ A list of strings passed as additional flags to make . These flags are also used by the default install and check phase. For setting make flags specific to the build phase, use buildFlags (see below).
+
+makeFlags = [ "PREFIX=$(out)" ];
+
+
+
+ The flags are quoted in bash, but environment variables can be specified by using the make syntax.
+
+
+
+
+
+
+
+ makeFlagsArray
+
+
+
+ A shell array containing additional arguments passed to make . You must use this instead of makeFlags if the arguments contain spaces, e.g.
+
+preBuild = ''
+ makeFlagsArray+=(CFLAGS="-O0 -g" LDFLAGS="-lfoo -lbar")
+'';
+
+ Note that shell arrays cannot be passed through environment variables, so you cannot set makeFlagsArray in a derivation attribute (because those are passed through environment variables): you have to define them in shell code.
+
+
+
+
+
+ buildFlags / buildFlagsArray
+
+
+
+ A list of strings passed as additional flags to make . Like makeFlags and makeFlagsArray , but only used by the build phase.
+
+
+
+
+
+ preBuild
+
+
+
+ Hook executed at the start of the build phase.
+
+
+
+
+
+ postBuild
+
+
+
+ Hook executed at the end of the build phase.
+
+
+
+
+
+
+ You can set flags for make through the makeFlags variable.
+
+
+
+ Before and after running make , the hooks preBuild and postBuild are called, respectively.
+
+
+
+
+ The check phase
+
+
+ The check phase checks whether the package was built correctly by running its test suite. The default checkPhase calls make check , but only if the doCheck variable is enabled.
+
+
+
+ Variables controlling the check phase
+
+
+ doCheck
+
+
+
+ Controls whether the check phase is executed. By default it is skipped, but if doCheck is set to true, the check phase is usually executed. Thus you should set
+doCheck = true;
+ in the derivation to enable checks. The exception is cross compilation. Cross compiled builds never run tests, no matter how doCheck is set, as the newly-built program won't run on the platform used to build it.
+
+
+
+
+
+ makeFlags / makeFlagsArray / makefile
+
+
+
+ See the build phase for details.
+
+
+
+
+
+ checkTarget
+
+
+
+ The make target that runs the tests. Defaults to check .
+
+
+
+
+
+ checkFlags / checkFlagsArray
+
+
+
+ A list of strings passed as additional flags to make . Like makeFlags and makeFlagsArray , but only used by the check phase.
+
+
+
+
+
+ checkInputs
+
+
+
+ A list of dependencies used by the phase. This gets included in nativeBuildInputs when doCheck is set.
+
+
+
+
+
+ preCheck
+
+
+
+ Hook executed at the start of the check phase.
+
+
+
+
+
+ postCheck
+
+
+
+ Hook executed at the end of the check phase.
+
+
+
+
+
+
+
+ The install phase
+
+
+ The install phase is responsible for installing the package in the Nix store under out . The default installPhase creates the directory $out and calls make install .
+
+
+
+ Variables controlling the install phase
+
+
+ makeFlags / makeFlagsArray / makefile
+
+
+
+ See the build phase for details.
+
+
+
+
+
+ installTargets
+
+
+
+ The make targets that perform the installation. Defaults to install . Example:
+
+installTargets = "install-bin install-doc";
+
+
+
+
+
+ installFlags / installFlagsArray
+
+
+
+ A list of strings passed as additional flags to make . Like makeFlags and makeFlagsArray , but only used by the install phase.
+
+
+
+
+
+ preInstall
+
+
+
+ Hook executed at the start of the install phase.
+
+
+
+
+
+ postInstall
+
+
+
+ Hook executed at the end of the install phase.
+
+
+
+
+
+
+
+ The fixup phase
+
+
+ The fixup phase performs some (Nix-specific) post-processing actions on the files installed under $out by the install phase. The default fixupPhase does the following:
+
+
+
+ It moves the man/ , doc/ and info/ subdirectories of $out to share/ .
+
+
+
+
+ It strips libraries and executables of debug information.
+
+
+
+
+ On Linux, it applies the patchelf command to ELF executables and libraries to remove unused directories from the RPATH in order to prevent unnecessary runtime dependencies.
+
+
+
+
+ It rewrites the interpreter paths of shell scripts to paths found in PATH . E.g., /usr/bin/perl will be rewritten to /nix/store/some-perl /bin/perl found in PATH .
+
+
+
+
+
+
+ Variables controlling the fixup phase
+
+
+ dontFixup
+
+
+
+ Set to true to skip the fixup phase.
+
+
+
+
+
+ dontStrip
+
+
+
+ If set, libraries and executables are not stripped. By default, they are.
+
+
+
+
+
+ dontStripHost
+
+
+
+ Like dontStrip , but only affects the strip command targetting the package's host platform. Useful when supporting cross compilation, but otherwise feel free to ignore.
+
+
+
+
+
+ dontStripTarget
+
+
+
+ Like dontStrip , but only affects the strip command targetting the packages' target platform. Useful when supporting cross compilation, but otherwise feel free to ignore.
+
+
+
+
+
+ dontMoveSbin
+
+
+
+ If set, files in $out/sbin are not moved to $out/bin . By default, they are.
+
+
+
+
+
+ stripAllList
+
+
+
+ List of directories to search for libraries and executables from which all symbols should be stripped. By default, it’s empty. Stripping all symbols is risky, since it may remove not just debug symbols but also ELF information necessary for normal execution.
+
+
+
+
+
+ stripAllFlags
+
+
+
+ Flags passed to the strip command applied to the files in the directories listed in stripAllList . Defaults to -s (i.e. --strip-all ).
+
+
+
+
+
+ stripDebugList
+
+
+
+ List of directories to search for libraries and executables from which only debugging-related symbols should be stripped. It defaults to lib bin sbin .
+
+
+
+
+
+ stripDebugFlags
+
+
+
+ Flags passed to the strip command applied to the files in the directories listed in stripDebugList . Defaults to -S (i.e. --strip-debug ).
+
+
+
+
+
+ dontPatchELF
+
+
+
+ If set, the patchelf command is not used to remove unnecessary RPATH entries. Only applies to Linux.
+
+
+
+
+
+ dontPatchShebangs
+
+
+
+ If set, scripts starting with #! do not have their interpreter paths rewritten to paths in the Nix store.
+
+
+
+
+
+ dontPruneLibtoolFiles
+
+
+
+ If set, libtool .la files associated with shared libraries won't have their dependency_libs field cleared.
+
+
+
+
+
+ forceShare
+
+
+
+ The list of directories that must be moved from $out to $out/share . Defaults to man doc info .
+
+
+
+
+
+ setupHook
+
+
+
+ A package can export a setup hook by setting this variable. The setup hook, if defined, is copied to $out/nix-support/setup-hook . Environment variables are then substituted in it using substituteAll .
+
+
+
+
+
+ preFixup
+
+
+
+ Hook executed at the start of the fixup phase.
+
+
+
+
+
+ postFixup
+
+
+
+ Hook executed at the end of the fixup phase.
+
+
+
+
+
+ separateDebugInfo
+
+
+
+ If set to true , the standard environment will enable debug information in C/C++ builds. After installation, the debug information will be separated from the executables and stored in the output named debug . (This output is enabled automatically; you don’t need to set the outputs attribute explicitly.) To be precise, the debug information is stored in debug /lib/debug/.build-id/XX /YYYY… , where XXYYYY… is the build ID of the binary — a SHA-1 hash of the contents of the binary. Debuggers like GDB use the build ID to look up the separated debug information.
+
+
+ For example, with GDB, you can add
+
+set debug-file-directory ~/.nix-profile/lib/debug
+
+ to ~/.gdbinit . GDB will then be able to find debug information installed via nix-env -i .
+
+
+
+
+
+
+
+ The installCheck phase
+
+
+ The installCheck phase checks whether the package was installed correctly by running its test suite against the installed directories. The default installCheck calls make installcheck .
+
+
+
+ Variables controlling the installCheck phase
+
+
+ doInstallCheck
+
+
+
+ Controls whether the installCheck phase is executed. By default it is skipped, but if doInstallCheck is set to true, the installCheck phase is usually executed. Thus you should set
+doInstallCheck = true;
+ in the derivation to enable install checks. The exception is cross compilation. Cross compiled builds never run tests, no matter how doInstallCheck is set, as the newly-built program won't run on the platform used to build it.
+
+
+
+
+
+ installCheckTarget
+
+
+
+ The make target that runs the install tests. Defaults to installcheck .
+
+
+
+
+
+ installCheckFlags / installCheckFlagsArray
+
+
+
+ A list of strings passed as additional flags to make . Like makeFlags and makeFlagsArray , but only used by the installCheck phase.
+
+
+
+
+
+ installCheckInputs
+
+
+
+ A list of dependencies used by the phase. This gets included in nativeBuildInputs when doInstallCheck is set.
+
+
+
+
+
+ preInstallCheck
+
+
+
+ Hook executed at the start of the installCheck phase.
+
+
+
+
+
+ postInstallCheck
+
+
+
+ Hook executed at the end of the installCheck phase.
+
+
+
+
+
+
+
+ The distribution phase
+
+
+ The distribution phase is intended to produce a source distribution of the package. The default distPhase first calls make dist , then it copies the resulting source tarballs to $out/tarballs/ . This phase is only executed if the attribute doDist is set.
+
+
+
+ Variables controlling the distribution phase
+
+
+ distTarget
+
+
+
+ The make target that produces the distribution. Defaults to dist .
+
+
+
+
+
+ distFlags / distFlagsArray
+
+
+
+ Additional flags passed to make .
+
+
+
+
+
+ tarballs
+
+
+
+ The names of the source distribution files to be copied to $out/tarballs/ . It can contain shell wildcards. The default is *.tar.gz .
+
+
+
+
+
+ dontCopyDist
+
+
+
+ If set, no files are copied to $out/tarballs/ .
+
+
+
+
+
+ preDist
+
+
+
+ Hook executed at the start of the distribution phase.
+
+
+
+
+
+ postDist
+
+
+
+ Hook executed at the end of the distribution phase.
+
+
+
+
+
+
+
+ Shell functions
+
+
+ The standard environment provides a number of useful functions.
+
+
+
+
+
+ makeWrapper executable wrapperfile args
+
+
+
+ Constructs a wrapper for a program with various possible arguments. For example:
+
+# adds `FOOBAR=baz` to `$out/bin/foo`’s environment
+makeWrapper $out/bin/foo $wrapperfile --set FOOBAR baz
+
+# prefixes the binary paths of `hello` and `git`
+# Be advised that paths often should be patched in directly
+# (via string replacements or in `configurePhase`).
+makeWrapper $out/bin/foo $wrapperfile --prefix PATH : ${lib.makeBinPath [ hello git ]}
+
+ There’s many more kinds of arguments, they are documented in nixpkgs/pkgs/build-support/setup-hooks/make-wrapper.sh .
+
+
+ wrapProgram is a convenience function you probably want to use most of the time.
+
+
+
+
+
+ substitute infile outfile subs
+
+
+
+ Performs string substitution on the contents of infile , writing the result to outfile . The substitutions in subs are of the following form:
+
+
+
+ --replace s1 s2
+
+
+
+ Replace every occurrence of the string s1 by s2 .
+
+
+
+
+
+ --subst-var varName
+
+
+
+ Replace every occurrence of @varName @ by the contents of the environment variable varName . This is useful for generating files from templates, using @... @ in the template as placeholders.
+
+
+
+
+
+ --subst-var-by varName s
+
+
+
+ Replace every occurrence of @varName @ by the string s .
+
+
+
+
+
+
+ Example:
+
+substitute ./foo.in ./foo.out \
+ --replace /usr/bin/bar $bar/bin/bar \
+ --replace "a string containing spaces" "some other text" \
+ --subst-var someVar
+
+
+
+ substitute is implemented using the replace command. Unlike with the sed command, you don’t have to worry about escaping special characters. It supports performing substitutions on binary files (such as executables), though there you’ll probably want to make sure that the replacement string is as long as the replaced string.
+
+
+
+
+
+ substituteInPlace file subs
+
+
+
+ Like substitute , but performs the substitutions in place on the file file .
+
+
+
+
+
+ substituteAll infile outfile
+
+
+
+ Replaces every occurrence of @varName @ , where varName is any environment variable, in infile , writing the result to outfile . For instance, if infile has the contents
+
+#! @bash@/bin/sh
+PATH=@coreutils@/bin
+echo @foo@
+
+ and the environment contains bash=/nix/store/bmwp0q28cf21...-bash-3.2-p39 and coreutils=/nix/store/68afga4khv0w...-coreutils-6.12 , but does not contain the variable foo , then the output will be
+
+#! /nix/store/bmwp0q28cf21...-bash-3.2-p39/bin/sh
+PATH=/nix/store/68afga4khv0w...-coreutils-6.12/bin
+echo @foo@
+
+ That is, no substitution is performed for undefined variables.
+
+
+ Environment variables that start with an uppercase letter or an underscore are filtered out, to prevent global variables (like HOME ) or private variables (like __ETC_PROFILE_DONE ) from accidentally getting substituted. The variables also have to be valid bash “names”, as defined in the bash manpage (alphanumeric or _ , must not start with a number).
+
+
+
+
+
+ substituteAllInPlace file
+
+
+
+ Like substituteAll , but performs the substitutions in place on the file file .
+
+
+
+
+
+ stripHash path
+
+
+
+ Strips the directory and hash part of a store path, outputting the name part to stdout . For example:
+
+# prints coreutils-8.24
+stripHash "/nix/store/9s9r019176g7cvn2nvcw41gsp862y6b4-coreutils-8.24"
+
+ If you wish to store the result in another variable, then the following idiom may be useful:
+
+name="/nix/store/9s9r019176g7cvn2nvcw41gsp862y6b4-coreutils-8.24"
+someVar=$(stripHash $name)
+
+
+
+
+
+
+ wrapProgram executable makeWrapperArgs
+
+
+
+ Convenience function for makeWrapper that automatically creates a sane wrapper file. It takes all the same arguments as makeWrapper , except for --argv0 .
+
+
+ It cannot be applied multiple times, since it will overwrite the wrapper file.
+
+
+
+
+
+
+ Package setup hooks
+
+
+ Nix itself considers a build-time dependency as merely something that should previously be built and accessible at build time—packages themselves are on their own to perform any additional setup. In most cases, that is fine, and the downstream derivation can deal with its own dependencies. But for a few common tasks, that would result in almost every package doing the same sort of setup work—depending not on the package itself, but entirely on which dependencies were used.
+
+
+
+ In order to alleviate this burden, the setup hook mechanism was written, where any package can include a shell script that [by convention rather than enforcement by Nix], any downstream reverse-dependency will source as part of its build process. That allows the downstream dependency to merely specify its dependencies, and lets those dependencies effectively initialize themselves. No boilerplate mirroring the list of dependencies is needed.
+
+
+
+ The setup hook mechanism is a bit of a sledgehammer though: a powerful feature with a broad and indiscriminate area of effect. The combination of its power and implicit use may be expedient, but isn't without costs. Nix itself is unchanged, but the spirit of added dependencies being effect-free is violated even if the letter isn't. For example, if a derivation path is mentioned more than once, Nix itself doesn't care and simply makes sure the dependency derivation is already built just the same—depending is just needing something to exist, and needing is idempotent. However, a dependency specified twice will have its setup hook run twice, and that could easily change the build environment (though a well-written setup hook will therefore strive to be idempotent so this is in fact not observable). More broadly, setup hooks are anti-modular in that multiple dependencies, whether the same or different, should not interfere and yet their setup hooks may well do so.
+
+
+
+ The most typical use of the setup hook is actually to add other hooks which are then run (i.e. after all the setup hooks) on each dependency. For example, the C compiler wrapper's setup hook feeds itself flags for each dependency that contains relevant libraries and headers. This is done by defining a bash function, and appending its name to one of envBuildBuildHooks `, envBuildHostHooks `, envBuildTargetHooks `, envHostHostHooks `, envHostTargetHooks `, or envTargetTargetHooks `. These 6 bash variables correspond to the 6 sorts of dependencies by platform (there's 12 total but we ignore the propagated/non-propagated axis).
+
+
+
+ Packages adding a hook should not hard code a specific hook, but rather choose a variable relative to how they are included. Returning to the C compiler wrapper example, if the wrapper itself is an n dependency, then it only wants to accumulate flags from n + 1 dependencies, as only those ones match the compiler's target platform. The hostOffset variable is defined with the current dependency's host offset targetOffset with its target offset, before its setup hook is sourced. Additionally, since most environment hooks don't care about the target platform, that means the setup hook can append to the right bash array by doing something like
+
+addEnvHooks "$hostOffset" myBashFunction
+
+
+
+
+ The existence of setups hooks has long been documented and packages inside Nixpkgs are free to use this mechanism. Other packages, however, should not rely on these mechanisms not changing between Nixpkgs versions. Because of the existing issues with this system, there's little benefit from mandating it be stable for any period of time.
+
+
+
+ First, let’s cover some setup hooks that are part of Nixpkgs default stdenv. This means that they are run for every package built using stdenv.mkDerivation . Some of these are platform specific, so they may run on Linux but not Darwin or vice-versa.
+
+
+
+ move-docs.sh
+
+
+
+ This setup hook moves any installed documentation to the /share subdirectory directory. This includes the man, doc and info directories. This is needed for legacy programs that do not know how to use the share subdirectory.
+
+
+
+
+
+ compress-man-pages.sh
+
+
+
+ This setup hook compresses any man pages that have been installed. The compression is done using the gzip program. This helps to reduce the installed size of packages.
+
+
+
+
+
+ strip.sh
+
+
+
+ This runs the strip command on installed binaries and libraries. This removes unnecessary information like debug symbols when they are not needed. This also helps to reduce the installed size of packages.
+
+
+
+
+
+ patch-shebangs.sh
+
+
+
+ This setup hook patches installed scripts to use the full path to the shebang interpreter. A shebang interpreter is the first commented line of a script telling the operating system which program will run the script (e.g #!/bin/bash ). In Nix, we want an exact path to that interpreter to be used. This often replaces /bin/sh with a path in the Nix store.
+
+
+
+
+
+ audit-tmpdir.sh
+
+
+
+ This verifies that no references are left from the install binaries to the directory used to build those binaries. This ensures that the binaries do not need things outside the Nix store. This is currently supported in Linux only.
+
+
+
+
+
+ multiple-outputs.sh
+
+
+
+ This setup hook adds configure flags that tell packages to install files into any one of the proper outputs listed in outputs . This behavior can be turned off by setting setOutputFlags to false in the derivation environment. See for more information.
+
+
+
+
+
+ move-sbin.sh
+
+
+
+ This setup hook moves any binaries installed in the sbin subdirectory into bin. In addition, a link is provided from sbin to bin for compatibility.
+
+
+
+
+
+ move-lib64.sh
+
+
+
+ This setup hook moves any libraries installed in the lib64 subdirectory into lib. In addition, a link is provided from lib64 to lib for compatibility.
+
+
+
+
+
+ set-source-date-epoch-to-latest.sh
+
+
+
+ This sets SOURCE_DATE_EPOCH to the modification time of the most recent file.
+
+
+
+
+
+ Bintools Wrapper
+
+
+
+ The Bintools Wrapper wraps the binary utilities for a bunch of miscellaneous purposes. These are GNU Binutils when targetting Linux, and a mix of cctools and GNU binutils for Darwin. [The "Bintools" name is supposed to be a compromise between "Binutils" and "cctools" not denoting any specific implementation.] Specifically, the underlying bintools package, and a C standard library (glibc or Darwin's libSystem, just for the dynamic loader) are all fed in, and dependency finding, hardening (see below), and purity checks for each are handled by the Bintools Wrapper. Packages typically depend on CC Wrapper, which in turn (at run time) depends on the Bintools Wrapper.
+
+
+ The Bintools Wrapper was only just recently split off from CC Wrapper, so the division of labor is still being worked out. For example, it shouldn't care about the C standard library, but just take a derivation with the dynamic loader (which happens to be the glibc on linux). Dependency finding however is a task both wrappers will continue to need to share, and probably the most important to understand. It is currently accomplished by collecting directories of host-platform dependencies (i.e. buildInputs and nativeBuildInputs ) in environment variables. The Bintools Wrapper's setup hook causes any lib and lib64 subdirectories to be added to NIX_LDFLAGS . Since the CC Wrapper and the Bintools Wrapper use the same strategy, most of the Bintools Wrapper code is sparsely commented and refers to the CC Wrapper. But the CC Wrapper's code, by contrast, has quite lengthy comments. The Bintools Wrapper merely cites those, rather than repeating them, to avoid falling out of sync.
+
+
+ A final task of the setup hook is defining a number of standard environment variables to tell build systems which executables fulfill which purpose. They are defined to just be the base name of the tools, under the assumption that the Bintools Wrapper's binaries will be on the path. Firstly, this helps poorly-written packages, e.g. ones that look for just gcc when CC isn't defined yet clang is to be used. Secondly, this helps packages not get confused when cross-compiling, in which case multiple Bintools Wrappers may simultaneously be in use.
+
+
+ Each wrapper targets a single platform, so if binaries for multiple platforms are needed, the underlying binaries must be wrapped multiple times. As this is a property of the wrapper itself, the multiple wrappings are needed whether or not the same underlying binaries can target multiple platforms.
+
+
+ BUILD_ - and TARGET_ -prefixed versions of the normal environment variable are defined for additional Bintools Wrappers, properly disambiguating them.
+
+
+ A problem with this final task is that the Bintools Wrapper is honest and defines LD as ld . Most packages, however, firstly use the C compiler for linking, secondly use LD anyways, defining it as the C compiler, and thirdly, only so define LD when it is undefined as a fallback. This triple-threat means Bintools Wrapper will break those packages, as LD is already defined as the actual linker which the package won't override yet doesn't want to use. The workaround is to define, just for the problematic package, LD as the C compiler. A good way to do this would be preConfigure = "LD=$CC" .
+
+
+
+
+
+ CC Wrapper
+
+
+
+ The CC Wrapper wraps a C toolchain for a bunch of miscellaneous purposes. Specifically, a C compiler (GCC or Clang), wrapped binary tools, and a C standard library (glibc or Darwin's libSystem, just for the dynamic loader) are all fed in, and dependency finding, hardening (see below), and purity checks for each are handled by the CC Wrapper. Packages typically depend on the CC Wrapper, which in turn (at run-time) depends on the Bintools Wrapper.
+
+
+ Dependency finding is undoubtedly the main task of the CC Wrapper. This works just like the Bintools Wrapper, except that any include subdirectory of any relevant dependency is added to NIX_CFLAGS_COMPILE . The setup hook itself contains some lengthy comments describing the exact convoluted mechanism by which this is accomplished.
+
+
+ Similarly, the CC Wrapper follows the Bintools Wrapper in defining standard environment variables with the names of the tools it wraps, for the same reasons described above. Importantly, while it includes a cc symlink to the c compiler for portability, the CC will be defined using the compiler's "real name" (i.e. gcc or clang ). This helps lousy build systems that inspect on the name of the compiler rather than run it.
+
+
+
+
+
+
+
+ Here are some more packages that provide a setup hook. Since the list of hooks is extensible, this is not an exhaustive list. The mechanism is only to be used as a last resort, so it might cover most uses.
+
+
+
+ Perl
+
+
+
+ Adds the lib/site_perl subdirectory of each build input to the PERL5LIB environment variable. For instance, if buildInputs contains Perl, then the lib/site_perl subdirectory of each input is added to the PERL5LIB environment variable.
+
+
+
+
+
+ Python
+
+
+
+ Adds the lib/${python.libPrefix}/site-packages subdirectory of each build input to the PYTHONPATH environment variable.
+
+
+
+
+
+ pkg-config
+
+
+
+ Adds the lib/pkgconfig and share/pkgconfig subdirectories of each build input to the PKG_CONFIG_PATH environment variable.
+
+
+
+
+
+ Automake
+
+
+
+ Adds the share/aclocal subdirectory of each build input to the ACLOCAL_PATH environment variable.
+
+
+
+
+
+ Autoconf
+
+
+
+ The autoreconfHook derivation adds autoreconfPhase , which runs autoreconf, libtoolize and automake, essentially preparing the configure script in autotools-based builds. Most autotools-based packages come with the configure script pre-generated, but this hook is necessary for a few packages and when you need to patch the package’s configure scripts.
+
+
+
+
+
+ libxml2
+
+
+
+ Adds every file named catalog.xml found under the xml/dtd and xml/xsl subdirectories of each build input to the XML_CATALOG_FILES environment variable.
+
+
+
+
+
+ teTeX / TeX Live
+
+
+
+ Adds the share/texmf-nix subdirectory of each build input to the TEXINPUTS environment variable.
+
+
+
+
+
+ Qt 4
+
+
+
+ Sets the QTDIR environment variable to Qt’s path.
+
+
+
+
+
+ gdk-pixbuf
+
+
+
+ Exports GDK_PIXBUF_MODULE_FILE environment variable to the builder. Add librsvg package to buildInputs to get svg support.
+
+
+
+
+
+ GHC
+
+
+
+ Creates a temporary package database and registers every Haskell build input in it (TODO: how?).
+
+
+
+
+
+ GNOME platform
+
+
+
+ Hooks related to GNOME platform and related libraries like GLib, GTK and GStreamer are described in .
+
+
+
+
+
+ autoPatchelfHook
+
+
+
+ This is a special setup hook which helps in packaging proprietary software in that it automatically tries to find missing shared library dependencies of ELF files based on the given buildInputs and nativeBuildInputs .
+
+
+ You can also specify a runtimeDependencies environment variable which lists dependencies that are unconditionally added to all executables.
+
+
+ This is useful for programs that use
+ dlopen
+ 3 to load libraries at runtime.
+
+
+ In certain situations you may want to run the main command (autoPatchelf ) of the setup hook on a file or a set of directories instead of unconditionally patching all outputs. This can be done by setting the dontAutoPatchelf environment variable to a non-empty value.
+
+
+ The autoPatchelf command also recognizes a --no-recurse command line flag, which prevents it from recursing into subdirectories.
+
+
+
+
+
+ breakpointHook
+
+
+
+ This hook will make a build pause instead of stopping when a failure happens. It prevents nix from cleaning up the build environment immediately and allows the user to attach to a build environment using the cntr command. Upon build error it will print instructions on how to use cntr , which can be used to enter the environment for debugging. Installing cntr and running the command will provide shell access to the build sandbox of failed build. At /var/lib/cntr the sandboxed filesystem is mounted. All commands and files of the system are still accessible within the shell. To execute commands from the sandbox use the cntr exec subcommand. cntr is only supported on Linux-based platforms. To use it first add cntr to your environment.systemPackages on NixOS or alternatively to the root user on non-NixOS systems. Then in the package that is supposed to be inspected, add breakpointHook to nativeBuildInputs .
+
+nativeBuildInputs = [ breakpointHook ];
+
+ When a build failure happens there will be an instruction printed that shows how to attach with cntr to the build sandbox.
+
+
+ Caution with remote builds
+
+ This won't work with remote builds as the build environment is on a different machine and can't be accessed by cntr . Remote builds can be turned off by setting --option builders '' for nix-build or --builders '' for nix build .
+
+
+
+
+
+
+ installShellFiles
+
+
+
+ This hook helps with installing manpages and shell completion files. It exposes 2 shell functions installManPage and installShellCompletion that can be used from your postInstall hook.
+
+
+ The installManPage function takes one or more paths to manpages to install. The manpages must have a section suffix, and may optionally be compressed (with .gz suffix). This function will place them into the correct directory.
+
+
+ The installShellCompletion function takes one or more paths to shell completion files. By default it will autodetect the shell type from the completion file extension, but you may also specify it by passing one of --bash , --fish , or --zsh . These flags apply to all paths listed after them (up until another shell flag is given). Each path may also have a custom installation name provided by providing a flag --name NAME before the path. If this flag is not provided, zsh completions will be renamed automatically such that foobar.zsh becomes _foobar .
+
+nativeBuildInputs = [ installShellFiles ];
+postInstall = ''
+ installManPage doc/foobar.1 doc/barfoo.3
+ # explicit behavior
+ installShellCompletion --bash --name foobar.bash share/completions.bash
+ installShellCompletion --fish --name foobar.fish share/completions.fish
+ installShellCompletion --zsh --name _foobar share/completions.zsh
+ # implicit behavior
+ installShellCompletion share/completions/foobar.{bash,fish,zsh}
+'';
+
+
+
+
+
+
+ libiconv, libintl
+
+
+
+ A few libraries automatically add to NIX_LDFLAGS their library, making their symbols automatically available to the linker. This includes libiconv and libintl (gettext). This is done to provide compatibility between GNU Linux, where libiconv and libintl are bundled in, and other systems where that might not be the case. Sometimes, this behavior is not desired. To disable this behavior, set dontAddExtraLibs .
+
+
+
+
+
+ cmake
+
+
+
+ Overrides the default configure phase to run the CMake command. By default, we use the Make generator of CMake. In addition, dependencies are added automatically to CMAKE_PREFIX_PATH so that packages are correctly detected by CMake. Some additional flags are passed in to give similar behavior to configure-based packages. You can disable this hook’s behavior by setting configurePhase to a custom value, or by setting dontUseCmakeConfigure. cmakeFlags controls flags passed only to CMake. By default, parallel building is enabled as CMake supports parallel building almost everywhere. When Ninja is also in use, CMake will detect that and use the ninja generator.
+
+
+
+
+
+ xcbuildHook
+
+
+
+ Overrides the build and install phases to run the “xcbuild” command. This hook is needed when a project only comes with build files for the XCode build system. You can disable this behavior by setting buildPhase and configurePhase to a custom value. xcbuildFlags controls flags passed only to xcbuild.
+
+
+
+
+
+ Meson
+
+
+
+ Overrides the configure phase to run meson to generate Ninja files. To run these files, you should accompany Meson with ninja. By default, enableParallelBuilding is enabled as Meson supports parallel building almost everywhere.
+
+
+ Variables controlling Meson
+
+
+ mesonFlags
+
+
+
+ Controls the flags passed to meson.
+
+
+
+
+
+ mesonBuildType
+
+
+
+ Which --buildtype to pass to Meson. We default to plain .
+
+
+
+
+
+ mesonAutoFeatures
+
+
+
+ What value to set -Dauto_features= to. We default to enabled .
+
+
+
+
+
+ mesonWrapMode
+
+
+
+ What value to set -Dwrap_mode= to. We default to nodownload as we disallow network access.
+
+
+
+
+
+ dontUseMesonConfigure
+
+
+
+ Disables using Meson's configurePhase .
+
+
+
+
+
+
+
+
+ ninja
+
+
+
+ Overrides the build, install, and check phase to run ninja instead of make. You can disable this behavior with the dontUseNinjaBuild, dontUseNinjaInstall, and dontUseNinjaCheck, respectively. Parallel building is enabled by default in Ninja.
+
+
+
+
+
+ unzip
+
+
+
+ This setup hook will allow you to unzip .zip files specified in $src. There are many similar packages like unrar, undmg, etc.
+
+
+
+
+
+ wafHook
+
+
+
+ Overrides the configure, build, and install phases. This will run the "waf" script used by many projects. If wafPath (default ./waf) doesn’t exist, it will copy the version of waf available in Nixpkgs. wafFlags can be used to pass flags to the waf script.
+
+
+
+
+
+ scons
+
+
+
+ Overrides the build, install, and check phases. This uses the scons build system as a replacement for make. scons does not provide a configure phase, so everything is managed at build and install time.
+
+
+
+
+
+
+
+ Purity in Nixpkgs
+
+
+ [measures taken to prevent dependencies on packages outside the store, and what you can do to prevent them]
+
+
+
+ GCC doesn't search in locations such as /usr/include . In fact, attempts to add such directories through the -I flag are filtered out. Likewise, the linker (from GNU binutils) doesn't search in standard locations such as /usr/lib . Programs built on Linux are linked against a GNU C Library that likewise doesn't search in the default system locations.
+
+
+
+ Hardening in Nixpkgs
+
+
+ There are flags available to harden packages at compile or link-time. These can be toggled using the stdenv.mkDerivation parameters hardeningDisable and hardeningEnable .
+
+
+
+ Both parameters take a list of flags as strings. The special "all" flag can be passed to hardeningDisable to turn off all hardening. These flags can also be used as environment variables for testing or development purposes.
+
+
+
+ The following flags are enabled by default and might require disabling with hardeningDisable if the program to package is incompatible.
+
+
+
+
+
+ format
+
+
+
+ Adds the -Wformat -Wformat-security -Werror=format-security compiler options. At present, this warns about calls to printf and scanf functions where the format string is not a string literal and there are no format arguments, as in printf(foo); . This may be a security hole if the format string came from untrusted input and contains %n .
+
+
+ This needs to be turned off or fixed for errors similar to:
+
+
+/tmp/nix-build-zynaddsubfx-2.5.2.drv-0/zynaddsubfx-2.5.2/src/UI/guimain.cpp:571:28: error: format not a string literal and no format arguments [-Werror=format-security]
+ printf(help_message);
+ ^
+cc1plus: some warnings being treated as errors
+
+
+
+
+
+ stackprotector
+
+
+
+ Adds the -fstack-protector-strong --param ssp-buffer-size=4 compiler options. This adds safety checks against stack overwrites rendering many potential code injection attacks into aborting situations. In the best case this turns code injection vulnerabilities into denial of service or into non-issues (depending on the application).
+
+
+ This needs to be turned off or fixed for errors similar to:
+
+
+bin/blib.a(bios_console.o): In function `bios_handle_cup':
+/tmp/nix-build-ipxe-20141124-5cbdc41.drv-0/ipxe-5cbdc41/src/arch/i386/firmware/pcbios/bios_console.c:86: undefined reference to `__stack_chk_fail'
+
+
+
+
+
+ fortify
+
+
+
+ Adds the -O2 -D_FORTIFY_SOURCE=2 compiler options. During code generation the compiler knows a great deal of information about buffer sizes (where possible), and attempts to replace insecure unlimited length buffer function calls with length-limited ones. This is especially useful for old, crufty code. Additionally, format strings in writable memory that contain '%n' are blocked. If an application depends on such a format string, it will need to be worked around.
+
+
+ Additionally, some warnings are enabled which might trigger build failures if compiler warnings are treated as errors in the package build. In this case, set NIX_CFLAGS_COMPILE to -Wno-error=warning-type .
+
+
+ This needs to be turned off or fixed for errors similar to:
+
+
+malloc.c:404:15: error: return type is an incomplete type
+malloc.c:410:19: error: storage size of 'ms' isn't known
+
+
+strdup.h:22:1: error: expected identifier or '(' before '__extension__'
+
+
+strsep.c:65:23: error: register name not specified for 'delim'
+
+
+installwatch.c:3751:5: error: conflicting types for '__open_2'
+
+
+fcntl2.h:50:4: error: call to '__open_missing_mode' declared with attribute error: open with O_CREAT or O_TMPFILE in second argument needs 3 arguments
+
+
+
+
+
+ pic
+
+
+
+ Adds the -fPIC compiler options. This options adds support for position independent code in shared libraries and thus making ASLR possible.
+
+
+ Most notably, the Linux kernel, kernel modules and other code not running in an operating system environment like boot loaders won't build with PIC enabled. The compiler will is most cases complain that PIC is not supported for a specific build.
+
+
+ This needs to be turned off or fixed for assembler errors similar to:
+
+
+ccbLfRgg.s: Assembler messages:
+ccbLfRgg.s:33: Error: missing or invalid displacement expression `private_key_len@GOTOFF'
+
+
+
+
+
+ strictoverflow
+
+
+
+ Signed integer overflow is undefined behaviour according to the C standard. If it happens, it is an error in the program as it should check for overflow before it can happen, not afterwards. GCC provides built-in functions to perform arithmetic with overflow checking, which are correct and faster than any custom implementation. As a workaround, the option -fno-strict-overflow makes gcc behave as if signed integer overflows were defined.
+
+
+ This flag should not trigger any build or runtime errors.
+
+
+
+
+
+ relro
+
+
+
+ Adds the -z relro linker option. During program load, several ELF memory sections need to be written to by the linker, but can be turned read-only before turning over control to the program. This prevents some GOT (and .dtors) overwrite attacks, but at least the part of the GOT used by the dynamic linker (.got.plt) is still vulnerable.
+
+
+ This flag can break dynamic shared object loading. For instance, the module systems of Xorg and OpenCV are incompatible with this flag. In almost all cases the bindnow flag must also be disabled and incompatible programs typically fail with similar errors at runtime.
+
+
+
+
+
+ bindnow
+
+
+
+ Adds the -z bindnow linker option. During program load, all dynamic symbols are resolved, allowing for the complete GOT to be marked read-only (due to relro ). This prevents GOT overwrite attacks. For very large applications, this can incur some performance loss during initial load while symbols are resolved, but this shouldn't be an issue for daemons.
+
+
+ This flag can break dynamic shared object loading. For instance, the module systems of Xorg and PHP are incompatible with this flag. Programs incompatible with this flag often fail at runtime due to missing symbols, like:
+
+
+intel_drv.so: undefined symbol: vgaHWFreeHWRec
+
+
+
+
+
+
+ The following flags are disabled by default and should be enabled with hardeningEnable for packages that take untrusted input like network services.
+
+
+
+
+
+ pie
+
+
+
+ Adds the -fPIE compiler and -pie linker options. Position Independent Executables are needed to take advantage of Address Space Layout Randomization, supported by modern kernel versions. While ASLR can already be enforced for data areas in the stack and heap (brk and mmap), the code areas must be compiled as position-independent. Shared libraries already do this with the pic flag, so they gain ASLR automatically, but binary .text regions need to be build with pie to gain ASLR. When this happens, ROP attacks are much harder since there are no static locations to bounce off of during a memory corruption attack.
+
+
+
+
+
+
+ For more in-depth information on these hardening flags and hardening in general, refer to the Debian Wiki, Ubuntu Wiki, Gentoo Wiki, and the Arch Wiki.
+
+
+
diff --git a/doc/configuration.xml b/doc/using/configuration.xml
similarity index 60%
rename from doc/configuration.xml
rename to doc/using/configuration.xml
index 6720f54374a..f4d6e911006 100644
--- a/doc/configuration.xml
+++ b/doc/using/configuration.xml
@@ -3,49 +3,38 @@
xml:id="chap-packageconfig">
Global configuration
- Nix comes with certain defaults about what packages can and cannot be
- installed, based on a package's metadata. By default, Nix will prevent
- installation if any of the following criteria are true:
+ Nix comes with certain defaults about what packages can and cannot be installed, based on a package's metadata. By default, Nix will prevent installation if any of the following criteria are true:
- The package is thought to be broken, and has had its
- meta.broken set to true .
+ The package is thought to be broken, and has had its meta.broken set to true .
- The package isn't intended to run on the given system, as none of its
- meta.platforms match the given system.
+ The package isn't intended to run on the given system, as none of its meta.platforms match the given system.
- The package's meta.license is set to a license which is
- considered to be unfree.
+ The package's meta.license is set to a license which is considered to be unfree.
- The package has known security vulnerabilities but has not or can not be
- updated for some reason, and a list of issues has been entered in to the
- package's meta.knownVulnerabilities .
+ The package has known security vulnerabilities but has not or can not be updated for some reason, and a list of issues has been entered in to the package's meta.knownVulnerabilities .
- Note that all this is checked during evaluation already, and the check
- includes any package that is evaluated. In particular, all build-time
- dependencies are checked. nix-env -qa will (attempt to)
- hide any packages that would be refused.
+ Note that all this is checked during evaluation already, and the check includes any package that is evaluated. In particular, all build-time dependencies are checked. nix-env -qa will (attempt to) hide any packages that would be refused.
Each of these criteria can be altered in the nixpkgs configuration.
- The nixpkgs configuration for a NixOS system is set in the
- configuration.nix , as in the following example:
+ The nixpkgs configuration for a NixOS system is set in the configuration.nix , as in the following example:
{
nixpkgs.config = {
@@ -53,13 +42,10 @@
};
}
- However, this does not allow unfree software for individual users. Their
- configurations are managed separately.
+ However, this does not allow unfree software for individual users. Their configurations are managed separately.
- A user's of nixpkgs configuration is stored in a user-specific configuration
- file located at ~/.config/nixpkgs/config.nix . For
- example:
+ A user's nixpkgs configuration is stored in a user-specific configuration file located at ~/.config/nixpkgs/config.nix . For example:
{
allowUnfree = true;
@@ -67,31 +53,25 @@
- Note that we are not able to test or build unfree software on Hydra due to
- policy. Most unfree licenses prohibit us from either executing or
- distributing the software.
+ Note that we are not able to test or build unfree software on Hydra due to policy. Most unfree licenses prohibit us from either executing or distributing the software.
Installing broken packages
- There are two ways to try compiling a package which has been marked as
- broken.
+ There are two ways to try compiling a package which has been marked as broken.
- For allowing the build of a broken package once, you can use an
- environment variable for a single invocation of the nix tools:
+ For allowing the build of a broken package once, you can use an environment variable for a single invocation of the nix tools:
$ export NIXPKGS_ALLOW_BROKEN=1
- For permanently allowing broken packages to be built, you may add
- allowBroken = true; to your user's configuration file,
- like this:
+ For permanently allowing broken packages to be built, you may add allowBroken = true; to your user's configuration file, like this:
{
allowBroken = true;
@@ -105,23 +85,19 @@
Installing packages on unsupported systems
- There are also two ways to try compiling a package which has been marked as
- unsuported for the given system.
+ There are also two ways to try compiling a package which has been marked as unsuported for the given system.
- For allowing the build of a broken package once, you can use an
- environment variable for a single invocation of the nix tools:
+ For allowing the build of a broken package once, you can use an environment variable for a single invocation of the nix tools:
$ export NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM=1
- For permanently allowing broken packages to be built, you may add
- allowUnsupportedSystem = true; to your user's
- configuration file, like this:
+ For permanently allowing broken packages to be built, you may add allowUnsupportedSystem = true; to your user's configuration file, like this:
{
allowUnsupportedSystem = true;
@@ -132,42 +108,29 @@
- The difference between a package being unsupported on some system and being
- broken is admittedly a bit fuzzy. If a program ought to
- work on a certain platform, but doesn't, the platform should be included in
- meta.platforms , but marked as broken with e.g.
- meta.broken = !hostPlatform.isWindows . Of course, this
- begs the question of what "ought" means exactly. That is left to the package
- maintainer.
+ The difference between a package being unsupported on some system and being broken is admittedly a bit fuzzy. If a program ought to work on a certain platform, but doesn't, the platform should be included in meta.platforms , but marked as broken with e.g. meta.broken = !hostPlatform.isWindows . Of course, this begs the question of what "ought" means exactly. That is left to the package maintainer.
Installing unfree packages
- There are several ways to tweak how Nix handles a package which has been
- marked as unfree.
+ There are several ways to tweak how Nix handles a package which has been marked as unfree.
- To temporarily allow all unfree packages, you can use an environment
- variable for a single invocation of the nix tools:
+ To temporarily allow all unfree packages, you can use an environment variable for a single invocation of the nix tools:
$ export NIXPKGS_ALLOW_UNFREE=1
- It is possible to permanently allow individual unfree packages, while
- still blocking unfree packages by default using the
- allowUnfreePredicate configuration option in the user
- configuration file.
+ It is possible to permanently allow individual unfree packages, while still blocking unfree packages by default using the allowUnfreePredicate configuration option in the user configuration file.
- This option is a function which accepts a package as a parameter, and
- returns a boolean. The following example configuration accepts a package
- and always returns false:
+ This option is a function which accepts a package as a parameter, and returns a boolean. The following example configuration accepts a package and always returns false:
{
allowUnfreePredicate = (pkg: false);
@@ -175,8 +138,7 @@
- For a more useful example, try the following. This configuration only
- allows unfree packages named flash player and visual studio code:
+ For a more useful example, try the following. This configuration only allows unfree packages named flash player and visual studio code:
{
allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
@@ -189,14 +151,10 @@
- It is also possible to whitelist and blacklist licenses that are
- specifically acceptable or not acceptable, using
- whitelistedLicenses and
- blacklistedLicenses , respectively.
+ It is also possible to whitelist and blacklist licenses that are specifically acceptable or not acceptable, using whitelistedLicenses and blacklistedLicenses , respectively.
- The following example configuration whitelists the licenses
- amd and wtfpl :
+ The following example configuration whitelists the licenses amd and wtfpl :
{
whitelistedLicenses = with stdenv.lib.licenses; [ amd wtfpl ];
@@ -204,8 +162,7 @@
- The following example configuration blacklists the gpl3
- and agpl3 licenses:
+ The following example configuration blacklists the gpl3 and agpl3 licenses:
{
blacklistedLicenses = with stdenv.lib.licenses; [ agpl3 gpl3 ];
@@ -216,37 +173,29 @@
- A complete list of licenses can be found in the file
- lib/licenses.nix of the nixpkgs tree.
+ A complete list of licenses can be found in the file lib/licenses.nix of the nixpkgs tree.
Installing insecure packages
- There are several ways to tweak how Nix handles a package which has been
- marked as insecure.
+ There are several ways to tweak how Nix handles a package which has been marked as insecure.
- To temporarily allow all insecure packages, you can use an environment
- variable for a single invocation of the nix tools:
+ To temporarily allow all insecure packages, you can use an environment variable for a single invocation of the nix tools:
$ export NIXPKGS_ALLOW_INSECURE=1
- It is possible to permanently allow individual insecure packages, while
- still blocking other insecure packages by default using the
- permittedInsecurePackages configuration option in the
- user configuration file.
+ It is possible to permanently allow individual insecure packages, while still blocking other insecure packages by default using the permittedInsecurePackages configuration option in the user configuration file.
- The following example configuration permits the installation of the
- hypothetically insecure package hello , version
- 1.2.3 :
+ The following example configuration permits the installation of the hypothetically insecure package hello , version 1.2.3 :
{
permittedInsecurePackages = [
@@ -258,18 +207,13 @@
- It is also possible to create a custom policy around which insecure
- packages to allow and deny, by overriding the
- allowInsecurePredicate configuration option.
+ It is also possible to create a custom policy around which insecure packages to allow and deny, by overriding the allowInsecurePredicate configuration option.
- The allowInsecurePredicate option is a function which
- accepts a package and returns a boolean, much like
- allowUnfreePredicate .
+ The allowInsecurePredicate option is a function which accepts a package and returns a boolean, much like allowUnfreePredicate .
- The following configuration example only allows insecure packages with
- very short names:
+ The following configuration example only allows insecure packages with very short names:
{
allowInsecurePredicate = pkg: builtins.stringLength (lib.getName pkg) <= 5;
@@ -277,8 +221,7 @@
- Note that permittedInsecurePackages is only checked if
- allowInsecurePredicate is not specified.
+ Note that permittedInsecurePackages is only checked if allowInsecurePredicate is not specified.
@@ -288,10 +231,7 @@
Modify packages via packageOverrides
- You can define a function called packageOverrides in your
- local ~/.config/nixpkgs/config.nix to override Nix
- packages. It must be a function that takes pkgs as an argument and returns a
- modified set of packages.
+ You can define a function called packageOverrides in your local ~/.config/nixpkgs/config.nix to override Nix packages. It must be a function that takes pkgs as an argument and returns a modified set of packages.
{
packageOverrides = pkgs: rec {
@@ -308,15 +248,7 @@
Build an environment
- Using packageOverrides , it is possible to manage
- packages declaratively. This means that we can list all of our desired
- packages within a declarative Nix expression. For example, to have
- aspell , bc ,
- ffmpeg , coreutils ,
- gdb , nixUnstable ,
- emscripten , jq ,
- nox , and silver-searcher , we could
- use the following in ~/.config/nixpkgs/config.nix :
+ Using packageOverrides , it is possible to manage packages declaratively. This means that we can list all of our desired packages within a declarative Nix expression. For example, to have aspell , bc , ffmpeg , coreutils , gdb , nixUnstable , emscripten , jq , nox , and silver-searcher , we could use the following in ~/.config/nixpkgs/config.nix :
@@ -342,13 +274,7 @@
- To install it into our environment, you can just run nix-env -iA
- nixpkgs.myPackages . If you want to load the packages to be built
- from a working copy of nixpkgs you just run
- nix-env -f. -iA myPackages . To explore what's been
- installed, just look through ~/.nix-profile/ . You can
- see that a lot of stuff has been installed. Some of this stuff is useful
- some of it isn't. Let's tell Nixpkgs to only link the stuff that we want:
+ To install it into our environment, you can just run nix-env -iA nixpkgs.myPackages . If you want to load the packages to be built from a working copy of nixpkgs you just run nix-env -f. -iA myPackages . To explore what's been installed, just look through ~/.nix-profile/ . You can see that a lot of stuff has been installed. Some of this stuff is useful some of it isn't. Let's tell Nixpkgs to only link the stuff that we want:
@@ -375,12 +301,7 @@
- pathsToLink tells Nixpkgs to only link the paths listed
- which gets rid of the extra stuff in the profile. /bin
- and /share are good defaults for a user environment,
- getting rid of the clutter. If you are running on Nix on MacOS, you may
- want to add another path as well, /Applications , that
- makes GUI apps available.
+ pathsToLink tells Nixpkgs to only link the paths listed which gets rid of the extra stuff in the profile. /bin and /share are good defaults for a user environment, getting rid of the clutter. If you are running on Nix on MacOS, you may want to add another path as well, /Applications , that makes GUI apps available.
@@ -388,13 +309,7 @@
Getting documentation
- After building that new environment, look through
- ~/.nix-profile to make sure everything is there that
- we wanted. Discerning readers will note that some files are missing. Look
- inside ~/.nix-profile/share/man/man1/ to verify this.
- There are no man pages for any of the Nix tools! This is because some
- packages like Nix have multiple outputs for things like documentation (see
- section 4). Let's make Nix install those as well.
+ After building that new environment, look through ~/.nix-profile to make sure everything is there that we wanted. Discerning readers will note that some files are missing. Look inside ~/.nix-profile/share/man/man1/ to verify this. There are no man pages for any of the Nix tools! This is because some packages like Nix have multiple outputs for things like documentation (see section 4). Let's make Nix install those as well.
@@ -421,9 +336,7 @@
- This provides us with some useful documentation for using our packages.
- However, if we actually want those manpages to be detected by man, we need
- to set up our environment. This can also be managed within Nix expressions.
+ This provides us with some useful documentation for using our packages. However, if we actually want those manpages to be detected by man, we need to set up our environment. This can also be managed within Nix expressions.
@@ -459,9 +372,7 @@
- For this to work fully, you must also have this script sourced when you are
- logged in. Try adding something like this to your
- ~/.profile file:
+ For this to work fully, you must also have this script sourced when you are logged in. Try adding something like this to your ~/.profile file:
@@ -476,8 +387,7 @@ fi
- Now just run source $HOME/.profile and you can starting
- loading man pages from your environent.
+ Now just run source $HOME/.profile and you can starting loading man pages from your environent.
@@ -485,9 +395,7 @@ fi
GNU info setup
- Configuring GNU info is a little bit trickier than man pages. To work
- correctly, info needs a database to be generated. This can be done with
- some small modifications to our environment scripts.
+ Configuring GNU info is a little bit trickier than man pages. To work correctly, info needs a database to be generated. This can be done with some small modifications to our environment scripts.
@@ -533,11 +441,7 @@ fi
- postBuild tells Nixpkgs to run a command after building
- the environment. In this case, install-info adds the
- installed info pages to dir which is GNU info's default
- root node. Note that texinfoInteractive is added to the
- environment to give the install-info command.
+ postBuild tells Nixpkgs to run a command after building the environment. In this case, install-info adds the installed info pages to dir which is GNU info's default root node. Note that texinfoInteractive is added to the environment to give the install-info command.
diff --git a/doc/using/overlays.xml b/doc/using/overlays.xml
new file mode 100644
index 00000000000..26a888368ab
--- /dev/null
+++ b/doc/using/overlays.xml
@@ -0,0 +1,140 @@
+
+ Overlays
+
+ This chapter describes how to extend and change Nixpkgs using overlays. Overlays are used to add layers in the fixed-point used by Nixpkgs to compose the set of all packages.
+
+
+ Nixpkgs can be configured with a list of overlays, which are applied in order. This means that the order of the overlays can be significant if multiple layers override the same package.
+
+
+
+ Installing overlays
+
+
+ The list of overlays can be set either explicitly in a Nix expression, or through <nixpkgs-overlays> or user configuration files.
+
+
+
+ Set overlays in NixOS or Nix expressions
+
+
+ On a NixOS system the value of the nixpkgs.overlays option, if present, is passed to the system Nixpkgs directly as an argument. Note that this does not affect the overlays for non-NixOS operations (e.g. nix-env ), which are looked up independently.
+
+
+
+ The list of overlays can be passed explicitly when importing nixpkgs, for example import <nixpkgs> { overlays = [ overlay1 overlay2 ]; } .
+
+
+
+ Further overlays can be added by calling the pkgs.extend or pkgs.appendOverlays , although it is often preferable to avoid these functions, because they recompute the Nixpkgs fixpoint, which is somewhat expensive to do.
+
+
+
+
+ Install overlays via configuration lookup
+
+
+ The list of overlays is determined as follows.
+
+
+
+
+
+
+ First, if an overlays argument to the Nixpkgs function itself is given, then that is used and no path lookup will be performed.
+
+
+
+
+ Otherwise, if the Nix path entry <nixpkgs-overlays> exists, we look for overlays at that path, as described below.
+
+
+ See the section on NIX_PATH in the Nix manual for more details on how to set a value for <nixpkgs-overlays>.
+
+
+
+
+ If one of ~/.config/nixpkgs/overlays.nix and ~/.config/nixpkgs/overlays/ exists, then we look for overlays at that path, as described below. It is an error if both exist.
+
+
+
+
+
+
+ If we are looking for overlays at a path, then there are two cases:
+
+
+
+ If the path is a file, then the file is imported as a Nix expression and used as the list of overlays.
+
+
+
+
+ If the path is a directory, then we take the content of the directory, order it lexicographically, and attempt to interpret each as an overlay by:
+
+
+
+ Importing the file, if it is a .nix file.
+
+
+
+
+ Importing a top-level default.nix file, if it is a directory.
+
+
+
+
+
+
+
+
+
+ Because overlays that are set in NixOS configuration do not affect non-NixOS operations such as nix-env , the overlays.nix option provides a convenient way to use the same overlays for a NixOS system configuration and user configuration: the same file can be used as overlays.nix and imported as the value of nixpkgs.overlays .
+
+
+
+
+
+
+
+ Defining overlays
+
+
+ Overlays are Nix functions which accept two arguments, conventionally called self and super , and return a set of packages. For example, the following is a valid overlay.
+
+
+
+self: super:
+
+{
+ boost = super.boost.override {
+ python = self.python3;
+ };
+ rr = super.callPackage ./pkgs/rr {
+ stdenv = self.stdenv_32bit;
+ };
+}
+
+
+
+ The first argument (self ) corresponds to the final package set. You should use this set for the dependencies of all packages specified in your overlay. For example, all the dependencies of rr in the example above come from self , as well as the overridden dependencies used in the boost override.
+
+
+
+ The second argument (super ) corresponds to the result of the evaluation of the previous stages of Nixpkgs. It does not contain any of the packages added by the current overlay, nor any of the following overlays. This set should be used either to refer to packages you wish to override, or to access functions defined in Nixpkgs. For example, the original recipe of boost in the above example, comes from super , as well as the callPackage function.
+
+
+
+ The value returned by this function should be a set similar to pkgs/top-level/all-packages.nix , containing overridden and/or new packages.
+
+
+
+ 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.
+
+
+
diff --git a/doc/using/overrides.xml b/doc/using/overrides.xml
new file mode 100644
index 00000000000..c9d36ddb2d7
--- /dev/null
+++ b/doc/using/overrides.xml
@@ -0,0 +1,145 @@
+
+ Overriding
+
+ Sometimes one wants to override parts of nixpkgs , e.g. derivation attributes, the results of derivations.
+
+
+ These functions are used to make changes to packages, returning only single packages. Overlays, on the other hand, can be used to combine the overridden packages across the entire package set of Nixpkgs.
+
+
+ <pkg>.override
+
+
+ The function override is usually available for all the derivations in the nixpkgs expression (pkgs ).
+
+
+
+ It is used to override the arguments passed to a function.
+
+
+
+ Example usages:
+pkgs.foo.override { arg1 = val1; arg2 = val2; ... }
+
+
+import pkgs.path { overlays = [ (self: super: {
+ foo = super.foo.override { barSupport = true ; };
+ })]};
+
+
+mypkg = pkgs.callPackage ./mypkg.nix {
+ mydep = pkgs.mydep.override { ... };
+ }
+
+
+
+
+ In the first example, pkgs.foo is the result of a function call with some default arguments, usually a derivation. Using pkgs.foo.override will call the same function with the given new arguments.
+
+
+
+ <pkg>.overrideAttrs
+
+
+ The function overrideAttrs allows overriding the attribute set passed to a stdenv.mkDerivation call, producing a new derivation based on the original one. This function is available on all derivations produced by the stdenv.mkDerivation function, which is most packages in the nixpkgs expression pkgs .
+
+
+
+ Example usage:
+
+helloWithDebug = pkgs.hello.overrideAttrs (oldAttrs: rec {
+ separateDebugInfo = true;
+});
+
+
+
+
+ In the above example, the separateDebugInfo attribute is overridden to be true, thus building debug info for helloWithDebug , while all other attributes will be retained from the original hello package.
+
+
+
+ The argument oldAttrs is conventionally used to refer to the attr set originally passed to stdenv.mkDerivation .
+
+
+
+
+ Note that separateDebugInfo is processed only by the stdenv.mkDerivation function, not the generated, raw Nix derivation. Thus, using overrideDerivation will not work in this case, as it overrides only the attributes of the final derivation. It is for this reason that overrideAttrs should be preferred in (almost) all cases to overrideDerivation , i.e. to allow using stdenv.mkDerivation to process input arguments, as well as the fact that it is easier to use (you can use the same attribute names you see in your Nix code, instead of the ones generated (e.g. buildInputs vs nativeBuildInputs ), and it involves less typing).
+
+
+
+
+ <pkg>.overrideDerivation
+
+
+
+ You should prefer overrideAttrs in almost all cases, see its documentation for the reasons why. overrideDerivation is not deprecated and will continue to work, but is less nice to use and does not have as many abilities as overrideAttrs .
+
+
+
+
+
+ Do not use this function in Nixpkgs as it evaluates a Derivation before modifying it, which breaks package abstraction and removes error-checking of function arguments. In addition, this evaluation-per-function application incurs a performance penalty, which can become a problem if many overrides are used. It is only intended for ad-hoc customisation, such as in ~/.config/nixpkgs/config.nix .
+
+
+
+
+ The function overrideDerivation creates a new derivation based on an existing one by overriding the original's attributes with the attribute set produced by the specified function. This function is available on all derivations defined using the makeOverridable function. Most standard derivation-producing functions, such as stdenv.mkDerivation , are defined using this function, which means most packages in the nixpkgs expression, pkgs , have this function.
+
+
+
+ Example usage:
+
+mySed = pkgs.gnused.overrideDerivation (oldAttrs: {
+ name = "sed-4.2.2-pre";
+ src = fetchurl {
+ url = ftp://alpha.gnu.org/gnu/sed/sed-4.2.2-pre.tar.bz2;
+ sha256 = "11nq06d131y4wmf3drm0yk502d2xc6n5qy82cg88rb9nqd2lj41k";
+ };
+ patches = [];
+});
+
+
+
+
+ In the above example, the name , src , and patches of the derivation will be overridden, while all other attributes will be retained from the original derivation.
+
+
+
+ The argument oldAttrs is used to refer to the attribute set of the original derivation.
+
+
+
+
+ A package's attributes are evaluated *before* being modified by the overrideDerivation function. For example, the name attribute reference in url = "mirror://gnu/hello/${name}.tar.gz"; is filled-in *before* the overrideDerivation function modifies the attribute set. This means that overriding the name attribute, in this example, *will not* change the value of the url attribute. Instead, we need to override both the name *and* url attributes.
+
+
+
+
+ lib.makeOverridable
+
+
+ The function lib.makeOverridable is used to make the result of a function easily customizable. This utility only makes sense for functions that accept an argument set and return an attribute set.
+
+
+
+ Example usage:
+
+f = { a, b }: { result = a+b; };
+c = lib.makeOverridable f { a = 1; b = 2; };
+
+
+
+
+ The variable c is the value of the f function applied with some default arguments. Hence the value of c.result is 3 , in this example.
+
+
+
+ The variable c however also has some additional functions, like c.override which can be used to override the default arguments. In this example the value of (c.override { a = 4; }).result is 6.
+
+
+
diff --git a/lib/attrsets.nix b/lib/attrsets.nix
index d374d229f59..086c3d746fc 100644
--- a/lib/attrsets.nix
+++ b/lib/attrsets.nix
@@ -354,7 +354,7 @@ rec {
=> { a = ["x" "y"]; b = ["z"] }
*/
zipAttrsWith = f: sets: zipAttrsWithNames (concatMap attrNames sets) f sets;
- /* Like `zipAttrsWith' with `(name: values: value)' as the function.
+ /* Like `zipAttrsWith' with `(name: values: values)' as the function.
Example:
zipAttrs [{a = "x";} {a = "y"; b = "z";}]
diff --git a/lib/customisation.nix b/lib/customisation.nix
index 3be36fcd719..ac234e3b8c6 100644
--- a/lib/customisation.nix
+++ b/lib/customisation.nix
@@ -66,22 +66,31 @@ rec {
*/
makeOverridable = f: origArgs:
let
- ff = f origArgs;
+ result = f origArgs;
+
+ # Creates a functor with the same arguments as f
+ copyArgs = g: lib.setFunctionArgs g (lib.functionArgs f);
+ # Changes the original arguments with (potentially a function that returns) a set of new attributes
overrideWith = newArgs: origArgs // (if lib.isFunction newArgs then newArgs origArgs else newArgs);
+
+ # Re-call the function but with different arguments
+ overrideArgs = copyArgs (newArgs: makeOverridable f (overrideWith newArgs));
+ # Change the result of the function call by applying g to it
+ overrideResult = g: makeOverridable (copyArgs (args: g (f args))) origArgs;
in
- if builtins.isAttrs ff then (ff // {
- override = newArgs: makeOverridable f (overrideWith newArgs);
- overrideDerivation = fdrv:
- makeOverridable (args: overrideDerivation (f args) fdrv) origArgs;
- ${if ff ? overrideAttrs then "overrideAttrs" else null} = fdrv:
- makeOverridable (args: (f args).overrideAttrs fdrv) origArgs;
- })
- else if lib.isFunction ff then {
- override = newArgs: makeOverridable f (overrideWith newArgs);
- __functor = self: ff;
- overrideDerivation = throw "overrideDerivation not yet supported for functors";
- }
- else ff;
+ if builtins.isAttrs result then
+ result // {
+ override = overrideArgs;
+ overrideDerivation = fdrv: overrideResult (x: overrideDerivation x fdrv);
+ ${if result ? overrideAttrs then "overrideAttrs" else null} = fdrv:
+ overrideResult (x: x.overrideAttrs fdrv);
+ }
+ else if lib.isFunction result then
+ # Transform the result into a functor while propagating its arguments
+ lib.setFunctionArgs result (lib.functionArgs result) // {
+ override = overrideArgs;
+ }
+ else result;
/* Call the package function in the file `fn' with the required
diff --git a/lib/default.nix b/lib/default.nix
index 0e840dd6c9e..8af53152586 100644
--- a/lib/default.nix
+++ b/lib/default.nix
@@ -57,8 +57,8 @@ let
hasAttr head isAttrs isBool isInt isList isString length
lessThan listToAttrs pathExists readFile replaceStrings seq
stringLength sub substring tail;
- inherit (trivial) id const concat or and bitAnd bitOr bitXor bitNot
- boolToString mergeAttrs flip mapNullable inNixShell min max
+ inherit (trivial) id const pipe concat or and bitAnd bitOr bitXor
+ bitNot boolToString mergeAttrs flip mapNullable inNixShell min max
importJSON warn info showWarnings nixpkgsVersion version mod compare
splitByAndCompare functionArgs setFunctionArgs isFunction;
inherit (fixedPoints) fix fix' converge extends composeExtensions
@@ -135,5 +135,7 @@ let
mergeAttrsByFuncDefaultsClean mergeAttrBy
fakeSha256 fakeSha512
nixType imap;
+ inherit (versions)
+ splitVersion;
});
in lib
diff --git a/lib/licenses.nix b/lib/licenses.nix
index 83e1ec7748d..986b7fa1fdd 100644
--- a/lib/licenses.nix
+++ b/lib/licenses.nix
@@ -218,9 +218,9 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
fullName = "Common Public License 1.0";
};
- curl = {
- fullName = "MIT/X11 derivate";
- url = "https://curl.haxx.se/docs/copyright.html";
+ curl = spdx {
+ spdxId = "curl";
+ fullName = "curl License";
};
doc = spdx {
@@ -613,6 +613,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
url = https://enterprise.dejacode.com/licenses/public/purdue-bsd;
};
+ qhull = spdx {
+ spdxId = "Qhull";
+ fullName = "Qhull License";
+ };
+
qpl = spdx {
spdxId = "QPL-1.0";
fullName = "Q Public License 1.0";
diff --git a/lib/modules.nix b/lib/modules.nix
index c3c903c1dfa..44db77b5d1c 100644
--- a/lib/modules.nix
+++ b/lib/modules.nix
@@ -326,6 +326,8 @@ rec {
# The value with a check that it is defined
valueDefined = if res.isDefined then res.mergedValue else
+ # (nixos-option detects this specific error message and gives it special
+ # handling. If changed here, please change it there too.)
throw "The option `${showOption loc}' is used but not defined.";
# Apply the 'apply' function to the merged value. This allows options to
@@ -591,12 +593,16 @@ rec {
{ options, ... }:
{ options = setAttrByPath optionName (mkOption {
visible = false;
+ apply = x: throw "The option `${showOption optionName}' can no longer be used since it's been removed. ${replacementInstructions}";
});
- config.warnings =
- let opt = getAttrFromPath optionName options; in
- optional opt.isDefined ''
+ config.assertions =
+ let opt = getAttrFromPath optionName options; in [{
+ assertion = !opt.isDefined;
+ message = ''
The option definition `${showOption optionName}' in ${showFiles opt.files} no longer has any effect; please remove it.
- ${replacementInstructions}'';
+ ${replacementInstructions}
+ '';
+ }];
};
/* Return a module that causes a warning to be shown if the
diff --git a/lib/systems/default.nix b/lib/systems/default.nix
index 0c0cdf1f11b..026117cc34f 100644
--- a/lib/systems/default.nix
+++ b/lib/systems/default.nix
@@ -37,6 +37,7 @@ rec {
else if final.isAndroid then "bionic"
else if final.isLinux /* default */ then "glibc"
else if final.isMsp430 then "newlib"
+ else if final.isVc4 then "newlib"
else if final.isAvr then "avrlibc"
else if final.isNetBSD then "nblibc"
# TODO(@Ericson2314) think more about other operating systems
@@ -79,6 +80,7 @@ rec {
else if final.isAarch64 then "arm64"
else if final.isx86_32 then "x86"
else if final.isx86_64 then "ia64"
+ else if final.isMips then "mips"
else final.parsed.cpu.name;
qemuArch =
diff --git a/lib/systems/doubles.nix b/lib/systems/doubles.nix
index f07e9da33bc..59bb095a28f 100644
--- a/lib/systems/doubles.nix
+++ b/lib/systems/doubles.nix
@@ -26,7 +26,7 @@ let
"riscv32-linux" "riscv64-linux"
- "aarch64-none" "avr-none" "arm-none" "i686-none" "x86_64-none" "powerpc-none" "msp430-none" "riscv64-none" "riscv32-none"
+ "aarch64-none" "avr-none" "arm-none" "i686-none" "x86_64-none" "powerpc-none" "msp430-none" "riscv64-none" "riscv32-none" "vc4-none"
"js-ghcjs"
];
@@ -47,6 +47,7 @@ in {
x86_64 = filterDoubles predicates.isx86_64;
mips = filterDoubles predicates.isMips;
riscv = filterDoubles predicates.isRiscV;
+ vc4 = filterDoubles predicates.isVc4;
cygwin = filterDoubles predicates.isCygwin;
darwin = filterDoubles predicates.isDarwin;
diff --git a/lib/systems/examples.nix b/lib/systems/examples.nix
index 585156c2475..cb8bc3de6c4 100644
--- a/lib/systems/examples.nix
+++ b/lib/systems/examples.nix
@@ -118,6 +118,12 @@ rec {
config = "avr";
};
+ vc4 = {
+ config = "vc4-elf";
+ libc = "newlib";
+ platform = {};
+ };
+
arm-embedded = {
config = "arm-none-eabi";
libc = "newlib";
diff --git a/lib/systems/inspect.nix b/lib/systems/inspect.nix
index 8a983b3d363..d1980c6dff8 100644
--- a/lib/systems/inspect.nix
+++ b/lib/systems/inspect.nix
@@ -21,6 +21,7 @@ rec {
isSparc = { cpu = { family = "sparc"; }; };
isWasm = { cpu = { family = "wasm"; }; };
isMsp430 = { cpu = { family = "msp430"; }; };
+ isVc4 = { cpu = { family = "vc4"; }; };
isAvr = { cpu = { family = "avr"; }; };
isAlpha = { cpu = { family = "alpha"; }; };
isJavaScript = { cpu = cpuTypes.js; };
diff --git a/lib/systems/parse.nix b/lib/systems/parse.nix
index 5a3805cf997..6a02dbb5152 100644
--- a/lib/systems/parse.nix
+++ b/lib/systems/parse.nix
@@ -112,6 +112,8 @@ rec {
msp430 = { bits = 16; significantByte = littleEndian; family = "msp430"; };
avr = { bits = 8; family = "avr"; };
+ vc4 = { bits = 32; significantByte = littleEndian; family = "vc4"; };
+
js = { bits = 32; significantByte = littleEndian; family = "js"; };
};
@@ -330,6 +332,7 @@ rec {
}
];
};
+ gnuabi64 = { abi = "64"; };
musleabi = { float = "soft"; };
musleabihf = { float = "hard"; };
diff --git a/lib/tests/misc.nix b/lib/tests/misc.nix
index d8f412d3fc4..b064faa1e1b 100644
--- a/lib/tests/misc.nix
+++ b/lib/tests/misc.nix
@@ -18,6 +18,31 @@ runTests {
expected = 2;
};
+ testPipe = {
+ expr = pipe 2 [
+ (x: x + 2) # 2 + 2 = 4
+ (x: x * 2) # 4 * 2 = 8
+ ];
+ expected = 8;
+ };
+
+ testPipeEmpty = {
+ expr = pipe 2 [];
+ expected = 2;
+ };
+
+ testPipeStrings = {
+ expr = pipe [ 3 4 ] [
+ (map toString)
+ (map (s: s + "\n"))
+ concatStrings
+ ];
+ expected = ''
+ 3
+ 4
+ '';
+ };
+
/*
testOr = {
expr = or true false;
@@ -102,6 +127,21 @@ runTests {
expected = [ "2001" "db8" "0" "0042" "" "8a2e" "370" "" ];
};
+ testSplitVersionSingle = {
+ expr = versions.splitVersion "1";
+ expected = [ "1" ];
+ };
+
+ testSplitVersionDouble = {
+ expr = versions.splitVersion "1.2";
+ expected = [ "1" "2" ];
+ };
+
+ testSplitVersionTriple = {
+ expr = versions.splitVersion "1.2.3";
+ expected = [ "1" "2" "3" ];
+ };
+
testIsStorePath = {
expr =
let goodPath =
diff --git a/lib/trivial.nix b/lib/trivial.nix
index f2710a6f033..3a25e31fb05 100644
--- a/lib/trivial.nix
+++ b/lib/trivial.nix
@@ -29,6 +29,43 @@ rec {
# Value to ignore
y: x;
+ /* Pipes a value through a list of functions, left to right.
+
+ Type: pipe :: a -> [] ->
+ Example:
+ pipe 2 [
+ (x: x + 2) # 2 + 2 = 4
+ (x: x * 2) # 4 * 2 = 8
+ ]
+ => 8
+
+ # ideal to do text transformations
+ pipe [ "a/b" "a/c" ] [
+
+ # create the cp command
+ (map (file: ''cp "${src}/${file}" $out\n''))
+
+ # concatenate all commands into one string
+ lib.concatStrings
+
+ # make that string into a nix derivation
+ (pkgs.runCommand "copy-to-out" {})
+
+ ]
+ =>
+
+ The output type of each function has to be the input type
+ of the next function, and the last function returns the
+ final value.
+ */
+ pipe = val: functions:
+ let reverseApply = x: f: f x;
+ in builtins.foldl' reverseApply val functions;
+ /* note please don’t add a function like `compose = flip pipe`.
+ This would confuse users, because the order of the functions
+ in the list is not clear. With pipe, it’s obvious that it
+ goes first-to-last. With `compose`, not so much.
+ */
## Named versions corresponding to some builtin operators.
@@ -134,7 +171,7 @@ rec {
On each release the first letter is bumped and a new animal is chosen
starting with that new letter.
*/
- codeName = "Loris";
+ codeName = "Markhor";
/* Returns the current nixpkgs version suffix as string. */
versionSuffix =
diff --git a/lib/versions.nix b/lib/versions.nix
index 2c05445b3dd..0e9d81ac78b 100644
--- a/lib/versions.nix
+++ b/lib/versions.nix
@@ -1,14 +1,16 @@
/* Version string functions. */
{ lib }:
-let
+rec {
+ /* Break a version string into its component parts.
+
+ Example:
+ splitVersion "1.2.3"
+ => ["1" "2" "3"]
+ */
splitVersion = builtins.splitVersion or (lib.splitString ".");
-in
-
-{
-
/* Get the major version string from a string.
Example:
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index a5b7ce5eaa4..eefc9560f16 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -137,6 +137,11 @@
githubId = 2321000;
name = "Ruslan Babayev";
};
+ acairncross = {
+ email = "acairncross@gmail.com";
+ github = "acairncross";
+ name = "Aiken Cairncross";
+ };
acowley = {
email = "acowley@gmail.com";
github = "acowley";
@@ -184,6 +189,12 @@
githubId = 1250775;
name = "Adolfo E. García Castro";
};
+ adsr = {
+ email = "as@php.net";
+ github = "adsr";
+ githubId = 315003;
+ name = "Adam Saponara";
+ };
aepsil0n = {
email = "eduard.bopp@aepsil0n.de";
github = "aepsil0n";
@@ -356,6 +367,16 @@
github = "alunduil";
name = "Alex Brandt";
};
+ alva = {
+ email = "alva@skogen.is";
+ github = "fjallarefur";
+ githubId = 42881386;
+ name = "Alva";
+ keys = [{
+ longkeyid = "ed25519/0xF53E323342F7A6D3";
+ fingerprint = "B422 CFB1 C9EF 73F7 E1E2 698D F53E 3233 42F7 A6D3A";
+ }];
+ };
amar1729 = {
email = "amar.paul16@gmail.com";
github = "amar1729";
@@ -536,12 +557,24 @@
githubId = 56009;
name = "Arcadio Rubio García";
};
+ arcnmx = {
+ email = "arcnmx@users.noreply.github.com";
+ github = "arcnmx";
+ githubId = 13426784;
+ name = "arcnmx";
+ };
ardumont = {
email = "eniotna.t@gmail.com";
github = "ardumont";
githubId = 718812;
name = "Antoine R. Dumont";
};
+ arianvp = {
+ email = "arian.vanputten@gmail.com";
+ github = "arianvp";
+ githubId = 628387;
+ name = "Arian van Putten";
+ };
aristid = {
email = "aristidb@gmail.com";
github = "aristidb";
@@ -570,6 +603,12 @@
fingerprint = "3D2B B230 F9FA F0C5 1832 46DD 4FDC 96F1 61E7 BA8A";
}];
};
+ arthur = {
+ email = "me@arthur.li";
+ github = "arthurl";
+ githubId = 3965744;
+ name = "Arthur Lee";
+ };
artuuge = {
email = "artuuge@gmail.com";
github = "artuuge";
@@ -692,8 +731,18 @@
githubId = 135230;
name = "Aycan iRiCAN";
};
+ b4dm4n = {
+ email = "fabianm88@gmail.com";
+ github = "B4dM4n";
+ githubId = 448169;
+ name = "Fabian Möller";
+ keys = [{
+ longkeyid = "rsa4096/0x754B5C0963C42C5";
+ fingerprint = "6309 E212 29D4 DA30 AF24 BDED 754B 5C09 63C4 2C50";
+ }];
+ };
babariviere = {
- email = "babariviere@protonmail.com";
+ email = "babathriviere@gmail.com";
github = "babariviere";
githubId = 12128029;
name = "babariviere";
@@ -895,6 +944,12 @@
githubId = 5718007;
name = "Bastian Köcher";
};
+ blitz = {
+ email = "js@alien8.de";
+ github = "blitz";
+ githubId = 37907;
+ name = "Julian Stecklina";
+ };
bluescreen303 = {
email = "mathijs@bluescreen303.nl";
github = "bluescreen303";
@@ -1109,16 +1164,18 @@
githubId = 977929;
name = "Cody Allen";
};
- cf6b88f = {
- email = "elmo.todurov@eesti.ee";
- name = "Elmo Todurov";
- };
cfouche = {
email = "chaddai.fouche@gmail.com";
github = "Chaddai";
githubId = 5771456;
name = "Chaddaï Fouché";
};
+ cfsmp3 = {
+ email = "carlos@sanz.dev";
+ github = "cfsmp3";
+ githubId = 5949913;
+ name = "Carlos Fernandez Sanz";
+ };
chaduffy = {
email = "charles@dyfis.net";
github = "charles-dyfis-net";
@@ -1165,6 +1222,12 @@
githubId = 30435868;
name = "Okina Matara";
};
+ chkno = {
+ email = "chuck@intelligence.org";
+ github = "chkno";
+ githubId = 1118859;
+ name = "Scott Worley";
+ };
choochootrain = {
email = "hurshal@imap.cc";
github = "choochootrain";
@@ -1219,6 +1282,12 @@
githubId = 3956062;
name = "Simon Lackerbauer";
};
+ cizra = {
+ email = "todurov+nix@gmail.com";
+ github = "cizra";
+ githubId = 2131991;
+ name = "Elmo Todurov";
+ };
ck3d = {
email = "ck3d@gmx.de";
github = "ck3d";
@@ -1336,6 +1405,12 @@
githubId = 1740337;
name = "Chris Ostrouchov";
};
+ contrun = {
+ email = "uuuuuu@protonmail.com";
+ github = "contrun";
+ githubId = 32609395;
+ name = "B YI";
+ };
couchemar = {
email = "couchemar@yandex.ru";
github = "couchemar";
@@ -1348,6 +1423,12 @@
githubId = 411324;
name = "Carles Pagès";
};
+ craigem = {
+ email = "craige@mcwhirter.io";
+ github = "craigem";
+ githubId = "6470493";
+ name = "Craige McWhirter";
+ };
cransom = {
email = "cransom@hubns.net";
github = "cransom";
@@ -1403,6 +1484,16 @@
}
];
};
+ dadada = {
+ name = "dadada";
+ email = "dadada@dadada.li";
+ github = "dadada";
+ githubId = 7216772;
+ keys = [{
+ longkeyid = "ed25519/0xEEB8D1CE62C4DFEA";
+ fingerprint = "D68C 8469 5C08 7E0F 733A 28D0 EEB8 D1CE 62C4 DFEA";
+ }];
+ };
dalance = {
email = "dalance@gmail.com";
github = "dalance";
@@ -1427,6 +1518,12 @@
githubId = 245394;
name = "Hannu Hartikainen";
};
+ danderson = {
+ email = "dave@natulte.net";
+ github = "danderson";
+ githubId = 1918;
+ name = "David Anderson";
+ };
danharaj = {
email = "dan@obsidian.systems";
github = "danharaj";
@@ -1478,6 +1575,16 @@
github = "davidrusu";
name = "David Rusu";
};
+ davidtwco = {
+ email = "nix@david.davidtw.co";
+ github = "davidtwco";
+ githubId = 1295100;
+ name = "David Wood";
+ keys = [{
+ longkeyid = "rsa4096/0x01760B4F9F53F154";
+ fingerprint = "5B08 313C 6853 E5BF FA91 A817 0176 0B4F 9F53 F154";
+ }];
+ };
davorb = {
email = "davor@davor.se";
github = "davorb";
@@ -1502,6 +1609,12 @@
githubId = 14032;
name = "Daniel Brockman";
};
+ dduan = {
+ email = "daniel@duan.ca";
+ github = "dduan";
+ githubId = 75067;
+ name = "Daniel Duan";
+ };
deepfire = {
email = "_deepfire@feelingofgreen.ru";
github = "deepfire";
@@ -1643,6 +1756,12 @@
githubId = 1316469;
name = "Naomi Morse";
};
+ dkudriavtsev = {
+ email = "dkudriavtsev@gmail.com";
+ github = "dkudriavtsev";
+ githubId = 9790772;
+ name = "Dmitry Kudriavtsev";
+ };
dmalikov = {
email = "malikov.d.y@gmail.com";
github = "dmalikov";
@@ -1661,6 +1780,12 @@
githubId = 875324;
name = "David Johnson";
};
+ dmrauh = {
+ email = "dmrauh@posteo.de";
+ github = "dmrauh";
+ githubId = 37698547;
+ name = "Dominik Michael Rauh";
+ };
dmvianna = {
email = "dmlvianna@gmail.com";
github = "dmvianna";
@@ -1697,7 +1822,7 @@
name = "Chris Double";
};
dpaetzel = {
- email = "david.a.paetzel@gmail.com";
+ email = "david.paetzel@posteo.de";
github = "dpaetzel";
githubId = 974130;
name = "David Pätzel";
@@ -1875,7 +2000,9 @@
name = "Eric Hegnes";
};
ehmry = {
- email = "emery@vfemail.net";
+ email = "ehmry@posteo.net";
+ github= "ehmry";
+ githubId = 537775;
name = "Emery Hemingway";
};
eikek = {
@@ -1961,6 +2088,12 @@
github = "ericnorris";
githubId = 1906605;
};
+ Enteee = {
+ email = "nix@duckpond.ch";
+ github = "Enteee";
+ githubid = 5493775;
+ name = "Ente";
+ };
enzime = {
email = "enzime@users.noreply.github.com";
github = "enzime";
@@ -1977,6 +2110,12 @@
email = "mpcervin@uncg.edu";
name = "Mabry Cervin";
};
+ equirosa = {
+ email = "eduardo@eduardoquiros.com";
+ github = "equirosa";
+ githubId = 39096810;
+ name = "Eduardo Quiros";
+ };
eqyiel = {
email = "ruben@maher.fyi";
github = "eqyiel";
@@ -1995,6 +2134,11 @@
githubId = 4828;
name = "Eric Merritt";
};
+ ericdallo = {
+ email = "ercdll1337@gmail.com";
+ github = "ericdallo";
+ name = "Eric Dallo";
+ };
ericsagnes = {
email = "eric.sagnes@gmail.com";
github = "ericsagnes";
@@ -2033,6 +2177,12 @@
github = "ertes";
name = "Ertugrul Söylemez";
};
+ esclear = {
+ email = "esclear@users.noreply.github.com";
+ github = "esclear";
+ githubId = 7432848;
+ name = "Daniel Albert";
+ };
Esteth = {
email = "adam.copp@gmail.com";
name = "Adam Copp";
@@ -2065,6 +2215,12 @@
githubId = 195032;
name = "Eric Evenchick";
};
+ evenbrenden = {
+ email = "evenbrenden@gmail.com";
+ github = "evenbrenden";
+ githubId = 2512008;
+ name = "Even Brenden";
+ };
exfalso = {
email = "0slemi0@gmail.com";
github = "exfalso";
@@ -2101,12 +2257,6 @@
githubId = 2817965;
name = "f--t";
};
- fleaz = {
- email = "mail@felixbreidenstein.de";
- github = "fleaz";
- githubId = 2489598;
- name = "Felix Breidenstein";
- };
fadenb = {
email = "tristan.helmich+nixos@gmail.com";
github = "fadenb";
@@ -2147,12 +2297,32 @@
githubId = 8182846;
name = "Francesco Gazzetta";
};
+ filalex77 = {
+ email = "brightone@protonmail.com";
+ github = "filalex77";
+ githubId = 12615679;
+ name = "Oleksii Filonenko";
+ keys = [{
+ longkeyid = "rsa3072/0xA1BC8428323ECFE8";
+ fingerprint = "F549 3B7F 9372 5578 FDD3 D0B8 A1BC 8428 323E CFE8";
+ }];
+ };
FireyFly = {
email = "nix@firefly.nu";
github = "FireyFly";
githubId = 415760;
name = "Jonas Höglund";
};
+ Flakebi = {
+ email = "flakebi@t-online.de";
+ github = "Flakebi";
+ githubId = "Flakebi";
+ name = "Sebastian Neubauer";
+ keys = [{
+ longkeyid = "rsa4096/0xECC755EE583C1672";
+ fingerprint = "2F93 661D AC17 EA98 A104 F780 ECC7 55EE 583C 1672";
+ }];
+ };
flexw = {
email = "felix.weilbach@t-online.de";
github = "FlexW";
@@ -2237,7 +2407,7 @@
name = "Frede Emil";
};
freepotion = {
- email = "free.potion@yandex.ru";
+ email = "42352817+freepotion@users.noreply.github.com";
github = "freepotion";
githubId = 42352817;
name = "Free Potion";
@@ -2348,6 +2518,12 @@
github = "gavinrogers";
name = "Gavin Rogers";
};
+ gazally = {
+ email = "gazally@runbox.com";
+ github = "gazally";
+ githubId = 16470252;
+ name = "Gemini Lasswell";
+ };
gebner = {
email = "gebner@gebner.org";
github = "gebner";
@@ -2490,6 +2666,12 @@
githubId = 9705357;
name = "Guillaume Bouchard";
};
+ GuillaumeDesforges = {
+ email = "aceus02@gmail.com";
+ github = "GuillaumeDesforges";
+ githubId = 1882000;
+ name = "Guillaume Desforges";
+ };
guillaumekoenig = {
email = "guillaume.edward.koenig@gmail.com";
github = "guillaumekoenig";
@@ -2592,6 +2774,11 @@
githubId = 1401179;
name = "Guanpeng Xu";
};
+ hexa = {
+ github = "mweinelt";
+ githubId = 131599;
+ name = "Martin Weinelt";
+ };
hhm = {
email = "heehooman+nixpkgs@gmail.com";
github = "hhm0";
@@ -2602,6 +2789,15 @@
email = "t@larkery.com";
name = "Tom Hinton";
};
+ hkjn = {
+ email = "me@hkjn.me";
+ name = "Henrik Jonsson";
+ github = "hkjn";
+ keys = [{
+ longkeyid = "rsa4096/0x03EFBF839A5FDC15";
+ fingerprint = "D618 7A03 A40A 3D56 62F5 4B46 03EF BF83 9A5F DC15";
+ }];
+ };
hlolli = {
email = "hlolli@gmail.com";
github = "hlolli";
@@ -2739,6 +2935,15 @@
githubId = 137306;
name = "Michele Catalano";
};
+ isgy = {
+ email = "isgy@teiyg.com";
+ github = "isgy";
+ githubId = 13622947;
+ keys = [{
+ longkeyid = "rsa4096/0xD3E1B013B4631293";
+ fingerprint = "1412 816B A9FA F62F D051 1975 D3E1 B013 B463 1293";
+ }];
+ };
ivan = {
email = "ivan@ludios.org";
github = "ivan";
@@ -2787,6 +2992,11 @@
githubId = 26877687;
name = "Yurii Izorkin";
};
+ jacg = {
+ name = "Jacek Generowicz";
+ email = "jacg@my-post-office.net";
+ githubId = "2570854";
+ };
jasoncarr = {
email = "jcarr250@gmail.com";
github = "jasoncarr0";
@@ -2815,6 +3025,12 @@
githubId = 820715;
name = "Jake Logemann";
};
+ jakestanger = {
+ email = "mail@jstanger.dev";
+ github = "JakeStanger";
+ githubId = 5057870;
+ name = "Jake Stanger";
+ };
jakewaksbaum = {
email = "jake.waksbaum@gmail.com";
github = "jbaum98";
@@ -2982,6 +3198,11 @@
githubId = 184898;
name = "Jirka Marsik";
};
+ jitwit = {
+ email = "jrn@bluefarm.ca";
+ github = "jitwit";
+ name = "jitwit";
+ };
jlesquembre = {
email = "jl@lafuente.me";
github = "jlesquembre";
@@ -3106,6 +3327,11 @@
githubId = 392720;
name = "Jon Banafato";
};
+ jonathanmarler = {
+ email = "johnnymarler@gmail.com";
+ github = "marler8997";
+ name = "Jonathan Marler";
+ };
jonathanreeve = {
email = "jon.reeve@gmail.com";
github = "JonathanReeve";
@@ -3189,6 +3415,12 @@
github = "juliendehos";
name = "Julien Dehos";
};
+ jumper149 = {
+ email = "felixspringer149@gmail.com";
+ github = "jumper149";
+ githubId = 39434424;
+ name = "Felix Springer";
+ };
justinwoo = {
email = "moomoowoo@gmail.com";
github = "justinwoo";
@@ -3201,6 +3433,12 @@
githubId = 8460;
name = "John Wiegley";
};
+ jwijenbergh = {
+ email = "jeroenwijenbergh@protonmail.com";
+ github = "jwijenbergh";
+ githubId = 46386452;
+ name = "Jeroen Wijenbergh";
+ };
jwilberding = {
email = "jwilberding@afiniate.com";
name = "Jordan Wilberding";
@@ -3243,6 +3481,12 @@
email = "info+nix@chmist.com";
name = "karolchmist";
};
+ kayhide = {
+ email = "kayhide@gmail.com";
+ github = "kayhide";
+ githubId = 1730718;
+ name = "Hideaki Kawai";
+ };
kazcw = {
email = "kaz@lambdaverse.org";
github = "kazcw";
@@ -3357,6 +3601,12 @@
github = "klntsky";
githubId = 18447310;
};
+ kmcopper = {
+ email = "kmcopper@danwin1210.me";
+ name = "Kyle Copperfield";
+ github = "kmcopper";
+ githubId = 57132115;
+ };
kmeakin = {
email = "karlwfmeakin@gmail.com";
name = "Karl Meakin";
@@ -3370,7 +3620,11 @@
github = "kmein";
githubId = 10352507;
};
-
+ knairda = {
+ email = "adrian@kummerlaender.eu";
+ name = "Adrian Kummerlaender";
+ github = "KnairdA";
+ };
knedlsepp = {
email = "josef.kemetmueller@gmail.com";
github = "knedlsepp";
@@ -3459,12 +3713,29 @@
githubId = 449813;
name = "Roman Kuznetsov";
};
+ kylesferrazza = {
+ name = "Kyle Sferrazza";
+ email = "kyle.sferrazza@gmail.com";
+
+ github = "kylesferrazza";
+ githubId = 6677292;
+
+ keys = [{
+ longkeyid = "rsa4096/81A1540948162372";
+ fingerprint = "5A9A 1C9B 2369 8049 3B48 CF5B 81A1 5409 4816 2372";
+ }];
+ };
kylewlacy = {
email = "kylelacy+nix@pm.me";
github = "kylewlacy";
githubId = 1362179;
name = "Kyle Lacy";
};
+ laikq = {
+ email = "gwen@quasebarth.de";
+ github = "laikq";
+ name = "Gwendolyn Quasebarth";
+ };
lasandell = {
email = "lasandell@gmail.com";
github = "lasandell";
@@ -3482,6 +3753,12 @@
github = "Lassulus";
name = "Lassulus";
};
+ lattfein = {
+ email = "lattfein@gmail.com";
+ github = "lattfein";
+ githubId = 53550838;
+ name = "Koki Yasuno";
+ };
layus = {
email = "layus.on@gmail.com";
github = "layus";
@@ -3576,6 +3853,12 @@
githubId = 307589;
name = "Nathaniel Baxter";
};
+ liff = {
+ email = "liff@iki.fi";
+ github = "liff";
+ githubId = 124475;
+ name = "Olli Helenius";
+ };
lightbulbjim = {
email = "chris@killred.net";
github = "lightbulbjim";
@@ -3692,6 +3975,22 @@
github = "lovek323";
name = "Jason O'Conal";
};
+ lovesegfault = {
+ email = "meurerbernardo@gmail.com";
+ github = "lovesegfault";
+ githubId = 7243783;
+ name = "Bernardo Meurer";
+ keys = [
+ {
+ longkeyid = "rsa2048/0xE421C74191EA186C";
+ fingerprint = "5894 12CE 19DF 582A E10A 3320 E421 C741 91EA 186C";
+ }
+ {
+ longkeyid = "rsa2048/0x4A6D87A0E7475769";
+ fingerprint = "56A8 E164 E834 290C 4AC0 EE3E 4A6D 87A0 E747 5769";
+ }
+ ];
+ };
lowfatcomputing = {
email = "andreas.wagner@lowfatcomputing.org";
github = "lowfatcomputing";
@@ -3763,6 +4062,11 @@
githubId = 13791;
name = "Luke Gorrie";
};
+ lumi = {
+ email = "lumi@pew.im";
+ github = "lumi-me-not";
+ name = "lumi";
+ };
luz = {
email = "luz666@daum.net";
github = "Luz";
@@ -3934,6 +4238,12 @@
githubId = 427866;
name = "Matthias Beyer";
};
+ matthuszagh = {
+ email = "huszaghmatt@gmail.com";
+ github = "matthuszagh";
+ githubId = 7377393;
+ name = "Matt Huszagh";
+ };
matti-kariluoma = {
email = "matti@kariluo.ma";
github = "matti-kariluoma";
@@ -4147,11 +4457,11 @@
email = "miltador@yandex.ua";
name = "Vasiliy Solovey";
};
- mimadrid = {
- email = "mimadrid@ucm.es";
- github = "mimadrid";
+ mimame = {
+ email = "miguel.madrid.mencia@gmail.com";
+ github = "mimame";
githubId = 3269878;
- name = "Miguel Madrid";
+ name = "Miguel Madrid Mencía";
};
minijackson = {
email = "minijackson@riseup.net";
@@ -4187,6 +4497,15 @@
githubId = 5698461;
name = "Maciej Kazulak";
};
+ mkf = {
+ email = "m@mikf.pl";
+ github = "mkf";
+ name = "Michał Krzysztof Feiler";
+ keys = [{
+ longkeyid = "rsa4096/0xE35C2D7C2C6AC724";
+ fingerprint = "1E36 9940 CC7E 01C4 CFE8 F20A E35C 2D7C 2C6A C724";
+ }];
+ };
mkg = {
email = "mkg@vt.edu";
github = "mkgvt";
@@ -4205,6 +4524,18 @@
githubId = 104795;
name = "Marek Mahut";
};
+ mmai = {
+ email = "henri.bourcereau@gmail.com";
+ github = "mmai";
+ githubId = 117842;
+ name = "Henri Bourcereau";
+ };
+ mmilata = {
+ email = "martin@martinmilata.cz";
+ github = "mmilata";
+ gitHubId = 85857;
+ name = "Martin Milata";
+ };
mmlb = {
email = "me.mmlb@mmlb.me";
github = "mmlb";
@@ -4262,6 +4593,10 @@
github = "moredread";
githubId = 100848;
name = "André-Patrick Bubel";
+ keys = [{
+ longkeyid = "rsa8192/0x118CE7C424B45728";
+ fingerprint = "4412 38AD CAD3 228D 876C 5455 118C E7C4 24B4 5728";
+ }];
};
moretea = {
email = "maarten@moretea.nl";
@@ -4943,6 +5278,16 @@
githubId = 1179566;
name = "Nicolas B. Pierron";
};
+ pingiun = {
+ email = "nixos@pingiun.com";
+ github = "pingiun";
+ githubId = 1576660;
+ name = "Jelle Besseling";
+ keys = [{
+ longkeyid = "rsa4096/0x9712452E8BE3372E";
+ fingerprint = "A3A3 65AE 16ED A7A0 C29C 88F1 9712 452E 8BE3 372E";
+ }];
+ };
piotr = {
email = "ppietrasa@gmail.com";
name = "Piotr Pietraszkiewicz";
@@ -5359,6 +5704,12 @@
github = "rickynils";
name = "Rickard Nilsson";
};
+ rileyinman = {
+ email = "rileyminman@gmail.com";
+ github = "rileyinman";
+ githubId = 37246692;
+ name = "Riley Inman";
+ };
ris = {
email = "code@humanleg.org.uk";
github = "risicle";
@@ -5760,8 +6111,14 @@
githubId = 1151264;
name = "Sebastian Graf";
};
+ shahrukh330 = {
+ email = "shahrukh330@gmail.com";
+ github = "shahrukh330";
+ githubId = 1588288;
+ name = "Shahrukh Khan";
+ };
shanemikel = {
- email = "shanemikel1@gmail.com";
+ email = "shanepearlman@pm.me";
github = "shanemikel";
githubId = 6720672;
name = "Shane Pearlman";
@@ -5811,6 +6168,12 @@
githubId = 819413;
name = "Benedict Aas";
};
+ shyim = {
+ email = "s.sayakci@gmail.com";
+ github = "shyim";
+ githubId = 6224096;
+ name = "Soner Sayakci";
+ };
siddharthist = {
email = "langston.barrett@gmail.com";
github = "langston-barrett";
@@ -5840,6 +6203,16 @@
github = "sikmir";
githubId = 688044;
name = "Nikolay Korotkiy";
+ keys = [{
+ longkeyid = "rsa2048/0xD1DE6D7F693663A5";
+ fingerprint = "ADF4 C13D 0E36 1240 BD01 9B51 D1DE 6D7F 6936 63A5";
+ }];
+ };
+ simonchatts = {
+ email = "code@chatts.net";
+ github = "simonchatts";
+ githubId = 11135311;
+ name = "Simon Chatterjee";
};
simonvandel = {
email = "simon.vandel@gmail.com";
@@ -6138,6 +6511,12 @@
githubId = 120188;
name = "Scott W. Dunlop";
};
+ sweber = {
+ email = "sweber2342+nixpkgs@gmail.com";
+ github = "sweber83";
+ githubId = 19905904;
+ name = "Simon Weber";
+ };
swflint = {
email = "swflint@flintfam.org";
github = "swflint";
@@ -6255,6 +6634,12 @@
githubId = 506181;
name = "Peter Marheine";
};
+ tasmo = {
+ email = "tasmo@tasmo.de";
+ github = "tasmo";
+ githubId = 102685;
+ name = "Thomas Friese";
+ };
tavyc = {
email = "octavian.cerna@gmail.com";
github = "tavyc";
@@ -6354,6 +6739,12 @@
githubId = 42933;
name = "Andrew Childs";
};
+ thefenriswolf = {
+ email = "stefan.rohrbacher97@gmail.com";
+ github = "thefenriswolf";
+ githubId = "8547242";
+ name = "Stefan Rohrbacher";
+ };
thesola10 = {
email = "thesola10@bobile.fr";
github = "thesola10";
@@ -6394,6 +6785,12 @@
githubId = 224674;
name = "Thomas Pham";
};
+ Thra11 = {
+ email = "tahall256@protonmail.ch";
+ github = "Thra11";
+ githubId = 1391883;
+ name = "Tom Hall";
+ };
tilpner = {
email = "till@hoeppner.ws";
github = "tilpner";
@@ -6435,6 +6832,16 @@
githubId = 13026;
name = "Jonathan Rudenberg";
};
+ tkerber = {
+ email = "tk@drwx.org";
+ github = "tkerber";
+ githubId = 5722198;
+ name = "Thomas Kerber";
+ keys = [ {
+ longkeyid = "rsa4096/0x8489B911F9ED617B";
+ fingerprint = "556A 403F B0A2 D423 F656 3424 8489 B911 F9ED 617B";
+ } ];
+ };
tmplt = {
email = "tmplt@dragons.rocks";
github = "tmplt";
@@ -6482,6 +6889,12 @@
githubId = 178444;
name = "Thomas Bereknyei";
};
+ tomfitzhenry = {
+ email = "tom@tom-fitzhenry.me.uk";
+ github = "tomfitzhenry";
+ githubId = 61303;
+ name = "Tom Fitzhenry";
+ };
tomsmeets = {
email = "tom.tsmeets@gmail.com";
github = "tomsmeets";
@@ -6512,6 +6925,12 @@
githubId = 1312290;
name = "Trevor Joynson";
};
+ tricktron = {
+ email = "tgagnaux@gmail.com";
+ github = "tricktron";
+ githubId = 16036882;
+ name = "Thibault Gagnaux";
+ };
trino = {
email = "muehlhans.hubert@ekodia.de";
github = "hmuehlhans";
@@ -6524,6 +6943,11 @@
githubId = 483735;
name = "Dmitry Geurkov";
};
+ tscholak = {
+ email = "torsten.scholak@googlemail.com";
+ github = "tscholak";
+ name = "Torsten Scholak";
+ };
tstrobel = {
email = "4ZKTUB6TEP74PYJOPWIR013S2AV29YUBW5F9ZH2F4D5UMJUJ6S@hash.domains";
name = "Thomas Strobel";
@@ -6636,7 +7060,7 @@
githubId = 1525767;
name = "Vaibhav Sagar";
};
- valebes = {
+ valebes = {
email = "valebes@gmail.com";
github = "valebes";
githubid = 10956211;
@@ -6840,6 +7264,12 @@
email = "kirill.wedens@gmail.com";
name = "wedens";
};
+ WhittlesJr = {
+ email = "alex.joseph.whitt@gmail.com";
+ github = "WhittlesJr";
+ githubId = 19174984;
+ name = "Alex Whitt";
+ };
willibutz = {
email = "willibutz@posteo.de";
github = "willibutz";
@@ -6937,6 +7367,12 @@
githubId = 36407913;
name = "Uli Baum";
};
+ xfix = {
+ email = "konrad@borowski.pw";
+ github = "xfix";
+ githubId = 1297598;
+ name = "Konrad Borowski";
+ };
xnaveira = {
email = "xnaveira@gmail.com";
github = "xnaveira";
@@ -7049,8 +7485,24 @@
githubId = 1866448;
name = "Eric Bailey";
};
- z77z = {
- email = "maggesi@math.unifi.it";
+ Yumasi = {
+ email = "gpagnoux@gmail.com";
+ github = "Yumasi";
+ githubId = 24368641;
+ name = "Guillaume Pagnoux";
+ keys = [{
+ longkeyid = "rsa4096/0xEC5065899AEAAF4C";
+ fingerprint = "85F8 E850 F8F2 F823 F934 535B EC50 6589 9AEA AF4C";
+ }];
+ };
+ yvt = {
+ email = "i@yvt.jp";
+ github = "yvt";
+ githubId = 5253988;
+ name = "yvt";
+ };
+ maggesi = {
+ email = "marco.maggesi@gmail.com";
github = "maggesi";
githubId = 1809783;
name = "Marco Maggesi";
@@ -7094,6 +7546,12 @@
email = "zef@zef.me";
name = "Zef Hemel";
};
+ zfnmxt = {
+ name = "zfnmxt";
+ email = "zfnmxt@zfnmxt.com";
+ github = "zfnmxt";
+ githubId = 37446532;
+ };
zgrannan = {
email = "zgrannan@gmail.com";
github = "zgrannan";
@@ -7166,4 +7624,16 @@
githubId = 1986844;
name = "Daniel Wheeler";
};
+ zokrezyl = {
+ email = "zokrezyl@gmail.com";
+ github = "zokrezyl";
+ githubId = 51886259;
+ name = "Zokre Zyl";
+ };
+ rakesh4g = {
+ email = "rakeshgupta4u@gmail.com";
+ github = "rakesh4g";
+ githubId = 50867187;
+ name = "Rakesh Gupta";
+ };
}
diff --git a/maintainers/scripts/hydra-eval-failures.py b/maintainers/scripts/hydra-eval-failures.py
index 23669502e46..6e7ec2dbc00 100755
--- a/maintainers/scripts/hydra-eval-failures.py
+++ b/maintainers/scripts/hydra-eval-failures.py
@@ -11,13 +11,15 @@ import click
import requests
from pyquery import PyQuery as pq
+def map_dict (f, d):
+ for k,v in d.items():
+ d[k] = f(v)
maintainers_json = subprocess.check_output([
- 'nix-instantiate', '-E', 'import ./maintainers/maintainer-list.nix {}', '--eval', '--json'
+ 'nix-instantiate', '-A', 'lib.maintainers', '--eval', '--strict', '--json'
])
maintainers = json.loads(maintainers_json)
-MAINTAINERS = {v: k for k, v in maintainers.items()}
-
+MAINTAINERS = map_dict(lambda v: v.get('github', None), maintainers)
def get_response_text(url):
return pq(requests.get(url).text) # IO
@@ -38,30 +40,39 @@ def get_maintainers(attr_name):
'-A',
'.'.join(nixname[1:]) + '.meta',
EVAL_FILE[nixname[0]],
+ '--arg',
+ 'nixpkgs',
+ './.',
'--json'])
meta = json.loads(meta_json)
- if meta.get('maintainers'):
- return [MAINTAINERS[name] for name in meta['maintainers'] if MAINTAINERS.get(name)]
+ return meta.get('maintainers', [])
except:
return []
+def filter_github_users(maintainers):
+ github_only = []
+ for i in maintainers:
+ if i.get('github'):
+ github_only.append(i)
+ return github_only
+
def print_build(table_row):
a = pq(table_row)('a')[1]
print("- [ ] [{}]({})".format(a.text, a.get('href')), flush=True)
-
- maintainers = get_maintainers(a.text)
- if maintainers:
- print(" - maintainers: {}".format(", ".join(map(lambda u: '@' + u, maintainers))))
+
+ job_maintainers = filter_github_users(get_maintainers(a.text))
+ if job_maintainers:
+ print(" - maintainers: {}".format(" ".join(map(lambda u: '@' + u.get('github'), job_maintainers))))
# TODO: print last three persons that touched this file
# TODO: pinpoint the diff that broke this build, or maybe it's transient or maybe it never worked?
-
+
sys.stdout.flush()
@click.command()
@click.option(
'--jobset',
- default="nixos/release-17.09",
- help='Hydra project like nixos/release-17.09')
+ default="nixos/release-19.09",
+ help='Hydra project like nixos/release-19.09')
def cli(jobset):
"""
Given a Hydra project, inspect latest evaluation
@@ -93,6 +104,7 @@ def cli(jobset):
print_build(tr)
+
if __name__ == "__main__":
try:
cli()
diff --git a/maintainers/scripts/luarocks-packages.csv b/maintainers/scripts/luarocks-packages.csv
index a6fbcd5a0be..526a928438d 100644
--- a/maintainers/scripts/luarocks-packages.csv
+++ b/maintainers/scripts/luarocks-packages.csv
@@ -37,14 +37,17 @@ lua-zlib,,,,,koral
lua_cliargs,,,,,
luabitop,,,,,
luacheck,,,,,
+luacov,,,,,
luadbi,,,,,
luadbi-mysql,,,,,
luadbi-postgresql,,,,,
luadbi-sqlite3,,,,,
+luadoc,,,,,
luaevent,,,,,
luaexpat,,,1.3.0-1,,arobyn flosse
luaffi,,http://luarocks.org/dev,,,
luafilesystem,,,1.7.0-2,,flosse vcunat
+lualogging,,,,,
luaossl,,,,lua5_1,vcunat
luaposix,,,,,vyp lblasc
luasec,,,,,flosse
@@ -68,3 +71,4 @@ say,,,,,
std__debug,std._debug,,,,
std_normalize,std.normalize,,,,
stdlib,,,,,vyp
+pulseaudio,,,,,doronbehar
diff --git a/maintainers/scripts/nix-generate-from-cpan.pl b/maintainers/scripts/nix-generate-from-cpan.pl
index 2dda39fd12e..e04d3713e9a 100755
--- a/maintainers/scripts/nix-generate-from-cpan.pl
+++ b/maintainers/scripts/nix-generate-from-cpan.pl
@@ -226,7 +226,7 @@ sub pkg_to_attr {
sub get_pkg_name {
my ($module) = @_;
- return $module->package_name . '-' . $module->package_version;
+ return ( $module->package_name, $module->package_version =~ s/^v(\d)/$1/r );
}
sub read_meta {
@@ -375,13 +375,13 @@ die "module $module_name not found\n" if scalar @modules == 0;
die "multiple packages that match module $module_name\n" if scalar @modules > 1;
my $module = $modules[0];
-my $pkg_name = get_pkg_name $module;
+my ($pkg_name, $pkg_version) = get_pkg_name $module;
my $attr_name = pkg_to_attr $module;
INFO( "attribute name: ", $attr_name );
INFO( "module: ", $module->module );
INFO( "version: ", $module->version );
-INFO( "package: ", $module->package, " (", $pkg_name, ", ", $attr_name, ")" );
+INFO( "package: ", $module->package, " (", "$pkg_name-$pkg_version", ", ", $attr_name, ")" );
INFO( "path: ", $module->path );
my $tar_path = $module->fetch();
@@ -436,10 +436,11 @@ my $build_fun = -e "$pkg_path/Build.PL"
print STDERR "===\n";
print <${1:?usage: $0 }
cat <
It sets ,
,
- (
-
- without Qt4 Support), and
+ , and
to true. It also
includes glxinfo and firefox in the system packages list.
diff --git a/nixos/doc/manual/configuration/wireless.xml b/nixos/doc/manual/configuration/wireless.xml
index 9c0e3a8d7aa..247d29d5831 100644
--- a/nixos/doc/manual/configuration/wireless.xml
+++ b/nixos/doc/manual/configuration/wireless.xml
@@ -19,10 +19,17 @@
NixOS lets you specify networks for wpa_supplicant declaratively:
= {
- echelon = {
+ echelon = { # SSID with no spaces or special characters
psk = "abcdefgh";
};
- "free.wifi" = {};
+ "echelon's AP" = { # SSID with spaces and/or special characters
+ psk = "ijklmnop";
+ };
+ echelon = { # Hidden SSID
+ hidden = true;
+ psk = "qrstuvwx";
+ };
+ free.wifi = {}; # Public wireless network
};
Be aware that keys will be written to the nix store in plaintext! When no
diff --git a/nixos/doc/manual/configuration/x-windows.xml b/nixos/doc/manual/configuration/x-windows.xml
index f6f659b02af..9206f43ea39 100644
--- a/nixos/doc/manual/configuration/x-windows.xml
+++ b/nixos/doc/manual/configuration/x-windows.xml
@@ -39,7 +39,7 @@
can select an alternative one by picking one of the following lines:
= true;
- = true;
+ = true;
diff --git a/nixos/doc/manual/default.nix b/nixos/doc/manual/default.nix
index f9de2db1a08..6ca75f869f4 100644
--- a/nixos/doc/manual/default.nix
+++ b/nixos/doc/manual/default.nix
@@ -62,14 +62,13 @@ let
"--stringparam html.stylesheet 'style.css overrides.css highlightjs/mono-blue.css'"
"--stringparam html.script './highlightjs/highlight.pack.js ./highlightjs/loader.js'"
"--param xref.with.number.and.title 1"
- "--param toc.section.depth 3"
+ "--param toc.section.depth 0"
"--stringparam admon.style ''"
"--stringparam callout.graphics.extension .svg"
"--stringparam current.docid manual"
"--param chunk.section.depth 0"
"--param chunk.first.sections 1"
"--param use.id.as.filename 1"
- "--stringparam generate.toc 'book toc appendix toc'"
"--stringparam chunk.toc ${toc}"
];
diff --git a/nixos/doc/manual/development/option-declarations.xml b/nixos/doc/manual/development/option-declarations.xml
index eee81bf6426..56ebf481630 100644
--- a/nixos/doc/manual/development/option-declarations.xml
+++ b/nixos/doc/manual/development/option-declarations.xml
@@ -99,7 +99,7 @@ xlink:href="https://nixos.org/nixpkgs/manual/#sec-package-naming">
As an example, we will take the case of display managers. There is a central
display manager module for generic display manager options and a module file
- per display manager backend (slim, sddm, gdm ...).
+ per display manager backend (sddm, gdm ...).
@@ -146,7 +146,7 @@ xlink:href="https://nixos.org/nixpkgs/manual/#sec-package-naming">
/>), and to extend
it in each backend module
( ,
+ linkend='ex-option-declaration-eot-backend-gdm' />,
).
@@ -167,11 +167,11 @@ services.xserver.displayManager.enable = mkOption {
};
-
- Extending services.xserver.displayManager.enable in the slim module
+
+ Extending services.xserver.displayManager.enable in the gdm module
services.xserver.displayManager.enable = mkOption {
- type = with types; nullOr (enum [ "slim" ]);
+ type = with types; nullOr (enum [ "gdm" ]);
};
diff --git a/nixos/doc/manual/development/releases.xml b/nixos/doc/manual/development/releases.xml
index 1cdec64f69b..9371af9984d 100755
--- a/nixos/doc/manual/development/releases.xml
+++ b/nixos/doc/manual/development/releases.xml
@@ -45,12 +45,12 @@
git tag -a -s -m "Release 17.09-beta" 17.09-beta
- && git push --tags
+ && git push origin 17.09-beta
- From the master branch run git checkout -B
+ From the master branch run git checkout -b
release-17.09 .
@@ -157,7 +157,7 @@
Release Nix (currently only Eelco Dolstra can do that).
-
+
Make sure fallback is updated.
@@ -169,8 +169,8 @@
- Change stableBranch to true and wait for channel to
- update.
+ Change stableBranch to true in Hydra and wait for
+ the channel to update.
@@ -193,9 +193,11 @@
- Update http://nixos.org/nixos/download.html and
- http://nixos.org/nixos/manual in
- https://github.com/NixOS/nixos-org-configurations
+ Update the
+ NIXOS_SERIES
+ in the
+ nixos-homepage
+ repository.
@@ -212,7 +214,8 @@
- Send an email to nix-dev to announce the release with above information.
+ Create a new topic on the
+ Discourse instance to announce the release with the above information.
Best to check how previous email was formulated to see what needs to be
included.
diff --git a/nixos/doc/manual/development/running-nixos-tests-interactively.xml b/nixos/doc/manual/development/running-nixos-tests-interactively.xml
index e390d62fde2..31216874c70 100644
--- a/nixos/doc/manual/development/running-nixos-tests-interactively.xml
+++ b/nixos/doc/manual/development/running-nixos-tests-interactively.xml
@@ -2,7 +2,7 @@
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
version="5.0"
- xml:id="sec-running-nixos-tests">
+ xml:id="sec-running-nixos-tests-interactively">
Running Tests interactively
@@ -14,14 +14,14 @@
starting VDE switch for network 1
>
- You can then take any Perl statement, e.g.
+ You can then take any Python statement, e.g.
-> startAll
-> testScript
-> $machine->succeed("touch /tmp/foo")
-> print($machine->succeed("pwd")) # Show stdout of command
+> start_all()
+> test_script()
+> machine.succeed("touch /tmp/foo")
+> print(machine.succeed("pwd")) # Show stdout of command
- The function testScript executes the entire test script
+ The function test_script executes the entire test script
and drops you back into the test driver command line upon its completion.
This allows you to inspect the state of the VMs after the test (e.g. to debug
the test script).
diff --git a/nixos/doc/manual/development/running-nixos-tests.xml b/nixos/doc/manual/development/running-nixos-tests.xml
index 13ae1ed9369..e9257c907da 100644
--- a/nixos/doc/manual/development/running-nixos-tests.xml
+++ b/nixos/doc/manual/development/running-nixos-tests.xml
@@ -2,7 +2,7 @@
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
version="5.0"
- xml:id="sec-running-nixos-tests-interactively">
+ xml:id="sec-running-nixos-tests">
Running Tests
diff --git a/nixos/doc/manual/development/sources.xml b/nixos/doc/manual/development/sources.xml
index 3c30c782746..b333ccabb42 100644
--- a/nixos/doc/manual/development/sources.xml
+++ b/nixos/doc/manual/development/sources.xml
@@ -13,17 +13,16 @@
$ git clone https://github.com/NixOS/nixpkgs
$ cd nixpkgs
-$ git remote add channels https://github.com/NixOS/nixpkgs-channels
-$ git remote update channels
+$ git remote update origin
This will check out the latest Nixpkgs sources to
./nixpkgs the NixOS sources to
./nixpkgs/nixos . (The NixOS source tree lives in a
- subdirectory of the Nixpkgs repository.) The remote
- channels refers to a read-only repository that tracks the
- Nixpkgs/NixOS channels (see for more
+ subdirectory of the Nixpkgs repository.) The
+ nixpkgs repository has branches that correspond
+ to each Nixpkgs/NixOS channel (see for more
information about channels). Thus, the Git branch
- channels/nixos-17.03 will contain the latest built and
+ origin/nixos-17.03 will contain the latest built and
tested version available in the nixos-17.03 channel.
@@ -40,15 +39,15 @@
Or, to base your local branch on the latest version available in a NixOS
channel:
-$ git remote update channels
-$ git checkout -b local channels/nixos-17.03
+$ git remote update origin
+$ git checkout -b local origin/nixos-17.03
(Replace nixos-17.03 with the name of the channel you want
to use.) You can use git merge or git
rebase to keep your local branch in sync with the channel, e.g.
-$ git remote update channels
-$ git merge channels/nixos-17.03
+$ git remote update origin
+$ git merge origin/nixos-17.03
You can use git cherry-pick to copy commits from your
local branch to the upstream branch.
diff --git a/nixos/doc/manual/development/writing-nixos-tests.xml b/nixos/doc/manual/development/writing-nixos-tests.xml
index 6be2d0a4d23..24efd2e3273 100644
--- a/nixos/doc/manual/development/writing-nixos-tests.xml
+++ b/nixos/doc/manual/development/writing-nixos-tests.xml
@@ -8,7 +8,7 @@
A NixOS test is a Nix expression that has the following structure:
-import ./make-test.nix {
+import ./make-test-python.nix {
# Either the configuration of a single machine:
machine =
@@ -27,11 +27,11 @@ import ./make-test.nix {
testScript =
''
- Perl code…
+ Python code…
'';
}
- The attribute testScript is a bit of Perl code that
+ The attribute testScript is a bit of Python code that
executes the test (described below). During the test, it will start one or
more virtual machines, the configuration of which is described by the
attribute machine (if you need only one machine in your
@@ -96,26 +96,27 @@ xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/virtualis
- The test script is a sequence of Perl statements that perform various
+ The test script is a sequence of Python statements that perform various
actions, such as starting VMs, executing commands in the VMs, and so on. Each
virtual machine is represented as an object stored in the variable
- $name , where
- name is the identifier of the machine (which is
- just machine if you didn’t specify multiple machines
- using the nodes attribute). For instance, the following
- starts the machine, waits until it has finished booting, then executes a
- command and checks that the output is more-or-less correct:
+ name if this is also the
+ identifier of the machine in the declarative config.
+ If you didn't specify multiple machines using the nodes
+ attribute, it is just machine .
+ The following example starts the machine, waits until it has finished booting,
+ then executes a command and checks that the output is more-or-less correct:
-$machine->start;
-$machine->waitForUnit("default.target");
-$machine->succeed("uname") =~ /Linux/ or die;
+machine.start()
+machine.wait_for_unit("default.target")
+if not "Linux" in machine.succeed("uname"):
+ raise Exception("Wrong OS")
The first line is actually unnecessary; machines are implicitly started when
- you first execute an action on them (such as waitForUnit
+ you first execute an action on them (such as wait_for_unit
or succeed ). If you have multiple machines, you can speed
up the test by starting them in parallel:
-startAll;
+start_all()
@@ -187,7 +188,7 @@ startAll;
- getScreenText
+ get_screen_text
@@ -204,7 +205,7 @@ startAll;
- sendMonitorCommand
+ send_monitor_command
@@ -215,23 +216,23 @@ startAll;
- sendKeys
+ send_keys
Simulate pressing keys on the virtual keyboard, e.g.,
- sendKeys("ctrl-alt-delete") .
+ send_keys("ctrl-alt-delete") .
- sendChars
+ send_chars
Simulate typing a sequence of characters on the virtual keyboard, e.g.,
- sendKeys("foobar\n") will type the string
+ send_keys("foobar\n") will type the string
foobar followed by the Enter key.
@@ -272,7 +273,7 @@ startAll;
- waitUntilSucceeds
+ wait_until_succeeds
@@ -282,7 +283,7 @@ startAll;
- waitUntilFails
+ wait_until_fails
@@ -292,7 +293,7 @@ startAll;
- waitForUnit
+ wait_for_unit
@@ -302,7 +303,7 @@ startAll;
- waitForFile
+ wait_for_file
@@ -312,7 +313,7 @@ startAll;
- waitForOpenPort
+ wait_for_open_port
@@ -323,7 +324,7 @@ startAll;
- waitForClosedPort
+ wait_for_closed_port
@@ -333,7 +334,7 @@ startAll;
- waitForX
+ wait_for_x
@@ -343,13 +344,13 @@ startAll;
- waitForText
+ wait_for_text
Wait until the supplied regular expressions matches the textual contents
of the screen by using optical character recognition (see
- getScreenText ).
+ get_screen_text ).
@@ -361,23 +362,23 @@ startAll;
- waitForWindow
+ wait_for_window
Wait until an X11 window has appeared whose name matches the given
- regular expression, e.g., waitForWindow(qr/Terminal/) .
+ regular expression, e.g., wait_for_window("Terminal") .
- copyFileFromHost
+ copy_file_from_host
Copies a file from host to machine, e.g.,
- copyFileFromHost("myfile", "/etc/my/important/file") .
+ copy_file_from_host("myfile", "/etc/my/important/file") .
The first argument is the file on the host. The file needs to be
@@ -397,8 +398,8 @@ startAll;
-$machine->systemctl("list-jobs --no-pager"); // runs `systemctl list-jobs --no-pager`
-$machine->systemctl("list-jobs --no-pager", "any-user"); // spawns a shell for `any-user` and runs `systemctl --user list-jobs --no-pager`
+machine.systemctl("list-jobs --no-pager") # runs `systemctl list-jobs --no-pager`
+machine.systemctl("list-jobs --no-pager", "any-user") # spawns a shell for `any-user` and runs `systemctl --user list-jobs --no-pager`
@@ -408,14 +409,14 @@ $machine->systemctl("list-jobs --no-pager", "any-user"); // spawns a shell for `
To test user units declared by systemd.user.services the
- optional $user argument can be used:
+ optional user argument can be used:
-$machine->start;
-$machine->waitForX;
-$machine->waitForUnit("xautolock.service", "x-session-user");
+machine.start()
+machine.wait_for_x()
+machine.wait_for_unit("xautolock.service", "x-session-user")
- This applies to systemctl , getUnitInfo ,
- waitForUnit , startJob and
- stopJob .
+ This applies to systemctl , get_unit_info ,
+ wait_for_unit , start_job and
+ stop_job .
diff --git a/nixos/doc/manual/installation/installing-virtualbox-guest.xml b/nixos/doc/manual/installation/installing-virtualbox-guest.xml
index 5c86eacfbf4..0ba909fa953 100644
--- a/nixos/doc/manual/installation/installing-virtualbox-guest.xml
+++ b/nixos/doc/manual/installation/installing-virtualbox-guest.xml
@@ -47,6 +47,11 @@
acceleration
+
+
+ Click on Settings / Display / Screen and select VBoxVGA as Graphics Controller
+
+
Save the settings, start the virtual machine, and continue installation
diff --git a/nixos/doc/manual/installation/installing.xml b/nixos/doc/manual/installation/installing.xml
index 9cea2db610e..7991c43e01f 100644
--- a/nixos/doc/manual/installation/installing.xml
+++ b/nixos/doc/manual/installation/installing.xml
@@ -68,7 +68,7 @@
If you would like to continue the installation from a different machine you
need to activate the SSH daemon via systemctl start
sshd . You then must set a password for either root or
- nixos with passwd> to be able to login.
+ nixos with passwd to be able to login.
@@ -392,7 +392,11 @@
hardware-configuration.nix is included from
configuration.nix and will be overwritten by future
invocations of nixos-generate-config ; thus, you
- generally should not modify it.)
+ generally should not modify it.) Additionally, you may want to look at
+ Hardware
+ configuration for known-hardware at this point or after
+ installation.
+
@@ -414,11 +418,11 @@
Do the installation:
# nixos-install
- Cross fingers. If this fails due to a temporary problem (such as a network
- issue while downloading binaries from the NixOS binary cache), you can
- just re-run nixos-install . Otherwise, fix your
- configuration.nix and then re-run
- nixos-install .
+ This will install your system based on the configuration you provided.
+ If anything fails due to a configuration problem or any other issue
+ (such as a network outage while downloading binaries from the NixOS
+ binary cache), you can re-run nixos-install after
+ fixing your configuration.nix .
As the last step, nixos-install will ask you to set the
diff --git a/nixos/doc/manual/installation/upgrading.xml b/nixos/doc/manual/installation/upgrading.xml
index 35b4d266e12..8d3f35b7c26 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.03 .
+ xlink:href="https://nixos.org/channels/nixos-19.09">nixos-19.09.
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.03-small
+ xlink:href="https://nixos.org/channels/nixos-19.09-small">nixos-19.09-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.03 ISO, you will be subscribed to the
- nixos-19.03 channel. To see which NixOS channel you’re
+ installed from a 19.09 ISO, you will be subscribed to the
+ nixos-19.09 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.03 stable channel:
+ instance, to use the NixOS 19.09 stable channel:
-# nix-channel --add https://nixos.org/channels/nixos-19.03 nixos
+# nix-channel --add https://nixos.org/channels/nixos-19.09 nixos
If you have a server, you may want to use the “small” channel instead:
-# nix-channel --add https://nixos.org/channels/nixos-19.03-small nixos
+# nix-channel --add https://nixos.org/channels/nixos-19.09-small nixos
And if you want to live on the bleeding edge:
@@ -127,7 +127,7 @@ nixos https://nixos.org/channels/nixos-unstable
current channel. (To see when the service runs, see systemctl
list-timers .) You can also specify a channel explicitly, e.g.
- = https://nixos.org/channels/nixos-19.03;
+ = https://nixos.org/channels/nixos-19.09;
diff --git a/nixos/doc/manual/man-configuration.xml b/nixos/doc/manual/man-configuration.xml
index 9f30b792510..ddb1408fdcf 100644
--- a/nixos/doc/manual/man-configuration.xml
+++ b/nixos/doc/manual/man-configuration.xml
@@ -8,8 +8,8 @@
- configuration.nix
- NixOS system configuration specification
+ configuration.nix
+ NixOS system configuration specification
Description
diff --git a/nixos/doc/manual/man-nixos-build-vms.xml b/nixos/doc/manual/man-nixos-build-vms.xml
index 7d6e04e0dd9..d114261f53b 100644
--- a/nixos/doc/manual/man-nixos-build-vms.xml
+++ b/nixos/doc/manual/man-nixos-build-vms.xml
@@ -8,8 +8,8 @@
- nixos-build-vms
- build a network of virtual machines from a network of NixOS configurations
+ nixos-build-vms
+ build a network of virtual machines from a network of NixOS configurations
diff --git a/nixos/doc/manual/man-nixos-enter.xml b/nixos/doc/manual/man-nixos-enter.xml
index 1481db46712..fe560d3efdd 100644
--- a/nixos/doc/manual/man-nixos-enter.xml
+++ b/nixos/doc/manual/man-nixos-enter.xml
@@ -8,8 +8,8 @@
- nixos-enter
- run a command in a NixOS chroot environment
+ nixos-enter
+ run a command in a NixOS chroot environment
diff --git a/nixos/doc/manual/man-nixos-generate-config.xml b/nixos/doc/manual/man-nixos-generate-config.xml
index 61531a8f01c..9ac3b918ff6 100644
--- a/nixos/doc/manual/man-nixos-generate-config.xml
+++ b/nixos/doc/manual/man-nixos-generate-config.xml
@@ -8,8 +8,8 @@
- nixos-generate-config
- generate NixOS configuration modules
+ nixos-generate-config
+ generate NixOS configuration modules
diff --git a/nixos/doc/manual/man-nixos-install.xml b/nixos/doc/manual/man-nixos-install.xml
index 4fb94ee7494..45bbd5d81ff 100644
--- a/nixos/doc/manual/man-nixos-install.xml
+++ b/nixos/doc/manual/man-nixos-install.xml
@@ -8,8 +8,8 @@
- nixos-install
- install bootloader and NixOS
+ nixos-install
+ install bootloader and NixOS
diff --git a/nixos/doc/manual/man-nixos-option.xml b/nixos/doc/manual/man-nixos-option.xml
index 3e316e10d4e..beabf020c92 100644
--- a/nixos/doc/manual/man-nixos-option.xml
+++ b/nixos/doc/manual/man-nixos-option.xml
@@ -8,8 +8,8 @@
- nixos-option
- inspect a NixOS configuration
+ nixos-option
+ inspect a NixOS configuration
@@ -19,14 +19,10 @@
- --verbose
+ --all
- --xml
-
-
-
option.name
@@ -62,22 +58,11 @@
- --verbose
+ --all
- This option enables verbose mode, which currently is just the Bash
- set -x debug mode.
-
-
-
-
-
- --xml
-
-
-
- This option causes the output to be rendered as XML.
+ Print the values of all options.
diff --git a/nixos/doc/manual/man-nixos-rebuild.xml b/nixos/doc/manual/man-nixos-rebuild.xml
index 4c20cfcdd7d..495dbc8859b 100644
--- a/nixos/doc/manual/man-nixos-rebuild.xml
+++ b/nixos/doc/manual/man-nixos-rebuild.xml
@@ -7,10 +7,12 @@
NixOS
+
- nixos-rebuild
- reconfigure a NixOS machine
+ nixos-rebuild
+ reconfigure a NixOS machine
+
nixos-rebuild
@@ -74,6 +76,7 @@
--builders builder-spec
+
@@ -121,8 +124,10 @@
+
Description
+
This command updates the system so that it corresponds to the configuration
specified in /etc/nixos/configuration.nix . Thus, every
@@ -133,9 +138,11 @@
(re)starts any system services if needed. Please note that user services need
to be started manually as they aren't detected by the activation script at the moment.
+
This command has one required argument, which specifies the desired
operation. It must be one of the following:
+
@@ -152,6 +159,7 @@
+
boot
@@ -165,6 +173,7 @@
+
test
@@ -179,6 +188,7 @@
+
build
@@ -197,6 +207,7 @@
+
dry-build
@@ -208,6 +219,7 @@
+
dry-activate
@@ -222,6 +234,7 @@
+
edit
@@ -232,6 +245,7 @@
+
build-vm
@@ -249,12 +263,14 @@
$ ./result/bin/run-*-vm
+
The VM is implemented using the qemu package. For
best performance, you should load the kvm-intel or
kvm-amd kernel modules to get hardware
virtualisation.
+
The VM mounts the Nix store of the host through the 9P file system. The
host Nix store is read-only, so Nix commands that modify the Nix store
@@ -262,6 +278,7 @@
nixos-rebuild ; to change the VM’s configuration,
you must halt the VM and re-run the commands above.
+
The VM has its own ext3 root file system, which is
automatically created when the VM is first started, and is persistent
@@ -272,6 +289,7 @@
+
build-vm-with-bootloader
@@ -294,11 +312,13 @@
+
Options
This command accepts the following options:
+
@@ -310,6 +330,7 @@
+
--install-bootloader
@@ -321,6 +342,7 @@
+
--no-build-nix
@@ -336,6 +358,7 @@
+
--fast
@@ -349,6 +372,7 @@
+
--rollback
@@ -363,6 +387,7 @@
+
--builders builder-spec
@@ -382,6 +407,7 @@
+
--profile-name
@@ -412,6 +438,7 @@
+
--build-host
@@ -437,6 +464,7 @@
+
--target-host
@@ -449,6 +477,7 @@
be accessible over ssh, and for the commands switch ,
boot and test you need root access.
+
If --build-host is not explicitly specified,
--build-host will implicitly be set to the same value as
@@ -457,6 +486,7 @@
place remotely (and no build artifacts will be copied to the local
machine).
+
You can include a remote user name in the host name
(user@host ). You can also set ssh options by
@@ -464,7 +494,22 @@
+
+
+
+ --use-remote-sudo
+
+
+
+ When set, nixos-rebuild prefixes remote commands that run on
+ the --build-host and --target-host
+ systems with sudo . Setting this option allows
+ deploying as a non-root user.
+
+
+
+
In addition, nixos-rebuild accepts various Nix-related
flags, including --max-jobs / -j ,
@@ -473,8 +518,10 @@
-v . See the Nix manual for details.
+
Environment
+
@@ -487,6 +534,7 @@
+
NIX_SSHOPTS
@@ -500,9 +548,12 @@
+
Files
+
+
/run/current-system
@@ -513,6 +564,7 @@
+
/nix/var/nix/profiles/system
@@ -524,8 +576,10 @@
+
+
Bugs
diff --git a/nixos/doc/manual/man-nixos-version.xml b/nixos/doc/manual/man-nixos-version.xml
index 931c4a5ad02..e9ad8bddcac 100644
--- a/nixos/doc/manual/man-nixos-version.xml
+++ b/nixos/doc/manual/man-nixos-version.xml
@@ -7,8 +7,8 @@
NixOS
- nixos-version
- show the NixOS version
+ nixos-version
+ show the NixOS version
diff --git a/nixos/doc/manual/manual.xml b/nixos/doc/manual/manual.xml
index 12f52e1997c..18a67a2dd94 100644
--- a/nixos/doc/manual/manual.xml
+++ b/nixos/doc/manual/manual.xml
@@ -8,32 +8,7 @@
Version
-
- Preface
-
- This manual describes how to install, use and extend NixOS, a Linux
- distribution based on the purely functional package management system Nix.
-
-
- If you encounter problems, please report them on the
- Discourse or
- on the
- #nixos channel on Freenode. Bugs should be
- reported in
- NixOS’
- GitHub issue tracker.
-
-
-
- Commands prefixed with # have to be run as root, either
- requiring to login as root user or temporarily switching to it using
- sudo for example.
-
-
-
+
diff --git a/nixos/doc/manual/preface.xml b/nixos/doc/manual/preface.xml
new file mode 100644
index 00000000000..6ac9ae7e786
--- /dev/null
+++ b/nixos/doc/manual/preface.xml
@@ -0,0 +1,37 @@
+
+ Preface
+
+ This manual describes how to install, use and extend NixOS, a Linux
+ distribution based on the purely functional package management system
+ Nix, that is composed
+ using modules and packages defined in the
+ Nixpkgs project.
+
+
+ Additional information regarding the Nix package manager and the Nixpkgs
+ project can be found in respectively the
+ Nix manual and the
+ Nixpkgs manual.
+
+
+ If you encounter problems, please report them on the
+ Discourse or
+ on the
+ #nixos channel on Freenode. Bugs should be
+ reported in
+ NixOS’
+ GitHub issue tracker.
+
+
+
+ Commands prefixed with # have to be run as root, either
+ requiring to login as root user or temporarily switching to it using
+ sudo for example.
+
+
+
diff --git a/nixos/doc/manual/release-notes/release-notes.xml b/nixos/doc/manual/release-notes/release-notes.xml
index 02b59147721..444862c5739 100644
--- a/nixos/doc/manual/release-notes/release-notes.xml
+++ b/nixos/doc/manual/release-notes/release-notes.xml
@@ -8,6 +8,7 @@
This section lists the release notes for each stable version of NixOS and
current unstable revision.
+
diff --git a/nixos/doc/manual/release-notes/rl-1909.xml b/nixos/doc/manual/release-notes/rl-1909.xml
index db462944300..4102fe206e1 100644
--- a/nixos/doc/manual/release-notes/rl-1909.xml
+++ b/nixos/doc/manual/release-notes/rl-1909.xml
@@ -3,7 +3,7 @@
xmlns:xi="http://www.w3.org/2001/XInclude"
version="5.0"
xml:id="sec-release-19.09">
- Release 19.09 (“Loris”, 2019/09/??)
+ Release 19.09 (“Loris”, 2019/10/09)
+
+
+ Nix has been updated to 2.3; see its
+ release
+ notes.
+
+
+
+ Core version changes:
+ systemd: 239 -> 243
+ gcc: 7 -> 8
+ glibc: 2.27 (unchanged)
+ linux: 4.19 LTS (unchanged)
+ openssl: 1.0 -> 1.1
+
+
+ Desktop version changes:
+ plasma5: 5.14 -> 5.16
+ gnome3: 3.30 -> 3.32
+
PHP now defaults to PHP 7.3, updated from 7.2.
@@ -170,6 +190,13 @@
+
+
+ has been added.
+ If you previously had blueman installed via environment.systemPackages please
+ migrate to using the NixOS module, as this would result in an insufficiently configured blueman.
+
+
@@ -449,8 +476,9 @@
- services.xserver.desktopManager.xterm is now disabled by default.
- It was not useful except for debugging purposes and was confusingly set as default in some circumstances.
+ services.xserver.desktopManager.xterm is now disabled by default if stateVersion is 19.09 or higher.
+ Previously the xterm desktopManager was enabled when xserver was enabled, but it isn't useful for all people so it didn't make sense to
+ have any desktopManager enabled default.
@@ -477,6 +505,92 @@
Prometheus 2 is now configured with services.prometheus .
+
+
+ Citrix Receiver (citrix_receiver ) has been dropped in favor of Citrix Workspace
+ (citrix_workspace ).
+
+
+
+
+ The services.gitlab module has had its literal secret options (services.gitlab.smtp.password ,
+ services.gitlab.databasePassword ,
+ services.gitlab.initialRootPassword ,
+ services.gitlab.secrets.secret ,
+ services.gitlab.secrets.db ,
+ services.gitlab.secrets.otp and
+ services.gitlab.secrets.jws ) replaced by file-based versions (services.gitlab.smtp.passwordFile ,
+ services.gitlab.databasePasswordFile ,
+ services.gitlab.initialRootPasswordFile ,
+ services.gitlab.secrets.secretFile ,
+ services.gitlab.secrets.dbFile ,
+ services.gitlab.secrets.otpFile and
+ services.gitlab.secrets.jwsFile ). This was done so that secrets aren't stored
+ in the world-readable nix store, but means that for each option you'll have to create a file with
+ the same exact string, add "File" to the end of the option name, and change the definition to a
+ string pointing to the corresponding file; e.g. services.gitlab.databasePassword = "supersecurepassword"
+ becomes services.gitlab.databasePasswordFile = "/path/to/secret_file" where the
+ file secret_file contains the string supersecurepassword .
+
+
+ The state path (services.gitlab.statePath ) now has the following restriction:
+ no parent directory can be owned by any other user than root or the user
+ specified in services.gitlab.user ; i.e. if services.gitlab.statePath
+ is set to /var/lib/gitlab/state , gitlab and all parent directories
+ must be owned by either root or the user specified in services.gitlab.user .
+
+
+
+
+ The networking.useDHCP option is unsupported in combination with
+ networking.useNetworkd in anticipation of defaulting to it.
+ It has to be set to false and enabled per
+ interface with networking.interfaces.<name>.useDHCP = true;
+
+
+
+
+ The Twitter client corebird has been dropped as it is discontinued and does not work against the new Twitter API.
+ Please use the fork cawbird instead which has been adapted to the API changes and is still maintained.
+
+
+
+
+ The nodejs-11_x package has been removed as it's EOLed by upstream.
+
+
+
+
+ Because of the systemd upgrade,
+ systemd-timesyncd will no longer work if
+ system.stateVersion is not set correctly. When
+ upgrading from NixOS 19.03, please make sure that
+ system.stateVersion is set to
+ "19.03" , or lower if the installation dates back to an
+ earlier version of NixOS.
+
+
+
+
+ Due to the short lifetime of non-LTS kernel releases package attributes like linux_5_1 ,
+ linux_5_2 and linux_5_3 have been removed to discourage dependence
+ on specific non-LTS kernel versions in stable NixOS releases.
+
+ Going forward, versioned attributes like linux_4_9 will exist for LTS versions only.
+ Please use linux_latest or linux_testing if you depend on non-LTS
+ releases. Keep in mind that linux_latest and linux_testing will
+ change versions under the hood during the lifetime of a stable release and might include breaking changes.
+
+
+
+
+ Because of the systemd upgrade,
+ some network interfaces might change their name. For details see
+
+ upstream docs or
+ our ticket.
+
+
@@ -675,7 +789,7 @@
- This also configures the kernel to pass coredumps to systemd-coredump ,
+ This also configures the kernel to pass core dumps to systemd-coredump ,
and restricts the SysRq key combinations to the sync command only.
These sysctl snippets can be found in /etc/sysctl.d/50-*.conf ,
and overridden via boot.kernel.sysctl
@@ -684,12 +798,15 @@
- Coredumps are now acquired by systemd-coredump by default.
- systemd-coredump behaviour can still be modified via
- systemd.coredump.extraConfig .
- To stick to the old behaviour (having the kernel dump to a file called core
- in the working directory), without piping it through systemd-coredump , set
- boot.kernel.sysctl."kernel.core_pattern" to "core" .
+ Core dumps are now processed by systemd-coredump
+ by default. systemd-coredump behaviour can
+ still be modified via
+ systemd.coredump.extraConfig . To stick to the
+ old behaviour (having the kernel dump to a file called
+ core in the working directory), without piping
+ it through systemd-coredump , set
+ systemd.coredump.enable to
+ false .
diff --git a/nixos/doc/manual/release-notes/rl-2003.xml b/nixos/doc/manual/release-notes/rl-2003.xml
new file mode 100644
index 00000000000..4980a99e646
--- /dev/null
+++ b/nixos/doc/manual/release-notes/rl-2003.xml
@@ -0,0 +1,213 @@
+
+ Release 20.03 (“Markhor”, 2020.03/??)
+
+
+ Highlights
+
+
+ In addition to numerous new and upgraded packages, this release has the
+ following highlights:
+
+
+
+
+
+ Support is planned until the end of October 2020, handing over to 20.09.
+
+
+
+
+ Postgresql for NixOS service now defaults to v11.
+
+
+
+
+ The graphical installer image starts the graphical session automatically.
+ Before you'd be greeted by a tty and asked to enter systemctl start display-manager .
+ It is now possible to disable the display-manager from running by selecting the Disable display-manager
+ quirk in the boot menu.
+
+
+
+
+ By default zfs pools will now be trimmed on a weekly basis.
+ Trimming is only done on supported devices (i.e. NVME or SSDs)
+ and should improve throughput and lifetime of these devices.
+ It is controlled by the services.zfs.trim.enable varname.
+ The zfs scrub service (services.zfs.autoScrub.enable )
+ and the zfs autosnapshot service (services.zfs.autoSnapshot.enable )
+ are now only enabled if zfs is set in config.boot.initrd.supportedFilesystems or
+ config.boot.supportedFilesystems . These lists will automatically contain
+ zfs as soon as any zfs mountpoint is configured in fileSystems .
+
+
+
+
+ nixos-option has been rewritten in C++, speeding it up, improving correctness,
+ and adding a --all option which prints all options and their values.
+
+
+
+
+
+
+ New Services
+
+
+ The following new services were added since the last release:
+
+
+
+
+
+ The kubernetes kube-proxy now supports a new hostname configuration
+ services.kubernetes.proxy.hostname which has to
+ be set if the hostname of the node should be non default.
+
+
+
+
+
+
+
+ Backward Incompatibilities
+
+
+ When upgrading from a previous release, please be aware of the following
+ incompatible changes:
+
+
+
+
+
+ GnuPG is now built without support for a graphical passphrase entry
+ by default. Please enable the gpg-agent user service
+ via the NixOS option programs.gnupg.agent.enable .
+ Note that upstream recommends using gpg-agent and
+ will spawn a gpg-agent on the first invocation of
+ GnuPG anyway.
+
+
+
+
+ The dynamicHosts option has been removed from the
+ networkd
+ module. Allowing (multiple) regular users to override host entries
+ affecting the whole system opens up a huge attack vector.
+ There seem to be very rare cases where this might be useful.
+ Consider setting system-wide host entries using
+ networking.hosts, provide
+ them via the DNS server in your network, or use
+ environment.etc
+ to add a file into /etc/NetworkManager/dnsmasq.d
+ reconfiguring hostsdir .
+
+
+
+
+ The 99-main.network file was removed. Maching all
+ network interfaces caused many breakages, see
+ #18962
+ and #71106.
+
+
+ We already don't support the global networking.useDHCP,
+ networking.defaultGateway and
+ networking.defaultGateway6 options
+ if networking.useNetworkd is enabled,
+ but direct users to configure the per-device
+ networking.interfaces.<name>.… options.
+
+
+
+
+ The stdenv now runs all bash with set -u , to catch the use of undefined variables.
+ Before, it itself used set -u but was careful to unset it so other packages' code ran as before.
+ Now, all bash code is held to the same high standard, and the rather complex stateful manipulation of the options can be discarded.
+
+
+
+
+ The SLIM Display Manager has been removed, as it has been unmaintained since 2013.
+ Consider migrating to a different display manager such as LightDM (current default in NixOS),
+ SDDM, GDM, or using the startx module which uses Xinitrc.
+
+
+
+
+ The BEAM package set has been deleted. You will only find there the different interpreters.
+ You should now use the different build tools coming with the languages with sandbox mode disabled.
+
+
+
+
+ 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).
+
+
+
+
+ The phpfpm module now sets
+ PrivateTmp=true in its systemd units for better process isolation.
+ If you rely on /tmp being shared with other services, explicitly override this by
+ setting serviceConfig.PrivateTmp to false for each phpfpm unit.
+
+
+
+
+ KDE’s old multimedia framework Phonon no longer supports Qt 4. For that reason, Plasma desktop also does not have enableQt4Support option any more.
+
+
+
+
+ The BeeGFS module has been removed.
+
+
+
+
+ The osquery module has been removed.
+
+
+
+
+
+
+ Other Notable Changes
+
+
+
+ SD images are now compressed by default using bzip2 .
+
+
+
+ OpenSSH has been upgraded from 7.9 to 8.1, improving security and adding features
+ but with potential incompatibilities. Consult the
+
+ release announcement for more information.
+
+
+
+
+
diff --git a/nixos/doc/xmlformat.conf b/nixos/doc/xmlformat.conf
index 4a565c8465b..c3f39c7fd81 100644
--- a/nixos/doc/xmlformat.conf
+++ b/nixos/doc/xmlformat.conf
@@ -37,7 +37,6 @@ para abstract
entry-break 1
exit-break 1
normalize yes
- wrap-length 79
title
format block
diff --git a/nixos/lib/make-iso9660-image.nix b/nixos/lib/make-iso9660-image.nix
index 8cd19b6e187..0f3f2b5b523 100644
--- a/nixos/lib/make-iso9660-image.nix
+++ b/nixos/lib/make-iso9660-image.nix
@@ -10,9 +10,9 @@
contents
, # In addition to `contents', the closure of the store paths listed
- # in `packages' are also placed in the Nix store of the CD. This is
- # a list of attribute sets {object, symlink} where `object' if a
- # store path whose closure will be copied, and `symlink' is a
+ # in `storeContents' are also placed in the Nix store of the CD.
+ # This is a list of attribute sets {object, symlink} where `object'
+ # is a store path whose closure will be copied, and `symlink' is a
# symlink to `object' that will be added to the CD.
storeContents ? []
diff --git a/nixos/lib/test-driver/test-driver.py b/nixos/lib/test-driver/test-driver.py
new file mode 100644
index 00000000000..0b8e3b67c9b
--- /dev/null
+++ b/nixos/lib/test-driver/test-driver.py
@@ -0,0 +1,828 @@
+#! /somewhere/python3
+from contextlib import contextmanager, _GeneratorContextManager
+from xml.sax.saxutils import XMLGenerator
+import _thread
+import atexit
+import json
+import os
+import ptpython.repl
+import pty
+from queue import Queue, Empty
+import re
+import shutil
+import socket
+import subprocess
+import sys
+import tempfile
+import time
+import unicodedata
+from typing import Tuple, TextIO, Any, Callable, Dict, Iterator, Optional, List
+
+CHAR_TO_KEY = {
+ "A": "shift-a",
+ "N": "shift-n",
+ "-": "0x0C",
+ "_": "shift-0x0C",
+ "B": "shift-b",
+ "O": "shift-o",
+ "=": "0x0D",
+ "+": "shift-0x0D",
+ "C": "shift-c",
+ "P": "shift-p",
+ "[": "0x1A",
+ "{": "shift-0x1A",
+ "D": "shift-d",
+ "Q": "shift-q",
+ "]": "0x1B",
+ "}": "shift-0x1B",
+ "E": "shift-e",
+ "R": "shift-r",
+ ";": "0x27",
+ ":": "shift-0x27",
+ "F": "shift-f",
+ "S": "shift-s",
+ "'": "0x28",
+ '"': "shift-0x28",
+ "G": "shift-g",
+ "T": "shift-t",
+ "`": "0x29",
+ "~": "shift-0x29",
+ "H": "shift-h",
+ "U": "shift-u",
+ "\\": "0x2B",
+ "|": "shift-0x2B",
+ "I": "shift-i",
+ "V": "shift-v",
+ ",": "0x33",
+ "<": "shift-0x33",
+ "J": "shift-j",
+ "W": "shift-w",
+ ".": "0x34",
+ ">": "shift-0x34",
+ "K": "shift-k",
+ "X": "shift-x",
+ "/": "0x35",
+ "?": "shift-0x35",
+ "L": "shift-l",
+ "Y": "shift-y",
+ " ": "spc",
+ "M": "shift-m",
+ "Z": "shift-z",
+ "\n": "ret",
+ "!": "shift-0x02",
+ "@": "shift-0x03",
+ "#": "shift-0x04",
+ "$": "shift-0x05",
+ "%": "shift-0x06",
+ "^": "shift-0x07",
+ "&": "shift-0x08",
+ "*": "shift-0x09",
+ "(": "shift-0x0A",
+ ")": "shift-0x0B",
+}
+
+# Forward references
+nr_tests: int
+nr_succeeded: int
+log: "Logger"
+machines: "List[Machine]"
+
+
+def eprint(*args: object, **kwargs: Any) -> None:
+ print(*args, file=sys.stderr, **kwargs)
+
+
+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))
+ pty_master, pty_slave = pty.openpty()
+ vde_process = subprocess.Popen(
+ ["vde_switch", "-s", vde_socket, "--dirmode", "0777"],
+ bufsize=1,
+ stdin=pty_slave,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE,
+ shell=False,
+ )
+ fd = os.fdopen(pty_master, "w")
+ fd.write("version\n")
+ # TODO: perl version checks if this can be read from
+ # an if not, dies. we could hang here forever. Fix it.
+ vde_process.stdout.readline()
+ if not os.path.exists(os.path.join(vde_socket, "ctl")):
+ raise Exception("cannot start vde_switch")
+
+ return (vlan_nr, vde_socket, vde_process, fd)
+
+
+def retry(fn: Callable) -> None:
+ """Call the given function repeatedly, with 1 second intervals,
+ until it returns True or a timeout is reached.
+ """
+
+ for _ in range(900):
+ if fn(False):
+ return
+ time.sleep(1)
+
+ if not fn(True):
+ raise Exception("action timed out")
+
+
+class Logger:
+ def __init__(self) -> None:
+ self.logfile = os.environ.get("LOGFILE", "/dev/null")
+ self.logfile_handle = open(self.logfile, "wb")
+ self.xml = XMLGenerator(self.logfile_handle, encoding="utf-8")
+ self.queue: "Queue[Dict[str, str]]" = Queue(1000)
+
+ self.xml.startDocument()
+ self.xml.startElement("logfile", attrs={})
+
+ def close(self) -> None:
+ self.xml.endElement("logfile")
+ self.xml.endDocument()
+ self.logfile_handle.close()
+
+ def sanitise(self, message: str) -> str:
+ return "".join(ch for ch in message if unicodedata.category(ch)[0] != "C")
+
+ def maybe_prefix(self, message: str, attributes: Dict[str, str]) -> str:
+ if "machine" in attributes:
+ return "{}: {}".format(attributes["machine"], message)
+ return message
+
+ def log_line(self, message: str, attributes: Dict[str, str]) -> None:
+ self.xml.startElement("line", attributes)
+ self.xml.characters(message)
+ self.xml.endElement("line")
+
+ def log(self, message: str, attributes: Dict[str, str] = {}) -> None:
+ eprint(self.maybe_prefix(message, attributes))
+ self.drain_log_queue()
+ self.log_line(message, attributes)
+
+ def enqueue(self, message: Dict[str, str]) -> None:
+ self.queue.put(message)
+
+ def drain_log_queue(self) -> None:
+ try:
+ while True:
+ item = self.queue.get_nowait()
+ attributes = {"machine": item["machine"], "type": "serial"}
+ self.log_line(self.sanitise(item["msg"]), attributes)
+ except Empty:
+ pass
+
+ @contextmanager
+ def nested(self, message: str, attributes: Dict[str, str] = {}) -> Iterator[None]:
+ eprint(self.maybe_prefix(message, attributes))
+
+ self.xml.startElement("nest", attrs={})
+ self.xml.startElement("head", attributes)
+ self.xml.characters(message)
+ self.xml.endElement("head")
+
+ tic = time.time()
+ self.drain_log_queue()
+ yield
+ self.drain_log_queue()
+ toc = time.time()
+ self.log("({:.2f} seconds)".format(toc - tic))
+
+ self.xml.endElement("nest")
+
+
+class Machine:
+ def __init__(self, args: Dict[str, Any]) -> None:
+ if "name" in args:
+ self.name = args["name"]
+ else:
+ self.name = "machine"
+ cmd = args.get("startCommand", None)
+ if cmd:
+ match = re.search("run-(.+)-vm$", cmd)
+ if match:
+ self.name = match.group(1)
+
+ self.script = args.get("startCommand", self.create_startcommand(args))
+
+ tmp_dir = os.environ.get("TMPDIR", tempfile.gettempdir())
+
+ def create_dir(name: str) -> str:
+ path = os.path.join(tmp_dir, name)
+ os.makedirs(path, mode=0o700, exist_ok=True)
+ return path
+
+ self.state_dir = create_dir("vm-state-{}".format(self.name))
+ self.shared_dir = create_dir("xchg-shared")
+
+ self.booted = False
+ self.connected = False
+ self.pid: Optional[int] = None
+ self.socket = None
+ self.monitor: Optional[socket.socket] = None
+ self.logger: Logger = args["log"]
+ self.allow_reboot = args.get("allowReboot", False)
+
+ @staticmethod
+ def create_startcommand(args: Dict[str, str]) -> str:
+ net_backend = "-netdev user,id=net0"
+ net_frontend = "-device virtio-net-pci,netdev=net0"
+
+ if "netBackendArgs" in args:
+ net_backend += "," + args["netBackendArgs"]
+
+ if "netFrontendArgs" in args:
+ net_frontend += "," + args["netFrontendArgs"]
+
+ start_command = (
+ "qemu-kvm -m 384 " + net_backend + " " + net_frontend + " $QEMU_OPTS "
+ )
+
+ if "hda" in args:
+ hda_path = os.path.abspath(args["hda"])
+ if args.get("hdaInterface", "") == "scsi":
+ start_command += (
+ "-drive id=hda,file="
+ + hda_path
+ + ",werror=report,if=none "
+ + "-device scsi-hd,drive=hda "
+ )
+ else:
+ start_command += (
+ "-drive file="
+ + hda_path
+ + ",if="
+ + args["hdaInterface"]
+ + ",werror=report "
+ )
+
+ if "cdrom" in args:
+ start_command += "-cdrom " + args["cdrom"] + " "
+
+ if "usb" in args:
+ start_command += (
+ "-device piix3-usb-uhci -drive "
+ + "id=usbdisk,file="
+ + args["usb"]
+ + ",if=none,readonly "
+ + "-device usb-storage,drive=usbdisk "
+ )
+ if "bios" in args:
+ start_command += "-bios " + args["bios"] + " "
+
+ start_command += args.get("qemuFlags", "")
+
+ return start_command
+
+ def is_up(self) -> bool:
+ return self.booted and self.connected
+
+ def log(self, msg: str) -> None:
+ self.logger.log(msg, {"machine": self.name})
+
+ def nested(self, msg: str, attrs: Dict[str, str] = {}) -> _GeneratorContextManager:
+ my_attrs = {"machine": self.name}
+ my_attrs.update(attrs)
+ return self.logger.nested(msg, my_attrs)
+
+ def wait_for_monitor_prompt(self) -> str:
+ assert self.monitor is not None
+ answer = ""
+ while True:
+ undecoded_answer = self.monitor.recv(1024)
+ if not undecoded_answer:
+ break
+ answer += undecoded_answer.decode()
+ if answer.endswith("(qemu) "):
+ break
+ return answer
+
+ def send_monitor_command(self, command: str) -> str:
+ message = ("{}\n".format(command)).encode()
+ self.log("sending monitor command: {}".format(command))
+ assert self.monitor is not None
+ self.monitor.send(message)
+ return self.wait_for_monitor_prompt()
+
+ def wait_for_unit(self, unit: str, user: Optional[str] = None) -> bool:
+ while True:
+ info = self.get_unit_info(unit, user)
+ state = info["ActiveState"]
+ if state == "failed":
+ raise Exception('unit "{}" reached state "{}"'.format(unit, state))
+
+ if state == "inactive":
+ status, jobs = self.systemctl("list-jobs --full 2>&1", user)
+ if "No jobs" in jobs:
+ info = self.get_unit_info(unit, user)
+ if info["ActiveState"] == state:
+ raise Exception(
+ (
+ 'unit "{}" is inactive and there ' "are no pending jobs"
+ ).format(unit)
+ )
+ if state == "active":
+ return True
+
+ def get_unit_info(self, unit: str, user: Optional[str] = None) -> Dict[str, str]:
+ status, lines = self.systemctl('--no-pager show "{}"'.format(unit), user)
+ if status != 0:
+ raise Exception(
+ 'retrieving systemctl info for unit "{}" {} failed with exit code {}'.format(
+ unit, "" if user is None else 'under user "{}"'.format(user), status
+ )
+ )
+
+ line_pattern = re.compile(r"^([^=]+)=(.*)$")
+
+ def tuple_from_line(line: str) -> Tuple[str, str]:
+ match = line_pattern.match(line)
+ assert match is not None
+ return match[1], match[2]
+
+ return dict(
+ tuple_from_line(line)
+ for line in lines.split("\n")
+ if line_pattern.match(line)
+ )
+
+ def systemctl(self, q: str, user: Optional[str] = None) -> Tuple[int, str]:
+ if user is not None:
+ q = q.replace("'", "\\'")
+ return self.execute(
+ (
+ "su -l {} -c "
+ "$'XDG_RUNTIME_DIR=/run/user/`id -u` "
+ "systemctl --user {}'"
+ ).format(user, q)
+ )
+ return self.execute("systemctl {}".format(q))
+
+ def require_unit_state(self, unit: str, require_state: str = "active") -> None:
+ with self.nested(
+ "checking if unit ‘{}’ has reached state '{}'".format(unit, require_state)
+ ):
+ info = self.get_unit_info(unit)
+ state = info["ActiveState"]
+ if state != require_state:
+ raise Exception(
+ "Expected unit ‘{}’ to to be in state ".format(unit)
+ + "'active' but it is in state ‘{}’".format(state)
+ )
+
+ def execute(self, command: str) -> Tuple[int, str]:
+ self.connect()
+
+ out_command = "( {} ); echo '|!EOF' $?\n".format(command)
+ self.shell.send(out_command.encode())
+
+ output = ""
+ status_code_pattern = re.compile(r"(.*)\|\!EOF\s+(\d+)")
+
+ while True:
+ chunk = self.shell.recv(4096).decode()
+ match = status_code_pattern.match(chunk)
+ if match:
+ output += match[1]
+ status_code = int(match[2])
+ return (status_code, output)
+ output += chunk
+
+ def succeed(self, *commands: str) -> str:
+ """Execute each command and check that it succeeds."""
+ output = ""
+ for command in commands:
+ with self.nested("must succeed: {}".format(command)):
+ (status, out) = self.execute(command)
+ if status != 0:
+ self.log("output: {}".format(out))
+ raise Exception(
+ "command `{}` failed (exit code {})".format(command, status)
+ )
+ output += out
+ return output
+
+ def fail(self, *commands: str) -> None:
+ """Execute each command and check that it fails."""
+ for command in commands:
+ with self.nested("must fail: {}".format(command)):
+ status, output = self.execute(command)
+ if status == 0:
+ raise Exception(
+ "command `{}` unexpectedly succeeded".format(command)
+ )
+
+ def wait_until_succeeds(self, command: str) -> str:
+ with self.nested("waiting for success: {}".format(command)):
+ while True:
+ status, output = self.execute(command)
+ if status == 0:
+ return output
+
+ def wait_until_fails(self, command: str) -> str:
+ with self.nested("waiting for failure: {}".format(command)):
+ while True:
+ status, output = self.execute(command)
+ if status != 0:
+ return output
+
+ def wait_for_shutdown(self) -> None:
+ if not self.booted:
+ return
+
+ with self.nested("waiting for the VM to power off"):
+ sys.stdout.flush()
+ self.process.wait()
+
+ self.pid = None
+ self.booted = False
+ self.connected = False
+
+ def get_tty_text(self, tty: str) -> str:
+ status, output = self.execute(
+ "fold -w$(stty -F /dev/tty{0} size | "
+ "awk '{{print $2}}') /dev/vcs{0}".format(tty)
+ )
+ return output
+
+ def wait_until_tty_matches(self, tty: str, regexp: str) -> bool:
+ matcher = re.compile(regexp)
+ with self.nested("waiting for {} to appear on tty {}".format(regexp, tty)):
+ while True:
+ text = self.get_tty_text(tty)
+ if len(matcher.findall(text)) > 0:
+ return True
+
+ def send_chars(self, chars: List[str]) -> None:
+ with self.nested("sending keys ‘{}‘".format(chars)):
+ for char in chars:
+ self.send_key(char)
+
+ def wait_for_file(self, filename: str) -> bool:
+ with self.nested("waiting for file ‘{}‘".format(filename)):
+ while True:
+ status, _ = self.execute("test -e {}".format(filename))
+ if status == 0:
+ return True
+
+ def wait_for_open_port(self, port: int) -> None:
+ def port_is_open(_: Any) -> bool:
+ status, _ = self.execute("nc -z localhost {}".format(port))
+ return status == 0
+
+ with self.nested("waiting for TCP port {}".format(port)):
+ retry(port_is_open)
+
+ def wait_for_closed_port(self, port: int) -> None:
+ def port_is_closed(_: Any) -> bool:
+ status, _ = self.execute("nc -z localhost {}".format(port))
+ return status != 0
+
+ retry(port_is_closed)
+
+ def start_job(self, jobname: str, user: Optional[str] = None) -> Tuple[int, str]:
+ return self.systemctl("start {}".format(jobname), user)
+
+ def stop_job(self, jobname: str, user: Optional[str] = None) -> Tuple[int, str]:
+ return self.systemctl("stop {}".format(jobname), user)
+
+ def wait_for_job(self, jobname: str) -> bool:
+ return self.wait_for_unit(jobname)
+
+ def connect(self) -> None:
+ if self.connected:
+ return
+
+ with self.nested("waiting for the VM to finish booting"):
+ self.start()
+
+ tic = time.time()
+ self.shell.recv(1024)
+ # TODO: Timeout
+ toc = time.time()
+
+ self.log("connected to guest root shell")
+ self.log("(connecting took {:.2f} seconds)".format(toc - tic))
+ self.connected = True
+
+ def screenshot(self, filename: str) -> None:
+ out_dir = os.environ.get("out", os.getcwd())
+ word_pattern = re.compile(r"^\w+$")
+ if word_pattern.match(filename):
+ filename = os.path.join(out_dir, "{}.png".format(filename))
+ tmp = "{}.ppm".format(filename)
+
+ with self.nested(
+ "making screenshot {}".format(filename),
+ {"image": os.path.basename(filename)},
+ ):
+ self.send_monitor_command("screendump {}".format(tmp))
+ ret = subprocess.run("pnmtopng {} > {}".format(tmp, filename), shell=True)
+ os.unlink(tmp)
+ if ret.returncode != 0:
+ raise Exception("Cannot convert screenshot")
+
+ def dump_tty_contents(self, tty: str) -> None:
+ """Debugging: Dump the contents of the TTY
+ """
+ self.execute("fold -w 80 /dev/vcs{} | systemd-cat".format(tty))
+
+ def get_screen_text(self) -> str:
+ if shutil.which("tesseract") is None:
+ raise Exception("get_screen_text used but enableOCR is false")
+
+ magick_args = (
+ "-filter Catrom -density 72 -resample 300 "
+ + "-contrast -normalize -despeckle -type grayscale "
+ + "-sharpen 1 -posterize 3 -negate -gamma 100 "
+ + "-blur 1x65535"
+ )
+
+ tess_args = "-c debug_file=/dev/null --psm 11 --oem 2"
+
+ with self.nested("performing optical character recognition"):
+ with tempfile.NamedTemporaryFile() as tmpin:
+ self.send_monitor_command("screendump {}".format(tmpin.name))
+
+ cmd = "convert {} {} tiff:- | tesseract - - {}".format(
+ magick_args, tmpin.name, tess_args
+ )
+ ret = subprocess.run(cmd, shell=True, capture_output=True)
+ if ret.returncode != 0:
+ raise Exception(
+ "OCR failed with exit code {}".format(ret.returncode)
+ )
+
+ return ret.stdout.decode("utf-8")
+
+ def wait_for_text(self, regex: str) -> None:
+ def screen_matches(last: bool) -> bool:
+ text = self.get_screen_text()
+ matches = re.search(regex, text) is not None
+
+ if last and not matches:
+ self.log("Last OCR attempt failed. Text was: {}".format(text))
+
+ return matches
+
+ with self.nested("waiting for {} to appear on screen".format(regex)):
+ retry(screen_matches)
+
+ def send_key(self, key: str) -> None:
+ key = CHAR_TO_KEY.get(key, key)
+ self.send_monitor_command("sendkey {}".format(key))
+
+ def start(self) -> None:
+ if self.booted:
+ return
+
+ self.log("starting vm")
+
+ def create_socket(path: str) -> socket.socket:
+ if os.path.exists(path):
+ os.unlink(path)
+ s = socket.socket(family=socket.AF_UNIX, type=socket.SOCK_STREAM)
+ s.bind(path)
+ s.listen(1)
+ return s
+
+ monitor_path = os.path.join(self.state_dir, "monitor")
+ self.monitor_socket = create_socket(monitor_path)
+
+ shell_path = os.path.join(self.state_dir, "shell")
+ self.shell_socket = create_socket(shell_path)
+
+ qemu_options = (
+ " ".join(
+ [
+ "" if self.allow_reboot else "-no-reboot",
+ "-monitor unix:{}".format(monitor_path),
+ "-chardev socket,id=shell,path={}".format(shell_path),
+ "-device virtio-serial",
+ "-device virtconsole,chardev=shell",
+ "-device virtio-rng-pci",
+ "-serial stdio" if "DISPLAY" in os.environ else "-nographic",
+ ]
+ )
+ + " "
+ + os.environ.get("QEMU_OPTS", "")
+ )
+
+ environment = dict(os.environ)
+ environment.update(
+ {
+ "TMPDIR": self.state_dir,
+ "SHARED_DIR": self.shared_dir,
+ "USE_TMPDIR": "1",
+ "QEMU_OPTS": qemu_options,
+ }
+ )
+
+ self.process = subprocess.Popen(
+ self.script,
+ bufsize=1,
+ stdin=subprocess.DEVNULL,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT,
+ shell=True,
+ cwd=self.state_dir,
+ env=environment,
+ )
+ self.monitor, _ = self.monitor_socket.accept()
+ self.shell, _ = self.shell_socket.accept()
+
+ def process_serial_output() -> None:
+ for _line in self.process.stdout:
+ line = _line.decode("unicode_escape").replace("\r", "").rstrip()
+ eprint("{} # {}".format(self.name, line))
+ self.logger.enqueue({"msg": line, "machine": self.name})
+
+ _thread.start_new_thread(process_serial_output, ())
+
+ self.wait_for_monitor_prompt()
+
+ self.pid = self.process.pid
+ self.booted = True
+
+ self.log("QEMU running (pid {})".format(self.pid))
+
+ def shutdown(self) -> None:
+ if not self.booted:
+ return
+
+ self.shell.send("poweroff\n".encode())
+ self.wait_for_shutdown()
+
+ def crash(self) -> None:
+ if not self.booted:
+ return
+
+ self.log("forced crash")
+ self.send_monitor_command("quit")
+ self.wait_for_shutdown()
+
+ def wait_for_x(self) -> None:
+ """Wait until it is possible to connect to the X server. Note that
+ testing the existence of /tmp/.X11-unix/X0 is insufficient.
+ """
+ with self.nested("waiting for the X11 server"):
+ while True:
+ cmd = (
+ "journalctl -b SYSLOG_IDENTIFIER=systemd | "
+ + 'grep "Reached target Current graphical"'
+ )
+ status, _ = self.execute(cmd)
+ if status != 0:
+ continue
+ status, _ = self.execute("[ -e /tmp/.X11-unix/X0 ]")
+ if status == 0:
+ return
+
+ def get_window_names(self) -> List[str]:
+ return self.succeed(
+ r"xwininfo -root -tree | sed 's/.*0x[0-9a-f]* \"\([^\"]*\)\".*/\1/; t; d'"
+ ).splitlines()
+
+ def wait_for_window(self, regexp: str) -> None:
+ pattern = re.compile(regexp)
+
+ def window_is_visible(last_try: bool) -> bool:
+ names = self.get_window_names()
+ if last_try:
+ self.log(
+ "Last chance to match {} on the window list,".format(regexp)
+ + " which currently contains: "
+ + ", ".join(names)
+ )
+ return any(pattern.search(name) for name in names)
+
+ with self.nested("Waiting for a window to appear"):
+ retry(window_is_visible)
+
+ def sleep(self, secs: int) -> None:
+ time.sleep(secs)
+
+ def forward_port(self, host_port: int = 8080, guest_port: int = 80) -> None:
+ """Forward a TCP port on the host to a TCP port on the guest.
+ Useful during interactive testing.
+ """
+ self.send_monitor_command(
+ "hostfwd_add tcp::{}-:{}".format(host_port, guest_port)
+ )
+
+ def block(self) -> None:
+ """Make the machine unreachable by shutting down eth1 (the multicast
+ interface used to talk to the other VMs). We keep eth0 up so that
+ the test driver can continue to talk to the machine.
+ """
+ self.send_monitor_command("set_link virtio-net-pci.1 off")
+
+ def unblock(self) -> None:
+ """Make the machine reachable.
+ """
+ self.send_monitor_command("set_link virtio-net-pci.1 on")
+
+
+def create_machine(args: Dict[str, Any]) -> Machine:
+ global log
+ args["log"] = log
+ args["redirectSerial"] = os.environ.get("USE_SERIAL", "0") == "1"
+ return Machine(args)
+
+
+def start_all() -> None:
+ global machines
+ with log.nested("starting all VMs"):
+ for machine in machines:
+ machine.start()
+
+
+def join_all() -> None:
+ global machines
+ with log.nested("waiting for all VMs to finish"):
+ for machine in machines:
+ machine.wait_for_shutdown()
+
+
+def test_script() -> None:
+ exec(os.environ["testScript"])
+
+
+def run_tests() -> None:
+ global machines
+ tests = os.environ.get("tests", None)
+ if tests is not None:
+ with log.nested("running the VM test script"):
+ try:
+ exec(tests, globals())
+ except Exception as e:
+ eprint("error: {}".format(str(e)))
+ sys.exit(1)
+ else:
+ ptpython.repl.embed(locals(), globals())
+
+ # TODO: Collect coverage data
+
+ for machine in machines:
+ if machine.is_up():
+ machine.execute("sync")
+
+ if nr_tests != 0:
+ log.log("{} out of {} tests succeeded".format(nr_succeeded, nr_tests))
+
+
+@contextmanager
+def subtest(name: str) -> Iterator[None]:
+ global nr_tests
+ global nr_succeeded
+
+ with log.nested(name):
+ nr_tests += 1
+ try:
+ yield
+ nr_succeeded += 1
+ return True
+ except Exception as e:
+ log.log("error: {}".format(str(e)))
+
+ return False
+
+
+if __name__ == "__main__":
+ log = Logger()
+
+ vlan_nrs = list(dict.fromkeys(os.environ["VLANS"].split()))
+ vde_sockets = [create_vlan(v) for v in vlan_nrs]
+ for nr, vde_socket, _, _ in vde_sockets:
+ os.environ["QEMU_VDE_SOCKET_{}".format(nr)] = vde_socket
+
+ vm_scripts = sys.argv[1:]
+ machines = [create_machine({"startCommand": s}) for s in vm_scripts]
+ machine_eval = [
+ "{0} = machines[{1}]".format(m.name, idx) for idx, m in enumerate(machines)
+ ]
+ exec("\n".join(machine_eval))
+
+ nr_tests = 0
+ nr_succeeded = 0
+
+ @atexit.register
+ def clean_up() -> None:
+ with log.nested("cleaning up"):
+ for machine in machines:
+ if machine.pid is None:
+ continue
+ log.log("killing {} (pid {})".format(machine.name, machine.pid))
+ machine.process.kill()
+
+ for _, _, process, _ in vde_sockets:
+ process.kill()
+ log.close()
+
+ tic = time.time()
+ run_tests()
+ toc = time.time()
+ print("test script finished in {:.2f}s".format(toc - tic))
diff --git a/nixos/lib/testing-python.nix b/nixos/lib/testing-python.nix
new file mode 100644
index 00000000000..d567d268765
--- /dev/null
+++ b/nixos/lib/testing-python.nix
@@ -0,0 +1,281 @@
+{ system
+, pkgs ? import ../.. { inherit system config; }
+ # Use a minimal kernel?
+, minimal ? false
+ # Ignored
+, config ? {}
+ # Modules to add to each VM
+, extraConfigurations ? [] }:
+
+with import ./build-vms.nix { inherit system pkgs minimal extraConfigurations; };
+with pkgs;
+
+let
+ jquery-ui = callPackage ./testing/jquery-ui.nix { };
+ jquery = callPackage ./testing/jquery.nix { };
+
+in rec {
+
+ inherit pkgs;
+
+
+ testDriver = let
+ testDriverScript = ./test-driver/test-driver.py;
+ in stdenv.mkDerivation {
+ name = "nixos-test-driver";
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ (python3.withPackages (p: [ p.ptpython ])) ];
+ checkInputs = with python3Packages; [ pylint black mypy ];
+
+ dontUnpack = true;
+
+ preferLocalBuild = true;
+
+ doCheck = true;
+ checkPhase = ''
+ mypy --disallow-untyped-defs \
+ --no-implicit-optional \
+ --ignore-missing-imports ${testDriverScript}
+ pylint --errors-only ${testDriverScript}
+ black --check --diff ${testDriverScript}
+ '';
+
+ installPhase =
+ ''
+ mkdir -p $out/bin
+ cp ${testDriverScript} $out/bin/nixos-test-driver
+ chmod u+x $out/bin/nixos-test-driver
+ # TODO: copy user script part into this file (append)
+
+ wrapProgram $out/bin/nixos-test-driver \
+ --prefix PATH : "${lib.makeBinPath [ qemu_test vde2 netpbm coreutils ]}" \
+ '';
+ };
+
+
+ # Run an automated test suite in the given virtual network.
+ # `driver' is the script that runs the network.
+ runTests = driver:
+ stdenv.mkDerivation {
+ name = "vm-test-run-${driver.testName}";
+
+ requiredSystemFeatures = [ "kvm" "nixos-test" ];
+
+ buildInputs = [ libxslt ];
+
+ buildCommand =
+ ''
+ mkdir -p $out/nix-support
+
+ LOGFILE=$out/log.xml tests='exec(os.environ["testScript"])' ${driver}/bin/nixos-test-driver
+
+ # Generate a pretty-printed log.
+ xsltproc --output $out/log.html ${./test-driver/log2html.xsl} $out/log.xml
+ ln -s ${./test-driver/logfile.css} $out/logfile.css
+ ln -s ${./test-driver/treebits.js} $out/treebits.js
+ ln -s ${jquery}/js/jquery.min.js $out/
+ ln -s ${jquery}/js/jquery.js $out/
+ ln -s ${jquery-ui}/js/jquery-ui.min.js $out/
+ ln -s ${jquery-ui}/js/jquery-ui.js $out/
+
+ touch $out/nix-support/hydra-build-products
+ echo "report testlog $out log.html" >> $out/nix-support/hydra-build-products
+
+ for i in */xchg/coverage-data; do
+ mkdir -p $out/coverage-data
+ mv $i $out/coverage-data/$(dirname $(dirname $i))
+ done
+ '';
+ };
+
+
+ makeTest =
+ { testScript
+ , makeCoverageReport ? false
+ , enableOCR ? false
+ , name ? "unnamed"
+ , ...
+ } @ t:
+
+ let
+ # A standard store path to the vm monitor is built like this:
+ # /tmp/nix-build-vm-test-run-$name.drv-0/vm-state-machine/monitor
+ # The max filename length of a unix domain socket is 108 bytes.
+ # This means $name can at most be 50 bytes long.
+ maxTestNameLen = 50;
+ testNameLen = builtins.stringLength name;
+
+ testDriverName = with builtins;
+ if testNameLen > maxTestNameLen then
+ abort ("The name of the test '${name}' must not be longer than ${toString maxTestNameLen} " +
+ "it's currently ${toString testNameLen} characters long.")
+ else
+ "nixos-test-driver-${name}";
+
+ nodes = buildVirtualNetwork (
+ t.nodes or (if t ? machine then { machine = t.machine; } else { }));
+
+ testScript' =
+ # Call the test script with the computed nodes.
+ if lib.isFunction testScript
+ then testScript { inherit nodes; }
+ else testScript;
+
+ vlans = map (m: m.config.virtualisation.vlans) (lib.attrValues nodes);
+
+ vms = map (m: m.config.system.build.vm) (lib.attrValues nodes);
+
+ ocrProg = tesseract4.override { enableLanguages = [ "eng" ]; };
+
+ imagemagick_tiff = imagemagick_light.override { inherit libtiff; };
+
+ # Generate onvenience wrappers for running the test driver
+ # interactively with the specified network, and for starting the
+ # VMs from the command line.
+ driver = runCommand testDriverName
+ { buildInputs = [ makeWrapper];
+ testScript = testScript';
+ preferLocalBuild = true;
+ testName = name;
+ }
+ ''
+ mkdir -p $out/bin
+
+ echo -n "$testScript" > $out/test-script
+ ${python3Packages.black}/bin/black --check --diff $out/test-script
+
+ ln -s ${testDriver}/bin/nixos-test-driver $out/bin/
+ vms=($(for i in ${toString vms}; do echo $i/bin/run-*-vm; done))
+ wrapProgram $out/bin/nixos-test-driver \
+ --add-flags "''${vms[*]}" \
+ ${lib.optionalString enableOCR
+ "--prefix PATH : '${ocrProg}/bin:${imagemagick_tiff}/bin'"} \
+ --run "export testScript=\"\$(cat $out/test-script)\"" \
+ --set VLANS '${toString vlans}'
+ ln -s ${testDriver}/bin/nixos-test-driver $out/bin/nixos-run-vms
+ wrapProgram $out/bin/nixos-run-vms \
+ --add-flags "''${vms[*]}" \
+ ${lib.optionalString enableOCR "--prefix PATH : '${ocrProg}/bin'"} \
+ --set tests 'start_all(); join_all();' \
+ --set VLANS '${toString vlans}' \
+ ${lib.optionalString (builtins.length vms == 1) "--set USE_SERIAL 1"}
+ ''; # "
+
+ passMeta = drv: drv // lib.optionalAttrs (t ? meta) {
+ meta = (drv.meta or {}) // t.meta;
+ };
+
+ test = passMeta (runTests driver);
+ report = passMeta (releaseTools.gcovReport { coverageRuns = [ test ]; });
+
+ nodeNames = builtins.attrNames nodes;
+ invalidNodeNames = lib.filter
+ (node: builtins.match "^[A-z_][A-z0-9_]+$" node == null) nodeNames;
+
+ in
+ if lib.length invalidNodeNames > 0 then
+ throw ''
+ Cannot create machines out of (${lib.concatStringsSep ", " invalidNodeNames})!
+ All machines are referenced as perl variables in the testing framework which will break the
+ script when special characters are used.
+
+ Please stick to alphanumeric chars and underscores as separation.
+ ''
+ else
+ (if makeCoverageReport then report else test) // {
+ inherit nodes driver test;
+ };
+
+ runInMachine =
+ { drv
+ , machine
+ , preBuild ? ""
+ , postBuild ? ""
+ , ... # ???
+ }:
+ let
+ vm = buildVM { }
+ [ machine
+ { key = "run-in-machine";
+ networking.hostName = "client";
+ nix.readOnlyStore = false;
+ virtualisation.writableStore = false;
+ }
+ ];
+
+ buildrunner = writeText "vm-build" ''
+ source $1
+
+ ${coreutils}/bin/mkdir -p $TMPDIR
+ cd $TMPDIR
+
+ exec $origBuilder $origArgs
+ '';
+
+ testScript = ''
+ startAll;
+ $client->waitForUnit("multi-user.target");
+ ${preBuild}
+ $client->succeed("env -i ${bash}/bin/bash ${buildrunner} /tmp/xchg/saved-env >&2");
+ ${postBuild}
+ $client->succeed("sync"); # flush all data before pulling the plug
+ '';
+
+ vmRunCommand = writeText "vm-run" ''
+ xchg=vm-state-client/xchg
+ ${coreutils}/bin/mkdir $out
+ ${coreutils}/bin/mkdir -p $xchg
+
+ for i in $passAsFile; do
+ i2=''${i}Path
+ _basename=$(${coreutils}/bin/basename ''${!i2})
+ ${coreutils}/bin/cp ''${!i2} $xchg/$_basename
+ eval $i2=/tmp/xchg/$_basename
+ ${coreutils}/bin/ls -la $xchg
+ done
+
+ unset i i2 _basename
+ export | ${gnugrep}/bin/grep -v '^xchg=' > $xchg/saved-env
+ unset xchg
+
+ export tests='${testScript}'
+ ${testDriver}/bin/nixos-test-driver ${vm.config.system.build.vm}/bin/run-*-vm
+ ''; # */
+
+ in
+ lib.overrideDerivation drv (attrs: {
+ requiredSystemFeatures = [ "kvm" ];
+ builder = "${bash}/bin/sh";
+ args = ["-e" vmRunCommand];
+ origArgs = attrs.args;
+ origBuilder = attrs.builder;
+ });
+
+
+ runInMachineWithX = { require ? [], ... } @ args:
+ let
+ client =
+ { ... }:
+ {
+ inherit require;
+ virtualisation.memorySize = 1024;
+ services.xserver.enable = true;
+ services.xserver.displayManager.auto.enable = true;
+ services.xserver.windowManager.default = "icewm";
+ services.xserver.windowManager.icewm.enable = true;
+ services.xserver.desktopManager.default = "none";
+ };
+ in
+ runInMachine ({
+ machine = client;
+ preBuild =
+ ''
+ $client->waitForX;
+ '';
+ } // args);
+
+
+ simpleTest = as: (makeTest as).test;
+
+}
diff --git a/nixos/lib/testing.nix b/nixos/lib/testing.nix
index 76706877103..a5f060a8d8e 100644
--- a/nixos/lib/testing.nix
+++ b/nixos/lib/testing.nix
@@ -248,7 +248,6 @@ in rec {
inherit require;
virtualisation.memorySize = 1024;
services.xserver.enable = true;
- services.xserver.displayManager.slim.enable = false;
services.xserver.displayManager.auto.enable = true;
services.xserver.windowManager.default = "icewm";
services.xserver.windowManager.icewm.enable = true;
diff --git a/nixos/maintainers/scripts/ec2/create-amis.sh b/nixos/maintainers/scripts/ec2/create-amis.sh
index c4149e3e8ff..5dc1c5aaed5 100755
--- a/nixos/maintainers/scripts/ec2/create-amis.sh
+++ b/nixos/maintainers/scripts/ec2/create-amis.sh
@@ -14,7 +14,7 @@
set -euo pipefail
# configuration
-state_dir=/home/deploy/amis/ec2-images
+state_dir=$HOME/amis/ec2-images
home_region=eu-west-1
bucket=nixos-amis
@@ -211,11 +211,11 @@ upload_image() {
log "Registering snapshot $snapshot_id as AMI"
local block_device_mappings=(
- "DeviceName=/dev/sda1,Ebs={SnapshotId=$snapshot_id,VolumeSize=$image_logical_gigabytes,DeleteOnTermination=true,VolumeType=gp2}"
+ "DeviceName=/dev/xvda,Ebs={SnapshotId=$snapshot_id,VolumeSize=$image_logical_gigabytes,DeleteOnTermination=true,VolumeType=gp2}"
)
local extra_flags=(
- --root-device-name /dev/sda1
+ --root-device-name /dev/xvda
--sriov-net-support simple
--ena-support
--virtualization-type hvm
diff --git a/nixos/maintainers/scripts/gce/create-gce.sh b/nixos/maintainers/scripts/gce/create-gce.sh
index 48748a59d29..77cc64e591e 100755
--- a/nixos/maintainers/scripts/gce/create-gce.sh
+++ b/nixos/maintainers/scripts/gce/create-gce.sh
@@ -15,7 +15,7 @@ nix-build '' \
-j 10
img_path=$(echo gce/*.tar.gz)
-img_name=$(basename "$img_path")
+img_name=${IMAGE_NAME:-$(basename "$img_path")}
img_id=$(echo "$img_name" | sed 's|.raw.tar.gz$||;s|\.|-|g;s|_|-|g')
if ! gsutil ls "gs://${BUCKET_NAME}/$img_name"; then
gsutil cp "$img_path" "gs://${BUCKET_NAME}/$img_name"
diff --git a/nixos/modules/config/fonts/corefonts.nix b/nixos/modules/config/fonts/corefonts.nix
deleted file mode 100644
index b9f69879a10..00000000000
--- a/nixos/modules/config/fonts/corefonts.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-# This module is deprecated, since you can just say ‘fonts.fonts = [
-# pkgs.corefonts ];’ instead.
-
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-{
-
- options = {
-
- fonts = {
-
- enableCoreFonts = mkOption {
- visible = false;
- default = false;
- description = ''
- Whether to include Microsoft's proprietary Core Fonts. These fonts
- are redistributable, but only verbatim, among other restrictions.
- See
- for details.
- '';
- };
-
- };
-
- };
-
-
- config = mkIf config.fonts.enableCoreFonts {
-
- fonts.fonts = [ pkgs.corefonts ];
-
- };
-
-}
diff --git a/nixos/modules/config/fonts/fontconfig-ultimate.nix b/nixos/modules/config/fonts/fontconfig-ultimate.nix
deleted file mode 100644
index 84d90899dff..00000000000
--- a/nixos/modules/config/fonts/fontconfig-ultimate.nix
+++ /dev/null
@@ -1,86 +0,0 @@
-{ config, pkgs, lib, ... }:
-
-with lib;
-
-let cfg = config.fonts.fontconfig.ultimate;
-
- latestVersion = pkgs.fontconfig.configVersion;
-
- # The configuration to be included in /etc/font/
- confPkg = pkgs.runCommand "font-ultimate-conf" { preferLocalBuild = true; } ''
- support_folder=$out/etc/fonts/conf.d
- latest_folder=$out/etc/fonts/${latestVersion}/conf.d
-
- mkdir -p $support_folder
- mkdir -p $latest_folder
-
- # fontconfig ultimate substitutions
- ${optionalString (cfg.substitutions != "none") ''
- ln -s ${pkgs.fontconfig-ultimate}/etc/fonts/presets/${cfg.substitutions}/*.conf \
- $support_folder
- ln -s ${pkgs.fontconfig-ultimate}/etc/fonts/presets/${cfg.substitutions}/*.conf \
- $latest_folder
- ''}
-
- # fontconfig ultimate various configuration files
- ln -s ${pkgs.fontconfig-ultimate}/etc/fonts/conf.d/*.conf \
- $support_folder
- ln -s ${pkgs.fontconfig-ultimate}/etc/fonts/conf.d/*.conf \
- $latest_folder
- '';
-
-in
-{
-
- options = {
-
- fonts = {
-
- fontconfig = {
-
- ultimate = {
- enable = mkOption {
- type = types.bool;
- default = false;
- description = ''
- Enable fontconfig-ultimate settings (formerly known as
- Infinality). Besides the customizable settings in this NixOS
- module, fontconfig-ultimate also provides many font-specific
- rendering tweaks.
- '';
- };
-
- substitutions = mkOption {
- type = types.enum ["free" "combi" "ms" "none"];
- default = "free";
- description = ''
- Font substitutions to replace common Type 1 fonts with nicer
- TrueType fonts. free uses free fonts,
- ms uses Microsoft fonts,
- combi uses a combination, and
- none disables the substitutions.
- '';
- };
-
- preset = mkOption {
- type = types.enum ["ultimate1" "ultimate2" "ultimate3" "ultimate4" "ultimate5" "osx" "windowsxp"];
- default = "ultimate3";
- description = ''
- FreeType rendering settings preset. Any of the presets may be
- customized by setting environment variables.
- '';
- };
- };
- };
- };
-
- };
-
- config = mkIf (config.fonts.fontconfig.enable && cfg.enable) {
-
- fonts.fontconfig.confPackages = [ confPkg ];
- environment.variables.INFINALITY_FT = cfg.preset;
-
- };
-
-}
diff --git a/nixos/modules/config/i18n.nix b/nixos/modules/config/i18n.nix
index dc7305b1ba2..d0db8fedecd 100644
--- a/nixos/modules/config/i18n.nix
+++ b/nixos/modules/config/i18n.nix
@@ -89,11 +89,7 @@ with lib;
};
consoleKeyMap = mkOption {
- type = mkOptionType {
- name = "string or path";
- check = t: (isString t || types.path.check t);
- };
-
+ type = with types; either str path;
default = "us";
example = "fr";
description = ''
diff --git a/nixos/modules/config/no-x-libs.nix b/nixos/modules/config/no-x-libs.nix
index 74cf74d7418..873b8073fed 100644
--- a/nixos/modules/config/no-x-libs.nix
+++ b/nixos/modules/config/no-x-libs.nix
@@ -34,7 +34,6 @@ with lib;
networkmanager-openvpn = super.networkmanager-openvpn.override { withGnome = false; };
networkmanager-vpnc = super.networkmanager-vpnc.override { withGnome = false; };
networkmanager-iodine = super.networkmanager-iodine.override { withGnome = false; };
- pinentry = super.pinentry.override { gtk2 = null; gcr = null; qt4 = null; qt5 = null; };
gobject-introspection = super.gobject-introspection.override { x11Support = false; };
}));
};
diff --git a/nixos/modules/config/pulseaudio.nix b/nixos/modules/config/pulseaudio.nix
index 5c3e3930258..9baad9b5854 100644
--- a/nixos/modules/config/pulseaudio.nix
+++ b/nixos/modules/config/pulseaudio.nix
@@ -51,8 +51,7 @@ let
# that we can disable the autospawn feature in programs that
# are built with PulseAudio support (like KDE).
clientConf = writeText "client.conf" ''
- autospawn=${if nonSystemWide then "yes" else "no"}
- ${optionalString nonSystemWide "daemon-binary=${binary}"}
+ autospawn=no
${cfg.extraClientConf}
'';
@@ -99,11 +98,12 @@ in {
description = ''
If false, a PulseAudio server is launched automatically for
each user that tries to use the sound system. The server runs
- with user privileges. This is the recommended and most secure
- way to use PulseAudio. If true, one system-wide PulseAudio
+ with user privileges. If true, one system-wide PulseAudio
server is launched on boot, running as the user "pulse", and
only users in the "audio" group will have access to the server.
Please read the PulseAudio documentation for more details.
+
+ Don't enable this option unless you know what you are doing.
'';
};
diff --git a/nixos/modules/config/qt5.nix b/nixos/modules/config/qt5.nix
index 7de1c0f5d55..d9dec74f155 100644
--- a/nixos/modules/config/qt5.nix
+++ b/nixos/modules/config/qt5.nix
@@ -10,7 +10,7 @@ let
isQtStyle = cfg.platformTheme == "gtk2" && cfg.style != "adwaita";
packages = if isQGnome then [ pkgs.qgnomeplatform pkgs.adwaita-qt ]
- else if isQtStyle then [ pkgs.qtstyleplugins ]
+ else if isQtStyle then [ pkgs.libsForQt5.qtstyleplugins ]
else throw "`qt5.platformTheme` ${cfg.platformTheme} and `qt5.style` ${cfg.style} are not compatible.";
in
diff --git a/nixos/modules/config/shells-environment.nix b/nixos/modules/config/shells-environment.nix
index 9dfc1add829..b79e16cd797 100644
--- a/nixos/modules/config/shells-environment.nix
+++ b/nixos/modules/config/shells-environment.nix
@@ -118,6 +118,14 @@ in
type = with types; attrsOf (nullOr (either str path));
};
+ environment.homeBinInPath = mkOption {
+ description = ''
+ Include ~/bin/ in $PATH.
+ '';
+ default = true;
+ type = types.bool;
+ };
+
environment.binsh = mkOption {
default = "${config.system.build.binsh}/bin/sh";
defaultText = "\${config.system.build.binsh}/bin/sh";
@@ -157,6 +165,8 @@ in
# terminal instead of logging out of X11).
environment.variables = config.environment.sessionVariables;
+ environment.profileRelativeEnvVars = config.environment.profileRelativeSessionVariables;
+
environment.shellAliases = mapAttrs (name: mkDefault) {
ls = "ls --color=tty";
ll = "ls -l";
@@ -184,8 +194,10 @@ in
${cfg.extraInit}
- # ~/bin if it exists overrides other bin directories.
- export PATH="$HOME/bin:$PATH"
+ ${optionalString cfg.homeBinInPath ''
+ # ~/bin if it exists overrides other bin directories.
+ export PATH="$HOME/bin:$PATH"
+ ''}
'';
system.activationScripts.binsh = stringAfter [ "stdio" ]
diff --git a/nixos/modules/config/sysctl.nix b/nixos/modules/config/sysctl.nix
index fb2b58eed72..e59c7a32c28 100644
--- a/nixos/modules/config/sysctl.nix
+++ b/nixos/modules/config/sysctl.nix
@@ -54,7 +54,7 @@ in
# Hide kernel pointers (e.g. in /proc/modules) for unprivileged
# users as these make it easier to exploit kernel vulnerabilities.
- boot.kernel.sysctl."kernel.kptr_restrict" = 1;
+ boot.kernel.sysctl."kernel.kptr_restrict" = mkDefault 1;
# Disable YAMA by default to allow easy debugging.
boot.kernel.sysctl."kernel.yama.ptrace_scope" = mkDefault 0;
diff --git a/nixos/modules/config/system-environment.nix b/nixos/modules/config/system-environment.nix
index 6011e354ece..4888740ba3d 100644
--- a/nixos/modules/config/system-environment.nix
+++ b/nixos/modules/config/system-environment.nix
@@ -18,25 +18,88 @@ in
default = {};
description = ''
A set of environment variables used in the global environment.
- These variables will be set by PAM.
- The value of each variable can be either a string or a list of
- strings. The latter is concatenated, interspersed with colon
- characters.
+ These variables will be set by PAM early in the login process.
+
+ The value of each session variable can be either a string or a
+ list of strings. The latter is concatenated, interspersed with
+ colon characters.
+
+ Note, due to limitations in the PAM format values may not
+ contain the " character.
+
+ Also, these variables are merged into
+ and it is
+ therefore not possible to use PAM style variables such as
+ @{HOME}
.
'';
type = with types; attrsOf (either str (listOf str));
apply = mapAttrs (n: v: if isList v then concatStringsSep ":" v else v);
};
+ environment.profileRelativeSessionVariables = mkOption {
+ type = types.attrsOf (types.listOf types.str);
+ example = { PATH = [ "/bin" ]; MANPATH = [ "/man" "/share/man" ]; };
+ description = ''
+ Attribute set of environment variable used in the global
+ environment. These variables will be set by PAM early in the
+ login process.
+
+ Variable substitution is available as described in
+
+ pam_env.conf
+ 5
+ .
+
+ Each attribute maps to a list of relative paths. Each relative
+ path is appended to the each profile of
+ environment.profiles to form the content of
+ the corresponding environment variable.
+
+ Also, these variables are merged into
+ and it is
+ therefore not possible to use PAM style variables such as
+ @{HOME}
.
+ '';
+ };
+
};
config = {
- system.build.pamEnvironment = pkgs.writeText "pam-environment"
- ''
- ${concatStringsSep "\n" (
- (mapAttrsToList (n: v: ''${n}="${concatStringsSep ":" v}"'')
- (zipAttrsWith (const concatLists) ([ (mapAttrs (n: v: [ v ]) cfg.sessionVariables) ]))))}
- '';
+ system.build.pamEnvironment =
+ let
+ suffixedVariables =
+ flip mapAttrs cfg.profileRelativeSessionVariables (envVar: suffixes:
+ flip concatMap cfg.profiles (profile:
+ map (suffix: "${profile}${suffix}") suffixes
+ )
+ );
+
+ # We're trying to use the same syntax for PAM variables and env variables.
+ # That means we need to map the env variables that people might use to their
+ # equivalent PAM variable.
+ replaceEnvVars = replaceStrings ["$HOME" "$USER"] ["@{HOME}" "@{PAM_USER}"];
+
+ pamVariable = n: v:
+ ''${n} DEFAULT="${concatStringsSep ":" (map replaceEnvVars (toList v))}"'';
+
+ pamVariables =
+ concatStringsSep "\n"
+ (mapAttrsToList pamVariable
+ (zipAttrsWith (n: concatLists)
+ [
+ # Make sure security wrappers are prioritized without polluting
+ # shell environments with an extra entry. Sessions which depend on
+ # pam for its environment will otherwise have eg. broken sudo. In
+ # particular Gnome Shell sometimes fails to source a proper
+ # environment from a shell.
+ { PATH = [ config.security.wrapperDir ]; }
+
+ (mapAttrs (n: toList) cfg.sessionVariables)
+ suffixedVariables
+ ]));
+ in
+ pkgs.writeText "pam-environment" "${pamVariables}\n";
};
diff --git a/nixos/modules/config/system-path.nix b/nixos/modules/config/system-path.nix
index fae2fc74008..aba9bc0945b 100644
--- a/nixos/modules/config/system-path.nix
+++ b/nixos/modules/config/system-path.nix
@@ -135,6 +135,9 @@ in
# outputs TODO: note that the tools will often not be linked by default
postBuild =
''
+ # Remove wrapped binaries, they shouldn't be accessible via PATH.
+ find $out/bin -maxdepth 1 -name ".*-wrapped" -type l -delete
+
if [ -x $out/bin/glib-compile-schemas -a -w $out/share/glib-2.0/schemas ]; then
$out/bin/glib-compile-schemas $out/share/glib-2.0/schemas
fi
diff --git a/nixos/modules/config/terminfo.nix b/nixos/modules/config/terminfo.nix
index b86ce2dbf05..1396640af67 100644
--- a/nixos/modules/config/terminfo.nix
+++ b/nixos/modules/config/terminfo.nix
@@ -12,7 +12,7 @@
source = "${config.system.path}/share/terminfo";
};
- environment.profileRelativeEnvVars = {
+ environment.profileRelativeSessionVariables = {
TERMINFO_DIRS = [ "/share/terminfo" ];
};
diff --git a/nixos/modules/config/unix-odbc-drivers.nix b/nixos/modules/config/unix-odbc-drivers.nix
index 8dd81172738..abc12a627d6 100644
--- a/nixos/modules/config/unix-odbc-drivers.nix
+++ b/nixos/modules/config/unix-odbc-drivers.nix
@@ -24,7 +24,7 @@ in {
Specifies Unix ODBC drivers to be registered in
/etc/odbcinst.ini . You may also want to
add pkgs.unixODBC to the system path to get
- a command line client to connnect to ODBC databases.
+ a command line client to connect to ODBC databases.
'';
};
};
diff --git a/nixos/modules/config/update-users-groups.pl b/nixos/modules/config/update-users-groups.pl
index 59cea51c611..15e448b787a 100644
--- a/nixos/modules/config/update-users-groups.pl
+++ b/nixos/modules/config/update-users-groups.pl
@@ -56,12 +56,12 @@ sub allocGid {
$gidsUsed{$prevGid} = 1;
return $prevGid;
}
- return allocId(\%gidsUsed, \%gidsPrevUsed, 400, 499, 0, sub { my ($gid) = @_; getgrgid($gid) });
+ return allocId(\%gidsUsed, \%gidsPrevUsed, 400, 999, 0, sub { my ($gid) = @_; getgrgid($gid) });
}
sub allocUid {
my ($name, $isSystemUser) = @_;
- my ($min, $max, $up) = $isSystemUser ? (400, 499, 0) : (1000, 29999, 1);
+ my ($min, $max, $up) = $isSystemUser ? (400, 999, 0) : (1000, 29999, 1);
my $prevUid = $uidMap->{$name};
if (defined $prevUid && $prevUid >= $min && $prevUid <= $max && !defined $uidsUsed{$prevUid}) {
print STDERR "reviving user '$name' with UID $prevUid\n";
diff --git a/nixos/modules/config/users-groups.nix b/nixos/modules/config/users-groups.nix
index ba79bd3d6ec..ae3bdeb00e6 100644
--- a/nixos/modules/config/users-groups.nix
+++ b/nixos/modules/config/users-groups.nix
@@ -251,7 +251,7 @@ let
default = [];
example = literalExample "[ pkgs.firefox pkgs.thunderbird ]";
description = ''
- The set of packages that should be made availabe to the user.
+ The set of packages that should be made available to the user.
This is in contrast to environment.systemPackages ,
which adds packages to all users.
'';
diff --git a/nixos/modules/config/vpnc.nix b/nixos/modules/config/vpnc.nix
deleted file mode 100644
index 356e007c0a3..00000000000
--- a/nixos/modules/config/vpnc.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-{ config, lib, ... }:
-
-with lib;
-
-let
- cfg = config.networking.vpnc;
- mkServiceDef = name: value:
- {
- name = "vpnc/${name}.conf";
- value = { text = value; };
- };
-
-in
-{
- options = {
- networking.vpnc = {
- services = mkOption {
- type = types.attrsOf types.str;
- default = {};
- example = literalExample ''
- { test = '''
- IPSec gateway 192.168.1.1
- IPSec ID someID
- IPSec secret secretKey
- Xauth username name
- Xauth password pass
- ''';
- }
- '';
- description =
- ''
- The names of cisco VPNs and their associated definitions
- '';
- };
- };
- };
-
- config.environment.etc = mapAttrs' mkServiceDef cfg.services;
-}
-
-
diff --git a/nixos/modules/config/xdg/icons.nix b/nixos/modules/config/xdg/icons.nix
index 8268a3771a0..4677ce090b0 100644
--- a/nixos/modules/config/xdg/icons.nix
+++ b/nixos/modules/config/xdg/icons.nix
@@ -7,21 +7,32 @@ with lib;
type = types.bool;
default = true;
description = ''
- Whether to install files to support the
+ Whether to install files to support the
XDG Icon Theme specification.
'';
};
};
config = mkIf config.xdg.icons.enable {
- environment.pathsToLink = [
- "/share/icons"
- "/share/pixmaps"
+ environment.pathsToLink = [
+ "/share/icons"
+ "/share/pixmaps"
+ ];
+
+ # libXcursor looks for cursors in XCURSOR_PATH
+ # it mostly follows the spec for icons
+ # See: https://www.x.org/releases/current/doc/man/man3/Xcursor.3.xhtml Themes
+
+ # These are preferred so they come first in the list
+ environment.sessionVariables.XCURSOR_PATH = [
+ "$HOME/.icons"
+ "$HOME/.local/share/icons"
+ ];
+
+ environment.profileRelativeSessionVariables.XCURSOR_PATH = [
+ "/share/icons"
+ "/share/pixmaps"
];
-
- environment.profileRelativeEnvVars = {
- XCURSOR_PATH = [ "/share/icons" ];
- };
};
}
diff --git a/nixos/modules/config/xdg/sounds.nix b/nixos/modules/config/xdg/sounds.nix
index 148240d631c..14d6340fc33 100644
--- a/nixos/modules/config/xdg/sounds.nix
+++ b/nixos/modules/config/xdg/sounds.nix
@@ -1,4 +1,4 @@
-{ config, lib, ... }:
+{ config, lib, pkgs, ... }:
with lib;
{
@@ -14,6 +14,10 @@ with lib;
};
config = mkIf config.xdg.sounds.enable {
+ environment.systemPackages = [
+ pkgs.sound-theme-freedesktop
+ ];
+
environment.pathsToLink = [
"/share/sounds"
];
diff --git a/nixos/modules/hardware/brightnessctl.nix b/nixos/modules/hardware/brightnessctl.nix
index 341e4b791c2..2d54398d10d 100644
--- a/nixos/modules/hardware/brightnessctl.nix
+++ b/nixos/modules/hardware/brightnessctl.nix
@@ -25,6 +25,7 @@ in
config = mkIf cfg.enable {
services.udev.packages = with pkgs; [ brightnessctl ];
+ environment.systemPackages = with pkgs; [ brightnessctl ];
};
}
diff --git a/nixos/modules/hardware/brillo.nix b/nixos/modules/hardware/brillo.nix
new file mode 100644
index 00000000000..e970c948099
--- /dev/null
+++ b/nixos/modules/hardware/brillo.nix
@@ -0,0 +1,22 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+ cfg = config.hardware.brillo;
+in
+{
+ options = {
+ hardware.brillo = {
+ enable = mkEnableOption ''
+ Enable brillo in userspace.
+ This will allow brightness control from users in the video group.
+ '';
+ };
+ };
+
+
+ config = mkIf cfg.enable {
+ services.udev.packages = [ pkgs.brillo ];
+ environment.systemPackages = [ pkgs.brillo ];
+ };
+}
diff --git a/nixos/modules/hardware/steam-hardware.nix b/nixos/modules/hardware/steam-hardware.nix
index 378aeffe71b..6218c9ffbb9 100644
--- a/nixos/modules/hardware/steam-hardware.nix
+++ b/nixos/modules/hardware/steam-hardware.nix
@@ -21,5 +21,12 @@ in
services.udev.packages = [
pkgs.steamPackages.steam
];
+
+ # The uinput module needs to be loaded in order to trigger the udev rules
+ # defined in the steam package for setting permissions on /dev/uinput.
+ #
+ # If the udev rules are not triggered, some controllers won't work with
+ # steam.
+ boot.kernelModules = [ "uinput" ];
};
}
diff --git a/nixos/modules/hardware/video/displaylink.nix b/nixos/modules/hardware/video/displaylink.nix
index 669ac849cba..912f53da836 100644
--- a/nixos/modules/hardware/video/displaylink.nix
+++ b/nixos/modules/hardware/video/displaylink.nix
@@ -19,6 +19,21 @@ in
config = mkIf enabled {
boot.extraModulePackages = [ evdi ];
+ boot.kernelModules = [ "evdi" ];
+
+ environment.etc."X11/xorg.conf.d/40-displaylink.conf".text = ''
+ Section "OutputClass"
+ Identifier "DisplayLink"
+ MatchDriver "evdi"
+ Driver "modesetting"
+ Option "AccelMethod" "none"
+ EndSection
+ '';
+
+ # make the device available
+ services.xserver.displayManager.sessionCommands = ''
+ ${lib.getBin pkgs.xorg.xrandr}/bin/xrandr --setprovideroutputsource 1 0
+ '';
# Those are taken from displaylink-installer.sh and from Arch Linux AUR package.
@@ -47,18 +62,13 @@ in
description = "DisplayLink Manager Service";
after = [ "display-manager.service" ];
conflicts = [ "getty@tty7.service" ];
- path = [ pkgs.kmod ];
serviceConfig = {
ExecStart = "${displaylink}/bin/DisplayLinkManager";
Restart = "always";
RestartSec = 5;
+ LogsDirectory = "displaylink";
};
-
- preStart = ''
- mkdir -p /var/log/displaylink
- modprobe evdi
- '';
};
};
diff --git a/nixos/modules/hardware/video/nvidia.nix b/nixos/modules/hardware/video/nvidia.nix
index 3ab2afc9740..1e18e927ec6 100644
--- a/nixos/modules/hardware/video/nvidia.nix
+++ b/nixos/modules/hardware/video/nvidia.nix
@@ -75,7 +75,7 @@ in
Note that this configuration will only be successful when a display manager
for which the services.xserver.displayManager.setupCommands
- option is supported is used; notably, SLiM is not supported.
+ option is supported is used.
'';
};
diff --git a/nixos/modules/installer/cd-dvd/installation-cd-graphical-base.nix b/nixos/modules/installer/cd-dvd/installation-cd-graphical-base.nix
index 1578e1547bc..e0b558dcb0d 100644
--- a/nixos/modules/installer/cd-dvd/installation-cd-graphical-base.nix
+++ b/nixos/modules/installer/cd-dvd/installation-cd-graphical-base.nix
@@ -22,20 +22,7 @@ with lib;
});
'';
- services.xserver = {
- enable = true;
-
- # Don't start the X server by default.
- autorun = mkForce false;
-
- # Automatically login as nixos.
- displayManager.slim = {
- enable = true;
- defaultUser = "nixos";
- autoLogin = true;
- };
-
- };
+ services.xserver.enable = true;
# Provide networkmanager for easy wireless configuration.
networking.networkmanager.enable = 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 0b813bbf37b..23c3426bff0 100644
--- a/nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix
+++ b/nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix
@@ -10,8 +10,6 @@ with lib;
services.xserver.desktopManager.gnome3.enable = true;
- services.xserver.displayManager.slim.enable = mkForce false;
-
# Auto-login as root.
services.xserver.displayManager.gdm.autoLogin = {
enable = true;
diff --git a/nixos/modules/installer/cd-dvd/installation-cd-graphical-kde.nix b/nixos/modules/installer/cd-dvd/installation-cd-graphical-kde.nix
index 559899b0a3b..e00d3f7535b 100644
--- a/nixos/modules/installer/cd-dvd/installation-cd-graphical-kde.nix
+++ b/nixos/modules/installer/cd-dvd/installation-cd-graphical-kde.nix
@@ -11,7 +11,15 @@ with lib;
services.xserver = {
desktopManager.plasma5 = {
enable = true;
- enableQt4Support = false;
+ };
+
+ # Automatically login as nixos.
+ displayManager.sddm = {
+ enable = true;
+ autoLogin = {
+ enable = true;
+ user = "nixos";
+ };
};
};
@@ -22,14 +30,8 @@ with lib;
system.activationScripts.installerDesktop = let
- manualDesktopFile = pkgs.writeScript "nixos-manual.desktop" ''
- [Desktop Entry]
- Version=1.0
- Type=Application
- Name=NixOS Manual
- Exec=firefox ${config.system.build.manual.manual}/share/doc/nixos/index.html
- Icon=text-html
- '';
+ # Comes from documentation.nix when xserver and nixos.enable are true.
+ manualDesktopFile = "/run/current-system/sw/share/applications/nixos-manual.desktop";
homeDir = "/home/nixos/";
desktopDir = homeDir + "Desktop/";
diff --git a/nixos/modules/installer/cd-dvd/iso-image.nix b/nixos/modules/installer/cd-dvd/iso-image.nix
index d5c92cfc1d9..009f1e2c543 100644
--- a/nixos/modules/installer/cd-dvd/iso-image.nix
+++ b/nixos/modules/installer/cd-dvd/iso-image.nix
@@ -24,7 +24,7 @@ let
# Name appended to menuentry defaults to params if no specific name given.
option.name or (if option ? params then "(${option.params})" else "")
}' ${if option ? class then " --class ${option.class}" else ""} {
- linux ${defaults.image} ${defaults.params} ${
+ linux ${defaults.image} \''${isoboot} ${defaults.params} ${
option.params or ""
}
initrd ${defaults.initrd}
@@ -165,8 +165,8 @@ let
else
"# No refind for ${targetArch}"
;
-
- grubPkgs = if config.boot.loader.grub.forcei686 then pkgs.pkgsi686Linux else pkgs;
+
+ grubPkgs = if config.boot.loader.grub.forcei686 then pkgs.pkgsi686Linux else pkgs;
grubMenuCfg = ''
#
@@ -268,6 +268,12 @@ let
set timeout=10
${grubMenuCfg}
+ # If the parameter iso_path is set, append the findiso parameter to the kernel
+ # line. We need this to allow the nixos iso to be booted from grub directly.
+ if [ \''${iso_path} ] ; then
+ set isoboot="findiso=\''${iso_path}"
+ fi
+
#
# Menu entries
#
@@ -284,6 +290,14 @@ let
${buildMenuAdditionalParamsGrub2 config "video=1920x1080@60"}
}
+ # If we boot into a graphical environment where X is autoran
+ # and always crashes, it makes the media unusable. Allow the user
+ # to disable this.
+ submenu "Disable display-manager" --class quirk-disable-displaymanager {
+ ${grubMenuCfg}
+ ${buildMenuAdditionalParamsGrub2 config "systemd.mask=display-manager.service"}
+ }
+
# Some laptop and convertibles have the panel installed in an
# inconvenient way, rotated away from the keyboard.
# Those entries makes it easier to use the installer.
@@ -562,8 +576,6 @@ in
boot.initrd.availableKernelModules = [ "squashfs" "iso9660" "uas" ];
- boot.blacklistedKernelModules = [ "nouveau" ];
-
boot.initrd.kernelModules = [ "loop" ];
# Closures to be copied to the Nix store on the CD, namely the init
@@ -618,6 +630,9 @@ in
{ source = "${efiDir}/EFI";
target = "/EFI";
}
+ { source = pkgs.writeText "loopback.cfg" "source /EFI/boot/grub.cfg";
+ target = "/boot/grub/loopback.cfg";
+ }
] ++ optionals (config.boot.loader.grub.memtest86.enable && canx86BiosBoot) [
{ source = "${pkgs.memtest86plus}/memtest.bin";
target = "/boot/memtest.bin";
diff --git a/nixos/modules/installer/cd-dvd/sd-image-raspberrypi.nix b/nixos/modules/installer/cd-dvd/sd-image-raspberrypi.nix
index 2a131d9ce98..ba4127eaa0e 100644
--- a/nixos/modules/installer/cd-dvd/sd-image-raspberrypi.nix
+++ b/nixos/modules/installer/cd-dvd/sd-image-raspberrypi.nix
@@ -19,7 +19,7 @@ in
boot.loader.generic-extlinux-compatible.enable = true;
boot.consoleLogLevel = lib.mkDefault 7;
- boot.kernelPackages = pkgs.linuxPackages_rpi;
+ boot.kernelPackages = pkgs.linuxPackages_rpi1;
sdImage = {
populateFirmwareCommands = let
diff --git a/nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix b/nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix
new file mode 100644
index 00000000000..c545a1e7e24
--- /dev/null
+++ b/nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix
@@ -0,0 +1,31 @@
+# To build, use:
+# nix-build nixos -I nixos-config=nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix -A config.system.build.sdImage
+{ config, lib, pkgs, ... }:
+
+{
+ imports = [
+ ../../profiles/base.nix
+ ../../profiles/installation-device.nix
+ ./sd-image.nix
+ ];
+
+ boot.loader.grub.enable = false;
+ boot.loader.raspberryPi.enable = true;
+ boot.loader.raspberryPi.version = 4;
+ boot.kernelPackages = pkgs.linuxPackages_rpi4;
+
+ boot.consoleLogLevel = lib.mkDefault 7;
+
+ sdImage = {
+ firmwareSize = 128;
+ # This is a hack to avoid replicating config.txt from boot.loader.raspberryPi
+ populateFirmwareCommands =
+ "${config.system.build.installBootLoader} ${config.system.build.toplevel} -d ./firmware";
+ # As the boot process is done entirely in the firmware partition.
+ populateRootCommands = "";
+ };
+
+ # the installation media is also the installation target,
+ # so we don't want to provide the installation configuration.nix.
+ installer.cloneConfig = false;
+}
diff --git a/nixos/modules/installer/cd-dvd/sd-image.nix b/nixos/modules/installer/cd-dvd/sd-image.nix
index 0a015044155..7865b767f0b 100644
--- a/nixos/modules/installer/cd-dvd/sd-image.nix
+++ b/nixos/modules/installer/cd-dvd/sd-image.nix
@@ -98,6 +98,16 @@ in
populate the ./files/boot (/boot) directory.
'';
};
+
+ compressImage = mkOption {
+ type = types.bool;
+ default = true;
+ description = ''
+ Whether the SD image should be compressed using
+ bzip2 .
+ '';
+ };
+
};
config = {
@@ -118,17 +128,23 @@ in
sdImage.storePaths = [ config.system.build.toplevel ];
- system.build.sdImage = pkgs.callPackage ({ stdenv, dosfstools, e2fsprogs, mtools, libfaketime, utillinux }: stdenv.mkDerivation {
+ system.build.sdImage = pkgs.callPackage ({ stdenv, dosfstools, e2fsprogs, mtools, libfaketime, utillinux, bzip2 }: stdenv.mkDerivation {
name = config.sdImage.imageName;
- nativeBuildInputs = [ dosfstools e2fsprogs mtools libfaketime utillinux ];
+ nativeBuildInputs = [ dosfstools e2fsprogs mtools libfaketime utillinux bzip2 ];
+
+ inherit (config.sdImage) compressImage;
buildCommand = ''
mkdir -p $out/nix-support $out/sd-image
export img=$out/sd-image/${config.sdImage.imageName}
echo "${pkgs.stdenv.buildPlatform.system}" > $out/nix-support/system
- echo "file sd-image $img" >> $out/nix-support/hydra-build-products
+ if test -n "$compressImage"; then
+ echo "file sd-image $img.bz2" >> $out/nix-support/hydra-build-products
+ else
+ echo "file sd-image $img" >> $out/nix-support/hydra-build-products
+ fi
# Gap in front of the first partition, in MiB
gap=8
@@ -168,14 +184,19 @@ in
# Verify the FAT partition before copying it.
fsck.vfat -vn firmware_part.img
dd conv=notrunc if=firmware_part.img of=$img seek=$START count=$SECTORS
+ if test -n "$compressImage"; then
+ bzip2 $img
+ fi
'';
}) {};
boot.postBootCommands = ''
# On the first boot do some maintenance tasks
if [ -f /nix-path-registration ]; then
+ set -euo pipefail
+ set -x
# Figure out device names for the boot device and root filesystem.
- rootPart=$(readlink -f /dev/disk/by-label/NIXOS_SD)
+ rootPart=$(${pkgs.utillinux}/bin/findmnt -n -o SOURCE /)
bootDevice=$(lsblk -npo PKNAME $rootPart)
# Resize the root partition and the filesystem to fit the disk
diff --git a/nixos/modules/installer/tools/nix-fallback-paths.nix b/nixos/modules/installer/tools/nix-fallback-paths.nix
index 2673887d2b9..d7149b35d4c 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/3ds3cgji9vjxdbgp10av6smyym1126d1-nix-2.3";
- i686-linux = "/nix/store/ln1ndqvfpc9cdl03vqxi6kvlxm9wfv9g-nix-2.3";
- aarch64-linux = "/nix/store/n8a1rwzrp20qcr2c4hvyn6c5q9zx8csw-nix-2.3";
- x86_64-darwin = "/nix/store/jq6npmpld02sz4rgniz0qrsdfnm6j17a-nix-2.3";
+ x86_64-linux = "/nix/store/6chjfy4j6hjwj5f8zcbbdg02i21x1qsi-nix-2.3.1";
+ i686-linux = "/nix/store/xa8z7fwszjjm4kiwrxfc8xv9c1pzzm7a-nix-2.3.1";
+ aarch64-linux = "/nix/store/8cac1ivcnchlpzmdjby2f71l1fwpnymr-nix-2.3.1";
+ x86_64-darwin = "/nix/store/6639l9815ggdnb4aka22qcjy7p8w4hb9-nix-2.3.1";
}
diff --git a/nixos/modules/installer/tools/nixos-generate-config.pl b/nixos/modules/installer/tools/nixos-generate-config.pl
index cfdbdaabf5c..f2ffe61c42c 100644
--- a/nixos/modules/installer/tools/nixos-generate-config.pl
+++ b/nixos/modules/installer/tools/nixos-generate-config.pl
@@ -563,6 +563,24 @@ $fsAndSwap
${\join "", (map { " $_\n" } (uniq @attrs))}}
EOF
+sub generateNetworkingDhcpConfig {
+ my $config = <&1)
- exit_code=$?
- set -e
-
- if test $exit_code -eq 0; then
- sed '/^warning: Nix search path/d' <&2 < {};
- nixpkgs = import {};
-in with nixpkgs.lib;
-"
-
-# This function is used for converting the option definition path given by
-# the user into accessors for reaching the definition and the declaration
-# corresponding to this option.
-generateAccessors(){
- if result=$(evalNix --strict --show-trace <"
- else if strict then
- if isAttrs x then mapAttrs (n: cleanOutput) x
- else if isList x then map cleanOutput x
- else x
- else x;
-in
- cleanOutput value
-EOF
-}
-
-evalOpt(){
- evalAttr "option" "" "$@"
-}
-
-evalCfg(){
- local strict="$1"
- evalAttr "config" "$strict"
-}
-
-findSources(){
- local suffix=$1
- evalNix --strict <,0,g; :inner; s/{[^\{\}]*};/0;/g; t inner;' | \
- evalNix --strict
-}
-
-# map a simple list which contains strings or paths.
-nixMap() {
- local fun="$1"
- local list="$2"
- local elem
- for elem in $list; do
- test $elem = '[' -o $elem = ']' && continue;
- $fun $elem
- done
-}
-
-# This duplicates the work made below, but it is useful for processing
-# the output of nixos-option with other tools such as nixos-gui.
-if $xml; then
- evalNix --xml --no-location < /dev/null)" = '"option"'; then
- echo "Value:"
- evalCfg 1
-
- echo
-
- echo "Default:"
- if default=$(evalOpt "default" - 2> /dev/null); then
- echo "$default"
- else
- echo ""
- fi
- echo
- if example=$(evalOpt "example" - 2> /dev/null); then
- echo "Example:"
- echo "$example"
- echo
- fi
- echo "Description:"
- echo
- echo $(evalOpt "description")
-
- echo $desc;
-
- printPath () { echo " $1"; }
-
- echo "Declared by:"
- nixMap printPath "$(findSources "declarations")"
- echo
- echo "Defined by:"
- nixMap printPath "$(findSources "files")"
- echo
-
-else
- # echo 1>&2 "Warning: This value is not an option."
-
- result=$(evalCfg "")
- if [ ! -z "$result" ]; then
- names=$(attrNames "$result" 2> /dev/null)
- echo 1>&2 "This attribute set contains:"
- escapeQuotes () { eval echo "$1"; }
- nixMap escapeQuotes "$names"
- else
- echo 1>&2 "An error occurred while looking for attribute names. Are you sure that '$option' exists?"
- fi
-fi
-
-exit $exit_code
diff --git a/nixos/modules/installer/tools/nixos-option/CMakeLists.txt b/nixos/modules/installer/tools/nixos-option/CMakeLists.txt
new file mode 100644
index 00000000000..e5834598c4f
--- /dev/null
+++ b/nixos/modules/installer/tools/nixos-option/CMakeLists.txt
@@ -0,0 +1,8 @@
+cmake_minimum_required (VERSION 2.6)
+project (nixos-option)
+
+add_executable(nixos-option nixos-option.cc libnix-copy-paste.cc)
+target_link_libraries(nixos-option PRIVATE -lnixmain -lnixexpr -lnixstore -lnixutil)
+target_compile_features(nixos-option PRIVATE cxx_std_17)
+
+install (TARGETS nixos-option DESTINATION bin)
diff --git a/nixos/modules/installer/tools/nixos-option/default.nix b/nixos/modules/installer/tools/nixos-option/default.nix
new file mode 100644
index 00000000000..753fd92c7bb
--- /dev/null
+++ b/nixos/modules/installer/tools/nixos-option/default.nix
@@ -0,0 +1,11 @@
+{lib, stdenv, boost, cmake, pkgconfig, nix, ... }:
+stdenv.mkDerivation rec {
+ name = "nixos-option";
+ src = ./.;
+ nativeBuildInputs = [ cmake pkgconfig ];
+ buildInputs = [ boost nix ];
+ meta = {
+ license = stdenv.lib.licenses.lgpl2Plus;
+ maintainers = with lib.maintainers; [ chkno ];
+ };
+}
diff --git a/nixos/modules/installer/tools/nixos-option/libnix-copy-paste.cc b/nixos/modules/installer/tools/nixos-option/libnix-copy-paste.cc
new file mode 100644
index 00000000000..875c07da639
--- /dev/null
+++ b/nixos/modules/installer/tools/nixos-option/libnix-copy-paste.cc
@@ -0,0 +1,83 @@
+// These are useful methods inside the nix library that ought to be exported.
+// Since they are not, copy/paste them here.
+// TODO: Delete these and use the ones in the library as they become available.
+
+#include // for nix/globals.hh's reference to SYSTEM
+
+#include "libnix-copy-paste.hh"
+#include // for basic_altstringbuf...
+#include // for basic_altstringbuf...
+#include // for basic_format
+#include // for format
+#include // for basic_format::basi...
+#include // for get_pointer
+#include // for operator<<, basic_...
+#include // for Strings, Error
+#include // for string, basic_string
+
+using boost::format;
+using nix::Error;
+using nix::Strings;
+using std::string;
+
+// From nix/src/libexpr/attr-path.cc
+Strings parseAttrPath(const string & s)
+{
+ Strings res;
+ string cur;
+ string::const_iterator i = s.begin();
+ while (i != s.end()) {
+ if (*i == '.') {
+ res.push_back(cur);
+ cur.clear();
+ } else if (*i == '"') {
+ ++i;
+ while (1) {
+ if (i == s.end())
+ throw Error(format("missing closing quote in selection path '%1%'") % s);
+ if (*i == '"')
+ break;
+ cur.push_back(*i++);
+ }
+ } else
+ cur.push_back(*i);
+ ++i;
+ }
+ if (!cur.empty())
+ res.push_back(cur);
+ return res;
+}
+
+// From nix/src/nix/repl.cc
+bool isVarName(const string & s)
+{
+ if (s.size() == 0)
+ return false;
+ char c = s[0];
+ if ((c >= '0' && c <= '9') || c == '-' || c == '\'')
+ return false;
+ for (auto & i : s)
+ if (!((i >= 'a' && i <= 'z') || (i >= 'A' && i <= 'Z') || (i >= '0' && i <= '9') || i == '_' || i == '-' ||
+ i == '\''))
+ return false;
+ return true;
+}
+
+// From nix/src/nix/repl.cc
+std::ostream & printStringValue(std::ostream & str, const char * string)
+{
+ str << "\"";
+ for (const char * i = string; *i; i++)
+ if (*i == '\"' || *i == '\\')
+ str << "\\" << *i;
+ else if (*i == '\n')
+ str << "\\n";
+ else if (*i == '\r')
+ str << "\\r";
+ else if (*i == '\t')
+ str << "\\t";
+ else
+ str << *i;
+ str << "\"";
+ return str;
+}
diff --git a/nixos/modules/installer/tools/nixos-option/libnix-copy-paste.hh b/nixos/modules/installer/tools/nixos-option/libnix-copy-paste.hh
new file mode 100644
index 00000000000..2274e9a0f85
--- /dev/null
+++ b/nixos/modules/installer/tools/nixos-option/libnix-copy-paste.hh
@@ -0,0 +1,9 @@
+#pragma once
+
+#include
+#include
+#include
+
+nix::Strings parseAttrPath(const std::string & s);
+bool isVarName(const std::string & s);
+std::ostream & printStringValue(std::ostream & str, const char * string);
diff --git a/nixos/modules/installer/tools/nixos-option/nixos-option.cc b/nixos/modules/installer/tools/nixos-option/nixos-option.cc
new file mode 100644
index 00000000000..9b92dc829cd
--- /dev/null
+++ b/nixos/modules/installer/tools/nixos-option/nixos-option.cc
@@ -0,0 +1,618 @@
+#include // for nix/globals.hh's reference to SYSTEM
+
+#include // for exception_ptr, current_exception
+#include // for function
+#include // for operator<<, basic_ostream, ostrin...
+#include // for next
+#include // for _List_iterator
+#include // for allocator, unique_ptr, make_unique
+#include // for operator new
+#include // for argvToStrings, UsageError
+#include // for findAlongAttrPath
+#include // for Attr, Bindings, Bindings::iterator
+#include // for MixEvalArgs
+#include // for EvalState::forceValue
+#include // for EvalState, initGC, operator<<
+#include // for initPlugins, Settings, settings
+#include // for Pos
+#include // for getArg, LegacyArgs, printVersion
+#include // for openStore
+#include // for Symbol, SymbolTable
+#include // for Error, Path, Strings, PathSet
+#include // for absPath, baseNameOf
+#include // for Value, Value::(anonymous), Value:...
+#include // for string, operator+, operator==
+#include // for move
+#include // for get, holds_alternative, variant
+#include // for vector<>::iterator, vector
+
+#include "libnix-copy-paste.hh"
+
+using nix::absPath;
+using nix::Bindings;
+using nix::Error;
+using nix::EvalError;
+using nix::EvalState;
+using nix::Path;
+using nix::PathSet;
+using nix::Strings;
+using nix::Symbol;
+using nix::tAttrs;
+using nix::ThrownError;
+using nix::tLambda;
+using nix::tString;
+using nix::UsageError;
+using nix::Value;
+
+// An ostream wrapper to handle nested indentation
+class Out
+{
+ public:
+ class Separator
+ {};
+ const static Separator sep;
+ enum LinePolicy
+ {
+ ONE_LINE,
+ MULTI_LINE
+ };
+ explicit Out(std::ostream & ostream) : ostream(ostream), policy(ONE_LINE), writeSinceSep(true) {}
+ Out(Out & o, const std::string & start, const std::string & end, LinePolicy policy);
+ Out(Out & o, const std::string & start, const std::string & end, int count)
+ : Out(o, start, end, count < 2 ? ONE_LINE : MULTI_LINE)
+ {}
+ Out(const Out &) = delete;
+ Out(Out &&) = default;
+ Out & operator=(const Out &) = delete;
+ Out & operator=(Out &&) = delete;
+ ~Out() { ostream << end; }
+
+ private:
+ std::ostream & ostream;
+ std::string indentation;
+ std::string end;
+ LinePolicy policy;
+ bool writeSinceSep;
+ template friend Out & operator<<(Out & o, T thing);
+};
+
+template Out & operator<<(Out & o, T thing)
+{
+ if (!o.writeSinceSep && o.policy == Out::MULTI_LINE) {
+ o.ostream << o.indentation;
+ }
+ o.writeSinceSep = true;
+ o.ostream << thing;
+ return o;
+}
+
+template <> Out & operator<<(Out & o, Out::Separator /* thing */)
+{
+ o.ostream << (o.policy == Out::ONE_LINE ? " " : "\n");
+ o.writeSinceSep = false;
+ return o;
+}
+
+Out::Out(Out & o, const std::string & start, const std::string & end, LinePolicy policy)
+ : ostream(o.ostream), indentation(policy == ONE_LINE ? o.indentation : o.indentation + " "),
+ end(policy == ONE_LINE ? end : o.indentation + end), policy(policy), writeSinceSep(true)
+{
+ o << start;
+ *this << Out::sep;
+}
+
+// Stuff needed for evaluation
+struct Context
+{
+ Context(EvalState & state, Bindings & autoArgs, Value optionsRoot, Value configRoot)
+ : state(state), autoArgs(autoArgs), optionsRoot(optionsRoot), configRoot(configRoot),
+ underscoreType(state.symbols.create("_type"))
+ {}
+ EvalState & state;
+ Bindings & autoArgs;
+ Value optionsRoot;
+ Value configRoot;
+ Symbol underscoreType;
+};
+
+Value evaluateValue(Context & ctx, Value & v)
+{
+ ctx.state.forceValue(v);
+ if (ctx.autoArgs.empty()) {
+ return v;
+ }
+ Value called{};
+ ctx.state.autoCallFunction(ctx.autoArgs, v, called);
+ return called;
+}
+
+bool isOption(Context & ctx, const Value & v)
+{
+ if (v.type != tAttrs) {
+ return false;
+ }
+ const auto & atualType = v.attrs->find(ctx.underscoreType);
+ if (atualType == v.attrs->end()) {
+ return false;
+ }
+ try {
+ Value evaluatedType = evaluateValue(ctx, *atualType->value);
+ if (evaluatedType.type != tString) {
+ return false;
+ }
+ return static_cast(evaluatedType.string.s) == "option";
+ } catch (Error &) {
+ return false;
+ }
+}
+
+// Add quotes to a component of a path.
+// These are needed for paths like:
+// fileSystems."/".fsType
+// systemd.units."dbus.service".text
+std::string quoteAttribute(const std::string & attribute)
+{
+ if (isVarName(attribute)) {
+ return attribute;
+ }
+ std::ostringstream buf;
+ printStringValue(buf, attribute.c_str());
+ return buf.str();
+}
+
+const std::string appendPath(const std::string & prefix, const std::string & suffix)
+{
+ if (prefix.empty()) {
+ return quoteAttribute(suffix);
+ }
+ return prefix + "." + quoteAttribute(suffix);
+}
+
+bool forbiddenRecursionName(std::string name) { return (!name.empty() && name[0] == '_') || name == "haskellPackages"; }
+
+void recurse(const std::function)> & f,
+ Context & ctx, Value v, const std::string & path)
+{
+ std::variant evaluated;
+ try {
+ evaluated = evaluateValue(ctx, v);
+ } catch (Error &) {
+ evaluated = std::current_exception();
+ }
+ if (!f(path, evaluated)) {
+ return;
+ }
+ if (std::holds_alternative(evaluated)) {
+ return;
+ }
+ const Value & evaluated_value = std::get(evaluated);
+ if (evaluated_value.type != tAttrs) {
+ return;
+ }
+ for (const auto & child : evaluated_value.attrs->lexicographicOrder()) {
+ if (forbiddenRecursionName(child->name)) {
+ continue;
+ }
+ recurse(f, ctx, *child->value, appendPath(path, child->name));
+ }
+}
+
+// Calls f on all the option names
+void mapOptions(const std::function & f, Context & ctx, Value root)
+{
+ recurse(
+ [f, &ctx](const std::string & path, std::variant v) {
+ bool isOpt = std::holds_alternative(v) || isOption(ctx, std::get(v));
+ if (isOpt) {
+ f(path);
+ }
+ return !isOpt;
+ },
+ ctx, root, "");
+}
+
+// Calls f on all the config values inside one option.
+// Simple options have one config value inside, like sound.enable = true.
+// Compound options have multiple config values. For example, the option
+// "users.users" has about 1000 config values inside it:
+// users.users.avahi.createHome = false;
+// users.users.avahi.cryptHomeLuks = null;
+// users.users.avahi.description = "`avahi-daemon' privilege separation user";
+// ...
+// users.users.avahi.openssh.authorizedKeys.keyFiles = [ ];
+// users.users.avahi.openssh.authorizedKeys.keys = [ ];
+// ...
+// users.users.avahi.uid = 10;
+// users.users.avahi.useDefaultShell = false;
+// users.users.cups.createHome = false;
+// ...
+// users.users.cups.useDefaultShell = false;
+// users.users.gdm = ... ... ...
+// users.users.messagebus = ... .. ...
+// users.users.nixbld1 = ... .. ...
+// ...
+// users.users.systemd-timesync = ... .. ...
+void mapConfigValuesInOption(
+ const std::function v)> & f,
+ const std::string & path, Context & ctx)
+{
+ Value * option;
+ try {
+ option = findAlongAttrPath(ctx.state, path, ctx.autoArgs, ctx.configRoot);
+ } catch (Error &) {
+ f(path, std::current_exception());
+ return;
+ }
+ recurse(
+ [f, ctx](const std::string & path, std::variant v) {
+ bool leaf = std::holds_alternative(v) || std::get(v).type != tAttrs ||
+ ctx.state.isDerivation(std::get(v));
+ if (!leaf) {
+ return true; // Keep digging
+ }
+ f(path, v);
+ return false;
+ },
+ ctx, *option, path);
+}
+
+std::string describeError(const Error & e) { return "«error: " + e.msg() + "»"; }
+
+void describeDerivation(Context & ctx, Out & out, Value v)
+{
+ // Copy-pasted from nix/src/nix/repl.cc :(
+ Bindings::iterator i = v.attrs->find(ctx.state.sDrvPath);
+ PathSet pathset;
+ try {
+ Path drvPath = i != v.attrs->end() ? ctx.state.coerceToPath(*i->pos, *i->value, pathset) : "???";
+ out << "«derivation " << drvPath << "»";
+ } catch (Error & e) {
+ out << describeError(e);
+ }
+}
+
+Value parseAndEval(EvalState & state, const std::string & expression, const std::string & path)
+{
+ Value v{};
+ state.eval(state.parseExprFromString(expression, absPath(path)), v);
+ return v;
+}
+
+void printValue(Context & ctx, Out & out, std::variant maybeValue, const std::string & path);
+
+void printList(Context & ctx, Out & out, Value & v)
+{
+ Out listOut(out, "[", "]", v.listSize());
+ for (unsigned int n = 0; n < v.listSize(); ++n) {
+ printValue(ctx, listOut, *v.listElems()[n], "");
+ listOut << Out::sep;
+ }
+}
+
+void printAttrs(Context & ctx, Out & out, Value & v, const std::string & path)
+{
+ Out attrsOut(out, "{", "}", v.attrs->size());
+ for (const auto & a : v.attrs->lexicographicOrder()) {
+ std::string name = a->name;
+ attrsOut << name << " = ";
+ printValue(ctx, attrsOut, *a->value, appendPath(path, name));
+ attrsOut << ";" << Out::sep;
+ }
+}
+
+void multiLineStringEscape(Out & out, const std::string & s)
+{
+ int i;
+ for (i = 1; i < s.size(); i++) {
+ if (s[i - 1] == '$' && s[i] == '{') {
+ out << "''${";
+ i++;
+ } else if (s[i - 1] == '\'' && s[i] == '\'') {
+ out << "'''";
+ i++;
+ } else {
+ out << s[i - 1];
+ }
+ }
+ if (i == s.size()) {
+ out << s[i - 1];
+ }
+}
+
+void printMultiLineString(Out & out, const Value & v)
+{
+ std::string s = v.string.s;
+ Out strOut(out, "''", "''", Out::MULTI_LINE);
+ std::string::size_type begin = 0;
+ while (begin < s.size()) {
+ std::string::size_type end = s.find('\n', begin);
+ if (end == std::string::npos) {
+ multiLineStringEscape(strOut, s.substr(begin, s.size() - begin));
+ break;
+ }
+ multiLineStringEscape(strOut, s.substr(begin, end - begin));
+ strOut << Out::sep;
+ begin = end + 1;
+ }
+}
+
+void printValue(Context & ctx, Out & out, std::variant maybeValue, const std::string & path)
+{
+ try {
+ if (auto ex = std::get_if(&maybeValue)) {
+ std::rethrow_exception(*ex);
+ }
+ Value v = evaluateValue(ctx, std::get(maybeValue));
+ if (ctx.state.isDerivation(v)) {
+ describeDerivation(ctx, out, v);
+ } else if (v.isList()) {
+ printList(ctx, out, v);
+ } else if (v.type == tAttrs) {
+ printAttrs(ctx, out, v, path);
+ } else if (v.type == tString && std::string(v.string.s).find('\n') != std::string::npos) {
+ printMultiLineString(out, v);
+ } else {
+ ctx.state.forceValueDeep(v);
+ out << v;
+ }
+ } catch (ThrownError & e) {
+ if (e.msg() == "The option `" + path + "' is used but not defined.") {
+ // 93% of errors are this, and just letting this message through would be
+ // misleading. These values may or may not actually be "used" in the
+ // config. The thing throwing the error message assumes that if anything
+ // ever looks at this value, it is a "use" of this value. But here in
+ // nixos-option, we are looking at this value only to print it.
+ // In order to avoid implying that this undefined value is actually
+ // referenced, eat the underlying error message and emit "«not defined»".
+ out << "«not defined»";
+ } else {
+ out << describeError(e);
+ }
+ } catch (Error & e) {
+ out << describeError(e);
+ }
+}
+
+void printConfigValue(Context & ctx, Out & out, const std::string & path, std::variant v)
+{
+ out << path << " = ";
+ printValue(ctx, out, std::move(v), path);
+ out << ";\n";
+}
+
+void printAll(Context & ctx, Out & out)
+{
+ mapOptions(
+ [&ctx, &out](const std::string & optionPath) {
+ mapConfigValuesInOption(
+ [&ctx, &out](const std::string & configPath, std::variant v) {
+ printConfigValue(ctx, out, configPath, v);
+ },
+ optionPath, ctx);
+ },
+ ctx, ctx.optionsRoot);
+}
+
+void printAttr(Context & ctx, Out & out, const std::string & path, Value & root)
+{
+ try {
+ printValue(ctx, out, *findAlongAttrPath(ctx.state, path, ctx.autoArgs, root), path);
+ } catch (Error & e) {
+ out << describeError(e);
+ }
+}
+
+bool hasExample(Context & ctx, Value & option)
+{
+ try {
+ findAlongAttrPath(ctx.state, "example", ctx.autoArgs, option);
+ return true;
+ } catch (Error &) {
+ return false;
+ }
+}
+
+void printOption(Context & ctx, Out & out, const std::string & path, Value & option)
+{
+ out << "Value:\n";
+ printAttr(ctx, out, path, ctx.configRoot);
+
+ out << "\n\nDefault:\n";
+ printAttr(ctx, out, "default", option);
+
+ out << "\n\nType:\n";
+ printAttr(ctx, out, "type.description", option);
+
+ if (hasExample(ctx, option)) {
+ out << "\n\nExample:\n";
+ printAttr(ctx, out, "example", option);
+ }
+
+ out << "\n\nDescription:\n";
+ printAttr(ctx, out, "description", option);
+
+ out << "\n\nDeclared by:\n";
+ printAttr(ctx, out, "declarations", option);
+
+ out << "\n\nDefined by:\n";
+ printAttr(ctx, out, "files", option);
+ out << "\n";
+}
+
+void printListing(Out & out, Value & v)
+{
+ out << "This attribute set contains:\n";
+ for (const auto & a : v.attrs->lexicographicOrder()) {
+ std::string name = a->name;
+ if (!name.empty() && name[0] != '_') {
+ out << name << "\n";
+ }
+ }
+}
+
+bool optionTypeIs(Context & ctx, Value & v, const std::string & soughtType)
+{
+ try {
+ const auto & typeLookup = v.attrs->find(ctx.state.sType);
+ if (typeLookup == v.attrs->end()) {
+ return false;
+ }
+ Value type = evaluateValue(ctx, *typeLookup->value);
+ if (type.type != tAttrs) {
+ return false;
+ }
+ const auto & nameLookup = type.attrs->find(ctx.state.sName);
+ if (nameLookup == type.attrs->end()) {
+ return false;
+ }
+ Value name = evaluateValue(ctx, *nameLookup->value);
+ if (name.type != tString) {
+ return false;
+ }
+ return name.string.s == soughtType;
+ } catch (Error &) {
+ return false;
+ }
+}
+
+bool isAggregateOptionType(Context & ctx, Value & v)
+{
+ return optionTypeIs(ctx, v, "attrsOf") || optionTypeIs(ctx, v, "listOf") || optionTypeIs(ctx, v, "loaOf");
+}
+
+MakeError(OptionPathError, EvalError);
+
+Value getSubOptions(Context & ctx, Value & option)
+{
+ Value getSubOptions = evaluateValue(ctx, *findAlongAttrPath(ctx.state, "type.getSubOptions", ctx.autoArgs, option));
+ if (getSubOptions.type != tLambda) {
+ throw OptionPathError("Option's type.getSubOptions isn't a function");
+ }
+ Value emptyString{};
+ nix::mkString(emptyString, "");
+ Value v;
+ ctx.state.callFunction(getSubOptions, emptyString, v, nix::Pos{});
+ return v;
+}
+
+// Carefully walk an option path, looking for sub-options when a path walks past
+// an option value.
+Value findAlongOptionPath(Context & ctx, const std::string & path)
+{
+ Strings tokens = parseAttrPath(path);
+ Value v = ctx.optionsRoot;
+ for (auto i = tokens.begin(); i != tokens.end(); i++) {
+ const auto & attr = *i;
+ try {
+ bool lastAttribute = std::next(i) == tokens.end();
+ v = evaluateValue(ctx, v);
+ if (attr.empty()) {
+ throw OptionPathError("empty attribute name");
+ }
+ if (isOption(ctx, v) && optionTypeIs(ctx, v, "submodule")) {
+ v = getSubOptions(ctx, v);
+ }
+ if (isOption(ctx, v) && isAggregateOptionType(ctx, v) && !lastAttribute) {
+ v = getSubOptions(ctx, v);
+ // Note that we've consumed attr, but didn't actually use it. This is the path component that's looked
+ // up in the list or attribute set that doesn't name an option -- the "root" in "users.users.root.name".
+ } else if (v.type != tAttrs) {
+ throw OptionPathError("Value is %s while a set was expected", showType(v));
+ } else {
+ const auto & next = v.attrs->find(ctx.state.symbols.create(attr));
+ if (next == v.attrs->end()) {
+ throw OptionPathError("Attribute not found", attr, path);
+ }
+ v = *next->value;
+ }
+ } catch (OptionPathError & e) {
+ throw OptionPathError("At '%s' in path '%s': %s", attr, path, e.msg());
+ }
+ }
+ return v;
+}
+
+void printOne(Context & ctx, Out & out, const std::string & path)
+{
+ try {
+ Value option = findAlongOptionPath(ctx, path);
+ option = evaluateValue(ctx, option);
+ if (isOption(ctx, option)) {
+ printOption(ctx, out, path, option);
+ } else {
+ printListing(out, option);
+ }
+ } catch (Error & e) {
+ std::cerr << "error: " << e.msg()
+ << "\nAn error occurred while looking for attribute names. Are "
+ "you sure that '"
+ << path << "' exists?\n";
+ }
+}
+
+int main(int argc, char ** argv)
+{
+ bool all = false;
+ std::string path = ".";
+ std::string optionsExpr = "(import {}).options";
+ std::string configExpr = "(import {}).config";
+ std::vector args;
+
+ struct MyArgs : nix::LegacyArgs, nix::MixEvalArgs
+ {
+ using nix::LegacyArgs::LegacyArgs;
+ };
+
+ MyArgs myArgs(nix::baseNameOf(argv[0]), [&](Strings::iterator & arg, const Strings::iterator & end) {
+ if (*arg == "--help") {
+ nix::showManPage("nixos-option");
+ } else if (*arg == "--version") {
+ nix::printVersion("nixos-option");
+ } else if (*arg == "--all") {
+ all = true;
+ } else if (*arg == "--path") {
+ path = nix::getArg(*arg, arg, end);
+ } else if (*arg == "--options_expr") {
+ optionsExpr = nix::getArg(*arg, arg, end);
+ } else if (*arg == "--config_expr") {
+ configExpr = nix::getArg(*arg, arg, end);
+ } else if (!arg->empty() && arg->at(0) == '-') {
+ return false;
+ } else {
+ args.push_back(*arg);
+ }
+ return true;
+ });
+
+ myArgs.parseCmdline(nix::argvToStrings(argc, argv));
+
+ nix::initPlugins();
+ nix::initGC();
+ nix::settings.readOnlyMode = true;
+ auto store = nix::openStore();
+ auto state = std::make_unique(myArgs.searchPath, store);
+
+ Value optionsRoot = parseAndEval(*state, optionsExpr, path);
+ Value configRoot = parseAndEval(*state, configExpr, path);
+
+ Context ctx{*state, *myArgs.getAutoArgs(*state), optionsRoot, configRoot};
+ Out out(std::cout);
+
+ if (all) {
+ if (!args.empty()) {
+ throw UsageError("--all cannot be used with arguments");
+ }
+ printAll(ctx, out);
+ } else {
+ if (args.empty()) {
+ printOne(ctx, out, "");
+ }
+ for (const auto & arg : args) {
+ printOne(ctx, out, arg);
+ }
+ }
+
+ ctx.state.printStats();
+
+ return 0;
+}
diff --git a/nixos/modules/installer/tools/nixos-rebuild.sh b/nixos/modules/installer/tools/nixos-rebuild.sh
index 6a08c9b4c6c..c53dc1000c4 100644
--- a/nixos/modules/installer/tools/nixos-rebuild.sh
+++ b/nixos/modules/installer/tools/nixos-rebuild.sh
@@ -22,6 +22,7 @@ repair=
profile=/nix/var/nix/profiles/system
buildHost=
targetHost=
+maybeSudo=
while [ "$#" -gt 0 ]; do
i="$1"; shift 1
@@ -89,6 +90,11 @@ while [ "$#" -gt 0 ]; do
targetHost="$1"
shift 1
;;
+ --use-remote-sudo)
+ # note the trailing space
+ maybeSudo="sudo "
+ shift 1
+ ;;
*)
echo "$0: unknown option \`$i'"
exit 1
@@ -96,7 +102,6 @@ while [ "$#" -gt 0 ]; do
esac
done
-
if [ -z "$buildHost" -a -n "$targetHost" ]; then
buildHost="$targetHost"
fi
@@ -111,9 +116,9 @@ buildHostCmd() {
if [ -z "$buildHost" ]; then
"$@"
elif [ -n "$remoteNix" ]; then
- ssh $SSHOPTS "$buildHost" PATH="$remoteNix:$PATH" "$@"
+ ssh $SSHOPTS "$buildHost" env PATH="$remoteNix:$PATH" "$maybeSudo$@"
else
- ssh $SSHOPTS "$buildHost" "$@"
+ ssh $SSHOPTS "$buildHost" "$maybeSudo$@"
fi
}
@@ -121,7 +126,7 @@ targetHostCmd() {
if [ -z "$targetHost" ]; then
"$@"
else
- ssh $SSHOPTS "$targetHost" "$@"
+ ssh $SSHOPTS "$targetHost" "$maybeSudo$@"
fi
}
diff --git a/nixos/modules/installer/tools/tools.nix b/nixos/modules/installer/tools/tools.nix
index 05add59117d..e4db39b5c81 100644
--- a/nixos/modules/installer/tools/tools.nix
+++ b/nixos/modules/installer/tools/tools.nix
@@ -41,10 +41,7 @@ let
inherit (config.system.nixos-generate-config) configuration;
};
- nixos-option = makeProg {
- name = "nixos-option";
- src = ./nixos-option.sh;
- };
+ nixos-option = pkgs.callPackage ./nixos-option { };
nixos-version = makeProg {
name = "nixos-version";
@@ -96,6 +93,7 @@ in
# networking.hostName = "nixos"; # Define your hostname.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
+ $networkingDhcpConfig
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password\@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
@@ -119,7 +117,11 @@ in
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
- # programs.gnupg.agent = { enable = true; enableSSHSupport = true; };
+ # programs.gnupg.agent = {
+ # enable = true;
+ # enableSSHSupport = true;
+ # pinentryFlavor = "gnome3";
+ # };
# List services that you want to enable:
diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix
index ac6af1ce8b7..f8b188e7b1c 100644
--- a/nixos/modules/misc/ids.nix
+++ b/nixos/modules/misc/ids.nix
@@ -11,6 +11,9 @@
{ lib, ... }:
+let
+ inherit (lib) types;
+in
{
options = {
@@ -19,6 +22,7 @@
description = ''
The user IDs used in NixOS.
'';
+ type = types.attrsOf types.int;
};
ids.gids = lib.mkOption {
@@ -26,6 +30,7 @@
description = ''
The group IDs used in NixOS.
'';
+ type = types.attrsOf types.int;
};
};
@@ -128,7 +133,7 @@
tcpcryptd = 93; # tcpcryptd uses a hard-coded uid. We patch it in Nixpkgs to match this choice.
firebird = 95;
#keys = 96; # unused
- haproxy = 97;
+ #haproxy = 97; # DynamicUser as of 2019-11-08
mongodb = 98;
openldap = 99;
#users = 100; # unused
@@ -328,7 +333,7 @@
qemu-libvirtd = 301;
# kvm = 302; # unused
# render = 303; # unused
- zeronet = 304;
+ # zeronet = 304; # removed 2019-01-03
lirc = 305;
lidarr = 306;
slurm = 307;
@@ -443,7 +448,7 @@
#tcpcryptd = 93; # unused
firebird = 95;
keys = 96;
- haproxy = 97;
+ #haproxy = 97; # DynamicUser as of 2019-11-08
#mongodb = 98; # unused
openldap = 99;
munin = 102;
@@ -629,7 +634,7 @@
qemu-libvirtd = 301;
kvm = 302; # default udev rules from systemd requires these
render = 303; # default udev rules from systemd requires these
- zeronet = 304;
+ # zeronet = 304; # removed 2019-01-03
lirc = 305;
lidarr = 306;
slurm = 307;
diff --git a/nixos/modules/misc/locate.nix b/nixos/modules/misc/locate.nix
index 449149e4bb6..737ed5c0a3f 100644
--- a/nixos/modules/misc/locate.nix
+++ b/nixos/modules/misc/locate.nix
@@ -128,7 +128,10 @@ in {
# directory creation needs to be separated from main service
# because ReadWritePaths fails when the directory doesn't already exist
- systemd.tmpfiles.rules = [ "d ${dirOf cfg.output} 0755 root root -" ];
+ systemd.tmpfiles.rules =
+ let dir = dirOf cfg.output; in
+ mkIf (dir != "/var/cache")
+ [ "d ${dir} 0755 root root -" ];
systemd.services.update-locatedb =
{ description = "Update Locate Database";
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 5b7f391ed5a..9e0d9478b5d 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -1,9 +1,7 @@
[
./config/debug-info.nix
- ./config/fonts/corefonts.nix
./config/fonts/fontconfig.nix
./config/fonts/fontconfig-penultimate.nix
- ./config/fonts/fontconfig-ultimate.nix
./config/fonts/fontdir.nix
./config/fonts/fonts.nix
./config/fonts/ghostscript.nix
@@ -37,13 +35,13 @@
./config/terminfo.nix
./config/unix-odbc-drivers.nix
./config/users-groups.nix
- ./config/vpnc.nix
./config/vte.nix
./config/zram.nix
./hardware/acpilight.nix
./hardware/all-firmware.nix
./hardware/bladeRF.nix
./hardware/brightnessctl.nix
+ ./hardware/brillo.nix
./hardware/ckb-next.nix
./hardware/cpu/amd-microcode.nix
./hardware/cpu/intel-microcode.nix
@@ -98,7 +96,6 @@
./programs/autojump.nix
./programs/bash/bash.nix
./programs/bcc.nix
- ./programs/blcr.nix
./programs/browserpass.nix
./programs/captive-browser.nix
./programs/ccache.nix
@@ -143,7 +140,6 @@
./programs/seahorse.nix
./programs/slock.nix
./programs/shadow.nix
- ./programs/shell.nix
./programs/spacefm.nix
./programs/singularity.nix
./programs/ssh.nix
@@ -229,6 +225,7 @@
./services/backup/rsnapshot.nix
./services/backup/tarsnap.nix
./services/backup/tsm.nix
+ ./services/backup/zfs-replication.nix
./services/backup/znapzend.nix
./services/cluster/hadoop/default.nix
./services/cluster/kubernetes/addons/dns.nix
@@ -299,10 +296,11 @@
./services/desktops/gnome3/chrome-gnome-shell.nix
./services/desktops/gnome3/evolution-data-server.nix
./services/desktops/gnome3/glib-networking.nix
+ ./services/desktops/gnome3/gnome-initial-setup.nix
./services/desktops/gnome3/gnome-keyring.nix
./services/desktops/gnome3/gnome-online-accounts.nix
- ./services/desktops/gnome3/gnome-remote-desktop.nix
./services/desktops/gnome3/gnome-online-miners.nix
+ ./services/desktops/gnome3/gnome-remote-desktop.nix
./services/desktops/gnome3/gnome-settings-daemon.nix
./services/desktops/gnome3/gnome-user-share.nix
./services/desktops/gnome3/rygel.nix
@@ -317,17 +315,20 @@
./services/development/bloop.nix
./services/development/hoogle.nix
./services/development/jupyter/default.nix
+ ./services/development/lorri.nix
./services/editors/emacs.nix
./services/editors/infinoted.nix
./services/games/factorio.nix
./services/games/minecraft-server.nix
./services/games/minetest-server.nix
+ ./services/games/openarena.nix
./services/games/terraria.nix
./services/hardware/acpid.nix
./services/hardware/actkbd.nix
./services/hardware/bluetooth.nix
./services/hardware/bolt.nix
./services/hardware/brltty.nix
+ ./services/hardware/fancontrol.nix
./services/hardware/freefall.nix
./services/hardware/fwupd.nix
./services/hardware/illum.nix
@@ -502,6 +503,7 @@
./services/monitoring/das_watchdog.nix
./services/monitoring/datadog-agent.nix
./services/monitoring/dd-agent/dd-agent.nix
+ ./services/monitoring/do-agent.nix
./services/monitoring/fusion-inventory.nix
./services/monitoring/grafana.nix
./services/monitoring/grafana-reporter.nix
@@ -516,7 +518,6 @@
./services/monitoring/munin.nix
./services/monitoring/nagios.nix
./services/monitoring/netdata.nix
- ./services/monitoring/osquery.nix
./services/monitoring/prometheus/default.nix
./services/monitoring/prometheus/alertmanager.nix
./services/monitoring/prometheus/exporters.nix
@@ -536,7 +537,6 @@
./services/monitoring/zabbix-agent.nix
./services/monitoring/zabbix-proxy.nix
./services/monitoring/zabbix-server.nix
- ./services/network-filesystems/beegfs.nix
./services/network-filesystems/cachefilesd.nix
./services/network-filesystems/davfs2.nix
./services/network-filesystems/drbd.nix
@@ -547,6 +547,8 @@
./services/network-filesystems/nfsd.nix
./services/network-filesystems/openafs/client.nix
./services/network-filesystems/openafs/server.nix
+ ./services/network-filesystems/orangefs/server.nix
+ ./services/network-filesystems/orangefs/client.nix
./services/network-filesystems/rsyncd.nix
./services/network-filesystems/samba.nix
./services/network-filesystems/tahoe.nix
@@ -567,7 +569,6 @@
./services/networking/bird.nix
./services/networking/bitlbee.nix
./services/networking/charybdis.nix
- ./services/networking/chrony.nix
./services/networking/cjdns.nix
./services/networking/cntlm.nix
./services/networking/connman.nix
@@ -601,6 +602,7 @@
./services/networking/gdomap.nix
./services/networking/git-daemon.nix
./services/networking/gnunet.nix
+ ./services/networking/go-shadowsocks2.nix
./services/networking/gogoclient.nix
./services/networking/gvpe.nix
./services/networking/hans.nix
@@ -614,7 +616,6 @@
./services/networking/iodine.nix
./services/networking/iperf3.nix
./services/networking/ircd-hybrid/default.nix
- ./services/networking/jormungandr.nix
./services/networking/iwd.nix
./services/networking/keepalived/default.nix
./services/networking/keybase.nix
@@ -650,14 +651,15 @@
./services/networking/nntp-proxy.nix
./services/networking/nsd.nix
./services/networking/ntopng.nix
- ./services/networking/ntpd.nix
+ ./services/networking/ntp/chrony.nix
+ ./services/networking/ntp/ntpd.nix
+ ./services/networking/ntp/openntpd.nix
./services/networking/nullidentdmod.nix
./services/networking/nylon.nix
./services/networking/ocserv.nix
./services/networking/ofono.nix
./services/networking/oidentd.nix
./services/networking/openfire.nix
- ./services/networking/openntpd.nix
./services/networking/openvpn.nix
./services/networking/ostinato.nix
./services/networking/owamp.nix
@@ -665,6 +667,7 @@
./services/networking/polipo.nix
./services/networking/powerdns.nix
./services/networking/pdns-recursor.nix
+ ./services/networking/pppd.nix
./services/networking/pptpd.nix
./services/networking/prayer.nix
./services/networking/privoxy.nix
@@ -711,6 +714,7 @@
./services/networking/tinc.nix
./services/networking/tinydns.nix
./services/networking/tftpd.nix
+ ./services/networking/trickster.nix
./services/networking/tox-bootstrapd.nix
./services/networking/tox-node.nix
./services/networking/toxvpn.nix
@@ -727,6 +731,7 @@
./services/networking/xinetd.nix
./services/networking/xl2tpd.nix
./services/networking/xrdp.nix
+ ./services/networking/yggdrasil.nix
./services/networking/zerobin.nix
./services/networking/zeronet.nix
./services/networking/zerotierone.nix
@@ -791,6 +796,7 @@
./services/web-apps/cryptpad.nix
./services/web-apps/documize.nix
./services/web-apps/frab.nix
+ ./services/web-apps/gotify-server.nix
./services/web-apps/icingaweb2/icingaweb2.nix
./services/web-apps/icingaweb2/module-monitoring.nix
./services/web-apps/limesurvey.nix
@@ -802,9 +808,12 @@
./services/web-apps/nexus.nix
./services/web-apps/pgpkeyserver-lite.nix
./services/web-apps/matomo.nix
+ ./services/web-apps/moinmoin.nix
./services/web-apps/restya-board.nix
./services/web-apps/tt-rss.nix
+ ./services/web-apps/trac.nix
./services/web-apps/selfoss.nix
+ ./services/web-apps/shiori.nix
./services/web-apps/virtlyst.nix
./services/web-apps/wordpress.nix
./services/web-apps/youtrack.nix
@@ -830,6 +839,7 @@
./services/web-servers/shellinabox.nix
./services/web-servers/tomcat.nix
./services/web-servers/traefik.nix
+ ./services/web-servers/ttyd.nix
./services/web-servers/uwsgi.nix
./services/web-servers/varnish/default.nix
./services/web-servers/zope2.nix
@@ -853,6 +863,7 @@
./services/x11/hardware/multitouch.nix
./services/x11/hardware/synaptics.nix
./services/x11/hardware/wacom.nix
+ ./services/x11/hardware/digimend.nix
./services/x11/hardware/cmt.nix
./services/x11/gdk-pixbuf.nix
./services/x11/redshift.nix
@@ -938,6 +949,7 @@
./virtualisation/anbox.nix
./virtualisation/container-config.nix
./virtualisation/containers.nix
+ ./virtualisation/cri-o.nix
./virtualisation/docker.nix
./virtualisation/docker-containers.nix
./virtualisation/ecs-agent.nix
diff --git a/nixos/modules/profiles/graphical.nix b/nixos/modules/profiles/graphical.nix
index 649f5564ac6..d80456cede5 100644
--- a/nixos/modules/profiles/graphical.nix
+++ b/nixos/modules/profiles/graphical.nix
@@ -9,14 +9,12 @@
displayManager.sddm.enable = true;
desktopManager.plasma5 = {
enable = true;
- enableQt4Support = false;
};
libinput.enable = true; # for touchpad support on many laptops
};
# Enable sound in virtualbox appliances.
hardware.pulseaudio.enable = true;
- hardware.pulseaudio.systemWide = true; # Needed since we run plasma as root.
environment.systemPackages = [ pkgs.glxinfo pkgs.firefox ];
}
diff --git a/nixos/modules/profiles/hardened.nix b/nixos/modules/profiles/hardened.nix
index 626d8b1d2bd..f7b2f5c7fc1 100644
--- a/nixos/modules/profiles/hardened.nix
+++ b/nixos/modules/profiles/hardened.nix
@@ -52,6 +52,27 @@ with lib;
"ax25"
"netrom"
"rose"
+
+ # Old or rare or insufficiently audited filesystems
+ "adfs"
+ "affs"
+ "bfs"
+ "befs"
+ "cramfs"
+ "efs"
+ "erofs"
+ "exofs"
+ "freevxfs"
+ "f2fs"
+ "hfs"
+ "hpfs"
+ "jfs"
+ "minix"
+ "nilfs2"
+ "qnx4"
+ "qnx6"
+ "sysv"
+ "ufs"
];
# Restrict ptrace() usage to processes with a pre-defined relationship
diff --git a/nixos/modules/profiles/installation-device.nix b/nixos/modules/profiles/installation-device.nix
index fd30220ce1c..4596e163404 100644
--- a/nixos/modules/profiles/installation-device.nix
+++ b/nixos/modules/profiles/installation-device.nix
@@ -31,9 +31,6 @@ with lib;
# Let the user play Rogue on TTY 8 during the installation.
#services.rogue.enable = true;
- # Disable some other stuff we don't need.
- services.udisks2.enable = mkDefault false;
-
# Use less privileged nixos user
users.users.nixos = {
isNormalUser = true;
diff --git a/nixos/modules/profiles/qemu-guest.nix b/nixos/modules/profiles/qemu-guest.nix
index 315d04093b1..0ea70107f71 100644
--- a/nixos/modules/profiles/qemu-guest.nix
+++ b/nixos/modules/profiles/qemu-guest.nix
@@ -1,7 +1,7 @@
# Common configuration for virtual machines running under QEMU (using
# virtio).
-{ ... }:
+{ lib, ... }:
{
boot.initrd.availableKernelModules = [ "virtio_net" "virtio_pci" "virtio_mmio" "virtio_blk" "virtio_scsi" "9p" "9pnet_virtio" ];
@@ -15,5 +15,5 @@
hwclock -s
'';
- security.rngd.enable = false;
+ security.rngd.enable = lib.mkDefault false;
}
diff --git a/nixos/modules/programs/adb.nix b/nixos/modules/programs/adb.nix
index 250d8c252a3..83bcfe886aa 100644
--- a/nixos/modules/programs/adb.nix
+++ b/nixos/modules/programs/adb.nix
@@ -23,7 +23,8 @@ with lib;
###### implementation
config = mkIf config.programs.adb.enable {
services.udev.packages = [ pkgs.android-udev-rules ];
- environment.systemPackages = [ pkgs.androidenv.androidPkgs_9_0.platform-tools ];
+ # Give platform-tools lower priority so mke2fs+friends are taken from other packages first
+ environment.systemPackages = [ (lowPrio pkgs.androidenv.androidPkgs_9_0.platform-tools) ];
users.groups.adbusers = {};
};
}
diff --git a/nixos/modules/programs/blcr.nix b/nixos/modules/programs/blcr.nix
deleted file mode 100644
index 804e1d01f12..00000000000
--- a/nixos/modules/programs/blcr.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ config, lib, ... }:
-
-let
- inherit (lib) mkOption mkIf;
- cfg = config.environment.blcr;
- blcrPkg = config.boot.kernelPackages.blcr;
-in
-
-{
- ###### interface
-
- options = {
- environment.blcr.enable = mkOption {
- default = false;
- description =
- "Whether to enable support for the BLCR checkpointing tool.";
- };
- };
-
- ###### implementation
-
- config = mkIf cfg.enable {
- boot.kernelModules = [ "blcr" "blcr_imports" ];
- boot.extraModulePackages = [ blcrPkg ];
- environment.systemPackages = [ blcrPkg ];
- };
-}
diff --git a/nixos/modules/programs/environment.nix b/nixos/modules/programs/environment.nix
index 66eb8348266..38bdabb4fa8 100644
--- a/nixos/modules/programs/environment.nix
+++ b/nixos/modules/programs/environment.nix
@@ -20,7 +20,6 @@ in
{ NIXPKGS_CONFIG = "/etc/nix/nixpkgs-config.nix";
PAGER = mkDefault "less -R";
EDITOR = mkDefault "nano";
- XCURSOR_PATH = [ "$HOME/.icons" ];
XDG_CONFIG_DIRS = [ "/etc/xdg" ]; # needs to be before profile-relative paths to allow changes through environment.etc
};
@@ -30,7 +29,7 @@ in
];
# TODO: move most of these elsewhere
- environment.profileRelativeEnvVars =
+ environment.profileRelativeSessionVariables =
{ PATH = [ "/bin" ];
INFOPATH = [ "/info" "/share/info" ];
KDEDIRS = [ "" ];
diff --git a/nixos/modules/programs/gnupg.nix b/nixos/modules/programs/gnupg.nix
index bcbc994efe9..2d262d90657 100644
--- a/nixos/modules/programs/gnupg.nix
+++ b/nixos/modules/programs/gnupg.nix
@@ -6,6 +6,19 @@ let
cfg = config.programs.gnupg;
+ xserverCfg = config.services.xserver;
+
+ defaultPinentryFlavor =
+ if xserverCfg.desktopManager.lxqt.enable
+ || xserverCfg.desktopManager.plasma5.enable then
+ "qt"
+ else if xserverCfg.desktopManager.xfce.enable then
+ "gtk2"
+ else if xserverCfg.enable || config.programs.sway.enable then
+ "gnome3"
+ else
+ null;
+
in
{
@@ -54,6 +67,20 @@ in
'';
};
+ agent.pinentryFlavor = mkOption {
+ type = types.nullOr (types.enum pkgs.pinentry.flavors);
+ example = "gnome3";
+ description = ''
+ Which pinentry interface to use. If not null, the path to the
+ pinentry binary will be passed to gpg-agent via commandline and
+ thus overrides the pinentry option in gpg-agent.conf in the user's
+ home directory.
+ If not set at all, it'll pick an appropriate flavor depending on the
+ system configuration (qt flavor for lxqt and plasma5, gtk2 for xfce
+ 4.12, gnome3 on all other systems with X enabled, ncurses otherwise).
+ '';
+ };
+
dirmngr.enable = mkOption {
type = types.bool;
default = false;
@@ -64,6 +91,16 @@ in
};
config = mkIf cfg.agent.enable {
+ programs.gnupg.agent.pinentryFlavor = mkDefault defaultPinentryFlavor;
+
+ # This overrides the systemd user unit shipped with the gnupg package
+ systemd.user.services.gpg-agent = mkIf (cfg.agent.pinentryFlavor != null) {
+ serviceConfig.ExecStart = [ "" ''
+ ${pkgs.gnupg}/bin/gpg-agent --supervised \
+ --pinentry-program ${pkgs.pinentry.${cfg.agent.pinentryFlavor}}/bin/pinentry
+ '' ];
+ };
+
systemd.user.sockets.gpg-agent = {
wantedBy = [ "sockets.target" ];
};
@@ -83,7 +120,9 @@ in
systemd.user.sockets.dirmngr = mkIf cfg.dirmngr.enable {
wantedBy = [ "sockets.target" ];
};
-
+
+ services.dbus.packages = mkIf (cfg.agent.pinentryFlavor == "gnome3") [ pkgs.gcr ];
+
environment.systemPackages = with pkgs; [ cfg.package ];
systemd.packages = [ cfg.package ];
diff --git a/nixos/modules/programs/less.nix b/nixos/modules/programs/less.nix
index e19935b77ca..75b3e707d57 100644
--- a/nixos/modules/programs/less.nix
+++ b/nixos/modules/programs/less.nix
@@ -54,8 +54,8 @@ in
type = types.attrsOf types.str;
default = {};
example = {
- h = "noaction 5\e(";
- l = "noaction 5\e)";
+ h = "noaction 5\\e(";
+ l = "noaction 5\\e)";
};
description = "Defines new command keys.";
};
diff --git a/nixos/modules/programs/mtr.nix b/nixos/modules/programs/mtr.nix
index 1fdec4c04f6..75b710c1584 100644
--- a/nixos/modules/programs/mtr.nix
+++ b/nixos/modules/programs/mtr.nix
@@ -4,6 +4,7 @@ with lib;
let
cfg = config.programs.mtr;
+
in {
options = {
programs.mtr = {
@@ -15,13 +16,22 @@ in {
setcap wrapper for it.
'';
};
+
+ package = mkOption {
+ type = types.package;
+ default = pkgs.mtr;
+ description = ''
+ The package to use.
+ '';
+ };
};
};
config = mkIf cfg.enable {
- environment.systemPackages = with pkgs; [ mtr ];
+ environment.systemPackages = with pkgs; [ cfg.package ];
+
security.wrappers.mtr-packet = {
- source = "${pkgs.mtr}/bin/mtr-packet";
+ source = "${cfg.package}/bin/mtr-packet";
capabilities = "cap_net_raw+p";
};
};
diff --git a/nixos/modules/programs/seahorse.nix b/nixos/modules/programs/seahorse.nix
index c08b0a85374..b229d2a2c0d 100644
--- a/nixos/modules/programs/seahorse.nix
+++ b/nixos/modules/programs/seahorse.nix
@@ -31,6 +31,8 @@ with lib;
config = mkIf config.programs.seahorse.enable {
+ programs.ssh.askPassword = mkDefault "${pkgs.gnome3.seahorse}/libexec/seahorse/ssh-askpass";
+
environment.systemPackages = [
pkgs.gnome3.seahorse
];
diff --git a/nixos/modules/programs/shadow.nix b/nixos/modules/programs/shadow.nix
index 8ec4169207d..7eaf79d864e 100644
--- a/nixos/modules/programs/shadow.nix
+++ b/nixos/modules/programs/shadow.nix
@@ -6,17 +6,27 @@ with lib;
let
+ /*
+ There are three different sources for user/group id ranges, each of which gets
+ used by different programs:
+ - The login.defs file, used by the useradd, groupadd and newusers commands
+ - The update-users-groups.pl file, used by NixOS in the activation phase to
+ decide on which ids to use for declaratively defined users without a static
+ id
+ - Systemd compile time options -Dsystem-uid-max= and -Dsystem-gid-max=, used
+ by systemd for features like ConditionUser=@system and systemd-sysusers
+ */
loginDefs =
''
DEFAULT_HOME yes
SYS_UID_MIN 400
- SYS_UID_MAX 499
+ SYS_UID_MAX 999
UID_MIN 1000
UID_MAX 29999
SYS_GID_MIN 400
- SYS_GID_MAX 499
+ SYS_GID_MAX 999
GID_MIN 1000
GID_MAX 29999
diff --git a/nixos/modules/programs/shell.nix b/nixos/modules/programs/shell.nix
deleted file mode 100644
index b7f7b91b5fb..00000000000
--- a/nixos/modules/programs/shell.nix
+++ /dev/null
@@ -1,54 +0,0 @@
-# This module defines a standard configuration for NixOS shells.
-
-{ config, lib, ... }:
-
-with lib;
-
-{
-
- config = {
-
- environment.shellInit =
- ''
- # Set up the per-user profile.
- mkdir -m 0755 -p "$NIX_USER_PROFILE_DIR"
- if [ "$(stat -c '%u' "$NIX_USER_PROFILE_DIR")" != "$(id -u)" ]; then
- echo "WARNING: the per-user profile dir $NIX_USER_PROFILE_DIR should belong to user id $(id -u)" >&2
- fi
-
- if [ -w "$HOME" ]; then
- if ! [ -L "$HOME/.nix-profile" ]; then
- if [ "$USER" != root ]; then
- ln -s "$NIX_USER_PROFILE_DIR/profile" "$HOME/.nix-profile"
- else
- # Root installs in the system-wide profile by default.
- ln -s /nix/var/nix/profiles/default "$HOME/.nix-profile"
- fi
- fi
-
- # Subscribe the root user to the NixOS channel by default.
- if [ "$USER" = root -a ! -e "$HOME/.nix-channels" ]; then
- echo "${config.system.defaultChannel} nixos" > "$HOME/.nix-channels"
- fi
-
- # Create the per-user garbage collector roots directory.
- NIX_USER_GCROOTS_DIR="/nix/var/nix/gcroots/per-user/$USER"
- mkdir -m 0755 -p "$NIX_USER_GCROOTS_DIR"
- if [ "$(stat -c '%u' "$NIX_USER_GCROOTS_DIR")" != "$(id -u)" ]; then
- echo "WARNING: the per-user gcroots dir $NIX_USER_GCROOTS_DIR should belong to user id $(id -u)" >&2
- fi
-
- # Set up a default Nix expression from which to install stuff.
- if [ ! -e "$HOME/.nix-defexpr" -o -L "$HOME/.nix-defexpr" ]; then
- rm -f "$HOME/.nix-defexpr"
- mkdir -p "$HOME/.nix-defexpr"
- if [ "$USER" != root ]; then
- ln -s /nix/var/nix/profiles/per-user/root/channels "$HOME/.nix-defexpr/channels_root"
- fi
- fi
- fi
- '';
-
- };
-
-}
diff --git a/nixos/modules/programs/ssh.nix b/nixos/modules/programs/ssh.nix
index 733b8f7636f..80198990ed1 100644
--- a/nixos/modules/programs/ssh.nix
+++ b/nixos/modules/programs/ssh.nix
@@ -115,6 +115,16 @@ in
'';
};
+ agentPKCS11Whitelist = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ example = "\${pkgs.opensc}/lib/opensc-pkcs11.so";
+ description = ''
+ A pattern-list of acceptable paths for PKCS#11 shared libraries
+ that may be used with the -s option to ssh-add.
+ '';
+ };
+
package = mkOption {
type = types.package;
default = pkgs.openssh;
@@ -241,6 +251,7 @@ in
ExecStart =
"${cfg.package}/bin/ssh-agent " +
optionalString (cfg.agentTimeout != null) ("-t ${cfg.agentTimeout} ") +
+ optionalString (cfg.agentPKCS11Whitelist != null) ("-P ${cfg.agentPKCS11Whitelist} ") +
"-a %t/ssh-agent";
StandardOutput = "null";
Type = "forking";
diff --git a/nixos/modules/programs/sway.nix b/nixos/modules/programs/sway.nix
index b4f03151cdc..f92d09a7ef4 100644
--- a/nixos/modules/programs/sway.nix
+++ b/nixos/modules/programs/sway.nix
@@ -55,7 +55,7 @@ in {
extraPackages = mkOption {
type = with types; listOf package;
default = with pkgs; [
- swaylock swayidle
+ swaylock swayidle swaybg
xwayland rxvt_unicode dmenu
];
defaultText = literalExample ''
diff --git a/nixos/modules/programs/x2goserver.nix b/nixos/modules/programs/x2goserver.nix
index 77a1a0da799..7d74231e956 100644
--- a/nixos/modules/programs/x2goserver.nix
+++ b/nixos/modules/programs/x2goserver.nix
@@ -69,6 +69,7 @@ in {
users.users.x2go = {
home = "/var/lib/x2go/db";
group = "x2go";
+ isSystemUser = true;
};
security.wrappers.x2gosqliteWrapper = {
diff --git a/nixos/modules/programs/zsh/zsh-syntax-highlighting.nix b/nixos/modules/programs/zsh/zsh-syntax-highlighting.nix
index 7184e5d9b9a..c84d26a7921 100644
--- a/nixos/modules/programs/zsh/zsh-syntax-highlighting.nix
+++ b/nixos/modules/programs/zsh/zsh-syntax-highlighting.nix
@@ -81,7 +81,7 @@ in
];
programs.zsh.interactiveShellInit = with pkgs;
- lib.concatStringsSep "\n" ([
+ lib.mkAfter (lib.concatStringsSep "\n" ([
"source ${zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
] ++ optional (length(cfg.highlighters) > 0)
"ZSH_HIGHLIGHT_HIGHLIGHTERS=(${concatStringsSep " " cfg.highlighters})"
@@ -95,6 +95,6 @@ in
styles: design:
"ZSH_HIGHLIGHT_STYLES[${styles}]='${design}'"
) cfg.styles)
- );
+ ));
};
}
diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix
index d1303f90ad8..d4bce3b49d3 100644
--- a/nixos/modules/rename.nix
+++ b/nixos/modules/rename.nix
@@ -10,6 +10,7 @@ with lib;
(mkRenamedOptionModule [ "networking" "enableRalinkFirmware" ] [ "hardware" "enableRedistributableFirmware" ])
(mkRenamedOptionModule [ "networking" "enableRTL8192cFirmware" ] [ "hardware" "enableRedistributableFirmware" ])
(mkRenamedOptionModule [ "networking" "networkmanager" "useDnsmasq" ] [ "networking" "networkmanager" "dns" ])
+ (mkRenamedOptionModule [ "networking" "connman" ] [ "services" "connman" ])
(mkChangedOptionModule [ "services" "printing" "gutenprint" ] [ "services" "printing" "drivers" ]
(config:
let enabled = getAttrFromPath [ "services" "printing" "gutenprint" ] config;
@@ -66,6 +67,8 @@ with lib;
(mkRenamedOptionModule [ "services" "clamav" "updater" "config" ] [ "services" "clamav" "updater" "extraConfig" ])
+ (mkRemovedOptionModule [ "services" "pykms" "verbose" ] "Use services.pykms.logLevel instead")
+
(mkRemovedOptionModule [ "security" "setuidOwners" ] "Use security.wrappers instead")
(mkRemovedOptionModule [ "security" "setuidPrograms" ] "Use security.wrappers instead")
@@ -133,7 +136,8 @@ with lib;
# piwik was renamed to matomo
(mkRenamedOptionModule [ "services" "piwik" "enable" ] [ "services" "matomo" "enable" ])
(mkRenamedOptionModule [ "services" "piwik" "webServerUser" ] [ "services" "matomo" "webServerUser" ])
- (mkRenamedOptionModule [ "services" "piwik" "phpfpmProcessManagerConfig" ] [ "services" "matomo" "phpfpmProcessManagerConfig" ])
+ (mkRemovedOptionModule [ "services" "piwik" "phpfpmProcessManagerConfig" ] "Use services.phpfpm.pools..settings")
+ (mkRemovedOptionModule [ "services" "matomo" "phpfpmProcessManagerConfig" ] "Use services.phpfpm.pools..settings")
(mkRenamedOptionModule [ "services" "piwik" "nginx" ] [ "services" "matomo" "nginx" ])
# tarsnap
@@ -231,7 +235,8 @@ with lib;
(mkRemovedOptionModule [ "services" "mysql" "rootPassword" ] "Use socket authentication or set the password outside of the nix store.")
(mkRemovedOptionModule [ "services" "zabbixServer" "dbPassword" ] "Use services.zabbixServer.database.passwordFile instead.")
(mkRemovedOptionModule [ "systemd" "generator-packages" ] "Use systemd.packages instead.")
- (mkRemovedOptionModule [ "systemd" "coredump" "enable" ] "Enabled by default. Set boot.kernel.sysctl.\"kernel.core_pattern\" = \"core\"; to disable.")
+ (mkRemovedOptionModule [ "fonts" "enableCoreFonts" ] "Use fonts.fonts = [ pkgs.corefonts ]; instead.")
+ (mkRemovedOptionModule [ "networking" "vpnc" ] "Use environment.etc.\"vpnc/service.conf\" instead.")
# ZSH
(mkRenamedOptionModule [ "programs" "zsh" "enableSyntaxHighlighting" ] [ "programs" "zsh" "syntaxHighlighting" "enable" ])
@@ -273,19 +278,15 @@ with lib;
(mkRenamedOptionModule [ "networking" "extraResolvconfConf" ] [ "networking" "resolvconf" "extraConfig" ])
(mkRenamedOptionModule [ "networking" "resolvconfOptions" ] [ "networking" "resolvconf" "extraOptions" ])
- # Redshift
- (mkChangedOptionModule [ "services" "redshift" "latitude" ] [ "location" "latitude" ]
- (config:
- let value = getAttrFromPath [ "services" "redshift" "latitude" ] config;
- in if value == null then
- throw "services.redshift.latitude is set to null, you can remove this"
- else builtins.fromJSON value))
- (mkChangedOptionModule [ "services" "redshift" "longitude" ] [ "location" "longitude" ]
- (config:
- let value = getAttrFromPath [ "services" "redshift" "longitude" ] config;
- in if value == null then
- throw "services.redshift.longitude is set to null, you can remove this"
- else builtins.fromJSON value))
+ # BLCR
+ (mkRemovedOptionModule [ "environment.blcr.enable" ] "The BLCR module has been removed")
+
+ # beegfs
+ (mkRemovedOptionModule [ "services.beegfsEnable" ] "The BeeGFS module has been removed")
+ (mkRemovedOptionModule [ "services.beegfs" ] "The BeeGFS module has been removed")
+
+ # osquery
+ (mkRemovedOptionModule [ "services.osquery" ] "The osquery module has been removed")
# Redis
(mkRemovedOptionModule [ "services" "redis" "user" ] "The redis module now is hardcoded to the redis user.")
@@ -300,5 +301,14 @@ with lib;
(opt: mkRemovedOptionModule [ "services" "prometheus" "${opt}" ] ''
The prometheus exporters are now configured using `services.prometheus.exporters'.
See the 18.03 release notes for more information.
+ '' ))
+
+ ++ (forEach [ "enable" "substitutions" "preset" ]
+ (opt: mkRemovedOptionModule [ "fonts" "fontconfig" "ultimate" "${opt}" ] ''
+ The fonts.fontconfig.ultimate module and configuration is obsolete.
+ The repository has since been archived and activity has ceased.
+ https://github.com/bohoomil/fontconfig-ultimate/issues/171.
+ No action should be needed for font configuration, as the fonts.fontconfig
+ module is already used by default.
'' ));
}
diff --git a/nixos/modules/security/acme.nix b/nixos/modules/security/acme.nix
index b321c04e574..9563029f030 100644
--- a/nixos/modules/security/acme.nix
+++ b/nixos/modules/security/acme.nix
@@ -20,6 +20,16 @@ let
'';
};
+ server = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ description = ''
+ ACME Directory Resource URI. Defaults to let's encrypt
+ production endpoint,
+ https://acme-v02.api.letsencrypt.org/directory, if unset.
+ '';
+ };
+
domain = mkOption {
type = types.str;
default = name;
@@ -69,9 +79,9 @@ let
plugins = mkOption {
type = types.listOf (types.enum [
"cert.der" "cert.pem" "chain.pem" "external.sh"
- "fullchain.pem" "full.pem" "key.der" "key.pem" "account_key.json"
+ "fullchain.pem" "full.pem" "key.der" "key.pem" "account_key.json" "account_reg.json"
]);
- default = [ "fullchain.pem" "full.pem" "key.pem" "account_key.json" ];
+ default = [ "fullchain.pem" "full.pem" "key.pem" "account_key.json" "account_reg.json" ];
description = ''
Plugins to enable. With default settings simp_le will
store public certificate bundle in fullchain.pem ,
@@ -109,7 +119,15 @@ in
{
###### interface
+ imports = [
+ (mkRemovedOptionModule [ "security" "acme" "production" ] ''
+ Use security.acme.server to define your staging ACME server URL instead.
+ To use the let's encrypt staging server, use security.acme.server =
+ "https://acme-staging-v02.api.letsencrypt.org/directory".
+ ''
+ )
+ ];
options = {
security.acme = {
@@ -129,6 +147,16 @@ in
'';
};
+ server = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ description = ''
+ ACME Directory Resource URI. Defaults to let's encrypt
+ production endpoint,
+ https://acme-v02.api.letsencrypt.org/directory , if unset.
+ '';
+ };
+
preliminarySelfsigned = mkOption {
type = types.bool;
default = true;
@@ -142,20 +170,6 @@ in
'';
};
- production = mkOption {
- type = types.bool;
- default = true;
- description = ''
- If set to true, use Let's Encrypt's production environment
- instead of the staging environment. The main benefit of the
- staging environment is to get much higher rate limits.
-
- See
- https://letsencrypt.org/docs/staging-environment
- for more detail.
- '';
- };
-
certs = mkOption {
default = { };
type = with types; attrsOf (submodule certOpts);
@@ -198,13 +212,24 @@ in
++ optionals (data.email != null) [ "--email" data.email ]
++ concatMap (p: [ "-f" p ]) data.plugins
++ concatLists (mapAttrsToList (name: root: [ "-d" (if root == null then name else "${name}:${root}")]) data.extraDomains)
- ++ optionals (!cfg.production) ["--server" "https://acme-staging.api.letsencrypt.org/directory"];
+ ++ optionals (cfg.server != null || data.server != null) ["--server" (if data.server == null then cfg.server else data.server)];
acmeService = {
description = "Renew ACME Certificate for ${cert}";
after = [ "network.target" "network-online.target" ];
wants = [ "network-online.target" ];
+ # simp_le uses requests, which uses certifi under the hood,
+ # which doesn't respect the system trust store.
+ # At least in the acme test, we provision a fake CA, impersonating the LE endpoint.
+ # REQUESTS_CA_BUNDLE is a way to teach python requests to use something else
+ environment.REQUESTS_CA_BUNDLE = "/etc/ssl/certs/ca-certificates.crt";
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;
SuccessExitStatus = [ "0" "1" ];
User = data.user;
Group = data.group;
diff --git a/nixos/modules/security/pam.nix b/nixos/modules/security/pam.nix
index 9c7ddc2f4ee..11227354ad3 100644
--- a/nixos/modules/security/pam.nix
+++ b/nixos/modules/security/pam.nix
@@ -351,7 +351,7 @@ let
${let oath = config.security.pam.oath; in optionalString cfg.oathAuth
"auth requisite ${pkgs.oathToolkit}/lib/security/pam_oath.so window=${toString oath.window} usersfile=${toString oath.usersFile} digits=${toString oath.digits}"}
${let yubi = config.security.pam.yubico; in optionalString cfg.yubicoAuth
- "auth ${yubi.control} ${pkgs.yubico-pam}/lib/security/pam_yubico.so id=${toString yubi.id} ${optionalString yubi.debug "debug"}"}
+ "auth ${yubi.control} ${pkgs.yubico-pam}/lib/security/pam_yubico.so mode=${toString yubi.mode} ${optionalString (yubi.mode == "client") "id=${toString yubi.id}"} ${optionalString yubi.debug "debug"}"}
'' +
# Modules in this block require having the password set in PAM_AUTHTOK.
# pam_unix is marked as 'sufficient' on NixOS which means nothing will run
@@ -415,7 +415,7 @@ let
# Session management.
${optionalString cfg.setEnvironment ''
- session required pam_env.so envfile=${config.system.build.pamEnvironment}
+ session required pam_env.so conffile=${config.system.build.pamEnvironment} readenv=0
''}
session required pam_unix.so
${optionalString cfg.setLoginUid
@@ -696,6 +696,23 @@ in
Debug output to stderr.
'';
};
+ mode = mkOption {
+ default = "client";
+ type = types.enum [ "client" "challenge-response" ];
+ description = ''
+ Mode of operation.
+
+ Use "client" for online validation with a YubiKey validation service such as
+ the YubiCloud.
+
+ Use "challenge-response" for offline validation using YubiKeys with HMAC-SHA-1
+ Challenge-Response configurations. See the man-page ykpamcfg(1) for further
+ details on how to configure offline Challenge-Response validation.
+
+ More information can be found here.
+ '';
+ };
};
security.pam.enableEcryptfs = mkOption {
@@ -742,13 +759,6 @@ in
environment.etc =
mapAttrsToList (n: v: makePAMService v) config.security.pam.services;
- systemd.tmpfiles.rules = optionals
- (any (s: s.updateWtmp) (attrValues config.security.pam.services))
- [
- "f /var/log/wtmp"
- "f /var/log/lastlog"
- ];
-
security.pam.services =
{ other.text =
''
diff --git a/nixos/modules/security/pam_mount.nix b/nixos/modules/security/pam_mount.nix
index 8b131c54a2a..75f58462d13 100644
--- a/nixos/modules/security/pam_mount.nix
+++ b/nixos/modules/security/pam_mount.nix
@@ -50,9 +50,6 @@ in
- ${concatStrings (map userVolumeEntry (attrValues extraUserVolumes))}
- ${concatStringsSep "\n" cfg.extraVolumes}
-
@@ -64,6 +61,9 @@ in
${pkgs.pam_mount}/bin/mount.crypt %(VOLUME) %(MNTPT)
${pkgs.pam_mount}/bin/umount.crypt %(MNTPT)
${pkgs.pam_mount}/bin/pmvarrun -u %(USER) -o %(OPERATION)
+
+ ${concatStrings (map userVolumeEntry (attrValues extraUserVolumes))}
+ ${concatStringsSep "\n" cfg.extraVolumes}
'';
}];
diff --git a/nixos/modules/services/admin/oxidized.nix b/nixos/modules/services/admin/oxidized.nix
index 39112c3970d..da81be3f23e 100644
--- a/nixos/modules/services/admin/oxidized.nix
+++ b/nixos/modules/services/admin/oxidized.nix
@@ -89,6 +89,7 @@ in
group = cfg.group;
home = cfg.dataDir;
createHome = true;
+ isSystemUser = true;
};
systemd.services.oxidized = {
diff --git a/nixos/modules/services/amqp/rabbitmq.nix b/nixos/modules/services/amqp/rabbitmq.nix
index 302b94de196..697732426cc 100644
--- a/nixos/modules/services/amqp/rabbitmq.nix
+++ b/nixos/modules/services/amqp/rabbitmq.nix
@@ -80,7 +80,7 @@ in {
configItems = mkOption {
default = {};
type = types.attrsOf types.str;
- example = ''
+ example = literalExample ''
{
"auth_backends.1.authn" = "rabbit_auth_backend_ldap";
"auth_backends.1.authz" = "rabbit_auth_backend_internal";
diff --git a/nixos/modules/services/audio/jack.nix b/nixos/modules/services/audio/jack.nix
index aa3351f401a..ceff366d0bb 100644
--- a/nixos/modules/services/audio/jack.nix
+++ b/nixos/modules/services/audio/jack.nix
@@ -223,6 +223,7 @@ in {
group = "jackaudio";
extraGroups = [ "audio" ];
description = "JACK Audio system service user";
+ isSystemUser = true;
};
# http://jackaudio.org/faq/linux_rt_config.html
security.pam.loginLimits = [
diff --git a/nixos/modules/services/audio/mpd.nix b/nixos/modules/services/audio/mpd.nix
index 0df8f9688d2..7932d094197 100644
--- a/nixos/modules/services/audio/mpd.nix
+++ b/nixos/modules/services/audio/mpd.nix
@@ -18,7 +18,6 @@ let
''}
state_file "${cfg.dataDir}/state"
sticker_file "${cfg.dataDir}/sticker.sql"
- log_file "syslog"
user "${cfg.user}"
group "${cfg.group}"
@@ -181,6 +180,7 @@ in {
ProtectKernelModules = true;
RestrictAddressFamilies = "AF_INET AF_INET6 AF_UNIX AF_NETLINK";
RestrictNamespaces = true;
+ Restart = "always";
};
};
diff --git a/nixos/modules/services/audio/spotifyd.nix b/nixos/modules/services/audio/spotifyd.nix
index e3556b2559c..4b74e753279 100644
--- a/nixos/modules/services/audio/spotifyd.nix
+++ b/nixos/modules/services/audio/spotifyd.nix
@@ -28,7 +28,7 @@ in
after = [ "network-online.target" "sound.target" ];
description = "spotifyd, a Spotify playing daemon";
serviceConfig = {
- ExecStart = "${pkgs.spotifyd}/bin/spotifyd --no-daemon --cache_path /var/cache/spotifyd --config ${spotifydConf}";
+ ExecStart = "${pkgs.spotifyd}/bin/spotifyd --no-daemon --cache-path /var/cache/spotifyd --config-path ${spotifydConf}";
Restart = "always";
RestartSec = 12;
DynamicUser = true;
diff --git a/nixos/modules/services/backup/automysqlbackup.nix b/nixos/modules/services/backup/automysqlbackup.nix
index 1884f3536a9..e3a8d1f7993 100644
--- a/nixos/modules/services/backup/automysqlbackup.nix
+++ b/nixos/modules/services/backup/automysqlbackup.nix
@@ -99,7 +99,10 @@ in
environment.systemPackages = [ pkg ];
- users.users.${user}.group = group;
+ users.users.${user} = {
+ group = group;
+ isSystemUser = true;
+ };
users.groups.${group} = { };
systemd.tmpfiles.rules = [
diff --git a/nixos/modules/services/backup/borgbackup.nix b/nixos/modules/services/backup/borgbackup.nix
index 2ad116a7872..10d42325a6b 100644
--- a/nixos/modules/services/backup/borgbackup.nix
+++ b/nixos/modules/services/backup/borgbackup.nix
@@ -8,7 +8,7 @@ let
builtins.substring 0 1 x == "/" # absolute path
|| builtins.substring 0 1 x == "." # relative path
|| builtins.match "[.*:.*]" == null; # not machine:path
-
+
mkExcludeFile = cfg:
# Write each exclude pattern to a new line
pkgs.writeText "excludefile" (concatStringsSep "\n" cfg.exclude);
@@ -104,12 +104,12 @@ let
install = "install -o ${cfg.user} -g ${cfg.group}";
in
nameValuePair "borgbackup-job-${name}" (stringAfter [ "users" ] (''
- # Eensure that the home directory already exists
+ # Ensure that the home directory already exists
# We can't assert createHome == true because that's not the case for root
- cd "${config.users.users.${cfg.user}.home}"
+ cd "${config.users.users.${cfg.user}.home}"
${install} -d .config/borg
${install} -d .cache/borg
- '' + optionalString (isLocalPath cfg.repo) ''
+ '' + optionalString (isLocalPath cfg.repo && !cfg.removableDevice) ''
${install} -d ${escapeShellArg cfg.repo}
''));
@@ -163,6 +163,13 @@ let
+ " without at least one public key";
};
+ mkRemovableDeviceAssertions = name: cfg: {
+ assertion = !(isLocalPath cfg.repo) -> !cfg.removableDevice;
+ message = ''
+ borgbackup.repos.${name}: repo isn't a local path, thus it can't be a removable device!
+ '';
+ };
+
in {
meta.maintainers = with maintainers; [ dotlambda ];
@@ -202,6 +209,12 @@ in {
example = "user@machine:/path/to/repo";
};
+ removableDevice = mkOption {
+ type = types.bool;
+ default = false;
+ description = "Whether the repo (which must be local) is a removable device.";
+ };
+
archiveBaseName = mkOption {
type = types.strMatching "[^/{}]+";
default = "${globalConfig.networking.hostName}-${name}";
@@ -511,7 +524,6 @@ in {
type = types.attrsOf (types.submodule (
{ ... }: {
options = {
-
path = mkOption {
type = types.path;
description = ''
@@ -598,7 +610,8 @@ in {
(with config.services.borgbackup; {
assertions =
mapAttrsToList mkPassAssertion jobs
- ++ mapAttrsToList mkKeysAssertion repos;
+ ++ mapAttrsToList mkKeysAssertion repos
+ ++ mapAttrsToList mkRemovableDeviceAssertions jobs;
system.activationScripts = mapAttrs' mkActivationScript jobs;
diff --git a/nixos/modules/services/backup/postgresql-wal-receiver.nix b/nixos/modules/services/backup/postgresql-wal-receiver.nix
index d9a37037992..3d9869d5343 100644
--- a/nixos/modules/services/backup/postgresql-wal-receiver.nix
+++ b/nixos/modules/services/backup/postgresql-wal-receiver.nix
@@ -169,13 +169,14 @@ in {
systemd.services = with attrsets; mapAttrs' (name: config: nameValuePair "postgresql-wal-receiver-${name}" {
description = "PostgreSQL WAL receiver (${name})";
wantedBy = [ "multi-user.target" ];
+ startLimitIntervalSec = 0; # retry forever, useful in case of network disruption
serviceConfig = {
User = "postgres";
Group = "postgres";
KillSignal = "SIGINT";
Restart = "always";
- RestartSec = 30;
+ RestartSec = 60;
};
inherit (config) environment;
diff --git a/nixos/modules/services/backup/znapzend.nix b/nixos/modules/services/backup/znapzend.nix
index f317078ddda..203631a577f 100644
--- a/nixos/modules/services/backup/znapzend.nix
+++ b/nixos/modules/services/backup/znapzend.nix
@@ -34,6 +34,8 @@ let
description = "string of the form number{b|k|M|G}";
};
+ enabledFeatures = concatLists (mapAttrsToList (name: enabled: optional enabled name) cfg.features);
+
# Type for a string that must contain certain other strings (the list parameter).
# Note that these would need regex escaping.
stringContainingStrings = list: let
@@ -354,6 +356,22 @@ in
'';
default = false;
};
+
+ features.recvu = mkEnableOption ''
+ recvu feature which uses -u on the receiving end to keep the destination
+ filesystem unmounted.
+ '';
+ features.compressed = mkEnableOption ''
+ compressed feature which adds the options -Lce to
+ the zfs send command. When this is enabled, make
+ sure that both the sending and receiving pool have the same relevant
+ features enabled. Using -c will skip unneccessary
+ decompress-compress stages, -L is for large block
+ support and -e is for embedded data support. see
+ znapzend 1
+ and zfs 8
+ for more info.
+ '';
};
};
@@ -381,12 +399,22 @@ in
'';
serviceConfig = {
+ # znapzendzetup --import apparently tries to connect to the backup
+ # host 3 times with a timeout of 30 seconds, leading to a startup
+ # delay of >90s when the host is down, which is just above the default
+ # service timeout of 90 seconds. Increase the timeout so it doesn't
+ # make the service fail in that case.
+ TimeoutStartSec = 180;
+ # Needs to have write access to ZFS
+ User = "root";
ExecStart = let
args = concatStringsSep " " [
"--logto=${cfg.logTo}"
"--loglevel=${cfg.logLevel}"
(optionalString cfg.noDestroy "--nodestroy")
(optionalString cfg.autoCreation "--autoCreation")
+ (optionalString (enabledFeatures != [])
+ "--features=${concatStringsSep "," enabledFeatures}")
]; in "${pkgs.znapzend}/bin/znapzend ${args}";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
Restart = "on-failure";
diff --git a/nixos/modules/services/cluster/kubernetes/addons/dns.nix b/nixos/modules/services/cluster/kubernetes/addons/dns.nix
index 47e588de3c9..f12e866930d 100644
--- a/nixos/modules/services/cluster/kubernetes/addons/dns.nix
+++ b/nixos/modules/services/cluster/kubernetes/addons/dns.nix
@@ -3,7 +3,7 @@
with lib;
let
- version = "1.5.0";
+ version = "1.6.4";
cfg = config.services.kubernetes.addons.dns;
ports = {
dns = 10053;
@@ -55,9 +55,9 @@ in {
type = types.attrs;
default = {
imageName = "coredns/coredns";
- imageDigest = "sha256:e83beb5e43f8513fa735e77ffc5859640baea30a882a11cc75c4c3244a737d3c";
+ imageDigest = "sha256:493ee88e1a92abebac67cbd4b5658b4730e0f33512461442d8d9214ea6734a9b";
finalImageTag = version;
- sha256 = "15sbmhrxjxidj0j0cccn1qxpg6al175w43m6ngspl0mc132zqc9q";
+ sha256 = "0fm9zdjavpf5hni8g7fkdd3csjbhd7n7py7llxjc66sbii087028";
};
};
};
@@ -68,7 +68,7 @@ in {
services.kubernetes.addonManager.bootstrapAddons = {
coredns-cr = {
- apiVersion = "rbac.authorization.k8s.io/v1beta1";
+ apiVersion = "rbac.authorization.k8s.io/v1";
kind = "ClusterRole";
metadata = {
labels = {
@@ -94,7 +94,7 @@ in {
};
coredns-crb = {
- apiVersion = "rbac.authorization.k8s.io/v1beta1";
+ apiVersion = "rbac.authorization.k8s.io/v1";
kind = "ClusterRoleBinding";
metadata = {
annotations = {
@@ -170,7 +170,7 @@ in {
};
coredns-deploy = {
- apiVersion = "extensions/v1beta1";
+ apiVersion = "apps/v1";
kind = "Deployment";
metadata = {
labels = {
diff --git a/nixos/modules/services/cluster/kubernetes/flannel.nix b/nixos/modules/services/cluster/kubernetes/flannel.nix
index d799e638fc9..548ffed1ddb 100644
--- a/nixos/modules/services/cluster/kubernetes/flannel.nix
+++ b/nixos/modules/services/cluster/kubernetes/flannel.nix
@@ -40,6 +40,7 @@ in
cni.config = mkDefault [{
name = "mynet";
type = "flannel";
+ cniVersion = "0.3.1";
delegate = {
isDefaultGateway = true;
bridge = "docker0";
diff --git a/nixos/modules/services/cluster/kubernetes/kubelet.nix b/nixos/modules/services/cluster/kubernetes/kubelet.nix
index 250da4c807e..62d893dfefc 100644
--- a/nixos/modules/services/cluster/kubernetes/kubelet.nix
+++ b/nixos/modules/services/cluster/kubernetes/kubelet.nix
@@ -92,7 +92,7 @@ in
default = [];
example = literalExample ''
[{
- "cniVersion": "0.2.0",
+ "cniVersion": "0.3.1",
"name": "mynet",
"type": "bridge",
"bridge": "cni0",
@@ -106,7 +106,7 @@ in
]
}
} {
- "cniVersion": "0.2.0",
+ "cniVersion": "0.3.1",
"type": "loopback"
}]
'';
diff --git a/nixos/modules/services/cluster/kubernetes/proxy.nix b/nixos/modules/services/cluster/kubernetes/proxy.nix
index bd4bf04ea83..3943c908840 100644
--- a/nixos/modules/services/cluster/kubernetes/proxy.nix
+++ b/nixos/modules/services/cluster/kubernetes/proxy.nix
@@ -31,6 +31,12 @@ in
type = listOf str;
};
+ hostname = mkOption {
+ description = "Kubernetes proxy hostname override.";
+ default = config.networking.hostName;
+ type = str;
+ };
+
kubeconfig = top.lib.mkKubeConfigOptions "Kubernetes proxy";
verbosity = mkOption {
@@ -59,6 +65,7 @@ in
"--cluster-cidr=${top.clusterCidr}"} \
${optionalString (cfg.featureGates != [])
"--feature-gates=${concatMapStringsSep "," (feature: "${feature}=true") cfg.featureGates}"} \
+ --hostname-override=${cfg.hostname} \
--kubeconfig=${top.lib.mkKubeConfig "kube-proxy" cfg.kubeconfig} \
${optionalString (cfg.verbosity != null) "--v=${toString cfg.verbosity}"} \
${cfg.extraOpts}
@@ -69,6 +76,8 @@ in
};
};
+ services.kubernetes.proxy.hostname = with config.networking; mkDefault hostName;
+
services.kubernetes.pki.certs = {
kubeProxyClient = top.lib.mkCert {
name = "kube-proxy-client";
diff --git a/nixos/modules/services/computing/slurm/slurm.nix b/nixos/modules/services/computing/slurm/slurm.nix
index d1a1383e45b..c70d999ca96 100644
--- a/nixos/modules/services/computing/slurm/slurm.nix
+++ b/nixos/modules/services/computing/slurm/slurm.nix
@@ -18,7 +18,7 @@ let
${optionalString (cfg.controlAddr != null) ''controlAddr=${cfg.controlAddr}''}
${toString (map (x: "NodeName=${x}\n") cfg.nodeName)}
${toString (map (x: "PartitionName=${x}\n") cfg.partitionName)}
- PlugStackConfig=${plugStackConfig}
+ PlugStackConfig=${plugStackConfig}/plugstack.conf
ProctrackType=${cfg.procTrackType}
${cfg.extraConfig}
'';
@@ -39,6 +39,8 @@ let
DbdHost=${cfg.dbdserver.dbdHost}
SlurmUser=${cfg.user}
StorageType=accounting_storage/mysql
+ StorageUser=${cfg.dbdserver.storageUser}
+ ${optionalString (cfg.dbdserver.storagePass != null) "StoragePass=${cfg.dbdserver.storagePass}"}
${cfg.dbdserver.extraConfig}
'';
@@ -48,7 +50,6 @@ let
name = "etc-slurm";
paths = [ configFile cgroupConfig plugStackConfig ] ++ cfg.extraConfigPaths;
};
-
in
{
@@ -86,6 +87,37 @@ in
'';
};
+ storageUser = mkOption {
+ type = types.str;
+ default = cfg.user;
+ description = ''
+ Database user name.
+ '';
+ };
+
+ storagePass = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ description = ''
+ Database password. Note that this password will be publicable
+ readable in the nix store. Use configFile
+ to store the and config file and password outside the nix store.
+ '';
+ };
+
+ configFile = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ description = ''
+ Path to slurmdbd.conf . The password for the database connection
+ is stored in the config file. Use this option to specfify a path
+ outside the nix store. If this option is unset a configuration file
+ will be generated. See also:
+ slurmdbd.conf
+ 8 .
+ '';
+ };
+
extraConfig = mkOption {
type = types.lines;
default = "";
@@ -112,7 +144,7 @@ in
package = mkOption {
type = types.package;
- default = pkgs.slurm;
+ default = pkgs.slurm.override { enableX11 = ! cfg.enableSrunX11; };
defaultText = "pkgs.slurm";
example = literalExample "pkgs.slurm-full";
description = ''
@@ -178,9 +210,14 @@ in
If enabled srun will accept the option "--x11" to allow for X11 forwarding
from within an interactive session or a batch job. This activates the
slurm-spank-x11 module. Note that this option also enables
- 'services.openssh.forwardX11' on the client.
+ services.openssh.forwardX11 on the client.
This option requires slurm to be compiled without native X11 support.
+ The default behavior is to re-compile the slurm package with native X11
+ support disabled if this option is set to true.
+
+ To use the native X11 support add PrologFlags=X11 in extraConfig .
+ Note that this method will only work RSA SSH host keys.
'';
};
@@ -356,7 +393,11 @@ in
requires = [ "munged.service" "mysql.service" ];
# slurm strips the last component off the path
- environment.SLURM_CONF = "${slurmdbdConf}/slurm.conf";
+ environment.SLURM_CONF =
+ if (cfg.dbdserver.configFile == null) then
+ "${slurmdbdConf}/slurm.conf"
+ else
+ cfg.dbdserver.configFile;
serviceConfig = {
Type = "forking";
diff --git a/nixos/modules/services/continuous-integration/buildkite-agent.nix b/nixos/modules/services/continuous-integration/buildkite-agent.nix
index 12cc3d2b1cc..32f361454bc 100644
--- a/nixos/modules/services/continuous-integration/buildkite-agent.nix
+++ b/nixos/modules/services/continuous-integration/buildkite-agent.nix
@@ -191,6 +191,7 @@ in
createHome = true;
description = "Buildkite agent user";
extraGroups = [ "keys" ];
+ isSystemUser = true;
};
environment.systemPackages = [ cfg.package ];
diff --git a/nixos/modules/services/continuous-integration/hydra/default.nix b/nixos/modules/services/continuous-integration/hydra/default.nix
index 500acb48562..30c5550f71c 100644
--- a/nixos/modules/services/continuous-integration/hydra/default.nix
+++ b/nixos/modules/services/continuous-integration/hydra/default.nix
@@ -242,8 +242,8 @@ in
environment.variables = hydraEnv;
nix.extraOptions = ''
- gc-keep-outputs = true
- gc-keep-derivations = true
+ keep-outputs = true
+ keep-derivations = true
# The default (`true') slows Nix down a lot since the build farm
# has so many GC roots.
@@ -275,6 +275,7 @@ in
${pkgs.sudo}/bin/sudo -u ${config.services.postgresql.superUser} ${config.services.postgresql.package}/bin/createdb -O hydra hydra
touch ${baseDir}/.db-created
fi
+ echo "create extension if not exists pg_trgm" | ${pkgs.sudo}/bin/sudo -u ${config.services.postgresql.superUser} -- ${config.services.postgresql.package}/bin/psql hydra
''}
if [ ! -e ${cfg.gcRootsDir} ]; then
@@ -379,6 +380,23 @@ in
};
};
+ systemd.services.hydra-notify =
+ { wantedBy = [ "multi-user.target" ];
+ requires = [ "hydra-init.service" ];
+ after = [ "hydra-init.service" ];
+ restartTriggers = [ hydraConf ];
+ environment = env // {
+ PGPASSFILE = "${baseDir}/pgpass-queue-runner";
+ };
+ serviceConfig =
+ { ExecStart = "@${cfg.package}/bin/hydra-notify hydra-notify";
+ # FIXME: run this under a less privileged user?
+ User = "hydra-queue-runner";
+ Restart = "always";
+ RestartSec = 5;
+ };
+ };
+
# If there is less than a certain amount of free disk space, stop
# the queue/evaluator to prevent builds from failing or aborting.
systemd.services.hydra-check-space =
@@ -416,6 +434,8 @@ in
hydra-users hydra-queue-runner hydra
hydra-users hydra-www hydra
hydra-users root hydra
+ # The postgres user is used to create the pg_trgm extension for the hydra database
+ hydra-users postgres postgres
'';
services.postgresql.authentication = optionalString haveLocalDB
diff --git a/nixos/modules/services/continuous-integration/jenkins/default.nix b/nixos/modules/services/continuous-integration/jenkins/default.nix
index ec6a36413fe..0ec90671388 100644
--- a/nixos/modules/services/continuous-integration/jenkins/default.nix
+++ b/nixos/modules/services/continuous-integration/jenkins/default.nix
@@ -193,7 +193,7 @@ in {
then ""
else
let pluginCmds = lib.attrsets.mapAttrsToList
- (n: v: "cp ${v} ${cfg.home}/plugins/${n}.hpi")
+ (n: v: "cp ${v} ${cfg.home}/plugins/${n}.jpi")
cfg.plugins;
in ''
rm -r ${cfg.home}/plugins || true
diff --git a/nixos/modules/services/databases/memcached.nix b/nixos/modules/services/databases/memcached.nix
index 84d2c8674f4..d1dfdb41bf4 100644
--- a/nixos/modules/services/databases/memcached.nix
+++ b/nixos/modules/services/databases/memcached.nix
@@ -67,6 +67,7 @@ in
users.users = optional (cfg.user == "memcached") {
name = "memcached";
description = "Memcached server user";
+ isSystemUser = true;
};
environment.systemPackages = [ memcached ];
diff --git a/nixos/modules/services/databases/mysql.nix b/nixos/modules/services/databases/mysql.nix
index 9f7727bb89f..5549cfa5cf4 100644
--- a/nixos/modules/services/databases/mysql.nix
+++ b/nixos/modules/services/databases/mysql.nix
@@ -268,8 +268,13 @@ in
port = ${toString cfg.port}
datadir = ${cfg.dataDir}
${optionalString (cfg.bind != null) "bind-address = ${cfg.bind}" }
- ${optionalString (cfg.replication.role == "master" || cfg.replication.role == "slave") "log-bin=mysql-bin"}
- ${optionalString (cfg.replication.role == "master" || cfg.replication.role == "slave") "server-id = ${toString cfg.replication.serverId}"}
+ ${optionalString (cfg.replication.role == "master" || cfg.replication.role == "slave")
+ ''
+ log-bin=mysql-bin-${toString cfg.replication.serverId}
+ log-bin-index=mysql-bin-${toString cfg.replication.serverId}.index
+ relay-log=mysql-relay-bin
+ server-id = ${toString cfg.replication.serverId}
+ ''}
${optionalString (cfg.ensureUsers != [])
''
plugin-load-add = auth_socket.so
@@ -377,6 +382,7 @@ in
( echo "stop slave;"
echo "change master to master_host='${cfg.replication.masterHost}', master_user='${cfg.replication.masterUser}', master_password='${cfg.replication.masterPassword}';"
+ echo "set global slave_exec_mode='IDEMPOTENT';"
echo "start slave;"
) | ${mysql}/bin/mysql -u root -N
''}
diff --git a/nixos/modules/services/databases/postgresql.nix b/nixos/modules/services/databases/postgresql.nix
index 7bba4dacddc..3bedfe96a18 100644
--- a/nixos/modules/services/databases/postgresql.nix
+++ b/nixos/modules/services/databases/postgresql.nix
@@ -226,7 +226,8 @@ in
# Note: when changing the default, make it conditional on
# ‘system.stateVersion’ to maintain compatibility with existing
# systems!
- mkDefault (if versionAtLeast config.system.stateVersion "17.09" then pkgs.postgresql_9_6
+ mkDefault (if versionAtLeast config.system.stateVersion "20.03" then pkgs.postgresql_11
+ else if versionAtLeast config.system.stateVersion "17.09" then pkgs.postgresql_9_6
else if versionAtLeast config.system.stateVersion "16.03" then pkgs.postgresql_9_5
else throw "postgresql_9_4 was removed, please upgrade your postgresql version.");
diff --git a/nixos/modules/services/databases/redis.nix b/nixos/modules/services/databases/redis.nix
index 9c389d80a6d..95128a641d9 100644
--- a/nixos/modules/services/databases/redis.nix
+++ b/nixos/modules/services/databases/redis.nix
@@ -185,27 +185,22 @@ in
###### implementation
config = mkIf config.services.redis.enable {
-
- boot.kernel.sysctl = mkIf cfg.vmOverCommit {
- "vm.overcommit_memory" = "1";
- };
+ boot.kernel.sysctl = (mkMerge [
+ { "vm.nr_hugepages" = "0"; }
+ ( mkIf cfg.vmOverCommit { "vm.overcommit_memory" = "1"; } )
+ ]);
networking.firewall = mkIf cfg.openFirewall {
allowedTCPPorts = [ cfg.port ];
};
- users.users.redis.description = "Redis database user";
+ users.users.redis = {
+ description = "Redis database user";
+ isSystemUser = true;
+ };
environment.systemPackages = [ cfg.package ];
- systemd.services.disable-transparent-huge-pages = {
- description = "Disable Transparent Huge Pages (required by Redis)";
- before = [ "redis.service" ];
- wantedBy = [ "redis.service" ];
- script = "echo never > /sys/kernel/mm/transparent_hugepage/enabled";
- serviceConfig.Type = "oneshot";
- };
-
systemd.services.redis =
{ description = "Redis Server";
diff --git a/nixos/modules/services/databases/rethinkdb.nix b/nixos/modules/services/databases/rethinkdb.nix
index 4828e594b32..f18fbaf5b06 100644
--- a/nixos/modules/services/databases/rethinkdb.nix
+++ b/nixos/modules/services/databases/rethinkdb.nix
@@ -99,6 +99,7 @@ in
users.users.rethinkdb = mkIf (cfg.user == "rethinkdb")
{ name = "rethinkdb";
description = "RethinkDB server user";
+ isSystemUser = true;
};
users.groups = optionalAttrs (cfg.group == "rethinkdb") (singleton
diff --git a/nixos/modules/services/desktops/geoclue2.nix b/nixos/modules/services/desktops/geoclue2.nix
index 6007dddf50c..542b2ead410 100644
--- a/nixos/modules/services/desktops/geoclue2.nix
+++ b/nixos/modules/services/desktops/geoclue2.nix
@@ -188,34 +188,41 @@ in
systemd.packages = [ package ];
- users.users.geoclue = {
- isSystemUser = true;
- home = "/var/lib/geoclue";
- group = "geoclue";
- description = "Geoinformation service";
+ # we cannot use DynamicUser as we need the the geoclue user to exist for the dbus policy to work
+ users = {
+ users.geoclue = {
+ isSystemUser = true;
+ home = "/var/lib/geoclue";
+ group = "geoclue";
+ description = "Geoinformation service";
+ };
+
+ groups.geoclue = {};
};
- users.groups.geoclue = {};
-
- systemd.tmpfiles.rules = [
- "d /var/lib/geoclue 0755 geoclue geoclue"
- ];
-
- # restart geoclue service when the configuration changes
- systemd.services.geoclue.restartTriggers = [
- config.environment.etc."geoclue/geoclue.conf".source
- ];
+ systemd.services.geoclue = {
+ # restart geoclue service when the configuration changes
+ restartTriggers = [
+ config.environment.etc."geoclue/geoclue.conf".source
+ ];
+ serviceConfig.StateDirectory = "geoclue";
+ };
# this needs to run as a user service, since it's associated with the
# user who is making the requests
systemd.user.services = mkIf cfg.enableDemoAgent {
geoclue-agent = {
description = "Geoclue agent";
- script = "${package}/libexec/geoclue-2.0/demos/agent";
# this should really be `partOf = [ "geoclue.service" ]`, but
# we can't be part of a system service, and the agent should
# be okay with the main service coming and going
wantedBy = [ "default.target" ];
+ serviceConfig = {
+ Type = "exec";
+ ExecStart = "${package}/libexec/geoclue-2.0/demos/agent";
+ Restart = "on-failure";
+ PrivateTmp = true;
+ };
};
};
@@ -256,4 +263,6 @@ in
};
} // mapAttrs' appConfigToINICompatible cfg.appConfig);
};
+
+ meta.maintainers = with lib.maintainers; [ worldofpeace ];
}
diff --git a/nixos/modules/services/desktops/gnome3/gnome-initial-setup.nix b/nixos/modules/services/desktops/gnome3/gnome-initial-setup.nix
new file mode 100644
index 00000000000..d715d52c2d0
--- /dev/null
+++ b/nixos/modules/services/desktops/gnome3/gnome-initial-setup.nix
@@ -0,0 +1,86 @@
+# GNOME Initial Setup.
+
+{ config, pkgs, lib, ... }:
+
+with lib;
+
+let
+
+ # GNOME initial setup's run is conditioned on whether
+ # the gnome-initial-setup-done file exists in XDG_CONFIG_HOME
+ # Because of this, every existing user will have initial setup
+ # running because they never ran it before.
+ #
+ # To prevent this we create the file if the users stateVersion
+ # is older than 20.03 (the release we added this module).
+
+ script = pkgs.writeScript "create-gis-stamp-files" ''
+ #!${pkgs.runtimeShell}
+ setup_done=$HOME/.config/gnome-initial-setup-done
+
+ echo "Creating g-i-s stamp file $setup_done ..."
+ cat - > $setup_done <<- EOF
+ yes
+ EOF
+ '';
+
+ createGisStampFilesAutostart = pkgs.writeTextFile rec {
+ name = "create-g-i-s-stamp-files";
+ destination = "/etc/xdg/autostart/${name}.desktop";
+ text = ''
+ [Desktop Entry]
+ Type=Application
+ Name=Create GNOME Initial Setup stamp files
+ Exec=${script}
+ StartupNotify=false
+ NoDisplay=true
+ OnlyShowIn=GNOME;
+ AutostartCondition=unless-exists gnome-initial-setup-done
+ X-GNOME-Autostart-Phase=EarlyInitialization
+ '';
+ };
+
+in
+
+{
+
+ ###### interface
+
+ options = {
+
+ services.gnome3.gnome-initial-setup = {
+
+ enable = mkEnableOption "GNOME Initial Setup, a Simple, easy, and safe way to prepare a new system";
+
+ };
+
+ };
+
+
+ ###### implementation
+
+ config = mkIf config.services.gnome3.gnome-initial-setup.enable {
+
+ environment.systemPackages = [
+ pkgs.gnome3.gnome-initial-setup
+ ]
+ ++ optional (versionOlder config.system.stateVersion "20.03") createGisStampFilesAutostart
+ ;
+
+ systemd.packages = [
+ pkgs.gnome3.gnome-initial-setup
+ ];
+
+ systemd.user.targets."gnome-session".wants = [
+ "gnome-initial-setup-copy-worker.service"
+ "gnome-initial-setup-first-login.service"
+ "gnome-welcome-tour.service"
+ ];
+
+ systemd.user.targets."gnome-session@gnome-initial-setup".wants = [
+ "gnome-initial-setup.service"
+ ];
+
+ };
+
+}
diff --git a/nixos/modules/services/desktops/gnome3/gnome-settings-daemon.nix b/nixos/modules/services/desktops/gnome3/gnome-settings-daemon.nix
index 7f7adcf26ac..2f83fd653bd 100644
--- a/nixos/modules/services/desktops/gnome3/gnome-settings-daemon.nix
+++ b/nixos/modules/services/desktops/gnome3/gnome-settings-daemon.nix
@@ -12,6 +12,12 @@ in
{
+ imports = [
+ (mkRemovedOptionModule
+ ["services" "gnome3" "gnome-settings-daemon" "package"]
+ "")
+ ];
+
###### interface
options = {
@@ -20,13 +26,6 @@ in
enable = mkEnableOption "GNOME Settings Daemon";
- # There are many forks of gnome-settings-daemon
- package = mkOption {
- type = types.package;
- default = pkgs.gnome3.gnome-settings-daemon;
- description = "Which gnome-settings-daemon package to use.";
- };
-
};
};
@@ -36,9 +35,39 @@ in
config = mkIf cfg.enable {
- environment.systemPackages = [ cfg.package ];
+ environment.systemPackages = [
+ pkgs.gnome3.gnome-settings-daemon
+ ];
- services.udev.packages = [ cfg.package ];
+ services.udev.packages = [
+ pkgs.gnome3.gnome-settings-daemon
+ ];
+
+ systemd.packages = [
+ pkgs.gnome3.gnome-settings-daemon
+ ];
+
+ systemd.user.targets."gnome-session-initialized".wants = [
+ "gsd-color.target"
+ "gsd-datetime.target"
+ "gsd-keyboard.target"
+ "gsd-media-keys.target"
+ "gsd-print-notifications.target"
+ "gsd-rfkill.target"
+ "gsd-screensaver-proxy.target"
+ "gsd-sharing.target"
+ "gsd-smartcard.target"
+ "gsd-sound.target"
+ "gsd-wacom.target"
+ "gsd-wwan.target"
+ "gsd-a11y-settings.target"
+ "gsd-housekeeping.target"
+ "gsd-power.target"
+ ];
+
+ systemd.user.targets."gnome-session-x11-services".wants = [
+ "gsd-xsettings.target"
+ ];
};
diff --git a/nixos/modules/services/desktops/system-config-printer.nix b/nixos/modules/services/desktops/system-config-printer.nix
index 8a80be266b2..09c68c587b4 100644
--- a/nixos/modules/services/desktops/system-config-printer.nix
+++ b/nixos/modules/services/desktops/system-config-printer.nix
@@ -33,6 +33,9 @@ with lib;
pkgs.system-config-printer
];
+ # for $out/bin/install-printer-driver
+ services.packagekit.enable = true;
+
};
}
diff --git a/nixos/modules/services/desktops/tumbler.nix b/nixos/modules/services/desktops/tumbler.nix
index d18088d4634..a833e99ff8c 100644
--- a/nixos/modules/services/desktops/tumbler.nix
+++ b/nixos/modules/services/desktops/tumbler.nix
@@ -7,12 +7,17 @@ with lib;
let
cfg = config.services.tumbler;
- tumbler = cfg.package;
in
{
+ imports = [
+ (mkRemovedOptionModule
+ [ "services" "tumbler" "package" ]
+ "")
+ ];
+
###### interface
options = {
@@ -21,13 +26,6 @@ in
enable = mkEnableOption "Tumbler, A D-Bus thumbnailer service";
- package = mkOption {
- type = types.package;
- default = pkgs.xfce4-14.tumbler;
- description = "Which tumbler package to use";
- example = pkgs.xfce4-12.tumbler;
- };
-
};
};
@@ -37,11 +35,11 @@ in
config = mkIf cfg.enable {
- environment.systemPackages = [
+ environment.systemPackages = with pkgs.xfce; [
tumbler
];
- services.dbus.packages = [
+ services.dbus.packages = with pkgs.xfce; [
tumbler
];
diff --git a/nixos/modules/services/development/lorri.nix b/nixos/modules/services/development/lorri.nix
new file mode 100644
index 00000000000..68264ee869d
--- /dev/null
+++ b/nixos/modules/services/development/lorri.nix
@@ -0,0 +1,47 @@
+{ config, lib, pkgs, ... }:
+
+let
+ cfg = config.services.lorri;
+ socketPath = "lorri/daemon.socket";
+in {
+ options = {
+ services.lorri = {
+ enable = lib.mkOption {
+ default = false;
+ type = lib.types.bool;
+ description = ''
+ Enables the daemon for `lorri`, a nix-shell replacement for project
+ development. The socket-activated daemon starts on the first request
+ issued by the `lorri` command.
+ '';
+ };
+ };
+ };
+
+ config = lib.mkIf cfg.enable {
+ systemd.user.sockets.lorri = {
+ description = "Socket for Lorri Daemon";
+ wantedBy = [ "sockets.target" ];
+ socketConfig = {
+ ListenStream = "%t/${socketPath}";
+ RuntimeDirectory = "lorri";
+ };
+ };
+
+ systemd.user.services.lorri = {
+ description = "Lorri Daemon";
+ requires = [ "lorri.socket" ];
+ after = [ "lorri.socket" ];
+ path = with pkgs; [ config.nix.package gnutar gzip ];
+ serviceConfig = {
+ ExecStart = "${pkgs.lorri}/bin/lorri daemon";
+ PrivateTmp = true;
+ ProtectSystem = "strict";
+ ProtectHome = "read-only";
+ Restart = "on-failure";
+ };
+ };
+
+ environment.systemPackages = [ pkgs.lorri ];
+ };
+}
diff --git a/nixos/modules/services/editors/emacs.nix b/nixos/modules/services/editors/emacs.nix
index ba7ec967919..d791b387665 100644
--- a/nixos/modules/services/editors/emacs.nix
+++ b/nixos/modules/services/editors/emacs.nix
@@ -95,13 +95,7 @@ in {
environment.systemPackages = [ cfg.package editorScript desktopApplicationFile ];
- environment.variables = {
- # This is required so that GTK applications launched from Emacs
- # get properly themed:
- GTK_DATA_PREFIX = "${config.system.path}";
- } // (if cfg.defaultEditor then {
- EDITOR = mkOverride 900 "${editorScript}/bin/emacseditor";
- } else {});
+ environment.variables.EDITOR = mkIf cfg.defaultEditor (mkOverride 900 "${editorScript}/bin/emacseditor");
};
meta.doc = ./emacs.xml;
diff --git a/nixos/modules/services/editors/infinoted.nix b/nixos/modules/services/editors/infinoted.nix
index 9cc8d421270..be366761694 100644
--- a/nixos/modules/services/editors/infinoted.nix
+++ b/nixos/modules/services/editors/infinoted.nix
@@ -115,6 +115,7 @@ in {
{ name = "infinoted";
description = "Infinoted user";
group = cfg.group;
+ isSystemUser = true;
};
users.groups = optional (cfg.group == "infinoted")
{ name = "infinoted";
diff --git a/nixos/modules/services/games/openarena.nix b/nixos/modules/services/games/openarena.nix
new file mode 100644
index 00000000000..8c014d78809
--- /dev/null
+++ b/nixos/modules/services/games/openarena.nix
@@ -0,0 +1,56 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+ cfg = config.services.openarena;
+in
+{
+ options = {
+ services.openarena = {
+ enable = mkEnableOption "OpenArena";
+
+ openPorts = mkOption {
+ type = types.bool;
+ default = false;
+ description = "Whether to open firewall ports for OpenArena";
+ };
+
+ extraFlags = mkOption {
+ type = types.listOf types.str;
+ default = [];
+ description = ''Extra flags to pass to oa_ded '';
+ example = [
+ "+set dedicated 2"
+ "+set sv_hostname 'My NixOS OpenArena Server'"
+ # Load a map. Mandatory for clients to be able to connect.
+ "+map oa_dm1"
+ ];
+ };
+ };
+ };
+
+ config = mkIf cfg.enable {
+ networking.firewall = mkIf cfg.openPorts {
+ allowedUDPPorts = [ 27960 ];
+ };
+
+ systemd.services.openarena = {
+ description = "OpenArena";
+ wantedBy = [ "multi-user.target" ];
+ after = [ "network.target" ];
+
+ serviceConfig = {
+ DynamicUser = true;
+ StateDirectory = "openarena";
+ ExecStart = "${pkgs.openarena}/bin/oa_ded +set fs_basepath ${pkgs.openarena}/openarena-0.8.8 +set fs_homepath /var/lib/openarena ${concatStringsSep " " cfg.extraFlags}";
+ Restart = "on-failure";
+
+ # Hardening
+ CapabilityBoundingSet = "";
+ NoNewPrivileges = true;
+ PrivateDevices = true;
+ };
+ };
+ };
+}
diff --git a/nixos/modules/services/hardware/fancontrol.nix b/nixos/modules/services/hardware/fancontrol.nix
new file mode 100644
index 00000000000..bb4541a784d
--- /dev/null
+++ b/nixos/modules/services/hardware/fancontrol.nix
@@ -0,0 +1,45 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+ cfg = config.hardware.fancontrol;
+ configFile = pkgs.writeText "fancontrol.conf" cfg.config;
+
+in{
+ options.hardware.fancontrol = {
+ enable = mkEnableOption "software fan control (requires fancontrol.config)";
+
+ config = mkOption {
+ default = null;
+ type = types.lines;
+ description = "Fancontrol configuration file content. See pwmconfig 8 from the lm_sensors package.";
+ example = ''
+ # Configuration file generated by pwmconfig
+ INTERVAL=10
+ DEVPATH=hwmon3=devices/virtual/thermal/thermal_zone2 hwmon4=devices/platform/f71882fg.656
+ DEVNAME=hwmon3=soc_dts1 hwmon4=f71869a
+ FCTEMPS=hwmon4/device/pwm1=hwmon3/temp1_input
+ FCFANS= hwmon4/device/pwm1=hwmon4/device/fan1_input
+ MINTEMP=hwmon4/device/pwm1=35
+ MAXTEMP=hwmon4/device/pwm1=65
+ MINSTART=hwmon4/device/pwm1=150
+ MINSTOP=hwmon4/device/pwm1=0
+ '';
+ };
+ };
+
+ config = mkIf cfg.enable {
+ systemd.services.fancontrol = {
+ unitConfig.Documentation = "man:fancontrol(8)";
+ description = "software fan control";
+ wantedBy = [ "multi-user.target" ];
+ after = [ "lm_sensors.service" ];
+
+ serviceConfig = {
+ Type = "simple";
+ ExecStart = "${pkgs.lm_sensors}/sbin/fancontrol ${configFile}";
+ };
+ };
+ };
+}
diff --git a/nixos/modules/services/hardware/fwupd.nix b/nixos/modules/services/hardware/fwupd.nix
index 6c341bcbf24..51877970a8b 100644
--- a/nixos/modules/services/hardware/fwupd.nix
+++ b/nixos/modules/services/hardware/fwupd.nix
@@ -74,7 +74,7 @@ in {
default = false;
description = ''
Whether to enable test remote. This is used by
- installed tests.
+ installed tests.
'';
};
@@ -115,10 +115,6 @@ in {
services.udev.packages = [ cfg.package ];
systemd.packages = [ cfg.package ];
-
- systemd.tmpfiles.rules = [
- "d /var/lib/fwupd 0755 root root -"
- ];
};
meta = {
diff --git a/nixos/modules/services/hardware/tlp.nix b/nixos/modules/services/hardware/tlp.nix
index 4f8af797828..adc1881a525 100644
--- a/nixos/modules/services/hardware/tlp.nix
+++ b/nixos/modules/services/hardware/tlp.nix
@@ -37,7 +37,7 @@ in
enable = mkOption {
type = types.bool;
default = false;
- description = "Whether to enable the TLP daemon.";
+ description = "Whether to enable the TLP power management daemon.";
};
extraConfig = mkOption {
diff --git a/nixos/modules/services/hardware/trezord.nix b/nixos/modules/services/hardware/trezord.nix
index 62824ed7350..c517e9fbb2b 100644
--- a/nixos/modules/services/hardware/trezord.nix
+++ b/nixos/modules/services/hardware/trezord.nix
@@ -44,20 +44,7 @@ in {
### implementation
config = mkIf cfg.enable {
- services.udev.packages = lib.singleton (pkgs.writeTextFile {
- name = "trezord-udev-rules";
- destination = "/etc/udev/rules.d/51-trezor.rules";
- text = ''
- # TREZOR v1 (One)
- SUBSYSTEM=="usb", ATTR{idVendor}=="534c", ATTR{idProduct}=="0001", MODE="0660", GROUP="trezord", TAG+="uaccess", SYMLINK+="trezor%n"
- KERNEL=="hidraw*", ATTRS{idVendor}=="534c", ATTRS{idProduct}=="0001", MODE="0660", GROUP="trezord", TAG+="uaccess"
-
- # TREZOR v2 (T)
- SUBSYSTEM=="usb", ATTR{idVendor}=="1209", ATTR{idProduct}=="53c0", MODE="0660", GROUP="trezord", TAG+="uaccess", SYMLINK+="trezor%n"
- SUBSYSTEM=="usb", ATTR{idVendor}=="1209", ATTR{idProduct}=="53c1", MODE="0660", GROUP="trezord", TAG+="uaccess", SYMLINK+="trezor%n"
- KERNEL=="hidraw*", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="53c1", MODE="0660", GROUP="trezord", TAG+="uaccess"
- '';
- });
+ services.udev.packages = [ pkgs.trezor-udev-rules ];
systemd.services.trezord = {
description = "TREZOR Bridge";
@@ -74,6 +61,7 @@ in {
users.users.trezord = {
group = "trezord";
description = "Trezor bridge daemon user";
+ isSystemUser = true;
};
users.groups.trezord = {};
diff --git a/nixos/modules/services/hardware/udisks2.nix b/nixos/modules/services/hardware/udisks2.nix
index ed8703be921..e898f326058 100644
--- a/nixos/modules/services/hardware/udisks2.nix
+++ b/nixos/modules/services/hardware/udisks2.nix
@@ -34,10 +34,7 @@ with lib;
services.dbus.packages = [ pkgs.udisks2 ];
- system.activationScripts.udisks2 =
- ''
- mkdir -m 0755 -p /var/lib/udisks2
- '';
+ systemd.tmpfiles.rules = [ "d /var/lib/udisks2 0755 root root -" ];
services.udev.packages = [ pkgs.udisks2 ];
diff --git a/nixos/modules/services/hardware/usbmuxd.nix b/nixos/modules/services/hardware/usbmuxd.nix
index 93ced0b9f04..39bbcaf4627 100644
--- a/nixos/modules/services/hardware/usbmuxd.nix
+++ b/nixos/modules/services/hardware/usbmuxd.nix
@@ -47,6 +47,7 @@ in
name = cfg.user;
description = "usbmuxd user";
group = cfg.group;
+ isSystemUser = true;
};
users.groups = optional (cfg.group == defaultUserGroup) {
diff --git a/nixos/modules/services/hardware/vdr.nix b/nixos/modules/services/hardware/vdr.nix
index 6e246f70f51..8a6cde51b06 100644
--- a/nixos/modules/services/hardware/vdr.nix
+++ b/nixos/modules/services/hardware/vdr.nix
@@ -66,6 +66,7 @@ in {
users.users.vdr = {
group = "vdr";
home = libDir;
+ isSystemUser = true;
};
users.groups.vdr = {};
diff --git a/nixos/modules/services/mail/dovecot.nix b/nixos/modules/services/mail/dovecot.nix
index cdbb776454b..3fd06812c67 100644
--- a/nixos/modules/services/mail/dovecot.nix
+++ b/nixos/modules/services/mail/dovecot.nix
@@ -181,7 +181,7 @@ in
};
configFile = mkOption {
- type = types.nullOr types.str;
+ type = types.nullOr types.path;
default = null;
description = "Config file used for the whole dovecot configuration.";
apply = v: if v != null then v else pkgs.writeText "dovecot.conf" dovecotConf;
diff --git a/nixos/modules/services/mail/mailcatcher.nix b/nixos/modules/services/mail/mailcatcher.nix
index fa8d41e918d..84f06ed199d 100644
--- a/nixos/modules/services/mail/mailcatcher.nix
+++ b/nixos/modules/services/mail/mailcatcher.nix
@@ -3,7 +3,7 @@
let
cfg = config.services.mailcatcher;
- inherit (lib) mkEnableOption mkIf mkOption types;
+ inherit (lib) mkEnableOption mkIf mkOption types optionalString;
in
{
# interface
@@ -25,6 +25,13 @@ in
description = "The port address of the http server.";
};
+ http.path = mkOption {
+ type = with types; nullOr str;
+ default = null;
+ description = "Prefix to all HTTP paths.";
+ example = "/mailcatcher";
+ };
+
smtp.ip = mkOption {
type = types.str;
default = "127.0.0.1";
@@ -53,7 +60,8 @@ in
serviceConfig = {
DynamicUser = true;
Restart = "always";
- ExecStart = "${pkgs.mailcatcher}/bin/mailcatcher --foreground --no-quit --http-ip ${cfg.http.ip} --http-port ${toString cfg.http.port} --smtp-ip ${cfg.smtp.ip} --smtp-port ${toString cfg.smtp.port}";
+ ExecStart = "${pkgs.mailcatcher}/bin/mailcatcher --foreground --no-quit --http-ip ${cfg.http.ip} --http-port ${toString cfg.http.port} --smtp-ip ${cfg.smtp.ip} --smtp-port ${toString cfg.smtp.port}" + optionalString (cfg.http.path != null) " --http-path ${cfg.http.path}";
+ AmbientCapabilities = optionalString (cfg.http.port < 1024 || cfg.smtp.port < 1024) "cap_net_bind_service";
};
};
};
diff --git a/nixos/modules/services/mail/mailhog.nix b/nixos/modules/services/mail/mailhog.nix
index b78f4c8e0e6..0f998c6d0ea 100644
--- a/nixos/modules/services/mail/mailhog.nix
+++ b/nixos/modules/services/mail/mailhog.nix
@@ -27,6 +27,7 @@ in {
users.users.mailhog = {
name = cfg.user;
description = "MailHog service user";
+ isSystemUser = true;
};
systemd.services.mailhog = {
diff --git a/nixos/modules/services/mail/mailman.nix b/nixos/modules/services/mail/mailman.nix
index 11dd5cb48db..e917209f3d1 100644
--- a/nixos/modules/services/mail/mailman.nix
+++ b/nixos/modules/services/mail/mailman.nix
@@ -6,16 +6,35 @@ let
cfg = config.services.mailman;
- pythonEnv = pkgs.python3.withPackages (ps: [ps.mailman]);
+ mailmanPyEnv = pkgs.python3.withPackages (ps: with ps; [mailman mailman-hyperkitty]);
mailmanExe = with pkgs; stdenv.mkDerivation {
name = "mailman-" + python3Packages.mailman.version;
+ buildInputs = [makeWrapper];
unpackPhase = ":";
installPhase = ''
mkdir -p $out/bin
- sed >"$out/bin/mailman" <"${pythonEnv}/bin/mailman" \
- -e "2 iexport MAILMAN_CONFIG_FILE=/etc/mailman.cfg"
- chmod +x $out/bin/mailman
+ makeWrapper ${mailmanPyEnv}/bin/mailman $out/bin/mailman \
+ --set MAILMAN_CONFIG_FILE /etc/mailman.cfg
+ '';
+ };
+
+ mailmanWeb = pkgs.python3Packages.mailman-web.override {
+ serverEMail = cfg.siteOwner;
+ archiverKey = cfg.hyperkittyApiKey;
+ allowedHosts = cfg.webHosts;
+ };
+
+ mailmanWebPyEnv = pkgs.python3.withPackages (x: with x; [mailman-web]);
+
+ mailmanWebExe = with pkgs; stdenv.mkDerivation {
+ inherit (mailmanWeb) name;
+ buildInputs = [makeWrapper];
+ unpackPhase = ":";
+ installPhase = ''
+ mkdir -p $out/bin
+ makeWrapper ${mailmanWebPyEnv}/bin/django-admin $out/bin/mailman-web \
+ --set DJANGO_SETTINGS_MODULE settings
'';
};
@@ -28,11 +47,30 @@ let
bin_dir: ${pkgs.python3Packages.mailman}/bin
var_dir: /var/lib/mailman
queue_dir: $var_dir/queue
+ template_dir: $var_dir/templates
log_dir: $var_dir/log
lock_dir: $var_dir/lock
etc_dir: /etc
ext_dir: $etc_dir/mailman.d
pid_file: /run/mailman/master.pid
+ '' + optionalString (cfg.hyperkittyApiKey != null) ''
+ [archiver.hyperkitty]
+ class: mailman_hyperkitty.Archiver
+ enable: yes
+ configuration: ${pkgs.writeText "mailman-hyperkitty.cfg" mailmanHyperkittyCfg}
+ '';
+
+ mailmanHyperkittyCfg = ''
+ [general]
+ # This is your HyperKitty installation, preferably on the localhost. This
+ # address will be used by Mailman to forward incoming emails to HyperKitty
+ # for archiving. It does not need to be publicly available, in fact it's
+ # better if it is not.
+ base_url: ${cfg.hyperkittyBaseUrl}
+
+ # Shared API key, must be the identical to the value in HyperKitty's
+ # settings.
+ api_key: ${cfg.hyperkittyApiKey}
'';
in {
@@ -51,7 +89,7 @@ in {
siteOwner = mkOption {
type = types.str;
- default = "postmaster";
+ default = "postmaster@example.org";
description = ''
Certain messages that must be delivered to a human, but which can't
be delivered to a list owner (e.g. a bounce from a list owner), will
@@ -59,6 +97,48 @@ in {
'';
};
+ webRoot = mkOption {
+ type = types.path;
+ default = "${mailmanWeb}/${pkgs.python3.sitePackages}";
+ defaultText = "pkgs.python3Packages.mailman-web";
+ description = ''
+ The web root for the Hyperkity + Postorius apps provided by Mailman.
+ This variable can be set, of course, but it mainly exists so that site
+ admins can refer to it in their own hand-written httpd configuration files.
+ '';
+ };
+
+ webHosts = mkOption {
+ type = types.listOf types.str;
+ default = [];
+ description = ''
+ The list of hostnames and/or IP addresses from which the Mailman Web
+ UI will accept requests. By default, "localhost" and "127.0.0.1" are
+ enabled. All additional names under which your web server accepts
+ requests for the UI must be listed here or incoming requests will be
+ rejected.
+ '';
+ };
+
+ hyperkittyBaseUrl = mkOption {
+ type = types.str;
+ default = "http://localhost/hyperkitty/";
+ description = ''
+ Where can Mailman connect to Hyperkitty's internal API, preferably on
+ localhost?
+ '';
+ };
+
+ hyperkittyApiKey = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ description = ''
+ The shared secret used to authenticate Mailman's internal
+ communication with Hyperkitty. Must be set to enable support for the
+ Hyperkitty archiver. Note that this secret is going to be visible to
+ all local users in the Nix store.
+ '';
+ };
};
};
@@ -71,25 +151,22 @@ in {
{ assertion = cfg.enable -> config.services.postfix.enable;
message = "Mailman requires Postfix";
}
- { assertion = config.services.postfix.recipientDelimiter == "+";
- message = "Postfix's recipientDelimiter must be set to '+'.";
- }
];
users.users.mailman = { description = "GNU Mailman"; isSystemUser = true; };
environment = {
- systemPackages = [ mailmanExe ];
+ systemPackages = [ mailmanExe mailmanWebExe pkgs.sassc ];
etc."mailman.cfg".text = mailmanCfg;
};
services.postfix = {
relayDomains = [ "hash:/var/lib/mailman/data/postfix_domains" ];
+ recipientDelimiter = "+"; # bake recipient addresses in mail envelopes via VERP
config = {
transport_maps = [ "hash:/var/lib/mailman/data/postfix_lmtp" ];
local_recipient_maps = [ "hash:/var/lib/mailman/data/postfix_lmtp" ];
- # Mailman uses recipient delimiters, so we don't need special handling.
- owner_request_special = "no";
+ owner_request_special = "no"; # Mailman handles -owner addresses on its own
};
};
@@ -109,6 +186,112 @@ in {
};
};
+ systemd.services.mailman-web = {
+ description = "Init Postorius DB";
+ before = [ "httpd.service" ];
+ requiredBy = [ "httpd.service" ];
+ script = ''
+ ${mailmanWebExe}/bin/mailman-web migrate
+ rm -rf static
+ ${mailmanWebExe}/bin/mailman-web collectstatic
+ ${mailmanWebExe}/bin/mailman-web compress
+ '';
+ serviceConfig = {
+ User = config.services.httpd.user;
+ Type = "oneshot";
+ StateDirectory = "mailman-web";
+ StateDirectoryMode = "0700";
+ WorkingDirectory = "/var/lib/mailman-web";
+ };
+ };
+
+ systemd.services.mailman-daily = {
+ description = "Trigger daily Mailman events";
+ startAt = "daily";
+ serviceConfig = {
+ ExecStart = "${mailmanExe}/bin/mailman digests --send";
+ User = "mailman";
+ };
+ };
+
+ systemd.services.hyperkitty = {
+ enable = cfg.hyperkittyApiKey != null;
+ description = "GNU Hyperkitty QCluster Process";
+ after = [ "network.target" ];
+ wantedBy = [ "mailman.service" "multi-user.target" ];
+ serviceConfig = {
+ ExecStart = "${mailmanWebExe}/bin/mailman-web qcluster";
+ User = config.services.httpd.user;
+ WorkingDirectory = "/var/lib/mailman-web";
+ };
+ };
+
+ systemd.services.hyperkitty-minutely = {
+ enable = cfg.hyperkittyApiKey != null;
+ description = "Trigger minutely Hyperkitty events";
+ startAt = "minutely";
+ serviceConfig = {
+ ExecStart = "${mailmanWebExe}/bin/mailman-web runjobs minutely";
+ User = config.services.httpd.user;
+ WorkingDirectory = "/var/lib/mailman-web";
+ };
+ };
+
+ systemd.services.hyperkitty-quarter-hourly = {
+ enable = cfg.hyperkittyApiKey != null;
+ description = "Trigger quarter-hourly Hyperkitty events";
+ startAt = "*:00/15";
+ serviceConfig = {
+ ExecStart = "${mailmanWebExe}/bin/mailman-web runjobs quarter_hourly";
+ User = config.services.httpd.user;
+ WorkingDirectory = "/var/lib/mailman-web";
+ };
+ };
+
+ systemd.services.hyperkitty-hourly = {
+ enable = cfg.hyperkittyApiKey != null;
+ description = "Trigger hourly Hyperkitty events";
+ startAt = "hourly";
+ serviceConfig = {
+ ExecStart = "${mailmanWebExe}/bin/mailman-web runjobs hourly";
+ User = config.services.httpd.user;
+ WorkingDirectory = "/var/lib/mailman-web";
+ };
+ };
+
+ systemd.services.hyperkitty-daily = {
+ enable = cfg.hyperkittyApiKey != null;
+ description = "Trigger daily Hyperkitty events";
+ startAt = "daily";
+ serviceConfig = {
+ ExecStart = "${mailmanWebExe}/bin/mailman-web runjobs daily";
+ User = config.services.httpd.user;
+ WorkingDirectory = "/var/lib/mailman-web";
+ };
+ };
+
+ systemd.services.hyperkitty-weekly = {
+ enable = cfg.hyperkittyApiKey != null;
+ description = "Trigger weekly Hyperkitty events";
+ startAt = "weekly";
+ serviceConfig = {
+ ExecStart = "${mailmanWebExe}/bin/mailman-web runjobs weekly";
+ User = config.services.httpd.user;
+ WorkingDirectory = "/var/lib/mailman-web";
+ };
+ };
+
+ systemd.services.hyperkitty-yearly = {
+ enable = cfg.hyperkittyApiKey != null;
+ description = "Trigger yearly Hyperkitty events";
+ startAt = "yearly";
+ serviceConfig = {
+ ExecStart = "${mailmanWebExe}/bin/mailman-web runjobs yearly";
+ User = config.services.httpd.user;
+ WorkingDirectory = "/var/lib/mailman-web";
+ };
+ };
+
};
}
diff --git a/nixos/modules/services/mail/opensmtpd.nix b/nixos/modules/services/mail/opensmtpd.nix
index a870550ba50..1fabe2da45c 100644
--- a/nixos/modules/services/mail/opensmtpd.nix
+++ b/nixos/modules/services/mail/opensmtpd.nix
@@ -101,6 +101,12 @@ in {
};
};
+ systemd.tmpfiles.rules = [
+ "d /var/spool/smtpd 711 root - - -"
+ "d /var/spool/smtpd/offline 770 root smtpq - -"
+ "d /var/spool/smtpd/purge 700 smtpq root - -"
+ ];
+
systemd.services.opensmtpd = let
procEnv = pkgs.buildEnv {
name = "opensmtpd-procs";
@@ -110,18 +116,6 @@ in {
in {
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
- preStart = ''
- mkdir -p /var/spool/smtpd
- chmod 711 /var/spool/smtpd
-
- mkdir -p /var/spool/smtpd/offline
- chown root.smtpq /var/spool/smtpd/offline
- chmod 770 /var/spool/smtpd/offline
-
- mkdir -p /var/spool/smtpd/purge
- chown smtpq.root /var/spool/smtpd/purge
- chmod 700 /var/spool/smtpd/purge
- '';
serviceConfig.ExecStart = "${cfg.package}/sbin/smtpd -d -f ${conf} ${args}";
environment.OPENSMTPD_PROC_PATH = "${procEnv}/libexec/opensmtpd";
};
diff --git a/nixos/modules/services/mail/postfix.nix b/nixos/modules/services/mail/postfix.nix
index d5fd76da970..df438a0c69d 100644
--- a/nixos/modules/services/mail/postfix.nix
+++ b/nixos/modules/services/mail/postfix.nix
@@ -631,6 +631,14 @@ in
setgid = true;
};
+ security.wrappers.mailq = {
+ program = "mailq";
+ source = "${pkgs.postfix}/bin/mailq";
+ group = setgidGroup;
+ setuid = false;
+ setgid = true;
+ };
+
security.wrappers.postqueue = {
program = "postqueue";
source = "${pkgs.postfix}/bin/postqueue";
diff --git a/nixos/modules/services/mail/roundcube.nix b/nixos/modules/services/mail/roundcube.nix
index bdedfa1bb70..36dda619ad0 100644
--- a/nixos/modules/services/mail/roundcube.nix
+++ b/nixos/modules/services/mail/roundcube.nix
@@ -160,7 +160,7 @@ in
${pkgs.sudo}/bin/sudo -u ${pgSuperUser} psql postgres -c "create role ${cfg.database.username} with login password '${cfg.database.password}'";
${pkgs.sudo}/bin/sudo -u ${pgSuperUser} psql postgres -c "create database ${cfg.database.dbname} with owner ${cfg.database.username}";
fi
- PGPASSWORD=${cfg.database.password} ${pkgs.postgresql}/bin/psql -U ${cfg.database.username} \
+ PGPASSWORD="${cfg.database.password}" ${pkgs.postgresql}/bin/psql -U ${cfg.database.username} \
-f ${cfg.package}/SQL/postgres.initial.sql \
-h ${cfg.database.host} ${cfg.database.dbname}
touch /var/lib/roundcube/db-created
diff --git a/nixos/modules/services/mail/rspamd.nix b/nixos/modules/services/mail/rspamd.nix
index 89aa9d17ff7..7ef23ad1726 100644
--- a/nixos/modules/services/mail/rspamd.nix
+++ b/nixos/modules/services/mail/rspamd.nix
@@ -60,7 +60,7 @@ let
};
type = mkOption {
type = types.nullOr (types.enum [
- "normal" "controller" "fuzzy_storage" "rspamd_proxy" "lua" "proxy"
+ "normal" "controller" "fuzzy" "rspamd_proxy" "lua" "proxy"
]);
description = ''
The type of this worker. The type proxy is
@@ -68,7 +68,7 @@ let
replaced with rspamd_proxy .
'';
apply = let
- from = "services.rspamd.workers.\”${name}\".type";
+ from = "services.rspamd.workers.\"${name}\".type";
files = options.type.files;
warning = "The option `${from}` defined in ${showFiles files} has enum value `proxy` which has been renamed to `rspamd_proxy`";
in x: if x == "proxy" then traceWarning warning "rspamd_proxy" else x;
diff --git a/nixos/modules/services/mail/rss2email.nix b/nixos/modules/services/mail/rss2email.nix
index df454abc826..c1e5964c453 100644
--- a/nixos/modules/services/mail/rss2email.nix
+++ b/nixos/modules/services/mail/rss2email.nix
@@ -43,9 +43,8 @@ in {
[DEFAULT] block along with the
to parameter.
- See
- https://github.com/rss2email/rss2email/blob/master/r2e.1
- for more information on which parameters are accepted.
+ See man r2e for more information on which
+ parameters are accepted.
'';
};
diff --git a/nixos/modules/services/misc/airsonic.nix b/nixos/modules/services/misc/airsonic.nix
index 919d3b2f6e6..c296e048cea 100644
--- a/nixos/modules/services/misc/airsonic.nix
+++ b/nixos/modules/services/misc/airsonic.nix
@@ -148,6 +148,7 @@ in {
name = cfg.user;
home = cfg.home;
createHome = true;
+ isSystemUser = true;
};
};
}
diff --git a/nixos/modules/services/misc/beanstalkd.nix b/nixos/modules/services/misc/beanstalkd.nix
index 06e881406b5..bcd133c9741 100644
--- a/nixos/modules/services/misc/beanstalkd.nix
+++ b/nixos/modules/services/misc/beanstalkd.nix
@@ -44,7 +44,8 @@ in
serviceConfig = {
DynamicUser = true;
Restart = "always";
- ExecStart = "${pkg}/bin/beanstalkd -l ${cfg.listen.address} -p ${toString cfg.listen.port}";
+ ExecStart = "${pkg}/bin/beanstalkd -l ${cfg.listen.address} -p ${toString cfg.listen.port} -b $STATE_DIRECTORY";
+ StateDirectory = "beanstalkd";
};
};
diff --git a/nixos/modules/services/misc/docker-registry.nix b/nixos/modules/services/misc/docker-registry.nix
index c87607d2666..89bac4f47d7 100644
--- a/nixos/modules/services/misc/docker-registry.nix
+++ b/nixos/modules/services/misc/docker-registry.nix
@@ -145,11 +145,13 @@ in {
};
users.users.docker-registry =
- if cfg.storagePath != null
+ (if cfg.storagePath != null
then {
createHome = true;
home = cfg.storagePath;
}
- else {};
+ else {}) // {
+ isSystemUser = true;
+ };
};
}
diff --git a/nixos/modules/services/misc/dysnomia.nix b/nixos/modules/services/misc/dysnomia.nix
index 9402d5cd801..33a6fb15264 100644
--- a/nixos/modules/services/misc/dysnomia.nix
+++ b/nixos/modules/services/misc/dysnomia.nix
@@ -151,6 +151,7 @@ in
enableSubversionRepository = config.services.svnserve.enable;
enableTomcatWebApplication = config.services.tomcat.enable;
enableMongoDatabase = config.services.mongodb.enable;
+ enableInfluxDatabase = config.services.influxdb.enable;
});
dysnomia.properties = {
diff --git a/nixos/modules/services/misc/errbot.nix b/nixos/modules/services/misc/errbot.nix
index 256adce2f02..b447ba5d438 100644
--- a/nixos/modules/services/misc/errbot.nix
+++ b/nixos/modules/services/misc/errbot.nix
@@ -76,7 +76,10 @@ in {
};
config = mkIf (cfg.instances != {}) {
- users.users.errbot.group = "errbot";
+ users.users.errbot = {
+ group = "errbot";
+ isSystemUser = true;
+ };
users.groups.errbot = {};
systemd.services = mapAttrs' (name: instanceCfg: nameValuePair "errbot-${name}" (
diff --git a/nixos/modules/services/misc/gitea.nix b/nixos/modules/services/misc/gitea.nix
index 59c1c104b9b..c8c59fb256e 100644
--- a/nixos/modules/services/misc/gitea.nix
+++ b/nixos/modules/services/misc/gitea.nix
@@ -322,6 +322,7 @@ in
"d '${cfg.stateDir}/conf' - ${cfg.user} gitea - -"
"d '${cfg.stateDir}/custom' - ${cfg.user} gitea - -"
"d '${cfg.stateDir}/custom/conf' - ${cfg.user} gitea - -"
+ "d '${cfg.stateDir}/log' - ${cfg.user} gitea - -"
"d '${cfg.repositoryRoot}' - ${cfg.user} gitea - -"
"Z '${cfg.stateDir}' - ${cfg.user} gitea - -"
@@ -408,6 +409,7 @@ in
home = cfg.stateDir;
useDefaultShell = true;
group = "gitea";
+ isSystemUser = true;
};
};
diff --git a/nixos/modules/services/misc/gitlab.nix b/nixos/modules/services/misc/gitlab.nix
index caef4ad4ea8..07ea9c45843 100644
--- a/nixos/modules/services/misc/gitlab.nix
+++ b/nixos/modules/services/misc/gitlab.nix
@@ -1,7 +1,5 @@
{ config, lib, pkgs, utils, ... }:
-# TODO: support non-postgresql
-
with lib;
let
@@ -9,6 +7,11 @@ let
ruby = cfg.packages.gitlab.ruby;
+ postgresqlPackage = if config.services.postgresql.enable then
+ config.services.postgresql.package
+ else
+ pkgs.postgresql;
+
gitlabSocket = "${cfg.statePath}/tmp/sockets/gitlab.socket";
gitalySocket = "${cfg.statePath}/tmp/sockets/gitaly.socket";
pathUrlQuote = url: replaceStrings ["/"] ["%2F"] url;
@@ -24,6 +27,9 @@ let
} // cfg.extraDatabaseConfig;
};
+ # We only want to create a database if we're actually going to connect to it.
+ databaseActuallyCreateLocally = cfg.databaseCreateLocally && cfg.databaseHost == "";
+
gitalyToml = pkgs.writeText "gitaly.toml" ''
socket_path = "${lib.escape ["\""] gitalySocket}"
bin_dir = "${cfg.packages.gitaly}/bin"
@@ -140,7 +146,7 @@ let
mkdir -p $out/bin
makeWrapper ${cfg.packages.gitlab.rubyEnv}/bin/rake $out/bin/gitlab-rake \
${concatStrings (mapAttrsToList (name: value: "--set ${name} '${value}' ") gitlabEnv)} \
- --set PATH '${lib.makeBinPath [ pkgs.nodejs pkgs.gzip pkgs.git pkgs.gnutar config.services.postgresql.package pkgs.coreutils pkgs.procps ]}:$PATH' \
+ --set PATH '${lib.makeBinPath [ pkgs.nodejs pkgs.gzip pkgs.git pkgs.gnutar postgresqlPackage pkgs.coreutils pkgs.procps ]}:$PATH' \
--set RAKEOPT '-f ${cfg.packages.gitlab}/share/gitlab/Rakefile' \
--run 'cd ${cfg.packages.gitlab}/share/gitlab'
'';
@@ -155,7 +161,7 @@ let
mkdir -p $out/bin
makeWrapper ${cfg.packages.gitlab.rubyEnv}/bin/rails $out/bin/gitlab-rails \
${concatStrings (mapAttrsToList (name: value: "--set ${name} '${value}' ") gitlabEnv)} \
- --set PATH '${lib.makeBinPath [ pkgs.nodejs pkgs.gzip pkgs.git pkgs.gnutar config.services.postgresql.package pkgs.coreutils pkgs.procps ]}:$PATH' \
+ --set PATH '${lib.makeBinPath [ pkgs.nodejs pkgs.gzip pkgs.git pkgs.gnutar postgresqlPackage pkgs.coreutils pkgs.procps ]}:$PATH' \
--run 'cd ${cfg.packages.gitlab}/share/gitlab'
'';
};
@@ -225,7 +231,15 @@ in {
statePath = mkOption {
type = types.str;
default = "/var/gitlab/state";
- description = "Gitlab state directory, logs are stored here.";
+ description = ''
+ Gitlab state directory. Configuration, repositories and
+ logs, among other things, are stored here.
+
+ The directory will be created automatically if it doesn't
+ exist already. Its parent directories must be owned by
+ either root or the user set in
+ services.gitlab.user .
+ '';
};
backupPath = mkOption {
@@ -260,8 +274,8 @@ in {
description = ''
Whether a database should be automatically created on the
local host. Set this to false if you plan
- on provisioning a local database yourself or use an external
- one.
+ on provisioning a local database yourself. This has no effect
+ if services.gitlab.databaseHost is customized.
'';
};
@@ -551,8 +565,8 @@ in {
assertions = [
{
- assertion = cfg.databaseCreateLocally -> (cfg.user == cfg.databaseUsername);
- message = "For local automatic database provisioning services.gitlab.user and services.gitlab.databaseUsername should be identical.";
+ assertion = databaseActuallyCreateLocally -> (cfg.user == cfg.databaseUsername);
+ message = ''For local automatic database provisioning (services.gitlab.databaseCreateLocally == true) with peer authentication (services.gitlab.databaseHost == "") to work services.gitlab.user and services.gitlab.databaseUsername must be identical.'';
}
{
assertion = (cfg.databaseHost != "") -> (cfg.databasePasswordFile != null);
@@ -586,14 +600,16 @@ in {
services.redis.enable = mkDefault true;
# We use postgres as the main data store.
- services.postgresql = optionalAttrs cfg.databaseCreateLocally {
+ services.postgresql = optionalAttrs databaseActuallyCreateLocally {
enable = true;
ensureUsers = singleton { name = cfg.databaseUsername; };
};
# The postgresql module doesn't currently support concepts like
# objects owners and extensions; for now we tack on what's needed
# here.
- systemd.services.postgresql.postStart = mkAfter (optionalString cfg.databaseCreateLocally ''
+ systemd.services.postgresql.postStart = mkAfter (optionalString databaseActuallyCreateLocally ''
+ set -eu
+
$PSQL -tAc "SELECT 1 FROM pg_database WHERE datname = '${cfg.databaseName}'" | grep -q 1 || $PSQL -tAc 'CREATE DATABASE "${cfg.databaseName}" OWNER "${cfg.databaseUsername}"'
current_owner=$($PSQL -tAc "SELECT pg_catalog.pg_get_userbyid(datdba) FROM pg_catalog.pg_database WHERE datname = '${cfg.databaseName}'")
if [[ "$current_owner" != "${cfg.databaseUsername}" ]]; then
@@ -635,7 +651,7 @@ in {
"d ${cfg.statePath} 0750 ${cfg.user} ${cfg.group} -"
"d ${cfg.statePath}/builds 0750 ${cfg.user} ${cfg.group} -"
"d ${cfg.statePath}/config 0750 ${cfg.user} ${cfg.group} -"
- "D ${cfg.statePath}/config/initializers 0750 ${cfg.user} ${cfg.group} -"
+ "d ${cfg.statePath}/config/initializers 0750 ${cfg.user} ${cfg.group} -"
"d ${cfg.statePath}/db 0750 ${cfg.user} ${cfg.group} -"
"d ${cfg.statePath}/log 0750 ${cfg.user} ${cfg.group} -"
"d ${cfg.statePath}/repositories 2770 ${cfg.user} ${cfg.group} -"
@@ -652,7 +668,6 @@ in {
"d ${gitlabConfig.production.shared.path}/artifacts 0750 ${cfg.user} ${cfg.group} -"
"d ${gitlabConfig.production.shared.path}/lfs-objects 0750 ${cfg.user} ${cfg.group} -"
"d ${gitlabConfig.production.shared.path}/pages 0750 ${cfg.user} ${cfg.group} -"
- "L+ ${cfg.statePath}/lib - - - - ${cfg.packages.gitlab}/share/gitlab/lib"
"L+ /run/gitlab/config - - - - ${cfg.statePath}/config"
"L+ /run/gitlab/log - - - - ${cfg.statePath}/log"
"L+ /run/gitlab/tmp - - - - ${cfg.statePath}/tmp"
@@ -669,12 +684,16 @@ in {
wantedBy = [ "multi-user.target" ];
environment = gitlabEnv;
path = with pkgs; [
- config.services.postgresql.package
+ postgresqlPackage
gitAndTools.git
ruby
openssh
nodejs
gnupg
+
+ # Needed for GitLab project imports
+ gnutar
+ gzip
];
serviceConfig = {
Type = "simple";
@@ -722,7 +741,6 @@ in {
gitlab-workhorse
];
serviceConfig = {
- PermissionsStartOnly = true; # preStart must be run as root
Type = "simple";
User = cfg.user;
Group = cfg.group;
@@ -746,81 +764,13 @@ in {
wantedBy = [ "multi-user.target" ];
environment = gitlabEnv;
path = with pkgs; [
- config.services.postgresql.package
+ postgresqlPackage
gitAndTools.git
openssh
nodejs
procps
gnupg
];
- preStart = ''
- cp -f ${cfg.packages.gitlab}/share/gitlab/VERSION ${cfg.statePath}/VERSION
- rm -rf ${cfg.statePath}/db/*
- cp -rf --no-preserve=mode ${cfg.packages.gitlab}/share/gitlab/config.dist/* ${cfg.statePath}/config
- cp -rf --no-preserve=mode ${cfg.packages.gitlab}/share/gitlab/db/* ${cfg.statePath}/db
-
- ${cfg.packages.gitlab-shell}/bin/install
-
- ${optionalString cfg.smtp.enable ''
- install -m u=rw ${smtpSettings} ${cfg.statePath}/config/initializers/smtp_settings.rb
- ${optionalString (cfg.smtp.passwordFile != null) ''
- smtp_password=$(<'${cfg.smtp.passwordFile}')
- ${pkgs.replace}/bin/replace-literal -e '@smtpPassword@' "$smtp_password" '${cfg.statePath}/config/initializers/smtp_settings.rb'
- ''}
- ''}
-
- (
- umask u=rwx,g=,o=
-
- ${pkgs.openssl}/bin/openssl rand -hex 32 > ${cfg.statePath}/gitlab_shell_secret
-
- ${if cfg.databasePasswordFile != null then ''
- export db_password="$(<'${cfg.databasePasswordFile}')"
-
- if [[ -z "$db_password" ]]; then
- >&2 echo "Database password was an empty string!"
- exit 1
- fi
-
- ${pkgs.jq}/bin/jq <${pkgs.writeText "database.yml" (builtins.toJSON databaseConfig)} \
- '.production.password = $ENV.db_password' \
- >'${cfg.statePath}/config/database.yml'
- ''
- else ''
- ${pkgs.jq}/bin/jq <${pkgs.writeText "database.yml" (builtins.toJSON databaseConfig)} \
- >'${cfg.statePath}/config/database.yml'
- ''
- }
-
- ${utils.genJqSecretsReplacementSnippet
- gitlabConfig
- "${cfg.statePath}/config/gitlab.yml"
- }
-
- if [[ -h '${cfg.statePath}/config/secrets.yml' ]]; then
- rm '${cfg.statePath}/config/secrets.yml'
- fi
-
- export secret="$(<'${cfg.secrets.secretFile}')"
- export db="$(<'${cfg.secrets.dbFile}')"
- export otp="$(<'${cfg.secrets.otpFile}')"
- export jws="$(<'${cfg.secrets.jwsFile}')"
- ${pkgs.jq}/bin/jq -n '{production: {secret_key_base: $ENV.secret,
- otp_key_base: $ENV.db,
- db_key_base: $ENV.otp,
- openid_connect_signing_key: $ENV.jws}}' \
- > '${cfg.statePath}/config/secrets.yml'
- )
-
- initial_root_password="$(<'${cfg.initialRootPasswordFile}')"
- ${gitlab-rake}/bin/gitlab-rake gitlab:db:configure GITLAB_ROOT_PASSWORD="$initial_root_password" \
- GITLAB_ROOT_EMAIL='${cfg.initialRootEmail}'
-
- # We remove potentially broken links to old gitlab-shell versions
- rm -Rf ${cfg.statePath}/repositories/**/*.git/hooks
-
- ${pkgs.git}/bin/git config --global core.autocrlf "input"
- '';
serviceConfig = {
Type = "simple";
@@ -829,6 +779,94 @@ in {
TimeoutSec = "infinity";
Restart = "on-failure";
WorkingDirectory = "${cfg.packages.gitlab}/share/gitlab";
+ ExecStartPre = let
+ preStartFullPrivileges = ''
+ shopt -s dotglob nullglob
+ set -eu
+
+ chown --no-dereference '${cfg.user}':'${cfg.group}' '${cfg.statePath}'/*
+ chown --no-dereference '${cfg.user}':'${cfg.group}' '${cfg.statePath}'/config/*
+ '';
+ preStart = ''
+ set -eu
+
+ cp -f ${cfg.packages.gitlab}/share/gitlab/VERSION ${cfg.statePath}/VERSION
+ rm -rf ${cfg.statePath}/db/*
+ rm -rf ${cfg.statePath}/config/initializers/*
+ rm -f ${cfg.statePath}/lib
+ cp -rf --no-preserve=mode ${cfg.packages.gitlab}/share/gitlab/config.dist/* ${cfg.statePath}/config
+ cp -rf --no-preserve=mode ${cfg.packages.gitlab}/share/gitlab/db/* ${cfg.statePath}/db
+
+ ${cfg.packages.gitlab-shell}/bin/install
+
+ ${optionalString cfg.smtp.enable ''
+ install -m u=rw ${smtpSettings} ${cfg.statePath}/config/initializers/smtp_settings.rb
+ ${optionalString (cfg.smtp.passwordFile != null) ''
+ smtp_password=$(<'${cfg.smtp.passwordFile}')
+ ${pkgs.replace}/bin/replace-literal -e '@smtpPassword@' "$smtp_password" '${cfg.statePath}/config/initializers/smtp_settings.rb'
+ ''}
+ ''}
+
+ (
+ umask u=rwx,g=,o=
+
+ ${pkgs.openssl}/bin/openssl rand -hex 32 > ${cfg.statePath}/gitlab_shell_secret
+
+ if [[ -h '${cfg.statePath}/config/database.yml' ]]; then
+ rm '${cfg.statePath}/config/database.yml'
+ fi
+
+ ${if cfg.databasePasswordFile != null then ''
+ export db_password="$(<'${cfg.databasePasswordFile}')"
+
+ if [[ -z "$db_password" ]]; then
+ >&2 echo "Database password was an empty string!"
+ exit 1
+ fi
+
+ ${pkgs.jq}/bin/jq <${pkgs.writeText "database.yml" (builtins.toJSON databaseConfig)} \
+ '.production.password = $ENV.db_password' \
+ >'${cfg.statePath}/config/database.yml'
+ ''
+ else ''
+ ${pkgs.jq}/bin/jq <${pkgs.writeText "database.yml" (builtins.toJSON databaseConfig)} \
+ >'${cfg.statePath}/config/database.yml'
+ ''
+ }
+
+ ${utils.genJqSecretsReplacementSnippet
+ gitlabConfig
+ "${cfg.statePath}/config/gitlab.yml"
+ }
+
+ if [[ -h '${cfg.statePath}/config/secrets.yml' ]]; then
+ rm '${cfg.statePath}/config/secrets.yml'
+ fi
+
+ export secret="$(<'${cfg.secrets.secretFile}')"
+ export db="$(<'${cfg.secrets.dbFile}')"
+ export otp="$(<'${cfg.secrets.otpFile}')"
+ export jws="$(<'${cfg.secrets.jwsFile}')"
+ ${pkgs.jq}/bin/jq -n '{production: {secret_key_base: $ENV.secret,
+ otp_key_base: $ENV.otp,
+ db_key_base: $ENV.db,
+ openid_connect_signing_key: $ENV.jws}}' \
+ > '${cfg.statePath}/config/secrets.yml'
+ )
+
+ initial_root_password="$(<'${cfg.initialRootPasswordFile}')"
+ ${gitlab-rake}/bin/gitlab-rake gitlab:db:configure GITLAB_ROOT_PASSWORD="$initial_root_password" \
+ GITLAB_ROOT_EMAIL='${cfg.initialRootEmail}' > /dev/null
+
+ # We remove potentially broken links to old gitlab-shell versions
+ rm -Rf ${cfg.statePath}/repositories/**/*.git/hooks
+
+ ${pkgs.git}/bin/git config --global core.autocrlf "input"
+ '';
+ in [
+ "+${pkgs.writeShellScript "gitlab-pre-start-full-privileges" preStartFullPrivileges}"
+ "${pkgs.writeShellScript "gitlab-pre-start" preStart}"
+ ];
ExecStart = "${cfg.packages.gitlab.rubyEnv}/bin/unicorn -c ${cfg.statePath}/config/unicorn.rb -E production";
};
diff --git a/nixos/modules/services/misc/gollum.nix b/nixos/modules/services/misc/gollum.nix
index 7653b415bf0..f4a9c72b154 100644
--- a/nixos/modules/services/misc/gollum.nix
+++ b/nixos/modules/services/misc/gollum.nix
@@ -71,6 +71,7 @@ in
group = config.users.users.gollum.name;
description = "Gollum user";
createHome = false;
+ isSystemUser = true;
};
users.groups.gollum = { };
diff --git a/nixos/modules/services/misc/home-assistant.nix b/nixos/modules/services/misc/home-assistant.nix
index f1b35124674..74702c97f55 100644
--- a/nixos/modules/services/misc/home-assistant.nix
+++ b/nixos/modules/services/misc/home-assistant.nix
@@ -224,6 +224,7 @@ in {
KillSignal = "SIGINT";
PrivateTmp = true;
RemoveIPC = true;
+ AmbientCapabilities = "cap_net_raw,cap_net_admin+eip";
};
path = [
"/run/wrappers" # needed for ping
diff --git a/nixos/modules/services/misc/jellyfin.nix b/nixos/modules/services/misc/jellyfin.nix
index 55559206568..6ecdfb57dc3 100644
--- a/nixos/modules/services/misc/jellyfin.nix
+++ b/nixos/modules/services/misc/jellyfin.nix
@@ -41,7 +41,10 @@ in
};
users.users = mkIf (cfg.user == "jellyfin") {
- jellyfin.group = cfg.group;
+ jellyfin = {
+ group = cfg.group;
+ isSystemUser = true;
+ };
};
users.groups = mkIf (cfg.group == "jellyfin") {
diff --git a/nixos/modules/services/misc/lidarr.nix b/nixos/modules/services/misc/lidarr.nix
index 40755c16217..8ff1adadcf2 100644
--- a/nixos/modules/services/misc/lidarr.nix
+++ b/nixos/modules/services/misc/lidarr.nix
@@ -10,6 +10,12 @@ in
services.lidarr = {
enable = mkEnableOption "Lidarr";
+ dataDir = mkOption {
+ type = types.str;
+ default = "/var/lib/lidarr/.config/Lidarr";
+ description = "The directory where Lidarr stores its data files.";
+ };
+
package = mkOption {
type = types.package;
default = pkgs.lidarr;
@@ -44,6 +50,10 @@ in
};
config = mkIf cfg.enable {
+ systemd.tmpfiles.rules = [
+ "d '${cfg.dataDir}' 0700 ${cfg.user} ${cfg.group} - -"
+ ];
+
systemd.services.lidarr = {
description = "Lidarr";
after = [ "network.target" ];
@@ -53,11 +63,8 @@ in
Type = "simple";
User = cfg.user;
Group = cfg.group;
- ExecStart = "${cfg.package}/bin/Lidarr";
+ ExecStart = "${cfg.package}/bin/Lidarr -nobrowser -data='${cfg.dataDir}'";
Restart = "on-failure";
-
- StateDirectory = "lidarr";
- StateDirectoryMode = "0770";
};
};
diff --git a/nixos/modules/services/misc/matrix-synapse.nix b/nixos/modules/services/misc/matrix-synapse.nix
index 018fac38616..50661b873f6 100644
--- a/nixos/modules/services/misc/matrix-synapse.nix
+++ b/nixos/modules/services/misc/matrix-synapse.nix
@@ -79,7 +79,11 @@ turn_user_lifetime: "${cfg.turn_user_lifetime}"
user_creation_max_duration: ${cfg.user_creation_max_duration}
bcrypt_rounds: ${cfg.bcrypt_rounds}
allow_guest_access: ${boolToString cfg.allow_guest_access}
-trusted_third_party_id_servers: ${builtins.toJSON cfg.trusted_third_party_id_servers}
+
+account_threepid_delegates:
+ ${optionalString (cfg.account_threepid_delegates.email != null) "email: ${cfg.account_threepid_delegates.email}"}
+ ${optionalString (cfg.account_threepid_delegates.msisdn != null) "msisdn: ${cfg.account_threepid_delegates.msisdn}"}
+
room_invite_state_types: ${builtins.toJSON cfg.room_invite_state_types}
${optionalString (cfg.macaroon_secret_key != null) ''
macaroon_secret_key: "${cfg.macaroon_secret_key}"
@@ -102,6 +106,7 @@ perspectives:
'') cfg.servers)}
}
}
+redaction_retention_period: ${toString cfg.redaction_retention_period}
app_service_config_files: ${builtins.toJSON cfg.app_service_config_files}
${cfg.extraConfig}
@@ -402,6 +407,9 @@ in {
"192.168.0.0/16"
"100.64.0.0/10"
"169.254.0.0/16"
+ "::1/128"
+ "fe80::/64"
+ "fc00::/7"
];
description = ''
List of IP address CIDR ranges that the URL preview spider is denied
@@ -552,14 +560,18 @@ in {
accessible to anonymous users.
'';
};
- trusted_third_party_id_servers = mkOption {
- type = types.listOf types.str;
- default = [
- "matrix.org"
- "vector.im"
- ];
+ account_threepid_delegates.email = mkOption {
+ type = types.nullOr types.str;
+ default = null;
description = ''
- The list of identity servers trusted to verify third party identifiers by this server.
+ Delegate email sending to https://example.org
+ '';
+ };
+ account_threepid_delegates.msisdn = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ description = ''
+ Delegate SMS sending to this local process (https://localhost:8090)
'';
};
room_invite_state_types = mkOption {
@@ -600,6 +612,13 @@ in {
A list of application service config file to use
'';
};
+ redaction_retention_period = mkOption {
+ type = types.int;
+ default = 7;
+ description = ''
+ How long to keep redacted events in unredacted form in the database.
+ '';
+ };
extraConfig = mkOption {
type = types.lines;
default = "";
@@ -699,4 +718,12 @@ in {
};
};
};
+
+ imports = [
+ (mkRemovedOptionModule [ "services" "matrix-synapse" "trusted_third_party_id_servers" ] ''
+ The `trusted_third_party_id_servers` option as been removed in `matrix-synapse` v1.4.0
+ as the behavior is now obsolete.
+ '')
+ ];
+
}
diff --git a/nixos/modules/services/misc/nix-daemon.nix b/nixos/modules/services/misc/nix-daemon.nix
index 3826f728afd..dcec4d4fc6c 100644
--- a/nixos/modules/services/misc/nix-daemon.nix
+++ b/nixos/modules/services/misc/nix-daemon.nix
@@ -10,7 +10,7 @@ let
nixVersion = getVersion nix;
- isNix20 = versionAtLeast nixVersion "2.0pre";
+ isNix23 = versionAtLeast nixVersion "2.3pre";
makeNixBuildUser = nr:
{ name = "nixbld${toString nr}";
@@ -27,43 +27,30 @@ let
nixbldUsers = map makeNixBuildUser (range 1 cfg.nrBuildUsers);
nixConf =
- let
- # In Nix < 2.0, If we're using sandbox for builds, then provide
- # /bin/sh in the sandbox as a bind-mount to bash. This means we
- # also need to include the entire closure of bash. Nix >= 2.0
- # provides a /bin/sh by default.
- sh = pkgs.runtimeShell;
- binshDeps = pkgs.writeReferencesToFile sh;
- in
- pkgs.runCommand "nix.conf" { preferLocalBuild = true; extraOptions = cfg.extraOptions; } (''
- ${optionalString (!isNix20) ''
- extraPaths=$(for i in $(cat ${binshDeps}); do if test -d $i; then echo $i; fi; done)
- ''}
+ assert versionAtLeast nixVersion "2.2";
+ pkgs.runCommand "nix.conf" { preferLocalBuild = true; extraOptions = cfg.extraOptions; } (
+ ''
cat > $out </dev/null
+ NIX_CONF_DIR=$PWD ${cfg.package}/bin/nix show-config ${optionalString isNix23 "--no-net --option experimental-features nix-command"} >/dev/null
'')
);
@@ -165,8 +152,8 @@ in
type = types.lines;
default = "";
example = ''
- gc-keep-outputs = true
- gc-keep-derivations = true
+ keep-outputs = true
+ keep-derivations = true
'';
description = "Additional text appended to nix.conf .";
};
@@ -421,8 +408,7 @@ in
systemd.services.nix-daemon =
{ path = [ nix pkgs.utillinux config.programs.ssh.package ]
- ++ optionals cfg.distributedBuilds [ pkgs.gzip ]
- ++ optionals (!isNix20) [ pkgs.openssl.bin ];
+ ++ optionals cfg.distributedBuilds [ pkgs.gzip ];
environment = cfg.envVars
// { CURL_CA_BUNDLE = "/etc/ssl/certs/ca-certificates.crt"; }
@@ -439,34 +425,13 @@ in
restartTriggers = [ nixConf ];
};
- nix.envVars =
- optionalAttrs (!isNix20) {
- NIX_CONF_DIR = "/etc/nix";
-
- # Enable the copy-from-other-stores substituter, which allows
- # builds to be sped up by copying build results from remote
- # Nix stores. To do this, mount the remote file system on a
- # subdirectory of /run/nix/remote-stores.
- NIX_OTHER_STORES = "/run/nix/remote-stores/*/nix";
- }
-
- // optionalAttrs (cfg.distributedBuilds && !isNix20) {
- NIX_BUILD_HOOK = "${nix}/libexec/nix/build-remote.pl";
- };
-
# Set up the environment variables for running Nix.
environment.sessionVariables = cfg.envVars //
{ NIX_PATH = cfg.nixPath;
};
- environment.extraInit = optionalString (!isNix20)
+ environment.extraInit =
''
- # Set up secure multi-user builds: non-root users build through the
- # Nix daemon.
- if [ "$USER" != root -o ! -w /nix/var/nix/db ]; then
- export NIX_REMOTE=daemon
- fi
- '' + ''
if [ -e "$HOME/.nix-defexpr/channels" ]; then
export NIX_PATH="$HOME/.nix-defexpr/channels''${NIX_PATH:+:$NIX_PATH}"
fi
@@ -478,21 +443,15 @@ in
services.xserver.displayManager.hiddenUsers = map ({ name, ... }: name) nixbldUsers;
- # FIXME: use systemd-tmpfiles to create Nix directories.
system.activationScripts.nix = stringAfter [ "etc" "users" ]
''
- # Nix initialisation.
- install -m 0755 -d \
- /nix/var/nix/gcroots \
- /nix/var/nix/temproots \
- /nix/var/nix/userpool \
- /nix/var/nix/profiles \
- /nix/var/nix/db \
- /nix/var/log/nix/drvs
- install -m 1777 -d \
- /nix/var/nix/gcroots/per-user \
- /nix/var/nix/profiles/per-user \
- /nix/var/nix/gcroots/tmp
+ # Create directories in /nix.
+ ${nix}/bin/nix ping-store --no-net
+
+ # Subscribe the root user to the NixOS channel by default.
+ if [ ! -e "/root/.nix-channels" ]; then
+ echo "${config.system.defaultChannel} nixos" > "/root/.nix-channels"
+ fi
'';
nix.systemFeatures = mkDefault (
diff --git a/nixos/modules/services/misc/nix-optimise.nix b/nixos/modules/services/misc/nix-optimise.nix
index 416529f690e..e02026d5f76 100644
--- a/nixos/modules/services/misc/nix-optimise.nix
+++ b/nixos/modules/services/misc/nix-optimise.nix
@@ -40,8 +40,8 @@ in
systemd.services.nix-optimise =
{ description = "Nix Store Optimiser";
- # No point running it inside a nixos-container. It should be on the host instead.
- unitConfig.ConditionVirtualization = "!container";
+ # No point this if the nix daemon (and thus the nix store) is outside
+ unitConfig.ConditionPathIsReadWrite = "/nix/var/nix/daemon-socket";
serviceConfig.ExecStart = "${config.nix.package}/bin/nix-store --optimise";
startAt = optionals cfg.automatic cfg.dates;
};
diff --git a/nixos/modules/services/misc/osrm.nix b/nixos/modules/services/misc/osrm.nix
index f89f37ccd9d..79c347ab7e0 100644
--- a/nixos/modules/services/misc/osrm.nix
+++ b/nixos/modules/services/misc/osrm.nix
@@ -59,6 +59,7 @@ in
group = config.users.users.osrm.name;
description = "OSRM user";
createHome = false;
+ isSystemUser = true;
};
users.groups.osrm = { };
diff --git a/nixos/modules/services/misc/pykms.nix b/nixos/modules/services/misc/pykms.nix
index ab00086e591..e2d1254602b 100644
--- a/nixos/modules/services/misc/pykms.nix
+++ b/nixos/modules/services/misc/pykms.nix
@@ -4,6 +4,7 @@ with lib;
let
cfg = config.services.pykms;
+ libDir = "/var/lib/pykms";
in {
meta.maintainers = with lib.maintainers; [ peterhoeg ];
@@ -28,12 +29,6 @@ in {
description = "The port on which to listen.";
};
- verbose = mkOption {
- type = types.bool;
- default = false;
- description = "Show verbose output.";
- };
-
openFirewallPort = mkOption {
type = types.bool;
default = false;
@@ -45,30 +40,44 @@ in {
default = "64M";
description = "How much memory to use at most.";
};
+
+ logLevel = mkOption {
+ type = types.enum [ "CRITICAL" "ERROR" "WARNING" "INFO" "DEBUG" "MINI" ];
+ default = "INFO";
+ description = "How much to log";
+ };
+
+ extraArgs = mkOption {
+ type = types.listOf types.str;
+ default = [];
+ description = "Additional arguments";
+ };
};
};
config = mkIf cfg.enable {
networking.firewall.allowedTCPPorts = lib.mkIf cfg.openFirewallPort [ cfg.port ];
- systemd.services.pykms = let
- home = "/var/lib/pykms";
- in {
+ systemd.services.pykms = {
description = "Python KMS";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
# python programs with DynamicUser = true require HOME to be set
- environment.HOME = home;
+ environment.HOME = libDir;
serviceConfig = with pkgs; {
DynamicUser = true;
- StateDirectory = baseNameOf home;
- ExecStartPre = "${getBin pykms}/bin/create_pykms_db.sh ${home}/clients.db";
+ StateDirectory = baseNameOf libDir;
+ ExecStartPre = "${getBin pykms}/libexec/create_pykms_db.sh ${libDir}/clients.db";
ExecStart = lib.concatStringsSep " " ([
- "${getBin pykms}/bin/server.py"
+ "${getBin pykms}/bin/server"
+ "--logfile STDOUT"
+ "--loglevel ${cfg.logLevel}"
+ ] ++ cfg.extraArgs ++ [
cfg.listenAddress
(toString cfg.port)
- ] ++ lib.optional cfg.verbose "--verbose");
- WorkingDirectory = home;
+ ]);
+ ProtectHome = "tmpfs";
+ WorkingDirectory = libDir;
Restart = "on-failure";
MemoryLimit = cfg.memoryLimit;
};
diff --git a/nixos/modules/services/misc/redmine.nix b/nixos/modules/services/misc/redmine.nix
index 24b9e27ac2d..bf9a6914a48 100644
--- a/nixos/modules/services/misc/redmine.nix
+++ b/nixos/modules/services/misc/redmine.nix
@@ -62,20 +62,11 @@ in
services.redmine = {
enable = mkEnableOption "Redmine";
- # default to the 4.x series not forcing major version upgrade of those on the 3.x series
package = mkOption {
type = types.package;
- default = if versionAtLeast config.system.stateVersion "19.03"
- then pkgs.redmine_4
- else pkgs.redmine
- ;
- defaultText = "pkgs.redmine";
- description = ''
- Which Redmine package to use. This defaults to version 3.x if
- system.stateVersion < 19.03 and version 4.x
- otherwise.
- '';
- example = "pkgs.redmine_4.override { ruby = pkgs.ruby_2_4; }";
+ default = pkgs.redmine;
+ description = "Which Redmine package to use.";
+ example = "pkgs.redmine.override { ruby = pkgs.ruby_2_4; }";
};
user = mkOption {
diff --git a/nixos/modules/services/misc/zoneminder.nix b/nixos/modules/services/misc/zoneminder.nix
index 3bff04e7127..d7f7324580c 100644
--- a/nixos/modules/services/misc/zoneminder.nix
+++ b/nixos/modules/services/misc/zoneminder.nix
@@ -265,7 +265,7 @@ in {
}
location /cache/ {
- alias /var/cache/${dirName};
+ alias /var/cache/${dirName}/;
}
location ~ \.php$ {
diff --git a/nixos/modules/services/monitoring/collectd.nix b/nixos/modules/services/monitoring/collectd.nix
index 6a4c678eb21..731ac743b7c 100644
--- a/nixos/modules/services/monitoring/collectd.nix
+++ b/nixos/modules/services/monitoring/collectd.nix
@@ -16,13 +16,29 @@ let
NotifyLevel "OKAY"
+ ${concatStrings (mapAttrsToList (plugin: pluginConfig: ''
+ LoadPlugin ${plugin}
+
+ ${pluginConfig}
+
+ '') cfg.plugins)}
+
${concatMapStrings (f: ''
- Include "${f}"
+ Include "${f}"
'') cfg.include}
${cfg.extraConfig}
'';
+ package =
+ if cfg.buildMinimalPackage
+ then minimalPackage
+ else cfg.package;
+
+ minimalPackage = cfg.package.override {
+ enabledPlugins = [ "syslog" ] ++ builtins.attrNames cfg.plugins;
+ };
+
in {
options.services.collectd = with types; {
enable = mkEnableOption "collectd agent";
@@ -33,7 +49,15 @@ in {
description = ''
Which collectd package to use.
'';
- type = package;
+ type = types.package;
+ };
+
+ buildMinimalPackage = mkOption {
+ default = false;
+ description = ''
+ Build a minimal collectd package with only the configured `services.collectd.plugins`
+ '';
+ type = types.bool;
};
user = mkOption {
@@ -68,6 +92,15 @@ in {
type = listOf str;
};
+ plugins = mkOption {
+ default = {};
+ example = { cpu = ""; memory = ""; network = "Server 192.168.1.1 25826"; };
+ description = ''
+ Attribute set of plugin names to plugin config segments
+ '';
+ type = types.attrsOf types.str;
+ };
+
extraConfig = mkOption {
default = "";
description = ''
@@ -89,7 +122,7 @@ in {
wantedBy = [ "multi-user.target" ];
serviceConfig = {
- ExecStart = "${cfg.package}/sbin/collectd -C ${conf} -f";
+ ExecStart = "${package}/sbin/collectd -C ${conf} -f";
User = cfg.user;
Restart = "on-failure";
RestartSec = 3;
@@ -98,6 +131,7 @@ in {
users.users = optional (cfg.user == "collectd") {
name = "collectd";
+ isSystemUser = true;
};
};
}
diff --git a/nixos/modules/services/monitoring/do-agent.nix b/nixos/modules/services/monitoring/do-agent.nix
new file mode 100644
index 00000000000..2d3fe2f7976
--- /dev/null
+++ b/nixos/modules/services/monitoring/do-agent.nix
@@ -0,0 +1,34 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+ cfg = config.services.do-agent;
+in
+{
+ options.services.do-agent = {
+ enable = mkEnableOption "do-agent, the DigitalOcean droplet metrics agent";
+ };
+
+ config = mkIf cfg.enable {
+ environment.systemPackages = [ pkgs.do-agent ];
+
+ systemd.services.do-agent = {
+ description = "DigitalOcean Droplet Metrics Agent";
+ wantedBy = [ "multi-user.target" ];
+ after = [ "network-online.target" ];
+ wants = [ "network-online.target" ];
+ serviceConfig = {
+ ExecStart = "${pkgs.do-agent}/bin/do-agent --syslog";
+ Restart = "always";
+ OOMScoreAdjust = -900;
+ SyslogIdentifier = "DigitalOceanAgent";
+ PrivateTmp = "yes";
+ ProtectSystem = "full";
+ ProtectHome = "yes";
+ NoNewPrivileges = "yes";
+ DynamicUser = "yes";
+ };
+ };
+ };
+}
diff --git a/nixos/modules/services/monitoring/fusion-inventory.nix b/nixos/modules/services/monitoring/fusion-inventory.nix
index b90579bb70c..fe19ed56195 100644
--- a/nixos/modules/services/monitoring/fusion-inventory.nix
+++ b/nixos/modules/services/monitoring/fusion-inventory.nix
@@ -49,6 +49,7 @@ in {
users.users = singleton {
name = "fusion-inventory";
description = "FusionInventory user";
+ isSystemUser = true;
};
systemd.services.fusion-inventory = {
diff --git a/nixos/modules/services/monitoring/grafana.nix b/nixos/modules/services/monitoring/grafana.nix
index bf1084eecc3..0f8bc2471e3 100644
--- a/nixos/modules/services/monitoring/grafana.nix
+++ b/nixos/modules/services/monitoring/grafana.nix
@@ -43,7 +43,7 @@ let
ANALYTICS_REPORTING_ENABLED = boolToString cfg.analytics.reporting.enable;
- SMTP_ENABLE = boolToString cfg.smtp.enable;
+ SMTP_ENABLED = boolToString cfg.smtp.enable;
SMTP_HOST = cfg.smtp.host;
SMTP_USER = cfg.smtp.user;
SMTP_PASSWORD = cfg.smtp.password;
diff --git a/nixos/modules/services/monitoring/graphite.nix b/nixos/modules/services/monitoring/graphite.nix
index 64cb6c3da1e..f7874af3df2 100644
--- a/nixos/modules/services/monitoring/graphite.nix
+++ b/nixos/modules/services/monitoring/graphite.nix
@@ -239,7 +239,7 @@ in {
description = "Any metrics received which match one of the experssions will be dropped.";
default = null;
type = types.nullOr types.str;
- example = "^some\.noisy\.metric\.prefix\..*";
+ example = "^some\\.noisy\\.metric\\.prefix\\..*";
};
whitelist = mkOption {
diff --git a/nixos/modules/services/monitoring/netdata.nix b/nixos/modules/services/monitoring/netdata.nix
index 463b1b882ac..3ffde8e9bce 100644
--- a/nixos/modules/services/monitoring/netdata.nix
+++ b/nixos/modules/services/monitoring/netdata.nix
@@ -138,7 +138,7 @@ in {
description = "Real time performance monitoring";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
- path = (with pkgs; [ gawk curl ]) ++ lib.optional cfg.python.enable
+ 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";
@@ -181,6 +181,7 @@ in {
users.users = optional (cfg.user == defaultUser) {
name = defaultUser;
+ isSystemUser = true;
};
users.groups = optional (cfg.group == defaultUser) {
diff --git a/nixos/modules/services/monitoring/osquery.nix b/nixos/modules/services/monitoring/osquery.nix
deleted file mode 100644
index c8c625577d3..00000000000
--- a/nixos/modules/services/monitoring/osquery.nix
+++ /dev/null
@@ -1,91 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with builtins;
-with lib;
-
-let
- cfg = config.services.osquery;
-
-in
-
-{
-
- options = {
-
- services.osquery = {
-
- enable = mkEnableOption "osquery";
-
- loggerPath = mkOption {
- type = types.path;
- description = "Base directory used for logging.";
- default = "/var/log/osquery";
- };
-
- pidfile = mkOption {
- type = types.path;
- description = "Path used for pid file.";
- default = "/var/osquery/osqueryd.pidfile";
- };
-
- utc = mkOption {
- type = types.bool;
- description = "Attempt to convert all UNIX calendar times to UTC.";
- default = true;
- };
-
- databasePath = mkOption {
- type = types.path;
- description = "Path used for database file.";
- default = "/var/osquery/osquery.db";
- };
-
- extraConfig = mkOption {
- type = types.attrs // {
- merge = loc: foldl' (res: def: recursiveUpdate res def.value) {};
- };
- description = "Extra config to be recursively merged into the JSON config file.";
- default = { };
- };
- };
-
- };
-
- config = mkIf cfg.enable {
-
- environment.systemPackages = [ pkgs.osquery ];
-
- environment.etc."osquery/osquery.conf".text = toJSON (
- recursiveUpdate {
- options = {
- config_plugin = "filesystem";
- logger_plugin = "filesystem";
- logger_path = cfg.loggerPath;
- database_path = cfg.databasePath;
- utc = cfg.utc;
- };
- } cfg.extraConfig
- );
-
- systemd.services.osqueryd = {
- description = "The osquery Daemon";
- after = [ "network.target" "syslog.service" ];
- wantedBy = [ "multi-user.target" ];
- path = [ pkgs.osquery ];
- preStart = ''
- mkdir -p ${escapeShellArg cfg.loggerPath}
- mkdir -p "$(dirname ${escapeShellArg cfg.pidfile})"
- mkdir -p "$(dirname ${escapeShellArg cfg.databasePath})"
- '';
- serviceConfig = {
- TimeoutStartSec = "infinity";
- ExecStart = "${pkgs.osquery}/bin/osqueryd --logger_path ${escapeShellArg cfg.loggerPath} --pidfile ${escapeShellArg cfg.pidfile} --database_path ${escapeShellArg cfg.databasePath}";
- KillMode = "process";
- KillSignal = "SIGTERM";
- Restart = "on-failure";
- };
- };
-
- };
-
-}
diff --git a/nixos/modules/services/monitoring/prometheus/exporters.nix b/nixos/modules/services/monitoring/prometheus/exporters.nix
index b69310c34ff..35b513bac57 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters.nix
@@ -30,10 +30,12 @@ let
"json"
"mail"
"minio"
+ "nextcloud"
"nginx"
"node"
"postfix"
"postgres"
+ "rspamd"
"snmp"
"surfboard"
"tor"
@@ -193,6 +195,8 @@ in
services.prometheus.exporters.minio.minioAddress = mkDefault "http://localhost:9000";
services.prometheus.exporters.minio.minioAccessKey = mkDefault config.services.minio.accessKey;
services.prometheus.exporters.minio.minioAccessSecret = mkDefault config.services.minio.secretKey;
+ })] ++ [(mkIf config.services.rspamd.enable {
+ services.prometheus.exporters.rspamd.url = mkDefault "http://localhost:11334/stat";
})] ++ (mapAttrsToList (name: conf:
mkExporterConf {
inherit name;
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/blackbox.nix b/nixos/modules/services/monitoring/prometheus/exporters/blackbox.nix
index ca4366121e1..8a90afa9984 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/blackbox.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/blackbox.nix
@@ -3,16 +3,34 @@
with lib;
let
+ logPrefix = "services.prometheus.exporter.blackbox";
cfg = config.services.prometheus.exporters.blackbox;
- checkConfig = file: pkgs.runCommand "checked-blackbox-exporter.conf" {
- preferLocalBuild = true;
- buildInputs = [ pkgs.buildPackages.prometheus-blackbox-exporter ]; } ''
- ln -s ${file} $out
- blackbox_exporter --config.check --config.file $out
- '';
-in
-{
+ # This ensures that we can deal with string paths, path types and
+ # store-path strings with context.
+ coerceConfigFile = file:
+ if (builtins.isPath file) || (lib.isStorePath file) then
+ file
+ else
+ (lib.warn ''
+ ${logPrefix}: configuration file "${file}" is being copied to the nix-store.
+ If you would like to avoid that, please set enableConfigCheck to false.
+ '' /. + file);
+ checkConfigLocation = file:
+ if lib.hasPrefix "/tmp/" file then
+ throw
+ "${logPrefix}: configuration file must not reside within /tmp - it won't be visible to the systemd service."
+ else
+ true;
+ checkConfig = file:
+ pkgs.runCommand "checked-blackbox-exporter.conf" {
+ preferLocalBuild = true;
+ buildInputs = [ pkgs.buildPackages.prometheus-blackbox-exporter ];
+ } ''
+ ln -s ${coerceConfigFile file} $out
+ blackbox_exporter --config.check --config.file $out
+ '';
+in {
port = 9115;
extraOpts = {
configFile = mkOption {
@@ -21,14 +39,29 @@ in
Path to configuration file.
'';
};
+ enableConfigCheck = mkOption {
+ type = types.bool;
+ default = true;
+ description = ''
+ Whether to run a correctness check for the configuration file. This depends
+ on the configuration file residing in the nix-store. Paths passed as string will
+ be copied to the store.
+ '';
+ };
};
- serviceOpts = {
+
+ serviceOpts = let
+ adjustedConfigFile = if cfg.enableConfigCheck then
+ checkConfig cfg.configFile
+ else
+ checkConfigLocation cfg.configFile;
+ in {
serviceConfig = {
AmbientCapabilities = [ "CAP_NET_RAW" ]; # for ping probes
ExecStart = ''
${pkgs.prometheus-blackbox-exporter}/bin/blackbox_exporter \
--web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
- --config.file ${checkConfig cfg.configFile} \
+ --config.file ${adjustedConfigFile} \
${concatStringsSep " \\\n " cfg.extraFlags}
'';
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/nextcloud.nix b/nixos/modules/services/monitoring/prometheus/exporters/nextcloud.nix
new file mode 100644
index 00000000000..5f9a52053f7
--- /dev/null
+++ b/nixos/modules/services/monitoring/prometheus/exporters/nextcloud.nix
@@ -0,0 +1,58 @@
+{ config, lib, pkgs, options }:
+
+with lib;
+
+let
+ cfg = config.services.prometheus.exporters.nextcloud;
+in
+{
+ port = 9205;
+ extraOpts = {
+ url = mkOption {
+ type = types.str;
+ example = "https://domain.tld";
+ description = ''
+ URL to the Nextcloud serverinfo page.
+ Adding the path to the serverinfo API is optional, it defaults
+ to /ocs/v2.php/apps/serverinfo/api/v1/info .
+ '';
+ };
+ username = mkOption {
+ type = types.str;
+ default = "nextcloud-exporter";
+ description = ''
+ Username for connecting to Nextcloud.
+ Note that this account needs to have admin privileges in Nextcloud.
+ '';
+ };
+ passwordFile = mkOption {
+ type = types.path;
+ example = "/path/to/password-file";
+ description = ''
+ File containing the password for connecting to Nextcloud.
+ Make sure that this file is readable by the exporter user.
+ '';
+ };
+ timeout = mkOption {
+ type = types.str;
+ default = "5s";
+ description = ''
+ Timeout for getting server info document.
+ '';
+ };
+ };
+ serviceOpts = {
+ serviceConfig = {
+ DynamicUser = false;
+ ExecStart = ''
+ ${pkgs.prometheus-nextcloud-exporter}/bin/nextcloud-exporter \
+ -a ${cfg.listenAddress}:${toString cfg.port} \
+ -u ${cfg.username} \
+ -t ${cfg.timeout} \
+ -l ${cfg.url} \
+ -p @${cfg.passwordFile} \
+ ${concatStringsSep " \\\n " cfg.extraFlags}
+ '';
+ };
+ };
+}
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/nginx.nix b/nixos/modules/services/monitoring/prometheus/exporters/nginx.nix
index 554377df37b..ba852fea433 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/nginx.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/nginx.nix
@@ -49,6 +49,6 @@ in
(mkRemovedOptionModule [ "insecure" ] ''
This option was replaced by 'prometheus.exporters.nginx.sslVerify'.
'')
- ({ options.warnings = options.warnings; })
+ ({ options.warnings = options.warnings; options.assertions = options.assertions; })
];
}
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/rspamd.nix b/nixos/modules/services/monitoring/prometheus/exporters/rspamd.nix
new file mode 100644
index 00000000000..1f02ae20724
--- /dev/null
+++ b/nixos/modules/services/monitoring/prometheus/exporters/rspamd.nix
@@ -0,0 +1,92 @@
+{ config, lib, pkgs, options }:
+
+with lib;
+
+let
+ cfg = config.services.prometheus.exporters.rspamd;
+
+ prettyJSON = conf:
+ pkgs.runCommand "rspamd-exporter-config.yml" { } ''
+ echo '${builtins.toJSON conf}' | ${pkgs.buildPackages.jq}/bin/jq '.' > $out
+ '';
+
+ generateConfig = extraLabels: (map (path: {
+ name = "rspamd_${replaceStrings [ "." " " ] [ "_" "_" ] path}";
+ path = "$.${path}";
+ labels = extraLabels;
+ }) [
+ "actions.'add header'"
+ "actions.'no action'"
+ "actions.'rewrite subject'"
+ "actions.'soft reject'"
+ "actions.greylist"
+ "actions.reject"
+ "bytes_allocated"
+ "chunks_allocated"
+ "chunks_freed"
+ "chunks_oversized"
+ "connections"
+ "control_connections"
+ "ham_count"
+ "learned"
+ "pools_allocated"
+ "pools_freed"
+ "read_only"
+ "scanned"
+ "shared_chunks_allocated"
+ "spam_count"
+ "total_learns"
+ ]) ++ [{
+ name = "rspamd_statfiles";
+ type = "object";
+ path = "$.statfiles[*]";
+ labels = recursiveUpdate {
+ symbol = "$.symbol";
+ type = "$.type";
+ } extraLabels;
+ values = {
+ revision = "$.revision";
+ size = "$.size";
+ total = "$.total";
+ used = "$.used";
+ languages = "$.languages";
+ users = "$.users";
+ };
+ }];
+in
+{
+ port = 7980;
+ extraOpts = {
+ listenAddress = {}; # not used
+
+ url = mkOption {
+ type = types.str;
+ description = ''
+ URL to the rspamd metrics endpoint.
+ Defaults to http://localhost:11334/stat when
+ services.rspamd.enable is true.
+ '';
+ };
+
+ extraLabels = mkOption {
+ type = types.attrsOf types.str;
+ default = {
+ host = config.networking.hostName;
+ };
+ defaultText = "{ host = config.networking.hostName; }";
+ example = literalExample ''
+ {
+ host = config.networking.hostName;
+ custom_label = "some_value";
+ }
+ '';
+ description = "Set of labels added to each metric.";
+ };
+ };
+ serviceOpts.serviceConfig.ExecStart = ''
+ ${pkgs.prometheus-json-exporter}/bin/prometheus-json-exporter \
+ --port ${toString cfg.port} \
+ ${cfg.url} ${prettyJSON (generateConfig cfg.extraLabels)} \
+ ${concatStringsSep " \\\n " cfg.extraFlags}
+ '';
+}
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/wireguard.nix b/nixos/modules/services/monitoring/prometheus/exporters/wireguard.nix
index 8ae2c927b58..374f83a2939 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/wireguard.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/wireguard.nix
@@ -6,6 +6,10 @@ let
cfg = config.services.prometheus.exporters.wireguard;
in {
port = 9586;
+ imports = [
+ (mkRenamedOptionModule [ "addr" ] [ "listenAddress" ])
+ ({ options.warnings = options.warnings; options.assertions = options.assertions; })
+ ];
extraOpts = {
verbose = mkEnableOption "Verbose logging mode for prometheus-wireguard-exporter";
@@ -51,6 +55,7 @@ in {
ExecStart = ''
${pkgs.prometheus-wireguard-exporter}/bin/prometheus_wireguard_exporter \
-p ${toString cfg.port} \
+ -l ${cfg.listenAddress} \
${optionalString cfg.verbose "-v"} \
${optionalString cfg.singleSubnetPerField "-s"} \
${optionalString cfg.withRemoteIp "-r"} \
diff --git a/nixos/modules/services/monitoring/thanos.nix b/nixos/modules/services/monitoring/thanos.nix
index 215cd43fd86..52dab28cf72 100644
--- a/nixos/modules/services/monitoring/thanos.nix
+++ b/nixos/modules/services/monitoring/thanos.nix
@@ -126,6 +126,8 @@ let
'';
description = ''
Path to YAML file that contains tracing configuration.
+
+ See format details:
'';
};
};
@@ -141,6 +143,8 @@ let
tracing.config-file will default to its path.
If tracing.config-file is set this option has no effect.
+
+ See format details:
'';
};
};
@@ -187,6 +191,8 @@ let
'';
description = ''
Path to YAML file that contains object store configuration.
+
+ See format details:
'';
};
};
@@ -202,6 +208,8 @@ let
objstore.config-file will default to its path.
If objstore.config-file is set this option has no effect.
+
+ See format details:
'';
};
};
@@ -276,6 +284,24 @@ let
block-sync-concurrency = mkParamDef types.int 20 ''
Number of goroutines to use when syncing blocks from object storage.
'';
+
+ min-time = mkParamDef types.str "0000-01-01T00:00:00Z" ''
+ Start of time range limit to serve.
+
+ Thanos Store serves only metrics, which happened later than this
+ value. Option can be a constant time in RFC3339 format or time duration
+ relative to current time, such as -1d or 2h45m. Valid duration units are
+ ms, s, m, h, d, w, y.
+ '';
+
+ max-time = mkParamDef types.str "9999-12-31T23:59:59Z" ''
+ End of time range limit to serve.
+
+ Thanos Store serves only blocks, which happened eariler than this
+ value. Option can be a constant time in RFC3339 format or time duration
+ relative to current time, such as -1d or 2h45m. Valid duration units are
+ ms, s, m, h, d, w, y.
+ '';
};
query = params.common cfg.query // {
@@ -560,6 +586,14 @@ let
'';
};
+ downsampling.disable = mkFlagParam ''
+ Disables downsampling.
+
+ This is not recommended as querying long time ranges without
+ non-downsampled data is not efficient and useful e.g it is not possible
+ to render all samples for a human eye anyway
+ '';
+
block-sync-concurrency = mkParamDef types.int 20 ''
Number of goroutines to use when syncing block metadata from object storage.
'';
diff --git a/nixos/modules/services/monitoring/zabbix-agent.nix b/nixos/modules/services/monitoring/zabbix-agent.nix
index 856b9432892..b3383ed628b 100644
--- a/nixos/modules/services/monitoring/zabbix-agent.nix
+++ b/nixos/modules/services/monitoring/zabbix-agent.nix
@@ -131,6 +131,7 @@ in
users.users.${user} = {
description = "Zabbix Agent daemon user";
inherit group;
+ isSystemUser = true;
};
users.groups.${group} = { };
diff --git a/nixos/modules/services/monitoring/zabbix-server.nix b/nixos/modules/services/monitoring/zabbix-server.nix
index 4b4049ed360..e9f1590760a 100644
--- a/nixos/modules/services/monitoring/zabbix-server.nix
+++ b/nixos/modules/services/monitoring/zabbix-server.nix
@@ -30,6 +30,7 @@ let
DBUser = ${cfg.database.user}
${optionalString (cfg.database.passwordFile != null) "Include ${passwordFile}"}
${optionalString (mysqlLocal && cfg.database.socket != null) "DBSocket = ${cfg.database.socket}"}
+ PidFile = ${runtimeDir}/zabbix_server.pid
SocketDir = ${runtimeDir}
FpingLocation = /run/wrappers/bin/fping
${optionalString (cfg.modules != {}) "LoadModulePath = ${moduleEnv}/lib"}
diff --git a/nixos/modules/services/network-filesystems/beegfs.nix b/nixos/modules/services/network-filesystems/beegfs.nix
deleted file mode 100644
index 2e03a422665..00000000000
--- a/nixos/modules/services/network-filesystems/beegfs.nix
+++ /dev/null
@@ -1,357 +0,0 @@
-{ config, lib, pkgs, ...} :
-
-with lib;
-
-let
- cfg = config.services.beegfs;
-
- # functions for the generations of config files
-
- configMgmtd = name: cfg: pkgs.writeText "mgmt-${name}.conf" ''
- storeMgmtdDirectory = ${cfg.mgmtd.storeDir}
- storeAllowFirstRunInit = false
- connAuthFile = ${cfg.connAuthFile}
- connPortShift = ${toString cfg.connPortShift}
-
- ${cfg.mgmtd.extraConfig}
- '';
-
- configAdmon = name: cfg: pkgs.writeText "admon-${name}.conf" ''
- sysMgmtdHost = ${cfg.mgmtdHost}
- connAuthFile = ${cfg.connAuthFile}
- connPortShift = ${toString cfg.connPortShift}
-
- ${cfg.admon.extraConfig}
- '';
-
- configMeta = name: cfg: pkgs.writeText "meta-${name}.conf" ''
- storeMetaDirectory = ${cfg.meta.storeDir}
- sysMgmtdHost = ${cfg.mgmtdHost}
- connAuthFile = ${cfg.connAuthFile}
- connPortShift = ${toString cfg.connPortShift}
- storeAllowFirstRunInit = false
-
- ${cfg.meta.extraConfig}
- '';
-
- configStorage = name: cfg: pkgs.writeText "storage-${name}.conf" ''
- storeStorageDirectory = ${cfg.storage.storeDir}
- sysMgmtdHost = ${cfg.mgmtdHost}
- connAuthFile = ${cfg.connAuthFile}
- connPortShift = ${toString cfg.connPortShift}
- storeAllowFirstRunInit = false
-
- ${cfg.storage.extraConfig}
- '';
-
- configHelperd = name: cfg: pkgs.writeText "helperd-${name}.conf" ''
- connAuthFile = ${cfg.connAuthFile}
- ${cfg.helperd.extraConfig}
- '';
-
- configClientFilename = name : "/etc/beegfs/client-${name}.conf";
-
- configClient = name: cfg: ''
- sysMgmtdHost = ${cfg.mgmtdHost}
- connAuthFile = ${cfg.connAuthFile}
- connPortShift = ${toString cfg.connPortShift}
-
- ${cfg.client.extraConfig}
- '';
-
- serviceList = [
- { service = "admon"; cfgFile = configAdmon; }
- { service = "meta"; cfgFile = configMeta; }
- { service = "mgmtd"; cfgFile = configMgmtd; }
- { service = "storage"; cfgFile = configStorage; }
- ];
-
- # functions to generate systemd.service entries
-
- systemdEntry = service: cfgFile: (mapAttrs' ( name: cfg:
- (nameValuePair "beegfs-${service}-${name}" (mkIf cfg.${service}.enable {
- wantedBy = [ "multi-user.target" ];
- requires = [ "network-online.target" ];
- after = [ "network-online.target" ];
- serviceConfig = rec {
- ExecStart = ''
- ${pkgs.beegfs}/bin/beegfs-${service} \
- cfgFile=${cfgFile name cfg} \
- pidFile=${PIDFile}
- '';
- PIDFile = "/run/beegfs-${service}-${name}.pid";
- TimeoutStopSec = "300";
- };
- }))) cfg);
-
- systemdHelperd = mapAttrs' ( name: cfg:
- (nameValuePair "beegfs-helperd-${name}" (mkIf cfg.client.enable {
- wantedBy = [ "multi-user.target" ];
- requires = [ "network-online.target" ];
- after = [ "network-online.target" ];
- serviceConfig = rec {
- ExecStart = ''
- ${pkgs.beegfs}/bin/beegfs-helperd \
- cfgFile=${configHelperd name cfg} \
- pidFile=${PIDFile}
- '';
- PIDFile = "/run/beegfs-helperd-${name}.pid";
- TimeoutStopSec = "300";
- };
- }))) cfg;
-
- # wrappers to beegfs tools. Avoid typing path of config files
- utilWrappers = mapAttrsToList ( name: cfg:
- ( pkgs.runCommand "beegfs-utils-${name}" {
- nativeBuildInputs = [ pkgs.makeWrapper ];
- preferLocalBuild = true;
- } ''
- mkdir -p $out/bin
-
- makeWrapper ${pkgs.beegfs}/bin/beegfs-check-servers \
- $out/bin/beegfs-check-servers-${name} \
- --add-flags "-c ${configClientFilename name}" \
- --prefix PATH : ${lib.makeBinPath [ pkgs.beegfs ]}
-
- makeWrapper ${pkgs.beegfs}/bin/beegfs-ctl \
- $out/bin/beegfs-ctl-${name} \
- --add-flags "--cfgFile=${configClientFilename name}"
-
- makeWrapper ${pkgs.beegfs}/bin/beegfs-ctl \
- $out/bin/beegfs-df-${name} \
- --add-flags "--cfgFile=${configClientFilename name}" \
- --add-flags --listtargets \
- --add-flags --hidenodeid \
- --add-flags --pools \
- --add-flags --spaceinfo
-
- makeWrapper ${pkgs.beegfs}/bin/beegfs-fsck \
- $out/bin/beegfs-fsck-${name} \
- --add-flags "--cfgFile=${configClientFilename name}"
- ''
- )) cfg;
-in
-{
- ###### interface
-
- options = {
- services.beegfsEnable = mkEnableOption "BeeGFS";
-
- services.beegfs = mkOption {
- default = {};
- description = ''
- BeeGFS configurations. Every mount point requires a separate configuration.
- '';
- type = with types; attrsOf (submodule ({ ... } : {
- options = {
- mgmtdHost = mkOption {
- type = types.str;
- default = null;
- example = "master";
- description = ''Hostname of managament host.'';
- };
-
- connAuthFile = mkOption {
- type = types.str;
- default = "";
- example = "/etc/my.key";
- description = "File containing shared secret authentication.";
- };
-
- connPortShift = mkOption {
- type = types.int;
- default = 0;
- example = 5;
- description = ''
- For each additional beegfs configuration shift all
- service TCP/UDP ports by at least 5.
- '';
- };
-
- client = {
- enable = mkEnableOption "BeeGFS client";
-
- mount = mkOption {
- type = types.bool;
- default = true;
- description = "Create fstab entry automatically";
- };
-
- mountPoint = mkOption {
- type = types.str;
- default = "/run/beegfs";
- description = ''
- Mount point under which the beegfs filesytem should be mounted.
- If mounted manually the mount option specifing the config file is needed:
- cfgFile=/etc/beegfs/beegfs-client-<name>.conf
- '';
- };
-
- extraConfig = mkOption {
- type = types.lines;
- default = "";
- description = ''
- Additional lines for beegfs-client.conf.
- See documentation for further details.
- '';
- };
- };
-
- helperd = {
- enable = mkOption {
- type = types.bool;
- default = true;
- description = ''
- Enable the BeeGFS helperd.
- The helpered is need for logging purposes on the client.
- Disabling helperd allows for runing the client
- with allowUnfree = false .
- '';
- };
-
- extraConfig = mkOption {
- type = types.lines;
- default = "";
- description = ''
- Additional lines for beegfs-helperd.conf. See documentation
- for further details.
- '';
- };
- };
-
- mgmtd = {
- enable = mkEnableOption "BeeGFS mgmtd daemon";
-
- storeDir = mkOption {
- type = types.path;
- default = null;
- example = "/data/beegfs-mgmtd";
- description = ''
- Data directory for mgmtd.
- Must not be shared with other beegfs daemons.
- This directory must exist and it must be initialized
- with beegfs-setup-mgmtd, e.g. "beegfs-setup-mgmtd -C -p <storeDir>"
- '';
- };
-
- extraConfig = mkOption {
- type = types.lines;
- default = "";
- description = ''
- Additional lines for beegfs-mgmtd.conf. See documentation
- for further details.
- '';
- };
- };
-
- admon = {
- enable = mkEnableOption "BeeGFS admon daemon";
-
- extraConfig = mkOption {
- type = types.lines;
- default = "";
- description = ''
- Additional lines for beegfs-admon.conf. See documentation
- for further details.
- '';
- };
- };
-
- meta = {
- enable = mkEnableOption "BeeGFS meta data daemon";
-
- storeDir = mkOption {
- type = types.path;
- default = null;
- example = "/data/beegfs-meta";
- description = ''
- Data directory for meta data service.
- Must not be shared with other beegfs daemons.
- The underlying filesystem must be mounted with xattr turned on.
- This directory must exist and it must be initialized
- with beegfs-setup-meta, e.g.
- "beegfs-setup-meta -C -s <serviceID> -p <storeDir>"
- '';
- };
-
- extraConfig = mkOption {
- type = types.str;
- default = "";
- description = ''
- Additional lines for beegfs-meta.conf. See documentation
- for further details.
- '';
- };
- };
-
- storage = {
- enable = mkEnableOption "BeeGFS storage daemon";
-
- storeDir = mkOption {
- type = types.path;
- default = null;
- example = "/data/beegfs-storage";
- description = ''
- Data directories for storage service.
- Must not be shared with other beegfs daemons.
- The underlying filesystem must be mounted with xattr turned on.
- This directory must exist and it must be initialized
- with beegfs-setup-storage, e.g.
- "beegfs-setup-storage -C -s <serviceID> -i <storageTargetID> -p <storeDir>"
- '';
- };
-
- extraConfig = mkOption {
- type = types.str;
- default = "";
- description = ''
- Addional lines for beegfs-storage.conf. See documentation
- for further details.
- '';
- };
- };
- };
- }));
- };
- };
-
- ###### implementation
-
- config =
- mkIf config.services.beegfsEnable {
-
- environment.systemPackages = utilWrappers;
-
- # Put the client.conf files in /etc since they are needed
- # by the commandline tools
- environment.etc = mapAttrs' ( name: cfg:
- (nameValuePair "beegfs/client-${name}.conf" (mkIf (cfg.client.enable)
- {
- enable = true;
- text = configClient name cfg;
- }))) cfg;
-
- # Kernel module, we need it only once per host.
- boot = mkIf (
- foldr (a: b: a || b) false
- (map (x: x.client.enable) (collect (x: x ? client) cfg)))
- {
- kernelModules = [ "beegfs" ];
- extraModulePackages = [ pkgs.linuxPackages.beegfs-module ];
- };
-
- # generate fstab entries
- fileSystems = mapAttrs' (name: cfg:
- (nameValuePair cfg.client.mountPoint (optionalAttrs cfg.client.mount (mkIf cfg.client.enable {
- device = "beegfs_nodev";
- fsType = "beegfs";
- mountPoint = cfg.client.mountPoint;
- options = [ "cfgFile=${configClientFilename name}" "_netdev" ];
- })))) cfg;
-
- # generate systemd services
- systemd.services = systemdHelperd //
- foldr (a: b: a // b) {}
- (map (x: systemdEntry x.service x.cfgFile) serviceList);
- };
-}
diff --git a/nixos/modules/services/network-filesystems/ceph.nix b/nixos/modules/services/network-filesystems/ceph.nix
index 656a2d21b86..543a7b25d5d 100644
--- a/nixos/modules/services/network-filesystems/ceph.nix
+++ b/nixos/modules/services/network-filesystems/ceph.nix
@@ -9,12 +9,14 @@ let
expandCamelCase = replaceStrings upperChars (map (s: " ${s}") lowerChars);
expandCamelCaseAttrs = mapAttrs' (name: value: nameValuePair (expandCamelCase name) value);
- makeServices = (daemonType: daemonIds: extraServiceConfig:
+ makeServices = (daemonType: daemonIds:
mkMerge (map (daemonId:
- { "ceph-${daemonType}-${daemonId}" = makeService daemonType daemonId cfg.global.clusterName pkgs.ceph extraServiceConfig; })
+ { "ceph-${daemonType}-${daemonId}" = makeService daemonType daemonId cfg.global.clusterName pkgs.ceph; })
daemonIds));
- makeService = (daemonType: daemonId: clusterName: ceph: extraServiceConfig: {
+ makeService = (daemonType: daemonId: clusterName: ceph:
+ let
+ stateDirectory = "ceph/${if daemonType == "rgw" then "radosgw" else daemonType}/${clusterName}-${daemonId}"; in {
enable = true;
description = "Ceph ${builtins.replaceStrings lowerChars upperChars daemonType} daemon ${daemonId}";
after = [ "network-online.target" "time-sync.target" ] ++ optional (daemonType == "osd") "ceph-mon.target";
@@ -22,6 +24,11 @@ let
partOf = [ "ceph-${daemonType}.target" ];
wantedBy = [ "ceph-${daemonType}.target" ];
+ path = [ pkgs.getopt ];
+
+ # Don't start services that are not yet initialized
+ unitConfig.ConditionPathExists = "/var/lib/${stateDirectory}/keyring";
+
serviceConfig = {
LimitNOFILE = 1048576;
LimitNPROC = 1048576;
@@ -34,22 +41,22 @@ let
Restart = "on-failure";
StartLimitBurst = "5";
StartLimitInterval = "30min";
+ StateDirectory = stateDirectory;
+ User = "ceph";
+ Group = if daemonType == "osd" then "disk" else "ceph";
ExecStart = ''${ceph.out}/bin/${if daemonType == "rgw" then "radosgw" else "ceph-${daemonType}"} \
- -f --cluster ${clusterName} --id ${daemonId} --setuser ceph \
- --setgroup ${if daemonType == "osd" then "disk" else "ceph"}'';
- } // extraServiceConfig
- // optionalAttrs (daemonType == "osd") { ExecStartPre = ''${ceph.lib}/libexec/ceph/ceph-osd-prestart.sh \
- --id ${daemonId} --cluster ${clusterName}''; };
- } // optionalAttrs (builtins.elem daemonType [ "mds" "mon" "rgw" "mgr" ]) {
- preStart = ''
- daemonPath="/var/lib/ceph/${if daemonType == "rgw" then "radosgw" else daemonType}/${clusterName}-${daemonId}"
- if [ ! -d $daemonPath ]; then
- mkdir -m 755 -p $daemonPath
- chown -R ceph:ceph $daemonPath
- fi
- '';
- } // optionalAttrs (daemonType == "osd") { path = [ pkgs.getopt ]; }
- );
+ -f --cluster ${clusterName} --id ${daemonId}'';
+ } // optionalAttrs (daemonType == "osd") {
+ ExecStartPre = ''${ceph.lib}/libexec/ceph/ceph-osd-prestart.sh --id ${daemonId} --cluster ${clusterName}'';
+ StartLimitBurst = "30";
+ RestartSec = "20s";
+ PrivateDevices = "no"; # osd needs disk access
+ } // optionalAttrs ( daemonType == "mon") {
+ RestartSec = "10";
+ } // optionalAttrs (lib.elem daemonType ["mgr" "mds"]) {
+ StartLimitBurst = "3";
+ };
+ });
makeTarget = (daemonType:
{
@@ -58,6 +65,7 @@ let
partOf = [ "ceph.target" ];
wantedBy = [ "ceph.target" ];
before = [ "ceph.target" ];
+ unitConfig.StopWhenUnneeded = true;
};
}
);
@@ -377,22 +385,22 @@ in
systemd.services = let
services = []
- ++ optional cfg.mon.enable (makeServices "mon" cfg.mon.daemons { RestartSec = "10"; })
- ++ optional cfg.mds.enable (makeServices "mds" cfg.mds.daemons { StartLimitBurst = "3"; })
- ++ optional cfg.osd.enable (makeServices "osd" cfg.osd.daemons { StartLimitBurst = "30";
- RestartSec = "20s";
- PrivateDevices = "no"; # osd needs disk access
- })
- ++ optional cfg.rgw.enable (makeServices "rgw" cfg.rgw.daemons { })
- ++ optional cfg.mgr.enable (makeServices "mgr" cfg.mgr.daemons { StartLimitBurst = "3"; });
+ ++ optional cfg.mon.enable (makeServices "mon" cfg.mon.daemons)
+ ++ optional cfg.mds.enable (makeServices "mds" cfg.mds.daemons)
+ ++ optional cfg.osd.enable (makeServices "osd" cfg.osd.daemons)
+ ++ optional cfg.rgw.enable (makeServices "rgw" cfg.rgw.daemons)
+ ++ optional cfg.mgr.enable (makeServices "mgr" cfg.mgr.daemons);
in
mkMerge services;
systemd.targets = let
targets = [
- { ceph = { description = "Ceph target allowing to start/stop all ceph service instances at once";
- wantedBy = [ "multi-user.target" ]; }; }
- ] ++ optional cfg.mon.enable (makeTarget "mon")
+ { ceph = {
+ description = "Ceph target allowing to start/stop all ceph service instances at once";
+ wantedBy = [ "multi-user.target" ];
+ unitConfig.StopWhenUnneeded = true;
+ }; } ]
+ ++ optional cfg.mon.enable (makeTarget "mon")
++ optional cfg.mds.enable (makeTarget "mds")
++ optional cfg.osd.enable (makeTarget "osd")
++ optional cfg.rgw.enable (makeTarget "rgw")
@@ -401,7 +409,11 @@ in
mkMerge targets;
systemd.tmpfiles.rules = [
+ "d /etc/ceph - ceph ceph - -"
"d /run/ceph 0770 ceph ceph -"
- ];
+ "d /var/lib/ceph - ceph ceph - -"]
+ ++ optionals cfg.mgr.enable [ "d /var/lib/ceph/mgr - ceph ceph - -"]
+ ++ optionals cfg.mon.enable [ "d /var/lib/ceph/mon - ceph ceph - -"]
+ ++ optionals cfg.osd.enable [ "d /var/lib/ceph/osd - ceph ceph - -"];
};
}
diff --git a/nixos/modules/services/network-filesystems/orangefs/client.nix b/nixos/modules/services/network-filesystems/orangefs/client.nix
new file mode 100644
index 00000000000..b69d9e713c3
--- /dev/null
+++ b/nixos/modules/services/network-filesystems/orangefs/client.nix
@@ -0,0 +1,97 @@
+{ config, lib, pkgs, ...} :
+
+with lib;
+
+let
+ cfg = config.services.orangefs.client;
+
+in {
+ ###### interface
+
+ options = {
+ services.orangefs.client = {
+ enable = mkEnableOption "OrangeFS client daemon";
+
+ extraOptions = mkOption {
+ type = with types; listOf str;
+ default = [];
+ description = "Extra command line options for pvfs2-client.";
+ };
+
+ fileSystems = mkOption {
+ description = ''
+ The orangefs file systems to be mounted.
+ This option is prefered over using fileSystems directly since
+ the pvfs client service needs to be running for it to be mounted.
+ '';
+
+ example = [{
+ mountPoint = "/orangefs";
+ target = "tcp://server:3334/orangefs";
+ }];
+
+ type = with types; listOf (submodule ({ ... } : {
+ options = {
+
+ mountPoint = mkOption {
+ type = types.str;
+ default = "/orangefs";
+ description = "Mount point.";
+ };
+
+ options = mkOption {
+ type = with types; listOf str;
+ default = [];
+ description = "Mount options";
+ };
+
+ target = mkOption {
+ type = types.str;
+ default = null;
+ example = "tcp://server:3334/orangefs";
+ description = "Target URL";
+ };
+ };
+ }));
+ };
+ };
+ };
+
+
+ ###### implementation
+
+ config = mkIf cfg.enable {
+ environment.systemPackages = [ pkgs.orangefs ];
+
+ boot.supportedFilesystems = [ "pvfs2" ];
+ boot.kernelModules = [ "orangefs" ];
+
+ systemd.services.orangefs-client = {
+ requires = [ "network-online.target" ];
+ after = [ "network-online.target" ];
+
+ serviceConfig = {
+ Type = "simple";
+
+ ExecStart = ''
+ ${pkgs.orangefs}/bin/pvfs2-client-core \
+ --logtype=syslog ${concatStringsSep " " cfg.extraOptions}
+ '';
+
+ TimeoutStopSec = "120";
+ };
+ };
+
+ systemd.mounts = map (fs: {
+ requires = [ "orangefs-client.service" ];
+ after = [ "orangefs-client.service" ];
+ bindsTo = [ "orangefs-client.service" ];
+ wantedBy = [ "remote-fs.target" ];
+ type = "pvfs2";
+ options = concatStringsSep "," fs.options;
+ what = fs.target;
+ where = fs.mountPoint;
+ }) cfg.fileSystems;
+ };
+}
+
diff --git a/nixos/modules/services/network-filesystems/orangefs/server.nix b/nixos/modules/services/network-filesystems/orangefs/server.nix
new file mode 100644
index 00000000000..74ebdc13402
--- /dev/null
+++ b/nixos/modules/services/network-filesystems/orangefs/server.nix
@@ -0,0 +1,225 @@
+{ config, lib, pkgs, ...} :
+
+with lib;
+
+let
+ cfg = config.services.orangefs.server;
+
+ aliases = mapAttrsToList (alias: url: alias) cfg.servers;
+
+ # Maximum handle number is 2^63
+ maxHandle = 9223372036854775806;
+
+ # One range of handles for each meta/data instance
+ handleStep = maxHandle / (length aliases) / 2;
+
+ fileSystems = mapAttrsToList (name: fs: ''
+
+ Name ${name}
+ ID ${toString fs.id}
+ RootHandle ${toString fs.rootHandle}
+
+ ${fs.extraConfig}
+
+
+ ${concatStringsSep "\n" (
+ imap0 (i: alias:
+ let
+ begin = i * handleStep + 3;
+ end = begin + handleStep - 1;
+ in "Range ${alias} ${toString begin}-${toString end}") aliases
+ )}
+
+
+
+ ${concatStringsSep "\n" (
+ imap0 (i: alias:
+ let
+ begin = i * handleStep + 3 + (length aliases) * handleStep;
+ end = begin + handleStep - 1;
+ in "Range ${alias} ${toString begin}-${toString end}") aliases
+ )}
+
+
+
+ TroveSyncMeta ${if fs.troveSyncMeta then "yes" else "no"}
+ TroveSyncData ${if fs.troveSyncData then "yes" else "no"}
+ ${fs.extraStorageHints}
+
+
+
+ '') cfg.fileSystems;
+
+ configFile = ''
+
+ LogType ${cfg.logType}
+ DataStorageSpace ${cfg.dataStorageSpace}
+ MetaDataStorageSpace ${cfg.metadataStorageSpace}
+
+ BMIModules ${concatStringsSep "," cfg.BMIModules}
+ ${cfg.extraDefaults}
+
+
+ ${cfg.extraConfig}
+
+
+ ${concatStringsSep "\n" (mapAttrsToList (alias: url: "Alias ${alias} ${url}") cfg.servers)}
+
+
+ ${concatStringsSep "\n" fileSystems}
+ '';
+
+in {
+ ###### interface
+
+ options = {
+ services.orangefs.server = {
+ enable = mkEnableOption "OrangeFS server";
+
+ logType = mkOption {
+ type = with types; enum [ "file" "syslog" ];
+ default = "syslog";
+ description = "Destination for log messages.";
+ };
+
+ dataStorageSpace = mkOption {
+ type = types.str;
+ default = null;
+ example = "/data/storage";
+ description = "Directory for data storage.";
+ };
+
+ metadataStorageSpace = mkOption {
+ type = types.str;
+ default = null;
+ example = "/data/meta";
+ description = "Directory for meta data storage.";
+ };
+
+ BMIModules = mkOption {
+ type = with types; listOf str;
+ default = [ "bmi_tcp" ];
+ example = [ "bmi_tcp" "bmi_ib"];
+ description = "List of BMI modules to load.";
+ };
+
+ extraDefaults = mkOption {
+ type = types.lines;
+ default = "";
+ description = "Extra config for <Defaults> section.";
+ };
+
+ extraConfig = mkOption {
+ type = types.lines;
+ default = "";
+ description = "Extra config for the global section.";
+ };
+
+ servers = mkOption {
+ type = with types; attrsOf types.str;
+ default = {};
+ example = ''
+ {
+ node1="tcp://node1:3334";
+ node2="tcp://node2:3334";
+ }
+ '';
+ description = "URLs for storage server including port. The attribute names define the server alias.";
+ };
+
+ fileSystems = mkOption {
+ description = ''
+ These options will create the <FileSystem> sections of config file.
+ '';
+ default = { orangefs = {}; };
+ defaultText = literalExample "{ orangefs = {}; }";
+ example = literalExample ''
+ {
+ fs1 = {
+ id = 101;
+ };
+
+ fs2 = {
+ id = 102;
+ };
+ }
+ '';
+ type = with types; attrsOf (submodule ({ ... } : {
+ options = {
+ id = mkOption {
+ type = types.int;
+ default = 1;
+ description = "File system ID (must be unique within configuration).";
+ };
+
+ rootHandle = mkOption {
+ type = types.int;
+ default = 3;
+ description = "File system root ID.";
+ };
+
+ extraConfig = mkOption {
+ type = types.lines;
+ default = "";
+ description = "Extra config for <FileSystem> section.";
+ };
+
+ troveSyncMeta = mkOption {
+ type = types.bool;
+ default = true;
+ description = "Sync meta data.";
+ };
+
+ troveSyncData = mkOption {
+ type = types.bool;
+ default = false;
+ description = "Sync data.";
+ };
+
+ extraStorageHints = mkOption {
+ type = types.lines;
+ default = "";
+ description = "Extra config for <StorageHints> section.";
+ };
+ };
+ }));
+ };
+ };
+ };
+
+ ###### implementation
+
+ config = mkIf cfg.enable {
+ environment.systemPackages = [ pkgs.orangefs ];
+
+ # orangefs daemon will run as user
+ users.users.orangefs.isSystemUser = true;
+ users.groups.orangefs = {};
+
+ # To format the file system the config file is needed.
+ environment.etc."orangefs/server.conf" = {
+ text = configFile;
+ user = "orangefs";
+ group = "orangefs";
+ };
+
+ systemd.services.orangefs-server = {
+ wantedBy = [ "multi-user.target" ];
+ requires = [ "network-online.target" ];
+ after = [ "network-online.target" ];
+
+ serviceConfig = {
+ # Run as "simple" in forground mode.
+ # This is more reliable
+ ExecStart = ''
+ ${pkgs.orangefs}/bin/pvfs2-server -d \
+ /etc/orangefs/server.conf
+ '';
+ TimeoutStopSec = "120";
+ User = "orangefs";
+ Group = "orangefs";
+ };
+ };
+ };
+
+}
diff --git a/nixos/modules/services/network-filesystems/samba.nix b/nixos/modules/services/network-filesystems/samba.nix
index 055508a3224..c66011afccb 100644
--- a/nixos/modules/services/network-filesystems/samba.nix
+++ b/nixos/modules/services/network-filesystems/samba.nix
@@ -12,11 +12,6 @@ let
samba = cfg.package;
- setupScript =
- ''
- mkdir -p /var/lock/samba /var/log/samba /var/cache/samba /var/lib/samba/private
- '';
-
shareConfig = name:
let share = getAttr name cfg.shares; in
"[${name}]\n " + (smbToString (
@@ -45,6 +40,7 @@ let
daemonService = appName: args:
{ description = "Samba Service Daemon ${appName}";
+ after = [ (mkIf (cfg.enableNmbd && "${appName}" == "smbd") "samba-nmbd.service") ];
requiredBy = [ "samba.target" ];
partOf = [ "samba.target" ];
@@ -61,6 +57,7 @@ let
Type = "notify";
NotifyAccess = "all"; #may not do anything...
};
+ unitConfig.RequiresMountsFor = "/var/lib/samba";
restartTriggers = [ configFile ];
};
@@ -227,8 +224,7 @@ in
systemd = {
targets.samba = {
description = "Samba Server";
- requires = [ "samba-setup.service" ];
- after = [ "samba-setup.service" "network.target" ];
+ after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
};
# Refer to https://github.com/samba-team/samba/tree/master/packaging/systemd
@@ -237,12 +233,13 @@ in
samba-smbd = daemonService "smbd" "";
samba-nmbd = mkIf cfg.enableNmbd (daemonService "nmbd" "");
samba-winbindd = mkIf cfg.enableWinbindd (daemonService "winbindd" "");
- samba-setup = {
- description = "Samba Setup Task";
- script = setupScript;
- unitConfig.RequiresMountsFor = "/var/lib/samba";
- };
};
+ tmpfiles.rules = [
+ "d /var/lock/samba - - - - -"
+ "d /var/log/samba - - - - -"
+ "d /var/cache/samba - - - - -"
+ "d /var/lib/samba/private - - - - -"
+ ];
};
security.pam.services.samba = {};
diff --git a/nixos/modules/services/networking/bind.nix b/nixos/modules/services/networking/bind.nix
index 06af4dbcca4..d09c6735e12 100644
--- a/nixos/modules/services/networking/bind.nix
+++ b/nixos/modules/services/networking/bind.nix
@@ -78,7 +78,11 @@ in
cacheNetworks = mkOption {
default = ["127.0.0.0/24"];
description = "
- What networks are allowed to use us as a resolver.
+ What networks are allowed to use us as a resolver. Note
+ that this is for recursive queries -- all networks are
+ allowed to query zones configured with the `zones` option.
+ It is recommended that you limit cacheNetworks to avoid your
+ server being used for DNS amplification attacks.
";
};
diff --git a/nixos/modules/services/networking/bitcoind.nix b/nixos/modules/services/networking/bitcoind.nix
index 1439d739da9..4e00a886547 100644
--- a/nixos/modules/services/networking/bitcoind.nix
+++ b/nixos/modules/services/networking/bitcoind.nix
@@ -177,9 +177,6 @@ in {
NoNewPrivileges = "true";
PrivateDevices = "true";
MemoryDenyWriteExecute = "true";
-
- # Permission for preStart
- PermissionsStartOnly = "true";
};
};
users.users.${cfg.user} = {
@@ -187,6 +184,7 @@ in {
group = cfg.group;
description = "Bitcoin daemon user";
home = cfg.dataDir;
+ isSystemUser = true;
};
users.groups.${cfg.group} = {
name = cfg.group;
diff --git a/nixos/modules/services/networking/connman.nix b/nixos/modules/services/networking/connman.nix
index 31127f79049..cac517f410e 100644
--- a/nixos/modules/services/networking/connman.nix
+++ b/nixos/modules/services/networking/connman.nix
@@ -4,7 +4,7 @@ with pkgs;
with lib;
let
- cfg = config.networking.connman;
+ cfg = config.services.connman;
configFile = pkgs.writeText "connman.conf" ''
[General]
NetworkInterfaceBlacklist=${concatStringsSep "," cfg.networkInterfaceBlacklist}
@@ -17,7 +17,7 @@ in {
options = {
- networking.connman = {
+ services.connman = {
enable = mkOption {
type = types.bool;
@@ -71,13 +71,13 @@ in {
assertions = [{
assertion = !config.networking.useDHCP;
- message = "You can not use services.networking.connman with services.networking.useDHCP";
+ message = "You can not use services.connman with networking.useDHCP";
}{
assertion = config.networking.wireless.enable;
- message = "You must use services.networking.connman with services.networking.wireless";
+ message = "You must use services.connman with networking.wireless";
}{
assertion = !config.networking.networkmanager.enable;
- message = "You can not use services.networking.connman with services.networking.networkmanager";
+ message = "You can not use services.connman with networking.networkmanager";
}];
environment.systemPackages = [ connman ];
diff --git a/nixos/modules/services/networking/dnscache.nix b/nixos/modules/services/networking/dnscache.nix
index 5051fc916d9..d123bca9321 100644
--- a/nixos/modules/services/networking/dnscache.nix
+++ b/nixos/modules/services/networking/dnscache.nix
@@ -84,7 +84,7 @@ in {
config = mkIf config.services.dnscache.enable {
environment.systemPackages = [ pkgs.djbdns ];
- users.users.dnscache = {};
+ users.users.dnscache.isSystemUser = true;
systemd.services.dnscache = {
description = "djbdns dnscache server";
diff --git a/nixos/modules/services/networking/dnscrypt-wrapper.nix b/nixos/modules/services/networking/dnscrypt-wrapper.nix
index bf13d5c6f5f..79f9e1a4308 100644
--- a/nixos/modules/services/networking/dnscrypt-wrapper.nix
+++ b/nixos/modules/services/networking/dnscrypt-wrapper.nix
@@ -142,6 +142,7 @@ in {
description = "dnscrypt-wrapper daemon user";
home = "${dataDir}";
createHome = true;
+ isSystemUser = true;
};
users.groups.dnscrypt-wrapper = { };
diff --git a/nixos/modules/services/networking/dnsdist.nix b/nixos/modules/services/networking/dnsdist.nix
index 12eee136e63..8249da69bc1 100644
--- a/nixos/modules/services/networking/dnsdist.nix
+++ b/nixos/modules/services/networking/dnsdist.nix
@@ -46,11 +46,10 @@ in {
RestartSec="1";
DynamicUser = true;
StartLimitInterval="0";
- PrivateTmp=true;
PrivateDevices=true;
- CapabilityBoundingSet="CAP_NET_BIND_SERVICE CAP_SETGID CAP_SETUID";
+ AmbientCapabilities="CAP_NET_BIND_SERVICE";
+ CapabilityBoundingSet="CAP_NET_BIND_SERVICE";
ExecStart = "${pkgs.dnsdist}/bin/dnsdist --supervised --disable-syslog --config ${configFile}";
- ProtectSystem="full";
ProtectHome=true;
RestrictAddressFamilies="AF_UNIX AF_INET AF_INET6";
LimitNOFILE="16384";
diff --git a/nixos/modules/services/networking/eternal-terminal.nix b/nixos/modules/services/networking/eternal-terminal.nix
index be7337ece7e..a2e5b30dc0f 100644
--- a/nixos/modules/services/networking/eternal-terminal.nix
+++ b/nixos/modules/services/networking/eternal-terminal.nix
@@ -23,6 +23,8 @@ in
type = types.int;
description = ''
The port the server should listen on. Will use the server's default (2022) if not specified.
+
+ Make sure to open this port in the firewall if necessary.
'';
};
@@ -86,4 +88,8 @@ in
};
};
};
+
+ meta = {
+ maintainers = with lib.maintainers; [ pingiun ];
+ };
}
diff --git a/nixos/modules/services/networking/firewall.nix b/nixos/modules/services/networking/firewall.nix
index 5b3aa19af3b..5919962837a 100644
--- a/nixos/modules/services/networking/firewall.nix
+++ b/nixos/modules/services/networking/firewall.nix
@@ -331,6 +331,17 @@ in
'';
};
+ package = mkOption {
+ type = types.package;
+ default = pkgs.iptables;
+ defaultText = "pkgs.iptables";
+ example = literalExample "pkgs.iptables-nftables-compat";
+ description =
+ ''
+ The iptables package to use for running the firewall service."
+ '';
+ };
+
logRefusedConnections = mkOption {
type = types.bool;
default = true;
@@ -536,7 +547,7 @@ in
networking.firewall.trustedInterfaces = [ "lo" ];
- environment.systemPackages = [ pkgs.iptables ] ++ cfg.extraPackages;
+ environment.systemPackages = [ cfg.package ] ++ cfg.extraPackages;
boot.kernelModules = (optional cfg.autoLoadConntrackHelpers "nf_conntrack")
++ map (x: "nf_conntrack_${x}") cfg.connectionTrackingModules;
@@ -555,7 +566,7 @@ in
before = [ "network-pre.target" ];
after = [ "systemd-modules-load.service" ];
- path = [ pkgs.iptables ] ++ cfg.extraPackages;
+ path = [ cfg.package ] ++ cfg.extraPackages;
# FIXME: this module may also try to load kernel modules, but
# containers don't have CAP_SYS_MODULE. So the host system had
diff --git a/nixos/modules/services/networking/go-shadowsocks2.nix b/nixos/modules/services/networking/go-shadowsocks2.nix
new file mode 100644
index 00000000000..afbd7ea27c6
--- /dev/null
+++ b/nixos/modules/services/networking/go-shadowsocks2.nix
@@ -0,0 +1,30 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+ cfg = config.services.go-shadowsocks2.server;
+in {
+ options.services.go-shadowsocks2.server = {
+ enable = mkEnableOption "go-shadowsocks2 server";
+
+ listenAddress = mkOption {
+ type = types.str;
+ description = "Server listen address or URL";
+ example = "ss://AEAD_CHACHA20_POLY1305:your-password@:8488";
+ };
+ };
+
+ config = mkIf cfg.enable {
+ systemd.services.go-shadowsocks2-server = {
+ description = "go-shadowsocks2 server";
+
+ after = [ "network.target" ];
+ wantedBy = [ "multi-user.target" ];
+
+ serviceConfig = {
+ ExecStart = "${pkgs.go-shadowsocks2}/bin/go-shadowsocks2 -s '${cfg.listenAddress}'";
+ DynamicUser = true;
+ };
+ };
+ };
+}
diff --git a/nixos/modules/services/networking/hans.nix b/nixos/modules/services/networking/hans.nix
index 20e57e4626e..4f60300f5ff 100644
--- a/nixos/modules/services/networking/hans.nix
+++ b/nixos/modules/services/networking/hans.nix
@@ -138,6 +138,7 @@ in
users.users = singleton {
name = hansUser;
description = "Hans daemon user";
+ isSystemUser = true;
};
};
diff --git a/nixos/modules/services/networking/haproxy.nix b/nixos/modules/services/networking/haproxy.nix
index 0438d0bf8d8..aff71e5e97d 100644
--- a/nixos/modules/services/networking/haproxy.nix
+++ b/nixos/modules/services/networking/haproxy.nix
@@ -1,7 +1,16 @@
{ config, lib, pkgs, ... }:
+
let
cfg = config.services.haproxy;
- haproxyCfg = pkgs.writeText "haproxy.conf" cfg.config;
+
+ haproxyCfg = pkgs.writeText "haproxy.conf" ''
+ global
+ # needed for hot-reload to work without dropping packets in multi-worker mode
+ stats socket /run/haproxy/haproxy.sock mode 600 expose-fd listeners level user
+
+ ${cfg.config}
+ '';
+
in
with lib;
{
@@ -25,9 +34,7 @@ with lib;
haproxy.conf .
'';
};
-
};
-
};
config = mkIf cfg.enable {
@@ -42,21 +49,16 @@ with lib;
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
- Type = "forking";
- PIDFile = "/run/haproxy.pid";
- ExecStartPre = "${pkgs.haproxy}/sbin/haproxy -c -q -f ${haproxyCfg}";
- ExecStart = "${pkgs.haproxy}/sbin/haproxy -D -f ${haproxyCfg} -p /run/haproxy.pid";
- ExecReload = "-${pkgs.bash}/bin/bash -c \"exec ${pkgs.haproxy}/sbin/haproxy -D -f ${haproxyCfg} -p /run/haproxy.pid -sf $MAINPID\"";
+ DynamicUser = true;
+ Type = "notify";
+ # when running the config test, don't be quiet so we can see what goes wrong
+ ExecStartPre = "${pkgs.haproxy}/sbin/haproxy -c -f ${haproxyCfg}";
+ ExecStart = "${pkgs.haproxy}/sbin/haproxy -Ws -f ${haproxyCfg}";
+ Restart = "on-failure";
+ RuntimeDirectory = "haproxy";
+ # needed in case we bind to port < 1024
+ AmbientCapabilities = "CAP_NET_BIND_SERVICE";
};
};
-
- environment.systemPackages = [ pkgs.haproxy ];
-
- users.users.haproxy = {
- group = "haproxy";
- uid = config.ids.uids.haproxy;
- };
-
- users.groups.haproxy.gid = config.ids.uids.haproxy;
};
}
diff --git a/nixos/modules/services/networking/jormungandr.nix b/nixos/modules/services/networking/jormungandr.nix
deleted file mode 100644
index 85e804d6cf2..00000000000
--- a/nixos/modules/services/networking/jormungandr.nix
+++ /dev/null
@@ -1,100 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-let
- cfg = config.services.jormungandr;
-
- inherit (lib) mkEnableOption mkIf mkOption;
- inherit (lib) optionalString types;
-
- dataDir = "/var/lib/jormungandr";
-
- # Default settings so far, as the service matures we will
- # move these out as separate settings
- configSettings = {
- storage = dataDir;
- p2p = {
- public_address = "/ip4/127.0.0.1/tcp/8299";
- messages = "high";
- blocks = "high";
- };
- rest = {
- listen = "127.0.0.1:8607";
- };
- };
-
- configFile = if cfg.configFile == null then
- pkgs.writeText "jormungandr.yaml" (builtins.toJSON configSettings)
- else cfg.configFile;
-
-in {
-
- options = {
-
- services.jormungandr = {
- enable = mkEnableOption "jormungandr service";
-
- configFile = mkOption {
- type = types.nullOr types.path;
- default = null;
- example = "/var/lib/jormungandr/node.yaml";
- description = ''
- The path of the jormungandr blockchain configuration file in YAML format.
- If no file is specified, a file is generated using the other options.
- '';
- };
-
- secretFile = mkOption {
- type = types.nullOr types.path;
- default = null;
- example = "/etc/secret/jormungandr.yaml";
- description = ''
- The path of the jormungandr blockchain secret node configuration file in
- YAML format. Do not store this in nix store!
- '';
- };
-
- genesisBlockHash = mkOption {
- type = types.nullOr types.str;
- default = null;
- example = "d70495af81ae8600aca3e642b2427327cb6001ec4d7a0037e96a00dabed163f9";
- description = ''
- Set the genesis block hash (the hash of the block0) so we can retrieve
- the genesis block (and the blockchain configuration) from the existing
- storage or from the network.
- '';
- };
-
- genesisBlockFile = mkOption {
- type = types.nullOr types.path;
- default = null;
- example = "/var/lib/jormungandr/block-0.bin";
- description = ''
- The path of the genesis block file if we are hosting it locally.
- '';
- };
-
- };
- };
-
- config = mkIf cfg.enable {
-
- systemd.services.jormungandr = {
- description = "jormungandr server";
- wantedBy = [ "multi-user.target" ];
- after = [ "network-online.target" ];
- environment = {
- RUST_BACKTRACE = "full";
- };
- serviceConfig = {
- DynamicUser = true;
- StateDirectory = baseNameOf dataDir;
- ExecStart = ''
- ${pkgs.jormungandr}/bin/jormungandr --config ${configFile} \
- ${optionalString (cfg.secretFile != null) " --secret ${cfg.secretFile}"} \
- ${optionalString (cfg.genesisBlockHash != null) " --genesis-block-hash ${cfg.genesisBlockHash}"} \
- ${optionalString (cfg.genesisBlockFile != null) " --genesis-block ${cfg.genesisBlockFile}"}
- '';
- };
- };
- };
-}
diff --git a/nixos/modules/services/networking/matterbridge.nix b/nixos/modules/services/networking/matterbridge.nix
index 1fd63348c16..682eaa6eb29 100644
--- a/nixos/modules/services/networking/matterbridge.nix
+++ b/nixos/modules/services/networking/matterbridge.nix
@@ -95,6 +95,7 @@ in
users.users = optional (cfg.user == "matterbridge")
{ name = "matterbridge";
group = "matterbridge";
+ isSystemUser = true;
};
users.groups = optional (cfg.group == "matterbridge")
diff --git a/nixos/modules/services/networking/minidlna.nix b/nixos/modules/services/networking/minidlna.nix
index 0947471adbc..3ddea3c9757 100644
--- a/nixos/modules/services/networking/minidlna.nix
+++ b/nixos/modules/services/networking/minidlna.nix
@@ -36,6 +36,37 @@ in
'';
};
+ services.minidlna.friendlyName = mkOption {
+ type = types.str;
+ default = "${config.networking.hostName} MiniDLNA";
+ defaultText = "$HOSTNAME MiniDLNA";
+ example = "rpi3";
+ description =
+ ''
+ Name that the DLNA server presents to clients.
+ '';
+ };
+
+ services.minidlna.rootContainer = mkOption {
+ type = types.str;
+ default = ".";
+ example = "B";
+ description =
+ ''
+ Use a different container as the root of the directory tree presented
+ to clients. The possible values are:
+ - "." - standard container
+ - "B" - "Browse Directory"
+ - "M" - "Music"
+ - "P" - "Pictures"
+ - "V" - "Video"
+ - Or, you can specify the ObjectID of your desired root container
+ (eg. 1$F for Music/Playlists)
+ If you specify "B" and the client device is audio-only then
+ "Music/Folders" will be used as root.
+ '';
+ };
+
services.minidlna.loglevel = mkOption {
type = types.str;
default = "warn";
@@ -66,7 +97,37 @@ in
services.minidlna.config = mkOption {
type = types.lines;
- description = "The contents of MiniDLNA's configuration file.";
+ description =
+ ''
+ The contents of MiniDLNA's configuration file.
+ When the service is activated, a basic template is generated
+ from the current options opened here.
+ '';
+ };
+
+ services.minidlna.extraConfig = mkOption {
+ type = types.lines;
+ default = "";
+ example = ''
+ # Not exhaustive example
+ # Support for streaming .jpg and .mp3 files to a TiVo supporting HMO.
+ enable_tivo=no
+ # SSDP notify interval, in seconds.
+ notify_interval=10
+ # maximum number of simultaneous connections
+ # note: many clients open several simultaneous connections while
+ # streaming
+ max_connections=50
+ # set this to yes to allow symlinks that point outside user-defined
+ # media_dirs.
+ wide_links=yes
+ '';
+ description =
+ ''
+ Extra minidlna options not yet opened for configuration here
+ (strict_dlna, model_number, model_name, etc...). This is appended
+ to the current service already provided.
+ '';
};
};
@@ -75,13 +136,15 @@ in
services.minidlna.config =
''
port=${toString port}
- friendly_name=${config.networking.hostName} MiniDLNA
+ friendly_name=${cfg.friendlyName}
db_dir=/var/cache/minidlna
log_level=${cfg.loglevel}
inotify=yes
+ root_container=${cfg.rootContainer}
${concatMapStrings (dir: ''
media_dir=${dir}
'') cfg.mediaDirs}
+ ${cfg.extraConfig}
'';
users.users.minidlna = {
diff --git a/nixos/modules/services/networking/morty.nix b/nixos/modules/services/networking/morty.nix
index 1b3084fe9ab..e3a6444c116 100644
--- a/nixos/modules/services/networking/morty.nix
+++ b/nixos/modules/services/networking/morty.nix
@@ -74,6 +74,7 @@ in
{ description = "Morty user";
createHome = true;
home = "/var/lib/morty";
+ isSystemUser = true;
};
systemd.services.morty =
diff --git a/nixos/modules/services/networking/mxisd.nix b/nixos/modules/services/networking/mxisd.nix
index 02e89f441b3..a3d61922e57 100644
--- a/nixos/modules/services/networking/mxisd.nix
+++ b/nixos/modules/services/networking/mxisd.nix
@@ -3,6 +3,15 @@
with lib;
let
+
+ isMa1sd =
+ package:
+ lib.hasPrefix "ma1sd" package.name;
+
+ isMxisd =
+ package:
+ lib.hasPrefix "mxisd" package.name;
+
cfg = config.services.mxisd;
server = optionalAttrs (cfg.server.name != null) { inherit (cfg.server) name; }
@@ -12,37 +21,41 @@ let
matrix.domain = cfg.matrix.domain;
key.path = "${cfg.dataDir}/signing.key";
storage = {
- provider.sqlite.database = "${cfg.dataDir}/mxisd.db";
+ provider.sqlite.database = if isMa1sd cfg.package
+ then "${cfg.dataDir}/ma1sd.db"
+ else "${cfg.dataDir}/mxisd.db";
};
} // optionalAttrs (server != {}) { inherit server; };
# merges baseConfig and extraConfig into a single file
fullConfig = recursiveUpdate baseConfig cfg.extraConfig;
- configFile = pkgs.writeText "mxisd-config.yaml" (builtins.toJSON fullConfig);
+ configFile = if isMa1sd cfg.package
+ then pkgs.writeText "ma1sd-config.yaml" (builtins.toJSON fullConfig)
+ else pkgs.writeText "mxisd-config.yaml" (builtins.toJSON fullConfig);
in {
options = {
services.mxisd = {
- enable = mkEnableOption "mxisd matrix federated identity server";
+ enable = mkEnableOption "matrix federated identity server";
package = mkOption {
type = types.package;
default = pkgs.mxisd;
defaultText = "pkgs.mxisd";
- description = "The mxisd package to use";
+ description = "The mxisd/ma1sd package to use";
};
dataDir = mkOption {
type = types.str;
default = "/var/lib/mxisd";
- description = "Where data mxisd uses resides";
+ description = "Where data mxisd/ma1sd uses resides";
};
extraConfig = mkOption {
type = types.attrs;
default = {};
- description = "Extra options merged into the mxisd configuration";
+ description = "Extra options merged into the mxisd/ma1sd configuration";
};
matrix = {
@@ -62,7 +75,7 @@ in {
type = types.nullOr types.str;
default = null;
description = ''
- Public hostname of mxisd, if different from the Matrix domain.
+ Public hostname of mxisd/ma1sd, if different from the Matrix domain.
'';
};
@@ -103,11 +116,13 @@ in {
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
- serviceConfig = {
+ serviceConfig = let
+ executable = if isMa1sd cfg.package then "ma1sd" else "mxisd";
+ in {
Type = "simple";
User = "mxisd";
Group = "mxisd";
- ExecStart = "${cfg.package}/bin/mxisd -c ${configFile}";
+ ExecStart = "${cfg.package}/bin/${executable} -c ${configFile}";
WorkingDirectory = cfg.dataDir;
Restart = "on-failure";
};
diff --git a/nixos/modules/services/networking/nat.nix b/nixos/modules/services/networking/nat.nix
index 89d8590093d..5681bda51cb 100644
--- a/nixos/modules/services/networking/nat.nix
+++ b/nixos/modules/services/networking/nat.nix
@@ -29,7 +29,7 @@ let
iptables -w -t nat -N nixos-nat-post
# We can't match on incoming interface in POSTROUTING, so
- # mark packets coming from the external interfaces.
+ # mark packets coming from the internal interfaces.
${concatMapStrings (iface: ''
iptables -w -t nat -A nixos-nat-pre \
-i '${iface}' -j MARK --set-mark 1
diff --git a/nixos/modules/services/networking/networkmanager.nix b/nixos/modules/services/networking/networkmanager.nix
index 2061c02fffb..90d1032c41b 100644
--- a/nixos/modules/services/networking/networkmanager.nix
+++ b/nixos/modules/services/networking/networkmanager.nix
@@ -5,11 +5,21 @@ with lib;
let
cfg = config.networking.networkmanager;
- dynamicHostsEnabled =
- cfg.dynamicHosts.enable && cfg.dynamicHosts.hostsDirs != {};
+ basePackages = with pkgs; [
+ crda
+ modemmanager
+ networkmanager
+ networkmanager-fortisslvpn
+ networkmanager-iodine
+ networkmanager-l2tp
+ networkmanager-openconnect
+ networkmanager-openvpn
+ networkmanager-vpnc
+ ] ++ optional (!delegateWireless && !enableIwd) wpa_supplicant;
- # /var/lib/misc is for dnsmasq.leases.
- stateDirs = "/var/lib/NetworkManager /var/lib/dhclient /var/lib/misc";
+ delegateWireless = config.networking.wireless.enable == true && cfg.unmanaged != [];
+
+ enableIwd = cfg.wifi.backend == "iwd";
configFile = pkgs.writeText "NetworkManager.conf" ''
[main]
@@ -25,6 +35,7 @@ let
[logging]
level=${cfg.logLevel}
+ audit=${lib.boolToString config.security.audit.enable}
[connection]
ipv6.ip6-privacy=2
@@ -35,6 +46,7 @@ let
[device]
wifi.scan-rand-mac-address=${if cfg.wifi.scanRandMacAddress then "yes" else "no"}
+ wifi.backend=${cfg.wifi.backend}
${cfg.extraConfig}
'';
@@ -173,29 +185,18 @@ in {
'';
};
- # Ugly hack for using the correct gnome3 packageSet
- basePackages = mkOption {
- type = types.attrsOf types.package;
- default = { inherit (pkgs)
- networkmanager modemmanager wpa_supplicant crda
- networkmanager-openvpn networkmanager-vpnc
- networkmanager-openconnect networkmanager-fortisslvpn
- networkmanager-l2tp networkmanager-iodine; };
- internal = true;
- };
-
packages = mkOption {
- type = types.listOf types.path;
+ type = types.listOf types.package;
default = [ ];
description = ''
Extra packages that provide NetworkManager plugins.
'';
- apply = list: (attrValues cfg.basePackages) ++ list;
+ apply = list: basePackages ++ list;
};
dhcp = mkOption {
type = types.enum [ "dhclient" "dhcpcd" "internal" ];
- default = "dhclient";
+ default = "internal";
description = ''
Which program (or internal library) should be used for DHCP.
'';
@@ -232,6 +233,15 @@ in {
wifi = {
macAddress = macAddressOpt;
+ backend = mkOption {
+ type = types.enum [ "wpa_supplicant" "iwd" ];
+ default = "wpa_supplicant";
+ description = ''
+ Specify the Wi-Fi backend used for the device.
+ Currently supported are wpa_supplicant or iwd (experimental).
+ '';
+ };
+
powersave = mkOption {
type = types.nullOr types.bool;
default = null;
@@ -322,73 +332,35 @@ in {
so you don't need to to that yourself.
'';
};
-
- dynamicHosts = {
- enable = mkOption {
- type = types.bool;
- default = false;
- description = ''
- Enabling this option requires the
- networking.networkmanager.dns option to be
- set to dnsmasq . If enabled, the directories
- defined by the
- networking.networkmanager.dynamicHosts.hostsDirs
- option will be set up when the service starts. The dnsmasq instance
- managed by NetworkManager will then watch those directories for
- hosts files (see the --hostsdir option of
- dnsmasq). This way a non-privileged user can add or override DNS
- entries on the local system (depending on what hosts directories
- that are configured)..
- '';
- };
- hostsDirs = mkOption {
- type = with types; attrsOf (submodule {
- options = {
- user = mkOption {
- type = types.str;
- default = "root";
- description = ''
- The user that will own the hosts directory.
- '';
- };
- group = mkOption {
- type = types.str;
- default = "root";
- description = ''
- The group that will own the hosts directory.
- '';
- };
- };
- });
- default = {};
- description = ''
- Defines a set of directories (relative to
- /run/NetworkManager/hostdirs ) that dnsmasq will
- watch for hosts files.
- '';
- };
- };
};
};
+ imports = [
+ (mkRemovedOptionModule ["networking" "networkmanager" "dynamicHosts"] ''
+ This option was removed because allowing (multiple) regular users to
+ override host entries affecting the whole system opens up a huge attack
+ vector. There seem to be very rare cases where this might be useful.
+ Consider setting system-wide host entries using networking.hosts, provide
+ them via the DNS server in your network, or use environment.etc
+ to add a file into /etc/NetworkManager/dnsmasq.d reconfiguring hostsdir.
+ '')
+ ];
+
###### implementation
config = mkIf cfg.enable {
assertions = [
- { assertion = config.networking.wireless.enable == false;
- message = "You can not use networking.networkmanager with networking.wireless";
- }
- { assertion = !dynamicHostsEnabled || (dynamicHostsEnabled && cfg.dns == "dnsmasq");
+ { assertion = config.networking.wireless.enable == true -> cfg.unmanaged != [];
message = ''
- To use networking.networkmanager.dynamicHosts you also need to set
- networking.networkmanager.dns = "dnsmasq"
+ You can not use networking.networkmanager with networking.wireless.
+ Except if you mark some interfaces as unmanaged by NetworkManager.
'';
}
];
- environment.etc = with cfg.basePackages; [
+ environment.etc = with pkgs; [
{ source = configFile;
target = "NetworkManager/NetworkManager.conf";
}
@@ -419,12 +391,6 @@ in {
target = "NetworkManager/dispatcher.d/${dispatcherTypesSubdirMap.${s.type}}03userscript${lib.fixedWidthNumber 4 i}";
mode = "0544";
}) cfg.dispatcherScripts
- ++ optional dynamicHostsEnabled
- { target = "NetworkManager/dnsmasq.d/dyndns.conf";
- text = concatMapStrings (n: ''
- hostsdir=/run/NetworkManager/hostsdirs/${n}
- '') (attrNames cfg.dynamicHosts.hostsDirs);
- }
++ optional cfg.enableStrongSwan
{ source = "${pkgs.networkmanager_strongswan}/lib/NetworkManager/VPN/nm-strongswan-service.name";
target = "NetworkManager/VPN/nm-strongswan-service.name";
@@ -453,35 +419,32 @@ in {
systemd.packages = cfg.packages;
+ systemd.tmpfiles.rules = [
+ "d /etc/NetworkManager/system-connections 0700 root root -"
+ "d /etc/ipsec.d 0700 root root -"
+ "d /var/lib/NetworkManager-fortisslvpn 0700 root root -"
+
+ "d /var/lib/dhclient 0755 root root -"
+ "d /var/lib/misc 0755 root root -" # for dnsmasq.leases
+ ];
+
systemd.services.NetworkManager = {
wantedBy = [ "network.target" ];
restartTriggers = [ configFile ];
- preStart = ''
- mkdir -m 700 -p /etc/NetworkManager/system-connections
- mkdir -m 700 -p /etc/ipsec.d
- mkdir -m 755 -p ${stateDirs}
- '';
+ aliases = [ "dbus-org.freedesktop.NetworkManager.service" ];
+
+ serviceConfig = {
+ StateDirectory = "NetworkManager";
+ StateDirectoryMode = 755; # not sure if this really needs to be 755
+ };
};
systemd.services.NetworkManager-wait-online = {
wantedBy = [ "network-online.target" ];
};
- systemd.services.nm-setup-hostsdirs = mkIf dynamicHostsEnabled {
- wantedBy = [ "NetworkManager.service" ];
- before = [ "NetworkManager.service" ];
- partOf = [ "NetworkManager.service" ];
- script = concatStrings (mapAttrsToList (n: d: ''
- mkdir -p "/run/NetworkManager/hostsdirs/${n}"
- chown "${d.user}:${d.group}" "/run/NetworkManager/hostsdirs/${n}"
- chmod 0775 "/run/NetworkManager/hostsdirs/${n}"
- '') cfg.dynamicHosts.hostsDirs);
- serviceConfig = {
- Type = "oneshot";
- RemainAfterExit = true;
- };
- };
+ systemd.services.ModemManager.aliases = [ "dbus-org.freedesktop.ModemManager1.service" ];
systemd.services.NetworkManager-dispatcher = {
wantedBy = [ "network.target" ];
@@ -489,22 +452,29 @@ in {
# useful binaries for user-specified hooks
path = [ pkgs.iproute pkgs.utillinux pkgs.coreutils ];
+ aliases = [ "dbus-org.freedesktop.nm-dispatcher.service" ];
};
- # Turn off NixOS' network management
- networking = {
- useDHCP = false;
- # use mkDefault to trigger the assertion about the conflict above
- wireless.enable = mkDefault false;
- };
+ # Turn off NixOS' network management when networking is managed entirely by NetworkManager
+ networking = mkMerge [
+ (mkIf (!delegateWireless) {
+ useDHCP = false;
+ })
+
+ (mkIf cfg.enableStrongSwan {
+ networkmanager.packages = [ pkgs.networkmanager_strongswan ];
+ })
+
+ (mkIf enableIwd {
+ wireless.iwd.enable = true;
+ })
+ ];
security.polkit.extraConfig = polkitConf;
- networking.networkmanager.packages =
- mkIf cfg.enableStrongSwan [ pkgs.networkmanager_strongswan ];
-
- services.dbus.packages =
- optional cfg.enableStrongSwan pkgs.strongswanNM ++ cfg.packages;
+ services.dbus.packages = cfg.packages
+ ++ optional cfg.enableStrongSwan pkgs.strongswanNM
+ ++ optional (cfg.dns == "dnsmasq") pkgs.dnsmasq;
services.udev.packages = cfg.packages;
};
diff --git a/nixos/modules/services/networking/nghttpx/default.nix b/nixos/modules/services/networking/nghttpx/default.nix
index d6e1906e388..881a2670f5d 100644
--- a/nixos/modules/services/networking/nghttpx/default.nix
+++ b/nixos/modules/services/networking/nghttpx/default.nix
@@ -96,6 +96,7 @@ in
users.groups.nghttpx = { };
users.users.nghttpx = {
group = config.users.groups.nghttpx.name;
+ isSystemUser = true;
};
diff --git a/nixos/modules/services/networking/chrony.nix b/nixos/modules/services/networking/ntp/chrony.nix
similarity index 91%
rename from nixos/modules/services/networking/chrony.nix
rename to nixos/modules/services/networking/ntp/chrony.nix
index 77f70257700..c74476c7a15 100644
--- a/nixos/modules/services/networking/chrony.nix
+++ b/nixos/modules/services/networking/ntp/chrony.nix
@@ -9,11 +9,11 @@ let
keyFile = "${stateDir}/chrony.keys";
configFile = pkgs.writeText "chrony.conf" ''
- ${concatMapStringsSep "\n" (server: "server " + server) cfg.servers}
+ ${concatMapStringsSep "\n" (server: "server " + server + " iburst") cfg.servers}
${optionalString
(cfg.initstepslew.enabled && (cfg.servers != []))
- "initstepslew ${toString cfg.initstepslew.threshold} ${concatStringsSep " " cfg.initstepslew.servers}"
+ "initstepslew ${toString cfg.initstepslew.threshold} ${concatStringsSep " " cfg.servers}"
}
driftfile ${stateDir}/chrony.drift
@@ -24,7 +24,7 @@ let
${cfg.extraConfig}
'';
- chronyFlags = "-m -u chrony -f ${configFile} ${toString cfg.extraFlags}";
+ chronyFlags = "-n -m -u chrony -f ${configFile} ${toString cfg.extraFlags}";
in
{
options = {
@@ -48,7 +48,6 @@ in
default = {
enabled = true;
threshold = 1000; # by default, same threshold as 'ntpd -g' (1000s)
- servers = cfg.servers;
};
description = ''
Allow chronyd to make a rapid measurement of the system clock error at
@@ -76,6 +75,8 @@ in
};
config = mkIf cfg.enable {
+ meta.maintainers = with lib.maintainers; [ thoughtpolice ];
+
environment.systemPackages = [ pkgs.chrony ];
users.groups = singleton
@@ -115,7 +116,7 @@ in
unitConfig.ConditionCapability = "CAP_SYS_TIME";
serviceConfig =
- { Type = "forking";
+ { Type = "simple";
ExecStart = "${pkgs.chrony}/bin/chronyd ${chronyFlags}";
ProtectHome = "yes";
diff --git a/nixos/modules/services/networking/ntpd.nix b/nixos/modules/services/networking/ntp/ntpd.nix
similarity index 98%
rename from nixos/modules/services/networking/ntpd.nix
rename to nixos/modules/services/networking/ntp/ntpd.nix
index 588d1c6edb0..1197c84f045 100644
--- a/nixos/modules/services/networking/ntpd.nix
+++ b/nixos/modules/services/networking/ntp/ntpd.nix
@@ -96,6 +96,7 @@ in
###### implementation
config = mkIf config.services.ntp.enable {
+ meta.maintainers = with lib.maintainers; [ thoughtpolice ];
# Make tools such as ntpq available in the system path.
environment.systemPackages = [ pkgs.ntp ];
diff --git a/nixos/modules/services/networking/openntpd.nix b/nixos/modules/services/networking/ntp/openntpd.nix
similarity index 96%
rename from nixos/modules/services/networking/openntpd.nix
rename to nixos/modules/services/networking/ntp/openntpd.nix
index f3920aa8064..471d15b1687 100644
--- a/nixos/modules/services/networking/openntpd.nix
+++ b/nixos/modules/services/networking/ntp/openntpd.nix
@@ -52,6 +52,7 @@ in
###### implementation
config = mkIf cfg.enable {
+ meta.maintainers = with lib.maintainers; [ thoughtpolice ];
services.timesyncd.enable = mkForce false;
# Add ntpctl to the environment for status checking
diff --git a/nixos/modules/services/networking/owamp.nix b/nixos/modules/services/networking/owamp.nix
index 821a0258f4b..dbb2e3b4c40 100644
--- a/nixos/modules/services/networking/owamp.nix
+++ b/nixos/modules/services/networking/owamp.nix
@@ -21,6 +21,7 @@ in
name = "owamp";
group = "owamp";
description = "Owamp daemon";
+ isSystemUser = true;
};
users.groups = singleton {
diff --git a/nixos/modules/services/networking/pppd.nix b/nixos/modules/services/networking/pppd.nix
new file mode 100644
index 00000000000..e96c27bd84b
--- /dev/null
+++ b/nixos/modules/services/networking/pppd.nix
@@ -0,0 +1,134 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+ cfg = config.services.pppd;
+in
+{
+ meta = {
+ maintainers = with maintainers; [ danderson ];
+ };
+
+ options = {
+ services.pppd = {
+ enable = mkEnableOption "pppd";
+
+ package = mkOption {
+ default = pkgs.ppp;
+ defaultText = "pkgs.ppp";
+ type = types.package;
+ description = "pppd package to use.";
+ };
+
+ peers = mkOption {
+ default = {};
+ description = "pppd peers.";
+ type = types.attrsOf (types.submodule (
+ { name, ... }:
+ {
+ options = {
+ name = mkOption {
+ type = types.str;
+ default = name;
+ example = "dialup";
+ description = "Name of the PPP peer.";
+ };
+
+ enable = mkOption {
+ type = types.bool;
+ default = true;
+ example = false;
+ description = "Whether to enable this PPP peer.";
+ };
+
+ autostart = mkOption {
+ type = types.bool;
+ default = true;
+ example = false;
+ description = "Whether the PPP session is automatically started at boot time.";
+ };
+
+ config = mkOption {
+ type = types.lines;
+ default = "";
+ description = "pppd configuration for this peer, see the pppd(8) man page.";
+ };
+ };
+ }));
+ };
+ };
+ };
+
+ config = let
+ enabledConfigs = filter (f: f.enable) (attrValues cfg.peers);
+
+ mkEtc = peerCfg: {
+ "ppp/peers/${peerCfg.name}".text = peerCfg.config;
+ };
+
+ mkSystemd = peerCfg: {
+ "pppd-${peerCfg.name}" = {
+ restartTriggers = [ config.environment.etc."ppp/peers/${peerCfg.name}".source ];
+ before = [ "network.target" ];
+ wants = [ "network.target" ];
+ after = [ "network-pre.target" ];
+ environment = {
+ # pppd likes to write directly into /var/run. This is rude
+ # on a modern system, so we use libredirect to transparently
+ # move those files into /run/pppd.
+ LD_PRELOAD = "${pkgs.libredirect}/lib/libredirect.so";
+ NIX_REDIRECTS = "/var/run=/run/pppd";
+ };
+ serviceConfig = {
+ ExecStart = "${getBin cfg.package}/sbin/pppd call ${peerCfg.name} nodetach nolog";
+ Restart = "always";
+ RestartSec = 5;
+
+ AmbientCapabilities = "CAP_SYS_TTY_CONFIG CAP_NET_ADMIN CAP_NET_RAW CAP_SYS_ADMIN";
+ CapabilityBoundingSet = "CAP_SYS_TTY_CONFIG CAP_NET_ADMIN CAP_NET_RAW CAP_SYS_ADMIN";
+ KeyringMode = "private";
+ LockPersonality = true;
+ MemoryDenyWriteExecute = true;
+ NoNewPrivileges = true;
+ PrivateMounts = true;
+ PrivateTmp = true;
+ ProtectControlGroups = true;
+ ProtectHome = true;
+ ProtectHostname = true;
+ ProtectKernelModules = true;
+ # pppd can be configured to tweak kernel settings.
+ ProtectKernelTunables = false;
+ ProtectSystem = "strict";
+ RemoveIPC = true;
+ RestrictAddressFamilies = "AF_PACKET AF_UNIX AF_PPPOX AF_ATMPVC AF_ATMSVC AF_INET AF_INET6 AF_IPX";
+ RestrictNamespaces = true;
+ RestrictRealtime = true;
+ RestrictSUIDSGID = true;
+ SecureBits = "no-setuid-fixup-locked noroot-locked";
+ SystemCallFilter = "@system-service";
+ SystemCallArchitectures = "native";
+
+ # All pppd instances on a system must share a runtime
+ # directory in order for PPP multilink to work correctly. So
+ # we give all instances the same /run/pppd directory to store
+ # things in.
+ #
+ # For the same reason, we can't set PrivateUsers=true, because
+ # all instances need to run as the same user to access the
+ # multilink database.
+ RuntimeDirectory = "pppd";
+ RuntimeDirectoryPreserve = true;
+ };
+ wantedBy = mkIf peerCfg.autostart [ "multi-user.target" ];
+ };
+ };
+
+ etcFiles = map mkEtc enabledConfigs;
+ systemdConfigs = map mkSystemd enabledConfigs;
+
+ in mkIf cfg.enable {
+ environment.etc = mkMerge etcFiles;
+ systemd.services = mkMerge systemdConfigs;
+ };
+}
diff --git a/nixos/modules/services/networking/prosody.nix b/nixos/modules/services/networking/prosody.nix
index 1ae063aa6bb..7a503e71166 100644
--- a/nixos/modules/services/networking/prosody.nix
+++ b/nixos/modules/services/networking/prosody.nix
@@ -465,7 +465,7 @@ in
modules_enabled = {
- ${ lib.concatStringsSep "\n\ \ " (lib.mapAttrsToList
+ ${ lib.concatStringsSep "\n " (lib.mapAttrsToList
(name: val: optionalString val "${toLua name};")
cfg.modules) }
${ lib.concatStringsSep "\n" (map (x: "${toLua x};") cfg.package.communityModules)}
diff --git a/nixos/modules/services/networking/smokeping.nix b/nixos/modules/services/networking/smokeping.nix
index d4d0594a9cd..b48b0b3a9d6 100644
--- a/nixos/modules/services/networking/smokeping.nix
+++ b/nixos/modules/services/networking/smokeping.nix
@@ -299,7 +299,8 @@ in
mkdir -m 0755 -p ${smokepingHome}/cache ${smokepingHome}/data
rm -f ${smokepingHome}/cropper
ln -s ${cfg.package}/htdocs/cropper ${smokepingHome}/cropper
- cp ${cgiHome} ${smokepingHome}/smokeping.fcgi
+ rm -f ${smokepingHome}/smokeping.fcgi
+ ln -s ${cgiHome} ${smokepingHome}/smokeping.fcgi
${cfg.package}/bin/smokeping --check --config=${configPath}
${cfg.package}/bin/smokeping --static --config=${configPath}
'';
@@ -314,5 +315,7 @@ in
serviceConfig.Restart = "always";
};
};
+
+ meta.maintainers = with lib.maintainers; [ erictapen ];
}
diff --git a/nixos/modules/services/networking/stunnel.nix b/nixos/modules/services/networking/stunnel.nix
index cbc899f2b4d..ab51bba2f6a 100644
--- a/nixos/modules/services/networking/stunnel.nix
+++ b/nixos/modules/services/networking/stunnel.nix
@@ -57,7 +57,13 @@ let
};
CAPath = mkOption {
- type = types.path;
+ type = types.nullOr types.path;
+ default = null;
+ description = "Path to a directory containing certificates to validate against.";
+ };
+
+ CAFile = mkOption {
+ type = types.nullOr types.path;
default = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt";
description = "Path to a file containing certificates to validate against.";
};
@@ -196,6 +202,7 @@ in
verifyChain = ${yesNo v.verifyChain}
verifyPeer = ${yesNo v.verifyPeer}
${optionalString (v.CAPath != null) "CApath = ${v.CAPath}"}
+ ${optionalString (v.CAFile != null) "CAFile = ${v.CAFile}"}
${optionalString (v.verifyHostname != null) "checkHost = ${v.verifyHostname}"}
OCSPaia = yes
@@ -216,6 +223,12 @@ in
};
};
+ meta.maintainers = with maintainers; [
+ # Server side
+ lschuermann
+ # Client side
+ das_j
+ ];
};
}
diff --git a/nixos/modules/services/networking/syncthing.nix b/nixos/modules/services/networking/syncthing.nix
index 165fd5970cf..b3f2af5b179 100644
--- a/nixos/modules/services/networking/syncthing.nix
+++ b/nixos/modules/services/networking/syncthing.nix
@@ -18,6 +18,7 @@ let
fsWatcherEnabled = folder.watch;
fsWatcherDelayS = folder.watchDelay;
ignorePerms = folder.ignorePerms;
+ versioning = folder.versioning;
}) (filterAttrs (
_: folder:
folder.enable
@@ -220,6 +221,69 @@ in {
'';
};
+ versioning = mkOption {
+ default = null;
+ description = ''
+ How to keep changed/deleted files with syncthing.
+ There are 4 different types of versioning with different parameters.
+ See https://docs.syncthing.net/users/versioning.html
+ '';
+ example = [
+ {
+ versioning = {
+ type = "simple";
+ params.keep = "10";
+ };
+ }
+ {
+ versioning = {
+ type = "trashcan";
+ params.cleanoutDays = "1000";
+ };
+ }
+ {
+ versioning = {
+ type = "staggered";
+ params = {
+ cleanInterval = "3600";
+ maxAge = "31536000";
+ versionsPath = "/syncthing/backup";
+ };
+ };
+ }
+ {
+ versioning = {
+ type = "external";
+ params.versionsPath = pkgs.writers.writeBash "backup" ''
+ folderpath="$1"
+ filepath="$2"
+ rm -rf "$folderpath/$filepath"
+ '';
+ };
+ }
+ ];
+ type = with types; nullOr (submodule {
+ options = {
+ type = mkOption {
+ type = enum [ "external" "simple" "staggered" "trashcan" ];
+ description = ''
+ Type of versioning.
+ See https://docs.syncthing.net/users/versioning.html
+ '';
+ };
+ params = mkOption {
+ type = attrsOf (either str path);
+ description = ''
+ Parameters for versioning. Structure depends on versioning.type.
+ See https://docs.syncthing.net/users/versioning.html
+ '';
+ };
+ };
+ });
+ };
+
+
+
rescanInterval = mkOption {
type = types.int;
default = 3600;
diff --git a/nixos/modules/services/networking/thelounge.nix b/nixos/modules/services/networking/thelounge.nix
index b1d23372955..875d8f66169 100644
--- a/nixos/modules/services/networking/thelounge.nix
+++ b/nixos/modules/services/networking/thelounge.nix
@@ -56,6 +56,7 @@ in {
users.users.thelounge = {
description = "thelounge service user";
group = "thelounge";
+ isSystemUser = true;
};
users.groups.thelounge = {};
systemd.services.thelounge = {
diff --git a/nixos/modules/services/networking/tinydns.nix b/nixos/modules/services/networking/tinydns.nix
index 7d5db71601e..79507b2ebcd 100644
--- a/nixos/modules/services/networking/tinydns.nix
+++ b/nixos/modules/services/networking/tinydns.nix
@@ -32,11 +32,12 @@ with lib;
config = mkIf config.services.tinydns.enable {
environment.systemPackages = [ pkgs.djbdns ];
- users.users.tinydns = {};
+ users.users.tinydns.isSystemUser = true;
systemd.services.tinydns = {
description = "djbdns tinydns server";
wantedBy = [ "multi-user.target" ];
+ after = [ "network.target" ];
path = with pkgs; [ daemontools djbdns ];
preStart = ''
rm -rf /var/lib/tinydns
diff --git a/nixos/modules/services/networking/toxvpn.nix b/nixos/modules/services/networking/toxvpn.nix
index 7daacba185f..9e97faeebc1 100644
--- a/nixos/modules/services/networking/toxvpn.nix
+++ b/nixos/modules/services/networking/toxvpn.nix
@@ -23,7 +23,7 @@ with lib;
type = types.listOf types.str;
default = [];
example = ''[ "toxid1" "toxid2" ]'';
- description = "peers to automacally connect to on startup";
+ description = "peers to automatically connect to on startup";
};
};
};
diff --git a/nixos/modules/services/networking/trickster.nix b/nixos/modules/services/networking/trickster.nix
new file mode 100644
index 00000000000..8760dd5a938
--- /dev/null
+++ b/nixos/modules/services/networking/trickster.nix
@@ -0,0 +1,112 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+ cfg = config.services.trickster;
+in
+{
+
+ options = {
+ services.trickster = {
+ enable = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Enable Trickster.
+ '';
+ };
+
+ package = mkOption {
+ type = types.package;
+ default = pkgs.trickster;
+ defaultText = "pkgs.trickster";
+ description = ''
+ Package that should be used for trickster.
+ '';
+ };
+
+ configFile = mkOption {
+ type = types.nullOr types.path;
+ default = null;
+ description = ''
+ Path to configuration file.
+ '';
+ };
+
+ instance-id = mkOption {
+ type = types.nullOr types.int;
+ default = null;
+ description = ''
+ Instance ID for when running multiple processes (default null).
+ '';
+ };
+
+ log-level = mkOption {
+ type = types.str;
+ default = "info";
+ description = ''
+ Level of Logging to use (debug, info, warn, error) (default "info").
+ '';
+ };
+
+ metrics-port = mkOption {
+ type = types.port;
+ default = 8082;
+ description = ''
+ Port that the /metrics endpoint will listen on.
+ '';
+ };
+
+ origin = mkOption {
+ type = types.str;
+ default = "http://prometheus:9090";
+ description = ''
+ URL to the Prometheus Origin. Enter it like you would in grafana, e.g., http://prometheus:9090 (default http://prometheus:9090).
+ '';
+ };
+
+ profiler-port = mkOption {
+ type = types.nullOr types.port;
+ default = null;
+ description = ''
+ Port that the /debug/pprof endpoint will listen on.
+ '';
+ };
+
+ proxy-port = mkOption {
+ type = types.port;
+ default = 9090;
+ description = ''
+ Port that the Proxy server will listen on.
+ '';
+ };
+
+ };
+ };
+
+ config = mkIf cfg.enable {
+ systemd.services.trickster = {
+ description = "Dashboard Accelerator for Prometheus";
+ after = [ "network.target" ];
+ wantedBy = [ "multi-user.target" ];
+ serviceConfig = {
+ DynamicUser = true;
+ ExecStart = ''
+ ${cfg.package}/bin/trickster \
+ -log-level ${cfg.log-level} \
+ -metrics-port ${toString cfg.metrics-port} \
+ -origin ${cfg.origin} \
+ -proxy-port ${toString cfg.proxy-port} \
+ ${optionalString (cfg.configFile != null) "-config ${cfg.configFile}"} \
+ ${optionalString (cfg.profiler-port != null) "-profiler-port ${cfg.profiler-port}"} \
+ ${optionalString (cfg.instance-id != null) "-instance-id ${cfg.instance-id}"}
+ '';
+ ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
+ Restart = "always";
+ };
+ };
+
+ };
+}
+
diff --git a/nixos/modules/services/networking/vsftpd.nix b/nixos/modules/services/networking/vsftpd.nix
index 67be60da567..90093d9a78d 100644
--- a/nixos/modules/services/networking/vsftpd.nix
+++ b/nixos/modules/services/networking/vsftpd.nix
@@ -34,6 +34,15 @@ let
};
optionDescription = [
+ (yesNoOption "allowWriteableChroot" "allow_writeable_chroot" false ''
+ Allow the use of writeable root inside chroot().
+ '')
+ (yesNoOption "virtualUseLocalPrivs" "virtual_use_local_privs" false ''
+ If enabled, virtual users will use the same privileges as local
+ users. By default, virtual users will use the same privileges as
+ anonymous users, which tends to be more restrictive (especially
+ in terms of write access).
+ '')
(yesNoOption "anonymousUser" "anonymous_enable" false ''
Whether to enable the anonymous FTP user.
'')
@@ -76,9 +85,21 @@ let
outgoing data connections can only connect to the client. Only enable if you
know what you are doing!
'')
- (yesNoOption "ssl_tlsv1" "ssl_tlsv1" true '' '')
- (yesNoOption "ssl_sslv2" "ssl_sslv2" false '' '')
- (yesNoOption "ssl_sslv3" "ssl_sslv3" false '' '')
+ (yesNoOption "ssl_tlsv1" "ssl_tlsv1" true ''
+ Only applies if ssl_enable is activated. If
+ enabled, this option will permit TLS v1 protocol connections.
+ TLS v1 connections are preferred.
+ '')
+ (yesNoOption "ssl_sslv2" "ssl_sslv2" false ''
+ Only applies if ssl_enable is activated. If
+ enabled, this option will permit SSL v2 protocol connections.
+ TLS v1 connections are preferred.
+ '')
+ (yesNoOption "ssl_sslv3" "ssl_sslv3" false ''
+ Only applies if ssl_enable is activated. If
+ enabled, this option will permit SSL v3 protocol connections.
+ TLS v1 connections are preferred.
+ '')
];
configFile = pkgs.writeText "vsftpd.conf"
@@ -98,6 +119,9 @@ let
listen=YES
nopriv_user=vsftpd
secure_chroot_dir=/var/empty
+ ${optionalString (cfg.localRoot != null) ''
+ local_root=${cfg.localRoot}
+ ''}
syslog_enable=YES
${optionalString (pkgs.stdenv.hostPlatform.system == "x86_64-linux") ''
seccomp_sandbox=NO
@@ -106,6 +130,11 @@ let
${optionalString cfg.anonymousUser ''
anon_root=${cfg.anonymousUserHome}
''}
+ ${optionalString cfg.enableVirtualUsers ''
+ guest_enable=YES
+ guest_username=vsftpd
+ pam_service_name=vsftpd
+ ''}
${cfg.extraConfig}
'';
@@ -119,10 +148,7 @@ in
services.vsftpd = {
- enable = mkOption {
- default = false;
- description = "Whether to enable the vsftpd FTP server.";
- };
+ enable = mkEnableOption "vsftpd";
userlist = mkOption {
default = [];
@@ -143,6 +169,61 @@ in
'';
};
+ enableVirtualUsers = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Whether to enable the pam_userdb -based
+ virtual user system
+ '';
+ };
+
+ userDbPath = mkOption {
+ type = types.nullOr types.str;
+ example = "/etc/vsftpd/userDb";
+ default = null;
+ description = ''
+ Only applies if enableVirtualUsers is true.
+ Path pointing to the pam_userdb user
+ database used by vsftpd to authenticate the virtual users.
+
+ This user list should be stored in the Berkeley DB database
+ format.
+
+ To generate a new user database, create a text file, add
+ your users using the following format:
+
+ user1
+ password1
+ user2
+ password2
+
+
+ You can then install pkgs.db to generate
+ the Berkeley DB using
+
+ db_load -T -t hash -f logins.txt userDb.db
+
+
+ Caution: pam_userdb will automatically
+ append a .db suffix to the filename you
+ provide though this option. This option shouldn't include
+ this filetype suffix.
+ '';
+ };
+
+ localRoot = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ example = "/var/www/$USER";
+ description = ''
+ This option represents a directory which vsftpd will try to
+ change into after a local (i.e. non- anonymous) login.
+
+ Failure is silently ignored.
+ '';
+ };
+
anonymousUserHome = mkOption {
type = types.path;
default = "/home/ftp/";
@@ -186,18 +267,25 @@ in
config = mkIf cfg.enable {
- assertions = singleton
+ assertions = [
{ assertion =
(cfg.forceLocalLoginsSSL -> cfg.rsaCertFile != null)
&& (cfg.forceLocalDataSSL -> cfg.rsaCertFile != null);
message = "vsftpd: If forceLocalLoginsSSL or forceLocalDataSSL is true then a rsaCertFile must be provided!";
- };
+ }
+ {
+ assertion = (cfg.enableVirtualUsers -> cfg.userDbPath != null)
+ && (cfg.enableVirtualUsers -> cfg.localUsers != null);
+ message = "vsftpd: If enableVirtualUsers is true, you need to setup both the userDbPath and localUsers options.";
+ }];
users.users =
[ { name = "vsftpd";
uid = config.ids.uids.vsftpd;
description = "VSFTPD user";
- home = "/homeless-shelter";
+ home = if cfg.localRoot != null
+ then cfg.localRoot # <= Necessary for virtual users.
+ else "/homeless-shelter";
}
] ++ optional cfg.anonymousUser
{ name = "ftp";
@@ -213,23 +301,24 @@ in
# = false and whitelist root
services.vsftpd.userlist = if cfg.userlistDeny then ["root"] else [];
- systemd.services.vsftpd =
- { description = "Vsftpd Server";
+ systemd = {
+ tmpfiles.rules = optional cfg.anonymousUser
+ #Type Path Mode User Gr Age Arg
+ "d '${builtins.toString cfg.anonymousUserHome}' 0555 'ftp' 'ftp' - -";
+ services.vsftpd = {
+ description = "Vsftpd Server";
wantedBy = [ "multi-user.target" ];
- preStart =
- optionalString cfg.anonymousUser
- ''
- mkdir -p -m 555 ${cfg.anonymousUserHome}
- chown -R ftp:ftp ${cfg.anonymousUserHome}
- '';
-
serviceConfig.ExecStart = "@${vsftpd}/sbin/vsftpd vsftpd ${configFile}";
serviceConfig.Restart = "always";
serviceConfig.Type = "forking";
};
+ };
+ security.pam.services.vsftpd.text = mkIf (cfg.enableVirtualUsers && cfg.userDbPath != null)''
+ auth required pam_userdb.so db=${cfg.userDbPath}
+ account required pam_userdb.so db=${cfg.userDbPath}
+ '';
};
-
}
diff --git a/nixos/modules/services/networking/wireguard.nix b/nixos/modules/services/networking/wireguard.nix
index 4176da2c8cb..980961225c9 100644
--- a/nixos/modules/services/networking/wireguard.nix
+++ b/nixos/modules/services/networking/wireguard.nix
@@ -112,6 +112,32 @@ let
Determines whether to add allowed IPs as routes or not.
'';
};
+
+ socketNamespace = mkOption {
+ default = null;
+ type = with types; nullOr str;
+ example = "container";
+ description = ''The pre-existing network namespace in which the
+ WireGuard interface is created, and which retains the socket even if the
+ interface is moved via interfaceNamespace . When
+ null , the interface is created in the init namespace.
+ See documentation.
+ '';
+ };
+
+ interfaceNamespace = mkOption {
+ default = null;
+ type = with types; nullOr str;
+ example = "init";
+ description = ''The pre-existing network namespace the WireGuard
+ interface is moved to. The special value init means
+ the init namespace. When null , the interface is not
+ moved.
+ See documentation.
+ '';
+ };
};
};
@@ -239,6 +265,10 @@ let
if peer.presharedKey != null
then pkgs.writeText "wg-psk" peer.presharedKey
else peer.presharedKeyFile;
+ src = interfaceCfg.socketNamespace;
+ dst = interfaceCfg.interfaceNamespace;
+ ip = nsWrap "ip" src dst;
+ wg = nsWrap "wg" src dst;
in nameValuePair "wireguard-${interfaceName}-peer-${unitName}"
{
description = "WireGuard Peer - ${interfaceName} - ${peer.publicKey}";
@@ -255,16 +285,16 @@ let
};
script = let
- wg_setup = "wg set ${interfaceName} peer ${peer.publicKey}" +
+ wg_setup = "${wg} set ${interfaceName} peer ${peer.publicKey}" +
optionalString (psk != null) " preshared-key ${psk}" +
optionalString (peer.endpoint != null) " endpoint ${peer.endpoint}" +
optionalString (peer.persistentKeepalive != null) " persistent-keepalive ${toString peer.persistentKeepalive}" +
optionalString (peer.allowedIPs != []) " allowed-ips ${concatStringsSep "," peer.allowedIPs}";
route_setup =
- optionalString (interfaceCfg.allowedIPsAsRoutes != false)
+ optionalString interfaceCfg.allowedIPsAsRoutes
(concatMapStringsSep "\n"
(allowedIP:
- "ip route replace ${allowedIP} dev ${interfaceName} table ${interfaceCfg.table}"
+ "${ip} route replace ${allowedIP} dev ${interfaceName} table ${interfaceCfg.table}"
) peer.allowedIPs);
in ''
${wg_setup}
@@ -272,13 +302,13 @@ let
'';
postStop = let
- route_destroy = optionalString (interfaceCfg.allowedIPsAsRoutes != false)
+ route_destroy = optionalString interfaceCfg.allowedIPsAsRoutes
(concatMapStringsSep "\n"
(allowedIP:
- "ip route delete ${allowedIP} dev ${interfaceName} table ${interfaceCfg.table}"
+ "${ip} route delete ${allowedIP} dev ${interfaceName} table ${interfaceCfg.table}"
) peer.allowedIPs);
in ''
- wg set ${interfaceName} peer ${peer.publicKey} remove
+ ${wg} set ${interfaceName} peer ${peer.publicKey} remove
${route_destroy}
'';
};
@@ -287,6 +317,13 @@ let
# exactly one way to specify the private key must be set
#assert (values.privateKey != null) != (values.privateKeyFile != null);
let privKey = if values.privateKeyFile != null then values.privateKeyFile else pkgs.writeText "wg-key" values.privateKey;
+ src = values.socketNamespace;
+ dst = values.interfaceNamespace;
+ ipPreMove = nsWrap "ip" src null;
+ ipPostMove = nsWrap "ip" src dst;
+ wg = nsWrap "wg" src dst;
+ ns = if dst == "init" then "1" else dst;
+
in
nameValuePair "wireguard-${name}"
{
@@ -307,26 +344,33 @@ let
${values.preSetup}
- ip link add dev ${name} type wireguard
+ ${ipPreMove} link add dev ${name} type wireguard
+ ${optionalString (values.interfaceNamespace != null && values.interfaceNamespace != values.socketNamespace) "${ipPreMove} link set ${name} netns ${ns}"}
${concatMapStringsSep "\n" (ip:
- "ip address add ${ip} dev ${name}"
+ "${ipPostMove} address add ${ip} dev ${name}"
) values.ips}
- wg set ${name} private-key ${privKey} ${
+ ${wg} set ${name} private-key ${privKey} ${
optionalString (values.listenPort != null) " listen-port ${toString values.listenPort}"}
- ip link set up dev ${name}
+ ${ipPostMove} link set up dev ${name}
${values.postSetup}
'';
postStop = ''
- ip link del dev ${name}
+ ${ipPostMove} link del dev ${name}
${values.postShutdown}
'';
};
+ nsWrap = cmd: src: dst:
+ let
+ nsList = filter (ns: ns != null) [ src dst ];
+ ns = last nsList;
+ in
+ if (length nsList > 0 && ns != "init") then "ip netns exec ${ns} ${cmd}" else cmd;
in
{
diff --git a/nixos/modules/services/networking/wpa_supplicant.nix b/nixos/modules/services/networking/wpa_supplicant.nix
index 63e59e7c8fa..294c0d70ede 100644
--- a/nixos/modules/services/networking/wpa_supplicant.nix
+++ b/nixos/modules/services/networking/wpa_supplicant.nix
@@ -103,6 +103,13 @@ in {
description = ''
Set this to true if the SSID of the network is hidden.
'';
+ example = literalExample ''
+ { echelon = {
+ hidden = true;
+ psk = "abcdefgh";
+ };
+ }
+ '';
};
priority = mkOption {
@@ -146,10 +153,13 @@ in {
'';
default = {};
example = literalExample ''
- { echelon = {
+ { echelon = { # SSID with no spaces or special characters
psk = "abcdefgh";
};
- "free.wifi" = {};
+ "echelon's AP" = { # SSID with spaces and/or special characters
+ psk = "ijklmnop";
+ };
+ "free.wifi" = {}; # Public wireless network
}
'';
};
diff --git a/nixos/modules/services/networking/yggdrasil.nix b/nixos/modules/services/networking/yggdrasil.nix
new file mode 100644
index 00000000000..5d65f8e3413
--- /dev/null
+++ b/nixos/modules/services/networking/yggdrasil.nix
@@ -0,0 +1,187 @@
+{ config, lib, pkgs, ... }:
+with lib;
+let
+ cfg = config.services.yggdrasil;
+ configProvided = (cfg.config != {});
+ configAsFile = (if configProvided then
+ toString (pkgs.writeTextFile {
+ name = "yggdrasil-conf";
+ text = builtins.toJSON cfg.config;
+ })
+ else null);
+ configFileProvided = (cfg.configFile != null);
+ generateConfig = (
+ if configProvided && configFileProvided then
+ "${pkgs.jq}/bin/jq -s add /run/yggdrasil/configFile.json ${configAsFile}"
+ else if configProvided then
+ "cat ${configAsFile}"
+ else if configFileProvided then
+ "cat /run/yggdrasil/configFile.json"
+ else
+ "${cfg.package}/bin/yggdrasil -genconf"
+ );
+
+in {
+ options = with types; {
+ services.yggdrasil = {
+ enable = mkEnableOption "the yggdrasil system service";
+
+ configFile = mkOption {
+ type = nullOr str;
+ default = null;
+ example = "/run/keys/yggdrasil.conf";
+ description = ''
+ A file which contains JSON configuration for yggdrasil.
+
+ You do not have to supply a complete configuration, as
+ yggdrasil will use default values for anything which is
+ omitted. If the encryption and signing keys are omitted,
+ yggdrasil will generate new ones each time the service is
+ started, resulting in a random IPv6 address on the yggdrasil
+ network each time.
+
+ If both this option and config are
+ supplied, they will be combined, with values from
+ config taking precedence.
+
+ You can use the command nix-shell -p yggdrasil --run
+ "yggdrasil -genconf -json"
to generate a default
+ JSON configuration.
+ '';
+ };
+
+ config = mkOption {
+ type = attrs;
+ default = {};
+ example = {
+ Peers = [
+ "tcp://aa.bb.cc.dd:eeeee"
+ "tcp://[aaaa:bbbb:cccc:dddd::eeee]:fffff"
+ ];
+ Listen = [
+ "tcp://0.0.0.0:xxxxx"
+ ];
+ };
+ description = ''
+ Configuration for yggdrasil, as a Nix attribute set.
+
+ Warning: this is stored in the WORLD-READABLE Nix store!
+ Therefore, it is not appropriate for private keys. If you
+ do not specify the keys, yggdrasil will generate a new set
+ each time the service is started, creating a random IPv6
+ address on the yggdrasil network each time.
+
+ If you wish to specify the keys, use
+ configFile . If both
+ configFile and config are
+ supplied, they will be combined, with values from
+ config taking precedence.
+
+ You can use the command nix-shell -p yggdrasil --run
+ "yggdrasil -genconf"
to generate default
+ configuration values with documentation.
+ '';
+ };
+
+ openMulticastPort = mkOption {
+ type = bool;
+ default = false;
+ description = ''
+ Whether to open the UDP port used for multicast peer
+ discovery. The NixOS firewall blocks link-local
+ communication, so in order to make local peering work you
+ will also need to set LinkLocalTCPPort
in your
+ yggdrasil configuration (config or
+ configFile ) to a port number other than 0,
+ and then add that port to
+ networking.firewall.allowedTCPPorts .
+ '';
+ };
+
+ denyDhcpcdInterfaces = mkOption {
+ type = listOf str;
+ default = [];
+ example = [ "tap*" ];
+ description = ''
+ Disable the DHCP client for any interface whose name matches
+ any of the shell glob patterns in this list. Use this
+ option to prevent the DHCP client from broadcasting requests
+ on the yggdrasil network. It is only necessary to do so
+ when yggdrasil is running in TAP mode, because TUN
+ interfaces do not support broadcasting.
+ '';
+ };
+
+ package = mkOption {
+ type = package;
+ default = pkgs.yggdrasil;
+ defaultText = "pkgs.yggdrasil";
+ description = "Yggdrasil package to use.";
+ };
+ };
+ };
+
+ config = mkIf cfg.enable {
+ assertions = [
+ { assertion = config.networking.enableIPv6;
+ message = "networking.enableIPv6 must be true for yggdrasil to work";
+ }
+ ];
+
+ systemd.services.yggdrasil = {
+ description = "Yggdrasil Network Service";
+ path = [ cfg.package ] ++ optional (configProvided && configFileProvided) pkgs.jq;
+ bindsTo = [ "network-online.target" ];
+ after = [ "network-online.target" ];
+ wantedBy = [ "multi-user.target" ];
+
+ preStart = ''
+ ${generateConfig} | yggdrasil -normaliseconf -useconf > /run/yggdrasil/yggdrasil.conf
+ '';
+
+ serviceConfig = {
+ ExecStart = "${cfg.package}/bin/yggdrasil -useconffile /run/yggdrasil/yggdrasil.conf";
+ ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
+ Restart = "always";
+
+ RuntimeDirectory = "yggdrasil";
+ RuntimeDirectoryMode = "0700";
+ BindReadOnlyPaths = mkIf configFileProvided
+ [ "${cfg.configFile}:/run/yggdrasil/configFile.json" ];
+
+ # TODO: as of yggdrasil 0.3.8 and systemd 243, yggdrasil fails
+ # to set up the network adapter when DynamicUser is set. See
+ # github.com/yggdrasil-network/yggdrasil-go/issues/557. The
+ # following options are implied by DynamicUser according to
+ # the systemd.exec documentation, and can be removed if the
+ # upstream issue is fixed and DynamicUser is set to true:
+ PrivateTmp = true;
+ RemoveIPC = true;
+ NoNewPrivileges = true;
+ ProtectSystem = "strict";
+ RestrictSUIDSGID = true;
+ # End of list of options implied by DynamicUser.
+
+ AmbientCapabilities = "CAP_NET_ADMIN";
+ CapabilityBoundingSet = "CAP_NET_ADMIN";
+ MemoryDenyWriteExecute = true;
+ ProtectControlGroups = true;
+ ProtectHome = "tmpfs";
+ ProtectKernelModules = true;
+ ProtectKernelTunables = true;
+ RestrictAddressFamilies = "AF_UNIX AF_INET AF_INET6 AF_NETLINK";
+ RestrictNamespaces = true;
+ RestrictRealtime = true;
+ SystemCallArchitectures = "native";
+ SystemCallFilter = "~@clock @cpu-emulation @debug @keyring @module @mount @obsolete @raw-io @resources";
+ };
+ };
+
+ networking.dhcpcd.denyInterfaces = cfg.denyDhcpcdInterfaces;
+ networking.firewall.allowedUDPPorts = mkIf cfg.openMulticastPort [ 9001 ];
+
+ # Make yggdrasilctl available on the command line.
+ environment.systemPackages = [ cfg.package ];
+ };
+ meta.maintainers = with lib.maintainers; [ gazally ];
+}
diff --git a/nixos/modules/services/networking/zeronet.nix b/nixos/modules/services/networking/zeronet.nix
index f4988a90268..f354a9d42c7 100644
--- a/nixos/modules/services/networking/zeronet.nix
+++ b/nixos/modules/services/networking/zeronet.nix
@@ -1,44 +1,39 @@
{ config, lib, pkgs, ... }:
let
+ inherit (lib) generators literalExample mkEnableOption mkIf mkOption recursiveUpdate types;
cfg = config.services.zeronet;
+ dataDir = "/var/lib/zeronet";
+ configFile = pkgs.writeText "zeronet.conf" (generators.toINI {} (recursiveUpdate defaultSettings cfg.settings));
- zConfFile = pkgs.writeTextFile {
- name = "zeronet.conf";
-
- text = ''
- [global]
- data_dir = ${cfg.dataDir}
- log_dir = ${cfg.logDir}
- '' + lib.optionalString (cfg.port != null) ''
- ui_port = ${toString cfg.port}
- '' + lib.optionalString (cfg.fileserverPort != null) ''
- fileserver_port = ${toString cfg.fileserverPort}
- '' + lib.optionalString (cfg.torAlways) ''
- tor = always
- '' + cfg.extraConfig;
+ defaultSettings = {
+ global = {
+ data_dir = dataDir;
+ log_dir = dataDir;
+ ui_port = cfg.port;
+ fileserver_port = cfg.fileserverPort;
+ tor = if !cfg.tor then "disable" else if cfg.torAlways then "always" else "enable";
+ };
};
in with lib; {
options.services.zeronet = {
enable = mkEnableOption "zeronet";
- dataDir = mkOption {
- type = types.path;
- default = "/var/lib/zeronet";
- example = "/home/okina/zeronet";
- description = "Path to the zeronet data directory.";
- };
+ settings = mkOption {
+ type = with types; attrsOf (oneOf [ str int bool (listOf str) ]);
+ default = {};
+ example = literalExample "global.tor = enable;";
- logDir = mkOption {
- type = types.path;
- default = "/var/log/zeronet";
- example = "/home/okina/zeronet/log";
- description = "Path to the zeronet log directory.";
+ description = ''
+ zeronet.conf configuration. Refer to
+
+ for details on supported values;
+ '';
};
port = mkOption {
- type = types.nullOr types.int;
- default = null;
+ type = types.int;
+ default = 43110;
example = 43110;
description = "Optional zeronet web UI port.";
};
@@ -63,22 +58,13 @@ in with lib; {
default = false;
description = "Use TOR for all zeronet traffic.";
};
-
- extraConfig = mkOption {
- type = types.lines;
- default = "";
-
- description = ''
- Extra configuration. Contents will be added verbatim to the
- configuration file at the end.
- '';
- };
};
config = mkIf cfg.enable {
services.tor = mkIf cfg.tor {
enable = true;
controlPort = 9051;
+
extraConfig = ''
CacheDirectoryGroupReadable 1
CookieAuthentication 1
@@ -86,37 +72,25 @@ in with lib; {
'';
};
- systemd.tmpfiles.rules = [
- "d '${cfg.dataDir}' 750 zeronet zeronet - -"
- "d '${cfg.logDir}' 750 zeronet zeronet - -"
- ];
-
systemd.services.zeronet = {
description = "zeronet";
after = [ "network.target" (optionalString cfg.tor "tor.service") ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
- PrivateTmp = "yes";
User = "zeronet";
- Group = "zeronet";
- ExecStart = "${pkgs.zeronet}/bin/zeronet --config_file ${zConfFile}";
- };
- };
-
- users = {
- groups.zeronet.gid = config.ids.gids.zeronet;
-
- users.zeronet = {
- description = "zeronet service user";
- home = cfg.dataDir;
- createHome = true;
- group = "zeronet";
- extraGroups = mkIf cfg.tor [ "tor" ];
- uid = config.ids.uids.zeronet;
+ DynamicUser = true;
+ StateDirectory = "zeronet";
+ SupplementaryGroups = mkIf cfg.tor [ "tor" ];
+ ExecStart = "${pkgs.zeronet}/bin/zeronet --config_file ${configFile}";
};
};
};
+ imports = [
+ (mkRemovedOptionModule [ "services" "zeronet" "dataDir" ] "Zeronet will store data by default in /var/lib/zeronet")
+ (mkRemovedOptionModule [ "services" "zeronet" "logDir" ] "Zeronet will log by default in /var/lib/zeronet")
+ ];
+
meta.maintainers = with maintainers; [ chiiruno ];
}
diff --git a/nixos/modules/services/printing/cupsd.nix b/nixos/modules/services/printing/cupsd.nix
index 3fcae611dc7..1071c05d514 100644
--- a/nixos/modules/services/printing/cupsd.nix
+++ b/nixos/modules/services/printing/cupsd.nix
@@ -31,7 +31,7 @@ let
# part of CUPS itself, e.g. the SMB backend is part of Samba. Since
# we can't update ${cups.out}/lib/cups itself, we create a symlink tree
# here and add the additional programs. The ServerBin directive in
- # cupsd.conf tells cupsd to use this tree.
+ # cups-files.conf tells cupsd to use this tree.
bindir = pkgs.buildEnv {
name = "cups-progs";
paths =
diff --git a/nixos/modules/services/scheduling/marathon.nix b/nixos/modules/services/scheduling/marathon.nix
index 0961a67770e..2e0d20c64b2 100644
--- a/nixos/modules/services/scheduling/marathon.nix
+++ b/nixos/modules/services/scheduling/marathon.nix
@@ -93,6 +93,6 @@ in {
};
};
- users.users.${cfg.user} = { };
+ users.users.${cfg.user}.isSystemUser = true;
};
}
diff --git a/nixos/modules/services/security/bitwarden_rs/default.nix b/nixos/modules/services/security/bitwarden_rs/default.nix
index 80fd65891ff..d1817db0755 100644
--- a/nixos/modules/services/security/bitwarden_rs/default.nix
+++ b/nixos/modules/services/security/bitwarden_rs/default.nix
@@ -74,7 +74,10 @@ in {
webVaultEnabled = mkDefault true;
};
- users.users.bitwarden_rs = { inherit group; };
+ users.users.bitwarden_rs = {
+ inherit group;
+ isSystemUser = true;
+ };
users.groups.bitwarden_rs = { };
systemd.services.bitwarden_rs = {
diff --git a/nixos/modules/services/security/fprintd.nix b/nixos/modules/services/security/fprintd.nix
index 5662ebc61d2..8ece1ca1901 100644
--- a/nixos/modules/services/security/fprintd.nix
+++ b/nixos/modules/services/security/fprintd.nix
@@ -50,13 +50,6 @@ in
systemd.packages = [ cfg.package ];
-
- # The upstream unit does not use StateDirectory, and will
- # fail if the directory it needs is not present. Should be
- # fixed when https://gitlab.freedesktop.org/libfprint/fprintd/merge_requests/5
- # is merged.
- systemd.services.fprintd.serviceConfig.StateDirectory = "fprint";
-
};
}
diff --git a/nixos/modules/services/security/oauth2_proxy.nix b/nixos/modules/services/security/oauth2_proxy.nix
index bb03f7fc9e4..2abb9ec32ac 100644
--- a/nixos/modules/services/security/oauth2_proxy.nix
+++ b/nixos/modules/services/security/oauth2_proxy.nix
@@ -546,6 +546,7 @@ in
users.users.oauth2_proxy = {
description = "OAuth2 Proxy";
+ isSystemUser = true;
};
systemd.services.oauth2_proxy = {
diff --git a/nixos/modules/services/security/vault.nix b/nixos/modules/services/security/vault.nix
index d5962ba9af9..b0ab8fadcbe 100644
--- a/nixos/modules/services/security/vault.nix
+++ b/nixos/modules/services/security/vault.nix
@@ -119,9 +119,8 @@ in
};
users.groups.vault.gid = config.ids.gids.vault;
- systemd.tmpfiles.rules = optional (cfg.storagePath != null) [
- "d '${cfg.storagePath}' 0700 vault vault - -"
- ];
+ systemd.tmpfiles.rules = optional (cfg.storagePath != null)
+ "d '${cfg.storagePath}' 0700 vault vault - -";
systemd.services.vault = {
description = "Vault server daemon";
diff --git a/nixos/modules/services/torrent/magnetico.nix b/nixos/modules/services/torrent/magnetico.nix
index 02fa2ac0750..719827713ff 100644
--- a/nixos/modules/services/torrent/magnetico.nix
+++ b/nixos/modules/services/torrent/magnetico.nix
@@ -35,6 +35,7 @@ let
(if (cfg.web.credentialsFile != null || cfg.web.credentials != { })
then "--credentials=${toString credFile}"
else "--no-auth")
+ "--addr=${address}:${toString port}"
] ++ extraOptions);
in {
@@ -171,12 +172,13 @@ in {
users.users.magnetico = {
description = "Magnetico daemons user";
+ isSystemUser = true;
};
systemd.services.magneticod = {
description = "Magnetico DHT crawler";
wantedBy = [ "multi-user.target" ];
- after = [ "network-online.target" ];
+ after = [ "network.target" ];
serviceConfig = {
User = "magnetico";
@@ -188,7 +190,7 @@ in {
systemd.services.magneticow = {
description = "Magnetico web interface";
wantedBy = [ "multi-user.target" ];
- after = [ "network-online.target" "magneticod.service"];
+ after = [ "network.target" "magneticod.service"];
serviceConfig = {
User = "magnetico";
@@ -201,7 +203,7 @@ in {
assertions =
[
{
- assertion = cfg.web.credentialsFile != null || cfg.web.credentials != { };
+ assertion = cfg.web.credentialsFile == null || cfg.web.credentials == { };
message = ''
The options services.magnetico.web.credentialsFile and
services.magnetico.web.credentials are mutually exclusives.
diff --git a/nixos/modules/services/web-apps/codimd.nix b/nixos/modules/services/web-apps/codimd.nix
index 7ae7cd9c52d..5f56f8ed5a0 100644
--- a/nixos/modules/services/web-apps/codimd.nix
+++ b/nixos/modules/services/web-apps/codimd.nix
@@ -893,6 +893,7 @@ in
extraGroups = cfg.groups;
home = cfg.workDir;
createHome = true;
+ isSystemUser = true;
};
systemd.services.codimd = {
diff --git a/nixos/modules/services/web-apps/documize.nix b/nixos/modules/services/web-apps/documize.nix
index 37359869cb6..1b90299aa23 100644
--- a/nixos/modules/services/web-apps/documize.nix
+++ b/nixos/modules/services/web-apps/documize.nix
@@ -14,6 +14,15 @@ in {
options.services.documize = {
enable = mkEnableOption "Documize Wiki";
+ stateDirectoryName = mkOption {
+ type = types.str;
+ default = "documize";
+ description = ''
+ The name of the directory below /var/lib/private
+ where documize runs in and stores, for example, backups.
+ '';
+ };
+
package = mkOption {
type = types.package;
default = pkgs.documize-community;
@@ -132,6 +141,8 @@ in {
];
Restart = "always";
DynamicUser = "yes";
+ StateDirectory = cfg.stateDirectoryName;
+ WorkingDirectory = "/var/lib/${cfg.stateDirectoryName}";
};
};
};
diff --git a/nixos/modules/services/web-apps/frab.nix b/nixos/modules/services/web-apps/frab.nix
index 7914e5cc0ee..a9a30b40922 100644
--- a/nixos/modules/services/web-apps/frab.nix
+++ b/nixos/modules/services/web-apps/frab.nix
@@ -177,6 +177,7 @@ in
{ name = cfg.user;
group = cfg.group;
home = "${cfg.statePath}";
+ isSystemUser = true;
}
];
diff --git a/nixos/modules/services/web-apps/gotify-server.nix b/nixos/modules/services/web-apps/gotify-server.nix
new file mode 100644
index 00000000000..03e01f46a94
--- /dev/null
+++ b/nixos/modules/services/web-apps/gotify-server.nix
@@ -0,0 +1,49 @@
+{ pkgs, lib, config, ... }:
+
+with lib;
+
+let
+ cfg = config.services.gotify;
+in {
+ options = {
+ services.gotify = {
+ enable = mkEnableOption "Gotify webserver";
+
+ port = mkOption {
+ type = types.port;
+ description = ''
+ Port the server listens to.
+ '';
+ };
+
+ stateDirectoryName = mkOption {
+ type = types.str;
+ default = "gotify-server";
+ description = ''
+ The name of the directory below /var/lib where
+ gotify stores its runtime data.
+ '';
+ };
+ };
+ };
+
+ config = mkIf cfg.enable {
+ systemd.services.gotify-server = {
+ wantedBy = [ "multi-user.target" ];
+ after = [ "network.target" ];
+ description = "Simple server for sending and receiving messages";
+
+ environment = {
+ GOTIFY_SERVER_PORT = toString cfg.port;
+ };
+
+ serviceConfig = {
+ WorkingDirectory = "/var/lib/${cfg.stateDirectoryName}";
+ StateDirectory = cfg.stateDirectoryName;
+ Restart = "always";
+ DynamicUser = "yes";
+ ExecStart = "${pkgs.gotify-server}/bin/server";
+ };
+ };
+ };
+}
diff --git a/nixos/modules/services/web-apps/limesurvey.nix b/nixos/modules/services/web-apps/limesurvey.nix
index 68b57a9b90d..bd524524130 100644
--- a/nixos/modules/services/web-apps/limesurvey.nix
+++ b/nixos/modules/services/web-apps/limesurvey.nix
@@ -277,7 +277,10 @@ in
systemd.services.httpd.after = optional mysqlLocal "mysql.service" ++ optional pgsqlLocal "postgresql.service";
- users.users.${user}.group = group;
+ users.users.${user} = {
+ group = group;
+ isSystemUser = true;
+ };
};
}
diff --git a/nixos/modules/services/web-apps/matomo-doc.xml b/nixos/modules/services/web-apps/matomo-doc.xml
index 8485492c51c..79cece551d3 100644
--- a/nixos/modules/services/web-apps/matomo-doc.xml
+++ b/nixos/modules/services/web-apps/matomo-doc.xml
@@ -105,7 +105,7 @@ GRANT ALL PRIVILEGES ON matomo.* TO 'matomo'@'localhost';
You can use other web servers by forwarding calls for
index.php and piwik.php to the
- /run/phpfpm-matomo.sock fastcgi unix socket. You can use
+ services.phpfpm.pools.<name>.socket fastcgi unix socket. You can use
the nginx configuration in the module code as a reference to what else
should be configured.
diff --git a/nixos/modules/services/web-apps/matomo.nix b/nixos/modules/services/web-apps/matomo.nix
index d9f840408cc..352cc4c647b 100644
--- a/nixos/modules/services/web-apps/matomo.nix
+++ b/nixos/modules/services/web-apps/matomo.nix
@@ -2,15 +2,13 @@
with lib;
let
cfg = config.services.matomo;
+ fpm = config.services.phpfpm.pools.${pool};
user = "matomo";
dataDir = "/var/lib/${user}";
deprecatedDataDir = "/var/lib/piwik";
pool = user;
- # it's not possible to use /run/phpfpm/${pool}.sock because /run/phpfpm/ is root:root 0770,
- # and therefore is not accessible by the web server.
- phpSocket = "/run/phpfpm-${pool}.sock";
phpExecutionUnit = "phpfpm-${pool}";
databaseService = "mysql.service";
@@ -50,7 +48,7 @@ in {
default = null;
example = "lighttpd";
description = ''
- Name of the web server user that forwards requests to the ${phpSocket} fastcgi socket for Matomo if the nginx
+ Name of the web server user that forwards requests to services.phpfpm.pools.<name>.socket the fastcgi socket for Matomo if the nginx
option is not used. Either this option or the nginx option is mandatory.
If you want to use another webserver than nginx, you need to set this to that server's user
and pass fastcgi requests to `index.php`, `matomo.php` and `piwik.php` (legacy name) to this socket.
@@ -71,25 +69,6 @@ in {
'';
};
- phpfpmProcessManagerConfig = mkOption {
- type = types.str;
- default = ''
- ; default phpfpm process manager 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
-
- ; log worker's stdout, but this has a performance hit
- catch_workers_output = yes
- '';
- description = ''
- Settings for phpfpm's process manager. You might need to change this depending on the load for Matomo.
- '';
- };
-
nginx = mkOption {
type = types.nullOr (types.submodule (
recursiveUpdate
@@ -105,8 +84,8 @@ in {
default = null;
example = {
serverAliases = [
- "matomo.$\{config.networking.domain\}"
- "stats.$\{config.networking.domain\}"
+ "matomo.\${config.networking.domain}"
+ "stats.\${config.networking.domain}"
];
enableACME = false;
};
@@ -115,7 +94,7 @@ in {
Either this option or the webServerUser option is mandatory.
Set this to {} to just enable the virtualHost if you don't need any customization.
If enabled, then by default, the serverName is
- ${user}.$\{config.networking.hostName\}.$\{config.networking.domain\} ,
+ ''${user}.''${config.networking.hostName}.''${config.networking.domain} ,
SSL is active, and certificates are acquired via ACME.
If this is set to null (the default), no nginx virtualHost will be configured.
'';
@@ -233,15 +212,24 @@ in {
else if (cfg.webServerUser != null) then cfg.webServerUser else "";
in {
${pool} = {
- listen = phpSocket;
- extraConfig = ''
- listen.owner = ${socketOwner}
- listen.group = root
- listen.mode = 0600
- user = ${user}
- env[PIWIK_USER_PATH] = ${dataDir}
- ${cfg.phpfpmProcessManagerConfig}
+ inherit user;
+ phpOptions = ''
+ error_log = 'stderr'
+ log_errors = on
'';
+ settings = mapAttrs (name: mkDefault) {
+ "listen.owner" = socketOwner;
+ "listen.group" = "root";
+ "listen.mode" = "0660";
+ "pm" = "dynamic";
+ "pm.max_children" = 75;
+ "pm.start_servers" = 10;
+ "pm.min_spare_servers" = 5;
+ "pm.max_spare_servers" = 20;
+ "pm.max_requests" = 500;
+ "catch_workers_output" = true;
+ };
+ phpEnv.PIWIK_USER_PATH = dataDir;
};
};
@@ -264,18 +252,18 @@ in {
};
# allow index.php for webinterface
locations."= /index.php".extraConfig = ''
- fastcgi_pass unix:${phpSocket};
+ fastcgi_pass unix:${fpm.socket};
'';
# allow matomo.php for tracking
locations."= /matomo.php".extraConfig = ''
- fastcgi_pass unix:${phpSocket};
+ fastcgi_pass unix:${fpm.socket};
'';
# allow piwik.php for tracking (deprecated name)
locations."= /piwik.php".extraConfig = ''
- fastcgi_pass unix:${phpSocket};
+ fastcgi_pass unix:${fpm.socket};
'';
# Any other attempt to access any php files is forbidden
- locations."~* ^.+\.php$".extraConfig = ''
+ locations."~* ^.+\\.php$".extraConfig = ''
return 403;
'';
# Disallow access to unneeded directories
@@ -284,7 +272,7 @@ in {
return 403;
'';
# Disallow access to several helper files
- locations."~* \.(?:bat|git|ini|sh|txt|tpl|xml|md)$".extraConfig = ''
+ locations."~* \\.(?:bat|git|ini|sh|txt|tpl|xml|md)$".extraConfig = ''
return 403;
'';
# No crawling of this site for bots that obey robots.txt - no useful information here.
diff --git a/nixos/modules/services/web-apps/mediawiki.nix b/nixos/modules/services/web-apps/mediawiki.nix
index ec2568bf952..43edc04e1a4 100644
--- a/nixos/modules/services/web-apps/mediawiki.nix
+++ b/nixos/modules/services/web-apps/mediawiki.nix
@@ -461,7 +461,10 @@ in
systemd.services.httpd.after = optional (cfg.database.createLocally && cfg.database.type == "mysql") "mysql.service";
- users.users.${user}.group = group;
+ users.users.${user} = {
+ group = group;
+ isSystemUser = true;
+ };
environment.systemPackages = [ mediawikiScripts ];
};
diff --git a/nixos/modules/services/web-apps/moinmoin.nix b/nixos/modules/services/web-apps/moinmoin.nix
new file mode 100644
index 00000000000..0fee64be0bb
--- /dev/null
+++ b/nixos/modules/services/web-apps/moinmoin.nix
@@ -0,0 +1,303 @@
+{ config, lib, pkgs, ... }:
+with lib;
+
+let
+ cfg = config.services.moinmoin;
+ python = pkgs.python27;
+ pkg = python.pkgs.moinmoin;
+ dataDir = "/var/lib/moin";
+ usingGunicorn = cfg.webServer == "nginx-gunicorn" || cfg.webServer == "gunicorn";
+ usingNginx = cfg.webServer == "nginx-gunicorn";
+ user = "moin";
+ group = "moin";
+
+ uLit = s: ''u"${s}"'';
+ indentLines = n: str: concatMapStrings (line: "${fixedWidthString n " " " "}${line}\n") (splitString "\n" str);
+
+ moinCliWrapper = wikiIdent: pkgs.writeShellScriptBin "moin-${wikiIdent}" ''
+ ${pkgs.su}/bin/su -s ${pkgs.runtimeShell} -c "${pkg}/bin/moin --config-dir=/var/lib/moin/${wikiIdent}/config $*" ${user}
+ '';
+
+ wikiConfig = wikiIdent: w: ''
+ # -*- coding: utf-8 -*-
+
+ from MoinMoin.config import multiconfig, url_prefix_static
+
+ class Config(multiconfig.DefaultConfig):
+ ${optionalString (w.webLocation != "/") ''
+ url_prefix_static = '${w.webLocation}' + url_prefix_static
+ ''}
+
+ sitename = u'${w.siteName}'
+ page_front_page = u'${w.frontPage}'
+
+ data_dir = '${dataDir}/${wikiIdent}/data'
+ data_underlay_dir = '${dataDir}/${wikiIdent}/underlay'
+
+ language_default = u'${w.languageDefault}'
+ ${optionalString (w.superUsers != []) ''
+ superuser = [${concatMapStringsSep ", " uLit w.superUsers}]
+ ''}
+
+ ${indentLines 4 w.extraConfig}
+ '';
+ wikiConfigFile = name: wiki: pkgs.writeText "${name}.py" (wikiConfig name wiki);
+
+in
+{
+ options.services.moinmoin = with types; {
+ enable = mkEnableOption "MoinMoin Wiki Engine";
+
+ webServer = mkOption {
+ type = enum [ "nginx-gunicorn" "gunicorn" "none" ];
+ default = "nginx-gunicorn";
+ example = "none";
+ description = ''
+ Which web server to use to serve the wiki.
+ Use none if you want to configure this yourself.
+ '';
+ };
+
+ gunicorn.workers = mkOption {
+ type = ints.positive;
+ default = 3;
+ example = 10;
+ description = ''
+ The number of worker processes for handling requests.
+ '';
+ };
+
+ wikis = mkOption {
+ type = attrsOf (submodule ({ name, ... }: {
+ options = {
+ siteName = mkOption {
+ type = str;
+ default = "Untitled Wiki";
+ example = "ExampleWiki";
+ description = ''
+ Short description of your wiki site, displayed below the logo on each page, and
+ used in RSS documents as the channel title.
+ '';
+ };
+
+ webHost = mkOption {
+ type = str;
+ description = "Host part of the wiki URL. If undefined, the name of the attribute set will be used.";
+ example = "wiki.example.org";
+ };
+
+ webLocation = mkOption {
+ type = str;
+ default = "/";
+ example = "/moin";
+ description = "Location part of the wiki URL.";
+ };
+
+ frontPage = mkOption {
+ type = str;
+ default = "LanguageSetup";
+ example = "FrontPage";
+ description = ''
+ Front page name. Set this to something like FrontPage once languages are
+ configured.
+ '';
+ };
+
+ superUsers = mkOption {
+ type = listOf str;
+ default = [];
+ example = [ "elvis" ];
+ description = ''
+ List of trusted user names with wiki system administration super powers.
+
+ Please note that accounts for these users need to be created using the moin command-line utility, e.g.:
+ moin-WIKINAME account create --name=NAME --email=EMAIL --password=PASSWORD .
+ '';
+ };
+
+ languageDefault = mkOption {
+ type = str;
+ default = "en";
+ example = "de";
+ description = "The ISO-639-1 name of the main wiki language. Languages that MoinMoin does not support are ignored.";
+ };
+
+ extraConfig = mkOption {
+ type = lines;
+ default = "";
+ example = ''
+ show_hosts = True
+ search_results_per_page = 100
+ acl_rights_default = u"Known:read,write,delete,revert All:read"
+ logo_string = u"\U0001f639 "
+ theme_default = u"modernized"
+
+ user_checkbox_defaults = {'show_page_trail': 0, 'edit_on_doubleclick': 0}
+ navi_bar = [u'SomePage'] + multiconfig.DefaultConfig.navi_bar
+ actions_excluded = multiconfig.DefaultConfig.actions_excluded + ['newaccount']
+
+ mail_smarthost = "mail.example.org"
+ mail_from = u"Example.Org Wiki "
+ '';
+ description = ''
+ Additional configuration to be appended verbatim to this wiki's config.
+
+ See for documentation.
+ '';
+ };
+
+ };
+ config = {
+ webHost = mkDefault name;
+ };
+ }));
+ example = literalExample ''
+ {
+ "mywiki" = {
+ siteName = "Example Wiki";
+ webHost = "wiki.example.org";
+ superUsers = [ "admin" ];
+ frontPage = "Index";
+ extraConfig = "page_category_regex = ur'(?P(Category|Kategorie)(?P(?!Template)\S+))'"
+ };
+ }
+ '';
+ description = ''
+ Configurations of the individual wikis. Attribute names must be valid Python
+ identifiers of the form [A-Za-z_][A-Za-z0-9_]* .
+
+ For every attribute WIKINAME , a helper script
+ moin-WIKINAME is created which runs the
+ moin command under the moin user (to avoid
+ file ownership issues) and with the right configuration directory passed to it.
+ '';
+ };
+ };
+
+ config = mkIf cfg.enable {
+ assertions = forEach (attrNames cfg.wikis) (wname:
+ { assertion = builtins.match "[A-Za-z_][A-Za-z0-9_]*" wname != null;
+ message = "${wname} is not valid Python identifier";
+ }
+ );
+
+ users.users = {
+ moin = {
+ description = "MoinMoin wiki";
+ home = dataDir;
+ group = group;
+ isSystemUser = true;
+ };
+ };
+
+ users.groups = {
+ moin = {
+ members = mkIf usingNginx [ config.services.nginx.user ];
+ };
+ };
+
+ environment.systemPackages = [ pkg ] ++ map moinCliWrapper (attrNames cfg.wikis);
+
+ systemd.services = mkIf usingGunicorn
+ (flip mapAttrs' cfg.wikis (wikiIdent: wiki:
+ nameValuePair "moin-${wikiIdent}"
+ {
+ description = "MoinMoin wiki ${wikiIdent} - gunicorn process";
+ wantedBy = [ "multi-user.target" ];
+ after = [ "network.target" ];
+ restartIfChanged = true;
+ restartTriggers = [ (wikiConfigFile wikiIdent wiki) ];
+
+ environment = let
+ penv = python.buildEnv.override {
+ # setuptools: https://github.com/benoitc/gunicorn/issues/1716
+ extraLibs = [ python.pkgs.gevent python.pkgs.setuptools pkg ];
+ };
+ in {
+ PYTHONPATH = "${dataDir}/${wikiIdent}/config:${penv}/${python.sitePackages}";
+ };
+
+ preStart = ''
+ umask 0007
+ rm -rf ${dataDir}/${wikiIdent}/underlay
+ cp -r ${pkg}/share/moin/underlay ${dataDir}/${wikiIdent}/
+ chmod -R u+w ${dataDir}/${wikiIdent}/underlay
+ '';
+
+ serviceConfig = {
+ User = user;
+ Group = group;
+ WorkingDirectory = "${dataDir}/${wikiIdent}";
+ ExecStart = ''${python.pkgs.gunicorn}/bin/gunicorn moin_wsgi \
+ --name gunicorn-${wikiIdent} \
+ --workers ${toString cfg.gunicorn.workers} \
+ --worker-class gevent \
+ --bind unix:/run/moin/${wikiIdent}/gunicorn.sock
+ '';
+
+ Restart = "on-failure";
+ RestartSec = "2s";
+ StartLimitIntervalSec = "30s";
+
+ StateDirectory = "moin/${wikiIdent}";
+ StateDirectoryMode = "0750";
+ RuntimeDirectory = "moin/${wikiIdent}";
+ RuntimeDirectoryMode = "0750";
+
+ NoNewPrivileges = true;
+ ProtectSystem = "strict";
+ ProtectHome = true;
+ PrivateTmp = true;
+ PrivateDevices = true;
+ PrivateNetwork = true;
+ ProtectKernelTunables = true;
+ ProtectKernelModules = true;
+ ProtectControlGroups = true;
+ RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
+ RestrictNamespaces = true;
+ LockPersonality = true;
+ MemoryDenyWriteExecute = true;
+ RestrictRealtime = true;
+ };
+ }
+ ));
+
+ services.nginx = mkIf usingNginx {
+ enable = true;
+ virtualHosts = flip mapAttrs' cfg.wikis (name: w: nameValuePair w.webHost {
+ forceSSL = mkDefault true;
+ enableACME = mkDefault true;
+ locations."${w.webLocation}" = {
+ extraConfig = ''
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header X-Forwarded-Host $host;
+ proxy_set_header X-Forwarded-Server $host;
+
+ proxy_pass http://unix:/run/moin/${name}/gunicorn.sock;
+ '';
+ };
+ });
+ };
+
+ systemd.tmpfiles.rules = [
+ "d /run/moin 0750 ${user} ${group} - -"
+ "d ${dataDir} 0550 ${user} ${group} - -"
+ ]
+ ++ (concatLists (flip mapAttrsToList cfg.wikis (wikiIdent: wiki: [
+ "d ${dataDir}/${wikiIdent} 0750 ${user} ${group} - -"
+ "d ${dataDir}/${wikiIdent}/config 0550 ${user} ${group} - -"
+ "L+ ${dataDir}/${wikiIdent}/config/wikiconfig.py - - - - ${wikiConfigFile wikiIdent wiki}"
+ # needed in order to pass module name to gunicorn
+ "L+ ${dataDir}/${wikiIdent}/config/moin_wsgi.py - - - - ${pkg}/share/moin/server/moin.wsgi"
+ # seed data files
+ "C ${dataDir}/${wikiIdent}/data 0770 ${user} ${group} - ${pkg}/share/moin/data"
+ # fix nix store permissions
+ "Z ${dataDir}/${wikiIdent}/data 0770 ${user} ${group} - -"
+ ])));
+ };
+
+ meta.maintainers = with lib.maintainers; [ b42 ];
+}
diff --git a/nixos/modules/services/web-apps/moodle.nix b/nixos/modules/services/web-apps/moodle.nix
index 7f71b86a6fe..ac59f9e0012 100644
--- a/nixos/modules/services/web-apps/moodle.nix
+++ b/nixos/modules/services/web-apps/moodle.nix
@@ -45,6 +45,8 @@ let
$CFG->aspellpath = '${pkgs.aspell}/bin/aspell';
$CFG->pathtodot = '${pkgs.graphviz}/bin/dot';
+ ${cfg.extraConfig}
+
require_once('${cfg.package}/share/moodle/lib/setup.php');
// There is no php closing tag in this file,
@@ -172,6 +174,19 @@ in
for details on configuration directives.
'';
};
+
+ extraConfig = mkOption {
+ type = types.lines;
+ default = "";
+ description = ''
+ Any additional text to be appended to the config.php
+ configuration file. This is a PHP script. For configuration
+ details, see .
+ '';
+ example = ''
+ $CFG->disableupdatenotifications = true;
+ '';
+ };
};
# implementation
@@ -294,7 +309,9 @@ in
systemd.services.httpd.after = optional mysqlLocal "mysql.service" ++ optional pgsqlLocal "postgresql.service";
- users.users.${user}.group = group;
-
+ users.users.${user} = {
+ group = group;
+ isSystemUser = true;
+ };
};
}
diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix
index 5f5469e4850..b67f0880878 100644
--- a/nixos/modules/services/web-apps/nextcloud.nix
+++ b/nixos/modules/services/web-apps/nextcloud.nix
@@ -120,16 +120,24 @@ in {
'';
};
- poolConfig = mkOption {
- type = types.lines;
- 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
+ poolSettings = 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 nextcloud's PHP pool. See the documentation on php-fpm.conf for details on configuration directives.
'';
+ };
+
+ poolConfig = mkOption {
+ type = types.nullOr types.lines;
+ default = null;
description = ''
Options for nextcloud's PHP pool. See the documentation on php-fpm.conf for details on configuration directives.
'';
@@ -287,6 +295,11 @@ in {
message = "Please specify exactly one of adminpass or adminpassFile";
}
];
+
+ 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.
+ '';
}
{ systemd.timers.nextcloud-cron = {
@@ -377,6 +390,7 @@ in {
in {
wantedBy = [ "multi-user.target" ];
before = [ "phpfpm-nextcloud.service" ];
+ path = [ occ ];
script = ''
chmod og+x ${cfg.home}
ln -sf ${pkgs.nextcloud}/apps ${cfg.home}/
@@ -423,7 +437,7 @@ in {
settings = mapAttrs (name: mkDefault) {
"listen.owner" = "nginx";
"listen.group" = "nginx";
- };
+ } // cfg.poolSettings;
extraConfig = cfg.poolConfig;
};
};
@@ -454,7 +468,7 @@ in {
};
"/" = {
priority = 200;
- extraConfig = "rewrite ^ /index.php$request_uri;";
+ extraConfig = "rewrite ^ /index.php;";
};
"~ ^/store-apps" = {
priority = 201;
@@ -481,6 +495,7 @@ in {
extraConfig = ''
include ${config.services.nginx.package}/conf/fastcgi.conf;
fastcgi_split_path_info ^(.+\.php)(\\/.*)$;
+ try_files $fastcgi_script_name =404;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS ${if cfg.https then "on" else "off"};
fastcgi_param modHeadersAvailable true;
@@ -518,6 +533,7 @@ in {
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
add_header Referrer-Policy no-referrer;
+ add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
client_max_body_size ${cfg.maxUploadSize};
diff --git a/nixos/modules/services/web-apps/nexus.nix b/nixos/modules/services/web-apps/nexus.nix
index 3af97e146d0..d4d507362c9 100644
--- a/nixos/modules/services/web-apps/nexus.nix
+++ b/nixos/modules/services/web-apps/nexus.nix
@@ -68,6 +68,7 @@ in
-Dkaraf.data=${cfg.home}/nexus3
-Djava.io.tmpdir=${cfg.home}/nexus3/tmp
-Dkaraf.startLocalConsole=false
+ -Djava.endorsed.dirs=${cfg.package}/lib/endorsed
'';
description = ''
diff --git a/nixos/modules/services/web-apps/restya-board.nix b/nixos/modules/services/web-apps/restya-board.nix
index f220669c910..2c2f36ac598 100644
--- a/nixos/modules/services/web-apps/restya-board.nix
+++ b/nixos/modules/services/web-apps/restya-board.nix
@@ -216,7 +216,6 @@ in
index index.html index.php;
gzip on;
- gzip_disable "msie6";
gzip_comp_level 6;
gzip_min_length 1100;
@@ -236,7 +235,7 @@ in
locations."/".root = "${runDir}/client";
- locations."~ \.php$" = {
+ locations."~ \\.php$" = {
tryFiles = "$uri =404";
extraConfig = ''
include ${pkgs.nginx}/conf/fastcgi_params;
@@ -247,7 +246,7 @@ in
'';
};
- locations."~* \.(css|js|less|html|ttf|woff|jpg|jpeg|gif|png|bmp|ico)" = {
+ locations."~* \\.(css|js|less|html|ttf|woff|jpg|jpeg|gif|png|bmp|ico)" = {
root = "${runDir}/client";
extraConfig = ''
if (-f $request_filename) {
diff --git a/nixos/modules/services/web-apps/shiori.nix b/nixos/modules/services/web-apps/shiori.nix
new file mode 100644
index 00000000000..1817a203935
--- /dev/null
+++ b/nixos/modules/services/web-apps/shiori.nix
@@ -0,0 +1,50 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+ cfg = config.services.shiori;
+in {
+ options = {
+ services.shiori = {
+ enable = mkEnableOption "Shiori simple bookmarks manager";
+
+ package = mkOption {
+ type = types.package;
+ default = pkgs.shiori;
+ defaultText = "pkgs.shiori";
+ description = "The Shiori package to use.";
+ };
+
+ address = mkOption {
+ type = types.str;
+ default = "";
+ description = ''
+ The IP address on which Shiori will listen.
+ If empty, listens on all interfaces.
+ '';
+ };
+
+ port = mkOption {
+ type = types.port;
+ default = 8080;
+ description = "The port of the Shiori web application";
+ };
+ };
+ };
+
+ config = mkIf cfg.enable {
+ systemd.services.shiori = with cfg; {
+ description = "Shiori simple bookmarks manager";
+ wantedBy = [ "multi-user.target" ];
+
+ serviceConfig = {
+ ExecStart = "${package}/bin/shiori serve --address '${address}' --port '${toString port}'";
+ DynamicUser = true;
+ Environment = "SHIORI_DIR=/var/lib/shiori";
+ StateDirectory = "shiori";
+ };
+ };
+ };
+
+ meta.maintainers = with maintainers; [ minijackson ];
+}
diff --git a/nixos/modules/services/web-apps/trac.nix b/nixos/modules/services/web-apps/trac.nix
new file mode 100644
index 00000000000..207fb857438
--- /dev/null
+++ b/nixos/modules/services/web-apps/trac.nix
@@ -0,0 +1,79 @@
+{ config, lib, pkgs, ... }:
+
+let
+ cfg = config.services.trac;
+
+ inherit (lib) mkEnableOption mkIf mkOption types;
+
+in {
+
+ options = {
+
+ services.trac = {
+ enable = mkEnableOption "Trac service";
+
+ listen = {
+ ip = mkOption {
+ type = types.str;
+ default = "0.0.0.0";
+ description = ''
+ IP address that Trac should listen on.
+ '';
+ };
+
+ port = mkOption {
+ type = types.port;
+ default = 8000;
+ description = ''
+ Listen port for Trac.
+ '';
+ };
+ };
+
+ dataDir = mkOption {
+ default = "/var/lib/trac";
+ type = types.path;
+ description = ''
+ The directory for storing the Trac data.
+ '';
+ };
+
+ openFirewall = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Open ports in the firewall for Trac.
+ '';
+ };
+ };
+
+ };
+
+ config = mkIf cfg.enable {
+
+ systemd.services.trac = {
+ description = "Trac server";
+ wantedBy = [ "multi-user.target" ];
+ serviceConfig = {
+ DynamicUser = true;
+ StateDirectory = baseNameOf cfg.dataDir;
+ ExecStart = ''
+ ${pkgs.trac}/bin/tracd -s \
+ -b ${toString cfg.listen.ip} \
+ -p ${toString cfg.listen.port} \
+ ${cfg.dataDir}
+ '';
+ };
+ preStart = ''
+ if [ ! -e ${cfg.dataDir}/VERSION ]; then
+ ${pkgs.trac}/bin/trac-admin ${cfg.dataDir} initenv Trac "sqlite:db/trac.db"
+ fi
+ '';
+ };
+
+ networking.firewall = mkIf cfg.openFirewall {
+ allowedTCPPorts = [ cfg.listen.port ];
+ };
+
+ };
+}
diff --git a/nixos/modules/services/web-apps/tt-rss.nix b/nixos/modules/services/web-apps/tt-rss.nix
index abe4748591e..b92e3449894 100644
--- a/nixos/modules/services/web-apps/tt-rss.nix
+++ b/nixos/modules/services/web-apps/tt-rss.nix
@@ -548,7 +548,7 @@ let
index = "index.php";
};
- locations."~ \.php$" = {
+ locations."~ \\.php$" = {
extraConfig = ''
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:${config.services.phpfpm.pools.${cfg.pool}.socket};
diff --git a/nixos/modules/services/web-apps/virtlyst.nix b/nixos/modules/services/web-apps/virtlyst.nix
index e5c0bff2168..37bdbb0e3b4 100644
--- a/nixos/modules/services/web-apps/virtlyst.nix
+++ b/nixos/modules/services/web-apps/virtlyst.nix
@@ -54,6 +54,7 @@ in
home = stateDir;
createHome = true;
group = mkIf config.virtualisation.libvirtd.enable "libvirtd";
+ isSystemUser = true;
};
systemd.services.virtlyst = {
diff --git a/nixos/modules/services/web-apps/wordpress.nix b/nixos/modules/services/web-apps/wordpress.nix
index 88475437058..f1370c2854b 100644
--- a/nixos/modules/services/web-apps/wordpress.nix
+++ b/nixos/modules/services/web-apps/wordpress.nix
@@ -61,6 +61,19 @@ let
?>
'';
+ secretsVars = [ "AUTH_KEY" "SECURE_AUTH_KEY" "LOOGGED_IN_KEY" "NONCE_KEY" "AUTH_SALT" "SECURE_AUTH_SALT" "LOGGED_IN_SALT" "NONCE_SALT" ];
+ secretsScript = hostStateDir: ''
+ if ! test -e "${hostStateDir}/secret-keys.php"; then
+ umask 0177
+ echo "> "${hostStateDir}/secret-keys.php"
+ ${concatMapStringsSep "\n" (var: ''
+ echo "define('${var}', '`tr -dc a-zA-Z0-9 > "${hostStateDir}/secret-keys.php"
+ '') secretsVars}
+ echo "?>" >> "${hostStateDir}/secret-keys.php"
+ chmod 440 "${hostStateDir}/secret-keys.php"
+ fi
+ '';
+
siteOpts = { lib, name, ... }:
{
options = {
@@ -340,14 +353,7 @@ in
wantedBy = [ "multi-user.target" ];
before = [ "phpfpm-wordpress-${hostName}.service" ];
after = optional cfg.database.createLocally "mysql.service";
- script = ''
- if ! test -e "${stateDir hostName}/secret-keys.php"; then
- echo "> "${stateDir hostName}/secret-keys.php"
- ${pkgs.curl}/bin/curl -s https://api.wordpress.org/secret-key/1.1/salt/ >> "${stateDir hostName}/secret-keys.php"
- echo "?>" >> "${stateDir hostName}/secret-keys.php"
- chmod 440 "${stateDir hostName}/secret-keys.php"
- fi
- '';
+ script = secretsScript (stateDir hostName);
serviceConfig = {
Type = "oneshot";
@@ -361,7 +367,10 @@ in
})
];
- users.users.${user}.group = group;
+ users.users.${user} = {
+ group = group;
+ isSystemUser = true;
+ };
};
}
diff --git a/nixos/modules/services/web-apps/zabbix.nix b/nixos/modules/services/web-apps/zabbix.nix
index dac243b20e9..09538726b7c 100644
--- a/nixos/modules/services/web-apps/zabbix.nix
+++ b/nixos/modules/services/web-apps/zabbix.nix
@@ -179,7 +179,7 @@ in
'' + optionalString (cfg.database.type == "oracle") ''
extension=${pkgs.phpPackages.oci8}/lib/php/extensions/oci8.so
'';
- phpEnv.ZABBIX_CONFIG = zabbixConfig;
+ phpEnv.ZABBIX_CONFIG = "${zabbixConfig}";
settings = {
"listen.owner" = config.services.httpd.user;
"listen.group" = config.services.httpd.group;
@@ -197,7 +197,7 @@ in
- SetHandler "proxy:unix:${fpm.listen}|fcgi://localhost/"
+ SetHandler "proxy:unix:${fpm.socket}|fcgi://localhost/"
AllowOverride all
diff --git a/nixos/modules/services/web-servers/apache-httpd/default.nix b/nixos/modules/services/web-servers/apache-httpd/default.nix
index 098160ee369..f5a6051b4b5 100644
--- a/nixos/modules/services/web-servers/apache-httpd/default.nix
+++ b/nixos/modules/services/web-servers/apache-httpd/default.nix
@@ -6,13 +6,15 @@ let
mainCfg = config.services.httpd;
+ runtimeDir = "/run/httpd";
+
httpd = mainCfg.package.out;
httpdConf = mainCfg.configFile;
php = mainCfg.phpPackage.override { apacheHttpd = httpd.dev; /* otherwise it only gets .out */ };
- phpMajorVersion = head (splitString "." php.version);
+ phpMajorVersion = lib.versions.major (lib.getVersion php);
mod_perl = pkgs.apacheHttpdPackages.mod_perl.override { apacheHttpd = httpd; };
@@ -27,103 +29,29 @@ let
listenToString = l: "${l.ip}:${toString l.port}";
- extraModules = attrByPath ["extraModules"] [] mainCfg;
- extraForeignModules = filter isAttrs extraModules;
- extraApacheModules = filter isString extraModules;
-
-
- makeServerInfo = cfg: {
- # Canonical name must not include a trailing slash.
- canonicalNames =
- let defaultPort = (head (defaultListen cfg)).port; in
- map (port:
- (if cfg.enableSSL then "https" else "http") + "://" +
- cfg.hostName +
- (if port != defaultPort then ":${toString port}" else "")
- ) (map (x: x.port) (getListen cfg));
-
- # Admin address: inherit from the main server if not specified for
- # a virtual host.
- adminAddr = if cfg.adminAddr != null then cfg.adminAddr else mainCfg.adminAddr;
-
- vhostConfig = cfg;
- serverConfig = mainCfg;
- fullConfig = config; # machine config
- };
-
-
allHosts = [mainCfg] ++ mainCfg.virtualHosts;
-
- callSubservices = serverInfo: defs:
- let f = svc:
- let
- svcFunction =
- if svc ? function then svc.function
- # instead of using serviceType="mediawiki"; you can copy mediawiki.nix to any location outside nixpkgs, modify it at will, and use serviceExpression=./mediawiki.nix;
- else if svc ? serviceExpression then import (toString svc.serviceExpression)
- else import (toString "${toString ./.}/${if svc ? serviceType then svc.serviceType else svc.serviceName}.nix");
- config = (evalModules
- { modules = [ { options = res.options; config = svc.config or svc; } ];
- check = false;
- }).config;
- defaults = {
- extraConfig = "";
- extraModules = [];
- extraModulesPre = [];
- extraPath = [];
- extraServerPath = [];
- globalEnvVars = [];
- robotsEntries = "";
- startupScript = "";
- enablePHP = false;
- enablePerl = false;
- phpOptions = "";
- options = {};
- documentRoot = null;
- };
- res = defaults // svcFunction { inherit config lib pkgs serverInfo php; };
- in res;
- in map f defs;
-
-
- # !!! callSubservices is expensive
- subservicesFor = cfg: callSubservices (makeServerInfo cfg) cfg.extraSubservices;
-
- mainSubservices = subservicesFor mainCfg;
-
- allSubservices = mainSubservices ++ concatMap subservicesFor mainCfg.virtualHosts;
-
-
enableSSL = any (vhost: vhost.enableSSL) allHosts;
+ enableUserDir = any (vhost: vhost.enableUserDir) allHosts;
- # Names of modules from ${httpd}/modules that we want to load.
- apacheModules =
- [ # HTTP authentication mechanisms: basic and digest.
- "auth_basic" "auth_digest"
-
- # Authentication: is the user who he claims to be?
- "authn_file" "authn_dbm" "authn_anon" "authn_core"
-
- # Authorization: is the user allowed access?
- "authz_user" "authz_groupfile" "authz_host" "authz_core"
-
- # Other modules.
- "ext_filter" "include" "log_config" "env" "mime_magic"
- "cern_meta" "expires" "headers" "usertrack" /* "unique_id" */ "setenvif"
- "mime" "dav" "status" "autoindex" "asis" "info" "dav_fs"
- "vhost_alias" "negotiation" "dir" "imagemap" "actions" "speling"
- "userdir" "alias" "rewrite" "proxy" "proxy_http"
- "unixd" "cache" "cache_disk" "slotmem_shm" "socache_shmcb"
+ # NOTE: generally speaking order of modules is very important
+ modules =
+ [ # required apache modules our httpd service cannot run without
+ "authn_core" "authz_core"
+ "log_config"
+ "mime" "autoindex" "negotiation" "dir"
+ "alias" "rewrite"
+ "unixd" "slotmem_shm" "socache_shmcb"
"mpm_${mainCfg.multiProcessingModule}"
-
- # For compatibility with old configurations, the new module mod_access_compat is provided.
- "access_compat"
]
++ (if mainCfg.multiProcessingModule == "prefork" then [ "cgi" ] else [ "cgid" ])
++ optional enableSSL "ssl"
- ++ extraApacheModules;
+ ++ optional enableUserDir "userdir"
+ ++ optional mainCfg.enableMellon { name = "auth_mellon"; path = "${pkgs.apacheHttpdPackages.mod_auth_mellon}/modules/mod_auth_mellon.so"; }
+ ++ optional mainCfg.enablePHP { name = "php${phpMajorVersion}"; path = "${php}/modules/libphp${phpMajorVersion}.so"; }
+ ++ optional mainCfg.enablePerl { name = "perl"; path = "${mod_perl}/modules/mod_perl.so"; }
+ ++ mainCfg.extraModules;
allDenied = "Require all denied";
@@ -147,20 +75,22 @@ let
browserHacks = ''
- BrowserMatch "Mozilla/2" nokeepalive
- BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
- BrowserMatch "RealPlayer 4\.0" force-response-1.0
- BrowserMatch "Java/1\.0" force-response-1.0
- BrowserMatch "JDK/1\.0" force-response-1.0
- BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
- BrowserMatch "^WebDrive" redirect-carefully
- BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully
- BrowserMatch "^gnome-vfs" redirect-carefully
+
+ BrowserMatch "Mozilla/2" nokeepalive
+ BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
+ BrowserMatch "RealPlayer 4\.0" force-response-1.0
+ BrowserMatch "Java/1\.0" force-response-1.0
+ BrowserMatch "JDK/1\.0" force-response-1.0
+ BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
+ BrowserMatch "^WebDrive" redirect-carefully
+ BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully
+ BrowserMatch "^gnome-vfs" redirect-carefully
+
'';
sslConf = ''
- SSLSessionCache shmcb:${mainCfg.stateDir}/ssl_scache(512000)
+ SSLSessionCache shmcb:${runtimeDir}/ssl_scache(512000)
Mutex posixsem
@@ -188,13 +118,18 @@ let
perServerConf = isMainServer: cfg: let
- serverInfo = makeServerInfo cfg;
-
- subservices = callSubservices serverInfo cfg.extraSubservices;
+ # Canonical name must not include a trailing slash.
+ canonicalNames =
+ let defaultPort = (head (defaultListen cfg)).port; in
+ map (port:
+ (if cfg.enableSSL then "https" else "http") + "://" +
+ cfg.hostName +
+ (if port != defaultPort then ":${toString port}" else "")
+ ) (map (x: x.port) (getListen cfg));
maybeDocumentRoot = fold (svc: acc:
if acc == null then svc.documentRoot else assert svc.documentRoot == null; acc
- ) null ([ cfg ] ++ subservices);
+ ) null ([ cfg ]);
documentRoot = if maybeDocumentRoot != null then maybeDocumentRoot else
pkgs.runCommand "empty" { preferLocalBuild = true; } "mkdir -p $out";
@@ -209,15 +144,11 @@ let
'';
- robotsTxt =
- concatStringsSep "\n" (filter (x: x != "") (
- # If this is a vhost, the include the entries for the main server as well.
- (if isMainServer then [] else [mainCfg.robotsEntries] ++ map (svc: svc.robotsEntries) mainSubservices)
- ++ [cfg.robotsEntries]
- ++ (map (svc: svc.robotsEntries) subservices)));
+ # If this is a vhost, the include the entries for the main server as well.
+ robotsTxt = concatStringsSep "\n" (filter (x: x != "") ([ cfg.robotsEntries ] ++ lib.optional (!isMainServer) mainCfg.robotsEntries));
in ''
- ${concatStringsSep "\n" (map (n: "ServerName ${n}") serverInfo.canonicalNames)}
+ ${concatStringsSep "\n" (map (n: "ServerName ${n}") canonicalNames)}
${concatMapStrings (alias: "ServerAlias ${alias}\n") cfg.serverAliases}
@@ -292,8 +223,6 @@ let
in concatMapStrings makeDirConf cfg.servedDirs
}
- ${concatMapStrings (svc: svc.extraConfig) subservices}
-
${cfg.extraConfig}
'';
@@ -302,13 +231,13 @@ let
ServerRoot ${httpd}
- DefaultRuntimeDir ${mainCfg.stateDir}/runtime
+ DefaultRuntimeDir ${runtimeDir}/runtime
- PidFile ${mainCfg.stateDir}/httpd.pid
+ PidFile ${runtimeDir}/httpd.pid
${optionalString (mainCfg.multiProcessingModule != "prefork") ''
# mod_cgid requires this.
- ScriptSock ${mainCfg.stateDir}/cgisock
+ ScriptSock ${runtimeDir}/cgisock
''}
@@ -327,16 +256,12 @@ let
Group ${mainCfg.group}
${let
- load = {name, path}: "LoadModule ${name}_module ${path}\n";
- allModules =
- concatMap (svc: svc.extraModulesPre) allSubservices
- ++ map (name: {inherit name; path = "${httpd}/modules/mod_${name}.so";}) apacheModules
- ++ optional mainCfg.enableMellon { name = "auth_mellon"; path = "${pkgs.apacheHttpdPackages.mod_auth_mellon}/modules/mod_auth_mellon.so"; }
- ++ optional enablePHP { name = "php${phpMajorVersion}"; path = "${php}/modules/libphp${phpMajorVersion}.so"; }
- ++ optional enablePerl { name = "perl"; path = "${mod_perl}/modules/mod_perl.so"; }
- ++ concatMap (svc: svc.extraModules) allSubservices
- ++ extraForeignModules;
- in concatMapStrings load (unique allModules)
+ mkModule = module:
+ if isString module then { name = module; path = "${httpd}/modules/mod_${module}.so"; }
+ else if isAttrs module then { inherit (module) name path; }
+ else throw "Expecting either a string or attribute set including a name and path.";
+ in
+ concatMapStringsSep "\n" (module: "LoadModule ${module.name}_module ${module.path}") (unique (map mkModule modules))
}
AddHandler type-map var
@@ -385,17 +310,10 @@ let
}
'';
-
- enablePHP = mainCfg.enablePHP || any (svc: svc.enablePHP) allSubservices;
-
- enablePerl = mainCfg.enablePerl || any (svc: svc.enablePerl) allSubservices;
-
-
# Generate the PHP configuration file. Should probably be factored
# out into a separate module.
phpIni = pkgs.runCommand "php.ini"
- { options = concatStringsSep "\n"
- ([ mainCfg.phpOptions ] ++ (map (svc: svc.phpOptions) allSubservices));
+ { options = mainCfg.phpOptions;
preferLocalBuild = true;
}
''
@@ -408,6 +326,11 @@ 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.")
+ ];
+
###### interface
options = {
@@ -453,7 +376,12 @@ in
extraModules = mkOption {
type = types.listOf types.unspecified;
default = [];
- example = literalExample ''[ "proxy_connect" { name = "php5"; path = "''${pkgs.php}/modules/libphp5.so"; } ]'';
+ example = literalExample ''
+ [
+ "proxy_connect"
+ { name = "jk"; path = "''${pkgs.tomcat_connectors}/modules/mod_jk.so"; }
+ ]
+ '';
description = ''
Additional Apache modules to be used. These can be
specified as a string in the case of modules distributed
@@ -500,16 +428,6 @@ in
'';
};
- stateDir = mkOption {
- type = types.path;
- default = "/run/httpd";
- description = ''
- Directory for Apache's transient runtime state (such as PID
- files). It is created automatically. Note that the default,
- /run/httpd , is deleted at boot time.
- '';
- };
-
virtualHosts = mkOption {
type = types.listOf (types.submodule (
{ options = import ./per-server-options.nix {
@@ -637,8 +555,6 @@ in
message = "SSL is enabled for httpd, but sslServerCert and/or sslServerKey haven't been specified."; }
];
- warnings = map (cfg: "apache-httpd's extraSubservices option is deprecated. Most existing subservices have been ported to the NixOS module system. Please update your configuration accordingly.") (lib.filter (cfg: cfg.extraSubservices != []) allHosts);
-
users.users = optionalAttrs (mainCfg.user == "wwwrun") (singleton
{ name = "wwwrun";
group = mainCfg.group;
@@ -651,7 +567,7 @@ in
gid = config.ids.gids.wwwrun;
});
- environment.systemPackages = [httpd] ++ concatMap (svc: svc.extraPath) allSubservices;
+ environment.systemPackages = [httpd];
services.httpd.phpOptions =
''
@@ -666,6 +582,28 @@ in
date.timezone = "${config.time.timeZone}"
'';
+ services.httpd.extraModules = mkBefore [
+ # HTTP authentication mechanisms: basic and digest.
+ "auth_basic" "auth_digest"
+
+ # Authentication: is the user who he claims to be?
+ "authn_file" "authn_dbm" "authn_anon"
+
+ # Authorization: is the user allowed access?
+ "authz_user" "authz_groupfile" "authz_host"
+
+ # Other modules.
+ "ext_filter" "include" "env" "mime_magic"
+ "cern_meta" "expires" "headers" "usertrack" "setenvif"
+ "dav" "status" "asis" "info" "dav_fs"
+ "vhost_alias" "imagemap" "actions" "speling"
+ "proxy" "proxy_http"
+ "cache" "cache_disk"
+
+ # For compatibility with old configurations, the new module mod_access_compat is provided.
+ "access_compat"
+ ];
+
systemd.services.httpd =
{ description = "Apache HTTPD";
@@ -674,22 +612,14 @@ in
path =
[ httpd pkgs.coreutils pkgs.gnugrep ]
- ++ optional enablePHP pkgs.system-sendmail # Needed for PHP's mail() function.
- ++ concatMap (svc: svc.extraServerPath) allSubservices;
+ ++ optional mainCfg.enablePHP pkgs.system-sendmail; # Needed for PHP's mail() function.
environment =
- optionalAttrs enablePHP { PHPRC = phpIni; }
- // optionalAttrs mainCfg.enableMellon { LD_LIBRARY_PATH = "${pkgs.xmlsec}/lib"; }
- // (listToAttrs (concatMap (svc: svc.globalEnvVars) allSubservices));
+ optionalAttrs mainCfg.enablePHP { PHPRC = phpIni; }
+ // optionalAttrs mainCfg.enableMellon { LD_LIBRARY_PATH = "${pkgs.xmlsec}/lib"; };
preStart =
''
- mkdir -m 0750 -p ${mainCfg.stateDir}
- [ $(id -u) != 0 ] || chown root.${mainCfg.group} ${mainCfg.stateDir}
-
- mkdir -m 0750 -p "${mainCfg.stateDir}/runtime"
- [ $(id -u) != 0 ] || chown root.${mainCfg.group} "${mainCfg.stateDir}/runtime"
-
mkdir -m 0700 -p ${mainCfg.logDir}
# Get rid of old semaphores. These tend to accumulate across
@@ -698,21 +628,18 @@ in
for i in $(${pkgs.utillinux}/bin/ipcs -s | grep ' ${mainCfg.user} ' | cut -f2 -d ' '); do
${pkgs.utillinux}/bin/ipcrm -s $i
done
-
- # Run the startup hooks for the subservices.
- for i in ${toString (map (svn: svn.startupScript) allSubservices)}; do
- echo Running Apache startup hook $i...
- $i
- done
'';
serviceConfig.ExecStart = "@${httpd}/bin/httpd httpd -f ${httpdConf}";
serviceConfig.ExecStop = "${httpd}/bin/httpd -f ${httpdConf} -k graceful-stop";
serviceConfig.ExecReload = "${httpd}/bin/httpd -f ${httpdConf} -k graceful";
+ serviceConfig.Group = mainCfg.group;
serviceConfig.Type = "forking";
- serviceConfig.PIDFile = "${mainCfg.stateDir}/httpd.pid";
+ serviceConfig.PIDFile = "${runtimeDir}/httpd.pid";
serviceConfig.Restart = "always";
serviceConfig.RestartSec = "5s";
+ serviceConfig.RuntimeDirectory = "httpd httpd/runtime";
+ serviceConfig.RuntimeDirectoryMode = "0750";
};
};
diff --git a/nixos/modules/services/web-servers/apache-httpd/per-server-options.nix b/nixos/modules/services/web-servers/apache-httpd/per-server-options.nix
index 9d747549c27..c36207d5460 100644
--- a/nixos/modules/services/web-servers/apache-httpd/per-server-options.nix
+++ b/nixos/modules/services/web-servers/apache-httpd/per-server-options.nix
@@ -133,12 +133,6 @@ with lib;
'';
};
- extraSubservices = mkOption {
- type = types.listOf types.unspecified;
- default = [];
- description = "Extra subservices to enable in the webserver.";
- };
-
enableUserDir = mkOption {
type = types.bool;
default = false;
diff --git a/nixos/modules/services/web-servers/hitch/default.nix b/nixos/modules/services/web-servers/hitch/default.nix
index a6c4cbea122..1812f225b74 100644
--- a/nixos/modules/services/web-servers/hitch/default.nix
+++ b/nixos/modules/services/web-servers/hitch/default.nix
@@ -102,7 +102,10 @@ with lib;
environment.systemPackages = [ pkgs.hitch ];
- users.users.hitch.group = "hitch";
+ users.users.hitch = {
+ group = "hitch";
+ isSystemUser = true;
+ };
users.groups.hitch = {};
};
}
diff --git a/nixos/modules/services/web-servers/nginx/default.nix b/nixos/modules/services/web-servers/nginx/default.nix
index b94b338fd4a..eb90dae94df 100644
--- a/nixos/modules/services/web-servers/nginx/default.nix
+++ b/nixos/modules/services/web-servers/nginx/default.nix
@@ -61,7 +61,10 @@ let
${optionalString (cfg.httpConfig == "" && cfg.config == "") ''
http {
- include ${cfg.package}/conf/mime.types;
+ # 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;
@@ -94,7 +97,6 @@ let
${optionalString (cfg.recommendedGzipSettings) ''
gzip on;
- gzip_disable "msie6";
gzip_proxied any;
gzip_comp_level 5;
gzip_types
@@ -120,6 +122,14 @@ let
include ${recommendedProxyConfig};
''}
+ ${optionalString (cfg.mapHashBucketSize != null) ''
+ map_hash_bucket_size ${toString cfg.mapHashBucketSize};
+ ''}
+
+ ${optionalString (cfg.mapHashMaxSize != null) ''
+ map_hash_max_size ${toString cfg.mapHashMaxSize};
+ ''}
+
# $connection_upgrade is used for websocket proxying
map $http_upgrade $connection_upgrade {
default upgrade;
@@ -508,6 +518,23 @@ in
'';
};
+ mapHashBucketSize = mkOption {
+ type = types.nullOr (types.enum [ 32 64 128 ]);
+ default = null;
+ description = ''
+ Sets the bucket size for the map variables hash tables. Default
+ value depends on the processor’s cache line size.
+ '';
+ };
+
+ mapHashMaxSize = mkOption {
+ type = types.nullOr types.ints.positive;
+ default = null;
+ description = ''
+ Sets the maximum size of the map variables hash tables.
+ '';
+ };
+
resolver = mkOption {
type = types.submodule {
options = {
diff --git a/nixos/modules/services/web-servers/nginx/location-options.nix b/nixos/modules/services/web-servers/nginx/location-options.nix
index aeb9b1dd79e..2b3749d8a74 100644
--- a/nixos/modules/services/web-servers/nginx/location-options.nix
+++ b/nixos/modules/services/web-servers/nginx/location-options.nix
@@ -1,4 +1,4 @@
-# This file defines the options that can be used both for the Apache
+# This file defines the options that can be used both for the Nginx
# main server configuration, and for the virtual hosts. (The latter
# has additional options that affect the web server as a whole, like
# the user/group to run under.)
@@ -92,4 +92,3 @@ with lib;
};
};
}
-
diff --git a/nixos/modules/services/web-servers/nginx/vhost-options.nix b/nixos/modules/services/web-servers/nginx/vhost-options.nix
index 15b933c984a..7e488f33a41 100644
--- a/nixos/modules/services/web-servers/nginx/vhost-options.nix
+++ b/nixos/modules/services/web-servers/nginx/vhost-options.nix
@@ -1,4 +1,4 @@
-# This file defines the options that can be used both for the Apache
+# This file defines the options that can be used both for the Nginx
# main server configuration, and for the virtual hosts. (The latter
# has additional options that affect the web server as a whole, like
# the user/group to run under.)
diff --git a/nixos/modules/services/web-servers/phpfpm/default.nix b/nixos/modules/services/web-servers/phpfpm/default.nix
index 4ab7e3f0c0a..7698f8c3a26 100644
--- a/nixos/modules/services/web-servers/phpfpm/default.nix
+++ b/nixos/modules/services/web-servers/phpfpm/default.nix
@@ -31,7 +31,7 @@ let
'';
passAsFile = [ "nixDefaults" "phpOptions" ];
} ''
- cat $phpPackage/etc/php.ini $nixDefaultsPath $phpOptionsPath > $out
+ cat ${poolOpts.phpPackage}/etc/php.ini $nixDefaultsPath $phpOptionsPath > $out
'';
poolOpts = { name, ... }:
@@ -69,8 +69,6 @@ let
phpOptions = mkOption {
type = types.lines;
- default = cfg.phpOptions;
- defaultText = "config.services.phpfpm.phpOptions";
description = ''
"Options appended to the PHP configuration file php.ini used for this PHP-FPM pool."
'';
@@ -137,6 +135,7 @@ let
config = {
socket = if poolOpts.listen == "" then "${runtimeDir}/${name}.sock" else poolOpts.listen;
group = mkDefault poolOpts.user;
+ phpOptions = mkBefore cfg.phpOptions;
settings = mapAttrs (name: mkDefault){
listen = poolOpts.socket;
@@ -263,6 +262,7 @@ in {
in {
Slice = "phpfpm.slice";
PrivateDevices = true;
+ PrivateTmp = true;
ProtectSystem = "full";
ProtectHome = true;
# XXX: We need AF_NETLINK to make the sendmail SUID binary from postfix work
diff --git a/nixos/modules/services/web-servers/traefik.nix b/nixos/modules/services/web-servers/traefik.nix
index 8de7df0d446..5b0fc467ea4 100644
--- a/nixos/modules/services/web-servers/traefik.nix
+++ b/nixos/modules/services/web-servers/traefik.nix
@@ -117,6 +117,7 @@ in {
group = "traefik";
home = cfg.dataDir;
createHome = true;
+ isSystemUser = true;
};
users.groups.traefik = {};
diff --git a/nixos/modules/services/web-servers/ttyd.nix b/nixos/modules/services/web-servers/ttyd.nix
new file mode 100644
index 00000000000..01a01d97a23
--- /dev/null
+++ b/nixos/modules/services/web-servers/ttyd.nix
@@ -0,0 +1,196 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+ cfg = config.services.ttyd;
+
+ # Command line arguments for the ttyd daemon
+ args = [ "--port" (toString cfg.port) ]
+ ++ optionals (cfg.socket != null) [ "--interface" cfg.socket ]
+ ++ optionals (cfg.interface != null) [ "--interface" cfg.interface ]
+ ++ [ "--signal" (toString cfg.signal) ]
+ ++ (concatLists (mapAttrsToList (_k: _v: [ "--client-option" "${_k}=${_v}" ]) cfg.clientOptions))
+ ++ [ "--terminal-type" cfg.terminalType ]
+ ++ optionals cfg.checkOrigin [ "--check-origin" ]
+ ++ [ "--max-clients" (toString cfg.maxClients) ]
+ ++ optionals (cfg.indexFile != null) [ "--index" cfg.indexFile ]
+ ++ optionals cfg.enableIPv6 [ "--ipv6" ]
+ ++ optionals cfg.enableSSL [ "--ssl-cert" cfg.certFile
+ "--ssl-key" cfg.keyFile
+ "--ssl-ca" cfg.caFile ]
+ ++ [ "--debug" (toString cfg.logLevel) ];
+
+in
+
+{
+
+ ###### interface
+
+ options = {
+ services.ttyd = {
+ enable = mkEnableOption "ttyd daemon";
+
+ port = mkOption {
+ type = types.int;
+ default = 7681;
+ description = "Port to listen on (use 0 for random port)";
+ };
+
+ socket = mkOption {
+ type = types.nullOr types.path;
+ default = null;
+ example = "/var/run/ttyd.sock";
+ description = "UNIX domain socket path to bind.";
+ };
+
+ interface = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ example = "eth0";
+ description = "Network interface to bind.";
+ };
+
+ username = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ description = "Username for basic authentication.";
+ };
+
+ passwordFile = mkOption {
+ type = types.nullOr types.path;
+ default = null;
+ apply = value: if value == null then null else toString value;
+ description = ''
+ File containing the password to use for basic authentication.
+ For insecurely putting the password in the globally readable store use
+ pkgs.writeText "ttydpw" "MyPassword" .
+ '';
+ };
+
+ signal = mkOption {
+ type = types.ints.u8;
+ default = 1;
+ description = "Signal to send to the command on session close.";
+ };
+
+ clientOptions = mkOption {
+ type = types.attrsOf types.str;
+ default = {};
+ example = literalExample ''{
+ fontSize = "16";
+ fontFamily = "Fira Code";
+
+ }'';
+ description = ''
+ Attribute set of client options for xtermjs.
+
+ '';
+ };
+
+ terminalType = mkOption {
+ type = types.str;
+ default = "xterm-256color";
+ description = "Terminal type to report.";
+ };
+
+ checkOrigin = mkOption {
+ type = types.bool;
+ default = false;
+ description = "Whether to allow a websocket connection from a different origin.";
+ };
+
+ maxClients = mkOption {
+ type = types.int;
+ default = 0;
+ description = "Maximum clients to support (0, no limit)";
+ };
+
+ indexFile = mkOption {
+ type = types.nullOr types.path;
+ default = null;
+ description = "Custom index.html path";
+ };
+
+ enableIPv6 = mkOption {
+ type = types.bool;
+ default = false;
+ description = "Whether or not to enable IPv6 support.";
+ };
+
+ enableSSL = mkOption {
+ type = types.bool;
+ default = false;
+ description = "Whether or not to enable SSL (https) support.";
+ };
+
+ certFile = mkOption {
+ type = types.nullOr types.path;
+ default = null;
+ description = "SSL certificate file path.";
+ };
+
+ keyFile = mkOption {
+ type = types.nullOr types.path;
+ default = null;
+ apply = value: if value == null then null else toString value;
+ description = ''
+ SSL key file path.
+ For insecurely putting the keyFile in the globally readable store use
+ pkgs.writeText "ttydKeyFile" "SSLKEY" .
+ '';
+ };
+
+ caFile = mkOption {
+ type = types.nullOr types.path;
+ default = null;
+ description = "SSL CA file path for client certificate verification.";
+ };
+
+ logLevel = mkOption {
+ type = types.int;
+ default = 7;
+ description = "Set log level.";
+ };
+ };
+ };
+
+ ###### implementation
+
+ config = mkIf cfg.enable {
+
+ assertions =
+ [ { assertion = cfg.enableSSL
+ -> cfg.certFile != null && cfg.keyFile != null && cfg.caFile != null;
+ message = "SSL is enabled for ttyd, but no certFile, keyFile or caFile has been specefied."; }
+ { assertion = ! (cfg.interface != null && cfg.socket != null);
+ message = "Cannot set both interface and socket for ttyd."; }
+ { assertion = (cfg.username != null) == (cfg.passwordFile != null);
+ message = "Need to set both username and passwordFile for ttyd"; }
+ ];
+
+ systemd.services.ttyd = {
+ description = "ttyd Web Server Daemon";
+
+ wantedBy = [ "multi-user.target" ];
+
+ serviceConfig = {
+ # Runs login which needs to be run as root
+ # login: Cannot possibly work without effective root
+ User = "root";
+ };
+
+ script = if cfg.passwordFile != null then ''
+ PASSWORD=$(cat ${escapeShellArg cfg.passwordFile})
+ ${pkgs.ttyd}/bin/ttyd ${lib.escapeShellArgs args} \
+ --credential ${escapeShellArg cfg.username}:"$PASSWORD" \
+ ${pkgs.shadow}/bin/login
+ ''
+ else ''
+ ${pkgs.ttyd}/bin/ttyd ${lib.escapeShellArgs args} \
+ ${pkgs.shadow}/bin/login
+ '';
+ };
+ };
+}
diff --git a/nixos/modules/services/web-servers/unit/default.nix b/nixos/modules/services/web-servers/unit/default.nix
index a4a9d370d64..32f6d475b34 100644
--- a/nixos/modules/services/web-servers/unit/default.nix
+++ b/nixos/modules/services/web-servers/unit/default.nix
@@ -116,6 +116,7 @@ in {
users.users = optionalAttrs (cfg.user == "unit") (singleton {
name = "unit";
group = cfg.group;
+ isSystemUser = true;
});
users.groups = optionalAttrs (cfg.group == "unit") (singleton {
diff --git a/nixos/modules/services/web-servers/varnish/default.nix b/nixos/modules/services/web-servers/varnish/default.nix
index 63f967185c2..01fe3d12917 100644
--- a/nixos/modules/services/web-servers/varnish/default.nix
+++ b/nixos/modules/services/web-servers/varnish/default.nix
@@ -15,8 +15,8 @@ in
package = mkOption {
type = types.package;
- default = pkgs.varnish5;
- defaultText = "pkgs.varnish5";
+ default = pkgs.varnish;
+ defaultText = "pkgs.varnish";
description = ''
The package to use
'';
@@ -48,7 +48,7 @@ in
extraModules = mkOption {
type = types.listOf types.package;
default = [];
- example = literalExample "[ pkgs.varnish5Packages.geoip ]";
+ example = literalExample "[ pkgs.varnishPackages.geoip ]";
description = "
Varnish modules (except 'std').
";
diff --git a/nixos/modules/services/x11/desktop-managers/default.nix b/nixos/modules/services/x11/desktop-managers/default.nix
index dfb84113e13..671a959cdde 100644
--- a/nixos/modules/services/x11/desktop-managers/default.nix
+++ b/nixos/modules/services/x11/desktop-managers/default.nix
@@ -18,7 +18,7 @@ in
# determines the default: later modules (if enabled) are preferred.
# E.g., if Plasma 5 is enabled, it supersedes xterm.
imports = [
- ./none.nix ./xterm.nix ./xfce.nix ./xfce4-14.nix ./plasma5.nix ./lumina.nix
+ ./none.nix ./xterm.nix ./xfce.nix ./plasma5.nix ./lumina.nix
./lxqt.nix ./enlightenment.nix ./gnome3.nix ./kodi.nix ./maxx.nix
./mate.nix ./pantheon.nix ./surf-display.nix
];
diff --git a/nixos/modules/services/x11/desktop-managers/enlightenment.nix b/nixos/modules/services/x11/desktop-managers/enlightenment.nix
index 9914b668709..3745069f6ea 100644
--- a/nixos/modules/services/x11/desktop-managers/enlightenment.nix
+++ b/nixos/modules/services/x11/desktop-managers/enlightenment.nix
@@ -48,10 +48,6 @@ in
services.xserver.desktopManager.session = [
{ name = "Enlightenment";
start = ''
- # Set GTK_DATA_PREFIX so that GTK can find the themes
- export GTK_DATA_PREFIX=${config.system.path}
- # find theme engines
- export GTK_PATH=${config.system.path}/lib/gtk-3.0:${config.system.path}/lib/gtk-2.0
export XDG_MENU_PREFIX=e-
export GST_PLUGIN_PATH="${GST_PLUGIN_PATH}"
diff --git a/nixos/modules/services/x11/desktop-managers/gnome3.nix b/nixos/modules/services/x11/desktop-managers/gnome3.nix
index 71df4e8f0a4..6725595e1cf 100644
--- a/nixos/modules/services/x11/desktop-managers/gnome3.nix
+++ b/nixos/modules/services/x11/desktop-managers/gnome3.nix
@@ -28,6 +28,12 @@ let
(pkg: "cp -rf ${pkg}/share/gsettings-schemas/*/glib-2.0/schemas/*.xml $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas\n")
(defaultPackages ++ cfg.extraGSettingsOverridePackages)}
+ cp -f ${pkgs.gnome3.gnome-shell}/share/gsettings-schemas/*/glib-2.0/schemas/*.gschema.override $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas
+
+ ${optionalString flashbackEnabled ''
+ cp -f ${pkgs.gnome3.gnome-flashback}/share/gsettings-schemas/*/glib-2.0/schemas/*.gschema.override $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas
+ ''}
+
chmod -R a+w $out/share/gsettings-schemas/nixos-gsettings-overrides
cat - > $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas/nixos-defaults.gschema.override <<- EOF
[org.gnome.desktop.background]
@@ -155,10 +161,10 @@ in
environment.systemPackages = cfg.sessionPath;
- environment.variables.GNOME_SESSION_DEBUG = mkIf cfg.debug "1";
+ environment.sessionVariables.GNOME_SESSION_DEBUG = mkIf cfg.debug "1";
# Override GSettings schemas
- environment.variables.NIX_GSETTINGS_OVERRIDES_DIR = "${nixos-gsettings-desktop-schemas}/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas";
+ environment.sessionVariables.NIX_GSETTINGS_OVERRIDES_DIR = "${nixos-gsettings-desktop-schemas}/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas";
# If gnome3 is installed, build vim for gtk3 too.
nixpkgs.config.vim.gui = "gtk3";
@@ -178,6 +184,13 @@ in
enableGnomeKeyring = true;
};
+ systemd.packages = with pkgs.gnome3; [
+ gnome-flashback
+ ] ++ (map
+ (wm: gnome-flashback.mkSystemdTargetForWm {
+ inherit (wm) wmName;
+ }) cfg.flashback.customSessions);
+
services.dbus.packages = [
pkgs.gnome3.gnome-screensaver
];
@@ -209,16 +222,14 @@ in
networking.networkmanager.enable = mkDefault true;
- # Use the correct gnome3 packageSet
- networking.networkmanager.basePackages = {
- inherit (pkgs) networkmanager modemmanager wpa_supplicant crda;
- inherit (pkgs.gnome3) networkmanager-openvpn networkmanager-vpnc
- networkmanager-openconnect networkmanager-fortisslvpn
- networkmanager-iodine networkmanager-l2tp;
- };
-
services.xserver.updateDbusEnvironment = true;
+ # gnome has a custom alert theme but it still
+ # inherits from the freedesktop theme.
+ environment.systemPackages = with pkgs; [
+ sound-theme-freedesktop
+ ];
+
# Needed for themes and backgrounds
environment.pathsToLink = [
"/share" # TODO: https://github.com/NixOS/nixpkgs/issues/47173
@@ -229,6 +240,7 @@ in
services.colord.enable = mkDefault true;
services.gnome3.chrome-gnome-shell.enable = mkDefault true;
services.gnome3.glib-networking.enable = true;
+ services.gnome3.gnome-initial-setup.enable = mkDefault true;
services.gnome3.gnome-remote-desktop.enable = mkDefault true;
services.gnome3.gnome-settings-daemon.enable = true;
services.gnome3.gnome-user-share.enable = mkDefault true;
@@ -236,10 +248,13 @@ in
services.gvfs.enable = true;
services.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true));
services.telepathy.enable = mkDefault true;
- systemd.packages = [ pkgs.gnome3.vino ];
+
+ systemd.packages = with pkgs.gnome3; [ vino gnome-session ];
services.avahi.enable = mkDefault true;
+ xdg.portal.extraPortals = [ pkgs.gnome3.gnome-shell ];
+
services.geoclue2.enable = mkDefault true;
services.geoclue2.enableDemoAgent = false; # GNOME has its own geoclue agent
@@ -263,6 +278,26 @@ in
source-sans-pro
];
+ ## Enable soft realtime scheduling, only supported on wayland ##
+
+ security.wrappers.".gnome-shell-wrapped" = {
+ source = "${pkgs.gnome3.gnome-shell}/bin/.gnome-shell-wrapped";
+ capabilities = "cap_sys_nice=ep";
+ };
+
+ systemd.user.services.gnome-shell-wayland = let
+ gnomeShellRT = with pkgs.gnome3; pkgs.runCommand "gnome-shell-rt" {} ''
+ mkdir -p $out/bin/
+ cp ${gnome-shell}/bin/gnome-shell $out/bin
+ sed -i "s@${gnome-shell}/bin/@${config.security.wrapperDir}/@" $out/bin/gnome-shell
+ '';
+ in {
+ # Note we need to clear ExecStart before overriding it
+ serviceConfig.ExecStart = ["" "${gnomeShellRT}/bin/gnome-shell"];
+ # Do not use the default environment, it provides a broken PATH
+ environment = mkForce {};
+ };
+
# Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/blob/gnome-3-32/elements/core/meta-gnome-core-shell.bst
environment.systemPackages = with pkgs.gnome3; [
adwaita-icon-theme
@@ -274,7 +309,7 @@ in
gnome-shell
gnome-shell-extensions
gnome-themes-extra
- gnome-user-docs
+ pkgs.gnome-user-docs
pkgs.orca
pkgs.glib # for gsettings
pkgs.gnome-menus
@@ -327,10 +362,10 @@ in
# Let nautilus find extensions
# TODO: Create nautilus-with-extensions package
- environment.variables.NAUTILUS_EXTENSION_DIR = "${config.system.path}/lib/nautilus/extensions-3.0";
+ environment.sessionVariables.NAUTILUS_EXTENSION_DIR = "${config.system.path}/lib/nautilus/extensions-3.0";
# Override default mimeapps for nautilus
- environment.variables.XDG_DATA_DIRS = [ "${mimeAppsList}/share" ];
+ environment.sessionVariables.XDG_DATA_DIRS = [ "${mimeAppsList}/share" ];
environment.pathsToLink = [
"/share/nautilus-python/extensions"
diff --git a/nixos/modules/services/x11/desktop-managers/mate.nix b/nixos/modules/services/x11/desktop-managers/mate.nix
index d7a871c9c70..fe63f36cf96 100644
--- a/nixos/modules/services/x11/desktop-managers/mate.nix
+++ b/nixos/modules/services/x11/desktop-managers/mate.nix
@@ -48,12 +48,6 @@ in
name = "mate";
bgSupport = true;
start = ''
- # Set GTK_DATA_PREFIX so that GTK can find the themes
- export GTK_DATA_PREFIX=${config.system.path}
-
- # Find theme engines
- export GTK_PATH=${config.system.path}/lib/gtk-3.0:${config.system.path}/lib/gtk-2.0
-
export XDG_MENU_PREFIX=mate-
# Let caja find extensions
@@ -91,6 +85,7 @@ in
pkgs.gtk3.out
pkgs.shared-mime-info
pkgs.xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
+ pkgs.mate.mate-settings-daemon
];
programs.dconf.enable = true;
@@ -104,7 +99,7 @@ in
services.gnome3.at-spi2-core.enable = true;
services.gnome3.gnome-keyring.enable = true;
services.gnome3.gnome-settings-daemon.enable = true;
- services.gnome3.gnome-settings-daemon.package = pkgs.mate.mate-settings-daemon;
+ services.udev.packages = [ pkgs.mate.mate-settings-daemon ];
services.gvfs.enable = true;
services.upower.enable = config.powerManagement.enable;
diff --git a/nixos/modules/services/x11/desktop-managers/pantheon.nix b/nixos/modules/services/x11/desktop-managers/pantheon.nix
index e313a194c34..80dab135ee2 100644
--- a/nixos/modules/services/x11/desktop-managers/pantheon.nix
+++ b/nixos/modules/services/x11/desktop-managers/pantheon.nix
@@ -79,8 +79,7 @@ in
Using Pantheon without LightDM as a displayManager will break screenlocking from the UI.
'';
- services.xserver.displayManager.lightdm.enable = mkDefault true;
- services.xserver.displayManager.lightdm.greeters.gtk.enable = mkDefault true;
+ services.xserver.displayManager.lightdm.greeters.pantheon.enable = mkDefault true;
# If not set manually Pantheon session cannot be started
# Known issue of https://github.com/NixOS/nixpkgs/pull/43992
@@ -98,10 +97,6 @@ in
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${p}/lib
fi
'') cfg.sessionPath}
-
- # Settings from elementary-default-settings
- export GTK_CSD=1
- export GTK_MODULES=$GTK_MODULES:pantheon-filechooser-module
fi
'';
@@ -114,8 +109,9 @@ in
services.pantheon.files.enable = mkDefault true;
services.tumbler.enable = mkDefault true;
services.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true));
- services.dbus.packages = [
- pkgs.pantheon.switchboard-plug-power
+ services.dbus.packages = with pkgs.pantheon; [
+ switchboard-plug-power
+ elementary-default-settings
];
services.pantheon.contractor.enable = mkDefault true;
services.gnome3.at-spi2-core.enable = true;
@@ -124,7 +120,7 @@ in
# TODO: gnome-keyring's xdg autostarts will still be in the environment (from elementary-session-settings) if disabled forcefully
services.gnome3.gnome-keyring.enable = true;
services.gnome3.gnome-settings-daemon.enable = true;
- services.gnome3.gnome-settings-daemon.package = pkgs.pantheon.elementary-settings-daemon;
+ services.udev.packages = [ pkgs.pantheon.elementary-settings-daemon ];
services.gvfs.enable = true;
services.gnome3.rygel.enable = mkDefault true;
services.gsignond.enable = mkDefault true;
@@ -159,16 +155,16 @@ in
qt5.style = "adwaita";
networking.networkmanager.enable = mkDefault true;
- networking.networkmanager.basePackages =
- { inherit (pkgs) networkmanager modemmanager wpa_supplicant crda;
- inherit (pkgs.gnome3) networkmanager-openvpn networkmanager-vpnc
- networkmanager-openconnect networkmanager-fortisslvpn
- networkmanager-iodine networkmanager-l2tp; };
# Override GSettings schemas
- environment.variables.NIX_GSETTINGS_OVERRIDES_DIR = "${nixos-gsettings-desktop-schemas}/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas";
+ environment.sessionVariables.NIX_GSETTINGS_OVERRIDES_DIR = "${nixos-gsettings-desktop-schemas}/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas";
- environment.variables.GNOME_SESSION_DEBUG = optionalString cfg.debug "1";
+ environment.sessionVariables.GNOME_SESSION_DEBUG = optionalString cfg.debug "1";
+
+ # Settings from elementary-default-settings
+ environment.sessionVariables.GTK_CSD = "1";
+ environment.sessionVariables.GTK_MODULES = "pantheon-filechooser-module";
+ environment.etc."gtk-3.0/settings.ini".source = "${pkgs.pantheon.elementary-default-settings}/etc/gtk-3.0/settings.ini";
environment.pathsToLink = [
# FIXME: modules should link subdirs of `/share` rather than relying on this
diff --git a/nixos/modules/services/x11/desktop-managers/plasma5.nix b/nixos/modules/services/x11/desktop-managers/plasma5.nix
index b10755df4dc..da8bdcb78c4 100644
--- a/nixos/modules/services/x11/desktop-managers/plasma5.nix
+++ b/nixos/modules/services/x11/desktop-managers/plasma5.nix
@@ -27,20 +27,13 @@ in
example = "vlc";
description = "Phonon audio backend to install.";
};
-
- enableQt4Support = mkOption {
- type = types.bool;
- default = true;
- description = ''
- Enable support for Qt 4-based applications. Particularly, install a
- default backend for Phonon.
- '';
- };
-
};
};
+ imports = [
+ (mkRemovedOptionModule [ "services" "xserver" "desktopManager" "plasma5" "enableQt4Support" ] "Phonon no longer supports Qt 4.")
+ ];
config = mkMerge [
(mkIf cfg.enable {
@@ -173,9 +166,7 @@ in
# Phonon audio backend
++ lib.optional (cfg.phononBackend == "gstreamer") libsForQt5.phonon-backend-gstreamer
- ++ lib.optional (cfg.phononBackend == "gstreamer" && cfg.enableQt4Support) pkgs.phonon-backend-gstreamer
++ lib.optional (cfg.phononBackend == "vlc") libsForQt5.phonon-backend-vlc
- ++ lib.optional (cfg.phononBackend == "vlc" && cfg.enableQt4Support) pkgs.phonon-backend-vlc
# Optional hardware support features
++ lib.optionals config.hardware.bluetooth.enable [ bluedevil bluez-qt ]
@@ -183,7 +174,8 @@ in
++ lib.optional config.hardware.pulseaudio.enable plasma-pa
++ lib.optional config.powerManagement.enable powerdevil
++ lib.optional config.services.colord.enable colord-kde
- ++ lib.optionals config.services.samba.enable [ kdenetwork-filesharing pkgs.samba ];
+ ++ lib.optionals config.services.samba.enable [ kdenetwork-filesharing pkgs.samba ]
+ ++ lib.optional config.services.xserver.wacom.enable wacomtablet;
environment.pathsToLink = [
# FIXME: modules should link subdirs of `/share` rather than relying on this
@@ -231,7 +223,6 @@ in
security.pam.services.kdm.enableKwallet = true;
security.pam.services.lightdm.enableKwallet = true;
security.pam.services.sddm.enableKwallet = true;
- security.pam.services.slim.enableKwallet = true;
xdg.portal.enable = true;
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-kde ];
diff --git a/nixos/modules/services/x11/desktop-managers/xfce.nix b/nixos/modules/services/x11/desktop-managers/xfce.nix
index e3249aef50c..0b70ad5f29c 100644
--- a/nixos/modules/services/x11/desktop-managers/xfce.nix
+++ b/nixos/modules/services/x11/desktop-managers/xfce.nix
@@ -7,6 +7,32 @@ let
in
{
+
+ imports = [
+ # added 2019-08-18
+ # needed to preserve some semblance of UI familarity
+ # with original XFCE module
+ (mkRenamedOptionModule
+ [ "services" "xserver" "desktopManager" "xfce4-14" "extraSessionCommands" ]
+ [ "services" "xserver" "displayManager" "sessionCommands" ])
+
+ # added 2019-11-04
+ # xfce4-14 module removed and promoted to xfce.
+ # Needed for configs that used xfce4-14 module to migrate to this one.
+ (mkRenamedOptionModule
+ [ "services" "xserver" "desktopManager" "xfce4-14" "enable" ]
+ [ "services" "xserver" "desktopManager" "xfce" "enable" ])
+ (mkRenamedOptionModule
+ [ "services" "xserver" "desktopManager" "xfce4-14" "noDesktop" ]
+ [ "services" "xserver" "desktopManager" "xfce" "noDesktop" ])
+ (mkRenamedOptionModule
+ [ "services" "xserver" "desktopManager" "xfce4-14" "enableXfwm" ]
+ [ "services" "xserver" "desktopManager" "xfce" "enableXfwm" ])
+ (mkRenamedOptionModule
+ [ "services" "xserver" "desktopManager" "xfce" "extraSessionCommands" ]
+ [ "services" "xserver" "displayManager" "sessionCommands" ])
+ ];
+
options = {
services.xserver.desktopManager.xfce = {
enable = mkOption {
@@ -30,14 +56,6 @@ in
description = "Don't install XFCE desktop components (xfdesktop, panel and notification daemon).";
};
- extraSessionCommands = mkOption {
- default = "";
- type = types.lines;
- description = ''
- Shell commands executed just before XFCE is started.
- '';
- };
-
enableXfwm = mkOption {
type = types.bool;
default = true;
@@ -48,82 +66,101 @@ in
config = mkIf cfg.enable {
environment.systemPackages = with pkgs.xfce // pkgs; [
- # Get GTK themes and gtk-update-icon-cache
- gtk2.out
+ glib # for gsettings
+ gtk3.out # gtk-update-icon-cache
- # Supplies some abstract icons such as:
- # utilities-terminal, accessories-text-editor
+ gnome3.gnome-themes-extra
gnome3.adwaita-icon-theme
-
hicolor-icon-theme
tango-icon-theme
xfce4-icon-theme
+ desktop-file-utils
+ shared-mime-info # for update-mime-database
+
+ # For a polkit authentication agent
+ polkit_gnome
+
# Needed by Xfce's xinitrc script
- # TODO: replace with command -v
- which
+ xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
exo
garcon
- gtk-xfce-engine
libxfce4ui
- tumbler
xfconf
mousepad
+ parole
ristretto
xfce4-appfinder
xfce4-screenshooter
xfce4-session
xfce4-settings
+ xfce4-taskmanager
xfce4-terminal
(thunar.override { thunarPlugins = cfg.thunarPlugins; })
- thunar-volman # TODO: drop
- ] ++ (if config.hardware.pulseaudio.enable
- then [ xfce4-mixer-pulse xfce4-volumed-pulse ]
- else [ xfce4-mixer xfce4-volumed ])
- # TODO: NetworkManager doesn't belong here
- ++ optionals config.networking.networkmanager.enable [ networkmanagerapplet ]
- ++ optionals config.powerManagement.enable [ xfce4-power-manager ]
- ++ optionals cfg.enableXfwm [ xfwm4 ]
- ++ optionals (!cfg.noDesktop) [
- xfce4-panel
+ ] # TODO: NetworkManager doesn't belong here
+ ++ optional config.networking.networkmanager.enable networkmanagerapplet
+ ++ optional config.powerManagement.enable xfce4-power-manager
+ ++ optionals config.hardware.pulseaudio.enable [
+ pavucontrol
+ # volume up/down keys support:
+ # xfce4-pulseaudio-plugin includes all the functionalities of xfce4-volumed-pulse
+ # but can only be used with xfce4-panel, so for no-desktop usage we still include
+ # xfce4-volumed-pulse
+ (if cfg.noDesktop then xfce4-volumed-pulse else xfce4-pulseaudio-plugin)
+ ] ++ optionals cfg.enableXfwm [
+ xfwm4
+ xfwm4-themes
+ ] ++ optionals (!cfg.noDesktop) [
xfce4-notifyd
+ xfce4-panel
xfdesktop
];
environment.pathsToLink = [
"/share/xfce4"
- "/share/themes"
- "/share/gtksourceview-2.0"
+ "/lib/xfce4"
+ "/share/gtksourceview-3.0"
+ "/share/gtksourceview-4.0"
];
- services.xserver.gdk-pixbuf.modulePackages = [ pkgs.librsvg ];
-
services.xserver.desktopManager.session = [{
name = "xfce";
bgSupport = true;
start = ''
- ${cfg.extraSessionCommands}
-
- # Set GTK_PATH so that GTK can find the theme engines.
- export GTK_PATH="${config.system.path}/lib/gtk-2.0:${config.system.path}/lib/gtk-3.0"
-
- # Set GTK_DATA_PREFIX so that GTK can find the Xfce themes.
- export GTK_DATA_PREFIX=${config.system.path}
-
- ${pkgs.runtimeShell} ${pkgs.xfce.xinitrc} &
+ ${pkgs.runtimeShell} ${pkgs.xfce.xfce4-session.xinitrc} &
waitPID=$!
'';
}];
services.xserver.updateDbusEnvironment = true;
+ services.xserver.gdk-pixbuf.modulePackages = [ pkgs.librsvg ];
# Enable helpful DBus services.
services.udisks2.enable = true;
+ security.polkit.enable = true;
+ services.accounts-daemon.enable = true;
services.upower.enable = config.powerManagement.enable;
+ services.gnome3.glib-networking.enable = true;
services.gvfs.enable = true;
services.gvfs.package = pkgs.xfce.gvfs;
+ services.tumbler.enable = true;
+ services.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true));
+ services.xserver.libinput.enable = mkDefault true; # used in xfce4-settings-manager
+
+ # Enable default programs
+ programs.dconf.enable = true;
+
+ # Shell integration for VTE terminals
+ programs.bash.vteIntegration = mkDefault true;
+ programs.zsh.vteIntegration = mkDefault true;
+
+ # Systemd services
+ systemd.packages = with pkgs.xfce; [
+ (thunar.override { thunarPlugins = cfg.thunarPlugins; })
+ ] ++ optional (!cfg.noDesktop) xfce4-notifyd;
+
};
}
diff --git a/nixos/modules/services/x11/desktop-managers/xfce4-14.nix b/nixos/modules/services/x11/desktop-managers/xfce4-14.nix
deleted file mode 100644
index 57d1268d655..00000000000
--- a/nixos/modules/services/x11/desktop-managers/xfce4-14.nix
+++ /dev/null
@@ -1,156 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
- cfg = config.services.xserver.desktopManager.xfce4-14;
-in
-
-{
- # added 2019-08-18
- # needed to preserve some semblance of UI familarity
- # with original XFCE module
- imports = [
- (mkRenamedOptionModule
- [ "services" "xserver" "desktopManager" "xfce4-14" "extraSessionCommands" ]
- [ "services" "xserver" "displayManager" "sessionCommands" ])
- ];
-
- options = {
- services.xserver.desktopManager.xfce4-14 = {
- enable = mkOption {
- type = types.bool;
- default = false;
- description = "Enable the Xfce desktop environment.";
- };
-
- # TODO: support thunar plugins
- # thunarPlugins = mkOption {
- # default = [];
- # type = types.listOf types.package;
- # example = literalExample "[ pkgs.xfce4-14.thunar-archive-plugin ]";
- # description = ''
- # A list of plugin that should be installed with Thunar.
- # '';
- # };
-
- noDesktop = mkOption {
- type = types.bool;
- default = false;
- description = "Don't install XFCE desktop components (xfdesktop, panel and notification daemon).";
- };
-
- enableXfwm = mkOption {
- type = types.bool;
- default = true;
- description = "Enable the XFWM (default) window manager.";
- };
- };
- };
-
- config = mkIf cfg.enable {
- environment.systemPackages = with pkgs.xfce4-14 // pkgs; [
- glib # for gsettings
- gtk3.out # gtk-update-icon-cache
-
- gnome3.adwaita-icon-theme
- hicolor-icon-theme
- tango-icon-theme
- xfce4-icon-theme
-
- desktop-file-utils
- shared-mime-info # for update-mime-database
-
- # For a polkit authentication agent
- polkit_gnome
-
- # Needed by Xfce's xinitrc script
- xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
-
- exo
- garcon
- gtk-xfce-engine
- libxfce4ui
- xfconf
-
- mousepad
- ristretto
- xfce4-appfinder
- xfce4-screenshooter
- xfce4-session
- xfce4-settings
- xfce4-terminal
-
- # TODO: resync patch for plugins
- #(thunar.override { thunarPlugins = cfg.thunarPlugins; })
- thunar
- ] # TODO: NetworkManager doesn't belong here
- ++ optional config.networking.networkmanager.enable networkmanagerapplet
- ++ optional config.hardware.pulseaudio.enable xfce4-pulseaudio-plugin
- ++ optional config.powerManagement.enable xfce4-power-manager
- ++ optional cfg.enableXfwm xfwm4
- ++ optionals (!cfg.noDesktop) [
- xfce4-panel
- xfce4-notifyd
- xfdesktop
- ];
-
- environment.pathsToLink = [
- "/share/xfce4"
- "/lib/xfce4"
- "/share/gtksourceview-3.0"
- "/share/gtksourceview-4.0"
- ];
-
- # Use the correct gnome3 packageSet
- networking.networkmanager.basePackages = mkIf config.networking.networkmanager.enable {
- inherit (pkgs) networkmanager modemmanager wpa_supplicant crda;
- inherit (pkgs.gnome3) networkmanager-openvpn networkmanager-vpnc
- networkmanager-openconnect networkmanager-fortisslvpn
- networkmanager-iodine networkmanager-l2tp;
- };
-
- services.xserver.desktopManager.session = [{
- name = "xfce4-14";
- bgSupport = true;
- start = ''
- # Set GTK_PATH so that GTK can find the theme engines.
- export GTK_PATH="${config.system.path}/lib/gtk-2.0:${config.system.path}/lib/gtk-3.0"
-
- # Set GTK_DATA_PREFIX so that GTK can find the Xfce themes.
- export GTK_DATA_PREFIX=${config.system.path}
-
- ${pkgs.runtimeShell} ${pkgs.xfce4-14.xinitrc} &
- waitPID=$!
- '';
- }];
-
- services.xserver.updateDbusEnvironment = true;
- services.xserver.gdk-pixbuf.modulePackages = [ pkgs.librsvg ];
-
- # Enable helpful DBus services.
- services.udisks2.enable = true;
- security.polkit.enable = true;
- services.accounts-daemon.enable = true;
- services.upower.enable = config.powerManagement.enable;
- services.gnome3.glib-networking.enable = true;
- services.gvfs.enable = true;
- services.gvfs.package = pkgs.xfce.gvfs;
- services.tumbler.enable = true;
- services.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true));
- services.xserver.libinput.enable = mkDefault true; # used in xfce4-settings-manager
-
- # Enable default programs
- programs.dconf.enable = true;
-
- # Shell integration for VTE terminals
- programs.bash.vteIntegration = mkDefault true;
- programs.zsh.vteIntegration = mkDefault true;
-
- # Systemd services
- systemd.packages = with pkgs.xfce4-14; [
- thunar
- ] ++ optional (!cfg.noDesktop) xfce4-notifyd;
-
- };
-}
diff --git a/nixos/modules/services/x11/desktop-managers/xterm.nix b/nixos/modules/services/x11/desktop-managers/xterm.nix
index 93987bd1dfc..f76db278a92 100644
--- a/nixos/modules/services/x11/desktop-managers/xterm.nix
+++ b/nixos/modules/services/x11/desktop-managers/xterm.nix
@@ -5,6 +5,7 @@ with lib;
let
cfg = config.services.xserver.desktopManager.xterm;
+ xSessionEnabled = config.services.xserver.enable;
in
@@ -13,8 +14,8 @@ in
services.xserver.desktopManager.xterm.enable = mkOption {
type = types.bool;
- default = false;
- defaultText = "config.services.xserver.enable";
+ default = (versionOlder config.system.stateVersion "19.09") && xSessionEnabled;
+ defaultText = if versionOlder config.system.stateVersion "19.09" then "config.services.xserver.enable" else "false";
description = "Enable a xterm terminal as a desktop manager.";
};
diff --git a/nixos/modules/services/x11/display-managers/default.nix b/nixos/modules/services/x11/display-managers/default.nix
index bf6b048654b..b66856fd4d4 100644
--- a/nixos/modules/services/x11/display-managers/default.nix
+++ b/nixos/modules/services/x11/display-managers/default.nix
@@ -1,9 +1,9 @@
# This module declares the options to define a *display manager*, the
-# program responsible for handling X logins (such as xdm, gdb, or
-# SLiM). The display manager allows the user to select a *session
-# type*. When the user logs in, the display manager starts the
+# program responsible for handling X logins (such as LightDM, GDM, or SDDM).
+# The display manager allows the user to select a *session
+# type*. When the user logs in, the display manager starts the
# *session script* ("xsession" below) to launch the selected session
-# type. The session type defines two things: the *desktop manager*
+# type. The session type defines two things: the *desktop manager*
# (e.g., KDE, Gnome or a plain xterm), and optionally the *window
# manager* (e.g. kwin or twm).
@@ -196,7 +196,6 @@ let
fi
'') cfg.displayManager.extraSessionFilePackages}
-
${concatMapStrings (pkg: ''
if test -d ${pkg}/share/wayland-sessions; then
mkdir -p "$out/share/wayland-sessions"
@@ -322,7 +321,7 @@ in
execCmd = mkOption {
type = types.str;
example = literalExample ''
- "''${pkgs.slim}/bin/slim"
+ "''${pkgs.lightdm}/bin/lightdm"
'';
description = "Command to start the display manager.";
};
@@ -330,7 +329,6 @@ in
environment = mkOption {
type = types.attrsOf types.unspecified;
default = {};
- example = { SLIM_CFGFILE = "/etc/slim.conf"; };
description = "Additional environment variables needed by the display manager.";
};
diff --git a/nixos/modules/services/x11/display-managers/gdm.nix b/nixos/modules/services/x11/display-managers/gdm.nix
index 3f1669d0851..0af9ccfcf3e 100644
--- a/nixos/modules/services/x11/display-managers/gdm.nix
+++ b/nixos/modules/services/x11/display-managers/gdm.nix
@@ -31,6 +31,44 @@ let
load-module module-position-event-sounds
'';
+ dmDefault = config.services.xserver.desktopManager.default;
+ wmDefault = config.services.xserver.windowManager.default;
+ hasDefaultUserSession = dmDefault != "none" || wmDefault != "none";
+ defaultSessionName = dmDefault + optionalString (wmDefault != "none") ("+" + wmDefault);
+
+ setSessionScript = pkgs.python3.pkgs.buildPythonApplication {
+ name = "set-session";
+
+ format = "other";
+
+ src = ./set-session.py;
+
+ dontUnpack = true;
+
+ strictDeps = false;
+
+ nativeBuildInputs = with pkgs; [
+ wrapGAppsHook
+ gobject-introspection
+ ];
+
+ buildInputs = with pkgs; [
+ accountsservice
+ glib
+ ];
+
+ propagatedBuildInputs = with pkgs.python3.pkgs; [
+ pygobject3
+ ordered-set
+ ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp $src $out/bin/set-session
+ chmod +x $out/bin/set-session
+ '';
+ };
+
in
{
@@ -42,10 +80,7 @@ in
services.xserver.displayManager.gdm = {
enable = mkEnableOption ''
- GDM as the display manager.
- GDM in NixOS is not well-tested with desktops other
- than GNOME, so use with caution, as it could render the
- system unusable.
+ GDM, the GNOME Display Manager
'';
debug = mkEnableOption ''
@@ -142,8 +177,6 @@ in
GDM_X_SERVER_EXTRA_ARGS = toString
(filter (arg: arg != "-terminate") cfg.xserverArgs);
XDG_DATA_DIRS = "${cfg.session.desktops}/share/";
- # Find the mouse
- XCURSOR_PATH = "~/.icons:${pkgs.gnome3.adwaita-icon-theme}/share/icons";
} // optionalAttrs (xSessionWrapper != null) {
# Make GDM use this wrapper before running the session, which runs the
# configured setupCommands. This relies on a patched GDM which supports
@@ -155,6 +188,14 @@ in
mkdir -p /run/gdm/.config/pulse
ln -sf ${pulseConfig} /run/gdm/.config/pulse/default.pa
chown -R gdm:gdm /run/gdm/.config
+ '' + optionalString config.services.gnome3.gnome-initial-setup.enable ''
+ # Create stamp file for gnome-initial-setup to prevent run.
+ mkdir -p /run/gdm/.config
+ cat - > /run/gdm/.config/gnome-initial-setup-done <<- EOF
+ yes
+ EOF
+ '' + optionalString hasDefaultUserSession ''
+ ${setSessionScript}/bin/set-session ${defaultSessionName}
'';
};
@@ -164,6 +205,17 @@ in
"rc-local.service"
"systemd-machined.service"
"systemd-user-sessions.service"
+ "getty@tty${gdm.initialVT}.service"
+ "plymouth-quit.service"
+ "plymouth-start.service"
+ ];
+ systemd.services.display-manager.conflicts = [
+ "getty@tty${gdm.initialVT}.service"
+ # TODO: Add "plymouth-quit.service" so GDM can control when plymouth quits.
+ # Currently this breaks switching configurations while using plymouth.
+ ];
+ systemd.services.display-manager.onFailure = [
+ "plymouth-quit.service"
];
systemd.services.display-manager.serviceConfig = {
@@ -173,6 +225,9 @@ in
BusName = "org.gnome.DisplayManager";
StandardOutput = "syslog";
StandardError = "inherit";
+ ExecReload = "${pkgs.coreutils}/bin/kill -SIGHUP $MAINPID";
+ KeyringMode = "shared";
+ EnvironmentFile = "-/etc/locale.conf";
};
systemd.services.display-manager.path = [ pkgs.gnome3.gnome-session ];
@@ -262,7 +317,7 @@ in
password required pam_deny.so
session required pam_succeed_if.so audit quiet_success user = gdm
- session required pam_env.so envfile=${config.system.build.pamEnvironment}
+ session required pam_env.so conffile=${config.system.build.pamEnvironment} readenv=0
session optional ${pkgs.systemd}/lib/security/pam_systemd.so
session optional pam_keyinit.so force revoke
session optional pam_permit.so
diff --git a/nixos/modules/services/x11/display-managers/lightdm-greeters/enso-os.nix b/nixos/modules/services/x11/display-managers/lightdm-greeters/enso-os.nix
index de128809ce3..129df139c61 100644
--- a/nixos/modules/services/x11/display-managers/lightdm-greeters/enso-os.nix
+++ b/nixos/modules/services/x11/display-managers/lightdm-greeters/enso-os.nix
@@ -10,32 +10,6 @@ let
icons = cfg.iconTheme.package;
cursors = cfg.cursorTheme.package;
- # We need a few things in the environment for the greeter to run with
- # fonts/icons.
- wrappedEnsoGreeter = pkgs.runCommand "lightdm-enso-os-greeter" {
- buildInputs = [ pkgs.makeWrapper ];
- preferLocalBuild = true;
- } ''
- # This wrapper ensures that we actually get themes
- makeWrapper ${pkgs.lightdm-enso-os-greeter}/bin/pantheon-greeter \
- $out/greeter \
- --prefix PATH : "${pkgs.glibc.bin}/bin" \
- --set GDK_PIXBUF_MODULE_FILE "${pkgs.librsvg.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" \
- --set GTK_PATH "${theme}:${pkgs.gtk3.out}" \
- --set GTK_EXE_PREFIX "${theme}" \
- --set GTK_DATA_PREFIX "${theme}" \
- --set XDG_DATA_DIRS "${theme}/share:${icons}/share:${cursors}/share" \
- --set XDG_CONFIG_HOME "${theme}/share"
-
- cat - > $out/lightdm-enso-os-greeter.desktop << EOF
- [Desktop Entry]
- Name=LightDM Greeter
- Comment=This runs the LightDM Greeter
- Exec=$out/greeter
- Type=Application
- EOF
- '';
-
ensoGreeterConf = pkgs.writeText "lightdm-enso-os-greeter.conf" ''
[greeter]
default-wallpaper=${ldmcfg.background}
@@ -144,10 +118,16 @@ in {
config = mkIf (ldmcfg.enable && cfg.enable) {
environment.etc."lightdm/greeter.conf".source = ensoGreeterConf;
+ environment.systemPackages = [
+ cursors
+ icons
+ theme
+ ];
+
services.xserver.displayManager.lightdm = {
greeter = mkDefault {
- package = wrappedEnsoGreeter;
- name = "lightdm-enso-os-greeter";
+ package = pkgs.lightdm-enso-os-greeter.xgreeters;
+ name = "pantheon-greeter";
};
greeters = {
diff --git a/nixos/modules/services/x11/display-managers/lightdm-greeters/gtk.nix b/nixos/modules/services/x11/display-managers/lightdm-greeters/gtk.nix
index 5b280b02423..de932e6e840 100644
--- a/nixos/modules/services/x11/display-managers/lightdm-greeters/gtk.nix
+++ b/nixos/modules/services/x11/display-managers/lightdm-greeters/gtk.nix
@@ -15,34 +15,6 @@ let
icons = cfg.iconTheme.package;
cursors = cfg.cursorTheme.package;
- # The default greeter provided with this expression is the GTK greeter.
- # Again, we need a few things in the environment for the greeter to run with
- # fonts/icons.
- wrappedGtkGreeter = pkgs.runCommand "lightdm-gtk-greeter" {
- buildInputs = [ pkgs.makeWrapper ];
- preferLocalBuild = true;
- } ''
- # This wrapper ensures that we actually get themes
- makeWrapper ${pkgs.lightdm_gtk_greeter}/sbin/lightdm-gtk-greeter \
- $out/greeter \
- --prefix PATH : "${lib.getBin pkgs.stdenv.cc.libc}/bin" \
- --set GDK_PIXBUF_MODULE_FILE "${pkgs.librsvg.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" \
- --set GTK_PATH "${theme}:${pkgs.gtk3.out}" \
- --set GTK_EXE_PREFIX "${theme}" \
- --set GTK_DATA_PREFIX "${theme}" \
- --set XDG_DATA_DIRS "${theme}/share:${icons}/share" \
- --set XDG_CONFIG_HOME "${theme}/share" \
- --set XCURSOR_PATH "${cursors}/share/icons"
-
- cat - > $out/lightdm-gtk-greeter.desktop << EOF
- [Desktop Entry]
- Name=LightDM Greeter
- Comment=This runs the LightDM Greeter
- Exec=$out/greeter
- Type=Application
- EOF
- '';
-
gtkGreeterConf = writeText "lightdm-gtk-greeter.conf"
''
[greeter]
@@ -185,10 +157,16 @@ in
config = mkIf (ldmcfg.enable && cfg.enable) {
services.xserver.displayManager.lightdm.greeter = mkDefault {
- package = wrappedGtkGreeter;
+ package = pkgs.lightdm_gtk_greeter.xgreeters;
name = "lightdm-gtk-greeter";
};
+ environment.systemPackages = [
+ cursors
+ icons
+ theme
+ ];
+
environment.etc."lightdm/lightdm-gtk-greeter.conf".source = gtkGreeterConf;
};
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 ba8151a60f2..fa9445af32e 100644
--- a/nixos/modules/services/x11/display-managers/lightdm-greeters/mini.nix
+++ b/nixos/modules/services/x11/display-managers/lightdm-greeters/mini.nix
@@ -8,11 +8,6 @@ let
ldmcfg = dmcfg.lightdm;
cfg = ldmcfg.greeters.mini;
- xgreeters = pkgs.linkFarm "lightdm-mini-greeter-xgreeters" [{
- path = "${pkgs.lightdm-mini-greeter}/share/xgreeters/lightdm-mini-greeter.desktop";
- name = "lightdm-mini-greeter.desktop";
- }];
-
miniGreeterConf = pkgs.writeText "lightdm-mini-greeter.conf"
''
[greeter]
@@ -90,7 +85,7 @@ in
services.xserver.displayManager.lightdm.greeters.gtk.enable = false;
services.xserver.displayManager.lightdm.greeter = mkDefault {
- package = xgreeters;
+ package = pkgs.lightdm-mini-greeter.xgreeters;
name = "lightdm-mini-greeter";
};
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 bfba174144a..29cb6ccbc06 100644
--- a/nixos/modules/services/x11/display-managers/lightdm-greeters/pantheon.nix
+++ b/nixos/modules/services/x11/display-managers/lightdm-greeters/pantheon.nix
@@ -8,11 +8,6 @@ let
ldmcfg = dmcfg.lightdm;
cfg = ldmcfg.greeters.pantheon;
- xgreeters = pkgs.linkFarm "pantheon-greeter-xgreeters" [{
- path = "${pkgs.pantheon.elementary-greeter}/share/xgreeters/io.elementary.greeter.desktop";
- name = "io.elementary.greeter.desktop";
- }];
-
in
{
options = {
@@ -33,17 +28,10 @@ in
config = mkIf (ldmcfg.enable && cfg.enable) {
- warnings = [
- ''
- The Pantheon greeter is suboptimal in NixOS and can possibly put you in
- a situation where you cannot start a session when switching desktopManagers.
- ''
- ];
-
services.xserver.displayManager.lightdm.greeters.gtk.enable = false;
services.xserver.displayManager.lightdm.greeter = mkDefault {
- package = xgreeters;
+ package = pkgs.pantheon.elementary-greeter.xgreeters;
name = "io.elementary.greeter";
};
diff --git a/nixos/modules/services/x11/display-managers/lightdm.nix b/nixos/modules/services/x11/display-managers/lightdm.nix
index c26a5b61535..cf4c05acbcc 100644
--- a/nixos/modules/services/x11/display-managers/lightdm.nix
+++ b/nixos/modules/services/x11/display-managers/lightdm.nix
@@ -220,6 +220,43 @@ in
exec ${lightdm}/sbin/lightdm
'';
+ # Replaces getty
+ systemd.services.display-manager.conflicts = [
+ "getty@tty7.service"
+ # TODO: Add "plymouth-quit.service" so LightDM can control when plymouth
+ # quits. Currently this breaks switching to configurations with plymouth.
+ ];
+
+ # Pull in dependencies of services we replace.
+ systemd.services.display-manager.after = [
+ "rc-local.service"
+ "systemd-machined.service"
+ "systemd-user-sessions.service"
+ "getty@tty7.service"
+ "user.slice"
+ ];
+
+ # user.slice needs to be present
+ systemd.services.display-manager.requires = [
+ "user.slice"
+ ];
+
+ # lightdm stops plymouth so when it fails make sure plymouth stops.
+ systemd.services.display-manager.onFailure = [
+ "plymouth-quit.service"
+ ];
+
+ systemd.services.display-manager.serviceConfig = {
+ BusName = "org.freedesktop.DisplayManager";
+ IgnoreSIGPIPE = "no";
+ # This allows lightdm to pass the LUKS password through to PAM.
+ # login keyring is unlocked automatic when autologin is used.
+ KeyringMode = "shared";
+ KillMode = "mixed";
+ StandardError = "inherit";
+ StandardOutput = "syslog";
+ };
+
environment.etc."lightdm/lightdm.conf".source = lightdmConf;
environment.etc."lightdm/users.conf".source = usersConf;
@@ -249,7 +286,7 @@ in
password required pam_deny.so
session required pam_succeed_if.so audit quiet_success user = lightdm
- session required pam_env.so envfile=${config.system.build.pamEnvironment}
+ session required pam_env.so conffile=${config.system.build.pamEnvironment} readenv=0
session optional ${pkgs.systemd}/lib/security/pam_systemd.so
session optional pam_keyinit.so force revoke
session optional pam_permit.so
diff --git a/nixos/modules/services/x11/display-managers/sddm.nix b/nixos/modules/services/x11/display-managers/sddm.nix
index c6cb281c2cc..899dd8665a2 100644
--- a/nixos/modules/services/x11/display-managers/sddm.nix
+++ b/nixos/modules/services/x11/display-managers/sddm.nix
@@ -14,7 +14,7 @@ let
xserverWrapper = pkgs.writeScript "xserver-wrapper" ''
#!/bin/sh
${concatMapStrings (n: "export ${n}=\"${getAttr n xEnv}\"\n") (attrNames xEnv)}
- exec systemd-cat ${dmcfg.xserverBin} ${toString dmcfg.xserverArgs} "$@"
+ exec systemd-cat -t xserver-wrapper ${dmcfg.xserverBin} ${toString dmcfg.xserverArgs} "$@"
'';
Xsetup = pkgs.writeScript "Xsetup" ''
@@ -219,8 +219,6 @@ in
# Load themes from system environment
QT_PLUGIN_PATH = "/run/current-system/sw/" + pkgs.qt5.qtbase.qtPluginPrefix;
QML2_IMPORT_PATH = "/run/current-system/sw/" + pkgs.qt5.qtbase.qtQmlPrefix;
-
- XDG_DATA_DIRS = "/run/current-system/sw/share";
};
execCmd = "exec /run/current-system/sw/bin/sddm";
@@ -242,7 +240,7 @@ in
password required pam_deny.so
session required pam_succeed_if.so audit quiet_success user = sddm
- session required pam_env.so envfile=${config.system.build.pamEnvironment}
+ session required pam_env.so conffile=${config.system.build.pamEnvironment} readenv=0
session optional ${pkgs.systemd}/lib/security/pam_systemd.so
session optional pam_keyinit.so force revoke
session optional pam_permit.so
diff --git a/nixos/modules/services/x11/display-managers/set-session.py b/nixos/modules/services/x11/display-managers/set-session.py
new file mode 100755
index 00000000000..0cca80af44e
--- /dev/null
+++ b/nixos/modules/services/x11/display-managers/set-session.py
@@ -0,0 +1,86 @@
+#!/usr/bin/env python
+
+import gi, argparse, os, logging, sys
+
+gi.require_version("AccountsService", "1.0")
+from gi.repository import AccountsService, GLib
+from ordered_set import OrderedSet
+
+
+def get_session_file(session):
+ system_data_dirs = GLib.get_system_data_dirs()
+
+ session_dirs = OrderedSet(
+ os.path.join(data_dir, session)
+ for data_dir in system_data_dirs
+ for session in {"wayland-sessions", "xsessions"}
+ )
+
+ session_files = OrderedSet(
+ os.path.join(dir, session + ".desktop")
+ for dir in session_dirs
+ if os.path.exists(os.path.join(dir, session + ".desktop"))
+ )
+
+ # Deal with duplicate wayland-sessions and xsessions.
+ # Needed for the situation in gnome-session, where there's
+ # a xsession named the same as a wayland session.
+ if any(map(is_session_wayland, session_files)):
+ session_files = OrderedSet(
+ session for session in session_files if is_session_wayland(session)
+ )
+ else:
+ session_files = OrderedSet(
+ session for session in session_files if is_session_xsession(session)
+ )
+
+ if len(session_files) == 0:
+ logging.warning("No session files are found.")
+ sys.exit(0)
+ else:
+ return session_files[0]
+
+
+def is_session_xsession(session_file):
+ return "/xsessions/" in session_file
+
+
+def is_session_wayland(session_file):
+ return "/wayland-sessions/" in session_file
+
+
+def main():
+ parser = argparse.ArgumentParser(
+ description="Set session type for all normal users."
+ )
+ parser.add_argument("session", help="Name of session to set.")
+
+ args = parser.parse_args()
+
+ session = getattr(args, "session")
+ session_file = get_session_file(session)
+
+ user_manager = AccountsService.UserManager.get_default()
+ users = user_manager.list_users()
+
+ for user in users:
+ if user.is_system_account():
+ continue
+ else:
+ if is_session_wayland(session_file):
+ logging.debug(
+ f"Setting session name: {session}, as we found the existing wayland-session: {session_file}"
+ )
+ user.set_session(session)
+ elif is_session_xsession(session_file):
+ logging.debug(
+ f"Setting session name: {session}, as we found the existing xsession: {session_file}"
+ )
+ user.set_x_session(session)
+ else:
+ logging.error(f"Couldn't figure out session type for {session_file}")
+ sys.exit(1)
+
+
+if __name__ == "__main__":
+ main()
diff --git a/nixos/modules/services/x11/display-managers/slim.nix b/nixos/modules/services/x11/display-managers/slim.nix
index 124660a43f0..4b0948a5b7a 100644
--- a/nixos/modules/services/x11/display-managers/slim.nix
+++ b/nixos/modules/services/x11/display-managers/slim.nix
@@ -2,155 +2,15 @@
with lib;
-let
-
- dmcfg = config.services.xserver.displayManager;
-
- cfg = dmcfg.slim;
-
- slimConfig = pkgs.writeText "slim.cfg"
- ''
- xauth_path ${dmcfg.xauthBin}
- default_xserver ${dmcfg.xserverBin}
- xserver_arguments ${toString dmcfg.xserverArgs}
- sessiondir ${dmcfg.session.desktops}/share/xsessions
- login_cmd exec ${pkgs.runtimeShell} ${dmcfg.session.wrapper} "%session"
- halt_cmd ${config.systemd.package}/sbin/shutdown -h now
- reboot_cmd ${config.systemd.package}/sbin/shutdown -r now
- logfile /dev/stderr
- ${optionalString (cfg.defaultUser != null) ("default_user " + cfg.defaultUser)}
- ${optionalString (cfg.defaultUser != null) ("focus_password yes")}
- ${optionalString cfg.autoLogin "auto_login yes"}
- ${optionalString (cfg.consoleCmd != null) "console_cmd ${cfg.consoleCmd}"}
- ${cfg.extraConfig}
- '';
-
- # Unpack the SLiM theme, or use the default.
- slimThemesDir =
- let
- unpackedTheme = pkgs.runCommand "slim-theme" { preferLocalBuild = true; }
- ''
- mkdir -p $out
- cd $out
- unpackFile ${cfg.theme}
- ln -s * default
- '';
- in if cfg.theme == null then "${pkgs.slim}/share/slim/themes" else unpackedTheme;
-
-in
-
{
-
- ###### interface
-
- options = {
-
- services.xserver.displayManager.slim = {
-
- enable = mkOption {
- type = types.bool;
- default = false;
- description = ''
- Whether to enable SLiM as the display manager.
- '';
- };
-
- theme = mkOption {
- type = types.nullOr types.path;
- default = pkgs.fetchurl {
- url = "https://github.com/jagajaga/nixos-slim-theme/archive/2.0.tar.gz";
- sha256 = "0lldizhigx7bjhxkipii87y432hlf5wdvamnfxrryf9z7zkfypc8";
- };
- defaultText = ''pkgs.fetchurl {
- url = "https://github.com/jagajaga/nixos-slim-theme/archive/2.0.tar.gz";
- sha256 = "0lldizhigx7bjhxkipii87y432hlf5wdvamnfxrryf9z7zkfypc8";
- }'';
- example = literalExample ''
- pkgs.fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-wave.tar.gz";
- sha256 = "0ndr419i5myzcylvxb89m9grl2xyq6fbnyc3lkd711mzlmnnfxdy";
- }
- '';
- description = ''
- The theme for the SLiM login manager. If not specified, SLiM's
- default theme is used. See for a
- collection of themes. TODO: berlios shut down.
- '';
- };
-
- defaultUser = mkOption {
- type = types.nullOr types.str;
- default = null;
- example = "login";
- description = ''
- The default user to load. If you put a username here you
- get it automatically loaded into the username field, and
- the focus is placed on the password.
- '';
- };
-
- autoLogin = mkOption {
- type = types.bool;
- default = false;
- description = ''
- Automatically log in as the default user.
- '';
- };
-
- extraConfig = mkOption {
- type = types.lines;
- default = "";
- description = ''
- Extra configuration options for SLiM login manager. Do not
- add options that can be configured directly.
- '';
- };
-
- consoleCmd = mkOption {
- type = types.nullOr types.str;
- default = ''
- ${pkgs.xterm}/bin/xterm -C -fg white -bg black +sb -T "Console login" -e ${pkgs.shadow}/bin/login
- '';
- defaultText = ''
- ''${pkgs.xterm}/bin/xterm -C -fg white -bg black +sb -T "Console login" -e ''${pkgs.shadow}/bin/login
- '';
- description = ''
- The command to run when "console" is given as the username.
- '';
- };
- };
-
- };
-
-
- ###### implementation
-
- config = mkIf cfg.enable {
-
- services.xserver.displayManager.job =
- { environment =
- { SLIM_CFGFILE = slimConfig;
- SLIM_THEMESDIR = slimThemesDir;
- };
- execCmd = "exec ${pkgs.slim}/bin/slim";
- };
-
- services.xserver.displayManager.sessionCommands =
- ''
- # Export the config/themes for slimlock.
- export SLIM_THEMESDIR=${slimThemesDir}
- '';
-
- # Allow null passwords so that the user can login as root on the
- # installation CD.
- security.pam.services.slim = { allowNullPassword = true; startSession = true; };
-
- # Allow slimlock to work.
- security.pam.services.slimlock = {};
-
- environment.systemPackages = [ pkgs.slim ];
-
- };
-
+ # added 2019-11-11
+ imports = [
+ (mkRemovedOptionModule [ "services" "xserver" "displayManager" "slim" ] ''
+ The SLIM project is abandoned and their last release was in 2013.
+ Because of this it poses a security risk to your system.
+ Other issues include it not fully supporting systemd and logind sessions.
+ Please use a different display manager such as LightDM, SDDM, or GDM.
+ You can also use the startx module which uses Xinitrc.
+ '')
+ ];
}
diff --git a/nixos/modules/services/x11/hardware/cmt.nix b/nixos/modules/services/x11/hardware/cmt.nix
index 95353e92098..5ac824c5e41 100644
--- a/nixos/modules/services/x11/hardware/cmt.nix
+++ b/nixos/modules/services/x11/hardware/cmt.nix
@@ -47,7 +47,12 @@ in {
assertions = [
{
assertion = !config.services.xserver.libinput.enable;
- message = "cmt and libinput are incompatible, you cannot enable both (in services.xserver).";
+ message = ''
+ cmt and libinput are incompatible, meaning you cannot enable them both.
+ To use cmt you need to disable libinput with `services.xserver.libinput.enable = false`
+ If you haven't enabled it in configuration.nix, it's enabled by default on a
+ different xserver module.
+ '';
}
];
};
diff --git a/nixos/modules/services/x11/hardware/digimend.nix b/nixos/modules/services/x11/hardware/digimend.nix
new file mode 100644
index 00000000000..a9f5640905a
--- /dev/null
+++ b/nixos/modules/services/x11/hardware/digimend.nix
@@ -0,0 +1,43 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+ cfg = config.services.xserver.digimend;
+
+ pkg = config.boot.kernelPackages.digimend;
+
+in
+
+{
+
+ options = {
+
+ services.xserver.digimend = {
+
+ enable = mkOption {
+ default = false;
+ description = ''
+ Whether to enable the digimend drivers for Huion/XP-Pen/etc. tablets.
+ '';
+ };
+
+ };
+
+ };
+
+
+ config = mkIf cfg.enable {
+
+ # digimend drivers use xsetwacom and wacom X11 drivers
+ services.xserver.wacom.enable = true;
+
+ boot.extraModulePackages = [ pkg ];
+
+ environment.etc."X11/xorg.conf.d/50-digimend.conf".source =
+ "${pkg}/usr/share/X11/xorg.conf.d/50-digimend.conf";
+
+ };
+
+}
diff --git a/nixos/modules/services/x11/hardware/libinput.nix b/nixos/modules/services/x11/hardware/libinput.nix
index bd289976532..71065dfc26b 100644
--- a/nixos/modules/services/x11/hardware/libinput.nix
+++ b/nixos/modules/services/x11/hardware/libinput.nix
@@ -122,7 +122,7 @@ in {
description =
''
Specify the scrolling method: twofinger , edge ,
- or none
+ button , or none
'';
};
@@ -209,12 +209,12 @@ in {
services.xserver.config =
''
- # Automatically enable the libinput driver for all touchpads.
+ # General libinput configuration.
+ # See CONFIGURATION DETAILS section of man:libinput(4).
Section "InputClass"
Identifier "libinputConfiguration"
- MatchIsTouchpad "on"
+ MatchDriver "libinput"
${optionalString (cfg.dev != null) ''MatchDevicePath "${cfg.dev}"''}
- Driver "libinput"
Option "AccelProfile" "${cfg.accelProfile}"
${optionalString (cfg.accelSpeed != null) ''Option "AccelSpeed" "${cfg.accelSpeed}"''}
${optionalString (cfg.buttonMapping != null) ''Option "ButtonMapping" "${cfg.buttonMapping}"''}
diff --git a/nixos/modules/services/x11/redshift.nix b/nixos/modules/services/x11/redshift.nix
index 6ddb4c83764..21b0b33553a 100644
--- a/nixos/modules/services/x11/redshift.nix
+++ b/nixos/modules/services/x11/redshift.nix
@@ -9,6 +9,22 @@ let
in {
+ imports = [
+ (mkChangedOptionModule [ "services" "redshift" "latitude" ] [ "location" "latitude" ]
+ (config:
+ let value = getAttrFromPath [ "services" "redshift" "latitude" ] config;
+ in if value == null then
+ throw "services.redshift.latitude is set to null, you can remove this"
+ else builtins.fromJSON value))
+ (mkChangedOptionModule [ "services" "redshift" "longitude" ] [ "location" "longitude" ]
+ (config:
+ let value = getAttrFromPath [ "services" "redshift" "longitude" ] config;
+ in if value == null then
+ throw "services.redshift.longitude is set to null, you can remove this"
+ else builtins.fromJSON value))
+ (mkRenamedOptionModule [ "services" "redshift" "provider" ] [ "location" "provider" ])
+ ];
+
options.services.redshift = {
enable = mkOption {
type = types.bool;
diff --git a/nixos/modules/services/x11/window-managers/cwm.nix b/nixos/modules/services/x11/window-managers/cwm.nix
new file mode 100644
index 00000000000..03375a226bb
--- /dev/null
+++ b/nixos/modules/services/x11/window-managers/cwm.nix
@@ -0,0 +1,23 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+ cfg = config.services.xserver.windowManager.cwm;
+in
+{
+ options = {
+ services.xserver.windowManager.cwm.enable = mkEnableOption "cwm";
+ };
+ config = mkIf cfg.enable {
+ services.xserver.windowManager.session = singleton
+ { name = "cwm";
+ start =
+ ''
+ cwm &
+ waitPID=$!
+ '';
+ };
+ environment.systemPackages = [ pkgs.cwm ];
+ };
+}
diff --git a/nixos/modules/services/x11/window-managers/default.nix b/nixos/modules/services/x11/window-managers/default.nix
index 2a1f22fa9a4..c17f3830d0e 100644
--- a/nixos/modules/services/x11/window-managers/default.nix
+++ b/nixos/modules/services/x11/window-managers/default.nix
@@ -11,6 +11,7 @@ in
./2bwm.nix
./afterstep.nix
./bspwm.nix
+ ./cwm.nix
./dwm.nix
./evilwm.nix
./exwm.nix
diff --git a/nixos/modules/services/x11/window-managers/xmonad.nix b/nixos/modules/services/x11/window-managers/xmonad.nix
index 0e131412276..30c59b88f82 100644
--- a/nixos/modules/services/x11/window-managers/xmonad.nix
+++ b/nixos/modules/services/x11/window-managers/xmonad.nix
@@ -86,7 +86,7 @@ in
${xmonadBin}
waitPID=$!
'' else ''
- ${xmonad}/bin/xmonad &
+ systemd-cat -t xmonad ${xmonad}/bin/xmonad &
waitPID=$!
'';
}];
diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix
index a8406544a72..70f01dbdbf5 100644
--- a/nixos/modules/services/x11/xserver.nix
+++ b/nixos/modules/services/x11/xserver.nix
@@ -557,7 +557,6 @@ in
default = !( dmconf.auto.enable
|| dmconf.gdm.enable
|| dmconf.sddm.enable
- || dmconf.slim.enable
|| dmconf.xpra.enable );
in mkIf (default) true;
diff --git a/nixos/modules/system/activation/activation-script.nix b/nixos/modules/system/activation/activation-script.nix
index 74c150a848d..ddfd1af4a31 100644
--- a/nixos/modules/system/activation/activation-script.nix
+++ b/nixos/modules/system/activation/activation-script.nix
@@ -218,7 +218,7 @@ in
systemd.user = {
services.nixos-activation = {
- description = "Run user specific NixOS activation";
+ description = "Run user-specific NixOS activation";
script = config.system.userActivationScripts.script;
unitConfig.ConditionUser = "!@system";
serviceConfig.Type = "oneshot";
diff --git a/nixos/modules/system/activation/switch-to-configuration.pl b/nixos/modules/system/activation/switch-to-configuration.pl
index 8ff00fa11dc..641cf9faadc 100644
--- a/nixos/modules/system/activation/switch-to-configuration.pl
+++ b/nixos/modules/system/activation/switch-to-configuration.pl
@@ -10,6 +10,9 @@ use Cwd 'abs_path';
my $out = "@out@";
+# FIXME: maybe we should use /proc/1/exe to get the current systemd.
+my $curSystemd = abs_path("/run/current-system/sw/bin");
+
# To be robust against interruption, record what units need to be started etc.
my $startListFile = "/run/systemd/start-list";
my $restartListFile = "/run/systemd/restart-list";
@@ -267,7 +270,7 @@ while (my ($unit, $state) = each %{$activePrev}) {
sub pathToUnitName {
my ($path) = @_;
# Use current version of systemctl binary before daemon is reexeced.
- open my $cmd, "-|", "/run/current-system/sw/bin/systemd-escape", "--suffix=mount", "-p", $path
+ open my $cmd, "-|", "$curSystemd/systemd-escape", "--suffix=mount", "-p", $path
or die "Unable to escape $path!\n";
my $escaped = join "", <$cmd>;
chomp $escaped;
@@ -370,7 +373,7 @@ if (scalar (keys %unitsToStop) > 0) {
print STDERR "stopping the following units: ", join(", ", @unitsToStopFiltered), "\n"
if scalar @unitsToStopFiltered;
# Use current version of systemctl binary before daemon is reexeced.
- system("/run/current-system/sw/bin/systemctl", "stop", "--", sort(keys %unitsToStop)); # FIXME: ignore errors?
+ system("$curSystemd/systemctl", "stop", "--", sort(keys %unitsToStop)); # FIXME: ignore errors?
}
print STDERR "NOT restarting the following changed units: ", join(", ", sort(keys %unitsToSkip)), "\n"
@@ -382,10 +385,12 @@ my $res = 0;
print STDERR "activating the configuration...\n";
system("$out/activate", "$out") == 0 or $res = 2;
-# Restart systemd if necessary.
+# Restart systemd if necessary. Note that this is done using the
+# current version of systemd, just in case the new one has trouble
+# communicating with the running pid 1.
if ($restartSystemd) {
print STDERR "restarting systemd...\n";
- system("@systemd@/bin/systemctl", "daemon-reexec") == 0 or $res = 2;
+ system("$curSystemd/systemctl", "daemon-reexec") == 0 or $res = 2;
}
# Forget about previously failed services.
@@ -401,8 +406,10 @@ while (my $f = <$listActiveUsers>) {
my ($uid, $name) = ($+{uid}, $+{user});
print STDERR "reloading user units for $name...\n";
- system("@su@", "-s", "@shell@", "-l", $name, "-c", "XDG_RUNTIME_DIR=/run/user/$uid @systemd@/bin/systemctl --user daemon-reload");
- system("@su@", "-s", "@shell@", "-l", $name, "-c", "XDG_RUNTIME_DIR=/run/user/$uid @systemd@/bin/systemctl --user start nixos-activation.service");
+ system("@su@", "-s", "@shell@", "-l", $name, "-c",
+ "export XDG_RUNTIME_DIR=/run/user/$uid; " .
+ "$curSystemd/systemctl --user daemon-reexec; " .
+ "@systemd@/bin/systemctl --user start nixos-activation.service");
}
close $listActiveUsers;
diff --git a/nixos/modules/system/boot/kernel.nix b/nixos/modules/system/boot/kernel.nix
index 50dbf2f8365..8a309f3bc5f 100644
--- a/nixos/modules/system/boot/kernel.nix
+++ b/nixos/modules/system/boot/kernel.nix
@@ -108,7 +108,7 @@ in
boot.extraModulePackages = mkOption {
type = types.listOf types.package;
default = [];
- example = literalExample "[ pkgs.linuxPackages.nvidia_x11 ]";
+ example = literalExample "[ config.boot.kernelPackages.nvidia_x11 ]";
description = "A list of additional packages supplying kernel modules.";
};
diff --git a/nixos/modules/system/boot/loader/raspberrypi/raspberrypi-builder.sh b/nixos/modules/system/boot/loader/raspberrypi/raspberrypi-builder.sh
index 0fb07de10c0..c8b5bf2e61a 100644
--- a/nixos/modules/system/boot/loader/raspberrypi/raspberrypi-builder.sh
+++ b/nixos/modules/system/boot/loader/raspberrypi/raspberrypi-builder.sh
@@ -71,7 +71,7 @@ addEntry() {
local kernel=$(readlink -f $path/kernel)
local initrd=$(readlink -f $path/initrd)
- local dtb_path=$(readlink -f $path/kernel-modules/dtbs)
+ local dtb_path=$(readlink -f $path/dtbs)
if test -n "@copyKernels@"; then
copyToKernelsDir $kernel; kernel=$result
@@ -113,10 +113,18 @@ done
fwdir=@firmware@/share/raspberrypi/boot/
copyForced $fwdir/bootcode.bin $target/bootcode.bin
copyForced $fwdir/fixup.dat $target/fixup.dat
+copyForced $fwdir/fixup4.dat $target/fixup4.dat
+copyForced $fwdir/fixup4cd.dat $target/fixup4cd.dat
+copyForced $fwdir/fixup4db.dat $target/fixup4db.dat
+copyForced $fwdir/fixup4x.dat $target/fixup4x.dat
copyForced $fwdir/fixup_cd.dat $target/fixup_cd.dat
copyForced $fwdir/fixup_db.dat $target/fixup_db.dat
copyForced $fwdir/fixup_x.dat $target/fixup_x.dat
copyForced $fwdir/start.elf $target/start.elf
+copyForced $fwdir/start4.elf $target/start4.elf
+copyForced $fwdir/start4cd.elf $target/start4cd.elf
+copyForced $fwdir/start4db.elf $target/start4db.elf
+copyForced $fwdir/start4x.elf $target/start4x.elf
copyForced $fwdir/start_cd.elf $target/start_cd.elf
copyForced $fwdir/start_db.elf $target/start_db.elf
copyForced $fwdir/start_x.elf $target/start_x.elf
diff --git a/nixos/modules/system/boot/loader/raspberrypi/raspberrypi.nix b/nixos/modules/system/boot/loader/raspberrypi/raspberrypi.nix
index 1c8354e5269..337afe9ef62 100644
--- a/nixos/modules/system/boot/loader/raspberrypi/raspberrypi.nix
+++ b/nixos/modules/system/boot/loader/raspberrypi/raspberrypi.nix
@@ -59,7 +59,7 @@ in
version = mkOption {
default = 2;
- type = types.enum [ 0 1 2 3 ];
+ type = types.enum [ 0 1 2 3 4 ];
description = ''
'';
};
@@ -97,8 +97,8 @@ in
config = mkIf cfg.enable {
assertions = singleton {
- assertion = !pkgs.stdenv.hostPlatform.isAarch64 || cfg.version == 3;
- message = "Only Raspberry Pi 3 supports aarch64.";
+ assertion = !pkgs.stdenv.hostPlatform.isAarch64 || cfg.version >= 3;
+ message = "Only Raspberry Pi >= 3 supports aarch64.";
};
system.build.installBootLoader = builder;
diff --git a/nixos/modules/system/boot/loader/raspberrypi/uboot-builder.nix b/nixos/modules/system/boot/loader/raspberrypi/uboot-builder.nix
index 9d4f8a93d28..1dc397e521b 100644
--- a/nixos/modules/system/boot/loader/raspberrypi/uboot-builder.nix
+++ b/nixos/modules/system/boot/loader/raspberrypi/uboot-builder.nix
@@ -10,11 +10,13 @@ let
pkgs.ubootRaspberryPi
else if version == 2 then
pkgs.ubootRaspberryPi2
- else
+ else if version == 3 then
if isAarch64 then
pkgs.ubootRaspberryPi3_64bit
else
- pkgs.ubootRaspberryPi3_32bit;
+ pkgs.ubootRaspberryPi3_32bit
+ else
+ throw "U-Boot is not yet supported on the raspberry pi 4.";
extlinuxConfBuilder =
import ../generic-extlinux-compatible/extlinux-conf-builder.nix {
diff --git a/nixos/modules/system/boot/networkd.nix b/nixos/modules/system/boot/networkd.nix
index f2060e21509..f80d5afc55f 100644
--- a/nixos/modules/system/boot/networkd.nix
+++ b/nixos/modules/system/boot/networkd.nix
@@ -10,7 +10,7 @@ let
checkLink = checkUnitConfig "Link" [
(assertOnlyFields [
- "Description" "Alias" "MACAddressPolicy" "MACAddress" "NamePolicy" "OriginalName"
+ "Description" "Alias" "MACAddressPolicy" "MACAddress" "NamePolicy" "Name" "OriginalName"
"MTUBytes" "BitsPerSecond" "Duplex" "AutoNegotiation" "WakeOnLan" "Port"
"TCPSegmentationOffload" "TCP6SegmentationOffload" "GenericSegmentationOffload"
"GenericReceiveOffload" "LargeReceiveOffload" "RxChannels" "TxChannels"
@@ -187,7 +187,7 @@ let
# Note: For DHCP the values both, none, v4, v6 are deprecated
(assertValueOneOf "DHCP" ["yes" "no" "ipv4" "ipv6" "both" "none" "v4" "v6"])
(assertValueOneOf "DHCPServer" boolValues)
- (assertValueOneOf "LinkLocalAddressing" ["yes" "no" "ipv4" "ipv6"])
+ (assertValueOneOf "LinkLocalAddressing" ["yes" "no" "ipv4" "ipv6" "ipv4-fallback" "fallback"])
(assertValueOneOf "IPv4LLRoute" boolValues)
(assertValueOneOf "LLMNR" ["yes" "resolve" "no"])
(assertValueOneOf "MulticastDNS" ["yes" "resolve" "no"])
@@ -201,7 +201,7 @@ let
(assertValueOneOf "IPv6AcceptRA" boolValues)
(assertValueOneOf "IPv4ProxyARP" boolValues)
(assertValueOneOf "IPv6ProxyNDP" boolValues)
- (assertValueOneOf "IPv6PrefixDelegation" boolValues)
+ (assertValueOneOf "IPv6PrefixDelegation" (boolValues ++ [ "dhcpv6" "static" ]))
(assertValueOneOf "ActiveSlave" boolValues)
(assertValueOneOf "PrimarySlave" boolValues)
(assertValueOneOf "ConfigureWithoutCarrier" boolValues)
diff --git a/nixos/modules/system/boot/plymouth.nix b/nixos/modules/system/boot/plymouth.nix
index e4223bae7d3..23fce22366d 100644
--- a/nixos/modules/system/boot/plymouth.nix
+++ b/nixos/modules/system/boot/plymouth.nix
@@ -5,23 +5,27 @@ with lib;
let
inherit (pkgs) plymouth;
+ inherit (pkgs) nixos-icons;
cfg = config.boot.plymouth;
- breezePlymouth = pkgs.breeze-plymouth.override {
- nixosBranding = true;
- nixosVersion = config.system.nixos.release;
+ nixosBreezePlymouth = pkgs.breeze-plymouth.override {
+ logoFile = cfg.logo;
+ logoName = "nixos";
+ osName = "NixOS";
+ osVersion = config.system.nixos.release;
};
themesEnv = pkgs.buildEnv {
name = "plymouth-themes";
- paths = [ plymouth breezePlymouth ] ++ cfg.themePackages;
+ paths = [ plymouth ] ++ cfg.themePackages;
};
configFile = pkgs.writeText "plymouthd.conf" ''
[Daemon]
ShowDelay=0
Theme=${cfg.theme}
+ ${cfg.extraConfig}
'';
in
@@ -35,7 +39,7 @@ in
enable = mkEnableOption "Plymouth boot splash screen";
themePackages = mkOption {
- default = [];
+ default = [ nixosBreezePlymouth ];
type = types.listOf types.package;
description = ''
Extra theme packages for plymouth.
@@ -52,10 +56,7 @@ in
logo = mkOption {
type = types.path;
- default = pkgs.fetchurl {
- url = "https://nixos.org/logo/nixos-hires.png";
- sha256 = "1ivzgd7iz0i06y36p8m5w48fd8pjqwxhdaavc0pxs7w1g7mcy5si";
- };
+ default = "${nixos-icons}/share/icons/hicolor/128x128/apps/nix-snowflake.png";
defaultText = ''pkgs.fetchurl {
url = "https://nixos.org/logo/nixos-hires.png";
sha256 = "1ivzgd7iz0i06y36p8m5w48fd8pjqwxhdaavc0pxs7w1g7mcy5si";
@@ -65,6 +66,15 @@ in
'';
};
+ extraConfig = mkOption {
+ type = types.lines;
+ default = "";
+ description = ''
+ Literal string to append to configFile
+ and the config file generated by the plymouth module.
+ '';
+ };
+
};
};
@@ -88,10 +98,7 @@ in
systemd.services.plymouth-kexec.wantedBy = [ "kexec.target" ];
systemd.services.plymouth-halt.wantedBy = [ "halt.target" ];
systemd.services.plymouth-quit-wait.wantedBy = [ "multi-user.target" ];
- systemd.services.plymouth-quit = {
- wantedBy = [ "multi-user.target" ];
- after = [ "display-manager.service" ];
- };
+ systemd.services.plymouth-quit.wantedBy = [ "multi-user.target" ];
systemd.services.plymouth-poweroff.wantedBy = [ "poweroff.target" ];
systemd.services.plymouth-reboot.wantedBy = [ "reboot.target" ];
systemd.services.plymouth-read-write.wantedBy = [ "sysinit.target" ];
diff --git a/nixos/modules/system/boot/stage-1-init.sh b/nixos/modules/system/boot/stage-1-init.sh
index b817a45deba..f520bf54ad1 100644
--- a/nixos/modules/system/boot/stage-1-init.sh
+++ b/nixos/modules/system/boot/stage-1-init.sh
@@ -183,6 +183,12 @@ for o in $(cat /proc/cmdline); do
copytoram)
copytoram=1
;;
+ findiso=*)
+ # if an iso name is supplied, try to find the device where
+ # the iso resides on
+ set -- $(IFS==; echo $o)
+ isoPath=$2
+ ;;
esac
done
@@ -442,6 +448,27 @@ if test -e /sys/power/resume -a -e /sys/power/disk; then
fi
fi
+# If we have a path to an iso file, find the iso and link it to /dev/root
+if [ -n "$isoPath" ]; then
+ mkdir -p /findiso
+
+ for delay in 5 10; do
+ blkid | while read -r line; do
+ device=$(echo "$line" | sed 's/:.*//')
+ type=$(echo "$line" | sed 's/.*TYPE="\([^"]*\)".*/\1/')
+
+ mount -t "$type" "$device" /findiso
+ if [ -e "/findiso$isoPath" ]; then
+ ln -sf "/findiso$isoPath" /dev/root
+ break 2
+ else
+ umount /findiso
+ fi
+ done
+
+ sleep "$delay"
+ done
+fi
# Try to find and mount the root device.
mkdir -p $targetRoot
diff --git a/nixos/modules/system/boot/stage-2-init.sh b/nixos/modules/system/boot/stage-2-init.sh
index 03daafa1ce4..d1de7920df9 100644
--- a/nixos/modules/system/boot/stage-2-init.sh
+++ b/nixos/modules/system/boot/stage-2-init.sh
@@ -142,7 +142,7 @@ fi
# Record the boot configuration.
ln -sfn "$systemConfig" /run/booted-system
-# Prevent the booted system form being garbage-collected If it weren't
+# Prevent the booted system from being garbage-collected. If it weren't
# a gcroot, if we were running a different kernel, switched system,
# and garbage collected all, we could not load kernel modules anymore.
ln -sfn /run/booted-system /nix/var/nix/gcroots/booted-system
diff --git a/nixos/modules/system/boot/systemd-nspawn.nix b/nixos/modules/system/boot/systemd-nspawn.nix
index db6e06b4107..3ddd45b1348 100644
--- a/nixos/modules/system/boot/systemd-nspawn.nix
+++ b/nixos/modules/system/boot/systemd-nspawn.nix
@@ -113,11 +113,21 @@ in {
config =
let
units = mapAttrs' (n: v: let nspawnFile = "${n}.nspawn"; in nameValuePair nspawnFile (instanceToUnit nspawnFile v)) cfg;
- in mkIf (cfg != {}) {
-
- environment.etc."systemd/nspawn".source = generateUnits "nspawn" units [] [];
-
- systemd.targets.multi-user.wants = [ "machines.target" ];
- };
+ in
+ mkMerge [
+ (mkIf (cfg != {}) {
+ environment.etc."systemd/nspawn".source = mkIf (cfg != {}) (generateUnits "nspawn" units [] []);
+ })
+ {
+ systemd.targets.multi-user.wants = [ "machines.target" ];
+ # Workaround for https://github.com/NixOS/nixpkgs/pull/67232#issuecomment-531315437 and https://github.com/systemd/systemd/issues/13622
+ # Once systemd fixes this upstream, we can re-enable -U
+ systemd.services."systemd-nspawn@".serviceConfig.ExecStart = [
+ "" # deliberately empty. signals systemd to override the ExecStart
+ # Only difference between upstream is that we do not pass the -U flag
+ "${pkgs.systemd}/bin/systemd-nspawn --quiet --keep-unit --boot --link-journal=try-guest --network-veth --settings=override --machine=%i"
+ ];
+ }
+ ];
}
diff --git a/nixos/modules/system/boot/systemd-unit-options.nix b/nixos/modules/system/boot/systemd-unit-options.nix
index c1f2c98afcd..bee21f1a8f3 100644
--- a/nixos/modules/system/boot/systemd-unit-options.nix
+++ b/nixos/modules/system/boot/systemd-unit-options.nix
@@ -24,7 +24,7 @@ in rec {
in
if isList (head defs'')
then concatLists defs''
- else mergeOneOption loc defs';
+ else mergeEqualOption loc defs';
};
sharedOptions = {
diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix
index 2287a82418f..9e3c6149f92 100644
--- a/nixos/modules/system/boot/systemd.nix
+++ b/nixos/modules/system/boot/systemd.nix
@@ -63,6 +63,7 @@ let
"systemd-logind.service"
"autovt@.service"
"systemd-user-sessions.service"
+ "dbus-org.freedesktop.import1.service"
"dbus-org.freedesktop.machine1.service"
"user@.service"
"user-runtime-dir@.service"
@@ -145,6 +146,7 @@ let
"user.slice"
"machine.slice"
"machines.target"
+ "systemd-importd.service"
"systemd-machined.service"
"systemd-nspawn@.service"
@@ -546,6 +548,16 @@ in
'';
};
+ systemd.coredump.enable = mkOption {
+ default = true;
+ type = types.bool;
+ description = ''
+ Whether core dumps should be processed by
+ systemd-coredump . If disabled, core dumps
+ appear in the current directory of the crashing process.
+ '';
+ };
+
systemd.coredump.extraConfig = mkOption {
default = "";
type = types.lines;
@@ -858,7 +870,12 @@ 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/journal-nocow.conf".source = "${systemd}/example/tmpfiles.d/journal-nocow.conf";
+ "tmpfiles.d/static-nodes-permissions.conf".source = "${systemd}/example/tmpfiles.d/static-nodes-permissions.conf";
"tmpfiles.d/systemd.conf".source = "${systemd}/example/tmpfiles.d/systemd.conf";
+ "tmpfiles.d/systemd-nspawn.conf".source = "${systemd}/example/tmpfiles.d/systemd-nspawn.conf";
+ "tmpfiles.d/systemd-tmp.conf".source = "${systemd}/example/tmpfiles.d/systemd-tmp.conf";
+ "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 = ''
@@ -978,6 +995,10 @@ in
# Don't bother with certain units in containers.
systemd.services.systemd-remount-fs.unitConfig.ConditionVirtualization = "!container";
systemd.services.systemd-random-seed.unitConfig.ConditionVirtualization = "!container";
+
+ boot.kernel.sysctl = mkIf (!cfg.coredump.enable) {
+ "kernel.core_pattern" = "core";
+ };
};
# FIXME: Remove these eventually.
diff --git a/nixos/modules/system/boot/timesyncd.nix b/nixos/modules/system/boot/timesyncd.nix
index 8282cdd6f3a..0b1d0ff6c22 100644
--- a/nixos/modules/system/boot/timesyncd.nix
+++ b/nixos/modules/system/boot/timesyncd.nix
@@ -20,6 +20,18 @@ with lib;
The set of NTP servers from which to synchronise.
'';
};
+ extraConfig = mkOption {
+ default = "";
+ type = types.lines;
+ example = ''
+ PollIntervalMaxSec=180
+ '';
+ description = ''
+ Extra config options for systemd-timesyncd. See
+
+ timesyncd.conf(5) for available options.
+ '';
+ };
};
};
@@ -35,6 +47,7 @@ with lib;
environment.etc."systemd/timesyncd.conf".text = ''
[Time]
NTP=${concatStringsSep " " config.services.timesyncd.servers}
+ ${config.services.timesyncd.extraConfig}
'';
users.users.systemd-timesync.uid = config.ids.uids.systemd-timesync;
diff --git a/nixos/modules/tasks/auto-upgrade.nix b/nixos/modules/tasks/auto-upgrade.nix
index 18753ae0c1a..7fe06699191 100644
--- a/nixos/modules/tasks/auto-upgrade.nix
+++ b/nixos/modules/tasks/auto-upgrade.nix
@@ -88,7 +88,7 @@ let cfg = config.system.autoUpgrade; in
HOME = "/root";
} // config.networking.proxy.envVars;
- path = [ pkgs.coreutils pkgs.gnutar pkgs.xz.bin pkgs.gitMinimal config.nix.package.out ];
+ path = with pkgs; [ coreutils gnutar xz.bin gzip gitMinimal config.nix.package.out ];
script = let
nixos-rebuild = "${config.system.build.nixos-rebuild}/bin/nixos-rebuild";
diff --git a/nixos/modules/tasks/filesystems/zfs.nix b/nixos/modules/tasks/filesystems/zfs.nix
index 2ed8c5aa292..fe11917c609 100644
--- a/nixos/modules/tasks/filesystems/zfs.nix
+++ b/nixos/modules/tasks/filesystems/zfs.nix
@@ -16,9 +16,7 @@ let
inInitrd = any (fs: fs == "zfs") config.boot.initrd.supportedFilesystems;
inSystem = any (fs: fs == "zfs") config.boot.supportedFilesystems;
- enableAutoSnapshots = cfgSnapshots.enable;
- enableAutoScrub = cfgScrub.enable;
- enableZfs = inInitrd || inSystem || enableAutoSnapshots || enableAutoScrub;
+ enableZfs = inInitrd || inSystem;
kernel = config.boot.kernelPackages;
@@ -268,7 +266,12 @@ in
};
services.zfs.trim = {
- enable = mkEnableOption "Enables periodic TRIM on all ZFS pools.";
+ enable = mkOption {
+ description = "Whether to enable periodic TRIM on all ZFS pools.";
+ default = true;
+ example = false;
+ type = types.bool;
+ };
interval = mkOption {
default = "weekly";
@@ -387,10 +390,11 @@ in
};
environment.etc."zfs/zed.d".source = "${packages.zfsUser}/etc/zfs/zed.d/";
+ environment.etc."zfs/zpool.d".source = "${packages.zfsUser}/etc/zfs/zpool.d/";
system.fsPackages = [ packages.zfsUser ]; # XXX: needed? zfs doesn't have (need) a fsck
environment.systemPackages = [ packages.zfsUser ]
- ++ optional enableAutoSnapshots autosnapPkg; # so the user can run the command to see flags
+ ++ optional cfgSnapshots.enable autosnapPkg; # so the user can run the command to see flags
services.udev.packages = [ packages.zfsUser ]; # to hook zvol naming, etc.
systemd.packages = [ packages.zfsUser ];
@@ -482,7 +486,7 @@ in
systemd.targets.zfs.wantedBy = [ "multi-user.target" ];
})
- (mkIf enableAutoSnapshots {
+ (mkIf (enableZfs && cfgSnapshots.enable) {
systemd.services = let
descr = name: if name == "frequent" then "15 mins"
else if name == "hourly" then "hour"
@@ -520,7 +524,7 @@ in
}) snapshotNames);
})
- (mkIf enableAutoScrub {
+ (mkIf (enableZfs && cfgScrub.enable) {
systemd.services.zfs-scrub = {
description = "ZFS pools scrubbing";
after = [ "zfs-import.target" ];
@@ -547,15 +551,13 @@ in
};
})
- (mkIf cfgTrim.enable {
+ (mkIf (enableZfs && cfgTrim.enable) {
systemd.services.zpool-trim = {
description = "ZFS pools trim";
after = [ "zfs-import.target" ];
path = [ packages.zfsUser ];
startAt = cfgTrim.interval;
- script = ''
- zpool list -H -o name | xargs -n1 zpool trim
- '';
+ serviceConfig.ExecStart = "${pkgs.runtimeShell} -c 'zpool list -H -o name | xargs --no-run-if-empty -n1 zpool trim'";
};
})
];
diff --git a/nixos/modules/tasks/network-interfaces-systemd.nix b/nixos/modules/tasks/network-interfaces-systemd.nix
index 34e27066715..9ffa1089ee6 100644
--- a/nixos/modules/tasks/network-interfaces-systemd.nix
+++ b/nixos/modules/tasks/network-interfaces-systemd.nix
@@ -12,7 +12,7 @@ let
i.ipv4.addresses
++ optionals cfg.enableIPv6 i.ipv6.addresses;
- dhcpStr = useDHCP: if useDHCP == true || useDHCP == null then "both" else "no";
+ dhcpStr = useDHCP: if useDHCP == true || useDHCP == null then "yes" else "no";
slaves =
concatLists (map (bond: bond.interfaces) (attrValues cfg.bonds))
@@ -31,13 +31,19 @@ in
message = "networking.defaultGatewayWindowSize is not supported by networkd.";
} {
assertion = cfg.vswitches == {};
- message = "networking.vswichtes are not supported by networkd.";
+ message = "networking.vswitches are not supported by networkd.";
} {
assertion = cfg.defaultGateway == null || cfg.defaultGateway.interface == null;
message = "networking.defaultGateway.interface is not supported by networkd.";
} {
assertion = cfg.defaultGateway6 == null || cfg.defaultGateway6.interface == null;
message = "networking.defaultGateway6.interface is not supported by networkd.";
+ } {
+ assertion = cfg.useDHCP == false;
+ message = ''
+ networking.useDHCP is not supported by networkd.
+ Please use per interface configuration and set the global option to false.
+ '';
} ] ++ flip mapAttrsToList cfg.bridges (n: { rstp, ... }: {
assertion = !rstp;
message = "networking.bridges.${n}.rstp is not supported by networkd.";
@@ -56,9 +62,7 @@ in
genericNetwork = override:
let gateway = optional (cfg.defaultGateway != null) cfg.defaultGateway.address
++ optional (cfg.defaultGateway6 != null) cfg.defaultGateway6.address;
- in {
- DHCP = override (dhcpStr cfg.useDHCP);
- } // optionalAttrs (gateway != [ ]) {
+ in optionalAttrs (gateway != [ ]) {
routes = override [
{
routeConfig = {
@@ -72,15 +76,6 @@ in
};
in mkMerge [ {
enable = true;
- networks."99-main" = (genericNetwork mkDefault) // {
- # We keep the "broken" behaviour of applying this to all interfaces.
- # In general we want to get rid of this workaround but there hasn't
- # been any work on that.
- # See the following issues for details:
- # - https://github.com/NixOS/nixpkgs/issues/18962
- # - https://github.com/NixOS/nixpkgs/issues/61629
- matchConfig = mkDefault { Name = "*"; };
- };
}
(mkMerge (forEach interfaces (i: {
netdevs = mkIf i.virtual ({
@@ -97,7 +92,7 @@ in
networks."40-${i.name}" = mkMerge [ (genericNetwork mkDefault) {
name = mkDefault i.name;
DHCP = mkForce (dhcpStr
- (if i.useDHCP != null then i.useDHCP else cfg.useDHCP && interfaceIps i == [ ]));
+ (if i.useDHCP != null then i.useDHCP else false));
address = forEach (interfaceIps i)
(ip: "${ip.address}/${toString ip.prefixLength}");
networkConfig.IPv6PrivacyExtensions = "kernel";
diff --git a/nixos/modules/tasks/network-interfaces.nix b/nixos/modules/tasks/network-interfaces.nix
index 5bf7b0d227f..31e2ed1cd1e 100644
--- a/nixos/modules/tasks/network-interfaces.nix
+++ b/nixos/modules/tasks/network-interfaces.nix
@@ -305,7 +305,7 @@ let
optional (defined ipv6Address && defined ipv6PrefixLength)
{ address = ipv6Address; prefixLength = ipv6PrefixLength; }))
- ({ options.warnings = options.warnings; })
+ ({ options.warnings = options.warnings; options.assertions = options.assertions; })
];
};
@@ -903,6 +903,11 @@ in
Whether to use DHCP to obtain an IP address and other
configuration for all network interfaces that are not manually
configured.
+
+ Using this option is highly discouraged and also incompatible with
+ networking.useNetworkd . Please use
+ networking.interfaces.<name>.useDHCP instead
+ and set this to false.
'';
};
@@ -967,9 +972,9 @@ in
"net.ipv6.conf.default.disable_ipv6" = mkDefault (!cfg.enableIPv6);
"net.ipv6.conf.all.forwarding" = mkDefault (any (i: i.proxyARP) interfaces);
} // listToAttrs (flip concatMap (filter (i: i.proxyARP) interfaces)
- (i: forEach [ "4" "6" ] (v: nameValuePair "net.ipv${v}.conf.${i.name}.proxy_arp" true)))
+ (i: forEach [ "4" "6" ] (v: nameValuePair "net.ipv${v}.conf.${replaceChars ["."] ["/"] i.name}.proxy_arp" true)))
// listToAttrs (forEach (filter (i: i.preferTempAddress) interfaces)
- (i: nameValuePair "net.ipv6.conf.${i.name}.use_tempaddr" 2));
+ (i: nameValuePair "net.ipv6.conf.${replaceChars ["."] ["/"] i.name}.use_tempaddr" 2));
# Capabilities won't work unless we have at-least a 4.3 Linux
# kernel because we need the ambient capability
@@ -1092,7 +1097,7 @@ in
destination = "/etc/udev/rules.d/98-${name}";
text = ''
# enable and prefer IPv6 privacy addresses by default
- ACTION=="add", SUBSYSTEM=="net", RUN+="${pkgs.procps}/bin/sysctl net.ipv6.conf.%k.use_tempaddr=2"
+ ACTION=="add", SUBSYSTEM=="net", RUN+="${pkgs.bash}/bin/sh -c 'echo 2 > /proc/sys/net/ipv6/conf/%k/use_tempaddr'"
'';
})
(pkgs.writeTextFile rec {
@@ -1100,7 +1105,7 @@ in
destination = "/etc/udev/rules.d/99-${name}";
text = concatMapStrings (i: ''
# enable IPv6 privacy addresses but prefer EUI-64 addresses for ${i.name}
- ACTION=="add", SUBSYSTEM=="net", RUN+="${pkgs.procps}/bin/sysctl net.ipv6.conf.${i.name}.use_tempaddr=1"
+ ACTION=="add", SUBSYSTEM=="net", RUN+="${pkgs.procps}/bin/sysctl net.ipv6.conf.${replaceChars ["."] ["/"] i.name}.use_tempaddr=1"
'') (filter (i: !i.preferTempAddress) interfaces);
})
] ++ lib.optional (cfg.wlanInterfaces != {})
diff --git a/nixos/modules/testing/test-instrumentation.nix b/nixos/modules/testing/test-instrumentation.nix
index 1a11d9ce7c2..1baeab53b0c 100644
--- a/nixos/modules/testing/test-instrumentation.nix
+++ b/nixos/modules/testing/test-instrumentation.nix
@@ -15,7 +15,7 @@ with import ../../lib/qemu-flags.nix { inherit pkgs; };
#
# One particular example are the boot tests where we want instrumentation
# within the images but not other stuff like setting up 9p filesystems.
- options.virtualisation.qemu.program = mkOption { type = types.path; };
+ options.virtualisation.qemu = { };
config = {
diff --git a/nixos/modules/virtualisation/amazon-image.nix b/nixos/modules/virtualisation/amazon-image.nix
index aadfc5add35..20d48add712 100644
--- a/nixos/modules/virtualisation/amazon-image.nix
+++ b/nixos/modules/virtualisation/amazon-image.nix
@@ -135,6 +135,9 @@ in
services.openssh.enable = true;
services.openssh.permitRootLogin = "prohibit-password";
+ # Creates symlinks for block device names.
+ services.udev.packages = [ pkgs.ec2-utils ];
+
# Force getting the hostname from EC2.
networking.hostName = mkDefault "";
diff --git a/nixos/modules/virtualisation/container-config.nix b/nixos/modules/virtualisation/container-config.nix
index 604fb8a7593..f7a37d8c9f3 100644
--- a/nixos/modules/virtualisation/container-config.nix
+++ b/nixos/modules/virtualisation/container-config.nix
@@ -7,6 +7,7 @@ with lib;
config = mkIf config.boot.isContainer {
# Disable some features that are not useful in a container.
+ nix.optimise.automatic = mkDefault false; # the store is host managed
services.udisks2.enable = mkDefault false;
powerManagement.enable = mkDefault false;
diff --git a/nixos/modules/virtualisation/containers.nix b/nixos/modules/virtualisation/containers.nix
index 9c9f8fc0c21..691ee2c136e 100644
--- a/nixos/modules/virtualisation/containers.nix
+++ b/nixos/modules/virtualisation/containers.nix
@@ -824,5 +824,12 @@ in
'';
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
new file mode 100644
index 00000000000..14a435f6c8b
--- /dev/null
+++ b/nixos/modules/virtualisation/cri-o.nix
@@ -0,0 +1,106 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+ cfg = config.virtualisation.cri-o;
+in
+{
+ options.virtualisation.cri-o = {
+ enable = mkEnableOption "Container Runtime Interface for OCI (CRI-O)";
+
+ storageDriver = mkOption {
+ type = types.enum ["btrfs" "overlay" "vfs"];
+ default = "overlay";
+ description = "Storage driver to be used";
+ };
+
+ logLevel = mkOption {
+ type = types.enum ["trace" "debug" "info" "warn" "error" "fatal"];
+ default = "info";
+ description = "Log level to be used";
+ };
+
+ pauseImage = mkOption {
+ type = types.str;
+ default = "k8s.gcr.io/pause:3.1";
+ description = "Pause image for pod sandboxes to be used";
+ };
+
+ pauseCommand = mkOption {
+ type = types.str;
+ 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 ];
+ environment.etc."crictl.yaml".text = ''
+ runtime-endpoint: unix:///var/run/crio/crio.sock
+ '';
+ environment.etc."crio/crio.conf".text = ''
+ [crio]
+ storage_driver = "${cfg.storageDriver}"
+
+ [crio.image]
+ pause_image = "${cfg.pauseImage}"
+ pause_command = "${cfg.pauseCommand}"
+ registries = [
+ ${concatMapStringsSep ", " (x: "\"" + x + "\"") cfg.registries}
+ ]
+
+ [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",
+ "name": "crio-bridge",
+ "type": "bridge",
+ "bridge": "cni0",
+ "isGateway": true,
+ "ipMasq": true,
+ "ipam": {
+ "type": "host-local",
+ "subnet": "10.88.0.0/16",
+ "routes": [
+ { "dst": "0.0.0.0/0" }
+ ]
+ }
+ }
+ '';
+
+ systemd.services.crio = {
+ description = "Container Runtime Interface for OCI (CRI-O)";
+ documentation = [ "https://github.com/cri-o/cri-o" ];
+ wantedBy = [ "multi-user.target" ];
+ after = [ "network.target" ];
+ path = [ pkgs.utillinux pkgs.runc pkgs.iptables ];
+ serviceConfig = {
+ Type = "notify";
+ ExecStart = "${pkgs.cri-o}/bin/crio";
+ ExecReload = "/bin/kill -s HUP $MAINPID";
+ TasksMax = "infinity";
+ LimitNOFILE = "1048576";
+ LimitNPROC = "1048576";
+ LimitCORE = "infinity";
+ OOMScoreAdjust = "-999";
+ TimeoutStartSec = "0";
+ Restart = "on-abnormal";
+ };
+ };
+ };
+}
diff --git a/nixos/modules/virtualisation/digital-ocean-config.nix b/nixos/modules/virtualisation/digital-ocean-config.nix
new file mode 100644
index 00000000000..88cb0cd450e
--- /dev/null
+++ b/nixos/modules/virtualisation/digital-ocean-config.nix
@@ -0,0 +1,197 @@
+{ config, pkgs, lib, modulesPath, ... }:
+with lib;
+{
+ imports = [
+ (modulesPath + "/profiles/qemu-guest.nix")
+ (modulesPath + "/virtualisation/digital-ocean-init.nix")
+ ];
+ options.virtualisation.digitalOcean = with types; {
+ setRootPassword = mkOption {
+ type = bool;
+ default = false;
+ example = true;
+ description = "Whether to set the root password from the Digital Ocean metadata";
+ };
+ setSshKeys = mkOption {
+ type = bool;
+ default = true;
+ example = true;
+ description = "Whether to fetch ssh keys from Digital Ocean";
+ };
+ seedEntropy = mkOption {
+ type = bool;
+ default = true;
+ example = true;
+ description = "Whether to run the kernel RNG entropy seeding script from the Digital Ocean vendor data";
+ };
+ };
+ config =
+ let
+ cfg = config.virtualisation.digitalOcean;
+ hostName = config.networking.hostName;
+ doMetadataFile = "/run/do-metadata/v1.json";
+ in mkMerge [{
+ fileSystems."/" = {
+ device = "/dev/disk/by-label/nixos";
+ autoResize = true;
+ fsType = "ext4";
+ };
+ boot = {
+ growPartition = true;
+ kernelParams = [ "console=ttyS0" "panic=1" "boot.panic_on_fail" ];
+ initrd.kernelModules = [ "virtio_scsi" ];
+ kernelModules = [ "virtio_pci" "virtio_net" ];
+ loader = {
+ grub.device = "/dev/vda";
+ timeout = 0;
+ grub.configurationLimit = 0;
+ };
+ };
+ services.openssh = {
+ enable = mkDefault true;
+ passwordAuthentication = mkDefault false;
+ };
+ services.do-agent.enable = mkDefault true;
+ networking = {
+ hostName = mkDefault ""; # use Digital Ocean metadata server
+ };
+
+ /* Check for and wait for the metadata server to become reachable.
+ * This serves as a dependency for all the other metadata services. */
+ systemd.services.digitalocean-metadata = {
+ path = [ pkgs.curl ];
+ description = "Get host metadata provided by Digitalocean";
+ script = ''
+ set -eu
+ DO_DELAY_ATTEMPTS=0
+ while ! curl -fsSL -o $RUNTIME_DIRECTORY/v1.json http://169.254.169.254/metadata/v1.json; do
+ DO_DELAY_ATTEMPTS=$((DO_DELAY_ATTEMPTS + 1))
+ if (( $DO_DELAY_ATTEMPTS >= $DO_DELAY_ATTEMPTS_MAX )); then
+ echo "giving up"
+ exit 1
+ fi
+
+ echo "metadata unavailable, trying again in 1s..."
+ sleep 1
+ done
+ chmod 600 $RUNTIME_DIRECTORY/v1.json
+ '';
+ environment = {
+ DO_DELAY_ATTEMPTS_MAX = "10";
+ };
+ serviceConfig = {
+ Type = "oneshot";
+ RemainAfterExit = true;
+ RuntimeDirectory = "do-metadata";
+ RuntimeDirectoryPreserve = "yes";
+ };
+ unitConfig = {
+ ConditionPathExists = "!${doMetadataFile}";
+ After = [ "network-pre.target" ] ++
+ optional config.networking.dhcpcd.enable "dhcpcd.service" ++
+ optional config.systemd.network.enable "systemd-networkd.service";
+ };
+ };
+
+ /* Fetch the root password from the digital ocean metadata.
+ * There is no specific route for this, so we use jq to get
+ * it from the One Big JSON metadata blob */
+ systemd.services.digitalocean-set-root-password = mkIf cfg.setRootPassword {
+ path = [ pkgs.shadow pkgs.jq ];
+ description = "Set root password provided by Digitalocean";
+ wantedBy = [ "multi-user.target" ];
+ script = ''
+ set -eo pipefail
+ ROOT_PASSWORD=$(jq -er '.auth_key' ${doMetadataFile})
+ echo "root:$ROOT_PASSWORD" | chpasswd
+ mkdir -p /etc/do-metadata/set-root-password
+ '';
+ unitConfig = {
+ ConditionPathExists = "!/etc/do-metadata/set-root-password";
+ Before = optional config.services.openssh.enable "sshd.service";
+ After = [ "digitalocean-metadata.service" ];
+ Requires = [ "digitalocean-metadata.service" ];
+ };
+ serviceConfig = {
+ Type = "oneshot";
+ };
+ };
+
+ /* Set the hostname from Digital Ocean, unless the user configured it in
+ * the NixOS configuration. The cached metadata file isn't used here
+ * because the hostname is a mutable part of the droplet. */
+ systemd.services.digitalocean-set-hostname = mkIf (hostName == "") {
+ path = [ pkgs.curl pkgs.nettools ];
+ description = "Set hostname provided by Digitalocean";
+ wantedBy = [ "network.target" ];
+ script = ''
+ set -e
+ DIGITALOCEAN_HOSTNAME=$(curl -fsSL http://169.254.169.254/metadata/v1/hostname)
+ hostname "$DIGITALOCEAN_HOSTNAME"
+ if [[ ! -e /etc/hostname || -w /etc/hostname ]]; then
+ printf "%s\n" "$DIGITALOCEAN_HOSTNAME" > /etc/hostname
+ fi
+ '';
+ unitConfig = {
+ Before = [ "network.target" ];
+ After = [ "digitalocean-metadata.service" ];
+ Wants = [ "digitalocean-metadata.service" ];
+ };
+ serviceConfig = {
+ Type = "oneshot";
+ };
+ };
+
+ /* Fetch the ssh keys for root from Digital Ocean */
+ systemd.services.digitalocean-ssh-keys = mkIf cfg.setSshKeys {
+ description = "Set root ssh keys provided by Digital Ocean";
+ wantedBy = [ "multi-user.target" ];
+ path = [ pkgs.jq ];
+ script = ''
+ set -e
+ mkdir -m 0700 -p /root/.ssh
+ jq -er '.public_keys[]' ${doMetadataFile} > /root/.ssh/authorized_keys
+ chmod 600 /root/.ssh/authorized_keys
+ '';
+ serviceConfig = {
+ Type = "oneshot";
+ RemainAfterExit = true;
+ };
+ unitConfig = {
+ ConditionPathExists = "!/root/.ssh/authorized_keys";
+ Before = optional config.services.openssh.enable "sshd.service";
+ After = [ "digitalocean-metadata.service" ];
+ Requires = [ "digitalocean-metadata.service" ];
+ };
+ };
+
+ /* Initialize the RNG by running the entropy-seed script from the
+ * Digital Ocean metadata
+ */
+ systemd.services.digitalocean-entropy-seed = mkIf cfg.seedEntropy {
+ description = "Run the kernel RNG entropy seeding script from the Digital Ocean vendor data";
+ wantedBy = [ "network.target" ];
+ path = [ pkgs.jq pkgs.mpack ];
+ script = ''
+ set -eo pipefail
+ TEMPDIR=$(mktemp -d)
+ jq -er '.vendor_data' ${doMetadataFile} | munpack -tC $TEMPDIR
+ ENTROPY_SEED=$(grep -rl "DigitalOcean Entropy Seed script" $TEMPDIR)
+ ${pkgs.runtimeShell} $ENTROPY_SEED
+ rm -rf $TEMPDIR
+ '';
+ unitConfig = {
+ Before = [ "network.target" ];
+ After = [ "digitalocean-metadata.service" ];
+ Requires = [ "digitalocean-metadata.service" ];
+ };
+ serviceConfig = {
+ Type = "oneshot";
+ };
+ };
+
+ }
+ ];
+ meta.maintainers = with maintainers; [ arianvp eamsden ];
+}
+
diff --git a/nixos/modules/virtualisation/digital-ocean-image.nix b/nixos/modules/virtualisation/digital-ocean-image.nix
new file mode 100644
index 00000000000..b582e235d43
--- /dev/null
+++ b/nixos/modules/virtualisation/digital-ocean-image.nix
@@ -0,0 +1,69 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+ cfg = config.virtualisation.digitalOceanImage;
+in
+{
+
+ imports = [ ./digital-ocean-config.nix ];
+
+ options = {
+ virtualisation.digitalOceanImage.diskSize = mkOption {
+ type = with types; int;
+ default = 4096;
+ description = ''
+ Size of disk image. Unit is MB.
+ '';
+ };
+
+ virtualisation.digitalOceanImage.configFile = mkOption {
+ type = with types; nullOr path;
+ default = null;
+ description = ''
+ A path to a configuration file which will be placed at
+ /etc/nixos/configuration.nix and be used when switching
+ to a new configuration. If set to null , a default
+ configuration is used that imports
+ (modulesPath + "/virtualisation/digital-ocean-config.nix") .
+ '';
+ };
+
+ virtualisation.digitalOceanImage.compressionMethod = mkOption {
+ type = types.enum [ "gzip" "bzip2" ];
+ default = "gzip";
+ example = "bzip2";
+ description = ''
+ Disk image compression method. Choose bzip2 to generate smaller images that
+ take longer to generate but will consume less metered storage space on your
+ Digital Ocean account.
+ '';
+ };
+ };
+
+ #### implementation
+ config = {
+
+ system.build.digitalOceanImage = import ../../lib/make-disk-image.nix {
+ name = "digital-ocean-image";
+ format = "qcow2";
+ postVM = let
+ compress = {
+ "gzip" = "${pkgs.gzip}/bin/gzip";
+ "bzip2" = "${pkgs.bzip2}/bin/bzip2";
+ }.${cfg.compressionMethod};
+ in ''
+ ${compress} $diskImage
+ '';
+ configFile = if cfg.configFile == null
+ then config.virtualisation.digitalOcean.defaultConfigFile
+ else cfg.configFile;
+ inherit (cfg) diskSize;
+ inherit config lib pkgs;
+ };
+
+ };
+
+ meta.maintainers = with maintainers; [ arianvp eamsden ];
+
+}
diff --git a/nixos/modules/virtualisation/digital-ocean-init.nix b/nixos/modules/virtualisation/digital-ocean-init.nix
new file mode 100644
index 00000000000..02f4de009fa
--- /dev/null
+++ b/nixos/modules/virtualisation/digital-ocean-init.nix
@@ -0,0 +1,95 @@
+{ config, pkgs, lib, ... }:
+with lib;
+let
+ cfg = config.virtualisation.digitalOcean;
+ defaultConfigFile = pkgs.writeText "digitalocean-configuration.nix" ''
+ { modulesPath, lib, ... }:
+ {
+ imports = lib.optional (builtins.pathExists ./do-userdata.nix) ./do-userdata.nix ++ [
+ (modulesPath + "/virtualisation/digital-ocean-config.nix")
+ ];
+ }
+ '';
+in {
+ options.virtualisation.digitalOcean.rebuildFromUserData = mkOption {
+ type = types.bool;
+ default = true;
+ example = true;
+ description = "Whether to reconfigure the system from Digital Ocean user data";
+ };
+ options.virtualisation.digitalOcean.defaultConfigFile = mkOption {
+ type = types.path;
+ default = defaultConfigFile;
+ defaultText = ''
+ The default configuration imports user-data if applicable and
+ (modulesPath + "/virtualisation/digital-ocean-config.nix") .
+ '';
+ description = ''
+ A path to a configuration file which will be placed at
+ /etc/nixos/configuration.nix and be used when switching to
+ a new configuration.
+ '';
+ };
+
+ config = {
+ systemd.services.digitalocean-init = mkIf cfg.rebuildFromUserData {
+ description = "Reconfigure the system from Digital Ocean userdata on startup";
+ wantedBy = [ "network-online.target" ];
+ unitConfig = {
+ ConditionPathExists = "!/etc/nixos/do-userdata.nix";
+ After = [ "digitalocean-metadata.service" "network-online.target" ];
+ Requires = [ "digitalocean-metadata.service" ];
+ X-StopOnRemoval = false;
+ };
+ serviceConfig = {
+ Type = "oneshot";
+ RemainAfterExit = true;
+ };
+ restartIfChanged = false;
+ path = [ pkgs.jq pkgs.gnused pkgs.gnugrep pkgs.systemd config.nix.package config.system.build.nixos-rebuild ];
+ environment = {
+ HOME = "/root";
+ NIX_PATH = concatStringsSep ":" [
+ "/nix/var/nix/profiles/per-user/root/channels/nixos"
+ "nixos-config=/etc/nixos/configuration.nix"
+ "/nix/var/nix/profiles/per-user/root/channels"
+ ];
+ };
+ script = ''
+ set -e
+ echo "attempting to fetch configuration from Digital Ocean user data..."
+ userData=$(mktemp)
+ if jq -er '.user_data' /run/do-metadata/v1.json > $userData; then
+ # If the user-data looks like it could be a nix expression,
+ # copy it over. Also, look for a magic three-hash comment and set
+ # that as the channel.
+ if nix-instantiate --parse $userData > /dev/null; then
+ channels="$(grep '^###' "$userData" | sed 's|###\s*||')"
+ printf "%s" "$channels" | while read channel; do
+ echo "writing channel: $channel"
+ done
+
+ if [[ -n "$channels" ]]; then
+ printf "%s" "$channels" > /root/.nix-channels
+ nix-channel --update
+ fi
+
+ echo "setting configuration from Digital Ocean user data"
+ cp "$userData" /etc/nixos/do-userdata.nix
+ if [[ ! -e /etc/nixos/configuration.nix ]]; then
+ install -m0644 ${cfg.defaultConfigFile} /etc/nixos/configuration.nix
+ fi
+ else
+ echo "user data does not appear to be a Nix expression; ignoring"
+ exit
+ fi
+
+ nixos-rebuild switch
+ else
+ echo "no user data is available"
+ fi
+ '';
+ };
+ };
+ meta.maintainers = with maintainers; [ arianvp eamsden ];
+}
diff --git a/nixos/modules/virtualisation/ec2-amis.nix b/nixos/modules/virtualisation/ec2-amis.nix
index f640bb21b13..3b4e55d39d7 100644
--- a/nixos/modules/virtualisation/ec2-amis.nix
+++ b/nixos/modules/virtualisation/ec2-amis.nix
@@ -291,5 +291,21 @@ let self = {
"19.03".sa-east-1.hvm-ebs = "ami-0c6a43c6e0ad1f4e2";
"19.03".ap-south-1.hvm-ebs = "ami-0303deb1b5890f878";
- latest = self."19.03";
+ # 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";
+
+ latest = self."19.09";
}; in self
diff --git a/nixos/modules/virtualisation/libvirtd.nix b/nixos/modules/virtualisation/libvirtd.nix
index 16b79d86919..9bdea78296f 100644
--- a/nixos/modules/virtualisation/libvirtd.nix
+++ b/nixos/modules/virtualisation/libvirtd.nix
@@ -146,7 +146,8 @@ in {
# this file is expected in /etc/qemu and not sysconfdir (/var/lib)
etc."qemu/bridge.conf".text = lib.concatMapStringsSep "\n" (e:
"allow ${e}") cfg.allowedBridges;
- systemPackages = with pkgs; [ libvirt libressl.nc cfg.qemuPackage ];
+ systemPackages = with pkgs; [ libvirt libressl.nc iptables cfg.qemuPackage ];
+ etc.ethertypes.source = "${pkgs.iptables}/etc/ethertypes";
};
boot.kernelModules = [ "tun" ];
diff --git a/nixos/modules/virtualisation/openvswitch.nix b/nixos/modules/virtualisation/openvswitch.nix
index edec3740230..6b8ad83661f 100644
--- a/nixos/modules/virtualisation/openvswitch.nix
+++ b/nixos/modules/virtualisation/openvswitch.nix
@@ -42,6 +42,9 @@ in {
default = false;
description = ''
Whether to start racoon service for openvswitch.
+ Supported only if openvswitch version is less than 2.6.0.
+ Use virtualisation.vswitch.package = pkgs.openvswitch-lts
+ for a version that supports ipsec over GRE.
'';
};
};
@@ -89,6 +92,13 @@ in {
"${cfg.package}/share/openvswitch/vswitch.ovsschema"
fi
chmod -R +w /var/db/openvswitch
+ if ${cfg.package}/bin/ovsdb-tool needs-conversion /var/db/openvswitch/conf.db | grep -q "yes"
+ then
+ echo "Performing database upgrade"
+ ${cfg.package}/bin/ovsdb-tool convert /var/db/openvswitch/conf.db
+ else
+ echo "Database already up to date"
+ fi
'';
serviceConfig = {
ExecStart =
@@ -133,7 +143,7 @@ in {
};
}
- (mkIf cfg.ipsec {
+ (mkIf (cfg.ipsec && (versionOlder cfg.package.version "2.6.0")) {
services.racoon.enable = true;
services.racoon.configPath = "${runDir}/ipsec/etc/racoon/racoon.conf";
@@ -172,5 +182,4 @@ in {
'';
};
})]));
-
}
diff --git a/nixos/modules/virtualisation/qemu-vm.nix b/nixos/modules/virtualisation/qemu-vm.nix
index ed3431554be..31d332e9f07 100644
--- a/nixos/modules/virtualisation/qemu-vm.nix
+++ b/nixos/modules/virtualisation/qemu-vm.nix
@@ -23,24 +23,56 @@ let
cfg = config.virtualisation;
- qemuGraphics = lib.optionalString (!cfg.graphics) "-nographic";
-
consoles = lib.concatMapStringsSep " " (c: "console=${c}") cfg.qemu.consoles;
- # XXX: This is very ugly and in the future we really should use attribute
- # sets to build ALL of the QEMU flags instead of this mixed mess of Nix
- # expressions and shell script stuff.
- mkDiskIfaceDriveFlag = idx: driveArgs: let
- inherit (cfg.qemu) diskInterface;
- # The drive identifier created by incrementing the index by one using the
- # shell.
- drvId = "drive$((${idx} + 1))";
- # NOTE: DO NOT shell escape, because this may contain shell variables.
- commonArgs = "index=${idx},id=${drvId},${driveArgs}";
- isSCSI = diskInterface == "scsi";
- devArgs = "${diskInterface}-hd,drive=${drvId}";
- args = "-drive ${commonArgs},if=none -device lsi53c895a -device ${devArgs}";
- in if isSCSI then args else "-drive ${commonArgs},if=${diskInterface}";
+ driveOpts = { ... }: {
+
+ options = {
+
+ file = mkOption {
+ type = types.str;
+ description = "The file image used for this drive.";
+ };
+
+ driveExtraOpts = mkOption {
+ type = types.attrsOf types.str;
+ default = {};
+ description = "Extra options passed to drive flag.";
+ };
+
+ deviceExtraOpts = mkOption {
+ type = types.attrsOf types.str;
+ default = {};
+ description = "Extra options passed to device flag.";
+ };
+
+ };
+
+ };
+
+ driveCmdline = idx: { file, driveExtraOpts, deviceExtraOpts, ... }:
+ let
+ drvId = "drive${toString idx}";
+ mkKeyValue = generators.mkKeyValueDefault {} "=";
+ mkOpts = opts: concatStringsSep "," (mapAttrsToList mkKeyValue opts);
+ driveOpts = mkOpts (driveExtraOpts // {
+ index = idx;
+ id = drvId;
+ "if" = "none";
+ inherit file;
+ });
+ deviceOpts = mkOpts (deviceExtraOpts // {
+ drive = drvId;
+ });
+ device =
+ if cfg.qemu.diskInterface == "scsi" then
+ "-device lsi53c895a -device scsi-hd,${deviceOpts}"
+ else
+ "-device virtio-blk-pci,${deviceOpts}";
+ in
+ "-drive ${driveOpts} ${device}";
+
+ drivesCmdLine = drives: concatStringsSep " " (imap1 driveCmdline drives);
# Shell script to start the VM.
startVM =
@@ -77,13 +109,11 @@ let
''}
cd $TMPDIR
- idx=2
- extraDisks=""
+ idx=0
${flip concatMapStrings cfg.emptyDiskImages (size: ''
if ! test -e "empty$idx.qcow2"; then
${qemu}/bin/qemu-img create -f qcow2 "empty$idx.qcow2" "${toString size}M"
fi
- extraDisks="$extraDisks ${mkDiskIfaceDriveFlag "$idx" "file=$(pwd)/empty$idx.qcow2,werror=report"}"
idx=$((idx + 1))
'')}
@@ -97,21 +127,7 @@ let
-virtfs local,path=/nix/store,security_model=none,mount_tag=store \
-virtfs local,path=$TMPDIR/xchg,security_model=none,mount_tag=xchg \
-virtfs local,path=''${SHARED_DIR:-$TMPDIR/xchg},security_model=none,mount_tag=shared \
- ${if cfg.useBootLoader then ''
- ${mkDiskIfaceDriveFlag "0" "file=$NIX_DISK_IMAGE,cache=writeback,werror=report"} \
- ${mkDiskIfaceDriveFlag "1" "file=$TMPDIR/disk.img,media=disk"} \
- ${if cfg.useEFIBoot then ''
- -pflash $TMPDIR/bios.bin \
- '' else ''
- ''}
- '' else ''
- ${mkDiskIfaceDriveFlag "0" "file=$NIX_DISK_IMAGE,cache=writeback,werror=report"} \
- -kernel ${config.system.build.toplevel}/kernel \
- -initrd ${config.system.build.toplevel}/initrd \
- -append "$(cat ${config.system.build.toplevel}/kernel-params) init=${config.system.build.toplevel}/init regInfo=${regInfo}/registration ${consoles} $QEMU_KERNEL_PARAMS" \
- ''} \
- $extraDisks \
- ${qemuGraphics} \
+ ${drivesCmdLine config.virtualisation.qemu.drives} \
${toString config.virtualisation.qemu.options} \
$QEMU_OPTS \
"$@"
@@ -367,6 +383,12 @@ in
'';
};
+ drives =
+ mkOption {
+ type = types.listOf (types.submodule driveOpts);
+ description = "Drives passed to qemu.";
+ };
+
diskInterface =
mkOption {
default = "virtio";
@@ -476,8 +498,49 @@ 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" ])
- (mkIf (pkgs.stdenv.isAarch32 || pkgs.stdenv.isAarch64) [ "-device virtio-gpu-pci" "-device usb-ehci,id=usb0" "-device usb-kbd" "-device usb-tablet" ])
+ (mkIf (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) [
+ "-vga std" "-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"
+ ])
+ (mkIf (!cfg.useBootLoader) [
+ "-kernel ${config.system.build.toplevel}/kernel"
+ "-initrd ${config.system.build.toplevel}/initrd"
+ ''-append "$(cat ${config.system.build.toplevel}/kernel-params) init=${config.system.build.toplevel}/init regInfo=${regInfo}/registration ${consoles} $QEMU_KERNEL_PARAMS"''
+ ])
+ (mkIf cfg.useEFIBoot [
+ "-pflash $TMPDIR/bios.bin"
+ ])
+ (mkIf (!cfg.graphics) [
+ "-nographic"
+ ])
+ ];
+
+ virtualisation.qemu.drives = mkMerge [
+ (mkIf cfg.useBootLoader [
+ {
+ file = "$NIX_DISK_IMAGE";
+ driveExtraOpts.cache = "writeback";
+ driveExtraOpts.werror = "report";
+ }
+ {
+ file = "$TMPDIR/disk.img";
+ driveExtraOpts.media = "disk";
+ deviceExtraOpts.bootindex = "1";
+ }
+ ])
+ (mkIf (!cfg.useBootLoader) [
+ {
+ file = "$NIX_DISK_IMAGE";
+ driveExtraOpts.cache = "writeback";
+ driveExtraOpts.werror = "report";
+ }
+ ])
+ (imap0 (idx: _: {
+ file = "$(pwd)/empty${toString idx}.qcow2";
+ driveExtraOpts.werror = "report";
+ }) cfg.emptyDiskImages)
];
# Mount the host filesystem via 9P, and bind-mount the Nix store
@@ -557,7 +620,7 @@ in
# Wireless won't work in the VM.
networking.wireless.enable = mkVMOverride false;
- networking.connman.enable = mkVMOverride false;
+ services.connman.enable = mkVMOverride false;
# Speed up booting by not waiting for ARP.
networking.dhcpcd.extraConfig = "noarp";
diff --git a/nixos/modules/virtualisation/virtualbox-host.nix b/nixos/modules/virtualisation/virtualbox-host.nix
index 6081d4153a6..ddb0a7bda4f 100644
--- a/nixos/modules/virtualisation/virtualbox-host.nix
+++ b/nixos/modules/virtualisation/virtualbox-host.nix
@@ -149,5 +149,12 @@ in
# Make sure NetworkManager won't assume this interface being up
# means we have internet access.
networking.networkmanager.unmanaged = ["vboxnet0"];
- })]);
+ }) (mkIf config.networking.useNetworkd {
+ systemd.network.networks."40-vboxnet0".extraConfig = ''
+ [Link]
+ RequiredForOnline=no
+ '';
+ })
+
+]);
}
diff --git a/nixos/release-combined.nix b/nixos/release-combined.nix
index 9e2109d88b5..689f881cbea 100644
--- a/nixos/release-combined.nix
+++ b/nixos/release-combined.nix
@@ -133,11 +133,9 @@ in rec {
(all nixos.tests.proxy)
(all nixos.tests.sddm.default)
(all nixos.tests.simple)
- (all nixos.tests.slim)
(all nixos.tests.switchTest)
(all nixos.tests.udisks2)
(all nixos.tests.xfce)
- (all nixos.tests.xfce4-14)
nixpkgs.tarball
(all allSupportedNixpkgs.emacs)
diff --git a/nixos/release.nix b/nixos/release.nix
index c7c60965890..f40b5fa9bd7 100644
--- a/nixos/release.nix
+++ b/nixos/release.nix
@@ -180,6 +180,11 @@ in rec {
inherit system;
});
+ sd_image_raspberrypi4 = forMatchingSystems [ "aarch64-linux" ] (system: makeSdImage {
+ module = ./modules/installer/cd-dvd/sd-image-raspberrypi4.nix;
+ inherit system;
+ });
+
# A bootable VirtualBox virtual appliance as an OVA file (i.e. packaged OVF).
ova = forMatchingSystems [ "x86_64-linux" ] (system:
@@ -292,6 +297,12 @@ in rec {
services.xserver.desktopManager.xfce.enable = true;
});
+ gnome3 = makeClosure ({ ... }:
+ { services.xserver.enable = true;
+ services.xserver.displayManager.gdm.enable = true;
+ services.xserver.desktopManager.gnome3.enable = true;
+ });
+
# Linux/Apache/PostgreSQL/PHP stack.
lapp = makeClosure ({ pkgs, ... }:
{ services.httpd.enable = true;
diff --git a/nixos/tests/acme.nix b/nixos/tests/acme.nix
index 8cfdea4a16e..6bd315ff1ea 100644
--- a/nixos/tests/acme.nix
+++ b/nixos/tests/acme.nix
@@ -1,6 +1,6 @@
let
commonConfig = ./common/letsencrypt/common.nix;
-in import ./make-test.nix {
+in import ./make-test-python.nix {
name = "acme";
nodes = rec {
@@ -12,8 +12,11 @@ in import ./make-test.nix {
networking.extraHosts = ''
${config.networking.primaryIPAddress} standalone.com
'';
- security.acme.certs."standalone.com" = {
- webroot = "/var/lib/acme/acme-challenges";
+ security.acme = {
+ server = "https://acme-v02.api.letsencrypt.org/dir";
+ certs."standalone.com" = {
+ webroot = "/var/lib/acme/acme-challenges";
+ };
};
systemd.targets."acme-finished-standalone.com" = {};
systemd.services."acme-standalone.com" = {
@@ -54,6 +57,8 @@ in import ./make-test.nix {
'';
};
+ security.acme.server = "https://acme-v02.api.letsencrypt.org/dir";
+
nesting.clone = [
({pkgs, ...}: {
@@ -80,36 +85,49 @@ in import ./make-test.nix {
client = commonConfig;
};
- testScript = {nodes, ...}:
+ testScript = {nodes, ...}:
let
newServerSystem = nodes.webserver2.config.system.build.toplevel;
switchToNewServer = "${newServerSystem}/bin/switch-to-configuration test";
in
- # Note, waitForUnit does not work for oneshot services that do not have RemainAfterExit=true,
+ # Note, wait_for_unit does not work for oneshot services that do not have RemainAfterExit=true,
# this is because a oneshot goes from inactive => activating => inactive, and never
# reaches the active state. To work around this, we create some mock target units which
# get pulled in by the oneshot units. The target units linger after activation, and hence we
# can use them to probe that a oneshot fired. It is a bit ugly, but it is the best we can do
''
- $client->waitForUnit("default.target");
- $letsencrypt->waitForUnit("default.target");
- $letsencrypt->waitForUnit("boulder.service");
+ client.start()
+ letsencrypt.start()
+ acmeStandalone.start()
- subtest "can request certificate with HTTPS-01 challenge", sub {
- $acmeStandalone->waitForUnit("default.target");
- $acmeStandalone->succeed("systemctl start acme-standalone.com.service");
- $acmeStandalone->waitForUnit("acme-finished-standalone.com.target");
- };
+ letsencrypt.wait_for_unit("default.target")
+ letsencrypt.wait_for_unit("pebble.service")
- subtest "Can request certificate for nginx service", sub {
- $webserver->waitForUnit("acme-finished-a.example.com.target");
- $client->succeed('curl https://a.example.com/ | grep -qF "hello world"');
- };
+ 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")
- subtest "Can add another certificate for nginx service", sub {
- $webserver->succeed("/run/current-system/fine-tune/child-1/bin/switch-to-configuration test");
- $webserver->waitForUnit("acme-finished-b.example.com.target");
- $client->succeed('curl https://b.example.com/ | grep -qF "hello world"');
- };
+ 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"
+ )
+
+ with subtest("Can request certificate for nginx service"):
+ webserver.wait_for_unit("acme-finished-a.example.com.target")
+ client.succeed(
+ "curl --cacert /tmp/ca.crt https://a.example.com/ | 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"
+ )
+ webserver.wait_for_unit("acme-finished-b.example.com.target")
+ client.succeed(
+ "curl --cacert /tmp/ca.crt https://b.example.com/ | grep -qF 'hello world'"
+ )
'';
}
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index 60762de76d3..7945a239f6a 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -25,9 +25,10 @@ in
atd = handleTest ./atd.nix {};
automysqlbackup = handleTest ./automysqlbackup.nix {};
avahi = handleTest ./avahi.nix {};
+ babeld = handleTest ./babeld.nix {};
bcachefs = handleTestOn ["x86_64-linux"] ./bcachefs.nix {}; # linux-4.18.2018.10.12 is unsupported on aarch64
beanstalkd = handleTest ./beanstalkd.nix {};
- beegfs = handleTestOn ["x86_64-linux"] ./beegfs.nix {}; # beegfs is unsupported on aarch64
+ bees = handleTest ./bees.nix {};
bind = handleTest ./bind.nix {};
bittorrent = handleTest ./bittorrent.nix {};
#blivet = handleTest ./blivet.nix {}; # broken since 2017-07024
@@ -35,9 +36,11 @@ in
boot-stage1 = handleTest ./boot-stage1.nix {};
borgbackup = handleTest ./borgbackup.nix {};
buildbot = handleTest ./buildbot.nix {};
+ caddy = handleTest ./caddy.nix {};
cadvisor = handleTestOn ["x86_64-linux"] ./cadvisor.nix {};
cassandra = handleTest ./cassandra.nix {};
- ceph = handleTestOn ["x86_64-linux"] ./ceph.nix {};
+ ceph-single-node = handleTestOn ["x86_64-linux"] ./ceph-single-node.nix {};
+ ceph-multi-node = handleTestOn ["x86_64-linux"] ./ceph-multi-node.nix {};
certmgr = handleTest ./certmgr.nix {};
cfssl = handleTestOn ["x86_64-linux"] ./cfssl.nix {};
chromium = (handleTestOn ["x86_64-linux"] ./chromium.nix {}).stable or {};
@@ -45,7 +48,6 @@ in
clickhouse = handleTest ./clickhouse.nix {};
cloud-init = handleTest ./cloud-init.nix {};
codimd = handleTest ./codimd.nix {};
- colord = handleTest ./colord.nix {};
containers-bridge = handleTest ./containers-bridge.nix {};
containers-ephemeral = handleTest ./containers-ephemeral.nix {};
containers-extra_veth = handleTest ./containers-extra_veth.nix {};
@@ -79,31 +81,26 @@ in
env = handleTest ./env.nix {};
etcd = handleTestOn ["x86_64-linux"] ./etcd.nix {};
etcd-cluster = handleTestOn ["x86_64-linux"] ./etcd-cluster.nix {};
+ fancontrol = handleTest ./fancontrol.nix {};
ferm = handleTest ./ferm.nix {};
firefox = handleTest ./firefox.nix {};
firewall = handleTest ./firewall.nix {};
fish = handleTest ./fish.nix {};
flannel = handleTestOn ["x86_64-linux"] ./flannel.nix {};
- flatpak = handleTest ./flatpak.nix {};
- flatpak-builder = handleTest ./flatpak-builder.nix {};
fluentd = handleTest ./fluentd.nix {};
fontconfig-default-fonts = handleTest ./fontconfig-default-fonts.nix {};
fsck = handleTest ./fsck.nix {};
- fwupd = handleTestOn ["x86_64-linux"] ./fwupd.nix {}; # libsmbios is unsupported on aarch64
- gdk-pixbuf = handleTest ./gdk-pixbuf.nix {};
+ gotify-server = handleTest ./gotify-server.nix {};
gitea = handleTest ./gitea.nix {};
gitlab = handleTest ./gitlab.nix {};
gitolite = handleTest ./gitolite.nix {};
- gjs = handleTest ./gjs.nix {};
- glib-networking = handleTest ./glib-networking.nix {};
glusterfs = handleTest ./glusterfs.nix {};
gnome3-xorg = handleTest ./gnome3-xorg.nix {};
gnome3 = handleTest ./gnome3.nix {};
- gnome-photos = handleTest ./gnome-photos.nix {};
+ installed-tests = pkgs.recurseIntoAttrs (handleTest ./installed-tests {});
gocd-agent = handleTest ./gocd-agent.nix {};
gocd-server = handleTest ./gocd-server.nix {};
google-oslogin = handleTest ./google-oslogin {};
- graphene = handleTest ./graphene.nix {};
grafana = handleTest ./grafana.nix {};
graphite = handleTest ./graphite.nix {};
graylog = handleTest ./graylog.nix {};
@@ -130,7 +127,6 @@ in
jackett = handleTest ./jackett.nix {};
jellyfin = handleTest ./jellyfin.nix {};
jenkins = handleTest ./jenkins.nix {};
- jormungandr = handleTest ./jormungandr.nix {};
kafka = handleTest ./kafka.nix {};
kerberos = handleTest ./kerberos/default.nix {};
kernel-latest = handleTest ./kernel-latest.nix {};
@@ -145,16 +141,17 @@ in
latestKernel.login = handleTest ./login.nix { latestKernel = true; };
ldap = handleTest ./ldap.nix {};
leaps = handleTest ./leaps.nix {};
- libgdata = handleTest ./libgdata.nix {};
- libxmlb = handleTest ./libxmlb.nix {};
lidarr = handleTest ./lidarr.nix {};
lightdm = handleTest ./lightdm.nix {};
limesurvey = handleTest ./limesurvey.nix {};
login = handleTest ./login.nix {};
loki = handleTest ./loki.nix {};
#logstash = handleTest ./logstash.nix {};
+ lorri = handleTest ./lorri/default.nix {};
+ magnetico = handleTest ./magnetico.nix {};
mailcatcher = handleTest ./mailcatcher.nix {};
mathics = handleTest ./mathics.nix {};
+ matomo = handleTest ./matomo.nix {};
matrix-synapse = handleTest ./matrix-synapse.nix {};
mediawiki = handleTest ./mediawiki.nix {};
memcached = handleTest ./memcached.nix {};
@@ -162,7 +159,9 @@ in
metabase = handleTest ./metabase.nix {};
miniflux = handleTest ./miniflux.nix {};
minio = handleTest ./minio.nix {};
+ minidlna = handleTest ./minidlna.nix {};
misc = handleTest ./misc.nix {};
+ moinmoin = handleTest ./moinmoin.nix {};
mongodb = handleTest ./mongodb.nix {};
moodle = handleTest ./moodle.nix {};
morty = handleTest ./morty.nix {};
@@ -198,15 +197,16 @@ in
novacomd = handleTestOn ["x86_64-linux"] ./novacomd.nix {};
nsd = handleTest ./nsd.nix {};
nzbget = handleTest ./nzbget.nix {};
+ openarena = handleTest ./openarena.nix {};
openldap = handleTest ./openldap.nix {};
opensmtpd = handleTest ./opensmtpd.nix {};
openssh = handleTest ./openssh.nix {};
# openstack-image-userdata doesn't work in a sandbox as the simulated openstack instance needs network access
#openstack-image-userdata = (handleTestOn ["x86_64-linux"] ./openstack-image.nix {}).userdata or {};
openstack-image-metadata = (handleTestOn ["x86_64-linux"] ./openstack-image.nix {}).metadata or {};
- osquery = handleTest ./osquery.nix {};
+ orangefs = handleTest ./orangefs.nix {};
+ os-prober = handleTestOn ["x86_64-linux"] ./os-prober.nix {};
osrm-backend = handleTest ./osrm-backend.nix {};
- ostree = handleTest ./ostree.nix {};
overlayfs = handleTest ./overlayfs.nix {};
packagekit = handleTest ./packagekit.nix {};
pam-oath-login = handleTest ./pam-oath-login.nix {};
@@ -223,6 +223,7 @@ in
postgresql = handleTest ./postgresql.nix {};
postgresql-wal-receiver = handleTest ./postgresql-wal-receiver.nix {};
powerdns = handleTest ./powerdns.nix {};
+ pppd = handleTest ./pppd.nix {};
predictable-interface-names = handleTest ./predictable-interface-names.nix {};
printing = handleTest ./printing.nix {};
prometheus = handleTest ./prometheus.nix {};
@@ -231,7 +232,6 @@ in
prosodyMysql = handleTest ./xmpp/prosody-mysql.nix {};
proxy = handleTest ./proxy.nix {};
quagga = handleTest ./quagga.nix {};
- quake3 = handleTest ./quake3.nix {};
rabbitmq = handleTest ./rabbitmq.nix {};
radarr = handleTest ./radarr.nix {};
radicale = handleTest ./radicale.nix {};
@@ -245,9 +245,9 @@ in
rxe = handleTest ./rxe.nix {};
samba = handleTest ./samba.nix {};
sddm = handleTest ./sddm.nix {};
+ shiori = handleTest ./shiori.nix {};
signal-desktop = handleTest ./signal-desktop.nix {};
simple = handleTest ./simple.nix {};
- slim = handleTest ./slim.nix {};
slurm = handleTest ./slurm.nix {};
smokeping = handleTest ./smokeping.nix {};
snapper = handleTest ./snapper.nix {};
@@ -262,6 +262,7 @@ in
systemd-confinement = handleTest ./systemd-confinement.nix {};
systemd-timesyncd = handleTest ./systemd-timesyncd.nix {};
systemd-networkd-wireguard = handleTest ./systemd-networkd-wireguard.nix {};
+ systemd-nspawn = handleTest ./systemd-nspawn.nix {};
pdns-recursor = handleTest ./pdns-recursor.nix {};
taskserver = handleTest ./taskserver.nix {};
telegraf = handleTest ./telegraf.nix {};
@@ -269,7 +270,9 @@ in
tinydns = handleTest ./tinydns.nix {};
tor = handleTest ./tor.nix {};
transmission = handleTest ./transmission.nix {};
+ trac = handleTest ./trac.nix {};
trezord = handleTest ./trezord.nix {};
+ trickster = handleTest ./trickster.nix {};
udisks2 = handleTest ./udisks2.nix {};
upnp = handleTest ./upnp.nix {};
uwsgi = handleTest ./uwsgi.nix {};
@@ -277,14 +280,14 @@ in
virtualbox = handleTestOn ["x86_64-linux"] ./virtualbox.nix {};
wireguard = handleTest ./wireguard {};
wireguard-generated = handleTest ./wireguard/generated.nix {};
+ wireguard-namespaces = handleTest ./wireguard/namespaces.nix {};
wordpress = handleTest ./wordpress.nix {};
xautolock = handleTest ./xautolock.nix {};
- xdg-desktop-portal = handleTest ./xdg-desktop-portal.nix {};
xfce = handleTest ./xfce.nix {};
- xfce4-14 = handleTest ./xfce4-14.nix {};
xmonad = handleTest ./xmonad.nix {};
xrdp = handleTest ./xrdp.nix {};
xss-lock = handleTest ./xss-lock.nix {};
yabar = handleTest ./yabar.nix {};
+ yggdrasil = handleTest ./yggdrasil.nix {};
zookeeper = handleTest ./zookeeper.nix {};
}
diff --git a/nixos/tests/ammonite.nix b/nixos/tests/ammonite.nix
index fedfde233e8..1955e42be5f 100644
--- a/nixos/tests/ammonite.nix
+++ b/nixos/tests/ammonite.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, ...} : {
name = "ammonite";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ nequissimus ];
@@ -13,8 +13,8 @@ import ./make-test.nix ({ pkgs, ...} : {
};
testScript = ''
- startAll;
+ start_all()
- $amm->succeed("amm -c 'val foo = 21; println(foo * 2)' | grep 42")
+ amm.succeed("amm -c 'val foo = 21; println(foo * 2)' | grep 42")
'';
})
diff --git a/nixos/tests/atd.nix b/nixos/tests/atd.nix
index 25db7279924..c3abe5c253d 100644
--- a/nixos/tests/atd.nix
+++ b/nixos/tests/atd.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ... }:
+import ./make-test-python.nix ({ pkgs, ... }:
{
name = "atd";
@@ -14,18 +14,18 @@ import ./make-test.nix ({ pkgs, ... }:
# "at" has a resolution of 1 minute
testScript = ''
- startAll;
+ start_all()
- $machine->waitForUnit('atd.service'); # wait for atd to start
- $machine->fail("test -f ~root/at-1");
- $machine->fail("test -f ~alice/at-1");
+ machine.wait_for_unit("atd.service") # wait for atd to start
+ machine.fail("test -f ~root/at-1")
+ machine.fail("test -f ~alice/at-1")
- $machine->succeed("echo 'touch ~root/at-1' | at now+1min");
- $machine->succeed("su - alice -c \"echo 'touch at-1' | at now+1min\"");
+ machine.succeed("echo 'touch ~root/at-1' | at now+1min")
+ machine.succeed("su - alice -c \"echo 'touch at-1' | at now+1min\"")
- $machine->succeed("sleep 1.5m");
+ machine.succeed("sleep 1.5m")
- $machine->succeed("test -f ~root/at-1");
- $machine->succeed("test -f ~alice/at-1");
+ machine.succeed("test -f ~root/at-1")
+ machine.succeed("test -f ~alice/at-1")
'';
})
diff --git a/nixos/tests/automysqlbackup.nix b/nixos/tests/automysqlbackup.nix
index ada104a34de..224b93862fb 100644
--- a/nixos/tests/automysqlbackup.nix
+++ b/nixos/tests/automysqlbackup.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, lib, ... }:
+import ./make-test-python.nix ({ pkgs, lib, ... }:
{
name = "automysqlbackup";
@@ -15,20 +15,24 @@ import ./make-test.nix ({ pkgs, lib, ... }:
};
testScript = ''
- startAll;
+ start_all()
# Need to have mysql started so that it can be populated with data.
- $machine->waitForUnit("mysql.service");
+ machine.wait_for_unit("mysql.service")
- # Wait for testdb to be fully populated (5 rows).
- $machine->waitUntilSucceeds("mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5");
+ with subtest("Wait for testdb to be fully populated (5 rows)."):
+ machine.wait_until_succeeds(
+ "mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5"
+ )
- # Do a backup and wait for it to start
- $machine->startJob("automysqlbackup.service");
- $machine->waitForJob("automysqlbackup.service");
+ with subtest("Do a backup and wait for it to start"):
+ machine.start_job("automysqlbackup.service")
+ machine.wait_for_job("automysqlbackup.service")
- # wait for backup file and check that data appears in backup
- $machine->waitForFile("/var/backup/mysql/daily/testdb");
- $machine->succeed("${pkgs.gzip}/bin/zcat /var/backup/mysql/daily/testdb/daily_testdb_*.sql.gz | grep hello");
+ with subtest("wait for backup file and check that data appears in backup"):
+ machine.wait_for_file("/var/backup/mysql/daily/testdb")
+ machine.succeed(
+ "${pkgs.gzip}/bin/zcat /var/backup/mysql/daily/testdb/daily_testdb_*.sql.gz | grep hello"
+ )
'';
})
diff --git a/nixos/tests/avahi.nix b/nixos/tests/avahi.nix
index ae4f54d5266..fe027c14d5a 100644
--- a/nixos/tests/avahi.nix
+++ b/nixos/tests/avahi.nix
@@ -1,5 +1,5 @@
# Test whether `avahi-daemon' and `libnss-mdns' work as expected.
-import ./make-test.nix ({ pkgs, ... } : {
+import ./make-test-python.nix ({ pkgs, ... } : {
name = "avahi";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ eelco ];
@@ -23,45 +23,45 @@ import ./make-test.nix ({ pkgs, ... } : {
two = cfg;
};
- testScript =
- '' startAll;
+ testScript = ''
+ start_all()
- # mDNS.
- $one->waitForUnit("network.target");
- $two->waitForUnit("network.target");
+ # mDNS.
+ one.wait_for_unit("network.target")
+ two.wait_for_unit("network.target")
- $one->succeed("avahi-resolve-host-name one.local | tee out >&2");
- $one->succeed("test \"`cut -f1 < out`\" = one.local");
- $one->succeed("avahi-resolve-host-name two.local | tee out >&2");
- $one->succeed("test \"`cut -f1 < out`\" = two.local");
+ one.succeed("avahi-resolve-host-name one.local | tee out >&2")
+ one.succeed('test "`cut -f1 < out`" = one.local')
+ one.succeed("avahi-resolve-host-name two.local | tee out >&2")
+ one.succeed('test "`cut -f1 < out`" = two.local')
- $two->succeed("avahi-resolve-host-name one.local | tee out >&2");
- $two->succeed("test \"`cut -f1 < out`\" = one.local");
- $two->succeed("avahi-resolve-host-name two.local | tee out >&2");
- $two->succeed("test \"`cut -f1 < out`\" = two.local");
+ two.succeed("avahi-resolve-host-name one.local | tee out >&2")
+ two.succeed('test "`cut -f1 < out`" = one.local')
+ two.succeed("avahi-resolve-host-name two.local | tee out >&2")
+ two.succeed('test "`cut -f1 < out`" = two.local')
- # Basic DNS-SD.
- $one->succeed("avahi-browse -r -t _workstation._tcp | tee out >&2");
- $one->succeed("test `wc -l < out` -gt 0");
- $two->succeed("avahi-browse -r -t _workstation._tcp | tee out >&2");
- $two->succeed("test `wc -l < out` -gt 0");
+ # Basic DNS-SD.
+ one.succeed("avahi-browse -r -t _workstation._tcp | tee out >&2")
+ one.succeed("test `wc -l < out` -gt 0")
+ two.succeed("avahi-browse -r -t _workstation._tcp | tee out >&2")
+ two.succeed("test `wc -l < out` -gt 0")
- # More DNS-SD.
- $one->execute("avahi-publish -s \"This is a test\" _test._tcp 123 one=1 &");
- $one->sleep(5);
- $two->succeed("avahi-browse -r -t _test._tcp | tee out >&2");
- $two->succeed("test `wc -l < out` -gt 0");
+ # More DNS-SD.
+ one.execute('avahi-publish -s "This is a test" _test._tcp 123 one=1 &')
+ one.sleep(5)
+ two.succeed("avahi-browse -r -t _test._tcp | tee out >&2")
+ two.succeed("test `wc -l < out` -gt 0")
- # NSS-mDNS.
- $one->succeed("getent hosts one.local >&2");
- $one->succeed("getent hosts two.local >&2");
- $two->succeed("getent hosts one.local >&2");
- $two->succeed("getent hosts two.local >&2");
+ # NSS-mDNS.
+ one.succeed("getent hosts one.local >&2")
+ one.succeed("getent hosts two.local >&2")
+ two.succeed("getent hosts one.local >&2")
+ two.succeed("getent hosts two.local >&2")
- # extra service definitions
- $one->succeed("avahi-browse -r -t _ssh._tcp | tee out >&2");
- $one->succeed("test `wc -l < out` -gt 0");
- $two->succeed("avahi-browse -r -t _ssh._tcp | tee out >&2");
- $two->succeed("test `wc -l < out` -gt 0");
- '';
+ # extra service definitions
+ one.succeed("avahi-browse -r -t _ssh._tcp | tee out >&2")
+ one.succeed("test `wc -l < out` -gt 0")
+ two.succeed("avahi-browse -r -t _ssh._tcp | tee out >&2")
+ two.succeed("test `wc -l < out` -gt 0")
+ '';
})
diff --git a/nixos/tests/babeld.nix b/nixos/tests/babeld.nix
new file mode 100644
index 00000000000..fafa788ba57
--- /dev/null
+++ b/nixos/tests/babeld.nix
@@ -0,0 +1,148 @@
+
+import ./make-test-python.nix ({ pkgs, lib, ...} : {
+ name = "babeld";
+ meta = with pkgs.stdenv.lib.maintainers; {
+ maintainers = [ hexa ];
+ };
+
+ nodes =
+ { client = { pkgs, lib, ... }:
+ {
+ virtualisation.vlans = [ 10 ];
+
+ networking = {
+ useDHCP = false;
+ interfaces."eth1" = {
+ ipv4.addresses = lib.mkForce [ { address = "192.168.10.2"; prefixLength = 24; } ];
+ ipv4.routes = lib.mkForce [ { address = "0.0.0.0"; prefixLength = 0; via = "192.168.10.1"; } ];
+ ipv6.addresses = lib.mkForce [ { address = "2001:db8:10::2"; prefixLength = 64; } ];
+ ipv6.routes = lib.mkForce [ { address = "::"; prefixLength = 0; via = "2001:db8:10::1"; } ];
+ };
+ };
+ };
+
+ local_router = { pkgs, lib, ... }:
+ {
+ virtualisation.vlans = [ 10 20 ];
+
+ boot.kernel.sysctl."net.ipv4.conf.all.forwarding" = 1;
+ boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = 1;
+
+ networking = {
+ useDHCP = false;
+ firewall.enable = false;
+
+ interfaces."eth1" = {
+ ipv4.addresses = lib.mkForce [ { address = "192.168.10.1"; prefixLength = 24; } ];
+ ipv6.addresses = lib.mkForce [ { address = "2001:db8:10::1"; prefixLength = 64; } ];
+ };
+
+ interfaces."eth2" = {
+ ipv4.addresses = lib.mkForce [ { address = "192.168.20.1"; prefixLength = 24; } ];
+ ipv6.addresses = lib.mkForce [ { address = "2001:db8:20::1"; prefixLength = 64; } ];
+ };
+ };
+
+ services.babeld = {
+ enable = true;
+ interfaces.eth2 = {
+ hello-interval = 1;
+ type = "wired";
+ };
+ extraConfig = ''
+ local-port-readwrite 33123
+
+ import-table 254 # main
+ export-table 254 # main
+
+ in ip 192.168.10.0/24 deny
+ in ip 192.168.20.0/24 deny
+ in ip 2001:db8:10::/64 deny
+ in ip 2001:db8:20::/64 deny
+
+ in ip 192.168.30.0/24 allow
+ in ip 2001:db8:30::/64 allow
+
+ in deny
+
+ redistribute local proto 2
+ redistribute local deny
+ '';
+ };
+ };
+ remote_router = { pkgs, lib, ... }:
+ {
+ virtualisation.vlans = [ 20 30 ];
+
+ boot.kernel.sysctl."net.ipv4.conf.all.forwarding" = 1;
+ boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = 1;
+
+ networking = {
+ useDHCP = false;
+ firewall.enable = false;
+
+ interfaces."eth1" = {
+ ipv4.addresses = lib.mkForce [ { address = "192.168.20.2"; prefixLength = 24; } ];
+ ipv6.addresses = lib.mkForce [ { address = "2001:db8:20::2"; prefixLength = 64; } ];
+ };
+
+ interfaces."eth2" = {
+ ipv4.addresses = lib.mkForce [ { address = "192.168.30.1"; prefixLength = 24; } ];
+ ipv6.addresses = lib.mkForce [ { address = "2001:db8:30::1"; prefixLength = 64; } ];
+ };
+ };
+
+ services.babeld = {
+ enable = true;
+ interfaces.eth1 = {
+ hello-interval = 1;
+ type = "wired";
+ };
+ extraConfig = ''
+ local-port-readwrite 33123
+
+ import-table 254 # main
+ export-table 254 # main
+
+ in ip 192.168.20.0/24 deny
+ in ip 192.168.30.0/24 deny
+ in ip 2001:db8:20::/64 deny
+ in ip 2001:db8:30::/64 deny
+
+ in ip 192.168.10.0/24 allow
+ in ip 2001:db8:10::/64 allow
+
+ in deny
+
+ redistribute local proto 2
+ redistribute local deny
+ '';
+ };
+
+ };
+ };
+
+ testScript =
+ ''
+ start_all()
+
+ client.wait_for_unit("network-online.target")
+ local_router.wait_for_unit("network-online.target")
+ remote_router.wait_for_unit("network-online.target")
+
+ local_router.wait_for_unit("babeld.service")
+ remote_router.wait_for_unit("babeld.service")
+
+ local_router.wait_until_succeeds("ip route get 192.168.30.1")
+ local_router.wait_until_succeeds("ip route get 2001:db8:30::1")
+
+ remote_router.wait_until_succeeds("ip route get 192.168.10.1")
+ remote_router.wait_until_succeeds("ip route get 2001:db8:10::1")
+
+ client.succeed("ping -c1 192.168.30.1")
+ client.succeed("ping -c1 2001:db8:30::1")
+
+ remote_router.succeed("ping -c1 192.168.10.2")
+ remote_router.succeed("ping -c1 2001:db8:10::2")
+ '';
+})
diff --git a/nixos/tests/bcachefs.nix b/nixos/tests/bcachefs.nix
index 658676ef0ab..0541e580322 100644
--- a/nixos/tests/bcachefs.nix
+++ b/nixos/tests/bcachefs.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ... }: {
+import ./make-test-python.nix ({ pkgs, ... }: {
name = "bcachefs";
meta.maintainers = with pkgs.stdenv.lib.maintainers; [ chiiruno ];
@@ -10,29 +10,25 @@ import ./make-test.nix ({ pkgs, ... }: {
};
testScript = ''
- $machine->succeed("modprobe bcachefs");
- $machine->succeed("bcachefs version");
- $machine->succeed("ls /dev");
+ machine.succeed("modprobe bcachefs")
+ machine.succeed("bcachefs version")
+ machine.succeed("ls /dev")
- $machine->succeed(
- "mkdir /tmp/mnt",
-
- "udevadm settle",
- "parted --script /dev/vdb mklabel msdos",
- "parted --script /dev/vdb -- mkpart primary 1024M -1s",
- "udevadm settle",
-
- # Due to #32279, we cannot use encryption for this test yet
- # "echo password | bcachefs format --encrypted /dev/vdb1",
- # "echo password | bcachefs unlock /dev/vdb1",
- "bcachefs format /dev/vdb1",
- "mount -t bcachefs /dev/vdb1 /tmp/mnt",
- "udevadm settle",
-
- "bcachefs fs usage /tmp/mnt",
-
- "umount /tmp/mnt",
- "udevadm settle"
- );
+ machine.succeed(
+ "mkdir /tmp/mnt",
+ "udevadm settle",
+ "parted --script /dev/vdb mklabel msdos",
+ "parted --script /dev/vdb -- mkpart primary 1024M -1s",
+ "udevadm settle",
+ # Due to #32279, we cannot use encryption for this test yet
+ # "echo password | bcachefs format --encrypted /dev/vdb1",
+ # "echo password | bcachefs unlock /dev/vdb1",
+ "bcachefs format /dev/vdb1",
+ "mount -t bcachefs /dev/vdb1 /tmp/mnt",
+ "udevadm settle",
+ "bcachefs fs usage /tmp/mnt",
+ "umount /tmp/mnt",
+ "udevadm settle",
+ )
'';
})
diff --git a/nixos/tests/beanstalkd.nix b/nixos/tests/beanstalkd.nix
index fa2fbc2c92a..4f4a454fb47 100644
--- a/nixos/tests/beanstalkd.nix
+++ b/nixos/tests/beanstalkd.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, lib, ... }:
+import ./make-test-python.nix ({ pkgs, lib, ... }:
let
pythonEnv = pkgs.python3.withPackages (p: [p.beanstalkc]);
@@ -34,12 +34,16 @@ in
};
testScript = ''
- startAll;
+ start_all()
- $machine->waitForUnit('beanstalkd.service');
+ machine.wait_for_unit("beanstalkd.service")
- $machine->succeed("${produce}");
- $machine->succeed("${consume}") eq "this is a job\n" or die;
- $machine->succeed("${consume}") eq "this is another job\n" or die;
+ machine.succeed("${produce}")
+ assert "this is a job\n" == machine.succeed(
+ "${consume}"
+ )
+ assert "this is another job\n" == machine.succeed(
+ "${consume}"
+ )
'';
})
diff --git a/nixos/tests/beegfs.nix b/nixos/tests/beegfs.nix
deleted file mode 100644
index 3465272f559..00000000000
--- a/nixos/tests/beegfs.nix
+++ /dev/null
@@ -1,115 +0,0 @@
-import ./make-test.nix ({ ... } :
-
-let
- connAuthFile="beegfs/auth-def.key";
-
- client = { pkgs, ... } : {
- networking.firewall.enable = false;
- services.beegfsEnable = true;
- services.beegfs.default = {
- mgmtdHost = "mgmt";
- connAuthFile = "/etc/${connAuthFile}";
- client = {
- mount = false;
- enable = true;
- };
- };
-
- fileSystems = pkgs.lib.mkVMOverride # FIXME: this should be creatd by the module
- [ { mountPoint = "/beegfs";
- device = "default";
- fsType = "beegfs";
- options = [ "cfgFile=/etc/beegfs/client-default.conf" "_netdev" ];
- }
- ];
-
- environment.etc.${connAuthFile} = {
- enable = true;
- text = "ThisIsALousySecret";
- mode = "0600";
- };
- };
-
-
- server = service : { pkgs, ... } : {
- networking.firewall.enable = false;
- boot.initrd.postDeviceCommands = ''
- ${pkgs.e2fsprogs}/bin/mkfs.ext4 -L data /dev/vdb
- '';
-
- virtualisation.emptyDiskImages = [ 4096 ];
-
- fileSystems = pkgs.lib.mkVMOverride
- [ { mountPoint = "/data";
- device = "/dev/disk/by-label/data";
- fsType = "ext4";
- }
- ];
-
- environment.systemPackages = with pkgs; [ beegfs ];
- environment.etc.${connAuthFile} = {
- enable = true;
- text = "ThisIsALousySecret";
- mode = "0600";
- };
-
- services.beegfsEnable = true;
- services.beegfs.default = {
- mgmtdHost = "mgmt";
- connAuthFile = "/etc/${connAuthFile}";
- ${service} = {
- enable = true;
- storeDir = "/data";
- };
- };
- };
-
-in
-{
- name = "beegfs";
-
- nodes = {
- meta = server "meta";
- mgmt = server "mgmtd";
- storage1 = server "storage";
- storage2 = server "storage";
- client1 = client;
- client2 = client;
- };
-
- testScript = ''
- # Initalize the data directories
- $mgmt->waitForUnit("default.target");
- $mgmt->succeed("beegfs-setup-mgmtd -C -f -p /data");
- $mgmt->succeed("systemctl start beegfs-mgmtd-default");
-
- $meta->waitForUnit("default.target");
- $meta->succeed("beegfs-setup-meta -C -f -s 1 -p /data");
- $meta->succeed("systemctl start beegfs-meta-default");
-
- $storage1->waitForUnit("default.target");
- $storage1->succeed("beegfs-setup-storage -C -f -s 1 -i 1 -p /data");
- $storage1->succeed("systemctl start beegfs-storage-default");
-
- $storage2->waitForUnit("default.target");
- $storage2->succeed("beegfs-setup-storage -C -f -s 2 -i 2 -p /data");
- $storage2->succeed("systemctl start beegfs-storage-default");
-
- #
-
- # Basic test
- $client1->waitForUnit("beegfs.mount");
- $client1->succeed("beegfs-check-servers-default");
- $client1->succeed("echo test > /beegfs/test");
- $client2->waitForUnit("beegfs.mount");
- $client2->succeed("test -e /beegfs/test");
- $client2->succeed("cat /beegfs/test | grep test");
-
- # test raid0/stripping
- $client1->succeed("dd if=/dev/urandom bs=1M count=10 of=/beegfs/striped");
- $client2->succeed("cat /beegfs/striped > /dev/null");
-
- # check if fs is still healthy
- $client1->succeed("beegfs-fsck-default --checkfs");
- '';
-})
diff --git a/nixos/tests/bees.nix b/nixos/tests/bees.nix
index 6f68c2f834f..6e6a9c3446b 100644
--- a/nixos/tests/bees.nix
+++ b/nixos/tests/bees.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ lib, ... }:
+import ./make-test-python.nix ({ lib, pkgs, ... }:
{
name = "bees";
@@ -29,27 +29,34 @@ import ./make-test.nix ({ lib, ... }:
testScript =
let
- withRetry = content: maxTests: sleepTime: ''
- max_tests=${lib.escapeShellArg maxTests}; sleep_time=${lib.escapeShellArg sleepTime}; for ((i=0; i1 && $3 == 0 { count++ } END { print count }') -eq 0 ]]
'';
- someContentIsShared = loc: ''[[ $(btrfs fi du -s --raw ${lib.escapeShellArg loc}/dedup-me-{1,2} | awk 'BEGIN { count=0; } NR>1 && $3 == 0 { count++ } END { print count }') -eq 0 ]]'';
in ''
# shut down the instance started by systemd at boot, so we can test our test procedure
- $machine->succeed("systemctl stop beesd\@aux1.service");
+ machine.succeed("systemctl stop beesd@aux1.service")
- $machine->succeed("dd if=/dev/urandom of=/aux1/dedup-me-1 bs=1M count=8");
- $machine->succeed("cp --reflink=never /aux1/dedup-me-1 /aux1/dedup-me-2");
- $machine->succeed("cp --reflink=never /aux1/* /aux2/");
- $machine->succeed("sync");
- $machine->fail(q(${someContentIsShared "/aux1"}));
- $machine->fail(q(${someContentIsShared "/aux2"}));
- $machine->succeed("systemctl start beesd\@aux1.service");
+ machine.succeed(
+ "dd if=/dev/urandom of=/aux1/dedup-me-1 bs=1M count=8",
+ "cp --reflink=never /aux1/dedup-me-1 /aux1/dedup-me-2",
+ "cp --reflink=never /aux1/* /aux2/",
+ "sync",
+ )
+ machine.fail(
+ "${someContentIsShared "/aux1"}",
+ "${someContentIsShared "/aux2"}",
+ )
+ machine.succeed("systemctl start beesd@aux1.service")
# assert that "Set Shared" column is nonzero
- $machine->succeed(q(${withRetry (someContentIsShared "/aux1") 20 2}));
- $machine->fail(q(${someContentIsShared "/aux2"}));
+ machine.wait_until_succeeds(
+ "${someContentIsShared "/aux1"}",
+ )
+ machine.fail("${someContentIsShared "/aux2"}")
# assert that 16MB hash table size requested was honored
- $machine->succeed(q([[ $(stat -c %s /aux1/.beeshome/beeshash.dat) = $(( 16 * 1024 * 1024)) ]]))
+ machine.succeed(
+ "[[ $(stat -c %s /aux1/.beeshome/beeshash.dat) = $(( 16 * 1024 * 1024)) ]]"
+ )
'';
})
diff --git a/nixos/tests/bind.nix b/nixos/tests/bind.nix
index 1f8c1dc7be4..09917b15a8e 100644
--- a/nixos/tests/bind.nix
+++ b/nixos/tests/bind.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix {
+import ./make-test-python.nix {
name = "bind";
machine = { pkgs, lib, ... }: {
@@ -20,8 +20,8 @@ import ./make-test.nix {
};
testScript = ''
- $machine->waitForUnit('bind.service');
- $machine->waitForOpenPort(53);
- $machine->succeed('host 192.168.0.1 127.0.0.1 | grep -qF ns.example.org');
+ machine.wait_for_unit("bind.service")
+ machine.wait_for_open_port(53)
+ machine.succeed("host 192.168.0.1 127.0.0.1 | grep -qF ns.example.org")
'';
}
diff --git a/nixos/tests/bittorrent.nix b/nixos/tests/bittorrent.nix
index 3b1169a1b7f..e5be652c711 100644
--- a/nixos/tests/bittorrent.nix
+++ b/nixos/tests/bittorrent.nix
@@ -6,7 +6,7 @@
# which only works if the first client successfully uses the UPnP-IGD
# protocol to poke a hole in the NAT.
-import ./make-test.nix ({ pkgs, ... }:
+import ./make-test-python.nix ({ pkgs, ... }:
let
@@ -108,42 +108,56 @@ in
testScript =
{ nodes, ... }:
''
- startAll;
+ start_all()
# Wait for network and miniupnpd.
- $router->waitForUnit("network-online.target");
- $router->waitForUnit("miniupnpd");
+ router.wait_for_unit("network-online.target")
+ router.wait_for_unit("miniupnpd")
# Create the torrent.
- $tracker->succeed("mkdir /tmp/data");
- $tracker->succeed("cp ${file} /tmp/data/test.tar.bz2");
- $tracker->succeed("transmission-create /tmp/data/test.tar.bz2 --private --tracker http://${externalTrackerAddress}:6969/announce --outfile /tmp/test.torrent");
- $tracker->succeed("chmod 644 /tmp/test.torrent");
+ tracker.succeed("mkdir /tmp/data")
+ tracker.succeed(
+ "cp ${file} /tmp/data/test.tar.bz2"
+ )
+ tracker.succeed(
+ "transmission-create /tmp/data/test.tar.bz2 --private --tracker http://${externalTrackerAddress}:6969/announce --outfile /tmp/test.torrent"
+ )
+ tracker.succeed("chmod 644 /tmp/test.torrent")
# Start the tracker. !!! use a less crappy tracker
- $tracker->waitForUnit("network-online.target");
- $tracker->waitForUnit("opentracker.service");
- $tracker->waitForOpenPort(6969);
+ tracker.wait_for_unit("network-online.target")
+ tracker.wait_for_unit("opentracker.service")
+ tracker.wait_for_open_port(6969)
# Start the initial seeder.
- $tracker->succeed("transmission-remote --add /tmp/test.torrent --no-portmap --no-dht --download-dir /tmp/data");
+ tracker.succeed(
+ "transmission-remote --add /tmp/test.torrent --no-portmap --no-dht --download-dir /tmp/data"
+ )
# Now we should be able to download from the client behind the NAT.
- $tracker->waitForUnit("httpd");
- $client1->waitForUnit("network-online.target");
- $client1->succeed("transmission-remote --add http://${externalTrackerAddress}/test.torrent --download-dir /tmp >&2 &");
- $client1->waitForFile("/tmp/test.tar.bz2");
- $client1->succeed("cmp /tmp/test.tar.bz2 ${file}");
+ tracker.wait_for_unit("httpd")
+ client1.wait_for_unit("network-online.target")
+ client1.succeed(
+ "transmission-remote --add http://${externalTrackerAddress}/test.torrent --download-dir /tmp >&2 &"
+ )
+ client1.wait_for_file("/tmp/test.tar.bz2")
+ client1.succeed(
+ "cmp /tmp/test.tar.bz2 ${file}"
+ )
# Bring down the initial seeder.
- # $tracker->stopJob("transmission");
+ # tracker.stop_job("transmission")
# Now download from the second client. This can only succeed if
# the first client created a NAT hole in the router.
- $client2->waitForUnit("network-online.target");
- $client2->succeed("transmission-remote --add http://${externalTrackerAddress}/test.torrent --no-portmap --no-dht --download-dir /tmp >&2 &");
- $client2->waitForFile("/tmp/test.tar.bz2");
- $client2->succeed("cmp /tmp/test.tar.bz2 ${file}");
+ client2.wait_for_unit("network-online.target")
+ client2.succeed(
+ "transmission-remote --add http://${externalTrackerAddress}/test.torrent --no-portmap --no-dht --download-dir /tmp >&2 &"
+ )
+ client2.wait_for_file("/tmp/test.tar.bz2")
+ client2.succeed(
+ "cmp /tmp/test.tar.bz2 ${file}"
+ )
'';
})
diff --git a/nixos/tests/boot-stage1.nix b/nixos/tests/boot-stage1.nix
index b2e74bff6fc..cfb2ccb8285 100644
--- a/nixos/tests/boot-stage1.nix
+++ b/nixos/tests/boot-stage1.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ... }: {
+import ./make-test-python.nix ({ pkgs, ... }: {
name = "boot-stage1";
machine = { config, pkgs, lib, ... }: {
@@ -150,12 +150,12 @@ import ./make-test.nix ({ pkgs, ... }: {
};
testScript = ''
- $machine->waitForUnit("multi-user.target");
- $machine->succeed('test -s /run/canary2.pid');
- $machine->fail('pgrep -a canary1');
- $machine->fail('kill -0 $(< /run/canary2.pid)');
- $machine->succeed('pgrep -a -f \'^@canary3$\''');
- $machine->succeed('pgrep -a -f \'^kcanary$\''');
+ machine.wait_for_unit("multi-user.target")
+ machine.succeed("test -s /run/canary2.pid")
+ machine.fail("pgrep -a canary1")
+ machine.fail("kill -0 $(< /run/canary2.pid)")
+ machine.succeed('pgrep -a -f "^@canary3$"')
+ machine.succeed('pgrep -a -f "^kcanary$"')
'';
meta.maintainers = with pkgs.stdenv.lib.maintainers; [ aszlig ];
diff --git a/nixos/tests/boot.nix b/nixos/tests/boot.nix
index 57d8006d7ac..c5040f3b31f 100644
--- a/nixos/tests/boot.nix
+++ b/nixos/tests/boot.nix
@@ -3,7 +3,7 @@
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
@@ -17,11 +17,11 @@ let
];
}).config.system.build.isoImage;
- perlAttrs = params: "{ ${concatStringsSep ", " (mapAttrsToList (name: param: "${name} => ${builtins.toJSON param}") params)} }";
+ pythonDict = params: "\n {\n ${concatStringsSep ",\n " (mapAttrsToList (name: param: "\"${name}\": \"${param}\"") params)},\n }\n";
makeBootTest = name: extraConfig:
let
- machineConfig = perlAttrs ({ qemuFlags = "-m 768"; } // extraConfig);
+ machineConfig = pythonDict ({ qemuFlags = "-m 768"; } // extraConfig);
in
makeTest {
inherit iso;
@@ -29,16 +29,16 @@ let
nodes = { };
testScript =
''
- my $machine = createMachine(${machineConfig});
- $machine->start;
- $machine->waitForUnit("multi-user.target");
- $machine->succeed("nix verify -r --no-trust /run/current-system");
+ machine = create_machine(${machineConfig})
+ machine.start()
+ machine.wait_for_unit("multi-user.target")
+ machine.succeed("nix verify -r --no-trust /run/current-system")
- # Test whether the channel got installed correctly.
- $machine->succeed("nix-instantiate --dry-run '' -A hello");
- $machine->succeed("nix-env --dry-run -iA nixos.procps");
+ with subtest("Check whether the channel got installed correctly"):
+ machine.succeed("nix-instantiate --dry-run '' -A hello")
+ machine.succeed("nix-env --dry-run -iA nixos.procps")
- $machine->shutdown;
+ machine.shutdown()
'';
};
@@ -60,7 +60,7 @@ let
config.system.build.netbootIpxeScript
];
};
- machineConfig = perlAttrs ({
+ machineConfig = pythonDict ({
qemuFlags = "-boot order=n -m 2000";
netBackendArgs = "tftp=${ipxeBootDir},bootfile=netboot.ipxe";
} // extraConfig);
@@ -68,12 +68,11 @@ let
makeTest {
name = "boot-netboot-" + name;
nodes = { };
- testScript =
- ''
- my $machine = createMachine(${machineConfig});
- $machine->start;
- $machine->waitForUnit("multi-user.target");
- $machine->shutdown;
+ testScript = ''
+ machine = create_machine(${machineConfig})
+ machine.start()
+ machine.wait_for_unit("multi-user.target")
+ machine.shutdown()
'';
};
in {
diff --git a/nixos/tests/borgbackup.nix b/nixos/tests/borgbackup.nix
index 165f64b0d6d..d97471e293e 100644
--- a/nixos/tests/borgbackup.nix
+++ b/nixos/tests/borgbackup.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ... }:
+import ./make-test-python.nix ({ pkgs, ... }:
let
passphrase = "supersecret";
@@ -106,60 +106,70 @@ in {
};
testScript = ''
- startAll;
+ start_all()
- $client->fail('test -d "${remoteRepo}"');
+ client.fail('test -d "${remoteRepo}"')
- $client->succeed("cp ${privateKey} /root/id_ed25519");
- $client->succeed("chmod 0600 /root/id_ed25519");
- $client->succeed("cp ${privateKeyAppendOnly} /root/id_ed25519.appendOnly");
- $client->succeed("chmod 0600 /root/id_ed25519.appendOnly");
+ client.succeed(
+ "cp ${privateKey} /root/id_ed25519"
+ )
+ client.succeed("chmod 0600 /root/id_ed25519")
+ client.succeed(
+ "cp ${privateKeyAppendOnly} /root/id_ed25519.appendOnly"
+ )
+ client.succeed("chmod 0600 /root/id_ed25519.appendOnly")
- $client->succeed("mkdir -p ${dataDir}");
- $client->succeed("touch ${dataDir}/${excludeFile}");
- $client->succeed("echo '${keepFileData}' > ${dataDir}/${keepFile}");
+ client.succeed("mkdir -p ${dataDir}")
+ client.succeed("touch ${dataDir}/${excludeFile}")
+ client.succeed("echo '${keepFileData}' > ${dataDir}/${keepFile}")
- subtest "local", sub {
- my $borg = "BORG_PASSPHRASE='${passphrase}' borg";
- $client->systemctl("start --wait borgbackup-job-local");
- $client->fail("systemctl is-failed borgbackup-job-local");
- # Make sure exactly one archive has been created
- $client->succeed("c=\$($borg list '${localRepo}' | wc -l) && [[ \$c == '1' ]]");
- # Make sure excludeFile has been excluded
- $client->fail("$borg list '${localRepo}::${archiveName}' | grep -qF '${excludeFile}'");
- # Make sure keepFile has the correct content
- $client->succeed("$borg extract '${localRepo}::${archiveName}'");
- $client->succeed('c=$(cat ${dataDir}/${keepFile}) && [[ "$c" == "${keepFileData}" ]]');
- # Make sure the same is true when using `borg mount`
- $client->succeed("mkdir -p /mnt/borg && $borg mount '${localRepo}::${archiveName}' /mnt/borg");
- $client->succeed('c=$(cat /mnt/borg/${dataDir}/${keepFile}) && [[ "$c" == "${keepFileData}" ]]');
- };
+ with subtest("local"):
+ borg = "BORG_PASSPHRASE='${passphrase}' borg"
+ client.systemctl("start --wait borgbackup-job-local")
+ client.fail("systemctl is-failed borgbackup-job-local")
+ # Make sure exactly one archive has been created
+ assert int(client.succeed("{} list '${localRepo}' | wc -l".format(borg))) > 0
+ # Make sure excludeFile has been excluded
+ client.fail(
+ "{} list '${localRepo}::${archiveName}' | grep -qF '${excludeFile}'".format(borg)
+ )
+ # Make sure keepFile has the correct content
+ client.succeed("{} extract '${localRepo}::${archiveName}'".format(borg))
+ assert "${keepFileData}" in client.succeed("cat ${dataDir}/${keepFile}")
+ # Make sure the same is true when using `borg mount`
+ client.succeed(
+ "mkdir -p /mnt/borg && {} mount '${localRepo}::${archiveName}' /mnt/borg".format(
+ borg
+ )
+ )
+ assert "${keepFileData}" in client.succeed(
+ "cat /mnt/borg/${dataDir}/${keepFile}"
+ )
- subtest "remote", sub {
- my $borg = "BORG_RSH='ssh -oStrictHostKeyChecking=no -i /root/id_ed25519' borg";
- $server->waitForUnit("sshd.service");
- $client->waitForUnit("network.target");
- $client->systemctl("start --wait borgbackup-job-remote");
- $client->fail("systemctl is-failed borgbackup-job-remote");
+ with subtest("remote"):
+ borg = "BORG_RSH='ssh -oStrictHostKeyChecking=no -i /root/id_ed25519' borg"
+ server.wait_for_unit("sshd.service")
+ client.wait_for_unit("network.target")
+ client.systemctl("start --wait borgbackup-job-remote")
+ client.fail("systemctl is-failed borgbackup-job-remote")
- # Make sure we can't access repos other than the specified one
- $client->fail("$borg list borg\@server:wrong");
+ # Make sure we can't access repos other than the specified one
+ client.fail("{} list borg\@server:wrong".format(borg))
- #TODO: Make sure that data is actually deleted
- };
+ # TODO: Make sure that data is actually deleted
- subtest "remoteAppendOnly", sub {
- my $borg = "BORG_RSH='ssh -oStrictHostKeyChecking=no -i /root/id_ed25519.appendOnly' borg";
- $server->waitForUnit("sshd.service");
- $client->waitForUnit("network.target");
- $client->systemctl("start --wait borgbackup-job-remoteAppendOnly");
- $client->fail("systemctl is-failed borgbackup-job-remoteAppendOnly");
+ with subtest("remoteAppendOnly"):
+ borg = (
+ "BORG_RSH='ssh -oStrictHostKeyChecking=no -i /root/id_ed25519.appendOnly' borg"
+ )
+ server.wait_for_unit("sshd.service")
+ client.wait_for_unit("network.target")
+ client.systemctl("start --wait borgbackup-job-remoteAppendOnly")
+ client.fail("systemctl is-failed borgbackup-job-remoteAppendOnly")
- # Make sure we can't access repos other than the specified one
- $client->fail("$borg list borg\@server:wrong");
-
- #TODO: Make sure that data is not actually deleted
- };
+ # Make sure we can't access repos other than the specified one
+ client.fail("{} list borg\@server:wrong".format(borg))
+ # TODO: Make sure that data is not actually deleted
'';
})
diff --git a/nixos/tests/caddy.nix b/nixos/tests/caddy.nix
new file mode 100644
index 00000000000..fc10df0c79b
--- /dev/null
+++ b/nixos/tests/caddy.nix
@@ -0,0 +1,87 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+ name = "caddy";
+ meta = with pkgs.stdenv.lib.maintainers; {
+ maintainers = [ xfix ];
+ };
+
+ nodes = {
+ webserver = { pkgs, lib, ... }: {
+ services.caddy.enable = true;
+ services.caddy.config = ''
+ http://localhost {
+ gzip
+
+ root ${
+ pkgs.runCommand "testdir" {} ''
+ mkdir "$out"
+ echo hello world > "$out/example.html"
+ ''
+ }
+ }
+ '';
+
+ nesting.clone = [
+ {
+ services.caddy.config = lib.mkForce ''
+ http://localhost {
+ gzip
+
+ root ${
+ pkgs.runCommand "testdir2" {} ''
+ mkdir "$out"
+ echo changed > "$out/example.html"
+ ''
+ }
+ }
+ '';
+ }
+
+ {
+ 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";
+ in ''
+ url = "http://localhost/example.html"
+ webserver.wait_for_unit("caddy")
+ webserver.wait_for_open_port("80")
+
+
+ def check_etag(url):
+ etag = webserver.succeed(
+ "curl -v '{}' 2>&1 | sed -n -e \"s/^< [Ee][Tt][Aa][Gg]: *//p\"".format(url)
+ )
+ etag = etag.replace("\r\n", " ")
+ http_code = webserver.succeed(
+ "curl -w \"%{{http_code}}\" -X HEAD -H 'If-None-Match: {}' {}".format(etag, url)
+ )
+ assert int(http_code) == 304, "HTTP code is not 304"
+ return etag
+
+
+ with subtest("check ETag if serving Nix store paths"):
+ old_etag = check_etag(url)
+ webserver.succeed(
+ "${etagSystem}/bin/switch-to-configuration test >&2"
+ )
+ webserver.sleep(1)
+ new_etag = check_etag(url)
+ 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"
+ )
+ webserver.wait_for_open_port("8080")
+ '';
+})
diff --git a/nixos/tests/cadvisor.nix b/nixos/tests/cadvisor.nix
index e60bae4b700..60c04f14780 100644
--- a/nixos/tests/cadvisor.nix
+++ b/nixos/tests/cadvisor.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ... } : {
+import ./make-test-python.nix ({ pkgs, ... } : {
name = "cadvisor";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ offline ];
@@ -16,20 +16,19 @@ import ./make-test.nix ({ pkgs, ... } : {
};
};
- testScript =
- ''
- startAll;
- $machine->waitForUnit("cadvisor.service");
- $machine->succeed("curl http://localhost:8080/containers/");
+ testScript = ''
+ start_all()
+ machine.wait_for_unit("cadvisor.service")
+ machine.succeed("curl http://localhost:8080/containers/")
- $influxdb->waitForUnit("influxdb.service");
+ influxdb.wait_for_unit("influxdb.service")
# create influxdb database
- $influxdb->succeed(q~
- curl -XPOST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE root"
- ~);
+ influxdb.succeed(
+ 'curl -XPOST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE root"'
+ )
- $influxdb->waitForUnit("cadvisor.service");
- $influxdb->succeed("curl http://localhost:8080/containers/");
+ influxdb.wait_for_unit("cadvisor.service")
+ influxdb.succeed("curl http://localhost:8080/containers/")
'';
})
diff --git a/nixos/tests/cassandra.nix b/nixos/tests/cassandra.nix
index c55733c9be7..05607956a9d 100644
--- a/nixos/tests/cassandra.nix
+++ b/nixos/tests/cassandra.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, lib, ... }:
+import ./make-test-python.nix ({ pkgs, lib, ... }:
let
# Change this to test a different version of Cassandra:
testPackage = pkgs.cassandra;
@@ -9,13 +9,16 @@ let
jmxRolesFile = ./cassandra-jmx-roles;
jmxAuthArgs = "-u ${(builtins.elemAt jmxRoles 0).username} -pw ${(builtins.elemAt jmxRoles 0).password}";
jmxPort = 7200; # Non-standard port so it doesn't accidentally work
+ jmxPortStr = toString jmxPort;
- # Would usually be assigned to 512M
+ # Would usually be assigned to 512M.
+ # Set it to a different value, so that we can check whether our config
+ # actually changes it.
numMaxHeapSize = "400";
getHeapLimitCommand = ''
- nodetool info -p ${toString jmxPort} | grep "^Heap Memory" | awk \'{print $NF}\'
+ nodetool info -p ${jmxPortStr} | grep "^Heap Memory" | awk '{print $NF}'
'';
- checkHeapLimitCommand = ''
+ checkHeapLimitCommand = pkgs.writeShellScript "check-heap-limit.sh" ''
[ 1 -eq "$(echo "$(${getHeapLimitCommand}) < ${numMaxHeapSize}" | ${pkgs.bc}/bin/bc)" ]
'';
@@ -44,7 +47,10 @@ let
};
in
{
- name = "cassandra-ci";
+ name = "cassandra";
+ meta = {
+ maintainers = with lib.maintainers; [ johnazoidberg ];
+ };
nodes = {
cass0 = nodeCfg "192.168.1.1" {};
@@ -52,66 +58,74 @@ in
cass2 = nodeCfg "192.168.1.3" { jvmOpts = [ "-Dcassandra.replace_address=cass1" ]; };
};
- testScript = let
- jmxPortS = toString jmxPort;
- in ''
+ testScript = ''
# Check configuration
- subtest "Timers exist", sub {
- $cass0->succeed("systemctl list-timers | grep cassandra-full-repair.timer");
- $cass0->succeed("systemctl list-timers | grep cassandra-incremental-repair.timer");
- };
- subtest "Can connect via cqlsh", sub {
- $cass0->waitForUnit("cassandra.service");
- $cass0->waitUntilSucceeds("nc -z cass0 9042");
- $cass0->succeed("echo 'show version;' | cqlsh cass0");
- };
- subtest "Nodetool is operational", sub {
- $cass0->waitForUnit("cassandra.service");
- $cass0->waitUntilSucceeds("nc -z localhost ${jmxPortS}");
- $cass0->succeed("nodetool status -p ${jmxPortS} --resolve-ip | egrep '^UN[[:space:]]+cass0'");
- };
- subtest "Cluster name was set", sub {
- $cass0->waitForUnit("cassandra.service");
- $cass0->waitUntilSucceeds("nc -z localhost ${jmxPortS}");
- $cass0->waitUntilSucceeds("nodetool describecluster -p ${jmxPortS} | grep 'Name: ${clusterName}'");
- };
- subtest "Heap limit set correctly", sub {
- # Nodetool takes a while until it can display info
- $cass0->waitUntilSucceeds('nodetool info -p ${jmxPortS}');
- $cass0->succeed('${checkHeapLimitCommand}');
- };
+ with subtest("Timers exist"):
+ cass0.succeed("systemctl list-timers | grep cassandra-full-repair.timer")
+ cass0.succeed("systemctl list-timers | grep cassandra-incremental-repair.timer")
+
+ with subtest("Can connect via cqlsh"):
+ cass0.wait_for_unit("cassandra.service")
+ cass0.wait_until_succeeds("nc -z cass0 9042")
+ cass0.succeed("echo 'show version;' | cqlsh cass0")
+
+ with subtest("Nodetool is operational"):
+ cass0.wait_for_unit("cassandra.service")
+ cass0.wait_until_succeeds("nc -z localhost ${jmxPortStr}")
+ cass0.succeed("nodetool status -p ${jmxPortStr} --resolve-ip | egrep '^UN[[:space:]]+cass0'")
+
+ with subtest("Cluster name was set"):
+ cass0.wait_for_unit("cassandra.service")
+ cass0.wait_until_succeeds("nc -z localhost ${jmxPortStr}")
+ cass0.wait_until_succeeds(
+ "nodetool describecluster -p ${jmxPortStr} | grep 'Name: ${clusterName}'"
+ )
+
+ with subtest("Heap limit set correctly"):
+ # Nodetool takes a while until it can display info
+ cass0.wait_until_succeeds("nodetool info -p ${jmxPortStr}")
+ cass0.succeed("${checkHeapLimitCommand}")
# Check cluster interaction
- subtest "Bring up cluster", sub {
- $cass1->waitForUnit("cassandra.service");
- $cass1->waitUntilSucceeds("nodetool -p ${jmxPortS} ${jmxAuthArgs} status | egrep -c '^UN' | grep 2");
- $cass0->succeed("nodetool status -p ${jmxPortS} --resolve-ip | egrep '^UN[[:space:]]+cass1'");
- };
+ with subtest("Bring up cluster"):
+ cass1.wait_for_unit("cassandra.service")
+ cass1.wait_until_succeeds(
+ "nodetool -p ${jmxPortStr} ${jmxAuthArgs} status | egrep -c '^UN' | grep 2"
+ )
+ cass0.succeed("nodetool status -p ${jmxPortStr} --resolve-ip | egrep '^UN[[:space:]]+cass1'")
'' + lib.optionalString testRemoteAuth ''
- subtest "Remote authenticated jmx", sub {
- # Doesn't work if not enabled
- $cass0->waitUntilSucceeds("nc -z localhost ${jmxPortS}");
- $cass1->fail("nc -z 192.168.1.1 ${toString jmxPort}");
- $cass1->fail("nodetool -p ${jmxPortS} -h 192.168.1.1 status");
+ with subtest("Remote authenticated jmx"):
+ # Doesn't work if not enabled
+ cass0.wait_until_succeeds("nc -z localhost ${jmxPortStr}")
+ cass1.fail("nc -z 192.168.1.1 ${jmxPortStr}")
+ cass1.fail("nodetool -p ${jmxPortStr} -h 192.168.1.1 status")
- # Works if enabled
- $cass1->waitUntilSucceeds("nc -z localhost ${toString jmxPort}");
- $cass0->succeed("nodetool -p ${jmxPortS} -h 192.168.1.2 ${jmxAuthArgs} status");
- };
+ # Works if enabled
+ cass1.wait_until_succeeds("nc -z localhost ${jmxPortStr}")
+ cass0.succeed("nodetool -p ${jmxPortStr} -h 192.168.1.2 ${jmxAuthArgs} status")
'' + ''
- subtest "Break and fix node", sub {
- $cass1->block;
- $cass0->waitUntilSucceeds("nodetool status -p ${jmxPortS} --resolve-ip | egrep -c '^DN[[:space:]]+cass1'");
- $cass0->succeed("nodetool status -p ${jmxPortS} | egrep -c '^UN' | grep 1");
- $cass1->unblock;
- $cass1->waitUntilSucceeds("nodetool -p ${jmxPortS} ${jmxAuthArgs} status | egrep -c '^UN' | grep 2");
- $cass0->succeed("nodetool status -p ${jmxPortS} | egrep -c '^UN' | grep 2");
- };
- subtest "Replace crashed node", sub {
- $cass1->crash;
- $cass2->waitForUnit("cassandra.service");
- $cass0->waitUntilFails("nodetool status -p ${jmxPortS} --resolve-ip | egrep '^UN[[:space:]]+cass1'");
- $cass0->waitUntilSucceeds("nodetool status -p ${jmxPortS} --resolve-ip | egrep '^UN[[:space:]]+cass2'");
- };
+ with subtest("Break and fix node"):
+ cass1.block()
+ cass0.wait_until_succeeds(
+ "nodetool status -p ${jmxPortStr} --resolve-ip | egrep -c '^DN[[:space:]]+cass1'"
+ )
+ cass0.succeed("nodetool status -p ${jmxPortStr} | egrep -c '^UN' | grep 1")
+ cass1.unblock()
+ cass1.wait_until_succeeds(
+ "nodetool -p ${jmxPortStr} ${jmxAuthArgs} status | egrep -c '^UN' | grep 2"
+ )
+ cass0.succeed("nodetool status -p ${jmxPortStr} | egrep -c '^UN' | grep 2")
+
+ with subtest("Replace crashed node"):
+ cass1.block() # .crash() waits until it's fully shutdown
+ cass2.start()
+ cass0.wait_until_fails(
+ "nodetool status -p ${jmxPortStr} --resolve-ip | egrep '^UN[[:space:]]+cass1'"
+ )
+
+ cass2.wait_for_unit("cassandra.service")
+ cass0.wait_until_succeeds(
+ "nodetool status -p ${jmxPortStr} --resolve-ip | egrep '^UN[[:space:]]+cass2'"
+ )
'';
})
diff --git a/nixos/tests/ceph-multi-node.nix b/nixos/tests/ceph-multi-node.nix
new file mode 100644
index 00000000000..52a0b5caf23
--- /dev/null
+++ b/nixos/tests/ceph-multi-node.nix
@@ -0,0 +1,225 @@
+import ./make-test-python.nix ({pkgs, lib, ...}:
+
+let
+ cfg = {
+ clusterId = "066ae264-2a5d-4729-8001-6ad265f50b03";
+ monA = {
+ name = "a";
+ ip = "192.168.1.1";
+ };
+ osd0 = {
+ name = "0";
+ ip = "192.168.1.2";
+ key = "AQBCEJNa3s8nHRAANvdsr93KqzBznuIWm2gOGg==";
+ uuid = "55ba2294-3e24-478f-bee0-9dca4c231dd9";
+ };
+ osd1 = {
+ name = "1";
+ ip = "192.168.1.3";
+ key = "AQBEEJNac00kExAAXEgy943BGyOpVH1LLlHafQ==";
+ uuid = "5e97a838-85b6-43b0-8950-cb56d554d1e5";
+ };
+ };
+ generateCephConfig = { daemonConfig }: {
+ enable = true;
+ global = {
+ fsid = cfg.clusterId;
+ monHost = cfg.monA.ip;
+ monInitialMembers = cfg.monA.name;
+ };
+ } // daemonConfig;
+
+ generateHost = { pkgs, cephConfig, networkConfig, ... }: {
+ virtualisation = {
+ memorySize = 512;
+ emptyDiskImages = [ 20480 ];
+ vlans = [ 1 ];
+ };
+
+ networking = networkConfig;
+
+ environment.systemPackages = with pkgs; [
+ bash
+ sudo
+ ceph
+ xfsprogs
+ netcat-openbsd
+ ];
+
+ boot.kernelModules = [ "xfs" ];
+
+ services.ceph = cephConfig;
+ };
+
+ networkMonA = {
+ dhcpcd.enable = false;
+ interfaces.eth1.ipv4.addresses = pkgs.lib.mkOverride 0 [
+ { address = cfg.monA.ip; prefixLength = 24; }
+ ];
+ firewall = {
+ allowedTCPPorts = [ 6789 3300 ];
+ allowedTCPPortRanges = [ { from = 6800; to = 7300; } ];
+ };
+ };
+ cephConfigMonA = generateCephConfig { daemonConfig = {
+ mon = {
+ enable = true;
+ daemons = [ cfg.monA.name ];
+ };
+ mgr = {
+ enable = true;
+ daemons = [ cfg.monA.name ];
+ };
+ }; };
+
+ networkOsd0 = {
+ dhcpcd.enable = false;
+ interfaces.eth1.ipv4.addresses = pkgs.lib.mkOverride 0 [
+ { address = cfg.osd0.ip; prefixLength = 24; }
+ ];
+ firewall = {
+ allowedTCPPortRanges = [ { from = 6800; to = 7300; } ];
+ };
+ };
+ cephConfigOsd0 = generateCephConfig { daemonConfig = {
+ osd = {
+ enable = true;
+ daemons = [ cfg.osd0.name ];
+ };
+ }; };
+
+ networkOsd1 = {
+ dhcpcd.enable = false;
+ interfaces.eth1.ipv4.addresses = pkgs.lib.mkOverride 0 [
+ { address = cfg.osd1.ip; prefixLength = 24; }
+ ];
+ firewall = {
+ allowedTCPPortRanges = [ { from = 6800; to = 7300; } ];
+ };
+ };
+ cephConfigOsd1 = generateCephConfig { daemonConfig = {
+ osd = {
+ enable = true;
+ daemons = [ cfg.osd1.name ];
+ };
+ }; };
+
+ # Following deployment is based on the manual deployment described here:
+ # https://docs.ceph.com/docs/master/install/manual-deployment/
+ # For other ways to deploy a ceph cluster, look at the documentation at
+ # https://docs.ceph.com/docs/master/
+ testscript = { ... }: ''
+ start_all()
+
+ monA.wait_for_unit("network.target")
+ osd0.wait_for_unit("network.target")
+ osd1.wait_for_unit("network.target")
+
+ # Bootstrap ceph-mon daemon
+ monA.succeed(
+ "sudo -u ceph ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'",
+ "sudo -u ceph ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'",
+ "sudo -u ceph ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring",
+ "monmaptool --create --add ${cfg.monA.name} ${cfg.monA.ip} --fsid ${cfg.clusterId} /tmp/monmap",
+ "sudo -u ceph ceph-mon --mkfs -i ${cfg.monA.name} --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring",
+ "sudo -u ceph mkdir -p /var/lib/ceph/mgr/ceph-${cfg.monA.name}/",
+ "sudo -u ceph touch /var/lib/ceph/mon/ceph-${cfg.monA.name}/done",
+ "systemctl start ceph-mon-${cfg.monA.name}",
+ )
+ monA.wait_for_unit("ceph-mon-${cfg.monA.name}")
+ monA.succeed("ceph mon enable-msgr2")
+
+ # Can't check ceph status until a mon is up
+ monA.succeed("ceph -s | grep 'mon: 1 daemons'")
+
+ # Start the ceph-mgr daemon, it has no deps and hardly any setup
+ monA.succeed(
+ "ceph auth get-or-create mgr.${cfg.monA.name} mon 'allow profile mgr' osd 'allow *' mds 'allow *' > /var/lib/ceph/mgr/ceph-${cfg.monA.name}/keyring",
+ "systemctl start ceph-mgr-${cfg.monA.name}",
+ )
+ monA.wait_for_unit("ceph-mgr-a")
+ monA.wait_until_succeeds("ceph -s | grep 'quorum ${cfg.monA.name}'")
+ monA.wait_until_succeeds("ceph -s | grep 'mgr: ${cfg.monA.name}(active,'")
+
+ # Send the admin keyring to the OSD machines
+ monA.succeed("cp /etc/ceph/ceph.client.admin.keyring /tmp/shared")
+ osd0.succeed("cp /tmp/shared/ceph.client.admin.keyring /etc/ceph")
+ osd1.succeed("cp /tmp/shared/ceph.client.admin.keyring /etc/ceph")
+
+ # Bootstrap both OSDs
+ osd0.succeed(
+ "mkfs.xfs /dev/vdb",
+ "mkdir -p /var/lib/ceph/osd/ceph-${cfg.osd0.name}",
+ "mount /dev/vdb /var/lib/ceph/osd/ceph-${cfg.osd0.name}",
+ "ceph-authtool --create-keyring /var/lib/ceph/osd/ceph-${cfg.osd0.name}/keyring --name osd.${cfg.osd0.name} --add-key ${cfg.osd0.key}",
+ 'echo \'{"cephx_secret": "${cfg.osd0.key}"}\' | ceph osd new ${cfg.osd0.uuid} -i -',
+ )
+ osd1.succeed(
+ "mkfs.xfs /dev/vdb",
+ "mkdir -p /var/lib/ceph/osd/ceph-${cfg.osd1.name}",
+ "mount /dev/vdb /var/lib/ceph/osd/ceph-${cfg.osd1.name}",
+ "ceph-authtool --create-keyring /var/lib/ceph/osd/ceph-${cfg.osd1.name}/keyring --name osd.${cfg.osd1.name} --add-key ${cfg.osd1.key}",
+ 'echo \'{"cephx_secret": "${cfg.osd1.key}"}\' | ceph osd new ${cfg.osd1.uuid} -i -',
+ )
+
+ # Initialize the OSDs with regular filestore
+ osd0.succeed(
+ "ceph-osd -i ${cfg.osd0.name} --mkfs --osd-uuid ${cfg.osd0.uuid}",
+ "chown -R ceph:ceph /var/lib/ceph/osd",
+ "systemctl start ceph-osd-${cfg.osd0.name}",
+ )
+ osd1.succeed(
+ "ceph-osd -i ${cfg.osd1.name} --mkfs --osd-uuid ${cfg.osd1.uuid}",
+ "chown -R ceph:ceph /var/lib/ceph/osd",
+ "systemctl start ceph-osd-${cfg.osd1.name}",
+ )
+ monA.wait_until_succeeds("ceph osd stat | grep -e '2 osds: 2 up[^,]*, 2 in'")
+ monA.wait_until_succeeds("ceph -s | grep 'mgr: ${cfg.monA.name}(active,'")
+ monA.wait_until_succeeds("ceph -s | grep 'HEALTH_OK'")
+
+ monA.succeed(
+ "ceph osd pool create multi-node-test 100 100",
+ "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.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.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",
+ )
+
+ # Shut down ceph on all machines in a very unpolite way
+ monA.crash()
+ osd0.crash()
+ osd1.crash()
+
+ # Start it up
+ osd0.start()
+ osd1.start()
+ monA.start()
+
+ # Ensure the cluster comes back up again
+ monA.succeed("ceph -s | grep 'mon: 1 daemons'")
+ monA.wait_until_succeeds("ceph -s | grep 'quorum ${cfg.monA.name}'")
+ monA.wait_until_succeeds("ceph osd stat | grep -e '2 osds: 2 up[^,]*, 2 in'")
+ monA.wait_until_succeeds("ceph -s | grep 'mgr: ${cfg.monA.name}(active,'")
+ monA.wait_until_succeeds("ceph -s | grep 'HEALTH_OK'")
+ '';
+in {
+ name = "basic-multi-node-ceph-cluster";
+ meta = with pkgs.stdenv.lib.maintainers; {
+ maintainers = [ lejonet ];
+ };
+
+ nodes = {
+ monA = generateHost { pkgs = pkgs; cephConfig = cephConfigMonA; networkConfig = networkMonA; };
+ osd0 = generateHost { pkgs = pkgs; cephConfig = cephConfigOsd0; networkConfig = networkOsd0; };
+ osd1 = generateHost { pkgs = pkgs; cephConfig = cephConfigOsd1; networkConfig = networkOsd1; };
+ };
+
+ testScript = testscript;
+})
diff --git a/nixos/tests/ceph-single-node.nix b/nixos/tests/ceph-single-node.nix
new file mode 100644
index 00000000000..da92a73e14d
--- /dev/null
+++ b/nixos/tests/ceph-single-node.nix
@@ -0,0 +1,183 @@
+import ./make-test-python.nix ({pkgs, lib, ...}:
+
+let
+ cfg = {
+ clusterId = "066ae264-2a5d-4729-8001-6ad265f50b03";
+ monA = {
+ name = "a";
+ ip = "192.168.1.1";
+ };
+ osd0 = {
+ name = "0";
+ key = "AQBCEJNa3s8nHRAANvdsr93KqzBznuIWm2gOGg==";
+ uuid = "55ba2294-3e24-478f-bee0-9dca4c231dd9";
+ };
+ osd1 = {
+ name = "1";
+ key = "AQBEEJNac00kExAAXEgy943BGyOpVH1LLlHafQ==";
+ uuid = "5e97a838-85b6-43b0-8950-cb56d554d1e5";
+ };
+ };
+ generateCephConfig = { daemonConfig }: {
+ enable = true;
+ global = {
+ fsid = cfg.clusterId;
+ monHost = cfg.monA.ip;
+ monInitialMembers = cfg.monA.name;
+ };
+ } // daemonConfig;
+
+ generateHost = { pkgs, cephConfig, networkConfig, ... }: {
+ virtualisation = {
+ memorySize = 512;
+ emptyDiskImages = [ 20480 20480 ];
+ vlans = [ 1 ];
+ };
+
+ networking = networkConfig;
+
+ environment.systemPackages = with pkgs; [
+ bash
+ sudo
+ ceph
+ xfsprogs
+ ];
+
+ boot.kernelModules = [ "xfs" ];
+
+ services.ceph = cephConfig;
+ };
+
+ networkMonA = {
+ dhcpcd.enable = false;
+ interfaces.eth1.ipv4.addresses = pkgs.lib.mkOverride 0 [
+ { address = cfg.monA.ip; prefixLength = 24; }
+ ];
+ };
+ cephConfigMonA = generateCephConfig { daemonConfig = {
+ mon = {
+ enable = true;
+ daemons = [ cfg.monA.name ];
+ };
+ mgr = {
+ enable = true;
+ daemons = [ cfg.monA.name ];
+ };
+ osd = {
+ enable = true;
+ daemons = [ cfg.osd0.name cfg.osd1.name ];
+ };
+ }; };
+
+ # Following deployment is based on the manual deployment described here:
+ # https://docs.ceph.com/docs/master/install/manual-deployment/
+ # For other ways to deploy a ceph cluster, look at the documentation at
+ # https://docs.ceph.com/docs/master/
+ testscript = { ... }: ''
+ start_all()
+
+ monA.wait_for_unit("network.target")
+
+ # Bootstrap ceph-mon daemon
+ monA.succeed(
+ "sudo -u ceph ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'",
+ "sudo -u ceph ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'",
+ "sudo -u ceph ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring",
+ "monmaptool --create --add ${cfg.monA.name} ${cfg.monA.ip} --fsid ${cfg.clusterId} /tmp/monmap",
+ "sudo -u ceph ceph-mon --mkfs -i ${cfg.monA.name} --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring",
+ "sudo -u ceph touch /var/lib/ceph/mon/ceph-${cfg.monA.name}/done",
+ "systemctl start ceph-mon-${cfg.monA.name}",
+ )
+ monA.wait_for_unit("ceph-mon-${cfg.monA.name}")
+ monA.succeed("ceph mon enable-msgr2")
+
+ # Can't check ceph status until a mon is up
+ monA.succeed("ceph -s | grep 'mon: 1 daemons'")
+
+ # Start the ceph-mgr daemon, after copying in the keyring
+ monA.succeed(
+ "sudo -u ceph mkdir -p /var/lib/ceph/mgr/ceph-${cfg.monA.name}/",
+ "ceph auth get-or-create mgr.${cfg.monA.name} mon 'allow profile mgr' osd 'allow *' mds 'allow *' > /var/lib/ceph/mgr/ceph-${cfg.monA.name}/keyring",
+ "systemctl start ceph-mgr-${cfg.monA.name}",
+ )
+ monA.wait_for_unit("ceph-mgr-a")
+ monA.wait_until_succeeds("ceph -s | grep 'quorum ${cfg.monA.name}'")
+ monA.wait_until_succeeds("ceph -s | grep 'mgr: ${cfg.monA.name}(active,'")
+
+ # Bootstrap both OSDs
+ monA.succeed(
+ "mkfs.xfs /dev/vdb",
+ "mkfs.xfs /dev/vdc",
+ "mkdir -p /var/lib/ceph/osd/ceph-${cfg.osd0.name}",
+ "mount /dev/vdb /var/lib/ceph/osd/ceph-${cfg.osd0.name}",
+ "mkdir -p /var/lib/ceph/osd/ceph-${cfg.osd1.name}",
+ "mount /dev/vdc /var/lib/ceph/osd/ceph-${cfg.osd1.name}",
+ "ceph-authtool --create-keyring /var/lib/ceph/osd/ceph-${cfg.osd0.name}/keyring --name osd.${cfg.osd0.name} --add-key ${cfg.osd0.key}",
+ "ceph-authtool --create-keyring /var/lib/ceph/osd/ceph-${cfg.osd1.name}/keyring --name osd.${cfg.osd1.name} --add-key ${cfg.osd1.key}",
+ 'echo \'{"cephx_secret": "${cfg.osd0.key}"}\' | ceph osd new ${cfg.osd0.uuid} -i -',
+ 'echo \'{"cephx_secret": "${cfg.osd1.key}"}\' | ceph osd new ${cfg.osd1.uuid} -i -',
+ )
+
+ # Initialize the OSDs with regular filestore
+ monA.succeed(
+ "ceph-osd -i ${cfg.osd0.name} --mkfs --osd-uuid ${cfg.osd0.uuid}",
+ "ceph-osd -i ${cfg.osd1.name} --mkfs --osd-uuid ${cfg.osd1.uuid}",
+ "chown -R ceph:ceph /var/lib/ceph/osd",
+ "systemctl start ceph-osd-${cfg.osd0.name}",
+ "systemctl start ceph-osd-${cfg.osd1.name}",
+ )
+ monA.wait_until_succeeds("ceph osd stat | grep -e '2 osds: 2 up[^,]*, 2 in'")
+ monA.wait_until_succeeds("ceph -s | grep 'mgr: ${cfg.monA.name}(active,'")
+ monA.wait_until_succeeds("ceph -s | grep 'HEALTH_OK'")
+
+ monA.succeed(
+ "ceph osd pool create single-node-test 100 100",
+ "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.succeed(
+ "ceph osd getcrushmap -o crush",
+ "crushtool -d crush -o decrushed",
+ "sed 's/step chooseleaf firstn 0 type host/step chooseleaf firstn 0 type osd/' decrushed > modcrush",
+ "crushtool -c modcrush -o recrushed",
+ "ceph osd setcrushmap -i recrushed",
+ "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.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",
+ )
+
+ # Shut down ceph by stopping ceph.target.
+ monA.succeed("systemctl stop ceph.target")
+
+ # Start it up
+ monA.succeed("systemctl start ceph.target")
+ monA.wait_for_unit("ceph-mon-${cfg.monA.name}")
+ monA.wait_for_unit("ceph-mgr-${cfg.monA.name}")
+ monA.wait_for_unit("ceph-osd-${cfg.osd0.name}")
+ monA.wait_for_unit("ceph-osd-${cfg.osd1.name}")
+
+ # Ensure the cluster comes back up again
+ monA.succeed("ceph -s | grep 'mon: 1 daemons'")
+ monA.wait_until_succeeds("ceph -s | grep 'quorum ${cfg.monA.name}'")
+ monA.wait_until_succeeds("ceph osd stat | grep -e '2 osds: 2 up[^,]*, 2 in'")
+ monA.wait_until_succeeds("ceph -s | grep 'mgr: ${cfg.monA.name}(active,'")
+ monA.wait_until_succeeds("ceph -s | grep 'HEALTH_OK'")
+ '';
+in {
+ name = "basic-single-node-ceph-cluster";
+ meta = with pkgs.stdenv.lib.maintainers; {
+ maintainers = [ lejonet johanot ];
+ };
+
+ nodes = {
+ monA = generateHost { pkgs = pkgs; cephConfig = cephConfigMonA; networkConfig = networkMonA; };
+ };
+
+ testScript = testscript;
+})
diff --git a/nixos/tests/ceph.nix b/nixos/tests/ceph.nix
deleted file mode 100644
index 57120ff978f..00000000000
--- a/nixos/tests/ceph.nix
+++ /dev/null
@@ -1,161 +0,0 @@
-import ./make-test.nix ({pkgs, lib, ...}: {
- name = "All-in-one-basic-ceph-cluster";
- meta = with pkgs.stdenv.lib.maintainers; {
- maintainers = [ johanot lejonet ];
- };
-
- nodes = {
- aio = { pkgs, ... }: {
- virtualisation = {
- memorySize = 1536;
- emptyDiskImages = [ 20480 20480 ];
- vlans = [ 1 ];
- };
-
- networking = {
- useDHCP = false;
- interfaces.eth1.ipv4.addresses = pkgs.lib.mkOverride 0 [
- { address = "192.168.1.1"; prefixLength = 24; }
- ];
- };
-
- environment.systemPackages = with pkgs; [
- bash
- sudo
- ceph
- xfsprogs
- ];
-
- boot.kernelModules = [ "xfs" ];
-
- services.ceph.enable = true;
- services.ceph.global = {
- fsid = "066ae264-2a5d-4729-8001-6ad265f50b03";
- monInitialMembers = "aio";
- monHost = "192.168.1.1";
- };
-
- services.ceph.mon = {
- enable = true;
- daemons = [ "aio" ];
- };
-
- services.ceph.mgr = {
- enable = true;
- daemons = [ "aio" ];
- };
-
- services.ceph.osd = {
- enable = true;
- daemons = [ "0" "1" ];
- };
-
- # So that we don't have to battle systemd when bootstraping
- systemd.targets.ceph.wantedBy = lib.mkForce [];
- };
- };
-
- testScript = { ... }: ''
- startAll;
-
- $aio->waitForUnit("network.target");
-
- # Create the ceph-related directories
- $aio->mustSucceed(
- "mkdir -p /var/lib/ceph/mgr/ceph-aio",
- "mkdir -p /var/lib/ceph/mon/ceph-aio",
- "mkdir -p /var/lib/ceph/osd/ceph-{0,1}",
- "chown ceph:ceph -R /var/lib/ceph/",
- "mkdir -p /etc/ceph",
- "chown ceph:ceph -R /etc/ceph"
- );
-
- # Bootstrap ceph-mon daemon
- $aio->mustSucceed(
- "sudo -u ceph ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'",
- "sudo -u ceph ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'",
- "sudo -u ceph ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring",
- "monmaptool --create --add aio 192.168.1.1 --fsid 066ae264-2a5d-4729-8001-6ad265f50b03 /tmp/monmap",
- "sudo -u ceph ceph-mon --mkfs -i aio --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring",
- "sudo -u ceph touch /var/lib/ceph/mon/ceph-aio/done",
- "systemctl start ceph-mon-aio"
- );
- $aio->waitForUnit("ceph-mon-aio");
- $aio->mustSucceed("ceph mon enable-msgr2");
-
- # Can't check ceph status until a mon is up
- $aio->succeed("ceph -s | grep 'mon: 1 daemons'");
-
- # Start the ceph-mgr daemon, it has no deps and hardly any setup
- $aio->mustSucceed(
- "ceph auth get-or-create mgr.aio mon 'allow profile mgr' osd 'allow *' mds 'allow *' > /var/lib/ceph/mgr/ceph-aio/keyring",
- "systemctl start ceph-mgr-aio"
- );
- $aio->waitForUnit("ceph-mgr-aio");
- $aio->waitUntilSucceeds("ceph -s | grep 'quorum aio'");
- $aio->waitUntilSucceeds("ceph -s | grep 'mgr: aio(active,'");
-
- # Bootstrap both OSDs
- $aio->mustSucceed(
- "mkfs.xfs /dev/vdb",
- "mkfs.xfs /dev/vdc",
- "mount /dev/vdb /var/lib/ceph/osd/ceph-0",
- "mount /dev/vdc /var/lib/ceph/osd/ceph-1",
- "ceph-authtool --create-keyring /var/lib/ceph/osd/ceph-0/keyring --name osd.0 --add-key AQBCEJNa3s8nHRAANvdsr93KqzBznuIWm2gOGg==",
- "ceph-authtool --create-keyring /var/lib/ceph/osd/ceph-1/keyring --name osd.1 --add-key AQBEEJNac00kExAAXEgy943BGyOpVH1LLlHafQ==",
- "echo '{\"cephx_secret\": \"AQBCEJNa3s8nHRAANvdsr93KqzBznuIWm2gOGg==\"}' | ceph osd new 55ba2294-3e24-478f-bee0-9dca4c231dd9 -i -",
- "echo '{\"cephx_secret\": \"AQBEEJNac00kExAAXEgy943BGyOpVH1LLlHafQ==\"}' | ceph osd new 5e97a838-85b6-43b0-8950-cb56d554d1e5 -i -"
- );
-
- # Initialize the OSDs with regular filestore
- $aio->mustSucceed(
- "ceph-osd -i 0 --mkfs --osd-uuid 55ba2294-3e24-478f-bee0-9dca4c231dd9",
- "ceph-osd -i 1 --mkfs --osd-uuid 5e97a838-85b6-43b0-8950-cb56d554d1e5",
- "chown -R ceph:ceph /var/lib/ceph/osd",
- "systemctl start ceph-osd-0",
- "systemctl start ceph-osd-1"
- );
-
- $aio->waitUntilSucceeds("ceph osd stat | grep -e '2 osds: 2 up[^,]*, 2 in'");
- $aio->waitUntilSucceeds("ceph -s | grep 'mgr: aio(active,'");
- $aio->waitUntilSucceeds("ceph -s | grep 'HEALTH_OK'");
-
- $aio->mustSucceed(
- "ceph osd pool create aio-test 100 100",
- "ceph osd pool ls | grep 'aio-test'",
- "ceph osd pool rename aio-test aio-other-test",
- "ceph osd pool ls | grep 'aio-other-test'",
- "ceph -s | grep '1 pools, 100 pgs'",
- "ceph osd getcrushmap -o crush",
- "crushtool -d crush -o decrushed",
- "sed 's/step chooseleaf firstn 0 type host/step chooseleaf firstn 0 type osd/' decrushed > modcrush",
- "crushtool -c modcrush -o recrushed",
- "ceph osd setcrushmap -i recrushed",
- "ceph osd pool set aio-other-test size 2"
- );
- $aio->waitUntilSucceeds("ceph -s | grep 'HEALTH_OK'");
- $aio->waitUntilSucceeds("ceph -s | grep '100 active+clean'");
- $aio->mustFail(
- "ceph osd pool ls | grep 'aio-test'",
- "ceph osd pool delete aio-other-test aio-other-test --yes-i-really-really-mean-it"
- );
-
- # As we disable the target in the config, we still want to test that it works as intended
- $aio->mustSucceed(
- "systemctl stop ceph-osd-0",
- "systemctl stop ceph-osd-1",
- "systemctl stop ceph-mgr-aio",
- "systemctl stop ceph-mon-aio"
- );
- $aio->succeed("systemctl start ceph.target");
- $aio->waitForUnit("ceph-mon-aio");
- $aio->waitForUnit("ceph-mgr-aio");
- $aio->waitForUnit("ceph-osd-0");
- $aio->waitForUnit("ceph-osd-1");
- $aio->succeed("ceph -s | grep 'mon: 1 daemons'");
- $aio->waitUntilSucceeds("ceph -s | grep 'quorum aio'");
- $aio->waitUntilSucceeds("ceph osd stat | grep -e '2 osds: 2 up[^,]*, 2 in'");
- $aio->waitUntilSucceeds("ceph -s | grep 'mgr: aio(active,'");
- $aio->waitUntilSucceeds("ceph -s | grep 'HEALTH_OK'");
- '';
-})
diff --git a/nixos/tests/certmgr.nix b/nixos/tests/certmgr.nix
index fe67833808c..cb69f35e862 100644
--- a/nixos/tests/certmgr.nix
+++ b/nixos/tests/certmgr.nix
@@ -3,7 +3,7 @@
pkgs ? import ../.. { inherit system config; }
}:
-with import ../lib/testing.nix { inherit system pkgs; };
+with import ../lib/testing-python.nix { inherit system pkgs; };
let
mkSpec = { host, service ? null, action }: {
inherit action;
@@ -123,17 +123,17 @@ in
)));
};
testScript = ''
- $machine->waitForUnit('cfssl.service');
- $machine->waitUntilSucceeds('ls /tmp/decl.example.org-ca.pem');
- $machine->waitUntilSucceeds('ls /tmp/decl.example.org-key.pem');
- $machine->waitUntilSucceeds('ls /tmp/decl.example.org-cert.pem');
- $machine->waitUntilSucceeds('ls /tmp/imp.example.org-ca.pem');
- $machine->waitUntilSucceeds('ls /tmp/imp.example.org-key.pem');
- $machine->waitUntilSucceeds('ls /tmp/imp.example.org-cert.pem');
- $machine->waitForUnit('nginx.service');
- $machine->succeed('[ "1" -lt "$(journalctl -u nginx | grep "Starting Nginx" | wc -l)" ]');
- $machine->succeed('curl --cacert /tmp/imp.example.org-ca.pem https://imp.example.org');
- $machine->succeed('curl --cacert /tmp/decl.example.org-ca.pem https://decl.example.org');
+ machine.wait_for_unit("cfssl.service")
+ machine.wait_until_succeeds("ls /tmp/decl.example.org-ca.pem")
+ machine.wait_until_succeeds("ls /tmp/decl.example.org-key.pem")
+ machine.wait_until_succeeds("ls /tmp/decl.example.org-cert.pem")
+ machine.wait_until_succeeds("ls /tmp/imp.example.org-ca.pem")
+ machine.wait_until_succeeds("ls /tmp/imp.example.org-key.pem")
+ machine.wait_until_succeeds("ls /tmp/imp.example.org-cert.pem")
+ machine.wait_for_unit("nginx.service")
+ assert 1 < int(machine.succeed('journalctl -u nginx | grep "Starting Nginx" | wc -l'))
+ machine.succeed("curl --cacert /tmp/imp.example.org-ca.pem https://imp.example.org")
+ machine.succeed("curl --cacert /tmp/decl.example.org-ca.pem https://decl.example.org")
'';
};
@@ -143,8 +143,8 @@ in
test = mkSpec { host = "command.example.org"; action = "touch /tmp/command.executed"; };
};
testScript = ''
- $machine->waitForUnit('cfssl.service');
- $machine->waitUntilSucceeds('stat /tmp/command.executed');
+ machine.wait_for_unit("cfssl.service")
+ machine.wait_until_succeeds("stat /tmp/command.executed")
'';
};
diff --git a/nixos/tests/cfssl.nix b/nixos/tests/cfssl.nix
index 513ed8c4574..e291fc285fb 100644
--- a/nixos/tests/cfssl.nix
+++ b/nixos/tests/cfssl.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, ...} : {
name = "cfssl";
machine = { config, lib, pkgs, ... }:
@@ -60,8 +60,8 @@ import ./make-test.nix ({ pkgs, ...} : {
});
in
''
- $machine->waitForUnit('cfssl.service');
- $machine->waitUntilSucceeds('${cfsslrequest}');
- $machine->succeed('ls /tmp/certificate-key.pem');
+ machine.wait_for_unit("cfssl.service")
+ machine.wait_until_succeeds("${cfsslrequest}")
+ machine.succeed("ls /tmp/certificate-key.pem")
'';
})
diff --git a/nixos/tests/cjdns.nix b/nixos/tests/cjdns.nix
index 6660eecf05b..d72236d415d 100644
--- a/nixos/tests/cjdns.nix
+++ b/nixos/tests/cjdns.nix
@@ -17,7 +17,7 @@ let
in
-import ./make-test.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, ...} : {
name = "cjdns";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ ehmry ];
@@ -83,36 +83,39 @@ import ./make-test.nix ({ pkgs, ...} : {
testScript =
''
- startAll;
+ import re
- $alice->waitForUnit("cjdns.service");
- $bob->waitForUnit("cjdns.service");
- $carol->waitForUnit("cjdns.service");
+ start_all()
- sub cjdnsIp {
- my ($machine) = @_;
- my $ip = (split /[ \/]+/, $machine->succeed("ip -o -6 addr show dev tun0"))[3];
- $machine->log("has ip $ip");
- return $ip;
- }
+ alice.wait_for_unit("cjdns.service")
+ bob.wait_for_unit("cjdns.service")
+ carol.wait_for_unit("cjdns.service")
- my $aliceIp6 = cjdnsIp $alice;
- my $bobIp6 = cjdnsIp $bob;
- my $carolIp6 = cjdnsIp $carol;
+
+ def cjdns_ip(machine):
+ res = machine.succeed("ip -o -6 addr show dev tun0")
+ ip = re.split("\s+|/", res)[3]
+ machine.log("has ip {}".format(ip))
+ return ip
+
+
+ alice_ip6 = cjdns_ip(alice)
+ bob_ip6 = cjdns_ip(bob)
+ carol_ip6 = cjdns_ip(carol)
# ping a few times each to let the routing table establish itself
- $alice->succeed("ping -c 4 $carolIp6");
- $bob->succeed("ping -c 4 $carolIp6");
+ alice.succeed("ping -c 4 {}".format(carol_ip6))
+ bob.succeed("ping -c 4 {}".format(carol_ip6))
- $carol->succeed("ping -c 4 $aliceIp6");
- $carol->succeed("ping -c 4 $bobIp6");
+ carol.succeed("ping -c 4 {}".format(alice_ip6))
+ carol.succeed("ping -c 4 {}".format(bob_ip6))
- $alice->succeed("ping -c 4 $bobIp6");
- $bob->succeed("ping -c 4 $aliceIp6");
+ alice.succeed("ping -c 4 {}".format(bob_ip6))
+ bob.succeed("ping -c 4 {}".format(alice_ip6))
- $alice->waitForUnit("httpd.service");
+ alice.wait_for_unit("httpd.service")
- $bob->succeed("curl --fail -g http://[$aliceIp6]");
+ bob.succeed("curl --fail -g http://[{}]".format(alice_ip6))
'';
})
diff --git a/nixos/tests/clickhouse.nix b/nixos/tests/clickhouse.nix
index 7d835069ec4..2d8a7cf7aa9 100644
--- a/nixos/tests/clickhouse.nix
+++ b/nixos/tests/clickhouse.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ... }: {
+import ./make-test-python.nix ({ pkgs, ... }: {
name = "clickhouse";
meta.maintainers = with pkgs.stdenv.lib.maintainers; [ ma27 ];
@@ -14,12 +14,18 @@ import ./make-test.nix ({ pkgs, ... }: {
selectQuery = pkgs.writeText "select.sql" "SELECT * from `demo`";
in
''
- $machine->start();
- $machine->waitForUnit("clickhouse.service");
- $machine->waitForOpenPort(9000);
+ machine.start()
+ machine.wait_for_unit("clickhouse.service")
+ machine.wait_for_open_port(9000)
- $machine->succeed("cat ${tableDDL} | clickhouse-client");
- $machine->succeed("cat ${insertQuery} | clickhouse-client");
- $machine->succeed("cat ${selectQuery} | clickhouse-client | grep foo");
+ machine.succeed(
+ "cat ${tableDDL} | clickhouse-client"
+ )
+ machine.succeed(
+ "cat ${insertQuery} | clickhouse-client"
+ )
+ machine.succeed(
+ "cat ${selectQuery} | clickhouse-client | grep foo"
+ )
'';
})
diff --git a/nixos/tests/cloud-init.nix b/nixos/tests/cloud-init.nix
index 516d29c9036..aafa6e24e84 100644
--- a/nixos/tests/cloud-init.nix
+++ b/nixos/tests/cloud-init.nix
@@ -3,7 +3,7 @@
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
@@ -30,6 +30,7 @@ let
'';
};
in makeTest {
+ name = "cloud-init";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ lewo ];
};
@@ -40,10 +41,12 @@ in makeTest {
services.cloud-init.enable = true;
};
testScript = ''
- $machine->start;
- $machine->waitForUnit("cloud-init.service");
- $machine->succeed("cat /tmp/cloudinit-write-file | grep -q 'cloudinit'");
+ machine.start()
+ machine.wait_for_unit("cloud-init.service")
+ machine.succeed("cat /tmp/cloudinit-write-file | grep -q 'cloudinit'")
- $machine->waitUntilSucceeds("cat /root/.ssh/authorized_keys | grep -q 'should be a key!'");
+ machine.wait_until_succeeds(
+ "cat /root/.ssh/authorized_keys | grep -q 'should be a key!'"
+ )
'';
}
diff --git a/nixos/tests/codimd.nix b/nixos/tests/codimd.nix
index 562f6f24f99..b1acbf4a832 100644
--- a/nixos/tests/codimd.nix
+++ b/nixos/tests/codimd.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, lib, ... }:
+import ./make-test-python.nix ({ pkgs, lib, ... }:
{
name = "codimd";
@@ -35,20 +35,18 @@ import ./make-test.nix ({ pkgs, lib, ... }:
};
testScript = ''
- startAll();
+ start_all()
- subtest "CodiMD sqlite", sub {
- $codimdSqlite->waitForUnit("codimd.service");
- $codimdSqlite->waitForOpenPort(3000);
- $codimdSqlite->waitUntilSucceeds("curl -sSf http://localhost:3000/new");
- };
+ with subtest("CodiMD sqlite"):
+ codimdSqlite.wait_for_unit("codimd.service")
+ codimdSqlite.wait_for_open_port(3000)
+ codimdSqlite.wait_until_succeeds("curl -sSf http://localhost:3000/new")
- subtest "CodiMD postgres", sub {
- $codimdPostgres->waitForUnit("postgresql.service");
- $codimdPostgres->waitForUnit("codimd.service");
- $codimdPostgres->waitForOpenPort(5432);
- $codimdPostgres->waitForOpenPort(3000);
- $codimdPostgres->waitUntilSucceeds("curl -sSf http://localhost:3000/new");
- };
+ with subtest("CodiMD postgres"):
+ codimdPostgres.wait_for_unit("postgresql.service")
+ codimdPostgres.wait_for_unit("codimd.service")
+ codimdPostgres.wait_for_open_port(5432)
+ codimdPostgres.wait_for_open_port(3000)
+ codimdPostgres.wait_until_succeeds("curl -sSf http://localhost:3000/new")
'';
})
diff --git a/nixos/tests/colord.nix b/nixos/tests/colord.nix
deleted file mode 100644
index ce38aaca4bf..00000000000
--- a/nixos/tests/colord.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-# run installed tests
-import ./make-test.nix ({ pkgs, ... }:
-
-{
- name = "colord";
-
- meta = {
- maintainers = pkgs.colord.meta.maintainers;
- };
-
- machine = { pkgs, ... }: {
- environment.systemPackages = with pkgs; [ gnome-desktop-testing ];
- };
-
- testScript = ''
- $machine->succeed("gnome-desktop-testing-runner -d '${pkgs.colord.installedTests}/share'");
- '';
-})
diff --git a/nixos/tests/common/letsencrypt/common.nix b/nixos/tests/common/letsencrypt/common.nix
index 798a749f7f9..c530de817bf 100644
--- a/nixos/tests/common/letsencrypt/common.nix
+++ b/nixos/tests/common/letsencrypt/common.nix
@@ -1,27 +1,9 @@
-{ lib, nodes, ... }: {
+{ lib, nodes, pkgs, ... }: let
+ letsencrypt-ca = nodes.letsencrypt.config.test-support.letsencrypt.caCert;
+in {
networking.nameservers = [
nodes.letsencrypt.config.networking.primaryIPAddress
];
- nixpkgs.overlays = lib.singleton (self: super: {
- cacert = super.cacert.overrideDerivation (drv: {
- installPhase = (drv.installPhase or "") + ''
- cat "${nodes.letsencrypt.config.test-support.letsencrypt.caCert}" \
- >> "$out/etc/ssl/certs/ca-bundle.crt"
- '';
- });
-
- # Override certifi so that it accepts fake certificate for Let's Encrypt
- # Need to override the attribute used by simp_le, which is python3Packages
- python3Packages = (super.python3.override {
- packageOverrides = lib.const (pysuper: {
- certifi = pysuper.certifi.overridePythonAttrs (attrs: {
- postPatch = (attrs.postPatch or "") + ''
- cat "${self.cacert}/etc/ssl/certs/ca-bundle.crt" \
- > certifi/cacert.pem
- '';
- });
- });
- }).pkgs;
- });
+ security.pki.certificateFiles = [ letsencrypt-ca ];
}
diff --git a/nixos/tests/common/letsencrypt/default.nix b/nixos/tests/common/letsencrypt/default.nix
index 58d87c64e34..110a2520971 100644
--- a/nixos/tests/common/letsencrypt/default.nix
+++ b/nixos/tests/common/letsencrypt/default.nix
@@ -1,6 +1,3 @@
-# Fully pluggable module to have Letsencrypt's Boulder ACME service running in
-# a test environment.
-#
# The certificate for the ACME service is exported as:
#
# config.test-support.letsencrypt.caCert
@@ -54,277 +51,35 @@
# that it has to be started _before_ the ACME service.
{ config, pkgs, lib, ... }:
+
let
- softhsm = pkgs.stdenv.mkDerivation rec {
- pname = "softhsm";
- version = "1.3.8";
-
- src = pkgs.fetchurl {
- url = "https://dist.opendnssec.org/source/${pname}-${version}.tar.gz";
- sha256 = "0flmnpkgp65ym7w3qyg78d3fbmvq3aznmi66rgd420n33shf7aif";
- };
-
- configureFlags = [ "--with-botan=${pkgs.botan}" ];
- buildInputs = [ pkgs.sqlite ];
- };
-
- pkcs11-proxy = pkgs.stdenv.mkDerivation {
- name = "pkcs11-proxy";
-
- src = pkgs.fetchFromGitHub {
- owner = "SUNET";
- repo = "pkcs11-proxy";
- rev = "944684f78bca0c8da6cabe3fa273fed3db44a890";
- sha256 = "1nxgd29y9wmifm11pjcdpd2y293p0dgi0x5ycis55miy97n0f5zy";
- };
-
- postPatch = "patchShebangs mksyscalls.sh";
-
- nativeBuildInputs = [ pkgs.cmake ];
- buildInputs = [ pkgs.openssl pkgs.libseccomp ];
- };
-
- mkGoDep = { goPackagePath, url ? "https://${goPackagePath}", rev, sha256 }: {
- inherit goPackagePath;
- src = pkgs.fetchgit { inherit url rev sha256; };
- };
-
- goose = let
- owner = "liamstask";
- repo = "goose";
- rev = "8488cc47d90c8a502b1c41a462a6d9cc8ee0a895";
- version = "20150116";
-
- in pkgs.buildGoPackage rec {
- name = "${repo}-${version}";
-
- src = pkgs.fetchFromBitbucket {
- name = "${name}-src";
- inherit rev owner repo;
- sha256 = "1jy0pscxjnxjdg3hj111w21g8079rq9ah2ix5ycxxhbbi3f0wdhs";
- };
-
- goPackagePath = "bitbucket.org/${owner}/${repo}";
- subPackages = [ "cmd/goose" ];
- extraSrcs = map mkGoDep [
- { goPackagePath = "github.com/go-sql-driver/mysql";
- rev = "2e00b5cd70399450106cec6431c2e2ce3cae5034";
- sha256 = "085g48jq9hzmlcxg122n0c4pi41sc1nn2qpx1vrl2jfa8crsppa5";
- }
- { goPackagePath = "github.com/kylelemons/go-gypsy";
- rev = "08cad365cd28a7fba23bb1e57aa43c5e18ad8bb8";
- sha256 = "1djv7nii3hy451n5jlslk0dblqzb1hia1cbqpdwhnps1g8hqjy8q";
- }
- { goPackagePath = "github.com/lib/pq";
- rev = "ba5d4f7a35561e22fbdf7a39aa0070f4d460cfc0";
- sha256 = "1mfbqw9g00bk24bfmf53wri5c2wqmgl0qh4sh1qv2da13a7cwwg3";
- }
- { goPackagePath = "github.com/mattn/go-sqlite3";
- rev = "2acfafad5870400156f6fceb12852c281cbba4d5";
- sha256 = "1rpgil3w4hh1cibidskv1js898hwz83ps06gh0hm3mym7ki8d5h7";
- }
- { goPackagePath = "github.com/ziutek/mymysql";
- rev = "0582bcf675f52c0c2045c027fd135bd726048f45";
- sha256 = "0bkc9x8sgqbzgdimsmsnhb0qrzlzfv33fgajmmjxl4hcb21qz3rf";
- }
- { goPackagePath = "golang.org/x/net";
- url = "https://go.googlesource.com/net";
- rev = "10c134ea0df15f7e34d789338c7a2d76cc7a3ab9";
- sha256 = "14cbr2shl08gyg85n5gj7nbjhrhhgrd52h073qd14j97qcxsakcz";
- }
- ];
- };
-
- boulder = let
- owner = "letsencrypt";
- repo = "boulder";
- rev = "9c6a1f2adc4c26d925588f5ae366cfd4efb7813a";
- version = "20180129";
-
- in pkgs.buildGoPackage rec {
- name = "${repo}-${version}";
-
- src = pkgs.fetchFromGitHub {
- name = "${name}-src";
- inherit rev owner repo;
- sha256 = "09kszswrifm9rc6idfaq0p1mz5w21as2qbc8gd5pphrq9cf9pn55";
- };
-
- postPatch = ''
- # compat for go < 1.8
- sed -i -e 's/time\.Until(\([^)]\+\))/\1.Sub(time.Now())/' \
- test/ocsp/helper/helper.go
-
- find test -type f -exec sed -i -e '/libpkcs11-proxy.so/ {
- s,/usr/local,${pkcs11-proxy},
- }' {} +
-
- sed -i -r \
- -e '/^def +install/a \ return True' \
- -e 's,exec \./bin/,,' \
- test/startservers.py
-
- cat ${lib.escapeShellArg snakeOilCerts.ca.key} > test/test-ca.key
- cat ${lib.escapeShellArg snakeOilCerts.ca.cert} > test/test-ca.pem
- '';
-
- # Until vendored pkcs11 is go 1.9 compatible
- preBuild = ''
- rm -r go/src/github.com/letsencrypt/boulder/vendor/github.com/miekg/pkcs11
- '';
-
- # XXX: Temporarily brought back putting the source code in the output,
- # since e95f17e2720e67e2eabd59d7754c814d3e27a0b2 was removing that from
- # buildGoPackage.
- preInstall = ''
- mkdir -p $out
- pushd "$NIX_BUILD_TOP/go"
- while read f; do
- echo "$f" | grep -q '^./\(src\|pkg/[^/]*\)/${goPackagePath}' \
- || continue
- mkdir -p "$(dirname "$out/share/go/$f")"
- cp "$NIX_BUILD_TOP/go/$f" "$out/share/go/$f"
- done < <(find . -type f)
- popd
- '';
-
- extraSrcs = map mkGoDep [
- { goPackagePath = "github.com/miekg/pkcs11";
- rev = "6dbd569b952ec150d1425722dbbe80f2c6193f83";
- sha256 = "1m8g6fx7df6hf6q6zsbyw1icjmm52dmsx28rgb0h930wagvngfwb";
- }
- ];
-
- goPackagePath = "github.com/${owner}/${repo}";
- buildInputs = [ pkgs.libtool ];
- };
-
- boulderSource = "${boulder.out}/share/go/src/${boulder.goPackagePath}";
-
- softHsmConf = pkgs.writeText "softhsm.conf" ''
- 0:/var/lib/softhsm/slot0.db
- 1:/var/lib/softhsm/slot1.db
- '';
-
snakeOilCerts = import ./snakeoil-certs.nix;
- wfeDomain = "acme-v01.api.letsencrypt.org";
+ wfeDomain = "acme-v02.api.letsencrypt.org";
wfeCertFile = snakeOilCerts.${wfeDomain}.cert;
wfeKeyFile = snakeOilCerts.${wfeDomain}.key;
siteDomain = "letsencrypt.org";
siteCertFile = snakeOilCerts.${siteDomain}.cert;
siteKeyFile = snakeOilCerts.${siteDomain}.key;
-
- # Retrieved via:
- # curl -s -I https://acme-v01.api.letsencrypt.org/terms \
- # | sed -ne 's/^[Ll]ocation: *//p'
- tosUrl = "https://letsencrypt.org/documents/2017.11.15-LE-SA-v1.2.pdf";
- tosPath = builtins.head (builtins.match "https?://[^/]+(.*)" tosUrl);
-
- tosFile = pkgs.fetchurl {
- url = tosUrl;
- sha256 = "0yvyckqzj0b1xi61sypcha82nanizzlm8yqy828h2jbza7cxi26c";
- };
-
+ pebble = pkgs.pebble;
resolver = let
message = "You need to define a resolver for the letsencrypt test module.";
firstNS = lib.head config.networking.nameservers;
in if config.networking.nameservers == [] then throw message else firstNS;
- cfgDir = pkgs.stdenv.mkDerivation {
- name = "boulder-config";
- src = "${boulderSource}/test/config";
- nativeBuildInputs = [ pkgs.jq ];
- phases = [ "unpackPhase" "patchPhase" "installPhase" ];
- postPatch = ''
- sed -i -e 's/5002/80/' -e 's/5002/443/' va.json
- sed -i -e '/listenAddress/s/:4000/:80/' wfe.json
- sed -i -r \
- -e ${lib.escapeShellArg "s,http://boulder:4000/terms/v1,${tosUrl},g"} \
- -e 's,http://(boulder|127\.0\.0\.1):4000,https://${wfeDomain},g' \
- -e '/dnsResolver/s/127\.0\.0\.1:8053/${resolver}:53/' \
- *.json
- if grep 4000 *.json; then exit 1; fi
-
- # Change all ports from 1909X to 909X, because the 1909X range of ports is
- # allocated by startservers.py in order to intercept gRPC communication.
- sed -i -e 's/\<1\(909[0-9]\)\>/\1/' *.json
-
- # Patch out all additional issuer certs
- jq '. + {ca: (.ca + {Issuers:
- [.ca.Issuers[] | select(.CertFile == "test/test-ca.pem")]
- })}' ca.json > tmp
- mv tmp ca.json
- '';
- installPhase = "cp -r . \"$out\"";
+ pebbleConf.pebble = {
+ listenAddress = "0.0.0.0:443";
+ managementListenAddress = "0.0.0.0:15000";
+ certificate = snakeOilCerts.${wfeDomain}.cert;
+ privateKey = snakeOilCerts.${wfeDomain}.key;
+ httpPort = 80;
+ tlsPort = 443;
+ ocspResponderURL = "http://0.0.0.0:4002";
};
- components = {
- gsb-test-srv.args = "-apikey my-voice-is-my-passport";
- gsb-test-srv.waitForPort = 6000;
- gsb-test-srv.first = true;
- boulder-sa.args = "--config ${cfgDir}/sa.json";
- boulder-wfe.args = "--config ${cfgDir}/wfe.json";
- boulder-ra.args = "--config ${cfgDir}/ra.json";
- boulder-ca.args = "--config ${cfgDir}/ca.json";
- boulder-va.args = "--config ${cfgDir}/va.json";
- boulder-publisher.args = "--config ${cfgDir}/publisher.json";
- boulder-publisher.waitForPort = 9091;
- ocsp-updater.args = "--config ${cfgDir}/ocsp-updater.json";
- ocsp-updater.after = [ "boulder-publisher" ];
- ocsp-responder.args = "--config ${cfgDir}/ocsp-responder.json";
- ct-test-srv = {};
- mail-test-srv.args = let
- key = "${boulderSource}/test/mail-test-srv/minica-key.pem";
- crt = "${boulderSource}/test/mail-test-srv/minica.pem";
- in
- "--closeFirst 5 --cert ${crt} --key ${key}";
- };
-
- commonPath = [ softhsm pkgs.mariadb goose boulder ];
-
- mkServices = a: b: with lib; listToAttrs (concatLists (mapAttrsToList a b));
-
- componentServices = mkServices (name: attrs: let
- mkSrvName = n: "boulder-${n}.service";
- firsts = lib.filterAttrs (lib.const (c: c.first or false)) components;
- firstServices = map mkSrvName (lib.attrNames firsts);
- firstServicesNoSelf = lib.remove "boulder-${name}.service" firstServices;
- additionalAfter = firstServicesNoSelf ++ map mkSrvName (attrs.after or []);
- needsPort = attrs ? waitForPort;
- inits = map (n: "boulder-init-${n}.service") [ "mysql" "softhsm" ];
- portWaiter = {
- name = "boulder-${name}";
- value = {
- description = "Wait For Port ${toString attrs.waitForPort} (${name})";
- after = [ "boulder-real-${name}.service" "bind.service" ];
- requires = [ "boulder-real-${name}.service" ];
- requiredBy = [ "boulder.service" ];
- serviceConfig.Type = "oneshot";
- serviceConfig.RemainAfterExit = true;
- script = let
- netcat = "${pkgs.libressl.nc}/bin/nc";
- portCheck = "${netcat} -z 127.0.0.1 ${toString attrs.waitForPort}";
- in "while ! ${portCheck}; do :; done";
- };
- };
- in lib.optional needsPort portWaiter ++ lib.singleton {
- name = if needsPort then "boulder-real-${name}" else "boulder-${name}";
- value = {
- description = "Boulder ACME Component (${name})";
- after = inits ++ additionalAfter;
- requires = inits;
- requiredBy = [ "boulder.service" ];
- path = commonPath;
- environment.GORACE = "halt_on_error=1";
- environment.SOFTHSM_CONF = softHsmConf;
- environment.PKCS11_PROXY_SOCKET = "tcp://127.0.0.1:5657";
- serviceConfig.WorkingDirectory = boulderSource;
- serviceConfig.ExecStart = "${boulder}/bin/${name} ${attrs.args or ""}";
- serviceConfig.Restart = "on-failure";
- };
- }) components;
+ pebbleConfFile = pkgs.writeText "pebble.conf" (builtins.toJSON pebbleConf);
+ pebbleDataDir = "/root/pebble";
in {
imports = [ ../resolver.nix ];
@@ -352,94 +107,29 @@ in {
networking.firewall.enable = false;
networking.extraHosts = ''
- 127.0.0.1 ${toString [
- "sa.boulder" "ra.boulder" "wfe.boulder" "ca.boulder" "va.boulder"
- "publisher.boulder" "ocsp-updater.boulder" "admin-revoker.boulder"
- "boulder" "boulder-mysql" wfeDomain
- ]}
+ 127.0.0.1 ${wfeDomain}
${config.networking.primaryIPAddress} ${wfeDomain} ${siteDomain}
'';
- services.mysql.enable = true;
- services.mysql.package = pkgs.mariadb;
-
- services.nginx.enable = true;
- services.nginx.recommendedProxySettings = true;
- # This fixes the test on i686
- services.nginx.commonHttpConfig = ''
- server_names_hash_bucket_size 64;
- '';
- services.nginx.virtualHosts.${wfeDomain} = {
- onlySSL = true;
- enableACME = false;
- sslCertificate = wfeCertFile;
- sslCertificateKey = wfeKeyFile;
- locations."/".proxyPass = "http://127.0.0.1:80";
- };
- services.nginx.virtualHosts.${siteDomain} = {
- onlySSL = true;
- enableACME = false;
- sslCertificate = siteCertFile;
- sslCertificateKey = siteKeyFile;
- locations."= ${tosPath}".alias = tosFile;
- };
-
systemd.services = {
- pkcs11-daemon = {
- description = "PKCS11 Daemon";
- after = [ "boulder-init-softhsm.service" ];
- before = map (n: "${n}.service") (lib.attrNames componentServices);
- wantedBy = [ "multi-user.target" ];
- environment.SOFTHSM_CONF = softHsmConf;
- environment.PKCS11_DAEMON_SOCKET = "tcp://127.0.0.1:5657";
- serviceConfig.ExecStart = let
- softhsmLib = "${softhsm}/lib/softhsm/libsofthsm.so";
- in "${pkcs11-proxy}/bin/pkcs11-daemon ${softhsmLib}";
- };
-
- boulder-init-mysql = {
- description = "Boulder ACME Init (MySQL)";
- after = [ "mysql.service" ];
- serviceConfig.Type = "oneshot";
- serviceConfig.RemainAfterExit = true;
- serviceConfig.WorkingDirectory = boulderSource;
- path = commonPath;
- script = "${pkgs.bash}/bin/sh test/create_db.sh";
- };
-
- boulder-init-softhsm = {
- description = "Boulder ACME Init (SoftHSM)";
- environment.SOFTHSM_CONF = softHsmConf;
- serviceConfig.Type = "oneshot";
- serviceConfig.RemainAfterExit = true;
- serviceConfig.WorkingDirectory = boulderSource;
- preStart = "mkdir -p /var/lib/softhsm";
- path = commonPath;
- script = ''
- softhsm --slot 0 --init-token \
- --label intermediate --pin 5678 --so-pin 1234
- softhsm --slot 0 --import test/test-ca.key \
- --label intermediate_key --pin 5678 --id FB
- softhsm --slot 1 --init-token \
- --label root --pin 5678 --so-pin 1234
- softhsm --slot 1 --import test/test-root.key \
- --label root_key --pin 5678 --id FA
+ pebble = {
+ enable = true;
+ description = "Pebble ACME server";
+ requires = [ ];
+ wantedBy = [ "network.target" ];
+ preStart = ''
+ mkdir ${pebbleDataDir}
'';
+ script = ''
+ cd ${pebbleDataDir}
+ ${pebble}/bin/pebble -config ${pebbleConfFile}
+ '';
+ serviceConfig = {
+ # Required to bind on privileged ports.
+ User = "root";
+ Group = "root";
+ };
};
-
- boulder = {
- description = "Boulder ACME Server";
- after = map (n: "${n}.service") (lib.attrNames componentServices);
- wantedBy = [ "multi-user.target" ];
- serviceConfig.Type = "oneshot";
- serviceConfig.RemainAfterExit = true;
- script = let
- ports = lib.range 8000 8005 ++ lib.singleton 80;
- netcat = "${pkgs.libressl.nc}/bin/nc";
- mkPortCheck = port: "${netcat} -z 127.0.0.1 ${toString port}";
- checks = "(${lib.concatMapStringsSep " && " mkPortCheck ports})";
- in "while ! ${checks}; do :; done";
- };
- } // componentServices;
+ };
};
}
diff --git a/nixos/tests/common/letsencrypt/mkcerts.nix b/nixos/tests/common/letsencrypt/mkcerts.nix
index 3b4a589e414..e7ac2bae46b 100644
--- a/nixos/tests/common/letsencrypt/mkcerts.nix
+++ b/nixos/tests/common/letsencrypt/mkcerts.nix
@@ -1,7 +1,7 @@
{ pkgs ? import {}
, lib ? pkgs.lib
-, domains ? [ "acme-v01.api.letsencrypt.org" "letsencrypt.org" ]
+, domains ? [ "acme-v02.api.letsencrypt.org" "letsencrypt.org" ]
}:
pkgs.runCommand "letsencrypt-snakeoil-ca" {
diff --git a/nixos/tests/common/letsencrypt/snakeoil-certs.nix b/nixos/tests/common/letsencrypt/snakeoil-certs.nix
index c3d29ab8f16..ca4f71ae688 100644
--- a/nixos/tests/common/letsencrypt/snakeoil-certs.nix
+++ b/nixos/tests/common/letsencrypt/snakeoil-certs.nix
@@ -2,252 +2,253 @@
{
ca.key = builtins.toFile "ca.key" ''
-----BEGIN PRIVATE KEY-----
- MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQDfdVxC/4HwhuzD
- 9or9CDDu3TBQE5lirJI5KYmfMZtfgdzEjgOzmR9AVSkn2rQeCqzM5m+YCzPO+2y7
- 0Fdk7vDORi1OdhYfUQIW6/TZ27xEjx4t82j9i705yUqTJZKjMbD830geXImJ6VGj
- Nv/WisTHmwBspWKefYQPN68ZvYNCn0d5rYJg9uROZPJHSI0MYj9iERWIPN+xhZoS
- xN74ILJ0rEOQfx2GHDhTr99vZYAFqbAIfh35fYulRWarUSekI+rDxa83FD8q9cMg
- OP84KkLep2dRXXTbUWErGUOpHP55M9M7ws0RVNdl9PUSbDgChl7yYlHCde3261q/
- zGp5dMV/t/jXXNUgRurvXc4gUKKjS4Sffvg0XVnPs3sMlZ4JNmycK9klgISVmbTK
- VcjRRJv8Bva2NQVsJ9TIryV0QEk94DucgsC3LbhQfQdmnWVcEdzwrZHNpk9az5mn
- w42RuvZW9L19T7xpIrdLSHaOis4VEquZjkWIhfIz0DVMeXtYEQmwqFG23Ww0utcp
- mCW4FPvpyYs5GAPmGWfrlMxsLD/7eteot3AheC+56ZBoVBnI8FFvIX2qci+gfVDu
- CjvDmbyS/0NvxLGqvSC1GUPmWP3TR5Fb1H8Rp+39zJHRmH+qYWlhcv6p7FlY2/6d
- 9Rkw8WKRTSCB7yeUdNNPiPopk6N4NwIDAQABAoICAQCzV0ei5dntpvwjEp3eElLj
- glYiDnjOPt5kTjgLsg6XCmyau7ewzrXMNgz/1YE1ky+4i0EI8AS2nAdafQ2HDlXp
- 11zJWfDLVYKtztYGe1qQU6TPEEo1I4/M7waRLliP7XO0n6cL5wzjyIQi0CNolprz
- 8CzZBasutGHmrLQ1nmnYcGk2+NBo7f2yBUaFe27of3mLRVbYrrKBkU5kveiNkABp
- r0/SipKxbbivQbm7d+TVpqiHSGDaOa54CEksOcfs7n6efOvw8qj326KtG9GJzDE6
- 7XP4U19UHe40XuR0t7Zso/FmRyO6QzNUutJt5LjXHezZ75razTcdMyr0QCU8MUHH
- jXZxQCsbt+9AmdxUMBm1SMNVBdHYM8oiNHynlgsEj9eM6jxDEss/Uc3FeKoHl+XL
- L6m28guIB8NivqjVzZcwhxvdiQCzYxjyqMC+/eX7aaK4NIlX2QRMoDL6mJ58Bz/8
- V2Qxp2UNVwKJFWAmpgXC+sq6XV/TP3HkOvd0OK82Nid2QxEvfE/EmOhU63qAjgUR
- QnteLEcJ3MkGGurs05pYBDE7ejKVz6uu2tHahFMOv+yanGP2gfivnT9a323/nTqH
- oR5ffMEI1u/ufpWU7sWXZfL/mH1L47x87k+9wwXHCPeSigcy+hFI7t1+rYsdCmz9
- V6QtmxZHMLanwzh5R0ipcQKCAQEA8kuZIz9JyYP6L+5qmIUxiWESihVlRCSKIqLB
- fJ5sQ06aDBV2sqS4XnoWsHuJWUd39rulks8cg8WIQu8oJwVkFI9EpARt/+a1fRP0
- Ncc9qiBdP6VctQGgKfe5KyOfMzIBUl3zj2cAmU6q+CW1OgdhnEl4QhgBe5XQGquZ
- Alrd2P2jhJbMO3sNFgzTy7xPEr3KqUy+L4gtRnGOegKIh8EllmsyMRO4eIrZV2z3
- XI+S2ZLyUn3WHYkaJqvUFrbfekgBBmbk5Ead6ImlsLsBla6MolKrVYV1kN6KT+Y+
- plcxNpWY8bnWfw5058OWPLPa9LPfReu9rxAeGT2ZLmAhSkjGxQKCAQEA7BkBzT3m
- SIzop9RKl5VzYbVysCYDjFU9KYMW5kBIw5ghSMnRmU7kXIZUkc6C1L/v9cTNFFLw
- ZSF4vCHLdYLmDysW2d4DU8fS4qdlDlco5A00g8T1FS7nD9CzdkVN/oix6ujw7RuI
- 7pE1K3JELUYFBc8AZ7mIGGbddeCwnM+NdPIlhWzk5s4x4/r31cdk0gzor0kE4e+d
- 5m0s1T4O/Iak6rc0MGDeTejZQg04p1eAJFYQ6OY23tJhH/kO8CMYnQ4fidfCkf8v
- 85v4EC1MCorFR7J65uSj8MiaL7LTXPvLAkgFls1c3ijQ2tJ8qXvqmfo0by33T1OF
- ZGyaOP9/1WQSywKCAQB47m6CfyYO5EZNAgxGD8SHsuGT9dXTSwF/BAjacB/NAEA2
- 48eYpko3LWyBrUcCPn+LsGCVg7XRtxepgMBjqXcoI9G4o1VbsgTHZtwus0D91qV0
- DM7WsPcFu1S6SU8+OCkcuTPFUT2lRvRiYj+vtNttK+ZP5rdmvYFermLyH/Q2R3ID
- zVgmH+aKKODVASneSsgJ8/nAs5EVZbwc/YKzbx2Zk+s7P4KE95g+4G4dzrMW0RcN
- QS1LFJDu2DhFFgU4fRO15Ek9/lj2JS2DpfLGiJY8tlI5nyDsq4YRFvQSBdbUTZpG
- m+CJDegffSlRJtuT4ur/dQf5hmvfYTVBRk2XS/eZAoIBAB143a22PWnvFRfmO02C
- 3X1j/iYZCLZa6aCl+ZTSj4LDGdyRPPXrUDxwlFwDMHfIYfcHEyanV9T4Aa9SdKh9
- p6RbF6YovbeWqS+b/9RzcupM77JHQuTbDwL9ZXmtGxhcDgGqBHFEz6ogPEfpIrOY
- GwZnmcBY+7E4HgsZ+lII4rqng6GNP2HEeZvg91Eba+2AqQdAkTh3Bfn+xOr1rT8+
- u5WFOyGS5g1JtN0280yIcrmWeNPp8Q2Nq4wnNgMqDmeEnNFDOsmo1l6NqMC0NtrW
- CdxyXj82aXSkRgMQSqw/zk7BmNkDV8VvyOqX/fHWQynnfuYmEco4Pd2UZQgadOW5
- cVMCggEBANGz1fC+QQaangUzsVNOJwg2+CsUFYlAKYA3pRKZPIyMob2CBXk3Oln/
- YqOq6j373kG2AX74EZT07JFn28F27JF3r+zpyS/TYrfZyO1lz/5ZejPtDTmqBiVd
- qa2coaPKwCOz64s77A9KSPyvpvyuTfRVa8UoArHcrQsPXMHgEhnFRsbxgmdP582A
- kfYfoJBSse6dQtS9ZnREJtyWJlBNIBvsuKwzicuIgtE3oCBcIUZpEa6rBSN7Om2d
- ex8ejCcS7qpHeULYspXbm5ZcwE4glKlQbJDTKaJ9mjiMdvuNFUZnv1BdMQ3Tb8zf
- Gvfq54FbDuB10XP8JdLrsy9Z6GEsmoE=
+ 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-----
- MIIFATCCAumgAwIBAgIJANydi4uFZr0LMA0GCSqGSIb3DQEBCwUAMBYxFDASBgNV
- BAMMC1NuYWtlb2lsIENBMCAXDTE4MDcxMjAwMjIxNloYDzIxMTgwNjE4MDAyMjE2
- WjAWMRQwEgYDVQQDDAtTbmFrZW9pbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
- ADCCAgoCggIBAN91XEL/gfCG7MP2iv0IMO7dMFATmWKskjkpiZ8xm1+B3MSOA7OZ
- H0BVKSfatB4KrMzmb5gLM877bLvQV2Tu8M5GLU52Fh9RAhbr9NnbvESPHi3zaP2L
- vTnJSpMlkqMxsPzfSB5ciYnpUaM2/9aKxMebAGylYp59hA83rxm9g0KfR3mtgmD2
- 5E5k8kdIjQxiP2IRFYg837GFmhLE3vggsnSsQ5B/HYYcOFOv329lgAWpsAh+Hfl9
- i6VFZqtRJ6Qj6sPFrzcUPyr1wyA4/zgqQt6nZ1FddNtRYSsZQ6kc/nkz0zvCzRFU
- 12X09RJsOAKGXvJiUcJ17fbrWr/Manl0xX+3+Ndc1SBG6u9dziBQoqNLhJ9++DRd
- Wc+zewyVngk2bJwr2SWAhJWZtMpVyNFEm/wG9rY1BWwn1MivJXRAST3gO5yCwLct
- uFB9B2adZVwR3PCtkc2mT1rPmafDjZG69lb0vX1PvGkit0tIdo6KzhUSq5mORYiF
- 8jPQNUx5e1gRCbCoUbbdbDS61ymYJbgU++nJizkYA+YZZ+uUzGwsP/t616i3cCF4
- L7npkGhUGcjwUW8hfapyL6B9UO4KO8OZvJL/Q2/Esaq9ILUZQ+ZY/dNHkVvUfxGn
- 7f3MkdGYf6phaWFy/qnsWVjb/p31GTDxYpFNIIHvJ5R000+I+imTo3g3AgMBAAGj
- UDBOMB0GA1UdDgQWBBQ3vPWzjLmu5krbSpfhBAht9KL3czAfBgNVHSMEGDAWgBQ3
- vPWzjLmu5krbSpfhBAht9KL3czAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBCwUA
- A4ICAQDF9HyC1ZFN3Ob+JA9Dj5+Rcobi7JIA5F8uW3Q92LfPoVaUGEkBrwJSiTFX
- 47zvP/ySBJIpZ9rzHMbJ+1L+eJgczF1uQ91inthCKo1THTPo5TgBrpJj0YAIunsj
- 9eH1tBnfWFYdVIDZoTSiwPtgIvglpyuK/eJXEe+FRzubhtdc9w1Hlzox1sd0TQuy
- Pl9KFHg7BlFZfCPig1mkB8pfwjBDgVhv5DKJ9cJXh3R5zSoiyuS2b+qYSvw8YTHq
- 0WNKWUthb7BVAYE3OmcbOHgUAUjtJ6EIGIB9z/SoLe90CofXLXFR5dppuVLKCMBA
- kgL4luBIu7t8mcnN2yzobvcGHy8RVY6F5abCCy6gackLzjOzvH1SYOxP8yN74aKB
- ANgcqdWspb8JYoU8lEbA8dhBVrsgBf7XeJlrZvMdcUENlJ2PI0JWr9WvlRAM9rYY
- EY1alJqBCp6530Ggd6/f0V64cEqptejUdmN9L0zboxKjQf4LjpUNraGvg8tw/xkY
- 4dT1U2HlVnhOyBVkx/tE6zIK/RU16oMqwpjCdfbK/TuWCNc/emJz5PMlp81zm83+
- dExpWwuV4rt6OQbZ/GSatNLJXOw+pkLjaEhnHgrsgI+HqAUXg3ByKol+1e76wN51
- k1ZKpB6mk4kejySGPYBHiJwED0IyXu9gUfalSczXFO4ySAvhCg==
+ 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-v01.api.letsencrypt.org".key = builtins.toFile "acme-v01.api.letsencrypt.org.key" ''
+ "acme-v02.api.letsencrypt.org".key = builtins.toFile "acme-v02.api.letsencrypt.org.key" ''
-----BEGIN RSA PRIVATE KEY-----
- MIIJKQIBAAKCAgEAvG+sL4q0VkgSClBTn4NkPiUrtXx5oLyZ+CCM1jrQx/xotUt5
- X2S4/7vMnAK/yRLsR7R2PhXO8CZPqJ7B6OfAgaDTgvipJkZYPZQSMP3KOinM3WJL
- ssqKh7/HOxZIf0iyUXewrnX5eTAo/CLsUnhBjBD7E99nmQz/leLWSl82sSYDkO3n
- Uk3/1qJZA8iddb4uH0IEQWcNKev3WoQQzwiVrXBiftlRQOJy5JJXm5m8229MCpMA
- 1AUWmpdu6sl3/gFFdsDhUFq/a7LFrVyaUCMRIHg9szAB7ZFkixr9umQs8jKwuo98
- 3JHB11h2SirwgfIzHHmyhaWhCt22ucTwEXGhq63LtrzZvLsfP8Ql5S+AuqGTH0v8
- meuc784leAjulBZjkpuIFwDnVv9+YeUEbqJeo1hSHrILddora3nkH4E2dJWmLpqp
- iPr++GRi+BNgYKW/BQLTJ7C6v+vUs+kdPgYJH5z7oP6f0YZkT0Wkubp/UEz7UV2d
- fjz57d77DYx5rFWGYzJriWR/xltgL1zDpjwjwG1FDpRqwlyYbBFpjQhxI+X0aT98
- m6fCzBDQHDb/+JgvsjTHh6OZatahFAwzFIEfrceDv1BG8sBWIaZGhLzYiWQxafl8
- oXbWv1T6I1jpsTlCdCSkWzaJb4ZjxI9Ga1ynVu8F16+GR2a71wKWu7UbZQsCAwEA
- AQKCAgBYvrs4FLoD3KNqahRIDqhaQEVKjtn1Yn2dBy9tAXwsg2qI34fE7nnWLwsY
- +o56U0gmKQ57BOhV36Uqg8JNP0BBjI2wpA19simCrsa2fgAMznzmUpHWHV+KuT5K
- TJ9OGt2oUpdKQtOASLc0r/neiTZNkf29iTyQLzf7zj4f/qGSYpXRXsnP0F5KJmGH
- z6agujWckQnSB4eCk9gFsCb+akubyE8K8Kw8w6lajrVl2czBB7SnUj5UnCTeH62k
- M8goP08Is6QppON8BFDm6bLfRPSe9yIPzu9JhGz2unp+mwkz872Zz1P9yUOieM4U
- 9g4ZFQkPQx1ZpfynUm3pJZ/uhzadBabnIvMe/1qwDAEDifh/WzEM76/2kBpQkHtS
- qcjwjAElfWnP8aBr1Pj42/cVJy3dbDqb0OawFHx/8xSO2CkY4Gq2h3OYv1XpPv3g
- S9qqKhvuaT+aD0YjKhP4FYc2vvQSJwdZL8vqOyma8JGmc+r7jakIPCyOx3oPVqnS
- L2P7DuJ1FcGIZyYOU3UUSzKndDU9fVC8YoLWvHDlwm4RK9UPtdsBY8mEu6BlaAwL
- zEQG+fbcFnEkHPiJeAohYUCHiqCihLt0pqGwZi+QrudPQE6C47YijGZWJu4VVLjB
- B2L9iDQKsN4FnBJ9egJIwWBLX3XXQfjC43UGm1A5sBvD+ScsCQKCAQEA7GxU7/SW
- 4YJ+wBXrp7Z3vzlc5mTT5U4L2muWZLhIjT/jmpHpZ4c9a5DY/K9OYcu8XJ+7kx2B
- N40cU3ZkT2ZbB5/BUCEmi3Wzy3R/KZshHDzvvSZHcXJqVBtv+HGJgR5ssFqAw8c6
- gJtDls+JE9Sz+nhLk0ZZ4658vbTQfG1lmtzrbC3Kz2xK8RPTdOU5Or7fayeaEKEW
- ECBJPE41ME2UTdB/E85vyYoee0MBijjAs19QKqvoNbyrsZ5bihcIDYsrvjCmkdW1
- 20IUrSF3ZYJ9bb+CxHeRyNqwvRxPYSkzdMjZHx+xEAvJgw51QqmIi2QQf/qB+ych
- cSbE/0Jhx4QbDQKCAQEAzAoenEOgmZvUegFUu8C6gWeibMjl3Y9SikQ4CoQO/zWr
- aoCr5BpbzbtOffwnPfgk9wCGvXf6smOdrLUP1K2QAhBr/vJh7ih2MonvpYr5HPP7
- maVARR66IgtxXP2ER2I9+9p2OQdecGRP2fUn2KCDQIASHSSY/VjBb8LLJgryC/DS
- r2b0+m1e2qXfNWt/BYTQZhD/8B/jl/2pl/jI2ne3rkeiwEm7lqZaDt3Q8gC+qoP5
- /IdG1Gob7UTMCbICWy1aGuzRYUmbpg0Vq4DAV1RtgBySB5oNq5PMBHYpOxedM2nM
- NxHvf0u6wsxVULwQ4IfWUqUTspjxDmIgogSzmOGadwKCAQEA558if4tynjBImUtg
- egirvG4oc5doeQhDWJN63eYlPizPgUleD41RQSbBTp04/1qoiV38WJ7ZT2Ex1Rry
- H0+58vgyXZx8tLh1kufpBQv0HkQc44SzDZP4U7olspMZEaSK+yNPb36p9AEo8IEW
- XJVQVhywffK4cfUqRHj2oFBU8KlrA6rBPQFtUk4IJkfED6ecHtDHgW8vvFDFLw23
- 0kDPAIU5WmAu6JYmUsBMq+v57kF8urF8Z9kVpIfuSpVR0GL+UfA74DgtWEefFhbp
- cEutMm4jYPN7ofmOmVc49Yl13f4/qNxVjdDedUUe4FZTbax09cyotzOY8c/3w9R3
- Ew57qQKCAQAa5jqi30eM+L5KV2KUXhQ4ezEupk2np/15vQSmXkKb4rd2kwAWUmNH
- /Cmc8mE6CjzVU3xv/iFO41MmMbikkT0rCH80XUAL5cmvX//4ExpEduX0m5SdiC+B
- zYBkggeuYYVKbsKnQhFxP8hHM8rNBFxJZJj+vpRs0gaudT/TBB5k9JrSBQDHAyQ+
- Lx/+Ku3UDG5tBlC3l3ypzQdOwb25D49nqooKT64rbkLxMs0ZGoAIet26LRtpZZPI
- 9AjyPkWRP6lhY1c3PD0I5zC0K4Uv/jFxclLOLcEfnZyH+gv1fmd7H7eMixDH93Pn
- uoiE3EZdU4st2hV+tisRel5S/cuvnA6BAoIBAQDJISK8H0hwYp+J4/WUv/WLtrm4
- Mhmn8ItdEPAyCljycU6oLHJy4fgmmfRHeoO1i3jb87ks2GghegFBbJNzugfoGxIM
- dLWIV+uFXWs24fMJ/J6lqN1JtAj7HjvqkXp061X+MdIJ0DsACygzFfJOjv+Ij77Q
- Q1OBTSPfb0EWFNOuIJr9i2TwdN9eW/2ZMo1bPuwe4ttPEIBssfIC02dn2KD1RTqM
- 1l+L97vVFk7CoSJZf5rLeysLVyUeGdDcoEcRA6fKhfB/55h+iqrZNvySX1HrR6on
- PQcxDRPJD7f9rMsTzVl3DOxzvXAU3lIcZtPZps97IwXceAAh2e1kZNNv/cxj
+ 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-v01.api.letsencrypt.org".cert = builtins.toFile "acme-v01.api.letsencrypt.org.cert" ''
+ "acme-v02.api.letsencrypt.org".cert = builtins.toFile "acme-v02.api.letsencrypt.org.cert" ''
-----BEGIN CERTIFICATE-----
MIIEtDCCApwCAgKaMA0GCSqGSIb3DQEBCwUAMBYxFDASBgNVBAMMC1NuYWtlb2ls
- IENBMCAXDTE4MDcxMjAwMjIxN1oYDzIxMTgwNjE4MDAyMjE3WjAnMSUwIwYDVQQD
- DBxhY21lLXYwMS5hcGkubGV0c2VuY3J5cHQub3JnMIICIjANBgkqhkiG9w0BAQEF
- AAOCAg8AMIICCgKCAgEAvG+sL4q0VkgSClBTn4NkPiUrtXx5oLyZ+CCM1jrQx/xo
- tUt5X2S4/7vMnAK/yRLsR7R2PhXO8CZPqJ7B6OfAgaDTgvipJkZYPZQSMP3KOinM
- 3WJLssqKh7/HOxZIf0iyUXewrnX5eTAo/CLsUnhBjBD7E99nmQz/leLWSl82sSYD
- kO3nUk3/1qJZA8iddb4uH0IEQWcNKev3WoQQzwiVrXBiftlRQOJy5JJXm5m8229M
- CpMA1AUWmpdu6sl3/gFFdsDhUFq/a7LFrVyaUCMRIHg9szAB7ZFkixr9umQs8jKw
- uo983JHB11h2SirwgfIzHHmyhaWhCt22ucTwEXGhq63LtrzZvLsfP8Ql5S+AuqGT
- H0v8meuc784leAjulBZjkpuIFwDnVv9+YeUEbqJeo1hSHrILddora3nkH4E2dJWm
- LpqpiPr++GRi+BNgYKW/BQLTJ7C6v+vUs+kdPgYJH5z7oP6f0YZkT0Wkubp/UEz7
- UV2dfjz57d77DYx5rFWGYzJriWR/xltgL1zDpjwjwG1FDpRqwlyYbBFpjQhxI+X0
- aT98m6fCzBDQHDb/+JgvsjTHh6OZatahFAwzFIEfrceDv1BG8sBWIaZGhLzYiWQx
- afl8oXbWv1T6I1jpsTlCdCSkWzaJb4ZjxI9Ga1ynVu8F16+GR2a71wKWu7UbZQsC
- AwEAATANBgkqhkiG9w0BAQsFAAOCAgEAzeGlFMz1Bo+bbpZDQ60HLdw7qDp3SPJi
- x5LYG860yzbh9ghvyc59MIm5E6vB140LRJAs+Xo6VdVSTC4jUA2kI9k1BQsbZKds
- XT0RqA7HkqcLS3t3JWFkkKbCshMGZTSZ//hpbaUG1qEAfUfmZw1lAxqSa0kqavbP
- awf7k8qHbqcj7WORCdH7fjKAjntEQwIpl1GEkAdCSghOJz2/o9aWmiGZt27OM/sG
- MLSrcmL3QBElCjOxg14P8rnsmZ+VEp6MO93otoJ4dJL7fN7vTIh5ThbS384at/4l
- 4KK/y7XctUzAtWzhnodjk/NSgrrGX2kseOGOWEM1sZc9xtinHH2tpOMqtLVOkgHD
- Lul+TArqgqeoOdEM/9OL64kgOrO/JzxBq+egLUi4wgAul2wmtecKZK1dkwYZHeqW
- 74i55yeBp+TTomnPr0ZBns6xKFYldJVzC34OB+2YVDxe8y9XtWtuQOxFw0LQHhNb
- zy5aBverWzZFwiIIjJoVHTQq848uKBJec0YILfMinS1Wjif4xqW/IMfi+GFS0oka
- sKCGNE/8ur9u/Jm6cbto3f2dtV8/vkhiITQgwzM2jalyuVJ9jyPxG7EvbTvZORgw
- pRvBRTd4/eE7I1L+UDe6x8EjR/MrqfF9FWVGOZo4vPTyNbrSWYBh6s9kYy56ds1l
- IRxst1BXEfI=
+ 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-----
- MIIJKAIBAAKCAgEAwPvhlwemgPi6919sSD7Pz6l6CRfU1G/fDc0AvsMN/nTmiGND
- pqn9ef1CA+RtLtOuPc1LLyEovcfu75/V+6KSgO4k19E2CrFCFwjEOWDGF4DgclT3
- 751WGmFJgzPEfZfhbOrmQfQau86KxAtNZVp9FxcKbuLyQ/sNNxfNMB+7IHbVhwvz
- VcndHpYZEP6kdnwvNLP22bouX5q3avxWStln01uZ0BfUm4XwxaUNIU7t0Dv56FK9
- C9hW9AZae0do0BJBWRF7xSwLeDJqn9uZz+sX0X/tIaaSQSBuZySj0He5ZKzdUO0t
- px2xTS2Brl3Y2BOJaOE98HubWvdKoslLt4X2rVrMxGa86SmFzcyDL1RSowcP/ruy
- y555l7pepL5s4cmMgRBBXj5tXhqUTVOn5WO+JClLk+rtvtAT4rogJmMqEKmMw2t7
- LNy1W9ri/378QG/i3AGaLIL/7GsPbuRO51Sdti4QMVe2zNFze72mzNmj1SXokWy7
- +ZvjUMp55oEjRRsTPUZdNOEHJWy6Os2znuqL7ZpIHCxBG8FKnkCViXRJqAA8bzcE
- hR+pLamLIOHlv4kdzJ6phHkSvK68qvbRReUmOjJgSupVBI9jhK+fHay/UWR4zfJQ
- ed99H8ZOoiXlrLCVs+VPDynUUKrzF1nYyolNzi/NS4e4AbnfWgyC5JKRpjUCAwEA
- AQKCAgB0fNYL+zM3MGxy+2d6KGf6GnuuV3NBlBGY3ACyJT0iNmAdPYXNaVi2tPeP
- L+fz1xSa+3uBhEt6Wt/QRrO8g8JZDuawWvl69MpG6yS+2bpY35MbkExkl50sqULd
- bncRtIb+3r+EWht099RtR8E9B6TwNhk3G8hO3pB4i+ZwQQcMLo7vSHhmdUYCu2mA
- B6UwW/+GmYbMoARz8wj6DDzuS1LPksBCis/r3KqcMue9Dk6gXkOYR7ETIFBEVj1x
- ooYS6qIFaHdEajS2JgCUY9LxXR/wdn6lzE0GANSDb+tt34bJzUp+Gdxvvo2SX4Ci
- xsUokIpmA2gG7CW3gAPORSFuMu/VYZtvt+owNYlODXRPuGi/eLDknFRB/S4Nx0J0
- WZZq5uTgJdQainyKYtDZALia5X4cc5I2hNetCorG9jNZIsSunbIAG+htx2FI3eqK
- jwOUiHE8SCZ6YdXoDQjg2w+g8jeB23eqkPyzunpZphYiKay7VFeLwQEMC2a791ln
- +MbHhhpRAc1uAoU2reB2fxKyaPlOfAWVMgUOGlgpVOuEVeMoc1CwjajaFztGG7fI
- 8EHNoyAftCdXnTaLZk2KZnnIDHHzFXR62TE1GJFD1fdI1pHAloCbgA4h+Dtwm1Uu
- iAEEfvVU/E5wbtAzv6pY32+OKX5kyHAbM5/e918B8ZxmHG1J9QKCAQEA6FwxsRG3
- 526NnZak540yboht5kV12BNBChjmARv/XgZ7o1VsfwjaosErMvasUBcHDEYOC/oE
- ZgPAyrMVsYm0xe/5FSIFLJVeYXTr0rmCNhVtBCHx3IS94BCXreNnz0qoEWnb5E09
- Z1O42D0yGcLXklg6QaJfb7EdHh03F3dSVMHyDR3JlAQHRINeuP6LlQpbvRD3adH5
- QWr2M3k+Stuq2OJdG7eUS1dreCxRShLuDjDhiZekdl/TB3LM0prOaWrKBrryN2g6
- mjiasH6I5zRD3LQP5zg57Thb8afHqA4Fb85Frt6ltfFlPTIoxXZ5drVhmRWfXXnQ
- POnj8T+w4zVjvwKCAQEA1J4ivyFkCL0JTSY3/PtwAQvBBj3GazzU6P+urWeH74Vh
- WK17Ae40iOUHGyy80Db/fVY4VLQTpxvAeG91Gj5Nd/AucXJgOrisabcEz6N/xUs5
- sjJNgXuNKTAgjYBu0bqLXxgZj43zT8JhA6KW7RuYU0PtHMRragz4RbK9NWDaVvJb
- xSR5QoVLS00PerUa0SfupEYKCrlSTP6FOM5YNkCuSMt7X6/m9cR0WwVINKvUQBiT
- ObrN+KeBmF9awpQQnQOq/GbCl3kf6VyPQqYFhdrWSg52w33c2tBVYrtHJpeXGcin
- akw4KKcj4rdU2qxMuuRiD5paagshbLdGsYMTbSzjCwKCAQEAh89DGAyUIcfDLAWd
- st0bSfGh0oJsw3NVg3JUFPfpRWqiny/Rr1pcd95RwoLc6h7bdrgHg8aJBZtR9ue/
- WTp0l3CQdGKjBZD0TiAJqevViIjzZAP3Gn3XgPwRu4f75/Pp0eu+o2zl49vSYUk7
- XEU+vIGm4y/leiHaM/y9c5DBZVrKgBIV/NZx7QCfv56/tMgOIK6m/YnFlw/OgP1v
- hE9qR0PfSdD98x9QaDf290WjMFYvrL0eWjXd4S+fOcVTude55z8jTXE1N2i4OUpr
- +D7bH0d7OBjr+pQDYXZAQyCW2ueEYRYvYu2Jz7/ehrOdgN25AsHZmMgXB1NpcFta
- pyJQfwKCAQByoPMwworRH0GVg4Zp8RFYrwKZH9MK29gZ6kc9m/Sw0OND0PvhdZCD
- QZ8MKpl9VDl4VHS4TgHOdWrWQ5kJ1g8kG6yeY0C4R/pEYHTKkWaAcucfSHl61qar
- TxQt1dFpZz5evXqCZ9CG7tApCo5+NQNx2MxMVyVmHqn3wb66uYXdnHqXlet+Tqji
- ZyByUpOrsfC6RjyBvZo+gnZGwxDR5xtPiczxML+/PvRQYk+kfgNHrzgoxqrnZT+8
- a6ReBT/TtzeHLsu4qIfo44slLqcJnIstkBC9ouzgV7PBMCDTEKVZNFH2QDOCz2HM
- iHTKFFyl4h1wNhKK24dguor1hyqBENMzAoIBAAQvQHwRWIVlfCMRI170Ls8AXB9Z
- MMdZJ37bh6kmJpkV3+HB1ZkKwofHKR9h/3xLt5iYXzqT+/zA4EAsFFs1A93+tkzh
- yPrN5iTSJicophZSlA4ObX1hMkgshvl7ZB1fRM5WyiszBOfm8W7eAxaK8nY2oAoP
- tI7rioo6CFBNMCGbOl4gEX6YJ4OsVSm+efCRSDDw+3HW8H2YgqufBzAULk1Jcj5t
- ZvraXpC5qZ92VtsH0cGA1ovNDAmoOV4AAvtZVpLQsXwaphad/Fbn/ItGrrluvvFC
- HuldRzYtl/AQtoirK86LTY3aAmcwVFuiYvDQMzjzkJvVMmRCFZBcUIaz2oI=
+ 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
- IENBMCAXDTE4MDcxMjAwMjIxOVoYDzIxMTgwNjE4MDAyMjE5WjAaMRgwFgYDVQQD
+ IENBMCAXDTE5MTAxODA3NTQxNVoYDzIxMTkwOTI0MDc1NDE1WjAaMRgwFgYDVQQD
DA9sZXRzZW5jcnlwdC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
- AQDA++GXB6aA+Lr3X2xIPs/PqXoJF9TUb98NzQC+ww3+dOaIY0Omqf15/UID5G0u
- 0649zUsvISi9x+7vn9X7opKA7iTX0TYKsUIXCMQ5YMYXgOByVPfvnVYaYUmDM8R9
- l+Fs6uZB9Bq7zorEC01lWn0XFwpu4vJD+w03F80wH7sgdtWHC/NVyd0elhkQ/qR2
- fC80s/bZui5fmrdq/FZK2WfTW5nQF9SbhfDFpQ0hTu3QO/noUr0L2Fb0Blp7R2jQ
- EkFZEXvFLAt4Mmqf25nP6xfRf+0hppJBIG5nJKPQd7lkrN1Q7S2nHbFNLYGuXdjY
- E4lo4T3we5ta90qiyUu3hfatWszEZrzpKYXNzIMvVFKjBw/+u7LLnnmXul6kvmzh
- yYyBEEFePm1eGpRNU6flY74kKUuT6u2+0BPiuiAmYyoQqYzDa3ss3LVb2uL/fvxA
- b+LcAZosgv/saw9u5E7nVJ22LhAxV7bM0XN7vabM2aPVJeiRbLv5m+NQynnmgSNF
- GxM9Rl004QclbLo6zbOe6ovtmkgcLEEbwUqeQJWJdEmoADxvNwSFH6ktqYsg4eW/
- iR3MnqmEeRK8rryq9tFF5SY6MmBK6lUEj2OEr58drL9RZHjN8lB5330fxk6iJeWs
- sJWz5U8PKdRQqvMXWdjKiU3OL81Lh7gBud9aDILkkpGmNQIDAQABMA0GCSqGSIb3
- DQEBCwUAA4ICAQAkx3jcryukAuYP7PQxMy3LElOl65ZFVqxDtTDlr7DvAkWJzVCb
- g08L6Tu+K0rKh2RbG/PqS0+8/jBgc4IwSOPfDDAX+sinfj0kwXG34WMzB0G3fQzU
- 2BMplJDOaBcNqHG8pLP1BG+9HAtR/RHe9p2Jw8LG2qmZs6uemPT/nCTNoyIL4oxh
- UncjETV4ayCHDKD1XA7/icgddYsnfLQHWuIMuCrmQCHo0uQAd7qVHfUWZ+gcsZx0
- jTNCcaI8OTS2S65Bjaq2HaM7GMcUYNUD2vSyNQeQbha4ZeyZ9bPyFzznPMmrPXQe
- MJdkbJ009RQIG9As79En4m+l+/6zrdx4DNdROqaL6YNiSebWMnuFHpMW/rCnhrT/
- HYadijHOiJJGj9tWSdC4XJs7fvZW3crMPUYxpOvl01xW2ZlgaekILi1FAjSMQVoV
- NhWstdGCKJdthJqLL5MtNdfgihKcmgkJqKFXTkPv7sgAQCopu6X+S+srCgn856Lv
- 21haRWZa8Ml+E0L/ticT8Fd8Luysc6K9TJ4mT8ENC5ywvgDlEkwBD3yvINXm5lg1
- xOIxv/Ye5gFk1knuM7OzpUFBrXUHdVVxflCUqNAhFPbcXwjgEQ+A+S5B0vI6Ohue
- ZnR/wuiou6Y+Yzh8XfqL/3H18mGDdjyMXI1B6l4Judk000UVyr46cnI7mw==
+ 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/couchdb.nix b/nixos/tests/couchdb.nix
index 48ea48eebbb..10e95701acd 100644
--- a/nixos/tests/couchdb.nix
+++ b/nixos/tests/couchdb.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, lib, ...}:
+import ./make-test-python.nix ({ pkgs, lib, ...}:
with lib;
@@ -35,22 +35,42 @@ with lib;
fi
'';
in ''
- startAll;
+ start_all()
- $couchdb1->waitForUnit("couchdb.service");
- $couchdb1->waitUntilSucceeds("${curlJqCheck "GET" "" ".couchdb" "Welcome"}");
- $couchdb1->waitUntilSucceeds("${curlJqCheck "GET" "_all_dbs" ". | length" "2"}");
- $couchdb1->succeed("${curlJqCheck "PUT" "foo" ".ok" "true"}");
- $couchdb1->succeed("${curlJqCheck "GET" "_all_dbs" ". | length" "3"}");
- $couchdb1->succeed("${curlJqCheck "DELETE" "foo" ".ok" "true"}");
- $couchdb1->succeed("${curlJqCheck "GET" "_all_dbs" ". | length" "2"}");
+ couchdb1.wait_for_unit("couchdb.service")
+ couchdb1.wait_until_succeeds(
+ "${curlJqCheck "GET" "" ".couchdb" "Welcome"}"
+ )
+ couchdb1.wait_until_succeeds(
+ "${curlJqCheck "GET" "_all_dbs" ". | length" "2"}"
+ )
+ couchdb1.succeed("${curlJqCheck "PUT" "foo" ".ok" "true"}")
+ couchdb1.succeed(
+ "${curlJqCheck "GET" "_all_dbs" ". | length" "3"}"
+ )
+ couchdb1.succeed(
+ "${curlJqCheck "DELETE" "foo" ".ok" "true"}"
+ )
+ couchdb1.succeed(
+ "${curlJqCheck "GET" "_all_dbs" ". | length" "2"}"
+ )
- $couchdb2->waitForUnit("couchdb.service");
- $couchdb2->waitUntilSucceeds("${curlJqCheck "GET" "" ".couchdb" "Welcome"}");
- $couchdb2->waitUntilSucceeds("${curlJqCheck "GET" "_all_dbs" ". | length" "0"}");
- $couchdb2->succeed("${curlJqCheck "PUT" "foo" ".ok" "true"}");
- $couchdb2->succeed("${curlJqCheck "GET" "_all_dbs" ". | length" "1"}");
- $couchdb2->succeed("${curlJqCheck "DELETE" "foo" ".ok" "true"}");
- $couchdb2->succeed("${curlJqCheck "GET" "_all_dbs" ". | length" "0"}");
+ couchdb2.wait_for_unit("couchdb.service")
+ couchdb2.wait_until_succeeds(
+ "${curlJqCheck "GET" "" ".couchdb" "Welcome"}"
+ )
+ couchdb2.wait_until_succeeds(
+ "${curlJqCheck "GET" "_all_dbs" ". | length" "0"}"
+ )
+ couchdb2.succeed("${curlJqCheck "PUT" "foo" ".ok" "true"}")
+ couchdb2.succeed(
+ "${curlJqCheck "GET" "_all_dbs" ". | length" "1"}"
+ )
+ couchdb2.succeed(
+ "${curlJqCheck "DELETE" "foo" ".ok" "true"}"
+ )
+ couchdb2.succeed(
+ "${curlJqCheck "GET" "_all_dbs" ". | length" "0"}"
+ )
'';
})
diff --git a/nixos/tests/deluge.nix b/nixos/tests/deluge.nix
index b58030409b5..37689c3d913 100644
--- a/nixos/tests/deluge.nix
+++ b/nixos/tests/deluge.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, ...} : {
name = "deluge";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ flokli ];
@@ -45,18 +45,20 @@ import ./make-test.nix ({ pkgs, ...} : {
};
testScript = ''
- startAll;
+ start_all()
- $simple->waitForUnit("deluged");
- $simple->waitForUnit("delugeweb");
- $simple->waitForOpenPort("8112");
- $declarative->waitForUnit("network.target");
- $declarative->waitUntilSucceeds("curl --fail http://simple:8112");
+ simple.wait_for_unit("deluged")
+ simple.wait_for_unit("delugeweb")
+ simple.wait_for_open_port("8112")
+ declarative.wait_for_unit("network.target")
+ declarative.wait_until_succeeds("curl --fail http://simple:8112")
- $declarative->waitForUnit("deluged");
- $declarative->waitForUnit("delugeweb");
- $declarative->waitUntilSucceeds("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'");
+ 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'"
+ )
'';
})
diff --git a/nixos/tests/dnscrypt-proxy.nix b/nixos/tests/dnscrypt-proxy.nix
index 13bc9d3d916..98153d5c904 100644
--- a/nixos/tests/dnscrypt-proxy.nix
+++ b/nixos/tests/dnscrypt-proxy.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ... }: {
+import ./make-test-python.nix ({ pkgs, ... }: {
name = "dnscrypt-proxy";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ joachifm ];
@@ -23,11 +23,13 @@ import ./make-test.nix ({ pkgs, ... }: {
};
testScript = ''
- $client->waitForUnit("dnsmasq");
+ client.wait_for_unit("dnsmasq")
# The daemon is socket activated; sending a single ping should activate it.
- $client->fail("systemctl is-active dnscrypt-proxy");
- $client->execute("${pkgs.iputils}/bin/ping -c1 example.com");
- $client->waitUntilSucceeds("systemctl is-active dnscrypt-proxy");
+ client.fail("systemctl is-active dnscrypt-proxy")
+ client.execute(
+ "${pkgs.iputils}/bin/ping -c1 example.com"
+ )
+ client.wait_until_succeeds("systemctl is-active dnscrypt-proxy")
'';
})
diff --git a/nixos/tests/docker-edge.nix b/nixos/tests/docker-edge.nix
index b306c149be9..96de885a554 100644
--- a/nixos/tests/docker-edge.nix
+++ b/nixos/tests/docker-edge.nix
@@ -1,6 +1,6 @@
# This test runs docker and checks if simple container starts
-import ./make-test.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, ...} : {
name = "docker";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ nequissimus offline ];
@@ -31,17 +31,19 @@ import ./make-test.nix ({ pkgs, ...} : {
};
testScript = ''
- startAll;
+ start_all()
- $docker->waitForUnit("sockets.target");
- $docker->succeed("tar cv --files-from /dev/null | docker import - scratchimg");
- $docker->succeed("docker run -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10");
- $docker->succeed("docker ps | grep sleeping");
- $docker->succeed("sudo -u hasprivs docker ps");
- $docker->fail("sudo -u noprivs docker ps");
- $docker->succeed("docker stop sleeping");
+ docker.wait_for_unit("sockets.target")
+ docker.succeed("tar cv --files-from /dev/null | docker import - scratchimg")
+ docker.succeed(
+ "docker run -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10"
+ )
+ docker.succeed("docker ps | grep sleeping")
+ docker.succeed("sudo -u hasprivs docker ps")
+ docker.fail("sudo -u noprivs docker ps")
+ docker.succeed("docker stop sleeping")
# Must match version twice to ensure client and server versions are correct
- $docker->succeed('[ $(docker version | grep ${pkgs.docker-edge.version} | wc -l) = "2" ]');
+ docker.succeed('[ $(docker version | grep ${pkgs.docker-edge.version} | wc -l) = "2" ]')
'';
})
diff --git a/nixos/tests/docker-registry.nix b/nixos/tests/docker-registry.nix
index 8936421072a..2928fd8141a 100644
--- a/nixos/tests/docker-registry.nix
+++ b/nixos/tests/docker-registry.nix
@@ -1,6 +1,6 @@
# This test runs docker-registry and check if it works
-import ./make-test.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, ...} : {
name = "docker-registry";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ globin ma27 ironpinguin ];
@@ -28,36 +28,34 @@ import ./make-test.nix ({ pkgs, ...} : {
};
testScript = ''
- $client1->start();
- $client1->waitForUnit("docker.service");
- $client1->succeed("tar cv --files-from /dev/null | docker import - scratch");
- $client1->succeed("docker tag scratch registry:8080/scratch");
+ client1.start()
+ client1.wait_for_unit("docker.service")
+ client1.succeed("tar cv --files-from /dev/null | docker import - scratch")
+ client1.succeed("docker tag scratch registry:8080/scratch")
- $registry->start();
- $registry->waitForUnit("docker-registry.service");
- $registry->waitForOpenPort("8080");
- $client1->succeed("docker push registry:8080/scratch");
+ registry.start()
+ registry.wait_for_unit("docker-registry.service")
+ registry.wait_for_open_port("8080")
+ client1.succeed("docker push registry:8080/scratch")
- $client2->start();
- $client2->waitForUnit("docker.service");
- $client2->succeed("docker pull registry:8080/scratch");
- $client2->succeed("docker images | grep scratch");
+ client2.start()
+ client2.wait_for_unit("docker.service")
+ client2.succeed("docker pull registry:8080/scratch")
+ client2.succeed("docker images | grep scratch")
- $client2->succeed(
- 'curl -fsS -X DELETE registry:8080/v2/scratch/manifests/$(curl -fsS -I -H"Accept: application/vnd.docker.distribution.manifest.v2+json" registry:8080/v2/scratch/manifests/latest | grep Docker-Content-Digest | sed -e \'s/Docker-Content-Digest: //\' | tr -d \'\r\')'
- );
+ client2.succeed(
+ "curl -fsS -X DELETE registry:8080/v2/scratch/manifests/$(curl -fsS -I -H\"Accept: application/vnd.docker.distribution.manifest.v2+json\" registry:8080/v2/scratch/manifests/latest | grep Docker-Content-Digest | sed -e 's/Docker-Content-Digest: //' | tr -d '\\r')"
+ )
- $registry->systemctl("start docker-registry-garbage-collect.service");
- $registry->waitUntilFails("systemctl status docker-registry-garbage-collect.service");
- $registry->waitForUnit("docker-registry.service");
+ registry.systemctl("start docker-registry-garbage-collect.service")
+ registry.wait_until_fails("systemctl status docker-registry-garbage-collect.service")
+ registry.wait_for_unit("docker-registry.service")
- $registry->fail(
- 'ls -l /var/lib/docker-registry/docker/registry/v2/blobs/sha256/*/*/data'
- );
+ registry.fail("ls -l /var/lib/docker-registry/docker/registry/v2/blobs/sha256/*/*/data")
- $client1->succeed("docker push registry:8080/scratch");
- $registry->succeed(
- 'ls -l /var/lib/docker-registry/docker/registry/v2/blobs/sha256/*/*/data'
- );
+ client1.succeed("docker push registry:8080/scratch")
+ registry.succeed(
+ "ls -l /var/lib/docker-registry/docker/registry/v2/blobs/sha256/*/*/data"
+ )
'';
})
diff --git a/nixos/tests/docker.nix b/nixos/tests/docker.nix
index d67b2f8743d..8fda7c1395e 100644
--- a/nixos/tests/docker.nix
+++ b/nixos/tests/docker.nix
@@ -1,6 +1,6 @@
# This test runs docker and checks if simple container starts
-import ./make-test.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, ...} : {
name = "docker";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ nequissimus offline ];
@@ -31,17 +31,19 @@ import ./make-test.nix ({ pkgs, ...} : {
};
testScript = ''
- startAll;
+ start_all()
- $docker->waitForUnit("sockets.target");
- $docker->succeed("tar cv --files-from /dev/null | docker import - scratchimg");
- $docker->succeed("docker run -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10");
- $docker->succeed("docker ps | grep sleeping");
- $docker->succeed("sudo -u hasprivs docker ps");
- $docker->fail("sudo -u noprivs docker ps");
- $docker->succeed("docker stop sleeping");
+ docker.wait_for_unit("sockets.target")
+ docker.succeed("tar cv --files-from /dev/null | docker import - scratchimg")
+ docker.succeed(
+ "docker run -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10"
+ )
+ docker.succeed("docker ps | grep sleeping")
+ docker.succeed("sudo -u hasprivs docker ps")
+ docker.fail("sudo -u noprivs docker ps")
+ docker.succeed("docker stop sleeping")
# Must match version twice to ensure client and server versions are correct
- $docker->succeed('[ $(docker version | grep ${pkgs.docker.version} | wc -l) = "2" ]');
+ docker.succeed('[ $(docker version | grep ${pkgs.docker.version} | wc -l) = "2" ]')
'';
})
diff --git a/nixos/tests/documize.nix b/nixos/tests/documize.nix
index 8b852a4f779..3be20a780d3 100644
--- a/nixos/tests/documize.nix
+++ b/nixos/tests/documize.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, lib, ...} : {
+import ./make-test-python.nix ({ pkgs, lib, ...} : {
name = "documize";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ ma27 ];
@@ -29,30 +29,34 @@ import ./make-test.nix ({ pkgs, lib, ...} : {
};
testScript = ''
- startAll;
+ start_all()
- $machine->waitForUnit("documize-server.service");
- $machine->waitForOpenPort(3000);
+ machine.wait_for_unit("documize-server.service")
+ machine.wait_for_open_port(3000)
- my $dbhash = $machine->succeed("curl -f localhost:3000 "
- . " | grep 'property=\"dbhash' "
- . " | grep -Po 'content=\"\\K[^\"]*'"
- );
+ dbhash = machine.succeed(
+ "curl -f localhost:3000 | grep 'property=\"dbhash' | grep -Po 'content=\"\\K[^\"]*'"
+ )
- chomp($dbhash);
+ dbhash = dbhash.strip()
- $machine->succeed("curl -X POST "
- . "--data 'dbname=documize' "
- . "--data 'dbhash=$dbhash' "
- . "--data 'title=NixOS' "
- . "--data 'message=Docs' "
- . "--data 'firstname=John' "
- . "--data 'lastname=Doe' "
- . "--data 'email=john.doe\@nixos.org' "
- . "--data 'password=verysafe' "
- . "-f localhost:3000/api/setup"
- );
+ machine.succeed(
+ (
+ "curl -X POST"
+ " --data 'dbname=documize'"
+ " --data 'dbhash={}'"
+ " --data 'title=NixOS'"
+ " --data 'message=Docs'"
+ " --data 'firstname=John'"
+ " --data 'lastname=Doe'"
+ " --data 'email=john.doe@nixos.org'"
+ " --data 'password=verysafe'"
+ " -f localhost:3000/api/setup"
+ ).format(dbhash)
+ )
- $machine->succeed('test "$(curl -f localhost:3000/api/public/meta | jq ".title" | xargs echo)" = "NixOS"');
+ machine.succeed(
+ 'test "$(curl -f localhost:3000/api/public/meta | jq ".title" | xargs echo)" = "NixOS"'
+ )
'';
})
diff --git a/nixos/tests/dovecot.nix b/nixos/tests/dovecot.nix
index 156079d1d58..c19850f418b 100644
--- a/nixos/tests/dovecot.nix
+++ b/nixos/tests/dovecot.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix {
+import ./make-test-python.nix {
name = "dovecot";
machine = { pkgs, ... }: {
@@ -66,12 +66,12 @@ import ./make-test.nix {
};
testScript = ''
- $machine->waitForUnit('postfix.service');
- $machine->waitForUnit('dovecot2.service');
- $machine->succeed('send-testmail');
- $machine->succeed('send-lda');
- $machine->waitUntilFails('[ "$(postqueue -p)" != "Mail queue is empty" ]');
- $machine->succeed('test-imap');
- $machine->succeed('test-pop');
+ machine.wait_for_unit("postfix.service")
+ machine.wait_for_unit("dovecot2.service")
+ machine.succeed("send-testmail")
+ machine.succeed("send-lda")
+ machine.wait_until_fails('[ "$(postqueue -p)" != "Mail queue is empty" ]')
+ machine.succeed("test-imap")
+ machine.succeed("test-pop")
'';
}
diff --git a/nixos/tests/emacs-daemon.nix b/nixos/tests/emacs-daemon.nix
index 3594e35e343..b89d9b1bde6 100644
--- a/nixos/tests/emacs-daemon.nix
+++ b/nixos/tests/emacs-daemon.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, ...} : {
name = "emacs-daemon";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ ];
@@ -21,25 +21,28 @@ import ./make-test.nix ({ pkgs, ...} : {
environment.variables.TEST_SYSTEM_VARIABLE = "system variable";
};
- testScript =
- ''
- $machine->waitForUnit("multi-user.target");
+ testScript = ''
+ machine.wait_for_unit("multi-user.target")
# checks that the EDITOR environment variable is set
- $machine->succeed("test \$(basename \"\$EDITOR\") = emacseditor");
+ machine.succeed('test $(basename "$EDITOR") = emacseditor')
# waits for the emacs service to be ready
- $machine->waitUntilSucceeds("systemctl --user status emacs.service | grep 'Active: active'");
+ machine.wait_until_succeeds(
+ "systemctl --user status emacs.service | grep 'Active: active'"
+ )
# connects to the daemon
- $machine->succeed("emacsclient --create-frame \$EDITOR &");
+ machine.succeed("emacsclient --create-frame $EDITOR &")
# checks that Emacs shows the edited filename
- $machine->waitForText("emacseditor");
+ machine.wait_for_text("emacseditor")
# makes sure environment variables are accessible from Emacs
- $machine->succeed("emacsclient --eval '(getenv \"TEST_SYSTEM_VARIABLE\")'") =~ /system variable/ or die;
+ machine.succeed(
+ "emacsclient --eval '(getenv \"TEST_SYSTEM_VARIABLE\")' | grep -q 'system variable'"
+ )
- $machine->screenshot("emacsclient");
+ machine.screenshot("emacsclient")
'';
})
diff --git a/nixos/tests/etcd-cluster.nix b/nixos/tests/etcd-cluster.nix
index 43fde7d5920..19c5d915823 100644
--- a/nixos/tests/etcd-cluster.nix
+++ b/nixos/tests/etcd-cluster.nix
@@ -1,6 +1,6 @@
# This test runs simple etcd cluster
-import ./make-test.nix ({ pkgs, ... } : let
+import ./make-test-python.nix ({ pkgs, ... } : let
runWithOpenSSL = file: cmd: pkgs.runCommand file {
buildInputs = [ pkgs.openssl ];
@@ -129,29 +129,26 @@ in {
};
testScript = ''
- subtest "should start etcd cluster", sub {
- $node1->start();
- $node2->start();
- $node1->waitForUnit("etcd.service");
- $node2->waitForUnit("etcd.service");
- $node2->waitUntilSucceeds("etcdctl cluster-health");
- $node1->succeed("etcdctl set /foo/bar 'Hello world'");
- $node2->succeed("etcdctl get /foo/bar | grep 'Hello world'");
- };
+ with subtest("should start etcd cluster"):
+ node1.start()
+ node2.start()
+ node1.wait_for_unit("etcd.service")
+ node2.wait_for_unit("etcd.service")
+ node2.wait_until_succeeds("etcdctl cluster-health")
+ node1.succeed("etcdctl set /foo/bar 'Hello world'")
+ node2.succeed("etcdctl get /foo/bar | grep 'Hello world'")
- subtest "should add another member", sub {
- $node1->waitUntilSucceeds("etcdctl member add node3 https://node3:2380");
- $node3->start();
- $node3->waitForUnit("etcd.service");
- $node3->waitUntilSucceeds("etcdctl member list | grep 'node3'");
- $node3->succeed("etcdctl cluster-health");
- };
+ with subtest("should add another member"):
+ node1.wait_until_succeeds("etcdctl member add node3 https://node3:2380")
+ node3.start()
+ node3.wait_for_unit("etcd.service")
+ node3.wait_until_succeeds("etcdctl member list | grep 'node3'")
+ node3.succeed("etcdctl cluster-health")
- subtest "should survive member crash", sub {
- $node3->crash;
- $node1->succeed("etcdctl cluster-health");
- $node1->succeed("etcdctl set /foo/bar 'Hello degraded world'");
- $node1->succeed("etcdctl get /foo/bar | grep 'Hello degraded world'");
- };
+ with subtest("should survive member crash"):
+ node3.crash()
+ node1.succeed("etcdctl cluster-health")
+ node1.succeed("etcdctl set /foo/bar 'Hello degraded world'")
+ node1.succeed("etcdctl get /foo/bar | grep 'Hello degraded world'")
'';
})
diff --git a/nixos/tests/etcd.nix b/nixos/tests/etcd.nix
index 6c23b31779b..84272434384 100644
--- a/nixos/tests/etcd.nix
+++ b/nixos/tests/etcd.nix
@@ -1,6 +1,6 @@
# This test runs simple etcd node
-import ./make-test.nix ({ pkgs, ... } : {
+import ./make-test-python.nix ({ pkgs, ... } : {
name = "etcd";
meta = with pkgs.stdenv.lib.maintainers; {
@@ -14,14 +14,12 @@ import ./make-test.nix ({ pkgs, ... } : {
};
testScript = ''
- subtest "should start etcd node", sub {
- $node->start();
- $node->waitForUnit("etcd.service");
- };
+ with subtest("should start etcd node"):
+ node.start()
+ node.wait_for_unit("etcd.service")
- subtest "should write and read some values to etcd", sub {
- $node->succeed("etcdctl set /foo/bar 'Hello world'");
- $node->succeed("etcdctl get /foo/bar | grep 'Hello world'");
- }
+ with subtest("should write and read some values to etcd"):
+ node.succeed("etcdctl set /foo/bar 'Hello world'")
+ node.succeed("etcdctl get /foo/bar | grep 'Hello world'")
'';
})
diff --git a/nixos/tests/fancontrol.nix b/nixos/tests/fancontrol.nix
new file mode 100644
index 00000000000..356cd57ffa1
--- /dev/null
+++ b/nixos/tests/fancontrol.nix
@@ -0,0 +1,28 @@
+import ./make-test-python.nix ({ pkgs, ... } : {
+ name = "fancontrol";
+
+ machine =
+ { ... }:
+ { hardware.fancontrol.enable = true;
+ hardware.fancontrol.config = ''
+ INTERVAL=42
+ DEVPATH=hwmon1=devices/platform/dummy
+ DEVNAME=hwmon1=dummy
+ FCTEMPS=hwmon1/device/pwm1=hwmon1/device/temp1_input
+ FCFANS=hwmon1/device/pwm1=hwmon1/device/fan1_input
+ MINTEMP=hwmon1/device/pwm1=25
+ MAXTEMP=hwmon1/device/pwm1=65
+ MINSTART=hwmon1/device/pwm1=150
+ MINSTOP=hwmon1/device/pwm1=0
+ '';
+ };
+
+ # This configuration cannot be valid for the test VM, so it's expected to get an 'outdated' error.
+ testScript = ''
+ start_all()
+ machine.wait_for_unit("fancontrol.service")
+ machine.wait_until_succeeds(
+ "journalctl -eu fancontrol | grep 'Configuration appears to be outdated'"
+ )
+ '';
+})
diff --git a/nixos/tests/ferm.nix b/nixos/tests/ferm.nix
index b8e8663e3ad..edf9c8036ac 100644
--- a/nixos/tests/ferm.nix
+++ b/nixos/tests/ferm.nix
@@ -22,6 +22,8 @@ import ./make-test.nix ({ pkgs, ...} : {
{
networking = {
dhcpcd.enable = false;
+ useNetworkd = true;
+ useDHCP = false;
interfaces.eth1.ipv6.addresses = mkOverride 0 [ { address = "fd00::1"; prefixLength = 64; } ];
interfaces.eth1.ipv4.addresses = mkOverride 0 [ { address = "192.168.1.1"; prefixLength = 24; } ];
};
diff --git a/nixos/tests/firefox.nix b/nixos/tests/firefox.nix
index f5b946a0881..56ddabbae77 100644
--- a/nixos/tests/firefox.nix
+++ b/nixos/tests/firefox.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ... }: {
+import ./make-test-python.nix ({ pkgs, ... }: {
name = "firefox";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ eelco shlevy ];
@@ -11,19 +11,27 @@ import ./make-test.nix ({ pkgs, ... }: {
environment.systemPackages = [ pkgs.firefox pkgs.xdotool ];
};
- testScript =
- ''
- $machine->waitForX;
- $machine->execute("xterm -e 'firefox file://${pkgs.valgrind.doc}/share/doc/valgrind/html/index.html' &");
- $machine->waitForWindow(qr/Valgrind/);
- $machine->sleep(40); # wait until Firefox has finished loading the page
- $machine->execute("xdotool key space"); # do I want to make Firefox the
- # default browser? I just want to close the dialog
- $machine->sleep(2); # wait until Firefox hides the default browser window
- $machine->execute("xdotool key F12");
- $machine->sleep(10); # wait until Firefox draws the developer tool panel
- $machine->succeed("xwininfo -root -tree | grep Valgrind");
- $machine->screenshot("screen");
+ testScript = ''
+ machine.wait_for_x()
+
+ with subtest("wait until Firefox has finished loading the Valgrind docs page"):
+ machine.execute(
+ "xterm -e 'firefox file://${pkgs.valgrind.doc}/share/doc/valgrind/html/index.html' &"
+ )
+ machine.wait_for_window("Valgrind")
+ machine.sleep(40)
+
+ with subtest("Close default browser prompt"):
+ machine.execute("xdotool key space")
+
+ with subtest("Hide default browser window"):
+ machine.sleep(2)
+ machine.execute("xdotool key F12")
+
+ with subtest("wait until Firefox draws the developer tool panel"):
+ machine.sleep(10)
+ machine.succeed("xwininfo -root -tree | grep Valgrind")
+ machine.screenshot("screen")
'';
})
diff --git a/nixos/tests/firewall.nix b/nixos/tests/firewall.nix
index fcf758910e0..09a1fef852e 100644
--- a/nixos/tests/firewall.nix
+++ b/nixos/tests/firewall.nix
@@ -1,6 +1,6 @@
# Test the firewall module.
-import ./make-test.nix ( { pkgs, ... } : {
+import ./make-test-python.nix ( { pkgs, ... } : {
name = "firewall";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ eelco ];
@@ -36,30 +36,30 @@ import ./make-test.nix ( { pkgs, ... } : {
testScript = { nodes, ... }: let
newSystem = nodes.walled2.config.system.build.toplevel;
in ''
- $walled->start;
- $attacker->start;
+ start_all()
- $walled->waitForUnit("firewall");
- $walled->waitForUnit("httpd");
- $attacker->waitForUnit("network.target");
+ walled.wait_for_unit("firewall")
+ walled.wait_for_unit("httpd")
+ attacker.wait_for_unit("network.target")
# Local connections should still work.
- $walled->succeed("curl -v http://localhost/ >&2");
+ walled.succeed("curl -v http://localhost/ >&2")
# Connections to the firewalled machine should fail, but ping should succeed.
- $attacker->fail("curl --fail --connect-timeout 2 http://walled/ >&2");
- $attacker->succeed("ping -c 1 walled >&2");
+ attacker.fail("curl --fail --connect-timeout 2 http://walled/ >&2")
+ attacker.succeed("ping -c 1 walled >&2")
# Outgoing connections/pings should still work.
- $walled->succeed("curl -v http://attacker/ >&2");
- $walled->succeed("ping -c 1 attacker >&2");
+ walled.succeed("curl -v http://attacker/ >&2")
+ walled.succeed("ping -c 1 attacker >&2")
# If we stop the firewall, then connections should succeed.
- $walled->stopJob("firewall");
- $attacker->succeed("curl -v http://walled/ >&2");
+ walled.stop_job("firewall")
+ attacker.succeed("curl -v http://walled/ >&2")
# Check whether activation of a new configuration reloads the firewall.
- $walled->succeed("${newSystem}/bin/switch-to-configuration test 2>&1" .
- " | grep -qF firewall.service");
+ walled.succeed(
+ "${newSystem}/bin/switch-to-configuration test 2>&1 | grep -qF firewall.service"
+ )
'';
})
diff --git a/nixos/tests/fish.nix b/nixos/tests/fish.nix
index 97c4e8e37ac..68fba428439 100644
--- a/nixos/tests/fish.nix
+++ b/nixos/tests/fish.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ... }: {
+import ./make-test-python.nix ({ pkgs, ... }: {
name = "fish";
machine =
@@ -14,8 +14,11 @@ import ./make-test.nix ({ pkgs, ... }: {
testScript =
''
- $machine->waitForFile("/etc/fish/generated_completions/coreutils.fish");
- $machine->waitForFile("/etc/fish/generated_completions/kill.fish");
- $machine->succeed("fish -ic 'echo \$fish_complete_path' | grep -q '/share/fish/completions /etc/fish/generated_completions /root/.local/share/fish/generated_completions\$'");
+ start_all()
+ machine.wait_for_file("/etc/fish/generated_completions/coreutils.fish")
+ machine.wait_for_file("/etc/fish/generated_completions/kill.fish")
+ machine.succeed(
+ "fish -ic 'echo $fish_complete_path' | grep -q '/share/fish/completions /etc/fish/generated_completions /root/.local/share/fish/generated_completions$'"
+ )
'';
})
diff --git a/nixos/tests/flatpak-builder.nix b/nixos/tests/flatpak-builder.nix
deleted file mode 100644
index 49b97e8ca99..00000000000
--- a/nixos/tests/flatpak-builder.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-# run installed tests
-import ./make-test.nix ({ pkgs, ... }:
-
-{
- name = "flatpak-builder";
- meta = {
- maintainers = pkgs.flatpak-builder.meta.maintainers;
- };
-
- machine = { pkgs, ... }: {
- services.flatpak.enable = true;
- xdg.portal.enable = true;
- environment.systemPackages = with pkgs; [ gnome-desktop-testing flatpak-builder ] ++ flatpak-builder.installedTestsDependencies;
- virtualisation.diskSize = 2048;
- };
-
- testScript = ''
- $machine->succeed("gnome-desktop-testing-runner -d '${pkgs.flatpak-builder.installedTests}/share' --timeout 3600");
- '';
-})
diff --git a/nixos/tests/flatpak.nix b/nixos/tests/flatpak.nix
deleted file mode 100644
index b0c61830d05..00000000000
--- a/nixos/tests/flatpak.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-# run installed tests
-import ./make-test.nix ({ pkgs, ... }:
-
-{
- name = "flatpak";
- meta = {
- maintainers = pkgs.flatpak.meta.maintainers;
- };
-
- machine = { pkgs, ... }: {
- imports = [ ./common/x11.nix ];
- services.xserver.desktopManager.gnome3.enable = true; # TODO: figure out minimal environment where the tests work
- # common/x11.nix enables the auto display manager (lightdm)
- services.xserver.displayManager.gdm.enable = false;
- environment.gnome3.excludePackages = pkgs.gnome3.optionalPackages;
- services.flatpak.enable = true;
- environment.systemPackages = with pkgs; [ gnupg gnome-desktop-testing ostree python2 ];
- virtualisation.memorySize = 2047;
- virtualisation.diskSize = 1024;
- };
-
- testScript = ''
- $machine->waitForX();
- $machine->succeed("gnome-desktop-testing-runner -d '${pkgs.flatpak.installedTests}/share' --timeout 3600");
- '';
-})
diff --git a/nixos/tests/fluentd.nix b/nixos/tests/fluentd.nix
index e5c4c3d2163..918f2f87db1 100644
--- a/nixos/tests/fluentd.nix
+++ b/nixos/tests/fluentd.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, lib, ... }: {
+import ./make-test-python.nix ({ pkgs, lib, ... }: {
name = "fluentd";
machine = { pkgs, ... }: {
@@ -33,14 +33,17 @@ import ./make-test.nix ({ pkgs, lib, ... }: {
inherit testMessage;
});
in ''
- $machine->start;
- $machine->waitForUnit('fluentd.service');
- $machine->waitForOpenPort(9880);
+ machine.start()
+ machine.wait_for_unit("fluentd.service")
+ machine.wait_for_open_port(9880)
- $machine->succeed("curl -fsSL -X POST -H 'Content-type: application/json' -d @${payload} http://localhost:9880/test.tag");
+ machine.succeed(
+ "curl -fsSL -X POST -H 'Content-type: application/json' -d @${payload} http://localhost:9880/test.tag"
+ )
- $machine->succeed("systemctl stop fluentd"); # blocking flush
+ # blocking flush
+ machine.succeed("systemctl stop fluentd")
- $machine->succeed("grep '${testMessage}' /tmp/current-log");
+ machine.succeed("grep '${testMessage}' /tmp/current-log")
'';
})
diff --git a/nixos/tests/fontconfig-default-fonts.nix b/nixos/tests/fontconfig-default-fonts.nix
index 1991cec9218..68c6ac9e9c8 100644
--- a/nixos/tests/fontconfig-default-fonts.nix
+++ b/nixos/tests/fontconfig-default-fonts.nix
@@ -1,7 +1,12 @@
-import ./make-test.nix ({ lib, ... }:
+import ./make-test-python.nix ({ lib, ... }:
{
name = "fontconfig-default-fonts";
+ meta.maintainers = with lib.maintainers; [
+ jtojnar
+ worldofpeace
+ ];
+
machine = { config, pkgs, ... }: {
fonts.enableDefaultFonts = true; # Background fonts
fonts.fonts = with pkgs; [
@@ -20,9 +25,9 @@ import ./make-test.nix ({ lib, ... }:
};
testScript = ''
- $machine->succeed("fc-match serif | grep '\"Gentium Plus\"'");
- $machine->succeed("fc-match sans-serif | grep '\"Cantarell\"'");
- $machine->succeed("fc-match monospace | grep '\"Source Code Pro\"'");
- $machine->succeed("fc-match emoji | grep '\"Twitter Color Emoji\"'");
+ machine.succeed("fc-match serif | grep '\"Gentium Plus\"'")
+ machine.succeed("fc-match sans-serif | grep '\"Cantarell\"'")
+ machine.succeed("fc-match monospace | grep '\"Source Code Pro\"'")
+ machine.succeed("fc-match emoji | grep '\"Twitter Color Emoji\"'")
'';
})
diff --git a/nixos/tests/fsck.nix b/nixos/tests/fsck.nix
index f943bb7f235..e522419fde2 100644
--- a/nixos/tests/fsck.nix
+++ b/nixos/tests/fsck.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix {
+import ./make-test-python.nix {
name = "fsck";
machine = { lib, ... }: {
@@ -14,16 +14,18 @@ import ./make-test.nix {
};
testScript = ''
- $machine->waitForUnit('default.target');
+ machine.wait_for_unit("default.target")
- subtest "root fs is fsckd", sub {
- $machine->succeed('journalctl -b | grep "fsck.ext4.*/dev/vda"');
- };
+ with subtest("root fs is fsckd"):
+ machine.succeed("journalctl -b | grep 'fsck.ext4.*/dev/vda'")
- subtest "mnt fs is fsckd", sub {
- $machine->succeed('journalctl -b | grep "fsck.*/dev/vdb.*clean"');
- $machine->succeed('grep "Requires=systemd-fsck@dev-vdb.service" /run/systemd/generator/mnt.mount');
- $machine->succeed('grep "After=systemd-fsck@dev-vdb.service" /run/systemd/generator/mnt.mount');
- };
+ with subtest("mnt fs is fsckd"):
+ machine.succeed("journalctl -b | grep 'fsck.*/dev/vdb.*clean'")
+ machine.succeed(
+ "grep 'Requires=systemd-fsck@dev-vdb.service' /run/systemd/generator/mnt.mount"
+ )
+ machine.succeed(
+ "grep 'After=systemd-fsck@dev-vdb.service' /run/systemd/generator/mnt.mount"
+ )
'';
}
diff --git a/nixos/tests/fwupd.nix b/nixos/tests/fwupd.nix
deleted file mode 100644
index 88dac8ccbcd..00000000000
--- a/nixos/tests/fwupd.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-# run installed tests
-import ./make-test.nix ({ pkgs, ... }: {
- name = "fwupd";
-
- meta = {
- maintainers = pkgs.fwupd.meta.maintainers;
- };
-
- machine = { pkgs, ... }: {
- services.fwupd.enable = true;
- services.fwupd.blacklistPlugins = []; # don't blacklist test plugin
- services.fwupd.enableTestRemote = true;
- environment.systemPackages = with pkgs; [ gnome-desktop-testing ];
- environment.variables.XDG_DATA_DIRS = [ "${pkgs.fwupd.installedTests}/share" ];
- virtualisation.memorySize = 768;
- };
-
- testScript = ''
- $machine->succeed("gnome-desktop-testing-runner");
- '';
-})
diff --git a/nixos/tests/gdk-pixbuf.nix b/nixos/tests/gdk-pixbuf.nix
deleted file mode 100644
index 9a62b593f46..00000000000
--- a/nixos/tests/gdk-pixbuf.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-# run installed tests
-import ./make-test.nix ({ pkgs, ... }: {
- name = "gdk-pixbuf";
-
- meta = {
- maintainers = pkgs.gdk-pixbuf.meta.maintainers;
- };
-
- machine = { pkgs, ... }: {
- environment.systemPackages = with pkgs; [ gnome-desktop-testing ];
- environment.variables.XDG_DATA_DIRS = [ "${pkgs.gdk-pixbuf.installedTests}/share" ];
-
- # Tests allocate a lot of memory trying to exploit a CVE
- # but qemu-system-i386 has a 2047M memory limit
- virtualisation.memorySize = if pkgs.stdenv.isi686 then 2047 else 4096;
- };
-
- testScript = ''
- $machine->succeed("gnome-desktop-testing-runner -t 1800"); # increase timeout to 1800s
- '';
-})
diff --git a/nixos/tests/gitea.nix b/nixos/tests/gitea.nix
index b8ab6dabc8c..ffbc07cfbb2 100644
--- a/nixos/tests/gitea.nix
+++ b/nixos/tests/gitea.nix
@@ -3,7 +3,7 @@
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;
{
@@ -18,11 +18,11 @@ with pkgs.lib;
};
testScript = ''
- startAll;
+ start_all()
- $machine->waitForUnit('gitea.service');
- $machine->waitForOpenPort('3000');
- $machine->succeed("curl --fail http://localhost:3000/");
+ machine.wait_for_unit("gitea.service")
+ machine.wait_for_open_port(3000)
+ machine.succeed("curl --fail http://localhost:3000/")
'';
};
@@ -37,11 +37,11 @@ with pkgs.lib;
};
testScript = ''
- startAll;
+ start_all()
- $machine->waitForUnit('gitea.service');
- $machine->waitForOpenPort('3000');
- $machine->succeed("curl --fail http://localhost:3000/");
+ machine.wait_for_unit("gitea.service")
+ machine.wait_for_open_port(3000)
+ machine.succeed("curl --fail http://localhost:3000/")
'';
};
@@ -56,12 +56,14 @@ with pkgs.lib;
};
testScript = ''
- startAll;
+ start_all()
- $machine->waitForUnit('gitea.service');
- $machine->waitForOpenPort('3000');
- $machine->succeed("curl --fail http://localhost:3000/");
- $machine->succeed("curl --fail http://localhost:3000/user/sign_up | grep 'Registration is disabled. Please contact your site administrator.'");
+ machine.wait_for_unit("gitea.service")
+ machine.wait_for_open_port(3000)
+ machine.succeed("curl --fail http://localhost:3000/")
+ machine.succeed(
+ "curl --fail http://localhost:3000/user/sign_up | grep 'Registration is disabled. Please contact your site administrator.'"
+ )
'';
};
}
diff --git a/nixos/tests/gitlab.nix b/nixos/tests/gitlab.nix
index be0b3c8746a..7e4e8bcef92 100644
--- a/nixos/tests/gitlab.nix
+++ b/nixos/tests/gitlab.nix
@@ -3,7 +3,7 @@
let
initialRootPassword = "notproduction";
in
-import ./make-test.nix ({ pkgs, lib, ...} : with lib; {
+import ./make-test-python.nix ({ pkgs, lib, ...} : with lib; {
name = "gitlab";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ globin ];
@@ -63,21 +63,35 @@ import ./make-test.nix ({ pkgs, lib, ...} : with lib; {
});
in
''
- $gitlab->start();
- $gitlab->waitForUnit("gitaly.service");
- $gitlab->waitForUnit("gitlab-workhorse.service");
- $gitlab->waitForUnit("gitlab.service");
- $gitlab->waitForUnit("gitlab-sidekiq.service");
- $gitlab->waitForFile("/var/gitlab/state/tmp/sockets/gitlab.socket");
- $gitlab->waitUntilSucceeds("curl -sSf http://gitlab/users/sign_in");
- $gitlab->succeed("curl -isSf http://gitlab | grep -i location | grep -q http://gitlab/users/sign_in");
- $gitlab->succeed("${pkgs.sudo}/bin/sudo -u gitlab -H gitlab-rake gitlab:check 1>&2");
- $gitlab->succeed("echo \"Authorization: Bearer \$(curl -X POST -H 'Content-Type: application/json' -d @${auth} http://gitlab/oauth/token | ${pkgs.jq}/bin/jq -r '.access_token')\" >/tmp/headers");
- $gitlab->succeed("curl -X POST -H 'Content-Type: application/json' -H @/tmp/headers -d @${createProject} http://gitlab/api/v4/projects");
- $gitlab->succeed("curl -X POST -H 'Content-Type: application/json' -H @/tmp/headers -d @${putFile} http://gitlab/api/v4/projects/1/repository/files/some-file.txt");
- $gitlab->succeed("curl -H @/tmp/headers http://gitlab/api/v4/projects/1/repository/archive.tar.gz > /tmp/archive.tar.gz");
- $gitlab->succeed("curl -H @/tmp/headers http://gitlab/api/v4/projects/1/repository/archive.tar.bz2 > /tmp/archive.tar.bz2");
- $gitlab->succeed("test -s /tmp/archive.tar.gz");
- $gitlab->succeed("test -s /tmp/archive.tar.bz2");
+ gitlab.start()
+ gitlab.wait_for_unit("gitaly.service")
+ gitlab.wait_for_unit("gitlab-workhorse.service")
+ gitlab.wait_for_unit("gitlab.service")
+ gitlab.wait_for_unit("gitlab-sidekiq.service")
+ gitlab.wait_for_file("/var/gitlab/state/tmp/sockets/gitlab.socket")
+ gitlab.wait_until_succeeds("curl -sSf http://gitlab/users/sign_in")
+ gitlab.succeed(
+ "curl -isSf http://gitlab | grep -i location | grep -q http://gitlab/users/sign_in"
+ )
+ gitlab.succeed(
+ "${pkgs.sudo}/bin/sudo -u gitlab -H gitlab-rake gitlab:check 1>&2"
+ )
+ gitlab.succeed(
+ "echo \"Authorization: Bearer \$(curl -X POST -H 'Content-Type: application/json' -d @${auth} http://gitlab/oauth/token | ${pkgs.jq}/bin/jq -r '.access_token')\" >/tmp/headers"
+ )
+ gitlab.succeed(
+ "curl -X POST -H 'Content-Type: application/json' -H @/tmp/headers -d @${createProject} http://gitlab/api/v4/projects"
+ )
+ gitlab.succeed(
+ "curl -X POST -H 'Content-Type: application/json' -H @/tmp/headers -d @${putFile} http://gitlab/api/v4/projects/1/repository/files/some-file.txt"
+ )
+ gitlab.succeed(
+ "curl -H @/tmp/headers http://gitlab/api/v4/projects/1/repository/archive.tar.gz > /tmp/archive.tar.gz"
+ )
+ gitlab.succeed(
+ "curl -H @/tmp/headers http://gitlab/api/v4/projects/1/repository/archive.tar.bz2 > /tmp/archive.tar.bz2"
+ )
+ gitlab.succeed("test -s /tmp/archive.tar.gz")
+ gitlab.succeed("test -s /tmp/archive.tar.bz2")
'';
})
diff --git a/nixos/tests/gitolite.nix b/nixos/tests/gitolite.nix
index 690e456ed7c..a928645bd80 100644
--- a/nixos/tests/gitolite.nix
+++ b/nixos/tests/gitolite.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ...}:
+import ./make-test-python.nix ({ pkgs, ...}:
let
adminPrivateKey = pkgs.writeText "id_ed25519" ''
@@ -43,7 +43,7 @@ let
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJZNonUP1ePHLrvn0W9D2hdN6zWWZYFyJc+QR6pOKQEw bob@client
'';
- gitoliteAdminConfSnippet = ''
+ gitoliteAdminConfSnippet = pkgs.writeText "gitolite-admin-conf-snippet" ''
repo alice-project
RW+ = alice
'';
@@ -85,55 +85,54 @@ in
};
testScript = ''
- startAll;
+ start_all()
- subtest "can setup ssh keys on system", sub {
- $client->mustSucceed("mkdir -p ~root/.ssh");
- $client->mustSucceed("cp ${adminPrivateKey} ~root/.ssh/id_ed25519");
- $client->mustSucceed("chmod 600 ~root/.ssh/id_ed25519");
+ with subtest("can setup ssh keys on system"):
+ client.succeed(
+ "mkdir -p ~root/.ssh",
+ "cp ${adminPrivateKey} ~root/.ssh/id_ed25519",
+ "chmod 600 ~root/.ssh/id_ed25519",
+ )
+ client.succeed(
+ "sudo -u alice mkdir -p ~alice/.ssh",
+ "sudo -u alice cp ${alicePrivateKey} ~alice/.ssh/id_ed25519",
+ "sudo -u alice chmod 600 ~alice/.ssh/id_ed25519",
+ )
+ client.succeed(
+ "sudo -u bob mkdir -p ~bob/.ssh",
+ "sudo -u bob cp ${bobPrivateKey} ~bob/.ssh/id_ed25519",
+ "sudo -u bob chmod 600 ~bob/.ssh/id_ed25519",
+ )
- $client->mustSucceed("sudo -u alice mkdir -p ~alice/.ssh");
- $client->mustSucceed("sudo -u alice cp ${alicePrivateKey} ~alice/.ssh/id_ed25519");
- $client->mustSucceed("sudo -u alice chmod 600 ~alice/.ssh/id_ed25519");
+ with subtest("gitolite server starts"):
+ server.wait_for_unit("gitolite-init.service")
+ server.wait_for_unit("sshd.service")
+ client.succeed("ssh gitolite@server info")
- $client->mustSucceed("sudo -u bob mkdir -p ~bob/.ssh");
- $client->mustSucceed("sudo -u bob cp ${bobPrivateKey} ~bob/.ssh/id_ed25519");
- $client->mustSucceed("sudo -u bob chmod 600 ~bob/.ssh/id_ed25519");
- };
+ with subtest("admin can clone and configure gitolite-admin.git"):
+ client.succeed(
+ "git clone gitolite@server:gitolite-admin.git",
+ "git config --global user.name 'System Administrator'",
+ "git config --global user.email root\@domain.example",
+ "cp ${alicePublicKey} gitolite-admin/keydir/alice.pub",
+ "cp ${bobPublicKey} gitolite-admin/keydir/bob.pub",
+ "(cd gitolite-admin && git add . && git commit -m 'Add keys for alice, bob' && git push)",
+ "cat ${gitoliteAdminConfSnippet} >> gitolite-admin/conf/gitolite.conf",
+ "(cd gitolite-admin && git add . && git commit -m 'Add repo for alice' && git push)",
+ )
- subtest "gitolite server starts", sub {
- $server->waitForUnit("gitolite-init.service");
- $server->waitForUnit("sshd.service");
- $client->mustSucceed('ssh gitolite@server info');
- };
+ with subtest("non-admins cannot clone gitolite-admin.git"):
+ client.fail("sudo -i -u alice git clone gitolite@server:gitolite-admin.git")
+ client.fail("sudo -i -u bob git clone gitolite@server:gitolite-admin.git")
- subtest "admin can clone and configure gitolite-admin.git", sub {
- $client->mustSucceed('git clone gitolite@server:gitolite-admin.git');
- $client->mustSucceed("git config --global user.name 'System Administrator'");
- $client->mustSucceed("git config --global user.email root\@domain.example");
- $client->mustSucceed("cp ${alicePublicKey} gitolite-admin/keydir/alice.pub");
- $client->mustSucceed("cp ${bobPublicKey} gitolite-admin/keydir/bob.pub");
- $client->mustSucceed('(cd gitolite-admin && git add . && git commit -m "Add keys for alice, bob" && git push)');
- $client->mustSucceed("printf '${gitoliteAdminConfSnippet}' >> gitolite-admin/conf/gitolite.conf");
- $client->mustSucceed('(cd gitolite-admin && git add . && git commit -m "Add repo for alice" && git push)');
- };
+ with subtest("non-admins can clone testing.git"):
+ client.succeed("sudo -i -u alice git clone gitolite@server:testing.git")
+ client.succeed("sudo -i -u bob git clone gitolite@server:testing.git")
- subtest "non-admins cannot clone gitolite-admin.git", sub {
- $client->mustFail('sudo -i -u alice git clone gitolite@server:gitolite-admin.git');
- $client->mustFail('sudo -i -u bob git clone gitolite@server:gitolite-admin.git');
- };
+ with subtest("alice can clone alice-project.git"):
+ client.succeed("sudo -i -u alice git clone gitolite@server:alice-project.git")
- subtest "non-admins can clone testing.git", sub {
- $client->mustSucceed('sudo -i -u alice git clone gitolite@server:testing.git');
- $client->mustSucceed('sudo -i -u bob git clone gitolite@server:testing.git');
- };
-
- subtest "alice can clone alice-project.git", sub {
- $client->mustSucceed('sudo -i -u alice git clone gitolite@server:alice-project.git');
- };
-
- subtest "bob cannot clone alice-project.git", sub {
- $client->mustFail('sudo -i -u bob git clone gitolite@server:alice-project.git');
- };
+ with subtest("bob cannot clone alice-project.git"):
+ client.fail("sudo -i -u bob git clone gitolite@server:alice-project.git")
'';
})
diff --git a/nixos/tests/gjs.nix b/nixos/tests/gjs.nix
deleted file mode 100644
index e6002ef98dd..00000000000
--- a/nixos/tests/gjs.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-# run installed tests
-import ./make-test.nix ({ pkgs, ... }: {
- name = "gjs";
-
- meta = {
- maintainers = pkgs.gnome3.gjs.meta.maintainers;
- };
-
- machine = { pkgs, ... }: {
- imports = [ ./common/x11.nix ];
- environment.systemPackages = with pkgs; [ gnome-desktop-testing ];
- environment.variables.XDG_DATA_DIRS = [ "${pkgs.gnome3.gjs.installedTests}/share" ];
- };
-
- testScript = ''
- $machine->waitForX;
- $machine->succeed("gnome-desktop-testing-runner");
- '';
-})
diff --git a/nixos/tests/glib-networking.nix b/nixos/tests/glib-networking.nix
deleted file mode 100644
index c0bbb2b3554..00000000000
--- a/nixos/tests/glib-networking.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-# run installed tests
-import ./make-test.nix ({ pkgs, ... }:
-
-{
- name = "glib-networking";
- meta = {
- maintainers = pkgs.glib-networking.meta.maintainers;
- };
-
- machine = { pkgs, ... }: {
- environment.systemPackages = with pkgs; [ gnome-desktop-testing ];
- };
-
- testScript = ''
- $machine->succeed("gnome-desktop-testing-runner -d '${pkgs.glib-networking.installedTests}/share'");
- '';
-})
diff --git a/nixos/tests/glusterfs.nix b/nixos/tests/glusterfs.nix
index 9fd8bd2ed12..8f9cb8973d5 100644
--- a/nixos/tests/glusterfs.nix
+++ b/nixos/tests/glusterfs.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ ... } :
+import ./make-test-python.nix ({pkgs, lib, ...}:
let
client = { pkgs, ... } : {
@@ -39,27 +39,29 @@ in {
};
testScript = ''
- $server1->waitForUnit("glusterd.service");
- $server2->waitForUnit("glusterd.service");
+ server1.wait_for_unit("glusterd.service")
+ server2.wait_for_unit("glusterd.service")
+
+ server1.wait_until_succeeds("gluster peer status")
+ server2.wait_until_succeeds("gluster peer status")
# establish initial contact
- $server1->succeed("sleep 2");
- $server1->succeed("gluster peer probe server2");
- $server1->succeed("gluster peer probe server1");
+ server1.succeed("gluster peer probe server2")
+ server1.succeed("gluster peer probe server1")
- $server1->succeed("gluster peer status | grep Connected");
+ server1.succeed("gluster peer status | grep Connected")
# create volumes
- $server1->succeed("mkdir -p /data/vg0");
- $server2->succeed("mkdir -p /data/vg0");
- $server1->succeed("gluster volume create gv0 server1:/data/vg0 server2:/data/vg0");
- $server1->succeed("gluster volume start gv0");
+ server1.succeed("mkdir -p /data/vg0")
+ server2.succeed("mkdir -p /data/vg0")
+ server1.succeed("gluster volume create gv0 server1:/data/vg0 server2:/data/vg0")
+ server1.succeed("gluster volume start gv0")
# test clients
- $client1->waitForUnit("gluster.mount");
- $client2->waitForUnit("gluster.mount");
+ client1.wait_for_unit("gluster.mount")
+ client2.wait_for_unit("gluster.mount")
- $client1->succeed("echo test > /gluster/file1");
- $client2->succeed("grep test /gluster/file1");
+ client1.succeed("echo test > /gluster/file1")
+ client2.succeed("grep test /gluster/file1")
'';
})
diff --git a/nixos/tests/gnome-photos.nix b/nixos/tests/gnome-photos.nix
deleted file mode 100644
index 2ecda1d68ce..00000000000
--- a/nixos/tests/gnome-photos.nix
+++ /dev/null
@@ -1,42 +0,0 @@
-# run installed tests
-import ./make-test.nix ({ pkgs, lib, ... }:
-
-let
-
- # gsettings tool with access to gsettings-desktop-schemas
- desktop-gsettings = with pkgs; stdenv.mkDerivation {
- name = "desktop-gsettings";
- dontUnpack = true;
- nativeBuildInputs = [ glib wrapGAppsHook ];
- buildInputs = [ gsettings-desktop-schemas ];
- installPhase = ''
- runHook preInstall
- mkdir -p $out/bin
- ln -s ${glib.bin}/bin/gsettings $out/bin/desktop-gsettings
- runHook postInstall
- '';
- };
-
-in
-
-{
- name = "gnome-photos";
- meta = {
- maintainers = pkgs.gnome-photos.meta.maintainers;
- };
-
- machine = { pkgs, ... }: {
- imports = [ ./common/x11.nix ];
- programs.dconf.enable = true;
- services.gnome3.at-spi2-core.enable = true; # needed for dogtail
- environment.systemPackages = with pkgs; [ gnome-desktop-testing desktop-gsettings ];
- services.dbus.packages = with pkgs; [ gnome-photos ];
- };
-
- testScript = ''
- $machine->waitForX;
- # dogtail needs accessibility enabled
- $machine->succeed("desktop-gsettings set org.gnome.desktop.interface toolkit-accessibility true 2>&1");
- $machine->succeed("gnome-desktop-testing-runner -d '${pkgs.gnome-photos.installedTests}/share' 2>&1");
- '';
-})
diff --git a/nixos/tests/gnome3-xorg.nix b/nixos/tests/gnome3-xorg.nix
index f12361da037..eb4c376319b 100644
--- a/nixos/tests/gnome3-xorg.nix
+++ b/nixos/tests/gnome3-xorg.nix
@@ -29,7 +29,7 @@ import ./make-test.nix ({ pkgs, ...} : {
$machine->waitForUnit("default.target","alice");
# Check that logging in has given the user ownership of devices.
- $machine->succeed("getfacl /dev/snd/timer | grep -q alice");
+ $machine->succeed("getfacl -p /dev/snd/timer | grep -q alice");
$machine->succeed("su - alice -c 'DISPLAY=:0.0 gnome-terminal &'");
$machine->succeed("xauth merge ~alice/.Xauthority");
diff --git a/nixos/tests/gnome3.nix b/nixos/tests/gnome3.nix
index b6fe602a732..ab363efb6a1 100644
--- a/nixos/tests/gnome3.nix
+++ b/nixos/tests/gnome3.nix
@@ -44,7 +44,7 @@ import ./make-test.nix ({ pkgs, ...} : {
$machine->waitForUnit("default.target","alice");
# Check that logging in has given the user ownership of devices.
- $machine->succeed("getfacl /dev/snd/timer | grep -q alice");
+ $machine->succeed("getfacl -p /dev/snd/timer | grep -q alice");
# Wait for the wayland server
$machine->waitForFile("/run/user/1000/wayland-0");
diff --git a/nixos/tests/google-oslogin/default.nix b/nixos/tests/google-oslogin/default.nix
index 3b84bba3f98..1977e92e987 100644
--- a/nixos/tests/google-oslogin/default.nix
+++ b/nixos/tests/google-oslogin/default.nix
@@ -1,7 +1,14 @@
-import ../make-test.nix ({ pkgs, ... } :
+import ../make-test-python.nix ({ pkgs, ... } :
let
inherit (import ./../ssh-keys.nix pkgs)
snakeOilPrivateKey snakeOilPublicKey;
+
+ # don't check host keys or known hosts, use the snakeoil ssh key
+ ssh-config = builtins.toFile "ssh.conf" ''
+ UserKnownHostsFile=/dev/null
+ StrictHostKeyChecking=no
+ IdentityFile=~/.ssh/id_snakeoil
+ '';
in {
name = "google-oslogin";
meta = with pkgs.stdenv.lib.maintainers; {
@@ -15,38 +22,49 @@ in {
client = { ... }: {};
};
testScript = ''
- startAll;
+ start_all()
- $server->waitForUnit("mock-google-metadata.service");
- $server->waitForOpenPort(80);
+ server.wait_for_unit("mock-google-metadata.service")
+ server.wait_for_open_port(80)
# 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}"');
- $server->succeed('${pkgs.google-compute-engine-oslogin}/bin/google_authorized_keys mockadmin | grep -q "${snakeOilPublicKey}"');
+ server.succeed(
+ '${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}"'
+ )
- # install snakeoil ssh key on the client
- $client->succeed("mkdir -p ~/.ssh");
- $client->succeed("cat ${snakeOilPrivateKey} > ~/.ssh/id_snakeoil");
- $client->succeed("chmod 600 ~/.ssh/id_snakeoil");
+ # install snakeoil ssh key on the client, and provision .ssh/config file
+ client.succeed("mkdir -p ~/.ssh")
+ client.succeed(
+ "cat ${snakeOilPrivateKey} > ~/.ssh/id_snakeoil"
+ )
+ client.succeed("chmod 600 ~/.ssh/id_snakeoil")
+ client.succeed("cp ${ssh-config} ~/.ssh/config")
- $client->waitForUnit("network.target");
- $server->waitForUnit("sshd.service");
+ client.wait_for_unit("network.target")
+ server.wait_for_unit("sshd.service")
# we should not be able to connect as non-existing user
- $client->fail("ssh -o User=ghost -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server -i ~/.ssh/id_snakeoil 'true'");
+ client.fail("ssh ghost@server 'true'")
# we should be able to connect as mockuser
- $client->succeed("ssh -o User=mockuser -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server -i ~/.ssh/id_snakeoil 'true'");
+ client.succeed("ssh mockuser@server 'true'")
# but we shouldn't be able to sudo
- $client->fail("ssh -o User=mockuser -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server -i ~/.ssh/id_snakeoil '/run/wrappers/bin/sudo /run/current-system/sw/bin/id' | grep -q 'root'");
+ client.fail(
+ "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 -o User=mockadmin -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server -i ~/.ssh/id_snakeoil 'true'");
+ client.succeed("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("find /run/google-sudoers.d | grep -q '/run/google-sudoers.d/mockadmin'")
# and we should be able to sudo
- $client->succeed("ssh -o User=mockadmin -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server -i ~/.ssh/id_snakeoil '/run/wrappers/bin/sudo /run/current-system/sw/bin/id' | grep -q 'root'");
+ client.succeed(
+ "ssh mockadmin@server '/run/wrappers/bin/sudo /run/current-system/sw/bin/id' | grep -q 'root'"
+ )
'';
})
diff --git a/nixos/tests/gotify-server.nix b/nixos/tests/gotify-server.nix
new file mode 100644
index 00000000000..c6e00686aed
--- /dev/null
+++ b/nixos/tests/gotify-server.nix
@@ -0,0 +1,45 @@
+import ./make-test-python.nix ({ pkgs, lib, ...} : {
+ name = "gotify-server";
+ meta = with pkgs.stdenv.lib.maintainers; {
+ maintainers = [ ma27 ];
+ };
+
+ machine = { pkgs, ... }: {
+ environment.systemPackages = [ pkgs.jq ];
+
+ services.gotify = {
+ enable = true;
+ port = 3000;
+ };
+ };
+
+ testScript = ''
+ machine.start()
+
+ machine.wait_for_unit("gotify-server.service")
+ machine.wait_for_open_port(3000)
+
+ token = machine.succeed(
+ "curl --fail -sS -X POST localhost:3000/application -F name=nixos "
+ + '-H "Authorization: Basic $(echo -ne "admin:admin" | base64 --wrap 0)" '
+ + "| jq .token | xargs echo -n"
+ )
+
+ usertoken = machine.succeed(
+ "curl --fail -sS -X POST localhost:3000/client -F name=nixos "
+ + '-H "Authorization: Basic $(echo -ne "admin:admin" | base64 --wrap 0)" '
+ + "| jq .token | xargs echo -n"
+ )
+
+ machine.succeed(
+ f"curl --fail -sS -X POST 'localhost:3000/message?token={token}' -H 'Accept: application/json' "
+ + "-F title=Gotify -F message=Works"
+ )
+
+ title = machine.succeed(
+ f"curl --fail -sS 'localhost:3000/message?since=0&token={usertoken}' | jq '.messages|.[0]|.title' | xargs echo -n"
+ )
+
+ assert title == "Gotify"
+ '';
+})
diff --git a/nixos/tests/grafana.nix b/nixos/tests/grafana.nix
index 7a1b4c8ffbb..4b453ece7f1 100644
--- a/nixos/tests/grafana.nix
+++ b/nixos/tests/grafana.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ lib, pkgs, ... }:
+import ./make-test-python.nix ({ lib, pkgs, ... }:
let
inherit (lib) mkMerge nameValuePair maintainers;
@@ -64,28 +64,34 @@ in {
inherit nodes;
testScript = ''
- startAll();
+ start_all()
- subtest "Grafana sqlite", sub {
- $sqlite->waitForUnit("grafana.service");
- $sqlite->waitForOpenPort(3000);
- $sqlite->succeed("curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/org/users | grep -q testadmin\@localhost");
- };
+ with subtest("Successful API query as admin user with sqlite db"):
+ sqlite.wait_for_unit("grafana.service")
+ sqlite.wait_for_open_port(3000)
+ sqlite.succeed(
+ "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/org/users | grep -q testadmin\@localhost"
+ )
+ sqlite.shutdown()
- subtest "Grafana postgresql", sub {
- $postgresql->waitForUnit("grafana.service");
- $postgresql->waitForUnit("postgresql.service");
- $postgresql->waitForOpenPort(3000);
- $postgresql->waitForOpenPort(5432);
- $postgresql->succeed("curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/org/users | grep -q testadmin\@localhost");
- };
+ with subtest("Successful API query as admin user with postgresql db"):
+ postgresql.wait_for_unit("grafana.service")
+ postgresql.wait_for_unit("postgresql.service")
+ postgresql.wait_for_open_port(3000)
+ postgresql.wait_for_open_port(5432)
+ postgresql.succeed(
+ "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/org/users | grep -q testadmin\@localhost"
+ )
+ postgresql.shutdown()
- subtest "Grafana mysql", sub {
- $mysql->waitForUnit("grafana.service");
- $mysql->waitForUnit("mysql.service");
- $mysql->waitForOpenPort(3000);
- $mysql->waitForOpenPort(3306);
- $mysql->succeed("curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/org/users | grep -q testadmin\@localhost");
- };
+ with subtest("Successful API query as admin user with mysql db"):
+ mysql.wait_for_unit("grafana.service")
+ mysql.wait_for_unit("mysql.service")
+ mysql.wait_for_open_port(3000)
+ mysql.wait_for_open_port(3306)
+ mysql.succeed(
+ "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/org/users | grep -q testadmin\@localhost"
+ )
+ mysql.shutdown()
'';
})
diff --git a/nixos/tests/graphene.nix b/nixos/tests/graphene.nix
deleted file mode 100644
index 5591bcc30c0..00000000000
--- a/nixos/tests/graphene.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-# run installed tests
-import ./make-test.nix ({ pkgs, ... }:
-
-{
- name = "graphene";
-
- meta = {
- maintainers = pkgs.graphene.meta.maintainers;
- };
-
- machine = { pkgs, ... }: {
- environment.systemPackages = with pkgs; [ gnome-desktop-testing ];
- };
-
- testScript = ''
- $machine->succeed("gnome-desktop-testing-runner -d '${pkgs.graphene.installedTests}/share'");
- '';
-})
diff --git a/nixos/tests/graylog.nix b/nixos/tests/graylog.nix
index dc54afd1d26..2d22012fa7c 100644
--- a/nixos/tests/graylog.nix
+++ b/nixos/tests/graylog.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, lib, ... }: {
+import ./make-test-python.nix ({ pkgs, lib, ... }: {
name = "graylog";
meta.maintainers = with lib.maintainers; [ ma27 ];
@@ -64,48 +64,52 @@ import ./make-test.nix ({ pkgs, lib, ... }: {
facility = "Test";
});
in ''
- $machine->start;
- $machine->waitForUnit("graylog.service");
- $machine->waitForOpenPort(9000);
- $machine->succeed("curl -sSfL http://127.0.0.1:9000/");
+ machine.start()
+ machine.wait_for_unit("graylog.service")
+ machine.wait_for_open_port(9000)
+ machine.succeed("curl -sSfL http://127.0.0.1:9000/")
- my $session = $machine->succeed("curl -X POST "
- . "-sSfL http://127.0.0.1:9000/api/system/sessions "
- . "-d \$(cat ${payloads.login}) "
- . "-H 'Content-Type: application/json' "
- . "-H 'Accept: application/json' "
- . "-H 'x-requested-by: cli' "
- . "| jq .session_id | xargs echo"
- );
+ session = machine.succeed(
+ "curl -X POST "
+ + "-sSfL http://127.0.0.1:9000/api/system/sessions "
+ + "-d $(cat ${payloads.login}) "
+ + "-H 'Content-Type: application/json' "
+ + "-H 'Accept: application/json' "
+ + "-H 'x-requested-by: cli' "
+ + "| jq .session_id | xargs echo"
+ ).rstrip()
- chomp($session);
+ machine.succeed(
+ "curl -X POST "
+ + f"-sSfL http://127.0.0.1:9000/api/system/inputs -u {session}:session "
+ + '-d $(cat ${payloads.input} | sed -e "s,@node@,$(cat /var/lib/graylog/server/node-id),") '
+ + "-H 'Accept: application/json' "
+ + "-H 'Content-Type: application/json' "
+ + "-H 'x-requested-by: cli' "
+ )
- $machine->succeed("curl -X POST "
- . "-sSfL http://127.0.0.1:9000/api/system/inputs -u $session:session "
- . "-d \$(cat ${payloads.input} | sed -e \"s,\@node\@,\$(cat /var/lib/graylog/server/node-id),\") "
- . "-H 'Accept: application/json' "
- . "-H 'Content-Type: application/json' "
- . "-H 'x-requested-by: cli' "
- );
+ machine.wait_until_succeeds(
+ "test \"$(curl -sSfL 'http://127.0.0.1:9000/api/cluster/inputstates' "
+ + f"-u {session}:session "
+ + "-H 'Accept: application/json' "
+ + "-H 'Content-Type: application/json' "
+ + "-H 'x-requested-by: cli'"
+ + "| jq 'to_entries[]|.value|.[0]|.state' | xargs echo"
+ + ')" = "RUNNING"'
+ )
- $machine->waitUntilSucceeds("test \"\$(curl -sSfL 'http://127.0.0.1:9000/api/cluster/inputstates' "
- . "-u $session:session "
- . "-H 'Accept: application/json' "
- . "-H 'Content-Type: application/json' "
- . "-H 'x-requested-by: cli'"
- . "| jq 'to_entries[]|.value|.[0]|.state' | xargs echo"
- . ")\" = \"RUNNING\""
- );
+ machine.succeed(
+ "echo -n $(cat ${payloads.gelf_message}) | nc -w10 -u 127.0.0.1 12201"
+ )
- $machine->succeed("echo -n \$(cat ${payloads.gelf_message}) | nc -w10 -u 127.0.0.1 12201");
-
- $machine->succeed("test \"\$(curl -X GET "
- . "-sSfL 'http://127.0.0.1:9000/api/search/universal/relative?query=*' "
- . "-u $session:session "
- . "-H 'Accept: application/json' "
- . "-H 'Content-Type: application/json' "
- . "-H 'x-requested-by: cli'"
- . " | jq '.total_results' | xargs echo)\" = \"1\""
- );
+ machine.succeed(
+ 'test "$(curl -X GET '
+ + "-sSfL 'http://127.0.0.1:9000/api/search/universal/relative?query=*' "
+ + f"-u {session}:session "
+ + "-H 'Accept: application/json' "
+ + "-H 'Content-Type: application/json' "
+ + "-H 'x-requested-by: cli'"
+ + ' | jq \'.total_results\' | xargs echo)" = "1"'
+ )
'';
})
diff --git a/nixos/tests/handbrake.nix b/nixos/tests/handbrake.nix
index ae87e1f69a7..e5fb6b269b1 100644
--- a/nixos/tests/handbrake.nix
+++ b/nixos/tests/handbrake.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ... }:
+import ./make-test-python.nix ({ pkgs, ... }:
let
# Download Big Buck Bunny example, licensed under CC Attribution 3.0.
testMkv = pkgs.fetchurl {
@@ -19,7 +19,13 @@ in {
testScript = ''
# Test MP4 and MKV transcoding. Since this is a short clip, transcoding typically
# only takes a few seconds.
- $machine->succeed("HandBrakeCLI -i ${testMkv} -o test.mp4 -e x264 -q 20 -B 160");
- $machine->succeed("HandBrakeCLI -i ${testMkv} -o test.mkv -e x264 -q 20 -B 160");
+ start_all()
+
+ machine.succeed(
+ "HandBrakeCLI -i ${testMkv} -o test.mp4 -e x264 -q 20 -B 160"
+ )
+ machine.succeed(
+ "HandBrakeCLI -i ${testMkv} -o test.mkv -e x264 -q 20 -B 160"
+ )
'';
})
diff --git a/nixos/tests/haproxy.nix b/nixos/tests/haproxy.nix
index 22a83e9d1ea..72e77a68193 100644
--- a/nixos/tests/haproxy.nix
+++ b/nixos/tests/haproxy.nix
@@ -16,6 +16,8 @@ import ./make-test.nix ({ pkgs, ...}: {
frontend http
bind *:80
mode http
+ option http-use-htx
+ http-request use-service prometheus-exporter if { path /metrics }
use_backend http_server
'';
};
@@ -36,6 +38,6 @@ import ./make-test.nix ({ pkgs, ...}: {
$machine->waitForUnit('haproxy.service');
$machine->waitForUnit('httpd.service');
$machine->succeed('curl -k http://localhost:80/index.txt | grep "We are all good!"');
-
+ $machine->succeed('curl -k http://localhost:80/metrics | grep haproxy_process_pool_allocated_bytes');
'';
})
diff --git a/nixos/tests/hardened.nix b/nixos/tests/hardened.nix
index 90f9793b370..cbf76f9e558 100644
--- a/nixos/tests/hardened.nix
+++ b/nixos/tests/hardened.nix
@@ -10,6 +10,7 @@ import ./make-test.nix ({ pkgs, ...} : {
{ users.users.alice = { isNormalUser = true; extraGroups = [ "proc" ]; };
users.users.sybil = { isNormalUser = true; group = "wheel"; };
imports = [ ../modules/profiles/hardened.nix ];
+ environment.memoryAllocator.provider = "graphene-hardened";
nix.useSandbox = false;
virtualisation.emptyDiskImages = [ 4096 ];
boot.initrd.postDeviceCommands = ''
diff --git a/nixos/tests/hibernate.nix b/nixos/tests/hibernate.nix
index 274aa7becc8..8251c6e7ef8 100644
--- a/nixos/tests/hibernate.nix
+++ b/nixos/tests/hibernate.nix
@@ -1,6 +1,6 @@
# Test whether hibernation from partition works.
-import ./make-test.nix (pkgs: {
+import ./make-test-python.nix (pkgs: {
name = "hibernate";
nodes = {
@@ -28,16 +28,17 @@ import ./make-test.nix (pkgs: {
testScript =
''
- $machine->waitForUnit("multi-user.target");
- $machine->succeed("mkswap /dev/vdb");
- $machine->succeed("swapon -a");
- $machine->startJob("listener");
- $machine->waitForOpenPort(4444);
- $machine->succeed("systemctl hibernate &");
- $machine->waitForShutdown;
- $probe->waitForUnit("multi-user.target");
- $machine->start;
- $probe->waitUntilSucceeds("echo test | nc machine 4444 -N");
+ machine.start()
+ machine.wait_for_unit("multi-user.target")
+ machine.succeed("mkswap /dev/vdb")
+ machine.succeed("swapon -a")
+ machine.start_job("listener")
+ machine.wait_for_open_port(4444)
+ machine.succeed("systemctl hibernate &")
+ machine.wait_for_shutdown()
+ probe.wait_for_unit("multi-user.target")
+ machine.start()
+ probe.wait_until_succeeds("echo test | nc machine 4444 -N")
'';
})
diff --git a/nixos/tests/hound.nix b/nixos/tests/hound.nix
index cb8e25332c0..27c65abdf27 100644
--- a/nixos/tests/hound.nix
+++ b/nixos/tests/hound.nix
@@ -1,5 +1,5 @@
# Test whether `houndd` indexes nixpkgs
-import ./make-test.nix ({ pkgs, ... } : {
+import ./make-test-python.nix ({ pkgs, ... } : {
name = "hound";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ grahamc ];
@@ -46,13 +46,14 @@ import ./make-test.nix ({ pkgs, ... } : {
};
};
- testScript =
- '' startAll;
+ testScript = ''
+ start_all()
- $machine->waitForUnit("network.target");
- $machine->waitForUnit("hound.service");
- $machine->waitForOpenPort(6080);
- $machine->waitUntilSucceeds('curl http://127.0.0.1:6080/api/v1/search\?stats\=fosho\&repos\=\*\&rng=%3A20\&q\=hi\&files\=\&i=nope | grep "Filename" | grep "hello"');
-
- '';
+ machine.wait_for_unit("network.target")
+ machine.wait_for_unit("hound.service")
+ machine.wait_for_open_port(6080)
+ machine.wait_until_succeeds(
+ "curl http://127.0.0.1:6080/api/v1/search\?stats\=fosho\&repos\=\*\&rng=%3A20\&q\=hi\&files\=\&i=nope | grep 'Filename' | grep 'hello'"
+ )
+ '';
})
diff --git a/nixos/tests/hydra/create-trivial-project.sh b/nixos/tests/hydra/create-trivial-project.sh
index 39122c9b473..5aae2d5bf90 100755
--- a/nixos/tests/hydra/create-trivial-project.sh
+++ b/nixos/tests/hydra/create-trivial-project.sh
@@ -44,6 +44,8 @@ cat >data.json < $out; exit 0"];
};
}
@@ -53,11 +55,16 @@ let
notificationSender = "example@example.com";
package = pkgs.hydra.override { inherit nix; };
+
+ extraConfig = ''
+ email_notification = 1
+ '';
};
+ services.postfix.enable = true;
nix = {
buildMachines = [{
hostName = "localhost";
- systems = [ "x86_64-linux" ];
+ systems = [ system ];
}];
binaryCaches = [];
@@ -68,12 +75,12 @@ let
# let the system boot up
$machine->waitForUnit("multi-user.target");
# test whether the database is running
- $machine->succeed("systemctl status postgresql.service");
+ $machine->waitForUnit("postgresql.service");
# test whether the actual hydra daemons are running
- $machine->succeed("systemctl status hydra-queue-runner.service");
- $machine->succeed("systemctl status hydra-init.service");
- $machine->succeed("systemctl status hydra-evaluator.service");
- $machine->succeed("systemctl status hydra-send-stats.service");
+ $machine->waitForUnit("hydra-init.service");
+ $machine->requireActiveUnit("hydra-queue-runner.service");
+ $machine->requireActiveUnit("hydra-evaluator.service");
+ $machine->requireActiveUnit("hydra-notify.service");
$machine->succeed("hydra-create-user admin --role admin --password admin");
@@ -84,6 +91,8 @@ let
$machine->succeed("create-trivial-project.sh");
$machine->waitUntilSucceeds('curl -L -s http://localhost:3000/build/1 -H "Accept: application/json" | jq .buildstatus | xargs test 0 -eq');
+
+ $machine->waitUntilSucceeds('journalctl -eu hydra-notify.service -o cat | grep -q "sending mail notification to hydra@localhost"');
'';
})));
diff --git a/nixos/tests/icingaweb2.nix b/nixos/tests/icingaweb2.nix
index ea1b94c526b..2f65604539c 100644
--- a/nixos/tests/icingaweb2.nix
+++ b/nixos/tests/icingaweb2.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ... }: {
+import ./make-test-python.nix ({ pkgs, ... }: {
name = "icingaweb2";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ das_j ];
@@ -64,8 +64,8 @@ import ./make-test.nix ({ pkgs, ... }: {
};
testScript = ''
- startAll();
- $icingaweb2->waitForUnit("multi-user.target");
- $icingaweb2->succeed("curl -sSf http://icingaweb2/authentication/login");
+ start_all()
+ icingaweb2.wait_for_unit("multi-user.target")
+ icingaweb2.succeed("curl -sSf http://icingaweb2/authentication/login")
'';
})
diff --git a/nixos/tests/incron.nix b/nixos/tests/incron.nix
index e39bbb5f096..b22ee4c9a03 100644
--- a/nixos/tests/incron.nix
+++ b/nixos/tests/incron.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, lib, ... }:
+import ./make-test-python.nix ({ pkgs, lib, ... }:
{
name = "incron";
@@ -19,34 +19,34 @@ import ./make-test.nix ({ pkgs, lib, ... }:
};
testScript = ''
- startAll;
+ start_all()
- $machine->waitForUnit("multi-user.target");
- $machine->waitForUnit("incron.service");
+ machine.wait_for_unit("multi-user.target")
+ machine.wait_for_unit("incron.service")
- $machine->succeed("test -d /test");
+ machine.succeed("test -d /test")
# create some activity for incron to monitor
- $machine->succeed("touch /test/file");
- $machine->succeed("echo foo >> /test/file");
- $machine->succeed("mv /test/file /root");
- $machine->succeed("mv /root/file /test");
+ machine.succeed("touch /test/file")
+ machine.succeed("echo foo >> /test/file")
+ machine.succeed("mv /test/file /root")
+ machine.succeed("mv /root/file /test")
- $machine->sleep(1);
+ machine.sleep(1)
# touch /test/file
- $machine->succeed("grep '/test/file IN_CREATE' /root/incron.log");
+ machine.succeed("grep '/test/file IN_CREATE' /root/incron.log")
# echo foo >> /test/file
- $machine->succeed("grep '/test/file IN_MODIFY' /root/incron.log");
- $machine->succeed("grep '/test/file IN_CLOSE_WRITE' /root/incron.log");
+ machine.succeed("grep '/test/file IN_MODIFY' /root/incron.log")
+ machine.succeed("grep '/test/file IN_CLOSE_WRITE' /root/incron.log")
# mv /test/file /root
- $machine->succeed("grep '/test/file IN_MOVED_FROM' /root/incron.log");
+ machine.succeed("grep '/test/file IN_MOVED_FROM' /root/incron.log")
# mv /root/file /test
- $machine->succeed("grep '/test/file IN_MOVED_TO' /root/incron.log");
+ machine.succeed("grep '/test/file IN_MOVED_TO' /root/incron.log")
# ensure something unexpected is not present
- $machine->fail("grep 'IN_OPEN' /root/incron.log");
+ machine.fail("grep 'IN_OPEN' /root/incron.log")
'';
})
diff --git a/nixos/tests/influxdb.nix b/nixos/tests/influxdb.nix
index 61201202204..04ef8046101 100644
--- a/nixos/tests/influxdb.nix
+++ b/nixos/tests/influxdb.nix
@@ -1,6 +1,6 @@
# This test runs influxdb and checks if influxdb is up and running
-import ./make-test.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, ...} : {
name = "influxdb";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ offline ];
@@ -9,25 +9,32 @@ import ./make-test.nix ({ pkgs, ...} : {
nodes = {
one = { ... }: {
services.influxdb.enable = true;
+ environment.systemPackages = [ pkgs.httpie ];
};
};
testScript = ''
- startAll;
-
- $one->waitForUnit("influxdb.service");
+ import shlex
+
+ start_all()
+
+ one.wait_for_unit("influxdb.service")
# create database
- $one->succeed(q~
- curl -XPOST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE test"
- ~);
+ one.succeed(
+ "curl -XPOST http://localhost:8086/query --data-urlencode 'q=CREATE DATABASE test'"
+ )
# write some points and run simple query
- $one->succeed(q~
- curl -XPOST 'http://localhost:8086/write?db=test' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000'
- ~);
- $one->succeed(q~
- curl -GET 'http://localhost:8086/query' --data-urlencode "db=test" --data-urlencode "q=SELECT \"value\" FROM \"cpu_load_short\" WHERE \"region\"='us-west'" | grep "0\.64"
- ~);
+ out = one.succeed(
+ "curl -XPOST 'http://localhost:8086/write?db=test' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000'"
+ )
+
+ qv = "SELECT value FROM cpu_load_short WHERE region='us-west'"
+ cmd = f'curl -GET "http://localhost:8086/query?db=test" --data-urlencode {shlex.quote("q="+ qv)}'
+ out = one.succeed(cmd)
+
+ assert "2015-06-11T20:46:02Z" in out
+ assert "0.64" in out
'';
})
diff --git a/nixos/tests/initrd-network-ssh/default.nix b/nixos/tests/initrd-network-ssh/default.nix
index 796c50c610e..73d9f938e22 100644
--- a/nixos/tests/initrd-network-ssh/default.nix
+++ b/nixos/tests/initrd-network-ssh/default.nix
@@ -1,4 +1,4 @@
-import ../make-test.nix ({ lib, ... }:
+import ../make-test-python.nix ({ lib, ... }:
{
name = "initrd-network-ssh";
@@ -35,25 +35,31 @@ import ../make-test.nix ({ lib, ... }:
client =
{ config, ... }:
{
- environment.etc.knownHosts = {
- text = concatStrings [
- "server,"
- "${toString (head (splitString " " (
- toString (elemAt (splitString "\n" config.networking.extraHosts) 2)
- )))} "
- "${readFile ./dropbear.pub}"
- ];
+ environment.etc = {
+ knownHosts = {
+ text = concatStrings [
+ "server,"
+ "${toString (head (splitString " " (
+ toString (elemAt (splitString "\n" config.networking.extraHosts) 2)
+ )))} "
+ "${readFile ./dropbear.pub}"
+ ];
+ };
+ sshKey = {
+ source = ./openssh.priv; # dont use this anywhere else
+ mode = "0600";
+ };
};
};
};
testScript = ''
- startAll;
- $client->waitForUnit("network.target");
- $client->copyFileFromHost("${./openssh.priv}","/etc/sshKey");
- $client->succeed("chmod 0600 /etc/sshKey");
- $client->waitUntilSucceeds("ping -c 1 server");
- $client->succeed("ssh -i /etc/sshKey -o UserKnownHostsFile=/etc/knownHosts server 'touch /fnord'");
- $client->shutdown;
+ start_all()
+ client.wait_for_unit("network.target")
+ client.wait_until_succeeds("ping -c 1 server")
+ client.succeed(
+ "ssh -i /etc/sshKey -o UserKnownHostsFile=/etc/knownHosts server 'touch /fnord'"
+ )
+ client.shutdown()
'';
})
diff --git a/nixos/tests/installed-tests/colord.nix b/nixos/tests/installed-tests/colord.nix
new file mode 100644
index 00000000000..77e6b917fe6
--- /dev/null
+++ b/nixos/tests/installed-tests/colord.nix
@@ -0,0 +1,5 @@
+{ pkgs, makeInstalledTest, ... }:
+
+makeInstalledTest {
+ tested = pkgs.colord;
+}
diff --git a/nixos/tests/installed-tests/default.nix b/nixos/tests/installed-tests/default.nix
new file mode 100644
index 00000000000..f4780bdcfc9
--- /dev/null
+++ b/nixos/tests/installed-tests/default.nix
@@ -0,0 +1,80 @@
+# NixOS tests for gnome-desktop-testing-runner using software
+# See https://wiki.gnome.org/Initiatives/GnomeGoals/InstalledTests
+
+{ system ? builtins.currentSystem,
+ config ? {},
+ pkgs ? import ../../.. { inherit system config; }
+}:
+
+with import ../../lib/testing-python.nix { inherit system pkgs; };
+with pkgs.lib;
+
+let
+
+ callInstalledTest = pkgs.newScope { inherit makeInstalledTest; };
+
+ makeInstalledTest =
+ { # Package to test. Needs to have an installedTests output
+ tested
+
+ # Config to inject into machine
+ , testConfig ? {}
+
+ # Test script snippet to inject before gnome-desktop-testing-runner begins.
+ # This is useful for extra setup the environment may need before the runner begins.
+ , preTestScript ? ""
+
+ # Does test need X11?
+ , withX11 ? false
+
+ # Extra flags to pass to gnome-desktop-testing-runner.
+ , testRunnerFlags ? ""
+ }:
+ makeTest rec {
+ name = tested.name;
+
+ meta = {
+ maintainers = tested.meta.maintainers;
+ };
+
+ machine = { ... }: {
+ imports = [
+ testConfig
+ ] ++ optional withX11 ../common/x11.nix;
+
+ environment.systemPackages = with pkgs; [ gnome-desktop-testing ];
+
+ };
+
+ testScript =
+ optionalString withX11 ''
+ machine.wait_for_x()
+ '' +
+ optionalString (preTestScript != "") ''
+ ${preTestScript}
+ '' +
+ ''
+ machine.succeed(
+ "gnome-desktop-testing-runner ${testRunnerFlags} -d '${tested.installedTests}/share'"
+ )
+ '';
+ };
+
+in
+
+{
+ colord = callInstalledTest ./colord.nix {};
+ flatpak = callInstalledTest ./flatpak.nix {};
+ flatpak-builder = callInstalledTest ./flatpak-builder.nix {};
+ fwupd = callInstalledTest ./fwupd.nix {};
+ gcab = callInstalledTest ./gcab.nix {};
+ gdk-pixbuf = callInstalledTest ./gdk-pixbuf.nix {};
+ gjs = callInstalledTest ./gjs.nix {};
+ glib-networking = callInstalledTest ./glib-networking.nix {};
+ gnome-photos = callInstalledTest ./gnome-photos.nix {};
+ graphene = callInstalledTest ./graphene.nix {};
+ libgdata = callInstalledTest ./libgdata.nix {};
+ libxmlb = callInstalledTest ./libxmlb.nix {};
+ ostree = callInstalledTest ./ostree.nix {};
+ xdg-desktop-portal = callInstalledTest ./xdg-desktop-portal.nix {};
+}
diff --git a/nixos/tests/installed-tests/flatpak-builder.nix b/nixos/tests/installed-tests/flatpak-builder.nix
new file mode 100644
index 00000000000..31b9f2b258f
--- /dev/null
+++ b/nixos/tests/installed-tests/flatpak-builder.nix
@@ -0,0 +1,14 @@
+{ pkgs, makeInstalledTest, ... }:
+
+makeInstalledTest {
+ tested = pkgs.flatpak-builder;
+
+ testConfig = {
+ services.flatpak.enable = true;
+ xdg.portal.enable = true;
+ environment.systemPackages = with pkgs; [ flatpak-builder ] ++ flatpak-builder.installedTestsDependencies;
+ virtualisation.diskSize = 2048;
+ };
+
+ testRunnerFlags = "--timeout 3600";
+}
diff --git a/nixos/tests/installed-tests/flatpak.nix b/nixos/tests/installed-tests/flatpak.nix
new file mode 100644
index 00000000000..091c9932662
--- /dev/null
+++ b/nixos/tests/installed-tests/flatpak.nix
@@ -0,0 +1,19 @@
+{ pkgs, makeInstalledTest, ... }:
+
+makeInstalledTest {
+ tested = pkgs.flatpak;
+ withX11 = true;
+
+ testConfig = {
+ services.xserver.desktopManager.gnome3.enable = true; # TODO: figure out minimal environment where the tests work
+ # common/x11.nix enables the auto display manager (lightdm)
+ services.xserver.displayManager.gdm.enable = false;
+ services.gnome3.core-utilities.enable = false;
+ services.flatpak.enable = true;
+ environment.systemPackages = with pkgs; [ gnupg ostree python2 ];
+ virtualisation.memorySize = 2047;
+ virtualisation.diskSize = 1024;
+ };
+
+ testRunnerFlags = "--timeout 3600";
+}
diff --git a/nixos/tests/installed-tests/fwupd.nix b/nixos/tests/installed-tests/fwupd.nix
new file mode 100644
index 00000000000..b9f761e9958
--- /dev/null
+++ b/nixos/tests/installed-tests/fwupd.nix
@@ -0,0 +1,12 @@
+{ pkgs, makeInstalledTest, ... }:
+
+makeInstalledTest {
+ tested = pkgs.fwupd;
+
+ testConfig = {
+ services.fwupd.enable = true;
+ services.fwupd.blacklistPlugins = []; # don't blacklist test plugin
+ services.fwupd.enableTestRemote = true;
+ virtualisation.memorySize = 768;
+ };
+}
diff --git a/nixos/tests/installed-tests/gcab.nix b/nixos/tests/installed-tests/gcab.nix
new file mode 100644
index 00000000000..b24cc2e0126
--- /dev/null
+++ b/nixos/tests/installed-tests/gcab.nix
@@ -0,0 +1,5 @@
+{ pkgs, makeInstalledTest, ... }:
+
+makeInstalledTest {
+ tested = pkgs.gcab;
+}
diff --git a/nixos/tests/installed-tests/gdk-pixbuf.nix b/nixos/tests/installed-tests/gdk-pixbuf.nix
new file mode 100644
index 00000000000..3d0011a427a
--- /dev/null
+++ b/nixos/tests/installed-tests/gdk-pixbuf.nix
@@ -0,0 +1,13 @@
+{ pkgs, makeInstalledTest, ... }:
+
+makeInstalledTest {
+ tested = pkgs.gdk-pixbuf;
+
+ testConfig = {
+ # Tests allocate a lot of memory trying to exploit a CVE
+ # but qemu-system-i386 has a 2047M memory limit
+ virtualisation.memorySize = if pkgs.stdenv.isi686 then 2047 else 4096;
+ };
+
+ testRunnerFlags = "--timeout 1800";
+}
diff --git a/nixos/tests/installed-tests/gjs.nix b/nixos/tests/installed-tests/gjs.nix
new file mode 100644
index 00000000000..1656e9de171
--- /dev/null
+++ b/nixos/tests/installed-tests/gjs.nix
@@ -0,0 +1,6 @@
+{ pkgs, makeInstalledTest, ... }:
+
+makeInstalledTest {
+ tested = pkgs.gjs;
+ withX11 = true;
+}
diff --git a/nixos/tests/installed-tests/glib-networking.nix b/nixos/tests/installed-tests/glib-networking.nix
new file mode 100644
index 00000000000..b58d4df21fc
--- /dev/null
+++ b/nixos/tests/installed-tests/glib-networking.nix
@@ -0,0 +1,5 @@
+{ pkgs, makeInstalledTest, ... }:
+
+makeInstalledTest {
+ tested = pkgs.glib-networking;
+}
diff --git a/nixos/tests/installed-tests/gnome-photos.nix b/nixos/tests/installed-tests/gnome-photos.nix
new file mode 100644
index 00000000000..05e7ccb65ad
--- /dev/null
+++ b/nixos/tests/installed-tests/gnome-photos.nix
@@ -0,0 +1,35 @@
+{ pkgs, makeInstalledTest, ... }:
+
+makeInstalledTest {
+ tested = pkgs.gnome-photos;
+
+ withX11 = true;
+
+ testConfig = {
+ programs.dconf.enable = true;
+ services.gnome3.at-spi2-core.enable = true; # needed for dogtail
+ environment.systemPackages = with pkgs; [
+ # gsettings tool with access to gsettings-desktop-schemas
+ (stdenv.mkDerivation {
+ name = "desktop-gsettings";
+ dontUnpack = true;
+ nativeBuildInputs = [ glib wrapGAppsHook ];
+ buildInputs = [ gsettings-desktop-schemas ];
+ installPhase = ''
+ runHook preInstall
+ mkdir -p $out/bin
+ ln -s ${glib.bin}/bin/gsettings $out/bin/desktop-gsettings
+ runHook postInstall
+ '';
+ })
+ ];
+ services.dbus.packages = with pkgs; [ gnome-photos ];
+ };
+
+ preTestScript = ''
+ # dogtail needs accessibility enabled
+ machine.succeed(
+ "desktop-gsettings set org.gnome.desktop.interface toolkit-accessibility true 2>&1"
+ )
+ '';
+}
diff --git a/nixos/tests/installed-tests/graphene.nix b/nixos/tests/installed-tests/graphene.nix
new file mode 100644
index 00000000000..e43339abd88
--- /dev/null
+++ b/nixos/tests/installed-tests/graphene.nix
@@ -0,0 +1,5 @@
+{ pkgs, makeInstalledTest, ... }:
+
+makeInstalledTest {
+ tested = pkgs.graphene;
+}
diff --git a/nixos/tests/installed-tests/libgdata.nix b/nixos/tests/installed-tests/libgdata.nix
new file mode 100644
index 00000000000..f11a7bc1bc5
--- /dev/null
+++ b/nixos/tests/installed-tests/libgdata.nix
@@ -0,0 +1,11 @@
+{ pkgs, makeInstalledTest, ... }:
+
+makeInstalledTest {
+ tested = pkgs.libgdata;
+
+ testConfig = {
+ # # GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation dummy (GDummyTlsBackend) for ‘gio-tls-backend’
+ # Bail out! libgdata:ERROR:../gdata/tests/common.c:134:gdata_test_init: assertion failed (child_error == NULL): TLS support is not available (g-tls-error-quark, 0)
+ services.gnome3.glib-networking.enable = true;
+ };
+}
diff --git a/nixos/tests/installed-tests/libxmlb.nix b/nixos/tests/installed-tests/libxmlb.nix
new file mode 100644
index 00000000000..af2bbe9c35e
--- /dev/null
+++ b/nixos/tests/installed-tests/libxmlb.nix
@@ -0,0 +1,5 @@
+{ pkgs, makeInstalledTest, ... }:
+
+makeInstalledTest {
+ tested = pkgs.libxmlb;
+}
diff --git a/nixos/tests/installed-tests/ostree.nix b/nixos/tests/installed-tests/ostree.nix
new file mode 100644
index 00000000000..eef7cace54c
--- /dev/null
+++ b/nixos/tests/installed-tests/ostree.nix
@@ -0,0 +1,23 @@
+{ pkgs, lib, makeInstalledTest, ... }:
+
+makeInstalledTest {
+ tested = pkgs.ostree;
+
+ # TODO: Wrap/patch the tests directly in the package
+ testConfig = {
+ environment.systemPackages = with pkgs; [
+ (python3.withPackages (p: with p; [ pyyaml ]))
+ gnupg
+ ostree
+ ];
+
+ # for GJS tests
+ environment.variables.GI_TYPELIB_PATH = lib.makeSearchPath "lib/girepository-1.0" (with pkgs; [
+ gtk3
+ pango.out
+ ostree
+ gdk-pixbuf
+ atk
+ ]);
+ };
+}
diff --git a/nixos/tests/installed-tests/xdg-desktop-portal.nix b/nixos/tests/installed-tests/xdg-desktop-portal.nix
new file mode 100644
index 00000000000..b16008ff4ad
--- /dev/null
+++ b/nixos/tests/installed-tests/xdg-desktop-portal.nix
@@ -0,0 +1,5 @@
+{ pkgs, makeInstalledTest, ... }:
+
+makeInstalledTest {
+ tested = pkgs.xdg-desktop-portal;
+}
diff --git a/nixos/tests/installer.nix b/nixos/tests/installer.nix
index a136678c6ef..eb1f4f192dd 100644
--- a/nixos/tests/installer.nix
+++ b/nixos/tests/installer.nix
@@ -54,8 +54,6 @@ let
hardware.enableAllFirmware = lib.mkForce false;
- services.udisks2.enable = lib.mkDefault false;
-
${replaceChars ["\n"] ["\n "] extraConfig}
}
'';
@@ -295,8 +293,6 @@ let
++ optional (bootLoader == "grub" && grubVersion == 1) pkgs.grub
++ optionals (bootLoader == "grub" && grubVersion == 2) [ pkgs.grub2 pkgs.grub2_efi ];
- services.udisks2.enable = mkDefault false;
-
nix.binaryCaches = mkForce [ ];
nix.extraOptions =
''
diff --git a/nixos/tests/jackett.nix b/nixos/tests/jackett.nix
index c749c32ad04..0a706c99b99 100644
--- a/nixos/tests/jackett.nix
+++ b/nixos/tests/jackett.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ lib, ... }:
+import ./make-test-python.nix ({ lib, ... }:
with lib;
@@ -11,8 +11,9 @@ with lib;
{ services.jackett.enable = true; };
testScript = ''
- $machine->waitForUnit('jackett.service');
- $machine->waitForOpenPort('9117');
- $machine->succeed("curl --fail http://localhost:9117/");
+ machine.start()
+ machine.wait_for_unit("jackett.service")
+ machine.wait_for_open_port(9117)
+ machine.succeed("curl --fail http://localhost:9117/")
'';
})
diff --git a/nixos/tests/jellyfin.nix b/nixos/tests/jellyfin.nix
index b60c6eb94f4..65360624d48 100644
--- a/nixos/tests/jellyfin.nix
+++ b/nixos/tests/jellyfin.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ lib, ...}:
+import ./make-test-python.nix ({ lib, ...}:
{
name = "jellyfin";
@@ -9,8 +9,8 @@ import ./make-test.nix ({ lib, ...}:
{ services.jellyfin.enable = true; };
testScript = ''
- $machine->waitForUnit('jellyfin.service');
- $machine->waitForOpenPort('8096');
- $machine->succeed("curl --fail http://localhost:8096/");
+ machine.wait_for_unit("jellyfin.service")
+ machine.wait_for_open_port(8096)
+ machine.succeed("curl --fail http://localhost:8096/")
'';
})
diff --git a/nixos/tests/jenkins.nix b/nixos/tests/jenkins.nix
index a6eec411ff2..cd64ff51287 100644
--- a/nixos/tests/jenkins.nix
+++ b/nixos/tests/jenkins.nix
@@ -3,7 +3,7 @@
# 2. jenkins user can be extended on both master and slave
# 3. jenkins service not started on slave node
-import ./make-test.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, ...} : {
name = "jenkins";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ bjornfor coconnor domenkozar eelco ];
@@ -33,18 +33,17 @@ import ./make-test.nix ({ pkgs, ...} : {
};
testScript = ''
- startAll;
+ start_all()
- $master->waitForUnit("jenkins");
+ master.wait_for_unit("jenkins")
- $master->mustSucceed("curl http://localhost:8080 | grep 'Authentication required'");
+ assert "Authentication required" in master.succeed("curl http://localhost:8080")
- print $master->execute("sudo -u jenkins groups");
- $master->mustSucceed("sudo -u jenkins groups | grep jenkins | grep users");
+ for host in master, slave:
+ groups = host.succeed("sudo -u jenkins groups")
+ assert "jenkins" in groups
+ assert "users" in groups
- print $slave->execute("sudo -u jenkins groups");
- $slave->mustSucceed("sudo -u jenkins groups | grep jenkins | grep users");
-
- $slave->mustFail("systemctl is-enabled jenkins.service");
+ slave.fail("systemctl is-enabled jenkins.service")
'';
})
diff --git a/nixos/tests/jormungandr.nix b/nixos/tests/jormungandr.nix
deleted file mode 100644
index 2abafc53ce5..00000000000
--- a/nixos/tests/jormungandr.nix
+++ /dev/null
@@ -1,77 +0,0 @@
-import ./make-test.nix ({ pkgs, ... }: {
- name = "jormungandr";
- meta = with pkgs.stdenv.lib.maintainers; {
- maintainers = [ mmahut ];
- };
-
- nodes = {
- # Testing the Byzantine Fault Tolerant protocol
- bft = { ... }: {
- environment.systemPackages = [ pkgs.jormungandr ];
- services.jormungandr.enable = true;
- services.jormungandr.genesisBlockFile = "/var/lib/jormungandr/block-0.bin";
- services.jormungandr.secretFile = "/etc/secrets/jormungandr.yaml";
- };
-
- # Testing the Ouroboros Genesis Praos protocol
- genesis = { ... }: {
- environment.systemPackages = [ pkgs.jormungandr ];
- services.jormungandr.enable = true;
- services.jormungandr.genesisBlockFile = "/var/lib/jormungandr/block-0.bin";
- services.jormungandr.secretFile = "/etc/secrets/jormungandr.yaml";
- };
- };
-
- testScript = ''
- startAll;
-
- ## Testing BFT
- # Let's wait for the StateDirectory
- $bft->waitForFile("/var/lib/jormungandr/");
-
- # First, we generate the genesis file for our new blockchain
- $bft->succeed("jcli genesis init > /root/genesis.yaml");
-
- # We need to generate our secret key
- $bft->succeed("jcli key generate --type=Ed25519 > /root/key.prv");
-
- # We include the secret key into our services.jormungandr.secretFile
- $bft->succeed("mkdir -p /etc/secrets");
- $bft->succeed("echo -e \"bft:\\n signing_key:\" \$(cat /root/key.prv) > /etc/secrets/jormungandr.yaml");
-
- # After that, we generate our public key from it
- $bft->succeed("cat /root/key.prv | jcli key to-public > /root/key.pub");
-
- # We add our public key as a consensus leader in the genesis configration file
- $bft->succeed("sed -ie \"s/ed25519_pk1vvwp2s0n5jl5f4xcjurp2e92sj2awehkrydrlas4vgqr7xzt33jsadha32/\$(cat /root/key.pub)/\" /root/genesis.yaml");
-
- # Now we can generate the genesis block from it
- $bft->succeed("jcli genesis encode --input /root/genesis.yaml --output /var/lib/jormungandr/block-0.bin");
-
- # We should have everything to start the service now
- $bft->succeed("systemctl restart jormungandr");
- $bft->waitForUnit("jormungandr.service");
-
- # Now we can test if we are able to reach the REST API
- $bft->waitUntilSucceeds("curl -L http://localhost:8607/api/v0/node/stats | grep uptime");
-
- ## Testing Genesis
- # Let's wait for the StateDirectory
- $genesis->waitForFile("/var/lib/jormungandr/");
-
- # Bootstraping the configuration
- $genesis->succeed("jormungandr-bootstrap -g -p 8607 -s 1");
-
- # Moving generated files in place
- $genesis->succeed("mkdir -p /etc/secrets");
- $genesis->succeed("mv pool-secret1.yaml /etc/secrets/jormungandr.yaml");
- $genesis->succeed("mv block-0.bin /var/lib/jormungandr/");
-
- # We should have everything to start the service now
- $genesis->succeed("systemctl restart jormungandr");
- $genesis->waitForUnit("jormungandr.service");
-
- # Now we can create and delegate an account
- $genesis->succeed("./create-account-and-delegate.sh | tee -a /tmp/delegate.log");
- '';
-})
diff --git a/nixos/tests/kafka.nix b/nixos/tests/kafka.nix
index f526d18befe..48ca98da8fa 100644
--- a/nixos/tests/kafka.nix
+++ b/nixos/tests/kafka.nix
@@ -73,4 +73,5 @@ in with pkgs; {
kafka_2_0 = makeKafkaTest "kafka_2_0" apacheKafka_2_0;
kafka_2_1 = makeKafkaTest "kafka_2_1" apacheKafka_2_1;
kafka_2_2 = makeKafkaTest "kafka_2_2" apacheKafka_2_2;
+ kafka_2_3 = makeKafkaTest "kafka_2_3" apacheKafka_2_3;
}
diff --git a/nixos/tests/kerberos/heimdal.nix b/nixos/tests/kerberos/heimdal.nix
index a0551b131e9..8abae667d04 100644
--- a/nixos/tests/kerberos/heimdal.nix
+++ b/nixos/tests/kerberos/heimdal.nix
@@ -1,4 +1,4 @@
-import ../make-test.nix ({pkgs, ...}: {
+import ../make-test-python.nix ({pkgs, ...}: {
name = "kerberos_server-heimdal";
machine = { config, libs, pkgs, ...}:
{ services.kerberos_server =
@@ -23,31 +23,20 @@ import ../make-test.nix ({pkgs, ...}: {
};
testScript = ''
- $machine->start;
+ machine.succeed(
+ "kadmin -l init --realm-max-ticket-life='8 day' --realm-max-renewable-life='10 day' FOO.BAR",
+ "systemctl restart kadmind.service kdc.service",
+ )
- $machine->succeed(
- "kadmin -l init --realm-max-ticket-life='8 day' \\
- --realm-max-renewable-life='10 day' FOO.BAR"
- );
+ for unit in ["kadmind", "kdc", "kpasswdd"]:
+ machine.wait_for_unit(f"{unit}.service")
- $machine->succeed("systemctl restart kadmind.service kdc.service");
- $machine->waitForUnit("kadmind.service");
- $machine->waitForUnit("kdc.service");
- $machine->waitForUnit("kpasswdd.service");
-
- $machine->succeed(
- "kadmin -l add --password=admin_pw --use-defaults admin"
- );
- $machine->succeed(
- "kadmin -l ext_keytab --keytab=admin.keytab admin"
- );
- $machine->succeed(
- "kadmin -p admin -K admin.keytab add --password=alice_pw --use-defaults \\
- alice"
- );
- $machine->succeed(
- "kadmin -l ext_keytab --keytab=alice.keytab alice"
- );
- $machine->succeed("kinit -kt alice.keytab alice");
+ machine.succeed(
+ "kadmin -l add --password=admin_pw --use-defaults admin",
+ "kadmin -l ext_keytab --keytab=admin.keytab admin",
+ "kadmin -p admin -K admin.keytab add --password=alice_pw --use-defaults alice",
+ "kadmin -l ext_keytab --keytab=alice.keytab alice",
+ "kinit -kt alice.keytab alice",
+ )
'';
})
diff --git a/nixos/tests/kerberos/mit.nix b/nixos/tests/kerberos/mit.nix
index 6da3a384aa9..93b4020d499 100644
--- a/nixos/tests/kerberos/mit.nix
+++ b/nixos/tests/kerberos/mit.nix
@@ -1,4 +1,4 @@
-import ../make-test.nix ({pkgs, ...}: {
+import ../make-test-python.nix ({pkgs, ...}: {
name = "kerberos_server-mit";
machine = { config, libs, pkgs, ...}:
{ services.kerberos_server =
@@ -24,22 +24,18 @@ import ../make-test.nix ({pkgs, ...}: {
};
testScript = ''
- $machine->start;
+ machine.succeed(
+ "kdb5_util create -s -r FOO.BAR -P master_key",
+ "systemctl restart kadmind.service kdc.service",
+ )
- $machine->succeed(
- "kdb5_util create -s -r FOO.BAR -P master_key"
- );
+ for unit in ["kadmind", "kdc"]:
+ machine.wait_for_unit(f"{unit}.service")
- $machine->succeed("systemctl restart kadmind.service kdc.service");
- $machine->waitForUnit("kadmind.service");
- $machine->waitForUnit("kdc.service");
-
- $machine->succeed(
- "kadmin.local add_principal -pw admin_pw admin"
- );
- $machine->succeed(
- "kadmin -p admin -w admin_pw addprinc -pw alice_pw alice"
- );
- $machine->succeed("echo alice_pw | sudo -u alice kinit");
+ machine.succeed(
+ "kadmin.local add_principal -pw admin_pw admin",
+ "kadmin -p admin -w admin_pw addprinc -pw alice_pw alice",
+ "echo alice_pw | sudo -u alice kinit",
+ )
'';
})
diff --git a/nixos/tests/knot.nix b/nixos/tests/knot.nix
index e46159836cc..0588cf86ac0 100644
--- a/nixos/tests/knot.nix
+++ b/nixos/tests/knot.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, lib, ...} :
+import ./make-test-python.nix ({ pkgs, lib, ...} :
let
common = {
networking.firewall.enable = false;
@@ -30,6 +30,10 @@ let
};
in {
name = "knot";
+ meta = with pkgs.stdenv.lib.maintainers; {
+ maintainers = [ hexa ];
+ };
+
nodes = {
master = { lib, ... }: {
@@ -161,37 +165,35 @@ in {
slave4 = (lib.head nodes.slave.config.networking.interfaces.eth1.ipv4.addresses).address;
slave6 = (lib.head nodes.slave.config.networking.interfaces.eth1.ipv6.addresses).address;
in ''
- startAll;
+ import re
- $client->waitForUnit("network.target");
- $master->waitForUnit("knot.service");
- $slave->waitForUnit("knot.service");
+ start_all()
- sub assertResponse {
- my ($knot, $query_type, $query, $expected) = @_;
- my $out = $client->succeed("khost -t $query_type $query $knot");
- $client->log("$knot replies with: $out");
- chomp $out;
- die "DNS query for $query ($query_type) against $knot gave '$out' instead of '$expected'"
- if ($out !~ $expected);
- }
+ client.wait_for_unit("network.target")
+ master.wait_for_unit("knot.service")
+ slave.wait_for_unit("knot.service")
- foreach ("${master4}", "${master6}", "${slave4}", "${slave6}") {
- subtest $_, sub {
- assertResponse($_, "SOA", "example.com", qr/start of authority.*?noc\.example\.com/);
- assertResponse($_, "A", "example.com", qr/has no [^ ]+ record/);
- assertResponse($_, "AAAA", "example.com", qr/has no [^ ]+ record/);
- assertResponse($_, "A", "www.example.com", qr/address 192.0.2.1$/);
- assertResponse($_, "AAAA", "www.example.com", qr/address 2001:db8::1$/);
+ def test(host, query_type, query, pattern):
+ out = client.succeed(f"khost -t {query_type} {query} {host}").strip()
+ client.log(f"{host} replied with: {out}")
+ assert re.search(pattern, out), f'Did not match "{pattern}"'
- assertResponse($_, "NS", "sub.example.com", qr/nameserver is ns\d\.example\.com.$/);
- assertResponse($_, "A", "sub.example.com", qr/address 192.0.2.2$/);
- assertResponse($_, "AAAA", "sub.example.com", qr/address 2001:db8::2$/);
- assertResponse($_, "RRSIG", "www.example.com", qr/RR set signature is/);
- assertResponse($_, "DNSKEY", "example.com", qr/DNSSEC key is/);
- };
- }
+ for host in ("${master4}", "${master6}", "${slave4}", "${slave6}"):
+ with subtest(f"Interrogate {host}"):
+ test(host, "SOA", "example.com", r"start of authority.*noc\.example\.com\.")
+ test(host, "A", "example.com", r"has no [^ ]+ record")
+ test(host, "AAAA", "example.com", r"has no [^ ]+ record")
+
+ test(host, "A", "www.example.com", r"address 192.0.2.1$")
+ test(host, "AAAA", "www.example.com", r"address 2001:db8::1$")
+
+ test(host, "NS", "sub.example.com", r"nameserver is ns\d\.example\.com.$")
+ test(host, "A", "sub.example.com", r"address 192.0.2.2$")
+ test(host, "AAAA", "sub.example.com", r"address 2001:db8::2$")
+
+ test(host, "RRSIG", "www.example.com", r"RR set signature is")
+ test(host, "DNSKEY", "example.com", r"DNSSEC key is")
'';
})
diff --git a/nixos/tests/kubernetes/base.nix b/nixos/tests/kubernetes/base.nix
index f21634c4ffb..adb73650689 100644
--- a/nixos/tests/kubernetes/base.nix
+++ b/nixos/tests/kubernetes/base.nix
@@ -53,6 +53,7 @@ let
services.flannel.iface = "eth1";
services.kubernetes = {
addons.dashboard.enable = true;
+ proxy.hostname = "${masterName}.${domain}";
easyCerts = true;
inherit (machine) roles;
diff --git a/nixos/tests/libgdata.nix b/nixos/tests/libgdata.nix
deleted file mode 100644
index 10a3ca97dd2..00000000000
--- a/nixos/tests/libgdata.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-# run installed tests
-import ./make-test.nix ({ pkgs, ... }:
-
-{
- name = "libgdata";
-
- meta = {
- maintainers = pkgs.libgdata.meta.maintainers;
- };
-
- machine = { pkgs, ... }: {
- environment.systemPackages = with pkgs; [ gnome-desktop-testing ];
- # # GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation dummy (GDummyTlsBackend) for ‘gio-tls-backend’
- # Bail out! libgdata:ERROR:../gdata/tests/common.c:134:gdata_test_init: assertion failed (child_error == NULL): TLS support is not available (g-tls-error-quark, 0)
- services.gnome3.glib-networking.enable = true;
- };
-
- testScript = ''
- $machine->succeed("gnome-desktop-testing-runner -d '${pkgs.libgdata.installedTests}/share'");
- '';
-})
diff --git a/nixos/tests/libxmlb.nix b/nixos/tests/libxmlb.nix
deleted file mode 100644
index 3bee568ac5a..00000000000
--- a/nixos/tests/libxmlb.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-# run installed tests
-import ./make-test.nix ({ pkgs, ... }:
-
-{
- name = "libxmlb";
- meta = {
- maintainers = pkgs.libxmlb.meta.maintainers;
- };
-
- machine = { pkgs, ... }: {
- environment.systemPackages = with pkgs; [ gnome-desktop-testing ];
- };
-
- testScript = ''
- $machine->succeed("gnome-desktop-testing-runner -d '${pkgs.libxmlb.installedTests}/share'");
- '';
-})
diff --git a/nixos/tests/lightdm.nix b/nixos/tests/lightdm.nix
index c805f1ed9f3..ef30f7741e2 100644
--- a/nixos/tests/lightdm.nix
+++ b/nixos/tests/lightdm.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, ...} : {
name = "lightdm";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ aszlig worldofpeace ];
@@ -18,12 +18,12 @@ import ./make-test.nix ({ pkgs, ...} : {
testScript = { nodes, ... }: let
user = nodes.machine.config.users.users.alice;
in ''
- startAll;
- $machine->waitForText(qr/${user.description}/);
- $machine->screenshot("lightdm");
- $machine->sendChars("${user.password}\n");
- $machine->waitForFile("/home/alice/.Xauthority");
- $machine->succeed("xauth merge ~alice/.Xauthority");
- $machine->waitForWindow("^IceWM ");
+ start_all()
+ machine.wait_for_text("${user.description}")
+ machine.screenshot("lightdm")
+ machine.send_chars("${user.password}\n")
+ machine.wait_for_file("${user.home}/.Xauthority")
+ machine.succeed("xauth merge ${user.home}/.Xauthority")
+ machine.wait_for_window("^IceWM ")
'';
})
diff --git a/nixos/tests/login.nix b/nixos/tests/login.nix
index 2a7c063d303..d36c1a91be4 100644
--- a/nixos/tests/login.nix
+++ b/nixos/tests/login.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, latestKernel ? false, ... }:
+import ./make-test-python.nix ({ pkgs, latestKernel ? false, ... }:
{
name = "login";
@@ -12,62 +12,48 @@ import ./make-test.nix ({ pkgs, latestKernel ? false, ... }:
sound.enable = true; # needed for the factl test, /dev/snd/* exists without them but udev doesn't care then
};
- testScript =
- ''
- $machine->waitForUnit('multi-user.target');
- $machine->waitUntilSucceeds("pgrep -f 'agetty.*tty1'");
- $machine->screenshot("postboot");
+ testScript = ''
+ machine.wait_for_unit("multi-user.target")
+ machine.wait_until_succeeds("pgrep -f 'agetty.*tty1'")
+ machine.screenshot("postboot")
- subtest "create user", sub {
- $machine->succeed("useradd -m alice");
- $machine->succeed("(echo foobar; echo foobar) | passwd alice");
- };
+ with subtest("create user"):
+ machine.succeed("useradd -m alice")
+ machine.succeed("(echo foobar; echo foobar) | passwd alice")
- # Check whether switching VTs works.
- subtest "virtual console switching", sub {
- $machine->fail("pgrep -f 'agetty.*tty2'");
- $machine->sendKeys("alt-f2");
- $machine->waitUntilSucceeds("[ \$(fgconsole) = 2 ]");
- $machine->waitForUnit('getty@tty2.service');
- $machine->waitUntilSucceeds("pgrep -f 'agetty.*tty2'");
- };
+ with subtest("Check whether switching VTs works"):
+ machine.fail("pgrep -f 'agetty.*tty2'")
+ machine.send_key("alt-f2")
+ machine.wait_until_succeeds("[ $(fgconsole) = 2 ]")
+ machine.wait_for_unit("getty@tty2.service")
+ machine.wait_until_succeeds("pgrep -f 'agetty.*tty2'")
- # Log in as alice on a virtual console.
- subtest "virtual console login", sub {
- $machine->waitUntilTTYMatches(2, "login: ");
- $machine->sendChars("alice\n");
- $machine->waitUntilTTYMatches(2, "login: alice");
- $machine->waitUntilSucceeds("pgrep login");
- $machine->waitUntilTTYMatches(2, "Password: ");
- $machine->sendChars("foobar\n");
- $machine->waitUntilSucceeds("pgrep -u alice bash");
- $machine->sendChars("touch done\n");
- $machine->waitForFile("/home/alice/done");
- };
+ with subtest("Log in as alice on a virtual console"):
+ machine.wait_until_tty_matches(2, "login: ")
+ machine.send_chars("alice\n")
+ machine.wait_until_tty_matches(2, "login: alice")
+ machine.wait_until_succeeds("pgrep login")
+ machine.wait_until_tty_matches(2, "Password: ")
+ machine.send_chars("foobar\n")
+ machine.wait_until_succeeds("pgrep -u alice bash")
+ machine.send_chars("touch done\n")
+ machine.wait_for_file("/home/alice/done")
- # Check whether systemd gives and removes device ownership as
- # needed.
- subtest "device permissions", sub {
- $machine->succeed("getfacl /dev/snd/timer | grep -q alice");
- $machine->sendKeys("alt-f1");
- $machine->waitUntilSucceeds("[ \$(fgconsole) = 1 ]");
- $machine->fail("getfacl /dev/snd/timer | grep -q alice");
- $machine->succeed("chvt 2");
- $machine->waitUntilSucceeds("getfacl /dev/snd/timer | grep -q alice");
- };
+ with subtest("Systemd gives and removes device ownership as needed"):
+ machine.succeed("getfacl /dev/snd/timer | grep -q alice")
+ machine.send_key("alt-f1")
+ machine.wait_until_succeeds("[ $(fgconsole) = 1 ]")
+ machine.fail("getfacl /dev/snd/timer | grep -q alice")
+ machine.succeed("chvt 2")
+ machine.wait_until_succeeds("getfacl /dev/snd/timer | grep -q alice")
- # Log out.
- subtest "virtual console logout", sub {
- $machine->sendChars("exit\n");
- $machine->waitUntilFails("pgrep -u alice bash");
- $machine->screenshot("mingetty");
- };
-
- # Check whether ctrl-alt-delete works.
- subtest "ctrl-alt-delete", sub {
- $machine->sendKeys("ctrl-alt-delete");
- $machine->waitForShutdown;
- };
- '';
+ with subtest("Virtual console logout"):
+ machine.send_chars("exit\n")
+ machine.wait_until_fails("pgrep -u alice bash")
+ machine.screenshot("mingetty")
+ with subtest("Check whether ctrl-alt-delete works"):
+ machine.send_key("ctrl-alt-delete")
+ machine.wait_for_shutdown()
+ '';
})
diff --git a/nixos/tests/loki.nix b/nixos/tests/loki.nix
index 9c3058d02f8..dbf1e8a650f 100644
--- a/nixos/tests/loki.nix
+++ b/nixos/tests/loki.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ lib, pkgs, ... }:
+import ./make-test-python.nix ({ lib, pkgs, ... }:
{
name = "loki";
@@ -26,12 +26,14 @@ import ./make-test.nix ({ lib, pkgs, ... }:
};
testScript = ''
- $machine->start;
- $machine->waitForUnit("loki.service");
- $machine->waitForUnit("promtail.service");
- $machine->waitForOpenPort(3100);
- $machine->waitForOpenPort(9080);
- $machine->succeed("echo 'Loki Ingestion Test' > /var/log/testlog");
- $machine->waitUntilSucceeds("${pkgs.grafana-loki}/bin/logcli --addr='http://localhost:3100' query --no-labels '{job=\"varlogs\",filename=\"/var/log/testlog\"}' | grep -q 'Loki Ingestion Test'");
+ machine.start
+ machine.wait_for_unit("loki.service")
+ machine.wait_for_unit("promtail.service")
+ machine.wait_for_open_port(3100)
+ machine.wait_for_open_port(9080)
+ machine.succeed("echo 'Loki Ingestion Test' > /var/log/testlog")
+ machine.wait_until_succeeds(
+ "${pkgs.grafana-loki}/bin/logcli --addr='http://localhost:3100' query --no-labels '{job=\"varlogs\",filename=\"/var/log/testlog\"}' | grep -q 'Loki Ingestion Test'"
+ )
'';
})
diff --git a/nixos/tests/lorri/builder.sh b/nixos/tests/lorri/builder.sh
new file mode 100644
index 00000000000..b586b2bf798
--- /dev/null
+++ b/nixos/tests/lorri/builder.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+printf "%s" "${name:?}" > "${out:?}"
diff --git a/nixos/tests/lorri/default.nix b/nixos/tests/lorri/default.nix
new file mode 100644
index 00000000000..53074385a65
--- /dev/null
+++ b/nixos/tests/lorri/default.nix
@@ -0,0 +1,26 @@
+import ../make-test-python.nix {
+ machine = { pkgs, ... }: {
+ imports = [ ../../modules/profiles/minimal.nix ];
+ environment.systemPackages = [ pkgs.lorri ];
+ };
+
+ testScript = ''
+ # Copy files over
+ machine.succeed(
+ "cp '${./fake-shell.nix}' shell.nix"
+ )
+ machine.succeed(
+ "cp '${./builder.sh}' builder.sh"
+ )
+
+ # Start the daemon and wait until it is ready
+ machine.execute("lorri daemon > lorri.stdout 2> lorri.stderr &")
+ machine.wait_until_succeeds("grep --fixed-strings 'lorri: ready' lorri.stdout")
+
+ # Ping the daemon
+ machine.execute("lorri ping_ $(readlink -f shell.nix)")
+
+ # Wait for the daemon to finish the build
+ machine.wait_until_succeeds("grep --fixed-strings 'OutputPaths' lorri.stdout")
+ '';
+}
diff --git a/nixos/tests/lorri/fake-shell.nix b/nixos/tests/lorri/fake-shell.nix
new file mode 100644
index 00000000000..9de9d247e54
--- /dev/null
+++ b/nixos/tests/lorri/fake-shell.nix
@@ -0,0 +1,5 @@
+derivation {
+ system = builtins.currentSystem;
+ name = "fake-shell";
+ builder = ./builder.sh;
+}
diff --git a/nixos/tests/magnetico.nix b/nixos/tests/magnetico.nix
index bc7aef653ee..6770d32358e 100644
--- a/nixos/tests/magnetico.nix
+++ b/nixos/tests/magnetico.nix
@@ -1,4 +1,9 @@
-import ./make-test.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, ...} :
+
+let
+ port = 8081;
+in
+{
name = "magnetico";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ rnhmjoj ];
@@ -12,17 +17,24 @@ import ./make-test.nix ({ pkgs, ...} : {
services.magnetico = {
enable = true;
crawler.port = 9000;
+ web.port = port;
web.credentials.user = "$2y$12$P88ZF6soFthiiAeXnz64aOWDsY3Dw7Yw8fZ6GtiqFNjknD70zDmNe";
};
};
testScript =
''
- startAll;
- $machine->waitForUnit("magneticod");
- $machine->waitForUnit("magneticow");
- $machine->succeed("${pkgs.curl}/bin/curl -u user:password http://localhost:8080");
- $machine->succeed("${pkgs.curl}/bin/curl -u user:wrongpwd http://localhost:8080") =~ "Unauthorised." or die;
- $machine->shutdown();
+ start_all()
+ machine.wait_for_unit("magneticod")
+ machine.wait_for_unit("magneticow")
+ machine.succeed(
+ "${pkgs.curl}/bin/curl "
+ + "-u user:password http://localhost:${toString port}"
+ )
+ assert "Unauthorised." in machine.succeed(
+ "${pkgs.curl}/bin/curl "
+ + "-u user:wrongpwd http://localhost:${toString port}"
+ )
+ machine.shutdown()
'';
})
diff --git a/nixos/tests/make-test-python.nix b/nixos/tests/make-test-python.nix
new file mode 100644
index 00000000000..89897fe7e61
--- /dev/null
+++ b/nixos/tests/make-test-python.nix
@@ -0,0 +1,9 @@
+f: {
+ system ? builtins.currentSystem,
+ pkgs ? import ../.. { inherit system; config = {}; },
+ ...
+} @ args:
+
+with import ../lib/testing-python.nix { inherit system pkgs; };
+
+makeTest (if pkgs.lib.isFunction f then f (args // { inherit pkgs; inherit (pkgs) lib; }) else f)
diff --git a/nixos/tests/matomo.nix b/nixos/tests/matomo.nix
new file mode 100644
index 00000000000..4efa65a7b6d
--- /dev/null
+++ b/nixos/tests/matomo.nix
@@ -0,0 +1,43 @@
+{ system ? builtins.currentSystem, config ? { }
+, pkgs ? import ../.. { inherit system config; } }:
+
+with import ../lib/testing.nix { inherit system pkgs; };
+with pkgs.lib;
+
+let
+ matomoTest = package:
+ makeTest {
+ machine = { config, pkgs, ... }: {
+ services.matomo = {
+ package = package;
+ enable = true;
+ nginx = {
+ forceSSL = false;
+ enableACME = false;
+ };
+ };
+ services.mysql = {
+ enable = true;
+ package = pkgs.mysql;
+ };
+ services.nginx.enable = true;
+ };
+
+ testScript = ''
+ startAll;
+ $machine->waitForUnit("mysql.service");
+ $machine->waitForUnit("phpfpm-matomo.service");
+ $machine->waitForUnit("nginx.service");
+ $machine->succeed("curl -sSfL http://localhost/ | grep 'Matomo[^<]*Installation'");
+ '';
+ };
+in {
+ matomo = matomoTest pkgs.matomo // {
+ name = "matomo";
+ meta.maintainers = with maintainers; [ florianjacob kiwi mmilata ];
+ };
+ matomo-beta = matomoTest pkgs.matomo-beta // {
+ name = "matomo-beta";
+ meta.maintainers = with maintainers; [ florianjacob kiwi mmilata ];
+ };
+}
diff --git a/nixos/tests/matrix-synapse.nix b/nixos/tests/matrix-synapse.nix
index 882e4b75814..fca53009083 100644
--- a/nixos/tests/matrix-synapse.nix
+++ b/nixos/tests/matrix-synapse.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ... } : let
+import ./make-test-python.nix ({ pkgs, ... } : let
runWithOpenSSL = file: cmd: pkgs.runCommand file {
@@ -55,13 +55,17 @@ in {
};
testScript = ''
- startAll;
- $serverpostgres->waitForUnit("matrix-synapse.service");
- $serverpostgres->waitUntilSucceeds("curl -L --cacert ${ca_pem} https://localhost:8448/");
- $serverpostgres->requireActiveUnit("postgresql.service");
- $serversqlite->waitForUnit("matrix-synapse.service");
- $serversqlite->waitUntilSucceeds("curl -L --cacert ${ca_pem} https://localhost:8448/");
- $serversqlite->mustSucceed("[ -e /var/lib/matrix-synapse/homeserver.db ]");
+ start_all()
+ serverpostgres.wait_for_unit("matrix-synapse.service")
+ serverpostgres.wait_until_succeeds(
+ "curl -L --cacert ${ca_pem} https://localhost:8448/"
+ )
+ serverpostgres.require_unit_state("postgresql.service")
+ serversqlite.wait_for_unit("matrix-synapse.service")
+ serversqlite.wait_until_succeeds(
+ "curl -L --cacert ${ca_pem} https://localhost:8448/"
+ )
+ serversqlite.succeed("[ -e /var/lib/matrix-synapse/homeserver.db ]")
'';
})
diff --git a/nixos/tests/metabase.nix b/nixos/tests/metabase.nix
index be9e5ed5b1e..1450a4e9086 100644
--- a/nixos/tests/metabase.nix
+++ b/nixos/tests/metabase.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ... }: {
+import ./make-test-python.nix ({ pkgs, ... }: {
name = "metabase";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ mmahut ];
@@ -12,9 +12,9 @@ import ./make-test.nix ({ pkgs, ... }: {
};
testScript = ''
- startAll;
- $machine->waitForUnit("metabase.service");
- $machine->waitForOpenPort(3000);
- $machine->waitUntilSucceeds("curl -L http://localhost:3000/setup | grep Metabase");
+ start_all()
+ machine.wait_for_unit("metabase.service")
+ machine.wait_for_open_port(3000)
+ machine.wait_until_succeeds("curl -L http://localhost:3000/setup | grep Metabase")
'';
})
diff --git a/nixos/tests/minidlna.nix b/nixos/tests/minidlna.nix
new file mode 100644
index 00000000000..d852c7f60bc
--- /dev/null
+++ b/nixos/tests/minidlna.nix
@@ -0,0 +1,39 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+ name = "minidlna";
+
+ nodes = {
+ server =
+ { ... }:
+ {
+ imports = [ ../modules/profiles/minimal.nix ];
+ networking.firewall.allowedTCPPorts = [ 8200 ];
+ services.minidlna = {
+ enable = true;
+ loglevel = "error";
+ mediaDirs = [
+ "PV,/tmp/stuff"
+ ];
+ friendlyName = "rpi3";
+ rootContainer = "B";
+ extraConfig =
+ ''
+ album_art_names=Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg
+ album_art_names=AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg
+ album_art_names=Folder.jpg/folder.jpg/Thumb.jpg/thumb.jpg
+ notify_interval=60
+ '';
+ };
+ };
+ client = { ... }: { };
+ };
+
+ testScript =
+ ''
+ start_all()
+ server.succeed("mkdir -p /tmp/stuff && chown minidlna: /tmp/stuff")
+ server.wait_for_unit("minidlna")
+ server.wait_for_open_port("8200")
+ server.succeed("curl --fail http://localhost:8200/")
+ client.succeed("curl --fail http://server:8200/")
+ '';
+})
diff --git a/nixos/tests/miniflux.nix b/nixos/tests/miniflux.nix
index 19ab4803a1d..7d83d061a9d 100644
--- a/nixos/tests/miniflux.nix
+++ b/nixos/tests/miniflux.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, lib, ... }:
+import ./make-test-python.nix ({ pkgs, lib, ... }:
let
port = 3142;
@@ -37,16 +37,20 @@ with lib;
};
};
testScript = ''
- startAll;
+ start_all()
- $default->waitForUnit('miniflux.service');
- $default->waitForOpenPort(${toString defaultPort});
- $default->succeed("curl --fail 'http://localhost:${toString defaultPort}/healthcheck' | grep -q OK");
- $default->succeed("curl 'http://localhost:${toString defaultPort}/v1/me' -u '${defaultUsername}:${defaultPassword}' -H Content-Type:application/json | grep -q '\"is_admin\":true'");
+ default.wait_for_unit("miniflux.service")
+ default.wait_for_open_port(${toString defaultPort})
+ default.succeed("curl --fail 'http://localhost:${toString defaultPort}/healthcheck' | grep -q OK")
+ default.succeed(
+ "curl 'http://localhost:${toString defaultPort}/v1/me' -u '${defaultUsername}:${defaultPassword}' -H Content-Type:application/json | grep -q '\"is_admin\":true'"
+ )
- $customized->waitForUnit('miniflux.service');
- $customized->waitForOpenPort(${toString port});
- $customized->succeed("curl --fail 'http://localhost:${toString port}/healthcheck' | grep -q OK");
- $customized->succeed("curl 'http://localhost:${toString port}/v1/me' -u '${username}:${password}' -H Content-Type:application/json | grep -q '\"is_admin\":true'");
+ customized.wait_for_unit("miniflux.service")
+ customized.wait_for_open_port(${toString port})
+ customized.succeed("curl --fail 'http://localhost:${toString port}/healthcheck' | grep -q OK")
+ customized.succeed(
+ "curl 'http://localhost:${toString port}/v1/me' -u '${username}:${password}' -H Content-Type:application/json | grep -q '\"is_admin\":true'"
+ )
'';
})
diff --git a/nixos/tests/minio.nix b/nixos/tests/minio.nix
index f1218b53771..3b061974267 100644
--- a/nixos/tests/minio.nix
+++ b/nixos/tests/minio.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ...} :
+import ./make-test-python.nix ({ pkgs, ...} :
let
accessKey = "BKIKJAA5BMMU2RHO6IBB";
secretKey = "V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12";
@@ -18,7 +18,7 @@ let
sio.seek(0)
minioClient.put_object('test-bucket', 'test.txt', sio, sio_len, content_type='text/plain')
'';
- in {
+in {
name = "minio";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ bachp ];
@@ -37,19 +37,19 @@ let
};
};
- testScript =
- ''
- startAll;
- $machine->waitForUnit("minio.service");
- $machine->waitForOpenPort(9000);
+ testScript = ''
+ start_all()
+ machine.wait_for_unit("minio.service")
+ machine.wait_for_open_port(9000)
- # Create a test bucket on the server
- $machine->succeed("mc config host add minio http://localhost:9000 ${accessKey} ${secretKey} S3v4");
- $machine->succeed("mc mb minio/test-bucket");
- $machine->succeed("${minioPythonScript}");
- $machine->succeed("mc ls minio") =~ /test-bucket/ or die;
- $machine->succeed("mc cat minio/test-bucket/test.txt") =~ /Test from Python/ or die;
- $machine->shutdown;
-
- '';
+ # Create a test bucket on the server
+ machine.succeed(
+ "mc config host add minio http://localhost:9000 ${accessKey} ${secretKey} S3v4"
+ )
+ machine.succeed("mc mb minio/test-bucket")
+ machine.succeed("${minioPythonScript}")
+ assert "test-bucket" in machine.succeed("mc ls minio")
+ assert "Test from Python" in machine.succeed("mc cat minio/test-bucket/test.txt")
+ machine.shutdown()
+ '';
})
diff --git a/nixos/tests/moinmoin.nix b/nixos/tests/moinmoin.nix
new file mode 100644
index 00000000000..2662b79aa09
--- /dev/null
+++ b/nixos/tests/moinmoin.nix
@@ -0,0 +1,24 @@
+import ./make-test.nix ({ pkgs, lib, ... }: {
+ name = "moinmoin";
+ meta.maintainers = [ ]; # waiting for https://github.com/NixOS/nixpkgs/pull/65397
+
+ machine =
+ { ... }:
+ { services.moinmoin.enable = true;
+ services.moinmoin.wikis.ExampleWiki.superUsers = [ "admin" ];
+ services.moinmoin.wikis.ExampleWiki.webHost = "localhost";
+
+ services.nginx.virtualHosts.localhost.enableACME = false;
+ services.nginx.virtualHosts.localhost.forceSSL = false;
+ };
+
+ testScript = ''
+ startAll;
+
+ $machine->waitForUnit('moin-ExampleWiki.service');
+ $machine->waitForUnit('nginx.service');
+ $machine->waitForFile('/run/moin/ExampleWiki/gunicorn.sock');
+ $machine->succeed('curl -L http://localhost/') =~ /If you have just installed/ or die;
+ $machine->succeed('moin-ExampleWiki account create --name=admin --email=admin@example.com --password=foo 2>&1') =~ /status success/ or die;
+ '';
+})
diff --git a/nixos/tests/mongodb.nix b/nixos/tests/mongodb.nix
index 0ccbeb062f9..9ebf84eed23 100644
--- a/nixos/tests/mongodb.nix
+++ b/nixos/tests/mongodb.nix
@@ -1,6 +1,6 @@
# This test start mongodb, runs a query using mongo shell
-import ./make-test.nix ({ pkgs, ...} : let
+import ./make-test-python.nix ({ pkgs, ...} : let
testQuery = pkgs.writeScript "nixtest.js" ''
db.greetings.insert({ "greeting": "hello" });
print(db.greetings.findOne().greeting);
@@ -33,8 +33,10 @@ in {
};
testScript = ''
- startAll;
- $one->waitForUnit("mongodb.service");
- $one->succeed("mongo -u nixtest -p nixtest nixtest ${testQuery}") =~ /hello/ or die;
+ start_all()
+ one.wait_for_unit("mongodb.service")
+ one.succeed(
+ "mongo -u nixtest -p nixtest nixtest ${testQuery} | grep -q hello"
+ )
'';
})
diff --git a/nixos/tests/moodle.nix b/nixos/tests/moodle.nix
index 565a6b63694..56aa62596c0 100644
--- a/nixos/tests/moodle.nix
+++ b/nixos/tests/moodle.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, lib, ... }: {
+import ./make-test-python.nix ({ pkgs, lib, ... }: {
name = "moodle";
meta.maintainers = [ lib.maintainers.aanderse ];
@@ -15,8 +15,8 @@ import ./make-test.nix ({ pkgs, lib, ... }: {
};
testScript = ''
- startAll;
- $machine->waitForUnit('phpfpm-moodle.service');
- $machine->succeed('curl http://localhost/') =~ /You are not logged in/ or die;
+ start_all()
+ machine.wait_for_unit("phpfpm-moodle.service")
+ machine.wait_until_succeeds("curl http://localhost/ | grep 'You are not logged in'")
'';
})
diff --git a/nixos/tests/morty.nix b/nixos/tests/morty.nix
index eab123bd50f..64c5a27665d 100644
--- a/nixos/tests/morty.nix
+++ b/nixos/tests/morty.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ... }:
+import ./make-test-python.nix ({ pkgs, ... }:
{
name = "morty";
@@ -22,11 +22,9 @@ import ./make-test.nix ({ pkgs, ... }:
testScript =
{ ... }:
''
- $mortyProxyWithKey->waitForUnit("default.target");
-
- $mortyProxyWithKey->waitForOpenPort(3001);
- $mortyProxyWithKey->succeed("curl -L 127.0.0.1:3001 | grep MortyProxy");
-
+ mortyProxyWithKey.wait_for_unit("default.target")
+ mortyProxyWithKey.wait_for_open_port(3001)
+ mortyProxyWithKey.succeed("curl -L 127.0.0.1:3001 | grep MortyProxy")
'';
})
diff --git a/nixos/tests/mosquitto.nix b/nixos/tests/mosquitto.nix
index b4c897c3ab5..1f2fdf4237f 100644
--- a/nixos/tests/mosquitto.nix
+++ b/nixos/tests/mosquitto.nix
@@ -1,21 +1,10 @@
-import ./make-test.nix ({ pkgs, ... }:
+import ./make-test-python.nix ({ pkgs, ... }:
let
port = 1888;
username = "mqtt";
password = "VERY_secret";
topic = "test/foo";
-
- cmd = bin: pkgs.lib.concatStringsSep " " [
- "${pkgs.mosquitto}/bin/mosquitto_${bin}"
- "-V mqttv311"
- "-h server"
- "-p ${toString port}"
- "-u ${username}"
- "-P '${password}'"
- "-t ${topic}"
- ];
-
in {
name = "mosquitto";
meta = with pkgs.stdenv.lib; {
@@ -49,40 +38,53 @@ in {
testScript = let
file = "/tmp/msg";
- sub = args:
- "(${cmd "sub"} -C 1 ${args} | tee ${file} &)";
in ''
- startAll;
- $server->waitForUnit("mosquitto.service");
+ def mosquitto_cmd(binary):
+ return (
+ "${pkgs.mosquitto}/bin/mosquitto_{} "
+ "-V mqttv311 "
+ "-h server "
+ "-p ${toString port} "
+ "-u ${username} "
+ "-P '${password}' "
+ "-t ${topic}"
+ ).format(binary)
- $server->fail("test -f ${file}");
- $client1->fail("test -f ${file}");
- $client2->fail("test -f ${file}");
+ def publish(args):
+ return "{} {}".format(mosquitto_cmd("pub"), args)
+
+
+ def subscribe(args):
+ return "({} -C 1 {} | tee ${file} &)".format(mosquitto_cmd("sub"), args)
+
+
+ start_all()
+ server.wait_for_unit("mosquitto.service")
+
+ for machine in server, client1, client2:
+ machine.fail("test -f ${file}")
# QoS = 0, so only one subscribers should get it
- $server->execute("${sub "-q 0"}");
+ server.execute(subscribe("-q 0"))
# we need to give the subscribers some time to connect
- $client2->execute("sleep 5");
- $client2->succeed("${cmd "pub"} -m FOO -q 0");
-
- $server->waitUntilSucceeds("grep -q FOO ${file}");
- $server->execute("rm ${file}");
+ client2.execute("sleep 5")
+ client2.succeed(publish("-m FOO -q 0"))
+ server.wait_until_succeeds("grep -q FOO ${file}")
+ server.execute("rm ${file}")
# QoS = 1, so both subscribers should get it
- $server->execute("${sub "-q 1"}");
- $client1->execute("${sub "-q 1"}");
+ server.execute(subscribe("-q 1"))
+ client1.execute(subscribe("-q 1"))
# we need to give the subscribers some time to connect
- $client2->execute("sleep 5");
- $client2->succeed("${cmd "pub"} -m BAR -q 1");
+ client2.execute("sleep 5")
+ client2.succeed(publish("-m BAR -q 1"))
- $server->waitUntilSucceeds("grep -q BAR ${file}");
- $server->execute("rm ${file}");
-
- $client1->waitUntilSucceeds("grep -q BAR ${file}");
- $client1->execute("rm ${file}");
+ for machine in server, client1:
+ machine.wait_until_succeeds("grep -q BAR ${file}")
+ machine.execute("rm ${file}")
'';
})
diff --git a/nixos/tests/mpd.nix b/nixos/tests/mpd.nix
index ac2b810defe..895b7e2014c 100644
--- a/nixos/tests/mpd.nix
+++ b/nixos/tests/mpd.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ... }:
+import ./make-test-python.nix ({ pkgs, lib, ... }:
let
track = pkgs.fetchurl {
# Sourced from http://freemusicarchive.org/music/Blue_Wave_Theory/Surf_Music_Month_Challenge/Skyhawk_Beach_fade_in
@@ -46,74 +46,87 @@ import ./make-test.nix ({ pkgs, ... }:
};
nodes =
- { client =
+ { client =
{ ... }: { };
serverALSA =
- { ... }: (mkServer {
- mpd = defaultMpdCfg // {
- network.listenAddress = "any";
- extraConfig = ''
- audio_output {
- type "alsa"
- name "ALSA"
- mixer_type "null"
- }
- '';
- };
-
- musicService = with defaultMpdCfg; musicService { inherit user group musicDirectory; };
- }) // { networking.firewall.allowedTCPPorts = [ 6600 ]; };
+ { ... }: lib.mkMerge [
+ (mkServer {
+ mpd = defaultMpdCfg // {
+ network.listenAddress = "any";
+ extraConfig = ''
+ audio_output {
+ type "alsa"
+ name "ALSA"
+ mixer_type "null"
+ }
+ '';
+ };
+ musicService = with defaultMpdCfg; musicService { inherit user group musicDirectory; };
+ })
+ { networking.firewall.allowedTCPPorts = [ 6600 ]; }
+ ];
serverPulseAudio =
- { ... }: (mkServer {
- mpd = defaultMpdCfg // {
- extraConfig = ''
- audio_output {
- type "pulse"
- name "The Pulse"
- }
- '';
- };
+ { ... }: lib.mkMerge [
+ (mkServer {
+ mpd = defaultMpdCfg // {
+ extraConfig = ''
+ audio_output {
+ type "pulse"
+ name "The Pulse"
+ }
+ '';
+ };
- musicService = with defaultCfg; musicService { inherit user group musicDirectory; };
- }) // { hardware.pulseaudio.enable = true; };
+ musicService = with defaultCfg; musicService { inherit user group musicDirectory; };
+ })
+ {
+ hardware.pulseaudio = {
+ enable = true;
+ systemWide = true;
+ tcp.enable = true;
+ tcp.anonymousClients.allowAll = true;
+ };
+ systemd.services.mpd.environment.PULSE_SERVER = "localhost";
+ }
+ ];
};
testScript = ''
- my $mpc = "${pkgs.mpc_cli}/bin/mpc --wait";
+ mpc = "${pkgs.mpc_cli}/bin/mpc --wait"
# Connects to the given server and attempts to play a tune.
- sub play_some_music {
- my $server = $_[0];
+ def play_some_music(server):
+ server.wait_for_unit("mpd.service")
+ server.succeed(f"{mpc} update")
+ _, tracks = server.execute(f"{mpc} ls")
- $server->waitForUnit("mpd.service");
- $server->succeed("$mpc update");
- my @tracks = $server->execute("$mpc ls");
+ for track in tracks.splitlines():
+ server.succeed(f"{mpc} add {track}")
- for my $track (split(/\n/, $tracks[1])) {
- $server->succeed("$mpc add $track");
- };
+ _, added_tracks = server.execute(f"{mpc} listall")
- my @added_tracks = $server->execute("$mpc listall");
- (length $added_tracks[1]) > 0 or die "Failed to add audio tracks to the playlist.";
+ # Check we succeeded adding audio tracks to the playlist
+ assert len(added_tracks.splitlines()) > 0
- $server->succeed("$mpc play");
+ server.succeed(f"{mpc} play")
- my @status = $server->execute("$mpc status");
- my @output = split(/\n/, $status[1]);
- $output[1] =~ /.*playing.*/ or die "Audio track is not playing, as expected.";
+ _, output = server.execute(f"{mpc} status")
+ # Assure audio track is playing
+ assert "playing" in output
- $server->succeed("$mpc stop");
- };
+ server.succeed(f"{mpc} stop")
- play_some_music($serverALSA);
- play_some_music($serverPulseAudio);
- $client->succeed("$mpc -h serverALSA status");
+ play_some_music(serverALSA)
+ play_some_music(serverPulseAudio)
+
+ client.wait_for_unit("multi-user.target")
+ client.succeed(f"{mpc} -h serverALSA status")
# The PulseAudio-based server is configured not to accept external client connections
# to perform the following test:
- $client->fail("$mpc -h serverPulseAudio status");
+ client.fail(f"{mpc} -h serverPulseAudio status")
'';
})
diff --git a/nixos/tests/mumble.nix b/nixos/tests/mumble.nix
index dadd16fd9a0..652d49a24b1 100644
--- a/nixos/tests/mumble.nix
+++ b/nixos/tests/mumble.nix
@@ -63,8 +63,8 @@ in
$client2->sendChars("y");
# Find clients in logs
- $server->waitUntilSucceeds("grep -q 'client1' /var/log/murmur/murmurd.log");
- $server->waitUntilSucceeds("grep -q 'client2' /var/log/murmur/murmurd.log");
+ $server->waitUntilSucceeds("journalctl -eu murmur -o cat | grep -q client1");
+ $server->waitUntilSucceeds("journalctl -eu murmur -o cat | grep -q client2");
$server->sleep(5); # wait to get screenshot
$client1->screenshot("screen1");
diff --git a/nixos/tests/mxisd.nix b/nixos/tests/mxisd.nix
index 3d03a5a53e3..0039256f586 100644
--- a/nixos/tests/mxisd.nix
+++ b/nixos/tests/mxisd.nix
@@ -10,12 +10,22 @@ import ./make-test.nix ({ pkgs, ... } : {
services.mxisd.enable = true;
services.mxisd.matrix.domain = "example.org";
};
+
+ server_ma1sd = args : {
+ services.mxisd.enable = true;
+ services.mxisd.matrix.domain = "example.org";
+ services.mxisd.package = pkgs.ma1sd;
+ };
};
testScript = ''
startAll;
$server_mxisd->waitForUnit("mxisd.service");
$server_mxisd->waitForOpenPort(8090);
- $server_mxisd->succeed("curl -Ssf \"http://127.0.0.1:8090/_matrix/identity/api/v1\"")
+ $server_mxisd->succeed("curl -Ssf \"http://127.0.0.1:8090/_matrix/identity/api/v1\"");
+ $server_ma1sd->waitForUnit("mxisd.service");
+ $server_ma1sd->waitForOpenPort(8090);
+ $server_ma1sd->succeed("curl -Ssf \"http://127.0.0.1:8090/_matrix/identity/api/v1\"")
+
'';
})
diff --git a/nixos/tests/mysql-backup.nix b/nixos/tests/mysql-backup.nix
index 81482dfef7e..a0595e4d553 100644
--- a/nixos/tests/mysql-backup.nix
+++ b/nixos/tests/mysql-backup.nix
@@ -1,5 +1,5 @@
# Test whether mysqlBackup option works
-import ./make-test.nix ({ pkgs, ... } : {
+import ./make-test-python.nix ({ pkgs, ... } : {
name = "mysql-backup";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ rvl ];
@@ -20,31 +20,37 @@ import ./make-test.nix ({ pkgs, ... } : {
};
};
- testScript =
- '' startAll;
+ testScript = ''
+ start_all()
- # Delete backup file that may be left over from a previous test run.
- # This is not needed on Hydra but useful for repeated local test runs.
- $master->execute("rm -f /var/backup/mysql/testdb.gz");
+ # Delete backup file that may be left over from a previous test run.
+ # This is not needed on Hydra but useful for repeated local test runs.
+ master.execute("rm -f /var/backup/mysql/testdb.gz")
- # Need to have mysql started so that it can be populated with data.
- $master->waitForUnit("mysql.service");
+ # Need to have mysql started so that it can be populated with data.
+ master.wait_for_unit("mysql.service")
- # Wait for testdb to be fully populated (5 rows).
- $master->waitUntilSucceeds("mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5");
+ # Wait for testdb to be fully populated (5 rows).
+ master.wait_until_succeeds(
+ "mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5"
+ )
- # Do a backup and wait for it to start
- $master->startJob("mysql-backup.service");
- $master->waitForJob("mysql-backup.service");
+ # Do a backup and wait for it to start
+ master.start_job("mysql-backup.service")
+ master.wait_for_unit("mysql-backup.service")
- # wait for backup to fail, because of database 'doesnotexist'
- $master->waitUntilFails("systemctl is-active -q mysql-backup.service");
+ # wait for backup to fail, because of database 'doesnotexist'
+ master.wait_until_fails("systemctl is-active -q mysql-backup.service")
- # wait for backup file and check that data appears in backup
- $master->waitForFile("/var/backup/mysql/testdb.gz");
- $master->succeed("${pkgs.gzip}/bin/zcat /var/backup/mysql/testdb.gz | grep hello");
+ # wait for backup file and check that data appears in backup
+ master.wait_for_file("/var/backup/mysql/testdb.gz")
+ master.succeed(
+ "${pkgs.gzip}/bin/zcat /var/backup/mysql/testdb.gz | grep hello"
+ )
- # Check that a failed backup is logged
- $master->succeed("journalctl -u mysql-backup.service | grep 'fail.*doesnotexist' > /dev/null");
- '';
+ # Check that a failed backup is logged
+ master.succeed(
+ "journalctl -u mysql-backup.service | grep 'fail.*doesnotexist' > /dev/null"
+ )
+ '';
})
diff --git a/nixos/tests/mysql-replication.nix b/nixos/tests/mysql-replication.nix
index c75a862106f..a2654f041ad 100644
--- a/nixos/tests/mysql-replication.nix
+++ b/nixos/tests/mysql-replication.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ...} :
+import ./make-test-python.nix ({ pkgs, ...} :
let
replicateUser = "replicate";
@@ -54,28 +54,36 @@ in
};
testScript = ''
- $master->start;
- $master->waitForUnit("mysql");
- $master->waitForOpenPort(3306);
+ master.start()
+ master.wait_for_unit("mysql")
+ master.wait_for_open_port(3306)
# Wait for testdb to be fully populated (5 rows).
- $master->waitUntilSucceeds("mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5");
+ master.wait_until_succeeds(
+ "mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5"
+ )
- $slave1->start;
- $slave2->start;
- $slave1->waitForUnit("mysql");
- $slave1->waitForOpenPort(3306);
- $slave2->waitForUnit("mysql");
- $slave2->waitForOpenPort(3306);
+ slave1.start()
+ slave2.start()
+ slave1.wait_for_unit("mysql")
+ slave1.wait_for_open_port(3306)
+ slave2.wait_for_unit("mysql")
+ slave2.wait_for_open_port(3306)
# wait for replications to finish
- $slave1->waitUntilSucceeds("mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5");
- $slave2->waitUntilSucceeds("mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5");
+ slave1.wait_until_succeeds(
+ "mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5"
+ )
+ slave2.wait_until_succeeds(
+ "mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5"
+ )
- $slave2->succeed("systemctl stop mysql");
- $master->succeed("echo 'insert into testdb.tests values (123, 456);' | mysql -u root -N");
- $slave2->succeed("systemctl start mysql");
- $slave2->waitForUnit("mysql");
- $slave2->waitForOpenPort(3306);
- $slave2->waitUntilSucceeds("echo 'select * from testdb.tests where Id = 123;' | mysql -u root -N | grep 456");
+ slave2.succeed("systemctl stop mysql")
+ master.succeed("echo 'insert into testdb.tests values (123, 456);' | mysql -u root -N")
+ slave2.succeed("systemctl start mysql")
+ slave2.wait_for_unit("mysql")
+ slave2.wait_for_open_port(3306)
+ slave2.wait_until_succeeds(
+ "echo 'select * from testdb.tests where Id = 123;' | mysql -u root -N | grep 456"
+ )
'';
})
diff --git a/nixos/tests/mysql.nix b/nixos/tests/mysql.nix
index 05bd968de02..2c0d212c2f1 100644
--- a/nixos/tests/mysql.nix
+++ b/nixos/tests/mysql.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, ...} : {
name = "mysql";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ eelco shlevy ];
@@ -47,17 +47,23 @@ import ./make-test.nix ({ pkgs, ...} : {
};
testScript = ''
- startAll;
+ start_all
- $mysql->waitForUnit("mysql");
- $mysql->succeed("echo 'use empty_testdb;' | mysql -u root");
- $mysql->succeed("echo 'use testdb; select * from tests;' | mysql -u root -N | grep 4");
+ mysql.wait_for_unit("mysql")
+ mysql.succeed("echo 'use empty_testdb;' | mysql -u root")
+ mysql.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
- $mysql->succeed("echo ';' | mysql -u passworduser --password=password123");
+ mysql.succeed("echo ';' | mysql -u passworduser --password=password123")
- $mariadb->waitForUnit("mysql");
- $mariadb->succeed("echo 'use testdb; create table tests (test_id INT, PRIMARY KEY (test_id));' | sudo -u testuser mysql -u testuser");
- $mariadb->succeed("echo 'use testdb; insert into tests values (42);' | sudo -u testuser mysql -u testuser");
- $mariadb->succeed("echo 'use testdb; select test_id from tests;' | sudo -u testuser mysql -u testuser -N | grep 42");
+ 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"
+ )
+ mariadb.succeed(
+ "echo 'use testdb; insert into tests values (42);' | sudo -u testuser mysql -u testuser"
+ )
+ mariadb.succeed(
+ "echo 'use testdb; select test_id from tests;' | sudo -u testuser mysql -u testuser -N | grep 42"
+ )
'';
})
diff --git a/nixos/tests/neo4j.nix b/nixos/tests/neo4j.nix
index 86ed8970517..32ee7f501b8 100644
--- a/nixos/tests/neo4j.nix
+++ b/nixos/tests/neo4j.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix {
+import ./make-test-python.nix {
name = "neo4j";
nodes = {
@@ -11,10 +11,10 @@ import ./make-test.nix {
};
testScript = ''
- startAll;
+ start_all()
- $master->waitForUnit("neo4j");
- $master->sleep(20); # Hopefully this is long enough!!
- $master->succeed("curl http://localhost:7474/");
+ master.wait_for_unit("neo4j")
+ master.wait_for_open_port(7474)
+ master.succeed("curl http://localhost:7474/")
'';
}
diff --git a/nixos/tests/networking.nix b/nixos/tests/networking.nix
index 7452768033a..e0585d8f1bb 100644
--- a/nixos/tests/networking.nix
+++ b/nixos/tests/networking.nix
@@ -72,6 +72,7 @@ let
testCases = {
loopback = {
name = "Loopback";
+ machine.networking.useDHCP = false;
machine.networking.useNetworkd = networkd;
testScript = ''
startAll;
@@ -139,14 +140,16 @@ let
virtualisation.vlans = [ 1 2 ];
networking = {
useNetworkd = networkd;
- useDHCP = true;
+ useDHCP = false;
interfaces.eth1 = {
ipv4.addresses = mkOverride 0 [ ];
ipv6.addresses = mkOverride 0 [ ];
+ useDHCP = true;
};
interfaces.eth2 = {
ipv4.addresses = mkOverride 0 [ ];
ipv6.addresses = mkOverride 0 [ ];
+ useDHCP = true;
};
};
};
@@ -320,13 +323,19 @@ let
virtualisation.vlans = [ 1 ];
networking = {
useNetworkd = networkd;
+ useDHCP = false;
firewall.logReversePathDrops = true; # to debug firewall rules
# reverse path filtering rules for the macvlan interface seem
# to be incorrect, causing the test to fail. Disable temporarily.
firewall.checkReversePath = false;
- useDHCP = true;
macvlans.macvlan.interface = "eth1";
- interfaces.eth1.ipv4.addresses = mkOverride 0 [ ];
+ interfaces.eth1 = {
+ ipv4.addresses = mkOverride 0 [ ];
+ useDHCP = true;
+ };
+ interfaces.macvlan = {
+ useDHCP = true;
+ };
};
};
testScript = { ... }:
@@ -440,6 +449,8 @@ let
virtual = {
name = "Virtual";
machine = {
+ networking.useNetworkd = networkd;
+ networking.useDHCP = false;
networking.interfaces.tap0 = {
ipv4.addresses = [ { address = "192.168.1.1"; prefixLength = 24; } ];
ipv6.addresses = [ { address = "2001:1470:fffd:2096::"; prefixLength = 64; } ];
@@ -489,6 +500,7 @@ let
boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = true;
networking = {
useNetworkd = networkd;
+ useDHCP = false;
interfaces.eth1.ipv6.addresses = singleton {
address = "fd00:1234:5678:1::1";
prefixLength = 64;
@@ -514,11 +526,12 @@ let
virtualisation.vlans = [ 1 ];
networking = {
useNetworkd = networkd;
- useDHCP = true;
+ useDHCP = false;
interfaces.eth1 = {
preferTempAddress = true;
ipv4.addresses = mkOverride 0 [ ];
ipv6.addresses = mkOverride 0 [ ];
+ useDHCP = true;
};
};
};
@@ -526,11 +539,12 @@ let
virtualisation.vlans = [ 1 ];
networking = {
useNetworkd = networkd;
- useDHCP = true;
+ useDHCP = false;
interfaces.eth1 = {
preferTempAddress = false;
ipv4.addresses = mkOverride 0 [ ];
ipv6.addresses = mkOverride 0 [ ];
+ useDHCP = true;
};
};
};
diff --git a/nixos/tests/nextcloud/with-postgresql-and-redis.nix b/nixos/tests/nextcloud/with-postgresql-and-redis.nix
index 81c269c2378..f655aba9d45 100644
--- a/nixos/tests/nextcloud/with-postgresql-and-redis.nix
+++ b/nixos/tests/nextcloud/with-postgresql-and-redis.nix
@@ -36,49 +36,16 @@ in {
};
services.redis = {
- unixSocket = "/var/run/redis/redis.sock";
enable = true;
- extraConfig = ''
- unixsocketperm 770
- '';
- };
-
- systemd.services.redis = {
- preStart = ''
- mkdir -p /var/run/redis
- chown ${config.services.redis.user}:${config.services.nginx.group} /var/run/redis
- '';
- serviceConfig.PermissionsStartOnly = true;
};
systemd.services.nextcloud-setup= {
requires = ["postgresql.service"];
after = [
"postgresql.service"
- "chown-redis-socket.service"
];
};
- # At the time of writing, redis creates its socket with the "nobody"
- # group. I figure this is slightly less bad than making the socket world
- # readable.
- systemd.services.chown-redis-socket = {
- enable = true;
- script = ''
- until ${pkgs.redis}/bin/redis-cli ping; do
- echo "waiting for redis..."
- sleep 1
- done
- chown ${config.services.redis.user}:${config.services.nginx.group} /var/run/redis/redis.sock
- '';
- after = [ "redis.service" ];
- requires = [ "redis.service" ];
- wantedBy = [ "redis.service" ];
- serviceConfig = {
- Type = "oneshot";
- };
- };
-
services.postgresql = {
enable = true;
ensureDatabases = [ "nextcloud" ];
@@ -94,8 +61,8 @@ in {
testScript = let
configureRedis = pkgs.writeScript "configure-redis" ''
#!${pkgs.stdenv.shell}
- nextcloud-occ config:system:set redis 'host' --value '/var/run/redis/redis.sock' --type string
- nextcloud-occ config:system:set redis 'port' --value 0 --type integer
+ 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
'';
diff --git a/nixos/tests/nix-ssh-serve.nix b/nixos/tests/nix-ssh-serve.nix
index 494d55121eb..03f83542c7c 100644
--- a/nixos/tests/nix-ssh-serve.nix
+++ b/nixos/tests/nix-ssh-serve.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, lib, ... }:
+import ./make-test-python.nix ({ pkgs, lib, ... }:
let inherit (import ./ssh-keys.nix pkgs)
snakeOilPrivateKey snakeOilPublicKey;
ssh-config = builtins.toFile "ssh.conf" ''
@@ -18,22 +18,28 @@ in
client.nix.package = pkgs.nix;
};
testScript = ''
- startAll;
+ start_all()
- $client->succeed("mkdir -m 700 /root/.ssh");
- $client->copyFileFromHost("${ssh-config}", "/root/.ssh/config");
- $client->succeed("cat ${snakeOilPrivateKey} > /root/.ssh/id_ecdsa");
- $client->succeed("chmod 600 /root/.ssh/id_ecdsa");
+ client.succeed("mkdir -m 700 /root/.ssh")
+ client.succeed(
+ "cat ${ssh-config} > /root/.ssh/config"
+ )
+ client.succeed(
+ "cat ${snakeOilPrivateKey} > /root/.ssh/id_ecdsa"
+ )
+ client.succeed("chmod 600 /root/.ssh/id_ecdsa")
- $client->succeed("nix-store --add /etc/machine-id > mach-id-path");
+ client.succeed("nix-store --add /etc/machine-id > mach-id-path")
- $server->waitForUnit("sshd");
+ server.wait_for_unit("sshd")
- $client->fail("diff /root/other-store\$(cat mach-id-path) /etc/machine-id");
+ client.fail("diff /root/other-store$(cat mach-id-path) /etc/machine-id")
# Currently due to shared store this is a noop :(
- $client->succeed("nix copy --to ssh-ng://nix-ssh\@server \$(cat mach-id-path)");
- $client->succeed("nix-store --realise \$(cat mach-id-path) --store /root/other-store --substituters ssh-ng://nix-ssh\@server");
- $client->succeed("diff /root/other-store\$(cat mach-id-path) /etc/machine-id");
+ client.succeed("nix copy --to ssh-ng://nix-ssh@server $(cat mach-id-path)")
+ client.succeed(
+ "nix-store --realise $(cat mach-id-path) --store /root/other-store --substituters ssh-ng://nix-ssh@server"
+ )
+ client.succeed("diff /root/other-store$(cat mach-id-path) /etc/machine-id")
'';
}
)
diff --git a/nixos/tests/nixos-generate-config.nix b/nixos/tests/nixos-generate-config.nix
index 15a173e024b..6c83ccecc70 100644
--- a/nixos/tests/nixos-generate-config.nix
+++ b/nixos/tests/nixos-generate-config.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ lib, ... } : {
+import ./make-test-python.nix ({ lib, ... } : {
name = "nixos-generate-config";
meta.maintainers = with lib.maintainers; [ basvandijk ];
machine = {
@@ -11,14 +11,16 @@ import ./make-test.nix ({ lib, ... } : {
'';
};
testScript = ''
- startAll;
- $machine->waitForUnit("multi-user.target");
- $machine->succeed("nixos-generate-config");
+ start_all()
+ machine.wait_for_unit("multi-user.target")
+ machine.succeed("nixos-generate-config")
# Test if the configuration really is overridden
- $machine->succeed("grep 'OVERRIDDEN' /etc/nixos/configuration.nix");
+ machine.succeed("grep 'OVERRIDDEN' /etc/nixos/configuration.nix")
# Test of if the Perl variable $bootLoaderConfig is spliced correctly:
- $machine->succeed("grep 'boot\\.loader\\.grub\\.enable = true;' /etc/nixos/configuration.nix");
+ machine.succeed(
+ "grep 'boot\\.loader\\.grub\\.enable = true;' /etc/nixos/configuration.nix"
+ )
'';
})
diff --git a/nixos/tests/openarena.nix b/nixos/tests/openarena.nix
new file mode 100644
index 00000000000..4cc4db22963
--- /dev/null
+++ b/nixos/tests/openarena.nix
@@ -0,0 +1,36 @@
+import ./make-test.nix ({ pkgs, ...} : {
+ name = "openarena";
+ meta = with pkgs.stdenv.lib.maintainers; {
+ maintainers = [ tomfitzhenry ];
+ };
+
+ machine =
+ { pkgs, ... }:
+
+ { imports = [];
+ environment.systemPackages = with pkgs; [
+ socat
+ ];
+ services.openarena = {
+ enable = true;
+ extraFlags = [
+ "+set dedicated 2"
+ "+set sv_hostname 'My NixOS server'"
+ "+map oa_dm1"
+ ];
+ };
+ };
+
+ testScript =
+ ''
+ $machine->waitForUnit("openarena.service");
+ $machine->waitUntilSucceeds("ss --numeric --udp --listening | grep -q 27960");
+
+ # The log line containing 'resolve address' is last and only message that occurs after
+ # the server starts accepting clients.
+ $machine->waitUntilSucceeds("journalctl -u openarena.service | grep 'resolve address: dpmaster.deathmask.net'");
+
+ # Check it's possible to join the server.
+ $machine->succeed("echo -n -e '\\xff\\xff\\xff\\xffgetchallenge' | socat - UDP4-DATAGRAM:127.0.0.1:27960 | grep -q challengeResponse");
+ '';
+})
diff --git a/nixos/tests/opensmtpd.nix b/nixos/tests/opensmtpd.nix
index 883ad760494..e6f52db1d98 100644
--- a/nixos/tests/opensmtpd.nix
+++ b/nixos/tests/opensmtpd.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix {
+import ./make-test-python.nix {
name = "opensmtpd";
nodes = {
@@ -102,23 +102,23 @@ import ./make-test.nix {
};
testScript = ''
- startAll;
+ start_all()
- $client->waitForUnit("network-online.target");
- $smtp1->waitForUnit('opensmtpd');
- $smtp2->waitForUnit('opensmtpd');
- $smtp2->waitForUnit('dovecot2');
+ client.wait_for_unit("network-online.target")
+ smtp1.wait_for_unit("opensmtpd")
+ smtp2.wait_for_unit("opensmtpd")
+ smtp2.wait_for_unit("dovecot2")
# To prevent sporadic failures during daemon startup, make sure
# services are listening on their ports before sending requests
- $smtp1->waitForOpenPort(25);
- $smtp2->waitForOpenPort(25);
- $smtp2->waitForOpenPort(143);
+ smtp1.wait_for_open_port(25)
+ smtp2.wait_for_open_port(25)
+ smtp2.wait_for_open_port(143)
- $client->succeed('send-a-test-mail');
- $smtp1->waitUntilFails('smtpctl show queue | egrep .');
- $smtp2->waitUntilFails('smtpctl show queue | egrep .');
- $client->succeed('check-mail-landed >&2');
+ client.succeed("send-a-test-mail")
+ smtp1.wait_until_fails("smtpctl show queue | egrep .")
+ smtp2.wait_until_fails("smtpctl show queue | egrep .")
+ client.succeed("check-mail-landed >&2")
'';
meta.timeout = 30;
diff --git a/nixos/tests/openssh.nix b/nixos/tests/openssh.nix
index 8b9e2170f15..e9692b50327 100644
--- a/nixos/tests/openssh.nix
+++ b/nixos/tests/openssh.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ... }:
+import ./make-test-python.nix ({ pkgs, ... }:
let inherit (import ./ssh-keys.nix pkgs)
snakeOilPrivateKey snakeOilPublicKey;
@@ -58,47 +58,55 @@ in {
};
testScript = ''
- startAll;
+ start_all()
- my $key=`${pkgs.openssh}/bin/ssh-keygen -t ed25519 -f key -N ""`;
+ server.wait_for_unit("sshd")
- $server->waitForUnit("sshd");
+ with subtest("manual-authkey"):
+ client.succeed("mkdir -m 700 /root/.ssh")
+ client.succeed(
+ '${pkgs.openssh}/bin/ssh-keygen -t ed25519 -f /root/.ssh/id_ed25519 -N ""'
+ )
+ public_key = client.succeed(
+ "${pkgs.openssh}/bin/ssh-keygen -y -f /root/.ssh/id_ed25519"
+ )
+ public_key = public_key.strip()
+ client.succeed("chmod 600 /root/.ssh/id_ed25519")
- subtest "manual-authkey", sub {
- $server->succeed("mkdir -m 700 /root/.ssh");
- $server->copyFileFromHost("key.pub", "/root/.ssh/authorized_keys");
- $server_lazy->succeed("mkdir -m 700 /root/.ssh");
- $server_lazy->copyFileFromHost("key.pub", "/root/.ssh/authorized_keys");
+ server.succeed("mkdir -m 700 /root/.ssh")
+ server.succeed("echo '{}' > /root/.ssh/authorized_keys".format(public_key))
+ server_lazy.succeed("mkdir -m 700 /root/.ssh")
+ server_lazy.succeed("echo '{}' > /root/.ssh/authorized_keys".format(public_key))
- $client->succeed("mkdir -m 700 /root/.ssh");
- $client->copyFileFromHost("key", "/root/.ssh/id_ed25519");
- $client->succeed("chmod 600 /root/.ssh/id_ed25519");
+ client.wait_for_unit("network.target")
+ client.succeed(
+ "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server 'echo hello world' >&2"
+ )
+ client.succeed(
+ "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server 'ulimit -l' | grep 1024"
+ )
- $client->waitForUnit("network.target");
- $client->succeed("ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server 'echo hello world' >&2");
- $client->succeed("ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server 'ulimit -l' | grep 1024");
+ client.succeed(
+ "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server_lazy 'echo hello world' >&2"
+ )
+ client.succeed(
+ "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server_lazy 'ulimit -l' | grep 1024"
+ )
- $client->succeed("ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server_lazy 'echo hello world' >&2");
- $client->succeed("ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server_lazy 'ulimit -l' | grep 1024");
+ with subtest("configured-authkey"):
+ client.succeed(
+ "cat ${snakeOilPrivateKey} > privkey.snakeoil"
+ )
+ client.succeed("chmod 600 privkey.snakeoil")
+ client.succeed(
+ "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i privkey.snakeoil server true"
+ )
+ client.succeed(
+ "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i privkey.snakeoil server_lazy true"
+ )
- };
-
- subtest "configured-authkey", sub {
- $client->succeed("cat ${snakeOilPrivateKey} > privkey.snakeoil");
- $client->succeed("chmod 600 privkey.snakeoil");
- $client->succeed("ssh -o UserKnownHostsFile=/dev/null" .
- " -o StrictHostKeyChecking=no -i privkey.snakeoil" .
- " server true");
-
- $client->succeed("ssh -o UserKnownHostsFile=/dev/null" .
- " -o StrictHostKeyChecking=no -i privkey.snakeoil" .
- " server_lazy true");
-
- };
-
- subtest "localhost-only", sub {
- $server_localhost_only->succeed("ss -nlt | grep '127.0.0.1:22'");
- $server_localhost_only_lazy->succeed("ss -nlt | grep '127.0.0.1:22'");
- }
+ with subtest("localhost-only"):
+ server_localhost_only.succeed("ss -nlt | grep '127.0.0.1:22'")
+ server_localhost_only_lazy.succeed("ss -nlt | grep '127.0.0.1:22'")
'';
})
diff --git a/nixos/tests/orangefs.nix b/nixos/tests/orangefs.nix
new file mode 100644
index 00000000000..bdf4fc10c44
--- /dev/null
+++ b/nixos/tests/orangefs.nix
@@ -0,0 +1,88 @@
+import ./make-test.nix ({ ... } :
+
+let
+ server = { pkgs, ... } : {
+ networking.firewall.allowedTCPPorts = [ 3334 ];
+ boot.initrd.postDeviceCommands = ''
+ ${pkgs.e2fsprogs}/bin/mkfs.ext4 -L data /dev/vdb
+ '';
+
+ virtualisation.emptyDiskImages = [ 4096 ];
+
+ fileSystems = pkgs.lib.mkVMOverride
+ [ { mountPoint = "/data";
+ device = "/dev/disk/by-label/data";
+ fsType = "ext4";
+ }
+ ];
+
+ services.orangefs.server = {
+ enable = true;
+ dataStorageSpace = "/data/storage";
+ metadataStorageSpace = "/data/meta";
+ servers = {
+ server1 = "tcp://server1:3334";
+ server2 = "tcp://server2:3334";
+ };
+ };
+ };
+
+ client = { lib, ... } : {
+ networking.firewall.enable = true;
+
+ services.orangefs.client = {
+ enable = true;
+ fileSystems = [{
+ target = "tcp://server1:3334/orangefs";
+ mountPoint = "/orangefs";
+ }];
+ };
+ };
+
+in {
+ name = "orangefs";
+
+ nodes = {
+ server1 = server;
+ server2 = server;
+
+ client1 = client;
+ client2 = client;
+ };
+
+ testScript = ''
+ # format storage
+ foreach my $server (($server1,$server2))
+ {
+ $server->start();
+ $server->waitForUnit("multi-user.target");
+ $server->succeed("mkdir -p /data/storage /data/meta");
+ $server->succeed("chown orangefs:orangefs /data/storage /data/meta");
+ $server->succeed("chmod 0770 /data/storage /data/meta");
+ $server->succeed("sudo -g orangefs -u orangefs pvfs2-server -f /etc/orangefs/server.conf");
+ }
+
+ # start services after storage is formated on all machines
+ foreach my $server (($server1,$server2))
+ {
+ $server->succeed("systemctl start orangefs-server.service");
+ }
+
+ # Check if clients can reach and mount the FS
+ foreach my $client (($client1,$client2))
+ {
+ $client->start();
+ $client->waitForUnit("orangefs-client.service");
+ # Both servers need to be reachable
+ $client->succeed("pvfs2-check-server -h server1 -f orangefs -n tcp -p 3334");
+ $client->succeed("pvfs2-check-server -h server2 -f orangefs -n tcp -p 3334");
+ $client->waitForUnit("orangefs.mount");
+
+ }
+
+ # R/W test between clients
+ $client1->succeed("echo test > /orangefs/file1");
+ $client2->succeed("grep test /orangefs/file1");
+
+ '';
+})
diff --git a/nixos/tests/os-prober.nix b/nixos/tests/os-prober.nix
new file mode 100644
index 00000000000..5407a62339f
--- /dev/null
+++ b/nixos/tests/os-prober.nix
@@ -0,0 +1,118 @@
+import ./make-test.nix ({pkgs, lib, ...}:
+let
+ # A filesystem image with a (presumably) bootable debian
+ debianImage = pkgs.vmTools.diskImageFuns.debian9i386 {
+ # os-prober cannot detect systems installed on disks without a partition table
+ # so we create the disk ourselves
+ createRootFS = with pkgs; ''
+ ${parted}/bin/parted --script /dev/vda mklabel msdos
+ ${parted}/sbin/parted --script /dev/vda -- mkpart primary ext2 1M -1s
+ mkdir /mnt
+ ${e2fsprogs}/bin/mkfs.ext4 /dev/vda1
+ ${utillinux}/bin/mount -t ext4 /dev/vda1 /mnt
+
+ if test -e /mnt/.debug; then
+ exec ${bash}/bin/sh
+ fi
+ touch /mnt/.debug
+
+ mkdir /mnt/proc /mnt/dev /mnt/sys
+ '';
+ extraPackages = [
+ # /etc/os-release
+ "base-files"
+ # make the disk bootable-looking
+ "grub2" "linux-image-686"
+ ];
+ # install grub
+ postInstall = ''
+ ln -sf /proc/self/mounts > /etc/mtab
+ PATH=/usr/bin:/bin:/usr/sbin:/sbin $chroot /mnt \
+ grub-install /dev/vda --force
+ PATH=/usr/bin:/bin:/usr/sbin:/sbin $chroot /mnt \
+ update-grub
+ '';
+ };
+
+ # options to add the disk to the test vm
+ QEMU_OPTS = "-drive index=2,file=${debianImage}/disk-image.qcow2,read-only,if=virtio";
+
+ # a part of the configuration of the test vm
+ simpleConfig = {
+ boot.loader.grub = {
+ enable = true;
+ useOSProber = true;
+ device = "/dev/vda";
+ # vda is a filesystem without partition table
+ forceInstall = true;
+ };
+ nix.binaryCaches = lib.mkForce [ ];
+ nix.extraOptions = ''
+ hashed-mirrors =
+ connect-timeout = 1
+ '';
+ };
+ # /etc/nixos/configuration.nix for the vm
+ configFile = pkgs.writeText "configuration.nix" ''
+ {config, pkgs, ...}: ({
+ imports =
+ [ ./hardware-configuration.nix
+
+ ];
+ } // (builtins.fromJSON (builtins.readFile ${
+ pkgs.writeText "simpleConfig.json" (builtins.toJSON simpleConfig)
+ })))
+ '';
+in {
+ name = "os-prober";
+
+ machine = { config, pkgs, ... }: (simpleConfig // {
+ imports = [ ../modules/profiles/installation-device.nix
+ ../modules/profiles/base.nix ];
+ virtualisation.memorySize = 1024;
+ # The test cannot access the network, so any packages
+ # nixos-rebuild needs must be included in the VM.
+ system.extraDependencies = with pkgs;
+ [ sudo
+ libxml2.bin
+ libxslt.bin
+ desktop-file-utils
+ docbook5
+ docbook_xsl_ns
+ unionfs-fuse
+ ntp
+ nixos-artwork.wallpapers.simple-dark-gray-bottom
+ perlPackages.XMLLibXML
+ perlPackages.ListCompare
+ shared-mime-info
+ texinfo
+ xorg.lndir
+ grub2
+
+ # add curl so that rather than seeing the test attempt to download
+ # curl's tarball, we see what it's trying to download
+ curl
+ ];
+ });
+
+ testScript = ''
+ # hack to add the secondary disk
+ $machine->{startCommand} = "QEMU_OPTS=\"\$QEMU_OPTS \"${lib.escapeShellArg QEMU_OPTS} ".$machine->{startCommand};
+
+ $machine->start;
+ $machine->succeed("udevadm settle");
+ $machine->waitForUnit("multi-user.target");
+
+ # check that os-prober works standalone
+ $machine->succeed("${pkgs.os-prober}/bin/os-prober | grep /dev/vdb1");
+
+ # rebuild and test that debian is available in the grub menu
+ $machine->succeed("nixos-generate-config");
+ $machine->copyFileFromHost(
+ "${configFile}",
+ "/etc/nixos/configuration.nix");
+ $machine->succeed("nixos-rebuild boot >&2");
+
+ $machine->succeed("egrep 'menuentry.*debian' /boot/grub/grub.cfg");
+ '';
+})
diff --git a/nixos/tests/osquery.nix b/nixos/tests/osquery.nix
deleted file mode 100644
index d95871ffafc..00000000000
--- a/nixos/tests/osquery.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-import ./make-test.nix ({ pkgs, lib, ... }:
-
-with lib;
-
-{
- name = "osquery";
- meta = with pkgs.stdenv.lib.maintainers; {
- maintainers = [ ma27 ];
- };
-
- machine = {
- services.osquery.enable = true;
- services.osquery.loggerPath = "/var/log/osquery/logs";
- services.osquery.pidfile = "/run/osqueryd.pid";
- };
-
- testScript = ''
- $machine->start;
- $machine->waitForUnit("osqueryd.service");
-
- $machine->succeed("echo 'SELECT address FROM etc_hosts LIMIT 1;' | osqueryi | grep '127.0.0.1'");
- $machine->succeed(
- "echo 'SELECT value FROM osquery_flags WHERE name = \"logger_path\";' | osqueryi | grep /var/log/osquery/logs"
- );
-
- $machine->succeed("echo 'SELECT value FROM osquery_flags WHERE name = \"pidfile\";' | osqueryi | grep /run/osqueryd.pid");
- '';
-})
diff --git a/nixos/tests/ostree.nix b/nixos/tests/ostree.nix
deleted file mode 100644
index d7ad84a1a5f..00000000000
--- a/nixos/tests/ostree.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-# run installed tests
-import ./make-test.nix ({ pkgs, lib, ... }: {
- name = "ostree";
-
- meta = {
- maintainers = pkgs.ostree.meta.maintainers;
- };
-
- # TODO: Wrap/patch the tests directly in the package
- machine = { pkgs, ... }: {
- environment.systemPackages = with pkgs; [
- gnome-desktop-testing ostree gnupg (python3.withPackages (p: with p; [ pyyaml ]))
- ];
-
- environment.variables.GI_TYPELIB_PATH = lib.makeSearchPath "lib/girepository-1.0" (with pkgs; [ gtk3 pango.out ostree gdk-pixbuf atk ]); # for GJS tests
- };
-
- testScript = ''
- $machine->succeed("gnome-desktop-testing-runner -d ${pkgs.ostree.installedTests}/share");
- '';
-})
diff --git a/nixos/tests/packagekit.nix b/nixos/tests/packagekit.nix
index e2d68af661f..7e93ad35e80 100644
--- a/nixos/tests/packagekit.nix
+++ b/nixos/tests/packagekit.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ... }: {
+import ./make-test-python.nix ({ pkgs, ... }: {
name = "packagekit";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ peterhoeg ];
@@ -13,12 +13,14 @@ import ./make-test.nix ({ pkgs, ... }: {
};
testScript = ''
- startAll;
+ start_all()
# send a dbus message to activate the service
- $machine->succeed("dbus-send --system --type=method_call --print-reply --dest=org.freedesktop.PackageKit /org/freedesktop/PackageKit org.freedesktop.DBus.Introspectable.Introspect");
+ machine.succeed(
+ "dbus-send --system --type=method_call --print-reply --dest=org.freedesktop.PackageKit /org/freedesktop/PackageKit org.freedesktop.DBus.Introspectable.Introspect"
+ )
# so now it should be running
- $machine->succeed("systemctl is-active packagekit.service");
+ machine.wait_for_unit("packagekit.service")
'';
})
diff --git a/nixos/tests/pantheon.nix b/nixos/tests/pantheon.nix
index c50f77f8617..9888887ee8b 100644
--- a/nixos/tests/pantheon.nix
+++ b/nixos/tests/pantheon.nix
@@ -42,7 +42,7 @@ import ./make-test.nix ({ pkgs, ...} :
$machine->waitForWindow(qr/plank/);
# Check that logging in has given the user ownership of devices.
- $machine->succeed("getfacl /dev/snd/timer | grep -q alice");
+ $machine->succeed("getfacl -p /dev/snd/timer | grep -q alice");
# Open elementary terminal
$machine->execute("su - alice -c 'DISPLAY=:0.0 io.elementary.terminal &'");
diff --git a/nixos/tests/pgjwt.nix b/nixos/tests/pgjwt.nix
index a2d81288c81..4793a3e3150 100644
--- a/nixos/tests/pgjwt.nix
+++ b/nixos/tests/pgjwt.nix
@@ -1,12 +1,5 @@
-import ./make-test.nix ({ pkgs, lib, ...}:
-let
- test = with pkgs; runCommand "patch-test" {
- nativeBuildInputs = [ pgjwt ];
- }
- ''
- sed -e '12 i CREATE EXTENSION pgcrypto;\nCREATE EXTENSION pgtap;\nSET search_path TO tap,public;' ${pgjwt.src}/test.sql > $out;
- '';
-in
+import ./make-test-python.nix ({ pkgs, lib, ...}:
+
with pkgs; {
name = "pgjwt";
meta = with lib.maintainers; {
@@ -29,9 +22,13 @@ with pkgs; {
pgProve = "${pkgs.perlPackages.TAPParserSourceHandlerpgTAP}";
in
''
- startAll;
- $master->waitForUnit("postgresql");
- $master->copyFileFromHost("${test}","/tmp/test.sql");
- $master->succeed("${pkgs.sudo}/bin/sudo -u ${sqlSU} PGOPTIONS=--search_path=tap,public ${pgProve}/bin/pg_prove -d postgres -v -f /tmp/test.sql");
+ start_all()
+ master.wait_for_unit("postgresql")
+ master.succeed(
+ "${pkgs.gnused}/bin/sed -e '12 i CREATE EXTENSION pgcrypto;\\nCREATE EXTENSION pgtap;\\nSET search_path TO tap,public;' ${pgjwt.src}/test.sql > /tmp/test.sql"
+ )
+ master.succeed(
+ "${pkgs.sudo}/bin/sudo -u ${sqlSU} PGOPTIONS=--search_path=tap,public ${pgProve}/bin/pg_prove -d postgres -v -f /tmp/test.sql"
+ )
'';
})
diff --git a/nixos/tests/plasma5.nix b/nixos/tests/plasma5.nix
index 788c8719c8d..614fc9bf316 100644
--- a/nixos/tests/plasma5.nix
+++ b/nixos/tests/plasma5.nix
@@ -30,6 +30,7 @@ import ./make-test.nix ({ pkgs, ...} :
enable = true;
user = "alice";
};
+ hardware.pulseaudio.enable = true; # needed for the factl test, /dev/snd/* exists without them but udev doesn't care then
virtualisation.memorySize = 1024;
environment.systemPackages = [ sddm_theme ];
};
@@ -47,7 +48,7 @@ import ./make-test.nix ({ pkgs, ...} :
$machine->waitForWindow("^Desktop ");
# Check that logging in has given the user ownership of devices.
- $machine->succeed("getfacl /dev/snd/timer | grep -q alice");
+ $machine->succeed("getfacl -p /dev/snd/timer | grep -q alice");
$machine->execute("su - alice -c 'DISPLAY=:0.0 dolphin &'");
$machine->waitForWindow(" Dolphin");
diff --git a/nixos/tests/postgresql.nix b/nixos/tests/postgresql.nix
index ae5d6d095ea..e71c3888288 100644
--- a/nixos/tests/postgresql.nix
+++ b/nixos/tests/postgresql.nix
@@ -3,7 +3,7 @@
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
@@ -40,29 +40,33 @@ let
backupName = if backup-all then "all" else "postgres";
backupService = if backup-all then "postgresqlBackup" else "postgresqlBackup-postgres";
in ''
- sub check_count {
- my ($select, $nlines) = @_;
- return 'test $(sudo -u postgres psql postgres -tAc "' . $select . '"|wc -l) -eq ' . $nlines;
- }
+ def check_count(statement, lines):
+ return 'test $(sudo -u postgres psql postgres -tAc "{}"|wc -l) -eq {}'.format(
+ statement, lines
+ )
+
+
+ machine.start()
+ machine.wait_for_unit("postgresql")
- $machine->start;
- $machine->waitForUnit("postgresql");
# postgresql should be available just after unit start
- $machine->succeed("cat ${test-sql} | sudo -u postgres psql");
- $machine->shutdown; # make sure that postgresql survive restart (bug #1735)
- sleep(2);
- $machine->start;
- $machine->waitForUnit("postgresql");
- $machine->fail(check_count("SELECT * FROM sth;", 3));
- $machine->succeed(check_count("SELECT * FROM sth;", 5));
- $machine->fail(check_count("SELECT * FROM sth;", 4));
- $machine->succeed(check_count("SELECT xpath(\'/test/text()\', doc) FROM xmltest;", 1));
+ machine.succeed(
+ "cat ${test-sql} | sudo -u postgres psql"
+ )
+ machine.shutdown() # make sure that postgresql survive restart (bug #1735)
+ time.sleep(2)
+ machine.start()
+ machine.wait_for_unit("postgresql")
+ machine.fail(check_count("SELECT * FROM sth;", 3))
+ machine.succeed(check_count("SELECT * FROM sth;", 5))
+ machine.fail(check_count("SELECT * FROM sth;", 4))
+ machine.succeed(check_count("SELECT xpath('/test/text()', doc) FROM xmltest;", 1))
# Check backup service
- $machine->succeed("systemctl start ${backupService}.service");
- $machine->succeed("zcat /var/backup/postgresql/${backupName}.sql.gz | grep 'ok '");
- $machine->succeed("stat -c '%a' /var/backup/postgresql/${backupName}.sql.gz | grep 600");
- $machine->shutdown;
+ machine.succeed("systemctl start ${backupService}.service")
+ machine.succeed("zcat /var/backup/postgresql/${backupName}.sql.gz | grep 'ok '")
+ machine.succeed("stat -c '%a' /var/backup/postgresql/${backupName}.sql.gz | grep 600")
+ machine.shutdown()
'';
};
diff --git a/nixos/tests/powerdns.nix b/nixos/tests/powerdns.nix
index 8addcc78401..75d71315e64 100644
--- a/nixos/tests/powerdns.nix
+++ b/nixos/tests/powerdns.nix
@@ -1,12 +1,13 @@
-import ./make-test.nix ({ pkgs, ... }: {
+import ./make-test-python.nix ({ pkgs, ... }: {
name = "powerdns";
nodes.server = { ... }: {
services.powerdns.enable = true;
+ environment.systemPackages = [ pkgs.dnsutils ];
};
testScript = ''
- $server->waitForUnit("pdns");
- $server->succeed("${pkgs.dnsutils}/bin/dig version.bind txt chaos \@127.0.0.1");
+ server.wait_for_unit("pdns")
+ server.succeed("dig version.bind txt chaos \@127.0.0.1")
'';
})
diff --git a/nixos/tests/pppd.nix b/nixos/tests/pppd.nix
new file mode 100644
index 00000000000..bda0aa75bb5
--- /dev/null
+++ b/nixos/tests/pppd.nix
@@ -0,0 +1,62 @@
+import ./make-test-python.nix (
+ let
+ chap-secrets = {
+ text = ''"flynn" * "reindeerflotilla" *'';
+ mode = "0640";
+ };
+ in {
+ nodes = {
+ server = {config, pkgs, ...}: {
+ config = {
+ # Run a PPPoE access concentrator server. It will spawn an
+ # appropriate PPP server process when a PPPoE client sets up a
+ # PPPoE session.
+ systemd.services.pppoe-server = {
+ restartTriggers = [
+ config.environment.etc."ppp/pppoe-server-options".source
+ config.environment.etc."ppp/chap-secrets".source
+ ];
+ after = ["network.target"];
+ serviceConfig = {
+ ExecStart = "${pkgs.rpPPPoE}/sbin/pppoe-server -F -O /etc/ppp/pppoe-server-options -q ${pkgs.ppp}/sbin/pppd -I eth1 -L 192.0.2.1 -R 192.0.2.2";
+ };
+ wantedBy = ["multi-user.target"];
+ };
+ environment.etc = {
+ "ppp/pppoe-server-options".text = ''
+ lcp-echo-interval 10
+ lcp-echo-failure 2
+ plugin rp-pppoe.so
+ require-chap
+ nobsdcomp
+ noccp
+ novj
+ '';
+ "ppp/chap-secrets" = chap-secrets;
+ };
+ };
+ };
+ client = {config, pkgs, ...}: {
+ services.pppd = {
+ enable = true;
+ peers.test = {
+ config = ''
+ plugin rp-pppoe.so eth1
+ name "flynn"
+ noipdefault
+ persist
+ noauth
+ debug
+ '';
+ };
+ };
+ environment.etc."ppp/chap-secrets" = chap-secrets;
+ };
+ };
+
+ testScript = ''
+ start_all()
+ client.wait_until_succeeds("ping -c1 -W1 192.0.2.1")
+ server.wait_until_succeeds("ping -c1 -W1 192.0.2.2")
+ '';
+ })
diff --git a/nixos/tests/predictable-interface-names.nix b/nixos/tests/predictable-interface-names.nix
index 85047f66f23..194b4dafa77 100644
--- a/nixos/tests/predictable-interface-names.nix
+++ b/nixos/tests/predictable-interface-names.nix
@@ -16,6 +16,7 @@ in pkgs.lib.listToAttrs (pkgs.lib.crossLists (predictable: withNetworkd: {
networking.usePredictableInterfaceNames = lib.mkForce predictable;
networking.useNetworkd = withNetworkd;
networking.dhcpcd.enable = !withNetworkd;
+ networking.useDHCP = !withNetworkd;
};
testScript = ''
diff --git a/nixos/tests/prometheus-exporters.nix b/nixos/tests/prometheus-exporters.nix
index 02d83f82f33..563f2472647 100644
--- a/nixos/tests/prometheus-exporters.nix
+++ b/nixos/tests/prometheus-exporters.nix
@@ -4,12 +4,10 @@
}:
let
- inherit (import ../lib/testing.nix { inherit system pkgs; }) makeTest;
+ inherit (import ../lib/testing-python.nix { inherit system pkgs; }) makeTest;
inherit (pkgs.lib) concatStringsSep maintainers mapAttrs mkMerge
removeSuffix replaceChars singleton splitString;
- escape' = str: replaceChars [''"'' "$" "\n"] [''\\\"'' "\\$" ""] str;
-
/*
* The attrset `exporterTests` contains one attribute
* for each exporter test. Each of these attributes
@@ -33,9 +31,9 @@ let
* services..enable = true;
* };
* exporterTest = ''
- * waitForUnit("prometheus--exporter.service");
- * waitForOpenPort("1234");
- * succeed("curl -sSf 'localhost:1234/metrics'");
+ * wait_for_unit("prometheus--exporter.service")
+ * wait_for_open_port("1234")
+ * succeed("curl -sSf 'localhost:1234/metrics'")
* '';
* };
*
@@ -49,11 +47,11 @@ let
* };
*
* testScript = ''
- * $->start();
- * $->waitForUnit("prometheus--exporter.service");
- * $->waitForOpenPort("1234");
- * $->succeed("curl -sSf 'localhost:1234/metrics'");
- * $->shutdown();
+ * .start()
+ * .wait_for_unit("prometheus--exporter.service")
+ * .wait_for_open_port("1234")
+ * .succeed("curl -sSf 'localhost:1234/metrics'")
+ * .shutdown()
* '';
*/
@@ -72,9 +70,11 @@ let
'';
};
exporterTest = ''
- waitForUnit("prometheus-bind-exporter.service");
- waitForOpenPort(9119);
- succeed("curl -sSf http://localhost:9119/metrics | grep -q 'bind_query_recursions_total 0'");
+ wait_for_unit("prometheus-bind-exporter.service")
+ wait_for_open_port(9119)
+ succeed(
+ "curl -sSf http://localhost:9119/metrics | grep -q 'bind_query_recursions_total 0'"
+ )
'';
};
@@ -89,9 +89,11 @@ let
});
};
exporterTest = ''
- waitForUnit("prometheus-blackbox-exporter.service");
- waitForOpenPort(9115);
- succeed("curl -sSf 'http://localhost:9115/probe?target=localhost&module=icmp_v6' | grep -q 'probe_success 1'");
+ wait_for_unit("prometheus-blackbox-exporter.service")
+ wait_for_open_port(9115)
+ succeed(
+ "curl -sSf 'http://localhost:9115/probe?target=localhost&module=icmp_v6' | grep -q 'probe_success 1'"
+ )
'';
};
@@ -100,7 +102,7 @@ let
enable = true;
extraFlags = [ "--web.collectd-push-path /collectd" ];
};
- exporterTest =let postData = escape' ''
+ exporterTest = let postData = replaceChars [ "\n" ] [ "" ] ''
[{
"values":[23],
"dstypes":["gauge"],
@@ -108,13 +110,21 @@ let
"interval":1000,
"host":"testhost",
"plugin":"testplugin",
- "time":$(date +%s)
+ "time":DATE
}]
''; in ''
- waitForUnit("prometheus-collectd-exporter.service");
- waitForOpenPort(9103);
- succeed("curl -sSfH 'Content-Type: application/json' -X POST --data \"${postData}\" localhost:9103/collectd");
- succeed("curl -sSf localhost:9103/metrics | grep -q 'collectd_testplugin_gauge{instance=\"testhost\"} 23'");
+ wait_for_unit("prometheus-collectd-exporter.service")
+ wait_for_open_port(9103)
+ succeed(
+ 'echo \'${postData}\'> /tmp/data.json'
+ )
+ succeed('sed -ie "s DATE $(date +%s) " /tmp/data.json')
+ succeed(
+ "curl -sSfH 'Content-Type: application/json' -X POST --data @/tmp/data.json localhost:9103/collectd"
+ )
+ succeed(
+ "curl -sSf localhost:9103/metrics | grep -q 'collectd_testplugin_gauge{instance=\"testhost\"} 23'"
+ )
'';
};
@@ -127,9 +137,9 @@ let
services.dnsmasq.enable = true;
};
exporterTest = ''
- waitForUnit("prometheus-dnsmasq-exporter.service");
- waitForOpenPort(9153);
- succeed("curl -sSf http://localhost:9153/metrics | grep -q 'dnsmasq_leases 0'");
+ wait_for_unit("prometheus-dnsmasq-exporter.service")
+ wait_for_open_port(9153)
+ succeed("curl -sSf http://localhost:9153/metrics | grep -q 'dnsmasq_leases 0'")
'';
};
@@ -144,9 +154,11 @@ let
services.dovecot2.enable = true;
};
exporterTest = ''
- waitForUnit("prometheus-dovecot-exporter.service");
- waitForOpenPort(9166);
- succeed("curl -sSf http://localhost:9166/metrics | grep -q 'dovecot_up{scope=\"global\"} 1'");
+ wait_for_unit("prometheus-dovecot-exporter.service")
+ wait_for_open_port(9166)
+ succeed(
+ "curl -sSf http://localhost:9166/metrics | grep -q 'dovecot_up{scope=\"global\"} 1'"
+ )
'';
};
@@ -155,9 +167,11 @@ let
enable = true;
};
exporterTest = ''
- waitForUnit("prometheus-fritzbox-exporter.service");
- waitForOpenPort(9133);
- succeed("curl -sSf http://localhost:9133/metrics | grep -q 'fritzbox_exporter_collect_errors 0'");
+ wait_for_unit("prometheus-fritzbox-exporter.service")
+ wait_for_open_port(9133)
+ succeed(
+ "curl -sSf http://localhost:9133/metrics | grep -q 'fritzbox_exporter_collect_errors 0'"
+ )
'';
};
@@ -180,11 +194,11 @@ let
};
};
exporterTest = ''
- waitForUnit("nginx.service");
- waitForOpenPort(80);
- waitForUnit("prometheus-json-exporter.service");
- waitForOpenPort(7979);
- succeed("curl -sSf localhost:7979/metrics | grep -q 'json_test_metric 1'");
+ wait_for_unit("nginx.service")
+ wait_for_open_port(80)
+ wait_for_unit("prometheus-json-exporter.service")
+ wait_for_open_port(7979)
+ succeed("curl -sSf localhost:7979/metrics | grep -q 'json_test_metric 1'")
'';
};
@@ -222,10 +236,46 @@ let
users.users.mailexporter.isSystemUser = true;
};
exporterTest = ''
- waitForUnit("postfix.service")
- waitForUnit("prometheus-mail-exporter.service")
- waitForOpenPort(9225)
- waitUntilSucceeds("curl -sSf http://localhost:9225/metrics | grep -q 'mail_deliver_success{configname=\"testserver\"} 1'")
+ wait_for_unit("postfix.service")
+ wait_for_unit("prometheus-mail-exporter.service")
+ wait_for_open_port(9225)
+ wait_until_succeeds(
+ "curl -sSf http://localhost:9225/metrics | grep -q 'mail_deliver_success{configname=\"testserver\"} 1'"
+ )
+ '';
+ };
+
+ nextcloud = {
+ exporterConfig = {
+ enable = true;
+ passwordFile = "/var/nextcloud-pwfile";
+ url = "http://localhost/negative-space.xml";
+ };
+ metricProvider = {
+ systemd.services.nc-pwfile = let
+ passfile = (pkgs.writeText "pwfile" "snakeoilpw");
+ in {
+ requiredBy = [ "prometheus-nextcloud-exporter.service" ];
+ before = [ "prometheus-nextcloud-exporter.service" ];
+ serviceConfig.ExecStart = ''
+ ${pkgs.coreutils}/bin/install -o nextcloud-exporter -m 0400 ${passfile} /var/nextcloud-pwfile
+ '';
+ };
+ services.nginx = {
+ enable = true;
+ virtualHosts."localhost" = {
+ basicAuth.nextcloud-exporter = "snakeoilpw";
+ locations."/" = {
+ root = "${pkgs.prometheus-nextcloud-exporter.src}/serverinfo/testdata";
+ };
+ };
+ };
+ };
+ exporterTest = ''
+ wait_for_unit("nginx.service")
+ wait_for_unit("prometheus-nextcloud-exporter.service")
+ wait_for_open_port(9205)
+ succeed("curl -sSf http://localhost:9205/metrics | grep -q 'nextcloud_up 1'")
'';
};
@@ -241,9 +291,9 @@ let
};
};
exporterTest = ''
- waitForUnit("nginx.service")
- waitForUnit("prometheus-nginx-exporter.service")
- waitForOpenPort(9113)
+ wait_for_unit("nginx.service")
+ wait_for_unit("prometheus-nginx-exporter.service")
+ wait_for_open_port(9113)
succeed("curl -sSf http://localhost:9113/metrics | grep -q 'nginx_up 1'")
'';
};
@@ -253,9 +303,11 @@ let
enable = true;
};
exporterTest = ''
- waitForUnit("prometheus-node-exporter.service");
- waitForOpenPort(9100);
- succeed("curl -sSf http://localhost:9100/metrics | grep -q 'node_exporter_build_info{.\\+} 1'");
+ wait_for_unit("prometheus-node-exporter.service")
+ wait_for_open_port(9100)
+ succeed(
+ "curl -sSf http://localhost:9100/metrics | grep -q 'node_exporter_build_info{.\\+} 1'"
+ )
'';
};
@@ -267,9 +319,11 @@ let
services.postfix.enable = true;
};
exporterTest = ''
- waitForUnit("prometheus-postfix-exporter.service");
- waitForOpenPort(9154);
- succeed("curl -sSf http://localhost:9154/metrics | grep -q 'postfix_smtpd_connects_total 0'");
+ wait_for_unit("prometheus-postfix-exporter.service")
+ wait_for_open_port(9154)
+ succeed(
+ "curl -sSf http://localhost:9154/metrics | grep -q 'postfix_smtpd_connects_total 0'"
+ )
'';
};
@@ -282,18 +336,42 @@ let
services.postgresql.enable = true;
};
exporterTest = ''
- waitForUnit("prometheus-postgres-exporter.service");
- waitForOpenPort(9187);
- waitForUnit("postgresql.service");
- succeed("curl -sSf http://localhost:9187/metrics | grep -q 'pg_exporter_last_scrape_error 0'");
- succeed("curl -sSf http://localhost:9187/metrics | grep -q 'pg_up 1'");
- systemctl("stop postgresql.service");
- succeed("curl -sSf http://localhost:9187/metrics | grep -qv 'pg_exporter_last_scrape_error 0'");
- succeed("curl -sSf http://localhost:9187/metrics | grep -q 'pg_up 0'");
- systemctl("start postgresql.service");
- waitForUnit("postgresql.service");
- succeed("curl -sSf http://localhost:9187/metrics | grep -q 'pg_exporter_last_scrape_error 0'");
- succeed("curl -sSf http://localhost:9187/metrics | grep -q 'pg_up 1'");
+ wait_for_unit("prometheus-postgres-exporter.service")
+ wait_for_open_port(9187)
+ wait_for_unit("postgresql.service")
+ succeed(
+ "curl -sSf http://localhost:9187/metrics | grep -q 'pg_exporter_last_scrape_error 0'"
+ )
+ succeed("curl -sSf http://localhost:9187/metrics | grep -q 'pg_up 1'")
+ systemctl("stop postgresql.service")
+ succeed(
+ "curl -sSf http://localhost:9187/metrics | grep -qv 'pg_exporter_last_scrape_error 0'"
+ )
+ succeed("curl -sSf http://localhost:9187/metrics | grep -q 'pg_up 0'")
+ systemctl("start postgresql.service")
+ wait_for_unit("postgresql.service")
+ succeed(
+ "curl -sSf http://localhost:9187/metrics | grep -q 'pg_exporter_last_scrape_error 0'"
+ )
+ succeed("curl -sSf http://localhost:9187/metrics | grep -q 'pg_up 1'")
+ '';
+ };
+
+ rspamd = {
+ exporterConfig = {
+ enable = true;
+ };
+ metricProvider = {
+ services.rspamd.enable = true;
+ };
+ exporterTest = ''
+ wait_for_unit("rspamd.service")
+ wait_for_unit("prometheus-rspamd-exporter.service")
+ wait_for_open_port(11334)
+ wait_for_open_port(7980)
+ wait_until_succeeds(
+ "curl -sSf localhost:7980/metrics | grep -q 'rspamd_scanned{host=\"rspamd\"} 0'"
+ )
'';
};
@@ -306,9 +384,9 @@ let
};
};
exporterTest = ''
- waitForUnit("prometheus-snmp-exporter.service");
- waitForOpenPort(9116);
- succeed("curl -sSf localhost:9116/metrics | grep -q 'snmp_request_errors_total 0'");
+ wait_for_unit("prometheus-snmp-exporter.service")
+ wait_for_open_port(9116)
+ succeed("curl -sSf localhost:9116/metrics | grep -q 'snmp_request_errors_total 0'")
'';
};
@@ -327,11 +405,11 @@ let
};
};
exporterTest = ''
- waitForUnit("nginx.service");
- waitForOpenPort(80);
- waitForUnit("prometheus-surfboard-exporter.service");
- waitForOpenPort(9239);
- succeed("curl -sSf localhost:9239/metrics | grep -q 'surfboard_up 1'");
+ wait_for_unit("nginx.service")
+ wait_for_open_port(80)
+ wait_for_unit("prometheus-surfboard-exporter.service")
+ wait_for_open_port(9239)
+ succeed("curl -sSf localhost:9239/metrics | grep -q 'surfboard_up 1'")
'';
};
@@ -346,11 +424,11 @@ let
services.tor.controlPort = 9051;
};
exporterTest = ''
- waitForUnit("tor.service");
- waitForOpenPort(9051);
- waitForUnit("prometheus-tor-exporter.service");
- waitForOpenPort(9130);
- succeed("curl -sSf localhost:9130/metrics | grep -q 'tor_version{.\\+} 1'");
+ wait_for_unit("tor.service")
+ wait_for_open_port(9051)
+ wait_for_unit("prometheus-tor-exporter.service")
+ wait_for_open_port(9130)
+ succeed("curl -sSf localhost:9130/metrics | grep -q 'tor_version{.\\+} 1'")
'';
};
@@ -376,10 +454,10 @@ let
};
};
exporterTest = ''
- waitForUnit("prometheus-varnish-exporter.service");
- waitForOpenPort(6081);
- waitForOpenPort(9131);
- succeed("curl -sSf http://localhost:9131/metrics | grep -q 'varnish_up 1'");
+ wait_for_unit("prometheus-varnish-exporter.service")
+ wait_for_open_port(6081)
+ wait_for_open_port(9131)
+ succeed("curl -sSf http://localhost:9131/metrics | grep -q 'varnish_up 1'")
'';
};
@@ -401,9 +479,11 @@ let
systemd.services.prometheus-wireguard-exporter.after = [ "wireguard-wg0.service" ];
};
exporterTest = ''
- waitForUnit("prometheus-wireguard-exporter.service");
- waitForOpenPort(9586);
- waitUntilSucceeds("curl -sSf http://localhost:9586/metrics | grep '${snakeoil.peer1.publicKey}'");
+ wait_for_unit("prometheus-wireguard-exporter.service")
+ wait_for_open_port(9586)
+ wait_until_succeeds(
+ "curl -sSf http://localhost:9586/metrics | grep '${snakeoil.peer1.publicKey}'"
+ )
'';
};
};
@@ -416,11 +496,13 @@ mapAttrs (exporter: testConfig: (makeTest {
} testConfig.metricProvider or {}];
testScript = ''
- ${"$"+exporter}->start();
- ${concatStringsSep " " (map (line: ''
- ${"$"+exporter}->${line};
- '') (splitString "\n" (removeSuffix "\n" testConfig.exporterTest)))}
- ${"$"+exporter}->shutdown();
+ ${exporter}.start()
+ ${concatStringsSep "\n" (map (line:
+ if (builtins.substring 0 1 line == " " || builtins.substring 0 1 line == ")")
+ then line
+ else "${exporter}.${line}"
+ ) (splitString "\n" (removeSuffix "\n" testConfig.exporterTest)))}
+ ${exporter}.shutdown()
'';
meta = with maintainers; {
diff --git a/nixos/tests/prometheus.nix b/nixos/tests/prometheus.nix
index 52f61046be3..8bfd0c131e6 100644
--- a/nixos/tests/prometheus.nix
+++ b/nixos/tests/prometheus.nix
@@ -31,7 +31,7 @@ let
};
};
-in import ./make-test.nix {
+in import ./make-test-python.nix {
name = "prometheus";
nodes = {
@@ -173,67 +173,73 @@ in import ./make-test.nix {
testScript = { nodes, ... } : ''
# Before starting the other machines we first make sure that our S3 service is online
# and has a bucket added for thanos:
- $s3->start;
- $s3->waitForUnit("minio.service");
- $s3->waitForOpenPort(${toString minioPort});
- $s3->succeed(
- "mc config host add minio " .
- "http://localhost:${toString minioPort} ${s3.accessKey} ${s3.secretKey} S3v4");
- $s3->succeed("mc mb minio/thanos-bucket");
+ s3.start()
+ s3.wait_for_unit("minio.service")
+ s3.wait_for_open_port(${toString minioPort})
+ s3.succeed(
+ "mc config host add minio "
+ + "http://localhost:${toString minioPort} "
+ + "${s3.accessKey} ${s3.secretKey} S3v4",
+ "mc mb minio/thanos-bucket",
+ )
# Now that s3 has started we can start the other machines:
- $prometheus->start;
- $query->start;
- $store->start;
+ for machine in prometheus, query, store:
+ machine.start()
# Check if prometheus responds to requests:
- $prometheus->waitForUnit("prometheus.service");
- $prometheus->waitForOpenPort(${toString queryPort});
- $prometheus->succeed("curl -s http://127.0.0.1:${toString queryPort}/metrics");
+ prometheus.wait_for_unit("prometheus.service")
+ prometheus.wait_for_open_port(${toString queryPort})
+ prometheus.succeed("curl -s http://127.0.0.1:${toString queryPort}/metrics")
# Let's test if pushing a metric to the pushgateway succeeds:
- $prometheus->waitForUnit("pushgateway.service");
- $prometheus->succeed(
- "echo 'some_metric 3.14' | " .
- "curl --data-binary \@- http://127.0.0.1:${toString pushgwPort}/metrics/job/some_job");
+ prometheus.wait_for_unit("pushgateway.service")
+ prometheus.succeed(
+ "echo 'some_metric 3.14' | "
+ + "curl --data-binary \@- "
+ + "http://127.0.0.1:${toString pushgwPort}/metrics/job/some_job"
+ )
# Now check whether that metric gets ingested by prometheus.
# Since we'll check for the metric several times on different machines
# we abstract the test using the following function:
# Function to check if the metric "some_metric" has been received and returns the correct value.
- local *Machine::waitForMetric = sub {
- my ($self) = @_;
- $self->waitUntilSucceeds(
- "curl -sf 'http://127.0.0.1:${toString queryPort}/api/v1/query?query=some_metric' " .
- "| jq '.data.result[0].value[1]' | grep '\"3.14\"'");
- };
+ def wait_for_metric(machine):
+ return machine.wait_until_succeeds(
+ "curl -sf 'http://127.0.0.1:${toString queryPort}/api/v1/query?query=some_metric' | "
+ + "jq '.data.result[0].value[1]' | grep '\"3.14\"'"
+ )
- $prometheus->waitForMetric;
+
+ wait_for_metric(prometheus)
# Let's test if the pushgateway persists metrics to the configured location.
- $prometheus->waitUntilSucceeds("test -e /var/lib/prometheus-pushgateway/metrics");
+ prometheus.wait_until_succeeds("test -e /var/lib/prometheus-pushgateway/metrics")
# Test thanos
- $prometheus->waitForUnit("thanos-sidecar.service");
+ prometheus.wait_for_unit("thanos-sidecar.service")
# Test if the Thanos query service can correctly retrieve the metric that was send above.
- $query->waitForUnit("thanos-query.service");
- $query->waitForMetric;
+ query.wait_for_unit("thanos-query.service")
+ wait_for_metric(query)
# Test if the Thanos sidecar has correctly uploaded its TSDB to S3, if the
# Thanos storage service has correctly downloaded it from S3 and if the Thanos
# query service running on $store can correctly retrieve the metric:
- $store->waitForUnit("thanos-store.service");
- $store->waitForMetric;
+ store.wait_for_unit("thanos-store.service")
+ wait_for_metric(store)
- $store->waitForUnit("thanos-compact.service");
+ store.wait_for_unit("thanos-compact.service")
# Test if the Thanos bucket command is able to retrieve blocks from the S3 bucket
# and check if the blocks have the correct labels:
- $store->succeed(
- "thanos bucket ls" .
- " --objstore.config-file=${nodes.store.config.services.thanos.store.objstore.config-file}" .
- " --output=json | jq .thanos.labels.some_label | grep 'required by thanos'");
+ store.succeed(
+ "thanos bucket ls "
+ + "--objstore.config-file=${nodes.store.config.services.thanos.store.objstore.config-file} "
+ + "--output=json | "
+ + "jq .thanos.labels.some_label | "
+ + "grep 'required by thanos'"
+ )
'';
}
diff --git a/nixos/tests/quake3.nix b/nixos/tests/quake3.nix
deleted file mode 100644
index 4253ce4a867..00000000000
--- a/nixos/tests/quake3.nix
+++ /dev/null
@@ -1,95 +0,0 @@
-import ./make-test.nix ({ pkgs, ...} :
-
-let
-
- # Build Quake with coverage instrumentation.
- overrides = pkgs:
- {
- quake3game = pkgs.quake3game.override (args: {
- stdenv = pkgs.stdenvAdapters.addCoverageInstrumentation args.stdenv;
- });
- };
-
- # Only allow the demo data to be used (only if it's unfreeRedistributable).
- unfreePredicate = pkg: with pkgs.lib; let
- allowPackageNames = [ "quake3-demodata" "quake3-pointrelease" ];
- allowLicenses = [ pkgs.lib.licenses.unfreeRedistributable ];
- in elem pkg.pname allowPackageNames &&
- elem (pkg.meta.license or null) allowLicenses;
-
-in
-
-rec {
- name = "quake3";
- meta = with pkgs.stdenv.lib.maintainers; {
- maintainers = [ domenkozar eelco ];
- };
-
- # TODO: lcov doesn't work atm
- #makeCoverageReport = true;
-
- client =
- { pkgs, ... }:
-
- { imports = [ ./common/x11.nix ];
- hardware.opengl.driSupport = true;
- environment.systemPackages = [ pkgs.quake3demo ];
- nixpkgs.config.packageOverrides = overrides;
- nixpkgs.config.allowUnfreePredicate = unfreePredicate;
- };
-
- nodes =
- { server =
- { pkgs, ... }:
-
- { systemd.services.quake3-server =
- { wantedBy = [ "multi-user.target" ];
- script =
- "${pkgs.quake3demo}/bin/quake3-server +set g_gametype 0 " +
- "+map q3dm7 +addbot grunt +addbot daemia 2> /tmp/log";
- };
- nixpkgs.config.packageOverrides = overrides;
- nixpkgs.config.allowUnfreePredicate = unfreePredicate;
- networking.firewall.allowedUDPPorts = [ 27960 ];
- };
-
- client1 = client;
- client2 = client;
- };
-
- testScript =
- ''
- startAll;
-
- $server->waitForUnit("quake3-server");
- $client1->waitForX;
- $client2->waitForX;
-
- $client1->execute("quake3 +set r_fullscreen 0 +set name Foo +connect server &");
- $client2->execute("quake3 +set r_fullscreen 0 +set name Bar +connect server &");
-
- $server->waitUntilSucceeds("grep -q 'Foo.*entered the game' /tmp/log");
- $server->waitUntilSucceeds("grep -q 'Bar.*entered the game' /tmp/log");
-
- $server->sleep(10); # wait for a while to get a nice screenshot
-
- $client1->block();
-
- $server->sleep(20);
-
- $client1->screenshot("screen1");
- $client2->screenshot("screen2");
-
- $client1->unblock();
-
- $server->sleep(10);
-
- $client1->screenshot("screen3");
- $client2->screenshot("screen4");
-
- $client1->shutdown();
- $client2->shutdown();
- $server->stopJob("quake3-server");
- '';
-
-})
diff --git a/nixos/tests/radarr.nix b/nixos/tests/radarr.nix
index 9bc5607ccd5..ed90025ac42 100644
--- a/nixos/tests/radarr.nix
+++ b/nixos/tests/radarr.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ lib, ... }:
+import ./make-test-python.nix ({ lib, ... }:
with lib;
@@ -11,8 +11,8 @@ with lib;
{ services.radarr.enable = true; };
testScript = ''
- $machine->waitForUnit('radarr.service');
- $machine->waitForOpenPort('7878');
- $machine->succeed("curl --fail http://localhost:7878/");
+ machine.wait_for_unit("radarr.service")
+ machine.wait_for_open_port("7878")
+ machine.succeed("curl --fail http://localhost:7878/")
'';
})
diff --git a/nixos/tests/redis.nix b/nixos/tests/redis.nix
index 325d93424dd..529965d7acd 100644
--- a/nixos/tests/redis.nix
+++ b/nixos/tests/redis.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, ...} : {
name = "redis";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ flokli ];
@@ -15,12 +15,10 @@ import ./make-test.nix ({ pkgs, ...} : {
};
testScript = ''
- startAll;
-
- $machine->waitForUnit("redis");
- $machine->waitForOpenPort("6379");
-
- $machine->succeed("redis-cli ping | grep PONG");
- $machine->succeed("redis-cli -s /run/redis/redis.sock ping | grep PONG");
+ start_all()
+ machine.wait_for_unit("redis")
+ machine.wait_for_open_port("6379")
+ machine.succeed("redis-cli ping | grep PONG")
+ machine.succeed("redis-cli -s /run/redis/redis.sock ping | grep PONG")
'';
})
diff --git a/nixos/tests/redmine.nix b/nixos/tests/redmine.nix
index 2d4df288b05..f0f4cbf6a21 100644
--- a/nixos/tests/redmine.nix
+++ b/nixos/tests/redmine.nix
@@ -64,18 +64,13 @@ let
};
in
{
- v3-mysql = mysqlTest pkgs.redmine // {
- name = "v3-mysql";
+ mysql = mysqlTest pkgs.redmine // {
+ name = "mysql";
meta.maintainers = [ maintainers.aanderse ];
};
- v4-mysql = mysqlTest pkgs.redmine_4 // {
- name = "v4-mysql";
- meta.maintainers = [ maintainers.aanderse ];
- };
-
- v4-pgsql = pgsqlTest pkgs.redmine_4 // {
- name = "v4-pgsql";
+ pgsql = pgsqlTest pkgs.redmine // {
+ name = "pgsql";
meta.maintainers = [ maintainers.aanderse ];
};
}
diff --git a/nixos/tests/roundcube.nix b/nixos/tests/roundcube.nix
index ed0ebd7dd19..1897b53e283 100644
--- a/nixos/tests/roundcube.nix
+++ b/nixos/tests/roundcube.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, ...} : {
name = "roundcube";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ globin ];
@@ -9,7 +9,7 @@ import ./make-test.nix ({ pkgs, ...} : {
services.roundcube = {
enable = true;
hostName = "roundcube";
- database.password = "notproduction";
+ database.password = "not production";
package = pkgs.roundcube.withPlugins (plugins: [ plugins.persistent_login ]);
plugins = [ "persistent_login" ];
};
@@ -21,10 +21,10 @@ import ./make-test.nix ({ pkgs, ...} : {
};
testScript = ''
- $roundcube->start;
- $roundcube->waitForUnit("postgresql.service");
- $roundcube->waitForUnit("phpfpm-roundcube.service");
- $roundcube->waitForUnit("nginx.service");
- $roundcube->succeed("curl -sSfL http://roundcube/ | grep 'Keep me logged in'");
+ roundcube.start
+ roundcube.wait_for_unit("postgresql.service")
+ roundcube.wait_for_unit("phpfpm-roundcube.service")
+ roundcube.wait_for_unit("nginx.service")
+ roundcube.succeed("curl -sSfL http://roundcube/ | grep 'Keep me logged in'")
'';
})
diff --git a/nixos/tests/rss2email.nix b/nixos/tests/rss2email.nix
index 492d47da9f5..d62207a417b 100644
--- a/nixos/tests/rss2email.nix
+++ b/nixos/tests/rss2email.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix {
+import ./make-test-python.nix {
name = "opensmtpd";
nodes = {
@@ -53,14 +53,14 @@ import ./make-test.nix {
};
testScript = ''
- startAll;
+ start_all()
- $server->waitForUnit("network-online.target");
- $server->waitForUnit("opensmtpd");
- $server->waitForUnit("dovecot2");
- $server->waitForUnit("nginx");
- $server->waitForUnit("rss2email");
+ server.wait_for_unit("network-online.target")
+ server.wait_for_unit("opensmtpd")
+ server.wait_for_unit("dovecot2")
+ server.wait_for_unit("nginx")
+ server.wait_for_unit("rss2email")
- $server->waitUntilSucceeds('check-mail-landed >&2');
+ server.wait_until_succeeds("check-mail-landed >&2")
'';
}
diff --git a/nixos/tests/rxe.nix b/nixos/tests/rxe.nix
index d0b53db8eeb..194a2e3d2b9 100644
--- a/nixos/tests/rxe.nix
+++ b/nixos/tests/rxe.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ ... } :
+import ./make-test-python.nix ({ ... } :
let
node = { pkgs, ... } : {
@@ -26,27 +26,21 @@ in {
testScript = ''
# Test if rxe interface comes up
- $server->waitForUnit("default.target");
- $server->succeed("systemctl status rxe.service");
- $server->succeed("ibv_devices | grep rxe0");
+ server.wait_for_unit("default.target")
+ server.succeed("systemctl status rxe.service")
+ server.succeed("ibv_devices | grep rxe0")
- $client->waitForUnit("default.target");
+ client.wait_for_unit("default.target")
- # ping pong test
- $server->succeed("screen -dmS rc_pingpong ibv_rc_pingpong -p 4800 -g0");
- $client->succeed("sleep 2; ibv_rc_pingpong -p 4800 -g0 server");
+ # ping pong tests
+ for proto in "rc", "uc", "ud", "srq":
+ server.succeed(
+ "screen -dmS {0}_pingpong ibv_{0}_pingpong -p 4800 -s 1024 -g0".format(proto)
+ )
+ client.succeed("sleep 2; ibv_{}_pingpong -p 4800 -s 1024 -g0 server".format(proto))
- $server->succeed("screen -dmS uc_pingpong ibv_uc_pingpong -p 4800 -g0");
- $client->succeed("sleep 2; ibv_uc_pingpong -p 4800 -g0 server");
-
- $server->succeed("screen -dmS ud_pingpong ibv_ud_pingpong -p 4800 -s 1024 -g0");
- $client->succeed("sleep 2; ibv_ud_pingpong -p 4800 -s 1024 -g0 server");
-
- $server->succeed("screen -dmS srq_pingpong ibv_srq_pingpong -p 4800 -g0");
- $client->succeed("sleep 2; ibv_srq_pingpong -p 4800 -g0 server");
-
- $server->succeed("screen -dmS rping rping -s -a server -C 10");
- $client->succeed("sleep 2; rping -c -a server -C 10");
+ server.succeed("screen -dmS rping rping -s -a server -C 10")
+ client.succeed("sleep 2; rping -c -a server -C 10")
'';
})
diff --git a/nixos/tests/samba.nix b/nixos/tests/samba.nix
index 2802e00a5b1..142269752b3 100644
--- a/nixos/tests/samba.nix
+++ b/nixos/tests/samba.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ... }:
+import ./make-test-python.nix ({ pkgs, ... }:
{
name = "samba";
@@ -36,12 +36,12 @@ import ./make-test.nix ({ pkgs, ... }:
testScript =
''
- $server->start;
- $server->waitForUnit("samba.target");
- $server->succeed("mkdir -p /public; echo bar > /public/foo");
+ server.start()
+ server.wait_for_unit("samba.target")
+ server.succeed("mkdir -p /public; echo bar > /public/foo")
- $client->start;
- $client->waitForUnit("remote-fs.target");
- $client->succeed("[[ \$(cat /public/foo) = bar ]]");
+ client.start()
+ client.wait_for_unit("remote-fs.target")
+ client.succeed("[[ $(cat /public/foo) = bar ]]")
'';
})
diff --git a/nixos/tests/sddm.nix b/nixos/tests/sddm.nix
index 678bcbeab20..4bdcd701dcf 100644
--- a/nixos/tests/sddm.nix
+++ b/nixos/tests/sddm.nix
@@ -3,7 +3,7 @@
pkgs ? import ../.. { inherit system config; }
}:
-with import ../lib/testing.nix { inherit system pkgs; };
+with import ../lib/testing-python.nix { inherit system pkgs; };
let
inherit (pkgs) lib;
@@ -26,13 +26,13 @@ let
testScript = { nodes, ... }: let
user = nodes.machine.config.users.users.alice;
in ''
- startAll;
- $machine->waitForText(qr/select your user/i);
- $machine->screenshot("sddm");
- $machine->sendChars("${user.password}\n");
- $machine->waitForFile("/home/alice/.Xauthority");
- $machine->succeed("xauth merge ~alice/.Xauthority");
- $machine->waitForWindow("^IceWM ");
+ start_all()
+ machine.wait_for_text("(?i)select your user")
+ machine.screenshot("sddm")
+ machine.send_chars("${user.password}\n")
+ machine.wait_for_file("${user.home}/.Xauthority")
+ machine.succeed("xauth merge ${user.home}/.Xauthority")
+ machine.wait_for_window("^IceWM ")
'';
};
@@ -57,11 +57,13 @@ let
services.xserver.desktopManager.default = "none";
};
- testScript = { ... }: ''
- startAll;
- $machine->waitForFile("/home/alice/.Xauthority");
- $machine->succeed("xauth merge ~alice/.Xauthority");
- $machine->waitForWindow("^IceWM ");
+ testScript = { nodes, ... }: let
+ user = nodes.machine.config.users.users.alice;
+ in ''
+ start_all()
+ machine.wait_for_file("${user.home}/.Xauthority")
+ machine.succeed("xauth merge ${user.home}/.Xauthority")
+ machine.wait_for_window("^IceWM ")
'';
};
};
diff --git a/nixos/tests/shiori.nix b/nixos/tests/shiori.nix
new file mode 100644
index 00000000000..a5771262c6f
--- /dev/null
+++ b/nixos/tests/shiori.nix
@@ -0,0 +1,81 @@
+import ./make-test-python.nix ({ pkgs, lib, ...}:
+
+{
+ name = "shiori";
+ meta.maintainers = with lib.maintainers; [ minijackson ];
+
+ machine =
+ { ... }:
+ { services.shiori.enable = true; };
+
+ testScript = let
+ authJSON = pkgs.writeText "auth.json" (builtins.toJSON {
+ username = "shiori";
+ password = "gopher";
+ remember = 1; # hour
+ owner = true;
+ });
+
+ insertBookmark = {
+ url = "http://example.org";
+ title = "Example Bookmark";
+ };
+
+ insertBookmarkJSON = pkgs.writeText "insertBookmark.json" (builtins.toJSON insertBookmark);
+ in ''
+ import json
+
+ machine.wait_for_unit("shiori.service")
+ machine.wait_for_open_port(8080)
+ machine.succeed("curl --fail http://localhost:8080/")
+ machine.succeed("curl --fail --location http://localhost:8080/ | grep -qi shiori")
+
+ with subtest("login"):
+ auth_json = machine.succeed(
+ "curl --fail --location http://localhost:8080/api/login "
+ "-X POST -H 'Content-Type:application/json' -d @${authJSON}"
+ )
+ auth_ret = json.loads(auth_json)
+ session_id = auth_ret["session"]
+
+ with subtest("bookmarks"):
+ with subtest("first use no bookmarks"):
+ bookmarks_json = machine.succeed(
+ (
+ "curl --fail --location http://localhost:8080/api/bookmarks "
+ "-H 'X-Session-Id:{}'"
+ ).format(session_id)
+ )
+
+ if json.loads(bookmarks_json)["bookmarks"] != []:
+ raise Exception("Shiori have a bookmark on first use")
+
+ with subtest("insert bookmark"):
+ machine.succeed(
+ (
+ "curl --fail --location http://localhost:8080/api/bookmarks "
+ "-X POST -H 'X-Session-Id:{}' "
+ "-H 'Content-Type:application/json' -d @${insertBookmarkJSON}"
+ ).format(session_id)
+ )
+
+ with subtest("get inserted bookmark"):
+ bookmarks_json = machine.succeed(
+ (
+ "curl --fail --location http://localhost:8080/api/bookmarks "
+ "-H 'X-Session-Id:{}'"
+ ).format(session_id)
+ )
+
+ bookmarks = json.loads(bookmarks_json)["bookmarks"]
+ if len(bookmarks) != 1:
+ raise Exception("Shiori didn't save the bookmark")
+
+ bookmark = bookmarks[0]
+ if (
+ bookmark["url"] != "${insertBookmark.url}"
+ or bookmark["title"] != "${insertBookmark.title}"
+ ):
+ raise Exception("Inserted bookmark doesn't have same URL or title")
+ '';
+})
diff --git a/nixos/tests/signal-desktop.nix b/nixos/tests/signal-desktop.nix
index 605b9c3e130..c746d46dc55 100644
--- a/nixos/tests/signal-desktop.nix
+++ b/nixos/tests/signal-desktop.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ...} :
+import ./make-test-python.nix ({ pkgs, ...} :
{
name = "signal-desktop";
@@ -24,14 +24,14 @@ import ./make-test.nix ({ pkgs, ...} :
testScript = { nodes, ... }: let
user = nodes.machine.config.users.users.alice;
in ''
- startAll;
- $machine->waitForX;
+ start_all()
+ machine.wait_for_x()
# start signal desktop
- $machine->execute("su - alice -c signal-desktop &");
+ machine.execute("su - alice -c signal-desktop &")
# wait for the "Link your phone to Signal Desktop" message
- $machine->waitForText(qr/Link your phone to Signal Desktop/);
- $machine->screenshot("signal_desktop");
+ machine.wait_for_text("Link your phone to Signal Desktop")
+ machine.screenshot("signal_desktop")
'';
})
diff --git a/nixos/tests/simple.nix b/nixos/tests/simple.nix
index 84c5621d962..3810a2cd3a5 100644
--- a/nixos/tests/simple.nix
+++ b/nixos/tests/simple.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, ...} : {
name = "simple";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ eelco ];
@@ -10,8 +10,8 @@ import ./make-test.nix ({ pkgs, ...} : {
testScript =
''
- startAll;
- $machine->waitForUnit("multi-user.target");
- $machine->shutdown;
+ start_all()
+ machine.wait_for_unit("multi-user.target")
+ machine.shutdown()
'';
})
diff --git a/nixos/tests/slim.nix b/nixos/tests/slim.nix
deleted file mode 100644
index 42c87dfa039..00000000000
--- a/nixos/tests/slim.nix
+++ /dev/null
@@ -1,66 +0,0 @@
-import ./make-test.nix ({ pkgs, ...} : {
- name = "slim";
-
- meta = with pkgs.stdenv.lib.maintainers; {
- maintainers = [ aszlig ];
- };
-
- machine = { pkgs, ... }: {
- imports = [ ./common/user-account.nix ];
- services.xserver.enable = true;
- services.xserver.windowManager.default = "icewm";
- services.xserver.windowManager.icewm.enable = true;
- services.xserver.desktopManager.default = "none";
- services.xserver.displayManager.slim = {
- enable = true;
-
- # Use a custom theme in order to get best OCR results
- theme = pkgs.runCommand "slim-theme-ocr" {
- nativeBuildInputs = [ pkgs.imagemagick ];
- } ''
- mkdir "$out"
- convert -size 1x1 xc:white "$out/background.jpg"
- convert -size 200x100 xc:white "$out/panel.jpg"
- cat > "$out/slim.theme" <waitForText(qr/Username:/);
- $machine->sendChars("${user.name}\n");
- $machine->waitForText(qr/Password:/);
- $machine->sendChars("${user.password}\n");
-
- $machine->waitForFile('${user.home}/.Xauthority');
- $machine->succeed('xauth merge ${user.home}/.Xauthority');
- $machine->waitForWindow('^IceWM ');
-
- # Make sure SLiM doesn't create a log file
- $machine->fail('test -e /var/log/slim.log');
- '';
-})
diff --git a/nixos/tests/slurm.nix b/nixos/tests/slurm.nix
index 4c2cd3c3d26..17527378cf0 100644
--- a/nixos/tests/slurm.nix
+++ b/nixos/tests/slurm.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ lib, ... }:
+import ./make-test-python.nix ({ lib, ... }:
let
mungekey = "mungeverryweakkeybuteasytointegratoinatest";
@@ -54,10 +54,15 @@ in {
networking.firewall.enable = false;
services.slurm.dbdserver = {
enable = true;
+ storagePass = "password123";
};
services.mysql = {
enable = true;
- package = pkgs.mysql;
+ package = pkgs.mariadb;
+ initialScript = pkgs.writeText "mysql-init.sql" ''
+ CREATE USER 'slurm'@'localhost' IDENTIFIED BY 'password123';
+ GRANT ALL PRIVILEGES ON slurm_acct_db.* TO 'slurm'@'localhost';
+ '';
ensureDatabases = [ "slurm_acct_db" ];
ensureUsers = [{
ensurePermissions = { "slurm_acct_db.*" = "ALL PRIVILEGES"; };
@@ -80,63 +85,57 @@ in {
testScript =
''
- startAll;
+ start_all()
# Set up authentification across the cluster
- foreach my $node (($submit,$control,$dbd,$node1,$node2,$node3))
- {
- $node->waitForUnit("default.target");
+ for node in [submit, control, dbd, node1, node2, node3]:
- $node->succeed("mkdir /etc/munge");
- $node->succeed("echo '${mungekey}' > /etc/munge/munge.key");
- $node->succeed("chmod 0400 /etc/munge/munge.key");
- $node->succeed("chown munge:munge /etc/munge/munge.key");
- $node->succeed("systemctl restart munged");
+ node.wait_for_unit("default.target")
+
+ node.succeed("mkdir /etc/munge")
+ node.succeed(
+ "echo '${mungekey}' > /etc/munge/munge.key"
+ )
+ node.succeed("chmod 0400 /etc/munge/munge.key")
+ node.succeed("chown munge:munge /etc/munge/munge.key")
+ node.succeed("systemctl restart munged")
+
+ node.wait_for_unit("munged")
- $node->waitForUnit("munged");
- };
# Restart the services since they have probably failed due to the munge init
# failure
- subtest "can_start_slurmdbd", sub {
- $dbd->succeed("systemctl restart slurmdbd");
- $dbd->waitForUnit("slurmdbd.service");
- $dbd->waitForOpenPort(6819);
- };
+ with subtest("can_start_slurmdbd"):
+ dbd.succeed("systemctl restart slurmdbd")
+ dbd.wait_for_unit("slurmdbd.service")
+ dbd.wait_for_open_port(6819)
# there needs to be an entry for the current
# cluster in the database before slurmctld is restarted
- subtest "add_account", sub {
- $control->succeed("sacctmgr -i add cluster default");
- # check for cluster entry
- $control->succeed("sacctmgr list cluster | awk '{ print \$1 }' | grep default");
- };
+ with subtest("add_account"):
+ control.succeed("sacctmgr -i add cluster default")
+ # check for cluster entry
+ control.succeed("sacctmgr list cluster | awk '{ print $1 }' | grep default")
- subtest "can_start_slurmctld", sub {
- $control->succeed("systemctl restart slurmctld");
- $control->waitForUnit("slurmctld.service");
- };
+ with subtest("can_start_slurmctld"):
+ control.succeed("systemctl restart slurmctld")
+ control.waitForUnit("slurmctld.service")
- subtest "can_start_slurmd", sub {
- foreach my $node (($node1,$node2,$node3))
- {
- $node->succeed("systemctl restart slurmd.service");
- $node->waitForUnit("slurmd");
- }
- };
+ with subtest("can_start_slurmd"):
+ for node in [node1, node2, node3]:
+ node.succeed("systemctl restart slurmd.service")
+ node.wait_for_unit("slurmd")
# Test that the cluster works and can distribute jobs;
- subtest "run_distributed_command", sub {
- # Run `hostname` on 3 nodes of the partition (so on all the 3 nodes).
- # The output must contain the 3 different names
- $submit->succeed("srun -N 3 hostname | sort | uniq | wc -l | xargs test 3 -eq");
- };
+ with subtest("run_distributed_command"):
+ # Run `hostname` on 3 nodes of the partition (so on all the 3 nodes).
+ # The output must contain the 3 different names
+ submit.succeed("srun -N 3 hostname | sort | uniq | wc -l | xargs test 3 -eq")
- subtest "check_slurm_dbd", sub {
- # find the srun job from above in the database
- sleep 5;
- $control->succeed("sacct | grep hostname");
- };
+ with subtest("check_slurm_dbd"):
+ # find the srun job from above in the database
+ control.succeed("sleep 5")
+ control.succeed("sacct | grep hostname")
'';
})
diff --git a/nixos/tests/smokeping.nix b/nixos/tests/smokeping.nix
index 07d22805112..4f8f0fcc9fe 100644
--- a/nixos/tests/smokeping.nix
+++ b/nixos/tests/smokeping.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, ...} : {
name = "smokeping";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ cransom ];
@@ -22,12 +22,12 @@ import ./make-test.nix ({ pkgs, ...} : {
};
testScript = ''
- startAll;
- $sm->waitForUnit("smokeping");
- $sm->waitForUnit("thttpd");
- $sm->waitForFile("/var/lib/smokeping/data/Local/LocalMachine.rrd");
- $sm->succeed("curl -s -f localhost:8081/smokeping.fcgi?target=Local");
- $sm->succeed("ls /var/lib/smokeping/cache/Local/LocalMachine_mini.png");
- $sm->succeed("ls /var/lib/smokeping/cache/index.html");
+ start_all()
+ sm.wait_for_unit("smokeping")
+ sm.wait_for_unit("thttpd")
+ sm.wait_for_file("/var/lib/smokeping/data/Local/LocalMachine.rrd")
+ sm.succeed("curl -s -f localhost:8081/smokeping.fcgi?target=Local")
+ sm.succeed("ls /var/lib/smokeping/cache/Local/LocalMachine_mini.png")
+ sm.succeed("ls /var/lib/smokeping/cache/index.html")
'';
})
diff --git a/nixos/tests/snapper.nix b/nixos/tests/snapper.nix
index 74ec22fd349..018102d7f64 100644
--- a/nixos/tests/snapper.nix
+++ b/nixos/tests/snapper.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ ... }:
+import ./make-test-python.nix ({ ... }:
{
name = "snapper";
@@ -20,24 +20,16 @@ import ./make-test.nix ({ ... }:
};
testScript = ''
- $machine->succeed("btrfs subvolume create /home/.snapshots");
-
- $machine->succeed("snapper -c home list");
-
- $machine->succeed("snapper -c home create --description empty");
-
- $machine->succeed("echo test > /home/file");
- $machine->succeed("snapper -c home create --description file");
-
- $machine->succeed("snapper -c home status 1..2");
-
- $machine->succeed("snapper -c home undochange 1..2");
- $machine->fail("ls /home/file");
-
- $machine->succeed("snapper -c home delete 2");
-
- $machine->succeed("systemctl --wait start snapper-timeline.service");
-
- $machine->succeed("systemctl --wait start snapper-cleanup.service");
+ machine.succeed("btrfs subvolume create /home/.snapshots")
+ machine.succeed("snapper -c home list")
+ machine.succeed("snapper -c home create --description empty")
+ machine.succeed("echo test > /home/file")
+ machine.succeed("snapper -c home create --description file")
+ machine.succeed("snapper -c home status 1..2")
+ machine.succeed("snapper -c home undochange 1..2")
+ machine.fail("ls /home/file")
+ machine.succeed("snapper -c home delete 2")
+ machine.succeed("systemctl --wait start snapper-timeline.service")
+ machine.succeed("systemctl --wait start snapper-cleanup.service")
'';
})
diff --git a/nixos/tests/spike.nix b/nixos/tests/spike.nix
new file mode 100644
index 00000000000..47763e75ffa
--- /dev/null
+++ b/nixos/tests/spike.nix
@@ -0,0 +1,22 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+
+let
+ riscvPkgs = import ../.. { crossSystem = pkgs.stdenv.lib.systems.examples.riscv64-embedded; };
+in
+{
+ name = "spike";
+ meta = with pkgs.stdenv.lib.maintainers; { maintainers = [ blitz ]; };
+
+ machine = { pkgs, lib, ... }: {
+ environment.systemPackages = [ pkgs.spike riscvPkgs.riscv-pk riscvPkgs.hello ];
+ };
+
+ # Run the RISC-V hello applications using the proxy kernel on the
+ # Spike emulator and see whether we get the expected output.
+ testScript =
+ ''
+ machine.wait_for_unit("multi-user.target")
+ output = machine.succeed("spike -m64 $(which pk) $(which hello)")
+ assert output == "Hello, world!\n"
+ '';
+})
diff --git a/nixos/tests/strongswan-swanctl.nix b/nixos/tests/strongswan-swanctl.nix
index 9bab9349ea7..152c0d61c54 100644
--- a/nixos/tests/strongswan-swanctl.nix
+++ b/nixos/tests/strongswan-swanctl.nix
@@ -16,7 +16,7 @@
# See the NixOS manual for how to run this test:
# https://nixos.org/nixos/manual/index.html#sec-running-nixos-tests-interactively
-import ./make-test.nix ({ pkgs, ...} :
+import ./make-test-python.nix ({ pkgs, ...} :
let
allowESP = "iptables --insert INPUT --protocol ESP --jump ACCEPT";
@@ -142,7 +142,7 @@ in {
};
testScript = ''
- startAll();
- $carol->waitUntilSucceeds("ping -c 1 alice");
+ start_all()
+ carol.wait_until_succeeds("ping -c 1 alice")
'';
})
diff --git a/nixos/tests/sudo.nix b/nixos/tests/sudo.nix
index fc16b99cc19..5bbec3d5726 100644
--- a/nixos/tests/sudo.nix
+++ b/nixos/tests/sudo.nix
@@ -4,7 +4,7 @@ let
password = "helloworld";
in
- import ./make-test.nix ({ pkgs, ...} : {
+ import ./make-test-python.nix ({ pkgs, ...} : {
name = "sudo";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ lschuermann ];
@@ -50,44 +50,34 @@ in
testScript =
''
- subtest "users in wheel group should have passwordless sudo", sub {
- $machine->succeed("su - test0 -c \"sudo -u root true\"");
- };
+ with subtest("users in wheel group should have passwordless sudo"):
+ machine.succeed('su - test0 -c "sudo -u root true"')
- subtest "test1 user should have sudo with password", sub {
- $machine->succeed("su - test1 -c \"echo ${password} | sudo -S -u root true\"");
- };
+ with subtest("test1 user should have sudo with password"):
+ machine.succeed('su - test1 -c "echo ${password} | sudo -S -u root true"')
- subtest "test1 user should not be able to use sudo without password", sub {
- $machine->fail("su - test1 -c \"sudo -n -u root true\"");
- };
+ with subtest("test1 user should not be able to use sudo without password"):
+ machine.fail('su - test1 -c "sudo -n -u root true"')
- subtest "users in group 'foobar' should be able to use sudo with password", sub {
- $machine->succeed("sudo -u test2 echo ${password} | sudo -S -u root true");
- };
+ with subtest("users in group 'foobar' should be able to use sudo with password"):
+ machine.succeed("sudo -u test2 echo ${password} | sudo -S -u root true")
- subtest "users in group 'barfoo' should be able to use sudo without password", sub {
- $machine->succeed("sudo -u test3 sudo -n -u root true");
- };
+ with subtest("users in group 'barfoo' should be able to use sudo without password"):
+ machine.succeed("sudo -u test3 sudo -n -u root true")
- subtest "users in group 'baz' (GID 1337) should be able to use sudo without password", sub {
- $machine->succeed("sudo -u test4 sudo -n -u root echo true");
- };
+ with subtest("users in group 'baz' (GID 1337)"):
+ machine.succeed("sudo -u test4 sudo -n -u root echo true")
- subtest "test5 user should be able to run commands under test1", sub {
- $machine->succeed("sudo -u test5 sudo -n -u test1 true");
- };
+ with subtest("test5 user should be able to run commands under test1"):
+ machine.succeed("sudo -u test5 sudo -n -u test1 true")
- subtest "test5 user should not be able to run commands under root", sub {
- $machine->fail("sudo -u test5 sudo -n -u root true");
- };
+ with subtest("test5 user should not be able to run commands under root"):
+ machine.fail("sudo -u test5 sudo -n -u root true")
- subtest "test5 user should be able to keep his environment", sub {
- $machine->succeed("sudo -u test5 sudo -n -E -u test1 true");
- };
+ with subtest("test5 user should be able to keep his environment"):
+ machine.succeed("sudo -u test5 sudo -n -E -u test1 true")
- subtest "users in group 'barfoo' should not be able to keep their environment", sub {
- $machine->fail("sudo -u test3 sudo -n -E -u root true");
- };
+ with subtest("users in group 'barfoo' should not be able to keep their environment"):
+ machine.fail("sudo -u test3 sudo -n -E -u root true")
'';
})
diff --git a/nixos/tests/systemd-networkd-wireguard.nix b/nixos/tests/systemd-networkd-wireguard.nix
index f1ce1e791ce..b83e9c7ce19 100644
--- a/nixos/tests/systemd-networkd-wireguard.nix
+++ b/nixos/tests/systemd-networkd-wireguard.nix
@@ -2,6 +2,7 @@ let generateNodeConf = { lib, pkgs, config, privkpath, pubk, peerId, nodeId, ...
imports = [ common/user-account.nix ];
systemd.services.systemd-networkd.environment.SYSTEMD_LOG_LEVEL = "debug";
networking.useNetworkd = true;
+ networking.useDHCP = false;
networking.firewall.enable = false;
virtualisation.vlans = [ 1 ];
environment.systemPackages = with pkgs; [ wireguard-tools ];
@@ -44,7 +45,7 @@ let generateNodeConf = { lib, pkgs, config, privkpath, pubk, peerId, nodeId, ...
};
};
};
-in import ./make-test.nix ({pkgs, ... }: {
+in import ./make-test-python.nix ({pkgs, ... }: {
name = "networkd-wireguard";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ ninjatrappeur ];
@@ -69,12 +70,12 @@ in import ./make-test.nix ({pkgs, ... }: {
in generateNodeConf (attrs // localConf);
};
testScript = ''
- startAll;
- $node1->waitForUnit('systemd-networkd-wait-online.service');
- $node2->waitForUnit('systemd-networkd-wait-online.service');
- $node1->succeed('ping -c 5 10.0.0.2');
- $node2->succeed('ping -c 5 10.0.0.1');
+ start_all()
+ node1.wait_for_unit("systemd-networkd-wait-online.service")
+ node2.wait_for_unit("systemd-networkd-wait-online.service")
+ node1.succeed("ping -c 5 10.0.0.2")
+ node2.succeed("ping -c 5 10.0.0.1")
# Is the fwmark set?
- $node2->succeed('wg | grep -q 42');
+ node2.succeed("wg | grep -q 42")
'';
})
diff --git a/nixos/tests/systemd-nspawn.nix b/nixos/tests/systemd-nspawn.nix
new file mode 100644
index 00000000000..5bf55060d2e
--- /dev/null
+++ b/nixos/tests/systemd-nspawn.nix
@@ -0,0 +1,60 @@
+import ./make-test-python.nix ({pkgs, lib, ...}:
+let
+ gpgKeyring = (pkgs.runCommand "gpg-keyring" { buildInputs = [ pkgs.gnupg ]; } ''
+ mkdir -p $out
+ export GNUPGHOME=$out
+ cat > foo < $out/pubkey.gpg
+ '');
+
+ nspawnImages = (pkgs.runCommand "localhost" { buildInputs = [ pkgs.coreutils pkgs.gnupg ]; } ''
+ mkdir -p $out
+ cd $out
+ dd if=/dev/urandom of=$out/testimage.raw bs=$((1024*1024+7)) count=5
+ sha256sum testimage.raw > SHA256SUMS
+ export GNUPGHOME="$(mktemp -d)"
+ cp -R ${gpgKeyring}/* $GNUPGHOME
+ gpg --batch --sign --detach-sign --output SHA256SUMS.gpg SHA256SUMS
+ '');
+in {
+ name = "systemd-nspawn";
+
+ nodes = {
+ server = { pkgs, ... }: {
+ networking.firewall.allowedTCPPorts = [ 80 ];
+ services.nginx = {
+ enable = true;
+ virtualHosts."server".root = nspawnImages;
+ };
+ };
+ client = { pkgs, ... }: {
+ environment.etc."systemd/import-pubring.gpg".source = "${gpgKeyring}/pubkey.gpg";
+ };
+ };
+
+ testScript = ''
+ start_all()
+
+ server.wait_for_unit("nginx.service")
+ client.wait_for_unit("network-online.target")
+ client.succeed("machinectl pull-raw --verify=signature http://server/testimage.raw")
+ client.succeed(
+ "cmp /var/lib/machines/testimage.raw ${nspawnImages}/testimage.raw"
+ )
+ '';
+})
diff --git a/nixos/tests/telegraf.nix b/nixos/tests/telegraf.nix
index 6776f8d8c37..73f741b1135 100644
--- a/nixos/tests/telegraf.nix
+++ b/nixos/tests/telegraf.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, ...} : {
name = "telegraf";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ mic92 ];
@@ -22,9 +22,9 @@ import ./make-test.nix ({ pkgs, ...} : {
};
testScript = ''
- startAll;
+ start_all()
- $machine->waitForUnit("telegraf.service");
- $machine->waitUntilSucceeds("grep -q example /tmp/metrics.out");
+ machine.wait_for_unit("telegraf.service")
+ machine.wait_until_succeeds("grep -q example /tmp/metrics.out")
'';
})
diff --git a/nixos/tests/tinydns.nix b/nixos/tests/tinydns.nix
index cb7ee0c5fb5..c7740d5ade3 100644
--- a/nixos/tests/tinydns.nix
+++ b/nixos/tests/tinydns.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ lib, ...} : {
+import ./make-test-python.nix ({ lib, ...} : {
name = "tinydns";
meta = {
maintainers = with lib.maintainers; [ basvandijk ];
@@ -19,8 +19,8 @@ import ./make-test.nix ({ lib, ...} : {
};
};
testScript = ''
- $nameserver->start;
- $nameserver->waitForUnit("tinydns.service");
- $nameserver->succeed("host bla.foo.bar | grep '1\.2\.3\.4'");
+ nameserver.start()
+ nameserver.wait_for_unit("tinydns.service")
+ nameserver.succeed("host bla.foo.bar | grep '1\.2\.3\.4'")
'';
})
diff --git a/nixos/tests/tor.nix b/nixos/tests/tor.nix
index 0cb44ddff24..ad07231557c 100644
--- a/nixos/tests/tor.nix
+++ b/nixos/tests/tor.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ lib, ... }: with lib;
+import ./make-test-python.nix ({ lib, ... }: with lib;
rec {
name = "tor";
@@ -21,8 +21,10 @@ rec {
};
testScript = ''
- $client->waitForUnit("tor.service");
- $client->waitForOpenPort(9051);
- $client->succeed("echo GETINFO version | nc 127.0.0.1 9051") =~ /514 Authentication required./ or die;
+ client.wait_for_unit("tor.service")
+ client.wait_for_open_port(9051)
+ assert "514 Authentication required." in client.succeed(
+ "echo GETINFO version | nc 127.0.0.1 9051"
+ )
'';
})
diff --git a/nixos/tests/trac.nix b/nixos/tests/trac.nix
new file mode 100644
index 00000000000..7953f8d41f7
--- /dev/null
+++ b/nixos/tests/trac.nix
@@ -0,0 +1,19 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+ name = "trac";
+ meta = with pkgs.stdenv.lib.maintainers; {
+ maintainers = [ mmahut ];
+ };
+
+ nodes = {
+ machine = { ... }: {
+ services.trac.enable = true;
+ };
+ };
+
+ testScript = ''
+ start_all()
+ machine.wait_for_unit("trac.service")
+ machine.wait_for_open_port(8000)
+ machine.wait_until_succeeds("curl -L http://localhost:8000/ | grep 'Trac Powered'")
+ '';
+})
diff --git a/nixos/tests/transmission.nix b/nixos/tests/transmission.nix
index f1c238730eb..f4f2186be1f 100644
--- a/nixos/tests/transmission.nix
+++ b/nixos/tests/transmission.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, ...} : {
name = "transmission";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ coconnor ];
@@ -14,8 +14,8 @@ import ./make-test.nix ({ pkgs, ...} : {
testScript =
''
- startAll;
- $machine->waitForUnit("transmission");
- $machine->shutdown;
+ start_all()
+ machine.wait_for_unit("transmission")
+ machine.shutdown()
'';
})
diff --git a/nixos/tests/trezord.nix b/nixos/tests/trezord.nix
index 1c85bf53934..8d908a52249 100644
--- a/nixos/tests/trezord.nix
+++ b/nixos/tests/trezord.nix
@@ -1,7 +1,7 @@
-import ./make-test.nix ({ pkgs, ... }: {
+import ./make-test-python.nix ({ pkgs, ... }: {
name = "trezord";
meta = with pkgs.stdenv.lib.maintainers; {
- maintainers = [ mmahut ];
+ maintainers = [ mmahut "1000101" ];
};
nodes = {
@@ -12,9 +12,9 @@ import ./make-test.nix ({ pkgs, ... }: {
};
testScript = ''
- startAll;
- $machine->waitForUnit("trezord.service");
- $machine->waitForOpenPort(21325);
- $machine->waitUntilSucceeds("curl -L http://localhost:21325/status/ | grep Version");
+ start_all()
+ machine.wait_for_unit("trezord.service")
+ machine.wait_for_open_port(21325)
+ machine.wait_until_succeeds("curl -L http://localhost:21325/status/ | grep Version")
'';
})
diff --git a/nixos/tests/trickster.nix b/nixos/tests/trickster.nix
new file mode 100644
index 00000000000..e2ca00980d5
--- /dev/null
+++ b/nixos/tests/trickster.nix
@@ -0,0 +1,37 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+ name = "trickster";
+ meta = with pkgs.stdenv.lib.maintainers; {
+ maintainers = [ "1000101" ];
+ };
+
+ nodes = {
+ prometheus = { ... }: {
+ services.prometheus.enable = true;
+ networking.firewall.allowedTCPPorts = [ 9090 ];
+ };
+ trickster = { ... }: {
+ services.trickster.enable = true;
+ };
+ };
+
+ testScript = ''
+ start_all()
+ prometheus.wait_for_unit("prometheus.service")
+ prometheus.wait_for_open_port(9090)
+ prometheus.wait_until_succeeds(
+ "curl -L http://localhost:9090/metrics | grep 'promhttp_metric_handler_requests_total{code=\"500\"} 0'"
+ )
+ trickster.wait_for_unit("trickster.service")
+ trickster.wait_for_open_port(8082)
+ trickster.wait_for_open_port(9090)
+ trickster.wait_until_succeeds(
+ "curl -L http://localhost:8082/metrics | grep 'promhttp_metric_handler_requests_total{code=\"500\"} 0'"
+ )
+ trickster.wait_until_succeeds(
+ "curl -L http://prometheus:9090/metrics | grep 'promhttp_metric_handler_requests_total{code=\"500\"} 0'"
+ )
+ trickster.wait_until_succeeds(
+ "curl -L http://localhost:9090/metrics | grep 'promhttp_metric_handler_requests_total{code=\"500\"} 0'"
+ )
+ '';
+})
\ No newline at end of file
diff --git a/nixos/tests/udisks2.nix b/nixos/tests/udisks2.nix
index dcf869908d8..0cbfa0c4c7b 100644
--- a/nixos/tests/udisks2.nix
+++ b/nixos/tests/udisks2.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ... }:
+import ./make-test-python.nix ({ pkgs, ... }:
let
@@ -30,32 +30,40 @@ in
testScript =
''
- my $stick = $machine->stateDir . "/usbstick.img";
- system("xz -d < ${stick} > $stick") == 0 or die;
+ import lzma
- $machine->succeed("udisksctl info -b /dev/vda >&2");
- $machine->fail("udisksctl info -b /dev/sda1");
+ with lzma.open(
+ "${stick}"
+ ) as data, open(machine.state_dir + "/usbstick.img", "wb") as stick:
+ stick.write(data.read())
+
+ machine.succeed("udisksctl info -b /dev/vda >&2")
+ machine.fail("udisksctl info -b /dev/sda1")
# Attach a USB stick and wait for it to show up.
- $machine->sendMonitorCommand("drive_add 0 id=stick,if=none,file=$stick,format=raw");
- $machine->sendMonitorCommand("device_add usb-storage,id=stick,drive=stick");
- $machine->waitUntilSucceeds("udisksctl info -b /dev/sda1");
- $machine->succeed("udisksctl info -b /dev/sda1 | grep 'IdLabel:.*USBSTICK'");
+ machine.send_monitor_command(
+ f"drive_add 0 id=stick,if=none,file={stick.name},format=raw"
+ )
+ machine.send_monitor_command("device_add usb-storage,id=stick,drive=stick")
+ machine.wait_until_succeeds("udisksctl info -b /dev/sda1")
+ machine.succeed("udisksctl info -b /dev/sda1 | grep 'IdLabel:.*USBSTICK'")
# Mount the stick as a non-root user and do some stuff with it.
- $machine->succeed("su - alice -c 'udisksctl info -b /dev/sda1'");
- $machine->succeed("su - alice -c 'udisksctl mount -b /dev/sda1'");
- $machine->succeed("su - alice -c 'cat /run/media/alice/USBSTICK/test.txt'") =~ /Hello World/ or die;
- $machine->succeed("su - alice -c 'echo foo > /run/media/alice/USBSTICK/bar.txt'");
+ machine.succeed("su - alice -c 'udisksctl info -b /dev/sda1'")
+ machine.succeed("su - alice -c 'udisksctl mount -b /dev/sda1'")
+ machine.succeed(
+ "su - alice -c 'cat /run/media/alice/USBSTICK/test.txt' | grep -q 'Hello World'"
+ )
+ machine.succeed("su - alice -c 'echo foo > /run/media/alice/USBSTICK/bar.txt'")
# Unmounting the stick should make the mountpoint disappear.
- $machine->succeed("su - alice -c 'udisksctl unmount -b /dev/sda1'");
- $machine->fail("[ -d /run/media/alice/USBSTICK ]");
+ machine.succeed("su - alice -c 'udisksctl unmount -b /dev/sda1'")
+ machine.fail("[ -d /run/media/alice/USBSTICK ]")
# Remove the USB stick.
- $machine->sendMonitorCommand("device_del stick");
- $machine->waitUntilFails("udisksctl info -b /dev/sda1");
- $machine->fail("[ -e /dev/sda ]");
+ machine.send_monitor_command("device_del stick")
+ machine.wait_until_fails("udisksctl info -b /dev/sda1")
+ machine.fail("[ -e /dev/sda ]")
'';
})
diff --git a/nixos/tests/upnp.nix b/nixos/tests/upnp.nix
index 98344aee3ef..d2e7fdd4fbe 100644
--- a/nixos/tests/upnp.nix
+++ b/nixos/tests/upnp.nix
@@ -5,7 +5,7 @@
# this succeeds an external client will try to connect to the port
# mapping.
-import ./make-test.nix ({ pkgs, ... }:
+import ./make-test-python.nix ({ pkgs, ... }:
let
internalRouterAddress = "192.168.3.1";
@@ -75,20 +75,20 @@ in
testScript =
{ nodes, ... }:
''
- startAll;
+ start_all()
# Wait for network and miniupnpd.
- $router->waitForUnit("network-online.target");
- # $router->waitForUnit("nat");
- $router->waitForUnit("firewall.service");
- $router->waitForUnit("miniupnpd");
+ router.wait_for_unit("network-online.target")
+ # $router.wait_for_unit("nat")
+ router.wait_for_unit("firewall.service")
+ router.wait_for_unit("miniupnpd")
- $client1->waitForUnit("network-online.target");
+ client1.wait_for_unit("network-online.target")
- $client1->succeed("upnpc -a ${internalClient1Address} 9000 9000 TCP");
+ client1.succeed("upnpc -a ${internalClient1Address} 9000 9000 TCP")
- $client1->waitForUnit("httpd");
- $client2->waitUntilSucceeds("curl http://${externalRouterAddress}:9000/");
+ client1.wait_for_unit("httpd")
+ client2.wait_until_succeeds("curl http://${externalRouterAddress}:9000/")
'';
})
diff --git a/nixos/tests/uwsgi.nix b/nixos/tests/uwsgi.nix
index afc03e74ed7..78a87147f55 100644
--- a/nixos/tests/uwsgi.nix
+++ b/nixos/tests/uwsgi.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ... }:
+import ./make-test-python.nix ({ pkgs, ... }:
{
name = "uwsgi";
meta = with pkgs.stdenv.lib.maintainers; {
@@ -30,9 +30,9 @@ import ./make-test.nix ({ pkgs, ... }:
testScript =
''
- $machine->waitForUnit('multi-user.target');
- $machine->waitForUnit('uwsgi.service');
- $machine->waitForOpenPort(8000);
- $machine->succeed('curl -v 127.0.0.1:8000 | grep "Hello World!"');
+ machine.wait_for_unit("multi-user.target")
+ machine.wait_for_unit("uwsgi.service")
+ machine.wait_for_open_port(8000)
+ assert "Hello World" in machine.succeed("curl -v 127.0.0.1:8000")
'';
})
diff --git a/nixos/tests/vault.nix b/nixos/tests/vault.nix
index caf0cbb2abf..ac8cf0703da 100644
--- a/nixos/tests/vault.nix
+++ b/nixos/tests/vault.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ... }:
+import ./make-test-python.nix ({ pkgs, ... }:
{
name = "vault";
meta = with pkgs.stdenv.lib.maintainers; {
@@ -12,12 +12,12 @@ import ./make-test.nix ({ pkgs, ... }:
testScript =
''
- startAll;
+ start_all()
- $machine->waitForUnit('multi-user.target');
- $machine->waitForUnit('vault.service');
- $machine->waitForOpenPort(8200);
- $machine->succeed('vault operator init');
- $machine->succeed('vault status | grep Sealed | grep true');
+ machine.wait_for_unit("multi-user.target")
+ machine.wait_for_unit("vault.service")
+ machine.wait_for_open_port(8200)
+ machine.succeed("vault operator init")
+ machine.succeed("vault status | grep Sealed | grep true")
'';
})
diff --git a/nixos/tests/wireguard/default.nix b/nixos/tests/wireguard/default.nix
index b0797b96323..8206823a918 100644
--- a/nixos/tests/wireguard/default.nix
+++ b/nixos/tests/wireguard/default.nix
@@ -2,7 +2,7 @@ let
wg-snakeoil-keys = import ./snakeoil-keys.nix;
in
-import ../make-test.nix ({ pkgs, ...} : {
+import ../make-test-python.nix ({ pkgs, ...} : {
name = "wireguard";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ ma27 ];
@@ -86,12 +86,12 @@ import ../make-test.nix ({ pkgs, ...} : {
};
testScript = ''
- startAll;
+ start_all()
- $peer0->waitForUnit("wireguard-wg0.service");
- $peer1->waitForUnit("wireguard-wg0.service");
+ 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/generated.nix b/nixos/tests/wireguard/generated.nix
index 897feafe3ff..a29afd2d466 100644
--- a/nixos/tests/wireguard/generated.nix
+++ b/nixos/tests/wireguard/generated.nix
@@ -1,4 +1,4 @@
-import ../make-test.nix ({ pkgs, ...} : {
+import ../make-test-python.nix ({ pkgs, ...} : {
name = "wireguard-generated";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ ma27 grahamc ];
@@ -28,30 +28,34 @@ import ../make-test.nix ({ pkgs, ...} : {
};
testScript = ''
- startAll;
+ start_all()
- $peer1->waitForUnit("wireguard-wg0.service");
- $peer2->waitForUnit("wireguard-wg0.service");
+ peer1.wait_for_unit("wireguard-wg0.service")
+ peer2.wait_for_unit("wireguard-wg0.service")
- my ($retcode, $peer1pubkey) = $peer1->execute("wg pubkey < /etc/wireguard/private");
- $peer1pubkey =~ s/\s+$//;
- if ($retcode != 0) {
- die "Could not read public key from peer1";
- }
+ retcode, peer1pubkey = peer1.execute("wg pubkey < /etc/wireguard/private")
+ if retcode != 0:
+ raise Exception("Could not read public key from peer1")
- my ($retcode, $peer2pubkey) = $peer2->execute("wg pubkey < /etc/wireguard/private");
- $peer2pubkey =~ s/\s+$//;
- if ($retcode != 0) {
- die "Could not read public key from peer2";
- }
+ retcode, peer2pubkey = peer2.execute("wg pubkey < /etc/wireguard/private")
+ if retcode != 0:
+ raise Exception("Could not read public key from peer2")
- $peer1->succeed("wg set wg0 peer $peer2pubkey allowed-ips 10.10.10.2/32 endpoint 192.168.1.2:12345 persistent-keepalive 1");
- $peer1->succeed("ip route replace 10.10.10.2/32 dev wg0 table main");
+ peer1.succeed(
+ "wg set wg0 peer {} allowed-ips 10.10.10.2/32 endpoint 192.168.1.2:12345 persistent-keepalive 1".format(
+ peer2pubkey.strip()
+ )
+ )
+ peer1.succeed("ip route replace 10.10.10.2/32 dev wg0 table main")
- $peer2->succeed("wg set wg0 peer $peer1pubkey allowed-ips 10.10.10.1/32 endpoint 192.168.1.1:12345 persistent-keepalive 1");
- $peer2->succeed("ip route replace 10.10.10.1/32 dev wg0 table main");
+ peer2.succeed(
+ "wg set wg0 peer {} allowed-ips 10.10.10.1/32 endpoint 192.168.1.1:12345 persistent-keepalive 1".format(
+ peer1pubkey.strip()
+ )
+ )
+ peer2.succeed("ip route replace 10.10.10.1/32 dev wg0 table main")
- $peer1->succeed("ping -c1 10.10.10.2");
- $peer2->succeed("ping -c1 10.10.10.1");
+ peer1.succeed("ping -c1 10.10.10.2")
+ peer2.succeed("ping -c1 10.10.10.1")
'';
})
diff --git a/nixos/tests/wireguard/namespaces.nix b/nixos/tests/wireguard/namespaces.nix
new file mode 100644
index 00000000000..94f993d9475
--- /dev/null
+++ b/nixos/tests/wireguard/namespaces.nix
@@ -0,0 +1,80 @@
+let
+ listenPort = 12345;
+ socketNamespace = "foo";
+ interfaceNamespace = "bar";
+ node = {
+ networking.wireguard.interfaces.wg0 = {
+ listenPort = listenPort;
+ ips = [ "10.10.10.1/24" ];
+ privateKeyFile = "/etc/wireguard/private";
+ generatePrivateKeyFile = true;
+ };
+ };
+
+in
+
+import ../make-test.nix ({ pkgs, ...} : {
+ name = "wireguard-with-namespaces";
+ meta = with pkgs.stdenv.lib.maintainers; {
+ maintainers = [ asymmetric ];
+ };
+
+ nodes = {
+ # interface should be created in the socketNamespace
+ # and not moved from there
+ peer0 = pkgs.lib.attrsets.recursiveUpdate node {
+ networking.wireguard.interfaces.wg0 = {
+ preSetup = ''
+ ip netns add ${socketNamespace}
+ '';
+ inherit socketNamespace;
+ };
+ };
+ # interface should be created in the init namespace
+ # and moved to the interfaceNamespace
+ peer1 = pkgs.lib.attrsets.recursiveUpdate node {
+ networking.wireguard.interfaces.wg0 = {
+ preSetup = ''
+ ip netns add ${interfaceNamespace}
+ '';
+ inherit interfaceNamespace;
+ };
+ };
+ # interface should be created in the socketNamespace
+ # and moved to the interfaceNamespace
+ peer2 = pkgs.lib.attrsets.recursiveUpdate node {
+ networking.wireguard.interfaces.wg0 = {
+ preSetup = ''
+ ip netns add ${socketNamespace}
+ ip netns add ${interfaceNamespace}
+ '';
+ inherit socketNamespace interfaceNamespace;
+ };
+ };
+ # interface should be created in the socketNamespace
+ # and moved to the init namespace
+ peer3 = pkgs.lib.attrsets.recursiveUpdate node {
+ networking.wireguard.interfaces.wg0 = {
+ preSetup = ''
+ ip netns add ${socketNamespace}
+ '';
+ inherit socketNamespace;
+ interfaceNamespace = "init";
+ };
+ };
+ };
+
+ testScript = ''
+ startAll();
+
+ $peer0->waitForUnit("wireguard-wg0.service");
+ $peer1->waitForUnit("wireguard-wg0.service");
+ $peer2->waitForUnit("wireguard-wg0.service");
+ $peer3->waitForUnit("wireguard-wg0.service");
+
+ $peer0->succeed("ip -n ${socketNamespace} link show wg0");
+ $peer1->succeed("ip -n ${interfaceNamespace} link show wg0");
+ $peer2->succeed("ip -n ${interfaceNamespace} link show wg0");
+ $peer3->succeed("ip link show wg0");
+ '';
+})
diff --git a/nixos/tests/wordpress.nix b/nixos/tests/wordpress.nix
index 774ef6293b5..b7449859f7e 100644
--- a/nixos/tests/wordpress.nix
+++ b/nixos/tests/wordpress.nix
@@ -1,9 +1,13 @@
-import ./make-test.nix ({ pkgs, ... }:
+import ./make-test-python.nix ({ pkgs, ... }:
{
name = "wordpress";
meta = with pkgs.stdenv.lib.maintainers; {
- maintainers = [ grahamc ]; # under duress!
+ maintainers = [
+ flokli
+ grahamc # under duress!
+ mmilata
+ ];
};
machine =
@@ -20,23 +24,34 @@ import ./make-test.nix ({ pkgs, ... }:
};
networking.hosts."127.0.0.1" = [ "site1.local" "site2.local" ];
-
- # required for wordpress-init.service to succeed
- systemd.tmpfiles.rules = [
- "F /var/lib/wordpress/site1.local/secret-keys.php 0440 wordpress wwwrun - -"
- "F /var/lib/wordpress/site2.local/secret-keys.php 0440 wordpress wwwrun - -"
- ];
};
testScript = ''
- startAll;
+ import re
- $machine->waitForUnit("httpd");
- $machine->waitForUnit("phpfpm-wordpress-site1.local");
- $machine->waitForUnit("phpfpm-wordpress-site2.local");
+ start_all()
- $machine->succeed("curl -L site1.local | grep 'Welcome to the famous'");
- $machine->succeed("curl -L site2.local | grep 'Welcome to the famous'");
+ machine.wait_for_unit("httpd")
+
+ machine.wait_for_unit("phpfpm-wordpress-site1.local")
+ machine.wait_for_unit("phpfpm-wordpress-site2.local")
+
+ site_names = ["site1.local", "site2.local"]
+
+ with subtest("website returns welcome screen"):
+ for site_name in site_names:
+ assert "Welcome to the famous" in machine.succeed(f"curl -L {site_name}")
+
+ with subtest("wordpress-init went through"):
+ for site_name in site_names:
+ info = machine.get_unit_info(f"wordpress-init-{site_name}")
+ assert info["Result"] == "success"
+
+ with subtest("secret keys are set"):
+ pattern = re.compile(r"^define.*NONCE_SALT.{64,};$", re.MULTILINE)
+ for site_name in site_names:
+ assert pattern.search(
+ machine.succeed(f"cat /var/lib/wordpress/{site_name}/secret-keys.php")
+ )
'';
-
})
diff --git a/nixos/tests/xautolock.nix b/nixos/tests/xautolock.nix
index ee46d9e05b0..10e92b40e95 100644
--- a/nixos/tests/xautolock.nix
+++ b/nixos/tests/xautolock.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, lib, ... }:
+import ./make-test-python.nix ({ pkgs, lib, ... }:
with lib;
@@ -15,10 +15,10 @@ with lib;
};
testScript = ''
- $machine->start;
- $machine->waitForX;
- $machine->mustFail("pgrep xlock");
- $machine->sleep(120);
- $machine->mustSucceed("pgrep xlock");
+ machine.start()
+ machine.wait_for_x()
+ machine.fail("pgrep xlock")
+ machine.sleep(120)
+ machine.succeed("pgrep xlock")
'';
})
diff --git a/nixos/tests/xdg-desktop-portal.nix b/nixos/tests/xdg-desktop-portal.nix
deleted file mode 100644
index 79ebb83c49a..00000000000
--- a/nixos/tests/xdg-desktop-portal.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-# run installed tests
-import ./make-test.nix ({ pkgs, ... }:
-
-{
- name = "xdg-desktop-portal";
- meta = {
- maintainers = pkgs.xdg-desktop-portal.meta.maintainers;
- };
-
- machine = { pkgs, ... }: {
- environment.systemPackages = with pkgs; [ gnome-desktop-testing ];
- };
-
- testScript = ''
- $machine->succeed("gnome-desktop-testing-runner -d '${pkgs.xdg-desktop-portal.installedTests}/share'");
- '';
-})
diff --git a/nixos/tests/xfce.nix b/nixos/tests/xfce.nix
index 12d8a050d47..3ea96b38363 100644
--- a/nixos/tests/xfce.nix
+++ b/nixos/tests/xfce.nix
@@ -1,8 +1,5 @@
-import ./make-test.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, ...} : {
name = "xfce";
- meta = with pkgs.stdenv.lib.maintainers; {
- maintainers = [ eelco shlevy ];
- };
machine =
{ pkgs, ... }:
@@ -16,27 +13,26 @@ import ./make-test.nix ({ pkgs, ...} : {
services.xserver.desktopManager.xfce.enable = true;
- environment.systemPackages = [ pkgs.xorg.xmessage ];
+ hardware.pulseaudio.enable = true; # needed for the factl test, /dev/snd/* exists without them but udev doesn't care then
+
+ virtualisation.memorySize = 1024;
};
- testScript =
- ''
- $machine->waitForX;
- $machine->waitForFile("/home/alice/.Xauthority");
- $machine->succeed("xauth merge ~alice/.Xauthority");
- $machine->waitForWindow(qr/xfce4-panel/);
- $machine->sleep(10);
+ testScript = { nodes, ... }: let
+ user = nodes.machine.config.users.users.alice;
+ in ''
+ machine.wait_for_x()
+ machine.wait_for_file("${user.home}/.Xauthority")
+ machine.succeed("xauth merge ${user.home}/.Xauthority")
+ machine.wait_for_window("xfce4-panel")
+ machine.sleep(10)
# Check that logging in has given the user ownership of devices.
- $machine->succeed("getfacl /dev/snd/timer | grep -q alice");
+ machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}")
- $machine->succeed("su - alice -c 'DISPLAY=:0.0 xfce4-terminal &'");
- $machine->waitForWindow(qr/Terminal/);
- $machine->sleep(10);
- $machine->screenshot("screen");
-
- # Ensure that the X server does proper access control.
- $machine->mustFail("su - bob -c 'DISPLAY=:0.0 xmessage Foo'");
- $machine->mustFail("su - bob -c 'DISPLAY=:0 xmessage Foo'");
+ machine.succeed("su - ${user.name} -c 'DISPLAY=:0.0 xfce4-terminal &'")
+ machine.wait_for_window("Terminal")
+ machine.sleep(10)
+ machine.screenshot("screen")
'';
})
diff --git a/nixos/tests/xfce4-14.nix b/nixos/tests/xfce4-14.nix
deleted file mode 100644
index d9b10aabaa1..00000000000
--- a/nixos/tests/xfce4-14.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-import ./make-test.nix ({ pkgs, ...} : {
- name = "xfce4-14";
-
- machine =
- { pkgs, ... }:
-
- { imports = [ ./common/user-account.nix ];
-
- services.xserver.enable = true;
-
- services.xserver.displayManager.auto.enable = true;
- services.xserver.displayManager.auto.user = "alice";
-
- services.xserver.desktopManager.xfce4-14.enable = true;
- };
-
- testScript =
- ''
- $machine->waitForX;
- $machine->waitForFile("/home/alice/.Xauthority");
- $machine->succeed("xauth merge ~alice/.Xauthority");
- $machine->waitForWindow(qr/xfce4-panel/);
- $machine->sleep(10);
-
- # Check that logging in has given the user ownership of devices.
- $machine->succeed("getfacl /dev/snd/timer | grep -q alice");
-
- $machine->succeed("su - alice -c 'DISPLAY=:0.0 xfce4-terminal &'");
- $machine->waitForWindow(qr/Terminal/);
- $machine->sleep(10);
- $machine->screenshot("screen");
- '';
-})
diff --git a/nixos/tests/xmonad.nix b/nixos/tests/xmonad.nix
index 4d3bc28cd34..c2e5ba60d7b 100644
--- a/nixos/tests/xmonad.nix
+++ b/nixos/tests/xmonad.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, ...} : {
name = "xmonad";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ nequissimus ];
@@ -21,19 +21,21 @@ import ./make-test.nix ({ pkgs, ...} : {
};
};
- testScript = { ... }: ''
- $machine->waitForX;
- $machine->waitForFile("/home/alice/.Xauthority");
- $machine->succeed("xauth merge ~alice/.Xauthority");
- $machine->sendKeys("alt-ctrl-x");
- $machine->waitForWindow(qr/machine.*alice/);
- $machine->sleep(1);
- $machine->screenshot("terminal");
- $machine->waitUntilSucceeds("xmonad --restart");
- $machine->sleep(3);
- $machine->sendKeys("alt-shift-ret");
- $machine->waitForWindow(qr/alice.*machine/);
- $machine->sleep(1);
- $machine->screenshot("terminal");
+ testScript = { nodes, ... }: let
+ user = nodes.machine.config.users.users.alice;
+ in ''
+ machine.wait_for_x()
+ machine.wait_for_file("${user.home}/.Xauthority")
+ machine.succeed("xauth merge ${user.home}/.Xauthority")
+ machine.send_chars("alt-ctrl-x")
+ machine.wait_for_window("${user.name}.*machine")
+ machine.sleep(1)
+ machine.screenshot("terminal")
+ machine.wait_until_succeeds("xmonad --restart")
+ machine.sleep(3)
+ machine.send_chars("alt-shift-ret")
+ machine.wait_for_window("${user.name}.*machine")
+ machine.sleep(1)
+ machine.screenshot("terminal")
'';
})
diff --git a/nixos/tests/xmpp/prosody-mysql.nix b/nixos/tests/xmpp/prosody-mysql.nix
index 62b4a17421e..0507227021b 100644
--- a/nixos/tests/xmpp/prosody-mysql.nix
+++ b/nixos/tests/xmpp/prosody-mysql.nix
@@ -1,4 +1,4 @@
-import ../make-test.nix {
+import ../make-test-python.nix {
name = "prosody-mysql";
nodes = {
@@ -57,21 +57,21 @@ import ../make-test.nix {
};
testScript = { nodes, ... }: ''
- $mysql->waitForUnit('mysql.service');
- $server->waitForUnit('prosody.service');
- $server->succeed('prosodyctl status') =~ /Prosody is running/;
+ mysql.wait_for_unit("mysql.service")
+ 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');
+ server.succeed("yes nothunter2 | prosodyctl adduser cthon98@example.com")
# set password to 'y'
- $server->succeed('yes | prosodyctl adduser azurediamond@example.com');
+ server.succeed("yes | prosodyctl adduser azurediamond@example.com")
# correct password to 'hunter2'
- $server->succeed('yes hunter2 | prosodyctl passwd azurediamond@example.com');
+ server.succeed("yes hunter2 | prosodyctl passwd azurediamond@example.com")
- $client->succeed("send-message");
+ client.succeed("send-message")
- $server->succeed('prosodyctl deluser cthon98@example.com');
- $server->succeed('prosodyctl deluser azurediamond@example.com');
+ server.succeed("prosodyctl deluser cthon98@example.com")
+ server.succeed("prosodyctl deluser azurediamond@example.com")
'';
}
diff --git a/nixos/tests/xmpp/prosody.nix b/nixos/tests/xmpp/prosody.nix
index 8331c7b6d33..9d1374bff6b 100644
--- a/nixos/tests/xmpp/prosody.nix
+++ b/nixos/tests/xmpp/prosody.nix
@@ -1,4 +1,4 @@
-import ../make-test.nix {
+import ../make-test-python.nix {
name = "prosody";
nodes = {
@@ -28,19 +28,19 @@ import ../make-test.nix {
};
testScript = { nodes, ... }: ''
- $server->waitForUnit('prosody.service');
- $server->succeed('prosodyctl status') =~ /Prosody is running/;
+ 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');
+ 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');
+ 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");
+ client.succeed("send-message")
- $server->succeed('prosodyctl deluser cthon98@example.com');
- $server->succeed('prosodyctl deluser azurediamond@example.com');
+ server.succeed("prosodyctl deluser cthon98@example.com")
+ server.succeed("prosodyctl deluser azurediamond@example.com")
'';
}
diff --git a/nixos/tests/yabar.nix b/nixos/tests/yabar.nix
index bbc0cf4c7dd..9108004d4df 100644
--- a/nixos/tests/yabar.nix
+++ b/nixos/tests/yabar.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, lib, ... }:
+import ./make-test-python.nix ({ pkgs, lib, ... }:
with lib;
@@ -20,14 +20,14 @@ with lib;
};
testScript = ''
- $machine->start;
- $machine->waitForX;
+ machine.start()
+ machine.wait_for_x()
# confirm proper startup
- $machine->waitForUnit("yabar.service", "bob");
- $machine->sleep(10);
- $machine->waitForUnit("yabar.service", "bob");
+ machine.wait_for_unit("yabar.service", "bob")
+ machine.sleep(10)
+ machine.wait_for_unit("yabar.service", "bob")
- $machine->screenshot("top_bar");
+ machine.screenshot("top_bar")
'';
})
diff --git a/nixos/tests/yggdrasil.nix b/nixos/tests/yggdrasil.nix
new file mode 100644
index 00000000000..468fcf67127
--- /dev/null
+++ b/nixos/tests/yggdrasil.nix
@@ -0,0 +1,125 @@
+let
+ aliceIp6 = "200:3b91:b2d8:e708:fbf3:f06:fdd5:90d0";
+ aliceKeys = {
+ EncryptionPublicKey = "13e23986fe76bc3966b42453f479bc563348b7ff76633b7efcb76e185ec7652f";
+ EncryptionPrivateKey = "9f86947b15e86f9badac095517a1982e39a2db37ca726357f95987b898d82208";
+ SigningPublicKey = "e2c43349083bc1e998e4ec4535b4c6a8f44ca9a5a8e07336561267253b2be5f4";
+ SigningPrivateKey = "fe3add8da35316c05f6d90d3ca79bd2801e6ccab6d37e5339fef4152589398abe2c43349083bc1e998e4ec4535b4c6a8f44ca9a5a8e07336561267253b2be5f4";
+ };
+ bobIp6 = "201:ebbd:bde9:f138:c302:4afa:1fb6:a19a";
+ bobConfig = {
+ InterfacePeers = {
+ eth1 = [ "tcp://192.168.1.200:12345" ];
+ };
+ MulticastInterfaces = [ "eth1" ];
+ LinkLocalTCPPort = 54321;
+ EncryptionPublicKey = "c99d6830111e12d1b004c52fe9e5a2eef0f6aefca167aca14589a370b7373279";
+ EncryptionPrivateKey = "2e698a53d3fdce5962d2ff37de0fe77742a5c8b56cd8259f5da6aa792f6e8ba3";
+ SigningPublicKey = "de111da0ec781e45bf6c63ecb45a78c24d7d4655abfaeea83b26c36eb5c0fd5b";
+ SigningPrivateKey = "2a6c21550f3fca0331df50668ffab66b6dce8237bcd5728e571e8033b363e247de111da0ec781e45bf6c63ecb45a78c24d7d4655abfaeea83b26c36eb5c0fd5b";
+ };
+
+in import ./make-test-python.nix ({ pkgs, ...} : {
+ name = "yggdrasil";
+ meta = with pkgs.stdenv.lib.maintainers; {
+ maintainers = [ gazally ];
+ };
+
+ nodes = rec {
+ # Alice is listening for peerings on a specified port,
+ # but has multicast peering disabled. Alice has part of her
+ # yggdrasil config in Nix and part of it in a file.
+ alice =
+ { ... }:
+ {
+ networking = {
+ interfaces.eth1.ipv4.addresses = [{
+ address = "192.168.1.200";
+ prefixLength = 24;
+ }];
+ firewall.allowedTCPPorts = [ 80 12345 ];
+ };
+ services.httpd.enable = true;
+ services.httpd.adminAddr = "foo@example.org";
+
+ services.yggdrasil = {
+ enable = true;
+ config = {
+ Listen = ["tcp://0.0.0.0:12345"];
+ MulticastInterfaces = [ ];
+ };
+ configFile = toString (pkgs.writeTextFile {
+ name = "yggdrasil-alice-conf";
+ text = builtins.toJSON aliceKeys;
+ });
+ };
+ };
+
+ # Bob is set up to peer with Alice, and also to do local multicast
+ # peering. Bob's yggdrasil config is in a file.
+ bob =
+ { ... }:
+ {
+ networking.firewall.allowedTCPPorts = [ 54321 ];
+ services.yggdrasil = {
+ enable = true;
+ openMulticastPort = true;
+ configFile = toString (pkgs.writeTextFile {
+ name = "yggdrasil-bob-conf";
+ text = builtins.toJSON bobConfig;
+ });
+ };
+ };
+
+ # Carol only does local peering. Carol's yggdrasil config is all Nix.
+ carol =
+ { ... }:
+ {
+ networking.firewall.allowedTCPPorts = [ 43210 ];
+ services.yggdrasil = {
+ enable = true;
+ denyDhcpcdInterfaces = [ "ygg0" ];
+ config = {
+ IfTAPMode = true;
+ IfName = "ygg0";
+ MulticastInterfaces = [ "eth1" ];
+ LinkLocalTCPPort = 43210;
+ };
+ };
+ };
+ };
+
+ testScript =
+ ''
+ import re
+
+ # Give Alice a head start so she is ready when Bob calls.
+ alice.start()
+ alice.wait_for_unit("yggdrasil.service")
+
+ bob.start()
+ carol.start()
+ bob.wait_for_unit("yggdrasil.service")
+ carol.wait_for_unit("yggdrasil.service")
+
+ ip_addr_show = "ip -o -6 addr show dev ygg0 scope global"
+ carol.wait_until_succeeds(f"[ `{ip_addr_show} | grep -v tentative | wc -l` -ge 1 ]")
+ carol_ip6 = re.split(" +|/", carol.succeed(ip_addr_show))[3]
+
+ # If Alice can talk to Carol, then Bob's outbound peering and Carol's
+ # local peering have succeeded and everybody is connected.
+ alice.wait_until_succeeds(f"ping -c 1 {carol_ip6}")
+ alice.succeed(f"ping -c 1 ${bobIp6}")
+
+ bob.succeed("ping -c 1 ${aliceIp6}")
+ bob.succeed(f"ping -c 1 {carol_ip6}")
+
+ carol.succeed("ping -c 1 ${aliceIp6}")
+ carol.succeed("ping -c 1 ${bobIp6}")
+
+ carol.fail("journalctl -u dhcpcd | grep ygg0")
+
+ alice.wait_for_unit("httpd.service")
+ carol.succeed("curl --fail -g http://[${aliceIp6}]")
+ '';
+})
diff --git a/nixos/tests/zfs.nix b/nixos/tests/zfs.nix
index d7a08268e98..8f844aca416 100644
--- a/nixos/tests/zfs.nix
+++ b/nixos/tests/zfs.nix
@@ -7,7 +7,7 @@ with import ../lib/testing.nix { inherit system pkgs; };
let
- makeTest = import ./make-test.nix;
+ makeTest = import ./make-test-python.nix;
makeZfsTest = name:
{ kernelPackage ? pkgs.linuxPackages_latest
@@ -34,12 +34,12 @@ let
};
testScript = ''
- $machine->succeed("modprobe zfs");
- $machine->succeed("zpool status");
+ machine.succeed("modprobe zfs")
+ machine.succeed("zpool status")
- $machine->succeed("ls /dev");
+ machine.succeed("ls /dev")
- $machine->succeed(
+ machine.succeed(
"mkdir /tmp/mnt",
"udevadm settle",
@@ -55,9 +55,7 @@ let
"umount /tmp/mnt",
"zpool destroy rpool",
"udevadm settle"
-
- );
-
+ )
'' + extraTest;
};
@@ -70,8 +68,8 @@ in {
unstable = makeZfsTest "unstable" {
enableUnstable = true;
extraTest = ''
- $machine->succeed(
- "echo password | zpool create -o altroot='/tmp/mnt' -O encryption=aes-256-gcm -O keyformat=passphrase rpool /dev/vdb1",
+ machine.succeed(
+ "echo password | zpool create -o altroot=\"/tmp/mnt\" -O encryption=aes-256-gcm -O keyformat=passphrase rpool /dev/vdb1",
"zfs create -o mountpoint=legacy rpool/root",
"mount -t zfs rpool/root /tmp/mnt",
"udevadm settle",
@@ -79,7 +77,7 @@ in {
"umount /tmp/mnt",
"zpool destroy rpool",
"udevadm settle"
- );
+ )
'';
};
diff --git a/nixos/tests/zookeeper.nix b/nixos/tests/zookeeper.nix
index f343ebd39e4..42cf20b39c5 100644
--- a/nixos/tests/zookeeper.nix
+++ b/nixos/tests/zookeeper.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, ...} : {
name = "zookeeper";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ nequissimus ];
@@ -15,14 +15,20 @@ import ./make-test.nix ({ pkgs, ...} : {
};
testScript = ''
- startAll;
+ start_all()
- $server->waitForUnit("zookeeper");
- $server->waitForUnit("network.target");
- $server->waitForOpenPort(2181);
+ server.wait_for_unit("zookeeper")
+ server.wait_for_unit("network.target")
+ server.wait_for_open_port(2181)
- $server->waitUntilSucceeds("${pkgs.zookeeper}/bin/zkCli.sh -server localhost:2181 create /foo bar");
- $server->waitUntilSucceeds("${pkgs.zookeeper}/bin/zkCli.sh -server localhost:2181 set /foo hello");
- $server->waitUntilSucceeds("${pkgs.zookeeper}/bin/zkCli.sh -server localhost:2181 get /foo | grep hello");
+ server.wait_until_succeeds(
+ "${pkgs.zookeeper}/bin/zkCli.sh -server localhost:2181 create /foo bar"
+ )
+ server.wait_until_succeeds(
+ "${pkgs.zookeeper}/bin/zkCli.sh -server localhost:2181 set /foo hello"
+ )
+ server.wait_until_succeeds(
+ "${pkgs.zookeeper}/bin/zkCli.sh -server localhost:2181 get /foo | grep hello"
+ )
'';
})
diff --git a/pkgs/applications/accessibility/contrast/default.nix b/pkgs/applications/accessibility/contrast/default.nix
new file mode 100644
index 00000000000..3e03cf2da73
--- /dev/null
+++ b/pkgs/applications/accessibility/contrast/default.nix
@@ -0,0 +1,71 @@
+{ stdenv
+, fetchFromGitLab
+, cairo
+, dbus
+, desktop-file-utils
+, gettext
+, glib
+, gtk3
+, libhandy
+, meson
+, ninja
+, pango
+, pkgconfig
+, python3
+, rustc
+, rustPlatform
+, wrapGAppsHook
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "contrast";
+ version = "0.0.2";
+
+ src = fetchFromGitLab {
+ domain = "gitlab.gnome.org";
+ group = "World";
+ owner = "design";
+ repo = "contrast";
+ rev = version;
+ sha256 = "0rm705zrk9rfv31pwbqxrswi5v6vhnghxa8dgxjmcrh00l8dm6j9";
+ };
+
+ cargoSha256 = "06vgc89d93fhjcyy9d1v6lf8kr34pl5bbpwbv2jpfahpj9y84bgj";
+
+ nativeBuildInputs = [
+ desktop-file-utils
+ gettext
+ meson
+ ninja
+ pkgconfig
+ python3
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ cairo
+ dbus
+ glib
+ gtk3
+ libhandy
+ pango
+ ];
+
+ postPatch = ''
+ patchShebangs build-aux/meson_post_install.py
+ '';
+
+ # Don't use buildRustPackage phases, only use it for rust deps setup
+ configurePhase = null;
+ buildPhase = null;
+ checkPhase = null;
+ installPhase = null;
+
+ meta = with stdenv.lib; {
+ description = "Checks whether the contrast between two colors meet the WCAG requirements";
+ homepage = https://gitlab.gnome.org/World/design/contrast;
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ jtojnar ];
+ };
+}
+
diff --git a/pkgs/applications/audio/amarok/default.nix b/pkgs/applications/audio/amarok/default.nix
index c72815d5ca2..cd951701e77 100644
--- a/pkgs/applications/audio/amarok/default.nix
+++ b/pkgs/applications/audio/amarok/default.nix
@@ -33,6 +33,8 @@ mkDerivation rec {
enableParallelBuilding = true;
meta = with lib; {
+ homepage = "https://amarok.kde.org";
+ description = "A powerful music player with an intuitive interface";
license = licenses.gpl2;
maintainers = with maintainers; [ peterhoeg ];
};
diff --git a/pkgs/applications/audio/asunder/default.nix b/pkgs/applications/audio/asunder/default.nix
index e4c145b35c7..5a0b6797a24 100644
--- a/pkgs/applications/audio/asunder/default.nix
+++ b/pkgs/applications/audio/asunder/default.nix
@@ -12,15 +12,15 @@
with stdenv.lib;
stdenv.mkDerivation rec {
- version = "2.9.3";
+ version = "2.9.5";
pname = "asunder";
src = fetchurl {
url = "http://littlesvr.ca/asunder/releases/${pname}-${version}.tar.bz2";
- sha256 = "1630i1df06y840v3fgdf75jxw1s8kwbfn5bhi0686viah0scccw5";
+ sha256 = "069x6az2r3wlb2hd07iz0hxpxwknw7s9h7pyhnkmzv1pw9ci3kk4";
};
- nativeBuildInputs = [ pkgconfig ];
- buildInputs = [ gtk2 libcddb intltool makeWrapper ];
+ nativeBuildInputs = [ intltool makeWrapper pkgconfig ];
+ buildInputs = [ gtk2 libcddb ];
runtimeDeps =
optional mp3Support lame ++
diff --git a/pkgs/applications/audio/audacity/default.nix b/pkgs/applications/audio/audacity/default.nix
index 6be40a7b93a..11434c0b349 100644
--- a/pkgs/applications/audio/audacity/default.nix
+++ b/pkgs/applications/audio/audacity/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, wxGTK30, pkgconfig, file, gettext, gtk2,
+{ stdenv, fetchzip, wxGTK30, pkgconfig, file, gettext,
libvorbis, libmad, libjack2, lv2, lilv, serd, sord, sratom, suil, alsaLib, libsndfile, soxr, flac, lame,
expat, libid3tag, ffmpeg, soundtouch, /*, portaudio - given up fighting their portaudio.patch */
autoconf, automake, libtool
@@ -10,9 +10,9 @@ stdenv.mkDerivation rec {
version = "2.3.2";
pname = "audacity";
- src = fetchurl {
+ src = fetchzip {
url = "https://github.com/audacity/audacity/archive/Audacity-${version}.tar.gz";
- sha256 = "0cf7fr1qhyyylj8g9ax1rq5sb887bcv5b8d7hwlcfwamzxqpliyc";
+ sha256 = "08w96124vv8k4myd4vifq73ningq6404x889wvg2sk016kc4dfv1";
};
preConfigure = /* we prefer system-wide libs */ ''
@@ -43,12 +43,11 @@ stdenv.mkDerivation rec {
"-lswscale"
];
- nativeBuildInputs = [ pkgconfig ];
+ nativeBuildInputs = [ pkgconfig autoconf automake libtool ];
buildInputs = [
file gettext wxGTK30 expat alsaLib
- libsndfile soxr libid3tag libjack2 lv2 lilv serd sord sratom suil gtk2
+ libsndfile soxr libid3tag libjack2 lv2 lilv serd sord sratom suil wxGTK30.gtk
ffmpeg libmad lame libvorbis flac soundtouch
- autoconf automake libtool # for the preConfigure phase
]; #ToDo: detach sbsms
enableParallelBuilding = true;
@@ -60,7 +59,7 @@ stdenv.mkDerivation rec {
description = "Sound editor with graphical UI";
homepage = http://audacityteam.org/;
license = licenses.gpl2Plus;
- platforms = with platforms; linux;
+ platforms = intersectLists platforms.linux platforms.x86; # fails on ARM
maintainers = with maintainers; [ the-kenny ];
};
}
diff --git a/pkgs/applications/audio/avldrums-lv2/default.nix b/pkgs/applications/audio/avldrums-lv2/default.nix
index 7ca5d83b48b..eeb0f67d193 100644
--- a/pkgs/applications/audio/avldrums-lv2/default.nix
+++ b/pkgs/applications/audio/avldrums-lv2/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "avldrums.lv2";
- version = "0.3.5";
+ version = "0.4.0";
src = fetchFromGitHub {
owner = "x42";
repo = pname;
rev = "v${version}";
- sha256 = "00n2varc7iwp0xbfi45hpq4vlpxxb2kbrdzvrc20qp2265994bqf";
+ sha256 = "1z70rcq6z3gkb4fm8dm9hs31bslwr97zdh2n012fzki9b9rdj5qv";
fetchSubmodules = true;
};
diff --git a/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix b/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
index 3e9a2d380e2..dd59ac5080f 100644
--- a/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
+++ b/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
@@ -3,11 +3,11 @@
bitwig-studio1.overrideAttrs (oldAttrs: rec {
name = "bitwig-studio-${version}";
- version = "3.0.1";
+ version = "3.0.3";
src = fetchurl {
url = "https://downloads.bitwig.com/stable/${version}/bitwig-studio-${version}.deb";
- sha256 = "0k25p1j4kgnhm7p90qp1cz79xddgi6nh1nx1y5wz42x8qrpxya0s";
+ sha256 = "162l95imq2fb4blfkianlkymm690by9ri73xf9zigknqf0gacgsa";
};
runtimeDependencies = [
diff --git a/pkgs/applications/audio/bsequencer/default.nix b/pkgs/applications/audio/bsequencer/default.nix
new file mode 100644
index 00000000000..e4ac2fbbcdc
--- /dev/null
+++ b/pkgs/applications/audio/bsequencer/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, xorg, cairo, lv2, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "BSEQuencer";
+ version = "0.4";
+
+ src = fetchFromGitHub {
+ owner = "sjaehn";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0c3bm2z6z2bjjv1cy50383zr81h99rcb2frmxad0r7lhi27mjyqn";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ xorg.libX11 cairo lv2
+ ];
+
+ installFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ homepage = https://github.com/sjaehn/BSEQuencer;
+ description = "Multi channel MIDI step sequencer LV2 plugin";
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ };
+}
diff --git a/pkgs/applications/audio/bshapr/default.nix b/pkgs/applications/audio/bshapr/default.nix
new file mode 100644
index 00000000000..1d49ca1fa4f
--- /dev/null
+++ b/pkgs/applications/audio/bshapr/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, xorg, cairo, lv2, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "BShapr";
+ version = "0.4";
+
+ src = fetchFromGitHub {
+ owner = "sjaehn";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "02b4wdfhr9y7z2k6ls086gv3vz4sjf7b1k8ryh573bzd8nr4896v";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ xorg.libX11 cairo lv2
+ ];
+
+ installFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ homepage = https://github.com/sjaehn/BShapr;
+ description = "Beat / envelope shaper LV2 plugin";
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ };
+}
diff --git a/pkgs/applications/audio/bslizr/default.nix b/pkgs/applications/audio/bslizr/default.nix
new file mode 100644
index 00000000000..8fbac6daf46
--- /dev/null
+++ b/pkgs/applications/audio/bslizr/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, xorg, cairo, lv2, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "BSlizr";
+ version = "1.2.0";
+
+ src = fetchFromGitHub {
+ owner = "sjaehn";
+ repo = pname;
+ rev = "${version}";
+ sha256 = "1xqhpppfj47nzmyksbqgfvvi5j807g96hqla544w2f752zz4yi0s";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ xorg.libX11 cairo lv2
+ ];
+
+ installFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ homepage = https://github.com/sjaehn/BSlizr;
+ description = "Sequenced audio slicing effect LV2 plugin (step sequencer effect)";
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ };
+}
diff --git a/pkgs/applications/audio/cadence/default.nix b/pkgs/applications/audio/cadence/default.nix
index 87efa6fb6b6..4a757ed434a 100644
--- a/pkgs/applications/audio/cadence/default.nix
+++ b/pkgs/applications/audio/cadence/default.nix
@@ -1,4 +1,6 @@
{ stdenv
+, mkDerivation
+, lib
, fetchzip
, pkgconfig
, qtbase
@@ -6,7 +8,7 @@
, python3Packages
}:
- stdenv.mkDerivation rec {
+ mkDerivation rec {
version = "0.9.0";
pname = "cadence";
@@ -15,65 +17,56 @@
sha256 = "08vcggypkdfr70v49innahs5s11hi222dhhnm5wcqzdgksphqzwx";
};
- nativeBuildInputs = [ makeWrapper pkgconfig ];
- buildInputs = [ qtbase ];
+ nativeBuildInputs = [
+ pkgconfig
+ ];
- makeFlags = ''
- PREFIX=""
- DESTDIR=$(out)
- '';
+ buildInputs = [
+ qtbase
+ ];
- propagatedBuildInputs = with python3Packages; [ pyqt5_with_qtwebkit ];
+ makeFlags = [
+ "PREFIX=''"
+ "DESTDIR=${placeholder "out"}"
+ ];
- postInstall = ''
- # replace with our own wrappers. They need to be changed manually since it wouldn't work otherwise
- rm $out/bin/cadence
- makeWrapper ${python3Packages.python.interpreter} $out/bin/cadence \
- --set PYTHONPATH "$PYTHONPATH:$out/share/cadence" \
- --add-flags "-O $out/share/cadence/src/cadence.py"
- rm $out/bin/claudia
- makeWrapper ${python3Packages.python.interpreter} $out/bin/claudia \
- --set PYTHONPATH "$PYTHONPATH:$out/share/cadence" \
- --add-flags "-O $out/share/cadence/src/claudia.py"
- rm $out/bin/catarina
- makeWrapper ${python3Packages.python.interpreter} $out/bin/catarina \
- --set PYTHONPATH "$PYTHONPATH:$out/share/cadence" \
- --add-flags "-O $out/share/cadence/src/catarina.py"
- rm $out/bin/catia
- makeWrapper ${python3Packages.python.interpreter} $out/bin/catia \
- --set PYTHONPATH "$PYTHONPATH:$out/share/cadence" \
- --add-flags "-O $out/share/cadence/src/catia.py"
- rm $out/bin/cadence-jacksettings
- makeWrapper ${python3Packages.python.interpreter} $out/bin/cadence-jacksettings \
- --set PYTHONPATH "$PYTHONPATH:$out/share/cadence" \
- --add-flags "-O $out/share/cadence/src/jacksettings.py"
- rm $out/bin/cadence-aloop-daemon
- makeWrapper ${python3Packages.python.interpreter} $out/bin/cadence-aloop-daemon \
- --set PYTHONPATH "$PYTHONPATH:$out/share/cadence" \
- --add-flags "-O $out/share/cadence/src/cadence_aloop_daemon.py"
- rm $out/bin/cadence-logs
- makeWrapper ${python3Packages.python.interpreter} $out/bin/cadence-logs \
- --set PYTHONPATH "$PYTHONPATH:$out/share/cadence" \
- --add-flags "-O $out/share/cadence/src/logs.py"
- rm $out/bin/cadence-render
- makeWrapper ${python3Packages.python.interpreter} $out/bin/cadence-render \
- --set PYTHONPATH "$PYTHONPATH:$out/share/cadence" \
- --add-flags "-O $out/share/cadence/src/render.py"
- rm $out/bin/claudia-launcher
- makeWrapper ${python3Packages.python.interpreter} $out/bin/claudia-launcher \
- --set PYTHONPATH "$PYTHONPATH:$out/share/cadence" \
- --add-flags "-O $out/share/cadence/src/claudia_launcher.py"
- rm $out/bin/cadence-session-start
- makeWrapper ${python3Packages.python.interpreter} $out/bin/cadence-session-start \
- --set PYTHONPATH "$PYTHONPATH:$out/share/cadence" \
- --add-flags "-O $out/share/cadence/src/cadence_session_start.py"
- '';
+ propagatedBuildInputs = with python3Packages; [
+ pyqt5_with_qtwebkit
+ ];
+
+ dontWrapQtApps = true;
+
+ # Replace with our own wrappers. They need to be changed manually since it wouldn't work otherwise.
+ preFixup = let
+ outRef = placeholder "out";
+ prefix = "${outRef}/share/cadence/src";
+ scriptAndSource = lib.mapAttrs' (script: source:
+ lib.nameValuePair ("${outRef}/bin/" + script) ("${prefix}/" + source)
+ ) {
+ "cadence" = "cadence.py";
+ "claudia" = "claudia.py";
+ "catarina" = "catarina.py";
+ "catia" = "catia.py";
+ "cadence-jacksettings" = "jacksettings.py";
+ "cadence-aloop-daemon" = "cadence_aloop_daemon.py";
+ "cadence-logs" = "logs.py";
+ "cadence-render" = "render.py";
+ "claudia-launcher" = "claudia_launcher.py";
+ "cadence-session-start" = "cadence_session_start.py";
+ };
+ in lib.mapAttrsToList (script: source: ''
+ rm -f ${script}
+ makeWrapper ${python3Packages.python.interpreter} ${script} \
+ --set PYTHONPATH "$PYTHONPATH:${outRef}/share/cadence" \
+ ''${qtWrapperArgs[@]} \
+ --add-flags "-O ${source}"
+ '') scriptAndSource;
meta = {
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 ];
+ maintainers = with stdenv.lib.maintainers; [ genesis worldofpeace ];
platforms = [ "x86_64-linux" ];
};
}
diff --git a/pkgs/applications/audio/clementine/default.nix b/pkgs/applications/audio/clementine/default.nix
index f48a429b389..0a374c26142 100644
--- a/pkgs/applications/audio/clementine/default.nix
+++ b/pkgs/applications/audio/clementine/default.nix
@@ -28,6 +28,11 @@ let
url = "https://github.com/clementine-player/Clementine/pull/5630.patch";
sha256 = "0px7xp1m4nvrncx8sga1qlxppk562wrk2qqk19iiry84nxg20mk4";
})
+ (fetchpatch {
+ # Fixes compilation with chromaprint >= 1.4
+ url = "https://github.com/clementine-player/Clementine/commit/d3ea0c8482dfd3f6264a30cfceb456076d76e6cd.patch";
+ sha256 = "1ifrs5aqdzw16jbnf0z1ilir20chdnr9k5n21r99miq9hzjpbh12";
+ })
];
nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/pkgs/applications/audio/denemo/default.nix b/pkgs/applications/audio/denemo/default.nix
index 331e3fb9698..f3adec4fece 100644
--- a/pkgs/applications/audio/denemo/default.nix
+++ b/pkgs/applications/audio/denemo/default.nix
@@ -2,7 +2,7 @@
, libjack2, gettext, intltool, guile_2_0, lilypond
, glib, libxml2, librsvg, libsndfile, aubio
, gtk3, gtksourceview, evince, fluidsynth, rubberband
-, portaudio, portmidi, fftw, makeWrapper }:
+, portaudio, portmidi, fftw, wrapGAppsHook }:
stdenv.mkDerivation rec {
pname = "denemo";
@@ -14,17 +14,21 @@ stdenv.mkDerivation rec {
};
buildInputs = [
- libjack2 gettext guile_2_0 lilypond pkgconfig glib libxml2 librsvg libsndfile
+ libjack2 guile_2_0 lilypond glib libxml2 librsvg libsndfile
aubio gtk3 gtksourceview evince fluidsynth rubberband portaudio fftw portmidi
- makeWrapper
];
- postInstall = ''
- wrapProgram $out/bin/denemo --prefix PATH : ${lilypond}/bin
+ preFixup = ''
+ gappsWrapperArgs+=(
+ --prefix PATH : "${lilypond}/bin"
+ )
'';
nativeBuildInputs = [
+ wrapGAppsHook
intltool
+ gettext
+ pkgconfig
];
meta = with stdenv.lib; {
diff --git a/pkgs/applications/audio/drumgizmo/default.nix b/pkgs/applications/audio/drumgizmo/default.nix
index 11b214f6bb3..2581f223c91 100644
--- a/pkgs/applications/audio/drumgizmo/default.nix
+++ b/pkgs/applications/audio/drumgizmo/default.nix
@@ -3,12 +3,12 @@
}:
stdenv.mkDerivation rec {
- version = "0.9.17";
+ version = "0.9.18.1";
pname = "drumgizmo";
src = fetchurl {
url = "https://www.drumgizmo.org/releases/${pname}-${version}/${pname}-${version}.tar.gz";
- sha256 = "177c27kz9srds7a659zz9yhp58z0zsk0ydwww7l3jkjlylm1p8x1";
+ sha256 = "0bpbkzcr3znbwfdk79c14n5k5hh80iqlk2nc03q95vhimbadk8k7";
};
configureFlags = [ "--enable-lv2" ];
diff --git a/pkgs/applications/audio/drumkv1/default.nix b/pkgs/applications/audio/drumkv1/default.nix
index 8f1f79169d7..b926ff09d22 100644
--- a/pkgs/applications/audio/drumkv1/default.nix
+++ b/pkgs/applications/audio/drumkv1/default.nix
@@ -1,19 +1,19 @@
-{ stdenv, fetchurl, pkgconfig, libjack2, alsaLib, libsndfile, liblo, lv2, qt5 }:
+{ mkDerivation, lib, fetchurl, pkgconfig, libjack2, alsaLib, libsndfile, liblo, lv2, qt5 }:
-stdenv.mkDerivation rec {
+mkDerivation rec {
pname = "drumkv1";
- version = "0.9.9";
+ version = "0.9.11";
src = fetchurl {
url = "mirror://sourceforge/drumkv1/${pname}-${version}.tar.gz";
- sha256 = "02sa29fdjgwcf7izly685gxvga3bxyyqvskvfiisgm2xg3h9r983";
+ sha256 = "1wnjn175l0mz51k9pjf3pdzv54c4jlh63saavld9lm6zfgfs13d7";
};
buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools ];
nativeBuildInputs = [ pkgconfig ];
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "An old-school drum-kit sampler synthesizer with stereo fx";
homepage = http://drumkv1.sourceforge.net/;
license = licenses.gpl2Plus;
diff --git a/pkgs/applications/audio/ensemble-chorus/default.nix b/pkgs/applications/audio/ensemble-chorus/default.nix
new file mode 100644
index 00000000000..5940203d04d
--- /dev/null
+++ b/pkgs/applications/audio/ensemble-chorus/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, fltk, alsaLib, freetype, libXrandr, libXinerama, libXcursor, lv2, libjack2, cmake, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "ensemble-chorus";
+ version = "unstable-15-02-2019";
+
+ src = fetchFromGitHub {
+ owner = "jpcima";
+ repo = pname;
+ rev = "59baeb86b8851f521bc8162e22e3f15061662cc3";
+ sha256 = "0c1y10vyhrihcjvxqpqf6b52yk5yhwh813cfp6nla5ax2w88dbhr";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+
+ buildInputs = [
+ fltk alsaLib freetype libXrandr libXinerama libXcursor lv2 libjack2
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = https://github.com/jpcima/ensemble-chorus;
+ description = "Digital model of electronic string ensemble chorus";
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ license = licenses.boost;
+ };
+}
diff --git a/pkgs/applications/audio/flacon/default.nix b/pkgs/applications/audio/flacon/default.nix
index 02317fee15f..9dd5da4c1a9 100644
--- a/pkgs/applications/audio/flacon/default.nix
+++ b/pkgs/applications/audio/flacon/default.nix
@@ -5,13 +5,13 @@
stdenv.mkDerivation rec {
pname = "flacon";
- version = "5.4.0";
+ version = "5.5.1";
src = fetchFromGitHub {
owner = "flacon";
repo = "flacon";
rev = "v${version}";
- sha256 = "1j8gzk92kn10yb7rmvrnyq0ipda2swnkmsavqsk5ws0z600p3k93";
+ sha256 = "05pvg5xhc2azwzld08m81r4b2krqdbcbm5lmdvg2zkk67xq9pqyd";
};
nativeBuildInputs = [ cmake pkgconfig makeWrapper ];
diff --git a/pkgs/applications/audio/fluidsynth/default.nix b/pkgs/applications/audio/fluidsynth/default.nix
index bb86787a3cf..8e2895bf847 100644
--- a/pkgs/applications/audio/fluidsynth/default.nix
+++ b/pkgs/applications/audio/fluidsynth/default.nix
@@ -11,8 +11,8 @@ let
sha256 = "0n75jq3xgq46hfmjkaaxz3gic77shs4fzajq40c8gk043i84xbdh";
};
"2" = {
- fluidsynthVersion = "2.0.5";
- sha256 = "0rv0apxbj0cgm8f8sqf5xr6kdi4q58ph92ip6cg716ha0ca5lr8y";
+ fluidsynthVersion = "2.0.6";
+ sha256 = "0nas9pp9r8rnziznxm65x2yzf1ryg98zr3946g0br3s38sjf8l3a";
};
};
in
diff --git a/pkgs/applications/audio/fmit/default.nix b/pkgs/applications/audio/fmit/default.nix
index 680694aa403..ee45217e490 100644
--- a/pkgs/applications/audio/fmit/default.nix
+++ b/pkgs/applications/audio/fmit/default.nix
@@ -11,13 +11,13 @@ with stdenv.lib;
mkDerivation rec {
pname = "fmit";
- version = "1.2.6";
+ version = "1.2.13";
src = fetchFromGitHub {
owner = "gillesdegottex";
repo = "fmit";
rev = "v${version}";
- sha256 = "03nzkig5mw2rqwhwmg0qvc5cnk9bwh2wp13jh0mdrr935w0587mz";
+ sha256 = "1qyskam053pvlap1av80rgp12pzhr92rs88vqs6s0ia3ypnixcc6";
};
nativeBuildInputs = [ qmake itstool wrapQtAppsHook ];
diff --git a/pkgs/applications/audio/fmsynth/default.nix b/pkgs/applications/audio/fmsynth/default.nix
index 5e95d717968..248967e06e6 100644
--- a/pkgs/applications/audio/fmsynth/default.nix
+++ b/pkgs/applications/audio/fmsynth/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
buildPhase = ''
cd lv2
substituteInPlace GNUmakefile --replace "/usr/lib/lv2" "$out/lib/lv2"
- make
+ make SIMD=0
'';
preInstall = "mkdir -p $out/lib/lv2";
diff --git a/pkgs/applications/audio/friture/default.nix b/pkgs/applications/audio/friture/default.nix
new file mode 100644
index 00000000000..eae4b651685
--- /dev/null
+++ b/pkgs/applications/audio/friture/default.nix
@@ -0,0 +1,45 @@
+{ lib, fetchFromGitHub, python3Packages, wrapQtAppsHook }:
+
+let
+ py = python3Packages;
+in py.buildPythonApplication rec {
+ pname = "friture";
+ version = "0.37";
+
+ src = fetchFromGitHub {
+ owner = "tlecomte";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1ivy5qfd90w1s1icsphvvdnnqz563v3fhg5pws2zn4483cgnzc2y";
+ };
+
+ # module imports scipy.misc.factorial, but it has been removed since scipy
+ # 1.3.0; use scipy.special.factorial instead
+ patches = [ ./factorial.patch ];
+
+ nativeBuildInputs = (with py; [ numpy cython scipy ]) ++
+ [ wrapQtAppsHook ];
+
+ propagatedBuildInputs = with py; [
+ sounddevice
+ pyopengl
+ docutils
+ numpy
+ pyqt5
+ appdirs
+ pyrr
+ ];
+
+ postFixup = ''
+ wrapQtApp $out/bin/friture
+ wrapQtApp $out/bin/.friture-wrapped
+ '';
+
+ meta = with lib; {
+ description = "A real-time audio analyzer";
+ homepage = "http://friture.org/";
+ license = licenses.gpl3;
+ platforms = platforms.linux; # fails on Darwin
+ maintainers = [ maintainers.laikq ];
+ };
+}
diff --git a/pkgs/applications/audio/friture/factorial.patch b/pkgs/applications/audio/friture/factorial.patch
new file mode 100644
index 00000000000..de053802932
--- /dev/null
+++ b/pkgs/applications/audio/friture/factorial.patch
@@ -0,0 +1,13 @@
+diff --git a/friture/filter_design.py b/friture/filter_design.py
+index 9876c43..1cc749a 100644
+--- a/friture/filter_design.py
++++ b/friture/filter_design.py
+@@ -2,7 +2,7 @@
+ from numpy import pi, exp, arange, cos, sin, sqrt, zeros, ones, log, arange, set_printoptions
+ # the three following lines are a workaround for a bug with scipy and py2exe
+ # together. See http://www.pyinstaller.org/ticket/83 for reference.
+-from scipy.misc import factorial
++from scipy.special import factorial
+ import scipy
+ scipy.factorial = factorial
+
diff --git a/pkgs/applications/audio/giada/default.nix b/pkgs/applications/audio/giada/default.nix
new file mode 100644
index 00000000000..3c32365b97f
--- /dev/null
+++ b/pkgs/applications/audio/giada/default.nix
@@ -0,0 +1,43 @@
+{ lib, stdenv, fetchFromGitHub, autoreconfHook,
+ fltk, jansson, rtmidi, libsamplerate, libsndfile,
+ jack2, alsaLib, libpulseaudio,
+ libXpm, libXinerama, libXcursor }:
+
+stdenv.mkDerivation rec {
+ pname = "giada";
+ version = "0.15.4";
+
+ src = fetchFromGitHub {
+ owner = "monocasual";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0a5lqzxs417alpjr42q5197v6dwgrc74434znszk4lfhivr88p8v";
+ };
+
+ configureFlags = [ "--target=linux" ];
+ nativeBuildInputs = [
+ autoreconfHook
+ ];
+ buildInputs = [
+ fltk
+ libsndfile
+ libsamplerate
+ jansson
+ rtmidi
+ libXpm
+ jack2
+ alsaLib
+ libpulseaudio
+ libXinerama
+ libXcursor
+ ];
+
+ meta = with lib; {
+ description = "A free, minimal, hardcore audio tool for DJs, live performers and electronic musicians";
+ homepage = "https://giadamusic.com/";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ petabyteboy ];
+ platforms = platforms.all;
+ broken = stdenv.hostPlatform.isAarch64; # produces build failure on aarch64-linux
+ };
+}
diff --git a/pkgs/applications/audio/gigedit/default.nix b/pkgs/applications/audio/gigedit/default.nix
index d8fada45eb1..b8ec2d7116f 100644
--- a/pkgs/applications/audio/gigedit/default.nix
+++ b/pkgs/applications/audio/gigedit/default.nix
@@ -4,15 +4,13 @@
stdenv.mkDerivation rec {
pname = "gigedit";
- version = "1.1.0";
+ version = "1.1.1";
src = fetchurl {
url = "https://download.linuxsampler.org/packages/${pname}-${version}.tar.bz2";
- sha256 = "087pc919q28r1vw31c7w4m14bqnp4md1i2wbmk8w0vmwv2cbx2ni";
+ sha256 = "08db12crwf0dy1dbyrmivqqpg5zicjikqkmf2kb1ywpq0a9hcxrb";
};
- patches = [ ./gigedit-1.1.0-pangomm-2.40.1.patch ];
-
preConfigure = "make -f Makefile.svn";
nativeBuildInputs = [ autoconf automake intltool libtool pkgconfig which ];
diff --git a/pkgs/applications/audio/gigedit/gigedit-1.1.0-pangomm-2.40.1.patch b/pkgs/applications/audio/gigedit/gigedit-1.1.0-pangomm-2.40.1.patch
deleted file mode 100644
index eb00fcc87a2..00000000000
--- a/pkgs/applications/audio/gigedit/gigedit-1.1.0-pangomm-2.40.1.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/src/gigedit/wrapLabel.cc
-+++ b/src/gigedit/wrapLabel.cc
-@@ -64,12 +64,7 @@ WrapLabel::WrapLabel(const Glib::ustring &text) // IN: The label text
- : mWrapWidth(0),
- mWrapHeight(0)
- {
-- // pangomm >= 2.35.1
--#if PANGOMM_MAJOR_VERSION > 2 || (PANGOMM_MAJOR_VERSION == 2 && (PANGOMM_MINOR_VERSION > 35 || (PANGOMM_MINOR_VERSION == 35 && PANGOMM_MICRO_VERSION >= 1)))
-- get_layout()->set_wrap(Pango::WrapMode::WORD_CHAR);
--#else
- get_layout()->set_wrap(Pango::WRAP_WORD_CHAR);
--#endif
- set_alignment(0.0, 0.0);
- set_text(text);
- }
diff --git a/pkgs/applications/audio/gnome-podcasts/default.nix b/pkgs/applications/audio/gnome-podcasts/default.nix
index eeafdc80344..7a44ebe6769 100644
--- a/pkgs/applications/audio/gnome-podcasts/default.nix
+++ b/pkgs/applications/audio/gnome-podcasts/default.nix
@@ -1,45 +1,74 @@
-{ stdenv, fetchurl, fetchpatch, meson, ninja, gettext, cargo, rustc, python3, pkgconfig, gnome3
-, glib, libhandy, gtk3, dbus, openssl, sqlite, gst_all_1, wrapGAppsHook }:
+{ stdenv
+, rustPlatform
+, fetchFromGitLab
+, fetchpatch
+, meson
+, ninja
+, gettext
+, cargo
+, rustc
+, python3
+, pkgconfig
+, gnome3
+, glib
+, libhandy
+, gtk3
+, dbus
+, openssl
+, sqlite
+, gst_all_1
+, wrapGAppsHook
+}:
-# TODO: build from git for easier updates
-# rustPlatform.buildRustPackage rec {
-stdenv.mkDerivation {
- version = "0.4.6";
+rustPlatform.buildRustPackage rec {
+ version = "0.4.7";
pname = "gnome-podcasts";
- src = fetchurl {
- url = https://gitlab.gnome.org/World/podcasts/uploads/e59ac5d618d7daf4c7f33ba72957c466/gnome-podcasts-0.4.6.tar.xz;
- sha256 = "0g2rk3w251fp5jwbxs5ya1adv8nsgdqjy1vmfg8qqab6qyndhbrc";
+ src = fetchFromGitLab {
+ domain = "gitlab.gnome.org";
+ owner = "World";
+ repo = "podcasts";
+ rev = version;
+ sha256 = "0vy5i77bv8c22ldhrnr4z6kx22zqnb1lg3s7y8673bqjgd7dppi0";
};
- patches = [
- # podcasts-data would fail to build because it errors on warnings
- (fetchpatch {
- url = "https://gitlab.gnome.org/World/podcasts/commit/7dc1b25ee7fc59a188312d31b1fa00c3110ae63e.patch";
- sha256 = "03ibbh1snk1391vnni529agqs14lzg5g0axjgpf3gn8dwwh1yvd5";
- })
- ];
-
- # src = fetchFromGitLab {
- # domain = "gitlab.gnome.org";
- # owner = "World";
- # repo = "podcasts";
- # rev = version;
- # sha256 = "15xj98dhxvys0cnya9488qsfsm0ys1wy69wkc39z8j6hwdm7byq2";
- # };
+ cargoSha256 = "1h0n8zclb8a1b1ri83viiwwzlj3anm38m4cp38aqyf6q40qga35q";
nativeBuildInputs = [
- meson ninja pkgconfig gettext cargo rustc python3 wrapGAppsHook
- ];
- buildInputs = [
- glib gtk3 libhandy dbus openssl sqlite gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-bad
+ meson
+ ninja
+ pkgconfig
+ gettext
+ cargo
+ rustc
+ python3
+ wrapGAppsHook
];
- # cargoSha256 = "0721b5f700vvvzvmdl8nfjaa6j412q1fjssgrjv8n6rmn9z13d2v";
+ buildInputs = [
+ glib
+ gtk3
+ libhandy
+ dbus
+ openssl
+ sqlite
+ gst_all_1.gstreamer
+ gst_all_1.gst-plugins-base
+ gst_all_1.gst-plugins-bad
+ ];
+
+ # use Meson/Ninja phases
+ configurePhase = null;
+ buildPhase = null;
+ checkPhase = null;
+ installPhase = null;
+
+ # tests require network
+ doCheck = false;
postPatch = ''
chmod +x scripts/compile-gschema.py # patchShebangs requires executable file
- patchShebangs scripts/compile-gschema.py
+ patchShebangs scripts/compile-gschema.py scripts/cargo.sh scripts/test.sh
'';
meta = with stdenv.lib; {
diff --git a/pkgs/applications/audio/gpodder/default.nix b/pkgs/applications/audio/gpodder/default.nix
index 656018907a5..246cba590f4 100644
--- a/pkgs/applications/audio/gpodder/default.nix
+++ b/pkgs/applications/audio/gpodder/default.nix
@@ -5,14 +5,14 @@
python3Packages.buildPythonApplication rec {
pname = "gpodder";
- version = "3.10.9";
+ version = "3.10.11";
format = "other";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = version;
- sha256 = "1sdmr1sq1d4p492zp9kq3npl7p56yr0pr470z9r6xxcylax5mhfq";
+ sha256 = "15f5z3cnch9lpzbz73l4wjykv9n74y8djz5db53la2ql4ihaxfz9";
};
patches = [
diff --git a/pkgs/applications/audio/gradio/default.nix b/pkgs/applications/audio/gradio/default.nix
index c4a8f2fce02..487b0a730d8 100644
--- a/pkgs/applications/audio/gradio/default.nix
+++ b/pkgs/applications/audio/gradio/default.nix
@@ -16,7 +16,7 @@
, gst_plugins ? with gst_all_1; [ gst-plugins-good gst-plugins-ugly ]
}:
let
- version = "7.2";
+ version = "7.3";
in stdenv.mkDerivation {
pname = "gradio";
@@ -26,7 +26,7 @@ in stdenv.mkDerivation {
owner = "haecker-felix";
repo = "gradio";
rev = "v${version}";
- sha256 = "0c4vlrfl0ljkiwarpwa8wcfmmihh6a5j4pi4yr0qshyl9xxvxiv3";
+ sha256 = "00982dynl36lpsrx3mkd2a479zsrc8jvwfb8i7pi6w7fzzd8n8bl";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/audio/gxmatcheq-lv2/default.nix b/pkgs/applications/audio/gxmatcheq-lv2/default.nix
new file mode 100644
index 00000000000..1d5579d74c0
--- /dev/null
+++ b/pkgs/applications/audio/gxmatcheq-lv2/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, xorg, xorgproto, cairo, lv2, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "GxMatchEQ.lv2";
+ version = "0.1";
+
+ src = fetchFromGitHub {
+ owner = "brummer10";
+ repo = pname;
+ rev = "V${version}";
+ sha256 = "0azdmgzqwjn26nx38iw13666a1i4y2bv39wk89pf6ihdi46klf72";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ xorg.libX11 xorgproto cairo lv2
+ ];
+
+ # error: format not a string literal and no format arguments [-Werror=format-security]
+ hardeningDisable = [ "format" ];
+
+ installFlags = [ "INSTALL_DIR=$(out)/lib/lv2" ];
+
+ meta = with stdenv.lib; {
+ 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/i-score/default.nix b/pkgs/applications/audio/i-score/default.nix
index 2cc39e64943..f3928499413 100644
--- a/pkgs/applications/audio/i-score/default.nix
+++ b/pkgs/applications/audio/i-score/default.nix
@@ -70,7 +70,7 @@ stdenv.mkDerivation rec {
];
preConfigure = ''
- export CMAKE_PREFIX_PATH="$CMAKE_PREFIX_PATH:$(echo "${jamomacore}/jamoma/share/cmake/Jamoma")"
+ export CMAKE_PREFIX_PATH="''${CMAKE_PREFIX_PATH-}:$(echo "${jamomacore}/jamoma/share/cmake/Jamoma")"
'';
postInstall = ''rm $out/bin/i-score.sh'';
diff --git a/pkgs/applications/audio/kid3/default.nix b/pkgs/applications/audio/kid3/default.nix
index dfb07c4f456..75ffd083a5a 100644
--- a/pkgs/applications/audio/kid3/default.nix
+++ b/pkgs/applications/audio/kid3/default.nix
@@ -9,11 +9,11 @@
stdenv.mkDerivation rec {
pname = "kid3";
- version = "3.7.1";
+ version = "3.8.0";
src = fetchurl {
url = "mirror://sourceforge/project/kid3/kid3/${version}/${pname}-${version}.tar.gz";
- sha256 = "0xkrsjrbr3z8cn8hjf623l28r3b755gr11i0clv8d8i3s10vhbd8";
+ sha256 = "1a6ixkkdp1fl3arylx06w73mwf26i0ibyplwwcn2kw5xsfxmbjp6";
};
nativeBuildInputs = [ wrapQtAppsHook ];
diff --git a/pkgs/applications/audio/linuxsampler/default.nix b/pkgs/applications/audio/linuxsampler/default.nix
index 26fc2408d8a..f13f10d15e8 100644
--- a/pkgs/applications/audio/linuxsampler/default.nix
+++ b/pkgs/applications/audio/linuxsampler/default.nix
@@ -3,11 +3,11 @@
stdenv.mkDerivation rec {
pname = "linuxsampler";
- version = "2.1.0";
+ version = "2.1.1";
src = fetchurl {
url = "https://download.linuxsampler.org/packages/${pname}-${version}.tar.bz2";
- sha256 = "0fdxpw7jjfi058l95131d6d8538h05z7n94l60i6mhp9xbplj2jf";
+ sha256 = "1gijf50x5xbpya5dj3v2mzj7azx4qk9p012csgddp73f0qi0n190";
};
preConfigure = ''
diff --git a/pkgs/applications/audio/lmms/default.nix b/pkgs/applications/audio/lmms/default.nix
index d22065eb9fe..99503fc3942 100644
--- a/pkgs/applications/audio/lmms/default.nix
+++ b/pkgs/applications/audio/lmms/default.nix
@@ -1,9 +1,9 @@
{ stdenv, fetchFromGitHub, cmake, pkgconfig, alsaLib ? null, fftwFloat, fltk13
, fluidsynth_1 ? null, lame ? null, libgig ? null, libjack2 ? null, libpulseaudio ? null
, libsamplerate, libsoundio ? null, libsndfile, libvorbis ? null, portaudio ? null
-, qtbase, qtx11extras, qttools, SDL ? null }:
+, qtbase, qtx11extras, qttools, SDL ? null, mkDerivation }:
-stdenv.mkDerivation rec {
+mkDerivation rec {
pname = "lmms";
version = "1.2.0-rc7";
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
description = "DAW similar to FL Studio (music production software)";
homepage = https://lmms.io;
license = licenses.gpl2Plus;
- platforms = platforms.linux;
+ 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 e4d508b2a1f..8bdf45a968a 100644
--- a/pkgs/applications/audio/lollypop/default.nix
+++ b/pkgs/applications/audio/lollypop/default.nix
@@ -11,7 +11,6 @@
, appstream-glib
, desktop-file-utils
, totem-pl-parser
-, hicolor-icon-theme
, gobject-introspection
, wrapGAppsHook
, lastFMSupport ? true
@@ -20,7 +19,7 @@
python3.pkgs.buildPythonApplication rec {
pname = "lollypop";
- version = "1.1.4.14";
+ version = "1.2.5";
format = "other";
doCheck = false;
@@ -29,7 +28,7 @@ python3.pkgs.buildPythonApplication rec {
url = "https://gitlab.gnome.org/World/lollypop";
rev = "refs/tags/${version}";
fetchSubmodules = true;
- sha256 = "004cwbnxss6vmdsc6i0y83h3xbc2bzc0ra4z99pkizkky2mz6swj";
+ sha256 = "148p3ab7nnfz13hgjkx1cf2ahq9mgl72csrl35xy6d0nkfqbfr8r";
};
nativeBuildInputs = [
@@ -43,7 +42,6 @@ python3.pkgs.buildPythonApplication rec {
];
buildInputs = with gst_all_1; [
- gobject-introspection
gst-libav
gst-plugins-bad
gst-plugins-base
@@ -51,7 +49,6 @@ python3.pkgs.buildPythonApplication rec {
gst-plugins-ugly
gstreamer
gtk3
- hicolor-icon-theme
libsoup
totem-pl-parser
] ++ lib.optional lastFMSupport libsecret;
@@ -71,11 +68,12 @@ python3.pkgs.buildPythonApplication rec {
patchShebangs meson_post_install.py
'';
- preFixup = ''
- buildPythonPath "$out $propagatedBuildInputs"
- patchPythonScript "$out/libexec/lollypop-sp"
+ postFixup = ''
+ wrapPythonProgramsIn $out/libexec "$out $propagatedBuildInputs"
'';
+ strictDeps = false;
+
# Produce only one wrapper using wrap-python passing
# gappsWrapperArgs to wrap-python additional wrapper
# argument
diff --git a/pkgs/applications/audio/lsp-plugins/default.nix b/pkgs/applications/audio/lsp-plugins/default.nix
index f3abfbca145..47d8f165ad0 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.9";
+ version = "1.1.10";
src = fetchFromGitHub {
owner = "sadko4u";
repo = pname;
rev = "${pname}-${version}";
- sha256 = "1dzpl7f354rwp37bkr9h2yyafykcdn6m1qqfshqg77fj0pcsw8r2";
+ sha256 = "09gmwzh1gq1q2lxn8fc1bpdh02h8vr7r0i040c1nx256wgfsarqb";
};
nativeBuildInputs = [ pkgconfig php expat ];
@@ -154,6 +154,6 @@ stdenv.mkDerivation rec {
homepage = https://lsp-plug.in;
maintainers = with maintainers; [ magnetophon ];
license = licenses.gpl2;
- platforms = platforms.linux;
+ platforms = [ "x86_64-linux" ];
};
}
diff --git a/pkgs/applications/audio/mopidy/default.nix b/pkgs/applications/audio/mopidy/default.nix
index c574c862f52..2df54fa7fb4 100644
--- a/pkgs/applications/audio/mopidy/default.nix
+++ b/pkgs/applications/audio/mopidy/default.nix
@@ -4,13 +4,13 @@
pythonPackages.buildPythonApplication rec {
pname = "mopidy";
- version = "2.2.3";
+ version = "2.3.1";
src = fetchFromGitHub {
owner = "mopidy";
repo = "mopidy";
rev = "v${version}";
- sha256 = "0i9rpnlmgrnkgmr9hyx9sky9gzj2cjhay84a0yaijwcb9nmr8nnc";
+ sha256 = "1qdflxr0an6l2m3j90h55bzyj7rjlkkwmxx945hwv8xi472rcgdj";
};
nativeBuildInputs = [ wrapGAppsHook ];
@@ -21,7 +21,7 @@ pythonPackages.buildPythonApplication rec {
];
propagatedBuildInputs = with pythonPackages; [
- gst-python pygobject3 pykka tornado_4 requests
+ gst-python pygobject3 pykka tornado_4 requests setuptools
] ++ stdenv.lib.optional (!stdenv.isDarwin) dbus-python;
# There are no tests
diff --git a/pkgs/applications/audio/mopidy/iris.nix b/pkgs/applications/audio/mopidy/iris.nix
index 3a663fd33c8..37e233b5e9e 100644
--- a/pkgs/applications/audio/mopidy/iris.nix
+++ b/pkgs/applications/audio/mopidy/iris.nix
@@ -2,11 +2,11 @@
pythonPackages.buildPythonApplication rec {
pname = "Mopidy-Iris";
- version = "3.39.0";
+ version = "3.42.2";
src = pythonPackages.fetchPypi {
inherit pname version;
- sha256 = "1d2g66gvm7yaz4nbxlh23lj2xfkhi3hsg2k646m1za510f8dzlag";
+ sha256 = "1v1dy857kxxn1si0x7p3qz63l1af5pln1jji1f7fis6id8iy7wfm";
};
propagatedBuildInputs = [
diff --git a/pkgs/applications/audio/mp3gain/default.nix b/pkgs/applications/audio/mp3gain/default.nix
index 907d4b8be16..233aebfa147 100644
--- a/pkgs/applications/audio/mp3gain/default.nix
+++ b/pkgs/applications/audio/mp3gain/default.nix
@@ -1,13 +1,13 @@
-{ stdenv, fetchurl, unzip }:
+{ stdenv, fetchurl, unzip, mpg123 }:
stdenv.mkDerivation {
- name = "mp3gain-1.5.2";
+ name = "mp3gain-1.6.2";
src = fetchurl {
- url = "mirror://sourceforge/mp3gain/mp3gain-1_5_2-src.zip";
- sha256 = "1jkgry59m8cnnfq05b9y1h4x4wpy3iq8j68slb9qffwa3ajcgbfv";
+ url = "mirror://sourceforge/mp3gain/mp3gain-1_6_2-src.zip";
+ sha256 = "0varr6y7k8zarr56b42r0ad9g3brhn5vv3xjg1c0v19jxwr4gh2w";
};
- buildInputs = [ unzip ];
+ buildInputs = [ unzip mpg123 ];
sourceRoot = ".";
diff --git a/pkgs/applications/audio/mpc/default.nix b/pkgs/applications/audio/mpc/default.nix
index b13e1cc037a..9a273299297 100644
--- a/pkgs/applications/audio/mpc/default.nix
+++ b/pkgs/applications/audio/mpc/default.nix
@@ -1,21 +1,19 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, mpd_clientlib }:
+{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, mpd_clientlib, sphinx }:
stdenv.mkDerivation rec {
pname = "mpc";
- version = "0.28";
+ version = "0.31";
src = fetchFromGitHub {
owner = "MusicPlayerDaemon";
repo = "mpc";
rev = "v${version}";
- sha256 = "1g8i4q5xsqdhidyjpvj6hzbhxacv27cb47ndv9k68whd80c5f9n9";
+ sha256 = "06wn5f24bgkqmhh2p8rbizmqibzqr4x1q7c6zl0pfq7mdy49g5ds";
};
buildInputs = [ mpd_clientlib ];
- nativeBuildInputs = [ autoreconfHook pkgconfig ];
-
- enableParallelBuilding = true;
+ nativeBuildInputs = [ meson ninja pkgconfig sphinx ];
meta = with stdenv.lib; {
description = "A minimalist command line interface to MPD";
diff --git a/pkgs/applications/audio/mpg123/default.nix b/pkgs/applications/audio/mpg123/default.nix
index b201bd65cae..6c4b9a43176 100644
--- a/pkgs/applications/audio/mpg123/default.nix
+++ b/pkgs/applications/audio/mpg123/default.nix
@@ -3,11 +3,11 @@
}:
stdenv.mkDerivation rec {
- name = "mpg123-1.25.11";
+ name = "mpg123-1.25.13";
src = fetchurl {
url = "mirror://sourceforge/mpg123/${name}.tar.bz2";
- sha256 = "1cpal2zsm3zgi6f48vvwpg6wgkv42ndi7lk3zsg7sz52z83k61nz";
+ sha256 = "02l915jq0ymndb082g6w89bpf66z04ifa1lr7ga3yycw6m46hc4h";
};
buildInputs = stdenv.lib.optional (!stdenv.isDarwin) alsaLib;
diff --git a/pkgs/applications/audio/mpg321/default.nix b/pkgs/applications/audio/mpg321/default.nix
index 65dfe3484b6..fdefcf7e77d 100644
--- a/pkgs/applications/audio/mpg321/default.nix
+++ b/pkgs/applications/audio/mpg321/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, libao, libmad, libid3tag, zlib, alsaLib
+{stdenv, fetchurl, fetchpatch, libao, libmad, libid3tag, zlib, alsaLib
# Specify default libao output plugin to use (e.g. "alsa", "pulse" …).
# If null, it will use the libao system default.
, defaultAudio ? null
@@ -13,6 +13,14 @@ stdenv.mkDerivation rec {
sha256 = "0ki8mh76bbmdh77qsiw682dvi8y468yhbdabqwg05igmwc1wqvq5";
};
+ patches = [
+ (fetchpatch {
+ name = "CVE-2018-7263.patch";
+ url = "https://sources.debian.org/data/main/m/mpg321/0.3.2-3/debian/patches/handle_illegal_bitrate_value.patch";
+ sha256 = "15simp5fjvm9b024ryfh441rkh2d5bcrizqkzlrh07n9sm7fkw6x";
+ })
+ ];
+
hardeningDisable = [ "format" ];
configureFlags =
diff --git a/pkgs/applications/audio/ncmpc/default.nix b/pkgs/applications/audio/ncmpc/default.nix
index d89b61aa21f..58eb5462ef8 100644
--- a/pkgs/applications/audio/ncmpc/default.nix
+++ b/pkgs/applications/audio/ncmpc/default.nix
@@ -1,25 +1,32 @@
{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, glib, ncurses
-, mpd_clientlib, gettext, boost }:
+, mpd_clientlib, gettext, boost
+, pcreSupport ? false
+, pcre ? null
+}:
+
+with stdenv.lib;
+
+assert pcreSupport -> pcre != null;
stdenv.mkDerivation rec {
pname = "ncmpc";
- version = "0.34";
+ version = "0.36";
src = fetchFromGitHub {
owner = "MusicPlayerDaemon";
repo = "ncmpc";
rev = "v${version}";
- sha256 = "0ffby37qdg251c1w0vl6rmd13akbydnf12468z4vrl0ybwfd7fc4";
+ sha256 = "1ssmk1p43gjhcqi86sh6b7csqpwwpf3hs32cmnylv6pmbcwbs69h";
};
- buildInputs = [ glib ncurses mpd_clientlib boost ];
+ buildInputs = [ glib ncurses mpd_clientlib boost ]
+ ++ optional pcreSupport pcre;
nativeBuildInputs = [ meson ninja pkgconfig gettext ];
mesonFlags = [
"-Dlirc=disabled"
- "-Dregex=disabled"
"-Ddocumentation=disabled"
- ];
+ ] ++ optional (!pcreSupport) "-Dregex=disabled";
meta = with stdenv.lib; {
description = "Curses-based interface for MPD (music player daemon)";
diff --git a/pkgs/applications/audio/ncspot/default.nix b/pkgs/applications/audio/ncspot/default.nix
new file mode 100644
index 00000000000..63ae9278c5d
--- /dev/null
+++ b/pkgs/applications/audio/ncspot/default.nix
@@ -0,0 +1,43 @@
+{ lib, fetchFromGitHub, rustPlatform, pkg-config, ncurses, openssl
+, withALSA ? true, alsaLib ? null
+, withPulseAudio ? false, libpulseaudio ? null
+, withPortAudio ? false, portaudio ? null
+}:
+
+let
+ features = [ "cursive/pancurses-backend" ]
+ ++ lib.optional withALSA "alsa_backend"
+ ++ lib.optional withPulseAudio "pulseaudio_backend"
+ ++ lib.optional withPortAudio "portaudio_backend";
+in
+rustPlatform.buildRustPackage rec {
+ pname = "ncspot-unstable";
+ version = "2019-10-12";
+
+ src = fetchFromGitHub {
+ owner = "hrkfdn";
+ repo = "ncspot";
+ rev = "4defded54646958268a20787917e4721ae96407d";
+ sha256 = "1w3cmilwjzk3pfnq97qgz6hzxgjgi27dm8jq7maw87qyl3v17gyg";
+ };
+
+ cargoSha256 = "1w1fk39pragfy2i2myw99mqf63w6fw4nr2kri8ily2iqc6g9xpgw";
+
+ cargoBuildFlags = [ "--no-default-features" "--features" "${lib.concatStringsSep "," features}" ];
+
+ nativeBuildInputs = [ pkg-config ];
+
+ buildInputs = [ ncurses openssl ]
+ ++ lib.optional withALSA alsaLib
+ ++ lib.optional withPulseAudio libpulseaudio
+ ++ lib.optional withPortAudio portaudio;
+
+ doCheck = false;
+
+ meta = with lib; {
+ description = "Cross-platform ncurses Spotify client written in Rust, inspired by ncmpc and the likes";
+ homepage = "https://github.com/hrkfdn/ncspot";
+ license = licenses.bsd2;
+ maintainers = [ maintainers.marsam ];
+ };
+}
diff --git a/pkgs/applications/audio/openmpt123/default.nix b/pkgs/applications/audio/openmpt123/default.nix
index c9d69b5c7f2..08c5c1a5c36 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.1";
+ version = "0.4.9";
in stdenv.mkDerivation {
pname = "openmpt123";
inherit version;
src = fetchurl {
url = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${version}+release.autotools.tar.gz";
- sha256 = "1k1m1adjh4s2q9lxgkf836k5243akxrzq1hsdjhrkg4idd3pxzp4";
+ sha256 = "02kjwwh9d9i4rnfzqzr18pvcklc46yrs9mvdmjqx7kxg3c28hkqm";
};
enableParallelBuilding = true;
diff --git a/pkgs/applications/audio/osmid/default.nix b/pkgs/applications/audio/osmid/default.nix
new file mode 100644
index 00000000000..7e49b872a6a
--- /dev/null
+++ b/pkgs/applications/audio/osmid/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, alsaLib
+, libX11
+}:
+
+stdenv.mkDerivation rec {
+ pname = "osmid";
+ version = "0.6.8";
+
+ src = fetchFromGitHub {
+ owner = "llloret";
+ repo = "osmid";
+ rev = "v${version}";
+ sha256 = "1yl25abf343yvd49nfsgxsz7jf956zrsi5n4xyqb5ldlp2hifk15";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [ alsaLib libX11 ];
+
+ installPhase = ''
+ runHook preInstall
+ mkdir -p $out/bin
+ cp {m2o,o2m} $out/bin/
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/llloret/osmid";
+ description = "A lightweight, portable, easy to use tool to convert MIDI to OSC and OSC to MIDI";
+ license = licenses.mit;
+ maintainers = with maintainers; [ c0deaddict ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/applications/audio/padthv1/default.nix b/pkgs/applications/audio/padthv1/default.nix
index b424bce2433..6d97a2da739 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.9";
+ version = "0.9.11";
src = fetchurl {
url = "mirror://sourceforge/padthv1/${pname}-${version}.tar.gz";
- sha256 = "0axansxwa3vfc1n6a7jbaqyz6wmsffi37i4ggsl08gmqywz255xb";
+ sha256 = "02yfwyirjqxa075yqdnci9b9k57kdmkjvn9gnpdbnjp887pds76g";
};
buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools fftw ];
diff --git a/pkgs/applications/audio/parlatype/default.nix b/pkgs/applications/audio/parlatype/default.nix
index 1eb8b416a9a..fb5fe47f4f2 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.1";
+ version = "1.6.2";
src = fetchFromGitHub {
owner = "gkarsay";
repo = pname;
rev = "v${version}";
- sha256 = "0b811lwiylrjirx88gi9az1b1b71j2i5a4a6g56wp9qxln6lzjj2";
+ sha256 = "157423f40l8nd5da6y0qjmg4l3125zailp98w2hda3mxxn1j5ix3";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/audio/paulstretch/default.nix b/pkgs/applications/audio/paulstretch/default.nix
index b2c049c9eee..b9a3f39affb 100644
--- a/pkgs/applications/audio/paulstretch/default.nix
+++ b/pkgs/applications/audio/paulstretch/default.nix
@@ -1,5 +1,7 @@
-{ stdenv, fetchFromGitHub, audiofile, libvorbis, fltk, fftw, fftwFloat,
-minixml, pkgconfig, libmad, libjack2, portaudio, libsamplerate }:
+{ stdenv, fetchFromGitHub, fetchpatch
+, audiofile, libvorbis, fltk, fftw, fftwFloat
+, minixml, pkgconfig, libmad, libjack2, portaudio, libsamplerate
+}:
stdenv.mkDerivation {
pname = "paulstretch";
@@ -27,6 +29,13 @@ stdenv.mkDerivation {
libsamplerate
];
+ patches = [
+ (fetchpatch {
+ url = "https://github.com/paulnasca/paulstretch_cpp/pull/12.patch";
+ sha256 = "0lx1rfrs53afkiz1drp456asqgj5yv6hx3lkc01165cv1jsbw6q4";
+ })
+ ];
+
buildPhase = ''
bash compile_linux_fftw_jack.sh
'';
diff --git a/pkgs/applications/audio/pianobar/default.nix b/pkgs/applications/audio/pianobar/default.nix
index 40e45a76b4b..26b94f306bc 100644
--- a/pkgs/applications/audio/pianobar/default.nix
+++ b/pkgs/applications/audio/pianobar/default.nix
@@ -20,8 +20,8 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "A console front-end for Pandora.com";
- homepage = http://6xq.net/projects/pianobar/;
- platforms = platforms.linux;
+ homepage = "https://6xq.net/pianobar/";
+ platforms = platforms.unix;
license = licenses.mit; # expat version
};
}
diff --git a/pkgs/applications/audio/picard/default.nix b/pkgs/applications/audio/picard/default.nix
index 04a62b5d159..dc1118f47e0 100644
--- a/pkgs/applications/audio/picard/default.nix
+++ b/pkgs/applications/audio/picard/default.nix
@@ -4,13 +4,13 @@ let
pythonPackages = python3Packages;
in pythonPackages.buildPythonApplication rec {
pname = "picard";
- version = "2.1.3";
+ version = "2.2.2";
src = fetchFromGitHub {
owner = "metabrainz";
repo = pname;
rev = "release-${version}";
- sha256 = "1armg8vpvnbpk7rrfk9q7nj5gm56rza00ni9qwdyqpxp1xaz6apj";
+ sha256 = "1iibkvwpj862wcrl0fmyi6qhcgx4q5ay63yr0zyg0bkqgcka0gpr";
};
nativeBuildInputs = [ gettext qt5.wrapQtAppsHook qt5.qtbase ];
diff --git a/pkgs/applications/audio/pithos/default.nix b/pkgs/applications/audio/pithos/default.nix
index 5d86e37dec8..20a6e928cef 100644
--- a/pkgs/applications/audio/pithos/default.nix
+++ b/pkgs/applications/audio/pithos/default.nix
@@ -4,13 +4,13 @@
pythonPackages.buildPythonApplication rec {
pname = "pithos";
- version = "1.4.1";
+ version = "1.5.0";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = version;
- sha256 = "0vaw0rfcdh4bsp9b8la9bs36kw0iwia54y5x060byxhff9av6nj4";
+ sha256 = "10nnm55ql86x1qfmq6dx9a1igf7myjxibmvyhd7fyv06vdhfifgy";
};
format = "other";
diff --git a/pkgs/applications/audio/pulseaudio-ctl/default.nix b/pkgs/applications/audio/pulseaudio-ctl/default.nix
index 1ad57efda7a..6b7d242e1f6 100644
--- a/pkgs/applications/audio/pulseaudio-ctl/default.nix
+++ b/pkgs/applications/audio/pulseaudio-ctl/default.nix
@@ -7,13 +7,13 @@ let
in stdenv.mkDerivation rec {
name = "${pname}-${version}";
- version = "1.66";
+ version = "1.67";
src = fetchFromGitHub {
owner = "graysky2";
repo = pname;
rev = "v${version}";
- sha256 = "19a24w7y19551ar41q848w7r1imqkl9cpff4dpb7yry7qp1yjg0y";
+ sha256 = "1mf5r7x6aiqmx9mz7gpckrqvvzxnr5gs2q1k4m42rjk6ldkpdb46";
};
postPatch = ''
diff --git a/pkgs/applications/audio/pulseeffects/default.nix b/pkgs/applications/audio/pulseeffects/default.nix
index 83fb17189e1..302dd5c8e69 100644
--- a/pkgs/applications/audio/pulseeffects/default.nix
+++ b/pkgs/applications/audio/pulseeffects/default.nix
@@ -32,7 +32,6 @@
, rubberband
, mda_lv2
, lsp-plugins
-, hicolor-icon-theme
}:
let
@@ -47,13 +46,13 @@ let
];
in stdenv.mkDerivation rec {
pname = "pulseeffects";
- version = "4.6.6";
+ version = "4.6.8";
src = fetchFromGitHub {
owner = "wwmm";
repo = "pulseeffects";
rev = "v${version}";
- sha256 = "15w1kc1b0i8wrkrbfzrvcscanxvcsz336bfyi1awb1lbclvd3sf4";
+ sha256 = "09crsg73mvqdknvh6lczwx16x73zb2vb3m53bsapqiaq4lmwy3qr";
};
nativeBuildInputs = [
@@ -86,7 +85,6 @@ in stdenv.mkDerivation rec {
dbus
fftwFloat
zita-convolver
- hicolor-icon-theme
];
postPatch = ''
diff --git a/pkgs/applications/audio/qjackctl/default.nix b/pkgs/applications/audio/qjackctl/default.nix
index 0b50d3098aa..84cc11b8bf3 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.5.9";
+ version = "0.6.0";
pname = "qjackctl";
# some dependencies such as killall have to be installed additionally
src = fetchurl {
url = "mirror://sourceforge/qjackctl/${pname}-${version}.tar.gz";
- sha256 = "1saywsda9m124rmjp7i3n0llryaliabjxhqhvqr6dm983qy7pypk";
+ sha256 = "1kddvxxhwvw1ps1c1drr08hxqci7jw4jwr8h1d9isb8agydfxmcx";
};
buildInputs = [
diff --git a/pkgs/applications/audio/qmidinet/default.nix b/pkgs/applications/audio/qmidinet/default.nix
index d627f352e73..01a33db5293 100644
--- a/pkgs/applications/audio/qmidinet/default.nix
+++ b/pkgs/applications/audio/qmidinet/default.nix
@@ -1,12 +1,12 @@
{ stdenv, fetchurl, pkgconfig, qt5, alsaLib, libjack2 }:
stdenv.mkDerivation rec {
- version = "0.5.5";
+ version = "0.6.0";
pname = "qmidinet";
src = fetchurl {
url = "mirror://sourceforge/qmidinet/${pname}-${version}.tar.gz";
- sha256 = "0az20hh14g7k6h779dk1b6fshxnfj2664sj6ypgllzriwv430x9y";
+ sha256 = "07hgk3a8crx262rm1fzggqarz8f1ml910vwgd32mbvlarws5cv0n";
};
hardeningDisable = [ "format" ];
diff --git a/pkgs/applications/audio/qmmp/default.nix b/pkgs/applications/audio/qmmp/default.nix
index ef52c65b105..aee373329ce 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.3";
+ name = "qmmp-1.3.4";
src = fetchurl {
url = "http://qmmp.ylsoftware.com/files/${name}.tar.bz2";
- sha256 = "1777kqgvbkshqlawy00gbgwflxflwmjjidqdq29mhqszs76r6727";
+ sha256 = "0j9vgm6216w7arwl919p9rps0a9r6s4415spl3qkpifhwlk90zg0";
};
nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/pkgs/applications/audio/qsampler/default.nix b/pkgs/applications/audio/qsampler/default.nix
index a878f4edad8..69cc5e6e89f 100644
--- a/pkgs/applications/audio/qsampler/default.nix
+++ b/pkgs/applications/audio/qsampler/default.nix
@@ -1,13 +1,13 @@
{ stdenv, fetchurl, autoconf, automake, libtool, pkgconfig, qttools
-, liblscp, libgig, qtbase }:
+, liblscp, libgig, qtbase, mkDerivation }:
-stdenv.mkDerivation rec {
+mkDerivation rec {
pname = "qsampler";
- version = "0.5.6";
+ version = "0.6.0";
src = fetchurl {
url = "mirror://sourceforge/qsampler/${pname}-${version}.tar.gz";
- sha256 = "0lx2mzyajmjckwfvgf8p8bahzpj0n0lflyip41jk32nwd2hzjhbs";
+ sha256 = "1krhjyd67hvnv6sgndwq81lfvnb4qkhc7da1119fn2lzl7hx9wh3";
};
nativeBuildInputs = [ autoconf automake libtool pkgconfig qttools ];
diff --git a/pkgs/applications/audio/qsynth/default.nix b/pkgs/applications/audio/qsynth/default.nix
index 81b7e35b630..aab854d24ad 100644
--- a/pkgs/applications/audio/qsynth/default.nix
+++ b/pkgs/applications/audio/qsynth/default.nix
@@ -1,17 +1,19 @@
-{ stdenv, fetchurl, alsaLib, fluidsynth, libjack2, qt5, autoconf, pkgconfig }:
+{ stdenv, fetchurl, alsaLib, fluidsynth, libjack2, autoconf, pkgconfig
+, mkDerivation, qtbase, qttools, qtx11extras
+}:
-stdenv.mkDerivation rec {
+mkDerivation rec {
pname = "qsynth";
- version = "0.5.7";
+ version = "0.6.0";
src = fetchurl {
url = "mirror://sourceforge/qsynth/${pname}-${version}.tar.gz";
- sha256 = "18im4w8agj60nkppwbkxqnhpp13z5li3w30kklv4lgs20rvgbvl6";
+ sha256 = "173v0jqybi5szxxvj4n6wyg9sj54rmm6pxwhynx8wkm7nsbh0aij";
};
nativeBuildInputs = [ autoconf pkgconfig ];
- buildInputs = [ alsaLib fluidsynth libjack2 qt5.qtbase qt5.qttools qt5.qtx11extras ];
+ buildInputs = [ alsaLib fluidsynth libjack2 qtbase qttools qtx11extras ];
enableParallelBuilding = true;
diff --git a/pkgs/applications/audio/qtractor/default.nix b/pkgs/applications/audio/qtractor/default.nix
index 2e504a3c9ec..dee9b8f20c8 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.9";
+ version = "0.9.10";
src = fetchurl {
url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
- sha256 = "0qlbccdxyfy0f09y6qg1xkg12fm67bf2f2c27c22cg8lzk9ang5j";
+ sha256 = "00fj762qdna4bm8hshdhkwfa48s01bi5sk4f030rfk77mivl09jk";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/audio/quodlibet/default.nix b/pkgs/applications/audio/quodlibet/default.nix
index c874bdd40d2..573dca518e3 100644
--- a/pkgs/applications/audio/quodlibet/default.nix
+++ b/pkgs/applications/audio/quodlibet/default.nix
@@ -65,5 +65,6 @@ python3.pkgs.buildPythonApplication rec {
maintainers = with maintainers; [ coroa sauyon ];
homepage = https://quodlibet.readthedocs.io/en/latest/;
+ broken = true;
};
}
diff --git a/pkgs/applications/audio/radiotray-ng/default.nix b/pkgs/applications/audio/radiotray-ng/default.nix
index c0186a146be..a64e407b39b 100644
--- a/pkgs/applications/audio/radiotray-ng/default.nix
+++ b/pkgs/applications/audio/radiotray-ng/default.nix
@@ -21,7 +21,7 @@
# User-agent info
, lsb-release
# rt2rtng
-, python2
+, python3
# Testing
, gtest
# Fixup
@@ -36,17 +36,17 @@ let
gst-libav
];
# For the rt2rtng utility for converting bookmark file to -ng format
- pythonInputs = with python2.pkgs; [ python2 lxml ];
+ pythonInputs = with python3.pkgs; [ python lxml ];
in
stdenv.mkDerivation rec {
pname = "radiotray-ng";
- version = "0.2.6";
+ version = "0.2.7";
src = fetchFromGitHub {
owner = "ebruck";
- repo = "radiotray-ng";
+ repo = pname;
rev = "v${version}";
- sha256 = "0khrfxjas2ldh0kksq7l811srqy16ahjxchvz0hhykx5hykymxlb";
+ sha256 = "1v2nsz7s0jj0wmqabzk6akcf1353rachm1lfq77hxbq9z5pw8pgb";
};
nativeBuildInputs = [ cmake pkgconfig wrapGAppsHook makeWrapper ];
diff --git a/pkgs/applications/audio/reaper/default.nix b/pkgs/applications/audio/reaper/default.nix
index 9cff98f6137..3b780ee2b36 100644
--- a/pkgs/applications/audio/reaper/default.nix
+++ b/pkgs/applications/audio/reaper/default.nix
@@ -6,11 +6,11 @@
stdenv.mkDerivation rec {
pname = "reaper";
- version = "5.981";
+ version = "5.984";
src = fetchurl {
url = "https://www.reaper.fm/files/${stdenv.lib.versions.major version}.x/reaper${builtins.replaceStrings ["."] [""] version}_linux_x86_64.tar.xz";
- sha256 = "0v4347i0pgzlinas4431dfbv1h9fk6vihvahh73valxvhydyxr8q";
+ sha256 = "01yy0s9b9mkl6v66vgdfxl2zhr36abridih1d4ajbrdn60vppykw";
};
nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
diff --git a/pkgs/applications/audio/rofi-mpd/default.nix b/pkgs/applications/audio/rofi-mpd/default.nix
new file mode 100644
index 00000000000..9def4a292f6
--- /dev/null
+++ b/pkgs/applications/audio/rofi-mpd/default.nix
@@ -0,0 +1,26 @@
+{ lib, python3Packages, fetchFromGitHub }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "rofi-mpd";
+ version = "1.1.0";
+
+ src = fetchFromGitHub {
+ owner = "JakeStanger";
+ repo = "Rofi_MPD";
+ rev = "v${version}";
+ sha256 = "0pdra1idgas3yl9z9v7b002igwg2c1mv0yw2ffb8rsbx88x4gbai";
+ };
+
+ propagatedBuildInputs = with python3Packages; [ mutagen mpd2 ];
+
+ # upstream doesn't contain a test suite
+ doCheck = false;
+
+ meta = with lib; {
+ description = "A rofi menu for interacting with MPD written in Python";
+ homepage = "https://github.com/JakeStanger/Rofi_MPD";
+ license = licenses.mit;
+ maintainers = with maintainers; [ jakestanger ];
+ platforms = platforms.all;
+ };
+}
diff --git a/pkgs/applications/audio/samplv1/default.nix b/pkgs/applications/audio/samplv1/default.nix
index 5a62a8a4292..4874969b633 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.9";
+ version = "0.9.11";
src = fetchurl {
url = "mirror://sourceforge/samplv1/${pname}-${version}.tar.gz";
- sha256 = "1y61wb0bzm1cz7y8xxv6hp8mrkfb9zm9irg6zs4g6aanw539r6l8";
+ sha256 = "17zs8kvvwqv00bm4lxpn09a5hxjlbz7k5mkl3k7jspw7rqn3djf2";
};
buildInputs = [ libjack2 alsaLib liblo libsndfile lv2 qt5.qtbase qt5.qttools];
diff --git a/pkgs/applications/audio/setbfree/default.nix b/pkgs/applications/audio/setbfree/default.nix
index 9502cb7b7e7..6d5944b7aff 100644
--- a/pkgs/applications/audio/setbfree/default.nix
+++ b/pkgs/applications/audio/setbfree/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchurl, alsaLib, freetype, ftgl, libjack2, libX11, lv2
+{ stdenv, fetchzip, alsaLib, freetype, ftgl, libjack2, libX11, lv2
, libGLU_combined, pkgconfig, ttf_bitstream_vera
}:
stdenv.mkDerivation rec {
pname = "setbfree";
- version = "0.8.8";
+ version = "0.8.10";
- src = fetchurl {
+ src = fetchzip {
url = "https://github.com/pantherb/setBfree/archive/v${version}.tar.gz";
- sha256 = "1ldxwds99azingkjh246kz7x3j7307jhr0fls5rjjbcfchpg7v99";
+ sha256 = "1hpj8qb5mhkqm4yy8mzzrrq0ljw22y807qly90vjkg61ascyina4";
};
- patchPhase = ''
+ postPatch = ''
sed 's#/usr/local#$(out)#g' -i common.mak
sed 's#/usr/share/fonts/truetype/ttf-bitstream-vera#${ttf_bitstream_vera}/share/fonts/truetype#g' \
-i b_synth/Makefile
@@ -25,9 +25,9 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "A DSP tonewheel organ emulator";
- homepage = http://setbfree.org;
+ homepage = "http://setbfree.org";
license = licenses.gpl2;
- platforms = platforms.linux;
+ platforms = [ "x86_64-linux" "i686-linux" ]; # fails on ARM and Darwin
maintainers = [ maintainers.goibhniu ];
};
}
diff --git a/pkgs/applications/audio/sfxr-qt/default.nix b/pkgs/applications/audio/sfxr-qt/default.nix
index 706d0faa3bc..615a8a8c660 100644
--- a/pkgs/applications/audio/sfxr-qt/default.nix
+++ b/pkgs/applications/audio/sfxr-qt/default.nix
@@ -20,7 +20,7 @@ mkDerivation rec {
};
nativeBuildInputs = [
cmake
- (python3.withPackages (pp: with pp; [ pyyaml jinja2 ]))
+ (python3.withPackages (pp: with pp; [ pyyaml jinja2 setuptools ]))
];
buildInputs = [
qtbase
diff --git a/pkgs/applications/audio/snd/default.nix b/pkgs/applications/audio/snd/default.nix
index 32e241cf557..b4a50395464 100644
--- a/pkgs/applications/audio/snd/default.nix
+++ b/pkgs/applications/audio/snd/default.nix
@@ -4,11 +4,11 @@
}:
stdenv.mkDerivation rec {
- name = "snd-19.6";
+ name = "snd-19.8";
src = fetchurl {
url = "mirror://sourceforge/snd/${name}.tar.gz";
- sha256 = "0s2qv8sznvw6559bi39qj9p072azh9qcb2b86w6w8clz2azjaa76";
+ sha256 = "0cdf3940cjvf5kls5l1zjll9wgg152xzlxs0jmpsq1kml12qa67b";
};
nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/audio/sndpeek/default.nix b/pkgs/applications/audio/sndpeek/default.nix
new file mode 100644
index 00000000000..ecdafdaeadd
--- /dev/null
+++ b/pkgs/applications/audio/sndpeek/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchurl, libsndfile, freeglut, alsaLib, mesa, libGLU, libX11, libXmu
+, libXext, libXi }:
+
+stdenv.mkDerivation rec {
+ pname = "sndpeek";
+ version = "1.4";
+
+ src = fetchurl {
+ url = "https://soundlab.cs.princeton.edu/software/sndpeek/files/sndpeek-${version}.tgz";
+ sha256 = "2d86cf74854fa00dcdc05a35dd92bc4cf6115e87102b17023be5cba9ead8eedf";
+ };
+ sourceRoot = "sndpeek-${version}/src/sndpeek";
+
+ # this patch adds -lpthread to the list of libraries, without it a
+ # symbol-not-found-error is thrown
+ patches = [ ./pthread.patch ];
+
+ buildInputs = [
+ freeglut
+ alsaLib
+ mesa
+ libGLU
+ libsndfile
+ libX11
+ libXmu
+ libXext
+ libXi
+ ];
+ buildFlags = "linux-alsa";
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mv sndpeek $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Real-time 3D animated audio display/playback";
+ longDescription = ''
+ sndpeek is just what it sounds (and looks) like:
+ * real-time 3D animated display/playback
+ * can use mic-input or wav/aiff/snd/raw/mat file (with playback)
+ * time-domain waveform
+ * FFT magnitude spectrum
+ * 3D waterfall plot
+ * lissajous! (interchannel correlation)
+ * rotatable and scalable display
+ * freeze frame! (for didactic purposes)
+ * real-time spectral feature extraction (centroid, rms, flux, rolloff)
+ * available on MacOS X, Linux, and Windows under GPL
+ * part of the sndtools distribution.
+ '';
+ homepage = https://soundlab.cs.princeton.edu/software/sndpeek/;
+ license = licenses.gpl2;
+ maintainers = [ maintainers.laikq ];
+ };
+}
diff --git a/pkgs/applications/audio/sndpeek/pthread.patch b/pkgs/applications/audio/sndpeek/pthread.patch
new file mode 100644
index 00000000000..b2f1d37da6b
--- /dev/null
+++ b/pkgs/applications/audio/sndpeek/pthread.patch
@@ -0,0 +1,13 @@
+diff --git a/makefile.alsa b/makefile.alsa
+index 34fb848..cdaeaec 100644
+--- a/makefile.alsa
++++ b/makefile.alsa
+@@ -4,7 +4,7 @@ CPP=g++
+ INCLUDES=-I../marsyas/
+ MARSYAS_DIR=../marsyas/
+ CFLAGS=-D__LINUX_ALSA__ -D__LITTLE_ENDIAN__ $(INCLUDES) -O3 -c
+-LIBS=-L/usr/X11R6/lib -lglut -lGL -lGLU -lasound -lXmu -lX11 -lXext -lXi -lm -lsndfile
++LIBS=-L/usr/X11R6/lib -lglut -lGL -lGLU -lasound -lXmu -lX11 -lXext -lXi -lm -lsndfile -lpthread
+
+ OBJS=chuck_fft.o RtAudio.o Thread.o sndpeek.o Stk.o \
+ Centroid.o DownSampler.o Flux.o LPC.o MFCC.o RMS.o Rolloff.o \
diff --git a/pkgs/applications/audio/sonic-pi/default.nix b/pkgs/applications/audio/sonic-pi/default.nix
index 7934af8aad8..ac72a26b0ee 100644
--- a/pkgs/applications/audio/sonic-pi/default.nix
+++ b/pkgs/applications/audio/sonic-pi/default.nix
@@ -1,4 +1,6 @@
-{ stdenv
+{ mkDerivation
+, lib
+, qtbase
, fetchFromGitHub
, fftwSinglePrec
, ruby
@@ -6,20 +8,22 @@
, aubio
, cmake
, pkgconfig
-, qt5
-, libsForQt5
, boost
, bash
-, makeWrapper
, jack2Full
+, supercollider
+, qscintilla
+, qwt
+, osmid
}:
let
- supercollider = libsForQt5.callPackage ../../../development/interpreters/supercollider {
- fftw = fftwSinglePrec;
- };
-in stdenv.mkDerivation rec {
+ supercollider_single_prec = supercollider.override { fftw = fftwSinglePrec; };
+
+in
+
+mkDerivation rec {
version = "3.1.0";
pname = "sonic-pi";
@@ -33,15 +37,14 @@ in stdenv.mkDerivation rec {
buildInputs = [
bash
cmake
- makeWrapper
pkgconfig
- qt5.qtbase
- libsForQt5.qscintilla
- libsForQt5.qwt
+ qtbase
+ qscintilla
+ qwt
ruby
libffi
aubio
- supercollider
+ supercollider_single_prec
boost
];
@@ -57,6 +60,10 @@ in stdenv.mkDerivation rec {
buildPhase = ''
export SONIC_PI_HOME=$TMPDIR
export AUBIO_LIB=${aubio}/lib/libaubio.so
+ export OSMID_DIR=app/server/native/osmid
+
+ mkdir -p $OSMID_DIR
+ cp ${osmid}/bin/{m2o,o2m} $OSMID_DIR
pushd app/server/ruby/bin
./compile-extensions.rb
@@ -80,20 +87,23 @@ in stdenv.mkDerivation rec {
installPhase = ''
runHook preInstall
-
cp -r . $out
- wrapProgram $out/bin/sonic-pi \
- --prefix PATH : ${ruby}/bin:${bash}/bin:${supercollider}/bin:${jack2Full}/bin \
- --set AUBIO_LIB "${aubio}/lib/libaubio.so"
-
runHook postInstall
'';
+ # $out/bin/sonic-pi is a shell script, and wrapQtAppsHook doesn't wrap them.
+ dontWrapQtApps = true;
+ preFixup = ''
+ wrapQtApp "$out/bin/sonic-pi" \
+ --prefix PATH : ${ruby}/bin:${bash}/bin:${supercollider}/bin:${jack2Full}/bin \
+ --set AUBIO_LIB "${aubio}/lib/libaubio.so"
+ '';
+
meta = {
- homepage = http://sonic-pi.net/;
+ homepage = "https://sonic-pi.net/";
description = "Free live coding synth for everyone originally designed to support computing and music lessons within schools";
- license = stdenv.lib.licenses.mit;
- maintainers = with stdenv.lib.maintainers; [ Phlogistique kamilchm ];
- platforms = stdenv.lib.platforms.linux;
+ license = lib.licenses.mit;
+ maintainers = with lib.maintainers; [ Phlogistique kamilchm ];
+ platforms = lib.platforms.linux;
};
}
diff --git a/pkgs/applications/audio/spotify-tui/default.nix b/pkgs/applications/audio/spotify-tui/default.nix
new file mode 100644
index 00000000000..606abc86ae2
--- /dev/null
+++ b/pkgs/applications/audio/spotify-tui/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, rustPlatform, pkgconfig, openssl, Security }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "spotify-tui";
+ version = "0.9.0";
+
+ src = fetchFromGitHub {
+ owner = "Rigellute";
+ repo = "spotify-tui";
+ rev = "v${version}";
+ sha256 = "1bbh9df4gfgb5pqavgvmy8fqnr2j5rbqbanv0y31j4i0kv2wrh6a";
+ };
+
+ cargoSha256 = "1rb4dl9zn3xx2yrapx5cfsli93ggmdq8w9fqi8cy8giyja1mnqfl";
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ openssl ]
+ ++ stdenv.lib.optional stdenv.isDarwin Security;
+
+ meta = with stdenv.lib; {
+ description = "Spotify for the terminal written in Rust";
+ homepage = https://github.com/Rigellute/spotify-tui;
+ license = licenses.mit;
+ maintainers = with maintainers; [ jwijenbergh ];
+ platforms = platforms.all;
+ };
+}
diff --git a/pkgs/applications/audio/spotify/default.nix b/pkgs/applications/audio/spotify/default.nix
index 3f99e22a4cb..bc95ec625bb 100644
--- a/pkgs/applications/audio/spotify/default.nix
+++ b/pkgs/applications/audio/spotify/default.nix
@@ -1,7 +1,7 @@
{ fetchurl, stdenv, squashfsTools, xorg, alsaLib, makeWrapper, openssl, freetype
, glib, pango, cairo, atk, gdk-pixbuf, gtk2, cups, nspr, nss, libpng, libnotify
, libgcrypt, systemd, fontconfig, dbus, expat, ffmpeg_3, curl, zlib, gnome3
-, at-spi2-atk
+, at-spi2-atk, at-spi2-core, libpulseaudio
}:
let
@@ -10,20 +10,21 @@ let
# If an update breaks things, one of those might have valuable info:
# https://aur.archlinux.org/packages/spotify/
# https://community.spotify.com/t5/Desktop-Linux
- version = "1.0.96.181.gf6bc1b6b-12";
+ version = "1.1.10.546.ge08ef575-19";
# To get the latest stable revision:
# curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/spotify?channel=stable' | jq '.download_url,.version,.last_updated'
# To get general information:
# curl -H 'Snap-Device-Series: 16' 'https://api.snapcraft.io/v2/snaps/info/spotify' | jq '.'
# More examples of api usage:
# https://github.com/canonical-websites/snapcraft.io/blob/master/webapp/publisher/snaps/views.py
- rev = "30";
+ rev = "36";
deps = [
alsaLib
atk
at-spi2-atk
+ at-spi2-core
cairo
cups
curl
@@ -38,6 +39,7 @@ let
libgcrypt
libnotify
libpng
+ libpulseaudio
nss
pango
stdenv.cc.cc
@@ -73,7 +75,7 @@ stdenv.mkDerivation {
# https://community.spotify.com/t5/Desktop-Linux/Redistribute-Spotify-on-Linux-Distributions/td-p/1695334
src = fetchurl {
url = "https://api.snapcraft.io/api/v1/snaps/download/pOBIoZ2LrCB3rDohMxoYGnbN14EHOgD7_${rev}.snap";
- sha512 = "859730fbc80067f0828f7e13eee9a21b13b749f897a50e17c2da4ee672785cfd79e1af6336e609529d105e040dc40f61b6189524783ac93d49f991c4ea8b3c56";
+ sha512 = "c49f1a86a9b737e64a475bbe62754a36f607669e908eb725a2395f0a0a6b95968e0c8ce27ab2c8b6c92fe8cbacb1ef58de11c79b92dc0f58c2c6d3a140706a1f";
};
buildInputs = [ squashfsTools makeWrapper ];
diff --git a/pkgs/applications/audio/spotifyd/default.nix b/pkgs/applications/audio/spotifyd/default.nix
index 9035a2a73c5..36ab017c5cb 100644
--- a/pkgs/applications/audio/spotifyd/default.nix
+++ b/pkgs/applications/audio/spotifyd/default.nix
@@ -6,16 +6,16 @@
rustPlatform.buildRustPackage rec {
pname = "spotifyd";
- version = "0.2.11";
+ version = "0.2.20";
src = fetchFromGitHub {
owner = "Spotifyd";
repo = "spotifyd";
- rev = version;
- sha256 = "1iybk9xrrvhrcl2xl5r2xhyn1ydhrgwnnb8ldhsw5c16b32z03q1";
+ rev = "v${version}";
+ sha256 = "1hf4wpk7r0s4jpjhxaz67y1hd8jx9ns5imd85r3cdg4lxf3j5gph";
};
- cargoSha256 = "1dzg4sb95ixjfhx6n4w2rgrq4481vw01nsdrbm746mz7nm71csk3";
+ cargoSha256 = "1h3fis47hmxvppiv1icjhgp48nd46gayfcmzfjs34q6jask90n0w";
cargoBuildFlags = [
"--no-default-features"
@@ -30,11 +30,13 @@ rustPlatform.buildRustPackage rec {
++ stdenv.lib.optional withPulseAudio libpulseaudio
++ stdenv.lib.optional withPortAudio portaudio;
+ doCheck = false;
+
meta = with stdenv.lib; {
description = "An open source Spotify client running as a UNIX daemon";
homepage = "https://github.com/Spotifyd/spotifyd";
license = with licenses; [ gpl3 ];
- maintainers = [ maintainers.anderslundstedt ];
+ maintainers = with maintainers; [ anderslundstedt filalex77 marsam ];
platforms = platforms.unix;
};
}
diff --git a/pkgs/applications/audio/stone-phaser/default.nix b/pkgs/applications/audio/stone-phaser/default.nix
new file mode 100644
index 00000000000..6e64ebc7fb3
--- /dev/null
+++ b/pkgs/applications/audio/stone-phaser/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, xorg, cairo, lv2, libjack2, mesa, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "stone-phaser";
+ version = "0.1.2";
+
+ src = fetchFromGitHub {
+ owner = "jpcima";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "180b32z8h9zi8p0q55r1dzxfckamnngm52zjypjjvvy7qdj3mfcd";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ xorg.libX11 cairo lv2 libjack2 mesa
+ ];
+
+ postPatch = ''
+ patch -d dpf -p 1 -i "$src/resources/patch/DPF-bypass.patch"
+ patchShebangs ./dpf/utils/generate-ttl.sh
+ '';
+
+ installFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ homepage = https://github.com/jpcima/stone-phaser;
+ description = "A classic analog phaser effect, made with DPF and Faust";
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ license = licenses.boost;
+ };
+}
diff --git a/pkgs/applications/audio/strawberry/default.nix b/pkgs/applications/audio/strawberry/default.nix
index 83455460123..315bb624e51 100644
--- a/pkgs/applications/audio/strawberry/default.nix
+++ b/pkgs/applications/audio/strawberry/default.nix
@@ -22,7 +22,7 @@
, libpulseaudio ? null
, libselinux ? null
, libsepol ? null
-, p11_kit ? null
+, p11-kit ? null
, utillinux ? null
, qtbase
, qtx11extras
@@ -35,13 +35,13 @@
mkDerivation rec {
pname = "strawberry";
- version = "0.6.3";
+ version = "0.6.5";
src = fetchFromGitHub {
owner = "jonaski";
repo = pname;
rev = version;
- sha256 = "01j5jzzicy895kg9sjy46lbcm5kvf3642d3q5wwb2fyvyq1fbcv0";
+ sha256 = "1kqx0q99n1p5pm6skvqjihz11byhxdid1qw6gqp67dh2na62z1lm";
};
buildInputs = [
@@ -66,7 +66,7 @@ mkDerivation rec {
libpulseaudio
libselinux
libsepol
- p11_kit
+ p11-kit
utillinux
]
++ lib.optionals withGstreamer (with gst_all_1; [
@@ -89,9 +89,11 @@ mkDerivation rec {
meta = with lib; {
description = "Music player and music collection organizer";
- license = licenses.gpl2;
+ homepage = "https://www.strawberrymusicplayer.org/";
+ changelog = "https://raw.githubusercontent.com/jonaski/strawberry/${version}/Changelog";
+ license = licenses.gpl3;
maintainers = with maintainers; [ peterhoeg ];
- # upstream says darwin should work but they lack maintainers as of 0.6.3
+ # upstream says darwin should work but they lack maintainers as of 0.6.5
platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/audio/synthv1/default.nix b/pkgs/applications/audio/synthv1/default.nix
index 1c373aefb4f..349c7acc3db 100644
--- a/pkgs/applications/audio/synthv1/default.nix
+++ b/pkgs/applications/audio/synthv1/default.nix
@@ -1,15 +1,15 @@
-{ stdenv, fetchurl, pkgconfig, qt5, libjack2, alsaLib, liblo, lv2 }:
+{ mkDerivation, stdenv, fetchurl, pkgconfig, qtbase, qttools, libjack2, alsaLib, liblo, lv2 }:
-stdenv.mkDerivation rec {
+mkDerivation rec {
pname = "synthv1";
- version = "0.9.9";
+ version = "0.9.11";
src = fetchurl {
url = "mirror://sourceforge/synthv1/${pname}-${version}.tar.gz";
- sha256 = "0cvamqzg74qfr7kzk3skimskmv0j3d1rmmpbpsmfcrg8srvyx9r2";
+ sha256 = "116k2vca9dygvsd684wvxm61p0l1xrrgdph4qrrprlsr6vj0llgm";
};
- buildInputs = [ qt5.qtbase qt5.qttools libjack2 alsaLib liblo lv2 ];
+ buildInputs = [ qtbase qttools libjack2 alsaLib liblo lv2 ];
nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/audio/tomahawk/default.nix b/pkgs/applications/audio/tomahawk/default.nix
deleted file mode 100644
index c983123ca38..00000000000
--- a/pkgs/applications/audio/tomahawk/default.nix
+++ /dev/null
@@ -1,56 +0,0 @@
-{ stdenv, fetchurl, cmake, pkgconfig, attica, boost, gnutls, libechonest
-, liblastfm, lucenepp, phonon, phonon-backend-vlc, qca2, qjson, qt4
-, qtkeychain, quazip, sparsehash, taglib, websocketpp, makeWrapper
-
-, enableXMPP ? true, libjreen ? null
-, enableKDE ? false, kdelibs4 ? null
-, enableTelepathy ? false, telepathy-qt ? null
-}:
-
-assert enableXMPP -> libjreen != null;
-assert enableKDE -> kdelibs4 != null;
-assert enableTelepathy -> telepathy-qt != null;
-
-stdenv.mkDerivation rec {
- pname = "tomahawk";
- version = "0.8.4";
-
- src = fetchurl {
- url = "http://download.tomahawk-player.org/${pname}-${version}.tar.bz2";
- sha256 = "0j84h36wkjfjbsd7ybyji7rcc9wpjdbl0f1xdcc1g7h0nz34pc0g";
- };
-
- cmakeFlags = [
- "-DLUCENEPP_INCLUDE_DIR=${lucenepp}/include"
- "-DLUCENEPP_LIBRARY_DIR=${lucenepp}/lib"
- ];
-
- nativeBuildInputs = [ pkgconfig ];
- buildInputs = [
- cmake attica boost gnutls libechonest liblastfm lucenepp phonon
- qca2 qjson qt4 qtkeychain quazip sparsehash taglib websocketpp
- makeWrapper
- ] ++ stdenv.lib.optional enableXMPP libjreen
- ++ stdenv.lib.optional enableKDE kdelibs4
- ++ stdenv.lib.optional enableTelepathy telepathy-qt;
-
- postInstall = let
- pluginPath = stdenv.lib.concatStringsSep ":" [
- "${phonon-backend-vlc}/lib/kde4/plugins"
- ];
- in ''
- for i in "$out"/bin/*; do
- wrapProgram "$i" --prefix QT_PLUGIN_PATH : "${pluginPath}"
- done
- '';
-
- enableParallelBuilding = true;
-
- meta = with stdenv.lib; {
- description = "A multi-source music player (unmaintained)";
- homepage = http://tomahawk-player.org/;
- license = licenses.gpl3Plus;
- platforms = platforms.all;
- broken = true; # 2018-06-25
- };
-}
diff --git a/pkgs/applications/audio/vcv-rack/default.nix b/pkgs/applications/audio/vcv-rack/default.nix
index 234b98a893c..c0bbd6e71db 100644
--- a/pkgs/applications/audio/vcv-rack/default.nix
+++ b/pkgs/applications/audio/vcv-rack/default.nix
@@ -1,50 +1,69 @@
{ stdenv, makeWrapper, fetchFromBitbucket, fetchFromGitHub, pkgconfig
, alsaLib, curl, glew, glfw, gtk2-x11, jansson, libjack2, libXext, libXi
-, libzip, rtaudio, rtmidi, speex }:
+, libzip, rtaudio, rtmidi, speex, libsamplerate }:
let
- glfw-git = glfw.overrideAttrs (oldAttrs: rec {
- name = "glfw-git-${version}";
- version = "2019-06-30";
- src = fetchFromGitHub {
- owner = "AndrewBelt";
- repo = "glfw";
- rev = "d9ab59efc781c392128a449361a381fcc93cf6f3";
- sha256 = "1ykkq6qq8y6j5hlfj2zp1p87kr33vwhywziprz20v5avx1q7rjm8";
- };
- # We patch the source to export a function that was added to the glfw fork
- # for Rack so it is present when we build glfw as a shared library.
- # See https://github.com/AndrewBelt/glfw/pull/1 for discussion of this issue
- # with upstream.
- patches = [ ./glfw.patch ];
- buildInputs = oldAttrs.buildInputs ++ [ libXext libXi ];
- });
+ # The package repo vendors some of the package dependencies as submodules.
+ # Others are downloaded with `make deps`. Due to previous issues with the
+ # `glfw` submodule (see above) and because we can not access the network when
+ # building in a sandbox, we fetch the dependency source manually.
pfft-source = fetchFromBitbucket {
owner = "jpommier";
repo = "pffft";
rev = "29e4f76ac53bef048938754f32231d7836401f79";
sha256 = "084csgqa6f1a270bhybjayrh3mpyi2jimc87qkdgsqcp8ycsx1l1";
};
+ nanovg-source = fetchFromGitHub {
+ owner = "memononen";
+ repo = "nanovg";
+ rev = "1f9c8864fc556a1be4d4bf1d6bfe20cde25734b4";
+ sha256 = "08r15zrr6p1kxigxzxrg5rgya7wwbdx7d078r362qbkmws83wk27";
+ };
+ nanosvg-source = fetchFromGitHub {
+ owner = "memononen";
+ repo = "nanosvg";
+ rev = "25241c5a8f8451d41ab1b02ab2d865b01600d949";
+ sha256 = "114qgfmazsdl53rm4pgqif3gv8msdmfwi91lyc2jfadgzfd83xkg";
+ };
+ osdialog-source = fetchFromGitHub {
+ owner = "AndrewBelt";
+ repo = "osdialog";
+ rev = "e5db5de6444f4b2c4e1390c67b3efd718080c3da";
+ sha256 = "0iqxn1md053nl19hbjk8rqsdcmjwa5l5z0ci4fara77q43rc323i";
+ };
+ oui-blendish-source = fetchFromGitHub {
+ owner = "AndrewBelt";
+ repo = "oui-blendish";
+ rev = "79ec59e6bc7201017fc13a20c6e33380adca1660";
+ sha256 = "17kd0lh2x3x12bxkyhq6z8sg6vxln8m9qirf0basvcsmylr6rb64";
+ };
in
with stdenv.lib; stdenv.mkDerivation rec {
pname = "VCV-Rack";
- version = "1.1.4";
+ version = "1.1.6";
src = fetchFromGitHub {
owner = "VCVRack";
repo = "Rack";
rev = "v${version}";
- sha256 = "04kg0nm7w19s2zfrsxjfl3bs4sy3bzf28kzl4hayzwv480667ybx";
- fetchSubmodules = true;
+ sha256 = "0ji64prr74qzxf5bx1sw022kbslx9nzll16lmk5in78hbl137b3i";
};
- patches = [ ./rack-minimize-vendoring.patch ];
+ patches = [
+ ./rack-minimize-vendoring.patch
+ ];
prePatch = ''
- cp -r ${pfft-source} dep/jpommier-pffft-source
-
+ # As we can't use `make dep` to set up the dependencies (as explained
+ # above), we do it here manually
mkdir -p dep/include
+ cp -r ${pfft-source} dep/jpommier-pffft-source
+ cp -r ${nanovg-source}/* dep/nanovg
+ cp -r ${nanosvg-source}/* dep/nanosvg
+ cp -r ${osdialog-source}/* dep/osdialog
+ cp -r ${oui-blendish-source}/* dep/oui-blendish
+
cp dep/jpommier-pffft-source/*.h dep/include
cp dep/nanosvg/**/*.h dep/include
cp dep/nanovg/src/*.h dep/include
@@ -58,7 +77,7 @@ with stdenv.lib; stdenv.mkDerivation rec {
enableParallelBuilding = true;
nativeBuildInputs = [ makeWrapper pkgconfig ];
- buildInputs = [ glfw-git alsaLib curl glew gtk2-x11 jansson libjack2 libzip rtaudio rtmidi speex ];
+ buildInputs = [ alsaLib curl glew glfw gtk2-x11 jansson libjack2 libsamplerate libzip rtaudio rtmidi speex ];
buildFlags = "Rack";
diff --git a/pkgs/applications/audio/vcv-rack/glfw.patch b/pkgs/applications/audio/vcv-rack/glfw.patch
deleted file mode 100644
index 77875415160..00000000000
--- a/pkgs/applications/audio/vcv-rack/glfw.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/init.c b/src/init.c
-index af4a579e..317e25b8 100644
---- a/src/init.c
-+++ b/src/init.c
-@@ -339,7 +339,7 @@ GLFWAPI GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun cbfun)
-
- char glfwOpenedFilename[1024];
-
--const char *glfwGetOpenedFilename()
-+GLFWAPI const char *glfwGetOpenedFilename()
- {
- if (glfwOpenedFilename[0])
- {
diff --git a/pkgs/applications/audio/vcv-rack/rack-minimize-vendoring.patch b/pkgs/applications/audio/vcv-rack/rack-minimize-vendoring.patch
index eca9c2f13c0..d310d57835e 100644
--- a/pkgs/applications/audio/vcv-rack/rack-minimize-vendoring.patch
+++ b/pkgs/applications/audio/vcv-rack/rack-minimize-vendoring.patch
@@ -5,10 +5,9 @@ diff -ru a/Makefile b/Makefile
build/dep/osdialog/osdialog_gtk2.c.o: FLAGS += $(shell pkg-config --cflags gtk+-2.0)
LDFLAGS += -rdynamic \
-- dep/lib/libglfw3.a dep/lib/libGLEW.a dep/lib/libjansson.a dep/lib/libspeexdsp.a dep/lib/libzip.a dep/lib/libz.a dep/lib/librtmidi.a dep/lib/librtaudio.a dep/lib/libcurl.a dep/lib/libssl.a dep/lib/libcrypto.a \
-- -lpthread -lGL -ldl -lX11 -lasound -ljack \
-+ -lGLEW -ljansson -lspeexdsp -lzip -lz -lrtmidi -lrtaudio -lcurl -lssl -lcrypto \
-+ -lpthread -lGL -ldl -lX11 -lasound -ljack -lglfw \
+- dep/lib/libGLEW.a dep/lib/libglfw3.a dep/lib/libjansson.a dep/lib/libcurl.a dep/lib/libssl.a dep/lib/libcrypto.a dep/lib/libzip.a dep/lib/libz.a dep/lib/libspeexdsp.a dep/lib/libsamplerate.a dep/lib/librtmidi.a dep/lib/librtaudio.a \
++ -lGLEW -lglfw -ljansson -lcurl -lssl -lcrypto -lzip -lz -lspeexdsp -lsamplerate -lrtmidi -lrtaudio \
+ -lpthread -lGL -ldl -lX11 -lasound -ljack \
$(shell pkg-config --libs gtk+-2.0)
TARGET := Rack
endif
diff --git a/pkgs/applications/audio/vocal/default.nix b/pkgs/applications/audio/vocal/default.nix
index c4333b09f18..c26d8b6d360 100644
--- a/pkgs/applications/audio/vocal/default.nix
+++ b/pkgs/applications/audio/vocal/default.nix
@@ -2,6 +2,7 @@
, fetchFromGitHub
, cmake
, ninja
+, vala
, pkgconfig
, pantheon
, gtk3
@@ -34,7 +35,7 @@ stdenv.mkDerivation rec {
cmake
libxml2
ninja
- pantheon.vala
+ vala
pkgconfig
wrapGAppsHook
];
diff --git a/pkgs/applications/audio/waon/default.nix b/pkgs/applications/audio/waon/default.nix
new file mode 100644
index 00000000000..b27fdbffb7d
--- /dev/null
+++ b/pkgs/applications/audio/waon/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, fftw, gtk2, libao, libsamplerate
+, libsndfile, ncurses, pkgconfig
+}:
+
+stdenv.mkDerivation rec {
+ pname = "waon";
+ version = "0.11";
+
+ src = fetchFromGitHub {
+ owner = "kichiki";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1xmq8d2rj58xbp4rnyav95y1vnz3r9s9db7xxfa2rd0ilq0ps4y7";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ fftw gtk2 libao libsamplerate libsndfile ncurses ];
+
+ installPhase = ''
+ install -Dt $out/bin waon pv gwaon
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A Wave-to-Notes transcriber";
+ homepage = https://kichiki.github.io/WaoN/;
+ license = licenses.gpl2;
+ maintainers = [ maintainers.puckipedia ];
+ platforms = platforms.all;
+ };
+}
diff --git a/pkgs/applications/audio/x42-plugins/default.nix b/pkgs/applications/audio/x42-plugins/default.nix
index 22594d3ec85..967f3f4f92b 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 = "20190714";
+ version = "20191013";
pname = "x42-plugins";
src = fetchurl {
url = "https://gareus.org/misc/x42-plugins/${pname}-${version}.tar.xz";
- sha256 = "1mifmdy9pi1lg0h4nsvyjjnnni41vhgg34lks94mrx46wq90bgx4";
+ sha256 = "18kn1bmc0s6dp834kc51ibifzzn3bxwya4p8s8yq9f4mpmkghi24";
};
nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/audio/yoshimi/default.nix b/pkgs/applications/audio/yoshimi/default.nix
index 0936fe5a8ed..b8acaa5a7e4 100644
--- a/pkgs/applications/audio/yoshimi/default.nix
+++ b/pkgs/applications/audio/yoshimi/default.nix
@@ -6,11 +6,11 @@ assert stdenv ? glibc;
stdenv.mkDerivation rec {
pname = "yoshimi";
- version = "1.5.11.3";
+ version = "1.6.0.2";
src = fetchurl {
url = "mirror://sourceforge/yoshimi/${pname}-${version}.tar.bz2";
- sha256 = "00w0ll94dpss9f1rnaxjmw6mgjx5q2dz8w4mc3wyrk4s4gbd7154";
+ sha256 = "0q2cw168r53r50zghkdqcxba2cybn44axbdkwacvkm7ag2z0j2l8";
};
buildInputs = [
diff --git a/pkgs/applications/backup/deja-dup/default.nix b/pkgs/applications/backup/deja-dup/default.nix
index 7120a1934f6..d19314ce9ce 100644
--- a/pkgs/applications/backup/deja-dup/default.nix
+++ b/pkgs/applications/backup/deja-dup/default.nix
@@ -1,20 +1,46 @@
-{ stdenv, fetchFromGitLab, substituteAll, meson, ninja, pkgconfig, vala_0_40, gettext
-, gnome3, libnotify, itstool, glib, gtk3, libxml2, gnome-online-accounts
-, coreutils, libpeas, libsecret, pcre, libxkbcommon, wrapGAppsHook
-, libpthreadstubs, libXdmcp, epoxy, at-spi2-core, dbus, libgpgerror
-, appstream-glib, desktop-file-utils, duplicity
+{ stdenv
+, fetchFromGitLab
+, substituteAll
+, meson
+, ninja
+, pkgconfig
+, vala
+, gettext
+, gnome3
+, libnotify
+, itstool
+, glib
+, gtk3
+, libxml2
+, gnome-online-accounts
+, coreutils
+, libsoup
+, libsecret
+, pcre
+, libxkbcommon
+, wrapGAppsHook
+, libpthreadstubs
+, libXdmcp
+, epoxy
+, at-spi2-core
+, dbus
+, libgpgerror
+, json-glib
+, appstream-glib
+, desktop-file-utils
+, duplicity
}:
stdenv.mkDerivation rec {
pname = "deja-dup";
- version = "38.3";
+ version = "40.4";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "World";
repo = pname;
rev = version;
- sha256 = "1bnvmdlm67k1b6115x75j3nl92x5yl4psq5pna2w6cg9npxdd3fa";
+ sha256 = "0x9z8z1mh1sxi28ilml3pvbc0g6ghcbyiy002rziwwlarxnbwkky";
};
patches = [
@@ -22,37 +48,55 @@ stdenv.mkDerivation rec {
src = ./fix-paths.patch;
inherit coreutils;
})
+
+ # Hardcode GSettings path for Nautilus extension to avoid crashes from missing schemas
./hardcode-gsettings.patch
];
postPatch = ''
- substituteInPlace deja-dup/nautilus/NautilusExtension.c --subst-var-by DEJA_DUP_GSETTINGS_PATH ${glib.makeSchemaPath "$out" "${pname}-${version}"}
+ # substitute variable from hardcode-gsettings.patch
+ substituteInPlace deja-dup/nautilus/NautilusExtension.c --subst-var-by DEJA_DUP_GSETTINGS_PATH "${glib.makeSchemaPath (placeholder "out") "${pname}-${version}"}"
'';
nativeBuildInputs = [
- meson ninja pkgconfig vala_0_40 gettext itstool
- appstream-glib desktop-file-utils libxml2 wrapGAppsHook
+ meson
+ ninja
+ pkgconfig
+ vala
+ gettext
+ itstool
+ appstream-glib
+ desktop-file-utils
+ libxml2
+ wrapGAppsHook
];
buildInputs = [
- libnotify libpeas glib gtk3 libsecret
- pcre libxkbcommon libpthreadstubs libXdmcp epoxy gnome3.nautilus
- at-spi2-core dbus gnome-online-accounts libgpgerror
+ libnotify
+ libsoup
+ glib
+ gtk3
+ libsecret
+ pcre
+ libxkbcommon
+ libpthreadstubs
+ libXdmcp
+ epoxy
+ gnome3.nautilus
+ at-spi2-core
+ dbus
+ gnome-online-accounts # GOA not used any more, only for transferring legacy keys
+ libgpgerror
+ json-glib
];
+ # TODO: hard code the path
+ # https://gitlab.gnome.org/World/deja-dup/merge_requests/32
propagatedUserEnvPkgs = [ duplicity ];
+ # install nautilus plug-in to correct path
PKG_CONFIG_LIBNAUTILUS_EXTENSION_EXTENSIONDIR = "${placeholder "out"}/lib/nautilus/extensions-3.0";
- postInstall = ''
- glib-compile-schemas $out/share/glib-2.0/schemas
- '';
-
- postFixup = ''
- # Unwrap accidentally wrapped library
- mv $out/libexec/deja-dup/tools/.libduplicity.so-wrapped $out/libexec/deja-dup/tools/libduplicity.so
- '';
-
meta = with stdenv.lib; {
description = "A simple backup tool";
longDescription = ''
@@ -60,7 +104,7 @@ stdenv.mkDerivation rec {
of backing up the Right Way (encrypted, off-site, and regular) \
and uses duplicity as the backend.
'';
- homepage = https://wiki.gnome.org/Apps/DejaDup;
+ homepage = "https://wiki.gnome.org/Apps/DejaDup";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ jtojnar joncojonathan ];
platforms = platforms.linux;
diff --git a/pkgs/applications/backup/deja-dup/hardcode-gsettings.patch b/pkgs/applications/backup/deja-dup/hardcode-gsettings.patch
index 50bf2ba4fbd..f74dbf73543 100644
--- a/pkgs/applications/backup/deja-dup/hardcode-gsettings.patch
+++ b/pkgs/applications/backup/deja-dup/hardcode-gsettings.patch
@@ -1,38 +1,16 @@
--- a/deja-dup/nautilus/NautilusExtension.c
+++ b/deja-dup/nautilus/NautilusExtension.c
-@@ -24,6 +24,8 @@
- #include
-
- GList *dirs = NULL;
-+GSettingsSchemaSource *schema_source = NULL;
-+GSettingsSchema *schema = NULL;
- GSettings *settings = NULL;
-
- // This will treat a < b iff a is 'lower' in the file tree than b
-@@ -313,7 +315,13 @@
+@@ -313,7 +313,12 @@
bindtextdomain(GETTEXT_PACKAGE, LOCALE_DIR);
bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
-- settings = g_settings_new("org.gnome.DejaDup");
-+ schema_source = g_settings_schema_source_new_from_directory ("@DEJA_DUP_GSETTINGS_PATH@",
+- settings = g_settings_new(APPLICATION_ID);
++ g_autoptr (GSettingsSchemaSource) schema_source = g_settings_schema_source_new_from_directory ("@DEJA_DUP_GSETTINGS_PATH@",
+ g_settings_schema_source_get_default (), TRUE, NULL);
+
-+ schema = g_settings_schema_source_lookup (schema_source,
-+ "org.gnome.DejaDup", FALSE);
++ g_autoptr (GSettingsSchema) schema = g_settings_schema_source_lookup (schema_source, APPLICATION_ID, FALSE);
+
+ settings = g_settings_new_full (schema, NULL, NULL);
g_signal_connect(settings, "changed::include-list",
update_include_excludes, NULL);
g_signal_connect(settings, "changed::exclude-list",
-@@ -329,7 +337,11 @@
-
- void nautilus_module_shutdown(void)
- {
-+ g_settings_schema_source_unref(schema_source);
-+ g_settings_schema_unref(schema);
- g_object_unref(settings);
-+ schema_source = NULL;
-+ schema = NULL;
- settings = NULL;
-
- update_include_excludes(); /* will clear it now that settings is NULL */
diff --git a/pkgs/applications/blockchains/bitcoin-abc.nix b/pkgs/applications/blockchains/bitcoin-abc.nix
index 479d175020b..0c806a89015 100644
--- a/pkgs/applications/blockchains/bitcoin-abc.nix
+++ b/pkgs/applications/blockchains/bitcoin-abc.nix
@@ -7,13 +7,13 @@ with stdenv.lib;
stdenv.mkDerivation rec {
name = "bitcoin" + (toString (optional (!withGui) "d")) + "-abc-" + version;
- version = "0.19.4";
+ version = "0.20.5";
src = fetchFromGitHub {
owner = "bitcoin-ABC";
repo = "bitcoin-abc";
rev = "v${version}";
- sha256 = "1z4x25ygcw1pqml2ww02vqrvmihlv4f5gnnn1iyfirrjxgpfaxd7";
+ sha256 = "1adps3g99m7cxs58c48g2dgyihfv0v8d198klzcbbf4dq0s5v45c";
};
patches = [ ./fix-bitcoin-qt-build.patch ];
diff --git a/pkgs/applications/blockchains/clightning.nix b/pkgs/applications/blockchains/clightning.nix
index b20a6b3e8aa..61c2acab563 100644
--- a/pkgs/applications/blockchains/clightning.nix
+++ b/pkgs/applications/blockchains/clightning.nix
@@ -1,19 +1,19 @@
{ stdenv, python3, pkgconfig, which, libtool, autoconf, automake,
- autogen, sqlite, gmp, zlib, fetchurl, unzip, fetchpatch }:
+ autogen, sqlite, gmp, zlib, fetchurl, unzip, fetchpatch, gettext }:
with stdenv.lib;
stdenv.mkDerivation rec {
pname = "clightning";
- version = "0.7.2.1";
+ version = "0.7.3";
src = fetchurl {
url = "https://github.com/ElementsProject/lightning/releases/download/v${version}/clightning-v${version}.zip";
- sha256 = "3be716948efc1208b5e6a41e3034e4e4eecc5abbdac769fd1d999a104ac3a2ec";
+ sha256 = "ef2193940146d1b8ff0cc03602842c4d81db9ca6a5e73927e4f8932715e931a4";
};
enableParallelBuilding = true;
- nativeBuildInputs = [ autoconf autogen automake libtool pkgconfig which unzip ];
+ nativeBuildInputs = [ autoconf autogen automake libtool pkgconfig which unzip gettext ];
buildInputs =
let py3 = python3.withPackages (p: [ p.Mako ]);
in [ sqlite gmp zlib py3 ];
@@ -28,7 +28,8 @@ stdenv.mkDerivation rec {
patchShebangs \
tools/generate-wire.py \
tools/update-mocks.sh \
- tools/mockup.sh
+ tools/mockup.sh \
+ devtools/sql-rewrite.py
'';
doCheck = false;
diff --git a/pkgs/applications/blockchains/go-ethereum.nix b/pkgs/applications/blockchains/go-ethereum.nix
index 5f347fe91e9..fe7a5f991dd 100644
--- a/pkgs/applications/blockchains/go-ethereum.nix
+++ b/pkgs/applications/blockchains/go-ethereum.nix
@@ -2,7 +2,7 @@
buildGoPackage rec {
pname = "go-ethereum";
- version = "1.9.3";
+ version = "1.9.7";
goPackagePath = "github.com/ethereum/go-ethereum";
@@ -10,14 +10,11 @@ buildGoPackage rec {
propagatedBuildInputs =
stdenv.lib.optionals stdenv.isDarwin [ libobjc IOKit ];
- # Fixes Cgo related build failures (see https://github.com/NixOS/nixpkgs/issues/25959 )
- hardeningDisable = [ "fortify" ];
-
src = fetchFromGitHub {
owner = "ethereum";
repo = pname;
rev = "v${version}";
- sha256 = "0lv6gxp34j26hqazcvyr4c7rsl1vljm6cfzkcmlapsjdgym505bg";
+ sha256 = "07110dj91wmkpwz7iy0lmxx3y9wjxjrhk3rhkfdil74cxm0wkkn2";
};
meta = with stdenv.lib; {
diff --git a/pkgs/applications/blockchains/jormungandr/default.nix b/pkgs/applications/blockchains/jormungandr/default.nix
deleted file mode 100644
index 8c276d6bb80..00000000000
--- a/pkgs/applications/blockchains/jormungandr/default.nix
+++ /dev/null
@@ -1,55 +0,0 @@
-{ stdenv
-, lib
-, fetchgit
-, rustPlatform
-, openssl
-, pkgconfig
-, protobuf
-, darwin
-}:
-
-rustPlatform.buildRustPackage rec {
- pname = "jormungandr";
- version = "0.3.3";
-
- src = fetchgit {
- url = "https://github.com/input-output-hk/${pname}";
- rev = "v${version}";
- sha256 = "1fw3cl2rxnw9mww1b1z96x2iapwbpdgyp4ra19dhvfzmlvaiml5j";
- fetchSubmodules = true;
- };
-
- cargoSha256 = "1ilp9ffaz3njv38mnqics4b5d7wh52mj4rwi71h5c0wzx4ww3zal";
-
- nativeBuildInputs = [ pkgconfig protobuf ];
- buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ];
-
- patchPhase = ''
- sed -i "s~SCRIPTPATH=.*~SCRIPTPATH=$out/templates/~g" scripts/bootstrap
- '';
-
- installPhase = ''
- install -d $out/bin $out/templates
- install -m755 target/*/release/jormungandr $out/bin/
- install -m755 target/*/release/jcli $out/bin/
- install -m755 scripts/send-transaction $out/templates
- install -m755 scripts/jcli-helpers $out/bin/
- install -m755 scripts/bootstrap $out/bin/jormungandr-bootstrap
- install -m644 scripts/faucet-send-money.shtempl $out/templates/
- install -m644 scripts/create-account-and-delegate.shtempl $out/templates/
- install -m644 scripts/faucet-send-certificate.shtempl $out/templates/
- '';
-
- PROTOC = "${protobuf}/bin/protoc";
-
- # Disabling integration tests
- doCheck = false;
-
- meta = with stdenv.lib; {
- description = "An aspiring blockchain node";
- homepage = "https://input-output-hk.github.io/jormungandr/";
- license = licenses.mit;
- maintainers = [ maintainers.mmahut ];
- platforms = platforms.all;
- };
-}
diff --git a/pkgs/applications/blockchains/ledger-live-desktop/default.nix b/pkgs/applications/blockchains/ledger-live-desktop/default.nix
index 0417d2913de..d5e84a71d27 100644
--- a/pkgs/applications/blockchains/ledger-live-desktop/default.nix
+++ b/pkgs/applications/blockchains/ledger-live-desktop/default.nix
@@ -1,50 +1,36 @@
-{ stdenv, fetchurl, makeDesktopItem, makeWrapper, appimage-run }:
+{ stdenv, fetchurl, makeDesktopItem, appimageTools, imagemagick }:
-stdenv.mkDerivation rec {
+let
pname = "ledger-live-desktop";
- version = "1.12.0";
+ version = "1.18.2";
+ name = "${pname}-${version}";
src = fetchurl {
url = "https://github.com/LedgerHQ/${pname}/releases/download/v${version}/${pname}-${version}-linux-x86_64.AppImage";
- sha256 = "0sn0ri8kqvy36d6vjwsb0mh54nwic58416m6q5drl1schsn6wyvj";
+ sha256 = "1giy8xg1yfv7b7gh98dmfc05wh54xqpd53nanacwcc7lakzizqnn";
};
- nativeBuildInputs = [ makeWrapper ];
- buildInputs = [ appimage-run ];
-
- desktopIcon = fetchurl {
- url = "https://raw.githubusercontent.com/LedgerHQ/${pname}/v${version}/build/icon.png";
- sha256 = "1mmfaf0yk7xf1kgbs3ka8wsbz1qgh60xj6z91ica1i7lw2qbdd5h";
+ appimageContents = appimageTools.extractType2 {
+ inherit name src;
};
+in appimageTools.wrapType2 rec {
+ inherit name src;
- desktopItem = makeDesktopItem {
- name = pname;
- exec = "${placeholder "out"}/bin/${pname}";
- icon = pname;
- desktopName = "Ledger Live";
- categories = "Utility;";
- };
-
- unpackPhase = ":";
-
- installPhase = ''
- runHook preInstall
-
- ${desktopItem.buildCommand}
- install -D $src $out/share/${src.name}
- install -Dm -x ${desktopIcon} \
- $out/share/icons/hicolor/1024x1024/apps/${pname}.png
- makeWrapper ${appimage-run}/bin/appimage-run $out/bin/${pname} \
- --add-flags $out/share/${src.name}
-
- runHook postInstall
+ extraInstallCommands = ''
+ mv $out/bin/${name} $out/bin/${pname}
+ install -m 444 -D ${appimageContents}/ledger-live-desktop.desktop $out/share/applications/ledger-live-desktop.desktop
+ install -m 444 -D ${appimageContents}/ledger-live-desktop.png $out/share/icons/hicolor/1024x1024/apps/ledger-live-desktop.png
+ ${imagemagick}/bin/convert ${appimageContents}/ledger-live-desktop.png -resize 512x512 ledger-live-desktop_512.png
+ install -m 444 -D ledger-live-desktop_512.png $out/share/icons/hicolor/512x512/apps/ledger-live-desktop.png
+ substituteInPlace $out/share/applications/ledger-live-desktop.desktop \
+ --replace 'Exec=AppRun' 'Exec=${pname}'
'';
meta = with stdenv.lib; {
description = "Wallet app for Ledger Nano S and Ledger Blue";
homepage = "https://www.ledger.com/live";
license = licenses.mit;
- maintainers = with maintainers; [ thedavidmeister ];
+ maintainers = with maintainers; [ thedavidmeister nyanloutre ];
platforms = [ "x86_64-linux" ];
};
}
diff --git a/pkgs/applications/blockchains/lnd.nix b/pkgs/applications/blockchains/lnd.nix
index 27f10c963c0..fd18b3fa399 100644
--- a/pkgs/applications/blockchains/lnd.nix
+++ b/pkgs/applications/blockchains/lnd.nix
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "lnd";
- version = "0.7.1-beta";
+ version = "0.8.1-beta";
src = fetchFromGitHub {
owner = "lightningnetwork";
repo = "lnd";
rev = "v${version}";
- sha256 = "1c0sm0lavdai4w6d283q54knggw9d42vvqmglnv2h9swbw1l23ry";
+ sha256 = "0f9fx2y66l3wxiax2vl2966avamjarkv3vbn9dy0wbxkwg4pfayb";
};
- modSha256 = "13hjaf4bswk8g57lyxzdlqqp4a6ddl3qm6n4jja4b1h58mlbil73";
+ modSha256 = "1i6xw2amkg4azvzybcl4pqxif9c0mv8ayrhz9hm8x85bz7i6a787";
meta = with lib; {
description = "Lightning Network Daemon";
diff --git a/pkgs/applications/blockchains/monero-gui/default.nix b/pkgs/applications/blockchains/monero-gui/default.nix
index 92f6f008021..dde324b39e1 100644
--- a/pkgs/applications/blockchains/monero-gui/default.nix
+++ b/pkgs/applications/blockchains/monero-gui/default.nix
@@ -1,27 +1,27 @@
-{ mkDerivation, lib, makeDesktopItem, fetchFromGitHub
+{ stdenv, wrapQtAppsHook, makeDesktopItem, fetchFromGitHub
, qtbase, qmake, qtmultimedia, qttools
, qtgraphicaleffects, qtdeclarative
, qtlocation, qtquickcontrols, qtquickcontrols2
, qtwebchannel, qtwebengine, qtx11extras, qtxmlpatterns
, monero, unbound, readline, boost, libunwind
, libsodium, pcsclite, zeromq, cppzmq, pkgconfig
-, hidapi
+, hidapi, randomx
}:
-with lib;
+with stdenv.lib;
-mkDerivation rec {
+stdenv.mkDerivation rec {
pname = "monero-gui";
- version = "0.14.1.2";
+ version = "0.15.0.0";
src = fetchFromGitHub {
owner = "monero-project";
repo = "monero-gui";
rev = "v${version}";
- sha256 = "1rm043r6y2mzy8pclnzbjjfxgps8pkfa2b92p66k8y8rdmgq6m1k";
+ sha256 = "1shpnly2dym5jhvk8zk10p69mz062dihx979djg74q6hgkhhhqsh";
};
- nativeBuildInputs = [ qmake pkgconfig ];
+ nativeBuildInputs = [ qmake pkgconfig wrapQtAppsHook ];
buildInputs = [
qtbase qtmultimedia qtgraphicaleffects
@@ -30,7 +30,7 @@ mkDerivation rec {
qtwebchannel qtwebengine qtx11extras
qtxmlpatterns monero unbound readline
boost libunwind libsodium pcsclite zeromq
- cppzmq hidapi
+ cppzmq hidapi randomx
];
patches = [ ./move-log-file.patch ];
diff --git a/pkgs/applications/blockchains/monero/default.nix b/pkgs/applications/blockchains/monero/default.nix
index b6f07452861..b526fb61a62 100644
--- a/pkgs/applications/blockchains/monero/default.nix
+++ b/pkgs/applications/blockchains/monero/default.nix
@@ -1,43 +1,41 @@
-{ stdenv, fetchgit
-, cmake, pkgconfig, git
+{ stdenv, fetchFromGitHub
+, cmake, pkgconfig
, boost, miniupnpc, openssl, unbound, cppzmq
, zeromq, pcsclite, readline, libsodium, hidapi
-, python3Packages
+, python3Packages, randomx, rapidjson
, CoreData, IOKit, PCSC
}:
assert stdenv.isDarwin -> IOKit != null;
-with stdenv.lib;
-
stdenv.mkDerivation rec {
pname = "monero";
- version = "0.14.1.0";
+ version = "0.15.0.0";
- src = fetchgit {
- url = "https://github.com/monero-project/monero.git";
- rev = "v${version}";
- sha256 = "1asa197fad81jfv12qgaa7y7pdr1r1pda96m9pvivkh4v30cx0nh";
+ src = fetchFromGitHub {
+ owner = "monero-project";
+ repo = "monero";
+ rev = "v${version}";
+ sha256 = "19y4kcj4agws7swfa3draysb1y18c3xb13r8cg0faxx1dlm0zbnr";
+ fetchSubmodules = true;
};
- nativeBuildInputs = [ cmake pkgconfig git ];
+ nativeBuildInputs = [ cmake pkgconfig ];
buildInputs = [
boost miniupnpc openssl unbound
cppzmq zeromq pcsclite readline
- libsodium hidapi
+ libsodium hidapi randomx rapidjson
python3Packages.protobuf
- ] ++ optionals stdenv.isDarwin [ IOKit CoreData PCSC ];
+ ] ++ stdenv.lib.optionals stdenv.isDarwin [ IOKit CoreData PCSC ];
cmakeFlags = [
"-DCMAKE_BUILD_TYPE=Release"
"-DBUILD_GUI_DEPS=ON"
"-DReadline_ROOT_DIR=${readline.dev}"
- ] ++ optional stdenv.isDarwin "-DBoost_USE_MULTITHREADED=OFF";
+ ] ++ stdenv.lib.optional stdenv.isDarwin "-DBoost_USE_MULTITHREADED=OFF";
- hardeningDisable = [ "fortify" ];
-
- meta = {
+ meta = with stdenv.lib; {
description = "Private, secure, untraceable currency";
homepage = https://getmonero.org/;
license = licenses.bsd3;
diff --git a/pkgs/applications/blockchains/parity/beta.nix b/pkgs/applications/blockchains/parity/beta.nix
index a6d4660dff1..c9da6f0e7a8 100644
--- a/pkgs/applications/blockchains/parity/beta.nix
+++ b/pkgs/applications/blockchains/parity/beta.nix
@@ -1,6 +1,6 @@
let
- version = "2.6.2";
- sha256 = "1j4249m5k3bi7di0wq6fm64zv3nlpgmg4hr5hnn94fyc09nz9n1r";
- cargoSha256 = "1wr0i54zc3l6n0x6cvlq9zfy3bw9w5fcvdz4vmyym9r1nkvk31s7";
+ version = "2.6.5";
+ sha256 = "1ykrsphqil68051wwp9b0259gsmfrj9xmx0pfhh2yvmmjzv7k4fv";
+ cargoSha256 = "1xqmnirx2r91q5gy1skxl0f79xvaqzimq3l0cj4xvfms7mpdfbg1";
in
import ./parity.nix { inherit version sha256 cargoSha256; }
diff --git a/pkgs/applications/blockchains/parity/default.nix b/pkgs/applications/blockchains/parity/default.nix
index 88d24a87e13..ba3491e084d 100644
--- a/pkgs/applications/blockchains/parity/default.nix
+++ b/pkgs/applications/blockchains/parity/default.nix
@@ -1,6 +1,6 @@
let
- version = "2.5.7";
- sha256 = "0aprs71cbf98dsvjz0kydngkvdg5x7dijji8j6xadgvsarl1ljnj";
- cargoSha256 = "11mr5q5aynli9xm4wnxcypl3ij7f4b0p7l557yi9n0cvdraw8ki4";
+ version = "2.5.10";
+ sha256 = "0s8llcb1xdzs2zb6rnbsa9hck7dj4m8mamzkkvr0xjmgvigskf64";
+ cargoSha256 = "16nf6y0hyffwdhxn1w4ms4zycs5lkzir8sj6c2lgsabig057hb6z";
in
import ./parity.nix { inherit version sha256 cargoSha256; }
diff --git a/pkgs/applications/blockchains/pivx.nix b/pkgs/applications/blockchains/pivx.nix
index c0833de7dbf..22fdc7f51c5 100644
--- a/pkgs/applications/blockchains/pivx.nix
+++ b/pkgs/applications/blockchains/pivx.nix
@@ -1,5 +1,5 @@
-{ fetchFromGitHub, stdenv, pkgconfig, autoreconfHook
-, openssl, db48, boost, zlib, miniupnpc, gmp
+{ fetchFromGitHub, stdenv, pkgconfig, autoreconfHook, wrapQtAppsHook ? null
+, openssl_1_0_2, db48, boost, zlib, miniupnpc, gmp
, qrencode, glib, protobuf, yasm, libevent
, utillinux, qtbase ? null, qttools ? null
, enableUpnp ? false
@@ -9,18 +9,18 @@
with stdenv.lib;
stdenv.mkDerivation rec {
- pname = "pivx";
- version = "3.2.0";
+ name = "pivx-${version}";
+ version = "3.4.0";
src = fetchFromGitHub {
owner = "PIVX-Project";
repo= "PIVX";
rev = "v${version}";
- sha256 = "1sym6254vhq8qqpxq9qhy10m5167v7x93kqaj1gixc1vwwbxyazy";
+ sha256 = "1fqccdqhbwyvix0ihhbgg2w048i6bhfmazr36h2cn4j65n1fgmi2";
};
- nativeBuildInputs = [ pkgconfig autoreconfHook ];
- buildInputs = [ glib gmp openssl db48 yasm boost zlib libevent miniupnpc protobuf utillinux ]
+ nativeBuildInputs = [ pkgconfig autoreconfHook ] ++ optionals withGui [ wrapQtAppsHook ];
+ buildInputs = [ glib gmp openssl_1_0_2 db48 yasm boost zlib libevent miniupnpc protobuf utillinux ]
++ optionals withGui [ qtbase qttools qrencode ];
configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
++ optional disableWallet "--disable-wallet"
++ optional disableDaemon "--disable-daemon"
++ optionals withGui [ "--with-gui=yes"
+ "--with-unsupported-ssl" # TODO remove this ASAP
"--with-qt-bindir=${qtbase.dev}/bin:${qttools.dev}/bin"
];
@@ -39,6 +40,11 @@ stdenv.mkDerivation rec {
cp share/pixmaps/*128.png $out/share/icons/
'';
+ doInstallCheck = true;
+ installCheckPhase = ''
+ $out/bin/test_pivx
+ '';
+
meta = with stdenv.lib; {
description = "An open source crypto-currency focused on fast private transactions";
longDescription = ''
@@ -50,12 +56,9 @@ stdenv.mkDerivation rec {
homepage = https://www.dash.org;
maintainers = with maintainers; [ wucke13 ];
platforms = platforms.unix;
-
+ # TODO
# upstream doesn't support newer openssl versions
# https://github.com/PIVX-Project/PIVX/issues/748
- # "Your system is most probably using openssl 1.1 which is not the
- # officialy supported version. Either use 1.0.1 or run again configure
- # with the given option."
- broken = true;
+ # openssl_1_0_2 should be replaced with openssl ASAP
};
}
diff --git a/pkgs/applications/blockchains/polkadot/default.nix b/pkgs/applications/blockchains/polkadot/default.nix
index 100c0f8ba41..681268b4f32 100644
--- a/pkgs/applications/blockchains/polkadot/default.nix
+++ b/pkgs/applications/blockchains/polkadot/default.nix
@@ -26,5 +26,6 @@ rustPlatform.buildRustPackage rec {
license = licenses.gpl3;
maintainers = [ maintainers.akru ];
platforms = platforms.linux;
+ broken = true;
};
}
diff --git a/pkgs/applications/blockchains/wasabiwallet/default.nix b/pkgs/applications/blockchains/wasabiwallet/default.nix
index 933e5773eda..9599dc9407c 100644
--- a/pkgs/applications/blockchains/wasabiwallet/default.nix
+++ b/pkgs/applications/blockchains/wasabiwallet/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "wasabiwallet";
- version = "1.1.6";
+ version = "1.1.9.2";
src = fetchurl {
url = "https://github.com/zkSNACKs/WalletWasabi/releases/download/v${version}/WasabiLinux-${version}.tar.gz";
- sha256 = "1i7fhaj9chjlm7qg0h3azy4djnm9rxskbr3dzjj0n9rw8cjdqyq6";
+ sha256 = "0qcgrw106rqcls6p5iq02sq3w6xrzhc5z7w8v5almbw7ikv6f0s2";
};
dontBuild = true;
diff --git a/pkgs/applications/blockchains/wownero.nix b/pkgs/applications/blockchains/wownero.nix
index 365afb5a241..8b25e098b2f 100644
--- a/pkgs/applications/blockchains/wownero.nix
+++ b/pkgs/applications/blockchains/wownero.nix
@@ -1,27 +1,25 @@
-{ stdenv, fetchFromGitHub, cmake, pkgconfig, git
-, boost, miniupnpc_2, openssl, unbound, cppzmq
-, zeromq, pcsclite, readline, libsodium, rapidjson
+{ stdenv, fetchFromGitHub, cmake, boost, miniupnpc_2, openssl, unbound
+, readline, libsodium, rapidjson
}:
with stdenv.lib;
stdenv.mkDerivation rec {
pname = "wownero";
+ version = "0.7.0";
- version = "0.6.1.2";
src = fetchFromGitHub {
owner = "wownero";
repo = "wownero";
rev = "v${version}";
- sha256 = "03q3pviyhrldpa3f4ly4d97jr39hvrz37chl102bap0790d9lk09";
+ sha256 = "0lji24s6346qxcj4pmylv8byb8fnqzpmz81rx4i3zhc1bcsvdwas";
fetchSubmodules = true;
};
- nativeBuildInputs = [ cmake pkgconfig git ];
+ nativeBuildInputs = [ cmake ];
buildInputs = [
- boost miniupnpc_2 openssl unbound rapidjson
- cppzmq zeromq pcsclite readline libsodium
+ boost miniupnpc_2 openssl unbound rapidjson readline libsodium
];
cmakeFlags = [
@@ -30,13 +28,16 @@ stdenv.mkDerivation rec {
];
meta = {
- description = "Wownero is a fork of the cryptocurrency Monero with primary alterations";
+ description = ''
+ A privacy-centric memecoin that was fairly launched on April 1, 2018 with
+ no pre-mine, stealth-mine or ICO
+ '';
longDescription = ''
- Wownero’s emission is capped and supply is finite. Wownero is a fairly
- launched coin with no premine. It’s not a fork of another blockchain. With
- its own genesis block there is no degradation of privacy caused by ring
- signatures using different participants for the same transaction outputs.
- Unlike opposing forks.
+ Wownero has a maximum supply of around 184 million WOW with a slow and
+ steady emission over 50 years. It is a fork of Monero, but with its own
+ genesis block, so there is no degradation of privacy due to ring
+ signatures using different participants for the same tx outputs on
+ opposing forks.
'';
homepage = http://wownero.org/;
license = licenses.bsd3;
diff --git a/pkgs/applications/blockchains/zcash/default.nix b/pkgs/applications/blockchains/zcash/default.nix
index 6a8fba3c2bb..1852d72d326 100644
--- a/pkgs/applications/blockchains/zcash/default.nix
+++ b/pkgs/applications/blockchains/zcash/default.nix
@@ -1,6 +1,6 @@
{ stdenv, libsodium, fetchFromGitHub, wget, pkgconfig, autoreconfHook, openssl, db62, boost
, zlib, gtest, gmock, callPackage, gmp, qt4, utillinux, protobuf, qrencode, libevent
-, withGui }:
+, libsnark, withGui }:
let librustzcash = callPackage ./librustzcash {};
in
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ autoreconfHook pkgconfig ];
buildInputs = [ gtest gmock gmp openssl wget db62 boost zlib
- protobuf libevent libsodium librustzcash ]
+ protobuf libevent libsodium librustzcash libsnark ]
++ optionals stdenv.isLinux [ utillinux ]
++ optionals withGui [ qt4 qrencode ];
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 accdea3ae2d..3128f125cd9 100644
--- a/pkgs/applications/display-managers/lightdm-enso-os-greeter/default.nix
+++ b/pkgs/applications/display-managers/lightdm-enso-os-greeter/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchgit, pkgconfig
+{ stdenv, fetchgit, pkgconfig, linkFarm, lightdm-enso-os-greeter
, dbus, pcre, epoxy, libXdmcp, at-spi2-core, libxklavier, libxkbcommon, libpthreadstubs
-, gtk3, vala, cmake, libgee, libX11, lightdm, gdk-pixbuf, clutter-gtk }:
+, gtk3, vala, cmake, libgee, libX11, lightdm, gdk-pixbuf, clutter-gtk, wrapGAppsHook, librsvg }:
stdenv.mkDerivation {
version = "0.2.1";
@@ -12,12 +12,21 @@ stdenv.mkDerivation {
sha256 = "11jm181jq1vbn83h235avpdxz7pqq6prqyzki5yryy53mkj4kgxz";
};
+ patches = [
+ ./fix-paths.patch
+ ];
+
+ nativeBuildInputs = [
+ cmake
+ pkgconfig
+ vala
+ wrapGAppsHook
+ ];
+
buildInputs = [
dbus
gtk3
pcre
- vala
- cmake
epoxy
libgee
libX11
@@ -29,31 +38,21 @@ stdenv.mkDerivation {
at-spi2-core
libxkbcommon
libpthreadstubs
+ librsvg
];
- nativeBuildInputs = [
- pkgconfig
- ];
-
- postPatch = ''
- sed -i "s@\''${CMAKE_INSTALL_PREFIX}/@@" greeter/CMakeLists.txt
- '';
-
preConfigure = ''
cd greeter
'';
- installFlags = [
- "DESTDIR=$(out)"
- ];
-
- preFixup = ''
- mv $out/usr/* $out
- rm -r $out/usr
- '';
+ passthru.xgreeters = linkFarm "enso-os-greeter-xgreeters" [{
+ path = "${lightdm-enso-os-greeter}/share/xgreeters/pantheon-greeter.desktop";
+ name = "pantheon-greeter.desktop";
+ }];
postFixup = ''
- rm -r $out/sbin
+ substituteInPlace $out/share/xgreeters/pantheon-greeter.desktop \
+ --replace "pantheon-greeter" "$out/bin/pantheon-greeter"
'';
meta = with stdenv.lib; {
diff --git a/pkgs/applications/display-managers/lightdm-enso-os-greeter/fix-paths.patch b/pkgs/applications/display-managers/lightdm-enso-os-greeter/fix-paths.patch
new file mode 100644
index 00000000000..ab3ad2b10e4
--- /dev/null
+++ b/pkgs/applications/display-managers/lightdm-enso-os-greeter/fix-paths.patch
@@ -0,0 +1,24 @@
+diff --git a/greeter/CMakeLists.txt b/greeter/CMakeLists.txt
+index 57aebb0..ab50bff 100644
+--- a/greeter/CMakeLists.txt
++++ b/greeter/CMakeLists.txt
+@@ -9,7 +9,6 @@ list (APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
+ set (CONF_DIR "/etc/lightdm")
+ set (DATADIR "${CMAKE_INSTALL_PREFIX}/share")
+ set (PKGDATADIR "${DATADIR}/enso/greeter")
+-set (CMAKE_INSTALL_PREFIX /usr)
+ set (VERSION "1.0.6")
+
+
+@@ -94,9 +93,9 @@ glib_compile_resources (GLIB_RESOURCES_CSS SOURCE data/css.gresource.xml)
+ add_executable (pantheon-greeter ${VALA_C} ${GLIB_RESOURCES_CSS})
+ target_link_libraries(pantheon-greeter m)
+
+-install (TARGETS pantheon-greeter RUNTIME DESTINATION sbin)
++install (TARGETS pantheon-greeter RUNTIME DESTINATION bin)
+ install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/data/pantheon-greeter.desktop DESTINATION share/xgreeters)
+-install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/data/greeter.conf DESTINATION ${CONF_DIR})
++install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/data/greeter.conf DESTINATION etc/lightdm)
+ install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/data/fingerprint.svg DESTINATION ${PKGDATADIR})
+ install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/data/power.svg DESTINATION ${PKGDATADIR})
+ install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/data/checked.svg DESTINATION ${PKGDATADIR})
diff --git a/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix b/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix
index 69635718e3b..b5b26d7cc43 100644
--- a/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix
+++ b/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, lightdm, gtk3 }:
+{ stdenv, linkFarm, lightdm-mini-greeter, fetchFromGitHub, autoreconfHook, pkgconfig, lightdm, gtk3, glib, gdk-pixbuf, wrapGAppsHook, librsvg }:
stdenv.mkDerivation rec {
pname = "lightdm-mini-greeter";
@@ -11,17 +11,22 @@ stdenv.mkDerivation rec {
sha256 = "1qi0bsqi8z2zv3303ww0kd7bciz6qx8na5bkvgrqlwyvq31czai5";
};
- nativeBuildInputs = [ autoreconfHook pkgconfig ];
- buildInputs = [ lightdm gtk3 ];
+ nativeBuildInputs = [ autoreconfHook pkgconfig wrapGAppsHook ];
+ buildInputs = [ lightdm gtk3 glib gdk-pixbuf librsvg ];
configureFlags = [ "--sysconfdir=/etc" ];
- makeFlags = [ "configdir=$(out)/etc" ];
+ makeFlags = [ "configdir=${placeholder "out"}/etc" ];
postInstall = ''
substituteInPlace "$out/share/xgreeters/lightdm-mini-greeter.desktop" \
--replace "Exec=lightdm-mini-greeter" "Exec=$out/bin/lightdm-mini-greeter"
'';
+ passthru.xgreeters = linkFarm "lightdm-mini-greeter-xgreeters" [{
+ path = "${lightdm-mini-greeter}/share/xgreeters/lightdm-mini-greeter.desktop";
+ name = "lightdm-mini-greeter.desktop";
+ }];
+
meta = with stdenv.lib; {
description = "A minimal, configurable, single-user GTK3 LightDM greeter";
homepage = https://github.com/prikhi/lightdm-mini-greeter;
diff --git a/pkgs/applications/display-managers/lightdm/default.nix b/pkgs/applications/display-managers/lightdm/default.nix
index 1df67578b3a..952aa285637 100644
--- a/pkgs/applications/display-managers/lightdm/default.nix
+++ b/pkgs/applications/display-managers/lightdm/default.nix
@@ -1,8 +1,33 @@
-{ stdenv, fetchFromGitHub, pam, pkgconfig, autoconf, automake, libtool, libxcb
-, glib, libXdmcp, itstool, intltool, libxklavier, libgcrypt, audit, busybox
-, polkit, accountsservice, gtk-doc, gnome3, gobject-introspection, vala, fetchpatch
-, withQt4 ? false, qt4
-, withQt5 ? false, qtbase
+{ stdenv
+, fetchFromGitHub
+, substituteAll
+, plymouth
+, pam
+, pkgconfig
+, autoconf
+, automake
+, libtool
+, libxcb
+, glib
+, libXdmcp
+, itstool
+, intltool
+, libxklavier
+, libgcrypt
+, audit
+, busybox
+, polkit
+, accountsservice
+, gtk-doc
+, gnome3
+, gobject-introspection
+, vala
+, fetchpatch
+, withQt4 ? false
+, qt4
+, withQt5 ? false
+, qtbase
+, yelp-tools
}:
with stdenv.lib;
@@ -23,7 +48,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [
autoconf
automake
- gnome3.yelp-tools
+ yelp-tools
gnome3.yelp-xsl
gobject-introspection
gtk-doc
@@ -53,6 +78,20 @@ stdenv.mkDerivation rec {
url = "https://src.fedoraproject.org/rpms/lightdm/raw/4cf0d2bed8d1c68970b0322ccd5dbbbb7a0b12bc/f/lightdm-1.25.1-disable_dmrc.patch";
sha256 = "06f7iabagrsiws2l75sx2jyljknr9js7ydn151p3qfi104d1541n";
})
+
+ # Don't use etc/dbus-1/system.d
+ (fetchpatch {
+ url = "https://github.com/canonical/lightdm/commit/a99376f5f51aa147aaf81287d7ce70db76022c47.patch";
+ sha256 = "1zyx1qqajrmqcf9hbsapd39gmdanswd9l78rq7q6rdy4692il3yn";
+ })
+
+ # Hardcode plymouth to fix transitions.
+ # For some reason it can't find `plymouth`
+ # even when it's in PATH in environment.systemPackages.
+ (substituteAll {
+ src = ./fix-paths.patch;
+ plymouth = "${plymouth}/bin/plymouth";
+ })
];
preConfigure = "NOCONFIGURE=1 ./autogen.sh";
@@ -78,6 +117,10 @@ stdenv.mkDerivation rec {
--replace /bin/rm ${busybox}/bin/rm
'';
+ postInstall = ''
+ rm -rf $out/etc/apparmor.d $out/etc/init $out/etc/pam.d
+ '';
+
meta = {
homepage = https://github.com/CanonicalLtd/lightdm;
description = "A cross-desktop display manager";
diff --git a/pkgs/applications/display-managers/lightdm/fix-paths.patch b/pkgs/applications/display-managers/lightdm/fix-paths.patch
new file mode 100644
index 00000000000..4498bc4d1a3
--- /dev/null
+++ b/pkgs/applications/display-managers/lightdm/fix-paths.patch
@@ -0,0 +1,13 @@
+diff --git a/src/plymouth.c b/src/plymouth.c
+index d1ed91f4..318f9409 100644
+--- a/src/plymouth.c
++++ b/src/plymouth.c
+@@ -24,7 +24,7 @@ static gboolean has_active_vt = FALSE;
+ static gboolean
+ plymouth_run_command (const gchar *command, gint *exit_status)
+ {
+- g_autofree gchar *command_line = g_strdup_printf ("plymouth %s", command);
++ g_autofree gchar *command_line = g_strdup_printf ("@plymouth@ %s", command);
+ g_autoptr(GError) error = NULL;
+ gboolean result = g_spawn_command_line_sync (command_line, NULL, NULL, exit_status, &error);
+
diff --git a/pkgs/applications/display-managers/lightdm/gtk-greeter.nix b/pkgs/applications/display-managers/lightdm/gtk-greeter.nix
index f892a9da50b..5b1490a6b3b 100644
--- a/pkgs/applications/display-managers/lightdm/gtk-greeter.nix
+++ b/pkgs/applications/display-managers/lightdm/gtk-greeter.nix
@@ -1,7 +1,18 @@
-{ stdenv, fetchurl, lightdm, pkgconfig, intltool
-, hicolor-icon-theme, makeWrapper
-, useGTK2 ? false, gtk2, gtk3 # gtk3 seems better supported
-, exo, at-spi2-core
+{ stdenv
+, lightdm_gtk_greeter
+, fetchurl
+, lightdm
+, pkgconfig
+, intltool
+, linkFarm
+, wrapGAppsHook
+, useGTK2 ? false
+, gtk2
+, gtk3 # gtk3 seems better supported
+, exo
+, at-spi2-core
+, librsvg
+, hicolor-icon-theme
}:
#ToDo: bad icons with gtk2;
@@ -20,14 +31,15 @@ stdenv.mkDerivation rec {
sha256 = "1pis5qyg95pg31dvnfqq34bzgj00hg4vs547r8h60lxjk81z8p15";
};
- nativeBuildInputs = [ pkgconfig ];
- buildInputs = [ lightdm exo intltool makeWrapper hicolor-icon-theme ]
+ nativeBuildInputs = [ pkgconfig intltool wrapGAppsHook ];
+ buildInputs = [ lightdm exo librsvg hicolor-icon-theme ]
++ (if useGTK2 then [ gtk2 ] else [ gtk3 ]);
configureFlags = [
"--localstatedir=/var"
"--sysconfdir=/etc"
"--disable-indicator-services-command"
+ "--sbindir=${placeholder "out"}/bin" # for wrapGAppsHook to wrap automatically
] ++ stdenv.lib.optional useGTK2 "--with-gtk2";
preConfigure = ''
@@ -43,11 +55,14 @@ stdenv.mkDerivation rec {
postInstall = ''
substituteInPlace "$out/share/xgreeters/lightdm-gtk-greeter.desktop" \
- --replace "Exec=lightdm-gtk-greeter" "Exec=$out/sbin/lightdm-gtk-greeter"
- wrapProgram "$out/sbin/lightdm-gtk-greeter" \
- --prefix XDG_DATA_DIRS ":" "${hicolor-icon-theme}/share"
+ --replace "Exec=lightdm-gtk-greeter" "Exec=$out/bin/lightdm-gtk-greeter"
'';
+ passthru.xgreeters = linkFarm "lightdm-gtk-greeter-xgreeters" [{
+ path = "${lightdm_gtk_greeter}/share/xgreeters/lightdm-gtk-greeter.desktop";
+ name = "lightdm-gtk-greeter.desktop";
+ }];
+
meta = with stdenv.lib; {
homepage = https://launchpad.net/lightdm-gtk-greeter;
platforms = platforms.linux;
diff --git a/pkgs/applications/display-managers/sddm/default.nix b/pkgs/applications/display-managers/sddm/default.nix
index 526041124bc..735e83a0842 100644
--- a/pkgs/applications/display-managers/sddm/default.nix
+++ b/pkgs/applications/display-managers/sddm/default.nix
@@ -46,6 +46,7 @@ in mkDerivation {
"-DQT_IMPORTS_DIR=${placeholder "out"}/${qtbase.qtQmlPrefix}"
"-DCMAKE_INSTALL_SYSCONFDIR=${placeholder "out"}/etc"
"-DSYSTEMD_SYSTEM_UNIT_DIR=${placeholder "out"}/lib/systemd/system"
+ "-DDBUS_CONFIG_DIR=${placeholder "out"}/share/dbus-1/system.d"
];
postInstall = ''
diff --git a/pkgs/applications/display-managers/slim/default.nix b/pkgs/applications/display-managers/slim/default.nix
deleted file mode 100644
index e504c09e43e..00000000000
--- a/pkgs/applications/display-managers/slim/default.nix
+++ /dev/null
@@ -1,55 +0,0 @@
-{ stdenv, fetchurl, fetchpatch, cmake, pkgconfig, xorg, libjpeg, libpng
-, fontconfig, freetype, pam, dbus, makeWrapper }:
-
-stdenv.mkDerivation rec {
- name = "slim-1.3.6";
-
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/${name}.tar.gz";
- sha256 = "1pqhk22jb4aja4hkrm7rjgbgzjyh7i4zswdgf5nw862l2znzxpi1";
- };
-
- patches =
- [ # Allow the paths of the configuration file and theme directory to
- # be set at runtime.
- ./runtime-paths.patch
-
- # Exit after the user's session has finished. This works around
- # slim's broken PAM session handling (see
- # http://developer.berlios.de/bugs/?func=detailbug&bug_id=19102&group_id=2663).
- ./run-once.patch
-
- # Ensure that sessions appear in sort order, rather than in
- # directory order.
- ./sort-sessions.patch
-
- # Allow to set logfile to a special "/dev/stderr" in order to continue
- # logging to stderr and thus to the journal.
- ./no-logfile.patch
- ] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl (fetchpatch {
- url = "https://raw.githubusercontent.com/gentoo/musl/8eddda8072add075ebf56cf6d288bc1450d6b5f8/x11-misc/slim/files/slim-1.3.6-add-missing-libgen_h.patch";
- sha256 = "0f82672s2r2cmdqfn2mbg3di76mbla9n0ik20p2gv4igi6p866xm";
- });
-
- preConfigure = "substituteInPlace CMakeLists.txt --replace /lib $out/lib";
-
- cmakeFlags = [ "-DUSE_PAM=1" ];
-
- NIX_CFLAGS_COMPILE = "-I${freetype.dev}/include/freetype -std=c++11";
-
- enableParallelBuilding = true;
-
- buildInputs =
- [ cmake pkgconfig libjpeg libpng fontconfig freetype
- pam dbus
- xorg.libX11 xorg.libXext xorg.libXrandr xorg.libXrender xorg.libXmu xorg.libXft makeWrapper
- ];
-
- NIX_CFLAGS_LINK = "-lXmu";
-
- meta = {
- homepage = https://sourceforge.net/projects/slim.berlios/; # berlios shut down; I found no replacement yet
- platforms = stdenv.lib.platforms.linux;
- license = stdenv.lib.licenses.gpl2;
- };
-}
diff --git a/pkgs/applications/display-managers/slim/no-logfile.patch b/pkgs/applications/display-managers/slim/no-logfile.patch
deleted file mode 100644
index f2f5f154993..00000000000
--- a/pkgs/applications/display-managers/slim/no-logfile.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-diff --git a/log.cpp b/log.cpp
-index b44677a..7c89dda 100644
---- a/log.cpp
-+++ b/log.cpp
-@@ -1,23 +1,31 @@
- #include "log.h"
- #include
-+#include
-
- bool
- LogUnit::openLog(const char * filename)
- {
-- if (logFile.is_open()) {
-+ if (isFile && logFile.is_open()) {
- cerr << APPNAME
- << ": opening a new Log file, while another is already open"
- << endl;
-- logFile.close();
-+ closeLog();
- }
-- logFile.open(filename, ios_base::app);
-
-- return !(logFile.fail());
-+ if (strcmp(filename, "/dev/stderr") == 0) {
-+ isFile = false;
-+ return true;
-+ } else {
-+ logFile.open(filename, ios_base::app);
-+ isFile = true;
-+ return !(logFile.fail());
-+ }
- }
-
- void
- LogUnit::closeLog()
- {
-+ if (!isFile) return;
- if (logFile.is_open())
- logFile.close();
- }
-diff --git a/log.h b/log.h
-index b7810be..ad548a2 100644
---- a/log.h
-+++ b/log.h
-@@ -9,11 +9,14 @@
- #endif
- #include "const.h"
- #include
-+#include
-
- using namespace std;
-
- static class LogUnit {
- ofstream logFile;
-+ bool isFile;
-+ inline ostream &getStream() { return isFile ? logFile : cerr; }
- public:
- bool openLog(const char * filename);
- void closeLog();
-@@ -22,17 +25,17 @@ public:
-
- template
- LogUnit & operator<<(const Type & text) {
-- logFile << text; logFile.flush();
-+ getStream() << text; getStream().flush();
- return *this;
- }
-
- LogUnit & operator<<(ostream & (*fp)(ostream&)) {
-- logFile << fp; logFile.flush();
-+ getStream() << fp; getStream().flush();
- return *this;
- }
-
- LogUnit & operator<<(ios_base & (*fp)(ios_base&)) {
-- logFile << fp; logFile.flush();
-+ getStream() << fp; getStream().flush();
- return *this;
- }
- } logStream;
diff --git a/pkgs/applications/display-managers/slim/run-once.patch b/pkgs/applications/display-managers/slim/run-once.patch
deleted file mode 100644
index 78f1454a883..00000000000
--- a/pkgs/applications/display-managers/slim/run-once.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ru -x '*~' slim-1.3.6-orig/app.cpp slim-1.3.6/app.cpp
---- slim-1.3.6-orig/app.cpp 2013-10-15 11:02:55.629263422 +0200
-+++ slim-1.3.6/app.cpp 2013-10-15 13:00:10.141210784 +0200
-@@ -816,7 +822,7 @@
- StopServer();
- RemoveLock();
- while (waitpid(-1, NULL, WNOHANG) > 0); /* Collects all dead childrens */
-- Run();
-+ exit(OK_EXIT);
- }
-
- void App::KillAllClients(Bool top) {
diff --git a/pkgs/applications/display-managers/slim/runtime-paths.patch b/pkgs/applications/display-managers/slim/runtime-paths.patch
deleted file mode 100644
index 5a8e07bfbf0..00000000000
--- a/pkgs/applications/display-managers/slim/runtime-paths.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-diff -ru slim-1.3.6-orig/app.cpp slim-1.3.6/app.cpp
---- slim-1.3.6-orig/app.cpp 2013-10-02 00:38:05.000000000 +0200
-+++ slim-1.3.6/app.cpp 2014-03-30 19:01:04.115414201 +0200
-@@ -200,7 +200,9 @@
-
- /* Read configuration and theme */
- cfg = new Cfg;
-- cfg->readConf(CFGFILE);
-+ char *cfgfile = getenv("SLIM_CFGFILE");
-+ if (!cfgfile) cfgfile = CFGFILE;
-+ cfg->readConf(cfgfile);
- string themebase = "";
- string themefile = "";
- string themedir = "";
-@@ -208,7 +210,9 @@
- if (testing) {
- themeName = testtheme;
- } else {
-- themebase = string(THEMESDIR) + "/";
-+ char *themesdir = getenv("SLIM_THEMESDIR");
-+ if (!themesdir) themesdir = THEMESDIR;
-+ themebase = string(themesdir) + "/";
- themeName = cfg->getOption("current_theme");
- string::size_type pos;
- if ((pos = themeName.find(",")) != string::npos) {
-diff -ru slim-1.3.6-orig/CMakeLists.txt slim-1.3.6/CMakeLists.txt
---- slim-1.3.6-orig/CMakeLists.txt 2013-10-02 00:38:05.000000000 +0200
-+++ slim-1.3.6/CMakeLists.txt 2014-03-30 19:16:48.445069729 +0200
-@@ -23,7 +23,7 @@
-
- set(CMAKE_INSTALL_PREFIX "/usr/local" CACHE PATH "Installation Directory")
- set(PKGDATADIR "${CMAKE_INSTALL_PREFIX}/share/slim")
--set(SYSCONFDIR "/etc")
-+set(SYSCONFDIR "$ENV{out}/etc")
- set(LIBDIR "/lib")
- set(MANDIR "${CMAKE_INSTALL_PREFIX}/share/man")
-
-@@ -40,7 +40,7 @@
- set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DPACKAGE=\"slim\"")
- set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DVERSION=\"${SLIM_VERSION}\"")
- set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DPKGDATADIR=\"${PKGDATADIR}\"")
--set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DSYSCONFDIR=\"${SYSCONFDIR}\"")
-+set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DSYSCONFDIR=\"/etc\"")
-
- # Flags
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -g -O2")
-Only in slim-1.3.6: CMakeLists.txt~
-diff -ru slim-1.3.6-orig/slimlock.cpp slim-1.3.6/slimlock.cpp
---- slim-1.3.6-orig/slimlock.cpp 2013-10-02 00:38:05.000000000 +0200
-+++ slim-1.3.6/slimlock.cpp 2014-03-30 19:01:04.115414201 +0200
-@@ -106,13 +106,17 @@
- unsigned int cfg_passwd_timeout;
- // Read user's current theme
- cfg = new Cfg;
-- cfg->readConf(CFGFILE);
-+ char *cfgfile = getenv("SLIM_CFGFILE");
-+ if (!cfgfile) cfgfile = CFGFILE;
-+ cfg->readConf(cfgfile);
- cfg->readConf(SLIMLOCKCFG);
- string themebase = "";
- string themefile = "";
- string themedir = "";
- themeName = "";
-- themebase = string(THEMESDIR) + "/";
-+ char *themesdir = getenv("SLIM_THEMESDIR");
-+ if (!themesdir) themesdir = THEMESDIR;
-+ themebase = string(themesdir) + "/";
- themeName = cfg->getOption("current_theme");
- string::size_type pos;
- if ((pos = themeName.find(",")) != string::npos) {
diff --git a/pkgs/applications/display-managers/slim/sort-sessions.patch b/pkgs/applications/display-managers/slim/sort-sessions.patch
deleted file mode 100644
index cab5610f44f..00000000000
--- a/pkgs/applications/display-managers/slim/sort-sessions.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-diff -ru -x '*~' slim-1.3.6-orig/cfg.cpp slim-1.3.6/cfg.cpp
---- slim-1.3.6-orig/cfg.cpp 2013-10-02 00:38:05.000000000 +0200
-+++ slim-1.3.6/cfg.cpp 2016-01-30 10:35:51.108766802 +0100
-@@ -14,6 +14,7 @@
- #include
- #include
- #include
-+#include
-
- #include
- #include
-@@ -293,6 +294,8 @@
-
- sessions.clear();
-
-+ typedef pair session_t;
-+
- if( !strSessionDir.empty() ) {
- DIR *pDir = opendir(strSessionDir.c_str());
-
-@@ -325,7 +328,7 @@
- }
- }
- desktop_file.close();
-- pair session(session_name,session_exec);
-+ session_t session(session_name,session_exec);
- sessions.push_back(session);
- cout << session_exec << " - " << session_name << endl;
- }
-@@ -341,6 +344,10 @@
- pair session("","");
- sessions.push_back(session);
- }
-+
-+ std::sort(sessions.begin(), sessions.end(), [](session_t& a, session_t& b) -> bool{
-+ return a.first < b.first;
-+ });
- }
-
- pair Cfg::nextSession() {
diff --git a/pkgs/applications/display-managers/slim/themes.nix b/pkgs/applications/display-managers/slim/themes.nix
deleted file mode 100644
index b1be24f3e1d..00000000000
--- a/pkgs/applications/display-managers/slim/themes.nix
+++ /dev/null
@@ -1,183 +0,0 @@
-{ stdenv, fetchurl, slim }:
-
-# Inspired on aspell buildDict expression
-
-let
- buildTheme =
- {fullName, src, version ? "testing"}:
-
- stdenv. mkDerivation rec {
- name = "${fullName}-${version}";
-
- inherit src;
-
- buildInputs = [ slim ];
-
- dontBuild = true;
-
- installPhase = ''
- install -dm755 $out/share/slim/themes/${name}
- install -m644 * $out/share/slim/themes/${name}
- '';
-
- meta = {
- description = "Slim theme for ${fullName}";
- platforms = stdenv.lib.platforms.linux;
- };
- };
-
-in {
-
- archlinuxSimple = buildTheme {
- fullName = "archlinux-simple";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-archlinux-simple.tar.gz";
- sha256 = "7d60d6782fa86302646fe67253467c04692d247f89bdbe87178f690f32b270db";
- };
- };
-
- capernoited = buildTheme {
- fullName = "capernoited";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-capernoited.tar.gz";
- sha256 = "fb9163c6a2656d60f088dc4f2173aa7556a6794495122acfa7d3be7182f16b41";
- };
- };
-
- debianMoreblue = buildTheme {
- fullName = "debian-moreblue";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-debian-moreblue.tar.bz2";
- sha256 = "5b76929827d4a4d604ddca4f42668cca3309b6f7bd659901021c6f49d6d2c481";
- };
- };
-
- fingerprint = buildTheme {
- fullName = "fingerprint";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-fingerprint.tar.gz";
- sha256 = "48b703f84ce7b814cda0824f65cafebf695cd71a14166b481bb44616097d3144";
- };
- };
-
- flat = buildTheme {
- fullName = "flat";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-flat.tar.gz";
- sha256 = "0092d531540f9da8ef07ad173e527c4ef9c088d04962d142be3c11f0c5c0c5e9";
- };
- };
-
- flower2 = buildTheme {
- fullName = "flower2";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-flower2.tar.gz";
- sha256 = "840faf6459ffd6c2c363160c85cb98000717f9a425102976336f5d8f68ed95ee";
- };
- };
-
- gentooSimple = buildTheme {
- fullName = "gentoo-simple";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-gentoo-simple.tar.bz2";
- sha256 = "27c8614cc930ca200acf81f1192febc102501744939d5cbe997141e37c96d8c2";
- };
- };
-
- lake = buildTheme {
- fullName = "lake";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-lake.tar.gz";
- sha256 = "f7d662e37068a6c64cbf910adf3c192f1b50724baa427a8c9487cb9f7ed95851";
- };
- };
-
- lunar = buildTheme {
- fullName = "lunar-0.4";
- version = "";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-lunar-0.4.tar.bz2";
- sha256 = "1543eb45e4d664377e0dd4f7f954aba005823034ba9692624398b3d58be87d76";
- };
- };
-
- mindlock = buildTheme {
- fullName = "mindlock";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-mindlock.tar.gz";
- sha256 = "99a6e6acd55bf55ece18a3f644299517b71c1adc49efd87ce2d7e654fb67033c";
- };
- };
-
- parallelDimensions = buildTheme {
- fullName = "parallel-dimensions";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-parallel-dimensions.tar.gz";
- sha256 = "2b17c3e6d3967a6a0744e20e6e05c9d3938f4ef04c62d49ddbd416bc4743046f";
- };
- };
-
- previous = buildTheme {
- fullName = "previous";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-previous.tar.gz";
- sha256 = "1f2a69f8fc0dc8ed8eb86a4c1d1087ba7be486973fb81efab52a63c661d726f8";
- };
- };
-
- rainbow = buildTheme {
- fullName = "rainbow";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-rainbow.tar.gz";
- sha256 = "d83e3afdb05be50cff7da037bb31208b2c152539d1a009740b13857f5f910072";
- };
- };
-
- rear-window = buildTheme {
- fullName = "rear-window";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-rear-window.tar.gz";
- sha256 = "0b123706ccb67e94f626c183530ec5732b209bab155bc661d6a3f5cd5ee39511";
- };
- };
-
- scotlandRoad = buildTheme {
- fullName = "scotland-road";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-scotland-road.tar.gz";
- sha256 = "fd60a434496ed39b968ffa1e5457b36cd12f64a4e2ecedffc675f97ca3f3bba1";
- };
- };
-
- subway = buildTheme {
- fullName = "subway";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-subway.tar.gz";
- sha256 = "0205568e3e157973b113a83b26d8829ce9962a85ef7eb8a33d3ae2f3f9292253";
- };
- };
-
- wave = buildTheme {
- fullName = "wave";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-wave.tar.gz";
- sha256 = "be75676da5bf8670daa48379bb9cc1be0b9a5faa09adbea967dfd7125320b959";
- };
- };
-
- zenwalk = buildTheme {
- fullName = "zenwalk";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-zenwalk.tar.gz";
- sha256 = "f0f41d17ea505b0aa96a036e978fabaf673a51d3f81a919cb0d43364d4bc7a57";
- };
- };
-
- nixosSlim = buildTheme {
- fullName = "nixos-slim";
- src = fetchurl {
- url = "https://github.com/jagajaga/nixos-slim-theme/archive/2.0.tar.gz";
- sha256 = "0lldizhigx7bjhxkipii87y432hlf5wdvamnfxrryf9z7zkfypc8";
- };
- };
-}
diff --git a/pkgs/applications/editors/amp/default.nix b/pkgs/applications/editors/amp/default.nix
index 98692de4317..31d0806df8a 100644
--- a/pkgs/applications/editors/amp/default.nix
+++ b/pkgs/applications/editors/amp/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchFromGitHub, rustPlatform, openssl, pkgconfig, python3, xorg, cmake, libgit2 }:
+{ stdenv, fetchFromGitHub, rustPlatform, openssl, pkgconfig, python3, xorg, cmake, libgit2, darwin
+, curl }:
rustPlatform.buildRustPackage rec {
pname = "amp";
@@ -15,7 +16,8 @@ rustPlatform.buildRustPackage rec {
cargoSha256 = "1bvj2zg19ak4vi47vjkqlybz011kn5zq1j7zznr76zrryacw4lz1";
nativeBuildInputs = [ cmake pkgconfig ];
- buildInputs = [ openssl python3 xorg.libxcb libgit2 ];
+ buildInputs = [ openssl python3 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.
preCheck = "export HOME=`mktemp -d`";
diff --git a/pkgs/applications/editors/android-studio/common.nix b/pkgs/applications/editors/android-studio/common.nix
index 0d406ad2d36..05a997c62ff 100644
--- a/pkgs/applications/editors/android-studio/common.nix
+++ b/pkgs/applications/editors/android-studio/common.nix
@@ -1,8 +1,12 @@
{ channel, pname, version, build, sha256Hash }:
-{ bash
+{ alsaLib
+, bash
, buildFHSUserEnv
+, cacert
, coreutils
+, dbus
+, expat
, fetchurl
, findutils
, file
@@ -19,16 +23,24 @@
, libpulseaudio
, libGL
, libX11
+, libxcb
+, libXcomposite
+, libXcursor
+, libXdamage
, libXext
+, libXfixes
, libXi
, libXrandr
, libXrender
, libXtst
, makeWrapper
+, nspr
+, nss
, pciutils
, pkgsi686Linux
, setxkbmap
, stdenv
+, systemd
, unzip
, which
, runCommand
@@ -99,9 +111,20 @@ let
libXrandr
# For Android emulator
+ alsaLib
+ dbus
+ expat
libpulseaudio
libX11
+ libxcb
+ libXcomposite
+ libXcursor
+ libXdamage
+ libXfixes
libGL
+ nspr
+ nss
+ systemd
# For GTKLookAndFeel
gtk2
@@ -130,7 +153,16 @@ let
# environment is used as a work around for that.
fhsEnv = buildFHSUserEnv {
name = "${drvName}-fhs-env";
- multiPkgs = pkgs: [ pkgs.ncurses5 ];
+ multiPkgs = pkgs: [
+ pkgs.ncurses5
+
+ # Flutter can only search for certs Fedora-way.
+ (runCommand "fedoracert" {}
+ ''
+ mkdir -p $out/etc/pki/tls/
+ ln -s ${cacert}/etc/ssl/certs $out/etc/pki/tls/certs
+ '')
+ ];
};
in runCommand
drvName
diff --git a/pkgs/applications/editors/android-studio/default.nix b/pkgs/applications/editors/android-studio/default.nix
index b5381983240..c9bd1d089ca 100644
--- a/pkgs/applications/editors/android-studio/default.nix
+++ b/pkgs/applications/editors/android-studio/default.nix
@@ -8,15 +8,19 @@ let
inherit (gnome2) GConf gnome_vfs;
};
stableVersion = {
- version = "3.5.0.21"; # "Android Studio 3.5"
- build = "191.5791312";
- sha256Hash = "0vvk2vhklxg9wfi4lv4sahs5ahhb1mki1msy3yixmr56vipgv52p";
+ version = "3.5.2.0"; # "Android Studio 3.5.2"
+ build = "191.5977832";
+ sha256Hash = "0kcd6kd5rn4b76damkfddin18d1r0dck05piv8mq1ns7x1n4hf7q";
+ };
+ betaVersion = {
+ version = "3.6.0.16"; # "Android Studio 3.6 Beta 4"
+ build = "192.5994180";
+ sha256Hash = "0wyyr6r0jzb1l4rn1mfgp0nnzvgk3x62imq629z6vrdbymy8psf1";
};
- betaVersion = stableVersion;
latestVersion = { # canary & dev
- version = "3.6.0.10"; # "Android Studio 3.6 Canary 10"
- build = "192.5842447";
- sha256Hash = "0qyvqm0ihp6czx77skia87qnz87wrsp1a6la04dr4b0xln2c8m5b";
+ version = "4.0.0.3"; # "Android Studio 4.0 Canary 3"
+ build = "192.5994236";
+ sha256Hash = "14ig352anjs0df72f41v4r6jl7mlm2n4pn9syanmykaj87dm4kf4";
};
in {
# Attributes are named by their corresponding release channels
diff --git a/pkgs/applications/editors/bvi/default.nix b/pkgs/applications/editors/bvi/default.nix
index 3237c543ee6..2e79b80d610 100644
--- a/pkgs/applications/editors/bvi/default.nix
+++ b/pkgs/applications/editors/bvi/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "bvi";
- version = "1.4.0";
+ version = "1.4.1";
src = fetchurl {
url = "mirror://sourceforge/bvi/${pname}-${version}.src.tar.gz";
- sha256 = "00pq9rv7s8inqxq2m3xshxi58691i3pxw9smibcrgh6768l3qnh1";
+ sha256 = "0a0yl0dcyff31k3dr4dpgqmlwygp8iaslnr5gmb6814ylxf2ad9h";
};
buildInputs = [ ncurses ];
diff --git a/pkgs/applications/editors/eclipse/default.nix b/pkgs/applications/editors/eclipse/default.nix
index 972a9daded4..13db2d13567 100644
--- a/pkgs/applications/editors/eclipse/default.nix
+++ b/pkgs/applications/editors/eclipse/default.nix
@@ -13,10 +13,10 @@ assert stdenv ? glibc;
let
platform_major = "4";
- platform_minor = "12";
+ platform_minor = "13";
year = "2019";
- month = "06";
- timestamp = "201906051800";
+ month = "09";
+ timestamp = "201909161045";
in rec {
@@ -34,7 +34,7 @@ in rec {
src =
fetchurl {
url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-cpp-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
- sha512 = "3mfljabrwbwq256vvsp9qjb96hzlbpwgnb3wz806pbyh0ibfq6s1hn8kh5aaa2da5821v0ykcxa12jagj7naqp4g91jqxp1wb1ygz2q";
+ sha512 = "0s9wvxd1bahlcdw7l6cyfi59p78j6gym3a3mn1z6dm6swxgyb2wjjl7hx8bkg0zs8x31bwllpdq22y2vcm6j57h40v53l3xkhy73m8v";
};
};
@@ -46,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 = "18p6xz6rq4w6j39b2k9kjpz8s1nljfq44g2cmvxqjgjfkq8lk4ij73ssyv1raly4wkm7r22ixacswdjmyj942k5vpv9y11i91hp1scv";
+ sha512 = "09nc7ipv67h0gr7lkxsbxrgj9gn48348asn03ylcvflyrcxghqs8n11a75rwvdj98igdzpw922saicx5lqq5g2flfqiga97lwwhfiz5";
};
};
@@ -58,7 +58,7 @@ in rec {
src =
fetchurl {
url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops${platform_major}/R-${platform_major}.${platform_minor}-${timestamp}/eclipse-platform-${platform_major}.${platform_minor}-linux-gtk-x86_64.tar.gz";
- sha512 = "0qiyk95qhdqcfgg5hgc7pcpbpjy9jnx7l3vb7s4cgijdz2xz0n5psh11lpj3whk2amh4iwkyx7kn8fxdq7lm03rlgx67cbk7p8my16m";
+ sha512 = "2c40wwrc2ip32n0m5cs8ds0g7cs7018acw8gjkd23msa4pr9x9511c3dj6rbnn1hwzf9yjq6vnjmib5qarxd3vly76jwxhf867l1f7v";
};
};
@@ -88,7 +88,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 = "3bbc8d66ms7nhg6f8gb0bnzjqz26wixpipn4n9qf0azcplrv2j91z8hjw1fx39dx4pqnsf442bkgab4qqhkpks7qq54110l01q6gvy9";
+ sha512 = "2vm646d1crzzzysll3p5pjfljfjzxx4qd37dqcp6xjm91zg8iskli688h0lgla0rmbwz5kj509jp22m4rxkp3cbgd006dd0jr3icdls";
};
};
@@ -100,7 +100,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 = "20qs1aagh4drsycvar3x42zy422zl34yg1p3vhxbqfbf7v3z1d3cxs9ah61x4bdxx9bkfwchasqp1wr15nflch9g0i50bdki3cgng1d";
+ sha512 = "3zyxqd8iwrfgjjg91dfi4bda61rd2717hy53swmbygi48zaaam70swx997yp5qzxwjp3macdslfk6sqhq2qlcdwcdl6dmkry018jh7b";
};
};
diff --git a/pkgs/applications/editors/eclipse/plugins.nix b/pkgs/applications/editors/eclipse/plugins.nix
index cf7980582ff..b2fdeafd37c 100644
--- a/pkgs/applications/editors/eclipse/plugins.nix
+++ b/pkgs/applications/editors/eclipse/plugins.nix
@@ -254,12 +254,12 @@ rec {
cdt = buildEclipseUpdateSite rec {
name = "cdt-${version}";
- version = "9.8.1";
+ version = "9.9.0";
src = fetchzip {
stripRoot = false;
- url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/tools/cdt/releases/9.8/${name}/${name}.zip";
- sha256 = "0kxmwz75i8mv4wics9n0hspxhzl3glf5ry2v5mnl5j9gcf73b0nv";
+ url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/tools/cdt/releases/9.9/${name}/${name}.zip";
+ sha256 = "1vgx7ggilfwmx0bjrhk7mwlwg1c8lb141ilj3vzwxivlffihy054";
};
meta = with stdenv.lib; {
@@ -474,12 +474,12 @@ rec {
jdt = buildEclipseUpdateSite rec {
name = "jdt-${version}";
- version = "4.12";
+ version = "4.13";
src = fetchzip {
stripRoot = false;
- url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.12-201906051800/org.eclipse.jdt-4.12.zip;
- sha256 = "0qscvqg69z4554n1yhl0xg1xz8ln3qsbgfzi7cg3xnnwnxfqz9cb";
+ url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.13-201909161045/org.eclipse.jdt-4.13.zip;
+ sha256 = "0sfpxph0cszcx1cihzzjn60qid8sxgl2xyr9x46fld4ian5a7vbr";
};
meta = with stdenv.lib; {
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 3d34c7a462e..33f2ad79ea0 100644
--- a/pkgs/applications/editors/emacs-modes/color-theme-solarized/default.nix
+++ b/pkgs/applications/editors/emacs-modes/color-theme-solarized/default.nix
@@ -1,6 +1,6 @@
-{stdenv, fetchzip, emacs, colorTheme}:
+{stdenv, fetchzip, emacs, color-theme}:
let
- commit = "412713a0fcedd520d208a7b783fea03d710bcc61";
+ commit = "f3ca8902ea056fb8e46cb09f09c96294e31cd4ee";
in
stdenv.mkDerivation {
name = "color-theme-solarized-1.0.0";
@@ -8,15 +8,14 @@ stdenv.mkDerivation {
src = fetchzip {
url = "https://github.com/sellout/emacs-color-theme-solarized/archive/${commit}.zip";
- sha256 = "1xd2yk7p39zxgcf91s80pqknzdxw9d09cppjb87g7ihj6f0wxqjv";
+ sha256 = "16d7adqi07lzzr0qipl1fbag9l8kiyr3xrqxi528pimcisbg85d3";
};
buildInputs = [ emacs ];
- propagatedUserEnvPkgs = [ colorTheme ];
-
+ propagatedUserEnvPkgs = [ color-theme ];
buildPhase = ''
- emacs -L . -L ${colorTheme}/share/emacs/site-lisp --batch -f batch-byte-compile *.el
+ emacs -L . -L ${color-theme}/share/emacs/site-lisp/elpa/color-theme-* --batch -f batch-byte-compile *.el
'';
installPhase = ''
@@ -30,8 +29,5 @@ stdenv.mkDerivation {
maintainers = [ maintainers.samuelrivas ];
license = licenses.mit;
platforms = platforms.all;
-
- # Fails with `solarized-definitions.el:786:1:Warning: the function `rotatef' is not known to`
- broken = true;
};
}
diff --git a/pkgs/applications/editors/emacs-modes/elpa-generated.nix b/pkgs/applications/editors/emacs-modes/elpa-generated.nix
index 7737034973a..a8d9a38729f 100644
--- a/pkgs/applications/editors/emacs-modes/elpa-generated.nix
+++ b/pkgs/applications/editors/emacs-modes/elpa-generated.nix
@@ -636,16 +636,16 @@
license = lib.licenses.free;
};
}) {};
- csv-mode = callPackage ({ elpaBuild, fetchurl, lib }:
+ csv-mode = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "csv-mode";
ename = "csv-mode";
- version = "1.7";
+ version = "1.9";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/csv-mode-1.7.el";
- sha256 = "0r4bip0w3h55i8h6sxh06czf294mrhavybz0zypzrjw91m1bi7z6";
+ url = "https://elpa.gnu.org/packages/csv-mode-1.9.el";
+ sha256 = "0sdnyi9in904k49yy5imapypnmk75lv14k9c1yyjhjpalvvh6br1";
};
- packageRequires = [];
+ packageRequires = [ cl-lib emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/csv-mode.html";
license = lib.licenses.free;
@@ -720,10 +720,10 @@
elpaBuild {
pname = "debbugs";
ename = "debbugs";
- version = "0.19";
+ version = "0.20";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/debbugs-0.19.tar";
- sha256 = "0cpby8f088cqb5mpd756a2mb706x763k15cg2xdmmsxl415k3yw4";
+ url = "https://elpa.gnu.org/packages/debbugs-0.20.tar";
+ sha256 = "03mmb1zvbqlsznl5agq8k3xrlcz310vnsa2zn0y8myanm4ra51zm";
};
packageRequires = [ cl-lib emacs soap-client ];
meta = {
@@ -975,10 +975,10 @@
elpaBuild {
pname = "eev";
ename = "eev";
- version = "20190517";
+ version = "20190902";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/eev-20190517.tar";
- sha256 = "0hgjdax0kg2w7bf3idl6mw6m8j2wkh1253px42v2lbaxp6897m07";
+ url = "https://elpa.gnu.org/packages/eev-20190902.tar";
+ sha256 = "09rk01ykvvmmzadkz8y064iil2sm6ql6qz0rj0jjlnyymi58lj69";
};
packageRequires = [ emacs ];
meta = {
@@ -1132,10 +1132,10 @@
elpaBuild {
pname = "exwm";
ename = "exwm";
- version = "0.22.1";
+ version = "0.23";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/exwm-0.22.1.tar";
- sha256 = "1ggb8vgxxml8c5bvamv9jgz80gs6h9xirjgphq8gwkywwd5xyiq4";
+ url = "https://elpa.gnu.org/packages/exwm-0.23.tar";
+ sha256 = "05w1v3wrp1lzz20zd9lcvr5nhk809kgy6svvkbs15xhnr6x55ad5";
};
packageRequires = [ xelb ];
meta = {
@@ -1282,10 +1282,10 @@
elpaBuild {
pname = "gited";
ename = "gited";
- version = "0.5.4";
+ version = "0.6.0";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/gited-0.5.4.tar";
- sha256 = "07ckknggkqd733bnps21r46bacgyhd0v9wc0spid22hn0dnrfp12";
+ url = "https://elpa.gnu.org/packages/gited-0.6.0.tar";
+ sha256 = "187asqrxfpxv53hhnrcid1sy46vcy07qx5yqgnrczi54jpcc57j5";
};
packageRequires = [ cl-lib emacs ];
meta = {
@@ -1327,10 +1327,10 @@
elpaBuild {
pname = "gnorb";
ename = "gnorb";
- version = "1.6.1";
+ version = "1.6.3";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/gnorb-1.6.1.tar";
- sha256 = "0n4460hsmcc3l0y3nb3fysvh33cjwgv0a3mkc26xcx8v85zl7m63";
+ url = "https://elpa.gnu.org/packages/gnorb-1.6.3.tar";
+ sha256 = "14cdldlvq2fx0j9g1bbzb6dq7yp9rw6bv39sls67i2p35h3gc2gd";
};
packageRequires = [ cl-lib ];
meta = {
@@ -2220,10 +2220,10 @@
elpaBuild {
pname = "org";
ename = "org";
- version = "9.2.5";
+ version = "9.2.6";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/org-9.2.5.tar";
- sha256 = "1pid1sykgz83i4ry5n8f270finag6sm7ckqxn5lkikyya43wlzx1";
+ url = "https://elpa.gnu.org/packages/org-9.2.6.tar";
+ sha256 = "0ikd78k4yw4sm5x7l3dsbvfcmvnv5qna2mxirr560gvcnzhr0zg4";
};
packageRequires = [];
meta = {
@@ -2385,10 +2385,10 @@
elpaBuild {
pname = "phps-mode";
ename = "phps-mode";
- version = "0.2.8";
+ version = "0.3.1";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/phps-mode-0.2.8.tar";
- sha256 = "16sdqh93d2i9dxjibbhx4afakn150qc6xy2ifd83kx85c67y95kl";
+ url = "https://elpa.gnu.org/packages/phps-mode-0.3.1.tar";
+ sha256 = "1h6s5k156mbbkaysb07vcb13k3izs91pwigzcfh6jvv3lak4azg5";
};
packageRequires = [ emacs ];
meta = {
@@ -3001,10 +3001,10 @@
elpaBuild {
pname = "ssh-deploy";
ename = "ssh-deploy";
- version = "3.1";
+ version = "3.1.10";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/ssh-deploy-3.1.tar";
- sha256 = "09m1ljp68rribypls5mzffmdv86jkg9wq4bdb7d1qkdjyr3f2hgn";
+ url = "https://elpa.gnu.org/packages/ssh-deploy-3.1.10.tar";
+ sha256 = "0gckc6yhgi8pn3s8vdyzz8x1s2d4wmsw6yjwsaqcr5nra50glbpg";
};
packageRequires = [ emacs ];
meta = {
@@ -3327,10 +3327,10 @@
elpaBuild {
pname = "verilog-mode";
ename = "verilog-mode";
- version = "2019.6.21.103209889";
+ version = "2019.9.23.4801067";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/verilog-mode-2019.6.21.103209889.el";
- sha256 = "0hlcp2jhm30bzx6iabdb31aqv0dmmim30g9z5kqb0hl1bd1dnm9m";
+ url = "https://elpa.gnu.org/packages/verilog-mode-2019.9.23.4801067.el";
+ sha256 = "0jaba2cqiiknjqc7qz6047hpjd87hznl6b154ai1900i52kjbs21";
};
packageRequires = [];
meta = {
@@ -3590,10 +3590,10 @@
elpaBuild {
pname = "xelb";
ename = "xelb";
- version = "0.17";
+ version = "0.18";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/xelb-0.17.tar";
- sha256 = "0k98580vq253fjdgklgqlwl450saninfw39fbq8lv3xsnp3dcgml";
+ url = "https://elpa.gnu.org/packages/xelb-0.18.tar";
+ sha256 = "1fp5mzl63sh0h3ws4l5p4qgvi7ny8a3fj6k4dhqa98xgw2bx03v7";
};
packageRequires = [ cl-generic emacs ];
meta = {
diff --git a/pkgs/applications/editors/emacs-modes/manual-packages.nix b/pkgs/applications/editors/emacs-modes/manual-packages.nix
index fd62ea18b71..76a1c27502b 100644
--- a/pkgs/applications/editors/emacs-modes/manual-packages.nix
+++ b/pkgs/applications/editors/emacs-modes/manual-packages.nix
@@ -104,21 +104,6 @@
icicles = callPackage ./icicles { };
- rtags = melpaBuild {
- inherit (external.rtags) version src meta;
-
- pname = "rtags";
-
- dontConfigure = true;
-
- propagatedUserEnvPkgs = [ external.rtags ];
- recipe = pkgs.writeText "recipe" ''
- (rtags
- :repo "andersbakken/rtags" :fetcher github
- :files ("src/*.el"))
- '';
- };
-
lib-requires =
callPackage ./lib-requires { };
@@ -143,9 +128,7 @@
# From old emacsPackages (pre emacsPackagesNg)
cedet = callPackage ./cedet { };
cedille = callPackage ./cedille { cedille = pkgs.cedille; };
- colorThemeSolarized = callPackage ./color-theme-solarized {
- colorTheme = self.color-theme;
- };
+ colorThemeSolarized = callPackage ./color-theme-solarized { };
emacsSessionManagement = callPackage ./session-management-for-emacs { };
hsc3-mode = callPackage ./hsc3 { };
hol_light_mode = callPackage ./hol_light { };
diff --git a/pkgs/applications/editors/emacs-modes/melpa-packages.nix b/pkgs/applications/editors/emacs-modes/melpa-packages.nix
index fe440c146ae..e15da80b3b1 100644
--- a/pkgs/applications/editors/emacs-modes/melpa-packages.nix
+++ b/pkgs/applications/editors/emacs-modes/melpa-packages.nix
@@ -16,7 +16,7 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
dontConfigure = pkg: if pkg != null then pkg.override (args: {
melpaBuild = drv: args.melpaBuild (drv // {
- configureScript = "true";
+ dontConfigure = true;
});
}) else null;
@@ -26,6 +26,17 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
});
}) else null;
+ externalSrc = pkg : epkg : if pkg != null then pkg.override (args : {
+ melpaBuild = drv : args.melpaBuild (drv // {
+ inherit (epkg) src version;
+
+ propagatedUserEnvPkgs = [ epkg ];
+ });
+ }) else null;
+
+ fix-rtags = pkg : if pkg != null then dontConfigure (externalSrc pkg external.rtags)
+ else null;
+
generateMelpa = lib.makeOverridable ({
archiveJson ? ./recipes-archive-melpa.json
}: let
@@ -36,7 +47,7 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
overrides = rec {
shared = rec {
# Expects bash to be at /bin/bash
- ac-rtags = markBroken super.ac-rtags;
+ ac-rtags = fix-rtags super.ac-rtags;
airline-themes = super.airline-themes.override {
inherit (self.melpaPackages) powerline;
@@ -52,26 +63,16 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
# part of a larger package
caml = dontConfigure super.caml;
- cmake-mode = super.cmake-mode.overrideAttrs (attrs: {
- buildInputs = (attrs.buildInputs or []) ++ [
- external.openssl
- ];
- nativeBuildInputs = (attrs.nativeBuildInputs or []) ++ [
- external.pkgconfig
- ];
- });
+ # part of a larger package
+ # upstream issue: missing package version
+ cmake-mode = dontConfigure super.cmake-mode;
- # Expects bash to be at /bin/bash
- company-rtags = markBroken super.company-rtags;
+ company-rtags = fix-rtags super.company-rtags;
easy-kill-extras = super.easy-kill-extras.override {
inherit (self.melpaPackages) easy-kill;
};
- elpy = super.elpy.overrideAttrs(old: {
- propagatedUserEnvPkgs = old.propagatedUserEnvPkgs ++ [ external.elpy ];
- });
-
emacsql-sqlite = super.emacsql-sqlite.overrideAttrs(old: {
buildInputs = old.buildInputs ++ [ pkgs.sqlite ];
@@ -89,6 +90,15 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
stripDebugList = [ "share" ];
});
+ # https://github.com/syl20bnr/evil-escape/pull/86
+ evil-escape = super.evil-escape.overrideAttrs (attrs: {
+ postPatch = ''
+ substituteInPlace evil-escape.el \
+ --replace ' ;;; evil' ';;; evil'
+ '';
+ packageRequires = with self; [ evil ];
+ });
+
evil-magit = super.evil-magit.overrideAttrs (attrs: {
# searches for Git at build time
nativeBuildInputs =
@@ -99,8 +109,7 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
inherit (self.melpaPackages) ess ctable popup;
};
- # Expects bash to be at /bin/bash
- flycheck-rtags = markBroken super.flycheck-rtags;
+ flycheck-rtags = fix-rtags super.flycheck-rtags;
pdf-tools = super.pdf-tools.overrideAttrs(old: {
nativeBuildInputs = [ external.pkgconfig ];
@@ -114,11 +123,8 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
});
# Build same version as Haskell package
- hindent = super.hindent.overrideAttrs (attrs: {
- version = external.hindent.version;
- src = external.hindent.src;
+ hindent = (externalSrc super.hindent external.hindent).overrideAttrs (attrs: {
packageRequires = [ self.haskell-mode ];
- propagatedUserEnvPkgs = [ external.hindent ];
});
irony = super.irony.overrideAttrs (old: {
@@ -151,8 +157,7 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
HOME = "/tmp";
});
- # Expects bash to be at /bin/bash
- ivy-rtags = markBroken super.ivy-rtags;
+ ivy-rtags = fix-rtags super.ivy-rtags;
magit = super.magit.overrideAttrs (attrs: {
# searches for Git at build time
@@ -213,6 +218,8 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
# part of a larger package
notmuch = dontConfigure super.notmuch;
+ rtags = dontConfigure (externalSrc super.rtags external.rtags);
+
shm = super.shm.overrideAttrs (attrs: {
propagatedUserEnvPkgs = [ external.structured-haskell-mode ];
});
@@ -281,10 +288,6 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
# upstream issue: missing file header
bufshow = markBroken super.bufshow;
- # part of a larger package
- # upstream issue: missing package version
- cmake-mode = dontConfigure super.cmake-mode;
-
# upstream issue: missing file header
connection = markBroken super.connection;
@@ -312,8 +315,7 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
# upstream issue: doesn't build
eterm-256color = markBroken super.eterm-256color;
- # Expects bash to be at /bin/bash
- helm-rtags = markBroken super.helm-rtags;
+ helm-rtags = fix-rtags super.helm-rtags;
# upstream issue: missing file header
qiita = markBroken super.qiita;
@@ -357,8 +359,7 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
(attrs.nativeBuildInputs or []) ++ [ external.git ];
});
- # Expects bash to be at /bin/bash
- helm-rtags = markBroken super.helm-rtags;
+ helm-rtags = fix-rtags super.helm-rtags;
orgit =
(super.orgit.overrideAttrs (attrs: {
@@ -389,52 +390,22 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
(attrs.nativeBuildInputs or []) ++ [ external.git ];
});
- vterm = let
- emacsSources = pkgs.stdenv.mkDerivation {
- name = self.emacs.name + "-sources";
- src = self.emacs.src;
-
- dontConfigure = true;
- dontBuild = true;
- doCheck = false;
- fixupPhase = ":";
-
- installPhase = ''
- mkdir -p $out
- cp -a * $out
- '';
-
- };
-
- libvterm = pkgs.libvterm-neovim.overrideAttrs(old: rec {
- pname = "libvterm-neovim";
- version = "2019-04-27";
- name = pname + "-" + version;
- src = pkgs.fetchFromGitHub {
- owner = "neovim";
- repo = "libvterm";
- rev = "89675ffdda615ffc3f29d1c47a933f4f44183364";
- sha256 = "0l9ixbj516vl41v78fi302ws655xawl7s94gmx1kb3fmfgamqisy";
- };
- });
-
- in pkgs.stdenv.mkDerivation {
- inherit (super.vterm) name version src;
-
- nativeBuildInputs = [ pkgs.cmake ];
- buildInputs = [ self.emacs libvterm ];
-
+ vterm = super.vterm.overrideAttrs(old: {
+ buildInputs = old.buildInputs ++ [ self.emacs pkgs.cmake pkgs.libvterm-neovim ];
cmakeFlags = [
- "-DEMACS_SOURCE=${emacsSources}"
- "-DUSE_SYSTEM_LIBVTERM=True"
+ "-DEMACS_SOURCE=${self.emacs.src}"
+ "-DUSE_SYSTEM_LIBVTERM=ON"
];
-
- installPhase = ''
- install -d $out/share/emacs/site-lisp
- install ../*.el $out/share/emacs/site-lisp
- install ../*.so $out/share/emacs/site-lisp
+ # we need the proper out directory to exist, so we do this in the
+ # postInstall instead of postBuild
+ postInstall = ''
+ pushd source/build >/dev/null
+ make
+ install -m444 -t $out/share/emacs/site-lisp/elpa/vterm-** ../*.so
+ popd > /dev/null
+ rm -rf $out/share/emacs/site-lisp/elpa/vterm-**/{CMake*,build,*.c,*.h}
'';
- };
+ });
# Legacy alias
emacs-libvterm = unstable.vterm;
diff --git a/pkgs/applications/editors/emacs-modes/org-generated.nix b/pkgs/applications/editors/emacs-modes/org-generated.nix
index c1fad2dc865..f1833225013 100644
--- a/pkgs/applications/editors/emacs-modes/org-generated.nix
+++ b/pkgs/applications/editors/emacs-modes/org-generated.nix
@@ -4,10 +4,10 @@
elpaBuild {
pname = "org";
ename = "org";
- version = "20190527";
+ version = "20190904";
src = fetchurl {
- url = "http://orgmode.org/elpa/org-20190527.tar";
- sha256 = "1fc2nyylzpikjikyb24xq2mcilridcahmjwmg0s426dqrgqpm9ij";
+ url = "http://orgmode.org/elpa/org-20190904.tar";
+ sha256 = "0ah5zgbxp4j3mfgriw9liamy73npp9zbkq0zrg6cfhf8l3xwbnxn";
};
packageRequires = [];
meta = {
@@ -19,10 +19,10 @@
elpaBuild {
pname = "org-plus-contrib";
ename = "org-plus-contrib";
- version = "20190527";
+ version = "20190904";
src = fetchurl {
- url = "http://orgmode.org/elpa/org-plus-contrib-20190527.tar";
- sha256 = "16kf47ij25fijf6pbfxzq9xzildj1asdzhnkf5zv5pn4312pvgnq";
+ url = "http://orgmode.org/elpa/org-plus-contrib-20190904.tar";
+ sha256 = "08s3fk3jim0y2v00l6ah8y08ba8wbcf29z6fxqzyaxj58a5sq81a";
};
packageRequires = [];
meta = {
diff --git a/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json b/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json
index def54a99e68..7a29ea7cd1d 100644
--- a/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json
+++ b/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json
@@ -31,11 +31,11 @@
"url": "https://git.sr.ht/~zge/nullpointer-emacs",
"unstable": {
"version": [
- 20190819,
- 1232
+ 20190902,
+ 929
],
- "commit": "9d195764bfd1f2da7dc50ed73e70f3e5ac8610f5",
- "sha256": "1x99ifgsxb3xn18hihral1qc6c30w824blqjhr9kpx4shh42g9f5"
+ "commit": "87efcc058f40e8a38a613cb479a2affba9f0ebe5",
+ "sha256": "0cdh64z1mass9fl05n9xn1q82ka38iar27g5dsidkfhlg6wqxmlk"
},
"stable": {
"version": [
@@ -234,16 +234,16 @@
"repo": "abstools/abs-mode",
"unstable": {
"version": [
- 20190404,
- 2304
+ 20191013,
+ 926
],
"deps": [
"erlang",
"flymake",
"maude-mode"
],
- "commit": "31fb36f9206203062b8c618fef6ad484e44af226",
- "sha256": "0h0zsjqhjm18ppmaqv2kn4q1mchc1igcz80zwz8523n2w2gk9bri"
+ "commit": "5332dc875e0a285f64dd075b204fb6de5ba719ad",
+ "sha256": "1p2nsc4in8w407irsfihm8q0fh5am8vrd53gg5q78hhybazr53cf"
},
"stable": {
"version": [
@@ -442,27 +442,27 @@
"repo": "atilaneves/ac-dcd",
"unstable": {
"version": [
- 20190425,
- 907
+ 20190902,
+ 1124
],
"deps": [
"auto-complete",
"flycheck-dmd-dub"
],
- "commit": "9d444523ffa92a763ea8f532b8001829a51a2557",
- "sha256": "1fkpvr7mix9wvhd6pgbcj6mrmhrffvlh5sp8wp5m48j0qc3wx7mi"
+ "commit": "d378d33c7bedc6c108eda7f674bd0aa1d8664857",
+ "sha256": "1gpqxfc83p7gzjrhs95gimwg46v9pq58m81m0fhz6slk7i005mdl"
},
"stable": {
"version": [
0,
- 4
+ 6
],
"deps": [
"auto-complete",
"flycheck-dmd-dub"
],
- "commit": "4cb14b1e9fcfc4bf4a084765bc1eb10abfbbbd49",
- "sha256": "0a3s880nswc2s6yh2v5zsmws550q917i7av8nrxc5sp1d03xqwmn"
+ "commit": "d378d33c7bedc6c108eda7f674bd0aa1d8664857",
+ "sha256": "1gpqxfc83p7gzjrhs95gimwg46v9pq58m81m0fhz6slk7i005mdl"
}
},
{
@@ -961,8 +961,8 @@
"auto-complete",
"yasnippet"
],
- "commit": "4490d168778a61a4ee8623defe760164cd9745b8",
- "sha256": "1mkxayqrvz246gxr9wjabsn015hnjq96ys71syb6r4ykjn892a6m"
+ "commit": "84aa4f0c4ffafa2c2fdfbcb16662abac0a571013",
+ "sha256": "1miz6nwsdbc9n3jc7qcb0mvf2yp0k9a7pyl0ifbdjjr2160m2lql"
},
"stable": {
"version": [
@@ -987,8 +987,8 @@
"repo": "xcwen/ac-php",
"unstable": {
"version": [
- 20190816,
- 548
+ 20191023,
+ 1045
],
"deps": [
"dash",
@@ -998,8 +998,8 @@
"s",
"xcscope"
],
- "commit": "4490d168778a61a4ee8623defe760164cd9745b8",
- "sha256": "1mkxayqrvz246gxr9wjabsn015hnjq96ys71syb6r4ykjn892a6m"
+ "commit": "84aa4f0c4ffafa2c2fdfbcb16662abac0a571013",
+ "sha256": "1miz6nwsdbc9n3jc7qcb0mvf2yp0k9a7pyl0ifbdjjr2160m2lql"
},
"stable": {
"version": [
@@ -1065,8 +1065,8 @@
"auto-complete",
"rtags"
],
- "commit": "6289e66a69d0d5ff20b12da91e735d3984ad6f88",
- "sha256": "1ggdi4mgqw1cc0w6cijds7s4vb575v27g72h6md8h1jdsfv6pvrm"
+ "commit": "f2633f565fc5e7e6958993ef105225f4e68e43ba",
+ "sha256": "1bjgr7wa82ccrc25r7agfaq3iz7xlp1qchvkmkx3xy59jv4yafjz"
},
"stable": {
"version": [
@@ -1361,14 +1361,14 @@
"repo": "abo-abo/ace-link",
"unstable": {
"version": [
- 20190716,
- 920
+ 20191017,
+ 941
],
"deps": [
"avy"
],
- "commit": "9b6d02564650e963ce05d124f83ced17e0027d7f",
- "sha256": "06jac3nlmnsbw9hiyqjxmf7igjs8xxcvdih6nf63lbnvm0qnazyn"
+ "commit": "483d0ea9d1e13884f13e54093b41082884325878",
+ "sha256": "1m4zcw27m99jlbjy5dyxxp4069pgwswqhyrps3c3zsnzs8hf1j0z"
},
"stable": {
"version": [
@@ -1411,15 +1411,15 @@
"repo": "cute-jumper/ace-pinyin",
"unstable": {
"version": [
- 20190123,
- 402
+ 20190917,
+ 318
],
"deps": [
"avy",
"pinyinlib"
],
- "commit": "4915b2413359d85002918e322dbc90c4984b4277",
- "sha256": "1yv3445p6w10wj310ffla2ghh81fynwgmxpsfkwgbcsbcjx9hmsl"
+ "commit": "8b2e9335b02486730ea4ceee790130cc5328f9ea",
+ "sha256": "1p2h4bva0v8yad075is1zkhn69x78ddwa8ncdfm0zzysddw5w8bq"
},
"stable": {
"version": [
@@ -1474,14 +1474,14 @@
"repo": "abo-abo/ace-window",
"unstable": {
"version": [
- 20190708,
- 933
+ 20191022,
+ 1203
],
"deps": [
"avy"
],
- "commit": "a5344925e399e1f015721cda6cf5db03c90ab87a",
- "sha256": "18jm8gfgnf6ja9aarws5650lw2zfi3wdwc5j8r5ijn5fcqhfy7rc"
+ "commit": "edbbb1b77c3fb939e4d9057443bc1897321d0095",
+ "sha256": "1n8w6svks0pmslzg5zz1sny4hfnvych06cwzs3bvbmnfm4x6maqh"
},
"stable": {
"version": [
@@ -1564,30 +1564,32 @@
"repo": "pauldub/activity-watch-mode",
"unstable": {
"version": [
- 20190423,
- 1529
+ 20190916,
+ 1212
],
"deps": [
- "cl",
+ "cl-lib",
"json",
"projectile",
"request"
],
- "commit": "c2ad321952524d88dd34842a6989b6e2d8acb646",
- "sha256": "1fan25w5zb33i8mbd06iwz8vjac0alcv1r73h9hyzdkn8ivl6k3s"
+ "commit": "fb7e415484fa65f03660f59e2799bc2bcb9441ff",
+ "sha256": "1dzla3j6s3s5fnh8y9xq0k869fbdmzvqgbbvk6dphhzwi1wwhlzm"
},
"stable": {
"version": [
1,
- 0,
- 2
+ 1,
+ 0
],
"deps": [
+ "cl-lib",
+ "json",
"projectile",
"request"
],
- "commit": "27a0841b32dfd2b691a1dcf3a4a50d74660676b1",
- "sha256": "1hfmll3g33529pshzvh2gxqr0h53p1v68wq0zlq2h2wfml89bzr9"
+ "commit": "fb7e415484fa65f03660f59e2799bc2bcb9441ff",
+ "sha256": "1dzla3j6s3s5fnh8y9xq0k869fbdmzvqgbbvk6dphhzwi1wwhlzm"
}
},
{
@@ -1775,15 +1777,15 @@
"stable": {
"version": [
0,
- 47
+ 48
],
"deps": [
"cl-lib",
"dash",
"s"
],
- "commit": "f2cfea210b165564e8d44f4c980b2fedac2462c1",
- "sha256": "15kp99vwyi7hb1jkq3lwvqzw3v62ycixsq6y4pd1x0nn2v5p5m5r"
+ "commit": "bd81d68466e44301505629454dfc689b6c17d94b",
+ "sha256": "1p918y24vcn2pdliaymd210xp9fvhd4a1srqbv2lfiqrh59yjidx"
}
},
{
@@ -1849,6 +1851,21 @@
"sha256": "0481zjrmg834d2ik0vpdan9l083q17ln13rcg4hnbhl1dmzz960p"
}
},
+ {
+ "ename": "ah",
+ "commit": "029c328e87ceb346e162c47162af727af22b65ac",
+ "sha256": "0h5kjf3sa17n8swkynb0fqk2jiwwgib3lzmrhwlk6k8pvzsgvlhj",
+ "fetcher": "github",
+ "repo": "takaxp/ah",
+ "unstable": {
+ "version": [
+ 20191004,
+ 250
+ ],
+ "commit": "218b9ffacb615e7a307ee30c18d072ce3e33aad6",
+ "sha256": "16ak8bbha079lkg7gxxngysry6bgilqi3dz4aa2yd5w9y25rv6va"
+ }
+ },
{
"ename": "ahg",
"commit": "5b7972602399f9df9139cff177e38653bb0f43ed",
@@ -1857,11 +1874,11 @@
"repo": "agriggio/ahg",
"unstable": {
"version": [
- 20190708,
- 1358
+ 20190903,
+ 1349
],
- "commit": "f5ffd8f592ce9038f1dd30594124ad83e2976fdf",
- "sha256": "06k7hyvizhg8xrlckxcgsd5lmlqk2skhah4z914n21759yhzvf61"
+ "commit": "c85d951d7376425156911e5f3cd7535b4ecfbfc3",
+ "sha256": "0j5h1yjhg7lj3zxznfzy7mqj2c2r4cwdg8xik3wlk2cnm27fhgz6"
}
},
{
@@ -2144,8 +2161,8 @@
"gntp",
"log4e"
],
- "commit": "95a735e6947b0d09dbf9b9a944a21e5f5c1e6ee1",
- "sha256": "0dqk6jnmfqhxcy4hd9a09632c9gfl7hg4vksp6p0k6wrz9yx6qsf"
+ "commit": "b5ef49bbb871867ac03d2943a720576336cd7025",
+ "sha256": "00lhx0gd1myzjfp59hjk0z44xf0cr4njvzwjdacahim7gz3hhicd"
},
"stable": {
"version": [
@@ -2220,14 +2237,14 @@
"repo": "domtronn/all-the-icons.el",
"unstable": {
"version": [
- 20190320,
- 1809
+ 20191025,
+ 43
],
"deps": [
"memoize"
],
- "commit": "f996fafa5b2ea072d0ad1df9cd98acc75820f530",
- "sha256": "0yc07xppgv78l56v7qwqp4sf3p44znkv5l0vlvwg8x1dciksxgqw"
+ "commit": "605deef5560429ccf66063ee9337b24c68820397",
+ "sha256": "15ibvcqn678visphmaffy5yh6jaczzzhhlxj4vnsywg5bdzxch3m"
},
"stable": {
"version": [
@@ -2327,11 +2344,35 @@
}
},
{
- "ename": "alt-codes",
- "commit": "693e11e8a99697ff8da1fe7cd9209af4e415fecb",
- "sha256": "0kh6fz38bzvqh78b17qa6riwnz6xvkw5w8rrlj413j4ypm464zxq",
+ "ename": "alsamixer",
+ "commit": "61a07f01ee94173fa59716d30b14a34ec967578e",
+ "sha256": "1kil28lpxaqnwgyw2h69dmx78q5lpn5k0l6y0fwyz2n6vayxw4yj",
"fetcher": "github",
- "repo": "elpa-host/alt-codes",
+ "repo": "remvee/alsamixer-el",
+ "unstable": {
+ "version": [
+ 20191002,
+ 1133
+ ],
+ "commit": "1bdb99e433acd38685f05408562746cfbf2bc820",
+ "sha256": "0c40vycphv5nf374rp8pnzvi50vlmgab3wrdq92hyprjw76gwxhk"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 1
+ ],
+ "commit": "1bdb99e433acd38685f05408562746cfbf2bc820",
+ "sha256": "0c40vycphv5nf374rp8pnzvi50vlmgab3wrdq92hyprjw76gwxhk"
+ }
+ },
+ {
+ "ename": "alt-codes",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "1h1hs0vxzmmrkf7mkm44lqb9d41jg02sk7iwb54s9g92rc7c10rg",
+ "fetcher": "github",
+ "repo": "jcs-elpa/alt-codes",
"unstable": {
"version": [
20190701,
@@ -2501,14 +2542,14 @@
},
{
"ename": "anaconda-mode",
- "commit": "e03b698fd3fe5b80bdd24ce01f7fba28e9da0da8",
- "sha256": "0gz16aam4zrm3s9ms13h4qcdflf55506kgkpyncq3bi54cvv8n1r",
+ "commit": "c756ccbae044bc23131060355532261aa9a12409",
+ "sha256": "1cr4qyk2brm1kvm7i9cmvihid8799df7yhmmdizv3sj5l6qnsyfr",
"fetcher": "github",
- "repo": "proofit404/anaconda-mode",
+ "repo": "pythonic-emacs/anaconda-mode",
"unstable": {
"version": [
- 20190616,
- 1019
+ 20191001,
+ 2056
],
"deps": [
"dash",
@@ -2516,8 +2557,8 @@
"pythonic",
"s"
],
- "commit": "24aa81ba62f13d7bb505a03fe244181c461fec68",
- "sha256": "166szgnm8mkw4gqcn87b6k4f2s1fv2k20zc9fkwif2mr2bk88c1v"
+ "commit": "1b31c03756b989b674969bb1eb45ac809e59313b",
+ "sha256": "0h6afysc7c5a379bd9scdb27g0r1ncqinz7gnspqlqri205dmj33"
},
"stable": {
"version": [
@@ -2582,20 +2623,20 @@
"repo": "remvee/android-mode",
"unstable": {
"version": [
- 20190109,
- 1014
+ 20190903,
+ 811
],
- "commit": "d60c88bfbd2dc5122bd2fde7dc11ec1e6848a5db",
- "sha256": "1hd7wxp8f67cnbyjs4bv9x18nvzn16qjy4pi7bkbcymfpwj33r38"
+ "commit": "d5332e339a1f5e30559a53feffb8442ca79265d6",
+ "sha256": "10jhnxmxcjv9jpnsz2hrfb3rdl8306m8j30aclhvrvh4gcy1vwck"
},
"stable": {
"version": [
0,
5,
- 1
+ 2
],
- "commit": "f8cabafaa266b56fcf4b3c6942b3ae062735251a",
- "sha256": "0npx54w565mkxkgkpv02dgmfc44i1256p0w331pf3nfxq145xh27"
+ "commit": "d5332e339a1f5e30559a53feffb8442ca79265d6",
+ "sha256": "10jhnxmxcjv9jpnsz2hrfb3rdl8306m8j30aclhvrvh4gcy1vwck"
}
},
{
@@ -2676,15 +2717,15 @@
"repo": "louietan/anki-editor",
"unstable": {
"version": [
- 20190608,
- 1621
+ 20190922,
+ 1223
],
"deps": [
"dash",
"request"
],
- "commit": "3e9f957ac59c19f1ca8c06d16c98a280a0c0474a",
- "sha256": "1gkxpl4r4j547rwifp5597424arlya0k676sdkcz625b9jk65ypn"
+ "commit": "084ffad14fa700ad1ba95d8cbfe4a8f6052e2408",
+ "sha256": "0zjd5yid333shvjm4zy3p7zdpa09xcl96gc4wvi2paxjad6iqhwz"
}
},
{
@@ -2695,8 +2736,8 @@
"repo": "davidshepherd7/anki-mode",
"unstable": {
"version": [
- 20181106,
- 1837
+ 20191020,
+ 1441
],
"deps": [
"dash",
@@ -2704,8 +2745,8 @@
"request",
"s"
],
- "commit": "365fcfff45ed543f3df0d4110415f6f818ec2727",
- "sha256": "021wvz0vxbpiigrdhgilbpkbxmwwjy127g1lrp0wmnqg5m3rl5rg"
+ "commit": "8022fbab57c47581102af831b4405fc27f71db92",
+ "sha256": "1nyiqd3093dbcimljj09vidanki6nbrzknzdxw4rkbl2kd1wfvlf"
},
"stable": {
"version": [
@@ -2722,6 +2763,36 @@
"sha256": "0ryyyihvvrcipj2bkx24cx1ibgcymnsbn79ibvmhb3wbad3hr072"
}
},
+ {
+ "ename": "annalist",
+ "commit": "2298cf2894029267c77a8aa06f4fa8d9d7c3e4f0",
+ "sha256": "1102yd0vas3kyml8flf3mdswnc2kizbdq996740plzwnnnbw34vj",
+ "fetcher": "github",
+ "repo": "noctuid/annalist.el",
+ "unstable": {
+ "version": [
+ 20190929,
+ 207
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "134fa3f0fb91a636a1c005c483516d4b64905a6d",
+ "sha256": "06dvk7hd3bqjng87apf5dsbdn0rv0gcrj66m7dz26c8bg19mddcc"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "08df07e4530953a2c0b1aa553adcab37b7b614b0",
+ "sha256": "1jlb5w4972l8m2aa18q2l6arfpm65g4nk21dn1yi8c9dbpk2g67c"
+ }
+ },
{
"ename": "annotate",
"commit": "3aae88b8e3b080501195d291012deab31aaf35f7",
@@ -2730,11 +2801,11 @@
"repo": "bastibe/annotate.el",
"unstable": {
"version": [
- 20190519,
- 706
+ 20191022,
+ 633
],
- "commit": "09d0cd89e458779ca375ac28bc664ee2e20db530",
- "sha256": "141pqfrrzbqaxxcr6m6ri9r6k1mg5i3cv8v2kili365cypnjdg1y"
+ "commit": "54aefdec8d7d366d0987aec9242f035a52c54aa2",
+ "sha256": "11iqz6kncnzcnmxk2m037pmyflv6svq32r52cjw254fc3dvm39i0"
},
"stable": {
"version": [
@@ -2828,28 +2899,28 @@
"repo": "k1LoW/emacs-ansible",
"unstable": {
"version": [
- 20190619,
- 1255
+ 20191003,
+ 1430
],
"deps": [
"f",
"s"
],
- "commit": "2d35aa1280ace3cae404ea9e1231a8b26c7b9eb4",
- "sha256": "1yv33bw2q87am4bi2dasrbya28l6p3y4nr8rs0yl5nsvdbk4vbpg"
+ "commit": "c6532e52161a381ed3dddfeaa7c92ae636d3f052",
+ "sha256": "16i0r019lj9fdkxcga2jb8ha0r2lf1mz7jywg44hnj7r3lzdcmwp"
},
"stable": {
"version": [
0,
- 2,
+ 3,
0
],
"deps": [
"f",
"s"
],
- "commit": "8a097176d6772b6667254dbbe19c5fb64527bf5d",
- "sha256": "1m2cb88jb1wxa9rydkbn5llx2gql453l87b4cgzsjllha6j1488k"
+ "commit": "c6532e52161a381ed3dddfeaa7c92ae636d3f052",
+ "sha256": "16i0r019lj9fdkxcga2jb8ha0r2lf1mz7jywg44hnj7r3lzdcmwp"
}
},
{
@@ -3328,8 +3399,8 @@
20190816,
25
],
- "commit": "90aeb73bedba63ac9efb9cad8e7444feb8b40261",
- "sha256": "0hsmjmgbsvdim1vxzh0qh41f9vmpsh8rlsy2h508ydw82rpc2q6f"
+ "commit": "32e08d5a8ad2f305578e0f783e087c1d312238c7",
+ "sha256": "00135gq4xfblv50dwxq02dd1y18xv29lrl7iir3caq4pr3nhrshg"
}
},
{
@@ -3489,6 +3560,21 @@
"sha256": "15ismdk8fl6xjgkjh9nkn8kgg7rpy2ra7924r1iddlfs2q8l8p4w"
}
},
+ {
+ "ename": "asx",
+ "commit": "2eda72c3574c41184104532bb129cbe0efc8afd4",
+ "sha256": "0kijqfwkwm5kd1h3v0rab9fm8ivmqnmijy065iz5xhmi3yicx4aq",
+ "fetcher": "github",
+ "repo": "ragone/asx",
+ "unstable": {
+ "version": [
+ 20191024,
+ 1100
+ ],
+ "commit": "5ca12cc51bb02b5926adf9a7976ba9ca08a1ea21",
+ "sha256": "16cwpzbi8xpmw25xnn9535djpgwwdjv4q4yh47mqfav3x5nqwgpk"
+ }
+ },
{
"ename": "async",
"commit": "855ea20024b606314f8590129259747cac0bcc97",
@@ -3497,11 +3583,11 @@
"repo": "jwiegley/emacs-async",
"unstable": {
"version": [
- 20190503,
- 656
+ 20191009,
+ 1018
],
- "commit": "bd68cc1ab1ac6af890e250bdaa12ffb1cb9649be",
- "sha256": "02n46dqbpdjlj65s1aka6ky49rgv2rpn06lzpfxwxl7kkzclc5f8"
+ "commit": "67c369555de998eaabd60056dead038c6c50b8fd",
+ "sha256": "0hhpyxb3d531jb2f3wvzx25183f0anm8nxv6mh0p825q2gkm6ly7"
},
"stable": {
"version": [
@@ -3521,14 +3607,14 @@
"repo": "chuntaro/emacs-async-await",
"unstable": {
"version": [
- 20170208,
- 1150
+ 20191006,
+ 422
],
"deps": [
"promise"
],
- "commit": "56ab90e4019ed1f81fd4ad9e8701b5cec7ffa795",
- "sha256": "1k6wisls6dqn63r4f4brnhrjbvzqpigw2zxdl9v8g1qcw49spk5s"
+ "commit": "c1348cc02ed54ccf49b7f39f1ebbf7df17e63c74",
+ "sha256": "18li54j0rnx64nnaw2wp2nl92msdryb7sjxmaip6b88q9qiwkdi5"
}
},
{
@@ -3610,8 +3696,8 @@
"repo": "jyp/attrap",
"unstable": {
"version": [
- 20190805,
- 1829
+ 20190927,
+ 940
],
"deps": [
"dash",
@@ -3619,8 +3705,8 @@
"flycheck",
"s"
],
- "commit": "25d34a6c5f13ee6de5da60f3dae25d7e4961d991",
- "sha256": "0bvymi8cfalv64a5zh1ln641qfgrdmqvsfd0d9c82xjrz19ffnpm"
+ "commit": "0e4a2848d0a0cb509a54dbee6dd7b04f96c17737",
+ "sha256": "0ds3ca3pw1aab4y0fzlv76imbnlccky5mphd10zdikmrnwdhsm2w"
},
"stable": {
"version": [
@@ -3822,14 +3908,14 @@
"repo": "emacscollective/auto-compile",
"unstable": {
"version": [
- 20181230,
- 2216
+ 20191020,
+ 1040
],
"deps": [
"packed"
],
- "commit": "f043133f37fe6d707fa03a1ec4ba619da24c2f35",
- "sha256": "0h41vykrdn1jrwzn5db9idw5j3d77xhn616kwfv1syka7hvmyaq4"
+ "commit": "c46fb16c919d1f821cd69a43cc6e396757c51b2f",
+ "sha256": "06xfvn9s7kh3c0md431css5hz5yd3b2x6x788hx75hy3r7azi73s"
},
"stable": {
"version": [
@@ -4196,11 +4282,11 @@
"repo": "mattfidler/auto-indent-mode.el",
"unstable": {
"version": [
- 20171222,
- 506
+ 20190925,
+ 231
],
- "commit": "28069360a7f89ad0286fd6a53db550752ec58488",
- "sha256": "14sqmv320ryfljpxbjw9xphj6bz1ccjk3ih4cm1r8aryyhxiacii"
+ "commit": "8dffa08ab631bf9c388d076958f4da735eaa3e3a",
+ "sha256": "0y8k1mc7fk59j36khrrp9g65yaklp39s93gk9l1vmp33rclshqg8"
},
"stable": {
"version": [
@@ -4222,8 +4308,8 @@
20180527,
1123
],
- "commit": "e0e2ceb471a14a3e1763b47619fa4b8faef0be07",
- "sha256": "1m96gs55jsjxj4mbx1wv080b809fjw53by67jv3ny70i4xjk36kp"
+ "commit": "17cfa1b54800fdef2975c0c0531dad34846a5065",
+ "sha256": "1jgq9b262pjr6npza3k0p2glb6mpp0dfpslgx3i2p8a5ipwhwaqa"
},
"stable": {
"version": [
@@ -4440,14 +4526,14 @@
"repo": "abo-abo/auto-yasnippet",
"unstable": {
"version": [
- 20190326,
- 958
+ 20191015,
+ 942
],
"deps": [
"yasnippet"
],
- "commit": "624b0d9711222073a2a3f2186e2605eb99fc83c9",
- "sha256": "15g8wi067f345xhpi0c12w0h04p4f4lpccwmdjdfj8hzfl4gyxy9"
+ "commit": "db9e0dd4335b2202cd5dac95bbbc87a1032d9bbe",
+ "sha256": "0az8pip0gsq5xqpfizcz4rmj5hmkvz1fdkg996k9qqacp17p2caj"
},
"stable": {
"version": [
@@ -4470,15 +4556,15 @@
"repo": "Fuco1/autobookmarks",
"unstable": {
"version": [
- 20180531,
- 1906
+ 20190919,
+ 841
],
"deps": [
"cl-lib",
"dash"
],
- "commit": "e971aa49d97da9f7ed760b37e0b674e45f1c5673",
- "sha256": "04453h3s9g7ka028s4f97z606czq3vsvphrmba533jkl8lk3hpi8"
+ "commit": "224b24950d3ae57cd16d7417c07fda337fe0ea09",
+ "sha256": "0cfx447185shbiadhbar72bgqwzmbia82f8a2py215hgw9wrgqr9"
}
},
{
@@ -4583,8 +4669,8 @@
20190331,
2230
],
- "commit": "b959376241704cabdcf10a8d0d85e8061b5c6949",
- "sha256": "0ryh0b6fg9s954dr0gmzfbrykhj8p4m1cjmcli85nympq4xymfbq"
+ "commit": "e9dc7907eb8e9cf9a016bd73e6a96421534a70ae",
+ "sha256": "0ga1vbkaxjybxr3l5laakxvy9cbf82lrrsjqi67krh7s303az0bl"
}
},
{
@@ -4690,14 +4776,14 @@
"repo": "abo-abo/avy",
"unstable": {
"version": [
- 20190828,
- 951
+ 20190925,
+ 1054
],
"deps": [
"cl-lib"
],
- "commit": "034de4c0e900717ebcb6e19a973cf66beea54420",
- "sha256": "0ssvnbvmdvjqpdswn68lwv2xi8mdfx8iyvs38mqc45f4502ahbjx"
+ "commit": "87394c9a880104a08d0f0e2d4149ac2d70cc192f",
+ "sha256": "1n1ngl9w8h889apkgvnz4z9lwks66qkwfb20jw5jh8p8kxyz7m16"
},
"stable": {
"version": [
@@ -4861,6 +4947,21 @@
"sha256": "1rzfzb19h5d0ikysxi0xcbyvv733kdmcmydpc7wwq9qkb31wck56"
}
},
+ {
+ "ename": "awscli-capf",
+ "commit": "286c5963541f099032890c6df3bbe39648fb8684",
+ "sha256": "1mggykjjdl74rbgnw4k0q01iqdhl09q9zgp51xakgy07vpjs49w0",
+ "fetcher": "github",
+ "repo": "sebasmonia/awscli-capf",
+ "unstable": {
+ "version": [
+ 20190930,
+ 1517
+ ],
+ "commit": "1a75f88f53a2969fe821c31e6857861d0a0c0a5e",
+ "sha256": "13ry0lhh8ss93h9c60gc02i28bwc70jb4fzqmvw778fk0shj8jxn"
+ }
+ },
{
"ename": "axiom-environment",
"commit": "8b4c6b03c5ff78ce327dcf66b175e266bbc53dbf",
@@ -4961,11 +5062,11 @@
"repo": "mschuldt/backlight.el",
"unstable": {
"version": [
- 20190821,
- 1808
+ 20190905,
+ 519
],
- "commit": "5a7a9b70f368fc77bac2c9c2d10dee4ad9f03987",
- "sha256": "0sbmvyf6y73c0rw5yi6rgri29qidr1hpwqlgdass9rrzdnq5i3zg"
+ "commit": "3e5b971b4ee89299240a89614db92d2c4034e954",
+ "sha256": "0hsb1vd1mk4mcgr4l93b81hz2bq7cpd7b3kdhabv9z489mxiy3fa"
}
},
{
@@ -5096,6 +5197,21 @@
"sha256": "0qja8xw2sk2wn7w6qa5zj2i0j5c8a7cnldrag99ip2b5m02f1z4l"
}
},
+ {
+ "ename": "balanced-windows",
+ "commit": "2dc9c15d14d4417df74b73cde983ef4f25eda363",
+ "sha256": "0y53als0cmd4h0z1w55f4z5w6zkk7ig0ygjrzjv2khwig8hl2b8h",
+ "fetcher": "github",
+ "repo": "wbolster/emacs-balanced-windows",
+ "unstable": {
+ "version": [
+ 20190903,
+ 1120
+ ],
+ "commit": "1da5354ad8a9235d13928e2ee0863f3642ccdd13",
+ "sha256": "1hsjg48jlfi6lc6izp9xcfqvxj7c0ivjrfsr2q3yv3s1iy2fz37l"
+ }
+ },
{
"ename": "bang",
"commit": "d9830cce42339243091f4463490954a8a955c65f",
@@ -5196,11 +5312,11 @@
"repo": "belak/base16-emacs",
"unstable": {
"version": [
- 20190722,
- 1950
+ 20190924,
+ 1827
],
- "commit": "6e7d80859c364c74b6848c3f7679de53620daf43",
- "sha256": "1dr1f9w1ysz40m0vra2ig6sr0wh6jbpcwwgnwf5rf5qi3d8g5nxi"
+ "commit": "4cee70262967efce31997443645f83b08aa33df1",
+ "sha256": "0q56qp1wrgcsabqi25npz0y3f7hw7w9zq8nkpvxhzgg105szgy17"
},
"stable": {
"version": [
@@ -5335,11 +5451,11 @@
"repo": "codesuki/bazel-mode",
"unstable": {
"version": [
- 20190606,
- 800
+ 20191002,
+ 333
],
- "commit": "f07e75fc2dd97ba20e40806927409357aaad2496",
- "sha256": "0grbvzqy4x6wh2951jsh5mmbhwbd6j5figqj7v9q5px5alprjqsl"
+ "commit": "13a8efc7b388b3ac45dd981898953bd98dd1b3d3",
+ "sha256": "17b4q3crzaxmsrh98jrnnnlyyjlbqq3mzxdvw44cbzy4d4qqcaps"
},
"stable": {
"version": [
@@ -5389,11 +5505,11 @@
"url": "https://git.savannah.nongnu.org/git/bbdb.git",
"unstable": {
"version": [
- 20190609,
- 316
+ 20190927,
+ 1617
],
- "commit": "1d26869d2787803672dd412cf658158d6bef0c7b",
- "sha256": "1l503z8fklrxxawxf00xbwbw1wyx7bsn2mhm5249h49ckxnqhgcx"
+ "commit": "2bbe645ae71d84ad518e03dec698d4154af2f9f0",
+ "sha256": "1f18pzwm7p4k1ycnrx80la4wxlph59kv7zh18sk4iz3k6a3j3nnh"
},
"stable": {
"version": [
@@ -5735,11 +5851,11 @@
"repo": "technomancy/better-defaults",
"unstable": {
"version": [
- 20190224,
- 1816
+ 20190917,
+ 1545
],
- "commit": "0937ac9a813632c48d114cf959768cda9676db3a",
- "sha256": "0zwixak4aysj6hckg7h7qj6ha6n7fb9v66drfpgjcg4ylg500anr"
+ "commit": "01b8f00235c37bddf3e1a949e943dc0c9980863a",
+ "sha256": "0qniwfdip1ksxwx52xwsx9sgy7vfcsixsccmx877w4rlv893plah"
},
"stable": {
"version": [
@@ -5759,11 +5875,11 @@
"repo": "gilbertw1/better-jumper",
"unstable": {
"version": [
- 20190510,
+ 20191021,
1647
],
- "commit": "2c04d4bc09da88c5b8b276c87d3f9f56e517144e",
- "sha256": "1gzmhgr17mvxj1qvcisfq74dbb2rsgzx2wrbjf36jrwfzx7sdjxw"
+ "commit": "3aa1a8a7662d4188633daf7d75a23e13ebdd902b",
+ "sha256": "1rn4mxh9anqk582x0x7v32dw6m5i96aapdpfpzsxs519wxs3j9q4"
}
},
{
@@ -5947,8 +6063,8 @@
"a",
"pdf-tools"
],
- "commit": "f2fcfc0d4e7cdb1312c5c06fd5e1820788268de3",
- "sha256": "14rfixf6948zf5ylplzmpqr15rn1kr1qc26055kbb13klyl0qj3y"
+ "commit": "5f3e67448cc98fe2875115163849acae4d9e8526",
+ "sha256": "1w0dhyr4i0nx0g70smgclcfsbv6cfilb7df330njzaqk8j2gdfws"
}
},
{
@@ -6095,8 +6211,8 @@
"bind-key",
"key-chord"
],
- "commit": "1d5ffb2e0d1427066ced58febbba68c1328bf001",
- "sha256": "1a8zpi9pkgp8qkm6qxyzaj3k1s25z3x034mgjqp2mpd7ij76mk8v"
+ "commit": "4714d73b61bdb378f6e9e3f3838cae1abbf65ea0",
+ "sha256": "19m31nh2bd7rrlh53wy1hf6sxcqk4qn4wkm5w1c16314d5w56w5s"
},
"stable": {
"version": [
@@ -6122,8 +6238,8 @@
20180513,
430
],
- "commit": "1d5ffb2e0d1427066ced58febbba68c1328bf001",
- "sha256": "1a8zpi9pkgp8qkm6qxyzaj3k1s25z3x034mgjqp2mpd7ij76mk8v"
+ "commit": "4714d73b61bdb378f6e9e3f3838cae1abbf65ea0",
+ "sha256": "19m31nh2bd7rrlh53wy1hf6sxcqk4qn4wkm5w1c16314d5w56w5s"
},
"stable": {
"version": [
@@ -6304,8 +6420,8 @@
20161216,
656
],
- "commit": "d8b984f2541bb86eb4363a2b4c94631e49843d4a",
- "sha256": "1jh2960yab6rhdq7ci1slpmnr43619cza0g8bfbq759yz5b7xryh"
+ "commit": "7a0d79410feb728ff5cce75c140fadc19a3f9a6d",
+ "sha256": "00hws9fbf7hy11hnicgk2q3din0z8hdq7my00aaw7b8nnb8q4g89"
},
"stable": {
"version": [
@@ -6318,17 +6434,17 @@
},
{
"ename": "blacken",
- "commit": "69d9802996a338be937d61678f2cadf3497f6b85",
- "sha256": "16lbs76jkhcq0vg09x1n8mrd4pgz5bdjsprr9260xr7g3dx8xacc",
+ "commit": "c756ccbae044bc23131060355532261aa9a12409",
+ "sha256": "0lk7rhrzysdg4zmvv75bkpxcs6fcd6jaf0nh0bp15c3kp2v9zsn5",
"fetcher": "github",
- "repo": "proofit404/blacken",
+ "repo": "pythonic-emacs/blacken",
"unstable": {
"version": [
- 20190521,
- 841
+ 20191024,
+ 1230
],
- "commit": "1874018ae242176d0780cdcd0109e8f9a123a914",
- "sha256": "1zgx7j4cp51r2cdlyf744jgfpid4lz7fwwjxbm6cvcp9hv57v7wz"
+ "commit": "2d75594b8b016597f1c2ffa15f9974a0fa825d8d",
+ "sha256": "0l76km14qgj9vww8znl92dfqcbn6vlb1qngcwp35q8fwxi5biy9l"
}
},
{
@@ -6649,8 +6765,8 @@
"repo": "boogie-org/boogie-friends",
"unstable": {
"version": [
- 20190710,
- 2300
+ 20190909,
+ 1432
],
"deps": [
"cl-lib",
@@ -6659,8 +6775,8 @@
"flycheck",
"yasnippet"
],
- "commit": "a7536291e4ef1e97d369b1b76b6a31906ef5e348",
- "sha256": "1cq2dg71lavn4xp2pmvz784ir0lqyb4hhsj2893kllvm912hw3a6"
+ "commit": "45ee305eba1cce63f89e49daef9eaeaa90e34265",
+ "sha256": "0dnmg84ynxr4vhdgrzdvrq68jrrmp9vkz0lbwhlxpljckpmfdf03"
}
},
{
@@ -6695,16 +6811,16 @@
"repo": "jyp/boon",
"unstable": {
"version": [
- 20190828,
- 655
+ 20191001,
+ 1211
],
"deps": [
"dash",
"expand-region",
"multiple-cursors"
],
- "commit": "623174d015d4ba867e4decf0fcd439b51262f0a9",
- "sha256": "19qm2i4pba9kbaw70cdchvmv9jgs2vxnlrz9jqpcn864z3k887iw"
+ "commit": "b17880bd39863b8f4acc7c8597fbf3f01b36e047",
+ "sha256": "0ad8vgn1sg1rmldh8nnavlgkjqb5ild5744wr4crmx6p9wyab298"
},
"stable": {
"version": [
@@ -6728,16 +6844,16 @@
"repo": "emacscollective/borg",
"unstable": {
"version": [
- 20190802,
- 2023
+ 20190902,
+ 1510
],
"deps": [
"dash",
"epkg",
"magit"
],
- "commit": "b338e13e8de7bb2e0eef093fdb79fb763910c7e8",
- "sha256": "0ydj3xs856gbm559f20zrnag5rbhy9s60qs2x5kwwdn921mdcsgj"
+ "commit": "e4a53ec687a1e2f75276c2f2c2b568266887fe10",
+ "sha256": "1s01gwnpqrkr60r0xn27231854qpqqbqphiy200x7hmkq93wzlhv"
},
"stable": {
"version": [
@@ -7005,8 +7121,8 @@
20181023,
1222
],
- "commit": "8899f4f4a7faf0080977cd137e0ad7b00c40f1e8",
- "sha256": "0ghq8n0lnidjz5m0i2wsmdrk2nwbwh6l8imxfhkva7qpaha4jqyq"
+ "commit": "6568844b83dc916a5d6aa69960cbc85ded5f7d73",
+ "sha256": "1b76hvk87p3glrlbm8gj4w6r7y7gqa5yq8hdxq31m2swqg8h3k52"
}
},
{
@@ -7595,19 +7711,19 @@
"repo": "jorgenschaefer/emacs-buttercup",
"unstable": {
"version": [
- 20190828,
- 2027
+ 20191006,
+ 1305
],
- "commit": "9d172a74373916f571f6fe3292bdc66cd3f28779",
- "sha256": "10xm856x58zgki2d9gr4rqqlkd3f8pl24z657qa7d3lkzs2av9a2"
+ "commit": "c2d75e9a48c93f96d1bc7f1bf151d69adb417abf",
+ "sha256": "1nzx39pf3lqbbc5h9r7qx30jm5r8g3k2zqc5hpmizv8d4l23fhcx"
},
"stable": {
"version": [
1,
- 16
+ 18
],
- "commit": "810fa6fb8dab06610dbf2b5ccbc64b4d0ecc7485",
- "sha256": "0dckgcyzsav6ld78bcyrrygy1cz1jvqgav6vy8f6klpmk3r8xrl1"
+ "commit": "c2d75e9a48c93f96d1bc7f1bf151d69adb417abf",
+ "sha256": "1nzx39pf3lqbbc5h9r7qx30jm5r8g3k2zqc5hpmizv8d4l23fhcx"
}
},
{
@@ -7624,8 +7740,8 @@
"deps": [
"buttercup"
],
- "commit": "6bc28b6b0f36fb71b0915c9e45963c840c64a8df",
- "sha256": "1rayxq1va7jpikfr37p8nq2pv339mhq7zqy082kzwvj5q6qfw88s"
+ "commit": "400227a45164e4e849048d288a02ab8243d09cd2",
+ "sha256": "1z972i1pzg8bkrzzbjha802486mybqyh9bhbvfk2sr6nzhvx2w1k"
},
"stable": {
"version": [
@@ -8152,16 +8268,16 @@
"repo": "kisaragi-hiu/cangjie.el",
"unstable": {
"version": [
- 20190829,
- 1530
+ 20190929,
+ 1221
],
"deps": [
"dash",
"f",
"s"
],
- "commit": "b34a28dd06bd95a16b655f1917227925975314bc",
- "sha256": "0xz62fivll6yv1x94f7f5m07zg7383llyz6wa1n5q1ysix2p20j1"
+ "commit": "0a703f4d1162259d77bfb3f862d13c1b1f11a711",
+ "sha256": "19f7xzc1204zdv8bbd5vfzxqrinhk8m9mw911dc77jab2in22348"
},
"stable": {
"version": [
@@ -8219,15 +8335,15 @@
"repo": "kwrooijen/cargo.el",
"unstable": {
"version": [
- 20190816,
- 1046
+ 20190902,
+ 754
],
"deps": [
"markdown-mode",
"rust-mode"
],
- "commit": "f70b060c97f0df6ec6487968dfdfae8ec97a080f",
- "sha256": "1qaz6m34j4khw27nkb8yfcy1iprcldbl7jjwzsljw1i2yfc1xqj0"
+ "commit": "39a77e48a16d69b2e841084a3dbbbd083f166a21",
+ "sha256": "0wyqqc22my842ag999hnfijycfck888z1pbm6acaa6h6cczm1ya9"
},
"stable": {
"version": [
@@ -8299,8 +8415,8 @@
"repo": "cask/cask",
"unstable": {
"version": [
- 20190718,
- 2055
+ 20191004,
+ 1155
],
"deps": [
"ansi",
@@ -8312,8 +8428,8 @@
"s",
"shut-up"
],
- "commit": "1d031f77d3dcd540038e24151dbaf0a91de01db5",
- "sha256": "1wz57lqmn9vzh8dlvb639lmfxh2h6m3f6kr9bglr2mf1hc3zrij1"
+ "commit": "a4715f7c6c9797639c3636399cb21c2b0332b354",
+ "sha256": "1zjz3mp8hgnsfyapq7qdfysj31g9f6syvrik2w057r3w3bxp8vkf"
},
"stable": {
"version": [
@@ -8522,16 +8638,16 @@
"repo": "MaskRay/emacs-ccls",
"unstable": {
"version": [
- 20190720,
- 935
+ 20190927,
+ 246
],
"deps": [
"dash",
"lsp-mode",
"projectile"
],
- "commit": "9061ebbf9d5ec3ee7e88dbd226c77017cf0447b1",
- "sha256": "106jh25ivq0ydiz37p51agk5zbpai7fv91pwn6dpqzsq5g281ls7"
+ "commit": "b1acc336f27d8a3bbc750c2dc3be915a4ac1afea",
+ "sha256": "1qgfxc5d1hb32ks1fxpx7agpw7dvnkz99wydlflc9fqq75g8v142"
}
},
{
@@ -8572,11 +8688,11 @@
"repo": "cdominik/cdlatex",
"unstable": {
"version": [
- 20190130,
- 1419
+ 20191006,
+ 1030
],
- "commit": "90d785a94c0db7aa0043ea62f5807af3df155438",
- "sha256": "1yhry3wrqh1ijc0n7140pnbwcamrgi89a75pg03zx0cqb5g6c8i6"
+ "commit": "fea53d325bdc32e9b299971f906101f41d24e77e",
+ "sha256": "0gn2h9p60dbz6xcz2fn0p7vpg1bwsh2kn4n76yd9z1p40j1fn93a"
},
"stable": {
"version": [
@@ -8695,15 +8811,15 @@
"repo": "ema2159/centaur-tabs",
"unstable": {
"version": [
- 20190812,
- 1915
+ 20191020,
+ 237
],
"deps": [
"cl-lib",
"powerline"
],
- "commit": "de3738c14b8e73e135c16e26ca405f18459fbb20",
- "sha256": "11w5nhiaz7wrb8kgkv832xg0fmm0251wy6klxrk5gsdjh2c5qf26"
+ "commit": "6a788ff518570d161674b4a7033f0a7a763b7417",
+ "sha256": "0a7nka9iha4c049gyb9qxdapgi33s5s5kav6r5p73wajx6iryzmz"
}
},
{
@@ -8818,8 +8934,8 @@
20171115,
2108
],
- "commit": "35d777b0fd54b574b42cf61c202bf077ed986e8f",
- "sha256": "1p63w0i71vsysdp05mh05pvbpmhdvbjmiv3zgfdsim9k55lbn5pz"
+ "commit": "510a0d3506cca601195d53d0ce885a25b4084e1b",
+ "sha256": "07mdkfzfr12mava0ms17g4z1k6lbbrbbchjnljilkjcgccv20gg6"
},
"stable": {
"version": [
@@ -9350,14 +9466,14 @@
"repo": "SavchenkoValeriy/emacs-chocolate-theme",
"unstable": {
"version": [
- 20190818,
- 756
+ 20191021,
+ 1346
],
"deps": [
"autothemer"
],
- "commit": "7de46341adcc7a5eaafcddc0d3a9d63274f5e9c7",
- "sha256": "0s61lx5vhx01xzzqxy0blz6jxvljb8qjj3567nz17pwwdfcskc5v"
+ "commit": "1c6cd8d2fdc939bd4d26117d61e57c11cfe26512",
+ "sha256": "1knnj1kzjccr7hg5zbj4qfnkgjkf221bf7wv83km9hs7zs7brj5x"
}
},
{
@@ -9457,8 +9573,8 @@
"repo": "clojure-emacs/cider",
"unstable": {
"version": [
- 20190829,
- 613
+ 20191019,
+ 1042
],
"deps": [
"clojure-mode",
@@ -9469,25 +9585,26 @@
"sesman",
"spinner"
],
- "commit": "f350c7431330ca7cd2f01a1fddefbb637d3e3493",
- "sha256": "0zvk6kcs1v6gfv7d48inqqa7hwn5aghhkmycn0wdiarkcdhagjmi"
+ "commit": "aba6567a12cdec01334f16f009e0c3c41b7aeb35",
+ "sha256": "1k3c4xrznyy3mya3n72y8c2brp0x3mr0pq6paw1wfdwzz9mn3764"
},
"stable": {
"version": [
0,
- 21,
+ 23,
0
],
"deps": [
"clojure-mode",
+ "parseedn",
"pkg-info",
"queue",
"seq",
"sesman",
"spinner"
],
- "commit": "200c88adb1314b5811ba749af42ffb6817c1ca1b",
- "sha256": "0lbrwj67fnvynkdkzvnzp3p8vqlz0ldrcs317vg60bqfhx7hvqkj"
+ "commit": "ce42702154709ef5d991e2732511c50d69de256c",
+ "sha256": "05yjkqc6d4grq9z5pxmv3anqh4zlhfg4v46jlccp6ynh030g7axs"
}
},
{
@@ -9660,14 +9777,14 @@
"repo": "jorgenschaefer/circe",
"unstable": {
"version": [
- 20190322,
- 1242
+ 20191006,
+ 1434
],
"deps": [
"cl-lib"
],
- "commit": "6ccd4b494cbae9d28091217654f052eaea321007",
- "sha256": "0cr9flk310yn2jgvj4hbqw9nj5wlfi0fazdkqafzidgz6iq150wd"
+ "commit": "e4af7143bd32907d0bf922bee53a96399f0376fa",
+ "sha256": "1ccxin0vp3z8lxcfm9bci06jkwy0nwasdwg95wp9hdnccpr63s38"
},
"stable": {
"version": [
@@ -9720,8 +9837,8 @@
"repo": "andras-simonyi/citeproc-el",
"unstable": {
"version": [
- 20190422,
- 2017
+ 20190914,
+ 613
],
"deps": [
"dash",
@@ -9731,8 +9848,8 @@
"s",
"string-inflection"
],
- "commit": "abab214473b7486f662c147f1c36b2a6b4b0302d",
- "sha256": "0x4pjmjvi53ysfz1c0l1vi8fvd49fsdmn1j9g8zdry5b2kv36siw"
+ "commit": "fd2188e5d76ca78723567ae3b369ae542402e633",
+ "sha256": "0a924bpb15259dlv8ry5bhlq61yczy31fnsbvx2lhzf9r0i06vvc"
},
"stable": {
"version": [
@@ -9835,14 +9952,14 @@
"repo": "emacsmirror/clang-format",
"unstable": {
"version": [
- 20180406,
- 1514
+ 20191019,
+ 1213
],
"deps": [
"cl-lib"
],
- "commit": "1469728c61dcba8fa09c456e841f97e9eb75fa85",
- "sha256": "0w6pd47pfs8jna076xjz0xz1f7bxdgvyglpllkm62fifiy2n994l"
+ "commit": "113b767848ec1568f538e547d7c456a07d66b598",
+ "sha256": "1p2zz810nam5ciljd6hvln0qv9f8j53niry47fgwgsvwg527savx"
}
},
{
@@ -9958,14 +10075,14 @@
"repo": "redguardtoo/cliphist",
"unstable": {
"version": [
- 20181229,
- 1411
+ 20190920,
+ 149
],
"deps": [
"ivy"
],
- "commit": "232ab0b3f6d502de61ebe76681a6a04d4223b877",
- "sha256": "0is772r0b7i8rvra9zb94g9aczv8b6q0dmdk67wbli5rv5drfjyq"
+ "commit": "3105e5c4b4d2d0338edb6effd9329426854b80b1",
+ "sha256": "0jbn2nczhsv9adhkc6mnrmxyjbpkbqq475gry0khhqlmzm49y618"
},
"stable": {
"version": [
@@ -10223,11 +10340,11 @@
"repo": "clojure-emacs/clojure-mode",
"unstable": {
"version": [
- 20190725,
- 654
+ 20190914,
+ 1029
],
- "commit": "f23eb209a8bedec95e0ad0542762bd13998ba048",
- "sha256": "1ighmb00qxk8fzc6g2n5pg4x7l079w9wazsd8kbvk6z09lpip5cs"
+ "commit": "147bf84189ef672161b2229ddc5c35713323ad59",
+ "sha256": "1m80pabpqc1lkc5zlcalqz6r6ppslj7zqx00b1c35innhzm7dzw0"
},
"stable": {
"version": [
@@ -10253,8 +10370,8 @@
"deps": [
"clojure-mode"
],
- "commit": "f23eb209a8bedec95e0ad0542762bd13998ba048",
- "sha256": "1ighmb00qxk8fzc6g2n5pg4x7l079w9wazsd8kbvk6z09lpip5cs"
+ "commit": "147bf84189ef672161b2229ddc5c35713323ad59",
+ "sha256": "1m80pabpqc1lkc5zlcalqz6r6ppslj7zqx00b1c35innhzm7dzw0"
},
"stable": {
"version": [
@@ -10339,30 +10456,30 @@
"repo": "clojure-emacs/clomacs",
"unstable": {
"version": [
- 20190313,
- 1517
+ 20190925,
+ 1509
],
"deps": [
"cider",
"s",
"simple-httpd"
],
- "commit": "461be59e5f480af292c84fd6f7d88f1f885371a5",
- "sha256": "1kglhcid32vxs8nc7j2jjbd0cbwxx2rc0y2wlhmcxpd3gsk2lwp3"
+ "commit": "292c8f5370a2c74094da46ede990b5e7cc8b55b8",
+ "sha256": "1rv57wqr09vl0caz4wjr0kqvhgvl5y1x6818v8m55rm2z8rim11i"
},
"stable": {
"version": [
0,
0,
- 3
+ 4
],
"deps": [
"cider",
"s",
"simple-httpd"
],
- "commit": "d9783d42dbab9710afff5654bf931b00e9df4ac1",
- "sha256": "0jwnsyg0vi9ghn9yfd97rjj9j9ja3ig8h63n4zjw71ww3bcdldc6"
+ "commit": "292c8f5370a2c74094da46ede990b5e7cc8b55b8",
+ "sha256": "1rv57wqr09vl0caz4wjr0kqvhgvl5y1x6818v8m55rm2z8rim11i"
}
},
{
@@ -10418,11 +10535,11 @@
"repo": "vallyscode/cloud-theme",
"unstable": {
"version": [
- 20190826,
- 2117
+ 20190901,
+ 1701
],
- "commit": "9422a25a1d7e73176b0c8b81cf4be1f722d6304a",
- "sha256": "085kj8wzm21fdli0ycdj117306pc9j0a6r17w9kzy7ckzax54zc6"
+ "commit": "08090f00738809306fa156aac60d85ad6be9e672",
+ "sha256": "17a5xdn2m7gdaw71b79xs1cprh4jqgwsfgmb52gz2yaxb20hg7xy"
}
},
{
@@ -10556,17 +10673,19 @@
20190710,
1319
],
- "commit": "c0d21d763b13e280ccf7a387ba690650db014646",
- "sha256": "072m458y9sazjmp7z0i1c3wppnwqry1lb2crf6k0v9fk3l78zknz"
+ "commit": "5a3f539cd50621298d15df639c29a9c09aace443",
+ "sha256": "07jv0xpszir2vz0i6ixdaq4ra32b5icj3sr4wdm3faf052xnv3my"
},
"stable": {
"version": [
3,
- 15,
+ 16,
+ 0,
+ -1,
2
],
- "commit": "40bbe50e23c06232ccf1c49589dde5dd84e1ac31",
- "sha256": "006ziv2imzxpq646f3vq30ylbpp84l2hf7ki0l7s521g1ikh1dy0"
+ "commit": "92780281c2e8a46223b262b152caa9c8329373b1",
+ "sha256": "1qia99zl24n56wlpxigs1hmma5b1sydifcwd4v542p2jiwciwmny"
}
},
{
@@ -10680,6 +10799,21 @@
"sha256": "1sx8grp3j7zcma3nb7zj6kijkdqx166vw1qgmm29hvx48bys6vlp"
}
},
+ {
+ "ename": "codcut",
+ "commit": "0fcd1c7a483dd377674a71a07fd86297f05cc83b",
+ "sha256": "1pmbsv7pzmlbkfcw4ihpi5k7pgcrwlcg1hp0wkhkii8w61dq62x6",
+ "fetcher": "github",
+ "repo": "codcut/codcut-emacs",
+ "unstable": {
+ "version": [
+ 20190915,
+ 1009
+ ],
+ "commit": "7ca7db69e8c38ec45eb572ad16ab2b56086f2131",
+ "sha256": "1jfglmsknvyh3srqn7m6yr02j7n8xa7iznzyhhr34mwg2q71ihzr"
+ }
+ },
{
"ename": "code-archive",
"commit": "a8d0832eff966874d90e1d5ac1043c03e96b1c25",
@@ -11004,8 +11138,8 @@
20161219,
1144
],
- "commit": "42a79266f1d7b473e9328e67a455e505e6c3eff5",
- "sha256": "0mw5rnzzc4yfcflg59viy81ziws680r44xr05qg032b5x02l8ar9"
+ "commit": "4f7da6f955f7c584c5dfab2dc170f9a3debd80f8",
+ "sha256": "08wmllq3smg7cp7jspmvd67z5vzmxvi136c6j87r1gsgprhgmhw4"
},
"stable": {
"version": [
@@ -11051,11 +11185,11 @@
"repo": "purcell/color-theme-sanityinc-tomorrow",
"unstable": {
"version": [
- 20190826,
- 1340
+ 20191025,
+ 423
],
- "commit": "2ef60a4de1d0973e53e97cc08db4c0a510a2669f",
- "sha256": "1f0829zipvckcgnl5kv9msdpya8q67p72rlkg0hb6z5ik095n2yq"
+ "commit": "7f76f4c4e055bda2c2e633e6d913b5b9e205ed42",
+ "sha256": "12i0snv7nhf2annjb74nwk9m6bh1a812sgg44v87kcj5p4mq87hf"
},
"stable": {
"version": [
@@ -11092,11 +11226,11 @@
"url": "https://git.sr.ht/~lthms/colorless-themes.el",
"unstable": {
"version": [
- 20190802,
- 725
+ 20190927,
+ 1305
],
- "commit": "4f9d0ec5a078ab8442abdba0c35eb748728f3052",
- "sha256": "1h8ggaqvrdj8cyknps9anh2xz08ar94137gydvxy8xgrmpa3jnc1"
+ "commit": "12678144d17edf36d34e6bcdc5435593e191d96d",
+ "sha256": "0fld15h92193bnbmka3ikq27hggxvsikzlzq4pi2n3kknq9hyh56"
}
},
{
@@ -11140,10 +11274,10 @@
},
{
"ename": "com-css-sort",
- "commit": "ec27ae185c0308c445e461dc84f398483ca08c5a",
- "sha256": "153yhyqrlmarz8rpcvb0rr7f388fhyb2val4qx2pzpsimklrwrcb",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "11cdp3cgcwwi06njjpwryh3vwmkdh2rzlin77p630590bynagw8c",
"fetcher": "github",
- "repo": "elpa-host/com-css-sort",
+ "repo": "jcs-elpa/com-css-sort",
"unstable": {
"version": [
20190723,
@@ -11165,11 +11299,11 @@
"repo": "cyrus-and/comb",
"unstable": {
"version": [
- 20180831,
- 721
+ 20190918,
+ 14
],
- "commit": "69d59284e19428794b5c0aaa9be0e7d2770cc846",
- "sha256": "17kcj0bkarr9biyjf1kkj4l1n9qfh6lkhwfd32qlr5k7pnwnbirb"
+ "commit": "a68fd0274592e8dcca28a337c9ee913cb84efa9b",
+ "sha256": "1n2nk8nhvfiz8dw863q91k04jrmafirdi0mj88awq9ibpw453vzz"
},
"stable": {
"version": [
@@ -11181,6 +11315,30 @@
"sha256": "1hh1lkan1ch5xyzrpfgzibf8dxmvaa1jfwlxyyhpnfs5h69h3245"
}
},
+ {
+ "ename": "comint-hyperlink",
+ "commit": "3c3bc7c897bfc5fafcda33d9837e6f3ff4da3692",
+ "sha256": "17fvg00r2wjwxa747v8yvgv70rd287crhhxxmp6nchfklw408ai6",
+ "fetcher": "github",
+ "repo": "matthewbauer/comint-hyperlink",
+ "unstable": {
+ "version": [
+ 20191022,
+ 1451
+ ],
+ "commit": "bd5a5e95f0e451a774fc5b197456f47f9eb4c50b",
+ "sha256": "0wri4ygdkyq54107hg0ij2nxzbpk8irfd2x2c94qkx97yql4yj54"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 5
+ ],
+ "commit": "bd5a5e95f0e451a774fc5b197456f47f9eb4c50b",
+ "sha256": "0wri4ygdkyq54107hg0ij2nxzbpk8irfd2x2c94qkx97yql4yj54"
+ }
+ },
{
"ename": "comint-intercept",
"commit": "7d38188ec2d6e16714de9bb24ebd1ea89c7df3da",
@@ -11437,10 +11595,10 @@
"repo": "company-mode/company-mode",
"unstable": {
"version": [
- 20190821,
- 658
+ 20190907,
+ 1149
],
- "commit": "1120b56bd1154a17e4c0b950cbdba4c85be28e2a",
+ "commit": "f6974e3103497afe01da2ad4d2ea3668ad68bc27",
"sha256": "0pi6n1ggxb2i8x8f2wf1il8wcm6rd6ilvgbbh7ni95by1c987vbp"
},
"stable": {
@@ -11455,10 +11613,10 @@
},
{
"ename": "company-anaconda",
- "commit": "0eb23a75c8b57b4af1737c0508f03e66430e6076",
- "sha256": "1s7y47ghy7q35qpfqavh4p9wr91i6r579mdbpvv6h5by856yn4gl",
+ "commit": "c756ccbae044bc23131060355532261aa9a12409",
+ "sha256": "0kq8vh4i92n0b42jyy8a2ra2jk27l6hmzq8r2hsyl6zj7qqzymrx",
"fetcher": "github",
- "repo": "proofit404/company-anaconda",
+ "repo": "pythonic-emacs/company-anaconda",
"unstable": {
"version": [
20181025,
@@ -11471,7 +11629,7 @@
"dash",
"s"
],
- "commit": "0ab70de1740e67cee451abcf3685c7525ff9e95a",
+ "commit": "398fad19160cc1d0e31dcb1d4a3f88de7a2d355d",
"sha256": "182cijh6l82jj1r7iwd93h3np9c8fvcibjhv7860rk9ik41n7wil"
},
"stable": {
@@ -11681,8 +11839,8 @@
"repo": "cpitclaudel/company-coq",
"unstable": {
"version": [
- 20190425,
- 1851
+ 20191004,
+ 1358
],
"deps": [
"cl-lib",
@@ -11691,8 +11849,8 @@
"dash",
"yasnippet"
],
- "commit": "779dabd2925fc786dc278270a20f2ff05a3c673c",
- "sha256": "00rn79i2vackrxhqmbf0miw0k2z6s6gmqb1nj9dj0pfml5yac875"
+ "commit": "109f86ddbb87313b8ef763ae97d9445230b6d051",
+ "sha256": "1y2dl262g2l6zsjmlmmi6fk3p83wv2j8qh83x5j09dj1j1vyx4hy"
},
"stable": {
"version": [
@@ -11956,10 +12114,10 @@
},
{
"ename": "company-fuzzy",
- "commit": "3c3957d27d4208db45e7545f86ad1c25f53ec532",
- "sha256": "0yxr0j3zdsf8xfy2mk4ybnjfv6g861772dshbd6v4p3q0pbhhhg6",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "1xr5bilhj0xps0i0rgdvspq8yfiqkybq682jhzqjs1qzrm91apn0",
"fetcher": "github",
- "repo": "elpa-host/company-fuzzy",
+ "repo": "jcs-elpa/company-fuzzy",
"unstable": {
"version": [
20190812,
@@ -12213,8 +12371,8 @@
"lean-mode",
"s"
],
- "commit": "9d6b8471e2044310b4cd7cd3213b1fc8f78ec499",
- "sha256": "0r8vfklrdw3f11cpk279jg3mnfbqm60m6klisqndkvir7vsrshni"
+ "commit": "b5ba739f68ef731c03247bf6db2708502c8ac46c",
+ "sha256": "1dx0a76l7w3ck23sdjymigk1hycqiawfwv24yz6wqyy74f1pcyjf"
}
},
{
@@ -12422,8 +12580,8 @@
"cl-lib",
"company"
],
- "commit": "4490d168778a61a4ee8623defe760164cd9745b8",
- "sha256": "1mkxayqrvz246gxr9wjabsn015hnjq96ys71syb6r4ykjn892a6m"
+ "commit": "84aa4f0c4ffafa2c2fdfbcb16662abac0a571013",
+ "sha256": "1miz6nwsdbc9n3jc7qcb0mvf2yp0k9a7pyl0ifbdjjr2160m2lql"
},
"stable": {
"version": [
@@ -12455,8 +12613,8 @@
"company",
"phpactor"
],
- "commit": "299347fbe3dd8617a46e874ccb8511f6705c95e4",
- "sha256": "0g5hidr0c3f83ml1b8wnkf1blvapkivxzr26amcv5ml0v5f6icjn"
+ "commit": "a12ec67ce9de9e96c89548052ae323a277cba846",
+ "sha256": "031i5s3cv9z2d6vnwbf91291fgafcqg61km9b3z7p9bk91vbkxsy"
},
"stable": {
"version": [
@@ -12539,27 +12697,27 @@
"repo": "raxod502/prescient.el",
"unstable": {
"version": [
- 20190706,
- 1917
+ 20190921,
+ 3
],
"deps": [
"company",
"prescient"
],
- "commit": "ea8e9fea4385272924d09c91220c7f2e9ac95b3f",
- "sha256": "1apb9v31ajq586f7mqachv238yv40gacrjmh2s8mnk45xil72swy"
+ "commit": "82a90c4142c369f4090a42536179c6029d3fdafd",
+ "sha256": "0n919w068j73dnlxfzsvzh7j385phi4z718pi6xq6cygkjkq9zq8"
},
"stable": {
"version": [
3,
- 2
+ 3
],
"deps": [
"company",
"prescient"
],
- "commit": "653ca4b66954b7f1b6e4635a574234dd316c11a3",
- "sha256": "0d60h4rfm5jcf8cf11z91wjqp0xcrviskqzyqhfliqvy2i2yl6ks"
+ "commit": "2f01b640e3a487718dbc481d14406005c0212ed9",
+ "sha256": "1wqk1g8fjpcbpiz32k7arnisncd4n9zs84dn3qn9y8ggjzldqy91"
}
},
{
@@ -12703,8 +12861,8 @@
"company",
"rtags"
],
- "commit": "6289e66a69d0d5ff20b12da91e735d3984ad6f88",
- "sha256": "1ggdi4mgqw1cc0w6cijds7s4vb575v27g72h6md8h1jdsfv6pvrm"
+ "commit": "f2633f565fc5e7e6958993ef105225f4e68e43ba",
+ "sha256": "1bjgr7wa82ccrc25r7agfaq3iz7xlp1qchvkmkx3xy59jv4yafjz"
},
"stable": {
"version": [
@@ -12735,8 +12893,8 @@
"company",
"dash"
],
- "commit": "6ae625f80d90e0779c79de38e8f83a336c1d00fa",
- "sha256": "0da9y7x1xvaahsslcmgji6hr3cbn779i504cfrmsabbr3wmkn3fy"
+ "commit": "52f3bf26b74adc30a275f5f4290a1fc72a6876ff",
+ "sha256": "0nv8vwmqgdb33cl1wfdbmncbrpfdciid48f6w8vmw39ks53i2z32"
},
"stable": {
"version": [
@@ -12888,8 +13046,8 @@
"s",
"unicode-escape"
],
- "commit": "2cbfea20d342d1a259b27b99185c2d822aba3094",
- "sha256": "06vndicjzm19hk5kb7sxs3ljf559wfnvql1hlpfqlhhgjhgsw17c"
+ "commit": "81b7440a7253e1753cf41932237fd64c1c1e44b6",
+ "sha256": "15nmli9drrb25d5xn31v1ja2hmc9kgpn2hjj6b2azj391yw0q4a3"
}
},
{
@@ -13076,6 +13234,21 @@
"sha256": "0rxw86xi9xgr0fp6wmd6hgqgqr9flk7p4lcr0052jhlwknj1nrx0"
}
},
+ {
+ "ename": "compdef",
+ "commit": "462b3d92c8c5f72ae1b70fa4d48b803c2f3d07e2",
+ "sha256": "04cav3f1ggyjfgnbx1wsyfaj8d63sxwfqkjar869p6kz9gajy4qr",
+ "fetcher": "gitlab",
+ "repo": "jjzmajic/compdef",
+ "unstable": {
+ "version": [
+ 20190929,
+ 655
+ ],
+ "commit": "67104a38763cc819644f711248b170a43bce151b",
+ "sha256": "1f6y6cr67gps9jp5hd20xszfd3k26v70g6z4g5db6wdkvlnc2wkg"
+ }
+ },
{
"ename": "composable",
"commit": "1fc0f076198e4be46a33a26eea9f2d273dda12b8",
@@ -13084,11 +13257,11 @@
"repo": "paldepind/composable.el",
"unstable": {
"version": [
- 20190728,
- 1527
+ 20190904,
+ 701
],
- "commit": "b2139cd6f4434197ae0c678091c78b72fd022fed",
- "sha256": "043g55gzvxvdplgxz1w1gl367k0nnblmi6ifdg98gl4z4xlqfc1j"
+ "commit": "46f82d86c285ceba3e0e46adf993a98cd8816390",
+ "sha256": "14n5sckdaxx291wmj7mnsn06sprpdxf6s44hgxdksv0pvln2m0wx"
},
"stable": {
"version": [
@@ -13138,6 +13311,24 @@
"sha256": "0iqm8997pl3pni7a49igj8q6sp37bjdshjwl6d95bqrjkjf9ll08"
}
},
+ {
+ "ename": "comware-router-mode",
+ "commit": "47d74f54efc324d39b66d88051edbe6ff2cad9e0",
+ "sha256": "0i3isavwhdwzz8dzwkss4sajj9v3phk8hvq7cxrwrh09lwpp4kxs",
+ "fetcher": "github",
+ "repo": "daviderestivo/comware-router-mode",
+ "unstable": {
+ "version": [
+ 20190923,
+ 542
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "17d8bf8bcf2d7551480cd9a4785c3a6e832e6d8a",
+ "sha256": "0dm5gvaxgbn2flj0k6y6w0nw4ia02lhwpkh3iawv00lqndxqjrv6"
+ }
+ },
{
"ename": "concurrent",
"commit": "8bc29a8d518ce7a584277089bd4654f52ac0f358",
@@ -13176,8 +13367,8 @@
"repo": "necaris/conda.el",
"unstable": {
"version": [
- 20190607,
- 1625
+ 20191001,
+ 1753
],
"deps": [
"dash",
@@ -13185,8 +13376,8 @@
"pythonic",
"s"
],
- "commit": "d65f6d2a47c96e1ff1c7af0e83aee1f5acfe858e",
- "sha256": "1bx60bipglviphxd9cj0q8jvml2ibd38daz44l2bwkcrp8jznf94"
+ "commit": "ffafcc47ddc58b53b5dac19f6f0f745b316d4522",
+ "sha256": "02pvi03blbfkyzy46ma7zg1xfgikxnxrs3silraaym25bn633rn5"
},
"stable": {
"version": [
@@ -13511,27 +13702,26 @@
"repo": "zonuexe/emacs-copyit",
"unstable": {
"version": [
- 20161126,
- 1229
+ 20190919,
+ 1258
],
"deps": [
- "cl-lib",
"s"
],
- "commit": "f50d033b129d467fb517a351adf3f16cabd82a62",
- "sha256": "1s1ddwxgvig7skibicm9j8jii651n1v5ivfj4j6d1kkc79lpq69n"
+ "commit": "c4f2c28e5b6270e8e3364341619f1154bb4e682e",
+ "sha256": "17xqpshwc48srwljpbad7vhx3rkxqav0ygp0ff4xh7wgy21fp2mp"
},
"stable": {
"version": [
0,
- 0,
- 2
+ 1,
+ 0
],
"deps": [
- "cl-lib"
+ "s"
],
- "commit": "c973d3650208a033aaf845989d023f9c6e572ddd",
- "sha256": "1fwndjbzwhl4dzrw5jxbq66yggxkl81ga3cnnl7rm3s63pkb6l3w"
+ "commit": "c4f2c28e5b6270e8e3364341619f1154bb4e682e",
+ "sha256": "17xqpshwc48srwljpbad7vhx3rkxqav0ygp0ff4xh7wgy21fp2mp"
}
},
{
@@ -13542,28 +13732,28 @@
"repo": "zonuexe/emacs-copyit",
"unstable": {
"version": [
- 20160624,
- 2028
+ 20190919,
+ 1258
],
"deps": [
"copyit",
"pandoc"
],
- "commit": "f50d033b129d467fb517a351adf3f16cabd82a62",
- "sha256": "1s1ddwxgvig7skibicm9j8jii651n1v5ivfj4j6d1kkc79lpq69n"
+ "commit": "c4f2c28e5b6270e8e3364341619f1154bb4e682e",
+ "sha256": "17xqpshwc48srwljpbad7vhx3rkxqav0ygp0ff4xh7wgy21fp2mp"
},
"stable": {
"version": [
0,
- 0,
- 2
+ 1,
+ 0
],
"deps": [
"copyit",
"pandoc"
],
- "commit": "c973d3650208a033aaf845989d023f9c6e572ddd",
- "sha256": "1fwndjbzwhl4dzrw5jxbq66yggxkl81ga3cnnl7rm3s63pkb6l3w"
+ "commit": "c4f2c28e5b6270e8e3364341619f1154bb4e682e",
+ "sha256": "17xqpshwc48srwljpbad7vhx3rkxqav0ygp0ff4xh7wgy21fp2mp"
}
},
{
@@ -13633,26 +13823,26 @@
"repo": "abo-abo/swiper",
"unstable": {
"version": [
- 20190830,
- 1557
+ 20191024,
+ 1621
],
"deps": [
"swiper"
],
- "commit": "79333e9edfee38ec3b367c33711a68bdf7783259",
- "sha256": "0dyclc51sprhmr5fi4lylhwsrn8v1jgyblwk9ly60jj84lj6278z"
+ "commit": "c8120fb614425bf76bee687183f70b4b4c2ffc9d",
+ "sha256": "1m62yv9fxw1456v92li3acrwchqs9n56g150nwdppsic5vwlzgnz"
},
"stable": {
"version": [
0,
- 12,
+ 13,
0
],
"deps": [
"swiper"
],
- "commit": "85d1e2e779ca92e6ef8e47d08f866b13d4d87aee",
- "sha256": "0xgngn3jhmyn6mlkk9kmgfgh0w5i50b27syr4cgfgarg6p77j05w"
+ "commit": "cd634c6f51458f81898ecf2821ac3169cb65a1eb",
+ "sha256": "0ghcwrg8a6r5q6fw2x8s08cwlmnz2d8qjhisnjwbnc2l4cgqpd9p"
}
},
{
@@ -13732,16 +13922,16 @@
"repo": "nathankot/counsel-dash",
"unstable": {
"version": [
- 20190823,
- 1334
+ 20191021,
+ 1648
],
"deps": [
"cl-lib",
"counsel",
"dash-docs"
],
- "commit": "24d370be9e94e90d045c49967e19484b9903fce9",
- "sha256": "18gp7hhgng271c7bh06k9p24zqic0f64j5cicivljmyk9c3nh7an"
+ "commit": "7027868d483b51d949b9f20fb8f34b122ca61520",
+ "sha256": "0h3f5pxnmb21pq4hh7k4w8jzflz1k2ap7nwpjc222w0q6x6jrbjp"
},
"stable": {
"version": [
@@ -13767,15 +13957,15 @@
"repo": "redguardtoo/counsel-etags",
"unstable": {
"version": [
- 20190802,
- 652
+ 20191014,
+ 50
],
"deps": [
"counsel",
"ivy"
],
- "commit": "d7fcec59c4ba919b93018d4d61da0c154233c66b",
- "sha256": "1pawczhhb7im1q314wsba9fwcks04kddg1vv8mcpiad237mf5dx4"
+ "commit": "b08ed51b763e29fc5deb2952eb7e5ba7c3677b4a",
+ "sha256": "055iwjwkdbwirgm707xgar5afx2nr2kvrsdg5bnw96yvwvby6x4r"
},
"stable": {
"version": [
@@ -13799,15 +13989,15 @@
"repo": "cireu/counsel-ffdata",
"unstable": {
"version": [
- 20190725,
- 1630
+ 20191017,
+ 1237
],
"deps": [
"counsel",
"emacsql"
],
- "commit": "33f37112b068d72d866011461c6a4e9a0d43fc12",
- "sha256": "00svf7b3an4dfcl7w2xycn5a6ib78p5xip6wy675w9k6v16sag73"
+ "commit": "88c2348c4039d9e562bd3d9a364708b01037c283",
+ "sha256": "0sbp3f72dcln8y789vjdmg73lxvyb4qs4pb5mg452b3y8c8xlj30"
}
},
{
@@ -13818,15 +14008,15 @@
"repo": "FelipeLema/emacs-counsel-gtags",
"unstable": {
"version": [
- 20190422,
- 1501
+ 20190923,
+ 1842
],
"deps": [
"counsel",
"seq"
],
- "commit": "3ebfd4159856e9dbd9531b2a43410f72175a90bb",
- "sha256": "08n11nvf7p6clmha8r50r2fzp9f4nmrcm8j6byvn99vazdvych7p"
+ "commit": "baac1a718aaa3ad6c439ab48903b12013de2cec0",
+ "sha256": "18bwis4j6j4plcdwxml3jdqzd9l8wi0k9kwmyqf9nbqx9f54klqr"
},
"stable": {
"version": [
@@ -13923,15 +14113,15 @@
"repo": "ericdanan/counsel-projectile",
"unstable": {
"version": [
- 20190817,
- 102
+ 20191010,
+ 1427
],
"deps": [
"counsel",
"projectile"
],
- "commit": "fda7f0bad93a471fddf5fa01d6fdee5684e7f880",
- "sha256": "097ksmy85lf9zfi6v2xz9bxl54l0il6v0ybj1305qg6g8xampbdw"
+ "commit": "ace17b9a3243e934314860f161f0ed71e4922730",
+ "sha256": "06l8rr11ki31a35vmvfdhvvvsgm8nbx8v2wsn4d12y42i86sdfv5"
},
"stable": {
"version": [
@@ -14077,16 +14267,16 @@
"repo": "AdamNiederer/cov",
"unstable": {
"version": [
- 20180415,
- 2031
+ 20191004,
+ 36
],
"deps": [
"elquery",
"f",
"s"
],
- "commit": "7c72a949b9628296af97cc7e4df0af6c3824d66e",
- "sha256": "0rddchwanrshfpjiigmz6a0zz1sz9kxbbgvszvja2r4w0m6irb80"
+ "commit": "803592baf1fb210415d943689af2bf5b79cdd24e",
+ "sha256": "0wp89sq9jy97cvsihqn9dk62m7rp6154c00214f84xb1vab7bcpw"
}
},
{
@@ -14097,15 +14287,15 @@
"repo": "trezona-lecomte/coverage",
"unstable": {
"version": [
- 20180227,
- 457
+ 20191008,
+ 2203
],
"deps": [
"cl-lib",
"ov"
],
- "commit": "c73d984168955ca0f47f44b0464aa45282df42b6",
- "sha256": "1kn61j91x4r4kc498y2jas5il4pc4qzhkj8392g2qiq5m3lbv4vl"
+ "commit": "2d9b662673a0f165c6929d8b7fb264f5ffb2ebcd",
+ "sha256": "0pdn309kcyrvb8bgzgjmy26mcgbfkr6p1d37ww6qjk9hps0jy92r"
},
"stable": {
"version": [
@@ -14485,8 +14675,8 @@
"deps": [
"seq"
],
- "commit": "308f17d914e2cd79cbc809de66d02b03ceb82859",
- "sha256": "0rf84finwlvmy0xpgyljjvnrijlmkzjyw9rh97svgxp9c1rzfk0x"
+ "commit": "903db7b1a2052f4959d934cae26ec40a3f323ed4",
+ "sha256": "15wq0z9mnx60mi9xfkvgfgsfxdbiigwxr0wqabv3n2091dbzfas4"
},
"stable": {
"version": [
@@ -14593,8 +14783,8 @@
20190717,
1024
],
- "commit": "e7e96e3b0cb69d98b4e12eda269719c9b23453ed",
- "sha256": "0zpq404x8022rybfsmp5s1kvxfalfih6i9jjp9fnq0g8j6869qp8"
+ "commit": "30ae13607c9d8174ab488ff58cd0dfe4e5cbd0c2",
+ "sha256": "0wzrlda3nvrpzghb2nkh4apdbx9fbdq5sdbasz0ym0h9m0cbyc24"
},
"stable": {
"version": [
@@ -14614,28 +14804,30 @@
"repo": "hlolli/csound-mode",
"unstable": {
"version": [
- 20190321,
- 1559
+ 20191005,
+ 807
],
"deps": [
+ "highlight",
"multi",
"shut-up"
],
- "commit": "f4bc9236bbc5a696f7ff32d9402749536a332546",
- "sha256": "0ds6cigm3pncsa5blqzfgisjn9v898ayj6nq2va6ssg73k0qfx1r"
+ "commit": "7d3f78477c725719be9c4a98b403a5aa409e4202",
+ "sha256": "154xnfspbx2fsk32h34ljw7mzsbsdymscmi0rqdc6r9bbbwapwqw"
},
"stable": {
"version": [
0,
2,
- 0
+ 1
],
"deps": [
+ "highlight",
"multi",
"shut-up"
],
- "commit": "5a892e6ad72e7844e8e14c0da04fcb6bc125fe5e",
- "sha256": "1gzg2r7agllz2asp7dbxykydpnw3861whs2pfhr3fwwb39xf1pva"
+ "commit": "389be230aecfea03e8043e8ea6884ea21ea9230b",
+ "sha256": "1c88ak0jaj51fwiqniqxd7xyk23wjl9m57znzm8j267ld8g12znp"
}
},
{
@@ -14646,11 +14838,11 @@
"repo": "omajid/csproj-mode",
"unstable": {
"version": [
- 20190514,
- 1858
+ 20191012,
+ 49
],
- "commit": "889334f8cd08dc79d133149b4504e0e001f5a769",
- "sha256": "0j330rrj6abr7xay1h2kajwa22npij0fdh30fk5z7zgas7jz735h"
+ "commit": "95e797af7cc30d4675247b64496c39b77b82e18e",
+ "sha256": "08cxkvq7k14lixavv7nwi5kmmxqvkgmqr4i46ihsgv7jcmxyy8gx"
}
},
{
@@ -14806,19 +14998,19 @@
"repo": "maurooaranda/ctune",
"unstable": {
"version": [
- 20190709,
- 1309
+ 20190914,
+ 1305
],
- "commit": "ae298d617237c65ddebc52d236230be11fd4126d",
- "sha256": "1w6rljq4aqr7m9j18s7zaw7alllxmk819938pzmgl9pkjscmva0k"
+ "commit": "d7643461f5aa33cc04e4d808123e4ed1d85500ee",
+ "sha256": "03gby644xqah7q9sjba9w6c7askc1s7ka4bx814x6vrlla6089h4"
},
"stable": {
"version": [
0,
- 1
+ 2
],
- "commit": "5633024d14957cd6eff03574b2044bb8e9b55710",
- "sha256": "1gxhjgh4rs1gnva3a33wr2si594r4qywv20087hfbjlgli7114n0"
+ "commit": "d7643461f5aa33cc04e4d808123e4ed1d85500ee",
+ "sha256": "03gby644xqah7q9sjba9w6c7askc1s7ka4bx814x6vrlla6089h4"
}
},
{
@@ -15003,11 +15195,11 @@
"repo": "the-frey/cyberpunk-2019",
"unstable": {
"version": [
- 20190722,
- 1332
+ 20191008,
+ 1133
],
- "commit": "5b30794c4f906da6e48600ffc56443151cae45d1",
- "sha256": "1vb04zff9231yvlxflgp6qicpjxqp40gzgpp70b4rrffbfk6hays"
+ "commit": "7e40c37210c363b2819fd9bb98a73101d7a3c206",
+ "sha256": "0fgh39lyq49b4zm10fiqhqzafwrg2vmpfn8k1frdkadansq4jl7z"
}
},
{
@@ -15131,8 +15323,8 @@
20190111,
2150
],
- "commit": "00c1dc96af0e44741dc777f96a2eb5769f572bb3",
- "sha256": "0hkh3844kaawhqh90cqpskh9ifm6cs6i3d2bwkbrrjrkyig9qp38"
+ "commit": "a32a29e8aaa688e0507d374ab47e641eb1a427c4",
+ "sha256": "1ry1jcdkl0mcjlpa1lp2mdrp03mcrvkvx5p3y4f4d6h4bjk5zk65"
},
"stable": {
"version": [
@@ -15167,11 +15359,11 @@
"repo": "Emacs-D-Mode-Maintainers/Emacs-D-Mode",
"unstable": {
"version": [
- 20190826,
- 2244
+ 20191009,
+ 903
],
- "commit": "f3843276e235c6b633ba5367f78d74fe7c04e244",
- "sha256": "066kjyvginjp2cqmdi8ybrr558074m8wqd0jrwsicn4dps3njvcn"
+ "commit": "cfd1d0869d51b7548b3fb738b2f2593c76533d44",
+ "sha256": "0vkl470vvmxap8ca773a0jvjvalmvdbbax3qvgjdclp54ml75al4"
},
"stable": {
"version": [
@@ -15229,11 +15421,11 @@
"repo": "cbowdon/daemons.el",
"unstable": {
"version": [
- 20190202,
- 1528
+ 20190923,
+ 1644
],
- "commit": "fd7925b0c113e5bad2e4692430ce049405794910",
- "sha256": "07l8k41ly92m3wkzlzyb9nmq4pd34xkpn7cjrdap7zfppd3iiq2r"
+ "commit": "fac6c8bdd295138ddfc830dd94637c3e45a0823e",
+ "sha256": "1mpbshib5il4sxricirqlx37cy2kcfmd3x1szg7xk7i3ghayp0df"
},
"stable": {
"version": [
@@ -15298,8 +15490,8 @@
"repo": "jyp/dante",
"unstable": {
"version": [
- 20190826,
- 1656
+ 20191004,
+ 1233
],
"deps": [
"company",
@@ -15310,8 +15502,8 @@
"lcr",
"s"
],
- "commit": "a25ae9e5b5425cffdd88d498777e90ea8655fa37",
- "sha256": "1ziw3snbs2z2cg8a3jbyjd48qkgrkzs4bh8lrbs0h2c87nzldvhd"
+ "commit": "38b589417294c7ea44bf65b73b8046d950f9531b",
+ "sha256": "1mnmn635552zlwd4zr68jbvdjipl6gi4mi6wiyck28fsmq8kw96h"
},
"stable": {
"version": [
@@ -15339,8 +15531,8 @@
"repo": "emacs-lsp/dap-mode",
"unstable": {
"version": [
- 20190823,
- 1240
+ 20191019,
+ 1707
],
"deps": [
"bui",
@@ -15351,8 +15543,8 @@
"s",
"tree-mode"
],
- "commit": "368a0ac922d03b6ad0d2d782823ef30b3072866a",
- "sha256": "0zml4kskwz01myki3acbfrfqzgwyw1bsvppijmfi4d24jk04lydk"
+ "commit": "dd71e3fefb40f84d13d7630c6233c6c768d1134b",
+ "sha256": "0s0a9n30bzf70p512r0hgipx5b7jrphnj3r2r6b6xva4ndbp7laj"
},
"stable": {
"version": [
@@ -15604,11 +15796,11 @@
"repo": "magnars/dash.el",
"unstable": {
"version": [
- 20190814,
- 2006
+ 20191024,
+ 1908
],
- "commit": "11907f4592ff1813536366d54245d3ecf6b99198",
- "sha256": "0lzy7r5wvr1b4m3wg03l3q90wga8gl6j4gbmw66kq8pg8zg1rvqr"
+ "commit": "9631947f2fbeed58b1d07a3ebc1340a3626b2823",
+ "sha256": "0mbhi7rzahsl0i8i8ifga39f7s4z4ppagr52cs28xldkc3344ahf"
},
"stable": {
"version": [
@@ -15628,11 +15820,11 @@
"repo": "xuchunyang/dash-alfred.el",
"unstable": {
"version": [
- 20190720,
- 415
+ 20191024,
+ 450
],
- "commit": "ec8d9970fa00ee38bca798673c10cae44419541d",
- "sha256": "1asa3cmncl2jvc89jzlvb4karpc4zdihsjvig0zjia6nbj46pqsr"
+ "commit": "fcd21bd6c7eb5cd31377be970406ff3d2454bd5c",
+ "sha256": "0cvkj0d45aan6g5c7930v9syp0m3l1w6zkdgsdvbbiav0i6kpqrx"
}
},
{
@@ -15683,8 +15875,8 @@
"deps": [
"dash"
],
- "commit": "11907f4592ff1813536366d54245d3ecf6b99198",
- "sha256": "0lzy7r5wvr1b4m3wg03l3q90wga8gl6j4gbmw66kq8pg8zg1rvqr"
+ "commit": "9631947f2fbeed58b1d07a3ebc1340a3626b2823",
+ "sha256": "0mbhi7rzahsl0i8i8ifga39f7s4z4ppagr52cs28xldkc3344ahf"
},
"stable": {
"version": [
@@ -15707,14 +15899,14 @@
"repo": "emacs-dashboard/emacs-dashboard",
"unstable": {
"version": [
- 20190721,
- 504
+ 20191009,
+ 1129
],
"deps": [
"page-break-lines"
],
- "commit": "7a71e6ca4c32fdadde0c8624ea4e2e7c11474e7d",
- "sha256": "09fgzw93x90bhq918p4i8hrfy8yxyp236rc118cr6hma9bh05hii"
+ "commit": "224fb2cb067d0f1f95fbbe8aa4073154cd255410",
+ "sha256": "1ndffcfhavb1pa8f2g8mbbi8w2386r1av5dfns1gz9fdzi6pqlz4"
},
"stable": {
"version": [
@@ -16032,16 +16224,16 @@
"repo": "Wilfred/deadgrep",
"unstable": {
"version": [
- 20190807,
- 2125
+ 20191002,
+ 2
],
"deps": [
"dash",
"s",
"spinner"
],
- "commit": "329119c65126f7917d3910bc584f4191ba8f21ac",
- "sha256": "0fxf7gq9sjfkgpdfqx10w3l3nd4rwa8kv9plyxk1fqacb3s5m6ai"
+ "commit": "e1ea4a358cfdac7551d0c6bf6ae70a4e191c1528",
+ "sha256": "161mb7kyr70k24kl25lms8v8b87fi5q66zj9hlbhzwksdxpa9z30"
},
"stable": {
"version": [
@@ -16464,8 +16656,8 @@
20190701,
1306
],
- "commit": "a3707e9fcf4371fe586e0d35a79331d1cf7309c9",
- "sha256": "01xd5hhk66firnnmc18fa87ialcn1cr8b1vhgjrfa1p87hf496s1"
+ "commit": "d2706dd2d83cf9f3672a74b0b3fc490cc84b0f78",
+ "sha256": "1ymxxa1jpcg6c0wwxz8qi453bgik07yh297fsf4a03hh07rpx8a0"
},
"stable": {
"version": [
@@ -16554,14 +16746,14 @@
"repo": "psibi/dhall-mode",
"unstable": {
"version": [
- 20190526,
- 2113
+ 20191006,
+ 2324
],
"deps": [
"reformatter"
],
- "commit": "1b71e8e7123647761d8f35916c06b7280b2929ea",
- "sha256": "12xpzaby75fczxj885ij9wgrc9pn05mg5s7abgfr1irvkq7s467n"
+ "commit": "ef4d33debe224c6ba37e51a29b9dc8b74f20f1c2",
+ "sha256": "1232y2k4l3bsz90pgis78zxmrw7jv09dfaip21yc1w4vpxfyr384"
}
},
{
@@ -16690,6 +16882,30 @@
"sha256": "05xfgn9sabi1ykk8zbk2vza1g8pdrg08j5cb58f50nda3q8ndf4s"
}
},
+ {
+ "ename": "didyoumean",
+ "commit": "6030fcde06d23b98b0c81d40e1cdb5eb4412b9a1",
+ "sha256": "0hfd6kgqry0mcg77lqf0rvcb9clhjh7krq41hlz4wkrjyw0xbngg",
+ "fetcher": "gitlab",
+ "repo": "kisaragi-hiu/didyoumean.el",
+ "unstable": {
+ "version": [
+ 20191020,
+ 531
+ ],
+ "commit": "4a6049f2de36801e0a50e93b17a375501f16cf28",
+ "sha256": "0plwn23h96m71vx0jxilnl6nj7lsq4mpjv8mjaiankrxhvjcv6f0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 0
+ ],
+ "commit": "6d0c4203eb192d73d89261b3a9bad52951e394af",
+ "sha256": "1rdmhsrlqn19a140i3099fp7f9wnlglp760rnrjp5p840wzfm74q"
+ }
+ },
{
"ename": "diff-hl",
"commit": "855ea20024b606314f8590129259747cac0bcc97",
@@ -16940,6 +17156,21 @@
"sha256": "0qpgfgp8hrzz4vdifxq8h25n0a0jlzgf7aa1fpy6r0080v5rqbb6"
}
},
+ {
+ "ename": "diminish-buffer",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "1z0ini177r9dkn4bpdpcmyi014a3444blij8izvpj31bqkyckmqf",
+ "fetcher": "github",
+ "repo": "jcs-elpa/diminish-buffer",
+ "unstable": {
+ "version": [
+ 20190921,
+ 1647
+ ],
+ "commit": "e137baa5e258a7938c713253fc9cc63f8674f841",
+ "sha256": "03068nyfb3cz0lz8z3qcwjlsvqaw9dfg3g8w13gmpwsmxaxlbv3i"
+ }
+ },
{
"ename": "dimmer",
"commit": "8ae80e9202d69ed3214325dd15c4b2f114263954",
@@ -16948,11 +17179,11 @@
"repo": "gonewest818/dimmer.el",
"unstable": {
"version": [
- 20180218,
- 411
+ 20191024,
+ 1711
],
- "commit": "d033fdda154e688e45cca35902dbff9915351b98",
- "sha256": "1d457029zyabfjhzrgayibdmxfmia5yr7rqn50kc16k3aavw32f7"
+ "commit": "52652c54f2714ec931f3fc3709c66b109b1b81e2",
+ "sha256": "14s7pc2sac50vai7clxcxws3hyrcskimd8byp43q4a3fhqsjys93"
},
"stable": {
"version": [
@@ -17058,8 +17289,8 @@
"dash",
"dired-hacks-utils"
],
- "commit": "886befe113fae397407c804f72c45613d1d43535",
- "sha256": "1cvibg90ggyrivpjmcfprpi2fx7dpa68f8kzg08s88gw5ib75djl"
+ "commit": "ae39981d7cc58206cfeb377d6621bdd9000fd472",
+ "sha256": "0q4fk5cg04pj83kpn1mvfqsjsr99ffqxayfnb7vcgdc33g19afjv"
}
},
{
@@ -17078,8 +17309,8 @@
"dired-hacks-utils",
"f"
],
- "commit": "886befe113fae397407c804f72c45613d1d43535",
- "sha256": "1cvibg90ggyrivpjmcfprpi2fx7dpa68f8kzg08s88gw5ib75djl"
+ "commit": "ae39981d7cc58206cfeb377d6621bdd9000fd472",
+ "sha256": "0q4fk5cg04pj83kpn1mvfqsjsr99ffqxayfnb7vcgdc33g19afjv"
}
},
{
@@ -17205,8 +17436,8 @@
"dired-hacks-utils",
"f"
],
- "commit": "886befe113fae397407c804f72c45613d1d43535",
- "sha256": "1cvibg90ggyrivpjmcfprpi2fx7dpa68f8kzg08s88gw5ib75djl"
+ "commit": "ae39981d7cc58206cfeb377d6621bdd9000fd472",
+ "sha256": "0q4fk5cg04pj83kpn1mvfqsjsr99ffqxayfnb7vcgdc33g19afjv"
}
},
{
@@ -17223,8 +17454,8 @@
"deps": [
"dash"
],
- "commit": "886befe113fae397407c804f72c45613d1d43535",
- "sha256": "1cvibg90ggyrivpjmcfprpi2fx7dpa68f8kzg08s88gw5ib75djl"
+ "commit": "ae39981d7cc58206cfeb377d6621bdd9000fd472",
+ "sha256": "0q4fk5cg04pj83kpn1mvfqsjsr99ffqxayfnb7vcgdc33g19afjv"
}
},
{
@@ -17350,8 +17581,8 @@
"dash",
"dired-hacks-utils"
],
- "commit": "886befe113fae397407c804f72c45613d1d43535",
- "sha256": "1cvibg90ggyrivpjmcfprpi2fx7dpa68f8kzg08s88gw5ib75djl"
+ "commit": "ae39981d7cc58206cfeb377d6621bdd9000fd472",
+ "sha256": "0q4fk5cg04pj83kpn1mvfqsjsr99ffqxayfnb7vcgdc33g19afjv"
}
},
{
@@ -17369,8 +17600,8 @@
"dash",
"dired-hacks-utils"
],
- "commit": "886befe113fae397407c804f72c45613d1d43535",
- "sha256": "1cvibg90ggyrivpjmcfprpi2fx7dpa68f8kzg08s88gw5ib75djl"
+ "commit": "ae39981d7cc58206cfeb377d6621bdd9000fd472",
+ "sha256": "0q4fk5cg04pj83kpn1mvfqsjsr99ffqxayfnb7vcgdc33g19afjv"
}
},
{
@@ -17417,8 +17648,8 @@
"dash",
"dired-hacks-utils"
],
- "commit": "886befe113fae397407c804f72c45613d1d43535",
- "sha256": "1cvibg90ggyrivpjmcfprpi2fx7dpa68f8kzg08s88gw5ib75djl"
+ "commit": "ae39981d7cc58206cfeb377d6621bdd9000fd472",
+ "sha256": "0q4fk5cg04pj83kpn1mvfqsjsr99ffqxayfnb7vcgdc33g19afjv"
}
},
{
@@ -17436,8 +17667,8 @@
"dash",
"dired-hacks-utils"
],
- "commit": "886befe113fae397407c804f72c45613d1d43535",
- "sha256": "1cvibg90ggyrivpjmcfprpi2fx7dpa68f8kzg08s88gw5ib75djl"
+ "commit": "ae39981d7cc58206cfeb377d6621bdd9000fd472",
+ "sha256": "0q4fk5cg04pj83kpn1mvfqsjsr99ffqxayfnb7vcgdc33g19afjv"
}
},
{
@@ -17448,11 +17679,11 @@
"repo": "Vifon/dired-recent.el",
"unstable": {
"version": [
- 20180921,
- 2238
+ 20191004,
+ 1500
],
- "commit": "7c5a818ab88fdfa779674931cc6d9466308fcd86",
- "sha256": "1pxa17rxc43yam0j8xi7ji8kxv0jq96jk0j3p3brj9nss2gfw48f"
+ "commit": "5c799f96da08a0a3200cb5f609baf6c184f558ea",
+ "sha256": "0kc97v80rh10ksfw49pp551ay0b1apwi6ba66rwbyix50d7drimw"
}
},
{
@@ -17478,11 +17709,11 @@
"url": "https://git.sr.ht/~jakob/dired-rmjunk",
"unstable": {
"version": [
- 20190526,
- 2029
+ 20191007,
+ 1232
],
- "commit": "6a9fa6a35498e53e8c57282e3b08dedc896d880d",
- "sha256": "0kpkd7qasrb303d0b01d62r82prhrmaasxqa14nf5lh01c213nr4"
+ "commit": "92af5fcc2bd0bc3826f4ce238a850e9a362533a4",
+ "sha256": "0720lnnm0sjf8yazr0xjwfrzqwia283jj3c6hcbgfp5l0z162m5b"
},
"stable": {
"version": [
@@ -17532,14 +17763,26 @@
"repo": "jojojames/dired-sidebar",
"unstable": {
"version": [
- 20190516,
- 159
+ 20191024,
+ 116
],
"deps": [
"dired-subtree"
],
- "commit": "2c742326a6b7a76e36666586809aaf5efa150b3f",
- "sha256": "0s2d8lirv8s9az8a7g97yzg7na2n1340a8vg6zja315d43qljis9"
+ "commit": "21ccb6723bea69f2e2ca25998268d8a039f904cc",
+ "sha256": "0mck4qk6srbbf8xnn2sg11j822z4ybxvgavvy402d5sli515i8ca"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "dired-subtree"
+ ],
+ "commit": "347f56480228c2aac97e14f4f5a762c4582d1323",
+ "sha256": "1ahmvbwwdnjddn8qk6gq5gjfkvi1mvm13a968n7zpcpnphk6ygzb"
}
},
{
@@ -17581,8 +17824,8 @@
"dash",
"dired-hacks-utils"
],
- "commit": "886befe113fae397407c804f72c45613d1d43535",
- "sha256": "1cvibg90ggyrivpjmcfprpi2fx7dpa68f8kzg08s88gw5ib75djl"
+ "commit": "ae39981d7cc58206cfeb377d6621bdd9000fd472",
+ "sha256": "0q4fk5cg04pj83kpn1mvfqsjsr99ffqxayfnb7vcgdc33g19afjv"
}
},
{
@@ -17643,8 +17886,8 @@
20190629,
231
],
- "commit": "ec17789d2f72355e0fb6e31029c6ffa686337e2e",
- "sha256": "1blnib2ckljdxqpn0fnihyn9akc1pm8zbfw4hqy0xz2xqmyfqxi1"
+ "commit": "d5aa50a5269d7374bc8ea981d3871729424d165d",
+ "sha256": "0jwzlf0nhn5699l5xjhszix0y1539zdxyy6434srf31cgr7q84cw"
},
"stable": {
"version": [
@@ -17686,14 +17929,14 @@
"repo": "wbolster/emacs-direnv",
"unstable": {
"version": [
- 20190622,
- 1853
+ 20191016,
+ 1907
],
"deps": [
"dash"
],
- "commit": "fcec20c52fc37008d40a07c6dd0818c69e8be5f2",
- "sha256": "0r1ryz1swafl1s1bwcwnc1wm5nga2kma0059x132rsglm4bla41n"
+ "commit": "fd0b6bbd5e3eaf6aa48bccd4a1ff3048bfb2c69b",
+ "sha256": "0py0if1wl61y6f55s4p8y11rjvrgx3yk2v5n1q2xl3gg7f4ra136"
},
"stable": {
"version": [
@@ -18011,6 +18254,21 @@
"sha256": "0r560bpgw5p2pfcgkgcrlpp1bprv1f23dl4y5fjk06dg93fgaysa"
}
},
+ {
+ "ename": "dispwatch",
+ "commit": "580cee72ac9871f8f256069b371f7fb66367a048",
+ "sha256": "1cq5lbh3r9jjwixn2q30gryy4j4l8jb70nkhsjbaln1c3jdwrf9p",
+ "fetcher": "github",
+ "repo": "mnp/dispwatch",
+ "unstable": {
+ "version": [
+ 20190903,
+ 356
+ ],
+ "commit": "04e7ecb52636e27a8e2e670c6e8977c12ed989e6",
+ "sha256": "0yv4gl86z9wx81n1hadha01iqcinp2c3414hg5iypv2j7n129kri"
+ }
+ },
{
"ename": "dist-file-mode",
"commit": "dd10fbed2810a642600dba9dfe320fa6299e6d34",
@@ -18083,14 +18341,14 @@
"repo": "unhammer/dix",
"unstable": {
"version": [
- 20181210,
- 1200
+ 20191023,
+ 1357
],
"deps": [
"cl-lib"
],
- "commit": "b973de948deb7aa2995b1895e1e62bbe3129b5a5",
- "sha256": "1bjxyidcp7y309asbk4pfb4mzgb8j62fmp3w3zl2nahdgv1rja45"
+ "commit": "466df0a7f5ab6ab19150bef92f7d1aac0dec2467",
+ "sha256": "1gb21rsczwcwhqc9bpw77zikwr2ycqmvks6n0y8mdrj3kc6qvzgc"
},
"stable": {
"version": [
@@ -18120,8 +18378,8 @@
"dix",
"evil"
],
- "commit": "b973de948deb7aa2995b1895e1e62bbe3129b5a5",
- "sha256": "1bjxyidcp7y309asbk4pfb4mzgb8j62fmp3w3zl2nahdgv1rja45"
+ "commit": "466df0a7f5ab6ab19150bef92f7d1aac0dec2467",
+ "sha256": "1gb21rsczwcwhqc9bpw77zikwr2ycqmvks6n0y8mdrj3kc6qvzgc"
},
"stable": {
"version": [
@@ -18249,10 +18507,10 @@
},
{
"ename": "djangonaut",
- "commit": "0c1281f59add99abf57bc858d6e0f9b2ae5b3c5c",
- "sha256": "0038zqazzhxz82q8l1phxc3aiiwmzksz9c15by9v0apzwpmdkj38",
+ "commit": "c756ccbae044bc23131060355532261aa9a12409",
+ "sha256": "1ys0s8hx8a8zykwynpan1h95v9fl87m7hlh8zhcg42kzd7b09px2",
"fetcher": "github",
- "repo": "proofit404/djangonaut",
+ "repo": "pythonic-emacs/djangonaut",
"unstable": {
"version": [
20180727,
@@ -18358,14 +18616,14 @@
"repo": "lujun9972/el-dmenu",
"unstable": {
"version": [
- 20190706,
- 951
+ 20190908,
+ 44
],
"deps": [
"cl-lib"
],
- "commit": "93c09c04441ad96902ba2aab2bdb556f7e34a53b",
- "sha256": "0dm9z05980l7z2k4p0j5n6f4sis1va5am3hk1zsaa9z7fvhpbci3"
+ "commit": "e8cc9b27c79d3ecc252267c082ab8e9c82eab264",
+ "sha256": "098ncygms1r33zhjlq4fj2p4jc91v5whqrm3fazzdk7sd6dilf25"
}
},
{
@@ -18376,11 +18634,11 @@
"repo": "jhgorrell/dna-mode-el",
"unstable": {
"version": [
- 20170804,
- 814
+ 20191001,
+ 2108
],
- "commit": "471d374de22c33eaddd8e41dd8ae29753fab2f6a",
- "sha256": "05zsaypyavyn7gs0jk63chkxkm2rl4nbrqgv6zxrbqcar7gv86am"
+ "commit": "7a48393fcf0015eed2368fcb89b3091c9d029dc4",
+ "sha256": "05p1mllp7vgk69078gn6hc0vx5hfqz6k81i4ghkfkxr5fdm5fdk5"
}
},
{
@@ -18428,8 +18686,8 @@
"repo": "Silex/docker.el",
"unstable": {
"version": [
- 20190813,
- 1431
+ 20191005,
+ 650
],
"deps": [
"dash",
@@ -18439,8 +18697,8 @@
"s",
"tablist"
],
- "commit": "fe74a499ce3246fb9a7d72e6931864b94ce5261d",
- "sha256": "1prxz9fy9ca6lrv3qff408igxc1hic2laz528ba9mzyr5bc9qsq0"
+ "commit": "5027a3d541b1dcbb2f7ec0bac04a30dceeca7ce8",
+ "sha256": "1n4k5ar9h2a11f68nqdgmqnwpnlym5862vls89wkjqxl02ss34zn"
},
"stable": {
"version": [
@@ -18703,30 +18961,30 @@
"repo": "seagle0128/doom-modeline",
"unstable": {
"version": [
- 20190830,
- 1605
+ 20191025,
+ 624
],
"deps": [
"all-the-icons",
"dash",
"shrink-path"
],
- "commit": "b433d87f428061cc7477b444b7dc9101e575095d",
- "sha256": "0k0kdr7alxwz0zf14zz92zhacza8izzc38117x4zcixx3yrsspnx"
+ "commit": "59b1f7fe24fef9027d60942c44bfaa93df149a3d",
+ "sha256": "0jc65qxnjnid30y2ilp0a7yqa41qz9jzflp9cmky49hgwjaph33n"
},
"stable": {
"version": [
2,
- 5,
- 0
+ 6,
+ 2
],
"deps": [
"all-the-icons",
"dash",
"shrink-path"
],
- "commit": "eb3258b50399ae7a2ed2edea797238a21352ea22",
- "sha256": "1xx2zjksh93z6px89w4grycry9m8vh864m0p471q0g77r16z2prn"
+ "commit": "c7eb0fb93e11c2252dc9f1a928e26627f3f4b3a3",
+ "sha256": "1swbjrmfyq496rg03xm6vz5w00bsz06nly7mffvxy74jc3f6d5fc"
}
},
{
@@ -18737,14 +18995,14 @@
"repo": "hlissner/emacs-doom-themes",
"unstable": {
"version": [
- 20190821,
- 2117
+ 20191024,
+ 1803
],
"deps": [
"cl-lib"
],
- "commit": "470dd52ec4761a0b2c1f2c0309233e1fba04e598",
- "sha256": "1wj9f7rxr2330fqgwsaqhz5mp1247a1x3a7zr6jdnr6h819ji74p"
+ "commit": "bb587d06f883cf4362fbfb3df2f989367fccb0fe",
+ "sha256": "0k8i6xg6dg5i0kgyj73qiy5kn4aa8c2g7caijg76914dmxvm3ikc"
},
"stable": {
"version": [
@@ -18825,8 +19083,8 @@
20190325,
1917
],
- "commit": "22937754c6c4f3cfc432175de86f70e826ae7470",
- "sha256": "1pjmj0mkh0xiaggzp1xq84ckzq8hkvvmsxpvlnbsxngbz6k34sa5"
+ "commit": "215ab684a204965497c4f841b110f0621ff1f09f",
+ "sha256": "0ns51z9fmqkypnm8s0lzkglds073rlbq8n0v78s84l82bir0kwzv"
},
"stable": {
"version": [
@@ -18973,11 +19231,11 @@
"repo": "dracula/emacs",
"unstable": {
"version": [
- 20190107,
- 2016
+ 20191022,
+ 2033
],
- "commit": "66e429f4d576346661ae3a111bafaa06febc1d94",
- "sha256": "0lyy8vjzzcfcj4hm7scxl4cg4qm67rprzdj7dmyc3907yad4n023"
+ "commit": "320cc8cfc67e33c86045ef3e79b7627b91b9b517",
+ "sha256": "0pzlwxsa823sbcf2nq2lw303cld2jc2siaaiafld0qc4xasg9zyn"
},
"stable": {
"version": [
@@ -19096,15 +19354,16 @@
"repo": "pavpanchekha/dropbox.el",
"unstable": {
"version": [
- 20190714,
- 1721
+ 20190918,
+ 1629
],
"deps": [
"json",
- "oauth"
+ "oauth",
+ "request"
],
- "commit": "2a143087aff0a69a8ff4df40f87335501945346e",
- "sha256": "0xf6lsrrv4n9acbglhccikv5lrgfqmkqvz7bbw91rmwx5wvjs1f7"
+ "commit": "5e0c954a6b819fd3a22b463cce3825984f9ef691",
+ "sha256": "0z1iw5rzdgipqhx4bvshjbrqqr3wyqy75frwmz34g7s6vll1ip0a"
}
},
{
@@ -19184,8 +19443,8 @@
"repo": "dtk01/dtk",
"unstable": {
"version": [
- 20190803,
- 2120
+ 20191016,
+ 103
],
"deps": [
"cl-lib",
@@ -19193,8 +19452,8 @@
"s",
"seq"
],
- "commit": "cc5807cc38417060725f1f5ab2efca8baf074053",
- "sha256": "0vwx0s3hli1ql2rfkqcv4y7n6ln4yrp3h2a7x8vrp99h6rb6xxg0"
+ "commit": "abf5f50fd2bd2697f0c07991ab05e0132ae7f50d",
+ "sha256": "0zdmsqlb4ph9cdpl0gvvyizjdgygwdmww5vnsz3h84chzpza9x5q"
}
},
{
@@ -19220,19 +19479,19 @@
"repo": "jscheid/dtrt-indent",
"unstable": {
"version": [
- 20190128,
- 2101
+ 20191019,
+ 2141
],
- "commit": "9ab9cb9d7f391fb09f61c9289c51c36374ddbcbb",
- "sha256": "0pgf0pvqd8k4yzhdn2df9lp0y8hmlm2ccrh07jivwlccs95pcz7z"
+ "commit": "48221c928b72746d18c1e284c45748a0c2f1691f",
+ "sha256": "0jmlb54b0qrp2mr9cnbzki1vy7i0wv5y1h03ns8acwa2hmpjk30a"
},
"stable": {
"version": [
0,
- 8
+ 9
],
- "commit": "9ab9cb9d7f391fb09f61c9289c51c36374ddbcbb",
- "sha256": "0pgf0pvqd8k4yzhdn2df9lp0y8hmlm2ccrh07jivwlccs95pcz7z"
+ "commit": "48221c928b72746d18c1e284c45748a0c2f1691f",
+ "sha256": "0jmlb54b0qrp2mr9cnbzki1vy7i0wv5y1h03ns8acwa2hmpjk30a"
}
},
{
@@ -19302,8 +19561,8 @@
"repo": "jacktasia/dumb-jump",
"unstable": {
"version": [
- 20190804,
- 533
+ 20190928,
+ 1758
],
"deps": [
"dash",
@@ -19311,14 +19570,14 @@
"popup",
"s"
],
- "commit": "7ffa63cdc8481158a2dbfe4acc6719ebe7fff056",
- "sha256": "1l682xjish7v8mdkfdjqbdz464hnif15xlyrq8il6pgcq12g2hl6"
+ "commit": "34fb76982dafc62f8105c520aece4c3ceccb7307",
+ "sha256": "1f6hgrklnbadr15qnsb4icn3xa589cs3ms2jvn1fndbhv4ms2hv3"
},
"stable": {
"version": [
0,
5,
- 2
+ 3
],
"deps": [
"dash",
@@ -19326,8 +19585,8 @@
"popup",
"s"
],
- "commit": "260054500d4731c36574b6cbc519de29fdd22f43",
- "sha256": "00ph85vp8sa3k99qrdxfz4l8zx121q9xf47vvspzg26bk9l4nwin"
+ "commit": "0319569f1332641057c3e23d1e3bffb2404435a8",
+ "sha256": "1njf60264snhxrd36m4z687lqfkis0p9mmrr7cf1c8l0lfdvawxi"
}
},
{
@@ -19353,20 +19612,20 @@
"repo": "ocaml/dune",
"unstable": {
"version": [
- 20190808,
- 345
+ 20191016,
+ 1241
],
- "commit": "823a3c66d11b30333f511c03348bd4714e736f46",
- "sha256": "1fdca3rk599xfq02cihk30p29v4ng3hn3dvdzq5l90kfigpanaz9"
+ "commit": "72ed306bc42175675c0cf227c7073d3522c683da",
+ "sha256": "0m8xy6fgv33j7r414959fy4i0d0lq8pl6qfnwrzln21a5j99dvah"
},
"stable": {
"version": [
1,
11,
- 3
+ 4
],
- "commit": "1fb491280dbe7e3bc7c00bb75ca837edc538333b",
- "sha256": "0l4x0x2fz135pljv88zj8y6w1ninsqw0gn1mdxzprd6wbxbyn8wr"
+ "commit": "f7ac8f5c8fed67d31c2a63669006829263c2fe6d",
+ "sha256": "1bbicrfsrcc67v4q5qfi2vbzpqhzj5v55z9vkp6sljwnwfvm8jzr"
}
},
{
@@ -19407,14 +19666,14 @@
"repo": "harsman/dyalog-mode",
"unstable": {
"version": [
- 20190721,
- 1411
+ 20191002,
+ 1352
],
"deps": [
"cl-lib"
],
- "commit": "47f53d844b0862f7474714e1ed8f2fea5001e3f2",
- "sha256": "03qz5mrq2i52lrj045fwk1l06ax6yl2dyj271p2zp5kv1fcbph6a"
+ "commit": "4e214c1804eefde07b1dcd2ea07b8e41f33d7ee7",
+ "sha256": "1vq1fhn8x6i6wmccwiq482dbrdpn5cllkdn3v0ki0427a8gwkdal"
}
},
{
@@ -19425,11 +19684,11 @@
"repo": "dylan-lang/dylan-mode",
"unstable": {
"version": [
- 20190109,
- 300
+ 20190831,
+ 1910
],
- "commit": "9a6ad5ff83f2dfc25ce3deee9d3ef71ed53964b5",
- "sha256": "1d6krgiabkrj3mryaz79vmiqy0vkr5s8ji34yjd14v73ikzwxwkp"
+ "commit": "4801b7adcc984edfffa3f951e2c35329fae2b6e4",
+ "sha256": "1xm27fc98rj8fsfm9na1x3d7zgp8fkxf782ajvirzbbq5nj0lyma"
}
},
{
@@ -19816,28 +20075,28 @@
"repo": "masasam/emacs-easy-hugo",
"unstable": {
"version": [
- 20190729,
- 454
+ 20191013,
+ 1814
],
"deps": [
"popup",
"request"
],
- "commit": "2e2eb5720792512bb8a2ab2a7d9eb9ce86de8df9",
- "sha256": "0zram35da92gvv72fdj1mpyxasagvv0i20rrqilawyvah7kr1njg"
+ "commit": "0ff8033adc13ada55259e6c2fad27de143325917",
+ "sha256": "0hk7kcl598d43fi9k6c278syz7f11szpmi6x6v0vjaah805a07jb"
},
"stable": {
"version": [
3,
8,
- 42
+ 43
],
"deps": [
"popup",
"request"
],
- "commit": "2e2eb5720792512bb8a2ab2a7d9eb9ce86de8df9",
- "sha256": "0zram35da92gvv72fdj1mpyxasagvv0i20rrqilawyvah7kr1njg"
+ "commit": "02f7f06d9d1e66cef6df9768dc2400217f488a6f",
+ "sha256": "17l7zpc7vcn4g19q78fj1pxmh63x5xf081x4f79d1v23fnakqrdb"
}
},
{
@@ -19848,26 +20107,26 @@
"repo": "masasam/emacs-easy-jekyll",
"unstable": {
"version": [
- 20190609,
- 146
+ 20191013,
+ 750
],
"deps": [
"request"
],
- "commit": "8b83e491b0db4aa75a07662577a2526a698adc21",
- "sha256": "1y8d90b2nh6l9cxyddhdggmhl913fhlzzgqa0pabqry6fqfz51la"
+ "commit": "c6f6640848df1b73fa04cba10a7a22dc9cc49db3",
+ "sha256": "1m1xn4b6dny1h7vq99c18s8lmxps2xzh5zy8bzms241p2d5zbbvk"
},
"stable": {
"version": [
2,
2,
- 22
+ 23
],
"deps": [
"request"
],
- "commit": "9b065ac1bc5a85c6ad41a7b97553eeaa9e30c791",
- "sha256": "1pj2hafyx1lq8ifahfg0j90z72swixi1pma52j6701vrn8a5aqw6"
+ "commit": "23d95261dce28a73e4ab11b10f447bde829b8a1f",
+ "sha256": "08y6v7rz33pw2crq3lq06sp7lvg2ww9afdwa41bp5i2xrlz069x7"
}
},
{
@@ -20025,26 +20284,26 @@
"repo": "joostkremers/ebib",
"unstable": {
"version": [
- 20190718,
- 2011
+ 20191015,
+ 1716
],
"deps": [
"parsebib"
],
- "commit": "603451582c3471c90fbf795baa2f53043ce5ddb0",
- "sha256": "01s1aghyc83372nkccjfx3yn65hqx5hrxbsj1dcbb6z1y5aqbwdj"
+ "commit": "622faff85836383d8cc1a40ca65904338247785c",
+ "sha256": "0y75jdcd10l77ggxk7fd9ppkygm77iw35vscnj0yfms72qajava9"
},
"stable": {
"version": [
2,
- 16,
- 5
+ 17,
+ 3
],
"deps": [
"parsebib"
],
- "commit": "eb6e7bf8cc525c41150bf5913d965e89e1fbf48d",
- "sha256": "0jys32kvbcjrc65dwgfzz21g4fnycdhm0pybgk3akb80rv00x1vf"
+ "commit": "7a1e570e3d540e4c8d30bf1d23b62a30c1ae65a6",
+ "sha256": "1ifqa0scvq872yhvb6p6x2y8yilbnf754rdbqa69s0rvv9qzhvw9"
}
},
{
@@ -20109,11 +20368,11 @@
"repo": "abo-abo/eclipse-theme",
"unstable": {
"version": [
- 20190716,
- 916
+ 20191007,
+ 1354
],
- "commit": "0239fa7bbbb5fb61ac1e96fc772974240d2a8996",
- "sha256": "1dldf1qsf2j62i0gi9r3ax7w749yaj09q0vw5xlk49m4qpi50ga3"
+ "commit": "0381586948f4b0d56f43c4587afd618063834986",
+ "sha256": "0rzq6qfy7ssy4mmaysjw1l78xs2pgnhfl8wzad7yaig3hs71p81k"
}
},
{
@@ -20550,26 +20809,26 @@
"repo": "editorconfig/editorconfig-emacs",
"unstable": {
"version": [
- 20190703,
- 336
+ 20191025,
+ 806
],
"deps": [
"cl-lib"
],
- "commit": "f24f651245344f5f97c348246ce035843419b322",
- "sha256": "0djicwnbz7awzsnr6z1xggb9d7l83mf2h3xw3l1f9pv87m7mgndn"
+ "commit": "59c734af576b6ea505718a2294eae9f3facac477",
+ "sha256": "0v3ymgbh4ap5sw71aa7ycxd0yj4qga5ngsshd80i2cg9pn5qz0aj"
},
"stable": {
"version": [
0,
8,
- 0
+ 1
],
"deps": [
"cl-lib"
],
- "commit": "4b6c34d5d77025a11ae68462af9bf0a822a13242",
- "sha256": "1b2cpqz75pivl323bs60j5rszwi787x6vy68csycikqz9mhpmjn9"
+ "commit": "0b65d5316bcab4d76b5823ea6ecf8f5880f460d2",
+ "sha256": "1djlhkap7zddknzvjsjz0agpfsms1ih05zcpg1bikid2vs4gddyr"
}
},
{
@@ -20857,8 +21116,8 @@
20190714,
236
],
- "commit": "9fbaf81114ffd3550801457257c983a077a7e17e",
- "sha256": "0iz9hcx9s5l7c0y73ik6l7whjymgc0q4vfdr73y85cmnwfyi7fk5"
+ "commit": "65dff2c90834dda505ccd1d8401f3e86689aadef",
+ "sha256": "1mw2cjflh1r5irj0362rvg90gklrxj1b5kwcdjq9brj26g3fzpc9"
},
"stable": {
"version": [
@@ -20878,27 +21137,27 @@
"repo": "joaotavora/eglot",
"unstable": {
"version": [
- 20190819,
- 9
+ 20191024,
+ 1132
],
"deps": [
"flymake",
"jsonrpc"
],
- "commit": "7a70c977fdb6a16182d375993edd528653a2cb5d",
- "sha256": "0s48k733nyk21h22c98ckch0kcki3snn1dw5ymqx2n9gl0w18gkh"
+ "commit": "32ba9d09ec40c68b086e6ff0a2d7c3bdd8393df0",
+ "sha256": "059bm1chzxvfs46izshc2q1fgg1c0gpffasjg5lgh49vk66jmyxf"
},
"stable": {
"version": [
1,
- 4
+ 5
],
"deps": [
"flymake",
"jsonrpc"
],
- "commit": "35597d262b53bde52faa46ee6ae8c597d93114e8",
- "sha256": "1qx3ixaaaffhmbh3ifi5041lp7xp4ab4x4n1mal3wcpp70asxvdp"
+ "commit": "33a4f869972f0958c15c33b47035672b265a8b55",
+ "sha256": "1x6nlsc93scq8lidx1l5ipi7r7s0p63m2vwkl77p3v59glir15cb"
}
},
{
@@ -20932,11 +21191,11 @@
"url": "https://framagit.org/eide/eide.git",
"unstable": {
"version": [
- 20190501,
- 2122
+ 20191001,
+ 2003
],
- "commit": "0554252de694d01210e40cf071f212b6ca45e88e",
- "sha256": "1ac8408m0rqyhda22b1c6jcn62mrmpvcn5d3nr2miiv7akvykvl9"
+ "commit": "eafa97e61383ef943bd6c3f8c7d50953257d4ae1",
+ "sha256": "1gdiblh6c7wsdrsrlh933xdx74nwrda7gq860lv05lc0a5j860mj"
},
"stable": {
"version": [
@@ -20971,8 +21230,8 @@
"repo": "millejoh/emacs-ipython-notebook",
"unstable": {
"version": [
- 20190813,
- 2156
+ 20191020,
+ 1934
],
"deps": [
"auto-complete",
@@ -20985,14 +21244,15 @@
"skewer-mode",
"websocket"
],
- "commit": "a2872eff6c18a0706c531e9316c792a9fb99826f",
- "sha256": "0i182ic59wnhqmik15qsqjsqza5fn67qw18i5gvvj7dsn3v05vac"
+ "commit": "876cba2049751b39f9f12929afb75aacc034ea64",
+ "sha256": "0jy9rhh7arbg9y1yng2gk48dvk2cifmdn9wnzf0sifn8m8cld8fv"
},
"stable": {
"version": [
0,
16,
- 1
+ 2,
+ 2
],
"deps": [
"auto-complete",
@@ -21005,8 +21265,8 @@
"skewer-mode",
"websocket"
],
- "commit": "43107fc5c85722899534700daa7f5e73fe59a933",
- "sha256": "05ns2ddr012dmw3x651lr4bhn9x0vrphivymdmhzc4bsxsisbd32"
+ "commit": "4399f92b6b5d23240e8f447b36521b8db2a650a3",
+ "sha256": "12zq35ab84j6rhwnq6flp3ljm17ild95nv73mxgig9vsrvx1y57v"
}
},
{
@@ -21059,8 +21319,8 @@
"repo": "kostafey/ejc-sql",
"unstable": {
"version": [
- 20190828,
- 919
+ 20190924,
+ 1423
],
"deps": [
"auto-complete",
@@ -21069,8 +21329,8 @@
"direx",
"spinner"
],
- "commit": "5a2b3580e362841f51d262eeeeaa396fcceb4fe9",
- "sha256": "1xgppkabl2lwfqrgylab25v4pqfkhfxy780hlmsys1yha2r1167l"
+ "commit": "99f2928624e19efc4eb7736e0e722161d9781fc5",
+ "sha256": "0xqhma6l1zmmkxsb1b3pzdwjz95237r2ibkhqrqfys30wi5xkk1z"
},
"stable": {
"version": [
@@ -21153,8 +21413,8 @@
20181006,
225
],
- "commit": "e8bdc7be1a61faf61787d4a3c0b80dafc37d2ef4",
- "sha256": "09mb43cdl711dva0hv7jln35nz0r4q0m6r3zbv563s8wnqpza7ig"
+ "commit": "29b43a17559bbf38d7a1db1edd5b524cacc4401f",
+ "sha256": "011i33igq9df0bcmk938yibgj4b417ri2pz16j6klwnnbl8dqkq3"
},
"stable": {
"version": [
@@ -21544,11 +21804,11 @@
"repo": "casouri/eldoc-box",
"unstable": {
"version": [
- 20190711,
- 1226
+ 20191008,
+ 1427
],
- "commit": "8aa2b6d35a557864ff64762774fd5b4960cbeff0",
- "sha256": "08h42a3mrhcn4qi77fz2s8yz5sbsfcm8vxyc707lhj8cvl8qp9c2"
+ "commit": "033df7175d454708460818c66ad9a8c589540ca9",
+ "sha256": "16shcbq8hl2xmbzyfk727sbbxflrkpms48y715hw4iy2a2qxnbwq"
},
"stable": {
"version": [
@@ -21640,14 +21900,14 @@
"repo": "davidshepherd7/electric-operator",
"unstable": {
"version": [
- 20190710,
- 858
+ 20191005,
+ 1109
],
"deps": [
"dash"
],
- "commit": "97f600ccd9244f99ac802bf8cbd4a8241fbcb892",
- "sha256": "08dpn776jcypibi3x7mlkxcpsd0i65dws206zwjc19nl3qan4a11"
+ "commit": "71d65e4abaef5e49a9e1b8fce706ce0296f9d5e2",
+ "sha256": "168ri3wahr6zjv2dvqc3jbqih2m4d0mfzp4gqw5mss000fqmx9ns"
},
"stable": {
"version": [
@@ -21725,11 +21985,11 @@
"repo": "skeeto/elfeed",
"unstable": {
"version": [
- 20190824,
- 1213
+ 20190903,
+ 1137
],
- "commit": "63b26ee83fd58afdf8f0b3d2c04cdc9cd956772c",
- "sha256": "0m0a35210pb4yf6m8mzaq6nkl9x6fphjjqyl3dzygnmmzxkc8aw2"
+ "commit": "69b0320156cbf7e395efa670464d4651f708332f",
+ "sha256": "1nkd1ll8fjnnkqqz6x4yr7lij6kknh4mh30qf3g4kzg5gmwhbx6q"
},
"stable": {
"version": [
@@ -21826,15 +22086,15 @@
"repo": "skeeto/elfeed",
"unstable": {
"version": [
- 20190824,
- 1213
+ 20190906,
+ 2012
],
"deps": [
"elfeed",
"simple-httpd"
],
- "commit": "63b26ee83fd58afdf8f0b3d2c04cdc9cd956772c",
- "sha256": "0m0a35210pb4yf6m8mzaq6nkl9x6fphjjqyl3dzygnmmzxkc8aw2"
+ "commit": "69b0320156cbf7e395efa670464d4651f708332f",
+ "sha256": "1nkd1ll8fjnnkqqz6x4yr7lij6kknh4mh30qf3g4kzg5gmwhbx6q"
},
"stable": {
"version": [
@@ -21858,14 +22118,14 @@
"repo": "TobiasZawada/elgrep",
"unstable": {
"version": [
- 20190729,
- 811
+ 20191022,
+ 1746
],
"deps": [
"async"
],
- "commit": "7a4e8f3c99c8a50b92881f0bf0f29a3cd6098324",
- "sha256": "0v6f91y43q4hfd4rhwgwh5wqw2hmzdf1rc4rkngg1qh554ml5glz"
+ "commit": "13cfea5df14a24fe71afe6efd167caf107497698",
+ "sha256": "1g4rnc3y5ivz5ix0xvcai9wiq4kzqnv8skggq9vx1691p3s847nl"
},
"stable": {
"version": [
@@ -21936,20 +22196,20 @@
"repo": "xuchunyang/elisp-demos",
"unstable": {
"version": [
- 20190816,
- 421
+ 20191025,
+ 1021
],
- "commit": "628ade09bf24331003f7f69a3ebfa57da09288c0",
- "sha256": "0lybadq66bl4snkwph9i1y0qxln29wyfjn222ii3nfwany28cj66"
+ "commit": "0c4948c08b8616f3e24fa8b6deb758f199e12fda",
+ "sha256": "1nqkzicika1ndw0m62xjaa0szfpz7ls15m2fbhk91sqk1lwf213x"
},
"stable": {
"version": [
2019,
- 8,
- 16
+ 10,
+ 25
],
- "commit": "628ade09bf24331003f7f69a3ebfa57da09288c0",
- "sha256": "0lybadq66bl4snkwph9i1y0qxln29wyfjn222ii3nfwany28cj66"
+ "commit": "0c4948c08b8616f3e24fa8b6deb758f199e12fda",
+ "sha256": "1nqkzicika1ndw0m62xjaa0szfpz7ls15m2fbhk91sqk1lwf213x"
}
},
{
@@ -22106,14 +22366,14 @@
"repo": "elixir-editors/emacs-elixir",
"unstable": {
"version": [
- 20190422,
- 155
+ 20190831,
+ 2225
],
"deps": [
"pkg-info"
],
- "commit": "694d133e847e9a6db6abd1c19850cec6d867ccce",
- "sha256": "0fl3i8cxnrn70l68328jyhabgccmqbislkgp4k4ih5yll3plz31n"
+ "commit": "5c50dcedd890f14e0ede33b74ddf86607b037239",
+ "sha256": "0hi8ly4jplhlh4mrmwlhz44w50ccjbc4w12jkacjc82gay8m8yfa"
},
"stable": {
"version": [
@@ -22166,15 +22426,15 @@
"repo": "walseb/ellocate",
"unstable": {
"version": [
- 20190819,
- 211
+ 20190920,
+ 1407
],
"deps": [
"f",
"s"
],
- "commit": "f5b222777d063d8ba3c851dcd9a132d6f74fbe08",
- "sha256": "18cxqsxsgks7s31gmx9azsv26wdb979d24ypy44rhrwc5r4yk292"
+ "commit": "55b49500090247728d5abcd3670527a394ba16e4",
+ "sha256": "0gilc9z2mb53mp5702izdrbyjbmvij20jn8zgji1z629ckjivwh7"
}
},
{
@@ -22413,26 +22673,44 @@
"repo": "dochang/elpa-clone",
"unstable": {
"version": [
- 20190109,
- 2340
+ 20191006,
+ 1953
],
"deps": [
"cl-lib"
],
- "commit": "5dddbab4c27ec6aca541a1f8e9792617f10fc325",
- "sha256": "17lbdgwg97x8q8dbghylr2j0nwb72mpfl679qb0pl9184ih27qfc"
+ "commit": "827e2723b123618aaa32642d78c447cf2979a00a",
+ "sha256": "08psgia9vwwil16nymy0z12p823in3bxf9k7phjrmdicqqc01k42"
},
"stable": {
"version": [
0,
0,
- 7
+ 9
],
"deps": [
"cl-lib"
],
- "commit": "5dddbab4c27ec6aca541a1f8e9792617f10fc325",
- "sha256": "17lbdgwg97x8q8dbghylr2j0nwb72mpfl679qb0pl9184ih27qfc"
+ "commit": "827e2723b123618aaa32642d78c447cf2979a00a",
+ "sha256": "08psgia9vwwil16nymy0z12p823in3bxf9k7phjrmdicqqc01k42"
+ }
+ },
+ {
+ "ename": "elpa-deploy",
+ "commit": "d1708e6fa8778a79cd2423a56497140e3302b579",
+ "sha256": "1yv4sfipaxqgx3zwjfr3wzc25f59pl03snq0ja2s13r7l5kg6im8",
+ "fetcher": "github",
+ "repo": "oitofelix/elpa-deploy",
+ "unstable": {
+ "version": [
+ 20191022,
+ 718
+ ],
+ "deps": [
+ "f"
+ ],
+ "commit": "f5126a2da1e0e52981fad9c12028814be80328c2",
+ "sha256": "0s1cv983cgz8iysjllqbpbq80bcmsynqb6d3c8z177xqvvr4zaw8"
}
},
{
@@ -22467,20 +22745,20 @@
"repo": "tgvaughan/elpher",
"unstable": {
"version": [
- 20190816,
- 1414
+ 20191014,
+ 1459
],
- "commit": "40ec805063c480dfdc01c8328be12f7c8f823c9c",
- "sha256": "0g36b7pil5vihwx2v55ga82k9l31wl3w0ba0s3af27wh058zz7bq"
+ "commit": "798c375e25d988da94915f2949c51cb8669faf86",
+ "sha256": "1sp322h4m2n35q65hp9myfgh9nc53pddr5bg133n9gyp7sywq7w8"
},
"stable": {
"version": [
- 1,
- 4,
- 7
+ 2,
+ 3,
+ 6
],
- "commit": "e5471b9460610b3c3af3842c6ac009bcbf70ecac",
- "sha256": "1sf91x2spk7nkpnn7ss2vkjfzvxw83z3pw7nyvra45gvq11vmy3c"
+ "commit": "798c375e25d988da94915f2949c51cb8669faf86",
+ "sha256": "1sp322h4m2n35q65hp9myfgh9nc53pddr5bg133n9gyp7sywq7w8"
}
},
{
@@ -22506,25 +22784,24 @@
"repo": "jorgenschaefer/elpy",
"unstable": {
"version": [
- 20190725,
- 2259
+ 20191024,
+ 2007
],
"deps": [
"company",
- "find-file-in-project",
"highlight-indentation",
"pyvenv",
"s",
"yasnippet"
],
- "commit": "7acdd14eaec4b123ae1c16ead59c91adcf7f9775",
- "sha256": "182zs3b7s0n4wsz0k1wybmd3fa4x9m7q5j8n7jpbwa3m0v3vvyk7"
+ "commit": "ddc1689f9bc6719568feb522e54054f2b2cb64e8",
+ "sha256": "16m96l1krpg3d2xnbr7jc65pqvczlkdpydp9gyh1b2qmhg0hqhf3"
},
"stable": {
"version": [
1,
- 29,
- 1
+ 31,
+ 0
],
"deps": [
"company",
@@ -22534,8 +22811,8 @@
"s",
"yasnippet"
],
- "commit": "d98ee26f564e33c9acf233862734e72200bd3703",
- "sha256": "19sd5p03rkp5yibq1ilwisq8jlma02ks2kdc3swy6r27n4hy90xf"
+ "commit": "54ed6fe219689e187286c8808041b6f61718b025",
+ "sha256": "0bvmgqs3c80bhs9v5ymgadv7vk4iamha10y7rl09pixmjm4mzagk"
}
},
{
@@ -22583,8 +22860,8 @@
"repo": "emacs-elsa/Elsa",
"unstable": {
"version": [
- 20190825,
- 1513
+ 20191002,
+ 2030
],
"deps": [
"cl-lib",
@@ -22592,8 +22869,8 @@
"f",
"trinary"
],
- "commit": "fa12fcfa37f399b56c8b45323e03c3328ae4fde3",
- "sha256": "0aphgjzxm4qhpp5rc72mx7d6n7mfm1ah7gn5064j7kzdi630msjn"
+ "commit": "b43236e5e183249726b93f13e09c56a081817804",
+ "sha256": "0j0qppbhmb43nh1j1hrsyg6m0710m25i12sc9k9s2drz9wva7jc3"
}
},
{
@@ -22821,11 +23098,11 @@
"repo": "emacscollective/elx",
"unstable": {
"version": [
- 20190710,
- 1415
+ 20191021,
+ 1312
],
- "commit": "457fca9d4bb0429b08c8f4e675f8b1f3e48297e3",
- "sha256": "0vpvdnmg95nk9bmrjysbpfwbyzxhipdqh9xfphxi2n63sd0vzk7z"
+ "commit": "a37c328eac07936ccb3e3e225a764c10e81fd3db",
+ "sha256": "02dy68df31fgdw0isxckg3nysnagxfxy65kgvcndbpb8prvpm0md"
},
"stable": {
"version": [
@@ -22837,59 +23114,6 @@
"sha256": "0vpvdnmg95nk9bmrjysbpfwbyzxhipdqh9xfphxi2n63sd0vzk7z"
}
},
- {
- "ename": "emacs-setup",
- "commit": "abb7101b2d48af56af09d1dc85c540300dba7b3c",
- "sha256": "1x4rh8vx6fsb2d6dz2g9j6jamin1vmpppwy3yzbl1dnf7w4hx4kh",
- "fetcher": "github",
- "repo": "echosa/emacs-setup",
- "unstable": {
- "version": [
- 20120727,
- 1426
- ],
- "commit": "c783ec13e3b39093fffb6f6d64dccdce8ce4d375",
- "sha256": "1crpjcxwanbrd1yd4lbb5lmqwvx1mczya7ff2qr3phk497czpsqm"
- },
- "stable": {
- "version": [
- 1,
- 0
- ],
- "commit": "cc36ad5318c6c0e65d1b9ff8dff5ea2437675de2",
- "sha256": "15l3ab11vcmzqibkd6h5zqw5a83k8dmgcp4n26px29c0gv6bkpy8"
- }
- },
- {
- "ename": "emacsagist",
- "commit": "07612d46faebb28e1eeb8ddae2ac20e2dc0175f6",
- "sha256": "1cyz7nf0zxa21979jf5kdmkgwiyd17vsmpcmrw1af37ly27l8l64",
- "fetcher": "github",
- "repo": "echosa/emacsagist",
- "unstable": {
- "version": [
- 20140331,
- 1830
- ],
- "deps": [
- "cl-lib"
- ],
- "commit": "aba342ba59c254a88017f25e9fb7a8cd6f2fda83",
- "sha256": "0ciqxyahlzaxq854jm25zbrbmrhcaj5csdhxa0az9crwha8wkmw2"
- },
- "stable": {
- "version": [
- 1,
- 0,
- 0
- ],
- "deps": [
- "cl-lib"
- ],
- "commit": "aba342ba59c254a88017f25e9fb7a8cd6f2fda83",
- "sha256": "0ciqxyahlzaxq854jm25zbrbmrhcaj5csdhxa0az9crwha8wkmw2"
- }
- },
{
"ename": "emacsc",
"commit": "acc9b816796b9f142c53f90593952b43c962d2d8",
@@ -22898,20 +23122,20 @@
"repo": "knu/emacsc",
"unstable": {
"version": [
- 20161028,
- 1706
+ 20190917,
+ 1102
],
- "commit": "421e0c567358769e32f670ae8e949d99abae0c28",
- "sha256": "0zmb1qdbdlrycari1r1g65c9px357wz4f2gvmcacg83504mmf3d8"
+ "commit": "57940b93881efabb375df18093b99800bfb5d5f7",
+ "sha256": "032g44dad90cas2b80cxhzbim2sxd8rliyxf65ccfrqi1xg3vkff"
},
"stable": {
"version": [
1,
- 2,
- 20131027
+ 3,
+ 20190917
],
- "commit": "69607bdc3a0c070e924a3bcac93180f917992368",
- "sha256": "1r6cpb7fck5znb7q7zrxcsjn7d3xiqhq8dp1ar1rsd6k4h05by4j"
+ "commit": "57940b93881efabb375df18093b99800bfb5d5f7",
+ "sha256": "032g44dad90cas2b80cxhzbim2sxd8rliyxf65ccfrqi1xg3vkff"
}
},
{
@@ -23043,6 +23267,24 @@
"sha256": "1c84gxr1majqj4b59wgdy3lzm3ap66w9qsrnkx8hdbk9895ak81g"
}
},
+ {
+ "ename": "emacsql-sqlite3",
+ "commit": "5a25cf38b4f39b1c4d259143f1586fdad605b101",
+ "sha256": "06zm6vs6sry2lwksikxp0rjyvs1rgiqyapyw7m8hgy336h810v84",
+ "fetcher": "github",
+ "repo": "cireu/emacsql-sqlite3",
+ "unstable": {
+ "version": [
+ 20190926,
+ 1542
+ ],
+ "deps": [
+ "emacsql"
+ ],
+ "commit": "e3c434ac212d77f112d4dc9e70784ed2ac48c649",
+ "sha256": "08szs2v7cz4155d2hv7ja40n81r3ph395gr5himi496a6q9kdggr"
+ }
+ },
{
"ename": "emacsshot",
"commit": "d94b48f1d01c6f0e7bb2169a4a3181eae3f79c23",
@@ -23140,14 +23382,14 @@
"repo": "madnificent/ember-mode",
"unstable": {
"version": [
- 20190403,
- 1652
+ 20190928,
+ 1451
],
"deps": [
"cl-lib"
],
- "commit": "3510afc5023d760a66aef260ba601c15a31dc878",
- "sha256": "06y5nd2fs0xskjxhd1dn4g9y03i7xamv7jiwq8cm0c2mli5pjpr1"
+ "commit": "f0324b20b6f4e6154a7ea787a2f4d6be464a90e1",
+ "sha256": "0mlj9q1k49wjx1n7dghmpk3pbbqyl4ljgdk7j23lmrq6hbmc4vf4"
}
},
{
@@ -23284,14 +23526,14 @@
"url": "https://git.savannah.gnu.org/git/emms.git",
"unstable": {
"version": [
- 20190827,
- 1610
+ 20190905,
+ 2111
],
"deps": [
"cl-lib"
],
- "commit": "f209b44c76f4a8532783909384ae7492b8d9b6e7",
- "sha256": "1m68vpsbkcmnlj35h31qikifvah8b9gazwk5yv4wafabpg3bdav2"
+ "commit": "2bad5e6cf7442cff492cafe896c47719ae77b8fb",
+ "sha256": "1bxaa1mzx5l1pp16j14y66cywpr174y6q7rhk5qr60lfjjfgj3h6"
},
"stable": {
"version": [
@@ -23545,8 +23787,8 @@
20160726,
1924
],
- "commit": "10be897fa5165fd40fd35a89e38c759e008fa775",
- "sha256": "1aanl5dd2m8jlyq27ymhc6l9i00cpi30wwhpaf67dlvk9gk89f64"
+ "commit": "8f159e8073b9b57a07a54b549df687424eeb98ee",
+ "sha256": "1hwikjy4ah1zkb4aknc9yni3d9cqgvnh5n955bdljyp0lvpvvhpr"
},
"stable": {
"version": [
@@ -23581,15 +23823,15 @@
"repo": "iqbalansari/emacs-emojify",
"unstable": {
"version": [
- 20190809,
- 959
+ 20191017,
+ 420
],
"deps": [
"ht",
"seq"
],
- "commit": "782ac307f37239e90c56810323db4263a6469219",
- "sha256": "1x6ds9aj8yd5phkfw29jdlklqdxjl7g2gqwlm7ngb60nsk02vjvf"
+ "commit": "4c84ef9502988b52b1e296630bcee7f7c62cfc02",
+ "sha256": "11v7br4j1yx1hqqlv2phkxn3jx2qa3vrb4cq61ymfdx82v8j78jj"
},
"stable": {
"version": [
@@ -23747,11 +23989,11 @@
"repo": "zenspider/enhanced-ruby-mode",
"unstable": {
"version": [
- 20190513,
- 254
+ 20191005,
+ 2306
],
- "commit": "f334c42986e93c60fba144d732becfcbdb13bb7d",
- "sha256": "0xfdiajm2blkddxillnvn0mnik2i1q5zwgb5zc60i7p5dg1fj176"
+ "commit": "3b97c6f7c4e0e462b74d57d3a0164f6b6f9b498e",
+ "sha256": "07qk8pbwp8bk5dmcsnmyw08b6nzy7dh4asdraw8ml0rpdcqvvlxf"
},
"stable": {
"version": [
@@ -23828,48 +24070,6 @@
"sha256": "1in4wbwkxn8qfcsfjbczzk73z74w4ixlml61wk666dw0kpscgbs5"
}
},
- {
- "ename": "ensime",
- "commit": "502faab70af713f50dd8952be4f7a5131075e78e",
- "sha256": "1d8y72l7bh93x9zdj3d3qjhrrzr804rgi6kjifyrin772dffjwby",
- "fetcher": "github",
- "repo": "ensime/ensime-emacs",
- "unstable": {
- "version": [
- 20180615,
- 1330
- ],
- "deps": [
- "company",
- "dash",
- "popup",
- "s",
- "sbt-mode",
- "scala-mode",
- "yasnippet"
- ],
- "commit": "34eb11dac3ec9d1c554c2e55bf056ece6983add7",
- "sha256": "0hgbxd538xjzna97843014xkbpgs20nz7xpb6smls7rdxp5a1fpd"
- },
- "stable": {
- "version": [
- 2,
- 0,
- 2
- ],
- "deps": [
- "company",
- "dash",
- "popup",
- "s",
- "sbt-mode",
- "scala-mode",
- "yasnippet"
- ],
- "commit": "3d3ab18436ad6089496b3bce1d49c64a86965431",
- "sha256": "0p821zwpiznjh736af5avnx9abssx0zbb9xhs74yhh1mcdi1whq7"
- }
- },
{
"ename": "envdir",
"commit": "79c1497f709f6d23e4886359e09ab0456ed61777",
@@ -24125,15 +24325,15 @@
"repo": "emacsomancer/equake",
"unstable": {
"version": [
- 20190630,
- 319
+ 20191013,
+ 1847
],
"deps": [
"dash",
"tco"
],
- "commit": "7eddc025ee61b83029363e22219af228b8c20681",
- "sha256": "1c55pbqak3d02sw6z1139baxzy401b90g0gxzcc3j6sgplz6sc6w"
+ "commit": "e8561fe7fc69be9d230437cd164c8be3a7bfb911",
+ "sha256": "0ivrpgbavjdfn0451d3sl0v9vxpigpqkkjxl80kip7xwdxnlg7mw"
}
},
{
@@ -24159,25 +24359,25 @@
"repo": "atomontage/erc-crypt",
"unstable": {
"version": [
- 20190318,
- 2350
+ 20191002,
+ 2159
],
"deps": [
"cl-lib"
],
- "commit": "043b109409ee5b17bf06956fa46e1beb66d06ca4",
- "sha256": "1k4y203m7d7cbgdyin3yq70ai9yw0rfln2v61xd7xa5zxvgvj2v2"
+ "commit": "8844d418fe249daf425eb0b0e3a41abe6c0ee805",
+ "sha256": "0v2bgiw08xkscyy0rskmhwk4h9zf8jxmmv3znr65qxhzaf0l4cxb"
},
"stable": {
"version": [
1,
- 7
+ 8
],
"deps": [
"cl-lib"
],
- "commit": "1c8b1caed52a5994aab8bd4dd196881ed537d3aa",
- "sha256": "0w1b4pqipzdlkak9807k8xgzlc6vvni86ab92snm07909kby9xd0"
+ "commit": "85706aba3ea03ea15fcf53c611c4257b9ae9c7b0",
+ "sha256": "1akxy2mh11bjjhhr9vfc09dj3dy2zrz8p1jynnyc7d5iiy0ai3bc"
}
},
{
@@ -24492,8 +24692,8 @@
"deps": [
"dash"
],
- "commit": "07ae21ff7102a8d2c2f088387e114d5b49ff9b34",
- "sha256": "1mlzgn53ngswjn7vdinnrmhji9jxs5nyqlvb6xm6cznkn97xiy2a"
+ "commit": "bc86b9f63a3e7a5eb263875030d0e15d6f5f6e37",
+ "sha256": "1a3vvdlld66x0j3i7plhc0fm6mkj64mvd375j8g65nvfn6cwc3h4"
},
"stable": {
"version": [
@@ -24598,20 +24798,20 @@
"repo": "erlang/otp",
"unstable": {
"version": [
- 20190404,
- 928
+ 20191023,
+ 843
],
- "commit": "a56c1dc1fb996040ab192b0c96dc32e5ebf47a06",
- "sha256": "1dm7l2kizbg3d878b16hca5qyfaf2yvskhwlc3h2kldchw4xgrby"
+ "commit": "8342a099cf94cef4de1c845841bbffd15ecac4a6",
+ "sha256": "09c25njcaivglr3k955d8difsq447vpzjplnsfj4ikl37jfi78rs"
},
"stable": {
"version": [
22,
- 0,
- 7
+ 1,
+ 4
],
- "commit": "3967d28c05dae77db30b15e56eb4ececf4f1afef",
- "sha256": "1jk78b674cvi6fh6fj5jqqnqv4452x9bn6h79yrdm5nws1nh84am"
+ "commit": "6611181ae71422a1c66798718b37474641a090a9",
+ "sha256": "1n9pf1zxnl5dmv4xihgw7x8a1a4s1wfygr54rzsqw0bjjc86r7ym"
}
},
{
@@ -24822,8 +25022,8 @@
"repo": "dakrone/es-mode",
"unstable": {
"version": [
- 20190512,
- 1216
+ 20191024,
+ 1952
],
"deps": [
"cl-lib",
@@ -24832,8 +25032,8 @@
"s",
"spark"
],
- "commit": "8de1452e1b9181a4f6778c0aaefc011aef58b25d",
- "sha256": "0p9k30a1ar9hpw63cxr46afk7l3b7j79jpgrjcpsicd17rhjbcs8"
+ "commit": "6170a2e0976aaa66df364b949c7e109f1202a60f",
+ "sha256": "1bg6v34cid0kxqlm1qmr934nxqn5bnnd3jmll2i0gfk4w13igm69"
},
"stable": {
"version": [
@@ -24962,14 +25162,14 @@
"repo": "tom-tan/esh-help",
"unstable": {
"version": [
- 20170830,
- 411
+ 20190905,
+ 22
],
"deps": [
"dash"
],
- "commit": "8a8a9d4d9852f8bd96da3b94e95ff57097ac8ec6",
- "sha256": "02fybhmqm2qmy5qdig7xvwxazqi499pw32kh5mrsbdr14srg9fhs"
+ "commit": "417673ed18a983930a66a6692dbfb288a995cb80",
+ "sha256": "0x7d51a6ljl014zy7mi27vzcqqbcwg9z4drq29fr2ajk82mqhlgd"
},
"stable": {
"version": [
@@ -25252,14 +25452,14 @@
"repo": "aaronjensen/eslintd-fix",
"unstable": {
"version": [
- 20180429,
- 1455
+ 20190830,
+ 2116
],
"deps": [
"dash"
],
- "commit": "90e451af4daa190d6c0e29fb714b0501a7cce89a",
- "sha256": "01jysgdd4im4kf4afzwd4mm8x9vlpibb1w4yi2jvc0hglqddnr2g"
+ "commit": "98c669e3653bf94c236c54946c6faba7f782ef0d",
+ "sha256": "1v4s3srn6cc4rbb8hg3wri8c3vnijkyz582qmpyf1vd44mldfq4x"
},
"stable": {
"version": [
@@ -25402,14 +25602,14 @@
"repo": "emacs-ess/ESS",
"unstable": {
"version": [
- 20190814,
- 1054
+ 20191014,
+ 1343
],
"deps": [
"julia-mode"
],
- "commit": "5b12e56a52144b2393858236e56e1c5ea828b753",
- "sha256": "0gcz8r7mdjmrcrisqr1w4pmnyj4m76fc1qg773y2b1majkdv7rbj"
+ "commit": "d31b96e02cb4c5d71effab893da9cd81f30d0470",
+ "sha256": "0rbasf6kfyyd6r72cqm6sr791f70q95447c240dvx2kjqp1jhckm"
},
"stable": {
"version": [
@@ -25640,6 +25840,24 @@
"sha256": "0ysxblc90kjcz84siprnyxwh94scflivqbxylzkvjm7hbx93rsh1"
}
},
+ {
+ "ename": "eterm-fn",
+ "commit": "a1955059915511fd16c2d671c262dde47adf724a",
+ "sha256": "1v4kpix16a07i95lcryj65ln0l31vs9k7jfnmdyrpsf7q2mw7z0j",
+ "fetcher": "github",
+ "repo": "oitofelix/eterm-fn",
+ "unstable": {
+ "version": [
+ 20191010,
+ 2331
+ ],
+ "deps": [
+ "term"
+ ],
+ "commit": "66f3b2f6308fa2ac4d8a32be5a7e35a96e08a9ee",
+ "sha256": "1vw2ha3x2yfkb20g9hfppkrb3mp9r07shb65wsf1b99mw8m22xwi"
+ }
+ },
{
"ename": "ethan-wspace",
"commit": "9454f3a58e3416fa60d8411b0db19c408935408f",
@@ -26042,28 +26260,30 @@
"repo": "emacs-evil/evil-collection",
"unstable": {
"version": [
- 20190828,
- 2159
+ 20191025,
+ 41
],
"deps": [
+ "annalist",
"cl-lib",
"evil"
],
- "commit": "da75a170ea5485b7c0083624ca4e6cacc6aaa028",
- "sha256": "1s4sr8lfdd2k11588gzylwbwmyigs29jfmvv9h0mjmixhaz85z1w"
+ "commit": "61bb63e8f9849980913a0b616b1f53e535724af4",
+ "sha256": "0cr5r7r4ns1jy9bcf7bq5xiq6kap3knj2in6k226ykklqn5r6zk9"
},
"stable": {
"version": [
0,
0,
- 1
+ 3
],
"deps": [
+ "annalist",
"cl-lib",
"evil"
],
- "commit": "733f8d0d289fcbb58705acd1049b618826a3c011",
- "sha256": "01hr5wf693s2djs6l83nfpq6wyyws99c5nwil6hpqhvrwp4f5h95"
+ "commit": "34d515e99e911f368b335bbccc026b71b42a9821",
+ "sha256": "1737dbwv8fa9kps340jsvjyz4gd5vjf3zrdzbvjcjh56ssvdaw2w"
}
},
{
@@ -26574,15 +26794,15 @@
"repo": "emacs-evil/evil-magit",
"unstable": {
"version": [
- 20190620,
- 153
+ 20191007,
+ 1744
],
"deps": [
"evil",
"magit"
],
- "commit": "6a32e4359cbd2803bafb7134cb6df312644ac986",
- "sha256": "0i8xpa6vr30vjy3iilcx9g65srrprg1igk3f4xp6lwcc6pkc2mbj"
+ "commit": "1decef941f252bfd862be50d99bfbc0660dfa18c",
+ "sha256": "0n1c9cll6j05kj56vkdp0xnph8dha98780s0bl8ligx90abapbsl"
},
"stable": {
"version": [
@@ -26636,26 +26856,26 @@
"repo": "redguardtoo/evil-matchit",
"unstable": {
"version": [
- 20190808,
- 1056
+ 20191023,
+ 2322
],
"deps": [
"evil"
],
- "commit": "43be86d8c41841a20733718d177e8299d5379218",
- "sha256": "04kllxd7vvziwqiff3vx60a0r6805wynsla73j8xkcz4yzk8q91r"
+ "commit": "11d98debf8b051b10068137668eb54c2fede0e30",
+ "sha256": "1jppiqz1mlmz9wnxmaymg15sz6j59kghhrv95r6hkv90zwdvbqvw"
},
"stable": {
"version": [
2,
3,
- 3
+ 4
],
"deps": [
"evil"
],
- "commit": "43be86d8c41841a20733718d177e8299d5379218",
- "sha256": "04kllxd7vvziwqiff3vx60a0r6805wynsla73j8xkcz4yzk8q91r"
+ "commit": "5e92e374e6b46176d46323b884c25c44063331da",
+ "sha256": "1nflkmx08n3ya5vaipy1xg19hnqcp6f7ddsx9xjh5gl6ix2iz0az"
}
},
{
@@ -26666,15 +26886,15 @@
"repo": "gabesoft/evil-mc",
"unstable": {
"version": [
- 20190321,
- 1606
+ 20190916,
+ 348
],
"deps": [
"cl-lib",
"evil"
],
- "commit": "5205fe671803465149e578849bbbe803c23a8e4e",
- "sha256": "03pxpjjxbai4dwp84bgxh52ahh0f6ac58xi2mds1kl4v93nm7v42"
+ "commit": "1cabb869fe70cef49f7dc06f015c3ade1a969c8c",
+ "sha256": "0p83p90faq1p02lmsfs7zrnky3cyzgy8z4m83a81r9kakjzhkrnb"
},
"stable": {
"version": [
@@ -27266,14 +27486,14 @@
"repo": "emacs-evil/evil-surround",
"unstable": {
"version": [
- 20190403,
- 418
+ 20191013,
+ 1656
],
"deps": [
"evil"
],
- "commit": "5ad01dfa86424c4b22cd1dfa375f13bd8c656f43",
- "sha256": "1ajsi6xn8mliwzl24h6pp9rd91z7f20yvkphr9q7k6zpjrd7fb9q"
+ "commit": "d210e1fc2cf1c2d095471cefa700a0d1703f4ab6",
+ "sha256": "1dh716rnyirr580r5y0zvqqx7dbxh459y7r0pcvz8jck5ipiryx7"
},
"stable": {
"version": [
@@ -27387,14 +27607,15 @@
"repo": "wbolster/evil-text-object-python",
"unstable": {
"version": [
- 20181126,
- 1324
+ 20191010,
+ 1328
],
"deps": [
+ "dash",
"evil"
],
- "commit": "9a064fe6475429145cbcc3b270fcc963b67adb15",
- "sha256": "074zpm6mmr1wfl6d5xdf8jk1fs4ccpbzf4ahhkwga9g71xiplszv"
+ "commit": "39d22fc524f0413763f291267eaab7f4e7984318",
+ "sha256": "0293hfgczpjghvg28s27c5r6ll1zaq466pasrhzj71sqzyvxq7ax"
},
"stable": {
"version": [
@@ -27522,14 +27743,14 @@
"repo": "mamapanda/evil-traces",
"unstable": {
"version": [
- 20190818,
- 2331
+ 20190906,
+ 538
],
"deps": [
"evil"
],
- "commit": "4eec121e2abc0dd8f32b3d7cbdbf676302c4904a",
- "sha256": "0hqrw3jda7qci0f3xqc35x0dhc2hrkd8fddwvlgicdj628wsm7ng"
+ "commit": "1931e3ea2c64b4aec393a9c25063c330deff55e3",
+ "sha256": "12p9lfxscs182vbd4dy0m5gacs3d4kyprbz5yndpwvl8g2qsqplz"
}
},
{
@@ -27731,11 +27952,19 @@
"repo": "jjzmajic/ewal",
"unstable": {
"version": [
- 20190828,
- 1542
+ 20190911,
+ 1319
],
- "commit": "62d0789cdcddd5bfcc85b37cf7398d616eecb8f5",
- "sha256": "1b6sdz6y7iaah1nnbv5qwwkz9dgc6prp4y5gmgz4fw9w27b3lbgd"
+ "commit": "17d5fda0b912813eb754f23547ad019e55a679da",
+ "sha256": "1p7y91hdd4qn0w09k8p1xna9c9lhqxsl4vlgmm214ybbvacrgm1n"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "f822c0b26635c69a62e36cbc9696eb35b425ca61",
+ "sha256": "1qgb10mhjgpk51pwbd726pzcn48730kw9q7nfib8r4rqsgk1r9ar"
}
},
{
@@ -27746,14 +27975,25 @@
"repo": "jjzmajic/ewal",
"unstable": {
"version": [
- 20190825,
- 335
+ 20190911,
+ 1315
],
"deps": [
"ewal"
],
- "commit": "62d0789cdcddd5bfcc85b37cf7398d616eecb8f5",
- "sha256": "1b6sdz6y7iaah1nnbv5qwwkz9dgc6prp4y5gmgz4fw9w27b3lbgd"
+ "commit": "17d5fda0b912813eb754f23547ad019e55a679da",
+ "sha256": "1p7y91hdd4qn0w09k8p1xna9c9lhqxsl4vlgmm214ybbvacrgm1n"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "ewal"
+ ],
+ "commit": "f822c0b26635c69a62e36cbc9696eb35b425ca61",
+ "sha256": "1qgb10mhjgpk51pwbd726pzcn48730kw9q7nfib8r4rqsgk1r9ar"
}
},
{
@@ -27764,15 +28004,27 @@
"repo": "jjzmajic/ewal",
"unstable": {
"version": [
- 20190828,
- 1542
+ 20190911,
+ 1305
],
"deps": [
"ewal",
"spacemacs-theme"
],
- "commit": "62d0789cdcddd5bfcc85b37cf7398d616eecb8f5",
- "sha256": "1b6sdz6y7iaah1nnbv5qwwkz9dgc6prp4y5gmgz4fw9w27b3lbgd"
+ "commit": "17d5fda0b912813eb754f23547ad019e55a679da",
+ "sha256": "1p7y91hdd4qn0w09k8p1xna9c9lhqxsl4vlgmm214ybbvacrgm1n"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "ewal",
+ "spacemacs-theme"
+ ],
+ "commit": "f822c0b26635c69a62e36cbc9696eb35b425ca61",
+ "sha256": "1qgb10mhjgpk51pwbd726pzcn48730kw9q7nfib8r4rqsgk1r9ar"
}
},
{
@@ -28050,11 +28302,11 @@
"repo": "extemporelang/extempore-emacs-mode",
"unstable": {
"version": [
- 20180105,
- 621
+ 20190917,
+ 1031
],
- "commit": "ae5f40d4b0883a4519e460cd7720e5fcc3a68fa5",
- "sha256": "1f888h7xv6zz6kq38ak1vpwjrjr2sqgwpfxwb9x0ldf3kkx4wf1w"
+ "commit": "848ad0084f27b92d1cf98dabffbad29f959a642d",
+ "sha256": "00wr025php7nl33x541s9rjm99hj0jbdcmnw9ljx5hqpm04aqm7c"
}
},
{
@@ -28111,16 +28363,15 @@
"repo": "ananthakumaran/exunit.el",
"unstable": {
"version": [
- 20190511,
- 614
+ 20190919,
+ 1238
],
"deps": [
- "dash",
"f",
"s"
],
- "commit": "7aa008cb54e7935183a19d6b81d218de7ec38ca4",
- "sha256": "0zp0sdnrb5mm6k1z6zqs7s042f6n24sg1y0wx6bw35za6r5f36cr"
+ "commit": "c77b0397b80d772c98fcc34c9ab131a8350fbf40",
+ "sha256": "08lhsjmibgvd4cjrvyxhwn7cqrpd83bgsvh2xqppi9mnw1xwgzd5"
}
},
{
@@ -28131,11 +28382,11 @@
"repo": "agzam/exwm-edit",
"unstable": {
"version": [
- 20180905,
- 743
+ 20191017,
+ 107
],
- "commit": "961c0f3ea45766b888c73d7353da13d329538034",
- "sha256": "087pk5ckx753qrn6xpka9khhlp7iqlz76w7861x90av2f5cgy6fw"
+ "commit": "80c1cbecafde96a59e620d8fa7e5510a5a7bbd3d",
+ "sha256": "14qnnz3sa8ldhp8lgmvn7xh43prf6ajir90xxij3qaw85km25yi9"
}
},
{
@@ -28274,14 +28525,14 @@
"repo": "wasamasa/eyebrowse",
"unstable": {
"version": [
- 20190827,
- 1828
+ 20190928,
+ 1458
],
"deps": [
"dash"
],
- "commit": "d75e37a048718d6981c366c431b93ccbe884f356",
- "sha256": "08k6dcz2pzgv0n4rfpq0gmpzs9319h5jk5xznmh2s8y42imvp5l7"
+ "commit": "e483d35e905c2e26fac63f33c77b9e764729a364",
+ "sha256": "1y3v2cplvnnhw4ga2pw2agwdbffdjrfhjz73cfv6vaa5q8hp32vy"
},
"stable": {
"version": [
@@ -28540,19 +28791,19 @@
"repo": "WJCFerguson/emacs-faff-theme",
"unstable": {
"version": [
- 20190821,
- 1918
+ 20191018,
+ 2049
],
- "commit": "c88ed079add4e2c39401dda9fdeef96ea4ddb13c",
- "sha256": "1a0ff8xmkkhiwj5809vrxfaj4mkdcvwyw8m656l6iidijskqnmh6"
+ "commit": "1c9729d18642f45f867c46744796f831c8d85042",
+ "sha256": "004llls46rvdw0ig75bwpgh758xwcwnqxxx3bgc3xi59mbwmpk5n"
},
"stable": {
"version": [
2,
- 5
+ 8
],
- "commit": "bb331f755f44f8d6db1b35c476948a080a4a40cf",
- "sha256": "0llhsn79fp8c42hv57539k3zcyaqx0gc27hg21vq9nh8aa0jb6h2"
+ "commit": "1c9729d18642f45f867c46744796f831c8d85042",
+ "sha256": "004llls46rvdw0ig75bwpgh758xwcwnqxxx3bgc3xi59mbwmpk5n"
}
},
{
@@ -28613,6 +28864,24 @@
"sha256": "05lwcwf412m717yhwpjrswqkm8c3i7391rmiwv2k8xc1vk6dpp4g"
}
},
+ {
+ "ename": "fancy-dabbrev",
+ "commit": "1ac5a3797d9882235de984739d5a2bf122b64540",
+ "sha256": "038zyg8kmz7k2y2xfs5mmm4fh87a503yri990kyf82pqyrsj3yww",
+ "fetcher": "github",
+ "repo": "jrosdahl/fancy-dabbrev",
+ "unstable": {
+ "version": [
+ 20190921,
+ 1811
+ ],
+ "deps": [
+ "popup"
+ ],
+ "commit": "2d9c55ce0ef20cd405c597bbac8b204cfaeee77a",
+ "sha256": "0ap13sxycvwg5dxvm65qkp11816hz4vvw3828q730y9j30fizn0r"
+ }
+ },
{
"ename": "fancy-narrow",
"commit": "1e6aed365c42987d64d0cd9a8a6178339b1b39e8",
@@ -28667,6 +28936,36 @@
"sha256": "142zq0zz38j3akgc1gipqhgs05krlkig1i97pgzmi4jcqdgm3lx9"
}
},
+ {
+ "ename": "fast-scroll",
+ "commit": "1a06816fe50be692f971f08e76f687a3560baceb",
+ "sha256": "1ds8wjc2zdvr31c4c1dwrbf6al9ff3p4njli7mis85kb883k371c",
+ "fetcher": "github",
+ "repo": "ahungry/fast-scroll",
+ "unstable": {
+ "version": [
+ 20191016,
+ 327
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "3f6ca0d5556fe9795b74714304564f2295dcfa24",
+ "sha256": "08nwjyqdkp1g27jqgq7b2nd90kzsfv9mjkkjpniprhfqdqjjcp63"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 5
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "0f78d1039e5394a6b57d186189a89937453c7002",
+ "sha256": "042dkz12rcj27ymla1lg70vwg3n7vb9i5908ga6vabn7q61bxbsh"
+ }
+ },
{
"ename": "fastdef",
"commit": "f6effb2fbccc71e8a44c53138e3c21f10dc55fbc",
@@ -28884,11 +29183,11 @@
"repo": "technomancy/fennel-mode",
"unstable": {
"version": [
- 20190807,
- 17
+ 20190927,
+ 4
],
- "commit": "7f146605feeeebdf5452450662e2f3bc1e435e6f",
- "sha256": "0yr6f2gzgprkqhc22mq64mn119aljihziix712kk1vq59yx2l22f"
+ "commit": "deea7b971edf238f9018053de4e02fe931064694",
+ "sha256": "0bkpys736r70l9q7r101ghhik6lv14j303xf6sd8xk55v23wh1b8"
}
},
{
@@ -29118,14 +29417,14 @@
"repo": "technomancy/find-file-in-project",
"unstable": {
"version": [
- 20190720,
- 313
+ 20190914,
+ 524
],
"deps": [
"ivy"
],
- "commit": "85f0fc4ab29e4339732c19be314a4920888803b2",
- "sha256": "1skjbh7m0cck2rwmgzrrds51gipqf1jqghyfx15drc1n6kwivx3h"
+ "commit": "79baa7026803b3d877857493da3041ddf6eed050",
+ "sha256": "0q5lcfg7bpid8rl04c9qml062pyi6sqgdcvhrqxm9mcfyjq5zg72"
},
"stable": {
"version": [
@@ -29373,11 +29672,11 @@
"repo": "Ambrevar/emacs-fish-completion",
"unstable": {
"version": [
- 20190429,
- 822
+ 20190904,
+ 254
],
- "commit": "e5b9b65a077319dfdb2faca9ef847db3ef55d0db",
- "sha256": "1pjqnbyjmj64q5nwq1mrdxcls4fp5y0b6zqs785i0s6wdvrm4021"
+ "commit": "0a9a63e2cac24bfdf7dbedb5c6ab7faca23d3bfe",
+ "sha256": "1rp5y1hpdr08v374cvkqjb2i47lni0yl866wssm73ch9ql30y22n"
},
"stable": {
"version": [
@@ -29396,20 +29695,20 @@
"repo": "wwwjfy/emacs-fish",
"unstable": {
"version": [
- 20180827,
- 303
+ 20190921,
+ 526
],
- "commit": "35fc7c1e243a7410823088a571ecf378e9f3efa6",
- "sha256": "0rn08dm4gn0g0nz080zxm0am1z6hfkinvzqwqszv96qkxy250ghp"
+ "commit": "688c82decad108029b0434e3bce6c3d129ede6f3",
+ "sha256": "1s961nhwxpb9xyc26rxpn6hvwn63sng452l03mm2ply32b247f9p"
},
"stable": {
"version": [
0,
1,
- 4
+ 5
],
- "commit": "bac709ac1235751952d6022dddc6307d9135d096",
- "sha256": "0a74ghmjjrxfdhk4mvq6lar4w6l6lc4iilabs99smqr2fn5rsslq"
+ "commit": "688c82decad108029b0434e3bce6c3d129ede6f3",
+ "sha256": "1s961nhwxpb9xyc26rxpn6hvwn63sng452l03mm2ply32b247f9p"
}
},
{
@@ -29882,11 +30181,11 @@
"repo": "amake/flutter.el",
"unstable": {
"version": [
- 20190729,
- 444
+ 20190924,
+ 118
],
- "commit": "a5de449cd10f98e7ea4340940b7726f299a0854a",
- "sha256": "0v20yirkg04szaw0l7abq8qpqnhqlhgpm5hg5i8dks01dlczw29h"
+ "commit": "4d59cf0a08426c66c1d80c1a98d6245645b9a54d",
+ "sha256": "03x9cq4mah211379zx34dvmmdf86yc3wa9m71g7z1g1374pq036v"
}
},
{
@@ -29904,8 +30203,8 @@
"flutter",
"flycheck"
],
- "commit": "a5de449cd10f98e7ea4340940b7726f299a0854a",
- "sha256": "0v20yirkg04szaw0l7abq8qpqnhqlhgpm5hg5i8dks01dlczw29h"
+ "commit": "4d59cf0a08426c66c1d80c1a98d6245645b9a54d",
+ "sha256": "03x9cq4mah211379zx34dvmmdf86yc3wa9m71g7z1g1374pq036v"
}
},
{
@@ -29916,14 +30215,14 @@
"repo": "defaultxr/fluxus-mode",
"unstable": {
"version": [
- 20170210,
- 1941
+ 20191001,
+ 1716
],
"deps": [
"osc"
],
- "commit": "3661d4dfdaf249138e7f215f15f291c9391ede8d",
- "sha256": "1dp974qs80agx9qcq5k5awdsr8p8smv8cdwkjz2d8xfd5wq2vhh9"
+ "commit": "3d05fa15f141ac3e936f908097bb7eb6295cc367",
+ "sha256": "0axjlvhv3xwg16zkpskqp9kvb1x513jl329pmrjzazn5mdh2m8cw"
}
},
{
@@ -30015,8 +30314,8 @@
"repo": "flycheck/flycheck",
"unstable": {
"version": [
- 20190828,
- 1147
+ 20191022,
+ 1117
],
"deps": [
"dash",
@@ -30024,8 +30323,8 @@
"pkg-info",
"seq"
],
- "commit": "ea176a4f6bfebd70b71a8a5e2988b49e1a58fe52",
- "sha256": "0ys9cvhbxxq51sipk6ay13jcahgcbv869bxlhivdpjj7gmhzj5db"
+ "commit": "0eaf67211b83c062e598694d2ba4efb444dc1dc6",
+ "sha256": "1pb8clscs5gwfldnpy6bvczzpnj7j01hzr9c3p2xi1driszs35md"
},
"stable": {
"version": [
@@ -30252,14 +30551,26 @@
"repo": "ch1bo/flycheck-clang-tidy",
"unstable": {
"version": [
- 20171024,
- 808
+ 20191004,
+ 801
],
"deps": [
"flycheck"
],
- "commit": "b8ebd49693f67e08e420ba847cc88f6721ef9e3e",
- "sha256": "0fnn1baw64f7x1zjb95adryr3mfynbblwppcd6ywh7pk0sq18b80"
+ "commit": "eb82f734529380217c0cd2a53c0d74102eedc301",
+ "sha256": "14hclnacnawmcqf0s3cd84an222blfh8vhan9yyyd0wgzg8llxhh"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "130e933a7089f4523648b5f45d08a658d540d5f3",
+ "sha256": "0cqw2kfi5lcwpzvv6c39ygzhaswjmcwx55z8nmfh87syqh54wj2y"
}
},
{
@@ -30732,25 +31043,6 @@
"sha256": "07605v5insay9jgj274ysdksk4cck49y5gsqzjz7js8f6p526k75"
}
},
- {
- "ename": "flycheck-ensime",
- "commit": "c8d1ef354566c7f337c62accbd1d2f86ffcbd98a",
- "sha256": "11h7xwm8vwi8nca7yy9q0y30jcj77s07aa45xqz7n8rsqp6wdp3z",
- "fetcher": "github",
- "repo": "ncaq/flycheck-ensime",
- "unstable": {
- "version": [
- 20190212,
- 1042
- ],
- "deps": [
- "ensime",
- "flycheck"
- ],
- "commit": "9fe000e7004725bc8c3b7554237d717bca9cd9ac",
- "sha256": "0fl6p2hvcm1f5snx8a82h53kkfnbgycik0d5a7krcjgiby6w7wam"
- }
- },
{
"ename": "flycheck-flawfinder",
"commit": "e67a84d1a8c890ea56bd842549d70d9841d1e7a7",
@@ -30881,14 +31173,14 @@
"url": "https://git.deparis.io/flycheck-grammalecte/",
"unstable": {
"version": [
- 20190817,
- 935
+ 20191003,
+ 1844
],
"deps": [
"flycheck"
],
- "commit": "d1ca6d9d4d64aa343598018134506930434ac5e0",
- "sha256": "0s7kbs764nhq4nlfbbilz5clvadcyz5bi0ksrbm9kczhagisxnjv"
+ "commit": "11cc5a0480dbdd4a9fa2bc12184b3fb56efc5cf3",
+ "sha256": "1x7y0sjq1p7idzsy2bdqhdll8vj2ci45cd5jn8qgzv02kms65djp"
},
"stable": {
"version": [
@@ -30910,8 +31202,8 @@
"repo": "flycheck/flycheck-haskell",
"unstable": {
"version": [
- 20181207,
- 1646
+ 20190907,
+ 2035
],
"deps": [
"dash",
@@ -30920,8 +31212,8 @@
"let-alist",
"seq"
],
- "commit": "32ddff87165a7d3a35e7318bee997b5b4bd41278",
- "sha256": "10pgsbagq6qj4mshq5sypv0q0khck92b30sc793b4g1pfpsxvgjn"
+ "commit": "4b585264826a9f0f35d121dd52aa0e381f336d69",
+ "sha256": "1cz8yxb06acm77jlr0mk9kx79v6pnhb97p2601pik9rndr824c2a"
},
"stable": {
"version": [
@@ -30983,8 +31275,8 @@
"deps": [
"flycheck"
],
- "commit": "937f93afc0605c8e6c7cc56041a52b1312fff0fe",
- "sha256": "1r7da45kmypz1qvpj07m7q9z2bjbx6ds5cx055gq5v03gzyg6n7i"
+ "commit": "6b1386296ddf2ccc11ca8fa719dc0b2f16808424",
+ "sha256": "0bd8k3jzipm0r0242hpl2lkcdfnb367yf4xpj6r23g3y99f6f0yk"
}
},
{
@@ -31346,15 +31638,15 @@
"repo": "ALSchwalm/flycheck-nim",
"unstable": {
"version": [
- 20160715,
- 428
+ 20190927,
+ 1514
],
"deps": [
"dash",
"flycheck"
],
- "commit": "6d27349b66e44578851e6148299709d64d2bde41",
- "sha256": "08rjrh7rjx71fsxf931hhfcga7m6a8sd6bvvr4qbsmhldnzd1aa7"
+ "commit": "ddfade51001571c2399f78bcc509e0aa8eb752a4",
+ "sha256": "19xxwj66q45499s9jvw6rq8im0g7wxl9m66kq2a9ykds4v7sprlm"
}
},
{
@@ -31459,15 +31751,15 @@
"repo": "purcell/flycheck-package",
"unstable": {
"version": [
- 20161111,
- 2251
+ 20191007,
+ 51
],
"deps": [
"flycheck",
"package-lint"
],
- "commit": "31fe5d9731f30d076f14392401b3b101c9ca2260",
- "sha256": "1j2jk11cag1scy4cid89lcvjspanhpamazqggksaaadg9b71ay04"
+ "commit": "d76e04009f2548581fc9e9a84f79f1a3112f1096",
+ "sha256": "1jndjq5mnhxmjvhaay4f07p5dbz4zsqv1zhyr98v8zc5dv7qkkfk"
},
"stable": {
"version": [
@@ -31534,21 +31826,21 @@
"flycheck",
"phpstan"
],
- "commit": "e8d33c75f6ab466ac15406fac5f2db6666d79deb",
- "sha256": "1n6f4ibjdzrgll5zvikxc5gcfbpypq9nc2dhfxv011kllj22hpyc"
+ "commit": "81bcfa59d1e5708239d8c32d99cd84405449fb64",
+ "sha256": "1m4vk7v3aafj64qqs0aa9m1w8fbjziq0l6c9k4n10yr8dnm5j9aw"
},
"stable": {
"version": [
0,
3,
- 1
+ 2
],
"deps": [
"flycheck",
"phpstan"
],
- "commit": "525792fc4a9ecb5dc577a7c416e298e0c45c6183",
- "sha256": "02cgcqkgwl0rbxhndcyjd8fj57g84n8x4n9rkh671rg3r7p7c71j"
+ "commit": "de74ebfcbce53a08daf95d324d7447dede094222",
+ "sha256": "01x5gf7z0iqx601z3g4cdq6cv27aflxw5kmqrwrj0aijcb7nb9c6"
}
},
{
@@ -31728,14 +32020,14 @@
"repo": "msherry/flycheck-pycheckers",
"unstable": {
"version": [
- 20190715,
- 1807
+ 20191003,
+ 1712
],
"deps": [
"flycheck"
],
- "commit": "680ed9bc1bfb6dc043294b705f5b6d87ca5a1700",
- "sha256": "1d2caskc87kdclj6gsymnf8bxhyn4n9r9816z76hx88pn16xxqh5"
+ "commit": "c6a404cb6325ce17d682bbe24cf7f226b342860b",
+ "sha256": "0pj422carpmzsl87z272i76z35sjpjngwr5hps3jzpc1ln50rym2"
},
"stable": {
"version": [
@@ -31801,8 +32093,8 @@
"flycheck",
"rtags"
],
- "commit": "6289e66a69d0d5ff20b12da91e735d3984ad6f88",
- "sha256": "1ggdi4mgqw1cc0w6cijds7s4vb575v27g72h6md8h1jdsfv6pvrm"
+ "commit": "f2633f565fc5e7e6958993ef105225f4e68e43ba",
+ "sha256": "1bjgr7wa82ccrc25r7agfaq3iz7xlp1qchvkmkx3xy59jv4yafjz"
},
"stable": {
"version": [
@@ -33595,11 +33887,11 @@
"repo": "cadadr/elisp",
"unstable": {
"version": [
- 20190829,
- 1514
+ 20191004,
+ 1850
],
- "commit": "f2fcfc0d4e7cdb1312c5c06fd5e1820788268de3",
- "sha256": "14rfixf6948zf5ylplzmpqr15rn1kr1qc26055kbb13klyl0qj3y"
+ "commit": "5f3e67448cc98fe2875115163849acae4d9e8526",
+ "sha256": "1w0dhyr4i0nx0g70smgclcfsbv6cfilb7df330njzaqk8j2gdfws"
}
},
{
@@ -33676,8 +33968,8 @@
"repo": "magit/forge",
"unstable": {
"version": [
- 20190820,
- 826
+ 20191017,
+ 1801
],
"deps": [
"closql",
@@ -33689,8 +33981,8 @@
"markdown-mode",
"transient"
],
- "commit": "6c43971a78a08954c20992cb6b0e98a7e7295908",
- "sha256": "1hlk6jmn4w7bq0x7syrxmk2gz4dn7iswi73dixcfkv3m97qiqxd1"
+ "commit": "63cbf81f166fc71861d8e3d246df8e5ccedcb9bb",
+ "sha256": "1yf2xjx3459py6rji740jm8bmh2pv66ghnbjxsvjd4jf9kcdav83"
},
"stable": {
"version": [
@@ -33745,14 +34037,14 @@
"repo": "lassik/emacs-format-all-the-code",
"unstable": {
"version": [
- 20190830,
- 1152
+ 20191024,
+ 2151
],
"deps": [
"cl-lib"
],
- "commit": "15e9837a9e2d74bbb12fbaf1dcb400d0153754ba",
- "sha256": "0bpz3i20vkd22y16cb7cllikj0sd91km2697wmix5wjsc370nimh"
+ "commit": "a1d3ad48f21086788cd1effaf30227308a18d98f",
+ "sha256": "0xa3ajx6izb086r4gwxfsqwrlnyil6yrqgl8mhv14zfs93k7w8p6"
}
},
{
@@ -33868,6 +34160,30 @@
"sha256": "1kiflisiabc39lxi5hcazfvcwrpasl01lqsi2sri6pyrcrjyh8mf"
}
},
+ {
+ "ename": "fountain-mode",
+ "commit": "12589d1eb14bfc87d2e6f2a5ff8f5fb66b574a56",
+ "sha256": "1i55gcjy8ycr1ww2fh1a2j0bchx1bsfs0zd6v4cv5zdgy7vw6840",
+ "fetcher": "github",
+ "repo": "rnkn/fountain-mode",
+ "unstable": {
+ "version": [
+ 20191004,
+ 351
+ ],
+ "commit": "05db0789ceb658fbbed74381ba59c4583a004673",
+ "sha256": "0yibcya5v7ddkrn8dwan0bk6mmb7js8gr0h419nx4rrsgjzwd4sq"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 8,
+ 0
+ ],
+ "commit": "05db0789ceb658fbbed74381ba59c4583a004673",
+ "sha256": "0yibcya5v7ddkrn8dwan0bk6mmb7js8gr0h419nx4rrsgjzwd4sq"
+ }
+ },
{
"ename": "fraktur-mode",
"commit": "855ea20024b606314f8590129259747cac0bcc97",
@@ -34060,6 +34376,25 @@
"sha256": "051aihjdg3x22svaxhwylpi8i6s2x9j8syvsj1jgilgjjdy15l6j"
}
},
+ {
+ "ename": "frecentf",
+ "commit": "64d342c3814721f82dee8859d90b2da4192d8bc8",
+ "sha256": "1z20035iplkjan3nf3lr0jzdz6jh988rq281zbi4a5l271ll8lb9",
+ "fetcher": "git",
+ "url": "https://git.launchpad.net/frecentf.el",
+ "unstable": {
+ "version": [
+ 20191024,
+ 1342
+ ],
+ "deps": [
+ "frecency",
+ "persist"
+ ],
+ "commit": "80ca5bca1dcdc99876f28758ba4fbd3c41ad2458",
+ "sha256": "06cmpd3628hvlaqcnp8p75mk0ss2rhgk517xqfng95gn8wqmy4ah"
+ }
+ },
{
"ename": "free-keys",
"commit": "55067e899ba618d4394ad9657322c92a667a0774",
@@ -34279,8 +34614,8 @@
"deps": [
"cl-lib"
],
- "commit": "e6eb7be61c35d4a7b7d5eeb528b582639c57f08f",
- "sha256": "10ndvjwg4c77qkh0a2ab7vdkz8z6fyk5ji7ra68cq75g7gclli77"
+ "commit": "522d176762a24c8b1ed453800e21be0e5130e078",
+ "sha256": "1cnjinms4i6axmjxw26s2pnkbf9n47vx2s1c8c3b4qyjlb623cl6"
},
"stable": {
"version": [
@@ -34433,14 +34768,14 @@
"repo": "diku-dk/futhark-mode",
"unstable": {
"version": [
- 20190724,
- 2151
+ 20191020,
+ 1746
],
"deps": [
"cl-lib"
],
- "commit": "f7b674b549f19a0cf936fe56ddeac4502c7b980d",
- "sha256": "1i6hhpdz5pyv07jr3wikrajnw270fm27nmrji2rz31z8b20nn4z0"
+ "commit": "da6aa3895b5ccfad297446e9547c0604cd3c6e09",
+ "sha256": "02v508shs94w145m7j9ic04ybr26h8md9jhhcd0l2bcggpgqyvxa"
}
},
{
@@ -34454,8 +34789,8 @@
20190810,
507
],
- "commit": "57b5d0df689dd7e0958e0eba1269ae32a172cd90",
- "sha256": "1ivsy5yarapcaqrnhn6pkbipv0s83laxjlrdb3z055g0091zq8bs"
+ "commit": "56f08351c2ae91e010f6a5e810f11ae74d76deb0",
+ "sha256": "15fymhj82phj407bcnc64p16kv3nc860xbsnlnj7i8qvcnl3jpdl"
},
"stable": {
"version": [
@@ -34816,11 +35151,11 @@
"repo": "jaor/geiser",
"unstable": {
"version": [
- 20190826,
- 1736
+ 20191023,
+ 424
],
- "commit": "d7bcfde6303b420ca76d9364c6e8f2c6827112e6",
- "sha256": "01n3vxczv02vj9h7w1syq62qpnaw44wryk17ssk72ihg3zrrri6v"
+ "commit": "526d5ed4c2437d5d9a87dce67551451448bd853e",
+ "sha256": "04lw0kqyk5v3iicqajqbvnim8nc3a3539xwyd4hyg2w835pkvakr"
},
"stable": {
"version": [
@@ -34839,14 +35174,14 @@
"repo": "noctuid/general.el",
"unstable": {
"version": [
- 20190719,
- 140
+ 20191001,
+ 450
],
"deps": [
"cl-lib"
],
- "commit": "f032c3a77079487d0ea563b17ee3e5b2fb084611",
- "sha256": "0lgh5z17ag5wvvnqwagvam29cp1n1vd50amn6df02xln80bsbllx"
+ "commit": "f38fb2294bd29261374b772f765730f2fa168b3e",
+ "sha256": "1aqi5axkwfng6rm52sblf738c7rffp10sqs69dvkh2fv3ps8q28i"
}
},
{
@@ -35194,16 +35529,16 @@
"repo": "magit/ghub",
"unstable": {
"version": [
- 20190806,
- 959
+ 20191007,
+ 1420
],
"deps": [
"dash",
"let-alist",
"treepy"
],
- "commit": "7d59937d7782d0062216130a4d059b45e8396f82",
- "sha256": "1ngb61nij9gznqplwg1fmr1vq1czry759hmdibzngl4wqhxpfsjq"
+ "commit": "e19cd86ca4768a6d89285123933baa3f1460d696",
+ "sha256": "1d6f8sxlsl0fpkzwbpnaw77d1a5pkg63zfvf6a2fxir357lbdizx"
},
"stable": {
"version": [
@@ -35419,20 +35754,20 @@
"repo": "ryuslash/git-auto-commit-mode",
"unstable": {
"version": [
- 20190716,
- 1936
+ 20191008,
+ 429
],
- "commit": "e533166a228a4969cbd391734301957c9d4fe7b6",
- "sha256": "1diw1mwqy5x92a7f01vzynxcs5f2pb17d2hwx83ny2gp7k2gwfha"
+ "commit": "2f05046731330c8643fc21c40a6840d40d70fc26",
+ "sha256": "156zfq2dwm5liffjhc1yhbwwh6vvfc2m4m9shj11glbzy9ggfqsf"
},
"stable": {
"version": [
4,
- 4,
+ 5,
0
],
- "commit": "075e5f9ded66c2035581a7b216896556cc586814",
- "sha256": "0psmr7749nzxln4b500sl3vrf24x3qijp12ir0i5z4x25k72hrlh"
+ "commit": "3db70af7d3659d1fe0ed2edf34cae23708a6d511",
+ "sha256": "1w3v9pmlmdxl4pglsb6j0igp13lbzg5bhbr1rv2vll93m6zxmyma"
}
},
{
@@ -35458,15 +35793,15 @@
"repo": "10sr/git-command-el",
"unstable": {
"version": [
- 20190311,
- 511
+ 20191025,
+ 627
],
"deps": [
"term-run",
"with-editor"
],
- "commit": "89169f4b8e8d2546cac81d38bf584764e630812e",
- "sha256": "1dgy9c7q0lxx5k5vdjcil6405qjpqpyq3s0ndh8fn6ybbhap9jda"
+ "commit": "af9dfa8c88837839d0fc67f71a7a78f1e14aa826",
+ "sha256": "1pfy7qclr6v5q7ibxwish82xp515qyi05az16a6zbm9g1cm9sav4"
},
"stable": {
"version": [
@@ -35491,15 +35826,15 @@
"repo": "magit/magit",
"unstable": {
"version": [
- 20190717,
- 29
+ 20190928,
+ 1746
],
"deps": [
"dash",
"with-editor"
],
- "commit": "bcd161d8ad3fcd80cbf69e7720c1d75a79415021",
- "sha256": "06nxrnln7cas9sk0g7k88r9z2zbvm32ki3mab1yn9w3abgralfyc"
+ "commit": "8b3172fc495d83830573461f877ed390e6408e0b",
+ "sha256": "09wcf1s7xnw4ssmg8bha94zw9ax9mz3prl5krl1l634740ajy6h4"
},
"stable": {
"version": [
@@ -35523,8 +35858,8 @@
"repo": "emacs-stuff/git-commit-insert-issue",
"unstable": {
"version": [
- 20171102,
- 1841
+ 20191008,
+ 950
],
"deps": [
"bitbucket",
@@ -35533,8 +35868,8 @@
"projectile",
"s"
],
- "commit": "f986923b04b587206ce7ee8e0c456768600e8be7",
- "sha256": "1gffjf6byasisa9jdcv9n4n5zqalvzfsxv7z75zl0g3ph7wc7bbm"
+ "commit": "51c863d9ba21bf11f6681b54be19b4c04d50d1ba",
+ "sha256": "16m3669vm7j0ksfxvp8xqli70z8smb2xlf4cbzgjkfsl3kffbww6"
},
"stable": {
"version": [
@@ -35697,16 +36032,16 @@
"repo": "akirak/git-identity.el",
"unstable": {
"version": [
- 20190706,
- 442
+ 20191006,
+ 443
],
"deps": [
"dash",
"f",
"hydra"
],
- "commit": "9ef80401da9bfd8870888685e86330c864a2d554",
- "sha256": "0hgsa8lm1f5a6c4k5gb93jg952p32kb5zm77rblrlrvjrmvrrp76"
+ "commit": "747ea7c2694754719261c2845cdd9f5f8b3aae20",
+ "sha256": "1hg2na6djk2ca4hdsnk3n04yk8q6cdjf6zm63142wgkmzd31qplx"
},
"stable": {
"version": [
@@ -36353,14 +36688,14 @@
"repo": "joewreschnig/gitlab-ci-mode",
"unstable": {
"version": [
- 20190824,
- 1528
+ 20191022,
+ 2017
],
"deps": [
"yaml-mode"
],
- "commit": "2651e831aed84ee2512245952fac94901b086549",
- "sha256": "16fb4r3vq8xkzl911v7gaky95w1agfxjlpaxpjmidwx48rbcar59"
+ "commit": "c861dc5fa17d380d5c3aca99dc3bbec5eee623bc",
+ "sha256": "0yd6s5vy5afkigm87xyh1nnwljplx1wdn5h02224ica0py48fzhd"
},
"stable": {
"version": [
@@ -36395,15 +36730,15 @@
},
"stable": {
"version": [
- 20180304,
+ 20180605,
1
],
"deps": [
"flycheck",
"gitlab-ci-mode"
],
- "commit": "388fd05f3ea88ed3ebafb09868fc021f6ecc7625",
- "sha256": "0idpg4265rfx5i0i8cgfs6w3gncc766mbg81ldxqjhzvq3n28z39"
+ "commit": "30ea0eab74b24818f187242b079845785035e967",
+ "sha256": "0awv24znkxs0h8pkj4b5jwjajxkf1agam09m5glr8zn5g3xbj798"
}
},
{
@@ -36509,11 +36844,11 @@
"repo": "jimhourihan/glsl-mode",
"unstable": {
"version": [
- 20190514,
- 145
+ 20191017,
+ 2148
],
- "commit": "eaea63a45d0dcb04ddbf069b4bcfd99f10919e44",
- "sha256": "0fb6as099y1k8inc39n8hkmb63j1l4sd5q9cbyqz4shfczma3546"
+ "commit": "43d906688a8e2fe650005806eb69bea131d9321a",
+ "sha256": "1783gimn1adfgs2xybz15nrx8wsz1xb4xk8mxrc18hyci7fwk04r"
}
},
{
@@ -37034,26 +37369,26 @@
"repo": "benma/go-dlv.el",
"unstable": {
"version": [
- 20190413,
- 1623
+ 20191005,
+ 829
],
"deps": [
"go-mode"
],
- "commit": "df03ade331d8fb46acc57ef358e696bc36129e04",
- "sha256": "0sfx84cbxn8d3gsjg0zjam4yc7pjlyp3g94xa3xv91k71ncnijs1"
+ "commit": "d3cca689e76b71e0ef0ab827c7e01cd9042d2095",
+ "sha256": "0qdbfg9ihxwywjyir3lj1azwsaw425f90gp3182q7165j5v43k9w"
},
"stable": {
"version": [
0,
- 2,
+ 3,
0
],
"deps": [
"go-mode"
],
- "commit": "df03ade331d8fb46acc57ef358e696bc36129e04",
- "sha256": "0sfx84cbxn8d3gsjg0zjam4yc7pjlyp3g94xa3xv91k71ncnijs1"
+ "commit": "d3cca689e76b71e0ef0ab827c7e01cd9042d2095",
+ "sha256": "0qdbfg9ihxwywjyir3lj1azwsaw425f90gp3182q7165j5v43k9w"
}
},
{
@@ -37183,8 +37518,8 @@
"cl-lib",
"go-mode"
],
- "commit": "9ab06b3deb1cbf00802d7824bf7107c31865f9fb",
- "sha256": "13bz4cphm1f90bj08shbnk9556091hfv4fzpa1hkwlav09j5nk7q"
+ "commit": "a414da86a48e490baeb24386fad495b47ec56fd9",
+ "sha256": "0q1m18g9n77x7znmmqmpqj3lmkw7g4jp7fp9cj2psi04bmvcsnr6"
},
"stable": {
"version": [
@@ -37276,11 +37611,11 @@
"repo": "dominikh/go-mode.el",
"unstable": {
"version": [
- 20190819,
- 2109
+ 20191022,
+ 2037
],
- "commit": "9ab06b3deb1cbf00802d7824bf7107c31865f9fb",
- "sha256": "13bz4cphm1f90bj08shbnk9556091hfv4fzpa1hkwlav09j5nk7q"
+ "commit": "a414da86a48e490baeb24386fad495b47ec56fd9",
+ "sha256": "0q1m18g9n77x7znmmqmpqj3lmkw7g4jp7fp9cj2psi04bmvcsnr6"
},
"stable": {
"version": [
@@ -37384,8 +37719,8 @@
"deps": [
"go-mode"
],
- "commit": "9ab06b3deb1cbf00802d7824bf7107c31865f9fb",
- "sha256": "13bz4cphm1f90bj08shbnk9556091hfv4fzpa1hkwlav09j5nk7q"
+ "commit": "a414da86a48e490baeb24386fad495b47ec56fd9",
+ "sha256": "0q1m18g9n77x7znmmqmpqj3lmkw7g4jp7fp9cj2psi04bmvcsnr6"
},
"stable": {
"version": [
@@ -37632,8 +37967,8 @@
20180221,
2015
],
- "commit": "959b441ac422379a43da2230f62be024250818b0",
- "sha256": "1mgcv5f00pkzsbwnq2y7vqvd1b4lr5a3s47cphh2qv4indfk7pck"
+ "commit": "16217165b5de779cb6a5e4fc81fa9c1166fda457",
+ "sha256": "0jhwmwc0vykcmf164na0pnadl8gv7184b6pf3xayknwmzdw6vd7h"
}
},
{
@@ -37677,8 +38012,8 @@
20180130,
1736
],
- "commit": "dceb47fb3ea99ad7cc4308fa2c9ecb0d012639e1",
- "sha256": "184llmywxm3fi20lpyni3vx4wxg2z8aag8ahirka2ipnykl1z9id"
+ "commit": "83a9e8d7ca3d47239cb0a7bf532de791e6df3ba6",
+ "sha256": "01m0wxy5a7g82dc04kfjhh1hx7g5d04974b2jhbgsab38hdgggpd"
}
},
{
@@ -37893,11 +38228,11 @@
"repo": "wasamasa/gotham-theme",
"unstable": {
"version": [
- 20171013,
- 1916
+ 20191022,
+ 1809
],
- "commit": "5e97554d1f9639698faedb0660e63694be33bd84",
- "sha256": "18x0b2qmyzf9sddsv9ps1059pi4ndzq44rm4yl87slq03y75nxi9"
+ "commit": "02a7c7cd280747737792f4620b0df2e0b826e2c7",
+ "sha256": "017ibhznkyla2c3qymv3mlcd25svx8c55vavsb4apwzw061n8m79"
},
"stable": {
"version": [
@@ -37911,10 +38246,10 @@
},
{
"ename": "goto-char-preview",
- "commit": "b856d9304ba8814050634db54c8abb88e5dce772",
- "sha256": "1h9lq9ka469day511nnv566kggja23pa8zhqxa805p6lp7132b4d",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "1k7dp2zhlk3kyy0br5fqzj6sx9zkg215s3qs8flf3w0xji150r6k",
"fetcher": "github",
- "repo": "elpa-host/goto-char-preview",
+ "repo": "jcs-elpa/goto-char-preview",
"unstable": {
"version": [
20190418,
@@ -38021,10 +38356,10 @@
},
{
"ename": "goto-line-preview",
- "commit": "ec27ae185c0308c445e461dc84f398483ca08c5a",
- "sha256": "1id3msndzav59ljwdp7xnh0glbzc8d12phpywlb89h5nclj0rzsl",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "18q5x2rsg8qyll76cyi0rm5ywgcb4p0w1b2zl0pc9y3qi2g2lwvr",
"fetcher": "github",
- "repo": "elpa-host/goto-line-preview",
+ "repo": "jcs-elpa/goto-line-preview",
"unstable": {
"version": [
20190308,
@@ -38051,8 +38386,8 @@
"magit-popup",
"s"
],
- "commit": "3e2022d00278b8d47ea40793d299365c5d7b53a1",
- "sha256": "1gmfsqn46lb4anqzb0s8yr21kzg5k2arw1daz056vcspq4fy3ix1"
+ "commit": "f01505d273e85c71261f91457191e65fcb971be3",
+ "sha256": "1yirkw804z53xl0i3znyj4dxkqspwibkim80mp9901ncn10k21y6"
},
"stable": {
"version": [
@@ -38226,8 +38561,8 @@
20160504,
911
],
- "commit": "aa531c659758b896ff8fbd307080ce0d1d04ebfb",
- "sha256": "0jcqldpgx9b0xsvxvj7lgqrb39cwn7adggrlxfcm0pgc40dpfwb4"
+ "commit": "09226f852cb3167f23012df8f77318037f5fe9c5",
+ "sha256": "1gq8zwnyqxdf2i9agwky9nhc0nz6g7y0jfi8vjvxgak8dyilrfma"
},
"stable": {
"version": [
@@ -38399,11 +38734,11 @@
"repo": "davazp/graphql-mode",
"unstable": {
"version": [
- 20190812,
- 2240
+ 20191024,
+ 1221
],
- "commit": "3581ad03e04b11c67d4882cbaa9ab6af71eaf78d",
- "sha256": "0mabd677yi7phzvvil9fyic5i9z4nyp224d0ifzp5mw0jpsvfxv1"
+ "commit": "7c37aee28bf8c8ffb3da73df5571c4e1e352562b",
+ "sha256": "0hjzqmrc024b98nisvn2ld8gn3bslg8ip19d1fnid3m8q9zk8w8b"
}
},
{
@@ -38414,19 +38749,20 @@
"repo": "ppareit/graphviz-dot-mode",
"unstable": {
"version": [
- 20181118,
- 551
+ 20191012,
+ 849
],
- "commit": "243de72e09ddd5cdc4863613af8b749827a5e1cd",
- "sha256": "10ss7mhlkqvxh7y2w7njzh3hiz3r7y49a3q9j41bwipia4yzq4n5"
+ "commit": "096ca0130f0bcbbacc0107a86e3cdfecdb88a087",
+ "sha256": "1y8szyj3g96vb8ybc7ynkbpm98wpflrx1q5cbbxygx3y21lv8dpw"
},
"stable": {
"version": [
0,
- 4
+ 4,
+ 1
],
- "commit": "7301cc276206b6995d265bcb9eb308bb83c760be",
- "sha256": "1zk664ilyz14p11csmqgzs73gx08hy32h3pnyymzqkavmgb6h3s0"
+ "commit": "1574c504d9810f34a85e2ff49b6f7648c2be5f27",
+ "sha256": "03l6zkkxhbcxj5i13hzjv6ypmzaw70zqqagh7ix1kdn33kpp37jj"
}
},
{
@@ -38455,10 +38791,10 @@
},
{
"ename": "grass-mode",
- "commit": "5b7972602399f9df9139cff177e38653bb0f43ed",
- "sha256": "1lq6bk4bwgcy4ra3d9rlca3fk87ydg7xnnqcqjg0pw4m9xnr3f7v",
- "fetcher": "bitbucket",
- "repo": "tws/grass-mode.el",
+ "commit": "c6f0b067cfbd2902a585b9d1eaadabcac3e62286",
+ "sha256": "1njzw4sparjcyhxki2z0xqrsbazfm52bxm7522szgvxcmjwxybcz",
+ "fetcher": "github",
+ "repo": "plantarum/grass-mode",
"unstable": {
"version": [
20170503,
@@ -38468,8 +38804,19 @@
"cl-lib",
"dash"
],
- "commit": "1ae8eae881173ddff64982d1fd0e14d4e7793fc1",
- "sha256": "1sl3d5759fjm98pb50ykz2c05czb2298ipccwj2qz2hdzq63hfv8"
+ "commit": "8a7e9dcb2295eef1ec25d886b05e09c876bd8398",
+ "sha256": "023s9kn012z6m4aprsq77zv4kvfvwfics5gcdja7ig4xwqqrzymq"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "23ca856ca979fec0f90196b357f2b74fe1cc3a73",
+ "sha256": "116247yggxs0hfbx1746j1d642gk9zbx15c2dw4p5pq9qkasmy95"
}
},
{
@@ -38665,20 +39012,20 @@
"repo": "seagle0128/grip-mode",
"unstable": {
"version": [
- 20190820,
- 1726
+ 20191022,
+ 808
],
- "commit": "e3f5143d34ec47ee3c01a21e1d7c5dbf744bfe1a",
- "sha256": "09ikf88nl7mig525m4432f8bjff4rdgiw3a5vjnmilmsx85n6gpd"
+ "commit": "8fd4102a25c2dd9ccbbee082bc61d8f44eb5ed74",
+ "sha256": "0ylmn54znwhqv9m88zizgzi08ks0vxf1vxqsk4mk2a94ycw1xfkc"
},
"stable": {
"version": [
2,
- 0,
- 0
+ 1,
+ 2
],
- "commit": "7777b694751c0da754712b964052617de1740e42",
- "sha256": "1kbyr3rfdbclpvxbbv66rirj7bn507izafjssvkwgjrrd6vfhdv2"
+ "commit": "8fd4102a25c2dd9ccbbee082bc61d8f44eb5ed74",
+ "sha256": "0ylmn54znwhqv9m88zizgzi08ks0vxf1vxqsk4mk2a94ycw1xfkc"
}
},
{
@@ -38747,15 +39094,15 @@
"repo": "Groovy-Emacs-Modes/groovy-emacs-modes",
"unstable": {
"version": [
- 20190407,
- 2314
+ 20190930,
+ 2356
],
"deps": [
"dash",
"s"
],
- "commit": "aa531c659758b896ff8fbd307080ce0d1d04ebfb",
- "sha256": "0jcqldpgx9b0xsvxvj7lgqrb39cwn7adggrlxfcm0pgc40dpfwb4"
+ "commit": "09226f852cb3167f23012df8f77318037f5fe9c5",
+ "sha256": "1gq8zwnyqxdf2i9agwky9nhc0nz6g7y0jfi8vjvxgak8dyilrfma"
},
"stable": {
"version": [
@@ -38935,11 +39282,11 @@
"repo": "abo-abo/gtk-pomodoro-indicator",
"unstable": {
"version": [
- 20171230,
- 1640
+ 20191007,
+ 1500
],
- "commit": "eb59b229de0dde307b20654075a9bbac69899a66",
- "sha256": "0dmaazcscg9mdsmij26873af5jl2np4q9xf2klw1jmcl61wzggb0"
+ "commit": "cb026a595de8a9244b16e06876f10c60dce18676",
+ "sha256": "12az34hx714y0wqhxllpc8nk1rwh8s4lhhnvkzbqwki94qyqm87c"
}
},
{
@@ -39032,8 +39379,8 @@
"repo": "alezost/guix.el",
"unstable": {
"version": [
- 20190507,
- 1711
+ 20190913,
+ 1624
],
"deps": [
"bui",
@@ -39042,8 +39389,8 @@
"geiser",
"magit-popup"
],
- "commit": "11e0dbf6491300d250efb3dc09d634b01e86b35b",
- "sha256": "0j60v0h850cwxik1mhlnmqms47dkkqcnfx53qs66hi1zyp7pax5z"
+ "commit": "24918011d2f1a78d63f39bf0c462b7dab190629a",
+ "sha256": "1maag50nbgwygc6w7lbna1ml20f3k4dvxzjm3fgdqmfypi5ag891"
},
"stable": {
"version": [
@@ -39667,11 +40014,11 @@
"repo": "haskell/haskell-mode",
"unstable": {
"version": [
- 20190801,
- 50
+ 20190926,
+ 313
],
- "commit": "56d67ee282294c786a92e2d83c5bebf1a6d919c1",
- "sha256": "1wschs4ny2b40bg8z86vc73zq32bv9mcxkyvgbmza44zvhqpdkwp"
+ "commit": "1bee161d3cea973d4ee3ff7acf980bf2cdeb83e2",
+ "sha256": "1vjxqqa08cxhsk69rcf0kn7bsfp6c5a9jax777h7ljc39fzcpf8q"
},
"stable": {
"version": [
@@ -39852,10 +40199,10 @@
},
{
"ename": "haxe-mode",
- "commit": "efc5f69915e5284b955c096d5128b4fbb1c5b64b",
- "sha256": "17n94a12zzigq5bn3jxqrmy1h3vb3brc60j5ckhbp5pvlf906yr9",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "14grb7lcaw57rzqlyy4ja10068r59i2ifxk0q177p4yg8rm519cy",
"fetcher": "github",
- "repo": "elpa-host/haxe-mode",
+ "repo": "jcs-elpa/haxe-mode",
"unstable": {
"version": [
20190703,
@@ -40001,29 +40348,30 @@
"repo": "emacs-helm/helm",
"unstable": {
"version": [
- 20190830,
- 1604
+ 20191023,
+ 1610
],
"deps": [
"async",
"helm-core",
"popup"
],
- "commit": "c00b5826c1d5797debe92ed235d50b068a348c14",
- "sha256": "0fzr08cln58j9d03c1znk29gw6qnj6a28z4i8p7szsifryrhy4vr"
+ "commit": "1341b84aedd972e01396036ce4d496e70282dcac",
+ "sha256": "0nimmkvlvh811swzhynwddd2y06jx27a1s0cl5zmc9y5r4ycpxns"
},
"stable": {
"version": [
3,
- 3
+ 5,
+ 0
],
"deps": [
"async",
"helm-core",
"popup"
],
- "commit": "12c50cf2a3748f44eb8c8ccad89ebd6e63fe99f6",
- "sha256": "0fqhw7r9fcsja5d3pgbipw7pkw9nj534faav6hi45413hc3gyv92"
+ "commit": "610d06e4c170b76ba5a687fe479842cd18420b0a",
+ "sha256": "07bijcnfkv60l3swasxv53x32l6glds05mxnbb3xbnmkgm1pm9if"
}
},
{
@@ -40267,8 +40615,8 @@
"repo": "tmalsburg/helm-bibtex",
"unstable": {
"version": [
- 20190814,
- 1056
+ 20190918,
+ 1116
],
"deps": [
"biblio",
@@ -40279,8 +40627,8 @@
"parsebib",
"s"
],
- "commit": "7e87161463c9c5ade3ed0e65aa3cde48c51b57de",
- "sha256": "1krn85fvd0438iqs2af8vlqp8am39z6lbkda2b3hi01frp7g8sx6"
+ "commit": "5a26b35c3fa223d4c74262137f34bb2f325c4411",
+ "sha256": "0nw35f2qr5pqswz1rbkgwvd2wmvg8hzjf419w9iffx1m858k99rf"
},
"stable": {
"version": [
@@ -40352,8 +40700,8 @@
"deps": [
"helm-core"
],
- "commit": "632495036c4a6ac30e408fc74ee9f209fd5ac429",
- "sha256": "0rbgk982jlbqh1rhns3zmndfr3lpw7m2j9z7qylghkll4k8fcjpl"
+ "commit": "c722016622ad019202419cca60c3be3c53e56130",
+ "sha256": "08i8d6b41n4sq3jb4gvxkiml73am82jzqkqvvdm9mdhibb8x08mx"
},
"stable": {
"version": [
@@ -40855,25 +41203,26 @@
"repo": "emacs-helm/helm",
"unstable": {
"version": [
- 20190830,
- 635
+ 20191013,
+ 626
],
"deps": [
"async"
],
- "commit": "c00b5826c1d5797debe92ed235d50b068a348c14",
- "sha256": "0fzr08cln58j9d03c1znk29gw6qnj6a28z4i8p7szsifryrhy4vr"
+ "commit": "1341b84aedd972e01396036ce4d496e70282dcac",
+ "sha256": "0nimmkvlvh811swzhynwddd2y06jx27a1s0cl5zmc9y5r4ycpxns"
},
"stable": {
"version": [
3,
- 3
+ 5,
+ 0
],
"deps": [
"async"
],
- "commit": "12c50cf2a3748f44eb8c8ccad89ebd6e63fe99f6",
- "sha256": "0fqhw7r9fcsja5d3pgbipw7pkw9nj534faav6hi45413hc3gyv92"
+ "commit": "610d06e4c170b76ba5a687fe479842cd18420b0a",
+ "sha256": "07bijcnfkv60l3swasxv53x32l6glds05mxnbb3xbnmkgm1pm9if"
}
},
{
@@ -40964,8 +41313,8 @@
"dash-docs",
"helm"
],
- "commit": "6c76c794fec95586028633f24773451812af5df4",
- "sha256": "0ajkflf6fzpxxgv2nzpxnc1d2rp32ba1lz9x4s2bini71krai88s"
+ "commit": "7f853bd34da666f0e9a883011c80f451b06f6c59",
+ "sha256": "0r192vzry1212ihabg9pgw9xar8zdgnbgy0vsgvfm8s5wj6ny7jp"
},
"stable": {
"version": [
@@ -41194,16 +41543,16 @@
"repo": "emacs-helm/helm-emms",
"unstable": {
"version": [
- 20190422,
- 1522
+ 20191001,
+ 1414
],
"deps": [
"cl-lib",
"emms",
"helm"
],
- "commit": "89ec04e6548f16c5848cc49ad506e0561cea87ab",
- "sha256": "0cn1amwgf5nm73yjxnhjsl6dvfcvh8qb2j2rhsyd6i8kzzkyplf2"
+ "commit": "77f5dab62f9962e376dad99452f29edd0b5dc75a",
+ "sha256": "108ksri1a5hmfjbflqmm486zv3j0sy89xsdjs39q3xrr1s4gbc4q"
},
"stable": {
"version": [
@@ -41393,21 +41742,51 @@
}
},
{
- "ename": "helm-file-preview",
- "commit": "bf60b4c17c866cd89ff68b99aeb2941c6bc6d940",
- "sha256": "0y3wkj98nj5nnf5v5iqaihipyx9p902i152gbcrsqcjbpgw3wlhz",
+ "ename": "helm-fd",
+ "commit": "ea8d504faa73bc0a649b13738ed7c6a76e2fad88",
+ "sha256": "1hlq0xxi616flykay9jr96rqgvs53dmlk50h25982jpl6xb63g9y",
"fetcher": "github",
- "repo": "elpa-host/helm-file-preview",
+ "repo": "lerouxrgd/helm-fd",
"unstable": {
"version": [
- 20190825,
- 247
+ 20190923,
+ 48
],
"deps": [
"helm"
],
- "commit": "7b332fc3ceb730d054bac464b78e4d6e009ff432",
- "sha256": "0klcgqqyx4zkxy0vnqfkbydjv59za8g247x0rgk64iq62fsmm3k8"
+ "commit": "84a2aa656473f2921e35abad62b158b3813ee944",
+ "sha256": "14bdcr4db500sqv5p47jdkjp06hys35bpb07fp40v39r9pbzfdla"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "2891ca941b5a70facf35d5a8bbc791fc41ab0284",
+ "sha256": "16szlby36g393mwnywl59iyngrinnsd9xilsgadr6l9hngas4anm"
+ }
+ },
+ {
+ "ename": "helm-file-preview",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "0rvwf54xz3wb640z0r8gsdv9frf650r7llviicvy5gmfddrlpjh4",
+ "fetcher": "github",
+ "repo": "jcs-elpa/helm-file-preview",
+ "unstable": {
+ "version": [
+ 20190903,
+ 331
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "6ab26c5fb414a0c1232974fd3f888839b6844203",
+ "sha256": "0lsrcn03f4981762l2rq25ps1f2ka86q125jkh6nq7wzfb7pj71f"
}
},
{
@@ -41444,8 +41823,8 @@
"cl-lib",
"helm"
],
- "commit": "0ad34b7b5abc485a86cae6920c14de861cbeb085",
- "sha256": "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"
+ "commit": "b290734807ee68e7a7aface2af781d86e1fd5950",
+ "sha256": "02m05fy5qf5xfd5dh402pibbzwzmcfgqymqigkbdfyjbfbljl3zx"
},
"stable": {
"version": [
@@ -41550,17 +41929,17 @@
},
{
"ename": "helm-frame",
- "commit": "febb2599e50518dadb30088bc9576aea2af092a7",
- "sha256": "18wbwm4r3ra9214whhdbxnjrxzra4pn12wqgq5lxli1khylihm3i",
- "fetcher": "gitlab",
+ "commit": "8bbb56b883658fdf91b984c01d2472bdf6787003",
+ "sha256": "1hmml0209z3ap35bqk9b1fh0lcfksysqszgj1ifh1mdjz81xx9sq",
+ "fetcher": "github",
"repo": "chee/helm-frame",
"unstable": {
"version": [
- 20170515,
- 1950
+ 20180604,
+ 1005
],
- "commit": "389e6461a423d649b7062ba99a2234bef7770059",
- "sha256": "1z7iwgl1v8nkwyz3h610l97amgq9slrfxxiicsnigc9vgsqlh987"
+ "commit": "485e2a534b0de5e8dbeb144a9a60ceca00215a4a",
+ "sha256": "1hxqyyh8jzk83ppi1p5r9b9gy7k2hanh3xzp129iw9yqpmvwmsnq"
}
},
{
@@ -41571,15 +41950,15 @@
"repo": "cireu/fuz.el",
"unstable": {
"version": [
- 20190815,
- 401
+ 20191024,
+ 1133
],
"deps": [
"fuz",
"helm"
],
- "commit": "57b5d0df689dd7e0958e0eba1269ae32a172cd90",
- "sha256": "1ivsy5yarapcaqrnhn6pkbipv0s83laxjlrdb3z055g0091zq8bs"
+ "commit": "56f08351c2ae91e010f6a5e810f11ae74d76deb0",
+ "sha256": "15fymhj82phj407bcnc64p16kv3nc860xbsnlnj7i8qvcnl3jpdl"
},
"stable": {
"version": [
@@ -41613,6 +41992,25 @@
"sha256": "1250mh0ydap0sifcyrgs32dnr6c8d723v4c55yvwm23dzvzwycp8"
}
},
+ {
+ "ename": "helm-fuzzy",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "088mrqqv9d2vrja67xrd37zzxl4k02rl5smscrp7ad6d60y1k1zy",
+ "fetcher": "github",
+ "repo": "jcs-elpa/helm-fuzzy",
+ "unstable": {
+ "version": [
+ 20190905,
+ 526
+ ],
+ "deps": [
+ "flx",
+ "helm"
+ ],
+ "commit": "fc080a0b4be8a68944a64bc4fb5b38cd11a70bc7",
+ "sha256": "01632zrpl69b034srgsfidf62r1kwc8f4z8i48kz95g5n2ax1xk9"
+ }
+ },
{
"ename": "helm-fuzzy-find",
"commit": "34f76bb377ed31aa42663858c407cc5476e6fe1f",
@@ -42247,15 +42645,15 @@
"repo": "torgeir/helm-js-codemod.el",
"unstable": {
"version": [
- 20171106,
- 1044
+ 20190921,
+ 942
],
"deps": [
"helm-core",
"js-codemod"
],
- "commit": "18503d94e64418e8ea5c5854f197ae9f3009cdbf",
- "sha256": "0d5fsvfa017gda0jryjdvva1q04nry6grc1433gvgrqqp6vxayxc"
+ "commit": "29b1b3c441f0d7e450a3c65b5ff9e72023dc6314",
+ "sha256": "15lksdyk5z4xszfsdk290pm6ri5r9c2ki9jxmwppkqpd52w2dxck"
}
},
{
@@ -42331,8 +42729,8 @@
"helm",
"lean-mode"
],
- "commit": "9d6b8471e2044310b4cd7cd3213b1fc8f78ec499",
- "sha256": "0r8vfklrdw3f11cpk279jg3mnfbqm60m6klisqndkvir7vsrshni"
+ "commit": "b5ba739f68ef731c03247bf6db2708502c8ac46c",
+ "sha256": "1dx0a76l7w3ck23sdjymigk1hycqiawfwv24yz6wqyy74f1pcyjf"
}
},
{
@@ -43034,15 +43432,15 @@
"repo": "tumashu/helm-posframe",
"unstable": {
"version": [
- 20180610,
- 1748
+ 20191013,
+ 1027
],
"deps": [
"helm",
"posframe"
],
- "commit": "d28f96ea92ee9393658901bb552723db10f40dc3",
- "sha256": "1ycf5m06n32axqpm2vkvszff6gxdps1y8gm46682nf8mk2i3xa6f"
+ "commit": "86d6e6e4c32839dec96ef51ae3917d45259165a4",
+ "sha256": "0byb477lxxyys9q1kwyh37y46jlyk7j1q3xq6cllq47k2gnaix72"
}
},
{
@@ -43514,8 +43912,8 @@
"helm",
"rtags"
],
- "commit": "6289e66a69d0d5ff20b12da91e735d3984ad6f88",
- "sha256": "1ggdi4mgqw1cc0w6cijds7s4vb575v27g72h6md8h1jdsfv6pvrm"
+ "commit": "f2633f565fc5e7e6958993ef105225f4e68e43ba",
+ "sha256": "1bjgr7wa82ccrc25r7agfaq3iz7xlp1qchvkmkx3xy59jv4yafjz"
},
"stable": {
"version": [
@@ -43677,16 +44075,16 @@
"repo": "emacs-helm/helm-slime",
"unstable": {
"version": [
- 20190821,
- 1304
+ 20191016,
+ 1601
],
"deps": [
"cl-lib",
"helm",
"slime"
],
- "commit": "e0dbf04d447098a1d074bc04e125764ff82091b7",
- "sha256": "0mrpjhpijdrq353fnfvdj9l9xfsz390qlcvifcair9732ma7i8l0"
+ "commit": "7886cc49906a87ebd73be3b71f5dd6b1433a9b7b",
+ "sha256": "1g9fnp818d677xhx2m4820742fyblvmnsygmkdb5530lacdaksh2"
},
"stable": {
"version": [
@@ -43792,15 +44190,15 @@
"repo": "wandersoncferreira/helm-spotify-plus",
"unstable": {
"version": [
- 20190807,
- 2115
+ 20190913,
+ 2236
],
"deps": [
"helm",
"multi"
],
- "commit": "e52233523917596dd3862e1151a027ce89a80a38",
- "sha256": "0h4lj18rvhwcsb0k7ckp81h1aank9pf0dsa3qb578n10i9p6bb4y"
+ "commit": "c3922ec368250965e483876cde5880d88a40a71b",
+ "sha256": "12zl775l7zikv268vypnb56ly2h0y3sf5wxv5rc2amnmwgrikvra"
}
},
{
@@ -43829,14 +44227,14 @@
"repo": "emacsorphanage/helm-swoop",
"unstable": {
"version": [
- 20190822,
- 501
+ 20191008,
+ 401
],
"deps": [
"helm"
],
- "commit": "3cc15383fae9063de817d320e87a1f868a46eb83",
- "sha256": "1jm1yvwbfqhrj0256n5ihvxb1zxhhhqv07yfzkfg2pv6k71hpd9h"
+ "commit": "884d2f5840108f0171d38fa19ae2334560f5c2d9",
+ "sha256": "0x6pspamns2hb2a7x01pwzs1zbzi1p0vq6rwrczjh978n2plrqjq"
},
"stable": {
"version": [
@@ -44149,14 +44547,14 @@
"repo": "brotzeit/helm-xref",
"unstable": {
"version": [
- 20190821,
- 1252
+ 20190930,
+ 1646
],
"deps": [
"helm"
],
- "commit": "5290e2a05209b742d7efcd3e03b5f51ac1eab6ad",
- "sha256": "1jkjm43fnwc4n9h5rrpkb2sgs2k0nb5fmxxn08b4iyz992lgmk7b"
+ "commit": "bbd9a858c9eaceb6d3efab0a25d9caff32b3750c",
+ "sha256": "0hvgcpc47ki5arln473qq3qpcg5j83qjk6cmm9k1xqvjkyv19prl"
}
},
{
@@ -44260,8 +44658,8 @@
"repo": "Wilfred/helpful",
"unstable": {
"version": [
- 20190814,
- 308
+ 20191001,
+ 9
],
"deps": [
"dash",
@@ -44270,8 +44668,8 @@
"f",
"s"
],
- "commit": "e9e958a5643619d0e32b9934bf4e9195c57cb71f",
- "sha256": "1xhcl3i4cpm5j0q0qd3rcgv5cqfikgqxp4wnw96xkalmyhqdgi28"
+ "commit": "e2609e4ae9e058bd8be6239681b2f22195628f28",
+ "sha256": "00id29w31mq6ikaa95dp0m6l9hcmvm4m0z3mfgyj4713vnm162s0"
},
"stable": {
"version": [
@@ -44327,25 +44725,25 @@
"repo": "jjzmajic/hercules.el",
"unstable": {
"version": [
- 20190820,
- 1712
+ 20190929,
+ 637
],
"deps": [
"which-key"
],
- "commit": "aace3409bc4d78fec3006b2906eb2ae99cadd9f4",
- "sha256": "1s88hmw671in3lrmsbbc3w6fs1ccgzip8k46j79gyf50vzzfcpk7"
+ "commit": "031f8eec95240fc46481061f0f44822c0f7fe65e",
+ "sha256": "0snfmvri4cpmhrk5s4hxxlyzs3d58ysmqzaiyiz4979admdc1lmb"
},
"stable": {
"version": [
0,
- 2
+ 3
],
"deps": [
"which-key"
],
- "commit": "8d156df2b7ae2866bfe44ee1b9c038379524147a",
- "sha256": "17izhdq6pgg25nkl1zlqri18dhjgxwkw95iy230adsbk8m0iys4g"
+ "commit": "031f8eec95240fc46481061f0f44822c0f7fe65e",
+ "sha256": "0snfmvri4cpmhrk5s4hxxlyzs3d58ysmqzaiyiz4979admdc1lmb"
}
},
{
@@ -44519,20 +44917,20 @@
"repo": "hlissner/emacs-hide-mode-line",
"unstable": {
"version": [
- 20180302,
- 1910
+ 20190922,
+ 115
],
- "commit": "86b9057391edad75467261c2e579603567e608f9",
- "sha256": "0qmjmwhmlm008r22n2mv7lir4v1lpfz1c3yvqlwjgv0glbyvqd88"
+ "commit": "88888825b5b27b300683e662fa3be88d954b1cea",
+ "sha256": "0dfzjgxfkcw4wisbyldsm1km18pfp9j8xgadn6qnsz11l55bpgyp"
},
"stable": {
"version": [
1,
0,
- 1
+ 2
],
- "commit": "86b9057391edad75467261c2e579603567e608f9",
- "sha256": "0qmjmwhmlm008r22n2mv7lir4v1lpfz1c3yvqlwjgv0glbyvqd88"
+ "commit": "88888825b5b27b300683e662fa3be88d954b1cea",
+ "sha256": "0dfzjgxfkcw4wisbyldsm1km18pfp9j8xgadn6qnsz11l55bpgyp"
}
},
{
@@ -44576,17 +44974,17 @@
},
{
"ename": "highlight",
- "commit": "f0a8eb0eefe88b4ea683a4743c0f8393506e014b",
- "sha256": "11icn6f46synw6xvs2a266g43fvpnz8i7d7dyr0iywzjpbpyhsd2",
- "fetcher": "git",
- "url": "https://framagit.org/steckerhalter/highlight.el.git",
+ "commit": "38433e95f73ab20f27254a084d0b245c6e62d882",
+ "sha256": "0ik2kci2y404zzvs78h74v21ssgi6f0jdzzbq45fhdhjra02kzzz",
+ "fetcher": "github",
+ "repo": "emacsmirror/highlight",
"unstable": {
"version": [
- 20181002,
- 1151
+ 20190710,
+ 1527
],
- "commit": "ea733e17884aeae19172407e20559fc693fdd3a7",
- "sha256": "13ajbhpwvdmk0mzaffj45gxqmq13b57d81iqdpg9q2l2wjk95jq7"
+ "commit": "9258a2b8362d737115cbd87618f947eadb140411",
+ "sha256": "0pbqzgbfkm8smi23j94hirxh2r1yc0ipyjbbv1y906br6bx5c1a8"
}
},
{
@@ -45248,11 +45646,11 @@
"repo": "tarsius/hl-todo",
"unstable": {
"version": [
- 20190807,
- 1831
+ 20191024,
+ 1036
],
- "commit": "be57dbc5a4667e4a60b8249b53fa176db1019c8e",
- "sha256": "12swld4a723wqkh5h9jf3l4lj5rsidgmna53n8g48w8qvi2gz8l8"
+ "commit": "823ca3751e4cac6e936800ddf2f19d6f96eeb422",
+ "sha256": "16isym4dp6vbc9f1pa1q1x1hwhm7nd61rr5y4inf58wllgflnb7f"
},
"stable": {
"version": [
@@ -45272,16 +45670,16 @@
"repo": "narendraj9/hledger-mode",
"unstable": {
"version": [
- 20190725,
- 2115
+ 20191012,
+ 1046
],
"deps": [
"async",
"htmlize",
"popup"
],
- "commit": "7b4921f67074bf759c9a83ce227802ed627c7cdf",
- "sha256": "19g1ps1ljmm9d7805pilxzy92fvbgzzamqlxx8gqj1q55hccflp2"
+ "commit": "8206f3c5d8e5b9b084733879191ec3724b60494d",
+ "sha256": "16y3xb8kc4j72gv1d59g4jw21q53i474hiksa6dzxvxkzva4wzf9"
}
},
{
@@ -45335,6 +45733,26 @@
"sha256": "0l4msj1i8amcn10dk1shcyh6hn49iphma1q03kp2h84ga79xdpi3"
}
},
+ {
+ "ename": "hnreader",
+ "commit": "65dc5e41f88158d7595aba7a66b791b205b929b7",
+ "sha256": "1y7ariri9q7dvda28rdp5i66c2xw74ap8cd7n6lskgnnxjk1yl8j",
+ "fetcher": "github",
+ "repo": "thanhvg/emacs-hnreader",
+ "unstable": {
+ "version": [
+ 20190909,
+ 258
+ ],
+ "deps": [
+ "org",
+ "promise",
+ "request"
+ ],
+ "commit": "7e68beff596a7c67ff436be5cc29660acd46f5df",
+ "sha256": "0yynfz8bw7nvzk05zxypn183y6hf243s55kxfiicnxx7shag217i"
+ }
+ },
{
"ename": "hoa-mode",
"commit": "f8b91f35d06f9e7e17c9aaf2fb9ee43a77257113",
@@ -45343,11 +45761,11 @@
"url": "https://gitlab.lrde.epita.fr/spot/emacs-modes.git",
"unstable": {
"version": [
- 20151203,
- 1650
+ 20191010,
+ 1132
],
- "commit": "3c608e15b655d2375c5f81323ac561c7848dc029",
- "sha256": "19360wx1i7lkr8igddm7zl9yh5hlm3r013rkd512cs18iz1y753x"
+ "commit": "558e55429acde26423332a03a3b65b12efdbce5f",
+ "sha256": "0a6jagjimr00dvzrbxj078vyranmv14zl2vn4dkcww4swjzpaag9"
}
},
{
@@ -45557,6 +45975,26 @@
"sha256": "01sj9c8mxqaif8wh6zz9v2czjaq7vcdi66drldyjmifkln6rg2v8"
}
},
+ {
+ "ename": "howdoyou",
+ "commit": "eb5356c3e094e93c09398bfd628b1594c7e3ec20",
+ "sha256": "0dnlhkpnjag6vk7qyfgzc7p0fs1b01pc3dnm6bgw19ghdp1wvp8y",
+ "fetcher": "github",
+ "repo": "thanhvg/emacs-howdoyou",
+ "unstable": {
+ "version": [
+ 20190921,
+ 259
+ ],
+ "deps": [
+ "org",
+ "promise",
+ "request"
+ ],
+ "commit": "8ebfcb2b8f708110040c5a3e6f4f0d46f33b025c",
+ "sha256": "1rsmz7av9ij11j307ncly78dhncyb7lxdcgpy0plfsyja3kw3m5q"
+ }
+ },
{
"ename": "howm",
"commit": "0099a1f9b0efb3fc3a1420cfe71a647ec6458998",
@@ -45601,14 +46039,14 @@
"repo": "Wilfred/ht.el",
"unstable": {
"version": [
- 20190830,
- 910
+ 20190924,
+ 704
],
"deps": [
"dash"
],
- "commit": "a5a046e7c26fbcda0b757a64b30ca3e5b1cc6d69",
- "sha256": "15vqnl72ahydj0qjg7y7na1i6n8800fl0na2glgrrwyhzy0z2sa2"
+ "commit": "66c5f9131242697fabaede5566d87ecda4c14b1f",
+ "sha256": "0mip7v2w89wjs2nw4c198y7rpf9i7wsrjibmcnnzwxhcm1sidjnh"
},
"stable": {
"version": [
@@ -45660,15 +46098,15 @@
"repo": "plexus/html-to-hiccup",
"unstable": {
"version": [
- 20161028,
- 1401
+ 20190909,
+ 1549
],
"deps": [
"dash",
"s"
],
- "commit": "99217a5058626d253ed8ada51a7642071fe54ba5",
- "sha256": "1cvlh1iqjdmgwbw254g0rfdshsj7dhqjjp56gwqhn2fqkga44a7i"
+ "commit": "50a52e2b0d13d865187acdf775b8203d5003f2f1",
+ "sha256": "1qi092mw2n08v6yr0j6hlpx0pnlcnhxjqbsrlw9pn4yin6zk91yp"
}
},
{
@@ -45738,10 +46176,10 @@
},
{
"ename": "htmltagwrap",
- "commit": "ec27ae185c0308c445e461dc84f398483ca08c5a",
- "sha256": "19vav9mpqfg6x017b2f4fkhixfw9fslhs03n780qq2n79abp77n9",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "1jac5ri96wqwss933z2m3q7yrrz8s3mwz39fahfspwqbycbhx8sx",
"fetcher": "github",
- "repo": "elpa-host/htmltagwrap",
+ "repo": "jcs-elpa/htmltagwrap",
"unstable": {
"version": [
20190517,
@@ -45935,30 +46373,30 @@
"repo": "hylang/hy-mode",
"unstable": {
"version": [
- 20190620,
- 1804
+ 20191003,
+ 1902
],
"deps": [
"dash",
"dash-functional",
"s"
],
- "commit": "8699b744c03e0399c049757b7819d69768cac3bc",
- "sha256": "0axh3i1fga7znk466nqifkjf45ri7qkb9xvnkc9b5zl4f0z9b5gy"
+ "commit": "e2d5fecdaec602788aa7123ed13651c888b8d94b",
+ "sha256": "0gihxlmfminadaqdr8d2zccd7wwygl3m0gfzxsk5izi7f8hl4w7f"
},
"stable": {
"version": [
1,
0,
- 3
+ 4
],
"deps": [
"dash",
"dash-functional",
"s"
],
- "commit": "27a9e6bee0df741f2699e00e64ea2c7a279b401d",
- "sha256": "1jxximiznz7fw9ys5k6plw85zrbzvxidql7py1fdi425fdp4058z"
+ "commit": "e2d5fecdaec602788aa7123ed13651c888b8d94b",
+ "sha256": "0gihxlmfminadaqdr8d2zccd7wwygl3m0gfzxsk5izi7f8hl4w7f"
}
},
{
@@ -46053,8 +46491,8 @@
"cl-lib",
"lv"
],
- "commit": "435c55e9f75a8cf3ae6a4ba0c7725e3dc4e5963f",
- "sha256": "0nzbjx5rnmzl0dhbrrmb5kbcmww6hzs1vwa62nlg9zfwq99zk42l"
+ "commit": "74b32f3ff004cd2ad7707722ffa7f85e8233a845",
+ "sha256": "0gp1j8n65v3r849c3h3xmn7c133wyh68szksqjwn1lzd2mpdnfny"
},
"stable": {
"version": [
@@ -46078,14 +46516,14 @@
"repo": "ieure/hyperspace-el",
"unstable": {
"version": [
- 20190702,
- 2331
+ 20190908,
+ 550
],
"deps": [
"s"
],
- "commit": "6441da7a816b4bf6faba21cb7b8cc1a1db6f35d5",
- "sha256": "10l82fzp7m57bkzbqgmz1sp42mqkcmz4i6w9rv2hpzdp7ccgfr9v"
+ "commit": "825ac47887bf2f63e7dc2ecce264a52d9f0fae70",
+ "sha256": "00bjwgg67y6igm2k2rwrw4n35jiw5akhl01mhbggwy999gb01cg2"
},
"stable": {
"version": [
@@ -46192,11 +46630,19 @@
"repo": "muffinmad/emacs-ibuffer-project",
"unstable": {
"version": [
- 20181216,
- 2125
+ 20190925,
+ 1105
],
- "commit": "7424e71062f2cb969c3e9951203022414dea37fb",
- "sha256": "02rr81ddpand0hb3yaskklhpknnqfjkcqaa2w77xi4xlzjdima01"
+ "commit": "7de4f54a959de3254a98662777269ec7a08adbc9",
+ "sha256": "06p12hxnrbcjdwr8b1rmbm7b4hwkhp7lsrw4j6fnnf1hi27hngsq"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "commit": "a29ed1f415902f21b5b17bf36ce1a0e46e29400c",
+ "sha256": "0b5d5gdqinnqfll82i994jmg6y4va2fallvh0d8g0978y3xx8vnp"
}
},
{
@@ -46559,8 +47005,8 @@
"memoize",
"s"
],
- "commit": "61c6fc60c2c7c70cf07fa533914bd2dae27c902a",
- "sha256": "0qwi4prdx6flfzkzhqz15xbvlcxdb9gg3i1hz350p7h2kcfjkqpa"
+ "commit": "fcb6fa0c2f5989b2e79f2dc1ef57d03e455cce44",
+ "sha256": "1wq5gbr87f6c3bbsndkg50ndf6s21pzz49dmxaa4sckjs2ax9mzx"
},
"stable": {
"version": [
@@ -47624,32 +48070,34 @@
"repo": "NicolasPetton/Indium",
"unstable": {
"version": [
- 20190715,
- 1457
+ 20191022,
+ 2128
],
"deps": [
"company",
"js2-mode",
"js2-refactor",
+ "json-process-client",
"seq"
],
- "commit": "971e310b8eec87afbf1f9bf927e12848deb1c058",
- "sha256": "1rllgalxa73dcgmakbly23m8iwhszq44hnjpkwx5hn11zfdgx0wx"
+ "commit": "9614d63fa5a5126bd5b68d62410894371da081bf",
+ "sha256": "1cvc9nk1cbym0ah6z0zmgv9bywj3lxvcaflywmavnn4gvxg67m9n"
},
"stable": {
"version": [
2,
1,
- 2
+ 4
],
"deps": [
"company",
"js2-mode",
"js2-refactor",
+ "json-process-client",
"seq"
],
- "commit": "a55f3c2eaa6620c4ce2e61f1d1897db4080a2cd4",
- "sha256": "07iah188fzmqyb3ag0rjygq68m317grpyibsgy64v8lzdrax0fbs"
+ "commit": "9614d63fa5a5126bd5b68d62410894371da081bf",
+ "sha256": "1cvc9nk1cbym0ah6z0zmgv9bywj3lxvcaflywmavnn4gvxg67m9n"
}
},
{
@@ -47675,14 +48123,14 @@
"repo": "clojure-emacs/inf-clojure",
"unstable": {
"version": [
- 20190531,
- 1511
+ 20191008,
+ 843
],
"deps": [
"clojure-mode"
],
- "commit": "0fc23509a1e66bcc3e694066f5067fdbd7b7961d",
- "sha256": "0w42ms5p5f1f7ir745srj73pj9jy1rfkbh3nf85ms05jgrs10fw9"
+ "commit": "173d0e7f118b0009bf210be115485160abf554b1",
+ "sha256": "1514vrdpl467bj4k1qg48fk3526x7cx66px49jy8ynayfs0dhgjc"
},
"stable": {
"version": [
@@ -47750,11 +48198,11 @@
"repo": "nonsequitur/inf-ruby",
"unstable": {
"version": [
- 20190609,
- 1126
+ 20190927,
+ 1649
],
- "commit": "928b1dd2c24c62be1900476cb4b7219eb2350856",
- "sha256": "0rm0ns3kqq0y05gskfkplbq0bz6lb1j92fx3hjgr340fm72ixb1c"
+ "commit": "fd8d392fefd1d99eb58fc597d537d0d7df29c334",
+ "sha256": "0axnjqgamy762ky5al56aryx0mp2b2i9almw9gkjcvxm7nc6zlq9"
},
"stable": {
"version": [
@@ -47859,6 +48307,21 @@
"sha256": "1h2q19574sc1lrxm9k78668pwcg3z17bnbgykmah01zlmbs264sx"
}
},
+ {
+ "ename": "info-rename-buffer",
+ "commit": "4750abf33d23bce4ca33eb1afe5b972f14f3af39",
+ "sha256": "05ab9apr6zx2k3xqfbq1jjfql9l3hdsf5i4pj8ay0b9lb2x11dpm",
+ "fetcher": "github",
+ "repo": "oitofelix/info-rename-buffer",
+ "unstable": {
+ "version": [
+ 20191005,
+ 2346
+ ],
+ "commit": "c983ae687481f39b8fd0d4ee9d85fd82b6a4ba03",
+ "sha256": "068flcy4rdzwjpzqqlxpcpcqjxd5f11xq00g55ph17vzxf4iwk3c"
+ }
+ },
{
"ename": "inherit-local",
"commit": "08b978724ff26b3ea7a134d307d888c80e2a92a9",
@@ -47991,11 +48454,11 @@
"repo": "ideasman42/emacs-inkpot-theme",
"unstable": {
"version": [
- 20190816,
- 715
+ 20190907,
+ 1024
],
- "commit": "54adc447d30e60b6e6c39220e8b36d93d63fecac",
- "sha256": "0pk8wgbxrly5lz0xzbk0kf5rx8z3cbyv9wj6l8s1zdc0bzj7i1nk"
+ "commit": "f6f148eebef72939b90a1822c1c3a257e22f802e",
+ "sha256": "0jxh9plw699b7w6vi6km4154ixgn5w8a1hx9v99s0icf8rpvrcnw"
}
},
{
@@ -48125,10 +48588,10 @@
},
{
"ename": "instapaper",
- "commit": "5b7972602399f9df9139cff177e38653bb0f43ed",
- "sha256": "1yibdpj3lx6vr33s75s1y415lxqljrk7pqc901f8nfa01kca7axn",
- "fetcher": "bitbucket",
- "repo": "jfm/emacs-instapaper",
+ "commit": "a187008942c14dc09f7952a3c5b2e320553cb5c9",
+ "sha256": "1lcrwf2ymlfkvn00djxdr0sd7cjbp2sjdszs3sfmsxffaqzmy9ap",
+ "fetcher": "git",
+ "url": "https://git.carcosa.net/jmcbray/emacs-instapaper.git",
"unstable": {
"version": [
20130104,
@@ -48136,6 +48599,15 @@
],
"commit": "8daa0058ede70025e9f020656abe0e0d01cd8f89",
"sha256": "0krscid3yz2b7kv75gd9fs92zgfl7pnl77dbp5gycv5rmw5mivp8"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 5
+ ],
+ "commit": "4714ed1b014615f8213e6f93637e4ec1d9d5a37a",
+ "sha256": "12giyb5mgq257jl76dxqv2irr3kx6sidbhjjaf9n9k2h42pip3p4"
}
},
{
@@ -48235,16 +48707,16 @@
"repo": "commercialhaskell/intero",
"unstable": {
"version": [
- 20190530,
- 1308
+ 20190919,
+ 216
],
"deps": [
"company",
"flycheck",
"haskell-mode"
],
- "commit": "61caa798bd385acf918b3639cf03f336b618e78b",
- "sha256": "0s6ik53anwljd858xs69awx42v70ifl3pcq8njx0msfqd4qalhlx"
+ "commit": "3848723cbeeaf61ca13e2a44c5b87a7fcd66b7c5",
+ "sha256": "14cg856gsla77qfxv4sivg7mw7mpv3pqk7l4nrh4vna9ziy78z3m"
},
"stable": {
"version": [
@@ -48519,28 +48991,28 @@
"repo": "Sarcasm/irony-mode",
"unstable": {
"version": [
- 20190703,
- 1732
+ 20191009,
+ 2139
],
"deps": [
"cl-lib",
"json"
],
- "commit": "c7cca52b197babd023fd4745704ae4b695af0d10",
- "sha256": "0iqjcgb2bg8g7fwsqigiifla8rc3air6ywvbpsrm91cb8a732mrc"
+ "commit": "e630c497f973fa4d1f0fd0e0fd87fb9d18666986",
+ "sha256": "0n2nfcq58md1p2xdhq1smh8v7lsyj0ci7ma5xyd6bkg5rvhsh10i"
},
"stable": {
"version": [
1,
- 3,
- 1
+ 4,
+ 0
],
"deps": [
"cl-lib",
"json"
],
- "commit": "79d5fc6152659f62b0f2e4df75665f5b625e9642",
- "sha256": "09i2f99ysisv2d4a0cpn75c0azhbashvz6ja5xy09i2a5svzgzpx"
+ "commit": "e630c497f973fa4d1f0fd0e0fd87fb9d18666986",
+ "sha256": "0n2nfcq58md1p2xdhq1smh8v7lsyj0ci7ma5xyd6bkg5rvhsh10i"
}
},
{
@@ -48582,10 +49054,10 @@
},
{
"ename": "isearch-project",
- "commit": "5c4f0a2f3080e9f4db82fb2bb9279418e4b9a7e2",
- "sha256": "0f6f3lm5p4h8z9bnhbl27pzgwdjj58pp8lsvc5dic0yzykx7j2y8",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "1dcxbi1x2nbasiy03mp7af2lcmkmxpfblbdcsnm9srmmpdz9lwff",
"fetcher": "github",
- "repo": "elpa-host/isearch-project",
+ "repo": "jcs-elpa/isearch-project",
"unstable": {
"version": [
20190505,
@@ -48676,10 +49148,10 @@
},
{
"ename": "isortify",
- "commit": "9d4ad18492e7f4a56a1515873bc0b66fa49829bb",
- "sha256": "0nlpjd6mrhv8iccdny0x5lb41dpyp6l7kiax4xqra0rb2vq0chcs",
+ "commit": "c756ccbae044bc23131060355532261aa9a12409",
+ "sha256": "0bqs84prlwk94x543mv22wjnz0s7gqbdi7ryvdc20s7vdr18fn82",
"fetcher": "github",
- "repo": "proofit404/isortify",
+ "repo": "pythonic-emacs/isortify",
"unstable": {
"version": [
20190315,
@@ -48688,7 +49160,7 @@
"deps": [
"pythonic"
],
- "commit": "4d8ecfcadf58ea51368e66ecf6f2a95a95953fcf",
+ "commit": "ae7fb7163ce075209543f72953c9f431d103f6a3",
"sha256": "0gslib1r9d9dqd9r89dfg8npkybjw2bjdrbs0z2qcnfa82x4fq4z"
}
},
@@ -48824,20 +49296,20 @@
"repo": "abo-abo/swiper",
"unstable": {
"version": [
- 20190825,
- 1023
+ 20191021,
+ 1017
],
- "commit": "79333e9edfee38ec3b367c33711a68bdf7783259",
- "sha256": "0dyclc51sprhmr5fi4lylhwsrn8v1jgyblwk9ly60jj84lj6278z"
+ "commit": "d2052bab4eecebab84e75b8a10b66f66a8574425",
+ "sha256": "0kxv03mb00ia48vk05xb6bqhkphjjh2pry6r2f5pyag0wgh5vyma"
},
"stable": {
"version": [
0,
- 12,
+ 13,
0
],
- "commit": "85d1e2e779ca92e6ef8e47d08f866b13d4d87aee",
- "sha256": "0xgngn3jhmyn6mlkk9kmgfgh0w5i50b27syr4cgfgarg6p77j05w"
+ "commit": "cd634c6f51458f81898ecf2821ac3169cb65a1eb",
+ "sha256": "0ghcwrg8a6r5q6fw2x8s08cwlmnz2d8qjhisnjwbnc2l4cgqpd9p"
}
},
{
@@ -48848,8 +49320,8 @@
"repo": "tmalsburg/helm-bibtex",
"unstable": {
"version": [
- 20190814,
- 1056
+ 20190918,
+ 1116
],
"deps": [
"biblio",
@@ -48860,8 +49332,8 @@
"s",
"swiper"
],
- "commit": "7e87161463c9c5ade3ed0e65aa3cde48c51b57de",
- "sha256": "1krn85fvd0438iqs2af8vlqp8am39z6lbkda2b3hi01frp7g8sx6"
+ "commit": "5a26b35c3fa223d4c74262137f34bb2f325c4411",
+ "sha256": "0nw35f2qr5pqswz1rbkgwvd2wmvg8hzjf419w9iffx1m858k99rf"
},
"stable": {
"version": [
@@ -48890,15 +49362,15 @@
"repo": "wandersoncferreira/ivy-clojuredocs",
"unstable": {
"version": [
- 20190810,
- 258
+ 20190907,
+ 2053
],
"deps": [
"edn",
"ivy"
],
- "commit": "7af9cef998a608a7f505120af4754779f3014106",
- "sha256": "1zg730gby1l0h1vrhbzwba2ybh1rk7n9gj1a369mcd2kkdlsvw2m"
+ "commit": "dd33a25f1de4339f75f05689ed60fe1b1c97f554",
+ "sha256": "0km1par5jhhbdbn1sccpsz0drqvmmjg1905xyc2bbfc2xx38cg1i"
}
},
{
@@ -48942,8 +49414,8 @@
"repo": "s-kostyaev/ivy-erlang-complete",
"unstable": {
"version": [
- 20190406,
- 1736
+ 20190910,
+ 426
],
"deps": [
"async",
@@ -48951,8 +49423,8 @@
"erlang",
"ivy"
],
- "commit": "f3a7088ba62746932ac0084e254e4235b93febcc",
- "sha256": "0sdxcx1ihb51khi5chdm80mzwh8ygfs86pndgh5gq8dzbqpi2ax4"
+ "commit": "95bb7da0f7d0e89b6732d1d14d4bc49007b8b794",
+ "sha256": "0jnpfxzzcgyrk7zdfnprchl6b15558zhn12a1pf3h3z6d3zyirql"
},
"stable": {
"version": [
@@ -48978,14 +49450,14 @@
"repo": "clemera/ivy-explorer",
"unstable": {
"version": [
- 20190722,
- 845
+ 20190909,
+ 1921
],
"deps": [
"ivy"
],
- "commit": "cb41a9e5df1cfad5877ab5429b9250e7ba082e4e",
- "sha256": "0svlix3sr2jlr5awdvism1akmnca0vn0mq072s38w1q19q461cii"
+ "commit": "a413966cfbcecacc082d99297fa1abde0c10d3f3",
+ "sha256": "1720g8i6jq56myv8m9pnr0ab7wagsflm0jgkg7cl3av7zc90zq8r"
},
"stable": {
"version": [
@@ -49088,28 +49560,28 @@
"repo": "abo-abo/swiper",
"unstable": {
"version": [
- 20190829,
- 630
+ 20191018,
+ 1251
],
"deps": [
"hydra",
"ivy"
],
- "commit": "79333e9edfee38ec3b367c33711a68bdf7783259",
- "sha256": "0dyclc51sprhmr5fi4lylhwsrn8v1jgyblwk9ly60jj84lj6278z"
+ "commit": "d2052bab4eecebab84e75b8a10b66f66a8574425",
+ "sha256": "0kxv03mb00ia48vk05xb6bqhkphjjh2pry6r2f5pyag0wgh5vyma"
},
"stable": {
"version": [
0,
- 12,
+ 13,
0
],
"deps": [
"hydra",
"ivy"
],
- "commit": "85d1e2e779ca92e6ef8e47d08f866b13d4d87aee",
- "sha256": "0xgngn3jhmyn6mlkk9kmgfgh0w5i50b27syr4cgfgarg6p77j05w"
+ "commit": "cd634c6f51458f81898ecf2821ac3169cb65a1eb",
+ "sha256": "0ghcwrg8a6r5q6fw2x8s08cwlmnz2d8qjhisnjwbnc2l4cgqpd9p"
}
},
{
@@ -49173,15 +49645,15 @@
"repo": "akirak/ivy-omni-org",
"unstable": {
"version": [
- 20190620,
- 1210
+ 20191013,
+ 423
],
"deps": [
"dash",
"ivy"
],
- "commit": "155acae1aa08d305731b292d62530e52711895f2",
- "sha256": "0i2v3wj0s8mwx69iw7lgdamdi2p41gy5iaaphk6hvb1r4shhhw8k"
+ "commit": "8d856238a5d93abec3b896f643a69960b50e821d",
+ "sha256": "026cz4pdcpnqcavsh1wgh2xpwp7n6wrd4d62bk8rc1caf49y0i26"
}
},
{
@@ -49260,15 +49732,15 @@
"repo": "tumashu/ivy-posframe",
"unstable": {
"version": [
- 20190819,
- 657
+ 20190928,
+ 554
],
"deps": [
"ivy",
"posframe"
],
- "commit": "d9ceee94171767b4aba6c55ebe93e51ccbe0fa8a",
- "sha256": "1ghn9n4lc50p94byi0z2vfgkwyh4q4i19j26dkqr2lyvfhsvvdwj"
+ "commit": "81f2ea14ddbdd4b840f18dd13ad3e30a6b791b4a",
+ "sha256": "0b5sip1lc61hxi6bpvkv96vy83xb7cjblssjnzm9yxlniqc778b9"
}
},
{
@@ -49279,27 +49751,27 @@
"repo": "raxod502/prescient.el",
"unstable": {
"version": [
- 20190728,
- 1607
+ 20191025,
+ 354
],
"deps": [
"ivy",
"prescient"
],
- "commit": "ea8e9fea4385272924d09c91220c7f2e9ac95b3f",
- "sha256": "1apb9v31ajq586f7mqachv238yv40gacrjmh2s8mnk45xil72swy"
+ "commit": "82a90c4142c369f4090a42536179c6029d3fdafd",
+ "sha256": "0n919w068j73dnlxfzsvzh7j385phi4z718pi6xq6cygkjkq9zq8"
},
"stable": {
"version": [
3,
- 2
+ 3
],
"deps": [
"ivy",
"prescient"
],
- "commit": "653ca4b66954b7f1b6e4635a574234dd316c11a3",
- "sha256": "0d60h4rfm5jcf8cf11z91wjqp0xcrviskqzyqhfliqvy2i2yl6ks"
+ "commit": "2f01b640e3a487718dbc481d14406005c0212ed9",
+ "sha256": "1wqk1g8fjpcbpiz32k7arnisncd4n9zs84dn3qn9y8ggjzldqy91"
}
},
{
@@ -49341,14 +49813,14 @@
"repo": "Yevgnen/ivy-rich",
"unstable": {
"version": [
- 20190707,
- 107
+ 20191025,
+ 432
],
"deps": [
"ivy"
],
- "commit": "e78fc4b9d467da338471f234393a1c791a6b0e6b",
- "sha256": "1y8lrzn24vg2pwck6l36w3s8qlpx1cpv54i6gf0jjncp6z9iwh4v"
+ "commit": "3f571704fa50e47174c92938d19c945a3bdf09b5",
+ "sha256": "00fcawjrfqzgnzcij1yrvnzbfqdghvgg94fihf97qs4qd79zzxb6"
},
"stable": {
"version": [
@@ -49378,8 +49850,8 @@
"ivy",
"rtags"
],
- "commit": "6289e66a69d0d5ff20b12da91e735d3984ad6f88",
- "sha256": "1ggdi4mgqw1cc0w6cijds7s4vb575v27g72h6md8h1jdsfv6pvrm"
+ "commit": "f2633f565fc5e7e6958993ef105225f4e68e43ba",
+ "sha256": "1bjgr7wa82ccrc25r7agfaq3iz7xlp1qchvkmkx3xy59jv4yafjz"
},
"stable": {
"version": [
@@ -49708,11 +50180,11 @@
"repo": "ALSchwalm/janet-mode",
"unstable": {
"version": [
- 20190605,
- 443
+ 20190917,
+ 124
],
- "commit": "d5555cc83c1893a1c0ea04d48857d5e71b138c06",
- "sha256": "1lzs5zh4ipvyxi5vzbcpxrdjrrb0vddbcajzcbsi0784cs3ndzkk"
+ "commit": "349eba576455f1c8f40acaa77ef222bf6432c4e7",
+ "sha256": "0c0idb1rfp7n99jq1jmjvgmv77f38jrvxjy95lx27j743i8zkb7d"
}
},
{
@@ -50016,28 +50488,28 @@
"repo": "tkf/emacs-jedi",
"unstable": {
"version": [
- 20160426,
- 456
+ 20191011,
+ 1750
],
"deps": [
"auto-complete",
"jedi-core"
],
- "commit": "d9b53d2ca103c46686f6fb4aa92d8af403107982",
- "sha256": "0rcmcc8d1mfwb8c9bqk8pa1smrdyn7vjcvi7s9cp71p070d2hvqm"
+ "commit": "9d5f29116c4d42cae561a9d69e6fba2b61e2cf43",
+ "sha256": "1bckxppfzd5gwn0aw4h86igb7igal9axqncq7j8zmflg7zppncf1"
},
"stable": {
"version": [
0,
2,
- 7
+ 8
],
"deps": [
"auto-complete",
"jedi-core"
],
- "commit": "8da022c8cda511428c72a6dc4c5be3c0a0c88584",
- "sha256": "0xbp9fcxgbf298w05hvf52z41kk7r52975ailgdn8sg60xc98fa7"
+ "commit": "9d5f29116c4d42cae561a9d69e6fba2b61e2cf43",
+ "sha256": "1bckxppfzd5gwn0aw4h86igb7igal9axqncq7j8zmflg7zppncf1"
}
},
{
@@ -50048,30 +50520,30 @@
"repo": "tkf/emacs-jedi",
"unstable": {
"version": [
- 20190620,
- 1820
+ 20191011,
+ 1750
],
"deps": [
"cl-lib",
"epc",
"python-environment"
],
- "commit": "d9b53d2ca103c46686f6fb4aa92d8af403107982",
- "sha256": "0rcmcc8d1mfwb8c9bqk8pa1smrdyn7vjcvi7s9cp71p070d2hvqm"
+ "commit": "9d5f29116c4d42cae561a9d69e6fba2b61e2cf43",
+ "sha256": "1bckxppfzd5gwn0aw4h86igb7igal9axqncq7j8zmflg7zppncf1"
},
"stable": {
"version": [
0,
2,
- 7
+ 8
],
"deps": [
"cl-lib",
"epc",
"python-environment"
],
- "commit": "8da022c8cda511428c72a6dc4c5be3c0a0c88584",
- "sha256": "0xbp9fcxgbf298w05hvf52z41kk7r52975ailgdn8sg60xc98fa7"
+ "commit": "9d5f29116c4d42cae561a9d69e6fba2b61e2cf43",
+ "sha256": "1bckxppfzd5gwn0aw4h86igb7igal9axqncq7j8zmflg7zppncf1"
}
},
{
@@ -50311,14 +50783,15 @@
"repo": "nyyManni/jiralib2",
"unstable": {
"version": [
- 20190720,
- 1329
+ 20190927,
+ 2010
],
"deps": [
+ "dash",
"request"
],
- "commit": "9e3c238d96a98d6d156dbb38dcbaecf1450b9d2e",
- "sha256": "1332jnn63wl00l9701qvjx9z6sxisygvn9bz366yhiq2racfrgb4"
+ "commit": "e913f8e4a994850d2cff18ce2b1f4177cac62c91",
+ "sha256": "022jndjwj0ml2w829id0nx43p24h6jpmilc12n9hiy4p80vjgy1y"
}
},
{
@@ -50528,11 +51001,11 @@
"repo": "torgeir/js-codemod.el",
"unstable": {
"version": [
- 20171104,
- 1154
+ 20190921,
+ 941
],
- "commit": "014e56c846487d1eeaf8a91dd503b9d96eb1510a",
- "sha256": "0s07ypjlqsx2pgq89wmr69w9p7ybc62abqp53kzf5gmdl6fdzgxq"
+ "commit": "056bdf3e5e0c807b8cf17edb5834179a90fb722b",
+ "sha256": "1s87jy1v7vjqpl09w2lafhliqhc5hm9061n7f2gfiw0hhv1xp6bw"
}
},
{
@@ -50612,6 +51085,24 @@
"sha256": "1fv8lpjanyn6chf502lz0j438hfxhqz1b0z2kxsd4jgy20ixchmg"
}
},
+ {
+ "ename": "js-react-redux-yasnippets",
+ "commit": "b5eef6590b2070ab46a5ab216cdcc6ab82174e47",
+ "sha256": "1mkcgpca4kzs31p0r5iwplwsm8jmf8w6h1v1a7qvpqan3gj7kidb",
+ "fetcher": "github",
+ "repo": "sooqua/js-react-redux-yasnippets",
+ "unstable": {
+ "version": [
+ 20190911,
+ 1259
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "70785d126a28ffcb314fb4b354319418586e06b1",
+ "sha256": "0adlnjkcq0kpadc1dqwfzrrk0xd4jc0rc4k8hbj6nh4dhc7shnk0"
+ }
+ },
{
"ename": "js2-closure",
"commit": "61bf3e70ae38a78184f0b373ff6f0db234f51cb2",
@@ -50868,10 +51359,10 @@
},
{
"ename": "json-process-client",
- "commit": "38cf8baad750427268659c8b25d35270add18317",
- "sha256": "0lv4xdihjphpg31zdzkzrhp715sj7y2sl87c6cz6akhlfz2mmm0h",
+ "commit": "a681f977631344190e2a35d9ac2cbb9a42402272",
+ "sha256": "0nf0lna15ymcn8wniz24ixxwr1qaznic9nym1q16ifwl72qryj79",
"fetcher": "git",
- "url": "https://gitlab.petton.fr/nico/json-process-client.git",
+ "url": "https://gitea.petton.fr/nico/json-process-client.git",
"unstable": {
"version": [
20190827,
@@ -51106,11 +51597,11 @@
"repo": "JuliaEditorSupport/julia-emacs",
"unstable": {
"version": [
- 20190813,
- 1326
+ 20191002,
+ 1352
],
- "commit": "db84928742b3e4189dcc81997e4a3cad3eac7b68",
- "sha256": "0hv43r037jacizmgql0sxxjj2g0f51k5zcxn7h30if86a6hhx659"
+ "commit": "ad6a4944feb61f5c7238cfaf6c99ae63544315c2",
+ "sha256": "1m4w0ha5zkclmdfr6wrpbwz1xqvjclbl63vxfsiq6qwmdajrq97g"
}
},
{
@@ -51121,20 +51612,20 @@
"repo": "tpapp/julia-repl",
"unstable": {
"version": [
- 20190828,
- 1646
+ 20190908,
+ 1717
],
- "commit": "94761603d368f05eaed3573312503db940f4edfe",
- "sha256": "1h3h5s0ls3shwgg6fl3sk0iszqdd90nz2kl5cpj1bbqfgw0fivmj"
+ "commit": "b8155b8a1e23e1ad740fd7bd49b5d841b1365c7d",
+ "sha256": "0qdn70h6k03l3xmv4xmbvrs1lx632jihhmkvjxk5hp4nk5phh9rk"
},
"stable": {
"version": [
1,
- 1,
+ 2,
0
],
- "commit": "6eb58ef8b2e922e042fb0aee399547291fce06a4",
- "sha256": "05siwlyafga6ihksmd4v7dlhn1c3f6vg4ns255apm7vnmfryzvkf"
+ "commit": "b8155b8a1e23e1ad740fd7bd49b5d841b1365c7d",
+ "sha256": "0qdn70h6k03l3xmv4xmbvrs1lx632jihhmkvjxk5hp4nk5phh9rk"
}
},
{
@@ -51287,8 +51778,8 @@
"repo": "dzop/emacs-jupyter",
"unstable": {
"version": [
- 20190828,
- 2043
+ 20191019,
+ 1519
],
"deps": [
"cl-lib",
@@ -51296,8 +51787,8 @@
"websocket",
"zmq"
],
- "commit": "aa9b634e7b26347a9b938da4cb97184b73651a64",
- "sha256": "0k1piakj4rzygy73jd6wv9hd6nhci3d056xfiaaala6vywfllvxg"
+ "commit": "9e3c1633586982e278f072dfaaabd115fa4d19f7",
+ "sha256": "08aig8b2xh9yr5dqj6jivv54vc93277xffmmd3q0k5ghf4087c8n"
},
"stable": {
"version": [
@@ -51353,14 +51844,14 @@
"repo": "TxGVNN/emacs-k8s-mode",
"unstable": {
"version": [
- 20181231,
- 741
+ 20191006,
+ 849
],
"deps": [
"yaml-mode"
],
- "commit": "1580ffd6ec7749ec6d069ccea95f8c926ca5db15",
- "sha256": "0sl8xyhfjnpg46l9f8c3wwwwnl551ly03sghi9a4mx42xpb1g5k0"
+ "commit": "5984acee6f3891afa78acfd1d08c44a24953a233",
+ "sha256": "11x602pmqa3833azkzph1ghm354nypv6rr1y53k6kdrkwviwkcpm"
}
},
{
@@ -51492,16 +51983,16 @@
"repo": "jmorag/kakoune.el",
"unstable": {
"version": [
- 20190803,
- 1525
+ 20191017,
+ 1502
],
"deps": [
"expand-region",
"multiple-cursors",
"ryo-modal"
],
- "commit": "fe8f8a02c38538f5f7776df3402b270639281ad8",
- "sha256": "15wnwjlh333c3aykk6w4xxy93ic6lzb7wmxaigxahg37a9qlp3hs"
+ "commit": "d73d14e69ea38076af50cc69f846808383ff539d",
+ "sha256": "0nk6jdy1y5mc3ryd0smiqghrk6iv34d5grc7f7migmshlbq0np92"
}
},
{
@@ -51580,16 +52071,30 @@
"repo": "magnars/kaocha-runner.el",
"unstable": {
"version": [
- 20190826,
- 916
+ 20190904,
+ 1950
],
"deps": [
"cider",
"parseedn",
"s"
],
- "commit": "5973bf9619d8c8b8f69824246210f31ea644127b",
- "sha256": "1sr7zbdbg3hkcbmpr7fwpw26d6j4vk0a3cxnlr2pq2f5zy9n0hax"
+ "commit": "1376d50f1fc91f9345351aeb4960b54bf83be59e",
+ "sha256": "06zp5kshcsxf91d4as0nw1ncxx1a8ii6npzvk485sjrghnldsccm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "deps": [
+ "cider",
+ "parseedn",
+ "s"
+ ],
+ "commit": "c4ec9cdc817e5f4c3f8d6013e44ea2df8f3eb07f",
+ "sha256": "062c6j8l2vv2vc23z5iq4b50p92k6bni1rayhhd8j0h5bkiml4w3"
}
},
{
@@ -51600,15 +52105,15 @@
"repo": "ogdenwebb/emacs-kaolin-themes",
"unstable": {
"version": [
- 20190812,
- 1835
+ 20190921,
+ 751
],
"deps": [
"autothemer",
"cl-lib"
],
- "commit": "9bc8dc1b69e6d858a523b98603201f60a51825fa",
- "sha256": "0jb0z1p1n3fdmqlwrv7x0ndcccijdw6025gw6sm6qdyj09a241vw"
+ "commit": "97c8d71977f12e4b791bdd0646c3e128bbe9fc1b",
+ "sha256": "0jv817fpbvadqvl44xf9ai8iw2w6jhlc3gsvb9by6cr6rbqyz9js"
},
"stable": {
"version": [
@@ -51820,8 +52325,8 @@
20190721,
1357
],
- "commit": "a243f0e0fdc9ee2b22ee19594de0c3b966b2445f",
- "sha256": "0pzppcxzspx1k6r7vd88fn56r21d0g1jvq4w0ymlzm63vwda4p6i"
+ "commit": "f4a27da3c09dbee62d63dd756bc44652f6319692",
+ "sha256": "1bw3ywjv49bmkxkcjfr8pnshy2kxklfx253cd1qaplw1g28d0plb"
}
},
{
@@ -51862,11 +52367,11 @@
"repo": "tarsius/keycast",
"unstable": {
"version": [
- 20190317,
- 135
+ 20191023,
+ 2135
],
- "commit": "7bbebe6442720031e4f5d1fd909c5be2fbb1c1dc",
- "sha256": "19a8vdzbfwk5klac5800aywlmrl41kfb7ansmfg4938i4gwnbak0"
+ "commit": "ab41be43b6d9efd5eff5ad7f22a997cc41e8daf0",
+ "sha256": "17hpyfkmr8ij3pr2cpl189svar2w5m01glmzvr95br6qmcifvvqa"
},
"stable": {
"version": [
@@ -52252,8 +52757,8 @@
20180702,
2029
],
- "commit": "cefc5a72118021e01660734d08d1ad2433c7131e",
- "sha256": "140h62p9i4h3jhf7rpsxn4ymg0dnxgf9kg070zc1fdvkj52gxxlw"
+ "commit": "7947abfbb77cb50c6d7cce7c8739ab630e028034",
+ "sha256": "0qcwnq5wmc9yd253yi4x6b3v2p5d9vwb3skq9qv9igc0nhmq9gvb"
},
"stable": {
"version": [
@@ -52273,14 +52778,15 @@
"repo": "stardiviner/kiwix.el",
"unstable": {
"version": [
- 20190811,
- 1116
+ 20191016,
+ 951
],
"deps": [
- "cl-lib"
+ "cl-lib",
+ "request"
],
- "commit": "d2ae3386b52a25c080d8502fc19207d997676cd2",
- "sha256": "0fsndh8nwpmnbv505r26cxxgxx8wlvx9h8pgb95im6q6pj2g7p9x"
+ "commit": "1fdcfcc6c080b5232cf588460283e16180a81dc9",
+ "sha256": "0088bnizccf372yivkw07x541ispmak8yy6ri2kqa15pkmszjfjh"
},
"stable": {
"version": [
@@ -52439,11 +52945,11 @@
"repo": "Emacs-Kotlin-Mode-Maintainers/kotlin-mode",
"unstable": {
"version": [
- 20190116,
- 2055
+ 20191021,
+ 1834
],
- "commit": "0e542ae2f78420618df8b0123dfe168a37dce333",
- "sha256": "1rv3vxw3dx477sapfd0hj3pkl3x0sihdsyl671azbcr02z67xl6p"
+ "commit": "6aa6d56c0a04e655e3cbfd1ab7904a45b73ae21c",
+ "sha256": "1kdka9yqbh3m8nb3rpvax1fpjij7r3r2j2whys5cyvvrjfmp8hlh"
}
},
{
@@ -52513,14 +53019,14 @@
"repo": "abrochard/kubel",
"unstable": {
"version": [
- 20190819,
- 1434
+ 20191014,
+ 2010
],
"deps": [
"transient"
],
- "commit": "88995f796e6ba20cc91abfb012c23fe5ab29e19f",
- "sha256": "0b33gp6qkclb1jxsxwjkwa74wri1zj2gx4sw11igbs58kkyzja52"
+ "commit": "9ed130c6e5d35b5fa41156f9ec62aa50365c23e0",
+ "sha256": "0xqjsng9fdf96h0sa01d0sza5qpkl14r2ccf0mmcg3l7c2xw8ibl"
}
},
{
@@ -52695,8 +53201,8 @@
20190320,
1827
],
- "commit": "d32477943ff6a2ea158c560a7b0c67537432bc2b",
- "sha256": "1mlpdma7s4q54k54740q7r0ykkhkr3avxq8h5zmirc3lib7rrxv0"
+ "commit": "17a21954725eae3bf7b77f724d7783936eb33742",
+ "sha256": "0q1j5h4nxpckfd5apwl4iqhgdnjpy2fjf9kqfknyiz7c7h7424d0"
}
},
{
@@ -53127,20 +53633,20 @@
"repo": "conao3/leaf.el",
"unstable": {
"version": [
- 20190828,
- 1538
+ 20191023,
+ 1053
],
- "commit": "daa8b5194f5a05b74a9eb46f6787f46ddfe5778d",
- "sha256": "05f9vdbk31jpqpc5afnwpnzwaswmlrvz9cr09ncrbjwcap06705i"
+ "commit": "d2e3367ca53718275a02c205ad68925c4c878d2a",
+ "sha256": "1785ydsjnbg1ldfjgwny2jv2xp1jq52bkbvxczc03zlfzi8vdp5k"
},
"stable": {
"version": [
3,
- 3,
+ 5,
0
],
- "commit": "cecaaed04bd0f756b3ac98922768d61229ed2322",
- "sha256": "1d70dfqlr5j2d5ns16dbdibhyfm6ss0khcj7hang3rhyiyrhpkra"
+ "commit": "c8ca1ecc892229dc16019fe3a7eb98a7307e746f",
+ "sha256": "1rgd59146wad92yc64las0qgx67k2ifgsw1vwhp40xvkd7kb0r6d"
}
},
{
@@ -53151,14 +53657,14 @@
"repo": "conao3/leaf-keywords.el",
"unstable": {
"version": [
- 20190816,
- 1859
+ 20190911,
+ 1658
],
"deps": [
"leaf"
],
- "commit": "c314c8295973f75034f0dc2946b18087d3408e66",
- "sha256": "114g469016pjar5wmr126cpd6cfiliz4w0lmw1rlmafc53h3wbr7"
+ "commit": "29cae76ea7817fe3719f4ebf6751cf434567e4d0",
+ "sha256": "0qsmixhn7jjlzxnxjs77nmyzqh6q0q9ssgjj7gnp3i4llv2jlj3y"
},
"stable": {
"version": [
@@ -53178,8 +53684,8 @@
"repo": "leanprover/lean-mode",
"unstable": {
"version": [
- 20180906,
- 1645
+ 20190914,
+ 958
],
"deps": [
"dash",
@@ -53188,8 +53694,8 @@
"flycheck",
"s"
],
- "commit": "9d6b8471e2044310b4cd7cd3213b1fc8f78ec499",
- "sha256": "0r8vfklrdw3f11cpk279jg3mnfbqm60m6klisqndkvir7vsrshni"
+ "commit": "b5ba739f68ef731c03247bf6db2708502c8ac46c",
+ "sha256": "1dx0a76l7w3ck23sdjymigk1hycqiawfwv24yz6wqyy74f1pcyjf"
}
},
{
@@ -53270,11 +53776,11 @@
"repo": "ledger/ledger-mode",
"unstable": {
"version": [
- 20190811,
- 2340
+ 20191008,
+ 1420
],
- "commit": "0114525803860b18a34624339825219bb6b8943e",
- "sha256": "04di2f51i0gqvwj8x2wn1f85a4iyg6gf8hkig4z244j8jv489v6d"
+ "commit": "214fad3ff8096bbd53cc079f71cfb845d12bfaa8",
+ "sha256": "05yjq15c7jj70vc5xp4k4h56nzybgibp48srkzjx8220q1w9656m"
},
"stable": {
"version": [
@@ -53309,16 +53815,17 @@
"repo": "kaiwk/leetcode.el",
"unstable": {
"version": [
- 20190827,
- 1032
+ 20191011,
+ 800
],
"deps": [
+ "aio",
+ "dash",
"graphql",
- "request-deferred",
"spinner"
],
- "commit": "2b2f44bbd46d3c8db23473833824a237073f6c23",
- "sha256": "1bcknygmz1ay2j90cs6rmiax5gsdwrysvv2w13cmz601bv3prrgf"
+ "commit": "86e9e167c10eed487cf6715a764527d84ccb35fa",
+ "sha256": "0mq4a2jv5lpy4wcfhp2cg63gdyqjv10ffb2702yjyd24nqmh3q76"
}
},
{
@@ -53492,11 +53999,11 @@
"repo": "fniessen/emacs-leuven-theme",
"unstable": {
"version": [
- 20190829,
- 921
+ 20190831,
+ 1008
],
- "commit": "69ab5c2db93cf58a57354a5d78e825d191109717",
- "sha256": "1bsshad7y9yicbzp2fp53jv4kkli1slkyw7b15db4bgzj8br55s5"
+ "commit": "026da5d614864a60bb151f0e75240a938e41923b",
+ "sha256": "008ynbzcszsbyj3pi9cm6ig1ks059xprkyhd74dnw8grlddwfimd"
}
},
{
@@ -53540,8 +54047,8 @@
20170121,
1254
],
- "commit": "9d15bc75a34052f7f2749bd38b3d0297ed60b29a",
- "sha256": "07ysaihl24fiqz8n6hvdvaj53nyalk68dsn073zb8q88sdmzf33w"
+ "commit": "a6c9922f31f59686bb48db1b8d5b75e74e79757a",
+ "sha256": "0wvk341hx0fsv4hihlr508grqzgzza0w3gfqh4c1f88mdpmm62if"
},
"stable": {
"version": [
@@ -53552,6 +54059,36 @@
"sha256": "0pgwi0h0d34353m39jin8dxw4yykgfcg90k6pc4qkjyrg40hh4l6"
}
},
+ {
+ "ename": "libbcel",
+ "commit": "31f4cbd89473f48ad6b4cc78028e8c51f1ee95a7",
+ "sha256": "03sfd2af54cm53hh8k3d0b9jy7cj4f1hgd93wqvqi7bbcz91krg2",
+ "fetcher": "github",
+ "repo": "DamienCassou/libbcel",
+ "unstable": {
+ "version": [
+ 20190919,
+ 1948
+ ],
+ "deps": [
+ "request"
+ ],
+ "commit": "f3eab975b7222eb4441743744eb8697bd82b57ec",
+ "sha256": "1sj2ijphaabkayiry0vzx0digrz5dkacl78agrv0lz51m8r5c4fd"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "deps": [
+ "request"
+ ],
+ "commit": "f3eab975b7222eb4441743744eb8697bd82b57ec",
+ "sha256": "1sj2ijphaabkayiry0vzx0digrz5dkacl78agrv0lz51m8r5c4fd"
+ }
+ },
{
"ename": "libelcouch",
"commit": "209d5c507cfe42b152c21a4534c3ba549186420f",
@@ -53566,8 +54103,8 @@
"deps": [
"request"
],
- "commit": "fd90ff7989632452434fc19a609805f7276821f3",
- "sha256": "0rpipbcfvi8ysx8aykj9sd23gkzq3knn656g84lb9h1zdjvc4zf1"
+ "commit": "29e369df4f96c7ad95bb33292de7a44122e0b4e7",
+ "sha256": "1xaa90dy1jq1yzcn9px931sgqsrsbwrc89lv0lss975jr827kfg2"
},
"stable": {
"version": [
@@ -53620,20 +54157,20 @@
"repo": "mpdel/libmpdel",
"unstable": {
"version": [
- 20190827,
- 1905
+ 20191015,
+ 803
],
- "commit": "5045f33e270b07ba98ea876e9a31f1acdedc6cd9",
- "sha256": "0l29q4f0qdkfadr0w7dz4cmv9psnpmf1vwqh1wzavp2g3jf038ln"
+ "commit": "983c27d11becf0078bc5b416746f171e7e238d6d",
+ "sha256": "0m8kb480v2cx3jniy73bim1g7kjsrvhh02li9d0qv7smala59nl3"
},
"stable": {
"version": [
1,
1,
- 0
+ 1
],
- "commit": "5045f33e270b07ba98ea876e9a31f1acdedc6cd9",
- "sha256": "0l29q4f0qdkfadr0w7dz4cmv9psnpmf1vwqh1wzavp2g3jf038ln"
+ "commit": "5cec415bd9db566088ec44b8bb4dd0a9cc76ccdc",
+ "sha256": "0qx7h6y9ih6qkijspzpn8gfpxjb486qrp0g4b9fpfzp8igc2ddik"
}
},
{
@@ -53644,11 +54181,11 @@
"repo": "buzztaiki/lice-el",
"unstable": {
"version": [
- 20170220,
- 943
+ 20191011,
+ 631
],
- "commit": "4339929927c62bd636f89bb39ea999d18d269250",
- "sha256": "0879z761b7gajkhq176ps745xpdrivch349crransv8fnsc759yb"
+ "commit": "3ff90745cd43d1cc41216a01f55f871a00692ffe",
+ "sha256": "08aiwyd0cxwd37jdy1m78l1r35h7fiq7wygpys2yrms6mdl8063b"
},
"stable": {
"version": [
@@ -53676,20 +54213,20 @@
},
{
"ename": "line-reminder",
- "commit": "ec27ae185c0308c445e461dc84f398483ca08c5a",
- "sha256": "0cm9cv7ak1ibm68d2xrz26smh80g79dxjlwxj5qd9zc3yjyksdvi",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "1s3ibn7c1j6m7wdkb0z37apgfc0g8vhhrqcnmldf19zi3k13bm0x",
"fetcher": "github",
- "repo": "elpa-host/line-reminder",
+ "repo": "jcs-elpa/line-reminder",
"unstable": {
"version": [
- 20190807,
- 440
+ 20191016,
+ 1528
],
"deps": [
"cl-lib"
],
- "commit": "707dc65001778e6476085fd7c30e1a1a3f84563a",
- "sha256": "07fd1gw1fwzc1ynfp59b06hm9hz93fnjhgkgxmhk464ri0nv0l60"
+ "commit": "ea7fc43210b5293beac4ac453b1bdde415f5183e",
+ "sha256": "13vspm2c53ph25li4xd77q2v7rqwsszsy8a842ivcgn0k3qn6w0r"
}
},
{
@@ -53703,8 +54240,8 @@
20180219,
1024
],
- "commit": "a00f8e380a8b87269a8ea0b68af63383a74ca5e8",
- "sha256": "024hsx5jhr9myssmw60mxyizbj184hq6zxv8b0k1ivll026hbnpi"
+ "commit": "fefdee6fb6f7467b5afee6a591f677d7981b60bf",
+ "sha256": "0l176qgqvm9ia0z17y0wag38drhjz748qc4241g5y7ia2n20y3mb"
},
"stable": {
"version": [
@@ -53918,20 +54455,20 @@
"repo": "marcowahl/lisp-butt-mode",
"unstable": {
"version": [
- 20190822,
- 1102
+ 20191024,
+ 1229
],
- "commit": "3199954a70594405ccb7b193e6e471264eae7b87",
- "sha256": "12qvycibrxsd3mlpj7x673kwfxhyhg3266ghf3r11179yh12hgy9"
+ "commit": "47007084d0893373731fabd828c4d4f28058f8e1",
+ "sha256": "10hc9021q9paxcr0n1pcl6pfyz73an53mvfz8aa1bym931v0fdvb"
},
"stable": {
"version": [
1,
0,
- 3
+ 4
],
- "commit": "f6ccceda1618aad0ec5a665dab912a7ebbc32f08",
- "sha256": "0w4i478aybp9ca09ixmzsda83l9igqx5ryv0g8vpkmd2vg3r0dcy"
+ "commit": "1ad373fd18d9db62b236d9d85603cd923f62f084",
+ "sha256": "0nhikhnqnxyxx6s14vafhfwd4ph2bwvxz0m7mn0arrf6hjqzw7ws"
}
},
{
@@ -53966,14 +54503,14 @@
},
{
"ename": "lispy",
- "commit": "e23c062ff32d7aeae486c01e29c56a74727dcf1d",
- "sha256": "12qk2gpwzz7chfz7x3wds39r4iiipvcw2rjqncir46b6zzlb1q0g",
+ "commit": "29a704fede83b02e19c2ad213485f0f651931753",
+ "sha256": "1c8gz46ab5f07dljv2chr0i5lini81wl3zx4zw8xjysb4a5dp05v",
"fetcher": "github",
"repo": "abo-abo/lispy",
"unstable": {
"version": [
- 20190827,
- 1516
+ 20191016,
+ 1250
],
"deps": [
"ace-window",
@@ -53982,8 +54519,8 @@
"iedit",
"zoutline"
],
- "commit": "7130b9d36f6d7eaed61e911772ba23e0c36659b3",
- "sha256": "1swihyr4ir3a74kl8vppbl8s4yf3mwrvrjrpdfgvva0jys03bhsx"
+ "commit": "9f48176fe9a170848be0a07506d50e29b5f0dba3",
+ "sha256": "1410nghcficskk44jh1afgxwapmkhahc22bm7584rxrwbw7rl26s"
},
"stable": {
"version": [
@@ -54042,8 +54579,8 @@
"evil",
"lispy"
],
- "commit": "e5e6cddb2cff93ee19f34d5dde8f46d010a90dad",
- "sha256": "1v07s2l3pww30rsmq4dp4nxwmkz7cvdgfbjsyfxkny4i87v5figz"
+ "commit": "56198f1c4488a52a0d0512c717dff36e8b9fbfd0",
+ "sha256": "1zrhn5pgjvwprwnsr85zs4rhs7mijyq3wbd5s0ff96m9n1dbj6vp"
}
},
{
@@ -54213,25 +54750,25 @@
"repo": "joodie/literal-string-mode",
"unstable": {
"version": [
- 20170301,
- 1530
+ 20191023,
+ 733
],
"deps": [
- "markdown-mode"
+ "edit-indirect"
],
- "commit": "2ca4fc08b8e19e6183b1f1db747bb0a4aa4f98eb",
- "sha256": "0wcz0lid05gnlmxpxm4ckw07cnxwjkyw6960nq7pylbjpg76g5ng"
+ "commit": "afffa86e626798ee9f9188ea3be2d5ee6ad17c39",
+ "sha256": "0nh14f3fv0b4i3rlx120s9a0s8gsaip0r15ki38446igl1macbq2"
},
"stable": {
"version": [
0,
- 1
+ 5
],
"deps": [
- "markdown-mode"
+ "edit-indirect"
],
- "commit": "46dd2b620df70d681261616f1a26afa4a032e2d5",
- "sha256": "02a1jvxk2m1lb21p3281cr9xyhzix31cn8a9la53w90sz569i66r"
+ "commit": "afffa86e626798ee9f9188ea3be2d5ee6ad17c39",
+ "sha256": "0nh14f3fv0b4i3rlx120s9a0s8gsaip0r15ki38446igl1macbq2"
}
},
{
@@ -54271,25 +54808,25 @@
"repo": "jingtaozf/literate-elisp",
"unstable": {
"version": [
- 20190804,
- 602
+ 20191012,
+ 606
],
"deps": [
"cl-lib"
],
- "commit": "1dd1aad8c4049423d1a7980191c25b4120681296",
- "sha256": "07gp0l2y7ysl13n368jaqnj52fpqcirj0faz95rrzrysq9ap8xn8"
+ "commit": "fb3b376de483d6923bb067caa01ebdb65a0161c2",
+ "sha256": "07difczbj38xzgxi0cig5zb05c9pn0fsbk00mmvfhk5rgxyfc71s"
},
"stable": {
"version": [
0,
- 6
+ 8
],
"deps": [
"cl-lib"
],
- "commit": "1dd1aad8c4049423d1a7980191c25b4120681296",
- "sha256": "07gp0l2y7ysl13n368jaqnj52fpqcirj0faz95rrzrysq9ap8xn8"
+ "commit": "2c91d49be2450650236638a8100d9373ccd59d70",
+ "sha256": "0i9468rh61l4xq918fgwk6li93lpm6zbn0lkpxr7pbvkgrl5xsr6"
}
},
{
@@ -54362,11 +54899,11 @@
"repo": "donkirkby/live-py-plugin",
"unstable": {
"version": [
- 20190614,
- 433
+ 20191021,
+ 102
],
- "commit": "4c378e4afdffb09ab3ca338d3b37d9a2b69d9584",
- "sha256": "1rchbqcpvdlrz3f95l5ldivh1hnf8hk67k8rpdi9zs7zva1hkdzv"
+ "commit": "4890a53082b4cacd8c64484dfae2037153453c8c",
+ "sha256": "015hh2mzm3b9kijl0dsxs3y2m6dxdwvblszy6ckp5j2qv32bmydn"
},
"stable": {
"version": [
@@ -54571,11 +55108,11 @@
"repo": "fourier/loccur",
"unstable": {
"version": [
- 20181203,
- 2038
+ 20191022,
+ 1955
],
- "commit": "194d70e6be82c4622b7460ca46ced38109ac0507",
- "sha256": "136ixa0w94imwacdjispcn81v5i7pb0qqzy6bzgjw2cr9z9539bx"
+ "commit": "4934c0560d2f63e6314b4584211a0cc0a7e671c4",
+ "sha256": "03hwvx3h64jj9nylmzpv2241b5fi97anhjjpwc5sjmfsq1wbf432"
}
},
{
@@ -54722,17 +55259,17 @@
},
{
"ename": "logpad",
- "commit": "5148207367bf236223e952a1e4fd600f90571b5e",
- "sha256": "1r688z3y98wnr15fg6zzcs4c4yw0l6ygah07gjhblj8b7q7i2qgg",
- "fetcher": "bitbucket",
- "repo": "tux_/logpad.el",
+ "commit": "c9747d42331eae20744f0bf4821e82a7832dbdc7",
+ "sha256": "0xmgbw9cv2gvhlfxjpwk41vg7ixrl1bw607h9ag5vga4s3sg5q8l",
+ "fetcher": "github",
+ "repo": "dertuxmalwieder/logpad.el",
"unstable": {
"version": [
- 20180607,
- 1915
+ 20190927,
+ 2043
],
- "commit": "506ace0e996f4d130ba9ccbc323caada7d516ff5",
- "sha256": "0z9dq37hsrzjkd3pynqmm8gbiv1sbqnjxlqkyq6lpps5fd9n5vsz"
+ "commit": "ff80fd198b196c4db9ca88ae8cf858cae491e121",
+ "sha256": "0hc6lp6qmiq9qhn6lx7whfv2w1zz5g2j6azzd9vs695kcbqk5qm7"
}
},
{
@@ -54974,8 +55511,8 @@
"repo": "emacs-lsp/lsp-java",
"unstable": {
"version": [
- 20190817,
- 1436
+ 20191016,
+ 1709
],
"deps": [
"dash",
@@ -54984,10 +55521,11 @@
"ht",
"lsp-mode",
"markdown-mode",
- "request"
+ "request",
+ "treemacs"
],
- "commit": "ccc40d3249c031e34fec13d4b82da694addb0274",
- "sha256": "1nb40nnj7caz2mvfwnpwnicck1ippvnqhypqcglp6bvvz75h32z9"
+ "commit": "52f61a539b9627122b39d9aff3885a1d94247d9a",
+ "sha256": "1hhkssgbv4s1q9ypav6k4siwnhmqhjhsdag3d6vs9jhsswysds0f"
},
"stable": {
"version": [
@@ -55026,6 +55564,38 @@
"sha256": "0r0ig73hsa0gyx8s6hr1mbdgf9m1n2zh2v7yhq3405l4if08s5m6"
}
},
+ {
+ "ename": "lsp-julia",
+ "commit": "ca6a06ed4de499bcccce05163ea3d54e4dca9539",
+ "sha256": "1frjvq2x0xsf93kgpy6bp9mgzfpr7zhacskmm6x8kknb9vj18h4v",
+ "fetcher": "github",
+ "repo": "non-Jedi/lsp-julia",
+ "unstable": {
+ "version": [
+ 20191011,
+ 1005
+ ],
+ "deps": [
+ "julia-mode",
+ "lsp-mode"
+ ],
+ "commit": "6b0d1a3f32c5e6c5b4c0993f30303569a9e9e9bd",
+ "sha256": "11jisy6161j4mpqyi06slfr3l7cmmnp7xc6701hszmvl935znn3l"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "deps": [
+ "julia-mode",
+ "lsp-mode"
+ ],
+ "commit": "6b0d1a3f32c5e6c5b4c0993f30303569a9e9e9bd",
+ "sha256": "11jisy6161j4mpqyi06slfr3l7cmmnp7xc6701hszmvl935znn3l"
+ }
+ },
{
"ename": "lsp-mode",
"commit": "1a7b69312e688211089a23b75910c05efb507e35",
@@ -55034,8 +55604,8 @@
"repo": "emacs-lsp/lsp-mode",
"unstable": {
"version": [
- 20190828,
- 1641
+ 20191024,
+ 2132
],
"deps": [
"dash",
@@ -55045,8 +55615,8 @@
"markdown-mode",
"spinner"
],
- "commit": "4835feb8189fab4b00ba54ba73837c931022931d",
- "sha256": "0f859fhy245aq6r0w4ibyaqjr1i4s1f850w4867f9knfw67zj64h"
+ "commit": "287cedc45a4ae1bf947f9341446cee0d15992d97",
+ "sha256": "1adwqkd0fi6zfwyk0nwkl6dcf4c8qsxl6bxwfg423b3v4r0av7mm"
},
"stable": {
"version": [
@@ -55098,8 +55668,8 @@
"deps": [
"lsp-mode"
],
- "commit": "156ba380cd6adc5df663420ae25c45046faeb68e",
- "sha256": "0flp7a4lw9bfjw1g57kl6amnf0hzv7arnhjasibm1nq4w0p10pvr"
+ "commit": "54dd19d88cd561061ac3103dc452d6854e5899fa",
+ "sha256": "1kg8n215hg8x9gxi2sdjyk8whbir20p3fzc50za1iwhiq3gzx1fw"
},
"stable": {
"version": [
@@ -55139,8 +55709,8 @@
"repo": "emacs-lsp/lsp-python-ms",
"unstable": {
"version": [
- 20190826,
- 1758
+ 20191024,
+ 2219
],
"deps": [
"cl-lib",
@@ -55148,8 +55718,8 @@
"lsp-mode",
"python"
],
- "commit": "d2f9bddc3988a43e680b858e9da44f7b0a0eae55",
- "sha256": "0hmmv8rjg89bgkhsf2wcllmz3rljhnnncg00wsiz6fiwh0dw8lpp"
+ "commit": "2760d4f7c87af4af9f9917e51de0263f6ed574ac",
+ "sha256": "133jqzmqyhl3wi9zs38cpfli5ybz598hbjw22j393rkbl210x6jl"
}
},
{
@@ -55197,8 +55767,8 @@
"repo": "emacs-lsp/lsp-treemacs",
"unstable": {
"version": [
- 20190829,
- 2110
+ 20190924,
+ 1757
],
"deps": [
"dash",
@@ -55208,8 +55778,8 @@
"lsp-mode",
"treemacs"
],
- "commit": "3adf416da2fcd7dd4eac33f87c3eff66d5b67624",
- "sha256": "0dqa7ny01v7k16pjrb42393blccvck650803hbsf1bp40ainaks9"
+ "commit": "76c304df80256bb3314b177af3db27cf2f527b87",
+ "sha256": "0dai66jmpisf0h2qaiq32mzdzmnlzh5k2fi00wzg3l25vj13vvdr"
}
},
{
@@ -55220,8 +55790,8 @@
"repo": "emacs-lsp/lsp-ui",
"unstable": {
"version": [
- 20190823,
- 541
+ 20191023,
+ 1558
],
"deps": [
"dash",
@@ -55229,8 +55799,8 @@
"lsp-mode",
"markdown-mode"
],
- "commit": "845fbd40f20d63b9eff592ddefeefd2263f6b27c",
- "sha256": "0z8cds09wv275ckx13dbw6z84lfldij2lfx0az7cj1hkfsrwhxd4"
+ "commit": "f25367c8b56921d2af42dd6b1dc1a8cd82ce6021",
+ "sha256": "0v1wi8nkikc35jxwnm6znwzw7xabw3kg3nn90zc03ysr3kn2gc61"
},
"stable": {
"version": [
@@ -55255,11 +55825,11 @@
"repo": "immerrr/lua-mode",
"unstable": {
"version": [
- 20190113,
- 1050
+ 20191015,
+ 733
],
- "commit": "95c64bb5634035630e8c59d10d4a1d1003265743",
- "sha256": "0cawb544qylifkvqads307n0nfqg7lvyphqbpbzr2xvr5iyi4901"
+ "commit": "52cc3e465a2d35dbcbad8a87fd5fe548840f5822",
+ "sha256": "1iw0z6dxd1nwjmlgy800xd2pgv40f798j831ca1hh3pbai5f84zm"
},
"stable": {
"version": [
@@ -55333,11 +55903,11 @@
"repo": "abo-abo/hydra",
"unstable": {
"version": [
- 20190821,
- 947
+ 20191025,
+ 1326
],
- "commit": "435c55e9f75a8cf3ae6a4ba0c7725e3dc4e5963f",
- "sha256": "0nzbjx5rnmzl0dhbrrmb5kbcmww6hzs1vwa62nlg9zfwq99zk42l"
+ "commit": "74b32f3ff004cd2ad7707722ffa7f85e8233a845",
+ "sha256": "0gp1j8n65v3r849c3h3xmn7c133wyh68szksqjwn1lzd2mpdnfny"
},
"stable": {
"version": [
@@ -55648,11 +56218,11 @@
"repo": "roadrunner1776/magik",
"unstable": {
"version": [
- 20190730,
- 1911
+ 20190922,
+ 1727
],
- "commit": "e7e32dc29382e1a59bb8963315d70fcc30473d6e",
- "sha256": "1nhmd94x3h047r08wnl7nlrx0g6d17zwnj0km0gxlli9m61qwczs"
+ "commit": "e66f288844bbd4035a18da9444b2dc163faa8ed8",
+ "sha256": "1dpxihdq6ssqkgj2i6v1zcnk7hkpmk5fjvlwki7jamqlizzvy9is"
}
},
{
@@ -55663,8 +56233,8 @@
"repo": "magit/magit",
"unstable": {
"version": [
- 20190825,
- 1416
+ 20191022,
+ 1848
],
"deps": [
"async",
@@ -55673,8 +56243,8 @@
"transient",
"with-editor"
],
- "commit": "bcd161d8ad3fcd80cbf69e7720c1d75a79415021",
- "sha256": "06nxrnln7cas9sk0g7k88r9z2zbvm32ki3mab1yn9w3abgralfyc"
+ "commit": "8b3172fc495d83830573461f877ed390e6408e0b",
+ "sha256": "09wcf1s7xnw4ssmg8bha94zw9ax9mz3prl5krl1l634740ajy6h4"
},
"stable": {
"version": [
@@ -55962,15 +56532,28 @@
"repo": "Ailrun/magit-lfs",
"unstable": {
"version": [
- 20190504,
- 1909
+ 20190831,
+ 118
],
"deps": [
"dash",
"magit"
],
- "commit": "5ff5648158413aec01ba178f349c33862e6e140a",
- "sha256": "1g1hawsmx2j69n25n2ip1lb8x3lshcyrn7f5w83dw56i5ywmyr0v"
+ "commit": "75bf6d3310eae24889589a09e96a4a855e1a11c4",
+ "sha256": "0dy2p6wyp5xqx4jnh1sf3v47dv09k7vv3c9mhjapcr1jpbpqj87w"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "magit"
+ ],
+ "commit": "75bf6d3310eae24889589a09e96a4a855e1a11c4",
+ "sha256": "0dy2p6wyp5xqx4jnh1sf3v47dv09k7vv3c9mhjapcr1jpbpqj87w"
}
},
{
@@ -55988,8 +56571,8 @@
"libgit",
"magit"
],
- "commit": "bcd161d8ad3fcd80cbf69e7720c1d75a79415021",
- "sha256": "06nxrnln7cas9sk0g7k88r9z2zbvm32ki3mab1yn9w3abgralfyc"
+ "commit": "8b3172fc495d83830573461f877ed390e6408e0b",
+ "sha256": "09wcf1s7xnw4ssmg8bha94zw9ax9mz3prl5krl1l634740ajy6h4"
}
},
{
@@ -56039,8 +56622,8 @@
"magit-popup",
"p4"
],
- "commit": "01e8bb24830861c50109878812550b4265cba82b",
- "sha256": "169a6aq3m2xq2mvf5v8yix0052j2va78a3c4lirzc2ypbvch3fys"
+ "commit": "cdc05f2d564409baac9ca15b1a2a0110a6ff12b7",
+ "sha256": "0s2zmfw449gyc8lf8cqwm47wnqy9g5nai72agvapam2h5613mx4i"
}
},
{
@@ -56175,14 +56758,14 @@
"repo": "magit/magit-tbdiff",
"unstable": {
"version": [
- 20190808,
- 1639
+ 20190918,
+ 6
],
"deps": [
"magit"
],
- "commit": "49faa9b94c338c0d5aa064f41b3acd50e5943421",
- "sha256": "0wznf26l8hvdp8p6nbvwbwg2v33yrms72nsw0gvyvnn5mqiw4v7b"
+ "commit": "2b08d93c5ead14f34f9cc3c3140ecf25b1531151",
+ "sha256": "1h5lnns6adpyah2i1k8fznbq4qf43sf64a4vp8s5h67q2ajlf52j"
},
"stable": {
"version": [
@@ -56205,8 +56788,8 @@
"repo": "alphapapa/magit-todos",
"unstable": {
"version": [
- 20190805,
- 552
+ 20190907,
+ 1321
],
"deps": [
"async",
@@ -56217,13 +56800,14 @@
"pcre2el",
"s"
],
- "commit": "8a88171b2785acce59081d8b12649731e6cf20c0",
- "sha256": "09pjb4k409gc0h51vb5az1shx02c1hx8cnvhi529n7dm4maildg5"
+ "commit": "a80dace2bf8bf3e697e3e8421189996adcecc900",
+ "sha256": "0qwzag9js6qy98m7c8gmaskg4qc82sf0aihcs5vcxdf8rgia2j9q"
},
"stable": {
"version": [
1,
- 4
+ 4,
+ 1
],
"deps": [
"async",
@@ -56234,8 +56818,8 @@
"pcre2el",
"s"
],
- "commit": "8a88171b2785acce59081d8b12649731e6cf20c0",
- "sha256": "09pjb4k409gc0h51vb5az1shx02c1hx8cnvhi529n7dm4maildg5"
+ "commit": "8557cf36260743674e7c3ecdb3038dca5106416b",
+ "sha256": "1rcl6j53yabxqk3jzgaxvm3wqq7rayf1hdib2v2fapw5b0layym6"
}
},
{
@@ -56400,28 +56984,28 @@
"repo": "jerrypnz/major-mode-hydra.el",
"unstable": {
"version": [
- 20190814,
- 952
+ 20191014,
+ 337
],
"deps": [
"dash",
"pretty-hydra"
],
- "commit": "d9fb688dae3e134bb1ff7f35474c58f33a5bb992",
- "sha256": "0aq2dk7c9jqq13p3bv0cq1aym00chcr5f9p3v93wl9h6pc3spbnc"
+ "commit": "fd362d2be7ed80889715ed8a30a61780a18ce6ea",
+ "sha256": "0vnmvpsm46izxlh0l0p89rhy6ifzzfpzk7j3kkf2608s6dy8hgcy"
},
"stable": {
"version": [
0,
2,
- 1
+ 2
],
"deps": [
"dash",
"pretty-hydra"
],
- "commit": "d9fb688dae3e134bb1ff7f35474c58f33a5bb992",
- "sha256": "0aq2dk7c9jqq13p3bv0cq1aym00chcr5f9p3v93wl9h6pc3spbnc"
+ "commit": "bba876b86f0b80495004bf185b2b1f6083a1ff3a",
+ "sha256": "08a15knkdq35pzjq82imff016fbfdib5q4glg2xmdy2b5fnk7jqa"
}
},
{
@@ -57127,17 +57711,17 @@
},
{
"ename": "marquee-header",
- "commit": "7fad3e54df480d61e5f83aab053e834e6ef72cc7",
- "sha256": "09yb1ds1r54xw2hsvb1w9i33a5qm0p79vgmj5ikw18zh68pnmzza",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "0hkrxx2gfilqhpjn7b0p3vvy8n4rqng3ac49kz7v45abqz5k79c0",
"fetcher": "github",
- "repo": "elpa-host/marquee-header",
+ "repo": "jcs-elpa/marquee-header",
"unstable": {
"version": [
- 20190805,
- 140
+ 20191017,
+ 1017
],
- "commit": "ac33b04c5a50de95c937fce1d80001a3c3c9b26d",
- "sha256": "1cq6v8wdmvi90fc3mnqpsscnv1m19cp9iv6ba1dv7y32fh1d95my"
+ "commit": "77e4becd8a812377eb219c77641a22a77b4fdfef",
+ "sha256": "0a51aw567gkdxz58v7h2vdfs2rmnvyllqhq4a1yy4gslr0xsqk9c"
}
},
{
@@ -57286,11 +57870,11 @@
"url": "https://git.code.sf.net/p/matlab-emacs/src",
"unstable": {
"version": [
- 20180928,
- 1526
+ 20191010,
+ 653
],
- "commit": "3fbca4259b2584bde08df07ba51944d7e3e2b4f4",
- "sha256": "1diqx2k16iyj5a7kcc58kyl6mzw05cyq6ia4z3fciz716gkspgpi"
+ "commit": "e8d02b83ee22e976c32de211b4a0f6513470c462",
+ "sha256": "081qracq0rkwq3dxgmamzjcjbqavskd6smiq5lzxnh5jm89i92xs"
}
},
{
@@ -57369,26 +57953,26 @@
"repo": "dochang/mb-url",
"unstable": {
"version": [
- 20181225,
- 1724
+ 20191006,
+ 1930
],
"deps": [
"cl-lib"
],
- "commit": "23078f2e59808890268401f294d860ba51bc71d9",
- "sha256": "07b9w9vd22ma4s3qhplmg84sylihz920byyi9qa7dwj7b59d4avf"
+ "commit": "7230902e1f844e0a1388f741e9ae6260cda3de69",
+ "sha256": "09qsc4dl9ngl11i92bfslpl1b1i5ksnpkvfp2hhxn3hwfpgfh64s"
},
"stable": {
"version": [
0,
- 4,
- 0
+ 5,
+ 1
],
"deps": [
"cl-lib"
],
- "commit": "23078f2e59808890268401f294d860ba51bc71d9",
- "sha256": "07b9w9vd22ma4s3qhplmg84sylihz920byyi9qa7dwj7b59d4avf"
+ "commit": "7230902e1f844e0a1388f741e9ae6260cda3de69",
+ "sha256": "09qsc4dl9ngl11i92bfslpl1b1i5ksnpkvfp2hhxn3hwfpgfh64s"
}
},
{
@@ -57443,11 +58027,11 @@
"repo": "dimitri/mbsync-el",
"unstable": {
"version": [
- 20181002,
- 640
+ 20191002,
+ 751
],
- "commit": "f549eccde6033449d24cd5b6148599484850c403",
- "sha256": "1pdj41rq3pq4jdb5pma5j495xj7w7jgn8pnz1z1zwg75pn7ydfp0"
+ "commit": "b62491c0e0d89eb9c66261a16d7ac81231c9c453",
+ "sha256": "1zlih37mkqjn2czl12zn7lgxxljvrwhqqpbksj9c91zn0f0rm3mz"
}
},
{
@@ -57679,11 +58263,11 @@
"repo": "skeeto/emacs-memoize",
"unstable": {
"version": [
- 20180614,
- 1930
+ 20191004,
+ 351
],
- "commit": "9a561268ffb550b257a08710489a95cd087998b6",
- "sha256": "1hsw7pjdy3mksg343v400068b6x7s45gzg0l74h5i4nq8bacv8km"
+ "commit": "b3129775a6d5c0d9cdacf5aede9683f5962c464e",
+ "sha256": "0mk7m2iwhpic688kdxgdyjg79rmp04daa0g8qgiiv1pm69ra2b71"
},
"stable": {
"version": [
@@ -57757,11 +58341,11 @@
"repo": "ocaml/merlin",
"unstable": {
"version": [
- 20190718,
- 1023
+ 20191025,
+ 851
],
- "commit": "a2fff37a09159ce94a3229ce137bb4e6e552339f",
- "sha256": "12786wl1zmhdj5kkvfm9zv02j0lnrja18yrbc286v33xa77lpiwc"
+ "commit": "c8b0f03efcb472f9dfe2277fde322bfafea305ea",
+ "sha256": "1fq2ahj6qnmyqp3yd33fqcdcd77mx61lkz3589mwbfb1aab3wxwn"
},
"stable": {
"version": [
@@ -57929,32 +58513,26 @@
},
{
"ename": "metaweblog",
- "commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
- "sha256": "0qgmcvq1fhgljia9ncjgvgrv0mzih0l9mglwbwcszn613wmx8bkg",
+ "commit": "cc7fde8f9de0f0e2ccc0c766884ca2b41d0bb5ce",
+ "sha256": "051xgrb620dq55k37wp6b32mdpw7x5ldn6r370n92xqlr1zmryhh",
"fetcher": "github",
- "repo": "org2blog/metaweblog",
+ "repo": "org2blog/org2blog",
"unstable": {
"version": [
- 20190212,
- 238
+ 20191018,
+ 242
],
- "deps": [
- "xml-rpc"
- ],
- "commit": "ec85ea7ec97347573613a578d2e91d5f8be74bae",
- "sha256": "0qlk90qdjhakxklv4n0m7p6n1ykgp1v4xj453jd15mm7dj8bnc5m"
+ "commit": "b02a056e1fa1a044a5bc5d44cc0fb0b8c62e1442",
+ "sha256": "1vglshyg8i5q17zxs9s5f0r5qwm18rah7qp7rd00pn4qg48zhy2b"
},
"stable": {
"version": [
1,
- 0,
+ 1,
1
],
- "deps": [
- "xml-rpc"
- ],
- "commit": "aa14380eb7e7b879a0c16c96866b20a987cd3f2a",
- "sha256": "146w9laysdqbikpzr2gc9vnjrdsa87d8i13f2swlh1kvq2dn3rz5"
+ "commit": "3cad357cd5c0f7f949fc6c7aa42d76155d036e78",
+ "sha256": "136l0lm8lv7fgpzply241fngxfl3ck11raamqwislyv0nnjwdfdi"
}
},
{
@@ -58006,17 +58584,17 @@
20190324,
1908
],
- "commit": "b79e48dd775de3e1a08e445953243f1491e244cf",
- "sha256": "0b4kmm09c70jsidrvpla99p9sy9n2d3x628fxrd2z0l6rfwpcyrj"
+ "commit": "2d23c1b0f3e8c53052a4a59f09da491e0548e9e0",
+ "sha256": "1jrzd36zxdl3hlpzl4jlbxg44imkmvbxhpg5433sinrs7lir63s2"
},
"stable": {
"version": [
0,
0,
- 20
+ 21
],
- "commit": "da2a5f72bd68daab4bb29bca5b4661535948a105",
- "sha256": "0njxgpqmk0rraf1l7i5s6i4lyrrq5fm3h13m9bsdcffz0jnyc9dx"
+ "commit": "6a7d904fae5014aabae8c91add220485108d485b",
+ "sha256": "0r0msrnbz9177cv1mlacsyd35k945nk2qaqm1f8ymgxa99zy124i"
}
},
{
@@ -58210,14 +58788,25 @@
"repo": "kiennq/emacs-mini-modeline",
"unstable": {
"version": [
- 20190824,
- 1308
+ 20191006,
+ 1733
],
"deps": [
"dash"
],
- "commit": "d0ed5f1ac1ff5cdb1db5fb2a99f2a09b9bc6f089",
- "sha256": "0i1b220b5kb0h0yhn5s3dgnlvf6r9hd0iazh9nqbnw28n92gvp01"
+ "commit": "d523de5918a842cd67c029535cf399278396264b",
+ "sha256": "0vqn7wdwyr5hqqimncq4w1m734bixzkz4kxx64v45v3x51xfcivw"
+ },
+ "stable": {
+ "version": [
+ 20191006,
+ 1733
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "fe7b723b5e609a721a15800faa9bd8b34fddd3e3",
+ "sha256": "047v8x9i8j6vcn3ba2kzy2lzdxwcm867bby0a5l297jp6mqfw92h"
}
},
{
@@ -58353,14 +58942,14 @@
"repo": "tarsius/minions",
"unstable": {
"version": [
- 20181030,
- 2101
+ 20190918,
+ 2048
],
"deps": [
"dash"
],
- "commit": "62f1d60a0852b4f83f64e6fc4c199eea967a34f7",
- "sha256": "0q8py0v06sq9yy7f3w6m45q3nflnd3vppf3i53s0xib3izxl2vca"
+ "commit": "ca6a3e77ddbd19cdf363ea71ba357096395a5de5",
+ "sha256": "16rplpbfy3dnvqqgavk9jb1f1ihr5875zlixd4zxb1pqxs3jkgw3"
},
"stable": {
"version": [
@@ -58482,11 +59071,11 @@
"repo": "jabranham/mixed-pitch",
"unstable": {
"version": [
- 20190307,
- 2210
+ 20191023,
+ 1025
],
- "commit": "15bb9ec6d8be0812a46917205be6c3a1c78f68ff",
- "sha256": "1458sy5b6bis1i0k23jdqk6hfqg0ghk637r3ajql2g19ym48rf58"
+ "commit": "f512a803fdfcea9ca17e0f57a16d4059b1772390",
+ "sha256": "0153lk2wv1jqacl5fxgqg07ypvz88pc8kyy96yrs7s18fp0fy55l"
},
"stable": {
"version": [
@@ -58798,8 +59387,8 @@
20181029,
516
],
- "commit": "bec2268fb42db58d22479a7b7ca3a956ead1af94",
- "sha256": "0yqdc1z6n9cpa16drjij2r77yqk9jhj1z532cnyqnk7r90avbhzs"
+ "commit": "26ac7d97abdeb762ceaeab6b892f3ed7e3412494",
+ "sha256": "0qbd4y10510q6r21zzxnr16ylrm7qh1qc7ll5wxab0yi03jaas3s"
},
"stable": {
"version": [
@@ -59033,11 +59622,11 @@
"repo": "belak/emacs-monokai-pro-theme",
"unstable": {
"version": [
- 20190425,
- 2303
+ 20190924,
+ 2152
],
- "commit": "747556c0cb38993c83ea8b6665869f42249d885a",
- "sha256": "1xfc3v1bwxpn3j42h6b1vy6knjrlmskq95c9vgdlia9ffz5pg7r3"
+ "commit": "b5dcc197cf36b181362b468da48b67a5f2199cae",
+ "sha256": "1shpaglvwdhybpkfmigz8vvw5500kybl5mri05h8sfn3b8331kfc"
}
},
{
@@ -59087,11 +59676,11 @@
"repo": "sanel/monroe",
"unstable": {
"version": [
- 20190109,
- 1347
+ 20190912,
+ 1624
],
- "commit": "2f472fdc09c1b36c291ddb5ed9aecc331fd7e082",
- "sha256": "1g9v7z2bk2vcknpff31y9pf6cw8xrb5hxsh8cjci7i5w2abp7qbj"
+ "commit": "508f5ed0f88b0b5e01a37d456186ea437f44d93c",
+ "sha256": "01dwnb7f6c49q8vr3qb9m5h1wh9h119axxalqa71wahi1ygrcydc"
},
"stable": {
"version": [
@@ -59111,20 +59700,20 @@
"repo": "jessieh/mood-line",
"unstable": {
"version": [
- 20190606,
- 1046
+ 20190930,
+ 1013
],
- "commit": "3560d8aafd8c856a218ff8fab5a30e1aa0db25b6",
- "sha256": "08qh8x0gd7byvfp03jpkd95h70djh8vrwpm451932zwf66j7fnay"
+ "commit": "9d116403a8b55d76d65f4d6d450a1f4def74013d",
+ "sha256": "1mz6877zls1xk64blghibryxqwn3n384l5y6szp9xjgkc9vf8zrg"
},
"stable": {
"version": [
1,
- 1,
- 2
+ 2,
+ 1
],
- "commit": "3560d8aafd8c856a218ff8fab5a30e1aa0db25b6",
- "sha256": "08qh8x0gd7byvfp03jpkd95h70djh8vrwpm451932zwf66j7fnay"
+ "commit": "43682f713eb1b95b98c1ec18e4f51daebd9ad43f",
+ "sha256": "03ms3yfp05b7c65pgjncm00r45fqgzal9xsp5gj58cm0yhclkcsd"
}
},
{
@@ -59135,20 +59724,20 @@
"repo": "jessieh/mood-one-theme",
"unstable": {
"version": [
- 20190606,
- 1111
+ 20191010,
+ 125
],
- "commit": "47fc825547664c3e3eb8f47f1a9cf74b23efc2c6",
- "sha256": "17zz3nc3r2cm4w99frzqxnh768vnmzs71p9zz9bj03wc222n1kv6"
+ "commit": "4236e4209f82f16c1d80c5dfb71148713ff333f6",
+ "sha256": "182b2j2lhy2n2cis7qdq0j9x2lkrxi525ycldb0gyvyzyhljw78c"
},
"stable": {
"version": [
1,
0,
- 3
+ 4
],
- "commit": "47fc825547664c3e3eb8f47f1a9cf74b23efc2c6",
- "sha256": "17zz3nc3r2cm4w99frzqxnh768vnmzs71p9zz9bj03wc222n1kv6"
+ "commit": "98c2f3ca27dce87cec1bd7ffd322b48129213588",
+ "sha256": "1rs9az5d4279jqldvx963qx0plbxp49c3crksmcq6si0x1iwg86x"
}
},
{
@@ -59159,11 +59748,11 @@
"repo": "tarsius/moody",
"unstable": {
"version": [
- 20190203,
- 1747
+ 20191023,
+ 2104
],
- "commit": "58af7973742bf381f5980413dfb21bf5f21b44f8",
- "sha256": "11kahx0gzchmn3yh5n0cms58cmsbrhd2kj380qcnlqv390cknqvy"
+ "commit": "d37945b3a4c6ea5560eaf15f39d98aa23537d70c",
+ "sha256": "03ppghb45ply0888pac8axazybyxfzrkl608qn09arhkxkyrpxpq"
},
"stable": {
"version": [
@@ -59183,11 +59772,11 @@
"repo": "takaxp/moom",
"unstable": {
"version": [
- 20190820,
- 1114
+ 20191004,
+ 18
],
- "commit": "52fe3ed21490e6a5266e5d2d7111199b997c2400",
- "sha256": "00zk1ssfmks4bnw8j4zfxnjsvjzgdf9a3wb08h8jnbpkh48zff7i"
+ "commit": "3a4cda574152b03e4c83bc4197947b88ee6713c3",
+ "sha256": "00pmbbc9a9643sfpj1vmk6hd0lwj1zpfpfxfi1vyalcs1f3b0qaa"
},
"stable": {
"version": [
@@ -59585,15 +60174,15 @@
"repo": "mpdel/mpdel",
"unstable": {
"version": [
- 20190827,
- 1854
+ 20190911,
+ 632
],
"deps": [
"libmpdel",
"navigel"
],
- "commit": "a16ff55e93109c37a204cde9a29699eb0b1d8e6f",
- "sha256": "01kvgs4z4ppif339l8dq74ipjjyl8rdh0k03xy7zdivdna3mf06i"
+ "commit": "e09904bf31ed465ea93ef2c165e8a6f705229f57",
+ "sha256": "159nb9ws800d5lx5plh8y0mmjl1y6spwhaxm9f5kxs6psa89mckj"
},
"stable": {
"version": [
@@ -59908,11 +60497,20 @@
"repo": "mkcms/mu4e-overview",
"unstable": {
"version": [
- 20190421,
- 612
+ 20191020,
+ 842
],
- "commit": "eb2d1e39c77c4725a8ee36dc68917aaf7b717b46",
- "sha256": "08mchv8q8q3mnpm69vc888jlv4iik4vlkxqpmkrsgimq1gyb80pj"
+ "commit": "c34f45b3ab9cce892835e14c6701b531a4f54cce",
+ "sha256": "1jc291xwym2ddiqvn83s2b2jw6a08dd63x0f6526qv8g3yr1jl1s"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "commit": "c34f45b3ab9cce892835e14c6701b531a4f54cce",
+ "sha256": "1jc291xwym2ddiqvn83s2b2jw6a08dd63x0f6526qv8g3yr1jl1s"
}
},
{
@@ -60074,11 +60672,11 @@
"repo": "manateelazycat/multi-term",
"unstable": {
"version": [
- 20190624,
- 1147
+ 20191020,
+ 218
],
- "commit": "0804b11e52b960c80f5cd0712ee1e53ae70d83a4",
- "sha256": "0apvidmvb7rv05qjnjhax42ma8wrimik5vxx620dlbv17svz7iyf"
+ "commit": "59f54c4680f62b37a19587f20b7d81da10faa146",
+ "sha256": "16fzzmk9b85ma0n3gfafyr01gz4wlw6qn79ai4gg1lfpl8qx58si"
},
"stable": {
"version": [
@@ -60199,16 +60797,16 @@
"repo": "Wilfred/mustache.el",
"unstable": {
"version": [
- 20170923,
- 1233
+ 20190905,
+ 2214
],
"deps": [
"dash",
"ht",
"s"
],
- "commit": "5e39654b933a18131146a0f3b3e3dc55c5058124",
- "sha256": "0ilsdrvqy9zn0yb1c8zh1zidag32rfb9xhm43qpfcg6n5w6c7r82"
+ "commit": "6443e1563ddf4eee2236ca1bb1fe87ddfde4b2bb",
+ "sha256": "0wbmknx4pjgfw6y1482a3y1fxv054r0k2qj3qzc47xrkdsjw47y8"
},
"stable": {
"version": [
@@ -60498,21 +61096,6 @@
"sha256": "1gxp1a26sna0p3xq6by8bk4yphhh32bvll0sdm2p3wkpdaci7hyz"
}
},
- {
- "ename": "mysql2sqlite",
- "commit": "9841d3cfd1ee954eb0ab9b2ca3a3f605eb0fd22a",
- "sha256": "1jblrbw4rq2jwpb8d1dyna0fiv52b9va3sj881cb17rqx200y3nd",
- "fetcher": "github",
- "repo": "echosa/emacs-mysql2sqlite",
- "unstable": {
- "version": [
- 20170725,
- 2216
- ],
- "commit": "8e6e74451c942e2e92f90dc13222b95a7dbb285e",
- "sha256": "18jriaj391n4wr0qiva68jf482yx9v9l4xagbzl9vw125lszkngb"
- }
- },
{
"ename": "myterminal-controls",
"commit": "4a82a45d9fcafea0795f832bce1bdd7bc83667e2",
@@ -61492,11 +62075,11 @@
"repo": "m-cat/nimbus-theme",
"unstable": {
"version": [
- 20190815,
- 1740
+ 20191023,
+ 1143
],
- "commit": "d2e627024ab7ce608b5203d4084c6a1588621545",
- "sha256": "12zdk161d18f1yl6linx2g4fw1p4x68n5fbikkklw0ssqj0liqy2"
+ "commit": "0b527301a4f6a32e3f794bb12b6d83d74f484ef2",
+ "sha256": "1s49nynik0jpbgi5zws5hcxkyjll0dfyh8xhv9q0hm00sxajqf2s"
}
},
{
@@ -61510,8 +62093,8 @@
20181024,
1439
],
- "commit": "61f90e918b608413daf07ffcb5c5c0930416951a",
- "sha256": "1wsq7ap7yn5lvvb52ggzh7qk8wr8s4lfiip9v2qp73q25mlqnxww"
+ "commit": "21bd971ea9381e6c36d3a3be17a501899922ff73",
+ "sha256": "1vahangjygyx9y6blwml55l7anb74fa9malll7jirz9lxcah1mnv"
},
"stable": {
"version": [
@@ -61594,11 +62177,11 @@
"repo": "NixOS/nix-mode",
"unstable": {
"version": [
- 20190703,
- 526
+ 20190904,
+ 1440
],
- "commit": "ddf091708b9069f1fe0979a7be4e719445eed918",
- "sha256": "0s8ljr4d7kys2xqrhkvj75l7babvk60kxgy4vmyqfwj6xmcxi3ad"
+ "commit": "5b5961780f3b1c1b62453d2087f775298980f10d",
+ "sha256": "0lyf9vp6sivy321z8l8a2yf99kj5g15p6ly3f8gkyaf6dcq3jgnc"
},
"stable": {
"version": [
@@ -61741,6 +62324,27 @@
"sha256": "1skbjmyikzyiic470sngskggs05r35m8vzm69wbmrjapczginnak"
}
},
+ {
+ "ename": "nnhackernews",
+ "commit": "40fec106c676f8207ec9c4553c3ec16c626b098c",
+ "sha256": "0nqbfzyb61a80900hg2sqimjvr765a3f94v07by55d1smifzwnff",
+ "fetcher": "github",
+ "repo": "dickmao/nnhackernews",
+ "unstable": {
+ "version": [
+ 20191024,
+ 2241
+ ],
+ "deps": [
+ "anaphora",
+ "dash",
+ "dash-functional",
+ "request"
+ ],
+ "commit": "f027a94a50f2fd83b1cd55787dba8a7ea56b02fb",
+ "sha256": "1dlrfd1nr5nlxidfrq06gb7vcl6n0p4i2wl0krqygsrdk8k6qmxp"
+ }
+ },
{
"ename": "nnir-est",
"commit": "ca17de8cdd53bb32a9d3faaeb38f19f92b18ee38",
@@ -61764,8 +62368,8 @@
"repo": "dickmao/nnreddit",
"unstable": {
"version": [
- 20190819,
- 2331
+ 20191007,
+ 1425
],
"deps": [
"anaphora",
@@ -61774,8 +62378,8 @@
"request",
"virtualenvwrapper"
],
- "commit": "c16a75a6fd99f5c47f10b349131be1c3d85bbe9b",
- "sha256": "0gabznnvg9gxd6rrvcik2iyrlmpl409vc5k37c3vfjrnjqnwk6ra"
+ "commit": "6ed30881fd1fc7776766ed3a31c1c1dd7d7c10a5",
+ "sha256": "0694acgkhribvv2pz0j8ia3bnc6pq51z033016a19nrgmf37arqg"
}
},
{
@@ -61801,14 +62405,14 @@
"repo": "emacscollective/no-littering",
"unstable": {
"version": [
- 20190811,
- 1527
+ 20191022,
+ 659
],
"deps": [
"cl-lib"
],
- "commit": "e1e79c0211ad924ca220dac3a7a1a2e40710c073",
- "sha256": "0cc4x62wynf71hzqk7gwx8g58gl4hm65pv0df8cir8g344li1c15"
+ "commit": "9f50a2fd5f5ca07323c09e47dc5456dc67c391cf",
+ "sha256": "1rg5a01msxdcxlw32wbvgjyvb6ddq2han818brmvp9cb7jzfkl4k"
},
"stable": {
"version": [
@@ -61866,11 +62470,11 @@
"repo": "NicolasPetton/noccur.el",
"unstable": {
"version": [
- 20150514,
- 2120
+ 20191015,
+ 719
],
- "commit": "6cc02ce07178a61ae38a849f80472c01969272bc",
- "sha256": "0wk86gm0by9c8mfbvydz5va07qd30n6wx067inqfa7wjffaq0xr7"
+ "commit": "fa91647a305e89561d3dbe53da002fff49abe0bb",
+ "sha256": "0slyy7qadc06cij7lgk7d36ym54dyh9a7vjdc38ysr1nh8g7agvm"
},
"stable": {
"version": [
@@ -62069,8 +62673,8 @@
"deps": [
"colorless-themes"
],
- "commit": "4f9d0ec5a078ab8442abdba0c35eb748728f3052",
- "sha256": "1h8ggaqvrdj8cyknps9anh2xz08ar94137gydvxy8xgrmpa3jnc1"
+ "commit": "12678144d17edf36d34e6bcdc5435593e191d96d",
+ "sha256": "0fld15h92193bnbmka3ikq27hggxvsikzlzq4pi2n3kknq9hyh56"
}
},
{
@@ -62114,17 +62718,17 @@
20190525,
1602
],
- "commit": "e13862f127394fd4addc5d2cf604b3af399c8377",
- "sha256": "0w2jzv378bkkvwb6k7i6sfpis6hf8zpgwx8m2sa44ry3hixqmbgw"
+ "commit": "7eb9615b30274033cc0c828244569c709906c40b",
+ "sha256": "1x4sbvfwxj2b0sfkfkhkfb9q780xwxc4hmfs6b192qjfi2zin6k3"
},
"stable": {
"version": [
0,
29,
- 1
+ 2
],
- "commit": "20842dfb6d64f4469c554525ab4c27c6571fbdfe",
- "sha256": "0mw3bxmbjc5wwadf7v7vj5zf4i40c9wvschxqklxxg11qy5lhfis"
+ "commit": "1c8d9e172e57bad26ebb94a8cb22a959ebedb9a3",
+ "sha256": "02v0h60vglkjivwq6n0xbg6pyf7dd9ndfmywk0amxq9gg0szybbl"
}
},
{
@@ -62355,11 +62959,11 @@
"repo": "joostkremers/nswbuff",
"unstable": {
"version": [
- 20190320,
- 740
+ 20191013,
+ 2037
],
- "commit": "362da7f3687e2eb5bb11667347de85f4a9d002bc",
- "sha256": "0l2xfz8z5qd4hz3kv6zn7h6qq3narkilri8a071y1n8j31jps4ma"
+ "commit": "19c04c1042fa1ff45bf923e9e50271c0bb57268d",
+ "sha256": "15qsc494xl4mwvwfybla45q7l43cxdd827d7nx4wfmbpw0c6cyc5"
}
},
{
@@ -62500,8 +63104,8 @@
"repo": "rejeep/nvm.el",
"unstable": {
"version": [
- 20190601,
- 813
+ 20190912,
+ 626
],
"deps": [
"dash",
@@ -62509,13 +63113,13 @@
"f",
"s"
],
- "commit": "4aeb672d543ce2372dcca289719092aa4c38a6cd",
- "sha256": "0phillz5dxpvhsi9rlah4988ksx2rcgagfw5iqf5lmfn7kp4604p"
+ "commit": "e93e5216e311c665c593ac68c5456d624120ea42",
+ "sha256": "11fa9g05gsh2yjvhy1xjc6hkby5z98mb2bmbshdp89fvlsdksv3i"
},
"stable": {
"version": [
0,
- 2,
+ 3,
0
],
"deps": [
@@ -62524,8 +63128,8 @@
"f",
"s"
],
- "commit": "d18b13e8275a57ee6c55dc71b671f02a8e6522ad",
- "sha256": "1624jj922l0bbav1v8szdr0lpyx0ng959fg3sspg1j15kgkir8kf"
+ "commit": "e93e5216e311c665c593ac68c5456d624120ea42",
+ "sha256": "11fa9g05gsh2yjvhy1xjc6hkby5z98mb2bmbshdp89fvlsdksv3i"
}
},
{
@@ -62663,16 +63267,16 @@
"repo": "astahlman/ob-async",
"unstable": {
"version": [
- 20190220,
- 710
+ 20190916,
+ 1537
],
"deps": [
"async",
"dash",
"org"
],
- "commit": "73e57a9297849bb50336799ae7858777b6b386ee",
- "sha256": "1g2agc6qwklg5cxfgm28fc5swlw54sn66lqk7q0hjn1gdq9rdqdm"
+ "commit": "80a30b96a007d419ece12c976a81804ede340311",
+ "sha256": "0jhgzmqds73yc49hc4yarp1a25pci9qmsvnpcxd7kv5saha40hnn"
},
"stable": {
"version": [
@@ -62756,11 +63360,11 @@
"repo": "nickanderson/ob-cfengine3",
"unstable": {
"version": [
- 20190520,
- 1929
+ 20191011,
+ 1721
],
- "commit": "4d4cd53ceaf8a756f48c02cb2e10476f3cda37c4",
- "sha256": "0gmgx4ynbk6fvahaglj9m1gpz8d3b038zag4m7g7pmz0xv5s4p1w"
+ "commit": "195ba4694a0ec18d3fb89342e8e0988b382a5b1a",
+ "sha256": "0a18fv141s35vh1mza2d6q5japrfjg5g6l7gp6qq4k4im3gmaf86"
}
},
{
@@ -63312,6 +63916,30 @@
"sha256": "1k2cfxaq38wv8s2x1c52v0bw55c12n399614l0dx1aqy2wh1afgi"
}
},
+ {
+ "ename": "ob-svgbob",
+ "commit": "77b7095d93730bfa193245df358fa50bef4faea6",
+ "sha256": "0746f70yswgqcx8awc7lfkh6r5982frlwirdij2pjb9ivw3a82h9",
+ "fetcher": "github",
+ "repo": "mgxm/ob-svgbob",
+ "unstable": {
+ "version": [
+ 20190911,
+ 300
+ ],
+ "commit": "5747f96fb4fdb8711546b3313df9412177eb3c1a",
+ "sha256": "1h60mzxp1wzd1kjkgligi04nb06mpkhij8imkva188inr0hzqlvm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "commit": "9a930b1ed93e5ce1818029b2ec9e7662c098dbf4",
+ "sha256": "18c35xpllwv1zflinkh3ki00vclp4nk52sanfl2vppq6a6hyda8a"
+ }
+ },
{
"ename": "ob-swift",
"commit": "b401383966398d3223032c59baa920ce594e5fef",
@@ -63402,14 +64030,14 @@
"repo": "lurdan/ob-typescript",
"unstable": {
"version": [
- 20150804,
- 1230
+ 20190910,
+ 946
],
"deps": [
"org"
],
- "commit": "9dcbd226cbfb75e790dd9de91d9401dde85a889a",
- "sha256": "1ycqdjqn5361pcnc95hxhjqd3y96cjjnaylrnzwhmacl38jm3vai"
+ "commit": "0b2766b9d136cd6d81f4c15f1ad4b28542f484b9",
+ "sha256": "0crz6k41bva53x3qhvvzzdlml4v18f43fja8nkrlgwpn103d0x9h"
}
},
{
@@ -63641,17 +64269,17 @@
20190726,
1452
],
- "commit": "bdd84a71da8eac87447e35b55782ec07f0d2aead",
- "sha256": "0cvfzz1i3lh9q5fl26sp98cqpv3mqjxlzlflv8hc3cdr8ascjm4g"
+ "commit": "9e26c0a2699b7076cebc04ece59fb354eb84c11c",
+ "sha256": "1dvcl108ir9nqkk4mjm9xhhj4p9dx9bmg8bnms54fizs1x3x8ar3"
},
"stable": {
"version": [
1,
- 7,
- 0
+ 8,
+ 1
],
- "commit": "6e6ff005fc1692489fa80767a23bc381ebc987e1",
- "sha256": "006x3fsd61vxnxj4chlakyk3b2s10pb0bdl46g0ghf3j8h33x7hc"
+ "commit": "05bf3e4b39b765658a5be95d1db2a30084d1f564",
+ "sha256": "0h4ysh36q1fxc40inhsdq2swqpfm15lpilqqcafs5ska42pn7s68"
}
},
{
@@ -63715,20 +64343,20 @@
},
{
"ename": "oer-reveal",
- "commit": "5982e377cd4cc2e72bfe4650c473c9f6b71085e3",
- "sha256": "1j43in64p0janfr48v2llh888c337cv66yl6xswidnqysndfg6pg",
+ "commit": "7c4e4d7c68548415413d4ad972b2c804e7d867f8",
+ "sha256": "04rwyhq500c8wcgfhg2xmb246az9sc6s2y45ichxhvvhvqgxjib3",
"fetcher": "gitlab",
"repo": "oer/oer-reveal",
"unstable": {
"version": [
- 20190826,
- 718
+ 20191024,
+ 907
],
"deps": [
"org-re-reveal"
],
- "commit": "f62fe1497be473d776d22094a02cfff381c61cfc",
- "sha256": "088khyvflg4akdszkpalv2j49g25g10b0xzrjji2h2lgb1w5dg1m"
+ "commit": "641c905b7453855bc99ba64441d1346b03d44fae",
+ "sha256": "1awcazkv01ry7430ghsqrk93pvpi79cd8wig3wlcj4fyvy1g9chf"
}
},
{
@@ -63783,6 +64411,30 @@
"sha256": "0y9fxrsxp1158fyjp4f69r7g2s7b6nbxlsmsb8clwqc8pmmg2z82"
}
},
+ {
+ "ename": "olivetti",
+ "commit": "10292536096e698f37e6ad81a4d5b6204beeb7cb",
+ "sha256": "0fkvw2y8r4ww2ar9505xls44j0rcrxc884p5srf1q47011v69mhd",
+ "fetcher": "github",
+ "repo": "rnkn/olivetti",
+ "unstable": {
+ "version": [
+ 20190923,
+ 840
+ ],
+ "commit": "c7784fe2dccf676310a9a602b6eedc2a7b667499",
+ "sha256": "1fbj9s49y5yx5i429awv9rybacfgvhwp7v5h0zw67bpgx4qs44pa"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 8,
+ 1
+ ],
+ "commit": "c7784fe2dccf676310a9a602b6eedc2a7b667499",
+ "sha256": "1fbj9s49y5yx5i429awv9rybacfgvhwp7v5h0zw67bpgx4qs44pa"
+ }
+ },
{
"ename": "om-mode",
"commit": "855ea20024b606314f8590129259747cac0bcc97",
@@ -63977,8 +64629,8 @@
"repo": "OmniSharp/omnisharp-emacs",
"unstable": {
"version": [
- 20190809,
- 341
+ 20191015,
+ 635
],
"deps": [
"auto-complete",
@@ -63990,8 +64642,8 @@
"popup",
"s"
],
- "commit": "b5afa053c8d3771d5567538bae89a03cc66e826c",
- "sha256": "0vhjfig0yx2ihqbq9ah6w7vs84lbnn5zlkjlda63kfs5cwwi43vp"
+ "commit": "e658a18a762438c3e1737612737b05d02a21ca2a",
+ "sha256": "1m4xqcn586f0gn305kig502480zlnvmrv98nmdkn36fbwgg96hla"
},
"stable": {
"version": [
@@ -64317,11 +64969,11 @@
"repo": "abo-abo/orca",
"unstable": {
"version": [
- 20190701,
- 1127
+ 20190925,
+ 915
],
- "commit": "b07b69ba0052a0dd4ef59a20ec0e54f3c8cf137e",
- "sha256": "12ahmqqvnl1vaf8qc4smsk6727bzmv3qja79kb00g3yf4k1r0nhk"
+ "commit": "68c9dbe235b1f97f12ff0f82878bb9e0ac971b1f",
+ "sha256": "0k5xsz0mlg4yhra80pixj10zl8dmy78r68hhd5q24dwqg6yic7f0"
}
},
{
@@ -64454,20 +65106,20 @@
"repo": "rksm/clj-org-analyzer",
"unstable": {
"version": [
- 20190827,
- 2211
+ 20191001,
+ 1717
],
- "commit": "e55960609c1ccd5feda307e28e72eac1f07e8e28",
- "sha256": "0y1x04046gifmky3i46i23anr6q2f7ynj7lxp18v2iah3ri99v8f"
+ "commit": "19da62aa4dcf1090be8f574f6f2d4c7e116163a8",
+ "sha256": "1zfc93z6w5zvbqiypqvbnyv8ims1wgpcp61z1s152d0nq2y4pf50"
},
"stable": {
"version": [
+ 1,
0,
- 3,
- 5
+ 4
],
- "commit": "10fe5da1bbad72093b784fb8c4c262e9daaa8b97",
- "sha256": "0gf3bw8c5yll07mvh0ippvkqyf3m5bf36mwxabmmc64fpy0xb3jc"
+ "commit": "19da62aa4dcf1090be8f574f6f2d4c7e116163a8",
+ "sha256": "1zfc93z6w5zvbqiypqvbnyv8ims1wgpcp61z1s152d0nq2y4pf50"
}
},
{
@@ -64622,14 +65274,14 @@
"repo": "Kungsgeten/org-brain",
"unstable": {
"version": [
- 20190830,
- 757
+ 20191018,
+ 1325
],
"deps": [
"org"
],
- "commit": "e8a0dd5dd04c17dbbc954f3f2ec985996a539f01",
- "sha256": "05l2yy3886nvkplca09q45lpzpwzx8fxd7fr96b4nb5i1187bagx"
+ "commit": "94727f6d6b5bdf1ba3fc9471075980a14916ac8c",
+ "sha256": "10mmi1nfhphrxck4g5fnmdicdcz7a8bmvb131bn5962jrhyy3vsj"
}
},
{
@@ -64664,14 +65316,14 @@
"repo": "dengste/org-caldav",
"unstable": {
"version": [
- 20190817,
- 1004
+ 20191024,
+ 724
],
"deps": [
"org"
],
- "commit": "a563500c9884f38ce08793e2964f8274adde163d",
- "sha256": "18qi1iv5dc0gsvkv9ifal3cjpm568nlb907v8a53cnm4439x1l0l"
+ "commit": "f530b94b6f8d8d1f8a207e48986da75227bd78a0",
+ "sha256": "0b5gw1m646fq7xlq8966rlmqs63p5dgrq71cjc943s45mli0vvcs"
}
},
{
@@ -64727,14 +65379,14 @@
"repo": "Chobbes/org-chef",
"unstable": {
"version": [
- 20190815,
- 1459
+ 20191017,
+ 2015
],
"deps": [
"org"
],
- "commit": "8715302a16b5dc2cafee732a4e6b10a263d65328",
- "sha256": "0l656xd2zp7l7xb5qs8fw8qsa8sdw5fp305lwiz66zq041xcpg4w"
+ "commit": "440e0a11b4af85f558aa138de58d347020439f0b",
+ "sha256": "1c30ssi533gi1rp865fkrbxp7igzpwbrxr4hmmpxhs6qsj1f8pwi"
}
},
{
@@ -64825,11 +65477,11 @@
"repo": "mallt/org-clock-today-mode",
"unstable": {
"version": [
- 20161014,
- 920
+ 20190915,
+ 701
],
- "commit": "02b8fd541a01040405a9a1400c46dcb68b7c2a3a",
- "sha256": "1gbkrgbpsrwkjd199giffim8jvx1n4dqrsyk53sz1swj9dlhxgp9"
+ "commit": "18af3fede1aa0ccab83ce9195f94f9097f51c548",
+ "sha256": "0knjks1rzl7p38r36g7a186mlxsc5dr88a7q0mxjsgg86vjx1xwf"
}
},
{
@@ -64976,15 +65628,15 @@
"repo": "vapniks/org-dotemacs",
"unstable": {
"version": [
- 20190116,
- 2155
+ 20190903,
+ 2024
],
"deps": [
"cl-lib",
"org"
],
- "commit": "5f504f36af6bcb9dbe9869c7ed54851d3db742e7",
- "sha256": "0pxphad9qxssqxr50g0mf20b7247xjp9a6fmb494bj8yv6wnn9m9"
+ "commit": "ee59739c2d59151fe7d7d3034e87c7691120a5be",
+ "sha256": "17xrjhfjahryawrmkd2p0yi7pfxfvgdfhh4n18jdmfkrr6gllavg"
}
},
{
@@ -64995,14 +65647,14 @@
"repo": "abo-abo/org-download",
"unstable": {
"version": [
- 20190830,
- 1448
+ 20191016,
+ 1227
],
"deps": [
"async"
],
- "commit": "10c9d7c8eed928c88a896310c882e3af4d8d0f61",
- "sha256": "0i8wlx1i7y1vn5lqwjifvymvszg28a07vwqcm4jslf1v2ajs1lsl"
+ "commit": "29d919126fac7277261bce96c99744e35d3c193d",
+ "sha256": "0514i261n9lca3dwqn8s9km3f06xcy1y6l355n49ivrh06kikwc7"
},
"stable": {
"version": [
@@ -65274,17 +65926,16 @@
"repo": "kidd/org-gcal.el",
"unstable": {
"version": [
- 20190826,
- 2152
+ 20191018,
+ 921
],
"deps": [
"alert",
- "cl-lib",
- "org",
+ "request",
"request-deferred"
],
- "commit": "149ea8ee6ce538742d65d5a7925ab4536f421b1d",
- "sha256": "02myllpdlizaqxfa8c8dk14481ly3c1yzb79dg1acna132p6sn93"
+ "commit": "36e9933b0238acb245e6d8dc89944583482fee1e",
+ "sha256": "0jvav64yysxf0rvfmkx8mvpx2cw2d3ppq8wyx8bp9vdi027czg3n"
},
"stable": {
"version": [
@@ -65384,11 +66035,11 @@
"repo": "marcIhm/org-index",
"unstable": {
"version": [
- 20190829,
- 1443
+ 20190920,
+ 356
],
- "commit": "687c10cb4a2c4a66730bdfce161068bc6b0d2fa2",
- "sha256": "1nnj7zzcbrmlnnd6q6739pqm8jsmlik2ci6zlfpd05sj7kmg0l19"
+ "commit": "aba9b1ea49e83c541c544e4030fcc2e0a55c908b",
+ "sha256": "1rpbas9svwni6nz5jywvxxvan0lgrqi100aby1aivi3prsmh6jhy"
},
"stable": {
"version": [
@@ -65428,16 +66079,16 @@
"repo": "ahungry/org-jira",
"unstable": {
"version": [
- 20190712,
- 443
+ 20190930,
+ 1406
],
"deps": [
"cl-lib",
"dash",
"request"
],
- "commit": "d1d2ff6155c6259a066110ed13d1850143618f7b",
- "sha256": "064pxsf5kkv69bs1f6lhqsvqwxx19jwha3s6vj8rnk8smawv0w9r"
+ "commit": "5123c29867e5da54d80e92f9a5a4259144451404",
+ "sha256": "1j45whlsclwq9v0c98ni4y5p04slmlwgwsbbr7saaxgv9xmv4yfc"
},
"stable": {
"version": [
@@ -65463,11 +66114,11 @@
"repo": "bastibe/org-journal",
"unstable": {
"version": [
- 20190826,
- 1919
+ 20191011,
+ 1315
],
- "commit": "cb15adcec09a891911bd2a85cbbfd45502e65f00",
- "sha256": "10daayd273fc1vz6zxzjbi2blww12y2vzg93awmhn9awy5plg75z"
+ "commit": "19e3b4dd07d8b0145896011a2b4522234b62a50c",
+ "sha256": "1bacprp42abk84hg0ha44pq9n15rdrvvd2pvdjw5yhnqansnx8l5"
},
"stable": {
"version": [
@@ -65502,30 +66153,30 @@
"repo": "gizmomogwai/org-kanban",
"unstable": {
"version": [
- 20190821,
- 2107
+ 20191003,
+ 1455
],
"deps": [
"dash",
"org",
"s"
],
- "commit": "dd259135a4c3a320e020a335ea27fb4a2e488a53",
- "sha256": "0k62s4kz8qmfq21r2jz7kfcyn6ydwxzfa5s2s2f26jny8flqva1d"
+ "commit": "3007d636f0c7b69d767d7adcca4ab462708f9610",
+ "sha256": "0mqi85gfaq60dxvm5r7rn6mi479fk26dy0nmss7dnqxwm2s39414"
},
"stable": {
"version": [
0,
4,
- 13
+ 21
],
"deps": [
"dash",
"org",
"s"
],
- "commit": "03387a779167c4acbc04d4970cd33c52a2ca0bcd",
- "sha256": "0arjx1a7skdlmagyy0bbxwc134dn951y99yv4jg6l64j1f31y0yg"
+ "commit": "3007d636f0c7b69d767d7adcca4ab462708f9610",
+ "sha256": "0mqi85gfaq60dxvm5r7rn6mi479fk26dy0nmss7dnqxwm2s39414"
}
},
{
@@ -65672,29 +66323,30 @@
"repo": "alphapapa/org-make-toc",
"unstable": {
"version": [
- 20190104,
- 512
+ 20191014,
+ 2307
],
"deps": [
"dash",
"org",
"s"
],
- "commit": "9adeaf9da23fd3f7600821526f7e41f4ed17dd4a",
- "sha256": "122fvv6waq70qcccgwnmyfmci48k8zc7vzmagadypmw8grgdjdx2"
+ "commit": "d2f61e3c7e995adf0954cd85139842e57d744eb4",
+ "sha256": "042z0l0hhrfm01jj1r0yd120a67xflzgv5fz6kf28202d6apsv9v"
},
"stable": {
"version": [
0,
- 3
+ 3,
+ 1
],
"deps": [
"dash",
"org",
"s"
],
- "commit": "f1a51017b0f85e0cb9ae7d0d8240f2115f57886c",
- "sha256": "0syhj8q4pv33xgl5qa6x27yhwqvfhffw5xqp819hj4qs1ddlc7j5"
+ "commit": "e92fd443c998532ff786361ae72b6981dc1f2ff0",
+ "sha256": "03vgygni5f1qrmchwy0szks47hwhpl21qvk4wlwh2bd79rxnhc1f"
}
},
{
@@ -65796,14 +66448,14 @@
"repo": "jeremy-compostella/org-msg",
"unstable": {
"version": [
- 20190822,
- 2115
+ 20190916,
+ 2334
],
"deps": [
"htmlize"
],
- "commit": "df89f46a86abed5c39d66ad35b47ab763dd27781",
- "sha256": "1xm1ym4x1916h8nkm5zpj5q25sj2n9iawibmf2ifk0yr8faaz2jb"
+ "commit": "7616a9760bd1e3fb0e6a22f6e1cbc2bf71a733df",
+ "sha256": "0mccaw4wvh4624iyxfbv1jr01z7fkjg5mcl56scq164daznm200g"
}
},
{
@@ -65864,28 +66516,28 @@
"repo": "weirdNox/org-noter",
"unstable": {
"version": [
- 20190829,
- 2358
+ 20191020,
+ 1212
],
"deps": [
"cl-lib",
"org"
],
- "commit": "54e1bc5c1dbb291d4ed55c7961633b2977374055",
- "sha256": "1kyxphldkqggn384mplvj8r3rbfwz7q8ba64i43b4j0ldglbvwgl"
+ "commit": "d051a5909878e2214422fd275968ab4d7ef9bcab",
+ "sha256": "12v13l4va28abjgcq1q2lzml8cahh5qbbl0wzvbm41y9cmlbgmxq"
},
"stable": {
"version": [
1,
- 3,
- 0
+ 4,
+ 1
],
"deps": [
"cl-lib",
"org"
],
- "commit": "8fb007c329fee8cceca97338ae0e88aaafcb8535",
- "sha256": "0qcdw1px07ggnp74gb3hibd69cq8np9bdpcpvlkm5k32qxhsnwjy"
+ "commit": "32900872c82195e757ec6249a329490a0ca2199e",
+ "sha256": "1vwfpdi7hfkxx4vi0cwg7rvqby3i0mymzdkyzrqzv30dazmcjpag"
}
},
{
@@ -66093,6 +66745,21 @@
"sha256": "0lrcj3mcdfcdrndivhj5ds386zrsy78sfg0i8126wwwc5lfh48vq"
}
},
+ {
+ "ename": "org-picklink",
+ "commit": "c6c44a3e5a1c5e4acdf76c4d6f2f4b695aa6938e",
+ "sha256": "0gr4psgps9775hh0pvcyq3x2irrzkzpm5ghcnc9ddp5hn41yv57m",
+ "fetcher": "github",
+ "repo": "tumashu/org-picklink",
+ "unstable": {
+ "version": [
+ 20190902,
+ 654
+ ],
+ "commit": "e8c95e188b60ff84d794cbedbcce6732ccb82e4f",
+ "sha256": "05b488h1b5yvh0892358ndina2lywh67lhvqp180rp5ivz7zqm10"
+ }
+ },
{
"ename": "org-pivotal",
"commit": "c1257d38bbd3a9944135b000e962f30ab28f5464",
@@ -66327,30 +66994,41 @@
"repo": "alphapapa/org-ql",
"unstable": {
"version": [
- 20190830,
- 1527
+ 20191019,
+ 710
],
"deps": [
"dash",
+ "dash-functional",
+ "f",
"org",
+ "org-super-agenda",
+ "ov",
+ "peg",
"s",
"ts"
],
- "commit": "58b298153c482e6517995bb94f28e03aaf9924bd",
- "sha256": "0zkfczvmfwm09diihxr2yn1mdi7hxcd7p4hj4j0fkq6yrf296ca4"
+ "commit": "0d6523f85b48080582a84b1dc1213f80de40d3c6",
+ "sha256": "0g01yrf5zcpnf6m4q37b3qzkqgs5s97b6l5wdgf9yy8rgj7rbpgr"
},
"stable": {
"version": [
0,
- 1
+ 3,
+ 2
],
"deps": [
"dash",
+ "dash-functional",
"org",
- "s"
+ "org-super-agenda",
+ "ov",
+ "peg",
+ "s",
+ "ts"
],
- "commit": "eb281fe34569901d84b502c1734d01cdb09246d8",
- "sha256": "1nvzirn1lmgmgl7irbsc1n391a2cw8gmvwm3pa228l2c1gcx8kd8"
+ "commit": "2274efce077c7cf8b2930a8bfb9980c251d8e737",
+ "sha256": "11bhpi2l28vp8mm9nx18jljbqdnh9vxpv9kp1dn9lpsgivcdbc34"
}
},
{
@@ -66429,28 +67107,28 @@
"repo": "oer/org-re-reveal",
"unstable": {
"version": [
- 20190826,
- 749
+ 20191020,
+ 1137
],
"deps": [
"htmlize",
"org"
],
- "commit": "84edfb6c359b4cdd489a92adf7e31c40a3c893e8",
- "sha256": "0lz38sjkfja3f4szjw3gb15ckggkr4bjjyb3zdcfli89781zdjrq"
+ "commit": "62f0868c4e9b098fb43b62b257bcd924779838c0",
+ "sha256": "0nbbynpgwmw85y90frbkna0s0sxxdhskpijnl41f9l6psll70mq4"
},
"stable": {
"version": [
2,
- 1,
+ 12,
0
],
"deps": [
"htmlize",
"org"
],
- "commit": "6941394ce00f02a1fe8e7db99fe0c0bfc0a19824",
- "sha256": "0bfbgjlp37ysik8y6a4gcqhbmy73i5p87lhjhp4d13f7dxq9q07p"
+ "commit": "62f0868c4e9b098fb43b62b257bcd924779838c0",
+ "sha256": "0nbbynpgwmw85y90frbkna0s0sxxdhskpijnl41f9l6psll70mq4"
}
},
{
@@ -66461,15 +67139,15 @@
"repo": "oer/org-re-reveal-ref",
"unstable": {
"version": [
- 20190819,
- 921
+ 20191022,
+ 1426
],
"deps": [
"org-re-reveal",
"org-ref"
],
- "commit": "12a85e3f6f1b2f4c9e0169c8642a78f71d933633",
- "sha256": "0c03rd2rr43hbm4s9fd05qmhy98yvqdxg8da3dkwizkynr47f2yn"
+ "commit": "1f56a1fc9a52f3815bb2115ebeca3c355688d722",
+ "sha256": "1xrswpkr7hgsb9pj991z4m0820f1nksfad184x0j7kir2xcx0myg"
}
},
{
@@ -66480,8 +67158,8 @@
"repo": "alphapapa/org-recent-headings",
"unstable": {
"version": [
- 20190817,
- 624
+ 20190909,
+ 1618
],
"deps": [
"dash",
@@ -66490,8 +67168,8 @@
"org",
"s"
],
- "commit": "6336a0c36ef1048ba1f4e07716a421dce106d082",
- "sha256": "1lpkjvlm969pr64j25zkpmsacjnr7qbq9zfwwzb9xyqlhaf5zzz0"
+ "commit": "6430700dbe2ba34d852b36d56b3a879d71dabc9a",
+ "sha256": "0rl7f2dnwv90l7dnhgzaqnpmff0li366dmkiprjydxchkh1n7mic"
},
"stable": {
"version": [
@@ -66548,8 +67226,8 @@
"repo": "jkitchin/org-ref",
"unstable": {
"version": [
- 20190802,
- 1327
+ 20191023,
+ 117
],
"deps": [
"dash",
@@ -66563,8 +67241,8 @@
"pdf-tools",
"s"
],
- "commit": "9ab74270c1543e4743ca0436de567d8205403b43",
- "sha256": "0ma9zaxzrd1dzmk8633bkw6wrp03wrm9bjhrgsp9qp7vhm597fdq"
+ "commit": "58ae484729aa2027fcc3283a75f4c2c19cf499a2",
+ "sha256": "1sbjxrs6axfpwiy74dbq9nrax6qyjmypg4dnxy4y1xab24n6q4fk"
},
"stable": {
"version": [
@@ -66619,14 +67297,14 @@
"repo": "akirak/org-reverse-datetree",
"unstable": {
"version": [
- 20190806,
- 1412
+ 20190914,
+ 102
],
"deps": [
"dash"
],
- "commit": "0c70a06474921638eba3c287472879ce903ee8b7",
- "sha256": "0fdndpy7j8idbrqpn85hnwj8caf737hcind00blbvc5rka85vaq4"
+ "commit": "a3bc7846531b55337ec069d0696b8d8a04fad3de",
+ "sha256": "0xhsv46xx9bzakzpb9y133s9drj5vyg8wrm15llqhgnaygakpfj6"
}
},
{
@@ -66719,6 +67397,45 @@
"sha256": "1b721xp6dn54x2j73ysnzw9qxd9fxpvnqiy2y0issmz6xmccgzac"
}
},
+ {
+ "ename": "org-sidebar",
+ "commit": "fa65cb74eabe0c46094c64f1384e31b31a6a58e5",
+ "sha256": "0grzh47b6nnk1y7xqd1dfy2cyq688g589wfd5dp78g0wfqbmdl5c",
+ "fetcher": "github",
+ "repo": "alphapapa/org-sidebar",
+ "unstable": {
+ "version": [
+ 20191012,
+ 514
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "org",
+ "org-ql",
+ "org-super-agenda",
+ "s"
+ ],
+ "commit": "b5eff7195718e6a70a42d36e48800632080aab0c",
+ "sha256": "138hbcmkxmmdcagdv438946cr4qkwklqqwf2b1khi8gimnnivsxm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "org",
+ "org-ql",
+ "org-super-agenda",
+ "s"
+ ],
+ "commit": "9634320a6f9ab919119e08a14853c31387f38ce3",
+ "sha256": "106h06vjfbqfj761vbxwymd6612ds8c6fk053yzgbrqzm3hn2c03"
+ }
+ },
{
"ename": "org-snooze",
"commit": "fd04816fb53fe01fa9924ec928c1dd41f2219d6a",
@@ -66769,15 +67486,28 @@
"repo": "akirak/org-starter",
"unstable": {
"version": [
- 20190824,
- 814
+ 20191005,
+ 413
],
"deps": [
"dash",
"dash-functional"
],
- "commit": "114cbaf359b5f08a23fbe5c199cf9df35d39d4ae",
- "sha256": "1nmgbyv9lg1p9frs5mbfqnyblwb4f47kp972bavhni69qc6l33f1"
+ "commit": "c9f0f91437131dbace3299ff5912e85f07bf2b21",
+ "sha256": "0w51jv9jlkl35296g5v2q81mdrncsj2arnrnj8w3hv18dyrx2db2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 6
+ ],
+ "deps": [
+ "dash",
+ "dash-functional"
+ ],
+ "commit": "7ea72ec530a340af61da215327a7fbb66a07ad2a",
+ "sha256": "0y1i4zpgmk6i2nj5l6dvdvqkp5a8cww8y4vcpps85blj586xgby3"
}
},
{
@@ -66788,15 +67518,28 @@
"repo": "akirak/org-starter",
"unstable": {
"version": [
- 20190817,
- 1823
+ 20190929,
+ 646
],
"deps": [
"org-starter",
"swiper"
],
- "commit": "114cbaf359b5f08a23fbe5c199cf9df35d39d4ae",
- "sha256": "1nmgbyv9lg1p9frs5mbfqnyblwb4f47kp972bavhni69qc6l33f1"
+ "commit": "c9f0f91437131dbace3299ff5912e85f07bf2b21",
+ "sha256": "0w51jv9jlkl35296g5v2q81mdrncsj2arnrnj8w3hv18dyrx2db2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 6
+ ],
+ "deps": [
+ "org-starter",
+ "swiper"
+ ],
+ "commit": "7ea72ec530a340af61da215327a7fbb66a07ad2a",
+ "sha256": "0y1i4zpgmk6i2nj5l6dvdvqkp5a8cww8y4vcpps85blj586xgby3"
}
},
{
@@ -66807,11 +67550,11 @@
"repo": "bastibe/org-static-blog",
"unstable": {
"version": [
- 20190619,
- 635
+ 20191023,
+ 633
],
- "commit": "a269b23e1b258b1cb9d80dfdc1d1d4c126f8241a",
- "sha256": "019m07j6nfq18kv4gxsk99wb2wpisw0rywbx4xx63s8p3aaizv62"
+ "commit": "d8522a7a245a47e850f42d4773e5ceec0fff4e94",
+ "sha256": "1g5x3imrbazxk9rfwaijgsd1wzxd5fm3wa1wg28mifyp873wypk5"
},
"stable": {
"version": [
@@ -66861,8 +67604,8 @@
"repo": "alphapapa/org-super-agenda",
"unstable": {
"version": [
- 20190815,
- 2140
+ 20190925,
+ 958
],
"deps": [
"dash",
@@ -66871,8 +67614,8 @@
"s",
"ts"
],
- "commit": "f65ff8109c97368ad640a6a50aaebd24046ce54a",
- "sha256": "08aqq5sgj6y8mdj244j8024ampij49q08maws2sb1s40f0a7s697"
+ "commit": "a87ca11fbbe72ab6c1c4c3b55ae9e1e93ebfb8ba",
+ "sha256": "08b7babdaqblb6jff57an4kbcxk6fkhf668620fipfjgbsnqv3ff"
},
"stable": {
"version": [
@@ -66973,14 +67716,14 @@
"repo": "cute-jumper/org-table-sticky-header",
"unstable": {
"version": [
- 20190703,
- 405
+ 20190924,
+ 506
],
"deps": [
"org"
],
- "commit": "2b0b36a075043ff426cca077bf4099b6ee4bf187",
- "sha256": "08xd5qc19cc2000qgs5a5ywz5ykiwb0zhc0mghx599phvpprdfwz"
+ "commit": "b65442857128ab04724aaa301e60aa874a31a798",
+ "sha256": "1rnv7n444gidn2kqfbzc1wypj253nmlhn50x14pd8rdg4s3srpar"
},
"stable": {
"version": [
@@ -66995,6 +67738,21 @@
"sha256": "0az4lzd9qk4cx7jjfj36r2fvlkwyrhn3xqhha5d1pydglnhd9amy"
}
},
+ {
+ "ename": "org-tanglesync",
+ "commit": "9282e48b725e835fe8dfb226dacbea40257584c1",
+ "sha256": "1vyvy5l7bb8v7c190rzi7r1nz7vlq4yj2bskhcw35h6df3zy3j2y",
+ "fetcher": "github",
+ "repo": "mtekman/org-tanglesync.el",
+ "unstable": {
+ "version": [
+ 20190926,
+ 1345
+ ],
+ "commit": "d99181f173b4e55b4e835d99fcd415e62beb047f",
+ "sha256": "0x94gy1bgfd1f3p9w2bfrqj11bwy9ql0cpi1gw6srpj7kykx0lml"
+ }
+ },
{
"ename": "org-tfl",
"commit": "d9e97f2fee577c7e3fb42e4ca9d4f422c8907faf",
@@ -67279,11 +68037,11 @@
"repo": "cadadr/elisp",
"unstable": {
"version": [
- 20190409,
- 1815
+ 20190914,
+ 2046
],
- "commit": "f2fcfc0d4e7cdb1312c5c06fd5e1820788268de3",
- "sha256": "14rfixf6948zf5ylplzmpqr15rn1kr1qc26055kbb13klyl0qj3y"
+ "commit": "5f3e67448cc98fe2875115163849acae4d9e8526",
+ "sha256": "1w0dhyr4i0nx0g70smgclcfsbv6cfilb7df330njzaqk8j2gdfws"
}
},
{
@@ -67333,8 +68091,8 @@
"repo": "alphapapa/org-web-tools",
"unstable": {
"version": [
- 20190709,
- 1124
+ 20191022,
+ 337
],
"deps": [
"dash",
@@ -67343,8 +68101,8 @@
"request",
"s"
],
- "commit": "993dca7f8afe7afffa0d62983fb7018481d886fc",
- "sha256": "1sfa3wb051cv5qj44ldp76fql5sjfhccqgjm96c85i0zn4i19plf"
+ "commit": "3f528c0d2cf6eeb5f0a672d1ed719b7476472136",
+ "sha256": "1gjcfgh53d75slhw1vcn1mcccjbm7qs8qys76n45wl7ral5108nz"
},
"stable": {
"version": [
@@ -67371,8 +68129,8 @@
"repo": "akhramov/org-wild-notifier.el",
"unstable": {
"version": [
- 20190608,
- 410
+ 20190930,
+ 1912
],
"deps": [
"alert",
@@ -67380,14 +68138,14 @@
"dash",
"dash-functional"
],
- "commit": "6e194d0f0a21b7d2b09ebdef5ffcd5ffe3633339",
- "sha256": "0vh8hhb0d5y3bgp0i9msk5c6rpn1mzj9bzqmbk6xwl4qr07hgnxx"
+ "commit": "f2ea8a719cf61742def57475400222a498256bb6",
+ "sha256": "0wrr52bryvv1aj2fk5ik71iifh15bzmvrw1ixzs1afcdp2fn0bcm"
},
"stable": {
"version": [
0,
3,
- 1
+ 2
],
"deps": [
"alert",
@@ -67395,8 +68153,8 @@
"dash",
"dash-functional"
],
- "commit": "6e194d0f0a21b7d2b09ebdef5ffcd5ffe3633339",
- "sha256": "0vh8hhb0d5y3bgp0i9msk5c6rpn1mzj9bzqmbk6xwl4qr07hgnxx"
+ "commit": "f2ea8a719cf61742def57475400222a498256bb6",
+ "sha256": "0wrr52bryvv1aj2fk5ik71iifh15bzmvrw1ixzs1afcdp2fn0bcm"
}
},
{
@@ -67423,40 +68181,37 @@
},
{
"ename": "org2blog",
- "commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
- "sha256": "15nr6f45z0i265llf8xs87958l5hvafh518k0s7jan7x1l6w5q33",
+ "commit": "08b47bf72bff18efb3281509fd9f1688d8bb0349",
+ "sha256": "1snrsqpiacmkajmiw12kpglxkrs5ngma7l7r246q0lvf1h4jzbsa",
"fetcher": "github",
"repo": "org2blog/org2blog",
"unstable": {
"version": [
- 20190309,
- 442
+ 20191021,
+ 130
],
"deps": [
"htmlize",
"hydra",
"metaweblog",
- "org",
"xml-rpc"
],
- "commit": "bd6dd6b1b3ce57a72e7c229d3f035fc7c0d3860b",
- "sha256": "0c7viqq8cxkd6xxbvq53dbp1slsjjxs2fb2lyi3njfg18v5c6fks"
+ "commit": "b02a056e1fa1a044a5bc5d44cc0fb0b8c62e1442",
+ "sha256": "1vglshyg8i5q17zxs9s5f0r5qwm18rah7qp7rd00pn4qg48zhy2b"
},
"stable": {
"version": [
1,
- 0,
- 3
+ 1,
+ 1
],
"deps": [
"htmlize",
"hydra",
- "metaweblog",
- "org",
"xml-rpc"
],
- "commit": "55dbed00ebe5c841c43800b39764682759ecf326",
- "sha256": "1fncgiwyigvmkc40bm1nr4nlkm828a04jv33jsnzjzyi2n00mbgx"
+ "commit": "3cad357cd5c0f7f949fc6c7aa42d76155d036e78",
+ "sha256": "136l0lm8lv7fgpzply241fngxfl3ck11raamqwislyv0nnjwdfdi"
}
},
{
@@ -67467,11 +68222,11 @@
"repo": "tumashu/org2ctex",
"unstable": {
"version": [
- 20181012,
- 151
+ 20191024,
+ 610
],
- "commit": "2143992462594ce63733305f75f7c7d08123710a",
- "sha256": "0xrg66yx4xrmkswbapaz21q4i6qm2199zvxqvgaxd8qyk19fc46c"
+ "commit": "d4af170f5190dad3aa31ab1cf4c6f087d56ab111",
+ "sha256": "0m28mxsq1d5ggr8phfn94pb38lj8x3sxykh7hfqbwhphaza3by5q"
}
},
{
@@ -67600,31 +68355,31 @@
"repo": "kostafey/organic-green-theme",
"unstable": {
"version": [
- 20190828,
- 922
+ 20190923,
+ 1308
],
- "commit": "cde171651b08ef24326127a62992062e25c3e699",
- "sha256": "0a970fv8y2pvbxw2iy09zyl70c2raacdsysdi6ywkxi63fid5l8r"
+ "commit": "f839bf213520d3736c3e3f712af3ca7ae5321411",
+ "sha256": "0xjn90wg0f7rich6yja9jm6h3104rihgizim59i1jq6rjngazwhv"
}
},
{
"ename": "organize-imports-java",
- "commit": "ec27ae185c0308c445e461dc84f398483ca08c5a",
- "sha256": "1n91qd9il2sq5wkcc2ag8mvgr1jkgwygrw9kpq7j16qch420i3fj",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "0j4fpbzmi0mq2f493hwl94b3xmkhdcjscvbgv4dz31rw10bl4q7h",
"fetcher": "github",
- "repo": "elpa-host/organize-imports-java",
+ "repo": "jcs-elpa/organize-imports-java",
"unstable": {
"version": [
- 20190807,
- 1218
+ 20190922,
+ 1520
],
"deps": [
"cl-lib",
"f",
"s"
],
- "commit": "df209ce7f8055bd9fbd93e7a03b42f1705a1933d",
- "sha256": "1fx05xn22zj5dgdyxrz0ifzxwfpf1s5gcszkjyhzfg1g2r8kmf0v"
+ "commit": "de094d6d56c85aa9820c77055b54287ae6b46d20",
+ "sha256": "0hgdgz1jx292dfxcm1av4v9v6400jpnyp1j21d4fzfi0wj2srfrr"
}
},
{
@@ -67701,15 +68456,15 @@
"repo": "tarsius/orglink",
"unstable": {
"version": [
- 20190630,
- 1437
+ 20190919,
+ 1859
],
"deps": [
"dash",
"org"
],
- "commit": "30e27843fbe916c26b4fe15948415b9c44e9d153",
- "sha256": "0dqm4i2ykzaxairbralz6b1h3gga7falvg5nvw3180mkkrkcjbx2"
+ "commit": "988ad54db45708b0fe835829d512eb6d5f6cf161",
+ "sha256": "1mswfbwz7fm9lriab365g7hq8hn85gxcsg8y41by9j0n8hb3hj5q"
},
"stable": {
"version": [
@@ -68526,14 +69281,14 @@
"repo": "kaushalmodi/ox-hugo",
"unstable": {
"version": [
- 20190830,
- 1623
+ 20190905,
+ 303
],
"deps": [
"org"
],
- "commit": "a8e0c6e1ceeecebd5d2cd17dd3062b3e8aecbfcb",
- "sha256": "0j2prlgb3gprdg9ynaka7y9390qdns6182zj6qpjvayvxkzfi0p5"
+ "commit": "b5672ea8925eaff93c4e17982b35acec302ba5e7",
+ "sha256": "1z9c85z55an38wrg6vmal8vp8k8qp1wkfxc9ijjlqsh0i2809x6b"
},
"stable": {
"version": [
@@ -68837,14 +69592,14 @@
"repo": "yjwen/org-reveal",
"unstable": {
"version": [
- 20190810,
- 1655
+ 20190918,
+ 1627
],
"deps": [
"org"
],
- "commit": "4abd898da3b24530a80336327ec29d3ae6ad4ec9",
- "sha256": "0ik5r99hv407yalvdwba62rppaf9g0r9qzyp4iz0i3n1mhcnv0h1"
+ "commit": "5fd940e01ae76ba305d46a0c0cfc4d27aa131d33",
+ "sha256": "1m1fl07k1qhcv96cqgwqcwnak3gx9k5z496y43sc48gldkwq69qr"
}
},
{
@@ -68855,14 +69610,14 @@
"repo": "choppsv1/org-rfc-export",
"unstable": {
"version": [
- 20190429,
- 1133
+ 20190926,
+ 851
],
"deps": [
"org"
],
- "commit": "4cac33c387bc10e32f18940298aa5095d060ed3e",
- "sha256": "0y442swdsh8fl3471bz9276r2srv6dp7j12y09s82xx5nm668nmb"
+ "commit": "b86c9e6f21d99ea657b4f2224f816300485ed73f",
+ "sha256": "1lg4bs0dr4srcgqxv9qi6v53aqq9i8inc1q024ndag4bis2x1q01"
}
},
{
@@ -68873,14 +69628,14 @@
"repo": "msnoigrs/ox-rst",
"unstable": {
"version": [
- 20190813,
- 427
+ 20191013,
+ 551
],
"deps": [
"org"
],
- "commit": "25ea7a8a7ff1f57a9cd4f65b53899da3487bad8a",
- "sha256": "0b7ybvpj1m48s2zdqk3xjyyzqxa9hjcaz29pgbsd9zg8q9mrnmas"
+ "commit": "9158bfd18096c559e0a225ae62ab683f1c98a547",
+ "sha256": "11v1h45ipjh95ksk6cdgp0azfmb7y3i8hdd46m7psmda08x8kqm5"
}
},
{
@@ -69171,22 +69926,26 @@
"repo": "10sr/pack-el",
"unstable": {
"version": [
- 20190613,
- 425
+ 20191017,
+ 456
],
"deps": [
"cl-lib"
],
- "commit": "e0ab7ea1115451b229fae663a110854ab998d8c0",
- "sha256": "1aqpcain6bi96laa3w1hx4jx75lqzvba0jvyj0jnb19zsa6k3xha"
+ "commit": "85cd856fdc00a2365e88b50373b99f1b3d2227be",
+ "sha256": "0v95ni44scn42mm6mwrdi1vbi1n2h4bw961apm7bp6ilamwpbif8"
},
"stable": {
"version": [
0,
+ 1,
1
],
- "commit": "2aaf19931c508b78edd53e63d9819dd0a6f9b97d",
- "sha256": "0mqznvisfrar7j5x1plj2xgnbz4znnzikyq3j3gpssq4wv3kqq7g"
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "85cd856fdc00a2365e88b50373b99f1b3d2227be",
+ "sha256": "0v95ni44scn42mm6mwrdi1vbi1n2h4bw961apm7bp6ilamwpbif8"
}
},
{
@@ -69221,14 +69980,14 @@
"repo": "melpa/package-build",
"unstable": {
"version": [
- 20190818,
- 1456
+ 20191010,
+ 616
],
"deps": [
"cl-lib"
],
- "commit": "4b71d9a5034953b0beac02b4722f09f43c5e0dbf",
- "sha256": "1kc20sg0if2g3a2m6pjvwb7ddgcivmqfi104236s04dy4npzkwbm"
+ "commit": "f761c2ffeed0daba9c17ac7571c7b979b6ceed64",
+ "sha256": "05snrl5slkwp8c1vzfndrp132xbjk61a63vbllm77nbm9acibq41"
},
"stable": {
"version": [
@@ -69259,31 +70018,33 @@
},
{
"ename": "package-lint",
- "commit": "dbfb0250a58b2e31c32ff1496ed66a3c5439bd67",
- "sha256": "05akg9cgcqbgja966iv2j878y14d5wvky6m9clkfbw5wyg66xpr0",
+ "commit": "e35516a9733d9ba39f7df441346d2624bc6dd5e7",
+ "sha256": "0yy39gywsw48isfgq9k7c5ibgfkaxiig0jbgmmd9s5a0rmrydiwf",
"fetcher": "github",
"repo": "purcell/package-lint",
"unstable": {
"version": [
- 20190807,
- 1837
+ 20191018,
+ 1144
],
"deps": [
- "cl-lib"
+ "cl-lib",
+ "let-alist"
],
- "commit": "c5ba20dead0df743a699f502f5d034d03b367f65",
- "sha256": "0pshjm6swgm6pfpx8ri8zfixazc7bjhdvy7md905lf8a8byr7zk2"
+ "commit": "483556c39c4b7929b28723509d0f26cf790b91c4",
+ "sha256": "19qx71vnr8jj2vqxgcr27zjnagg7nj4lr9xc9fgipwisg1x0yxhx"
},
"stable": {
"version": [
0,
- 7
+ 11
],
"deps": [
- "cl-lib"
+ "cl-lib",
+ "let-alist"
],
- "commit": "4c90df4919f7b96921a939b3bd88bedfd08d041e",
- "sha256": "0nhznvsl3l3v7w5x2afw0ay31r6jrdvgr1ys9mhcmd1fsk57bj2r"
+ "commit": "197684c60df4902e632aac1fb0f99e2e967dcf12",
+ "sha256": "1sxl3zf733iyw6k5d6hh4isr6gp1qlvhbp2q8jpzcby8gmvy6l3r"
}
},
{
@@ -69300,19 +70061,19 @@
"deps": [
"package-lint"
],
- "commit": "c5ba20dead0df743a699f502f5d034d03b367f65",
- "sha256": "0pshjm6swgm6pfpx8ri8zfixazc7bjhdvy7md905lf8a8byr7zk2"
+ "commit": "483556c39c4b7929b28723509d0f26cf790b91c4",
+ "sha256": "19qx71vnr8jj2vqxgcr27zjnagg7nj4lr9xc9fgipwisg1x0yxhx"
},
"stable": {
"version": [
0,
- 7
+ 11
],
"deps": [
"package-lint"
],
- "commit": "4c90df4919f7b96921a939b3bd88bedfd08d041e",
- "sha256": "0nhznvsl3l3v7w5x2afw0ay31r6jrdvgr1ys9mhcmd1fsk57bj2r"
+ "commit": "197684c60df4902e632aac1fb0f99e2e967dcf12",
+ "sha256": "1sxl3zf733iyw6k5d6hh4isr6gp1qlvhbp2q8jpzcby8gmvy6l3r"
}
},
{
@@ -69428,11 +70189,11 @@
"repo": "kadena-io/pact-mode",
"unstable": {
"version": [
- 20190710,
- 1817
+ 20190903,
+ 1542
],
- "commit": "5df7032cf9b61ae5aff36ac7d2a23b2ab0e00904",
- "sha256": "0hdg5b3mnld8pcfiawn51dc65dfws6gr7j4fvjc2gnhypy36l8xl"
+ "commit": "f836c376e142b372a92900b630511fde9937a51a",
+ "sha256": "00xp8j9hgqscz865pp4s5khngpsidad6arwybcxh1cfsncc6w8f2"
},
"stable": {
"version": [
@@ -69582,8 +70343,8 @@
"lispy",
"worf"
],
- "commit": "6fc4759d5431430ef9b3a182883d7e49ff7369fa",
- "sha256": "0fmjii2j773alxj6nzg38qhyp3vsxh5x5mkbcazbchq1idfbhzlc"
+ "commit": "3690a3691da7792ed2f2270d1006632640182ae0",
+ "sha256": "1kn0ckfpr3s5yfkll7rn9mqg35jmplai2vafhrvnifhilf94dp7f"
}
},
{
@@ -69594,11 +70355,11 @@
"repo": "sebasmonia/panda",
"unstable": {
"version": [
- 20190801,
- 1622
+ 20190907,
+ 314
],
- "commit": "30dac32f9b18fb225ade8e56f7d9242d6c8efb35",
- "sha256": "1d6wykf2k5b0494l2l8p9p0hmq52jvcq534dz4piwgnngrjcbq8n"
+ "commit": "5a3da498a8ab8a60cef3a3a5e8f3e14dea9992dd",
+ "sha256": "04fa2895vr0z6y1w1mkpxhzx2q323vl7r3hayxr0vldd8mz8m0lw"
}
},
{
@@ -69656,15 +70417,15 @@
"repo": "joostkremers/pandoc-mode",
"unstable": {
"version": [
- 20190711,
- 2122
+ 20191003,
+ 1221
],
"deps": [
"dash",
"hydra"
],
- "commit": "7b9a19d8777a21431a819281a14201bfdf1dfdc1",
- "sha256": "04bqc7mhgkfks3nsvimd3rrriv4nqbksmv5ahlbbd03aqa2b0vrv"
+ "commit": "f4f10a329acd354aa7dda52e7f7bc23ca28366d3",
+ "sha256": "1j4bawr7a4lfhy76nxsivxngs4w7l1xlifzx69hjn157qdhbqawn"
},
"stable": {
"version": [
@@ -69691,8 +70452,8 @@
20190823,
401
],
- "commit": "2e2dc6427b4427b045df37ba793884c6225c262e",
- "sha256": "00zqb68vzcqd1mcxz3nsdydima14381dvqc4nncqm1l6hnapxf1h"
+ "commit": "f92898949ba3bf991fd229416f3bbb54e9c6c223",
+ "sha256": "0c8ad30313598mggjiq4szz1alc6kcswh7i8447kdci241rlyqrf"
},
"stable": {
"version": [
@@ -69714,8 +70475,8 @@
20190124,
1828
],
- "commit": "f2fcfc0d4e7cdb1312c5c06fd5e1820788268de3",
- "sha256": "14rfixf6948zf5ylplzmpqr15rn1kr1qc26055kbb13klyl0qj3y"
+ "commit": "5f3e67448cc98fe2875115163849acae4d9e8526",
+ "sha256": "1w0dhyr4i0nx0g70smgclcfsbv6cfilb7df330njzaqk8j2gdfws"
}
},
{
@@ -69746,8 +70507,8 @@
"repo": "Malabarba/paradox",
"unstable": {
"version": [
- 20190624,
- 41
+ 20191011,
+ 1111
],
"deps": [
"hydra",
@@ -69755,8 +70516,8 @@
"seq",
"spinner"
],
- "commit": "1b9e4b198e0a02773b52f6fe4fd03a82340c6cbc",
- "sha256": "0ja7sxnpm71fvmly53hnb08bgdb9c69yfzzsmdh2h9na82qdjvk5"
+ "commit": "339fe3518d1d102b2295670340e75caf4f01a29a",
+ "sha256": "05hwwdhx980jm1y495r8qng029wm02m45mm7w4wxyjhh6385rbzf"
},
"stable": {
"version": [
@@ -69969,20 +70730,20 @@
"repo": "dp12/parrot",
"unstable": {
"version": [
- 20190311,
- 2325
+ 20191015,
+ 2127
],
- "commit": "4d77eafc6bfacfe45dae805ceca101331d3d08d0",
- "sha256": "0lqcw0scn2jcs15vybd1x7k7hiykrcsvimqj58s45m2pnaia57ql"
+ "commit": "13757524f1c708b866f4aaab5a9fb3599a1c4f56",
+ "sha256": "02anyi6mhw457pwsna3ycn1yxsavsmp6p96ffpwg1s7qidc44a4s"
},
"stable": {
"version": [
1,
- 0,
+ 1,
1
],
- "commit": "e9fe686408214884b20c65284a6a595e1c755794",
- "sha256": "079k4j0lcaj0lff1llp29bj5ah2b59byw9lw3jjw9wkl9px87r0m"
+ "commit": "13757524f1c708b866f4aaab5a9fb3599a1c4f56",
+ "sha256": "02anyi6mhw457pwsna3ycn1yxsavsmp6p96ffpwg1s7qidc44a4s"
}
},
{
@@ -70101,6 +70862,19 @@
],
"commit": "ddf824bc1df1585867cb7f27f2dd8ca8df760569",
"sha256": "11wi3hwcgmy54p6ivpijqm7v0hj6j75a19qk5z779bqfrp79b4pc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "a",
+ "parseclj"
+ ],
+ "commit": "ddf824bc1df1585867cb7f27f2dd8ca8df760569",
+ "sha256": "11wi3hwcgmy54p6ivpijqm7v0hj6j75a19qk5z779bqfrp79b4pc"
}
},
{
@@ -70126,29 +70900,29 @@
"repo": "NicolasPetton/pass",
"unstable": {
"version": [
- 20190715,
- 1509
+ 20190830,
+ 2017
],
"deps": [
"f",
"password-store",
"password-store-otp"
],
- "commit": "ba6a3f695acb380e1457a29a0d13b22641f72c4f",
- "sha256": "14g50fywwgf9bpqnl6bvq2k1czl9m2da43xcdrng2gpyrz3ns1w3"
+ "commit": "919d8e3826d556433ab67d4ee21a509d209d1baa",
+ "sha256": "03cf7d51p7d5a9nmlzp1k0n68j4n0di0nmpmcx3vlfd62lk3rs2p"
},
"stable": {
"version": [
- 1,
- 8
+ 2,
+ 0
],
"deps": [
"f",
"password-store",
"password-store-otp"
],
- "commit": "cd79375005a1c1d8b45d38fefa91eef0bd23182c",
- "sha256": "05h4hacv3yygyjcjj004qbyqjpkl4pyhwgp25gsz8mw5c66l70cx"
+ "commit": "35e3f86e96878520e690513cdbc1b2753b173e72",
+ "sha256": "0jc8j421mlflspg24jvrqc2n3y5n3cpk3hjy560il8g36xi1049p"
}
},
{
@@ -70248,8 +71022,8 @@
"repo": "zx2c4/password-store",
"unstable": {
"version": [
- 20190829,
- 1054
+ 20190929,
+ 1627
],
"deps": [
"auth-source-pass",
@@ -70257,8 +71031,8 @@
"s",
"with-editor"
],
- "commit": "b87e91f984f45615b6459ff3829baa9130b8ef75",
- "sha256": "1xgfw238ph6fa8inrwqzfzfzqi16w4rr5sg79djb7iqz8njczbn8"
+ "commit": "b830119762416fa8706e479e9b01f2453d6f6ad6",
+ "sha256": "0mf59506qa2zrrk18gr5sp9gz8lx03f6c6qccir5cf6s4rmi5x9m"
},
"stable": {
"version": [
@@ -70551,11 +71325,11 @@
"repo": "ibukanov/pc-bufsw",
"unstable": {
"version": [
- 20181221,
- 856
+ 20191014,
+ 848
],
- "commit": "762d47b2f278c072643cf2a1ddc785516483d74a",
- "sha256": "1by9p0j6c21y04cc4ls7f87gks631lv1mxk0aqhh41rml5kj4l22"
+ "commit": "a7c7bba4b7d511eceaaa8fee34d598296402555b",
+ "sha256": "0n6ijz86j88jq7w38yfamrqkjx8s1zbw1c0sa3dhpkv1jg87avb1"
}
},
{
@@ -70676,14 +71450,14 @@
"repo": "thierryvolpiatto/pcomplete-extension",
"unstable": {
"version": [
- 20180707,
- 455
+ 20190928,
+ 519
],
"deps": [
"cl-lib"
],
- "commit": "bb941272b54f49f780819f7ce4fd2c802de9a0da",
- "sha256": "0bwbxnnw760i6mi7h9pyx3gaasrcja7dj3bfrlia07gw8jgl81ad"
+ "commit": "bc5eb204fee659e0980056009409b44bc7655716",
+ "sha256": "06dsfjbwx1iq0f2xism288vh4cgn804hbvi3gv3zknnzcmh6nlxi"
},
"stable": {
"version": [
@@ -70773,15 +71547,15 @@
"repo": "politza/pdf-tools",
"unstable": {
"version": [
- 20190701,
- 202
+ 20191007,
+ 1436
],
"deps": [
"let-alist",
"tablist"
],
- "commit": "db7de3901ae0e55f6ab8cf9baec257f706c3d16e",
- "sha256": "1vvhgxxg5lpmh0kqjgy8x1scdaah3wb76h2zj7x99ayym2bxyigv"
+ "commit": "3407af25899c9bc0cb7b710e86ba316ab622f2c7",
+ "sha256": "1dhygjq95y57a5f3a2hw1i36mgn0njgllba8i9f8bc0kpb8ykbb0"
},
"stable": {
"version": [
@@ -70804,14 +71578,14 @@
"repo": "007kevin/pdf-view-restore",
"unstable": {
"version": [
- 20190423,
- 1625
+ 20190904,
+ 1708
],
"deps": [
"pdf-tools"
],
- "commit": "12d9734d2133dead548497193016c86ab28e9477",
- "sha256": "1z5483jclfn1xrcdrvrw2c94fpnb1skv6c2ppi3w5nj4myny6nsv"
+ "commit": "5a1947c01a3edecc9e0fe7629041a2f53e0610c9",
+ "sha256": "1b9zzvfsprf7x0v7l4dabdh5qdfhl7mm30vvqah8l10jvlf2wlc7"
}
},
{
@@ -70873,8 +71647,8 @@
20160321,
2237
],
- "commit": "c88a9a3050197840edfe145f11e0bb9488de32f4",
- "sha256": "1wy5qpnfri1gha2cnl6q20qar8dbl2mimpb43bnhmm2g3wgjyad6"
+ "commit": "1d410a4e48db07a942e54d3b83a85c7a7ec0aab3",
+ "sha256": "1b7csqypqkalkzq6vrbq5ry1gdk0qnhnk43rlj514mph0s1nywdd"
}
},
{
@@ -70930,14 +71704,14 @@
"repo": "sebasmonia/pepita",
"unstable": {
"version": [
- 20190731,
- 1610
+ 20190907,
+ 409
],
"deps": [
"csv"
],
- "commit": "1d67dad08cb994dd2fa637ea591db14cbb00d644",
- "sha256": "09lqjssg72bq437cvg15dxmy7j446raaknvkp7pl5357vgmqcdy0"
+ "commit": "489ddc2675906f9dd27bd4ec69ef140e52194952",
+ "sha256": "1k77c7zz73j2vais62qbymk246fyc6nw4jd1abdx2c9jjp3sn94k"
}
},
{
@@ -71032,20 +71806,20 @@
"repo": "Fanael/persistent-scratch",
"unstable": {
"version": [
- 20190128,
- 1843
+ 20190922,
+ 1046
],
- "commit": "71371a7ce9846754276350fd577dc7543eb52878",
- "sha256": "0n638krbrs2hx97cgkb5nc0fbrd8wsbmb7mz3ym5mx5pvdyxnlgv"
+ "commit": "fd690e138459e0b490f1fda469811a9cbcb34df7",
+ "sha256": "1nig9ja42sm3nkbi9wrsm86akrq0m85jfc65k9rmym13vrdpflvq"
},
"stable": {
"version": [
0,
3,
- 3
+ 4
],
- "commit": "71371a7ce9846754276350fd577dc7543eb52878",
- "sha256": "0n638krbrs2hx97cgkb5nc0fbrd8wsbmb7mz3ym5mx5pvdyxnlgv"
+ "commit": "fd690e138459e0b490f1fda469811a9cbcb34df7",
+ "sha256": "1nig9ja42sm3nkbi9wrsm86akrq0m85jfc65k9rmym13vrdpflvq"
}
},
{
@@ -71198,14 +71972,14 @@
"repo": "nex3/perspective-el",
"unstable": {
"version": [
- 20181120,
- 114
+ 20191025,
+ 314
],
"deps": [
"cl-lib"
],
- "commit": "2c8cf56d170c3eb1fcc1a8fe41026b780e0ffead",
- "sha256": "0xlib2f8fjmwk8r0p6r8y5ni687xmixqp9s40rgxc15ikin54hhf"
+ "commit": "9e119c99853ddc4e1267bbec4d7f7a1610502f34",
+ "sha256": "0aa51kv632iynjb36qja1i8b012hayiabwg7vbzqfbwsyy4gd27m"
},
"stable": {
"version": [
@@ -71401,14 +72175,14 @@
"repo": "zk-phi/phi-grep",
"unstable": {
"version": [
- 20170606,
- 807
+ 20190920,
+ 908
],
"deps": [
"cl-lib"
],
- "commit": "ab9bd8d25e751a9cbfa108b49839293230b6e8b5",
- "sha256": "0p1i07dgaic0jnwdsnvsnib2913r9w8j98d1p5rx8db2nabjmzc0"
+ "commit": "06b740e3fb20074be9bae87530f5616a122c3aca",
+ "sha256": "0lwqlz6jp44dq7yhj5yvfrhnjlxlihkpqjil6d2ma20b2946n9ny"
}
},
{
@@ -71667,26 +72441,20 @@
"repo": "emacs-php/php-mode",
"unstable": {
"version": [
- 20190827,
- 1721
+ 20190930,
+ 111
],
- "deps": [
- "cl-lib"
- ],
- "commit": "5a5b9073585b7afb679e32f1d61086d9122c8b3f",
- "sha256": "1595ncllpfzgjwq8lwcpk8wxgjvcsigpppf6y5s8gj5g7rz4d45c"
+ "commit": "5ba2a16e1751446502652021942f59f2e36aea41",
+ "sha256": "1zgqg6i114g8nylyizrcdf68f35klc140x829cbjrkbssj8vck8z"
},
"stable": {
"version": [
1,
- 21,
- 4
+ 22,
+ 0
],
- "deps": [
- "cl-lib"
- ],
- "commit": "a8ee6ce7c1c319b2b641865ebd599cc36d2dc10e",
- "sha256": "1gqawn8bg9374swxb4bd2z015v16yjr96am1vwsbmgks3lhiw8ja"
+ "commit": "58de9a7db0b8908e047dfe308858ef5dfd464868",
+ "sha256": "17137l24s0nkr77l1dlmnkjpikks30mf5haskbg5i447lbpcm64r"
}
},
{
@@ -71765,8 +72533,8 @@
"repo": "emacs-php/phpactor.el",
"unstable": {
"version": [
- 20190824,
- 500
+ 20190913,
+ 1340
],
"deps": [
"async",
@@ -71775,8 +72543,8 @@
"f",
"php-runtime"
],
- "commit": "299347fbe3dd8617a46e874ccb8511f6705c95e4",
- "sha256": "0g5hidr0c3f83ml1b8wnkf1blvapkivxzr26amcv5ml0v5f6icjn"
+ "commit": "a12ec67ce9de9e96c89548052ae323a277cba846",
+ "sha256": "031i5s3cv9z2d6vnwbf91291fgafcqg61km9b3z7p9bk91vbkxsy"
},
"stable": {
"version": [
@@ -71830,20 +72598,20 @@
"repo": "emacs-php/phpstan.el",
"unstable": {
"version": [
- 20190618,
- 724
+ 20190929,
+ 612
],
- "commit": "e8d33c75f6ab466ac15406fac5f2db6666d79deb",
- "sha256": "1n6f4ibjdzrgll5zvikxc5gcfbpypq9nc2dhfxv011kllj22hpyc"
+ "commit": "81bcfa59d1e5708239d8c32d99cd84405449fb64",
+ "sha256": "1m4vk7v3aafj64qqs0aa9m1w8fbjziq0l6c9k4n10yr8dnm5j9aw"
},
"stable": {
"version": [
0,
3,
- 1
+ 2
],
- "commit": "525792fc4a9ecb5dc577a7c416e298e0c45c6183",
- "sha256": "02cgcqkgwl0rbxhndcyjd8fj57g84n8x4n9rkh671rg3r7p7c71j"
+ "commit": "de74ebfcbce53a08daf95d324d7447dede094222",
+ "sha256": "01x5gf7z0iqx601z3g4cdq6cv27aflxw5kmqrwrj0aijcb7nb9c6"
}
},
{
@@ -71937,14 +72705,26 @@
"repo": "ahungry/pickle-mode",
"unstable": {
"version": [
- 20190816,
- 341
+ 20190923,
+ 354
],
"deps": [
"cl-lib"
],
- "commit": "0dab75b9f75dc2d0cf28f876cc9e2d127e6dca15",
- "sha256": "03jp4nhca78k8kl6r5g8c2spjxsamhmqq5p3fqhiniqm3sz5v6cf"
+ "commit": "3a0a717f2a24827667f34bc53830a3b81cd57460",
+ "sha256": "1r12r21882bq22w6cawf28ndf70nz2nd0f2wagdfr5a9ir9wchfy"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 3
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "3a0a717f2a24827667f34bc53830a3b81cd57460",
+ "sha256": "1r12r21882bq22w6cawf28ndf70nz2nd0f2wagdfr5a9ir9wchfy"
}
},
{
@@ -71958,8 +72738,8 @@
20190824,
806
],
- "commit": "7a487a56f22690eebe4f8b4fb628aab9cba95ab1",
- "sha256": "121hwfckjvli7g7b2mvmi6m2xp5kk1040h4nripcwl3wp6j5w5w9"
+ "commit": "1ae7af6c310d20b31b8229dc8c1eedeb47aa3311",
+ "sha256": "0ziil73lfcvr3sih00n19jnmciddirwsjqci1im80qg7z268l6s3"
}
},
{
@@ -72259,16 +73039,16 @@
"repo": "pwalsh/pipenv.el",
"unstable": {
"version": [
- 20190522,
- 803
+ 20190919,
+ 2147
],
"deps": [
"f",
"pyvenv",
"s"
],
- "commit": "03edaaa44a5a4212d2e5a14e3ae6303189d76703",
- "sha256": "04y6p8gd20xhn7qkz2gp94yxizwl67yhi7qs0x6c8nrxpqd1y5y9"
+ "commit": "b730bb509e8b60af9f5ab1f1e6c3458d1d95d789",
+ "sha256": "0f2lihzzw9v91adx9v89crbsph4zjj0qrlb3a8fikbhd6jy8xpb8"
}
},
{
@@ -72400,6 +73180,24 @@
"sha256": "0a8qb1ldk6bjs7fpxgxrf90md7q46fhl71gmay8yafdkh6hn0kqr"
}
},
+ {
+ "ename": "plain-org-wiki",
+ "commit": "6b515386c3969b8d79e14b506bc0d9e1ec3097c4",
+ "sha256": "0m0mm0ki92561axm89mwc6vcx9rwdb7ai9hlvgnhf40k94s97lz6",
+ "fetcher": "github",
+ "repo": "abo-abo/plain-org-wiki",
+ "unstable": {
+ "version": [
+ 20191013,
+ 1833
+ ],
+ "deps": [
+ "ivy"
+ ],
+ "commit": "887717c184fb22dd219c78851303a8e5b917f877",
+ "sha256": "0wqxp46zvwswda644mnr92qxyyvakvl2l8w61sg6hy37pwfznx73"
+ }
+ },
{
"ename": "plain-theme",
"commit": "d4bd77883375b229e344384e42c3603ca096891c",
@@ -72411,8 +73209,8 @@
20171124,
410
],
- "commit": "a3d5389a44326314da21f147bad2ede60e2cf986",
- "sha256": "0qik5478z49fpn9b37fxkybglvsgzbapl1dkam5prg0sxns98xha"
+ "commit": "48b37b9b19d8f1e0accbf930f30b5346cf7959fe",
+ "sha256": "0pi4sjp0aq279m449lw4rbppdivzkazd07bh9jqrmyrw9wib3hbl"
},
"stable": {
"version": [
@@ -72460,26 +73258,26 @@
"repo": "skuro/plantuml-mode",
"unstable": {
"version": [
- 20190822,
- 1403
+ 20191019,
+ 1309
],
"deps": [
"dash"
],
- "commit": "2f8170b30b9885b5a6992047662d5ba0f4ac2248",
- "sha256": "0c9as4g2rc1py12wcmv4s4gn2cpsf55cm7b4yf8amld5viz7r7pg"
+ "commit": "fec1d4fb9d3b720f15931308b207cd8ad65f4f75",
+ "sha256": "19lg1lcjysqy0ziyp0y3xx2akgchhvqkxmxxnxjlwqrn9bqgibxh"
},
"stable": {
"version": [
1,
4,
- 0
+ 1
],
"deps": [
"dash"
],
- "commit": "b39c310e9cb5a2e7aa72d143348362307d561f88",
- "sha256": "03sdkjs7al2g6kqsxr8z53lqsnir6wk2a59kgi08lki049zim0a0"
+ "commit": "5889166b6cfe94a37532ea27fc8de13be2ebfd02",
+ "sha256": "0yp41d2dmf3sx7qnl5x0zdjcr9y71b2wwc9m0q31v22xqn938ipc"
}
},
{
@@ -72658,11 +73456,11 @@
"repo": "flexibeast/plisp-mode",
"unstable": {
"version": [
- 20190824,
- 541
+ 20190914,
+ 513
],
- "commit": "7a487a56f22690eebe4f8b4fb628aab9cba95ab1",
- "sha256": "121hwfckjvli7g7b2mvmi6m2xp5kk1040h4nripcwl3wp6j5w5w9"
+ "commit": "1ae7af6c310d20b31b8229dc8c1eedeb47aa3311",
+ "sha256": "0ziil73lfcvr3sih00n19jnmciddirwsjqci1im80qg7z268l6s3"
}
},
{
@@ -72985,15 +73783,15 @@
"repo": "galaunay/poetry.el",
"unstable": {
"version": [
- 20190706,
- 1141
+ 20191022,
+ 938
],
"deps": [
"pyvenv",
"transient"
],
- "commit": "0173c61dee6587d5898722df1e06d9c00bee4fd1",
- "sha256": "1n3xzw204hy3l1kisjpgg01n12x1z01mxfqi3hyfw3w3hlxciw7b"
+ "commit": "3f9ac720b423f087797b9e345b575275f2dcd740",
+ "sha256": "0gs8jpihqckijbm5w300mdm5jl4f9j754fkv5mj1ghj78q6bjmmp"
},
"stable": {
"version": [
@@ -73188,15 +73986,15 @@
"repo": "polymode/poly-markdown",
"unstable": {
"version": [
- 20190715,
- 707
+ 20190916,
+ 702
],
"deps": [
"markdown-mode",
"polymode"
],
- "commit": "6fc4b26392f101494ceb176a8446b159c8a6ac29",
- "sha256": "0jvn7l59z8ncbs6bwk3ka13gcmxq615w9qp9fam1fvmc3dykakn8"
+ "commit": "a867e5e5689f1e1a5bab5db57c7d39bac2448bcb",
+ "sha256": "1mrmrwmrv6xsafhn7ys3y8nbdqgzhkrb2mm0gir63g03kd6bn793"
},
"stable": {
"version": [
@@ -73702,15 +74500,15 @@
"repo": "kostafey/popup-switcher",
"unstable": {
"version": [
- 20171205,
- 851
+ 20190917,
+ 1634
],
"deps": [
"cl-lib",
"popup"
],
- "commit": "f5788a31918e37bb5c04139048c667bcec9f1b62",
- "sha256": "0gfi8dlgynciv3q5a208c7gd66g2r99b3zn0i31ibpppjqy2vcsk"
+ "commit": "953f599c1fd9d6843ec9380cc0fc3f8248390d24",
+ "sha256": "1h0mxx1304fp4ilv4cz5mb65a7df1b3hi6n4dz6k9kkzbvihsacc"
}
},
{
@@ -73822,11 +74620,11 @@
"repo": "tumashu/posframe",
"unstable": {
"version": [
- 20190805,
- 956
+ 20191013,
+ 756
],
- "commit": "bfd2e55219e0911980f4ea97b5995ce8553dce60",
- "sha256": "19vvhx9x6646va4s4yy77inll9d2mhipakvz4pyz4pjw8pjcd94x"
+ "commit": "d75dc1547a6a1cc2b385c736880eee77d7981aec",
+ "sha256": "0ssbpkmanljxw8dqk6ks643x4pacfwfw5xfzv5jnny25ph656r1f"
},
"stable": {
"version": [
@@ -74055,19 +74853,19 @@
"repo": "raxod502/prescient.el",
"unstable": {
"version": [
- 20190727,
- 2126
+ 20191025,
+ 347
],
- "commit": "ea8e9fea4385272924d09c91220c7f2e9ac95b3f",
- "sha256": "1apb9v31ajq586f7mqachv238yv40gacrjmh2s8mnk45xil72swy"
+ "commit": "82a90c4142c369f4090a42536179c6029d3fdafd",
+ "sha256": "0n919w068j73dnlxfzsvzh7j385phi4z718pi6xq6cygkjkq9zq8"
},
"stable": {
"version": [
3,
- 2
+ 3
],
- "commit": "653ca4b66954b7f1b6e4635a574234dd316c11a3",
- "sha256": "0d60h4rfm5jcf8cf11z91wjqp0xcrviskqzyqhfliqvy2i2yl6ks"
+ "commit": "2f01b640e3a487718dbc481d14406005c0212ed9",
+ "sha256": "1wqk1g8fjpcbpiz32k7arnisncd4n9zs84dn3qn9y8ggjzldqy91"
}
},
{
@@ -74153,8 +74951,8 @@
"repo": "jerrypnz/major-mode-hydra.el",
"unstable": {
"version": [
- 20190715,
- 937
+ 20190930,
+ 2105
],
"deps": [
"dash",
@@ -74162,14 +74960,14 @@
"hydra",
"s"
],
- "commit": "d9fb688dae3e134bb1ff7f35474c58f33a5bb992",
- "sha256": "0aq2dk7c9jqq13p3bv0cq1aym00chcr5f9p3v93wl9h6pc3spbnc"
+ "commit": "fd362d2be7ed80889715ed8a30a61780a18ce6ea",
+ "sha256": "0vnmvpsm46izxlh0l0p89rhy6ifzzfpzk7j3kkf2608s6dy8hgcy"
},
"stable": {
"version": [
0,
2,
- 1
+ 2
],
"deps": [
"dash",
@@ -74177,8 +74975,8 @@
"hydra",
"s"
],
- "commit": "d9fb688dae3e134bb1ff7f35474c58f33a5bb992",
- "sha256": "0aq2dk7c9jqq13p3bv0cq1aym00chcr5f9p3v93wl9h6pc3spbnc"
+ "commit": "bba876b86f0b80495004bf185b2b1f6083a1ff3a",
+ "sha256": "08a15knkdq35pzjq82imff016fbfdib5q4glg2xmdy2b5fnk7jqa"
}
},
{
@@ -74235,6 +75033,24 @@
"sha256": "1f00l9f6an1mh8yhf629mw0p37m4jcpl8giz47xbdyw1k6bqn830"
}
},
+ {
+ "ename": "prism",
+ "commit": "c8ee14b9d67a9703c25b508b324ad7dabaa4352d",
+ "sha256": "1prvvpwa10i260hcj59xfj1vynjv7gykxinqas2xhw6lq6lwrbjk",
+ "fetcher": "github",
+ "repo": "alphapapa/prism.el",
+ "unstable": {
+ "version": [
+ 20190908,
+ 1820
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "49c8b97b286c7403bf239645964416200ea82dd5",
+ "sha256": "0dcy032g4jc027mwq8dfadsc05bsi1k6yiab3rpdxwc17c9pg9x8"
+ }
+ },
{
"ename": "private",
"commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
@@ -74291,14 +75107,14 @@
"repo": "travisjeffery/proced-narrow",
"unstable": {
"version": [
- 20190818,
- 1923
+ 20190911,
+ 1818
],
"deps": [
"seq"
],
- "commit": "079a6834869638ae3586a68474149575d7623ef0",
- "sha256": "0771n655f4bhvw6qdjkk0m8l5qwbqdyk28whp52bmx95j56yfkvx"
+ "commit": "0e2a4dfb072eb0369d0020b429e820ae620d325e",
+ "sha256": "0d1qq5606prls7mzy0iri41j2c14l4axz6kq629r4wjdqwshxkli"
},
"stable": {
"version": [
@@ -74468,17 +75284,17 @@
},
{
"ename": "project-abbrev",
- "commit": "ec27ae185c0308c445e461dc84f398483ca08c5a",
- "sha256": "12d0w3b9fh7hdi1qwm13s535k574xfh3ck48zpsv3jlxr59q5bqw",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "18nrcds02swr0s15gvvpc2fbjj9rq6ky3dz8qp51g7nfaprk2279",
"fetcher": "github",
- "repo": "elpa-host/project-abbrev",
+ "repo": "jcs-elpa/project-abbrev",
"unstable": {
"version": [
20190517,
521
],
- "commit": "b94f829bb24570782b9f6bbcfdec4b391091b778",
- "sha256": "0lkliz9hycag1gf5hxvh7mrgl5my2vbkn52g4pkh2x7hsdkxhxjy"
+ "commit": "fc4e9f774cae42a6fe135833774daaecf2b3dac0",
+ "sha256": "07056jd1z9i65db4pcshhdfrk5yb6xc28k3ihq7pixmya71l15pk"
}
},
{
@@ -74571,17 +75387,25 @@
},
{
"ename": "project-root",
- "commit": "5b7972602399f9df9139cff177e38653bb0f43ed",
- "sha256": "0xjir204zk254y2x70k9vqwirx2ljmrikpsgn5kn170d1bxvhwmb",
- "fetcher": "bitbucket",
+ "commit": "bcf69e7e859145cb908e79abf4a2f51050e52ace",
+ "sha256": "0mhc7l6px5q2x13h6nmf4ixsghjlzbxjm2liscwn6485yg4bsmja",
+ "fetcher": "github",
"repo": "piranha/project-root",
"unstable": {
"version": [
20110206,
2030
],
- "commit": "843ca1f4ab2bc9c25e0f7cd585ceb1f2693b23f2",
+ "commit": "a49b1be864357683d9489074148b6d667f4ed23b",
"sha256": "0nw02f5lmbqdfnw93d3383sdxx1d31szk23zvjlrmmdwv2124281"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7
+ ],
+ "commit": "fc1d024a497755c1abfa3eaffde1b18bd3c54865",
+ "sha256": "1z0sqdwa8caick2179bj03qbhjmvh2l5gv1ny6aya979vjgsk0g8"
}
},
{
@@ -74610,14 +75434,14 @@
"repo": "bbatsov/projectile",
"unstable": {
"version": [
- 20190626,
- 1315
+ 20191024,
+ 721
],
"deps": [
"pkg-info"
],
- "commit": "71a01f409a319d57eb3832e93e8a412fbc9d7a65",
- "sha256": "1qsm4kwydi56h7p0mdm7m8r6nhm4l7lp7snamcgjyfmja2w424fl"
+ "commit": "cbdd0f071ca5cc2890738f08aa7223101ef2d032",
+ "sha256": "1sqddfnmz8xr1l4r45yir3fb43plj5ha3z94phh69wa67m3f23ja"
},
"stable": {
"version": [
@@ -74679,28 +75503,28 @@
"repo": "andrmuel/projectile-git-autofetch",
"unstable": {
"version": [
- 20190417,
- 1959
+ 20191013,
+ 1806
],
"deps": [
"alert",
"projectile"
],
- "commit": "8d8d090fdff42671e9926f095deb3448d24730b1",
- "sha256": "1x1x1hn8k6hpj1vljbgmgznvgnky75xg4scy5y57k937pvkmyg6j"
+ "commit": "4a3eba7658a52c6e955d5f7085cd3fd62b53b9c6",
+ "sha256": "01jsj0pv9qqbkdmbykvk4ic40hc1nhaiaqvx17hi7p89hq3nzffr"
},
"stable": {
"version": [
0,
1,
- 1
+ 2
],
"deps": [
"alert",
"projectile"
],
- "commit": "da02069d906e6e7f28ea1dd6a9196529315a5cba",
- "sha256": "106kj49rxsrdh6awvql3zyr3ramdcn0aaq4rmbmd45hz9ij7x1wh"
+ "commit": "4a3eba7658a52c6e955d5f7085cd3fd62b53b9c6",
+ "sha256": "01jsj0pv9qqbkdmbykvk4ic40hc1nhaiaqvx17hi7p89hq3nzffr"
}
},
{
@@ -74731,8 +75555,8 @@
"repo": "asok/projectile-rails",
"unstable": {
"version": [
- 20190706,
- 1231
+ 20191023,
+ 621
],
"deps": [
"f",
@@ -74741,8 +75565,8 @@
"projectile",
"rake"
],
- "commit": "b0c88a381cc15b0aaba2629949e10ae6373d209a",
- "sha256": "0p33gmykri30csv9b214rmmcxm59c0lcwhbwala78a28y63mfcri"
+ "commit": "b127797372af61ca35f5fdea598004c16bfacee6",
+ "sha256": "0n3z88w58ls62pnxibgfhdg8ms9i305kdjzxygs4gqqh0gjykhcm"
},
"stable": {
"version": [
@@ -75042,11 +75866,11 @@
"repo": "ProofGeneral/PG",
"unstable": {
"version": [
- 20190821,
- 848
+ 20191007,
+ 1041
],
- "commit": "d53ded580e30d49e7a783280fd9ba96bc9c1c39c",
- "sha256": "17hf4mxpijvgd2jrffibcz9ps4vv8w2alcgmh78xjlb6mm0p3ls0"
+ "commit": "15ccaec24ce935de366cae08b906c130379758ce",
+ "sha256": "108qijk2r0kgvbkhc3m04g1krx0xrr1zgjmr5ikwxvvvlxvrzkm2"
},
"stable": {
"version": [
@@ -75149,17 +75973,17 @@
20170526,
1650
],
- "commit": "36bdcb5a7a79aff977617bd1a83a7b25055e38bb",
- "sha256": "00fgcysw557mgs0wfh095djnxd94qklf6h45bh8zw1dyhwfbmqpx"
+ "commit": "342a2d627c023dfe5dcf1c9d9fd014338a0665be",
+ "sha256": "1m3yx23w64n0g7454p0n8fgn0b07rvfyl5hlbd38l9ivv9s2l9k0"
},
"stable": {
"version": [
3,
- 9,
- 1
+ 10,
+ 0
],
- "commit": "655310ca192a6e3a050e0ca0b7084a2968072260",
- "sha256": "0vv85xb65dx6fa76fsnyps13kaamvwfzd8hr6ii1payr73x4zy2h"
+ "commit": "6d4e7fd7966c989e38024a8ea693db83758944f1",
+ "sha256": "0cjwfm9v2gv6skzrq4m7w28810p2h3m1jj4kw6df3x8vvg7q842c"
}
},
{
@@ -75238,15 +76062,15 @@
"repo": "purescript-emacs/emacs-psci",
"unstable": {
"version": [
- 20190308,
- 24
+ 20191025,
+ 830
],
"deps": [
"dash",
"purescript-mode"
],
- "commit": "3c10918a3a1d1dc613c222801deb465d4fbb2143",
- "sha256": "14dj7jsyamkr05dqqlks8p12nb94gw0pj4dmnh1p771020b8drw0"
+ "commit": "95fb5d14033add8fe9c8c6b4379758beb88af1d0",
+ "sha256": "05lpdlpc652sl1kk0wx1bzdzyyyrvllcyfqyksplwaxgzjxy95mp"
},
"stable": {
"version": [
@@ -75428,8 +76252,8 @@
20190828,
1136
],
- "commit": "c47ea8fca65c0f964365488a392e51798d698cdd",
- "sha256": "0j861dp8jzkp6a6956x9jy00bc905bzf3rwylws2vvrz9wpzp7r3"
+ "commit": "1b844a9b21d549bfe767990b4c611de3bc4e2241",
+ "sha256": "0fz2ynxxgq3j7hvfmqq24gvbfpc08apz6zw9cjav08r5z04n1xr3"
}
},
{
@@ -75494,11 +76318,11 @@
"repo": "wasamasa/punpun-theme",
"unstable": {
"version": [
- 20161103,
- 847
+ 20190928,
+ 1413
],
- "commit": "cce8b10b2df6f9187a9eaa0c3f21ff0dda175968",
- "sha256": "1iz1qc9bphl2y2z7abc33fvyaccj733drkl7nzbr1jlpbknkmk2k"
+ "commit": "2f78125609277b2478abdebd8f9d5ee10a823b65",
+ "sha256": "1sgxrj3igzq86h3whfymxf4qzv9kpvcrlhbvjmnp7fwrplys0n7d"
}
},
{
@@ -75880,10 +76704,10 @@
},
{
"ename": "pyenv-mode",
- "commit": "acc9b816796b9f142c53f90593952b43c962d2d8",
- "sha256": "00yqrk92knv9gq1m9xcg78gavv70jsjlwzkllzxl63iva9qrch59",
+ "commit": "c756ccbae044bc23131060355532261aa9a12409",
+ "sha256": "05rfppn75130m5zpg5yz9bz1r7wap05jmd9v08fbqjipv98ckpz3",
"fetcher": "github",
- "repo": "proofit404/pyenv-mode",
+ "repo": "pythonic-emacs/pyenv-mode",
"unstable": {
"version": [
20170801,
@@ -75892,7 +76716,7 @@
"deps": [
"pythonic"
],
- "commit": "eabb1c66f9e0c0500fef4d089508aad246d81dc0",
+ "commit": "aec6f2aa289f6aed974f053c081143758dd142fb",
"sha256": "1zmgm24d6s56jc4ix61058p1k0h95vdvdllr7fh1k3bq4mw22qn3"
},
"stable": {
@@ -75971,8 +76795,8 @@
"repo": "tumashu/pyim",
"unstable": {
"version": [
- 20190826,
- 51
+ 20191014,
+ 333
],
"deps": [
"async",
@@ -75980,8 +76804,8 @@
"pyim-basedict",
"xr"
],
- "commit": "0b8a7ff8b0fcd1086ef938ae398c8efb4791e494",
- "sha256": "0lac78442pyidlrnd8zy6c96adv1jdfismz0qd9a0rj4zyfnzp4r"
+ "commit": "485cd94dd2a651f7ecd69bdf80200f0d0033754e",
+ "sha256": "1frd6xshhvy0l8h4chf11g46dai757mbmy0ag0h024934agqd4n0"
},
"stable": {
"version": [
@@ -76126,8 +76950,8 @@
20170402,
1255
],
- "commit": "6b3afd4f6d75debd7f286f0d3c760ed10ab1e79f",
- "sha256": "19rq53qmk3vzlh9l29f254jpvjbf28j6bzmhzakhy8sn1vchpqsq"
+ "commit": "97f4f2ae187df933f072d74fd8347ec14213f5de",
+ "sha256": "08i0likgznkc7xwb4p47cndza0dy4h12l3im47h12vgjl1r5ayna"
}
},
{
@@ -76180,8 +77004,8 @@
"pythonic",
"tablist"
],
- "commit": "277f7c623f489fd31c56d6e131c5481a71b6a926",
- "sha256": "1xpb08m5zjyxpq45mmhfysxgaga2xj9r6nw6zs2rx0zkv6qjklnr"
+ "commit": "05697e881a8b57c4f183344c42ae36662b180663",
+ "sha256": "148dhzpjv5ykakxdyp0fcxjbqjvf4r6sv8jq9jlyqk2q1nxz45fr"
}
},
{
@@ -76210,20 +77034,20 @@
"repo": "poppyschmo/pytest-pdb-break",
"unstable": {
"version": [
- 20190308,
- 655
+ 20191016,
+ 530
],
- "commit": "ac969ae8cec2e3da250ce454e74f5b28f0e9649b",
- "sha256": "0agrqlasx8ikvwk5c9rc2d4spj7bkhbwn46k3b8ind4pzzk4rxwd"
+ "commit": "b57705d55a067456c6160489672feddcc6085713",
+ "sha256": "03plhl4z75rvf3llhw8dwmc8r3hwhwd2pwq3r66kbqdvr0yrdl42"
},
"stable": {
"version": [
0,
0,
- 4
+ 6
],
- "commit": "38840190dfbcb307778d079da5e2373525b3ac18",
- "sha256": "0887620iq8xn28aajx7z2pkgh19778w494n8icibwlk2mj2m3gxl"
+ "commit": "b57705d55a067456c6160489672feddcc6085713",
+ "sha256": "03plhl4z75rvf3llhw8dwmc8r3hwhwd2pwq3r66kbqdvr0yrdl42"
}
},
{
@@ -76356,11 +77180,11 @@
"repo": "python-mode-devs/python-mode",
"unstable": {
"version": [
- 20190819,
- 1244
+ 20191018,
+ 1735
],
- "commit": "31603f1fc1d8a7568b7259d7ccfef58dde72430a",
- "sha256": "17rb0427v6nwjxy7b2364ihhlzhnqib1xvb547x8kdl971hw3ngx"
+ "commit": "1e64dd421f1848dd902bf9f39b5bac8d3f33a96d",
+ "sha256": "0wckkg4ykrhfpyz5dankagai8jfbhzi3kjd99ds1j1515jxmawmg"
},
"stable": {
"version": [
@@ -76474,21 +77298,21 @@
},
{
"ename": "pythonic",
- "commit": "5589c55d459f15717914061d0f0f4caa32caa13c",
- "sha256": "1hq0r3vg8vmgw89wfjdqknwm76pimlk0dy56wmh9vffh06gqsb51",
+ "commit": "c756ccbae044bc23131060355532261aa9a12409",
+ "sha256": "12yaxpir17bccj5zwd9lsm8dzd7qlflm8kcf8m1c0pxzgpsk0i5p",
"fetcher": "github",
- "repo": "proofit404/pythonic",
+ "repo": "pythonic-emacs/pythonic",
"unstable": {
"version": [
- 20190725,
- 1258
+ 20191021,
+ 811
],
"deps": [
"f",
"s"
],
- "commit": "1ba07048cffa0f95d7d1c75eab2d2be175e67cb6",
- "sha256": "12dhh11q16crhb6dffwx3s7ncgbqsvc2dvpkzgllr58iwd8hs2kk"
+ "commit": "ba9af8ce302579a2b2097b867a35a9fc0bc4bceb",
+ "sha256": "1q43ngd0nj5j9aca71qi0ss137kp46klr6xdlm8ghy55ppym2g5i"
},
"stable": {
"version": [
@@ -76514,19 +77338,19 @@
"repo": "jorgenschaefer/pyvenv",
"unstable": {
"version": [
- 20181228,
- 1722
+ 20191006,
+ 1304
],
- "commit": "fa6a028349733b0ecb407c4cfb3a715b71931eec",
- "sha256": "1x052fsavb94x3scpqd6n9spqgzaahzbdxhg4qa5sy6hqsabn6zh"
+ "commit": "103d2f158ef2a760741682e18741e44107c68f3f",
+ "sha256": "055sgk8zf4wb5nqsf3qasf5gg861zlb1831733f1qcrd2ij5gzxx"
},
"stable": {
"version": [
1,
- 20
+ 21
],
- "commit": "fa6a028349733b0ecb407c4cfb3a715b71931eec",
- "sha256": "1x052fsavb94x3scpqd6n9spqgzaahzbdxhg4qa5sy6hqsabn6zh"
+ "commit": "103d2f158ef2a760741682e18741e44107c68f3f",
+ "sha256": "055sgk8zf4wb5nqsf3qasf5gg861zlb1831733f1qcrd2ij5gzxx"
}
},
{
@@ -76688,11 +77512,11 @@
"url": "https://framagit.org/steckerhalter/quelpa.git",
"unstable": {
"version": [
- 20190710,
- 503
+ 20191014,
+ 628
],
- "commit": "144b71e0f514b96cf19c39853cf08b2d957a8ed5",
- "sha256": "0dv85f38r5jd369ihmpknbj2zv8wmabfdsjcny0j6mp7x1n37dy1"
+ "commit": "0c4dab17591b15cea7dccf905afac9991f3b4971",
+ "sha256": "18j5hyyssmqi57h3i28dyv5mn0pmqkcydfzgn8yc5c53qvq9ixc9"
}
},
{
@@ -76919,8 +77743,8 @@
"repo": "racer-rust/emacs-racer",
"unstable": {
"version": [
- 20190610,
- 800
+ 20191001,
+ 2344
],
"deps": [
"dash",
@@ -76929,8 +77753,8 @@
"rust-mode",
"s"
],
- "commit": "ea6a09c16f8ec646195f942c12fe3ed7d65cc971",
- "sha256": "1r6g9jgbdidivjms62bvxkg0z3jif5j9sxfg51iq8hvc6m1nd352"
+ "commit": "a0bdf778f01e8c4b8a92591447257422ac0b455b",
+ "sha256": "1dzp2l6lcdrcss5xp32yvil4c1din09awnxg0f71fls6kh2g2fcq"
},
"stable": {
"version": [
@@ -76955,14 +77779,14 @@
"repo": "greghendershott/racket-mode",
"unstable": {
"version": [
- 20190803,
- 1820
+ 20191023,
+ 1526
],
"deps": [
"faceup"
],
- "commit": "5300aa004f08535c3fac99f1af78462f129aca81",
- "sha256": "1gkpm4fl1ybsm9qqgrkwyjbd9znddy438x266k27fs90lkxrfray"
+ "commit": "5c1b8c8134741b08c51f3dc47741b05f68f5fd68",
+ "sha256": "1g7fmxrbyydci0qz3x3sm4a2nviri19vd8j9x4wbzbxw2s3c73g3"
}
},
{
@@ -77051,20 +77875,20 @@
"repo": "Fanael/rainbow-delimiters",
"unstable": {
"version": [
- 20170929,
- 1132
+ 20191018,
+ 1233
],
- "commit": "e561cff4abf97d00d9b2b5f10256d417182e2772",
- "sha256": "0j9wmri4zn72znq406n2j078q2h4f74qpcrqh2pkfw4f3ff3hf7c"
+ "commit": "5125f4e47604ad36c3eb4706310fcafac729ca8c",
+ "sha256": "1jh1gv69cjlrjkmjrkhgc7jffyxlkq9nci5ag4z1alskfp6favir"
},
"stable": {
"version": [
2,
1,
- 3
+ 4
],
- "commit": "93cd2dc873e7fedca7abc599cd97d46db4376ac7",
- "sha256": "0vs9pf8lqq5p5qz1770pxgw47ym4xj8axxmwamn66br59mykdhv0"
+ "commit": "455bcee19c92bf85db0ba7e926f0b5a176b69865",
+ "sha256": "1zr2669savnmkc68hiqsq9wccm6bs1j6jbmlac1xqh6nq7xgq36g"
}
},
{
@@ -77301,6 +78125,30 @@
"sha256": "0jzhyf42m9gqcnsz9gxc9wk8bbb9a7fj78swwyj0wqn9jm8jxbra"
}
},
+ {
+ "ename": "rbtagger",
+ "commit": "2365f30d641474e121d64729e5f57641bbb44d17",
+ "sha256": "03f34vb6rks67mgxn0yk2imfsn9fsshi2j3fv4zilb4dav778n4y",
+ "fetcher": "github",
+ "repo": "thiagoa/rbtagger",
+ "unstable": {
+ "version": [
+ 20190925,
+ 2046
+ ],
+ "commit": "831041ea12bb4963fb72386f6c17faf9988013e8",
+ "sha256": "0ssyyw67pvl6py33gq9cfhqlpbsw5dwli130h6lqnjm6yy8li8z5"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 3
+ ],
+ "commit": "dcc8ca8b9c1e42e637b9225b7ad8a3d50dd01be6",
+ "sha256": "0rrpjq3dczwp2vj4dclylid27hwd0am0l8p9kqy67wldkkcc0qz2"
+ }
+ },
{
"ename": "rc-mode",
"commit": "d8062b2e5b2744a6e614b389cca7e7f21b582f6f",
@@ -77580,16 +78428,16 @@
"repo": "realgud/realgud",
"unstable": {
"version": [
- 20190724,
- 2001
+ 20190912,
+ 744
],
"deps": [
"load-relative",
"loc-changes",
"test-simple"
],
- "commit": "11c57cd2ea898c2167ad6c7f80eb1807109d8260",
- "sha256": "0x5d2g18sywh36gp1l2pbjfx4qp3gpvgrkx8gvjsgjdfgmpiygag"
+ "commit": "cc5d1236879a2dcdd91c9a842987f2f5a3accd11",
+ "sha256": "0a27lmaqbhg227insacadrcxhzi6pi64hj4yx3mkppnhiyaasy6v"
},
"stable": {
"version": [
@@ -77673,15 +78521,15 @@
"repo": "realgud/realgud-lldb",
"unstable": {
"version": [
- 20190604,
- 702
+ 20190912,
+ 1335
],
"deps": [
"load-relative",
"realgud"
],
- "commit": "f2f77d6ddfa42430ead400eaf81c605c3a04dead",
- "sha256": "0n8nagjhgyg2l0qymx4rjzigxnhhks86s8flpndsfyhzh98b8qbm"
+ "commit": "47cb0178fdde50a9d9151ab45806b41007cd758a",
+ "sha256": "11vaiq7c4iaypsgs4x4sdfycjailba36qh0pwgdprmiyf8swy8hq"
},
"stable": {
"version": [
@@ -77805,15 +78653,15 @@
"repo": "realgud/realgud-trepan-ni",
"unstable": {
"version": [
- 20190528,
- 2211
+ 20190912,
+ 1418
],
"deps": [
"load-relative",
"realgud"
],
- "commit": "4cd936edcc89324a819b21aa1afd331c02e6bd3e",
- "sha256": "0h0d8566km6v7rgiqx54lwazwwl929npxicg8dx8qw12q13vkk31"
+ "commit": "6e9cac5e8097018aadf41c88de541168036cc227",
+ "sha256": "0xc80mhqk26vm1sv8xz0zw0pmbznvdpb8gla5bh3rnxpadpannc3"
},
"stable": {
"version": [
@@ -77830,6 +78678,30 @@
"sha256": "14sd9d0jzr0iiy4hzssabp08wifbnb4hh6xs5b2v8ch348kcwpwv"
}
},
+ {
+ "ename": "reaper",
+ "commit": "034737d27ad4305b526210e82fe320db4f72a84c",
+ "sha256": "0yr1nb550903g0i2x7arw155v0x5vi4hbdniddwaxa4v9712gphj",
+ "fetcher": "github",
+ "repo": "xendk/reaper",
+ "unstable": {
+ "version": [
+ 20190920,
+ 2209
+ ],
+ "commit": "1c58c96380b8dc31002bbc87100c3faecfa01f1b",
+ "sha256": "08yfwxpqsr0qvy8bhj650n2yd2dxs2miciszngbnplrkkvdy0v7g"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "commit": "1c58c96380b8dc31002bbc87100c3faecfa01f1b",
+ "sha256": "08yfwxpqsr0qvy8bhj650n2yd2dxs2miciszngbnplrkkvdy0v7g"
+ }
+ },
{
"ename": "reason-mode",
"commit": "f9f1a18c13601f3a4fd7b1bbfe7d5da07746e492",
@@ -78258,11 +79130,11 @@
"repo": "purcell/reformatter.el",
"unstable": {
"version": [
- 20190529,
- 2238
+ 20191006,
+ 2321
],
- "commit": "8372cc425967f055ba8a26f6098649467e776c5e",
- "sha256": "1fmyqs06rrkyyclrsfrjsxcwkd0c20kimih2x5llhnxmw51i2y5s"
+ "commit": "e15598a0ccbf4866f4939cceaac897924ba7690f",
+ "sha256": "0dfx0k8q3d4bbvndy9nnhwi2rc2jxmjjp3pi1qbd4nqy0aj6yas1"
},
"stable": {
"version": [
@@ -78350,11 +79222,11 @@
"repo": "alvarogonzalezsotillo/region-occurrences-highlighter",
"unstable": {
"version": [
- 20190830,
- 1152
+ 20190905,
+ 730
],
- "commit": "5f52084d77c22df3b57e96a7ce0dc69679088f4e",
- "sha256": "1p0q7dgchh9cjj0rknas3g40d5lfcp9qrxfbpq6hqzz569f6pc2y"
+ "commit": "ee86d6a79342c6e4b3cfad5ec73cb0a40e18ae3d",
+ "sha256": "06y1hbqgdw2y0isn26wmwrqjxb1ypwrqhcjg4n69mdn74cwlk4jz"
}
},
{
@@ -78421,8 +79293,8 @@
"repo": "proofit404/relative-buffers",
"unstable": {
"version": [
- 20160221,
- 1923
+ 20191004,
+ 1205
],
"deps": [
"cl-lib",
@@ -78430,8 +79302,8 @@
"f",
"s"
],
- "commit": "2547475084244d266b507e563c9b4034705cfeca",
- "sha256": "16m4qyjg0ca1j944ra1qhhg9ks3sk0rv5ax59rqga20l8wf6k0jq"
+ "commit": "6064cd0b3cbd42c4a46c70fc396f05be71f42bd6",
+ "sha256": "0wzxnbbzzjkzrnfdbdn7k172ad6mnhq5y3swcbilnk1w1a1lzyhn"
}
},
{
@@ -78733,11 +79605,11 @@
"repo": "tkf/emacs-request",
"unstable": {
"version": [
- 20190819,
- 1735
+ 20191022,
+ 615
],
- "commit": "f0aeeb5fc17ae270d9a109299edc48e8cf2bf2b6",
- "sha256": "09kdi4mijv6wzcizh7f9lvdszb12csh52yy1r8y7njmma5hqfndp"
+ "commit": "6d170649ae9ef1c7c3d545517f896c03ca12062c",
+ "sha256": "1sc387x1v82i9r0p5r6v2wrwypk0dvkrmpivnyfkvrpg7vhff6yn"
},
"stable": {
"version": [
@@ -78764,8 +79636,8 @@
"deferred",
"request"
],
- "commit": "f0aeeb5fc17ae270d9a109299edc48e8cf2bf2b6",
- "sha256": "09kdi4mijv6wzcizh7f9lvdszb12csh52yy1r8y7njmma5hqfndp"
+ "commit": "6d170649ae9ef1c7c3d545517f896c03ca12062c",
+ "sha256": "1sc387x1v82i9r0p5r6v2wrwypk0dvkrmpivnyfkvrpg7vhff6yn"
},
"stable": {
"version": [
@@ -78893,11 +79765,11 @@
"repo": "pashky/restclient.el",
"unstable": {
"version": [
- 20190502,
- 2214
+ 20191009,
+ 1208
],
- "commit": "422ee8d8b077dffe65706a0f027ed700b84746bc",
- "sha256": "067nin7vxkdpffxa0q61ybv7szihhvpdinivmci9qkbb86rs9kkz"
+ "commit": "e8ca809ace13549a1ddffb4e4aaa5d5fce750f3d",
+ "sha256": "1wdi3c9wczn6vhr5l9mrbhsnw0hj1zfxh3sz53q8v1k684q5jyjk"
}
},
{
@@ -78915,8 +79787,8 @@
"helm",
"restclient"
],
- "commit": "422ee8d8b077dffe65706a0f027ed700b84746bc",
- "sha256": "067nin7vxkdpffxa0q61ybv7szihhvpdinivmci9qkbb86rs9kkz"
+ "commit": "e8ca809ace13549a1ddffb4e4aaa5d5fce750f3d",
+ "sha256": "1wdi3c9wczn6vhr5l9mrbhsnw0hj1zfxh3sz53q8v1k684q5jyjk"
}
},
{
@@ -79078,30 +79950,31 @@
"repo": "dajva/rg.el",
"unstable": {
"version": [
- 20190828,
- 1339
+ 20191017,
+ 1843
],
"deps": [
"cl-lib",
"s",
+ "transient",
"wgrep"
],
- "commit": "64f25282fbba3cb436dbaabe73f5a5417f2daaa8",
- "sha256": "003da113ak5bx2jdcy0ffkm2ihg013m1vk9v7pc5k65xb262c5wz"
+ "commit": "fcb3c16dc67d22afb5a5eab14f00bebe3a0720a6",
+ "sha256": "1bzd7xfy5hf4jlf5f4yl9csgr188dl9kdv5yd2f67z36miia5h6h"
},
"stable": {
"version": [
1,
- 7,
- 0
+ 8,
+ 1
],
"deps": [
"cl-lib",
"s",
"wgrep"
],
- "commit": "77670a4bcdba138a0cef3fb12a20b1492dca902a",
- "sha256": "0hpxkpyylzvzzvqc51ac0r89nv1jdymb8nmsb03sq1svsw5nyag9"
+ "commit": "3f07304b8a7ee70ac91f3b66e76dc1d621a96bff",
+ "sha256": "0k7x5z7mh9flwih35cqy8chs54rack3nswdcpw5wcpgv6xim227y"
}
},
{
@@ -79374,8 +80247,8 @@
20190508,
609
],
- "commit": "fcefc0509dd0a4ec2e02020c83e1c4a1101ef903",
- "sha256": "1zbpp4ilf9kvjnxc0cgs90l02lmpp6pa905cahi441l2pn71kbld"
+ "commit": "7045b8116a0bf899a51e6d91a373a693faa310e1",
+ "sha256": "1wgp0xb2c5b6hxxwwwlz7kl4namb7r03cpfkraqzgiia13m9pihr"
}
},
{
@@ -79494,11 +80367,11 @@
"repo": "DerBeutlin/ros.el",
"unstable": {
"version": [
- 20190720,
- 1439
+ 20191024,
+ 1942
],
- "commit": "ef443866c2f9ad6b2099fe04552a71c654799808",
- "sha256": "071k37019v7fx75ssw823rsgzgmicgpnm641qdfz47zagg9b1xg6"
+ "commit": "5795c4dc88a359667bffd49b7724c26761d6fd96",
+ "sha256": "0j0bdnnv8zmxgs2w8b2nsiqpbvm10napdxrjdg4p042w1c2p370g"
}
},
{
@@ -79595,15 +80468,15 @@
"repo": "pezra/rspec-mode",
"unstable": {
"version": [
- 20190609,
- 1123
+ 20190912,
+ 856
],
"deps": [
"cl-lib",
"ruby-mode"
],
- "commit": "bc2618a71e0bbef60258cf59bad0796f469a2685",
- "sha256": "0ivcp2gvysr6lx0dv2d9g4bsc5sb6h6qjn5b0yr67lbs0r6wrvva"
+ "commit": "66ea7cc9699d6edc6115daa024818adbd85efc20",
+ "sha256": "0b11s8r0pi7ah54km4yg4fqff8wkk409d25qnlwm1l94pdwjd1c8"
},
"stable": {
"version": [
@@ -79626,11 +80499,11 @@
"repo": "Andersbakken/rtags",
"unstable": {
"version": [
- 20190820,
- 502
+ 20191002,
+ 1643
],
- "commit": "6289e66a69d0d5ff20b12da91e735d3984ad6f88",
- "sha256": "1ggdi4mgqw1cc0w6cijds7s4vb575v27g72h6md8h1jdsfv6pvrm"
+ "commit": "f2633f565fc5e7e6958993ef105225f4e68e43ba",
+ "sha256": "1bjgr7wa82ccrc25r7agfaq3iz7xlp1qchvkmkx3xy59jv4yafjz"
},
"stable": {
"version": [
@@ -79995,8 +80868,8 @@
20180127,
22
],
- "commit": "893b1a26244ef6ea82833a9afbc13cb82c0cfb53",
- "sha256": "0lgahv25a9b2dfgkcm9ipyziiqnr3sb9l2dvzm35khwf3m8dwxgq"
+ "commit": "b69a3866e0299cae8c9c805d644e69b2c17b64de",
+ "sha256": "13sm2v7al9658n17dka6dclzsprccrm3zycx6nwsgl99i14cnn99"
}
},
{
@@ -80098,11 +80971,11 @@
"repo": "rust-lang/rust-mode",
"unstable": {
"version": [
- 20190517,
- 2037
+ 20191023,
+ 918
],
- "commit": "48290d331d923031156bbbaf8360b774bf983d1e",
- "sha256": "0xws8mrbrzhfy9kf2p68kwxvshayzbhrnqs6jjvv89h4aaj3630i"
+ "commit": "5ad9b599c6beea43d6262c3ad81d95512a7e53b8",
+ "sha256": "1i1899lclwq2c238jcyz2hixvixwrqgks8xgw5048zpxvdb6vm6a"
},
"stable": {
"version": [
@@ -80145,8 +81018,8 @@
"repo": "brotzeit/rustic",
"unstable": {
"version": [
- 20190820,
- 1448
+ 20191019,
+ 2022
],
"deps": [
"dash",
@@ -80160,8 +81033,8 @@
"spinner",
"xterm-color"
],
- "commit": "cb03a31bff0b1a13ff1ac90c1fd9bc89c55fbb0e",
- "sha256": "0n0vrlv9l9d8qa4vrkvy5jaj6j4qvlqkjz1p5rya2vmiv4wb56ba"
+ "commit": "030e0dc5777ac2c27d2e99ace19c252eb52a50bc",
+ "sha256": "0xs0lyapkp91nhrjhqgsv03zmvmp8mg4jz434w03cwwcbm8k1j55"
}
},
{
@@ -80196,11 +81069,11 @@
"repo": "Kungsgeten/ryo-modal",
"unstable": {
"version": [
- 20190816,
- 1209
+ 20191017,
+ 1323
],
- "commit": "539abca4651dda2d667a44f172957df39fa76eb5",
- "sha256": "1n3biqink9zfbj4r94519xn68xigkvx16caj35njfzc05pkmvawc"
+ "commit": "3a54312eea7023a86ca3f8eb3c03c872554bff2f",
+ "sha256": "1cyvp3bi6yhckbdnq98xvghmhdzghya5y9wd7hxjawibs75rza95"
}
},
{
@@ -80495,11 +81368,11 @@
"repo": "nflath/save-visited-files",
"unstable": {
"version": [
- 20190430,
- 1508
+ 20190927,
+ 2153
],
- "commit": "7eb71a6c4f9cb770b387fcef80231d9a9f648188",
- "sha256": "01ampk085k0rb0bw85imwbs44p4wp20giiwwpbrv6f97bh1065m2"
+ "commit": "0b61c9bd16947bd99ccd61208bd481325e8c5cba",
+ "sha256": "04rrl0nn4mk8h7qyzh3lljagldm5hqhxv8ps6hkh0zz4il7ds018"
}
},
{
@@ -80548,14 +81421,14 @@
"repo": "clojure-emacs/sayid",
"unstable": {
"version": [
- 20190826,
- 1037
+ 20190919,
+ 654
],
"deps": [
"cider"
],
- "commit": "6febf397d5d610d28100fb1381a82d5e77f0d261",
- "sha256": "0ra8xjsmagjwa1qakr1x4f9l88f3zj686dyk88q9qj1bvyam8r33"
+ "commit": "277404a6bb0a979e195df5886fc143bb1d1f1e8c",
+ "sha256": "0whsfl6z39zhjm6b3wcliwfs70xz3pg9b1r6s2bcwnp5ld1v65m9"
},
"stable": {
"version": [
@@ -80572,17 +81445,17 @@
},
{
"ename": "sbt-mode",
- "commit": "364abdc3829fc12e19f00b534565227dbc30baad",
- "sha256": "0v0n70czgkdijnw5jd4na41vlrmqcshvr8gdpv0bv55ilqhiihc8",
+ "commit": "824a7ac85d5c2b8f1c7643bff4eb5931a4680309",
+ "sha256": "1i0056y27bcjpqrqgjhl14qk53r3ny8zzadsgyw2jqf5jvg561bc",
"fetcher": "github",
- "repo": "ensime/emacs-sbt-mode",
+ "repo": "hvesalai/emacs-sbt-mode",
"unstable": {
"version": [
- 20180511,
- 1622
+ 20190929,
+ 1531
],
- "commit": "e658af140547cbef495c33535c7f694a501d318c",
- "sha256": "0lv9ridzk9x6rkf7lj21srnszypyq04vqg05vl10zhpz1yqlnbjd"
+ "commit": "5d2edadff23fe23e911379d6c2141d55b23e7254",
+ "sha256": "1alxn4q38pssgm6y39xhdi7rydrlrl5n481m5vh76wl4hx0dfjhg"
},
"stable": {
"version": [
@@ -80605,8 +81478,8 @@
20190413,
1246
],
- "commit": "c060053d3b4818bf6d0620b0711be845795c4157",
- "sha256": "0w3s32kk7mr9605mmssxrh4izq1wllxccd1hs4hcn2fz04igd9b7"
+ "commit": "6ec97fda154b0578688ab98723685c66af7a7a71",
+ "sha256": "0vq85dv6yrglvfrnf3vxrdlh6cwxfcmrxqwfv596jh0l834cbsgg"
}
},
{
@@ -80629,17 +81502,17 @@
},
{
"ename": "scala-mode",
- "commit": "564aa1637485192a97803af46b3a1f8e0d042c9a",
- "sha256": "12x377iw085fbkjb034dmcsbi7hma17zkkmbgrhkvfkz8pbgaic8",
+ "commit": "eb0b5735e9d930502ea7346e29d350ba8068440c",
+ "sha256": "1wnl3ily5qsff36z6fkk86m58w591yc3m2nka22vslafj8m8gwl8",
"fetcher": "github",
- "repo": "ensime/emacs-scala-mode",
+ "repo": "hvesalai/emacs-scala-mode",
"unstable": {
"version": [
- 20170802,
- 1132
+ 20190929,
+ 1522
],
- "commit": "56cba2903cf6e12c715dbb5c99b34c97b2679379",
- "sha256": "13miqdn426cw9y1wqaz5smmf0wi3bzls95z6shcxzdz8cg50zmpg"
+ "commit": "44772cbf1e1ade52bc5066555ff0aed68569aaec",
+ "sha256": "0xnsyrsardsmjyj563dkl03f5d6g2syng1x721i0w36qkiqwcqr7"
},
"stable": {
"version": [
@@ -80953,11 +81826,11 @@
"repo": "emacs-pe/scribble-mode",
"unstable": {
"version": [
- 20181204,
- 325
+ 20190912,
+ 200
],
- "commit": "217945d54de5e4bb207033f2116baa28f5c5ecf2",
- "sha256": "1s5ccw1a5ack01wd94ywfcrar9j98agchwdh30q7iyxr0d2z4sii"
+ "commit": "5c3ea3cc9bbad585476eee41ea76dc056c2012bb",
+ "sha256": "0p7mch1z289hjxmdb4w04sdixkqqvjmrrw92yd6akr551yj0jbhx"
}
},
{
@@ -81614,11 +82487,11 @@
"repo": "vspinu/sesman",
"unstable": {
"version": [
- 20190623,
- 1123
+ 20190909,
+ 1754
],
- "commit": "e8bfb0e37940bf5f370ae300b896dd04afbc63c8",
- "sha256": "0p2hlrsy2s7pkqlsdicbv3jm2bg16nlrwpllqgnvbqss6jrasx17"
+ "commit": "edee869c209c016e5f0c5cbb8abb9f3ccd2d1e05",
+ "sha256": "16d4kkfmrzc4d0smk9m759mv11bvicixrvwh1za7c6avscg9lym2"
},
"stable": {
"version": [
@@ -81724,14 +82597,14 @@
"repo": "wasamasa/shackle",
"unstable": {
"version": [
- 20190201,
- 1846
+ 20191020,
+ 1249
],
"deps": [
"cl-lib"
],
- "commit": "842a90b3ca04d9d886543f14ca5f04e8bd2a3d06",
- "sha256": "08g72adgbhb1cj6897xrjmpbxcxs6pr8xha4868s293kn6dkh4ys"
+ "commit": "7ccbe513852a1d1700b698547efca14b8940319d",
+ "sha256": "0agsp8ia4irr540r898ifhjqp28n1zsq1pilv1kc272spn3qhvp9"
},
"stable": {
"version": [
@@ -81784,11 +82657,11 @@
"repo": "Shopify/shadowenv.el",
"unstable": {
"version": [
- 20190818,
- 2128
+ 20190903,
+ 1907
],
- "commit": "1887f606db73846d7da6023cb8944efbc791377c",
- "sha256": "1izivy5vz2x86yqbip69jz7sfrjwfm0gsya95ynic7q9qqnq7bmj"
+ "commit": "f3cbe25c82f99367ac009d67a2400eb6d56547ff",
+ "sha256": "10y7qcb61f0x17fy5h2flhvyyql99cshqmfy1varn1mgg2h36mn9"
}
},
{
@@ -81877,11 +82750,11 @@
"repo": "ieure/shell-here",
"unstable": {
"version": [
- 20150728,
- 1704
+ 20191011,
+ 1959
],
- "commit": "251309141e18978d2b8014345acc6f5afcd4d509",
- "sha256": "0z04z07r7p5p05zhaka37s48y82hg2dbk0ynap4inph3frn4yyfl"
+ "commit": "88b80deb1337a97b403b20fc467fa2d579b3bfd5",
+ "sha256": "1x9zcxsc6cnh0h051377asbqhcx3mzcarrnj9zmyg6fcszgas5v1"
}
},
{
@@ -82127,11 +83000,11 @@
"repo": "emacs-w3m/emacs-w3m",
"unstable": {
"version": [
- 20190826,
- 741
+ 20190930,
+ 730
],
- "commit": "3e75463de69ce58ae57aca3b7f5e851a728c499c",
- "sha256": "13a112i5dxsgmphdckzlfa2nys2pfs02ps8i3fas8vq04zk4314n"
+ "commit": "361297e8539770f2f396d30928ebc01de60ca637",
+ "sha256": "1cnzi91mm3mg5x25v7vg86d1ri7ka7cvspb5l7ikmdv6cb9978ll"
}
},
{
@@ -82197,17 +83070,17 @@
},
{
"ename": "show-eol",
- "commit": "1ae308e8c251b7a6942f7d9f739830986f7315ea",
- "sha256": "1k0ihimb4acc30qfmjj3hfpxknif3gzj0iikz23gizrsks7n5p1g",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "1lk397a0b2nwdd9v1vk0kpfd0d0slflsvy4h0ycyvcnbc53byni4",
"fetcher": "github",
- "repo": "elpa-host/show-eol",
+ "repo": "jcs-elpa/show-eol",
"unstable": {
"version": [
- 20190517,
- 257
+ 20190924,
+ 621
],
- "commit": "ea4d5253d2a9ee61f0e76898f0ab760b5574df43",
- "sha256": "1nmx1nxwb6fqkl5h988cjs3yi5cp65wm50w2lbffjd15pswd9kyg"
+ "commit": "097a2a79e5bd7c297bcdc231559813056cd584ac",
+ "sha256": "0yhwd20azk6ib992fy3vzb9knqji3g6hz3ahz89sz71sjjvy1rrm"
}
},
{
@@ -82419,20 +83292,20 @@
"repo": "riscy/shx-for-emacs",
"unstable": {
"version": [
- 20190623,
- 2154
+ 20190929,
+ 331
],
- "commit": "ef084c66e66651bf93cd0065469e862b627c044b",
- "sha256": "1alpp27b3mxw9ansfixdcp4kpj1mak1k1gm370b8fv2s45b3sacb"
+ "commit": "42e175378fa78a2a0b7230deea60e29b60a8b312",
+ "sha256": "04f6ldl81p6pd60i0jspiphdypgkl7qy5qq72dh8hzrw9fcfvf9r"
},
"stable": {
"version": [
1,
- 1,
- 2
+ 2,
+ 0
],
- "commit": "ef084c66e66651bf93cd0065469e862b627c044b",
- "sha256": "1alpp27b3mxw9ansfixdcp4kpj1mak1k1gm370b8fv2s45b3sacb"
+ "commit": "42e175378fa78a2a0b7230deea60e29b60a8b312",
+ "sha256": "04f6ldl81p6pd60i0jspiphdypgkl7qy5qq72dh8hzrw9fcfvf9r"
}
},
{
@@ -82473,11 +83346,11 @@
"repo": "rnkn/side-notes",
"unstable": {
"version": [
- 20190816,
- 303
+ 20190903,
+ 818
],
- "commit": "96c4677ba4dc91c8100c93d3af6f165c21db3e05",
- "sha256": "1gway2ljpi1ac0ssy9r11pvy50j6c5y10wfs4bizlqhzdpjfinh2"
+ "commit": "0d23b13938d4443463ee66956bf57e0a459cb166",
+ "sha256": "1mg0x390nzr844l4zlr4ismkxb9zyy35kg8zjlmy6pcggn7cf82c"
},
"stable": {
"version": [
@@ -82554,11 +83427,11 @@
"repo": "mswift42/silkworm-theme",
"unstable": {
"version": [
- 20180301,
- 1437
+ 20191005,
+ 1903
],
- "commit": "4a297f952401cfe894dcb24174f6eda05e00fada",
- "sha256": "00kjibpn3ry7j1s6kqmakybialpcx4919344lxks7wij5l6qqxx0"
+ "commit": "6cb44e3bfb095588aa3bdf8d0d45b583521f9e2c",
+ "sha256": "0w5h1gl8npmwmpvhhwchrknd977w4l3vvd2lib7qphinj117fhzv"
},
"stable": {
"version": [
@@ -82639,14 +83512,14 @@
"repo": "skeeto/emacs-web-server",
"unstable": {
"version": [
- 20190110,
- 1505
+ 20191006,
+ 1956
],
"deps": [
"cl-lib"
],
- "commit": "08535d0fad6a32fdc03d725ec74e10a754bb9c7a",
- "sha256": "14cajlr1a2dx8x511zb20l633xqa0kqx3nn73x4ph2wwb35njk76"
+ "commit": "67f2f1e665fa66d7ef3beed8e82f94962bfa4f3b",
+ "sha256": "0w0psk98qnwnjyispkcahgh7kyp8jz6m6kwy3hwicsbxbiydrivd"
},
"stable": {
"version": [
@@ -82693,8 +83566,8 @@
"deps": [
"cl-lib"
],
- "commit": "8b03b71303070b05d5def3c8a2564e4b5e67098a",
- "sha256": "1g508x8hf8zlvi6kz9r8jxavl11y47y2gjldjnc6z6ijiqisy3dm"
+ "commit": "2d3304af173b657176a1284abecdad2861820119",
+ "sha256": "1ac03h5hmx6qhsscq5n1n75wc5s1nnvpghws3sij6j64ksixi3b6"
}
},
{
@@ -82999,8 +83872,8 @@
"repo": "yuya373/emacs-slack",
"unstable": {
"version": [
- 20190803,
- 1406
+ 20191019,
+ 1858
],
"deps": [
"alert",
@@ -83010,8 +83883,8 @@
"request",
"websocket"
],
- "commit": "ea89ac4291532a136d02bb8852b5dc641622ab73",
- "sha256": "0gnmhlv3gzv5n8ydbg84n9m6i9d0akcvn032ipsyss6bqw1vzl1m"
+ "commit": "25df7218ef17c03ddad057a1ba50f99160b71675",
+ "sha256": "11m951hl6ykk7h028nhvzlc7ywdc93z7n5vpf9w4m73jlgy1kcbr"
}
},
{
@@ -83072,15 +83945,15 @@
"repo": "slime/slime",
"unstable": {
"version": [
- 20190818,
- 1634
+ 20191025,
+ 1421
],
"deps": [
"cl-lib",
"macrostep"
],
- "commit": "cbab3e9a1bc4f1a03ee21f392a499f01333af816",
- "sha256": "0y645w8lp1f51xx0f36fv2fz1lgk2w1rk7v6brxfg44igbb4c6sv"
+ "commit": "2b9feb2fef764c6713ce433a6318cc412127172d",
+ "sha256": "0x74ph37s5wbc0xmjllh3z4j2synfl1w36mb2plcvixgj67y59yk"
},
"stable": {
"version": [
@@ -83297,11 +84170,11 @@
"repo": "joaotavora/sly",
"unstable": {
"version": [
- 20190709,
- 1511
+ 20191024,
+ 1500
],
- "commit": "249a94ca9560d7ac07607d9a23cfc5c5f487943a",
- "sha256": "02snfrgqp9iwprg4was3njhskbvlypggcgzc58alp0nvlvpszs6g"
+ "commit": "0e8c0f9ce0612d52086792cc960ccbf0b528a624",
+ "sha256": "0akffwzca8yiq2nn5fmpblfddi9vlacwlfdmh856wn5hkhqnvr7k"
},
"stable": {
"version": [
@@ -83320,14 +84193,14 @@
"repo": "mmgeorge/sly-asdf",
"unstable": {
"version": [
- 20190807,
- 553
+ 20191021,
+ 718
],
"deps": [
"sly"
],
- "commit": "c387ba34a75b172e8a75747220c416462ae9de31",
- "sha256": "1cr6p11vsplb6afh2avwb585q606npp692gb5vqs377nni5vx7km"
+ "commit": "69123fcebe63bb4d6e40e3dcb187299622401b74",
+ "sha256": "0f5ycdh02w6b6jkzw6fhsq9brdld78277cjykpy291112fx0ppny"
},
"stable": {
"version": [
@@ -83350,14 +84223,14 @@
"repo": "joaotavora/sly-hello-world",
"unstable": {
"version": [
- 20190701,
- 1443
+ 20191013,
+ 2137
],
"deps": [
"sly"
],
- "commit": "355c94235afa9f79eefff1d22e97fcfa9c31d70c",
- "sha256": "0aifmfw83bi0f761k1ppham0mc1b59w2bpas59355vrlbg7jm9vg"
+ "commit": "ae8fe0a0ebcce50425a1d411c027db06ddec39ce",
+ "sha256": "0gimlph6pbq0s313gqa85gzc2x2d9ba4yww91apikd6xl32707bg"
}
},
{
@@ -83368,15 +84241,15 @@
"repo": "joaotavora/sly-macrostep",
"unstable": {
"version": [
- 20190701,
- 1532
+ 20191013,
+ 2138
],
"deps": [
"macrostep",
"sly"
],
- "commit": "6c4d8ef7b6d39d6ef10053fb6ac08bfbed519d4f",
- "sha256": "1z88h5g0j0mxbqh3k56bl40sydy04jsw7cnhasiyrxyk2glsfm57"
+ "commit": "be2d24545092d164be1a91031d8881afd29c9ec0",
+ "sha256": "0v8m3zkccpqd2l8m9340y672l2mm3mrry8422nva5kfvpcwdayqb"
}
},
{
@@ -83387,14 +84260,14 @@
"repo": "joaotavora/sly-named-readtables",
"unstable": {
"version": [
- 20190701,
- 1800
+ 20191013,
+ 2138
],
"deps": [
"sly"
],
- "commit": "6b37ed2201174caa86a44e8ac3350dd09e91e606",
- "sha256": "1if4ssv0s66gcz8pz55gark9imbw1pilxs1h7y094ygnjcm4m0li"
+ "commit": "a5a42674ccffa97ccd5e4e9742beaf3ea719931f",
+ "sha256": "16asd119rzqrlclps2q6yrkis8jy5an5xgzzqvb7jdyq39zxg54q"
}
},
{
@@ -83405,14 +84278,14 @@
"repo": "joaotavora/sly-quicklisp",
"unstable": {
"version": [
- 20190701,
- 1444
+ 20191012,
+ 2124
],
"deps": [
"sly"
],
- "commit": "06d7281e70d71b9a37f488c8f63fd199e1fb0f97",
- "sha256": "0ml3zshd9kkjspykiadi1nlq7mr5sjcmsvbbbcxrj2d2ki2skniv"
+ "commit": "01ebe3976a244309f2e277c09206831135a0b66c",
+ "sha256": "1vfqmvayf35g6y3ljsm3rlzv5jm50qikhh4lv2zkkswj6gkkb1cv"
}
},
{
@@ -83565,14 +84438,14 @@
"repo": "jojojames/smart-jump",
"unstable": {
"version": [
- 20190423,
- 158
+ 20190925,
+ 1518
],
"deps": [
"dumb-jump"
],
- "commit": "7df77da872dc836dbf032388fc6de82dbc9fa22c",
- "sha256": "0w8jfsm6k2ayk0hg0imsm2vv8y5im5crlij9zi18iwa1mrqkmhsp"
+ "commit": "07800ddd508cf620e6360e4a1f5bb25f8eab3ab1",
+ "sha256": "0g6s5v2mpdd06i8yih8c8qj3bz1j1bdnki1937mn5ca163gjlrr9"
}
},
{
@@ -83750,11 +84623,11 @@
"repo": "genehack/smart-tab",
"unstable": {
"version": [
- 20170902,
- 2107
+ 20190916,
+ 137
],
- "commit": "76a8ec13384975d39aa1b25e5384a02558dba574",
- "sha256": "02mj2is05adq5v64aahivbkx2kzrxmmg2va650hsvl4izj3dr2x3"
+ "commit": "0f6963ce4de403fa43f3db68b31ce059f6251c3a",
+ "sha256": "16rh9wwjnqjk7hf7npfvwf28wmhd7bwnsnfgh592gv70xkcwywaa"
}
},
{
@@ -83806,15 +84679,15 @@
"repo": "Fuco1/smartparens",
"unstable": {
"version": [
- 20190728,
- 2037
+ 20191015,
+ 1754
],
"deps": [
"cl-lib",
"dash"
],
- "commit": "7080e7fba9f478c2e5d4c18a325c3a5d60f6be76",
- "sha256": "029hy609p74w36ivcnw40x6j2v6agjg5bha4k8wbch3wf9y823mz"
+ "commit": "9738360eb2afb58b4c21815f9d5c793b8125f540",
+ "sha256": "1msaggijlladdfpza4qqbdr4ylx3lla3dyjzapj0vs1cv4r30ivg"
},
"stable": {
"version": [
@@ -83924,11 +84797,11 @@
"repo": "aaptel/smblog-mode",
"unstable": {
"version": [
- 20170419,
- 1021
+ 20190920,
+ 1823
],
- "commit": "5245e7aeac20915121946f59bba30899305d950b",
- "sha256": "0i5q29b3hk644dnc0d98d613l065p0k846ljg13vgawpiic6ld6b"
+ "commit": "fe866afbe19f804f80c37e077192576e4b0aad1a",
+ "sha256": "19zynq5izaafkj97a1f7dz8fljdr0mxsal8xcfa938clxihydaaz"
}
},
{
@@ -84131,28 +85004,28 @@
"repo": "kyleam/snakemake-mode",
"unstable": {
"version": [
- 20190412,
- 228
+ 20190912,
+ 308
],
"deps": [
"cl-lib",
"magit-popup"
],
- "commit": "d49c6580e5e01a5e80198f4026caf1d5a717f8a0",
- "sha256": "0lxxd0a735sy4igncf6f0ljk2wy38x2pm1yq90gxymwi26j75ram"
+ "commit": "239b0c812b6963877d64c7051128353f2b9bcb55",
+ "sha256": "11p5gcpb4j5y1wbz212wi8nc7vznbxd70aafb1891q6bcli10g2c"
},
"stable": {
"version": [
1,
- 5,
+ 6,
0
],
"deps": [
"cl-lib",
"magit-popup"
],
- "commit": "0cadd2bbd20aae1555561e81ed72fec43ec7296e",
- "sha256": "1i4cwdyhfyawfx07i63iqdx524mlphgbrl44wqqnnxrbdqm0h534"
+ "commit": "239b0c812b6963877d64c7051128353f2b9bcb55",
+ "sha256": "11p5gcpb4j5y1wbz212wi8nc7vznbxd70aafb1891q6bcli10g2c"
}
},
{
@@ -85574,11 +86447,11 @@
"repo": "srcery-colors/srcery-emacs",
"unstable": {
"version": [
- 20190526,
- 1227
+ 20190909,
+ 1149
],
- "commit": "a47a40c7c5d39d251bf15e45f184565c5240b33e",
- "sha256": "1i3c7y0a7dzvb3c8pk69gvh33945bhm00j0fwl49yh7hg2d9w118"
+ "commit": "0879e2fe1872fe11c3ddfab631987ed64bb5c437",
+ "sha256": "0mwy50rydy64zcy9g08b952vjd5ij9gwgcsl6ipaq52kjhs7x8l8"
},
"stable": {
"version": [
@@ -85682,14 +86555,14 @@
"repo": "magit/ssh-agency",
"unstable": {
"version": [
- 20180508,
- 26
+ 20191009,
+ 156
],
"deps": [
"dash"
],
- "commit": "d9dbedd773ad3a831e02e162c47936d6814a850a",
- "sha256": "0895n7bss4wdydic1gflr03f2cwdyqywl16gvb599lpn288jhwvz"
+ "commit": "89ea87dbfa0aa2fe644f7215aa3628c3008852c5",
+ "sha256": "0mkrn3jildlqyrkbdp31zf24vkzx4ycy49kxqs3vspbbcpanpj7j"
},
"stable": {
"version": [
@@ -85711,11 +86584,11 @@
"repo": "jhgorrell/ssh-config-mode-el",
"unstable": {
"version": [
- 20190712,
- 1840
+ 20191001,
+ 2041
],
- "commit": "4c1dfa57d452cb5654453bf186c8ff63e1e71b56",
- "sha256": "0crglfdazzckizbwzmgl2rn6j85avfzkr1q7ijxd17rp2anvr9bd"
+ "commit": "3d3e9af531003d5456e1a3a3b54147755f070eca",
+ "sha256": "184j4ap4yfis55r87g9rycj78zy2m6lkadbwvlha45d478n35lqh"
}
},
{
@@ -85726,11 +86599,11 @@
"repo": "cjohansson/emacs-ssh-deploy",
"unstable": {
"version": [
- 20190816,
- 2237
+ 20190917,
+ 530
],
- "commit": "d0f7294d23380766dcabdb4ed21bc6a68e496110",
- "sha256": "1w4zd38whpqidhfscbcns7y14ixw6lq2x6wirfjxybq3yilgz9j2"
+ "commit": "93a0e189a06d49b03627c65fe77652bee9f129d4",
+ "sha256": "1ijmnn3f6ymm04fbp6xmsvc1nrxgcj0k90462ffyl6adbzv4f82a"
},
"stable": {
"version": [
@@ -85781,17 +86654,17 @@
},
{
"ename": "stan-mode",
- "commit": "67a44a0abe675238b10decdd612b67e418caf34b",
- "sha256": "17ph5khwwrcpyl96xnp3rsbmnk7mpwmgskxka3cfgkm190qihfqy",
+ "commit": "0d31e038cd133936085994641f9af2bb7d15ba36",
+ "sha256": "1pvdh1pgjcbvkw2qh1mpazfrmcjhwv95a1s4flbn4zijmb2zigdf",
"fetcher": "github",
"repo": "stan-dev/stan-mode",
"unstable": {
"version": [
- 20190805,
- 1427
+ 20191015,
+ 2040
],
- "commit": "e60fe0caecb8e84d0b8fc160a0cdf8343e33d905",
- "sha256": "16wl8r1409v3cjfb91fkv42gf9cbzgcd1cvqpypj3jm3hdmlz9gz"
+ "commit": "bcfa6f49ee3a0ec8a808f3b80286db192b34f6c7",
+ "sha256": "1vvyik4yx19qq5jmy3yi1547s06rm2qsdbvdw88m9pqfffp1xllr"
},
"stable": {
"version": [
@@ -85805,21 +86678,21 @@
},
{
"ename": "stan-snippets",
- "commit": "eda8539b7d8da3a458a38f7536ed03580f9088c3",
- "sha256": "021skkvak645483s7haz1hsz98q3zd8hqi9k5zdzaqlabwdjwh85",
+ "commit": "57f9fe7c4735d4106ad2a0f27331c3e3fe8833c0",
+ "sha256": "1ar2abnlav1sy9622387ps5gr7fls0mx2msczvan4wrc1nnfvwdx",
"fetcher": "github",
"repo": "stan-dev/stan-mode",
"unstable": {
"version": [
- 20190805,
- 1427
+ 20191015,
+ 2040
],
"deps": [
"stan-mode",
"yasnippet"
],
- "commit": "e60fe0caecb8e84d0b8fc160a0cdf8343e33d905",
- "sha256": "16wl8r1409v3cjfb91fkv42gf9cbzgcd1cvqpypj3jm3hdmlz9gz"
+ "commit": "bcfa6f49ee3a0ec8a808f3b80286db192b34f6c7",
+ "sha256": "1vvyik4yx19qq5jmy3yi1547s06rm2qsdbvdw88m9pqfffp1xllr"
},
"stable": {
"version": [
@@ -85939,14 +86812,14 @@
"repo": "Kungsgeten/steam.el",
"unstable": {
"version": [
- 20171109,
- 13
+ 20190916,
+ 627
],
"deps": [
"cl-lib"
],
- "commit": "d6ca2a828b0824da51978397e198bf91c51ce793",
- "sha256": "16cxws1b3iwm9aqbiip298zsjm6gwjihpvkia4p0zvzynwhflw8q"
+ "commit": "f32951f4e0a4bc92813d0121d9df0257101b8992",
+ "sha256": "1fl4875992xxv0amcqj7b516f35k19h8fd7pij0by5b808k5ls6x"
}
},
{
@@ -85990,16 +86863,16 @@
20171130,
1559
],
- "commit": "143146feada95b8be228d339114f2c469a78bbb9",
- "sha256": "0dknxxp320zy3zrrbqsgl4d8jj4i2xcmsa6n91zpvdnb035658pp"
+ "commit": "8fc2c5cd1d7d74e59a35699d12907d5d7efac190",
+ "sha256": "110dgbkqn0x1cw99n6z6llc8547ly7zvp9659d13qhiswbifs8vz"
},
"stable": {
"version": [
0,
- 19
+ 20
],
- "commit": "d86a0c1ffd8db519a1e8d56b3d972fdd8a7f4818",
- "sha256": "1dzl6cnyzwbzysp82x7w1yc03g25kwan3h0zpnzhhfhg6c904sis"
+ "commit": "4f2670ed6da97b731a51e57a01cab581d1b9c52e",
+ "sha256": "17zmxhj5qzhsnaj796szpdsl30v9cfxkvds0vx2hav9f4ix0pl1s"
}
},
{
@@ -86051,6 +86924,24 @@
"sha256": "191sg32z1iagyxmbn49i1lpfihld9g9741cw2kj830s4vag4kinx"
}
},
+ {
+ "ename": "stock-tracker",
+ "commit": "5e959303b4c0a07c821252a913b578f70b5f41ad",
+ "sha256": "1gc4z980rp9s0nvbrbp792ckyw12ahfsk3a3whf12vb3anmmgd7b",
+ "fetcher": "github",
+ "repo": "beacoder/stock-tracker",
+ "unstable": {
+ "version": [
+ 20190902,
+ 812
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "c7455081fa78fd8ffa229dcf0c691f66bf2ece16",
+ "sha256": "19phvf5xcaiwlxx0s8p9ys6xrw6ljp9qxjik98v2ab6d8f2x123q"
+ }
+ },
{
"ename": "strace-mode",
"commit": "9b2003bee9992d9e79124d95d30b573c8a6bdbfe",
@@ -86461,11 +87352,11 @@
"repo": "zevlg/sudoku.el",
"unstable": {
"version": [
- 20161111,
- 706
+ 20191015,
+ 1315
],
- "commit": "77c11b5041b58fc943cf1668b44b40bae039cb5b",
- "sha256": "18nbs980y6cj6my208i80cb928rnkk5rn3zwc63prk5whjw4y77v"
+ "commit": "b1924fd244a5fa284de9d67b66fbd69164b37318",
+ "sha256": "19i3rrz4qnc9i845j0bbmps69372rry7gadcyj06gvq2hf9dy3nh"
}
},
{
@@ -86561,14 +87452,14 @@
"repo": "aaronbieber/sunshine.el",
"unstable": {
"version": [
- 20181029,
- 1654
+ 20190905,
+ 1832
],
"deps": [
"cl-lib"
],
- "commit": "8959dea03377e61aaca0124ac8d2703daaae6b9a",
- "sha256": "1shzhl5bi5dkmvc07mc7sknm5id89iivjkcxsrdcw004g08hr8y0"
+ "commit": "5e57899b2201dd36ae7242aa13ca82efcded3b7c",
+ "sha256": "1l7mls11k9v524c2f4d2xk6b8gydl5mgrpjf7vnngwz63mdy263n"
}
},
{
@@ -86809,6 +87700,26 @@
"sha256": "1gw09x5d4yqlmknjsrhgygp9bch315cnmyqp3679i3hza0l7fds6"
}
},
+ {
+ "ename": "swift-helpful",
+ "commit": "052fb5b561bee1dd71c2c227c75c4f6db4261f68",
+ "sha256": "0rrhi14asrswzg4pn38vyqrc0bh83bs4jfvdj3sbd7jd1zizgj09",
+ "fetcher": "github",
+ "repo": "danielmartin/swift-helpful",
+ "unstable": {
+ "version": [
+ 20191013,
+ 1658
+ ],
+ "deps": [
+ "dash",
+ "lsp-mode",
+ "swift-mode"
+ ],
+ "commit": "5b5eee7122803ca405bc68b67d967a1757d4404c",
+ "sha256": "1vz1dd3w978b3k2ix3vjgz8i2xaxqf24qc5cwhar7n1jwjrzgqig"
+ }
+ },
{
"ename": "swift-mode",
"commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
@@ -86817,14 +87728,14 @@
"repo": "swift-emacs/swift-mode",
"unstable": {
"version": [
- 20190609,
- 507
+ 20191013,
+ 1451
],
"deps": [
"seq"
],
- "commit": "be8d7700cdbf47576d7c4e0a7e0855cce0fe9ad8",
- "sha256": "020jd4byxm8yh651symcs0v8zwrbm7cn9mn5ampjfwf1k43bq1bj"
+ "commit": "b260308e922bd0361779f66a2e5bc1ef0aae4d30",
+ "sha256": "00qabygq71fpnrwrkbgkz5c33b82ni3sxs77nihd00ia2m1524i5"
},
"stable": {
"version": [
@@ -86901,26 +87812,26 @@
"repo": "abo-abo/swiper",
"unstable": {
"version": [
- 20190822,
- 1708
+ 20191021,
+ 1015
],
"deps": [
"ivy"
],
- "commit": "79333e9edfee38ec3b367c33711a68bdf7783259",
- "sha256": "0dyclc51sprhmr5fi4lylhwsrn8v1jgyblwk9ly60jj84lj6278z"
+ "commit": "d2052bab4eecebab84e75b8a10b66f66a8574425",
+ "sha256": "0kxv03mb00ia48vk05xb6bqhkphjjh2pry6r2f5pyag0wgh5vyma"
},
"stable": {
"version": [
0,
- 12,
+ 13,
0
],
"deps": [
"ivy"
],
- "commit": "85d1e2e779ca92e6ef8e47d08f866b13d4d87aee",
- "sha256": "0xgngn3jhmyn6mlkk9kmgfgh0w5i50b27syr4cgfgarg6p77j05w"
+ "commit": "cd634c6f51458f81898ecf2821ac3169cb65a1eb",
+ "sha256": "0ghcwrg8a6r5q6fw2x8s08cwlmnz2d8qjhisnjwbnc2l4cgqpd9p"
}
},
{
@@ -87139,8 +88050,8 @@
"repo": "countvajhula/symex.el",
"unstable": {
"version": [
- 20190810,
- 432
+ 20191010,
+ 1915
],
"deps": [
"cider",
@@ -87157,8 +88068,8 @@
"slime",
"smartparens"
],
- "commit": "745dc44bc1569a05ade034981277ee5955677798",
- "sha256": "0c1sibigy0kvhizxg2198k9kqgb57cmcjx7l0jmar2cgnmndbrgj"
+ "commit": "955c160af27c585d339dee8dd8eda394b253d3cc",
+ "sha256": "1h0n9f19g7i0dw2pz7mrq9frfp5vjb9kzxs2cksk4n37h7pam3kl"
},
"stable": {
"version": [
@@ -87345,14 +88256,14 @@
"repo": "emacs-berlin/syntactic-close",
"unstable": {
"version": [
- 20190513,
- 947
+ 20190923,
+ 1030
],
"deps": [
"cl-lib"
],
- "commit": "2bd46845b664ae828c8b973839ef454cde501028",
- "sha256": "1r1ia1yw43vvyk62d6r1k55zcz185777s10ix9bg3fllczdbyzcz"
+ "commit": "a6c2c24453d18a653fe365707692ad354781cba3",
+ "sha256": "0k3ndhgw2hglkd572zgyaf3znk6pmm8sdn4ma681b4vd7m1j2yw1"
}
},
{
@@ -87409,6 +88320,37 @@
"sha256": "0v2andw08qawgbdzn0vplxd3drs41gqf2qbidhakmsssdd4nqiib"
}
},
+ {
+ "ename": "syslog-mode",
+ "commit": "44b28cc63352e4398a94338d885371226d1e81aa",
+ "sha256": "15kh2v8jsw04vyh2lmh1ndpxli3cwp6yq66hl8mwb1i3g429az19",
+ "fetcher": "github",
+ "repo": "vapniks/syslog-mode",
+ "unstable": {
+ "version": [
+ 20190913,
+ 2040
+ ],
+ "deps": [
+ "hide-lines",
+ "ov"
+ ],
+ "commit": "18f441bf57dd70cdd48a71f1f4566ab35facdb35",
+ "sha256": "1xl6immya0i5xjpls3vqdqj9rr5jxp5srny8l9j4qxf8kp75byqa"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 3
+ ],
+ "deps": [
+ "hide-lines",
+ "ov"
+ ],
+ "commit": "18f441bf57dd70cdd48a71f1f4566ab35facdb35",
+ "sha256": "1xl6immya0i5xjpls3vqdqj9rr5jxp5srny8l9j4qxf8kp75byqa"
+ }
+ },
{
"ename": "system-packages",
"commit": "7d3c7af03e0bca3f834c32827cbcca29e29ef4db",
@@ -87776,11 +88718,11 @@
"repo": "saf-dmitry/taskpaper-mode",
"unstable": {
"version": [
- 20190805,
- 1153
+ 20191009,
+ 1506
],
- "commit": "3f5b0981a87f1c4895961f36e0a67b69ccbbb18d",
- "sha256": "194m2rm1yv7jp6nb7mm3m4hyhj81i379ky7ifaisrvc1jm3dwp6n"
+ "commit": "fa0a5e0c4d36a6f007fc3932f7067fb09ba41de8",
+ "sha256": "1346r8r3m4kpmh90bgdxz7h1d0l7lna64xn7lh6788yfm8rl6sdj"
},
"stable": {
"version": [
@@ -87791,6 +88733,25 @@
"sha256": "0mwd9i6mm0h18z7fiqla95bx6c0zb8x4f6380842hgzi9zrnghxi"
}
},
+ {
+ "ename": "taskrunner",
+ "commit": "f0e0354a4da2e675406068d158c7e532cd5ed083",
+ "sha256": "0dyqqlafzxn0irmqwfh9rjysn1vm0wxlapg3pzgqps1w4mkkvwc5",
+ "fetcher": "github",
+ "repo": "emacs-taskrunner/emacs-taskrunner",
+ "unstable": {
+ "version": [
+ 20190916,
+ 1608
+ ],
+ "deps": [
+ "async",
+ "projectile"
+ ],
+ "commit": "716323aff410b4d864d137c9ebe4bbb5b8587f5e",
+ "sha256": "03llmj09jg5cba927qbzkhld83k24yd1i95nfiq7q754a4y4iksn"
+ }
+ },
{
"ename": "tawny-mode",
"commit": "ea9a114ff739f7d6f5d4c3167f5635ddf79bf60c",
@@ -87799,14 +88760,14 @@
"repo": "phillord/tawny-owl",
"unstable": {
"version": [
- 20170422,
- 2202
+ 20190912,
+ 1357
],
"deps": [
"cider"
],
- "commit": "1be07e047343a1bdbb1a8ca40ff6ed3fbb585dec",
- "sha256": "1x6544hk87pxlvjv136wi3ixswpd621zjmv20c85bxj8zaasc80n"
+ "commit": "e704c2cb737db5481a6b085d82b1fb81e9b0fbac",
+ "sha256": "0hn2i7c6msr8i6b6p578qbdikslap41b5adjrmdra591pmia2cqq"
},
"stable": {
"version": [
@@ -87957,26 +88918,26 @@
"repo": "zevlg/telega.el",
"unstable": {
"version": [
- 20190830,
- 1446
+ 20191025,
+ 1359
],
"deps": [
"visual-fill-column"
],
- "commit": "f8f28c739dcc8f52c3e66368b06c0cfcd48e83a9",
- "sha256": "0ynhw9ai906y4405r8wdalx09hinfns9n01cg96nc4fgbqkhbpdw"
+ "commit": "699579b11b358af86e1cde5823a0987d40054afd",
+ "sha256": "1y0q7scjni4jw4pah0v2pwxc07557q59axk3hb6651kvbig7hq4l"
},
"stable": {
"version": [
0,
4,
- 0
+ 4
],
"deps": [
"visual-fill-column"
],
- "commit": "529003333797fade89a04a8b3fba9099f6585c08",
- "sha256": "1a5fxix2zvs461vn6zn36qgpg65bl38gfb3ivr24wmxq1avja5s1"
+ "commit": "4457087e1e34e7340d3678714807335665d798d8",
+ "sha256": "0s2a9hwa775qyfad1zikah0vnpn9mbydzf8ipsyabns2hhjzf225"
}
},
{
@@ -88409,21 +89370,21 @@
"cl-lib",
"json"
],
- "commit": "9ddff4ca9bce7f46694b15c51799904ff41131b6",
- "sha256": "1kbwaqhb86kidmygn9gcgskrkniqp3x71cl0qgrzgp1cjl0g9xcd"
+ "commit": "9353d89f568a7e8c1e8e4191f764f435a63f0df2",
+ "sha256": "0bibcdbjyfskwj28dk2krnvslb5pnqv5q1clgnwimpmyd6ijm9bj"
},
"stable": {
"version": [
0,
24,
- 0
+ 2
],
"deps": [
"cl-lib",
"json"
],
- "commit": "4ba411719279c62d9c0acd1243a03477ada1ac32",
- "sha256": "1af614di6yb91ychi56i788n1qh3nsc2a8i8jyz1ram122dbf0jj"
+ "commit": "729307d17c08c9f2baf1925a51b7f36d8f035e01",
+ "sha256": "09ziq6l63418z307bcfnyjcbir9vv93qnaapkk65shi6pyj47z30"
}
},
{
@@ -88442,22 +89403,22 @@
"cl-lib",
"tern"
],
- "commit": "9ddff4ca9bce7f46694b15c51799904ff41131b6",
- "sha256": "1kbwaqhb86kidmygn9gcgskrkniqp3x71cl0qgrzgp1cjl0g9xcd"
+ "commit": "9353d89f568a7e8c1e8e4191f764f435a63f0df2",
+ "sha256": "0bibcdbjyfskwj28dk2krnvslb5pnqv5q1clgnwimpmyd6ijm9bj"
},
"stable": {
"version": [
0,
24,
- 0
+ 2
],
"deps": [
"auto-complete",
"cl-lib",
"tern"
],
- "commit": "4ba411719279c62d9c0acd1243a03477ada1ac32",
- "sha256": "1af614di6yb91ychi56i788n1qh3nsc2a8i8jyz1ram122dbf0jj"
+ "commit": "729307d17c08c9f2baf1925a51b7f36d8f035e01",
+ "sha256": "09ziq6l63418z307bcfnyjcbir9vv93qnaapkk65shi6pyj47z30"
}
},
{
@@ -88967,18 +89928,18 @@
20180905,
1050
],
- "commit": "562e52d2ecc53b86c56c7ee4e88288b45fe2e4e3",
- "sha256": "10hxy7iwz24qcagpmi6vvkw7zv04ly4r5ym3sw8wzhcsb1fslzgf"
+ "commit": "59613a5631665e2819df3c9fac3ec83ab5f9b9ad",
+ "sha256": "1az6s5q6vcx4gl2xvvz5im7ydhwvxncr764vhm0lc07aywx2z5mp"
},
"stable": {
"version": [
2019,
- 7,
- 29,
+ 10,
+ 21,
0
],
- "commit": "e30e8a85fdd5e66318be64a66f879e42ace97825",
- "sha256": "0n9yvw7m3wj5nphiavb27s8g8nnzwlm42k781y6rzwb0q8baxnzz"
+ "commit": "a62d2e395a8ff3dac6400d089064966f84c15b52",
+ "sha256": "19svp3qk6yn3zspv6b8a7j9mfm1y80xfvqyy2jgs0yckl8i03iyn"
}
},
{
@@ -89028,26 +89989,26 @@
"repo": "tidalcycles/Tidal",
"unstable": {
"version": [
- 20190320,
- 2158
+ 20191018,
+ 2235
],
"deps": [
"haskell-mode"
],
- "commit": "621d95f6563d550bf777a51a2010f23382d61a78",
- "sha256": "0ps8zjfkwjan5ziil6jhz7ls3mzgk970js0gaja3ndwsd5nlsmq2"
+ "commit": "47e2072676bc9fb0e95db172f7f0ad6115de4163",
+ "sha256": "1bixpx0q4f4k1lmxf325qj4lbdsxhf2gali4sqppyqjghg6qda63"
},
"stable": {
"version": [
1,
4,
- 2
+ 4
],
"deps": [
"haskell-mode"
],
- "commit": "eabe03946d2d537e38d8f38f8c30d38a18202279",
- "sha256": "0nwmic0iimy0fgc1m9ixi4mv8ckpc8cv8wjij1882ggd0isi4k59"
+ "commit": "47e2072676bc9fb0e95db172f7f0ad6115de4163",
+ "sha256": "1bixpx0q4f4k1lmxf325qj4lbdsxhf2gali4sqppyqjghg6qda63"
}
},
{
@@ -89058,8 +90019,8 @@
"repo": "ananthakumaran/tide",
"unstable": {
"version": [
- 20190829,
- 1315
+ 20191004,
+ 1231
],
"deps": [
"cl-lib",
@@ -89068,8 +90029,8 @@
"s",
"typescript-mode"
],
- "commit": "13f64933c19590ebd02a4b141bb6be88d7aaf2b0",
- "sha256": "19kl8r426hi93q1nj5mwadx6wiymx0f77db4w51jcf5kp0rr2hs0"
+ "commit": "b8ce1d8c224cf72ccc3491787a1222be63603127",
+ "sha256": "1q4g8w4p43zbblbwf5fsbk0p2ccy3v5yf139b4ivfkkjy7x8aq9g"
},
"stable": {
"version": [
@@ -89173,16 +90134,16 @@
"repo": "tmarble/timesheet.el",
"unstable": {
"version": [
- 20180802,
- 202
+ 20191024,
+ 151
],
"deps": [
"auctex",
"org",
"s"
],
- "commit": "67ca6a9f6733052066b438301fb2dd81b8b3f6eb",
- "sha256": "0rmh8lik27pmq95858jbjzgvf6rsfdnpynwcagj1fgkval5kzdbs"
+ "commit": "5098dc87d3d4f289b6c1b6532070dacbfe6de9fd",
+ "sha256": "0wqxlb4a7fzf14629zw021216qyzz56xwr8hfh2fy6kj90m9br4c"
},
"stable": {
"version": [
@@ -89364,14 +90325,14 @@
"repo": "kuanyui/tldr.el",
"unstable": {
"version": [
- 20190425,
- 749
+ 20191006,
+ 1059
],
"deps": [
"request"
],
- "commit": "2ff0834bc58590f98bfece3efc5656d1b47c325d",
- "sha256": "1qwx4hmqj6fbpmv230kgdv2qwv5jfmbf5kvdhcq48p4rak1r30qj"
+ "commit": "b7f3e3e2171eab5707a42641f4470b69777feaea",
+ "sha256": "0gy5vjffw0bqvhv0gsc654imvridmc7pg88b3nwlfxkrwzi48vxc"
}
},
{
@@ -89416,11 +90377,11 @@
"repo": "snosov1/toc-org",
"unstable": {
"version": [
- 20190603,
- 803
+ 20190902,
+ 1055
],
- "commit": "2539b4be401d006e2752f6ad3b88e696889a7fc8",
- "sha256": "1d9jj6vgz5f29xqbx1hh0nxkzbql66z3ygxrksry0xjyxabcmnc2"
+ "commit": "379b457fcff091d2fa47223ade58f457fd6eed28",
+ "sha256": "1pbc4ni9sw99r6z9zm1khlyvf1sxy1813ilv73ai7q2619y6njja"
},
"stable": {
"version": [
@@ -89440,16 +90401,16 @@
"repo": "abrochard/emacs-todoist",
"unstable": {
"version": [
- 20190627,
- 2139
+ 20191014,
+ 2033
],
"deps": [
"dash",
"org",
"transient"
],
- "commit": "ca38839638580001600f076c8075369916d24507",
- "sha256": "1l6zrsfx4b06rl07ndlyabqg8pp1bnila40cgadpnmqvh5w6sfdz"
+ "commit": "5543b75581a559f29f35f2577a304e0f15f87100",
+ "sha256": "0w8d53njk81smdk7vm6mxdrrg1310cyxapjbylv2a51d442hrf5g"
}
},
{
@@ -89475,11 +90436,11 @@
"repo": "avillafiorita/todotxt-mode",
"unstable": {
"version": [
- 20150424,
- 1404
+ 20191017,
+ 1319
],
- "commit": "dc6ae151edee88f329ba7abc5d39b7440002232f",
- "sha256": "1k9ywi7cdgb6i600wr04r2l00423l6vr7k93qa7i7svv856nbbc7"
+ "commit": "ec94ac719e2f879c474d29e21dc84353b20258d7",
+ "sha256": "0x5syh0gvkqn3d32baf1r8xnqrpyzy5ywa9vwdbcjrkqfnnap8zb"
}
},
{
@@ -89514,8 +90475,8 @@
"deps": [
"cl-lib"
],
- "commit": "b959376241704cabdcf10a8d0d85e8061b5c6949",
- "sha256": "0ryh0b6fg9s954dr0gmzfbrykhj8p4m1cjmcli85nympq4xymfbq"
+ "commit": "e9dc7907eb8e9cf9a016bd73e6a96421534a70ae",
+ "sha256": "0ga1vbkaxjybxr3l5laakxvy9cbf82lrrsjqi67krh7s303az0bl"
}
},
{
@@ -89733,17 +90694,26 @@
},
{
"ename": "toxi-theme",
- "commit": "5b7972602399f9df9139cff177e38653bb0f43ed",
- "sha256": "032m3qbxfd0qp81qwayd5g9k7vz55g4yhw0d35qkxzf4qf58x9sd",
- "fetcher": "bitbucket",
+ "commit": "2e57d7abe1e43101558b27b0995f54f74a620b33",
+ "sha256": "1dyr8mp5p6j4c949dbzi4fqy86ay84yr3822ab8qx25hck1kdrhj",
+ "fetcher": "github",
"repo": "postspectacular/toxi-theme",
"unstable": {
"version": [
20160424,
2126
],
- "commit": "b322fc7497a53f102e74f7994da96f2974171c9b",
+ "commit": "90c8828b91025adf5adc96011a35d25682991b8a",
"sha256": "1pnsky541m8kzcv81w98jkv0hgajh04hxqlmgddc1y0wbvi849j0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 2
+ ],
+ "commit": "9e572c6e149249b96f64722cf6f86c3aaf5f2ede",
+ "sha256": "0fn8ivq9i48w26c09963chc5v8gnvz0nxgqzzvkk4b7qki1rav2j"
}
},
{
@@ -89814,8 +90784,8 @@
20171210,
2102
],
- "commit": "6ccd4b494cbae9d28091217654f052eaea321007",
- "sha256": "0cr9flk310yn2jgvj4hbqw9nj5wlfi0fazdkqafzidgz6iq150wd"
+ "commit": "e4af7143bd32907d0bf922bee53a96399f0376fa",
+ "sha256": "1ccxin0vp3z8lxcfm9bci06jkwy0nwasdwg95wp9hdnccpr63s38"
},
"stable": {
"version": [
@@ -89900,14 +90870,14 @@
"repo": "magit/transient",
"unstable": {
"version": [
- 20190812,
- 1336
+ 20191017,
+ 1115
],
"deps": [
"dash"
],
- "commit": "9fb3f797f10fd069c2bffa7a3ead746aa53d1a25",
- "sha256": "1xyj9ncqz0mrdgn6wg252p8kv2k9h391ni0bvkw8dqwz7xwgfl3g"
+ "commit": "ad7f2553088faf633d32b51894de796e01a1cacf",
+ "sha256": "16ab68jf98hhy061i41271kdgm8mnmvj62j8y9hmjp7wsw3yzxdr"
},
"stable": {
"version": [
@@ -90042,8 +91012,8 @@
"repo": "Alexander-Miller/treemacs",
"unstable": {
"version": [
- 20190826,
- 1125
+ 20191013,
+ 1020
],
"deps": [
"ace-window",
@@ -90055,8 +91025,8 @@
"pfuture",
"s"
],
- "commit": "48b3cad1a94ec94ecc1ee33a01fe85ef64e5249f",
- "sha256": "09dm727sxjzhhc4s0phw9mf67jg5yp6c4qji0fp1ikz00hg3a359"
+ "commit": "6fb45a351b6d888fda44d5fc86b330b3ea54338f",
+ "sha256": "0ks80b9331p81w9sp1dcq2crb0xgdamy6i5hka2slwm01qharg1j"
},
"stable": {
"version": [
@@ -90085,15 +91055,15 @@
"repo": "Alexander-Miller/treemacs",
"unstable": {
"version": [
- 20190619,
- 1516
+ 20190927,
+ 542
],
"deps": [
"evil",
"treemacs"
],
- "commit": "48b3cad1a94ec94ecc1ee33a01fe85ef64e5249f",
- "sha256": "09dm727sxjzhhc4s0phw9mf67jg5yp6c4qji0fp1ikz00hg3a359"
+ "commit": "6fb45a351b6d888fda44d5fc86b330b3ea54338f",
+ "sha256": "0ks80b9331p81w9sp1dcq2crb0xgdamy6i5hka2slwm01qharg1j"
},
"stable": {
"version": [
@@ -90123,8 +91093,8 @@
"cl-lib",
"treemacs"
],
- "commit": "48b3cad1a94ec94ecc1ee33a01fe85ef64e5249f",
- "sha256": "09dm727sxjzhhc4s0phw9mf67jg5yp6c4qji0fp1ikz00hg3a359"
+ "commit": "6fb45a351b6d888fda44d5fc86b330b3ea54338f",
+ "sha256": "0ks80b9331p81w9sp1dcq2crb0xgdamy6i5hka2slwm01qharg1j"
},
"stable": {
"version": [
@@ -90155,8 +91125,8 @@
"pfuture",
"treemacs"
],
- "commit": "48b3cad1a94ec94ecc1ee33a01fe85ef64e5249f",
- "sha256": "09dm727sxjzhhc4s0phw9mf67jg5yp6c4qji0fp1ikz00hg3a359"
+ "commit": "6fb45a351b6d888fda44d5fc86b330b3ea54338f",
+ "sha256": "0ks80b9331p81w9sp1dcq2crb0xgdamy6i5hka2slwm01qharg1j"
},
"stable": {
"version": [
@@ -90187,8 +91157,8 @@
"projectile",
"treemacs"
],
- "commit": "48b3cad1a94ec94ecc1ee33a01fe85ef64e5249f",
- "sha256": "09dm727sxjzhhc4s0phw9mf67jg5yp6c4qji0fp1ikz00hg3a359"
+ "commit": "6fb45a351b6d888fda44d5fc86b330b3ea54338f",
+ "sha256": "0ks80b9331p81w9sp1dcq2crb0xgdamy6i5hka2slwm01qharg1j"
},
"stable": {
"version": [
@@ -90279,11 +91249,11 @@
"repo": "kawabata/emacs-trr",
"unstable": {
"version": [
- 20170221,
- 842
+ 20191019,
+ 1403
],
- "commit": "83660d8343ef3367837354dc684dfdde2f95826a",
- "sha256": "0h12szq1cww3bpsk09m7d2bk9bfjxrmzlw9ccviwhnric40nh67k"
+ "commit": "f841173e11213ac6916b2d3394b28fb202543871",
+ "sha256": "1s1rh1kz0r8cnsbjjsd61lz7wzf8kzhvbqimhglryckzjsn9jfmf"
},
"stable": {
"version": [
@@ -90357,27 +91327,27 @@
"repo": "alphapapa/ts.el",
"unstable": {
"version": [
- 20190819,
- 102
+ 20191010,
+ 210
],
"deps": [
"dash",
"s"
],
- "commit": "93c074f2895a204e003e8c7f3033c37d6486fac8",
- "sha256": "0lpyv78k04vbp9glnv14dawcfgi3m49847wlgwfmkdq5cr3fn735"
+ "commit": "540f6a5adab5d881cc5f50835c0a3fe70e74b992",
+ "sha256": "0hmzc1ppnkkr0lfq5fhzqr6icv6iqz824a6bnns7zr466hhqp3qb"
},
"stable": {
"version": [
0,
- 1
+ 2
],
"deps": [
"dash",
"s"
],
- "commit": "abf67b63ca562cb2304dfe445f67ed6c6f7c3c05",
- "sha256": "1i93dfm6lw63q1r2fnk5yn95pifvpkfy654yg8mfczss1mz00q35"
+ "commit": "540f6a5adab5d881cc5f50835c0a3fe70e74b992",
+ "sha256": "0hmzc1ppnkkr0lfq5fhzqr6icv6iqz824a6bnns7zr466hhqp3qb"
}
},
{
@@ -90519,16 +91489,16 @@
"repo": "gcr/tumblesocks",
"unstable": {
"version": [
- 20140215,
- 2047
+ 20191014,
+ 356
],
"deps": [
"htmlize",
"markdown-mode",
"oauth"
],
- "commit": "85a6cdc2db3390593fd886c474959b675460b310",
- "sha256": "1g7y7czan7mcs5lwc5r6cllgksrj3b9lpn1bj7khwkd1ll391jc2"
+ "commit": "0e4c3847e31a59d405b9927107a23dde9531d744",
+ "sha256": "1gns60yj1ylm87456gzwr0gy0kivp5bd290rg6d8xbc86jdcls19"
}
},
{
@@ -90714,11 +91684,11 @@
"repo": "emacs-typescript/typescript.el",
"unstable": {
"version": [
- 20190710,
- 2011
+ 20191025,
+ 1425
],
- "commit": "32146510b8ebb031e468c6c0898a9b253c73617e",
- "sha256": "1yhzlgq73px45wy9pz9rx5al510mgzq2bz3rh4j50wpwvl13ja5r"
+ "commit": "f20103a4487a404d11521305db63f550d9eb3fe1",
+ "sha256": "0w2j1qvykllj6dv8azz9vhaibhygmwhb7nsrglmc0xwnmrrvawsi"
},
"stable": {
"version": [
@@ -91037,11 +92007,11 @@
"repo": "jackkamm/undo-propose-el",
"unstable": {
"version": [
- 20190824,
- 1554
+ 20191005,
+ 512
],
- "commit": "21a5cdc8ebfe8113f7039867c4abb0197c0fe71c",
- "sha256": "035hav4lfxwgikg3zpb4cz1nf08qfp27awl87dqbm2ly6d74lpny"
+ "commit": "f80baee566807d733fbacbab08a897bcd62579c3",
+ "sha256": "00rqz63bhh66q78l646q3w16gydygj8h4d8np0dpbifgzciak90b"
}
},
{
@@ -91073,8 +92043,8 @@
20170723,
146
],
- "commit": "df0c4dee19a3874b11c7c7f04e8a2fba629fda9b",
- "sha256": "0bdlr8kqzwzi7aggcn7cwwih19585wi6dd9lvwj4i966zr4w84yx"
+ "commit": "e03771f2d1163d04ca75de76fbfbaa2689c6a9aa",
+ "sha256": "148znb55dbh1hzl9gclg858varx0lwbc5f8d31jladj5yf5pffp1"
},
"stable": {
"version": [
@@ -91476,8 +92446,8 @@
"deps": [
"dash"
],
- "commit": "c37728e11dedd29d849ba9523465b0cdaccea9d5",
- "sha256": "0sp3kcqqj5km6nw6kinhg780vj3bjwf2zj52pmfwpfk8xiy6km5y"
+ "commit": "1e4b1e7f44f242a6cdcce0c157d07efe667b7bef",
+ "sha256": "16ic97lpw1d9bqcc0fvzv2n62xb5rlpi92cha3jpy7flbp8ys143"
}
},
{
@@ -91592,8 +92562,8 @@
"deps": [
"bind-key"
],
- "commit": "1d5ffb2e0d1427066ced58febbba68c1328bf001",
- "sha256": "1a8zpi9pkgp8qkm6qxyzaj3k1s25z3x034mgjqp2mpd7ij76mk8v"
+ "commit": "4714d73b61bdb378f6e9e3f3838cae1abbf65ea0",
+ "sha256": "19m31nh2bd7rrlh53wy1hf6sxcqk4qn4wkm5w1c16314d5w56w5s"
},
"stable": {
"version": [
@@ -91624,8 +92594,8 @@
"key-chord",
"use-package"
],
- "commit": "1d5ffb2e0d1427066ced58febbba68c1328bf001",
- "sha256": "1a8zpi9pkgp8qkm6qxyzaj3k1s25z3x034mgjqp2mpd7ij76mk8v"
+ "commit": "4714d73b61bdb378f6e9e3f3838cae1abbf65ea0",
+ "sha256": "19m31nh2bd7rrlh53wy1hf6sxcqk4qn4wkm5w1c16314d5w56w5s"
},
"stable": {
"version": [
@@ -91686,8 +92656,8 @@
"system-packages",
"use-package"
],
- "commit": "1d5ffb2e0d1427066ced58febbba68c1328bf001",
- "sha256": "1a8zpi9pkgp8qkm6qxyzaj3k1s25z3x034mgjqp2mpd7ij76mk8v"
+ "commit": "4714d73b61bdb378f6e9e3f3838cae1abbf65ea0",
+ "sha256": "19m31nh2bd7rrlh53wy1hf6sxcqk4qn4wkm5w1c16314d5w56w5s"
},
"stable": {
"version": [
@@ -91733,10 +92703,10 @@
},
{
"ename": "use-ttf",
- "commit": "ec27ae185c0308c445e461dc84f398483ca08c5a",
- "sha256": "0gxrn05qcnf54c5895nw68088b9mngsf7sij2prwyfw0ghdl9s8k",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "18ry06d6llq86k5awd23jj0qb68k459dc2i5hqrmpjykqzq6bvya",
"fetcher": "github",
- "repo": "elpa-host/use-ttf",
+ "repo": "jcs-elpa/use-ttf",
"unstable": {
"version": [
20190823,
@@ -91784,17 +92754,17 @@
20190715,
1836
],
- "commit": "2405c8dd8f1cb995baeffb90324dc9c0e1966edc",
- "sha256": "1jm3sagissbw8012mnppknsxl9dqd9514b891b64disqhdb5awg3"
+ "commit": "83ee76fc39b6cb394f5fb19063a3a7da09224339",
+ "sha256": "0z8klqwqmq5i111p4awzvlvirhm1dxp0mbfagwfiwq1wg72v6zdm"
},
"stable": {
"version": [
2,
4,
- 1
+ 2
],
- "commit": "2405c8dd8f1cb995baeffb90324dc9c0e1966edc",
- "sha256": "1jm3sagissbw8012mnppknsxl9dqd9514b891b64disqhdb5awg3"
+ "commit": "83ee76fc39b6cb394f5fb19063a3a7da09224339",
+ "sha256": "0z8klqwqmq5i111p4awzvlvirhm1dxp0mbfagwfiwq1wg72v6zdm"
}
},
{
@@ -92052,20 +93022,20 @@
"repo": "muffinmad/emacs-vc-hgcmd",
"unstable": {
"version": [
- 20190701,
- 1115
+ 20191010,
+ 1129
],
- "commit": "dc7d629cec310e97ea195da1592a35f69aa66c66",
- "sha256": "14c3hlzabiy113vzmlynd9fqhpakhmbgkjrx9i6c5mwf32hmw8p2"
+ "commit": "0b052a6e38b58a123ab48001473dab1df2eaa4c6",
+ "sha256": "0jc6vjbb43mvy5p2slgb0z0isavwbinqxiacawqprnw9jn218l92"
},
"stable": {
"version": [
1,
- 6,
- 9
+ 8,
+ 1
],
- "commit": "dc7d629cec310e97ea195da1592a35f69aa66c66",
- "sha256": "14c3hlzabiy113vzmlynd9fqhpakhmbgkjrx9i6c5mwf32hmw8p2"
+ "commit": "0b052a6e38b58a123ab48001473dab1df2eaa4c6",
+ "sha256": "0jc6vjbb43mvy5p2slgb0z0isavwbinqxiacawqprnw9jn218l92"
}
},
{
@@ -92145,20 +93115,21 @@
"repo": "stepnem/vcsh-el",
"unstable": {
"version": [
- 20190817,
- 2011
+ 20191007,
+ 1102
],
- "commit": "2051e4ee20709f82ab2396ab2ccfbe887a3c6a67",
- "sha256": "168rhydrz7h7bhaf885j4lqxz5x50is7gsypj0vypi6xv71zhd03"
+ "commit": "cbb2b387ea035ee4f95455964144d699f573491d",
+ "sha256": "0apqrhdv0mrv52ws4yyd9q3fd5hrp084nvq5ji9gva8rs2qyki2v"
},
"stable": {
"version": [
0,
4,
+ 2,
1
],
- "commit": "2051e4ee20709f82ab2396ab2ccfbe887a3c6a67",
- "sha256": "168rhydrz7h7bhaf885j4lqxz5x50is7gsypj0vypi6xv71zhd03"
+ "commit": "cbb2b387ea035ee4f95455964144d699f573491d",
+ "sha256": "0apqrhdv0mrv52ws4yyd9q3fd5hrp084nvq5ji9gva8rs2qyki2v"
}
},
{
@@ -92429,14 +93400,14 @@
"repo": "baron42bba/vertica-snippets",
"unstable": {
"version": [
- 20190828,
- 1121
+ 20191007,
+ 1546
],
"deps": [
"yasnippet"
],
- "commit": "4869b7da62799e846b17258f6828dee016a991f4",
- "sha256": "1phhrkk0yyxq4nlrcwad4dvspg6rwda5lzsmch2w64nr5v4ppvl7"
+ "commit": "5750f359de2956f853b131c46cf56726a5a5dfd3",
+ "sha256": "0yhcv006lrd2c8a3q3iganp7zdlacdafjzg97q3q48ihb864bx7p"
}
},
{
@@ -92491,16 +93462,16 @@
"repo": "csantosb/vhdl-tools",
"unstable": {
"version": [
- 20190809,
- 922
+ 20190929,
+ 1532
],
"deps": [
"ggtags",
"helm-rg",
"outshine"
],
- "commit": "5202db4c6a511a90a950a723293d11d55ec05264",
- "sha256": "1ygx8g9cxyyhhpcqan1ca4g741s3dd141bcmp6jjqbjfn2gqraz6"
+ "commit": "9cf9ae509afb79c5579f645907387b8253db167a",
+ "sha256": "0s1pw0a6ykny4r4wvq7867aqkx5rkvlbh3s8jxd8ycpjz9j419dj"
},
"stable": {
"version": [
@@ -92853,11 +93824,11 @@
"repo": "blak3mill3r/vmd-mode",
"unstable": {
"version": [
- 20180223,
- 1356
+ 20190929,
+ 735
],
- "commit": "24e38a20951dfad6e3e985c7cc6286c1e271da5f",
- "sha256": "00anpbnf0h6iikhpqz4mss507j41xwvv27svw41kpgcwsnrmrqwm"
+ "commit": "aa9b753601ee1ed31b4f717629179ce7a2cacba5",
+ "sha256": "0gc1c5q1krqlbaq0lb7p29biwpl32lgv4c6527c322a21in6a5pb"
}
},
{
@@ -92948,11 +93919,11 @@
"repo": "akermu/emacs-libvterm",
"unstable": {
"version": [
- 20190822,
- 1225
+ 20191025,
+ 1349
],
- "commit": "097d9806ffab9120f078bea22e9b49502807786b",
- "sha256": "0x402pq4kq8agzbq1imxg3qm2v6agq2ni1x2a6yqrvwy5vq72qxs"
+ "commit": "57134b682dc58308d9edf353decc952f49814594",
+ "sha256": "147p1cvfh8qmrybrzb4f45x93m6wsgfqjvf34f44n6ca80s7y0y3"
}
},
{
@@ -93076,11 +94047,11 @@
"repo": "emacs-w3m/emacs-w3m",
"unstable": {
"version": [
- 20190830,
- 742
+ 20191002,
+ 427
],
- "commit": "3e75463de69ce58ae57aca3b7f5e851a728c499c",
- "sha256": "13a112i5dxsgmphdckzlfa2nys2pfs02ps8i3fas8vq04zk4314n"
+ "commit": "361297e8539770f2f396d30928ebc01de60ca637",
+ "sha256": "1cnzi91mm3mg5x25v7vg86d1ri7ka7cvspb5l7ikmdv6cb9978ll"
}
},
{
@@ -93168,11 +94139,11 @@
"repo": "darkstego/wakib-keys",
"unstable": {
"version": [
- 20190828,
- 916
+ 20190910,
+ 1011
],
- "commit": "4f3e2c10b8d3b0bd48afb4db9df93ff2ce61c2cd",
- "sha256": "0dmcbv4d2h2jxxblq6kqqy4rs8aci1zxl8wccz6zi3v9si4f7sql"
+ "commit": "23237fc2c255de798b8d3fc2cb68c7c22b53caa9",
+ "sha256": "1s5n2gcldwj5srjn44pigd788x0hv4c7lz75krqyz1hysriydv9p"
}
},
{
@@ -93253,14 +94224,14 @@
"repo": "wanderlust/wanderlust",
"unstable": {
"version": [
- 20190812,
- 818
+ 20190919,
+ 859
],
"deps": [
"semi"
],
- "commit": "ba07b99ee146c7945823874102e7db38e7aa8bd0",
- "sha256": "14fp8s1baq3r6gxaf1c50zyk59bnzpnpbpxnp3lvcz1a1i5377ql"
+ "commit": "7a919e422a48f5021576e68282703de430558879",
+ "sha256": "0k2jklkpqm33bimxy4vnssdc9xa7wfnvay3ng0av1bwxfgxfrmdr"
}
},
{
@@ -93497,11 +94468,11 @@
"repo": "fxbois/web-mode",
"unstable": {
"version": [
- 20190625,
- 1951
+ 20190916,
+ 1858
],
- "commit": "a723d3ecd3606d1c1948871f46fc8c8d7f879fe4",
- "sha256": "1vsm95v47xk63gxg08w8bxlg91l2yqbgqwgaa5706x65q0rzv0xm"
+ "commit": "a31eb8592f09d789c4b08ccecfdaca6fd2f06a69",
+ "sha256": "1552wq8v4d0pj00kyhc05a4wq0p639r5yxa0rf6y3n4vy94190ql"
},
"stable": {
"version": [
@@ -93673,14 +94644,14 @@
"repo": "ahyatt/emacs-websocket",
"unstable": {
"version": [
- 20190621,
- 54
+ 20191017,
+ 30
],
"deps": [
"cl-lib"
],
- "commit": "d91a9aef5a3ec5af985e5185c3b237fdd24605e0",
- "sha256": "0b7kblpsh0m6azqbbvx0fzvwmyamxb25rqk5d1kyy5pizm5kg139"
+ "commit": "5be01c6d1a8e87d001916fc40a77d779826fcacf",
+ "sha256": "0k2rxbacravwjxz3jbkm2icqkfhh5zhpjv7lm0ffbccm5qfyzyy9"
},
"stable": {
"version": [
@@ -94094,20 +95065,20 @@
"repo": "whizzml/whizzml-mode",
"unstable": {
"version": [
- 20190802,
- 1637
+ 20190920,
+ 2342
],
- "commit": "fe8dd75941aac0749b97c9e4fd3709f828d784cd",
- "sha256": "091gyi2qxx96hcq3r6rxkc9jdwmb5kbcsyp4cb6sm0rhiczvif79"
+ "commit": "5c5be351e11a71b31ede33ce941ce20ee0da75ed",
+ "sha256": "0i43l3fwdxvm7mrxpqlf3j06w7blcqp0jyz6jici4pyg0bdy4kd0"
},
"stable": {
"version": [
0,
- 34,
+ 35,
0
],
- "commit": "fe8dd75941aac0749b97c9e4fd3709f828d784cd",
- "sha256": "091gyi2qxx96hcq3r6rxkc9jdwmb5kbcsyp4cb6sm0rhiczvif79"
+ "commit": "5c5be351e11a71b31ede33ce941ce20ee0da75ed",
+ "sha256": "0i43l3fwdxvm7mrxpqlf3j06w7blcqp0jyz6jici4pyg0bdy4kd0"
}
},
{
@@ -94549,15 +95520,15 @@
"repo": "deb0ch/emacs-winum",
"unstable": {
"version": [
- 20181119,
- 1705
+ 20190911,
+ 1607
],
"deps": [
"cl-lib",
"dash"
],
- "commit": "247df36c03d70b453e9b912d6e1b7065644f639d",
- "sha256": "0xbbf35cpbp5mayq5497g6m7l264vlf5p612mpz81yd55xs9pi7k"
+ "commit": "c5455e866e8a5f7eab6a7263e2057aff5f1118b9",
+ "sha256": "0lj4cp7ml7cjhkd66f6ivcl6sbfs2my8ajjlynzl3pm5qansfw5i"
},
"stable": {
"version": [
@@ -94581,11 +95552,11 @@
"repo": "ArneBab/wisp",
"unstable": {
"version": [
- 20190718,
- 1218
+ 20190921,
+ 2218
],
- "commit": "5e860c746ee02c764bf378aeb8f436a1a341bd5c",
- "sha256": "12qcq5k7xdlqwnq01qdkjf1035idrdmjxb24ya1xsxdkd3jra9dw"
+ "commit": "0d2c025ac4cfd394706c07fbb60999eaf711020b",
+ "sha256": "1fs4dpc78aax4mzcp0vzcvzf2mxiwzbdwjfgpylwppxamqdycdwy"
}
},
{
@@ -94626,14 +95597,14 @@
"repo": "magit/with-editor",
"unstable": {
"version": [
- 20190715,
- 2007
+ 20191024,
+ 1905
],
"deps": [
"async"
],
- "commit": "45c29f9bfb7f2df93426ce1571e2f4f41ed4e492",
- "sha256": "0n91y0m7m382j7dfcqhcfzngb84a41x6diy6lx4l87b48srhcpzc"
+ "commit": "d5c777298cd8f62fef701fb45684c626d384bf76",
+ "sha256": "1c093vzfjh9y2abfb0n1r95b7xx77ynpkx5cqz56x2jyb9qhnp26"
},
"stable": {
"version": [
@@ -94682,6 +95653,21 @@
"sha256": "1c7g8f3jr7bb0xxprammfg433gd63in5iiiaq8rjmc94h6hdcys3"
}
},
+ {
+ "ename": "with-proxy",
+ "commit": "295a85f94a804b72475b81b324a6120569b8134a",
+ "sha256": "18453b3687iywd62vnh47yig998l6c8vbc9py1rba1m6a9q01vq0",
+ "fetcher": "github",
+ "repo": "twlz0ne/with-proxy.el",
+ "unstable": {
+ "version": [
+ 20190920,
+ 24
+ ],
+ "commit": "a7506af86ffc943f5d4cba712ec661125799c30b",
+ "sha256": "1nxssc8xn8i2zf9bs9rv61im3jxi38lq1ph9qr0hazwncndcsb39"
+ }
+ },
{
"ename": "with-simulated-input",
"commit": "e4ddf16e19f5018106a423327ddc7e7499cf9248",
@@ -94690,27 +95676,27 @@
"repo": "DarwinAwardWinner/with-simulated-input",
"unstable": {
"version": [
- 20170821,
- 617
+ 20190913,
+ 1524
],
"deps": [
"s",
"seq"
],
- "commit": "af9a38ce28a741e6d8742750bef5d7b5afa13796",
- "sha256": "0iann7zi9bgd3vmvxvg2n6x24hkyzbchbli1ymsmfrn8rif9byf7"
+ "commit": "3d881793521c5618cdb0968a85879e0e49da7fca",
+ "sha256": "12d3mhvzj74qwc4rdcb236jbqnf5lam8pk78j92kwbwjk1jaz2cf"
},
"stable": {
"version": [
2,
- 2
+ 4
],
"deps": [
"s",
"seq"
],
- "commit": "9efeb236c8f6887a8591d6241962c37266d8e726",
- "sha256": "1v8c85ahsk9pz3zndh0c9xba4c78f4b1j97hbv62jirvr75b079g"
+ "commit": "3d881793521c5618cdb0968a85879e0e49da7fca",
+ "sha256": "12d3mhvzj74qwc4rdcb236jbqnf5lam8pk78j92kwbwjk1jaz2cf"
}
},
{
@@ -94915,8 +95901,8 @@
"repo": "abo-abo/worf",
"unstable": {
"version": [
- 20190519,
- 1648
+ 20190930,
+ 1027
],
"deps": [
"ace-link",
@@ -94924,8 +95910,8 @@
"swiper",
"zoutline"
],
- "commit": "00d191b347397bd7ad1f5b95cfe39fa3fce9fc91",
- "sha256": "0mp5f6hp8pqckfsi4bxcg09kcfndvsbc2nnqbgdw87bidwlzhzmy"
+ "commit": "69790b0405e794c4507882fa944d6dafdcca84d8",
+ "sha256": "1iklq4k3b61ivf1as992mvy27x0b9f71h813r2n06m27p2fmx2br"
},
"stable": {
"version": [
@@ -95214,20 +96200,20 @@
"repo": "redguardtoo/wucuo",
"unstable": {
"version": [
- 20181106,
- 2257
+ 20191016,
+ 2324
],
- "commit": "4e988c101fe82f2e8c7b3710d15982fe28b8d32d",
- "sha256": "0g558miz9f4g8jlq532fs9yxj3il62zajgcjfndall2853hn54af"
+ "commit": "2483a797763a9839a5dc942906e65f574dadd502",
+ "sha256": "1y1wprcdbm5iwz7496pbcdq3hbsrf4hfqkplpyminj94f4ac3pcy"
},
"stable": {
"version": [
0,
0,
- 4
+ 5
],
- "commit": "4e988c101fe82f2e8c7b3710d15982fe28b8d32d",
- "sha256": "0g558miz9f4g8jlq532fs9yxj3il62zajgcjfndall2853hn54af"
+ "commit": "2483a797763a9839a5dc942906e65f574dadd502",
+ "sha256": "1y1wprcdbm5iwz7496pbcdq3hbsrf4hfqkplpyminj94f4ac3pcy"
}
},
{
@@ -95760,25 +96746,25 @@
"repo": "NicolasPetton/xref-js2",
"unstable": {
"version": [
- 20170530,
- 826
+ 20190915,
+ 2032
],
"deps": [
"js2-mode"
],
- "commit": "d5f93605405989529c2f66b542def6c32429b927",
- "sha256": "1vzsw257xkqwlgfj8d5hnrirjhxzzs9d8ms40ihb2zwsxn70im53"
+ "commit": "6f1ed5dae0c2485416196a51f2fa92f32e4b8262",
+ "sha256": "0pbnhliq3zivijksdhdqd7m3ndc3z7kw2g21zwihq28faps96ikj"
},
"stable": {
"version": [
1,
- 5
+ 6
],
"deps": [
"js2-mode"
],
- "commit": "7e2bc6a8dad08a493d11d3554f6374584846b9e6",
- "sha256": "1mmd27miv32sl8cj7qhy09yfh7v1zgw7rv4fdwk96msvd4qfdkqd"
+ "commit": "d48253bf1999815329a294d09f0b1b744a6272ae",
+ "sha256": "0kg1vdyjd0n48cb8bvjqskzd79s3bgdcpzn80gm2y78m280kakn8"
}
},
{
@@ -95813,14 +96799,14 @@
"repo": "atomontage/xterm-color",
"unstable": {
"version": [
- 20190816,
- 941
+ 20191002,
+ 2158
],
"deps": [
"cl-lib"
],
- "commit": "44e6df835bd4173ee4ccc7e29842e9dae76f2668",
- "sha256": "0i9ivc5xhl5y5v0l18kbhfg8s2abb9zaimyx951b8bc0f5as68xm"
+ "commit": "12296bb1f0166a81b7e602493ed81e04d3381989",
+ "sha256": "1vab02yjcycvzkyzxpks048mmda89ssvb9bghigw1h20c7zk9x5j"
},
"stable": {
"version": [
@@ -95993,8 +96979,8 @@
20171022,
1412
],
- "commit": "785c36f6a19c011718f45d359609ada6da8bb5f0",
- "sha256": "1nvlrrb1iyy6ll85kr8bls1l2pfs6rlnzlj122hmv3916d434iya"
+ "commit": "7cea3314ad9f1f00543afb578c97e45acbfc3fa7",
+ "sha256": "1mh0imhk9n6as7rz959r3wak0ivg8cyxpqk0bkx67gc7p6l573zy"
}
},
{
@@ -96131,11 +97117,11 @@
"repo": "Kungsgeten/yankpad",
"unstable": {
"version": [
- 20190824,
- 1946
+ 20190904,
+ 1507
],
- "commit": "c364607804e943b301ded8a30d7e19dda217568a",
- "sha256": "0sqcli05kyafn2x9sd92az3hqc010pypr0dw31mv0vslg0rfkn8m"
+ "commit": "2f110f4aacb00c58439385cabb18cfaa8d759e64",
+ "sha256": "1hwmap0z4jjfs5lwmr0zrybzvx49qbqa957wg21l8h31pq40d3k5"
},
"stable": {
"version": [
@@ -96280,14 +97266,14 @@
"repo": "joaotavora/yasnippet",
"unstable": {
"version": [
- 20190724,
- 1204
+ 20191009,
+ 216
],
"deps": [
"cl-lib"
],
- "commit": "d91dd66f2aed9bbaef32813a68b105ea77e83890",
- "sha256": "157ja4fki83dzab2ysd74dmbv83xsrccq59x6d8ilby9fzkizybr"
+ "commit": "a66f15e6c975a4370877df272c1ae87490835d28",
+ "sha256": "0ypjl44fr36n4xj3sx51v4z4arslfqdqfqyhmi9dmd3nm5fqr6f7"
},
"stable": {
"version": [
@@ -96310,14 +97296,14 @@
"repo": "leanprover-community/yasnippet-lean",
"unstable": {
"version": [
- 20190609,
- 454
+ 20190922,
+ 2037
],
"deps": [
"yasnippet"
],
- "commit": "2d57b8ad5c69a1886701d42ca5a8de6bacb170cc",
- "sha256": "1d2n3q36s1mri1lmazld6pabx3929kqivkgq6b8qaya04ri8ds28"
+ "commit": "9119be08a32286d3e8559138e8ae003856ae1c0a",
+ "sha256": "1q06c574zn0ibbb3zbgi59zxj17i7kyjkcz45sj5h7hbn9l81594"
}
},
{
@@ -96328,25 +97314,25 @@
"repo": "AndreaCrotti/yasnippet-snippets",
"unstable": {
"version": [
- 20190821,
- 901
+ 20191010,
+ 1106
],
"deps": [
"yasnippet"
],
- "commit": "71ae4a665f0db13165f14687cf5828d4510ef557",
- "sha256": "1gaycwqy1s2jvkqswjcbm49157ci5k8apsqlj2x5qs55w71zm5p8"
+ "commit": "a34020042ccc1fdf8b30910dfb937462f4349db6",
+ "sha256": "1a2ikwkih1hjmjlvpjffbbnkvdsgpk70v4gjlb0ph14169sja6x4"
},
"stable": {
"version": [
0,
- 14
+ 16
],
"deps": [
"yasnippet"
],
- "commit": "71ae4a665f0db13165f14687cf5828d4510ef557",
- "sha256": "1gaycwqy1s2jvkqswjcbm49157ci5k8apsqlj2x5qs55w71zm5p8"
+ "commit": "c5ddec3a3c0ab2eb045e54709f6852467a90d4c3",
+ "sha256": "0k60ll62daszn6pbhldcdngp548kxx2vyrd6j8awzfwi97cjbi8a"
}
},
{
@@ -96386,11 +97372,11 @@
"url": "https://www.yatex.org/hgrepos/yatex",
"unstable": {
"version": [
- 20190525,
- 548
+ 20191005,
+ 346
],
- "commit": "714f3527b4a16daf7a811dcc7b344ac989064f52",
- "sha256": "12sqy2wrlgzi71vn3q5h47z1i6l6di3pnr4pmn0ixdp500gvy2fv"
+ "commit": "80692d8b8828a36ad44e8fe6b8d2c1d423898e05",
+ "sha256": "1zk5s5w2b4w78ah99j048nskailb1c00h2lm0m8ddvrmxgjl8nwv"
}
},
{
@@ -96507,14 +97493,14 @@
"repo": "alphapapa/yequake",
"unstable": {
"version": [
- 20190114,
- 1955
+ 20190921,
+ 225
],
"deps": [
"dash"
],
- "commit": "4c093fa6ca3b8953ee509c7d8f434984d55ec802",
- "sha256": "0y9dhvfp31yn8cgqslk647b8fs1sv0kwwnnjakjhx2zm3ljld3s0"
+ "commit": "d1f24c1cb49ca4b23fa2a639136ec58ab620cd1f",
+ "sha256": "1fzy4xfyfjrlsc8jzryqp75qz6i623173qa1w5n6knwdn4hgh4r1"
}
},
{
@@ -96598,8 +97584,8 @@
"repo": "xuchunyang/youdao-dictionary.el",
"unstable": {
"version": [
- 20180714,
- 414
+ 20190916,
+ 313
],
"deps": [
"chinese-word-at-point",
@@ -96607,8 +97593,8 @@
"popup",
"pos-tip"
],
- "commit": "9496ea3ba8aa999db3dbde88d6aa37f3579d8dea",
- "sha256": "0kn07ksjdrwl0m1wiac83ljg5drrmyf65gxm4m6r3iz1awd1akbb"
+ "commit": "c8c76a1584c9a39ab5df7bba3ba3c728cbd30bb2",
+ "sha256": "07vngrn17x91anhwvnaa7ryfipgszipaghnj1404yik9w9j9mff9"
},
"stable": {
"version": [
@@ -96710,11 +97696,11 @@
"repo": "bbatsov/zenburn-emacs",
"unstable": {
"version": [
- 20190809,
- 1324
+ 20191016,
+ 655
],
- "commit": "4db36d32207613340dfc6a48fcf8e57a60d97ba3",
- "sha256": "0xkchyg3qsv7nwbl8idypr0wc90c9qhw5s1pbg6xwcyvn9751sba"
+ "commit": "2f4f6e7d0bc37f1a99ab14bb4506a0e53d359da5",
+ "sha256": "0zhj7fak79x4n0spz8vapk5njjhc649ys27v81jncsac6877fs56"
},
"stable": {
"version": [
@@ -96818,15 +97804,13 @@
"stable": {
"version": [
4,
- 5
+ 6
],
"deps": [
- "all-the-icons",
- "flycheck",
- "magit"
+ "all-the-icons"
],
- "commit": "ceb46240636865e86f3fe26906957943ba7bd73c",
- "sha256": "0nnlxzsmhsbszqigcyxak9i1a0digrd13gv6v18ck4h760mihh1m"
+ "commit": "df22536a244293591575e56970bf83814faa7c14",
+ "sha256": "0pfyd1iqs7l2ngwgvj9n0r9k1px7yl16h8n502xdyf0pprxcs4p6"
}
},
{
@@ -96837,11 +97821,11 @@
"repo": "ziglang/zig-mode",
"unstable": {
"version": [
- 20190109,
- 217
+ 20191023,
+ 1551
],
- "commit": "c2deea85dd65c3e73c2771c56a998cbdeb9ff717",
- "sha256": "10k7i2fj3imbq09fkcgd4kjp7n1dn46119jqrd6kbx5inlkq1782"
+ "commit": "77202ac26ee6091d69d40990fddb1ce6cfcc6dc8",
+ "sha256": "0d2f6nz99dp3yxr7m8i78lc313qzssm7k4783w6kkvcsbpknazlw"
}
},
{
@@ -97043,8 +98027,8 @@
20190523,
1300
],
- "commit": "578295532fb1c4ad2a2e95894e65cce02f812b54",
- "sha256": "1qcni15mps7w9waail21x0fy2rrd5y8cm4yzi8rs2ar4vqrjbyyp"
+ "commit": "e2aad25dfd334299a7e53df21796b8652142c5b5",
+ "sha256": "0nr21gmji24bn5j73hrl8qy9llv3cmc9w5j30pcnsi4zi2svh9gc"
},
"stable": {
"version": [
diff --git a/pkgs/applications/editors/emacs/default.nix b/pkgs/applications/editors/emacs/default.nix
index 29a6a8773ef..2862ba7184f 100644
--- a/pkgs/applications/editors/emacs/default.nix
+++ b/pkgs/applications/editors/emacs/default.nix
@@ -60,9 +60,9 @@ stdenv.mkDerivation rec {
[ ncurses gconf libxml2 gnutls alsaLib acl gpm gettext ]
++ lib.optionals stdenv.isLinux [ dbus libselinux systemd ]
++ lib.optionals withX
- [ xlibsWrapper libXaw Xaw3d libXpm libpng libjpeg libungif libtiff librsvg libXft
+ [ xlibsWrapper libXaw Xaw3d libXpm libpng libjpeg libungif libtiff libXft
gconf ]
- ++ lib.optionals (withX || withNS) [ imagemagick ]
+ ++ lib.optionals (withX || withNS) [ imagemagick librsvg ]
++ lib.optionals (stdenv.isLinux && withX) [ m17n_lib libotf ]
++ lib.optional (withX && withGTK2) gtk2-x11
++ lib.optionals (withX && withGTK3) [ gtk3-x11 gsettings-desktop-schemas ]
diff --git a/pkgs/applications/editors/geany/default.nix b/pkgs/applications/editors/geany/default.nix
index a30a8f70224..1e1a817f092 100644
--- a/pkgs/applications/editors/geany/default.nix
+++ b/pkgs/applications/editors/geany/default.nix
@@ -3,7 +3,7 @@
with stdenv.lib;
let
- version = "1.35";
+ version = "1.36";
in
stdenv.mkDerivation rec {
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "https://download.geany.org/${pname}-${version}.tar.bz2";
- sha256 = "179xfnvhcxsv54v2mlrhykqv2j7klniln5sffvqqpjmdvwyivvim";
+ sha256 = "0gnm17cr4rf3pmkf0axz4a0fxwnvp55ji0q0lzy88yqbshyxv14i";
};
nativeBuildInputs = [ pkgconfig intltool libintl ];
diff --git a/pkgs/applications/editors/gnome-builder/default.nix b/pkgs/applications/editors/gnome-builder/default.nix
index 740d65838c3..6ac2c6d4964 100644
--- a/pkgs/applications/editors/gnome-builder/default.nix
+++ b/pkgs/applications/editors/gnome-builder/default.nix
@@ -1,4 +1,4 @@
-{ gcc8Stdenv
+{ stdenv
, ctags
, appstream-glib
, desktop-file-utils
@@ -13,7 +13,6 @@
, gtk-doc
, gtk3
, gtksourceview4
-, hicolor-icon-theme
, json-glib
, jsonrpc-glib
, libdazzle
@@ -23,6 +22,7 @@
, ninja
, ostree
, pcre
+, pcre2
, pkgconfig
, python3
, sysprof
@@ -33,20 +33,16 @@
, wrapGAppsHook
, dbus
, xvfb_run
+, glib
}:
-let
- # Does not build with GCC 7
- # https://gitlab.gnome.org/GNOME/gnome-builder/issues/868
- stdenv = gcc8Stdenv;
-in
stdenv.mkDerivation rec {
pname = "gnome-builder";
- version = "3.32.4";
+ version = "3.34.1";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0xip58m206p8wa28p0a3y4ykylzr5xzmirjl3dspg4j25r08i8qr";
+ sha256 = "19018pq94cxf6fywd7fsmy98x56by5zfmh140pl530gaaw84cvhb";
};
nativeBuildInputs = [
@@ -56,7 +52,6 @@ stdenv.mkDerivation rec {
docbook_xml_dtd_43
gobject-introspection
gtk-doc
- hicolor-icon-theme
(meson.override ({ inherit stdenv; }))
ninja
pkgconfig
@@ -82,6 +77,7 @@ stdenv.mkDerivation rec {
libxml2
ostree
pcre
+ pcre2
python3
sysprof
template-glib
@@ -100,6 +96,8 @@ 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"
diff --git a/pkgs/applications/editors/gobby/default.nix b/pkgs/applications/editors/gobby/default.nix
index 3abe2834db4..f194227932d 100644
--- a/pkgs/applications/editors/gobby/default.nix
+++ b/pkgs/applications/editors/gobby/default.nix
@@ -1,5 +1,5 @@
{ avahiSupport ? false # build support for Avahi in libinfinity
-, stdenv, fetchFromGitHub, autoconf, automake, pkgconfig, wrapGAppsHook
+, stdenv, fetchFromGitHub, autoconf, automake, pkgconfig, wrapGAppsHook, yelp-tools
, gtkmm3, gsasl, gtksourceview3, libxmlxx, libinfinity, intltool, itstool, gnome3 }:
let
@@ -13,7 +13,7 @@ in stdenv.mkDerivation {
sha256 = "0q7lq64yn16lxvj4jphs8y9194h0xppj8k7y9x8b276krraak2az";
};
- nativeBuildInputs = [ autoconf automake pkgconfig intltool itstool gnome3.yelp-tools wrapGAppsHook ];
+ nativeBuildInputs = [ autoconf automake pkgconfig intltool itstool yelp-tools wrapGAppsHook ];
buildInputs = [ gtkmm3 gsasl gtksourceview3 libxmlxx libinf ];
preConfigure = "./autogen.sh";
diff --git a/pkgs/applications/editors/hexdino/default.nix b/pkgs/applications/editors/hexdino/default.nix
new file mode 100644
index 00000000000..ef3635aa8d2
--- /dev/null
+++ b/pkgs/applications/editors/hexdino/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, rustPlatform, ncurses }:
+rustPlatform.buildRustPackage rec {
+ name = "hexdino-${version}";
+ version = "0.1.0";
+
+ src = fetchFromGitHub {
+ owner = "Luz";
+ repo = "hexdino";
+ rev = "de5b5d7042129f57e0ab36416a06476126bce389";
+ sha256 = "11mz07735gxqfamjcjjmxya6swlvr1p77sgd377zjcmd6z54gwyf";
+ };
+
+ cargoSha256 = "0qa8ypp5a7sf1gic482zh3i6s94w6k6bgmk5ynfvwi7g49ql7c4z";
+ verifyCargoDeps = true;
+
+ buildInputs = [ ncurses ];
+
+ meta = with stdenv.lib; {
+ description = "A hex editor with vim like keybindings written in Rust";
+ homepage = https://github.com/Luz/hexdino;
+ license = licenses.mit;
+ maintainers = [ maintainers.luz ];
+ platforms = platforms.all;
+ };
+}
diff --git a/pkgs/applications/editors/jetbrains/common.nix b/pkgs/applications/editors/jetbrains/common.nix
index be20800cde2..bca85c01016 100644
--- a/pkgs/applications/editors/jetbrains/common.nix
+++ b/pkgs/applications/editors/jetbrains/common.nix
@@ -1,4 +1,4 @@
-{ stdenv, makeDesktopItem, makeWrapper, patchelf, p7zip
+{ stdenv, lib, makeDesktopItem, makeWrapper, patchelf, p7zip
, coreutils, gnugrep, which, git, unzip, libsecret, libnotify
}:
@@ -28,7 +28,7 @@ with stdenv; lib.makeOverridable mkDerivation rec {
nativeBuildInputs = [ makeWrapper patchelf p7zip unzip ];
- patchPhase = ''
+ patchPhase = lib.optionalString (!stdenv.isDarwin) ''
get_file_size() {
local fname="$1"
echo $(ls -l $fname | cut -d ' ' -f5)
@@ -63,7 +63,7 @@ with stdenv; lib.makeOverridable mkDerivation rec {
item=${desktopItem}
makeWrapper "$out/$name/bin/${loName}.sh" "$out/bin/${execName}" \
- --prefix PATH : "$out/libexec/${name}:${stdenv.lib.makeBinPath [ jdk coreutils gnugrep which git ]}" \
+ --prefix PATH : "$out/libexec/${name}:${lib.optionalString (stdenv.isDarwin) "${jdk}/jdk/Contents/Home/bin:"}${stdenv.lib.makeBinPath [ jdk coreutils gnugrep which git ]}" \
--prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [
# Some internals want libstdc++.so.6
stdenv.cc.cc.lib libsecret
@@ -77,4 +77,6 @@ with stdenv; lib.makeOverridable mkDerivation rec {
ln -s "$item/share/applications" $out/share
'';
+} // stdenv.lib.optionalAttrs (!(meta.license.free or true)) {
+ preferLocalBuild = true;
}
diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index a33b9531730..48af3c9b014 100644
--- a/pkgs/applications/editors/jetbrains/default.nix
+++ b/pkgs/applications/editors/jetbrains/default.nix
@@ -1,6 +1,6 @@
{ lib, stdenv, callPackage, fetchurl
, python
-, jdk, cmake, libxml2, zlib, python3, ncurses
+, jdk, cmake, libxml2, zlib, python3, ncurses5
}:
with stdenv.lib;
@@ -34,7 +34,7 @@ let
lldbLibPath=$out/clion-${version}/bin/lldb/linux/lib
interp="$(cat $NIX_CC/nix-support/dynamic-linker)"
- ln -s ${ncurses.out}/lib/libncurses.so $lldbLibPath/libtinfo.so.5
+ ln -s ${ncurses5.out}/lib/libtinfo.so.5 $lldbLibPath/libtinfo.so.5
patchelf --set-interpreter $interp \
--set-rpath "${lib.makeLibraryPath [ libxml2 zlib stdenv.cc.cc.lib ]}:$lldbLibPath" \
@@ -134,7 +134,7 @@ let
as IntelliJ.
'';
maintainers = with maintainers; [ edwtjo ];
- platforms = platforms.linux;
+ platforms = platforms.linux ++ platforms.darwin;
};
});
@@ -201,11 +201,11 @@ let
platforms = platforms.linux;
};
}) (attrs: {
- patchPhase = attrs.patchPhase + ''
+ patchPhase = lib.optionalString (!stdenv.isDarwin) (attrs.patchPhase + ''
# Patch built-in mono for ReSharperHost to start successfully
interpreter=$(echo ${stdenv.glibc.out}/lib/ld-linux*.so.2)
patchelf --set-interpreter "$interpreter" lib/ReSharperHost/linux-x64/mono/bin/mono-sgen
- '';
+ '');
});
buildRubyMine = { name, version, src, license, description, wmClass, ... }:
@@ -240,7 +240,7 @@ let
patchPhase = (attrs.patchPhase or "") + optionalString (stdenv.isLinux) ''
# Webstorm tries to use bundled jre if available.
# Lets prevent this for the moment
- rm -r jre64
+ rm -r jbr
'';
});
in
@@ -250,12 +250,12 @@ in
clion = buildClion rec {
name = "clion-${version}";
- version = "2019.2.1"; /* updated by script */
+ version = "2019.2.5"; /* 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 = "13y2c3vzlklwz9cd7anpfdc3dqwh714xivm1g59s6p4x9sy172lp"; /* updated by script */
+ sha256 = "0p0shikhf73ayflv5bm212kz06hiy3brww9h9ijjp6lcadxc9pmf"; /* 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.2.2"; /* updated by script */
+ version = "2019.2.6"; /* 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 = "1babydzmgaas1rxjv11yhgbp0l5scsdwy17l9927qwlbgccf24mb"; /* updated by script */
+ sha256 = "0g57njcklyskadxmvwb0r0z3ckq9qmcwh8qd80w396gj8fgbg50g"; /* updated by script */
};
wmClass = "jetbrains-datagrip";
update-channel = "DataGrip RELEASE";
@@ -276,12 +276,12 @@ in
goland = buildGoland rec {
name = "goland-${version}";
- version = "2019.2.1"; /* updated by script */
+ version = "2019.2.4"; /* 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 = "16wmsf6c8x95d050grqgv6aaxlkc6pqhbqzlz6fzsngjnbkn64yj"; /* updated by script */
+ sha256 = "0rkyw3532qvr6jhr09m3h0ssdy5ilfgfvqqliyf0cacwzw9lfv0p"; /* 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.2.1"; /* updated by script */
+ version = "2019.2.4"; /* 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 = "1pbqnyqly09m7lw6356dydbvppq4i94rsk7c3y40mrc285qzj413"; /* updated by script */
+ sha256 = "012vmclx6kg85gffgc9mr3fp1ffgx20dz7xvafk7c1iynawx8wgq"; /* 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.2.1"; /* updated by script */
+ version = "2019.2.4"; /* 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 = "0mslmhakjjgwj76hbfw9dcidic6zprjfjryggic7dqywl7vjwc95"; /* updated by script */
+ sha256 = "09mz4dx3zbnqw0vh4iqr8sn2s8mvgr7zvn4k7kqivsiv8f79g90a"; /* updated by script */
};
wmClass = "jetbrains-idea";
update-channel = "IntelliJ IDEA RELEASE";
@@ -315,12 +315,12 @@ in
phpstorm = buildPhpStorm rec {
name = "phpstorm-${version}";
- version = "2019.2.1"; /* updated by script */
+ version = "2019.2.4"; /* 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 = "1m198p6586dych6mrgwqxs486qndypsmnikl0rxx45ddrwfjl42g"; /* updated by script */
+ sha256 = "1bx8s4hh96pjfyccldwfarwv5fky6kg2kyc0h2arhfzwq1pbaisl"; /* 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.2.1"; /* updated by script */
+ version = "2019.2.4"; /* updated by script */
description = "PyCharm Community Edition";
license = stdenv.lib.licenses.asl20;
src = fetchurl {
url = "https://download.jetbrains.com/python/${name}.tar.gz";
- sha256 = "0a3fi2wjj0166199pyhvvpaih9nx0xr6q7zf7jfj8i7khpkdk8i5"; /* updated by script */
+ sha256 = "00dl3yx13lw8qyc23dirw96vm2d8c6zsx73ds1ha8zycfh6hkxf8"; /* 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.2.1"; /* updated by script */
+ version = "2019.2.4"; /* updated by script */
description = "PyCharm Professional Edition";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/python/${name}.tar.gz";
- sha256 = "03i7qi0kcnx0irih468xaz7hzicaa5yh399r676drs22ak23qwrq"; /* updated by script */
+ sha256 = "14ab1cvypanwwn0k1hrx3rl964av6pvridgc19z49idw5wpgxgw7"; /* updated by script */
};
wmClass = "jetbrains-pycharm";
update-channel = "PyCharm RELEASE";
@@ -354,12 +354,12 @@ in
rider = buildRider rec {
name = "rider-${version}";
- version = "2019.2.1"; /* updated by script */
+ version = "2019.2.3"; /* 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 = "1p0mlch7qvkvgxjscx6rl65v6h8g6fwk8rcb8s27qkcjm0d78ic8"; /* updated by script */
+ sha256 = "13br6zmqpvi9hcd6wdnalkhj50gzr7cwrdh4v2bpda77iby2pz93"; /* 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.2.1"; /* updated by script */
+ version = "2019.2.4"; /* 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 = "0l0kwc1mih55px8j6bvp1g3pxrv0scd9vpydwvkaqmq5x0r1n3jf"; /* updated by script */
+ sha256 = "1dqp222zvi8ikqdkprmqihyjxiq90vd0a0zl5935xjg1mzf8ald9"; /* updated by script */
};
wmClass = "jetbrains-rubymine";
update-channel = "RubyMine RELEASE";
@@ -380,12 +380,12 @@ in
webstorm = buildWebStorm rec {
name = "webstorm-${version}";
- version = "2019.1.3"; /* updated by script */
+ version = "2019.2.4"; /* 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 = "1bhx2p40r15zvfr6q10bj5y8jaa3i9x9adchczp0irkd3w2jgvy3"; /* updated by script */
+ sha256 = "0iz9qgrbhn1rxr8n5q1y7klfs27j1f55pw8hqbl2ln4df94zqi5j"; /* updated by script */
};
wmClass = "jetbrains-webstorm";
update-channel = "WebStorm RELEASE";
diff --git a/pkgs/applications/editors/kakoune/plugins/default.nix b/pkgs/applications/editors/kakoune/plugins/default.nix
index f53d345d49e..4e92887bccb 100644
--- a/pkgs/applications/editors/kakoune/plugins/default.nix
+++ b/pkgs/applications/editors/kakoune/plugins/default.nix
@@ -3,9 +3,11 @@
{
inherit parinfer-rust;
+ kak-ansi = pkgs.callPackage ./kak-ansi.nix { };
kak-auto-pairs = pkgs.callPackage ./kak-auto-pairs.nix { };
kak-buffers = pkgs.callPackage ./kak-buffers.nix { };
kak-fzf = pkgs.callPackage ./kak-fzf.nix { };
+ kak-plumb = pkgs.callPackage ./kak-plumb.nix { };
kak-powerline = pkgs.callPackage ./kak-powerline.nix { };
kak-vertical-selection = pkgs.callPackage ./kak-vertical-selection.nix { };
}
diff --git a/pkgs/applications/editors/kakoune/plugins/kak-ansi.nix b/pkgs/applications/editors/kakoune/plugins/kak-ansi.nix
new file mode 100644
index 00000000000..408cba45fbe
--- /dev/null
+++ b/pkgs/applications/editors/kakoune/plugins/kak-ansi.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ name = "kak-ansi";
+ version = "0.2.1";
+
+ src = fetchFromGitHub {
+ owner = "eraserhd";
+ repo = "kak-ansi";
+ rev = "v${version}";
+ sha256 = "0ddjih8hfyf6s4g7y46p1355kklaw1ydzzh61141i0r45wyb2d0d";
+ };
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share/kak/autoload/plugins/
+ cp kak-ansi-filter $out/bin/
+ # Hard-code path of filter and don't try to build when Kakoune boots
+ sed '
+ /^declare-option.* ansi_filter /i\
+declare-option -hidden str ansi_filter %{'"$out"'/bin/kak-ansi-filter}
+ /^declare-option.* ansi_filter /,/^}/d
+ ' rc/ansi.kak >$out/share/kak/autoload/plugins/ansi.kak
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Kakoune support for rendering ANSI code";
+ homepage = "https://github.com/eraserhd/kak-ansi";
+ license = licenses.unlicense;
+ maintainers = with maintainers; [ eraserhd ];
+ platforms = platforms.all;
+ };
+}
diff --git a/pkgs/applications/editors/kakoune/plugins/kak-auto-pairs.nix b/pkgs/applications/editors/kakoune/plugins/kak-auto-pairs.nix
index 48dc7106b62..512f1f09207 100644
--- a/pkgs/applications/editors/kakoune/plugins/kak-auto-pairs.nix
+++ b/pkgs/applications/editors/kakoune/plugins/kak-auto-pairs.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
meta = with stdenv.lib;
{ description = "Kakoune extension to enable automatic closing of pairs";
homepage = "https://github.com/alexherbo2/auto-pairs.kak";
- license = licenses.publicDoman;
+ license = licenses.unlicense;
maintainers = with maintainers; [ nrdxp ];
platform = platforms.all;
};
diff --git a/pkgs/applications/editors/kakoune/plugins/kak-buffers.nix b/pkgs/applications/editors/kakoune/plugins/kak-buffers.nix
index 8a2474f0762..eaf20aeadf8 100644
--- a/pkgs/applications/editors/kakoune/plugins/kak-buffers.nix
+++ b/pkgs/applications/editors/kakoune/plugins/kak-buffers.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
meta = with stdenv.lib;
{ description = "Ease navigation between opened buffers in Kakoune";
homepage = "https://github.com/Delapouite/kakoune-buffers";
- license = licenses.publicDoman;
+ license = licenses.mit;
maintainers = with maintainers; [ nrdxp ];
platform = platforms.all;
};
diff --git a/pkgs/applications/editors/kakoune/plugins/kak-fzf.nix b/pkgs/applications/editors/kakoune/plugins/kak-fzf.nix
index 9877c72252b..dd0faf63453 100644
--- a/pkgs/applications/editors/kakoune/plugins/kak-fzf.nix
+++ b/pkgs/applications/editors/kakoune/plugins/kak-fzf.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation {
meta = with stdenv.lib;
{ description = "Kakoune plugin that brings integration with fzf";
homepage = "https://github.com/andreyorst/fzf.kak";
- license = licenses.publicDoman;
+ license = licenses.mit;
maintainers = with maintainers; [ nrdxp ];
platform = platforms.all;
};
diff --git a/pkgs/applications/editors/kakoune/plugins/kak-plumb.nix b/pkgs/applications/editors/kakoune/plugins/kak-plumb.nix
new file mode 100644
index 00000000000..7abef930531
--- /dev/null
+++ b/pkgs/applications/editors/kakoune/plugins/kak-plumb.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, kakoune-unwrapped, plan9port, ... }:
+
+stdenv.mkDerivation rec {
+ pname = "kak-plumb";
+ version = "0.1.1";
+
+ src = fetchFromGitHub {
+ owner = "eraserhd";
+ repo = "kak-plumb";
+ rev = "v${version}";
+ sha256 = "1rz6pr786slnf1a78m3sj09axr4d2lb5rg7sfa4mfg1zcjh06ps6";
+ };
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share/kak/autoload/plugins/
+ substitute rc/plumb.kak $out/share/kak/autoload/plugins/plumb.kak \
+ --replace '9 plumb' '${plan9port}/bin/9 plumb'
+ substitute edit-client $out/bin/edit-client \
+ --replace '9 9p' '${plan9port}/bin/9 9p' \
+ --replace 'kak -p' '${kakoune-unwrapped}/bin/kak -p'
+ chmod +x $out/bin/edit-client
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Kakoune integration with the Plan 9 plumber";
+ homepage = "https://github.com/eraserhd/kak-plumb";
+ license = licenses.unlicense;
+ maintainers = with maintainers; [ eraserhd ];
+ platforms = platforms.all;
+ };
+}
diff --git a/pkgs/applications/editors/kakoune/plugins/kak-powerline.nix b/pkgs/applications/editors/kakoune/plugins/kak-powerline.nix
index 76af06504ea..d328e47f7e1 100644
--- a/pkgs/applications/editors/kakoune/plugins/kak-powerline.nix
+++ b/pkgs/applications/editors/kakoune/plugins/kak-powerline.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
meta = with stdenv.lib;
{ description = "Kakoune modeline, but with passion";
homepage = "https://github.com/andreyorst/powerline.kak";
- license = licenses.publicDoman;
+ license = licenses.mit;
maintainers = with maintainers; [ nrdxp ];
platform = platforms.all;
};
diff --git a/pkgs/applications/editors/kakoune/plugins/kak-vertical-selection.nix b/pkgs/applications/editors/kakoune/plugins/kak-vertical-selection.nix
index 280fb664b8f..7658ba0f7ad 100644
--- a/pkgs/applications/editors/kakoune/plugins/kak-vertical-selection.nix
+++ b/pkgs/applications/editors/kakoune/plugins/kak-vertical-selection.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
meta = with stdenv.lib;
{ description = "Select up and down lines that match the same pattern in Kakoune";
homepage = "https://github.com/occivink/kakoune-vertical-selection";
- license = licenses.publicDoman;
+ license = licenses.unlicense;
maintainers = with maintainers; [ nrdxp ];
platform = platforms.all;
};
diff --git a/pkgs/applications/editors/kdevelop5/kdev-php.nix b/pkgs/applications/editors/kdevelop5/kdev-php.nix
index e367b586f30..94db57d593e 100644
--- a/pkgs/applications/editors/kdevelop5/kdev-php.nix
+++ b/pkgs/applications/editors/kdevelop5/kdev-php.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "kdev-php";
- version = "5.4.2";
+ version = "5.4.4";
src = fetchurl {
url = "https://github.com/KDE/${pname}/archive/v${version}.tar.gz";
- sha256 = "1ilazq2y671wifcrh7pa0zf9yqymqxwj1m2kd389ik2p6wm68jx8";
+ sha256 = "1q80vh2b4bmpa3sh94b6jsa5ymqr6hcn76mr2lyw30h2ppy5hm5l";
};
nativeBuildInputs = [ cmake extra-cmake-modules ];
diff --git a/pkgs/applications/editors/kdevelop5/kdev-python.nix b/pkgs/applications/editors/kdevelop5/kdev-python.nix
index 1052c5e1ba3..3cd81f4c1a1 100644
--- a/pkgs/applications/editors/kdevelop5/kdev-python.nix
+++ b/pkgs/applications/editors/kdevelop5/kdev-python.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "kdev-python";
- version = "5.4.2";
+ version = "5.4.4";
src = fetchurl {
url = "https://github.com/KDE/${pname}/archive/v${version}.tar.gz";
- sha256 = "1nnspa1mixdb5z0a8m4nbpsk6c4s81iwrirhrl7091hsw02bsx3f";
+ sha256 = "04ig8vmn85z15mlngha4ybynjlmv9g9dn48y58wqrkif2ssliq7m";
};
cmakeFlags = [
diff --git a/pkgs/applications/editors/kdevelop5/kdevelop.nix b/pkgs/applications/editors/kdevelop5/kdevelop.nix
index 88c35a6223a..dd1f5eea8f4 100644
--- a/pkgs/applications/editors/kdevelop5/kdevelop.nix
+++ b/pkgs/applications/editors/kdevelop5/kdevelop.nix
@@ -1,3 +1,4 @@
+
{ mkDerivation, lib, fetchurl, cmake, gettext, pkgconfig, extra-cmake-modules
, qtquickcontrols, qtwebkit, qttools, kde-cli-tools, qtbase
, kconfig, kdeclarative, kdoctools, kiconthemes, ki18n, kitemmodels, kitemviews
@@ -9,11 +10,11 @@
mkDerivation rec {
pname = "kdevelop";
- version = "5.4.2";
+ version = "5.4.4";
src = fetchurl {
url = "mirror://kde/stable/${pname}/${version}/src/${pname}-${version}.tar.xz";
- sha256 = "1i665m4jd1r5bl77pcfybpn9szxzccrajs4m0prqwhlj93d57qjj";
+ sha256 = "1cangz3ghz39sxxggp2p7kqy2ncgs0r3i19c341b5xbkcxw2y20h";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/editors/manuskript/default.nix b/pkgs/applications/editors/manuskript/default.nix
index ecbe7e8b719..811284491dd 100644
--- a/pkgs/applications/editors/manuskript/default.nix
+++ b/pkgs/applications/editors/manuskript/default.nix
@@ -1,16 +1,20 @@
-{ stdenv, zlib, fetchFromGitHub, python3Packages }:
+{ stdenv, zlib, fetchFromGitHub, python3Packages, wrapQtAppsHook }:
python3Packages.buildPythonApplication rec {
pname = "manuskript";
- version = "0.9.0";
+ version = "0.10.0";
+
+ format = "other";
src = fetchFromGitHub {
repo = pname;
owner = "olivierkes";
rev = version;
- sha256 = "13y1s0kba1ib6g977n7h920kyr7abdw03kpal512m7iwa9g2kdw8";
+ sha256 = "0q413vym7hzjpyg3krj5y63hwpncdifjkyswqmr76zg5yqnklnh3";
};
+ nativeBuildInputs = [ wrapQtAppsHook ];
+
propagatedBuildInputs = [
python3Packages.pyqt5
python3Packages.lxml
@@ -30,6 +34,10 @@ python3Packages.buildPythonApplication rec {
cp -r sample-projects/ $out/share/${pname}
'';
+ postFixup = ''
+ wrapQtApp $out/bin/manuskript
+ '';
+
doCheck = false;
meta = {
diff --git a/pkgs/applications/editors/mle/default.nix b/pkgs/applications/editors/mle/default.nix
new file mode 100644
index 00000000000..e98759edd15
--- /dev/null
+++ b/pkgs/applications/editors/mle/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, termbox, pcre, uthash, lua5_3 }:
+
+stdenv.mkDerivation rec {
+ pname = "mle";
+ version = "1.4.1";
+
+ src = fetchFromGitHub {
+ owner = "adsr";
+ repo = "mle";
+ rev = "v${version}";
+ sha256 = "15i5lzcp0zar2zh34ky9m6pvvi41zgdrl3hmylpgsqnnj4r87vqc";
+ };
+
+ # Fix location of Lua 5.3 header and library
+ postPatch = ''
+ substituteInPlace Makefile --replace "-llua5.3" "-llua";
+ substituteInPlace mle.h --replace " build.rs
+ use std::env;
+ use std::fs::File;
+ use std::io::Write;
+ use std::path::Path;
+
+ fn main() {
+ let out_dir = env::var("OUT_DIR").unwrap();
+ let dest_path = Path::new(&out_dir).join("gnvim_version.rs");
+ let mut f = File::create(&dest_path).unwrap();
+ f.write_all(b"const VERSION: &str = \"${version}\";").unwrap();
+ }
+ EOF
+ '';
+
+ installPhase = ''
+ make install PREFIX="${placeholder "out"}"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "GUI for neovim, without any web bloat";
+ homepage = "https://github.com/vhakulinen/gnvim";
+ license = licenses.mit;
+ maintainers = with maintainers; [ minijackson ];
+ inherit version;
+ };
+}
diff --git a/pkgs/applications/editors/neovim/gnvim/wrapper.nix b/pkgs/applications/editors/neovim/gnvim/wrapper.nix
new file mode 100644
index 00000000000..e16fe8a8adc
--- /dev/null
+++ b/pkgs/applications/editors/neovim/gnvim/wrapper.nix
@@ -0,0 +1,41 @@
+{ stdenv, gnvim-unwrapped, neovim, makeWrapper }:
+
+stdenv.mkDerivation {
+ pname = "gnvim";
+ version = gnvim-unwrapped.version;
+ buildCommand = if stdenv.isDarwin then ''
+ mkdir -p $out/Applications
+ cp -r ${gnvim-unwrapped}/bin/gnvim.app $out/Applications
+
+ chmod -R a+w "$out/Applications/gnvim.app/Contents/MacOS"
+ wrapProgram "$out/Applications/gnvim.app/Contents/MacOS/gnvim" \
+ --prefix PATH : "${neovim}/bin" \
+ --set GNVIM_RUNTIME_PATH "${gnvim-unwrapped}/share/gnvim/runtime"
+ '' else ''
+ makeWrapper '${gnvim-unwrapped}/bin/gnvim' "$out/bin/gnvim" \
+ --prefix PATH : "${neovim}/bin" \
+ --set GNVIM_RUNTIME_PATH "${gnvim-unwrapped}/share/gnvim/runtime"
+
+ mkdir -p "$out/share"
+ ln -s '${gnvim-unwrapped}/share/icons' "$out/share/icons"
+
+ # copy and fix .desktop file
+ cp -r '${gnvim-unwrapped}/share/applications' "$out/share/applications"
+ # Sed needs a writable directory to do inplace modifications
+ chmod u+rw "$out/share/applications"
+ for file in $out/share/applications/*.desktop; do
+ sed -e "s|Exec=.\\+gnvim\\>|Exec=$out/bin/gnvim|" -i "$file"
+ done
+ '';
+
+ preferLocalBuild = true;
+
+ nativeBuildInputs = [
+ makeWrapper
+ ];
+
+ passthru.unwrapped = gnvim-unwrapped;
+
+ inherit (gnvim-unwrapped) meta;
+}
+
diff --git a/pkgs/applications/editors/neovim/neovim-remote.nix b/pkgs/applications/editors/neovim/neovim-remote.nix
index 92ff745d1a6..18f458fd85c 100644
--- a/pkgs/applications/editors/neovim/neovim-remote.nix
+++ b/pkgs/applications/editors/neovim/neovim-remote.nix
@@ -4,14 +4,14 @@ with stdenv.lib;
pythonPackages.buildPythonApplication rec {
pname = "neovim-remote";
- version = "2.2.0";
+ version = "2.2.2";
disabled = !pythonPackages.isPy3k;
src = fetchFromGitHub {
owner = "mhinz";
repo = "neovim-remote";
rev = "v${version}";
- sha256 = "0vvwygyar835z947d5zgjywyhl7ajj63z0l8sb7w9kj1w5snb43x";
+ sha256 = "129yjpwn6480rd5na866h4mcr6rf60rqv651hks5fn3ws112n751";
};
propagatedBuildInputs = with pythonPackages; [ pynvim psutil ];
diff --git a/pkgs/applications/editors/neovim/qt.nix b/pkgs/applications/editors/neovim/qt.nix
index 83b14b4ea37..3a46f68e775 100644
--- a/pkgs/applications/editors/neovim/qt.nix
+++ b/pkgs/applications/editors/neovim/qt.nix
@@ -60,8 +60,9 @@ in
--prefix PATH : "${neovim}/bin"
# link .desktop file
- mkdir -p "$out/share"
+ mkdir -p "$out/share/pixmaps"
ln -s '${unwrapped}/share/applications' "$out/share/applications"
+ ln -s '${unwrapped}/share/pixmaps/nvim-qt.png' "$out/share/pixmaps/nvim-qt.png"
'';
preferLocalBuild = true;
diff --git a/pkgs/applications/editors/neovim/wrapper.nix b/pkgs/applications/editors/neovim/wrapper.nix
index ec799c0fa49..ffe597b00db 100644
--- a/pkgs/applications/editors/neovim/wrapper.nix
+++ b/pkgs/applications/editors/neovim/wrapper.nix
@@ -75,8 +75,9 @@ let
${optionalString withRuby '' --set GEM_HOME ${rubyEnv}/${rubyEnv.ruby.gemPath}'' }
''
+ optionalString (!stdenv.isDarwin) ''
- # copy and patch the original neovim.desktop file
- mkdir -p $out/share/applications
+ # copy icon and patch the original neovim.desktop file
+ mkdir -p $out/share/{applications,pixmaps}
+ ln -s ${neovim}/share/pixmaps/nvim.png $out/share/pixmaps/nvim.png
substitute ${neovim}/share/applications/nvim.desktop $out/share/applications/nvim.desktop \
--replace 'TryExec=nvim' "TryExec=$out/bin/nvim" \
--replace 'Name=Neovim' 'Name=WrappedNeovim'
diff --git a/pkgs/applications/editors/netbeans/default.nix b/pkgs/applications/editors/netbeans/default.nix
index ba01304f723..38b92151b29 100644
--- a/pkgs/applications/editors/netbeans/default.nix
+++ b/pkgs/applications/editors/netbeans/default.nix
@@ -3,12 +3,12 @@
}:
let
- version = "11.0";
+ version = "11.1";
desktopItem = makeDesktopItem {
name = "netbeans";
exec = "netbeans";
comment = "Integrated Development Environment";
- desktopName = "Netbeans IDE";
+ desktopName = "Apache NetBeans IDE";
genericName = "Integrated Development Environment";
categories = "Application;Development;";
icon = "netbeans";
@@ -18,8 +18,8 @@ stdenv.mkDerivation {
pname = "netbeans";
inherit version;
src = fetchurl {
- url = "mirror://apache/incubator/netbeans/incubating-netbeans/incubating-${version}/incubating-netbeans-${version}-bin.zip";
- sha512 = "15mv59njrnq3sjfzb0n7xcc79kpixygf37cxvbswnvm651cw6lb1i9w8wbjivh0z4zcf3f62vbmshxh5pkaxqpqsg0iyy6gddfbwzwx";
+ url = "mirror://apache/netbeans/netbeans/${version}/netbeans-${version}-bin.zip";
+ sha512 = "bb061b9258d524b7b53b3b5ee9aa95111f7a391a5e2c5c0bc949164166af9a03d0cebbde2b47a8853fb765307b4c93ce8389a9c87bef26c92c08cdf446314e4d";
};
buildCommand = ''
@@ -48,7 +48,7 @@ stdenv.mkDerivation {
convert -resize "$size"x"$size" netbeans_1024x1024x32.png $out/share/icons/hicolor/"$size"x"$size"/apps/netbeans.png
fi
done;
-
+
# Create desktop item, so we can pick it from the KDE/GNOME menu
mkdir -pv $out/share/applications
ln -s ${desktopItem}/share/applications/* $out/share/applications
@@ -58,7 +58,7 @@ stdenv.mkDerivation {
meta = {
description = "An integrated development environment for Java, C, C++ and PHP";
- homepage = "https://netbeans.org/";
+ homepage = "https://netbeans.apache.org/";
license = stdenv.lib.licenses.asl20;
maintainers = with stdenv.lib.maintainers; [ sander rszibele ];
platforms = stdenv.lib.platforms.unix;
diff --git a/pkgs/applications/editors/okteta/default.nix b/pkgs/applications/editors/okteta/default.nix
index 287758e0fd8..5c7ddfb34d4 100644
--- a/pkgs/applications/editors/okteta/default.nix
+++ b/pkgs/applications/editors/okteta/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
license = licenses.gpl2;
+ description = "A hex editor";
maintainers = with maintainers; [ peterhoeg bkchr ];
platforms = platforms.linux;
};
diff --git a/pkgs/applications/editors/quilter/default.nix b/pkgs/applications/editors/quilter/default.nix
index 49ebe579ed4..d9c3bd0825d 100644
--- a/pkgs/applications/editors/quilter/default.nix
+++ b/pkgs/applications/editors/quilter/default.nix
@@ -1,23 +1,23 @@
-{ stdenv, fetchFromGitHub, pkgconfig, meson, ninja, python3
+{ stdenv, fetchFromGitHub, pkgconfig, meson, ninja, python3, vala
, gtk3, desktop-file-utils, gtksourceview, webkitgtk, gtkspell3, pantheon
, libgee, discount, wrapGAppsHook }:
stdenv.mkDerivation rec {
pname = "quilter";
- version = "1.9.5";
+ version = "2.0.3";
src = fetchFromGitHub {
owner = "lainsce";
repo = pname;
rev = version;
- sha256 = "119ri6lkzqapi5k0v818qkhg1916jj9s6bh72yqvc2wmyjnn2dbw";
+ sha256 = "13l8z3bchha4ax14s48pcqdxh8gnj4mlvv06lk9dwk9fplc93821";
};
nativeBuildInputs = [
desktop-file-utils
meson
ninja
- pantheon.vala
+ vala
pkgconfig
python3
wrapGAppsHook
diff --git a/pkgs/applications/editors/retext/default.nix b/pkgs/applications/editors/retext/default.nix
index d1028ec6ce8..e9742389261 100644
--- a/pkgs/applications/editors/retext/default.nix
+++ b/pkgs/applications/editors/retext/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, python3, fetchFromGitHub, makeWrapper, buildEnv, aspellDicts
+{ stdenv, python3, fetchFromGitHub, wrapQtAppsHook, buildEnv, aspellDicts
# Use `lib.collect lib.isDerivation aspellDicts;` to make all dictionaries
# available.
, enchantAspellDicts ? with aspellDicts; [ en en-computers en-science ]
@@ -9,7 +9,7 @@ let
python = let
packageOverrides = self: super: {
markdown = super.markdown.overridePythonAttrs(old: {
- src = super.fetchPypi {
+ src = super.fetchPypi {
version = "3.0.1";
pname = "Markdown";
sha256 = "d02e0f9b04c500cde6637c11ad7c72671f359b87b9fe924b2383649d8841db7c";
@@ -17,11 +17,12 @@ let
});
chardet = super.chardet.overridePythonAttrs(old: {
- src = super.fetchPypi {
+ src = super.fetchPypi {
version = "2.3.0";
pname = "chardet";
sha256 = "e53e38b3a4afe6d1132de62b7400a4ac363452dc5dfcf8d88e8e0cce663c68aa";
};
+ patches = [];
});
};
in python3.override { inherit packageOverrides; };
@@ -41,12 +42,11 @@ in python.pkgs.buildPythonApplication {
doCheck = false;
- nativeBuildInputs = [ makeWrapper ];
+ nativeBuildInputs = [ wrapQtAppsHook ];
propagatedBuildInputs = [ pythonEnv ];
postInstall = ''
- mv $out/bin/retext $out/bin/.retext
- makeWrapper "$out/bin/.retext" "$out/bin/retext" \
+ wrapQtApp "$out/bin/retext" \
--set ASPELL_CONF "dict-dir ${buildEnv {
name = "aspell-all-dicts";
paths = map (path: "${path}/lib/aspell") enchantAspellDicts;
diff --git a/pkgs/applications/editors/rstudio/default.nix b/pkgs/applications/editors/rstudio/default.nix
index 74e5460f529..933644cc471 100644
--- a/pkgs/applications/editors/rstudio/default.nix
+++ b/pkgs/applications/editors/rstudio/default.nix
@@ -4,6 +4,7 @@
, llvmPackages
}:
+with stdenv.lib;
let
verMajor = "1";
verMinor = "2";
@@ -47,7 +48,13 @@ stdenv.mkDerivation rec {
sha256 = "19x000m3jwnkqgi6ic81lkzyjvvxcfacw2j0vcfcaknvvagzhyhb";
};
- hunspellDictionaries = with stdenv.lib; filter isDerivation (unique (attrValues hunspellDicts));
+ hunspellDictionaries = filter isDerivation (unique (attrValues hunspellDicts));
+ # These dicts contain identically-named dict files, so we only keep the
+ # -large versions in case of clashes
+ largeDicts = filter (d: hasInfix "-large-wordlist" d) hunspellDictionaries;
+ otherDicts = filter (d: !(hasAttr "dictFileName" d &&
+ elem d.dictFileName (map (d: d.dictFileName) largeDicts))) hunspellDictionaries;
+ dictionaries = largeDicts ++ otherDicts;
mathJaxSrc = fetchurl {
url = https://s3.amazonaws.com/rstudio-buildtools/mathjax-26.zip;
@@ -77,7 +84,7 @@ stdenv.mkDerivation rec {
mv gwt-${gwtVer} $GWT_LIB_DIR/gwt/${gwtVer}
mkdir dependencies/common/dictionaries
- for dict in ${builtins.concatStringsSep " " hunspellDictionaries}; do
+ for dict in ${builtins.concatStringsSep " " dictionaries}; do
for i in "$dict/share/hunspell/"*; do
ln -sv $i dependencies/common/dictionaries/
done
diff --git a/pkgs/applications/editors/sublime/3/packages.nix b/pkgs/applications/editors/sublime/3/packages.nix
index 82d92ba2fe1..d72966e0440 100644
--- a/pkgs/applications/editors/sublime/3/packages.nix
+++ b/pkgs/applications/editors/sublime/3/packages.nix
@@ -5,15 +5,15 @@ let
in
{
sublime3-dev = common {
- buildVersion = "3208";
+ buildVersion = "3210";
dev = true;
- x32sha256 = "09k04fjryc0dc6173i6nwhi5xaan89n4lp0n083crvkqwp0qlf2i";
- x64sha256 = "12pn3yfm452m75dlyl0lyf82956j8raz2dglv328m81hbafflrj8";
+ x32sha256 = "1ngr4c8h2mafy96mi8dd3g8mg5r9ha1cpcd8p3gz7jwpbypvkkbv";
+ x64sha256 = "0j65a4ylgga1qzc74wf3k5craghahma8hwqg3zs1rgzz601nl693";
} {};
sublime3 = common {
- buildVersion = "3207";
- x32sha256 = "14hfb8x8zb49zjq0pd8s73xk333gmf38h5b7g979czcmbhdxiyqy";
- x64sha256 = "1i1q9592sc8idvlpygksdkclh7h506hsz5l0i02g1814w0flzdmc";
+ buildVersion = "3211";
+ x32sha256 = "0w9hba1nl2hv1mri418n7v0m321b6wqphb1knll23ldv5fb0j1j8";
+ x64sha256 = "1vkldmimyjhbgplcd6r27gvk64rr7cparfd44hy6qdyzwsjqqg0b";
} {};
}
diff --git a/pkgs/applications/editors/texmacs/default.nix b/pkgs/applications/editors/texmacs/default.nix
index 2c391cae517..8ca3f8cb2a9 100644
--- a/pkgs/applications/editors/texmacs/default.nix
+++ b/pkgs/applications/editors/texmacs/default.nix
@@ -1,7 +1,13 @@
{ stdenv, callPackage,
fetchurl, guile_1_8, qt4, xmodmap, which, makeWrapper, freetype,
+ libjpeg,
+ sqlite,
tex ? null,
aspell ? null,
+ git ? null,
+ python3 ? null,
+ cmake,
+ pkgconfig,
ghostscriptX ? null,
extraFonts ? false,
chineseFonts ? false,
@@ -10,7 +16,7 @@
let
pname = "TeXmacs";
- version = "1.99.2";
+ version = "1.99.11";
common = callPackage ./common.nix {
inherit tex extraFonts chineseFonts japaneseFonts koreanFonts;
};
@@ -19,17 +25,38 @@ stdenv.mkDerivation {
name = "${pname}-${version}";
src = fetchurl {
- url = "http://www.texmacs.org/Download/ftp/tmftp/source/TeXmacs-${version}-src.tar.gz";
- sha256 = "0l48g9746igiaxw657shm8g3xxk565vzsviajlrxqyljbh6py0fs";
+ url = "https://www.texmacs.org/Download/ftp/tmftp/source/TeXmacs-${version}-src.tar.gz";
+ sha256 = "12bp0f34izzqimz49lfpgf4lyz3h45s9xbmk8v6zsawdjki76alg";
};
- buildInputs = [ guile_1_8 qt4 makeWrapper ghostscriptX freetype ];
+ cmakeFlags = [
+ # Texmacs' cmake build as of writing defaults to Qt5,
+ # but we haven't updated to that yet.
+ "-DTEXMACS_GUI=Qt4"
+ ];
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+ buildInputs = [
+ guile_1_8
+ qt4
+ makeWrapper
+ ghostscriptX
+ freetype
+ libjpeg
+ sqlite
+ git
+ python3
+ ];
NIX_LDFLAGS = [ "-lz" ];
postInstall = "wrapProgram $out/bin/texmacs --suffix PATH : " +
(if ghostscriptX == null then "" else "${ghostscriptX}/bin:") +
(if aspell == null then "" else "${aspell}/bin:") +
(if tex == null then "" else "${tex}/bin:") +
+ (if git == null then "" else "${git}/bin:") +
+ (if python3 == null then "" else "${python3}/bin:") +
"${xmodmap}/bin:${which}/bin";
inherit (common) postPatch;
diff --git a/pkgs/applications/editors/texmaker/default.nix b/pkgs/applications/editors/texmaker/default.nix
index 2a4459ddc3e..71043cb78fe 100644
--- a/pkgs/applications/editors/texmaker/default.nix
+++ b/pkgs/applications/editors/texmaker/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchurl, qtbase, qtscript, qmake, zlib, pkgconfig, poppler }:
+{ lib, mkDerivation, fetchurl, qtbase, qtscript, qmake, zlib, pkgconfig, poppler }:
-stdenv.mkDerivation rec {
+mkDerivation rec {
pname = "texmaker";
version = "5.0.3";
@@ -13,14 +13,15 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig poppler qmake ];
NIX_CFLAGS_COMPILE="-I${poppler.dev}/include/poppler";
- preConfigure = ''
- qmakeFlags="$qmakeFlags DESKTOPDIR=$out/share/applications ICONDIR=$out/share/pixmaps METAINFODIR=$out/share/metainfo"
- '';
-
+ qmakeFlags = [
+ "DESKTOPDIR=${placeholder "out"}/share/applications"
+ "ICONDIR=${placeholder "out"}/share/pixmaps"
+ "METAINFODIR=${placeholder "out"}/share/metainfo"
+ ];
enableParallelBuilding = true;
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "TeX and LaTeX editor";
longDescription=''
This editor is a full fledged IDE for TeX and
diff --git a/pkgs/applications/editors/texstudio/default.nix b/pkgs/applications/editors/texstudio/default.nix
index 04e2cb45e28..13b7f4db0c5 100644
--- a/pkgs/applications/editors/texstudio/default.nix
+++ b/pkgs/applications/editors/texstudio/default.nix
@@ -1,6 +1,7 @@
-{ stdenv, fetchFromGitHub, qt5, poppler, zlib, pkgconfig}:
+{ lib, mkDerivation, fetchFromGitHub, qmake, qtbase, qtscript, qtsvg,
+ wrapQtAppsHook, poppler, zlib, pkgconfig }:
-stdenv.mkDerivation rec {
+mkDerivation rec {
pname = "texstudio";
version = "2.12.16";
@@ -11,12 +12,12 @@ stdenv.mkDerivation rec {
sha256 = "0ck65fvz6mzfpqdb1ndgyvgxdnslrwhdr1swgck4gaghcrgbg3gq";
};
- nativeBuildInputs = [ qt5.qmake pkgconfig ];
- buildInputs = [ qt5.qtbase qt5.qtscript qt5.qtsvg poppler zlib ];
+ nativeBuildInputs = [ qmake wrapQtAppsHook pkgconfig ];
+ buildInputs = [ qtbase qtscript qtsvg poppler zlib ];
qmakeFlags = [ "NO_APPDATA=True" ];
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "TeX and LaTeX editor";
longDescription=''
Fork of TeXMaker, this editor is a full fledged IDE for
diff --git a/pkgs/applications/editors/thonny/default.nix b/pkgs/applications/editors/thonny/default.nix
index a6179452f4d..e1c939c93c9 100644
--- a/pkgs/applications/editors/thonny/default.nix
+++ b/pkgs/applications/editors/thonny/default.nix
@@ -4,13 +4,13 @@ with python3.pkgs;
buildPythonApplication rec {
pname = "thonny";
- version = "3.2.0b7";
+ version = "3.2.3";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
- sha256 = "0p0hi5rj873cszx9rpbjjq51vs6xys3rlq9v1rya710i3fnw0hqh";
+ sha256 = "0wgjwjh6296vs8awl4rylb5nshj9q9kzxv7j4vlmiabll06mx6gi";
};
propagatedBuildInputs = with python3.pkgs; [
@@ -22,6 +22,7 @@ buildPythonApplication rec {
mypy
pyperclip
asttokens
+ send2trash
];
preInstall = ''
diff --git a/pkgs/applications/editors/tiled/default.nix b/pkgs/applications/editors/tiled/default.nix
index b0b80a4ec00..fa9cc155f36 100644
--- a/pkgs/applications/editors/tiled/default.nix
+++ b/pkgs/applications/editors/tiled/default.nix
@@ -3,13 +3,13 @@
mkDerivation rec {
pname = "tiled";
- version = "1.2.4";
+ version = "1.2.5";
src = fetchFromGitHub {
owner = "bjorn";
repo = pname;
rev = "v${version}";
- sha256 = "18a0pkq8j20v1njrl0sswm0ch10c6c4fas7q9kk2d2fd610ga6gh";
+ sha256 = "0sz8klz0nz60dhvz7pdn44zwr9q578pq50sxsbynz7irhrv02b52";
};
nativeBuildInputs = [ pkgconfig qmake ];
diff --git a/pkgs/applications/editors/typora/default.nix b/pkgs/applications/editors/typora/default.nix
index 7273b7252ca..09baf383f97 100644
--- a/pkgs/applications/editors/typora/default.nix
+++ b/pkgs/applications/editors/typora/default.nix
@@ -1,4 +1,16 @@
-{ stdenv, fetchurl, makeWrapper, electron_5, dpkg, gtk3, glib, gsettings-desktop-schemas, wrapGAppsHook }:
+{ stdenv
+, lib
+, fetchurl
+, makeWrapper
+, electron_5
+, dpkg
+, gtk3
+, glib
+, gsettings-desktop-schemas
+, wrapGAppsHook
+, withPandoc ? false
+, pandoc
+}:
stdenv.mkDerivation rec {
pname = "typora";
@@ -42,10 +54,11 @@ stdenv.mkDerivation rec {
makeWrapper ${electron_5}/bin/electron $out/bin/typora \
--add-flags $out/share/typora \
"''${gappsWrapperArgs[@]}" \
- --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc ]}"
+ ${lib.optionalString withPandoc ''--prefix PATH : "${lib.makeBinPath [ pandoc ]}"''} \
+ --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc ]}"
'';
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "A minimal Markdown reading & writing app";
homepage = https://typora.io;
license = licenses.unfree;
diff --git a/pkgs/applications/editors/vim/common.nix b/pkgs/applications/editors/vim/common.nix
index 567da2a08f2..0a099ea630d 100644
--- a/pkgs/applications/editors/vim/common.nix
+++ b/pkgs/applications/editors/vim/common.nix
@@ -1,12 +1,12 @@
{ lib, fetchFromGitHub }:
rec {
- version = "8.1.1967";
+ version = "8.1.2237";
src = fetchFromGitHub {
owner = "vim";
repo = "vim";
rev = "v${version}";
- sha256 = "0cdfi67jwv8j982i1jxdfqv4aqglig8f0hzadgygk69i0wwkymwk";
+ sha256 = "1qwh3cw5zmjmnk07g0nc8nz8k5nlq9ilvvygnfdjy1fqg69q8p0h";
};
enableParallelBuilding = true;
diff --git a/pkgs/applications/editors/vim/configurable.nix b/pkgs/applications/editors/vim/configurable.nix
index d21d0ad5ee0..bb3d571e6f8 100644
--- a/pkgs/applications/editors/vim/configurable.nix
+++ b/pkgs/applications/editors/vim/configurable.nix
@@ -145,7 +145,12 @@ in stdenv.mkDerivation rec {
cp ${vimPlugins.vim-nix.src}/syntax/nix.vim runtime/syntax/nix.vim
'';
+ preInstall = ''
+ mkdir -p $out/share/applications $out/share/icons/{hicolor,locolor}/{16x16,32x32,48x48}/apps
+ '';
+
postInstall = ''
+ ln -s $out/bin/vim $out/bin/vi
'' + stdenv.lib.optionalString stdenv.isLinux ''
patchelf --set-rpath \
"$(patchelf --print-rpath $out/bin/vim):${stdenv.lib.makeLibraryPath buildInputs}" \
@@ -177,9 +182,5 @@ in stdenv.mkDerivation rec {
rewrap gvimdiff -gd
'';
- preInstall = ''
- mkdir -p $out/share/applications $out/share/icons/{hicolor,locolor}/{16x16,32x32,48x48}/apps
- '';
-
- dontStrip = 1;
+ dontStrip = true;
}
diff --git a/pkgs/applications/editors/vim/macvim.nix b/pkgs/applications/editors/vim/macvim.nix
index 6081bbc8b0c..ede12f50fec 100644
--- a/pkgs/applications/editors/vim/macvim.nix
+++ b/pkgs/applications/editors/vim/macvim.nix
@@ -27,13 +27,13 @@ in
stdenv.mkDerivation {
pname = "macvim";
- version = "8.1.1722";
+ version = "8.1.2234";
src = fetchFromGitHub {
owner = "macvim-dev";
repo = "macvim";
- rev = "snapshot-157";
- sha256 = "1gmgc4pwaqy78gj4p7iib94n7j52ir0aa03ks595h3vy1hkcwwky";
+ rev = "snapshot-161";
+ sha256 = "1hp3y85pj1icz053g627a1wp5pnwgxhk07pyd4arwcxs2103agw4";
};
enableParallelBuilding = true;
@@ -48,7 +48,11 @@ stdenv.mkDerivation {
# The sparkle patch modified the nibs, so we have to recompile them
postPatch = ''
for nib in MainMenu Preferences; do
- /usr/bin/ibtool --compile src/MacVim/English.lproj/$nib.nib/keyedobjects.nib src/MacVim/English.lproj/$nib.nib
+ # redirect stdin/stdout/stderr to /dev/null because ibtool marks them nonblocking
+ # and not redirecting screws with subsequent commands.
+ # redirecting stderr is unfortunate but I don't know of a reasonable way to remove O_NONBLOCK
+ # from the fds.
+ /usr/bin/ibtool --compile src/MacVim/English.lproj/$nib.nib/keyedobjects.nib src/MacVim/English.lproj/$nib.nib >/dev/null 2>/dev/null
-+#include
-
- Paintbox::Paintbox(QWidget * parent, Qt::WindowFlags flags) : QWidget(parent, flags)
- {
-diff --git a/src/meshlabplugins/render_gdp/shaderDialog.h b/src/meshlabplugins/render_gdp/shaderDialog.h
-index a62d3b5..7eb1594 100644
---- a/src/meshlabplugins/render_gdp/shaderDialog.h
-+++ b/src/meshlabplugins/render_gdp/shaderDialog.h
-@@ -32,6 +32,8 @@
- #include "shaderStructs.h"
- #include "ui_shaderDialog.h"
- #include
-+#include
-+#include
-
- class QGLWidget;
-
diff --git a/pkgs/applications/graphics/mypaint/default.nix b/pkgs/applications/graphics/mypaint/default.nix
index 1b51732b918..c08bbbea766 100644
--- a/pkgs/applications/graphics/mypaint/default.nix
+++ b/pkgs/applications/graphics/mypaint/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, gtk3, intltool, json_c, lcms2, libpng, librsvg, gobject-introspection, hicolor-icon-theme
+{ stdenv, fetchFromGitHub, gtk3, intltool, json_c, lcms2, libpng, librsvg, gobject-introspection
, gdk-pixbuf, pkgconfig, python2Packages, scons, swig, wrapGAppsHook }:
let
@@ -21,7 +21,7 @@ in stdenv.mkDerivation {
];
buildInputs = [
- gtk3 gdk-pixbuf json_c lcms2 libpng librsvg pycairo pygobject3 python hicolor-icon-theme
+ gtk3 gdk-pixbuf json_c lcms2 libpng librsvg pycairo pygobject3 python
];
propagatedBuildInputs = [ numpy ];
diff --git a/pkgs/applications/graphics/nomacs/default.nix b/pkgs/applications/graphics/nomacs/default.nix
index 62fae518b92..48a79e8844e 100644
--- a/pkgs/applications/graphics/nomacs/default.nix
+++ b/pkgs/applications/graphics/nomacs/default.nix
@@ -1,6 +1,7 @@
{ stdenv
, mkDerivation
, fetchFromGitHub
+, fetchpatch
, cmake
, pkgconfig
@@ -9,7 +10,7 @@
, qtsvg
, exiv2
-, opencv
+, opencv4
, libraw
, libtiff
, quazip
@@ -28,6 +29,12 @@ mkDerivation rec {
patches = [
./nomacs-iostream.patch
+ (fetchpatch {
+ name = "darwin-less-restrictive-opencv.patch";
+ url = "https://github.com/nomacs/nomacs/commit/d182fce4bcd9a25bd15e3de065ca67849a32458c.patch";
+ sha256 = "0j6sviwrjn69nqf59hjn30c4j838h8az7rnlwcx8ymlb21vd9x2h";
+ stripLen = 1;
+ })
];
enableParallelBuilding = true;
@@ -43,7 +50,7 @@ mkDerivation rec {
qttools
qtsvg
exiv2
- opencv
+ opencv4
libraw
libtiff
quazip];
diff --git a/pkgs/applications/graphics/openimageio/2.x.nix b/pkgs/applications/graphics/openimageio/2.x.nix
index 4e61fccaa37..69cc323b40f 100644
--- a/pkgs/applications/graphics/openimageio/2.x.nix
+++ b/pkgs/applications/graphics/openimageio/2.x.nix
@@ -14,13 +14,13 @@
stdenv.mkDerivation rec {
pname = "openimageio";
- version = "2.0.10";
+ version = "2.0.11";
src = fetchFromGitHub {
owner = "OpenImageIO";
repo = "oiio";
rev = "Release-${version}";
- sha256 = "0k60kgfahsqcgmydsf1kh1qzshn8mksaw772z48a40qnx28pfjys";
+ sha256 = "1kasp9as81wjvys9qrx10mgdf9bjbdgryhdgjqn05zdmv2rs95nc";
};
outputs = [ "bin" "out" "dev" "doc" ];
diff --git a/pkgs/applications/graphics/paraview/default.nix b/pkgs/applications/graphics/paraview/default.nix
index 13a00991265..fdda8062a43 100644
--- a/pkgs/applications/graphics/paraview/default.nix
+++ b/pkgs/applications/graphics/paraview/default.nix
@@ -2,11 +2,12 @@
stdenv, fetchFromGitHub, cmake, makeWrapper
,qtbase, qttools, python, libGLU_combined
,libXt, qtx11extras, qtxmlpatterns
+, mkDerivation
}:
-stdenv.mkDerivation rec {
+mkDerivation rec {
pname = "paraview";
- version = "5.6.0";
+ version = "5.6.3";
# fetching from GitHub instead of taking an "official" source
# tarball because of missing submodules there
@@ -14,7 +15,7 @@ stdenv.mkDerivation rec {
owner = "Kitware";
repo = "ParaView";
rev = "v${version}";
- sha256 = "1j13yfdgcv4yzfr449i4c8r4rs1c9zr6qd3igr4vv3ani8zixkzi";
+ sha256 = "0zcij59pg47c45gfddnpbin13w16smzhcbivzm1k4pg4366wxq1q";
fetchSubmodules = true;
};
diff --git a/pkgs/applications/graphics/pdfcpu/default.nix b/pkgs/applications/graphics/pdfcpu/default.nix
index 7b1077d18a9..3d6d04db553 100644
--- a/pkgs/applications/graphics/pdfcpu/default.nix
+++ b/pkgs/applications/graphics/pdfcpu/default.nix
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "pdfcpu";
- version = "0.2.4";
+ version = "0.2.5";
src = fetchFromGitHub {
owner = "pdfcpu";
repo = pname;
rev = "v${version}";
- sha256 = "0inlwrpv5zkcv48g5gq1xdrvd7w1zkhf8p57fpr2cpd7hd3am7n8";
+ sha256 = "0fgdq8byb9pp9wiq3dm0vxw32kbspczqnk41agxpzjf303zmv75y";
};
modSha256 = "1nagb3k2ghfw27g4vcmn7v8s5flg387jpf1l18gw6c44a1xjcivs";
diff --git a/pkgs/applications/graphics/photoflow/default.nix b/pkgs/applications/graphics/photoflow/default.nix
index db41ee0566f..78d16e69226 100644
--- a/pkgs/applications/graphics/photoflow/default.nix
+++ b/pkgs/applications/graphics/photoflow/default.nix
@@ -51,6 +51,6 @@ stdenv.mkDerivation {
license = licenses.gpl3Plus;
maintainers = [ maintainers.MtP ];
platforms = platforms.linux;
- broken = stdenv.isAarch64;
+ broken = true;
};
}
diff --git a/pkgs/applications/graphics/potrace/default.nix b/pkgs/applications/graphics/potrace/default.nix
index f50af2925a3..35ab27bcbf6 100644
--- a/pkgs/applications/graphics/potrace/default.nix
+++ b/pkgs/applications/graphics/potrace/default.nix
@@ -2,17 +2,20 @@
stdenv.mkDerivation rec {
pname = "potrace";
- version = "1.15";
+ version = "1.16";
src = fetchurl {
url = "http://potrace.sourceforge.net/download/${version}/potrace-${version}.tar.gz";
- sha256 = "17ajildjp14shsy339xarh1lw1p0k60la08ahl638a73mh23kcx9";
+ sha256 = "1k3sxgjqq0jnpk9xxys05q32sl5hbf1lbk1gmfxcrmpdgnhli0my";
};
configureFlags = [ "--with-libpotrace" ];
buildInputs = [ zlib ];
+ enableParallelBuilding = true;
+ doCheck = true;
+
meta = with stdenv.lib; {
homepage = http://potrace.sourceforge.net/;
description = "A tool for tracing a bitmap, which means, transforming a bitmap into a smooth, scalable image";
diff --git a/pkgs/applications/graphics/rapid-photo-downloader/default.nix b/pkgs/applications/graphics/rapid-photo-downloader/default.nix
index 28d05480dae..4279af4cb78 100644
--- a/pkgs/applications/graphics/rapid-photo-downloader/default.nix
+++ b/pkgs/applications/graphics/rapid-photo-downloader/default.nix
@@ -6,11 +6,11 @@
mkDerivationWith python3Packages.buildPythonApplication rec {
pname = "rapid-photo-downloader";
- version = "0.9.16";
+ version = "0.9.17";
src = fetchurl {
url = "https://launchpad.net/rapid/pyqt/${version}/+download/${pname}-${version}.tar.gz";
- sha256 = "0ij3li17jcqjx79ldv6zg2ckn8m2l9n4xvvq2x79y4q8yx9fqg85";
+ sha256 = "10vqbi9rcg8r0jxpx2kn8xmahwgdcal28wpix2fg6nkp5rfwxnr6";
};
# Disable version check and fix install tests
diff --git a/pkgs/applications/graphics/rawtherapee/default.nix b/pkgs/applications/graphics/rawtherapee/default.nix
index 74e8c0e6b43..bda16446524 100644
--- a/pkgs/applications/graphics/rawtherapee/default.nix
+++ b/pkgs/applications/graphics/rawtherapee/default.nix
@@ -1,24 +1,24 @@
{ stdenv, fetchFromGitHub, pkgconfig, cmake, pixman, libpthreadstubs, gtkmm3, libXau
, libXdmcp, lcms2, libiptcdata, libcanberra-gtk3, fftw, expat, pcre, libsigcxx, wrapGAppsHook
-, lensfun
+, lensfun, librsvg
}:
stdenv.mkDerivation rec {
- version = "5.5";
- name = "rawtherapee-" + version;
+ version = "5.7";
+ pname = "rawtherapee";
src = fetchFromGitHub {
owner = "Beep6581";
repo = "RawTherapee";
rev = version;
- sha256 = "13clnx7rwkfa7wxgsim1xdx2pd7gwmmdad1m8a3fvywr20ml8xzk";
+ sha256 = "0j3887a3683fqpvp66kaw6x81ai3gf5nvrbmb4cc8rb0lgj2xv2g";
};
nativeBuildInputs = [ cmake pkgconfig wrapGAppsHook ];
buildInputs = [
pixman libpthreadstubs gtkmm3 libXau libXdmcp
- lcms2 libiptcdata libcanberra-gtk3 fftw expat pcre libsigcxx lensfun
+ lcms2 libiptcdata libcanberra-gtk3 fftw expat pcre libsigcxx lensfun librsvg
];
cmakeFlags = [
diff --git a/pkgs/applications/graphics/renderdoc/default.nix b/pkgs/applications/graphics/renderdoc/default.nix
index 594429503a3..426985d312c 100644
--- a/pkgs/applications/graphics/renderdoc/default.nix
+++ b/pkgs/applications/graphics/renderdoc/default.nix
@@ -1,32 +1,34 @@
-{ stdenv, fetchFromGitHub, cmake, pkgconfig
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, mkDerivation
, qtbase, qtx11extras, qtsvg, makeWrapper
-, vulkan-loader, xorg
-, python3, bison, pcre, automake, autoconf
+, vulkan-loader, xorg, python3, python3Packages
+, bison, pcre, automake, autoconf, addOpenGLRunpath
}:
let
custom_swig = fetchFromGitHub {
owner = "baldurk";
repo = "swig";
- rev = "renderdoc-modified-6";
- sha256 = "00ykqlzx1k9iwqjlc54kfch7cnzsj53hxn7ql70dj3rxqzrnadc0";
+ rev = "renderdoc-modified-7";
+ sha256 = "15r2m5kcs0id64pa2fsw58qll3jyh71jzc04wy20pgsh2326zis6";
};
+ pythonPackages = python3Packages;
in
-stdenv.mkDerivation rec {
- version = "1.4";
+mkDerivation rec {
+ version = "1.5";
pname = "renderdoc";
src = fetchFromGitHub {
owner = "baldurk";
repo = "renderdoc";
rev = "v${version}";
- sha256 = "1iann73r4yzkwnm13h4zqipqrp5i5cnkv27yyap0axz6h3npw94r";
+ sha256 = "0a05f6qfq90wrf4fixchp9knx4nhqhwjxl02n03a7k56xzxxnlci";
};
buildInputs = [
qtbase qtsvg xorg.libpthreadstubs xorg.libXdmcp qtx11extras vulkan-loader python3
- ];
+ ]; # ++ (with pythonPackages; [pyside2 pyside2-tools shiboken2]);
+ # TODO: figure out how to make cmake recognise pyside2
- nativeBuildInputs = [ cmake makeWrapper pkgconfig bison pcre automake autoconf ];
+ nativeBuildInputs = [ cmake makeWrapper pkgconfig bison pcre automake autoconf addOpenGLRunpath ];
postUnpack = ''
cp -r ${custom_swig} swig
@@ -40,19 +42,23 @@ stdenv.mkDerivation rec {
"-DBUILD_VERSION_DIST_VER=${version}"
"-DBUILD_VERSION_DIST_CONTACT=https://github.com/NixOS/nixpkgs/tree/master/pkgs/applications/graphics/renderdoc"
"-DBUILD_VERSION_STABLE=ON"
- # TODO: add once pyside2 is in nixpkgs
- #"-DPYSIDE2_PACKAGE_DIR=${python36Packages.pyside2}"
];
- # Future work: define these in the above array via placeholders
+ # TODO: define these in the above array via placeholders, once those are widely supported
preConfigure = ''
cmakeFlags+=" -DVULKAN_LAYER_FOLDER=$out/share/vulkan/implicit_layer.d/"
cmakeFlags+=" -DRENDERDOC_SWIG_PACKAGE=$PWD/../swig"
'';
+ dontWrapQtApps = true;
preFixup = ''
- wrapProgram $out/bin/qrenderdoc --suffix LD_LIBRARY_PATH : $out/lib --suffix LD_LIBRARY_PATH : ${vulkan-loader}/lib
- wrapProgram $out/bin/renderdoccmd --suffix LD_LIBRARY_PATH : $out/lib --suffix LD_LIBRARY_PATH : ${vulkan-loader}/lib
+ wrapQtApp $out/bin/qrenderdoc --suffix LD_LIBRARY_PATH : "$out/lib:${vulkan-loader}/lib"
+ wrapProgram $out/bin/renderdoccmd --suffix LD_LIBRARY_PATH : "$out/lib:${vulkan-loader}/lib"
+ '';
+
+ # The only documentation for this so far is in pkgs/build-support/add-opengl-runpath/setup-hook.sh
+ postFixup = ''
+ addOpenGLRunpath $out/lib/librenderdoc.so
'';
enableParallelBuilding = true;
diff --git a/pkgs/applications/graphics/rx/default.nix b/pkgs/applications/graphics/rx/default.nix
new file mode 100644
index 00000000000..4e8519d17b6
--- /dev/null
+++ b/pkgs/applications/graphics/rx/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, rustPlatform, fetchFromGitHub, makeWrapper
+, cmake, pkgconfig
+, xorg ? null
+, vulkan-loader ? null }:
+
+assert stdenv.isLinux -> xorg != null;
+assert stdenv.isLinux -> vulkan-loader != null;
+
+let
+ graphicsBackend = if stdenv.isDarwin then "metal" else "vulkan";
+in
+ with stdenv.lib;
+ rustPlatform.buildRustPackage rec {
+ pname = "rx";
+ version = "0.2.0";
+
+ src = fetchFromGitHub {
+ owner = "cloudhead";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0f6cw8zqr45bprj8ibhp89bb2a077g4zinfrdn943csdmh47qzcl";
+ };
+
+ cargoSha256 = "05bqsw0nw24xysq86qa3hx9b5ncf50wfxsgpy388yrs2dfnphwlx";
+
+ nativeBuildInputs = [ cmake pkgconfig makeWrapper ];
+
+ buildInputs = optionals stdenv.isLinux
+ (with xorg; [
+ # glfw-sys dependencies:
+ libX11 libXrandr libXinerama libXcursor libXi libXext
+ ]);
+
+ cargoBuildFlags = [ "--features=${graphicsBackend}" ];
+
+ # TODO: better to factor that into the rust platform
+ checkPhase = ''
+ runHook preCheck
+ echo "Running cargo test"
+ cargo test --features=${graphicsBackend}
+ runHook postCheck
+ '';
+
+ postInstall = optional stdenv.isLinux ''
+ mkdir -p $out/share/applications
+ cp $src/rx.desktop $out/share/applications
+ wrapProgram $out/bin/rx --prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib
+ '';
+
+ meta = {
+ description = "Modern and extensible pixel editor implemented in Rust";
+ homepage = "https://cloudhead.io/rx/";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ minijackson ];
+ platforms = with platforms; (linux ++ darwin ++ windows);
+ inherit version;
+ };
+ }
diff --git a/pkgs/applications/graphics/sane/backends/default.nix b/pkgs/applications/graphics/sane/backends/default.nix
index 20d5629b83a..4245acf716d 100644
--- a/pkgs/applications/graphics/sane/backends/default.nix
+++ b/pkgs/applications/graphics/sane/backends/default.nix
@@ -5,7 +5,7 @@ callPackage ./generic.nix (args // rec {
src = fetchurl {
sha256 = "1j9nbqspaj0rlgalafb5z6r606k0i22kz0rcpd744p176yzlfdr9";
urls = [
- "https://alioth.debian.org/frs/download.php/latestfile/176/sane-backends-${version}.tar.gz"
+ "https://alioth-archive.debian.org/releases/sane/sane-backends/${version}/sane-backends-${version}.tar.gz"
];
};
})
diff --git a/pkgs/applications/graphics/sane/backends/generic.nix b/pkgs/applications/graphics/sane/backends/generic.nix
index 0f47c82f032..92cec3ca82c 100644
--- a/pkgs/applications/graphics/sane/backends/generic.nix
+++ b/pkgs/applications/graphics/sane/backends/generic.nix
@@ -57,6 +57,9 @@ stdenv.mkDerivation {
substituteInPlace $out/lib/libsane.la \
--replace "-ljpeg" "-L${libjpeg.out}/lib -ljpeg"
+
+ # net.conf conflicts with the file generated by the nixos module
+ rm -f $out/etc/sane.d/net.conf
'' + stdenv.lib.concatStrings (builtins.map installFirmware compatFirmware);
meta = with stdenv.lib; {
diff --git a/pkgs/applications/graphics/sane/backends/git.nix b/pkgs/applications/graphics/sane/backends/git.nix
index e746f83e5d4..2edd739068d 100644
--- a/pkgs/applications/graphics/sane/backends/git.nix
+++ b/pkgs/applications/graphics/sane/backends/git.nix
@@ -5,6 +5,6 @@ callPackage ./generic.nix (args // {
src = fetchgit {
sha256 = "0qf7d7268kdxnb723c03m6icxhbgx0vw8gqvck2q1w5b948dy9g8";
rev = "e895ee55bec8a3320a0e972b32c05d35b47fe226";
- url = "git://alioth.debian.org/git/sane/sane-backends.git";
+ url = "https://gitlab.com/sane-project/backends.git";
};
})
diff --git a/pkgs/applications/graphics/sane/frontends.nix b/pkgs/applications/graphics/sane/frontends.nix
index 66473c4a155..b00f8f6c58d 100644
--- a/pkgs/applications/graphics/sane/frontends.nix
+++ b/pkgs/applications/graphics/sane/frontends.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
version = "1.0.14";
src = fetchurl {
- url = "https://alioth.debian.org/frs/download.php/latestfile/175/${pname}-${version}.tar.gz";
+ url = "https://alioth-archive.debian.org/releases/sane/${pname}/${version}/${pname}-${version}.tar.gz";
sha256 = "1ad4zr7rcxpda8yzvfkq1rfjgx9nl6lan5a628wvpdbh3fn9v0z7";
};
diff --git a/pkgs/applications/graphics/seg3d/cstdio.patch b/pkgs/applications/graphics/seg3d/cstdio.patch
deleted file mode 100644
index 0d9eed07a36..00000000000
--- a/pkgs/applications/graphics/seg3d/cstdio.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-diff --git a/Core/Geometry/Transform.cc b/Core/Geometry/Transform.cc
-index 4f16fdc..0da4679 100644
---- a/Core/Geometry/Transform.cc
-+++ b/Core/Geometry/Transform.cc
-@@ -28,6 +28,7 @@
-
- #include
- #include
-+#include
-
- #include
- #include
-diff --git a/Core/Util/FullFileName.cc b/Core/Util/FullFileName.cc
-index 7a2cad7..7710e92 100644
---- a/Core/Util/FullFileName.cc
-+++ b/Core/Util/FullFileName.cc
-@@ -29,6 +29,7 @@
-
- #include
- #include
-+#include
-
- namespace SCIRun {
-
-diff --git a/Externals/particle-system-mm/src/sizingfield/LFS.cxx b/Externals/particle-system-mm/src/sizingfield/LFS.cxx
-index d1fa5aa..a5a4358 100644
---- a/Externals/particle-system-mm/src/sizingfield/LFS.cxx
-+++ b/Externals/particle-system-mm/src/sizingfield/LFS.cxx
-@@ -1,5 +1,6 @@
- #include
- #include
-+#include
- #include
-
- using namespace std;
-diff --git a/Externals/slivr/Point.cc b/Externals/slivr/Point.cc
-index d3be03e..ed4e503 100644
---- a/Externals/slivr/Point.cc
-+++ b/Externals/slivr/Point.cc
-@@ -42,6 +42,7 @@
- #include
- #include
- #include
-+#include
-
- namespace SLIVR {
-
-diff --git a/Externals/slivr/Transform.cc b/Externals/slivr/Transform.cc
-index c0a4430..520179f 100644
---- a/Externals/slivr/Transform.cc
-+++ b/Externals/slivr/Transform.cc
-@@ -47,6 +47,7 @@
- #include
- #include
- #include
-+#include
-
- using namespace SLIVR;
- using namespace std;
-diff --git a/Externals/slivr/Vector.cc b/Externals/slivr/Vector.cc
-index 8370d65..8b04bb9 100644
---- a/Externals/slivr/Vector.cc
-+++ b/Externals/slivr/Vector.cc
-@@ -43,6 +43,7 @@
- #include
- #include
- #include
-+#include
-
- using std::istream;
- using std::ostream;
-diff --git a/Externals/vispack/src/image/imagefile.txx b/Externals/vispack/src/image/imagefile.txx
-index ced2590..13a32b2 100644
---- a/Externals/vispack/src/image/imagefile.txx
-+++ b/Externals/vispack/src/image/imagefile.txx
-@@ -1,3 +1,5 @@
-+#include
-+
- template
- int write_raw(const char* name, const VISImage& im)
- {
diff --git a/pkgs/applications/graphics/seg3d/default.nix b/pkgs/applications/graphics/seg3d/default.nix
deleted file mode 100644
index 58cec2ec170..00000000000
--- a/pkgs/applications/graphics/seg3d/default.nix
+++ /dev/null
@@ -1,54 +0,0 @@
-{ fetchurl, stdenv, cmake, wxGTK, itk, libGLU_combined, libXft, libXext, libXi, zlib, libXmu,
-libuuid }:
-
-assert (stdenv ? glibc);
-
-stdenv.mkDerivation {
- name = "seg3d-1.12_20090930";
- src = fetchurl {
- url = https://www.sci.utah.edu/releases/seg3d_v1.12/Seg3D_1.12_20090930_source.tgz;
- sha256 = "1wr6rc6v5qjjkmws8yrc03z35h3iydxk1z28p06v1wdnca0y71z8";
- };
-
- patches = [ ./cstdio.patch ];
-
- cmakeFlags = [
- "-DM_LIBRARY=${stdenv.glibc.out}/lib/libm.so"
- "-DDL_LIBRARY=${stdenv.glibc.out}/lib/libdl.so"
- "-DBUILD_UTILS=1"
- "-DBUILD_SEG3D=1"
- "-DBUILD_DATAFLOW=0"
- "-DBUILD_SHARED_LIBS=0"
- "-DWITH_X11=1"
- "-DBUILD_BIOMESH3D=1"
- "-DWITH_TETGEN=1"
- "-DBUILD_TYPE=Release"
- "-DWITH_WXWIDGETS=ON"
- "-DITK_DIR=${itk}/lib/InsightToolkit"
- "-DGDCM_LIBRARY=${itk}/lib/libitkgdcm.a"
- ];
-
-
- makeFlags = "VERBOSE=1";
-
- preBuild = ''
- export LD_LIBRARY_PATH=`pwd`/lib
- export NIX_LDFLAGS="$NIX_LDFLAGS -lGLU -lSM -lICE -lX11 -lXext -luuid";
- '';
-
- preUnpack = ''
- set -x
- sourceRoot=`pwd`/src
- '';
-
- postInstall = ''
- cp Seg3D $out/bin
- exit 1
- '';
-
- buildInputs = [ cmake wxGTK itk libGLU_combined libXft libXext libXi zlib libXmu libuuid ];
-
- meta = {
- broken = true;
- };
-}
diff --git a/pkgs/applications/graphics/tev/default.nix b/pkgs/applications/graphics/tev/default.nix
new file mode 100644
index 00000000000..47da0b749df
--- /dev/null
+++ b/pkgs/applications/graphics/tev/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchFromGitHub
+, cmake, wrapGAppsHook
+, libX11, xorg, libzip, glfw, gnome3
+}:
+
+stdenv.mkDerivation rec {
+ pname = "tev";
+ version = "1.13";
+
+ src = fetchFromGitHub {
+ owner = "Tom94";
+ repo = pname;
+ rev = "v${version}";
+ fetchSubmodules = true;
+ sha256 = "0c8md6yv1q449aszs05xfby6a2aiw8pac7x0zs169i5mpqrrbfa9";
+ };
+
+ nativeBuildInputs = [ cmake wrapGAppsHook ];
+ buildInputs = [ libX11 libzip glfw ]
+ ++ (with xorg; [ libXrandr libXinerama libXcursor libXi libXxf86vm ]);
+
+ dontWrapGApps = true; # We also need zenity (see below)
+
+ postPatch = ''
+ substituteInPlace CMakeLists.txt \
+ --replace "/usr/" "''${out}/"
+ '';
+
+ postInstall = ''
+ wrapProgram $out/bin/tev \
+ "''${gappsWrapperArgs[@]}" \
+ --prefix PATH ":" "${gnome3.zenity}/bin"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A high dynamic range (HDR) image comparison tool";
+ longDescription = ''
+ A high dynamic range (HDR) image comparison tool for graphics people. tev
+ allows viewing images through various tonemapping operators and inspecting
+ the values of individual pixels. Often, it is important to find exact
+ differences between pairs of images. For this purpose, tev allows rapidly
+ switching between opened images and visualizing various error metrics (L1,
+ L2, and relative versions thereof). To avoid clutter, opened images and
+ their layers can be filtered by keywords.
+ While the predominantly supported file format is OpenEXR certain other
+ types of images can also be loaded.
+ '';
+ inherit (src.meta) homepage;
+ license = licenses.bsd3;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ primeos ];
+ };
+}
diff --git a/pkgs/applications/graphics/viewnior/default.nix b/pkgs/applications/graphics/viewnior/default.nix
index 4f5fb12faa6..a80e89e72bc 100644
--- a/pkgs/applications/graphics/viewnior/default.nix
+++ b/pkgs/applications/graphics/viewnior/default.nix
@@ -18,10 +18,6 @@ stdenv.mkDerivation rec {
shared-mime-info glib gdk-pixbuf perl
];
- preFixup = ''
- rm $out/share/icons/*/icon-theme.cache
- '';
-
meta = {
description = "Fast and simple image viewer";
longDescription =
diff --git a/pkgs/applications/graphics/vimiv/default.nix b/pkgs/applications/graphics/vimiv/default.nix
index 5fc7e309f4d..fab85052df3 100644
--- a/pkgs/applications/graphics/vimiv/default.nix
+++ b/pkgs/applications/graphics/vimiv/default.nix
@@ -1,5 +1,5 @@
{ lib, python3Packages, fetchFromGitHub, imagemagick, librsvg, gtk3, jhead
-, hicolor-icon-theme, gnome3
+, gnome3
# Test requirements
, dbus, xvfb_run, xdotool
@@ -38,7 +38,7 @@ python3Packages.buildPythonApplication rec {
'';
checkInputs = [ python3Packages.nose dbus.daemon xvfb_run xdotool ];
- buildInputs = [ hicolor-icon-theme gnome3.adwaita-icon-theme librsvg ];
+ buildInputs = [ gnome3.adwaita-icon-theme librsvg ];
propagatedBuildInputs = with python3Packages; [ pillow pygobject3 gtk3 ];
makeWrapperArgs = [
diff --git a/pkgs/applications/graphics/write_stylus/default.nix b/pkgs/applications/graphics/write_stylus/default.nix
index 232eeeb0115..0f1020b0b07 100644
--- a/pkgs/applications/graphics/write_stylus/default.nix
+++ b/pkgs/applications/graphics/write_stylus/default.nix
@@ -1,4 +1,12 @@
{ 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
+ desktopIcon = fetchurl {
+ url = "https://www.iconfinder.com/icons/50835/download/png/256";
+ sha256 = "0abdya42yf9alxbsmc2nf8jwld50zfria6z3d4ncvp1zw2a9jhb8";
+ };
+in
stdenv.mkDerivation rec {
pname = "write_stylus";
version = "209";
@@ -7,7 +15,7 @@ stdenv.mkDerivation rec {
name = "Write";
exec = "Write";
comment = "A word processor for handwriting";
- icon = "write_stylus";
+ icon = desktopIcon;
desktopName = "Write";
genericName = "Write";
categories = "Office;Graphics";
@@ -18,13 +26,6 @@ stdenv.mkDerivation rec {
sha256 = "1p6glp4vdpwl8hmhypayc4cvs3j9jfmjfhhrgqm2xkgl5bfbv2qd";
};
- # taken from: https://www.iconfinder.com/icons/50835/edit_pencil_write_icon
- # license: Free for commercial use
- icon = fetchurl {
- url = "https://oyra.eu/write/icon.tar.gz";
- sha256 = "1zd98g63apwi17qc1hm1g14maain5d18g4afadxm30qjz2s0mvs8";
- };
-
sourceRoot = ".";
dontBuild = true;
@@ -35,9 +36,6 @@ stdenv.mkDerivation rec {
# symlink the binary to bin/
ln -s $out/Write/Write $out/bin/Write
- # untar icons
- tar -xzf ${icon} *.tar.gz -C $out/
-
mkdir -p $out/share/applications
ln -s ${desktopItem}/share/applications/* $out/share/applications/
'';
diff --git a/pkgs/applications/graphics/xournalpp/default.nix b/pkgs/applications/graphics/xournalpp/default.nix
index 41539f32b07..3597b97fae6 100644
--- a/pkgs/applications/graphics/xournalpp/default.nix
+++ b/pkgs/applications/graphics/xournalpp/default.nix
@@ -10,7 +10,6 @@
, glib
, gsettings-desktop-schemas
, gtk3
-, hicolor-icon-theme
, libsndfile
, libxml2
, libzip
@@ -24,13 +23,13 @@
stdenv.mkDerivation rec {
pname = "xournalpp";
- version = "1.0.12";
+ version = "1.0.15";
src = fetchFromGitHub {
owner = "xournalpp";
- repo = "xournalpp";
+ repo = pname;
rev = version;
- sha256 = "0yg70hsx58s3wb5kzccivrqa7kvmdapygxmif1j64hddah2rqcn9";
+ sha256 = "1q716hn2ajkxfba0dxp7vcnqfa31hx36ax09yz4d13sdw43rfjf4";
};
nativeBuildInputs = [ cmake gettext pkgconfig wrapGAppsHook ];
@@ -38,7 +37,6 @@ stdenv.mkDerivation rec {
[ glib
gsettings-desktop-schemas
gtk3
- hicolor-icon-theme
libsndfile
libxml2
libzip
diff --git a/pkgs/applications/graphics/yacreader/default.nix b/pkgs/applications/graphics/yacreader/default.nix
index e545dd5a723..9162e0bdef1 100644
--- a/pkgs/applications/graphics/yacreader/default.nix
+++ b/pkgs/applications/graphics/yacreader/default.nix
@@ -1,14 +1,17 @@
-{ stdenv, fetchurl, qmake, poppler, pkgconfig, libunarr, libGLU
-, qtdeclarative, qtgraphicaleffects, qtmultimedia, qtquickcontrols, qtscript
+{ mkDerivation, lib, fetchFromGitHub, qmake, poppler, pkgconfig, libunarr
+, libGLU, qtdeclarative, qtgraphicaleffects, qtmultimedia, qtquickcontrols
+, qtscript
}:
-stdenv.mkDerivation rec {
+mkDerivation rec {
pname = "yacreader";
- version = "9.5.0";
+ version = "9.6.2";
- src = fetchurl {
- url = "https://github.com/YACReader/yacreader/releases/download/${version}/${pname}-${version}-src.tar.xz";
- sha256 = "0cv5y76kjvsqsv4fp99j8np5pm4m76868i1nn40q6hy573dmxwm6";
+ src = fetchFromGitHub {
+ owner = "YACReader";
+ repo = pname;
+ rev = version;
+ sha256 = "1s7kb72skhr364kq8wr2i012jjmaz2vzcz526h0b2bch8921wrnf";
};
nativeBuildInputs = [ qmake pkgconfig ];
@@ -19,7 +22,7 @@ stdenv.mkDerivation rec {
meta = {
description = "A comic reader for cross-platform reading and managing your digital comic collection";
- homepage = http://www.yacreader.com;
- license = stdenv.lib.licenses.gpl3;
+ homepage = "http://www.yacreader.com";
+ license = lib.licenses.gpl3;
};
}
diff --git a/pkgs/applications/graphics/yed/default.nix b/pkgs/applications/graphics/yed/default.nix
index 0038d41475f..96515a13724 100644
--- a/pkgs/applications/graphics/yed/default.nix
+++ b/pkgs/applications/graphics/yed/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "yEd";
- version = "3.19";
+ version = "3.19.1.1";
src = fetchzip {
url = "https://www.yworks.com/resources/yed/demo/${pname}-${version}.zip";
- sha256 = "0l70pc7wl2ghfkjab9w2mbx7crwha7xwkrpmspsi5c6q56dw7s33";
+ sha256 = "0px88rc1slf7n1n8lpk56hf29ppbnnd4lrqfyggihcr0pxmw157c";
};
nativeBuildInputs = [ makeWrapper unzip ];
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
license = licenses.unfree;
- homepage = http://www.yworks.com/en/products/yfiles/yed/;
+ homepage = "https://www.yworks.com/products/yed";
description = "A powerful desktop application that can be used to quickly and effectively generate high-quality diagrams";
platforms = jre.meta.platforms;
maintainers = with maintainers; [ abbradar ];
diff --git a/pkgs/applications/kde/default.nix b/pkgs/applications/kde/default.nix
index 9b146aa5036..70a716a760c 100644
--- a/pkgs/applications/kde/default.nix
+++ b/pkgs/applications/kde/default.nix
@@ -172,6 +172,7 @@ let
pim-data-exporter = callPackage ./pim-data-exporter.nix {};
pim-sieve-editor = callPackage ./pim-sieve-editor.nix {};
print-manager = callPackage ./print-manager.nix {};
+ rocs = callPackage ./rocs.nix {};
spectacle = callPackage ./spectacle.nix {};
yakuake = callPackage ./yakuake.nix {};
# Okteta was removed from kde applications and will now be released independently
diff --git a/pkgs/applications/kde/dolphin.nix b/pkgs/applications/kde/dolphin.nix
index 241bb71983a..76d4e989e8c 100644
--- a/pkgs/applications/kde/dolphin.nix
+++ b/pkgs/applications/kde/dolphin.nix
@@ -15,6 +15,7 @@ mkDerivation {
maintainers = [ lib.maintainers.ttuegel ];
};
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ propagatedUserEnvPkgs = [ baloo ];
propagatedBuildInputs = [
baloo baloo-widgets kactivities kbookmarks kcmutils kcompletion kconfig
kcoreaddons kdelibs4support kdbusaddons kfilemetadata ki18n kiconthemes
diff --git a/pkgs/applications/kde/fetch.sh b/pkgs/applications/kde/fetch.sh
index ee19f5cebfe..083debb1c99 100644
--- a/pkgs/applications/kde/fetch.sh
+++ b/pkgs/applications/kde/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( https://download.kde.org/stable/applications/19.08.1/ )
+WGET_ARGS=( https://download.kde.org/stable/applications/19.08.2/ )
diff --git a/pkgs/applications/kde/kate.nix b/pkgs/applications/kde/kate.nix
index 95ff6cf198b..f01a57a55d4 100644
--- a/pkgs/applications/kde/kate.nix
+++ b/pkgs/applications/kde/kate.nix
@@ -15,8 +15,8 @@ mkDerivation {
};
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
- buildInputs = [ libgit2 ];
- propagatedBuildInputs = [
+ buildInputs = [
+ libgit2
kactivities ki18n kio ktexteditor kwindowsystem plasma-framework
qtscript kconfig kcrash kguiaddons kiconthemes kinit kjobwidgets kparts
kxmlgui kdbusaddons kwallet kitemmodels knotifications threadweaver
diff --git a/pkgs/applications/kde/kcachegrind.nix b/pkgs/applications/kde/kcachegrind.nix
index 91faaef623a..16fc6c51777 100644
--- a/pkgs/applications/kde/kcachegrind.nix
+++ b/pkgs/applications/kde/kcachegrind.nix
@@ -1,7 +1,8 @@
{
mkDerivation, lib,
extra-cmake-modules, kdoctools,
- karchive, ki18n, kio, perl, python, php, qttools,
+ karchive, ki18n, kio, perl, python, php, qttools
+ , kdbusaddons
}:
mkDerivation {
@@ -11,5 +12,5 @@ mkDerivation {
maintainers = with lib.maintainers; [ orivej ];
};
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
- buildInputs = [ karchive ki18n kio perl python php qttools ];
+ buildInputs = [ karchive ki18n kio perl python php qttools kdbusaddons ];
}
diff --git a/pkgs/applications/kde/kdenlive.nix b/pkgs/applications/kde/kdenlive.nix
index fa75dd1eb97..b7c691e9594 100644
--- a/pkgs/applications/kde/kdenlive.nix
+++ b/pkgs/applications/kde/kdenlive.nix
@@ -70,10 +70,13 @@ mkDerivation {
kpurpose
kdeclarative
];
+ patches = [ ./mlt-path.patch ];
+ inherit mlt;
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
'';
meta = {
license = with lib.licenses; [ gpl2Plus ];
diff --git a/pkgs/applications/kde/kdepim-addons.nix b/pkgs/applications/kde/kdepim-addons.nix
index 75c1bf5be8b..0fe33ea017d 100644
--- a/pkgs/applications/kde/kdepim-addons.nix
+++ b/pkgs/applications/kde/kdepim-addons.nix
@@ -5,7 +5,7 @@
incidenceeditor, kcalcore, kcalutils, kconfig, kdbusaddons, kdeclarative,
kdepim-apps-libs, kholidays, ki18n, kmime, ktexteditor, ktnef, libgravatar,
libksieve, mailcommon, mailimporter, messagelib, poppler, prison, kpkpass,
- kitinerary
+ kitinerary, kontactinterface
}:
mkDerivation {
@@ -20,6 +20,6 @@ mkDerivation {
incidenceeditor kcalcore kcalutils kconfig kdbusaddons kdeclarative
kdepim-apps-libs kholidays ki18n kmime ktexteditor ktnef libgravatar
libksieve mailcommon mailimporter messagelib poppler prison kpkpass
- kitinerary
+ kitinerary kontactinterface
];
}
diff --git a/pkgs/applications/kde/kmail.nix b/pkgs/applications/kde/kmail.nix
index a58b3b8c45d..ab24f15a14b 100644
--- a/pkgs/applications/kde/kmail.nix
+++ b/pkgs/applications/kde/kmail.nix
@@ -7,7 +7,7 @@
kmail-account-wizard, kmailtransport, knotifications, knotifyconfig,
kontactinterface, kparts, kpty, kservice, ktextwidgets, ktnef, kwallet,
kwidgetsaddons, kwindowsystem, kxmlgui, libgravatar, libksieve, mailcommon,
- messagelib, pim-sieve-editor, qtscript, qtwebengine,
+ messagelib, pim-sieve-editor, qtscript, qtwebengine, akonadi
}:
mkDerivation {
@@ -25,6 +25,6 @@ mkDerivation {
ktextwidgets ktnef kwidgetsaddons kwindowsystem kxmlgui libgravatar
libksieve mailcommon messagelib pim-sieve-editor qtscript qtwebengine
];
- propagatedUserEnvPkgs = [ kdepim-runtime kwallet ];
+ propagatedUserEnvPkgs = [ kdepim-runtime kwallet akonadi ];
patches = [ ./kmail.patch ];
}
diff --git a/pkgs/applications/kde/konsole.nix b/pkgs/applications/kde/konsole.nix
index 004fc1c37ae..1be5b0b4a89 100644
--- a/pkgs/applications/kde/konsole.nix
+++ b/pkgs/applications/kde/konsole.nix
@@ -1,5 +1,5 @@
{
- mkDerivation, lib, makeWrapper,
+ mkDerivation, lib,
extra-cmake-modules, kdoctools,
kbookmarks, kcompletion, kconfig, kconfigwidgets, kcoreaddons, kguiaddons,
ki18n, kiconthemes, kinit, kdelibs4support, kio, knotifications,
@@ -18,12 +18,7 @@ mkDerivation {
kbookmarks kcompletion kconfig kconfigwidgets kcoreaddons kdelibs4support
kguiaddons ki18n kiconthemes kinit kio knotifications knotifyconfig kparts kpty
kservice ktextwidgets kwidgetsaddons kwindowsystem kxmlgui qtscript knewstuff
- makeWrapper
];
- postInstall = ''
- wrapProgram $out/bin/konsole --prefix XDG_DATA_DIRS ":" $out/share
- '';
-
propagatedUserEnvPkgs = [ (lib.getBin kinit) ];
}
diff --git a/pkgs/applications/kde/mlt-path.patch b/pkgs/applications/kde/mlt-path.patch
new file mode 100644
index 00000000000..9bfb66c1a83
--- /dev/null
+++ b/pkgs/applications/kde/mlt-path.patch
@@ -0,0 +1,22 @@
+diff -ruN old/src/kdenlivesettings.kcfg new/src/kdenlivesettings.kcfg
+--- old/src/kdenlivesettings.kcfg 2019-09-10 23:20:27.555392353 -0400
++++ new/src/kdenlivesettings.kcfg 2019-09-10 23:25:47.533964155 -0400
+@@ -378,14 +378,14 @@
+
+
+
+-
++
+ Mlt framework install path.
+-
++ @mlt@/share/mlt/profiles
+
+
+-
++
+ Mlt melt renderer install path.
+-
++ @mlt@/bin/melt
+
+
+
diff --git a/pkgs/applications/kde/pim-data-exporter.nix b/pkgs/applications/kde/pim-data-exporter.nix
index d17ffb3c044..9f2117b41fb 100644
--- a/pkgs/applications/kde/pim-data-exporter.nix
+++ b/pkgs/applications/kde/pim-data-exporter.nix
@@ -1,10 +1,10 @@
{
mkDerivation, lib, kdepimTeam,
extra-cmake-modules, kdoctools,
- akonadi, kcmutils, kcrash, kdbusaddons, kidentitymanagement, kldap,
- kmailtransport, knewstuff, knotifications, knotifyconfig, kparts, kross, ktexteditor,
- kwallet, libkdepim, libkleo, pimcommon, qttools,
- karchive, mailcommon, messagelib
+ akonadi, akonadi-notes, kcalcore, kcmutils, kcrash, kdbusaddons,
+ kidentitymanagement, kldap, kmailtransport, knewstuff, knotifications,
+ knotifyconfig, kparts, kross, ktexteditor, kwallet, libkdepim, libkleo,
+ pimcommon, qttools, karchive, mailcommon, messagelib
}:
mkDerivation {
@@ -15,8 +15,9 @@ mkDerivation {
};
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
buildInputs = [
- akonadi kcmutils kcrash kdbusaddons kidentitymanagement kldap kmailtransport
- knewstuff knotifications knotifyconfig kparts kross ktexteditor kwallet libkdepim
- libkleo pimcommon qttools karchive mailcommon messagelib
+ akonadi akonadi-notes kcalcore kcmutils kcrash kdbusaddons
+ kidentitymanagement kldap kmailtransport knewstuff knotifications
+ knotifyconfig kparts kross ktexteditor kwallet libkdepim libkleo pimcommon
+ qttools karchive mailcommon messagelib
];
}
diff --git a/pkgs/applications/kde/print-manager.nix b/pkgs/applications/kde/print-manager.nix
index 8ace4562cbd..f869f984e00 100644
--- a/pkgs/applications/kde/print-manager.nix
+++ b/pkgs/applications/kde/print-manager.nix
@@ -20,4 +20,10 @@ mkDerivation {
kwidgetsaddons kitemviews kio kwindowsystem plasma-framework qtdeclarative
];
outputs = [ "out" "dev" ];
+ # Fix build with cups deprecations etc.
+ # See: https://github.com/NixOS/nixpkgs/issues/73334
+ NIX_CFLAGS_COMPILE = [
+ "-Wno-error=deprecated-declarations"
+ "-Wno-error=format-security"
+ ];
}
diff --git a/pkgs/applications/kde/rocs.nix b/pkgs/applications/kde/rocs.nix
new file mode 100644
index 00000000000..feae7ca81de
--- /dev/null
+++ b/pkgs/applications/kde/rocs.nix
@@ -0,0 +1,25 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules, boost,
+ qtbase, qtscript, qtquickcontrols, qtwebkit, qtxmlpatterns, grantlee,
+ kdoctools, karchive, kxmlgui, kcrash, kdeclarative, ktexteditor, kguiaddons
+}:
+
+mkDerivation {
+ name = "rocs";
+
+ meta = with lib; {
+ homepage = "https://edu.kde.org/rocs/";
+ description = "A graph theory IDE.";
+ license = with licenses; [ gpl2 lgpl21 fdl12 ];
+ platforms = lib.platforms.linux;
+ maintainers = with maintainers; [ knairda ];
+ };
+
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ boost
+ qtbase qtscript qtquickcontrols qtwebkit qtxmlpatterns grantlee
+ kxmlgui kcrash kdeclarative karchive ktexteditor kguiaddons
+ ];
+}
diff --git a/pkgs/applications/kde/spectacle.nix b/pkgs/applications/kde/spectacle.nix
index 58eb288f6cc..2d46b3cdaab 100644
--- a/pkgs/applications/kde/spectacle.nix
+++ b/pkgs/applications/kde/spectacle.nix
@@ -4,7 +4,7 @@
ki18n, xcb-util-cursor,
kconfig, kcoreaddons, kdbusaddons, kdeclarative, kio, kipi-plugins,
knotifications, kscreen, kwidgetsaddons, kwindowsystem, kxmlgui, libkipi,
- qtx11extras, knewstuff, qttools
+ qtx11extras, knewstuff, kwayland, qttools
}:
mkDerivation {
@@ -14,7 +14,7 @@ mkDerivation {
buildInputs = [
kconfig kcoreaddons kdbusaddons kdeclarative ki18n kio knotifications
kscreen kwidgetsaddons kwindowsystem kxmlgui libkipi qtx11extras xcb-util-cursor
- knewstuff
+ knewstuff kwayland
];
postPatch = ''
substituteInPlace desktop/org.kde.spectacle.desktop \
diff --git a/pkgs/applications/kde/srcs.nix b/pkgs/applications/kde/srcs.nix
index 9e5346be9cd..400dfcd7cec 100644
--- a/pkgs/applications/kde/srcs.nix
+++ b/pkgs/applications/kde/srcs.nix
@@ -3,1739 +3,1739 @@
{
akonadi = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/akonadi-19.08.1.tar.xz";
- sha256 = "32233b59c696a5053f2ee4b7368804635a04e2a5f6d3605848eadafa0306c44d";
- name = "akonadi-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/akonadi-19.08.2.tar.xz";
+ sha256 = "f67f0fac07d480739b2d6715862ee47a93fd38f057ac7ef888ed8ddfdc99934f";
+ name = "akonadi-19.08.2.tar.xz";
};
};
akonadi-calendar = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/akonadi-calendar-19.08.1.tar.xz";
- sha256 = "5e8c66d4c86e6458469dbb393458ee8b5e6afc1b4712ce8395709d4226864d6c";
- name = "akonadi-calendar-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/akonadi-calendar-19.08.2.tar.xz";
+ sha256 = "5beba24af485c8dae96944e4b5bd570460eb2868ba069580c2e5d784be38a3c8";
+ name = "akonadi-calendar-19.08.2.tar.xz";
};
};
akonadi-calendar-tools = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/akonadi-calendar-tools-19.08.1.tar.xz";
- sha256 = "033fae40bcbdcfa52981026f783b7cc8fecde384d6683747cd3f307bd43b2570";
- name = "akonadi-calendar-tools-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/akonadi-calendar-tools-19.08.2.tar.xz";
+ sha256 = "a352c2bf8659ad7939f31009b8e35e8b1e629162f681a70999e5e88f9aaf6cbb";
+ name = "akonadi-calendar-tools-19.08.2.tar.xz";
};
};
akonadiconsole = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/akonadiconsole-19.08.1.tar.xz";
- sha256 = "9a0f88903757eaf0d3271d4438b3a170640b7cb01a7b2f0fbf10a75fa0093184";
- name = "akonadiconsole-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/akonadiconsole-19.08.2.tar.xz";
+ sha256 = "273b8f3d56ea65bd71a51103867b0e718d883478432bb971a262df1ea4c6df6c";
+ name = "akonadiconsole-19.08.2.tar.xz";
};
};
akonadi-contacts = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/akonadi-contacts-19.08.1.tar.xz";
- sha256 = "f182883b4cc16034a798feb966df268e84d9c5b8d3c6e14d5698f7ead85a21d7";
- name = "akonadi-contacts-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/akonadi-contacts-19.08.2.tar.xz";
+ sha256 = "eafeb550faea91a56109821864eedfbd619dc7850887746d31c1724ea7561920";
+ name = "akonadi-contacts-19.08.2.tar.xz";
};
};
akonadi-import-wizard = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/akonadi-import-wizard-19.08.1.tar.xz";
- sha256 = "d66088ded8917f6034de8981ce71d5d0e1808f6d58f7fdb7e0a806ff0834e27b";
- name = "akonadi-import-wizard-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/akonadi-import-wizard-19.08.2.tar.xz";
+ sha256 = "038713e7d30686eb1b8e49c595ec853ffa52d335e435a5b0bdf2f2a2448cae45";
+ name = "akonadi-import-wizard-19.08.2.tar.xz";
};
};
akonadi-mime = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/akonadi-mime-19.08.1.tar.xz";
- sha256 = "0a4f4652a665229b290431adb59940890effba0804fe33a0e79a24322f90b35c";
- name = "akonadi-mime-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/akonadi-mime-19.08.2.tar.xz";
+ sha256 = "16f8034d7990828c50a85474fe16641dfa46e22d00f49d8045d3483c61815264";
+ name = "akonadi-mime-19.08.2.tar.xz";
};
};
akonadi-notes = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/akonadi-notes-19.08.1.tar.xz";
- sha256 = "44896f17fc2f625f9fc8c77690acd787291c5e08e8261c5d113c94045bd5bdd8";
- name = "akonadi-notes-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/akonadi-notes-19.08.2.tar.xz";
+ sha256 = "64684c50d06664d8ccda098f8bfa536e861e4938c8f27688ef97653f7788fdde";
+ name = "akonadi-notes-19.08.2.tar.xz";
};
};
akonadi-search = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/akonadi-search-19.08.1.tar.xz";
- sha256 = "c68387f3452bcd390f1c99549531c72d95db0def29d8ba10330e68891b0d0b53";
- name = "akonadi-search-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/akonadi-search-19.08.2.tar.xz";
+ sha256 = "75c9713b84a03c60a68ff36652decbf57f4f56a0fb39579f53e7ed80a5ee8525";
+ name = "akonadi-search-19.08.2.tar.xz";
};
};
akregator = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/akregator-19.08.1.tar.xz";
- sha256 = "b73fcf1c509398ff496864f0105491792b5b15f37c52f9a8ca74ca254a75494a";
- name = "akregator-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/akregator-19.08.2.tar.xz";
+ sha256 = "cefc0785f40508a80fbf4534eef4d1164e349cfd50455483cef044945d1888c4";
+ name = "akregator-19.08.2.tar.xz";
};
};
analitza = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/analitza-19.08.1.tar.xz";
- sha256 = "f963a8abe31d4c0d2b0e0a7e78ec78ced8eb7a0af60df1620ccc2f2409df6a91";
- name = "analitza-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/analitza-19.08.2.tar.xz";
+ sha256 = "cbd51fd14d5ba74a7a3590ddca18ed688cbf724cd40f21c87b905f12fadf9399";
+ name = "analitza-19.08.2.tar.xz";
};
};
ark = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/ark-19.08.1.tar.xz";
- sha256 = "b5638bc4559d775d0a0c2aee022cadc021543bf92e8be6b9b803c50e7e7f1835";
- name = "ark-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/ark-19.08.2.tar.xz";
+ sha256 = "63fcec0a32d806cfc82fb1c136b5e037bfe75459b148ac08c00be7e45ac70c50";
+ name = "ark-19.08.2.tar.xz";
};
};
artikulate = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/artikulate-19.08.1.tar.xz";
- sha256 = "856488a4914ae0cfa594106b4d5c7b5ffd996b009075dfa009ab9cdd2cbc2f9d";
- name = "artikulate-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/artikulate-19.08.2.tar.xz";
+ sha256 = "b2b0778f18f04096b84caf72c28dd4bdfdbbc8f0a22ef118b8d18dba19a3f85b";
+ name = "artikulate-19.08.2.tar.xz";
};
};
audiocd-kio = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/audiocd-kio-19.08.1.tar.xz";
- sha256 = "e072ed20f07fe246267b3e7c459812fe63d94125a1d2fbcda1c0403e9fe0a520";
- name = "audiocd-kio-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/audiocd-kio-19.08.2.tar.xz";
+ sha256 = "383c0e9055b0093661b589395288bb8d173372572490a4ba4960d214b2746b3a";
+ name = "audiocd-kio-19.08.2.tar.xz";
};
};
baloo-widgets = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/baloo-widgets-19.08.1.tar.xz";
- sha256 = "83429a70de735edc4714dc1b6f1a5a8c7d3d68a93165e98d2cadeecafa82af7b";
- name = "baloo-widgets-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/baloo-widgets-19.08.2.tar.xz";
+ sha256 = "529f3b587098eb9b7d1aaa8b311f98c58d16ed88384fa0900f9fb9f8e242c070";
+ name = "baloo-widgets-19.08.2.tar.xz";
};
};
blinken = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/blinken-19.08.1.tar.xz";
- sha256 = "dbe7b13bc6cad69f049f9eefa56f99012bc0906233193bf951477b3f5c8eb87e";
- name = "blinken-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/blinken-19.08.2.tar.xz";
+ sha256 = "7f9d909bb845c365dbf49388b79687e7491c271dd7d2f9481a20397153a670f6";
+ name = "blinken-19.08.2.tar.xz";
};
};
bomber = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/bomber-19.08.1.tar.xz";
- sha256 = "750110da07a1e316e2a55d043a0e988c91e6e57866b941a5cce1b6f569096f4f";
- name = "bomber-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/bomber-19.08.2.tar.xz";
+ sha256 = "26285fe9e510cd334bb933281c615c2971084bfa787618ba0190175c36ada741";
+ name = "bomber-19.08.2.tar.xz";
};
};
bovo = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/bovo-19.08.1.tar.xz";
- sha256 = "0d923b6b0eaf2ffd7a1eca833d1f110cc6fdaade3b11d07e8fa53a244a778658";
- name = "bovo-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/bovo-19.08.2.tar.xz";
+ sha256 = "63f7a3860de2344be69366f636e841cd3db19743a8a29c42e14402256ed3122b";
+ name = "bovo-19.08.2.tar.xz";
};
};
calendarsupport = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/calendarsupport-19.08.1.tar.xz";
- sha256 = "74d1b19a924f2aad7f5a034a7e3b11f2ed5bb94cd21458f0255a64ac6163de97";
- name = "calendarsupport-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/calendarsupport-19.08.2.tar.xz";
+ sha256 = "9ae448463ca60e075f1ea9a22489f0acf6ea672c00f9bd7b49027e548e82c2af";
+ name = "calendarsupport-19.08.2.tar.xz";
};
};
cantor = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/cantor-19.08.1.tar.xz";
- sha256 = "93b43426c3383718e6ff7b62f073e3c39371a519b98e890c2b7c15cb5086c039";
- name = "cantor-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/cantor-19.08.2.tar.xz";
+ sha256 = "039bb1e61b996ab3776502db9367ed1f7fb7e674292647f1b28f5bd9b1c1b9cb";
+ name = "cantor-19.08.2.tar.xz";
};
};
cervisia = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/cervisia-19.08.1.tar.xz";
- sha256 = "726c8d4bd942280e08891e15e47d0a0a88ee951addb3c10e1e9955fad2794b7f";
- name = "cervisia-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/cervisia-19.08.2.tar.xz";
+ sha256 = "7cbff9d32e2721f6f594a84b42feef6dd76f830e2cc27c6d442d9b6ccbe7fceb";
+ name = "cervisia-19.08.2.tar.xz";
};
};
dolphin = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/dolphin-19.08.1.tar.xz";
- sha256 = "a612dac0cf50301af46ad5fa29aad630bb33a8a4bd416a4d6023b65fb00f25cc";
- name = "dolphin-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/dolphin-19.08.2.tar.xz";
+ sha256 = "0c56515737fc0f96020b3c157a93023095d1a1e23637e7670e068c6c286bbc3b";
+ name = "dolphin-19.08.2.tar.xz";
};
};
dolphin-plugins = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/dolphin-plugins-19.08.1.tar.xz";
- sha256 = "ce2452d9f878dfcff45739ff9eb4a3bde69c449c36182dee6b768f362e75ae2e";
- name = "dolphin-plugins-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/dolphin-plugins-19.08.2.tar.xz";
+ sha256 = "da2114bd8ed0a70fba3c3cba82a5543cce2f91af7e1dc12bc7457eeffc03099d";
+ name = "dolphin-plugins-19.08.2.tar.xz";
};
};
dragon = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/dragon-19.08.1.tar.xz";
- sha256 = "b015dbba4b8278a4987164f12a9d9e42745d2eb1772da8b8b0c849b28ba03c90";
- name = "dragon-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/dragon-19.08.2.tar.xz";
+ sha256 = "3924dba504f370415c0d68cb5079acfc941aa761e9d9d2df2ea48b302ef9ce61";
+ name = "dragon-19.08.2.tar.xz";
};
};
eventviews = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/eventviews-19.08.1.tar.xz";
- sha256 = "a44d82e774017171f2eef3ef94b3c5b2765ce08fab5eec0a87b286fd5ea815f7";
- name = "eventviews-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/eventviews-19.08.2.tar.xz";
+ sha256 = "48da7f85c86bcc7a64d475c5bbcbb531471e70cfc9f4bda76030280f0671132d";
+ name = "eventviews-19.08.2.tar.xz";
};
};
ffmpegthumbs = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/ffmpegthumbs-19.08.1.tar.xz";
- sha256 = "527ef798db833e71e2faf315fc89596716bd2bd7d11c78bc1bb2ef9b1549a71b";
- name = "ffmpegthumbs-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/ffmpegthumbs-19.08.2.tar.xz";
+ sha256 = "deba57ff10525efdf404401f6b605c1be0f02ec0bfe00465e080b42dc379d570";
+ name = "ffmpegthumbs-19.08.2.tar.xz";
};
};
filelight = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/filelight-19.08.1.tar.xz";
- sha256 = "170e633e0d2f8c9b13cccfd5957590100be435f9e7258e84c6f15fabc636768e";
- name = "filelight-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/filelight-19.08.2.tar.xz";
+ sha256 = "313ff23fceb427509b37efa012535e651618d42bde35c62cdc7732e463c346a6";
+ name = "filelight-19.08.2.tar.xz";
};
};
granatier = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/granatier-19.08.1.tar.xz";
- sha256 = "3015a25f961ae3d746db2814a322bfb204e4e39cd95145fbf2aa819f1dc0417e";
- name = "granatier-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/granatier-19.08.2.tar.xz";
+ sha256 = "81a0c288edd0be6d7c994a8ad1469679b7e78174d641f9c4f90d31613bad4b47";
+ name = "granatier-19.08.2.tar.xz";
};
};
grantlee-editor = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/grantlee-editor-19.08.1.tar.xz";
- sha256 = "77661ac1d125349cd3439d130164ad172f0022376d6c6038c860c0440939e52c";
- name = "grantlee-editor-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/grantlee-editor-19.08.2.tar.xz";
+ sha256 = "8e65ca3d949dcdd2b6c2edd582351b123eef49eb104a2dd6c027028315c2d502";
+ name = "grantlee-editor-19.08.2.tar.xz";
};
};
grantleetheme = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/grantleetheme-19.08.1.tar.xz";
- sha256 = "61ec8f4902573727d5a292ba55c3663b267d3b1b8017c003ac3445164c2627cb";
- name = "grantleetheme-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/grantleetheme-19.08.2.tar.xz";
+ sha256 = "a9d4e70089debdfaffb4af881cf2064ba68a0ad3fe007985c8e5997f0cf0e836";
+ name = "grantleetheme-19.08.2.tar.xz";
};
};
gwenview = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/gwenview-19.08.1.tar.xz";
- sha256 = "1ed46507ea30c43e4672b51996ac413683a863978999be91a9df135f9369f3cb";
- name = "gwenview-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/gwenview-19.08.2.tar.xz";
+ sha256 = "fa49352a208c9472c911d3579f7601fb915831ad42caf74a053ed749bf5bb1fb";
+ name = "gwenview-19.08.2.tar.xz";
};
};
incidenceeditor = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/incidenceeditor-19.08.1.tar.xz";
- sha256 = "591781da9b3bc4b0f366ffa8de658aa31f48e1f435a434669b7c11b5f3a55403";
- name = "incidenceeditor-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/incidenceeditor-19.08.2.tar.xz";
+ sha256 = "f2f7bf3a12af21e6f9e4a5f2ba93346e06a6988366af7b452d6268ac9fb4fc3d";
+ name = "incidenceeditor-19.08.2.tar.xz";
};
};
juk = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/juk-19.08.1.tar.xz";
- sha256 = "f91de1fa697fba3fe73a086b0f3c254959fbceb769d3752353ee2078b86611f9";
- name = "juk-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/juk-19.08.2.tar.xz";
+ sha256 = "b3f0e006d6defa58e0724088a1c99c1c412bc5764f8d1bebadf31b5f331d51d3";
+ name = "juk-19.08.2.tar.xz";
};
};
k3b = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/k3b-19.08.1.tar.xz";
- sha256 = "8995f39457932fb6597f0f6124e0dfe09ecb2a25a6ec8506ce3ef870da293749";
- name = "k3b-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/k3b-19.08.2.tar.xz";
+ sha256 = "a16796a873018bc5fd9f562297fea56d3f6d32a1e903a3e145814ea7d9be5209";
+ name = "k3b-19.08.2.tar.xz";
};
};
kaccounts-integration = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kaccounts-integration-19.08.1.tar.xz";
- sha256 = "7436bb0c8e024122d7137971749ef975878dee557befa4b95bc02ce0801a8450";
- name = "kaccounts-integration-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kaccounts-integration-19.08.2.tar.xz";
+ sha256 = "b422c23eb3eefc3a79c4ccb9360ae6269a86982575e981bb949c0782f1f813ce";
+ name = "kaccounts-integration-19.08.2.tar.xz";
};
};
kaccounts-providers = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kaccounts-providers-19.08.1.tar.xz";
- sha256 = "ce885be3c0d59b7f65373fbadc8ff4510998f9067d3a7c96dc1eb05df78b071b";
- name = "kaccounts-providers-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kaccounts-providers-19.08.2.tar.xz";
+ sha256 = "d5ad6882ff151d2f0cff2b76a83e38cf37c72a0dbdf4a0aff64420903266a309";
+ name = "kaccounts-providers-19.08.2.tar.xz";
};
};
kaddressbook = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kaddressbook-19.08.1.tar.xz";
- sha256 = "8091a3bd77ec17757386d71a98a0ef2b6d68e35ca2f9f9b71e4e36c2a3cce5c9";
- name = "kaddressbook-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kaddressbook-19.08.2.tar.xz";
+ sha256 = "4d67480ebf8ee96fcde85e66f8ad32119b006e36c87f4e4ac20ecfa967599260";
+ name = "kaddressbook-19.08.2.tar.xz";
};
};
kajongg = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kajongg-19.08.1.tar.xz";
- sha256 = "ae40b7ceb7c591f8d92371e3c7584eeae0d84e4680927834eca7ffacd5b9bbf6";
- name = "kajongg-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kajongg-19.08.2.tar.xz";
+ sha256 = "08c80ea5d44ee25812de9d9e95d7800cc84c1c02006f59eb08e54f2a0d4c756b";
+ name = "kajongg-19.08.2.tar.xz";
};
};
kalarm = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kalarm-19.08.1.tar.xz";
- sha256 = "9eb7c6b160e82ae8d5d294ebd781ef2ac5579e556a564c70598c08925e2021fa";
- name = "kalarm-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kalarm-19.08.2.tar.xz";
+ sha256 = "54d61b469042d27b8df903c5fc95dd68c1d108218f1402a733d974ab02576d24";
+ name = "kalarm-19.08.2.tar.xz";
};
};
kalarmcal = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kalarmcal-19.08.1.tar.xz";
- sha256 = "add9ee09287491236c9a25cfcb32d437845d094d8fef3682954f561dc2917984";
- name = "kalarmcal-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kalarmcal-19.08.2.tar.xz";
+ sha256 = "4dc6e1cd8a9cbf6e3f8e593e68ef6fa912819ece56efa64852ab33e3f582e6b7";
+ name = "kalarmcal-19.08.2.tar.xz";
};
};
kalgebra = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kalgebra-19.08.1.tar.xz";
- sha256 = "c9859e0b2b847652007a3244bc658f7e160fe88fc70ea7da6e60f003f54f46c9";
- name = "kalgebra-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kalgebra-19.08.2.tar.xz";
+ sha256 = "351a0df1bf637b14683d1a38d8f1eff0153596c5f93723f28f799aead6ee0757";
+ name = "kalgebra-19.08.2.tar.xz";
};
};
kalzium = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kalzium-19.08.1.tar.xz";
- sha256 = "2519866172476bec297e9d02ff917b1c676b980edc2f20a9c3297bc255e045f0";
- name = "kalzium-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kalzium-19.08.2.tar.xz";
+ sha256 = "e63d88526c86dd67ab133694dc23b6a35fd5514643bd7a7f1790db8c2a8490d9";
+ name = "kalzium-19.08.2.tar.xz";
};
};
kamera = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kamera-19.08.1.tar.xz";
- sha256 = "109a030ef55b941758e8d4a58b2abed4c5e1bb7e13e8d239b7132867c801acf5";
- name = "kamera-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kamera-19.08.2.tar.xz";
+ sha256 = "2db474afa6201f330631640e04e1bd6ebb96838ce4c16d37617a10063b1fa757";
+ name = "kamera-19.08.2.tar.xz";
};
};
kamoso = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kamoso-19.08.1.tar.xz";
- sha256 = "76d7a9ea70646f8e86e912b72bd9f9ab42711f0cd53c7bed1403a274de036675";
- name = "kamoso-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kamoso-19.08.2.tar.xz";
+ sha256 = "2b84b3b3fb7f423bbe69716114563f018e02d63ce7b9b85084d098123e4e29b8";
+ name = "kamoso-19.08.2.tar.xz";
};
};
kanagram = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kanagram-19.08.1.tar.xz";
- sha256 = "85ba60dc1485f61054847262832edd112224a618effe8759a2dcc8ee73b130a6";
- name = "kanagram-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kanagram-19.08.2.tar.xz";
+ sha256 = "251d08a8b73e85af4b90ed429d873b17f56c1e094c4a62116eee3b6bffc96388";
+ name = "kanagram-19.08.2.tar.xz";
};
};
kapman = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kapman-19.08.1.tar.xz";
- sha256 = "e80057b4fa9b8af86ecae30871005d4c7508bbc99618cf36dcf1c9c7fa905321";
- name = "kapman-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kapman-19.08.2.tar.xz";
+ sha256 = "240d7b0c611728bd1974230227c669bdcfe80081cff2ddae6278d5393bab7a4e";
+ name = "kapman-19.08.2.tar.xz";
};
};
kapptemplate = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kapptemplate-19.08.1.tar.xz";
- sha256 = "c1e5d239ce3749e72bcce30dfc8c0a12c3d347b72a2566caa0d23dcc930499a2";
- name = "kapptemplate-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kapptemplate-19.08.2.tar.xz";
+ sha256 = "2b719cf75bf8e9b495a8d9aa8288ddb528617c2e76bd1312cfdb2a43b27d6208";
+ name = "kapptemplate-19.08.2.tar.xz";
};
};
kate = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kate-19.08.1.tar.xz";
- sha256 = "5389e1620a7eb8d7bab7396ee0db1a886fbdd44c8415291db6a917e89dcc77b7";
- name = "kate-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kate-19.08.2.tar.xz";
+ sha256 = "9897f652996e3ebca8a749562cc2d609d704c80b08ec4716622def38f5980b47";
+ name = "kate-19.08.2.tar.xz";
};
};
katomic = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/katomic-19.08.1.tar.xz";
- sha256 = "05453f2a1cba1a9bb7c558e9628361685d9b9b44fc4d65599eb05fec6ca3bd5d";
- name = "katomic-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/katomic-19.08.2.tar.xz";
+ sha256 = "822963024107e122a3f53f55ae6863a10d92ca59eef5966cded6c9daf5f989b3";
+ name = "katomic-19.08.2.tar.xz";
};
};
kbackup = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kbackup-19.08.1.tar.xz";
- sha256 = "93ec83cdb8cb1ad28f444f85aaec2270fbbf3108b3ce0cf22f42a737e0f9cc59";
- name = "kbackup-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kbackup-19.08.2.tar.xz";
+ sha256 = "1678ac00c1930f430d620f542dc7913bf1575106654cc9d4b534aed65e023fb8";
+ name = "kbackup-19.08.2.tar.xz";
};
};
kblackbox = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kblackbox-19.08.1.tar.xz";
- sha256 = "478b235e9498e9c5bf1c3626db651c85cf41bdd824dec484bccd38f6e73ffcc7";
- name = "kblackbox-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kblackbox-19.08.2.tar.xz";
+ sha256 = "4ed8e2fe00e4d2ce0b194f85491f46ceaeec28114ff2dc667c0b112f8237a9ca";
+ name = "kblackbox-19.08.2.tar.xz";
};
};
kblocks = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kblocks-19.08.1.tar.xz";
- sha256 = "15afc3b7083fc1ea08d6caa196d883a6ec7f9603302b5774c7ad97eea833f449";
- name = "kblocks-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kblocks-19.08.2.tar.xz";
+ sha256 = "8b52c949e2d446a4ccf81b09818fc90234f2f55d8722c385491ee67e1f2abf93";
+ name = "kblocks-19.08.2.tar.xz";
};
};
kblog = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kblog-19.08.1.tar.xz";
- sha256 = "e1926ebfb352f6b8c35963fdece240b03be8d3ec094cee46ba694e2869c85cae";
- name = "kblog-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kblog-19.08.2.tar.xz";
+ sha256 = "f4d9017d38746b9669efebf5b6cfdc5ebf1cbaf1bbf45ab331530ade3c21cbb5";
+ name = "kblog-19.08.2.tar.xz";
};
};
kbounce = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kbounce-19.08.1.tar.xz";
- sha256 = "e3d67ab3fac471b07a45abbcd78d02912392ad3f25e9d48b70a050bfda4a5fb0";
- name = "kbounce-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kbounce-19.08.2.tar.xz";
+ sha256 = "8436ba58bb88360b08c2d220c1a92c924b15587769103f04881ac17583cc93c8";
+ name = "kbounce-19.08.2.tar.xz";
};
};
kbreakout = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kbreakout-19.08.1.tar.xz";
- sha256 = "1f086f6794b40c6054f0c00d7fbebecea845f2ee7e7e3253efe33942f4ebe19e";
- name = "kbreakout-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kbreakout-19.08.2.tar.xz";
+ sha256 = "9550d3ee6f6d412816bd12686272c3f0f0b5b9194242f9b22e2085c39d9720a9";
+ name = "kbreakout-19.08.2.tar.xz";
};
};
kbruch = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kbruch-19.08.1.tar.xz";
- sha256 = "74b387e6eafc5fac8b7a75df6f8d61a2b4b0380a82b5c43f3a10c9b75855318f";
- name = "kbruch-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kbruch-19.08.2.tar.xz";
+ sha256 = "a2cead23cab880b21769e41086505b50de659630860d056b6a8504caafd4dcf0";
+ name = "kbruch-19.08.2.tar.xz";
};
};
kcachegrind = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kcachegrind-19.08.1.tar.xz";
- sha256 = "e677f82e5527caecb0cdacad3f001665c40ba9e6a542a6a4d91fb898b45026c1";
- name = "kcachegrind-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kcachegrind-19.08.2.tar.xz";
+ sha256 = "baf17a5c11f21deb7b019a7e3a9819348ec8d20af5c8c4a6108b96266e425b46";
+ name = "kcachegrind-19.08.2.tar.xz";
};
};
kcalc = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kcalc-19.08.1.tar.xz";
- sha256 = "7b3c110a97b851e8db03302484cadc59a59ec8378501ee61dd094ac2c7caa203";
- name = "kcalc-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kcalc-19.08.2.tar.xz";
+ sha256 = "94a6d004266813449b6b9efbe0e3b0da3e5368059134668277a344a720f65fd9";
+ name = "kcalc-19.08.2.tar.xz";
};
};
kcalcore = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kcalcore-19.08.1.tar.xz";
- sha256 = "8c1bbd8e7673907de2c3682cbc1c4fe4a165cbe0b9a2fe399c4b0ae73894228a";
- name = "kcalcore-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kcalcore-19.08.2.tar.xz";
+ sha256 = "f7d33ec65cf954a0460258694ecb2e14bf6c00cee5ea9fdc3e015e78947d896a";
+ name = "kcalcore-19.08.2.tar.xz";
};
};
kcalutils = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kcalutils-19.08.1.tar.xz";
- sha256 = "b0f17fd7ced68d03666038ee97e6ca96bd504fc8b7f0ae9b53443cefb57558d7";
- name = "kcalutils-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kcalutils-19.08.2.tar.xz";
+ sha256 = "3f789a18348152f9fc70965dbc2e9a8bd0ba872968c3d0631afacd0e78d3ce13";
+ name = "kcalutils-19.08.2.tar.xz";
};
};
kcharselect = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kcharselect-19.08.1.tar.xz";
- sha256 = "8b5c418e9b35a12eeaa1ebf7834f2a13613926e824699e13214fe35276c42457";
- name = "kcharselect-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kcharselect-19.08.2.tar.xz";
+ sha256 = "ff2a8c78fc4a12dd727e8ad8677216d5a480a8c82aff97269397ee8ae01e36df";
+ name = "kcharselect-19.08.2.tar.xz";
};
};
kcolorchooser = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kcolorchooser-19.08.1.tar.xz";
- sha256 = "a36cccbbf5dda16c0d97bff2ce415e678481fee5c2a7640b2c2db2f0ea7c70cb";
- name = "kcolorchooser-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kcolorchooser-19.08.2.tar.xz";
+ sha256 = "4eb50f314b190f1980e73212a45fe86db39f278f789288cd76cb0763f3176edc";
+ name = "kcolorchooser-19.08.2.tar.xz";
};
};
kcontacts = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kcontacts-19.08.1.tar.xz";
- sha256 = "020177eb155d3df44314e89da1824916d125aab48131fce76c2131b40eae8f39";
- name = "kcontacts-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kcontacts-19.08.2.tar.xz";
+ sha256 = "0677177d6810047876a219445232c0bf91dc1cdba3cbe4133a0a7eda98c381e8";
+ name = "kcontacts-19.08.2.tar.xz";
};
};
kcron = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kcron-19.08.1.tar.xz";
- sha256 = "e60eb14cb2aef0b0398088930102d68817c96a83c54895af6626693fc18c7ed9";
- name = "kcron-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kcron-19.08.2.tar.xz";
+ sha256 = "270ee81cba5ef9d92158a3fc71cf8c50c658468018eb0415c9d3d0bc7abea5e5";
+ name = "kcron-19.08.2.tar.xz";
};
};
kdav = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kdav-19.08.1.tar.xz";
- sha256 = "38f34f39e165ba3a843acbc9efc3296c111a6bfa8c5ba23e1f55f98860b84d41";
- name = "kdav-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kdav-19.08.2.tar.xz";
+ sha256 = "8572a77ee3d0f8a7e09e4975fcf0420394c16e908c4a19aecc409415770595f9";
+ name = "kdav-19.08.2.tar.xz";
};
};
kdebugsettings = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kdebugsettings-19.08.1.tar.xz";
- sha256 = "4195a000558b56d849eb6e79880c5140fc30cd8b0657d4a9932035434f4c2649";
- name = "kdebugsettings-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kdebugsettings-19.08.2.tar.xz";
+ sha256 = "2823e53da647dec2bd780a3029c6b093917faad3db973147ef74eb8f1c1733df";
+ name = "kdebugsettings-19.08.2.tar.xz";
};
};
kde-dev-scripts = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kde-dev-scripts-19.08.1.tar.xz";
- sha256 = "36af795eaa175f142556949fa4cc678a6d3fdad3607d169877d94bea785850d1";
- name = "kde-dev-scripts-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kde-dev-scripts-19.08.2.tar.xz";
+ sha256 = "9a47b048cec42eedcec05602eb84d4124a1f67d451c22095e688cb24f7057327";
+ name = "kde-dev-scripts-19.08.2.tar.xz";
};
};
kde-dev-utils = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kde-dev-utils-19.08.1.tar.xz";
- sha256 = "c529bb33dbd3b80e5c4737c3be0d17e88901ece48d3b19e61c8c14adab60177c";
- name = "kde-dev-utils-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kde-dev-utils-19.08.2.tar.xz";
+ sha256 = "30bbcfa632cbf76a2b3a27f1044ff9708509921882b91a5623cc2a30d40acb32";
+ name = "kde-dev-utils-19.08.2.tar.xz";
};
};
kdeedu-data = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kdeedu-data-19.08.1.tar.xz";
- sha256 = "107dff744219210c732aa007d97c8c8d8e87cff5cd446d987b8ac2600ea1f1b7";
- name = "kdeedu-data-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kdeedu-data-19.08.2.tar.xz";
+ sha256 = "0ead96a7a10ecbf98c88464f9987e7d8e2efdf7879782e5262b5cda694f3e343";
+ name = "kdeedu-data-19.08.2.tar.xz";
};
};
kdegraphics-mobipocket = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kdegraphics-mobipocket-19.08.1.tar.xz";
- sha256 = "b1760e3a22869715881f571c0bc79c1b91876e41f508a5ba53659be774a6628c";
- name = "kdegraphics-mobipocket-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kdegraphics-mobipocket-19.08.2.tar.xz";
+ sha256 = "9621b0b3564ce7fcd6890c15c48e11d00c1cf2d3b408b255ec590bd6d113439f";
+ name = "kdegraphics-mobipocket-19.08.2.tar.xz";
};
};
kdegraphics-thumbnailers = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kdegraphics-thumbnailers-19.08.1.tar.xz";
- sha256 = "86a81ff786168778cbe0ad7c185320dbf052b1df2e6269f14323df04b48ed2ff";
- name = "kdegraphics-thumbnailers-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kdegraphics-thumbnailers-19.08.2.tar.xz";
+ sha256 = "12e2b096d65c5dfde6d16bc2c35b236343ce02ba1ef1b3b68b11257250da02c8";
+ name = "kdegraphics-thumbnailers-19.08.2.tar.xz";
};
};
kdenetwork-filesharing = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kdenetwork-filesharing-19.08.1.tar.xz";
- sha256 = "b7d229d06926ad53dcffd4508fde70060260a03cdfc6b59551f5ea551274bdac";
- name = "kdenetwork-filesharing-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kdenetwork-filesharing-19.08.2.tar.xz";
+ sha256 = "ceffdaabd3417db306c05ecd6a62b521d0b3eb5996d320d65ae5c51ea46bfdda";
+ name = "kdenetwork-filesharing-19.08.2.tar.xz";
};
};
kdenlive = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kdenlive-19.08.1.tar.xz";
- sha256 = "0d19c0d24e16518fd3b57eddffeb7d004723942889bd62e869749f02a1dcc036";
- name = "kdenlive-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kdenlive-19.08.2.tar.xz";
+ sha256 = "5ca3b7a2457d2aa355309bc7471791f691edd8774af9a19cbfc8fac39ad53c78";
+ name = "kdenlive-19.08.2.tar.xz";
};
};
kdepim-addons = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kdepim-addons-19.08.1.tar.xz";
- sha256 = "eff8e21ae66bf99a33c946886e7d84f5d717b123b06f86e891c9528858b9ec32";
- name = "kdepim-addons-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kdepim-addons-19.08.2.tar.xz";
+ sha256 = "1e7d647689d2bfa243a2f4583df7030238409fb05bbcda5b168ef024e6accc89";
+ name = "kdepim-addons-19.08.2.tar.xz";
};
};
kdepim-apps-libs = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kdepim-apps-libs-19.08.1.tar.xz";
- sha256 = "40a265cde8770a3fd6181b656da49d460dc67ed06d175067da0092116cd9862e";
- name = "kdepim-apps-libs-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kdepim-apps-libs-19.08.2.tar.xz";
+ sha256 = "d542b1d532d3ce3d9f1c63f4455175c7e855cd1e095a1addf1322074afc11923";
+ name = "kdepim-apps-libs-19.08.2.tar.xz";
};
};
kdepim-runtime = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kdepim-runtime-19.08.1.tar.xz";
- sha256 = "d7dd6c0108f6c7a37dc1ac0d7b9449664c76ecd3ca4f303f3a1b214862a4b20e";
- name = "kdepim-runtime-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kdepim-runtime-19.08.2.tar.xz";
+ sha256 = "9b98980003d2d107596e9acc9482dfc3ea26a2485c75a700bd82b53b9be72ebf";
+ name = "kdepim-runtime-19.08.2.tar.xz";
};
};
kdesdk-kioslaves = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kdesdk-kioslaves-19.08.1.tar.xz";
- sha256 = "4bf6d32a33f53b7668313d0e5be81568934b8309f86c9554b25e9346344b2051";
- name = "kdesdk-kioslaves-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kdesdk-kioslaves-19.08.2.tar.xz";
+ sha256 = "308bdbbd484f60d14bd4f75e72af1e3308c497696a5f7b011b18bc0f203fd7e5";
+ name = "kdesdk-kioslaves-19.08.2.tar.xz";
};
};
kdesdk-thumbnailers = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kdesdk-thumbnailers-19.08.1.tar.xz";
- sha256 = "3da4aa540435fbc848bfc4f1b39f37145072e0856da31b4f5ac3d89719308f03";
- name = "kdesdk-thumbnailers-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kdesdk-thumbnailers-19.08.2.tar.xz";
+ sha256 = "d607f956e9c62ee9e9aa000d5444d33e68621e0741072d0d8c14e52bd4cc96be";
+ name = "kdesdk-thumbnailers-19.08.2.tar.xz";
};
};
kdf = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kdf-19.08.1.tar.xz";
- sha256 = "2aedb0a4f64d2417728b67e4a289488b59153683d5dd15bca259a64f9c51325e";
- name = "kdf-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kdf-19.08.2.tar.xz";
+ sha256 = "f0a27bbf25d5791272cc8598561e53afed9840d38bf08ed3146f36701dfb7b04";
+ name = "kdf-19.08.2.tar.xz";
};
};
kdialog = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kdialog-19.08.1.tar.xz";
- sha256 = "6b2ed8636d50d13104b0029f33b11943d6f7087297ad089d61c76a57d3b425a0";
- name = "kdialog-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kdialog-19.08.2.tar.xz";
+ sha256 = "7aef7b5a5f340cc0066e02572ec8cef8b227bc6c7f5b066677ef6422632db95a";
+ name = "kdialog-19.08.2.tar.xz";
};
};
kdiamond = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kdiamond-19.08.1.tar.xz";
- sha256 = "20280e44742d57508b0a0c4a70f7545bdbacf913300ca35f427801b46c808f8e";
- name = "kdiamond-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kdiamond-19.08.2.tar.xz";
+ sha256 = "e0e6104a34711864bc00d12acc5d4ac0143acfaefc5fec8a7f9ec5f7242d32e7";
+ name = "kdiamond-19.08.2.tar.xz";
};
};
keditbookmarks = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/keditbookmarks-19.08.1.tar.xz";
- sha256 = "f023c7b3d362c19373e3f886300420488ef53835f753c318f9fd9c0bb7e53a8a";
- name = "keditbookmarks-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/keditbookmarks-19.08.2.tar.xz";
+ sha256 = "6a22c3ccdd89d07ad13b34b89704afcc9bf3b5a177d4dc137dcb5eaf1580f6dd";
+ name = "keditbookmarks-19.08.2.tar.xz";
};
};
kfind = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kfind-19.08.1.tar.xz";
- sha256 = "a4910d5a3f2b918090084c776ca16bf1e9ae47ced0c2e4eb2a3d0071204527de";
- name = "kfind-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kfind-19.08.2.tar.xz";
+ sha256 = "7ce5255fa4ef3e98db937eb23e8cdc89bd6b5e5429ccb5fea769e99da2bc424a";
+ name = "kfind-19.08.2.tar.xz";
};
};
kfloppy = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kfloppy-19.08.1.tar.xz";
- sha256 = "c22864e0dfef37ccb9a5329467b9058a14880e88b54c448b5933b57aa98b021b";
- name = "kfloppy-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kfloppy-19.08.2.tar.xz";
+ sha256 = "743f9043bdc24855bb597d3f7cf2bbf4793c58be22eb73cd72ff1e3f8cff2f69";
+ name = "kfloppy-19.08.2.tar.xz";
};
};
kfourinline = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kfourinline-19.08.1.tar.xz";
- sha256 = "a138908ccb21ab16399edf6a0aa6f95d6197a77dfef9e4ed87c8914ceb8d5b84";
- name = "kfourinline-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kfourinline-19.08.2.tar.xz";
+ sha256 = "14d1cd1be7f1524758697f79d55c0c40e8e6359f2039929349e017a97acdc4dc";
+ name = "kfourinline-19.08.2.tar.xz";
};
};
kgeography = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kgeography-19.08.1.tar.xz";
- sha256 = "c0c04e902626d52118e81da9fc24fbd87d49d0bcf4ad229f83eef8e4f84fb551";
- name = "kgeography-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kgeography-19.08.2.tar.xz";
+ sha256 = "ca535319e5dd3938e572d9d4f4a216a29a5435546742bb6616d2a716f1a1dfcc";
+ name = "kgeography-19.08.2.tar.xz";
};
};
kget = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kget-19.08.1.tar.xz";
- sha256 = "ecc9cc31f23304baa8c909335db57460460db27fbffb97438c1ed12703c6b9b9";
- name = "kget-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kget-19.08.2.tar.xz";
+ sha256 = "e93795eec8f51cac2719ab31cfa6f5f4f642b166ffbb3f876ab3c866a4cd7df1";
+ name = "kget-19.08.2.tar.xz";
};
};
kgoldrunner = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kgoldrunner-19.08.1.tar.xz";
- sha256 = "78c284edc000ec3f3f64bcf0d6c92a50f79632804696de676ed149055de7a6f8";
- name = "kgoldrunner-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kgoldrunner-19.08.2.tar.xz";
+ sha256 = "fc719386cd1f0784c9be9813326e3fded8eb2951096abf7fcc4d577e5ed5501a";
+ name = "kgoldrunner-19.08.2.tar.xz";
};
};
kgpg = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kgpg-19.08.1.tar.xz";
- sha256 = "441a0bfa58df14bad87f5f446b89113dc20365424f6a87aec30125c9221815c5";
- name = "kgpg-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kgpg-19.08.2.tar.xz";
+ sha256 = "90795c649cd32b65b6030ed965e0db5b0570719afa36abb5d4893268461aa841";
+ name = "kgpg-19.08.2.tar.xz";
};
};
khangman = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/khangman-19.08.1.tar.xz";
- sha256 = "eb95c48baa57475319f456ee1df11b715e7ceb5b1912e2657a2b1f4617bf2b26";
- name = "khangman-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/khangman-19.08.2.tar.xz";
+ sha256 = "dfa7d2f19ab7cd7aa90d91bab1818d48e6df88ddebf729732cca8d6aca15d1f3";
+ name = "khangman-19.08.2.tar.xz";
};
};
khelpcenter = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/khelpcenter-19.08.1.tar.xz";
- sha256 = "ae3243fcdc1281937772a091d902adaba0681abe82c222bf7ef895df0899ab63";
- name = "khelpcenter-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/khelpcenter-19.08.2.tar.xz";
+ sha256 = "22b9f5225dfb9e8ad85becb7c2986cbee2a1366f84257fcbf76d5d7292dccdd9";
+ name = "khelpcenter-19.08.2.tar.xz";
};
};
kidentitymanagement = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kidentitymanagement-19.08.1.tar.xz";
- sha256 = "3ff41eddf047fb1074473fd028b22ddd0fb467c062918148305f10c2fd74f42e";
- name = "kidentitymanagement-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kidentitymanagement-19.08.2.tar.xz";
+ sha256 = "8f93f9546d570c8f7b2602a3a171641d488595ec8da3c47b0a08ef4f5083e884";
+ name = "kidentitymanagement-19.08.2.tar.xz";
};
};
kig = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kig-19.08.1.tar.xz";
- sha256 = "8b073fd0310e62483a548ada000b4230f2b70dec8ab11ac8303bd64961829675";
- name = "kig-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kig-19.08.2.tar.xz";
+ sha256 = "60bab2ccdf69df8ebaed672dc9201e468563d78761f191c43ee5673f9a54246a";
+ name = "kig-19.08.2.tar.xz";
};
};
kigo = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kigo-19.08.1.tar.xz";
- sha256 = "7afc2e08192d7e7bf17d67e00aebc498e37b40b47ce78cb7cf2d943a5563817b";
- name = "kigo-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kigo-19.08.2.tar.xz";
+ sha256 = "c53a85b312e4acfcc35905a7e5602f3d623e45227fbd3644410b3fd962a9f1a0";
+ name = "kigo-19.08.2.tar.xz";
};
};
killbots = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/killbots-19.08.1.tar.xz";
- sha256 = "16fb2338125d342166e630cf589a346a69874ea1da32c0a3c591d6e17241e05e";
- name = "killbots-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/killbots-19.08.2.tar.xz";
+ sha256 = "c4407bf534dc9de604d6c169cf278b8cb9ca03055d96b71cbfe3916dbafea479";
+ name = "killbots-19.08.2.tar.xz";
};
};
kimagemapeditor = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kimagemapeditor-19.08.1.tar.xz";
- sha256 = "0baa2f3fa5810ab63d08db2d0223af04407bb14e4bda20ad17dbfb6c63f33b3a";
- name = "kimagemapeditor-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kimagemapeditor-19.08.2.tar.xz";
+ sha256 = "3be222d94bad94adf4d589fb98c9556af0f0e6c66106a217ee3b9ab031412597";
+ name = "kimagemapeditor-19.08.2.tar.xz";
};
};
kimap = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kimap-19.08.1.tar.xz";
- sha256 = "a4fde0c17fcdbc672b8e7ad6ed727e18b6bc2cc3c7f23857a6b1455d99999bbf";
- name = "kimap-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kimap-19.08.2.tar.xz";
+ sha256 = "250479c78517610aab810f54184d8826fb981438ec9f0d5c423ad781a796ee00";
+ name = "kimap-19.08.2.tar.xz";
};
};
kio-extras = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kio-extras-19.08.1.tar.xz";
- sha256 = "de0ba7f3ce73db34b878cb88e36711d6b31aad57a5a735744330f92920666c52";
- name = "kio-extras-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kio-extras-19.08.2.tar.xz";
+ sha256 = "a0b8f08ab8f9d36cfdc950470f75726e90e9fba159bc2035931cfa6efbfe4394";
+ name = "kio-extras-19.08.2.tar.xz";
};
};
kipi-plugins = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kipi-plugins-19.08.1.tar.xz";
- sha256 = "6cc8fdc47fbfa5d8b4f9aeb4d82b5f1c9779a300cffbc17f8776dcb2ed61f0e4";
- name = "kipi-plugins-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kipi-plugins-19.08.2.tar.xz";
+ sha256 = "2894f50989a14f7fd4be0035efec3cb14583d2285ff11729605b641af0fed192";
+ name = "kipi-plugins-19.08.2.tar.xz";
};
};
kirigami-gallery = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kirigami-gallery-19.08.1.tar.xz";
- sha256 = "b981b26fb268448f20077f3e69b3e12f45de91289f5b2026c618cdbff9ec5241";
- name = "kirigami-gallery-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kirigami-gallery-19.08.2.tar.xz";
+ sha256 = "db6cf765cd3c7126d9e4d94cacf66478711fe8b676c9505c22604863092d975e";
+ name = "kirigami-gallery-19.08.2.tar.xz";
};
};
kiriki = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kiriki-19.08.1.tar.xz";
- sha256 = "ca22215394b7ea172cd1c5eef301871df2526a321b4f3c6b1aa042d4f15abf7c";
- name = "kiriki-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kiriki-19.08.2.tar.xz";
+ sha256 = "8aa1749e2b14dbb4b508515a0b1f5164243ee793141ec2af7bfc6be1f6eb67da";
+ name = "kiriki-19.08.2.tar.xz";
};
};
kiten = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kiten-19.08.1.tar.xz";
- sha256 = "01e963fd76c87a631bb5a4f86bc8be624907571c60368e6bf5bdce55cff6b59a";
- name = "kiten-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kiten-19.08.2.tar.xz";
+ sha256 = "e35552dd49507c66574ae7fc22fe75597a954044a09522652cc1e457d3425edc";
+ name = "kiten-19.08.2.tar.xz";
};
};
kitinerary = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kitinerary-19.08.1.tar.xz";
- sha256 = "f84dafa874c958b335ee80dbe85dce3605b40b83ac9468e6555250da8f480967";
- name = "kitinerary-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kitinerary-19.08.2.tar.xz";
+ sha256 = "d814a2f1deaadce5fec85b1122aab6ff926c53ca8f020aadc99401bd31597eaa";
+ name = "kitinerary-19.08.2.tar.xz";
};
};
kjumpingcube = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kjumpingcube-19.08.1.tar.xz";
- sha256 = "18c7bc9ab96308a4b874226f92f15da38cbb293372fdae8deec45029d6d31f20";
- name = "kjumpingcube-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kjumpingcube-19.08.2.tar.xz";
+ sha256 = "7ff90a22670818eee7d02fd8119923761e003e059d0666873d5299cd31c96eb3";
+ name = "kjumpingcube-19.08.2.tar.xz";
};
};
kldap = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kldap-19.08.1.tar.xz";
- sha256 = "b6fb822df67449870fb5c0bfe1adb1bd3d44535e3f2186ef6be286e4a590bd54";
- name = "kldap-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kldap-19.08.2.tar.xz";
+ sha256 = "79c540693b85c138ae7bf4f72213dfad6dfa48dfc0ab414004d93f15d2ffac6e";
+ name = "kldap-19.08.2.tar.xz";
};
};
kleopatra = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kleopatra-19.08.1.tar.xz";
- sha256 = "ef63fbe1a24a24b8c6b491fe19e0bebd9518a2e1340a9dfee7215eb3740369c7";
- name = "kleopatra-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kleopatra-19.08.2.tar.xz";
+ sha256 = "7d0667b71796f8cbf9081c74c80def1e6618366400d4fbe56e690bb7049e4085";
+ name = "kleopatra-19.08.2.tar.xz";
};
};
klettres = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/klettres-19.08.1.tar.xz";
- sha256 = "9d9616e35f2b82e39916b89a049bee4faca5a4235eb22989c9e8485c7e75239b";
- name = "klettres-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/klettres-19.08.2.tar.xz";
+ sha256 = "919fc2b5d722bfdd741f0b1202f31c9aefc5d240ceb88ab785c2acd98a1b8284";
+ name = "klettres-19.08.2.tar.xz";
};
};
klickety = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/klickety-19.08.1.tar.xz";
- sha256 = "cb12f79123e96920b323e752b057f21942aba0844d79e310ad343bda0108b273";
- name = "klickety-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/klickety-19.08.2.tar.xz";
+ sha256 = "97e165d250d88a5a9f00fc5e111f641c43bed8e1445fd9d7c59f986cf5517271";
+ name = "klickety-19.08.2.tar.xz";
};
};
klines = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/klines-19.08.1.tar.xz";
- sha256 = "e8ac5d344c6b9e6d8a9fa9a0fe7da5ebdceec049fbdc8ff476604a0760877aab";
- name = "klines-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/klines-19.08.2.tar.xz";
+ sha256 = "1e7f5600b32a43ed4e5b7490430fb20309837e35aceb6b9b904951f23beec86f";
+ name = "klines-19.08.2.tar.xz";
};
};
kmag = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kmag-19.08.1.tar.xz";
- sha256 = "28504935665df18246cc6db4288dc2b33f24ed7114007df008f4310ce8792ceb";
- name = "kmag-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kmag-19.08.2.tar.xz";
+ sha256 = "6e8ecfab87dca12804a5a8d0a8adf1545e9e17039e0f9667b10a8f2832512e71";
+ name = "kmag-19.08.2.tar.xz";
};
};
kmahjongg = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kmahjongg-19.08.1.tar.xz";
- sha256 = "621e30ce5d76ab9f8736cfe13a076501c8822d7d1402d195bfe12c21ffa507c3";
- name = "kmahjongg-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kmahjongg-19.08.2.tar.xz";
+ sha256 = "8b2c4b0e3cb9bb85fa6d5f0fc5c55fcca96149e510cde25be2bcd688834a8d08";
+ name = "kmahjongg-19.08.2.tar.xz";
};
};
kmail = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kmail-19.08.1.tar.xz";
- sha256 = "4deb5d7c5304c0856fbbafeb7bf09436e28782b96dc5ec342a09b2c26ea386c0";
- name = "kmail-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kmail-19.08.2.tar.xz";
+ sha256 = "0ad2a5439da7f255923eeb4c4cf267ece721619aa046a04439f56763aeabac85";
+ name = "kmail-19.08.2.tar.xz";
};
};
kmail-account-wizard = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kmail-account-wizard-19.08.1.tar.xz";
- sha256 = "b4f2f769b44845dd02632ce282fc740a35f7f784e9fb54091153365ee88fb864";
- name = "kmail-account-wizard-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kmail-account-wizard-19.08.2.tar.xz";
+ sha256 = "769b151d0de47d49e41eaeca501526de41c174f9df99b46418e955163c38e9a8";
+ name = "kmail-account-wizard-19.08.2.tar.xz";
};
};
kmailtransport = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kmailtransport-19.08.1.tar.xz";
- sha256 = "521bcfd334a0e7e4986e6cebff3bae4095175a11fd45f777da673f1460d733da";
- name = "kmailtransport-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kmailtransport-19.08.2.tar.xz";
+ sha256 = "c545fb5546e82f7dfcea4c6e1a8b565ad04e34851c33876c9bf74c9fbc3165c7";
+ name = "kmailtransport-19.08.2.tar.xz";
};
};
kmbox = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kmbox-19.08.1.tar.xz";
- sha256 = "5fa59ffd16df1ae28f7ebf026f67df708c5b84e54e1ab47fd5de957c5b8fc75e";
- name = "kmbox-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kmbox-19.08.2.tar.xz";
+ sha256 = "82e2f64b90a1386100e13f9b2afea5d71952a1cb9547f965ddcdb3b8c59c35b1";
+ name = "kmbox-19.08.2.tar.xz";
};
};
kmime = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kmime-19.08.1.tar.xz";
- sha256 = "e8693458734f11a9d33a4d761f2b5ccae8f9ed87bb1e9dfc97f4bd0fa7089557";
- name = "kmime-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kmime-19.08.2.tar.xz";
+ sha256 = "f153332bb71de9d4451b8d28135a914059f5156fc8dda33f6375671603477771";
+ name = "kmime-19.08.2.tar.xz";
};
};
kmines = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kmines-19.08.1.tar.xz";
- sha256 = "8aedc9eeb3426a394a6e048508f700d466c18b262a9b98e01eff379a8d6003fb";
- name = "kmines-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kmines-19.08.2.tar.xz";
+ sha256 = "735a3b7b844fbfc970187ddc9d4fe312a5dd6c037e8ad87712388578482d12d8";
+ name = "kmines-19.08.2.tar.xz";
};
};
kmix = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kmix-19.08.1.tar.xz";
- sha256 = "a6006ab35bdfc2896188aa99ba50f1b28e8d5172ec8a1068efb15a50c43f87a7";
- name = "kmix-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kmix-19.08.2.tar.xz";
+ sha256 = "5d852df8b54d3abca98db4aa2b259973231fed0a597d511d54fb41c6389ce61a";
+ name = "kmix-19.08.2.tar.xz";
};
};
kmousetool = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kmousetool-19.08.1.tar.xz";
- sha256 = "d9a3164a0709fa0d2fc3e30ade2bd42c86fb73c7cf4adc341dd7e11e686f7956";
- name = "kmousetool-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kmousetool-19.08.2.tar.xz";
+ sha256 = "7cdc327e82548bf70c4ef4feab7a30938f3aefa1e80fccb343ce0d5ca8976ccb";
+ name = "kmousetool-19.08.2.tar.xz";
};
};
kmouth = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kmouth-19.08.1.tar.xz";
- sha256 = "531b7b3716fea8c679c5c39c7c04214cb561430182747ce08a9854a76105821e";
- name = "kmouth-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kmouth-19.08.2.tar.xz";
+ sha256 = "7a71d9d15d6a5f72c86f41e874f7cb3b45d8edaae2b3bd5409b20bd7bad4a0d3";
+ name = "kmouth-19.08.2.tar.xz";
};
};
kmplot = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kmplot-19.08.1.tar.xz";
- sha256 = "7797dc95f64738b918cb19481bc74cebd1f66b5a537592bb53e98e1715701fe2";
- name = "kmplot-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kmplot-19.08.2.tar.xz";
+ sha256 = "62017429db210c5b8f99301a6768a6eb10becd0f1f6af6d886a539657d8518a0";
+ name = "kmplot-19.08.2.tar.xz";
};
};
knavalbattle = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/knavalbattle-19.08.1.tar.xz";
- sha256 = "6fa3cc1b7de95d22a6c356f411367399626a334ce648abc50ac724a860468915";
- name = "knavalbattle-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/knavalbattle-19.08.2.tar.xz";
+ sha256 = "31f25b5397c36434c1910bf8968f92548019ad172b4d5399e6c01939389915ba";
+ name = "knavalbattle-19.08.2.tar.xz";
};
};
knetwalk = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/knetwalk-19.08.1.tar.xz";
- sha256 = "0c62b756d3375f0c51046e92904f380544ba77bcc0109607bb38055907579ccf";
- name = "knetwalk-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/knetwalk-19.08.2.tar.xz";
+ sha256 = "057b8571f165a716a6cc13ec6489e7b5f9b4c14fa72080180a2098fa0fa028a1";
+ name = "knetwalk-19.08.2.tar.xz";
};
};
knights = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/knights-19.08.1.tar.xz";
- sha256 = "bdd99e6ba75e03f19eac5fe6e50c84496eb614725da021208db9119539cea132";
- name = "knights-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/knights-19.08.2.tar.xz";
+ sha256 = "2b70338d1cb2b770157a5b061a797620d8dd7dd8c6da0bcb7e2a9db375e71a07";
+ name = "knights-19.08.2.tar.xz";
};
};
knotes = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/knotes-19.08.1.tar.xz";
- sha256 = "30b835c063e03d3d9047cbaacf389ee1e261368d2cf73fdfab71b4f9138b8bf7";
- name = "knotes-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/knotes-19.08.2.tar.xz";
+ sha256 = "aa0aa4d215507750b055e9af91f552e723aee8163b36f65a3dd19786cf327cf3";
+ name = "knotes-19.08.2.tar.xz";
};
};
kolf = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kolf-19.08.1.tar.xz";
- sha256 = "5199274d7ec557d396e74485debe4c7572050de6d31f128cca9ab737062f83bc";
- name = "kolf-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kolf-19.08.2.tar.xz";
+ sha256 = "88b9a58885eda34bf5b349db5e84c20df9beb1462922ed6e973a61bd95d853e8";
+ name = "kolf-19.08.2.tar.xz";
};
};
kollision = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kollision-19.08.1.tar.xz";
- sha256 = "0f2bac3898ceb26bd17bdcc3481d76709b793a83ace75ba8f6f45fbf54428697";
- name = "kollision-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kollision-19.08.2.tar.xz";
+ sha256 = "f2e7d851181033ce39d43a038601ca70c608ae9d0cb0e88228512ca1dbd0cf19";
+ name = "kollision-19.08.2.tar.xz";
};
};
kolourpaint = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kolourpaint-19.08.1.tar.xz";
- sha256 = "59c1a2a9d8f012ff1c483dae4f1019232ec667bd88e61c6c8fc07e47312ef23f";
- name = "kolourpaint-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kolourpaint-19.08.2.tar.xz";
+ sha256 = "e8bde8d516159ae93dfe56565eea2919d2154606fd1814202f30caf21f659cda";
+ name = "kolourpaint-19.08.2.tar.xz";
};
};
kompare = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kompare-19.08.1.tar.xz";
- sha256 = "325a14529c8e015fbae0231511ddd5c61dd3d78cbc6ad92eaccfd1c90a2f1afd";
- name = "kompare-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kompare-19.08.2.tar.xz";
+ sha256 = "b14f23ac6eb72622a06e2e489fc2d684124f520ad13e032338397fef342659eb";
+ name = "kompare-19.08.2.tar.xz";
};
};
konqueror = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/konqueror-19.08.1.tar.xz";
- sha256 = "48a2847c7fcd5e30ae02d64523c3053b958ae9d3a7a649685660b1340aa644df";
- name = "konqueror-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/konqueror-19.08.2.tar.xz";
+ sha256 = "336da877ea44fb100ca5396bc843994d77d0939fe3c969ad8fa85f0e1644d111";
+ name = "konqueror-19.08.2.tar.xz";
};
};
konquest = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/konquest-19.08.1.tar.xz";
- sha256 = "114e76a10a992efb3fbd094bd1b66c3d6266c540c41289a0627ec04a8db52ec0";
- name = "konquest-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/konquest-19.08.2.tar.xz";
+ sha256 = "3dda62a480e37d97aabdc4670a8ac1cf209605ed274c872ee3575ff1ecff6936";
+ name = "konquest-19.08.2.tar.xz";
};
};
konsole = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/konsole-19.08.1.tar.xz";
- sha256 = "7530157a3fa01a9b21971e271a9d46addb5c71dce290db97265928803b57d37f";
- name = "konsole-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/konsole-19.08.2.tar.xz";
+ sha256 = "4702fe52279c99e7d8da313285ace26955776669a78bdcb6dac7aec76cabe5ed";
+ name = "konsole-19.08.2.tar.xz";
};
};
kontact = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kontact-19.08.1.tar.xz";
- sha256 = "7b57b44ee72211b30fc743fae6580867100ede718909617b90cb926732ecbabb";
- name = "kontact-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kontact-19.08.2.tar.xz";
+ sha256 = "d24023381304fbe388a0840921599d13c86912a1285acfc0a7d607962e37c5cf";
+ name = "kontact-19.08.2.tar.xz";
};
};
kontactinterface = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kontactinterface-19.08.1.tar.xz";
- sha256 = "adb5c380fd73102b84c72ea27975689dc289b0f5c8dd10f86bf0a857e00170be";
- name = "kontactinterface-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kontactinterface-19.08.2.tar.xz";
+ sha256 = "cbd34915ddf6fbcf02395f7c876050f2b732f3769627489f04979e419cfdc869";
+ name = "kontactinterface-19.08.2.tar.xz";
};
};
kopete = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kopete-19.08.1.tar.xz";
- sha256 = "c4943c5cbb384eb8697668be2a38dcc0dc16f26485a38c3657658c1cc4dbd2a8";
- name = "kopete-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kopete-19.08.2.tar.xz";
+ sha256 = "cf4e4f6ff6dcd6e42a1c3d5339be4a65ed0379ef786155c12cf13f8af339e022";
+ name = "kopete-19.08.2.tar.xz";
};
};
korganizer = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/korganizer-19.08.1.tar.xz";
- sha256 = "d7e347df36986926d0e0d1af38130a089b581e400a90cc8bf199cecb29b78023";
- name = "korganizer-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/korganizer-19.08.2.tar.xz";
+ sha256 = "969930b66a445873a28bfe2e67876388259e35e89ffce45607583b4a668d9194";
+ name = "korganizer-19.08.2.tar.xz";
};
};
kpat = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kpat-19.08.1.tar.xz";
- sha256 = "65bf7299c59d3d7512ab39174fd0e5d044f307784c02895130399534e044831c";
- name = "kpat-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kpat-19.08.2.tar.xz";
+ sha256 = "6322d86e12996da3d95f6d4afd1d2e70cfd1771698bab393aaf987fd4fe0ef67";
+ name = "kpat-19.08.2.tar.xz";
};
};
kpimtextedit = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kpimtextedit-19.08.1.tar.xz";
- sha256 = "f7e0dc9c706c94fa74a561d42d41246eae57f60c03da1ec52f2311172052d7fe";
- name = "kpimtextedit-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kpimtextedit-19.08.2.tar.xz";
+ sha256 = "e565774d77f310165fc44c8b109ef835aae82a2f763d89d1ffb6e5b820cd850d";
+ name = "kpimtextedit-19.08.2.tar.xz";
};
};
kpkpass = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kpkpass-19.08.1.tar.xz";
- sha256 = "893ee1f127c2d0c7135fe77c5c2895d04f95c9a6ed3b162c30856f4e99d4afb3";
- name = "kpkpass-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kpkpass-19.08.2.tar.xz";
+ sha256 = "daf4da30fd5c834915e6210bf64609adc116e5c6919365d000a400b6cd5f3e26";
+ name = "kpkpass-19.08.2.tar.xz";
};
};
kqtquickcharts = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kqtquickcharts-19.08.1.tar.xz";
- sha256 = "af191d150a4777e53b27c39c86f32f80cec8b6eb2442d03425496902f78e79c8";
- name = "kqtquickcharts-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kqtquickcharts-19.08.2.tar.xz";
+ sha256 = "3341f99ba3a35e9c4fd70911faebaf4312d7700a342edd242de2118f9a77c9fb";
+ name = "kqtquickcharts-19.08.2.tar.xz";
};
};
krdc = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/krdc-19.08.1.tar.xz";
- sha256 = "319bccbc3c3274b89ae58679d063a303df4b95504b1bef97f925da70a0fbcbde";
- name = "krdc-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/krdc-19.08.2.tar.xz";
+ sha256 = "c5e6193115afe742f25365bacb55aea21428acf38407659f77636217c589d8ff";
+ name = "krdc-19.08.2.tar.xz";
};
};
kreversi = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kreversi-19.08.1.tar.xz";
- sha256 = "f4c691dcc5c7864c8201f7e06470e2856996c35c5317020e56822c48af0b810e";
- name = "kreversi-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kreversi-19.08.2.tar.xz";
+ sha256 = "345c72ad38b9bd759f7569c7c0541c08a2cdad5ab92d08c1db8b6cf8ffaf1ce2";
+ name = "kreversi-19.08.2.tar.xz";
};
};
krfb = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/krfb-19.08.1.tar.xz";
- sha256 = "3abe42f6e648f171fa38652fe03184725d1abcccf16bf1c1039ebada1f3c64c3";
- name = "krfb-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/krfb-19.08.2.tar.xz";
+ sha256 = "08877020abf6b7ac38e393443c34e7791456fc5bea8c43c552551148fd67b67e";
+ name = "krfb-19.08.2.tar.xz";
};
};
kross-interpreters = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kross-interpreters-19.08.1.tar.xz";
- sha256 = "d6acb31bd4c97364aa4a77767e012af32ecd0f560da939901a81be5776f2de49";
- name = "kross-interpreters-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kross-interpreters-19.08.2.tar.xz";
+ sha256 = "e0c63d73441c08c1b5b6627e9c02172c72f079ac0baeb596849a49ad38f8723c";
+ name = "kross-interpreters-19.08.2.tar.xz";
};
};
kruler = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kruler-19.08.1.tar.xz";
- sha256 = "040eef3746a660798e1701af6d9d17f4d091c30db9321dd5d37b172f5b91d59c";
- name = "kruler-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kruler-19.08.2.tar.xz";
+ sha256 = "2a3c51a60f503807694cf49796b3bf82c6992ec4c0c15cf38adae92a8dbc24cc";
+ name = "kruler-19.08.2.tar.xz";
};
};
kshisen = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kshisen-19.08.1.tar.xz";
- sha256 = "1631baaff368ca40a386c60998a9a491a2054a951f5b7311bea74f708d61d65f";
- name = "kshisen-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kshisen-19.08.2.tar.xz";
+ sha256 = "3c18bc546f2dadcff03af2a25b6f468357967560b7fddf916aea2b27d22c2364";
+ name = "kshisen-19.08.2.tar.xz";
};
};
ksirk = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/ksirk-19.08.1.tar.xz";
- sha256 = "42e00d3591fbfbe1db6de4caad963606a0ca5ee9a224b757157594bebb8c733c";
- name = "ksirk-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/ksirk-19.08.2.tar.xz";
+ sha256 = "6016d929de52d6e03ae1c1ba483e5e505542f16edfbd37c8dfbb9d0913e7f7f8";
+ name = "ksirk-19.08.2.tar.xz";
};
};
ksmtp = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/ksmtp-19.08.1.tar.xz";
- sha256 = "71401abcbb6aedd2845c84bca65f77297722b3414f4d4caeaa6ac6b8f2edc46c";
- name = "ksmtp-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/ksmtp-19.08.2.tar.xz";
+ sha256 = "0d1308fd01f7261e78bedb465983be2ccf5a1514cfa31125e0a3488f67ab6590";
+ name = "ksmtp-19.08.2.tar.xz";
};
};
ksnakeduel = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/ksnakeduel-19.08.1.tar.xz";
- sha256 = "130e6545102a4e39f284a409213e9d45066ed27c077ff881839f33db78f62dd5";
- name = "ksnakeduel-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/ksnakeduel-19.08.2.tar.xz";
+ sha256 = "bb13aa91d0e75c1099a57606e0ea1f567a3ffe8f4efbf6a94420bd372ff10289";
+ name = "ksnakeduel-19.08.2.tar.xz";
};
};
kspaceduel = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kspaceduel-19.08.1.tar.xz";
- sha256 = "47a6d9c78b1d24e80803b7e1765bb6de37157e9f1e733ef5ce50a54612c16bf9";
- name = "kspaceduel-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kspaceduel-19.08.2.tar.xz";
+ sha256 = "3e2af55afcf78f74ca1fa67ea46da2db4cbc6fd9f522a94d3adb9bed6b518aa8";
+ name = "kspaceduel-19.08.2.tar.xz";
};
};
ksquares = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/ksquares-19.08.1.tar.xz";
- sha256 = "39fd1b73c3c13c3322a5658b8deed31261b0e68edc5cb9666ade374d5d9d8283";
- name = "ksquares-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/ksquares-19.08.2.tar.xz";
+ sha256 = "f16fa641f02a6462085d291ed8d3262891cdeeeff8bbbde4e0aabfdac3dc7bc9";
+ name = "ksquares-19.08.2.tar.xz";
};
};
ksudoku = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/ksudoku-19.08.1.tar.xz";
- sha256 = "cae801e0c595009e35aa11df370de421164f10d9840ae4dede2cd57f19cd6866";
- name = "ksudoku-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/ksudoku-19.08.2.tar.xz";
+ sha256 = "4630117e12c10c2f326a4e55dceed7f19d183b597eadc3d4308aecf5a5455156";
+ name = "ksudoku-19.08.2.tar.xz";
};
};
ksystemlog = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/ksystemlog-19.08.1.tar.xz";
- sha256 = "7dde2a350b32011027d6ab9648859218a053c5509ad08bce8c2de875d2ae73db";
- name = "ksystemlog-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/ksystemlog-19.08.2.tar.xz";
+ sha256 = "742bff9c71cc42d7a57a7732f039a944f60fe4dd70cf71c32f37ba914b57b5de";
+ name = "ksystemlog-19.08.2.tar.xz";
};
};
kteatime = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kteatime-19.08.1.tar.xz";
- sha256 = "a4b80c5ca6f48c1d291a9502c43293cd0aa383f2e089b9435b02ff79b317c310";
- name = "kteatime-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kteatime-19.08.2.tar.xz";
+ sha256 = "075470af370b7913fdb085dd6984da91f863b6c03a4b713854e85437e6f9cdbe";
+ name = "kteatime-19.08.2.tar.xz";
};
};
ktimer = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/ktimer-19.08.1.tar.xz";
- sha256 = "f81af279e9e79bb3044718fa868973524e85df65dfaf654b8f45824b6f9d17cb";
- name = "ktimer-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/ktimer-19.08.2.tar.xz";
+ sha256 = "81be41497e14f5fb72150e238805744c9b09463ac261cf5d7d2ca011a41a05a0";
+ name = "ktimer-19.08.2.tar.xz";
};
};
ktnef = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/ktnef-19.08.1.tar.xz";
- sha256 = "bab23e40af2fe5ba2dd0be71687fbdd56d0868f2ef2a399721da88b12c65764f";
- name = "ktnef-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/ktnef-19.08.2.tar.xz";
+ sha256 = "d8efabe72eedd5e89f3de9637a1a6d68ce670ec071e031470aa6852f9ad8561d";
+ name = "ktnef-19.08.2.tar.xz";
};
};
ktouch = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/ktouch-19.08.1.tar.xz";
- sha256 = "d97ee5f253dd4e4d802bb8109c2e12d4d48bc7741686d07783e5687a499a2da7";
- name = "ktouch-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/ktouch-19.08.2.tar.xz";
+ sha256 = "d36659c21d05465c7a77330dbfbbab09946093eac1db6c02147d81a838eba636";
+ name = "ktouch-19.08.2.tar.xz";
};
};
ktp-accounts-kcm = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/ktp-accounts-kcm-19.08.1.tar.xz";
- sha256 = "2f76fc870bd7a96540aa91054b3cac38b917f90c129fada86c3639815dfa27a5";
- name = "ktp-accounts-kcm-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/ktp-accounts-kcm-19.08.2.tar.xz";
+ sha256 = "7995813bc983c80b200cddf6b0f55fa8c48be3297ee03e3e0a7601cbc86b8dd8";
+ name = "ktp-accounts-kcm-19.08.2.tar.xz";
};
};
ktp-approver = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/ktp-approver-19.08.1.tar.xz";
- sha256 = "a446c23836f6e38bb739246595cf1773f4909279cf1522b96ccd6626ba36430a";
- name = "ktp-approver-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/ktp-approver-19.08.2.tar.xz";
+ sha256 = "74670d519578486e05237f5085a51fe0a8ce833be413c06702f38b27b27913ec";
+ name = "ktp-approver-19.08.2.tar.xz";
};
};
ktp-auth-handler = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/ktp-auth-handler-19.08.1.tar.xz";
- sha256 = "9a86ce184596cd54b914a7ff0424cadbee24b98f00b8736380e4153ee8596f64";
- name = "ktp-auth-handler-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/ktp-auth-handler-19.08.2.tar.xz";
+ sha256 = "b13304909d8e66adc2a0658081fd41e72b0ef7513e041b9a8f3261a8ffd7bb22";
+ name = "ktp-auth-handler-19.08.2.tar.xz";
};
};
ktp-call-ui = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/ktp-call-ui-19.08.1.tar.xz";
- sha256 = "bab48fcdc4f4a7becfeca99dbe9061b9d08a510f94548c6ebdf720100ddb5a4c";
- name = "ktp-call-ui-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/ktp-call-ui-19.08.2.tar.xz";
+ sha256 = "0d735c34f937a436e82e994c9d60b851473d31b3dc07f1d2ec7eeeab63b83658";
+ name = "ktp-call-ui-19.08.2.tar.xz";
};
};
ktp-common-internals = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/ktp-common-internals-19.08.1.tar.xz";
- sha256 = "985d55a259df9cb0593db50ac88bd5d3ab155c6e26563386230fe66294c3dc63";
- name = "ktp-common-internals-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/ktp-common-internals-19.08.2.tar.xz";
+ sha256 = "b08cb6dc05e325c80f9d1753db23d1969fc6c2defc571401e7b2e87772721f7e";
+ name = "ktp-common-internals-19.08.2.tar.xz";
};
};
ktp-contact-list = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/ktp-contact-list-19.08.1.tar.xz";
- sha256 = "a3ade7f7bacd53c90062923b488a7f60968a45d6d63890a618638f514dd3a5b2";
- name = "ktp-contact-list-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/ktp-contact-list-19.08.2.tar.xz";
+ sha256 = "ab5778049e1351bc5cec29e3bfd98588f24b9877d385e787eb1f68715d624d34";
+ name = "ktp-contact-list-19.08.2.tar.xz";
};
};
ktp-contact-runner = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/ktp-contact-runner-19.08.1.tar.xz";
- sha256 = "385bc8bebb7847cefdd17738ecaf03b102794ac7f38dc58ebe10d100385b769f";
- name = "ktp-contact-runner-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/ktp-contact-runner-19.08.2.tar.xz";
+ sha256 = "6ec9fd151b98c2f48d1ef4361c063e83fe51562fc34868c032d39495ab38fb85";
+ name = "ktp-contact-runner-19.08.2.tar.xz";
};
};
ktp-desktop-applets = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/ktp-desktop-applets-19.08.1.tar.xz";
- sha256 = "ec26ba5893998f1e5c293d40e5410a7170ae4e0dea46f03bd5241c51c3240951";
- name = "ktp-desktop-applets-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/ktp-desktop-applets-19.08.2.tar.xz";
+ sha256 = "96975cf9208d215da1844619e2792be0919238a03ede71073813584042d6c774";
+ name = "ktp-desktop-applets-19.08.2.tar.xz";
};
};
ktp-filetransfer-handler = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/ktp-filetransfer-handler-19.08.1.tar.xz";
- sha256 = "34f7eed85709524efaa89924de85842c3532b1ade8572fe28dc2e8ce3f6026eb";
- name = "ktp-filetransfer-handler-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/ktp-filetransfer-handler-19.08.2.tar.xz";
+ sha256 = "cd2a8fb944e76b6a1ea4f8c956db2d9914a0d5bd472c3fac2e9b568144bf87ab";
+ name = "ktp-filetransfer-handler-19.08.2.tar.xz";
};
};
ktp-kded-module = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/ktp-kded-module-19.08.1.tar.xz";
- sha256 = "323b538c08da82aaf66503463b4334bc603a37bb358fa6f1d5794562c05eed4f";
- name = "ktp-kded-module-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/ktp-kded-module-19.08.2.tar.xz";
+ sha256 = "340bffd880fee602868cb44bc4c5474db1c34be62375298affedf3cc7eb1579f";
+ name = "ktp-kded-module-19.08.2.tar.xz";
};
};
ktp-send-file = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/ktp-send-file-19.08.1.tar.xz";
- sha256 = "1e4f9348dab9546d344d00783d6a5ad93b9b299b96d551dd09325c95932cbcd2";
- name = "ktp-send-file-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/ktp-send-file-19.08.2.tar.xz";
+ sha256 = "30a4a27b4c37c8ca75ebc407c6070395197b9b88ba8e422d7055eee93ec0ae9d";
+ name = "ktp-send-file-19.08.2.tar.xz";
};
};
ktp-text-ui = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/ktp-text-ui-19.08.1.tar.xz";
- sha256 = "21c9c58bd498623a6bc9bbfa01c82548af29fdf7f690a359eb57ccd9a3de3105";
- name = "ktp-text-ui-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/ktp-text-ui-19.08.2.tar.xz";
+ sha256 = "a0b7d8469b12ae6820541cc38dd57fad8866ad6e236c4864b7cf94629ca0cc33";
+ name = "ktp-text-ui-19.08.2.tar.xz";
};
};
ktuberling = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/ktuberling-19.08.1.tar.xz";
- sha256 = "b373c7552ff695e7d3428b7f2551315de00786177a5dc4bb96f777bdb84887cc";
- name = "ktuberling-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/ktuberling-19.08.2.tar.xz";
+ sha256 = "e6cfcd7175c7ed081ecd743c2fdd845f88b25d6cb4d46f9e6d58e35eb11c66ad";
+ name = "ktuberling-19.08.2.tar.xz";
};
};
kturtle = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kturtle-19.08.1.tar.xz";
- sha256 = "5643434e861391471674e6cf86347c362b076e1d3fe1396022b5080b899bf934";
- name = "kturtle-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kturtle-19.08.2.tar.xz";
+ sha256 = "1f1245c444aba511aea0630f80953171dd11334f55f6b9547a844e25293cf833";
+ name = "kturtle-19.08.2.tar.xz";
};
};
kubrick = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kubrick-19.08.1.tar.xz";
- sha256 = "51ff60a682c69f829af7f7e4748128d48e691aacd584379e099c437473a45c03";
- name = "kubrick-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kubrick-19.08.2.tar.xz";
+ sha256 = "89c181f8c82db143cd671fe78105e95a229e43fd64cab17ccdb80774b4ca8638";
+ name = "kubrick-19.08.2.tar.xz";
};
};
kwalletmanager = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kwalletmanager-19.08.1.tar.xz";
- sha256 = "b6206da5001f79b67264f641210925b0400b41dc59562b978d402b9524835c14";
- name = "kwalletmanager-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kwalletmanager-19.08.2.tar.xz";
+ sha256 = "5c0cd648d6bf4515cd71b4575ab8051004dcf505c2bfe502fb42b7ba01cb51b2";
+ name = "kwalletmanager-19.08.2.tar.xz";
};
};
kwave = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kwave-19.08.1.tar.xz";
- sha256 = "6febc3d01c15f94fa0f75a731a375b76642c2cdce9afc373a5c1e92fb3753891";
- name = "kwave-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kwave-19.08.2.tar.xz";
+ sha256 = "7836b7737d3f578f6d44b40dddf8b3abae53eaa84b3352bfed242eb6ef3d5604";
+ name = "kwave-19.08.2.tar.xz";
};
};
kwordquiz = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/kwordquiz-19.08.1.tar.xz";
- sha256 = "ead21c1caa1d1665a8ef685c4b46a442b7423aba63153617008985e84ff4c318";
- name = "kwordquiz-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/kwordquiz-19.08.2.tar.xz";
+ sha256 = "9bb9abc4058b8520a9229317d7da6cbbddb8a715549ca487c04af5f9eb425019";
+ name = "kwordquiz-19.08.2.tar.xz";
};
};
libgravatar = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/libgravatar-19.08.1.tar.xz";
- sha256 = "d39d6970b5113b2b805b048ca9b14770ab16d59c8ec755b0c5f6d4f7d6df73a2";
- name = "libgravatar-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/libgravatar-19.08.2.tar.xz";
+ sha256 = "393370a9d7d4a74627469b2e67bb3f7a0ef73dac8b11a3ab5af6c384c20a0de5";
+ name = "libgravatar-19.08.2.tar.xz";
};
};
libkcddb = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/libkcddb-19.08.1.tar.xz";
- sha256 = "f73d3f802e1ffec6b75246505cbec5a7baa328b808c23b42608e05fd8c7b30a5";
- name = "libkcddb-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/libkcddb-19.08.2.tar.xz";
+ sha256 = "f3e4c650b0abe10f281037bd6c805243a656fecdfc046a8586324c760ba90e48";
+ name = "libkcddb-19.08.2.tar.xz";
};
};
libkcompactdisc = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/libkcompactdisc-19.08.1.tar.xz";
- sha256 = "53d206967d98e9ee8254aca58d1ba34458761106c323deb449fa94bed1e24037";
- name = "libkcompactdisc-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/libkcompactdisc-19.08.2.tar.xz";
+ sha256 = "e185f528a4c6fea1b789186fe64a183197afc447c8cb939c9b6b9957f60d04e0";
+ name = "libkcompactdisc-19.08.2.tar.xz";
};
};
libkdcraw = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/libkdcraw-19.08.1.tar.xz";
- sha256 = "b159a669cb4c01770c363b4dd53033248402d37b29acb416ec45e71ac12449e2";
- name = "libkdcraw-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/libkdcraw-19.08.2.tar.xz";
+ sha256 = "735ab40633efec394c6265d83f86ad7caf278f63d1dd33cc6edf572da4925fcb";
+ name = "libkdcraw-19.08.2.tar.xz";
};
};
libkdegames = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/libkdegames-19.08.1.tar.xz";
- sha256 = "1b365627bd0a3a42a32a0a8d401b53d2ac09f0f9cf040b4b0483c5574991b774";
- name = "libkdegames-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/libkdegames-19.08.2.tar.xz";
+ sha256 = "83456cec44502a1f79c0be00c983090e32fd8aea5fec1461fbfbd37b5f8866ac";
+ name = "libkdegames-19.08.2.tar.xz";
};
};
libkdepim = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/libkdepim-19.08.1.tar.xz";
- sha256 = "46966eaae2bc71a5bab0c22bcfff858e299d7f1cec2203c1d12cebbc084ee9ce";
- name = "libkdepim-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/libkdepim-19.08.2.tar.xz";
+ sha256 = "67578e4c98e7e5d94249144e3720ae5fbc17231d4ecc46cb0e1be6e7ced4a71b";
+ name = "libkdepim-19.08.2.tar.xz";
};
};
libkeduvocdocument = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/libkeduvocdocument-19.08.1.tar.xz";
- sha256 = "9e7eb36b0c649231a792f618b28fd110b3782ea086cce81436191e9f73c6674e";
- name = "libkeduvocdocument-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/libkeduvocdocument-19.08.2.tar.xz";
+ sha256 = "74338cb3fcb9346a981585484f758aabd372d1a43afe9facd93d94c229424250";
+ name = "libkeduvocdocument-19.08.2.tar.xz";
};
};
libkexiv2 = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/libkexiv2-19.08.1.tar.xz";
- sha256 = "bee9a16eda002146b42f358b0dc58c5db832719870761264cc6cf0a199ab0537";
- name = "libkexiv2-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/libkexiv2-19.08.2.tar.xz";
+ sha256 = "abdafabe834862e157356f2686ae871f00302d82ae639dbf89030d19ccc54b1b";
+ name = "libkexiv2-19.08.2.tar.xz";
};
};
libkgapi = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/libkgapi-19.08.1.tar.xz";
- sha256 = "1ad2491348cc97f591aa681f7a649f2337c9a92e845980304c1110c69eecd579";
- name = "libkgapi-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/libkgapi-19.08.2.tar.xz";
+ sha256 = "b220908dd4a21e589a25b964b7786f1154f63ca98bf90c43ced3120adf4fb0a6";
+ name = "libkgapi-19.08.2.tar.xz";
};
};
libkgeomap = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/libkgeomap-19.08.1.tar.xz";
- sha256 = "aed369217007698beaa3230bf5b5360602d44ca6d333026158b15666f3670555";
- name = "libkgeomap-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/libkgeomap-19.08.2.tar.xz";
+ sha256 = "145692b900d87a84b74507b53ddc05947e6c1cce46381d8960559b5907296219";
+ name = "libkgeomap-19.08.2.tar.xz";
};
};
libkipi = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/libkipi-19.08.1.tar.xz";
- sha256 = "ec2012821c90062e43ad7c77861ab519b24aea429ed9f0b7bdf6ef9c00e82ba4";
- name = "libkipi-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/libkipi-19.08.2.tar.xz";
+ sha256 = "fcaf576afb961d9a36c1f69c034c43b9f0991cbd0726ea684c2c49096f36d5c6";
+ name = "libkipi-19.08.2.tar.xz";
};
};
libkleo = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/libkleo-19.08.1.tar.xz";
- sha256 = "5808a40d9c9358048d558a4c96f90e8c51b2dab3588ab3c678b02d5810020a31";
- name = "libkleo-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/libkleo-19.08.2.tar.xz";
+ sha256 = "0acf296ffb0144096071e47ce1365b9e5b07b59cad4700f89c875c7bee4573bd";
+ name = "libkleo-19.08.2.tar.xz";
};
};
libkmahjongg = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/libkmahjongg-19.08.1.tar.xz";
- sha256 = "c4e3a29bb923ead76f1fb528fa62c677423ebb4ac07dd149a6fc3f6ae055eb39";
- name = "libkmahjongg-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/libkmahjongg-19.08.2.tar.xz";
+ sha256 = "8699949fae90c0e92dd046b904b0624f79c37fecaa46557c808f20f24e215947";
+ name = "libkmahjongg-19.08.2.tar.xz";
};
};
libkomparediff2 = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/libkomparediff2-19.08.1.tar.xz";
- sha256 = "a020ba9287ee084a0f5a10896f1559f11aff1c97957405f47deeda32a0874b31";
- name = "libkomparediff2-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/libkomparediff2-19.08.2.tar.xz";
+ sha256 = "c5738f96dbda3d7272ad08ff9518722ae9b7ee737ab7e27c9e88cedb418371d7";
+ name = "libkomparediff2-19.08.2.tar.xz";
};
};
libksane = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/libksane-19.08.1.tar.xz";
- sha256 = "215fae62d8ea1f70908cafc5bc8667c02d4f0329669d056c99443a7b14a6e589";
- name = "libksane-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/libksane-19.08.2.tar.xz";
+ sha256 = "97e05423f4a9205b9db0bbce5111615d6bf8e8d53a391d3398275babccd91aa0";
+ name = "libksane-19.08.2.tar.xz";
};
};
libksieve = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/libksieve-19.08.1.tar.xz";
- sha256 = "ab384877148710e7de92e88a192f52beaad667804bbc641b63c21cfdaa0aee31";
- name = "libksieve-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/libksieve-19.08.2.tar.xz";
+ sha256 = "5c5bb9182e53a2a928d70985f6dd514c8b308891c4899b942784e80d221318f6";
+ name = "libksieve-19.08.2.tar.xz";
};
};
lokalize = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/lokalize-19.08.1.tar.xz";
- sha256 = "fe1e1f8fb2f2ad3cde1830b2ddbcce0e41ffe5696c6e32b0639c8931967b3943";
- name = "lokalize-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/lokalize-19.08.2.tar.xz";
+ sha256 = "3fe3af9f647bcda7f89eab5c3ebb7bce4e9ceb0b7cfb5206c2f6ecdf9cdbe3ee";
+ name = "lokalize-19.08.2.tar.xz";
};
};
lskat = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/lskat-19.08.1.tar.xz";
- sha256 = "e4b073cc65be0f1e7e01b4b2aa28bed30480aef097f5185eb608b4e45b9352e9";
- name = "lskat-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/lskat-19.08.2.tar.xz";
+ sha256 = "3ae219b92cbc4c9acfacbb16e262e82b03cd5ddba024820e82d8de7312327a9c";
+ name = "lskat-19.08.2.tar.xz";
};
};
mailcommon = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/mailcommon-19.08.1.tar.xz";
- sha256 = "3fb6f09ce8bc9ccddfa1420fa1a7c60a47065afdfbb5a30292179efbcebba833";
- name = "mailcommon-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/mailcommon-19.08.2.tar.xz";
+ sha256 = "39df1544c0278600d5a1a57697835828358ae44203087e29430ce1bd0c355e20";
+ name = "mailcommon-19.08.2.tar.xz";
};
};
mailimporter = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/mailimporter-19.08.1.tar.xz";
- sha256 = "4236938a2dca5ea0bc572afbe76ae28fc6ad1e65f383743de98a4e505f674962";
- name = "mailimporter-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/mailimporter-19.08.2.tar.xz";
+ sha256 = "27780c381919ebc9e6fc0de7021cd03277dd3962d4c4c15770fcf44cd6126814";
+ name = "mailimporter-19.08.2.tar.xz";
};
};
marble = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/marble-19.08.1.tar.xz";
- sha256 = "7e09e3037287be117e47de402d1f5ea7dd49f625ccf4a46d1d016a527d487e9e";
- name = "marble-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/marble-19.08.2.tar.xz";
+ sha256 = "4add63522a51fdea7b425f29bd3d35c558a0b881336ff6a90bfc07483acbf6a6";
+ name = "marble-19.08.2.tar.xz";
};
};
mbox-importer = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/mbox-importer-19.08.1.tar.xz";
- sha256 = "3f4c96ee65ffa0488df09522e1bda2ea38c0adf420ae66fff11f670566c5536c";
- name = "mbox-importer-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/mbox-importer-19.08.2.tar.xz";
+ sha256 = "644175d6fcb66b878309de899f4a3e060e29d4f31ce337d44ee6e1af5901044f";
+ name = "mbox-importer-19.08.2.tar.xz";
};
};
messagelib = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/messagelib-19.08.1.tar.xz";
- sha256 = "ec43d913028124a49eaa440e4b55dba23b6ab503728b897a3ad8e1fc5e446802";
- name = "messagelib-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/messagelib-19.08.2.tar.xz";
+ sha256 = "d761e94d2fa71c2de6a52e0c1756f52f0006ada35711189b343eccdafe0a0390";
+ name = "messagelib-19.08.2.tar.xz";
};
};
minuet = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/minuet-19.08.1.tar.xz";
- sha256 = "524c389060c13b37a3df4662ca9ca5e2862d20ea71f47b1a5157a088d2d065d4";
- name = "minuet-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/minuet-19.08.2.tar.xz";
+ sha256 = "1713ac758388443bbd1e2f5158cba594c35c3afdc5122a993fc66d70b07eb904";
+ name = "minuet-19.08.2.tar.xz";
};
};
okular = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/okular-19.08.1.tar.xz";
- sha256 = "9e363b73febd5da1a17e53a8f89914784b555c1f0085ddc0f55ef56082b0bd54";
- name = "okular-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/okular-19.08.2.tar.xz";
+ sha256 = "ff3d2eac444a110a611add71c30b0556085f5aaccdd821a80bd070a646c9f6b3";
+ name = "okular-19.08.2.tar.xz";
};
};
palapeli = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/palapeli-19.08.1.tar.xz";
- sha256 = "c9eeafe854529ea5a09e9ef6fd37b8be3d0d370322938c009c826bd936953adc";
- name = "palapeli-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/palapeli-19.08.2.tar.xz";
+ sha256 = "bae810595c7ba7bdac0fa5c27e6c2a3a9bb1bbdae3521cfc036ec0cdcd9ef1a7";
+ name = "palapeli-19.08.2.tar.xz";
};
};
parley = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/parley-19.08.1.tar.xz";
- sha256 = "6ee4d538ddaecd5b6c3d855db62a4b5061240b2089b3dcc592712398fd1d066b";
- name = "parley-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/parley-19.08.2.tar.xz";
+ sha256 = "1201945d55657d6b89e309220edb1a60a61debf0bbf59b508d1c0a21a8dc407e";
+ name = "parley-19.08.2.tar.xz";
};
};
picmi = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/picmi-19.08.1.tar.xz";
- sha256 = "47e0dd79ee4ae86d8be6822f9328fac2f00ce68cf862202e889c0f77a88d0d91";
- name = "picmi-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/picmi-19.08.2.tar.xz";
+ sha256 = "ecfa211043327991a0927be852c185223adebe5f15cdc39e79e31022802f904b";
+ name = "picmi-19.08.2.tar.xz";
};
};
pimcommon = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/pimcommon-19.08.1.tar.xz";
- sha256 = "5956e2767ea88efd73cbefef9cb80d16bb4cb5cb63857975fbb6ead1b984026c";
- name = "pimcommon-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/pimcommon-19.08.2.tar.xz";
+ sha256 = "ccdf2624a055a9db31b0b8109c791776d111ae91438f41ed50dcb9faca287e4c";
+ name = "pimcommon-19.08.2.tar.xz";
};
};
pim-data-exporter = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/pim-data-exporter-19.08.1.tar.xz";
- sha256 = "766e8b15f7853d84629bc49ad33aa59291d6d95cfd9db279e9e0ad70b0fab1fe";
- name = "pim-data-exporter-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/pim-data-exporter-19.08.2.tar.xz";
+ sha256 = "e4703d7a10935814738394a38c5ad54f9923c58e43c397e2e78a4b1b1176f4c2";
+ name = "pim-data-exporter-19.08.2.tar.xz";
};
};
pim-sieve-editor = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/pim-sieve-editor-19.08.1.tar.xz";
- sha256 = "b49045d7326cf0ca7fabbf58d8508d61986701887871c4df53fad1f960a64438";
- name = "pim-sieve-editor-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/pim-sieve-editor-19.08.2.tar.xz";
+ sha256 = "ae9f7de78ab9adffe2575bf1367b1ae4928afee1fd299bb91ca2d26b3bb86c03";
+ name = "pim-sieve-editor-19.08.2.tar.xz";
};
};
poxml = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/poxml-19.08.1.tar.xz";
- sha256 = "d38dce3114b01bc72163329dac629c4e5d36db15e09d52dd0ffbcaa645408d98";
- name = "poxml-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/poxml-19.08.2.tar.xz";
+ sha256 = "c5e36bd10d3a8d0474f903eebd45e026ca306beb74829c43a1e7be4ed34ca9e8";
+ name = "poxml-19.08.2.tar.xz";
};
};
print-manager = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/print-manager-19.08.1.tar.xz";
- sha256 = "b1fd9aa067329a4f5bb715e7db736160954bbec303be0ba5bc8f98852071e731";
- name = "print-manager-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/print-manager-19.08.2.tar.xz";
+ sha256 = "c0702208b6f485e2e44337aaf203b9e391adda22d6526bf0dd34b31230e0fb05";
+ name = "print-manager-19.08.2.tar.xz";
};
};
rocs = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/rocs-19.08.1.tar.xz";
- sha256 = "eaa2fefae8123071e5802d0c13016d0b99608f91c75c7c6e4fbe6f2c6dc12adf";
- name = "rocs-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/rocs-19.08.2.tar.xz";
+ sha256 = "4e61226334f79a260f0ccc7789a099a91c7643d9fdfcdd052b002f2fe6f64885";
+ name = "rocs-19.08.2.tar.xz";
};
};
signon-kwallet-extension = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/signon-kwallet-extension-19.08.1.tar.xz";
- sha256 = "7d558509cf015641c76d4203c8dadc4e9720278fb39b4561eb2bce4e5412bb83";
- name = "signon-kwallet-extension-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/signon-kwallet-extension-19.08.2.tar.xz";
+ sha256 = "2521cd2c4f25717f5caf9915474f75614be7dec7053f1e94c1429fac7045cc29";
+ name = "signon-kwallet-extension-19.08.2.tar.xz";
};
};
spectacle = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/spectacle-19.08.1.tar.xz";
- sha256 = "21057fd4990048df33f5d739fc98af2a555ca4b7db50688333fecabc12f24786";
- name = "spectacle-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/spectacle-19.08.2.tar.xz";
+ sha256 = "4cf2f0903cec2787a03a8bbdbd219acc29ac412f352a4ff94ef50ae9a6eb459e";
+ name = "spectacle-19.08.2.tar.xz";
};
};
step = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/step-19.08.1.tar.xz";
- sha256 = "533750dda4adcd0f3d8ec269103f35ee1ab4b4e9eae9721522b1b278660577a6";
- name = "step-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/step-19.08.2.tar.xz";
+ sha256 = "dede94c073b2903fa4fa6806623cb980ebe93d15cc76376aadac4ca8cd61a96c";
+ name = "step-19.08.2.tar.xz";
};
};
svgpart = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/svgpart-19.08.1.tar.xz";
- sha256 = "4ed6277d3f2c12a4a53dd308911c613af5ae65f53819aeacf42e08dcd08dbd5b";
- name = "svgpart-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/svgpart-19.08.2.tar.xz";
+ sha256 = "6c6510b604bba3aebbeca136ec9534c416bc0ba55125227bdd0af2a86052855c";
+ name = "svgpart-19.08.2.tar.xz";
};
};
sweeper = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/sweeper-19.08.1.tar.xz";
- sha256 = "cc539649fa4a2698ad07653f9427981381bf8b5344f05dab76acdf1704b4479a";
- name = "sweeper-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/sweeper-19.08.2.tar.xz";
+ sha256 = "da65cbfc952d8b63ddfbcba373d9a828ef5acefc68196ddd4c2c602c672cbb5f";
+ name = "sweeper-19.08.2.tar.xz";
};
};
umbrello = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/umbrello-19.08.1.tar.xz";
- sha256 = "ce56fa6d96bbc78cf69246d6f45e9b098f8fcc75d7771875a8e638b01bbf6efa";
- name = "umbrello-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/umbrello-19.08.2.tar.xz";
+ sha256 = "69a721d27ecedbe694d232e04469002dcf2319dd320982aacc2a02e32430c382";
+ name = "umbrello-19.08.2.tar.xz";
};
};
yakuake = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/yakuake-19.08.1.tar.xz";
- sha256 = "184fec9d07505faf820821e197582f7733694848cc17e71ee4f525772e78fc10";
- name = "yakuake-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/yakuake-19.08.2.tar.xz";
+ sha256 = "3ebf477069c85a8705302b6b51902a74af7bb92349fab41000f71484a4de5aee";
+ name = "yakuake-19.08.2.tar.xz";
};
};
zeroconf-ioslave = {
- version = "19.08.1";
+ version = "19.08.2";
src = fetchurl {
- url = "${mirror}/stable/applications/19.08.1/src/zeroconf-ioslave-19.08.1.tar.xz";
- sha256 = "0c5f8931dd2997345fc6d3e8ef73c36615a73f8c906fb6be9c27432bc038000a";
- name = "zeroconf-ioslave-19.08.1.tar.xz";
+ url = "${mirror}/stable/applications/19.08.2/src/zeroconf-ioslave-19.08.2.tar.xz";
+ sha256 = "19e31534d1a4503d1dd4bd8ef60cfb48a91ee167dd4b0db99e53b318a355dae0";
+ name = "zeroconf-ioslave-19.08.2.tar.xz";
};
};
}
diff --git a/pkgs/applications/misc/1password/default.nix b/pkgs/applications/misc/1password/default.nix
index edcd08f2499..1c409c232a8 100644
--- a/pkgs/applications/misc/1password/default.nix
+++ b/pkgs/applications/misc/1password/default.nix
@@ -2,24 +2,24 @@
stdenv.mkDerivation rec {
pname = "1password";
- version = "0.6.1";
+ version = "0.7.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 = "1yr78yawscp9fgvdw0dimc68k3bblk3g67g3jrqpa7hnl6pr24yl";
+ sha256 = "1lhp0ws543855rvpvh84rjvyi471259lg618cciqj8j6k04ls1g0";
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 = "03m0vxhghzf4zq7k2f1afkc5ixf0qwiiypqjfjgpqpfng7g9ang7";
+ sha256 = "1sjv5qrc80fk9yz0cn2yj0cdm47ab3ch8n9hzj9hv9d64gjv4w8n";
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 = "1hypmls1fq4rjx9icgr0pkx3s3fhhma2q5rds314sv7f9ijl458f";
+ sha256 = "1hnixmq7mrc6ky79k3s61vv89v4qhkm31kyni3rscibfrab0r8ir";
stripRoot = false;
}
else throw "Architecture not supported";
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
description = "1Password command-line tool";
homepage = https://support.1password.com/command-line/;
downloadPage = https://app-updates.agilebits.com/product_history/CLI;
- maintainers = with maintainers; [ joelburget ];
+ maintainers = with maintainers; [ joelburget marsam ];
license = licenses.unfree;
platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
};
diff --git a/pkgs/applications/misc/alacritty/default.nix b/pkgs/applications/misc/alacritty/default.nix
index dddf8d93412..24f788ef468 100644
--- a/pkgs/applications/misc/alacritty/default.nix
+++ b/pkgs/applications/misc/alacritty/default.nix
@@ -22,6 +22,7 @@
libxcb,
libxkbcommon,
wayland,
+ xdg_utils,
# Darwin Frameworks
AppKit,
@@ -75,6 +76,10 @@ in buildRustPackage rec {
++ lib.optionals stdenv.isDarwin [ AppKit CoreGraphics CoreServices CoreText Foundation OpenGL ];
outputs = [ "out" "terminfo" ];
+ postPatch = ''
+ substituteInPlace alacritty_terminal/src/config/mouse.rs \
+ --replace xdg-open ${xdg_utils}/bin/xdg-open
+ '';
postBuild = lib.optionalString stdenv.isDarwin "make app";
diff --git a/pkgs/applications/misc/almanah/default.nix b/pkgs/applications/misc/almanah/default.nix
index 4997a9c7f2a..06321d9d621 100644
--- a/pkgs/applications/misc/almanah/default.nix
+++ b/pkgs/applications/misc/almanah/default.nix
@@ -1,19 +1,59 @@
-{ stdenv, fetchurl, pkgconfig, intltool
-, libxml2, desktop-file-utils, wrapGAppsHook, evolution-data-server, gtkspell3, gpgme, libcryptui
-, glib, gtk3, gtksourceview3, sqlite, cairo, atk, gcr, gnome3 }:
+{ stdenv
+, fetchurl
+, atk
+, cairo
+, desktop-file-utils
+, evolution-data-server
+, gcr
+, gettext
+, glib
+, gnome3
+, gpgme
+, gtk3
+, gtksourceview3
+, gtkspell3
+, libcryptui
+, libxml2
+, meson
+, ninja
+, pkgconfig
+, sqlite
+, wrapGAppsHook
+}:
stdenv.mkDerivation rec {
pname = "almanah";
- version = "0.11.1";
+ version = "0.12.0";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "1g0fyykq8bs3x1xqc0l0bk9zazcrxja784m68myymv1zfqqnp9h0";
+ sha256 = "09rxx4s4c34d1axza6ayss33v78p44r9bpx058shllh1sf5avpcb";
};
- nativeBuildInputs = [ pkgconfig intltool libxml2 desktop-file-utils wrapGAppsHook ];
+ nativeBuildInputs = [
+ desktop-file-utils
+ gettext
+ libxml2
+ meson
+ ninja
+ pkgconfig
+ wrapGAppsHook
+ ];
- buildInputs = [ glib gtk3 gtksourceview3 sqlite cairo atk gcr gtkspell3 evolution-data-server gnome3.evolution gpgme libcryptui ];
+ buildInputs = [
+ atk
+ cairo
+ evolution-data-server
+ gcr
+ glib
+ gnome3.evolution
+ gpgme
+ gtk3
+ gtksourceview3
+ gtkspell3
+ libcryptui
+ sqlite
+ ];
passthru = {
updateScript = gnome3.updateScript {
diff --git a/pkgs/applications/misc/ape/default.nix b/pkgs/applications/misc/ape/default.nix
index e78ba2df999..0d8ebccb3d0 100644
--- a/pkgs/applications/misc/ape/default.nix
+++ b/pkgs/applications/misc/ape/default.nix
@@ -1,33 +1,33 @@
{ stdenv, swiProlog, makeWrapper,
fetchFromGitHub,
- lexicon ? "lexicon/clex_lexicon.pl",
+ lexicon ? "prolog/lexicon/clex_lexicon.pl",
pname ? "ape",
description ? "Parser for Attempto Controlled English (ACE)",
license ? with stdenv.lib; licenses.lgpl3
}:
stdenv.mkDerivation rec {
- name = "${pname}-${version}";
- version = "6.7-131003";
+ inherit pname;
+ version = "2019-08-10";
buildInputs = [ swiProlog makeWrapper ];
src = fetchFromGitHub {
owner = "Attempto";
repo = "APE";
- rev = version;
- sha256 = "0cw47qjg4896kw3vps6rfs02asvscsqvcfdiwgfmqb3hvykb1sdx";
+ rev = "113b81621262d7a395779465cb09397183e6f74c";
+ sha256 = "0xyvna2fbr18hi5yvm0zwh77q02dfna1g4g53z9mn2rmlfn2mhjh";
};
patchPhase = ''
# We move the file first to avoid "same file" error in the default case
cp ${lexicon} new_lexicon.pl
- rm lexicon/clex_lexicon.pl
- cp new_lexicon.pl lexicon/clex_lexicon.pl
+ rm prolog/lexicon/clex_lexicon.pl
+ cp new_lexicon.pl prolog/lexicon/clex_lexicon.pl
'';
buildPhase = ''
- make build
+ make SHELL=${stdenv.shell} build
'';
installPhase = ''
diff --git a/pkgs/applications/misc/appeditor/default.nix b/pkgs/applications/misc/appeditor/default.nix
index 0530ec9c1b8..68cd91c1676 100644
--- a/pkgs/applications/misc/appeditor/default.nix
+++ b/pkgs/applications/misc/appeditor/default.nix
@@ -1,5 +1,6 @@
{ stdenv
, fetchFromGitHub
+, vala
, meson
, ninja
, pkgconfig
@@ -8,7 +9,6 @@
, gettext
, glib
, gtk3
-, hicolor-icon-theme
, libgee
, wrapGAppsHook }:
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
gettext
meson
ninja
- pantheon.vala
+ vala
pkgconfig
python3
wrapGAppsHook
@@ -36,11 +36,15 @@ stdenv.mkDerivation rec {
buildInputs = [
glib
gtk3
- hicolor-icon-theme
pantheon.granite
libgee
];
+ patches = [
+ # See: https://github.com/donadigo/appeditor/issues/88
+ ./fix-build-vala-0.46.patch
+ ];
+
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
diff --git a/pkgs/applications/misc/appeditor/fix-build-vala-0.46.patch b/pkgs/applications/misc/appeditor/fix-build-vala-0.46.patch
new file mode 100644
index 00000000000..f6c0b4cfd28
--- /dev/null
+++ b/pkgs/applications/misc/appeditor/fix-build-vala-0.46.patch
@@ -0,0 +1,22 @@
+diff --git a/src/DesktopApp.vala b/src/DesktopApp.vala
+index 0e6fa47..ebcde0c 100644
+--- a/src/DesktopApp.vala
++++ b/src/DesktopApp.vala
+@@ -130,7 +130,7 @@ public class AppEditor.DesktopApp : Object {
+
+ public unowned string get_path () {
+ if (path == null) {
+- unowned string _path = info.get_string (KeyFileDesktop.KEY_PATH);
++ string _path = info.get_string (KeyFileDesktop.KEY_PATH);
+ if (_path == null) {
+ _path = "";
+ }
+@@ -150,7 +150,7 @@ public class AppEditor.DesktopApp : Object {
+ }
+
+ public bool get_should_show () {
+- return info.should_show () && !get_terminal ();
++ return info.should_show () && !get_terminal ();
+ }
+
+ public string[] get_categories () {
diff --git a/pkgs/applications/misc/barrier/default.nix b/pkgs/applications/misc/barrier/default.nix
index e401a7c0b8e..d8325e19e26 100644
--- a/pkgs/applications/misc/barrier/default.nix
+++ b/pkgs/applications/misc/barrier/default.nix
@@ -4,13 +4,13 @@
mkDerivation rec {
pname = "barrier";
- version = "2.3.1";
+ version = "2.3.2";
src = fetchFromGitHub {
owner = "debauchee";
repo = pname;
rev = "v${version}";
- sha256 = "1dakpgs4jcwg06f45xg6adc83jd2qnpywmjm1z7g0hzd2vd0qg4k";
+ sha256 = "1gbg3p7c0vcsdzsjj1ssx6k8xpj3rpyvais12266f0xvnbvihczd";
};
buildInputs = [ cmake curl xorg.libX11 xorg.libXext xorg.libXtst avahiWithLibdnssdCompat qtbase ];
diff --git a/pkgs/applications/misc/birdtray/default.nix b/pkgs/applications/misc/birdtray/default.nix
new file mode 100644
index 00000000000..c6321dd83c0
--- /dev/null
+++ b/pkgs/applications/misc/birdtray/default.nix
@@ -0,0 +1,40 @@
+{ mkDerivation
+ , lib
+ , fetchFromGitHub
+
+ , cmake
+ , pkgconfig
+ , qtbase
+ , qttools
+ , qtx11extras
+ , sqlite
+}:
+
+mkDerivation rec {
+ pname = "birdtray";
+ version = "1.6";
+
+ src = fetchFromGitHub {
+ owner = "gyunaev";
+ repo = pname;
+ rev = "RELEASE_${version}";
+ sha256 = "0n6qr224ir59ncid4xbdilk5642z0kcaylzbil1bdcv3h32ysjym";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+ buildInputs = [
+ qtbase qtx11extras sqlite
+ ];
+
+ installPhase = ''
+ install -Dm755 birdtray $out/bin/birdtray
+ '';
+
+ meta = with lib; {
+ description = "Mail system tray notification icon for Thunderbird";
+ 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 3f13972de9b..01eb69baadd 100644
--- a/pkgs/applications/misc/bleachbit/default.nix
+++ b/pkgs/applications/misc/bleachbit/default.nix
@@ -1,13 +1,13 @@
{ stdenv, pythonPackages, fetchurl, gettext }:
pythonPackages.buildPythonApplication rec {
pname = "bleachbit";
- version = "2.2";
+ version = "3.0";
format = "other";
src = fetchurl {
url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
- sha256 = "1yj9bc3k6s1aib7znb79h5rybfv691zz4szxkwf9fm9nr0dws603";
+ sha256 = "18ns9hms671b4l0189m1m2agprkydnpvyky9q2f5hxf35i9cn67d";
};
nativeBuildInputs = [ gettext ];
diff --git a/pkgs/applications/misc/blender/default.nix b/pkgs/applications/misc/blender/default.nix
index 3b98114c710..b671663db8e 100644
--- a/pkgs/applications/misc/blender/default.nix
+++ b/pkgs/applications/misc/blender/default.nix
@@ -2,6 +2,7 @@
, ilmbase, libXi, libX11, libXext, libXrender
, libjpeg, libpng, libsamplerate, libsndfile
, libtiff, libGLU_combined, openal, opencolorio, openexr, openimageio, openjpeg_1, python3Packages
+, openvdb, libXxf86vm, tbb
, zlib, fftw, opensubdiv, freetype, jemalloc, ocl-icd, addOpenGLRunpath
, jackaudioSupport ? false, libjack2
, cudaSupport ? config.cudaSupport or false, cudatoolkit
@@ -15,11 +16,11 @@ let python = python3Packages.python; in
stdenv.mkDerivation rec {
pname = "blender";
- version = "2.80";
+ version = "2.81";
src = fetchurl {
- url = "https://download.blender.org/source/${pname}-${version}.tar.gz";
- sha256 = "1h550jisdbis50hxwk5kxrvrk1a6sh2fsri3yyj66vhzbi87x7fd";
+ url = "https://download.blender.org/source/${pname}-${version}.tar.xz";
+ sha256 = "1prp0f2152f1sz23jlc86vndfvmplb7qhllikkirq7hgpykrshna";
};
nativeBuildInputs = [ cmake ] ++ optional cudaSupport addOpenGLRunpath;
@@ -29,6 +30,7 @@ stdenv.mkDerivation rec {
freetype libjpeg libpng libsamplerate libsndfile libtiff libGLU_combined openal
opencolorio openexr openimageio openjpeg_1 python zlib fftw jemalloc
(opensubdiv.override { inherit cudaSupport; })
+ openvdb libXxf86vm tbb
makeWrapper
]
++ optional jackaudioSupport libjack2
@@ -56,6 +58,9 @@ stdenv.mkDerivation rec {
"-DWITH_PYTHON_INSTALL=OFF"
"-DWITH_PYTHON_INSTALL_NUMPY=OFF"
"-DPYTHON_NUMPY_PATH=${python3Packages.numpy}/${python.sitePackages}"
+ "-DWITH_OPENVDB=ON"
+ "-DWITH_TBB=ON"
+ "-DWITH_IMAGE_OPENJPEG=ON"
]
++ optional jackaudioSupport "-DWITH_JACK=ON"
++ optional cudaSupport "-DWITH_CYCLES_CUDA_BINARIES=ON"
diff --git a/pkgs/applications/misc/blugon/default.nix b/pkgs/applications/misc/blugon/default.nix
new file mode 100644
index 00000000000..e6f956cc091
--- /dev/null
+++ b/pkgs/applications/misc/blugon/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, python3, libX11, libXrandr }:
+
+stdenv.mkDerivation rec {
+ pname = "blugon";
+ version = "1.11.4";
+
+ src = fetchFromGitHub {
+ owner = "jumper149";
+ repo = pname;
+ rev = version;
+ sha256 = "0x320w2h5nlcgha4345i8ns15akb4kmrdgkh710s4r1n1by4x11r";
+ };
+
+ buildInputs = [ python3 libX11 libXrandr ];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ description = "Simple and configurable Blue Light Filter for X";
+ longDescription = ''
+ blugon is a simple and fast Blue Light Filter, that is highly configurable and provides a command line interface.
+ The program can be run just once or as a daemon (manually or via systemd).
+ There are several different backends available.
+ blugon calculates the screen color from your local time and configuration.
+ '';
+ license = licenses.asl20;
+ homepage = "https://github.com/jumper149/blugon";
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ jumper149 ];
+ };
+}
diff --git a/pkgs/applications/misc/buku/default.nix b/pkgs/applications/misc/buku/default.nix
index 60ade661cff..ac65341d498 100644
--- a/pkgs/applications/misc/buku/default.nix
+++ b/pkgs/applications/misc/buku/default.nix
@@ -18,7 +18,7 @@ with python3.pkgs; buildPythonApplication rec {
pylint
flake8
pyyaml
- mypy_extensions
+ mypy-extensions
];
propagatedBuildInputs = [
@@ -54,6 +54,8 @@ with python3.pkgs; buildPythonApplication rec {
--replace "@pytest.mark.slowtest" "@unittest.skip('skipping')" \
--replace "self.assertEqual(shorturl, 'http://tny.im/yt')" "" \
--replace "self.assertEqual(url, 'https://www.google.com')" ""
+ substituteInPlace setup.py \
+ --replace mypy-extensions==0.4.1 mypy-extensions>=0.4.1
'';
postInstall = ''
diff --git a/pkgs/applications/misc/calcurse/default.nix b/pkgs/applications/misc/calcurse/default.nix
index 402198a9732..8f8934cb084 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.0";
+ version = "4.5.1";
src = fetchurl {
url = "https://calcurse.org/files/${pname}-${version}.tar.gz";
- sha256 = "1vjwcmp51h7dsvwn0qx93w9chp3wp970v7d9mjhk7jyamcbfywn3";
+ sha256 = "0cgkd285x5pk62lmdx9fjxl46c5lj8wj2cqbxq7d99yb4il5fdjk";
};
buildInputs = [ ncurses gettext python3 python3Packages.wrapPython ];
diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index dd85156b3ef..22ae573353e 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -1,16 +1,20 @@
-{ stdenv, mkDerivation, fetchurl, poppler_utils, pkgconfig, libpng
+{ lib, mkDerivation, fetchurl, poppler_utils, pkgconfig, libpng
, imagemagick, libjpeg, fontconfig, podofo, qtbase, qmake, icu, sqlite
, unrarSupport ? false, chmlib, python2Packages, libusb1, libmtp
-, xdg_utils, makeDesktopItem, wrapGAppsHook, removeReferencesTo, qt5
+, xdg_utils, makeDesktopItem, removeReferencesTo
}:
+let
+ pypkgs = python2Packages;
+
+in
mkDerivation rec {
pname = "calibre";
- version = "3.47.1";
+ version = "3.48.0";
src = fetchurl {
url = "https://download.calibre-ebook.com/${version}/${pname}-${version}.tar.xz";
- sha256 = "17lz6rawlv268vv8i5kj59rswsipq3c14066adaz1paw54zr62dk";
+ sha256 = "034m89h7j2088p324i1kya33dfldmqyynjxk3w98xiqkz7q2hi82";
};
patches = [
@@ -20,10 +24,10 @@ mkDerivation rec {
# - switches the version update from enabled to disabled by default
./no_updates_dialog.patch
# the unrar patch is not from debian
- ] ++ stdenv.lib.optional (!unrarSupport) ./dont_build_unrar_plugin.patch;
+ ] ++ lib.optional (!unrarSupport) ./dont_build_unrar_plugin.patch;
prePatch = ''
- sed -i "/pyqt_sip_dir/ s:=.*:= '${python2Packages.pyqt5_with_qtwebkit}/share/sip/PyQt5':" \
+ sed -i "/pyqt_sip_dir/ s:=.*:= '${pypkgs.pyqt5_with_qtwebkit}/share/sip/PyQt5':" \
setup/build_environment.py
# Remove unneeded files and libs
@@ -35,17 +39,21 @@ mkDerivation rec {
enableParallelBuilding = true;
- nativeBuildInputs = [ pkgconfig qmake removeReferencesTo wrapGAppsHook ];
+ nativeBuildInputs = [ pkgconfig qmake removeReferencesTo ];
+
+ CALIBRE_PY3_PORT = builtins.toString pypkgs.isPy3k;
buildInputs = [
poppler_utils libpng imagemagick libjpeg
fontconfig podofo qtbase chmlib icu sqlite libusb1 libmtp xdg_utils
- ] ++ (with python2Packages; [
- apsw cssselect css-parser dateutil dnspython html5-parser lxml mechanize netifaces pillow
+ ] ++ (with pypkgs; [
+ apsw cssselect css-parser dateutil dnspython html5-parser lxml markdown netifaces pillow
python pyqt5_with_qtwebkit sip
- regex msgpack beautifulsoup4
+ regex msgpack beautifulsoup4 html2text
# the following are distributed with calibre, but we use upstream instead
odfpy
+ ]) ++ lib.optionals (!pypkgs.isPy3k) (with pypkgs; [
+ mechanize
]);
installPhase = ''
@@ -60,8 +68,8 @@ mkDerivation rec {
export FC_LIB_DIR=${fontconfig.lib}/lib
export PODOFO_INC_DIR=${podofo.dev}/include/podofo
export PODOFO_LIB_DIR=${podofo.lib}/lib
- export SIP_BIN=${python2Packages.sip}/bin/sip
- ${python2Packages.python.interpreter} setup.py install --prefix=$out
+ export SIP_BIN=${pypkgs.sip}/bin/sip
+ ${pypkgs.python.interpreter} setup.py install --prefix=$out
PYFILES="$out/bin/* $out/lib/calibre/calibre/web/feeds/*.py
$out/lib/calibre/calibre/ebooks/metadata/*.py
@@ -111,7 +119,7 @@ mkDerivation rec {
genericName = "E-book library management";
icon = "@out@/share/calibre/images/library.png";
comment = "Manage, convert, edit, and read e-books";
- mimeType = stdenv.lib.concatStringsSep ";" [
+ mimeType = lib.concatStringsSep ";" [
"application/x-mobipocket-subscription"
"application/vnd.openxmlformats-officedocument.wordprocessingml.document"
"text/html"
@@ -174,9 +182,9 @@ mkDerivation rec {
extraEntries = "NoDisplay=true";
};
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "Comprehensive e-book software";
- homepage = https://calibre-ebook.com;
+ homepage = "https://calibre-ebook.com";
license = with licenses; if unrarSupport then unfreeRedistributable else gpl3;
maintainers = with maintainers; [ domenkozar pSub AndersonTorres ];
platforms = platforms.linux;
diff --git a/pkgs/applications/misc/cataract/build.nix b/pkgs/applications/misc/cataract/build.nix
index 5f4e24f4d3c..1c33a92987c 100644
--- a/pkgs/applications/misc/cataract/build.nix
+++ b/pkgs/applications/misc/cataract/build.nix
@@ -22,17 +22,21 @@ stdenv.mkDerivation {
nativeBuildInputs = [ autoreconfHook pkgconfig ];
buildInputs = [ glib libxml2 exiv2 imagemagick ];
+ prePatch = ''
+ sed -i 's|#include |#include |' src/jpeg-utils.cpp
+ '';
+
installPhase = ''
mkdir $out/{bin,share} -p
cp src/cgg{,-dirgen} $out/bin/
'';
- meta = {
- homepage = http://cgg.bzatek.net/;
- description = "a simple static web photo gallery, designed to be clean and easily usable";
- license = stdenv.lib.licenses.gpl2;
- maintainers = [ stdenv.lib.maintainers.matthiasbeyer ];
- platforms = with stdenv.lib.platforms; linux ++ darwin;
+ meta = with stdenv.lib; {
+ homepage = "http://cgg.bzatek.net/";
+ description = "A simple static web photo gallery, designed to be clean and easily usable";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.matthiasbeyer ];
+ platforms = with platforms; linux ++ darwin;
};
}
diff --git a/pkgs/applications/misc/cbatticon/default.nix b/pkgs/applications/misc/cbatticon/default.nix
index 44612644359..e506829b575 100644
--- a/pkgs/applications/misc/cbatticon/default.nix
+++ b/pkgs/applications/misc/cbatticon/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "cbatticon";
- version = "1.6.9";
+ version = "1.6.10";
src = fetchFromGitHub {
owner = "valr";
repo = pname;
rev = version;
- sha256 = "0kw09d678sd3m18fmi4380sl4a2m5lkfmq0kps16cdmq7z80rvaf";
+ sha256 = "0ivm2dzhsa9ir25ry418r2qg2llby9j7a6m3arbvq5c3kaj8m9jr";
};
nativeBuildInputs = [ pkgconfig gettext ];
diff --git a/pkgs/applications/misc/cdrtools/fix-paths.patch b/pkgs/applications/misc/cdrtools/fix-paths.patch
deleted file mode 100644
index f4a54121088..00000000000
--- a/pkgs/applications/misc/cdrtools/fix-paths.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-diff -ru3 cdrtools-3.01-old/DEFAULTS/Defaults.linux cdrtools-3.01/DEFAULTS/Defaults.linux
---- cdrtools-3.01-old/DEFAULTS/Defaults.linux 2015-12-11 17:37:21.505848835 +0300
-+++ cdrtools-3.01/DEFAULTS/Defaults.linux 2015-12-11 17:37:32.155828925 +0300
-@@ -57,7 +57,8 @@
- # Installation config stuff
- #
- ###########################################################################
--INS_BASE= /opt/schily
-+#INS_BASE= /opt/schily
-+INS_BASE= $(out)
- INS_KBASE= /
- INS_RBASE= /
- #
-Only in cdrtools-3.01/DEFAULTS: Defaults.linux.orig
-diff -ru3 cdrtools-3.01-old/RULES/rules.prg cdrtools-3.01/RULES/rules.prg
---- cdrtools-3.01-old/RULES/rules.prg 2015-12-11 17:37:21.500848844 +0300
-+++ cdrtools-3.01/RULES/rules.prg 2015-12-11 17:38:29.890720987 +0300
-@@ -43,10 +43,10 @@
- #
- #SHELL= /bin/sh
-
--LN= /bin/ln
--SYMLINK= /bin/ln -s
--RM= /bin/rm
--MV= /bin/mv
-+LN= ln
-+SYMLINK= ln -s
-+RM= rm
-+MV= mv
- LORDER= lorder
- TSORT= tsort
- CTAGS= vctags
diff --git a/pkgs/applications/misc/cheat/default.nix b/pkgs/applications/misc/cheat/default.nix
index 357dd9bcb8a..a86c1e8bc05 100644
--- a/pkgs/applications/misc/cheat/default.nix
+++ b/pkgs/applications/misc/cheat/default.nix
@@ -1,36 +1,24 @@
-{ stdenv, python3, fetchFromGitHub }:
+{ stdenv, fetchFromGitHub, buildGoModule }:
-with python3.pkgs;
-buildPythonApplication rec {
+buildGoModule rec {
pname = "cheat";
- version = "2.5.1";
-
- propagatedBuildInputs = [ docopt pygments termcolor ];
+ version = "3.0.3";
src = fetchFromGitHub {
owner = "chrisallenlane";
repo = "cheat";
rev = version;
- sha256 = "1i543hvg1yizamfd83bawflfcb500hvc72i59ikck8j1hjk50hsl";
+ sha256 = "19w1admdcgld9vlc4fsyc5d9bi6rmwhr2x2ji43za2vjlk34hnnx";
};
- # no tests available
- doCheck = false;
- postInstall = ''
- install -D man1/cheat.1.gz $out/share/man/man1/cheat.1.gz
- mv $out/${python3.sitePackages}/etc $out/
- mv $out/${python3.sitePackages}/usr/share/* $out/share/
- rm -r $out/${python3.sitePackages}/usr
- '';
+ subPackages = [ "cmd/cheat" ];
- makeWrapperArgs = [
- "--suffix" "CHEAT_PATH" ":" "$out/share/cheat"
- ];
+ modSha256 = "189cqnfl403f4lk7g9v68mwk93ciglqli639dk4x9091lvn5gq5q";
meta = with stdenv.lib; {
- description = "cheat allows you to create and view interactive cheatsheets on the command-line";
+ 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;
+ homepage = "https://github.com/chrisallenlane/cheat";
};
}
diff --git a/pkgs/applications/misc/cherrytree/default.nix b/pkgs/applications/misc/cherrytree/default.nix
index 856853e3b1c..d760cee6374 100644
--- a/pkgs/applications/misc/cherrytree/default.nix
+++ b/pkgs/applications/misc/cherrytree/default.nix
@@ -1,36 +1,23 @@
-{ stdenv, fetchurl, pythonPackages, gettext }:
-
-with stdenv.lib;
-stdenv.mkDerivation rec {
+{ lib, fetchurl, pythonPackages, gettext }:
+pythonPackages.buildPythonApplication rec {
pname = "cherrytree";
- version = "0.38.8";
+ version = "0.38.9";
src = fetchurl {
url = "https://www.giuspen.com/software/${pname}-${version}.tar.xz";
- sha256 = "1ns87xl2sgrf3nha4xkhp0xcxlycqszlp6xdrn95lg6vzm0fa8dg";
+ sha256 = "0xal09ijgxbzvp003s40xbrfnpq3ald1fw8nnpqq3yg7h6g6c5pw";
};
- buildInputs = with pythonPackages;
- [ python gettext wrapPython pygtk dbus-python pygtksourceview ];
+ nativeBuildInputs = [ gettext ];
- pythonPath = with pythonPackages;
- [ pygtk dbus-python pygtksourceview ];
+ propagatedBuildInputs = with pythonPackages; [ pygtk dbus-python pygtksourceview ];
patches = [ ./subprocess.patch ];
- installPhase = ''
- python setup.py install --prefix="$out"
-
- for file in "$out"/bin/*; do
- wrapProgram "$file" \
- --prefix PYTHONPATH : "$(toPythonPath $out):$PYTHONPATH"
- done
- '';
-
doCheck = false;
- meta = {
+ meta = with lib; {
description = "An hierarchical note taking application";
longDescription = ''
Cherrytree is an hierarchical note taking application,
@@ -42,9 +29,8 @@ stdenv.mkDerivation rec {
around your hard drive can be conveniently placed into a
Cherrytree document where you can easily find it.
'';
- homepage = http://www.giuspen.com/cherrytree;
+ homepage = "http://www.giuspen.com/cherrytree";
license = licenses.gpl3;
- platforms = platforms.linux;
- maintainers = [ maintainers.AndersonTorres ];
+ maintainers = with maintainers; [ AndersonTorres ];
};
}
diff --git a/pkgs/applications/misc/cipher/default.nix b/pkgs/applications/misc/cipher/default.nix
new file mode 100644
index 00000000000..ef47e3e0358
--- /dev/null
+++ b/pkgs/applications/misc/cipher/default.nix
@@ -0,0 +1,58 @@
+{ stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, vala
+, pkgconfig
+, pantheon
+, python3
+, gettext
+, glib
+, gtk3
+, libgee
+, xdg_utils
+, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "cipher";
+ version = "2.0.0";
+
+ src = fetchFromGitHub {
+ owner = "arshubham";
+ repo = "cipher";
+ rev = version;
+ sha256 = "0n5aigcyxnl4k52mdmavbxx6afc1ixymn3k3l2ryhyzi5q31x0x3";
+ };
+
+ nativeBuildInputs = [
+ gettext
+ meson
+ ninja
+ vala
+ pkgconfig
+ python3
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ glib
+ gtk3
+ pantheon.granite
+ libgee
+ ];
+
+ postPatch = ''
+ substituteInPlace data/com.github.arshubham.cipher.desktop.in \
+ --replace xdg-open ${xdg_utils}/bin/xdg-open
+ chmod +x post_install.py
+ patchShebangs post_install.py
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A simple application for encoding and decoding text, designed for elementary OS";
+ homepage = "https://github.com/arshubham/cipher";
+ maintainers = with maintainers; [ kjuvi ] ++ pantheon.maintainers;
+ platforms = platforms.linux;
+ license = licenses.gpl3Plus;
+ };
+}
diff --git a/pkgs/applications/misc/clipit/default.nix b/pkgs/applications/misc/clipit/default.nix
index 7a4e25560c7..129516a4498 100644
--- a/pkgs/applications/misc/clipit/default.nix
+++ b/pkgs/applications/misc/clipit/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, intltool, pkgconfig, gtk2, xdotool, hicolor-icon-theme }:
+{ fetchurl, stdenv, intltool, pkgconfig, gtk2, xdotool }:
stdenv.mkDerivation rec {
pname = "clipit";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs = [ pkgconfig ];
- buildInputs = [ intltool gtk2 xdotool hicolor-icon-theme ];
+ buildInputs = [ intltool gtk2 xdotool ];
meta = with stdenv.lib; {
description = "Lightweight GTK Clipboard Manager";
diff --git a/pkgs/applications/misc/cmatrix/default.nix b/pkgs/applications/misc/cmatrix/default.nix
index 9a008a886fa..9f86ec94f18 100644
--- a/pkgs/applications/misc/cmatrix/default.nix
+++ b/pkgs/applications/misc/cmatrix/default.nix
@@ -16,11 +16,12 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "Simulates the falling characters theme from The Matrix movie";
+ license = licenses.gpl3;
longDescription = ''
CMatrix simulates the display from "The Matrix" and is based
on the screensaver from the movie's website.
'';
- homepage = http://www.asty.org/cmatrix/;
+ homepage = https://github.com/abishekvashok/cmatrix;
platforms = ncurses.meta.platforms;
maintainers = [ maintainers.AndersonTorres ];
};
diff --git a/pkgs/applications/misc/cointop/default.nix b/pkgs/applications/misc/cointop/default.nix
index c29d8684c90..29700774219 100644
--- a/pkgs/applications/misc/cointop/default.nix
+++ b/pkgs/applications/misc/cointop/default.nix
@@ -1,17 +1,17 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoPackage, fetchFromGitHub }:
-buildGoModule rec {
+buildGoPackage rec {
pname = "cointop";
- version = "1.3.4";
+ version = "1.4.1";
src = fetchFromGitHub {
owner = "miguelmota";
repo = pname;
rev = version;
- sha256 = "0nw6vzp0c5r8bwnlvgzj4hzdah44p5pp03d2bcr1lkw8np8fy65n";
+ sha256 = "067jsn66xs30d5yz9z8cvpxbvh8a95kllkb2wk134c43bfxy2m34";
};
- modSha256 = "1fg5h689s6r79qa9qsmd8hcvyihfyzlvqrhhk0qyfl528ipi1zwg";
+ goPackagePath = "github.com/miguelmota/cointop";
meta = with lib; {
description = "The fastest and most interactive terminal based UI application for tracking cryptocurrencies";
diff --git a/pkgs/applications/misc/copyq/default.nix b/pkgs/applications/misc/copyq/default.nix
index 2aad4d352c9..825053483a4 100644
--- a/pkgs/applications/misc/copyq/default.nix
+++ b/pkgs/applications/misc/copyq/default.nix
@@ -1,26 +1,26 @@
-{ stdenv, fetchFromGitHub, cmake, qtbase, qtscript, qtwebkit, libXfixes, libXtst
-, qtx11extras, git
+{ lib, mkDerivation, fetchFromGitHub, cmake
+, qtbase, qtscript, qtwebkit, libXfixes, libXtst, qtx11extras, git
, webkitSupport ? true
}:
-stdenv.mkDerivation rec {
+mkDerivation rec {
pname = "CopyQ";
- version = "3.9.0";
+ version = "3.9.2";
src = fetchFromGitHub {
owner = "hluk";
repo = "CopyQ";
rev = "v${version}";
- sha256 = "1l9f0hg2ggy944sjlyiyglln5mjm9fvgmvwp3pnvmmc6mfbmslq3";
+ sha256 = "02zs444i7hnqishs1i6vp8ffjxlxk3xkrw935pdwnwppv9s9v202";
};
nativeBuildInputs = [ cmake ];
buildInputs = [
git qtbase qtscript libXfixes libXtst qtx11extras
- ] ++ stdenv.lib.optional webkitSupport qtwebkit;
+ ] ++ lib.optional webkitSupport qtwebkit;
- meta = with stdenv.lib; {
+ meta = with lib; {
homepage = https://hluk.github.io/CopyQ;
description = "Clipboard Manager with Advanced Features";
license = licenses.gpl3;
diff --git a/pkgs/applications/misc/cura/default.nix b/pkgs/applications/misc/cura/default.nix
index 084881f75d9..702a9c585a3 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.2.1";
+ version = "4.3.0";
src = fetchFromGitHub {
owner = "Ultimaker";
repo = "Cura";
rev = version;
- sha256 = "1qnai8vmgy5lx3lapw96j41i8mw9p6r99i3qzs709l9yzrix6l86";
+ sha256 = "1wf60qr0wqsci5skp55qr8h56s3x5s2icxbn58ia9s4a5hhvnsmf";
};
materials = fetchFromGitHub {
owner = "Ultimaker";
repo = "fdm_materials";
- rev = "4.2.0"; # TODO: change back to `version` after 4.2.1
- sha256 = "17x43v0np58qbdfk3wz1k7i9pl0plndx9gmf7y0n23nl9f1qzb0m";
+ rev = version;
+ sha256 = "141cv1f2pv2pznhgj32zg8bw3kmw9002g6rx16jq7lhclr0x3xls";
};
buildInputs = [ qtbase qtquickcontrols2 qtgraphicaleffects ];
diff --git a/pkgs/applications/misc/cura/lulzbot/curaengine.nix b/pkgs/applications/misc/cura/lulzbot/curaengine.nix
index 90f5f307d85..aad9b9bee89 100644
--- a/pkgs/applications/misc/cura/lulzbot/curaengine.nix
+++ b/pkgs/applications/misc/cura/lulzbot/curaengine.nix
@@ -2,7 +2,7 @@
stdenv.mkDerivation rec {
pname = "curaengine-lulzBot";
- version = "3.6.18";
+ version = "3.6.21";
src = fetchgit {
url = https://code.alephobjects.com/source/curaengine-lulzbot.git;
diff --git a/pkgs/applications/misc/cura/lulzbot/default.nix b/pkgs/applications/misc/cura/lulzbot/default.nix
index 2d32d1895f9..c67fcb74047 100644
--- a/pkgs/applications/misc/cura/lulzbot/default.nix
+++ b/pkgs/applications/misc/cura/lulzbot/default.nix
@@ -1,45 +1,44 @@
-{ lib, callPackage, fetchgit, cmake, jq, python3Packages, qtbase, qtquickcontrols2 }:
+{ lib, mkDerivation, wrapQtAppsHook, callPackage, fetchgit, cmake, jq, python3, qtbase, qtquickcontrols2 }:
let
# admittedly, we're using (printer firmware) blobs when we could compile them ourselves.
- curaBinaryDataVersion = "3.6.18"; # Marlin v2.0.0.144. Keep this accurate wrt. the below.
+ curaBinaryDataVersion = "3.6.21"; # Marlin v2.0.0.174 for Bio, v2.0.0.144 for others.
curaBinaryData = fetchgit {
url = https://code.alephobjects.com/diffusion/CBD/cura-binary-data.git;
- rev = "cdc046494bbfe1f65bfb34659a257eef9a0100a0";
- sha256 = "0v0s036gxdjiglas2yzw95alv60sw3pq5k1zrrhmw9mxr4irrblb";
+ rev = "5c75d0f6c10d8b7a903e2072a48cd1f08059509e";
+ sha256 = "1qdsj6rczwzdwzyr7nz7fnypbphckjrnwl8c9dr6izsxyzs465c4";
};
libarcusLulzbot = callPackage ./libarcus.nix {
- inherit (python3Packages) buildPythonPackage sip pythonOlder;
+ inherit (python3.pkgs) buildPythonPackage sip pythonOlder;
};
libsavitarLulzbot = callPackage ./libsavitar.nix {
- inherit (python3Packages) buildPythonPackage sip pythonOlder;
+ inherit (python3.pkgs) buildPythonPackage sip pythonOlder;
};
- inherit (python3Packages) buildPythonPackage pyqt5 numpy scipy shapely pythonOlder;
+ inherit (python3.pkgs) buildPythonPackage pyqt5 numpy scipy shapely pythonOlder;
curaengine = callPackage ./curaengine.nix {
inherit libarcusLulzbot;
};
uraniumLulzbot = callPackage ./uranium.nix {
inherit callPackage libarcusLulzbot;
- inherit (python3Packages) buildPythonPackage pyqt5 numpy scipy shapely pythonOlder;
+ inherit (python3.pkgs) buildPythonPackage pyqt5 numpy scipy shapely pythonOlder;
};
in
-python3Packages.buildPythonApplication rec {
- name = "cura-lulzbot-${version}";
- version = "3.6.18";
+mkDerivation rec {
+ pname = "cura-lulzbot";
+ version = "3.6.21";
src = fetchgit {
url = https://code.alephobjects.com/source/cura-lulzbot.git;
- rev = "71f1ac5a2b9f535175a3858a565930348358a9ca";
- sha256 = "0by06fpxvdgy858lwhsccbmvkdq67j2s1cz8v6jnrnjrsxk7vzka";
+ rev = "7faeb18604c83004846a02c60cb240708db0034f";
+ sha256 = "10q38s8c8x6xkh1vns4p3iqa5y267vrjh5vq8h55mg1q5001scyq";
};
- format = "other"; # using cmake to build
buildInputs = [ qtbase qtquickcontrols2 ];
# numpy-stl temporarily disabled due to https://code.alephobjects.com/T8415
- propagatedBuildInputs = with python3Packages; [ pyserial requests zeroconf ] ++ [ libsavitarLulzbot uraniumLulzbot libarcusLulzbot ]; # numpy-stl
- nativeBuildInputs = [ cmake python3Packages.wrapPython ];
+ propagatedBuildInputs = with python3.pkgs; [ pyserial requests zeroconf ] ++ [ libsavitarLulzbot uraniumLulzbot libarcusLulzbot ]; # numpy-stl
+ nativeBuildInputs = [ cmake python3.pkgs.wrapPython ];
cmakeFlags = [
"-DURANIUM_DIR=${uraniumLulzbot.src}"
@@ -68,6 +67,11 @@ python3Packages.buildPythonApplication rec {
EOF
'';
+ postFixup = ''
+ wrapPythonPrograms
+ wrapQtApp "$out/bin/cura-lulzbot"
+ '';
+
meta = with lib; {
description = "3D printer / slicing GUI built on top of the Uranium framework";
homepage = https://code.alephobjects.com/diffusion/CURA/;
diff --git a/pkgs/applications/misc/cura/lulzbot/libarcus.nix b/pkgs/applications/misc/cura/lulzbot/libarcus.nix
index 4d32328af8b..733aa27da85 100644
--- a/pkgs/applications/misc/cura/lulzbot/libarcus.nix
+++ b/pkgs/applications/misc/cura/lulzbot/libarcus.nix
@@ -2,13 +2,13 @@
buildPythonPackage {
pname = "libarcus";
- version = "3.6.18";
+ version = "3.6.21";
format = "other";
src = fetchgit {
url = https://code.alephobjects.com/source/arcus.git;
- rev = "c795c0644591703ce04e1fd799fc97b1539031aa";
- sha256 = "1yap9wbqxbjx3kqyqcsldny4mlcm33ywiwpdjlfgs0wjahfg4ip0";
+ rev = "aeda02d7727f45b657afb72cef203283fbf09325";
+ sha256 = "1ak0d4k745sx7paic27was3s4987z9h3czscjs21hxbi6qy83g99";
};
disabled = pythonOlder "3.4.0";
diff --git a/pkgs/applications/misc/cura/lulzbot/libsavitar.nix b/pkgs/applications/misc/cura/lulzbot/libsavitar.nix
index f8ffbf041bd..e6c277959e0 100644
--- a/pkgs/applications/misc/cura/lulzbot/libsavitar.nix
+++ b/pkgs/applications/misc/cura/lulzbot/libsavitar.nix
@@ -3,13 +3,13 @@
buildPythonPackage {
pname = "libsavitar-lulzbot";
name = "libsavitar-lulzbot";
- version = "3.6.18";
+ version = "3.6.21";
format = "other";
src = fetchgit {
url = https://code.alephobjects.com/source/savitar.git;
- rev = "988a26d35b2a1d042f8c38938ccda77ab146af7d";
- sha256 = "146agw3a92azkgs5ahmn2rrck4an78m2r3pcss6ihmb60lx165k7";
+ rev = "ee8ada42c55f54727ce4d275c294ba426d3d8234";
+ sha256 = "1wm5ii3cmni8dk3c65kw4wglpypkdsfpgd480d3hc1r5bqpq0d6j";
};
postPatch = ''
diff --git a/pkgs/applications/misc/cura/lulzbot/uranium-qt512-support.patch b/pkgs/applications/misc/cura/lulzbot/uranium-qt512-support.patch
deleted file mode 100644
index 2c666a98c8f..00000000000
--- a/pkgs/applications/misc/cura/lulzbot/uranium-qt512-support.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/UM/Qt/Bindings/i18nCatalogProxy.py b/UM/Qt/Bindings/i18nCatalogProxy.py
-index 7e2bb16c..cec70dd6 100644
---- a/UM/Qt/Bindings/i18nCatalogProxy.py
-+++ b/UM/Qt/Bindings/i18nCatalogProxy.py
-@@ -86,9 +86,9 @@ class i18nCatalogProxy(QObject): # [CodeStyle: Ultimaker code style requires cla
- # \todo Move this to a more generic place so more things can use it.
- def _wrapFunction(self, engine, this_object, function):
- # JavaScript code that wraps the Python method call in a closure
-- wrap_js = """function(this_object) {{
-+ wrap_js = """(function(this_object) {{
- return function({args}) {{ return this_object.{function}({args}) }}
-- }}"""
-+ }})"""
-
- # Get the function name and argument list.
- function_name = function.__name__
diff --git a/pkgs/applications/misc/cura/lulzbot/uranium.nix b/pkgs/applications/misc/cura/lulzbot/uranium.nix
index 1ad755cdfbd..acffc741d57 100644
--- a/pkgs/applications/misc/cura/lulzbot/uranium.nix
+++ b/pkgs/applications/misc/cura/lulzbot/uranium.nix
@@ -2,15 +2,15 @@
, pyqt5, numpy, scipy, shapely, libarcusLulzbot, doxygen, gettext, pythonOlder }:
buildPythonPackage {
- version = "3.6.18";
+ version = "3.6.21";
pname = "uranium";
name = "uraniumLulzbot";
format = "other";
src = fetchgit {
url = https://code.alephobjects.com/diffusion/U/uranium.git;
- rev = "33df88a7414375ac924ac761113baa48d2ced2b4";
- sha256 = "109cbv7y105crbrzfp70lmcr9n20ap5c97i5qd46fmxbx86yj7f8";
+ rev = "54d911edd2551c5875c554928896122835a0dd6c";
+ sha256 = "04bym3vwikaxw8ab0mymv9sc9n8i7yw5kfsv99ic811g9lzz3j1i";
};
disabled = pythonOlder "3.5.0";
@@ -19,9 +19,6 @@ buildPythonPackage {
propagatedBuildInputs = [ pyqt5 numpy scipy shapely libarcusLulzbot ];
nativeBuildInputs = [ cmake doxygen ];
- # Qt 5.12+ support; see https://code.alephobjects.com/rU70b73ba0a270799b9eacf78e400aa8b8ab3fb2ee
- patches = [ ./uranium-qt512-support.patch ];
-
postPatch = ''
sed -i 's,/python''${PYTHON_VERSION_MAJOR}/dist-packages,/python''${PYTHON_VERSION_MAJOR}.''${PYTHON_VERSION_MINOR}/site-packages,g' CMakeLists.txt
sed -i \
diff --git a/pkgs/applications/misc/cura/plugins.nix b/pkgs/applications/misc/cura/plugins.nix
index bdbf8f24136..20c58ddfb1d 100644
--- a/pkgs/applications/misc/cura/plugins.nix
+++ b/pkgs/applications/misc/cura/plugins.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake, python3Packages }:
+{ stdenv, fetchFromGitHub, fetchpatch, cmake, python3Packages }:
let
@@ -11,8 +11,8 @@ let
src = fetchFromGitHub {
owner = "fieldOfView";
repo = pname;
- rev = "46548cbb8d32d10fe3aee12f272d5d8f34271738";
- sha256 = "0pllba8qx1746pnf5ccbkqn2j6f8hhknpgyrrv244ykvigrlczx0";
+ rev = "a82a42a87bbeb390b80b991afb1a6741c46a3432";
+ sha256 = "0q5yd7pw626qls2ks2y39hb9czd6lgh71jalzl2drwdi6a8mwsfz";
};
nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/misc/curaengine/default.nix b/pkgs/applications/misc/curaengine/default.nix
index 3e4c77aafc6..06c5d158565 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.2.0";
+ version = "4.3.0";
src = fetchFromGitHub {
owner = "Ultimaker";
repo = "CuraEngine";
rev = version;
- sha256 = "13hbzsx4fwrbwviyhh8z04gs9b0m8fjl8a31ci7gr2dfdmgjs6pd";
+ sha256 = "074qcaj1v2ri9wppx9lr066nlidkrsp9m1rrrk2hs2b61x0340ff";
};
nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/misc/dbeaver/default.nix b/pkgs/applications/misc/dbeaver/default.nix
index 2e821701216..e3d9e8be0b2 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 = "6.1.5";
+ version = "6.2.5";
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 = "0lkycm1152wd56i1hjq7q3sd05h51fyz99qr2n65lwi33vz2qk9m";
+ sha256 = "1bg5cq7ivf263mjr8g9qwdhp9x0gm04nqiya4fyw0k33yiab85zn";
};
installPhase = ''
diff --git a/pkgs/applications/misc/ddgr/default.nix b/pkgs/applications/misc/ddgr/default.nix
index 3cbb091a4e2..9b877c2594b 100644
--- a/pkgs/applications/misc/ddgr/default.nix
+++ b/pkgs/applications/misc/ddgr/default.nix
@@ -1,20 +1,26 @@
{stdenv, fetchFromGitHub, python3}:
stdenv.mkDerivation rec {
- version = "1.6";
+ version = "1.7";
pname = "ddgr";
src = fetchFromGitHub {
owner = "jarun";
repo = "ddgr";
rev = "v${version}";
- sha256 = "04ybbjsf9hpn2p5cjjm15cwvv0mwrmdi19iifrym6ps3rmll0p3c";
+ sha256 = "0kcl8z9w8iwn3pxay1pfahhw6vs2l1dp60yfv3i19in4ac9va7m0";
};
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/"
diff --git a/pkgs/applications/misc/diff-pdf/default.nix b/pkgs/applications/misc/diff-pdf/default.nix
index 0016f89746d..af47afcc601 100644
--- a/pkgs/applications/misc/diff-pdf/default.nix
+++ b/pkgs/applications/misc/diff-pdf/default.nix
@@ -7,15 +7,15 @@ let
else
[ wxGTK ];
in
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
pname = "diff-pdf";
- version = "2017-12-30";
+ version = "0.3";
src = fetchFromGitHub {
owner = "vslavik";
repo = "diff-pdf";
- rev = "c4d67226ec4c29b30a7399e75f80636ff8a6f9fc";
- sha256 = "1c3ig7ckrg37p5vzvgjnsfdzdad328wwsx0r31lbs1d8pkjkgq3m";
+ rev = "v${version}";
+ sha256 = "0vzvyjpk6m89zs6j1dq85f93n2b1i6akn2g0z9qhagjd2pds920i";
};
nativeBuildInputs = [ autoconf automake pkgconfig ];
@@ -24,9 +24,10 @@ stdenv.mkDerivation {
preConfigure = "./bootstrap";
meta = with stdenv.lib; {
- homepage = http://vslavik.github.io/diff-pdf;
+ homepage = "https://vslavik.github.io/diff-pdf/";
description = "Simple tool for visually comparing two PDF files";
license = licenses.gpl2;
+ platforms = platforms.all;
maintainers = with maintainers; [ dtzWill ];
};
}
diff --git a/pkgs/applications/misc/digitalbitbox/default.nix b/pkgs/applications/misc/digitalbitbox/default.nix
index a4f6b1ce988..a6ae4530655 100644
--- a/pkgs/applications/misc/digitalbitbox/default.nix
+++ b/pkgs/applications/misc/digitalbitbox/default.nix
@@ -138,5 +138,6 @@ in stdenv.mkDerivation rec {
vidbina
];
platforms = platforms.linux;
+ broken = true;
};
}
diff --git a/pkgs/applications/misc/djvulibre/default.nix b/pkgs/applications/misc/djvulibre/default.nix
index 0b685e04a6f..182ab51dbc2 100644
--- a/pkgs/applications/misc/djvulibre/default.nix
+++ b/pkgs/applications/misc/djvulibre/default.nix
@@ -1,22 +1,34 @@
-{ stdenv, fetchurl, libjpeg, libtiff, librsvg, libiconv }:
+{ stdenv
+, fetchurl
+, libjpeg
+, libtiff
+, librsvg
+, libiconv
+}:
stdenv.mkDerivation rec {
- name = "djvulibre-3.5.27";
+ pname = "djvulibre";
+ version = "3.5.27";
src = fetchurl {
- url = "mirror://sourceforge/djvu/${name}.tar.gz";
+ url = "mirror://sourceforge/djvu/${pname}-${version}.tar.gz";
sha256 = "0psh3zl9dj4n4r3lx25390nx34xz0bg0ql48zdskhq354ljni5p6";
};
outputs = [ "bin" "dev" "out" ];
- buildInputs = [ libjpeg libtiff librsvg libiconv ];
+ buildInputs = [
+ libjpeg
+ libtiff
+ librsvg
+ libiconv
+ ];
meta = with stdenv.lib; {
- description = "A library and viewer for the DJVU file format for scanned images";
- homepage = http://djvu.sourceforge.net;
+ description = "The big set of CLI tools to make/modify/optimize/show/export DJVU files";
+ homepage = "http://djvu.sourceforge.net";
license = licenses.gpl2;
- maintainers = with maintainers; [ ];
+ maintainers = with maintainers; [ Anton-Latukha ];
platforms = platforms.all;
};
}
diff --git a/pkgs/applications/misc/eaglemode/default.nix b/pkgs/applications/misc/eaglemode/default.nix
index ae83802a7b4..5d99cbaa988 100644
--- a/pkgs/applications/misc/eaglemode/default.nix
+++ b/pkgs/applications/misc/eaglemode/default.nix
@@ -3,11 +3,11 @@ librsvg, glib, gtk2, libXext, libXxf86vm, poppler, xineLib, ghostscript, makeWra
stdenv.mkDerivation rec {
pname = "eaglemode";
- version = "0.94.1";
+ version = "0.94.2";
src = fetchurl {
url = "mirror://sourceforge/eaglemode/${pname}-${version}.tar.bz2";
- sha256 = "0mpnk0fzy02jxbafipkdkj48m6k38h42j599gw4sdnag7ymlms89";
+ sha256 = "10zxih7gmyhq0az1mnsw2x563l4bbwcns794s4png8rf4d6hjszm";
};
nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/misc/electron-cash/default.nix b/pkgs/applications/misc/electron-cash/default.nix
index 9607f428ab9..d0429d135d7 100644
--- a/pkgs/applications/misc/electron-cash/default.nix
+++ b/pkgs/applications/misc/electron-cash/default.nix
@@ -2,13 +2,13 @@
python3Packages.buildPythonApplication rec {
pname = "electron-cash";
- version = "4.0.7";
+ version = "4.0.10";
src = fetchurl {
url = "https://electroncash.org/downloads/${version}/win-linux/Electron-Cash-${version}.tar.gz";
# Verified using official SHA-1 and signature from
# https://github.com/fyookball/keys-n-hashes
- sha256 = "d63ef2d52cff0b821b745067d752fd0c7f2902fa23eaf8e9392c54864cae5c77";
+ sha256 = "48270e12956a2f4ef4d2b0cb60611e47f136b734a3741dab176542a32ae59ee5";
};
propagatedBuildInputs = with python3Packages; [
@@ -56,6 +56,10 @@ python3Packages.buildPythonApplication rec {
--replace "Exec=electron-cash" "Exec=$out/bin/electron-cash"
'';
+ postFixup = ''
+ wrapQtApp $out/bin/electron-cash
+ '';
+
doInstallCheck = true;
installCheckPhase = ''
$out/bin/electron-cash help >/dev/null
diff --git a/pkgs/applications/misc/electrum/dash.nix b/pkgs/applications/misc/electrum/dash.nix
index 8ba562de1cb..fc5192bb5e4 100644
--- a/pkgs/applications/misc/electrum/dash.nix
+++ b/pkgs/applications/misc/electrum/dash.nix
@@ -42,5 +42,6 @@ python2Packages.buildPythonApplication rec {
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 c48d458567d..0ebeb1beffa 100644
--- a/pkgs/applications/misc/electrum/default.nix
+++ b/pkgs/applications/misc/electrum/default.nix
@@ -88,7 +88,7 @@ python3Packages.buildPythonApplication {
--replace ${libsecp256k1_name} ${secp256k1}/lib/libsecp256k1${stdenv.hostPlatform.extensions.sharedLibrary}
'' + (if enableQt then ''
substituteInPlace ./electrum/qrscanner.py \
- --replace ${libzbar_name} ${zbar}/lib/libzbar${stdenv.hostPlatform.extensions.sharedLibrary}
+ --replace ${libzbar_name} ${zbar.lib}/lib/libzbar${stdenv.hostPlatform.extensions.sharedLibrary}
'' else ''
sed -i '/qdarkstyle/d' contrib/requirements/requirements.txt
'');
diff --git a/pkgs/applications/misc/electrum/ltc.nix b/pkgs/applications/misc/electrum/ltc.nix
index a5e4bd74a6e..88f44c6cc85 100644
--- a/pkgs/applications/misc/electrum/ltc.nix
+++ b/pkgs/applications/misc/electrum/ltc.nix
@@ -5,7 +5,7 @@
python3Packages.buildPythonApplication rec {
pname = "electrum-ltc";
- version = "3.1.3.1";
+ version = "3.3.8.1";
src = fetchurl {
url = "https://electrum-ltc.org/download/Electrum-LTC-${version}.tar.gz";
@@ -51,7 +51,7 @@ python3Packages.buildPythonApplication rec {
homepage = https://electrum-ltc.org/;
license = licenses.mit;
platforms = platforms.linux;
- maintainers = with maintainers; [ asymmetric ];
+ maintainers = with maintainers; [ ];
};
}
diff --git a/pkgs/applications/misc/elogind/default.nix b/pkgs/applications/misc/elogind/default.nix
new file mode 100644
index 00000000000..c5978dac2d5
--- /dev/null
+++ b/pkgs/applications/misc/elogind/default.nix
@@ -0,0 +1,82 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, meson
+, ninja
+, m4
+, gperf
+, getent
+, libcap
+, gettext
+, pkgconfig
+, udev
+, eudev
+, libxslt
+, python3
+, docbook5
+, docbook_xsl
+, docbook_xsl_ns
+, docbook_xml_dtd_42
+, docbook_xml_dtd_45
+
+# Defaulting to false because usually the rationale for using elogind is to
+# use it in situation where a systemd dependency does not work (especially
+# when building with musl, which elogind explicitly supports).
+, enableSystemd ? false
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "elogind";
+ version = "241.3";
+
+ src = fetchFromGitHub {
+ owner = "elogind";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0jpb55prqq5cm3w2gy9766cbaqknjvbrbniyshb8bz1q31vf4jlq";
+ };
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ m4
+ pkgconfig
+ gperf
+ getent
+ libcap
+ gettext
+ libxslt.bin # xsltproc
+ docbook5 docbook_xsl docbook_xsl_ns docbook_xml_dtd_42 docbook_xml_dtd_45 # needed for docbook without Internet
+ (python3.withPackages (p: with p; [ lxml ])) # fixes: man/meson.build:111:0: ERROR: Could not execute command "/build/source/tools/xml_helper.py".
+ ];
+
+ buildInputs =
+ if enableSystemd then [ udev ] else [ eudev ];
+
+ # Inspired by the systemd `preConfigure`.
+ # Conceptually we should patch all files required during the build, but not scripts
+ # supposed to run at run-time of the software (important for cross-compilation).
+ # This package seems to have mostly scripts that run at build time.
+ preConfigure = ''
+ for dir in tools src/test; do
+ patchShebangs $dir
+ done
+
+ patchShebangs src/basic/generate-*.{sh,py}
+ '';
+
+ mesonFlags = [
+ "-Drootprefix=${placeholder "out"}"
+ "-Dsysconfdir=${placeholder "out"}/etc"
+ ];
+
+ meta = {
+ 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;
+ maintainers = with maintainers; [ nh2 ];
+ };
+}
diff --git a/pkgs/applications/misc/epr/default.nix b/pkgs/applications/misc/epr/default.nix
new file mode 100644
index 00000000000..f67c15f0a99
--- /dev/null
+++ b/pkgs/applications/misc/epr/default.nix
@@ -0,0 +1,21 @@
+{ lib, python3Packages, fetchFromGitHub }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "epr";
+ version = "2.3.0b";
+
+ src = fetchFromGitHub {
+ owner = "wustho";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1a6md3015284hzmx0sby5kl59p7lwv73sq7sid35vrr15zrl0aw7";
+ };
+
+ meta = with lib; {
+ description = "CLI Epub Reader";
+ homepage = "https://github.com/wustho/epr";
+ license = licenses.mit;
+ maintainers = [ maintainers.filalex77 ];
+ platforms = platforms.all;
+ };
+}
diff --git a/pkgs/applications/misc/et/default.nix b/pkgs/applications/misc/et/default.nix
index d8b355efe86..2cf8813aac4 100644
--- a/pkgs/applications/misc/et/default.nix
+++ b/pkgs/applications/misc/et/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "et";
- version = "0.1.1";
+ version = "0.1.2";
src = fetchFromGitHub {
owner = "geistesk";
repo = "et";
rev = version;
- sha256 = "167w9qwfpd63rgy0xmkkkh5krmd91q42c3ijy3j099krgdfbb9bc";
+ sha256 = "0i0lgmnly8n7y4y6pb10pxgxyz8s5zk26k8z1g1578v1wan01lnq";
};
buildInputs = [ libnotify gdk-pixbuf ];
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "Minimal libnotify-based (egg) timer";
- homepage = https://github.com/geistesk/et;
+ homepage = "https://github.com/geistesk/et";
license = licenses.gpl3;
platforms = platforms.unix;
maintainers = with maintainers; [ geistesk ];
diff --git a/pkgs/applications/misc/exercism/default.nix b/pkgs/applications/misc/exercism/default.nix
index 6d04cef76ce..a071761599a 100644
--- a/pkgs/applications/misc/exercism/default.nix
+++ b/pkgs/applications/misc/exercism/default.nix
@@ -1,19 +1,19 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
-buildGoPackage rec {
+buildGoModule rec {
pname = "exercism";
- version = "3.0.11";
-
- goPackagePath = "github.com/exercism/cli";
+ version = "3.0.13";
src = fetchFromGitHub {
owner = "exercism";
repo = "cli";
rev = "v${version}";
- sha256 = "1wg23bvibsk6j4iqwyw35wl9plfwdqxiql81zci7r1x4d5cp26av";
+ sha256 = "17gvz9a0sn4p36hf4l77bxhhfipf4x998iay31layqwbnzmb4xy7";
};
- goDeps = ./deps.nix;
+ modSha256 = "0pg0hxrr6jjd03wbjn5y65x02md3h352mnm1gr6vyiv7hn4ws14m";
+
+ subPackages = [ "./exercism" ];
meta = with stdenv.lib; {
inherit (src.meta) homepage;
diff --git a/pkgs/applications/misc/exercism/deps.nix b/pkgs/applications/misc/exercism/deps.nix
deleted file mode 100644
index 10a6baa2241..00000000000
--- a/pkgs/applications/misc/exercism/deps.nix
+++ /dev/null
@@ -1,201 +0,0 @@
-# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
-[
- {
- goPackagePath = "github.com/blang/semver";
- fetch = {
- type = "git";
- url = "https://github.com/blang/semver";
- rev = "2ee87856327ba09384cabd113bc6b5d174e9ec0f";
- sha256 = "13ws259bwcibkclbr82ilhk6zadm63kxklxhk12wayklj8ghhsmy";
- };
- }
- {
- goPackagePath = "github.com/davecgh/go-spew";
- fetch = {
- type = "git";
- url = "https://github.com/davecgh/go-spew";
- rev = "346938d642f2ec3594ed81d874461961cd0faa76";
- sha256 = "0d4jfmak5p6lb7n2r6yvf5p1zcw0l8j74kn55ghvr7zr7b7axm6c";
- };
- }
- {
- goPackagePath = "github.com/fsnotify/fsnotify";
- fetch = {
- type = "git";
- url = "https://github.com/fsnotify/fsnotify";
- rev = "629574ca2a5df945712d3079857300b5e4da0236";
- sha256 = "06wfg1mmzjj04z7d0q1x2fai9k6hm957brngsaf02fa9a3qqanv3";
- };
- }
- {
- goPackagePath = "github.com/hashicorp/hcl";
- fetch = {
- type = "git";
- url = "https://github.com/hashicorp/hcl";
- rev = "392dba7d905ed5d04a5794ba89f558b27e2ba1ca";
- sha256 = "1rfm67kma2hpakabf7hxlj196jags4rpjpcirwg4kan4g9b6j0kb";
- };
- }
- {
- goPackagePath = "github.com/inconshreveable/go-update";
- fetch = {
- type = "git";
- url = "https://github.com/inconshreveable/go-update";
- rev = "8152e7eb6ccf8679a64582a66b78519688d156ad";
- sha256 = "07czhspakpi7al004rm669cmf4h5l0vnygsm11280nkfn2zxqdi3";
- };
- }
- {
- goPackagePath = "github.com/inconshreveable/mousetrap";
- fetch = {
- type = "git";
- url = "https://github.com/inconshreveable/mousetrap";
- rev = "76626ae9c91c4f2a10f34cad8ce83ea42c93bb75";
- sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152";
- };
- }
- {
- goPackagePath = "github.com/magiconair/properties";
- fetch = {
- type = "git";
- url = "https://github.com/magiconair/properties";
- rev = "be5ece7dd465ab0765a9682137865547526d1dfb";
- sha256 = "0spk58x9b0hj29cw6wy6rlvc6s9xk4r0gmlxgsc194pkzqcg1my8";
- };
- }
- {
- goPackagePath = "github.com/mitchellh/mapstructure";
- fetch = {
- type = "git";
- url = "https://github.com/mitchellh/mapstructure";
- rev = "d0303fe809921458f417bcf828397a65db30a7e4";
- sha256 = "1fjwi5ghc1ibyx93apz31n4hj6gcq1hzismpdfbg2qxwshyg0ya8";
- };
- }
- {
- goPackagePath = "github.com/pelletier/go-buffruneio";
- fetch = {
- type = "git";
- url = "https://github.com/pelletier/go-buffruneio";
- rev = "c37440a7cf42ac63b919c752ca73a85067e05992";
- sha256 = "0l83p1gg6g5mmhmxjisrhfimhbm71lwn1r2w7d6siwwqm9q08sd2";
- };
- }
- {
- goPackagePath = "github.com/pelletier/go-toml";
- fetch = {
- type = "git";
- url = "https://github.com/pelletier/go-toml";
- rev = "5ccdfb18c776b740aecaf085c4d9a2779199c279";
- sha256 = "1jl44j58y62rhnwkzw3mvcj725gdyzs45pq4ga81qqxwqxs3czsq";
- };
- }
- {
- goPackagePath = "github.com/pmezard/go-difflib";
- fetch = {
- type = "git";
- url = "https://github.com/pmezard/go-difflib";
- rev = "792786c7400a136282c1664665ae0a8db921c6c2";
- sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
- };
- }
- {
- goPackagePath = "github.com/spf13/afero";
- fetch = {
- type = "git";
- url = "https://github.com/spf13/afero";
- rev = "9be650865eab0c12963d8753212f4f9c66cdcf12";
- sha256 = "12dhh6d07304lsjv7c4p95hkip0hnshqhwivdw39pbypgg0p8y34";
- };
- }
- {
- goPackagePath = "github.com/spf13/cast";
- fetch = {
- type = "git";
- url = "https://github.com/spf13/cast";
- rev = "acbeb36b902d72a7a4c18e8f3241075e7ab763e4";
- sha256 = "0w25s6gjbbwv47b9208hysyqqphd6pib3d2phg24mjy4wigkm050";
- };
- }
- {
- goPackagePath = "github.com/spf13/cobra";
- fetch = {
- type = "git";
- url = "https://github.com/spf13/cobra";
- rev = "b26b538f693051ac6518e65672de3144ce3fbedc";
- sha256 = "0pm3qlw35xygz9zz7hizlmin76wrfac8vsxvsd9i0zpnijbkmjv6";
- };
- }
- {
- goPackagePath = "github.com/spf13/jwalterweatherman";
- fetch = {
- type = "git";
- url = "https://github.com/spf13/jwalterweatherman";
- rev = "0efa5202c04663c757d84f90f5219c1250baf94f";
- sha256 = "1sfd72zvw9lrzfc8haswhqf93bzm20q4yhbynm6n5fnnc56zn4gs";
- };
- }
- {
- goPackagePath = "github.com/spf13/pflag";
- fetch = {
- type = "git";
- url = "https://github.com/spf13/pflag";
- rev = "e57e3eeb33f795204c1ca35f56c44f83227c6e66";
- sha256 = "13mhx4i913jil32j295m3a36jzvq1y64xig0naadiz7q9ja011r2";
- };
- }
- {
- goPackagePath = "github.com/spf13/viper";
- fetch = {
- type = "git";
- url = "https://github.com/spf13/viper";
- rev = "15738813a09db5c8e5b60a19d67d3f9bd38da3a4";
- sha256 = "1mjfzg8zvnxckaq6l8gw99i2msrfqn9yr04dc3b7kd5bpxi6zr4v";
- };
- }
- {
- goPackagePath = "github.com/stretchr/testify";
- fetch = {
- type = "git";
- url = "https://github.com/stretchr/testify";
- rev = "69483b4bd14f5845b5a1e55bca19e954e827f1d0";
- sha256 = "11lzrwkdzdd8yyag92akncc008h2f9d1bpc489mxiwp0jrmz4ivb";
- };
- }
- {
- goPackagePath = "golang.org/x/net";
- fetch = {
- type = "git";
- url = "https://go.googlesource.com/net";
- rev = "f5079bd7f6f74e23c4d65efa0f4ce14cbd6a3c0f";
- sha256 = "0sck2mq4bwyh5iv51jpbywzwhc47ci1q5yd7pqr68xnsz7b3b55k";
- };
- }
- {
- goPackagePath = "golang.org/x/sys";
- fetch = {
- type = "git";
- url = "https://go.googlesource.com/sys";
- rev = "d8f5ea21b9295e315e612b4bcf4bedea93454d4d";
- sha256 = "1gy2y20glqqqcmmrcx2wrvk4h74h8im1nxvzi91i1mxjk7p185mv";
- };
- }
- {
- goPackagePath = "golang.org/x/text";
- fetch = {
- type = "git";
- url = "https://go.googlesource.com/text";
- rev = "3bd178b88a8180be2df394a1fbb81313916f0e7b";
- sha256 = "137pp3gz8ll08q0q434dn6472bbkv81h72qqqm9idhf7cc6f51w9";
- };
- }
- {
- goPackagePath = "gopkg.in/yaml.v2";
- fetch = {
- type = "git";
- url = "https://github.com/go-yaml/yaml";
- rev = "25c4ec802a7d637f88d584ab26798e94ad14c13b";
- sha256 = "053mknsl3xhjscmd552005xnwbfcg0z2iphvbvj3wi0w3pvmlw44";
- };
- }
-]
\ No newline at end of file
diff --git a/pkgs/applications/misc/fetchmail/default.nix b/pkgs/applications/misc/fetchmail/default.nix
index bbbf1a0aff9..6c4ecf6fa39 100644
--- a/pkgs/applications/misc/fetchmail/default.nix
+++ b/pkgs/applications/misc/fetchmail/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
configureFlags = [ "--with-ssl=${openssl.dev}" ];
meta = {
- homepage = http://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/firestarter/default.nix b/pkgs/applications/misc/firestarter/default.nix
index e93d0ab69a7..82bcf5a4aa0 100644
--- a/pkgs/applications/misc/firestarter/default.nix
+++ b/pkgs/applications/misc/firestarter/default.nix
@@ -1,21 +1,21 @@
-{ stdenv, fetchFromGitHub, python3, cudatoolkit,
+{ stdenv, fetchFromGitHub, glibc, python3, cudatoolkit,
withCuda ? true
}:
with stdenv.lib;
stdenv.mkDerivation rec {
pname = "firestarter";
- version = "1.7.3";
+ version = "1.7.4";
src = fetchFromGitHub {
owner = "tud-zih-energy";
repo = "FIRESTARTER";
rev = "v${version}";
- sha256 = "1gc7kmzx9nw22lyfmpyz72p974jf1hvw5nvszcaq7x6h8cz9ip15";
+ sha256 = "161mg0h1hvp6bxfjdhyfqrljvphys896mfd36254rbgzxm38ibi7";
};
nativeBuildInputs = [ python3 ];
- buildInputs = optionals withCuda [ cudatoolkit ];
+ buildInputs = [ glibc.static ] ++ optionals withCuda [ cudatoolkit ];
preBuild = ''
mkdir -p build
cd build
diff --git a/pkgs/applications/misc/font-manager/default.nix b/pkgs/applications/misc/font-manager/default.nix
index 5df34c84f09..edb47e11dd7 100644
--- a/pkgs/applications/misc/font-manager/default.nix
+++ b/pkgs/applications/misc/font-manager/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchFromGitHub, meson, ninja, gettext, python3,
- pkgconfig, libxml2, json-glib , sqlite, itstool, librsvg,
+{ stdenv, fetchFromGitHub, meson, ninja, gettext, python3, fetchpatch,
+ pkgconfig, libxml2, json-glib , sqlite, itstool, librsvg, yelp-tools,
vala, gtk3, gnome3, desktop-file-utils, wrapGAppsHook, gobject-introspection
}:
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
itstool
desktop-file-utils
vala
- gnome3.yelp-tools
+ yelp-tools
wrapGAppsHook
# For https://github.com/FontManager/master/blob/master/lib/unicode/meson.build
gobject-introspection
@@ -42,6 +42,15 @@ stdenv.mkDerivation rec {
"-Ddisable_pycompile=true"
];
+ patches = [
+ # fix build with Vala 0.46
+ (fetchpatch {
+ url = "https://github.com/FontManager/font-manager/commit/c73b40de11f376f4515a0edfe97fb3721a264b35.patch";
+ sha256 = "0lacwsifgvda2r3z6j2a0svdqr6mgav7zkvih35xa8155y8wfpnw";
+ excludes = [ "fedora/font-manager.spec" ];
+ })
+ ];
+
postPatch = ''
chmod +x meson_post_install.py
patchShebangs meson_post_install.py
@@ -60,7 +69,6 @@ stdenv.mkDerivation rec {
Font Manager is NOT a professional-grade font management solution.
'';
license = licenses.gpl3;
- repositories.git = https://github.com/FontManager/master;
platforms = platforms.unix;
maintainers = [ maintainers.romildo ];
};
diff --git a/pkgs/applications/misc/formatter/default.nix b/pkgs/applications/misc/formatter/default.nix
new file mode 100644
index 00000000000..26478c7f2ed
--- /dev/null
+++ b/pkgs/applications/misc/formatter/default.nix
@@ -0,0 +1,71 @@
+{ stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, vala
+, pkgconfig
+, pantheon
+, python3
+, substituteAll
+, glib
+, gtk3
+, dosfstools
+, e2fsprogs
+, exfat
+, hfsprogs
+, ntfs3g
+, libgee
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "formatter";
+ version = "0.3.1";
+
+ src = fetchFromGitHub {
+ owner = "Djaler";
+ repo = "Formatter";
+ rev = version;
+ sha256 = "1ghxd2h0pklhlrjslfr46vza1kjsm3mr0sdzzjiqi9jd6hddnk7i";
+ };
+
+ patches = [
+ (substituteAll {
+ src = ./fix-paths.patch;
+ ext4 = "${e2fsprogs}/bin/mkfs.ext4";
+ exfat = "${exfat}/bin/mkfs.exfat";
+ fat = "${dosfstools}/bin/mkfs.fat";
+ ntfs = "${ntfs3g}/bin/mkfs.ntfs";
+ hfsplus = "${hfsprogs}/bin/mkfs.hfsplus";
+ })
+ ];
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ vala
+ pkgconfig
+ python3
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ glib
+ gtk3
+ libgee
+ pantheon.granite
+ ];
+
+ postPatch = ''
+ chmod +x meson/post_install.py
+ patchShebangs meson/post_install.py
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A simple formatter designed for elementary OS";
+ homepage = "https://github.com/Djaler/Formatter";
+ maintainers = with maintainers; [ kjuvi ] ++ pantheon.maintainers;
+ platforms = platforms.linux;
+ license = licenses.lgpl2Plus;
+ };
+}
diff --git a/pkgs/applications/misc/formatter/fix-paths.patch b/pkgs/applications/misc/formatter/fix-paths.patch
new file mode 100644
index 00000000000..67c1d2b43cc
--- /dev/null
+++ b/pkgs/applications/misc/formatter/fix-paths.patch
@@ -0,0 +1,53 @@
+diff --git a/src/Objects/DeviceFormatter.vala b/src/Objects/DeviceFormatter.vala
+index cf6a3b8..0de10a9 100644
+--- a/src/Objects/DeviceFormatter.vala
++++ b/src/Objects/DeviceFormatter.vala
+@@ -62,42 +62,42 @@ namespace Formatter {
+ string drive_identifier = drive.get_identifier ("unix-device");
+ switch (filesystem) {
+ case Formatter.Filesystems.EXT4:
+- spawn_args = {"pkexec", "mkfs.ext4", drive_identifier, "-F"};
++ spawn_args = {"pkexec", "@ext4@", drive_identifier, "-F"};
+ if (label != "") {
+ spawn_args += "-L";
+ spawn_args += label;
+ }
+ break;
+ case Formatter.Filesystems.EXFAT:
+- spawn_args = {"pkexec", "mkfs.exfat", drive_identifier};
++ spawn_args = {"pkexec", "@exfat@", drive_identifier};
+ if (label != "") {
+ spawn_args += "-n";
+ spawn_args += label;
+ }
+ break;
+ case Formatter.Filesystems.FAT16:
+- spawn_args = {"pkexec", "mkfs.fat", "-F16", "-I", drive_identifier};
++ spawn_args = {"pkexec", "@fat@", "-F16", "-I", drive_identifier};
+ if (label != "") {
+ spawn_args += "-n";
+ spawn_args += label;
+ }
+ break;
+ case Formatter.Filesystems.FAT32:
+- spawn_args = {"pkexec", "mkfs.fat", "-F32", "-I", drive_identifier};
++ spawn_args = {"pkexec", "@fat@", "-F32", "-I", drive_identifier};
+ if (label != "") {
+ spawn_args += "-n";
+ spawn_args += label;
+ }
+ break;
+ case Formatter.Filesystems.NTFS:
+- spawn_args = {"pkexec", "mkfs.ntfs", drive_identifier, "-f", "-F"};
++ spawn_args = {"pkexec", "@ntfs@", drive_identifier, "-f", "-F"};
+ if (label != "") {
+ spawn_args += "-L";
+ spawn_args += label;
+ }
+ break;
+ case Formatter.Filesystems.HFS_PLUS:
+- spawn_args = {"pkexec", "mkfs.hfsplus", drive_identifier};
++ spawn_args = {"pkexec", "@hfsplus@", drive_identifier};
+ if (label != "") {
+ spawn_args += "-v";
+ spawn_args += label;
diff --git a/pkgs/applications/misc/gallery-dl/default.nix b/pkgs/applications/misc/gallery-dl/default.nix
index 169c5c11b8c..b1cd6a36e08 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.10.3";
+ version = "1.10.6";
src = python3Packages.fetchPypi {
inherit pname version;
- sha256 = "1ippn0zbjy69n178vh4wgyzy6723ynvj2w23mzqw7v2mzcvkhmdz";
+ sha256 = "0jbfp072rnb3pkqp10xds57bnlcn87vqjaz68nhpzkwvwhs3hr4w";
};
doCheck = false;
diff --git a/pkgs/applications/misc/gcalcli/default.nix b/pkgs/applications/misc/gcalcli/default.nix
index 6f380114a27..8381f182e5d 100644
--- a/pkgs/applications/misc/gcalcli/default.nix
+++ b/pkgs/applications/misc/gcalcli/default.nix
@@ -5,13 +5,13 @@ with python3.pkgs;
buildPythonApplication rec {
pname = "gcalcli";
- version = "4.1.1";
+ version = "4.2.0";
src = fetchFromGitHub {
owner = "insanum";
repo = pname;
rev = "v${version}";
- sha256 = "1qlmslywm4dfimggly4p0ckn2gj165mq1p0wkry9jpb3sg1m5fdf";
+ sha256 = "0746vmhfclkpkqnyaidxid2z20mlv86hv0pjxy1qglrja91vkd72";
};
postPatch = lib.optionalString stdenv.isLinux ''
diff --git a/pkgs/applications/misc/geoipupdate/default.nix b/pkgs/applications/misc/geoipupdate/default.nix
new file mode 100644
index 00000000000..57060179473
--- /dev/null
+++ b/pkgs/applications/misc/geoipupdate/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "geoipupdate";
+ version = "4.1.5";
+
+ src = fetchFromGitHub {
+ owner = "maxmind";
+ repo = "geoipupdate";
+ rev = "v${version}";
+ sha256 = "1k0bmsqgw35sdmaafinlr4qd5910fi598i8irxrz11394d3c8giv";
+ };
+
+ modSha256 = "0mk6zp6byq3jc6wipx53bg5igry114klq5w8isc0z6r63zjsk6f6";
+
+ meta = with stdenv.lib; {
+ description = "Automatic GeoIP database updater";
+ homepage = "https://github.com/maxmind/geoipupdate";
+ license = with licenses; [ asl20 ];
+ platforms = platforms.all;
+ maintainers = with maintainers; [ das_j ];
+ };
+}
diff --git a/pkgs/applications/misc/girara/default.nix b/pkgs/applications/misc/girara/default.nix
index c2b7487cd72..6bfb4907807 100644
--- a/pkgs/applications/misc/girara/default.nix
+++ b/pkgs/applications/misc/girara/default.nix
@@ -3,13 +3,13 @@
stdenv.mkDerivation rec {
pname = "girara";
- version = "0.3.2";
+ version = "0.3.3";
outputs = [ "out" "dev" ];
src = fetchurl {
- url = "https://pwmt.org/projects/girara/download/${pname}-${version}.tar.xz";
- sha256 = "1kc6n1mxjxa7wvwnqy94qfg8l9jvx9qrvrr2kc7m4g0z20x3a00p";
+ url = "https://git.pwmt.org/pwmt/${pname}/-/archive/${version}/${pname}-${version}.tar.gz";
+ sha256 = "13vr62kkkqs2xsrmsn114n6c6084ix1qyjksczqsc3s2y3bdsmj4";
};
nativeBuildInputs = [ meson ninja pkgconfig gettext check dbus xvfb_run ];
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
'';
meta = with stdenv.lib; {
- homepage = https://pwmt.org/projects/girara/;
+ homepage = "https://git.pwmt.org/pwmt/girara";
description = "User interface library";
longDescription = ''
girara is a library that implements a GTK based VIM-like user interface
diff --git a/pkgs/applications/misc/glom/default.nix b/pkgs/applications/misc/glom/default.nix
index 9e71837c0f5..b8f13d01424 100644
--- a/pkgs/applications/misc/glom/default.nix
+++ b/pkgs/applications/misc/glom/default.nix
@@ -30,6 +30,7 @@
, postgresql
, gnome3
, gobject-introspection
+, yelp-tools
, wrapGAppsHook
}:
@@ -67,7 +68,7 @@ in stdenv.mkDerivation rec {
libtool
mm-common
intltool
- gnome3.yelp-tools
+ yelp-tools
itstool
doxygen
graphviz
diff --git a/pkgs/applications/misc/gnome-firmware-updater/default.nix b/pkgs/applications/misc/gnome-firmware-updater/default.nix
new file mode 100644
index 00000000000..f05c5fd210c
--- /dev/null
+++ b/pkgs/applications/misc/gnome-firmware-updater/default.nix
@@ -0,0 +1,76 @@
+{ stdenv
+, fetchFromGitLab
+, fetchpatch
+, appstream-glib
+, desktop-file-utils
+, fwupd
+, gettext
+, glib
+, gnome3
+, gtk3
+, libsoup
+, libxmlb
+, meson
+, ninja
+, pkgconfig
+, systemd
+, help2man
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "gnome-firmware-updater";
+ version = "3.34.0";
+
+ src = fetchFromGitLab {
+ domain = "gitlab.gnome.org";
+ owner = "hughsie";
+ repo = "gnome-firmware-updater";
+ rev = version;
+ sha256 = "04pll0fzf4nr276kfw89r0524s6ppmls5rz4vq2j8c8gb50g0b6l";
+ };
+
+ patches = [
+ # Fixes manual build
+ (fetchpatch {
+ url = "https://gitlab.gnome.org/hughsie/gnome-firmware-updater/commit/006b64dcb401d8c81a33222bc4be8274c23f3c9c.patch";
+ sha256 = "02303ip4ri5pv1bls8c0njb00qhn0jd0d8rmvsrig0fmacwfvc06";
+ })
+ (fetchpatch {
+ url = "https://gitlab.gnome.org/hughsie/gnome-firmware-updater/commit/c4f076f2c902080618e0c27dec924fd0019f68a3.patch";
+ sha256 = "1yfxd7qsg3gwpamg0m2sbcfrgks59w70r9728arrc4pwx1hia2q1";
+ })
+ ];
+
+ nativeBuildInputs = [
+ appstream-glib # for ITS rules
+ desktop-file-utils
+ gettext
+ help2man
+ meson
+ ninja
+ pkgconfig
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ fwupd
+ glib
+ gtk3
+ libsoup
+ libxmlb
+ systemd
+ ];
+
+ mesonFlags = [
+ "-Dconsolekit=false"
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://gitlab.gnome.org/hughsie/gnome-firmware-updater";
+ description = "Tool for installing firmware on devices";
+ license = licenses.gpl2Plus;
+ maintainers = gnome3.maintainers;
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/applications/misc/gnome-multi-writer/default.nix b/pkgs/applications/misc/gnome-multi-writer/default.nix
new file mode 100644
index 00000000000..11bfbaaacd0
--- /dev/null
+++ b/pkgs/applications/misc/gnome-multi-writer/default.nix
@@ -0,0 +1,62 @@
+{ stdenv
+, fetchurl
+, appstream-glib
+, desktop-file-utils
+, gettext
+, glib
+, gnome3
+, gtk3
+, gusb
+, libcanberra-gtk3
+, libgudev
+, meson
+, ninja
+, pkgconfig
+, wrapGAppsHook
+, polkit
+, udisks
+}:
+
+stdenv.mkDerivation rec {
+ pname = "gnome-multi-writer";
+ version = "3.32.1";
+
+ src = fetchurl {
+ url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "1apdd8yi12zagf82k376a9wmdm27wzwdxpm2wf2pnwkaf786rmdw";
+ };
+
+ nativeBuildInputs = [
+ appstream-glib
+ desktop-file-utils
+ gettext
+ meson
+ ninja
+ pkgconfig
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ glib
+ gtk3
+ gusb
+ libcanberra-gtk3
+ libgudev
+ polkit
+ udisks
+ ];
+
+ passthru = {
+ updateScript = gnome3.updateScript {
+ packageName = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Tool for writing an ISO file to multiple USB devices at once";
+ homepage = https://wiki.gnome.org/Apps/MultiWriter;
+ license = licenses.gpl2Plus;
+ maintainers = gnome3.maintainers;
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/applications/misc/gnome-usage/default.nix b/pkgs/applications/misc/gnome-usage/default.nix
index eecf9bbd88f..7484998ab20 100644
--- a/pkgs/applications/misc/gnome-usage/default.nix
+++ b/pkgs/applications/misc/gnome-usage/default.nix
@@ -13,15 +13,16 @@
, libgtop
, libdazzle
, gnome3
+, tracker
}:
stdenv.mkDerivation rec {
pname = "gnome-usage";
- version = "3.32.0";
+ version = "3.33.2";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0bgszckddfpd3czyb9fddx4pgv5yv44sxc45dfk2kgqyy169gjih";
+ sha256 = "0w3ppfaf15il8mad64qyc9hj1rmlvzs5dyzrxhq7r50k4kyiwmk4";
};
nativeBuildInputs = [
@@ -41,6 +42,7 @@ stdenv.mkDerivation rec {
gtk3
libdazzle
libgtop
+ tracker
];
postPatch = ''
diff --git a/pkgs/applications/misc/gnome15/default.nix b/pkgs/applications/misc/gnome15/default.nix
index 7a918d961f6..41d535b3510 100644
--- a/pkgs/applications/misc/gnome15/default.nix
+++ b/pkgs/applications/misc/gnome15/default.nix
@@ -28,6 +28,9 @@ stdenv.mkDerivation {
meta = with stdenv.lib; {
description = "A set of tools for configuring the Logitech G15 keyboard";
+ # Doesn't work with new `keyring` library which is Python 3-only now.
+ # https://github.com/Gnome15/gnome15/issues/29
+ broken = true;
license = licenses.gpl3;
homepage = https://gnome15.org/;
platforms = platforms.linux;
diff --git a/pkgs/applications/misc/gollum/Gemfile.lock b/pkgs/applications/misc/gollum/Gemfile.lock
index 6cd77318754..b80d31cee9a 100644
--- a/pkgs/applications/misc/gollum/Gemfile.lock
+++ b/pkgs/applications/misc/gollum/Gemfile.lock
@@ -1,7 +1,7 @@
GEM
remote: https://rubygems.org/
specs:
- charlock_holmes (0.7.6)
+ charlock_holmes (0.7.7)
diff-lcs (1.3)
gemojione (3.3.0)
json
@@ -31,12 +31,12 @@ GEM
twitter-text (= 1.14.7)
json (2.2.0)
kramdown (1.9.0)
- mime-types (3.2.2)
+ mime-types (3.3)
mime-types-data (~> 3.2015)
- mime-types-data (3.2019.0331)
+ mime-types-data (3.2019.1009)
mini_portile2 (2.4.0)
mustache (0.99.8)
- nokogiri (1.10.4)
+ nokogiri (1.10.5)
mini_portile2 (~> 2.4.0)
posix-spawn (0.3.13)
rack (1.6.11)
@@ -50,7 +50,7 @@ GEM
rack-protection (~> 1.4)
tilt (>= 1.3, < 3)
stringex (2.8.5)
- tilt (2.0.9)
+ tilt (2.0.10)
twitter-text (1.14.7)
unf (~> 0.1.0)
unf (0.1.4)
@@ -65,4 +65,4 @@ DEPENDENCIES
gollum
BUNDLED WITH
- 1.17.2
+ 1.17.3
diff --git a/pkgs/applications/misc/gollum/gemset.nix b/pkgs/applications/misc/gollum/gemset.nix
index f9bdf94db17..080c5b8b098 100644
--- a/pkgs/applications/misc/gollum/gemset.nix
+++ b/pkgs/applications/misc/gollum/gemset.nix
@@ -4,10 +4,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1nf1l31n10yaark2rrg5qzyzcx9w80681449s3j09qmnipsl8rl5";
+ sha256 = "0hybw8jw9ryvz5zrki3gc9r88jqy373m6v46ynxsdzv1ysiyr40p";
type = "gem";
};
- version = "0.7.6";
+ version = "0.7.7";
};
diff-lcs = {
groups = ["default"];
@@ -110,20 +110,20 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0fjxy1jm52ixpnv3vg9ld9pr9f35gy0jp66i1njhqjvmnvq0iwwk";
+ sha256 = "0g7l18igjb9z7q4b2ykvyxyvjxlx5pwsmx5z3ibdbr6372xgfglk";
type = "gem";
};
- version = "3.2.2";
+ version = "3.3";
};
mime-types-data = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1m00pg19cm47n1qlcxgl91ajh2yq0fszvn1vy8fy0s1jkrp9fw4a";
+ sha256 = "18x61fc36951vw7f74gq8cyybdpxvyg5d0azvqhrs82ddw3v16xh";
type = "gem";
};
- version = "3.2019.0331";
+ version = "3.2019.1009";
};
mini_portile2 = {
groups = ["default"];
@@ -151,10 +151,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0nmdrqqz1gs0fwkgzxjl4wr554gr8dc1fkrqjc2jpsvwgm41rygv";
+ sha256 = "185g3dwba73jqxjr94bd2zk6fil6n9hmcfnfyzh3p1w47vm296r7";
type = "gem";
};
- version = "1.10.4";
+ version = "1.10.5";
};
posix-spawn = {
groups = ["default"];
@@ -234,10 +234,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0ca4k0clwf0rkvy7726x4nxpjxkpv67w043i39saxgldxd97zmwz";
+ sha256 = "0rn8z8hda4h41a64l0zhkiwz2vxw9b1nb70gl37h1dg2k874yrlv";
type = "gem";
};
- version = "2.0.9";
+ version = "2.0.10";
};
twitter-text = {
dependencies = ["unf"];
diff --git a/pkgs/applications/misc/gpscorrelate/default.nix b/pkgs/applications/misc/gpscorrelate/default.nix
index d10507b1044..07918d3d599 100644
--- a/pkgs/applications/misc/gpscorrelate/default.nix
+++ b/pkgs/applications/misc/gpscorrelate/default.nix
@@ -3,13 +3,13 @@
stdenv.mkDerivation rec {
pname = "gpscorrelate";
- version = "unstable-2019-06-05";
+ version = "2.0";
src = fetchFromGitHub {
owner = "dfandrich";
repo = pname;
- rev = "80b14fe7c10c1cc8f62c13f517c062577ce88c85";
- sha256 = "1gaan0nd7ai0bwilfnkza7lg5mz87804mvlygj0gjc672izr37r6";
+ rev = version;
+ sha256 = "1wkpb0nqnm0ik46hp2sibf96h2gxi6n951zm8c72scgmh4ciq4fl";
};
nativeBuildInputs = [
@@ -28,14 +28,14 @@ stdenv.mkDerivation rec {
makeFlags = [
"prefix=${placeholder "out"}"
- "GTK=3"
"CC=cc"
"CXX=c++"
+ "CFLAGS=-DENABLE_NLS"
];
doCheck = true;
- installTargets = [ "install" "install-desktop-file" ];
+ installTargets = [ "install" "install-po" "install-desktop-file" ];
meta = with stdenv.lib; {
description = "A GPS photo correlation tool, to add EXIF geotags";
@@ -57,7 +57,8 @@ stdenv.mkDerivation rec {
'';
license = licenses.gpl2Plus;
- homepage = "https://github.com/dfandrich/gpscorrelate";
+ homepage = "https://dfandrich.github.io/gpscorrelate/";
platforms = platforms.linux;
+ maintainers = with maintainers; [ sikmir ];
};
}
diff --git a/pkgs/applications/misc/gpxsee/default.nix b/pkgs/applications/misc/gpxsee/default.nix
index 6e9296da267..9a9edba512a 100644
--- a/pkgs/applications/misc/gpxsee/default.nix
+++ b/pkgs/applications/misc/gpxsee/default.nix
@@ -2,13 +2,13 @@
mkDerivation rec {
pname = "gpxsee";
- version = "7.12";
+ version = "7.18";
src = fetchFromGitHub {
owner = "tumic0";
repo = "GPXSee";
rev = version;
- sha256 = "0c3axs3mm6xzabwbvy9vgq1sryjpi4h91nwzy9iyv9zjxz7phgzc";
+ sha256 = "1z3knfqfv0rwsq66adk0qngw1r500yvy4z259bygqkzbn2l5fcjk";
};
nativeBuildInputs = [ qmake ];
@@ -28,7 +28,7 @@ mkDerivation rec {
all common GPS log file formats.
'';
license = licenses.gpl3;
- maintainers = [ maintainers.womfoo ];
+ maintainers = with maintainers; [ womfoo sikmir ];
platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/misc/grip/default.nix b/pkgs/applications/misc/grip/default.nix
index 7f2057b2947..68d373d7a9a 100644
--- a/pkgs/applications/misc/grip/default.nix
+++ b/pkgs/applications/misc/grip/default.nix
@@ -2,11 +2,11 @@
, curl, cdparanoia, libid3tag, ncurses, libtool }:
stdenv.mkDerivation rec {
- name = "grip-3.3.1";
+ name = "grip-4.0.0";
src = fetchurl {
url = "mirror://sourceforge/grip/${name}.tar.gz";
- sha256 = "1zb6zpq7qmn6bflbgfwisyg3vrjr23yi1c1kqvwndl1f0shr8qyl";
+ sha256 = "1k4mnzz2ky3wps147sdpxx7pz87zpfws2hdyl3x68iji54697qi0";
};
nativeBuildInputs = [ pkgconfig ];
@@ -15,6 +15,9 @@ stdenv.mkDerivation rec {
hardeningDisable = [ "format" ];
+ # glib-2.62 deprecations
+ NIX_CFLAGS_COMPILE = [ "-DGLIB_DISABLE_DEPRECATION_WARNINGS" ];
+
meta = {
description = "GTK-based audio CD player/ripper";
homepage = http://nostatic.org/grip;
diff --git a/pkgs/applications/misc/guake/default.nix b/pkgs/applications/misc/guake/default.nix
index 97303c43fb1..d403ddc8b26 100644
--- a/pkgs/applications/misc/guake/default.nix
+++ b/pkgs/applications/misc/guake/default.nix
@@ -1,10 +1,21 @@
-{ stdenv, fetchFromGitHub, python3, gettext, gobject-introspection, wrapGAppsHook, glibcLocales
-, gtk3, keybinder3, libnotify, libutempter, vte, libwnck3 }:
+{ stdenv
+, fetchFromGitHub
+, python3
+, gettext
+, gobject-introspection
+, wrapGAppsHook
+, gtk3
+, keybinder3
+, libnotify
+, libutempter
+, vte
+, libwnck3
+}:
-let
+python3.pkgs.buildPythonApplication rec {
+ pname = "guake";
version = "3.6.3";
-in python3.pkgs.buildPythonApplication {
- name = "guake-${version}";
+
format = "other";
src = fetchFromGitHub {
@@ -19,18 +30,34 @@ in python3.pkgs.buildPythonApplication {
# and https://github.com/NixOS/nixpkgs/issues/56943
strictDeps = false;
- nativeBuildInputs = [ gettext gobject-introspection wrapGAppsHook python3.pkgs.pip glibcLocales ];
+ nativeBuildInputs = [
+ gettext
+ gobject-introspection
+ wrapGAppsHook
+ python3.pkgs.pip
+ ];
- buildInputs = [ gtk3 keybinder3 libnotify python3 vte ];
+ buildInputs = [
+ gtk3
+ keybinder3
+ libnotify
+ libwnck3
+ python3
+ vte
+ ];
- propagatedBuildInputs = with python3.pkgs; [ dbus-python pbr pycairo pygobject3 libwnck3 ];
-
- LC_ALL = "en_US.UTF-8"; # fixes weird encoding error, see https://github.com/NixOS/nixpkgs/pull/38642#issuecomment-379727699
+ propagatedBuildInputs = with python3.pkgs; [
+ dbus-python
+ pbr
+ pycairo
+ pygobject3
+ setuptools
+ ];
PBR_VERSION = version; # pbr needs either .git directory, sdist, or env var
makeFlags = [
- "prefix=$(out)"
+ "prefix=${placeholder ''out''}"
];
preFixup = ''
@@ -39,9 +66,9 @@ in python3.pkgs.buildPythonApplication {
meta = with stdenv.lib; {
description = "Drop-down terminal for GNOME";
- homepage = http://guake-project.org;
+ homepage = "http://guake-project.org";
license = licenses.gpl2;
- platforms = platforms.linux;
maintainers = [ maintainers.msteen ];
+ platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/misc/gxmessage/default.nix b/pkgs/applications/misc/gxmessage/default.nix
index a7313e7c969..ce0a6963ea9 100644
--- a/pkgs/applications/misc/gxmessage/default.nix
+++ b/pkgs/applications/misc/gxmessage/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, gtk3, intltool, pkgconfig, texinfo, hicolor-icon-theme }:
+{ stdenv, fetchurl, gtk3, intltool, pkgconfig, texinfo }:
stdenv.mkDerivation rec {
pname = "gxmessage";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs = [ pkgconfig ];
- buildInputs = [ intltool gtk3 texinfo hicolor-icon-theme ];
+ buildInputs = [ intltool gtk3 texinfo ];
meta = {
description = "A GTK enabled dropin replacement for xmessage";
diff --git a/pkgs/applications/misc/gxneur/default.nix b/pkgs/applications/misc/gxneur/default.nix
index 7d19a9cb110..6e6145e7908 100644
--- a/pkgs/applications/misc/gxneur/default.nix
+++ b/pkgs/applications/misc/gxneur/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation {
sha256 = "0avmhdcj0hpr55fc0iih8fjykmdhn34c8mwdnqvl8jh4nhxxchxr";
};
- NIX_CFLAGS_COMPILE = "-Wno-deprecated-declarations";
+ # glib-2.62 deprecations
+ NIX_CFLAGS_COMPILE = [ "-DGLIB_DISABLE_DEPRECATION_WARNINGS" ];
nativeBuildInputs = [ pkgconfig intltool ];
buildInputs = [
diff --git a/pkgs/applications/misc/houdini/runtime.nix b/pkgs/applications/misc/houdini/runtime.nix
index 88c87eaca87..279791561d9 100644
--- a/pkgs/applications/misc/houdini/runtime.nix
+++ b/pkgs/applications/misc/houdini/runtime.nix
@@ -1,4 +1,4 @@
-{ stdenv, requireFile, zlib, libpng, libSM, libICE, fontconfig, xorg, libGLU, libGL, alsaLib, dbus, xkeyboardconfig, bc }:
+{ stdenv, requireFile, zlib, libpng, libSM, libICE, fontconfig, xorg, libGLU, libGL, alsaLib, dbus, xkeyboardconfig, bc, addOpenGLRunpath }:
let
ld_library_path = builtins.concatStringsSep ":" [
@@ -24,19 +24,20 @@ let
zlib
libpng
dbus
+ addOpenGLRunpath.driverLink
])
];
license_dir = "~/.config/houdini";
in
stdenv.mkDerivation rec {
- version = "17.0.352";
+ version = "17.5.327";
pname = "houdini-runtime";
src = requireFile rec {
name = "houdini-${version}-linux_x86_64_gcc6.3.tar.gz";
- sha256 = "0cl5fkgaplb0cvv7mli06ffc9j4ngpy8hl5zqabj3d645gcgafjg";
+ sha256 = "1byigmhmby8lgi2vmgxy9jlrrqk7jyr507zqkihq5bv8kfsanv1x";
message = ''
This nix expression requires that ${name} is already part of the store.
- Download it from https://sidefx.com and add it to the nix store with:
+ Download it from https://www.sidefx.com and add it to the nix store with:
nix-prefetch-url
@@ -77,7 +78,7 @@ stdenv.mkDerivation rec {
'';
meta = {
description = "3D animation application software";
- homepage = https://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/hubstaff/revision.json b/pkgs/applications/misc/hubstaff/revision.json
index 3170a63379c..2fd29444dad 100644
--- a/pkgs/applications/misc/hubstaff/revision.json
+++ b/pkgs/applications/misc/hubstaff/revision.json
@@ -1,5 +1,5 @@
{
- "url": "https://hubstaff-production.s3.amazonaws.com/downloads/HubstaffClient/Builds/Release/1.4.10-848554d6/Hubstaff-1.4.10-848554d6.sh",
- "version": "1.4.10-848554d6",
- "sha256": "1hwncdzpzawrwswr3ibhxny0aa5k9f8f2qf636bdzqilwhv6342z"
+ "url": "https://hubstaff-production.s3.amazonaws.com/downloads/HubstaffClient/Builds/Release/1.5.2-bead991b/Hubstaff-1.5.2-bead991b.sh",
+ "version": "1.5.2-bead991b",
+ "sha256": "068b0q94ydldyjmzbka1j94vr1xdxvkxq79pp7ria81hvpp68yxf"
}
diff --git a/pkgs/applications/misc/hugo/default.nix b/pkgs/applications/misc/hugo/default.nix
index 720445be9be..840f4c32e52 100644
--- a/pkgs/applications/misc/hugo/default.nix
+++ b/pkgs/applications/misc/hugo/default.nix
@@ -2,18 +2,18 @@
buildGoModule rec {
pname = "hugo";
- version = "0.58.0";
+ version = "0.58.3";
goPackagePath = "github.com/gohugoio/hugo";
src = fetchFromGitHub {
owner = "gohugoio";
- repo = "hugo";
+ repo = pname;
rev = "v${version}";
- sha256 = "0971li0777c1s67w72wl1y0b58ky93dw05hbk3s4kqys0acanc2d";
+ sha256 = "00dhb6xilkwr9yhncpyc6alzqw77ch3vd85dc7lzsmhw1c80n0lc";
};
- modSha256 = "14ylbh2hx14swcqvawprbx5gynkwyb0nlp5acr4fjy1zl0ifc790";
+ modSha256 = "0d6zc7hxb246zsvwsjz4ds6gdd2m95x6l3djh3mmciwfg9cd7prx";
buildFlags = "-tags extended";
diff --git a/pkgs/applications/misc/ipmiview/default.nix b/pkgs/applications/misc/ipmiview/default.nix
index 64e0f0d325b..e46df5d59e0 100644
--- a/pkgs/applications/misc/ipmiview/default.nix
+++ b/pkgs/applications/misc/ipmiview/default.nix
@@ -1,33 +1,72 @@
-{ stdenv, fetchurl, patchelf, makeWrapper, xorg, gcc, gcc-unwrapped }:
+{ stdenv
+, fetchurl
+, makeDesktopItem
+, makeWrapper
+, patchelf
+, fontconfig
+, freetype
+, gcc
+, gcc-unwrapped
+, iputils
+, psmisc
+, xorg }:
stdenv.mkDerivation rec {
- pname = "IPMIView";
- version = "2.14.0";
- buildVersion = "180213";
+ pname = "IPMIView";
+ version = "2.16.0";
+ buildVersion = "190815";
- src = fetchurl {
- url = "ftp://ftp.supermicro.com/utility/IPMIView/Linux/IPMIView_${version}_build.${buildVersion}_bundleJRE_Linux_x64.tar.gz";
- sha256 = "1wp22wm7smlsb25x0cck4p660cycfczxj381930crd1qrf68mw4h";
+ src = fetchurl {
+ url = "https://www.supermicro.com/wftp/utility/IPMIView/Linux/IPMIView_${version}_build.${buildVersion}_bundleJRE_Linux_x64.tar.gz";
+ sha256 = "0qw9zfnj0cyvab7ndamlw2y0gpczjhh1jkz8340kl42r2xmhkvpl";
};
- nativeBuildInputs = [ patchelf makeWrapper ];
+ nativeBuildInputs = [ patchelf makeWrapper ];
+ buildPhase = with xorg;
+ let
+ stunnelBinary = if stdenv.hostPlatform.system == "x86_64-linux" then "linux/stunnel64"
+ else if stdenv.hostPlatform.system == "i686-linux" then "linux/stunnel32"
+ else throw "IPMIView is not supported on this platform";
+ in
+ ''
+ patchelf --set-rpath "${stdenv.lib.makeLibraryPath [ libX11 libXext libXrender libXtst libXi ]}" ./jre/lib/amd64/libawt_xawt.so
+ patchelf --set-rpath "${stdenv.lib.makeLibraryPath [ freetype ]}" ./jre/lib/amd64/libfontmanager.so
+ patchelf --set-rpath "${gcc-unwrapped.lib}/lib" ./libiKVM64.so
+ patchelf --set-rpath "${gcc.cc}/lib:$out/jre/lib/amd64/jli" --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" ./jre/bin/java
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" ./BMCSecurity/${stunnelBinary}
+ '';
- buildPhase = with xorg; ''
- patchelf --set-rpath "${stdenv.lib.makeLibraryPath [ libX11 libXext libXrender libXtst libXi ]}" ./jre/lib/amd64/xawt/libmawt.so
- patchelf --set-rpath "${gcc-unwrapped.lib}/lib" ./libiKVM64.so
- patchelf --set-rpath "${stdenv.lib.makeLibraryPath [ libXcursor libX11 libXext libXrender libXtst libXi ]}" --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" ./jre/bin/javaws
- patchelf --set-rpath "${gcc.cc}/lib:$out/jre/lib/amd64/jli" --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" ./jre/bin/java
- '';
+ desktopItem = makeDesktopItem rec {
+ name = "IPMIView";
+ exec = "IPMIView";
+ desktopName = name;
+ genericName = "Supermicro BMC manager";
+ categories = "Network;Configuration";
+ };
- installPhase = ''
- mkdir -p $out/bin
- cp -R . $out/
- makeWrapper $out/jre/bin/java $out/bin/IPMIView \
- --prefix PATH : "$out/jre/bin" \
- --add-flags "-jar $out/IPMIView20.jar"
- '';
+ installPhase = ''
+ mkdir -p $out/bin
+ cp -R . $out/
- meta = with stdenv.lib; {
+ ln -s ${desktopItem}/share $out/share
+
+ # LD_LIBRARY_PATH: fontconfig is used from java code
+ # PATH: iputils is used for ping, and psmisc is for killall
+ # WORK_DIR: unfortunately the ikvm related binaries are loaded from
+ # and user configuration is written to files in the CWD
+ makeWrapper $out/jre/bin/java $out/bin/IPMIView \
+ --set LD_LIBRARY_PATH "${stdenv.lib.makeLibraryPath [ fontconfig ]}" \
+ --prefix PATH : "$out/jre/bin:${iputils}/bin:${psmisc}/bin" \
+ --add-flags "-jar $out/IPMIView20.jar" \
+ --run 'WORK_DIR=''${XDG_DATA_HOME:-~/.local/share}/ipmiview
+ mkdir -p $WORK_DIR
+ ln -snf '$out'/iKVM.jar '$out'/libiKVM* '$out'/libSharedLibrary* $WORK_DIR
+ cd $WORK_DIR'
+ '';
+
+ meta = with stdenv.lib; {
license = licenses.unfree;
- };
- }
+ maintainers = with maintainers; [ vlaci ];
+ platforms = [ "x86_64-linux" "i686-linux" ];
+ };
+}
diff --git a/pkgs/applications/misc/jekyll/basic/Gemfile.lock b/pkgs/applications/misc/jekyll/basic/Gemfile.lock
index 54c703bb859..f7588990432 100644
--- a/pkgs/applications/misc/jekyll/basic/Gemfile.lock
+++ b/pkgs/applications/misc/jekyll/basic/Gemfile.lock
@@ -1,28 +1,28 @@
GEM
remote: https://rubygems.org/
specs:
- activesupport (6.0.0)
+ activesupport (6.0.1)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 0.7, < 2)
minitest (~> 5.1)
tzinfo (~> 1.1)
- zeitwerk (~> 2.1, >= 2.1.8)
- addressable (2.6.0)
- public_suffix (>= 2.0.2, < 4.0)
+ zeitwerk (~> 2.2)
+ addressable (2.7.0)
+ public_suffix (>= 2.0.2, < 5.0)
colorator (1.1.0)
concurrent-ruby (1.1.5)
em-websocket (0.5.1)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0)
eventmachine (1.2.7)
- ffi (1.11.1)
+ ffi (1.11.2)
forwardable-extended (2.6.0)
gemoji (3.0.1)
- html-pipeline (2.12.0)
+ html-pipeline (2.12.2)
activesupport (>= 2)
nokogiri (>= 1.4)
http_parser.rb (0.6.0)
- i18n (1.6.0)
+ i18n (1.7.0)
concurrent-ruby (~> 1.0)
jekyll (4.0.0)
addressable (~> 2.4)
@@ -44,7 +44,7 @@ GEM
jekyll-mentions (1.5.1)
html-pipeline (~> 2.3)
jekyll (>= 3.7, < 5.0)
- jekyll-sass-converter (2.0.0)
+ jekyll-sass-converter (2.0.1)
sassc (> 2.0.1, < 3.0)
jekyll-seo-tag (2.6.1)
jekyll (>= 3.3, < 5.0)
@@ -60,25 +60,23 @@ GEM
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
liquid (4.0.3)
- listen (3.1.5)
- rb-fsevent (~> 0.9, >= 0.9.4)
- rb-inotify (~> 0.9, >= 0.9.7)
- ruby_dep (~> 1.2)
+ listen (3.2.0)
+ rb-fsevent (~> 0.10, >= 0.10.3)
+ rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.3.6)
mini_portile2 (2.4.0)
- minitest (5.11.3)
- nokogiri (1.10.4)
+ minitest (5.13.0)
+ nokogiri (1.10.5)
mini_portile2 (~> 2.4.0)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
- public_suffix (3.1.1)
+ public_suffix (4.0.1)
rb-fsevent (0.10.3)
rb-inotify (0.10.0)
ffi (~> 1.0)
- rouge (3.9.0)
- ruby_dep (1.5.0)
+ rouge (3.13.0)
safe_yaml (1.0.5)
- sassc (2.1.0)
+ sassc (2.2.1)
ffi (~> 1.9)
terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
@@ -86,7 +84,7 @@ GEM
tzinfo (1.2.5)
thread_safe (~> 0.1)
unicode-display_width (1.6.0)
- zeitwerk (2.1.9)
+ zeitwerk (2.2.1)
PLATFORMS
ruby
@@ -100,4 +98,4 @@ DEPENDENCIES
jemoji
BUNDLED WITH
- 1.17.2
+ 1.17.3
diff --git a/pkgs/applications/misc/jekyll/basic/gemset.nix b/pkgs/applications/misc/jekyll/basic/gemset.nix
index 41e599c0202..7fd9abd82a3 100644
--- a/pkgs/applications/misc/jekyll/basic/gemset.nix
+++ b/pkgs/applications/misc/jekyll/basic/gemset.nix
@@ -5,10 +5,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0b24ch7zmrdb4h6aismahk9785lc4ij30lmdr6ydv19kkljsjq5v";
+ sha256 = "190xv21yz03zz8nlfly557ir859jr5zkwi89naziy65hskdnkw1s";
type = "gem";
};
- version = "6.0.0";
+ version = "6.0.1";
};
addressable = {
dependencies = ["public_suffix"];
@@ -16,10 +16,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0bcm2hchn897xjhqj9zzsxf3n9xhddymj4lsclz508f4vw3av46l";
+ sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
type = "gem";
};
- version = "2.6.0";
+ version = "2.7.0";
};
colorator = {
groups = ["default"];
@@ -67,10 +67,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "06mvxpjply8qh4j3fj9wh08kdzwkbnvsiysh0vrhlk5cwxzjmblh";
+ sha256 = "0cbads5da12lb3j0mg2hjrd57s5qkkairxh2y6r9bqyblb5b8xbw";
type = "gem";
};
- version = "1.11.1";
+ version = "1.11.2";
};
forwardable-extended = {
groups = ["default"];
@@ -98,10 +98,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0f7x70p3fda7i5wfjjljjgjgqwx8m12345bs4xpnh7fhnis42fkk";
+ sha256 = "19hc7njr029pzqljpfhzhdi0p2rgn8ihn3bdnai2apy6nj1g1sg2";
type = "gem";
};
- version = "2.12.0";
+ version = "2.12.2";
};
"http_parser.rb" = {
groups = ["default"];
@@ -119,10 +119,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1hfxnlyr618s25xpafw9mypa82qppjccbh292c4l3bj36az7f6wl";
+ sha256 = "0hmypvx9iyc0b4hski7aic2xzm09cg1c7q1qlpnk3k8s5acxzyhl";
type = "gem";
};
- version = "1.6.0";
+ version = "1.7.0";
};
jekyll = {
dependencies = ["addressable" "colorator" "em-websocket" "i18n" "jekyll-sass-converter" "jekyll-watch" "kramdown" "kramdown-parser-gfm" "liquid" "mercenary" "pathutil" "rouge" "safe_yaml" "terminal-table"];
@@ -163,10 +163,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0fbc25p8vqyzmg8wpmgacqjkk3jhrr6kz9y45m43ygck74h2cad2";
+ sha256 = "0xjzqpp35qr2vnf2zpak0srn773mp21glcq81a0iqpnrva7h80m3";
type = "gem";
};
- version = "2.0.0";
+ version = "2.0.1";
};
jekyll-seo-tag = {
dependencies = ["jekyll"];
@@ -244,15 +244,15 @@
version = "4.0.3";
};
listen = {
- dependencies = ["rb-fsevent" "rb-inotify" "ruby_dep"];
+ dependencies = ["rb-fsevent" "rb-inotify"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "01v5mrnfqm6sgm8xn2v5swxsn1wlmq7rzh2i48d4jzjsc7qvb6mx";
+ sha256 = "1j3s7bprp2jfhgb959wd1h98978zg3207nl87yg8k5w7k08f7snb";
type = "gem";
};
- version = "3.1.5";
+ version = "3.2.0";
};
mercenary = {
groups = ["default"];
@@ -279,10 +279,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq";
+ sha256 = "0w16p7cvslh3hxd3cia8jg4pd85z7rz7xqb16vh42gj4rijn8rmi";
type = "gem";
};
- version = "5.11.3";
+ version = "5.13.0";
};
nokogiri = {
dependencies = ["mini_portile2"];
@@ -290,10 +290,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0nmdrqqz1gs0fwkgzxjl4wr554gr8dc1fkrqjc2jpsvwgm41rygv";
+ sha256 = "185g3dwba73jqxjr94bd2zk6fil6n9hmcfnfyzh3p1w47vm296r7";
type = "gem";
};
- version = "1.10.4";
+ version = "1.10.5";
};
pathutil = {
dependencies = ["forwardable-extended"];
@@ -311,10 +311,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0g9ds2ffzljl6jjmkjffwxc1z6lh5nkqqmhhkxjk71q5ggv0rkpm";
+ sha256 = "0xnfv2j2bqgdpg2yq9i2rxby0w2sc9h5iyjkpaas2xknwrgmhdb0";
type = "gem";
};
- version = "3.1.1";
+ version = "4.0.1";
};
rb-fsevent = {
groups = ["default"];
@@ -342,20 +342,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1cn6fin40ngrasqi6qis85mqwx6phnbkzhkkd93acm9vrcf3rkl3";
+ sha256 = "1y90nx9ph9adnrpcsvs2adca2l3dyz8am2d2kzxkwd3a086ji7aw";
type = "gem";
};
- version = "3.9.0";
- };
- ruby_dep = {
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1c1bkl97i9mkcvkn1jks346ksnvnnp84cs22gwl0vd7radybrgy5";
- type = "gem";
- };
- version = "1.5.0";
+ version = "3.13.0";
};
safe_yaml = {
groups = ["default"];
@@ -373,10 +363,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "06kwfqvpwf33cvkvbv1l9g5ln3q721hz5d3dyasq0k9d28x9w4fs";
+ sha256 = "09bnid7r5z5hcin5hykvpvv8xig27wbbckxwis60z2aaxq4j9siz";
type = "gem";
};
- version = "2.1.0";
+ version = "2.2.1";
};
terminal-table = {
dependencies = ["unicode-display_width"];
@@ -425,9 +415,9 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0gaiqg207j99cvqpgmn4ps6a14hz1rrh5zaxfdkiiavapbc5vpzw";
+ sha256 = "0w7w7y4jr6pcbgnzmh113fh8wz0f00xixl7qvf2rpvnanb68d5gw";
type = "gem";
};
- version = "2.1.9";
+ version = "2.2.1";
};
}
\ No newline at end of file
diff --git a/pkgs/applications/misc/jekyll/full/Gemfile.lock b/pkgs/applications/misc/jekyll/full/Gemfile.lock
index 6410b885ea4..43a2d0cf2d0 100644
--- a/pkgs/applications/misc/jekyll/full/Gemfile.lock
+++ b/pkgs/applications/misc/jekyll/full/Gemfile.lock
@@ -1,14 +1,14 @@
GEM
remote: https://rubygems.org/
specs:
- activesupport (6.0.0)
+ activesupport (6.0.1)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 0.7, < 2)
minitest (~> 5.1)
tzinfo (~> 1.1)
- zeitwerk (~> 2.1, >= 2.1.8)
- addressable (2.6.0)
- public_suffix (>= 2.0.2, < 4.0)
+ zeitwerk (~> 2.2)
+ addressable (2.7.0)
+ public_suffix (>= 2.0.2, < 5.0)
classifier-reborn (2.2.0)
fast-stemmer (~> 1.0)
coderay (1.1.2)
@@ -23,17 +23,17 @@ GEM
http_parser.rb (~> 0.6.0)
eventmachine (1.2.7)
execjs (2.7.0)
- faraday (0.15.4)
+ faraday (0.17.0)
multipart-post (>= 1.2, < 3)
fast-stemmer (1.0.2)
- ffi (1.11.1)
+ ffi (1.11.2)
forwardable-extended (2.6.0)
gemoji (3.0.1)
- html-pipeline (2.12.0)
+ html-pipeline (2.12.2)
activesupport (>= 2)
nokogiri (>= 1.4)
http_parser.rb (0.6.0)
- i18n (1.6.0)
+ i18n (1.7.0)
concurrent-ruby (~> 1.0)
jekyll (4.0.0)
addressable (~> 2.4)
@@ -52,10 +52,10 @@ GEM
terminal-table (~> 1.8)
jekyll-avatar (0.7.0)
jekyll (>= 3.0, < 5.0)
- jekyll-coffeescript (1.2.2)
+ jekyll-coffeescript (2.0.0)
coffee-script (~> 2.2)
coffee-script-source (~> 1.12)
- jekyll-feed (0.12.1)
+ jekyll-feed (0.13.0)
jekyll (>= 3.7, < 5.0)
jekyll-gist (1.5.0)
octokit (~> 4.2)
@@ -65,7 +65,7 @@ GEM
jekyll-paginate (1.1.0)
jekyll-redirect-from (0.15.0)
jekyll (>= 3.3, < 5.0)
- jekyll-sass-converter (2.0.0)
+ jekyll-sass-converter (2.0.1)
sassc (> 2.0.1, < 3.0)
jekyll-seo-tag (2.6.1)
jekyll (>= 3.3, < 5.0)
@@ -86,32 +86,30 @@ GEM
liquid (4.0.3)
liquid-c (4.0.0)
liquid (>= 3.0.0)
- listen (3.1.5)
- rb-fsevent (~> 0.9, >= 0.9.4)
- rb-inotify (~> 0.9, >= 0.9.7)
- ruby_dep (~> 1.2)
+ listen (3.2.0)
+ rb-fsevent (~> 0.10, >= 0.10.3)
+ rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.3.6)
- mime-types (3.2.2)
+ mime-types (3.3)
mime-types-data (~> 3.2015)
- mime-types-data (3.2019.0331)
+ mime-types-data (3.2019.1009)
mini_portile2 (2.4.0)
- minitest (5.11.3)
+ minitest (5.13.0)
multipart-post (2.1.1)
- nokogiri (1.10.4)
+ nokogiri (1.10.5)
mini_portile2 (~> 2.4.0)
octokit (4.14.0)
sawyer (~> 0.8.0, >= 0.5.3)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
- public_suffix (3.1.1)
+ public_suffix (4.0.1)
rb-fsevent (0.10.3)
rb-inotify (0.10.0)
ffi (~> 1.0)
- rdoc (6.1.1)
- rouge (3.9.0)
- ruby_dep (1.5.0)
+ rdoc (6.2.0)
+ rouge (3.13.0)
safe_yaml (1.0.5)
- sassc (2.1.0)
+ sassc (2.2.1)
ffi (~> 1.9)
sawyer (0.8.2)
addressable (>= 2.3.5)
@@ -124,7 +122,7 @@ GEM
thread_safe (~> 0.1)
unicode-display_width (1.6.0)
yajl-ruby (1.4.1)
- zeitwerk (2.1.9)
+ zeitwerk (2.2.1)
PLATFORMS
ruby
@@ -150,4 +148,4 @@ DEPENDENCIES
yajl-ruby (~> 1.4)
BUNDLED WITH
- 1.17.2
+ 1.17.3
diff --git a/pkgs/applications/misc/jekyll/full/gemset.nix b/pkgs/applications/misc/jekyll/full/gemset.nix
index 80d67022e7a..2b1c03ce882 100644
--- a/pkgs/applications/misc/jekyll/full/gemset.nix
+++ b/pkgs/applications/misc/jekyll/full/gemset.nix
@@ -5,10 +5,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0b24ch7zmrdb4h6aismahk9785lc4ij30lmdr6ydv19kkljsjq5v";
+ sha256 = "190xv21yz03zz8nlfly557ir859jr5zkwi89naziy65hskdnkw1s";
type = "gem";
};
- version = "6.0.0";
+ version = "6.0.1";
};
addressable = {
dependencies = ["public_suffix"];
@@ -16,10 +16,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0bcm2hchn897xjhqj9zzsxf3n9xhddymj4lsclz508f4vw3av46l";
+ sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
type = "gem";
};
- version = "2.6.0";
+ version = "2.7.0";
};
classifier-reborn = {
dependencies = ["fast-stemmer"];
@@ -132,10 +132,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0s72m05jvzc1pd6cw1i289chas399q0a14xrwg4rvkdwy7bgzrh0";
+ sha256 = "0jk2bar4x6miq2cr73lv0lsbmw4cymiljvp29xb85jifsb3ba6az";
type = "gem";
};
- version = "0.15.4";
+ version = "0.17.0";
};
fast-stemmer = {
groups = ["default"];
@@ -164,10 +164,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "06mvxpjply8qh4j3fj9wh08kdzwkbnvsiysh0vrhlk5cwxzjmblh";
+ sha256 = "0cbads5da12lb3j0mg2hjrd57s5qkkairxh2y6r9bqyblb5b8xbw";
type = "gem";
};
- version = "1.11.1";
+ version = "1.11.2";
};
forwardable-extended = {
groups = ["default"];
@@ -195,10 +195,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0f7x70p3fda7i5wfjjljjgjgqwx8m12345bs4xpnh7fhnis42fkk";
+ sha256 = "19hc7njr029pzqljpfhzhdi0p2rgn8ihn3bdnai2apy6nj1g1sg2";
type = "gem";
};
- version = "2.12.0";
+ version = "2.12.2";
};
"http_parser.rb" = {
groups = ["default"];
@@ -216,10 +216,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1hfxnlyr618s25xpafw9mypa82qppjccbh292c4l3bj36az7f6wl";
+ sha256 = "0hmypvx9iyc0b4hski7aic2xzm09cg1c7q1qlpnk3k8s5acxzyhl";
type = "gem";
};
- version = "1.6.0";
+ version = "1.7.0";
};
jekyll = {
dependencies = ["addressable" "colorator" "em-websocket" "i18n" "jekyll-sass-converter" "jekyll-watch" "kramdown" "kramdown-parser-gfm" "liquid" "mercenary" "pathutil" "rouge" "safe_yaml" "terminal-table"];
@@ -249,10 +249,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "040i6cyv20qmxlpm74kh5hfci8208ja4903yxdv4x0qs0z172kl9";
+ sha256 = "17fjk0bfm0rs3myid24y2scsf5vzzza185bissjmcc44cbxp571j";
type = "gem";
};
- version = "1.2.2";
+ version = "2.0.0";
};
jekyll-feed = {
dependencies = ["jekyll"];
@@ -260,10 +260,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "01f0ivjdr3qc9dh9n8lj6paiy7zmlb7hs9nk6rgni6jjn5plslg3";
+ sha256 = "1lx8nvkhd8l1wm3b6s506rycwbmpbzbsbjl65p21asjz6vbwf1ir";
type = "gem";
};
- version = "0.12.1";
+ version = "0.13.0";
};
jekyll-gist = {
dependencies = ["octokit"];
@@ -314,10 +314,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0fbc25p8vqyzmg8wpmgacqjkk3jhrr6kz9y45m43ygck74h2cad2";
+ sha256 = "0xjzqpp35qr2vnf2zpak0srn773mp21glcq81a0iqpnrva7h80m3";
type = "gem";
};
- version = "2.0.0";
+ version = "2.0.1";
};
jekyll-seo-tag = {
dependencies = ["jekyll"];
@@ -441,15 +441,15 @@
version = "4.0.0";
};
listen = {
- dependencies = ["rb-fsevent" "rb-inotify" "ruby_dep"];
+ dependencies = ["rb-fsevent" "rb-inotify"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "01v5mrnfqm6sgm8xn2v5swxsn1wlmq7rzh2i48d4jzjsc7qvb6mx";
+ sha256 = "1j3s7bprp2jfhgb959wd1h98978zg3207nl87yg8k5w7k08f7snb";
type = "gem";
};
- version = "3.1.5";
+ version = "3.2.0";
};
mercenary = {
groups = ["default"];
@@ -467,20 +467,20 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0fjxy1jm52ixpnv3vg9ld9pr9f35gy0jp66i1njhqjvmnvq0iwwk";
+ sha256 = "0g7l18igjb9z7q4b2ykvyxyvjxlx5pwsmx5z3ibdbr6372xgfglk";
type = "gem";
};
- version = "3.2.2";
+ version = "3.3";
};
mime-types-data = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1m00pg19cm47n1qlcxgl91ajh2yq0fszvn1vy8fy0s1jkrp9fw4a";
+ sha256 = "18x61fc36951vw7f74gq8cyybdpxvyg5d0azvqhrs82ddw3v16xh";
type = "gem";
};
- version = "3.2019.0331";
+ version = "3.2019.1009";
};
mini_portile2 = {
groups = ["default"];
@@ -497,10 +497,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq";
+ sha256 = "0w16p7cvslh3hxd3cia8jg4pd85z7rz7xqb16vh42gj4rijn8rmi";
type = "gem";
};
- version = "5.11.3";
+ version = "5.13.0";
};
multipart-post = {
groups = ["default"];
@@ -518,10 +518,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0nmdrqqz1gs0fwkgzxjl4wr554gr8dc1fkrqjc2jpsvwgm41rygv";
+ sha256 = "185g3dwba73jqxjr94bd2zk6fil6n9hmcfnfyzh3p1w47vm296r7";
type = "gem";
};
- version = "1.10.4";
+ version = "1.10.5";
};
octokit = {
dependencies = ["sawyer"];
@@ -550,10 +550,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0g9ds2ffzljl6jjmkjffwxc1z6lh5nkqqmhhkxjk71q5ggv0rkpm";
+ sha256 = "0xnfv2j2bqgdpg2yq9i2rxby0w2sc9h5iyjkpaas2xknwrgmhdb0";
type = "gem";
};
- version = "3.1.1";
+ version = "4.0.1";
};
rb-fsevent = {
groups = ["default"];
@@ -581,30 +581,20 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "07b7ac2nls2yskaicqshxgip6dwpxl80hlx4pslq90jgpxgs2kkp";
+ sha256 = "1gh7sc3xd4rgl9z90181cq580r1xqn063mmv51wdrhhsrkkw2bi9";
type = "gem";
};
- version = "6.1.1";
+ version = "6.2.0";
};
rouge = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1cn6fin40ngrasqi6qis85mqwx6phnbkzhkkd93acm9vrcf3rkl3";
+ sha256 = "1y90nx9ph9adnrpcsvs2adca2l3dyz8am2d2kzxkwd3a086ji7aw";
type = "gem";
};
- version = "3.9.0";
- };
- ruby_dep = {
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1c1bkl97i9mkcvkn1jks346ksnvnnp84cs22gwl0vd7radybrgy5";
- type = "gem";
- };
- version = "1.5.0";
+ version = "3.13.0";
};
safe_yaml = {
groups = ["default"];
@@ -622,10 +612,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "06kwfqvpwf33cvkvbv1l9g5ln3q721hz5d3dyasq0k9d28x9w4fs";
+ sha256 = "09bnid7r5z5hcin5hykvpvv8xig27wbbckxwis60z2aaxq4j9siz";
type = "gem";
};
- version = "2.1.0";
+ version = "2.2.1";
};
sawyer = {
dependencies = ["addressable" "faraday"];
@@ -717,9 +707,9 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0gaiqg207j99cvqpgmn4ps6a14hz1rrh5zaxfdkiiavapbc5vpzw";
+ sha256 = "0w7w7y4jr6pcbgnzmh113fh8wz0f00xixl7qvf2rpvnanb68d5gw";
type = "gem";
};
- version = "2.1.9";
+ version = "2.2.1";
};
}
\ No newline at end of file
diff --git a/pkgs/applications/misc/jgmenu/default.nix b/pkgs/applications/misc/jgmenu/default.nix
index 879f344a5af..31568c7b0fd 100644
--- a/pkgs/applications/misc/jgmenu/default.nix
+++ b/pkgs/applications/misc/jgmenu/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "jgmenu";
- version = "3.3";
+ version = "3.5";
src = fetchFromGitHub {
owner = "johanmalm";
repo = pname;
rev = "v${version}";
- sha256 = "02qpvlmcis7217hkqilhszza4g1smb4byx4gihgp5207aj8qhz0l";
+ sha256 = "0q0m3sskgmjv28gzvjkphgg3yhwzc9w9fj9i342pibb50impjazy";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/misc/joplin-desktop/default.nix b/pkgs/applications/misc/joplin-desktop/default.nix
index 410b04d5dcb..ff0332e1e5f 100644
--- a/pkgs/applications/misc/joplin-desktop/default.nix
+++ b/pkgs/applications/misc/joplin-desktop/default.nix
@@ -2,12 +2,12 @@
let
pname = "joplin-desktop";
- version = "1.0.158";
+ version = "1.0.167";
in appimageTools.wrapType2 rec {
name = "${pname}-${version}";
src = fetchurl {
url = "https://github.com/laurent22/joplin/releases/download/v${version}/Joplin-${version}-x86_64.AppImage";
- sha256 = "1xaamwcasihja3agwb0nnfnzc1wmmr0d2ng73qmfil9nhf9v3j6q";
+ sha256 = "062f2av60490ffrml0q8zv68yir6zaqif0g3d32c985gcvmgn9lw";
};
diff --git a/pkgs/applications/misc/josm/default.nix b/pkgs/applications/misc/josm/default.nix
index 4b70530987f..857cc6c7456 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 = "15322";
+ version = "15390";
src = fetchurl {
url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar";
- sha256 = "1i6cxs6rvqjwh7yfji5701xdzpnaxcv97gsd692fjrwasnsx1f1i";
+ sha256 = "1wxncd3mjd4j14svgpmvrxc0nkzfkpn0xlci7m7wp9hfp1l81v9f";
};
buildInputs = [ jdk11 makeWrapper ];
diff --git a/pkgs/applications/misc/jotta-cli/default.nix b/pkgs/applications/misc/jotta-cli/default.nix
new file mode 100644
index 00000000000..a5196811a6a
--- /dev/null
+++ b/pkgs/applications/misc/jotta-cli/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchzip }:
+
+let
+ arch = "amd64";
+in
+stdenv.mkDerivation rec {
+ pname = "jotta-cli";
+ version = "0.6.18626";
+ src =
+ fetchzip {
+ url = "https://repo.jotta.us/archives/linux/${arch}/jotta-cli-${version}_linux_${arch}.tar.gz";
+ sha256 = "0v9bw0f2mcvmzp7v8gs6q4p1q54rflqnbjv5sw7h1kyfwznmflzj";
+ stripRoot = false;
+ };
+
+ installPhase = ''
+ install -D usr/bin/jotta-cli usr/bin/jottad -t $out/bin/
+ mkdir -p $out/share/bash-completion/completions
+ '';
+
+ postFixup = ''
+ patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) $out/bin/jotta-cli
+ patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) $out/bin/jottad
+ $out/bin/jotta-cli completion > $out/share/bash-completion/completions/jotta-cli.bash
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Jottacloud CLI";
+ 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/k2pdfopt/default.nix b/pkgs/applications/misc/k2pdfopt/default.nix
index 9391fe88c5e..a2eba8e08c2 100644
--- a/pkgs/applications/misc/k2pdfopt/default.nix
+++ b/pkgs/applications/misc/k2pdfopt/default.nix
@@ -30,73 +30,25 @@ stdenv.mkDerivation rec {
cp -r ${v251a_src}/* $sourceRoot
'';
- patches = [ ./k2pdfopt.patch ];
+ patches = [ ./k2pdfopt.patch ./k2pdfopt-mupdf-1.16.1.patch ];
nativeBuildInputs = [ cmake pkgconfig ];
buildInputs =
let
+ # The patches below were constructed by taking the files from k2pdfopt in
+ # the {mupdf,leptonica,tesseract}_mod/ directories, replacing the
+ # corresponding files in the respective source trees, resolving any errors
+ # with more recent versions of these depencencies, and running diff.
mupdf_modded = mupdf.overrideAttrs (attrs: {
- # Excluded the pdf-*.c files, since they mostly just broke the #includes
- prePatch = ''
- cp ${src}/mupdf_mod/{font,stext-device,string}.c source/fitz/
- cp ${src}/mupdf_mod/font-win32.c source/pdf/
- '';
+ patches = attrs.patches ++ [ ./mupdf.patch ]; # Last verified with mupdf 1.16.1
});
-
leptonica_modded = leptonica.overrideAttrs (attrs: {
- name = "leptonica-1.74.4";
- # Modified source files apply to this particular version of leptonica
- version = "1.74.4";
-
- src = fetchurl {
- url = "http://www.leptonica.org/source/leptonica-1.74.4.tar.gz";
- sha256 = "0fw39amgyv8v6nc7x8a4c7i37dm04i6c5zn62d24bgqnlhk59hr9";
- };
-
- prePatch = ''
- cp ${src}/leptonica_mod/{allheaders.h,dewarp2.c,leptwin.c} src/
- '';
- patches = [
- # stripped down copy of upstream commit b88c821f8d347bce0aea86d606c710303919f3d2
- ./leptonica-CVE-2018-3836.patch
- (fetchpatch {
- # CVE-2018-7186
- url = "https://github.com/DanBloomberg/leptonica/commit/"
- + "ee301cb2029db8a6289c5295daa42bba7715e99a.patch";
- sha256 = "0cgb7mvz2px1rg5i80wk1wxxjvzjga617d8q6j7qygkp7jm6495d";
- })
- (fetchpatch {
- # CVE-2018-7247
- url = "https://github.com/DanBloomberg/leptonica/commit/"
- + "c1079bb8e77cdd426759e466729917ca37a3ed9f.patch";
- sha256 = "1z4iac5gwqggh7aa8cvyp6nl9fwd1v7wif26caxc9y5qr3jj34qf";
- })
- (fetchpatch {
- # CVE-2018-7440
- url = "https://github.com/DanBloomberg/leptonica/commit/"
- + "49ecb6c2dfd6ed5078c62f4a8eeff03e3beced3b.patch";
- sha256 = "1hjmva98iaw9xj7prg7aimykyayikcwnk4hk0380007hqb35lqmy";
- })
- ];
+ patches = [ ./leptonica.patch ]; # Last verified with leptonica 1.78.0
});
tesseract_modded = tesseract4.override {
tesseractBase = tesseract4.tesseractBase.overrideAttrs (_: {
- prePatch = ''
- cp ${src}/tesseract_mod/baseapi.{h,cpp} src/api/
- cp ${src}/tesseract_mod/ccutil.{h,cpp} src/ccutil/
- cp ${src}/tesseract_mod/genericvector.h src/ccutil/
- cp ${src}/tesseract_mod/input.cpp src/lstm/
- cp ${src}/tesseract_mod/lstmrecognizer.cpp src/lstm/
- cp ${src}/tesseract_mod/mainblk.cpp src/ccutil/
- cp ${src}/tesseract_mod/params.cpp src/ccutil/
- cp ${src}/tesseract_mod/serialis.{h,cpp} src/ccutil/
- cp ${src}/tesseract_mod/tesscapi.cpp src/api/
- cp ${src}/tesseract_mod/tessdatamanager.cpp src/ccstruct/
- cp ${src}/tesseract_mod/tessedit.cpp src/ccmain/
- cp ${src}/include_mod/{tesseract.h,leptonica.h} src/api/
- '';
- patches = [ ./tesseract.patch ];
+ patches = [ ./tesseract.patch ]; # Last verified with tesseract 1.4
});
};
in
diff --git a/pkgs/applications/misc/k2pdfopt/k2pdfopt-mupdf-1.16.1.patch b/pkgs/applications/misc/k2pdfopt/k2pdfopt-mupdf-1.16.1.patch
new file mode 100644
index 00000000000..3a9eca30e75
--- /dev/null
+++ b/pkgs/applications/misc/k2pdfopt/k2pdfopt-mupdf-1.16.1.patch
@@ -0,0 +1,151 @@
+diff --git a/willuslib/wmupdf.c b/willuslib/wmupdf.c
+index 81627ef..f14a96c 100644
+--- a/willuslib/wmupdf.c
++++ b/willuslib/wmupdf.c
+@@ -189,8 +189,6 @@ int wmupdf_remake_pdf(char *infile,char *outfile,WPDFPAGEINFO *pageinfo,int use_
+ pdf_write_opts.do_compress=1;
+ pdf_write_opts.do_linear=0;
+ pdf_write_opts.do_garbage=1; /* 2 and 3 don't work for this. */
+- pdf_write_opts.continue_on_error=0;
+- pdf_write_opts.errors=NULL;
+ write_failed=0;
+ wpdfpageinfo_sort(pageinfo);
+ xref=NULL;
+@@ -1687,8 +1685,8 @@ WPDFOUTLINE *wpdfoutline_read_from_pdf_file(char *filename)
+ /* Sumatra version of MuPDF v1.4 -- use locally installed fonts */
+ pdf_install_load_system_font_funcs(ctx);
+ fz_try(ctx) { doc=fz_open_document(ctx,filename); }
+- fz_catch(ctx)
+- {
++ fz_catch(ctx)
++ {
+ fz_drop_context(ctx);
+ return(NULL);
+ }
+@@ -1890,5 +1888,5 @@ static pdf_obj *pdf_new_string_utf8(fz_context *ctx,char *string)
+ willus_mem_free((double **)&utfbuf,funcname);
+ return(pdfobj);
+ }
+-
++
+ #endif /* HAVE_MUPDF_LIB */
+diff --git a/willuslib/wmupdfinfo.c b/willuslib/wmupdfinfo.c
+index 5c7f38c..9b9e6fd 100644
+--- a/willuslib/wmupdfinfo.c
++++ b/willuslib/wmupdfinfo.c
+@@ -237,23 +237,22 @@ static void showglobalinfo(fz_context *ctx, globals *glo,char *filename)
+ pdf_obj *robj;
+
+ robj=pdf_resolve_indirect(ctx,obj);
+- n=pdf_sprint_obj(ctx,NULL,0,robj,1);
+- buf=malloc(n+2);
++ buf=pdf_sprint_obj(ctx,NULL,0,&n,robj,1,0);
+ if (buf==NULL)
+ {
+ fz_write_printf(ctx,out,"Info object (%d %d R):\n",pdf_to_num(ctx,obj),pdf_to_gen(ctx,obj));
+- pdf_print_obj(ctx,out,robj,1);
++ pdf_print_obj(ctx,out,robj,1,0);
+ }
+ else
+ {
+- pdf_sprint_obj(ctx,buf,n+2,robj,1);
++ pdf_sprint_obj(ctx,buf,n+2,&n,robj,1,0);
+ display_pdf_field(ctx,out,buf,"Title","TITLE");
+ display_pdf_field(ctx,out,buf,"CreationDate","CREATED");
+ display_pdf_field(ctx,out,buf,"ModDate","LAST MODIFIED");
+ display_pdf_field(ctx,out,buf,"Producer","PDF PRODUCER");
+ display_pdf_field(ctx,out,buf,"Creator","CREATOR");
+ display_file_size(ctx,out,filename);
+- free(buf);
++ fz_free(ctx,buf);
+ }
+ }
+ if (glo->dims==1)
+@@ -275,7 +274,7 @@ static void showglobalinfo(fz_context *ctx, globals *glo,char *filename)
+ if (obj)
+ {
+ fz_write_printf(ctx,out, "\nEncryption object (%d %d R):\n", pdf_to_num(ctx,obj), pdf_to_gen(ctx,obj));
+- pdf_print_obj(ctx,out, pdf_resolve_indirect(ctx,obj), 1);
++ pdf_print_obj(ctx,out, pdf_resolve_indirect(ctx,obj), 1, 0);
+ }
+ }
+
+@@ -396,7 +395,7 @@ gatherdimensions(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_
+ if (j < glo->dims)
+ return;
+
+- glo->dim = fz_resize_array(ctx, glo->dim, glo->dims+1, sizeof(struct info));
++ glo->dim = fz_realloc_array(ctx, glo->dim, glo->dims+1, struct info);
+ glo->dims++;
+
+ glo->dim[glo->dims - 1].page = page;
+@@ -441,7 +440,7 @@ gatherfonts(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_obj *
+ if (k < glo->fonts)
+ continue;
+
+- glo->font = fz_resize_array(ctx, glo->font, glo->fonts+1, sizeof(struct info));
++ glo->font = fz_realloc_array(ctx, glo->font, glo->fonts+1, struct info);
+ glo->fonts++;
+
+ glo->font[glo->fonts - 1].page = page;
+@@ -510,7 +509,7 @@ gatherimages(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_obj
+ if (k < glo->images)
+ continue;
+
+- glo->image = fz_resize_array(ctx, glo->image, glo->images+1, sizeof(struct info));
++ glo->image = fz_realloc_array(ctx, glo->image, glo->images+1, struct info);
+ glo->images++;
+
+ glo->image[glo->images - 1].page = page;
+@@ -568,7 +567,7 @@ gatherforms(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_obj *
+ if (k < glo->forms)
+ continue;
+
+- glo->form = fz_resize_array(ctx, glo->form, glo->forms+1, sizeof(struct info));
++ glo->form = fz_realloc_array(ctx, glo->form, glo->forms+1, struct info);
+ glo->forms++;
+
+ glo->form[glo->forms - 1].page = page;
+@@ -613,7 +612,7 @@ gatherpsobjs(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_obj
+ if (k < glo->psobjs)
+ continue;
+
+- glo->psobj = fz_resize_array(ctx, glo->psobj, glo->psobjs+1, sizeof(struct info));
++ glo->psobj = fz_realloc_array(ctx, glo->psobj, glo->psobjs+1, struct info);
+ glo->psobjs++;
+
+ glo->psobj[glo->psobjs - 1].page = page;
+@@ -656,7 +655,7 @@ gathershadings(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_ob
+ if (k < glo->shadings)
+ continue;
+
+- glo->shading = fz_resize_array(ctx, glo->shading, glo->shadings+1, sizeof(struct info));
++ glo->shading = fz_realloc_array(ctx, glo->shading, glo->shadings+1, struct info);
+ glo->shadings++;
+
+ glo->shading[glo->shadings - 1].page = page;
+@@ -724,7 +723,7 @@ gatherpatterns(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_ob
+ if (k < glo->patterns)
+ continue;
+
+- glo->pattern = fz_resize_array(ctx, glo->pattern, glo->patterns+1, sizeof(struct info));
++ glo->pattern = fz_realloc_array(ctx, glo->pattern, glo->patterns+1, struct info);
+ glo->patterns++;
+
+ glo->pattern[glo->patterns - 1].page = page;
+@@ -1216,7 +1215,7 @@ void wmupdfinfo_get(char *filename,int *pagelist,char **buf)
+ if (fout==NULL)
+ return;
+ */
+-
++
+ ctx = fz_new_context(NULL, NULL, FZ_STORE_UNLIMITED);
+ if (!ctx)
+ {
+@@ -1307,5 +1306,5 @@ static void date_convert(char *dst,char *src)
+ else if (src[i]!='\0')
+ sprintf(&dst[strlen(dst)]," %s",&src[i]);
+ }
+-
++
+ #endif /* HAVE_MUPDF_LIB */
diff --git a/pkgs/applications/misc/k2pdfopt/leptonica-CVE-2018-3836.patch b/pkgs/applications/misc/k2pdfopt/leptonica-CVE-2018-3836.patch
deleted file mode 100644
index f1b4170fbaa..00000000000
--- a/pkgs/applications/misc/k2pdfopt/leptonica-CVE-2018-3836.patch
+++ /dev/null
@@ -1,95 +0,0 @@
---- a/src/allheaders.h
-+++ b/src/allheaders.h
-@@ -2600,6 +2600,7 @@
- LEPT_DLL extern char * stringReverse ( const char *src );
- LEPT_DLL extern char * strtokSafe ( char *cstr, const char *seps, char **psaveptr );
- LEPT_DLL extern l_int32 stringSplitOnToken ( char *cstr, const char *seps, char **phead, char **ptail );
-+LEPT_DLL extern l_int32 stringCheckForChars ( const char *src, const char *chars, l_int32 *pfound );
- LEPT_DLL extern char * stringRemoveChars ( const char *src, const char *remchars );
- LEPT_DLL extern l_int32 stringFindSubstr ( const char *src, const char *sub, l_int32 *ploc );
- LEPT_DLL extern char * stringReplaceSubstr ( const char *src, const char *sub1, const char *sub2, l_int32 *pfound, l_int32 *ploc );
---- a/src/gplot.c
-+++ b/src/gplot.c
-@@ -141,9 +141,10 @@
- const char *xlabel,
- const char *ylabel)
- {
--char *newroot;
--char buf[L_BUF_SIZE];
--GPLOT *gplot;
-+char *newroot;
-+char buf[L_BUF_SIZE];
-+l_int32 badchar;
-+GPLOT *gplot;
-
- PROCNAME("gplotCreate");
-
-@@ -152,6 +153,9 @@
- if (outformat != GPLOT_PNG && outformat != GPLOT_PS &&
- outformat != GPLOT_EPS && outformat != GPLOT_LATEX)
- return (GPLOT *)ERROR_PTR("outformat invalid", procName, NULL);
-+ stringCheckForChars(rootname, "`;&|><\"?*", &badchar);
-+ if (badchar) /* danger of command injection */
-+ return (GPLOT *)ERROR_PTR("invalid rootname", procName, NULL);
-
- if ((gplot = (GPLOT *)LEPT_CALLOC(1, sizeof(GPLOT))) == NULL)
- return (GPLOT *)ERROR_PTR("gplot not made", procName, NULL);
---- a/src/utils2.c
-+++ b/src/utils2.c
-@@ -42,6 +42,7 @@
- * l_int32 stringSplitOnToken()
- *
- * Find and replace string and array procs
-+ * l_int32 stringCheckForChars()
- * char *stringRemoveChars()
- * l_int32 stringFindSubstr()
- * char *stringReplaceSubstr()
-@@ -701,6 +702,48 @@
- /*--------------------------------------------------------------------*
- * Find and replace procs *
- *--------------------------------------------------------------------*/
-+/*!
-+ * \brief stringCheckForChars()
-+ *
-+ * \param[in] src input string; can be of zero length
-+ * \param[in] chars string of chars to be searched for in %src
-+ * \param[out] pfound 1 if any characters are found; 0 otherwise
-+ * \return 0 if OK, 1 on error
-+ *
-+ *
-+ * Notes:
-+ * (1) This can be used to sanitize an operation by checking for
-+ * special characters that don't belong in a string.
-+ *
-+ */
-+l_int32
-+stringCheckForChars(const char *src,
-+ const char *chars,
-+ l_int32 *pfound)
-+{
-+char ch;
-+l_int32 i, n;
-+
-+ PROCNAME("stringCheckForChars");
-+
-+ if (!pfound)
-+ return ERROR_INT("&found not defined", procName, 1);
-+ *pfound = FALSE;
-+ if (!src || !chars)
-+ return ERROR_INT("src and chars not both defined", procName, 1);
-+
-+ n = strlen(src);
-+ for (i = 0; i < n; i++) {
-+ ch = src[i];
-+ if (strchr(chars, ch)) {
-+ *pfound = TRUE;
-+ break;
-+ }
-+ }
-+ return 0;
-+}
-+
-+
- /*!
- * \brief stringRemoveChars()
- *
diff --git a/pkgs/applications/misc/k2pdfopt/leptonica.patch b/pkgs/applications/misc/k2pdfopt/leptonica.patch
new file mode 100644
index 00000000000..dfab99fd013
--- /dev/null
+++ b/pkgs/applications/misc/k2pdfopt/leptonica.patch
@@ -0,0 +1,254 @@
+From 8c11a20925686855023df90ed477957c7d7fe91e Mon Sep 17 00:00:00 2001
+From: Daniel Fullmer
+Date: Fri, 13 Sep 2019 15:54:21 -0400
+Subject: [PATCH] Willus mod for k2pdfopt
+
+---
+ src/allheaders.h | 4 ++
+ src/dewarp2.c | 106 ++++++++++++++++++++++++++++++++++++++++++-----
+ src/leptwin.c | 6 ++-
+ 3 files changed, 104 insertions(+), 12 deletions(-)
+
+diff --git a/src/allheaders.h b/src/allheaders.h
+index e68eff1..b3cc729 100644
+--- a/src/allheaders.h
++++ b/src/allheaders.h
+@@ -669,6 +669,10 @@ LEPT_DLL extern L_DEWARPA * dewarpaReadMem ( const l_uint8 *data, size_t size );
+ LEPT_DLL extern l_ok dewarpaWrite ( const char *filename, L_DEWARPA *dewa );
+ LEPT_DLL extern l_ok dewarpaWriteStream ( FILE *fp, L_DEWARPA *dewa );
+ LEPT_DLL extern l_ok dewarpaWriteMem ( l_uint8 **pdata, size_t *psize, L_DEWARPA *dewa );
++/* WILLUS MOD */
++ LEPT_DLL extern l_int32 dewarpBuildPageModel_ex ( L_DEWARP *dew, const char *debugfile,l_int32 fit_order );
++ LEPT_DLL extern l_int32 dewarpFindVertDisparity_ex ( L_DEWARP *dew, PTAA *ptaa, l_int32 rotflag,l_int32 fit_order );
++ LEPT_DLL extern l_int32 dewarpBuildLineModel_ex ( L_DEWARP *dew, l_int32 opensize, const char *debugfile,l_int32 fit_order );
+ LEPT_DLL extern l_ok dewarpBuildPageModel ( L_DEWARP *dew, const char *debugfile );
+ LEPT_DLL extern l_ok dewarpFindVertDisparity ( L_DEWARP *dew, PTAA *ptaa, l_int32 rotflag );
+ LEPT_DLL extern l_ok dewarpFindHorizDisparity ( L_DEWARP *dew, PTAA *ptaa );
+diff --git a/src/dewarp2.c b/src/dewarp2.c
+index 220eec1..2e29500 100644
+--- a/src/dewarp2.c
++++ b/src/dewarp2.c
+@@ -144,9 +144,17 @@ static const l_float32 L_ALLOWED_W_FRACT = 0.05; /* no bigger */
+ * longest textlines.
+ *
+ */
++/* WILLUS MOD */
+ l_ok
+-dewarpBuildPageModel(L_DEWARP *dew,
+- const char *debugfile)
++dewarpBuildPageModel(L_DEWARP *dew,const char *debugfile)
++{
++return(dewarpBuildPageModel_ex(dew,debugfile,2));
++}
++
++l_ok
++dewarpBuildPageModel_ex(L_DEWARP *dew,
++ const char *debugfile,
++ l_int32 fit_order)
+ {
+ l_int32 linecount, topline, botline, ret;
+ PIX *pixs, *pix1, *pix2, *pix3;
+@@ -225,7 +233,7 @@ PTAA *ptaa1, *ptaa2;
+ /* Get the sampled vertical disparity from the textline centers.
+ * The disparity array will push pixels vertically so that each
+ * textline is flat and centered at the y-position of the mid-point. */
+- if (dewarpFindVertDisparity(dew, ptaa2, 0) != 0) {
++ if (dewarpFindVertDisparity_ex(dew, ptaa2, 0, fit_order) != 0) {
+ L_WARNING("vertical disparity not built\n", procName);
+ ptaaDestroy(&ptaa2);
+ return 1;
+@@ -290,13 +298,24 @@ PTAA *ptaa1, *ptaa2;
+ * a pdf. Non-pix debug output goes to /tmp.
+ *
+ */
++/* WILLUS MOD */
+ l_ok
+ dewarpFindVertDisparity(L_DEWARP *dew,
+ PTAA *ptaa,
+ l_int32 rotflag)
+ {
++return(dewarpFindVertDisparity_ex(dew,ptaa,rotflag,2));
++}
++/* WILLUS MOD -- add cubic and quartic fits and ..._ex functions */
++l_int32
++dewarpFindVertDisparity_ex(L_DEWARP *dew,
++ PTAA *ptaa,
++ l_int32 rotflag,
++ l_int32 fit_order)
++{
+ l_int32 i, j, nlines, npts, nx, ny, sampling;
+-l_float32 c0, c1, c2, x, y, midy, val, medval, meddev, minval, maxval;
++/* WILLUS MOD */
++l_float32 c0, c1, c2, c3, c4, x, y, midy, val, medval, meddev, minval, maxval;
+ l_float32 *famidys;
+ NUMA *nax, *nafit, *nacurve0, *nacurve1, *nacurves;
+ NUMA *namidy, *namidys, *namidysi;
+@@ -304,11 +323,22 @@ PIX *pix1, *pix2, *pixcirc, *pixdb;
+ PTA *pta, *ptad, *ptacirc;
+ PTAA *ptaa0, *ptaa1, *ptaa2, *ptaa3, *ptaa4, *ptaa5, *ptaat;
+ FPIX *fpix;
++/* WILLUS MOD */
++l_int32 fit_order1,fit_order2;
+
+ PROCNAME("dewarpFindVertDisparity");
+
+ if (!dew)
+ return ERROR_INT("dew not defined", procName, 1);
++/* WILLUS MOD */
++ if (fit_order < 10)
++ fit_order1 = fit_order2 = fit_order;
++ else
++ {
++ fit_order1=fit_order % 10;
++ fit_order2=fit_order / 10;
++ fit_order2=fit_order2 % 10;
++ }
+ dew->vsuccess = 0;
+ if (!ptaa)
+ return ERROR_INT("ptaa not defined", procName, 1);
+@@ -331,12 +361,32 @@ FPIX *fpix;
+ pixdb = (rotflag) ? pixRotateOrth(dew->pixs, 1) : pixClone(dew->pixs);
+ for (i = 0; i < nlines; i++) { /* for each line */
+ pta = ptaaGetPta(ptaa, i, L_CLONE);
+- ptaGetQuadraticLSF(pta, &c2, &c1, &c0, NULL);
+- numaAddNumber(nacurve0, c2);
++/* WILLUS MOD */
++if (fit_order1>3)
++ {
++ ptaGetQuarticLSF(pta, &c4, &c3, &c2, &c1, &c0, NULL);
++ numaAddNumber(nacurve0, c4);
++ }
++else if (fit_order1==3)
++ {
++ ptaGetCubicLSF(pta, &c3, &c2, &c1, &c0, NULL);
++ numaAddNumber(nacurve0, c3);
++ }
++else
++ {
++ ptaGetQuadraticLSF(pta, &c2, &c1, &c0, NULL);
++ numaAddNumber(nacurve0, c2);
++ }
+ ptad = ptaCreate(nx);
+ for (j = 0; j < nx; j++) { /* uniformly sampled in x */
+ x = j * sampling;
+- applyQuadraticFit(c2, c1, c0, x, &y);
++/* WILLUS MOD */
++if (fit_order1>3)
++ applyQuarticFit(c4, c3, c2, c1, c0, x, &y);
++else if (fit_order1==3)
++ applyCubicFit(c3, c2, c1, c0, x, &y);
++else
++ applyQuadraticFit(c2, c1, c0, x, &y);
+ ptaAddPt(ptad, x, y);
+ }
+ ptaaAddPta(ptaa0, ptad, L_INSERT);
+@@ -350,7 +400,13 @@ FPIX *fpix;
+ for (i = 0; i < nlines; i++) {
+ pta = ptaaGetPta(ptaa, i, L_CLONE);
+ ptaGetArrays(pta, &nax, NULL);
+- ptaGetQuadraticLSF(pta, NULL, NULL, NULL, &nafit);
++/* WILLUS MOD */
++if (fit_order1>3)
++ptaGetQuarticLSF(pta, NULL, NULL, NULL, NULL, NULL, &nafit);
++else if (fit_order1==3)
++ptaGetCubicLSF(pta, NULL, NULL, NULL, NULL, &nafit);
++else
++ptaGetQuadraticLSF(pta, NULL, NULL, NULL, &nafit);
+ ptad = ptaCreateFromNuma(nax, nafit);
+ ptaaAddPta(ptaat, ptad, L_INSERT);
+ ptaDestroy(&pta);
+@@ -494,11 +550,24 @@ FPIX *fpix;
+ ptaa5 = ptaaCreate(nx); /* uniformly sampled across full height of image */
+ for (j = 0; j < nx; j++) { /* for each column */
+ pta = ptaaGetPta(ptaa4, j, L_CLONE);
+- ptaGetQuadraticLSF(pta, &c2, &c1, &c0, NULL);
++/* WILLUS MOD */
++/* Order higher than 2 can cause a little craziness here. */
++if (fit_order2>3)
++ ptaGetQuarticLSF(pta, &c4, &c3, &c2, &c1, &c0, NULL);
++else if (fit_order2==3)
++ ptaGetCubicLSF(pta, &c3, &c2, &c1, &c0, NULL);
++else
++ ptaGetQuadraticLSF(pta, &c2, &c1, &c0, NULL);
+ ptad = ptaCreate(ny);
+ for (i = 0; i < ny; i++) { /* uniformly sampled in y */
+ y = i * sampling;
+- applyQuadraticFit(c2, c1, c0, y, &val);
++/* WILLUS MOD */
++if (fit_order2>3)
++ applyQuarticFit(c4, c3, c2, c1, c0, y, &val);
++else if (fit_order2==3)
++ applyCubicFit(c3, c2, c1, c0, y, &val);
++else
++ applyQuadraticFit(c2, c1, c0, y, &val);
+ ptaAddPt(ptad, y, val);
+ }
+ ptaaAddPta(ptaa5, ptad, L_INSERT);
+@@ -1602,11 +1671,21 @@ FPIX *fpix;
+ * See notes there.
+ *
+ */
++/* WILLUS MOD */
+ l_ok
+ dewarpBuildLineModel(L_DEWARP *dew,
+ l_int32 opensize,
+ const char *debugfile)
+ {
++return(dewarpBuildLineModel_ex(dew,opensize,debugfile,2));
++}
++
++l_int32
++dewarpBuildLineModel_ex(L_DEWARP *dew,
++ l_int32 opensize,
++ const char *debugfile,
++ l_int32 fit_order)
++{
+ char buf[64];
+ l_int32 i, j, bx, by, ret, nlines;
+ BOXA *boxa;
+@@ -1695,6 +1774,8 @@ PTAA *ptaa1, *ptaa2;
+
+ /* Remove all lines that are not at least 0.75 times the length
+ * of the longest line. */
++/* WILLUS MOD */
++/*
+ ptaa2 = dewarpRemoveShortLines(pix, ptaa1, 0.75, DEBUG_SHORT_LINES);
+ if (debugfile) {
+ pix1 = pixConvertTo32(pix);
+@@ -1704,6 +1785,8 @@ PTAA *ptaa1, *ptaa2;
+ pixDestroy(&pix1);
+ pixDestroy(&pix2);
+ }
++*/
++ptaa2=ptaa1;
+ ptaaDestroy(&ptaa1);
+ nlines = ptaaGetCount(ptaa2);
+ if (nlines < dew->minlines) {
+@@ -1717,7 +1800,8 @@ PTAA *ptaa1, *ptaa2;
+ * centers. The disparity array will push pixels vertically
+ * so that each line is flat and centered at the y-position
+ * of the mid-point. */
+- ret = dewarpFindVertDisparity(dew, ptaa2, 1 - i);
++/* WILLUS MOD */
++ ret = dewarpFindVertDisparity_ex(dew, ptaa2, 1 - i, fit_order);
+
+ /* If i == 0, move the result to the horizontal disparity,
+ * rotating it back by -90 degrees. */
+diff --git a/src/leptwin.c b/src/leptwin.c
+index 72643a0..573d33e 100644
+--- a/src/leptwin.c
++++ b/src/leptwin.c
+@@ -364,5 +364,9 @@ PIXCMAP *cmap;
+
+ return hBitmap;
+ }
+-
++#else
++/* willus mod: Avoid weird issue with OS/X library archiver when there are no symbols */
++int leptwin_my_empty_func(void);
++int leptwin_my_empty_func(void)
++{return(0);}
+ #endif /* _WIN32 */
+--
+2.22.0
+
diff --git a/pkgs/applications/misc/k2pdfopt/mupdf.patch b/pkgs/applications/misc/k2pdfopt/mupdf.patch
new file mode 100644
index 00000000000..0c59a1d2016
--- /dev/null
+++ b/pkgs/applications/misc/k2pdfopt/mupdf.patch
@@ -0,0 +1,1060 @@
+From d8927c969e3387ca2669a616c0ba53bce918a031 Mon Sep 17 00:00:00 2001
+From: Daniel Fullmer
+Date: Fri, 13 Sep 2019 15:11:45 -0400
+Subject: [PATCH] Willus mod for k2pdfopt
+
+---
+ source/fitz/filter-basic.c | 3 +
+ source/fitz/font-win32.c | 866 +++++++++++++++++++++++++++++++++++++
+ source/fitz/font.c | 3 +
+ source/fitz/stext-device.c | 5 +
+ source/fitz/string.c | 5 +
+ source/pdf/pdf-annot.c | 14 +-
+ source/pdf/pdf-link.c | 3 +
+ source/pdf/pdf-parse.c | 5 +
+ source/pdf/pdf-xref.c | 9 +
+ 9 files changed, 912 insertions(+), 1 deletion(-)
+ create mode 100644 source/fitz/font-win32.c
+
+diff --git a/source/fitz/filter-basic.c b/source/fitz/filter-basic.c
+index 0713a62e7..b8ef4d292 100644
+--- a/source/fitz/filter-basic.c
++++ b/source/fitz/filter-basic.c
+@@ -259,7 +259,10 @@ look_for_endstream:
+ if (!state->warned)
+ {
+ state->warned = 1;
++/* willus mod -- no warning */
++/*
+ fz_warn(ctx, "PDF stream Length incorrect");
++*/
+ }
+ return *stm->rp++;
+ }
+diff --git a/source/fitz/font-win32.c b/source/fitz/font-win32.c
+new file mode 100644
+index 000000000..45de8cfd3
+--- /dev/null
++++ b/source/fitz/font-win32.c
+@@ -0,0 +1,866 @@
++/*
++** Routines to access MS Windows system fonts.
++** From sumatra PDF distro.
++** Modified for MuPDF v1.9a by willus.com
++*/
++#include "mupdf/pdf.h"
++
++/*
++ Which fonts are embedded is based on a few preprocessor definitions.
++
++ The base 14 fonts are always embedded.
++ For CJK font substitution we embed DroidSansFallback.
++
++ Set NOCJK to skip all CJK support (this also omits embedding the CJK CMaps)
++ Set NOCJKFONT to skip the embedded CJK font.
++ Set NOCJKFULL to embed a smaller CJK font without CJK Extension A support.
++*/
++
++#ifdef NOCJK
++#define NOCJKFONT
++#endif
++
++/* SumatraPDF: also load fonts included with Windows */
++#ifdef _WIN32
++
++#ifndef UNICODE
++#define UNICODE
++#endif
++#ifndef _UNICODE
++#define _UNICODE
++#endif
++
++#include
++
++// TODO: Use more of FreeType for TTF parsing (for performance reasons,
++// the fonts can't be parsed completely, though)
++#include
++#include FT_TRUETYPE_IDS_H
++#include FT_TRUETYPE_TAGS_H
++
++#define TTC_VERSION1 0x00010000
++#define TTC_VERSION2 0x00020000
++
++#define MAX_FACENAME 128
++
++// Note: the font face must be the first field so that the structure
++// can be treated like a simple string for searching
++typedef struct pdf_fontmapMS_s
++{
++ char fontface[MAX_FACENAME];
++ char fontpath[MAX_PATH];
++ int index;
++} pdf_fontmapMS;
++
++typedef struct pdf_fontlistMS_s
++{
++ pdf_fontmapMS *fontmap;
++ int len;
++ int cap;
++} pdf_fontlistMS;
++
++typedef struct _tagTT_OFFSET_TABLE
++{
++ ULONG uVersion;
++ USHORT uNumOfTables;
++ USHORT uSearchRange;
++ USHORT uEntrySelector;
++ USHORT uRangeShift;
++} TT_OFFSET_TABLE;
++
++typedef struct _tagTT_TABLE_DIRECTORY
++{
++ ULONG uTag; //table name
++ ULONG uCheckSum; //Check sum
++ ULONG uOffset; //Offset from beginning of file
++ ULONG uLength; //length of the table in bytes
++} TT_TABLE_DIRECTORY;
++
++typedef struct _tagTT_NAME_TABLE_HEADER
++{
++ USHORT uFSelector; //format selector. Always 0
++ USHORT uNRCount; //Name Records count
++ USHORT uStorageOffset; //Offset for strings storage, from start of the table
++} TT_NAME_TABLE_HEADER;
++
++typedef struct _tagTT_NAME_RECORD
++{
++ USHORT uPlatformID;
++ USHORT uEncodingID;
++ USHORT uLanguageID;
++ USHORT uNameID;
++ USHORT uStringLength;
++ USHORT uStringOffset; //from start of storage area
++} TT_NAME_RECORD;
++
++typedef struct _tagFONT_COLLECTION
++{
++ ULONG Tag;
++ ULONG Version;
++ ULONG NumFonts;
++} FONT_COLLECTION;
++
++static struct {
++ char *name;
++ char *pattern;
++} baseSubstitutes[] = {
++ { "Courier", "CourierNewPSMT" },
++ { "Courier-Bold", "CourierNewPS-BoldMT" },
++ { "Courier-Oblique", "CourierNewPS-ItalicMT" },
++ { "Courier-BoldOblique", "CourierNewPS-BoldItalicMT" },
++ { "Helvetica", "ArialMT" },
++ { "Helvetica-Bold", "Arial-BoldMT" },
++ { "Helvetica-Oblique", "Arial-ItalicMT" },
++ { "Helvetica-BoldOblique", "Arial-BoldItalicMT" },
++ { "Times-Roman", "TimesNewRomanPSMT" },
++ { "Times-Bold", "TimesNewRomanPS-BoldMT" },
++ { "Times-Italic", "TimesNewRomanPS-ItalicMT" },
++ { "Times-BoldItalic", "TimesNewRomanPS-BoldItalicMT" },
++ { "Symbol", "SymbolMT" },
++};
++static const char *base_font_names[][10] =
++{
++ { "Courier", "CourierNew", "CourierNewPSMT", NULL },
++ { "Courier-Bold", "CourierNew,Bold", "Courier,Bold",
++ "CourierNewPS-BoldMT", "CourierNew-Bold", NULL },
++ { "Courier-Oblique", "CourierNew,Italic", "Courier,Italic",
++ "CourierNewPS-ItalicMT", "CourierNew-Italic", NULL },
++ { "Courier-BoldOblique", "CourierNew,BoldItalic", "Courier,BoldItalic",
++ "CourierNewPS-BoldItalicMT", "CourierNew-BoldItalic", NULL },
++ { "Helvetica", "ArialMT", "Arial", NULL },
++ { "Helvetica-Bold", "Arial-BoldMT", "Arial,Bold", "Arial-Bold",
++ "Helvetica,Bold", NULL },
++ { "Helvetica-Oblique", "Arial-ItalicMT", "Arial,Italic", "Arial-Italic",
++ "Helvetica,Italic", "Helvetica-Italic", NULL },
++ { "Helvetica-BoldOblique", "Arial-BoldItalicMT",
++ "Arial,BoldItalic", "Arial-BoldItalic",
++ "Helvetica,BoldItalic", "Helvetica-BoldItalic", NULL },
++ { "Times-Roman", "TimesNewRomanPSMT", "TimesNewRoman",
++ "TimesNewRomanPS", NULL },
++ { "Times-Bold", "TimesNewRomanPS-BoldMT", "TimesNewRoman,Bold",
++ "TimesNewRomanPS-Bold", "TimesNewRoman-Bold", NULL },
++ { "Times-Italic", "TimesNewRomanPS-ItalicMT", "TimesNewRoman,Italic",
++ "TimesNewRomanPS-Italic", "TimesNewRoman-Italic", NULL },
++ { "Times-BoldItalic", "TimesNewRomanPS-BoldItalicMT",
++ "TimesNewRoman,BoldItalic", "TimesNewRomanPS-BoldItalic",
++ "TimesNewRoman-BoldItalic", NULL },
++ { "Symbol", "Symbol,Italic", "Symbol,Bold", "Symbol,BoldItalic",
++ "SymbolMT", "SymbolMT,Italic", "SymbolMT,Bold", "SymbolMT,BoldItalic", NULL },
++ { "ZapfDingbats", NULL }
++};
++
++static pdf_fontlistMS fontlistMS =
++{
++ NULL,
++ 0,
++ 0,
++};
++static int strcmp_ignore_space(const char *a, const char *b);
++static const char *clean_font_name(const char *fontname);
++static const char *pdf_clean_base14_name(const char *fontname);
++
++static inline USHORT BEtoHs(USHORT x)
++{
++ BYTE *data = (BYTE *)&x;
++ return (data[0] << 8) | data[1];
++}
++
++static inline ULONG BEtoHl(ULONG x)
++{
++ BYTE *data = (BYTE *)&x;
++ return (data[0] << 24) | (data[1] << 16) | (data[2] << 8) | data[3];
++}
++
++static int strcmp_ignore_space(const char *a, const char *b)
++{
++ while (1)
++ {
++ while (*a == ' ')
++ a++;
++ while (*b == ' ')
++ b++;
++ if (*a != *b)
++ return 1;
++ if (*a == 0)
++ return *a != *b;
++ if (*b == 0)
++ return *a != *b;
++ a++;
++ b++;
++ }
++}
++
++/* A little bit more sophisticated name matching so that e.g. "EurostileExtended"
++ matches "EurostileExtended-Roman" or "Tahoma-Bold,Bold" matches "Tahoma-Bold" */
++static int
++lookup_compare(const void *elem1, const void *elem2)
++{
++ const char *val1 = elem1;
++ const char *val2 = elem2;
++ int len1 = strlen(val1);
++ int len2 = strlen(val2);
++
++ if (len1 != len2)
++ {
++ const char *rest = len1 > len2 ? val1 + len2 : val2 + len1;
++ if (',' == *rest || !_stricmp(rest, "-roman"))
++ return _strnicmp(val1, val2, fz_mini(len1, len2));
++ }
++
++ return _stricmp(val1, val2);
++}
++
++static void
++remove_spaces(char *srcDest)
++{
++ char *dest;
++
++ for (dest = srcDest; *srcDest; srcDest++)
++ if (*srcDest != ' ')
++ *dest++ = *srcDest;
++ *dest = '\0';
++}
++
++static int
++str_ends_with(const char *str, const char *end)
++{
++ size_t len1 = strlen(str);
++ size_t len2 = strlen(end);
++
++ return len1 >= len2 && !strcmp(str + len1 - len2, end);
++}
++
++static pdf_fontmapMS *
++pdf_find_windows_font_path(const char *fontname)
++{
++ return bsearch(fontname, fontlistMS.fontmap, fontlistMS.len, sizeof(pdf_fontmapMS), lookup_compare);
++}
++
++/* source and dest can be same */
++static void
++decode_unicode_BE(fz_context *ctx, char *source, int sourcelen, char *dest, int destlen)
++{
++ WCHAR *tmp;
++ int converted, i;
++
++ if (sourcelen % 2 != 0)
++ fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : invalid unicode string");
++
++ tmp = fz_malloc_array(ctx, sourcelen / 2 + 1, sizeof(WCHAR));
++ for (i = 0; i < sourcelen / 2; i++)
++ tmp[i] = BEtoHs(((WCHAR *)source)[i]);
++ tmp[sourcelen / 2] = '\0';
++
++ converted = WideCharToMultiByte(CP_UTF8, 0, tmp, -1, dest, destlen, NULL, NULL);
++ fz_free(ctx, tmp);
++ if (!converted)
++ fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : invalid unicode string");
++}
++
++static void
++decode_platform_string(fz_context *ctx, int platform, int enctype, char *source, int sourcelen, char *dest, int destlen)
++{
++ switch (platform)
++ {
++ case TT_PLATFORM_APPLE_UNICODE:
++ switch (enctype)
++ {
++ case TT_APPLE_ID_DEFAULT:
++ case TT_APPLE_ID_UNICODE_2_0:
++ decode_unicode_BE(ctx, source, sourcelen, dest, destlen);
++ return;
++ }
++ fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : unsupported encoding (%d/%d)", platform, enctype);
++ case TT_PLATFORM_MACINTOSH:
++ switch (enctype)
++ {
++ case TT_MAC_ID_ROMAN:
++ if (sourcelen + 1 > destlen)
++ fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : overlong fontname: %s", source);
++ // TODO: Convert to UTF-8 from what encoding?
++ memcpy(dest, source, sourcelen);
++ dest[sourcelen] = 0;
++ return;
++ }
++ fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : unsupported encoding (%d/%d)", platform, enctype);
++ case TT_PLATFORM_MICROSOFT:
++ switch (enctype)
++ {
++ case TT_MS_ID_SYMBOL_CS:
++ case TT_MS_ID_UNICODE_CS:
++ case TT_MS_ID_UCS_4:
++ decode_unicode_BE(ctx, source, sourcelen, dest, destlen);
++ return;
++ }
++ fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : unsupported encoding (%d/%d)", platform, enctype);
++ default:
++ fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : unsupported encoding (%d/%d)", platform, enctype);
++ }
++}
++
++static void
++grow_system_font_list(fz_context *ctx, pdf_fontlistMS *fl)
++{
++ int newcap;
++ pdf_fontmapMS *newitems;
++
++ if (fl->cap == 0)
++ newcap = 1024;
++ else
++ newcap = fl->cap * 2;
++
++ // use realloc/free for the fontmap, since the list can
++ // remain in memory even with all fz_contexts destroyed
++ newitems = realloc(fl->fontmap, newcap * sizeof(pdf_fontmapMS));
++ if (!newitems)
++ fz_throw(ctx, FZ_ERROR_GENERIC, "OOM in grow_system_font_list");
++ memset(newitems + fl->cap, 0, sizeof(pdf_fontmapMS) * (newcap - fl->cap));
++
++ fl->fontmap = newitems;
++ fl->cap = newcap;
++}
++
++static void
++append_mapping(fz_context *ctx, pdf_fontlistMS *fl, const char *facename, const char *path, int index)
++{
++ if (fl->len == fl->cap)
++ grow_system_font_list(ctx, fl);
++
++ if (fl->len >= fl->cap)
++ fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : fontlist overflow");
++
++ fz_strlcpy(fl->fontmap[fl->len].fontface, facename, sizeof(fl->fontmap[0].fontface));
++ fz_strlcpy(fl->fontmap[fl->len].fontpath, path, sizeof(fl->fontmap[0].fontpath));
++ fl->fontmap[fl->len].index = index;
++
++ ++fl->len;
++}
++
++static void
++safe_read(fz_context *ctx, fz_stream *file, int offset, char *buf, int size)
++{
++ int n;
++ fz_seek(ctx, file, offset, 0);
++ n = fz_read(ctx, file, (unsigned char *)buf, size);
++ if (n != size)
++ fz_throw(ctx, FZ_ERROR_GENERIC, "safe_read: read %d, expected %d", n, size);
++}
++
++static void
++read_ttf_string(fz_context *ctx, fz_stream *file, int offset, TT_NAME_RECORD *ttRecordBE, char *buf, int size)
++{
++ char szTemp[MAX_FACENAME * 2];
++ // ignore empty and overlong strings
++ int stringLength = BEtoHs(ttRecordBE->uStringLength);
++ if (stringLength == 0 || stringLength >= sizeof(szTemp))
++ return;
++
++ safe_read(ctx, file, offset + BEtoHs(ttRecordBE->uStringOffset), szTemp, stringLength);
++ decode_platform_string(ctx, BEtoHs(ttRecordBE->uPlatformID),
++ BEtoHs(ttRecordBE->uEncodingID), szTemp, stringLength, buf, size);
++}
++
++static void
++makeFakePSName(char szName[MAX_FACENAME], const char *szStyle)
++{
++ // append the font's subfamily, unless it's a Regular font
++ if (*szStyle && _stricmp(szStyle, "Regular") != 0)
++ {
++ fz_strlcat(szName, "-", MAX_FACENAME);
++ fz_strlcat(szName, szStyle, MAX_FACENAME);
++ }
++ remove_spaces(szName);
++}
++
++static void
++parseTTF(fz_context *ctx, fz_stream *file, int offset, int index, const char *path)
++{
++ TT_OFFSET_TABLE ttOffsetTableBE;
++ TT_TABLE_DIRECTORY tblDirBE;
++ TT_NAME_TABLE_HEADER ttNTHeaderBE;
++ TT_NAME_RECORD ttRecordBE;
++
++ char szPSName[MAX_FACENAME] = { 0 };
++ char szTTName[MAX_FACENAME] = { 0 };
++ char szStyle[MAX_FACENAME] = { 0 };
++ char szCJKName[MAX_FACENAME] = { 0 };
++ int i, count, tblOffset;
++
++ safe_read(ctx, file, offset, (char *)&ttOffsetTableBE, sizeof(TT_OFFSET_TABLE));
++
++ // check if this is a TrueType font of version 1.0 or an OpenType font
++ if (BEtoHl(ttOffsetTableBE.uVersion) != TTC_VERSION1 &&
++ BEtoHl(ttOffsetTableBE.uVersion) != TTAG_OTTO)
++ {
++ fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : invalid font version %x", (unsigned int)BEtoHl(ttOffsetTableBE.uVersion));
++ }
++
++ // determine the name table's offset by iterating through the offset table
++ count = BEtoHs(ttOffsetTableBE.uNumOfTables);
++ for (i = 0; i < count; i++)
++ {
++ int entryOffset = offset + sizeof(TT_OFFSET_TABLE) + i * sizeof(TT_TABLE_DIRECTORY);
++ safe_read(ctx, file, entryOffset, (char *)&tblDirBE, sizeof(TT_TABLE_DIRECTORY));
++ if (!BEtoHl(tblDirBE.uTag) || BEtoHl(tblDirBE.uTag) == TTAG_name)
++ break;
++ }
++ if (count == i || !BEtoHl(tblDirBE.uTag))
++ fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : nameless font");
++ tblOffset = BEtoHl(tblDirBE.uOffset);
++
++ // read the 'name' table for record count and offsets
++ safe_read(ctx, file, tblOffset, (char *)&ttNTHeaderBE, sizeof(TT_NAME_TABLE_HEADER));
++ offset = tblOffset + sizeof(TT_NAME_TABLE_HEADER);
++ tblOffset += BEtoHs(ttNTHeaderBE.uStorageOffset);
++
++ // read through the strings for PostScript name and font family
++ count = BEtoHs(ttNTHeaderBE.uNRCount);
++ for (i = 0; i < count; i++)
++ {
++ short langId, nameId;
++ BOOL isCJKName;
++
++ safe_read(ctx, file, offset + i * sizeof(TT_NAME_RECORD), (char *)&ttRecordBE, sizeof(TT_NAME_RECORD));
++
++ langId = BEtoHs(ttRecordBE.uLanguageID);
++ nameId = BEtoHs(ttRecordBE.uNameID);
++ isCJKName = TT_NAME_ID_FONT_FAMILY == nameId && LANG_CHINESE == PRIMARYLANGID(langId);
++
++ // ignore non-English strings (except for Chinese font names)
++ if (langId && langId != TT_MS_LANGID_ENGLISH_UNITED_STATES && !isCJKName)
++ continue;
++ // ignore names other than font (sub)family and PostScript name
++ fz_try(ctx)
++ {
++ if (isCJKName)
++ read_ttf_string(ctx, file, tblOffset, &ttRecordBE, szCJKName, sizeof(szCJKName));
++ else if (TT_NAME_ID_FONT_FAMILY == nameId)
++ read_ttf_string(ctx, file, tblOffset, &ttRecordBE, szTTName, sizeof(szTTName));
++ else if (TT_NAME_ID_FONT_SUBFAMILY == nameId)
++ read_ttf_string(ctx, file, tblOffset, &ttRecordBE, szStyle, sizeof(szStyle));
++ else if (TT_NAME_ID_PS_NAME == nameId)
++ read_ttf_string(ctx, file, tblOffset, &ttRecordBE, szPSName, sizeof(szPSName));
++ }
++ fz_catch(ctx)
++ {
++ fz_warn(ctx, "ignoring face name decoding fonterror");
++ }
++ }
++
++ // try to prevent non-Arial fonts from accidentally substituting Arial
++ if (!strcmp(szPSName, "ArialMT"))
++ {
++ // cf. https://code.google.com/p/sumatrapdf/issues/detail?id=2471
++ if (strcmp(szTTName, "Arial") != 0)
++ szPSName[0] = '\0';
++ // TODO: is there a better way to distinguish Arial Caps from Arial proper?
++ // cf. http://code.google.com/p/sumatrapdf/issues/detail?id=1290
++ else if (strstr(path, "caps") || strstr(path, "Caps"))
++ fz_throw(ctx, FZ_ERROR_GENERIC, "ignore %s, as it can't be distinguished from Arial,Regular", path);
++ }
++
++ if (szPSName[0])
++ append_mapping(ctx, &fontlistMS, szPSName, path, index);
++ if (szTTName[0])
++ {
++ // derive a PostScript-like name and add it, if it's different from the font's
++ // included PostScript name; cf. http://code.google.com/p/sumatrapdf/issues/detail?id=376
++ makeFakePSName(szTTName, szStyle);
++ // compare the two names before adding this one
++ if (lookup_compare(szTTName, szPSName))
++ append_mapping(ctx, &fontlistMS, szTTName, path, index);
++ }
++ if (szCJKName[0])
++ {
++ makeFakePSName(szCJKName, szStyle);
++ if (lookup_compare(szCJKName, szPSName) && lookup_compare(szCJKName, szTTName))
++ append_mapping(ctx, &fontlistMS, szCJKName, path, index);
++ }
++}
++
++static void
++parseTTFs(fz_context *ctx, const char *path)
++{
++ fz_stream *file = fz_open_file(ctx, path);
++ /* "fonterror : %s not found", path */
++ fz_try(ctx)
++ {
++ parseTTF(ctx, file, 0, 0, path);
++ }
++ fz_always(ctx)
++ {
++ fz_drop_stream(ctx,file);
++ }
++ fz_catch(ctx)
++ {
++ fz_rethrow(ctx);
++ }
++}
++
++static void
++parseTTCs(fz_context *ctx, const char *path)
++{
++ FONT_COLLECTION fontcollectionBE;
++ ULONG i, numFonts, *offsettableBE = NULL;
++
++ fz_stream *file = fz_open_file(ctx, path);
++ /* "fonterror : %s not found", path */
++
++ fz_var(offsettableBE);
++
++ fz_try(ctx)
++ {
++ safe_read(ctx, file, 0, (char *)&fontcollectionBE, sizeof(FONT_COLLECTION));
++ if (BEtoHl(fontcollectionBE.Tag) != TTAG_ttcf)
++ fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : wrong format %x", (unsigned int)BEtoHl(fontcollectionBE.Tag));
++ if (BEtoHl(fontcollectionBE.Version) != TTC_VERSION1 &&
++ BEtoHl(fontcollectionBE.Version) != TTC_VERSION2)
++ {
++ fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : invalid version %x", (unsigned int)BEtoHl(fontcollectionBE.Version));
++ }
++
++ numFonts = BEtoHl(fontcollectionBE.NumFonts);
++ offsettableBE = fz_malloc_array(ctx, numFonts, sizeof(ULONG));
++
++ safe_read(ctx, file, sizeof(FONT_COLLECTION), (char *)offsettableBE, numFonts * sizeof(ULONG));
++ for (i = 0; i < numFonts; i++)
++ parseTTF(ctx, file, BEtoHl(offsettableBE[i]), i, path);
++ }
++ fz_always(ctx)
++ {
++ fz_free(ctx, offsettableBE);
++ fz_drop_stream(ctx,file);
++ }
++ fz_catch(ctx)
++ {
++ fz_rethrow(ctx);
++ }
++}
++
++static void
++extend_system_font_list(fz_context *ctx, const WCHAR *path)
++{
++ WCHAR szPath[MAX_PATH], *lpFileName;
++ WIN32_FIND_DATA FileData;
++ HANDLE hList;
++
++ GetFullPathName(path, nelem(szPath), szPath, &lpFileName);
++
++ hList = FindFirstFile(szPath, &FileData);
++ if (hList == INVALID_HANDLE_VALUE)
++ {
++ // Don't complain about missing directories
++ if (GetLastError() == ERROR_FILE_NOT_FOUND)
++ return;
++ fz_throw(ctx, FZ_ERROR_GENERIC, "extend_system_font_list: unknown error %d", (int)GetLastError());
++ }
++ do
++ {
++ if (!(FileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
++ {
++ char szPathUtf8[MAX_PATH], *fileExt;
++ int res;
++ lstrcpyn(lpFileName, FileData.cFileName, szPath + MAX_PATH - lpFileName);
++ res = WideCharToMultiByte(CP_UTF8, 0, szPath, -1, szPathUtf8, sizeof(szPathUtf8), NULL, NULL);
++ if (!res)
++ {
++ fz_warn(ctx, "WideCharToMultiByte failed for %S", szPath);
++ continue;
++ }
++ fileExt = szPathUtf8 + strlen(szPathUtf8) - 4;
++ fz_try(ctx)
++ {
++ if (!_stricmp(fileExt, ".ttc"))
++ parseTTCs(ctx, szPathUtf8);
++ else if (!_stricmp(fileExt, ".ttf") || !_stricmp(fileExt, ".otf"))
++ parseTTFs(ctx, szPathUtf8);
++ }
++ fz_catch(ctx)
++ {
++ // ignore errors occurring while parsing a given font file
++ }
++ }
++ } while (FindNextFile(hList, &FileData));
++ FindClose(hList);
++}
++
++static void
++destroy_system_font_list(void)
++{
++ free(fontlistMS.fontmap);
++ memset(&fontlistMS, 0, sizeof(fontlistMS));
++}
++
++static void
++create_system_font_list(fz_context *ctx)
++{
++ WCHAR szFontDir[MAX_PATH];
++ UINT cch;
++
++ cch = GetWindowsDirectory(szFontDir, nelem(szFontDir) - 12);
++ if (0 < cch && cch < nelem(szFontDir) - 12)
++ {
++ /* willus.com edit--Win XP default MSVCRT.DLL doesn't have wcscat_s */
++#ifdef _WIN64
++ wcscat_s(szFontDir, MAX_PATH, L"\\Fonts\\*.?t?");
++#else
++ wcscat(szFontDir,L"\\Fonts\\*.?t?");
++#endif
++ extend_system_font_list(ctx, szFontDir);
++ }
++
++ if (fontlistMS.len == 0)
++ fz_warn(ctx, "couldn't find any usable system fonts");
++
++#ifdef NOCJKFONT
++ {
++ // If no CJK fallback font is builtin but one has been shipped separately (in the same
++ // directory as the main executable), add it to the list of loadable system fonts
++ WCHAR szFile[MAX_PATH], *lpFileName;
++ GetModuleFileName(0, szFontDir, MAX_PATH);
++ GetFullPathName(szFontDir, MAX_PATH, szFile, &lpFileName);
++ lstrcpyn(lpFileName, L"DroidSansFallback.ttf", szFile + MAX_PATH - lpFileName);
++ extend_system_font_list(ctx, szFile);
++ }
++#endif
++
++ // sort the font list, so that it can be searched binarily
++ qsort(fontlistMS.fontmap, fontlistMS.len, sizeof(pdf_fontmapMS), _stricmp);
++
++#ifdef DEBUG
++ // allow to overwrite system fonts for debugging purposes
++ // (either pass a full path or a search pattern such as "fonts\*.ttf")
++ cch = GetEnvironmentVariable(L"MUPDF_FONTS_PATTERN", szFontDir, nelem(szFontDir));
++ if (0 < cch && cch < nelem(szFontDir))
++ {
++ int i, prev_len = fontlistMS.len;
++ extend_system_font_list(ctx, szFontDir);
++ for (i = prev_len; i < fontlistMS.len; i++)
++ {
++ pdf_fontmapMS *entry = bsearch(fontlistMS.fontmap[i].fontface, fontlistMS.fontmap, prev_len, sizeof(pdf_fontmapMS), lookup_compare);
++ if (entry)
++ *entry = fontlistMS.fontmap[i];
++ }
++ qsort(fontlistMS.fontmap, fontlistMS.len, sizeof(pdf_fontmapMS), _stricmp);
++ }
++#endif
++
++ // make sure to clean up after ourselves
++ atexit(destroy_system_font_list);
++}
++
++static fz_font *
++pdf_load_windows_font_by_name(fz_context *ctx, const char *orig_name)
++{
++ pdf_fontmapMS *found = NULL;
++ char *comma, *fontname;
++ fz_font *font;
++
++ /* WILLUS MOD--not multi-threaded for k2pdfopt */
++ /* fz_synchronize_begin(); */
++ if (fontlistMS.len == 0)
++ {
++ fz_try(ctx)
++ {
++ create_system_font_list(ctx);
++ }
++ fz_catch(ctx) { }
++ }
++ /* WILLUS MOD--not multi-threaded for k2pdfopt */
++ /* fz_synchronize_end(); */
++ if (fontlistMS.len == 0)
++ fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror: couldn't find any fonts");
++
++ // work on a normalized copy of the font name
++ fontname = fz_strdup(ctx, orig_name);
++ remove_spaces(fontname);
++
++ // first, try to find the exact font name (including appended style information)
++ comma = strchr(fontname, ',');
++ if (comma)
++ {
++ *comma = '-';
++ found = pdf_find_windows_font_path(fontname);
++ *comma = ',';
++ }
++ // second, substitute the font name with a known PostScript name
++ else
++ {
++ int i;
++ for (i = 0; i < nelem(baseSubstitutes) && !found; i++)
++ if (!strcmp(fontname, baseSubstitutes[i].name))
++ found = pdf_find_windows_font_path(baseSubstitutes[i].pattern);
++ }
++ // third, search for the font name without additional style information
++ if (!found)
++ found = pdf_find_windows_font_path(fontname);
++ // fourth, try to separate style from basename for prestyled fonts (e.g. "ArialBold")
++ if (!found && !comma && (str_ends_with(fontname, "Bold") || str_ends_with(fontname, "Italic")))
++ {
++ int styleLen = str_ends_with(fontname, "Bold") ? 4 : str_ends_with(fontname, "BoldItalic") ? 10 : 6;
++ fontname = fz_resize_array(ctx, fontname, strlen(fontname) + 2, sizeof(char));
++ comma = fontname + strlen(fontname) - styleLen;
++ memmove(comma + 1, comma, styleLen + 1);
++ *comma = '-';
++ found = pdf_find_windows_font_path(fontname);
++ *comma = ',';
++ if (!found)
++ found = pdf_find_windows_font_path(fontname);
++ }
++ // fifth, try to convert the font name from the common Chinese codepage 936
++ if (!found && fontname[0] < 0)
++ {
++ WCHAR cjkNameW[MAX_FACENAME];
++ char cjkName[MAX_FACENAME];
++ if (MultiByteToWideChar(936, MB_ERR_INVALID_CHARS, fontname, -1, cjkNameW, nelem(cjkNameW)) &&
++ WideCharToMultiByte(CP_UTF8, 0, cjkNameW, -1, cjkName, nelem(cjkName), NULL, NULL))
++ {
++ comma = strchr(cjkName, ',');
++ if (comma)
++ {
++ *comma = '-';
++ found = pdf_find_windows_font_path(cjkName);
++ *comma = ',';
++ }
++ if (!found)
++ found = pdf_find_windows_font_path(cjkName);
++ }
++ }
++
++ fz_free(ctx, fontname);
++ if (!found)
++ fz_throw(ctx, FZ_ERROR_GENERIC, "couldn't find system font '%s'", orig_name);
++
++ /*
++ fz_warn(ctx, "loading non-embedded font '%s' from '%s'", orig_name, found->fontpath);
++ */
++
++ font = fz_new_font_from_file(ctx, orig_name, found->fontpath, found->index,
++ strcmp(found->fontface, "DroidSansFallback") != 0);
++ /* willus mod for MuPDF v1.10, 10-21-2016 */
++ {
++ fz_font_flags_t *flags;
++ flags=fz_font_flags(font);
++ if (flags!=NULL)
++ flags->ft_substitute = 1;
++ }
++ return font;
++}
++
++static fz_font *
++pdf_load_windows_font(fz_context *ctx, const char *fontname, int bold, int italic, int needs_exact_metrics)
++{
++ if (needs_exact_metrics)
++ {
++ const char *clean_name;
++ /* WILLUS: Declare pdf_clean_base14_name() */
++ extern const char *pdf_clean_base14_name(const char *fontname);
++
++ /* TODO: the metrics for Times-Roman and Courier don't match
++ those of Windows' Times New Roman and Courier New; for
++ some reason, Poppler doesn't seem to have this problem */
++ int len;
++ if (fz_lookup_builtin_font(ctx,fontname, bold, italic, &len))
++ return NULL;
++
++ /* cf. http://code.google.com/p/sumatrapdf/issues/detail?id=2173 */
++ clean_name = pdf_clean_base14_name(fontname);
++ if (clean_name != fontname && !strncmp(clean_name, "Times-", 6))
++ return NULL;
++ }
++
++ // TODO: unset font->ft_substitute for base14/needs_exact_metrics?
++ return pdf_load_windows_font_by_name(ctx, fontname);
++}
++
++static const char *clean_font_name(const char *fontname)
++{
++ int i, k;
++ for (i = 0; i < nelem(base_font_names); i++)
++ for (k = 0; base_font_names[i][k]; k++)
++ if (!strcmp_ignore_space(base_font_names[i][k], fontname))
++ return base_font_names[i][0];
++ return fontname;
++}
++
++
++/* SumatraPDF: expose clean_font_name */
++static const char * pdf_clean_base14_name(const char *fontname)
++{
++ return clean_font_name(fontname);
++}
++
++static fz_font *
++pdf_load_windows_cjk_font(fz_context *ctx, const char *fontname, int ros, int serif)
++{
++ fz_font *font;
++
++ font=NULL; /* WILLUS: Avoid compiler warning */
++ /* try to find a matching system font before falling back to an approximate one */
++ fz_try(ctx)
++ {
++ font = pdf_load_windows_font_by_name(ctx, fontname);
++ }
++ fz_catch(ctx)
++ {
++ font = NULL;
++ }
++ if (font)
++ return font;
++
++ /* try to fall back to a reasonable system font */
++ fz_try(ctx)
++ {
++ if (serif)
++ {
++ switch (ros)
++ {
++ case FZ_ADOBE_CNS: font = pdf_load_windows_font_by_name(ctx, "MingLiU"); break;
++ case FZ_ADOBE_GB: font = pdf_load_windows_font_by_name(ctx, "SimSun"); break;
++ case FZ_ADOBE_JAPAN: font = pdf_load_windows_font_by_name(ctx, "MS-Mincho"); break;
++ case FZ_ADOBE_KOREA: font = pdf_load_windows_font_by_name(ctx, "Batang"); break;
++ default: fz_throw(ctx, FZ_ERROR_GENERIC, "invalid serif ros");
++ }
++ }
++ else
++ {
++ switch (ros)
++ {
++ case FZ_ADOBE_CNS: font = pdf_load_windows_font_by_name(ctx, "DFKaiShu-SB-Estd-BF"); break;
++ case FZ_ADOBE_GB:
++ fz_try(ctx)
++ {
++ font = pdf_load_windows_font_by_name(ctx, "KaiTi");
++ }
++ fz_catch(ctx)
++ {
++ font = pdf_load_windows_font_by_name(ctx, "KaiTi_GB2312");
++ }
++ break;
++ case FZ_ADOBE_JAPAN: font = pdf_load_windows_font_by_name(ctx, "MS-Gothic"); break;
++ case FZ_ADOBE_KOREA: font = pdf_load_windows_font_by_name(ctx, "Gulim"); break;
++ default: fz_throw(ctx, FZ_ERROR_GENERIC, "invalid sans-serif ros");
++ }
++ }
++ }
++ fz_catch(ctx)
++ {
++#ifdef NOCJKFONT
++ /* If no CJK fallback font is builtin, maybe one has been shipped separately */
++ font = pdf_load_windows_font_by_name(ctx, "DroidSansFallback");
++#else
++ fz_rethrow(ctx);
++#endif
++ }
++
++ return font;
++}
++
++#endif
++
++void pdf_install_load_system_font_funcs(fz_context *ctx)
++{
++#ifdef _WIN32
++ fz_install_load_system_font_funcs(ctx, pdf_load_windows_font, pdf_load_windows_cjk_font, NULL);
++#endif
++}
+diff --git a/source/fitz/font.c b/source/fitz/font.c
+index 00c6e8f99..1448b4a56 100644
+--- a/source/fitz/font.c
++++ b/source/fitz/font.c
+@@ -4,8 +4,11 @@
+ #include "draw-imp.h"
+
+ #include
++/* willus mod -- remove hb includes */
++/*
+ #include "hb.h"
+ #include "hb-ft.h"
++*/
+
+ #include
+
+diff --git a/source/fitz/stext-device.c b/source/fitz/stext-device.c
+index 2df90305e..b1f99e056 100644
+--- a/source/fitz/stext-device.c
++++ b/source/fitz/stext-device.c
+@@ -825,6 +825,11 @@ fz_new_stext_device(fz_context *ctx, fz_stext_page *page, const fz_stext_options
+ dev->lastchar = ' ';
+ dev->curdir = 1;
+ dev->lasttext = NULL;
++ /* willus mod -- seems like this should be here, but not sure. */
++ if (opts)
++ dev->flags = opts->flags;
++ else
++ dev->flags = 0;
+
+ return (fz_device*)dev;
+ }
+diff --git a/source/fitz/string.c b/source/fitz/string.c
+index f8eedb682..7a767983d 100644
+--- a/source/fitz/string.c
++++ b/source/fitz/string.c
+@@ -560,6 +560,10 @@ fz_utflen(const char *s)
+ */
+ float fz_atof(const char *s)
+ {
++/* willus mod: atof(s), #if-#else-#endif */
++#if (!defined(__SSE__))
++ return(atof(s));
++#else
+ float result;
+
+ if (s == NULL)
+@@ -572,6 +576,7 @@ float fz_atof(const char *s)
+ return 1;
+ result = fz_clamp(result, -FLT_MAX, FLT_MAX);
+ return result;
++#endif
+ }
+
+ /*
+diff --git a/source/pdf/pdf-annot.c b/source/pdf/pdf-annot.c
+index 4dfdf36fe..acff7d12a 100644
+--- a/source/pdf/pdf-annot.c
++++ b/source/pdf/pdf-annot.c
+@@ -5,8 +5,20 @@
+ #include
+ #include
+
++/* willus mod--don't use _mkgmtime--not available in Win XP */
+ #ifdef _WIN32
+-#define timegm _mkgmtime
++static time_t timegm(struct tm *date);
++static time_t timegm(struct tm *date)
++
++ {
++ time_t t,z;
++ struct tm gmz;
++
++ z=(time_t)0;
++ gmz=(*gmtime(&z));
++ t=mktime(date)-mktime(&gmz);
++ return(t);
++ }
+ #endif
+
+ #define isdigit(c) (c >= '0' && c <= '9')
+diff --git a/source/pdf/pdf-link.c b/source/pdf/pdf-link.c
+index 37444b471..613cc05b9 100644
+--- a/source/pdf/pdf-link.c
++++ b/source/pdf/pdf-link.c
+@@ -345,6 +345,9 @@ pdf_resolve_link(fz_context *ctx, pdf_document *doc, const char *uri, float *xp,
+ }
+ return page;
+ }
++/* willus mod -- be quiet */
++/*
+ fz_warn(ctx, "unknown link uri '%s'", uri);
++*/
+ return -1;
+ }
+diff --git a/source/pdf/pdf-parse.c b/source/pdf/pdf-parse.c
+index 04a772204..9dd0cd898 100644
+--- a/source/pdf/pdf-parse.c
++++ b/source/pdf/pdf-parse.c
+@@ -663,9 +663,14 @@ pdf_parse_ind_obj(fz_context *ctx, pdf_document *doc,
+ if (c == '\r')
+ {
+ c = fz_peek_byte(ctx, file);
++/* willus mod -- no warning */
++/*
+ if (c != '\n')
+ fz_warn(ctx, "line feed missing after stream begin marker (%d %d R)", num, gen);
+ else
++*/
++if (c=='\n')
++/* willus mod -- end */
+ fz_read_byte(ctx, file);
+ }
+ stm_ofs = fz_tell(ctx, file);
+diff --git a/source/pdf/pdf-xref.c b/source/pdf/pdf-xref.c
+index 8f888059b..08de7bfba 100644
+--- a/source/pdf/pdf-xref.c
++++ b/source/pdf/pdf-xref.c
+@@ -710,8 +710,11 @@ pdf_xref_size_from_old_trailer(fz_context *ctx, pdf_document *doc, pdf_lexbuf *b
+ if (!s)
+ fz_throw(ctx, FZ_ERROR_GENERIC, "xref subsection length missing");
+ len = fz_atoi(fz_strsep(&s, " "));
++/* willus mod -- no warning */
++/*
+ if (len < 0)
+ fz_throw(ctx, FZ_ERROR_GENERIC, "xref subsection length must be positive");
++*/
+
+ /* broken pdfs where the section is not on a separate line */
+ if (s && *s != '\0')
+@@ -1378,7 +1381,10 @@ pdf_init_document(fz_context *ctx, pdf_document *doc)
+ {
+ pdf_drop_xref_sections(ctx, doc);
+ fz_rethrow_if(ctx, FZ_ERROR_TRYLATER);
++/* willus mod -- be quiet */
++/*
+ fz_warn(ctx, "trying to repair broken xref");
++*/
+ repaired = 1;
+ }
+
+@@ -1506,7 +1512,10 @@ pdf_drop_document_imp(fz_context *ctx, pdf_document *doc)
+ /* Swallow error, but continue dropping */
+ }
+
++/* willu smod -- no pdf_drop_js */
++/*
+ pdf_drop_js(ctx, doc->js);
++*/
+
+ pdf_drop_xref_sections(ctx, doc);
+ fz_free(ctx, doc->xref_index);
+--
+2.22.0
+
diff --git a/pkgs/applications/misc/k2pdfopt/tesseract.patch b/pkgs/applications/misc/k2pdfopt/tesseract.patch
index b882f5b949c..adfee9ae282 100644
--- a/pkgs/applications/misc/k2pdfopt/tesseract.patch
+++ b/pkgs/applications/misc/k2pdfopt/tesseract.patch
@@ -1,13 +1,675 @@
+From 39aa8502eee7bb669a29d1a9b3bfe5c9595ad960 Mon Sep 17 00:00:00 2001
+From: Daniel Fullmer
+Date: Fri, 13 Sep 2019 13:45:05 -0400
+Subject: [PATCH] Willus mod changes from k2pdfopt
+
+---
+ src/api/Makefile.am | 1 +
+ src/api/baseapi.cpp | 87 +++++++++++
+ src/api/baseapi.h | 3 +
+ src/api/tesscapi.cpp | 311 +++++++++++++++++++++++++++++++++++++
+ src/api/tesseract.h | 29 ++++
+ src/ccmain/tessedit.cpp | 5 +-
+ src/ccutil/ccutil.h | 7 +
+ src/ccutil/genericvector.h | 21 ++-
+ src/ccutil/mainblk.cpp | 17 +-
+ src/ccutil/params.cpp | 3 +-
+ src/ccutil/serialis.cpp | 3 +
+ src/ccutil/serialis.h | 2 +
+ src/lstm/input.cpp | 3 +
+ 13 files changed, 488 insertions(+), 4 deletions(-)
+ create mode 100644 src/api/tesscapi.cpp
+ create mode 100644 src/api/tesseract.h
+
diff --git a/src/api/Makefile.am b/src/api/Makefile.am
-index d8c1e54..46ead13 100644
+index d9b76eb6..cd2dc30f 100644
--- a/src/api/Makefile.am
+++ b/src/api/Makefile.am
-@@ -42,7 +42,7 @@ libtesseract_api_la_CPPFLAGS = $(AM_CPPFLAGS)
- if VISIBILITY
- libtesseract_api_la_CPPFLAGS += -DTESS_EXPORTS
- endif
--libtesseract_api_la_SOURCES = baseapi.cpp capi.cpp renderer.cpp pdfrenderer.cpp
-+libtesseract_api_la_SOURCES = baseapi.cpp capi.cpp renderer.cpp pdfrenderer.cpp tesscapi.cpp
+@@ -39,6 +39,7 @@ libtesseract_api_la_SOURCES += lstmboxrenderer.cpp
+ libtesseract_api_la_SOURCES += pdfrenderer.cpp
+ libtesseract_api_la_SOURCES += wordstrboxrenderer.cpp
+ libtesseract_api_la_SOURCES += renderer.cpp
++libtesseract_api_la_SOURCES += tesscapi.cpp
lib_LTLIBRARIES += libtesseract.la
- libtesseract_la_LDFLAGS =
+ libtesseract_la_LDFLAGS = $(LEPTONICA_LIBS) $(OPENCL_LDFLAGS) $(libarchive_LIBS)
+diff --git a/src/api/baseapi.cpp b/src/api/baseapi.cpp
+index 9245d07c..ea964ee6 100644
+--- a/src/api/baseapi.cpp
++++ b/src/api/baseapi.cpp
+@@ -215,6 +215,14 @@ TessBaseAPI::TessBaseAPI()
+ // Use the current locale if building debug code.
+ std::locale::global(std::locale(""));
+ #endif
++ const char *locale;
++ locale = std::setlocale(LC_ALL, nullptr);
++/* willus mod Remove assertions--taken care of in tesscapi.cpp */
++// ASSERT_HOST(!strcmp(locale, "C"));
++ locale = std::setlocale(LC_CTYPE, nullptr);
++// ASSERT_HOST(!strcmp(locale, "C"));
++ locale = std::setlocale(LC_NUMERIC, nullptr);
++// ASSERT_HOST(!strcmp(locale, "C"));
+ }
+
+ TessBaseAPI::~TessBaseAPI() {
+@@ -1333,6 +1341,85 @@ static void AddBoxToTSV(const PageIterator* it, PageIteratorLevel level,
+ text->add_str_int("\t", bottom - top);
+ }
+
++/* willus mod */
++int TessBaseAPI::GetOCRWords(int **x00,int **y00,int **x11,int **y11,int **ybaseline0,
++ char **utf8words)
++
++ {
++ int iword,nwords,totlen,it8;
++ int *x0,*y0,*x1,*y1,*ybaseline;
++ char *tutf8;
++
++ ResultIterator *res_it = GetIterator();
++ /* Count words */
++ iword=0;
++ totlen=0;
++ while (!res_it->Empty(RIL_BLOCK))
++ {
++ if (res_it->Empty(RIL_WORD))
++ {
++ res_it->Next(RIL_WORD);
++ continue;
++ }
++ iword++;
++ STRING textstr=std::unique_ptr(res_it->GetUTF8Text(RIL_WORD)).get();
++ totlen+=strlen(textstr.string())+1;
++ res_it->Next(RIL_WORD);
++ }
++ nwords=iword;
++/*
++printf("\nnwords=%d, totlen=%d\n",nwords,totlen);
++*/
++ x0=(*x00)=(int *)malloc(sizeof(int)*5*nwords);
++ y0=(*y00)=&x0[nwords];
++ x1=(*x11)=&y0[nwords];
++ y1=(*y11)=&x1[nwords];
++ ybaseline=(*ybaseline0)=&y1[nwords];
++ tutf8=(*utf8words)=(char *)malloc(totlen);
++ iword=0;
++ it8=0;
++ res_it->Begin();
++ while (!res_it->Empty(RIL_BLOCK))
++ {
++ if (res_it->Empty(RIL_WORD))
++ {
++ res_it->Next(RIL_WORD);
++ continue;
++ }
++ STRING textstr=std::unique_ptr(res_it->GetUTF8Text(RIL_WORD)).get();
++ strcpy(&tutf8[it8],textstr.string());
++ it8 += strlen(&tutf8[it8])+1;
++ /*
++ STRING textstr("");
++ textstr += std::unique_ptr(res_it->GetUTF8Text(RIL_WORD)).get();
++ */
++/*
++printf("Word %d: '%s'\n",iword,textstr.string());
++*/
++ int left, top, right, bottom;
++ int u1,v1,u2,v2;
++ res_it->BoundingBox(RIL_WORD, &left, &top, &right, &bottom);
++ res_it->Baseline(RIL_WORD, &u1, &v1, &u2, &v2);
++ x0[iword]=left;
++ x1[iword]=right;
++ y0[iword]=top;
++ y1[iword]=bottom;
++ ybaseline[iword]=(v1+v2)/2;
++ iword++;
++/*
++printf("BB: (%d,%d)-(%d,%d) BL: (%d,%d)-(%d,%d)\n",left,bottom,right,top,x1,y1,x2,y2);
++*/
++ res_it->Next(RIL_WORD);
++ }
++/*
++printf("iword=%d\n",iword);
++*/
++ return(iword);
++ }
++
++/* willus mod */
++int GetOCRWords(int **x0,int **y0,int **x1,int **y1,int **ybaseline,char **utf8words);
++
+ /**
+ * Make a TSV-formatted string from the internal data structures.
+ * page_number is 0-based but will appear in the output as 1-based.
+diff --git a/src/api/baseapi.h b/src/api/baseapi.h
+index 3724dd92..23be5920 100644
+--- a/src/api/baseapi.h
++++ b/src/api/baseapi.h
+@@ -575,6 +575,9 @@ class TESS_API TessBaseAPI {
+ */
+ char* GetHOCRText(ETEXT_DESC* monitor, int page_number);
+
++/* willus mod */
++int GetOCRWords(int **x0,int **y0,int **x1,int **y1,int **ybaseline,char **utf8words);
++
+ /**
+ * Make a HTML-formatted string with hOCR markup from the internal
+ * data structures.
+diff --git a/src/api/tesscapi.cpp b/src/api/tesscapi.cpp
+new file mode 100644
+index 00000000..1752fafe
+--- /dev/null
++++ b/src/api/tesscapi.cpp
+@@ -0,0 +1,311 @@
++/*
++** tesscapi.cpp willus.com attempt at C wrapper for tesseract.
++** (Butchered from tesseractmain.cpp)
++** Last udpated 9-1-12
++**
++** Copyright (C) 2012 http://willus.com
++**
++** This program is free software: you can redistribute it and/or modify
++** it under the terms of the GNU Affero General Public License as
++** published by the Free Software Foundation, either version 3 of the
++** License, or (at your option) any later version.
++**
++** This program is distributed in the hope that it will be useful,
++** but WITHOUT ANY WARRANTY; without even the implied warranty of
++** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++** GNU Affero General Public License for more details.
++**
++** You should have received a copy of the GNU Affero General Public License
++** along with this program. If not, see .
++**
++*/
++
++/*
++#include "mfcpch.h"
++*/
++// #define USE_VLD //Uncomment for Visual Leak Detector.
++#if (defined _MSC_VER && defined USE_VLD)
++#include
++#endif
++
++// Include automatically generated configuration file if running autoconf
++#ifdef HAVE_CONFIG_H
++#include "config_auto.h"
++#endif
++#include
++#ifdef USING_GETTEXT
++#include
++#define _(x) gettext(x)
++#else
++#define _(x) (x)
++#endif
++
++#include "allheaders.h"
++#include "baseapi.h"
++#include "strngs.h"
++#include "params.h"
++#include "blobs.h"
++#include "simddetect.h"
++#include "tesseractclass.h"
++/*
++#include "notdll.h"
++*/
++
++/* C Wrappers */
++#include "tesseract.h"
++
++// static tesseract::TessBaseAPI api[4];
++
++/*
++** ocr_type=0: OEM_DEFAULT
++** ocr_type=1: OEM_TESSERACT_ONLY
++** ocr_type=2: OEM_LSTM_ONLY
++** ocr_type=3: OEM_TESSERACT_LSTM_COMBINED
++*/
++void *tess_capi_init(char *datapath,char *language,int ocr_type,FILE *out,
++ char *initstr,int maxlen,int *status)
++
++ {
++ char original_locale[256];
++ tesseract::TessBaseAPI *api = new tesseract::TessBaseAPI;
++/*
++printf("@tess_capi_init\n");
++printf(" datapath='%s'\n",datapath);
++printf(" language='%s'\n",language);
++printf(" ocr_type=%d\n",ocr_type);
++*/
++#ifdef USE_NLS
++ setlocale (LC_ALL, "");
++ bindtextdomain (PACKAGE, LOCALEDIR);
++ textdomain (PACKAGE);
++#endif
++ /* willus mod, 11-24-16 */
++ /* Tesseract needs "C" locale to correctly parse all data .traineddata files. */
++/*
++printf("locale='%s'\n",setlocale(LC_ALL,NULL));
++printf("ctype='%s'\n",setlocale(LC_CTYPE,NULL));
++printf("numeric='%s'\n",setlocale(LC_NUMERIC,NULL));
++*/
++ strncpy(original_locale,setlocale(LC_ALL,NULL),255);
++ original_locale[255]='\0';
++/*
++printf("original_locale='%s'\n",original_locale);
++*/
++ setlocale(LC_ALL,"C");
++/*
++printf("new locale='%s'\n",setlocale(LC_ALL,NULL));
++printf("new ctype='%s'\n",setlocale(LC_CTYPE,NULL));
++printf("new numeric='%s'\n",setlocale(LC_NUMERIC,NULL));
++*/
++ // fprintf(stderr, "tesseract %s\n", tesseract::TessBaseAPI::Version());
++ // Make the order of args a bit more forgiving than it used to be.
++ const char* lang = "eng";
++ tesseract::PageSegMode pagesegmode = tesseract::PSM_SINGLE_BLOCK;
++ if (language!=NULL && language[0]!='\0')
++ lang = language;
++ /*
++ if (output == NULL)
++ {
++ fprintf(stderr, _("Usage:%s imagename outputbase [-l lang] "
++ "[-psm pagesegmode] [configfile...]\n"), argv[0]);
++ fprintf(stderr,
++ _("pagesegmode values are:\n"
++ "0 = Orientation and script detection (OSD) only.\n"
++ "1 = Automatic page segmentation with OSD.\n"
++ "2 = Automatic page segmentation, but no OSD, or OCR\n"
++ "3 = Fully automatic page segmentation, but no OSD. (Default)\n"
++ "4 = Assume a single column of text of variable sizes.\n"
++ "5 = Assume a single uniform block of vertically aligned text.\n"
++ "6 = Assume a single uniform block of text.\n"
++ "7 = Treat the image as a single text line.\n"
++ "8 = Treat the image as a single word.\n"
++ "9 = Treat the image as a single word in a circle.\n"
++ "10 = Treat the image as a single character.\n"));
++ fprintf(stderr, _("-l lang and/or -psm pagesegmode must occur before any"
++ "configfile.\n"));
++ exit(1);
++ }
++ */
++/*
++printf("SSE = %s\n",SIMDDetect::IsSSEAvailable() ? "AVAILABLE" : "NOT AVAILABLE");
++printf("AVX = %s\n",SIMDDetect::IsAVXAvailable() ? "AVAILABLE" : "NOT AVAILABLE");
++*/
++/*
++v4.00 loads either TESSERACT enginer, LSTM engine, or both. No CUBE.
++*/
++ ocr_type=0; /* Ignore specified and use default */
++ api->SetOutputName(NULL);
++ (*status)=api->Init(datapath,lang,
++ ocr_type==0 ? tesseract::OEM_DEFAULT :
++ (ocr_type==1 ? tesseract::OEM_TESSERACT_ONLY :
++ (ocr_type==2 ? tesseract::OEM_LSTM_ONLY :
++ (tesseract::OEM_TESSERACT_LSTM_COMBINED))));
++ if ((*status)!=0)
++ {
++ /* willus mod, 11-24-16 */
++ setlocale(LC_ALL,original_locale);
++ api->End();
++ delete api;
++ return(NULL);
++ }
++ /*
++ api.Init("tesscapi",lang,tesseract::OEM_DEFAULT,
++ &(argv[arg]), argc - arg, NULL, NULL, false);
++ */
++ // We have 2 possible sources of pagesegmode: a config file and
++ // the command line. For backwards compatability reasons, the
++ // default in tesseract is tesseract::PSM_SINGLE_BLOCK, but the
++ // default for this program is tesseract::PSM_AUTO. We will let
++ // the config file take priority, so the command-line default
++ // can take priority over the tesseract default, so we use the
++ // value from the command line only if the retrieved mode
++ // is still tesseract::PSM_SINGLE_BLOCK, indicating no change
++ // in any config file. Therefore the only way to force
++ // tesseract::PSM_SINGLE_BLOCK is from the command line.
++ // It would be simpler if we could set the value before Init,
++ // but that doesn't work.
++ if (api->GetPageSegMode() == tesseract::PSM_SINGLE_BLOCK)
++ api->SetPageSegMode(pagesegmode);
++
++ /*
++ ** Initialization message
++ */
++ {
++ char istr[1024];
++ int sse,avx;
++
++// printf("tessedit_ocr_engine_mode = %d\n",tessedit_ocr_engine_mode);
++ sprintf(istr,"%s",api->Version());
++ sse=tesseract::SIMDDetect::IsSSEAvailable();
++ avx=tesseract::SIMDDetect::IsAVXAvailable();
++ if (sse || avx)
++ sprintf(&istr[strlen(istr)]," [%s]",sse&&avx?"SSE+AVX":(sse?"SSE":"AVX"));
++ sprintf(&istr[strlen(istr)],"\n Tesseract data folder = '%s'",datapath==NULL?getenv("TESSDATA_PREFIX"):datapath);
++ strcat(istr,"\n Tesseract languages: ");
++ GenericVector languages;
++ api->GetLoadedLanguagesAsVector(&languages);
++/*
++printf("OEM=%d\n",api->oem());
++printf("Langs='%s'\n",api->GetInitLanguagesAsString());
++printf("AnyTessLang()=%d\n",(int)api->tesseract()->AnyTessLang());
++printf("AnyLSTMLang()=%d\n",(int)api->tesseract()->AnyLSTMLang());
++printf("num_sub_langs()=%d\n",api->tesseract()->num_sub_langs());
++printf("languages.size()=%d\n",(int)languages.size());
++*/
++
++ for (int i=0;i<=api->tesseract()->num_sub_langs();i++)
++ {
++ tesseract::Tesseract *lang1;
++ int eng;
++ lang1 = i==0 ? api->tesseract() : api->tesseract()->get_sub_lang(i-1);
++ eng=(int)lang1->tessedit_ocr_engine_mode;
++ sprintf(&istr[strlen(istr)],"%s%s [%s]",i==0?"":", ",lang1->lang.string(),
++ eng==2?"LSTM+Tess":(eng==1?"LSTM":"Tess"));
++ }
++/*
++printf("%d. '%s'\n",i+1,languages[i].string());
++printf(" sublang[%d].oem_engine = %d\n",i+1,(int)api->tesseract()->get_sub_lang(i)->tessedit_ocr_engine_mode);
++*/
++
++ /*
++ if (ocr_type==0 || ocr_type==3)
++ sprintf(&istr[strlen(istr)],"[LSTM+] (lang=");
++ else if (ocr_type==2)
++ sprintf(&istr[strlen(istr)],"[LSTM] (lang=");
++ strncpy(&istr[strlen(istr)],language,253-strlen(istr));
++ istr[253]='\0';
++ strcat(istr,")");
++ */
++ if (out!=NULL)
++ fprintf(out,"%s\n",istr);
++ if (initstr!=NULL)
++ {
++ strncpy(initstr,istr,maxlen-1);
++ initstr[maxlen-1]='\0';
++ }
++ }
++
++
++ /* Turn off LSTM debugging output */
++ api->SetVariable("lstm_debug_level","0");
++#if (WILLUSDEBUG & 1)
++ api->SetVariable("lstm_debug_level","9");
++ api->SetVariable("paragraph_debug_level","9");
++ api->SetVariable("tessdata_manager_debug_level","9");
++ api->SetVariable("tosp_debug_level","9");
++ api->SetVariable("wordrec_debug_level","9");
++ api->SetVariable("segsearch_debug_level","9");
++#endif
++ /* willus mod, 11-24-16 */
++ setlocale(LC_ALL,original_locale);
++ return((void *)api);
++ }
++
++
++int tess_capi_get_ocr(void *vapi,PIX *pix,char *outstr,int maxlen,int segmode,FILE *out)
++
++ {
++ tesseract::TessBaseAPI *api;
++ static int old_segmode=-1;
++
++ api=(tesseract::TessBaseAPI *)vapi;
++ if (old_segmode != segmode)
++ {
++ old_segmode=segmode;
++ api->SetPageSegMode((tesseract::PageSegMode)segmode);
++ }
++ if (!api->ProcessPage(pix,0,NULL,NULL,0,NULL))
++ {
++ /* pixDestroy(&pix); */
++ if (out!=NULL)
++ fprintf(out,"tesscapi: Error during bitmap processing.\n");
++ api->Clear();
++ return(-1);
++ }
++ strncpy(outstr,api->GetUTF8Text(),maxlen-1);
++ outstr[maxlen-1]='\0';
++ api->Clear();
++ return(0);
++ }
++
++
++int tess_capi_get_ocr_multiword(void *vapi,PIX *pix,int segmode,
++ int **left,int **top,int **right,int **bottom,
++ int **ybase,char **text,int *nw,
++ FILE *out)
++
++ {
++ tesseract::TessBaseAPI *api;
++ static int old_segmode=-1;
++
++ api=(tesseract::TessBaseAPI *)vapi;
++ if (old_segmode != segmode)
++ {
++ old_segmode=segmode;
++ api->SetPageSegMode((tesseract::PageSegMode)segmode);
++ }
++ if (!api->ProcessPage(pix,0,NULL,NULL,0,NULL))
++ {
++ if (out!=NULL)
++ fprintf(out,"tesscapi: Error during bitmap processing.\n");
++ api->Clear();
++ (*nw)=0;
++ return(-1);
++ }
++ (*nw)=api->GetOCRWords(left,top,right,bottom,ybase,text);
++ api->Clear();
++ return(0);
++ }
++
++
++void tess_capi_end(void *vapi)
++
++ {
++ tesseract::TessBaseAPI *api;
++
++ if (vapi==NULL)
++ return;
++ api=(tesseract::TessBaseAPI *)vapi;
++ api->End();
++ delete api;
++ }
+diff --git a/src/api/tesseract.h b/src/api/tesseract.h
+new file mode 100644
+index 00000000..575948cc
+--- /dev/null
++++ b/src/api/tesseract.h
+@@ -0,0 +1,29 @@
++/*
++** Willus.com's Tesseract C Wrappers
++**
++** 6-8-12
++**
++*/
++
++#ifndef _TESSERACT_H_
++#define _TESSERACT_H_
++
++//#include
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++void *tess_capi_init(char *datapath,char *language,int ocr_type,FILE *out,
++ char *initstr,int maxlen,int *status);
++int tess_capi_get_ocr(void *api,PIX *pix,char *outstr,int maxlen,int segmode,FILE *out);
++int tess_capi_get_ocr_multiword(void *vapi,PIX *pix,int segmode,
++ int **left,int **top,int **right,int **bottom,
++ int **ybase,char **text,int *nw,
++ FILE *out);
++void tess_capi_end(void *api);
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif
+diff --git a/src/ccmain/tessedit.cpp b/src/ccmain/tessedit.cpp
+index 17f0951b..7af94ee2 100644
+--- a/src/ccmain/tessedit.cpp
++++ b/src/ccmain/tessedit.cpp
+@@ -101,6 +101,10 @@ bool Tesseract::init_tesseract_lang_data(
+ " to your \"tessdata\" directory.\n");
+ return false;
+ }
++ /* willus mod */
++ TFile fp;
++ strncpy(fp.tfile_filename,tessdata_path.string(),511);
++ fp.tfile_filename[511]='\0';
+ #ifndef DISABLED_LEGACY_ENGINE
+ if (oem == OEM_DEFAULT) {
+ // Set the engine mode from availability, which can then be overridden by
+@@ -116,7 +120,6 @@ bool Tesseract::init_tesseract_lang_data(
+ #endif // ndef DISABLED_LEGACY_ENGINE
+
+ // If a language specific config file (lang.config) exists, load it in.
+- TFile fp;
+ if (mgr->GetComponent(TESSDATA_LANG_CONFIG, &fp)) {
+ ParamUtils::ReadParamsFromFp(SET_PARAM_CONSTRAINT_NONE, &fp,
+ this->params());
+diff --git a/src/ccutil/ccutil.h b/src/ccutil/ccutil.h
+index 71e89c60..bdeccc14 100644
+--- a/src/ccutil/ccutil.h
++++ b/src/ccutil/ccutil.h
+@@ -80,6 +80,13 @@ class CCUtil {
+ // Member parameters.
+ // These have to be declared and initialized after params_ member, since
+ // params_ should be initialized before parameters are added to it.
++/* willus mod */
++/*
++ #ifdef _WIN32
++ STRING_VAR_H(tessedit_module_name, WINDLLNAME,
++ "Module colocated with tessdata dir");
++ #endif
++*/
+ INT_VAR_H(ambigs_debug_level, 0, "Debug level for unichar ambiguities");
+ BOOL_VAR_H(use_definite_ambigs_for_classifier, false,
+ "Use definite ambiguities when running character classifier");
+diff --git a/src/ccutil/genericvector.h b/src/ccutil/genericvector.h
+index 3556d153..3a5e8662 100644
+--- a/src/ccutil/genericvector.h
++++ b/src/ccutil/genericvector.h
+@@ -382,7 +382,26 @@ inline bool LoadDataFromFile(const char* filename, GenericVector* data) {
+ // reserve an extra byte in case caller wants to append a '\0' character
+ data->reserve(size + 1);
+ data->resize_no_init(size);
+- result = static_cast(fread(&(*data)[0], 1, size, fp)) == size;
++ /* willus mod Dec 2018--weird issue with Win XP and MinGW gcc 7.3.0 */
++ /* Can't read entire file at once -- need to break up into smaller blocksize reads */
++ {
++ int frs,n;
++ int blocksize;
++ blocksize=1024*1024;
++ for (n=0;1;)
++ {
++ int bs;
++ bs= size-n > blocksize ? blocksize : size-n;
++ frs=(int)fread(&(*data)[n],1,bs,fp);
++ n+=frs;
++ if (frs=size)
++ break;
++ }
++ result = static_cast((long)n==size);
++ }
++ /*
++ result = static_cast(fread(&(*data)[0], 1, size, fp)) == size;
++ */
+ }
+ fclose(fp);
+ }
+diff --git a/src/ccutil/mainblk.cpp b/src/ccutil/mainblk.cpp
+index 52b04b04..80b26044 100644
+--- a/src/ccutil/mainblk.cpp
++++ b/src/ccutil/mainblk.cpp
+@@ -55,8 +55,22 @@ void CCUtil::main_setup(const char *argv0, const char *basename) {
+ #if defined(_WIN32)
+ } else if (datadir == nullptr || _access(datadir.string(), 0) != 0) {
+ /* Look for tessdata in directory of executable. */
++ /*
++ char drive[_MAX_DRIVE];
++ char dir[_MAX_DIR];
++ */
+ char path[_MAX_PATH];
+- DWORD length = GetModuleFileName(nullptr, path, sizeof(path));
++ int i;
++ /* DWORD length = */ GetModuleFileName(nullptr, path, sizeof(path));
++ /* willus mod--avoid _splitpath_s -- not in XP */
++ for (i=strlen(path)-1;i>=0 && path[i]!='/' && path[i]!='\\';i--);
++ if (i>=0)
++ {
++ path[i]='\0';
++ datadir=path;
++ datadir += "/tessdata";
++ }
++ /*
+ if (length > 0 && length < sizeof(path)) {
+ char* separator = std::strrchr(path, '\\');
+ if (separator != nullptr) {
+@@ -65,6 +79,7 @@ void CCUtil::main_setup(const char *argv0, const char *basename) {
+ datadir += "/tessdata";
+ }
+ }
++ */
+ #endif /* _WIN32 */
+ #if defined(TESSDATA_PREFIX)
+ } else {
+diff --git a/src/ccutil/params.cpp b/src/ccutil/params.cpp
+index 00bf2563..486c5ce0 100644
+--- a/src/ccutil/params.cpp
++++ b/src/ccutil/params.cpp
+@@ -82,7 +82,8 @@ bool ParamUtils::ReadParamsFromFp(SetParamConstraint constraint, TFile *fp,
+
+ if (!foundit) {
+ anyerr = true; // had an error
+- tprintf("Warning: Parameter not found: %s\n", line);
++ /* willus mod */
++ tprintf("Tesseract warning: Parameter %s not found in file %s.\n",line,fp->tfile_filename);
+ }
+ }
+ }
+diff --git a/src/ccutil/serialis.cpp b/src/ccutil/serialis.cpp
+index 7def011f..6107a494 100644
+--- a/src/ccutil/serialis.cpp
++++ b/src/ccutil/serialis.cpp
+@@ -201,6 +201,9 @@ bool TFile::Open(const STRING& filename, FileReader reader) {
+ offset_ = 0;
+ is_writing_ = false;
+ swap_ = false;
++ /* willus mod */
++ strncpy(tfile_filename,filename.string(),511);
++ tfile_filename[511]='\0';
+ if (reader == nullptr)
+ return LoadDataFromFile(filename, data_);
+ else
+diff --git a/src/ccutil/serialis.h b/src/ccutil/serialis.h
+index 095b9227..4cc8251e 100644
+--- a/src/ccutil/serialis.h
++++ b/src/ccutil/serialis.h
+@@ -77,6 +77,8 @@ class TFile {
+ public:
+ TFile();
+ ~TFile();
++ /* willus mod */
++ char tfile_filename[512];
+
+ // All the Open methods load the whole file into memory for reading.
+ // Opens a file with a supplied reader, or nullptr to use the default.
+diff --git a/src/lstm/input.cpp b/src/lstm/input.cpp
+index 73b584b3..0b0b54c3 100644
+--- a/src/lstm/input.cpp
++++ b/src/lstm/input.cpp
+@@ -93,8 +93,11 @@ Pix* Input::PrepareLSTMInputs(const ImageData& image_data,
+ return nullptr;
+ }
+ if (width < min_width || height < min_width) {
++ /* willus mod -- no warning */
++ /*
+ tprintf("Image too small to scale!! (%dx%d vs min width of %d)\n", width,
+ height, min_width);
++ */
+ pixDestroy(&pix);
+ return nullptr;
+ }
+--
+2.22.0
+
diff --git a/pkgs/applications/misc/kanboard/default.nix b/pkgs/applications/misc/kanboard/default.nix
index 0a42d5e4f28..0bdf8e49d96 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.9";
+ version = "1.2.11";
src = fetchFromGitHub {
owner = "kanboard";
repo = "kanboard";
rev = "v${version}";
- sha256 = "1hdr95cpxgdzrzhffs63gdl0g7122ma2zg8bkqwp42p5xphx0xan";
+ sha256 = "0if5nh4m4y3xlvlv86jph7ix5nvpgc1zjkp4cq5iig6z0041bw98";
};
dontBuild = true;
diff --git a/pkgs/applications/misc/kdbplus/default.nix b/pkgs/applications/misc/kdbplus/default.nix
index 2af091b0df3..4c4b461303f 100644
--- a/pkgs/applications/misc/kdbplus/default.nix
+++ b/pkgs/applications/misc/kdbplus/default.nix
@@ -1,24 +1,24 @@
-{ stdenv, requireFile, unzip, rlwrap, bash }:
+{ stdenv, requireFile, unzip, rlwrap, bash, zlib }:
assert (stdenv.hostPlatform.system == "i686-linux");
let
libPath = stdenv.lib.makeLibraryPath
- [ stdenv.cc.libc stdenv.cc.cc ];
+ [ stdenv.cc.libc stdenv.cc.cc zlib ];
in
stdenv.mkDerivation rec {
pname = "kdbplus";
- version = "3.3";
+ version = "3.6";
- src = requireFile {
+ src = requireFile rec {
message = ''
Nix can't download kdb+ for you automatically. Go to
http://kx.com and download the free, 32-bit version for
- Linux. Then run "nix-prefetch-url file://\$PWD/linux.zip" in
- the directory where you saved it. Note you need version 3.3.
+ Linux. Then run "nix-prefetch-url file://\$PWD/${name}" in
+ the directory where you saved it. Note you need version ${version}.
'';
- name = "linux.zip";
- sha256 = "5fd0837599e24f0f437a8314510888a86ab0787684120a8fcf592299800aa940";
+ name = "linuxx86.zip";
+ sha256 = "0w6znd9warcqx28vf648n0vgmxyyy9kvsfpsfw37d1kp5finap4p";
};
dontStrip = true;
diff --git a/pkgs/applications/misc/kdeconnect/default.nix b/pkgs/applications/misc/kdeconnect/default.nix
index ed3c8672269..e8bdcb37118 100644
--- a/pkgs/applications/misc/kdeconnect/default.nix
+++ b/pkgs/applications/misc/kdeconnect/default.nix
@@ -16,6 +16,7 @@
, sshfs
, makeWrapper
, kwayland
+, kio
}:
mkDerivation rec {
@@ -30,7 +31,7 @@ mkDerivation rec {
buildInputs = [
libfakekey libXtst
ki18n kiconthemes kcmutils kconfigwidgets kdbusaddons knotifications
- qca-qt5 qtx11extras makeWrapper kwayland
+ qca-qt5 qtx11extras makeWrapper kwayland kio
];
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
diff --git a/pkgs/applications/misc/keepass-plugins/otpkeyprov/default.nix b/pkgs/applications/misc/keepass-plugins/otpkeyprov/default.nix
new file mode 100644
index 00000000000..e2b26eaee90
--- /dev/null
+++ b/pkgs/applications/misc/keepass-plugins/otpkeyprov/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, buildEnv, fetchzip, mono }:
+
+let
+ version = "2.6";
+ drv = stdenv.mkDerivation {
+ pname = "otpkeyprov";
+ inherit version;
+
+ src = fetchzip {
+ url = "https://keepass.info/extensions/v2/otpkeyprov/OtpKeyProv-${version}.zip";
+ sha256 = "1p60k55v2sxnv1varmp0dgbsi2rhjg9kj19cf54mkc87nss5h1ki";
+ stripRoot = false;
+ };
+
+ meta = {
+ description = "OtpKeyProv is a key provider based on one-time passwords";
+ homepage = "https://keepass.info/plugins.html#otpkeyprov";
+ platforms = with stdenv.lib.platforms; linux;
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [ stdenv.lib.maintainers.ente ];
+ };
+
+ pluginFilename = "OtpKeyProv.plgx";
+
+ installPhase = ''
+ mkdir -p $out/lib/dotnet/keepass/
+ cp $pluginFilename $out/lib/dotnet/keepass/$pluginFilename
+ '';
+ };
+in
+ # Mono is required to compile plugin at runtime, after loading.
+ buildEnv { name = drv.name; paths = [ mono drv ]; }
diff --git a/pkgs/applications/misc/keepassx/community.nix b/pkgs/applications/misc/keepassx/community.nix
index 22e6cd2f666..6701c910a1f 100644
--- a/pkgs/applications/misc/keepassx/community.nix
+++ b/pkgs/applications/misc/keepassx/community.nix
@@ -26,19 +26,21 @@
, withKeePassKeeShareSecure ? true
, withKeePassSSHAgent ? true
, withKeePassNetworking ? false
+, withKeePassTouchID ? true
+, withKeePassFDOSecrets ? true
}:
with stdenv.lib;
stdenv.mkDerivation rec {
pname = "keepassxc";
- version = "2.4.3";
+ version = "2.5.0";
src = fetchFromGitHub {
owner = "keepassxreboot";
repo = "keepassxc";
rev = version;
- sha256 = "1r63bl0cam04rps1bjr107qvwsmay4254nv00gwhh9n45s6cslac";
+ sha256 = "053z6mzcn22w3vkf09i7kdi5p0c6zcd9g62v3p5i3yhd14cgviqr";
};
NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isClang [
@@ -69,6 +71,8 @@ stdenv.mkDerivation rec {
++ (optional withKeePassKeeShare "-DWITH_XC_KEESHARE=ON")
++ (optional withKeePassKeeShareSecure "-DWITH_XC_KEESHARE_SECURE=ON")
++ (optional withKeePassNetworking "-DWITH_XC_NETWORKING=ON")
+ ++ (optional (withKeePassTouchID && stdenv.isDarwin) "-DWITH_XC_TOUCHID=ON")
+ ++ (optional (withKeePassFDOSecrets && stdenv.isLinux) "-DWITH_XC_FDOSECRETS=ON")
++ (optional withKeePassSSHAgent "-DWITH_XC_SSHAGENT=ON");
doCheck = true;
diff --git a/pkgs/applications/misc/khal/default.nix b/pkgs/applications/misc/khal/default.nix
index 6aa94b2fecb..756c8e25971 100644
--- a/pkgs/applications/misc/khal/default.nix
+++ b/pkgs/applications/misc/khal/default.nix
@@ -42,6 +42,7 @@ with python3.pkgs; buildPythonApplication rec {
install -D misc/__khal $out/share/zsh/site-functions/__khal
# man page
+ PATH="${python3.withPackages (ps: with ps; [ sphinx sphinxcontrib_newsfeed ])}/bin:$PATH" \
make -C doc man
install -Dm755 doc/build/man/khal.1 -t $out/share/man/man1
diff --git a/pkgs/applications/misc/khard/default.nix b/pkgs/applications/misc/khard/default.nix
index 99b9c38d53f..1c6708c51c9 100644
--- a/pkgs/applications/misc/khard/default.nix
+++ b/pkgs/applications/misc/khard/default.nix
@@ -1,36 +1,15 @@
-{ stdenv, fetchurl, glibcLocales, python3 }:
+{ stdenv, glibcLocales, python3 }:
-let
- python = python3.override {
- packageOverrides = self: super: {
-
- # https://github.com/pimutils/khal/issues/780
- python-dateutil = super.python-dateutil.overridePythonAttrs (oldAttrs: rec {
- version = "2.6.1";
- src = oldAttrs.src.override {
- inherit version;
- sha256 = "891c38b2a02f5bb1be3e4793866c8df49c7d19baabf9c1bad62547e0b4866aca";
- };
- });
-
- };
- };
-
-in with python.pkgs; buildPythonApplication rec {
- version = "0.14.0";
+python3.pkgs.buildPythonApplication rec {
+ version = "0.15.1";
pname = "khard";
- namePrefix = "";
- src = fetchurl {
- url = "https://github.com/scheibler/khard/archive/v${version}.tar.gz";
- sha256 = "0m1pc67jz663yfc0xzfpknymn8jj2bpfxaph3pl0mjd3h1zjfyaq";
+ src = python3.pkgs.fetchPypi {
+ inherit pname version;
+ sha256 = "18ba2xgfq8sw0bg6xmlfjpizid1hkzgswcfcc54gl21y2dwfda2w";
};
- # setup.py reads the UTF-8 encoded readme.
- LC_ALL = "en_US.UTF-8";
- buildInputs = [ glibcLocales ];
-
- propagatedBuildInputs = [
+ propagatedBuildInputs = with python3.pkgs; [
atomicwrites
configobj
vobject
@@ -43,9 +22,6 @@ in with python.pkgs; buildPythonApplication rec {
install -D misc/zsh/_khard $out/share/zsh/site-functions/_khard
'';
- # Fails; but there are no tests anyway.
- doCheck = false;
-
meta = {
homepage = https://github.com/scheibler/khard;
description = "Console carddav client";
diff --git a/pkgs/applications/misc/kitty/default.nix b/pkgs/applications/misc/kitty/default.nix
index 3b7e9e9d139..e87d09b50cc 100644
--- a/pkgs/applications/misc/kitty/default.nix
+++ b/pkgs/applications/misc/kitty/default.nix
@@ -21,14 +21,14 @@
with python3Packages;
buildPythonApplication rec {
pname = "kitty";
- version = "0.14.3";
+ version = "0.14.6";
format = "other";
src = fetchFromGitHub {
owner = "kovidgoyal";
repo = "kitty";
rev = "v${version}";
- sha256 = "0wi6b6b1nyp16rcpcghk6by62wy6qsamv1xdymyn0zbqgd8h9n6b";
+ sha256 = "1rb5ys9xsdhd2qa3kz5gqzz111c6b14za98va6hlglk69wqlmb51";
};
buildInputs = [
@@ -79,9 +79,9 @@ buildPythonApplication rec {
'';
buildPhase = if stdenv.isDarwin then ''
- make app
+ ${python.interpreter} setup.py kitty.app --update-check-interval=0
'' else ''
- ${python.interpreter} setup.py linux-package
+ ${python.interpreter} setup.py linux-package --update-check-interval=0
'';
installPhase = ''
@@ -89,7 +89,7 @@ buildPythonApplication rec {
mkdir -p $out
${if stdenv.isDarwin then ''
mkdir "$out/bin"
- ln -s ../Applications/kitty.app/Contents/MacOS/kitty-deref-symlink "$out/bin/kitty"
+ ln -s ../Applications/kitty.app/Contents/MacOS/kitty "$out/bin/kitty"
mkdir "$out/Applications"
cp -r kitty.app "$out/Applications/kitty.app"
'' else ''
@@ -123,6 +123,6 @@ buildPythonApplication rec {
description = "A modern, hackable, featureful, OpenGL based terminal emulator";
license = licenses.gpl3;
platforms = platforms.darwin ++ platforms.linux;
- maintainers = with maintainers; [ tex rvolosatovs ];
+ maintainers = with maintainers; [ tex rvolosatovs ma27 ];
};
}
diff --git a/pkgs/applications/misc/krusader/default.nix b/pkgs/applications/misc/krusader/default.nix
index cf81d572c61..15979def34b 100644
--- a/pkgs/applications/misc/krusader/default.nix
+++ b/pkgs/applications/misc/krusader/default.nix
@@ -6,14 +6,14 @@
let
pname = "krusader";
- version = "2.7.1";
+ version = "2.7.2";
in mkDerivation rec {
pname = "krusader";
inherit version;
src = fetchurl {
url = "mirror://kde/stable/${pname}/${version}/${pname}-${version}.tar.xz";
- sha256 = "1svxj1qygyr3a4dkx0nh2d6r4q7pfj00brzghl94mf4q0rz4vhfm";
+ sha256 = "02b1jz5a7cjr13v6c7fczrhs1xmg1krnva5fxk8x2bf4nd1rm8s1";
};
meta = with lib; {
diff --git a/pkgs/applications/misc/kupfer/default.nix b/pkgs/applications/misc/kupfer/default.nix
index 81cba3f5637..c7f54990107 100644
--- a/pkgs/applications/misc/kupfer/default.nix
+++ b/pkgs/applications/misc/kupfer/default.nix
@@ -6,7 +6,6 @@
, gtk3
, libwnck3
, keybinder3
-, hicolor-icon-theme
, wrapGAppsHook
, wafHook
}:
@@ -27,7 +26,7 @@ buildPythonApplication rec {
# For setup hook
gobject-introspection wafHook
];
- buildInputs = [ hicolor-icon-theme docutils libwnck3 keybinder3 ];
+ buildInputs = [ docutils libwnck3 keybinder3 ];
propagatedBuildInputs = [ pygobject3 gtk3 pyxdg dbus-python pycairo ];
# without strictDeps kupfer fails to build: Could not find the python module 'gi.repository.Gtk'
diff --git a/pkgs/applications/misc/librecad/default.nix b/pkgs/applications/misc/librecad/default.nix
index 09089a072b3..142dafe38eb 100644
--- a/pkgs/applications/misc/librecad/default.nix
+++ b/pkgs/applications/misc/librecad/default.nix
@@ -1,42 +1,64 @@
-{ stdenv, fetchurl, qt4, qmake4Hook, muparser, which, boost, pkgconfig }:
+{ mkDerivation, lib, fetchFromGitHub, installShellFiles, pkgconfig, runtimeShell
+, qtbase, qtsvg, qttools, qmake
+, boost, muparser }:
-stdenv.mkDerivation rec {
- version = "2.1.3";
+mkDerivation rec {
pname = "librecad";
+ version = "2.2.0-rc1";
- src = fetchurl {
- url = "https://github.com/LibreCAD/LibreCAD/tarball/${version}";
- name = "${pname}-${version}" + ".tar.gz";
- sha256 = "1czp8bja61hfav2m7184cq1np1n76w3w6vn0hlkp81hhz9zc62sx";
+ src = fetchFromGitHub {
+ owner = "LibreCAD";
+ repo = "LibreCAD";
+ rev = version;
+ sha256 = "0kwj838hqzbw95gl4x6scli9gj3gs72hdmrrkzwq5rjxam18k3f3";
};
- patchPhase = ''
- sed -i -e s,/bin/bash,`type -P bash`, scripts/postprocess-unix.sh
- sed -i -e s,/usr/share,$out/share, librecad/src/lib/engine/rs_system.cpp
+ patches = [ ./fix_qt_5_11_build.patch ];
+
+ postPatch = ''
+ substituteInPlace scripts/postprocess-unix.sh \
+ --replace /bin/sh ${runtimeShell}
+
+ substituteInPlace librecad/src/lib/engine/rs_system.cpp \
+ --replace /usr/share $out/share
+
+ substituteInPlace librecad/src/main/qc_applicationwindow.cpp \
+ --replace __DATE__ 0
'';
- qmakeFlags = [ "MUPARSER_DIR=${muparser}" "BOOST_DIR=${boost.dev}" ];
+ qmakeFlags = [
+ "MUPARSER_DIR=${muparser}"
+ "BOOST_DIR=${boost.dev}"
+ ];
installPhase = ''
- install -m 555 -D unix/librecad $out/bin/librecad
- install -m 444 -D desktop/librecad.desktop $out/share/applications/librecad.desktop
- install -m 444 -D desktop/librecad.sharedmimeinfo $out/share/mime/packages/librecad.xml
- install -m 444 -D desktop/graphics_icons_and_splash/Icon\ LibreCAD/Icon_Librecad.svg \
+ runHook preInstall
+
+ install -Dm555 -t $out/bin unix/{librecad,ttf2lff}
+ install -Dm444 -t $out/share/applications desktop/librecad.desktop
+ install -Dm644 -t $out/share/pixmaps librecad/res/main/librecad.png
+ install -Dm444 desktop/librecad.sharedmimeinfo $out/share/mime/packages/librecad.xml
+ install -Dm444 desktop/graphics_icons_and_splash/Icon\ LibreCAD/Icon_Librecad.svg \
$out/share/icons/hicolor/scalable/apps/librecad.svg
+
+ installManPage desktop/librecad.?
+
cp -R unix/resources $out/share/librecad
+
+ runHook postInstall
'';
- buildInputs = [ qt4 muparser which boost ];
- nativeBuildInputs = [ pkgconfig qmake4Hook ];
+ buildInputs = [ boost muparser qtbase qtsvg ];
+
+ nativeBuildInputs = [ installShellFiles pkgconfig qmake qttools ];
enableParallelBuilding = true;
- meta = {
- description = "A 2D CAD package based upon Qt";
- homepage = https://librecad.org;
- repositories.git = git://github.com/LibreCAD/LibreCAD.git;
- license = stdenv.lib.licenses.gpl2;
- maintainers = with stdenv.lib.maintainers; [viric];
- platforms = with stdenv.lib.platforms; linux;
+ meta = with lib; {
+ description = "2D CAD package based on Qt";
+ homepage = "https://librecad.org";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ viric ];
+ platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/misc/librecad/fix_qt_5_11_build.patch b/pkgs/applications/misc/librecad/fix_qt_5_11_build.patch
new file mode 100644
index 00000000000..04701e5ab1e
--- /dev/null
+++ b/pkgs/applications/misc/librecad/fix_qt_5_11_build.patch
@@ -0,0 +1,36 @@
+diff --git a/librecad/src/ui/forms/qg_commandwidget.cpp b/librecad/src/ui/forms/qg_commandwidget.cpp
+index 835e47d..2c878e8 100644
+--- a/librecad/src/ui/forms/qg_commandwidget.cpp
++++ b/librecad/src/ui/forms/qg_commandwidget.cpp
+@@ -27,6 +27,7 @@
+
+ #include
+
++#include
+ #include
+ #include
+ #include
+diff --git a/librecad/src/ui/generic/colorwizard.cpp b/librecad/src/ui/generic/colorwizard.cpp
+index 2beaceb..84068ad 100644
+--- a/librecad/src/ui/generic/colorwizard.cpp
++++ b/librecad/src/ui/generic/colorwizard.cpp
+@@ -27,6 +27,7 @@
+ #include "colorwizard.h"
+ #include "ui_colorwizard.h"
+
++#include
+ #include
+ #include
+ #include
+diff --git a/librecad/src/ui/generic/widgetcreator.cpp b/librecad/src/ui/generic/widgetcreator.cpp
+index 7c35144..0e394f2 100644
+--- a/librecad/src/ui/generic/widgetcreator.cpp
++++ b/librecad/src/ui/generic/widgetcreator.cpp
+@@ -27,6 +27,7 @@
+ #include "widgetcreator.h"
+ #include "ui_widgetcreator.h"
+
++#include
+ #include
+ #include
+ #include
diff --git a/pkgs/applications/misc/llpp/default.nix b/pkgs/applications/misc/llpp/default.nix
index c66ef21416b..2c2acb6a743 100644
--- a/pkgs/applications/misc/llpp/default.nix
+++ b/pkgs/applications/misc/llpp/default.nix
@@ -5,12 +5,12 @@ assert lib.versionAtLeast (lib.getVersion ocaml) "4.07";
stdenv.mkDerivation rec {
pname = "llpp";
- version = "30";
+ version = "31";
src = fetchgit {
url = "git://repo.or.cz/llpp.git";
rev = "v${version}";
- sha256 = "0iilpzf12hs0zky58j55l4y5dvzv7fc53nsrg324n9vka92mppvd";
+ sha256 = "14ibsm1zzxfidjajcj30b5m9in10q3817izahsjvkmryrvvn6qsg";
fetchSubmodules = false;
};
diff --git a/pkgs/applications/misc/llpp/fix-build-bash.patch b/pkgs/applications/misc/llpp/fix-build-bash.patch
index 25d503290ce..13dbdb926c8 100644
--- a/pkgs/applications/misc/llpp/fix-build-bash.patch
+++ b/pkgs/applications/misc/llpp/fix-build-bash.patch
@@ -1,14 +1,5 @@
-From cccadedfbcb6764a38382154838113a6b2fd4dee Mon Sep 17 00:00:00 2001
-From: Michael Hoang
-Date: Mon, 10 Dec 2018 15:08:01 +1100
-Subject: [PATCH] Patch build.bash for nixpkgs
-
----
- build.bash | 37 ++-----------------------------------
- 1 file changed, 2 insertions(+), 35 deletions(-)
-
diff --git a/build.bash b/build.bash
-index 1588011..72117d9 100755
+index 7c278b6..41494c5 100755
--- a/build.bash
+++ b/build.bash
@@ -29,7 +29,6 @@ srcd="$(dirname $0)"
@@ -20,10 +11,10 @@ index 1588011..72117d9 100755
mkdir -p $outd/{$wsid,lablGL}
:>$outd/ordered
@@ -39,12 +38,6 @@ isfresh() { test -r "$1.past" && . "$1.past" && test "$k" = "$2"; }
- mbt=native
+ mbt=${mbt:-native}
mulibs="$mudir/build/$mbt/libmupdf.a" # $mudir/build/$mbt/libmupdf-third.a
--keycmd="(cd $mudir && git describe --tags --dirty); digest $mulibs"
+-keycmd="(cd $mudir && make -q build=$mbt libs && echo); digest $mulibs"
-isfresh "$mulibs" "$(eval $keycmd)" || (
- make -C "$mudir" build=$mbt -j $mjobs libs
- echo "k='$(eval $keycmd)'" >$mudir/build/$mbt/libmupdf.a.past
@@ -32,12 +23,12 @@ index 1588011..72117d9 100755
oincs() {
local i=
local incs1=
-@@ -90,32 +83,6 @@ mflags() {
+@@ -90,34 +83,6 @@ mflags() {
}
overs="$(ocamlc -vnum 2>/dev/null)" || overs=""
--test "$overs" = "4.07.0" || {
-- url=https://caml.inria.fr/pub/distrib/ocaml-4.07/ocaml-4.07.0.tar.xz
+-test "$overs" = "4.08" || {
+- url=https://caml.inria.fr/pub/distrib/ocaml-4.08/ocaml-4.08.0.tar.xz
- txz=$outd/$(basename $url)
- isfresh $txz $url || {
- executable_p() { command -v "$1" >/dev/null 2>&1; }
@@ -54,8 +45,10 @@ index 1588011..72117d9 100755
- tar xf $txz -C $outd
- bn=$(basename $url)
- cd $outd/${bn%.tar.xz}
-- ./configure -prefix $absprefix \
-- -no-graph -no-debugger -no-ocamldoc -no-native-compiler
+- ./configure --disable-vmthreads --disable-graph-lib \
+- --disable-ocamldoc --enable-debugger=no \
+- --disable-flat-float-array \
+- --prefix=$absprefix
- make -j $mjobs world
- make install
- echo "k='$url'" >$absprefix/bin/ocamlc.past
@@ -65,7 +58,7 @@ index 1588011..72117d9 100755
bocaml1() {
grep -q "$3" $outd/ordered || {
-@@ -224,7 +191,7 @@ bobjc() {
+@@ -227,7 +192,7 @@ bobjc() {
} && vecho "fresh $o"
}
@@ -74,7 +67,7 @@ index 1588011..72117d9 100755
cmd="(. $srcd/genconfstr.sh >$outd/confstruct.ml)"
keycmd="digest $srcd/genconfstr.sh $outd/confstruct.ml"
-@@ -278,7 +245,7 @@ for m in ml_gl ml_glarray ml_raw; do
+@@ -281,7 +246,7 @@ for m in ml_gl ml_glarray ml_raw; do
done
libs="str.cma unix.cma"
@@ -83,6 +76,3 @@ index 1588011..72117d9 100755
if $darwin; then
mcomp=$(ocamlc -config | grep bytecomp_c_co | { read _ c; echo $c; })
clibs="$clibs -framework Cocoa -framework OpenGL"
---
-2.19.2
-
diff --git a/pkgs/applications/misc/lsd2dsl/default.nix b/pkgs/applications/misc/lsd2dsl/default.nix
new file mode 100644
index 00000000000..5dd5fa0f512
--- /dev/null
+++ b/pkgs/applications/misc/lsd2dsl/default.nix
@@ -0,0 +1,36 @@
+{ mkDerivation, lib, fetchFromGitHub, cmake
+, boost, libvorbis, libsndfile, minizip, gtest }:
+
+mkDerivation rec {
+ pname = "lsd2dsl";
+ version = "0.4.1";
+
+ src = fetchFromGitHub {
+ owner = "nongeneric";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "15xjp5xxvl0qc4zp553n7djrbvdp63sfjw406idgxqinfmkqkqdr";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [ boost libvorbis libsndfile minizip gtest ];
+
+ NIX_CFLAGS_COMPILE = "-Wno-error=unused-result";
+
+ installPhase = ''
+ install -Dm755 lsd2dsl $out/bin/lsd2dsl
+ install -m755 qtgui/lsd2dsl-qtgui $out/bin/lsd2dsl-qtgui
+ '';
+
+ meta = with lib; {
+ homepage = "https://rcebits.com/lsd2dsl/";
+ description = "Lingvo dictionaries decompiler";
+ longDescription = ''
+ A decompiler for ABBYY Lingvo’s proprietary dictionaries.
+ '';
+ license = licenses.mit;
+ maintainers = with maintainers; [ sikmir ];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/pkgs/applications/misc/lutris/chrootenv.nix b/pkgs/applications/misc/lutris/chrootenv.nix
index ab40dfc8131..16bf65262cc 100644
--- a/pkgs/applications/misc/lutris/chrootenv.nix
+++ b/pkgs/applications/misc/lutris/chrootenv.nix
@@ -29,7 +29,7 @@ in buildFHSUserEnv {
# Dolphin
bluez ffmpeg gettext portaudio wxGTK30 miniupnpc mbedtls lzo sfml gsm
- wavpack gnutls-kdh orc nettle gmp pcre vulkan-loader
+ wavpack orc nettle gmp pcre vulkan-loader
# DOSBox
SDL_net SDL_sound
@@ -104,6 +104,9 @@ in buildFHSUserEnv {
# WINE
cups lcms2 mpg123 cairo unixODBC samba4 sane-backends openldap
ocl-icd utillinux
+
+ # Winetricks
+ fribidi
] ++ xorgDeps pkgs;
extraInstallCommands = ''
diff --git a/pkgs/applications/misc/lyx/default.nix b/pkgs/applications/misc/lyx/default.nix
index 744d124f84d..f7964e4e5c6 100644
--- a/pkgs/applications/misc/lyx/default.nix
+++ b/pkgs/applications/misc/lyx/default.nix
@@ -1,8 +1,8 @@
-{ fetchurl, stdenv, pkgconfig, python, file, bc, fetchpatch
+{ fetchurl, lib, mkDerivation, pkgconfig, python, file, bc, fetchpatch
, qtbase, qtsvg, hunspell, makeWrapper #, mythes, boost
}:
-stdenv.mkDerivation rec {
+mkDerivation rec {
version = "2.3.0";
pname = "lyx";
@@ -30,10 +30,9 @@ stdenv.mkDerivation rec {
doCheck = true;
# python is run during runtime to do various tasks
- postFixup = ''
- wrapProgram "$out/bin/lyx" \
- --prefix PATH : '${python}/bin'
- '';
+ qtWrapperArgs = [
+ " --prefix PATH : ${python}/bin"
+ ];
patches = [
(fetchpatch {
@@ -42,7 +41,7 @@ stdenv.mkDerivation rec {
})
];
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "WYSIWYM frontend for LaTeX, DocBook";
homepage = http://www.lyx.org;
license = licenses.gpl2Plus;
diff --git a/pkgs/applications/misc/masterpdfeditor/default.nix b/pkgs/applications/misc/masterpdfeditor/default.nix
index 1474ea2fc4f..5df4a1b8d93 100644
--- a/pkgs/applications/misc/masterpdfeditor/default.nix
+++ b/pkgs/applications/misc/masterpdfeditor/default.nix
@@ -1,15 +1,12 @@
{ stdenv, fetchurl, sane-backends, qtbase, qtsvg, nss, autoPatchelfHook, lib, wrapQtAppsHook }:
-let
- version = "5.4.10";
-
-in stdenv.mkDerivation {
+stdenv.mkDerivation rec {
pname = "masterpdfeditor";
- inherit version;
+ version = "5.4.38";
src = fetchurl {
- url = "https://code-industry.net/public/master-pdf-editor-${version}_qt5.amd64.tar.gz";
- sha256 = "1902ahb2g9xanrip1n0ihr31az8sv9fsvzddnzf70kbwlfclnqf7";
+ url = "https://code-industry.net/public/master-pdf-editor-${version}-qt5.amd64.tar.gz";
+ sha256 = "0fidy8gd4mqvyfgmrwdiz8z53dyzihqqhgfrffj0z0idm2zi4mcq";
};
nativeBuildInputs = [ autoPatchelfHook wrapQtAppsHook ];
diff --git a/pkgs/applications/misc/mediainfo-gui/default.nix b/pkgs/applications/misc/mediainfo-gui/default.nix
index 9eb4a0897d4..b84bc08ddb3 100644
--- a/pkgs/applications/misc/mediainfo-gui/default.nix
+++ b/pkgs/applications/misc/mediainfo-gui/default.nix
@@ -2,11 +2,11 @@
, desktop-file-utils, libSM, imagemagick }:
stdenv.mkDerivation rec {
- version = "19.07";
+ version = "19.09";
pname = "mediainfo-gui";
src = fetchurl {
url = "https://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
- sha256 = "0b2ypdlpj5v64ggqk628mgqraba27z725sa0zf0fa4agxhf9ka44";
+ sha256 = "1a2ssklg12sjsw09y8my9kf35mizi3zj7w002nspcmw28apb1x82";
};
nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/applications/misc/mediainfo/default.nix b/pkgs/applications/misc/mediainfo/default.nix
index 98d5ef72b22..f084d17e389 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.07";
+ version = "19.09";
pname = "mediainfo";
src = fetchurl {
url = "https://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
- sha256 = "0b2ypdlpj5v64ggqk628mgqraba27z725sa0zf0fa4agxhf9ka44";
+ sha256 = "1a2ssklg12sjsw09y8my9kf35mizi3zj7w002nspcmw28apb1x82";
};
nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/applications/misc/megasync/default.nix b/pkgs/applications/misc/megasync/default.nix
index bc753c5a7a9..6e51e3cda76 100644
--- a/pkgs/applications/misc/megasync/default.nix
+++ b/pkgs/applications/misc/megasync/default.nix
@@ -7,7 +7,6 @@
, doxygen
, fetchFromGitHub
, ffmpeg
-, hicolor-icon-theme
, libmediainfo
, libraw
, libsodium
@@ -51,7 +50,6 @@ mkDerivation rec {
cryptopp
curl
ffmpeg
- hicolor-icon-theme
libmediainfo
libraw
libsodium
diff --git a/pkgs/applications/misc/minder/default.nix b/pkgs/applications/misc/minder/default.nix
new file mode 100644
index 00000000000..4b92a43451a
--- /dev/null
+++ b/pkgs/applications/misc/minder/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub
+, pkgconfig, meson, ninja, python3
+, wrapGAppsHook, vala, shared-mime-info
+, cairo, pantheon, glib, gtk3, libxml2, libgee, libarchive
+, hicolor-icon-theme # for setup-hook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "minder";
+ version = "1.5.0";
+
+ src = fetchFromGitHub {
+ owner = "phase1geo";
+ repo = pname;
+ rev = version;
+ sha256 = "0lhmv3z2jifv4cksxa27jigdfj9n81myjsxg38xp28fx5x3h8bzc";
+ };
+
+ nativeBuildInputs = [ pkgconfig meson ninja python3 wrapGAppsHook vala shared-mime-info ];
+ buildInputs = [ cairo pantheon.granite glib gtk3 libxml2 libgee libarchive hicolor-icon-theme ];
+
+ postPatch = ''
+ chmod +x meson/post_install.py
+ patchShebangs meson/post_install.py
+ '';
+
+ postFixup = ''
+ for x in $out/bin/*; do
+ ln -vrs $x "$out/bin/''${x##*.}"
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Mind-mapping application for Elementary OS";
+ homepage = "https://github.com/phase1geo/Minder";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ dtzWill ];
+ };
+}
+
diff --git a/pkgs/applications/misc/mu-repo/default.nix b/pkgs/applications/misc/mu-repo/default.nix
new file mode 100644
index 00000000000..ddee1939b02
--- /dev/null
+++ b/pkgs/applications/misc/mu-repo/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitHub, buildPythonApplication, pytest, git }:
+
+buildPythonApplication rec {
+ pname = "mu-repo";
+ version = "1.8.0";
+
+ src = fetchFromGitHub {
+ owner = "fabioz";
+ repo = pname;
+ rev = with lib;
+ "mu_repo_" + concatStringsSep "_" (splitVersion version);
+ sha256 = "1dxfggzbhiips0ww2s93yba9842ycp0i3x2i8vvcx0vgicv3rv6f";
+ };
+
+ checkInputs = [ pytest git ];
+ # disable test which assumes it's a git repo
+ checkPhase = "py.test mu_repo --ignore=mu_repo/tests/test_checkout.py";
+
+ meta = with lib; {
+ description = "Tool to help in dealing with multiple git repositories";
+ homepage = "http://fabioz.github.io/mu-repo/";
+ license = licenses.gpl3;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ sikmir ];
+ };
+}
diff --git a/pkgs/applications/misc/mucommander/default.nix b/pkgs/applications/misc/mucommander/default.nix
index d6153d2268b..12a0720e447 100644
--- a/pkgs/applications/misc/mucommander/default.nix
+++ b/pkgs/applications/misc/mucommander/default.nix
@@ -1,21 +1,23 @@
-{ stdenv, fetchFromGitHub, gradle_3_5, perl, makeWrapper, jre, gsettings-desktop-schemas }:
+{ stdenv, fetchFromGitHub, gradle_4_10, perl, makeWrapper, jre, gsettings-desktop-schemas }:
let
- version = "0.9.2";
+ version = "0.9.3-3";
name = "mucommander-${version}";
src = fetchFromGitHub {
owner = "mucommander";
repo = "mucommander";
rev = version;
- sha256 = "1fvij0yjjz56hsyddznx7mdgq1zm25fkng3axl03iyrij976z7b8";
+ sha256 = "1zhglsx3b5k6np3ppfkkrqz9wg0j7ip598xxfgn75gjl020w0can";
};
postPatch = ''
# there is no .git anyway
substituteInPlace build.gradle \
--replace "git = org.ajoberstar.grgit.Grgit.open(file('.'))" "" \
- --replace "revision = git.head().id" "revision = 'abcdefgh'"
+ --replace "revision = git.head().id" "revision = 'abcdefgh'" \
+ --replace "proguard.enabled =" "// proguard.enabled =" \
+ --replace "version = '0.9.4'" "version = '${version}'"
# disable gradle plugins with native code and their targets
perl -i.bak1 -pe "s#(^\s*id '.+' version '.+'$)#// \1#" build.gradle
@@ -34,7 +36,7 @@ let
deps = stdenv.mkDerivation {
name = "${name}-deps";
inherit src postPatch;
- nativeBuildInputs = [ gradle_3_5 perl ];
+ nativeBuildInputs = [ gradle_4_10 perl ];
buildPhase = ''
export GRADLE_USER_HOME=$(mktemp -d)
gradle --no-daemon build
@@ -47,12 +49,12 @@ let
'';
outputHashAlgo = "sha256";
outputHashMode = "recursive";
- outputHash = "199a9rc1pp9jjwpy83743qhjczfz0d1mkbic6si9bh8l62nw8qc7";
+ outputHash = "1v5a76pvk7llbyv2rg50wlxc2wf468l2cslz1vi20aihycbyky7j";
};
in stdenv.mkDerivation {
inherit name src postPatch;
- nativeBuildInputs = [ gradle_3_5 perl makeWrapper ];
+ nativeBuildInputs = [ gradle_4_10 perl makeWrapper ];
buildPhase = ''
export GRADLE_USER_HOME=$(mktemp -d)
@@ -63,7 +65,7 @@ in stdenv.mkDerivation {
repositories { mavenLocal(); maven { url '${deps}' } }
#" {} \;
- gradle --offline --no-daemon build
+ gradle --offline --no-daemon distTar
'';
installPhase = ''
diff --git a/pkgs/applications/misc/multibootusb/default.nix b/pkgs/applications/misc/multibootusb/default.nix
index a2678d6067f..14201483294 100644
--- a/pkgs/applications/misc/multibootusb/default.nix
+++ b/pkgs/applications/misc/multibootusb/default.nix
@@ -1,21 +1,33 @@
-{ stdenv, python36Packages, fetchFromGitHub, libxcb, mtools, p7zip, parted, procps, utillinux, qt5, runtimeShell }:
+{ fetchFromGitHub, libxcb, mtools, p7zip, parted, procps,
+ python36Packages, qt5, runtimeShell, stdenv, utillinux, wrapQtAppsHook }:
+
+# Note: Multibootusb is tricky to maintain. It relies on the
+# $PYTHONPATH variable containing some of their code, so that
+# something like:
+#
+# from scripts import config
+#
+# works. It also relies on the current directory to find some runtime
+# resources thanks to a use of __file__.
+#
+# https://github.com/mbusb/multibootusb/blob/0d34d70c3868f1d7695cfd141141b17c075de967/scripts/osdriver.py#L59
+
python36Packages.buildPythonApplication rec {
pname = "multibootusb";
name = "${pname}-${version}";
version = "9.2.0";
+ nativeBuildInputs = [
+ wrapQtAppsHook
+ ];
+
buildInputs = [
- python36Packages.dbus-python
- python36Packages.pyqt5
- python36Packages.pytest-shutil
- python36Packages.python
- python36Packages.pyudev
- python36Packages.six
libxcb
mtools
p7zip
parted
procps
+ python36Packages.python
qt5.full
utillinux
];
@@ -28,32 +40,42 @@ python36Packages.buildPythonApplication rec {
sha256 = "0wlan0cp6c2i0nahixgpmkm0h4n518gj8rc515d579pqqp91p2h3";
};
- # Skip the fixup stage where stuff is shrinked (can't shrink text files)
- phases = [ "unpackPhase" "installPhase" ];
+ # Tests can't run inside the NixOS sandbox
+ # "Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory"
+ doCheck = false;
- installPhase = ''
- share="$out/share/${pname}"
- mkdir -p "$share"
- cp -r data "$share/data"
- cp -r scripts "$share/scripts"
- cp "${pname}" "$share/${pname}"
+ pythonPath = [
+ python36Packages.dbus-python
+ python36Packages.pyqt5
+ python36Packages.pytest-shutil
+ python36Packages.pyudev
+ python36Packages.six
+ ];
- mkdir "$out/bin"
- cat > "$out/bin/${pname}" < $bin/share/applications/mupdf.desktop <= 1.1.0
+ url = "https://github.com/networkupstools/nut/commit/612c05efb3c3b243da603a3a050993281888b6e3.patch";
+ sha256 = "0jdbii1z5sqyv24286j5px65j7b3gp8zk3ahbph83pig6g46m3hs";
+ })
+ ];
- nativeBuildInputs = [ pkgconfig makeWrapper ];
+ buildInputs = [ neon libusb openssl udev avahi freeipmi ];
+
+ nativeBuildInputs = [ autoreconfHook libtool pkgconfig makeWrapper ];
configureFlags =
[ "--with-all"
@@ -26,7 +36,6 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
-
postInstall = ''
wrapProgram $out/bin/nut-scanner --prefix LD_LIBRARY_PATH : \
"$out/lib:${neon}/lib:${libusb.out}/lib:${avahi}/lib:${freeipmi}/lib"
@@ -39,7 +48,7 @@ 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 = http://www.networkupstools.org/;
+ homepage = https://networkupstools.org/;
repositories.git = https://github.com/networkupstools/nut.git;
platforms = platforms.linux;
maintainers = [ maintainers.pierron ];
diff --git a/pkgs/applications/misc/octoprint/default.nix b/pkgs/applications/misc/octoprint/default.nix
index c0bacc2c50d..29a04627bef 100644
--- a/pkgs/applications/misc/octoprint/default.nix
+++ b/pkgs/applications/misc/octoprint/default.nix
@@ -56,17 +56,18 @@ let
"websocket-client"
"wrapt"
"sentry-sdk"
+ "werkzeug" # 0.16 just deprecates some stuff
];
in py.pkgs.buildPythonApplication rec {
pname = "OctoPrint";
- version = "1.3.11";
+ version = "1.3.12";
src = fetchFromGitHub {
owner = "foosel";
repo = "OctoPrint";
rev = version;
- sha256 = "1102ki1819wsmkfg4riz4i0hjlr3w6nsvk8wrzqq0lc0s5ycf4jx";
+ sha256 = "1lmqssgwjyhknjf3x58g7cr0fqz7fs5a3rl07r69wfpch63ranyd";
};
propagatedBuildInputs = with py.pkgs; [
@@ -75,7 +76,7 @@ in py.pkgs.buildPythonApplication rec {
psutil pyserial flask_login netaddr markdown sockjs-tornado
pylru pyyaml sarge feedparser netifaces click websocket_client
scandir chainmap future futures wrapt monotonic emoji
- frozendict cachelib sentry-sdk typing
+ frozendict cachelib sentry-sdk typing filetype
] ++ lib.optionals stdenv.isDarwin [ py.pkgs.appdirs ];
checkInputs = with py.pkgs; [ nose mock ddt ];
@@ -96,6 +97,6 @@ in py.pkgs.buildPythonApplication rec {
homepage = https://octoprint.org/;
description = "The snappy web interface for your 3D printer";
license = licenses.agpl3;
- maintainers = with maintainers; [ abbradar ];
+ maintainers = with maintainers; [ abbradar gebner ];
};
}
diff --git a/pkgs/applications/misc/octoprint/plugins.nix b/pkgs/applications/misc/octoprint/plugins.nix
index d8179e1b402..ce800e8f18b 100644
--- a/pkgs/applications/misc/octoprint/plugins.nix
+++ b/pkgs/applications/misc/octoprint/plugins.nix
@@ -47,13 +47,13 @@ let
mqtt = buildPlugin rec {
pname = "MQTT";
- version = "0.8.0";
+ version = "0.8.6";
src = fetchFromGitHub {
owner = "OctoPrint";
repo = "OctoPrint-MQTT";
rev = version;
- sha256 = "1318pgwy39gkdqgll3q5lwm7avslgdwyiwb5v8m23cgyh5w8cjq7";
+ sha256 = "0y1jnfplcy8mh3szrfbbvngl02j49cbdizglrfsry4fvqg50zjxd";
};
propagatedBuildInputs = with python2Packages; [ paho-mqtt ];
@@ -87,13 +87,13 @@ let
stlviewer = buildPlugin rec {
pname = "STLViewer";
- version = "0.4.1";
+ version = "0.4.2";
src = fetchFromGitHub {
owner = "jneilliii";
repo = "OctoPrint-STLViewer";
- rev = "v${version}";
- sha256 = "1f64s37g2d79g76v0vjnjrc2jp2gwrsnfgx7w3n0hkf1lz1pjkm0";
+ rev = version;
+ sha256 = "0mkvh44fn2ch4z2avsdjwi1rp353ylmk9j5fln4x7rx8ph8y7g2b";
};
meta = with stdenv.lib; {
@@ -168,13 +168,13 @@ let
printtimegenius = buildPlugin rec {
pname = "PrintTimeGenius";
- version = "1.3.1";
+ version = "2.0.2";
src = fetchFromGitHub {
owner = "eyal0";
repo = "OctoPrint-${pname}";
rev = version;
- sha256 = "0ijv1nxmikv06a00hqqkqri6wnydqh6lwcx07pmvw6jy706jhy28";
+ sha256 = "1w4jm42434x87sbih45brkb9krik851vxkz153w3w5c8p74kgg6f";
};
preConfigure = ''
diff --git a/pkgs/applications/misc/opencpn/default.nix b/pkgs/applications/misc/opencpn/default.nix
index 5c7e7355c66..9240b5d8910 100644
--- a/pkgs/applications/misc/opencpn/default.nix
+++ b/pkgs/applications/misc/opencpn/default.nix
@@ -2,14 +2,14 @@
gettext, glib, portaudio }:
stdenv.mkDerivation rec {
- pname = "opencpn";
- version = "5.0.0";
+ pname = "opencpn-unstable";
+ version = "2019-05-15";
src = fetchFromGitHub {
owner = "OpenCPN";
repo = "OpenCPN";
- rev = "v${version}";
- sha256 = "1xv3h6svw9aay5ixpql231md3pf00qxvhg62z88daraf18hlkfja";
+ rev = "83a3c4b5ff011d4eb070f009e0a46d194b177047";
+ sha256 = "00s1mxnkf1gg41hrz0zp8ypkp98py0m1c22im2zd09k6lcddxw5p";
};
nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/misc/opentx/default.nix b/pkgs/applications/misc/opentx/default.nix
index 585c85cbd2c..370f88d7b47 100644
--- a/pkgs/applications/misc/opentx/default.nix
+++ b/pkgs/applications/misc/opentx/default.nix
@@ -58,6 +58,7 @@ in stdenv.mkDerivation {
license = stdenv.lib.licenses.gpl2;
platforms = [ "i686-linux" "x86_64-linux" ];
maintainers = with maintainers; [ elitak ];
+ broken = true;
};
}
diff --git a/pkgs/applications/misc/orca/default.nix b/pkgs/applications/misc/orca/default.nix
index 1a8d5b76fe3..1dc6a9cfee5 100644
--- a/pkgs/applications/misc/orca/default.nix
+++ b/pkgs/applications/misc/orca/default.nix
@@ -1,21 +1,47 @@
-{ stdenv, pkgconfig, fetchurl, buildPythonApplication
-, autoreconfHook, wrapGAppsHook, gobject-introspection
-, intltool, yelp-tools, itstool, libxmlxx3
-, python, pygobject3, gtk3, gnome3, substituteAll, hicolor-icon-theme
-, at-spi2-atk, at-spi2-core, pyatspi, dbus, dbus-python, pyxdg
-, xkbcomp, procps, lsof, coreutils, gsettings-desktop-schemas
-, speechd, brltty, liblouis, setproctitle, gst_all_1, gst-python
+{ stdenv
+, pkgconfig
+, fetchurl
+, buildPythonApplication
+, autoreconfHook
+, wrapGAppsHook
+, gobject-introspection
+, gettext
+, yelp-tools
+, itstool
+, libxmlxx3
+, python
+, pygobject3
+, gtk3
+, gnome3
+, substituteAll
+, at-spi2-atk
+, at-spi2-core
+, pyatspi
+, dbus
+, dbus-python
+, pyxdg
+, xkbcomp
+, procps
+, lsof
+, coreutils
+, gsettings-desktop-schemas
+, speechd
+, brltty
+, liblouis
+, setproctitle
+, gst_all_1
+, gst-python
}:
buildPythonApplication rec {
pname = "orca";
- version = "3.32.0";
+ version = "3.34.1";
format = "other";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "05jqzlg0f1x53hyl0l9282ynmw37159g6dsbrid12b7sjs12cc1i";
+ sha256 = "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4";
};
patches = [
@@ -29,27 +55,42 @@ buildPythonApplication rec {
];
nativeBuildInputs = [
- autoreconfHook wrapGAppsHook pkgconfig libxmlxx3
- intltool yelp-tools itstool gobject-introspection
- hicolor-icon-theme # setup-hook
+ autoreconfHook
+ wrapGAppsHook
+ pkgconfig
+ libxmlxx3
+ gettext
+ yelp-tools
+ itstool
+ gobject-introspection
];
propagatedBuildInputs = [
- pygobject3 pyatspi dbus-python pyxdg brltty liblouis speechd gst-python setproctitle
+ pygobject3
+ pyatspi
+ dbus-python
+ pyxdg
+ brltty
+ liblouis
+ speechd
+ gst-python
+ setproctitle
];
strictDeps = false;
buildInputs = [
- python gtk3 at-spi2-atk at-spi2-core dbus gsettings-desktop-schemas
- gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
+ python
+ gtk3
+ at-spi2-atk
+ at-spi2-core
+ dbus
+ gsettings-desktop-schemas
+ gst_all_1.gstreamer
+ gst_all_1.gst-plugins-base
+ gst_all_1.gst-plugins-good
];
- # Run intltoolize to create po/Makefile.in.in
- preConfigure = ''
- intltoolize
- '';
-
passthru = {
updateScript = gnome3.updateScript {
packageName = pname;
@@ -57,7 +98,7 @@ buildPythonApplication rec {
};
meta = with stdenv.lib; {
- homepage = https://wiki.gnome.org/Projects/Orca;
+ homepage = "https://wiki.gnome.org/Projects/Orca";
description = "Screen reader";
longDescription = ''
A free, open source, flexible and extensible screen reader that provides
diff --git a/pkgs/applications/misc/osmium-tool/default.nix b/pkgs/applications/misc/osmium-tool/default.nix
index 616949af883..19657da607f 100644
--- a/pkgs/applications/misc/osmium-tool/default.nix
+++ b/pkgs/applications/misc/osmium-tool/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "osmium-tool";
- version = "1.10.0";
+ version = "1.11.0";
src = fetchFromGitHub {
owner = "osmcode";
repo = "osmium-tool";
rev = "v${version}";
- sha256 = "1balhz78nva0agmbp8n9vg8fhmdssnd9fjxj20bpw7b45mxhjc20";
+ sha256 = "164r1w539dzy67ir2rqh21kwdvkjv87isd18gp51qyxbsprz6kq5";
};
nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/misc/overmind/default.nix b/pkgs/applications/misc/overmind/default.nix
index 918924df0b9..7603a66cd36 100644
--- a/pkgs/applications/misc/overmind/default.nix
+++ b/pkgs/applications/misc/overmind/default.nix
@@ -2,7 +2,7 @@
buildGoPackage rec {
pname = "overmind";
- version = "2.0.2";
+ version = "2.0.3";
goPackagePath = "github.com/DarthSim/overmind";
nativeBuildInputs = [ makeWrapper ];
@@ -15,7 +15,7 @@ buildGoPackage rec {
owner = "DarthSim";
repo = pname;
rev = "v${version}";
- sha256 = "0cns19gqkfxsiiyfxhb05cjp1iv2fb40x47gp8djrwwzcd1r6zxh";
+ sha256 = "0c551c240lqxdjg0jj01rh2fyhwls02k5lczlxacj05prp1plz9p";
};
meta = with lib; {
diff --git a/pkgs/applications/misc/pastel/default.nix b/pkgs/applications/misc/pastel/default.nix
new file mode 100644
index 00000000000..8499ad0880c
--- /dev/null
+++ b/pkgs/applications/misc/pastel/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, rustPlatform, Security }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "pastel";
+ version = "0.6.1";
+
+ src = fetchFromGitHub {
+ owner = "sharkdp";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1c47bph1qraq3g0g5bp23jqlz7qdn4f8vh264y937jz17avvacx5";
+ };
+
+ cargoSha256 = "1pfhwqj9kxm9p0mpdw7qyvivgby2bmah05kavf0a5zhzvq4v4sg0";
+
+ buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
+
+ meta = with stdenv.lib; {
+ description = "A command-line tool to generate, analyze, convert and manipulate colors";
+ homepage = https://github.com/sharkdp/pastel;
+ license = with licenses; [ asl20 /* or */ mit ];
+ maintainers = with maintainers; [ davidtwco ];
+ platforms = platforms.all;
+ };
+}
diff --git a/pkgs/applications/misc/pbpst/default.nix b/pkgs/applications/misc/pbpst/default.nix
index fcf88200133..c1fd6c5d7cb 100644
--- a/pkgs/applications/misc/pbpst/default.nix
+++ b/pkgs/applications/misc/pbpst/default.nix
@@ -45,5 +45,6 @@ llvmPackages.stdenv.mkDerivation rec {
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = with maintainers; [ tmplt ];
+ broken = true;
};
}
diff --git a/pkgs/applications/misc/pdfarranger/default.nix b/pkgs/applications/misc/pdfarranger/default.nix
new file mode 100644
index 00000000000..ed54ccbb0a1
--- /dev/null
+++ b/pkgs/applications/misc/pdfarranger/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchFromGitHub, lib
+, wrapGAppsHook, intltool
+, python3Packages, gtk3, poppler_gi
+}:
+
+python3Packages.buildPythonApplication rec {
+ pname = "pdfarranger";
+ version = "1.3.1";
+
+ src = fetchFromGitHub {
+ owner = "jeromerobert";
+ repo = pname;
+ rev = version;
+ sha256 = "1f8m8r81322i97wkqpmf7a4kiwnq244n6cnbldh03jc49vwq2kxx";
+ };
+
+ nativeBuildInputs = [
+ wrapGAppsHook intltool
+ ] ++ (with python3Packages; [
+ setuptools distutils_extra
+ ]);
+
+ buildInputs = [
+ gtk3 poppler_gi
+ ];
+
+ propagatedBuildInputs = with python3Packages; [
+ pygobject3
+ pypdf2
+ ];
+
+ # incompatible with wrapGAppsHook
+ strictDeps = false;
+
+ doCheck = false; # no tests
+
+ meta = with lib; {
+ inherit (src.meta) homepage;
+ description = "Merge or split pdf documents and rotate, crop and rearrange their pages using an interactive and intuitive graphical interface";
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ symphorien ];
+ license = licenses.gpl3;
+ };
+}
diff --git a/pkgs/applications/misc/pdfpc/default.nix b/pkgs/applications/misc/pdfpc/default.nix
index c0dca056476..1adab6b70a3 100644
--- a/pkgs/applications/misc/pdfpc/default.nix
+++ b/pkgs/applications/misc/pdfpc/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchFromGitHub, cmake, makeWrapper, pkgconfig, vala, gtk3, libgee
-, poppler, libpthreadstubs, gstreamer, gst-plugins-base, librsvg, pcre, gobject-introspection }:
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, vala, gtk3, libgee, fetchpatch
+, poppler, libpthreadstubs, gstreamer, gst-plugins-base, librsvg, pcre, gobject-introspection, wrapGAppsHook }:
stdenv.mkDerivation rec {
name = "${product}-${version}";
@@ -17,16 +17,20 @@ stdenv.mkDerivation rec {
cmake pkgconfig vala
# For setup hook
gobject-introspection
+ wrapGAppsHook
];
buildInputs = [ gstreamer gst-plugins-base gtk3 libgee poppler
- libpthreadstubs makeWrapper librsvg pcre ];
+ libpthreadstubs librsvg pcre ];
cmakeFlags = stdenv.lib.optionalString stdenv.isDarwin "-DMOVIES=OFF";
- postInstall = ''
- wrapProgram $out/bin/pdfpc \
- --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE"
- '';
+ patches = [
+ # Fix build vala 0.46
+ (fetchpatch {
+ url = "https://github.com/pdfpc/pdfpc/commit/bbc16b97ecbdcdd22c2dc827a5c0e8b569073312.patch";
+ sha256 = "0wi1rqcvg65cxnxvmvavcvghqyksnpijq1p91m57jaby3hb0pdcy";
+ })
+ ];
meta = with stdenv.lib; {
description = "A presenter console with multi-monitor support for PDF files";
diff --git a/pkgs/applications/misc/pdfsam-basic/default.nix b/pkgs/applications/misc/pdfsam-basic/default.nix
new file mode 100644
index 00000000000..4b086c691cd
--- /dev/null
+++ b/pkgs/applications/misc/pdfsam-basic/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, makeDesktopItem, fetchurl, jdk11, wrapGAppsHook, glib }:
+
+stdenv.mkDerivation rec {
+ pname = "pdfsam-basic";
+ version = "4.0.5";
+
+ src = fetchurl {
+ url = "https://github.com/torakiki/pdfsam/releases/download/v${version}/pdfsam_${version}-1_amd64.deb";
+ sha256 = "1znadsg65312h8yyxvj8k0c4pl3g9daif50vk50acwpblq49wm1v";
+ };
+
+ unpackPhase = ''
+ ar vx ${src}
+ tar xvf data.tar.gz
+ '';
+
+ nativeBuildInputs = [ wrapGAppsHook ];
+ buildInputs = [ glib ];
+
+ preFixup = ''
+ gappsWrapperArgs+=(--set JAVA_HOME "${jdk11}" --set PDFSAM_JAVA_PATH "${jdk11}")
+ '';
+
+ installPhase = ''
+ cp -R opt/pdfsam-basic/ $out/
+ mkdir -p "$out"/share/icons
+ cp --recursive ${desktopItem}/share/applications $out/share
+ cp $out/icon.svg "$out"/share/icons/pdfsam-basic.svg
+ '';
+
+ desktopItem = makeDesktopItem {
+ name = pname;
+ exec = pname;
+ icon = pname;
+ comment = meta.description;
+ desktopName = "PDFsam Basic";
+ genericName = "PDF Split and Merge";
+ mimeType = "application/pdf;";
+ categories = "Office;Application;";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/torakiki/pdfsam";
+ description = "Multi-platform software designed to extract pages, split, merge, mix and rotate PDF files";
+ license = licenses.agpl3;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ maintainers."1000101" ];
+ };
+}
\ No newline at end of file
diff --git a/pkgs/applications/misc/pgmodeler/default.nix b/pkgs/applications/misc/pgmodeler/default.nix
new file mode 100644
index 00000000000..5ce7d06d727
--- /dev/null
+++ b/pkgs/applications/misc/pgmodeler/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, lib, fetchFromGitHub, pkgconfig, qmake, mkDerivation,
+ qtsvg,
+ libxml2, postgresql }:
+
+mkDerivation rec {
+ pname = "pgmodeler";
+ version = "0.9.1";
+
+ src = fetchFromGitHub {
+ owner = "pgmodeler";
+ repo = "pgmodeler";
+ rev = "v${version}";
+ sha256 = "15isnbli9jj327r6sj7498nmhgf1mzdyhc1ih120ibw4900aajiv";
+ };
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [ pkgconfig qmake ];
+ qmakeFlags = [ "pgmodeler.pro" "CONFIG+=release" ];
+
+ # todo: libpq would suffice here. Unfortunately this won't work, if one uses only postgresql.lib here.
+ buildInputs = [ postgresql qtsvg ];
+
+ 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/;
+ license = licenses.gpl3;
+ maintainers = [ maintainers.esclear ];
+ platforms = platforms.linux;
+ };
+}
\ No newline at end of file
diff --git a/pkgs/applications/misc/plover/default.nix b/pkgs/applications/misc/plover/default.nix
index 8021ffdc8f5..77e93eaba7e 100644
--- a/pkgs/applications/misc/plover/default.nix
+++ b/pkgs/applications/misc/plover/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchurl, python27Packages, python36Packages, wmctrl }:
+{ stdenv, fetchurl, python27Packages, python36Packages, wmctrl,
+ qtbase, mkDerivationWith }:
{
stable = with python27Packages; buildPythonPackage rec {
@@ -19,11 +20,11 @@
nativeBuildInputs = [ setuptools_scm ];
buildInputs = [ pytest mock ];
propagatedBuildInputs = [
- six setuptools pyserial appdirs hidapi wxPython xlib wmctrl
+ six setuptools pyserial appdirs hidapi wxPython xlib wmctrl dbus-python
];
};
- dev = with python36Packages; buildPythonPackage rec {
+ dev = with python36Packages; mkDerivationWith buildPythonPackage rec {
pname = "plover";
version = "4.0.0.dev8";
@@ -43,6 +44,11 @@
postPatch = "sed -i /PyQt5/d setup.cfg";
checkInputs = [ pytest mock ];
- propagatedBuildInputs = [ Babel pyqt5 xlib pyserial appdirs wcwidth ];
+ propagatedBuildInputs = [ Babel pyqt5 xlib pyserial appdirs wcwidth setuptools ];
+
+ dontWrapQtApps = true;
+ makeWrapperArgs = [
+ "\${qtWrapperArgs[@]}"
+ ];
};
}
diff --git a/pkgs/applications/misc/prusa-slicer/default.nix b/pkgs/applications/misc/prusa-slicer/default.nix
index a795c448516..f3cd6fdb0f6 100644
--- a/pkgs/applications/misc/prusa-slicer/default.nix
+++ b/pkgs/applications/misc/prusa-slicer/default.nix
@@ -1,5 +1,5 @@
{ stdenv, lib, fetchFromGitHub, makeWrapper, cmake, pkgconfig
-, boost, curl, expat, glew, libpng, tbb, wxGTK30
+, boost, cereal, curl, eigen, expat, glew, libpng, tbb, wxGTK30
, gtest, nlopt, xorg, makeDesktopItem
}:
let
@@ -9,7 +9,7 @@ let
in
stdenv.mkDerivation rec {
pname = "prusa-slicer";
- version = "2.0.0";
+ version = "2.1.0";
enableParallelBuilding = true;
@@ -19,11 +19,11 @@ stdenv.mkDerivation rec {
pkgconfig
];
- # We could add Eigen, but it doesn't currently compile with the version in
- # nixpkgs.
buildInputs = [
boost
+ cereal
curl
+ eigen
expat
glew
libpng
@@ -40,10 +40,15 @@ stdenv.mkDerivation rec {
# We need to set the path via the NLOPT environment variable instead.
NLOPT = nlopt;
+ # 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";
+
prePatch = ''
# In nix ioctls.h isn't available from the standard kernel-headers package
- # on other distributions. As the copy in glibc seems to be identical to the
- # one in the kernel, we use that one instead.
+ # 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
@@ -54,7 +59,7 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub {
owner = "prusa3d";
repo = "PrusaSlicer";
- sha256 = "135wn2sza2f2kvbja1haxil5kx1b74lc1i7dsa35i1y3phabykhz";
+ sha256 = "172nz01iiqfjzkpcbl78j6almq6av70l71jgrzrcdw6ham1wqnpr";
rev = "version_${version}";
};
diff --git a/pkgs/applications/misc/pwsafe/default.nix b/pkgs/applications/misc/pwsafe/default.nix
index 1ed54b05ec8..b1f4e5f9e42 100644
--- a/pkgs/applications/misc/pwsafe/default.nix
+++ b/pkgs/applications/misc/pwsafe/default.nix
@@ -6,13 +6,13 @@
stdenv.mkDerivation rec {
pname = "pwsafe";
- version = "1.08.1";
+ version = "1.08.2";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "${version}BETA";
- sha256 = "0x89pn056h8b4yvxbd6l3qwrghslxc7vlxnblmcmsx7xx4i041ng";
+ sha256 = "14qwk3cv5psj7ll71ikyv452x55c7iwjw9765yrpij6741r4yjln";
};
nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/cerberus11/default.nix b/pkgs/applications/misc/pyditz/cerberus.nix
similarity index 100%
rename from pkgs/development/python-modules/cerberus11/default.nix
rename to pkgs/applications/misc/pyditz/cerberus.nix
diff --git a/pkgs/applications/misc/pyditz/default.nix b/pkgs/applications/misc/pyditz/default.nix
index 0f4e743aba4..60de2f9abdc 100644
--- a/pkgs/applications/misc/pyditz/default.nix
+++ b/pkgs/applications/misc/pyditz/default.nix
@@ -1,18 +1,22 @@
{ stdenv, pythonPackages }:
-pythonPackages.buildPythonApplication rec {
+with pythonPackages;
+
+let
+ cerberus_1_1 = callPackage ./cerberus.nix { };
+in buildPythonApplication rec {
pname = "pyditz";
version = "0.10.3";
- src = pythonPackages.fetchPypi {
+ src = fetchPypi {
inherit pname version;
sha256 = "0hxxz7kxv9gsrr86ccsc31g7bc2agw1ihbxhd659c2m6nrqq5qaf";
};
- nativeBuildInputs = [ pythonPackages.setuptools_scm ];
- propagatedBuildInputs = with pythonPackages; [ pyyaml six jinja2 cerberus11 ];
+ nativeBuildInputs = [ setuptools_scm ];
+ propagatedBuildInputs = [ pyyaml six jinja2 cerberus_1_1 ];
checkPhase = ''
- ${pythonPackages.python.interpreter} -m unittest discover
+ ${python.interpreter} -m unittest discover
'';
meta = with stdenv.lib; {
diff --git a/pkgs/applications/misc/pytrainer/default.nix b/pkgs/applications/misc/pytrainer/default.nix
index 7c560cacda1..0375b99af48 100644
--- a/pkgs/applications/misc/pytrainer/default.nix
+++ b/pkgs/applications/misc/pytrainer/default.nix
@@ -26,13 +26,13 @@ in
python3.pkgs.buildPythonApplication rec {
pname = "pytrainer";
- version = "2.0.0";
+ version = "2.0.1";
src = fetchFromGitHub {
owner = "pytrainer";
repo = "pytrainer";
rev = "v${version}";
- sha256 = "1w5z1xwb2g6j2izm89b7lv9n92r1zhsr8bglxcn7jc5gwbvwysvd";
+ sha256 = "0m2sy3f5pyc4wv1ns31r7vlafqkzp0a2jasaskwrkl6273agbbk9";
};
patches = [
diff --git a/pkgs/applications/misc/qdirstat/default.nix b/pkgs/applications/misc/qdirstat/default.nix
index 1f35643dd76..21d4b003179 100644
--- a/pkgs/applications/misc/qdirstat/default.nix
+++ b/pkgs/applications/misc/qdirstat/default.nix
@@ -19,7 +19,7 @@ in mkDerivation rec {
buildInputs = [ perlPackages.perl ];
- preBuild = ''
+ postPatch = ''
substituteInPlace scripts/scripts.pro \
--replace /bin/true ${coreutils}/bin/true
@@ -37,9 +37,8 @@ in mkDerivation rec {
substituteInPlace src/StdCleanup.cpp \
--replace /bin/bash ${bash}/bin/bash
'';
- postPatch = ''
- export qmakeFlags="$qmakeFlags INSTALL_PREFIX=$out"
- '';
+
+ qmakeFlags = [ "INSTALL_PREFIX=${placeholder "out"}" ];
postInstall = ''
wrapProgram $out/bin/qdirstat-cache-writer \
diff --git a/pkgs/applications/misc/qlcplus/default.nix b/pkgs/applications/misc/qlcplus/default.nix
index 8fc890f4243..c0b844d121a 100644
--- a/pkgs/applications/misc/qlcplus/default.nix
+++ b/pkgs/applications/misc/qlcplus/default.nix
@@ -5,13 +5,13 @@
mkDerivation rec {
pname = "qlcplus";
- version = "4.12.1";
+ version = "4.12.2";
src = fetchFromGitHub {
owner = "mcallegari";
repo = "qlcplus";
rev = "QLC+_${version}";
- sha256 = "1kz2zbz7blnm91dysn949bjsy4xqxg658k47p3gbl0pjl58c44hp";
+ sha256 = "1j0jhgql78p5ghcaz36l1k55447s5qiv396a448qic7xqpym2vl3";
};
nativeBuildInputs = [ qmake pkgconfig ];
@@ -40,6 +40,6 @@ mkDerivation rec {
maintainers = [ maintainers.globin ];
license = licenses.asl20;
platforms = platforms.all;
- homepage = "http://www.qlcplus.org/";
+ homepage = "https://www.qlcplus.org/";
};
}
diff --git a/pkgs/applications/misc/qmapshack/default.nix b/pkgs/applications/misc/qmapshack/default.nix
index 335c583998f..21fbbf3253f 100644
--- a/pkgs/applications/misc/qmapshack/default.nix
+++ b/pkgs/applications/misc/qmapshack/default.nix
@@ -1,12 +1,15 @@
-{ mkDerivation, lib, fetchurl, fetchpatch, cmake, qtscript, qtwebengine, gdal, proj, routino, quazip }:
+{ mkDerivation, lib, fetchFromGitHub, cmake
+, qtscript, qtwebengine, gdal, proj, routino, quazip }:
mkDerivation rec {
pname = "qmapshack";
- version = "1.13.1";
+ version = "1.14.0";
- src = fetchurl {
- url = "https://bitbucket.org/maproom/qmapshack/downloads/${pname}-${version}.tar.gz";
- sha256 = "15x1b2q0hr1vx006f9hjc4cvfjvxvfdwybw32qvczdyc3crq0mc9";
+ src = fetchFromGitHub {
+ owner = "Maproom";
+ repo = pname;
+ rev = "V_${version}";
+ sha256 = "07c2hrq9sn456w7l3gdr599rmjfv2k6mh159zza7p1py8r7ywksa";
};
nativeBuildInputs = [ cmake ];
@@ -22,21 +25,15 @@ mkDerivation rec {
enableParallelBuilding = true;
patches = [
- (fetchpatch {
- url = "https://bitbucket.org/maproom/qmapshack/raw/d0b1b595578a83fda981ccc1ff24166fa636ba1d/FindPROJ4.patch";
- sha256 = "1nx4ax233bnnj478cmjpm5c1qqmyn1navlihf10q6hhbanay9n99";
- })
- (fetchpatch {
- url = "https://bitbucket.org/maproom/qmapshack/raw/d0b1b595578a83fda981ccc1ff24166fa636ba1d/FindQuaZip5.patch";
- sha256 = "0z1b2dz2zlz685mxgn8bmh1fyhxpf6dzd6jvkkjyk2kvnrdxv3b9";
- })
+ "${src}/FindPROJ4.patch"
+ "${src}/FindQuaZip5.patch"
];
meta = with lib; {
- homepage = https://bitbucket.org/maproom/qmapshack/wiki/Home;
- description = "Plan your next outdoor trip";
+ homepage = https://github.com/Maproom/qmapshack;
+ description = "Consumer grade GIS software";
license = licenses.gpl3;
- maintainers = with maintainers; [ dotlambda ];
+ maintainers = with maintainers; [ dotlambda sikmir ];
platforms = with platforms; linux;
};
}
diff --git a/pkgs/applications/misc/qolibri/default.nix b/pkgs/applications/misc/qolibri/default.nix
index ab15855b910..b7c137258fd 100644
--- a/pkgs/applications/misc/qolibri/default.nix
+++ b/pkgs/applications/misc/qolibri/default.nix
@@ -1,15 +1,15 @@
-{ stdenv, fetchFromGitHub, pkgconfig, cmake, libeb, lzo, qtbase
-, qtmultimedia, qttools, qtwebengine }:
+{ mkDerivation, lib, fetchFromGitHub, pkgconfig, cmake, libeb, lzo
+, qtbase, qtmultimedia, qttools, qtwebengine }:
-stdenv.mkDerivation {
+mkDerivation {
pname = "qolibri";
- version = "2018-11-14";
+ version = "2019-07-22";
src = fetchFromGitHub {
owner = "ludios";
repo = "qolibri";
- rev = "133a1c33e74d931ad54407f70d84a0016d96981f";
- sha256 = "16ifix0q8ww4l3xflgxr9j81c0lzlnkjr8fj961x3nxz7288pdg2";
+ rev = "b58f9838d39300cba444eba725a369181c5d746b";
+ sha256 = "0kcc6dvbcmq9y7hk8mp23pydiaqz6f0clg64d1f2y04ppphmah42";
};
nativeBuildInputs = [ pkgconfig cmake ];
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
enableParallelBuilding = true;
- meta = with stdenv.lib; {
+ meta = with lib; {
homepage = https://github.com/ludios/qolibri;
description = "EPWING reader for viewing Japanese dictionaries";
platforms = platforms.linux;
diff --git a/pkgs/applications/misc/qpdfview/default.nix b/pkgs/applications/misc/qpdfview/default.nix
index 81aa18c9f24..4100ab3536b 100644
--- a/pkgs/applications/misc/qpdfview/default.nix
+++ b/pkgs/applications/misc/qpdfview/default.nix
@@ -22,8 +22,12 @@ mkDerivation {
src = fetchurl {
inherit (s) url sha256;
};
+
+ preConfigure = ''
+ qmakeFlags+=(*.pro)
+ '';
+
qmakeFlags = [
- "*.pro"
"TARGET_INSTALL_PATH=${placeholder "out"}/bin"
"PLUGIN_INSTALL_PATH=${placeholder "out"}/lib/qpdfview"
"DATA_INSTALL_PATH=${placeholder "out"}/share/qpdfview"
diff --git a/pkgs/applications/misc/qtbitcointrader/default.nix b/pkgs/applications/misc/qtbitcointrader/default.nix
index d942f999f69..21d51f17258 100644
--- a/pkgs/applications/misc/qtbitcointrader/default.nix
+++ b/pkgs/applications/misc/qtbitcointrader/default.nix
@@ -1,15 +1,15 @@
-{ stdenv, fetchzip, qt5 }:
+{ stdenv, fetchzip, qt5, mkDerivation }:
let
- version = "1.40.41";
+ version = "1.40.43";
in
-stdenv.mkDerivation {
+mkDerivation {
pname = "qtbitcointrader";
inherit version;
src = fetchzip {
url = "https://github.com/JulyIGHOR/QtBitcoinTrader/archive/v${version}.tar.gz";
- sha256 = "0v2rqzswqxfhxvkj1i7b48sd6kbj3w9issvn05yhp7bx75gwns4p";
+ sha256 = "07xbsi78cykpyxidp1bw5ahmymdrs2afg7b0lla7dfhagz18lzxv";
};
buildInputs = [ qt5.qtbase qt5.qtmultimedia qt5.qtscript ];
diff --git a/pkgs/applications/misc/qtpass/default.nix b/pkgs/applications/misc/qtpass/default.nix
index 1fccada4200..1256bb96608 100644
--- a/pkgs/applications/misc/qtpass/default.nix
+++ b/pkgs/applications/misc/qtpass/default.nix
@@ -1,43 +1,41 @@
-{ stdenv, lib, mkDerivation, fetchFromGitHub, fetchpatch
-, git, gnupg, pass, qtbase, qtsvg, qttools, qmake
+{ lib, mkDerivation, fetchFromGitHub
+, git, gnupg, pass, pwgen
+, qtbase, qtsvg, qttools, qmake
}:
mkDerivation rec {
pname = "qtpass";
- version = "1.3.0";
+ version = "1.3.2";
src = fetchFromGitHub {
owner = "IJHack";
repo = "QtPass";
rev = "v${version}";
- sha256 = "0v3ca4fdjk6l24vc9wlc0i7r6fdj85kjmnb7jvicd3f8xi9mvhnv";
+ sha256 = "0748hjvhjrybi33ci3c8hcr74k9pdrf5jv8npf9hrsrmdyy1kr9x";
};
- buildInputs = [ git gnupg pass qtbase qtsvg qttools ];
+ buildInputs = [ git gnupg pass qtbase qtsvg ];
- nativeBuildInputs = [ qmake ];
-
- # Fix missing app icon on Wayland. Has been upstreamed and should be safe to
- # remove in versions > 1.3.0
- patches = [
- (fetchpatch {
- url = "https://github.com/IJHack/QtPass/commit/aba8c4180f0ab3d66c44f88b21f137b19d17bde8.patch";
- sha256 = "009bcq0d75khmaligzd7736xdzy6a8s1m9dgqybn70h801h92fcr";
- })
- ];
+ nativeBuildInputs = [ qmake qttools ];
enableParallelBuilding = true;
+ qmakeFlags = [
+ # setup hook only sets QMAKE_LRELEASE, set QMAKE_LUPDATE too:
+ "QMAKE_LUPDATE=${qttools.dev}/bin/lupdate"
+ ];
+
qtWrapperArgs = [
- "--suffix PATH : ${lib.makeBinPath [ git gnupg pass ]}"
+ "--suffix PATH : ${lib.makeBinPath [ git gnupg pass pwgen ]}"
];
postInstall = ''
- install -D qtpass.desktop $out/share/applications/qtpass.desktop
+ install -D qtpass.desktop -t $out/share/applications
install -D artwork/icon.svg $out/share/icons/hicolor/scalable/apps/qtpass-icon.svg
+ install -D qtpass.1 -t $out/share/man/man1
'';
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "A multi-platform GUI for pass, the standard unix password manager";
homepage = https://qtpass.org;
license = licenses.gpl3;
diff --git a/pkgs/applications/misc/redshift/default.nix b/pkgs/applications/misc/redshift/default.nix
index ad27c9b13a6..e9862041f4a 100644
--- a/pkgs/applications/misc/redshift/default.nix
+++ b/pkgs/applications/misc/redshift/default.nix
@@ -1,6 +1,6 @@
{ stdenv, fetchFromGitHub, autoconf, automake, gettext, intltool
, libtool, pkgconfig, wrapGAppsHook, wrapPython, gobject-introspection
-, gtk3, python, pygobject3, hicolor-icon-theme, pyxdg
+, gtk3, python, pygobject3, pyxdg
, withQuartz ? stdenv.isDarwin, ApplicationServices
, withRandr ? stdenv.isLinux, libxcb
@@ -11,83 +11,108 @@
, withGeoclue ? withGeolocation && stdenv.isLinux, geoclue
}:
-stdenv.mkDerivation rec {
- pname = "redshift";
- version = "1.12";
+let
+ mkRedshift =
+ { pname, version, src, meta }:
+ stdenv.mkDerivation rec {
+ inherit pname version src meta;
- src = fetchFromGitHub {
- owner = "jonls";
- repo = "redshift";
- rev = "v${version}";
- sha256 = "12cb4gaqkybp4bkkns8pam378izr2mwhr2iy04wkprs2v92j7bz6";
+ patches = [
+ # https://github.com/jonls/redshift/pull/575
+ ./575.patch
+ ];
+
+ nativeBuildInputs = [
+ autoconf
+ automake
+ gettext
+ intltool
+ libtool
+ pkgconfig
+ wrapGAppsHook
+ wrapPython
+ ];
+
+ configureFlags = [
+ "--enable-randr=${if withRandr then "yes" else "no"}"
+ "--enable-geoclue2=${if withGeoclue then "yes" else "no"}"
+ "--enable-drm=${if withDrm then "yes" else "no"}"
+ "--enable-quartz=${if withQuartz then "yes" else "no"}"
+ "--enable-corelocation=${if withCoreLocation then "yes" else "no"}"
+ ];
+
+ buildInputs = [
+ gobject-introspection
+ gtk3
+ python
+ ] ++ stdenv.lib.optional withRandr libxcb
+ ++ stdenv.lib.optional withGeoclue geoclue
+ ++ stdenv.lib.optional withDrm libdrm
+ ++ stdenv.lib.optional withQuartz ApplicationServices
+ ++ stdenv.lib.optionals withCoreLocation [ CoreLocation Foundation Cocoa ]
+ ;
+
+ pythonPath = [ pygobject3 pyxdg ];
+
+ preConfigure = "./bootstrap";
+
+ postFixup = "wrapPythonPrograms";
+
+ # the geoclue agent may inspect these paths and expect them to be
+ # valid without having the correct $PATH set
+ postInstall = ''
+ substituteInPlace $out/share/applications/redshift.desktop \
+ --replace 'Exec=redshift' "Exec=$out/bin/redshift"
+ substituteInPlace $out/share/applications/redshift.desktop \
+ --replace 'Exec=redshift-gtk' "Exec=$out/bin/redshift-gtk"
+ '';
+
+ enableParallelBuilding = true;
+ };
+in
+rec {
+ redshift = mkRedshift rec {
+ pname = "redshift";
+ version = "1.12";
+
+ src = fetchFromGitHub {
+ owner = "jonls";
+ repo = "redshift";
+ rev = "v${version}";
+ sha256 = "12cb4gaqkybp4bkkns8pam378izr2mwhr2iy04wkprs2v92j7bz6";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Screen color temperature manager";
+ longDescription = ''
+ Redshift adjusts the color temperature according to the position
+ of the sun. A different color temperature is set during night and
+ daytime. During twilight and early morning, the color temperature
+ transitions smoothly from night to daytime temperature to allow
+ your eyes to slowly adapt. At night the color temperature should
+ be set to match the lamps in your room.
+ '';
+ license = licenses.gpl3Plus;
+ homepage = http://jonls.dk/redshift;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ yegortimoshenko globin ];
+ };
};
- patches = [
- # https://github.com/jonls/redshift/pull/575
- ./575.patch
- ];
+ redshift-wlr = mkRedshift {
+ pname = "redshift-wlr";
+ version = "2019-04-17";
- nativeBuildInputs = [
- autoconf
- automake
- gettext
- intltool
- libtool
- pkgconfig
- wrapGAppsHook
- wrapPython
- ];
+ src = fetchFromGitHub {
+ owner = "minus7";
+ repo = "redshift";
+ rev = "eecbfedac48f827e96ad5e151de8f41f6cd3af66";
+ sha256 = "0rs9bxxrw4wscf4a8yl776a8g880m5gcm75q06yx2cn3lw2b7v22";
+ };
- configureFlags = [
- "--enable-randr=${if withRandr then "yes" else "no"}"
- "--enable-geoclue2=${if withGeoclue then "yes" else "no"}"
- "--enable-drm=${if withDrm then "yes" else "no"}"
- "--enable-quartz=${if withQuartz then "yes" else "no"}"
- "--enable-corelocation=${if withCoreLocation then "yes" else "no"}"
- ];
-
- buildInputs = [
- gobject-introspection
- gtk3
- python
- hicolor-icon-theme
- ] ++ stdenv.lib.optional withRandr libxcb
- ++ stdenv.lib.optional withGeoclue geoclue
- ++ stdenv.lib.optional withDrm libdrm
- ++ stdenv.lib.optional withQuartz ApplicationServices
- ++ stdenv.lib.optionals withCoreLocation [ CoreLocation Foundation Cocoa ]
- ;
-
- pythonPath = [ pygobject3 pyxdg ];
-
- preConfigure = "./bootstrap";
-
- postFixup = "wrapPythonPrograms";
-
- # the geoclue agent may inspect these paths and expect them to be
- # valid without having the correct $PATH set
- postInstall = ''
- substituteInPlace $out/share/applications/redshift.desktop \
- --replace 'Exec=redshift' "Exec=$out/bin/redshift"
- substituteInPlace $out/share/applications/redshift.desktop \
- --replace 'Exec=redshift-gtk' "Exec=$out/bin/redshift-gtk"
- '';
-
- enableParallelBuilding = true;
-
- meta = with stdenv.lib; {
- description = "Screen color temperature manager";
- longDescription = ''
- Redshift adjusts the color temperature according to the position
- of the sun. A different color temperature is set during night and
- daytime. During twilight and early morning, the color temperature
- transitions smoothly from night to daytime temperature to allow
- your eyes to slowly adapt. At night the color temperature should
- be set to match the lamps in your room.
- '';
- license = licenses.gpl3Plus;
- homepage = http://jonls.dk/redshift;
- platforms = platforms.unix;
- maintainers = with maintainers; [ yegortimoshenko globin ];
+ meta = redshift.meta // {
+ description = redshift.meta.description + "(with wlroots patches)";
+ homepage = https://github.com/minus7/redshift;
+ };
};
}
diff --git a/pkgs/applications/misc/regextester/default.nix b/pkgs/applications/misc/regextester/default.nix
index ca362bab2ec..816a158c031 100644
--- a/pkgs/applications/misc/regextester/default.nix
+++ b/pkgs/applications/misc/regextester/default.nix
@@ -1,5 +1,6 @@
{ stdenv
, fetchFromGitHub
+, vala
, gettext
, libxml2
, pkgconfig
@@ -25,7 +26,7 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs = [
- pantheon.vala
+ vala
gettext
gobject-introspection
libxml2
diff --git a/pkgs/applications/misc/rescuetime/default.nix b/pkgs/applications/misc/rescuetime/default.nix
index cd232088b5b..13ae1f1ba7d 100644
--- a/pkgs/applications/misc/rescuetime/default.nix
+++ b/pkgs/applications/misc/rescuetime/default.nix
@@ -1,21 +1,21 @@
-{ stdenv, lib, fetchurl, dpkg, patchelf, qt5, libXtst, libXext, libX11, makeWrapper, libXScrnSaver }:
+{ stdenv, lib, fetchurl, dpkg, patchelf, qt5, libXtst, libXext, libX11, mkDerivation, makeWrapper, libXScrnSaver }:
let
src =
if stdenv.hostPlatform.system == "i686-linux" then fetchurl {
name = "rescuetime-installer.deb";
url = "https://www.rescuetime.com/installers/rescuetime_current_i386.deb";
- sha256 = "03bky9vja7fijz45n44b6gawd6q8yd30nx6nya9lqdlxd1bkqmji";
+ sha256 = "0mw8dh9z7pqan0yrhycmv39h5c1sc4mbw5l02cfnn17cy75xdiay";
} else fetchurl {
name = "rescuetime-installer.deb";
url = "https://www.rescuetime.com/installers/rescuetime_current_amd64.deb";
- sha256 = "03bky9vja7fijz45n44b6gawd6q8yd30nx6nya9lqdlxd1bkqmji";
+ sha256 = "1a6pc8vi2ab721kzyhvg6bmw24dr85dgmx2m9j9vbf3jyr85fv10";
};
-in stdenv.mkDerivation {
+in mkDerivation {
# https://www.rescuetime.com/updates/linux_release_notes.html
- name = "rescuetime-2.14.3.1";
+ name = "rescuetime-2.14.5.2";
inherit src;
- buildInputs = [ dpkg makeWrapper ];
+ nativeBuildInputs = [ dpkg ];
# avoid https://github.com/NixOS/patchelf/issues/99
dontStrip = true;
unpackPhase = ''
diff --git a/pkgs/applications/misc/roxterm/default.nix b/pkgs/applications/misc/roxterm/default.nix
index 3dbe7790d18..d02296f0e16 100644
--- a/pkgs/applications/misc/roxterm/default.nix
+++ b/pkgs/applications/misc/roxterm/default.nix
@@ -1,6 +1,6 @@
{ at-spi2-core, cmake, dbus, dbus-glib, docbook_xsl, epoxy, fetchpatch, fetchFromGitHub
-, glib, gtk3, harfbuzz, hicolor-icon-theme, libXdmcp, libXtst, libpthreadstubs
-, libselinux, libsepol, libtasn1, libxkbcommon, libxslt, p11-kit, pcre
+, glib, gtk3, harfbuzz, libXdmcp, libXtst, libpthreadstubs
+, libselinux, libsepol, libtasn1, libxkbcommon, libxslt, p11-kit, pcre2
, pkgconfig, stdenv, utillinuxMinimal, vte, wrapGAppsHook, xmlto
}:
@@ -28,8 +28,8 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake pkgconfig wrapGAppsHook libxslt ];
buildInputs =
- [ gtk3 dbus dbus-glib vte pcre harfbuzz libpthreadstubs libXdmcp
- utillinuxMinimal glib hicolor-icon-theme docbook_xsl xmlto libselinux
+ [ gtk3 dbus dbus-glib vte pcre2 harfbuzz libpthreadstubs libXdmcp
+ utillinuxMinimal glib docbook_xsl xmlto libselinux
libsepol libxkbcommon epoxy at-spi2-core libXtst libtasn1 p11-kit
];
diff --git a/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-bidi/default.nix b/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-bidi/default.nix
new file mode 100644
index 00000000000..3e67e4ec085
--- /dev/null
+++ b/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-bidi/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchurl, perlPackages, pkgconfig, fribidi }:
+
+perlPackages.buildPerlPackage rec {
+ pname = "urxvt-bidi";
+ version = "2.15";
+
+ src = fetchurl {
+ url = "mirror://cpan/authors/id/K/KA/KAMENSKY/Text-Bidi-${version}.tar.gz";
+ sha256 = "1w65xbi4mw5acsrpv3phyzv82ghb29kpbb3b1b1gcinlfxl6f61m";
+ };
+
+ nativeBuildInputs = [ pkgconfig perlPackages.ExtUtilsPkgConfig ];
+ buildInputs = [ fribidi ];
+
+ postInstall = ''
+ install -Dm555 misc/bidi "$out/lib/urxvt/perl/bidi"
+ '';
+
+ meta = with lib; {
+ description = "Text::Bidi Perl package using fribidi, providing a urxvt plugin";
+ homepage = "https://github.com/mkamensky/Text-Bidi";
+ maintainers = with maintainers; [ doronbehar ];
+ platforms = with platforms; unix;
+ };
+}
diff --git a/pkgs/applications/misc/sakura/default.nix b/pkgs/applications/misc/sakura/default.nix
index 8510d501942..f646b473915 100644
--- a/pkgs/applications/misc/sakura/default.nix
+++ b/pkgs/applications/misc/sakura/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchurl, cmake, pkgconfig, gtk3, perl, vte, pcre, glib , makeWrapper }:
+{ stdenv, fetchurl, cmake, pkgconfig, gtk3, perl, vte, pcre2, glib , makeWrapper }:
stdenv.mkDerivation rec {
pname = "sakura";
- version = "3.6.0";
+ version = "3.7.0";
src = fetchurl {
- url = "https://launchpad.net/sakura/trunk/${version}/+download/${pname}-${version}.tar.bz2";
- sha256 = "1q463qm41ym7jb3kbzjz7b6x549vmgkb70arpkhsf86yxly1y5m1";
+ url = "https://launchpad.net/sakura/trunk/${version}/+download/${pname}-${version}.tar.gz";
+ sha256 = "15gskj5yv5qs3cj4ps43735kfx2nzjlhq4dk9ghirl8lvhhxsm5m";
};
nativeBuildInputs = [ cmake perl pkgconfig ];
- buildInputs = [ makeWrapper gtk3 vte pcre glib ];
+ buildInputs = [ makeWrapper gtk3 vte pcre2 glib ];
# Wrapper sets path to gsettings-schemata so sakura knows where to find colorchooser, fontchooser ...
postInstall = "wrapProgram $out/bin/sakura --suffix XDG_DATA_DIRS : ${gtk3}/share/gsettings-schemas/${gtk3.name}/";
diff --git a/pkgs/applications/misc/sequeler/default.nix b/pkgs/applications/misc/sequeler/default.nix
index e3edb539928..4f8315f060a 100644
--- a/pkgs/applications/misc/sequeler/default.nix
+++ b/pkgs/applications/misc/sequeler/default.nix
@@ -1,5 +1,5 @@
{ stdenv, fetchFromGitHub
-, meson, ninja, pkgconfig, pantheon, gettext, wrapGAppsHook, python3, desktop-file-utils
+, vala, meson, ninja, pkgconfig, pantheon, gettext, wrapGAppsHook, python3, desktop-file-utils
, gtk3, glib, libgee, libgda, gtksourceview, libxml2, libsecret, libssh2 }:
@@ -11,16 +11,16 @@ let
in stdenv.mkDerivation rec {
pname = "sequeler";
- version = "0.7.2";
+ version = "0.7.3";
src = fetchFromGitHub {
owner = "Alecaddd";
repo = pname;
rev = "v${version}";
- sha256 = "0mxlhyfqmd4zg0psdmr62rhmvssw8jslm7a1nvh93675ns3vfrs5";
+ sha256 = "16vc3v9qls9fxg9h8fsi67z68s4acl5hj14gbcrnqm7mf3kmk3aw";
};
- nativeBuildInputs = [ meson ninja pkgconfig pantheon.vala gettext wrapGAppsHook python3 desktop-file-utils ];
+ nativeBuildInputs = [ meson ninja pkgconfig vala gettext wrapGAppsHook python3 desktop-file-utils ];
buildInputs = [ gtk3 glib pantheon.granite libgee sqlGda gtksourceview libxml2 libsecret libssh2 ];
diff --git a/pkgs/applications/misc/sidequest/default.nix b/pkgs/applications/misc/sidequest/default.nix
index 1ec2665c676..30aa45c14ff 100644
--- a/pkgs/applications/misc/sidequest/default.nix
+++ b/pkgs/applications/misc/sidequest/default.nix
@@ -1,8 +1,8 @@
{ stdenv, lib, fetchurl, buildFHSUserEnv, makeDesktopItem, makeWrapper, atomEnv, libuuid, at-spi2-atk, icu, openssl, zlib }:
let
pname = "sidequest";
- version = "0.3.1";
-
+ version = "0.7.6";
+
desktopItem = makeDesktopItem rec {
name = "SideQuest";
exec = "SideQuest";
@@ -15,17 +15,17 @@
inherit pname version;
src = fetchurl {
- url = "https://github.com/the-expanse/SideQuest/releases/download/${version}/SideQuest-linux-x64.tar.gz";
- sha256 = "1hj398zzp1x74zhp9rlhqzm9a0ck6zh9bj39g6fpvc38zab5dj1p";
+ url = "https://github.com/the-expanse/SideQuest/releases/download/v${version}/SideQuest-${version}.tar.xz";
+ sha256 = "1yyba5495ydyyfl62pjd4hbga86k7f2a72ds2j2qzkinngyl14j8";
};
buildInputs = [ makeWrapper ];
buildCommand = ''
mkdir -p "$out/lib/SideQuest" "$out/bin"
- tar -xzf "$src" -C "$out/lib/SideQuest" --strip-components 1
+ tar -xJf "$src" -C "$out/lib/SideQuest" --strip-components 1
- ln -s "$out/lib/SideQuest/SideQuest" "$out/bin"
+ ln -s "$out/lib/SideQuest/sidequest" "$out/bin"
fixupPhase
@@ -35,7 +35,7 @@
patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${atomEnv.libPath}/lib:${lib.makeLibraryPath [libuuid at-spi2-atk]}:$out/lib/SideQuest" \
- "$out/lib/SideQuest/SideQuest"
+ "$out/lib/SideQuest/sidequest"
'';
};
in buildFHSUserEnv {
@@ -49,11 +49,11 @@
homepage = "https://github.com/the-expanse/SideQuest";
downloadPage = "https://github.com/the-expanse/SideQuest/releases";
license = licenses.mit;
- maintainers = [ maintainers.joepie91 ];
+ maintainers = with maintainers; [ joepie91 rvolosatovs ];
platforms = [ "x86_64-linux" ];
};
};
-
+
targetPkgs = pkgs: [
sidequest
# Needed in the environment on runtime, to make QuestSaberPatch work
@@ -62,8 +62,8 @@
extraInstallCommands = ''
mkdir -p "$out/share/applications"
- ln -s "${desktopItem}/share/applications/*" "$out/share/applications"
+ ln -s ${desktopItem}/share/applications/* "$out/share/applications"
'';
- runScript = "SideQuest";
+ runScript = "sidequest";
}
diff --git a/pkgs/applications/misc/simplenote/default.nix b/pkgs/applications/misc/simplenote/default.nix
index 6a16741a06b..be8e2105401 100644
--- a/pkgs/applications/misc/simplenote/default.nix
+++ b/pkgs/applications/misc/simplenote/default.nix
@@ -1,64 +1,75 @@
-{ fetchurl, stdenv, lib, zlib, glib, alsaLib, dbus, gtk2, atk, pango, freetype, fontconfig
-, libgnome-keyring3, gdk-pixbuf, cairo, cups, expat, libgpgerror, nspr
-, nss, xorg, libcap, systemd, libnotify ,libXScrnSaver, gnome2 }:
+{ atomEnv, autoPatchelfHook, dpkg, fetchurl, makeDesktopItem, makeWrapper
+, stdenv, udev, wrapGAppsHook }:
-stdenv.mkDerivation rec {
+let
+ inherit (stdenv.hostPlatform) system;
- name = "simplenote-${pkgver}";
- pkgver = "1.1.3";
+ pname = "simplenote";
- src = fetchurl {
- url = "https://github.com/Automattic/simplenote-electron/releases/download/v${pkgver}/Simplenote-linux-${pkgver}.tar.gz";
- sha256 = "1z92yyjmg3bgfqfdpnysf98h9hhhnqzdqqigwlmdmn3d7fy49kcf";
- };
+ version = "1.9.1";
- buildCommand = let
-
- packages = [
- stdenv.cc.cc zlib glib dbus gtk2 atk pango freetype libgnome-keyring3
- fontconfig gdk-pixbuf cairo cups expat libgpgerror alsaLib nspr nss
- xorg.libXrender xorg.libX11 xorg.libXext xorg.libXdamage xorg.libXtst
- xorg.libXcomposite xorg.libXi xorg.libXfixes xorg.libXrandr
- xorg.libXcursor libcap systemd libnotify libXScrnSaver gnome2.GConf
- xorg.libxcb
- ];
-
- libPathNative = lib.makeLibraryPath packages;
- libPath64 = lib.makeSearchPathOutput "lib" "lib64" packages;
- libPath = "${libPathNative}:${libPath64}";
-
- in ''
- mkdir -p $out/share/
- mkdir -p $out/bin
- tar xvzf $src -C $out/share/
- mv $out/share/Simplenote-linux-x64 $out/share/simplenote
- mv $out/share/simplenote/Simplenote $out/share/simplenote/simplenote
- mkdir -p $out/share/applications
-
- cat > $out/share/applications/simplenote.desktop << EOF
- [Desktop Entry]
- Name=Simplenote
- Comment=Simplenote for Linux
- Exec=$out/bin/simplenote
- Icon=$out/share/simplenote/Simplenote.png
- Type=Application
- StartupNotify=true
- Categories=Development;
- EOF
-
- fixupPhase
-
- patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
- --set-rpath "${libPath}:$out/share/simplenote" \
- $out/share/simplenote/simplenote
-
- ln -s $out/share/simplenote/simplenote $out/bin/simplenote
- '';
+ sha256 = {
+ x86_64-linux = "1zqrjh1xfdpkpj1fsri9r4qkazh9j89pbj8vjr474b39v56v693j";
+ }.${system};
meta = with stdenv.lib; {
description = "The simplest way to keep notes";
- homepage = https://github.com/Automattic/simplenote-electron;
- license = licenses.lgpl2;
+ homepage = "https://github.com/Automattic/simplenote-electron";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ kiwi ];
platforms = [ "x86_64-linux" ];
};
-}
+
+ linux = stdenv.mkDerivation rec {
+ inherit pname version meta;
+
+ src = fetchurl {
+ url =
+ "https://github.com/Automattic/simplenote-electron/releases/download/"
+ + "v${version}/Simplenote-linux-${version}-amd64.deb";
+ inherit sha256;
+ };
+
+ desktopItem = makeDesktopItem {
+ name = "simplenote";
+ comment = "Simplenote for Linux";
+ exec = "simplenote %U";
+ icon = "simplenote";
+ type = "Application";
+ startupNotify = "true";
+ desktopName = "Simplenote";
+ categories = "Development";
+ };
+
+ dontBuild = true;
+ dontConfigure = true;
+ dontPatchELF = true;
+ dontWrapGApps = true;
+
+ buildInputs = atomEnv.packages;
+
+ nativeBuildInputs = [ dpkg makeWrapper autoPatchelfHook wrapGAppsHook ];
+
+ unpackPhase = "dpkg-deb -x $src .";
+
+ installPhase = ''
+ mkdir -p "$out/bin"
+ cp -R "opt" "$out"
+ cp -R "usr/share" "$out/share"
+ chmod -R g-w "$out"
+
+ mkdir -p "$out/share/applications"
+ cp "${desktopItem}/share/applications/"* "$out/share/applications"
+ '';
+
+ runtimeDependencies = [ udev.lib ];
+
+ postFixup = ''
+ ls -ahl $out
+ makeWrapper $out/opt/Simplenote/simplenote $out/bin/simplenote \
+ "''${gappsWrapperArgs[@]}"
+ '';
+ };
+
+in
+ linux
diff --git a/pkgs/applications/misc/sleepyhead/default.nix b/pkgs/applications/misc/sleepyhead/default.nix
index cf5c4625c95..a3270929417 100644
--- a/pkgs/applications/misc/sleepyhead/default.nix
+++ b/pkgs/applications/misc/sleepyhead/default.nix
@@ -37,6 +37,7 @@ in stdenv.mkDerivation {
license = licenses.gpl3;
platforms = platforms.all;
maintainers = [ maintainers.krav ];
+ broken = true;
};
}
diff --git a/pkgs/applications/misc/solaar/default.nix b/pkgs/applications/misc/solaar/default.nix
index f2e1aa6bdb6..722b0bc5077 100644
--- a/pkgs/applications/misc/solaar/default.nix
+++ b/pkgs/applications/misc/solaar/default.nix
@@ -1,17 +1,14 @@
{ fetchFromGitHub, lib, gobject-introspection, gtk3, python3Packages }:
-
# Although we copy in the udev rules here, you probably just want to use logitech-udev-rules instead of
# adding this to services.udev.packages on NixOS
-
-python3Packages.buildPythonApplication {
- pname = "solaar-unstable";
- version = "2019-01-30";
-
+python3Packages.buildPythonApplication rec {
+ pname = "solaar";
+ version = "1.0.1";
src = fetchFromGitHub {
- owner = "pwr";
+ owner = "pwr-Solaar";
repo = "Solaar";
- rev = "c07c115ee379e82db84283aaa29dc53df033a8c8";
- sha256 = "0xg181xcwzzs8pdqvjrkjyaaga7ir93hzjvd17j9g3ns8xfj2mvr";
+ rev = "${version}";
+ sha256 = "1ni3aimpl9vyhwzi61mvm8arkii52cmb6bzjma9cnkjyx328pkid";
};
propagatedBuildInputs = with python3Packages; [ gobject-introspection gtk3 pygobject3 pyudev ];
@@ -28,7 +25,6 @@ python3Packages.buildPythonApplication {
'';
enableParallelBuilding = true;
-
meta = with lib; {
description = "Linux devices manager for the Logitech Unifying Receiver";
longDescription = ''
@@ -43,7 +39,7 @@ python3Packages.buildPythonApplication {
To be able to use it, make sure you have access to /dev/hidraw* files.
'';
license = licenses.gpl2;
- homepage = https://pwr.github.io/Solaar/;
+ homepage = https://pwr-solaar.github.io/Solaar/;
platforms = platforms.linux;
maintainers = with maintainers; [ spinus ysndr ];
};
diff --git a/pkgs/applications/misc/stupidterm/default.nix b/pkgs/applications/misc/stupidterm/default.nix
index ecaf9d5a34a..a3247b29fb8 100644
--- a/pkgs/applications/misc/stupidterm/default.nix
+++ b/pkgs/applications/misc/stupidterm/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, pkgconfig, vte, gtk }:
+{ stdenv, fetchFromGitHub, pkgconfig, vte, gtk, pcre2 }:
stdenv.mkDerivation {
pname = "stupidterm";
@@ -6,7 +6,7 @@ stdenv.mkDerivation {
nativeBuildInputs = [ pkgconfig ];
- buildInputs = [ vte gtk ];
+ buildInputs = [ vte gtk pcre2 ];
src = fetchFromGitHub {
owner = "esmil";
diff --git a/pkgs/applications/misc/synapse/default.nix b/pkgs/applications/misc/synapse/default.nix
index c314e8ffe5a..c12f5b17679 100644
--- a/pkgs/applications/misc/synapse/default.nix
+++ b/pkgs/applications/misc/synapse/default.nix
@@ -1,5 +1,5 @@
{ stdenv, fetchurl, gettext, pkgconfig, glib, libnotify, gtk3, libgee
-, keybinder3, json-glib, zeitgeist, vala, hicolor-icon-theme, gobject-introspection
+, keybinder3, json-glib, zeitgeist, vala, gobject-introspection
}:
let
@@ -20,7 +20,6 @@ in stdenv.mkDerivation rec {
];
buildInputs = [
glib libnotify gtk3 libgee keybinder3 json-glib zeitgeist
- hicolor-icon-theme
];
meta = with stdenv.lib; {
diff --git a/pkgs/applications/misc/syncthingtray/default.nix b/pkgs/applications/misc/syncthingtray/default.nix
index 0dc8f3bf38e..816ae664f8e 100644
--- a/pkgs/applications/misc/syncthingtray/default.nix
+++ b/pkgs/applications/misc/syncthingtray/default.nix
@@ -20,14 +20,14 @@
}:
mkDerivation rec {
- version = "0.9.1";
+ version = "0.10.2";
pname = "syncthingtray";
src = fetchFromGitHub {
owner = "Martchus";
repo = "syncthingtray";
rev = "v${version}";
- sha256 = "0ijwpwlwwbfh9fdfbwz6dgi6hpmaav2jm56mzxm6as50iwnb59fx";
+ sha256 = "09iq1rr70wwy5xk0jmfnwzvnigq409hvs2viy1j0khn9jhvnk6z0";
};
buildInputs = [ qtbase cpp-utilities qtutilities ]
@@ -45,6 +45,7 @@ mkDerivation rec {
] ++ lib.optionals (!plasmoidSupport) ["-DNO_PLASMOID=ON"]
++ lib.optionals (!kioPluginSupport) ["-DNO_FILE_ITEM_ACTION_PLUGIN=ON"]
++ lib.optionals systemdSupport ["-DSYSTEMD_SUPPORT=ON"]
+ ++ lib.optionals (!webviewSupport) ["-DWEBVIEW_PROVIDER:STRING=none"]
;
meta = with lib; {
diff --git a/pkgs/applications/misc/tasksh/default.nix b/pkgs/applications/misc/tasksh/default.nix
index feb06368de4..931a27fbeff 100644
--- a/pkgs/applications/misc/tasksh/default.nix
+++ b/pkgs/applications/misc/tasksh/default.nix
@@ -19,6 +19,6 @@ stdenv.mkDerivation rec {
homepage = http://tasktools.org;
license = licenses.mit;
maintainers = with maintainers; [ matthiasbeyer ];
- platforms = platforms.linux;
+ platforms = platforms.unix;
};
}
diff --git a/pkgs/applications/misc/termite/default.nix b/pkgs/applications/misc/termite/default.nix
index 6a9de364446..2a610edde03 100644
--- a/pkgs/applications/misc/termite/default.nix
+++ b/pkgs/applications/misc/termite/default.nix
@@ -1,6 +1,40 @@
-{ stdenv, fetchFromGitHub, fetchpatch, pkgconfig, vte-ng, gtk3, ncurses, wrapGAppsHook }:
+{ stdenv, fetchFromGitHub, fetchpatch, pkgconfig, vte, gtk3, ncurses, pcre2, wrapGAppsHook }:
-stdenv.mkDerivation rec {
+let
+
+ # termite requires VTE with some internals exposed
+ # https://github.com/thestinger/vte-ng
+ vte-ng = vte.overrideAttrs (attrs: {
+ patches = attrs.patches or [] ++ [
+ (fetchpatch {
+ name = "0001-expose-functions-for-pausing-unpausing-output.patch";
+ url = "https://github.com/thestinger/vte-ng/commit/342e26574f50dcd40bbeaad9e839c2a6144d0c1c.patch";
+ sha256 = "1b0k9ys545q85vfki417p21kis9f36yd0hyp12phayynss6fn715";
+ })
+ (fetchpatch {
+ name = "0002-expose-function-for-setting-cursor-position.patch";
+ url = "https://github.com/thestinger/vte-ng/commit/5ae3acb69474fe5bc43767a4a3625e9ed23607a1.patch";
+ sha256 = "091sb44g2pl0zbxnxidpfmsqqc65dmkakhjb0wvlnsjckqalhs89";
+ })
+ (fetchpatch {
+ name = "0003-add-function-for-setting-the-text-selections.patch";
+ url = "https://github.com/thestinger/vte-ng/commit/742d57ecf15e24f6a5f2133a81b6c70acc8ff03c.patch";
+ sha256 = "12rq3svbj1nzridbssxsvmmb8njky3w8qdnkymz7850b3kqg277x";
+ })
+ (fetchpatch {
+ name = "0004-add-functions-to-get-set-block-selection-mode.patch";
+ url = "https://github.com/thestinger/vte-ng/commit/08748fd9cb82bd191e5c476b1682ca71f7732572.patch";
+ sha256 = "1cnhd8f7ywdgcyd6xmcd2nn39jjxzkxp4d0zsj2k7m5v74nhcs1g";
+ })
+ (fetchpatch {
+ name = "0005-expose-function-for-getting-the-selected-text.patch";
+ url = "https://github.com/thestinger/vte-ng/commit/dd74ae7c06e8888af2fc090ac6f8920a9d8227fb.patch";
+ sha256 = "0pbnbkwqxm4p9xsgvqwayvh8srk5z1kyjnigmahf9mlqn7hi6v27";
+ })
+ ];
+ });
+
+in stdenv.mkDerivation rec {
pname = "termite";
version = "15";
@@ -24,12 +58,14 @@ stdenv.mkDerivation rec {
makeFlags = [ "VERSION=v${version}" "PREFIX=" "DESTDIR=$(out)" ];
- buildInputs = [ vte-ng gtk3 ncurses ];
+ buildInputs = [ vte-ng gtk3 ncurses pcre2 ];
nativeBuildInputs = [ wrapGAppsHook pkgconfig ];
outputs = [ "out" "terminfo" ];
+ passthru = { inherit vte-ng; };
+
postInstall = ''
mkdir -p $terminfo/share
mv $out/share/terminfo $terminfo/share/terminfo
diff --git a/pkgs/applications/misc/tilix/default.nix b/pkgs/applications/misc/tilix/default.nix
index aae17905cb7..922b3fd2028 100644
--- a/pkgs/applications/misc/tilix/default.nix
+++ b/pkgs/applications/misc/tilix/default.nix
@@ -16,18 +16,17 @@
, glib
, wrapGAppsHook
, libunwind
-, hicolor-icon-theme
}:
stdenv.mkDerivation {
pname = "tilix";
- version = "unstable-2019-08-03";
+ version = "unstable-2019-10-02";
src = fetchFromGitHub {
owner = "gnunn1";
repo = "tilix";
- rev = "09ec4e8e113703ca795946d8d2a83091e7b741e4";
- sha256 = "1vvp6l25xygzhbhscg8scik8y59nl8a92ri024ijk0c0lclga05m";
+ rev = "ffcd31e3c0e1a560ce89468152d8726065e8fb1f";
+ sha256 = "1bzv7xiqhyblz1rw8ln4zpspmml49vnshn1zsv9di5q7kfgpqrgq";
};
# Default upstream else LDC fails to link
@@ -38,7 +37,6 @@ stdenv.mkDerivation {
nativeBuildInputs = [
desktop-file-utils
dmd
- hicolor-icon-theme # for setup-hook
meson
ninja
pkgconfig
@@ -56,15 +54,6 @@ stdenv.mkDerivation {
libunwind
];
- patches = [
- # Depends on libsecret optionally
- # https://github.com/gnunn1/tilix/pull/1745
- (fetchpatch {
- url = "https://github.com/gnunn1/tilix/commit/e38dd182bfb92419d70434926ef9c0530189aab8.patch";
- sha256 = "1ws4iyzi67crzlp9p7cw8jr752b3phcg5ymx5aj0bh6321g38kfk";
- })
- ];
-
postPatch = ''
chmod +x meson_post_install.py
patchShebangs meson_post_install.py
diff --git a/pkgs/applications/misc/timewarrior/default.nix b/pkgs/applications/misc/timewarrior/default.nix
index d0419c414d7..a8b86e71cb1 100644
--- a/pkgs/applications/misc/timewarrior/default.nix
+++ b/pkgs/applications/misc/timewarrior/default.nix
@@ -1,14 +1,17 @@
-{ stdenv, fetchurl, cmake }:
+{ stdenv, fetchFromGitHub, cmake }:
stdenv.mkDerivation rec {
pname = "timewarrior";
- version = "1.1.1";
+ version = "1.2.0";
enableParallelBuilding = true;
- src = fetchurl {
- url = "https://taskwarrior.org/download/timew-${version}.tar.gz";
- sha256 = "1jfcfzdwk5qqhxznj1bgy0sx3lnp3z5lqr9kch9a7iazwmi9lz8z";
+ src = fetchFromGitHub {
+ owner = "GothenburgBitFactory";
+ repo = "timewarrior";
+ rev = "v${version}";
+ sha256 = "0ci8kb7gdp1dsv6xj30nbz8lidrmn50pbriw26wv8mdhs17rfk7w";
+ fetchSubmodules = true;
};
nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/misc/tint2/default.nix b/pkgs/applications/misc/tint2/default.nix
index e612fb10ff8..c85feff4360 100644
--- a/pkgs/applications/misc/tint2/default.nix
+++ b/pkgs/applications/misc/tint2/default.nix
@@ -1,7 +1,7 @@
{ stdenv, fetchFromGitLab, pkgconfig, cmake, gettext, cairo, pango, pcre
, glib, imlib2, gtk2, libXinerama, libXrender, libXcomposite, libXdamage
, libX11, libXrandr, librsvg, libpthreadstubs, libXdmcp
-, libstartup_notification, hicolor-icon-theme, wrapGAppsHook
+, libstartup_notification, wrapGAppsHook
}:
stdenv.mkDerivation rec {
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
buildInputs = [ cairo pango pcre glib imlib2 gtk2 libXinerama libXrender
libXcomposite libXdamage libX11 libXrandr librsvg libpthreadstubs
- libXdmcp libstartup_notification hicolor-icon-theme ];
+ libXdmcp libstartup_notification ];
postPatch = ''
for f in ./src/launcher/apps-common.c \
diff --git a/pkgs/applications/misc/tippecanoe/default.nix b/pkgs/applications/misc/tippecanoe/default.nix
new file mode 100644
index 00000000000..8d84ab59d47
--- /dev/null
+++ b/pkgs/applications/misc/tippecanoe/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, sqlite, zlib, perl }:
+
+stdenv.mkDerivation rec {
+ pname = "tippecanoe";
+ version = "1.34.3";
+
+ src = fetchFromGitHub {
+ owner = "mapbox";
+ repo = pname;
+ rev = version;
+ sha256 = "08pkxzwp4w5phrk9b0vszxnx8yymp50v0bcw96pz8qwk48z4xm0i";
+ };
+
+ buildInputs = [ sqlite zlib ];
+ checkInputs = [ perl ];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ enableParallelBuilding = true;
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ description = "Build vector tilesets from large collections of GeoJSON features";
+ homepage = https://github.com/mapbox/tippecanoe;
+ license = licenses.bsd2;
+ maintainers = with maintainers; [ sikmir ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/pkgs/applications/misc/tmatrix/default.nix b/pkgs/applications/misc/tmatrix/default.nix
index 3ef0eac2417..ead8d7298e6 100644
--- a/pkgs/applications/misc/tmatrix/default.nix
+++ b/pkgs/applications/misc/tmatrix/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "tmatrix";
- version = "1.0";
+ version = "1.1";
src = fetchFromGitHub {
owner = "M4444";
repo = "TMatrix";
rev = "v${version}";
- sha256 = "1g0gn4p02vjc6l8lc78wlx4xkd74ha7ybx9fvvdr6mizk0cyjili";
+ sha256 = "1x9drk3wdsd6vzcypk3x068sqcbgis488s9fhcpsv8xgb496rd6y";
};
nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/misc/tnef/default.nix b/pkgs/applications/misc/tnef/default.nix
index cb70d57869c..bbd3073a4d8 100644
--- a/pkgs/applications/misc/tnef/default.nix
+++ b/pkgs/applications/misc/tnef/default.nix
@@ -1,14 +1,14 @@
{ stdenv, fetchFromGitHub, autoreconfHook }:
stdenv.mkDerivation rec {
- version = "1.4.17";
+ version = "1.4.18";
pname = "tnef";
src = fetchFromGitHub {
owner = "verdammelt";
repo = "tnef";
rev = version;
- sha256 = "0cq2xh5wd74qn6k2nnw5rayxgqhjl3jbzf4zlc4babcwxrv32ldh";
+ sha256 = "104g48mcm00bgiyzas2vf86331w7bnw7h3bc11ib4lp7rz6zqfck";
};
doCheck = true;
diff --git a/pkgs/applications/misc/todoist/default.nix b/pkgs/applications/misc/todoist/default.nix
index d9dcee762cf..eaedad16748 100644
--- a/pkgs/applications/misc/todoist/default.nix
+++ b/pkgs/applications/misc/todoist/default.nix
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "todoist";
- version = "0.13.1";
+ version = "0.14.0";
src = fetchFromGitHub {
owner = "sachaos";
repo = "todoist";
rev = "v${version}";
- sha256 = "1kwvlsjr2a7wdhlwpxxpdh87wz8k9yjwl59vl2g7ya6m0rvhd3mc";
+ sha256 = "0qhmv65il14lns817yxhma784jw5bz629svzh2ykrmilx5f7dxqc";
};
- modSha256 = "09n6abyaqwz4zcdz8934rvpbxhp4v2nmm5v739kkcc98c3h93i64";
+ modSha256 = "1nnp5ijz4n34gc97rar4wlvlbx21ndpjyb2mc6gxdk1wzx3mgswp";
meta = {
homepage = https://github.com/sachaos/todoist;
diff --git a/pkgs/applications/misc/toot/default.nix b/pkgs/applications/misc/toot/default.nix
index 425ea8d237b..13e0cdfb260 100644
--- a/pkgs/applications/misc/toot/default.nix
+++ b/pkgs/applications/misc/toot/default.nix
@@ -1,20 +1,20 @@
{ stdenv, fetchFromGitHub, python3Packages }:
python3Packages.buildPythonApplication rec {
- version = "0.22.0";
+ version = "0.24.0";
name = "toot-${version}";
src = fetchFromGitHub {
owner = "ihabunek";
repo = "toot";
rev = version;
- sha256 = "11dgz082shxpbsxr4i41as040cfqinm5lbcg3bmsxqvc4hsz2nr5";
+ sha256 = "1szpmkxc1lqfphicfcj0z7b1nq97xmb4ppwf806p8w0fxj1shil3";
};
checkInputs = with python3Packages; [ pytest ];
propagatedBuildInputs = with python3Packages;
- [ requests beautifulsoup4 future wcwidth ];
+ [ requests beautifulsoup4 future wcwidth urwid ];
checkPhase = ''
py.test
diff --git a/pkgs/applications/misc/tootle/default.nix b/pkgs/applications/misc/tootle/default.nix
index 4ccf204357c..15c675c902f 100644
--- a/pkgs/applications/misc/tootle/default.nix
+++ b/pkgs/applications/misc/tootle/default.nix
@@ -1,14 +1,25 @@
-{ stdenv, fetchFromGitHub
-, meson, ninja, pkgconfig, python3, libgee, gsettings-desktop-schemas
-, gnome3, pantheon, gobject-introspection, wrapGAppsHook
-, gtk3, json-glib, glib, glib-networking, hicolor-icon-theme
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, vala
+, meson
+, ninja
+, pkgconfig
+, python3
+, libgee
+, gsettings-desktop-schemas
+, gnome3
+, pantheon
+, wrapGAppsHook
+, gtk3
+, json-glib
+, glib
+, glib-networking
}:
-let
+stdenv.mkDerivation rec {
pname = "tootle";
version = "0.2.0";
-in stdenv.mkDerivation {
- name = "${pname}-${version}";
src = fetchFromGitHub {
owner = "bleakgrey";
@@ -18,28 +29,43 @@ in stdenv.mkDerivation {
};
nativeBuildInputs = [
- gobject-introspection
meson
ninja
pkgconfig
python3
- pantheon.vala
+ vala
wrapGAppsHook
];
+
buildInputs = [
- gtk3 pantheon.granite json-glib glib glib-networking hicolor-icon-theme
- libgee gnome3.libsoup gsettings-desktop-schemas
+ glib
+ glib-networking
+ gnome3.libsoup
+ gsettings-desktop-schemas
+ gtk3
+ json-glib
+ libgee
+ pantheon.granite
+ ];
+
+ patches = [
+ # Fix build with Vala 0.46
+ # https://github.com/bleakgrey/tootle/pull/164
+ (fetchpatch {
+ url = "https://github.com/worldofpeace/tootle/commit/0a88bdad6d969ead1e4058b1a19675c9d6857b16.patch";
+ sha256 = "0xyx00pgswnhxxbsxngsm6khvlbfcl6ic5wv5n64x7klk8rzh6cm";
+ })
];
postPatch = ''
- chmod +x ./meson/post_install.py
- patchShebangs ./meson/post_install.py
+ chmod +x meson/post_install.py
+ patchShebangs meson/post_install.py
'';
meta = with stdenv.lib; {
description = "Simple Mastodon client designed for elementary OS";
- homepage = https://github.com/bleakgrey/tootle;
- license = licenses.gpl3;
+ homepage = https://github.com/bleakgrey/tootle;
+ license = licenses.gpl3;
maintainers = with maintainers; [ dtzWill ];
};
}
diff --git a/pkgs/applications/misc/twmn/default.nix b/pkgs/applications/misc/twmn/default.nix
index 2aef45748ca..cd58219721c 100644
--- a/pkgs/applications/misc/twmn/default.nix
+++ b/pkgs/applications/misc/twmn/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchFromGitHub, qtbase, qtx11extras, qmake, pkgconfig, boost }:
+{ lib, mkDerivation, fetchFromGitHub, qtbase, qtx11extras, qmake, pkgconfig, boost }:
-stdenv.mkDerivation {
+mkDerivation {
name = "twmn-git-2018-10-01";
src = fetchFromGitHub {
@@ -29,8 +29,8 @@ stdenv.mkDerivation {
meta = {
description = "A notification system for tiling window managers";
homepage = https://github.com/sboli/twmn;
- platforms = with stdenv.lib.platforms; linux;
- maintainers = [ stdenv.lib.maintainers.matejc ];
- license = stdenv.lib.licenses.lgpl3;
+ platforms = with lib.platforms; linux;
+ maintainers = [ lib.maintainers.matejc ];
+ license = lib.licenses.lgpl3;
};
}
diff --git a/pkgs/applications/misc/udiskie/default.nix b/pkgs/applications/misc/udiskie/default.nix
index 459104aba63..63892439fa0 100644
--- a/pkgs/applications/misc/udiskie/default.nix
+++ b/pkgs/applications/misc/udiskie/default.nix
@@ -1,5 +1,5 @@
{ stdenv, fetchFromGitHub, asciidoc-full, gettext
-, gobject-introspection, gtk3, hicolor-icon-theme, libappindicator-gtk3, libnotify, librsvg
+, gobject-introspection, gtk3, libappindicator-gtk3, libnotify, librsvg
, udisks2, wrapGAppsHook
, python3Packages
}:
@@ -23,7 +23,6 @@ python3Packages.buildPythonApplication rec {
];
buildInputs = [
- hicolor-icon-theme
librsvg # required for loading svg icons (udiskie uses svg icons)
gobject-introspection
libnotify
diff --git a/pkgs/applications/misc/ulauncher/default.nix b/pkgs/applications/misc/ulauncher/default.nix
index 3db6f6ae565..9fa284aba43 100644
--- a/pkgs/applications/misc/ulauncher/default.nix
+++ b/pkgs/applications/misc/ulauncher/default.nix
@@ -10,7 +10,6 @@
, libappindicator
, intltool
, wmctrl
-, hicolor-icon-theme
, xvfb_run
}:
@@ -36,7 +35,6 @@ python27Packages.buildPythonApplication rec {
buildInputs = [
gnome3.adwaita-icon-theme
gobject-introspection
- hicolor-icon-theme
keybinder3
libappindicator
libnotify
diff --git a/pkgs/applications/misc/urlscan/default.nix b/pkgs/applications/misc/urlscan/default.nix
index 87800cf90d6..791075e4dd9 100644
--- a/pkgs/applications/misc/urlscan/default.nix
+++ b/pkgs/applications/misc/urlscan/default.nix
@@ -2,13 +2,13 @@
python3Packages.buildPythonApplication rec {
pname = "urlscan";
- version = "0.9.3";
+ version = "0.9.4";
src = fetchFromGitHub {
owner = "firecat53";
repo = pname;
rev = version;
- sha256 = "0z24k8sk2zfp2pwysyp844vmhr5vbkj74frwy4i0v5pj60i9jl0v";
+ sha256 = "11wkwjqsq848ks6m2jqsb8h0xnz75fb60bm0c4jkxys9wzy4chg5";
};
propagatedBuildInputs = [ python3Packages.urwid ];
diff --git a/pkgs/applications/misc/variety/default.nix b/pkgs/applications/misc/variety/default.nix
new file mode 100644
index 00000000000..6d8da4a1007
--- /dev/null
+++ b/pkgs/applications/misc/variety/default.nix
@@ -0,0 +1,73 @@
+{
+ fehSupport ? false, feh
+, imagemagickSupport ? true, imagemagick
+, stdenv
+, lib
+, python37Packages
+, fetchFromGitHub
+, intltool
+, gtk3
+, gexiv2
+, libnotify
+, wrapGAppsHook
+, gobject-introspection
+, hicolor-icon-theme
+, librsvg
+}:
+
+with python37Packages;
+
+buildPythonApplication rec {
+ pname = "variety";
+ version = "0.7.2-96-g3afe3ab";
+
+ src = fetchFromGitHub {
+ owner = "varietywalls";
+ repo = "variety";
+ rev = "3afe3abf725e5db2aec0db575a17c9907ab20de1";
+ sha256 = "10vw0202dwrwi497nsbq077v4qd3qn5b8cmkfcsgbvvjwlz7ldm5";
+ };
+
+ nativeBuildInputs = [ intltool wrapGAppsHook ];
+
+ buildInputs = [ distutils_extra ];
+
+ doCheck = false;
+
+ prePatch = ''
+ substituteInPlace variety_lib/varietyconfig.py \
+ --replace "__variety_data_directory__ = \"../data\"" "__variety_data_directory__ = \"$out/share/variety\""
+ substituteInPlace data/scripts/set_wallpaper \
+ --replace /bin/bash ${stdenv.shell}
+ substituteInPlace data/scripts/get_wallpaper \
+ --replace /bin/bash ${stdenv.shell}
+ '';
+
+ propagatedBuildInputs =
+ [ gtk3
+ gexiv2
+ libnotify
+ beautifulsoup4
+ lxml
+ pycairo
+ pygobject3
+ configobj
+ pillow
+ setuptools
+ requests
+ httplib2
+ dbus-python
+ gobject-introspection
+ hicolor-icon-theme
+ librsvg
+ ]
+ ++ lib.optional fehSupport feh
+ ++ lib.optional imagemagickSupport imagemagick;
+
+ 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;
+ license = licenses.gpl3;
+ maintainers = [ maintainers.zfnmxt ];
+ };
+}
diff --git a/pkgs/applications/misc/veracrypt/default.nix b/pkgs/applications/misc/veracrypt/default.nix
index 9639cee2d8c..fe1de349cff 100644
--- a/pkgs/applications/misc/veracrypt/default.nix
+++ b/pkgs/applications/misc/veracrypt/default.nix
@@ -1,21 +1,36 @@
-{ stdenv, fetchurl, pkgconfig, makeself, yasm, fuse, unzip, wxGTK, lvm2 }:
+{ stdenv, fetchurl, fetchpatch, pkgconfig, makeself, yasm, fuse, wxGTK, lvm2 }:
with stdenv.lib;
stdenv.mkDerivation rec {
pname = "veracrypt";
- version = "1.23";
- minorVersion = "-Hotfix-2";
+ version = "1.24-Hotfix1";
src = fetchurl {
- url = "https://launchpad.net/${pname}/trunk/${version}/+download/VeraCrypt_${version}${minorVersion}_Source.zip";
- sha256 = "229de81b2478cfa5fa73e74e60798a298cd616e9852b9f47b484c80bc2a2c259";
+ url = "https://launchpad.net/${pname}/trunk/${toLower version}/+download/VeraCrypt_${version}_Source.tar.bz2";
+ sha256 = "8b40ece805b216843d7a71b1a30069c4057931341b030bf65caace59263c5c8c";
};
+
+ patches = [
+ # https://github.com/veracrypt/VeraCrypt/issues/529 - fix build on non-x86
+ (fetchpatch {
+ url = "https://github.com/veracrypt/VeraCrypt/commit/afe6b2f45b15393026a1159e5f3d165ac7d0b94a.patch";
+ sha256 = "1xm9cl6zinlr0vah5xr9bvh0y9gw4331zl7d2n5xvqrcdxw3ww1y";
+ stripLen = 1;
+ })
+ # https://github.com/veracrypt/VeraCrypt/issues/529 - fix build on non-x86
+ (fetchpatch {
+ url = "https://github.com/veracrypt/VeraCrypt/commit/3fa636d477119fff6e372074568edb42d038f508.patch";
+ sha256 = "0qsccilip0ksnlzxina38a052gb533r4s422lxhrj3wv9zgpp7l3";
+ stripLen = 1;
+ })
+ ];
+
sourceRoot = "src";
nativeBuildInputs = [ makeself pkgconfig yasm ];
- buildInputs = [ fuse lvm2 unzip wxGTK ];
+ buildInputs = [ fuse lvm2 wxGTK ];
enableParallelBuilding = true;
diff --git a/pkgs/applications/misc/verbiste/default.nix b/pkgs/applications/misc/verbiste/default.nix
index b6a8b567a50..680573fd304 100644
--- a/pkgs/applications/misc/verbiste/default.nix
+++ b/pkgs/applications/misc/verbiste/default.nix
@@ -3,11 +3,11 @@
stdenv.mkDerivation rec {
pname = "verbiste";
- version = "0.1.46";
+ version = "0.1.47";
src = fetchurl {
url = "https://perso.b2b2c.ca/~sarrazip/dev/${pname}-${version}.tar.gz";
- sha256 = "13l8b8mbkdds955sn42hzrjzj48lg1drpd7vhpcjxadckbvlh1p0";
+ sha256 = "02kzin3pky2q2jnihrch8y0hy043kqqmzxq8j741x80kl0j1qxkm";
};
nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/misc/viking/default.nix b/pkgs/applications/misc/viking/default.nix
index cda3b1a6f85..c5ba35d9747 100644
--- a/pkgs/applications/misc/viking/default.nix
+++ b/pkgs/applications/misc/viking/default.nix
@@ -1,7 +1,7 @@
{ fetchurl, stdenv, makeWrapper, pkgconfig, intltool, gettext, gtk2, expat, curl
, gpsd, bc, file, gnome-doc-utils, libexif, libxml2, libxslt, scrollkeeper
-, docbook_xml_dtd_412, gexiv2, sqlite, gpsbabel, expect, hicolor-icon-theme
-, geoclue2, liboauth }:
+, docbook_xml_dtd_412, gexiv2, sqlite, gpsbabel, expect
+, geoclue2, liboauth, nettle }:
stdenv.mkDerivation rec {
pname = "viking";
@@ -14,8 +14,8 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ makeWrapper intltool gettext gtk2 expat curl gpsd bc file gnome-doc-utils
- libexif libxml2 libxslt scrollkeeper docbook_xml_dtd_412 gexiv2 sqlite hicolor-icon-theme
- geoclue2 liboauth
+ libexif libxml2 libxslt scrollkeeper docbook_xml_dtd_412 gexiv2 sqlite
+ geoclue2 liboauth nettle
];
configureFlags = [ "--disable-scrollkeeper --disable-mapnik" ];
diff --git a/pkgs/applications/misc/vit/default.nix b/pkgs/applications/misc/vit/default.nix
index 3eb797f182e..9953af19d90 100644
--- a/pkgs/applications/misc/vit/default.nix
+++ b/pkgs/applications/misc/vit/default.nix
@@ -1,40 +1,37 @@
-{ stdenv, fetchFromGitHub
-, makeWrapper, which
-, taskwarrior, ncurses, perlPackages }:
+{ lib
+, python3Packages
+, taskwarrior }:
-stdenv.mkDerivation rec {
+with python3Packages;
+
+buildPythonApplication rec {
pname = "vit";
- version = "1.3";
+ version = "2.0.0";
+ disabled = lib.versionOlder python.version "3.6";
- src = fetchFromGitHub {
- owner = "scottkosty";
- repo = pname;
- rev = "v${version}";
- sha256 = "0a34rh5w8393wf7jwwr0f74rp1zv2vz606z5j8sr7w19k352ijip";
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "5282d8076d9814d9248071aec8784cffbd968601542533ccb28ca61d1d08205e";
};
- preConfigure = ''
- substituteInPlace Makefile.in \
- --replace sudo ""
- substituteInPlace configure \
- --replace /usr/bin/perl ${perlPackages.perl}/bin/perl
- substituteInPlace cmdline.pl \
- --replace "view " "vim -R "
+ propagatedBuildInputs = [
+ pytz
+ tasklib
+ tzlocal
+ urwid
+ ];
+
+ makeWrapperArgs = [ "--suffix" "PATH" ":" "${taskwarrior}/bin" ];
+
+ preCheck = ''
+ export TERM=''${TERM-linux}
'';
- postInstall = ''
- wrapProgram $out/bin/vit --prefix PERL5LIB : $PERL5LIB
- '';
-
- nativeBuildInputs = [ makeWrapper which ];
- buildInputs = [ taskwarrior ncurses ]
- ++ (with perlPackages; [ perl Curses TryTiny TextCharWidth ]);
-
- meta = with stdenv.lib; {
+ meta = with lib; {
+ homepage = https://github.com/scottkosty/vit;
description = "Visual Interactive Taskwarrior";
- maintainers = with maintainers; [ dtzWill ];
+ maintainers = with maintainers; [ dtzWill arcnmx ];
platforms = platforms.all;
- license = licenses.gpl3;
+ license = licenses.mit;
};
}
-
diff --git a/pkgs/applications/misc/web-media-controller/default.nix b/pkgs/applications/misc/web-media-controller/default.nix
index e381af4f403..b2a3394f8ae 100644
--- a/pkgs/applications/misc/web-media-controller/default.nix
+++ b/pkgs/applications/misc/web-media-controller/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "wmc-mpris";
- version = "unstable-2019-07-24";
+ version = "0.1.0";
src = fetchFromGitHub {
owner = "f1u77y";
repo = pname;
- rev = "3b92847c576662732984ad791d6c7899a39f7787";
- sha256 = "0q19z0zx53pd237x529rif21kliklwzjrdddx8jfr9hgghjv9giq";
+ rev = "v${version}";
+ sha256 = "1zcnaf9g55cbj9d2zlsr0i15qh0w9gp5jmxkm6dcp1j6yd7j3ymc";
};
nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/pkgs/applications/misc/wego/default.nix b/pkgs/applications/misc/wego/default.nix
index 03f3caa4c15..567d299fd3a 100644
--- a/pkgs/applications/misc/wego/default.nix
+++ b/pkgs/applications/misc/wego/default.nix
@@ -2,7 +2,7 @@
buildGoPackage rec {
pname = "wego";
- version = "20170403-${stdenv.lib.strings.substring 0 7 rev}";
+ version = "unstable-2017-04-03";
rev = "415efdfab5d5ee68300bf261a0c6f630c6c2584c";
goPackagePath = "github.com/schachmat/wego";
@@ -17,5 +17,7 @@ buildGoPackage rec {
meta = {
license = stdenv.lib.licenses.isc;
+ homepage = "https://github.com/schachmat/wego";
+ description = "Weather app for the terminal";
};
}
diff --git a/pkgs/applications/misc/wofi/default.nix b/pkgs/applications/misc/wofi/default.nix
new file mode 100644
index 00000000000..4cf4792696d
--- /dev/null
+++ b/pkgs/applications/misc/wofi/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, lib, fetchhg, pkg-config, wayland, gtk3 }:
+
+stdenv.mkDerivation rec {
+ pname = "wofi";
+ version = "2019-10-28";
+
+ src = fetchhg {
+ url = "https://hg.sr.ht/~scoopta/wofi";
+ rev = "3fac708b2b541bb9927ec1b2389c4eb294e1b35b";
+ sha256 = "0sp9hqm1lv9wyxj8z7vazs25nvl6yznd5vfhmwb51axwkr79s2ym";
+ };
+
+ nativeBuildInputs = [ pkg-config ];
+ buildInputs = [ wayland gtk3 ];
+
+ sourceRoot = "hg-archive/Release";
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp wofi $out/bin/
+ '';
+
+ 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 ];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/pkgs/applications/misc/worker/default.nix b/pkgs/applications/misc/worker/default.nix
index e5b89ff43b5..6ff09a5b4b0 100644
--- a/pkgs/applications/misc/worker/default.nix
+++ b/pkgs/applications/misc/worker/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "worker";
- version = "4.0.1";
+ version = "4.1.0";
src = fetchurl {
url = "http://www.boomerangsworld.de/cms/worker/downloads/${pname}-${version}.tar.gz";
- sha256 = "1mwkyak68bsxgff399xmr7bb3hxl0r976b90zi7jrzznwlvxx7vh";
+ sha256 = "19v4g34sk4fkagk0s60rbixyrrgg22qy1xwffm8b5ffq36r7yfch";
};
buildInputs = [ libX11 ];
diff --git a/pkgs/applications/misc/workrave/default.nix b/pkgs/applications/misc/workrave/default.nix
index a3c9d735ff8..9ad010deb16 100644
--- a/pkgs/applications/misc/workrave/default.nix
+++ b/pkgs/applications/misc/workrave/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
in fetchFromGitHub {
sha256 = "0v2mx2idaxlsyv5w66b7pknlill9j9i2gqcs3vq54gak7ix9fj1p";
rev = with stdenv.lib;
- "v" + concatStringsSep "_" (splitString "." version);
+ "v" + concatStringsSep "_" (splitVersion version);
repo = "workrave";
owner = "rcaelers";
};
diff --git a/pkgs/applications/misc/wtf/default.nix b/pkgs/applications/misc/wtf/default.nix
index 60ff84ffe59..f20c4aff169 100644
--- a/pkgs/applications/misc/wtf/default.nix
+++ b/pkgs/applications/misc/wtf/default.nix
@@ -7,27 +7,26 @@
buildGoModule rec {
pname = "wtf";
- version = "0.21.0";
-
- overrideModAttrs = _oldAttrs : _oldAttrs // {
- preBuild = ''export GOPROXY="https://gocenter.io"'';
- };
+ version = "0.24.0";
src = fetchFromGitHub {
owner = "wtfutil";
repo = pname;
rev = "v${version}";
- sha256 = "0sd8vrx7nak0by4whdmd9jzr66zm48knv1w1aqi90709fv98brm9";
- };
+ sha256 = "0jz7hjcm0hfxcih2zplp47wx6lyvhhzj9ka4ljqrx0i4l7cm9ahs";
+ };
- modSha256 = "0jgq9ql27x0kdp59l5drisl5v7v7sx2wy3zqjbr3bqyh3vdx19ic";
+ modSha256 = "04d8hvd90f7v853p23xcx38qz3ryv7kz7zjk9b131cjnd4mcv0sm";
buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
+ subPackages = [ "." ];
+
nativeBuildInputs = [ makeWrapper ];
postInstall = ''
- wrapProgram "$out/bin/wtf" --prefix PATH : "${ncurses.dev}/bin"
+ mv "$out/bin/wtf" "$out/bin/wtfutil"
+ wrapProgram "$out/bin/wtfutil" --prefix PATH : "${ncurses.dev}/bin"
'';
meta = with lib; {
diff --git a/pkgs/applications/misc/xchm/default.nix b/pkgs/applications/misc/xchm/default.nix
index a7a6500fd22..6a5e62f54e1 100644
--- a/pkgs/applications/misc/xchm/default.nix
+++ b/pkgs/applications/misc/xchm/default.nix
@@ -1,22 +1,30 @@
-{stdenv, fetchurl, wxGTK, chmlib}:
+{ stdenv, fetchFromGitHub, autoreconfHook, wxGTK30, chmlib }:
-stdenv.mkDerivation {
- name = "xchm-1.23";
- src = fetchurl {
- url = mirror://sourceforge/xchm/xchm-1.23.tar.gz;
- sha256 = "0qn0fyxcrn30ndq2asx31k0qkx3grbm16fb1y580wd2gjmh5r3wg";
+stdenv.mkDerivation rec {
+ pname = "xchm";
+ version = "1.30";
+
+ src = fetchFromGitHub {
+ owner = "rzvncj";
+ repo = "xCHM";
+ rev = version;
+ sha256 = "1sjvh06m8jbb28k6y3knas3nkh1dfvff4mlwjs33x12ilhddhr8v";
};
- buildInputs = [wxGTK chmlib];
- postConfigure = ''
- export NIX_LDFLAGS="$NIX_LDFLAGS $(${wxGTK}/lib/wx/config/* --libs | sed -e s@-pthread@@)"
- echo $NIX_LDFLAGS
+ nativeBuildInputs = [ autoreconfHook ];
+ buildInputs = [ wxGTK30 chmlib ];
+
+ configureFlags = [ "--with-wx-prefix=${wxGTK30}" ];
+
+ preConfigure = ''
+ export LDFLAGS="$LDFLAGS $(${wxGTK30}/bin/wx-config --libs | sed -e s@-pthread@@) -lwx_gtk2u_aui-3.0"
'';
meta = with stdenv.lib; {
description = "A viewer for Microsoft HTML Help files";
- homepage = http://xchm.sourceforge.net;
+ homepage = "https://github.com/rzvncj/xCHM";
license = licenses.gpl2;
+ maintainers = with maintainers; [ sikmir ];
platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/misc/xmind/default.nix b/pkgs/applications/misc/xmind/default.nix
index c673002fb51..f65f5bc26e8 100644
--- a/pkgs/applications/misc/xmind/default.nix
+++ b/pkgs/applications/misc/xmind/default.nix
@@ -15,6 +15,8 @@ stdenv.mkDerivation rec {
sha256 = "0jxq2fiq69q9ly0m6hx2qfybqad22sl42ciw636071khpqgc885f";
};
+ preferLocalBuild = true;
+
patches = [ ./java-env-config-fixes.patch ];
nativeBuildInputs = [ makeWrapper ];
@@ -61,7 +63,7 @@ stdenv.mkDerivation rec {
cp -r $out/libexec/configuration/ \$HOME/.xmind/configuration-cathy/
fi
- exec "$out/libexec/XMind" "$@"
+ exec "$out/libexec/XMind" "\$@"
EOF
chmod +x $out/bin/XMind
diff --git a/pkgs/applications/misc/xmrig/default.nix b/pkgs/applications/misc/xmrig/default.nix
index 8a46336c9de..265c4c173fc 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 = "3.0.0";
+ version = "5.0.0";
src = fetchFromGitHub {
owner = "xmrig";
repo = "xmrig";
rev = "v${version}";
- sha256 = "1m0rsjb7y1j77mzg5cqb3fdvzgvjkrwgmkjn9nv1xl2757z8hcl4";
+ sha256 = "17bgz1rpix1zgzzn4zz84jp7hl6b2k968h918y3av5asxn0mji49";
};
nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/misc/xmrig/proxy.nix b/pkgs/applications/misc/xmrig/proxy.nix
index 7d9ebca0086..54fdbdb7cc1 100644
--- a/pkgs/applications/misc/xmrig/proxy.nix
+++ b/pkgs/applications/misc/xmrig/proxy.nix
@@ -4,13 +4,13 @@
stdenv.mkDerivation rec {
pname = "xmrig-proxy";
- version = "3.0.0";
+ version = "5.0.0";
src = fetchFromGitHub {
owner = "xmrig";
repo = "xmrig-proxy";
rev = "v${version}";
- sha256 = "19rv5zmxwr3kmb2m3fas91aq1493cnkhvs88zcflnijr1ra218ks";
+ sha256 = "0h0yxzpar952ix94j10qyf31c20g45w0nxr02vfybjip48dvlf76";
};
nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/misc/xpad/default.nix b/pkgs/applications/misc/xpad/default.nix
index bc91083892d..40f7ef9da08 100644
--- a/pkgs/applications/misc/xpad/default.nix
+++ b/pkgs/applications/misc/xpad/default.nix
@@ -1,6 +1,6 @@
{ stdenv, fetchurl
, autoreconfHook, pkgconfig, wrapGAppsHook
-, glib, intltool, gtk3, gtksourceview, hicolor-icon-theme }:
+, glib, intltool, gtk3, gtksourceview }:
stdenv.mkDerivation rec {
pname = "xpad";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ autoreconfHook pkgconfig wrapGAppsHook ];
- buildInputs = [ glib intltool gtk3 gtksourceview hicolor-icon-theme ];
+ buildInputs = [ glib intltool gtk3 gtksourceview ];
meta = with stdenv.lib; {
description = "A sticky note application for jotting down things to remember";
diff --git a/pkgs/applications/misc/xpdf/default.nix b/pkgs/applications/misc/xpdf/default.nix
index d524482dee7..f5ec9b71503 100644
--- a/pkgs/applications/misc/xpdf/default.nix
+++ b/pkgs/applications/misc/xpdf/default.nix
@@ -1,20 +1,22 @@
-{ enableGUI ? true, enablePDFtoPPM ? true, useT1Lib ? false
-, stdenv, fetchurl, zlib, libpng, freetype ? null, t1lib ? null
-, cmake, qtbase ? null, qtsvg ? null, wrapQtAppsHook
+{ enableGUI ? true
+, enablePDFtoPPM ? true
+, enablePrinting ? true
+, stdenv, fetchzip, cmake, makeDesktopItem
+, zlib, libpng, cups ? null, freetype ? null
+, qtbase ? null, qtsvg ? null, wrapQtAppsHook
}:
assert enableGUI -> qtbase != null && qtsvg != null && freetype != null;
assert enablePDFtoPPM -> freetype != null;
-assert useT1Lib -> t1lib != null;
+assert enablePrinting -> cups != null;
-assert !useT1Lib; # t1lib has multiple unpatched security vulnerabilities
+stdenv.mkDerivation rec {
+ pname = "xpdf";
+ version = "4.02";
-stdenv.mkDerivation {
- name = "xpdf-4.00";
-
- src = fetchurl {
- url = http://www.xpdfreader.com/dl/xpdf-4.00.tar.gz;
- sha256 = "1mhn89738vjva14xr5gblc2zrdgzmpqbbjdflqdmpqv647294ggz";
+ src = fetchzip {
+ url = "https://xpdfreader-dl.s3.amazonaws.com/${pname}-${version}.tar.gz";
+ sha256 = "0dzwq6fnk013wa4l5mjpvm4mms2mh5hbrxv4rhk2ab5ljbzz7b2w";
};
# Fix "No known features for CXX compiler", see
@@ -26,20 +28,33 @@ stdenv.mkDerivation {
[ cmake ]
++ stdenv.lib.optional enableGUI wrapQtAppsHook;
- cmakeFlags = ["-DSYSTEM_XPDFRC=/etc/xpdfrc" "-DA4_PAPER=ON"];
+ cmakeFlags = ["-DSYSTEM_XPDFRC=/etc/xpdfrc" "-DA4_PAPER=ON" "-DOPI_SUPPORT=ON"]
+ ++ stdenv.lib.optional (!enablePrinting) "-DXPDFWIDGET_PRINTING=OFF";
buildInputs = [ zlib libpng ] ++
stdenv.lib.optional enableGUI qtbase ++
- stdenv.lib.optional useT1Lib t1lib ++
+ stdenv.lib.optional enablePrinting cups ++
stdenv.lib.optional enablePDFtoPPM freetype;
- # Debian uses '-fpermissive' to bypass some errors on char* constantness.
- CXXFLAGS = "-O2 -fpermissive";
-
hardeningDisable = [ "format" ];
+ desktopItem = makeDesktopItem {
+ name = "xpdf";
+ desktopName = "Xpdf";
+ comment = "Views Adobe PDF files";
+ icon = "xpdf";
+ exec = "xpdf %f";
+ categories = "Office;";
+ terminal = "false";
+ };
+
+ postInstall = ''
+ install -Dm644 ${desktopItem}/share/applications/xpdf.desktop $out/share/applications/xpdf.desktop
+ install -Dm644 $src/xpdf-qt/xpdf-icon.svg $out/share/pixmaps/xpdf.svg
+ '';
+
meta = with stdenv.lib; {
- homepage = https://www.xpdfreader.com;
+ homepage = "https://www.xpdfreader.com";
description = "Viewer for Portable Document Format (PDF) files";
longDescription = ''
XPDF includes multiple tools for viewing and processing PDF files.
@@ -56,5 +71,13 @@ stdenv.mkDerivation {
'';
license = with licenses; [ gpl2 gpl3 ];
platforms = platforms.unix;
+ maintainers = with maintainers; [ sikmir ];
+ knownVulnerabilities = [
+ "CVE-2018-7453: loop in PDF objects"
+ "CVE-2018-16369: loop in PDF objects"
+ "CVE-2019-9587: loop in PDF objects"
+ "CVE-2019-9588: loop in PDF objects"
+ "CVE-2019-16088: loop in PDF objects"
+ ];
};
}
diff --git a/pkgs/applications/misc/xterm/default.nix b/pkgs/applications/misc/xterm/default.nix
index 60231350edb..83ba28bfce3 100644
--- a/pkgs/applications/misc/xterm/default.nix
+++ b/pkgs/applications/misc/xterm/default.nix
@@ -3,14 +3,14 @@
}:
stdenv.mkDerivation rec {
- name = "xterm-348";
+ name = "xterm-349";
src = fetchurl {
urls = [
"ftp://ftp.invisible-island.net/xterm/${name}.tgz"
"https://invisible-mirror.net/archives/xterm/${name}.tgz"
];
- sha256 = "1gkmj9v44xg4jahivhnpbmq22w1mwclr6fssv3lhssgkvchm27wb";
+ sha256 = "0ps7b2b2kbrkv5q49cmb8c51z0w21jmm7hwciw30m6jgfb9s79ir";
};
buildInputs =
diff --git a/pkgs/applications/misc/zathura/core/default.nix b/pkgs/applications/misc/zathura/core/default.nix
index 8afba9353ce..99729125b63 100644
--- a/pkgs/applications/misc/zathura/core/default.nix
+++ b/pkgs/applications/misc/zathura/core/default.nix
@@ -10,11 +10,11 @@ with stdenv.lib;
stdenv.mkDerivation rec {
pname = "zathura-core";
- version = "0.4.3";
+ version = "0.4.4";
src = fetchurl {
- url = "https://pwmt.org/projects/zathura/download/zathura-${version}.tar.xz";
- sha256 = "0hgx5x09i6d0z45llzdmh4l348fxh1y102sb1w76f2fp4r21j4ky";
+ url = "https://git.pwmt.org/pwmt/zathura/-/archive/${version}/zathura-${version}.tar.gz";
+ sha256 = "0v5klgr009rsxi41h73k0398jbgmgh37asvwz2w15i4fzmw89jgb";
};
outputs = [ "bin" "man" "dev" "out" ];
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
doCheck = true;
meta = {
- homepage = https://pwmt.org/projects/zathura/;
+ homepage = "https://git.pwmt.org/pwmt/zathura";
description = "A core component for zathura PDF viewer";
license = licenses.zlib;
platforms = platforms.unix;
diff --git a/pkgs/applications/misc/zathura/pdf-mupdf/default.nix b/pkgs/applications/misc/zathura/pdf-mupdf/default.nix
index 2ebc640d683..d8c1364d395 100644
--- a/pkgs/applications/misc/zathura/pdf-mupdf/default.nix
+++ b/pkgs/applications/misc/zathura/pdf-mupdf/default.nix
@@ -2,7 +2,7 @@
, pkgconfig, zathura_core, cairo , gtk-mac-integration, girara, mupdf }:
stdenv.mkDerivation rec {
- version = "0.3.4";
+ version = "0.3.5";
pname = "zathura-pdf-mupdf";
# pwmt.org server was down at the time of last update
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
owner = "pwmt";
repo = "zathura-pdf-mupdf";
rev = version;
- sha256 = "1m4w4jrybpjmx6pi33a5saxzmfd8rrym2k13jpd1fv543s17d9dy";
+ sha256 = "0wb46hllykbi30ir69s8s23mihivqn13mgfdzawbsn2a21p8y4zl";
};
nativeBuildInputs = [ meson ninja pkgconfig ];
diff --git a/pkgs/applications/misc/zathura/wrapper.nix b/pkgs/applications/misc/zathura/wrapper.nix
index 88e4a904393..6c8ad97d355 100644
--- a/pkgs/applications/misc/zathura/wrapper.nix
+++ b/pkgs/applications/misc/zathura/wrapper.nix
@@ -17,7 +17,7 @@ in symlinkJoin {
'';
meta = with lib; {
- homepage = https://pwmt.org/projects/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/zola/cargo-lock.patch b/pkgs/applications/misc/zola/cargo-lock.patch
new file mode 100644
index 00000000000..b9d97e3c328
--- /dev/null
+++ b/pkgs/applications/misc/zola/cargo-lock.patch
@@ -0,0 +1,28 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index df5fef3..80f071a 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -2158,12 +2158,12 @@ version = "0.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ dependencies = [
+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
+- "sass-sys 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "sass-sys 0.4.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ ]
+
+ [[package]]
+ name = "sass-sys"
+-version = "0.4.13"
++version = "0.4.15"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ dependencies = [
+ "cc 1.0.45 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -3410,7 +3410,7 @@ dependencies = [
+ "checksum safemem 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d2b08423011dae9a5ca23f07cf57dac3857f5c885d352b76f6d95f4aea9434d0"
+ "checksum same-file 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "585e8ddcedc187886a30fa705c47985c3fa88d06624095856b36ca0b82ff4421"
+ "checksum sass-rs 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "cabcf7c6e55053f359911187ac401409aad2dc14338cae972dec266fee486abd"
+-"checksum sass-sys 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6e16ac97c2335bc367e2d675f54c1823558f1b19a6c67671d48b70e30ae22972"
++"checksum sass-sys 0.4.15 (registry+https://github.com/rust-lang/crates.io-index)" = "304b6f9501d1da13f17404aeee85486d7383d06074906669b3ea032f81e83d22"
+ "checksum schannel 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "87f550b06b6cba9c8b8be3ee73f391990116bf527450d2556e9b9ce263b9a021"
+ "checksum scoped_threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8"
+ "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27"
diff --git a/pkgs/applications/misc/zola/default.nix b/pkgs/applications/misc/zola/default.nix
index 7418640e072..178be491169 100644
--- a/pkgs/applications/misc/zola/default.nix
+++ b/pkgs/applications/misc/zola/default.nix
@@ -2,16 +2,17 @@
rustPlatform.buildRustPackage rec {
pname = "zola";
- version = "0.8.0";
+ version = "0.9.0";
src = fetchFromGitHub {
owner = "getzola";
repo = pname;
rev = "v${version}";
- sha256 = "166kmlkzd1qyw9yq2jqs58z8b3d956jjhw9r15jzw98md949psr5";
+ sha256 = "13kbgxh7r6124d1fjdf0x599j1kpgixp1y9d299zb5vrd6rf5wy5";
};
+ cargoPatches = [ ./cargo-lock.patch ];
- cargoSha256 = "1brmlg6nqyls1v62z0fg0km150q9m7h71wy67lidcnw76icmqr24";
+ cargoSha256 = "03rwf5l1l3ap03qi0xqcxsbyvpg3cqmr50j8ql6c5v55xl0ki9w8";
nativeBuildInputs = [ cmake pkgconfig ];
buildInputs = [ openssl ]
diff --git a/pkgs/applications/networking/apache-directory-studio/default.nix b/pkgs/applications/networking/apache-directory-studio/default.nix
index ce5c7fb41f1..0c8136724ff 100644
--- a/pkgs/applications/networking/apache-directory-studio/default.nix
+++ b/pkgs/applications/networking/apache-directory-studio/default.nix
@@ -14,22 +14,23 @@ let
genericName = "Apache Directory Studio";
categories = "Java;Network";
};
-
+ version = "2.0.0-M14";
+ versionWithDate = "2.0.0.v20180908-M14";
in
stdenv.mkDerivation rec {
pname = "apache-directory-studio";
- version = "2.0.0.v20170904-M13";
+ inherit version;
src =
if stdenv.hostPlatform.system == "x86_64-linux" then
fetchurl {
- url = "mirror://apache/directory/studio/${version}/ApacheDirectoryStudio-${version}-linux.gtk.x86_64.tar.gz";
- sha256 = "1jfnm6m0ijk31r30hhrxxnizk742dm317iny041p29v897rma7aq";
+ url = "mirror://apache/directory/studio/${versionWithDate}/ApacheDirectoryStudio-${versionWithDate}-linux.gtk.x86_64.tar.gz";
+ sha256 = "0kq4l3755q69p7bry9xpm5xxw56ksncp76fdqqd1xzbvsg309bps";
}
else if stdenv.hostPlatform.system == "i686-linux" then
fetchurl {
- url = "mirror://apache/directory/studio/${version}/ApacheDirectoryStudio-${version}-linux.gtk.x86.tar.gz";
- sha256 = "1bxmgram42qyhrqkgp5k8770f5mjjdd4c6xl4gj09smiycm1qa4n";
+ url = "mirror://apache/directory/studio/${versionWithDate}/ApacheDirectoryStudio-${versionWithDate}-linux.gtk.x86.tar.gz";
+ sha256 = "038dy8jjgq5gj5r56y9ps3ycqi9gn57i4q1r3mmjx1b1950wmh1q";
}
else throw "Unsupported system: ${stdenv.hostPlatform.system}";
diff --git a/pkgs/applications/networking/browsers/brave/default.nix b/pkgs/applications/networking/browsers/brave/default.nix
index 45fb820a076..a19e07d8d93 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 = "0.68.131";
+ version = "1.0.0";
src = fetchurl {
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
- sha256 = "0syhwy1gxy82jbxbryi1n4zp1ya7wvm20g1vqvd2s7kqspprsi0l";
+ sha256 = "0mfwwyc00v6kny1fh20kaad8b6sshaxrlf35z9qcdsbm4n19wg1l";
};
dontConfigure = true;
@@ -151,7 +151,7 @@ stdenv.mkDerivation rec {
contribute to your favorite creators automatically.
'';
license = licenses.mpl20;
- maintainers = [ maintainers.uskudnik ];
+ maintainers = with maintainers; [ uskudnik rht ];
platforms = [ "x86_64-linux" ];
};
}
diff --git a/pkgs/applications/networking/browsers/chromium/browser.nix b/pkgs/applications/networking/browsers/chromium/browser.nix
index 8bdb33ed5d2..ad7fa78527c 100644
--- a/pkgs/applications/networking/browsers/chromium/browser.nix
+++ b/pkgs/applications/networking/browsers/chromium/browser.nix
@@ -1,4 +1,4 @@
-{ stdenv, mkChromiumDerivation, channel }:
+{ stdenv, mkChromiumDerivation, channel, enableWideVine }:
with stdenv.lib;
@@ -18,11 +18,6 @@ mkChromiumDerivation (base: rec {
cp -vLR "$buildPath/locales" "$buildPath/resources" "$libExecPath/"
cp -v "$buildPath/chrome" "$libExecPath/$packageName"
- if [ -e "$buildPath/libwidevinecdmadapter.so" ]; then
- cp -v "$buildPath/libwidevinecdmadapter.so" \
- "$libExecPath/libwidevinecdmadapter.so"
- fi
-
mkdir -p "$sandbox/bin"
cp -v "$buildPath/chrome_sandbox" "$sandbox/bin/${sandboxExecutableName}"
@@ -67,7 +62,7 @@ mkChromiumDerivation (base: rec {
description = "An open source web browser from Google";
homepage = http://www.chromium.org/;
maintainers = with maintainers; [ bendlas ivan ];
- license = licenses.bsd3;
+ 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/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix
index a3645e97e25..aff4d54c620 100644
--- a/pkgs/applications/networking/browsers/chromium/common.nix
+++ b/pkgs/applications/networking/browsers/chromium/common.nix
@@ -24,7 +24,6 @@
# package customization
, enableNaCl ? false
-, enableWideVine ? false
, useVaapi ? false
, gnomeSupport ? false, gnome ? null
, gnomeKeyringSupport ? false, libgnome-keyring3 ? null
@@ -108,7 +107,7 @@ let
base = rec {
name = "${packageName}-unwrapped-${version}";
- inherit (upstream-info) version;
+ inherit (upstream-info) channel version;
inherit packageName buildType buildPath;
src = upstream-info.main;
@@ -126,19 +125,21 @@ let
glib gtk3 dbus-glib
libXScrnSaver libXcursor libXtst libGLU_combined
pciutils protobuf speechd libXdamage at-spi2-core
+ jdk.jre
] ++ optional gnomeKeyringSupport libgnome-keyring3
++ optionals gnomeSupport [ gnome.GConf libgcrypt ]
++ optionals cupsSupport [ libgcrypt cups ]
++ optional useVaapi libva
- ++ optional pulseSupport libpulseaudio
- ++ optional (versionAtLeast version "72") jdk.jre;
+ ++ optional pulseSupport libpulseaudio;
- patches = optional enableWideVine ./patches/widevine.patch ++ [
+ patches = [
./patches/nix_plugin_paths_68.patch
./patches/remove-webp-include-69.patch
- ./patches/jumbo-sorted.patch
./patches/no-build-timestamps.patch
-
+ ] ++ optionals (channel == "stable") [
+ ./patches/widevine.patch
+ ] ++ optionals (channel == "beta" || channel == "dev") [
+ ./patches/widevine-79.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:
@@ -146,10 +147,11 @@ let
# - 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) [
- # source: https://aur.archlinux.org/cgit/aur.git/plain/chromium-vaapi.patch?h=chromium-vaapi
- ./patches/chromium-vaapi.patch
+ # source: https://aur.archlinux.org/cgit/aur.git/tree/vaapi-fix.patch?h=chromium-vaapi
+ ./patches/vaapi-fix.patch
] ++ optional stdenv.isAarch64 (fetchpatch {
url = https://raw.githubusercontent.com/OSSystems/meta-browser/e4a667deaaf9a26a3a1aeb355770d1f29da549ad/recipes-browser/chromium/files/aarch64-skia-build-fix.patch;
postFetch = "substituteInPlace $out --replace __aarch64__ SK_CPU_ARM64";
@@ -227,15 +229,13 @@ let
use_gold = true;
gold_path = "${stdenv.cc}/bin";
is_debug = false;
- # at least 2X compilation speedup
- use_jumbo_build = true;
proprietary_codecs = false;
use_sysroot = false;
use_gnome_keyring = gnomeKeyringSupport;
use_gio = gnomeSupport;
enable_nacl = enableNaCl;
- enable_widevine = enableWideVine;
+ enable_widevine = true;
use_cups = cupsSupport;
treat_warnings_as_errors = false;
diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix
index 3178e2595fc..8329bf3ef55 100644
--- a/pkgs/applications/networking/browsers/chromium/default.nix
+++ b/pkgs/applications/networking/browsers/chromium/default.nix
@@ -2,6 +2,8 @@
, makeWrapper, ed
, glib, gtk3, gnome3, gsettings-desktop-schemas
, libva ? null
+, gcc, nspr, nss, patchelfUnstable, runCommand
+, lib
# package customization
, channel ? "stable"
@@ -34,14 +36,64 @@ in let
mkChromiumDerivation = callPackage ./common.nix {
inherit enableNaCl gnomeSupport gnome
gnomeKeyringSupport proprietaryCodecs cupsSupport pulseSupport
- useVaapi
- enableWideVine;
+ useVaapi;
};
- browser = callPackage ./browser.nix { inherit channel; };
+ browser = callPackage ./browser.nix { inherit channel enableWideVine; };
plugins = callPackage ./plugins.nix {
- inherit enablePepperFlash enableWideVine;
+ inherit enablePepperFlash;
+ };
+ };
+
+ mkrpath = p: "${lib.makeSearchPathOutput "lib" "lib64" p}:${lib.makeLibraryPath p}";
+ widevine = let upstream-info = chromium.upstream-info; in stdenv.mkDerivation {
+ name = "chromium-binary-plugin-widevine";
+
+ # The .deb file for Google Chrome
+ src = upstream-info.binary;
+
+ nativeBuildInputs = [ patchelfUnstable ];
+
+ phases = [ "unpackPhase" "patchPhase" "installPhase" "checkPhase" ];
+
+ unpackCmd = let
+ soPath =
+ if upstream-info.channel == "stable" then
+ "./opt/google/chrome/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so"
+ else if upstream-info.channel == "beta" then
+ "./opt/google/chrome-beta/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so"
+ else if upstream-info.channel == "dev" then
+ "./opt/google/chrome-unstable/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so"
+ else
+ throw "Unknown chromium channel.";
+ in ''
+ mkdir -p plugins
+ # Extract just libwidevinecdm.so from upstream's .deb file
+ ar p "$src" data.tar.xz | tar xJ -C plugins ${soPath}
+ mv plugins/${soPath} plugins/
+ rm -rf plugins/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" libwidevinecdm.so
+ '';
+
+ installPhase = ''
+ install -vD libwidevinecdm.so \
+ "$out/lib/libwidevinecdm.so"
+ '';
+
+ meta = {
+ platforms = [ "x86_64-linux" ];
+ license = lib.licenses.unfree;
};
};
@@ -51,6 +103,19 @@ in let
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 libwidevinecdm.so.
+ 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
+ mkdir -p $out/libexec/chromium/WidevineCdm/_platform_specific/linux_x64
+ cp ${widevine}/lib/libwidevinecdm.so $out/libexec/chromium/WidevineCdm/_platform_specific/linux_x64/
+ ''
+ else browser;
in stdenv.mkDerivation {
name = "chromium${suffix}-${version}";
inherit version;
@@ -68,7 +133,7 @@ in stdenv.mkDerivation {
outputs = ["out" "sandbox"];
buildCommand = let
- browserBinary = "${chromium.browser}/libexec/chromium/chromium";
+ browserBinary = "${chromiumWV}/libexec/chromium/chromium";
getWrapperFlags = plugin: "$(< \"${plugin}/nix-support/wrapper-flags\")";
libPath = stdenv.lib.makeLibraryPath ([]
++ stdenv.lib.optional useVaapi libva
@@ -91,7 +156,11 @@ in stdenv.mkDerivation {
export CHROME_DEVEL_SANDBOX="$sandbox/bin/${sandboxExecutableName}"
fi
- export LD_LIBRARY_PATH="\$LD_LIBRARY_PATH:${libPath}"
+ '' + 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' ':')"
@@ -113,13 +182,7 @@ in stdenv.mkDerivation {
'';
inherit (chromium.browser) packageName;
- meta = chromium.browser.meta // {
- broken = if enableWideVine then
- builtins.trace "WARNING: WideVine is not functional, please only use for testing"
- true
- else false;
- };
-
+ meta = chromium.browser.meta;
passthru = {
inherit (chromium) upstream-info browser;
mkDerivation = chromium.mkChromiumDerivation;
diff --git a/pkgs/applications/networking/browsers/chromium/patches/chromium-vaapi.patch b/pkgs/applications/networking/browsers/chromium/patches/chromium-vaapi.patch
deleted file mode 100644
index 38d77e21551..00000000000
--- a/pkgs/applications/networking/browsers/chromium/patches/chromium-vaapi.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-From abc7295ca1653c85472916909f0eb76e28e79a58 Mon Sep 17 00:00:00 2001
-From: Akarshan Biswas
-Date: Thu, 24 Jan 2019 12:45:29 +0530
-Subject: [PATCH] Enable mojo with VDA2 on Linux
-
----
- chrome/browser/about_flags.cc | 8 ++++----
- chrome/browser/flag_descriptions.cc | 9 +++++++--
- chrome/browser/flag_descriptions.h | 10 ++++++++--
- gpu/config/software_rendering_list.json | 3 ++-
- media/media_options.gni | 9 ++++++---
- media/mojo/services/gpu_mojo_media_client.cc | 4 ++--
- 6 files changed, 29 insertions(+), 14 deletions(-)
-
-diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
-index 0a84c6ac1..be2aa1d8b 100644
---- a/chrome/browser/about_flags.cc
-+++ b/chrome/browser/about_flags.cc
-@@ -1714,7 +1714,7 @@ const FeatureEntry kFeatureEntries[] = {
- "disable-accelerated-video-decode",
- flag_descriptions::kAcceleratedVideoDecodeName,
- flag_descriptions::kAcceleratedVideoDecodeDescription,
-- kOsMac | kOsWin | kOsCrOS | kOsAndroid,
-+ kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux,
- SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode),
- },
- #if defined(OS_WIN)
-@@ -2345,12 +2345,12 @@ const FeatureEntry kFeatureEntries[] = {
- FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)},
- #endif // ENABLE_ISOLATED_XR_SERVICE
- #endif // ENABLE_VR
--#if defined(OS_CHROMEOS)
-+#if defined(OS_CHROMEOS) || defined(OS_LINUX)
- {"disable-accelerated-mjpeg-decode",
- flag_descriptions::kAcceleratedMjpegDecodeName,
-- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS,
-+ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux,
- SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)},
--#endif // OS_CHROMEOS
-+#endif // OS_CHROMEOS // OS_LINUX
- {"v8-cache-options", flag_descriptions::kV8CacheOptionsName,
- flag_descriptions::kV8CacheOptionsDescription, kOsAll,
- MULTI_VALUE_TYPE(kV8CacheOptionsChoices)},
-diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
-index 62637e092..86f89fc6e 100644
---- a/chrome/browser/flag_descriptions.cc
-+++ b/chrome/browser/flag_descriptions.cc
-@@ -3085,15 +3085,20 @@ const char kTextSuggestionsTouchBarDescription[] =
-
- #endif
-
--// Chrome OS -------------------------------------------------------------------
-+// Chrome OS Linux-------------------------------------------------------------------
-
--#if defined(OS_CHROMEOS)
-+#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
-
- const char kAcceleratedMjpegDecodeName[] =
- "Hardware-accelerated mjpeg decode for captured frame";
- const char kAcceleratedMjpegDecodeDescription[] =
- "Enable hardware-accelerated mjpeg decode for captured frame where "
- "available.";
-+#endif
-+
-+// Chrome OS --------------------------------------------------
-+
-+#if defined(OS_CHROMEOS)
-
- const char kAllowTouchpadThreeFingerClickName[] = "Touchpad three-finger-click";
- const char kAllowTouchpadThreeFingerClickDescription[] =
-diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
-index 5dac660bb..6cc4115da 100644
---- a/chrome/browser/flag_descriptions.h
-+++ b/chrome/browser/flag_descriptions.h
-@@ -1846,13 +1846,19 @@ extern const char kPermissionPromptPersistenceToggleDescription[];
-
- #endif // defined(OS_MACOSX)
-
--// Chrome OS ------------------------------------------------------------------
-+// Chrome OS and Linux ------------------------------------------------------------------
-
--#if defined(OS_CHROMEOS)
-+#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
-
- extern const char kAcceleratedMjpegDecodeName[];
- extern const char kAcceleratedMjpegDecodeDescription[];
-
-+#endif // defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
-+
-+// Chrome OS ------------------------------------------------------------------------
-+
-+#if defined(OS_CHROMEOS)
-+
- extern const char kAllowTouchpadThreeFingerClickName[];
- extern const char kAllowTouchpadThreeFingerClickDescription[];
-
-diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json
-index 65f37b3f1..ae8a1718f 100644
---- a/gpu/config/software_rendering_list.json
-+++ b/gpu/config/software_rendering_list.json
-@@ -371,11 +371,12 @@
- },
- {
- "id": 48,
-- "description": "Accelerated video decode is unavailable on Linux",
-+ "description": "Accelerated VA-API video decode is not supported on NVIDIA platforms",
- "cr_bugs": [137247],
- "os": {
- "type": "linux"
- },
-+ "vendor_id": "0x10de",
- "features": [
- "accelerated_video_decode"
- ]
---
-2.20.1
-
diff --git a/pkgs/applications/networking/browsers/chromium/patches/jumbo-sorted.patch b/pkgs/applications/networking/browsers/chromium/patches/jumbo-sorted.patch
deleted file mode 100644
index cdf0f695f76..00000000000
--- a/pkgs/applications/networking/browsers/chromium/patches/jumbo-sorted.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- chromium-70.0.3538.67/build/config/merge_for_jumbo.py.old 2018-10-25 19:15:54.578222230 +0300
-+++ chromium-70.0.3538.67/build/config/merge_for_jumbo.py 2018-10-25 19:20:44.397613032 +0300
-@@ -132,6 +132,8 @@
- assert not inputs
- continue
-
-+ inputs.sort()
-+ outputs.sort()
- write_jumbo_files(inputs, outputs, written_input_set, written_output_set)
-
- assert set(args.outputs) == written_output_set, "Did not fill all outputs"
diff --git a/pkgs/applications/networking/browsers/chromium/patches/vaapi-fix.patch b/pkgs/applications/networking/browsers/chromium/patches/vaapi-fix.patch
new file mode 100644
index 00000000000..db9d6082756
--- /dev/null
+++ b/pkgs/applications/networking/browsers/chromium/patches/vaapi-fix.patch
@@ -0,0 +1,54 @@
+--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
++++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
+@@ -635,6 +635,7 @@
+ // |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,
+@@ -650,7 +651,8 @@
+ // only used as a copy destination. Therefore, the VaapiWrapper used and
+ // owned by |picture| is |vpp_vaapi_wrapper_|.
+ 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_, buffers[i]);
+@@ -1077,6 +1079,14 @@
+
+ VaapiVideoDecodeAccelerator::BufferAllocationMode
+ VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
++ // NVIDIA blobs use VDPAU
++ if (base::StartsWith(VaapiWrapper::GetVendorStringForTesting(),
++ "Splitted-Desktop Systems VDPAU",
++ base::CompareCase::SENSITIVE)) {
++ 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)
+@@ -1089,7 +1099,7 @@
+ // 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 @@
+ // Using |client_|s provided PictureBuffers and as many internally
+ // allocated.
+ kNormal,
++ kWrapVdpau,
+ };
+
+ // Decides the concrete buffer allocation mode, depending on the hardware
diff --git a/pkgs/applications/networking/browsers/chromium/patches/widevine-79.patch b/pkgs/applications/networking/browsers/chromium/patches/widevine-79.patch
new file mode 100644
index 00000000000..1a3ab33e36f
--- /dev/null
+++ b/pkgs/applications/networking/browsers/chromium/patches/widevine-79.patch
@@ -0,0 +1,11 @@
+diff --git a/third_party/widevine/cdm/widevine_cdm_version.h b/third_party/widevine/cdm/widevine_cdm_version.h
+index dd6efed02646..4d8b2b7d85f7 100644
+--- a/third_party/widevine/cdm/widevine_cdm_version.h
++++ b/third_party/widevine/cdm/widevine_cdm_version.h
+@@ -11,5 +11,6 @@
+ // If the Widevine CDM is available define the following:
+ // - WIDEVINE_CDM_VERSION_STRING (with the version of the CDM that's available
+ // as a string, e.g., "1.0.123.456").
++#define WIDEVINE_CDM_VERSION_STRING "undefined"
+
+ #endif // WIDEVINE_CDM_VERSION_H_
diff --git a/pkgs/applications/networking/browsers/chromium/patches/widevine.patch b/pkgs/applications/networking/browsers/chromium/patches/widevine.patch
index 90a13928e3b..2de6024141d 100644
--- a/pkgs/applications/networking/browsers/chromium/patches/widevine.patch
+++ b/pkgs/applications/networking/browsers/chromium/patches/widevine.patch
@@ -1,16 +1,24 @@
-Minimal WideVine patch from Gentoo:
+Description: enable widevine and set its version string to "undefined"
+Author: Michael Gilbert
+Author: Olivier Tilloy
-https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/chromium-widevine-r1.patch
-
-BTS: https://bugs.gentoo.org/show_bug.cgi?id=547630
-
---- a/third_party/widevine/cdm/stub/widevine_cdm_version.h
-+++ b/third_party/widevine/cdm/stub/widevine_cdm_version.h
-@@ -10,6 +10,7 @@
-
- #include "third_party/widevine/cdm/widevine_cdm_common.h"
-
-+#define WIDEVINE_CDM_VERSION_STRING "unknown"
- #define WIDEVINE_CDM_AVAILABLE
+--- a/third_party/widevine/cdm/widevine_cdm_version.h
++++ b/third_party/widevine/cdm/widevine_cdm_version.h
+@@ -11,5 +11,6 @@
+ // If the Widevine CDM is available define the following:
+ // - WIDEVINE_CDM_VERSION_STRING (with the version of the CDM that's available
+ // as a string, e.g., "1.0.123.456").
++#define WIDEVINE_CDM_VERSION_STRING "undefined"
#endif // WIDEVINE_CDM_VERSION_H_
+--- a/chrome/common/chrome_content_client.cc
++++ b/chrome/common/chrome_content_client.cc
+@@ -99,7 +99,7 @@
+ // Registers Widevine CDM if Widevine is enabled, the Widevine CDM is
+ // bundled and not a component. When the Widevine CDM is a component, it is
+ // registered in widevine_cdm_component_installer.cc.
+-#if BUILDFLAG(BUNDLE_WIDEVINE_CDM) && !BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT)
++#if !BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT)
+ #define REGISTER_BUNDLED_WIDEVINE_CDM
+ #include "third_party/widevine/cdm/widevine_cdm_common.h" // nogncheck
+ // TODO(crbug.com/663554): Needed for WIDEVINE_CDM_VERSION_STRING. Support
diff --git a/pkgs/applications/networking/browsers/chromium/plugins.nix b/pkgs/applications/networking/browsers/chromium/plugins.nix
index a0ea67133c6..3abdef62eef 100644
--- a/pkgs/applications/networking/browsers/chromium/plugins.nix
+++ b/pkgs/applications/networking/browsers/chromium/plugins.nix
@@ -6,7 +6,6 @@
, fetchzip
, patchelfUnstable
, enablePepperFlash ? false
-, enableWideVine ? false
, upstream-info
}:
@@ -44,67 +43,13 @@ let
echo ${toString quoted} > "''$${output}/nix-support/wrapper-flags"
'';
- widevine = stdenv.mkDerivation {
- name = "chromium-binary-plugin-widevine";
-
- src = upstream-info.binary;
-
- nativeBuildInputs = [ patchelfUnstable ];
-
- phases = [ "unpackPhase" "patchPhase" "installPhase" "checkPhase" ];
-
- unpackCmd = let
- chan = if upstream-info.channel == "dev" then "chrome-unstable"
- else if upstream-info.channel == "stable" then "chrome"
- else "chrome-${upstream-info.channel}";
- in ''
- mkdir -p plugins
- ar p "$src" data.tar.xz | tar xJ -C plugins --strip-components=4 \
- ./opt/google/${chan}/libwidevinecdm.so \
- ./opt/google/${chan}/libwidevinecdmadapter.so
- '';
-
- doCheck = true;
- checkPhase = ''
- ! find -iname '*.so' -exec ldd {} + | grep 'not found'
- '';
-
- PATCH_RPATH = mkrpath [ gcc.cc glib nspr nss ];
-
- patchPhase = ''
- chmod +x libwidevinecdm.so libwidevinecdmadapter.so
- patchelf --set-rpath "$PATCH_RPATH" libwidevinecdm.so
- patchelf --set-rpath "$out/lib:$PATCH_RPATH" libwidevinecdmadapter.so
- '';
-
- installPhase = let
- wvName = "Widevine Content Decryption Module";
- wvDescription = "Playback of encrypted HTML audio/video content";
- wvMimeTypes = "application/x-ppapi-widevine-cdm";
- wvModule = "@out@/lib/libwidevinecdmadapter.so";
- wvInfo = "#${wvName}#${wvDescription};${wvMimeTypes}";
- in ''
- install -vD libwidevinecdm.so \
- "$out/lib/libwidevinecdm.so"
- install -vD libwidevinecdmadapter.so \
- "$out/lib/libwidevinecdmadapter.so"
-
- ${mkPluginInfo {
- flags = [ "--register-pepper-plugins=${wvModule}${wvInfo}" ];
- envVars.NIX_CHROMIUM_PLUGIN_PATH_WIDEVINE = "@out@/lib";
- }}
- '';
-
- meta.platforms = platforms.x86_64;
- };
-
flash = stdenv.mkDerivation rec {
pname = "flashplayer-ppapi";
- version = "32.0.0.238";
+ version = "32.0.0.293";
src = fetchzip {
url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz";
- sha256 = "0jqx68lfqjpy6wbxdi0giclvh9mc9rha92hqdj1nx42v95k3gc65";
+ sha256 = "0rgriqdbyrzpm1bcph35bhzd5dz21yim56z93hkmbpdqg7767dwm";
stripRoot = false;
};
@@ -136,10 +81,13 @@ let
dontStrip = true;
- meta.platforms = platforms.x86_64;
+ meta = {
+ license = stdenv.lib.licenses.unfree;
+ maintainers = with stdenv.lib.maintainers; [ taku0 ];
+ platforms = platforms.x86_64;
+ };
};
in {
- enabled = optional enableWideVine widevine
- ++ optional enablePepperFlash flash;
+ enabled = optional enablePepperFlash flash;
}
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/pkgs/applications/networking/browsers/chromium/upstream-info.nix
index 14799e9f96c..bc1b5e9b23c 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 = "0m7xdpi1f2a33csd7bsp91g5klz0hmr83ksfwsd2fki3iipvfs4w";
- sha256bin64 = "1b4cyf4v55sy52mxxl8d70abg5ck5k45jaqdjsjw7dvh3s2x4bwp";
- version = "77.0.3865.42";
+ sha256 = "0sm6x4z6i6p292l98k0h0v69f29hgfd9l46jg8xbh2jzg9f5fp78";
+ sha256bin64 = "1yvy0d2h09cf1w42c93kpw66a2v9yn079zs6qjiqzs07yzxvxjdm";
+ version = "79.0.3945.36";
};
dev = {
- sha256 = "0x5r6xqwiggwyzbinm252xc1n3f9r7cmmzj6assi4v1nsispdh2k";
- sha256bin64 = "03yymhbpd1snycmcv7wkg5j6zbydvyc365gy5myp7wgas7cd0mb6";
- version = "78.0.3887.7";
+ sha256 = "0zf434ijk6zw37fricnkb1968nhmb7zlfivf59nx9yh7irbwb4hm";
+ sha256bin64 = "1fphf8pwbbirs9fiislg3vav8c4a393lz487sa7f90mzsx84ffiz";
+ version = "80.0.3964.0";
};
stable = {
- sha256 = "0hajwjf7swlgh1flpf8ljfrb2zhmcpzvrigvvxqd36g3nm04cknm";
- sha256bin64 = "0hdsla8i3q0zbczia64ghqsf420alcc31xdishx1sv48x3rlrxkk";
- version = "76.0.3809.132";
+ sha256 = "03jvfz68nvmmrplygf96sh0l347p4h03c8vpw8yrglh6ycwkiigr";
+ sha256bin64 = "1knsrdh4vj1zl3v1frzrvzg0pwb64zhq2il7pwskrfcbmsj3gkh6";
+ version = "78.0.3904.108";
};
}
diff --git a/pkgs/applications/networking/browsers/eolie/default.nix b/pkgs/applications/networking/browsers/eolie/default.nix
index e067f3f15eb..b9b183a03ff 100644
--- a/pkgs/applications/networking/browsers/eolie/default.nix
+++ b/pkgs/applications/networking/browsers/eolie/default.nix
@@ -5,7 +5,7 @@
python3.pkgs.buildPythonApplication rec {
pname = "eolie";
- version = "0.9.60";
+ version = "0.9.63";
format = "other";
doCheck = false;
@@ -14,7 +14,7 @@ python3.pkgs.buildPythonApplication rec {
url = "https://gitlab.gnome.org/World/eolie";
rev = "refs/tags/${version}";
fetchSubmodules = true;
- sha256 = "1mhl7p8pwp8lqx5z15r0lx1y4mb2c1gjwy3w6041cyc4hyb91693";
+ sha256 = "0z8gcfg7i842rr5p8r3vqa31kf7nnj1yv3afax3jzf4zbnhb8wm0";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/networking/browsers/ephemeral/default.nix b/pkgs/applications/networking/browsers/ephemeral/default.nix
index 369689520d8..d5a1063a688 100644
--- a/pkgs/applications/networking/browsers/ephemeral/default.nix
+++ b/pkgs/applications/networking/browsers/ephemeral/default.nix
@@ -1,10 +1,10 @@
{ stdenv
, fetchFromGitHub
, desktop-file-utils
+, vala
, gettext
, glib
, gtk3
-, hicolor-icon-theme
, libgee
, libdazzle
, meson
@@ -19,13 +19,13 @@
stdenv.mkDerivation rec {
pname = "ephemeral";
- version = "5.3.0";
+ version = "6.1.1";
src = fetchFromGitHub {
owner = "cassidyjames";
repo = "ephemeral";
rev = version;
- sha256 = "1xglhv4rpl6vqryvliyvr9y8mqli4x4bjcfjsl1v8gdxkzkwfy39";
+ sha256 = "1i77chbjjg8zda5bnn1wj4h00a88awfls5b3i3dqwgsi356hv4wb";
};
nativeBuildInputs = [
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
gettext
meson
ninja
- pantheon.vala
+ vala
pkgconfig
python3
wrapGAppsHook
@@ -43,7 +43,6 @@ stdenv.mkDerivation rec {
glib
glib-networking
gtk3
- hicolor-icon-theme
libdazzle
libgee
pantheon.granite
diff --git a/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
index 50b7153533d..d70490f8218 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
@@ -1,935 +1,965 @@
{
- version = "69.0b16";
+ version = "71.0b6";
sources = [
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/ach/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ach/firefox-71.0b6.tar.bz2";
locale = "ach";
arch = "linux-x86_64";
- sha512 = "5fe26093cdffc6c3afde7438bbcde7fb24867e70b74c18ef287d5897e4470f2671fe30053bf7d9077d9494e9cc97a2dabb9938d4c99fcaf7981d8df7cea281fe";
+ sha512 = "0f2aab504455ab3e18b220d3a284d955b0342ef864990d8b100e98fde00cbb9d660ecd9af1a9601d4b93bfd425599a5e111a2566d057932e9b40627b34318857";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/af/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/af/firefox-71.0b6.tar.bz2";
locale = "af";
arch = "linux-x86_64";
- sha512 = "2a1ea5564ac0bb16dc716f29f4f3a63f8029ba314e353ad74bb437a70ade138b29f58df2fb8320efbf5c001232253aa4a16f48673bc4c6e5906ce3c4c912026a";
+ sha512 = "64ed124236183b2fbf9c31b5130de0caae8d314afbc09fdeab2b3a23217b2af4aaa6c8fdd46aab27402d4079639080af1e8ee68ad3b074f20748e213e6a9f92b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/an/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/an/firefox-71.0b6.tar.bz2";
locale = "an";
arch = "linux-x86_64";
- sha512 = "5fae2f3b33d7776f70a4244c6be02a47e81000a9de91fde1a3d73be2675e1ca67a2219f8aeacb70759cc779b985e4f0698c625c20f895e75e28ed9c764c8c3e4";
+ sha512 = "ab46ba25db59894be85e8a78074a811d12cc9e233554f79b028bc0ad6cadc452a8b37fbd59c9a15b81b1a0a499050e37b5f75a154c056324f1207c2c1ac1d75a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/ar/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ar/firefox-71.0b6.tar.bz2";
locale = "ar";
arch = "linux-x86_64";
- sha512 = "dd8eb0155a3d9489645c03c3240f5ca2c6ee0b0de7cd82e62aad1575e8868f3ec763985c4142078ef8ace86da81887bf7d1f95c2ec22d5bc73086e230898e7a9";
+ sha512 = "298682210b8127ab77f509a79b3bc61c3206a1a405a5da44f9697fe7361deb3f936449f32494f3a8e15420b56775cfbd773a77185aa5f07f593aa371d61c74f4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/ast/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ast/firefox-71.0b6.tar.bz2";
locale = "ast";
arch = "linux-x86_64";
- sha512 = "960fea994048e4c08389c7701541266e3631c4d70f604146189805f1ad606aab16ef9c2b28eedee82acbe0f42f69c96a90a041ba4cf95fec060b1d6c29a94bc7";
+ sha512 = "30221379730f41d32e0738689cf8ebdd8615275c6905a984f186f4a7823f7a84a707ab5ed8ce9448f091750a78373d10df4999a94ca32020e44b0ab81442df29";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/az/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/az/firefox-71.0b6.tar.bz2";
locale = "az";
arch = "linux-x86_64";
- sha512 = "8e7b6bb3fc5c6726115a0a20f61d1cad5e9a4e9e86e462e1ab6a454f5257af22ebf8dcdea3298fc1e9648fe630c36245f4c45ba4093d45e59741ceb882fc501b";
+ sha512 = "f948c6bf563012639a6ecaafa8730d0430ec569c193bae617436cbbafd61de197b87116a1ee3e16035048d15bc794b499e9e4f8dbd8522166f20fe8be038d965";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/be/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/be/firefox-71.0b6.tar.bz2";
locale = "be";
arch = "linux-x86_64";
- sha512 = "919a1f9007599ed0b325e0b218b18fc803c535f7eab76068cf4e94fe1ceb4543d090d7f341ba5f4d4de9aaaedc1b19d88ddbcb5c329ed5650d2ebc721f6aa49b";
+ sha512 = "9c7db4af9b692896faf7e9ba3c5b1e8360a5ab2e60b6850a901288b4554bfb0e45c738f167a0d96a3af2db4fb150a557eb1e81b375087f4086e4ee5438b219d8";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/bg/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/bg/firefox-71.0b6.tar.bz2";
locale = "bg";
arch = "linux-x86_64";
- sha512 = "6746f4d0c2a73f99bc04c3b12bcf54e5eca7262ac6d54835a567a23a07fc91775db9e64d0c5accf045aabd5d4645a753413f934e6eac9dbcefaea30c944aadd8";
+ sha512 = "ea01ee47f6febd71a1f77b883bb48c093fbc19e20f277dbe676a351cd35e334ecc81b8ee9510650c38048e11a68365e2815fd0545ffd4d833afec2e3c3e31f73";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/bn/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/bn/firefox-71.0b6.tar.bz2";
locale = "bn";
arch = "linux-x86_64";
- sha512 = "ba88ff34405c92b907cc16e44dbd5d1db0b4bcf0fb75ca650739bf307a6e2270cfd69bba9ead6c260721857738165fbbcd4af44fbe8cb9d7402d97c32eb09532";
+ sha512 = "d4143ef97c5f9f20605dcf8b646b0acdde7b9475cf2696be7f3dd6ae5830511319a083f5dc6488a7d83764be7f39f6134fc67d28ac3e334f2a87235958ce3070";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/br/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/br/firefox-71.0b6.tar.bz2";
locale = "br";
arch = "linux-x86_64";
- sha512 = "e7c78c11b3fd36d7c6ab55ac9571a53615a595dd5c5d66cd3dc6fb6d3fb42a1b29dcc86180f2028502f25869c951ad3caedf4590a61fe525616f18d560d6e775";
+ sha512 = "04a0d955fc4e74bee803f274e89dea46500bc0c89b3cbbc03b892d30b93c648ee2909a37078b38a4d106338e045cf5698bdfcc6125baacb8d839cda7f178c715";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/bs/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/bs/firefox-71.0b6.tar.bz2";
locale = "bs";
arch = "linux-x86_64";
- sha512 = "36a677f1c449ad58e8750323cffdea3200c3953b9fc6bf920a0439229eb00164d4c1199286d1f0cc47eb31b3fe7acf9e78ebc3f4a3f49a443d1425afe717ab2e";
+ sha512 = "f06e2d49206fa5569d3584b71f321c1ca9270cedc5bfb1c4ee8969f00cdd094bfcff400c1dbf67c9d4b45173f7aeabe9a44a393f8c49d30feacd4e4a0e24a47a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/ca/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ca-valencia/firefox-71.0b6.tar.bz2";
+ locale = "ca-valencia";
+ arch = "linux-x86_64";
+ sha512 = "13aec7c68757c07e9b1016121ac474d894d580cdd88a05ec6e4a2f34018b483a37aca8bff8b46e7f00439059cb9cc44a9032363c8a157bdc3f06fee3be021309";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ca/firefox-71.0b6.tar.bz2";
locale = "ca";
arch = "linux-x86_64";
- sha512 = "b78937e7ca4c7df19ed1c40a8b459d65176ca908333d7d19f30a377fddf836438cd750f2efeebb235c75c25f4a42a70e919c2c0061b865f7b90d71fe2ea119f1";
+ sha512 = "e548c5a7b741c8affd6852a538f0842f3774048f9765c7f25177ebd71c8c7d41530e4236ef11fa03f4d2ae1d8704c19b29c95c7744715ff374dda20a7923f716";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/cak/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/cak/firefox-71.0b6.tar.bz2";
locale = "cak";
arch = "linux-x86_64";
- sha512 = "ac21c01a6528790fd31d56f0c637a0cee8b4cd0938ecd18200c48f8c982ee6a06a36ad779f9cb708d0b8191b7df4480d62dd75cd2a4bd0502cdd862aa8e95a08";
+ sha512 = "9e284c5bce5f2b232c4acb84e34d01418edb66cfc0290d5b48e67a412451f5520f845c9a0e70089cd89828ae9cdbf4fcb791fe5de17439372144e1b3133db149";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/cs/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/cs/firefox-71.0b6.tar.bz2";
locale = "cs";
arch = "linux-x86_64";
- sha512 = "09cafbad6acc6db507d5589f4f89f3914cb80c826de9e55d8f02b42c29f6e46d24f49729efd8c67b5b575fc4dd240d8b32f0ed69992ac992b02c8f2639c2b613";
+ sha512 = "b4e23db7f7dfceec6fdb0a48d74a376e165ef3efd38f03990d19ab9cab67d51a2a0f3a0b3d18b57f9cc0f26d84454ee6b573c7f5444c2e4e20e9b18ca44dd480";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/cy/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/cy/firefox-71.0b6.tar.bz2";
locale = "cy";
arch = "linux-x86_64";
- sha512 = "18de3618d1b1fd350a8c826e57898f019e9c792e5f97521ab52ee940956e8e49a9191e361e0426412ca27e63c1e502f350c11a68574f2be37b29e43a9a63b25b";
+ sha512 = "506cbc0261c90b0b20382dd7f204e826e666915b6624c1490089ebb8e613fcdef368eac4b7de5b2167d406130c3435b0f0367d23667816a562ab0576a2be9458";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/da/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/da/firefox-71.0b6.tar.bz2";
locale = "da";
arch = "linux-x86_64";
- sha512 = "7fd40f49390d1ca844f31eaad74a419a28aab6f74cbad1f040e01ecc5b6691ff516a4d2c41c906e241aab54573580eee3b6b01531468cc3e35c4fa61f7b60931";
+ sha512 = "60e25765159560242af62d60a8c8a4f6f607a3f153277b013e70bd5f0abc9132801c122f5ef374e3de8710eaa49f059658fd325a66b076417b5ab34e9d156c2a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/de/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/de/firefox-71.0b6.tar.bz2";
locale = "de";
arch = "linux-x86_64";
- sha512 = "85347a3419e55984769031850ec30f757238801cf8483551ddba35abfd0e2638c75fa358ec09705d28dcc647fa47ad37c4f545522d5f8aa54067fbcc232a47c6";
+ sha512 = "a99c8a9604e2a83e6bd085ce5a30f6fac79482ffb6360e23b1678c1531ca14f05394a91401ba57dc37a5006553944a8c96821c9cc58a4a3fd5aff685c51bdc4d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/dsb/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/dsb/firefox-71.0b6.tar.bz2";
locale = "dsb";
arch = "linux-x86_64";
- sha512 = "a8f24207ea3b763a3295c1feb43c22f0e502561224a4d3d342cdd7321bd4e93fca83293834163d9a6160e0fc4c6aedb60b4f72e172e99eb98e6b8c0cfef665e4";
+ sha512 = "5dcfa216878aa733afe9fdb0d11c873c753a93cfe3aedbb3b4e5ff62f6578f86c6ac4e3a408012a00dcfad31d7de9dded903c6d5d0d351b108f718cb7c226310";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/el/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/el/firefox-71.0b6.tar.bz2";
locale = "el";
arch = "linux-x86_64";
- sha512 = "ca8a37134a897631e398448683e4805ea9fd10a30629c09f760b6b90b9e8fb6505adf3143031e88b7a189791f487aa0ed852c0a4911b93fdedb34cd0cec7b7b6";
+ sha512 = "ac596fdd1bd4ca09bb127f5d964318e0496e4d9c2f060c982a62c8cdf71af5e35f7d96c37ad0543550af4b4741a08b7de10b2206d1ac90f8ff27ed733a346d86";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/en-CA/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/en-CA/firefox-71.0b6.tar.bz2";
locale = "en-CA";
arch = "linux-x86_64";
- sha512 = "b2c154bf92cf4ac6a4021b199e9e8438b59e4aeaa5ca7f72df41bdf64dcbdb196d384775b759b867a717e48e7a31f457cdec2c20e3c4dbd93d3c440ce277d396";
+ sha512 = "8dd71d997a6676f6ef28d09a90f67b7858bc313beea4312124a498208b9b8e36ce7306901abe5bad4dcdaa5b1cd23010aa65eb8bb41f5f4ae2e400608dce2cfc";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/en-GB/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/en-GB/firefox-71.0b6.tar.bz2";
locale = "en-GB";
arch = "linux-x86_64";
- sha512 = "73c0b07840bf816f093c90b9103a25d2ff00cadcf13341ff228e09bf939c131db3ade9d3be472a4eec3ca5b4131245ea4c788171e6ee42beba7dc1c7881da0b3";
+ sha512 = "a442336f7a2dd1865052f06664b7b52ebac33be84c1cfc55b9b6ad3d2e9fd548a5cad65b9733f57ff432a7d0d8a4e034610a2f4ccbde836290d9a2ecc9ca8548";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/en-US/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/en-US/firefox-71.0b6.tar.bz2";
locale = "en-US";
arch = "linux-x86_64";
- sha512 = "c63d7358887ba0d8af897063c5431c2bd404fb9708e6b59d73c14dd8cfa1a2137af72eb01dfe25b9e6d92b84d5b966693cc89f5446ed3410f910e2df3f92b6cc";
+ sha512 = "fcf3bdffb8f2742101b8dc215e489ea54778d7e2f05aeec7229bebb532fa972aa56257264a0fdd3d37ec19d427d782f3d0cd45534f977d1b0b6e19399d004f75";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/eo/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/eo/firefox-71.0b6.tar.bz2";
locale = "eo";
arch = "linux-x86_64";
- sha512 = "0e4a373bac78d80e2849c41c93196782ef41a74f91c6319da690916138a78c20c9d26d8c96e5efe67a835185c8df77354b3fed5a62500e791634eb2f15909031";
+ sha512 = "228dcd7d4bfde4d99172f895502033271765898fb7221d359c55277de9b04d070e362a64c6327e774bf6ec7a23983765c21c77a1d210d4f238d0846d2f6ebc6b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/es-AR/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/es-AR/firefox-71.0b6.tar.bz2";
locale = "es-AR";
arch = "linux-x86_64";
- sha512 = "ff07382bcc926272bc69c10aa7f35eee7806d94a18ddebfa3599451d002afdda739461aad90d8df094f56b9b8840cedef659757245d4fd1a8603ac25d2a3100b";
+ sha512 = "bfc15c3bf2a8e8d980410d81ea94b99c92037779ed87fc4bc6a8035970067e98d181ec35d88e576dc08b86485a90a7fdca450a55deebfbeaf651247ea1dfafbd";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/es-CL/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/es-CL/firefox-71.0b6.tar.bz2";
locale = "es-CL";
arch = "linux-x86_64";
- sha512 = "201f631a6682c9aa13c511a0d6da256e2f207362264f6e1ea060568a9e597216407ace99508ebe820a348859eb72c6df7581276eca5040b3ee2e99e048c67062";
+ sha512 = "9638f8cb3fa6fd71dabdc88974e0498d7bedb09448e2544356d990ef641aceb3668214c0d54e7baf65ac196501697ddff216901d00d946962a43f0a09f3c8126";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/es-ES/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/es-ES/firefox-71.0b6.tar.bz2";
locale = "es-ES";
arch = "linux-x86_64";
- sha512 = "76573a05de730de4c6bc76dcf98a21764c78baec4eb0ead45adae2658e9173b33c97132d0a2e5c95807a60a22c9ab2e1dce09e5b73ae2dfd905ced82ba105333";
+ sha512 = "1b17dce1c7b1d3965a71a7972777af91f8a88e2f5371db888e00d658390bd3aee7de034d0433f90bf93796425a80fba51a5a5e1d235095f9c43775895311952d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/es-MX/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/es-MX/firefox-71.0b6.tar.bz2";
locale = "es-MX";
arch = "linux-x86_64";
- sha512 = "b619f5a2392ffa0b36f48503e94adf9cf1719911258e1752507f274078d12f74257677f3e76493fd080a0be08ca94964dc55129a59e292b1e2573676dc59e5c9";
+ sha512 = "4c4491775007dd5d2ef89d4245c8f84e79d4e27251a96b5f538c2e0c540b5097683a6072d94a85620e1f5b13143e1bf1062ce5f691000de3f9c168e44cd3b03a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/et/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/et/firefox-71.0b6.tar.bz2";
locale = "et";
arch = "linux-x86_64";
- sha512 = "951288cf8a5745e433332798b87ceb54e35d408ca9f4e9d9fb288192de430eb45065fe88f0858f1a71e0cbeaf87c85c240a6d350bf8ce2f50c8ae548cff71f90";
+ sha512 = "24734e0ab55249a95117c39ea26f7bd173d8d90ff5e69833d6f3c335ef1ee895fa474458b2f6d1d545cca26c295cbacdf74098806a62e6742d03ece28a9fd426";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/eu/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/eu/firefox-71.0b6.tar.bz2";
locale = "eu";
arch = "linux-x86_64";
- sha512 = "78c856affa639c531d70e20b1de6f0eba59b33e403a1d24c3508fab03624b5c90db636d39b0c199f2fd0b5fab10fa3ecb2fced6cc3b1e8a06b9be11e8ec917b1";
+ sha512 = "ddeb8b1dcbe414905fba9175ad4c09b981a9f2277d335d851320beace94d55ce2d1e10ae96972c6da28d8008db377fa4470f4fb8f7a1ead8a4c26bd01d2bd0e9";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/fa/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/fa/firefox-71.0b6.tar.bz2";
locale = "fa";
arch = "linux-x86_64";
- sha512 = "a835fa37f804055dc117f694d85ae8b750c82f7ba92976def927f187ee91330a3d0616c0915917d1d0ec3c295f803c0bd2bdc9ecae0230f9a6642e42cab0e066";
+ sha512 = "cc6daff1ce0cedde5a9a2c3189039fe59ba01ee20449610a340816dd316d104bc64f6496389aba5f4e843fb70fe9d9b18edc0dee59357d64e916969a3c38853e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/ff/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ff/firefox-71.0b6.tar.bz2";
locale = "ff";
arch = "linux-x86_64";
- sha512 = "ed3664cd4418ed5af133e00c30b3a9d23a82bb681c5d965fe00b4e2bf6ce4c777b00c352dca4cfcfcf5a895d7001dcc6de67b4ef0abb3967014c483437f9b1f8";
+ sha512 = "ca11dd6f3862c42b1bb76050d347d97f27e6f415c9c5bf9565281c4bd11411b940f1f8ff69940e1201e008ba7ae5de653a64570b4f7175c2264bceeb696bb2e3";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/fi/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/fi/firefox-71.0b6.tar.bz2";
locale = "fi";
arch = "linux-x86_64";
- sha512 = "3edf6cc3dec21a48f914a754718a57cd495ed8bd9b807a9c4aae412a117ad1068abf0daf6cced6da74bd4887fe51746f1bb57dbc5858917ad17d8912cc9c4cb1";
+ sha512 = "49110d54b09331a0d91b1e2fe2aa67a80e46b93bec3e449e55ce4b600334ce506344022ca7523b498b444e8bef25b358d18709ce83e6465254c0e27bcd9e8cd6";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/fr/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/fr/firefox-71.0b6.tar.bz2";
locale = "fr";
arch = "linux-x86_64";
- sha512 = "9f92a2dbaf834f13f0f0fe2cff0ac433c01b7e8155a381d21324fc1e7224f7d5c0a8374a7e5e43f679232f565958ef946e3cbdacd3e711e34ae97eb27176321d";
+ sha512 = "14a3ff081668a5003e4d129256975e0c8eebab78ff96a7d63f6eeca45c9331ba1250df09a8d529cdbc199133a8ff61ed170f91f0f366f12e7f8f0486a563046d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/fy-NL/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/fy-NL/firefox-71.0b6.tar.bz2";
locale = "fy-NL";
arch = "linux-x86_64";
- sha512 = "f98eb4bdb595db2f688c25644dacddb2049fe8f8b21e83f8cd7031cd23587713f1fa53f39a0b444f6ee979901806811c16599224c6a1a7d17cda84b544ee1848";
+ sha512 = "4b78417383fe474407f55353f148429047635988c7407a7dafa9aa894e3df9bed9363181b3201a66caf11f20c10ecaf5cf9cf630181bc043ac5f8ba9525bedad";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/ga-IE/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ga-IE/firefox-71.0b6.tar.bz2";
locale = "ga-IE";
arch = "linux-x86_64";
- sha512 = "eec73de53bce5c18ff0491d6f4018e3fb39471d3d63c6cf9527cff8f4b6b6e0a7e24e3b7fed58094409efee29df7dc35f2410ea05d5e916efa1d778926ab23f1";
+ sha512 = "7bbd19ce0063746b66b5016b00cc3c0b62aad4424c26fcdf895c485217525e4d601c22d417c9faecfa8da6344f8edab28a3e0536b785f2215b8e5f67d4d860b0";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/gd/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/gd/firefox-71.0b6.tar.bz2";
locale = "gd";
arch = "linux-x86_64";
- sha512 = "1d10666f6c563dfa07f708b058fe867b9618974394a5eb4733926429a76bb6ea59e7ecf6a2a89740cf2f04692186bcfcafd2eb6775c5b59421bab0a92a24fe41";
+ sha512 = "a3444d8d13038203760ba3e04f6aee6097b5140a1f0faa247dec6916221c1c7cd5f9bca091f84f8a778cf3433a74671c4a9e9a4c114738309873a3bf14b860a6";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/gl/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/gl/firefox-71.0b6.tar.bz2";
locale = "gl";
arch = "linux-x86_64";
- sha512 = "b56d98f5a1e558aa73ec385c03b18dc9bc615670dc5a539eaf6c925f4af3915362d2d072f29ae3bde3f9ba266a321d704c6bfcb959d47858a650ffe7fab5767a";
+ sha512 = "9d0441b7391aa2a7adcd24946d36ce197b6aa107133f0e83120c8caacb02a5580e2e786a7c36bf03003698d473a39dd3e9d7d57553f601dbe1b45a23bcddf12d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/gn/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/gn/firefox-71.0b6.tar.bz2";
locale = "gn";
arch = "linux-x86_64";
- sha512 = "50a9d482efe2c22002419f4559d1b90fd5f368a23deddd78227b7d20b6a051870a997506a1de931ac8c45bd5d33ff9152f3a8ad41c735912b48dc0fe9c073360";
+ sha512 = "41fcece059ff48ad3d23ad3826dcbff2fd356ab5567abdd757ff66739f09ad962a2026cc5b5217ecfa1d035356f77fe8563ff2f78be925b88ea903d8ccc63641";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/gu-IN/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/gu-IN/firefox-71.0b6.tar.bz2";
locale = "gu-IN";
arch = "linux-x86_64";
- sha512 = "8ce423880bb405240a78773c3f81aa08bf42b39c68068d3cc604486a96b44e7509c577b2c8f2285cce62181b7f11565ea6910c8871b798d0b6856765b16e1899";
+ sha512 = "d09dbcd2222245218902e2e7d921239a2e96481ba6312c3601e33c0a9f5c21c27a505ade880ff36560dc2634562a58dbfef574bc693941ecb9f6fef9461cb004";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/he/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/he/firefox-71.0b6.tar.bz2";
locale = "he";
arch = "linux-x86_64";
- sha512 = "6a0722861c63a414690e9eeb2456ee492a92b8b20f8fd9973c1580b2e3ef1bdb87bb7ca0d17603c429a76805076e2a7c4cf986d643e790b2b04c58b69aeb8758";
+ sha512 = "9d7cf14280fa265f1f8a06cd21e174098347199b389b66613713af722f500461dd394b2b56bc635168c3266bbc9e98676bbeac45a647ad9c7c0187e49e41218d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/hi-IN/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/hi-IN/firefox-71.0b6.tar.bz2";
locale = "hi-IN";
arch = "linux-x86_64";
- sha512 = "4e9ba72349a3e58ee2b584b5d3ed5f601a1af7714104139e7dfa997921e6b7954a5cb7b78b9b8b7bcb7eb09da990116f844dbd96cab901ca408c2fd49303c35d";
+ sha512 = "295cc80fcdfcbc523d676147f403e828f1f09642a5fcea0d371504f6ed2892556a058f7097e923a7d5bb13b812efa858f39161efba557d8a5d38562beb091646";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/hr/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/hr/firefox-71.0b6.tar.bz2";
locale = "hr";
arch = "linux-x86_64";
- sha512 = "f53f4177603c41008d06f16bf9e102855273f53856e57f79967f59af64bd38f745c4d71583db50917a45a7c3bd64940f69ecdb864dd957798c2ce5b65f5a75d9";
+ sha512 = "e5dd6596a62da991d33589e7ed5f2834d10125e9ba3d05670cbab35f2a7addba065d36e881b3cf7aae3a31932a4e7e197cdcbae42e9ffbd352ca60513fe35931";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/hsb/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/hsb/firefox-71.0b6.tar.bz2";
locale = "hsb";
arch = "linux-x86_64";
- sha512 = "f6044e9f09cf4fb64dd9d3935332bec46ddd783f6335206a51e68a411be57169d4a6388224da462d65090cd2ebfee64946626fc41ac3d779f53391c1765fa290";
+ sha512 = "a07459b299630d6db0b18b045547fa65533de02e6684e696ff4979575455ad8bfa42802ab93c4b3adb38046ca5856b7b2af470524cb54efbc7752fa42d9e77c1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/hu/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/hu/firefox-71.0b6.tar.bz2";
locale = "hu";
arch = "linux-x86_64";
- sha512 = "0178b084718079f1e6117f723e2931275a28944deb5bff48c3fc9d2548ceec7a6f019253cb7fb014b04e6800bdc62eded02b1ad26efc2eaccbbd2d0ca359faa1";
+ sha512 = "01ddb0a1333ed2b9dc3ee1f0b2ec069c1d606abdb918798f64ba420774dab33356ef7c97d0c403bc5052b0834a852b02ac17d187f53c509e13f4d2de5bcc66ed";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/hy-AM/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/hy-AM/firefox-71.0b6.tar.bz2";
locale = "hy-AM";
arch = "linux-x86_64";
- sha512 = "0f069f14ab5895b1242b0b583e2a952c9a794e363973f68d119a791d5777048849dad23badeef6f155e1539b06468a4b7b0555e0e76f137edc523d09b6a51b36";
+ sha512 = "648240e7ca906619d2e396069c0b2be29e962d9e2f96e5f5cee0efce7c85f4b6f17fb3589d236a7ae347ffe465d7c7188d68e04454e566b4619ffdcbb21bbcef";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/ia/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ia/firefox-71.0b6.tar.bz2";
locale = "ia";
arch = "linux-x86_64";
- sha512 = "fa0beaf3088becebfc5e4f02b884a572fc86b5f89dafd8e79741fcddd331f1d667b1c2af81050b56121ff40a2c9077bc514df9ec2de4d165b536d5b17cf2fa29";
+ sha512 = "313b8de952330bfea1a0643821a17331e92bc5ab6a575c77cb14484ef8734662bce804259cbfc0ef2191f0e96aa10d61b6374149563cb4114008e26d9efc3ced";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/id/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/id/firefox-71.0b6.tar.bz2";
locale = "id";
arch = "linux-x86_64";
- sha512 = "10bb29fb1f4a588f8ccde4e087bba1c7b405c44a9a79acb16d189f704bc31ba24e33b1c89b1879deba4d5c5da0a5f94ef69a7987256af6fbb6d7571db85a1bb7";
+ sha512 = "39e8a946274245702bac80455cdc84a5416cc25dfdf32b67d9bf97a0f263cda6417799b80a1eb34cf98492929016dc176ad09e140cdb7f57d09daef97aacdc69";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/is/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/is/firefox-71.0b6.tar.bz2";
locale = "is";
arch = "linux-x86_64";
- sha512 = "48229cafe81da44259f0768f1494685afe072558dddac63c6321955d852ddd80a3b8729692dbb9c6b283a302e6d412d7c8d4f48888a0d5a1cae12dc1a025124a";
+ sha512 = "2956d0309b81a9c428ebba4698a7b5431e885e55bc71ba3394abfe50fd81e0b7b3c9049aab020a8d9a8caefc04cdebdd4793e56754ba41c88e55aa8d8a3e05f8";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/it/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/it/firefox-71.0b6.tar.bz2";
locale = "it";
arch = "linux-x86_64";
- sha512 = "1097ddf7dad776303b942bc80455c8902c0c0fe1667fab972754260da6fe45f383967b8bd2d51e845a66bc0728c7655050858722c1b3b8d2e8d0331c8f612cdd";
+ sha512 = "73486caba6b0fa67bd6754ef6d712c244429b8de262c73fe2bcf35afb2d6e1a3061a3ca97fed148397b49230ff1dea0263e1bc404be74f28c88b6e0c540a4163";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/ja/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ja/firefox-71.0b6.tar.bz2";
locale = "ja";
arch = "linux-x86_64";
- sha512 = "ca0e8dd301c1e1f76acdfae325445b2ebf45a15be70febeb677d215edbff7df509db7a38409b5039aab1a76cc8cb235d597f5b87f02a96bf842ef6d2e11e6176";
+ sha512 = "446fbf643d4fac6f43ef0b7547df542ecd8fd5d319456875a1660ae40a949872c74bd97ae8e49e7c685a1938eb312693ec35c0e107e9bad942584dfba2f934e1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/ka/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ka/firefox-71.0b6.tar.bz2";
locale = "ka";
arch = "linux-x86_64";
- sha512 = "99a1ae878c93ddf52c96466bae92259a4e51791ae343574c09f99e5f1878a15d705c84323af6b2871ddbe14c3f4b7fa5cc7a45c27b10b6bdf5bc70ce3a315322";
+ sha512 = "1666ac3fe60104b0c3a942f28f4496927fd83baa403c85cd712f11cac1e3a35f794a3fc098e642ea7a20720d3138f021f77935d365ce2ed7606e89284b374476";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/kab/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/kab/firefox-71.0b6.tar.bz2";
locale = "kab";
arch = "linux-x86_64";
- sha512 = "b2b6190978068d2d36baf58efff771dc48cbaa09e53da8d19ebedfec4da5ab6c9c1c212ab0a9fb6cf7a264565b1815bcd2a2e0283f912c9ae3ab5fc6dd0427be";
+ sha512 = "9335419c9b7b93075e12dc1b4f96c260b7e045b7598f60dd9c6ccd3ff4c3fab808666a7b13ef8a7906f31afd5a720499aa6abbdd5c4259d23aa8b1317146c805";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/kk/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/kk/firefox-71.0b6.tar.bz2";
locale = "kk";
arch = "linux-x86_64";
- sha512 = "3c56bffab7e32ba9e0a572df36c473e94a3ef7b84207f204b5fa4df1473e4f64fe11a0b7bf8dee4cc26db56e99cf21eeb17b598dc211a5d9f5b3ab3fc5d625b0";
+ sha512 = "c5107685611e21b0d12357aabd3111a05cc635d69553510220f928485c3a78124aa86afc44c26147b282c158e94d448df14a4ce1e43763b78c5a9e3de6348942";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/km/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/km/firefox-71.0b6.tar.bz2";
locale = "km";
arch = "linux-x86_64";
- sha512 = "6a33560d83232074445c0cb31949f0e8ed4ffb18ce9407f4f9b8f5bb9460e949eb5d302b7f58a4ebcee5d27de0bc588e7d047ff8a17aa3edadc0ab595a175362";
+ sha512 = "d26f924db4954eb1dd9c2cb2d333a954925c53ac4a48a0f82a5ec340a3bcc6934a00666e9398c407e5594e191d5789bee2ded4af57d5f76aa4d27a3f00b4ae89";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/kn/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/kn/firefox-71.0b6.tar.bz2";
locale = "kn";
arch = "linux-x86_64";
- sha512 = "d67b40cb99923acd769bb10d824903dc01379c9a5245f6d9fe0747b58525773b2724329c64760ec1c18726056bd1f7d74d9e292b3173555011bf7e66d6169828";
+ sha512 = "d8ac76dad99060c2900d063b9e037b8b4bbee96066521f41353f77c82536bad8a637e38302b9b5cf1f643284792be730a2441bca2d604d05ffc77600a162d3d2";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/ko/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ko/firefox-71.0b6.tar.bz2";
locale = "ko";
arch = "linux-x86_64";
- sha512 = "e932cf78de717646837ef432179a0b9cd41875b60ed5ec0c082f9b285c9899006844a61073689670449206a82c6a0bd72e076a51be1551ab3f757c6f0a060bb3";
+ sha512 = "ee289f66819bcb680ef74c90de2e025617eb12ef69c4134c17768f0f0644d215f6220db5cdcf0190b63284782ca7125aa0cb2016c9dcb25e7db91a4200608059";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/lij/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/lij/firefox-71.0b6.tar.bz2";
locale = "lij";
arch = "linux-x86_64";
- sha512 = "d52ee5886f86e511f947366caaf2769c4b3fca87254091c395077dab4b665b35de7b66cf90849958bbbdd61316d5df43014a8c9f9bc9006641a40aa2e8d79f98";
+ sha512 = "8fb5707baec621e20bddd33f7ef61669d3694f3687e797cae9851876ef1976413ff60f3c3409a9a3e1b63f9c6e1028e9cf1b5a82d97960f1c3d92fb81af1003d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/lt/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/lt/firefox-71.0b6.tar.bz2";
locale = "lt";
arch = "linux-x86_64";
- sha512 = "ea57e8db294d8b293a48d61257097caca093c9a2ed0b14b2d5c486de44b542cc546b751c2cca73ff6ae4945c210018a35ec61583f5b338628894117c04dbd135";
+ sha512 = "53db71d1798f963b53fd3695319276ce3ccf42b9b29b9678cf5eb149d6b79390d0a2712967486f05fe3c6d8cf25b123f5f8d6ccffa4f138f03dec611bbe2bdaa";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/lv/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/lv/firefox-71.0b6.tar.bz2";
locale = "lv";
arch = "linux-x86_64";
- sha512 = "66054fe532331c73b0718791d83f389ad369fc77ecb0904c6fe3f97310ffb4d88e316d9dc618a07dfd4569b3c746ac882d8b353484c580af63c59f44e8257c11";
+ sha512 = "7cece5926ddc73a817ca894167ceb264865e284dacf66c4cf98c89cec8287268af6088da9cd3451a358e26ed591d2b6ff146f567116f8ab8a80cdda36aa781c5";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/mk/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/mk/firefox-71.0b6.tar.bz2";
locale = "mk";
arch = "linux-x86_64";
- sha512 = "0f67149117eef961fad9355fe61353a3a2ee15f19e92a592d6fad69e46ac488c26f2b0269f6c229df51690bfead9e85c1ae0489230ba32fb27609900a9725f57";
+ sha512 = "492739c5c7b25696ba02f8f0c41127689de8b65cdcee43981dbb1d1243d6490ed7f034ca0e8d5e50763390e85bafb134c190fd86a6d2bf2a9c715ff1837e53f5";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/mr/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/mr/firefox-71.0b6.tar.bz2";
locale = "mr";
arch = "linux-x86_64";
- sha512 = "740667d86641c92ac299fd63700ad74dc4ec2fabb261bff9abfbb704e7181863556aec952b420f5883ab6a18e66d237d15636e2d9eb7bcfbece6227190b4b6fb";
+ sha512 = "cdc685a2435afbdf33324d7d93c5af9f1fa1b7a817c70f34607280084345d3e69c7eb1c0189db8c16c288e31ad0c982ea7271bce6b0a9a71f0596a9ababc32ae";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/ms/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ms/firefox-71.0b6.tar.bz2";
locale = "ms";
arch = "linux-x86_64";
- sha512 = "21ed058002c2c57c0e0e43658b12a7b257009814d13566d2d8a5164d0d3acb131a8c90f99b1e577b6d002f7e5019e296010e61b1df2c5d2e9443e8f55f20a4ca";
+ sha512 = "37379786db0f326add87e8796b5bd2b9a7365e2a740095a5ae0affd1f15bd08642aa44ae5aeac4e2b0198f4fa590b5fdc05ea2ccf51049908540c39fea059f1e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/my/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/my/firefox-71.0b6.tar.bz2";
locale = "my";
arch = "linux-x86_64";
- sha512 = "8273c4d0df0fda727465d5bd4b50aa09dda1c81b4e78e291479efcceadd87ad24f50e2dec1accc2783fd0bf2e30a2d9e775d44ba599384f0e8e4ad0b6fe08e25";
+ sha512 = "c6ef471af337726207344d7eea3d03f412facc0fb26ba45a9134fec7f7a8857dec1484a40625fee9eee1a840dc1ba50f6d959cf58b79f77713d996fdaa5fb616";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/nb-NO/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/nb-NO/firefox-71.0b6.tar.bz2";
locale = "nb-NO";
arch = "linux-x86_64";
- sha512 = "492842b037b018bc07827902e76a117f9ee4620342af102f2753e0d898ec9b070412debc6f72dad2d899c3869c27d2d969bbd9a8cbfe4d0c10d85428d9c7f3e4";
+ sha512 = "8cb1f23fa23ee164c172cac43bb7e26ec42bd20b811922fa09c0945d9727d5cc545edc1e47f040084165de4eb0fc217c5fa9b54eb915703add563df83cabf7fb";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/ne-NP/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ne-NP/firefox-71.0b6.tar.bz2";
locale = "ne-NP";
arch = "linux-x86_64";
- sha512 = "5e31871031f4745af8e050e18b1d2f2a16bfd18596358b189c7940a8ff11e999e44cf2e96b62404e481d0d8712f151a10290ec36e5903ab72e26986a03f93e12";
+ sha512 = "b620f2dc18fec008aa668255a3a5b2de987f9c1b3dd27ae93f9cd9f2c02287e105516568cfdb631a9f60dd08e03ccc89fc9d7f6c7d682fc7f8cf8644965b9419";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/nl/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/nl/firefox-71.0b6.tar.bz2";
locale = "nl";
arch = "linux-x86_64";
- sha512 = "8ca6f3842359e5a97445692747ffe0d65bead4222d0b2f90f86dc637a6e02a1cc75909ea03acb0c232185ad626cdcf2a5dafd27d578420385b7a4df353847323";
+ sha512 = "51298d8ef95f9d76cbf6d410a85d277ded0463db6b85a05007cb11fbd9490fa385d9700bdf0dd333ba61aafe3690bd31604b1dabdfeeb5d8351c678eafa7a558";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/nn-NO/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/nn-NO/firefox-71.0b6.tar.bz2";
locale = "nn-NO";
arch = "linux-x86_64";
- sha512 = "a64d50c1625f4da5cde3aad78b04a4e3278ef3aabcb19cc9a9542e45f0c82f09a63fb464c0b2d842e107f22ad12226655617023afad112292ddc22d735a25d54";
+ sha512 = "61deac483f285167a9ed3f12548735b484bdf2e361ec7e9ed62abd44084bf2ecf037990b946255e1d086a746139f3d24f1ed428dba150161cd5fbf9db420ea9e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/oc/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/oc/firefox-71.0b6.tar.bz2";
locale = "oc";
arch = "linux-x86_64";
- sha512 = "1b873b5a90c8130be2a782f8c0459f853d3fbd340d7500550fc7628282b1e575d92a1d0af263665f7fac7192c22910e8338b66abda828ffecddfec79dab62fe7";
+ sha512 = "8421017b5aec9c5998aeb255a47b8e34b189667a9b9a576f087613c4721ba7feeed5b053d7c4fe24c32ce17589b5fed8603695242e6acb25d5236414012a9563";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/pa-IN/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/pa-IN/firefox-71.0b6.tar.bz2";
locale = "pa-IN";
arch = "linux-x86_64";
- sha512 = "6aadc5b934136d99161d4f52df74653ebe0ba2d5fd1e2468c103b34862a331ea269c23956ad27c7883811a474b6f915f6076d9673ab4767e5a3b0ba44bd32ec0";
+ sha512 = "3b8de8911a3249727bf1642214c5affe0555a6f91fa60a7b7709b3d9324403c9c5203557e6c4c0f8fdeb770fe73cc577f4a053064f09549049a9bcebeb4a359b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/pl/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/pl/firefox-71.0b6.tar.bz2";
locale = "pl";
arch = "linux-x86_64";
- sha512 = "b3caa21e7ebf3083be1ea13da68a83775a0713f6046994991328a293cef558abc523c43572ee98587c777aa779498cc5d7e671aac622142b4801386e2e1532b3";
+ sha512 = "7c7b9ff6387e9252bfc8c9cf9540cdf05e2d041c0a172cbb95de67cc91bfb4991d554e3a1616be8e8bfdcf0243095e91f06aca50d01b8ccf2316becea23de54b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/pt-BR/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/pt-BR/firefox-71.0b6.tar.bz2";
locale = "pt-BR";
arch = "linux-x86_64";
- sha512 = "f8b591901004a08c74a79cc4a9beb5139adaa2ba15261680c20c215ece1f1f115f0a71c4a2af2665c2c35bc3c5d3b5016159dfea5f603a981d5ccdc6b28c3b98";
+ sha512 = "d6918ebbd92548be667c2fdc1bd53a21d5de473fdb73f82c81da89e95d2fc3d9cac5b8938f74d1b32a5e3163a5010b2cb03f19dd6d858130118c592a573ff461";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/pt-PT/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/pt-PT/firefox-71.0b6.tar.bz2";
locale = "pt-PT";
arch = "linux-x86_64";
- sha512 = "ba910b1e9e77a938f4208679141b24bae1dea6bf83a2f3a2778aeac59da1e8ab22ffe9333188316e170bff75bfae57258f3ff53c08774d00ee060de2d6871f21";
+ sha512 = "46fccd1f9f521b37ae4810535da84ec26f1de3a454f1e76d7652ed735fb91df043109597b3ec2d155ab5e47a2bc48ee1b2f54289514fd81503910f6a97eda8cb";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/rm/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/rm/firefox-71.0b6.tar.bz2";
locale = "rm";
arch = "linux-x86_64";
- sha512 = "0272ede3149ece3f87192f8cdcfd74313fca17fee53c3c86dedfe702c8157257f29931c14168ac11095f0b0def077f267f222919cd7f4b5ce020797c36c3c603";
+ sha512 = "7c8e478956cbd25f249f8ae61bf1749d0b6f40a18d35d7a2e0427cb9f7575f32ea2ba69e8b1240eed0ee382914aea93b15184fd7d0a3aa0af2530e0b3da948cf";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/ro/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ro/firefox-71.0b6.tar.bz2";
locale = "ro";
arch = "linux-x86_64";
- sha512 = "b58e3742fa43d52f737285c60e8b1237fea5158cd096450bb6187ee10471af0a77025fc526805c0ae8ddfceef7b7505dc637c8f72ab4188db31d0ffdf11ba606";
+ sha512 = "b42acf347fc1606ed4fe53b054b6c662aa909a734d6b9ccbd7f6d0fe42588504ae2a36e292db6229638b71228032189735ec318e745d187ffa5ab7087458749b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/ru/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ru/firefox-71.0b6.tar.bz2";
locale = "ru";
arch = "linux-x86_64";
- sha512 = "f0086698a2deea24dd1510da377ed9094273a7867a920b0d05c6aa47d4f4c5042519d02c5977747df05a416a4bf94aad0a52a0b03869e693f621959a0f980a26";
+ sha512 = "f3f9a1501ba4a3ed69c0bec569d5fd585bca4bbc34d5d7b92a9b6c7c299e05201b4fd5b45c9a3d8c09d16d6804ab2a76c22a973e2b730ff33c03e325dd4ee4b3";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/si/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/si/firefox-71.0b6.tar.bz2";
locale = "si";
arch = "linux-x86_64";
- sha512 = "4b0018c753aacadac60961b1e4a793b6a0f36d2f8844ada2515ad8081822cbb869ba23f7a69143af860ad060d86e7ad157a41609c1fff0cf481b45bc55a23c0c";
+ sha512 = "99afc39d22bf30818da8156648face1eecaa8413f923fe4fb14623226c50afb437e39d908caf43e7a7c78b4ab4c66860a03832f33b012a5c1fa6c26e936e99e6";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/sk/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/sk/firefox-71.0b6.tar.bz2";
locale = "sk";
arch = "linux-x86_64";
- sha512 = "f19ddd306e48cf04bd70b008fbbd6827045d332839458126ea16393b04e6b76dc8397ade3bc28f5798ef24f27c9dafb578808f3ede8808609c24a8bc20935448";
+ sha512 = "3c574962db7e38169b01179bc67af5d57296918adf009512ab494b6672ce95bda10dc9a6ff88f5ab17d414335bdd97fca5b75bcf0f4408a26a9eba83c052f3c6";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/sl/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/sl/firefox-71.0b6.tar.bz2";
locale = "sl";
arch = "linux-x86_64";
- sha512 = "104f68ebf03ca5165ad9fd049beee70658156ae80b62e88e2342e845ddaf5603199d3ad66423a08766fac2ea2db07766e66b9e09b9e480af4cfb08e680d5dfae";
+ sha512 = "c266949cec012d11e13659e60edf9af6fd24434b0bc71bc7c1b50fb3e18de984ca34d074113949d95e7ce1dd759c7b081e8a336c73e7a84b146eec747413b222";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/son/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/son/firefox-71.0b6.tar.bz2";
locale = "son";
arch = "linux-x86_64";
- sha512 = "4ba381efa38f56c60a7c9afd625514c2b93cd89dfbd3e99968b89b8ae57bc8344f5686f6e7c87d8b21136d8f72e4c61af617152d534b749fe0ee731220b60716";
+ sha512 = "7b9f060acf3b4aae96a79d7fc712803cbc51a6b38e5624371523f9e45169f838f26f1848f8c39f644cbb7409e76c835bafe02152e981034202c50222fa1fa87a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/sq/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/sq/firefox-71.0b6.tar.bz2";
locale = "sq";
arch = "linux-x86_64";
- sha512 = "8a3a3b1a8a48e8e681ae7765d8a0e9fce8f87f3e12f4af3fa4fce3dac0ef74524d4a14c1f802233362969237f893e02d22fd44d7e032ce2f45e69abf8a18c738";
+ sha512 = "3e555168da6e7ce386c7a577bd773879d0cdc725ee2c79151554628212fb4b16a95a88169bbde512ca63f51920e035a27b863b2e2d2a5a636c6e8b1427cce20f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/sr/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/sr/firefox-71.0b6.tar.bz2";
locale = "sr";
arch = "linux-x86_64";
- sha512 = "6ee469e7a091662d62250f17c7d45810f9db853571185364fd7e9f561dbe6e6582c13c5faad081769a8fd715fcb0230347cf88e642531a1d7e941072a2003990";
+ sha512 = "b453c4ee3138061c1b5b955639672eaff4b5702aa067f1316f7b42922e4c9ab9a00b8fe60f3bd47c25d300ae048277ac5830fde6898e2cd4e3c7eb9d4ecd34db";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/sv-SE/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/sv-SE/firefox-71.0b6.tar.bz2";
locale = "sv-SE";
arch = "linux-x86_64";
- sha512 = "5ba63456a302baf31a03f129fbbb820a1142a83b41a44829947ecb1878c1b7723035313844b7ac5e950440ba1feac7f14ca1473b1acc75f4899fb2abe259057a";
+ sha512 = "7f859fa052096bf5cbb63716cb0b57c2edcc13f0e79fbcd59cc179f7fa91fb70a99d94f44a5005e3e6d38e88dd58843acf6e5c9b097b5d592ada7d19aa8b7b94";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/ta/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ta/firefox-71.0b6.tar.bz2";
locale = "ta";
arch = "linux-x86_64";
- sha512 = "b9f59f57c74ce57b80268a139bad81014494e9b2fd173be997c5aab61aaccf28f84d0eb1089c3abcf21fb62dff02b1b8e0176e0f4e3adaddbebc5452d9f9a07c";
+ sha512 = "4cd7b5be580a70aee1259a39ccd37e947c8da8be408aaaa9210e76f4744c2d2075525331e0441d14be4a6aa5f3eb8c7e0f78220bbde0db3e521baa3a9696e1a9";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/te/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/te/firefox-71.0b6.tar.bz2";
locale = "te";
arch = "linux-x86_64";
- sha512 = "84130d585c0b0e80007c9c1fec4011c44bd087576d1e351bb899893797d4ee8c9f856dbe4b9f8ad37a2aca98dc46c9eb81aef1cc236947b672f7c6a978f28bf3";
+ sha512 = "685bc8f8ec7274dc402a6f27be13a254ca28b67ee28f151cd0e146db6857d8f54729fb76c3266ad08c47b108e84bccaf8dd561dafc7996f9678a83c4a01d4fa2";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/th/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/th/firefox-71.0b6.tar.bz2";
locale = "th";
arch = "linux-x86_64";
- sha512 = "2a731a0294dd73b113983d70e4c5a779fdfd92a855e635655aec5e2316a32c97812dced18c04820c4332ffca63805af816df5e7a180d9c8108eb63f4339d8578";
+ sha512 = "d5167cdf3d67638772d474634c690bda4c3ea136baa3ac28d5113c9eb7673dcf9f38abf6e2fd54b55e5e487ff60f7e33036b7939b6c1add860dd48d9cfccb0b3";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/tr/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/tl/firefox-71.0b6.tar.bz2";
+ locale = "tl";
+ arch = "linux-x86_64";
+ sha512 = "bf49bd41ca1bb1cf03f8b06ce80e518f487359fe5bb93b90cfbc17ecb05aab74f4b68a8ad76c10acffa934a5a9fd5e257a52b9705e3f09e81343d142afc773a1";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/tr/firefox-71.0b6.tar.bz2";
locale = "tr";
arch = "linux-x86_64";
- sha512 = "5e1f639a0807cb403bab8157b3ccc0806d3704e27d2e682ab56bdbfbfa488b71d454dd983f4c9cd1754cd1173ff6e14f097cd2c8db5cc7075a63b94871dfe94c";
+ sha512 = "f67ad1441541b02d77eed6ec0e205e36aa585d70a85d74c3704e9fc95126ca4ede76807c62df2eb0659ae24ad8a79bb6857299a52dba432d0cade8b3091b6db4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/uk/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/trs/firefox-71.0b6.tar.bz2";
+ locale = "trs";
+ arch = "linux-x86_64";
+ sha512 = "151772f684075ca2b24c98e35405b8cc54d878062a3d5bfe5b49561a0328a2d9064780fbc8aa1368bcb53957c208a102859accd35ff3e09d23a0623886ed24d8";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/uk/firefox-71.0b6.tar.bz2";
locale = "uk";
arch = "linux-x86_64";
- sha512 = "33ec6d4c9ecfeaeaf5659b809faaaf60f24382f2c8918eb4bba81231c12f0c8049bbf766fa3a41a8947e6c745932b4e908f158f6a532c473cbea3c6a833e8d29";
+ sha512 = "f27019219dfa6b1af09971aabeeabfad7343a6e9e034433a366bf0b85dae2a070c4236115a645bcce433e8a1ddcc74aa33c06f3e1526a665d7339c730e2d8b6b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/ur/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ur/firefox-71.0b6.tar.bz2";
locale = "ur";
arch = "linux-x86_64";
- sha512 = "2b06b2b145593f6c3cb74b16553aff15b8d453b3ddfe6a8ccaf2cbfa0beec3274a2b04b10373c5420dc67062c246d484f099ca3dbf1fa94ce0dd6ab6533dc066";
+ sha512 = "4b6b3c96dabeeb3ce6b814ac28f8842fb8a991586f8d9e24d8f04c4771e1e930903fd486429b028177fda3194a40f2d68ae89fb55ba632f3d778635bdfb61f10";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/uz/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/uz/firefox-71.0b6.tar.bz2";
locale = "uz";
arch = "linux-x86_64";
- sha512 = "86b5066b07f8b80dc86873f2f418a4526e386f65711199008538ae192d9af06cfbcca1132cc95007b44a9ae1afb5a76de7a2c4d971b59177e097b4266e075fdc";
+ sha512 = "c236ecb253b724715b66b60ed15870c7190bf53beb8c0aa3eab7b8f9770a35d07c4b07d7e947e548274ab636fa4acabc89f8ed9db81b347d6d01c3741547773e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/vi/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/vi/firefox-71.0b6.tar.bz2";
locale = "vi";
arch = "linux-x86_64";
- sha512 = "c474e765f85a145d4fd0c9410305e56fc8f32c6eb9c0ae139aef48e1b35ed4eda941c92d3030266d38738ea559088ba799db1c937a0fbe3867583beb4825a93c";
+ sha512 = "34716693e977408908c303e69a72fb9a3001ec4683e848bae2a22b050f446ed82509cd8bfbbc560bc4fc14d13da673cc56ac70b0dde8e719266697e043ae90b3";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/xh/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/xh/firefox-71.0b6.tar.bz2";
locale = "xh";
arch = "linux-x86_64";
- sha512 = "2fd1fac92f3bd260949c0851849424fce5ff56989e7c9486ff11702c85514929c49952568ea45d0e2889e806f6ea1556748b475646c90647a92e50716b1250fb";
+ sha512 = "634514944739f748afb01379e9b0b7d902cd367ab3dd72eb08442b0700c145e3239f0fe8a4598bf123231b5430cb4cf17e33dfb56aa6aceff1d833efd836ce52";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/zh-CN/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/zh-CN/firefox-71.0b6.tar.bz2";
locale = "zh-CN";
arch = "linux-x86_64";
- sha512 = "b3d7786d3883a99ca1833905ab971aba5a4ed42fec451bd7d5664c329a4deb495afbf00975a7c9935bff42b42c828d830984d389a6b0b728586dec9017e37fe1";
+ sha512 = "5f57467a2b3bc1346c503d7ac7452a063daa5656c8193495046f80296140d648f50539c5f0c9af23155498593da54f66e16f4ae2ab72637f394859e74ce3c990";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/zh-TW/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/zh-TW/firefox-71.0b6.tar.bz2";
locale = "zh-TW";
arch = "linux-x86_64";
- sha512 = "67d506a05c404911c3b937dfef3c696ae6d3739b3113ad288b46b9a995028d48ab7c7dfbfa7a735f453698dc1b58864aed7b718f3b81bf42d3e8114180743692";
+ sha512 = "fe5808270355da0a3f6bc8b1522f8c2afd79f6f68842f09ff7db9d67ab21c1c683ab65dff9be7a666da9b25add657f6ebf8b080e898e8b2822612ba7b1a53dca";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/ach/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ach/firefox-71.0b6.tar.bz2";
locale = "ach";
arch = "linux-i686";
- sha512 = "8115dc00b12319c89463a0c97c3117df8109d68372ce91287bc382238d0f0a6d2795d8540bef5ad5c5215f237bc1b23e4e9f11a63ec8aa32b80e0a501c27f534";
+ sha512 = "f4ca9cbf830c34b0287f92ec7683872b93cfc29a559c56e29fac686a50833e31bbcd2e22eb5ae5fe345fe8110d50d6be2c8ce32968aa74a65543e701ec2af6b7";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/af/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/af/firefox-71.0b6.tar.bz2";
locale = "af";
arch = "linux-i686";
- sha512 = "1bc5809edf99dea1ecbd942e92879139056e1d5bc83512c84fd110b227c37f76997e1f2d00f4471f03cc00cecfe4e3e2e62af858641539c08c4685a6986baaf8";
+ sha512 = "31de89d33fce172551a3a7cc1047b06d9fbd199d0e9a7ca94434ca1f050d0cebe0f3c06b1703b2e6ad7bab37fbaffefde5ec661bb23b1b470b82360f4f08d471";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/an/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/an/firefox-71.0b6.tar.bz2";
locale = "an";
arch = "linux-i686";
- sha512 = "7a1abe0ba440d50362ec550da3061df3d2e498f94587591cbed920c7348e2da6f8fbd087bd3fcda2462e18722db0b0c2ec129aee8562670af44ecb333b2a912a";
+ sha512 = "a5f1346cd8e74bae67b3a7b0ff7350b4376b4fbb7305932c333767e5625fb1a451daf3004619fe737d7d479aed09cfabb9323e32ccf1d980f369f7763520c515";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/ar/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ar/firefox-71.0b6.tar.bz2";
locale = "ar";
arch = "linux-i686";
- sha512 = "89adee7c9ce7e74ef7890f3b8ddabea3d6e06c90db695f3d19af64b7c6602f9d80cc2c2c6d2958ffe4909d734507074f658cf4f04701e5ddfa9a9a9d4062e21c";
+ sha512 = "87eeaf4d620a643bbfbe8f710612aa12bbaf2162f5e762263714f9ecc4a6fc75896c4d8145089775c24018491a9604d9b67273d43e96ec206518c42b978d8037";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/ast/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ast/firefox-71.0b6.tar.bz2";
locale = "ast";
arch = "linux-i686";
- sha512 = "e20bf6a66f67713cb3225b8f8109c4d44943102d2a37571c3489b02d88d5b677d2465e2bd51783e720e5f31b59ad51a1ba7ba0cde723e942059080e840c63253";
+ sha512 = "b3b169892ec8646abbb22ab31d24337f4203c8257a0827dbef0ff396fb5219af47e68e69f90fb874f4f09bb2144cdf5c8d5cf7d0f484b755e5ecb40c19c3a839";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/az/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/az/firefox-71.0b6.tar.bz2";
locale = "az";
arch = "linux-i686";
- sha512 = "30a25fdb3280a740c11f9b3f53f871fcb294e83377fa1f6cfebdf939a73df583d8806470eb62d3174603a29eba599ea5c6d5dcb4106f4afed18a899dc30c1170";
+ sha512 = "569a81642a725f184cc0abbf573bc92ae21efec93dce73572f46fdbc0319caa3da6a9f7e5066c7abe74d7636f27628ec5a87d243ff41a483e8f2f9eab6fbbf0d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/be/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/be/firefox-71.0b6.tar.bz2";
locale = "be";
arch = "linux-i686";
- sha512 = "485be4d97719bb771e25ec80f84ee94b7ac5741baf4a08a06a02ca54fc915d7c2a54ead25a0abc9d40145cdb7c1a34ccf6a727eab710a29407ab5587f6a0e778";
+ sha512 = "9bb66208dc81e314fffe537fa229abc401e5d55fc6070e773d6cd167cc719019886b96625796bb20590e4313ea422d814ce4e2c6ddda8064ecf2d42bfdc2ac71";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/bg/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/bg/firefox-71.0b6.tar.bz2";
locale = "bg";
arch = "linux-i686";
- sha512 = "14b2380a52cfce2dddc48a8c0cd52ed31d01f3c46728aa866e0d05360f9d078aa7f59ca7bcc33d0ca7beb60c81780d5def46e1b05786164a0123d95b80aa100c";
+ sha512 = "04f7a77b716d77e56d1f4997c6fff775a16e2bee5cb7a33e3aa87677b08dc5e62587be072d639bf383454a3e4d5cdb656589c8db1b42a79244e2103cd54be4f3";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/bn/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/bn/firefox-71.0b6.tar.bz2";
locale = "bn";
arch = "linux-i686";
- sha512 = "1ca9adfd64c8194fcb7014cf48a87e171d5fd667515a972259e9bbd5ae436470a64c2c03a7d672c411bb0644bd962e41f60dd5385a5c04aee1ff7a2f5b847eb8";
+ sha512 = "c3a03115b7f7599d2e6d1bdcee8fba27a967c05809bb29826dbac670b092cb6e290f1f9bd955b880fa87b99884530802644b1d32107ddc1704cc31a42452a570";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/br/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/br/firefox-71.0b6.tar.bz2";
locale = "br";
arch = "linux-i686";
- sha512 = "e80b7a6ea23d381b416af92502b74de117eaf406f139705390b756c604b58fb874eab389da7d4adab4a14925b53dec66b768892a12324f2f57979ddf9b3fdff7";
+ sha512 = "2a556badf0e1a64b1dd1e47ceac5e3e8be24998eb4373e0fc03b63518200d41ddc5ccad4ee679993c80a63b63c38e3c4cd28b2a3c96d344210bde628e0d6dc27";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/bs/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/bs/firefox-71.0b6.tar.bz2";
locale = "bs";
arch = "linux-i686";
- sha512 = "72b3c206cbf559784bd2adccf3a24f85f840e26b4975b3b0a2796ebd5c1ecb2bb00ccf6c1cfd7fedca191fae33f6abbb71d742e00e74aefb7b4314c91c0bf0a1";
+ sha512 = "909a21a318738fddf063f70489ac47648a16f666ce7ff93b152305fd3f932db939b71ee75e27131451ef14e3e0d5deb0c33cf4e9f0a174e1b369192261e28624";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/ca/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ca-valencia/firefox-71.0b6.tar.bz2";
+ locale = "ca-valencia";
+ arch = "linux-i686";
+ sha512 = "e7414535d0a0c0291de4076242dcf3e44405408d885adb551c951600f2565d524080064c8ad7d475d8e3e884667b99f99fd55df7266e9bd453c907216fb1af75";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ca/firefox-71.0b6.tar.bz2";
locale = "ca";
arch = "linux-i686";
- sha512 = "450f99474c8f86c5af4bdd210be09a6c05d9638aa9efdcabc8a0d636d7965033f4b885fe6a48d22fd50b6144fe461fb0f5aa7870fecbafa9f1b8cc769465099c";
+ sha512 = "cbb1fc6cbe4a051afffb4c67d4bed4b97dd4511da4ee283bfc27400550a1a4cae2984f847892dd271472e6f09970fe5229f137220544785deca837dfe6f241e9";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/cak/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/cak/firefox-71.0b6.tar.bz2";
locale = "cak";
arch = "linux-i686";
- sha512 = "dd9396d37038bef1a0dc8b052afce384c83c7aa9ab9992fe6eae879b6721b251bed5c12f7b1599de86658e16829bcee15b411ff8dd40bd8afda29ae5996bb041";
+ sha512 = "79cb0c91bc2d6567bdf0ef38672f35f1c5a484b8decf9efff8d9f907b26b5cad5bfc71c171185da0561abcc92889cfd7a8fd974a532cd9acfd6cc8e6bdd68ad1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/cs/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/cs/firefox-71.0b6.tar.bz2";
locale = "cs";
arch = "linux-i686";
- sha512 = "bb722cbf74437cf3ac9f870fcdfdba191334c3f6970e1ab0b4d0da8257e60cce09d65177a4f81dbbf225e73b03a8616aef4289a27f25440e2526d96a501443b1";
+ sha512 = "b1a5d5619eece10b1d7e70e14857a0965175294808253238e3ab432585662d3c16c56bb6bb989225efbf271f1d4eecb3d20fd4561b0e8994538516d54fc9386b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/cy/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/cy/firefox-71.0b6.tar.bz2";
locale = "cy";
arch = "linux-i686";
- sha512 = "e6c0f84a810005f2081ef8cd88b94e689caf07c5aa08b4c2f9ca5d5cd071a8e37d1f572c82b262f3e26381a6097c54ab80bfc4a0d09924693937751c7a1d79d8";
+ sha512 = "3e06fc68797f371f918ed10b93f6984780e81344dfb014e790e02351d8afe72974c8234533683ec87d9cecb6e0ab49f5f1b7f61c9058c4ac275a5f79627c5827";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/da/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/da/firefox-71.0b6.tar.bz2";
locale = "da";
arch = "linux-i686";
- sha512 = "d209f91aac27c9cc0a075cb51ed4f9d41aaa74a7407892ec45ab2ce8c09e77a725fa6e8287988cd53b0b681be785c04babe13e19e63c25351cc6cedd84156a24";
+ sha512 = "ee90213314fa0ad3267c97eb00cd81205cef1df09a8cfaf162d707d8d3dfcd95e2ada11cd1458c988a7ab95df7a1eac55f7e2b3107c26690c39dcd5d441417ee";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/de/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/de/firefox-71.0b6.tar.bz2";
locale = "de";
arch = "linux-i686";
- sha512 = "64b843eed8012fdb91fb6573e2e7e8900e3d3ce2c476a509e1171746261ddd1c15874d539e416d5c0607b34e19b01d56f2d497e4d09c595d29febdf3461094e9";
+ sha512 = "9f1aee93429060eb0fd60a19b7622a4bead16b8c3609a00afacf7e41f437f6e2e75cc2b4bf7785e77d6e1bf1e51899a176c5fda3b3b88ca549da903ebb3ddfea";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/dsb/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/dsb/firefox-71.0b6.tar.bz2";
locale = "dsb";
arch = "linux-i686";
- sha512 = "27801c40f75cd6824af2f6e583b99396c07baaa66c1aed6bbd7382fa85b7969ebedb6877dc0a979775ae153c4274dcb970401cf5686bf681b3858009eb8059f9";
+ sha512 = "80d3b7edac9accbf47cacf8cd3e31b0568423b7e133a347508ed1ec6862d1f4a6558f975fe0bbb762888a25c37dc10e9b20a60ae9c4d313918bfb7f85cd0328d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/el/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/el/firefox-71.0b6.tar.bz2";
locale = "el";
arch = "linux-i686";
- sha512 = "7c4452fc29cd4a2c6516445fcca6c470f9f8ee81ffd600dae225eab8857ec43593f85b182b2e252cd04f3a6279a86dbad71ba0c2e0b723cd6d8c4a354b3cc582";
+ sha512 = "46f7b8931354ab171d60e5871091a0c214f0f9a7f4689ad8a59bebf48343cc390c4ab38840d21536a3c32c1cce59307402e542cac5ed056efc5f33009f6ead17";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/en-CA/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/en-CA/firefox-71.0b6.tar.bz2";
locale = "en-CA";
arch = "linux-i686";
- sha512 = "53e7855ab3575799e96569115cf5882233a31e4af1e15009b85593c7fc086e85b7bdf0148694789b816e8a469665f82cb5f1448aa4cdf160a5f8abc97f92253a";
+ sha512 = "74ee6da165e6e35d511b9d0a715d4bbc85541014728b1bf8bd526a3ffcbd5794afd9f00d8298ed194713a9053ad514434cbed7d4e34a342149de9f2ee2e0f126";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/en-GB/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/en-GB/firefox-71.0b6.tar.bz2";
locale = "en-GB";
arch = "linux-i686";
- sha512 = "db512b8a4a6a46021e2a24ce0ead90d8f56b9eff756b9b1a6c8cc1290a96eb51d763d96c0475c7636b9ee9a88adde7f3c81eb9366e3eab3448afc60e2a060108";
+ sha512 = "1c84689bd6861752b2bc4530b4eeed8809b37f02dcb57d01716cbc347e6e161615046e81680db751acadd4f8d46e83b0d5c00b0702c7ba522148e89313a47b31";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/en-US/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/en-US/firefox-71.0b6.tar.bz2";
locale = "en-US";
arch = "linux-i686";
- sha512 = "eb6ed30b684c016b947e3354da57b5886b29524b57f4bff4e071fab5d5ae978b94adf0572e74e9e31e15e493098aaba03344b632d0ff71145f90a8e5c7e367d0";
+ sha512 = "1750ea484b386b845e299b4ae7f7d3e6942ba3c765d09c6b94dc0d1d7da011e17ae05f84f379a0fceeb6df54a3e81f61f5c334886feed094bb630d62371ccc1f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/eo/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/eo/firefox-71.0b6.tar.bz2";
locale = "eo";
arch = "linux-i686";
- sha512 = "b2b343ec5448978d9ecefbe1c73c94e8d578d875dffa09fa3739c396c3a09ddef4bebb7bf2f5c12b1bc39fdd3b8e89185c2a514422883d0e8856af854369a501";
+ sha512 = "b67e3423ac2801dfd80423b5faad2b1a216148fd5149fd787827f03745061d808e77ed352e21081f033129de2fec94b0951a16435357ced8dab23a8594e766ee";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/es-AR/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/es-AR/firefox-71.0b6.tar.bz2";
locale = "es-AR";
arch = "linux-i686";
- sha512 = "fbcc4138161f11c0c61eadfef889a72aa691bc5b9db961a52cda092b638ad5d2313fb5934bcf2dd035f225971bfe1561acab549da61a7aa885191ca2c3112d7e";
+ sha512 = "222aa7f906ddb829d6d95ad0ff64f080c26766f4ce83ba971e0e2a8996e471398882de24cae3f3fb51206c67ee7e1022d8a7d3d86ba70fc3147a2b914e4186bd";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/es-CL/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/es-CL/firefox-71.0b6.tar.bz2";
locale = "es-CL";
arch = "linux-i686";
- sha512 = "ff8908b2c09877a2c7cbb0842e826c51069234656efc9b7964c2432e3d61154596cd63864a3a6b331fec68ece3118e5cacf9014389806dff8897933d584c537a";
+ sha512 = "9cec91d7c17c7c2fdf2a2507e71cb25c10b997de98f2a4e33a4fdf8aadf39c2ad9a539b15413a76dd86f8a0c370e8fd7ec1822cb3eab9917fe4395b57a8123ff";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/es-ES/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/es-ES/firefox-71.0b6.tar.bz2";
locale = "es-ES";
arch = "linux-i686";
- sha512 = "1546d5d67b1b4c778d137b35189470c1aec01e617c2ea8b52bbd58c636b5e2a262db5a8f02bcfaa45ad1fef499d9c9e135eade38f3daaeab6c456e52458927e7";
+ sha512 = "f609a5a48417746b5c64f9765c067648581566b8ef3aa6935a9de9f08df12034f4e2f0af839d76e2adc1646244ffa58b1d50e4b4f8970ef043985c3e60ba9e6c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/es-MX/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/es-MX/firefox-71.0b6.tar.bz2";
locale = "es-MX";
arch = "linux-i686";
- sha512 = "da8809ae2d281547be55b0d3db4c779758ecd5c2b8204f54f732708816fa1d653f593e9e0bb24136213f3d1e94dee6394e47326b74be2401ba59732ff4f8dff9";
+ sha512 = "34743906e3f6f7add3727c876f44aa21af08c178614940363cdf788fe54dc20a582c7d36eaf242355cdf31664aed7d807c8acf361aaf535d97e4ee06e4f4b219";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/et/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/et/firefox-71.0b6.tar.bz2";
locale = "et";
arch = "linux-i686";
- sha512 = "7d9cdace25276f868e853d7b964d1fcd18b7109d4072db49984d5d00628c9910c99cf494304fc962245f8d551ca9f95a603dbb1cc48f655b724353e869237218";
+ sha512 = "ffab3566060d248bd7c113f9ab462d6226893269eda244dc1e4c609456a987cbd0f66bfcd5478f097d9748eb0499e9d666d147cb989a3084a74a97dab5193afe";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/eu/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/eu/firefox-71.0b6.tar.bz2";
locale = "eu";
arch = "linux-i686";
- sha512 = "e3f8db0d5be3fbec65d27c3cd4f2272fc5dec401ca19a0fd5bcb7b48a196e81752d2b1c6b72bc94b3294ee09eed58b765790663185973ab34fb7816c38570ce5";
+ sha512 = "3ebbf87b65150cd8450287341f2357c8e8c102a80b91b61defd7800153e3b53f44d93825504dd1f818b82548835faa1324643bb7e484506f0b193043994c957d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/fa/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/fa/firefox-71.0b6.tar.bz2";
locale = "fa";
arch = "linux-i686";
- sha512 = "5be17588077f86e6766e1c257b73e8b81b2213f3f9079c01539578a6480fd07a90d4129af77f81418b4dca8278c44bdf997b3e0686ed1c2e8e4a5269644d21ec";
+ sha512 = "4ca347f377339c31f75c5dae713589a834f4f50d594a060cf3e2c07d1da8318013302f23f43973e0db8cb3f3cf42abfdba0357a085b8bb74fe9851c5c798933b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/ff/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ff/firefox-71.0b6.tar.bz2";
locale = "ff";
arch = "linux-i686";
- sha512 = "57f543f448b8a4abc99201eeae76b0574841a5c7815d7303844b5cdcb4a5668fa03483d9a2953f9a56bbe175f8f82e94b4aa58d77174e5ca26c8755c25cc6c63";
+ sha512 = "595763867baa20475057a576171d6ef3c1399a29c7a80a1e61822ddc71670a3ffbc4aa8b99dd857d91fda1e00ad1aa129bc79bb0cfc9f53f1147bb6c0c9114f0";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/fi/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/fi/firefox-71.0b6.tar.bz2";
locale = "fi";
arch = "linux-i686";
- sha512 = "bfb0d7c4a4e4d0633879f79d8ad5a406e7e3d57f80ab1f1eed671ef85ff7065afa826769b868c90b8e90b87dc012016b419eb0a57de344ce51f49bbf61094931";
+ sha512 = "92dc11a2e77b7286932067f3ac45f4bad752fbbb2649dd6ad9b5e5dde2838e4881aa26143b77775964149e2ee877dc5f38da2d203e1c04db1b1e2f24cb879768";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/fr/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/fr/firefox-71.0b6.tar.bz2";
locale = "fr";
arch = "linux-i686";
- sha512 = "b944d8473f8c7a859b738d78140fc6b840ae7798a3a0e8c237bd81f411f87129528ddf68f33da6578547fa768fa1465625dbc4a94f265491722bd4f23a614ce7";
+ sha512 = "37e23c8386568b68603e499153e3e258a56af45eb334255023b48c32b8dae32145460b849701def48ddb812314bb0c881766d68219408cebfa2e518eab2900f4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/fy-NL/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/fy-NL/firefox-71.0b6.tar.bz2";
locale = "fy-NL";
arch = "linux-i686";
- sha512 = "445018db73c97ffa87377bc78162cbe2f31dae2ffbf47ec9e0bb42001e5a15787fadf4ce2d4027693eaca4edbfcee72a7e3874594d3409384df62c91b118d388";
+ sha512 = "dee303e4b71814940f8910c6ed2686cb388e4c63d18fb88cda4437161f9fe60f65cb5c6bdcefeac4f56c321dc60a38ad77c2b1e2f83edfc54d8a87ec1f85abec";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/ga-IE/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ga-IE/firefox-71.0b6.tar.bz2";
locale = "ga-IE";
arch = "linux-i686";
- sha512 = "2a6b8f3ecfacea21415daa0dfc8e3797b5c3567e7e7bb9ec933525d2a2e9e51dfd94fa81477878e2bca68f8127e32e387f43ac8ceb0c02622813baa5b17fcf08";
+ sha512 = "408bbb2f7cb351505330132974267ceaa90a86aef27d6194338810c40770bbe54d72945b1cf54a2b59d87331480d5bcf5ed6c327c65e890126ae0003840e4f18";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/gd/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/gd/firefox-71.0b6.tar.bz2";
locale = "gd";
arch = "linux-i686";
- sha512 = "474d524fdab0d83bad98e0f05348d8db0f49c11f2e50e7b5221137359e268e37e662440961bb206cb2ee44aee9d07b4565bb8b27a696ae0df89ceff76309820b";
+ sha512 = "0ab9ef7d43cde2ae8042ccc16b1f82552e5ec09d9ccf23291bc19b2d53524cca34bd61c090c317b0c5d53cd93d5a994b38a3abbe636338a7a508966f7404da2d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/gl/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/gl/firefox-71.0b6.tar.bz2";
locale = "gl";
arch = "linux-i686";
- sha512 = "ba2dfaa33b47ce1106496783bde98b1ff7cdb0171262feb8890a6ada29a67c34165b8b7ab58aabb89029d0571a6ff8cc83b14c310270e0e7a725ffb9fd7dccc9";
+ sha512 = "71711dc42fc674efe4df9bc1eb3b3f51a6df9eeaa919d21b65585e62fc6fb33f357da9708f25b7ae2d111353302b06230fd5279749788d8c06d802fbbb6b38d6";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/gn/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/gn/firefox-71.0b6.tar.bz2";
locale = "gn";
arch = "linux-i686";
- sha512 = "e5f5bf7d20eccc3d860ae2b8c6aed372944f23ed6d7a41774141cf1d67ab40c8bb2cf7e8e5931d37b9951668f03c6ab1271bb57ca7ead9aac52045244fbce93e";
+ sha512 = "dd810f573d203220c588f1daf82628a62e771a8a5186d467675839fe94774f9c7a5741a8066b273d62f79ddcd9ac628248e651ffa379f7c7b13ec52375315573";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/gu-IN/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/gu-IN/firefox-71.0b6.tar.bz2";
locale = "gu-IN";
arch = "linux-i686";
- sha512 = "9ca06aafebb4ae5a65af94c7fd4dc30bb0fb37d6f50a8a8d0b5d3a92cdbfb7a6a5fc609f5f9d93c47cbfd811198e19ab554d47cb7a03db5a9848135660b17f43";
+ sha512 = "c63b5ace09a07075cd274bcc9487cc8c8f2ee738b42b5206354d997d1b29ec8c2c83f3dca89902e90c5bd7c5f96b2e4ae707bf6ef519d8f6d7a1d979523c5bb2";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/he/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/he/firefox-71.0b6.tar.bz2";
locale = "he";
arch = "linux-i686";
- sha512 = "ff9331af69d497b9886b7fbfe3954c0149e170973c96d0bd23252e0d9f97964f88f60e8258785337c8143a5abddfaa4da5d1222b27c42e38686ec44c738521a3";
+ sha512 = "c46460435482c73884d62ef77c8f92d3b09a2bd4b4485b1ce4f48d80e9695615df42869f1b5cacebd7b9062022cd7868bf25ea0995457490057667144608a4d1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/hi-IN/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/hi-IN/firefox-71.0b6.tar.bz2";
locale = "hi-IN";
arch = "linux-i686";
- sha512 = "d50d6887657b6dd61db4d53c0008e42850000d56a56b53532900cd6384c64d029a7a276386a5b46aa74b05c5597a4782f586b27cb01d34058c124c5bb58faec9";
+ sha512 = "22e6d02c3934c6ebd7bee848672ab28d8363bc178646d33254e9fcbbd6790c92b121b36c429b6aae422e4cbdeec26158f0a1533dfa601ed465659c706f7b934f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/hr/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/hr/firefox-71.0b6.tar.bz2";
locale = "hr";
arch = "linux-i686";
- sha512 = "d5c5a069cc845544cdc905c9ed3083329b75e367c99accf1986a799a6f69f081565ed0c9e5bfcc6ea9e5c4b606262e60a62be6d4271267094c5aa701f090cdfe";
+ sha512 = "f07d9a3e06a4957a0d614bc45578c497a9ef2f21e39132943840d6bd6d51aafb5a88925fb9b6348f1de55ef831f14a20939685fd79a7dacf0cec42e6281483ef";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/hsb/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/hsb/firefox-71.0b6.tar.bz2";
locale = "hsb";
arch = "linux-i686";
- sha512 = "9b2b8198bfad4f9f1bd5808c2d696abb1473230afa20e42e216c6616821a98cdb6bea6b92efdc8280892e04a0c1b6a967adb9c69fdee9f9c1bfb4f6fd4d17da4";
+ sha512 = "5efb205a729e7ed3d16ec3459f544b138fddfd70cf7494b12e31c9879cde18ba0c2f1ebaf2b9085a9af5e17aa066b48a4e52c959627eeddac8d025bce7924934";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/hu/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/hu/firefox-71.0b6.tar.bz2";
locale = "hu";
arch = "linux-i686";
- sha512 = "bb189556077d8490596acf9433146923ac6a68e26d804fd6946a0af1b247342f5140693d777b9dcda41972ad2ca6773b362381ffb9fecb58826c0353511065e2";
+ sha512 = "4cc9d7c92e285d9100df3ff3e9ce0f8dcf803b540dd8c87835179544dc9f252eab68135d0f67f0626829c918e8ade6826a4ad87da69efcb23e36a85390009217";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/hy-AM/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/hy-AM/firefox-71.0b6.tar.bz2";
locale = "hy-AM";
arch = "linux-i686";
- sha512 = "a295c182fb7bb80d21e551156e8e1d77327311274e22eca16f4640e833a4db21597e3e4b5f64e2d39dc40bca387497ea78e2fa198b760062a33b1cae86c6405a";
+ sha512 = "11c6a61219789b23791461f6f4ebba4e726e5dfc53b7fb1ae2f23b602b75d770edc8399f55bf2dadb863fee5953cb118ee2ec931c3b9a5d4df3b307526a89619";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/ia/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ia/firefox-71.0b6.tar.bz2";
locale = "ia";
arch = "linux-i686";
- sha512 = "9a5f01f6164751f0ed8cd34e9d792fa889a5a7ea9eefcc3e8afba20ed419da984db0983126122c8cc7770f0b34bdf1c39695632f737aa83281b01f8f713b43df";
+ sha512 = "feebcec542b539c41b592116c5dfba3b88179d87d0a83090641079a1705b7c275c1fa8c7bb8dc31ed0a06ec62acf42dd2e39700f6b71b408182870f8c2d971d7";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/id/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/id/firefox-71.0b6.tar.bz2";
locale = "id";
arch = "linux-i686";
- sha512 = "3073f0b719b1b4d71eb07b9f1a62f51176377579cdd8cdb1c8ec0876fc820289db29cb13f049058d0efcb955c15a3c377c4496c458b4b3fe438dcbdaa9d6fc07";
+ sha512 = "dba5e3ee99597d7bb615473b9715b1862bde5e45a631320e6a4c50f1b497a0c42f585ecff67d6728075821f19c83d9497788f7e4cf34573b4139eb2a164de004";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/is/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/is/firefox-71.0b6.tar.bz2";
locale = "is";
arch = "linux-i686";
- sha512 = "15a8593945e4cafbbd4a1b274c652fb121cdbf567031f6919e84767df65eb4f4e42d411b4799b8e5299d6215dd3f1cfef5104c9197c1ff1feb68f89e0bcfa2b2";
+ sha512 = "d2078a7faa0edd5f5210bc5e4c7ee53a303aa6420b8ca8dc1ab764e17e141acb8412bb732457946380c4cbb0199b672a0841cdba3097bfd6e69bff6947bbbb97";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/it/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/it/firefox-71.0b6.tar.bz2";
locale = "it";
arch = "linux-i686";
- sha512 = "55c688602fb41d39cf4e33f96b57ff98d466623ca80281564ea6a4384b1985d29436f7288f56e969151d9873cece10422abf753b262b5ac6e283731397e53e91";
+ sha512 = "55787b6d2cd8013414897da4b279e0937d54488bcef35c63753633ec0f56c8dc0c10508f06e90146e3c4ebe1f381229801a994cb497f2fc1bcbf78f8abab1ac1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/ja/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ja/firefox-71.0b6.tar.bz2";
locale = "ja";
arch = "linux-i686";
- sha512 = "f350eca93c6110e8a258802be4ff1cb8b07e819f2fe3b24e912f296c4e18cafed279ad5ad8eb093f3bd7945b0c9cf5466d673e5b4ae342a3b2d0e418e5e6c86c";
+ sha512 = "02a316992254fef959a1618dba98730270cd751074330e6719fa45ac1a8b2c32cda90ce11b453b950ba4e1c679035c582aa472119676c5ea1bf623fe70367bc6";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/ka/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ka/firefox-71.0b6.tar.bz2";
locale = "ka";
arch = "linux-i686";
- sha512 = "ce392f476b5eb00620c2170cda585e4cf73416a5d564446e65e39e0deea538825f3d91e91e5624c353b163983efd0bf844baa9a52e3e308d9e232d83f9167d0a";
+ sha512 = "f5d93a5c47ba9eb7b1deb7a590a9fdf3d3567cfadae779c44c6360245f371f1feb14d64eb70d1538426a9a6005885d115826c11f673006028eb1b484bf0568ff";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/kab/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/kab/firefox-71.0b6.tar.bz2";
locale = "kab";
arch = "linux-i686";
- sha512 = "ffab6510cd2b68b0b4b57ae1ec727e391a0330cf44c9c1f9fb8bd1385c8dc86f1de5dcc5712b0f0dfa5e25920eadd6561501579ee5d15ade22fce747ba88b988";
+ sha512 = "718cce9a90139abd0027c7c730ac5e5db95922d0960744481e05a4557926b62683df71052b5162ac614648def658909880de1ba5fb71b5b30975b0f97fb7013d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/kk/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/kk/firefox-71.0b6.tar.bz2";
locale = "kk";
arch = "linux-i686";
- sha512 = "f9aa18138713b9b704c8d0d3fd8a5d2c5f802d3b23b7ad89d7f18eb885b9efeee53b94117bf7492a4fe83be19b5052d5ec6fd8f203d96f7988e5cb1eb524f496";
+ sha512 = "1ec72e2a607b302878c30d78135ec7339d2e4a88f1e1f638aad0d21818c638bc6980fcf9b2319d6c1b4a32814a51ace010fc4ec1795415275ea0c6f7782755fc";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/km/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/km/firefox-71.0b6.tar.bz2";
locale = "km";
arch = "linux-i686";
- sha512 = "1f0a4ba8942210a0ffbee2ec09f79d628638f58e26bc83d175d0b95ccb43636c976fba556720b39b42c37ac2fe67bd52c28f0a2f672706d967d09a26c3e446f0";
+ sha512 = "bc378c99b85df9c63e03824f3462ebbd84ece0b10eb4676d4e4c7deecdcb73945c63087628605a3370df4bad9b978c39728a157cfb96eb038faf9a3c65c49dda";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/kn/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/kn/firefox-71.0b6.tar.bz2";
locale = "kn";
arch = "linux-i686";
- sha512 = "c23fc4fc298f88f4aee69680156d95fc98fc311630586d5a2a964c8fb74f2b56483e0b4267b90b1a3f37815ecb379e6583e7c801e57a94236d35e0e68f68bcda";
+ sha512 = "d7c902977156686b23b29c02386a743974e9d903cdd8b15b6761397e0fcaa94b83052603d9c807fa6914aad2101cb26fea6e767dfa101ff7b610751403786c4d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/ko/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ko/firefox-71.0b6.tar.bz2";
locale = "ko";
arch = "linux-i686";
- sha512 = "4dc91ea327d7c69b68bb065eae6ef812ca01c32dcc22048867e43130b15a15edeac505bbf859d96185f90fb3958c74fb0c3e8bbb58c4a0d7856837f864163d7a";
+ sha512 = "a7424b79e8d1ab631dac6dea38bf999cc7c998fc8dc96ac4955c00205d0ca397a57c37cafd74fa431f29e88feb0fa5abc1b8e46dc11d36c932ad1a0c4637ade8";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/lij/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/lij/firefox-71.0b6.tar.bz2";
locale = "lij";
arch = "linux-i686";
- sha512 = "3588c1b35428dde09cc0262d3730407ed4bcf821b28556f7b05fb60250eac006e12ef8a929327a80429bab195632f9f40771467e572dd6821c646338d3c7d862";
+ sha512 = "d80efe8613a1f9d0ed95a71df8245b29e078a3d7eb1ef574953a35018a3198a2f30cacf17467857ec7a943b174538a528cb19b3f787ae5411fdc845a9ace085b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/lt/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/lt/firefox-71.0b6.tar.bz2";
locale = "lt";
arch = "linux-i686";
- sha512 = "972bfbd93200dc87a6f9cb246b30f301c8db216dc9067bf40f42cbd73ee5795cbb276ade5ba44a6e3df2239d481ea305f4499fe88f42a0f7d0071f84dc2fc9f9";
+ sha512 = "b4b93a59ea67315a623136629d66baa46e389fe01d1a6eb2cceafbc8e25570dd91d830fb3a7120c7c59e42d7ce24c23109aeb6a289756797214d6ca80a1661ba";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/lv/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/lv/firefox-71.0b6.tar.bz2";
locale = "lv";
arch = "linux-i686";
- sha512 = "c7a0a65c0649059cf35b394b033b965b3d708531f6a8414d5fead08f2b5e5fd907c903c23e22e9bf5cdc78255e0215dfe34ce45ee96fc619fbca87fe086ed32b";
+ sha512 = "f4e2d4cb15586b96f66818f21b35ee368acbdb5dc546b1df5aa20fb59ca5d4a2dc6ec2b08427af1622756369d67997e9bf8130a6370696219dc6f44e3a2ac557";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/mk/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/mk/firefox-71.0b6.tar.bz2";
locale = "mk";
arch = "linux-i686";
- sha512 = "677e6238580a561fa86dbe1ba8d293aec4d51ee96adea11871e169e1d6ed0c1de29a6a44c374c87aaf93b00178719f142b44821d3f2f866cd43308f7ddc95784";
+ sha512 = "ef1f17ccde55e097ac1eb8a522749d1b8c4f10a45920fd9771676758f59b396372e38b420c11614cbadcf26f1d109a9051ce8266d567c7064d9fdc771153446e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/mr/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/mr/firefox-71.0b6.tar.bz2";
locale = "mr";
arch = "linux-i686";
- sha512 = "1457c464363505e787367bad9b90e6396da7e5d0840618cbd02c1996985fc42af4279ad9f53b6f0014c9f0296f1912ca5bf7832794048e69cf5a7d5b89ffe811";
+ sha512 = "c3a8924dc813d9b34f55e87f984cc735156dfc1b1f840f5867e0539297ab3ec09c008bf44978411d7fc821d5671a49a0a53acde10eea847d2855fff80d40ec29";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/ms/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ms/firefox-71.0b6.tar.bz2";
locale = "ms";
arch = "linux-i686";
- sha512 = "54d0c0a9a17534891267a3dd89682a1ca24dfa42e13c0a68ca67ac800c210f77a1b504d2ea0e16293df31ac716dac2e646fddd6eb4a5996e6cfc9fb578391cf2";
+ sha512 = "1186bd1679a713d2e79d11422332fa9f3e600c1a9ce1e8e26338e06d5ca97e2ee1d2f0dc657a78fa9590dd0421545cab3b08f4cb000af37033cb06c1b75adeae";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/my/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/my/firefox-71.0b6.tar.bz2";
locale = "my";
arch = "linux-i686";
- sha512 = "21a851362356c568d93a24e7038ff30c376d712d0ba52d9eb51ad325d43e6a36f3565b48385b54bd90f846d03b626e96e002264d10741005403ab6d30364feb1";
+ sha512 = "fd99f7e218ebf570ee1dd8473fe9896fce2855b591aa25cbe03f5f78b0e36bc4587efe5630efe95023a16fd87dc5c221916bcaf0a5423e2a7d3f1fbf015c3c07";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/nb-NO/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/nb-NO/firefox-71.0b6.tar.bz2";
locale = "nb-NO";
arch = "linux-i686";
- sha512 = "d625f65dfe643608689b2d7858f06b3e1b06636249be516a76798bfa728827592a543e5e61279c7b8a5e8a0c07a17510232bccc98fa8fdac3f98806b94582db3";
+ sha512 = "fcf0e084f20ae15c820193180a541576968cacb0bba58821547811c761cbe4949f0e8e93bf0713e0d21fce885c5414ed3ff84925cca51e1ed4f5d8df520ae53c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/ne-NP/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ne-NP/firefox-71.0b6.tar.bz2";
locale = "ne-NP";
arch = "linux-i686";
- sha512 = "5d85049a3d8f11b164d091cd7925d456e54db63fb93883e42306b1bde48c502e3ffab120c4f9d05de688086ab94470d4eed827f24689cb1872cdaeca6bef7233";
+ sha512 = "6037ec1a95694c099850629d0048612984e9248622bf7527ffe4fa143644dce7c009d849b46e1ec55d4d33b306fdf9fe3d3ccd78071f63fa2cd7f6038705c033";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/nl/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/nl/firefox-71.0b6.tar.bz2";
locale = "nl";
arch = "linux-i686";
- sha512 = "9716bbc5c5faa1ae284b7182f0473823d265993dc43c4ee59d6c6c17ada6cf7d898dda64cc7647ff65f46984aaf1658a5a3e2c50361d5a731ba6b82844d7b432";
+ sha512 = "ad3ad9dd0df03c5e702f33e67810c32eff250f951970ece9517f1869fc95335d65e50547b45073051b0113b5bcd071052b4a3ebfe1cfa5167ebce4835a976c7e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/nn-NO/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/nn-NO/firefox-71.0b6.tar.bz2";
locale = "nn-NO";
arch = "linux-i686";
- sha512 = "f227cb22ea4d15bdd4b20f2096f70d985cb3d9e174e464462c718a0bc6f533bc0c5bb098dacdb1a8ecc6fb07acd22f5dcd365e266208f75423677eb2bdf4ad65";
+ sha512 = "efdcbf3b646ab11d0671ae09f15060e3f88462d869aafafdd7b2833e841753e1abbd5c115a94a1c9214b277e2d12a85600a425be3b913d1a66b49278b4c762b1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/oc/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/oc/firefox-71.0b6.tar.bz2";
locale = "oc";
arch = "linux-i686";
- sha512 = "0e116e00a58d1086093e321a188c2c060f9dce3374cb7152d753064e170eca302c0698cda110ed12a4e41b669c242e3865165bfafc4463d1ce583d0854e16075";
+ sha512 = "3806bd7ea0343a74fa4d66d6ed30090f9bf33ef3e2bb1c40a55a3ed38be0ad24bfe6d35a4c0bdadaa9100404d7d704e0dffb6f6887210523394fd18c09c6cb4b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/pa-IN/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/pa-IN/firefox-71.0b6.tar.bz2";
locale = "pa-IN";
arch = "linux-i686";
- sha512 = "9966030d3fdb5da3e2f943078294615d64fb019ca67e8fb335693580bd100f6f10ad760b50f7d26c68098a3080e87359dcb1c22ab657c43c23fc2cef3738eb26";
+ sha512 = "09a4b17b01ad77898499b17a3e8c174d1f35097def6d807cd602a5539edcda49c10db27fe98e738a78bbc5932f4bc0d956e3ad296dba79ff4ccce6fa50ae2f4a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/pl/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/pl/firefox-71.0b6.tar.bz2";
locale = "pl";
arch = "linux-i686";
- sha512 = "ffb5a5cffab404ca1685f925580c47eba975d7a26af1ef31f05cf8f1e0ea72d130042f9b11e69427a2ab8b86fe47e279040af95a18869bad0465869c43a988bc";
+ sha512 = "33996f6536932629f0d55c17f93f79d81e9bf2a83246fa5587ab8304ce4ce5b2c7e7151d447701abf3c359171cb45855b28ea3b5fd5c64f65dadcdca80ab060e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/pt-BR/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/pt-BR/firefox-71.0b6.tar.bz2";
locale = "pt-BR";
arch = "linux-i686";
- sha512 = "14956079e61152b99696ab29a92b57a3671519c4f58111999587ab796dd8e7d6805828e8d14a59bad28218c136f282ef052e56daf024ca3923ead95d7eab0af9";
+ sha512 = "6e579f3e70bd30174422aeadd39fb0be373cc5d0f1e34fa75209177466c75710f90a0a3165980f794f4d7a2f701a59b2ea4fdc3cd8e39ddc09630442e09b44d8";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/pt-PT/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/pt-PT/firefox-71.0b6.tar.bz2";
locale = "pt-PT";
arch = "linux-i686";
- sha512 = "cd5fef4336203fdfbd8af89a3cc17a01e88ddd4fd670c3b778b1fe228325dd35fc64ea6d0c85681cc1bbb51c588b53972c85746d9ac0c860b3143ec93a344361";
+ sha512 = "0ca174389788cf9bbdff7b3193c13cb2f1aa83d1d7f967efbda3855d8606d2318b840f65f25d0b7abb5e1466b8b8f7bdf1f4d3a0b33379343510838f447de3ad";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/rm/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/rm/firefox-71.0b6.tar.bz2";
locale = "rm";
arch = "linux-i686";
- sha512 = "33d608066859460da6a50012fad5a76eb78bc4a3f8565dac1753b80b86755432340c6e9b5e13c319c24d89547fd32567ad99853ef7f954aebda9b15e2eddd064";
+ sha512 = "9c2c762724c503fb81e9e55fc3e333caabb81e6d063a756385b51658866c58dc07190f5bebec27e317731145c763ac7aed7fb53692de15c68c78260e3f518193";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/ro/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ro/firefox-71.0b6.tar.bz2";
locale = "ro";
arch = "linux-i686";
- sha512 = "18bb7599738aff68f75dac1a6cd87e6a3a4a326ab64e9bf36f28d3e4890340c07e93b938d77ee4432548c5880b79862d9c472e283f638aa9e2d977ba8f54f686";
+ sha512 = "80b5f9e7d1a9ffaefcf28f7c5ff4dc2f5d8ebfc9274d674c396bd2569e5309ba7e224da176c84a943749a605ca6634f7441c8f81225f6f8ed4912ca48409bc5c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/ru/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ru/firefox-71.0b6.tar.bz2";
locale = "ru";
arch = "linux-i686";
- sha512 = "c1a0c7b717740167f9906a2bec1d81dca2754c7a10f2139bee269bcad6b9d563f5ddd25d05bcc7a0621b910366853aa43663bc6d711fc1fc3b53e407dcbf9805";
+ sha512 = "63910164184c3c81d22c1d6b4450502eca4dafcbe62b015b3bcd3f47772ab482d979f2e34f050e219b5a87466bf3ebeff896cf27055669a2ffcde313e1948701";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/si/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/si/firefox-71.0b6.tar.bz2";
locale = "si";
arch = "linux-i686";
- sha512 = "e807ae18343102df9030189f6e067062421a64f1fbfa9dd0d9e5590e727c049ae849dff2fb581a2f4de892fed21144a792535df188dd08c190c24dd1a58dfbe1";
+ sha512 = "79dd2082a8de6ff7ae9f3f47d5372b0a234441dadd428cafec544dc527b43d01434c49f5cb47da2c689b4b9cf8a45aff7f73064aba470bee84bd2b13af8f1aa5";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/sk/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/sk/firefox-71.0b6.tar.bz2";
locale = "sk";
arch = "linux-i686";
- sha512 = "35f1206c717f5475f4af6ac74bab0b691b21789457496c1226d6ace5d4d0f8f88e2c3467c6a01eae49c013b972e07f12b577be6543219b1a274340639799b2a9";
+ sha512 = "bb2cf2e3546f5d2b5a1c163165ff37461d4aae87db6b7f2b9e340f56dc60c29d806e2b699ebca6b00c1cf1bc8d74db2f72fd3dff9c4a7aeec0a03d93a23af73d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/sl/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/sl/firefox-71.0b6.tar.bz2";
locale = "sl";
arch = "linux-i686";
- sha512 = "d665b46a8e6569e8e0e41411e647d3a27b172cbde22e3d9157a5610dfe559d6648adcd65418c45256d8fb9f56022ebf8d3eabadd9b8414f32565c421bd74e371";
+ sha512 = "25f0f66b27f03c5b2e69f40da350db53a78b756a1ad7dc47453c33a2f6c62d558572f47c8159701805513baaa5b598d31101b7fee98f87f37366f85703033927";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/son/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/son/firefox-71.0b6.tar.bz2";
locale = "son";
arch = "linux-i686";
- sha512 = "e0b22c18364e4394cf982f2cac370bff79c5440a949d5e69ef753bdcab05688b591f3d54e2721507c502f05a094436fcb219c8fa4be33462ffc7fd5090506944";
+ sha512 = "2dd69052b1ea296e9c49a72a4c2f6a00c35f168ad162a86f101a0c6201a19aacca3ec8f98f2fdb13571359a2d6380d9ea9e33be9ebf74271f117becc72b09152";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/sq/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/sq/firefox-71.0b6.tar.bz2";
locale = "sq";
arch = "linux-i686";
- sha512 = "75050296533af930bc1fa4602246b9d6db0aa48d1fce9a53212fc11041a331236fa88f70d8179c9961f09810d06df297d9dcfce791357e8c7db956c160019f67";
+ sha512 = "bbb9241e921837d7393ac562078be01085ede14e73f1179c6e07f59360026f6d5c2220a0067fed096526bb39660dfcc66100c8ecedc42dfa89b93499536720cc";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/sr/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/sr/firefox-71.0b6.tar.bz2";
locale = "sr";
arch = "linux-i686";
- sha512 = "ceb21bac8b36872c7ec47053846e20376884678e7017632164026f0b6a8cc56416cfc4c693229964e287381739d5018836da20f8e5d636aa9607c80567a0c36a";
+ sha512 = "1cea129186274ba3491829882bf51eb4199446b3c894b4c1e5bd010252564d9e0724401e700692bf9c2939074b69751bc7fc988fc63da5f4726a0e4d62837c38";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/sv-SE/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/sv-SE/firefox-71.0b6.tar.bz2";
locale = "sv-SE";
arch = "linux-i686";
- sha512 = "a92b5d28645dd601dd5f8d4892d210bdc284ca5ef6023f3e6660d6519fd8fdf1212e757f31048522009021f00716a1faa3da6e818b3f39ac4b96d68564aabe8a";
+ sha512 = "6e7adbfb820f093fae4c2f2ea9f74e5d1ed91cd5a0f84ef3d53a2efe966af82fa5eeca32c3045ac1e575504e4322ed2aeaa5175d7ded1241d59fd7cafe42231d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/ta/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ta/firefox-71.0b6.tar.bz2";
locale = "ta";
arch = "linux-i686";
- sha512 = "4935baa87058d2c2f87bc4e320d7fb1329c2380c93a72834783d5884e3e374a5b9f80b66fe1824b9d7003ba41b2f10648d8d257c34f71314de0ae9959233637e";
+ sha512 = "9fbe15bc81d2c7ea84c50f77e209b07df049d740ce0985fe3bd3457aee87bb59ec60bd61700909986253d022332e536139e6c637d4cf7ff67248397fd13ec76f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/te/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/te/firefox-71.0b6.tar.bz2";
locale = "te";
arch = "linux-i686";
- sha512 = "5aef655c7d736d5c4cb91a6ba7c0fff7c9adee6dfd96b57f5c1f968d258fd7707a1b1ef0fabc049f2902085afd55455d016d9a786e94ef836e6a6379f33bb577";
+ sha512 = "5ec78316c5f940dad34b8a847bb7057196dedd28235dda8d25f9155b2e6a660eb3639a95699cb8d8dbf90ccb2cb8d840f96d6f6821317fbe5cd92773a745dee1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/th/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/th/firefox-71.0b6.tar.bz2";
locale = "th";
arch = "linux-i686";
- sha512 = "1bec6b20ae731e982a4be6aac81bbfad2d27add2fc1339401807fb41af36a27391499677355f0737a9230466e27f34bd5e97f4b3697decd56ffe854b932900a5";
+ sha512 = "98caad307d4e72c3c1225249055b9039582a90c0a68b95c6ab4781c3e676833111de3dd88f4bf6280569e32ad8a8413cc7943a0e4b1c22abd1e59fd8463225de";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/tr/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/tl/firefox-71.0b6.tar.bz2";
+ locale = "tl";
+ arch = "linux-i686";
+ sha512 = "908a3bdce2d2b803ae50adf856671f2f1a2af2c4b7c603e6be166adc13028fccf2f8b6cee2dbafc20050d6cc1cad52ac76135200da32a859657a7f6ad175fdf3";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/tr/firefox-71.0b6.tar.bz2";
locale = "tr";
arch = "linux-i686";
- sha512 = "ccb0537f3cc85331037070761e4b450bdb07215d024052d3b946b96deb89ae30333c3b90e25100bca6cc58efc2f0f5b864daf6b353dbe7655e71106b7d5c0784";
+ sha512 = "c5cd41468c8a41b711301b05716840df7b9f536f435bb5938f46a6d7affc722b8c12bb6d9840d6c47e07b4dbd52d94f8c189b728780086114f8e07037282773e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/uk/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/trs/firefox-71.0b6.tar.bz2";
+ locale = "trs";
+ arch = "linux-i686";
+ sha512 = "f83946fa8d121f8dd3a51707cf1fe25e4731fa9ee43d6889ac36319d4df8c9339eabe95db2ea5c01064fdeed8331ceecb3e13678b012e25a215519b0bab91f6d";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/uk/firefox-71.0b6.tar.bz2";
locale = "uk";
arch = "linux-i686";
- sha512 = "a3490dd08645d2bc21a0a7176b1e9ba2da47b4d2a5ef45472715dd6905eb1cb1956849fdd006a4d370c0e58744e126fb1902d4997c7280fff256885becb39877";
+ sha512 = "2692fe4c88ca6d23e8d4aacaeb939b753393543bb1da2265c58fea5c587232c2b63043dbd6f7eb853c3617d30e707b99782fa683fd7ec4de8ed18fa748760347";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/ur/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ur/firefox-71.0b6.tar.bz2";
locale = "ur";
arch = "linux-i686";
- sha512 = "a021c72eb298bce45097ed0d2c9aa2ade86b06668bb0d22e1832b600ef15691680b9836598467ae40d20203bf07246ed85485d0f2b3d145452725544d62b033b";
+ sha512 = "a8865d0c69a3f72e1b9adc7cf63a6987c4e1e46cdfc4ac31f26c48d14c175c0c1784933458eba132be6e1f580764846107df905eec51b071492b823c5d312db4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/uz/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/uz/firefox-71.0b6.tar.bz2";
locale = "uz";
arch = "linux-i686";
- sha512 = "ee54245bbc0845e680f5b02a2b217f2e253daa99e531fbf721a0f9dc03e68fe77371665bf2db7aad94748ad5c641bb93c7e3bf43f6e3f4e53b7ec91306d69f7b";
+ sha512 = "4cabb95e02a86579f95937b149dceab678b6bc117c8684d9204efc5d9d05fa4b04372d38da0a17e66b7e69c9d5165b1adfa43d45a2e7bb6189e135ddf95fe3b1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/vi/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/vi/firefox-71.0b6.tar.bz2";
locale = "vi";
arch = "linux-i686";
- sha512 = "e14901e594346298a43cf9b7cf70be1cd26e6f19415fd11c09e5ac8eca7a43fb07d7b4f4e238f4b13e986e1a9e37f23d73e456990403f2983a9939b8bec455b5";
+ sha512 = "0ddebe6d31fec59f2c18541082d0a0ab0dcd0ee3ccec2e895aa026781297676c31f0a58aa2bc395c6764a0b3b911a940e00cbee159d4c40f45554a6f07e12ea4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/xh/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/xh/firefox-71.0b6.tar.bz2";
locale = "xh";
arch = "linux-i686";
- sha512 = "a256c23d0c478dec86c5a3413c7e64c61e7e4a519c5e1a343b457481543529354d588b07f1b0ea37450c2d3d317145796401c05988ed6d35f545612d6c5f87f6";
+ sha512 = "178c1fe904c66c226c7e2ccbe1142d101ad9e8ae59aed276535d7dd9afdaea17e23460c27a656322bd23a72b9764c3359af63ac16d3d11fc495712f70179aafe";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/zh-CN/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/zh-CN/firefox-71.0b6.tar.bz2";
locale = "zh-CN";
arch = "linux-i686";
- sha512 = "a10aa5ef7b4fb6e4e3ac64a7d25c2d329eb42a0e5e0f680d786c9215d1f536a9daecbe5df31fb8484eed1471ccf89a596a5d2f97ae9875686b6f394f2a3c25ae";
+ sha512 = "a648144767874c9dd0a6c66deeb4397b48a047a7c72168bc4597b2a0e30c557d60f8729400715b1cb003027f727eacd8161b0b19d7d2ae5176442de0e220bbfd";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/zh-TW/firefox-69.0b16.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/zh-TW/firefox-71.0b6.tar.bz2";
locale = "zh-TW";
arch = "linux-i686";
- sha512 = "790725d0674be5ee347dbef3c2f0ac0d017cd972ae32dd318767535a4006432c5d56ef2e13a602f705fb177476ee120a5327dfa3625b6966a9fed8bb04f50c04";
+ sha512 = "c401b4fa658e8a0ae045bcc3488695cb619d8db7fb2ac74d7365e9f2c7b2fe7be1e2eaa63ce8c426f3c3e5d5a77f4ae019e6982879cca6d4aa6b54264d414078";
}
];
}
diff --git a/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix
index a9ca0a5fe06..353b350f5fb 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix
@@ -1,935 +1,965 @@
{
- version = "70.0b2";
+ version = "71.0b6";
sources = [
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/ach/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/ach/firefox-71.0b6.tar.bz2";
locale = "ach";
arch = "linux-x86_64";
- sha512 = "cf64b9cd170d5a1bf1765ed07df197a3d0c7411b5281c89a0d2adfb3d9c404ed9fd2c8c021fe93971b846d7ebfdcfdf08f3a5703e156d6dbab61619f53d6d415";
+ sha512 = "4832f3ba706224a472f19f5ee75cd11d776e2f90a64660903044db05dc125f2847441e7f0c033d3164bafe52ba9520d6f18f2233c366774af256b206bb719684";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/af/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/af/firefox-71.0b6.tar.bz2";
locale = "af";
arch = "linux-x86_64";
- sha512 = "e2815831dc99e0373541a56a38fa936a97d93a07a2dd7f789f5e4cc45860ce3c1b70bbbe709d35534364586af5b0dc626a4ba36dc8881244f98665a80ba57764";
+ sha512 = "591fd8f1e35837e02b4f245741baa8e17cc768146a319b64c3a29860de25cbe83a7ef10e0874888f091df231e87aa0c5b66e4a0a0bdbc91e4e68693d0b2e9fbe";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/an/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/an/firefox-71.0b6.tar.bz2";
locale = "an";
arch = "linux-x86_64";
- sha512 = "d7cc4b7a1d7fabe186ae10a9bbd5d746415178dc3d17255e2278c1b5a9a7170403cdd153668b94220ea68be387b0c7b3365c8d460bfe53f7b381e7f3da12948e";
+ sha512 = "f62f6a0487b26bfdbb8b3e6420c023faf230b0848bd7d22fe860be382db10075233a74f493ce40959ba1fc8eb87d0144aeec1ab0543ac48d8c8f7c1e02be791d";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/ar/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/ar/firefox-71.0b6.tar.bz2";
locale = "ar";
arch = "linux-x86_64";
- sha512 = "8fb79f3636682c83dcf42b143892148fddb06eefca4c5eb72f5ed703b821dc2bfab7a167a58992d83202866dc07bfa09eee876cc567586791440afea676efbbe";
+ sha512 = "95637fdb3c897629d2638a4e580122e02bbe767b965619cea27352cdd02f35e39ceaa35e6f07baaf483118a757a1591a95ff4f928e80839fa55883382f9cb602";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/ast/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/ast/firefox-71.0b6.tar.bz2";
locale = "ast";
arch = "linux-x86_64";
- sha512 = "468bcff942edfc8ba843f6f5a4b42aeb2b606186701d6a371565c4803664591037fe44bd026fca790ff8b8bb036619862ec51f04af63acfbf393fe8ac677907f";
+ sha512 = "9b047f8c399593d6bc532ba14893018f4c1c6c02e128d88776d11fc9a8027472cbfb0fff51c79629de316612de6952119339fd9317201a0a51e556549fb32a74";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/az/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/az/firefox-71.0b6.tar.bz2";
locale = "az";
arch = "linux-x86_64";
- sha512 = "983f8d78364c1479a252806f912d015e791e8073bc7848c0bebb28c7a39d6ab08bac2bd9e4a7f1c1cb68b8d2894eaa927541a78836717066491b450c0b34671c";
+ sha512 = "2a45e8d197db07527e05032ff46e776bf596f1f7192cfed5d245fc5ad14d427b43096904e997482bff225daeaf778ccf6d3eeb4ab6fd62a1fc1d0e1030dc9f60";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/be/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/be/firefox-71.0b6.tar.bz2";
locale = "be";
arch = "linux-x86_64";
- sha512 = "dd31f1d7d3f6fe10f9dba54475512016be4b26bf59ca0ce55932b23cbc29954bd80e95fb1e29f2ec695e8f16d0b0145ed0d160f1964fe40ffe079a3833ee8090";
+ sha512 = "e4184c91a2830a3168eaec5aa18f17e5ed5fb13180f89b428a0c66e3087dc6aa7c0b7893683ede36201801548234b498ab7f0615fcf34649b0f4bee72f041cfe";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/bg/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/bg/firefox-71.0b6.tar.bz2";
locale = "bg";
arch = "linux-x86_64";
- sha512 = "d08edb6750464805ef379b18008d5f3a76a649ee4d6528b4ebd255ab89205756e2c9978bd9a27f56a607117186d434fa2df49ef4494bf5bd4f1f8e2eed10b30a";
+ sha512 = "6f5aa6d5efa2941d56a60a91565bb99bb8a347613a6da8afdee4f68cff3f489fc5b004c996384955dc59cc82a0c148ed22126d56b7ef1b9cf8898b3a0d1d6cf5";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/bn/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/bn/firefox-71.0b6.tar.bz2";
locale = "bn";
arch = "linux-x86_64";
- sha512 = "a3c200e13d6b20a7fcdba2524501d936a183213f590213727facd9271867ca3d5ac0c59831b88e92a424b3b154bb9cfc66dfd8908ee28fe6a4ed15146944eb7a";
+ sha512 = "238463c63366310feab496fc9407652e61e42b6ee2de5231ce614202ce9bb9cfee4bda088c2db47808ddf3ce844b5ca5a6824a7327f0fb8b82bbac48d451ee1d";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/br/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/br/firefox-71.0b6.tar.bz2";
locale = "br";
arch = "linux-x86_64";
- sha512 = "235ca44c123dc8034541637b8cf5b7d7d3e361300639033dcae361bfcedd41360a5761486c990e7328e479b3073b5f68f01bd38228170c352f993c0bee4757c0";
+ sha512 = "0a280492ce0184d22b438a83aa12cfb4a09c9c473fa95ca473d8116fff81d9185b48df9f4e99f59d569a38881dcf9cf3a0713097cfbae89281b9246532b9a78c";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/bs/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/bs/firefox-71.0b6.tar.bz2";
locale = "bs";
arch = "linux-x86_64";
- sha512 = "2b2202f8397edd25f871d0e9b7e2535be98559bcd84080b8418460f7f1e558cb779f1588e94d87e8e713639cb3bde3efa8de7baf2e2f36bf387d965bffb9552d";
+ sha512 = "b15a8f4620a60c9e4c2ffc4d5b037fb550a57ec40eb8a9604753f4a38e53098d919d1fe814bde405875e2c346cdbecae8ea732c43b50149d7ff575f979d77d92";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/ca/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/ca-valencia/firefox-71.0b6.tar.bz2";
+ locale = "ca-valencia";
+ arch = "linux-x86_64";
+ sha512 = "5d3aa1a4a393e32a662c2a5bf59ac12798b82f7aa1be26f711f9d9d44d63d0f524c259ed4c6888fd6f2522cdc15c4aef168aabf9c69af12f6d29d1b75187e9de";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/ca/firefox-71.0b6.tar.bz2";
locale = "ca";
arch = "linux-x86_64";
- sha512 = "23b7af96430ff5202529e5bbfc5d359d8cb9419b54a8e7dff6b1c828ccd1cd3ca686ed062a29f7e8ee8201ae1a2bbce7032a0f3f0cfc63168fbf0b49c52a9391";
+ sha512 = "e605d955c550a51debde40f527740dfa9afba47541298e9bd5a07264be2cad32ab61a7da8724e1244c6cebef4348e6ccbe26a12eaa545444c1b678f0d048ad3f";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/cak/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/cak/firefox-71.0b6.tar.bz2";
locale = "cak";
arch = "linux-x86_64";
- sha512 = "beda7fd930fbcf0985711917ea4b78a94042072a8cdd325079f3568bfcf2456efa0666efa4f869430cbfde34091b9d7d101edb94fde0a0c6942f61ee9c8a4fc1";
+ sha512 = "30ed299b8bd9167557c0fad649a9e52c3901c0d1e097760ec2e17d0b1f3731e28668ce5e649d97ba6e1694c367a917e468ad06780e3ec85234b215151e257a3a";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/cs/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/cs/firefox-71.0b6.tar.bz2";
locale = "cs";
arch = "linux-x86_64";
- sha512 = "1b47c85b7b5125ba416e18345c7247b85f29e4136d56333da14d8f2c3ebb7b9f81bd0332f6031b36e68e21d851f9390e171f75305bfbe0f46dd0b7c995e0b2aa";
+ sha512 = "73743d76ca4aa5be5fd5a416b5a62f7e891c5951ae8e30688a476e906805656544aea5f07c05c7297f9f8abc9679d9a104d98ed51e6193fa6b39c7db6e4cc7e8";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/cy/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/cy/firefox-71.0b6.tar.bz2";
locale = "cy";
arch = "linux-x86_64";
- sha512 = "071d30f74d13311693dbf3b4c1a111d12e53aaeb8d6207f8628f7a45acfcf797a722a5196086fc7b6c12545a8a177868a5669542f0535a4223df155867ec6b30";
+ sha512 = "a97732fbd1333dabf6c988965d3f01a339ff9430bba48a41101c8f8c72ff146e91215e51b57bbb677372db265c2ab60b69cbeb606d8257e75f5e3e29fa1569d0";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/da/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/da/firefox-71.0b6.tar.bz2";
locale = "da";
arch = "linux-x86_64";
- sha512 = "3640a0a07c512e60e4119a683ac44cc596dc2a187d7f04a4b087540ca5deaba1c220403e398edf4c36247e92eef73de252d597ec082a7bc6e6c77e7ea799fef4";
+ sha512 = "be7bd08faf4074751467ffbf71a8119347e11231c67bf48e9204f6c472591365ed75121759c42b83605c05099f57122dec6854792af52afc689418c5e6954049";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/de/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/de/firefox-71.0b6.tar.bz2";
locale = "de";
arch = "linux-x86_64";
- sha512 = "58538f8a9a0d6e97d49c005f45dc1b1842c07a6923a556d98aa13b4c979502a329adaf7b1782522e02a770945ef3809dc68138e73736593fa5ed5d07a1c9e265";
+ sha512 = "1a54e941d4ef87ee21313bad9e8091aa8cd178d1e32c23511527eaa58afae1b17ee9cd22514669cca94d516b158d5f95420c72cee53a217ef9212aab239cce15";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/dsb/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/dsb/firefox-71.0b6.tar.bz2";
locale = "dsb";
arch = "linux-x86_64";
- sha512 = "8a0ca47fdc85672c18bf883929eef9fa56b2b3b79e584c415c76f3005a55cca944700d27ca23b2ac2051c7c130b42b3551dcd1c05ec7a347ce6463ceecbb0748";
+ sha512 = "0845cc605f1ec235babc42bdcd1f08ba57e1dac445c65ecc56f5062f87d86b9bff46c12e51d4b4a29cd0785a9e3a026a6d64307356f2fdd9c96e6ce52550517a";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/el/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/el/firefox-71.0b6.tar.bz2";
locale = "el";
arch = "linux-x86_64";
- sha512 = "c29d7b350fcfc7b6b76b02ef8677a21800d786e709b5e1b886532f74c8c11696da0fbf2adf6b22fd8c5edb6ab312516a2535ce3185ca5334cff9d79974a4f5ce";
+ sha512 = "811cae96aaa3895d360165bb5de15bfef5ad05b1fb846e141a625114c4736b2c1107a331b891e6025113ab1a3c9a0241dbe2ad3abf89cf410fec5d01e4979fda";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/en-CA/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/en-CA/firefox-71.0b6.tar.bz2";
locale = "en-CA";
arch = "linux-x86_64";
- sha512 = "d04571c4f4b4bfec7f8a0eb2ee2ed9e9f91c415609106a97ddde7122bddb8f8a25685e4bc6c2eed5ccbad2111bc3e9db6e3ee27c422cc1813a8bb1941cd04af1";
+ sha512 = "4bb57560d72f7afc9c44d68cdcd3075b0b8f07a074e196181236566dc9c51a8fc43658f2b4b50bc3ef17afa0fe4f20d57c21313b57a90da0be75820619e88ca8";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/en-GB/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/en-GB/firefox-71.0b6.tar.bz2";
locale = "en-GB";
arch = "linux-x86_64";
- sha512 = "c1f39142888d46884a51b892f232f6cb78309d65a6ba342a45d4bc6f3448ae90bbfd77d44f0e1611948a66a63bcb6d0f0e76f2c6f5fc3083d58b12b6df7cd2ee";
+ sha512 = "ca3cf0c5deacadc4eda81c5246e29d79ae362d9dd416a0c0242de550601b2e8543ff8068b763f3f861ae22287ed530248448e313123f0959ca2eda91b0ecd032";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/en-US/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/en-US/firefox-71.0b6.tar.bz2";
locale = "en-US";
arch = "linux-x86_64";
- sha512 = "1b0eb7dd1995822cf30aa85749741c1bdea6cc98b4eaeb1d11fd94b56d2138a177428734169355257a165350cf21b72141386d6fcbca606e9d3bc11f292563de";
+ sha512 = "88f0bdba9f8706c3b0475742496b51c12ae126317dd96aff78673948a14d6fa6de218086947de48264432bc7dec2dd3c02ad2f95b06b83d5680219ef5a42ce0a";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/eo/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/eo/firefox-71.0b6.tar.bz2";
locale = "eo";
arch = "linux-x86_64";
- sha512 = "e03f025948a463007708099a6e19abbd5a3e272eb03e053c6dc7ef156b1e4e83d68ae02bcce8f19fca1409e96e07f88a36537e08dcd73f1f289cd64a57b3aafa";
+ sha512 = "8c713290190413f68c2e197c49fbf8aea01d1b7952e893d707669cb6dda384aea63d9a4d5b36c7a871e4086cbb15e8a4deeac4f27f02df9b94603e1a89095f5d";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/es-AR/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/es-AR/firefox-71.0b6.tar.bz2";
locale = "es-AR";
arch = "linux-x86_64";
- sha512 = "f48d98ebd744d4915ffb6f0cfaec981b8177b0f74297224555bfbfa7390dbec29eae93f4dd3ba51bd84dbeb71a4c60519414f2a4c3d75b7c96b59610e30e5f9e";
+ sha512 = "39e70d871dfc4788e0fef7414982160afb642bd774a8a1f31f98fd187ee04a9c78c2c569caef5399c8860a5eb8e6ec8e3531df30ccd501df7feb7535a2c2b99c";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/es-CL/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/es-CL/firefox-71.0b6.tar.bz2";
locale = "es-CL";
arch = "linux-x86_64";
- sha512 = "f593020ba37d0ce81a194772d1acc2f528ed826b009e034e17d3119e482b0df9e8dd518dd597687e566d30e2a736d89850e3cd2487d7c723e242a12f69962b45";
+ sha512 = "fa4e470b89258ff9c6f0af4f975de1d6ddf26f3aa4e8970516481862faa28e7dfc7c843b843f00f080988f5e9b8a1ffc3a3a4e89b0aa51029170c8ec3c6f7d62";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/es-ES/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/es-ES/firefox-71.0b6.tar.bz2";
locale = "es-ES";
arch = "linux-x86_64";
- sha512 = "081641bedfa1f4831641aa0029f8ec34db6f4965f9aff2c5344b779387dd887c2cb371908778d6cef6ccaa0448c98513b300244dab30f36f68776506f840b43c";
+ sha512 = "b7f7d3798f5ea6c7e2600b733cb220232bc879eb4a9300e5b017e5d3588e7bd33da63767f5edc57ee0b9be3701295cbb7f83dd4f8486fca6e834f153f2e186ce";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/es-MX/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/es-MX/firefox-71.0b6.tar.bz2";
locale = "es-MX";
arch = "linux-x86_64";
- sha512 = "fe58f3745c1b0009e065979cb6ca451f377d837b0a41062e0ab04d435cc935d931d6e8200521850ce3161aed6f9583a67df14d0cab5853e491b1a433909947d6";
+ sha512 = "c6af98f1181e91a3ba6ac873325be50505a6c62ec978598965e5c7a3c6bf5e7b19b401d893b9659e15ca3e2552d7420a174a880e58cc3102c49bf90038b26807";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/et/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/et/firefox-71.0b6.tar.bz2";
locale = "et";
arch = "linux-x86_64";
- sha512 = "2d1bfa94424af6f6ae08e11c99e83749408e9be1ac7face25d392c0475df978666706fd694b76558d824d226a50fa5f1eb8da52fd4ff3a1bb615bc83986ecba0";
+ sha512 = "7e0f2ee6e03282b2815720024bb0ab0ab92eb3d59fe4843d76b666780940694214dad1caab182a1fed75e9a2fdf413a1ec6308e5154919a1f7f24ed772411a40";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/eu/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/eu/firefox-71.0b6.tar.bz2";
locale = "eu";
arch = "linux-x86_64";
- sha512 = "7a192de6d021fdbca6764906284b4490653705147c56b9709e83c7fc087916197c954ac1cc19cff3da78220d572492800ea5773d3e03cfac6ee75d5e6d8ae85b";
+ sha512 = "3eb646c5a42dd5dbe1062271ab48b76c5164b9f5202d6b9f0fbcc81c606b52d54df3a80c4bfd3dedd2116fdaece322a01922f6ed8eeb3509dfcd99c7cd802a34";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/fa/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/fa/firefox-71.0b6.tar.bz2";
locale = "fa";
arch = "linux-x86_64";
- sha512 = "427af8a45ae42e31ced616daf2d5e418e745bf43f87dd4858c983746dda1d52e1b909db542e9822c39019b13d1b47196c7041040f8c56e9f0712d7fbfba8b935";
+ sha512 = "cbbf7b055409a39636de670b03fddbd062f5add34dfa6b35bb9abaab508719fc55578849d81ef0733b1ff1b558e5cc889624d548accb179fee4069c99c1db068";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/ff/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/ff/firefox-71.0b6.tar.bz2";
locale = "ff";
arch = "linux-x86_64";
- sha512 = "8a0627bff20eec56a7fbf6be6131bc004c12fd3033ceebe365a1367dccaf773c7c4f8592ee9a313a01943ec962ec010932d3f0fea7a94576372bb8fb735c90bc";
+ sha512 = "db0db81dad551fc5a39798bc1e0e71b7881fa8c955edc4db2326835914a18f141574f62f7b8fb35f4f51a872854fab858cea95b88b3741a13c3412ba36a1b807";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/fi/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/fi/firefox-71.0b6.tar.bz2";
locale = "fi";
arch = "linux-x86_64";
- sha512 = "b86da9c7cfb2edab970d91b098c5ae3da60f83a9b772033d8a8a0a4db27afe62f5db600a17a883561733f1939bb95342273b4c5c7e004870c4eabb08648b822c";
+ sha512 = "1842d85d3cc0881069fd0e6c6397809727aeafff2c2c2f2b4385a7da24a57dfe3fcd6255926a6301c3a48b36aa11df20f944e200416cd8c564d132faf8426eb7";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/fr/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/fr/firefox-71.0b6.tar.bz2";
locale = "fr";
arch = "linux-x86_64";
- sha512 = "54ad1fe9eaff331246817e2033adf54d5267e991ee016f96edc21b5c322a46103f72a5662df06da313a840aedd04f677340573e57b55a9a1fa611af3ead97e0b";
+ sha512 = "fb230dfe11cd1f722fa93a6343f7c897be3867ea0df49218fe877126a76b0f07281d2a5fae856c90cb3124c04c1ecf9d8e7253e10aafab15592d39cc4473e48d";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/fy-NL/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/fy-NL/firefox-71.0b6.tar.bz2";
locale = "fy-NL";
arch = "linux-x86_64";
- sha512 = "c13363513a633def5c2fdfcdd0327b201f5d6d04d0dcd698f614799ac88424d19612eacfc6325b11808617a3cdc3f92e5903d84cdd56fa68212cb1b2babb9a03";
+ sha512 = "db074ad24fd4c3729f0d95c8aef501cafb6d4a05fb6f7dabb61446156b29932b8984e779f84d7043881e5e939cc9e5967f6b0024147769f771e3d0993fe4b620";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/ga-IE/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/ga-IE/firefox-71.0b6.tar.bz2";
locale = "ga-IE";
arch = "linux-x86_64";
- sha512 = "23644670ee388362801cc4ca62fc6bf370d479821e0811ab493405ff3c8fce538ece89184c9d4f020c8a5089d3f7addd1d4fe298b55199dfe12f73408a988314";
+ sha512 = "a1862f8756053311f08f897f2ff871ce73e9359e261e48d924b2faebddcf52e42ed454cfb9e9a9d66e3f278f7632910600a34a156fcd44b76116f3e060451863";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/gd/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/gd/firefox-71.0b6.tar.bz2";
locale = "gd";
arch = "linux-x86_64";
- sha512 = "967d24fee05d35aaf27be6ebbd3d31112126ee04bb750d3f17a2bd6a1abeab5ec7ee43235a26de5f19e5979c6d295e74ffec9f1bbf6fa32564f50986487b0455";
+ sha512 = "8d5652c12c5af81922581d57499da12642884449a619eb3cf3040c2200e520b0ba92e6a2341ce5bd43d6e39d4b0396842357ae96cb31d39b9627d7a8ae8de187";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/gl/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/gl/firefox-71.0b6.tar.bz2";
locale = "gl";
arch = "linux-x86_64";
- sha512 = "9976dfcfbf3d93df9c06a4328bc73ed5e1a3b922a8a616cd3c298d5955964ffda4e4fb96e85a23cb9c950602959e11d86f3d58840d475e5c6f5232992da13184";
+ sha512 = "80f24c3420c6cbe0c41b827d9bfd1735d5b300e33a405acc6439e83b2642a6e2d8ca387611b6f041ccc97f56b7efa29526d260c7a2d76be056b66f4b2fb0f138";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/gn/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/gn/firefox-71.0b6.tar.bz2";
locale = "gn";
arch = "linux-x86_64";
- sha512 = "155eee867cf421717c5c6720c2926318dfd7e3900bd42bbadf6947d291c3afa7b6d81610d53052700f32338e9fd4dd66ffc240ceabd5e6c6b6a3d5a18462b923";
+ sha512 = "fc57872a00afcc0c790863641dd3b31cfe4b9eb56ecdba17000c9b7abd701a4c6257a4f6080d90e545cf682b8b547635193e5c3af9625c3b18ec5513710f282f";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/gu-IN/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/gu-IN/firefox-71.0b6.tar.bz2";
locale = "gu-IN";
arch = "linux-x86_64";
- sha512 = "82c58161e908a2dcbd10f8192aa9c89e220a5ef250d5b5037f483a415105946fad0527b0bb6ef3ea78b6b6a785064f116e17bcac7b2f45a1f0676e689f030677";
+ sha512 = "a066288f68f697da26aa6b49607673813ab6a932845e5b2199fb4f764acaf810f0bc170e5fb26e05db0a4a4ab1d2b29a7e644e662f6d64f4fecc847a8d9b84ee";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/he/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/he/firefox-71.0b6.tar.bz2";
locale = "he";
arch = "linux-x86_64";
- sha512 = "c6f8f8c144d6acdbf65a733627a7b977ae0b1aea7020356ad8e8e3d1cecc568c015d5e3a523df00bc94262b1ba7460f22de6d06421119407914c3e3856b91736";
+ sha512 = "9288ea2662584d9a9a90b84e96eb3426a47d4e7a9079120247add9d2e2af5615fd75f7f93b3197fa3f17cc539af65af99125a6c948ea1f6ecd94556ab5856f29";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/hi-IN/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/hi-IN/firefox-71.0b6.tar.bz2";
locale = "hi-IN";
arch = "linux-x86_64";
- sha512 = "3ab7baf8b0609aa76cc3e72daa5bb0aab1feb6e4957ab032cb0011b575ac4f5f41689466a6ea10717c14065c463c6469967848a22a76bf9e03e53e9b3aaef6b9";
+ sha512 = "3c55c8e417da47367d5af105798ccebcddf8279026e2a1821ef51b6e490e8ed96ae4f187822d6f0b023aceb549994ff3874c9b5c5be821aa40ac4f56d1d84580";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/hr/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/hr/firefox-71.0b6.tar.bz2";
locale = "hr";
arch = "linux-x86_64";
- sha512 = "50be7cb19abc57bb3d3810bed8786c1ba8f4aa3f4c2d4d6ec6347b1cd263c724c6f138d2f95e579010c3dd893b432dfac169f964e78585601211de2b4144c02d";
+ sha512 = "790c7c17a44774d1069b388c28012e960639e7a5a6b504a819e2d1a9f909fec9a8c9a093f256cd9e83094b320a22c805db8dd72d186fa11d100a18a741a1f6ed";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/hsb/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/hsb/firefox-71.0b6.tar.bz2";
locale = "hsb";
arch = "linux-x86_64";
- sha512 = "cdbf552caa9d85ca5cd2501a98c7270eefbc4ad31db3cfc8399dc5e2d7dd7344feb71b1fd7bc6023e74dd10963668f004c4c7a74f518cc849539d9f780081c52";
+ sha512 = "22b2c1d54ee2c9a6f2eec7b8c8bd7cd90ebb543331462d7ecf79d83ae2efc5e063ed07995d4f61e63822c7d0fb9ce58fe8223d3c73b87526865684bbb21cad8b";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/hu/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/hu/firefox-71.0b6.tar.bz2";
locale = "hu";
arch = "linux-x86_64";
- sha512 = "731cbc3fa44e815fb9e437f863eb218accd37a009e136a653947a5571440dd839f025b724c160ef3076f87285f51503a1a9020f470076a71dd246caed8f66237";
+ sha512 = "86453e03519675fa7f450831089c34528d5fbb48c76d927e697e2bfeb10125addafea94160282bae6904d8923b76febf39c1ffa6c7f065f500d8d7c85bf83a6f";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/hy-AM/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/hy-AM/firefox-71.0b6.tar.bz2";
locale = "hy-AM";
arch = "linux-x86_64";
- sha512 = "0be8245de7830aec18132d8a36d9eb48528070b09d87cfcd8dff78b0d26d79dbd2cecd94bf5088158253849c2690201e38766cf85719126d232932384c7dbff0";
+ sha512 = "0ba3bf4e3921387fc52f619657b9c07dde6be7d1d48096297fa07d371b86449949f8c38909842cf93bb86ef22a5270f35f2d959c6a4a8156102fa488663af89a";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/ia/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/ia/firefox-71.0b6.tar.bz2";
locale = "ia";
arch = "linux-x86_64";
- sha512 = "09fea9073150d0b6464d0769317c94d397eefcbd1577b73bee9601fe3babe12b7533730383a56629c2470e39628f11f0d0fef36a41f3212865b2643ca2f00add";
+ sha512 = "fca43bba8ab0ffd37431d5620e94598f5a519556bbc7e84aeabc29be043bef84c981b7ec875416107c1e2f04947f9560350130b4ba5ef76af147c77bf4dc2d3c";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/id/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/id/firefox-71.0b6.tar.bz2";
locale = "id";
arch = "linux-x86_64";
- sha512 = "94b0340e3cd930ba39520ad28198a108bff9ffe40e8e1de77bc783bcd211d7cb5017b2c894d212a7a024ceb69c681f76bf513a38a3cd40aa6f846afcff32b3a4";
+ sha512 = "e0fc3a4f27bfeef8a2377eb749936ed41c8ba3f46087a1fc1e964ac113c83fa4748de8df69deac8fd274cb1d9d5abf86e64d21ea27ad0798c0f2f7a7948809a5";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/is/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/is/firefox-71.0b6.tar.bz2";
locale = "is";
arch = "linux-x86_64";
- sha512 = "68fb812f36082a9bcc41416a0ddc704c69ecd0e5d958d16c1171c7be27097342a57980692b1000fd13c1de893404fab0d150ce675e0bc4efa96e06748d392754";
+ sha512 = "cbda95a34ea17ade522efb156ee8ef91dcef1042f74051ce3ae5dfad3e1c1e7e0123ea11e254c4d75e247cce4e6cb344d7e0febf79b3e4257ae2c31660606e7e";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/it/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/it/firefox-71.0b6.tar.bz2";
locale = "it";
arch = "linux-x86_64";
- sha512 = "e02f944ca83b869785b92a40a5e13f088275cffe26084f85f5d866ce5f9b0d0234e7a9fb5907e4f97663fb00091005ca73142d14f99465c3a8b1888aaa5784de";
+ sha512 = "91dc374147434282a5edb683852684704b6f815030a1ff074eefe000ca02448e586dc8b9149e542805c8492374cee12c82d3ac6b1b25c5859a4f15c1133f4327";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/ja/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/ja/firefox-71.0b6.tar.bz2";
locale = "ja";
arch = "linux-x86_64";
- sha512 = "83611da83e6cf95dbbb3dea3586ac3fc5ab9e770a75a55e3868543c9f43fe481f5e6775dd45eb1cbeda06bb60619fe7867af64c7c8c2efc862e7f23fdd0d0ac1";
+ sha512 = "aa3d2df0c6e3024b52ba1545b0cc1e2a9f497ec3a44a12215aa400cf0a34219fdba700c88608351bcb5f181877e86ffd937536f4e3ac7556a571e5c789eadf01";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/ka/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/ka/firefox-71.0b6.tar.bz2";
locale = "ka";
arch = "linux-x86_64";
- sha512 = "94683999f9bf4ccb13dcce3f993291e5568a3a4f107bccae6f8b95a2d05c8e68a62e9d24ba9c60264c17a027f1848e82cce6fd143994e69e2000688bc61df543";
+ sha512 = "bd71a4e7ee05a78f7e4799b09d0a066d1291efefc04285710554da6f9c1ab214a30fbe881cbefdc9400550f4fcef0595f9bbfe767cdfcbe79106c487bedfafc0";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/kab/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/kab/firefox-71.0b6.tar.bz2";
locale = "kab";
arch = "linux-x86_64";
- sha512 = "fd1bdb8ff2df2e8c18ab7d13b1e07b128291b410607571426dce5054e8e6b221eadedce560c5e16d65ca2917910df02f74d6573323f7a26375f1ffcba080f22e";
+ sha512 = "5c51f3101964b07d347fb7399c7fa4cd337feb8384a94a721c87d89c9f4bb83031a464348cfa292fec77bb1278101d23f2378591353c7adc11a7c761e89056de";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/kk/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/kk/firefox-71.0b6.tar.bz2";
locale = "kk";
arch = "linux-x86_64";
- sha512 = "3c53e12ccf2698778d579c09a26a522a038c4510d7af8fc9accbdbcb2c9013e12e243b88c03e7075ea76258abf2d234fe0ff7a06538f6d8e0f363ca3887617ed";
+ sha512 = "3c2702e37a8b0072d4f0ec72cb804f8b1213087541cb15276cf7fa5e195c488cc8cb039f6941a04268468b3a0e0a691dad6b60f2a0207ca32d296e3f51765a97";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/km/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/km/firefox-71.0b6.tar.bz2";
locale = "km";
arch = "linux-x86_64";
- sha512 = "2d3bab56eed0ef36ee41b11071dc2ee0407c675421fb23fe095ac81ecc492813bac115d03b3e832c33b03fb2df89b37a6153a388b44e540d48af93234cd41888";
+ sha512 = "8ac646139529b3ced44de93e92a5f4cd79d0dda1024b3d1e03a8498c905fd425695551e0e4d1a477fedf85866ad8ce7979a2750f49eaf6091326c6283bf0384b";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/kn/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/kn/firefox-71.0b6.tar.bz2";
locale = "kn";
arch = "linux-x86_64";
- sha512 = "b4dbb60f0aeaa203483a8c7c79afa9a9e8214b032507c0754b4320eabc40a39fc0a242709779faa38affc2e570dbfd70e1843d712c361ed9a3c52dca17b72eb9";
+ sha512 = "55ed6b542998adb0fd68782a970997ba0e9d854edf764724590b938bf52642c2aebee881898f0b7fa2bc890ca258910e5252c23532fe7f55a7fe2ed3d55970fd";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/ko/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/ko/firefox-71.0b6.tar.bz2";
locale = "ko";
arch = "linux-x86_64";
- sha512 = "9c3e9876dc6363282cb302a65c3cf82bb14fb022e3f125fdad2e554d70501ef2b275826c4dcf064119463ceb93e6f0b8dab8c273364d1331d6ba5244eb0119c0";
+ sha512 = "181855fb4bffda99f5da78659f2a4740e9478a6923af3863cd90439b698148617634d4367d584831d6c01343bfb297765a9f531aa3370d25d2f51ff6b02bf96a";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/lij/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/lij/firefox-71.0b6.tar.bz2";
locale = "lij";
arch = "linux-x86_64";
- sha512 = "689c0b271e7efd6c45de879d573cd5fed31d1ee2445849ac3442559f11d33a500fe70e861b54b288cb84ed42434071f9da79db2c1c8f7460ebd53445079439ae";
+ sha512 = "cd6e1c38473f000bfe0d04043597587fa73fd67b4037e5016a7f38d72968751e5f738afae5a9b6624dd38f858d5eec555c53c0f4c850e1689a0ceb90f72f3a8b";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/lt/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/lt/firefox-71.0b6.tar.bz2";
locale = "lt";
arch = "linux-x86_64";
- sha512 = "92ba0cf69d128848f2fc4dd86171ed7e4eb56c6dcf868d3918c7fbf41bb76305839f410567bb1ee7bf4ff114b858127dfb0320f2672560cb38141c88b601070e";
+ sha512 = "2a2bc2f1deda93c00692b82f2cc0b7affb1245fd670cf6a74b538352c7113c7440be647b3c2af20aedb191fc30ea8d17799b01a8fbe29f962398b153b4c7059a";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/lv/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/lv/firefox-71.0b6.tar.bz2";
locale = "lv";
arch = "linux-x86_64";
- sha512 = "54587e5040c387431e94b4739a9e34020d7dce1777195122d513175b71ecdb44663c416fa648ed648cbf4f6279b7fcecbf819f6fc3a61155698f0dcff5f42212";
+ sha512 = "2101aa80644b84ff5b7babb098dbc60e651324087111a06a4698df38a2ffeea8ac8cef2de276aedc7d0292595f3ebaac51263fda0f473ba4d240484060a047cf";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/mk/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/mk/firefox-71.0b6.tar.bz2";
locale = "mk";
arch = "linux-x86_64";
- sha512 = "b7943903f7bd3783e5c3776d35125b19ed88e87f6449f25a5b26dead87407d0180cb21b67c89971d3e975d454098d22706c74a33d21c2888a90a0af9ef7b601a";
+ sha512 = "e8a527675db8b53a439eaa7334f7df3d7261132537b84e12e0f8ad9afd2fed8e9e1ab8af57cd9bf65347b76f4ebd98caddfbc66fc5a28a3660569d5b1163bfaa";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/mr/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/mr/firefox-71.0b6.tar.bz2";
locale = "mr";
arch = "linux-x86_64";
- sha512 = "07e742844231a1dc7a09a268501934c63caaa482ed7117d1a498c66b6f5c1d559e3b0d59cac06b9c3d358add59a13912af1dd11a6c2cf72d5cca97b68ecd1c32";
+ sha512 = "23e8aa5cf74353b35c75a2c357c839c5dc950f1f422db44dd951233d725c8595753c24b0d903de42739ce7d3ba90cf033daafa5389d6bdfe14952024c37709db";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/ms/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/ms/firefox-71.0b6.tar.bz2";
locale = "ms";
arch = "linux-x86_64";
- sha512 = "c649789abaac00c55ed415bdbd9c28185c56795754324517f5044cd753aedc004482501537c67c42afa616ddb5890a4ec992379fa30a28b8a492a0e559a73f95";
+ sha512 = "8a7d73de2b8fe4c853f42c258a4f6539f1904478526cbe525452c57ecf62f3eee1d7e6ffc7b6410f0b22ea966f300b4fdfb31e4b63fa14a2311a01d4d1511b5a";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/my/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/my/firefox-71.0b6.tar.bz2";
locale = "my";
arch = "linux-x86_64";
- sha512 = "06049a7770f621a9a72b5e563b485b81caad533410db23558679100f7a422fa1cf2a85233cc1bfd5d5b9c1705f8299544b4cbb4f52de3c73cf33bbe64cf845bd";
+ sha512 = "797413eada2e49730047a2762dfd5ff6a62edd55db2bc7e2b7459f7ebbb2b381c8b218ca5def31e95007ddf68bc047f27732d044a57cbd6153ebdd89d452ab50";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/nb-NO/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/nb-NO/firefox-71.0b6.tar.bz2";
locale = "nb-NO";
arch = "linux-x86_64";
- sha512 = "5f80bdb4a310d46cf5b3b36567964f444c75c92e19b5ae5cab81847b2b601f04ee3d43a2325b8bd6d7ed3422f146e90612785b25f982bbf95a86057344ae35dd";
+ sha512 = "1b2ad84cde2dbd9c44919ff5a6f366a8ad2bc4fbc3605ce681fc46e9c959a25e18635549be87c6172ec1e4a1163ee41debff84c93b4171169291172b4d3ff605";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/ne-NP/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/ne-NP/firefox-71.0b6.tar.bz2";
locale = "ne-NP";
arch = "linux-x86_64";
- sha512 = "f35496c71aa7efbab365e80050ef218fd4bad1e8c015bb97df65aa0e4f16613b531d40bbcf4739aa462077026259ea6f1d7ac71b10e51e04e75d120dcbab3ca1";
+ sha512 = "6aff26975371a2e86410e9a3bef1ed576e09b8620e7686ef549d5028163533ed003de84b1ffb1e5ff7c27c5c0de8914de7ec6169074b634ec987614fcb879f7a";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/nl/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/nl/firefox-71.0b6.tar.bz2";
locale = "nl";
arch = "linux-x86_64";
- sha512 = "21327076b9196d799a40d28f1fea66f59944bbb0757fde66aba2b0f8b929a0d45a01bb0901c4b6eff4e0e5f7f033a44d2dac83c94494b7f95003c3dd620f1ce4";
+ sha512 = "a8844ceb5d28eafac4ad333f83df118cafa6af3b56940b4423d08f8bcfba5a486c64d93e34c5888c4c4ac9cdfc511db8a306c3d7475917c310825e40e3848bc1";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/nn-NO/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/nn-NO/firefox-71.0b6.tar.bz2";
locale = "nn-NO";
arch = "linux-x86_64";
- sha512 = "dc444e5546d1985d0ee4bbe2394e9e51131b46b9e41dae54c1402a9b08aa7de4a7d73fb57bd677af151420e71073ac398d28f4ae324b4e6e3028f01fdb98bd76";
+ sha512 = "fddf3fde15aa2836813a9ae8856bc0a02b04111b51ea575549617a2ffbf7b3c3f7934b73e22658afc4a8b832b75f39b30cc6bb791ee13ed44514fdcf6da9f470";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/oc/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/oc/firefox-71.0b6.tar.bz2";
locale = "oc";
arch = "linux-x86_64";
- sha512 = "0c0fbf38f078c0fc4ae38112611f164808c7b9fbc4e3ef7d57e622e918f5c581915095d5bf7c92cc0ef9beb67cb04ba9b1ae1e011b7c8f91f23a79a326481931";
+ sha512 = "7bad80877ee57c083cbce7b25ec32ab59335c8663dc234690e5a191866dacf0e3f95de933d33e15c6d3f87df71731233eea335881ca730d1c7b195afdc76c521";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/pa-IN/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/pa-IN/firefox-71.0b6.tar.bz2";
locale = "pa-IN";
arch = "linux-x86_64";
- sha512 = "b9f07313118ddfd5147866045e047f9ae7cefa0116d86aaf7f5dbaa2a64bf14f7a56bb748e115945d04aeb1dc4572d54b3d122c1e775062ee1de366c710726d8";
+ sha512 = "edde3835516fce3978884afb7a7eb3282a0d64230141437493503ec8477cd11e0b6cc00288c8d58d21da2bc2f7c11bf099e2853312082429b49ae0714ef2329f";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/pl/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/pl/firefox-71.0b6.tar.bz2";
locale = "pl";
arch = "linux-x86_64";
- sha512 = "bd1e920304e1bb7bf6cf198c5537f1b106b1484b7ecf683e1424d208b736d2a3ab40c7e885a385611ba6f033a2ae4fb00cf6113810a20dd8808a34ceb11c7b38";
+ sha512 = "fe2dcde2d35076ec8ce050d2904df053d9521947d68ec4506ff39b4be2a8105ded64ab2cb4387953f3a71514957c67386a4e005b4ddeec847320b0d827003026";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/pt-BR/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/pt-BR/firefox-71.0b6.tar.bz2";
locale = "pt-BR";
arch = "linux-x86_64";
- sha512 = "e1bb5ca89ea0b60cb2997b9dba3fdb25e90914899f38a51d4506cb9bbd3d61f33d32ec3a9d2d79857d339f107134a021e0253b6a54916b48b6aaa5ef4aa08638";
+ sha512 = "532327f4e3e54a70bee7b8961d9b0d5e515755b2c45244f414547903104605d533fe6fab6f86e0c5d42ef7617d6f8b4301a836b26ba1da97741d2702ff9da1f8";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/pt-PT/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/pt-PT/firefox-71.0b6.tar.bz2";
locale = "pt-PT";
arch = "linux-x86_64";
- sha512 = "622bab9fe052fcfcdeb4d12b6b8773ed08e14dcf51fdecad24a638811a2f25c1a1efa13d7aa45dcdf06726eb366ee78c4abc7d22016303a9048df9af314c14bf";
+ sha512 = "22b8a905f1cdb09048cdf93ab719668f4f87f10927a8adebbfd3a88e15c3c59a9afdec25f4b20ef5680e07bd9b9a603dbfee5e4bbb5bb26319e0aad383f23eaa";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/rm/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/rm/firefox-71.0b6.tar.bz2";
locale = "rm";
arch = "linux-x86_64";
- sha512 = "b02769fd926eebc180eab8f3ab9aab7d2a8d78d81f51116ef156865c74b60ac76ec75656455557dcfda2323c3dbbb438f8979de64309851f5b77c01175fc4b24";
+ sha512 = "f5fa4bc45af9bb1bda5665691183b7c3d3d897c5e2c93693e8fdef34584e09b3f9cf03c2e6a6257f01b2aa75c32c168c5978299baae1622c406a89a7429c4095";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/ro/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/ro/firefox-71.0b6.tar.bz2";
locale = "ro";
arch = "linux-x86_64";
- sha512 = "572204e2a2a6d7535ce36ba9479f1fd634069a1fd9799eac6a3e5dcf02133859f4574ab7dc36018be88e53ab5a8bafb561e5994d013c0b9da7c9ea467183bb81";
+ sha512 = "9e69d45cc3a7ddbe4c541528ca65e06a62b943bb6d7e5fd512cc071282e53b55fefad23bfcd3f9e864dac75c593f9c60e92fc231db217ebe8de6a3fa35722a00";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/ru/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/ru/firefox-71.0b6.tar.bz2";
locale = "ru";
arch = "linux-x86_64";
- sha512 = "42a99586fa8d07827a597c83fdfc746beea7504e800037efe0e82b65868dcb0e1ba6dd2aa401dbe64a30879d521215d180bb39906ad332d9e362405036da48ef";
+ sha512 = "57ec718c444a261667ec837d8edd9141baf2f556c070bb2303b5c1d34abb29769fad186951ac15f5c72df7d63a4b823f61713e696615cf44b4173099235945f4";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/si/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/si/firefox-71.0b6.tar.bz2";
locale = "si";
arch = "linux-x86_64";
- sha512 = "288b629c23e7bd61b64b3f5947a93753ca780906b537d1f97892424c7ea9f890008370f5ce44e74062196558e9a088856236c98031996f5d9b40b454827fb1cd";
+ sha512 = "71c53d3bbeef8339d7428288dae67da992d72608a08ac337b8cac6a26ab65316dae865686e6b8813f0fe6d8d070a2d0d4ad59e0015bc1d2be96ba530ee69b90b";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/sk/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/sk/firefox-71.0b6.tar.bz2";
locale = "sk";
arch = "linux-x86_64";
- sha512 = "47b295382b39a040171ad46268da5005173a1206a3ea26c7dd8138d287ded24740f031456dccd2fdd72266691aa2d893ffc93211ebff2759666a643e3e448915";
+ sha512 = "fc262886813d19157238c7a575a21cd4ba37d30c4b5479532faeda51936438239c8f6f6c537051b7dfef7757d69afcdc5d6b6284091289deed28bae11aad150b";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/sl/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/sl/firefox-71.0b6.tar.bz2";
locale = "sl";
arch = "linux-x86_64";
- sha512 = "fec91027bc619c7a6d0092db4493e40ab31311191117e1cbb39bac33450c9f8705356405b6ee38b52201ba39e4da8141505759f891c7e6ae3d8d22f9ae29a629";
+ sha512 = "4623e812e069fe0478028d5297c4e3785b08c8ab524daab85a2dfc4610de0e99686fb6831a565640e167567d29f7ab2b8868cc566368f8d0222ac4def539be32";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/son/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/son/firefox-71.0b6.tar.bz2";
locale = "son";
arch = "linux-x86_64";
- sha512 = "8a1eff23ddf4391e77947519a5178724ba9393370669bc05764b971bdd930ca8ef9ede4cb0ba60c50daa2214d4212c6159f7379e16ec9a5c538ad8d7d39f0ff4";
+ sha512 = "89c8808d7de54fea98c2137cc1ee5a23ca00d5da79a4077f5ae361728a38cd0cc21768512fff4434f8152c555ffba4daaf837716cd9f0ecaf49d692b1c4f1aba";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/sq/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/sq/firefox-71.0b6.tar.bz2";
locale = "sq";
arch = "linux-x86_64";
- sha512 = "3811b809979c87996b8db041cef14b7987331067dffcedcedebf36b9b9569c70088a38a624361b25ea5dde2af6005fbbe5add558cde41d5cfed7687a2bd96847";
+ sha512 = "b041525c4bf2a99444a2936d6a7ea9b56d1feada9dc992b63c4c3d5ea911d494843bc60419f60126e96992c95396f5edec6dfdcac19186ec0d9c8a8d45e635f1";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/sr/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/sr/firefox-71.0b6.tar.bz2";
locale = "sr";
arch = "linux-x86_64";
- sha512 = "fbbc294a2f387e6ac44e4edc1a9b9a384d3677abdb6717e550f774d731037d0a7ce8036f25229efbacff75423e9a185423d2a39ac951c77ae62653097bc9ce26";
+ sha512 = "7a3fe5cfdec0c2a1ddcbc1fe466381db0bf80c9f3c592b1370be9931674bc2d8068bba61f5584ede38c6090e214f5156f38dc474c9a89fbd79aa7d8a98d4aae8";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/sv-SE/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/sv-SE/firefox-71.0b6.tar.bz2";
locale = "sv-SE";
arch = "linux-x86_64";
- sha512 = "0fbe4d264e97ce88bda435f7c8da09e589407030945b51b68004b5df2c0994bbe294a87b7a18a2e03a8d1de05cccbe2f23ecc59dbd1945c28b80c75e0ba45c1c";
+ sha512 = "807dafdfd5879993ddb4f637ccbb8bce23120a63c081970b1171793a0d050a0ac63b90ed6f5ed72a49292c2934fe7a5202cc7c607776ed5ee34ddea066843406";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/ta/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/ta/firefox-71.0b6.tar.bz2";
locale = "ta";
arch = "linux-x86_64";
- sha512 = "57b86a405d32d9ca991c995316d51fc6f9363dcdbba2d0d1d601f302afaf863911e035d30ad67751210b4e3c726b3734b62b63b7dab6cc2f69a172bd8c62493e";
+ sha512 = "843b2591a1bdfb80213f0ad067a36f8d0ab2aca987ccb5a2293d618eab2851aa3e06c1cf93022c52bc65c6eb774292a1e3a6b286ff563d05c4243c3315fe0d1b";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/te/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/te/firefox-71.0b6.tar.bz2";
locale = "te";
arch = "linux-x86_64";
- sha512 = "54ac916b2352b545ac8f5a9ccea2cc1ea5b3e267dadec7bcb06c3db7406f4dc5f7479a0f2c3954e9e19d093fed849df50b45c51d69753626149757633039a4b5";
+ sha512 = "cfb573aac3dcaf4de8b0807296081a9116fe67734bd2577c48b408130f408ee1316a0788b6bbe668af322d2deaa458e1ce4270f2d27a50b458f39d06291b46a2";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/th/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/th/firefox-71.0b6.tar.bz2";
locale = "th";
arch = "linux-x86_64";
- sha512 = "95ea774a8266d51054e7af4db09503963641981c8db332c8119e61c3d6349234aae202cc3e9726449454440f10f8ead17e4d6c682f261410937f7355cb7668b6";
+ sha512 = "2f07b01e2d1abf2da8b8c106d017064137a239501e1244a276019aa1327f7cdd96a047db6b3b7903f83a1491dad4be5f49eb26031d418c85397178761fcc448a";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/tr/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/tl/firefox-71.0b6.tar.bz2";
+ locale = "tl";
+ arch = "linux-x86_64";
+ sha512 = "cba0777a6113a40f5f593ac6c236b068095e226748794975cf0e63dbb79d95a414758e6aa5c88099ec716ff9c215a713a8d9c1ea33ceaf98ac607b708badde3b";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/tr/firefox-71.0b6.tar.bz2";
locale = "tr";
arch = "linux-x86_64";
- sha512 = "44b70293b353fed9b8435de36178ef6ee3fea108ad4ee129a1631eb32714c06aa23d58064746cd62a0f407b1f0557da38bc749c3113f3ba1d1b5d049eaac126f";
+ sha512 = "ba1a2b45f774e21bc62ab6d0c4f75b3340e261f57ce3138cd0d6000dfcad816a9cc141a601e0571be01a259d3ac58cc46425765cb11eb8f3f4e85fd584153d81";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/uk/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/trs/firefox-71.0b6.tar.bz2";
+ locale = "trs";
+ arch = "linux-x86_64";
+ sha512 = "6efa7b972d21256750945583916d2bf0968230beccb9ff69415543205631f8a45b946427790afa295d146f1a948a4bf8f331662c847bb698d185bcd18c269e15";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/uk/firefox-71.0b6.tar.bz2";
locale = "uk";
arch = "linux-x86_64";
- sha512 = "ec6beef8f0b068b7c301a4a1a0c769b66ed5af08414d5306549b9b077592b06a2eafc175ecb097b9ab5033dad15344e52588506685222c14f73411a5fb9faeba";
+ sha512 = "a9626d32502bd1c6c8de055a46dfcc85f20ebe5f456a012fe2ad079fbc75d6ef0f7718a440697152308cc59c857bb2f1ab570042ffacac1ba854a93f3957438e";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/ur/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/ur/firefox-71.0b6.tar.bz2";
locale = "ur";
arch = "linux-x86_64";
- sha512 = "d1efd485f869b6555672d80057dfecdf7775cd45bde0711ad90dcdac8ffab4b46bf04e9350a0aa7629d9939c953f434e75b6aa458cc835e6cd06efcc7fa1bccf";
+ sha512 = "ca98d745302107243aeb6c4a66c4ab62a830b81f083f2d974dfd6fa8c58b485913c8d066fe15638d871d08f22a5f11a5258b301effa9e188516550a682009e5f";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/uz/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/uz/firefox-71.0b6.tar.bz2";
locale = "uz";
arch = "linux-x86_64";
- sha512 = "b7cae3888e2bc4a7b31a0b7313b7476799b16055f7af8e4016083da8a71f40f523f9963d79f53bd6a96c1bffe2fe2d34d62518bdbd9ad137fe17f4c175fd0f06";
+ sha512 = "681d256f7d3509b36cddd1d985ddefa3c2227e5fd165a4cc8049d400d3fa9a68d8d97aa0084253b355754044fcaed9cd335f23fc1670b76e9e77448dcd2ea647";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/vi/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/vi/firefox-71.0b6.tar.bz2";
locale = "vi";
arch = "linux-x86_64";
- sha512 = "aa4aa778e35e72122fd857c736c226d62e5f6ec73f1075500728e90f9c2ddaf9c0e6033d1785b4102918a6db32a744617552769c29cedde655e9a3f0b173a4e3";
+ sha512 = "cd15b665c4816fcb07a16629f6a53cf096f9e4964b33d67179e603559b99480f188a4820b05e5318c11282423e9c31dd84acd59544230fb0a9a976f0ccd74a26";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/xh/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/xh/firefox-71.0b6.tar.bz2";
locale = "xh";
arch = "linux-x86_64";
- sha512 = "41619782aca727c09262de57a128fdc7936cd4b3ace84565cf687a006bd462a3218682c56693efbb233df221c66b2b545cd701b025d6b3a5308b132ff87b35a4";
+ sha512 = "c5684a4ccb695038722ebacb677e54d56ef7cc14dd82b1ffc376caa6799a931e89a86f061f01a5fedc183c77a5e2625e409a99a089fec07dd0a0a3fee1f9d48e";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/zh-CN/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/zh-CN/firefox-71.0b6.tar.bz2";
locale = "zh-CN";
arch = "linux-x86_64";
- sha512 = "befc922f6256bd8416758c4fcae972e939e645a752a97863ac0b432310605cbe46dea4c713d4ed86189a9f4094131fdbffec10b4d771b061335baeb180b75ea7";
+ sha512 = "54559f2db9a61921c32b371cc031fa6d6140f7f98cc6d8535ee043c6192cfbec4ff3d4f6eb999abc1003d6118e9d0c2ea0d9b18e4fc9e36573565c8a9f524cec";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-x86_64/zh-TW/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-x86_64/zh-TW/firefox-71.0b6.tar.bz2";
locale = "zh-TW";
arch = "linux-x86_64";
- sha512 = "3bd89f88ca805e3b19edacb97efcbf50ffb2f4b3baf67c1d64d9c475922c6ca5ace13e07de292f95efc0f78bd1b0fe9e9e9198288c3d874263c7be6175291eb0";
+ sha512 = "4a413a9697cfd2a4fa070454e5e08563493ff463fd1f0db2b059ea74291d2345ea4b548894e9c0b91b7ea633fbfa8dcc5a4f69362096dac007d49d19a752e9d8";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/ach/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/ach/firefox-71.0b6.tar.bz2";
locale = "ach";
arch = "linux-i686";
- sha512 = "800146462c9bdef3a5cc021995ec558ba02fa1b5310973286d1360327aaa9967430d1432775c44c21dfcde6b06d39f9b7b7568661734f70f1452e78071ee440b";
+ sha512 = "01e5a9943e1daa5036fa68a93dc193bdf699f65971b81adfdf20b97fb06c55ac63a9dca66bef31d1bc4940e6f318deca66387fd8b26bd4284871f61a259087d4";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/af/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/af/firefox-71.0b6.tar.bz2";
locale = "af";
arch = "linux-i686";
- sha512 = "61b65cbb84523e3cf98e59847d07ec5766b2db3d5fd27c4633add006d428aed40c77f100dd87ab222b29d95bfa4cd7e2f7fc8ebae2fb4712935f51546939dbac";
+ sha512 = "ea54247e9408b4e6ed9c7419384ec28cfe9b5c6cf421a640d1ec9872d5f013b567119ec45c019af393ee673c11eceed7316bfc58d7d7c619d1058176e7a89567";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/an/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/an/firefox-71.0b6.tar.bz2";
locale = "an";
arch = "linux-i686";
- sha512 = "f9808793e9657622de595b529fb6341c13ded793177413ff5f829712f7054f42c98de5a5e153deb3f8b8f3b3fc8e80fc3737e1dc5ec577731744bd0e992d7be0";
+ sha512 = "2d855a70932911b500d48c7a48c020e11b97eab44de44397a702e3f3bd6eb3511df4b13a8a65cd539f55aaf1f31990a6b796e3822ca594c880aafcf4e2af9163";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/ar/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/ar/firefox-71.0b6.tar.bz2";
locale = "ar";
arch = "linux-i686";
- sha512 = "9ab1dbce20235787d945f3ea6ada45ba174dbb9169f206c2aabeaa2fae8bba6f4cf55577c1985f59f62d2a302d97ad2e3d7b7baa68682e4ecf3b8978410b45ec";
+ sha512 = "5b1fbd9890fdcfca4e10cbc46ae39baae49928f226de643ec6e281d62fcfd6a8aa09a704ca2bb7cb5311d743e0124ea71054d54397a558c22c464848f4fd417a";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/ast/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/ast/firefox-71.0b6.tar.bz2";
locale = "ast";
arch = "linux-i686";
- sha512 = "c5e4aedcdccddd1968564170d7f74deacec13e801bb19cb97ffeb7923924d66649b2bfcd0823d8e2b27b737bf5b0b558c57f931f1ff8b6928d2e2ad0c63d270c";
+ sha512 = "a52a770a0a5a001846e7aea1ce9d55e36193b3afbb10dd31b6d1eae8fc861d74b3b5899cbd380edf567e401e9c560aa863720b52f746e81a5dac98f9db409381";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/az/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/az/firefox-71.0b6.tar.bz2";
locale = "az";
arch = "linux-i686";
- sha512 = "d67fba709c62bd06288bfe80bee2e08f370824420b52b07bd0e8c6dccc350770f0710e22ce55f9ac4bf989aea74cc3db1ee026baa7fde967fdf14f8dd9694702";
+ sha512 = "918deb37443c2459efb50c6756a02e7f2c0606c101ad925e1029c8215414d788eacde29067a2b683b4bbaa77895948126936795d309e3ef60f02987b599873e2";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/be/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/be/firefox-71.0b6.tar.bz2";
locale = "be";
arch = "linux-i686";
- sha512 = "9fcf25f380bad5cea7c8fcceecd0734239bcf10d3081a22a24899103c96a388596135676a0769a8c2cdcce0ae7abc67e8a0b65621725de4201919d250bc28f02";
+ sha512 = "d7436a7b071932c5d37a1554966bd65e1b286047f00c4a66a3adcd90ba88054d8c4b42ed0781a41c3218e97ff9d79774eb2768ec0044f9dec0e1b956a0a0c139";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/bg/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/bg/firefox-71.0b6.tar.bz2";
locale = "bg";
arch = "linux-i686";
- sha512 = "a7a5818af9299a4b63098c102019134dcd74001a92a2d672d2c3c9e8dad6a58c28fdfd14ab10b96262ce34fca4947905f100a5d89df0e106df3c8b9a0a1796b1";
+ sha512 = "1e68849a322575f78aebb284dfedbb1e07163227edf5580521d10bc69d389a66c4653993cf2384249f3627f30a6e61eecb9f8572c076e659ab9faa3b5313a3a8";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/bn/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/bn/firefox-71.0b6.tar.bz2";
locale = "bn";
arch = "linux-i686";
- sha512 = "60de18a8524a67dfb90ee9d272ec06e70b4393b3ed76acc7c86a545af561b323710add4a4d8a896982dd8bb48bf3e32496fe800abf50fed509d91f0e54a8d04a";
+ sha512 = "79dfa0fbaabe7c7b2e9088812313ee97a28e69e5b893463788784c79ff421c0a7588534b0467ab77b17c3130fdf071a166b96a16afeb44fc7abc5774a2fbd34e";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/br/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/br/firefox-71.0b6.tar.bz2";
locale = "br";
arch = "linux-i686";
- sha512 = "61cca84ee862455860c3889480852df1ea62dfd9ef18209ca24fde83b3971ed7788811b4c6ad57a19d32525fa67ac82ece938700682385a4b99587959bc2af9b";
+ sha512 = "17c6540f7351716e7ee3ecff540b78d34fde5197d35df0ca7c6836087a90bde7b833a64df7adcc1ea50a947ec1b38b73fb0439b70472a4835c307575ecfd1c80";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/bs/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/bs/firefox-71.0b6.tar.bz2";
locale = "bs";
arch = "linux-i686";
- sha512 = "45fa72a908bd24e6e8f35fbb1337b394850eeabc7d52252007a93f1f2993d4e43fadd3254a41664ecd76da29ed3b72dbebd95bf0735c71f07d9d19f3e3f723b9";
+ sha512 = "792855fa81350074cb493750cdabfeeb408349713c9eb52764647e25c102542fcd0a5d9d4ca4a038fd00fddda1316c0c771041778405f753b030d6c2cbac4cc5";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/ca/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/ca-valencia/firefox-71.0b6.tar.bz2";
+ locale = "ca-valencia";
+ arch = "linux-i686";
+ sha512 = "67c66f28063842ddf346a2106b31a75769a946b6a8129f6fc92bd8466b23ad3e60c5c513d8bae0245d0c05dd892c4a4fd5dfc0ca06e523bbac23b9d9e3d88d78";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/ca/firefox-71.0b6.tar.bz2";
locale = "ca";
arch = "linux-i686";
- sha512 = "53f9de3f0720b489cb7ae59c2dd2b7c0cbc6bb7306e802253562fb508ce0ff1415cf5b76c0a3eb085e592562cc1d39817009ba1e668e4c68f4ee0c8b5947cfa0";
+ sha512 = "a9c3d735f8e8e377b04b906df33c32c0649dee9ffde4314de517532b8487bb212441af50821bdcdcc346b3725a526f01ee6ca817fbbca624882094343fe9ffa8";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/cak/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/cak/firefox-71.0b6.tar.bz2";
locale = "cak";
arch = "linux-i686";
- sha512 = "ccac21ab9baea681bb170309fa3c1e7762aa731e49b831a4a45bb5a1477bf2582e1ea9ec78c8c63838589fbfe74b3f8e31653caf7c13355cc92de959b0d6820d";
+ sha512 = "5eb719e1d95194ba6a4d4153b6ed0c831a95ea41d5572230a661d3985445f3eea73190499a8c127de4ba461f8ab5a885a88050ce6129fe1a9abc784e5d335abf";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/cs/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/cs/firefox-71.0b6.tar.bz2";
locale = "cs";
arch = "linux-i686";
- sha512 = "ac08d633f909edb3663d7e7cf5a27c1226d91a244786f941fc4fe771a7d5104183fa43782b8d838bbb50ee9342be081e28467b4dfaaae1c4b2a39233d5a9e31d";
+ sha512 = "5c0b01697415bf3f2e47f2f707dbd618229f0e286b391c5baa0a0dde9de4f008c05d218c3dc8dade652f81723e7d1d2ca47561ed9f55eba8e3c8edcb67e6b717";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/cy/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/cy/firefox-71.0b6.tar.bz2";
locale = "cy";
arch = "linux-i686";
- sha512 = "176f3b9699e0b2b8c7f108add3a07b90664e7eb5170c9669cb5b67f2b0a6c0b2a6c47cfb2e34494467aa865f12c12c525fc967761878b92e067baff2d6e625ae";
+ sha512 = "9250627374247087905c38cbb90d394e11f1d4a788620c7e534ca8ff1ed00bfc9d3060371af326f79651bd7c70ab3727fb8ef2e8b51b7cb202b35e9c60fa9fe9";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/da/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/da/firefox-71.0b6.tar.bz2";
locale = "da";
arch = "linux-i686";
- sha512 = "29b8ccdfd4f202f418ce2005e5edff4f69d3c3c337ee78069ee9c13b9fd3e90d29b28ad2801d8133119ae3048b6a09ac8105dc4fbaf1dd8f267fd15bb9ed31a5";
+ sha512 = "7e5823171ecdeea65661e1b90fcee824ce43604027843d12ee9bc46ad8d348892c4748493cab69490726c9fa27019948ddd0aef203a44e99502356e2d3632e3b";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/de/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/de/firefox-71.0b6.tar.bz2";
locale = "de";
arch = "linux-i686";
- sha512 = "c041f802e2c5d57f013f018e192f2c62271ee15f53a7bdc9adbb447f5b3319e4da0c9743b0cf8ce4dfb03e94d0b81e0f8256b749c4eb3ea3a3b9833bbee28db2";
+ sha512 = "ccfdeff8354f5c05651954d37be71a1d4b6803517451fecd8051833e25b22996e3afb3e4b471e7348b43409d5ba05cfa9f1555920bc9a48e32417261701e852c";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/dsb/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/dsb/firefox-71.0b6.tar.bz2";
locale = "dsb";
arch = "linux-i686";
- sha512 = "a6ed5dba712d1c5512f5e0e1caad7f0b0f7e2ccacd891bad54aee79cb749bb79610a46ebc75bb662352bb8419d8e0f047c0b0f8214f11edf8153708040188b5b";
+ sha512 = "92db1f66b8ce5b5bda5122d8fc9420944ea904adf98ce353086042627d2e6da63eb61bb49d8275021bf32bd8fc8fe96a798f457b03ca0dd27e55535e7163f9c5";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/el/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/el/firefox-71.0b6.tar.bz2";
locale = "el";
arch = "linux-i686";
- sha512 = "987c29ca1d3b65bef9b5464b2d2c945cb66a6be671ce09b421218c3fbc6aeea0de6e5f7c2105943ca41b7f56d7aea25f8bdf4289eeff4618a92cf45c4234ed05";
+ sha512 = "839ed54492a56ece40b3408f051b093eb81762b6725ede4d633a24e9041883c47b36be5fb69701a7a7142041fe3b6112b7f17347f3e41070883ac3accf3e6a95";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/en-CA/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/en-CA/firefox-71.0b6.tar.bz2";
locale = "en-CA";
arch = "linux-i686";
- sha512 = "7e85aee04f790b6efe29ca592c38cd2962636d7b8b5901e1779fe371b7a8546f700fab25ae5a53d170afe67c3ac64345954b358965010e65fe1a63ef803dcfd2";
+ sha512 = "ae6f7ba7b3323d9017549bd05113a909552c538bd9781cdef0e4cc65f203e1628d3c589c2d9c34d8475d641b0cf4cc394ef3240b1d1a5d22244d4a38ca8d931d";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/en-GB/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/en-GB/firefox-71.0b6.tar.bz2";
locale = "en-GB";
arch = "linux-i686";
- sha512 = "a16b6b40a0c52c53b28113e5bc681b56846664899e5876d47b873816a8ee7cd309a1e49057b0bffbd923e5faa354f1f8ae4e01172ffb24062d7451fe361e8941";
+ sha512 = "de4da5a471f6127f04b84e5fd88b5f8c3757a790557c8e7aff8490575fef1409ddc3cf32073c83296acf9cfdda7f2291b086e8bee163d9b95187d8d0d804afee";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/en-US/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/en-US/firefox-71.0b6.tar.bz2";
locale = "en-US";
arch = "linux-i686";
- sha512 = "de2716443b6dc3757fe58d42ef4fc526c1218601650ba7ccb0b0a9f77b7acb04a4e4af2c79b7587ab8d8e3515ca6602b563fb54ac5e102ca30952c39843c7d31";
+ sha512 = "d0a6f31a44076ae24134b306483855fe969c28f95987f2b035d165bb6397f78545e331926a992ae271f6fff4bd66341b9dc46f89f8762b5fdb7d3099d21ac49e";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/eo/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/eo/firefox-71.0b6.tar.bz2";
locale = "eo";
arch = "linux-i686";
- sha512 = "bb0b25735ec9bc607661fed392c0dc841185f84b06410dc0c2b7a05245d62cdc4978285246d2b281b08507ae2de2b4fe561dc115d838a10e581e484cc12dffd0";
+ sha512 = "ed6fdc01e9ca1c3e65385d4625a5df22acff9e3b4753f42ee30a134d3f68483b868875be68bea4bad74ca920e3734c447bfd1150bd86c8349fbccabb19c2b9ae";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/es-AR/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/es-AR/firefox-71.0b6.tar.bz2";
locale = "es-AR";
arch = "linux-i686";
- sha512 = "6161b532fb8412151cb007fe0fa679ff0f195206d71b4a07f8b312a28c0fa0041f32e960fc6f88f3c88e54a850a24d00dc370e8a3a16fcc5b420c0a9cfe2e674";
+ sha512 = "35910231c2227d230a8a73c56a94d93e9941ca940aeec99093fa5bfa12835347138b4ccfc0fe7c1bfb002da7ce6c90a14185f62f6bb88d5645b19c34c7281bd2";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/es-CL/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/es-CL/firefox-71.0b6.tar.bz2";
locale = "es-CL";
arch = "linux-i686";
- sha512 = "490f550d9091a70a9a693acd80f24cd644188a3ed0199781c5c04583ae2a66b623df8a5d1a5d3b1c7617a214aef09f99d306577db5bca1034ed1afdea8d909d8";
+ sha512 = "6373fc5559ffe2887a0d4c042ba1417d8cbf3f32be687068cf194357d7b3ae7609dadc4cdf9dca45a2d4e02fabd587320ecac4c33acd22c05eca3ec44bc1f1f3";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/es-ES/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/es-ES/firefox-71.0b6.tar.bz2";
locale = "es-ES";
arch = "linux-i686";
- sha512 = "cb648224649c1f5a22c7b5eef4a4b4cb7381a76009cc1a4b0f2db7f1ca850f21ce3f5f4effe9e114f2ab55a0ca4a3f0180b5e7610cd895cbf1d8eff24a77ea82";
+ sha512 = "9a55ae7f5d686d722878fd09aa161f9e03746f016d42afad7d4591fcc2cd2d399552f467d44944cc610d6dc6abd4f60bbd07d78305df5e0cf7bd5f5a4f382be8";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/es-MX/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/es-MX/firefox-71.0b6.tar.bz2";
locale = "es-MX";
arch = "linux-i686";
- sha512 = "bb5c9f06d2b17507f9036192558029a6068bc4b62c1403e228284722fd1011ca002b5b7669320c3613fb8362433a13a05960945c56721a220fd8e45e2908367c";
+ sha512 = "6f7ca858aeb314f10f85f8b9e881281ca430bb5e97fa5fb79340a9e1215b5086986616c0a97484e54fd57e6b433dc4dd7aaea9c7f66ee0a6c0b210e37efcb2e6";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/et/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/et/firefox-71.0b6.tar.bz2";
locale = "et";
arch = "linux-i686";
- sha512 = "642e8fb33bbffe1dbfec0caee8299051678c930b5b8382b7dbb27a139aa01edc737566b3b88444425296f29bedb30acf7e1e4bc39aabe37a4705271b0ddfa2e6";
+ sha512 = "0c9a7d9de35cfb1d1e4ef1416a1862913cbd96ad35cc2f223e965adf8b0f23161b96d55a60acd87fee13698c05bd78d5d80d80c95e92c0bbe2587493421a5f06";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/eu/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/eu/firefox-71.0b6.tar.bz2";
locale = "eu";
arch = "linux-i686";
- sha512 = "b6856d8c07830809434528ade2e85da9577562e69e6753e0a3ba96e9e015642b77ee5cd913b017fe7ea96cd1eb985d8eed013c38e61078f37e155baf7d115711";
+ sha512 = "8f09a5426aa0e57c81947a59efa98395072489514f0d1ac6cc9bcda111692db8eb7436bc8ab3c08c5c5af2a5b1cca5269ba766e2d8b0c89b8ea327babd035916";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/fa/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/fa/firefox-71.0b6.tar.bz2";
locale = "fa";
arch = "linux-i686";
- sha512 = "46f320dd9b746cfbdf6d41e6ed4fee3c36027a21bf69eec769dc656d4c4620ee702e4f6bd82a3121f14218a68948bcdc032a215bb0effe93d35b5f5e044152d2";
+ sha512 = "6dfa007d83c6c06793744ae966dc30a2c0a5d15a1e1090fa918a9a0e48a95f2b17eb1287814976bf4578f37465e8db70967bff1ae36bef963d64bb3d94772df2";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/ff/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/ff/firefox-71.0b6.tar.bz2";
locale = "ff";
arch = "linux-i686";
- sha512 = "f32d17a087c4fa5ab1ac6b692709b067607b5a9efaf8d15fdc3d52f9bf02db3b3e460fb1350ee17f583a8b32e1823d91aa472451598dbc3eba2774b953b32195";
+ sha512 = "2c99cba49a717c539bee467f9f5ef558013a91fd2ed9065b7624abf838cf35dbb5451aa330030be750f6edb7d3c0683402a0a67bfa60761d730f9a5d674a0956";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/fi/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/fi/firefox-71.0b6.tar.bz2";
locale = "fi";
arch = "linux-i686";
- sha512 = "ed4ce81ee0446841d989ea575654463ea8186e2e1b71e771380f2cb0ce6b2858ac8903330623be00c57a2a50f639ae320e794681647292fb6ed060fdc850d50c";
+ sha512 = "dec8b214998417d9c6c4599b87a738daf808e0462ee0cf4ad652d3baa953ed270d862f255af480060da5a37639d6fb5f17bbe111d5df30da32478447d14860c0";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/fr/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/fr/firefox-71.0b6.tar.bz2";
locale = "fr";
arch = "linux-i686";
- sha512 = "0b199767300180ed093b32685373d1b702a2d09587df3a4d99fc9f0d6b82c41b4002e83fd26be00b24dab4c1c3d38552d46676a5df52a69474f623ee94d72657";
+ sha512 = "9409852541a316c8bed8a56a5a9ef8a919bc635c4f0ad686c2b194c174f5d90cafcaeb4f12b7f24a79a43051a0eacb3569df2579ccb600e78e92c0788a354a6f";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/fy-NL/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/fy-NL/firefox-71.0b6.tar.bz2";
locale = "fy-NL";
arch = "linux-i686";
- sha512 = "8e714668d8ad01ee6dc9cd5e5f607f393ec09434e62d1d08a55f4312a52b31591e64064bbf0da28e2e47d0c571e895e9061197ceb36d1ab5899f09de549b86c4";
+ sha512 = "57cf81ccff549109b337451b4c97038db249d7bfb56469ed0810ba0ded24b66166d310b4cf447ddd006878cfe4a3b6c74a9056c2c5b88757880d0c51f8c0458b";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/ga-IE/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/ga-IE/firefox-71.0b6.tar.bz2";
locale = "ga-IE";
arch = "linux-i686";
- sha512 = "4156af0bb459848815ec4bef7b91f69328cc44d9b23f56911849098d4b30422f013ac74597dbfe6610df093439170b5566e87a290e33dcb6b32d5e2e95525622";
+ sha512 = "9ca53ed31c2aba78e0e738ab3bc864e5bd9acc19c7414a229b1197fa7b464d11ee5665d5300b805587001e613e8f3375c5be8bdd0ac3ab0c4f7270bbf9f0bb3d";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/gd/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/gd/firefox-71.0b6.tar.bz2";
locale = "gd";
arch = "linux-i686";
- sha512 = "c2d188a2f4a63f9cc106b2dcb64d3277aea07de0f4290fec560927d8ac577ae57c0f6f9dab998833a51924f1f4eb94cbce9312ac7bc69205a64fe766093c0847";
+ sha512 = "35a02ab1f906ea13b79f42ec6dfe9225dcff87bf66f9078aa514a5bac3ad5335ac76e4ef61576d287db0a2a87de42faa18f14cb07e9c5518842742dabf77dc32";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/gl/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/gl/firefox-71.0b6.tar.bz2";
locale = "gl";
arch = "linux-i686";
- sha512 = "c9427d99935fdfbf3b5ae3b0e9ab9f2b31b0a7b0d5b55b14effa1fd979d5f32b73016c939821f1db6eea286047334486b017b9000803e6ede4bcd4a564e89c10";
+ sha512 = "8d0022da05342ccbf5a3cd16f12efef4268c4c3a8595357951732310bb2c8b0b948cc93f6098e82b199097d2a6fc6584b092f64a8be76b9e4a341ff5d98e01bc";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/gn/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/gn/firefox-71.0b6.tar.bz2";
locale = "gn";
arch = "linux-i686";
- sha512 = "e039e1bf1f0250c1179b3bd185c1a612754f496d39e087059bc485af6a280c15cecab6e7869a63357c7b0dd713ef3efe5ceb6cc4c1f7334fc67560722e63b523";
+ sha512 = "02a86e64360fc8640ab491b81162709132f2ce05d412fecce5054dd8e17d29cc212c2faa00837ae99367f6be0ca92631d412d51a1466f3dbaabf4a147dc3c4dc";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/gu-IN/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/gu-IN/firefox-71.0b6.tar.bz2";
locale = "gu-IN";
arch = "linux-i686";
- sha512 = "9a8d9a076e521a8b5a4f1cb3c06538d9cfcfbfe32862b48301c202a212beeea2d888964d317bfffbb4e4b5a56ef06ff2acda22f0b129a2521d23a5234817fcec";
+ sha512 = "f27330d3610a1cb39826d778fa72d6387ef305a136285955ffe0d95a86b03bb414215c7cff9def0c55fadd4b1fc42ded4f8d1b3bdb94407e2ee9e9c252e1fd84";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/he/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/he/firefox-71.0b6.tar.bz2";
locale = "he";
arch = "linux-i686";
- sha512 = "763c4dc5241d3ec4337c17d4f7c7ef13667ad1a7ace2e71b65ead7fc4e771ffceb1eb1772c340ed8349cf401b1d9c4fa7f4e16031f5227e45a8e813e08437159";
+ sha512 = "fcb1ab26f3a38d58d778ca799b6903d0956e53b352db864e213d1f64bf0be4615ced48be942b3db27024f545a070c4948f6f715e799d697c783f3c781eac355a";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/hi-IN/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/hi-IN/firefox-71.0b6.tar.bz2";
locale = "hi-IN";
arch = "linux-i686";
- sha512 = "a6092b8f611976117489fb9a860a801aac9fd598394be0b42e88091760a7f05c10d04d4e90b228a801ce784a981f4770c78e544614a68c2d9a0e8ab13fb89ff4";
+ sha512 = "df4a66dfd0d55e31f98bf919c827234a0df7d6100daeac0ee16a1f2c7bfa06a3453bb0ee139537ab334ad7670d5bb9933ff8fb3a84c5d20b82b3f8a6313048ac";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/hr/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/hr/firefox-71.0b6.tar.bz2";
locale = "hr";
arch = "linux-i686";
- sha512 = "ae2d26a2e98cc180699fa5f0a8fa1426525db4ccba99a57841fc8499e9595f0231de7802cfe347a81906d3abec3503b624ff224b1392ecaece17468ba12bad9c";
+ sha512 = "57520871eaefe4d4abd8e7cb2ff02339b35b5ce9cb307d158e859e141e59f737245eae2b72178d8bb23c1b8b7aae8b743476e02743617d7400e1b043e7886402";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/hsb/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/hsb/firefox-71.0b6.tar.bz2";
locale = "hsb";
arch = "linux-i686";
- sha512 = "0524a4f4ba2ddd3143f9f95e07749aa5f8c37c8f31cc9030f220a99d1a8d270b61ebb63ee3118edc79712f3af3f1795ded34492144d0dcf1857f04cbb3cf3451";
+ sha512 = "33746773e8a0bdb03c03aab367425d4da1934ef4ef469e061364b68953fbb824c1f3bfa7b1b513b81140150258d9ef07ad133b3506336294100d24b6d54319ed";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/hu/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/hu/firefox-71.0b6.tar.bz2";
locale = "hu";
arch = "linux-i686";
- sha512 = "64f4bd68c9a62965162bea7ca4bcf15369f9d3c69c0f6080d0bd660202f2a546f39835b8987e26da3752adc366164b451f842f2694305bf60a2b085749b13827";
+ sha512 = "d15539bf57efaa88a8df9f002c57f31c057e21994265a4e52c8d2680f9839cb271fe50ce7de50a03bd080ddf77e19ba216161e00ba772de6870966ef826d72a3";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/hy-AM/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/hy-AM/firefox-71.0b6.tar.bz2";
locale = "hy-AM";
arch = "linux-i686";
- sha512 = "6d33a2bf17038e24c323bd53372974062fe5a11278eb535518637ee68712f4c2da93a3dd3378161f1e67efc51a06c746578af10f02c81fd25b747820e963b5f6";
+ sha512 = "b90e40c357f35045c9a4cfb3bf10b50a0623d8ba7006880482d377dfa532d1c7afb8c67ae7e96b4b2ebfff3d3a72ed515533cfc2a7fdbee5ed21ca1689885829";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/ia/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/ia/firefox-71.0b6.tar.bz2";
locale = "ia";
arch = "linux-i686";
- sha512 = "0e4a78c9c03e7d87a934023cd0608426794f3e9818c7929b1e12bb300cc11d576334396c1125ceda555907363288726e286f6a376d6e301f386854ad3b437d35";
+ sha512 = "3fae3c87c43e3409daf907e1cda6e336a88b7aecf0767003c9ca2e81ea48dda830f7d2d999bfae8e84699adbc581daa964c8748f98f29a9496cf66739bdc3a01";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/id/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/id/firefox-71.0b6.tar.bz2";
locale = "id";
arch = "linux-i686";
- sha512 = "76b89937f37aedf1534b8e06601c9d59680426a55b3df3726318f438de1ec259c335876a1da31c6996e54c0d9efcc651e1504f764d4b426db2f0d97a1ca1e9ff";
+ sha512 = "d6b604e2ba835747710120bad9af28d99179bbef2936fa1cf04bca89706f9ffa871d71127e21f1d2a8730a478c2b8d36dfa53fd77cf8775e6129b78fd552bda6";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/is/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/is/firefox-71.0b6.tar.bz2";
locale = "is";
arch = "linux-i686";
- sha512 = "17c164cc5a95f3e89e2bbddf58442da84dcfe784812163b68740dd1caa9ab823333c3188abf579601437217e0e9e58871424d1227b4ade6a0fc77e5798ef9099";
+ sha512 = "a4150baaa6a24e1fda1ed51aa57770b7796e5b8dfa41fa514625cb18dc322ccf1a92c6726dffe7e47123ab27f9f3f51e65bc26956ca851c66b647324e1db12eb";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/it/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/it/firefox-71.0b6.tar.bz2";
locale = "it";
arch = "linux-i686";
- sha512 = "ae37e92971d2f0c6ce322011e66c2857aa73518f1d4e8d26c3c2cf1d99bea8909ff2541146b6789096af5141cd927dc82f91ffb9f7eaa0fcf4276d4782e72a97";
+ sha512 = "8e6fd4396aa94274ef7e93780f3c6afa6921cda75bfea904e41a34247357569d00a4b7a85d3846faf4454d11658c49601a677ed7a9717c199b4fa36ccd0ff3cb";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/ja/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/ja/firefox-71.0b6.tar.bz2";
locale = "ja";
arch = "linux-i686";
- sha512 = "32690138d8c3dc2be001579602269ab5e89b7509f6d289a4cd0fb50b90e7a9a61ea57af8b064f904833504f0d523f1bab0a03f456fb75c967cc87f3e8e331b9e";
+ sha512 = "192f402abc0ac43280fd2c3c26984dffe78c33fb27dda0b3be1292a055ea16ce7457c3d9b1d10fb8508ed2455dc50bfc7911fe36487ac3c3fb901a197a8f908f";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/ka/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/ka/firefox-71.0b6.tar.bz2";
locale = "ka";
arch = "linux-i686";
- sha512 = "6611137ec50a1a35b7ee3fa15a2066fd3231717ed6f7a4884c36306653226ee4211e8364e4872029d9b1967f69d10b799a4d58131d082f882e1b39e758132ebf";
+ sha512 = "d16f350268fe5650dfd8a650c96a3c4e23286c8171e3c7b4e351d71ab5a28e7cf71e4156bf4ad9d443ed991795cc67527bee1c07fb45371165e01229356c5b45";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/kab/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/kab/firefox-71.0b6.tar.bz2";
locale = "kab";
arch = "linux-i686";
- sha512 = "f06c8fb18639967870bd581d2757ea66631f35b167688f4693198f6d70d1f61985946216410c401f0aa881e566df5a0f13d085e1ee880a35fb9ed21b0fefddea";
+ sha512 = "f85f5267aff327edc5efb3614634bf6343831f65c53a718efbdb3ef7d8e3f7dc9d763ea79d0e369b75025e105c17c16943fbb218717a2d7421d1ca1acfdf4424";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/kk/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/kk/firefox-71.0b6.tar.bz2";
locale = "kk";
arch = "linux-i686";
- sha512 = "b22bae385110057cd77440101e27234afd17dc74602bf05763975ebc68e0940b4501ff168613fb664b2087a2782fe44a52589ab9972cfa44f9097513460cada5";
+ sha512 = "512d930738589959d8fe274bb5d8adf77061a21b5b7939d42fd434bf7606468143097dd9fe0aef41e0061ae03cbf0a76e7b82fe137168a293e0a56728622dac0";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/km/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/km/firefox-71.0b6.tar.bz2";
locale = "km";
arch = "linux-i686";
- sha512 = "7c49611ba0dfaed7717f385925ccc621f5313496235a90c3851d26f11ec183541553979e6efe67f36faf7997d1e27a15e3d5646f33ed884fd66e6553c93d7db6";
+ sha512 = "4b00a6e18bc6f02c7dcb003991c4363acc0289dab251388b5d80d2217ec434a4a72f042ab884ad0ec934ad21eab367e2c8772d9e52fc1b2c782e8cde4e3e5b60";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/kn/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/kn/firefox-71.0b6.tar.bz2";
locale = "kn";
arch = "linux-i686";
- sha512 = "c1fa863fa066a7832975963afbcf63aff6caf702ee8c58e2d54705e61b1863d71b81d7d0b9b8da7cf41d7c950a66820d8e1137a32ef91bb283ffad9b36b84388";
+ sha512 = "4153802579839e946d6f481aaa0bdd3dfbc7e8eeadb8f2cfacfe16741438e203d75fc06a96d8533ea26c3fc6ed9b4b8de235166bd9b3def7c506cee7ea9bd456";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/ko/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/ko/firefox-71.0b6.tar.bz2";
locale = "ko";
arch = "linux-i686";
- sha512 = "8d179e7660331ba4c90f666ad3792064cce4fc551144ae3a8d550f620765e43274ad18ca9eeef988c2a7ea612dcf82dfb65cf225f875b154a4d4a4c11e5d7a64";
+ sha512 = "1af1a017467c60833a882e42459adc9240b139b472809417daec15f058e93b7d862ed66346c5d8edd2ed472c7768c6939a94c74a9f774f8fee038e5eb2d5d001";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/lij/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/lij/firefox-71.0b6.tar.bz2";
locale = "lij";
arch = "linux-i686";
- sha512 = "e36bd824232bb3d7d7fb4779e3207cdd504d84861bd0b5b2ced6a29ecb9d16b10e2fb267162ca96452f52e8089a085021869eb107ad8ba5cfdb49f8e42e56648";
+ sha512 = "20011e79a9d2907e5acd74b0aac4b007aa7c5c29e86163e9b8ffe1e00cfa9deb62586c9564e2193a003cf5e6ddfee9eb93f873c5d2a7d3abb1586fb5484fa7e8";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/lt/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/lt/firefox-71.0b6.tar.bz2";
locale = "lt";
arch = "linux-i686";
- sha512 = "4ec494f1fc2260d73aabd695a29441d12620a8118945974e8a0ca6f21a0e9e49bf8a6378d4409f26f05cef369c990e1432d0b11eec99b98399e994703ba286f6";
+ sha512 = "b4666068b53dfdb843a8b46e9969a5a653c57b30753fc2a45e661ba3ce9dcc0713e485d3dd39885901de7bf2f2b54138b3a2dcc13411ece5216758aaa38d6e53";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/lv/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/lv/firefox-71.0b6.tar.bz2";
locale = "lv";
arch = "linux-i686";
- sha512 = "3ffa772cecb4cea1c775b20b3ce505c2d84a9918c1422d85c5a2bde80c4b1432f223d828343af04c7c9518ae54bd7771e8144b66165aae1bdd140e068d0bda1d";
+ sha512 = "e3546ddd2c656438a13b1bc5f4478f8bf814fea7044d168c21017d581447dbc506faaef443b09cc01899ac59862cf60633822d2f8cb73170e5999c4029c378a0";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/mk/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/mk/firefox-71.0b6.tar.bz2";
locale = "mk";
arch = "linux-i686";
- sha512 = "e8cf48b2e4a841c6101ab0759db844dce8865bcaf056dc0d2a5c43653bf86602dcdb337422a8149a4d4527f33ff79509d4c4a3fc221ca50c0f78fac80d7e45a2";
+ sha512 = "b45084736ede3cc740e81aa59e7fb423d17c724075fba27ddcfb584a651d4cc9b0f3bae95a296dc9001485bb089efa1fcd1ea1cef030238e556c78f1d0215957";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/mr/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/mr/firefox-71.0b6.tar.bz2";
locale = "mr";
arch = "linux-i686";
- sha512 = "a6be024f8c41f106157845fec1d5d4a5f81456d76f174883e8bc3d2f1d8dae327b20de89539980fef316baabdaf2cdf058dc91c12bbad1fefa0f374d66ac3222";
+ sha512 = "3df7b84e1e315040b6b16faf8ad8d82b1fc29d3e52c49e86c302209721e7c43e454b30ecc9b89807529c5137a0788db300aa30a21d3fcc31017c834bd86064a2";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/ms/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/ms/firefox-71.0b6.tar.bz2";
locale = "ms";
arch = "linux-i686";
- sha512 = "4beb0656f90497f480a171d762d3b85260f4f7388847260faa15bf7835bffb88a2d44657401b5d0680992864b1a4ee8acf6a6f56d3e9f41b6704808f775076ee";
+ sha512 = "9a66335f84f29399793706d69cfe4369c320d1cb36934f57f9c0d4e04f29584b0e9a9717dcd88df19d23814610ed84da3192e8d2d2dfea1713cc40db1c3d9f94";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/my/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/my/firefox-71.0b6.tar.bz2";
locale = "my";
arch = "linux-i686";
- sha512 = "98c47dd55ce49f4933a1fd67626a6edaaa20b4945ffa21195f19c9676f284081d32de83047dcd6d0e7737be94deae34fd306484f0ea80527bf0e3117cb67fd04";
+ sha512 = "8586219819669d4451cea83044fb9debe2b6db389ba24b8dcb927361e4f48c818e7e7eda073004985c13a78c25f8cd7cc2e02dc4c188b2dab0a30dc707d5aada";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/nb-NO/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/nb-NO/firefox-71.0b6.tar.bz2";
locale = "nb-NO";
arch = "linux-i686";
- sha512 = "5d51f3e4dcdb82995c456e164bd4875e735029238ad47e7361c2af29c2c22ad43398279dad33356a858e054e268e846bdc72d8a82e869f12d2871dea8f6a75a0";
+ sha512 = "32f847d6bf444eefb03de167dd695543ea69f62b9205016e18c4f099e9312f6db87f879d9050266c47db43ea50b952b5236997aea0a5a980c90f2ab414ebef8a";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/ne-NP/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/ne-NP/firefox-71.0b6.tar.bz2";
locale = "ne-NP";
arch = "linux-i686";
- sha512 = "794aee0947e1a3b81534fee16e3d7efef9fe6d8eebd8ec18b8bb120b3a3cdfcb4929882d09e8ee15136f65d88c0d6c25cbf8570f86e8c0f337f86f12fb11580c";
+ sha512 = "90fffda6e1fc345a1dd3c993d206c2101b8a5f8b03abd3801124a4c0fbb3c9a6cbde09cffe9c181f2d6eaae42af4dcb19a79983d9588be4ee2ffbf3dd270adcb";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/nl/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/nl/firefox-71.0b6.tar.bz2";
locale = "nl";
arch = "linux-i686";
- sha512 = "e63f00aa526cdc8cb4eba86f4b920dc38e0a5f9eaef0a4103bf380f72b9fe2421aa4ee1417bca18da719ee01d57964c2edf21c4697121d70820686ad2f7379df";
+ sha512 = "eec4bf72b0c13cfef5111d64f5d7e01b0542d48d8796c4b807914b620352656bdaaa0e01a6625719dd33aa53edb9288101542639e37c262fa49b14a7ce24e776";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/nn-NO/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/nn-NO/firefox-71.0b6.tar.bz2";
locale = "nn-NO";
arch = "linux-i686";
- sha512 = "d9e30d8d820ef5b07f6814cb5e37e3918b321968229d33911afa815ea6e727f4d3b505a397b60f1c1e679dfb79f9e130de450c10f8946035153f535060b9d4cc";
+ sha512 = "f82dd5a5f2bae8610551dc340930054f291f13c39d4cd56c0c1c6df47434d0d7a350dd5f4e05ba5aba73a985af228db67a780c9a9084e3ce8b4acad86a613386";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/oc/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/oc/firefox-71.0b6.tar.bz2";
locale = "oc";
arch = "linux-i686";
- sha512 = "94004a03a0b07fb91a30677168d19ecfb29d5613483da62859cc68d9e392f94ecfd87f29b5f3c44cdfbb3fe067216fe4f6db997da2368aeb289fb7b1d83029a6";
+ sha512 = "4e8796ffdafc1a30056b972cc7f2287aa4dc5ac1460601b23e0364abb3507832bd10f8cc0feae3e1dc2bbd8835be693d7b301554d7ccbaae401cddc58c703562";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/pa-IN/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/pa-IN/firefox-71.0b6.tar.bz2";
locale = "pa-IN";
arch = "linux-i686";
- sha512 = "5d4d9952600b81a93ed62314a536d91729ff6a423ae9359436e632c9d807b13ac19fd6b1d2034839450ed5ba5411b91afeb52d0cfd74ec84a1924b6036563b74";
+ sha512 = "5586ae4d8db7dbc7e2a0c3ac67d55a3a161aafa342690a58c92465911cf1329f2aa9d239d861295455038c894ef29c84e5cb4a06460661e679f118dd8b15480b";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/pl/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/pl/firefox-71.0b6.tar.bz2";
locale = "pl";
arch = "linux-i686";
- sha512 = "6f3f628b38e06494d528c96071c0ba0738582da37f16a4a28eacbd17aa7574f1ef795c662ad09b8a15637bc25fb6b791e1bc54b3d530031c66450f5f7ba3ca76";
+ sha512 = "055aa65d85674a79352b3d634dabb320bb7c2fd978c5b011f3e3f537ce1436fdc3e2cc2a316d0163cf095c1b9afa2e4d8a5a1ff1bbc9bddd280cbd88a018bd73";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/pt-BR/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/pt-BR/firefox-71.0b6.tar.bz2";
locale = "pt-BR";
arch = "linux-i686";
- sha512 = "e97eb866f17277db6303c58411fb5f4ef561884c0e5437dc09d3da63145107a8ba5862a8d965d4c5ba38f40930e82c440ae1a26b023f6a212ce177c77df72f4f";
+ sha512 = "840391d56d7d31cd26338d49f64a56a6c48f52566fb3d534b5c6484e0062cdc024c2a30f65036f3255e26688574969e831ec431e071d575fb56b560b65031539";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/pt-PT/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/pt-PT/firefox-71.0b6.tar.bz2";
locale = "pt-PT";
arch = "linux-i686";
- sha512 = "81cd5a4c5b2a89079a45826f34ebd6564a929e1ba73dd07efa7d8a8b4958a36fa083377bd0e7b6b1e86a83a749f1117f3e7f2703961e668cced5cbdca8e95c10";
+ sha512 = "fa1fc0eddaf1ce287ce48796d8e6f1ebd279277e1c33a11f2d4f7abb32424664f555d27abf317930e1053769e48aad3bbeb09e54bfe3c680a99381d42e54fa18";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/rm/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/rm/firefox-71.0b6.tar.bz2";
locale = "rm";
arch = "linux-i686";
- sha512 = "2b78c41faea2f3f91be9c21de826e5e8a2533a76dc925458e2f75f085fbce71bda63dfbaedfe988f29ef9384a0ecbf4599174a210269c6adf3f875d227374385";
+ sha512 = "e035ccb63bc220aa283eb561ee92962d00848e6a02f5d4869a82345ffad05c9e2b638dab551d532621e3b00266692fa33a7277acf8156f368d917290d7740472";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/ro/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/ro/firefox-71.0b6.tar.bz2";
locale = "ro";
arch = "linux-i686";
- sha512 = "d01b01df0d9e25635b85abec0e0ac081beee02a97bc50b1902b271aa4ae5cacb410d7b9644d76785d54622553eeb8f4ca4f85e40c7867c6f99840de570974a2c";
+ sha512 = "9c1071cdb64f479a3753554e3e0f9f1a31e3ef480722cbb510dc9265c6a1d9efec855d60a09628998abacaee39dce6dbc1d6bf5336644c8f160ebad6515fb356";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/ru/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/ru/firefox-71.0b6.tar.bz2";
locale = "ru";
arch = "linux-i686";
- sha512 = "36ac6ec95c9c1e3d5caf1315854324bd0cb41fd6e83dabd81d3af2189fcd111ea7ab8a384e5a07f4618c9046b8f59c3590c6bb8d1a12a2475d19d7d65940a26f";
+ sha512 = "287aecdf7a132ace21be8a215502f6edd00f824ecdb0ef68633d54f0983b63795ac06dbdc046762f036559b1632672366716beac300e85f54735a4d54ef8f79a";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/si/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/si/firefox-71.0b6.tar.bz2";
locale = "si";
arch = "linux-i686";
- sha512 = "796878bd3a982443558d042c64520d6cd65c1eb247c6630e1c1073c75be3a2d3e3d4f164deb44336ff536c6a7a81650c0806de79cc3698d6215fb87ff2ca50e8";
+ sha512 = "38c0e1f89b30b87f61fe42755ceacb8b139fd2993410163f2d80b892ff081321753fb2c9b3ee95307afdcb3deba08a825887f23b9c75b0091fde181a1435452a";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/sk/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/sk/firefox-71.0b6.tar.bz2";
locale = "sk";
arch = "linux-i686";
- sha512 = "48f3179f9ac81ef1c69a44540adf994874a91770eb1b2af51804a791c10540485a61af2b1fd337f7cec86682c5a3df24e8e030add48773459b8ba7caba6e88ed";
+ sha512 = "49c0b47c5cbf7736a757971bb12d08de0c88a405984f3049b54706c6113d9766159e18230076564cc38bd1e9515d8f9a0adc294b73bea96c34c0b72b5ceaf492";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/sl/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/sl/firefox-71.0b6.tar.bz2";
locale = "sl";
arch = "linux-i686";
- sha512 = "5ca3ddfef139448e411bb226cd2abb3a8fc4100986a294bedc5bcc4a1906a6b0ab82f6e3d536dfa66e404bd5b7eed671e98cb22f1d082764cc5d3080fa0363f2";
+ sha512 = "53604559cf49c2a6a509ef51d6abc293384213553f14e7f2617452f314454dbde480e561de646efffecc31e3aef44375d07765a8387abd2edb515bacf9771729";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/son/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/son/firefox-71.0b6.tar.bz2";
locale = "son";
arch = "linux-i686";
- sha512 = "a14b7a55043d2aeec02d1f28f30038e0ffbc3f76df1c5abad04413673d5e6d7290feab39e0ff40bfc35bf993fc49311b0cca38735c367da233808910c2a864f7";
+ sha512 = "ad1cadc39f09b935a032188664fd4a068e6936a650f6bdadab834718a9ce061b2920004b0f3e59a27a5cc43bbd142d7e2a5125485c67a691614b64f88118fc8f";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/sq/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/sq/firefox-71.0b6.tar.bz2";
locale = "sq";
arch = "linux-i686";
- sha512 = "ea1575fefd6ffccb7a6ab428663de5e80b48062e13d3424d05b5aa3b86972236839f6a0df7546b5ead27be0a40293f2e9d74472d2756d9fa86bad18d478993de";
+ sha512 = "661adfb7a6f0a584a16042909c0427f9870d3ee57c0be44e6fa6a359076a201813cf55de5b39d6e00f90d419565e4f808e0a8dabe6bf8e3ab9e77de29dff00b1";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/sr/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/sr/firefox-71.0b6.tar.bz2";
locale = "sr";
arch = "linux-i686";
- sha512 = "8c5ecc59a41613ac259e1f1515e6475fada7cb7c33650722ad9d36005b8aa173afaab254eec004be082bd74406c88aa4754dc3f4dd131b9761fc82778a7dc573";
+ sha512 = "2ca948e7ae31e2151842801c021bc4e9ccb2261e52d22749b051bb6a56fd96b14bc39b7c461d3d081ebad876d387d2bcbeac6813dce413a9e8e1d7116389aad6";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/sv-SE/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/sv-SE/firefox-71.0b6.tar.bz2";
locale = "sv-SE";
arch = "linux-i686";
- sha512 = "f6446ff3add515a7fe46af9752206c05632cb95b5e65e19c331556a6e4e304f765f8cfc9cd90fec2892fe7302230a5b3b85c462a557e7074e255ecd94befbcd8";
+ sha512 = "297e10d7e5cd95b536f51705fe5ecc5b35ba4d9efce371f42fb809106ea3cc0a0804fa43b37b6850f6ac8e95de4367bc05b8de4b539bc1a9e3fa6999c6d19984";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/ta/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/ta/firefox-71.0b6.tar.bz2";
locale = "ta";
arch = "linux-i686";
- sha512 = "03302b3da44fa586df13d2f20faee5da5e82151550498d7c0e0fc70efca8a98db47443bdd0289fe90d602ca53c1e82c9f610cc8432fefe5c99878faacd0c9153";
+ sha512 = "3139fcb90ddfe70788f538c9b625c624cbdca69668370f526fdc074039ee2e543da49f020a6b813c1ed8414ffb12dde10be5505bb13781bb108b43f4bb3af703";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/te/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/te/firefox-71.0b6.tar.bz2";
locale = "te";
arch = "linux-i686";
- sha512 = "49b3921154e909685e8e52a892a2af322e650109fa6b17bcebd62908e71b5b30c0346905c2422124629d93e1cded40b6f81222ad4871057ac482c1df7ca3b53f";
+ sha512 = "0f4534486ecc0c9f53456e68e411ebe673a150b08b3d9c6e903b4e5d1de94f77bbfc326802fd5d74796c55fa00434d0db4b3a053c3a730588a96323e43f3b2e4";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/th/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/th/firefox-71.0b6.tar.bz2";
locale = "th";
arch = "linux-i686";
- sha512 = "497da9beff43403f2b09da713474dde509ea2a71145fc8006a852536e4ab71a83586d67d6b7238b3b0ed3d135db6bb2716716b959463b13d92935f2b1ee147ef";
+ sha512 = "3a673aeca702239df98e2218260b0d38361aad8e00f8f9d7cc025b861aeb737fef909a2220eda8aa5c26e393811aa55b06eea2d969685ffce579e472a40c9f22";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/tr/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/tl/firefox-71.0b6.tar.bz2";
+ locale = "tl";
+ arch = "linux-i686";
+ sha512 = "f97d4709087089be241523fd52acdd95f073cd4a793e7013c00a07dea21b6c493071faa0269402c8024498719e86fcf9cb11a919a0ae0f0143d64dfd9f4eaf61";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/tr/firefox-71.0b6.tar.bz2";
locale = "tr";
arch = "linux-i686";
- sha512 = "43762b9401ad7337e0ff00003a07d374271ab032a4609bf9abb1fc3a69ab578e45721395d06aa4fdf41e15a71bf503156632b5e3d6f94b5d6e62592c78a267a9";
+ sha512 = "0747a36b046240198ac2b7359785fe930746629fce71d2a1d8728fe7cbbe775bc41ec0cce4c7ac5710e1e4087f908fdf97e03d192519b682107361615c724f2d";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/uk/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/trs/firefox-71.0b6.tar.bz2";
+ locale = "trs";
+ arch = "linux-i686";
+ sha512 = "84f4d764ea2c3daebe6bdd1fe3a46fae22a065bf5e7e6e96114730fac60dc9f4b1887b12ef82e9adc705552c6668f165777e7c7a69d5052285eb27b45a4c04d4";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/uk/firefox-71.0b6.tar.bz2";
locale = "uk";
arch = "linux-i686";
- sha512 = "e10bbbf8a8f899f2a7b57bed9a846d6b490303c456027b034a750dce6b21416415eb0d9420629d008d901ab903e7c643fe7ad5bdf5aab511da9977d536d71ffe";
+ sha512 = "7a7e224493a742489a299bc38595d3a43c06cd38241085c5b909cf45b240df8de238bc4e3e7caa786f591e87c20f00cc19bdfcfca29d378d523daca81b156788";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/ur/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/ur/firefox-71.0b6.tar.bz2";
locale = "ur";
arch = "linux-i686";
- sha512 = "9155b7efa37b299ce74ed6faacafb354947430265a34fea9e101a9f0947a57a4a3b001bc7b583002ea08d3b7f33074926c4f6184b563fa5a1811b2b7a9b05fd6";
+ sha512 = "32b2c6cd8fe45cacc4ffb3fd9c553dc5ef2b733c695bd051b2cd036f53f0373151223b68c7b5585c446183199f9dcf161d26717e0ee3dae65eea8baad638658d";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/uz/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/uz/firefox-71.0b6.tar.bz2";
locale = "uz";
arch = "linux-i686";
- sha512 = "a3a3aeaa6cfa114e619ba9685dbf9d796015f26b9fbb4529f69d17f8c40c0771d58ff044cd4f97123096244f29b964f1756868e35b5dec3fb79f7b32b7a31ab2";
+ sha512 = "b89fd5af10fa965d420d951ac9f7c6fb214c05f86cc95373b41037935f83d845e889f9030a72788cc8909ab35f17d4e922a26fbf1f482157d496fa9e56921369";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/vi/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/vi/firefox-71.0b6.tar.bz2";
locale = "vi";
arch = "linux-i686";
- sha512 = "167a38acc587a4479fcd15d1e47f34e0412e846a0689a119c1f382ef119bfab3035450326d086f6c8efd67a93300df234d53165609c47e94327b4415f40d88c3";
+ sha512 = "221da3c7dda82bedb9e33dcc7eac7cc4f59e8e5b71d97e85097f93cdf96dba6c9dc1e1648483bfcd2250a635f7641a08d7752a035de33bb3ec33862dab764170";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/xh/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/xh/firefox-71.0b6.tar.bz2";
locale = "xh";
arch = "linux-i686";
- sha512 = "6a0ab1589a56d6563431d2e5f01e6c01a65be6865cb4b4d52a21b6438727d378ded049730374d3400603286104e4e05f246829b9a45513998db6c9c14597d6cc";
+ sha512 = "29536e222d83f30bc71c06b8ddc4ee04d3bccf119c2c1be8934b9cc8da57da5e38bb14434e410804e2919fb0ed21a1be87a361b6c923da131b1fffa194fefcd2";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/zh-CN/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/zh-CN/firefox-71.0b6.tar.bz2";
locale = "zh-CN";
arch = "linux-i686";
- sha512 = "f3e20c68a34ba6aca4bffd07d0bc1e5676ef7f2d9b56aa175431825e90221255bfaa76e40a6fdacf812172317deadd3e3a29756331ccb09aba5804ae58d2ca8d";
+ sha512 = "6bc526bfb6245e6ac109d2f9ae5805bc6da09f06a5a58e2c78953b59fb66114c24ffe01a90568a9d8cab40b9c17912111e9a21ed89dc3c65dd4e0cbfe1bf20d3";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/70.0b2/linux-i686/zh-TW/firefox-70.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/71.0b6/linux-i686/zh-TW/firefox-71.0b6.tar.bz2";
locale = "zh-TW";
arch = "linux-i686";
- sha512 = "dea1df5beec52f0d12e18907922bbd2f27b4a20c87874c199d04671f636fbfebfc1d64bf0c8935ae41c139d4beaf08e164aabe47da8be67d4855b1fb924aabfb";
+ sha512 = "68599169c727d5bf4795960dd6128a75a4208b74c258f4b8dd8dfef398c1369a8b9d4a3cff96f55f1fad14e412f966946fe888bb5fd162ad09528b62eb930c62";
}
];
}
diff --git a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
index 38670735110..7b74a1094c7 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
@@ -1,935 +1,935 @@
{
- version = "69.0";
+ version = "70.0.1";
sources = [
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/ach/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/ach/firefox-70.0.1.tar.bz2";
locale = "ach";
arch = "linux-x86_64";
- sha512 = "300639491b6ca69d7f594df35fbaae3f0e452f8c5280aee71f64ebfdb2592f3948ea2b936f04f01660e3b296e07650b72c583771a90902e62ca3efaea67d291e";
+ sha512 = "8ffdef324586ec9afcfe254c42e938f54774e9c4ea5c695ba585439e71468145b6f0e39644aa731aa01427f09bc117a501ffeb36b5ee40fe39f675be81c86a33";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/af/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/af/firefox-70.0.1.tar.bz2";
locale = "af";
arch = "linux-x86_64";
- sha512 = "5da9dee3ec659045f282dd76c821cc62ac20fda014ce04fdd756ad0ebbba73f054f520f89e227c5b6590255e275d0cdece2c2c16e42733c7395ecde18f42f2f4";
+ sha512 = "df9dccc59c7a3563e7f3b9dad7eb3acf483d27c575ab2c5bf4934efe69d75033e675f399876d2925dfa9f651b558884abf37fd2bbf5f46e671fb9f6ebfb28f81";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/an/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/an/firefox-70.0.1.tar.bz2";
locale = "an";
arch = "linux-x86_64";
- sha512 = "7ef4a311136988c57194e9388862f68b30cc4e5f9c4303da4105389188abb4453f592e9d0819b337e7ef9b482a76df19a9d84a06eeb287f93dbc7e43a41bda15";
+ sha512 = "1c02c1eb8aa276a9e3c1c48926092d10e1dde51b3d576eab1165c97543d2d014c1dadbe9aef9076aa41398b3b6087384dd352b587761ba92952db3178b393ee7";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/ar/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/ar/firefox-70.0.1.tar.bz2";
locale = "ar";
arch = "linux-x86_64";
- sha512 = "a16636cfced17bccf2932e14c6b4c2260c713c538d774802c1dc8598bc47635238549a4332c4cf69b3d3946397bc8f2ba5b330be5716dbb8a81570bea1acc5e1";
+ sha512 = "aa768f5799fcd352287e663f69d37f82deddc10c1ff6e15d383f7fafb4d159f551b9aa6d4f8faa9f7bb789c056423bb03cc2c658d47584e422f02eb6cd1ebe4c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/ast/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/ast/firefox-70.0.1.tar.bz2";
locale = "ast";
arch = "linux-x86_64";
- sha512 = "2239a47cd8869cb7cd50820e1faef0eae66245f04cab81e36250b4be1ae3e7619a994b68c2256777636f8da8fb10aee781715b11bbd7ea857300b7a5afcb085f";
+ sha512 = "edece41399d6e5959823306295f7b40849425426e164ec8d4d6ae4ceebbb4f7f0a83d05caf1039795c5b9bab7fbb10f4b8c2f51c116b897ff5deb879064c2fe0";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/az/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/az/firefox-70.0.1.tar.bz2";
locale = "az";
arch = "linux-x86_64";
- sha512 = "d79ad1be25e9eb3123ba89a5589abfdc58e161bf3ab0c90ff3306639f1a43bd80b9175695f7d5a24aad7c3fb16a616bb90eeb67d2f3f820db5b5b5556e774cf8";
+ sha512 = "d509166e3b17b68688420adc9074839a60cf4e64039d3a3a0974746d11fdacacd2fee7059abe5cbc6fb7533d7c99a32518afa7eabcf3ce4b304a9843c66cc273";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/be/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/be/firefox-70.0.1.tar.bz2";
locale = "be";
arch = "linux-x86_64";
- sha512 = "38b340353be185502214945665b846ca73f1ace1528f0426ae702d8dda88a104f79a879e99873bc9f418a753572ab3bd597a9f820f0e0e94daeb21e05793b90a";
+ sha512 = "308a04e69392fcd748bed4db4b46d83462e5aa93cac01d6be8b8a408cfae1347d779bc0db46892b7b4a53dba384c3273385911a365e1b21206e906e35d78e8e8";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/bg/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/bg/firefox-70.0.1.tar.bz2";
locale = "bg";
arch = "linux-x86_64";
- sha512 = "addf46d8ac6a823d9f1a00e55bd814abb27732484560399aacc7f704fcfbc7d239380c0857df7a4d445fac8724caada49981c2dd4ee288f47c63a7613aefed9a";
+ sha512 = "130e8a9f8e9829b70aaf6b0fa0f0160f31cd37d1dd87ce1398976461625321e47f8683ba11c1023cddc661a6dc9a0f7752c41247bece4ce11568376495c526bd";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/bn/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/bn/firefox-70.0.1.tar.bz2";
locale = "bn";
arch = "linux-x86_64";
- sha512 = "3d0e90b85b5d91f01ae4e84182d071f9b07436a3d9f088ca9178a72140a7d3fcd6c1506b7899ec7bc6ef82a6dd132ea5345c2c8b41c1e2977a5d1aa95f916453";
+ sha512 = "ff688748b1c216aa384c1e28e4147c761a81fcd22a49150b5862bc0967b54566f2933c1a71a40ed3257ea592129b83150197c23e411ddbbcbea74731b70f886a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/br/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/br/firefox-70.0.1.tar.bz2";
locale = "br";
arch = "linux-x86_64";
- sha512 = "aae8493b79569b0e096193c05de56197e01c9f8f7e89b8db2d021bed6ab6e553af4e44c36ad66d427e80840e631d7b85f8c9d1c5ca17fd0bb94a0bfdaab94d7d";
+ sha512 = "b366245b8933d2f76f1eeb6dbc16cec661643718d07e73df2e4890ccb1add383521ffac6df2f308379bf7e878df6fcdf0a258471a773f9cb635dd4ff11a721bb";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/bs/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/bs/firefox-70.0.1.tar.bz2";
locale = "bs";
arch = "linux-x86_64";
- sha512 = "19efd698f911401b32b3affa6e5a371566eca8aaafde96e38704e48871f69d4e6c4c3a8f189519f8b8022ad2782ea5076e53e75db9c1c12e504eb31c827c243a";
+ sha512 = "2a2a663af9865b123d5eb6b185c1bd44a8dc5361dfcca118086f2162590cafaa36cd71ef59fe1ec0eb637d7e7c0cda2e943647d289c1c2c7afc206bda6dac1aa";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/ca/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/ca/firefox-70.0.1.tar.bz2";
locale = "ca";
arch = "linux-x86_64";
- sha512 = "527d672c469bbea18d727e276fd53ca26d65a169f665b32190c6db47c549e7e3155dd04c65fb2720e1d45658a3c8c1f2567f62fc807a8993bf00a2cf280db548";
+ sha512 = "0a77e2f99466557c0b5b540d86773d36ee5f0498cb5ee5e5d39814069efd8c3c48291675a7b607530859b86bb9886889ad35382936657738d1bc86d4da46ea01";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/cak/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/cak/firefox-70.0.1.tar.bz2";
locale = "cak";
arch = "linux-x86_64";
- sha512 = "def5f01b180c354ecf2248d36f12778a2dbb5df8e376bc1eff4eefe3cb3b383cdb1b03b7a83784325ecbef330e5449687b36cbd239090973f1bb3098717bc2ff";
+ sha512 = "6eb549b34f3ec10974b223892e7d4003597660eb840e6931a7bc54afede2433915e27602dd8e83a53dc3cfb386fbd52fc1d04d7c5fe1bf1e40e8eb0ddf40a159";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/cs/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/cs/firefox-70.0.1.tar.bz2";
locale = "cs";
arch = "linux-x86_64";
- sha512 = "5490aff5d9c693e22104607dd8ef342fb3ed79905995854930c7eee876cb2da3f940bf339570b68f008557ea16312af614ef65895a6831c22849e9818ea91b52";
+ sha512 = "b34adfc5aa3a405543af4d7077bf1202480832b6dcbccbcc3a1e8e3ee525a2442f9c127ec5da2bc7a1c1e2c3948c4e85ca746f03b701814bfa73614aa5bcd769";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/cy/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/cy/firefox-70.0.1.tar.bz2";
locale = "cy";
arch = "linux-x86_64";
- sha512 = "9b5e9518f89a9777150fecb25951ca02c232b526784161a8b55aa09b4cab9ed23743dbf62c5f365802beffab4c62d5991da83b138889d7894e5f1b1dc2edcb17";
+ sha512 = "b723b1d73341112e606965428a5f3f793f78a7172e3ec9adce8e1feea212921d63616898050c47d15cbb6c2f80049678489d752524b8449a5afedcdf7b59b533";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/da/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/da/firefox-70.0.1.tar.bz2";
locale = "da";
arch = "linux-x86_64";
- sha512 = "9482ccaa5e3ab92522f60a28571c020c3acce55acbd7c38d7d4f7559396cb71ea96a47210213d1ff15a0d97fbb1a3b6e07453d09ace9cdbee13381fb68829bed";
+ sha512 = "d4d0f30577a016a2a1d24d6d8bfc51c55f27b0cab2dce3d2f584c3bab4b54022409e9090ad0631a84d041cdee5e2c467b843d41df52504e0e86a9a550cd6c267";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/de/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/de/firefox-70.0.1.tar.bz2";
locale = "de";
arch = "linux-x86_64";
- sha512 = "055948aa2b9ef551d0348b4a24437648cf7613446cabf1290ce429c0ed70c7f2b81ca82f0dbbe9359a0bdb6cce673f9472a3fe74e1ef8359ff3fb8903763a7a3";
+ sha512 = "8d544ee0b04c84ff736fc84515fd3afd3c00a99b4f76df5aba1669ca970138bec7965b87210f7dcbed3c0bf48f81dee184b225f49900d6393698e20a9a8fc28d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/dsb/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/dsb/firefox-70.0.1.tar.bz2";
locale = "dsb";
arch = "linux-x86_64";
- sha512 = "a19cc34132f07635eebfc0d521c0177cd24f8c800f9be2750e2e653e8732fb93b39343eceefffacfbebed5656ad4ba0fb05557bd55e993f27c3327b171020f81";
+ sha512 = "2c23d351b72bf2a9b94da2cf786fe58192698aa9ab428b947103e6ddae714a004a461a29af2a1dcd865a316038dda6a2610536f330c42d3ac16e7e027fc1add3";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/el/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/el/firefox-70.0.1.tar.bz2";
locale = "el";
arch = "linux-x86_64";
- sha512 = "f70a195f748c546fd76f5f2e73a379eda8a079475b3e03e67af41c8b0da1ddeb70c335ffa3f6019b406e49944c329eee1ac600d8fcd2daf393d0348d8bbb8048";
+ sha512 = "4da4a9b6c412dcbe1b12109df45a26bd3cfb67205ae351d2c49c774b8138633a2854211ce8f14f6630badc9d38e3edd0fa8c41859554b76ebcad698476828692";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/en-CA/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/en-CA/firefox-70.0.1.tar.bz2";
locale = "en-CA";
arch = "linux-x86_64";
- sha512 = "eac808b225a6ef8162ddf82d8f975d8c0c77a4f8aec110fec017dad38ee4070d4a754f74566cbfe4d8dbbd65a022e1f168c2ffbac3f8ce84f10fb3eafcd114e8";
+ sha512 = "477865fe5340b56db34b44bb82f9dca748a9e12832a698e1d17fcb31f93d02d01c221568d68778f21b10184393e3a07a08cb1314dfa6a67441baa7150c0bd98c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/en-GB/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/en-GB/firefox-70.0.1.tar.bz2";
locale = "en-GB";
arch = "linux-x86_64";
- sha512 = "ba5d57b5596aef987b07354db04bd930fee66a58672c246c9769b2205f96f8d80360d1d212e560a7897ecca95f0b10385eb9d947c4b71126cae5d4893a2a7a47";
+ sha512 = "145b02e3e27009839094bdfdeed1fa79ee3d6fdc068fa00496db0c129d26c6f52a239ffc9e14b49a82946ee8c5ea9c840b8d9b734bc62a9b3bc7b3aae9355b58";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/en-US/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/en-US/firefox-70.0.1.tar.bz2";
locale = "en-US";
arch = "linux-x86_64";
- sha512 = "f4f57ec920bed699a986512dac01adff30fa446ffc35b50039f9b321d4c5a1ede9ccd311f81aa3b7a0ed844a5ba4de1e676ce50bfe138f69f786e6d86afa790f";
+ sha512 = "fe347712d10282ecd16e11d5820c43bffb2264c373cfb0abfe2d5014b88b2db1d9c3f3b18e0cf7f4dcdbb6b710ebf8c46952239a260cc7336ba8a7abdcad6f7b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/eo/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/eo/firefox-70.0.1.tar.bz2";
locale = "eo";
arch = "linux-x86_64";
- sha512 = "0697adf7b3b68b1b11018c690868a28389c2579f96886d5e2d70c7a66abd14778291e2f7efacb3467022dfcb0368bd2d04814aadc7356a536791e0613026db2e";
+ sha512 = "b33357cc9262c2128b33f7324457cf9ba3f245dc1690364b5b70e9f7041b17f2c4a7f1289486dd4cd5c57c4f92b91a48c176aff4df5770013637270670740174";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/es-AR/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/es-AR/firefox-70.0.1.tar.bz2";
locale = "es-AR";
arch = "linux-x86_64";
- sha512 = "0adc717397ddac8b49e5d86bbd702d122ce0f09add74b2246a98d2b686cdebfecef1011dfca5b54752671c7019b153ef9994e983cdcb78023b35e166177bd6c0";
+ sha512 = "4e11b69eaae79235c445af1313669fff2b41b15504895b65927c184c12afc53dcd8c35a2df0b7dcb136582e9b850c999f4eefca146a79861c4f2c54936454ea1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/es-CL/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/es-CL/firefox-70.0.1.tar.bz2";
locale = "es-CL";
arch = "linux-x86_64";
- sha512 = "fa5fbee9d58121faeb0d3a2d17375410e7eea9e7a92b0f803c7b922c936b78cb8db55f9dc6745d9fbe12474a5baba5e7c11e2a83426b19c29bad0262cd046fd3";
+ sha512 = "d0297e178415684604211d9d8fe942fb4ea37c0fd67750c13df7918f70bd8caa73e92db0c75a712689702ce2dc039a721fe1c354124a2ca65e11ef552cb4967a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/es-ES/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/es-ES/firefox-70.0.1.tar.bz2";
locale = "es-ES";
arch = "linux-x86_64";
- sha512 = "40d61b149da156b3008b131a9a4cb46a00c05a700e72a84575ce33f0b6dcf0bf317f64f54c1b0a0e6b03e817afdead048c530ff068da3cf8cb4ef53d60e57ea9";
+ sha512 = "37017e46caa2a97470988b521a4a957ce5943f2259fd722105528aeef6813d506da4ff4a0235ca90c6d6db6ecca3f037629872cf43134891c7aa604a21da2648";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/es-MX/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/es-MX/firefox-70.0.1.tar.bz2";
locale = "es-MX";
arch = "linux-x86_64";
- sha512 = "518bec00e953c8adb7f5c7a0ea460b9d92b0b001f960e31ca5ef1771e74309782056760593f7f976795acfe020498b67d94f80f87fab37469b0c219e86c0158e";
+ sha512 = "722cc4e25f5d67404a97fd90fdde4c7b2140e0cada2ce2e400d89d50f31c88be748e1a743dc73c499688ebe37051c4267dbd4e7b1ea64af7dbde34754fa1867e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/et/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/et/firefox-70.0.1.tar.bz2";
locale = "et";
arch = "linux-x86_64";
- sha512 = "7a5fd6b36dee306446d94d33150004115da55002ee11ba1daebc6cef7d1485e023dc08d9cfdc419d76b7c1335bd7e0f24f3cf197a31003c71569111f5edcc316";
+ sha512 = "bda3e3b7d073aa7fb8b0d9c4fca2a22972633775c66ea07a5f54ed262ce9232f10de3495dc94cf4d758a881f5b9304beab57d8ba2217aa651ab025af37949a7f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/eu/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/eu/firefox-70.0.1.tar.bz2";
locale = "eu";
arch = "linux-x86_64";
- sha512 = "5ac8e602ee20afaba5b7501ecb3af0cc4358d61a729299eb6189a932af19d86f409b66853576ae4c259bb14df43003b395dae7f713572babce62bc549b7ef0e6";
+ sha512 = "6cba87ec645c1036da3f915ce3ecc65361fe036d778266d4f0396e723bc65e0dfce2fa723179a94aaae0bc87bdb896badbc728ba99fe0f5bd250c3fe639db64f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/fa/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/fa/firefox-70.0.1.tar.bz2";
locale = "fa";
arch = "linux-x86_64";
- sha512 = "7e0e98538caae2345b88e9e9921b1eb3e8d4e226950aebe6a9b6d927aab47d40e59ef93fa33b0b175460db44e906e64e3f4974706ec0b3d85a3e6ed1adc99a52";
+ sha512 = "d16d36b676eaf8f9a0809e3702398eb03affbd596e63da2f90a29d256ad1564b19be5346a463689895e7d8b42b9648c581495d8058b33a30ea80a53a19417f45";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/ff/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/ff/firefox-70.0.1.tar.bz2";
locale = "ff";
arch = "linux-x86_64";
- sha512 = "02cfea4fe949c4105d5cf2836de867c21c9ca8fb73cf0b3702493d409cb36a70f9f195c53d755840d7696500ea7e1a03f4bdeeafaa67833ff60aa96d854b14c1";
+ sha512 = "2205c85057e8d959e1556ec81523724d9e5e9064b22f30f7f194c184baea1c4c6a3e7eff133b4fc8c8574b8702ba075f7345b1703916a8dbbaeb8275fdbc0640";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/fi/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/fi/firefox-70.0.1.tar.bz2";
locale = "fi";
arch = "linux-x86_64";
- sha512 = "470e499c26f9120d68904775e9ec2396020b91dfae504bdd6219d2932e5588240f9f25458425895c2d74fd6aa4c9c525f117f0a0f69adf98703af2570cec40b5";
+ sha512 = "c65ad5804089f81f28a4820edd154df5fb7825988de650dd8550ab518326c809e21e50a033fe6b6433d89ae075a561ca91ac930728bed05758885263866df469";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/fr/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/fr/firefox-70.0.1.tar.bz2";
locale = "fr";
arch = "linux-x86_64";
- sha512 = "44f4df351b0a34bd3126753a785f9a36856686d9df9648c9a3a1f678dcbca9585c19b576d6deb31967aa9448ef45aaf602558e87040ef19d1cb812d42c5894d1";
+ sha512 = "d65508b9a78fd8bf75a44b39346e8408a83a0e308cf0fcbd612f3b9d66d6c1e5fb93c8070574b8823b363470aa138468dcbbc3313f3b789508093bab86248524";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/fy-NL/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/fy-NL/firefox-70.0.1.tar.bz2";
locale = "fy-NL";
arch = "linux-x86_64";
- sha512 = "1f336759e304747cfb6932dd433c31123b153a04b4600952d0dc622b442901e1642acba220508373b915caff68e87e026ef54e24eb5c001a1e6e3f4d1b9736d7";
+ sha512 = "44d1d3d072fd350874aa1366c76146579fbd6015930c8e597abc472fa380155676b5016294688dd4cb43fc5c3b225c8c0ee93af2126874dbb4b5108f2c267b9b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/ga-IE/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/ga-IE/firefox-70.0.1.tar.bz2";
locale = "ga-IE";
arch = "linux-x86_64";
- sha512 = "dc0109a75094fe53caa78bb5c02257118aa9c992b4633cecf8a6e60a5daf4fdf488aa5e5309233aa1882bf69e3c8a01a527c2e2878ab9655c4810b3e54244ba9";
+ sha512 = "2e8ba8cdcf2d96eb61d089d2f53139375a161a92b000f7723a62dca28000e77946f089b5f571b7cd9cf75b6910cb37c522fe95fddfa10e300351e679ed685300";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/gd/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/gd/firefox-70.0.1.tar.bz2";
locale = "gd";
arch = "linux-x86_64";
- sha512 = "69362cd2b58066646dc62ad0022d82ce6b010ade0abbf779d7d3ed7b9bf6ee808c848a9404c3beb966751d3aed0d3a5da2be3f2b262580e8b6211a3f8444727d";
+ sha512 = "b08e58fa3845047d6dc82d55ccc4c9f0e09a10e48444c6e39a4826534503c59db737b1c7e9cba526b98f240f6f65010002ad56b054349df82e608e58ba2d34b9";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/gl/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/gl/firefox-70.0.1.tar.bz2";
locale = "gl";
arch = "linux-x86_64";
- sha512 = "787a3a454d59daabd81cc734f15232622f3e2cd0253c98c10fcfc5eb47b8d329f89740474f7f754ab6f17bcb50e1fee38012df9183e061629490582c677da68f";
+ sha512 = "d84b29970c4eb30f73f1f924744a529ae51b4d933cb0c6108ff9d12736596c34e3237566922540b0ae346e63dfde51f4252cf9e6a76e0c910878cbbc7dfffac2";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/gn/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/gn/firefox-70.0.1.tar.bz2";
locale = "gn";
arch = "linux-x86_64";
- sha512 = "cf05696e4b0e3ba6c9316166f56e99505d4419062d77cc0438d0fbb66729d354c59026018828ec7d46db4f99e6367dea9911d4bdf7e80ba68fe32f8e0d5c09c3";
+ sha512 = "650e09d225a27194156fb2681591b8bd658f92ac33e8ff4e0ed601a75fa28315f5ce34a7c3ea89ad7ba065fa3e0c9942051c0c75d96a87baba623eed368c5a64";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/gu-IN/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/gu-IN/firefox-70.0.1.tar.bz2";
locale = "gu-IN";
arch = "linux-x86_64";
- sha512 = "0b38a698358012e0cc3ff1091b82d1eb82673f124b34ee4156cc36bb49d5d69efc32874de2a2050339e73d6f386f6d4a468e6d906be0b22567b867dde7e0ff9c";
+ sha512 = "546d8c2a3f63f5090ab6c1b82a515d816123f5d87185efab04f1c255a7717e28e0969866e440b695fb22a743dd000575dd150d82613b9c7a289a2ada8689a0ae";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/he/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/he/firefox-70.0.1.tar.bz2";
locale = "he";
arch = "linux-x86_64";
- sha512 = "8250cf4c8b18edb35e8c601cb6df8bc7825a96064064b6d46a6dfb77e297c64dcc7a2f7937750d4734ab56f843a65b6174b4c9d523f9b5877e0e26ce9fecae01";
+ sha512 = "5e27de14d61ba25005700ec2efd958698733b362aa4aec6bbcf630fcd34cececdd4eef0bb8c9ea31ec5372c816b5cc0d930c15e594f33f28b99476a19e0ef92f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/hi-IN/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/hi-IN/firefox-70.0.1.tar.bz2";
locale = "hi-IN";
arch = "linux-x86_64";
- sha512 = "a0262214be3ebae877300b54720b4b74defe46bb641b989a1d65df02c62d78d51274386b0997a45189fa86d5974e56670a852d24d76a655baebd3c5aad8149db";
+ sha512 = "b91d9977e3817332240c82e73dbee31ea1dde9bbd4004f7f19e27cf3693460746cd7b37a571fc0219e88f0f52af2e38a39eee17935a9a6400da5fbf8605aa8ea";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/hr/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/hr/firefox-70.0.1.tar.bz2";
locale = "hr";
arch = "linux-x86_64";
- sha512 = "a5254f81f1ae432b50ac9b0a1732134b32bd460502baf51eef7242c37b37f2a6f0cfb6ce9c10bc3ce6ce509287fde824bede15534b010ab2f55721e43d85a8f0";
+ sha512 = "8f87ee0a9fdac42b554d3d69d114feb44b320e1db3202bb90c0f05f7b13eb1b22f1d341d9e4ca6eed2e7a3b560834ae328582c7db66d64c3dcb54031218398c2";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/hsb/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/hsb/firefox-70.0.1.tar.bz2";
locale = "hsb";
arch = "linux-x86_64";
- sha512 = "7081a889a6689e2d6fb4550474840085724cb4a583a9618a03a88ebca706ebdd32ccadd64ec8491332e342293634903ee52122ec9a5e49efb0f3cc8c09ac891c";
+ sha512 = "84070fbc03c36b3ec04be8872546c9ad79de14a4b518bc76ef324bfeb06f859153bb717c7fa7e0619ec6df0392d2e0f139616503a86b3926dad3f1e1c9bcf0e3";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/hu/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/hu/firefox-70.0.1.tar.bz2";
locale = "hu";
arch = "linux-x86_64";
- sha512 = "0a6bd225ee22562da294a0a6753949f6e627d1076579c514b4c93719cd0acfab90ce28c241d05cfa58a9b723610169f7e3a8b65dcf3bce7615e56cede10f0064";
+ sha512 = "3a0e8fba4050641edb8f273659f7ce3eaea974f22b7a1b3c9859f11834b94f470831d5d71ce491b5269bcef79db973b7500d04a01583189e3acb7b15ff6f2ffd";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/hy-AM/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/hy-AM/firefox-70.0.1.tar.bz2";
locale = "hy-AM";
arch = "linux-x86_64";
- sha512 = "dc21bc95a2ef7e66b04fe9900458754db5fe51047b3e166a48bfc1c6c7d8048846049356778515556be0184b5f40a08b29bffb27eca2d85cf90e47c42a9ff086";
+ sha512 = "f408b350c3210a024671561caf75bacbeeb43fc90061558886c1eaf948caf14a8526ac66230cb66e265ea4b5094908e89188c469da76b477337a689b7a4f7998";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/ia/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/ia/firefox-70.0.1.tar.bz2";
locale = "ia";
arch = "linux-x86_64";
- sha512 = "b2ab4096778dab01ec722c90daabdd8b0a892de1cd01ffc2bf5b6c403a74bbb6ab1180b1331635861c29b05db9662ec1d973d8506170c7227d574848a6281678";
+ sha512 = "5ba03b1a90d681f963e54e4599178c4494f4f892bcf3e1ea698eaa237830f128d9e0e4a19550f683645fd4682efa7801492bdc3fe5ef4cdf51b2241eb6fad279";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/id/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/id/firefox-70.0.1.tar.bz2";
locale = "id";
arch = "linux-x86_64";
- sha512 = "a416e7ff14facaf80a8edec2b1100f65bd4ca13b6ba10ebd8ca181c65683deba962c276b4b32372f9d8aca33213ffdc882ede3c8bf6dac883c819b85ae84789a";
+ sha512 = "e8fe42ce9f6399d1291198d169f7da5be07f8317ffc47395968958587b559e576b6dfebb6a1176b89eb4ae6138aed9de987d6839f1e48c1a330a0274967f27b7";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/is/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/is/firefox-70.0.1.tar.bz2";
locale = "is";
arch = "linux-x86_64";
- sha512 = "f5b0e2b1bf63db7a3e4bb14b0332d5b365be87f7c256c7c4a34dc4d4107a139bbe0415c757d7274209e82a1219863db3862426621cd2453d24864776c0ffbd83";
+ sha512 = "2179886cb62bac2fbac100fe7617b074ea890b9efc16c0fcf8387096d82e4b84d351bd2eff431bf5ac1e30d144208411b57bde540d8a744fb9e91b793d6dd061";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/it/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/it/firefox-70.0.1.tar.bz2";
locale = "it";
arch = "linux-x86_64";
- sha512 = "655def933c7a17d5417fd319158a3a8f21a0263bb7aa539641b1f3d3eb0087148198975a9961a789b3e944c812c857a35afd5e973018a82e409ae438c160aead";
+ sha512 = "738519602a2a7ee6b8c97a9df82b125d46e77d1804e7278d7416ff7a930fa38a2cd2888f7019f5a9d15b748725f8bb2d37eb7390141ae65c3056352c64b9ebe8";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/ja/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/ja/firefox-70.0.1.tar.bz2";
locale = "ja";
arch = "linux-x86_64";
- sha512 = "19b9a42561727da209614222f618512a8ff714f0edb21baae1efab69fc384d3ba0766475fa76e0f1fb4cf298cfec01c0e3bf3879e1b730cd0254d6174f764df4";
+ sha512 = "645ed65a2e9340c7836bc35badc6bab1d209fa59dcd3221deb892ae63025179610fe3a59c60dba3262c18b618ca7f625c9df6f247b8ddb0f7e72557d0572417b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/ka/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/ka/firefox-70.0.1.tar.bz2";
locale = "ka";
arch = "linux-x86_64";
- sha512 = "4949b620ef6ca2e23472d721bded35091028048633f8393ef9a68b780928e11e779527b8b62f02e27288456fd939a5d273dd3dc6096ead80107b3c4266deee2a";
+ sha512 = "f4d4d156b5d7c15886680b2d5b2b6db7bb978a620be38ad25eec6ce477f5bdda068030b51fb05b949d3faf2639b6f0f288619ff523b0e9e988515927f251fe08";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/kab/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/kab/firefox-70.0.1.tar.bz2";
locale = "kab";
arch = "linux-x86_64";
- sha512 = "a1e9f7afe4c09a1056ad0f9f81dd30af5c6a62582a19c5ab437e42281b312f8cbf9f3ddc5e4e9e6553d4c68ac268f5cfd6080d8aeeef51032387b8bf1915382d";
+ sha512 = "5f3d11bddb361a542f333c1045d9189e8ca104a8f5280eecc3b9392941f8468140fc686b7e6c36140ae4e9f9417f00467c9931334944b3949023015b23b5d0e8";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/kk/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/kk/firefox-70.0.1.tar.bz2";
locale = "kk";
arch = "linux-x86_64";
- sha512 = "47b2963dbc9333b30627ef1583a87adb23962dbbd71e01be2b58f6ff7a6d226076f9193310038884000c6ff7a4f96bd1eaa33767bf96bea3ecbd0715ccdcfd37";
+ sha512 = "e9cd29f905bf0cbb7a8ab90e7f73144fee15c5442d653c2492701356260b3c134eef33ee066bfb1dacd46e1cbdd19efd0901fa150472aa63f003ee9e82ce006e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/km/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/km/firefox-70.0.1.tar.bz2";
locale = "km";
arch = "linux-x86_64";
- sha512 = "758c7dd7eb7a91e09bc7f921e0506a4e719ae818b5794abe7a090e9af230c6d5240ab7077a9ca4636599566faab83dac92c64e1f97bcd3515e27a2ccf4e9f6ab";
+ sha512 = "c9153fe68edf04008023928ad5fc810dfa0a8344beb2bd0c1810f15b0736fd1a0168d4b57e611f1192b5f7fada136d7bce209713e2873a2428218b555262c4de";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/kn/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/kn/firefox-70.0.1.tar.bz2";
locale = "kn";
arch = "linux-x86_64";
- sha512 = "fe0c88f827e0b4581e3f72367c19ddf2396cb654eaf2d5457babcc1be8761ca6fd7a7cedc79c580abd7e9a336439ce24d84ad37a6f1d0907bbd548232a9c3d81";
+ sha512 = "6ceaeb920d775403f1da31d172754c3cde34f8d3b68bb18d75e23887f253bb62610c960fca3e11599caef4a947e68f11b22b1c240b3381a6eba179c948c1cda4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/ko/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/ko/firefox-70.0.1.tar.bz2";
locale = "ko";
arch = "linux-x86_64";
- sha512 = "52d0cf33a3a6d083f63c03c5076be9e68829560ece3c5729c5694c989a1179df8ba6f9c5ad4c3d720394cae351ff078af13e07d194b175a364e3f529dd7983f3";
+ sha512 = "f0161bd480a8a8a861c9e757e0c54334c060616bc544cc698a5e47b71de1784092c44b12cea973b74f80bec89cd14c13a9c6a493eb7a220a8121676f5151cbe3";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/lij/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/lij/firefox-70.0.1.tar.bz2";
locale = "lij";
arch = "linux-x86_64";
- sha512 = "7acba227856b3bb015745f5239bbdd06a88e30ae7f17129e8b104ff800fe7b60f24646962348177e7efef71144a7cdf2415b6daebd2eb75574cd6ca6b708c892";
+ sha512 = "d591cbb59e4db81ce872ad367e0d74b425c1b2b7528d8f468bbea15443efb98ae74a5b860fbef43718432be8f1d0929766a970e6751105bbd949c7ac6e515b65";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/lt/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/lt/firefox-70.0.1.tar.bz2";
locale = "lt";
arch = "linux-x86_64";
- sha512 = "0829cd18857660588330c306ec7db6e64d52346ead593ffc7e4022c25d8ea5451329e7bb70667645b0bc4894f20d8d6251111449dd3f48362165e9f583f89e92";
+ sha512 = "073a23678762ee210554301940e220aa50dbb478aa345c47c64ced760a19e25e24d1748767d627b6b0d382245be71723e44189b7a4f8d74a16afa1fa8ff93747";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/lv/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/lv/firefox-70.0.1.tar.bz2";
locale = "lv";
arch = "linux-x86_64";
- sha512 = "3c19e724d31b20bbec4a9a4267c5cb9ce1e4aa5ff522beefdf35b468d220964eb547ed1b3a4354624cc653764f62d41a294eac10d90bdafacd290e192786a73a";
+ sha512 = "6b5a2db5852f99fd725410042c59809ffc660ce66b15b8baab1b4b1d3cd4f534dbb93699b49204a73b37c2ec094ade0662661a580f7c498b8d17d7a1aed4ff1f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/mk/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/mk/firefox-70.0.1.tar.bz2";
locale = "mk";
arch = "linux-x86_64";
- sha512 = "1223ff81d9162d87db9d71948d34b677eae86d3ea06953a939cd18836c8b820c0fcbc468d124a3b0ab37346716db06fec7a4510806b7f2f98caaa0a30642746b";
+ sha512 = "be4c365a2f9e39f5046b464308605d90d318142300fae63c5f12f3038bee064174f78639a5bf58950cf6849c5490f338247ca7982c2f400fa7c62672c11fb5a1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/mr/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/mr/firefox-70.0.1.tar.bz2";
locale = "mr";
arch = "linux-x86_64";
- sha512 = "202bf4f9b7250a73f70f0503e53f1f55b9466d4daa13092d9674b21edfc61a0dc6af3daee4cc229372eb2e3e3d97e13f686d9f6d8d702f4dfdad19ff52792eb8";
+ sha512 = "a9f8d75efb79d3ba833edbe333308c1da1e1a5724e95d6f6065170150bd341de1189a61283f28e6570b35d24c1711d97b2fa6de9a32bf2b896a2376ed592b56b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/ms/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/ms/firefox-70.0.1.tar.bz2";
locale = "ms";
arch = "linux-x86_64";
- sha512 = "7c1e2b00ead7cb7b2a3ef516c0137f1cb2fcdc4fddd44c5b5887e949797b42218ae66fd58a4b207ec9519704ad8b26a71edd2fe3a36ae152e589fad48a4e2754";
+ sha512 = "82d9462433da674272c77cb89d65d9514a045ac7ba68270b7dec5f6f01e50e81d6b79b5c84830bac4abe311eedd3a2e851ac8afb7d03f0e5421995b78c039ff2";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/my/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/my/firefox-70.0.1.tar.bz2";
locale = "my";
arch = "linux-x86_64";
- sha512 = "bd92ec45173af70a10715f16e8043e7d41900607bbf2acbef566002f8ae8855cb604963d2cf2a1e5a9c610120c24b6d192c0e32c7ba29c635c2d92d1fe4b73bb";
+ sha512 = "9239499eaf3686cd9ccd1e686f06197be63e1fe9b95c1343bce032664d08387abb4798d725f64cb439ca61afea58f3802ea786b40653028a0b90686af8423398";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/nb-NO/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/nb-NO/firefox-70.0.1.tar.bz2";
locale = "nb-NO";
arch = "linux-x86_64";
- sha512 = "c032c4d91c67d11ced6b47caad8ed04554e08fa78e7bb49c2ee1176ca192131b9372e35c121d5747f59672d1c9f8f1fd7f2d29ab24ce3b6e681eafae7a821e02";
+ sha512 = "085fab55bc8ecd2021f1ea0887ca7b191390d8ba02af07c1fa16bf78bbb5561b9e47a7ded461bf68b1faad9be747db794c9a9d31d35d2d51888d54a513dd5f99";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/ne-NP/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/ne-NP/firefox-70.0.1.tar.bz2";
locale = "ne-NP";
arch = "linux-x86_64";
- sha512 = "5c6a5e7cd3555bef6de3f02e566349a5e4797efed99c0b161e0de38f8391657c963446ab7e9b57a3728a81350bd98a7de66029bc0fcbe611b39f93e804cb1302";
+ sha512 = "c5f1e0b5c3e84f11a3d78bce721ddaf5f93bca53236475bbae7b9bfb126917cffe779a89846c4b2ea8d47a55b61b4a0a9dccebc1e685f100f9ba36ace157cbda";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/nl/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/nl/firefox-70.0.1.tar.bz2";
locale = "nl";
arch = "linux-x86_64";
- sha512 = "a1ae9b567eb05c28443886b49351532c92d5e29d65386e3c3d0d842574be355f49544de1302a485d71b9962483eeba4d7f8c855089b5fb8fc3dd1b86e47f70c8";
+ sha512 = "35bce76ba0505839b85f91881bc1fa8ee8e8d6b6dcc237619b80ae4c7fe0ae2c19bf6951ede595e94b5afb7b9c030813fbf4cfc796b1c3f82381b7c6a7ab593a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/nn-NO/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/nn-NO/firefox-70.0.1.tar.bz2";
locale = "nn-NO";
arch = "linux-x86_64";
- sha512 = "3926a8efcbe5cf785cf687e10b5d7a846cafcc5e9a09fb77f517ec071c5b2afec954fa6f870c3688d07ecc17d64fd71080201b4646d8547cb3446201ffc30944";
+ sha512 = "16ca43ce95b52823ded1776584fcc5a5bbe03126496c029ff36475559ed73d3fb9aa60c205aa5e36565f19e1e144a0239421331f3e3660dd7cc38868d44ea7cd";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/oc/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/oc/firefox-70.0.1.tar.bz2";
locale = "oc";
arch = "linux-x86_64";
- sha512 = "05ce37349d320e94547531cabd995d21107c64b87d52b0e08c465abc709526e4504019657ee2c49079fd8bef012f1ea7c55f595828602ca1d74f8a18940eee2a";
+ sha512 = "46d6196315738ffd105a7a15e2f2bbdeba86b171c8b87d7a69e8a28f5c704f8d1312e19d118e2634505945adafedc37558b7d8fe24bdd5df7cc3d50837db3155";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/pa-IN/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/pa-IN/firefox-70.0.1.tar.bz2";
locale = "pa-IN";
arch = "linux-x86_64";
- sha512 = "48f6a34384b79b6a0104b33073c32589a9a66da64c83c0f205f7cdbf940ff75a162c9612ab7f457377f018c4508ff398c2410239efe0a22862d36aecc7b409af";
+ sha512 = "73f8150047a7b0873fda0c7b8144fdac0e3e83dfdcf97b50398625cb228d5088dda611727ea5bdeaf0b018e0ebd9f6f63dba9abea398929761028623c513f35b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/pl/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/pl/firefox-70.0.1.tar.bz2";
locale = "pl";
arch = "linux-x86_64";
- sha512 = "912149f85fd055d5e9ee3ec9f40ce9308bef4580a265f6ff8a782b5db1dbc8e82bc6ab6cb40df14968b3d00e11aeb539c6768d755acc3e5a96bf2bb952b86f1a";
+ sha512 = "0f5134d8f8cc922331a4ffd26c9fc37e8ec54efc1e5d1b9da9fbe5fb05da80b078fd7698c88ef74009ca8769c919255aa120bfadf30354ce5b34f015a1caaefb";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/pt-BR/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/pt-BR/firefox-70.0.1.tar.bz2";
locale = "pt-BR";
arch = "linux-x86_64";
- sha512 = "e167770aa356ab88af89d1ff8de492ff0e31c9e45b64bcdbc3ed76749bf2027b70085c34b95490047f3a71f72fb29da5d771dddb7b445b70a2986d22088c7964";
+ sha512 = "f26f1cb749856c9e183984327f773baf9ccfb00f7b00abffc07fc98d9e646ca8d7b90ff784f8563e20ff5653cc57abfc193b9ce0862b5e86d50922d52a9c8e0e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/pt-PT/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/pt-PT/firefox-70.0.1.tar.bz2";
locale = "pt-PT";
arch = "linux-x86_64";
- sha512 = "a06e26bc1285a39ccc4399e98ba523c39b9f7573444f5793bc5278908454c717dc3198be5f3985280af4869bd68987f5cc0d4c4a4000eb65d6eff4c7d3e61a15";
+ sha512 = "00921e3e87f12d653e762cefe75f3d064bfaa3fae7afe003cda2c98a381be4ad55a21989affa825c0e7726ad81baef41313ed98381ba598d991917d0f33b7cf9";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/rm/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/rm/firefox-70.0.1.tar.bz2";
locale = "rm";
arch = "linux-x86_64";
- sha512 = "41e9519e6e10cbdf20eec17ccdcf7120417c477a3358a0fd0f6b770dce64b5528a51271b9257cf981ac21dd0e118e8193c0885c5039955b84d331d29e881455c";
+ sha512 = "1fb0246c91cc6beb01ae842a4ea9f2d749a5196380ee03eb689e03e1ad4d30f7d58ddd7ed3a6d3f340fc72b1c94732b67895cfcd0c2a3f1df87140d0ca7068df";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/ro/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/ro/firefox-70.0.1.tar.bz2";
locale = "ro";
arch = "linux-x86_64";
- sha512 = "63845db9011089101b6350e5b13c3e614a198ba24343d386e46b4219f0e006c346b6ef103791dbd5013a89138c1facfbd81b3e144e04cb8690c996969af6afe7";
+ sha512 = "5a1d2659499dda8f7394b6646deab1cdb18f7b6ff71cdf3667a238ac1d4170a97624beabd28cef3dc0ec5969d5eb9d05b5560fff4bf14fd0a5e5e2744c670585";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/ru/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/ru/firefox-70.0.1.tar.bz2";
locale = "ru";
arch = "linux-x86_64";
- sha512 = "ba844bebc9469c2372815821d751fe3146d8f7d0c4c18002ae617f1d42a03369a13eb3a2cbe2087135164a30784bd476a4512867145a57613a8611f1af47227b";
+ sha512 = "8c7d33d17fcfd3df95757818b95e6a799a5089a2311a2e07960e6700d024b8218ef9c03d0771d3c2559937a45556ab640aa5cd71c34c00dfa27936c62903bc57";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/si/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/si/firefox-70.0.1.tar.bz2";
locale = "si";
arch = "linux-x86_64";
- sha512 = "67df7f6a6d32c37db778237b2cde1418d8b4d19360f752960129c94dc3ed4736a8b1eeef73966b54a531e3e3c6ddceb5cab33d758124ba375a2a46a7768b99e8";
+ sha512 = "1e20a444d0968162a84946ac8f78d42d0a01843a5521978b3719d954c2f49d4e834261b6e248d46e85a6312c60109cb2e2f75adbb209870132d828b73b0a50ec";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/sk/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/sk/firefox-70.0.1.tar.bz2";
locale = "sk";
arch = "linux-x86_64";
- sha512 = "5d748ec7f889e8465cfdf6304db6403a346ed6b9c433fa482365b82bdf39cd600a9926b5e3355e4e8cb911bfb03bb9ed14df83ac0b4cfc2019b71b2006e1ef51";
+ sha512 = "badfe0541b0c7d5c9387b1a9da769b5a50ffb0ef5bbf063be99b4ce2fa44ebb7e957a1bcc5c7be4968e31028b215775f8b8d433af7c1c3ead2bede17c18b34f9";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/sl/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/sl/firefox-70.0.1.tar.bz2";
locale = "sl";
arch = "linux-x86_64";
- sha512 = "f870acdda0da2fb373718d2218d0db79de90c6153d7dcab4163102b220c265d502691f525f9db77ab2403e528e578b9e45d839c2296f16665179c838703aef23";
+ sha512 = "d6f133eff2b4fecc43603201a94b06d43a872de706bbce0c828c6f3ec4eaaeedbae677255bd85f8a22212f372192c3871d5871a402ec67855e30d2cef00f1b16";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/son/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/son/firefox-70.0.1.tar.bz2";
locale = "son";
arch = "linux-x86_64";
- sha512 = "f8c702a54be2f9b15ffc183de2853b8da7d7809d2c02e3a7a2a2d001878236102c35383879c0f66ceeaefcd6a676adf23d766a80682af4122c82561fe7eaf36d";
+ sha512 = "234116cade8ff0fd68eafdeb09def2de5a4395eb500fc06e04f9c5367a2bc9859beb34fb64f9a80bdafa76200716d999bf17a35a23177974a4e7f1f1cc43f646";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/sq/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/sq/firefox-70.0.1.tar.bz2";
locale = "sq";
arch = "linux-x86_64";
- sha512 = "4da3b8e0c0a012e5f78ef1c10f9f462b9e5a716c95e9d8134da274dc1461d60d094af2de314987c6a68c1a50c17f09dc00ce9cd039553b406efc2306968b38a0";
+ sha512 = "5742ddc31600b89d600dece3afe1794799e147b6f66454de3b1d7f8948b06778b87bdca042e8082f61213fa4fedcfa8ea3a0ef3d9a88b7b83e0a9ab438a44796";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/sr/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/sr/firefox-70.0.1.tar.bz2";
locale = "sr";
arch = "linux-x86_64";
- sha512 = "1a41de2409ecf00fd94690c0f452395c3318590e9b9f2164f2d82112e51057680d2c758d1e0b9d9a372e3080afdb611d30a2c74b9bb6377da63352cdddcd1099";
+ sha512 = "b3a2e8765c6d78bc35595f12086f4771ea5314e6aa0a1b36dd1d870680818c102d04e12633f30744c62416c378cee88c59e110eee11e44795d4dcc15c79c4273";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/sv-SE/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/sv-SE/firefox-70.0.1.tar.bz2";
locale = "sv-SE";
arch = "linux-x86_64";
- sha512 = "f09d3024b2f9032512aa10ce9b5c72b44a673f324190e1e971ad3c09837545b79a784e6a10e5cd9997f701903c4445284f64a9eec7d40b857a8386b2b72eaeb1";
+ sha512 = "65bc7b60249d6e29633bf6fb997a744522667af120dd00f61143f4c9ee7cf48a2764391c383821c9f6ac1c99fe40bee1734d8949194624ed123f92d0ffe7efa1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/ta/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/ta/firefox-70.0.1.tar.bz2";
locale = "ta";
arch = "linux-x86_64";
- sha512 = "60666bb1ec53979b6b614a4c31a04085b1542deec9908bd485db2e0f09ad833a2dbd81f84f483f24d73689cde5fdad2554079b3a54e4b98e148d3f6f144b8de0";
+ sha512 = "5ed15cfb7e70ab43eef608a06713af28b44cd64a1e5d9e09bff2b5bc1c095f8022b82665a496ac25d3214c955c9662a8d783ba20a784a864739a04d387a4a81c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/te/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/te/firefox-70.0.1.tar.bz2";
locale = "te";
arch = "linux-x86_64";
- sha512 = "03fb5b9cb18402657b77cee2f7bfff3474a84c32204ce5163e028680cff75ad0faefc398975fb98378fbaaa86ad247cb43970cf86bfb383512fc4e890a928842";
+ sha512 = "6bbf8bf5a672b8fa16a9286dea173b5323a77f904dd3218a439489d2ec3ad092346be8d06f22cc8b12d39a44282861461883a16bea8b0067e1b0551cd38a053c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/th/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/th/firefox-70.0.1.tar.bz2";
locale = "th";
arch = "linux-x86_64";
- sha512 = "53d525b0309e5f0d02314c0ceb568f067e858588befa64047a3163fc0623d0afbc05167df34fffbcf97b1f5fb127dcb8fb45c05ef117de42d42e8e7d37a04a6e";
+ sha512 = "ed04524b8d60e96a35967c69901d478596a98aec0a31f8f4fec72c67217a6397dfc2c0a142929d074d0eef6e0d32ab4183a72b467f0f19720c240f7d0ab9969a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/tr/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/tr/firefox-70.0.1.tar.bz2";
locale = "tr";
arch = "linux-x86_64";
- sha512 = "ef3c0a7f2ef67b92cf22bd6a69b237db8b9d1d85a018cc7c33f767fe71f483ab479bead36af874f4c6bdf99f7eb58b86b564825de897abbf8809aef41d95ff4a";
+ sha512 = "5660ab4de81d92002ae2dcb7b8eccb371ca57c4ac06d31b052b187985babb54eacaccde8f9b2cf815c15f9d093a06b5ace715de42a9c36793ecf7b847ec5f219";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/uk/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/uk/firefox-70.0.1.tar.bz2";
locale = "uk";
arch = "linux-x86_64";
- sha512 = "bece51aaa6fa0131f55364b3a8079382db4d8415e19f3b5ee7333b4111ecd282012f55343b44df95cfe3006f3226c7ec6b6d4bc71d1f30aefbf203e24c282b5d";
+ sha512 = "3cf5d6942fd15b42a17911aaf3069a610f3c65c3e5d4bff83ee922fdb21d6fc6afd81172a6871fd47245a045e5a644943d450fb8af400553b3091f78aaa71b5f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/ur/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/ur/firefox-70.0.1.tar.bz2";
locale = "ur";
arch = "linux-x86_64";
- sha512 = "1f5373231283004843f8d87a53ee5eb92c7c79d4c15cdd611baaa5ec56ea6ba6eefc5ed63ad66e0a3b66b4748eb21af201fd98dea645754bcca3731e8643dec6";
+ sha512 = "174039e641ebcd3bc2204c7816566e8083a61082aca7c67c46bce316408a978b5832a250944f8282732590e442af4a9a21d4dff53dfa0147755d276bf3dea05f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/uz/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/uz/firefox-70.0.1.tar.bz2";
locale = "uz";
arch = "linux-x86_64";
- sha512 = "31708d41970b7184bca2686b8ee048afa732e24f05ed84bc7dfee1fa18c86ca8f3bfc27002f306bfd71423331567be2c952addd1af50ed85ca7377a87b1c91cd";
+ sha512 = "fa6924abed1205b9c99db2134f311996c493d6b81ccee473baa9287b60cb0918df0aefa67603f0daa5fe73ba3e29ac2534f08079c6a348fd8546fe1d920a3b1f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/vi/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/vi/firefox-70.0.1.tar.bz2";
locale = "vi";
arch = "linux-x86_64";
- sha512 = "f1abfcf9142310c6362b429d8d58f370c3fa9af20d7261e0e3328b37d4cc33b88d764d108167ae9b3aea6dde7593bf92591d41e71eaa233cd01d8583e1d8542f";
+ sha512 = "79cf47c86f9ee36b906f13d78405c84793284affb7c1364cf7f71ca33f3938b0b434655db3a9051edb95574de6a7591697703a8bb5c7db3fa088da7d9aa97356";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/xh/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/xh/firefox-70.0.1.tar.bz2";
locale = "xh";
arch = "linux-x86_64";
- sha512 = "cbc4ec3f78d47276b1cc67948645b92fc891a0089bb81151d1b4ff8ec20b5ea7db714c7a386ef094a05040fb399d8de7a98d3c7ae7dc212c64955004474c4466";
+ sha512 = "ee34ae83ea0eb4c3fc6a95635cd1965bc0ac13f9881fb15cb3202f32360e15c959de84457e2f167fe4dabc1e411062b942526f3cd624b1c860b4df7711de4d60";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/zh-CN/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/zh-CN/firefox-70.0.1.tar.bz2";
locale = "zh-CN";
arch = "linux-x86_64";
- sha512 = "5ca30257e96e8e7770fe8a7d626433932a06e56789cf6d84a09b633348570c59cf904707a2c6737267d111929830df8b1556d84c6dbccd62e4146926a87e68d7";
+ sha512 = "f60a9f43eb196084dd86cf910597ae4833f6aa9d87a7dab934104ed6def9936420bafd1d8a321ff7d22d6d1b69452ac2b79865446b4b41789dd97858b0887810";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-x86_64/zh-TW/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/zh-TW/firefox-70.0.1.tar.bz2";
locale = "zh-TW";
arch = "linux-x86_64";
- sha512 = "bd3ddc2e9da6f1e47648ac4054c6568e48e3c01422623947f745016bd624350885a194b7dad600fcdeb0fc64cebf10b8f694764da0575332618cc948dad33cce";
+ sha512 = "1c582dd3dde0c6a0a29145b9482b750f849d22162889436397f9186e82852b3a763784a7e53a18f728ac7e76dd4e9c02e080e679770ae2ce0638543c00d3e3db";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/ach/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/ach/firefox-70.0.1.tar.bz2";
locale = "ach";
arch = "linux-i686";
- sha512 = "9f5876b495e56d195c01a278fa602c7686c52c662145d46dd4e7a9ab143801a26822c5a084683b74819fec15d66b21644ab6adcf160deb1d48fcb381fb395187";
+ sha512 = "5037ec716c3b9484f8dac120b9bd5d89d7fe4af8d5890566623b8cbe8cb9be7ad361848995b4b0862bbfff8ce752566e88a32643e6d631cb35f4bb48b136f0c1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/af/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/af/firefox-70.0.1.tar.bz2";
locale = "af";
arch = "linux-i686";
- sha512 = "13516530c77ddd90e9a5380817acedd7d1843908f4cca8cbe523f2390236c7f37b50a5ea6286ed9a944a4de141d911af0ce425d557af338e8f7be20581717077";
+ sha512 = "875f8c525297baff2876a6c5567b1a7c6b07a269d487c93a7591366c9e91f2359f3ab537f7c6ab59d20f1360638f742443aecc2082ebb5e6bfb545e7bf328f54";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/an/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/an/firefox-70.0.1.tar.bz2";
locale = "an";
arch = "linux-i686";
- sha512 = "f947a2e74a8a1afcdfa64d4d70f123efc490403879037ac31bf082874a90cf4a40e143539bfdc5fed10a406cc1b446dfaa99e7c4c3c805ae37d23ebb420bbcfa";
+ sha512 = "fa677ecac73408fdb394390f72bf49ccb3df16f93ad124ad91f60d1f29aa8a217af341ffd566291b86c18c81c92c8f9950dfbc8a339aad12105349f36cd79e2b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/ar/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/ar/firefox-70.0.1.tar.bz2";
locale = "ar";
arch = "linux-i686";
- sha512 = "d050acc7f518b00c231112364bc9a678c64905175c111380488adea3633945b3acd285195b10f6c7a0b624effb7006f742451df5ae95583e3e20990b9639145a";
+ sha512 = "e4474a7bf8e50d29d991587d354d2f1df0359513be6e6b8e978be6af59f18650c83d5acba61c0a972da8fad7b7db720c63105d8bbe6f903dc4392ba060fc8f88";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/ast/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/ast/firefox-70.0.1.tar.bz2";
locale = "ast";
arch = "linux-i686";
- sha512 = "33b64ed51cbf24703433087bf869a3ecbf16591ea4d870b902bc775c0a9d027b91d3d161e11be075072363da178f7ed02103fd57915ba43c2f21904f32709f4f";
+ sha512 = "1a9d6336780e76e501e844c925953409c12953f27de8185407475a9ee54b9601d069f535570f16e70f6165c363a089b38cba472329749d18499defde6feb71e5";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/az/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/az/firefox-70.0.1.tar.bz2";
locale = "az";
arch = "linux-i686";
- sha512 = "5f281e9f1bcddf149c30266ebd80199c2c6c6645f5ac46c118f6aae13c87e61f34d84077f44bcc93fdf03d9c02fdf1e3e8c34fa124260e0b3da3cba7b02021f4";
+ sha512 = "774e7d4c0dd2830a581db68ed77d0066fdd03b523b9cad0e722343faa797e2b813f391a9fec7cfe37c9343c1220a0dabbe0a39a2ff39b3ed4d735dad7495ee49";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/be/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/be/firefox-70.0.1.tar.bz2";
locale = "be";
arch = "linux-i686";
- sha512 = "e912b6e121cfc3702585a68e8140c0a9ccfccd2f2a614f3b72bba2ba0794d665c0cc2596bacd2ac64e30b87837551e1b7758554b379301af650df1929003dfa3";
+ sha512 = "cc82764c3a70d7ff2d92a5ad42796aff97e6c30e13d2669a6e651ec21897be2bc13ae7dd7a061e359dbf88768306b85face5602e9e5a917b4dc803593be224fd";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/bg/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/bg/firefox-70.0.1.tar.bz2";
locale = "bg";
arch = "linux-i686";
- sha512 = "9f7c3afbda97498d2377ebcfd6417801054018a7752b7c0e4bc03fd349d80779d43202139423f48adc3af14d71fe8203a144d567bf5b051484847321ba223fea";
+ sha512 = "f64cb5ab0896c0d87532eefce2bedadd8fa3d288c093aca9245f860e93c2b3345b4a3a5261f01cc91621d05d1d60476d546b063b4bc76d11149c62031d4cdd5a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/bn/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/bn/firefox-70.0.1.tar.bz2";
locale = "bn";
arch = "linux-i686";
- sha512 = "97f1e4bec660cd573717524b42490d84bbbc93976a973fba5dfe4ccf3a745b76a494f6386ffb3060e8bc0ede9a32e69a87fd28b9fef33bfae0294a4d8e08069a";
+ sha512 = "46706117f3bff11a6fcfdc0a161eddf3e4d1167dad75f60eb0bbb9479bb45b65364a93a20bd1ed9b99da8965c1b86ec4138b1187f4974ca34cb6e71e1db9d182";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/br/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/br/firefox-70.0.1.tar.bz2";
locale = "br";
arch = "linux-i686";
- sha512 = "99e8bd11f12189b66e9f79c7b197b7b149d274e813a090e118e1823b159e87a335c890f3f257d39bc7ceab7089cf64d4665d2732919cd1ad29c7365ca2f5ca8e";
+ sha512 = "9856d76eefc33a114558edd83be6abab5676ce059076580641781a602621a74458b5a87cc5a664a977a9537e5d5b5f3c534773dfa446b292eef9a9849fe7a5e1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/bs/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/bs/firefox-70.0.1.tar.bz2";
locale = "bs";
arch = "linux-i686";
- sha512 = "5b3947dafa7e7c1d0c7c47a1ee09de3b9cafb47bf39d4ffe536a9f35f56c7ca2a265289f1729b760f09cd3befef2fdedc1e5f7afbdabf03f3c3c0e553da8d925";
+ sha512 = "7db4ce6bb1732f335da36e3f28ae695528a51b99797597a4154852f952a4dce99196f19da56807e653e3c83ce398872ebb2e0e1095d19ad45c68241f3b2d37d3";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/ca/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/ca/firefox-70.0.1.tar.bz2";
locale = "ca";
arch = "linux-i686";
- sha512 = "3d83e71c9f3acfe3ac2838eaeba4134ba8cf9ddd6c7be2218e5200ab2507228f3af5ab7930a6a08f368c1c3a31a22b9816803e9ee66f67c1dc0280a0f5f5e98b";
+ sha512 = "565ff4b01016a47103832057ccb39aaa0af1860b90f820fdbce3a037be89741e077d9b10f41c7ecb20c1e5d724a672d394d3d42dcd5c82e48711104aa6660774";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/cak/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/cak/firefox-70.0.1.tar.bz2";
locale = "cak";
arch = "linux-i686";
- sha512 = "97b0761c67aca6f6ea89e88154ffea95651f98aa5341f155d8f7a25c40f109e5f5ecc4aa7242b8291cd5b28d5df676503cbb52da25f58de4e1274996b412213b";
+ sha512 = "7e5637b6e7560f68910adc22dcb02e0bb9a81a4b65a63c87634237943816da4c7d8bd3c02a809f15f4a1dd7a99903d6bf34151f4892cea4fefa5d8fac132c13e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/cs/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/cs/firefox-70.0.1.tar.bz2";
locale = "cs";
arch = "linux-i686";
- sha512 = "6404cb3cbf6b5850c08fa1e222101f340550a30398413ac49c1a498ffe8a73172a65da20d4c71bc66bad840ce5cbab12d93f9a5e47a2969024981b3e3a6c3594";
+ sha512 = "407c9700c3c73fcff72042183549eb1c73a340b32bfcbdb350f4707b421c5c0614478aaacece123a41b4b2883eabc7e05568d90085e1ed560dcbe561f429a775";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/cy/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/cy/firefox-70.0.1.tar.bz2";
locale = "cy";
arch = "linux-i686";
- sha512 = "2e2f45ab86409368d00af0e8684a2de8f779ae5ed21c4b7bfbbd9b1b6dd2c0cb89ef00ca0d678e2c2f8f0a946ee9576ae3a657e63188b357511da4e512ee0b15";
+ sha512 = "555f00ea08af899e080b52fc16ecf22b950a171be2beb339cefc7940a15a1b6ccd5c5dd61d3cb20d2e9f4a81faa9537279bd2b08195d8e3e527fd76990a462b1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/da/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/da/firefox-70.0.1.tar.bz2";
locale = "da";
arch = "linux-i686";
- sha512 = "f39a37f55d49e00074bafd58a1afff2b2fd2284eb14f43b78c1f0a63fede72458c61a34058a453bda0d537109914bf94ab3912d04cff91286bdddf76d0df9534";
+ sha512 = "b2ecde8118c19ffd3bb5f75af9fbe3891fbe2feb85119a2d9ded71519e427d2a1fe9e41969945df984c516593cc61010daa61602fd6e5b01b84c7a6d0fb67a5a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/de/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/de/firefox-70.0.1.tar.bz2";
locale = "de";
arch = "linux-i686";
- sha512 = "4db0be46edbd3443bbaf6d19f115a0dfd751dc08d55f22c905518f7e30fbdc9d765f905505a1908ab96baf16ac4a2f03b50230c565e278e75533c4379e39a0bb";
+ sha512 = "3d90125d66977908e19c2c2d5f0e8d9242094a87ce29fcfe8174db21a882cbf71ca9fd76279ba4c03131cd945c24de1b74437a7364d5d7670021d7e901b06b02";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/dsb/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/dsb/firefox-70.0.1.tar.bz2";
locale = "dsb";
arch = "linux-i686";
- sha512 = "2901e1d382dcc9f67217e15ca2d2575c96be02af1d853e61d4885c3c546171f8da067223a73b53c1176eaa03cf7cdfa80fbe2c74ff20860a8d31642f79ed93de";
+ sha512 = "65722a4473e466417b3ec0859422f6bb40dcb68565eaef789838e6e15a6acf30393b70a7d599106161684ecd1895a28d4876bb36c511a6b9a292ce6542a4c370";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/el/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/el/firefox-70.0.1.tar.bz2";
locale = "el";
arch = "linux-i686";
- sha512 = "a31c178ac0003f93ef62091bc1468f30814fd8919ac645b84e6ec5977d13ad983389d04ae7e986ddd0c31325e550c5f8593d64d48450fc50a2d37e32b785165a";
+ sha512 = "8192bd5c963541153ce7264d227396fe6eb6ab54aec879e0bc511845fe1a311662a7e03db3ad193a01ef0da3c701718d1aeab72550cc3b8f01b14518c82eae2f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/en-CA/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/en-CA/firefox-70.0.1.tar.bz2";
locale = "en-CA";
arch = "linux-i686";
- sha512 = "4ff8b109121ef8fd4f0a817a3d273e3a28ffb952faa072ed3d8822d48691de54035d45abf7fb84a7dfa6a0543c30281896a3eb840f64a658894b477918ecd902";
+ sha512 = "4514ea0d1efee35b57482374202cf4b44e24389ed1ea536f35b908966d6dcbb1963f59f2d4c48c136baa1dcb222a0596f63dca21b1da175eb5b71dbac5dfac46";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/en-GB/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/en-GB/firefox-70.0.1.tar.bz2";
locale = "en-GB";
arch = "linux-i686";
- sha512 = "c514432dcbc3529ae58b1896621765da05c8a0511461bf6a09015d5b8e7eb14f8873029947d4d7f17b975ed73982746de8d92b651db70f7c6f97530028c7bc7c";
+ sha512 = "62bfc1a2522a638af38a41b0054b4fce1fd04d383df81d12abf0cb132a0e4e8f138e741130feff4ddf0c3fab574a0e889b72862517dc4603e8d9e966894fb086";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/en-US/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/en-US/firefox-70.0.1.tar.bz2";
locale = "en-US";
arch = "linux-i686";
- sha512 = "da231783ed7ef640d02fa7bea95191af2081f694594e08160b682bd2725a49db56b54eed868ce11aac6f664d81d588243987ac80adc71bf11f0d03d85e90e14b";
+ sha512 = "0bea6634aecdcf315ffcc56f8604a677f7bfa6976a8671a361f2f76a6ff9c34ac1e7ad07980ef9892196515fb922188a36439e8c7b5d8113632fe449ab138878";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/eo/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/eo/firefox-70.0.1.tar.bz2";
locale = "eo";
arch = "linux-i686";
- sha512 = "599d9177a80ab92dcb0ed637f5b344d0e7c180985a04bfa213b5254dbaa932af7f920b8dc95a2a9ff2e276cc4ee8d22ac8ee84d9ae012ae085b59cbb6cc15ea8";
+ sha512 = "a9bc92703d62576c988a5c50cd7cbdfe79665aed444e748f6c036b566005207883ae66bd9006af7ed6a35c26b520a250d746ed8b1964cc177abcf250231eb8a1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/es-AR/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/es-AR/firefox-70.0.1.tar.bz2";
locale = "es-AR";
arch = "linux-i686";
- sha512 = "01222211b16a3339bc56ead44cd8f9ef8035230c7f154d078ea444e07520d06add00ee100dc1b37af04ee444745cc9b514c90a8d18ff0af2a84276091c90bf0e";
+ sha512 = "a3d9a790dafb4f8fa75dafb0fe6f6c938b09d67895e9f443bac35f1799a73652d3f2460e0481333b325fa3293954eea06f1843f5d7fbe6f1c6927287fe35dbf2";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/es-CL/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/es-CL/firefox-70.0.1.tar.bz2";
locale = "es-CL";
arch = "linux-i686";
- sha512 = "16652520468f1a58798cb1ab6580114449cd7116e9f5564f3c886cbce6bfcc21ae93e5f559f45faa6c273ac9e07b584eec7d3c940c50a84f9c02d6ba9d17f192";
+ sha512 = "b81a8eaca07454b30a1dd902b6a3eaf6a81ded6d3a518067ce8483f20b6ff1c9f4f89e87e35bde08f7105970b033947fcdf03c1665522e1ecb557a7d2d536b83";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/es-ES/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/es-ES/firefox-70.0.1.tar.bz2";
locale = "es-ES";
arch = "linux-i686";
- sha512 = "cf96ec9a0f40d4178f0724ca62c9da5208bded775ff0a2ebdf9ff6f0ec7fc919f1450a221050706bb0490347ace75b7bc0e6652f6ff2ca9c5565e06c2b6d4706";
+ sha512 = "90fb3f648f6df4885521bc4d4c24e1e824ac3f700354ea26c3247a7791d2c588351e4d20f6dffd946ad3cd2a90744ce5fd0334744562df9a11b3015860da165f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/es-MX/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/es-MX/firefox-70.0.1.tar.bz2";
locale = "es-MX";
arch = "linux-i686";
- sha512 = "771da7d61622787543371266527ba41a24022a278788ff585f76208beb9936a6aa9449adf1cced85952aaf2c04f8c6f2a08883071378c66f297d3cb73a53ee9d";
+ sha512 = "6520c5ca64ca286da0e5c5dbb239552040de4b5e5b1f4b348a671245071b8e1f4213da930fc6acc7a7134a9a139c57d0f0462318df167771763d2d83b54c6123";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/et/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/et/firefox-70.0.1.tar.bz2";
locale = "et";
arch = "linux-i686";
- sha512 = "babfb53e1f5a805013eb149bbabc9e9968423c138bed3f8d6146983928210d44c57565a6abaf1f97fd741fd328a3df60d502b1357ccadde79ec1a228147b9334";
+ sha512 = "3e3d35b70b28d7a3b636e986d575db1e46ebd886cd3480202d9f79a13d2c60d0df0704d222cdf1e5b6c823dc80a68a610d7904b9915aadb0142fcdba83096280";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/eu/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/eu/firefox-70.0.1.tar.bz2";
locale = "eu";
arch = "linux-i686";
- sha512 = "d88809fb0dae2034f36080bd117bec9d2192c3ddea337ca0012391ed6a17d8f09894d0a3799e712fb3c0fe1f6f88074b265366fff92ade0a5f2db8cb96ab0afe";
+ sha512 = "53d4125d95a132ee7ba7d13b6dd3303dfb4799aa9419cc1600addbd7905af20914b0d9e05a50d96081000db4b7d69242fba9eeb51f5bb4fc755d29df2c800d6a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/fa/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/fa/firefox-70.0.1.tar.bz2";
locale = "fa";
arch = "linux-i686";
- sha512 = "acef056f215e333a29bbf8c13e17036e50e7763cad2a0e46324326f25de38b0c0060cd1c313cc7c3fdd43ed537e913a0885c6fe1e474ab7746c82531d3e27b39";
+ sha512 = "0e6f6de18dfb2744f80591ba0b5761cd50c68e7957a7937a59699ba0ab40c995cf7f49fc9829f35379448dbabb86783962c06d9cc926e3ce0a00277ef509c307";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/ff/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/ff/firefox-70.0.1.tar.bz2";
locale = "ff";
arch = "linux-i686";
- sha512 = "dd13224227e1dd82b0b5e153ec4e43e66308fc38e1c8b68402b0a931eccf0e23afd67215832cd01428d975a3dcb72a5e6f876ec3fec2c1641c2058a93e623d83";
+ sha512 = "9057e7c690474b8caec909f77fde40c40a0eeba7ae6a16d021809024f1e83235221637d4b3f0201e99ea381dbfc2d56b6207249e275feb83ec86bc0bc2a67ad7";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/fi/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/fi/firefox-70.0.1.tar.bz2";
locale = "fi";
arch = "linux-i686";
- sha512 = "3681a99b3ffa8294a81683395ca158a93ec87484d1490ec55c24b34f24437b6e6ab89b3aaf0430c49cf29dbed5a92e605b4a5dc7cf3d2868eb8bb935b61ecad1";
+ sha512 = "7b0e3601ff96c7e1574b073c8e14e6b1c2738064090b4bbb00c1b14fec901670fdecfb3b311d8beeb641b2bf762530db77e716dedd919096a549979b1cbec5b4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/fr/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/fr/firefox-70.0.1.tar.bz2";
locale = "fr";
arch = "linux-i686";
- sha512 = "3bf864381286094a373ed77df37d116424f2297c9efcdaf8fd73190253b77701afdda32ee692292bb4889eeb87bba8c1d6aed3c961a58f717c3ecbddc8fe098c";
+ sha512 = "1cb393810f5268ebe869f116d9bb29f5d16e1fe074423f3e90a8a66ec1ae5efc525980157d9dd7b3635651e55e0619f64d5a8a356bfb1658e180a162135cec0d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/fy-NL/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/fy-NL/firefox-70.0.1.tar.bz2";
locale = "fy-NL";
arch = "linux-i686";
- sha512 = "9468187b6afed9e2fe02cc72e1bb88e06c312af13de59ef97b54f135853ba47916f65dee7543578e01d18352367f4d4ff9c035e4c43666c9510c23f7977fa6f5";
+ sha512 = "13ec09f3e23b32996b9959ce90c5e1df9f2b4659cb5f5b848632930ae084125dfe27ff24e110740290480be655239470a05899993a41997c4c861d296a3d484c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/ga-IE/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/ga-IE/firefox-70.0.1.tar.bz2";
locale = "ga-IE";
arch = "linux-i686";
- sha512 = "5135e19b3043ca9891af4035583f228d9a628f6b8717c124bbc9ffb6cb19866182521719e544555257a6921cdfd1619a67d21af8be327fe3f5582e39b9cd389a";
+ sha512 = "fc8e89974aa1b21bc7c53bfd04f6bb307594a8547b77b1e253a9a0c9c47b9fb18e570a812bdfab72b65b88a2fbbb2ab62a3dd9190545323d896ee5df448e6f7b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/gd/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/gd/firefox-70.0.1.tar.bz2";
locale = "gd";
arch = "linux-i686";
- sha512 = "a7d079d791fbde00d83981080694fe813bb2abcd03a014abca9fb9a9df5af9e1daaf4cc6b35b1eaa2359aa9caa317a4352db6ed40a3adbe6021ac76fc48529ee";
+ sha512 = "19374bc3444d2b047f4bd9233acd87c2c629928ec4f527cd39974af72cb28f9b4ec5caf98c59906952b62fc0740d06c554ca0900a4bf8350a728797772cd12ca";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/gl/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/gl/firefox-70.0.1.tar.bz2";
locale = "gl";
arch = "linux-i686";
- sha512 = "020c63d6ace98c964588040c15d0e8ecc6a74c63cfaf3e0e64b0bd42bcd2a4e7bf762ac93fc510beb1689203d56812e87be743886ca5eb6d1bafbbbc0fe56216";
+ sha512 = "dc9e047c423e922aadfb7ad487191dc7c3b4c9ab4a92dea547ba7177883395ca492b494fd65d331a88c0b0d61a2064e96b07656943643533b6eaab0dceffe9aa";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/gn/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/gn/firefox-70.0.1.tar.bz2";
locale = "gn";
arch = "linux-i686";
- sha512 = "0681b4cc593d63f4244bbdd6009287d89acb3709741281c6604c5de57593e53876e9448da46a718d2fdfe369feffba1d5b115f5372b68433d5b05ce2d06c3647";
+ sha512 = "7cad7e80ccfe46f146585307b4aaf2f53543c92c2fa399397615d481e0a5c2918896afdd0307fb91966f1153f00af1c35a5aaf0947849e0c17b67af3849e9f3b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/gu-IN/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/gu-IN/firefox-70.0.1.tar.bz2";
locale = "gu-IN";
arch = "linux-i686";
- sha512 = "1e4afa88d7f153f2e653d754c71cfd960b51ecd016a533f868a96d3a4c076d5f0063d7aa169740c5f3c6e91c6c10f54edf1a4ad1829cda2fa83a462856d1f981";
+ sha512 = "253cce0007ee447d6a22211b266532b8808faebc50451b00e5024ebaffc1deb01366f01b11e1602caf6af3497b47fac6a7d235861a9b8f796e5b89feb27b0987";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/he/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/he/firefox-70.0.1.tar.bz2";
locale = "he";
arch = "linux-i686";
- sha512 = "3ea8ff7b1397ca2e2c15cd1fbfa63542d5d31fbea6fe9fe0c11b8bea0d953c2c2e35afe336714bf76baf2f38ed3894d869e9b467fa98fcc38796f1a31c6a0d00";
+ sha512 = "0319355e75fcf89b695c90af897ff14de43a7f83b89fa6deb39a4e8070d2147ce1d2ffcbc46c2fc423d9198fafbd1830eb855d29c400761c29ebc11003813224";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/hi-IN/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/hi-IN/firefox-70.0.1.tar.bz2";
locale = "hi-IN";
arch = "linux-i686";
- sha512 = "eed63dbb1d8a702cd755383f967d859015040db231b464c3691376b3cd6e8ba5b23bec3460bc0c7dd6b0798735a196525530a533caf68e4056d54d54bc4ae50c";
+ sha512 = "49352a4f2a609fb5062fdb935ef5947cad9f8f51edf6f2c6866af8948301495986ebd5d2620efa919884d08eba88f66b4a4b0ba41b323fadcd960263a218909f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/hr/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/hr/firefox-70.0.1.tar.bz2";
locale = "hr";
arch = "linux-i686";
- sha512 = "e79b0398e4a57751c87f11574b9bf6d7b92cd578b41cb80cfceb2f515e01c58bc17426fd7b3668b4d5b48d17abc60009ce1539b2a57355a90a1394f742c8916d";
+ sha512 = "3ae70d6a0e01b2f24692c23bff8a02881793ad25ab62b3d2130117d1ce488ef84e855c95e42f45b623b09dd01cec9e7ea61f5bafefb33381f729db8b21a22447";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/hsb/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/hsb/firefox-70.0.1.tar.bz2";
locale = "hsb";
arch = "linux-i686";
- sha512 = "704dce04396b78070853cb2ea8a0d6c4bf1da489864f4575a5d98c953b765fd7660e5c75bd3506bb05d94f5eca12d37a50be351fdd189592315e32c3fc361dc1";
+ sha512 = "53d427b81c5e05e2d986420f13ba33704bc30f12fdab7ed60399d2c9e577731a64d7facef62eb07b9fbcb9589dd0c976aced60e41e573197fce230501a2c139a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/hu/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/hu/firefox-70.0.1.tar.bz2";
locale = "hu";
arch = "linux-i686";
- sha512 = "613b525e8abc06e54dd985984b690c25e5c9ad8aa072cf5e48b20298b91853a8019696f7d7101d74efe200119a4a9d1196b71fc286bed7916d712dbf6c6b5686";
+ sha512 = "fcfc48428bb0764f5573d976fa671a4eeb7d08a5e5d7ed6472cbcb85a5c269aaf709550032845fd2993246a10aaf990bdf02045a9229af2cf6f34e693b250388";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/hy-AM/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/hy-AM/firefox-70.0.1.tar.bz2";
locale = "hy-AM";
arch = "linux-i686";
- sha512 = "5d4088682997b0490ac49606dc8ad56158b3b7585ed4b89507a2596d119eae098d82fdf224eb047b6090572fd5b00cb95dfc5027afd6cea11b0f05e6d93ad439";
+ sha512 = "91b09cacf023774a6b123804578508ac78d11b398267c679f0bc97a27921fad94378be338c2a6488ccce9944537f14df9df705c9c365c39f46773de50ab24fc5";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/ia/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/ia/firefox-70.0.1.tar.bz2";
locale = "ia";
arch = "linux-i686";
- sha512 = "7ddcddfe7e3baf0bae0bac901b503fca8c344bd02d6b52d90face8b8575318c8805db618e8591372c4c4c60e1092a842f2bb17a920d96e0f15a1491ac847305b";
+ sha512 = "64ce9ce8b80db1af862bfdeb45fb5e4790ed910470c242eef2905220f5c763652783c6575753a6c950777b6dce20ed55150f298a03d24ff331f076c7c7904316";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/id/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/id/firefox-70.0.1.tar.bz2";
locale = "id";
arch = "linux-i686";
- sha512 = "90cf509c70963750a4bbe5029e5e0512e98c8c7286d80120e39e299920d9331cb72dc7f39f2906e9a5b331b54d2f282b46c4b7f69dde51ce2b06c39e2601d335";
+ sha512 = "1e104130399a6379c174804a7e2f5a5ee855303565295c829f1f024ed3742379e6ff835416e123ef2ae4a210974619231eeed8bde58b784717ee9a49e6b6e66e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/is/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/is/firefox-70.0.1.tar.bz2";
locale = "is";
arch = "linux-i686";
- sha512 = "ad4c03603a8a81dbdd968ce4831ea40effe90b4cb044315a3c0566b647854fd4e95cdf6c085da8a4f4d901ef671392237aee70e4604552381959b65ea6d32089";
+ sha512 = "0c4f0e787695c8615c8f5c65e776ffe30d7a4cdcaac4e996a5ab417a3f785658801df4ef0810c00e6a028a87843d4e01e7653a74defaaa1d427bf78a569d88f5";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/it/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/it/firefox-70.0.1.tar.bz2";
locale = "it";
arch = "linux-i686";
- sha512 = "04dcf6f3b9b3f22a44b74a2e9e20d6fa74a75707c3b3145d048fd9bc10eb4859127cff525367d0e7fdb8ba6d997a7ac1506e3611ddcb80256aa0cfb7d472d407";
+ sha512 = "b133d1cc936b23d289cc14024b3fd6572ff9ab1b1becb5b5456ab933cec28b17d2a42f82a11404e59f954d7c8f1f583dacb21cad0aeddfc5f1cc663569d1727f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/ja/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/ja/firefox-70.0.1.tar.bz2";
locale = "ja";
arch = "linux-i686";
- sha512 = "d9d017a9279bafc6d7b440ea7b11ff945bd647601e85b395e0ac086684f58dfb15bfa18688748e934bd76ddb3729804e10a55ec3428f2e03413f9bce8921936f";
+ sha512 = "e5ac3d886d17a2a7e2b4ed51098501c32d812b49895b5861ab2d086475b5b2a12b76895ecc77e3b5b8d2c02ea22206cc6babcc629f97925d0824b519692b0e78";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/ka/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/ka/firefox-70.0.1.tar.bz2";
locale = "ka";
arch = "linux-i686";
- sha512 = "513d865cbda546448b77e7adbc236d24dc1d379fd5c74ada7a8fe6667c61237428f0751e1a9c0e067c9ec5684ddb8b0fe8041b8eaa04e98c4690ca1486c20281";
+ sha512 = "a565ff60cf771a1b4f38793cd62f37f7d87255e546605cf6ff8eb9865a3595d9d6a65712e602f71dae5257d465b5b2cdfeab3fcf86b81f974d96ed4394fc30fe";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/kab/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/kab/firefox-70.0.1.tar.bz2";
locale = "kab";
arch = "linux-i686";
- sha512 = "7747666dffb5a8836ee88669dfa7e5c848e27821911499c1b4d896172bc8f696dbb998c701b043177fe0370000529d8ef807cbebf9457e013ddd822faf4b7a19";
+ sha512 = "01cdd838b55b490b631838d37d8b8facc59a88c83782af37c44e2a7fb9e029ffa74286a5e697c5fb18b3c6bfd299e505dcb7a74806ce2f402f9d7fc70d7490d4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/kk/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/kk/firefox-70.0.1.tar.bz2";
locale = "kk";
arch = "linux-i686";
- sha512 = "badeb493bbcd591359a283e930d9f042c2c81af24b2824cc4559f1a10a5372dba3eff457121744f0e5a8bc78394215535524f440cfe7435853f4b97db03a05a9";
+ sha512 = "ef57f2946a86477e37fe611a33f88c5d79f480432d96936ca5a1b8e4a0a4d84770a311c5d017d06215e65e99b42b36c32d8ea862c4359064bd008ad3e71143d1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/km/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/km/firefox-70.0.1.tar.bz2";
locale = "km";
arch = "linux-i686";
- sha512 = "2e33e07d9a35eaff182ad012dbd2f59cfc70170cba518d066bb05bc4873867dc24dcd0dece4fabfc045cda6313d5aa86a31e4c5d42579eecd6a11596a8d806bd";
+ sha512 = "ad6c71ab38f778089dc741b8efd1093f500df24c5bbd78801f1b02ea2d13dc30cc56eb32585102f646135ff3f2d6ab8afa871f2ed6fb7528daf1e16ac3c3660a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/kn/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/kn/firefox-70.0.1.tar.bz2";
locale = "kn";
arch = "linux-i686";
- sha512 = "9ba5560db5f127018b3c365da5c18942da60ce609fbd5ea24c2eac75bb683a0853f212d8c46d7ddbd6190b6158d733d9f9dcd146188940e2705e9ca84caf1c33";
+ sha512 = "e341c369ef095cb356470e7861504aa4a670bf633fd91ecfd190561cdea5faee03206053cac60dc1c66db3a771bb201e169913916741aa1a398a1567dc56b209";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/ko/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/ko/firefox-70.0.1.tar.bz2";
locale = "ko";
arch = "linux-i686";
- sha512 = "7f1ac38d2c303fa4d6ba628b3c57f5fbfde1b29e6830f5a2fc657f85d94f37d7474dd590e6b2933103cbabeefc5a51d6e59b434db7c8b422b8071b09a81e73fe";
+ sha512 = "38c8c9ee945cb381744b077f3c85b0d96355d866fa7771cb4c1fa1c542d8d11f8c63b497a6c052da20ff443adcd16aec868d79120b1ee27d0f17aa9d1c809112";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/lij/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/lij/firefox-70.0.1.tar.bz2";
locale = "lij";
arch = "linux-i686";
- sha512 = "9e8023da48c91b1e1eb5cd67ff661413a346fdd9a5062f71df712a4dd237c8b54ead00c49d03342eb32a614b85e55f6cc263a4968c8c6b09e307876483ce39ac";
+ sha512 = "8cfe74ecb2ff43a83c2d4587ba3ef46a9856ce6065dd320df8cefbc75a6f34bc2c0dbd969e3a0894b0cff3faf40c67dfd5ef13c739beb5aeacfad2fd0da644f4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/lt/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/lt/firefox-70.0.1.tar.bz2";
locale = "lt";
arch = "linux-i686";
- sha512 = "1d422bfdb4fcdaf791541a778bacd27753e154e6093e0f8e76146f0eda6cbaa40346c519590fc78954d6d88c7fb0bd1c23b0ac5e359dd7a052ec124072a63c1c";
+ sha512 = "f00e7d3abea4f6ad161d1b9755a23c0cee97a897d14aa168c02b8ca934c116a046c98320a2cc92ed880aaac97961688338a7d16d9fd8d8140d5b89b6b755bb59";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/lv/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/lv/firefox-70.0.1.tar.bz2";
locale = "lv";
arch = "linux-i686";
- sha512 = "5168aef4edacf147f4f26f8f6c9f9b051339bf8b3910d8cda527321c0a6bb410a4cccc016c939de7d99a2db3b096ca2a14bd9eb5889f468d8aea27d2d96db1a8";
+ sha512 = "48006127f33a07a1fa9873cd5700b7bf6195c53b45ae8917277ad936a9ea1e44125fd29a32c21f293c45513ed0d8ba159577acbfcfc1406f653c3411eb5f28cb";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/mk/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/mk/firefox-70.0.1.tar.bz2";
locale = "mk";
arch = "linux-i686";
- sha512 = "af4d3216ac877e1fed003056ccb9ef502ee8ed9984df609043190946d7017f0e94838a00c1bbdaae9ff0078a8779bb3e0cef668e9f38dc94f546ef9cb4691e1b";
+ sha512 = "41fee9f27eda062cb60deb190c155e48d370b42c2705a1be31b08593a688013547f7bdf872c385d77e69073b242538b55e058e84a2f3f8f2c50510b018a6bdfd";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/mr/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/mr/firefox-70.0.1.tar.bz2";
locale = "mr";
arch = "linux-i686";
- sha512 = "744196bffb399181b66ae4c192febdf595906809985807a596d2e482c2e1d519c0e3500ad98d04518b6f71dbdcbacfc481972bf2cf7802ad81f6627fe3b59877";
+ sha512 = "7b34194089a72e26c7feef0a541c0ce92b770007492963ecc04427a155e0488846c5bab875cf3bd6f535fec9b10f18d4bd75a439e8cc70f635d718be94683539";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/ms/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/ms/firefox-70.0.1.tar.bz2";
locale = "ms";
arch = "linux-i686";
- sha512 = "5d79b3b383d4163a4ae5ee84c28d8578b27e4fb42d09691fa7cd6fdf77e3a74e5e83c9bac581fa59e74b2aaaf8713f9f3b6b1d5ad778579f274d6f08fb4fc36c";
+ sha512 = "6a48e803f8c2ef2bf77802e7905a75124f2b5a0bf05be1e42cfffbca6337cee16e63e0b50eedcdb21f868ff0792cfc7adbf3d00b9b7498e122d5c6b9571b267d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/my/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/my/firefox-70.0.1.tar.bz2";
locale = "my";
arch = "linux-i686";
- sha512 = "60b128b6d0cc632667b496f8b61e39fd14ad4c1544b4d0041cf739622c5c1b1cae539e848fd5944d0c3286f0b03dc2de46a156457ec6e2efa155e13cf7ce279d";
+ sha512 = "843a0618ab2260462937a374b87e1bb24a781ed85aee3f03b9745c1374c186bc5c8013358c37ac674495e992e1ece3015f51bd50216733c498576936284fb9ae";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/nb-NO/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/nb-NO/firefox-70.0.1.tar.bz2";
locale = "nb-NO";
arch = "linux-i686";
- sha512 = "32e52dc1b1221862c0e3243e29234b330d73cc99c4500faf785aa911c92019e655beaab6f79911a8661a5efbd1dc8784aa328216653c2a206e52f703057f15c8";
+ sha512 = "95f23fe193ea4b71daaf2bf9e6016f30202fc2eff3b8de2f64e32451a23edf438441c10979673b73f4244eb7dcf34fa29af985487cf2d757394f02e399e1e2f4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/ne-NP/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/ne-NP/firefox-70.0.1.tar.bz2";
locale = "ne-NP";
arch = "linux-i686";
- sha512 = "04802130d9f08cfef7d0f5d29e0ed0b9757c3b7fbac001bd35431ea4851edd8c2e4837518fa893381f6c0c976684ffedeaa96b2bcdec3849cd2cca6bf170bdd3";
+ sha512 = "aff8a40c53bb7279ecb3054716a2c8e655b0708d1f93eaabaa10181f634942fea384cffc0d6e624fbdb046fad5e9922bb74ee051b306e323f5f71bc0f05809b6";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/nl/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/nl/firefox-70.0.1.tar.bz2";
locale = "nl";
arch = "linux-i686";
- sha512 = "fc02ea317fa90caf203608a31f2a188971bf5d6a900c8f03a422ffa76adb1eefd32c55f317c7c89c8443d11a79f0041a6a111a78519b441eaa7ec4832bd8ad38";
+ sha512 = "5b9049bd2c025e988415373525ab7b4d98938fb8f3cd821e923d082df5e57b4338d2b1b769f5861e962bbcf4c4ec103ed916995b6621e5064a5bf08bdb42847e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/nn-NO/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/nn-NO/firefox-70.0.1.tar.bz2";
locale = "nn-NO";
arch = "linux-i686";
- sha512 = "f7f1274605b79541ec6f93cc7f023fe437c93e969d3644c6867a7c2c448f5504f9a6fc29f47c4267f13187ff6eb1b240e32e17dd2e5d66afc96e0a3bbecd9922";
+ sha512 = "f3a54f9ad4b5d06646eb52c44407bb7fb6ec1ab7a88f703bde17c69e6f598a05eb5c86e1eb89cd41edc89721463b997b9c93172eeaa1ba5cadfb85136fd9d848";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/oc/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/oc/firefox-70.0.1.tar.bz2";
locale = "oc";
arch = "linux-i686";
- sha512 = "ce1c1a35de6ac933192cbdd49370d5cbf90dfb993dcc8e3c739f2e3ff2023cc793f7ffeec40b3ba4093449dcd37e221932a6c3771f8f70ec074bf79e50320f69";
+ sha512 = "5eb8a9b68ab057cd67776edc1dd71f094e5373926230ab4275e498ca91e18d8bbe37f2d921507001097b1536085739fb8e167b47cc71d7350301fc9ea687c122";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/pa-IN/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/pa-IN/firefox-70.0.1.tar.bz2";
locale = "pa-IN";
arch = "linux-i686";
- sha512 = "50b4826d83cf08ebccae048c4dd3760f3ec639427d6354de398b77501e73df5062b8090590fcd74be54005a7df61a8cd7c2f4207142bdcd6468b1fbc126801a3";
+ sha512 = "3bbe65e9486b1192c0ab6aee17805e31724fca6ce4faf986c9afd9ae5b4e48f81cd78c15bf7a4be74f4f26a49f9de69221f88ae4b3a119c7c5400ad9d73d2869";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/pl/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/pl/firefox-70.0.1.tar.bz2";
locale = "pl";
arch = "linux-i686";
- sha512 = "ae77877e1eb03174a1899b2b5d0820b367553d56febea14df4f1545a7f10de16c9f4401efad4334ae04a4a5c8abe49b2e24c09263bc002937576ad5ce622ed17";
+ sha512 = "3e4c7d5a36e11f2013209f6eb40d7c95ec597a049688d795f426215377ce99677393d198470c9549b7800b36926ea728629497572e1242bcdb150f17d1e23642";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/pt-BR/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/pt-BR/firefox-70.0.1.tar.bz2";
locale = "pt-BR";
arch = "linux-i686";
- sha512 = "92cd33b35927dddc22e8a3ff3833ce2bb4913ae9ea12d4220d88861f7badcd69d1dd97be22cb6546a8f09b0e7620e17eedddee3d159660c9128c288e49a47dbf";
+ sha512 = "45b3b8541c76e2b18f1ce6f31e7653b612529573fd7d795ab09da85fa786db8f85385e875996acf2c2b53335cded727cd00d59d51caa63a115d18877a14b6396";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/pt-PT/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/pt-PT/firefox-70.0.1.tar.bz2";
locale = "pt-PT";
arch = "linux-i686";
- sha512 = "fb8d011fca706e6337e0b0b13b2e1ec619565b954c887c71720240905ec5c085aa7037b54e8b3df316c253483a3d3c7ad2182b27d8591d4e2840c6a4f9e39382";
+ sha512 = "a372f393f9b49bf3fa84858a5173272a226d740e8dda058c780d7733778be0d0e3eca7e959425b9b51ed62d1dcb91adcf04c8f7832bd4563649d29274c844c11";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/rm/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/rm/firefox-70.0.1.tar.bz2";
locale = "rm";
arch = "linux-i686";
- sha512 = "fbf0e34fbae7da291cc132697b6505f3213ad07c78a47171827a9bd6c22b674629cd21a9f47187173cf21f1b168baad0f058365a9ab24e274a2d3aff5acd0e38";
+ sha512 = "5fbbf7b308f40ff27ee364bc0a5ce9d8dde0685eccd319a1aba22192b1e713ab2ac34e66d9284cac8f9d8b2ca5a4f4c24b6befc76da937e97c1021b2247e0be6";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/ro/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/ro/firefox-70.0.1.tar.bz2";
locale = "ro";
arch = "linux-i686";
- sha512 = "cb712f917e0b70936ba1222f03c8874134e1cac6c901d94792aada224d894a607829b64993535f0cf61d8a2a050f488452c35404400587222418c8312e2b22f6";
+ sha512 = "a39b7e922aaf404b810e06b56bb23b012252606caa70e64680a024adf64e780db8a4850053166f35e0d47a98e009e5116143b273920531a3c1ce82ae81430c33";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/ru/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/ru/firefox-70.0.1.tar.bz2";
locale = "ru";
arch = "linux-i686";
- sha512 = "7ba048f533655e5802347a6d409ed6db4441b421cb81d66269eb610336f3fe2077a5bea405f235c167390f745762ef29863e83e6e704bdec17404d26a97f8ab1";
+ sha512 = "e2b909fb157a514485ac90dd46598245df90b9d6ace9104a4fd638513d2e5bf430b59238a3180d2906e8be2a2e1cc68478f7a6a1b2017018a8bdf79c6acd777a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/si/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/si/firefox-70.0.1.tar.bz2";
locale = "si";
arch = "linux-i686";
- sha512 = "ea59ce14e80132d96f0419981dda30184809542978d158b8894c77cb4622c3f0bfb9bbbc4d456b386a023d9856ff6b02e5388ddfb0aced2ca764991ba8bab48e";
+ sha512 = "e99a85f77b4269189f578f2f2ff52f952a1044c8e9894b7ae3826df709304aba7b56980078adc82a4c6242ab7dc102a55c7c3417a2bd3c4d4a50ae702381e400";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/sk/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/sk/firefox-70.0.1.tar.bz2";
locale = "sk";
arch = "linux-i686";
- sha512 = "4665b3b4b96a07ea0530acf4063dacfa48ff39a65d2e1da0f6d3f65703c3916ed65a8881d8a9d92109e252993f63edfec899d00a3559149a282b615624267431";
+ sha512 = "16a1c7f32c6e9ef145e6c85a5d875afb87ab844ba1a97e0a878129dfa3e8d1418f3484c5cab653fdb6901a4af282c0b4eb6b7e44a4b124fa5638136cec7d151b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/sl/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/sl/firefox-70.0.1.tar.bz2";
locale = "sl";
arch = "linux-i686";
- sha512 = "f3d6486a3dfc435933871cc8abcd3a428d724dfccca26be63df29d9f5b34fec115bb6e185b2aaf839f428d0ab44d33583610bf9d1c7f02de442506d1fc06192d";
+ sha512 = "0e844d8c13b365b206d903059d68edb54a49995616846d6ba73846d437fbd4a15ed4c179ef466f955598a08d37e546e63f72cb5cb351affe9b71a7b8172680c7";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/son/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/son/firefox-70.0.1.tar.bz2";
locale = "son";
arch = "linux-i686";
- sha512 = "6486e2f291deb1fb241df996e7898a9d487889815195d01d77d6bfcab6e2cb4bdc24c7694b6b05a95758ef130cb3332842e36446ffc2a926940ded5031cfa13c";
+ sha512 = "21e038a13b2de3b1793a05c6b58311ef025fd5e0e84ae73ce6a652563ff0e2ddea3d94b723175a4ed8782b72b32eef673f0bb30c8191894d3b5279c8f928a356";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/sq/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/sq/firefox-70.0.1.tar.bz2";
locale = "sq";
arch = "linux-i686";
- sha512 = "b111d30e2cb7fd5edadc68b9d25fd8970db62d721e903d9874afe6b875b313d039dc7c4e98e3de07a09fe84ca7d0ed10da2e74cf3cd4953b2c25252e16e01516";
+ sha512 = "17e54e8d2e47aa06b2889d2c742e8af7b0d506025c03eb240106c3ca6e2a6ed8a3c68e2999190a4a18b3ea52a7e0e689851d9839105f5ce973c7d92dc5162a94";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/sr/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/sr/firefox-70.0.1.tar.bz2";
locale = "sr";
arch = "linux-i686";
- sha512 = "14c98d156bcae234c12f28166ee5ffc7d034529efb76536ffb29ee8baf850cb3c934ba177956ceba9c4cde2481064c3a906515328d1d8b6f5d9258cc1d30da94";
+ sha512 = "c635b30ff1c3681b37cc823c7184939f4edd0a5eb0b991e6efb329816e7f7a1433bcebd7a5a905a0d0352c214d9df7015e6e017d66b60450dbaf5c1ce8e91311";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/sv-SE/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/sv-SE/firefox-70.0.1.tar.bz2";
locale = "sv-SE";
arch = "linux-i686";
- sha512 = "a196eb9ec6b667d04dd787aae47a1dd22a99f01fdcbf6b36e9946038dad52ddc3d215e2307641c3f539e476c9b8e3f9470d78b914a243b51595f7d75cad2e114";
+ sha512 = "d4a7bb7cca2caae6c0fe59a7d95386b62b6d061604601d84779fbbfcae0f3e4f1688c0397b30fc39a52706b3188f7bdf87b9f04af2b2f3b9f4af791d090af62a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/ta/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/ta/firefox-70.0.1.tar.bz2";
locale = "ta";
arch = "linux-i686";
- sha512 = "d76c3797cd752a2b8021694421c224c2e2afa2d1350cb86263b01a8efd84b49cbda40a5c6b64f981833865944798148508fd6ae3532e82b773d650b41980893f";
+ sha512 = "6849eb6714602c1fdb9925bedf155876544f483ed4661e90d3bdb819a43469030913b2f5dd08a25a1ecd88599f6210ba08fd840598fdb442eda701c6427e63d1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/te/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/te/firefox-70.0.1.tar.bz2";
locale = "te";
arch = "linux-i686";
- sha512 = "8bf86410d1d73cf355ecc4c2ef3308c35a31d55f90bba1c942f915e8cedee919c80729271c2d9e3aecbf499ca711f36bcf74c8b41c50024161e567d395485477";
+ sha512 = "b969367ab5d96f7eb3d53ecb0e2bc6b5c76f1f3b409be2469e44eef7450d9b4e3df20b759ddff452319cfe117d037c8140086c06d99aa757ea1be9471a5d7ec2";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/th/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/th/firefox-70.0.1.tar.bz2";
locale = "th";
arch = "linux-i686";
- sha512 = "c757659188b17cfad880e70eab772517128bfa7d1dcdb86f313a63fb46c3f3d3504d66bf3ac99d1058848264ee4458bc5b77bf78009e9a7216c1fa359714a3d6";
+ sha512 = "9bb9888a2106256fffdc289c711b75d008018080d49dc87ebbb40519ac39884a7e645504b3b9a458dc34268afe273684044d3993d94851bc7ef0dfad2491cd6d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/tr/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/tr/firefox-70.0.1.tar.bz2";
locale = "tr";
arch = "linux-i686";
- sha512 = "635ad19f913a2d6dc46df50589229658dcea0bc570f45b7c5ff8eb6878b852ebde3a490512d679a6257c39b16fb986f40ea2894c08caed8c485a91e95f4addc3";
+ sha512 = "80a614d54be2ea66ffe8947e9389c795a83bddd1d1350f5f98953ebf02eb8d7102ee3e2e41e79143a19630a897ad9ad9b3d999fc264a271a7be426c18de4a179";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/uk/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/uk/firefox-70.0.1.tar.bz2";
locale = "uk";
arch = "linux-i686";
- sha512 = "99a3410ea2caf11911e7613568f7522230b13dcef48ffe6b95206a6a6d9f43f396b37bda1fad62dc4db097da55f96b30683626031491d88d116797b605d3cd2c";
+ sha512 = "f08ad461916354ed37d489e2635cde7c42c34b9bf8eafbbf05901a489f9eb69ab55df2dbecbed22980f63d084b76a981d8608434366e35836c19a9e87367b9e5";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/ur/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/ur/firefox-70.0.1.tar.bz2";
locale = "ur";
arch = "linux-i686";
- sha512 = "aeb60017d6ff2deb1675880c2358eb2a8561196e6148e8f796bc6964d26c303355339d7e6e4526be0814190a3bc4a98b48228457d6709a762e0e36bc83f6fb52";
+ sha512 = "33483075d31c70b684e8152f241c0ec082fdb2a7567bdcc418d86a5135ce2afd6b40ec6616b8725dc3a0dc683120ef55717c5391a7a8bcc1c62b43c56620f70d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/uz/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/uz/firefox-70.0.1.tar.bz2";
locale = "uz";
arch = "linux-i686";
- sha512 = "99d025db18d86f75818354abfa56bb13041832605f25e0b91c87e18bda06d059ba62aec8be7141c8c6cc5f34edfeb83bfcff9234222ec88121b51fafdeab7ca1";
+ sha512 = "065c212d3fb01cee2c90be07c84bdce37bd285ec20938cf6799951e2ee2d598317b720af8757ce0d9355dbb4fc99365e02890cb57a43437ce60e9d28c7701cc0";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/vi/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/vi/firefox-70.0.1.tar.bz2";
locale = "vi";
arch = "linux-i686";
- sha512 = "5e5a586ed274f112ca20d729c89b949c46eefdf2d993e4bc27ecc4a40530f89ab68838dc458e510cb5d862e63c1b7b6188657650599dea920070092f091d6a2e";
+ sha512 = "fc906223f3a75ad7672bb54dfc2b653f26bed3ca958f8a030bb4987db641abf3ab84dd811b0919a7ea283703bada22ef5e3042bebf7ef6336b3d2494c4cc87e4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/xh/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/xh/firefox-70.0.1.tar.bz2";
locale = "xh";
arch = "linux-i686";
- sha512 = "fbcf97c7235c0a765fa083893dbd1e82e6b9befd8266bc86c1b1ca7a5d1674af2cdd8c86d6f2087683823eac2774e0b8983c4da93c72115ea4d53e6b73815140";
+ sha512 = "dc1896ef1a1eb0e0049724bf28f14bb2d039d558212aed3c619688f289d8b80f99b4e77acdb75d454b75ed39e610527840211dd2ffd7dec1a8e74d68d3eb468a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/zh-CN/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/zh-CN/firefox-70.0.1.tar.bz2";
locale = "zh-CN";
arch = "linux-i686";
- sha512 = "93cce943be38357705ce7d1d4c5d88e5256c34280479216a4f739b60665ba832ef7b18b23730256871ce3bbfcae744ec421ebd56aaa73acb6cee91de03d0abe9";
+ sha512 = "d3a1ab88c12115e70b4077d6ff05949d637527a376abaa5ae773ae3ee7caac9e9812ec16f1674d890aa0dab358491f344688e6f1e2fe57ea10f086d4c88c1cd2";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/69.0/linux-i686/zh-TW/firefox-69.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/70.0.1/linux-i686/zh-TW/firefox-70.0.1.tar.bz2";
locale = "zh-TW";
arch = "linux-i686";
- sha512 = "407014668d7fd6802c1966cb8ac8571c151877ae3a9841e581784987a0337cff5c5ff191d13f305c371c7880a269b8483ac96b08bfd9f04b8ee4747adca5715d";
+ sha512 = "0746b0f439aee108a0c2e4b582a9c308921ce52575322ee6129026ad35ad9cc5a4ee81b05a27fe2febfd98168c59b012381e0432e08dfc52cc2ffed8bd43cfc6";
}
];
}
diff --git a/pkgs/applications/networking/browsers/firefox/packages.nix b/pkgs/applications/networking/browsers/firefox/packages.nix
index e1d4014c83b..b60d1a8e8f3 100644
--- a/pkgs/applications/networking/browsers/firefox/packages.nix
+++ b/pkgs/applications/networking/browsers/firefox/packages.nix
@@ -17,10 +17,10 @@ rec {
firefox = common rec {
pname = "firefox";
- ffversion = "69.0";
+ ffversion = "70.0.1";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
- sha512 = "2q0gky7a6ayb6mw8bw3s35q3ggibf7vfyrxgggz1l4lpcv6dwjj01x45071h106jkvnh71hycvp1cywf98lkybjbfp8c9kd8sivkd43";
+ sha512 = "0jzga89iyawswma2p2g1ygffivflc8a966v8s5pbz425xhgbcvif1li0y0rbhnc5dc08lh0mr3a9n5sry43rr5nhkqi1vsh1ri1i3kr";
};
patches = [
@@ -32,6 +32,7 @@ rec {
homepage = http://www.mozilla.com/en-US/firefox/;
maintainers = with lib.maintainers; [ eelco andir ];
platforms = lib.platforms.unix;
+ badPlatforms = lib.platforms.darwin;
license = lib.licenses.mpl20;
};
updateScript = callPackage ./update.nix {
@@ -70,11 +71,11 @@ rec {
firefox-esr-60 = common rec {
pname = "firefox-esr";
- ffversion = "60.8.0esr";
+ ffversion = "60.9.0esr";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
- sha512 = "0332b6049b97e488e55a3b9540baad3bd159e297084e9a625b8492497c73f86eb3e144219dabc5e9f2c2e4a27630d83d243c919cd4f86b7f59f47133ed3afc54";
+ sha512 = "4baea5c9c4eff257834bbaee6d7786f69f7e6bacd24ca13c2705226f4a0d88315ab38c650b2c5e9c76b698f2debc7cea1e5a99cb4dc24e03c48a24df5143a3cf";
};
patches = [
@@ -99,10 +100,10 @@ rec {
firefox-esr-68 = common rec {
pname = "firefox-esr";
- ffversion = "68.1.0esr";
+ ffversion = "68.2.0esr";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
- sha512 = "0n8iy9xwf8wldkknq3y3nlm0cmb48baamvz4wmmbpfb2kfrxbsj3wnnd9ayk9zxhrsdq0na9gvkc374mv06nyqijrahd67wljv08fx5";
+ sha512 = "3p4gic3nlz1rxfc64xnv6vgfvf84w8752vpkdc1sfl3qx0w05q5d23rsvmkm8nb45bnsq3ch3jsrsh4p6fan4k9hvmzv8zgp6k2qlpn";
};
patches = [
@@ -265,17 +266,17 @@ in rec {
gtk3Support = false;
};
- tor-browser-8-5 = tbcommon {
- ffversion = "60.8.0esr";
- tbversion = "8.5.4";
+ tor-browser-8-5 = tbcommon rec {
+ ffversion = "60.9.0esr";
+ tbversion = "8.5.6";
# FIXME: fetchFromGitHub is not ideal, unpacked source is >900Mb
src = fetchFromGitHub {
owner = "SLNOS";
repo = "tor-browser";
- # branch "tor-browser-60.8.0esr-8.5-1-slnos"
- rev = "9ec7e4832a68ba3a77f5e8e21dc930a25757f55d";
- sha256 = "10x9h2nm1p8cs0qnd8yjp7ly5raxagqyfjn4sj2y3i86ya5zygb9";
+ # branch "tor-browser-60.9.0esr-8.5-2-slnos"
+ rev = "0489ae3158cd8c0e16c2e78b94083d8cbf0209dc";
+ sha256 = "0y5s7d8pg8ak990dp8d801j9823igaibfhv9hsa79nib5yllifzs";
};
patches = [
diff --git a/pkgs/applications/networking/browsers/firefox/wrapper.nix b/pkgs/applications/networking/browsers/firefox/wrapper.nix
index 69061cd0808..4901d694f49 100644
--- a/pkgs/applications/networking/browsers/firefox/wrapper.nix
+++ b/pkgs/applications/networking/browsers/firefox/wrapper.nix
@@ -19,9 +19,8 @@ browser:
let
wrapper =
{ browserName ? browser.browserName or (lib.getName browser)
- , name ? browserName + "-" + lib.getVersion browser # TODO delete, it's just for compat
- , pname ? lib.getName name
- , version ? lib.getVersion name
+ , pname ? browserName
+ , version ? lib.getVersion browser
, desktopName ? # browserName with first letter capitalized
(lib.toUpper (lib.substring 0 1 browserName) + lib.substring 1 (-1) browserName)
, nameSuffix ? ""
diff --git a/pkgs/applications/networking/browsers/links2/default.nix b/pkgs/applications/networking/browsers/links2/default.nix
index 7bb443e22c3..b09be81cc41 100644
--- a/pkgs/applications/networking/browsers/links2/default.nix
+++ b/pkgs/applications/networking/browsers/links2/default.nix
@@ -8,12 +8,12 @@
}:
stdenv.mkDerivation rec {
- version = "2.20";
+ version = "2.20.2";
pname = "links2";
src = fetchurl {
url = "${meta.homepage}/download/links-${version}.tar.bz2";
- sha256 = "0bchwqa87dc8cb55spyybkqpc456pp4x2n9aw587wr7pn96cvp9v";
+ sha256 = "097ll98ympzfx7qfdyhc52yzvsp167x5nnjs6v8ih496wv80fksb";
};
buildInputs = with stdenv.lib;
diff --git a/pkgs/applications/networking/browsers/luakit/default.nix b/pkgs/applications/networking/browsers/luakit/default.nix
index d679eb56f5b..0605eda7fc7 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 = http://luakit.org;
+ homepage = https://luakit.github.io/;
license = licenses.gpl3;
platforms = platforms.linux; # Only tested linux
};
diff --git a/pkgs/applications/networking/browsers/midori/default.nix b/pkgs/applications/networking/browsers/midori/default.nix
index a0bc0c743e4..1d1928d168b 100644
--- a/pkgs/applications/networking/browsers/midori/default.nix
+++ b/pkgs/applications/networking/browsers/midori/default.nix
@@ -1,24 +1,52 @@
-{ stdenv, fetchurl, cmake, ninja, pkgconfig, intltool, vala, wrapGAppsHook, gcr, libpeas
-, gtk3, webkitgtk, sqlite, gsettings-desktop-schemas, libsoup, glib-networking
+{ stdenv
+, fetchurl
+, cmake
+, ninja
+, pkgconfig
+, intltool
+, vala
+, wrapGAppsHook
+, gcr
+, libpeas
+, gtk3
+, webkitgtk
+, sqlite
+, gsettings-desktop-schemas
+, libsoup
+, glib-networking
+, json-glib
+, libarchive
}:
stdenv.mkDerivation rec {
pname = "midori";
- version = "7";
+ version = "9.0";
src = fetchurl {
- url = "https://github.com/midori-browser/core/releases/download/v${version}/midori-v${version}.0.tar.gz";
- sha256 = "0ffdnjp55s0ci737vlhxikb2nihghwlb6mjcjzpgpnzi47vjqnwh";
+ url = "https://github.com/midori-browser/core/releases/download/v${version}/midori-v${version}.tar.gz";
+ sha256 = "05i04qa83dnarmgkx4xsk6fga5lw1lmslh4rb3vhyyy4ala562jy";
};
nativeBuildInputs = [
- pkgconfig cmake ninja intltool vala wrapGAppsHook
+ cmake
+ intltool
+ ninja
+ pkgconfig
+ vala
+ wrapGAppsHook
];
buildInputs = [
- gtk3 webkitgtk sqlite gsettings-desktop-schemas gcr
- (libsoup.override { gnomeSupport = true; }) libpeas
+ (libsoup.override { gnomeSupport = true; })
+ gcr
glib-networking
+ gsettings-desktop-schemas
+ gtk3
+ libpeas
+ sqlite
+ webkitgtk
+ json-glib
+ libarchive
];
meta = with stdenv.lib; {
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix
index 772ca926cd7..585b7426eb6 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.238";
+ version = "32.0.0.293";
src = fetchurl {
url =
@@ -85,14 +85,14 @@ stdenv.mkDerivation rec {
sha256 =
if debug then
if arch == "x86_64" then
- "1f5i64nzkvxy20vi7kldaamwp6pi2zgmjiw061cgqrwf7hj45wkg"
+ "0lz1na68gdi9n23hfj5c731dbskm9684cwar7ji8yjfhfryfg5yn"
else
- "09jvxqp83hpk89ak8flq14s3s3nhy3ary91jc6k47v325axh1cl9"
+ "10gm2ynndlyk66fndfbh7ah5ssqpyw8415i10n3lpw940x201dk0"
else
if arch == "x86_64" then
- "05gvssjdz43pvgivdngrf8qr5b30p45hr2sr97cyl6b87581qw9s"
+ "0hmlv0v9lbgxrmz0n7czfnrbrwjwxhy99gsr5g1m0aqgw0y61clc"
else
- "06l7zhgh5rfxxw46b500zdgcqsk2h7kivng5b0b74s3vy7f0g270";
+ "0qdw4f48xhnkzdly3jz63v14nmzd0gg49az5wxb08ghs8laaqlik";
};
nativeBuildInputs = [ unzip ];
@@ -141,7 +141,7 @@ stdenv.mkDerivation rec {
description = "Adobe Flash Player browser plugin";
homepage = http://www.adobe.com/products/flashplayer/;
license = stdenv.lib.licenses.unfree;
- maintainers = [];
+ 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 c603dc6cf9f..0f7ded95f40 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.238";
+ version = "32.0.0.293";
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
- "1vhfjpwsmg96irfvz81ldzn2m4qcjnql5psg4cifjay423yxabvy"
+ "13mrknvl3yd8vrcs7mp6szz6f9ssfs72apzvc60f9qfwkhiwlg87"
else
- "0am95xi2jasvxj5b2i12wzpvl3bvxli537k1i04698cg0na6x0y0";
+ "0isvmzyi4isxvxxc5ksplcqc5cafpvbrln3dddpms8zps2dxpyzi";
};
nativeBuildInputs = [ unzip ];
@@ -97,7 +97,7 @@ stdenv.mkDerivation {
description = "Adobe Flash Player standalone executable";
homepage = https://www.adobe.com/support/flashplayer/debug_downloads.html;
license = stdenv.lib.licenses.unfree;
- maintainers = [];
+ maintainers = with stdenv.lib.maintainers; [ taku0 ];
platforms = [ "x86_64-linux" ];
# Application crashed with an unhandled SIGSEGV
# Not on all systems, though. Video driver problem?
diff --git a/pkgs/applications/networking/browsers/next-gtk-webkit/default.nix b/pkgs/applications/networking/browsers/next-gtk-webkit/default.nix
new file mode 100644
index 00000000000..6ab53376310
--- /dev/null
+++ b/pkgs/applications/networking/browsers/next-gtk-webkit/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, gcc7, pkg-config
+, next
+, webkitgtk, gsettings-desktop-schemas
+}:
+
+stdenv.mkDerivation rec {
+ pname = "next-gtk-webkit";
+ inherit (next) src version;
+
+ makeFlags = [ "gtk-webkit" "PREFIX=$(out)" ];
+ installTargets = "install-gtk-webkit";
+
+ nativeBuildInputs = [ gcc7 pkg-config ];
+ buildInputs = [
+ webkitgtk
+ gsettings-desktop-schemas
+ ];
+ meta = with stdenv.lib; {
+ description = "Infinitely extensible web-browser (user interface only)";
+ homepage = https://next.atlas.engineer;
+ license = licenses.bsd3;
+ maintainers = [ maintainers.lewo ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/pkgs/applications/networking/browsers/next/default.nix b/pkgs/applications/networking/browsers/next/default.nix
new file mode 100644
index 00000000000..9b537c55337
--- /dev/null
+++ b/pkgs/applications/networking/browsers/next/default.nix
@@ -0,0 +1,86 @@
+{ pkgs, stdenv, fetchFromGitHub
+, gcc7, pkg-config, makeWrapper
+, glib-networking
+, next-gtk-webkit
+, lispPackages
+, sbcl
+}:
+
+stdenv.mkDerivation rec {
+ pname = "next";
+ version = "1.3.4";
+
+ src = fetchFromGitHub {
+ owner = "atlas-engineer";
+ repo = "next";
+ rev = version;
+ sha256 = "00iqv4xarabl98gdl1rzqkc5v0vfljx1nawsxqsx9x3a9mnxmgxi";
+ };
+
+ # Stripping destroys the generated SBCL image
+ dontStrip = true;
+
+ prePatch = ''
+ substituteInPlace source/ports/gtk-webkit.lisp \
+ --replace "next-gtk-webkit" "${next-gtk-webkit}/bin/next-gtk-webkit"
+ '';
+
+ nativeBuildInputs =
+ [ sbcl makeWrapper ] ++ (with lispPackages;
+ [ prove-asdf trivial-features ]);
+
+ buildInputs = with lispPackages; [
+ alexandria
+ bordeaux-threads
+ cl-annot
+ cl-ansi-text
+ cl-css
+ cl-hooks
+ cl-json
+ cl-markup
+ cl-ppcre
+ cl-ppcre-unicode
+ cl-prevalence
+ closer-mop
+ dbus
+ dexador
+ ironclad
+ local-time
+ log4cl
+ lparallel
+ mk-string-metrics
+ parenscript
+ quri
+ sqlite
+ str
+ swank
+ trivia
+ trivial-clipboard
+ unix-opts
+ ];
+ propagatedBuildInputs = [ next-gtk-webkit ];
+
+ buildPhase = ''
+ common-lisp.sh --eval "(require :asdf)" \
+ --eval "(asdf:load-asd (truename \"next.asd\") :name \"next\")" \
+ --eval '(asdf:make :next)' \
+ --quit
+ '';
+
+ installPhase = ''
+ install -D -m0755 next $out/bin/next
+ '';
+
+ preFixup = ''
+ wrapProgram $out/bin/next \
+ --prefix GIO_EXTRA_MODULES : "${glib-networking.out}/lib/gio/modules"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Infinitely extensible web-browser (with Lisp development files)";
+ homepage = https://next.atlas.engineer;
+ license = licenses.bsd3;
+ maintainers = [ maintainers.lewo ];
+ platforms = [ "x86_64-linux" ];
+ };
+ }
diff --git a/pkgs/applications/networking/browsers/opera/default.nix b/pkgs/applications/networking/browsers/opera/default.nix
index 062d2e6582b..f68f34c68e5 100644
--- a/pkgs/applications/networking/browsers/opera/default.nix
+++ b/pkgs/applications/networking/browsers/opera/default.nix
@@ -36,89 +36,83 @@
, systemd
, at-spi2-atk
, at-spi2-core
+, autoPatchelfHook
+, wrapGAppsHook
}:
let
mirror = "https://get.geo.opera.com/pub/opera/desktop";
- rpath = lib.makeLibraryPath [
+in stdenv.mkDerivation rec {
- # These provide shared libraries loaded when starting. If one is missing,
- # an error is shown in stderr.
- alsaLib.out
- atk.out
- cairo.out
+ pname = "opera";
+ version = "64.0.3417.83";
+
+ src = fetchurl {
+ url = "${mirror}/${version}/linux/${pname}-stable_${version}_amd64.deb";
+ sha256 = "09ygnfma5ncx6y8yr6dm3hz98cd9srv6687wgs786dw5glfhsd57";
+ };
+
+ unpackCmd = "${dpkg}/bin/dpkg-deb -x $curSrc .";
+
+ nativeBuildInputs = [
+ autoPatchelfHook
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ alsaLib
+ at-spi2-atk
+ at-spi2-core
+ atk
+ cairo
cups
- curl.out
- dbus.lib
- expat.out
+ curl
+ dbus
+ expat
fontconfig.lib
- freetype.out
- gdk-pixbuf.out
- glib.out
+ freetype
+ gdk-pixbuf
+ glib
gnome2.GConf
- gtk3.out
- libX11.out
- libXScrnSaver.out
- libXcomposite.out
- libXcursor.out
- libXdamage.out
- libXext.out
- libXfixes.out
- libXi.out
- libXrandr.out
- libXrender.out
- libXtst.out
- libxcb.out
- libnotify.out
- libuuid.out
- nspr.out
- nss.out
- pango.out
+ gtk3
+ libX11
+ libXScrnSaver
+ libXcomposite
+ libXcursor
+ libXdamage
+ libXext
+ libXfixes
+ libXi
+ libXrandr
+ libXrender
+ libXtst
+ libnotify
+ libuuid
+ libxcb
+ nspr
+ nss
+ pango
stdenv.cc.cc.lib
+ ];
+
+ runtimeDependencies = [
+ # Works fine without this except there is no sound.
+ libpulseaudio.out
# This is a little tricky. Without it the app starts then crashes. Then it
# brings up the crash report, which also crashes. `strace -f` hints at a
# missing libudev.so.0.
systemd.lib
-
- # Works fine without this except there is no sound.
- libpulseaudio.out
-
- at-spi2-atk
- at-spi2-core
];
-in stdenv.mkDerivation rec {
-
- pname = "opera";
- version = "62.0.3331.43";
-
- src = fetchurl {
- url = "${mirror}/${version}/linux/${pname}-stable_${version}_amd64.deb";
- sha256 = "0zylg32zn6blkgy4bwmjzc26i712lwakahvrd24ncpfa8805f7x7";
- };
-
- unpackCmd = "${dpkg}/bin/dpkg-deb -x $curSrc .";
-
installPhase = ''
- mkdir --parent $out
- mv * $out/
+ mkdir -p $out
+ cp -r . $out/
mv $out/lib/*/opera/*.so $out/lib/
'';
- postFixup = ''
- find $out -executable -type f \
- | while read f
- do
- patchelf \
- --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
- --set-rpath "$out/lib:${rpath}" \
- "$f"
- done
- '';
-
meta = with lib; {
homepage = "https://www.opera.com";
description = "Web browser";
diff --git a/pkgs/applications/networking/browsers/palemoon/default.nix b/pkgs/applications/networking/browsers/palemoon/default.nix
index 66b947946cd..07234f59a8e 100644
--- a/pkgs/applications/networking/browsers/palemoon/default.nix
+++ b/pkgs/applications/networking/browsers/palemoon/default.nix
@@ -13,13 +13,13 @@ let
in stdenv.mkDerivation rec {
pname = "palemoon";
- version = "28.7.0";
+ version = "28.7.2";
src = fetchFromGitHub {
owner = "MoonchildProductions";
repo = "UXP";
rev = "PM${version}_Release";
- sha256 = "0i6fy1mvjy6vpqnvhh516mxbv4d2z73yghk3frln4ql8zavba7qq";
+ sha256 = "08w90269mwcqsdhx4vvp18c5iccvzqhaaw6aw7w0nppf2f2k8lri";
};
desktopItem = makeDesktopItem {
diff --git a/pkgs/applications/networking/browsers/qutebrowser/default.nix b/pkgs/applications/networking/browsers/qutebrowser/default.nix
index 05eafb48e72..7b13d748fe0 100644
--- a/pkgs/applications/networking/browsers/qutebrowser/default.nix
+++ b/pkgs/applications/networking/browsers/qutebrowser/default.nix
@@ -10,23 +10,23 @@ assert withMediaPlayback -> gst_all_1 != null;
let
pdfjs = let
- version = "2.1.266";
+ version = "2.2.228";
in
fetchzip rec {
name = "pdfjs-${version}";
url = "https://github.com/mozilla/pdf.js/releases/download/v${version}/${name}-dist.zip";
- sha256 = "1ybbnpz2jcdikzwr7r13lq528vxj3bpms1fqmg3n1zgs30cqpkby";
+ sha256 = "0yik4vfnz46j844jfw1gq5cshgzry42kpy2d5rr7fbn9fjf98bw6";
stripRoot = false;
};
in mkDerivationWith python3Packages.buildPythonApplication rec {
pname = "qutebrowser";
- version = "1.7.0";
+ version = "1.8.1";
# 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 = "0wyjmb2qvnw3gn0ypgckwblmn7kasi12dfwp343hi6wscqripw7i";
+ sha256 = "0ckffbw2zlg0afz4rgyywzdprnqs74va5qj0xqlaqc14ziiypxnw";
};
# Needs tox
@@ -47,7 +47,7 @@ in mkDerivationWith python3Packages.buildPythonApplication rec {
propagatedBuildInputs = with python3Packages; [
pyyaml pyqt5 pyqtwebengine jinja2 pygments
- pypeg2 cssutils pyopengl attrs
+ pypeg2 cssutils pyopengl attrs setuptools
# scripts and userscripts libs
tldextract beautifulsoup4
pyreadability pykeepass stem
@@ -108,6 +108,6 @@ in mkDerivationWith python3Packages.buildPythonApplication rec {
homepage = https://github.com/The-Compiler/qutebrowser;
description = "Keyboard-focused browser with a minimal GUI";
license = licenses.gpl3Plus;
- maintainers = with maintainers; [ jagajaga rnhmjoj ];
+ 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 d9d4fda1aed..0437ab933bd 100644
--- a/pkgs/applications/networking/browsers/surf/default.nix
+++ b/pkgs/applications/networking/browsers/surf/default.nix
@@ -1,6 +1,7 @@
-{ stdenv, fetchurl
+{ lib, stdenv, fetchurl
, pkgconfig, wrapGAppsHook
, glib, glib-networking, gsettings-desktop-schemas, gtk, libsoup, webkitgtk
+, xorg, dmenu, findutils, gnused, coreutils
, patches ? null
}:
@@ -20,6 +21,16 @@ stdenv.mkDerivation rec {
installFlags = [ "PREFIX=$(out)" ];
+ # Add run-time dependencies to PATH. Append them to PATH so the user can
+ # override the dependencies with their own PATH.
+ preFixup = let
+ depsPath = lib.makeBinPath [ xorg.xprop dmenu findutils gnused coreutils ];
+ in ''
+ gappsWrapperArgs+=(
+ --suffix PATH : ${depsPath}
+ )
+ '';
+
meta = with stdenv.lib; {
description = "A simple web browser based on WebKit/GTK";
longDescription = ''
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 c0cb85eb177..0494de83708 100644
--- a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
+++ b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
@@ -44,6 +44,10 @@
, shared-mime-info
, gsettings-desktop-schemas
+# Hardening
+, graphene-hardened-malloc
+, useHardenedMalloc ? graphene-hardened-malloc != null && builtins.elem stdenv.system graphene-hardened-malloc.meta.platforms
+
# Whether to disable multiprocess support to work around crashing tabs
# TODO: fix the underlying problem instead of this terrible work-around
, disableContentSandbox ? true
@@ -89,25 +93,19 @@ let
fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ];
# Upstream source
- version = "8.5.4";
+ version = "9.0.1";
lang = "en-US";
srcs = {
x86_64-linux = fetchurl {
- urls = [
- "https://github.com/TheTorProject/gettorbrowser/releases/download/v${version}/tor-browser-linux64-${version}_${lang}.tar.xz"
- "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz"
- ];
- sha256 = "0nnzynk3nlnd847c8jjghs9anmr5a2hv7nk1qxigigxqa5vqy96z";
+ url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz";
+ sha256 = "09iasj13wn3d1dygpxn4www4rx8wnxxlm9h6df9lzf4wll15px55";
};
i686-linux = fetchurl {
- urls = [
- "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz"
- "https://github.com/TheTorProject/gettorbrowser/releases/download/v${version}/tor-browser-linux32-${version}_${lang}.tar.xz"
- ];
- sha256 = "1b34skl3hwvpy0r4l5ykgnnwhbz7cvly2gi9ib4h7lijjfafiys1";
+ url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz";
+ sha256 = "1vz3pvqi114c9lkyhqy754ngi90708c187xwiyr9786ff89sjw5i";
};
};
in
@@ -167,15 +165,12 @@ stdenv.mkDerivation rec {
# interpreter for pre-compiled Go binaries by invoking the interpreter
# directly.
sed -i TorBrowser/Data/Tor/torrc-defaults \
- -e "s|\(ClientTransportPlugin obfs2,obfs3,obfs4,scramblesuit\) exec|\1 exec $interp|" \
+ -e "s|\(ClientTransportPlugin meek_lite,obfs2,obfs3,obfs4,scramblesuit\) exec|\1 exec $interp|"
- # Fixup fte transport
- #
- # Note: the script adds its dirname to search path automatically
- sed -i TorBrowser/Tor/PluggableTransports/fteproxy.bin \
- -e "s,/usr/bin/env python,${python27.interpreter},"
+ # Similarly fixup snowflake
+ sed -i TorBrowser/Data/Tor/torrc-defaults \
+ -e "s|\(ClientTransportPlugin snowflake\) exec|\1 exec $interp|"
- patchelf --set-rpath "${fteLibPath}" TorBrowser/Tor/PluggableTransports/fte/cDFA.so
# Prepare for autoconfig.
#
@@ -239,6 +234,7 @@ stdenv.mkDerivation rec {
# Preload extensions by moving into the runtime instead of storing under the
# user's profile directory.
+ mkdir -p "$TBB_IN_STORE/browser/extensions"
mv "$TBB_IN_STORE/TorBrowser/Data/Browser/profile.default/extensions/"* \
"$TBB_IN_STORE/browser/extensions"
@@ -251,6 +247,9 @@ stdenv.mkDerivation rec {
GeoIPv6File $TBB_IN_STORE/TorBrowser/Data/Tor/geoip6
EOF
+ WRAPPER_LD_PRELOAD=${optionalString useHardenedMalloc
+ "${graphene-hardened-malloc}/lib/libhardened_malloc.so"}
+
WRAPPER_XDG_DATA_DIRS=${concatMapStringsSep ":" (x: "${x}/share") [
gnome3.adwaita-icon-theme
shared-mime-info
@@ -333,6 +332,8 @@ stdenv.mkDerivation rec {
#
# XDG_DATA_DIRS is set to prevent searching system dirs (looking for .desktop & icons)
exec env -i \
+ LD_PRELOAD=$WRAPPER_LD_PRELOAD \
+ \
TZ=":" \
TZDIR="\''${TZDIR:-}" \
LOCALE_ARCHIVE="\$LOCALE_ARCHIVE" \
@@ -376,7 +377,11 @@ stdenv.mkDerivation rec {
cp $desktopItem/share/applications"/"* $out/share/applications
sed -i $out/share/applications/torbrowser.desktop \
-e "s,Exec=.*,Exec=$out/bin/tor-browser," \
- -e "s,Icon=.*,Icon=web-browser,"
+ -e "s,Icon=.*,Icon=tor-browser,"
+ for i in 16 32 48 64 128; do
+ mkdir -p $out/share/icons/hicolor/''${i}x''${i}/apps/
+ ln -s $out/share/tor-browser/browser/chrome/icons/default/default$i.png $out/share/icons/hicolor/''${i}x''${i}/apps/tor-browser.png
+ done
# Check installed apps
echo "Checking bundled Tor ..."
@@ -392,7 +397,7 @@ stdenv.mkDerivation rec {
longDescription = tor-browser-bundle.meta.longDescription;
homepage = "https://www.torproject.org/";
platforms = attrNames srcs;
- maintainers = with maintainers; [ offline matejc doublec thoughtpolice joachifm ];
+ maintainers = with maintainers; [ offline matejc doublec thoughtpolice joachifm hax404 ];
hydraPlatforms = [];
# MPL2.0+, GPL+, &c. While it's not entirely clear whether
# the compound is "libre" in a strict sense (some components place certain
diff --git a/pkgs/applications/networking/browsers/vivaldi/default.nix b/pkgs/applications/networking/browsers/vivaldi/default.nix
index 6483b6d03e3..a8e7bed5ede 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.7.1628.33-1";
+ version = "2.9.1705.41-1";
src = fetchurl {
url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}_amd64.deb";
- sha256 = "1km5ccxqyd5xgmzm42zca670jf7wd4j7c726fhyj4wjni71zar34";
+ sha256 = "0c6cvhh05scmgpjy7f5wps62arhf5nsdnw9dllzqxpbsii1p6rv5";
};
unpackPhase = ''
@@ -82,8 +82,7 @@ in stdenv.mkDerivation rec {
--suffix XDG_DATA_DIRS : ${gtk3}/share/gsettings-schemas/${gtk3.name}/ \
${stdenv.lib.optionalString enableWidevine "--suffix LD_LIBRARY_PATH : ${libPath}"}
'' + stdenv.lib.optionalString enableWidevine ''
- rm $out/opt/${vivaldiName}/libwidevinecdm.so
- ln -s ${vivaldi-widevine}/lib/libwidevinecdm.so $out/opt/${vivaldiName}/libwidevinecdm.so
+ ln -sf ${vivaldi-widevine}/lib/libwidevinecdm.so $out/opt/${vivaldiName}/libwidevinecdm.so
'';
meta = with stdenv.lib; {
diff --git a/pkgs/applications/networking/browsers/webmacs/default.nix b/pkgs/applications/networking/browsers/webmacs/default.nix
new file mode 100644
index 00000000000..0f36177278b
--- /dev/null
+++ b/pkgs/applications/networking/browsers/webmacs/default.nix
@@ -0,0 +1,73 @@
+{ lib
+, mkDerivationWith
+, fetchFromGitHub
+, python3Packages
+, herbstluftwm
+}:
+
+mkDerivationWith python3Packages.buildPythonApplication rec {
+ pname = "webmacs";
+ version = "0.8";
+
+ disabled = python3Packages.isPy27;
+
+ src = fetchFromGitHub {
+ owner = "parkouss";
+ repo = "webmacs";
+ rev = version;
+ fetchSubmodules = true;
+ sha256 = "1hzb9341hybgrqcy1w20hshm6xaiby4wbjpjkigf4zq389407368";
+ };
+
+ propagatedBuildInputs = with python3Packages; [
+ pyqtwebengine
+ setuptools
+ dateparser
+ jinja2
+ pygments
+ ];
+
+ dontWrapQtApps = true;
+
+ makeWrapperArgs = [ "\${qtWrapperArgs[@]}" ];
+
+ # See https://github.com/parkouss/webmacs/blob/1a04fb7bd3f33d39cb4d71621b48c2458712ed39/setup.py#L32
+ # Don't know why they're using CC for g++.
+ preConfigure = ''
+ export CC=$CXX
+ '';
+
+ doCheck = false; # test dependencies not packaged up yet
+
+ checkInputs = [
+ python3Packages.pytest
+ #python3Packages.pytest-xvfb
+ #python3Packages.pytest-qt
+ python3Packages.pytestCheckHook
+ herbstluftwm
+
+ # The following are listed in test-requirements.txt but appear not
+ # to be needed at present:
+
+ # python3Packages.pytest-mock
+ # python3Packages.flake8
+ ];
+
+ meta = with lib; {
+ description = "Keyboard-based web browser with Emacs/conkeror heritage";
+ longDescription = ''
+ webmacs is yet another browser for keyboard-based web navigation.
+
+ It mainly targets emacs-like navigation, and started as a clone (in terms of
+ features) of conkeror.
+
+ 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;
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ jacg ];
+ platforms = platforms.all;
+ };
+
+}
diff --git a/pkgs/applications/networking/calls/default.nix b/pkgs/applications/networking/calls/default.nix
new file mode 100644
index 00000000000..065f264f152
--- /dev/null
+++ b/pkgs/applications/networking/calls/default.nix
@@ -0,0 +1,83 @@
+{ stdenv
+, fetchFromGitLab
+, meson
+, ninja
+, pkgconfig
+, libhandy
+, modemmanager
+, gtk3
+, gom
+, gsound
+, evolution-data-server
+, folks
+, desktop-file-utils
+, libpeas
+, dbus
+, vala
+, xorg
+, xvfb_run
+, libxml2
+}:
+
+stdenv.mkDerivation rec {
+ pname = "calls";
+ version = "unstable-2019-10-29";
+
+ src = fetchFromGitLab {
+ domain = "source.puri.sm";
+ owner = "Librem5";
+ repo = "calls";
+ rev = "9fe575053d8f01c3a76a6c20d39f0816166d5afd";
+ sha256 = "01inx4mvrzvklwrfryw5hw9p89v8cn78m3qmv97g7a3v0h5c0n35";
+ };
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ pkgconfig
+ desktop-file-utils
+ vala
+ ];
+
+ buildInputs = [
+ modemmanager
+ libhandy
+ evolution-data-server
+ folks
+ gom
+ gsound
+ gtk3
+ libhandy
+ libpeas
+ ];
+
+ checkInputs = [
+ dbus
+ xvfb_run
+ ];
+
+ mesonFlags = [
+ # docs fail to build
+ # https://source.puri.sm/Librem5/calls/issues/99
+ "-Dgtk_doc=false"
+ ];
+
+ doCheck = true;
+
+ checkPhase = ''
+ runHook preCheck
+ NO_AT_BRIDGE=1 \
+ xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
+ --config-file=${dbus.daemon}/share/dbus-1/session.conf \
+ meson test --print-errorlogs
+ runHook postCheck
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A phone dialer and call handler";
+ homepage = https://source.puri.sm/Librem5/calls;
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ craigem lheckemann ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/applications/networking/corebird/default.nix b/pkgs/applications/networking/cawbird/default.nix
similarity index 57%
rename from pkgs/applications/networking/corebird/default.nix
rename to pkgs/applications/networking/cawbird/default.nix
index 73c0e234945..02368990a01 100644
--- a/pkgs/applications/networking/corebird/default.nix
+++ b/pkgs/applications/networking/cawbird/default.nix
@@ -1,20 +1,20 @@
-{ stdenv, fetchFromGitHub, glib, gtk3, json-glib, sqlite, libsoup, gettext, vala_0_40
+{ stdenv, fetchFromGitHub, glib, gtk3, json-glib, sqlite, libsoup, gettext, vala
, meson, ninja, pkgconfig, gnome3, gst_all_1, wrapGAppsHook, gobject-introspection
, glib-networking, python3 }:
stdenv.mkDerivation rec {
- version = "1.7.4";
- pname = "corebird";
+ version = "1.0.3.1";
+ pname = "cawbird";
src = fetchFromGitHub {
- owner = "baedert";
- repo = "corebird";
- rev = version;
- sha256 = "0qjffsmg1hm64dgsbkfwzbzy9q4xa1q4fh4h8ni8a2b1p3h80x7n";
+ owner = "IBBoard";
+ repo = "cawbird";
+ rev = "v${version}";
+ sha256 = "sha256:1v1y4bx0mm518b9vlpsry12fw1qz2j28jfhjqq73blvzd89lgb0y";
};
nativeBuildInputs = [
- meson ninja vala_0_40 pkgconfig wrapGAppsHook python3
+ meson ninja vala pkgconfig wrapGAppsHook python3
gobject-introspection # for setup hook
];
@@ -27,12 +27,12 @@ stdenv.mkDerivation rec {
patchShebangs data/meson_post_install.py
'';
- meta = {
+ meta = with stdenv.lib; {
description = "Native GTK Twitter client for the Linux desktop";
- longDescription = "Corebird is a modern, easy and fun Twitter client.";
- homepage = https://corebird.baedert.org/;
- license = stdenv.lib.licenses.gpl3;
- platforms = stdenv.lib.platforms.linux;
- maintainers = [ stdenv.lib.maintainers.jonafato ];
+ longDescription = "Cawbird is a modern, easy and fun Twitter client. Fork of the discontinued Corebird.";
+ homepage = https://ibboard.co.uk/cawbird/;
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with stdenv.lib.maintainers; [ jonafato schmittlauch ];
};
}
diff --git a/pkgs/applications/networking/cluster/argo/default.nix b/pkgs/applications/networking/cluster/argo/default.nix
index 92db34417f4..2c0d039721f 100644
--- a/pkgs/applications/networking/cluster/argo/default.nix
+++ b/pkgs/applications/networking/cluster/argo/default.nix
@@ -2,17 +2,18 @@
buildGoPackage rec {
pname = "argo";
- version = "2.2.1";
+ version = "2.4.1";
src = fetchFromGitHub {
owner = "argoproj";
repo = "argo";
rev = "v${version}";
- sha256 = "0x3aizwbqkg2712021wcq4chmwjhw2df702wbr6zd2a2cdypwb67";
+ sha256 = "1f9l9d4r0qfhpr2fn17faczcwmwmdz8f56f27cmmnhxz4r7qcm48";
};
goDeps = ./deps.nix;
goPackagePath = "github.com/argoproj/argo";
+ subPackages = [ "cmd/argo" ];
meta = with lib; {
description = "Container native workflow engine for Kubernetes";
diff --git a/pkgs/applications/networking/cluster/argo/deps.nix b/pkgs/applications/networking/cluster/argo/deps.nix
index ace7ecd21b3..b275cd21cf4 100644
--- a/pkgs/applications/networking/cluster/argo/deps.nix
+++ b/pkgs/applications/networking/cluster/argo/deps.nix
@@ -5,8 +5,26 @@
fetch = {
type = "git";
url = "https://code.googlesource.com/gocloud";
- rev = "64a2037ec6be8a4b0c1d1f706ed35b428b989239";
- sha256 = "149v3ci17g6wd2pm18mzcncq5qpl9hwdjnz3rlbn5rfidyn46la1";
+ rev = "ceeb313ad77b789a7fa5287b36a1d127b69b7093";
+ sha256 = "0z5z3qag9g4fc7g6di7ijxzz0s3c7al1rx0sxxkbqbpwlgk4iwf2";
+ };
+ }
+ {
+ goPackagePath = "contrib.go.opencensus.io/exporter/ocagent";
+ fetch = {
+ type = "git";
+ url = "https://github.com/census-ecosystem/opencensus-go-exporter-ocagent";
+ rev = "f9129169651c35ecbdc1186c3ba4aa876ee62e1e";
+ sha256 = "09n7w31668f6f55qw6qkw85mp6mhkmxs2x5hk4vr0p5qiqap576h";
+ };
+ }
+ {
+ goPackagePath = "github.com/Azure/go-autorest";
+ fetch = {
+ type = "git";
+ url = "https://github.com/Azure/go-autorest";
+ rev = "880eb0e2aca291c40538ddef66e5914fb1cc1d7f";
+ sha256 = "0v6d6la29n3kkgn7r3b63pf96cpj5kf88rddkm2x2vqb9x2gmi0p";
};
}
{
@@ -23,8 +41,8 @@
fetch = {
type = "git";
url = "https://github.com/PuerkitoBio/purell";
- rev = "0bcb03f4b4d0a9428594752bd2a3b9aa0a9d4bd4";
- sha256 = "0vsxyn1fbm7g873b8kf3hcsgqgncb5nmfq3zfsc35a9yhzarka91";
+ rev = "44968752391892e1b0d0b821ee79e9a85fa13049";
+ sha256 = "0c525frsxmalrn55hzzsxy17ng8avkd40ga0wxfw9haxsdjgqdqy";
};
}
{
@@ -41,8 +59,17 @@
fetch = {
type = "git";
url = "https://github.com/argoproj/pkg";
- rev = "1aa3e0c55668da17703adba5c534fff6930db589";
- sha256 = "0lr1dimm443qq3zzcrpialvxq9bl8pb3317zn34gmf1sycqh4iii";
+ rev = "5616f48963eebf7cca912632230032b263bb62bc";
+ sha256 = "1m50mpmgdv4hjdpl994xdkdbjfwv7dagn6mhix17cb5mf61ixs6z";
+ };
+ }
+ {
+ goPackagePath = "github.com/aws/aws-sdk-go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/aws/aws-sdk-go";
+ rev = "d57c8d96f72d9475194ccf18d2ba70ac294b0cb3";
+ sha256 = "09bv2ay7vnv15vj83ysqs98v0hcjg0nziwnp7qjdr0iasrhl4r21";
};
}
{
@@ -50,8 +77,26 @@
fetch = {
type = "git";
url = "https://github.com/beorn7/perks";
- rev = "3a771d992973f24aa725d07868b467d1ddfceafb";
- sha256 = "1l2lns4f5jabp61201sh88zf3b0q793w4zdgp9nll7mmfcxxjif3";
+ rev = "37c8de3658fcb183f997c4e13e8337516ab753e6";
+ sha256 = "17n4yygjxa6p499dj3yaqzfww2g7528165cl13haj97hlx94dgl7";
+ };
+ }
+ {
+ goPackagePath = "github.com/census-instrumentation/opencensus-proto";
+ fetch = {
+ type = "git";
+ url = "https://github.com/census-instrumentation/opencensus-proto";
+ rev = "d89fa54de508111353cb0b06403c00569be780d8";
+ sha256 = "19fcx3sc99i5dsklny6r073z5j20vlwn2xqm6di1q3b1xwchzqfj";
+ };
+ }
+ {
+ goPackagePath = "github.com/colinmarc/hdfs";
+ fetch = {
+ type = "git";
+ url = "https://github.com/colinmarc/hdfs";
+ rev = "9746310a4d311e21ce43b2a645c5a1e64c5e8efa";
+ sha256 = "0r5dyadjck22i7fyci67r00ajbcqgx52z13rhriy0sw68j510r1r";
};
}
{
@@ -59,8 +104,17 @@
fetch = {
type = "git";
url = "https://github.com/davecgh/go-spew";
- rev = "346938d642f2ec3594ed81d874461961cd0faa76";
- sha256 = "0d4jfmak5p6lb7n2r6yvf5p1zcw0l8j74kn55ghvr7zr7b7axm6c";
+ rev = "8991bc29aa16c548c550c7ff78260e27b9ab7c73";
+ sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y";
+ };
+ }
+ {
+ goPackagePath = "github.com/dgrijalva/jwt-go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/dgrijalva/jwt-go";
+ rev = "06ea1031745cb8b3dab3f6a236daf2b0aa468b7e";
+ sha256 = "08m27vlms74pfy5z79w67f9lk9zkx6a9jd68k3c4msxy75ry36mp";
};
}
{
@@ -68,8 +122,8 @@
fetch = {
type = "git";
url = "https://github.com/docker/spdystream";
- rev = "bc6354cbbc295e925e4c611ffe90c1f287ee54db";
- sha256 = "08746a15snvmax6cnzn2qy7cvsspxbsx97vdbjpdadir3pypjxya";
+ rev = "6480d4af844c189cf5dd913db24ddd339d3a4f85";
+ sha256 = "19glzj20vvy19igsl5bji9xrxi9m0ixhk4zs98dg15mh8ah36zak";
};
}
{
@@ -86,8 +140,8 @@
fetch = {
type = "git";
url = "https://github.com/emicklei/go-restful";
- rev = "3eb9738c1697594ea6e71a7156a9bb32ed216cf0";
- sha256 = "1zqcjhg4q7788hyrkhwg4b6r1vc4qnzbw8c5j994mr18x42brxzg";
+ rev = "6ac3b8eb89d325e5c750d77f344a6870464d03c3";
+ sha256 = "0dgjld5240xhz45rj929ffm452n931qfw3fx8x99vhlnii9qrwz2";
};
}
{
@@ -95,8 +149,8 @@
fetch = {
type = "git";
url = "https://github.com/emirpasic/gods";
- rev = "f6c17b524822278a87e3b3bd809fec33b51f5b46";
- sha256 = "1zhkppqzy149fp561pif8d5d92jd9chl3l9z4yi5f8n60ibdmmjf";
+ rev = "1615341f118ae12f353cc8a983f35b584342c9b3";
+ sha256 = "0i5qqq7ajvw3mikr95zl9rsnfsjanzwpqqs6kzzplsfgsifybar1";
};
}
{
@@ -104,17 +158,8 @@
fetch = {
type = "git";
url = "https://github.com/evanphx/json-patch";
- rev = "afac545df32f2287a079e2dfb7ba2745a643747e";
- sha256 = "1d90prf8wfvndqjn6nr0k405ykia5vb70sjw4ywd49s9p3wcdyn8";
- };
- }
- {
- goPackagePath = "github.com/fsnotify/fsnotify";
- fetch = {
- type = "git";
- url = "https://github.com/fsnotify/fsnotify";
- rev = "c2828203cd70a50dcccfb2761f8b1f8ceef9a8e9";
- sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
+ rev = "026c730a0dcc5d11f93f1cf1cc65b01247ea7b6f";
+ sha256 = "144mk2v9q37l1qjf8498nff4hhz96mlkl7ls7ihixbmrji4lmch4";
};
}
{
@@ -122,17 +167,8 @@
fetch = {
type = "git";
url = "https://github.com/ghodss/yaml";
- rev = "c7ce16629ff4cd059ed96ed06419dd3856fd3577";
- sha256 = "10cyv1gy3zwwkr04kk8cvhifb7xddakyvnk5s13yfcqj9hcjz8d1";
- };
- }
- {
- goPackagePath = "github.com/go-ini/ini";
- fetch = {
- type = "git";
- url = "https://github.com/go-ini/ini";
- rev = "358ee7663966325963d4e8b2e1fbd570c5195153";
- sha256 = "1zr51xaka7px1pmfndm12fvg6a3cr24kg77j28zczbfcc6h339gy";
+ rev = "0ca9ea5df5451ffdf184b4428c902747c2c11cd7";
+ sha256 = "0skwmimpy7hlh7pva2slpcplnm912rp3igs98xnqmn859kwa5v8g";
};
}
{
@@ -140,8 +176,8 @@
fetch = {
type = "git";
url = "https://github.com/go-openapi/jsonpointer";
- rev = "3a0015ad55fa9873f41605d3e8f28cd279c32ab2";
- sha256 = "02an755ashhckqwxyq2avgn8mm4qq3hxda2jsj1a3bix2gkb45v7";
+ rev = "a105a905c5e6ad147f08504784917f3e178e0ba5";
+ sha256 = "1s3cqf4svrbygvvpvi7hf122szsgihas52vqh0bba3avf4w03g9n";
};
}
{
@@ -149,8 +185,8 @@
fetch = {
type = "git";
url = "https://github.com/go-openapi/jsonreference";
- rev = "3fb327e6747da3043567ee86abd02bb6376b6be2";
- sha256 = "0zwsrmqqcihm0lj2pc18cpm7wnn1dzwr4kvrlyrxf0lnn7dsdsbm";
+ rev = "2903bfd4bfbaf188694f1edf731f2725a8fa344f";
+ sha256 = "0v933yvcwyzzlpdxwb9204ki7lls2rwfd96ww2i901ndvz37kdf8";
};
}
{
@@ -158,8 +194,8 @@
fetch = {
type = "git";
url = "https://github.com/go-openapi/spec";
- rev = "bce47c9386f9ecd6b86f450478a80103c3fe1402";
- sha256 = "0agys8v5rkfyinvmjd8hzgwvb20hnqninwkxwqkwbbsnakhi8shk";
+ rev = "bdfd7e07daecc404d77868a88b2364d0aed0ee5a";
+ sha256 = "1r2my46qc85fp1j4lbddmd6c1n0am9bq1wyqsnw7x8raiznqxp5l";
};
}
{
@@ -167,8 +203,17 @@
fetch = {
type = "git";
url = "https://github.com/go-openapi/swag";
- rev = "2b0bd4f193d011c203529df626a65d63cb8a79e8";
- sha256 = "14c998wkycmy69jhjqkrah8acrr9xfam1dxbzl0lf4s2ghwn7bdn";
+ rev = "c3d0f7896d589f3babb99eea24bbc7de98108e72";
+ sha256 = "1z34vqc5yz6rzvarrvlhkimxx33p74iaxb28l1mv716njvlsmjhg";
+ };
+ }
+ {
+ goPackagePath = "github.com/go-sql-driver/mysql";
+ fetch = {
+ type = "git";
+ url = "https://github.com/go-sql-driver/mysql";
+ rev = "72cd26f257d44c1114970e19afddcd812016007e";
+ sha256 = "1fvsvwc1v2i0gqn01mynvi1shp5xm0xaym6xng09fcbqb56lbjx1";
};
}
{
@@ -176,17 +221,8 @@
fetch = {
type = "git";
url = "https://github.com/gogo/protobuf";
- rev = "636bf0302bc95575d69441b25a2603156ffdddf1";
- sha256 = "1525pq7r6h3s8dncvq8gxi893p2nq8dxpzvq0nfl5b4p6mq0v1c2";
- };
- }
- {
- goPackagePath = "github.com/golang/glog";
- fetch = {
- type = "git";
- url = "https://github.com/golang/glog";
- rev = "23def4e6c14b4da8ac2ed8007337bc5eb5007998";
- sha256 = "0jb2834rw5sykfr937fxi8hxi2zy80sj2bdn9b3jb4b26ksqng30";
+ rev = "0ca988a254f991240804bf9821f3450d87ccbb1b";
+ sha256 = "0slfyrmbpdcppf0z3waar90bpszdhi2gv705ys1b0zx5x6ax8f1a";
};
}
{
@@ -194,8 +230,8 @@
fetch = {
type = "git";
url = "https://github.com/golang/protobuf";
- rev = "b4deda0973fb4c70b50d226b1af49f3da59f5265";
- sha256 = "0ya4ha7m20bw048m1159ppqzlvda4x0vdprlbk5sdgmy74h3xcdq";
+ rev = "6c65a5562fc06764971b7c5d05c76c75e84bdbf7";
+ sha256 = "1k1wb4zr0qbwgpvz9q5ws9zhlal8hq7dmq62pwxxriksayl6hzym";
};
}
{
@@ -203,8 +239,8 @@
fetch = {
type = "git";
url = "https://github.com/google/gofuzz";
- rev = "24818f796faf91cd76ec7bddd72458fbced7a6c1";
- sha256 = "0cq90m2lgalrdfrwwyycrrmn785rgnxa3l3vp9yxkvnv88bymmlm";
+ rev = "f140a6486e521aad38f5917de355cbf147cc0496";
+ sha256 = "0qz439qvccm91w0mmjz4fqgx48clxdwagkvvx89cr43q1d4iry36";
};
}
{
@@ -212,8 +248,8 @@
fetch = {
type = "git";
url = "https://github.com/googleapis/gnostic";
- rev = "7c663266750e7d82587642f65e60bc4083f1f84e";
- sha256 = "0yh3ckd7m0r9h50wmxxvba837d0wb1k5yd439zq4p1kpp4390z12";
+ rev = "ab0dd09aa10e2952b28e12ecd35681b20463ebab";
+ sha256 = "1f4bs71hrqkwg8fdhsxh25s12xnkxly13cnmp6m4qj6vc6k6zr2n";
};
}
{
@@ -221,8 +257,26 @@
fetch = {
type = "git";
url = "https://github.com/gorilla/websocket";
- rev = "ea4d1f681babbce9545c9c5f3d5194a789c89f5b";
- sha256 = "1bhgs2542qs49p1dafybqxfs2qc072xv41w5nswyrknwyjxxs2a1";
+ rev = "c3e18be99d19e6b3e8f1559eea2c161a665c4b6b";
+ sha256 = "03n1n0nwz3k9qshmriycqznnnvd3dkzsfwpnfjzzvafjxk9kyapv";
+ };
+ }
+ {
+ goPackagePath = "github.com/grpc-ecosystem/grpc-gateway";
+ fetch = {
+ type = "git";
+ url = "https://github.com/grpc-ecosystem/grpc-gateway";
+ rev = "471f45a5a99a578de7a8638dc7ed29e245bde097";
+ sha256 = "1jbr14p1dh6jpq3q6b4nq97ryh56h17ali0nckicpxhdrvxgi81c";
+ };
+ }
+ {
+ goPackagePath = "github.com/hashicorp/go-uuid";
+ fetch = {
+ type = "git";
+ url = "https://github.com/hashicorp/go-uuid";
+ rev = "4f571afc59f3043a65f8fe6bf46d887b10a01d43";
+ sha256 = "0jvb88m0rq41bwgirsadgw7mnayl27av3gd2vqa3xvxp3fy0hp5k";
};
}
{
@@ -230,17 +284,8 @@
fetch = {
type = "git";
url = "https://github.com/hashicorp/golang-lru";
- rev = "0fb14efe8c47ae851c0034ed7a448854d3d34cf3";
- sha256 = "0vg4yn3088ym4sj1d34kr13lp4v5gya7r2nxshp2bz70n46fsqn2";
- };
- }
- {
- goPackagePath = "github.com/howeyc/gopass";
- fetch = {
- type = "git";
- url = "https://github.com/howeyc/gopass";
- rev = "bf9dde6d0d2c004a008c27aaee91170c786f6db8";
- sha256 = "1jxzyfnqi0h1fzlsvlkn10bncic803bfhslyijcxk55mgh297g45";
+ rev = "7f827b33c0f158ec5dfbba01bb0b14a4541fd81d";
+ sha256 = "1p2igd58xkm8yaj2c2wxiplkf2hj6kxwrg6ss7mx61s5rd71v5xb";
};
}
{
@@ -248,8 +293,8 @@
fetch = {
type = "git";
url = "https://github.com/imdario/mergo";
- rev = "9f23e2d6bd2a77f959b2bf6acdbefd708a83a4a4";
- sha256 = "1lbzy8p8wv439sqgf0n21q52flf2wbamp6qa1jkyv6an0nc952q7";
+ rev = "7c29201646fa3de8506f701213473dd407f19646";
+ sha256 = "05ir0jj74w0yfi1lrhjd97v759in1dpsma64cgmbiqvyp6hfmmf8";
};
}
{
@@ -270,13 +315,31 @@
sha256 = "0q91f5549n81w3z5927n4a1mdh220bdmgl42zi3h992dcc4ls0sl";
};
}
+ {
+ goPackagePath = "github.com/jcmturner/gofork";
+ fetch = {
+ type = "git";
+ url = "https://github.com/jcmturner/gofork";
+ rev = "dc7c13fece037a4a36e2b3c69db4991498d30692";
+ sha256 = "0xzsnjqv3d59w9pgqzf6550wdwaqnac7zcdgqfd25w65yhcffzhr";
+ };
+ }
+ {
+ goPackagePath = "github.com/jmespath/go-jmespath";
+ fetch = {
+ type = "git";
+ url = "https://github.com/jmespath/go-jmespath";
+ rev = "c2b33e84";
+ sha256 = "1r6w7ydx8ydryxk3sfhzsk8m6f1nsik9jg3i1zhi69v4kfl4d5cz";
+ };
+ }
{
goPackagePath = "github.com/json-iterator/go";
fetch = {
type = "git";
url = "https://github.com/json-iterator/go";
- rev = "1624edc4454b8682399def8740d46db5e4362ba4";
- sha256 = "11wn4hpmrs8bmpvd93wqk49jfbbgylakhi35f9k5qd7jd479ci4s";
+ rev = "27518f6661eba504be5a7a9a9f6d9460d892ade3";
+ sha256 = "0n79p4s67zl5zprxv7diayw3vavnmmfqkmd6snz0i9bxp825dsyz";
};
}
{
@@ -284,8 +347,26 @@
fetch = {
type = "git";
url = "https://github.com/kevinburke/ssh_config";
- rev = "9fc7bb800b555d63157c65a904c86a2cc7b4e795";
- sha256 = "102icrla92zmr5zngipc8c9yfbqhf73zs2w2jq6s7p0gdjifigc8";
+ rev = "6cfae18c12b8934b1afba3ce8159476fdef666ba";
+ sha256 = "05jvz5r58a057zxvic9dyr9v2wilha8l6366npwkqgxmnmk9sh5f";
+ };
+ }
+ {
+ goPackagePath = "github.com/konsorten/go-windows-terminal-sequences";
+ fetch = {
+ type = "git";
+ url = "https://github.com/konsorten/go-windows-terminal-sequences";
+ rev = "f55edac94c9bbba5d6182a4be46d86a2c9b5b50e";
+ sha256 = "09mn209ika7ciy87xf2x31dq5fnqw39jidgaljvmqxwk7ff1hnx7";
+ };
+ }
+ {
+ goPackagePath = "github.com/lib/pq";
+ fetch = {
+ type = "git";
+ url = "https://github.com/lib/pq";
+ rev = "3427c32cb71afc948325f299f040e53c1dd78979";
+ sha256 = "08j1smm6rassdssdks4yh9aspa1dv1g5nvwimmknspvhx8a7waqz";
};
}
{
@@ -293,8 +374,8 @@
fetch = {
type = "git";
url = "https://github.com/mailru/easyjson";
- rev = "03f2033d19d5860aef995fe360ac7d395cd8ce65";
- sha256 = "0r62ym6m1ijby7nwplq0gdnhak8in63njyisrwhr3xpx9vkira97";
+ rev = "b2ccc519800e761ac8000b95e5d57c80a897ff9e";
+ sha256 = "0q85h383mhbkcjm2vqm72bi8n2252fv3c56q3lclzb8n2crnjcdk";
};
}
{
@@ -311,8 +392,8 @@
fetch = {
type = "git";
url = "https://github.com/minio/minio-go";
- rev = "70799fe8dae6ecfb6c7d7e9e048fce27f23a1992";
- sha256 = "0xvvnny59v4p1y2kbvz90ga5xvc5sq1gc4wv6cym82rdbvgzb2ax";
+ rev = "c6c2912aa5522e5f5a505e6cba30e95f0d8456fa";
+ sha256 = "0f5av1da4xbcy34j6dfy7c90na4a1capmsyac9qswq4xzq2zky10";
};
}
{
@@ -320,8 +401,17 @@
fetch = {
type = "git";
url = "https://github.com/mitchellh/go-homedir";
- rev = "58046073cbffe2f25d425fe1331102f55cf719de";
- sha256 = "0kwflrwsjdsy8vbhyzicc4c2vdi7lhdvn4rarfr18x1qsrb7n1bx";
+ rev = "af06845cf3004701891bf4fdb884bfe4920b3727";
+ sha256 = "0ydzkipf28hwj2bfxqmwlww47khyk6d152xax4bnyh60f4lq3nx1";
+ };
+ }
+ {
+ goPackagePath = "github.com/mitchellh/go-ps";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mitchellh/go-ps";
+ rev = "621e5597135b1d14a7d9c2bfc7bc312e7c58463c";
+ sha256 = "0sjkz24kqz5nzgncnvdlzhlyba4jwmf6cxj8c4p8mb44679gkphh";
};
}
{
@@ -342,22 +432,13 @@
sha256 = "1721y3yr3dpx5dx5ashf063qczk2awy5zjir1jvp1h5hn7qz4i49";
};
}
- {
- goPackagePath = "github.com/pelletier/go-buffruneio";
- fetch = {
- type = "git";
- url = "https://github.com/pelletier/go-buffruneio";
- rev = "c37440a7cf42ac63b919c752ca73a85067e05992";
- sha256 = "0l83p1gg6g5mmhmxjisrhfimhbm71lwn1r2w7d6siwwqm9q08sd2";
- };
- }
{
goPackagePath = "github.com/pkg/errors";
fetch = {
type = "git";
url = "https://github.com/pkg/errors";
- rev = "645ef00459ed84a119197bfb8d8205042c6df63d";
- sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
+ rev = "ba968bfe8b2f7e042a574c888954fccecfa385b4";
+ sha256 = "0g5qcb4d4fd96midz0zdk8b9kz8xkzwfa8kr1cliqbg8sxsy5vd1";
};
}
{
@@ -383,8 +464,8 @@
fetch = {
type = "git";
url = "https://github.com/prometheus/client_model";
- rev = "5c3871d89910bfb32f5fcab2aa4b9ec68e65a99f";
- sha256 = "04psf81l9fjcwascsys428v03fx4fi894h7fhrj2vvcz723q57k0";
+ rev = "14fe0d1b01d4d5fc031dd4bec1823bd3ebbe8016";
+ sha256 = "0zdmk6rbbx39cvfz0r59v2jg5sg9yd02b4pds5n5llgvivi99550";
};
}
{
@@ -392,8 +473,8 @@
fetch = {
type = "git";
url = "https://github.com/prometheus/common";
- rev = "c7de2306084e37d54b8be01f3541a8464345e9a5";
- sha256 = "11dqfm2d0m4sjjgyrnayman96g59x2apmvvqby9qmww2qj2k83ig";
+ rev = "31bed53e4047fd6c510e43a941f90cb31be0972a";
+ sha256 = "1q16br348117ffycxdwsldb0i39p34miclfa8z93k6vjwnrqbh2l";
};
}
{
@@ -401,8 +482,8 @@
fetch = {
type = "git";
url = "https://github.com/prometheus/procfs";
- rev = "05ee40e3a273f7245e8777337fc7b46e533a9a92";
- sha256 = "0f6fnczxa42b9rys2h3l0m8fy3x5hrhaq707vq0lbx5fcylw8lis";
+ rev = "00ec24a6a2d86e7074629c8384715dbb05adccd8";
+ sha256 = "1z5jq5rjala0a0di4nwk1rai0z9f73qwqj6mgcbpjbg2qknlb544";
};
}
{
@@ -419,8 +500,8 @@
fetch = {
type = "git";
url = "https://github.com/sirupsen/logrus";
- rev = "3e01752db0189b9157070a0e1668a620f9a85da2";
- sha256 = "029irw2lsbqi944gdrbkwdw0m2794sqni4g21gsnmz142hbzds8c";
+ rev = "839c75faf7f98a33d445d181f3018b5c3409a45e";
+ sha256 = "087k2lxrr9p9dh68yw71d05h5g9p5v26zbwd6j7lghinjfaw334x";
};
}
{
@@ -428,8 +509,8 @@
fetch = {
type = "git";
url = "https://github.com/spf13/cobra";
- rev = "7c4570c3ebeb8129a1f7456d0908a8b676b6f9f1";
- sha256 = "16amh0prlzqrrbg5j629sg0f688nfzfgn9sair8jyybqampr3wc7";
+ rev = "fe5e611709b0c57fa4a89136deaa8e1d4004d053";
+ sha256 = "1pn7g9jmhqc9yg6x02dgp4phiggnnxz8a11pv5y4vxhrvkjm6h71";
};
}
{
@@ -437,8 +518,8 @@
fetch = {
type = "git";
url = "https://github.com/spf13/pflag";
- rev = "583c0c0531f06d5278b7d917446061adc344b5cd";
- sha256 = "0nr4mdpfhhk94hq4ymn5b2sxc47b29p1akxd8b0hx4dvdybmipb5";
+ rev = "298182f68c66c05229eb03ac171abe6e309ee79a";
+ sha256 = "1cj3cjm7d3zk0mf1xdybh0jywkbbw7a6yr3y22x9sis31scprswd";
};
}
{
@@ -446,8 +527,8 @@
fetch = {
type = "git";
url = "https://github.com/src-d/gcfg";
- rev = "f187355171c936ac84a82793659ebb4936bc1c23";
- sha256 = "1hrdxlha4kkcpyydmjqd929rmwn5a9xq7arvwhryxppxq7502axk";
+ rev = "1ac3a1ac202429a54835fe8408a92880156b489d";
+ sha256 = "044j95skmyrwjw5fwjk6ka32rjgsg0ar0mfp9np19sh1acwv4x4r";
};
}
{
@@ -464,8 +545,8 @@
fetch = {
type = "git";
url = "https://github.com/stretchr/testify";
- rev = "f35b8ab0b5a2cef36673838d662e249dd9c94686";
- sha256 = "0dlszlshlxbmmfxj5hlwgv3r22x0y1af45gn1vd198nvvs3pnvfs";
+ rev = "221dbe5ed46703ee255b1da0dec05086f5035f62";
+ sha256 = "187i5g88sxfy4vxpm7dw1gwv29pa2qaq475lxrdh5livh69wqfjb";
};
}
{
@@ -473,8 +554,8 @@
fetch = {
type = "git";
url = "https://github.com/tidwall/gjson";
- rev = "1e3f6aeaa5bad08d777ea7807b279a07885dd8b2";
- sha256 = "0b0kvpzq0xxk2fq4diy3ab238yjx022s56h5jv1lc9hglds80lnn";
+ rev = "c5e72cdf74dff23857243dd662c465b810891c21";
+ sha256 = "0cg23va26ga6d0gckp5i3ramc98cbz6ij9gn9dqqyc8igvcx9cb3";
};
}
{
@@ -482,8 +563,17 @@
fetch = {
type = "git";
url = "https://github.com/tidwall/match";
- rev = "1731857f09b1f38450e2c12409748407822dc6be";
- sha256 = "14nv96h0mjki5q685qx8y331h4yga6hlfh3z9nz6acvnv284q578";
+ rev = "33827db735fff6510490d69a8622612558a557ed";
+ sha256 = "1ip5nkjvmzzzsypyzdd9nsnzbhwssprlx8qs5llqh16fl7kcvi3n";
+ };
+ }
+ {
+ goPackagePath = "github.com/tidwall/pretty";
+ fetch = {
+ type = "git";
+ url = "https://github.com/tidwall/pretty";
+ rev = "1166b9ac2b65e46a43d8618d30d1554f4652d49b";
+ sha256 = "1jwpj5903lh8hsj9apm2gwd70809zq0gjgmivkxaq4iq29wnv0n9";
};
}
{
@@ -500,8 +590,8 @@
fetch = {
type = "git";
url = "https://github.com/valyala/fasttemplate";
- rev = "dcecefd839c4193db0d35b88ec65b4c12d360ab0";
- sha256 = "0kkxn0ad5a36533djh50n9l6wsylmnykridkm91dqlqbjirn7216";
+ rev = "8b5e4e491ab636663841c42ea3c5a9adebabaf36";
+ sha256 = "0l131znbv8v67y20s4q361mwiww2c33zdc68mwvxchzk1gpy5ywq";
};
}
{
@@ -509,8 +599,17 @@
fetch = {
type = "git";
url = "https://github.com/xanzy/ssh-agent";
- rev = "640f0ab560aeb89d523bb6ac322b1244d5c3796c";
- sha256 = "069nlriymqswg52ggiwi60qhwrin9nzhd2g65a7h59z2qbcvk2hy";
+ rev = "6a3e2ff9e7c564f36873c2e36413f634534f1c44";
+ sha256 = "1chjlnv5d6svpymxgsr62d992m2xi6jb5lybjc5zn1h3hv1m01av";
+ };
+ }
+ {
+ goPackagePath = "go.opencensus.io";
+ fetch = {
+ type = "git";
+ url = "https://github.com/census-instrumentation/opencensus-go";
+ rev = "aab39bd6a98b853ab66c8a564f5d6cfcad59ce8a";
+ sha256 = "1x1ysvpyak1hcmfgvy0mk30g1ammbsmw19c9s0brz5h9wn7m4vva";
};
}
{
@@ -518,8 +617,8 @@
fetch = {
type = "git";
url = "https://go.googlesource.com/crypto";
- rev = "f027049dab0ad238e394a753dba2d14753473a04";
- sha256 = "026475grqvylk9n2ld4ygaxmzck6v97j48sc2x58jjsmqflnhzld";
+ rev = "9756ffdc24725223350eb3266ffb92590d28f278";
+ sha256 = "0q7hxaaq6lp0v8qqzifvysl47z5rfdlrxkh3d29vsl3wyby3dxl8";
};
}
{
@@ -527,8 +626,8 @@
fetch = {
type = "git";
url = "https://go.googlesource.com/net";
- rev = "f9ce57c11b242f0f1599cf25c89d8cb02c45295a";
- sha256 = "1m507gyjd9246cr3inpn6lgv3vnc3i11x4fgz0k0hdxv3cn9dyx2";
+ rev = "ba9fcec4b297b415637633c5a6e8fa592e4a16c3";
+ sha256 = "1hbqvy6r0s5h0dpdqw8fynl3cq0acin3iyqki9xvl5r8h33yb9bx";
};
}
{
@@ -536,8 +635,17 @@
fetch = {
type = "git";
url = "https://go.googlesource.com/oauth2";
- rev = "3d292e4d0cdc3a0113e6d207bb137145ef1de42f";
- sha256 = "0jvivlvx7snacd6abd1prqxa7h1z6b7s6mqahn8lpqlag3asryrl";
+ rev = "0f29369cfe4552d0e4bcddc57cc75f4d7e672a33";
+ sha256 = "06jwpvx0x2gjn2y959drbcir5kd7vg87k0r1216abk6rrdzzrzi2";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/sync";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/sync";
+ rev = "112230192c580c3556b8cee6403af37a4fc5f28c";
+ sha256 = "05i2k43j2d0llq768hg5pf3hb2yhfzp9la1w5wp0rsnnzblr0lfn";
};
}
{
@@ -545,8 +653,8 @@
fetch = {
type = "git";
url = "https://go.googlesource.com/sys";
- rev = "904bdc257025c7b3f43c19360ad3ab85783fad78";
- sha256 = "1pmj9axkj898bk4i4lny03b3l0zbkpvxj03gyjckliabqimqz0az";
+ rev = "9109b7679e13aa34a54834cfb4949cac4b96e576";
+ sha256 = "169sg6fyjkykiylrgxr0pynv2zc3frkgssbsk5w2lqyl8mb319hl";
};
}
{
@@ -554,8 +662,8 @@
fetch = {
type = "git";
url = "https://go.googlesource.com/text";
- rev = "f21a4dfb5e38f5895301dc265a8def02365cc3d0";
- sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
+ rev = "342b2e1fbaa52c93f31447ad2c6abc048c63e475";
+ sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh";
};
}
{
@@ -563,8 +671,8 @@
fetch = {
type = "git";
url = "https://go.googlesource.com/time";
- rev = "fbb02b2291d28baffd63558aa44b4b56f178d650";
- sha256 = "0jjqcv6rzihlgg4i797q80g1f6ch5diz2kxqh6488gwkb6nds4h4";
+ rev = "9d24e82272b4f38b78bc8cff74fa936d31ccd8ef";
+ sha256 = "1f5nkr4vys2vbd8wrwyiq2f5wcaahhpxmia85d1gshcbqjqf8dkb";
};
}
{
@@ -572,8 +680,17 @@
fetch = {
type = "git";
url = "https://go.googlesource.com/tools";
- rev = "ca6481ae56504398949d597084558e50ad07117a";
- sha256 = "0pza1pd0wy9r0pf9b9hham9ldr2byyg1slqf8p56dhf8b6j9jw9v";
+ rev = "be0da057c5e3c2df569a2c25cd280149b7d7e7d0";
+ sha256 = "19i9sjvbk79sgzyzjzrnmf575rnwj2bjsj4r1fmp7827dq97kqks";
+ };
+ }
+ {
+ goPackagePath = "google.golang.org/api";
+ fetch = {
+ type = "git";
+ url = "https://code.googlesource.com/google-api-go-client";
+ rev = "feb0267beb8644f5088a03be4d5ec3f8c7020152";
+ sha256 = "1lzdzkd2i41v6amxs9jah1q44qbvf1yvm8906jpfjiq6c3ffhqss";
};
}
{
@@ -581,8 +698,26 @@
fetch = {
type = "git";
url = "https://github.com/golang/appengine";
- rev = "b1f26356af11148e710935ed1ac8a7f5702c7612";
- sha256 = "1pz202zszg8f35dk5pfhwgcdi3r6dx1l4yk6x6ly7nb4j45zi96x";
+ rev = "5f2a59506353b8d5ba8cbbcd9f3c1f41f1eaf079";
+ sha256 = "1gwcwh8w5b1l15pjm8pqs3bbymvjcak3wva37zi5z9ilzr8c5wnx";
+ };
+ }
+ {
+ goPackagePath = "google.golang.org/genproto";
+ fetch = {
+ type = "git";
+ url = "https://github.com/google/go-genproto";
+ rev = "24fa4b261c55da65468f2abfdae2b024eef27dfb";
+ sha256 = "109zhaqlfd8zkbr1hk6zqbs6vcxfrk64scjwh2nswph05gr0m84d";
+ };
+ }
+ {
+ goPackagePath = "google.golang.org/grpc";
+ fetch = {
+ type = "git";
+ url = "https://github.com/grpc/grpc-go";
+ rev = "6eaf6f47437a6b4e2153a190160ef39a92c7eceb";
+ sha256 = "1cn33r2gclmq2v1ndpf1n5bmhf2qs8mms7ii5cnl6f9ch4r2c4k3";
};
}
{
@@ -594,13 +729,58 @@
sha256 = "00k5iqjcp371fllqxncv7jkf80hn1zww92zm78cclbcn4ybigkng";
};
}
+ {
+ goPackagePath = "gopkg.in/ini.v1";
+ fetch = {
+ type = "git";
+ url = "https://github.com/go-ini/ini";
+ rev = "d4cae42d398bc0095297fc3315669590d29166ea";
+ sha256 = "1z7531wz62305hwg9y2f04d819am8x3ys96ssy6qndlzmw60yjsr";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/jcmturner/aescts.v1";
+ fetch = {
+ type = "git";
+ url = "https://github.com/jcmturner/aescts";
+ rev = "f6abebb3171c4c1b1fea279cb7c7325020a26290";
+ sha256 = "0rbq4zf3db48xa2gqdp2swws7wizmbwagigqkr1zxzd1ramps6rv";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/jcmturner/dnsutils.v1";
+ fetch = {
+ type = "git";
+ url = "https://github.com/jcmturner/dnsutils";
+ rev = "13eeb8d49ffb74d7a75784c35e4d900607a3943c";
+ sha256 = "0l543c64pyzbnrc00jspg21672l3a0kjjw9pbdxwna93w8d8m927";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/jcmturner/gokrb5.v5";
+ fetch = {
+ type = "git";
+ url = "https://github.com/jcmturner/gokrb5";
+ rev = "32ba44ca5b42f17a4a9f33ff4305e70665a1bc0f";
+ sha256 = "0jynpkncifdd2ib2pc9qhh0r8q7ab7yw0ygzpzgisdzv8ars1diq";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/jcmturner/rpc.v0";
+ fetch = {
+ type = "git";
+ url = "https://github.com/jcmturner/rpc";
+ rev = "4480c480c9cd343b54b0acb5b62261cbd33d7adf";
+ sha256 = "0hivgq52gwxsqs5x1my2047k7nqh7wx3yi0llsj3lc3h2mjy4yhd";
+ };
+ }
{
goPackagePath = "gopkg.in/src-d/go-billy.v4";
fetch = {
type = "git";
url = "https://github.com/src-d/go-billy";
- rev = "83cf655d40b15b427014d7875d10850f96edba14";
- sha256 = "18fghcyk69g460px8rvmhmqldkbhw17dpnhg45qwdvaq90b0bkx9";
+ rev = "780403cfc1bc95ff4d07e7b26db40a6186c5326e";
+ sha256 = "0jcyi4ink2njgflp3f2mbl5b86p2w0rh945k5xplcl158i5wkrc6";
};
}
{
@@ -608,8 +788,8 @@
fetch = {
type = "git";
url = "https://github.com/src-d/go-git";
- rev = "3bd5e82b2512d85becae9677fa06b5a973fd4cfb";
- sha256 = "1krg24ncckwalmhzs2vlp8rwyk4rfnhfydwg8iw7gaywww2c1wfc";
+ rev = "0d1a009cbb604db18be960db5f1525b99a55d727";
+ sha256 = "0n4x7r69qrmpss51b3wd3vj4b9jmip4archz3fbqk6q1yyd1pxjb";
};
}
{
@@ -626,8 +806,8 @@
fetch = {
type = "git";
url = "https://github.com/go-yaml/yaml";
- rev = "5420a8b6744d3b0345ab293f6fcba19c978f1183";
- sha256 = "0dwjrs2lp2gdlscs7bsrmyc5yf6mm4fvgw71bzr9mv2qrd2q73s1";
+ rev = "51d6538a90f86fe93ac480b35f37b2be17fef232";
+ sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa";
};
}
{
@@ -635,8 +815,8 @@
fetch = {
type = "git";
url = "https://github.com/kubernetes/api";
- rev = "0f11257a8a25954878633ebdc9841c67d8f83bdb";
- sha256 = "1y8k0b03ibr8ga9dr91dc2imq2cbmy702a1xqggb97h8lmb6jqni";
+ rev = "e3a6b8045b0b303430f6d0c261fd9e35be50800e";
+ sha256 = "1c1nrcy0j7aj93l2xgdw0asyvxa4h8pzz004drf7pvh9pvsg0vqq";
};
}
{
@@ -644,8 +824,8 @@
fetch = {
type = "git";
url = "https://github.com/kubernetes/apimachinery";
- rev = "e386b2658ed20923da8cc9250e552f082899a1ee";
- sha256 = "0lgwpsvx0gpnrdnkqc9m96xwkifdq50l7cj9rvh03njws4rbd8jz";
+ rev = "8f6ac2502e5143406f4eaedc4ca4262854d877ce";
+ sha256 = "0v8cb63nvry4b0ls1h185hb3llp6rk0b4n92f76jcjsv1b7sspbi";
};
}
{
@@ -653,8 +833,8 @@
fetch = {
type = "git";
url = "https://github.com/kubernetes/client-go";
- rev = "a312bfe35c401f70e5ea0add48b50da283031dc3";
- sha256 = "0z360np4iv7jdgacw576gdxbzl8ss810kbqwyrjk39by589rfkl9";
+ rev = "6d55c1b1f1ca8ad83d572bbc3ca55ba5526d9d71";
+ sha256 = "1j8m0pqn9c6lwr7h5aq7zrpdd73bwbwnhy4mbc0654ylmc3lnq8q";
};
}
{
@@ -662,8 +842,8 @@
fetch = {
type = "git";
url = "https://github.com/kubernetes/code-generator";
- rev = "9de8e796a74d16d2a285165727d04c185ebca6dc";
- sha256 = "09858ykfrd3cyzkkpafzhqs6h7bk3n90s3p52x3axn4f7ikjh7k4";
+ rev = "6c2a4329ac290d921e8616cad41635c87dbb1518";
+ sha256 = "18kx2wcqb5cvivbl61q7vyic5rp0fica9n6xgrjfsxczjbihlq70";
};
}
{
@@ -671,8 +851,17 @@
fetch = {
type = "git";
url = "https://github.com/kubernetes/gengo";
- rev = "c42f3cdacc394f43077ff17e327d1b351c0304e4";
- sha256 = "05vbrqfa96izm5j2q9f4yiyrbyx23nrkj5yv4fhfc7pvwb35iy04";
+ rev = "a874a240740c2ae854082ec73d46c5efcedd2149";
+ sha256 = "0z8gay4bj6l8cv7gzi55l2c3jx94caq28sk0x6p3s6wxqxmnqp92";
+ };
+ }
+ {
+ goPackagePath = "k8s.io/klog";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kubernetes/klog";
+ rev = "3ca30a56d8a775276f9cdae009ba326fdc05af7f";
+ sha256 = "0a7kn145q4cbsd2cfpv7sz09prjrxl6aaqzdcgq7p7jxc23a7zps";
};
}
{
@@ -680,8 +869,35 @@
fetch = {
type = "git";
url = "https://github.com/kubernetes/kube-openapi";
- rev = "e3762e86a74c878ffed47484592986685639c2cd";
- sha256 = "1n9j08dwnj77iflzj047hrk0zg6nh1m4a5pljjdsvvf3xgka54pz";
+ rev = "5e22f3d471e6f24ca20becfdffdc6206c7cecac8";
+ sha256 = "08drikf269fhlnrhc29v7rhxl1950d94rl5x8l11n0qf2v2ffwib";
+ };
+ }
+ {
+ goPackagePath = "k8s.io/utils";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kubernetes/utils";
+ rev = "3a4a5477acf81b48e20870a3b9dc743f63c66730";
+ sha256 = "1f01ck7nvm9rmw1fkylbnr1cdd9byiagl9ni40j9p9gfy5v5nxk8";
+ };
+ }
+ {
+ goPackagePath = "sigs.k8s.io/yaml";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kubernetes-sigs/yaml";
+ rev = "fd68e9863619f6ec2fdd8625fe1f02e7c877e480";
+ sha256 = "1p7hvjdr5jsyk7nys1g1pmgnf3ys6n320i6hds85afppk81k01kb";
+ };
+ }
+ {
+ goPackagePath = "upper.io/db.v3";
+ fetch = {
+ type = "git";
+ url = "https://upper.io/db.v3";
+ rev = "fad80cdab4f761cb26416675df120f5d8c3f0db7";
+ sha256 = "1bddpi278bzp39470llrgnsnnfyqqmzym5hmd8dxmczmzhhkirfv";
};
}
]
\ No newline at end of file
diff --git a/pkgs/applications/networking/cluster/atlantis/default.nix b/pkgs/applications/networking/cluster/atlantis/default.nix
new file mode 100644
index 00000000000..67e91870f1a
--- /dev/null
+++ b/pkgs/applications/networking/cluster/atlantis/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "atlantis";
+ version = "0.10.1";
+
+ src = fetchFromGitHub {
+ owner = "runatlantis";
+ repo = "atlantis";
+ rev = "v${version}";
+ sha256 = "08k2dgz6rph68647ah1rdp7hqa5h1ar4gdy7vdjy5kn7gz21gmri";
+ };
+
+ modSha256 = "1i4s3xcq2qc3zy00wk2l77935ilm6n5k1msilmdnj0061ia4860y";
+
+ subPackages = [ "." ];
+
+ meta = with stdenv.lib; {
+ homepage = https://github.com/runatlantis/atlantis;
+ description = "Terraform Pull Request Automation";
+ platforms = platforms.all;
+ license = licenses.asl20;
+ maintainers = with maintainers; [ jpotier ];
+ };
+}
diff --git a/pkgs/applications/networking/cluster/cni/plugins-deps.nix b/pkgs/applications/networking/cluster/cni/plugins-deps.nix
new file mode 100644
index 00000000000..a6bbd333be4
--- /dev/null
+++ b/pkgs/applications/networking/cluster/cni/plugins-deps.nix
@@ -0,0 +1,210 @@
+# 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 b5276818f79..d0186fb9b4c 100644
--- a/pkgs/applications/networking/cluster/cni/plugins.nix
+++ b/pkgs/applications/networking/cluster/cni/plugins.nix
@@ -1,38 +1,40 @@
-{ stdenv, lib, fetchFromGitHub, go, removeReferencesTo }:
-
-stdenv.mkDerivation rec {
+{ stdenv, lib, fetchFromGitHub, go, removeReferencesTo, buildGoPackage }:
+buildGoPackage rec {
pname = "cni-plugins";
- version = "0.8.2";
+ version = "0.8.3";
src = fetchFromGitHub {
owner = "containernetworking";
repo = "plugins";
rev = "v${version}";
- sha256 = "0gyxa6mhiyxqw4wpn6r7wgr2kyvflzbdcqsk5ch0b6zih98144ia";
+ sha256 = "0dc4fs08x4x518yhgvq3drjvansnc0cb8rm4h5wiw7k3whjii3cd";
};
- buildInputs = [ removeReferencesTo go ];
-
- buildPhase = ''
- patchShebangs build_linux.sh
- export "GOCACHE=$TMPDIR/go-cache"
- ./build_linux.sh
- '';
-
- installPhase = ''
- mkdir -p $out/bin
- mv bin/* $out/bin
- '';
-
- preFixup = ''
- find $out/bin -type f -exec remove-references-to -t ${go} '{}' +
- '';
-
+ 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/main/bridge"
+ "plugins/main/host-device"
+ "plugins/main/ipvlan"
+ "plugins/main/loopback"
+ "plugins/main/macvlan"
+ "plugins/main/ptp"
+ "plugins/main/vlan"
+ "plugins/ipam/dhcp"
+ "plugins/ipam/host-local"
+ "plugins/ipam/static"
+ ];
meta = with lib; {
description = "Some standard networking plugins, maintained by the CNI team";
homepage = https://github.com/containernetworking/plugins;
license = licenses.asl20;
- platforms = [ "x86_64-linux" ];
- maintainers = with maintainers; [ cstrahan ];
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ cstrahan saschagrunert ];
};
}
diff --git a/pkgs/applications/networking/cluster/flink/default.nix b/pkgs/applications/networking/cluster/flink/default.nix
index 424b2ddca91..f8c73c65991 100644
--- a/pkgs/applications/networking/cluster/flink/default.nix
+++ b/pkgs/applications/networking/cluster/flink/default.nix
@@ -8,8 +8,8 @@ let
sha256 = "18wqcqi3gyqd40nspih99gq7ylfs20b35f4dcrspffagwkfp2l4z";
};
"1.6" = {
- flinkVersion = "1.8.1";
- sha256 = "1ynxlkdxvrgww9hh7rlkhybrp5vl2slj3pqg2qzc8khpcgqx1h2g";
+ flinkVersion = "1.9.0";
+ sha256 = "1dzfcmqz5j4b545wq2q3xb2xkbhqllr04s3av1afv54y61l5y952";
};
};
in
diff --git a/pkgs/applications/networking/cluster/fluxctl/default.nix b/pkgs/applications/networking/cluster/fluxctl/default.nix
index b0f67932265..abd1abdc89a 100644
--- a/pkgs/applications/networking/cluster/fluxctl/default.nix
+++ b/pkgs/applications/networking/cluster/fluxctl/default.nix
@@ -2,22 +2,22 @@
buildGoModule rec {
pname = "fluxctl";
- version = "1.13.3";
+ version = "1.15.0";
src = fetchFromGitHub {
owner = "weaveworks";
repo = "flux";
rev = version;
- sha256 = "0l2gc9p2jz1zyl527rr0r3qklm4j86d4biviq8a30jl9rsx6z4cy";
+ sha256 = "1aqcamhiivy733l2avc18b0k72sg0d8iqbsqvnj1344kqx6jgxf6";
};
- modSha256 = "1q5g9hd0ansdc2acpysf6wi74q50w0psrpyhk4y6mm6kjvhlcn87";
+ modSha256 = "1dz1cb2513drb2lr5gbl7w05ksrq5rvkqdcjnlkdc00mypjb2ms5";
subPackages = [ "cmd/fluxctl" ];
meta = with stdenv.lib; {
description = "CLI client for Flux, the GitOps Kubernetes operator";
- homepage = https://github.com/weaveworks/flux;
+ homepage = https://github.com/fluxcd/flux;
license = licenses.asl20;
maintainers = with maintainers; [ Gonzih ];
};
diff --git a/pkgs/applications/networking/cluster/helm/default.nix b/pkgs/applications/networking/cluster/helm/default.nix
index f0edbdf3ed6..87500ababa2 100644
--- a/pkgs/applications/networking/cluster/helm/default.nix
+++ b/pkgs/applications/networking/cluster/helm/default.nix
@@ -1,48 +1,25 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
-buildGoPackage rec {
- version = "2.14.3";
+buildGoModule rec {
pname = "helm";
+ version = "3.0.0";
src = fetchFromGitHub {
owner = "helm";
repo = "helm";
rev = "v${version}";
- sha256 = "18ly31db2kxybjlisz8dfz3cdxs7j2wsh4rx5lwhbm5hpp42h17d";
+ sha256 = "0gx5gmj1470q3gj8v043dmm31skf83p1ckzdcfzx8wdjlglsljrj";
};
+ modSha256 = "0xjzzwmq3i77anb7w2qfnz7vc0gxq02lylj0xs6dzwl543winshm";
goPackagePath = "k8s.io/helm";
- subPackages = [ "cmd/helm" "cmd/tiller" "cmd/rudder" ];
-
- goDeps = ./deps.nix;
-
- # Thsese are the original flags from the helm makefile
- buildFlagsArray = ''
- -ldflags=-X k8s.io/helm/pkg/version.Version=v${version} -X k8s.io/helm/pkg/version.GitTreeState=clean -X k8s.io/helm/pkg/version.BuildMetadata=
- -w
- -s
- '';
-
- preBuild = ''
- # This is a hack(?) to flatten the dependency tree the same way glide or dep would
- # Otherwise you'll get errors like
- # have DeepCopyObject() "k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/runtime".Object
- # want DeepCopyObject() "k8s.io/apimachinery/pkg/runtime".Object
- rm -rf $NIX_BUILD_TOP/go/src/k8s.io/kubernetes/vendor
- rm -rf $NIX_BUILD_TOP/go/src/k8s.io/apiextensions-apiserver/vendor
- '';
-
- postInstall = ''
- mkdir -p $bin/share/bash-completion/completions
- mkdir -p $bin/share/zsh/site-functions
- $bin/bin/helm completion bash > $bin/share/bash-completion/completions/helm
- $bin/bin/helm completion zsh > $bin/share/zsh/site-functions/_helm
- '';
+ subPackages = [ "cmd/helm" ];
+ buildFlagsArray = [ "-ldflags=-w -s -X helm.sh/helm/v3/internal/version.gitCommit=v${version}" ];
meta = with stdenv.lib; {
homepage = https://github.com/kubernetes/helm;
description = "A package manager for kubernetes";
license = licenses.asl20;
- maintainers = [ maintainers.rlupton20 maintainers.edude03 ];
+ maintainers = with maintainers; [ rlupton20 edude03 saschagrunert ];
};
}
diff --git a/pkgs/applications/networking/cluster/helm/deps.nix b/pkgs/applications/networking/cluster/helm/deps.nix
deleted file mode 100644
index 2fdda0ca280..00000000000
--- a/pkgs/applications/networking/cluster/helm/deps.nix
+++ /dev/null
@@ -1,1182 +0,0 @@
-# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
-[
- {
- goPackagePath = "cloud.google.com/go";
- fetch = {
- type = "git";
- url = "https://code.googlesource.com/gocloud";
- rev = "v0.26.0";
- sha256 = "149v3ci17g6wd2pm18mzcncq5qpl9hwdjnz3rlbn5rfidyn46la1";
- };
- }
- {
- goPackagePath = "github.com/Azure/go-ansiterm";
- fetch = {
- type = "git";
- url = "https://github.com/Azure/go-ansiterm";
- rev = "d6e3b3328b78";
- sha256 = "010khrkhkf9cxlvvb6ncqv4c1qcdmpbz9jn38g4fxf4xsma8xx1q";
- };
- }
- {
- goPackagePath = "github.com/Azure/go-autorest";
- fetch = {
- type = "git";
- url = "https://github.com/Azure/go-autorest";
- rev = "v11.1.0";
- sha256 = "1jmr04qkl9fgmj56czn2979ng0f6ygfbk2khv2xyx368686xc1d6";
- };
- }
- {
- goPackagePath = "github.com/BurntSushi/toml";
- fetch = {
- type = "git";
- url = "https://github.com/BurntSushi/toml";
- rev = "v0.3.1";
- sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
- };
- }
- {
- goPackagePath = "github.com/MakeNowJust/heredoc";
- fetch = {
- type = "git";
- url = "https://github.com/MakeNowJust/heredoc";
- rev = "bb23615498cd";
- sha256 = "17m780i9afj3sbmcrgwgzarfly4x9376w56qblkqnzdkv6vps22i";
- };
- }
- {
- goPackagePath = "github.com/Masterminds/goutils";
- fetch = {
- type = "git";
- url = "https://github.com/Masterminds/goutils";
- rev = "v1.1.0";
- sha256 = "180px47gj936qyk5bkv5mbbgiil9abdjq6kwkf7sq70vyi9mcfiq";
- };
- }
- {
- goPackagePath = "github.com/Masterminds/semver";
- fetch = {
- type = "git";
- url = "https://github.com/Masterminds/semver";
- rev = "v1.4.2";
- sha256 = "0k2fpk2x8jbvqkqxx5hkx1ygrsppzmzypqb90i1r33yq7ac7zlxj";
- };
- }
- {
- goPackagePath = "github.com/Masterminds/sprig";
- fetch = {
- type = "git";
- url = "https://github.com/Masterminds/sprig";
- rev = "9f8fceff796f";
- sha256 = "0m6h88xcs8zc2b1g6zaksfn9kyqhr8q9508h57jb6papx7w54yl2";
- };
- }
- {
- goPackagePath = "github.com/Masterminds/vcs";
- fetch = {
- type = "git";
- url = "https://github.com/Masterminds/vcs";
- rev = "v1.11.1";
- sha256 = "1062m73h0pp5d0574lf6px4jsjgywnsbkw50inxx3zal5r185ydm";
- };
- }
- {
- goPackagePath = "github.com/PuerkitoBio/purell";
- fetch = {
- type = "git";
- url = "https://github.com/PuerkitoBio/purell";
- rev = "v1.1.0";
- sha256 = "0vsxyn1fbm7g873b8kf3hcsgqgncb5nmfq3zfsc35a9yhzarka91";
- };
- }
- {
- goPackagePath = "github.com/PuerkitoBio/urlesc";
- fetch = {
- type = "git";
- url = "https://github.com/PuerkitoBio/urlesc";
- rev = "de5bf2ad4578";
- sha256 = "0n0srpqwbaan1wrhh2b7ysz543pjs1xw2rghvqyffg9l0g8kzgcw";
- };
- }
- {
- goPackagePath = "github.com/adisbladis/vgo2nix";
- fetch = {
- type = "git";
- url = "https://github.com/adisbladis/vgo2nix";
- rev = "56ac56bb0d96";
- sha256 = "1jbxbgcqkal8cdhj2nfbw92fn1fs9ng1df9sf92vgf0m1xzq2mc3";
- };
- }
- {
- goPackagePath = "github.com/alecthomas/assert";
- fetch = {
- type = "git";
- url = "https://github.com/alecthomas/assert";
- rev = "405dbfeb8e38";
- sha256 = "1l567pi17k593nrd1qlbmiq8z9jy3qs60px2a16fdpzjsizwqx8l";
- };
- }
- {
- goPackagePath = "github.com/alecthomas/colour";
- fetch = {
- type = "git";
- url = "https://github.com/alecthomas/colour";
- rev = "60882d9e2721";
- sha256 = "0iq566534gbzkd16ixg7fk298wd766821vvs80838yifx9yml5vs";
- };
- }
- {
- goPackagePath = "github.com/alecthomas/kingpin";
- fetch = {
- type = "git";
- url = "https://github.com/alecthomas/kingpin";
- rev = "v2.2.6";
- sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
- };
- }
- {
- goPackagePath = "github.com/alecthomas/repr";
- fetch = {
- type = "git";
- url = "https://github.com/alecthomas/repr";
- rev = "117648cd9897";
- sha256 = "05v1rgzdqc8razf702laagrvhvx68xd9yxxmzd3dyz0d6425pdrp";
- };
- }
- {
- goPackagePath = "github.com/alecthomas/template";
- fetch = {
- type = "git";
- url = "https://github.com/alecthomas/template";
- rev = "a0175ee3bccc";
- sha256 = "0qjgvvh26vk1cyfq9fadyhfgdj36f1iapbmr5xp6zqipldz8ffxj";
- };
- }
- {
- goPackagePath = "github.com/alecthomas/units";
- fetch = {
- type = "git";
- url = "https://github.com/alecthomas/units";
- rev = "2efee857e7cf";
- sha256 = "1j65b91qb9sbrml9cpabfrcf07wmgzzghrl7809hjjhrmbzri5bl";
- };
- }
- {
- goPackagePath = "github.com/asaskevich/govalidator";
- fetch = {
- type = "git";
- url = "https://github.com/asaskevich/govalidator";
- rev = "766470278477";
- sha256 = "1lmynw9vkgrxv7nh60wdywv0nx4gjlkiar433wydhpc2h3m5q968";
- };
- }
- {
- goPackagePath = "github.com/beorn7/perks";
- fetch = {
- type = "git";
- url = "https://github.com/beorn7/perks";
- rev = "3a771d992973";
- sha256 = "1l2lns4f5jabp61201sh88zf3b0q793w4zdgp9nll7mmfcxxjif3";
- };
- }
- {
- goPackagePath = "github.com/chai2010/gettext-go";
- fetch = {
- type = "git";
- url = "https://github.com/chai2010/gettext-go";
- rev = "c6fed771bfd5";
- sha256 = "1p9gzj39x4gyhc552n3dmi3kc224gwilawa5kcg8rla31qkwlsky";
- };
- }
- {
- goPackagePath = "github.com/client9/misspell";
- fetch = {
- type = "git";
- url = "https://github.com/client9/misspell";
- rev = "v0.3.4";
- sha256 = "1vwf33wsc4la25zk9nylpbp9px3svlmldkm0bha4hp56jws4q9cs";
- };
- }
- {
- goPackagePath = "github.com/cpuguy83/go-md2man";
- fetch = {
- type = "git";
- url = "https://github.com/cpuguy83/go-md2man";
- rev = "v1.0.4";
- sha256 = "0hmkrq4gdzb6mwllmh4p1y7vrz7hyr8xqagpk9nyr5dhygvnnq2v";
- };
- }
- {
- goPackagePath = "github.com/cyphar/filepath-securejoin";
- fetch = {
- type = "git";
- url = "https://github.com/cyphar/filepath-securejoin";
- rev = "v0.2.2";
- sha256 = "0id32zjb92wm569m29nfrzz5mw9z1glr3klayr6j134pp4h1sgq4";
- };
- }
- {
- 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/dgrijalva/jwt-go";
- fetch = {
- type = "git";
- url = "https://github.com/dgrijalva/jwt-go";
- rev = "01aeca54ebda";
- sha256 = "10dmb5xxn5wijn299h483z0klprprkq7n1azakm3ysp50sr11ywg";
- };
- }
- {
- goPackagePath = "github.com/docker/distribution";
- fetch = {
- type = "git";
- url = "https://github.com/docker/distribution";
- rev = "edc3ab29cdff";
- sha256 = "1nqjaq1q6fs3c0avpb02sib0a906xfbk3m74hk2mqjdbyx9y8b4m";
- };
- }
- {
- goPackagePath = "github.com/docker/docker";
- fetch = {
- type = "git";
- url = "https://github.com/docker/docker";
- rev = "a9fbbdc8dd87";
- sha256 = "0vkr9fs8qv3ydpm4f4b3jsx1f3cxpws78f2kwpyn00y1gb3lpnpc";
- };
- }
- {
- goPackagePath = "github.com/docker/spdystream";
- fetch = {
- type = "git";
- url = "https://github.com/docker/spdystream";
- rev = "449fdfce4d96";
- sha256 = "1412cpiis971iq1kxrirzirhj2708ispjh0x0dh879b66x8507sl";
- };
- }
- {
- goPackagePath = "github.com/emicklei/go-restful";
- fetch = {
- type = "git";
- url = "https://github.com/emicklei/go-restful";
- rev = "ff4f55a20633";
- sha256 = "1v5lj5142abz3gvbygp6xghpdx4ps2lwswl8559ivaidahwnc21c";
- };
- }
- {
- goPackagePath = "github.com/evanphx/json-patch";
- fetch = {
- type = "git";
- url = "https://github.com/evanphx/json-patch";
- rev = "v4.2.0";
- sha256 = "0cfvyhl3hjfc4z8hbkfc40yafv6r7y513zgp3jwf88isbd13r7a6";
- };
- }
- {
- goPackagePath = "github.com/exponent-io/jsonpath";
- fetch = {
- type = "git";
- url = "https://github.com/exponent-io/jsonpath";
- rev = "d6023ce2651d";
- sha256 = "1qkzaxsjs7yg1672sk67nr119j7jc4751yzgii0j3nbipjv321kc";
- };
- }
- {
- goPackagePath = "github.com/fatih/camelcase";
- fetch = {
- type = "git";
- url = "https://github.com/fatih/camelcase";
- rev = "f6a740d52f96";
- sha256 = "15vb86adns1izvbzjw0lmmzrwlarhbxw5qalhx10vzzdx73wh4ai";
- };
- }
- {
- goPackagePath = "github.com/ghodss/yaml";
- fetch = {
- type = "git";
- url = "https://github.com/ghodss/yaml";
- rev = "c7ce16629ff4";
- sha256 = "10cyv1gy3zwwkr04kk8cvhifb7xddakyvnk5s13yfcqj9hcjz8d1";
- };
- }
- {
- goPackagePath = "github.com/go-kit/kit";
- fetch = {
- type = "git";
- url = "https://github.com/go-kit/kit";
- rev = "v0.8.0";
- sha256 = "1rcywbc2pvab06qyf8pc2rdfjv7r6kxdv2v4wnpqnjhz225wqvc0";
- };
- }
- {
- goPackagePath = "github.com/go-logfmt/logfmt";
- fetch = {
- type = "git";
- url = "https://github.com/go-logfmt/logfmt";
- rev = "v0.3.0";
- sha256 = "1gkgh3k5w1xwb2qbjq52p6azq3h1c1rr6pfwjlwj1zrijpzn2xb9";
- };
- }
- {
- goPackagePath = "github.com/go-openapi/jsonpointer";
- fetch = {
- type = "git";
- url = "https://github.com/go-openapi/jsonpointer";
- rev = "v0.19.0";
- sha256 = "0sv2k1fwj6rsigc9489c19ap0jib1d0widm040h0sjdw2nadh3i2";
- };
- }
- {
- goPackagePath = "github.com/go-openapi/jsonreference";
- fetch = {
- type = "git";
- url = "https://github.com/go-openapi/jsonreference";
- rev = "v0.19.0";
- sha256 = "1d0rk17wn755xsfi9pxifdpgs2p23bc0rkf95kjwxczyy6jbqdaj";
- };
- }
- {
- goPackagePath = "github.com/go-openapi/spec";
- fetch = {
- type = "git";
- url = "https://github.com/go-openapi/spec";
- rev = "v0.17.2";
- sha256 = "14n5x2nxlj2x62v3km96yw7rncxk2b9v94k3j0c22r43c60m38mx";
- };
- }
- {
- goPackagePath = "github.com/go-openapi/swag";
- fetch = {
- type = "git";
- url = "https://github.com/go-openapi/swag";
- rev = "v0.17.2";
- sha256 = "1hhgbx59f7lcsqiza2is8q9walhf8mxfkwj7xql1scrn6ms2jmlv";
- };
- }
- {
- goPackagePath = "github.com/go-sql-driver/mysql";
- fetch = {
- type = "git";
- url = "https://github.com/go-sql-driver/mysql";
- rev = "v1.4.0";
- sha256 = "1jwz2j3vd5hlzmnkh20d4276yd8cxy7pac3x3dfi52jkm82ms99n";
- };
- }
- {
- goPackagePath = "github.com/go-stack/stack";
- fetch = {
- type = "git";
- url = "https://github.com/go-stack/stack";
- rev = "v1.8.0";
- sha256 = "0wk25751ryyvxclyp8jdk5c3ar0cmfr8lrjb66qbg4808x66b96v";
- };
- }
- {
- goPackagePath = "github.com/gobwas/glob";
- fetch = {
- type = "git";
- url = "https://github.com/gobwas/glob";
- rev = "v0.2.3";
- sha256 = "0jxk1x806zn5x86342s72dq2qy64ksb3zrvrlgir2avjhwb18n6z";
- };
- }
- {
- goPackagePath = "github.com/gogo/protobuf";
- fetch = {
- type = "git";
- url = "https://github.com/gogo/protobuf";
- rev = "v1.1.1";
- sha256 = "1525pq7r6h3s8dncvq8gxi893p2nq8dxpzvq0nfl5b4p6mq0v1c2";
- };
- }
- {
- goPackagePath = "github.com/golang/glog";
- fetch = {
- type = "git";
- url = "https://github.com/golang/glog";
- rev = "23def4e6c14b";
- sha256 = "0jb2834rw5sykfr937fxi8hxi2zy80sj2bdn9b3jb4b26ksqng30";
- };
- }
- {
- goPackagePath = "github.com/golang/groupcache";
- fetch = {
- type = "git";
- url = "https://github.com/golang/groupcache";
- rev = "02826c3e7903";
- sha256 = "0w46bsllddfij66nrg8jbfjsr54birvfww8a2fj9fmgyig5syn2x";
- };
- }
- {
- goPackagePath = "github.com/golang/mock";
- fetch = {
- type = "git";
- url = "https://github.com/golang/mock";
- rev = "v1.1.1";
- sha256 = "0ap8wb6pdl6ccmdb43advjll2ly4sz26wsc3axw0hbrjrybybzgy";
- };
- }
- {
- goPackagePath = "github.com/golang/protobuf";
- fetch = {
- type = "git";
- url = "https://github.com/golang/protobuf";
- rev = "v1.2.0";
- sha256 = "0kf4b59rcbb1cchfny2dm9jyznp8ri2hsb14n8iak1q8986xa0ab";
- };
- }
- {
- goPackagePath = "github.com/google/btree";
- fetch = {
- type = "git";
- url = "https://github.com/google/btree";
- rev = "7d79101e329e";
- sha256 = "1c1hsy5s2pfawg3l9954jmqmy4yc2zp3f7i87m00km2yqgb8xpd0";
- };
- }
- {
- goPackagePath = "github.com/google/gofuzz";
- fetch = {
- type = "git";
- url = "https://github.com/google/gofuzz";
- rev = "24818f796faf";
- sha256 = "0cq90m2lgalrdfrwwyycrrmn785rgnxa3l3vp9yxkvnv88bymmlm";
- };
- }
- {
- goPackagePath = "github.com/google/uuid";
- fetch = {
- type = "git";
- url = "https://github.com/google/uuid";
- rev = "064e2069ce9c";
- sha256 = "1b1ibx3rbiv7xwa9kz4b4zpp1fza5cjnn8v6749b4vrkjjmp3rqb";
- };
- }
- {
- goPackagePath = "github.com/googleapis/gnostic";
- fetch = {
- type = "git";
- url = "https://github.com/googleapis/gnostic";
- rev = "0c5108395e2d";
- sha256 = "0jf3cp5clli88gpjf24r6wxbkvngnc1kf59d4cgjczsn2wasvsfc";
- };
- }
- {
- goPackagePath = "github.com/gophercloud/gophercloud";
- fetch = {
- type = "git";
- url = "https://github.com/gophercloud/gophercloud";
- rev = "c818fa66e4c8";
- sha256 = "0igz47lpdxgpfb4ckrrs64vr4wkkiqaamk4wf5d3il4dc2g06azw";
- };
- }
- {
- goPackagePath = "github.com/gosuri/uitable";
- fetch = {
- type = "git";
- url = "https://github.com/gosuri/uitable";
- rev = "v0.0.1";
- sha256 = "1ff68fv9g1df91fwbrcq83ar429gb4fi2vsd22zjmhvmbqx2zkil";
- };
- }
- {
- goPackagePath = "github.com/gregjones/httpcache";
- fetch = {
- type = "git";
- url = "https://github.com/gregjones/httpcache";
- rev = "787624de3eb7";
- sha256 = "1zqlg9pkj7r6fqw7wv3ywvbz3bh0hvzifs2scgcraj812q5189w5";
- };
- }
- {
- goPackagePath = "github.com/grpc-ecosystem/go-grpc-prometheus";
- fetch = {
- type = "git";
- url = "https://github.com/grpc-ecosystem/go-grpc-prometheus";
- rev = "0c1b191dbfe5";
- sha256 = "0d7vybd4yy9a9clk03578xdpyhifxsy3qv6iiglrrnblbmpgksjc";
- };
- }
- {
- goPackagePath = "github.com/hashicorp/golang-lru";
- fetch = {
- type = "git";
- url = "https://github.com/hashicorp/golang-lru";
- rev = "v0.5.0";
- sha256 = "12k2cp2k615fjvfa5hyb9k2alian77wivds8s65diwshwv41939f";
- };
- }
- {
- goPackagePath = "github.com/huandu/xstrings";
- fetch = {
- type = "git";
- url = "https://github.com/huandu/xstrings";
- rev = "v1.2.0";
- sha256 = "0bn1kac5vcspxdpx4bygr4gngdbk67pnbqc04b0f7a4ny25n10iq";
- };
- }
- {
- goPackagePath = "github.com/imdario/mergo";
- fetch = {
- type = "git";
- url = "https://github.com/imdario/mergo";
- rev = "v0.3.5";
- sha256 = "1mvgn89vp39gcpvhiq4n7nw5ipj7fk6h03jgc6fjwgvwvss213pb";
- };
- }
- {
- goPackagePath = "github.com/inconshreveable/mousetrap";
- fetch = {
- type = "git";
- url = "https://github.com/inconshreveable/mousetrap";
- rev = "v1.0.0";
- sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152";
- };
- }
- {
- goPackagePath = "github.com/jmoiron/sqlx";
- fetch = {
- type = "git";
- url = "https://github.com/jmoiron/sqlx";
- rev = "v1.2.0";
- sha256 = "0pmi2asx157f5738g19fzyxb9g8yyfbpjyh2a2ykr9mafvp60rfd";
- };
- }
- {
- goPackagePath = "github.com/json-iterator/go";
- fetch = {
- type = "git";
- url = "https://github.com/json-iterator/go";
- rev = "ab8a2e0c74be";
- sha256 = "1x3wz44p1238gpyzkiiilvvrq9q8dwjdm9kdidq65yjq0zcn0sq4";
- };
- }
- {
- goPackagePath = "github.com/julienschmidt/httprouter";
- fetch = {
- type = "git";
- url = "https://github.com/julienschmidt/httprouter";
- rev = "v1.2.0";
- sha256 = "1k8bylc9s4vpvf5xhqh9h246dl1snxrzzz0614zz88cdh8yzs666";
- };
- }
- {
- goPackagePath = "github.com/kisielk/gotool";
- fetch = {
- type = "git";
- url = "https://github.com/kisielk/gotool";
- rev = "v1.0.0";
- sha256 = "14af2pa0ssyp8bp2mvdw184s5wcysk6akil3wzxmr05wwy951iwn";
- };
- }
- {
- goPackagePath = "github.com/konsorten/go-windows-terminal-sequences";
- fetch = {
- type = "git";
- url = "https://github.com/konsorten/go-windows-terminal-sequences";
- rev = "v1.0.1";
- sha256 = "1lchgf27n276vma6iyxa0v1xds68n2g8lih5lavqnx5x6q5pw2ip";
- };
- }
- {
- goPackagePath = "github.com/kr/logfmt";
- fetch = {
- type = "git";
- url = "https://github.com/kr/logfmt";
- rev = "b84e30acd515";
- sha256 = "02ldzxgznrfdzvghfraslhgp19la1fczcbzh7wm2zdc6lmpd1qq9";
- };
- }
- {
- goPackagePath = "github.com/lib/pq";
- fetch = {
- type = "git";
- url = "https://github.com/lib/pq";
- rev = "v1.0.0";
- sha256 = "1zqnnyczaf00xi6xh53vq758v5bdlf0iz7kf22l02cal4i6px47i";
- };
- }
- {
- goPackagePath = "github.com/liggitt/tabwriter";
- fetch = {
- type = "git";
- url = "https://github.com/liggitt/tabwriter";
- rev = "89fcab3d43de";
- sha256 = "04q8d0jk1ymvy7pv1dgfbqzk8gcjfa77psg1lk30ghlisf54pakg";
- };
- }
- {
- goPackagePath = "github.com/mailru/easyjson";
- fetch = {
- type = "git";
- url = "https://github.com/mailru/easyjson";
- rev = "60711f1a8329";
- sha256 = "0234jp6134wkihdpdwq1hvzqblgl5khc1wp6dyi2h0hgh88bhdk1";
- };
- }
- {
- goPackagePath = "github.com/mattn/go-isatty";
- fetch = {
- type = "git";
- url = "https://github.com/mattn/go-isatty";
- rev = "v0.0.3";
- sha256 = "06w45aqz2a6yrk25axbly2k5wmsccv8cspb94bfmz4izvw8h927n";
- };
- }
- {
- goPackagePath = "github.com/mattn/go-runewidth";
- fetch = {
- type = "git";
- url = "https://github.com/mattn/go-runewidth";
- rev = "v0.0.1";
- sha256 = "1hnigpn7rjbwd1ircxkyx9hvi0xmxr32b2jdy2jzw6b3jmcnz1fs";
- };
- }
- {
- goPackagePath = "github.com/mattn/go-sqlite3";
- fetch = {
- type = "git";
- url = "https://github.com/mattn/go-sqlite3";
- rev = "v1.9.0";
- sha256 = "14vw8bwyaz9lrd1rqhfri5cwpimiimhp75pkbqxxsjsr5jz89s7m";
- };
- }
- {
- goPackagePath = "github.com/matttproud/golang_protobuf_extensions";
- fetch = {
- type = "git";
- url = "https://github.com/matttproud/golang_protobuf_extensions";
- rev = "v1.0.1";
- sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya";
- };
- }
- {
- goPackagePath = "github.com/mitchellh/go-wordwrap";
- fetch = {
- type = "git";
- url = "https://github.com/mitchellh/go-wordwrap";
- rev = "ad45545899c7";
- sha256 = "0ny1ddngvwfj3njn7pmqnf3l903lw73ynddw15x8ymp7hidv27v9";
- };
- }
- {
- goPackagePath = "github.com/modern-go/concurrent";
- fetch = {
- type = "git";
- url = "https://github.com/modern-go/concurrent";
- rev = "bacd9c7ef1dd";
- sha256 = "0s0fxccsyb8icjmiym5k7prcqx36hvgdwl588y0491gi18k5i4zs";
- };
- }
- {
- goPackagePath = "github.com/modern-go/reflect2";
- fetch = {
- type = "git";
- url = "https://github.com/modern-go/reflect2";
- rev = "v1.0.1";
- sha256 = "06a3sablw53n1dqqbr2f53jyksbxdmmk8axaas4yvnhyfi55k4lf";
- };
- }
- {
- goPackagePath = "github.com/mwitkow/go-conntrack";
- fetch = {
- type = "git";
- url = "https://github.com/mwitkow/go-conntrack";
- rev = "cc309e4a2223";
- sha256 = "0nbrnpk7bkmqg9mzwsxlm0y8m7s9qd9phr1q30qlx2qmdmz7c1mf";
- };
- }
- {
- goPackagePath = "github.com/opencontainers/go-digest";
- fetch = {
- type = "git";
- url = "https://github.com/opencontainers/go-digest";
- rev = "a6d0ee40d420";
- sha256 = "1paz3na2xkhi10p5bk7f7gbh5yykfgr9f9i2gcc13rb461yq6fmg";
- };
- }
- {
- goPackagePath = "github.com/orivej/e";
- fetch = {
- type = "git";
- url = "https://github.com/orivej/e";
- rev = "ac3492690fda";
- sha256 = "11jizr28kfkr6zscjxg95pqi6cjp08aqnhs41sdhc98nww78ilkr";
- };
- }
- {
- goPackagePath = "github.com/orivej/go-nix";
- fetch = {
- type = "git";
- url = "https://github.com/orivej/go-nix";
- rev = "dae45d921a44";
- sha256 = "17hfmsz8hs3h2d5c06j1bvbw8ijrhzm3iz911z5zydsl4x7y0cgy";
- };
- }
- {
- goPackagePath = "github.com/peterbourgon/diskv";
- fetch = {
- type = "git";
- url = "https://github.com/peterbourgon/diskv";
- rev = "v2.0.1";
- sha256 = "1mxpa5aad08x30qcbffzk80g9540wvbca4blc1r2qyzl65b8929b";
- };
- }
- {
- goPackagePath = "github.com/pkg/errors";
- fetch = {
- type = "git";
- url = "https://github.com/pkg/errors";
- rev = "v0.8.0";
- sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
- };
- }
- {
- goPackagePath = "github.com/pkg/profile";
- fetch = {
- type = "git";
- url = "https://github.com/pkg/profile";
- rev = "v1.2.1";
- sha256 = "0blqmvgqvdbqmh3fp9pfdxc9w1qfshrr0zy9whj0sn372bw64qnr";
- };
- }
- {
- 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/prometheus/client_golang";
- fetch = {
- type = "git";
- url = "https://github.com/prometheus/client_golang";
- rev = "v0.9.2";
- sha256 = "02b4yg6rfag0m3j0i39sillcm5xczwv8h133vn12yr8qw04cnigs";
- };
- }
- {
- goPackagePath = "github.com/prometheus/client_model";
- fetch = {
- type = "git";
- url = "https://github.com/prometheus/client_model";
- rev = "5c3871d89910";
- sha256 = "04psf81l9fjcwascsys428v03fx4fi894h7fhrj2vvcz723q57k0";
- };
- }
- {
- goPackagePath = "github.com/prometheus/common";
- fetch = {
- type = "git";
- url = "https://github.com/prometheus/common";
- rev = "v0.2.0";
- sha256 = "02kym6lcfnlq23qbv277jr0q1n7jj0r14gqg93c7wn7gc44jv3vp";
- };
- }
- {
- goPackagePath = "github.com/prometheus/procfs";
- fetch = {
- type = "git";
- url = "https://github.com/prometheus/procfs";
- rev = "1dc9a6cbc91a";
- sha256 = "1zlv1x30xp7z5c3vn5vp870v4bjim0zcidzc3mr2l3xhazc0svab";
- };
- }
- {
- goPackagePath = "github.com/rubenv/sql-migrate";
- fetch = {
- type = "git";
- url = "https://github.com/rubenv/sql-migrate";
- rev = "1007f53448d7";
- sha256 = "1cd7wpgym7yzzv4n7bsmg9gh1g7mqlljih3881arqlq11083d3mc";
- };
- }
- {
- goPackagePath = "github.com/russross/blackfriday";
- fetch = {
- type = "git";
- url = "https://github.com/russross/blackfriday";
- rev = "300106c228d5";
- sha256 = "1bcqwb9lk2sijn5q3kqp7sadhh0ysbxlj5bxjspk9yp5bp733cbh";
- };
- }
- {
- goPackagePath = "github.com/sergi/go-diff";
- fetch = {
- type = "git";
- url = "https://github.com/sergi/go-diff";
- rev = "v1.0.0";
- sha256 = "0swiazj8wphs2zmk1qgq75xza6m19snif94h2m6fi8dqkwqdl7c7";
- };
- }
- {
- goPackagePath = "github.com/shurcooL/sanitized_anchor_name";
- fetch = {
- type = "git";
- url = "https://github.com/shurcooL/sanitized_anchor_name";
- rev = "10ef21a441db";
- sha256 = "1cnbzcf47cn796rcjpph1s64qrabhkv5dn9sbynsy7m9zdwr5f01";
- };
- }
- {
- goPackagePath = "github.com/sirupsen/logrus";
- fetch = {
- type = "git";
- url = "https://github.com/sirupsen/logrus";
- rev = "v1.2.0";
- sha256 = "0r6334x2bls8ddznvzaldx4g88msjjns4mlks95rqrrg7h0ijigg";
- };
- }
- {
- goPackagePath = "github.com/spf13/cobra";
- fetch = {
- type = "git";
- url = "https://github.com/spf13/cobra";
- rev = "fe5e611709b0";
- sha256 = "1pn7g9jmhqc9yg6x02dgp4phiggnnxz8a11pv5y4vxhrvkjm6h71";
- };
- }
- {
- goPackagePath = "github.com/spf13/pflag";
- fetch = {
- type = "git";
- url = "https://github.com/spf13/pflag";
- rev = "v1.0.3";
- sha256 = "1cj3cjm7d3zk0mf1xdybh0jywkbbw7a6yr3y22x9sis31scprswd";
- };
- }
- {
- goPackagePath = "github.com/stretchr/objx";
- fetch = {
- type = "git";
- url = "https://github.com/stretchr/objx";
- rev = "v0.1.1";
- sha256 = "0iph0qmpyqg4kwv8jsx6a56a7hhqq8swrazv40ycxk9rzr0s8yls";
- };
- }
- {
- goPackagePath = "github.com/stretchr/testify";
- fetch = {
- type = "git";
- url = "https://github.com/stretchr/testify";
- rev = "v1.2.2";
- sha256 = "0dlszlshlxbmmfxj5hlwgv3r22x0y1af45gn1vd198nvvs3pnvfs";
- };
- }
- {
- goPackagePath = "github.com/technosophos/moniker";
- fetch = {
- type = "git";
- url = "https://github.com/technosophos/moniker";
- rev = "a5dbd03a2245";
- sha256 = "1z273gvbwr09lcxwd10wyvxmxjln93r952sr1w9hqxcgc1f8l3vl";
- };
- }
- {
- goPackagePath = "golang.org/x/crypto";
- fetch = {
- type = "git";
- url = "https://go.googlesource.com/crypto";
- rev = "0709b304e793";
- sha256 = "0i05s09y5pavmfh71fgih7syxg58x7a4krgd8am6d3mnahnmab5c";
- };
- }
- {
- goPackagePath = "golang.org/x/lint";
- fetch = {
- type = "git";
- url = "https://go.googlesource.com/lint";
- rev = "c67002cb31c3";
- sha256 = "0gymbggskjmphqxqcx4s0vnlcz7mygbix0vhwcwv5r67c0bf6765";
- };
- }
- {
- goPackagePath = "golang.org/x/net";
- fetch = {
- type = "git";
- url = "https://go.googlesource.com/net";
- rev = "65e2d4e15006";
- sha256 = "0aqcmh0sp723d6hwgrv7pnrs4crns2ngr4x43jd4v985cbn455x7";
- };
- }
- {
- goPackagePath = "golang.org/x/oauth2";
- fetch = {
- type = "git";
- url = "https://go.googlesource.com/oauth2";
- rev = "d2e6202438be";
- sha256 = "0wbn75fd10485nb93bm4kqldqifdim5xqy4v7r5sdvimvf3fyhn7";
- };
- }
- {
- goPackagePath = "golang.org/x/sync";
- fetch = {
- type = "git";
- url = "https://go.googlesource.com/sync";
- rev = "42b317875d0f";
- sha256 = "0mrjhk7al7yyh76x9flvxy4jm5jyqh2fxbxagpaazxn1xdgkaif3";
- };
- }
- {
- goPackagePath = "golang.org/x/sys";
- fetch = {
- type = "git";
- url = "https://go.googlesource.com/sys";
- rev = "b90733256f2e";
- sha256 = "1dsqa48ai4rrqf0sxypnmjg5c6sbp63mj5ljr7qadam06r5m2q98";
- };
- }
- {
- goPackagePath = "golang.org/x/text";
- fetch = {
- type = "git";
- url = "https://go.googlesource.com/text";
- rev = "v0.3.0";
- sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
- };
- }
- {
- goPackagePath = "golang.org/x/time";
- fetch = {
- type = "git";
- url = "https://go.googlesource.com/time";
- rev = "f51c12702a4d";
- sha256 = "07wc6g2fvafkr6djsscm0jpbpl4135khhb6kpyx1953hi5d1jvyy";
- };
- }
- {
- goPackagePath = "golang.org/x/tools";
- fetch = {
- type = "git";
- url = "https://go.googlesource.com/tools";
- rev = "6cd1fcedba52";
- sha256 = "00hl0vkmy8impsnmc2dmm55sdhia95k0kqcrjbdpynryn1lamn5d";
- };
- }
- {
- goPackagePath = "google.golang.org/appengine";
- fetch = {
- type = "git";
- url = "https://github.com/golang/appengine";
- rev = "v1.1.0";
- sha256 = "1pz202zszg8f35dk5pfhwgcdi3r6dx1l4yk6x6ly7nb4j45zi96x";
- };
- }
- {
- goPackagePath = "google.golang.org/genproto";
- fetch = {
- type = "git";
- url = "https://github.com/google/go-genproto";
- rev = "c66870c02cf8";
- sha256 = "0siq7sv68556ygqi2d2zmvx8l1xjqdc0fylqzci5h1mq2i14bayn";
- };
- }
- {
- goPackagePath = "google.golang.org/grpc";
- fetch = {
- type = "git";
- url = "https://github.com/grpc/grpc-go";
- rev = "v1.18.0";
- sha256 = "17drwyj3fi5sdz5ndlj7888b3gin6brs3jnh7gh6i15k97l6gf4n";
- };
- }
- {
- goPackagePath = "gopkg.in/alecthomas/kingpin.v2";
- fetch = {
- type = "git";
- url = "https://gopkg.in/alecthomas/kingpin.v2";
- rev = "v2.2.6";
- sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
- };
- }
- {
- goPackagePath = "gopkg.in/check.v1";
- fetch = {
- type = "git";
- url = "https://gopkg.in/check.v1";
- rev = "20d25e280405";
- sha256 = "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np";
- };
- }
- {
- goPackagePath = "gopkg.in/gorp.v1";
- fetch = {
- type = "git";
- url = "https://gopkg.in/gorp.v1";
- rev = "v1.7.2";
- sha256 = "0zwkq4cv71vp7cmpfcs54908g1amr0cdxv1b8h1icf64jjawb1lb";
- };
- }
- {
- goPackagePath = "gopkg.in/inf.v0";
- fetch = {
- type = "git";
- url = "https://gopkg.in/inf.v0";
- rev = "v0.9.0";
- sha256 = "0rf3vwyb8aqnac9x9d6ax7z5526c45a16yjm2pvkijr6qgqz8b82";
- };
- }
- {
- goPackagePath = "gopkg.in/square/go-jose.v2";
- fetch = {
- type = "git";
- url = "https://gopkg.in/square/go-jose.v2";
- rev = "89060dee6a84";
- sha256 = "04ak01zs9qibr6qvc6l0zdjj9pgccpbvxz6rdwrqv698i1q3qfpd";
- };
- }
- {
- goPackagePath = "gopkg.in/yaml.v2";
- fetch = {
- type = "git";
- url = "https://gopkg.in/yaml.v2";
- rev = "v2.2.1";
- sha256 = "0dwjrs2lp2gdlscs7bsrmyc5yf6mm4fvgw71bzr9mv2qrd2q73s1";
- };
- }
- {
- goPackagePath = "honnef.co/go/tools";
- fetch = {
- type = "git";
- url = "https://github.com/dominikh/go-tools";
- rev = "88497007e858";
- sha256 = "0rinkyx3r2bq45mgcasnn5jb07cwbv3p3s2wwcrzxsarsj6wa5lc";
- };
- }
- {
- goPackagePath = "k8s.io/api";
- fetch = {
- type = "git";
- url = "https://github.com/kubernetes/api";
- rev = "6e4e0e4f393b";
- sha256 = "0y7nxxywq2qx74a5vsg0h2jkfj879wbv6bjran12401fv0vsdlp1";
- };
- }
- {
- goPackagePath = "k8s.io/apiextensions-apiserver";
- fetch = {
- type = "git";
- url = "https://github.com/kubernetes/apiextensions-apiserver";
- rev = "727a075fdec8";
- sha256 = "1p8bdl299hrmkq2hfh7sqhsv7c3ig1i0jy8mcgq0hqjix94a87cj";
- };
- }
- {
- goPackagePath = "k8s.io/apimachinery";
- fetch = {
- type = "git";
- url = "https://github.com/kubernetes/apimachinery";
- rev = "6a84e37a896d";
- sha256 = "1ys06ixidvpcj9sgk0c2i5vsz11gg3h8xcpc9kqxfsik36cw1akk";
- };
- }
- {
- goPackagePath = "k8s.io/apiserver";
- fetch = {
- type = "git";
- url = "https://github.com/kubernetes/apiserver";
- rev = "1ec86e4da56c";
- sha256 = "0my2r4ynbxgpbbrjgcrdrqazhhn2jwk8jkk8ymjks28gzs2i510s";
- };
- }
- {
- goPackagePath = "k8s.io/cli-runtime";
- fetch = {
- type = "git";
- url = "https://github.com/kubernetes/cli-runtime";
- rev = "d644b00f3b79";
- sha256 = "1zcmfpyp6m9xl8dia56yb00ixra3ag5d43v2f5zlnrwphq967a8p";
- };
- }
- {
- goPackagePath = "k8s.io/client-go";
- fetch = {
- type = "git";
- url = "https://github.com/kubernetes/client-go";
- rev = "1a26190bd76a";
- sha256 = "1b77zf0sip2cilkr40b2jm1kk71212s4clmbs2xl57b4n945yy1d";
- };
- }
- {
- goPackagePath = "k8s.io/cloud-provider";
- fetch = {
- type = "git";
- url = "https://github.com/kubernetes/cloud-provider";
- rev = "9c9d72d1bf90";
- sha256 = "15iwal7nn1b7jwrvrhlzvdnf0381lccpw3jrlww8sfmxqsp860in";
- };
- }
- {
- goPackagePath = "k8s.io/klog";
- fetch = {
- type = "git";
- url = "https://github.com/kubernetes/klog";
- rev = "8e90cee79f82";
- sha256 = "1hzy767dj0ya111al54k3g9xa40bsy7j81fi0sh7gyl1azw0h8dk";
- };
- }
- {
- goPackagePath = "k8s.io/kube-openapi";
- fetch = {
- type = "git";
- url = "https://github.com/kubernetes/kube-openapi";
- rev = "b3a7cee44a30";
- sha256 = "1ald0jjliln5ipdniwfcrm4yal9aa4jr07d3ljrhhh2fj72c6dsp";
- };
- }
- {
- goPackagePath = "k8s.io/kubernetes";
- fetch = {
- type = "git";
- url = "https://github.com/kubernetes/kubernetes";
- rev = "v1.14.1";
- sha256 = "0s06x9jk9b6r0i39nl0bmvwjgdp3qikgfbw5cnzi5mv03hc2li8s";
- };
- }
- {
- goPackagePath = "k8s.io/utils";
- fetch = {
- type = "git";
- url = "https://github.com/kubernetes/utils";
- rev = "c2654d5206da";
- sha256 = "1849p8xhiyk53mpg3mwpsmsm5ps5sa2p54bv7b38m415qxsn2d1x";
- };
- }
- {
- goPackagePath = "sigs.k8s.io/kustomize";
- fetch = {
- type = "git";
- url = "https://github.com/kubernetes-sigs/kustomize";
- rev = "v2.0.3";
- sha256 = "1dfkpx9rllj1bzm5f52bx404kdds3zx1h38yqri9ha3p3pcb1bbb";
- };
- }
- {
- goPackagePath = "sigs.k8s.io/yaml";
- fetch = {
- type = "git";
- url = "https://github.com/kubernetes-sigs/yaml";
- rev = "v1.1.0";
- sha256 = "1p7hvjdr5jsyk7nys1g1pmgnf3ys6n320i6hds85afppk81k01kb";
- };
- }
- {
- goPackagePath = "vbom.ml/util";
- fetch = {
- type = "git";
- url = "https://github.com/fvbommel/util";
- rev = "db5cfe13f5cc";
- sha256 = "1k9c3ihhkrcmhd26pwd62mp2ll7icr2q65i5pkymnfnhhv40p682";
- };
- }
-]
diff --git a/pkgs/applications/networking/cluster/helmfile/default.nix b/pkgs/applications/networking/cluster/helmfile/default.nix
index 1faa0988a66..6decad2f9fb 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.79.3"; in
+let version = "0.85.0"; in
buildGoModule {
pname = "helmfile";
@@ -10,12 +10,12 @@ buildGoModule {
owner = "roboll";
repo = "helmfile";
rev = "v${version}";
- sha256 = "0wgfpidpqyvh41dnw351v91z4szi1s6lqak9li2pmddz1rdkx66v";
+ sha256 = "0k1019ddzhhl8kn70ibqf6srlfv92jkc26m78pic5c7ibqyq5fds";
};
goPackagePath = "github.com/roboll/helmfile";
- modSha256 = "1ksz1c4j7mhsbq6ifqab04588d48c9glyhr4d3d4jyvi19qhwx1d";
+ modSha256 = "1npjm3rs32c1rwx8xb9s03jhd156da6p66hpaqccm7b6zxsm32nv";
nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/networking/cluster/k9s/default.nix b/pkgs/applications/networking/cluster/k9s/default.nix
index 5c0adbdc548..73d82207daf 100644
--- a/pkgs/applications/networking/cluster/k9s/default.nix
+++ b/pkgs/applications/networking/cluster/k9s/default.nix
@@ -2,18 +2,17 @@
buildGoModule rec {
pname = "k9s";
- version = "0.7.13";
+ version = "0.8.4";
src = fetchFromGitHub {
- owner = "derailed";
- repo = "k9s";
- rev = version;
+ owner = "derailed";
+ repo = "k9s";
+ rev = version;
sha256 = "0wsj6wc2qi5708cg47l2qblq1cg8fcwxdygpkayib9hapx6lc6f8";
};
modSha256 = "1ia9wx6yd9mdr981lcw58xv39iqzz25r03bmn1c6byxmq2xpcjq8";
-
meta = with stdenv.lib; {
description = "Kubernetes CLI To Manage Your Clusters In Style.";
homepage = https://github.com/derailed/k9s;
diff --git a/pkgs/applications/networking/cluster/kontemplate/default.nix b/pkgs/applications/networking/cluster/kontemplate/default.nix
index e38dc355d24..359b289dbbc 100644
--- a/pkgs/applications/networking/cluster/kontemplate/default.nix
+++ b/pkgs/applications/networking/cluster/kontemplate/default.nix
@@ -2,7 +2,7 @@
buildGoPackage rec {
pname = "kontemplate";
- version = "1.7.0";
+ version = "1.8.0";
goPackagePath = "github.com/tazjin/kontemplate";
goDeps = ./deps.nix;
@@ -10,7 +10,7 @@ buildGoPackage rec {
owner = "tazjin";
repo = "kontemplate";
rev = "v${version}";
- sha256 = "0vzircajhrfq1nykwpl52cqgzyhy51w4ff7ldpgi95w3a4fz1hzz";
+ sha256 = "123mjmmm4hynraq1fpn3j5i0a1i87l265kkjraxxxbl0zacv74i1";
};
meta = with lib; {
diff --git a/pkgs/applications/networking/cluster/kontemplate/deps.nix b/pkgs/applications/networking/cluster/kontemplate/deps.nix
index f0a52f5266e..7693968bd55 100644
--- a/pkgs/applications/networking/cluster/kontemplate/deps.nix
+++ b/pkgs/applications/networking/cluster/kontemplate/deps.nix
@@ -1,111 +1,111 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
[
+ {
+ goPackagePath = "github.com/Masterminds/goutils";
+ fetch = {
+ type = "git";
+ url = "https://github.com/Masterminds/goutils";
+ rev = "41ac8693c5c10a92ea1ff5ac3a7f95646f6123b0";
+ sha256 = "180px47gj936qyk5bkv5mbbgiil9abdjq6kwkf7sq70vyi9mcfiq";
+ };
+ }
{
goPackagePath = "github.com/Masterminds/semver";
fetch = {
- type = "git";
- url = "https://github.com/Masterminds/semver";
- rev = "c84ddcca87bf5a941b138dde832a7e20b0159ad8";
- sha256 = "1dcfdr018a0yszjpvr3wshvq9cc3kvy95l55si556p617wsn1wan";
+ type = "git";
+ url = "https://github.com/Masterminds/semver";
+ rev = "5bc3b9184d48f1412b300b87a200cf020d9254cf";
+ sha256 = "1vdfm653v50jf63cw0kg2hslx50cn4mk6lj3p51bi11jrg48kfng";
};
}
{
goPackagePath = "github.com/Masterminds/sprig";
fetch = {
- type = "git";
- url = "https://github.com/Masterminds/sprig";
- rev = "77bb58b7f5e10889a1195c21b9e7a96ee166f199";
- sha256 = "0q4g12f3nvda1skz33qzbbdd2vj3gjfwf361hyzlx20s71brk3bk";
+ type = "git";
+ url = "https://github.com/Masterminds/sprig";
+ rev = "6f509977777c33eae63b2136d97f7b976cb971cc";
+ sha256 = "05h9k6fhjxnpwlihj3z02q9kvqvnq53jix0ab84sx0666bci3cdh";
};
}
{
goPackagePath = "github.com/alecthomas/template";
fetch = {
- type = "git";
- url = "https://github.com/alecthomas/template";
- rev = "a0175ee3bccc567396460bf5acd36800cb10c49c";
- sha256 = "0qjgvvh26vk1cyfq9fadyhfgdj36f1iapbmr5xp6zqipldz8ffxj";
+ type = "git";
+ url = "https://github.com/alecthomas/template";
+ rev = "fb15b899a75114aa79cc930e33c46b577cc664b1";
+ sha256 = "1vlasv4dgycydh5wx6jdcvz40zdv90zz1h7836z7lhsi2ymvii26";
};
}
{
goPackagePath = "github.com/alecthomas/units";
fetch = {
- type = "git";
- url = "https://github.com/alecthomas/units";
- rev = "2efee857e7cfd4f3d0138cc3cbb1b4966962b93a";
- sha256 = "1j65b91qb9sbrml9cpabfrcf07wmgzzghrl7809hjjhrmbzri5bl";
- };
- }
- {
- goPackagePath = "github.com/aokoli/goutils";
- fetch = {
- type = "git";
- url = "https://github.com/aokoli/goutils";
- rev = "3391d3790d23d03408670993e957e8f408993c34";
- sha256 = "1yj4yjfwylica31sgj69ygb04p9xxi22kgfxd0j5f58zr8vwww2n";
+ type = "git";
+ url = "https://github.com/alecthomas/units";
+ rev = "c3de453c63f4bdb4dadffab9805ec00426c505f7";
+ sha256 = "0js37zlgv37y61j4a2d46jh72xm5kxmpaiw0ya9v944bjpc386my";
};
}
{
goPackagePath = "github.com/ghodss/yaml";
fetch = {
- type = "git";
- url = "https://github.com/ghodss/yaml";
- rev = "e9ed3c6dfb39bb1a32197cb10d527906fe4da4b6";
- sha256 = "07cf0j3wbsl1gmn175mdgljcarfz4xbqd6pgc7b08a5lcn7zwhjz";
+ type = "git";
+ url = "https://github.com/ghodss/yaml";
+ rev = "25d852aebe32c875e9c044af3eef9c7dc6bc777f";
+ sha256 = "1w9yq0bxzygc4qwkwwiy7k1k1yviaspcqqv18255k2xkjv5ipccz";
};
}
{
goPackagePath = "github.com/google/uuid";
fetch = {
- type = "git";
- url = "https://github.com/google/uuid";
- rev = "dec09d789f3dba190787f8b4454c7d3c936fed9e";
- sha256 = "1hc4w67p6zkh2qk7wm1yrl69jjrjjk615mly5ll4iidn1m4mzi4i";
+ type = "git";
+ url = "https://github.com/google/uuid";
+ rev = "c2e93f3ae59f2904160ceaab466009f965df46d6";
+ sha256 = "0zw8fvl6jqg0fmv6kmvhss0g4gkrbvgyvl2zgy5wdbdlgp4fja0h";
};
}
{
goPackagePath = "github.com/huandu/xstrings";
fetch = {
- type = "git";
- url = "https://github.com/huandu/xstrings";
- rev = "7bb0250b58e5c15670406e6f93ffda43281305b1";
- sha256 = "1fc8q65xvsxpa12p8hcjqap2pf72zqlwpm165js9kwbgm2sf977c";
+ type = "git";
+ url = "https://github.com/huandu/xstrings";
+ rev = "8bbcf2f9ccb55755e748b7644164cd4bdce94c1d";
+ sha256 = "1ivvc95514z63k7cpz71l0dwlanffmsh1pijhaqmp41kfiby8rsx";
};
}
{
goPackagePath = "github.com/imdario/mergo";
fetch = {
- type = "git";
- url = "https://github.com/imdario/mergo";
- rev = "9f23e2d6bd2a77f959b2bf6acdbefd708a83a4a4";
- sha256 = "1lbzy8p8wv439sqgf0n21q52flf2wbamp6qa1jkyv6an0nc952q7";
+ type = "git";
+ url = "https://github.com/imdario/mergo";
+ rev = "4c317f2286be3bd0c4f1a0e622edc6398ec4656d";
+ sha256 = "0bihha1qsgfjk14yv1hwddv3d8dzxpbjlaxwwyys6lhgxz1cr9h9";
};
}
{
goPackagePath = "golang.org/x/crypto";
fetch = {
- type = "git";
- url = "https://go.googlesource.com/crypto";
- rev = "de0752318171da717af4ce24d0a2e8626afaeb11";
- sha256 = "1ps1dl2a5lwr3vbwcy8n4i1v73m567y024sk961fk281phrzp13i";
+ type = "git";
+ url = "https://go.googlesource.com/crypto";
+ rev = "9756ffdc24725223350eb3266ffb92590d28f278";
+ sha256 = "0q7hxaaq6lp0v8qqzifvysl47z5rfdlrxkh3d29vsl3wyby3dxl8";
};
}
{
goPackagePath = "gopkg.in/alecthomas/kingpin.v2";
fetch = {
- type = "git";
- url = "https://gopkg.in/alecthomas/kingpin.v2";
- rev = "947dcec5ba9c011838740e680966fd7087a71d0d";
+ type = "git";
+ url = "https://gopkg.in/alecthomas/kingpin.v2";
+ rev = "947dcec5ba9c011838740e680966fd7087a71d0d";
sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
};
}
{
goPackagePath = "gopkg.in/yaml.v2";
fetch = {
- type = "git";
- url = "https://gopkg.in/yaml.v2";
- rev = "5420a8b6744d3b0345ab293f6fcba19c978f1183";
- sha256 = "0dwjrs2lp2gdlscs7bsrmyc5yf6mm4fvgw71bzr9mv2qrd2q73s1";
+ type = "git";
+ url = "https://gopkg.in/yaml.v2";
+ rev = "51d6538a90f86fe93ac480b35f37b2be17fef232";
+ sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa";
};
}
]
diff --git a/pkgs/applications/networking/cluster/kops/default.nix b/pkgs/applications/networking/cluster/kops/default.nix
index c8b95baf2f3..7e513edf612 100644
--- a/pkgs/applications/networking/cluster/kops/default.nix
+++ b/pkgs/applications/networking/cluster/kops/default.nix
@@ -43,7 +43,7 @@ let
description = "Easiest way to get a production Kubernetes up and running";
homepage = https://github.com/kubernetes/kops;
license = licenses.asl20;
- maintainers = with maintainers; [offline zimbatm];
+ maintainers = with maintainers; [offline zimbatm kampka];
platforms = platforms.unix;
};
} // attrs';
@@ -57,7 +57,12 @@ in rec {
};
kops_1_13 = mkKops {
- version = "1.13.0";
- sha256 = "04kbbg3gqzwzzzq1lmnpw2gqky3pfwfk7pc0laxv2yssk9wac5k1";
+ version = "1.13.2";
+ sha256 = "0lkkg34vn020r62ga8vg5d3a8jwvq00xlv3p1s01nkz33f6salng";
+ };
+
+ kops_1_14 = mkKops {
+ version = "1.14.1";
+ sha256 = "0ikd8qwrjh8s1sc95g18sm0q6p33swz2m1rjd8zw34mb2w9jv76n";
};
}
diff --git a/pkgs/applications/networking/cluster/kube3d/default.nix b/pkgs/applications/networking/cluster/kube3d/default.nix
index c549efa7b40..7058c009f2d 100644
--- a/pkgs/applications/networking/cluster/kube3d/default.nix
+++ b/pkgs/applications/networking/cluster/kube3d/default.nix
@@ -1,8 +1,9 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
-buildGoPackage rec {
+buildGoModule rec {
pname = "kube3d";
version = "1.3.1";
+ k3sVersion = "0.9.1";
goPackagePath = "github.com/rancher/k3d";
@@ -13,13 +14,20 @@ buildGoPackage rec {
sha256 = "0bdpjnzyxd6mdc1qv0ml89qds6305kn3wmyci2kv6g2y7r7wxvm2";
};
- goDeps = ./deps.nix;
+ buildFlagsArray = ''
+ -ldflags=
+ -w -s
+ -X github.com/rancher/k3d/version.Version=${version}
+ -X github.com/rancher/k3d/version.K3sVersion=v${k3sVersion}
+ '';
+
+ modSha256 = "1qadf3gc2626l4jpad4lzi649nh8if9m6fgs2cf46r1nish16h95";
meta = with stdenv.lib; {
homepage = "https://github.com/rancher/k3d";
description = "A helper to run k3s (Lightweight Kubernetes. 5 less than k8s) in a docker container";
license = licenses.mit;
platforms = platforms.linux;
- maintainers = with maintainers; [ kuznero ];
+ maintainers = with maintainers; [ kuznero jlesquembre ];
};
}
diff --git a/pkgs/applications/networking/cluster/kube3d/deps.nix b/pkgs/applications/networking/cluster/kube3d/deps.nix
deleted file mode 100644
index 4fb2936a40b..00000000000
--- a/pkgs/applications/networking/cluster/kube3d/deps.nix
+++ /dev/null
@@ -1,174 +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.12";
- sha256 = "10v2f1xaw2cc97mjqnxzgs9ydpqv71f0ynp1spcywqw97la56zqw";
- };
- }
- {
- goPackagePath = "github.com/davecgh/go-spew";
- fetch = {
- type = "git";
- url = "https://github.com/davecgh/go-spew";
- rev = "v1.1.0";
- sha256 = "0d4jfmak5p6lb7n2r6yvf5p1zcw0l8j74kn55ghvr7zr7b7axm6c";
- };
- }
- {
- goPackagePath = "github.com/docker/distribution";
- fetch = {
- type = "git";
- url = "https://github.com/docker/distribution";
- rev = "v2.7.1";
- sha256 = "1nx8b5a68rn81alp8wkkw6qd5v32mgf0fk23mxm60zdf63qk1nzw";
- };
- }
- {
- goPackagePath = "github.com/docker/docker";
- fetch = {
- type = "git";
- url = "https://github.com/docker/docker";
- rev = "v1.13.1";
- sha256 = "0l9kjibnpwcgk844sibxk9ppyqniw9r0np1mzp95f8f461jb0iar";
- };
- }
- {
- goPackagePath = "github.com/docker/go-connections";
- fetch = {
- type = "git";
- url = "https://github.com/docker/go-connections";
- rev = "v0.4.0";
- sha256 = "0mv6f6b5nljc17dmwmc28hc0y11pqglz7x0d2mjrwdmfxf64hwqq";
- };
- }
- {
- goPackagePath = "github.com/docker/go-units";
- fetch = {
- type = "git";
- url = "https://github.com/docker/go-units";
- rev = "v0.3.3";
- sha256 = "0npxsb3pp89slwf4a73fxm20hykad8xggij6i6hcd5jy19bjrd93";
- };
- }
- {
- goPackagePath = "github.com/mattn/go-runewidth";
- fetch = {
- type = "git";
- url = "https://github.com/mattn/go-runewidth";
- rev = "v0.0.4";
- sha256 = "00b3ssm7wiqln3k54z2wcnxr3k3c7m1ybyhb9h8ixzbzspld0qzs";
- };
- }
- {
- 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/olekukonko/tablewriter";
- fetch = {
- type = "git";
- url = "https://github.com/olekukonko/tablewriter";
- rev = "v0.0.1";
- sha256 = "0hh95glg7d2md185r03wn52j2r33jc4zil0qvcrs66ka7bdxi7vj";
- };
- }
- {
- goPackagePath = "github.com/opencontainers/go-digest";
- fetch = {
- type = "git";
- url = "https://github.com/opencontainers/go-digest";
- rev = "v1.0.0-rc1";
- sha256 = "01gc7fpn8ax429024p2fcx3yb18axwz5bjf2hqxlii1jbsgw4bh9";
- };
- }
- {
- goPackagePath = "github.com/pkg/errors";
- fetch = {
- type = "git";
- url = "https://github.com/pkg/errors";
- rev = "v0.8.1";
- sha256 = "0g5qcb4d4fd96midz0zdk8b9kz8xkzwfa8kr1cliqbg8sxsy5vd1";
- };
- }
- {
- 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/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.3.0";
- sha256 = "0wjchp2c8xbgcbbq32w3kvblk6q6yn533g78nxl6iskq6y95lxsy";
- };
- }
- {
- 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 = "b630fd6fe46b";
- sha256 = "0m84kwckmmc0z05kjb4dd43g1g61al32a4z593flpcbaqx8di5sd";
- };
- }
- {
- goPackagePath = "golang.org/x/sys";
- fetch = {
- type = "git";
- url = "https://go.googlesource.com/sys";
- rev = "d0b11bdaac8a";
- sha256 = "18yfsmw622l7gc5sqriv5qmck6903vvhivpzp8i3xfy3z33dybdl";
- };
- }
- {
- goPackagePath = "golang.org/x/text";
- fetch = {
- type = "git";
- url = "https://go.googlesource.com/text";
- rev = "v0.3.0";
- sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
- };
- }
-]
diff --git a/pkgs/applications/networking/cluster/kubecfg/default.nix b/pkgs/applications/networking/cluster/kubecfg/default.nix
index e1b5a4425d5..69d013e3f03 100644
--- a/pkgs/applications/networking/cluster/kubecfg/default.nix
+++ b/pkgs/applications/networking/cluster/kubecfg/default.nix
@@ -1,6 +1,6 @@
{ lib, buildGoPackage, fetchFromGitHub, ... }:
-let version = "0.12.0"; in
+let version = "0.13.1"; in
buildGoPackage {
pname = "kubecfg";
@@ -10,7 +10,7 @@ buildGoPackage {
owner = "bitnami";
repo = "kubecfg";
rev = "v${version}";
- sha256 = "118p1fy6cihswwz03vp62cz8395hgfqd82nmfkw88fx7av23rfhb";
+ sha256 = "0x2mg13p8r1sgqr1bbzh57kfymb8z392y43djgks2agc7rjnd45f";
};
goPackagePath = "github.com/bitnami/kubecfg";
diff --git a/pkgs/applications/networking/cluster/kubeless/default.nix b/pkgs/applications/networking/cluster/kubeless/default.nix
index a69dc8890a7..aaf183ad666 100644
--- a/pkgs/applications/networking/cluster/kubeless/default.nix
+++ b/pkgs/applications/networking/cluster/kubeless/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, buildGoModule, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub }:
-buildGoModule rec {
+buildGoPackage rec {
pname = "kubeless";
version = "1.0.4";
@@ -10,7 +10,8 @@ buildGoModule rec {
rev = "v${version}";
sha256 = "1f5w6kn9rsaxx9nf6kzyjkzm3s9ycy1c8h78hb61v4x915xd3040";
};
- modSha256 = "1pw4pwb8z2kq474jjipjdivlrin5zvw8d2if4317b0w0wyp6isgd";
+
+ goPackagePath = "github.com/kubeless/kubeless";
subPackages = [ "cmd/kubeless" ];
diff --git a/pkgs/applications/networking/cluster/kubernetes/default.nix b/pkgs/applications/networking/cluster/kubernetes/default.nix
index cbe32e57f20..c2751ac270a 100644
--- a/pkgs/applications/networking/cluster/kubernetes/default.nix
+++ b/pkgs/applications/networking/cluster/kubernetes/default.nix
@@ -15,13 +15,13 @@ with lib;
stdenv.mkDerivation rec {
pname = "kubernetes";
- version = "1.15.3";
+ version = "1.16.3";
src = fetchFromGitHub {
owner = "kubernetes";
repo = "kubernetes";
rev = "v${version}";
- sha256 = "0vamr7m8i5svmvb0z01cngv3sffdfjj0bky2zalm7cfnapib8vz1";
+ sha256 = "0s2k7ik2aa7knh25r0qki7ldr3g9h87dgi8nm64j8n0yy4xvg2h3";
};
buildInputs = [ removeReferencesTo makeWrapper which go rsync go-bindata ];
@@ -73,7 +73,7 @@ stdenv.mkDerivation rec {
description = "Production-Grade Container Scheduling and Management";
license = licenses.asl20;
homepage = https://kubernetes.io;
- maintainers = with maintainers; [johanot offline];
+ maintainers = with maintainers; [johanot offline saschagrunert];
platforms = platforms.unix;
};
}
diff --git a/pkgs/applications/networking/cluster/kubeseal/default.nix b/pkgs/applications/networking/cluster/kubeseal/default.nix
new file mode 100644
index 00000000000..e232670c31f
--- /dev/null
+++ b/pkgs/applications/networking/cluster/kubeseal/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "kubeseal";
+ version = "0.9.5";
+
+ src = fetchFromGitHub {
+ owner = "bitnami-labs";
+ repo = "sealed-secrets";
+ rev = "v${version}";
+ sha256 = "0k59n40rmxjdn0xi8gr08zlxk0irfc7crra9x8qdljvivqshma3z";
+ };
+
+ modSha256 = "04dmjyz3vi2l0dfpyy42lkp2fv1vlfkvblrxh1dvb37phrkd5lbd";
+
+ subPackages = [ "cmd/kubeseal" ];
+
+ meta = with lib; {
+ description = "A Kubernetes controller and tool for one-way encrypted Secrets";
+ homepage = "https://github.com/bitnami-labs/sealed-secrets";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ groodt ];
+ };
+}
diff --git a/pkgs/applications/networking/cluster/kubetail/default.nix b/pkgs/applications/networking/cluster/kubetail/default.nix
index dcda18f18be..779edad8de3 100644
--- a/pkgs/applications/networking/cluster/kubetail/default.nix
+++ b/pkgs/applications/networking/cluster/kubetail/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "kubetail";
- version = "1.6.9";
+ version = "1.6.10";
src = fetchFromGitHub {
owner = "johanhaleby";
repo = "kubetail";
rev = version;
- sha256 = "0mcv23p0h1ww9gvax8b4b4x5hmg02shrbgms0v0c72cmw0zf2phr";
+ sha256 = "0bg872n9fs6pl03rmjny9sgby718yznx9jwi5rx3hi4km3ha9j0b";
};
installPhase = ''
diff --git a/pkgs/applications/networking/cluster/nomad/default.nix b/pkgs/applications/networking/cluster/nomad/default.nix
index a4236a9408c..e6058643789 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.9.5";
+ version = "0.10.0";
rev = "v${version}";
goPackagePath = "github.com/hashicorp/nomad";
@@ -12,7 +12,7 @@ buildGoPackage rec {
owner = "hashicorp";
repo = pname;
inherit rev;
- sha256 = "01491470idb11z0ab4anb5caw46vy9s94a17l92j0z2f3f4k6xfl";
+ sha256 = "1hvnrbna4hsyp5byx5si2gn4h3m6shwmd8nk0vpbrs3ck3dl1p6l";
};
# ui:
@@ -36,6 +36,6 @@ buildGoPackage rec {
description = "A Distributed, Highly Available, Datacenter-Aware Scheduler";
platforms = platforms.unix;
license = licenses.mpl20;
- maintainers = with maintainers; [ rushmorem pradeepchhetri ];
+ maintainers = with maintainers; [ rushmorem pradeepchhetri endocrimes ];
};
}
diff --git a/pkgs/applications/networking/cluster/openshift/default.nix b/pkgs/applications/networking/cluster/openshift/default.nix
index 758786f586a..3b96ef4ea45 100644
--- a/pkgs/applications/networking/cluster/openshift/default.nix
+++ b/pkgs/applications/networking/cluster/openshift/default.nix
@@ -10,7 +10,7 @@ with lib;
let
version = "3.11.0";
- ver = stdenv.lib.elemAt (stdenv.lib.splitString "." version);
+ ver = stdenv.lib.elemAt (stdenv.lib.splitVersion version);
versionMajor = ver 0;
versionMinor = ver 1;
versionPatch = ver 2;
diff --git a/pkgs/applications/networking/cluster/qbec/default.nix b/pkgs/applications/networking/cluster/qbec/default.nix
new file mode 100644
index 00000000000..9e578b9b333
--- /dev/null
+++ b/pkgs/applications/networking/cluster/qbec/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "qbec";
+ version = "0.7.5";
+
+ src = fetchFromGitHub {
+ owner = "splunk";
+ repo = "qbec";
+ rev = "v${version}";
+ sha256 = "1q3rbxih4fn0zv8dni5dxb3pq840spplfy08x941najqfgflv9gb";
+ };
+
+ modSha256 = "0s1brqvzm1ghhqb46aqfj0lpnaq76rav0hwwb82ccw8h7052y4jn";
+
+ meta = with lib; {
+ description = "Configure kubernetes objects on multiple clusters using jsonnet https://qbec.io";
+ homepage = https://github.com/splunk/qbec;
+ license = licenses.asl20;
+ maintainers = with maintainers; [ groodt ];
+ };
+}
diff --git a/pkgs/applications/networking/cluster/sonobuoy/default.nix b/pkgs/applications/networking/cluster/sonobuoy/default.nix
index ce6c5424fba..32dbced0a46 100644
--- a/pkgs/applications/networking/cluster/sonobuoy/default.nix
+++ b/pkgs/applications/networking/cluster/sonobuoy/default.nix
@@ -1,11 +1,11 @@
{ lib, buildGoPackage, fetchFromGitHub }:
# SHA of ${version} for the tool's help output
-let rev = "7ad367535a6710802085d41e0dbb53df359b9882";
+let rev = "c9c2a461cd3397909fe6e45ff71836347ef89fd8";
in
buildGoPackage rec {
pname = "sonobuoy";
- version = "0.15.0";
+ version = "0.16.1";
goPackagePath = "github.com/heptio/sonobuoy";
@@ -19,10 +19,10 @@ buildGoPackage rec {
'';
src = fetchFromGitHub {
- sha256 = "0dkmhmr7calk8mkdxfpy3yjzk10ja4gz1jq8pgk3v8rh04f4h1x5";
+ sha256 = "14qc5a7jbr403wjpk6pgpb94i72yx647sg9srz07q6drq650kyfv";
rev = "v${version}";
repo = "sonobuoy";
- owner = "heptio";
+ owner = "vmware-tanzu";
};
meta = with lib; {
@@ -36,8 +36,8 @@ buildGoPackage rec {
accessible and non-destructive manner.
'';
- homepage = "https://github.com/heptio/sonobuoy";
+ homepage = "https://sonobuoy.io";
license = licenses.asl20;
- maintainers = with maintainers; [ carlosdagos ];
+ maintainers = with maintainers; [ carlosdagos saschagrunert ];
};
}
diff --git a/pkgs/applications/networking/cluster/spark/default.nix b/pkgs/applications/networking/cluster/spark/default.nix
index e675d17491a..b8d4b947e32 100644
--- a/pkgs/applications/networking/cluster/spark/default.nix
+++ b/pkgs/applications/networking/cluster/spark/default.nix
@@ -1,26 +1,18 @@
{ stdenv, fetchzip, makeWrapper, jre, pythonPackages, coreutils, hadoop
, RSupport? true, R
, mesosSupport ? true, mesos
-, version
}:
-let
- sha256 = {
- "1.6.3" = "142hw73wf20d846l83ydx0yg7qj5qxywm4h7qrhwnd7lsy2sbnjf";
- "2.4.3" = "1dvvr1q3dz961bl7qigxngrp4ssrbll3g1s6nkra6gyr83pis96c";
- }.${version};
-in
-
with stdenv.lib;
stdenv.mkDerivation rec {
pname = "spark";
- inherit version;
+ version = "2.4.4";
src = fetchzip {
- inherit sha256;
url = "mirror://apache/spark/${pname}-${version}/${pname}-${version}-bin-without-hadoop.tgz";
+ sha256 = "1a9w5k0207fysgpxx6db3a00fs5hdc2ncx99x4ccy2s0v5ndc66g";
};
buildInputs = [ makeWrapper jre pythonPackages.python pythonPackages.numpy ]
diff --git a/pkgs/applications/networking/cluster/terraform-landscape/default.nix b/pkgs/applications/networking/cluster/terraform-landscape/default.nix
index 6973938b60d..32f6680b2f8 100644
--- a/pkgs/applications/networking/cluster/terraform-landscape/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-landscape/default.nix
@@ -11,7 +11,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;
- license = with licenses; apsl20;
+ 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 16056d9185b..6be9a5092ba 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/data.nix
+++ b/pkgs/applications/networking/cluster/terraform-providers/data.nix
@@ -4,27 +4,31 @@
{
owner = "terraform-providers";
repo = "terraform-provider-acme";
- version = "1.3.5";
- sha256 = "0xjxxz3vxq7vk7sv6b5p57z5x92dmrm44v6ksffcg76ngc40nrxk";
+ rev = "v1.5.0";
+ version = "1.5.0";
+ sha256 = "1h53bgflchavnn4laf801d920bsgqqg0ph4slnf7y1fpb0mz5vdv";
};
alicloud =
{
owner = "terraform-providers";
repo = "terraform-provider-alicloud";
- version = "1.54.0";
- sha256 = "01pmhwdnhfsk785ja11hxn5l5fmklnkiv12kv2pw2280cdljfcv4";
+ rev = "v1.60.0";
+ version = "1.60.0";
+ sha256 = "14k96ccjrjiqfrdrj9kd090ms1p15z71qv60gm05bhffviyplmgw";
};
archive =
{
owner = "terraform-providers";
repo = "terraform-provider-archive";
- version = "1.2.2";
- sha256 = "1saprj2r74b63z03n80m3mfj3vhgvlm4gp2hzqzjbdgibxsz4jaw";
+ rev = "v1.3.0";
+ version = "1.3.0";
+ sha256 = "1hwg8ai4bvsmgnl669608lr4v940xnyig1xshps490f47c8hqy6y";
};
arukas =
{
owner = "terraform-providers";
repo = "terraform-provider-arukas";
+ rev = "v1.1.0";
version = "1.1.0";
sha256 = "1akl9fzgm5qv01vz18xjzyqjnlxw699qq4x8vr96j16l1zf10h99";
};
@@ -32,6 +36,7 @@
{
owner = "terraform-providers";
repo = "terraform-provider-atlas";
+ rev = "v0.1.1";
version = "0.1.1";
sha256 = "0k73vv14vnjl5qm33w54s5zzi0mmk1kn2zs3qkfq71aqi9ml7d14";
};
@@ -39,41 +44,47 @@
{
owner = "terraform-providers";
repo = "terraform-provider-aws";
- version = "2.23.0";
- sha256 = "0yscy0qmdl07air0b16i6zd0w8y3z20pk5l53pwm78ssdxn3w6qc";
+ rev = "v2.34.0";
+ version = "2.34.0";
+ sha256 = "1kmy6hn1d3padfnix17ibmrm1339q4li0740dlfgjlxjv179bv34";
};
azuread =
{
owner = "terraform-providers";
repo = "terraform-provider-azuread";
- version = "0.5.1";
- sha256 = "0bjy6wdfzsxchqclgp7c06b49b5h60nips69hcpwd45564iql5fh";
+ rev = "v0.6.0";
+ version = "0.6.0";
+ sha256 = "1s3k2plka1lzfij4vhr30vc549zysa6v8j5mphra7fjxy236v40j";
};
azurerm =
{
owner = "terraform-providers";
repo = "terraform-provider-azurerm";
- version = "1.32.1";
- sha256 = "0ydzibmvz52i62pk0g96rl7vxhff5izrsgdwk6lgc56nw63w2l8g";
+ rev = "v1.36.1";
+ version = "1.36.1";
+ sha256 = "1mnbmbfsnc859j6ahcph80z0v1jl82dnbjqmqg2q0kiappz2g2lm";
};
azurestack =
{
owner = "terraform-providers";
repo = "terraform-provider-azurestack";
- version = "0.8.1";
- sha256 = "1sbmjrqzzn8rf9xhaax2ykyg199sggx80apx0xvd4ab82c3ldyfw";
+ rev = "v0.9.0";
+ version = "0.9.0";
+ sha256 = "1msm7jwzry0vmas3l68h6p0migrsm6d18zpxcncv197m8xbvg324";
};
bigip =
{
owner = "terraform-providers";
repo = "terraform-provider-bigip";
- version = "0.12.3";
- sha256 = "1zlwk7jp5r45b3rwkxsq9mqf4nym3ifx56vhcvyc9a3w25s0ss8p";
+ rev = "v1.0.0";
+ version = "1.0.0";
+ sha256 = "0dz5dfv3glx7898a9bi9vi3g0ghyi96pc45brrj41and5835jvdc";
};
bitbucket =
{
owner = "terraform-providers";
repo = "terraform-provider-bitbucket";
+ rev = "v1.1.0";
version = "1.1.0";
sha256 = "06bjagbgpgfphwym015wl00wx6qf7lsdig0fhpxqaykvlkn3sg49";
};
@@ -81,6 +92,7 @@
{
owner = "terraform-providers";
repo = "terraform-provider-brightbox";
+ rev = "v1.2.0";
version = "1.2.0";
sha256 = "0s1b2k58r2kmjrdqrkw2dlfpby79i81gml9rpa10y372bwq314zd";
};
@@ -88,6 +100,7 @@
{
owner = "terraform-providers";
repo = "terraform-provider-chef";
+ rev = "v0.2.0";
version = "0.2.0";
sha256 = "0ihn4706fflmf0585w22l7arzxsa9biq4cgh8nlhlp5y0zy934ns";
};
@@ -95,6 +108,7 @@
{
owner = "terraform-providers";
repo = "terraform-provider-circonus";
+ rev = "v0.2.0";
version = "0.2.0";
sha256 = "1vcia3p31cgdwjs06k4244bk7ib2qp1f2lhc7hmyhdfi1c8jym45";
};
@@ -102,6 +116,7 @@
{
owner = "terraform-providers";
repo = "terraform-provider-clc";
+ rev = "v0.1.0";
version = "0.1.0";
sha256 = "0gvsjnwk6xkgxai1gxsjf0hsjxbv8d8jg5hq8yd3hjhc6785fgnf";
};
@@ -109,13 +124,15 @@
{
owner = "terraform-providers";
repo = "terraform-provider-cloudflare";
- version = "1.17.1";
- sha256 = "0kmkk5fhgsvjakqrfs7p92dcljn04asxq15af1r9n5csq54q7na3";
+ rev = "v2.0.1";
+ version = "2.0.1";
+ sha256 = "18cxyxgv6x5s1xsd5l460hnl1xdvrvkwb36lhvk3dgziaw2xxr81";
};
cloudscale =
{
owner = "terraform-providers";
repo = "terraform-provider-cloudscale";
+ rev = "v2.0.0";
version = "2.0.0";
sha256 = "145hj4pbi5zrkgamicy3m1n3380fpd2ndd6ym7mwd65d95g39vwb";
};
@@ -123,6 +140,7 @@
{
owner = "terraform-providers";
repo = "terraform-provider-cloudstack";
+ rev = "v0.3.0";
version = "0.3.0";
sha256 = "0zmyww6z3j839ydlmv254hr8gcsixng4lcvmiwkhxb3hj1nw8hcw";
};
@@ -130,6 +148,7 @@
{
owner = "terraform-providers";
repo = "terraform-provider-cobbler";
+ rev = "v1.1.0";
version = "1.1.0";
sha256 = "08ljqibfi6alpvv8f7pzvjl2k4w6br6g6ac755x4xw4ycrr24xw9";
};
@@ -137,27 +156,31 @@
{
owner = "terraform-providers";
repo = "terraform-provider-consul";
- version = "2.5.0";
- sha256 = "1nmldxn4y87fyb308dajjzcyvxrr6ka5nicyw84a8s7pixzbqh6q";
+ rev = "v2.6.0";
+ version = "2.6.0";
+ sha256 = "1c7qpgf2vh4crs69alzwwaicsz29b2y72x4xjmfb9dg5cy7gk1i5";
};
datadog =
{
owner = "terraform-providers";
repo = "terraform-provider-datadog";
- version = "2.1.0";
- sha256 = "0k7apad2r07gw9kf0zzqc8wa2wcmxihi3x8sdssl32qjib20qwv1";
+ rev = "v2.5.0";
+ version = "2.5.0";
+ sha256 = "0l5jix165ghfj72l3mr76d5b5lx5pgr45zimk8lr0fwn79f4bs74";
};
digitalocean =
{
owner = "terraform-providers";
repo = "terraform-provider-digitalocean";
- version = "1.6.0";
- sha256 = "06cxm3qcym8jwp4nl1bzk3p9fbaz26bvddqzn3p8l57c802qqds6";
+ rev = "v1.10.0";
+ version = "1.10.0";
+ sha256 = "1c53g32mk41lvq4ikfj04m89nhzrdk8d6h35aq3z07yyqp6ap2a0";
};
dme =
{
owner = "terraform-providers";
repo = "terraform-provider-dme";
+ rev = "v0.1.0";
version = "0.1.0";
sha256 = "1ipqw1sbx0i9rhxawsysrqxvf10z8ra2y86xwd4iz0f12x9drblv";
};
@@ -165,6 +188,7 @@
{
owner = "terraform-providers";
repo = "terraform-provider-dns";
+ rev = "v2.2.0";
version = "2.2.0";
sha256 = "11xdxj6hfclaq9glbh14nihmrsk220crm9ld8bdv77w0bppmrrch";
};
@@ -172,6 +196,7 @@
{
owner = "terraform-providers";
repo = "terraform-provider-dnsimple";
+ rev = "v0.2.0";
version = "0.2.0";
sha256 = "0jj82fffqaz7gramj5d4avx7vka6w190yz4r9q7628qh8ih2pfhz";
};
@@ -179,13 +204,15 @@
{
owner = "terraform-providers";
repo = "terraform-provider-docker";
- version = "2.1.1";
- sha256 = "0px3xj76ay5ixpmynas49z31xmk4zmpn0917y6a20kr2x2abi9zb";
+ rev = "v2.5.0";
+ version = "2.5.0";
+ sha256 = "1nril7qy1nm1dq19vg6mm0zc0sgkjrm1s39n7p9gxf4s4j78ig1n";
};
dyn =
{
owner = "terraform-providers";
repo = "terraform-provider-dyn";
+ rev = "v1.2.0";
version = "1.2.0";
sha256 = "1a3kxmbib2y0nl7gnxknbhsflj5kfknxnm3gjxxrb2h5d2kvqy48";
};
@@ -193,6 +220,7 @@
{
owner = "terraform-providers";
repo = "terraform-provider-external";
+ rev = "v1.2.0";
version = "1.2.0";
sha256 = "1kx28bffhd1pg3m0cbldclc8l9zic16mqrk7gybcls9vyds5gbvc";
};
@@ -200,48 +228,55 @@
{
owner = "terraform-providers";
repo = "terraform-provider-fastly";
- version = "0.9.0";
- sha256 = "0g3rgi6s9hyb6vzl682n8zqz5virdxvxh04v88n9iy5r7hwrxxzg";
+ rev = "v0.11.0";
+ version = "0.11.0";
+ sha256 = "0wq8l1lkfpv5nfd04dsjaa9wv09373i6wwnapifx1wncjyhs4jd4";
};
flexibleengine =
{
owner = "terraform-providers";
repo = "terraform-provider-flexibleengine";
- version = "1.6.0";
- sha256 = "0vz68nhpy93zsdssxzr41flrwhjqh7wcjrc4nklg6kmr99n6jcc6";
+ rev = "v1.9.0";
+ version = "1.9.0";
+ sha256 = "1y66xy5yqdjdrh3zkw1q7ml5b2rsyy4ayc4m026c4mmh0x1vfk9y";
};
github =
{
owner = "terraform-providers";
repo = "terraform-provider-github";
- version = "2.2.0";
- sha256 = "1h44v7428z3v3hv6ywi3n0yhnvgx9cr6vgqb1n2w1qf7k2f0jkzx";
+ rev = "v2.2.1";
+ version = "2.2.1";
+ sha256 = "1dg5jgd3cdz98wfd71l58wsp949mvs2lrcqh1amgql0s90pwjmvg";
};
gitlab =
{
owner = "terraform-providers";
repo = "terraform-provider-gitlab";
- version = "2.2.0";
- sha256 = "0iz5ggjkcip86cz2zmsryad34hly542grwzlm5rvpcmfw5csjadw";
+ rev = "v2.3.0";
+ version = "2.3.0";
+ sha256 = "012pbgfdmwyq8y8ddrhyf14jc6s7v24f1w3mrpi6mp4glqc5yfqx";
};
google =
{
owner = "terraform-providers";
repo = "terraform-provider-google";
- version = "2.12.0";
- sha256 = "15fdpmdikm77hlfksdbcblysb82sd51vw4ninx60hzgddqp6ll4m";
+ rev = "v2.19.0";
+ version = "2.19.0";
+ sha256 = "00pqkysic3x8iygcxb232dwbpmy5ldf7fdfi6ldiv3g6gbvlcaf7";
};
google-beta =
{
owner = "terraform-providers";
repo = "terraform-provider-google-beta";
- version = "2.12.0";
- sha256 = "11aky7jvm7i39pnj3ypy42d9yk9akqb3wjb03hyllzfddwhvay5q";
+ rev = "v2.19.0";
+ version = "2.19.0";
+ sha256 = "03im9h7r2vyx4y9qnc3l0hsvcqy7rai5dlkmj1za3npm98vpx2d7";
};
grafana =
{
owner = "terraform-providers";
repo = "terraform-provider-grafana";
+ rev = "v1.5.0";
version = "1.5.0";
sha256 = "0zy3bqgpxymp2zygaxzllk1ysdankwxa1sy1djfgr4fs2nlggkwi";
};
@@ -249,13 +284,15 @@
{
owner = "terraform-providers";
repo = "terraform-provider-hcloud";
- version = "1.12.0";
- sha256 = "1r61s7chq636fcjv67g0vjlc35xx0ycy58hg6b5i5rdc9737v7hp";
+ rev = "v1.14.0";
+ version = "1.14.0";
+ sha256 = "13zxrjx4im25g7m45z95d3py85nzs2k8r9grilxshr6x95bxk2f0";
};
hedvig =
{
owner = "terraform-providers";
repo = "terraform-provider-hedvig";
+ rev = "v1.0.4";
version = "1.0.4";
sha256 = "0y6brzznxp8khdfbnpmnbjqf140411z0pvnp88p8mj2kmbk7kkjd";
};
@@ -263,20 +300,23 @@
{
owner = "terraform-providers";
repo = "terraform-provider-helm";
- version = "0.10.2";
- sha256 = "1xp8dx6ncskmfa9bjd54434f4a7pnjz5r3yvnh1hmv3i5ykfxzdn";
+ rev = "v0.10.4";
+ version = "0.10.4";
+ sha256 = "0xl0wgh1j6yhymadqvlj21qddxfzaxk3d5wpzskfmhfk732795rc";
};
heroku =
{
owner = "terraform-providers";
repo = "terraform-provider-heroku";
- version = "2.1.2";
- sha256 = "0n8id5rw4hzsiic9yv4rzm709npagv9sfp6dd1ax6np5kai78b87";
+ rev = "v2.2.1";
+ version = "2.2.1";
+ sha256 = "145kfm4asca0ksprb076mjdhs5ahrlrad8cqz8spxra5fa3j46sq";
};
http =
{
owner = "terraform-providers";
repo = "terraform-provider-http";
+ rev = "v1.1.1";
version = "1.1.1";
sha256 = "0ah4wi9gm5m7z0wyy6vn3baz2iw2sq7ah7q0lb9srwr887aai3x0";
};
@@ -284,13 +324,15 @@
{
owner = "terraform-providers";
repo = "terraform-provider-huaweicloud";
- version = "1.7.0";
- sha256 = "1yhyyh33hvzs74pryb383p1w0c0d4vn23pnm6snxi1cw49wgiiyf";
+ rev = "v1.9.0";
+ version = "1.9.0";
+ sha256 = "06blhsbv5pxlb1m07qanrq5qmbai33dlk89ghzscrqwnvv1nnszr";
};
icinga2 =
{
owner = "terraform-providers";
repo = "terraform-provider-icinga2";
+ rev = "v0.2.0";
version = "0.2.0";
sha256 = "02ladn2w75k35vn8llj3zh9hbpnnnvpm47c9f29zshfs04acwbq0";
};
@@ -298,6 +340,7 @@
{
owner = "terraform-providers";
repo = "terraform-provider-ignition";
+ rev = "v1.1.0";
version = "1.1.0";
sha256 = "0vpjbb70wnlrvw7z2zc92fbisgjk49ivdmv10ahyqlgvc23js5va";
};
@@ -305,6 +348,7 @@
{
owner = "terraform-providers";
repo = "terraform-provider-influxdb";
+ rev = "v1.3.0";
version = "1.3.0";
sha256 = "19af40g8hgz2rdz6523v0fs71ww7qdlf2mh5j9vb7pfzriqwa5k9";
};
@@ -312,13 +356,15 @@
{
owner = "terraform-providers";
repo = "terraform-provider-kubernetes";
- version = "1.8.1";
- sha256 = "0jcc3i10x0qz7sj8l5yv98jc2g32a6yhdpc45sq33wmhcvp1fsn4";
+ rev = "v1.9.0";
+ version = "1.9.0";
+ sha256 = "1ai8w853k4pgr43g9dwdsimw0g0c6vg6vg2f20d9ch7bx8ii4nhf";
};
librato =
{
owner = "terraform-providers";
repo = "terraform-provider-librato";
+ rev = "v0.1.0";
version = "0.1.0";
sha256 = "0bxadwj5s7bvc4vlymn3w6qckf14hz82r7q98w2nh55sqr52d923";
};
@@ -326,6 +372,7 @@
{
owner = "terraform-providers";
repo = "terraform-provider-linode";
+ rev = "v1.8.0";
version = "1.8.0";
sha256 = "1jgh2ij58a5mr6ns604cfpvfvr19qr0q51j57gvchz53iv683m9q";
};
@@ -333,13 +380,15 @@
{
owner = "terraform-providers";
repo = "terraform-provider-local";
- version = "1.3.0";
- sha256 = "1z6b52vdq7wzzipldys28z45glwgj9k15ighjix1dy78mzi0p99n";
+ rev = "v1.4.0";
+ version = "1.4.0";
+ sha256 = "1k1kbdn99ypn1pi6vqbs1l9a8vvf4vs32wl8waa16i26514sz1wk";
};
logentries =
{
owner = "terraform-providers";
repo = "terraform-provider-logentries";
+ rev = "v1.0.0";
version = "1.0.0";
sha256 = "04xprkb9zwdjyzmsdf10bgmn8sa8q7jw0izz8lw0cc9hag97qgbq";
};
@@ -347,6 +396,7 @@
{
owner = "terraform-providers";
repo = "terraform-provider-logicmonitor";
+ rev = "v1.2.1";
version = "1.2.1";
sha256 = "1fcv5g92l6xr4x69h9rg48zazjr99wrz9mkmr122fyq9s7kdd98y";
};
@@ -354,20 +404,23 @@
{
owner = "terraform-providers";
repo = "terraform-provider-mailgun";
- version = "0.1.0";
- sha256 = "1hjhjfxqbr43wa248c6hc91lx5b2gdw4vl92l2i6aqp17rbc0wfj";
+ rev = "v0.4.1";
+ version = "0.4.1";
+ sha256 = "1l76pg4hmww9zg2n4rkhm5dwjh42fxri6d41ih1bf670krkxwsmz";
};
mysql =
{
owner = "terraform-providers";
repo = "terraform-provider-mysql";
- version = "1.7.0";
- sha256 = "19l1ihp5jlaahm8zncjlrnfw8d8gcpnq3z6pn421j1x0d5v5vw9b";
+ rev = "v1.8.0";
+ version = "1.8.0";
+ sha256 = "1llcg2mp6jbj386liinly62pgy934v0c2g5z976n0xwfdiybyhwx";
};
netlify =
{
owner = "terraform-providers";
repo = "terraform-provider-netlify";
+ rev = "v0.3.0";
version = "0.3.0";
sha256 = "0mmbli6d3fbpyvvdfsg32f1w83g8ga3x21b36rgmx3mn156r7yij";
};
@@ -375,27 +428,31 @@
{
owner = "terraform-providers";
repo = "terraform-provider-newrelic";
- version = "1.5.1";
- sha256 = "1xrwh9m1sig4hd2vvb7apy2gh8rz15wdrajggzmmpc1z1rlhf90p";
+ rev = "v1.5.2";
+ version = "1.5.2";
+ sha256 = "1q2vlpzxz04xhmf2wi5pc501454qwzh59kdhfhs8yjg1d1489jng";
};
nomad =
{
owner = "terraform-providers";
repo = "terraform-provider-nomad";
- version = "1.4.1";
- sha256 = "1v4wwinnb2qc71jgil4607kgdccjivssabqgb5l3yk8pwfidgdnr";
+ rev = "v1.4.2";
+ version = "1.4.2";
+ sha256 = "0h0snkzqdi4g5lp78f5pq98x6556ldwgkg9p9jkmrg04y7928w5v";
};
ns1 =
{
owner = "terraform-providers";
repo = "terraform-provider-ns1";
- version = "1.5.0";
- sha256 = "1m6f1hsx2gcb5b50sm8cj04hkmn71xlxji8qwlswasz2sg1sllrx";
+ rev = "v1.6.0";
+ version = "1.6.0";
+ sha256 = "1v075wc48pq9kp9rp4kanlfshnxgan9h914nqalq90xgzyl2gf3v";
};
nsxt =
{
owner = "terraform-providers";
repo = "terraform-provider-nsxt";
+ rev = "v1.1.1";
version = "1.1.1";
sha256 = "19bbycify25bshpyq65qjxnl72b6wmwwwdb7hxl94hhbgx2c9z29";
};
@@ -403,6 +460,7 @@
{
owner = "terraform-providers";
repo = "terraform-provider-null";
+ rev = "v2.1.2";
version = "2.1.2";
sha256 = "0di1hxmd3s80sz8hl5q2i425by8fbk15f0r4jmnm6vra0cq89jw2";
};
@@ -410,20 +468,23 @@
{
owner = "terraform-providers";
repo = "terraform-provider-nutanix";
- version = "1.0.1";
- sha256 = "1g7p6qg32g75x8fgspgxcdsa086mz3yabdgv1k68rykhw3zbri5d";
+ rev = "v1.0.2";
+ version = "1.0.2";
+ sha256 = "17sgsxsh8minirks08c6gz52cf7ndn220sx4xzi6bq64yi6qw2yc";
};
oci =
{
owner = "terraform-providers";
repo = "terraform-provider-oci";
- version = "3.37.0-rc1";
- sha256 = "0ahqnh9qzixp434qn2ckj8p32kb9x26l1xz8yr84h6sqfrn58bcv";
+ rev = "v3.50.0-rc1";
+ version = "3.50.0-rc1";
+ sha256 = "0nzz62zyx5xf2qlvjcbsqnafdhmq194yhyipcab1n2ckji8zb03z";
};
oneandone =
{
owner = "terraform-providers";
repo = "terraform-provider-oneandone";
+ rev = "v1.3.0";
version = "1.3.0";
sha256 = "0c412nqg3k17124i51nn3ffra6gcll904h37h7hyvz97cdblcncn";
};
@@ -431,6 +492,7 @@
{
owner = "terraform-providers";
repo = "terraform-provider-opc";
+ rev = "v1.3.7";
version = "1.3.7";
sha256 = "01g09w8mqfp1d8phplsdj0vz63q5bgq9fqwy2kp4vrnwb70dq52w";
};
@@ -438,34 +500,39 @@
{
owner = "terraform-providers";
repo = "terraform-provider-openstack";
- version = "1.21.1";
- sha256 = "0nvhn2bnk11sz4i98yw7rpxi8b3c2y04qq37ybvqx2jyi3n9kj30";
+ rev = "v1.24.0";
+ version = "1.24.0";
+ sha256 = "1w82ix6l6ad7q0zl00hys8c4gm27nnk12wm2n8i3prwpjnrar70m";
};
opentelekomcloud =
{
owner = "terraform-providers";
repo = "terraform-provider-opentelekomcloud";
- version = "1.11.0";
- sha256 = "175j2bbw3bdbjq1b7b1kwsr8iay9aafz165d0brfpb8gf096y7xa";
+ rev = "v1.13.1";
+ version = "1.13.1";
+ sha256 = "1mxbfskxf9zwm55r3s6fhk634pnyk0sx5pgwk3kmw4sgjv88i1ny";
};
opsgenie =
{
owner = "terraform-providers";
repo = "terraform-provider-opsgenie";
- version = "0.1.0";
- sha256 = "0zs0cl6jl4rijcs6vv5k8k5pyf0zs52dlgqcnb1gzslh8sg5pdkm";
+ rev = "v0.2.4";
+ version = "0.2.4";
+ sha256 = "1kgvbx39v6f3hszwrqjsaq3wvwzkxf4gwwfix2m6bprfr5q5vn0d";
};
oraclepaas =
{
owner = "terraform-providers";
repo = "terraform-provider-oraclepaas";
- version = "1.5.2";
- sha256 = "0m886wfg5ski8s1zr7g1h1m6q5ai08jk35ymipxpb6ipx781qvvk";
+ rev = "v1.5.3";
+ version = "1.5.3";
+ sha256 = "0xb03b5jgm06rgrllib6zj1nkh54zv2mqjnyfflgnazpf4c1ia15";
};
ovh =
{
owner = "terraform-providers";
repo = "terraform-provider-ovh";
+ rev = "v0.5.0";
version = "0.5.0";
sha256 = "07n8ismxbv0gngh4kibqhr4ndqkrg6gxbpj3zl764rrwp54gwgbw";
};
@@ -473,41 +540,47 @@
{
owner = "terraform-providers";
repo = "terraform-provider-packet";
- version = "2.3.0";
- sha256 = "1v2758wjhrn7rhwdx658w3sf1q5lp4cawl6llbv4p16c5fyzwwc2";
+ rev = "v2.6.1";
+ version = "2.6.1";
+ sha256 = "198lkw5b4xfyf82yzym66fna7j0wl3hzvkdr9b9q7f0nffx47xri";
};
pagerduty =
{
owner = "terraform-providers";
repo = "terraform-provider-pagerduty";
- version = "1.3.1";
- sha256 = "1x29ya0xcjj2b3x2q2q7iyqric8vswf18a5bwhwv2017c1g4n299";
+ rev = "v1.4.1";
+ version = "1.4.1";
+ sha256 = "0dmafnlziyczad907isjqzsn1fyjzc8pdigp3m6114bbnca0ry5k";
};
panos =
{
owner = "terraform-providers";
repo = "terraform-provider-panos";
- version = "1.5.2";
- sha256 = "0sycgr4k4dlhxj5klmgg2xcw3xha06332ij8cfzz4xvgdq0xky3j";
+ rev = "v1.6.0";
+ version = "1.6.0";
+ sha256 = "0qszdyrj84c8i195y45cnanzmkn8ypi1gi5a03pf3gsf2fdcj9gq";
};
postgresql =
{
owner = "terraform-providers";
repo = "terraform-provider-postgresql";
- version = "1.1.0";
- sha256 = "1dxspqajfy8dmplasazi4s34f47n1qz7qg2dr9ypdvd3jp63072w";
+ rev = "v1.3.0";
+ version = "1.3.0";
+ sha256 = "14ma5lm6ng52dfl8bl4rmpy8ylnkbvnbskvkr6r5sn28x51p601y";
};
powerdns =
{
owner = "terraform-providers";
repo = "terraform-provider-powerdns";
- version = "1.0.0";
- sha256 = "1qh4z69b0sqxwjjgc8xis165gdszav9yc85ba6pgyl3wbymkld30";
+ rev = "v1.2.0";
+ version = "1.2.0";
+ sha256 = "1108hq4z4is305hnbkn95gv0f5lx5l27wvxvq0g03fcdqdimkrfn";
};
profitbricks =
{
owner = "terraform-providers";
repo = "terraform-provider-profitbricks";
+ rev = "v1.4.4";
version = "1.4.4";
sha256 = "0pzcl3pdhaykihvv1v38zrv607mydchvkzrzhwcakgmdkp3vq54i";
};
@@ -515,6 +588,7 @@
{
owner = "terraform-providers";
repo = "terraform-provider-rabbitmq";
+ rev = "v1.1.0";
version = "1.1.0";
sha256 = "0xihc44923kx8c3v6wrvczzbhmbjkhy7dhgx3sy5sqhmm22y0gys";
};
@@ -522,6 +596,7 @@
{
owner = "terraform-providers";
repo = "terraform-provider-rancher";
+ rev = "v1.4.0";
version = "1.4.0";
sha256 = "106arszmdjmgrz4iv01bbf72jarn7zjqvmc43b6n1s3lzd7jnfpc";
};
@@ -529,13 +604,15 @@
{
owner = "terraform-providers";
repo = "terraform-provider-random";
- version = "2.2.0";
- sha256 = "0vg33jbvyxvg4dwcwjb2p57jjkq7qj50d356r4a1f2ysl2axwwjw";
+ rev = "v2.2.1";
+ version = "2.2.1";
+ sha256 = "1qklsxj443vsj61lwl7qf7xwgnllwcvb2yk6s0kn9g3iq63pcv30";
};
rightscale =
{
owner = "terraform-providers";
repo = "terraform-provider-rightscale";
+ rev = "v1.3.1";
version = "1.3.1";
sha256 = "0abwxaghrxpahpsk6kd02fjh0rhck4xsdrzcpv629yh8ip9rzcaj";
};
@@ -543,6 +620,7 @@
{
owner = "terraform-providers";
repo = "terraform-provider-rundeck";
+ rev = "v0.4.0";
version = "0.4.0";
sha256 = "1x131djsny8w84yf7w2il33wlc3ysy3k399dziii2lmq4h8sgrpr";
};
@@ -550,6 +628,7 @@
{
owner = "terraform-providers";
repo = "terraform-provider-runscope";
+ rev = "v0.6.0";
version = "0.6.0";
sha256 = "1fsph2cnyvzdwa5hwdjabfk4azmc3x8a7afpwpawxfdvqhgpr595";
};
@@ -557,20 +636,23 @@
{
owner = "terraform-providers";
repo = "terraform-provider-scaleway";
- version = "1.10.0";
- sha256 = "0sbcvcd413f53b25piymmh4rfmlmqsxdscpar8gf2dx6mrsacgf0";
+ rev = "v1.12.0";
+ version = "1.12.0";
+ sha256 = "0044fq5jkdx2ryc2bxqajkrngs6z81kd2narg4zxvfn0r1bfswvc";
};
selectel =
{
owner = "terraform-providers";
repo = "terraform-provider-selectel";
- version = "2.3.0";
- sha256 = "0n0nqlajcx44zxbc2k58lv3jy2y6p9zqkby2vy5a2856kcksm7pf";
+ rev = "v3.0.0";
+ version = "3.0.0";
+ sha256 = "0fr97j85inaqvdqmlfk3xcq73zvncn001nsd03pp2ws30qqa8p7r";
};
skytap =
{
owner = "terraform-providers";
repo = "terraform-provider-skytap";
+ rev = "v0.11.1";
version = "0.11.1";
sha256 = "1mlv6jp6lp47chcnsmx8dzy01bxpb9jx1wl122lxd88app9nxq1k";
};
@@ -578,6 +660,7 @@
{
owner = "terraform-providers";
repo = "terraform-provider-softlayer";
+ rev = "v0.0.1";
version = "0.0.1";
sha256 = "1xcg5zm2n1pc3l7ng94k589r7ykv6fxsmr5qn9xmmpdf912rdnfq";
};
@@ -585,13 +668,15 @@
{
owner = "terraform-providers";
repo = "terraform-provider-spotinst";
- version = "1.13.3";
- sha256 = "0s75xlw8y3rz1ik11dnh3dzkk1jfklvq3wsf2fam0789z2j1zr1m";
+ rev = "v1.13.4";
+ version = "1.13.4";
+ sha256 = "063lhm065y6qh9b2k11qjnqyfg5zrx6wa3bqrm7d1dqcha1i6d9f";
};
statuscake =
{
owner = "terraform-providers";
repo = "terraform-provider-statuscake";
+ rev = "v1.0.0";
version = "1.0.0";
sha256 = "1x295va6c72465cxps0kx3rrb7s9aip2cniy6icsg1b2yrsb9b26";
};
@@ -599,6 +684,7 @@
{
owner = "terraform-providers";
repo = "terraform-provider-telefonicaopencloud";
+ rev = "v1.0.0";
version = "1.0.0";
sha256 = "1761wkjz3d2458xl7855lxklyxgyk05fddh92rp6975y0ca6xa5m";
};
@@ -606,6 +692,7 @@
{
owner = "terraform-providers";
repo = "terraform-provider-template";
+ rev = "v2.1.2";
version = "2.1.2";
sha256 = "18w1mmma81m9j7yf6q500w8v9ss28w6sw2ynssl99pyw2gwmd04q";
};
@@ -613,13 +700,15 @@
{
owner = "terraform-providers";
repo = "terraform-provider-tencentcloud";
- version = "1.15.0";
- sha256 = "1ics91fxsl1z1wqd961wdn2s22ck25yphp341qlbs8ln2dcwk8r7";
+ rev = "v1.22.0";
+ version = "1.22.0";
+ sha256 = "0lamj77n9b5m80201wim0zcjgdcbihcaq27z49himh2qi5j8lxiz";
};
terraform =
{
owner = "terraform-providers";
repo = "terraform-provider-terraform";
+ rev = "v1.0.2";
version = "1.0.2";
sha256 = "1aj6g6l68n9kqmxfjlkwwxnac7fhha6wrmvsw4yylf0qyssww75v";
};
@@ -627,34 +716,39 @@
{
owner = "terraform-providers";
repo = "terraform-provider-tfe";
- version = "0.10.1";
- sha256 = "09hrdschgydnziq1sv6ql7gc4qwx8j4dnmx4fdw8452qpszk17n2";
+ rev = "v0.11.1";
+ version = "0.11.1";
+ sha256 = "0iagddaivpd7cxgf8ha2pk0m66gi4a804s86fsxla0j1knmmyra0";
};
tls =
{
owner = "terraform-providers";
repo = "terraform-provider-tls";
- version = "2.0.1";
- sha256 = "08fh4k5fvkijl2ds8mxdc5fxlwhs11y5s48vvxdskklvkjhygzc7";
+ rev = "v2.1.1";
+ version = "2.1.1";
+ sha256 = "1qsx540pjcq4ra034q2dwnw5nmzab5h1c3vm20ppg5dkhhyiizq8";
};
triton =
{
owner = "terraform-providers";
repo = "terraform-provider-triton";
- version = "0.5.1";
- sha256 = "1bn5x6nmhfkrzpxhyfclls85l9qqffvzx1xsgcb3368lhwzarn2f";
+ rev = "v0.6.0";
+ version = "0.6.0";
+ sha256 = "10z032fa64sd8d6r4v2f4m7gp93v8wb2zk2r13fflzg5rfk5740z";
};
ucloud =
{
owner = "terraform-providers";
repo = "terraform-provider-ucloud";
- version = "1.11.1";
- sha256 = "1la5kapdwpd2f6x00yc9j25rl8qkrndgqpzp2jp6mcbj5zif82ns";
+ rev = "v1.14.1";
+ version = "1.14.1";
+ sha256 = "04vi87q2fhy907l7rwsbq5p6l9vm6avm1hbf9qwddkbxx2kjjf64";
};
ultradns =
{
owner = "terraform-providers";
repo = "terraform-provider-ultradns";
+ rev = "v0.1.0";
version = "0.1.0";
sha256 = "0bq2y6bxdax7qnmq6vxh8pz9sqy1r3m05dv7q5dbv2xvba1b88hj";
};
@@ -662,41 +756,71 @@
{
owner = "terraform-providers";
repo = "terraform-provider-vault";
- version = "2.2.0";
- sha256 = "0k9frx29pjrrx67cwzsrnj0x90ff5k99l5yzfgb58sajkz1j8nln";
+ rev = "v2.5.0";
+ version = "2.5.0";
+ sha256 = "0h3q2zifjgm05kvdans88dl8wx9hr21c1s64fmfs4an07gkg8947";
};
vcd =
{
owner = "terraform-providers";
repo = "terraform-provider-vcd";
- version = "2.4.0";
- sha256 = "020wmdl5cbma9r7sv3bx6v8b59w5nwkzgwj4xm7a2s6kn8jygr2x";
+ rev = "v2.5.0";
+ version = "2.5.0";
+ sha256 = "0h78ij9rkx43i9kdcfy7waa6xyn2j40zgm6im3zp0yswy6vjlcyq";
};
vsphere =
{
owner = "terraform-providers";
repo = "terraform-provider-vsphere";
- version = "1.12.0";
- sha256 = "0g3pnk2b4dmz5bkr7xjpp45dwy767k6a02rjva38xls185qs7i7c";
+ rev = "v1.13.0";
+ version = "1.13.0";
+ sha256 = "10gl042l5mlmklhjjknwln1qcwl65xz8sbg1acyv8xkb6nsaxcf1";
};
yandex =
{
owner = "terraform-providers";
repo = "terraform-provider-yandex";
- version = "0.9.0";
- sha256 = "0x3l0pbpdsm43jsx42xzc46r9j40l7szkcf851q16wsxf70lchqr";
+ rev = "v0.23.0";
+ version = "0.23.0";
+ sha256 = "0vv8lp834q8i7fam2s8pvs7slfwlf8m4g080i9cij5z2lgipja32";
+ };
+ segment =
+ {
+ 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";
};
+ wavefront =
+ {
+ owner = "spaceapegames";
+ repo = "terraform-provider-wavefront";
+ rev = "v2.1.1";
+ version = "2.1.1";
+ sha256 = "0cbs74kd820i8f13a9jfbwh2y5zmmx3c2mp07qy7m0xx3m78jksn";
+ };
nixos =
{
owner = "tweag";
repo = "terraform-provider-nixos";
+ rev = "v0.0.1";
version = "0.0.1";
sha256 = "00vz6qjq1pk39iqg4356b8g3c6slla9jifkv2knk46gc9q93q0lf";
};
@@ -704,14 +828,8 @@
{
owner = "tweag";
repo = "terraform-provider-secret";
- version = "1.0.0";
- sha256 = "03q78d0g3b4j4213qjlacj1adh7hjwcqcqrwm8c2r2k5w9kb25k0";
- };
- segment =
- {
- owner = "ajbosco";
- repo = "terraform-provider-segment";
- version = "0.2.0";
- sha256 = "0ic5b9djhnb1bs2bz3zdprgy3r55dng09xgc4d9l9fyp85g2amaz";
+ rev = "v1.1.0";
+ version = "1.1.0";
+ sha256 = "09gv0fpsrxzgna0xrhrdk8d4va9s0gvdbz596r306qxb4mip4w3r";
};
}
diff --git a/pkgs/applications/networking/cluster/terraform-providers/default.nix b/pkgs/applications/networking/cluster/terraform-providers/default.nix
index fc6b7131385..6298c25ba25 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-providers/default.nix
@@ -2,21 +2,21 @@
, buildGoPackage
, fetchFromGitHub
, callPackage
+, buildGo112Module
}:
let
list = import ./data.nix;
toDrv = data:
buildGoPackage rec {
- inherit (data) owner repo version sha256;
+ inherit (data) owner repo rev version sha256;
name = "${repo}-${version}";
goPackagePath = "github.com/${owner}/${repo}";
subPackages = [ "." ];
src = fetchFromGitHub {
- inherit owner repo sha256;
- rev = "v${version}";
+ inherit owner repo rev sha256;
};
-
+
# Terraform allow checking the provider versions, but this breaks
# if the versions are not provided via file paths.
@@ -24,7 +24,12 @@ let
};
in
{
- elasticsearch = callPackage ./elasticsearch {};
+ 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 {};
diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.txt b/pkgs/applications/networking/cluster/terraform-providers/providers.txt
index 286e3d6efe0..bdde6600678 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/providers.txt
+++ b/pkgs/applications/networking/cluster/terraform-providers/providers.txt
@@ -9,14 +9,10 @@
# include all terraform-providers
terraform-providers terraform-provider- terraform-provider-\\(azure-classic\\|scaffolding\\)
-# include terraform-provider-matchbox
-poseidon/terraform-provider-matchbox
-
-# include terraform-provider-nixos
-tweag/terraform-provider-nixos
-
-# include terraform-provider-secret
-tweag/terraform-provider-secret
-
-# include terraform-provider-segment
+# 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 2009d474db7..893a6b1c7d7 100755
--- a/pkgs/applications/networking/cluster/terraform-providers/update-all
+++ b/pkgs/applications/networking/cluster/terraform-providers/update-all
@@ -58,12 +58,14 @@ prefetch_github() {
echo_entry() {
local owner=$1
local repo=$2
- local version=${3:1}
+ local rev=$3
+ local version=$(echo $3 | sed 's/^v//')
local sha256=$4
cat < libpulseaudio != null;
let
inherit (stdenv.lib) concatStringsSep makeBinPath optional;
- version = "3.0.287250.0828";
+ version = "3.0.317369.1110";
srcs = {
x86_64-linux = fetchurl {
url = "https://zoom.us/client/${version}/zoom_x86_64.tar.xz";
- sha256 = "0k4h43wydbcyx7b7gwxkmvbph8qc6kjpcypd7vwz8rph1l7kl1y1";
+ sha256 = "0r4wp9qb1739xwr24kglc4sj8qaxwr4nh5p1igi3x6f1f8gczia7";
};
};
diff --git a/pkgs/applications/networking/instant-messengers/zulip/default.nix b/pkgs/applications/networking/instant-messengers/zulip/default.nix
new file mode 100644
index 00000000000..33392af766c
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/zulip/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, fetchurl
+, appimageTools
+}:
+
+let
+ pname = "zulip";
+ version = "4.0.0";
+ name = "${pname}-${version}";
+
+ src = fetchurl {
+ url = "https://github.com/zulip/zulip-desktop/releases/download/v${version}/Zulip-${version}-x86_64.AppImage";
+ sha256 = "1pni02mb5bvwx3k45vd6ga269ghdl633gjklyslai24rrhp16h9z";
+ name="${pname}-${version}.AppImage";
+ };
+
+ appimageContents = appimageTools.extractType2 {
+ inherit name src;
+ };
+
+in appimageTools.wrapType2 {
+ inherit name src;
+
+ extraInstallCommands = ''
+ mv $out/bin/${name} $out/bin/${pname}
+ install -m 444 -D ${appimageContents}/zulip.desktop $out/share/applications/zulip.desktop
+ install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/512x512/apps/zulip.png \
+ $out/share/icons/hicolor/512x512/apps/zulip.png
+ substituteInPlace $out/share/applications/zulip.desktop \
+ --replace 'Exec=AppRun' 'Exec=${pname}'
+ '';
+
+ meta = with lib; {
+ description = "Desktop client for Zulip Chat";
+ homepage = https://zulipchat.com;
+ license = licenses.asl20;
+ maintainers = with maintainers; [ jonafato ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/pkgs/applications/networking/ipfs-cluster/default.nix b/pkgs/applications/networking/ipfs-cluster/default.nix
index 426619908d6..76cc393f26a 100644
--- a/pkgs/applications/networking/ipfs-cluster/default.nix
+++ b/pkgs/applications/networking/ipfs-cluster/default.nix
@@ -1,35 +1,19 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, fetchgx, gx-go }:
+{ stdenv, buildGoModule, fetchFromGitHub, fetchgx, gx-go }:
-buildGoPackage rec {
+buildGoModule rec {
pname = "ipfs-cluster";
- version = "0.9.0";
+ version = "0.11.0";
rev = "v${version}";
- goPackagePath = "github.com/ipfs/ipfs-cluster";
-
- extraSrcPaths = [
- (fetchgx {
- inherit src;name = "${pname}-${version}";
- sha256 = "1k7xcirvi07p5g9gr9jcx5h39wk7jxfsyjrn5yraa8xdqhn6b6nx";
- })
- ];
+ modSha256 = "03bqwg9nqh7w6j887gzxr2mcn14jc8f07z896b3swg5wzaz1i6hs";
src = fetchFromGitHub {
owner = "ipfs";
repo = "ipfs-cluster";
inherit rev;
- sha256 = "1bxwcp0355f1ykjcidbxv218zp9d20nma7lnpn9xcjqc8vaq03kn";
+ sha256 = "0q5lanm2zdwwhdwv05fssb34y4y4dha3dq7x1iaabbf70lpqv6yx";
};
- nativeBuildInputs = [ gx-go ];
-
- preBuild = ''
- # fetchgx stores packages by their ipfs hash
- # this will rewrite github.com/ imports to gx/ipfs/
- cd go/src/${goPackagePath}
- gx-go rewrite
- '';
-
meta = with stdenv.lib; {
description = "Allocate, replicate, and track Pins across a cluster of IPFS daemons";
homepage = https://cluster.ipfs.io/;
diff --git a/pkgs/applications/networking/ipfs/default.nix b/pkgs/applications/networking/ipfs/default.nix
index 54943533b85..db325cf1387 100644
--- a/pkgs/applications/networking/ipfs/default.nix
+++ b/pkgs/applications/networking/ipfs/default.nix
@@ -2,19 +2,17 @@
buildGoModule rec {
pname = "ipfs";
- version = "0.4.21";
+ version = "0.4.22";
rev = "v${version}";
- goPackagePath = "github.com/ipfs/go-ipfs";
-
src = fetchFromGitHub {
owner = "ipfs";
repo = "go-ipfs";
inherit rev;
- sha256 = "0jlj89vjy4nw3x3j45r16y8bph5ss5lp907pjgqvad0naxbf99b0";
+ sha256 = "1drwkam2m1qdny51l7ja9vd33jffy8w0z0wbp28ajx4glp0kyra2";
};
- modSha256 = "0d9rq0hig9jwv9jfajfyj2111arikqzdnyhf5aqkwahcblpx54iy";
+ modSha256 = "0jbzkifn88myk2vpd390clyl835978vpcfz912y8cnl26s6q677n";
meta = with stdenv.lib; {
description = "A global, versioned, peer-to-peer filesystem";
diff --git a/pkgs/applications/networking/irc/glowing-bear/default.nix b/pkgs/applications/networking/irc/glowing-bear/default.nix
index 8bdb23d50dd..2d12386bafa 100644
--- a/pkgs/applications/networking/irc/glowing-bear/default.nix
+++ b/pkgs/applications/networking/irc/glowing-bear/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "glowing-bear";
- version = "0.7.1";
+ version = "0.7.2";
src = fetchFromGitHub {
rev = version;
owner = "glowing-bear";
repo = "glowing-bear";
- sha256 = "0gwrf67l3i3nl7zy1miljz6f3vv6zzc3g9as06by548f21cizzjb";
+ sha256 = "14a3fqsmi28g7j3lzk4l4m47p2iml1aaf3514wazn2clw48lnqhw";
};
installPhase = ''
diff --git a/pkgs/applications/networking/irc/hexchat/default.nix b/pkgs/applications/networking/irc/hexchat/default.nix
index 331be19abc4..f537627f976 100644
--- a/pkgs/applications/networking/irc/hexchat/default.nix
+++ b/pkgs/applications/networking/irc/hexchat/default.nix
@@ -1,7 +1,7 @@
{ stdenv, fetchFromGitHub, fetchpatch, pkgconfig, gtk2, lua, perl, python3
, pciutils, dbus-glib, libcanberra-gtk2, libproxy
, libsexy, enchant2, libnotify, openssl, isocodes
-, desktop-file-utils, hicolor-icon-theme
+, desktop-file-utils
, meson, ninja
}:
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
buildInputs = [
gtk2 lua perl python3 pciutils dbus-glib libcanberra-gtk2 libproxy
- libsexy libnotify openssl desktop-file-utils hicolor-icon-theme
+ libsexy libnotify openssl desktop-file-utils
isocodes
];
diff --git a/pkgs/applications/networking/irc/kvirc/default.nix b/pkgs/applications/networking/irc/kvirc/default.nix
index bd38855109a..6fd66096b5b 100644
--- a/pkgs/applications/networking/irc/kvirc/default.nix
+++ b/pkgs/applications/networking/irc/kvirc/default.nix
@@ -1,9 +1,9 @@
-{ stdenv, fetchFromGitHub
+{ lib, mkDerivation, fetchFromGitHub
, qtbase, qtmultimedia, qtsvg, qtx11extras
, pkgconfig, cmake, gettext
}:
-stdenv.mkDerivation rec {
+mkDerivation rec {
pname = "kvirc";
version = "5.0.0";
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
pkgconfig cmake gettext
];
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "Advanced IRC Client";
homepage = "http://www.kvirc.net/";
license = licenses.gpl2;
diff --git a/pkgs/applications/networking/irc/quassel/default.nix b/pkgs/applications/networking/irc/quassel/default.nix
index 6aacdde544b..d1b950a7757 100644
--- a/pkgs/applications/networking/irc/quassel/default.nix
+++ b/pkgs/applications/networking/irc/quassel/default.nix
@@ -1,11 +1,11 @@
{ monolithic ? true # build monolithic Quassel
-, daemon ? false # build Quassel daemon
+, enableDaemon ? false # build Quassel daemon
, client ? false # build Quassel client
, tag ? "-kf5" # tag added to the package name
, static ? false # link statically
, stdenv, fetchFromGitHub, cmake, makeWrapper, dconf
-, qtbase, qtscript
+, mkDerivation, qtbase, qtscript
, phonon, libdbusmenu, qca-qt5
, withKDE ? true # enable KDE integration
@@ -20,18 +20,19 @@
}:
let
+ inherit (stdenv) lib;
buildClient = monolithic || client;
- buildCore = monolithic || daemon;
+ buildCore = monolithic || enableDaemon;
in
-assert monolithic -> !client && !daemon;
-assert client || daemon -> !monolithic;
+assert monolithic -> !client && !enableDaemon;
+assert client || enableDaemon -> !monolithic;
assert !buildClient -> !withKDE; # KDE is used by the client only
let
edf = flag: feature: [("-D" + feature + (if flag then "=ON" else "=OFF"))];
-in with stdenv; mkDerivation rec {
+in (if !buildClient then stdenv.mkDerivation else mkDerivation) rec {
name = "quassel${tag}-${version}";
version = "0.13.1";
@@ -63,17 +64,19 @@ in with stdenv; mkDerivation rec {
]
++ edf static "STATIC"
++ edf monolithic "WANT_MONO"
- ++ edf daemon "WANT_CORE"
+ ++ edf enableDaemon "WANT_CORE"
++ edf client "WANT_QTCLIENT"
++ edf withKDE "WITH_KDE";
- preFixup =
- lib.optionalString daemon ''
- wrapProgram "$out/bin/quasselcore" --suffix PATH : "${qtbase.bin}/bin"
+ dontWrapQtApps = true;
+
+ postFixup =
+ lib.optionalString enableDaemon ''
+ wrapProgram "$out/bin/quasselcore" --suffix PATH : "${qtbase.bin}/bin"
'' +
lib.optionalString buildClient ''
- wrapProgram "$out/bin/quassel${lib.optionalString client "client"}" \
- --prefix GIO_EXTRA_MODULES : "${dconf}/lib/gio/modules"
+ wrapQtApp "$out/bin/quassel${lib.optionalString client "client"}" \
+ --prefix GIO_EXTRA_MODULES : "${dconf}/lib/gio/modules"
'';
meta = with stdenv.lib; {
diff --git a/pkgs/applications/networking/irc/weechat/scripts/default.nix b/pkgs/applications/networking/irc/weechat/scripts/default.nix
index 81ee484f3b3..0880a32af92 100644
--- a/pkgs/applications/networking/irc/weechat/scripts/default.nix
+++ b/pkgs/applications/networking/irc/weechat/scripts/default.nix
@@ -1,10 +1,12 @@
-{ callPackage, luaPackages }:
+{ callPackage, luaPackages, python3Packages }:
{
weechat-matrix-bridge = callPackage ./weechat-matrix-bridge {
inherit (luaPackages) cjson luaffi;
};
+ weechat-matrix = python3Packages.callPackage ./weechat-matrix { };
+
wee-slack = callPackage ./wee-slack { };
weechat-autosort = callPackage ./weechat-autosort { };
diff --git a/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix b/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix
index 6811cb164e0..f3d96a1b5c6 100644
--- a/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix
+++ b/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = https://github.com/wee-slack/wee-slack;
license = licenses.mit;
- maintainers = with maintainers; [ ma27 ];
+ maintainers = with maintainers; [ willibutz ];
description = ''
A WeeChat plugin for Slack.com. Synchronizes read markers, provides typing notification, search, etc..
'';
diff --git a/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix b/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix
new file mode 100644
index 00000000000..ff6a7d94741
--- /dev/null
+++ b/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix
@@ -0,0 +1,58 @@
+{ buildPythonPackage, stdenv, python, fetchFromGitHub,
+ pyopenssl, webcolors, future, atomicwrites,
+ attrs, Logbook, pygments, cachetools, matrix-nio }:
+
+let
+ matrixUploadPython = python.withPackages (ps: with ps; [
+ magic
+ ]);
+in buildPythonPackage {
+ pname = "weechat-matrix";
+ version = "unstable-2019-11-10";
+
+ src = fetchFromGitHub {
+ owner = "poljar";
+ repo = "weechat-matrix";
+ rev = "69ad2a9c03d516c212d3d0700dbb2bfe654f6365";
+ sha256 = "1mfbkag5np2lgv6f31nyfnvavyh67jrrx6gxhzb8m99dd43lgs8c";
+ };
+
+ propagatedBuildInputs = [
+ pyopenssl
+ webcolors
+ future
+ atomicwrites
+ attrs
+ Logbook
+ pygments
+ cachetools
+ matrix-nio
+ ];
+
+ passthru.scripts = [ "matrix.py" ];
+
+ dontBuild = true;
+ doCheck = false;
+
+ installPhase = ''
+ mkdir -p $out/share $out/bin
+ cp $src/main.py $out/share/matrix.py
+
+ cp $src/contrib/matrix_upload $out/bin/
+ substituteInPlace $out/bin/matrix_upload \
+ --replace '/usr/bin/env -S python3 -u' '${matrixUploadPython}/bin/python -u'
+
+ mkdir -p $out/${python.sitePackages}
+ cp -r $src/matrix $out/${python.sitePackages}/matrix
+ '';
+
+ dontPatchShebangs = true;
+
+ meta = with stdenv.lib; {
+ description = "A Python plugin for Weechat that lets Weechat communicate over the Matrix protocol";
+ homepage = "https://github.com/poljar/weechat-matrix";
+ license = licenses.isc;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.tilpner ];
+ };
+}
diff --git a/pkgs/applications/networking/maestral/default.nix b/pkgs/applications/networking/maestral/default.nix
index bfacac2eaf4..708957bdf01 100644
--- a/pkgs/applications/networking/maestral/default.nix
+++ b/pkgs/applications/networking/maestral/default.nix
@@ -1,21 +1,23 @@
-{ lib, python3Packages, fetchFromGitHub
+{ stdenv, lib, python3Packages, fetchFromGitHub
, withGui ? false, wrapQtAppsHook ? null }:
python3Packages.buildPythonApplication rec {
pname = "maestral${lib.optionalString withGui "-gui"}";
- version = "0.2.6";
+ version = "0.4.2";
src = fetchFromGitHub {
owner = "SamSchott";
repo = "maestral-dropbox";
rev = "v${version}";
- sha256 = "1nfjm58f6hnqbx9xnz2h929s2175ka1yf5jjlk4i60v0wppnrrdf";
+ sha256 = "0xis0cqfp3wgajwk44dmi2gbfirmz0a0zi25qxdzpdn0z19hp88m";
};
disabled = python3Packages.pythonOlder "3.6";
propagatedBuildInputs = (with python3Packages; [
- blinker click dropbox keyring keyrings-alt requests u-msgpack-python watchdog
+ blinker click dropbox keyring keyrings-alt Pyro4 requests u-msgpack-python watchdog
+ ] ++ lib.optionals stdenv.isLinux [
+ sdnotify systemd
] ++ lib.optional withGui pyqt5);
nativeBuildInputs = lib.optional withGui wrapQtAppsHook;
diff --git a/pkgs/applications/networking/mailreaders/aerc/default.nix b/pkgs/applications/networking/mailreaders/aerc/default.nix
index b94ce269566..98ab5f56352 100644
--- a/pkgs/applications/networking/mailreaders/aerc/default.nix
+++ b/pkgs/applications/networking/mailreaders/aerc/default.nix
@@ -18,6 +18,10 @@ buildGoModule rec {
python3.pkgs.wrapPython
];
+ patches = [
+ ./runtime-sharedir.patch
+ ];
+
pythonPath = [
python3.pkgs.colorama
];
diff --git a/pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch b/pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch
new file mode 100644
index 00000000000..4ff1283b5e3
--- /dev/null
+++ b/pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch
@@ -0,0 +1,43 @@
+From 7ea68a2eef026723903d72f54ca54b629881ec06 Mon Sep 17 00:00:00 2001
+From: Tadeo Kondrak
+Date: Mon, 28 Oct 2019 08:36:36 -0600
+Subject: [PATCH] Fix aerc breaking every time the package is rebuilt.
+
+On NixOS, the SHAREDIR changes on every rebuild to the package, but aerc
+fills it in as part of the default config. Fix this by not substituting
+@SHAREDIR@ in the default config until runtime.
+---
+ Makefile | 2 +-
+ config/config.go | 3 +++
+ 2 files changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index d3072d3..17ca0be 100644
+--- a/Makefile
++++ b/Makefile
+@@ -24,7 +24,7 @@ aerc: $(GOSRC)
+ -o $@
+
+ aerc.conf: config/aerc.conf.in
+- sed -e 's:@SHAREDIR@:$(SHAREDIR):g' > $@ < config/aerc.conf.in
++ cat config/aerc.conf.in > $@
+
+ DOCS := \
+ aerc.1 \
+diff --git a/config/config.go b/config/config.go
+index bfcbecf..2f4e703 100644
+--- a/config/config.go
++++ b/config/config.go
+@@ -377,6 +377,9 @@ func LoadConfigFromFile(root *string, sharedir string) (*AercConfig, error) {
+ if err = config.LoadConfig(file); err != nil {
+ return nil, err
+ }
++ for i, filter := range config.Filters {
++ config.Filters[i].Command = strings.ReplaceAll(filter.Command, "@SHAREDIR@", sharedir)
++ }
+ if ui, err := file.GetSection("general"); err == nil {
+ if err := ui.MapTo(&config.General); err != nil {
+ return nil, err
+--
+2.23.0
+
diff --git a/pkgs/applications/networking/mailreaders/afew/default.nix b/pkgs/applications/networking/mailreaders/afew/default.nix
index cd512e77613..54b3e10b5e2 100644
--- a/pkgs/applications/networking/mailreaders/afew/default.nix
+++ b/pkgs/applications/networking/mailreaders/afew/default.nix
@@ -1,19 +1,19 @@
-{ stdenv, pythonPackages, notmuch }:
+{ stdenv, python3Packages, notmuch }:
-pythonPackages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
pname = "afew";
version = "2.0.0";
- src = pythonPackages.fetchPypi {
+ src = python3Packages.fetchPypi {
inherit pname version;
sha256 = "0j60501nm242idf2ig0h7p6wrg58n5v2p6zfym56v9pbvnbmns0s";
};
- nativeBuildInputs = with pythonPackages; [ sphinx setuptools_scm ];
+ nativeBuildInputs = with python3Packages; [ sphinx setuptools_scm ];
- propagatedBuildInputs = with pythonPackages; [
- pythonPackages.notmuch chardet dkimpy
- ] ++ stdenv.lib.optional (!pythonPackages.isPy3k) subprocess32;
+ propagatedBuildInputs = with python3Packages; [
+ python3Packages.setuptools python3Packages.notmuch chardet dkimpy
+ ] ++ stdenv.lib.optional (!python3Packages.isPy3k) subprocess32;
makeWrapperArgs = [
''--prefix PATH ':' "${notmuch}/bin"''
@@ -22,7 +22,7 @@ pythonPackages.buildPythonApplication rec {
outputs = [ "out" "doc" ];
postBuild = ''
- python setup.py build_sphinx -b html,man
+ ${python3Packages.python.interpreter} setup.py build_sphinx -b html,man
'';
postInstall = ''
diff --git a/pkgs/applications/networking/mailreaders/balsa/default.nix b/pkgs/applications/networking/mailreaders/balsa/default.nix
index 15f707e06a2..ff659959876 100644
--- a/pkgs/applications/networking/mailreaders/balsa/default.nix
+++ b/pkgs/applications/networking/mailreaders/balsa/default.nix
@@ -1,7 +1,7 @@
{ stdenv, fetchurl, pkgconfig, intltool, glib, gtk3, gmime, gnutls,
webkitgtk, libesmtp, openssl, libnotify, gtkspell3, gpgme,
libcanberra-gtk3, libsecret, gtksourceview, gobject-introspection,
- hicolor-icon-theme, wrapGAppsHook
+ wrapGAppsHook
}:
stdenv.mkDerivation rec {
@@ -17,7 +17,6 @@ stdenv.mkDerivation rec {
pkgconfig
intltool
gobject-introspection
- hicolor-icon-theme
wrapGAppsHook
];
diff --git a/pkgs/applications/networking/mailreaders/claws-mail/default.nix b/pkgs/applications/networking/mailreaders/claws-mail/default.nix
index d7df94f7e67..9fcf72ce4bc 100644
--- a/pkgs/applications/networking/mailreaders/claws-mail/default.nix
+++ b/pkgs/applications/networking/mailreaders/claws-mail/default.nix
@@ -1,8 +1,8 @@
{ config, fetchurl, stdenv, wrapGAppsHook, autoreconfHook
-, curl, dbus, dbus-glib, enchant, gtk2, gnutls, gnupg, gpgme, hicolor-icon-theme
+, curl, dbus, dbus-glib, enchant, gtk2, gnutls, gnupg, gpgme
, libarchive, libcanberra-gtk2, libetpan, libnotify, libsoup, libxml2, networkmanager
, openldap, perl, pkgconfig, poppler, python, shared-mime-info, webkitgtk24x-gtk2
-, glib-networking, gsettings-desktop-schemas, libSM, libytnef, libical
+, glib-networking, gsettings-desktop-schemas, libSM, libytnef, libical
# Build options
# TODO: A flag to build the manual.
# TODO: Plugins that complain about their missing dependencies, even when
@@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
propagatedBuildInputs = with python.pkgs; [ python ] ++ optionals enablePluginPython [ pygtk pygobject2 ];
buildInputs =
- [ curl dbus dbus-glib gtk2 gnutls gsettings-desktop-schemas hicolor-icon-theme
+ [ curl dbus dbus-glib gtk2 gnutls gsettings-desktop-schemas
libetpan perl glib-networking libSM libytnef
]
++ optional enableSpellcheck enchant
diff --git a/pkgs/applications/networking/mailreaders/hasmail/default.nix b/pkgs/applications/networking/mailreaders/hasmail/default.nix
new file mode 100644
index 00000000000..49f0ac53365
--- /dev/null
+++ b/pkgs/applications/networking/mailreaders/hasmail/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, pkgconfig
+, gobject-introspection
+, pango
+, cairo
+, gtk2
+}:
+
+buildGoModule rec {
+ pname = "hasmail-unstable";
+ version = "2019-08-24";
+
+ src = fetchFromGitHub {
+ owner = "jonhoo";
+ repo = "hasmail";
+ rev = "eb52536d26815383bfe5990cd5ace8bb9d036c8d";
+ sha256 = "1p6kwa5xk1mb1fkkxz1b5rcyp5kb4zc8nfif1gk6fab6wbdj9ia1";
+ };
+
+ modSha256 = "0z3asz7v1izg81f9xifx9s2sp5hly173hajsn9idi3bkv0h78is2";
+
+ nativeBuildInputs = [
+ pkgconfig
+ ];
+
+ buildInputs = [
+ pango
+ cairo
+ gtk2
+ ];
+
+ meta = with lib; {
+ description = "Simple tray icon for detecting new email on IMAP servers";
+ homepage = "https://github.com/jonhoo/hasmail";
+ license = licenses.unlicense;
+ maintainers = with maintainers; [ doronbehar ];
+ platforms = platforms.all;
+ };
+}
diff --git a/pkgs/applications/networking/mailreaders/imapfilter.nix b/pkgs/applications/networking/mailreaders/imapfilter.nix
index 78b1aad03fb..9f05020f2c3 100644
--- a/pkgs/applications/networking/mailreaders/imapfilter.nix
+++ b/pkgs/applications/networking/mailreaders/imapfilter.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "imapfilter";
- version = "2.6.12";
+ version = "2.6.14";
src = fetchFromGitHub {
owner = "lefcha";
repo = "imapfilter";
rev = "v${version}";
- sha256 = "0vzpc54fjf5vb5vx5w0fl20xvx1k9cg6a3hbl86mm8kwsqf3wrab";
+ sha256 = "09aq9gw1vz0zl6k4fb4zdm6cpjhddsl13asfjx3qy21pbw0azmj6";
};
makeFlagsArray = "PREFIX=$(out)";
diff --git a/pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix b/pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix
index 7019c309feb..2fb30e5ae6a 100644
--- a/pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix
+++ b/pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix
@@ -2,11 +2,11 @@
python3.pkgs.buildPythonApplication rec {
pname = "mlarchive2maildir";
- version = "0.0.6";
+ version = "0.0.8";
src = python3.pkgs.fetchPypi {
inherit pname version;
- sha256 = "025mv890zsk25cral9cas3qgqdsszh5025khz473zs36innjd0mw";
+ sha256 = "1din3yay2sas85178v0xr0hbm2396y4dalkcqql1ny9vdm94h6sp";
};
nativeBuildInputs = with python3.pkgs; [ setuptools_scm ];
diff --git a/pkgs/applications/networking/mailreaders/mutt/default.nix b/pkgs/applications/networking/mailreaders/mutt/default.nix
index c694398bd7d..3af4c7f5e15 100644
--- a/pkgs/applications/networking/mailreaders/mutt/default.nix
+++ b/pkgs/applications/networking/mailreaders/mutt/default.nix
@@ -27,11 +27,11 @@ with stdenv.lib;
stdenv.mkDerivation rec {
pname = "mutt";
- version = "1.12.1";
+ version = "1.12.2";
src = fetchurl {
url = "http://ftp.mutt.org/pub/mutt/${pname}-${version}.tar.gz";
- sha256 = "0311sip2q90aqaxn7h3cck1zl98b4vifqi8bp5fsizy4dr06bi81";
+ sha256 = "10k8352s0z7yan6d4z2am80qd3bsaky4h89g72wl4xr3x067ahmw";
};
patches = optional smimeSupport (fetchpatch {
diff --git a/pkgs/applications/networking/mailreaders/neomutt/default.nix b/pkgs/applications/networking/mailreaders/neomutt/default.nix
index 615b810d002..4305294297a 100644
--- a/pkgs/applications/networking/mailreaders/neomutt/default.nix
+++ b/pkgs/applications/networking/mailreaders/neomutt/default.nix
@@ -1,23 +1,23 @@
{ stdenv, fetchFromGitHub, gettext, makeWrapper, tcl, which, writeScript
, ncurses, perl , cyrus_sasl, gss, gpgme, kerberos, libidn, libxml2, notmuch, openssl
-, lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, mailcap, runtimeShell
+, lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, mailcap, runtimeShell, sqlite
}:
stdenv.mkDerivation rec {
- version = "20180716";
+ version = "20191111";
pname = "neomutt";
src = fetchFromGitHub {
owner = "neomutt";
repo = "neomutt";
- rev = "neomutt-${version}";
- sha256 = "0im2kkahkr04q04irvcimfawxi531ld6wrsa92r2m7l10gmijkl8";
+ rev = version;
+ sha256 = "16xr7wdmjw0i72xbnyyh098wx4cr0m8w2cr1szdi1b14p4kpgr67";
};
buildInputs = [
cyrus_sasl gss gpgme kerberos libidn ncurses
notmuch openssl perl lmdb
- mailcap
+ mailcap sqlite
];
nativeBuildInputs = [
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
'';
configureFlags = [
+ "--enable-autocrypt"
"--gpgme"
"--gss"
"--lmdb"
diff --git a/pkgs/applications/networking/mailreaders/notbit/default.nix b/pkgs/applications/networking/mailreaders/notbit/default.nix
index fcf1464ba23..370c4f83887 100644
--- a/pkgs/applications/networking/mailreaders/notbit/default.nix
+++ b/pkgs/applications/networking/mailreaders/notbit/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation {
license = licenses.mit;
platforms = platforms.unix;
maintainers = with maintainers; [ mog ];
+ broken = true;
};
}
diff --git a/pkgs/applications/networking/mailreaders/notmuch/default.nix b/pkgs/applications/networking/mailreaders/notmuch/default.nix
index 01081ebfb3e..64faee641f0 100644
--- a/pkgs/applications/networking/mailreaders/notmuch/default.nix
+++ b/pkgs/applications/networking/mailreaders/notmuch/default.nix
@@ -12,7 +12,7 @@
with stdenv.lib;
stdenv.mkDerivation rec {
- version = "0.29.1";
+ version = "0.29.2";
pname = "notmuch";
passthru = {
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "https://notmuchmail.org/releases/${pname}-${version}.tar.xz";
- sha256 = "0rg3rwghd3wivf3bmqcqpkkd5c779ld5hi363zjcw5fl6a7gqilq";
+ sha256 = "1pjmrnbn0iavm5pnw7wgfw5d6hg5i6miqfa6s7s4027vn94n3nhv";
};
nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/networking/mailreaders/sup/.bundix/cache b/pkgs/applications/networking/mailreaders/sup/.bundix/cache
deleted file mode 100644
index 5894e96022c..00000000000
--- a/pkgs/applications/networking/mailreaders/sup/.bundix/cache
+++ /dev/null
@@ -1,4 +0,0 @@
----
-gem:
- https://rubygems.org/downloads/mini_portile-0.6.0.gem: 09kcn4g63xrdirgwxgjikqg976rr723bkc9bxfr29pk22cj3wavn
- https://rubygems.org/downloads/gpgme-2.0.7.gem: 1p84zhiri2ihcld7py9mwc2kg5xs5da8fk11zhndrhmw05yvf5mr
diff --git a/pkgs/applications/networking/mailreaders/sup/Gemfile b/pkgs/applications/networking/mailreaders/sup/Gemfile
deleted file mode 100644
index bc37456ae58..00000000000
--- a/pkgs/applications/networking/mailreaders/sup/Gemfile
+++ /dev/null
@@ -1,9 +0,0 @@
-source "https://rubygems.org"
-
-gem 'rake'
-gem 'sup'
-gem 'gpgme'
-
-# Sup tries to `xapian-ruby` in its extconf instead of listing it as a
-# dependency.
-gem 'xapian-ruby', "~> 1.2.22"
diff --git a/pkgs/applications/networking/mailreaders/sup/Gemfile.lock b/pkgs/applications/networking/mailreaders/sup/Gemfile.lock
deleted file mode 100644
index bd0f051c104..00000000000
--- a/pkgs/applications/networking/mailreaders/sup/Gemfile.lock
+++ /dev/null
@@ -1,41 +0,0 @@
-GEM
- remote: https://rubygems.org/
- specs:
- chronic (0.9.1)
- gpgme (2.0.18)
- mini_portile2 (~> 2.3)
- highline (2.0.2)
- locale (2.1.2)
- lockfile (2.1.3)
- mime-types (3.2.2)
- mime-types-data (~> 3.2015)
- mime-types-data (3.2019.0331)
- mini_portile2 (2.4.0)
- ncursesw (1.4.10)
- rake (12.3.2)
- rmail-sup (1.0.1)
- sup (0.22.1)
- chronic (~> 0.9.1)
- highline
- locale (~> 2.0)
- lockfile
- mime-types (> 2.0)
- ncursesw (~> 1.4.0)
- rmail-sup (~> 1.0.1)
- trollop (>= 1.12)
- unicode (~> 0.4.4)
- trollop (2.9.9)
- unicode (0.4.4.4)
- xapian-ruby (1.2.22)
-
-PLATFORMS
- ruby
-
-DEPENDENCIES
- gpgme
- rake
- sup
- xapian-ruby (~> 1.2.22)
-
-BUNDLED WITH
- 1.17.2
diff --git a/pkgs/applications/networking/mailreaders/sup/default.nix b/pkgs/applications/networking/mailreaders/sup/default.nix
deleted file mode 100644
index ccd092ba63c..00000000000
--- a/pkgs/applications/networking/mailreaders/sup/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ lib, bundlerApp, bundlerUpdateScript }:
-
-bundlerApp {
- pname = "sup";
- gemdir = ./.;
- exes = [
- "sup"
- "sup-add"
- "sup-config"
- "sup-dump"
- "sup-import-dump"
- "sup-psych-ify-config-files"
- "sup-recover-sources"
- "sup-sync"
- "sup-sync-back-maildir"
- "sup-tweak-labels"
- ];
-
- passthru.updateScript = bundlerUpdateScript "sup";
-
- meta = with lib; {
- description = "A curses threads-with-tags style email client";
- homepage = http://sup-heliotrope.github.io;
- license = licenses.gpl2;
- maintainers = with maintainers; [ cstrahan lovek323 manveru nicknovitski ];
- platforms = platforms.unix;
- };
-}
diff --git a/pkgs/applications/networking/mailreaders/sup/gemset.nix b/pkgs/applications/networking/mailreaders/sup/gemset.nix
deleted file mode 100644
index 023374932cb..00000000000
--- a/pkgs/applications/networking/mailreaders/sup/gemset.nix
+++ /dev/null
@@ -1,155 +0,0 @@
-{
- chronic = {
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0kspaxpfy7yvyk1lvpx31w852qfj8wb9z04mcj5bzi70ljb9awqk";
- type = "gem";
- };
- version = "0.9.1";
- };
- gpgme = {
- dependencies = ["mini_portile2"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "12fqirxr964mc8jwsfl5nif6q4wcckrmj7w4c9ci4xg9xy2b9v6m";
- type = "gem";
- };
- version = "2.0.18";
- };
- highline = {
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1g0zpalfj8wvca86hcnirir5py2zyqrhkgdgv9f87fxkjaw815wr";
- type = "gem";
- };
- version = "2.0.2";
- };
- locale = {
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1sls9bq4krx0fmnzmlbn64dw23c4d6pz46ynjzrn9k8zyassdd0x";
- type = "gem";
- };
- version = "2.1.2";
- };
- lockfile = {
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0dij3ijywylvfgrpi2i0k17f6w0wjhnjjw0k9030f54z56cz7jrr";
- type = "gem";
- };
- version = "2.1.3";
- };
- mime-types = {
- dependencies = ["mime-types-data"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0fjxy1jm52ixpnv3vg9ld9pr9f35gy0jp66i1njhqjvmnvq0iwwk";
- type = "gem";
- };
- version = "3.2.2";
- };
- mime-types-data = {
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1m00pg19cm47n1qlcxgl91ajh2yq0fszvn1vy8fy0s1jkrp9fw4a";
- type = "gem";
- };
- version = "3.2019.0331";
- };
- mini_portile2 = {
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
- type = "gem";
- };
- version = "2.4.0";
- };
- ncursesw = {
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1nc14wls1yiigz593vw7580hb99lf4n485axapiz6sqpg1jnlhcr";
- type = "gem";
- };
- version = "1.4.10";
- };
- rake = {
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1sy5a7nh6xjdc9yhcw31jji7ssrf9v5806hn95gbrzr998a2ydjn";
- type = "gem";
- };
- version = "12.3.2";
- };
- rmail-sup = {
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1xswk101s560lxqaax3plqh8vjx7jjspnggdwb3q80m358f92q9g";
- type = "gem";
- };
- version = "1.0.1";
- };
- sup = {
- dependencies = ["chronic" "highline" "locale" "lockfile" "mime-types" "ncursesw" "rmail-sup" "trollop" "unicode"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "17s2sxismf46zdhgr6g2v53fw9f3sp1ijx7xdw3wx8qpcsgazcgi";
- type = "gem";
- };
- version = "0.22.1";
- };
- trollop = {
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "074h7lns72kg1dl5gvz5apl3xz1i0axbnbc01pf2kbw4q0lkpnp4";
- type = "gem";
- };
- version = "2.9.9";
- };
- unicode = {
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1v8kxmq9i85agjpl7pnl72688901xhs8wxhmj6lpy16a8xz3nzxk";
- type = "gem";
- };
- version = "0.4.4.4";
- };
- xapian-ruby = {
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1xbarnxmhy6r0rxpspn4wk85j183w6b18nah73djcs06b3gfas15";
- type = "gem";
- };
- version = "1.2.22";
- };
-}
\ No newline at end of file
diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
index 680d7652b5a..ad98cd660d9 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
@@ -160,11 +160,15 @@ stdenv.mkDerivation {
EOF
# SNAP_NAME: https://github.com/NixOS/nixpkgs/pull/61980
+ # MOZ_LEGACY_PROFILES and MOZ_ALLOW_DOWNGRADE:
+ # commit 87e261843c4236c541ee0113988286f77d2fa1ee
wrapProgram "$out/bin/thunderbird" \
--argv0 "$out/bin/.thunderbird-wrapped" \
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:" \
--suffix XDG_DATA_DIRS : "$XDG_ICON_DIRS" \
- --set SNAP_NAME "thunderbird"
+ --set SNAP_NAME "thunderbird" \
+ --set MOZ_LEGACY_PROFILES 1 \
+ --set MOZ_ALLOW_DOWNGRADE 1
'';
passthru.updateScript = import ./../../browsers/firefox-bin/update.nix {
diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
index d8f5e58d9fe..3cc7203401b 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
@@ -1,615 +1,615 @@
{
- version = "68.0";
+ version = "68.2.2";
sources = [
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/ar/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/ar/thunderbird-68.2.2.tar.bz2";
locale = "ar";
arch = "linux-x86_64";
- sha512 = "4fad3c7c4099f70253bfee450bcefe458bec61430720fcadde1fe8a1cbb2e62a18d9c55943f850c57f8d788c973774e24590823086cfacbbb2ccd8a99ce4faae";
+ sha512 = "d6773b83366160665db56b41e9a76765927284a005d9440dada3c4d7bb292eee4cb00100951cc133998acc3de4af92d88ac03d797a425b9245bb837be5b20e60";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/ast/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/ast/thunderbird-68.2.2.tar.bz2";
locale = "ast";
arch = "linux-x86_64";
- sha512 = "aac850773381d7fdb4d50fafe670449301f073f7388f92a1ca38d9b7256ffcd244b63e9fc0ff2f8ef5ccd853b97016b7e05eb751be1bdc8df9623481f15d55e6";
+ sha512 = "f090f7132239c6f420cdde8d0598ae20983a5f1a7e4ffab6d94760ef04cd5c61f6298c9c89265259972cb8b8eda4ef1ea141111bd25df928f8986903191c8bff";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/be/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/be/thunderbird-68.2.2.tar.bz2";
locale = "be";
arch = "linux-x86_64";
- sha512 = "6521d818984bbfba195e847735c1228ff637d3079cff1f5a461ac20a079d325adfc1d7b2eca54f63e584a5cbd2007cef42a625597276a1810158931335f09cd9";
+ sha512 = "ade743d0fdcbb32d70157d72ff5eebdb8e59cb79fa27a31ad6fb8348a2a0e29f800a44db52e76ab14d8deca0e98df325a63baaed791a9af85fb903d42d710ad4";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/bg/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/bg/thunderbird-68.2.2.tar.bz2";
locale = "bg";
arch = "linux-x86_64";
- sha512 = "a0a738b6877225a5b98691d53a8f4a4bf575472a0d5feb8b77a67cd1fc9951772f1ab507b7ba460c0b62b87ab476c5c94130cbe7275692e3a99e5d2ef0bd89bd";
+ sha512 = "a6922194323ef1eed00034655415d290148c1afe3a094bc819bbbb3691d26852f435f8fe4c989a7d94d3f5c77bae0a812592f532ca542472014da1a5e4d47e4d";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/br/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/br/thunderbird-68.2.2.tar.bz2";
locale = "br";
arch = "linux-x86_64";
- sha512 = "58d21d9e55abed644eb16ba98a5fb3277e0a31b935d279b09745262952895c2c2aed31817e6157410137ff82fc5d242b64268f646c3b7b691c55c5f3ea36e0e6";
+ sha512 = "ebc3ff68c8a2d5a4d3b94f8a7a5a8e42717261bd8e71d07b9516d300010131c2c2697a6d5e645dd6fe82e95f30957490b30c884f5dc2408986e2a2e7cca571d0";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/ca/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/ca/thunderbird-68.2.2.tar.bz2";
locale = "ca";
arch = "linux-x86_64";
- sha512 = "cd401259f2cc4ec71ff9d936a1f2f64a064afafed2e305bb359f79eddf1159cd6a7c84ce54cde6be94f6acd295dbedf54017d9f4592ee3637eea00496c7cfbf1";
+ sha512 = "42b7cc965bb8bc8316b2bb9c7c5827261323d29ef95e757f2d105e4728eb06011786a342961453835a93a5dabb7a9f2344efbcd9bb4d28967764579815511fac";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/cak/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/cak/thunderbird-68.2.2.tar.bz2";
locale = "cak";
arch = "linux-x86_64";
- sha512 = "45ea4af30ff93500d1671c6a0eeda993692b7204a7504a91ad30bfd5155add5af902205240fd62f80abe339224e686473f2d13f466ba96269347207ed3f628b5";
+ sha512 = "3285888bf7611ef6fbda6d3c6c2dcf73f49b678532ddee911edaabbc9d7993d6c6fc4d3e57a523e38f152250b558d96df623388298fdbff3dd0fd26a859edf19";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/cs/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/cs/thunderbird-68.2.2.tar.bz2";
locale = "cs";
arch = "linux-x86_64";
- sha512 = "9f81f92a3b1710d006cda79f1b92923c1ea637a24654bd622af9be1f53a0024c5daa77619443514c9e607cb62f96403f5b7f426b3692227c0b56d1b14f51ca97";
+ sha512 = "4713e1e619c5c83b4eaf2b4501263da34c8d08554584020d521a9129958422495c923741331d9ee75facfd196541346c40490ed2daa5e0b95c4788e8080570cb";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/cy/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/cy/thunderbird-68.2.2.tar.bz2";
locale = "cy";
arch = "linux-x86_64";
- sha512 = "c90467a78bc82667d974b1e94227b7d4185878654188967d97c11e419ec7a03e4e5e3636466a0b6d35beaa98b717a26341e3a652c3b21083ad8ad0b23f063ed1";
+ sha512 = "8c4b234ea415cf0ac30ec36d0273eabb8c2438865ff602cd5af48bdb5bd7d75377f0501c441c3f746c681dd9a9ca458892a4b413f2dc5c7f491322315f3be8c3";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/da/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/da/thunderbird-68.2.2.tar.bz2";
locale = "da";
arch = "linux-x86_64";
- sha512 = "f49bd5689d2a4dd311b22a23da9f26559685f1c4663eb1e482b45b79544ab4401a17701f33b6ad083e7a8983185fcb16fca4c8026138f24be495c6cbb6401488";
+ sha512 = "5c6bab8669026511b1138bcaa705d1dd497f39bc3a6aed838a05c38ea09a1335fa32b03238ac7d15b0eadbd3af54583830e77691a366d56bbb99f18a95b0acac";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/de/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/de/thunderbird-68.2.2.tar.bz2";
locale = "de";
arch = "linux-x86_64";
- sha512 = "579d979cfa0bbe50fd0bbf0d15b38d90579bc065b488a2e9d4e3f18f505e71c50225d92185559578146097110760ed3807e1aefad4862d99e247447478d6bc42";
+ sha512 = "7b3196d75d9d932e7518883839eb8e1f228a22938343d575966d29a8cfce960af7e15e4c108c0bd9bddae1a8e96d503b5254373ed8307753f0303088475f3438";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/dsb/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/dsb/thunderbird-68.2.2.tar.bz2";
locale = "dsb";
arch = "linux-x86_64";
- sha512 = "8d16bf47d368a670cadb6a2655933d5b49a796272f7dafd948cac95a2ae541561a38fa418cd4ed0c4aa79ef63a441ee769eeb2a071734abf2cc1ba243d4f3ba5";
+ sha512 = "77278dd593c4eb8a3d4064026a3eb04b704e0cfc4e1fcd9fbfcd8fdd43790e8a9a3a7efed382d8d47dff2796a5e353902f89f3d4e7636319b378bc5beb31f9c9";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/el/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/el/thunderbird-68.2.2.tar.bz2";
locale = "el";
arch = "linux-x86_64";
- sha512 = "579b9114af9fda86e79e6812946da858945e2034ed2f00e4244724ecdd680b7db5601a4d573b530dc15207caac9245f6883343684eb43f3ae2abb64853c0b54f";
+ sha512 = "693499cdf65aa99786d332719eb029c5a14d1bddc55839973bcfb22c57d55d1ee500d89d1e48b6e1e7f4ae716bfc272f300ff6f47d7a25f208f6ac3e6615ec9d";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/en-GB/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/en-GB/thunderbird-68.2.2.tar.bz2";
locale = "en-GB";
arch = "linux-x86_64";
- sha512 = "f7caed8c3b49714e4449ef971ed1a21e40f28625c84e9342f63e5f73743689ee2c0e9ed4845f6667bd22732c62bd707db425f22a5c074dff8622cc4536ba9c29";
+ sha512 = "457b6c5a99d02a8a9200c158d2e959927774d7a64476964040a4a790c0cf2f5c4c3bfc183bd9efa4f74439cce23c5c4bf922ab8166b3dd3f00a5e94445bca2bb";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/en-US/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/en-US/thunderbird-68.2.2.tar.bz2";
locale = "en-US";
arch = "linux-x86_64";
- sha512 = "257528761f0eca38528ded4b31329886093418f562aa2fac73b3a5bedda51fe80b34758c10afae1735cf37b37a86413dcf08642aecb1e8bea1fb6b0b94ade5c7";
+ sha512 = "3c410d90e2157fce862b189f566774dfe141947a562a5e3a5781896ad1d0ba3ef7b978557fadb94f69108aa1e3674339dc0ef2189f6cdf251285fcae04de909c";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/es-AR/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/es-AR/thunderbird-68.2.2.tar.bz2";
locale = "es-AR";
arch = "linux-x86_64";
- sha512 = "70a10e329b1031a2fd2ffb2b60459f0238ff3f5e5d80533f4be6cb22ae77692ec079ca3e146bd9a59edd09c266cec92d922a18ba45f8626a4bd44e290d3c0927";
+ sha512 = "8891a5c876d1bc3cb465bedd59d4956a3961217fe43a20ae2a9aaabce16e8d29e142f03a84fdc91b1d5214a735ba03eb567ea59566cef6948da8b4daba238392";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/es-ES/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/es-ES/thunderbird-68.2.2.tar.bz2";
locale = "es-ES";
arch = "linux-x86_64";
- sha512 = "a03098ad7d83b86cd316c56b69589370fb8bad041b93f90f61514b04e3d0e78385f779ed715c6e22e45597d1bf03676046cbc1eae7896bb2a309af3683c8bd1e";
+ sha512 = "03e0d537213de1c325310f5d6012c9a0543d4bf931a6b4315700abc493acd2657784c2f616bc965f796d95710c32e4063ee3cbe481290a9ff6e2655789864742";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/et/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/et/thunderbird-68.2.2.tar.bz2";
locale = "et";
arch = "linux-x86_64";
- sha512 = "44efeaf030580dd7b55770627678808e34d689e85191852c2e5fcb223a0fdd0e5386f21f03524d0983aeded7f8ed99382ff2c372c8c5a1fdfe218bd5b10ccd80";
+ sha512 = "5af54e9b0e5a79312ea3e1b29688ba5046c239b1c5533a25de36826812df5c326279f9619eb9872dcfd5aebf979931e98cf0c01e7f00c0745964ee11aec6e295";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/eu/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/eu/thunderbird-68.2.2.tar.bz2";
locale = "eu";
arch = "linux-x86_64";
- sha512 = "c670be5932d7e8bea28cffda7c119cfdfd5823f76b2c97251ec23ec16e420a8b7feb5f2251d89750b956d3bf3baff5d17393c05d8c265d0a98cc3faea8f85735";
+ sha512 = "e4804eda2716ca4685197939dbb9ef3237ae2caa4eee8d2b23d612cf1545499112f601a9ecf8627536499b93fff6584c8ee3732ebf548b900f9a2f9c226490a4";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/fi/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/fi/thunderbird-68.2.2.tar.bz2";
locale = "fi";
arch = "linux-x86_64";
- sha512 = "36aa0b47e9b5d91fbc812a3d63503924a8ca227d7b7084c1159419092b17da9c1b6e89fa046c636dbcff7776f9a1d8465e660b47f1753505f0d2eb85da9c3a7a";
+ sha512 = "9c161986b3f36652e76cd3f5ca6dd3c76470e4ead5c22cff041538ca159271f13eb31f81f07b5bde967204705bd0248039ed1f705ed5a6de5a8f9c85651d0803";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/fr/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/fr/thunderbird-68.2.2.tar.bz2";
locale = "fr";
arch = "linux-x86_64";
- sha512 = "b1e7d345d3dd38725227b5e09c4f3cfcf29ed3a98b0580fbf6ae1ecab4414d09e307423495b75769a8d2ee3ab4700cd6eba3d95ce05612e1d8290d3f5a3ba988";
+ sha512 = "70374ce7f72a18b1ed0083c2a3079e68115f6d0dbd3dd6060137df98bfd8ef0f48feb53f8d36659c119e814a57b9ffbd0d8c4211ad3ff657336c856773c19df3";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/fy-NL/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/fy-NL/thunderbird-68.2.2.tar.bz2";
locale = "fy-NL";
arch = "linux-x86_64";
- sha512 = "4065a083f49006dacf64f084c1bf26c4c1b8d53bca7eba7a56d66bb035eaae2c4528687c5c1e2213f92adbba17ff92eb54f897d3b0ef6d27b8effbee66ca555b";
+ sha512 = "7e01f9b4b7aea9bb5afd019cd9fecb886eb1814fae341c13cb68b70773011f5165d9150b594a9239ebf456245b532129e99b0ee2eb3b9eb9bda72917ea82fb0b";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/ga-IE/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/ga-IE/thunderbird-68.2.2.tar.bz2";
locale = "ga-IE";
arch = "linux-x86_64";
- sha512 = "2ae9a0860513e90d1742e5c17220b2367e61273eba04738cd29e9ab497b86f9a1d78b38b21da84b1f214f3368ee114d376b05eabe0aac9a1ec07ca6a4b399070";
+ sha512 = "e60ecbaeac31a81d1b267840f97c8e9a6b4acbfbb221dbf8f1a33ad97f9a20efffb1f62498263ffbc9191b74b56a35b8f1cd94e96ea37037b6c05df616a6fea7";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/gd/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/gd/thunderbird-68.2.2.tar.bz2";
locale = "gd";
arch = "linux-x86_64";
- sha512 = "d2315aca9d8e5bb35b21cab46a48e51f09200b056da2682201c32eb4fd3d0379a24a6926ebcf11e9c70d70fd20152fc24d5197a78cdb3c8ea3cc2399d784b463";
+ sha512 = "dc872843cb900c5dfff45b5d4d1b1673e38fb58cb78108b8fe6e3777b6f68dc5bd1e96ba371fa2294ac96a810dec5e2491cd7c50f499000fa89d10dbd2542c62";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/gl/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/gl/thunderbird-68.2.2.tar.bz2";
locale = "gl";
arch = "linux-x86_64";
- sha512 = "52d9210e857c1b6cb665a2ffa71cfa5e67c3718b210e2b4b42839d8f25987170f1603fa55d324003a4be821ba74093ff92d632e688e44b87ebf51dafd02f69a2";
+ sha512 = "317502e4aeae4b3e83107649d84bc91509ea66fa5e4dc17378e520b8515a4d97f089b2dfd2127b5d110ef3f2ec38030950b2d31419aa8fbd79146533f01df6fa";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/he/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/he/thunderbird-68.2.2.tar.bz2";
locale = "he";
arch = "linux-x86_64";
- sha512 = "e7b5a16950be233fe8a49152184270a901bdb4bcc14769401d4b5a21fd2a3ab9d395ed8f6b61081330386723725252fceff09bf9fdde3a71135a98d8ae45089b";
+ sha512 = "7aebd802addb09c05689625026fa5f11cf912f01a411f8acc8cf98cf524b5d5e1dd8f7f6ac957a177cdb48b83fa74c7985a4b63696e61c253967db77d8624ebb";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/hr/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/hr/thunderbird-68.2.2.tar.bz2";
locale = "hr";
arch = "linux-x86_64";
- sha512 = "1ed224dc0864009edc6389f9b3b063f56b15be982c2e2915f1a2f773bfc78e6b81ec0ab02e03f7ade08f47260be597003f8119116576f4fe5dd490e85cd3d4ab";
+ sha512 = "2703fd856d598b3f9902b59b437e4b35caa497e96db32a2fc0eb482e78913479d36804c23401212ec8197d2825be9ae549f30f88d8ab7ec68602f9e4e0c4ac41";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/hsb/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/hsb/thunderbird-68.2.2.tar.bz2";
locale = "hsb";
arch = "linux-x86_64";
- sha512 = "f4bcd8a199bafd544687b1e890694dac2b598d4fd79818ab19441ae9be579a9928fd8c7fbae43e322fced15ff39314fbc88be94ce2fe12b5d2ec2ba003a219a3";
+ sha512 = "afa4a9b99d675948a1acd41fe4ed26d1ea6c60ae1d2dd16622da5dda954d80820099c83bd8b9bf341f282ed861741b1c60e1b645d2d3e6851090573f5652db60";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/hu/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/hu/thunderbird-68.2.2.tar.bz2";
locale = "hu";
arch = "linux-x86_64";
- sha512 = "28223aec237fce2f07b0c3b454a8339bbd2f195d6e263c5a5723e04bd5df1128d58a6bc6c7275cdbeefd5161a405a2d6340303faa79d9330abd0e70de9facbfb";
+ sha512 = "d5d29f65ea33468067e1e2f756b4ea80c5d1cf7563d17918569de3af4d68b3d78546339be34b76183a60ae225de36fade448f9c28e6344333f9b9f74c7c4ec96";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/hy-AM/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/hy-AM/thunderbird-68.2.2.tar.bz2";
locale = "hy-AM";
arch = "linux-x86_64";
- sha512 = "d7dea23905f8bc8dfde92082f90278b76477eb3036c7fc4abe656e37af9d389d37f3b166492df210eeab03750d85cbcaf1340aaa26ab723ca1b70299b4a64ab6";
+ sha512 = "d566088586dd5bc1d2dfe528e51d52a78832929377c9e5975da088545bd9bd0d8698788b5239806e8f9d3daf0fbcbc4eb576a13b2e8075272c22eb55476a6638";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/id/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/id/thunderbird-68.2.2.tar.bz2";
locale = "id";
arch = "linux-x86_64";
- sha512 = "f55ad81a1dc80838a9ab045899e0f16bb077d05d73119705f820f6fe8c8c7a550e05cc68cb7ca0aa8861cbd70bc9f061ba51a4749db6c37d90e7e7bda5dcccdf";
+ sha512 = "058d20ea1d7a2aadcebaeb186ae8e7cc315b5a657203070d0747b32b831bd28f2d6f6973cf0b336257801f82f0b87423e969a71d818801258ee61a8e67e07d66";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/is/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/is/thunderbird-68.2.2.tar.bz2";
locale = "is";
arch = "linux-x86_64";
- sha512 = "503c236102a15428e41a21b458ecc29986abff4e434f4e26ec9741b2facf39a8fc2ae9dff5aeb32fe3c9ca0dcb6e914a2acf229ae9caecdc4f064380f126ecf7";
+ sha512 = "38ef9f5c2c57200e8922c71698224fd00da814d5c7205c953c68be9e02bb95fadc370eb04654166149156abe7ea0f45787bd9c9b6e952330427051cd3be18c0d";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/it/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/it/thunderbird-68.2.2.tar.bz2";
locale = "it";
arch = "linux-x86_64";
- sha512 = "51a736932baa5c810a29de46eba64b0fcd2703da38ba9449b6b06a9412562e80853367416c5b4d6c6834eb7a2186f434e426099ede56d9342860e4f3561455eb";
+ sha512 = "f1e63f4ddb28da50bcaa54bc5d2de4d76162e732e66c6eb2a6a3a1eb388dfb9e911770b13b3995a068c87002d4c7edc4224ed2dcf0f72733d51b66efe4357d32";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/ja/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/ja/thunderbird-68.2.2.tar.bz2";
locale = "ja";
arch = "linux-x86_64";
- sha512 = "7a00080835155d301f65a35684d81f8e3a3be23d927d939da84a2a887057bca0b75d5b580a004b4f797af504a6812f71951bc3c75ccb24dad60b6cca770cc7a1";
+ sha512 = "c8ade4b89ea1448941ece48009d103f77877329c54f47b24d7e4f08b2bc6c882f0e445a7320f61211b4efac532aad2e4df1e8533c23797be851be60063f770ac";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/ka/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/ka/thunderbird-68.2.2.tar.bz2";
locale = "ka";
arch = "linux-x86_64";
- sha512 = "eaf67c64275495fcb08aca63953406cd7815ec356ee0a1edca8a5e8dacd924a9c11e35dbe4ad17a1617199a5f66489bb553a7a5177eb629223b49a9adccff803";
+ sha512 = "27fada4d1f41bc678dd08dc123ad3b181c3ad107318d07b20dd6f0dde1b2f3fbc88c7a0a35c8745f23e144d0468c066044189e71b115f128bda8e11e7c248ba3";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/kab/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/kab/thunderbird-68.2.2.tar.bz2";
locale = "kab";
arch = "linux-x86_64";
- sha512 = "9432bbba0965b6da04495b79ef4db3bdbe69476b20650b4d6407d921cf07d09950368f0c13211ea6743b621d486bf71dce0e60d8ceefd82b48a8f2581a3fd7ee";
+ sha512 = "be9a3a4eee49466b854dd546fb28162fc390f37e78985666ef8120e42019e0f196b66de884fa6fa43ba40aac1af991a966ab8e7baa8879f04c71a51a1e17018b";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/kk/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/kk/thunderbird-68.2.2.tar.bz2";
locale = "kk";
arch = "linux-x86_64";
- sha512 = "9bfb99694bcf1227162607e2b674abb00343e4da3876999430d6014cbd4f4aa6c6e9ddca7c7f3b144d101c1a5a6d38772e3750f5feb41d1f304b89a8c1e6ec15";
+ sha512 = "30f93b78c35a19f0be4930e7cb5c5015bbc3dd262368c4c2510371e2fa527b67dc5cb43971d344b5601e7a435034adb697a803000f3de8904a39d053e58c8c69";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/ko/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/ko/thunderbird-68.2.2.tar.bz2";
locale = "ko";
arch = "linux-x86_64";
- sha512 = "fd260740ccd74afae7af664775954acfd176b47176f48b5300f11bd77bc31205d0bbc2d06a701486e9742ffb38ad4aa2b253041b9d9518a4b9c7dbbe41aca264";
+ sha512 = "354712e56c22f1bb97bd4d18d9cf06a884f6c4aeadf5fec1ba8509eaaa9ba4d0a34c50408ef9e12b7cba1627481a7d9192d684cb1a5466b9adbc26c6e6fe9026";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/lt/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/lt/thunderbird-68.2.2.tar.bz2";
locale = "lt";
arch = "linux-x86_64";
- sha512 = "fb7a7b6d0c7d58d13b3ec20c8176ee793cac5c53bf849e3b3c4aaeff0f3e897cc35e61a9dfa4055c691fd56f280f7b31e04999922c29ecc89294ea6eeac16cd3";
+ sha512 = "68b5993e861fe2225c8cbf77959fc91ea45728e4c3ffb458b5b465009197d86e914cbeb6bfb83b397ee4ba5979d279e2a698d31ae614dbe3d09f0dfbe396cea4";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/ms/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/ms/thunderbird-68.2.2.tar.bz2";
locale = "ms";
arch = "linux-x86_64";
- sha512 = "7490a8169079569143c63f85e7da299d28ea423fb95265e2e86ec724ff0da641e24a2e9ea612d180d523973522f40c250bfd56e66ee39b28cb9acf57f6be6831";
+ sha512 = "a140c69209dc0e3f3e001fd3df07373babc53e82a817911e7fc037b20c89e9a6ba0ddad9214a001f99232f12b44a16743a6ff601a352789d8177da5635f622ff";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/nb-NO/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/nb-NO/thunderbird-68.2.2.tar.bz2";
locale = "nb-NO";
arch = "linux-x86_64";
- sha512 = "7256820ea97851319e51616f6eb45617983e76e74b46ae62a02e22d13e2dd6abd590fd265aa6c88ac14b2f0276219580b6b9fbd956f1eaa38e6a93329b9c9621";
+ sha512 = "93d0fea57d0fa47f9b6803891f57d65e281d8eaba1d4b7a8d8e60bce397cc45f49448a46537284b17481c8966bc2e9dc72c1fbd5ec3b7b62566dd519c7357b51";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/nl/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/nl/thunderbird-68.2.2.tar.bz2";
locale = "nl";
arch = "linux-x86_64";
- sha512 = "00f32145c861abd8f151d7840d0f01eb9d4190df65e5a179f999f3149477f2de7f796782eb7ef912fcbec005d65c76974185d1c0105dea862cbc22c821bc906d";
+ sha512 = "a9f8c33710a09459dd0cf64b432de1e20a0743a38feba00b5ccb564645bbccae25216853b4ec79cdea625bcf668287461cbed80f67cf3d38a269f51eb522e762";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/nn-NO/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/nn-NO/thunderbird-68.2.2.tar.bz2";
locale = "nn-NO";
arch = "linux-x86_64";
- sha512 = "3ac255b5bb4b352833fd56d5aceaba6d0ada571630a993729970ae99d5067f05ba22e6ef50fa7dd099c0eb5874f11aeed32718c56a80538e28b401ee6b7900a2";
+ sha512 = "88e6ab3efd57de666add7b7fb9af8ebf23a17eb5ad59d2f0d5e22e5efd87aabd5be299eb90a31feb14c44b499219ef5a59abb62f97274d9777739c6fab5afe4a";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/pl/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/pl/thunderbird-68.2.2.tar.bz2";
locale = "pl";
arch = "linux-x86_64";
- sha512 = "19ab4bde9314dbed1bca7565698a7b1231767ef9cc792a49e7e9d679453ae8209e6f68c63ea0a24bd9e3a97328dceeedd109bfe28038108b52b9dad366f28787";
+ sha512 = "af45bea64156e8218fdbec80404905f98493aa6b6b583a984d26970f512a0961290776ff1d882ed47e4b77945c4f43f88d24fccb572e66e833707655079c7a63";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/pt-BR/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/pt-BR/thunderbird-68.2.2.tar.bz2";
locale = "pt-BR";
arch = "linux-x86_64";
- sha512 = "68e28b657b885e7823dca0d091f2609556d560a50b5e6c285cdf467ae2b09743406baa2e544f17997519c219e0d4e8911115d30e7b0c35f09b956e28b311f8d8";
+ sha512 = "ad9190aa83be73dd0d35247db6b7193be82f842f3400c93f68f8c4a2934ecc0c13c3b1fd86170a21e66c651052a1155b3c75c39a7ac4600176e2ef0e72568768";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/pt-PT/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/pt-PT/thunderbird-68.2.2.tar.bz2";
locale = "pt-PT";
arch = "linux-x86_64";
- sha512 = "41623568d2e78b821a89480836f8d8c739f6983b80ce26017d12fd9363016158fa6c629e030f63aba6e730e554b7717fd2ee58e0246aa82b46fe55d5d6be9933";
+ sha512 = "3642265601859912b983e03e819965fcc22f3039c56ea31e9cfb3aad7bb527d9ba3280fbbfddbcaada7366cce6fa048e91e3e3e1d035bd58e05881e5ed93f6d0";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/rm/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/rm/thunderbird-68.2.2.tar.bz2";
locale = "rm";
arch = "linux-x86_64";
- sha512 = "a2cabac0ff5e3bb4a8dde4e884ba4647792e0935ef0a61b56470c67d3ba9c2310a07c2d2da51f7b4cb5fc3e841dd385a2c64ff29d263333a91e2044a4ad3190e";
+ sha512 = "0dfe0f295737a9f3c8f94e73d167b6be62d45796b47defb2b346a305371e04e6d7e06e1cd38a93527311f2ca2b0d67ab78df4dc598ecc1c5c1d865ec07d48788";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/ro/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/ro/thunderbird-68.2.2.tar.bz2";
locale = "ro";
arch = "linux-x86_64";
- sha512 = "2e9da10d1f88352687175fa48fb70f8a73cf3ab1d84958a79c4a46526b3640e264d98611806bb234f579d616fe7d1dbb2d4c6ba55a389363034f85a97283bb64";
+ sha512 = "8aa794148408196d19a240bc3ad198ebd2183b7688d766f922556f248e9f04aa5340d4ea77d3817c7fe99447a9d0211e8d7a66ee368dd5554c2d6861c36624e3";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/ru/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/ru/thunderbird-68.2.2.tar.bz2";
locale = "ru";
arch = "linux-x86_64";
- sha512 = "5f4bd3d3657479446ff070cfdb33e16a527c6f1615f37fb4c4e32c12b89c62d5649fa5c3d826723be47fa9795575bd33ccf37c2aebb555c218aba8f9d68ec3a9";
+ sha512 = "e3d17ef68f01ab15734bdcd0c20c669b1402807f90bafbb2095f65a29becff4c7471ab882fe94e0b98a3e680ed1ceb5790b887f1e1bb4c4841d4ad308b7094ca";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/si/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/si/thunderbird-68.2.2.tar.bz2";
locale = "si";
arch = "linux-x86_64";
- sha512 = "b47d2aea81327089445c9f57a1508406c534907c7b574006886828846e6deaab04e35de2781d55d882f05c0a89f65fa7c386547d6581064af4fc3bf4e879e379";
+ sha512 = "bf11428b449938072961801236c8b101c6965de874d61dc59f6e85a2f03fbb688d1c3731e5a0109093459f75662d1e2705e08e872e57f3402483e3cf04df94fb";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/sk/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/sk/thunderbird-68.2.2.tar.bz2";
locale = "sk";
arch = "linux-x86_64";
- sha512 = "4295204bb89789704da6830d33e92a77df165737c291c74a94fa532309c89505fb796151e0855b4e0bad8658fecaadc9978580ac72e2a2f24a4022909bb64aa2";
+ sha512 = "b078e014d8ad5279efb33e5039856125997df85b34c5edfb5a12109c432cd8f7f0ad218ae5d7173f0b4a5c5f805ae259413ec54f4c7b689ee2ef77a78507b066";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/sl/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/sl/thunderbird-68.2.2.tar.bz2";
locale = "sl";
arch = "linux-x86_64";
- sha512 = "598fe5bd04e04a73db04eb630e02dd7cc7af34d0381e6877626c8885bc4b879e1f35362afb8cfeb1bbafffc5b7ea14c8efe9b35b5e30056d04fa0126b8663679";
+ sha512 = "57b213fd7bb26f8e239979a95fd5991444f372cf1017b40accdc3023a40fb3e9a2ba56fa6c81e3fce98a7e6ba932e322c2d4e45e326dae8fab69529098eb759e";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/sq/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/sq/thunderbird-68.2.2.tar.bz2";
locale = "sq";
arch = "linux-x86_64";
- sha512 = "0b657daedc98db51179cebf547d5f278d2d632bdb552878b4af29427ab8fad62f8d6c1ab2c3a38cbd8e67b670d6d613bdb1d4f535a0c69d0d1ca607d0b10bd43";
+ sha512 = "248c26db9285b691a7236efa15812f1cad68aac908d51f1691a1e92f5412a52251592f91a374456d9df3408f7495e46a69d511dd236f4db744759b8fcbff92f4";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/sr/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/sr/thunderbird-68.2.2.tar.bz2";
locale = "sr";
arch = "linux-x86_64";
- sha512 = "10efa11b9c9ba56142c8a321a25a7e875f3d02fd17f73bd3061ffc71823aeb1269f9a864aae88a4fc434d1c4a01d227c0be605ffa7f4ef6421db98c0141c839e";
+ sha512 = "3603237ef4518e097d2de4edd08e25b700c123a48392a818cfa2506eb2296141d1691e518878a831ea9d14c56264f055c33267292e31bd2d03b9d1e93614e473";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/sv-SE/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/sv-SE/thunderbird-68.2.2.tar.bz2";
locale = "sv-SE";
arch = "linux-x86_64";
- sha512 = "c77d10b35edef7e59f4e6c48cd4352c4fb7d05b0140aba12be42b3e3a3df609ebc86f2f5a3993fa172ec0ac118726314bc9042335101241637481a2e1a4d1c00";
+ sha512 = "015dd59aa8383ec7dcf5e080ff568f2bac62b12dbeeefb341d6bca7e845a90c80bc15f240fba299a5ea7181d8b618ad0db86ae913d5583cd11fda62afedf9b04";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/tr/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/tr/thunderbird-68.2.2.tar.bz2";
locale = "tr";
arch = "linux-x86_64";
- sha512 = "3d52693efb05379802d62fb9e40c4b1856b45ee948032634d4c4bde7bbae67327f963e0f1096fd5d7a15d4341af1ecf3d9ee96eed45146859d8e8e5d403d660a";
+ sha512 = "5e39deccb50cd5bc9396343f23c78991e12aa4980be4e54622e8d06b0c84d0696835112b69254b62853461e2981ef2689fec9ba9426d1988ebda966df3a9b176";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/uk/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/uk/thunderbird-68.2.2.tar.bz2";
locale = "uk";
arch = "linux-x86_64";
- sha512 = "c09734ab8e6428c6ed270887a0add934a7058d5e9c895864b1128e0fd39d57e13789bab38cafaf7cdbac1a71c8884407698c4bdfcf48aeec6604a457ed57c48d";
+ sha512 = "e48bed3f7aa9ba457f4edca86e3a0877abc3bf1a11faaa32ea6ec84944fe0b5d90be55c7ff96b852b12f8773e800eb1044d28baf968a08580ebc67ee86f976ca";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/uz/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/uz/thunderbird-68.2.2.tar.bz2";
locale = "uz";
arch = "linux-x86_64";
- sha512 = "083a83ae3c6083934fbe49f1e65ceadc5b5459f0f29ae0df9901b6d9b29d0a105cbde94357c1ee0a9677ec923fd1d419c618db0e843cdf320c087108990b89ec";
+ sha512 = "92269611f5980ceca0a6dddf4d06ff27eaf1f84323b3a3215825826f460cad8d293c316d54970f3048bba13f478debc1bbbff0599c3a018afad31de482399663";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/vi/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/vi/thunderbird-68.2.2.tar.bz2";
locale = "vi";
arch = "linux-x86_64";
- sha512 = "6ba1573c9a170d1d827b6d17941c25e3852f7b66be2eaf7a3e9ab02278f19a38b801d7b9b0c266dc4f38f1190f9c83990eaa51f4734ddb38f43ea3e1bd23b72b";
+ sha512 = "db82fc0630f3a0fef23a857ff47375ff9012151317df669704ca7433b940cc5966a733b8450bfb3b708d3a103e3d670c289afcdba217da217c68399da1ac1076";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/zh-CN/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/zh-CN/thunderbird-68.2.2.tar.bz2";
locale = "zh-CN";
arch = "linux-x86_64";
- sha512 = "74ee429901cb520d07361a4b621c9be06253cf93300f0f91e3633d3b375e4e9a6a58823d4bbfed60519734ca5705f2cd0da4bdc7db0f578ec300f1d705e9b7b1";
+ sha512 = "f56c70d6609d8a4a39b71a1404baf27208971527581a4cd693e1816cf66f391203961fd91f3ba015f874b39c45d64ec02f5f9f5d3edddc890548ab74130460ee";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/zh-TW/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-x86_64/zh-TW/thunderbird-68.2.2.tar.bz2";
locale = "zh-TW";
arch = "linux-x86_64";
- sha512 = "d720029e0720fa972d694712a85bdae94b1ff51213c4e56b84dff6d293a2a9831f5cd4efeb44070010eba1486b9358929f64546ce7ebb7cee29a7bcd4a1cd650";
+ sha512 = "40ed9e876594fadaa2d5b322c5463170fe4a978e5162eb6dbafc53aadd1f53b91587f7b56965908401ca339acc62cd94ffa1d241e7f5e20668ce2ebc7e914834";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/ar/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/ar/thunderbird-68.2.2.tar.bz2";
locale = "ar";
arch = "linux-i686";
- sha512 = "823b3cf50f8d23d1d0ba8583d2b10146e2eb0ff4a9401527557fae8e8db997ecc66d0bf5a091323bbd37dd6222bacb73fb9818de8740963b929a8893e4ec9391";
+ sha512 = "e6aa9c7573d4756732638c59b20c1a72361da0aba1a7c07528c2c291a5531d039f5f30196a00ab4e215a9bee9b3e6c03b7279d48da7ffe9bec5ac8b6e9f2b8e7";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/ast/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/ast/thunderbird-68.2.2.tar.bz2";
locale = "ast";
arch = "linux-i686";
- sha512 = "f0087ab3189e8fd194d2ef6d5d2f9c3e14d592d5217a8fea19ba5189e806f9d484332f9d342a15549651a75bcfa673f21cd7666265fc185ec58c814814902ec4";
+ sha512 = "762ea8b11ca21d1eb1d3a87803b43e9ba2b6e0cfc76b242948423d94049c2cc34494996bcb4e396adfdcf14471c280b49776f65e0abd6d37abc1353e55099c92";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/be/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/be/thunderbird-68.2.2.tar.bz2";
locale = "be";
arch = "linux-i686";
- sha512 = "edb358214e93142d73c92ab3dcf6240cd08614c2d0e9ea506492023be46d7b7f6273dc767ae034762c052db3b0a093dd027187afb272b2a55fc3126b06ffb78a";
+ sha512 = "540dce6d0e3f9974b050a6e70c14eeae791deb9dd8a44d91735a95610c9b500767f93c18b1cdcc13e638b564138d774b35839671c06dc51730cd07f26452baaa";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/bg/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/bg/thunderbird-68.2.2.tar.bz2";
locale = "bg";
arch = "linux-i686";
- sha512 = "f3268fced7a81b5046332f975906ac79b8ab5ac888dc1c81085dd7cd1b1a414988208d426bd305f67cbd913c58de857c844809ae6e6ab5a2a520d7d6b149b731";
+ sha512 = "9e8d05d39461e1940d07e68472fc39453e6d24988700cc52566e7adc5902a5ca1143e7f52e9d5bc70ef00f3a9a9d4caae814c060ab5a2cb811b656ac6b3d5e9a";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/br/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/br/thunderbird-68.2.2.tar.bz2";
locale = "br";
arch = "linux-i686";
- sha512 = "c1be2ec4d4e64a2a9b32b974eecd182ad9d1fa23b775769e8535e742479ed6be2a222272d7c5b141393f0c752d4af704758912bbac1c17f445b3bf277c12eb9a";
+ sha512 = "bcf1196b1f9bf0c4f8f0aca68568fdcc4085d817aa83048b180bfe33da91194ebb55a8ff314110f13bb7d903593e9dcedba637779034c1e279a5cfc5654f94b4";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/ca/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/ca/thunderbird-68.2.2.tar.bz2";
locale = "ca";
arch = "linux-i686";
- sha512 = "ac0c2508b89812ba63d0bb770adc2292127243fe31bf140a4ab88c953750fc2f699c5ed2afb9a400cec48dc14d927b08dc96d5b110e2f2d90e81d1532ba9d916";
+ sha512 = "f2963f5863ec3cb8c44de84cec24143aa3b2aa17955ba5eb523f7f834a1ff2fe8b6214edd50a83d21b6f67f01f570f2713c3d8ae1b5085f5ba40af1261b171af";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/cak/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/cak/thunderbird-68.2.2.tar.bz2";
locale = "cak";
arch = "linux-i686";
- sha512 = "4d73beb37469131b7e7747c85a73027e1eaf008100eee21e27d36b4736ffdb4cc3ca3606726e36033de64504f058ec9d4193797a09c2a591675636a5c00fc890";
+ sha512 = "4873079388e091aa6898d81857ea6fd05a67d91ceff98f31fb0eb3cff1835320f767aa579ec0c3e5f3721bbae893e0fccda95380aa90acc4e5a031c94a360dbf";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/cs/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/cs/thunderbird-68.2.2.tar.bz2";
locale = "cs";
arch = "linux-i686";
- sha512 = "635ec13ec9fd688ccb9c690ccb4d64228f1f47755ce24c4806f5f47655af1279b9ee758fe15c0fcbd43c830edf66383bfa3d84d35137209a4af41aa59565f554";
+ sha512 = "8ae22364980f210938d957c9a888d392fe4187395952afb7dafc86f5e7537c50e28f19cc46e98ac7830a82cdc0b2df6352566a7300ff14a9365f56386b43425e";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/cy/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/cy/thunderbird-68.2.2.tar.bz2";
locale = "cy";
arch = "linux-i686";
- sha512 = "afb546562f92c93639a407598d9c6654b64776cb68db7ddb07c0d17f83d122d9e7bb974238ee5cdb90876bca3ea30356cc5eef28b11ccf082ef72c0343dc42d0";
+ sha512 = "617517a97ec2748c69a832a5c1022c149a2d45a43e738e3e8469e57321648fde33a1325d2d0d97ddf9b24383ba4d503e2d2c43207d5324c1a38b11d59cc9545e";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/da/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/da/thunderbird-68.2.2.tar.bz2";
locale = "da";
arch = "linux-i686";
- sha512 = "f7b7d183312d11d02200890afe4e81c793b658729119d9f81ac2ca58714244ece9d64d1b9d9f34c79f1d00b574e24192ce066debf873c4b740c35208cfaec16e";
+ sha512 = "065506b4da1c4798c2c49373073313dfdacd14cea44a3a0dbf24a93ee7fc55e5074d370f1e8a1be5a347eb8cad84d4be140359b6973ceb62fee353508eaec7f2";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/de/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/de/thunderbird-68.2.2.tar.bz2";
locale = "de";
arch = "linux-i686";
- sha512 = "e6b3ba227c8e84273e6dadcb59d6691187512666efcb63244740a56273c5b765c65d21607e4f07a508e5e63ed0812162ad767fcb1140b89b2c155da945586179";
+ sha512 = "e83d277b8c0e71856e6a7fc61c1c40a87b9b4332b8906a9011b1b1479784cdf8da827799c85cd1576df000e84a0e47056499ae0a9dfd0a90564ac47960ecb1b6";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/dsb/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/dsb/thunderbird-68.2.2.tar.bz2";
locale = "dsb";
arch = "linux-i686";
- sha512 = "84d39965568de9c87c280beb43330aec4ba6cdebf59a9c4f566b6bc01fbe15cc3987e87d9c24a9e746283cc54ec1ebaaff99952de7ff0aa9b6f05f36b1295d09";
+ sha512 = "35df83f2b276c1058b5d433c2ade026d78fbe3261c59ac8fde2ddfd34946eed9bba4cb805d2132c49dfbe087795bd184617641f276be851fa0d56d60eed61b67";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/el/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/el/thunderbird-68.2.2.tar.bz2";
locale = "el";
arch = "linux-i686";
- sha512 = "0942b5c8c7ee792d264824c6837d5857679feae9073fd2451b92dc0f31290360a24f7cd708e550955e798d2decb9f0c3a21dc8ba7bb5f226ba8ba9f502ef870f";
+ sha512 = "4486ec7687e3b9de1186b20637884e634f1b08c7faaf3e4c8f68ec67d7635c2ac69e8cb1c98a771b619b9a60df187d092400c81d8dcf831a3e7233c478721d53";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/en-GB/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/en-GB/thunderbird-68.2.2.tar.bz2";
locale = "en-GB";
arch = "linux-i686";
- sha512 = "12fb5086fd012d85f35a41125b7e5ebf37ec34e9215db9b2a4c67f924d3bfa738698ba15bfa2e51f8cbe0d81cdfe5de4bfecd54b0fe6cc7163c753444e56bb9e";
+ sha512 = "bbe6c601a6cafff609e583ece568536904ac749f9f818e0059a809f46c0860760090573704f589c44e7ee9a89d7e923e4c02100c808cd2abe0a05a1e59695701";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/en-US/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/en-US/thunderbird-68.2.2.tar.bz2";
locale = "en-US";
arch = "linux-i686";
- sha512 = "6004186b0b27165a4d54191a9c2daef34b580c2d97b1e0472e8d8d863e3df51ed56ef17abb7c6944f4da214772780b5c69785b9ad22ca26ba1a8f0390beedc19";
+ sha512 = "cde3ac5e798a9471ea6108a4d4e333eeecede61af22b63723aa849b9a3aaf6fceea5dcd4be73bceab1bef28030fb264573264b93d52caa44105d11b3531d3427";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/es-AR/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/es-AR/thunderbird-68.2.2.tar.bz2";
locale = "es-AR";
arch = "linux-i686";
- sha512 = "6a547a1d0450de1089df18baae81100d3fb9934c963459ec83ae81504e7a1ec7abf595766c84fe8d321f901150a68b7e172888028f3b992b4b6b74ba98ca4efe";
+ sha512 = "6eaad58df92e839c2fe68c2943763889ec866aeabbe5ea58e026f6446645ad73c728fdeff8f4f8db544f576c73df447bcc5ff02b947ac773efae10849383d6c8";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/es-ES/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/es-ES/thunderbird-68.2.2.tar.bz2";
locale = "es-ES";
arch = "linux-i686";
- sha512 = "e1256da3c8938776b11444790f20a68f056f7407f444f0884dfa1c52260309d4adfc64fe95168dd8263e4aea650362ab9fa08930559c7f0e97b3489c172c81fd";
+ sha512 = "0ef85cd0c1bf413dc6368d72b51e000adc8764575ad66727f9e5b09d83840e00be05c14a79aec6a8d1d3c83f1be2d50a2bc0bac46390dea2fc603d80eaf8fb12";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/et/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/et/thunderbird-68.2.2.tar.bz2";
locale = "et";
arch = "linux-i686";
- sha512 = "a5d7cd5e3171d44dbf91f067231301940e8a622a6729333512b49bc037022bc2058fa548c044a40b7ebea5d3199402276a34eeec5cb21b2070d7cfd96737def1";
+ sha512 = "61423c65d957f2c932f292a21b18c76fab5f0cbaf915a1380be812e9fd8b0bddc53b0a0c72d2d1c982a488bc3ff93648d7ddfa56f20275324815d18e433cdf9a";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/eu/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/eu/thunderbird-68.2.2.tar.bz2";
locale = "eu";
arch = "linux-i686";
- sha512 = "08047c83e28397d265712dbd5a533799b2bba97d90f83b93be8377a544226ea0dff22f5b5e2cd5314c24608825048f3e59c6fc348959d63e1acb81d10d687f46";
+ sha512 = "a8b950a206e8032b19f47aa35393b38ebb4e92d79c6251ae51b9cae1eff89192521eb779203aefc1f0193d5224c0679c572540de5a649f785a40117f3ae2e1bc";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/fi/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/fi/thunderbird-68.2.2.tar.bz2";
locale = "fi";
arch = "linux-i686";
- sha512 = "ae407ee0dde2be8a8f89979b5dcacebd13fcfa42fddce48773e8f26ffbb503acc6b17a90170a0d72d550400397c17a725f9bf6f65d842f0f281fc58eaf9dbc53";
+ sha512 = "a35c75087d0261e4257f6f0890545854da399072ab57550745bdf2c45b892f2bef125e79e26fc2badb4924d738b703ffa840f9b0c1dd79610a822adcd0905bb0";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/fr/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/fr/thunderbird-68.2.2.tar.bz2";
locale = "fr";
arch = "linux-i686";
- sha512 = "a776215a9ba91de0500cc7fda245afa19a49b51b60089c55444aa452c5aca06cf3b95e66448147cdbc3df063348c28bbde3f3c2a6e19deed26e1b33dec565b25";
+ sha512 = "a541fe9c16a415798fe4057d56c3676163aed8f10511293be77b3226f950d6876d6552329e2f519f54c534e52f089fb304ca6a6226cbe9d84e90531969343764";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/fy-NL/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/fy-NL/thunderbird-68.2.2.tar.bz2";
locale = "fy-NL";
arch = "linux-i686";
- sha512 = "5302a5709fc4485eff607fd0b5e75f15bb600a14d20661cc4f7280b0bf5c156a40a51045182ff0d31c89d4009c5a516015843ec9fef1fb1134cfa80c511c05ad";
+ sha512 = "03b5528f6622402e1d11110f99121690d7441823788ebbda350e6794818bf03fc38784677fe924f34c4171c86bcaf597f024883b6f57d2abf7c21a1b856024f1";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/ga-IE/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/ga-IE/thunderbird-68.2.2.tar.bz2";
locale = "ga-IE";
arch = "linux-i686";
- sha512 = "4b9cfa317f8ae5accb2c96731bd7fcbaf2eebaaee76bc7383d247cac9db6708b7c4c03d2faf3a6e7e6620b3eb696e9bb3fd18c3dfd1f3ce12e4bc65bb86955ed";
+ sha512 = "9d5c677f73363d2e256707ed85ad83ee8c63262ea0df208ddfb99eb3de6ae8921e3add30e72b6061fe4fcf90b015648819515d4a4d6e72b9d19704dca88089e9";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/gd/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/gd/thunderbird-68.2.2.tar.bz2";
locale = "gd";
arch = "linux-i686";
- sha512 = "8738b93fd18972456158c28d4146ec8548e97339d7b4ff044ace814213d27940b02f9b889b5809525d5bba46a5b3ff4a570c14b3b9a5fe276b4aec515b62055b";
+ sha512 = "6ac94f49cdcddee17875097cf6a79de56b37019d678abd540dad9acf876486f3516d82ebeae2f88dd40672c8cff54eb1e79fa375e734fe403950ed58855781ae";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/gl/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/gl/thunderbird-68.2.2.tar.bz2";
locale = "gl";
arch = "linux-i686";
- sha512 = "c556343f99d39f6ff41f0b05af606ada89e6b95938886f8d0b1ccd7b77f336ae40a8debb003d2bfc865548c5e9e055859d6d353e169a4f2ee7ada7cb8687cc47";
+ sha512 = "05e9c3984cf66d582ea8a46ec4add667379ed2f8986e1b5eacaba64f632fa4dc3201003a121c97f58e779b8ddf90c9065cdf8b7d9425f15971d1aed11e0673fe";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/he/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/he/thunderbird-68.2.2.tar.bz2";
locale = "he";
arch = "linux-i686";
- sha512 = "b6eed03bdebfc334c8852a15989c024883b99f600b9aa58f8344976b63f1f9590aa9b78a2a27b081a1e5256443801f01c1f638f1e4f8c0c2a78e695a5e2f590a";
+ sha512 = "6877f21ac08c980d230d9367a867d1f34f65f52d31d1fbea1f0e818cbcee3bd488e78bdedb3566d146b15c36fd955e1ac2569fee96d4f6131690bd9193cc3856";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/hr/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/hr/thunderbird-68.2.2.tar.bz2";
locale = "hr";
arch = "linux-i686";
- sha512 = "aa4527614db13978d03cf07444109dbc63b7788a2cff924b5566c98d9316031f1c0fb74839b5be78030959f85147c1c1e50edca5605b5cbe2ad3bbbb257c24ad";
+ sha512 = "cd782f28ee3d4bfe661800436eebfc3c726382fded8224ecfd85b32bce96b251f8cf9fb8d619786ac9288e13b5f863b2cfdb211f448f64ab4797fa4a999033da";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/hsb/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/hsb/thunderbird-68.2.2.tar.bz2";
locale = "hsb";
arch = "linux-i686";
- sha512 = "92b1e17c825a60da17bc9942b689337246f301843637fe420284fe89aad4ab2f30101201330d5319a7e6a2bd87567bf7aa7b35bfbc13b1399ed54973afacf4ec";
+ sha512 = "05ae5061071fd2075a37618be4a8bdc3c53e986b2b5308dd570b08c57b65b8eead76825c8bfc80ebaeb6b339b578e1221cfad9040909ff5d10c1ef12ec5b98b5";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/hu/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/hu/thunderbird-68.2.2.tar.bz2";
locale = "hu";
arch = "linux-i686";
- sha512 = "5e0c03de66a9098e290fb93545cb46be41d7e91c865cb3fcff9dee7d141fa113cf7bfc14cbbf1e8f9e3979e6602116081958c22a83ea043015cc5adfb738e5ea";
+ sha512 = "1c84b8ce2cadbf5aad33db4c767ed0dba536107416ef017622215bf1dff780bed20c5e01eb9723d35065aaa1a66cf86e00efae5325a38a5af7a2f1f6271fc0bc";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/hy-AM/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/hy-AM/thunderbird-68.2.2.tar.bz2";
locale = "hy-AM";
arch = "linux-i686";
- sha512 = "3df1da5c3d18ee3705e5d5013a752920863fdcee8a1c021bfde28603862a7c56e60a65b46b98af5d66fc5066c1580ab5484d86dd278d64d5d800b3840361b812";
+ sha512 = "c13118f36f56d76a7e72ba1d43b4d58e3cf7e8d204db61bb1a80d8bdaf03300d6da83e61ef8ebf33db17ccc2aacdb738df058725e9f49441003ae51613d39c98";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/id/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/id/thunderbird-68.2.2.tar.bz2";
locale = "id";
arch = "linux-i686";
- sha512 = "786a5839f311df656fd4a0687819a47589f5a6ebac6f76e1f643136286d43b2f27744dfcc116341a8905b5e1da4ec0ad1f1eb4998e188d2e87ea487c6826fb32";
+ sha512 = "edc061991bd2f320091905e82e7062c81aa6ed02b705c1d10c9ff18e20cd80589debead4a8dafbc9dd1452d425dd7c112240205ff4a3adcc53243fbd9a109683";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/is/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/is/thunderbird-68.2.2.tar.bz2";
locale = "is";
arch = "linux-i686";
- sha512 = "53e4f76d41e1f8af240ecec249bd3ef3c787c6ff69320694bc682a876a76be22ed59abf0bc83691c7ea96d1e16f5a4c859e2b62528c99261f562012dbd035a9f";
+ sha512 = "846f37e9f069b264d5c1fc8bc22c85a19d7bcd798541706b75db6b44fb2885cb9dd212c4a71e8c91ac36bec1ab2354061c42b994737796a353fa906b2db69444";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/it/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/it/thunderbird-68.2.2.tar.bz2";
locale = "it";
arch = "linux-i686";
- sha512 = "8ecb5594e5252be84f97a55b37f5089220a3e5c1565686fe02f00d94a1418a9460e4c1f25724243c82b3c9442eb8cfbff3c3c9470971921469f2fd71aec66860";
+ sha512 = "9f598559b0d5b25951f890111c3664769fbf434e96a41df032e120d6f7c0ad3427dd8991127817a10ff78a555b09ccc8d48b045698e84d5121f2b0bff56af376";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/ja/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/ja/thunderbird-68.2.2.tar.bz2";
locale = "ja";
arch = "linux-i686";
- sha512 = "7f9ed4fbdc0549c6ab704f80676218980a4b2609086437f57e22e9750e5a34d7506c1ee43ec48031a28322cdf4dcde6bd14c05fd032244acf33310fb6aa8e9a2";
+ sha512 = "02f3f38adcf27027a262932fc15b615ea60f11316085170876c22d268d472110624b52bc1a0bed44dc1b8f617853626efb9fb42c8a0b1d689bebc6f01278c12c";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/ka/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/ka/thunderbird-68.2.2.tar.bz2";
locale = "ka";
arch = "linux-i686";
- sha512 = "bab15aa28fc92850d374f76ae9898c9408176db9b9e19cbdb49f7b586172c20eed0cb358f3cd4b5fcc2a4740188c0f041cf617a63743a42648c7e33dd0fb79e8";
+ sha512 = "0416109691e441633d530f47e3886e45ef60affedf72fe47bafa93b8eabdf1b48c926b361d2d3bb747ccc20a9e7ea9b3ff5911fa9c3556c701ba0208dc4e9182";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/kab/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/kab/thunderbird-68.2.2.tar.bz2";
locale = "kab";
arch = "linux-i686";
- sha512 = "26b1055333e508666dd24706da824c5cf9d5f87d1d1cb1c4d42894b836412205a7cc7ff73f764d8f2a1852138923bb02a6b2a2c3c92d1fe9307529533b6360e9";
+ sha512 = "e6b1e52b8eed939da4b96a4de06174f2758f78b773499a3c860de4a890bf5345d69ba521581ed5d1ae767decad0bb0a474fd8476ba9188a74728c0ac92892a56";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/kk/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/kk/thunderbird-68.2.2.tar.bz2";
locale = "kk";
arch = "linux-i686";
- sha512 = "d946c82a8c35d82147812ef16e4573ae559dbfe65f4a6e5fc7dd107fb57fc6ba2a47f8a3655344e9e6172628692ad7815045830ee27bb10aab0d71483936d6ac";
+ sha512 = "d3c9be93f32e2f9b83c29ce0fd28fc07d95f2173a17590b02e2dc69d2ba4cf4f38fe8fe4ce24f17e232480c25ae1e67457265e46bb3e4392164b85340d7fdba8";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/ko/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/ko/thunderbird-68.2.2.tar.bz2";
locale = "ko";
arch = "linux-i686";
- sha512 = "3b9d9e70c097a1b7958c6854bc2da121f44921962d873e7f90fee85ce2214725223482aebcd503205e32501648c774199eced7ff34effb428dbc738f1ba4b963";
+ sha512 = "a3f35fce676bd90c1bca2bb5bf6886d8806da47ab1ecdac24c449070f77f7174292491ed3b826842d9f7ae6f008a10e4548b01b1543adcd9a85f964940c6784f";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/lt/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/lt/thunderbird-68.2.2.tar.bz2";
locale = "lt";
arch = "linux-i686";
- sha512 = "0cf99a6aec58d2f56f6a52fc5fee17b9e1d5abd0ece53073cc392c71452e1415c94ad0af003dd0a97fc5c6744a1a2243aef69dc44b831be51108b769e5bff87d";
+ sha512 = "416b15047d4884bd41bfd0e9ade075915be84bcf8ce2d13695cf1df66d99f79a31bc5428833efe0ee00b1bbc960085426430721c3ec79c47966b5d8818563cc6";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/ms/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/ms/thunderbird-68.2.2.tar.bz2";
locale = "ms";
arch = "linux-i686";
- sha512 = "8b4697a312aafdd88a5ecdf898a796bddb91e80b4c8c9c342fce765ee0f4dd494114324a51d6379468756a44bc71cb6f46b8fabc7ca733d9d85d08069f18526d";
+ sha512 = "31539a4147fdd8f9f193c012d19dc5998737efecce32e3ac20b5316bb83a04ff0db8023c92c14e72e03fa02b3b94a0f3b5791a606955f361cb59524da692ac6a";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/nb-NO/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/nb-NO/thunderbird-68.2.2.tar.bz2";
locale = "nb-NO";
arch = "linux-i686";
- sha512 = "ad6275f8343dd36ed039524875b41ab9c8bafd2a1e54291b98c16b0ab35f9bea1bfee3fce86070317fad2f25d46d0aa9ef0824e4ad88e0879a33ae753c61ab2d";
+ sha512 = "ec73dc47c1c362b40f8c2b41eb565fb5544a749ab40def2188b7620c8ae5ad3bb42152bb1415695b4ca1dea5b64310d909ee87a133bd2c055a71e459f8766056";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/nl/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/nl/thunderbird-68.2.2.tar.bz2";
locale = "nl";
arch = "linux-i686";
- sha512 = "49f586a62969e6ea5638eb95f812e7d4a891ef55f381633792ed0820ad098cc527dc9490c3a1ce52246526f0a8cf00eb16666c6a7f932a68c6d440e151b452cd";
+ sha512 = "75e7ded719cd25276853a8ebce5346ff3cc5a44005412c40c097b9c1fdfdbfa5547f3390a36c376ddc4c26a0037347b8c606d66dbc9783a5978ff59a63f60286";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/nn-NO/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/nn-NO/thunderbird-68.2.2.tar.bz2";
locale = "nn-NO";
arch = "linux-i686";
- sha512 = "1f04f2bf7a60472eff1b546608cfb26e41f31a273d1037e0d73530029a757dfcd95e2c1b85a6990b6f7eec28138835fe096266a00dd094b4db74007cd59ef00d";
+ sha512 = "38fbd3a7549964dfad40b49eb3dcc9123247d5cefc19af7c0f9ed7cafca96d89d780035d25655a49ca38404ff7ed8f1ff95cf6e0ce40a5a82caf19a7aa58c4e8";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/pl/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/pl/thunderbird-68.2.2.tar.bz2";
locale = "pl";
arch = "linux-i686";
- sha512 = "f232e4b6cfcea81ed70e56e9812b8e0783205f49b846d29338ad09457db9a18e4fbb35738bf5e9abce42855c13c1839605aa343cb7d33d0110b68d634183e697";
+ sha512 = "ae94be2b7cef429c3eeba0e9c19f42e91b2be694c674c067b93d337fee373d8b6d9084202257320435859a2f65dee7605202f5ad47ed0526e99b82fdf505672a";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/pt-BR/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/pt-BR/thunderbird-68.2.2.tar.bz2";
locale = "pt-BR";
arch = "linux-i686";
- sha512 = "2527ec08fc23d01712574e3c8419273ac82111c5f2b4b6040cd8f3292aeadb36021029b01bc319d8ca52177db39f1a446acd5537a6e8f42800eb22c3e2d7cb30";
+ sha512 = "68a1331ae1b25d00a6e0ff17b2965576851188a6083fba98a67712adabe63f326147a52bd4f28c4870ce0e6e55713d28a07558e29875e29a1a87549b627c4a19";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/pt-PT/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/pt-PT/thunderbird-68.2.2.tar.bz2";
locale = "pt-PT";
arch = "linux-i686";
- sha512 = "c91d9d0becade1508a3212693f5fcdeb917fe5df5d63b54de125b76786dc3787a7f5f220eb48add1dd1eee95f7eb120b1c1dc85dc0bd91688c883be9219f3d7d";
+ sha512 = "6e72e69080c703c70f7b2e4340376a0725b23dc188c13ba4784ada1baab6192373e41555ed84f14c8c584aa16dddff8c7780a53587f3e57958eb32dc37b96e32";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/rm/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/rm/thunderbird-68.2.2.tar.bz2";
locale = "rm";
arch = "linux-i686";
- sha512 = "45a4f608eb5e64f24ee385328a3a568aa2ad3284169019423c8b414790779cd079c2d73b290716f18227210ab5eff50625bd6688498bc027228b8fff51fda5b6";
+ sha512 = "c311d16bd09c414b34e5b131385322686a0b46031a24eeaebea37122137136ce0eb84ac51e927595aaf015c4b3789d5545e8f3ebbe98aca14da1ae2747be1b1d";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/ro/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/ro/thunderbird-68.2.2.tar.bz2";
locale = "ro";
arch = "linux-i686";
- sha512 = "e344d838e2f79dd8ff79cf2e7ff2a1d8f6c7e64f29cf870d8a6fad9b3dee31de6c0a80d3007dd498dffb816c00dc8429150bc6b49a5b6eb10b633a4e942ca725";
+ sha512 = "e366dc65546d39f7ff181eb3502c29d46e0e7eb15cab0fd9e85b681c03aa9cfe8a1eaba397bac88256efb986a83bd195655fd4b0568f5d26c2f290ba3a075067";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/ru/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/ru/thunderbird-68.2.2.tar.bz2";
locale = "ru";
arch = "linux-i686";
- sha512 = "8dbfd4f8969703623388a55e790b722933f2c1faf702ff5c7fdfe3cdab8f62fc4ea69f9303edf94a41a71be1b8c5a2ddfa5509d4c8abe260c91b7075349afe64";
+ sha512 = "9778767a03164b9450ac287c28e7c93d8335c8c38d4856da6a1e8fd2a041e49c015a9e8d8892403761075e098cb3b37e2bc36205339cb4ecdecd861e860ed973";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/si/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/si/thunderbird-68.2.2.tar.bz2";
locale = "si";
arch = "linux-i686";
- sha512 = "f1808e9648caa00afab0609dac1cb564dbf6e5bef75446071997cc9913da8470e54cb254282fc6e8b839e88b003ef18426609a97cd1affb93659fcb519913a5c";
+ sha512 = "53c4e8b4f7f2bacb648cfcfdc6307aba3564b4dd1aea392e4d4fe0d4ea8c882aa13979e63b6a8422dfdce230c4e8cff6a6ae98d8d568fe11ee9b7c4126dbe31c";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/sk/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/sk/thunderbird-68.2.2.tar.bz2";
locale = "sk";
arch = "linux-i686";
- sha512 = "7d5b480a44dae0d2f5348261ecad04348ebb7943a757fe83c0fb154da251b423ba21840c5d1fbf8d7979dd30c2d5e7b18e90d0ad033a1e96d6f6587407a24cc9";
+ sha512 = "ecd7eeb4cd782107612dcea181c490753ae387daef0af2b0b49a97abf2b0f056348b14eb841253a7274ac65e3d17641ccf0eaf64cf2823d66a72c3435124140e";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/sl/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/sl/thunderbird-68.2.2.tar.bz2";
locale = "sl";
arch = "linux-i686";
- sha512 = "f76e1f01b8da8a2ba344dd3bedfa4301df03fabf9848fa189d522995cd48d81f8d00f11e01722868acb1993d4e79977122e04e3d208629b2e398c715777194e1";
+ sha512 = "bf8b1e4e6928f2b27ff41b8ec4a58379d8f64ca6cc97bad5b94d63f21ccce3fc375c34333bc0095ea44e5ff0a46e2932112f4b4a730bc4e8672c7cd9671fbe3c";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/sq/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/sq/thunderbird-68.2.2.tar.bz2";
locale = "sq";
arch = "linux-i686";
- sha512 = "cff32ee84324724dea5612e5b48b22adc63d8b9428c5937f84c94da83bcf5f2aadda6ab81c5f9bced6d693689bc38bf15c764d4ab4809cacec3bb54cd82745f7";
+ sha512 = "40e3ae4db210744ee064b1d7a659b602a1c6d2c68019bae625d02a75baa7e5b3a821f0c86c646d5bf244cba2e870c38ee452692143847fc4a14795fee9b40f1a";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/sr/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/sr/thunderbird-68.2.2.tar.bz2";
locale = "sr";
arch = "linux-i686";
- sha512 = "96d25f7d952e204751cd601932713418cd495d11364430a37ecfa36333113a6132209b8e8f0ec337799ed02b71b388f43e22a53fa168f17e4d15e7594170299a";
+ sha512 = "e70ee2b514f504b423885020bada122985588d00dc1dd5a11cd9cf2b41e60ed0f6d6928d54df5fcf98909c768f82038b8de214eb07117ba84026ac3e4ac1ad51";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/sv-SE/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/sv-SE/thunderbird-68.2.2.tar.bz2";
locale = "sv-SE";
arch = "linux-i686";
- sha512 = "8bc790d7951469e2dfa2499622464cf55427a6bc93dec50b18f014ac079ec0579b91a11680e4104f7d6a38f60d467e9fb3c9ee7ab83b64f8dae2c1e979150bd3";
+ sha512 = "abddf117adb3062e86b2ed4c7c120698293ca87c029c4e5652ff279da621cddd38ae35a3893ac51a2f805f33003efe8f1d9527d5c9d9a3e7352bbad2931dd369";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/tr/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/tr/thunderbird-68.2.2.tar.bz2";
locale = "tr";
arch = "linux-i686";
- sha512 = "2c40fa3e6ecfb68507897e669bed229ed98e1b4a3998b55b59523d3cec1fc5553cfacbd9be3d55f7a32b612ee662dfda7c8a21a4c26c750d48b87d31368a9942";
+ sha512 = "b245f36985237ecbd6b5876b424fdfa8f5cb259d3421c8857174f0ae49ce606c1e6e95bbd6f88c46aa4f4a30e1a58315f7ac2a2ec2212503b0885588d46f7520";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/uk/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/uk/thunderbird-68.2.2.tar.bz2";
locale = "uk";
arch = "linux-i686";
- sha512 = "5eee26a500c1d4bf71222987523cc3e5f144aca02c17c88a01d4b68f9ac5e1298407460c69504d0a7b1e5727755cb32e2ae523cd97766419848c1b6dc0a30bf0";
+ sha512 = "c750c4821d5090457640d03819c60faeed9178eae08c596caac5af8b775891bb6fbf311644395e9521d550d1119143ddd100ede437530edc8b6dd2e109124f3c";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/uz/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/uz/thunderbird-68.2.2.tar.bz2";
locale = "uz";
arch = "linux-i686";
- sha512 = "51a0fc8dc30cc82f7d3b222167aaa8ea0225b4136ebacee38687cdc1235c0720da14cd2a3e1875a4c4bfa3bb8fd9045541ca6df736115312ac49a2db2ef83639";
+ sha512 = "e59c19b61a03b9170fec7c12680f136bdda129c72a0901d653279e0c5c0a0d748f1434379b3901ffc7fccd0d4688cd8414171b0f94171cddbc7f249817689b8a";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/vi/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/vi/thunderbird-68.2.2.tar.bz2";
locale = "vi";
arch = "linux-i686";
- sha512 = "bb02dd69a8c8d514666fedb9d7de520f6ea89740956ddcd9d7f90175bca6f7bcf79b573c6e5ecd6fdfcdd15aa2a35881e8877074fbb795019eccff52cb943a91";
+ sha512 = "9e65b74645b229c92df8844f356034504f185a4ee9a0a504fb8a4c9c253101eb855a9b5ba28e995221da85c6e58aac9f0e7368639202011307d1b2a623b85931";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/zh-CN/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/zh-CN/thunderbird-68.2.2.tar.bz2";
locale = "zh-CN";
arch = "linux-i686";
- sha512 = "408599229da40b2ce1a23ec1e5b12c7f4a24fb63524d792d50764cdfbcc6774dd7f651ba2dce46bccd94937e24b4b08d8bf37b6fb839c61540dfbf36f6d3e6b2";
+ sha512 = "2cf2d1a12c53e1bfe9f9cfd13449dbb62260fbf7a1548b3b2d76403a2597c286f727341c4bb4ed65b5086391a99a0fdf97a74c967a4ea9f99a0a393b9a87f7be";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/zh-TW/thunderbird-68.0.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.2.2/linux-i686/zh-TW/thunderbird-68.2.2.tar.bz2";
locale = "zh-TW";
arch = "linux-i686";
- sha512 = "d75c9bfc6234fa0ddc56b7c1dace76b789e29c0cb03ff17395eeba020a82431e457271e95117731963f2666295b94746d0370bf0e85f9c3646836830684bca45";
+ sha512 = "389a4e08d3a8cef73017e26b5abb4cd21f8237486470fa382ad90f6d1276bb4ee9e35dc66422728de4e8eb35145d898a705e025d04eb406099a275c2afb05623";
}
];
}
diff --git a/pkgs/applications/networking/mailreaders/thunderbird/default.nix b/pkgs/applications/networking/mailreaders/thunderbird/default.nix
index f2b4cfb4bef..a4edc76caca 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird/default.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird/default.nix
@@ -25,11 +25,11 @@ let
gcc = if stdenv.cc.isGNU then stdenv.cc.cc else stdenv.cc.cc.gcc;
in stdenv.mkDerivation rec {
pname = "thunderbird";
- version = "68.0";
+ version = "68.2.2";
src = fetchurl {
url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
- sha512 = "2cz583rwfpj4z5cwg2vfy4ha0pz4xs9g7li078rmk6x19haiv8s9fwijd82xgxax0afn8wk80bq5kd8yz38l9432f6bar8xnwb21y4i";
+ sha512 = "3mvanjfc35f14lsfa4zjlhsvwij1n9dz9xmisd5s376r5wp9y33sva5ly914b2hmdl85ypdwv90zyi6whj7jb2f2xmqk480havxgjcn";
};
# from firefox, but without sound libraries
@@ -136,6 +136,9 @@ in stdenv.mkDerivation rec {
gappsWrapperArgs+=(
--argv0 "$target"
--set MOZ_APP_LAUNCHER thunderbird
+ # See commit 87e261843c4236c541ee0113988286f77d2fa1ee
+ --set MOZ_LEGACY_PROFILES 1
+ --set MOZ_ALLOW_DOWNGRADE 1
# https://github.com/NixOS/nixpkgs/pull/61980
--set SNAP_NAME "thunderbird"
)
diff --git a/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig.patch b/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig.patch
index 65eba3a2fc2..fe3a93ebda7 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig.patch
+++ b/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig.patch
@@ -21,3 +21,15 @@ diff -ru -x '*~' a/toolkit/content/jar.mn b/toolkit/content/jar.mn
content/global/buildconfig.css
content/global/contentAreaUtils.js
content/global/datepicker.xhtml
+--- a/comm/mail/base/jar.mn
++++ b/comm/mail/base/jar.mn
+@@ -117,9 +117,7 @@
+ % override chrome://mozapps/content/profile/profileDowngrade.js chrome://messenger/content/profileDowngrade.js
+ % override chrome://mozapps/content/profile/profileDowngrade.xul chrome://messenger/content/profileDowngrade.xul
+
+-* content/messenger/buildconfig.html (content/buildconfig.html)
+ content/messenger/buildconfig.css (content/buildconfig.css)
+-% override chrome://global/content/buildconfig.html chrome://messenger/content/buildconfig.html
+ % override chrome://global/content/buildconfig.css chrome://messenger/content/buildconfig.css
+
+ # L10n resources and overrides.
diff --git a/pkgs/applications/networking/mailreaders/trojita/default.nix b/pkgs/applications/networking/mailreaders/trojita/default.nix
index 7f7296cd700..9829ca883f3 100644
--- a/pkgs/applications/networking/mailreaders/trojita/default.nix
+++ b/pkgs/applications/networking/mailreaders/trojita/default.nix
@@ -1,36 +1,56 @@
-{ mkDerivation
-, lib
-, fetchurl
+{ akonadi-contacts
, cmake
+, fetchgit
+, gnupg
+, gpgme
+, kcontacts
+, kf5gpgmepp
+, lib
+, mimetic
+, mkDerivation
+, pkgconfig
+, qgpgme
, qtbase
-, qtwebkit
+, qtkeychain
, qttools
+, qtwebkit
}:
mkDerivation rec {
pname = "trojita";
- version = "0.7";
+ version = "0.7.20190618";
- src = fetchurl {
- url = "mirror://sourceforge/trojita/trojita/${pname}-${version}.tar.xz";
- sha256 = "1n9n07md23ny6asyw0xpih37vlwzp7vawbkprl7a1bqwfa0si3g0";
+ src = fetchgit {
+ url = "https://anongit.kde.org/trojita.git";
+ rev = "90b417b131853553c94ff93aef62abaf301aa8f1";
+ sha256 = "0xpxq5bzqaa68lkz90wima5q2m0mdcn0rvnigb66lylb4n20mnql";
};
buildInputs = [
+ akonadi-contacts
+ gpgme
+ kcontacts
+ mimetic
+ qgpgme
qtbase
+ qtkeychain
qtwebkit
+ mimetic
+ kf5gpgmepp
];
nativeBuildInputs = [
cmake
+ pkgconfig
qttools
+ gnupg
];
-
meta = with lib; {
description = "A Qt IMAP e-mail client";
- homepage = http://trojita.flaska.net/;
+ homepage = "http://trojita.flaska.net/";
license = with licenses; [ gpl2 gpl3 ];
+ maintainers = with maintainers; [ ehmry ];
platforms = platforms.linux;
};
diff --git a/pkgs/applications/networking/mpop/default.nix b/pkgs/applications/networking/mpop/default.nix
index 7d311d4bc70..2cdfd19067f 100644
--- a/pkgs/applications/networking/mpop/default.nix
+++ b/pkgs/applications/networking/mpop/default.nix
@@ -4,11 +4,11 @@ with stdenv.lib;
stdenv.mkDerivation rec {
pname = "mpop";
- version = "1.4.5";
+ version = "1.4.6";
src = fetchurl {
url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz";
- sha256 = "1m6743j8g777lijvxqw2wz6pv2g5a9wlh6zq7awk0hvd44xp4sav";
+ sha256 = "0q4ifzvl1gcndvqqqk7n9mc599r4s2knxjc7alflwb366fql58gv";
};
nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/networking/msmtp/default.nix b/pkgs/applications/networking/msmtp/default.nix
index fc720a047b5..6ebc3e66491 100644
--- a/pkgs/applications/networking/msmtp/default.nix
+++ b/pkgs/applications/networking/msmtp/default.nix
@@ -9,11 +9,11 @@ let
in stdenv.mkDerivation rec {
pname = "msmtp";
- version = "1.8.5";
+ version = "1.8.6";
src = fetchurl {
url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz";
- sha256 = "0fczpfxlr62wkr7bwhp24clxg962k5khgz14h818qyy4v77dl4qn";
+ sha256 = "1qa260xrm0fzlwxpjvgvq39m4dfkskjlyb7m4y2vlr8c8d3z29b6";
};
patches = [
diff --git a/pkgs/applications/networking/mullvad-vpn/default.nix b/pkgs/applications/networking/mullvad-vpn/default.nix
index b0786d742db..5f8844969b2 100644
--- a/pkgs/applications/networking/mullvad-vpn/default.nix
+++ b/pkgs/applications/networking/mullvad-vpn/default.nix
@@ -40,11 +40,11 @@ in
stdenv.mkDerivation rec {
pname = "mullvad-vpn";
- version = "2019.7";
+ version = "2019.8";
src = fetchurl {
url = "https://www.mullvad.net/media/app/MullvadVPN-${version}_amd64.deb";
- sha256 = "1hjndcdkin98l6jv39r98zfw33qg0gnvlv8q80qsj5x36a19d4v9";
+ sha256 = "0cjc8j8pqgdhnax4mvwmvnxfcygjsp805hxalfaj8wa5adph96hz";
};
nativeBuildInputs = [
@@ -71,14 +71,10 @@ stdenv.mkDerivation rec {
mv opt/Mullvad\ VPN/* $out/share/mullvad
sed -i 's|\/opt\/Mullvad.*VPN|'$out'/bin|g' $out/share/applications/mullvad-vpn.desktop
- sed -i 's|\/opt\/Mullvad.*VPN/resources|'$out'/bin|g' $out/share/mullvad/resources/mullvad-daemon.service
- ln -s $out/share/mullvad/mullvad-vpn $out/bin/mullvad-vpn
+ ln -s $out/share/mullvad/mullvad-{gui,vpn} $out/bin/
ln -s $out/share/mullvad/resources/mullvad-daemon $out/bin/mullvad-daemon
- mkdir -p $out/etc/systemd/system
- ln -s $out/share/mullvad/resources/mullvad-daemon.service $out/etc/systemd/system/mullvad-daemon.service
-
runHook postInstall
'';
@@ -88,6 +84,7 @@ stdenv.mkDerivation rec {
changelog = "https://github.com/mullvad/mullvadvpn-app/blob/${version}/CHANGELOG.md";
license = licenses.gpl3;
platforms = [ "x86_64-linux" ];
+ maintainers = [ maintainers.xfix ];
};
}
diff --git a/pkgs/applications/networking/mumble/default.nix b/pkgs/applications/networking/mumble/default.nix
index 6439991920d..fe4c9f32b21 100644
--- a/pkgs/applications/networking/mumble/default.nix
+++ b/pkgs/applications/networking/mumble/default.nix
@@ -1,32 +1,29 @@
-{ stdenv, fetchurl, fetchFromGitHub, fetchpatch, pkgconfig
-, qt4, qmake4Hook, qt5, avahi, boost, libopus, libsndfile, protobuf3_6, speex, libcap
+{ stdenv, fetchurl, fetchFromGitHub, fetchpatch, pkgconfig, qt5
+, avahi, boost, libopus, libsndfile, protobuf, speex, libcap
, alsaLib, python
+, rnnoise
, jackSupport ? false, libjack2 ? null
, speechdSupport ? false, speechd ? null
, pulseSupport ? false, libpulseaudio ? null
-, iceSupport ? false, zeroc-ice ? null, zeroc-ice-36 ? null
+, iceSupport ? false, zeroc-ice ? null
}:
assert jackSupport -> libjack2 != null;
assert speechdSupport -> speechd != null;
assert pulseSupport -> libpulseaudio != null;
-assert iceSupport -> zeroc-ice != null && zeroc-ice-36 != null;
+assert iceSupport -> zeroc-ice != null;
with stdenv.lib;
let
- generic = overrides: source: (if source.qtVersion == 5 then qt5.mkDerivation else stdenv.mkDerivation) (source // overrides // {
+ generic = overrides: source: qt5.mkDerivation (source // overrides // {
name = "${overrides.type}-${source.version}";
patches = (source.patches or []) ++ optional jackSupport ./mumble-jack-support.patch;
- nativeBuildInputs = [ pkgconfig python ]
- ++ { qt4 = [ qmake4Hook ]; qt5 = [ qt5.qmake ]; }."qt${toString source.qtVersion}"
+ nativeBuildInputs = [ pkgconfig python qt5.qmake ]
++ (overrides.nativeBuildInputs or [ ]);
- # protobuf is freezed to 3.6 because of this bug: https://github.com/mumble-voip/mumble/issues/3617
- # this could be reverted to the latest version in a future release of mumble as it is already fixed in master
- buildInputs = [ boost protobuf3_6 avahi ]
- ++ optional (source.qtVersion == 4) qt4
+ buildInputs = [ boost protobuf avahi ]
++ (overrides.buildInputs or [ ]);
qmakeFlags = [
@@ -76,9 +73,8 @@ let
client = source: generic {
type = "mumble";
- nativeBuildInputs = optional (source.qtVersion == 5) qt5.qttools;
- buildInputs = [ libopus libsndfile speex ]
- ++ optional (source.qtVersion == 5) qt5.qtsvg
+ nativeBuildInputs = [ qt5.qttools ];
+ buildInputs = [ libopus libsndfile speex qt5.qtsvg rnnoise ]
++ optional stdenv.isLinux alsaLib
++ optional jackSupport libjack2
++ optional speechdSupport speechd
@@ -107,18 +103,18 @@ let
'';
} source;
- server = source: let ice = if source.qtVersion == 4 then zeroc-ice-36 else zeroc-ice; in generic {
+ server = source: generic {
type = "murmur";
postPatch = optional iceSupport ''
- grep -Rl '/usr/share/Ice' . | xargs sed -i 's,/usr/share/Ice/,${ice.dev}/share/ice/,g'
+ grep -Rl '/usr/share/Ice' . | xargs sed -i 's,/usr/share/Ice/,${zeroc-ice.dev}/share/ice/,g'
'';
configureFlags = [
"CONFIG+=no-client"
] ++ optional (!iceSupport) "CONFIG+=no-ice";
- buildInputs = [ libcap ] ++ optional iceSupport ice;
+ buildInputs = [ libcap ] ++ optional iceSupport zeroc-ice;
installPhase = ''
# bin stuff
@@ -126,48 +122,19 @@ let
'';
} source;
- stableSource = rec {
- version = "1.2.19";
- qtVersion = 4;
-
- src = fetchurl {
- url = "https://github.com/mumble-voip/mumble/releases/download/${version}/mumble-${version}.tar.gz";
- sha256 = "1s60vaici3v034jzzi20x23hsj6mkjlc0glipjq4hffrg9qgnizh";
- };
-
- patches = [
- # Fix compile error against boost 1.66 (#33655):
- (fetchpatch {
- url = "https://github.com/mumble-voip/mumble/commit/"
- + "ea861fe86743c8402bbad77d8d1dd9de8dce447e.patch";
- sha256 = "1r50dc8dcl6jmbj4abhnay9div7y56kpmajzqd7ql0pm853agwbh";
- })
- # Fixes hang on reconfiguring audio (often including startup)
- # https://github.com/mumble-voip/mumble/pull/3418
- (fetchpatch {
- url = "https://github.com/mumble-voip/mumble/commit/"
- + "fbbdf2e8ab7d93ed6f7680268ad0689b7eaa71ad.patch";
- sha256 = "1yhj62mlwm6q42i4aclbia645ha97d3j4ycxhgafr46dbjs0gani";
- })
- ];
- };
-
- rcSource = rec {
- version = "1.3.0-rc2";
- qtVersion = 5;
+ source = rec {
+ version = "1.3.0";
# Needs submodules
src = fetchFromGitHub {
owner = "mumble-voip";
repo = "mumble";
rev = version;
- sha256 = "00irlzz5q4drmsfbwrkyy7p7w8a5fc1ip5vyicq3g3cy58dprpqr";
+ sha256 = "0g5ri84gg0x3crhpxlzawf9s9l4hdna6aqw6qbdpx1hjlf5k6g8k";
fetchSubmodules = true;
};
};
in {
- mumble = client stableSource;
- mumble_rc = client rcSource;
- murmur = server stableSource;
- murmur_rc = server rcSource;
+ mumble = client source;
+ murmur = server source;
}
diff --git a/pkgs/applications/networking/newsreaders/liferea/default.nix b/pkgs/applications/networking/newsreaders/liferea/default.nix
index 0cfcf6408ba..6352922e33e 100644
--- a/pkgs/applications/networking/newsreaders/liferea/default.nix
+++ b/pkgs/applications/networking/newsreaders/liferea/default.nix
@@ -1,7 +1,7 @@
{ stdenv, fetchurl, pkgconfig, intltool, python3Packages, wrapGAppsHook
, glib, libxml2, libxslt, sqlite, libsoup , webkitgtk, json-glib, gst_all_1
, libnotify, gtk3, gsettings-desktop-schemas, libpeas, dconf, librsvg
-, gobject-introspection, glib-networking, hicolor-icon-theme
+, gobject-introspection, glib-networking
}:
stdenv.mkDerivation rec {
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
buildInputs = [
glib gtk3 webkitgtk libxml2 libxslt sqlite libsoup gsettings-desktop-schemas
libpeas gsettings-desktop-schemas json-glib dconf gobject-introspection
- librsvg glib-networking libnotify hicolor-icon-theme
+ librsvg glib-networking libnotify
] ++ (with gst_all_1; [
gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad
]);
diff --git a/pkgs/applications/networking/newsreaders/quiterss/default.nix b/pkgs/applications/networking/newsreaders/quiterss/default.nix
index 3a72ae8ce5f..6274c1c345d 100644
--- a/pkgs/applications/networking/newsreaders/quiterss/default.nix
+++ b/pkgs/applications/networking/newsreaders/quiterss/default.nix
@@ -4,13 +4,13 @@
stdenv.mkDerivation rec {
pname = "quiterss";
- version = "0.18.12";
+ version = "0.19.1";
src = fetchFromGitHub {
owner = "QuiteRSS";
repo = "quiterss";
rev = version;
- sha256 = "0xav9qr8n6310636nfbgx4iix65fs3ya5rz2isxsf38bkjm7r3pa";
+ sha256 = "0zr17r33g99ylvb1avcbixg2jiwisaks4x91lywv2dy3g6dkpxml";
};
nativeBuildInputs = [ qmake pkgconfig wrapQtAppsHook ];
diff --git a/pkgs/applications/networking/nextcloud-client/default.nix b/pkgs/applications/networking/nextcloud-client/default.nix
index 6f7f47bdcfa..974d1e5a077 100644
--- a/pkgs/applications/networking/nextcloud-client/default.nix
+++ b/pkgs/applications/networking/nextcloud-client/default.nix
@@ -18,13 +18,13 @@
mkDerivation rec {
pname = "nextcloud-client";
- version = "2.5.3";
+ version = "2.6.1";
src = fetchFromGitHub {
owner = "nextcloud";
repo = "desktop";
rev = "v${version}";
- sha256 = "1pzlq507fasf2ljf37gkw00qrig4w2r712rsy05zfwlncgcn7fnw";
+ sha256 = "18318j488pxksf4zc6zag8pdpyaks55yivn91nx3x458ax6albkz";
};
patches = [
diff --git a/pkgs/applications/networking/owncloud-client/default.nix b/pkgs/applications/networking/owncloud-client/default.nix
index 7907365a6a3..c674956066a 100644
--- a/pkgs/applications/networking/owncloud-client/default.nix
+++ b/pkgs/applications/networking/owncloud-client/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchurl, cmake, pkgconfig, qtbase, qtwebkit, qtkeychain, sqlite }:
+{ stdenv, fetchurl, mkDerivation, cmake, pkgconfig, qtbase, qtwebkit, qtkeychain, sqlite }:
-stdenv.mkDerivation rec {
+mkDerivation rec {
pname = "owncloud-client";
version = "2.5.4.11654";
diff --git a/pkgs/applications/networking/p2p/deluge/default.nix b/pkgs/applications/networking/p2p/deluge/default.nix
index 6e3b8a7293e..63218f1c2ff 100644
--- a/pkgs/applications/networking/p2p/deluge/default.nix
+++ b/pkgs/applications/networking/p2p/deluge/default.nix
@@ -19,7 +19,7 @@ pythonPackages.buildPythonPackage rec {
propagatedBuildInputs = with pythonPackages; [
pyGtkGlade twisted Mako chardet pyxdg pyopenssl service-identity
- libtorrentRasterbar.dev libtorrentRasterbar.python
+ libtorrentRasterbar.dev libtorrentRasterbar.python setuptools
];
nativeBuildInputs = [ intltool ];
diff --git a/pkgs/applications/networking/p2p/ktorrent/default.nix b/pkgs/applications/networking/p2p/ktorrent/default.nix
index 6dd2fc34355..e38378d09b3 100644
--- a/pkgs/applications/networking/p2p/ktorrent/default.nix
+++ b/pkgs/applications/networking/p2p/ktorrent/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchurl, fetchpatch, cmake
+{ mkDerivation, lib, fetchurl, fetchpatch, cmake
, extra-cmake-modules, qtbase, qtscript
, karchive, kcrash, kdnssd, ki18n, kio, knotifications, knotifyconfig
, kdoctools, kross, kcmutils, kwindowsystem
, libktorrent, taglib, libgcrypt, kplotting
}:
-stdenv.mkDerivation rec {
+mkDerivation rec {
pname = "ktorrent";
- version = "${libktorrent.mainVersion}.0";
+ version = "${libktorrent.mainVersion}";
src = fetchurl {
url = "mirror://kde/stable/ktorrent/${libktorrent.mainVersion}/${pname}-${version}.tar.xz";
- sha256 = "18w6qh09k84qpzaxxb76a4g59k4mx5wk897vqp1wwv80g0pqhmrw";
+ sha256 = "0kwd0npxfg4mdh7f3xadd2zjlqalpb1jxk61505qpcgcssijf534";
};
nativeBuildInputs = [ cmake kdoctools extra-cmake-modules ];
@@ -22,27 +22,9 @@ stdenv.mkDerivation rec {
libktorrent taglib libgcrypt kplotting
];
- patches = [
- # Fix build with CMake 3.11
- (fetchpatch {
- url = "https://cgit.kde.org/ktorrent.git/patch/?id=672c5076de7e3a526d9bdbb484a69e9386bc49f8";
- sha256 = "1cn4rnbhadrsxqx50fawpd747azskavbjraygr6s11rh1wbfrxid";
- })
-
- # Fix build against Qt 5.11
- (fetchpatch {
- url = "https://cgit.kde.org/ktorrent.git/patch/?id=7876857d204188016a135a25938d9f8530fba4e8";
- sha256 = "1wnmfzkhf6y7fd0z2djwphs6i9lsg7fcrj8fqmbyi0j57dvl9gxl";
- })
- (fetchpatch {
- url = "https://cgit.kde.org/ktorrent.git/patch/?id=36d112e56e56541d439326a267eb906da8b3ee60";
- sha256 = "1d41pqniljhwqs6awa644s6ks0zwm9sr0hpfygc63wyxnpcrsw2y";
- })
- ];
-
enableParallelBuilding = true;
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "KDE integrated BtTorrent client";
homepage = https://www.kde.org/applications/internet/ktorrent/;
license = licenses.gpl2;
diff --git a/pkgs/applications/networking/p2p/qbittorrent/default.nix b/pkgs/applications/networking/p2p/qbittorrent/default.nix
index a579ae15181..aebdeda6108 100644
--- a/pkgs/applications/networking/p2p/qbittorrent/default.nix
+++ b/pkgs/applications/networking/p2p/qbittorrent/default.nix
@@ -10,13 +10,13 @@ with lib;
mkDerivation rec {
pname = "qbittorrent";
- version = "4.1.7";
+ version = "4.1.9.1";
src = fetchFromGitHub {
owner = "qbittorrent";
repo = "qbittorrent";
rev = "release-${version}";
- sha256 = "1z4k64h3ik1a7ir4v9g3ar1wq8zfh4r2pq43hr2wvlamm2111gdv";
+ sha256 = "19zgqlby7i1kr20wa4zd99qzd062a879xxxbmlf40rnqiqy4bhyi";
};
# NOTE: 2018-05-31: CMake is working but it is not officially supported
diff --git a/pkgs/applications/networking/p2p/soulseekqt/default.nix b/pkgs/applications/networking/p2p/soulseekqt/default.nix
index 704c439bb27..b52320c9681 100644
--- a/pkgs/applications/networking/p2p/soulseekqt/default.nix
+++ b/pkgs/applications/networking/p2p/soulseekqt/default.nix
@@ -1,53 +1,47 @@
-{ stdenv
-, fetchurl
+{ stdenv, lib, fetchurl, mkDerivation
+, autoPatchelfHook
, dbus
-, zlib, fontconfig
-, qtbase, qtmultimedia
-, libjson, libgpgerror
-, libX11, libxcb, libXau, libXdmcp, freetype, libbsd
-, pythonPackages, squashfsTools, desktop-file-utils
+, desktop-file-utils
+, fontconfig
+, libjson
+, pythonPackages
+, qtmultimedia
+, squashfsTools
+, zlib
}:
-with stdenv.lib;
-let
- libPath = makeLibraryPath
- [ stdenv.cc.cc qtbase qtmultimedia dbus libX11 zlib libX11 libxcb libXau libXdmcp freetype fontconfig libbsd libjson libgpgerror];
-
+mkDerivation rec {
+ pname = "soulseekqt";
version = "2018-1-30";
- mainbin = "SoulseekQt-" + (version) +"-"+ (if stdenv.is64bit then "64bit" else "32bit");
- srcs = {
- x86_64-linux = fetchurl {
- url = "https://www.dropbox.com/s/0vi87eef3ooh7iy/${mainbin}.tgz";
+ src = fetchurl {
+ urls = [
+ "https://www.dropbox.com/s/0vi87eef3ooh7iy/SoulseekQt-${version}.tgz"
+ "https://www.slsknet.org/SoulseekQt/Linux/SoulseekQt-${version}-64bit-appimage.tgz"
+ ];
sha256 = "0d1cayxr1a4j19bc5a3qp9pg22ggzmd55b6f5av3lc6lvwqqg4w6";
};
- };
-
-in stdenv.mkDerivation rec {
-
- pname = "soulseekqt";
- inherit version;
- src = srcs.${stdenv.hostPlatform.system} or (throw "unsupported system: ${stdenv.hostPlatform.system}");
dontBuild = true;
- buildInputs = [ pythonPackages.binwalk squashfsTools desktop-file-utils ];
+ nativeBuildInputs = [ autoPatchelfHook pythonPackages.binwalk squashfsTools desktop-file-utils ];
+ buildInputs = [ qtmultimedia stdenv.cc.cc ];
- # avoid usage of appimage's runner option --appimage-extract
+ # avoid usage of appimage's runner option --appimage-extract
unpackCmd = ''
export HOME=$(pwd) # workaround for binwalk
appimage=$(tar xvf $curSrc) && binwalk --quiet \
$appimage -D 'squashfs:squashfs:unsquashfs %e'
'';
-
+
patchPhase = ''
cd squashfs-root/
binary="$(readlink AppRun)"
-
+
# fixup desktop file
desktop-file-edit --set-key Exec --set-value $binary default.desktop
desktop-file-edit --set-key Comment --set-value "${meta.description}" default.desktop
- desktop-file-edit --set-key Categories --set-value Network default.desktop
+ desktop-file-edit --set-key Categories --set-value Network default.desktop
'';
installPhase = ''
@@ -57,13 +51,7 @@ in stdenv.mkDerivation rec {
cp $binary $out/bin/
'';
- fixupPhase = ''
- patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
- --set-rpath ${libPath} \
- $out/bin/$binary
- '';
-
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "Official Qt SoulSeek client";
homepage = http://www.soulseekqt.net;
license = licenses.unfree;
diff --git a/pkgs/applications/networking/p2p/tixati/default.nix b/pkgs/applications/networking/p2p/tixati/default.nix
index 850fc488bf3..f11aaa27370 100644
--- a/pkgs/applications/networking/p2p/tixati/default.nix
+++ b/pkgs/applications/networking/p2p/tixati/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "tixati";
- version = "2.62";
+ version = "2.64";
src = fetchurl {
url = "https://download2.tixati.com/download/tixati-${version}-1.x86_64.manualinstall.tar.gz";
- sha256 = "18lmzllkymdigfl1xf696zqmr2b83p4rzlc8ddrcr0zpzy2z2w4a";
+ sha256 = "0xz2b2vasfc39wqv9lak2wdli7pr5b1vcm1lgpqx6kz7j5ba6jqp";
};
installPhase = ''
diff --git a/pkgs/applications/networking/p2p/torrential/default.nix b/pkgs/applications/networking/p2p/torrential/default.nix
index 999f80a7bbd..0ca5402d6da 100644
--- a/pkgs/applications/networking/p2p/torrential/default.nix
+++ b/pkgs/applications/networking/p2p/torrential/default.nix
@@ -2,11 +2,11 @@
, fetchFromGitHub
, cmake
, pkgconfig
+, vala_0_40
, pantheon
, curl
, glib
, gtk3
-, hicolor-icon-theme
, libb64
, libevent
, libgee
@@ -14,7 +14,8 @@
, libunity
, miniupnpc
, openssl
-, wrapGAppsHook }:
+, wrapGAppsHook
+}:
stdenv.mkDerivation rec {
pname = "torrential";
@@ -30,7 +31,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [
cmake
- pantheon.vala
+ vala_0_40 # https://github.com/davidmhewitt/torrential/issues/135
pkgconfig
wrapGAppsHook
];
@@ -39,7 +40,6 @@ stdenv.mkDerivation rec {
curl
glib
gtk3
- hicolor-icon-theme
libb64
libevent
libgee
diff --git a/pkgs/applications/networking/p2p/transgui/default.nix b/pkgs/applications/networking/p2p/transgui/default.nix
index 7c720cf35a0..51d591995b7 100644
--- a/pkgs/applications/networking/p2p/transgui/default.nix
+++ b/pkgs/applications/networking/p2p/transgui/default.nix
@@ -3,13 +3,13 @@ libX11, glib, gtk2, gdk-pixbuf, pango, atk, cairo, openssl }:
stdenv.mkDerivation rec {
pname = "transgui";
- version = "5.17.0";
+ version = "5.18.0";
src = fetchFromGitHub {
owner = "transmission-remote-gui";
repo = "transgui";
rev = "v${version}";
- sha256 = "0p76vavny5asi5naa4jn67raxlarsmrkbchfn96y6gh5p2vzwpl7";
+ sha256 = "1dyx778756zhvz5sxgdvy49p2c0x44w4nmcfd90wqrmgfknncnf5";
};
nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix b/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix
index bec0507e4a5..55bdced74b5 100644
--- a/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix
+++ b/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix
@@ -1,6 +1,5 @@
{ stdenv, autoconf, automake, libtool, wrapGAppsHook, fetchFromGitHub, pkgconfig
-, intltool, gtk3, json-glib, curl, glib, autoconf-archive, appstream-glib
-, hicolor-icon-theme }:
+, intltool, gtk3, json-glib, curl, glib, autoconf-archive, appstream-glib }:
stdenv.mkDerivation rec {
@@ -22,7 +21,7 @@ stdenv.mkDerivation rec {
appstream-glib
];
- buildInputs = [ gtk3 json-glib curl glib hicolor-icon-theme ];
+ buildInputs = [ gtk3 json-glib curl glib ];
doCheck = false; # fails with style validation error
diff --git a/pkgs/applications/networking/p2p/transmission/default.nix b/pkgs/applications/networking/p2p/transmission/default.nix
index 8af94b2609f..25996953e11 100644
--- a/pkgs/applications/networking/p2p/transmission/default.nix
+++ b/pkgs/applications/networking/p2p/transmission/default.nix
@@ -1,5 +1,5 @@
{ stdenv, fetchurl, pkgconfig, intltool, file, wrapGAppsHook
-, openssl, curl, libevent, inotify-tools, systemd, zlib, hicolor-icon-theme
+, openssl, curl, libevent, inotify-tools, systemd, zlib
, enableGTK3 ? false, gtk3
, enableSystemd ? stdenv.isLinux
, enableDaemon ? true
@@ -22,8 +22,7 @@ stdenv.mkDerivation rec {
buildInputs = [ intltool file openssl curl libevent zlib ]
++ optionals enableGTK3 [ gtk3 ]
++ optionals enableSystemd [ systemd ]
- ++ optionals stdenv.isLinux [ inotify-tools ]
- ++ optionals enableGTK3 [ hicolor-icon-theme ];
+ ++ optionals stdenv.isLinux [ inotify-tools ];
postPatch = ''
substituteInPlace ./configure \
diff --git a/pkgs/applications/networking/p2p/twister/default.nix b/pkgs/applications/networking/p2p/twister/default.nix
index 647b708e102..30491470392 100644
--- a/pkgs/applications/networking/p2p/twister/default.nix
+++ b/pkgs/applications/networking/p2p/twister/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchpatch, autoconf, automake, libtool, pkgconfig, python2
+{ stdenv, fetchFromGitHub, fetchpatch, autoconf, automake, libtool, pkgconfig, python2
, boost, db, openssl, geoip, libiconv, miniupnpc
, srcOnly, fetchgit
}:
@@ -17,12 +17,13 @@ let
in stdenv.mkDerivation rec {
pname = "twister";
- version = "0.9.34";
+ version = "2019-08-19";
- src = fetchurl {
- url = "https://github.com/miguelfreitas/twister-core/"
- + "archive/v${version}.tar.gz";
- sha256 = "1bi8libivd9y2bn9fc7vbc5q0jnal0pykpzgri6anqaww22y58jq";
+ src = fetchFromGitHub {
+ owner = "miguelfreitas";
+ repo = "twister-core";
+ rev = "31faf3f63e461ea0a9b23081567a4a552cf06873";
+ sha256 = "0xh1lgnl9nd86jr0mp7m8bkd7r5j4d6chd0y73h2xv4aq5sld0sp";
};
configureFlags = [
@@ -40,12 +41,6 @@ in stdenv.mkDerivation rec {
boostPython db openssl geoip miniupnpc libiconv
];
- patches = stdenv.lib.singleton (fetchpatch {
- url = "https://github.com/miguelfreitas/twister-core/commit/"
- + "dd4f5a176958ea6ed855dc3fcef79680c1c0c92c.patch";
- sha256 = "06fgmqnjyl83civ3ixiq673k8zjgm8n2w4w46nsh810nprqim8s6";
- });
-
postPatch = ''
sed -i -e '/-htmldir/s|(default: [^)]*)|(default: ${twisterHTML})|' \
src/init.cpp
diff --git a/pkgs/applications/networking/p2p/zeronet/default.nix b/pkgs/applications/networking/p2p/zeronet/default.nix
index 88f07f0a8a5..ce5a99b1e5f 100644
--- a/pkgs/applications/networking/p2p/zeronet/default.nix
+++ b/pkgs/applications/networking/p2p/zeronet/default.nix
@@ -1,19 +1,25 @@
-{ stdenv, fetchFromGitHub, python2Packages }:
+{ stdenv, fetchFromGitHub, python3Packages }:
-python2Packages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
pname = "zeronet";
- version = "0.6.5";
+ version = "0.7.1";
format = "other";
src = fetchFromGitHub {
owner = "HelloZeroNet";
repo = "ZeroNet";
rev = "v${version}";
- sha256 = "1b9jg525jq40czyw9xh9ck90fl9rzrdmzl2mzhqqhz23idb60j4a";
+ sha256 = "04prgicm0yjh2klcxdgwx1mvlsxxi2bdkzfcvysvixbgq20wjvdk";
};
- propagatedBuildInputs = with python2Packages; [ msgpack gevent ];
- buildPhase = "${python2Packages.python.interpreter} -O -m compileall .";
+ propagatedBuildInputs = with python3Packages; [
+ gevent msgpack base58 merkletools rsa pysocks pyasn1 websocket_client
+ gevent-websocket rencode bitcoinlib maxminddb pyopenssl
+ ];
+
+ buildPhase = ''
+ ${python3Packages.python.interpreter} -O -m compileall .
+ '';
installPhase = ''
mkdir -p $out/share
@@ -23,7 +29,7 @@ python2Packages.buildPythonApplication rec {
postFixup = ''
makeWrapper "$out/share/zeronet.py" "$out/bin/zeronet" \
--set PYTHONPATH "$PYTHONPATH" \
- --set PATH ${python2Packages.python}/bin
+ --set PATH ${python3Packages.python}/bin
'';
meta = with stdenv.lib; {
diff --git a/pkgs/applications/networking/ping/default.nix b/pkgs/applications/networking/ping/default.nix
index d20b07a8d3b..4d1d39a05c2 100644
--- a/pkgs/applications/networking/ping/default.nix
+++ b/pkgs/applications/networking/ping/default.nix
@@ -2,13 +2,13 @@
, fetchFromGitHub
, meson
, ninja
+, vala
, pkgconfig
, pantheon
, python3
, glib
, gtk3
, gtksourceview
-, hicolor-icon-theme
, json-glib
, libsoup
, libgee
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [
meson
ninja
- pantheon.vala
+ vala
pkgconfig
python3
wrapGAppsHook
@@ -38,7 +38,6 @@ stdenv.mkDerivation rec {
glib
gtk3
gtksourceview
- hicolor-icon-theme
json-glib
libgee
libsoup
diff --git a/pkgs/applications/networking/protocol/default.nix b/pkgs/applications/networking/protocol/default.nix
index 7fdb062ef80..8785d2449b3 100644
--- a/pkgs/applications/networking/protocol/default.nix
+++ b/pkgs/applications/networking/protocol/default.nix
@@ -1,14 +1,14 @@
{ stdenv, buildPythonApplication, fetchFromGitHub }:
buildPythonApplication {
- pname = "protocol";
- version = "20171226";
+ pname = "protocol-unstable";
+ version = "2019-03-28";
src = fetchFromGitHub {
owner = "luismartingarcia";
repo = "protocol";
- rev = "d450da7d8a58595d8ef82f1d199a80411029fc7d";
- sha256 = "1g31s2xx0bw8ak5ag1c6mv0p0b8bj5dp3lkk9mxaf2ndj1m1qdkw";
+ rev = "4e8326ea6c2d288be5464c3a7d9398df468c0ada";
+ sha256 = "13l10jhf4vghanmhh3pn91b2jdciispxy0qadz4n08blp85qn9cm";
};
meta = with stdenv.lib; {
diff --git a/pkgs/applications/networking/protonmail-bridge/default.nix b/pkgs/applications/networking/protonmail-bridge/default.nix
index 60ea01ae451..a585e7f948b 100644
--- a/pkgs/applications/networking/protonmail-bridge/default.nix
+++ b/pkgs/applications/networking/protonmail-bridge/default.nix
@@ -1,8 +1,8 @@
{ stdenv, fetchurl, lib, qtbase, qtmultimedia, qtsvg, qtdeclarative, qttools, qtgraphicaleffects, qtquickcontrols2, full
-, libsecret, libGL, libpulseaudio, glib, wrapQtAppsHook, makeDesktopItem, mkDerivation }:
+, libsecret, libGL, libpulseaudio, glib, wrapQtAppsHook, mkDerivation }:
let
- version = "1.1.6-1";
+ version = "1.2.2-1";
description = ''
An application that runs on your computer in the background and seamlessly encrypts
@@ -10,24 +10,13 @@ let
To work, gnome-keyring service must be enabled.
'';
-
- desktopItem = makeDesktopItem {
- name = "protonmail-bridge";
- exec = "protonmail-bridge";
- icon = "protonmail-bridge";
- comment = stdenv.lib.replaceStrings ["\n"] [" "] description;
- desktopName = "ProtonMail Bridge";
- genericName = "ProtonMail Bridge for Linux";
- categories = "Utility;Security;Network;Email";
- };
-
in mkDerivation {
pname = "protonmail-bridge";
inherit version;
src = fetchurl {
url = "https://protonmail.com/download/protonmail-bridge_${version}_amd64.deb";
- sha256 = "108dql9q5znsqjkrs41pc6psjbg5bz09rdmjl036xxbvsdvq4a8r";
+ sha256 = "16hfa07wdqcns79395wjdglg2cjyblqgz1hx8rl15qm7n5f24ckl";
};
sourceRoot = ".";
@@ -37,12 +26,10 @@ in mkDerivation {
'';
installPhase = ''
- mkdir -p $out/{bin,lib,share/applications}
- mkdir -p $out/share/{applications,icons/hicolor/scalable/apps}
+ mkdir -p $out/{bin,lib,share}
cp -r usr/lib/protonmail/bridge/protonmail-bridge $out/lib
- cp usr/share/icons/protonmail/ProtonMail_Bridge.svg $out/share/icons/hicolor/scalable/apps/protonmail-bridge.svg
- cp ${desktopItem}/share/applications/* $out/share/applications
+ cp -r usr/share $out
ln -s $out/lib/protonmail-bridge $out/bin/protonmail-bridge
'';
@@ -67,6 +54,10 @@ in mkDerivation {
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${rpath}" \
$out/lib/protonmail-bridge
+
+ substituteInPlace $out/share/applications/ProtonMail_Bridge.desktop \
+ --replace "/usr/" "$out/" \
+ --replace "Exec=protonmail-bridge" "Exec=$out/bin/protonmail-bridge"
'';
buildInputs = [ qtbase qtquickcontrols2 qtmultimedia qtgraphicaleffects qtdeclarative ];
diff --git a/pkgs/applications/networking/protonvpn-cli/default.nix b/pkgs/applications/networking/protonvpn-cli/default.nix
index e79ca515b51..f426a7c3a58 100644
--- a/pkgs/applications/networking/protonvpn-cli/default.nix
+++ b/pkgs/applications/networking/protonvpn-cli/default.nix
@@ -28,12 +28,9 @@ in stdenv.mkDerivation rec {
" echo \"Connecting...\"" \
" sed -ri 's@${expectedUpdateResolvPath}@${actualUpdateResolvePath}@g' \"\$openvpn_config\"; echo \"Connecting...\""
cp protonvpn-cli.sh "$out/bin/protonvpn-cli"
- ln -s "$out/bin/protonvpn-cli" "$out/bin/pvpn"
- '';
-
- postInstallPhase = ''
- wrapProgram $out/protonvpn-cli \
+ wrapProgram $out/bin/protonvpn-cli \
--prefix PATH : ${lib.makeBinPath [ coreutils openvpn python dialog wget update-resolv-conf ]}
+ ln -s "$out/bin/protonvpn-cli" "$out/bin/pvpn"
'';
meta = with stdenv.lib; {
diff --git a/pkgs/applications/networking/remote/anydesk/default.nix b/pkgs/applications/networking/remote/anydesk/default.nix
index 30130f60028..e9dd022c313 100644
--- a/pkgs/applications/networking/remote/anydesk/default.nix
+++ b/pkgs/applications/networking/remote/anydesk/default.nix
@@ -1,25 +1,26 @@
{ stdenv, fetchurl, makeWrapper, makeDesktopItem
, atk, cairo, gdk-pixbuf, glib, gnome2, gtk2, libGLU_combined, pango, xorg
-, lsb-release, freetype, fontconfig, pangox_compat, polkit, polkit_gnome }:
+, lsb-release, freetype, fontconfig, pangox_compat, polkit, polkit_gnome
+, pulseaudio }:
let
sha256 = {
- x86_64-linux = "08kdxsg9npb1nmlr2jyq7p238735kqkp7c5xckxn6rc4cp12n2y2";
- i686-linux = "11r5d4234zbkkgyrd7q9x3w7s7lailnq7z4x8cnhpr8vipzrg7h2";
+ x86_64-linux = "1zdbgbbdavaqx4y02sw9y7i1r9wkxqccrqkn0sp5847a26cpk9k9";
+ i386-linux = "11qwyxvy3c3n7hvksmlsfl9vvqaqkv3kwbk5rgjyy7vy8vn4kjmk";
}.${stdenv.hostPlatform.system} or (throw "system ${stdenv.hostPlatform.system} not supported");
arch = {
x86_64-linux = "amd64";
- i686-linux = "i686";
+ i386-linux = "i386";
}.${stdenv.hostPlatform.system} or (throw "system ${stdenv.hostPlatform.system} not supported");
description = "Desktop sharing application, providing remote support and online meetings";
desktopItem = makeDesktopItem {
- name = "anydesk";
+ name = "AnyDesk";
exec = "@out@/bin/anydesk";
icon = "anydesk";
- desktopName = "anydesk";
+ desktopName = "AnyDesk";
genericName = description;
categories = "Application;Network;";
startupNotify = "false";
@@ -27,7 +28,7 @@ let
in stdenv.mkDerivation rec {
pname = "anydesk";
- version = "4.0.1";
+ version = "5.4.1";
src = fetchurl {
url = "https://download.anydesk.com/linux/${pname}-${version}-${arch}.tar.gz";
@@ -37,10 +38,10 @@ in stdenv.mkDerivation rec {
buildInputs = [
atk cairo gdk-pixbuf glib gtk2 stdenv.cc.cc pango
gnome2.gtkglext libGLU_combined freetype fontconfig
- pangox_compat polkit polkit_gnome
+ pangox_compat polkit polkit_gnome pulseaudio
] ++ (with xorg; [
- libxcb libX11 libXdamage libXext libXfixes libXi libXmu
- libXrandr libXtst libXt libICE libSM
+ libxcb libxkbfile libX11 libXdamage libXext libXfixes libXi libXmu
+ libXrandr libXtst libXt libICE libSM libXrender
]);
nativeBuildInputs = [ makeWrapper ];
@@ -50,8 +51,8 @@ in stdenv.mkDerivation rec {
mkdir -p $out/bin $out/share/{applications,doc/anydesk,icons/hicolor}
install -m755 anydesk $out/bin/anydesk
- cp changelog copyright README $out/share/doc/anydesk
- cp -r icons/* $out/share/icons/hicolor/
+ cp copyright README $out/share/doc/anydesk
+ cp -r icons/hicolor/* $out/share/icons/hicolor/
cp ${desktopItem}/share/applications/*.desktop $out/share/applications
runHook postInstall
@@ -75,6 +76,6 @@ in stdenv.mkDerivation rec {
homepage = https://www.anydesk.com;
license = licenses.unfree;
platforms = platforms.linux;
- maintainers = with maintainers; [ peterhoeg ];
+ maintainers = with maintainers; [ shyim ];
};
}
diff --git a/pkgs/applications/networking/remote/citrix-receiver/default.nix b/pkgs/applications/networking/remote/citrix-receiver/default.nix
deleted file mode 100644
index 8d21f64765d..00000000000
--- a/pkgs/applications/networking/remote/citrix-receiver/default.nix
+++ /dev/null
@@ -1,215 +0,0 @@
-{ stdenv
-, lib
-, fetchurl
-, requireFile
-, makeWrapper
-, libredirect
-, busybox
-, file
-, makeDesktopItem
-, tzdata
-, cacert
-, glib
-, gtk2
-, atk
-, gdk-pixbuf
-, cairo
-, pango
-, gnome3
-, xorg
-, libpng12
-, freetype
-, fontconfig
-, gtk_engines
-, alsaLib
-, libidn
-, zlib
-, version ? "13.10.0"
-}:
-
-let
- # In 56e1bdc7f9c (libidn: 1.34 -> 1.35), libidn.so.11 became libidn.so.12.
- # Citrix looks for the former so we build version 1.34 to please the binary
- libidn_134 = libidn.overrideDerivation (_: rec {
- name = "libidn-1.34";
- src = fetchurl {
- url = "mirror://gnu/libidn/${name}.tar.gz";
- sha256 = "0g3fzypp0xjcgr90c5cyj57apx1cmy0c6y9lvw2qdcigbyby469p";
- };
- });
-
- versionInfo = let
- supportedVersions = {
- "13.10.0" = {
- major = "13";
- minor = "10";
- patch = "0";
- x64hash = "7025688C7891374CDA11C92FC0BA2FA8151AEB4C4D31589AD18747FAE943F6EA";
- x86hash = "2DCA3C8EDED11C5D824D579BC3A6B7D531EAEDDCBFB16E91B5702C72CAE9DEE4";
- x64suffix = "20";
- x86suffix = "20";
- homepage = https://www.citrix.com/downloads/citrix-receiver/linux/receiver-for-linux-latest.html;
- };
- };
-
- # break an evaluation for old Citrix versions rather than exiting with
- # an "attribute name not found" error to avoid confusion.
- deprecatedVersions = let
- versions = [ "13.8.0" "13.9.0" "13.9.1" ];
- in
- lib.listToAttrs
- (lib.forEach versions
- (v: lib.nameValuePair v (throw "Unsupported citrix_receiver version: ${v}")));
- in
- deprecatedVersions // supportedVersions;
-
- citrixReceiverForVersion = { major, minor, patch, x86hash, x64hash, x86suffix, x64suffix, homepage }:
- stdenv.mkDerivation rec {
- pname = "citrix-receiver";
- version = "${major}.${minor}.${patch}";
- inherit homepage;
-
- prefixWithBitness = if stdenv.is64bit then "linuxx64" else "linuxx86";
-
- src = requireFile rec {
- name = if stdenv.is64bit then "${prefixWithBitness}-${version}.${x64suffix}.tar.gz" else "${prefixWithBitness}-${version}.${x86suffix}.tar.gz";
- sha256 = if stdenv.is64bit then x64hash else x86hash;
- message = ''
- In order to use Citrix Receiver, you need to comply with the Citrix EULA and download
- the ${if stdenv.is64bit then "64-bit" else "32-bit"} binaries, .tar.gz from:
-
- ${homepage}
-
- (if you do not find version ${version} there, try at
- https://www.citrix.com/downloads/citrix-receiver/legacy-receiver-for-linux/
- or at https://www.citrix.com/downloads/citrix-receiver/ under "Earlier Versions of Receiver for Linux")
-
- Once you have downloaded the file, please use the following command and re-run the
- installation:
-
- nix-prefetch-url file://\$PWD/${name}
- '';
- };
-
- dontBuild = true;
-
- sourceRoot = ".";
-
- buildInputs = [
- makeWrapper
- busybox
- file
- gtk2
- gdk-pixbuf
- ];
-
- libPath = stdenv.lib.makeLibraryPath [
- glib
- gtk2
- atk
- gdk-pixbuf
- cairo
- pango
- gnome3.dconf
- xorg.libX11
- xorg.libXext
- xorg.libXrender
- xorg.libXinerama
- xorg.libXfixes
- libpng12
- libidn_134
- zlib
- gtk_engines
- freetype
- fontconfig
- alsaLib
- stdenv.cc.cc # Fixes: Can not load [..]/opt/citrix-icaclient/lib/ctxh264_fb.so:(null)
- ];
-
- desktopItem = makeDesktopItem {
- name = "wfica";
- desktopName = "Citrix Receiver";
- genericName = "Citrix Receiver";
- exec = "wfica";
- icon = "wfica";
- comment = "Connect to remote Citrix server";
- categories = "GTK;GNOME;X-GNOME-NetworkSettings;Network;";
- mimeType = "application/x-ica";
- };
-
- installPhase = ''
- runHook preInstall
-
- export ICAInstDir="$out/opt/citrix-icaclient"
-
- sed -i \
- -e 's,^main_install_menu$,install_ICA_client,g' \
- -e 's,^integrate_ICA_client(),alias integrate_ICA_client=true\nintegrate_ICA_client_old(),g' \
- -e 's,^ANSWER=""$,ANSWER="$INSTALLER_YES",' \
- -e 's,/bin/true,true,g' \
- ./${prefixWithBitness}/hinst
-
- # Run the installer...
- bash ./${prefixWithBitness}/hinst CDROM "`pwd`"
-
- echo "Deleting broken links..."
- for link in `find $ICAInstDir -type l `
- do
- [ -f "$link" ] || rm -v "$link"
- done
-
- echo "Expanding certificates..."
- # As explained in https://wiki.archlinux.org/index.php/Citrix#Security_Certificates
- pushd "$ICAInstDir/keystore/cacerts"
- awk 'BEGIN {c=0;} /BEGIN CERT/{c++} { print > "cert." c ".pem"}' < ${cacert}/etc/ssl/certs/ca-bundle.crt
- popd
-
- echo "Patching executables..."
- find $ICAInstDir -type f -exec file {} \; |
- grep 'ELF.*executable' |
- cut -f 1 -d : |
- grep -vi '\(.dll\|.so\)$' | # added as a workaround to https://github.com/NixOS/nixpkgs/issues/41729
- while read f
- do
- echo "Patching ELF intrepreter and rpath for $f"
- chmod u+w "$f"
- patchelf \
- --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
- --set-rpath "$ICAInstDir:$libPath" "$f"
- done
-
- echo "Wrapping wfica..."
- mkdir "$out/bin"
-
- makeWrapper "$ICAInstDir/wfica" "$out/bin/wfica" \
- --add-flags "-icaroot $ICAInstDir" \
- --set ICAROOT "$ICAInstDir" \
- --set GTK_PATH "${gtk2.out}/lib/gtk-2.0:${gnome3.gnome-themes-extra}/lib/gtk-2.0" \
- --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
- --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
- --set LD_LIBRARY_PATH "$libPath" \
- --set NIX_REDIRECTS "/usr/share/zoneinfo=${tzdata}/share/zoneinfo:/etc/zoneinfo=${tzdata}/share/zoneinfo:/etc/timezone=$ICAInstDir/timezone"
-
- echo "We arbitrarily set the timezone to UTC. No known consequences at this point."
- echo UTC > "$ICAInstDir/timezone"
-
- echo "Installing desktop item..."
- mkdir -p $out/share/applications
- cp ${desktopItem}/share/applications/* $out/share/applications
-
- # We introduce a dependency on the source file so that it need not be redownloaded everytime
- echo $src >> "$out/share/nix_dependencies.pin"
-
- runHook postInstall
- '';
-
- meta = with stdenv.lib; {
- license = stdenv.lib.licenses.unfree;
- inherit homepage;
- description = "Citrix Receiver";
- maintainers = with maintainers; [ obadz a1russell ma27 ];
- platforms = platforms.linux;
- };
- };
-
-in citrixReceiverForVersion (lib.getAttr version versionInfo)
diff --git a/pkgs/applications/networking/remote/citrix-receiver/wrapper.nix b/pkgs/applications/networking/remote/citrix-receiver/wrapper.nix
deleted file mode 100644
index 63587030b38..00000000000
--- a/pkgs/applications/networking/remote/citrix-receiver/wrapper.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ citrix_receiver, extraCerts ? [], symlinkJoin }:
-
-let
-
- mkCertCopy = certPath:
- "cp ${certPath} $out/opt/citrix-icaclient/keystore/cacerts/";
-
-in
-
-if builtins.length extraCerts == 0 then citrix_receiver else symlinkJoin {
- name = "citrix-with-extra-certs-${citrix_receiver.version}";
- paths = [ citrix_receiver ];
-
- postBuild = ''
- ${builtins.concatStringsSep "\n" (map mkCertCopy extraCerts)}
-
- sed -i -E "s,-icaroot (.+citrix-icaclient),-icaroot $out/opt/citrix-icaclient," $out/bin/wfica
- '';
-}
diff --git a/pkgs/applications/networking/remote/citrix-workspace/default.nix b/pkgs/applications/networking/remote/citrix-workspace/default.nix
index 4936b0ce0b5..26e8cf59a9e 100644
--- a/pkgs/applications/networking/remote/citrix-workspace/default.nix
+++ b/pkgs/applications/networking/remote/citrix-workspace/default.nix
@@ -23,7 +23,7 @@
, gtk_engines
, alsaLib
, zlib
-, version ? "19.8.0"
+, version ? "19.10.0"
}:
let
@@ -48,7 +48,7 @@ let
x86hash = "16v3kgavrh62z6vxcbw6mn7h0bfishpl7m92k7g1p2882r1f8vaf";
x64suffix = "60";
x86suffix = "60";
- homepage = https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html;
+ homepage = https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-latest.html;
};
"19.8.0" = {
@@ -59,7 +59,18 @@ let
x86hash = "0afcqirb4q349r3izy88vqkszg6y2wg14iwypk6nrmvwgvcl6jdn";
x64suffix = "20";
x86suffix = "20";
- homepage = https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html;
+ homepage = https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-latest1.html;
+ };
+
+ "19.10.0" = {
+ major = "19";
+ minor = "10";
+ patch = "0";
+ x64hash = "1l4q4pmfiw9gmml6j5b3hls2101xf5m8p6855nhfhvqlisrj9h14";
+ x86hash = "000zjik8wf8b6fadnsai0p77b4n2l95544zx503iyrb9pv53bj3y";
+ x64suffix = "15";
+ x86suffix = "15";
+ homepage = https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest1.html;
};
};
diff --git a/pkgs/applications/networking/remote/putty/default.nix b/pkgs/applications/networking/remote/putty/default.nix
index 3b7db7075bb..8c2d9ac36e9 100644
--- a/pkgs/applications/networking/remote/putty/default.nix
+++ b/pkgs/applications/networking/remote/putty/default.nix
@@ -1,9 +1,9 @@
{ stdenv, lib, fetchurl, autoconf, automake, pkgconfig, libtool
-, gtk2, halibut, ncurses, perl
+, gtk2, halibut, ncurses, perl, darwin
}:
stdenv.mkDerivation rec {
- version = "0.71";
+ version = "0.73";
pname = "putty";
src = fetchurl {
@@ -11,15 +11,15 @@ stdenv.mkDerivation rec {
"https://the.earth.li/~sgtatham/putty/${version}/${pname}-${version}.tar.gz"
"ftp://ftp.wayne.edu/putty/putty-website-mirror/${version}/${pname}-${version}.tar.gz"
];
- sha256 = "1f66iss0kqk982azmxbk4xfm2i1csby91vdvly6cr04pz3i1r4rg";
+ sha256 = "076z34jpik2dmlwxicvf1djjgnahcqv12rjhmb9yq6ml7x0bbc1x";
};
+ # glib-2.62 deprecations
+ NIX_CFLAGS_COMPILE = [ "-DGLIB_DISABLE_DEPRECATION_WARNINGS" ];
+
preConfigure = lib.optionalString stdenv.hostPlatform.isUnix ''
perl mkfiles.pl
( cd doc ; make );
- sed -e '/AM_PATH_GTK(/d' \
- -e '/AC_OUTPUT/iAM_PROG_CC_C_O' \
- -e '/AC_OUTPUT/iAM_PROG_AR' -i configure.ac
./mkauto.sh
cd unix
'' + lib.optionalString stdenv.hostPlatform.isWindows ''
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ autoconf automake halibut libtool perl pkgconfig ];
buildInputs = lib.optionals stdenv.hostPlatform.isUnix [
gtk2 ncurses
- ];
+ ] ++ lib.optional stdenv.isDarwin darwin.apple_sdk.libs.utmp;
enableParallelBuilding = true;
meta = with lib; {
diff --git a/pkgs/applications/networking/remote/remmina/default.nix b/pkgs/applications/networking/remote/remmina/default.nix
index f60d43f3616..adb70c3916f 100644
--- a/pkgs/applications/networking/remote/remmina/default.nix
+++ b/pkgs/applications/networking/remote/remmina/default.nix
@@ -6,7 +6,7 @@
, libsecret, libsoup, spice-protocol, spice-gtk, epoxy, at-spi2-core
, openssl, gsettings-desktop-schemas, json-glib
# The themes here are soft dependencies; only icons are missing without them.
-, hicolor-icon-theme, gnome3
+, gnome3
}:
with stdenv.lib;
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
pcre libdbusmenu-gtk3 libappindicator-gtk3
libvncserver libpthreadstubs libXdmcp libxkbcommon
libsecret libsoup spice-protocol spice-gtk epoxy at-spi2-core
- openssl hicolor-icon-theme gnome3.adwaita-icon-theme json-glib
+ openssl gnome3.adwaita-icon-theme json-glib
];
cmakeFlags = [
diff --git a/pkgs/applications/networking/remote/teamviewer/default.nix b/pkgs/applications/networking/remote/teamviewer/default.nix
index f9b17b42bde..2cadf7f2637 100644
--- a/pkgs/applications/networking/remote/teamviewer/default.nix
+++ b/pkgs/applications/networking/remote/teamviewer/default.nix
@@ -6,11 +6,11 @@
mkDerivation rec {
pname = "teamviewer";
- version = "14.5.1691";
+ version = "14.7.1965";
src = fetchurl {
url = "https://dl.tvcdn.de/download/linux/version_14x/teamviewer_${version}_amd64.deb";
- sha256 = "1dzvjyvcqcah6z1dvw4zvmbdn8iks9j2909slbkksavn1rp3akxc";
+ sha256 = "056050x173y450apl096vw8g3b3kvrd2b4xpj706nw6jdxsnhfbp";
};
unpackPhase = ''
@@ -54,6 +54,7 @@ mkDerivation rec {
'';
dontStrip = true;
+ preferLocalBuild = true;
meta = with lib; {
homepage = http://www.teamviewer.com;
diff --git a/pkgs/applications/networking/sniffers/wireshark/default.nix b/pkgs/applications/networking/sniffers/wireshark/default.nix
index aa965a0c868..ef1e07ca976 100644
--- a/pkgs/applications/networking/sniffers/wireshark/default.nix
+++ b/pkgs/applications/networking/sniffers/wireshark/default.nix
@@ -10,7 +10,7 @@ assert withQt -> qt5 != null;
with stdenv.lib;
let
- version = "3.0.3";
+ version = "3.0.5";
variant = if withQt then "qt" else "cli";
in stdenv.mkDerivation {
@@ -20,7 +20,7 @@ in stdenv.mkDerivation {
src = fetchurl {
url = "https://www.wireshark.org/download/src/all-versions/wireshark-${version}.tar.xz";
- sha256 = "0711jilp9sbgi46d105m3galw8n4wk5yncawi08031qxg2f754mg";
+ sha256 = "087qv7nd7zlbckvcs37fkkg7v0mw0hjd5yfbghqym764fpjgqlf5";
};
cmakeFlags = [
diff --git a/pkgs/applications/networking/station/default.nix b/pkgs/applications/networking/station/default.nix
new file mode 100644
index 00000000000..afc89fe7802
--- /dev/null
+++ b/pkgs/applications/networking/station/default.nix
@@ -0,0 +1,30 @@
+{ appimageTools, fetchurl, gsettings-desktop-schemas, gtk3, lib }:
+
+let
+ pname = "station";
+ version = "1.52.2";
+in appimageTools.wrapType2 rec {
+ name = "${pname}-${version}";
+
+ src = fetchurl {
+ url = "https://github.com/getstation/desktop-app-releases/releases/download/${version}/Station-${version}-x86_64.AppImage";
+ sha256 = "0lhiwvnf94is9klvzrqv2wri53gj8nms9lg2678bs4y58pvjxwid";
+ };
+
+ profile = ''
+ export LC_ALL=C.UTF-8
+ export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
+ '';
+
+ multiPkgs = null;
+ extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs;
+ extraInstallCommands = "mv $out/bin/{${name},${pname}}";
+
+ meta = with lib; {
+ description = "A single place for all of your web applications";
+ homepage = "https://getstation.com";
+ license = licenses.mit;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ lattfein ];
+ };
+}
diff --git a/pkgs/applications/networking/sync/onedrive/default.nix b/pkgs/applications/networking/sync/onedrive/default.nix
new file mode 100644
index 00000000000..0767ce2f294
--- /dev/null
+++ b/pkgs/applications/networking/sync/onedrive/default.nix
@@ -0,0 +1,35 @@
+{ stdenv
+, fetchFromGitHub
+, dmd
+, pkgconfig
+, curl
+, sqlite
+}:
+
+stdenv.mkDerivation rec {
+ pname = "onedrive";
+ version = "2.3.11";
+
+ src = fetchFromGitHub {
+ owner = "abraunegg";
+ repo = "onedrive";
+ rev = "v${version}";
+ sha256 = "08k5b3izqzk9mjjny5y47i3q5sl0w37xdqrhaacjxwm0jib9w0mh";
+ };
+
+ nativeBuildInputs = [
+ dmd
+ pkgconfig
+ ];
+ buildInputs = [
+ curl
+ sqlite
+ ];
+ meta = with stdenv.lib; {
+ description = "A complete tool to interact with OneDrive on Linux";
+ homepage = "https://github.com/abraunegg/onedrive";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ doronbehar srgom ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/applications/networking/sync/rclone/default.nix b/pkgs/applications/networking/sync/rclone/default.nix
index 52527f79303..71421eaf1e7 100644
--- a/pkgs/applications/networking/sync/rclone/default.nix
+++ b/pkgs/applications/networking/sync/rclone/default.nix
@@ -1,21 +1,21 @@
-{ stdenv, buildGoModule, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub }:
-buildGoModule rec {
+buildGoPackage rec {
pname = "rclone";
- version = "1.49.1";
+ version = "1.50.2";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
- sha256 = "0mjwp1j70dqa8k3zxhcnw85ddhagkpr7c59mv8kradv6mqqzmq9c";
+ sha256 = "0yaspkh88q8i58i8g8mm6sqb75hczavz2lvzdd1iif1bqgi6b5fz";
};
- modSha256 = "158mpmy8q67dk1ks9p926n1670gsk7rhd0vpjh44f4g64ddnhk03";
+ goPackagePath = "github.com/rclone/rclone";
subPackages = [ "." ];
- outputs = [ "out" "man" ];
+ outputs = [ "bin" "out" "man" ];
postInstall = ''
install -D -m644 $src/rclone.1 $man/share/man/man1/rclone.1
diff --git a/pkgs/applications/networking/sync/rsync/rrsync.nix b/pkgs/applications/networking/sync/rsync/rrsync.nix
index 19e2eaa5fa2..19be478b0f1 100644
--- a/pkgs/applications/networking/sync/rsync/rrsync.nix
+++ b/pkgs/applications/networking/sync/rsync/rrsync.nix
@@ -8,8 +8,7 @@ stdenv.mkDerivation {
src = base.src;
- buildInputs = [ rsync ];
- nativeBuildInputs = [perl];
+ buildInputs = [ rsync perl ];
# Skip configure and build phases.
# We just want something from the support directory
diff --git a/pkgs/applications/networking/syncthing/default.nix b/pkgs/applications/networking/syncthing/default.nix
index 7bfe697105e..555550d4d9e 100644
--- a/pkgs/applications/networking/syncthing/default.nix
+++ b/pkgs/applications/networking/syncthing/default.nix
@@ -3,19 +3,19 @@
let
common = { stname, target, postInstall ? "" }:
buildGoModule rec {
- version = "1.2.2";
+ version = "1.3.0";
name = "${stname}-${version}";
src = fetchFromGitHub {
owner = "syncthing";
repo = "syncthing";
rev = "v${version}";
- sha256 = "0zkyjnjrla0vpvidwwr4z4kxc9cyjcfbjdzsr34xz7rw3jswswm9";
+ sha256 = "14k1acap9y1z8sj28gcn72lkfxdzpcqj9d27hk8vzm47zjaxgp8l";
};
goPackagePath = "github.com/syncthing/syncthing";
- modSha256 = "0pp2gjx227crggph924q7sg6ak8nyl8nlsffpmawq4zl1908lsrd";
+ modSha256 = "17np8ym84ql7hwzsqfx2l6yiy9hag7h96q8ysvarlfg9l95g1m64";
patches = [
./add-stcli-target.patch
diff --git a/pkgs/applications/networking/transporter/default.nix b/pkgs/applications/networking/transporter/default.nix
deleted file mode 100644
index a3cde14f34c..00000000000
--- a/pkgs/applications/networking/transporter/default.nix
+++ /dev/null
@@ -1,71 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, meson
-, ninja
-, pkgconfig
-, gtk3
-, python3
-, pantheon
-, gnome3
-, libxml2
-, gettext
-, gobject-introspection
-, appstream-glib
-, desktop-file-utils
-, magic-wormhole
-, wrapGAppsHook }:
-
-let
- pname = "Transporter";
- version = "1.3.3";
-in stdenv.mkDerivation {
- name = "${pname}-${version}";
-
- src = fetchFromGitHub {
- owner = "bleakgrey";
- repo = pname;
- rev = version;
- sha256 = "19zb2yqmyyhk5vgh6p278b76shlq0r8ykk1ks8zzr187nr5lf5k1";
- };
-
- nativeBuildInputs = [
- appstream-glib
- desktop-file-utils
- pantheon.vala
- gettext
- gobject-introspection # For setup hook
- libxml2
- meson
- ninja
- pkgconfig
- python3
- wrapGAppsHook
- ];
-
- buildInputs = [
- pantheon.elementary-icon-theme
- gnome3.libgee
- pantheon.granite
- gtk3
- magic-wormhole
- ];
-
- prePatch = ''
- # The paths were hardcoded
- substituteInPlace ./src/WormholeInterface.vala \
- --replace /bin/wormhole ${magic-wormhole}/bin/wormhole
- '';
-
- postPatch = ''
- chmod +x meson/post_install.py
- patchShebangs meson/post_install.py
- '';
-
- meta = with stdenv.lib; {
- description = "Simple magic-wormhole client";
- homepage = https://github.com/bleakgrey/Transporter;
- license = licenses.gpl3;
- maintainers = with maintainers; [ worldofpeace ];
- platforms = platforms.linux;
- };
-}
diff --git a/pkgs/applications/networking/trebleshot/default.nix b/pkgs/applications/networking/trebleshot/default.nix
new file mode 100644
index 00000000000..1b049ff2dc7
--- /dev/null
+++ b/pkgs/applications/networking/trebleshot/default.nix
@@ -0,0 +1,29 @@
+{ mkDerivation, lib, fetchFromGitHub
+, cmake, qtbase, kdnssd
+}:
+
+mkDerivation rec {
+ pname = "trebleshot";
+ version = "0.1.0-alpha2-15-ga7ac23c";
+ # name="${pname}-${version}";
+
+ src = fetchFromGitHub {
+ owner = "genonbeta";
+ repo = "TrebleShot-Desktop";
+ rev = "${version}";
+ sha256 = "1k8wagw6arsi1lqkhn1nl6j11mb122vi1qs0q2np6nznwfy7pn1k";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [ qtbase kdnssd ];
+
+ meta = with lib; {
+ description = "Android file transferring tool for desktop";
+ homepage = https://github.com/genonbeta/TrebleShot-Desktop;
+ license = licenses.gpl2;
+
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ woffs ];
+ };
+}
diff --git a/pkgs/applications/networking/weather/meteo/default.nix b/pkgs/applications/networking/weather/meteo/default.nix
index 88d33a9a9f3..64fef08ceef 100644
--- a/pkgs/applications/networking/weather/meteo/default.nix
+++ b/pkgs/applications/networking/weather/meteo/default.nix
@@ -1,17 +1,16 @@
{ stdenv, fetchFromGitLab, vala, python3, pkgconfig, meson, ninja, gtk3
, json-glib, libsoup, webkitgtk, geocode-glib
-, libappindicator, desktop-file-utils, appstream, wrapGAppsHook
-, hicolor-icon-theme }:
+, libappindicator, desktop-file-utils, appstream, wrapGAppsHook }:
stdenv.mkDerivation rec {
pname = "meteo";
- version = "0.9.7";
+ version = "0.9.8";
src = fetchFromGitLab {
owner = "bitseater";
repo = pname;
rev = version;
- sha256 = "014x3mg2dc58h1qwy2nrz3a5mzdnbzish8zgn3x6lj6szfz5c72n";
+ sha256 = "1ll5fja0dqxcr6hrh2dk4hgw9gf8ms9bcp1ifznd21byxzyhdlr0";
};
nativeBuildInputs = [
@@ -28,7 +27,6 @@ stdenv.mkDerivation rec {
buildInputs = [
geocode-glib
gtk3
- hicolor-icon-theme
json-glib
libappindicator
libsoup
@@ -42,9 +40,9 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "Know the forecast of the next hours & days";
- homepage = https://gitlab.com/bitseater/meteo;
- license = licenses.gpl3Plus;
+ homepage = https://gitlab.com/bitseater/meteo;
+ license = licenses.gpl3Plus;
maintainers = with maintainers; [ worldofpeace ];
- platforms = platforms.linux;
+ platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/networking/znc/default.nix b/pkgs/applications/networking/znc/default.nix
index 238864311ef..bf36a6f2bbb 100644
--- a/pkgs/applications/networking/znc/default.nix
+++ b/pkgs/applications/networking/znc/default.nix
@@ -13,11 +13,11 @@ with stdenv.lib;
stdenv.mkDerivation rec {
pname = "znc";
- version = "1.7.4";
+ version = "1.7.5";
src = fetchurl {
url = "https://znc.in/releases/archive/${pname}-${version}.tar.gz";
- sha256 = "0wcvqkpin8w4i72alnn0nxnrc9ih543qs34hqpk9xmz6m0hjk8xi";
+ sha256 = "08a7yb2xs85hyyz8dpzfbsfjwj2r6kcii022lj3l4rf8hl9ix558";
};
nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/networking/znc/modules.nix b/pkgs/applications/networking/znc/modules.nix
index 54e148f0833..5e7bdd09b03 100644
--- a/pkgs/applications/networking/znc/modules.nix
+++ b/pkgs/applications/networking/znc/modules.nix
@@ -79,15 +79,15 @@ in {
fish = zncDerivation rec {
name = "znc-fish-${version}";
- version = "git-2014-10-10";
+ version = "git-2017-06-26";
module_name = "fish";
src = fetchFromGitHub {
- # this fork works with ZNC 1.6
- owner = "jarrydpage";
+ # this fork works with ZNC 1.7
+ owner = "oilslump";
repo = "znc-fish";
- rev = "9c580e018a1a08374e814fc06f551281cff827de";
- sha256 = "0yvs0jkwwp18qxqvw1dvir91ggczz56ka00k0zlsb81csdi8xfvl";
+ rev = "7d91467dbb195f7b591567911210523c6087662e";
+ sha256 = "1ky5xg17k5f393whrv5iv8zsmdvdyk2f7z5qdsmxcwy3pdxy6vsm";
};
meta = {
diff --git a/pkgs/applications/office/aesop/default.nix b/pkgs/applications/office/aesop/default.nix
index b71334a6a72..b637f6bbf06 100644
--- a/pkgs/applications/office/aesop/default.nix
+++ b/pkgs/applications/office/aesop/default.nix
@@ -1,15 +1,15 @@
-{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, python3, gtk3
+{ stdenv, vala, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, python3, gtk3
, desktop-file-utils, json-glib, libsoup, libgee, poppler, wrapGAppsHook }:
stdenv.mkDerivation rec {
pname = "aesop";
- version = "1.1.2";
+ version = "1.1.3";
src = fetchFromGitHub {
owner = "lainsce";
repo = pname;
rev = version;
- sha256 = "1vadm8295jb7jaah2qykf3h9zvl5c013sanmxqi4snmmq4pa32ax";
+ sha256 = "1hnwhxaz0zx4fswrxjzyv5s77v5fimn87yid9sd1qgfv2g1ck0jc";
};
nativeBuildInputs = [
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
ninja
pkgconfig
python3
- pantheon.vala
+ vala
wrapGAppsHook
];
diff --git a/pkgs/applications/office/atlassian-cli/default.nix b/pkgs/applications/office/atlassian-cli/default.nix
index 6ef6e51527e..6894f1ca635 100644
--- a/pkgs/applications/office/atlassian-cli/default.nix
+++ b/pkgs/applications/office/atlassian-cli/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "atlassian-cli";
- version = "8.5.0";
+ version = "9.0.0";
src = fetchzip {
url = "https://bobswift.atlassian.net/wiki/download/attachments/16285777/${pname}-${version}-distribution.zip";
- sha256 = "0c9jq7q0bx0db0zhdh89bv1ijfg7cddbx04v451vl8caqcyhkfgz";
+ sha256 = "1z8723krq65fcy5aapgiz216vrpw2nw8fbn1h3a4zpis7kw8qp0f";
extraPostFetch = "chmod go-w $out";
};
diff --git a/pkgs/applications/office/bookworm/default.nix b/pkgs/applications/office/bookworm/default.nix
index fe81340a7fb..d839f4c81f2 100644
--- a/pkgs/applications/office/bookworm/default.nix
+++ b/pkgs/applications/office/bookworm/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, pantheon, python3, python2, pkgconfig, libxml2, meson, ninja, gtk3, gnome3, glib, webkitgtk
+{ stdenv, fetchFromGitHub, pantheon, vala, python3, python2, pkgconfig, libxml2, meson, ninja, gtk3, gnome3, glib, webkitgtk
, gobject-introspection, sqlite, poppler, poppler_utils, html2text, curl, gnugrep, coreutils, bash, unzip, unar, wrapGAppsHook }:
stdenv.mkDerivation rec {
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
ninja
pkgconfig
python3
- pantheon.vala
+ vala
wrapGAppsHook
];
diff --git a/pkgs/applications/office/envelope/default.nix b/pkgs/applications/office/envelope/default.nix
new file mode 100644
index 00000000000..9142fff9a2c
--- /dev/null
+++ b/pkgs/applications/office/envelope/default.nix
@@ -0,0 +1,74 @@
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, meson
+, ninja
+, pkgconfig
+, pantheon
+, python3
+, vala
+, appstream-glib
+, desktop-file-utils
+, gettext
+, glib
+, gtk3
+, libgee
+, sqlite
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "envelope";
+ version = "0.0.4";
+
+ src = fetchFromGitHub {
+ owner = "cjfloss";
+ repo = pname;
+ rev = version;
+ sha256 = "111lq1gijcm7qwpac09q11ymwiw2x3m12a28ki52f28fb1amvffc";
+ };
+
+ nativeBuildInputs = [
+ appstream-glib
+ desktop-file-utils
+ gettext
+ meson
+ ninja
+ vala
+ pkgconfig
+ python3
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ glib
+ gtk3
+ libgee
+ pantheon.granite
+ sqlite
+ ];
+
+ doCheck = true;
+
+ patches = [
+ # Fix AppData Validation.
+ # https://github.com/cjfloss/envelope/pull/59
+ (fetchpatch {
+ url = "https://github.com/cjfloss/envelope/commit/b6a28eced89b8f944479fcc695aebfb9aae0c691.patch";
+ sha256 = "11znc8z52kl893n3gmmdpnp3y4vpzmb263m5gp0qxbl3xykq2wzr";
+ })
+ ];
+
+ postPatch = ''
+ chmod +x data/post_install.py
+ patchShebangs data/post_install.py
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Personal finance manager for elementary OS";
+ homepage = "https://github.com/cjfloss/envelope";
+ maintainers = with maintainers; [ kjuvi ] ++ pantheon.maintainers;
+ platforms = platforms.linux;
+ license = licenses.gpl3Plus;
+ };
+}
diff --git a/pkgs/applications/office/fava/default.nix b/pkgs/applications/office/fava/default.nix
index a5de74a6f16..6b26870ee44 100644
--- a/pkgs/applications/office/fava/default.nix
+++ b/pkgs/applications/office/fava/default.nix
@@ -25,6 +25,7 @@ buildPythonApplication rec {
markdown2
ply
simplejson
+ jaraco_functools
];
# CLI test expects fava on $PATH. Not sure why static_url fails.
diff --git a/pkgs/applications/office/flexibee/default.nix b/pkgs/applications/office/flexibee/default.nix
index 284fdf7a124..831d8cbcf2a 100644
--- a/pkgs/applications/office/flexibee/default.nix
+++ b/pkgs/applications/office/flexibee/default.nix
@@ -1,7 +1,7 @@
{ stdenv, fetchurl, makeWrapper, jre }:
let
- version = "2019.2.5";
+ version = "2019.3.0.7";
majorVersion = builtins.substring 0 6 version;
in
@@ -11,16 +11,25 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "http://download.flexibee.eu/download/${majorVersion}/${version}/${pname}-${version}.tar.gz";
- sha256 = "0k94y4x6lj1vcb89a95v9mzl95mkpwp9n4a2gwvq0g90zpbnn493";
+ sha256 = "01n2pkh17s2iab7n9xgq9vqcf1fnzmb382zmmd1lwyw3x57f5rq2";
};
nativeBuildInputs = [ makeWrapper ];
+ prePatch = ''
+ substituteInPlace usr/sbin/flexibee-server \
+ --replace "/usr/share/flexibee" $out \
+ --replace "/var/run" "/run"
+ '';
+
+
installPhase = ''
runHook preInstall
cp -R usr/share/flexibee/ $out/
install -Dm755 usr/bin/flexibee $out/bin/flexibee
- wrapProgram $out/bin/flexibee --set JAVA_HOME "${jre}"
+ install -Dm755 usr/sbin/flexibee-server $out/bin/flexibee-server
+ wrapProgram $out/bin/flexibee --set JAVA_HOME "${jre}"
+ wrapProgram $out/bin/flexibee-server --set JAVA_HOME "${jre}"
runHook postInstall
'';
diff --git a/pkgs/applications/office/gnucash/default.nix b/pkgs/applications/office/gnucash/default.nix
index 3abc447f6e9..d8fbd4392bd 100644
--- a/pkgs/applications/office/gnucash/default.nix
+++ b/pkgs/applications/office/gnucash/default.nix
@@ -25,27 +25,26 @@ in
stdenv.mkDerivation rec {
pname = "gnucash";
- version = "3.6";
+ version = "3.7";
src = fetchurl {
url = "mirror://sourceforge/gnucash/${pname}-${version}.tar.bz2";
- sha256 = "09azp17ghn7i8kwk0ci3gq0qkn5pvbknhf1cbk7v43mvc3g8djzi";
+ sha256 = "1d2qi3ny0bxa16ifh3465z1jgn1l0fmqk9dkph4ialw076gv13kb";
};
nativeBuildInputs = [ pkgconfig makeWrapper cmake gtest ];
buildInputs = [
boost icu libxml2 libxslt gettext swig isocodes gtk3 glibcLocales
- webkitgtk dconf hicolor-icon-theme libofx aqbanking gwenhywfar libdbi
+ webkitgtk dconf libofx aqbanking gwenhywfar libdbi
libdbiDrivers guile
perlWrapper perl
] ++ (with perlPackages; [ FinanceQuote DateManip ]);
propagatedUserEnvPkgs = [ dconf ];
- # glib-2.58 deprecrated g_type_class_add_private
- # Should probably be removed next version bump
- CXXFLAGS = [ "-Wno-deprecated-declarations" ];
+ # glib-2.62 deprecations
+ NIX_CFLAGS_COMPILE = [ "-DGLIB_DISABLE_DEPRECATION_WARNINGS" ];
patches = [ ./cmake_check_symbol_exists.patch ];
diff --git a/pkgs/applications/office/gnumeric/default.nix b/pkgs/applications/office/gnumeric/default.nix
index 70d1e3d79ba..979c960f7a8 100644
--- a/pkgs/applications/office/gnumeric/default.nix
+++ b/pkgs/applications/office/gnumeric/default.nix
@@ -1,31 +1,22 @@
{ stdenv, fetchurl, pkgconfig, intltool, perlPackages
, goffice, gnome3, wrapGAppsHook, gtk3, bison, pythonPackages
-, itstool, autoreconfHook
+, itstool
}:
let
inherit (pythonPackages) python pygobject3;
in stdenv.mkDerivation rec {
pname = "gnumeric";
- version = "1.12.45"; # TODO next release: remove gamma patch and autoreconfHook
+ version = "1.12.46";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0c8dl1kvnj3g32qy3s92qpqpqfy0in59cx005gjvvzsflahav61h";
+ sha256 = "9fdc67377af52dfe69a7db4f533938024a75f454fc5d25ab43b8e6739be0b5e1";
};
- patches = stdenv.lib.optional stdenv.isDarwin
- # https://gitlab.gnome.org/GNOME/gnumeric/issues/402
- (fetchurl {
- name = "math-gamma.patch";
- url = "https://gitlab.gnome.org/GNOME/gnumeric/uploads/cf8d162bc719de92e97d01cb0ba5b637/ppp";
- sha256 = "17wiigs06qc86a1nghwcg3pcnpa28123jblgsxpy3j7drardgnlp";
- });
-
configureFlags = [ "--disable-component" ];
- nativeBuildInputs = [ pkgconfig intltool bison itstool wrapGAppsHook ]
- ++ stdenv.lib.optional stdenv.isDarwin autoreconfHook;
+ nativeBuildInputs = [ pkgconfig intltool bison itstool wrapGAppsHook ];
# ToDo: optional libgda, introspection?
buildInputs = [
diff --git a/pkgs/applications/office/grisbi/default.nix b/pkgs/applications/office/grisbi/default.nix
index 752ad70cd09..cb8cf76b998 100644
--- a/pkgs/applications/office/grisbi/default.nix
+++ b/pkgs/applications/office/grisbi/default.nix
@@ -1,5 +1,5 @@
{ fetchurl, stdenv, gtk, pkgconfig, libgsf, libofx, intltool, wrapGAppsHook
-, hicolor-icon-theme, libsoup, gnome3 }:
+, libsoup, gnome3 }:
stdenv.mkDerivation rec {
pname = "grisbi";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
- buildInputs = [ gtk libgsf libofx intltool hicolor-icon-theme libsoup
+ buildInputs = [ gtk libgsf libofx intltool libsoup
gnome3.adwaita-icon-theme ];
meta = with stdenv.lib; {
diff --git a/pkgs/applications/office/homebank/default.nix b/pkgs/applications/office/homebank/default.nix
index 727a68c440a..f72f820fd23 100644
--- a/pkgs/applications/office/homebank/default.nix
+++ b/pkgs/applications/office/homebank/default.nix
@@ -1,15 +1,15 @@
{ fetchurl, stdenv, gtk, pkgconfig, libofx, intltool, wrapGAppsHook
-, hicolor-icon-theme, libsoup, gnome3 }:
+, libsoup, gnome3 }:
stdenv.mkDerivation rec {
- name = "homebank-5.2.7";
+ name = "homebank-5.2.8";
src = fetchurl {
url = "http://homebank.free.fr/public/${name}.tar.gz";
- sha256 = "0pzbn0wlppwbap19isbv8vv3cq7xswladhc272ykaya78r1bxvcf";
+ sha256 = "13ampiv68y30kc0p2560g3yz8whqpwnidfcnb9lndv93b9ca767y";
};
nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
- buildInputs = [ gtk libofx intltool hicolor-icon-theme libsoup
+ buildInputs = [ gtk libofx intltool libsoup
gnome3.adwaita-icon-theme ];
meta = with stdenv.lib; {
diff --git a/pkgs/applications/office/impressive/default.nix b/pkgs/applications/office/impressive/default.nix
index 5065a1cb9bc..a8c318d690a 100644
--- a/pkgs/applications/office/impressive/default.nix
+++ b/pkgs/applications/office/impressive/default.nix
@@ -2,7 +2,7 @@
, SDL, ghostscript, pdftk, dejavu_fonts }:
let
- version = "0.12.0";
+ version = "0.12.1";
pythonEnv = python2.withPackages (ps: with ps; [pyopengl pygame pillow]);
in stdenv.mkDerivation {
# This project was formerly known as KeyJNote.
@@ -13,7 +13,7 @@ in stdenv.mkDerivation {
src = fetchurl {
url = "mirror://sourceforge/impressive/Impressive-${version}.tar.gz";
- sha256 = "0zaqq3yvd296mfr5bxpj2hqlk7vrb0rsbgd4dc1l5ag46giqvivx";
+ sha256 = "1r7ihv41awnlnlry1kymb8fka053wdhzibfwcarn78rr3vs338vl";
};
buildInputs = [ makeWrapper pythonEnv ];
diff --git a/pkgs/applications/office/kexi/default.nix b/pkgs/applications/office/kexi/default.nix
index adad5c8680f..8db7068f7cf 100644
--- a/pkgs/applications/office/kexi/default.nix
+++ b/pkgs/applications/office/kexi/default.nix
@@ -1,10 +1,10 @@
{
- mkDerivation, lib, fetchurl, extra-cmake-modules, kdoctools,
+ mkDerivation, lib, fetchurl, fetchpatch, extra-cmake-modules, kdoctools,
boost, qttools, qtwebkit,
breeze-icons, karchive, kcodecs, kcompletion, kconfig, kconfigwidgets, kcoreaddons,
kcrash, kguiaddons, ki18n, kiconthemes, kitemviews, kio, ktexteditor, ktextwidgets,
kwidgetsaddons, kxmlgui,
- kdb, kproperty, kreport, lcms2, mysql, marble, postgresql
+ kdb, kproperty, kreport, lcms2, libmysqlclient, marble, postgresql
}:
mkDerivation rec {
@@ -23,11 +23,22 @@ mkDerivation rec {
breeze-icons karchive kcodecs kcompletion kconfig kconfigwidgets kcoreaddons
kcrash kguiaddons ki18n kiconthemes kitemviews kio ktexteditor ktextwidgets
kwidgetsaddons kxmlgui
- kdb kproperty kreport lcms2 mysql.connector-c marble postgresql
+ kdb kproperty kreport lcms2 libmysqlclient marble postgresql
];
propagatedUserEnvPkgs = [ kproperty ];
+ patches = [
+ # Changes in Qt 5.13 mean that QDate isn't exported from certain places,
+ # which the build was relying on. This patch explicitly imports QDate where
+ # needed.
+ # Should be unnecessary with kexi >= 3.3
+ (fetchpatch {
+ url = "https://cgit.kde.org/kexi.git/patch/src/plugins/forms/widgets/kexidbdatepicker.cpp?id=511d99b7745a6ce87a208bdbf69e631f1f136d53";
+ sha256 = "0m5cwq2v46gb1b12p7acck6dadvn7sw4xf8lkqikj9hvzq3r1dnj";
+ })
+ ];
+
meta = with lib; {
description = "A open source visual database applications creator, a long-awaited competitor for programs like MS Access or Filemaker";
longDescription = ''
diff --git a/pkgs/applications/office/kmymoney/default.nix b/pkgs/applications/office/kmymoney/default.nix
index 0cb23abea66..966c36f1823 100644
--- a/pkgs/applications/office/kmymoney/default.nix
+++ b/pkgs/applications/office/kmymoney/default.nix
@@ -10,17 +10,16 @@
# Needed for running tests:
, qtbase, xvfb_run
-# For weboob, which only supports Python 2.x:
-, python2Packages
+, python3Packages
}:
stdenv.mkDerivation rec {
pname = "kmymoney";
- version = "5.0.5";
+ version = "5.0.7";
src = fetchurl {
url = "mirror://kde/stable/kmymoney/${version}/src/${pname}-${version}.tar.xz";
- sha256 = "1hghs4676kn2giwpwz1y7p6djpmi41x64idf3ybiz8ky14a5s977";
+ sha256 = "1h5mzvgpfyl2j66b3nsw17yxvg0ja1qhjlcmfkz62221vcqsrp6m";
};
# Hidden dependency that wasn't included in CMakeLists.txt:
@@ -29,7 +28,7 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
nativeBuildInputs = [
- doxygen extra-cmake-modules graphviz kdoctools python2Packages.wrapPython
+ doxygen extra-cmake-modules graphviz kdoctools python3Packages.wrapPython
wrapQtAppsHook
];
@@ -41,10 +40,10 @@ stdenv.mkDerivation rec {
# Put it into buildInputs so that CMake can find it, even though we patch
# it into the interface later.
- python2Packages.weboob
+ python3Packages.weboob
];
- weboobPythonPath = [ python2Packages.weboob ];
+ weboobPythonPath = [ python3Packages.weboob ];
postInstall = ''
buildPythonPath "$weboobPythonPath"
diff --git a/pkgs/applications/office/ledger-autosync/default.nix b/pkgs/applications/office/ledger-autosync/default.nix
index 4c126fc2f91..62ac6a80382 100644
--- a/pkgs/applications/office/ledger-autosync/default.nix
+++ b/pkgs/applications/office/ledger-autosync/default.nix
@@ -2,14 +2,14 @@
python3Packages.buildPythonApplication rec {
pname = "ledger-autosync";
- version = "1.0.0";
+ version = "1.0.1";
# no tests included in PyPI tarball
src = fetchFromGitHub {
owner = "egh";
repo = "ledger-autosync";
rev = "v${version}";
- sha256 = "1fn32c02idccdmf9906pxn248qc9basjy2kr2g600806k3qvw84a";
+ sha256 = "1h5mjngdd3rmzwmy026xmas0491kxxi1vxkd5m1xii7y6j50z14q";
};
propagatedBuildInputs = with python3Packages; [
diff --git a/pkgs/applications/office/libreoffice/default.nix b/pkgs/applications/office/libreoffice/default.nix
index f5f53e10496..51ef4eb9d24 100644
--- a/pkgs/applications/office/libreoffice/default.nix
+++ b/pkgs/applications/office/libreoffice/default.nix
@@ -1,10 +1,10 @@
{ stdenv, fetchurl, pam, python3, libxslt, perl, ArchiveZip, gettext
, IOCompress, zlib, libjpeg, expat, freetype, libwpd
-, libxml2, db, sablotron, curl, fontconfig, libsndfile, neon
+, libxml2, db, curl, fontconfig, libsndfile, neon
, bison, flex, zip, unzip, gtk3, gtk2, libmspack, getopt, file, cairo, which
, icu, boost, jdk, ant, cups, xorg, libcmis, fontforge
, openssl, gperf, cppunit, GConf, ORBit2, poppler, utillinux
-, librsvg, gnome_vfs, libGLU_combined, bsh, CoinMP, libwps, libabw, mysql
+, librsvg, gnome_vfs, libGLU_combined, bsh, CoinMP, libwps, libabw, libmysqlclient
, autoconf, automake, openldap, bash, hunspell, librdf_redland, nss, nspr
, libwpg, dbus-glib, qt4, clucene_core, libcdr, lcms, vigra
, unixODBC, mdds, sane-backends, mythes, libexttextcat, libvisio
@@ -65,6 +65,8 @@ in stdenv.mkDerivation rec {
inherit (primary-src) src;
+ outputs = [ "out" "dev" ];
+
# For some reason librdf_redland sometimes refers to rasqal.h instead
# of rasqal/rasqal.h
NIX_CFLAGS_COMPILE = [ "-I${librdf_rasqal}/include/rasqal" ] ++ lib.optional stdenv.isx86_64 "-mno-fma";
@@ -276,6 +278,9 @@ in stdenv.mkDerivation rec {
cp -r sysui/desktop/icons "$out/share"
sed -re 's@Icon=libreoffice(dev)?[0-9.]*-?@Icon=@' -i "$out/share/applications/"*.desktop
+
+ mkdir -p $dev
+ cp -r include $dev
'';
configureFlags = [
@@ -361,9 +366,9 @@ in stdenv.mkDerivation rec {
libmspack librdf_redland librsvg libsndfile libvisio libwpd libwpg libX11
libXaw libXext libXi libXinerama libxml2 libxslt libXtst
libXdmcp libpthreadstubs libGLU_combined mythes gst_all_1.gstreamer
- gst_all_1.gst-plugins-base glib mysql.connector-c
+ gst_all_1.gst-plugins-base glib libmysqlclient
neon nspr nss openldap openssl ORBit2 pam perl pkgconfig poppler
- python3 sablotron sane-backends unzip vigra which zip zlib
+ python3 sane-backends unzip vigra which zip zlib
mdds bluez5 libcmis libwps libabw libzmf
libxshmfence libatomic_ops graphite2 harfbuzz gpgme utillinux
librevenge libe-book libmwaw glm glew ncurses epoxy
diff --git a/pkgs/applications/office/libreoffice/still.nix b/pkgs/applications/office/libreoffice/still.nix
index eb774a30941..fc984d39e27 100644
--- a/pkgs/applications/office/libreoffice/still.nix
+++ b/pkgs/applications/office/libreoffice/still.nix
@@ -1,10 +1,10 @@
{ stdenv, fetchurl, pam, python3, libxslt, perl, ArchiveZip, gettext
, IOCompress, zlib, libjpeg, expat, freetype, libwpd
-, libxml2, db, sablotron, curl, fontconfig, libsndfile, neon
+, libxml2, db, curl, fontconfig, libsndfile, neon
, bison, flex, zip, unzip, gtk3, gtk2, libmspack, getopt, file, cairo, which
, icu, boost, jdk, ant, cups, xorg, libcmis, fontforge
, openssl, gperf, cppunit, GConf, ORBit2, poppler, utillinux
-, librsvg, gnome_vfs, libGLU_combined, bsh, CoinMP, libwps, libabw, mysql
+, librsvg, gnome_vfs, libGLU_combined, bsh, CoinMP, libwps, libabw, libmysqlclient
, autoconf, automake, openldap, bash, hunspell, librdf_redland, nss, nspr
, libwpg, dbus-glib, qt4, clucene_core, libcdr, lcms, vigra
, unixODBC, mdds, sane-backends, mythes, libexttextcat, libvisio
@@ -65,6 +65,8 @@ in stdenv.mkDerivation rec {
inherit (primary-src) src;
+ outputs = [ "out" "dev" ];
+
# For some reason librdf_redland sometimes refers to rasqal.h instead
# of rasqal/rasqal.h
NIX_CFLAGS_COMPILE = [ "-I${librdf_rasqal}/include/rasqal" ];
@@ -276,6 +278,9 @@ in stdenv.mkDerivation rec {
cp -r sysui/desktop/icons "$out/share"
sed -re 's@Icon=libreoffice(dev)?[0-9.]*-?@Icon=@' -i "$out/share/applications/"*.desktop
+
+ mkdir -p $dev
+ cp -r include $dev
'';
configureFlags = [
@@ -358,9 +363,9 @@ in stdenv.mkDerivation rec {
libmspack librdf_redland librsvg libsndfile libvisio libwpd libwpg libX11
libXaw libXext libXi libXinerama libxml2 libxslt libXtst
libXdmcp libpthreadstubs libGLU_combined mythes gst_all_1.gstreamer
- gst_all_1.gst-plugins-base glib mysql.connector-c
+ gst_all_1.gst-plugins-base glib libmysqlclient
neon nspr nss openldap openssl ORBit2 pam perl poppler
- python3 sablotron sane-backends unzip vigra which zip zlib
+ python3 sane-backends unzip vigra which zip zlib
mdds bluez5 libcmis libwps libabw libzmf
libxshmfence libatomic_ops graphite2 harfbuzz gpgme utillinux
librevenge libe-book libmwaw glm glew ncurses epoxy
diff --git a/pkgs/applications/office/mendeley/default.nix b/pkgs/applications/office/mendeley/default.nix
index 655a10d3a94..9fdeecfee36 100644
--- a/pkgs/applications/office/mendeley/default.nix
+++ b/pkgs/applications/office/mendeley/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, dpkg, which
+{ fetchurl, stdenv, mkDerivation, dpkg, which
, makeWrapper
, alsaLib
, desktop-file-utils
@@ -90,7 +90,7 @@ let
in
-stdenv.mkDerivation {
+mkDerivation {
pname = "mendeley";
inherit version;
@@ -106,6 +106,8 @@ stdenv.mkDerivation {
dontUnpack = true;
+ dontWrapQtApps = true;
+
installPhase = ''
dpkg-deb -x $src $out
mv $out/opt/mendeleydesktop/{bin,lib,share} $out
@@ -115,7 +117,7 @@ stdenv.mkDerivation {
--set-rpath ${stdenv.lib.makeLibraryPath deps}:$out/lib \
$out/bin/mendeleydesktop
- wrapProgram $out/bin/mendeleydesktop \
+ wrapQtApp $out/bin/mendeleydesktop \
--add-flags "--unix-distro-build" \
${stdenv.lib.optionalString autorunLinkHandler # ignore errors installing the link handler
''--run "$out/bin/install-mendeley-link-handler.sh $out/bin/mendeleydesktop ||:"''}
@@ -130,7 +132,7 @@ stdenv.mkDerivation {
'';
dontStrip = true;
- dontPatchElf = true;
+ dontPatchELF = true;
updateScript = import ./update.nix { inherit writeScript runtimeShell; };
diff --git a/pkgs/applications/office/notes-up/default.nix b/pkgs/applications/office/notes-up/default.nix
index f8729583ddc..e7db27bdedc 100644
--- a/pkgs/applications/office/notes-up/default.nix
+++ b/pkgs/applications/office/notes-up/default.nix
@@ -1,4 +1,19 @@
-{ stdenv, fetchFromGitHub, pantheon, pkgconfig, cmake, ninja, gtk3, gtksourceview3, webkitgtk, gtkspell3, glib, libgee, sqlite, discount, wrapGAppsHook
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, pkgconfig
+, vala
+, cmake
+, ninja
+, gtk3
+, gtksourceview3
+, webkitgtk
+, gtkspell3
+, glib
+, libgee
+, sqlite
+, discount
+, wrapGAppsHook
, withPantheon ? false }:
stdenv.mkDerivation rec {
@@ -15,7 +30,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [
cmake
ninja
- pantheon.vala
+ vala
pkgconfig
wrapGAppsHook
];
diff --git a/pkgs/applications/office/paperless/default.nix b/pkgs/applications/office/paperless/default.nix
index af2fd82ddb0..97088f36041 100644
--- a/pkgs/applications/office/paperless/default.nix
+++ b/pkgs/applications/office/paperless/default.nix
@@ -57,6 +57,12 @@ let
cp -r --no-preserve=mode $src/src/* $src/LICENSE $srcDir
'';
+ postPatch = ''
+ # django-cors-headers 3.x requires a scheme for allowed hosts
+ substituteInPlace $out/share/paperless/paperless/settings.py \
+ --replace "localhost:8080" "http://localhost:8080"
+ '';
+
buildPhase = let
# Paperless has explicit runtime checks that expect these binaries to be in PATH
extraBin = lib.makeBinPath [ imagemagick7 ghostscript optipng tesseract unpaper ];
diff --git a/pkgs/applications/office/paperless/python-modules/django-crispy-forms.nix b/pkgs/applications/office/paperless/python-modules/django-crispy-forms.nix
index c1e0f7da30f..465da386247 100644
--- a/pkgs/applications/office/paperless/python-modules/django-crispy-forms.nix
+++ b/pkgs/applications/office/paperless/python-modules/django-crispy-forms.nix
@@ -1,5 +1,5 @@
{ lib, buildPythonPackage, fetchFromGitHub
-, pytest, pytest-django, django }:
+, pytest_4, pytest-django, django }:
buildPythonPackage {
pname = "django-crispy-forms";
@@ -19,7 +19,7 @@ buildPythonPackage {
export sourceRoot=source-
'';
- checkInputs = [ pytest pytest-django django ];
+ checkInputs = [ pytest_4 pytest-django django ];
checkPhase = ''
PYTHONPATH="$(pwd):$PYTHONPATH" \
diff --git a/pkgs/applications/office/paperwork/default.nix b/pkgs/applications/office/paperwork/default.nix
index adbd4c30a39..3506ea8b551 100644
--- a/pkgs/applications/office/paperwork/default.nix
+++ b/pkgs/applications/office/paperwork/default.nix
@@ -1,6 +1,6 @@
{ lib, python3Packages, gtk3, cairo
, aspellDicts, buildEnv
-, gnome3, hicolor-icon-theme, librsvg
+, gnome3, librsvg
, xvfb_run, dbus, libnotify
}:
@@ -48,7 +48,7 @@ python3Packages.buildPythonApplication rec {
checkInputs = [ xvfb_run dbus.daemon ] ++ (with python3Packages; [ paperwork-backend ]);
buildInputs = [
- gnome3.adwaita-icon-theme hicolor-icon-theme libnotify librsvg
+ gnome3.adwaita-icon-theme libnotify librsvg
];
# A few parts of chkdeps need to have a display and a dbus session, so we not
@@ -61,7 +61,7 @@ python3Packages.buildPythonApplication rec {
'';
propagatedBuildInputs = with python3Packages; [
- paperwork-backend pypillowfight gtk3 cairo pyxdg dateutil
+ paperwork-backend pypillowfight gtk3 cairo pyxdg dateutil setuptools pandas
];
makeWrapperArgs = [
diff --git a/pkgs/applications/office/planner/default.nix b/pkgs/applications/office/planner/default.nix
index 687b83948cd..f454d8830cb 100644
--- a/pkgs/applications/office/planner/default.nix
+++ b/pkgs/applications/office/planner/default.nix
@@ -45,6 +45,9 @@ in stdenv.mkDerivation {
python2.pkgs.pygtk
];
+ # glib-2.62 deprecations
+ NIX_CFLAGS_COMPILE = [ "-DGLIB_DISABLE_DEPRECATION_WARNINGS" ];
+
preConfigure = ''./autogen.sh'';
configureFlags = [
"--enable-python"
diff --git a/pkgs/applications/office/pympress/default.nix b/pkgs/applications/office/pympress/default.nix
new file mode 100644
index 00000000000..5cb20e4d613
--- /dev/null
+++ b/pkgs/applications/office/pympress/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, python3Packages
+, wrapGAppsHook
+, xvfb_run
+, gtk3
+, gobject-introspection
+, libcanberra-gtk3
+, dbus
+, poppler_gi
+, python3
+ }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "pympress";
+ version = "1.4.0";
+
+ src = python3Packages.fetchPypi {
+ inherit pname version;
+ sha256 = "101wj6m931bj0ah6niw79i8ywb5zlb2783g7n7dmkhw6ay3jj4vq";
+ };
+
+ nativeBuildInputs = [
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gtk3
+ gobject-introspection
+ libcanberra-gtk3
+ poppler_gi
+ ];
+
+ propagatedBuildInputs = with python3Packages; [
+ pycairo
+ pygobject3
+ python-vlc
+ watchdog
+ ];
+
+ doCheck = false; # there are no tests
+
+ meta = with lib; {
+ description = "Simple yet powerful PDF reader designed for dual-screen presentations";
+ license = licenses.gpl2Plus;
+ homepage = "https://pympress.xyz/";
+ maintainers = [ maintainers.tbenst ];
+ };
+}
diff --git a/pkgs/applications/office/qownnotes/default.nix b/pkgs/applications/office/qownnotes/default.nix
index ab32ebc67a7..b646d0fc93f 100644
--- a/pkgs/applications/office/qownnotes/default.nix
+++ b/pkgs/applications/office/qownnotes/default.nix
@@ -2,13 +2,13 @@
mkDerivation rec {
pname = "qownnotes";
- version = "19.8.6";
+ version = "19.11.14";
src = fetchurl {
url = "https://download.tuxfamily.org/${pname}/src/${pname}-${version}.tar.xz";
# Can grab official version like so:
# $ curl https://download.tuxfamily.org/qownnotes/src/qownnotes-19.1.8.tar.xz.sha256
- sha256 = "a242dd15dc484baad39e737fe1af8529411f49a0d74994e6c78cf6bad4b733b6";
+ sha256 = "8faa67720443fc9a116feae3e7d641922a08814b9af4d973d348ff8a0ee0e35d";
};
nativeBuildInputs = [ qmake qttools ];
diff --git a/pkgs/applications/office/scribus/unstable.nix b/pkgs/applications/office/scribus/unstable.nix
index 2cd441794a4..3c5ae4c4b0a 100644
--- a/pkgs/applications/office/scribus/unstable.nix
+++ b/pkgs/applications/office/scribus/unstable.nix
@@ -1,6 +1,6 @@
{ stdenv, fetchurl, mkDerivation, pkgconfig, cmake, qtbase, cairo, pixman,
boost, cups, fontconfig, freetype, hunspell, libjpeg, libtiff, libxml2, lcms2,
-podofo, poppler, poppler_data, python2, harfbuzz, qtimageformats, qttools }:
+podofo, poppler, poppler_data, python2, qtimageformats, qttools, harfbuzzFull }:
let
pythonEnv = python2.withPackages(ps: [ps.tkinter ps.pillow]);
@@ -20,7 +20,7 @@ mkDerivation rec {
buildInputs = [
qtbase cairo pixman boost cups fontconfig
freetype hunspell libjpeg libtiff libxml2 lcms2 podofo poppler
- poppler_data pythonEnv harfbuzz qtimageformats qttools
+ poppler_data pythonEnv qtimageformats qttools harfbuzzFull
];
meta = {
diff --git a/pkgs/applications/office/skrooge/default.nix b/pkgs/applications/office/skrooge/default.nix
index 42fddb972c9..fd68896ca67 100644
--- a/pkgs/applications/office/skrooge/default.nix
+++ b/pkgs/applications/office/skrooge/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib, fetchurl,
+{ mkDerivation, lib, fetchpatch, fetchurl,
cmake, extra-cmake-modules, qtwebengine, qtscript, grantlee,
kxmlgui, kwallet, kparts, kdoctools, kjobwidgets, kdesignerplugin,
kiconthemes, knewstuff, sqlcipher, qca-qt5, kactivities, karchive,
@@ -14,6 +14,14 @@ mkDerivation rec {
sha256 = "0rakfngp7j2x7h1isg6lbc5kva6k1kg99dz0zl43dc28s15can1w";
};
+ patches = [
+ (fetchpatch {
+ name = "skrooge-2.20.0-missing-header.patch";
+ url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/app-office/skrooge/files/skrooge-2.20.0-missing-header.patch?id=cb8c91474b0ae2f9e889f89afe2d9114dbd1784f";
+ sha256 = "154zsidx45h6qrcqjh6czjxrcwrcmbyv3yh2k1s40v8pzvjwzrld";
+ })
+ ];
+
nativeBuildInputs = [
cmake extra-cmake-modules kdoctools shared-mime-info
];
diff --git a/pkgs/applications/office/softmaker/desktop_items.nix b/pkgs/applications/office/softmaker/desktop_items.nix
new file mode 100644
index 00000000000..6975da06456
--- /dev/null
+++ b/pkgs/applications/office/softmaker/desktop_items.nix
@@ -0,0 +1,42 @@
+{ makeDesktopItem, pname, suiteName }:
+
+{
+ planmaker = makeDesktopItem {
+ name = "${pname}-planmaker";
+ desktopName = "${suiteName} PlanMaker";
+ icon = "${pname}-pml.png";
+ categories = "Application;Office;SpreadSheet;";
+ exec = "${pname}-planmaker %F";
+ mimeType = "application/x-pmd;application/x-pmdx;application/x-pmv;application/excel;application/x-excel;application/x-ms-excel;application/x-msexcel;application/x-sylk;application/x-xls;application/xls;application/vnd.ms-excel;application/vnd.stardivision.calc;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;application/vnd.openxmlformats-officedocument.spreadsheetml.template;application/vnd.ms-excel.sheet.macroenabled.12;application/vnd.openxmlformats-officedocument.spreadsheetml.template;application/vnd.ms-excel.template.macroEnabled.12;application/x-dif;text/spreadsheet;text/csv;application/x-prn;application/vnd.ms-excel.sheet.binary.macroenabled.12;";
+ extraEntries = ''
+ TryExec=${pname}-planmaker
+ StartupWMClass=pm
+ '';
+ };
+
+ presentations = makeDesktopItem {
+ name = "${pname}-presentations";
+ desktopName = "${suiteName} Presentations";
+ icon = "${pname}-prl.png";
+ categories = "Application;Office;Presentation;";
+ exec = "${pname}-presentations %F";
+ mimeType = "application/x-prdx;application/x-prvx;application/x-prsx;application/x-prd;application/x-prv;application/x-prs;application/ppt;application/mspowerpoint;application/vnd.ms-powerpoint;application/vnd.openxmlformats-officedocument.presentationml.presentation;application/vnd.ms-powerpoint.presentation.macroenabled.12;application/vnd.openxmlformats-officedocument.presentationml.template;application/vnd.ms-powerpoint.template.macroEnabled.12;application/vnd.ms-powerpoint.slideshow.macroenabled.12;application/vnd.openxmlformats-officedocument.presentationml.slideshow;";
+ extraEntries = ''
+ TryExec=${pname}-presentations
+ StartupWMClass=pr
+ '';
+ };
+
+ textmaker = makeDesktopItem {
+ name = "${pname}-textmaker";
+ desktopName = "${suiteName} TextMaker";
+ icon = "${pname}-tml.png";
+ categories = "Application;Office;WordProcessor;";
+ exec = "${pname}-textmaker %F";
+ mimeType = "application/x-tmdx;application/x-tmvx;application/x-tmd;application/x-tmv;application/msword;application/vnd.ms-word;application/x-doc;text/rtf;application/rtf;application/vnd.oasis.opendocument.text;application/vnd.oasis.opendocument.text-template;application/vnd.stardivision.writer;application/vnd.sun.xml.writer;application/vnd.sun.xml.writer.template;application/vnd.openxmlformats-officedocument.wordprocessingml.document;application/vnd.ms-word.document.macroenabled.12;application/vnd.openxmlformats-officedocument.wordprocessingml.template;application/vnd.ms-word.template.macroenabled.12;application/x-pocket-word;application/x-dbf;application/msword-template;";
+ extraEntries = ''
+ TryExec=${pname}-textmaker
+ StartupWMClass=tm
+ '';
+ };
+}
diff --git a/pkgs/applications/office/softmaker/freeoffice.nix b/pkgs/applications/office/softmaker/freeoffice.nix
new file mode 100644
index 00000000000..ff54f8ff90f
--- /dev/null
+++ b/pkgs/applications/office/softmaker/freeoffice.nix
@@ -0,0 +1,15 @@
+{ callPackage, fetchurl, ... } @ args:
+
+callPackage ./generic.nix (args // rec {
+ pname = "freeoffice";
+ version = "973";
+ edition = "2018";
+ suiteName = "FreeOffice";
+
+ src = fetchurl {
+ url = "https://www.softmaker.net/down/softmaker-freeoffice-${version}-amd64.tgz";
+ sha256 = "0xac4ynf1lfh8qmni5bhp4ybaamdfngva4bqaq21n1m4pgrx1ba5";
+ };
+
+ archive = "freeoffice${edition}.tar.lzma";
+})
diff --git a/pkgs/applications/office/softmaker/generic.nix b/pkgs/applications/office/softmaker/generic.nix
new file mode 100644
index 00000000000..82ac2b58f68
--- /dev/null
+++ b/pkgs/applications/office/softmaker/generic.nix
@@ -0,0 +1,121 @@
+{ stdenv, fetchurl, autoPatchelfHook, makeDesktopItem, makeWrapper
+
+ # Dynamic Libraries
+, curl, libGL, libX11, libXext, libXmu, libXrandr, libXrender
+
+ # For fixing up execution of /bin/ls, which is necessary for
+ # product unlocking.
+, coreutils, libredirect
+
+, pname, version, edition, suiteName, src, archive
+
+, ...
+}:
+
+let
+ desktopItems = import ./desktop_items.nix {
+ inherit makeDesktopItem pname suiteName;
+ };
+ shortEdition = builtins.substring 2 2 edition;
+in stdenv.mkDerivation rec {
+ inherit pname version edition shortEdition src;
+ nativeBuildInputs = [
+ autoPatchelfHook
+ makeWrapper
+ ];
+
+ buildInputs = [
+ curl
+ libGL
+ libX11
+ libXext
+ libXmu
+ libXrandr
+ libXrender
+ stdenv.cc.cc.lib
+ ];
+
+ dontBuild = true;
+ dontConfigure = true;
+
+ unpackPhase = ''
+ runHook preUnpack
+
+ mkdir installer
+ tar -C installer -xf ${src}
+ mkdir ${pname}
+ tar -C ${pname} -xf installer/${archive}
+
+ runHook postUnpack
+ '';
+
+ installPhase = let
+ # SoftMaker/FreeOffice collects some system information upon
+ # unlocking the product. But in doing so, it attempts to execute
+ # /bin/ls. If the execve syscall fails, the whole unlock
+ # procedure fails. This works around that by rewriting /bin/ls
+ # to the proper path.
+ #
+ # SoftMaker Office restarts itself upon some operations, such
+ # changing the theme and unlocking. Unfortunately, we do not
+ # have control over its environment then and it will fail
+ # with an error.
+ lsIntercept = ''
+ --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
+ --set NIX_REDIRECTS "/bin/ls=${coreutils}/bin/ls"
+ '';
+ in ''
+ runHook preInstall
+
+ mkdir -p $out/share
+ cp -r ${pname} $out/share/${pname}${edition}
+
+ # Wrap rather than symlinking, so that the programs can determine
+ # their resource path.
+ mkdir -p $out/bin
+ makeWrapper $out/share/${pname}${edition}/planmaker $out/bin/${pname}-planmaker \
+ ${lsIntercept}
+ makeWrapper $out/share/${pname}${edition}/presentations $out/bin/${pname}-presentations \
+ ${lsIntercept}
+ makeWrapper $out/share/${pname}${edition}/textmaker $out/bin/${pname}-textmaker \
+ ${lsIntercept}
+
+ for size in 16 32 48 64 96 128 256 512 1024; do
+ mkdir -p $out/share/icons/hicolor/''${size}x''${size}/apps
+
+ for app in pml prl tml; do
+ ln -s $out/share/${pname}${edition}/icons/''${app}_''${size}.png \
+ $out/share/icons/hicolor/''${size}x''${size}/apps/${pname}-''${app}.png
+ done
+
+ mkdir -p $out/share/icons/hicolor/''${size}x''${size}/mimetypes
+
+ for mimetype in pmd prd tmd; do
+ ln -s $out/share/${pname}${edition}/icons/''${mimetype}_''${size}.png \
+ $out/share/icons/hicolor/''${size}x''${size}/mimetypes/application-x-''${mimetype}.png
+ done
+ done
+
+ # freeoffice 973 misses the 96x96 application icons, giving broken symbolic links
+ # remove broken symbolic links
+ find $out -xtype l -ls -exec rm {} \;
+
+ # Add desktop items
+ ${desktopItems.planmaker.buildCommand}
+ ${desktopItems.presentations.buildCommand}
+ ${desktopItems.textmaker.buildCommand}
+
+ # Add mime types
+ install -D -t $out/share/mime/packages ${pname}/mime/softmaker-*office*${shortEdition}.xml
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An office suite with a word processor, spreadsheet and presentation program";
+ homepage = "https://www.softmaker.com/";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ danieldk ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/pkgs/applications/office/softmaker/softmaker_office.nix b/pkgs/applications/office/softmaker/softmaker_office.nix
new file mode 100644
index 00000000000..73a7d9bd35b
--- /dev/null
+++ b/pkgs/applications/office/softmaker/softmaker_office.nix
@@ -0,0 +1,15 @@
+{ callPackage, fetchurl, ... } @ args:
+
+callPackage ./generic.nix (args // rec {
+ pname = "softmaker-office";
+ version = "972";
+ edition = "2018";
+ suiteName = "SoftMaker Office";
+
+ src = fetchurl {
+ url = "https://www.softmaker.net/down/softmaker-office-${edition}-${version}-amd64.tgz";
+ sha256 = "06kgkmqg5269a4vm14i89mw8m1x9yy9ajw0dhfcvjizadyzmlqn1";
+ };
+
+ archive = "office${edition}.tar.lzma";
+})
diff --git a/pkgs/applications/office/spice-up/default.nix b/pkgs/applications/office/spice-up/default.nix
index 2c3dfa82c8c..6c09cc1de47 100644
--- a/pkgs/applications/office/spice-up/default.nix
+++ b/pkgs/applications/office/spice-up/default.nix
@@ -1,8 +1,10 @@
{ stdenv
, fetchFromGitHub
+, fetchpatch
, cmake
, gdk-pixbuf
, gtk3
+, vala
, gettext
, ninja
, pantheon
@@ -12,7 +14,8 @@
, libevdev
, libgee
, libsoup
-, wrapGAppsHook }:
+, wrapGAppsHook
+}:
stdenv.mkDerivation rec {
pname = "spice-up";
@@ -32,9 +35,10 @@ stdenv.mkDerivation rec {
gettext
ninja
pkgconfig
- pantheon.vala
+ vala
wrapGAppsHook
];
+
buildInputs = [
pantheon.elementary-icon-theme
pantheon.granite
@@ -47,6 +51,15 @@ stdenv.mkDerivation rec {
libsoup
];
+ patches = [
+ # Fix build with Vala 0.46
+ # https://github.com/Philip-Scott/Spice-up/pull/288
+ (fetchpatch {
+ url = "https://patch-diff.githubusercontent.com/raw/Philip-Scott/Spice-up/pull/288.patch";
+ sha256 = "0kyfd8v2sk4cvcq1j8ysp64snfjhnpr3iz7l04lx7if7h372xj39";
+ })
+ ];
+
meta = with stdenv.lib; {
description = "Create simple and beautiful presentations";
homepage = https://github.com/Philip-Scott/Spice-up;
diff --git a/pkgs/applications/office/timetable/default.nix b/pkgs/applications/office/timetable/default.nix
index fa2d5939218..bb13cae08f2 100644
--- a/pkgs/applications/office/timetable/default.nix
+++ b/pkgs/applications/office/timetable/default.nix
@@ -2,7 +2,7 @@
, fetchFromGitHub
, glib
, gtk3
-, hicolor-icon-theme
+, vala
, json-glib
, libgee
, meson
@@ -16,20 +16,20 @@
stdenv.mkDerivation rec {
pname = "timetable";
- version = "1.0.8";
+ version = "1.0.9";
src = fetchFromGitHub {
owner = "lainsce";
repo = pname;
rev = version;
- sha256 = "0s825al10s0hwfzl90bplwwasx89wx28n41sg2md71l9hfqy296q";
+ sha256 = "1n02y7vpi4lb888iic06xifc86n2xirk50s1ssf84vlc5md1kq9f";
};
nativeBuildInputs = [
meson
ninja
pkgconfig
- pantheon.vala
+ vala
python3
wrapGAppsHook
];
@@ -37,7 +37,6 @@ stdenv.mkDerivation rec {
buildInputs = [
glib
gtk3
- hicolor-icon-theme
json-glib
libgee
pantheon.granite
diff --git a/pkgs/applications/office/todoman/default.nix b/pkgs/applications/office/todoman/default.nix
index 450ee34262b..bfa162a54a2 100644
--- a/pkgs/applications/office/todoman/default.nix
+++ b/pkgs/applications/office/todoman/default.nix
@@ -5,11 +5,11 @@ let
in
buildPythonApplication rec {
pname = "todoman";
- version = "3.5.0";
+ version = "3.7.0";
src = fetchPypi {
inherit pname version;
- sha256 = "051qjdpwif06x7qspnb4pfwdhb8nnmz99yqcp4kla5hv0n3jh0w9";
+ sha256 = "16brw2zhm5vamffin6qjb0lxjlj3ba40vaficl851nw2xh2mrdhy";
};
LOCALE_ARCHIVE = stdenv.lib.optionalString stdenv.isLinux
@@ -19,7 +19,7 @@ buildPythonApplication rec {
buildInputs = [ glibcLocales ];
propagatedBuildInputs = with python3.pkgs;
- [ atomicwrites click click-log configobj humanize icalendar parsedatetime
+ [ atomicwrites click click-log click-repl configobj humanize icalendar parsedatetime
python-dateutil pyxdg tabulate urwid ];
checkInputs = with python3.pkgs;
diff --git a/pkgs/applications/office/vnote/default.nix b/pkgs/applications/office/vnote/default.nix
index fbb8436f44c..6142042e7cb 100644
--- a/pkgs/applications/office/vnote/default.nix
+++ b/pkgs/applications/office/vnote/default.nix
@@ -1,4 +1,4 @@
-{ lib, mkDerivation, fetchFromGitHub, qmake, qtbase, qtwebengine, hicolor-icon-theme }:
+{ lib, mkDerivation, fetchFromGitHub, qmake, qtbase, qtwebengine }:
let
description = "A note-taking application that knows programmers and Markdown better";
@@ -15,7 +15,7 @@ in mkDerivation rec {
};
nativeBuildInputs = [ qmake ];
- buildInputs = [ qtbase qtwebengine hicolor-icon-theme ];
+ buildInputs = [ qtbase qtwebengine ];
meta = with lib; {
inherit description;
diff --git a/pkgs/applications/office/watson/default.nix b/pkgs/applications/office/watson/default.nix
index 16df0b294c1..7d79d79072a 100644
--- a/pkgs/applications/office/watson/default.nix
+++ b/pkgs/applications/office/watson/default.nix
@@ -4,12 +4,12 @@ with pythonPackages;
buildPythonApplication rec {
pname = "watson";
- version = "1.7.0";
+ version = "1.8.0";
src = fetchPypi {
inherit version;
pname = "td-watson";
- sha256 = "249313996751f32f38817d424cbf8d74956461df1439f0ee3a962fcc3c77225d";
+ sha256 = "1ip66jhbcqifdw1avbhngwym0vv7fsqxgbph11da5wlqwfwp060n";
};
checkPhase = ''
diff --git a/pkgs/applications/office/zim/default.nix b/pkgs/applications/office/zim/default.nix
index a41064666d5..5afc03a3bd6 100644
--- a/pkgs/applications/office/zim/default.nix
+++ b/pkgs/applications/office/zim/default.nix
@@ -9,11 +9,11 @@
python3Packages.buildPythonApplication rec {
name = "zim-${version}";
- version = "0.71.1";
+ version = "0.72.0";
src = fetchurl {
url = "http://zim-wiki.org/downloads/${name}.tar.gz";
- sha256 = "0d7whwpbklkhamlvysa0yyix1hchkpdynimf3gp1xbibg8mqzbxc";
+ sha256 = "1n3gmg7g86s8iwcx0i7rvvfdfs1fzmc9awr9qzjd2rckw4bkxad1";
};
buildInputs = [ gtk3 gobject-introspection wrapGAppsHook ];
diff --git a/pkgs/applications/office/zotero/default.nix b/pkgs/applications/office/zotero/default.nix
index 334a380d914..34dace1cadb 100644
--- a/pkgs/applications/office/zotero/default.nix
+++ b/pkgs/applications/office/zotero/default.nix
@@ -34,11 +34,11 @@
stdenv.mkDerivation rec {
pname = "zotero";
- version = "5.0.73";
+ version = "5.0.77";
src = fetchurl {
url = "https://download.zotero.org/client/release/${version}/Zotero-${version}_linux-x86_64.tar.bz2";
- sha256 = "0m2i3l0gy22h6c7rk39cd17vyksyz5l5py2fn9pza8lcbypkwf3l";
+ sha256 = "1dgxzprpb8f5wpmvlvkxix0xxckfgjsi3wfcy9mb221a17cv0029";
};
buildInputs= [ wrapGAppsHook gsettings-desktop-schemas gtk3 gnome3.adwaita-icon-theme gnome3.dconf ];
diff --git a/pkgs/applications/qubes/qubes-core-vchan-xen/default.nix b/pkgs/applications/qubes/qubes-core-vchan-xen/default.nix
new file mode 100644
index 00000000000..e8241ede96c
--- /dev/null
+++ b/pkgs/applications/qubes/qubes-core-vchan-xen/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, xen_4_10 }:
+
+stdenv.mkDerivation rec {
+ pname = "qubes-core-vchan-xen";
+ version = "4.1.2";
+
+ src = fetchFromGitHub {
+ owner = "QubesOS";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1wj4vv8nkzzig52r2nzkd4jy0cwznfkyddx379hfsdl4pzsp55mj";
+ };
+
+ buildInputs = [ xen_4_10 ];
+ buildPhase = ''
+ make all PREFIX=/
+ '';
+ installPhase = ''
+ make install DESTDIR=$out PREFIX=/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Libraries required for the higher-level Qubes daemons and tools";
+ homepage = "https://qubes-os.org";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ "0x4A6F" ];
+ platforms = platforms.linux;
+ };
+}
+
diff --git a/pkgs/applications/radio/chirp/default.nix b/pkgs/applications/radio/chirp/default.nix
index aeadf49f898..c088cefd861 100644
--- a/pkgs/applications/radio/chirp/default.nix
+++ b/pkgs/applications/radio/chirp/default.nix
@@ -3,11 +3,11 @@
stdenv.mkDerivation rec {
pname = "chirp-daily";
- version = "20190718";
+ version = "20190925";
src = fetchurl {
url = "https://trac.chirp.danplanet.com/chirp_daily/daily-${version}/${pname}-${version}.tar.gz";
- sha256 = "1zngdqqqrlm8qpv8dzinamhwq6rr8zcq7db3vb284wrq0jcvrry5";
+ sha256 = "0immgss7nj7395r3csiypksnbn1r2f3j45c5v8qpybz65lpbplps";
};
nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/radio/flmsg/default.nix b/pkgs/applications/radio/flmsg/default.nix
index ae602b752e0..39fbb0de06c 100644
--- a/pkgs/applications/radio/flmsg/default.nix
+++ b/pkgs/applications/radio/flmsg/default.nix
@@ -6,12 +6,12 @@
}:
stdenv.mkDerivation rec {
- version = "4.0.10";
+ version = "4.0.14";
pname = "flmsg";
src = fetchurl {
url = "mirror://sourceforge/fldigi/${pname}-${version}.tar.gz";
- sha256 = "1vprax1w5wm3v2i4d0mbakrxp7v53m2bm8icsvaji06ixskq7cxf";
+ sha256 = "0s1prawkpvr7xr7h8w7r0ly90ya3n8h6qsii0x6laqrkgjn9w9iy";
};
buildInputs = [
diff --git a/pkgs/applications/radio/flrig/default.nix b/pkgs/applications/radio/flrig/default.nix
index 5bb561f1426..242536a8965 100644
--- a/pkgs/applications/radio/flrig/default.nix
+++ b/pkgs/applications/radio/flrig/default.nix
@@ -6,12 +6,12 @@
}:
stdenv.mkDerivation rec {
- version = "1.3.47";
+ version = "1.3.48";
pname = "flrig";
src = fetchurl {
url = "mirror://sourceforge/fldigi/${pname}-${version}.tar.gz";
- sha256 = "1xih3ik5dssa40lx48228pcrds8r7xmd8rmk2fcr1mw6apw6q141";
+ sha256 = "0f46rmrr8aphj8fsbfa1bywihigzfzyxq9zg66d1laa7d3jsfs9q";
};
buildInputs = [
diff --git a/pkgs/applications/radio/rtl_433/default.nix b/pkgs/applications/radio/rtl_433/default.nix
index 3d519255ab4..148ad35a1f0 100644
--- a/pkgs/applications/radio/rtl_433/default.nix
+++ b/pkgs/applications/radio/rtl_433/default.nix
@@ -4,14 +4,14 @@
stdenv.mkDerivation {
- version = "18.12";
+ version = "19.08";
pname = "rtl_433";
src = fetchFromGitHub {
owner = "merbanan";
repo = "rtl_433";
- rev = "18.12";
- sha256 = "0y73g9ffpsgnmfk8lbihyl9d1fd9v91wsn8k8xhsdmgmn4ra1jk5";
+ rev = "19.08";
+ sha256 = "0cm82gm5c86qfl4dw37h8wyk77947k6fv2n1pn3xvk3wz2ygsdi6";
};
nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/applications/radio/sdrangel/default.nix b/pkgs/applications/radio/sdrangel/default.nix
index 346c6aeed8e..7cb64f92f3f 100644
--- a/pkgs/applications/radio/sdrangel/default.nix
+++ b/pkgs/applications/radio/sdrangel/default.nix
@@ -39,7 +39,7 @@ let
in mkDerivation rec {
pname = "sdrangel";
- version = "4.11.7";
+ version = "4.11.12";
src = fetchFromGitHub {
owner = "f4exb";
diff --git a/pkgs/applications/radio/tlf/default.nix b/pkgs/applications/radio/tlf/default.nix
index 92183306038..f45e695486d 100644
--- a/pkgs/applications/radio/tlf/default.nix
+++ b/pkgs/applications/radio/tlf/default.nix
@@ -1,5 +1,5 @@
{ stdenv, fetchFromGitHub, autoreconfHook, autoconf, automake, pkgconfig, glib
-, perl, ncurses, hamlib, xmlrpc_c }:
+, perl, ncurses5, hamlib, xmlrpc_c }:
stdenv.mkDerivation rec {
pname = "tlf";
@@ -13,15 +13,13 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs = [ autoreconfHook autoconf automake pkgconfig perl ];
- buildInputs = [ glib ncurses hamlib xmlrpc_c ];
+ buildInputs = [ glib ncurses5 hamlib xmlrpc_c ];
configureFlags = [ "--enable-hamlib" "--enable-fldigi-xmlrpc" ];
postInstall = ''
mkdir -p $out/lib
-
- # Hack around lack of libtinfo in NixOS
- ln -s ${ncurses.out}/lib/libncursesw.so.6 $out/lib/libtinfo.so.5
+ ln -s ${ncurses5.out}/lib/libtinfo.so.5 $out/lib/libtinfo.so.5
'';
meta = with stdenv.lib; {
diff --git a/pkgs/applications/radio/tqsl/default.nix b/pkgs/applications/radio/tqsl/default.nix
index ce0fbf0e16d..343b0bf8cba 100644
--- a/pkgs/applications/radio/tqsl/default.nix
+++ b/pkgs/applications/radio/tqsl/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "tqsl";
- version = "2.4.3";
+ version = "2.4.7";
src = fetchurl {
url = "https://www.arrl.org/files/file/LoTW%20Instructions/${pname}-${version}.tar.gz";
- sha256 = "0f8pa5wnp0x0mjjr5kanka9hirgmp5wf6jsb95dc6hjlzlvy6kz9";
+ sha256 = "1i33bk3annz4rnjc58knprfajq1pbyjqyrhygqybvl7bsp70c5ri";
};
nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/radio/uhd/default.nix b/pkgs/applications/radio/uhd/default.nix
index 4b5c2c68344..76519062f59 100644
--- a/pkgs/applications/radio/uhd/default.nix
+++ b/pkgs/applications/radio/uhd/default.nix
@@ -1,5 +1,5 @@
{ stdenv, fetchurl, fetchFromGitHub, cmake, pkgconfig
-, python, pythonPackages, orc, libusb1, boost }:
+, python, orc, libusb1, boost }:
# You need these udev rules to not have to run as root (copied from
# ${uhd}/share/uhd/utils/uhd-usrp.rules):
@@ -40,7 +40,12 @@ in stdenv.mkDerivation {
[ (stdenv.lib.optionalString stdenv.isAarch32 "-DCMAKE_CXX_FLAGS=-Wno-psabi") ];
nativeBuildInputs = [ cmake pkgconfig ];
- buildInputs = [ python pythonPackages.pyramid_mako orc libusb1 boost ];
+ buildInputs = [
+ (python.withPackages (ps: with ps; [ Mako six requests ]))
+ orc
+ libusb1
+ boost
+ ];
# Build only the host software
preConfigure = "cd host";
diff --git a/pkgs/applications/radio/urh/default.nix b/pkgs/applications/radio/urh/default.nix
index a1b92e7e4e1..d4056dca7bf 100644
--- a/pkgs/applications/radio/urh/default.nix
+++ b/pkgs/applications/radio/urh/default.nix
@@ -1,25 +1,31 @@
{ stdenv, lib, fetchFromGitHub, python3Packages
, hackrf, rtl-sdr, airspy, limesuite, libiio
+, qt5
, USRPSupport ? false, uhd }:
python3Packages.buildPythonApplication rec {
pname = "urh";
- version = "2.7.3";
+ version = "2.8.0";
src = fetchFromGitHub {
owner = "jopohl";
repo = pname;
rev = "v${version}";
- sha256 = "1jrrj9c4ddm37m8j0g693xjimpnlvx7lan5kxish5p14xpwdak35";
+ sha256 = "1c87lff9bqhf574420ycqz88x6ad5hmy36wrb8pi0dqd1s1d72qb";
};
+ nativeBuildInputs = [ qt5.wrapQtAppsHook ];
buildInputs = [ hackrf rtl-sdr airspy limesuite libiio ]
++ lib.optional USRPSupport uhd;
propagatedBuildInputs = with python3Packages; [
- pyqt5 numpy psutil cython pyzmq pyaudio
+ pyqt5 numpy psutil cython pyzmq pyaudio setuptools
];
+ postFixup = ''
+ wrapQtApp $out/bin/urh
+ '';
+
doCheck = false;
meta = with lib; {
diff --git a/pkgs/applications/radio/welle-io/default.nix b/pkgs/applications/radio/welle-io/default.nix
index c6b09595c20..229200f2352 100644
--- a/pkgs/applications/radio/welle-io/default.nix
+++ b/pkgs/applications/radio/welle-io/default.nix
@@ -1,11 +1,11 @@
-{ stdenv, fetchFromGitHub, cmake, pkgconfig
+{ mkDerivation, lib, fetchFromGitHub, cmake, pkgconfig
, qtbase, qtcharts, qtmultimedia, qtquickcontrols, qtquickcontrols2
-, faad2, rtl-sdr, soapysdr-with-plugins, libusb, fftwSinglePrec }:
+, faad2, rtl-sdr, soapysdr-with-plugins, libusb, fftwSinglePrec, lame, mpg123 }:
let
- version = "1.0";
+ version = "2.0";
-in stdenv.mkDerivation {
+in mkDerivation {
pname = "welle-io";
inherit version;
@@ -13,8 +13,8 @@ in stdenv.mkDerivation {
src = fetchFromGitHub {
owner = "AlbrechtL";
repo = "welle.io";
- rev = "V${version}";
- sha256 = "1fsr0c2w16z45mcr85sqmllw1xf2gn6hp6f6fmgx2zfprq8gdmcr";
+ rev = "v${version}";
+ sha256 = "0cp8dyswgwidabaj9bvkkc6hl3160096j6myckd5bw00zxnbfiqn";
};
nativeBuildInputs = [ cmake pkgconfig ];
@@ -22,7 +22,9 @@ in stdenv.mkDerivation {
buildInputs = [
faad2
fftwSinglePrec
+ lame
libusb
+ mpg123
qtbase
qtcharts
qtmultimedia
@@ -38,7 +40,7 @@ in stdenv.mkDerivation {
enableParallelBuilding = true;
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "A DAB/DAB+ Software Radio";
homepage = https://www.welle.io/;
maintainers = with maintainers; [ ck3d markuskowa ];
diff --git a/pkgs/applications/radio/xlog/default.nix b/pkgs/applications/radio/xlog/default.nix
index 7b9cf0a4ee5..3434c0624ed 100644
--- a/pkgs/applications/radio/xlog/default.nix
+++ b/pkgs/applications/radio/xlog/default.nix
@@ -8,6 +8,9 @@ stdenv.mkDerivation rec {
sha256 = "0vmn8518zk7qk1mbp1h8dm0f8fx0z0jvmy42c1n15il714lj7vsl";
};
+ # glib-2.62 deprecations
+ NIX_CFLAGS_COMPILE = [ "-DGLIB_DISABLE_DEPRECATION_WARNINGS" ];
+
buildInputs = [ glib pkgconfig gtk2 hamlib ];
meta = with stdenv.lib; {
diff --git a/pkgs/applications/science/astronomy/gildas/default.nix b/pkgs/applications/science/astronomy/gildas/default.nix
index a21c9f328f4..9584c2f41a8 100644
--- a/pkgs/applications/science/astronomy/gildas/default.nix
+++ b/pkgs/applications/science/astronomy/gildas/default.nix
@@ -7,8 +7,8 @@ let
in
stdenv.mkDerivation rec {
- srcVersion = "sep19a";
- version = "20190901_a";
+ srcVersion = "oct19a";
+ version = "20191001_a";
pname = "gildas";
src = fetchurl {
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
# source code of the previous release to a different directory
urls = [ "http://www.iram.fr/~gildas/dist/gildas-src-${srcVersion}.tar.xz"
"http://www.iram.fr/~gildas/dist/archive/gildas/gildas-src-${srcVersion}.tar.xz" ];
- sha256 = "0l4jfzzxp1ab70a920qfbxiphgnc06m46wfwv0jlsq2mfk7cxac1";
+ sha256 = "0h6g16ra7v8x15j21z5hnb3midwm0asc7bjm9gs5v5sw66vn3wc1";
};
enableParallelBuilding = true;
diff --git a/pkgs/applications/science/astronomy/stellarium/default.nix b/pkgs/applications/science/astronomy/stellarium/default.nix
index ecca9141d9f..59c6a02d349 100644
--- a/pkgs/applications/science/astronomy/stellarium/default.nix
+++ b/pkgs/applications/science/astronomy/stellarium/default.nix
@@ -6,13 +6,13 @@
mkDerivation rec {
pname = "stellarium";
- version = "0.19.1";
+ version = "0.19.2";
src = fetchFromGitHub {
owner = "Stellarium";
repo = "stellarium";
rev = "v${version}";
- sha256 = "0hf1wv2bb5j7ny2xh29mj9m4hjblhn02zylay8gl85w7xlqs7s5r";
+ sha256 = "1ki3s4smazr6xfkr0grrmjp2s8yjprismiaq7l54d0il7rkvhibd";
};
nativeBuildInputs = [ cmake perl wrapQtAppsHook ];
diff --git a/pkgs/applications/science/biology/EZminc/default.nix b/pkgs/applications/science/biology/EZminc/default.nix
index dbcfead6b1e..978615fa459 100644
--- a/pkgs/applications/science/biology/EZminc/default.nix
+++ b/pkgs/applications/science/biology/EZminc/default.nix
@@ -1,16 +1,17 @@
-{ stdenv, fetchFromGitHub, cmake, libminc, bicpl, itk, fftwFloat, gsl }:
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, libminc, bicpl, itk, fftwFloat, gsl }:
-stdenv.mkDerivation rec { pname = "EZminc";
- name = "${pname}-2017-08-29";
+stdenv.mkDerivation rec {
+ pname = "EZminc";
+ name = "${pname}-unstable-2019-07-25";
src = fetchFromGitHub {
owner = "BIC-MNI";
repo = pname;
- rev = "4e017236cb6e7f6e07507446b18b759c584b6fc3";
- sha256 = "1pg06x42pgsg7zy7dz9wf6ajakkm2n8by64lg9z64qi8qqy82b8v";
+ rev = "9591edd5389a5bda2c1f606816c7cdb35c065adf";
+ sha256 = "02k87qbpx0f48l2lbcjmlqx82py684z3sfi29va5icfg3hjd6j7b";
};
- nativeBuildInputs = [ cmake ];
+ nativeBuildInputs = [ cmake pkgconfig ];
buildInputs = [ itk libminc bicpl fftwFloat gsl ];
cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/"
diff --git a/pkgs/applications/science/biology/ants/default.nix b/pkgs/applications/science/biology/ants/default.nix
index 834d2497e8d..6e1a2a3407e 100644
--- a/pkgs/applications/science/biology/ants/default.nix
+++ b/pkgs/applications/science/biology/ants/default.nix
@@ -1,9 +1,8 @@
-{ stdenv, fetchFromGitHub, fetchpatch, cmake, makeWrapper, itk, vtk }:
+{ stdenv, fetchFromGitHub, fetchpatch, cmake, makeWrapper, itk4, vtk }:
stdenv.mkDerivation rec {
- _name = "ANTs";
- _version = "2.2.0";
- name = "${_name}-${_version}";
+ pname = "ANTs";
+ version = "2.2.0";
src = fetchFromGitHub {
owner = "ANTsX";
@@ -21,7 +20,7 @@ stdenv.mkDerivation rec {
];
nativeBuildInputs = [ cmake makeWrapper ];
- buildInputs = [ itk vtk ];
+ buildInputs = [ itk4 vtk ];
cmakeFlags = [ "-DANTS_SUPERBUILD=FALSE" "-DUSE_VTK=TRUE" ];
@@ -34,7 +33,7 @@ stdenv.mkDerivation rec {
'';
meta = with stdenv.lib; {
- homepage = https://github.com/ANTxS/ANTs;
+ homepage = https://github.com/ANTsX/ANTs;
description = "Advanced normalization toolkit for medical image registration and other processing";
maintainers = with maintainers; [ bcdarwin ];
platforms = platforms.unix;
diff --git a/pkgs/applications/science/biology/bcftools/default.nix b/pkgs/applications/science/biology/bcftools/default.nix
index d8ffbb74e6b..33e4de0d95a 100644
--- a/pkgs/applications/science/biology/bcftools/default.nix
+++ b/pkgs/applications/science/biology/bcftools/default.nix
@@ -32,6 +32,6 @@ stdenv.mkDerivation rec {
license = licenses.mit;
homepage = http://www.htslib.org/;
platforms = platforms.unix;
- maintainers = [ maintainers.mimadrid ];
+ maintainers = [ maintainers.mimame ];
};
}
diff --git a/pkgs/applications/science/biology/dcm2niix/default.nix b/pkgs/applications/science/biology/dcm2niix/default.nix
index 63d51de9930..7c328034a30 100644
--- a/pkgs/applications/science/biology/dcm2niix/default.nix
+++ b/pkgs/applications/science/biology/dcm2niix/default.nix
@@ -6,14 +6,14 @@
}:
stdenv.mkDerivation rec {
- version = "1.0.20190410";
+ version = "1.0.20190902";
pname = "dcm2niix";
src = fetchFromGitHub {
owner = "rordenlab";
repo = "dcm2niix";
rev = "v${version}";
- sha256 = "1prwpvbi76xlpkhc4kadjhyyx0s71cs30hi6anknhfm6hdyd26ms";
+ sha256 = "0h8jsadgv831lqb0jhnaxm7lldirmnp5agrhgg5bcxvn860fl15b";
};
enableParallelBuilding = true;
diff --git a/pkgs/applications/science/biology/deeptools/default.nix b/pkgs/applications/science/biology/deeptools/default.nix
new file mode 100644
index 00000000000..78a6f483337
--- /dev/null
+++ b/pkgs/applications/science/biology/deeptools/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, python
+}:
+with python.pkgs;
+buildPythonApplication rec {
+ pname = "deepTools";
+ version = "3.3.1";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "08p36p9ncj5s8qf1r7h83x4rnmi63l3yk6mnr3wgpg2qgvwl0hji";
+ };
+
+ propagatedBuildInputs = [
+ numpy
+ numpydoc
+ scipy
+ py2bit
+ pybigwig
+ pysam
+ matplotlib
+ plotly
+ deeptoolsintervals
+ ];
+
+ checkInputs = [ pytest ];
+
+ meta = with lib; {
+ homepage = "https://deeptools.readthedocs.io/en/develop";
+ description = "Tools for exploring deep DNA sequencing data";
+ longDescription = ''
+ deepTools contains useful modules to process the mapped reads data for multiple
+ quality checks, creating normalized coverage files in standard bedGraph and bigWig
+ file formats, that allow comparison between different files (for example, treatment and control).
+ Finally, using such normalized and standardized files, deepTools can create many
+ publication-ready visualizations to identify enrichments and for functional
+ annotations of the genome.
+ '';
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ scalavision ];
+ };
+}
diff --git a/pkgs/applications/science/biology/delly/default.nix b/pkgs/applications/science/biology/delly/default.nix
new file mode 100644
index 00000000000..bfdf5a1bb17
--- /dev/null
+++ b/pkgs/applications/science/biology/delly/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, htslib, zlib, bzip2, lzma, ncurses, boost }:
+
+stdenv.mkDerivation rec {
+ pname = "delly";
+ version = "0.8.1";
+
+ src = fetchFromGitHub {
+ owner = "dellytools";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "18gm86j1g1k4z1cjv2m5v9rsl1xqs2w3dhwcsnzx2mhkrvmlc4i1";
+ };
+
+ buildInputs = [ zlib htslib bzip2 lzma ncurses boost ];
+
+ EBROOTHTSLIB = htslib;
+
+ installPhase = ''
+ runHook preInstall
+
+ install -Dm555 src/delly $out/bin/delly
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Structural variant caller for mapped DNA sequenced data";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ scalavision ];
+ platforms = platforms.linux;
+ longDescription = ''
+ Delly is an integrated structural variant (SV) prediction method
+ that can discover, genotype and visualize deletions, tandem duplications,
+ inversions and translocations at single-nucleotide resolution in
+ short-read massively parallel sequencing data. It uses paired-ends,
+ split-reads and read-depth to sensitively and accurately delineate
+ genomic rearrangements throughout the genome.
+ '';
+ };
+}
diff --git a/pkgs/applications/science/biology/freebayes/default.nix b/pkgs/applications/science/biology/freebayes/default.nix
index e1e84c9423b..7d0a36e755f 100644
--- a/pkgs/applications/science/biology/freebayes/default.nix
+++ b/pkgs/applications/science/biology/freebayes/default.nix
@@ -2,14 +2,14 @@
stdenv.mkDerivation rec {
pname = "freebayes";
- version = "2017-08-23";
+ version = "1.3.1";
src = fetchFromGitHub {
name = "freebayes-${version}-src";
owner = "ekg";
repo = "freebayes";
- rev = "8d2b3a060da473e1f4f89be04edfce5cba63f1d3";
- sha256 = "0yyrgk2639lz1yvg4jf0ccahnkic31dy77q05pb3i28rjf37v45z";
+ rev = "v${version}";
+ sha256 = "035nriknjqq8gvil81vvsmvqwi35v80q8h1cw24vd1gdyn1x7bys";
fetchSubmodules = true;
};
diff --git a/pkgs/applications/science/biology/igv/default.nix b/pkgs/applications/science/biology/igv/default.nix
index 412b55f5916..04699a84b69 100644
--- a/pkgs/applications/science/biology/igv/default.nix
+++ b/pkgs/applications/science/biology/igv/default.nix
@@ -28,6 +28,6 @@ stdenv.mkDerivation rec {
description = "A visualization tool for interactive exploration of genomic datasets";
license = licenses.lgpl21;
platforms = platforms.unix;
- maintainers = [ maintainers.mimadrid ];
+ maintainers = [ maintainers.mimame ];
};
}
diff --git a/pkgs/applications/science/biology/macse/default.nix b/pkgs/applications/science/biology/macse/default.nix
new file mode 100644
index 00000000000..59938addbe8
--- /dev/null
+++ b/pkgs/applications/science/biology/macse/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, jre, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ pname = "macse";
+ version = "2.03";
+
+ src = fetchurl {
+ url = "https://bioweb.supagro.inra.fr/${pname}/releases/${pname}_v${version}.jar";
+ sha256 = "0jnjyz4f255glg37rawzdv4m6nfs7wfwc5dny7afvx4dz2sv4ssh";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ dontBuild = true;
+ unpackPhase = ":";
+
+ installPhase = ''
+ runHook preInstall
+ mkdir -p $out/share/java
+ cp -s $src $out/share/java/macse.jar
+ makeWrapper ${jre}/bin/java $out/bin/macse --add-flags "-jar $out/share/java/macse.jar"
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Multiple alignment of coding sequences";
+ homepage = "https://bioweb.supagro.inra.fr/macse/";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.bzizou ];
+ platforms = platforms.all;
+ };
+}
diff --git a/pkgs/applications/science/biology/niftyseg/default.nix b/pkgs/applications/science/biology/niftyseg/default.nix
index 689d3e42c97..f70054e9771 100644
--- a/pkgs/applications/science/biology/niftyseg/default.nix
+++ b/pkgs/applications/science/biology/niftyseg/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
homepage = http://cmictig.cs.ucl.ac.uk/research/software/software-nifty/niftyseg;
description = "Software for medical image segmentation, bias field correction, and cortical thickness calculation";
maintainers = with maintainers; [ bcdarwin ];
- platforms = platforms.linux;
+ platforms = platforms.unix;
license = licenses.bsd3;
};
diff --git a/pkgs/applications/science/biology/paml/default.nix b/pkgs/applications/science/biology/paml/default.nix
index 161188f7ef1..fe6919656d9 100644
--- a/pkgs/applications/science/biology/paml/default.nix
+++ b/pkgs/applications/science/biology/paml/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
longDescription = ''PAML is a package of programs for phylogenetic analyses of DNA or protein sequences using maximum likelihood. It is maintained and distributed for academic use free of charge by Ziheng Yang. ANSI C source codes are distributed for UNIX/Linux/Mac OSX, and executables are provided for MS Windows. PAML is not good for tree making. It may be used to estimate parameters and test hypotheses to study the evolutionary process, when you have reconstructed trees using other programs such as PAUP*, PHYLIP, MOLPHY, PhyML, RaxML, etc.'';
license = "non-commercial";
homepage = http://abacus.gene.ucl.ac.uk/software/paml.html;
+ broken = true;
};
}
diff --git a/pkgs/applications/science/biology/picard-tools/default.nix b/pkgs/applications/science/biology/picard-tools/default.nix
index 2a57febe8f5..5a9cb5de528 100644
--- a/pkgs/applications/science/biology/picard-tools/default.nix
+++ b/pkgs/applications/science/biology/picard-tools/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "picard-tools";
- version = "2.20.5";
+ version = "2.21.1";
src = fetchurl {
url = "https://github.com/broadinstitute/picard/releases/download/${version}/picard.jar";
- sha256 = "107zlvp74ahpn652nfkipp80bbzf3fp812pi1ma42njk4wchah10";
+ sha256 = "0knfx0by7rml19kr5ynb7860iykij1z1mx2hx0bg3s287sld1ppl";
};
nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/science/biology/samtools/default.nix b/pkgs/applications/science/biology/samtools/default.nix
index dd1a53472db..daa2925de7c 100644
--- a/pkgs/applications/science/biology/samtools/default.nix
+++ b/pkgs/applications/science/biology/samtools/default.nix
@@ -29,6 +29,6 @@ stdenv.mkDerivation rec {
license = licenses.mit;
homepage = http://www.htslib.org/;
platforms = platforms.unix;
- maintainers = [ maintainers.mimadrid ];
+ maintainers = [ maintainers.mimame ];
};
}
diff --git a/pkgs/applications/science/biology/spades/default.nix b/pkgs/applications/science/biology/spades/default.nix
new file mode 100644
index 00000000000..a195f79010a
--- /dev/null
+++ b/pkgs/applications/science/biology/spades/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, zlib, bzip2, cmake }:
+
+stdenv.mkDerivation rec {
+ pname = "SPAdes";
+ version = "3.13.1";
+
+ src = fetchurl {
+ url = "http://cab.spbu.ru/files/release${version}/${pname}-${version}.tar.gz";
+ sha256 = "0giayz197lmq2108filkn9izma3i803sb3iskv9hs5snzdr9p8ld";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [ zlib bzip2 ];
+
+ doCheck = true;
+
+ sourceRoot = "${pname}-${version}/src";
+
+ meta = with stdenv.lib; {
+ description = "St. Petersburg genome assembler: assembly toolkit containing various assembly pipelines";
+ license = licenses.gpl2;
+ homepage = "http://cab.spbu.ru/software/spades/";
+ platforms = platforms.unix;
+ maintainers = [ maintainers.bzizou ];
+ };
+}
diff --git a/pkgs/applications/science/biology/star/default.nix b/pkgs/applications/science/biology/star/default.nix
index f32dca86bdf..6f4211d0c0d 100644
--- a/pkgs/applications/science/biology/star/default.nix
+++ b/pkgs/applications/science/biology/star/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "star";
- version = "2.7.1a";
+ version = "2.7.3a";
src = fetchFromGitHub {
repo = "STAR";
owner = "alexdobin";
rev = version;
- sha256 = "0n6g4s4hgw7qygs1z97j7a2dgz8gfaa4cv5pjvvvmarvk0x07hyg";
+ sha256 = "1hgiqw5qhs0pc1xazzihcfd92na02xyq2kb469z04y1v51kpvvjq";
};
sourceRoot = "source/source";
diff --git a/pkgs/applications/science/biology/strelka/default.nix b/pkgs/applications/science/biology/strelka/default.nix
index 84c90d89556..c791e8ef89b 100644
--- a/pkgs/applications/science/biology/strelka/default.nix
+++ b/pkgs/applications/science/biology/strelka/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
homepage = https://github.com/Illumina/strelka;
maintainers = with maintainers; [ jbedo ];
platforms = [ "x86_64-linux" ];
+ broken = true;
};
}
diff --git a/pkgs/applications/science/biology/truvari/default.nix b/pkgs/applications/science/biology/truvari/default.nix
new file mode 100644
index 00000000000..bee43da6719
--- /dev/null
+++ b/pkgs/applications/science/biology/truvari/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, fetchFromGitHub
+, python3Packages
+}:
+
+python3Packages.buildPythonApplication rec {
+ pname = "truvari";
+ version = "1.3.2";
+
+ src = fetchFromGitHub {
+ owner = "spiralgenetics";
+ repo = "truvari";
+ rev = "v${version}";
+ sha256 = "0wmjz8nzibvj0ixky1m0qi7iyd204prk7glbvig1cvaab33k19f1";
+ };
+
+ propagatedBuildInputs = with python3Packages; [
+ pyvcf
+ python-Levenshtein
+ progressbar2
+ pysam
+ pyfaidx
+ intervaltree
+ ];
+
+ prePatch = ''
+ substituteInPlace ./setup.py \
+ --replace '"progressbar2==3.41.0",' "" \
+ --replace '"pysam==0.15.2",' ""
+ '';
+
+ meta = with lib; {
+ description = "Structural variant comparison tool for VCFs";
+ license = licenses.mit;
+ maintainers = with maintainers; [ scalavision ];
+ longDescription = ''
+ Truvari is a benchmarking tool for comparison sets of SVs.
+ It can calculate the recall, precision, and f-measure of a
+ vcf from a given structural variant caller. The tool
+ is created by Spiral Genetics.
+ '';
+ };
+}
diff --git a/pkgs/applications/science/chemistry/jmol/default.nix b/pkgs/applications/science/chemistry/jmol/default.nix
index 00231113d2c..e32900ed720 100644
--- a/pkgs/applications/science/chemistry/jmol/default.nix
+++ b/pkgs/applications/science/chemistry/jmol/default.nix
@@ -17,14 +17,14 @@ let
};
in
stdenv.mkDerivation rec {
- version = "14.29.49";
+ version = "14.29.55";
pname = "jmol";
src = let
baseVersion = "${lib.versions.major version}.${lib.versions.minor version}";
in fetchurl {
url = "mirror://sourceforge/jmol/Jmol/Version%20${baseVersion}/Jmol%20${version}/Jmol-${version}-binary.tar.gz";
- sha256 = "19fyr4ldvbd5rbw19hslg9fpwc42wxmyx7r3z78k6dw653vb1ml5";
+ sha256 = "1w841yyck5j97p72q3iq0by0sixiyh3rzscbfcx21gv2dj45vq46";
};
patchPhase = ''
diff --git a/pkgs/applications/science/chemistry/octopus/default.nix b/pkgs/applications/science/chemistry/octopus/default.nix
index 6dec5b3b11f..d37f8d17336 100644
--- a/pkgs/applications/science/chemistry/octopus/default.nix
+++ b/pkgs/applications/science/chemistry/octopus/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "Real-space time dependent density-functional theory code";
- homepage = http://octopus-code.org;
+ homepage = https://octopus-code.org;
maintainers = with maintainers; [ markuskowa ];
license = licenses.gpl2;
platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/science/chemistry/pymol/default.nix b/pkgs/applications/science/chemistry/pymol/default.nix
index 1fc387fcc66..b1bd01fb2f7 100644
--- a/pkgs/applications/science/chemistry/pymol/default.nix
+++ b/pkgs/applications/science/chemistry/pymol/default.nix
@@ -47,5 +47,6 @@ python3Packages.buildPythonApplication {
description = description;
homepage = https://www.pymol.org/;
license = licenses.psfl;
+ broken = true;
};
}
diff --git a/pkgs/applications/science/electronics/eagle/eagle.nix b/pkgs/applications/science/electronics/eagle/eagle.nix
index 2b28f2c06db..7cc71e4978a 100644
--- a/pkgs/applications/science/electronics/eagle/eagle.nix
+++ b/pkgs/applications/science/electronics/eagle/eagle.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, makeDesktopItem
+{ stdenv, mkDerivation, fetchurl, makeDesktopItem
, libXrender, libXrandr, libXcursor, libX11, libXext, libXi, libxcb
, libGL, glib, nss, nspr, expat, alsaLib
, qtbase, qtdeclarative, qtsvg, qtlocation, qtwebchannel, qtwebengine
@@ -11,13 +11,13 @@ let
qtbase qtdeclarative qtsvg qtlocation qtwebchannel qtwebengine
];
in
- stdenv.mkDerivation rec {
+ mkDerivation rec {
pname = "eagle";
- version = "9.4.2";
+ version = "9.5.0";
src = fetchurl {
url = "https://eagle-updates.circuits.io/downloads/${builtins.replaceStrings ["."] ["_"] version}/Autodesk_EAGLE_${version}_English_Linux_64bit.tar.gz";
- sha256 = "0lrwrvqcb91mcggmicvwjrngccsdy0f06l7a8nfgp9ckn4d9vmg2";
+ sha256 = "0wakaja98mkdgcxp18d7499i0254ns1xhnx4bag2lqi7j8qn8rqy";
};
desktopItem = makeDesktopItem {
diff --git a/pkgs/applications/science/electronics/gtkwave/default.nix b/pkgs/applications/science/electronics/gtkwave/default.nix
index 8dffe580cc6..64c1c3daba8 100644
--- a/pkgs/applications/science/electronics/gtkwave/default.nix
+++ b/pkgs/applications/science/electronics/gtkwave/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "gtkwave";
- version = "3.3.101";
+ version = "3.3.102";
src = fetchurl {
url = "mirror://sourceforge/gtkwave/${pname}-${version}.tar.gz";
- sha256 = "1j6capxwgi8aj3sgqg1r7161icni9y8y93g1rl3bzd3s40jcyhsz";
+ sha256 = "1izyfx6b1n9nr08c7q0gkgcf0q04bb4qz92ckwh74n5l5nwprfw0";
};
nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/science/electronics/kicad/default.nix b/pkgs/applications/science/electronics/kicad/default.nix
index 3d169f50104..5d069c5a219 100644
--- a/pkgs/applications/science/electronics/kicad/default.nix
+++ b/pkgs/applications/science/electronics/kicad/default.nix
@@ -28,11 +28,11 @@ let
in stdenv.mkDerivation rec {
pname = "kicad";
series = "5.0";
- version = "5.1.2";
+ version = "5.1.4";
src = fetchurl {
url = "https://launchpad.net/kicad/${series}/${version}/+download/kicad-${version}.tar.xz";
- sha256 = "12kp82ms2dwqkhilmh3mbhg5rsj5ykk99pnkhp4sx89nni86qdw4";
+ sha256 = "1r60dgh6aalbpq1wsmpyxkz0nn4ck8ydfdjcrblpl69k5rks5k2j";
};
postPatch = ''
@@ -65,7 +65,7 @@ in stdenv.mkDerivation rec {
buildInputs = [
libGLU_combined zlib libX11 wxGTK pcre libXdmcp glew glm libpthreadstubs
cairo curl openssl boost
- swig python
+ swig (python.withPackages (ps: with ps; [ wxPython ]))
] ++ optional (oceSupport) opencascade
++ optional (ngspiceSupport) libngspice;
@@ -73,22 +73,22 @@ in stdenv.mkDerivation rec {
dontWrapGApps = true;
passthru = {
- i18n = mkLib version "i18n" "08a8lpz2j7bhwn155s0ii538qlynnnvq6fmdw1dxjfgmfy7y3r66" {
+ i18n = mkLib version "i18n" "1dk7wis4cncmihl8fnic3jyhqcdzpifchzsp7hmf214h0vp199zr" {
buildInputs = [
gettext
];
meta.license = licenses.gpl2; # https://github.com/KiCad/kicad-i18n/issues/3
};
- symbols = mkLib version "symbols" "0l5r53wcv0518x2kl0fh1zi0d50cckc7z1739fp9z3k5a4ddk824" {
+ symbols = mkLib version "symbols" "1lna4xlvzrxif3569pkp6mrg7fj62z3a3ri5j97lnmnnzhiddnh3" {
meta.license = licenses.cc-by-sa-40;
};
- footprints = mkLib version "footprints" "0q7y7m10pav6917ri37pzjvyh71c8lf4lh9ch258pdpl3w481zk6" {
+ footprints = mkLib version "footprints" "0c0kcywxlaihzzwp9bi0dsr2v9j46zcdr85xmfpivmrk19apss6a" {
meta.license = licenses.cc-by-sa-40;
};
- templates = mkLib version "templates" "1nva4ckq0l2lrah0l05355cawlwd7qfxcagcv32m8hcrn781455q" {
+ templates = mkLib version "templates" "1bagb0b94cjh7zp9z0h23b60j45kwxbsbb7b2bdk98dmph8lmzbb" {
meta.license = licenses.cc-by-sa-40;
};
- packages3d = mkLib version "packages3d" "0xla9k1rnrs00fink90y9qz766iks5lyqwnf1h2i508djqhqm5zi" {
+ packages3d = mkLib version "packages3d" "0h2qjj8vf33jz6jhqdz90c80h5i1ydgfqnns7rn0fqphlnscb45g" {
hydraPlatforms = []; # this is a ~1 GiB download, occupies ~5 GiB in store
meta.license = licenses.cc-by-sa-40;
};
@@ -107,7 +107,7 @@ in stdenv.mkDerivation rec {
buildPythonPath "$out $pythonPath"
gappsWrapperArgs+=(--set PYTHONPATH "$program_PYTHONPATH")
- wrapProgram "$out/bin/kicad" "''${gappsWrapperArgs[@]}"
+ wrapGApp "$out/bin/kicad" --prefix LD_LIBRARY_PATH : "${libngspice}/lib"
'';
meta = {
@@ -116,5 +116,6 @@ in stdenv.mkDerivation rec {
license = licenses.gpl2;
maintainers = with maintainers; [ berce ];
platforms = with platforms; linux;
+ broken = stdenv.isAarch64;
};
}
diff --git a/pkgs/applications/science/electronics/kicad/unstable.nix b/pkgs/applications/science/electronics/kicad/unstable.nix
index 7475170d6a7..5310da0699e 100644
--- a/pkgs/applications/science/electronics/kicad/unstable.nix
+++ b/pkgs/applications/science/electronics/kicad/unstable.nix
@@ -52,5 +52,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl2;
maintainers = with maintainers; [ berce ];
platforms = with platforms; linux;
+ broken = true;
};
}
diff --git a/pkgs/applications/science/electronics/librepcb/default.nix b/pkgs/applications/science/electronics/librepcb/default.nix
index fb931ec9162..da10ca34b87 100644
--- a/pkgs/applications/science/electronics/librepcb/default.nix
+++ b/pkgs/applications/science/electronics/librepcb/default.nix
@@ -1,20 +1,20 @@
-{ stdenv, fetchFromGitHub, qtbase, qttools, qmake }:
+{ stdenv, fetchFromGitHub, qtbase, qttools, qmake, wrapQtAppsHook }:
stdenv.mkDerivation {
pname = "librepcb";
- version = "0.1.0";
+ version = "0.1.2";
src = fetchFromGitHub {
owner = "LibrePCB";
repo = "LibrePCB";
fetchSubmodules = true;
- rev = "d7458d3b3e126499902e1a66a0ef889f516a7c97";
- sha256 = "19wh0398fzzpd65nh4mmc4jllkrgcrwxvxdby0gb5wh1sqyaqac4";
+ rev = "acdd94d9d2310f79215125b999153e9da88a9376";
+ sha256 = "1bbl01rp75sl6k1cmch7x90v00lck578xvqmb856s9fx75bdgnv5";
};
enableParallelBuilding = true;
- nativeBuildInputs = [ qmake qttools ];
+ nativeBuildInputs = [ qmake qttools wrapQtAppsHook ];
buildInputs = [ qtbase ];
@@ -25,6 +25,10 @@ stdenv.mkDerivation {
cp share/librepcb/fontobene/newstroke.bene $out/share/librepcb/fontobene/
'';
+ preFixup = ''
+ wrapQtApp $out/bin/librepcb
+ '';
+
meta = with stdenv.lib; {
description = "A free EDA software to develop printed circuit boards";
homepage = https://librepcb.org/;
diff --git a/pkgs/applications/science/electronics/verilator/default.nix b/pkgs/applications/science/electronics/verilator/default.nix
index 9a989919250..b59f628dfe9 100644
--- a/pkgs/applications/science/electronics/verilator/default.nix
+++ b/pkgs/applications/science/electronics/verilator/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "verilator";
- version = "4.016";
+ version = "4.020";
src = fetchurl {
url = "https://www.veripool.org/ftp/${pname}-${version}.tgz";
- sha256 = "18fqm6pgscy504ql27i150fdsd2j91hw5qsnpymws3pvqj2qz2ij";
+ sha256 = "06n3vds762vza4byrav0j3kp3aivvadndkgw7nirvasclp19zmxb";
};
enableParallelBuilding = true;
diff --git a/pkgs/applications/science/electronics/verilog/default.nix b/pkgs/applications/science/electronics/verilog/default.nix
index f850a1bf94d..b707db14160 100644
--- a/pkgs/applications/science/electronics/verilog/default.nix
+++ b/pkgs/applications/science/electronics/verilog/default.nix
@@ -35,6 +35,6 @@ stdenv.mkDerivation rec {
homepage = "http://iverilog.icarus.com/";
license = licenses.lgpl21;
maintainers = with maintainers; [ winden ];
- platforms = platforms.linux;
+ platforms = platforms.all;
};
}
diff --git a/pkgs/applications/science/logic/aspino/default.nix b/pkgs/applications/science/logic/aspino/default.nix
index d6190942efa..6af7eaf3a5b 100644
--- a/pkgs/applications/science/logic/aspino/default.nix
+++ b/pkgs/applications/science/logic/aspino/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation {
maintainers = with maintainers; [ gebner ma27 ];
platforms = platforms.unix;
license = licenses.asl20;
- homepage = http://alviano.net/software/maxino/;
+ homepage = https://alviano.net/software/maxino/;
# See pkgs/applications/science/logic/glucose/default.nix
badPlatforms = [ "aarch64-linux" ];
};
diff --git a/pkgs/applications/science/logic/coq/default.nix b/pkgs/applications/science/logic/coq/default.nix
index a04ec0bb16c..a463a2c5f3a 100644
--- a/pkgs/applications/science/logic/coq/default.nix
+++ b/pkgs/applications/science/logic/coq/default.nix
@@ -9,6 +9,7 @@
, ocamlPackages, ncurses
, buildIde ? true
, glib, gnome3, wrapGAppsHook
+, darwin
, csdp ? null
, version
}:
@@ -28,7 +29,8 @@ let
"8.8.2" = "1lip3xja924dm6qblisk1bk0x8ai24s5xxqxphbdxj6djglj68fd";
"8.9.0" = "1dkgdjc4n1m15m1p724hhi5cyxpqbjw6rxc5na6fl3v4qjjfnizh";
"8.9.1" = "1xrq6mkhpq994bncmnijf8jwmwn961kkpl4mwwlv7j3dgnysrcv2";
- "8.10+beta2" = "0jk7pwydhd17ab7ii69zvi4sgrr630q2lsxhckaj3sz55cpjlhal";
+ "8.10.0" = "138jw94wp4mg5dgjc2asn8ng09ayz1mxdznq342n0m469j803gzg";
+ "8.10.1" = "072v2zkjzf7gj48137wpr3c9j0hg9pdhlr5l8jrgrwynld8fp7i4";
}.${version};
coq-version = stdenv.lib.versions.majorMinor version;
versionAtLeast = stdenv.lib.versionAtLeast coq-version;
@@ -101,10 +103,13 @@ self = stdenv.mkDerivation {
};
nativeBuildInputs = [ pkgconfig ];
- buildInputs = [ ncurses ] ++ (with ocamlPackages; [ ocaml findlib camlp5 num ])
+ buildInputs = [ ncurses ocamlPackages.ocaml ocamlPackages.findlib ]
+ ++ stdenv.lib.optional (!versionAtLeast "8.10") ocamlPackages.camlp5
+ ++ [ ocamlPackages.num ]
++ stdenv.lib.optionals buildIde
(if versionAtLeast "8.10"
then [ ocamlPackages.lablgtk3-sourceview3 glib gnome3.defaultIconTheme wrapGAppsHook ]
+ ++ stdenv.lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Cocoa
else [ ocamlPackages.lablgtk ]);
postPatch = ''
diff --git a/pkgs/applications/science/logic/eprover/default.nix b/pkgs/applications/science/logic/eprover/default.nix
index 1f6fced2233..1b021f71607 100644
--- a/pkgs/applications/science/logic/eprover/default.nix
+++ b/pkgs/applications/science/logic/eprover/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "eprover";
- version = "2.3";
+ version = "2.4";
src = fetchurl {
url = "https://wwwlehre.dhbw-stuttgart.de/~sschulz/WORK/E_DOWNLOAD/V_${version}/E.tgz";
- sha256 = "15pbmi195812a2pwrvfa4gwad0cy7117d5kaw98651g6fzgd4rjk";
+ sha256 = "1xn5yypy6w36amsb3kvj1srlbv6v5dl51k64cd264asz2n469dxw";
};
buildInputs = [ which ];
diff --git a/pkgs/applications/science/logic/hol_light/default.nix b/pkgs/applications/science/logic/hol_light/default.nix
index 40b0115dc1b..d799b52d115 100644
--- a/pkgs/applications/science/logic/hol_light/default.nix
+++ b/pkgs/applications/science/logic/hol_light/default.nix
@@ -21,13 +21,13 @@ let
in
stdenv.mkDerivation {
- name = "hol_light-2019-03-27";
+ name = "hol_light-2019-10-06";
src = fetchFromGitHub {
owner = "jrh13";
repo = "hol-light";
- rev = "a2b487b38d9da47350f1b4316e34a8fa4cf7a40a";
- sha256 = "1qlidl15qi8w4si8wxcmj8yg2srsb0q4k1ad9yd91sgx9h9aq8fk";
+ rev = "5c91b2ded8a66db571824ecfc18b4536c103b23e";
+ sha256 = "0sxsk8z08ba0q5aixdyczcx5l29lb51ba4ip3d2fry7y604kjsx6";
};
buildInputs = [ ocaml camlp5 ];
@@ -45,6 +45,6 @@ stdenv.mkDerivation {
homepage = http://www.cl.cam.ac.uk/~jrh13/hol-light/;
license = licenses.bsd2;
platforms = platforms.unix;
- maintainers = with maintainers; [ thoughtpolice z77z vbgl ];
+ maintainers = with maintainers; [ thoughtpolice maggesi vbgl ];
};
}
diff --git a/pkgs/applications/science/logic/jonprl/default.nix b/pkgs/applications/science/logic/jonprl/default.nix
index 61ca78d85ed..e503836098f 100644
--- a/pkgs/applications/science/logic/jonprl/default.nix
+++ b/pkgs/applications/science/logic/jonprl/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
license = stdenv.lib.licenses.mit;
maintainers = with stdenv.lib.maintainers; [ puffnfresh ];
platforms = stdenv.lib.platforms.linux;
+ broken = true;
};
}
diff --git a/pkgs/applications/science/logic/lean2/default.nix b/pkgs/applications/science/logic/lean2/default.nix
index 8cc50bb5e29..612c9d6f92a 100644
--- a/pkgs/applications/science/logic/lean2/default.nix
+++ b/pkgs/applications/science/logic/lean2/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation {
license = licenses.asl20;
platforms = platforms.unix;
maintainers = with maintainers; [ thoughtpolice gebner ];
+ broken = true;
};
}
diff --git a/pkgs/applications/science/logic/monosat/default.nix b/pkgs/applications/science/logic/monosat/default.nix
index 30d47687a3e..c0512b74488 100644
--- a/pkgs/applications/science/logic/monosat/default.nix
+++ b/pkgs/applications/science/logic/monosat/default.nix
@@ -8,11 +8,11 @@ with stdenv.lib;
let
boolToCmake = x: if x then "ON" else "OFF";
- rev = "2deeadeff214e975c9f7508bc8a24fa05a1a0c32";
- sha256 = "09yhym2lxmn3xbhw5fcxawnmvms5jd9fw9m7x2wzil7yvy4vwdjn";
+ rev = "1.8.0";
+ sha256 = "0q3a8x3iih25xkp2bm842sm2hxlb8hxlls4qmvj7vzwrh4lvsl7b";
pname = "monosat";
- version = substring 0 7 sha256;
+ version = rev;
src = fetchFromGitHub {
owner = "sambayless";
@@ -25,7 +25,11 @@ let
inherit src;
buildInputs = [ cmake zlib gmp jdk8 ];
- cmakeFlags = [ "-DJAVA=${boolToCmake includeJava}" "-DGPL=${boolToCmake includeGplCode}" ];
+ cmakeFlags = [
+ "-DBUILD_STATIC=OFF"
+ "-DJAVA=${boolToCmake includeJava}"
+ "-DGPL=${boolToCmake includeGplCode}"
+ ];
postInstall = optionalString includeJava ''
mkdir -p $out/share/java
@@ -39,6 +43,7 @@ let
platforms = platforms.unix;
license = if includeGplCode then licenses.gpl2 else licenses.mit;
homepage = https://github.com/sambayless/monosat;
+ maintainers = [ maintainers.acairncross ];
};
};
@@ -50,18 +55,15 @@ let
propagatedBuildInputs = [ core cython ];
- # This tells setup.py to use cython
+ # This tells setup.py to use cython, which should produce faster bindings
MONOSAT_CYTHON = true;
# The relative paths here don't make sense for our Nix build
- # Also, let's use cython since it should produce faster bindings
# TODO: do we want to just reference the core monosat library rather than copying the
# shared lib? The current setup.py copies the .dylib/.so...
postPatch = ''
-
substituteInPlace setup.py \
- --replace '../../../../libmonosat.dylib' '${core}/lib/libmonosat.dylib' \
- --replace '../../../../libmonosat.so' '${core}/lib/libmonosat.so'
+ --replace 'library_dir = "../../../../"' 'library_dir = "${core}/lib/"'
'';
};
-in core
\ No newline at end of file
+in core
diff --git a/pkgs/applications/science/logic/ott/default.nix b/pkgs/applications/science/logic/ott/default.nix
index 40c66dd699d..854a62a5538 100644
--- a/pkgs/applications/science/logic/ott/default.nix
+++ b/pkgs/applications/science/logic/ott/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "ott";
- version = "0.28";
+ version = "0.29";
src = fetchFromGitHub {
owner = "ott-lang";
repo = "ott";
rev = version;
- sha256 = "0mzbrvqayqpns9zzg4m1scxx24dv9askhn51dawyb9pisvlyvai0";
+ sha256 = "0saznk2mjbhp3j57imy2p2j0938026bw5m5gqbj59vcvk1rwwl22";
};
nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/science/logic/potassco/clingo.nix b/pkgs/applications/science/logic/potassco/clingo.nix
index 2b368a0e673..7c1ee8099e2 100644
--- a/pkgs/applications/science/logic/potassco/clingo.nix
+++ b/pkgs/applications/science/logic/potassco/clingo.nix
@@ -2,15 +2,14 @@
stdenv.mkDerivation rec {
pname = "clingo";
- version = "5.3.0";
+ version = "5.4.0";
src = fetchzip {
url = "https://github.com/potassco/clingo/archive/v${version}.tar.gz";
- sha256 = "01czx26p8gv81ahrh650x208hjhd8bx1kb688fmk1m4pw4yg5bfv";
+ sha256 = "0gfqlgwg3qx042w6hdc9qpmr50n4vci3p0ddk28f3kqacf6q9q7m";
};
- buildInputs = [];
- nativeBuildInputs = [cmake];
+ nativeBuildInputs = [ cmake ];
cmakeFlags = [ "-DCLINGO_BUILD_WITH_PYTHON=OFF" ];
diff --git a/pkgs/applications/science/logic/saw-tools/default.nix b/pkgs/applications/science/logic/saw-tools/default.nix
index d357bef2c7a..c4041281054 100644
--- a/pkgs/applications/science/logic/saw-tools/default.nix
+++ b/pkgs/applications/science/logic/saw-tools/default.nix
@@ -34,8 +34,7 @@ stdenv.mkDerivation {
mv bin $out/bin
mv doc $out/share
- # Hack around lack of libtinfo in NixOS
- ln -s ${ncurses.out}/lib/libncursesw.so.5 $out/lib/libtinfo.so.5
+ ln -s ${ncurses.out}/lib/libtinfo.so.5 $out/lib/libtinfo.so.5
ln -s ${stdenv.cc.libc}/lib/libpthread.so.0 $out/lib/libpthread.so.0
# Add a clang symlink for easy building with a suitable compiler.
diff --git a/pkgs/applications/science/logic/symbiyosys/default.nix b/pkgs/applications/science/logic/symbiyosys/default.nix
index ed66c77dcab..8e100716c87 100644
--- a/pkgs/applications/science/logic/symbiyosys/default.nix
+++ b/pkgs/applications/science/logic/symbiyosys/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation {
pname = "symbiyosys";
- version = "2019.08.13";
+ version = "2019.10.11";
src = fetchFromGitHub {
owner = "yosyshq";
repo = "symbiyosys";
- rev = "9cb542ac7a310b3dfa626349db53bed6236b670c";
- sha256 = "0c7nz740738ybk33zzlfl00cq86n31wvra8pqqkpl4ygxnwca1d6";
+ rev = "23f89011b678daa9da406d4f45f790e45f8f68ca";
+ sha256 = "01596yvfj79iywwczjwlb2l9qnh7bsj7jff66jdk1ybjnxf841f0";
};
buildInputs = [ python3 yosys ];
diff --git a/pkgs/applications/science/logic/tamarin-prover/default.nix b/pkgs/applications/science/logic/tamarin-prover/default.nix
index 40378f8c04d..9b87b8c899e 100644
--- a/pkgs/applications/science/logic/tamarin-prover/default.nix
+++ b/pkgs/applications/science/logic/tamarin-prover/default.nix
@@ -104,4 +104,6 @@ mkDerivation (common "tamarin-prover" src // {
tamarin-prover-term
tamarin-prover-theory
];
+
+ broken = true;
})
diff --git a/pkgs/applications/science/logic/why3/default.nix b/pkgs/applications/science/logic/why3/default.nix
index 6f338f21478..eeb3a6b6d36 100644
--- a/pkgs/applications/science/logic/why3/default.nix
+++ b/pkgs/applications/science/logic/why3/default.nix
@@ -3,11 +3,11 @@
stdenv.mkDerivation {
pname = "why3";
- version = "1.2.0";
+ version = "1.2.1";
src = fetchurl {
- url = https://gforge.inria.fr/frs/download.php/file/37903/why3-1.2.0.tar.gz;
- sha256 = "0xz001jhi71ja8vqrjz27v63bidrzj4qvg1yqarq6p4dmpxhk348";
+ url = https://gforge.inria.fr/frs/download.php/file/38185/why3-1.2.1.tar.gz;
+ sha256 = "014gkwisjp05x3342zxkryb729p02ngx1hcjjsrplpa53jzgz647";
};
buildInputs = with ocamlPackages; [
diff --git a/pkgs/applications/science/logic/yices/default.nix b/pkgs/applications/science/logic/yices/default.nix
index 76ed934fb39..b8dd528a11c 100644
--- a/pkgs/applications/science/logic/yices/default.nix
+++ b/pkgs/applications/science/logic/yices/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
# Includes a fix for the embedded soname being libyices.so.2.5, but
# only installing the libyices.so.2.5.x file.
installPhase = let
- ver_XdotY = builtins.concatStringsSep "." (stdenv.lib.take 2 (stdenv.lib.splitString "." version));
+ ver_XdotY = stdenv.lib.versions.majorMinor version;
in ''
make install LDCONFIG=true
ln -sfr $out/lib/libyices.so.{${version},${ver_XdotY}}
diff --git a/pkgs/applications/science/machine-learning/streamlit/default.nix b/pkgs/applications/science/machine-learning/streamlit/default.nix
new file mode 100644
index 00000000000..c7bdf0f12a4
--- /dev/null
+++ b/pkgs/applications/science/machine-learning/streamlit/default.nix
@@ -0,0 +1,34 @@
+{ lib, buildPythonApplication, fetchPypi
+ , altair, astor, base58, blinker, boto3, botocore, click, enum-compat
+ , future, pillow, protobuf, requests, toml, tornado, tzlocal, validators, watchdog
+ , jinja2, setuptools
+}:
+
+buildPythonApplication rec {
+ pname = "streamlit";
+ version = "0.50.2";
+ format = "wheel"; # the only distribution available
+
+ src = fetchPypi {
+ inherit pname version format;
+ sha256 = "1wymv7qckafs0p2jdjlxjaf1xrhm3iyd185jkldanbb0na5n3ndz";
+ };
+
+ propagatedBuildInputs = [
+ altair astor base58 blinker boto3 botocore click enum-compat
+ future pillow protobuf requests toml tornado tzlocal validators watchdog
+ jinja2 setuptools
+ ];
+
+ postInstall = ''
+ rm $out/bin/streamlit.cmd # remove windows helper
+ '';
+
+ meta = with lib; {
+ homepage = https://streamlit.io/;
+ description = "The fastest way to build custom ML tools";
+ maintainers = with maintainers; [ yrashk ];
+ license = licenses.asl20;
+ };
+
+}
diff --git a/pkgs/applications/science/math/R/default.nix b/pkgs/applications/science/math/R/default.nix
index a791f9a5772..a66cd3e8d7e 100644
--- a/pkgs/applications/science/math/R/default.nix
+++ b/pkgs/applications/science/math/R/default.nix
@@ -4,6 +4,9 @@
, curl, Cocoa, Foundation, libobjc, libcxx, tzdata, fetchpatch
, withRecommendedPackages ? true
, enableStrictBarrier ? false
+# R as of writing does not support outputting both .so and .a files; it outputs:
+# --enable-R-static-lib conflicts with --enable-R-shlib and will be ignored
+, static ? false
, javaSupport ? (!stdenv.hostPlatform.isAarch32 && !stdenv.hostPlatform.isAarch64)
}:
@@ -20,9 +23,8 @@ stdenv.mkDerivation rec {
buildInputs = [
bzip2 gfortran libX11 libXmu libXt libXt libjpeg libpng libtiff ncurses
pango pcre perl readline texLive xz zlib less texinfo graphviz icu
- pkgconfig bison imake which openblas curl
- ] ++ stdenv.lib.optionals (!stdenv.isDarwin) [ tcl tk ]
- ++ stdenv.lib.optionals stdenv.isDarwin [ Cocoa Foundation libobjc libcxx ]
+ pkgconfig bison imake which openblas curl tcl tk
+ ] ++ stdenv.lib.optionals stdenv.isDarwin [ Cocoa Foundation libobjc libcxx ]
++ stdenv.lib.optional javaSupport jdk;
patches = [
@@ -33,6 +35,8 @@ stdenv.mkDerivation rec {
substituteInPlace configure --replace "-install_name libR.dylib" "-install_name $out/lib/R/lib/libR.dylib"
'';
+ dontDisableStatic = static;
+
preConfigure = ''
configureFlagsArray=(
--disable-lto
@@ -47,7 +51,7 @@ stdenv.mkDerivation rec {
--with-libtiff
--with-ICU
${stdenv.lib.optionalString enableStrictBarrier "--enable-strict-barrier"}
- --enable-R-shlib
+ ${if static then "--enable-R-static-lib" else "--enable-R-shlib"}
AR=$(type -p ar)
AWK=$(type -p gawk)
CC=$(type -p cc)
@@ -57,8 +61,6 @@ stdenv.mkDerivation rec {
RANLIB=$(type -p ranlib)
R_SHELL="${stdenv.shell}"
'' + stdenv.lib.optionalString stdenv.isDarwin ''
- --without-tcltk
- --without-aqua
--disable-R-framework
OBJC="clang"
CPPFLAGS="-isystem ${libcxx}/include/c++/v1"
diff --git a/pkgs/applications/science/math/cbc/default.nix b/pkgs/applications/science/math/cbc/default.nix
index d0857e2a517..e68ceb379b0 100644
--- a/pkgs/applications/science/math/cbc/default.nix
+++ b/pkgs/applications/science/math/cbc/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "cbc";
- version = "2.10.2";
+ version = "2.10.3";
src = fetchurl {
url = "https://www.coin-or.org/download/source/Cbc/Cbc-${version}.tgz";
- sha256 = "0frbxkh6nbh46kaxsx5bmzridgip3v7aq75l8yak5npiiq4jlwv3";
+ sha256 = "1zzcg40ky5v96s7br2hqlkqdspwrn43kf3757g6c35wl29bq6f5d";
};
configureFlags = [ "-C" ];
diff --git a/pkgs/applications/science/math/clp/default.nix b/pkgs/applications/science/math/clp/default.nix
index 0eb57c75692..f91b091439f 100644
--- a/pkgs/applications/science/math/clp/default.nix
+++ b/pkgs/applications/science/math/clp/default.nix
@@ -1,11 +1,11 @@
{ stdenv, fetchurl, zlib }:
stdenv.mkDerivation rec {
- version = "1.17.2";
+ version = "1.17.3";
pname = "clp";
src = fetchurl {
url = "https://www.coin-or.org/download/source/Clp/Clp-${version}.tgz";
- sha256 = "1fkmgpn0zaraymi6s3isrrscgjxggcs2yjrx7jfy4hb1jacx71zz";
+ sha256 = "0ws515f73vq2p4nzyq0fbnm4zp9a7mjg54szdzvkql5dj51gafx1";
};
propagatedBuildInputs = [ zlib ];
diff --git a/pkgs/applications/science/math/cntk/default.nix b/pkgs/applications/science/math/cntk/default.nix
index c20a6954c3c..ceb87b25ba8 100644
--- a/pkgs/applications/science/math/cntk/default.nix
+++ b/pkgs/applications/science/math/cntk/default.nix
@@ -1,7 +1,7 @@
-{ config, lib, stdenv, fetchgit, fetchFromGitHub, cmake
+{ lib, stdenv, fetchgit, fetchFromGitHub, cmake
, openblas, opencv3, libzip, boost, protobuf, openmpi
, onebitSGDSupport ? false
-, cudaSupport ? config.cudaSupport or false, cudatoolkit, nvidia_x11
+, cudaSupport ? false, addOpenGLRunpath, cudatoolkit, nvidia_x11
, cudnnSupport ? cudaSupport, cudnn
}:
@@ -27,7 +27,10 @@ in stdenv.mkDerivation rec {
sha256 = "18l9k7s966a26ywcf7flqyhm61788pcb9fj3wk61jrmgkhy2pcns";
};
- nativeBuildInputs = [ cmake ];
+ nativeBuildInputs = [ cmake ] ++ lib.optional cudaSupport addOpenGLRunpath;
+
+ # Force OpenMPI to use g++ in PATH.
+ OMPI_CXX = "g++";
buildInputs = [ openblas opencv3 libzip boost protobuf openmpi ]
++ lib.optional cudaSupport cudatoolkit
@@ -69,6 +72,7 @@ in stdenv.mkDerivation rec {
ln -s ${cudnn}/include cuda
export configureFlags="$configureFlags --with-cudnn=$PWD"
''}
+
../configure $configureFlags
'';
@@ -79,9 +83,18 @@ in stdenv.mkDerivation rec {
cp bin/cntk $out/bin
'';
+ postFixup = lib.optionalString cudaSupport ''
+ for lib in $out/lib/*; do
+ addOpenGLRunpath "$lib"
+ done
+ '';
+
enableParallelBuilding = true;
meta = with lib; {
+ # Newer cub is included with cudatoolkit now and it breaks the build.
+ # https://github.com/Microsoft/CNTK/issues/3191
+ broken = cudaSupport;
homepage = https://github.com/Microsoft/CNTK;
description = "An open source deep-learning toolkit";
license = if onebitSGDSupport then licenses.unfreeRedistributable else licenses.mit;
diff --git a/pkgs/applications/science/math/geogebra/default.nix b/pkgs/applications/science/math/geogebra/default.nix
index 8f38a24f40d..0ab4c169944 100644
--- a/pkgs/applications/science/math/geogebra/default.nix
+++ b/pkgs/applications/science/math/geogebra/default.nix
@@ -2,7 +2,7 @@
stdenv.mkDerivation rec {
pname = "geogebra";
- version = "5-0-535-0";
+ version = "5-0-560-0";
preferLocalBuild = true;
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
"https://download.geogebra.org/installers/5.0/GeoGebra-Linux-Portable-${version}.tar.bz2"
"http://web.archive.org/https://download.geogebra.org/installers/5.0/GeoGebra-Linux-Portable-${version}.tar.bz2"
];
- sha256 = "1mbjwa9isw390i0k1yh6r9wmh8zkczian0v25w2vxb2a8vv0hjk0";
+ sha256 = "16w6z3axzb9g51w4cbyf5zj6gpm9qab65xbw1184v5wym5llf4iw";
};
srcIcon = fetchurl {
diff --git a/pkgs/applications/science/math/giac/default.nix b/pkgs/applications/science/math/giac/default.nix
index ad82d7572e3..90b1b367a7c 100644
--- a/pkgs/applications/science/math/giac/default.nix
+++ b/pkgs/applications/science/math/giac/default.nix
@@ -104,9 +104,7 @@ stdenv.mkDerivation rec {
description = "A free computer algebra system (CAS)";
homepage = "https://www-fourier.ujf-grenoble.fr/~parisse/giac.html";
license = licenses.gpl3Plus;
- ## xcas is buildable on darwin but there are specific instructions I could
- ## not test
- platforms = platforms.linux;
+ platforms = platforms.unix;
maintainers = [ maintainers.symphorien ];
};
}
diff --git a/pkgs/applications/science/math/ginac/default.nix b/pkgs/applications/science/math/ginac/default.nix
index 197845bfa3c..79f20f06b29 100644
--- a/pkgs/applications/science/math/ginac/default.nix
+++ b/pkgs/applications/science/math/ginac/default.nix
@@ -1,11 +1,11 @@
{ stdenv, fetchurl, cln, pkgconfig, readline, gmp, python }:
stdenv.mkDerivation rec {
- name = "ginac-1.7.6";
+ name = "ginac-1.7.8";
src = fetchurl {
url = "${meta.homepage}/${name}.tar.bz2";
- sha256 = "03cq93qjfgxgr7zxadrjfbn43lk5f0x2lmd90ggx10p6jq47157v";
+ sha256 = "0rvhdagmrs8ynnylwnxnmmfz1j9zk1g2rr7w6xczsbn7lqd511hc";
};
propagatedBuildInputs = [ cln ];
diff --git a/pkgs/applications/science/math/glsurf/default.nix b/pkgs/applications/science/math/glsurf/default.nix
index 4de683cdce9..609e73b327a 100644
--- a/pkgs/applications/science/math/glsurf/default.nix
+++ b/pkgs/applications/science/math/glsurf/default.nix
@@ -1,16 +1,16 @@
{ stdenv, fetchurl, ocamlPackages, libGLU_combined, freeglut
-, mysql, mpfr, gmp, libtiff, libjpeg, libpng, giflib
+, libmysqlclient, mpfr, gmp, libtiff, libjpeg, libpng, giflib
}:
stdenv.mkDerivation {
name = "glsurf-3.3.1";
src = fetchurl {
- url = "https://lama.univ-savoie.fr/~raffalli/glsurf/glsurf-3.3.1.tar.gz";
+ url = "https://raffalli.eu/~christophe/glsurf/glsurf-3.3.1.tar.gz";
sha256 = "0w8xxfnw2snflz8wdr2ca9f5g91w5vbyp1hwlx1v7vg83d4bwqs7";
};
- buildInputs = [ freeglut libGLU_combined mysql.connector-c mpfr gmp
+ buildInputs = [ freeglut libGLU_combined libmysqlclient mpfr gmp
libtiff libjpeg libpng giflib ]
++ (with ocamlPackages; [
ocaml findlib ocaml_mysql lablgl camlimages_4_0 mlgmpidl
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
'';
meta = {
- homepage = http://www.lama.univ-savoie.fr/~raffalli/glsurf;
+ homepage = https://raffalli.eu/~christophe/glsurf/;
description = "A program to draw implicit surfaces and curves";
license = stdenv.lib.licenses.lgpl21;
};
diff --git a/pkgs/applications/science/math/lrcalc/default.nix b/pkgs/applications/science/math/lrcalc/default.nix
index eecb37dd743..f407358d8f2 100644
--- a/pkgs/applications/science/math/lrcalc/default.nix
+++ b/pkgs/applications/science/math/lrcalc/default.nix
@@ -35,6 +35,6 @@ stdenv.mkDerivation rec {
homepage = http://math.rutgers.edu/~asbuch/lrcalc/;
license = licenses.gpl2Plus;
maintainers = with maintainers; [ timokau ];
- platforms = platforms.linux;
+ platforms = platforms.unix;
};
}
diff --git a/pkgs/applications/science/math/mathematica/default.nix b/pkgs/applications/science/math/mathematica/default.nix
index ca9a87abe13..7cd1b2eb99f 100644
--- a/pkgs/applications/science/math/mathematica/default.nix
+++ b/pkgs/applications/science/math/mathematica/default.nix
@@ -93,13 +93,16 @@ stdenv.mkDerivation rec {
# Fix library paths
cd $out/libexec/Mathematica/Executables
for path in mathematica MathKernel Mathematica WolframKernel wolfram math; do
- sed -i -e 's#export LD_LIBRARY_PATH$#export LD_LIBRARY_PATH=${zlib}/lib:\''${LD_LIBRARY_PATH}#' $path
+ sed -i -e "2iexport LD_LIBRARY_PATH=${zlib}/lib:\''${LD_LIBRARY_PATH}\n" $path
done
# Fix xkeyboard config path for Qt
for path in mathematica Mathematica; do
sed -i -e "2iexport QT_XKB_CONFIG_ROOT=\"${xkeyboard_config}/share/X11/xkb\"\n" $path
done
+
+ # Remove some broken libraries
+ rm $out/libexec/Mathematica/SystemFiles/Libraries/Linux-x86-64/libz.so*
'';
preFixup = ''
diff --git a/pkgs/applications/science/math/nasc/default.nix b/pkgs/applications/science/math/nasc/default.nix
index c2f8ba1d55e..a4921785956 100644
--- a/pkgs/applications/science/math/nasc/default.nix
+++ b/pkgs/applications/science/math/nasc/default.nix
@@ -1,6 +1,7 @@
{ stdenv
, fetchFromGitHub
, pkgconfig
+, vala
, gtk3
, glib
, pantheon
@@ -26,7 +27,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [
cmake
- pantheon.vala
+ vala
pkgconfig
wrapGAppsHook
];
diff --git a/pkgs/applications/science/math/nauty/default.nix b/pkgs/applications/science/math/nauty/default.nix
index bd116b02e29..986610eea60 100644
--- a/pkgs/applications/science/math/nauty/default.nix
+++ b/pkgs/applications/science/math/nauty/default.nix
@@ -4,10 +4,10 @@
}:
stdenv.mkDerivation rec {
pname = "nauty";
- version = "26r11";
+ version = "26r12";
src = fetchurl {
url = "http://pallini.di.uniroma1.it/nauty${version}.tar.gz";
- sha256 = "05z6mk7c31j70md83396cdjmvzzip1hqb88pfszzc6k4gy8h3m2y";
+ sha256 = "1p4mxf8q5wm47nxyskxbqwa5p1vvkycv1zgswvnk9nsn6vff0al6";
};
outputs = [ "out" "dev" ];
configureFlags = {
@@ -19,7 +19,6 @@ stdenv.mkDerivation rec {
sandybridge = [ "--disable-clz" ];
ivybridge = [ "--disable-clz" ];
}.${stdenv.hostPlatform.platform.gcc.arch or "default"} or [];
- buildInputs = [];
installPhase = ''
mkdir -p "$out"/{bin,share/doc/nauty} "$dev"/{lib,include/nauty}
@@ -37,7 +36,7 @@ stdenv.mkDerivation rec {
description = ''Programs for computing automorphism groups of graphs and digraphs'';
license = licenses.asl20;
maintainers = with maintainers; [ raskin timokau ];
- platforms = platforms.linux;
+ platforms = platforms.unix;
homepage = http://pallini.di.uniroma1.it/;
};
}
diff --git a/pkgs/applications/science/math/pynac/default.nix b/pkgs/applications/science/math/pynac/default.nix
index 75a46bb182a..4022383dbc7 100644
--- a/pkgs/applications/science/math/pynac/default.nix
+++ b/pkgs/applications/science/math/pynac/default.nix
@@ -9,14 +9,14 @@
}:
stdenv.mkDerivation rec {
- version = "0.7.25";
+ version = "0.7.26";
pname = "pynac";
src = fetchFromGitHub {
owner = "pynac";
repo = "pynac";
rev = "pynac-${version}";
- sha256 = "0nnifvg6kzx0lq6gz7znind8g30v3d2pjfwgsdiks3vv9kv9nbj3";
+ sha256 = "09d2p74x1arkydlxy6pw4p4byi7r8q7f29w373h4d8a215kadc6d";
};
buildInputs = [
@@ -43,6 +43,6 @@ stdenv.mkDerivation rec {
homepage = http://pynac.org;
license = licenses.gpl3;
maintainers = with maintainers; [ timokau ];
- platforms = platforms.linux;
+ platforms = platforms.unix;
};
}
diff --git a/pkgs/applications/science/math/qalculate-gtk/default.nix b/pkgs/applications/science/math/qalculate-gtk/default.nix
index b4d82b9583c..fccd83aa86f 100644
--- a/pkgs/applications/science/math/qalculate-gtk/default.nix
+++ b/pkgs/applications/science/math/qalculate-gtk/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "qalculate-gtk";
- version = "3.3.0";
+ version = "3.5.0";
src = fetchFromGitHub {
owner = "qalculate";
repo = "qalculate-gtk";
rev = "v${version}";
- sha256 = "1z2d32dcvdd66114j3km58xfk80hc5rd0zrh2fgz1azv8r4cqq1b";
+ sha256 = "0vknp52zyp2c4pxr12pryflyin1hl2dwhkrn5y0r4qh4ndf3ms1m";
};
patchPhase = ''
diff --git a/pkgs/applications/science/math/sage/patches/ignore-cmp-deprecation.patch b/pkgs/applications/science/math/sage/patches/ignore-cmp-deprecation.patch
new file mode 100644
index 00000000000..11ca7481961
--- /dev/null
+++ b/pkgs/applications/science/math/sage/patches/ignore-cmp-deprecation.patch
@@ -0,0 +1,24 @@
+diff --git a/src/sage/tests/cmdline.py b/src/sage/tests/cmdline.py
+index bd6b76ab82..ccf1203dec 100644
+--- a/src/sage/tests/cmdline.py
++++ b/src/sage/tests/cmdline.py
+@@ -837,8 +837,6 @@ def test_executable(args, input="", timeout=100.0, **kwds):
+ ///
+ 4
+ }}}
+- sage: err # py2
+- ''
+ sage: ret
+ 0
+
+@@ -871,8 +869,8 @@ def test_executable(args, input="", timeout=100.0, **kwds):
+ sage: output = tmp_filename(ext='.sws')
+ sage: with open(input, 'w') as F:
+ ....: _ = F.write(s)
+- sage: test_executable(["sage", "--rst2sws", input, output]) # py2
+- ('', '', 0)
++ sage: test_executable(["sage", "--rst2sws", input, output])[2] # py2
++ 0
+ sage: import tarfile # py2
+ sage: f = tarfile.open(output, 'r') # py2
+ sage: print(f.extractfile('sage_worksheet/worksheet.html').read()) # py2
diff --git a/pkgs/applications/science/math/sage/patches/ignore-werkzeug-immutable-dict-deprecation.patch b/pkgs/applications/science/math/sage/patches/ignore-werkzeug-immutable-dict-deprecation.patch
new file mode 100644
index 00000000000..c5f95b498d5
--- /dev/null
+++ b/pkgs/applications/science/math/sage/patches/ignore-werkzeug-immutable-dict-deprecation.patch
@@ -0,0 +1,12 @@
+diff --git a/src/sage/all.py b/src/sage/all.py
+index c87c9372e9..862fca4fcc 100644
+--- a/src/sage/all.py
++++ b/src/sage/all.py
+@@ -306,6 +306,7 @@ warnings.filters.remove(('ignore', None, DeprecationWarning, None, 0))
+ # Ignore all deprecations from IPython etc.
+ warnings.filterwarnings('ignore', category=DeprecationWarning,
+ module='.*(IPython|ipykernel|jupyter_client|jupyter_core|nbformat|notebook|ipywidgets|storemagic)')
++warnings.filterwarnings('ignore', category=DeprecationWarning, message=r".*The import 'werkzeug.ImmutableDict' is deprecated")
+ # Ignore collections.abc warnings, there are a lot of them but they are
+ # harmless.
+ warnings.filterwarnings('ignore', category=DeprecationWarning,
diff --git a/pkgs/applications/science/math/sage/patches/sagenb-cmp-deprecation.patch b/pkgs/applications/science/math/sage/patches/sagenb-cmp-deprecation.patch
new file mode 100644
index 00000000000..9f502a66951
--- /dev/null
+++ b/pkgs/applications/science/math/sage/patches/sagenb-cmp-deprecation.patch
@@ -0,0 +1,13 @@
+diff --git a/sagenb/__init__.py b/sagenb/__init__.py
+index 4db0d2cb..2fc5f01e 100644
+--- a/sagenb/__init__.py
++++ b/sagenb/__init__.py
+@@ -1,3 +1,8 @@
+ # -*- coding: utf-8 -*
+ # init
++import warnings
+ from . import storage
++
++# deprecation in attrs, needs to be fixed in twisted
++warnings.filterwarnings('ignore', category=DeprecationWarning,
++ message=r'The usage of `cmp` is deprecated and will be removed.*')
diff --git a/pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch b/pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch
index 933344aa559..56f09279622 100644
--- a/pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch
+++ b/pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch
@@ -1,8 +1,8 @@
diff --git a/src/sage_setup/docbuild/__init__.py b/src/sage_setup/docbuild/__init__.py
-index 0f2700168a..60f71357d2 100644
+index 73a078e619..059125c59f 100644
--- a/src/sage_setup/docbuild/__init__.py
+++ b/src/sage_setup/docbuild/__init__.py
-@@ -86,26 +86,6 @@ def builder_helper(type):
+@@ -86,27 +86,6 @@ def builder_helper(type):
"""
Returns a function which builds the documentation for
output type ``type``.
@@ -19,7 +19,8 @@ index 0f2700168a..60f71357d2 100644
- ....: raise BaseException("abort pool operation")
- sage: original_runsphinx, sage_setup.docbuild.sphinxbuild.runsphinx = sage_setup.docbuild.sphinxbuild.runsphinx, raiseBaseException
-
-- sage: from sage_setup.docbuild import builder_helper, build_many, build_ref_doc
+- sage: from sage_setup.docbuild import builder_helper, build_ref_doc
+- sage: from sage_setup.docbuild import _build_many as build_many
- sage: helper = builder_helper("html")
- sage: try:
- ....: build_many(build_ref_doc, [("docname", "en", "html", {})])
@@ -29,7 +30,7 @@ index 0f2700168a..60f71357d2 100644
"""
def f(self, *args, **kwds):
output_dir = self._output_dir(type)
-@@ -127,10 +107,9 @@ def builder_helper(type):
+@@ -128,10 +107,9 @@ def builder_helper(type):
logger.debug(build_command)
# Run Sphinx with Sage's special logger
@@ -43,10 +44,10 @@ index 0f2700168a..60f71357d2 100644
if ABORT_ON_ERROR:
raise
diff --git a/src/sage_setup/docbuild/sphinxbuild.py b/src/sage_setup/docbuild/sphinxbuild.py
-index 9a2fba79bc..77c8ed3592 100644
+index fe7eba43b2..463790965c 100644
--- a/src/sage_setup/docbuild/sphinxbuild.py
+++ b/src/sage_setup/docbuild/sphinxbuild.py
-@@ -318,3 +318,8 @@ def runsphinx():
+@@ -321,3 +321,8 @@ def runsphinx():
sys.stderr = saved_stderr
sys.stdout.flush()
sys.stderr.flush()
diff --git a/pkgs/applications/science/math/sage/patches/threejs-offline.patch b/pkgs/applications/science/math/sage/patches/threejs-offline.patch
deleted file mode 100644
index 62b2f114bd6..00000000000
--- a/pkgs/applications/science/math/sage/patches/threejs-offline.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-diff --git a/build/pkgs/threejs/spkg-src b/build/pkgs/threejs/spkg-src
-index 91780d813c..254b850a24 100755
---- a/build/pkgs/threejs/spkg-src
-+++ b/build/pkgs/threejs/spkg-src
-@@ -20,9 +20,17 @@ URL3="https://raw.githubusercontent.com/mrdoob/three.js/${GIT_VERSION}/LICENSE"
- echo "Downloading $URL3"
- curl -OL "$URL3"
-
-+# Set up directory structure
-+
-+mkdir build
-+mv three.min.js build
-+
-+mkdir -p examples/js/controls
-+mv OrbitControls.js examples/js/controls
-+
- # Package
--tar czf "$SAGE_ROOT/upstream/threejs-${GIT_VERSION}.tar.gz" 'three.min.js' 'OrbitControls.js' 'LICENSE'
--rm -rf 'three.min.js' 'OrbitControls.js' 'LICENSE'
-+tar czf "$SAGE_ROOT/upstream/threejs-${GIT_VERSION}.tar.gz" build examples 'LICENSE'
-+rm -rf 'build' 'examples' 'LICENSE'
-
- # Update package info
- echo "${GIT_VERSION}" > 'package-version.txt'
-diff --git a/src/sage/repl/rich_output/backend_ipython.py b/src/sage/repl/rich_output/backend_ipython.py
-index 7c27d48a21..8bf4861a35 100644
---- a/src/sage/repl/rich_output/backend_ipython.py
-+++ b/src/sage/repl/rich_output/backend_ipython.py
-@@ -411,10 +411,15 @@ class BackendIPythonCommandline(BackendIPython):
- sage: backend.threejs_offline_scripts()
- '...
--
-+
-+
-
diff --git a/pkgs/applications/science/math/sage/sage-env.nix b/pkgs/applications/science/math/sage/sage-env.nix
index 8fd69f62171..00397239876 100644
--- a/pkgs/applications/science/math/sage/sage-env.nix
+++ b/pkgs/applications/science/math/sage/sage-env.nix
@@ -18,6 +18,12 @@
, ecl
, maxima-ecl
, singular
+, fflas-ffpack
+, givaro
+, gd
+, libpng
+, linbox
+, m4ri
, giac
, palp
, rWrapper
@@ -44,6 +50,7 @@
, gsl
, ntl
, jdk
+, less
}:
# This generates a `sage-env` shell file that will be sourced by sage on startup.
@@ -92,6 +99,7 @@ let
rubiks
flintqs
jdk # only needed for `jmol` which may be replaced in the future
+ less # needed to prevent transient test errors until https://github.com/ipython/ipython/pull/11864 is resolved
]
));
in
@@ -99,14 +107,21 @@ writeTextFile rec {
name = "sage-env";
destination = "/${name}";
text = ''
- export PKG_CONFIG_PATH='${lib.concatStringsSep ":" (map (pkg: "${pkg}/lib/pkgconfig") [
- # This is only needed in the src/sage/misc/cython.py test and I'm not
- # sure if there's really a usecase for it outside of the tests. However
- # since singular and openblas are runtime dependencies anyways, it doesn't
- # really hurt to include.
+ export PKG_CONFIG_PATH='${lib.makeSearchPathOutput "dev" "lib/pkgconfig" [
+ # This should only be needed during build. However, since the doctests
+ # also test the cython build (for example in src/sage/misc/cython.py),
+ # it is also needed for the testsuite to pass. We could fix the
+ # testsuite instead, but since all the packages are also runtime
+ # dependencies it doesn't really hurt to include them here.
singular
openblasCompat
- ])
+ fflas-ffpack givaro
+ gd
+ libpng zlib
+ gsl
+ linbox
+ m4ri
+ ]
}'
export SAGE_ROOT='${sagelib.src}'
export SAGE_LOCAL='@sage-local@'
diff --git a/pkgs/applications/science/math/sage/sage-src.nix b/pkgs/applications/science/math/sage/sage-src.nix
index 57d6c852be8..dc8ba48e45e 100644
--- a/pkgs/applications/science/math/sage/sage-src.nix
+++ b/pkgs/applications/science/math/sage/sage-src.nix
@@ -10,14 +10,14 @@
# all get the same sources with the same patches applied.
stdenv.mkDerivation rec {
- version = "8.8";
+ version = "8.9";
pname = "sage-src";
src = fetchFromGitHub {
owner = "sagemath";
repo = "sage";
rev = version;
- sha256 = "0jm7zdkz8wfgrmf6620jfr8kgvprrz3qfl8gzx6rl5z5cm734b6x";
+ sha256 = "1bwga58x3s8z42w5h51c232f91ndsc1861dlb1glhax3pn0rhn3a";
};
# Patches needed because of particularities of nix or the way this is packaged.
@@ -49,10 +49,6 @@ stdenv.mkDerivation rec {
# https://trac.sagemath.org/ticket/27660#ticket
./patches/do-not-test-find-library.patch
-
- # https://trac.sagemath.org/ticket/28007
- ./patches/threejs-offline.patch
-
# Parallelize docubuild using subprocesses, fixing an isolation issue. See
# https://groups.google.com/forum/#!topic/sage-packaging/YGOm8tkADrE
./patches/sphinx-docbuild-subprocesses.patch
@@ -97,18 +93,31 @@ stdenv.mkDerivation rec {
stripLen = 1;
})
- # https://trac.sagemath.org/ticket/26932
- (fetchSageDiff {
- name = "givaro-4.1.0_fflas-ffpack-2.4.0_linbox-1.6.0.patch";
- base = "8.8.beta4";
- rev = "c11d9cfa23ff9f77681a8f12742f68143eed4504";
- sha256 = "0xzra7mbgqvahk9v45bjwir2mqz73hrhhy314jq5nxrb35ysdxyi";
- })
-
# After updating smypow to (https://trac.sagemath.org/ticket/3360) we can
# now set the cache dir to be withing the .sage directory. This is not
# strictly necessary, but keeps us from littering in the user's HOME.
./patches/sympow-cache.patch
+
+ # https://trac.sagemath.org/ticket/28472
+ (fetchpatch {
+ name = "eclib-20190909.patch";
+ url = "https://git.sagemath.org/sage.git/patch?id=d27dc479a5772d59e4bc85d805b6ffd595284f1d";
+ sha256 = "1nf1s9y7n30lhlbdnam7sghgaq9nasmv96415gl5jlcf7a3hlxk3";
+ })
+
+ # ignore a deprecation warning for usage of `cmp` in the attrs library in the doctests
+ ./patches/ignore-cmp-deprecation.patch
+
+ # Werkzeug has deprecated ImmutableDict, but it is still used in legacy
+ # sagenb. That's no big issue since sagenb will be removed soon anyways.
+ ./patches/ignore-werkzeug-immutable-dict-deprecation.patch
+
+ # threejs r109 (#28560)
+ (fetchpatch {
+ name = "threejs-r109.patch";
+ url = "https://git.sagemath.org/sage.git/patch?id=fcc11d6effa39f375bc5f4ea5831fb7a2f2767da";
+ sha256 = "0hnmc8ld3bblks0hcjvjjaydkgwdr1cs3dbl2ys4gfq964pjgqwc";
+ })
];
patches = nixPatches ++ bugfixPatches ++ packageUpgradePatches;
diff --git a/pkgs/applications/science/math/sage/sagelib.nix b/pkgs/applications/science/math/sage/sagelib.nix
index 6eac84aaa86..69f7624078e 100644
--- a/pkgs/applications/science/math/sage/sagelib.nix
+++ b/pkgs/applications/science/math/sage/sagelib.nix
@@ -138,8 +138,8 @@ buildPythonPackage rec {
mkdir -p "$SAGE_SHARE/sage/ext/notebook-ipython"
mkdir -p "var/lib/sage/installed"
+ source build/bin/sage-dist-helpers
cd src
- source bin/sage-dist-helpers
${python.interpreter} -u setup.py --no-user-cfg build
'';
diff --git a/pkgs/applications/science/math/sage/sagenb.nix b/pkgs/applications/science/math/sage/sagenb.nix
index 03b5b7a3bbf..77b2168ad97 100644
--- a/pkgs/applications/science/math/sage/sagenb.nix
+++ b/pkgs/applications/science/math/sage/sagenb.nix
@@ -26,6 +26,11 @@ buildPythonPackage rec {
sha256 = "0bxvhr03qh2nsjdfc4pyfiqrn9jhp3vf7irsc9gqx0185jlblbxs";
};
+ patches = [
+ # cmp deprecation in attrs needs to be handled in twisted
+ ./patches/sagenb-cmp-deprecation.patch
+ ];
+
propagatedBuildInputs = [
twisted
flask
diff --git a/pkgs/applications/science/math/singular/default.nix b/pkgs/applications/science/math/singular/default.nix
index ccb139203ac..fccd1489e11 100644
--- a/pkgs/applications/science/math/singular/default.nix
+++ b/pkgs/applications/science/math/singular/default.nix
@@ -110,7 +110,7 @@ stdenv.mkDerivation rec {
description = "A CAS for polynomial computations";
maintainers = with maintainers; [ raskin timokau ];
# 32 bit x86 fails with some link error: `undefined reference to `__divmoddi4@GCC_7.0.0'`
- platforms = subtractLists platforms.i686 platforms.linux;
+ platforms = subtractLists platforms.i686 platforms.unix;
license = licenses.gpl3; # Or GPLv2 at your option - but not GPLv4
homepage = http://www.singular.uni-kl.de;
downloadPage = "http://www.mathematik.uni-kl.de/ftp/pub/Math/Singular/SOURCES/";
diff --git a/pkgs/applications/science/math/weka/default.nix b/pkgs/applications/science/math/weka/default.nix
index 90278a744f1..ec9ea0b8533 100644
--- a/pkgs/applications/science/math/weka/default.nix
+++ b/pkgs/applications/science/math/weka/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
homepage = http://www.cs.waikato.ac.nz/ml/weka/;
description = "Collection of machine learning algorithms for data mining tasks";
license = stdenv.lib.licenses.gpl2Plus;
- maintainers = [ stdenv.lib.maintainers.mimadrid ];
+ maintainers = [ stdenv.lib.maintainers.mimame ];
platforms = stdenv.lib.platforms.unix;
};
}
diff --git a/pkgs/applications/science/math/yacas/default.nix b/pkgs/applications/science/math/yacas/default.nix
index bae0d9a18c6..ed680b1b4cd 100644
--- a/pkgs/applications/science/math/yacas/default.nix
+++ b/pkgs/applications/science/math/yacas/default.nix
@@ -5,13 +5,13 @@
stdenv.mkDerivation rec {
pname = "yacas";
- version = "1.6.1";
+ version = "1.8.0";
src = fetchFromGitHub {
owner = "grzegorzmazur";
repo = "yacas";
rev = "v${version}";
- sha256 = "0awvlvf607r4hwl1vkhs6jq2s6ig46c66pmr4vspj2cdnypx99cc";
+ sha256 = "0fwd98dwq6g0md3yhgyl30i377593b8rw6gsvffzvs11g3aqf1ga";
};
hardeningDisable = [ "format" ];
diff --git a/pkgs/applications/science/medicine/aliza/default.nix b/pkgs/applications/science/medicine/aliza/default.nix
index 2633f4c8db1..53d5ad6ab4c 100644
--- a/pkgs/applications/science/medicine/aliza/default.nix
+++ b/pkgs/applications/science/medicine/aliza/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation {
meta = {
description = "Medical imaging software with 2D, 3D and 4D capabilities";
- homepage = http://www.aliza-dicom-viewer.com;
+ homepage = https://www.aliza-dicom-viewer.com;
license = licenses.unfreeRedistributable;
maintainers = with maintainers; [ mounium ];
platforms = platforms.linux;
diff --git a/pkgs/applications/science/medicine/dcmtk/default.nix b/pkgs/applications/science/medicine/dcmtk/default.nix
new file mode 100644
index 00000000000..817ab578a82
--- /dev/null
+++ b/pkgs/applications/science/medicine/dcmtk/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, zlib, libtiff, libxml2, openssl, libiconv, libpng, cmake }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+ pname = "dcmtk";
+ version = "3.6.5";
+ src = fetchFromGitHub {
+ owner = "DCMTK";
+ repo = pname;
+ rev = "DCMTK-${version}";
+ sha256 = "0i38k1s0wdpbxxpiwsx490mszhxi45wp0z67iksvh60wfkaw54na";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ libpng zlib libtiff libxml2 openssl libiconv ];
+
+ meta = {
+ description = "Collection of libraries and applications implementing large parts of the DICOM standard";
+ longDescription = ''
+ DCMTK is a collection of libraries and applications implementing large parts of the DICOM standard.
+ It includes software for examining, constructing and converting DICOM image files, handling offline media,
+ sending and receiving images over a network connection, as well as demonstrative image storage and worklist servers.
+ DCMTK is is written in a mixture of ANSI C and C++.
+ It comes in complete source code and is made available as "open source" software.
+ '';
+ homepage = "https://dicom.offis.de/dcmtk";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ iimog ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/applications/science/misc/cytoscape/default.nix b/pkgs/applications/science/misc/cytoscape/default.nix
index 2e19012af87..8ed3deed804 100644
--- a/pkgs/applications/science/misc/cytoscape/default.nix
+++ b/pkgs/applications/science/misc/cytoscape/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "cytoscape";
- version = "3.7.1";
+ version = "3.7.2";
src = fetchurl {
url = "https://github.com/cytoscape/cytoscape/releases/download/${version}/${pname}-${version}.tar.gz";
- sha256 = "1mhsngbwbgdwl70wj7850zg94534lasihwv2ryifardm35mkh48k";
+ sha256 = "125vgr8vqbmy2nsm1yl0h0q8p49lxxqfw5cmxzbx1caklcn4rryc";
};
buildInputs = [jre makeWrapper];
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
homepage = http://www.cytoscape.org;
description = "A general platform for complex network analysis and visualization";
license = stdenv.lib.licenses.lgpl21;
- maintainers = [stdenv.lib.maintainers.mimadrid];
+ maintainers = [stdenv.lib.maintainers.mimame];
platforms = stdenv.lib.platforms.unix;
};
}
diff --git a/pkgs/applications/science/misc/golly/default.nix b/pkgs/applications/science/misc/golly/default.nix
index 74fa4cc02ed..1478bb64318 100644
--- a/pkgs/applications/science/misc/golly/default.nix
+++ b/pkgs/applications/science/misc/golly/default.nix
@@ -1,15 +1,15 @@
-{stdenv, fetchurl, wxGTK, perl, python2, zlib, libGLU_combined, libX11}:
+{stdenv, fetchurl, wxGTK, perl, python2, zlib, libGLU, libGL, libX11}:
stdenv.mkDerivation rec {
pname = "golly";
- version = "3.2";
+ version = "3.3";
src = fetchurl {
- sha256 = "0cg9mbwmf4q6qxhqlnzrxh9y047banxdb8pd3hgj3smmja2zf0jd";
+ sha256 = "1j3ksnar4rdam4xiyspgyrs1pifbvxfxkrn65brkwxpx39mpgzc8";
url="mirror://sourceforge/project/golly/golly/golly-${version}/golly-${version}-src.tar.gz";
};
buildInputs = [
- wxGTK perl python2 zlib libGLU_combined libX11
+ wxGTK perl python2 zlib libGLU libGL libX11
];
setSourceRoot = ''
diff --git a/pkgs/applications/science/misc/simgrid/default.nix b/pkgs/applications/science/misc/simgrid/default.nix
index 610d7494ed8..58f464575b0 100644
--- a/pkgs/applications/science/misc/simgrid/default.nix
+++ b/pkgs/applications/science/misc/simgrid/default.nix
@@ -18,14 +18,14 @@ in
stdenv.mkDerivation rec {
pname = "simgrid";
- version = "3.23";
+ version = "3.24";
src = fetchFromGitLab {
domain = "framagit.org";
owner = pname;
repo = pname;
rev = "v${version}";
- sha256 = "068xg5ps4j4v2sqqyl4vf83nfazp54gsy84gvlw52h94c4mj4xmp";
+ sha256 = "1r9zgfx5npjw4mk0ywxx07jyi1m1b1i06j0m60n3dsrz75492x6m";
};
nativeBuildInputs = [ cmake perl python3 boost valgrind ]
diff --git a/pkgs/applications/science/misc/snakemake/default.nix b/pkgs/applications/science/misc/snakemake/default.nix
index 751f3c3aebe..ed4e82f766c 100644
--- a/pkgs/applications/science/misc/snakemake/default.nix
+++ b/pkgs/applications/science/misc/snakemake/default.nix
@@ -1,28 +1,26 @@
-{
- stdenv
-, python
-}:
+{ stdenv, python3Packages }:
-python.buildPythonPackage rec {
+python3Packages.buildPythonApplication rec {
pname = "snakemake";
- version = "5.4.4";
+ version = "5.7.4";
- propagatedBuildInputs = with python; [
+ propagatedBuildInputs = with python3Packages; [
appdirs
ConfigArgParse
datrie
docutils
GitPython
jsonschema
+ psutil
pyyaml
ratelimiter
requests
wrapt
];
- src = python.fetchPypi {
+ src = python3Packages.fetchPypi {
inherit pname version;
- sha256 = "157323e0e1be34302edbbf399b2acbe25a4291bceffd47a0469963a970c9375f";
+ sha256 = "11f2f00c505d928b91332056667d49c96ed1694bf78e798ce27613948d44a2a2";
};
doCheck = false; # Tests depend on Google Cloud credentials at ${HOME}/gcloud-service-key.json
diff --git a/pkgs/applications/science/molecular-dynamics/gromacs/default.nix b/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
index d00b59307c5..d720f5ea078 100644
--- a/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
+++ b/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
@@ -1,27 +1,28 @@
-
-{ stdenv, fetchurl, cmake,
- singlePrec ? true,
- mpiEnabled ? false,
- fftw,
- openmpi
+{ stdenv, fetchurl, cmake
+, singlePrec ? true
+, mpiEnabled ? false
+, fftw
+, openmpi
+, perl
}:
stdenv.mkDerivation {
- name = "gromacs-2019.3";
+ name = "gromacs-2019.4";
src = fetchurl {
- url = "ftp://ftp.gromacs.org/pub/gromacs/gromacs-2019.3.tar.gz";
- sha256 = "0wvm6lj4hbasl2qkjcpicqjh7abxji4196dd2hmwlyivpycaa4a2";
+ url = "ftp://ftp.gromacs.org/pub/gromacs/gromacs-2019.4.tar.gz";
+ sha256 = "0rqqrbjrdhprlw2z6cqid59xwxfdx05ikvywppvdp8f8vzp6chxs";
};
- buildInputs = [cmake fftw]
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ fftw perl ]
++ (stdenv.lib.optionals mpiEnabled [ openmpi ]);
cmakeFlags = ''
${if singlePrec then "-DGMX_DOUBLE=OFF" else "-DGMX_DOUBLE=ON -DGMX_DEFAULT_SUFFIX=OFF"}
- ${if mpiEnabled then "-DGMX_MPI:BOOL=TRUE
- -DGMX_CPU_ACCELERATION:STRING=SSE4.1
+ ${if mpiEnabled then "-DGMX_MPI:BOOL=TRUE
+ -DGMX_CPU_ACCELERATION:STRING=SSE4.1
-DGMX_OPENMP:BOOL=TRUE
-DGMX_THREAD_MPI:BOOL=FALSE"
else "-DGMX_MPI:BOOL=FALSE" }
diff --git a/pkgs/applications/science/programming/fdr/default.nix b/pkgs/applications/science/programming/fdr/default.nix
index 3bfb70f5ce8..2c0bb84c801 100644
--- a/pkgs/applications/science/programming/fdr/default.nix
+++ b/pkgs/applications/science/programming/fdr/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, qtbase, qtx11extras, ncurses, xorg, zlib, python27Packages}:
+{stdenv, fetchurl, qtbase, qtx11extras, ncurses5, xorg, zlib, python27Packages}:
stdenv.mkDerivation {
name = "fdr-4.2.3";
src = fetchurl {
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
python27Packages.python
qtbase
qtx11extras
- ncurses
+ ncurses5
xorg.libX11
xorg.libXft
zlib
@@ -26,8 +26,7 @@ stdenv.mkDerivation {
rm -r lib/qt_plugins
cp -r * "$out"
- # Hack around lack of libtinfo in NixOS
- ln -s ${ncurses.out}/lib/libncursesw.so.6 $out/lib/libtinfo.so.5
+ ln -s ${ncurses5.out}/lib/libtinfo.so.5 $out/lib/libtinfo.so.5
ln -s ${qtbase.bin}/${qtbase.qtPluginPrefix} $out/lib/qt_plugins
ln -s ${zlib.out}/lib/libz.so.1 $out/lib/libz.so.1
diff --git a/pkgs/applications/science/robotics/betaflight-configurator/default.nix b/pkgs/applications/science/robotics/betaflight-configurator/default.nix
index 6449e966959..31295114375 100644
--- a/pkgs/applications/science/robotics/betaflight-configurator/default.nix
+++ b/pkgs/applications/science/robotics/betaflight-configurator/default.nix
@@ -1,22 +1,22 @@
{stdenv, fetchurl, unzip, makeDesktopItem, nwjs, wrapGAppsHook, gsettings-desktop-schemas, gtk3 }:
let
- strippedName = "betaflight-configurator";
+ pname = "betaflight-configurator";
desktopItem = makeDesktopItem {
- name = strippedName;
- exec = strippedName;
- icon = "${strippedName}-icon.png";
+ name = pname;
+ exec = pname;
+ icon = pname;
comment = "Betaflight configuration tool";
desktopName = "Betaflight Configurator";
genericName = "Flight controller configuration tool";
};
in
stdenv.mkDerivation rec {
- name = "${strippedName}-${version}";
- version = "10.5.1";
+ inherit pname;
+ version = "10.6.0";
src = fetchurl {
- url = "https://github.com/betaflight/betaflight-configurator/releases/download/${version}/${strippedName}_${version}_linux64.zip";
- sha256 = "1l4blqgaqfrnydk05q6pwdqdhcly2f8nwzrv0749cqmfiinh8ygc";
+ url = "https://github.com/betaflight/${pname}/releases/download/${version}/${pname}_${version}_linux64.zip";
+ sha256 = "09hayzhwangh8b81r038p320vbg0xxlyzrdp9pcmfyxp6s00xslw";
};
nativeBuildInputs = [ wrapGAppsHook ];
@@ -25,14 +25,13 @@ stdenv.mkDerivation rec {
installPhase = ''
mkdir -p $out/bin \
- $out/opt/${strippedName} \
- $out/share/icons
+ $out/opt/${pname}
- cp -r . $out/opt/${strippedName}/
- cp icon/*_icon_128.png $out/share/icons/${strippedName}-icon.png
+ cp -r . $out/opt/${pname}/
+ install -m 444 -D icon/bf_icon_128.png $out/share/icons/hicolor/128x128/apps/${pname}.png
cp -r ${desktopItem}/share/applications $out/share/
- makeWrapper ${nwjs}/bin/nw $out/bin/${strippedName} --add-flags $out/opt/${strippedName}
+ makeWrapper ${nwjs}/bin/nw $out/bin/${pname} --add-flags $out/opt/${pname}
'';
meta = with stdenv.lib; {
diff --git a/pkgs/applications/science/robotics/qgroundcontrol/default.nix b/pkgs/applications/science/robotics/qgroundcontrol/default.nix
index 1863757adbc..cbf7f4db8c4 100644
--- a/pkgs/applications/science/robotics/qgroundcontrol/default.nix
+++ b/pkgs/applications/science/robotics/qgroundcontrol/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchgit, git, SDL2, udev, doxygen
-, qtbase, qtlocation, qtserialport, qtdeclarative, qtconnectivity, qtxmlpatterns
-, qtsvg, qtquick1, qtquickcontrols, qtgraphicaleffects, qmake, qtspeech
+{ lib, mkDerivation, fetchgit, SDL2
+, qtbase, qtcharts, qtlocation, qtserialport, qtsvg, qtquickcontrols2
+, qtgraphicaleffects, qtspeech, qmake
, makeWrapper
, gst_all_1, pkgconfig
}:
-stdenv.mkDerivation rec {
+mkDerivation rec {
pname = "qgroundcontrol";
- version = "3.3.0";
+ version = "3.5.5";
qtInputs = [
- qtbase qtlocation qtserialport qtdeclarative qtconnectivity qtxmlpatterns qtsvg
- qtquick1 qtquickcontrols qtgraphicaleffects qtspeech
+ qtbase qtcharts qtlocation qtserialport qtsvg qtquickcontrols2
+ qtgraphicaleffects qtspeech
];
gstInputs = with gst_all_1; [
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
];
enableParallelBuilding = true;
- buildInputs = [ SDL2 udev doxygen git ] ++ gstInputs ++ qtInputs;
+ buildInputs = [ SDL2 ] ++ gstInputs ++ qtInputs;
nativeBuildInputs = [ pkgconfig makeWrapper qmake ];
preConfigure = ''
@@ -58,14 +58,14 @@ stdenv.mkDerivation rec {
# TODO: package mavlink so we can build from a normal source tarball
src = fetchgit {
url = "https://github.com/mavlink/qgroundcontrol.git";
- rev = "refs/tags/v${version}";
- sha256 = "0abjm0wywp24qlgg9w8g35ijprjg5csq4fgba9caaiwvmpfbhmpw";
+ rev = "v${version}";
+ sha256 = "05zy6w9lwwh254wa8c6wysa67kk0flywcvipii9b1rmy47slflhs";
fetchSubmodules = true;
};
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "Provides full ground station support and configuration for the PX4 and APM Flight Stacks";
- homepage = http://qgroundcontrol.org/;
+ homepage = "http://qgroundcontrol.org/";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ pxc ];
diff --git a/pkgs/applications/search/catfish/default.nix b/pkgs/applications/search/catfish/default.nix
index 983a5153ee2..bce5795a9c7 100644
--- a/pkgs/applications/search/catfish/default.nix
+++ b/pkgs/applications/search/catfish/default.nix
@@ -1,17 +1,17 @@
{ stdenv, fetchurl, file, which, intltool, gobject-introspection,
- findutils, xdg_utils, gnome3, gtk3, pythonPackages, hicolor-icon-theme,
+ findutils, xdg_utils, gnome3, gtk3, pythonPackages,
wrapGAppsHook
}:
pythonPackages.buildPythonApplication rec {
majorver = "1.4";
- minorver = "7";
+ minorver = "10";
version = "${majorver}.${minorver}";
pname = "catfish";
src = fetchurl {
url = "https://archive.xfce.org/src/apps/${pname}/${majorver}/${pname}-${version}.tar.bz2";
- sha256 = "1s97jb1r07ff40jnz8zianpn1f0c67hssn8ywdi2g7njfb4amjj8";
+ sha256 = "0g9l5sv5d7wmyb23cvpz5mpvjnxiqjh25v9gr5qzhcah202a0wr5";
};
nativeBuildInputs = [
@@ -19,7 +19,7 @@ pythonPackages.buildPythonApplication rec {
file
which
intltool
- gobject-introspection
+ gobject-introspection # for setup hook populating GI_TYPELIB_PATH
wrapGAppsHook
];
@@ -29,10 +29,11 @@ pythonPackages.buildPythonApplication rec {
pythonPackages.pyxdg
pythonPackages.ptyprocess
pythonPackages.pycairo
- hicolor-icon-theme
+ gobject-introspection # Temporary fix, see https://github.com/NixOS/nixpkgs/issues/56943
];
propagatedBuildInputs = [
+ pythonPackages.dbus-python
pythonPackages.pygobject3
pythonPackages.pexpect
xdg_utils
@@ -53,7 +54,7 @@ pythonPackages.buildPythonApplication rec {
meta = with stdenv.lib; {
homepage = https://docs.xfce.org/apps/catfish/start;
- description = "A handy file search tool";
+ description = "Handy file search tool";
longDescription = ''
Catfish is a handy file searching tool. The interface is
intentionally lightweight and simple, using only GTK 3.
diff --git a/pkgs/applications/version-management/bcompare/default.nix b/pkgs/applications/version-management/bcompare/default.nix
index 3dc7792de2a..8f862af0a28 100644
--- a/pkgs/applications/version-management/bcompare/default.nix
+++ b/pkgs/applications/version-management/bcompare/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "bcompare";
- version = "4.2.10.23938";
+ version = "4.3.2.24472";
src = fetchurl {
url = "https://www.scootersoftware.com/${pname}-${version}_amd64.deb";
- sha256 = "1825s1lbaj20d712czmaaqg7mkwfb650r53af2y30j29p6yd4wal";
+ sha256 = "1msygg01yi0n8lpk8sl226p09ls7wvd3z3k067mdgrss8rjy5va5";
};
unpackPhase = ''
@@ -43,7 +43,6 @@ stdenv.mkDerivation rec {
ki18n
kcoreaddons
gdk-pixbuf
- qt4
bzip2
];
diff --git a/pkgs/applications/version-management/dvc/default.nix b/pkgs/applications/version-management/dvc/default.nix
new file mode 100644
index 00000000000..fe10551771c
--- /dev/null
+++ b/pkgs/applications/version-management/dvc/default.nix
@@ -0,0 +1,65 @@
+{ lib
+, python3Packages
+, fetchFromGitHub
+, enableGoogle ? false
+, enableAWS ? false
+, enableAzure ? false
+, enableSSH ? false
+}:
+
+with python3Packages;
+buildPythonApplication rec {
+ pname = "dvc";
+ version = "0.24.3";
+
+ # PyPi only has wheel
+ src = fetchFromGitHub {
+ owner = "iterative";
+ repo = "dvc";
+ rev = version;
+ sha256 = "1wqq4i23hppilp20fx5a5nj93xwf3wwwr2f8aasvn6jkv2l22vpl";
+ };
+
+ propagatedBuildInputs = [
+ ply
+ configparser
+ zc_lockfile
+ future
+ colorama
+ configobj
+ networkx
+ pyyaml
+ GitPython
+ setuptools
+ nanotime
+ pyasn1
+ schema
+ jsonpath_rw
+ requests
+ grandalf
+ asciimatics
+ distro
+ appdirs
+ ]
+ ++ lib.optional enableGoogle google_cloud_storage
+ ++ lib.optional enableAWS boto3
+ ++ lib.optional enableAzure azure-storage-blob
+ ++ lib.optional enableSSH paramiko;
+
+ # tests require access to real cloud services
+ # nix build tests have to be isolated and run locally
+ doCheck = false;
+
+ patches = [ ./dvc-daemon.patch ];
+
+ postPatch = ''
+ substituteInPlace dvc/daemon.py --subst-var-by dvc "$out/bin/dcv"
+ '';
+
+ meta = with lib; {
+ description = "Version Control System for Machine Learning Projects";
+ license = licenses.asl20;
+ homepage = https://dvc.org;
+ maintainers = with maintainers; [ cmcdragonkai ];
+ };
+}
diff --git a/pkgs/applications/version-management/dvc/dvc-daemon.patch b/pkgs/applications/version-management/dvc/dvc-daemon.patch
new file mode 100644
index 00000000000..5c2d363b17f
--- /dev/null
+++ b/pkgs/applications/version-management/dvc/dvc-daemon.patch
@@ -0,0 +1,21 @@
+diff --git a/dvc/daemon.py b/dvc/daemon.py
+index 1d67a37..7ce6fde 100644
+--- a/dvc/daemon.py
++++ b/dvc/daemon.py
+@@ -67,14 +67,8 @@ def daemon(args):
+ Args:
+ args (list): list of arguments to append to `dvc daemon` command.
+ """
+- cmd = [sys.executable]
+- if not is_binary():
+- cmd += ['-m', 'dvc']
+- cmd += ['daemon', '-q'] + args
+-
+- env = fix_env()
+- file_path = os.path.abspath(inspect.stack()[0][1])
+- env['PYTHONPATH'] = os.path.dirname(os.path.dirname(file_path))
++ cmd = [ "@dvc@" , "daemon", "-q"] + args
++ env = None
+
+ logger.debug("Trying to spawn '{}' with env '{}'".format(cmd, env))
+
diff --git a/pkgs/applications/version-management/fossil/default.nix b/pkgs/applications/version-management/fossil/default.nix
index cc029881133..8a41221a267 100644
--- a/pkgs/applications/version-management/fossil/default.nix
+++ b/pkgs/applications/version-management/fossil/default.nix
@@ -5,7 +5,7 @@
stdenv.mkDerivation rec {
pname = "fossil";
- version = "2.9";
+ version = "2.10";
src = fetchurl {
urls =
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
"https://www.fossil-scm.org/index.html/uv/fossil-src-${version}.tar.gz"
];
name = "${pname}-${version}.tar.gz";
- sha256 = "0kwb7pkp7y2my916rhyl6kmcf0fk8gkzaxzy13hfgqs35nlsvchw";
+ sha256 = "041bs4fgk52fw58p7s084pxk9d9vs5v2f2pjbznqawz75inpg8yq";
};
buildInputs = [ zlib openssl readline sqlite which ed ]
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
license = stdenv.lib.licenses.bsd2;
platforms = with stdenv.lib.platforms; all;
maintainers = [ #Add your name here!
- stdenv.lib.maintainers.z77z
+ stdenv.lib.maintainers.maggesi
stdenv.lib.maintainers.viric
];
};
diff --git a/pkgs/applications/version-management/git-and-tools/default.nix b/pkgs/applications/version-management/git-and-tools/default.nix
index e64254ed29f..68e10ed4e3e 100644
--- a/pkgs/applications/version-management/git-and-tools/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/default.nix
@@ -24,6 +24,8 @@ let
darcsToGit = callPackage ./darcs-to-git { };
+ delta = callPackage ./delta { };
+
diff-so-fancy = callPackage ./diff-so-fancy { };
ghq = callPackage ./ghq { };
@@ -72,6 +74,8 @@ let
git-annex-remote-rclone = callPackage ./git-annex-remote-rclone { };
+ git-annex-utils = callPackage ./git-annex-utils { };
+
git-bug = callPackage ./git-bug { };
# support for bugzilla
@@ -99,6 +103,8 @@ let
git-imerge = callPackage ./git-imerge { };
+ git-machete = python3Packages.callPackage ./git-machete { };
+
git-octopus = callPackage ./git-octopus { };
git-open = callPackage ./git-open { };
@@ -147,6 +153,8 @@ let
lab = callPackage ./lab { };
+ lefthook = callPackage ./lefthook { };
+
pre-commit = pkgs.python3Packages.toPythonApplication pkgs.python3Packages.pre-commit;
pass-git-helper = python3Packages.callPackage ./pass-git-helper { };
diff --git a/pkgs/applications/version-management/git-and-tools/delta/default.nix b/pkgs/applications/version-management/git-and-tools/delta/default.nix
new file mode 100644
index 00000000000..023b9f6d967
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/delta/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "delta";
+ version = "0.0.14";
+
+ src = fetchFromGitHub {
+ owner = "dandavison";
+ repo = pname;
+ rev = version;
+ sha256 = "11kjxa39mqdd9jh969ibxd0nlp9bacj2fm4cj6sk4gp6xf7gv90h";
+ };
+
+ cargoSha256 = "1888bvkpalfcw9bc9zmf9bmil6x35l9ia31x6mx1h2dvrfpw3bb1";
+
+ meta = with lib; {
+ homepage = "https://github.com/dandavison/delta";
+ description = "A syntax-highlighting pager for git";
+ license = licenses.mit;
+ maintainers = [ maintainers.marsam ];
+ };
+}
diff --git a/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix b/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix
index 1bbbbe22d9a..96216e76fd3 100644
--- a/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "diff-so-fancy";
- version = "1.2.6";
+ version = "1.2.7";
src = fetchFromGitHub {
owner = "so-fancy";
repo = "diff-so-fancy";
rev = "v${version}";
- sha256 = "1w8x2d83zdhrnydiqq1qjf3j1y4cawdg8p1isj8zqwblnc47ygjm";
+ sha256 = "0y5cp236gi6h7llzai5d27086l4zz58mz1zs01r97xnnmjs9vw21";
};
# Perl is needed here for patchShebangs
diff --git a/pkgs/applications/version-management/git-and-tools/ghq/default.nix b/pkgs/applications/version-management/git-and-tools/ghq/default.nix
index b73825737df..477b628c4d7 100644
--- a/pkgs/applications/version-management/git-and-tools/ghq/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/ghq/default.nix
@@ -1,11 +1,9 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub, fetchpatch }:
-buildGoPackage rec {
+buildGoModule rec {
pname = "ghq";
version = "0.12.6";
- goPackagePath = "github.com/motemen/ghq";
-
src = fetchFromGitHub {
owner = "motemen";
repo = "ghq";
@@ -13,7 +11,7 @@ buildGoPackage rec {
sha256 = "14rm7fvphr7r9x0ys10vhzjwhfhhscgr574n1i1z4lzw551lrnp4";
};
- goDeps = ./deps.nix;
+ modSha256 = "1y2v8ir7kc2avgri06nagfyaxqr3xrg4g5pxl9rwzq9dyzm6ci5z";
buildFlagsArray = ''
-ldflags=
@@ -21,9 +19,17 @@ buildGoPackage rec {
'';
postInstall = ''
- install -m 444 -D ${src}/zsh/_ghq $bin/share/zsh/site-functions/_ghq
+ install -m 444 -D ${src}/zsh/_ghq $out/share/zsh/site-functions/_ghq
'';
+ patches = [
+ (fetchpatch {
+ # remove once the commit lands in a release.
+ url = "https://github.com/motemen/ghq/commit/38ac89e60e60182b5870108f9753c9fe8d00e4a6.patch";
+ sha256 = "1z8yvzmka3sh44my6jnwc39p8zs7mczxgvwc9z0pkqk4vgvaj8gj";
+ })
+ ];
+
meta = {
description = "Remote repository management made easy";
homepage = https://github.com/motemen/ghq;
diff --git a/pkgs/applications/version-management/git-and-tools/ghq/deps.nix b/pkgs/applications/version-management/git-and-tools/ghq/deps.nix
deleted file mode 100644
index dde1b19b4c3..00000000000
--- a/pkgs/applications/version-management/git-and-tools/ghq/deps.nix
+++ /dev/null
@@ -1,138 +0,0 @@
-# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
-[
- {
- goPackagePath = "github.com/Songmu/gitconfig";
- fetch = {
- type = "git";
- url = "https://github.com/Songmu/gitconfig";
- rev = "v0.0.2";
- sha256 = "0w1xd1mzxzwh755l6lgpn6psjp959kvx89l39zhc8lag9jh7rc44";
- };
- }
- {
- goPackagePath = "github.com/daviddengcn/go-colortext";
- fetch = {
- type = "git";
- url = "https://github.com/daviddengcn/go-colortext";
- rev = "186a3d44e920";
- sha256 = "18piv4zzcb8abbc7fllz9p6rd4zhsy1gc6iygym381caggmmgxgk";
- };
- }
- {
- goPackagePath = "github.com/golangplus/bytes";
- fetch = {
- type = "git";
- url = "https://github.com/golangplus/bytes";
- rev = "45c989fe5450";
- sha256 = "1fpwg1idakpbvkmk8j8yyhv9g7mhr9c922kvff6kj4br4k05zyzr";
- };
- }
- {
- goPackagePath = "github.com/golangplus/fmt";
- fetch = {
- type = "git";
- url = "https://github.com/golangplus/fmt";
- rev = "2a5d6d7d2995";
- sha256 = "1242q05qnawhv0klzy1pbq63q8jxkms5hc7421992hzq2m40k5yn";
- };
- }
- {
- goPackagePath = "github.com/golangplus/testing";
- fetch = {
- type = "git";
- url = "https://github.com/golangplus/testing";
- rev = "af21d9c3145e";
- sha256 = "1g83sjvcavqbh92vyirc48mrqd18yfci08zya0hrgk840cr94czc";
- };
- }
- {
- goPackagePath = "github.com/motemen/go-colorine";
- fetch = {
- type = "git";
- url = "https://github.com/motemen/go-colorine";
- rev = "45d19169413a";
- sha256 = "1mdy6q0926s1frj027nlzlvm2qssmkpjis7ic3l2smajkzh07118";
- };
- }
- {
- 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 = "3ec191127204";
- sha256 = "0zzhbkw3065dp1jscp7q8dxw3mkwj95ixnrr8j7c47skis0m11i3";
- };
- }
- {
- goPackagePath = "golang.org/x/sync";
- fetch = {
- type = "git";
- url = "https://go.googlesource.com/sync";
- rev = "112230192c58";
- sha256 = "05i2k43j2d0llq768hg5pf3hb2yhfzp9la1w5wp0rsnnzblr0lfn";
- };
- }
- {
- goPackagePath = "golang.org/x/sys";
- fetch = {
- type = "git";
- url = "https://go.googlesource.com/sys";
- rev = "d0b11bdaac8a";
- sha256 = "18yfsmw622l7gc5sqriv5qmck6903vvhivpzp8i3xfy3z33dybdl";
- };
- }
- {
- goPackagePath = "golang.org/x/text";
- fetch = {
- type = "git";
- url = "https://go.googlesource.com/text";
- rev = "v0.3.0";
- sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
- };
- }
- {
- goPackagePath = "golang.org/x/xerrors";
- fetch = {
- type = "git";
- url = "https://go.googlesource.com/xerrors";
- rev = "3ee3066db522";
- sha256 = "12xyaa116bq9zy25fwk7zzi83v8aab9lm91pqg0c3jrfkjdbr255";
- };
- }
- {
- goPackagePath = "gopkg.in/check.v1";
- fetch = {
- type = "git";
- url = "https://gopkg.in/check.v1";
- rev = "20d25e280405";
- sha256 = "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np";
- };
- }
- {
- goPackagePath = "gopkg.in/yaml.v2";
- fetch = {
- type = "git";
- url = "https://gopkg.in/yaml.v2";
- rev = "v2.2.2";
- sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa";
- };
- }
-]
diff --git a/pkgs/applications/version-management/git-and-tools/git-annex-utils/default.nix b/pkgs/applications/version-management/git-and-tools/git-annex-utils/default.nix
new file mode 100644
index 00000000000..08134195703
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/git-annex-utils/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchgit, autoconf, automake, libtool, gmp }:
+
+stdenv.mkDerivation rec {
+ pname = "git-annex-utils";
+ version = "0.04-3-g531bb33";
+ src = fetchgit {
+ url = http://git.mysteryvortex.com/repositories/git-annex-utils.git;
+ rev = "531bb33";
+ sha256 = "1sv7s2ykc840cjwbfn7ayy743643x9i1lvk4cd55w9l052xvzj65";
+ };
+ buildInputs = [ autoconf automake libtool gmp ];
+ preConfigure = "./autogen.sh";
+
+ meta = {
+ description = "gadu, a du like utility for annexed files";
+ longDescription = ''
+ This is a set of utilities that are handy to use with git-annex repositories.
+ Currently there is only one utility gadu, a du like utility for annexed files.
+ '';
+ homepage = http://git-annex.mysteryvortex.com/git-annex-utils.html;
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = with stdenv.lib.maintainers; [ woffs ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/pkgs/applications/version-management/git-and-tools/git-cola/default.nix b/pkgs/applications/version-management/git-and-tools/git-cola/default.nix
index 545fc77168e..5d1a06e0397 100644
--- a/pkgs/applications/version-management/git-and-tools/git-cola/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-cola/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchFromGitHub, pythonPackages, gettext, git, qt5 }:
+{ stdenv, fetchFromGitHub, python3Packages, gettext, git, qt5 }:
let
- inherit (pythonPackages) buildPythonApplication pyqt5 sip pyinotify;
+ inherit (python3Packages) buildPythonApplication pyqt5 sip pyinotify;
in buildPythonApplication rec {
pname = "git-cola";
- version = "3.4";
+ version = "3.5";
src = fetchFromGitHub {
owner = "git-cola";
repo = "git-cola";
rev = "v${version}";
- sha256 = "0754d56dprhb1nhb8fwp4my5pyqcgarwzba1l6zx7il87d7vyi5m";
+ sha256 = "09b60jbpdr4czx7h4vqahqmmi7m9vn77jlkpjfhys7crrdnxjp9i";
};
buildInputs = [ git gettext ];
diff --git a/pkgs/applications/version-management/git-and-tools/git-extras/default.nix b/pkgs/applications/version-management/git-and-tools/git-extras/default.nix
index 09c9169e434..64ef6db980b 100644
--- a/pkgs/applications/version-management/git-and-tools/git-extras/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-extras/default.nix
@@ -1,19 +1,26 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchzip, unixtools, which }:
stdenv.mkDerivation rec {
pname = "git-extras";
- version = "4.7.0";
+ version = "5.0.0";
- src = fetchurl {
+ src = fetchzip {
url = "https://github.com/tj/git-extras/archive/${version}.tar.gz";
- sha256 = "0pab4f5kmmcn333aswkgndf1fgilc41h8h0rk3lviz0yi8j59vaq";
+ sha256 = "0c839kc5mhi1iqhc696p4dj67i5hm2gi4d8cvdpskaapb124mj2f";
};
+ nativeBuildInputs = [ unixtools.column which ];
+
dontBuild = true;
- installFlags = [ "DESTDIR=${placeholder "out"}" "PREFIX=" ];
+ preInstall = ''
+ patchShebangs .
+ '';
+
+ installFlags = [ "PREFIX=${placeholder "out"}" ];
postInstall = ''
+ # bash completion is already handled by make install
install -D etc/git-extras-completion.zsh $out/share/zsh/site-functions/_git_extras
'';
diff --git a/pkgs/applications/version-management/git-and-tools/git-machete/default.nix b/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
new file mode 100644
index 00000000000..aafaa6659d3
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
@@ -0,0 +1,33 @@
+{ lib, buildPythonApplication, fetchPypi
+, installShellFiles, pbr
+, flake8, mock, pycodestyle, pylint, tox }:
+
+buildPythonApplication rec {
+ pname = "git-machete";
+ version = "2.12.1";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "114kq396zq45jlibn1lp0nk4lmanj4w1bcn48gi7xzdm0y1nkzfq";
+ };
+
+ nativeBuildInputs = [ installShellFiles pbr ];
+
+ # TODO: Add missing check inputs (2019-11-22):
+ # - stestr
+ doCheck = false;
+ checkInputs = [ flake8 mock pycodestyle pylint tox ];
+
+ postInstall = ''
+ installShellCompletion --bash --name git-machete completion/git-machete.completion.bash
+ installShellCompletion --zsh --name _git-machete completion/git-machete.completion.zsh
+ '';
+
+ meta = with lib; {
+ homepage = https://github.com/VirtusLab/git-machete;
+ description = "Git repository organizer and rebase workflow automation tool";
+ license = licenses.mit;
+ platforms = platforms.all;
+ maintainers = [ maintainers.blitz ];
+ };
+}
diff --git a/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix b/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix
index 7d6b620e223..6df3a97dbbb 100644
--- a/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix
@@ -4,13 +4,13 @@
stdenv.mkDerivation rec {
pname = "git-remote-hg";
- version = "1.0.0";
+ version = "1.0.1";
src = fetchFromGitHub {
owner = "mnauw";
repo = "git-remote-hg";
rev = "v${version}";
- sha256 = "0anl054zdi5rg5m4bm1n763kbdjkpdws3c89c8w8m5gq1ifsbd4d";
+ sha256 = "1by5ygqvq9ww990kdrjndaqsssyf2jc4n380f9pfh2avsr7871wc";
};
buildInputs = [ mercurial.python mercurial makeWrapper
diff --git a/pkgs/applications/version-management/git-and-tools/git-secret/default.nix b/pkgs/applications/version-management/git-and-tools/git-secret/default.nix
index 62fbab02292..8477dfac585 100644
--- a/pkgs/applications/version-management/git-and-tools/git-secret/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-secret/default.nix
@@ -1,7 +1,7 @@
{ stdenv, lib, fetchFromGitHub, makeWrapper, git, gnupg, gawk }:
let
- version = "0.2.6";
+ version = "0.3.2";
repo = "git-secret";
in stdenv.mkDerivation {
@@ -11,7 +11,7 @@ in stdenv.mkDerivation {
inherit repo;
owner = "sobolevn";
rev = "v${version}";
- sha256 = "09p4h8mdmk0nzcd1jh1i6n29klz38n5vqqwdyzjkygmr2xqka55b";
+ sha256 = "0n268xlsd9p5f083sqwzpvsqg99fdk876mf8gihkydakrismc45b";
};
buildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/version-management/git-and-tools/git-subrepo/default.nix b/pkgs/applications/version-management/git-and-tools/git-subrepo/default.nix
index b196d39b46f..969ea7cc2fa 100644
--- a/pkgs/applications/version-management/git-and-tools/git-subrepo/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-subrepo/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
homepage = https://github.com/ingydotnet/git-subrepo;
description = "Git submodule alternative";
license = licenses.mit;
- platforms = platforms.linux;
+ platforms = platforms.unix ++ platforms.darwin;
maintainers = [ maintainers.ryantrinkle ];
};
}
diff --git a/pkgs/applications/version-management/git-and-tools/git/default.nix b/pkgs/applications/version-management/git-and-tools/git/default.nix
index 47da7f7a1d7..a8e284c6fec 100644
--- a/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -21,7 +21,7 @@ assert sendEmailSupport -> perlSupport;
assert svnSupport -> perlSupport;
let
- version = "2.23.0";
+ version = "2.24.0";
svn = subversionClient.override { perlBindings = perlSupport; };
gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ];
@@ -33,7 +33,7 @@ stdenv.mkDerivation {
src = fetchurl {
url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
- sha256 = "0rv0y45gcd3h191isppn77acih695v4pipdj031jvs9rd1ds0kr3";
+ sha256 = "06rpakbwzck85ncfsgv4xmq3iwab9d4f5y6dqhl8nvb2fccxcwcz";
};
outputs = [ "out" ];
@@ -93,7 +93,7 @@ stdenv.mkDerivation {
++ (if perlSupport then ["PERL_PATH=${perlPackages.perl}/bin/perl"] else ["NO_PERL=1"])
++ (if pythonSupport then ["PYTHON_PATH=${python}/bin/python"] else ["NO_PYTHON=1"])
++ stdenv.lib.optionals stdenv.isSunOS ["INSTALL=install" "NO_INET_NTOP=" "NO_INET_PTON="]
- ++ (if stdenv.isDarwin then ["NO_APPLE_COMMON_CRYPTO=1"] else ["sysconfdir=/etc/"])
+ ++ (if stdenv.isDarwin then ["NO_APPLE_COMMON_CRYPTO=1"] else ["sysconfdir=/etc"])
++ stdenv.lib.optionals stdenv.hostPlatform.isMusl ["NO_SYS_POLL_H=1" "NO_GETTEXT=YesPlease"]
++ stdenv.lib.optional withpcre2 "USE_LIBPCRE2=1";
@@ -141,8 +141,9 @@ stdenv.mkDerivation {
cp -a contrib $out/share/git/
mkdir -p $out/share/emacs/site-lisp
ln -s "$out/share/git/contrib/emacs/"*.el $out/share/emacs/site-lisp/
+ mkdir -p $out/share/bash-completion/completions
+ ln -s $out/share/git/contrib/completion/git-completion.bash $out/share/bash-completion/completions/git
mkdir -p $out/etc/bash_completion.d
- ln -s $out/share/git/contrib/completion/git-completion.bash $out/etc/bash_completion.d/
ln -s $out/share/git/contrib/completion/git-prompt.sh $out/etc/bash_completion.d/
# grep is a runtime dependency, need to patch so that it's found
@@ -297,6 +298,10 @@ stdenv.mkDerivation {
# As of 2.19.0, t5562 refers to #!/usr/bin/perl
patchShebangs t/t5562/invoke-with-content-length.pl
+ '' + stdenv.lib.optionalString stdenv.isDarwin ''
+ # XXX: Some tests added in 2.24.0 fail.
+ # Please try to re-enable on the next release.
+ disable_test t7816-grep-binary-pattern
'' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl ''
# Test fails (as of 2.17.0, musl 1.1.19)
disable_test t3900-i18n-commit
diff --git a/pkgs/applications/version-management/git-and-tools/gita/default.nix b/pkgs/applications/version-management/git-and-tools/gita/default.nix
index 6ecf81779f2..22bd0e66c15 100644
--- a/pkgs/applications/version-management/git-and-tools/gita/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gita/default.nix
@@ -2,23 +2,23 @@
, buildPythonApplication
, fetchPypi
, pyyaml
+, setuptools
}:
buildPythonApplication rec {
- version = "0.9.2";
+ version = "0.9.9";
pname = "gita";
src = fetchPypi {
inherit pname version;
- sha256 = "1aycqq4crsa57ghpv7xc497rf4y8x43fcfd0v9prd2kn6h1793r0";
+ sha256 = "1si2f9nyisbrvv8cvrjxj8r4cbrgc97ic0wdlbf34gvp020dsmgv";
};
propagatedBuildInputs = [
pyyaml
+ setuptools
];
- doCheck = false; # Releases don't include tests
-
meta = with lib; {
description = "A command-line tool to manage multiple git repos";
homepage = https://github.com/nosarthur/gita;
diff --git a/pkgs/applications/version-management/git-and-tools/hub/default.nix b/pkgs/applications/version-management/git-and-tools/hub/default.nix
index cd38be2b977..ee21a2158ac 100644
--- a/pkgs/applications/version-management/git-and-tools/hub/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/hub/default.nix
@@ -2,7 +2,7 @@
buildGoPackage rec {
pname = "hub";
- version = "2.12.4";
+ version = "2.13.0";
goPackagePath = "github.com/github/hub";
@@ -13,7 +13,7 @@ buildGoPackage rec {
owner = "github";
repo = pname;
rev = "v${version}";
- sha256 = "1d4cn4pgx520psrfac92h3m7azxnpj1plrrqmxryar85f3y363bq";
+ sha256 = "18b0r16fk5wahvysqvg6vzjr7smyc2sdxp9sf55viby3kkwjfbkh";
};
nativeBuildInputs = [ groff utillinux ];
diff --git a/pkgs/applications/version-management/git-and-tools/lefthook/default.nix b/pkgs/applications/version-management/git-and-tools/lefthook/default.nix
new file mode 100644
index 00000000000..04ba4c7c48f
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/lefthook/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "lefthook";
+ version = "0.6.3";
+
+ src = fetchFromGitHub {
+ rev = "v${version}";
+ owner = "Arkweid";
+ repo = "lefthook";
+ sha256 = "01zvlw2yyxjg92d1qag1b42kc2kd68h4fmrv9y6ar7z0rw3p9a5d";
+ };
+
+ modSha256 = "0mjhw778x40c2plmjlkiry4rwvr9xkz65b88a61j86liv2plbmq2";
+
+ meta = with stdenv.lib; {
+ description = "Fast and powerful Git hooks manager for any type of projects";
+ homepage = "https://github.com/Arkweid/lefthook";
+ license = licenses.mit;
+ maintainers = with maintainers; [ rencire ];
+ };
+}
diff --git a/pkgs/applications/version-management/git-and-tools/stgit/default.nix b/pkgs/applications/version-management/git-and-tools/stgit/default.nix
index 4f9a1c4e544..660c391c0d5 100644
--- a/pkgs/applications/version-management/git-and-tools/stgit/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/stgit/default.nix
@@ -2,7 +2,7 @@
let
name = "stgit-${version}";
- version = "0.19";
+ version = "0.21";
in
stdenv.mkDerivation {
inherit name;
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
owner = "ctmarinas";
repo = "stgit";
rev = "v${version}";
- sha256 = "1dzl6cnyzwbzysp82x7w1yc03g25kwan3h0zpnzhhfhg6c904sis";
+ sha256 = "16gwdad18rc9bivyzrjccp83iccmqr45fp2zawycmrfp2ancffc7";
};
buildInputs = [ python2 git ];
diff --git a/pkgs/applications/version-management/git-and-tools/subgit/default.nix b/pkgs/applications/version-management/git-and-tools/subgit/default.nix
index 6866418f3e3..03933788551 100644
--- a/pkgs/applications/version-management/git-and-tools/subgit/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/subgit/default.nix
@@ -1,7 +1,7 @@
{ stdenv, fetchurl, unzip, makeWrapper, jre }:
stdenv.mkDerivation rec {
- name = "subgit-3.3.7";
+ name = "subgit-3.3.8";
meta = {
description = "A tool for a smooth, stress-free SVN to Git migration";
@@ -21,6 +21,6 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "http://subgit.com/download/${name}.zip";
- sha256 = "1cpssmvp961kw8s3b9s9bv9jmsm1gk3napggw5810c4rnnihjvrn";
+ sha256 = "0gvyyr4prx1v06f9j9fmmr8br1gjd45bnncl40c9agiqsyy0q06n";
};
}
diff --git a/pkgs/applications/version-management/git-backup/default.nix b/pkgs/applications/version-management/git-backup/default.nix
new file mode 100644
index 00000000000..9d05fb83031
--- /dev/null
+++ b/pkgs/applications/version-management/git-backup/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, rustPlatform, pkg-config, openssl, Security }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "git-backup";
+ version = "0.2.0";
+
+ src = fetchFromGitHub {
+ owner = "jsdw";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0h31j8clvk4gkw4mgva9p0ypf26zhf7f0y564fdmzyw6rsz9wzcj";
+ };
+
+ cargoSha256 = "1vfyhfdy5ks9zs9sy61ck9459w86hn9v6jqcar7rib82bclzr1mx";
+
+ nativeBuildInputs = [ pkg-config ];
+
+ buildInputs = [ openssl ] ++ stdenv.lib.optionals stdenv.isDarwin [ Security ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/jsdw/git-backup";
+ description = "A tool to help you backup your git repositories from services like GitHub";
+ license = licenses.mit;
+ maintainers = [ maintainers.marsam ];
+ };
+}
diff --git a/pkgs/applications/version-management/git-lfs/default.nix b/pkgs/applications/version-management/git-lfs/default.nix
index d9b5e170497..f2d87fd69dd 100644
--- a/pkgs/applications/version-management/git-lfs/default.nix
+++ b/pkgs/applications/version-management/git-lfs/default.nix
@@ -2,25 +2,22 @@
buildGoPackage rec {
pname = "git-lfs";
- version = "2.7.2";
-
- goPackagePath = "github.com/git-lfs/git-lfs";
+ version = "2.8.0";
src = fetchFromGitHub {
rev = "v${version}";
owner = "git-lfs";
repo = "git-lfs";
- sha256 = "1nf40rbdz901vsahg5cm09pznpina6wimmxl0lmh8pn0mi51yzvc";
+ sha256 = "17x9q4g1acf51bxr9lfmd2ym7w740n4ghdi0ncmma77kwabw9d3x";
};
- preBuild = ''
- pushd go/src/github.com/git-lfs/git-lfs
- go generate ./commands
- popd
- '';
+ goPackagePath = "github.com/git-lfs/git-lfs";
- postInstall = ''
- rm -v $bin/bin/{man,script,cmd}
+ subPackages = [ "." ];
+
+ preBuild = ''
+ cd go/src/${goPackagePath}
+ go generate ./commands
'';
meta = with stdenv.lib; {
diff --git a/pkgs/applications/version-management/git-repo/default.nix b/pkgs/applications/version-management/git-repo/default.nix
index b26548ebe99..d5abb6d004b 100644
--- a/pkgs/applications/version-management/git-repo/default.nix
+++ b/pkgs/applications/version-management/git-repo/default.nix
@@ -4,13 +4,13 @@
stdenv.mkDerivation rec {
pname = "git-repo";
- version = "1.13.5.1";
+ version = "1.13.8";
src = fetchFromGitHub {
owner = "android";
repo = "tools_repo";
rev = "v${version}";
- sha256 = "13rp0fq76a6qlw60pnipkgfng25i0ygyk66y30jv7hy8ip4aa92n";
+ sha256 = "1wmzgijmssgwkkw8g4zgmc4x64xkvz6nq1b3szcvawgv1ndwnb2j";
};
nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/version-management/git-sizer/default.nix b/pkgs/applications/version-management/git-sizer/default.nix
index 7a92679583b..6d41098ee1a 100644
--- a/pkgs/applications/version-management/git-sizer/default.nix
+++ b/pkgs/applications/version-management/git-sizer/default.nix
@@ -2,7 +2,7 @@
buildGoPackage rec {
pname = "git-sizer";
- version = "1.0.0";
+ version = "1.3.0";
goPackagePath = "github.com/github/git-sizer";
@@ -10,7 +10,7 @@ buildGoPackage rec {
owner = "github";
repo = pname;
rev = "v${version}";
- sha256 = "11rvqpsyl41ph0fgm62k5q2p33zgnwj1jd91rd4lkaarpcd1sg5h";
+ sha256 = "0kmyvai5xfalm56ywa6mhdvvjnacdzwcyz28bw0pz9a4gyf1mgvh";
};
meta = with lib; {
diff --git a/pkgs/applications/version-management/git-up/default.nix b/pkgs/applications/version-management/git-up/default.nix
index ba0625c433d..5812ff8c1d1 100644
--- a/pkgs/applications/version-management/git-up/default.nix
+++ b/pkgs/applications/version-management/git-up/default.nix
@@ -1,17 +1,18 @@
-{ stdenv, fetchurl, python2Packages, git }:
+{ stdenv, fetchurl, pythonPackages, git }:
-python2Packages.buildPythonApplication rec {
- version = "1.4.2";
+pythonPackages.buildPythonApplication rec {
pname = "git-up";
+ version = "1.6.1";
- src = fetchurl {
- url = "mirror://pypi/g/git-up/${pname}-${version}.zip";
- sha256 = "121ia5gyjy7js6fbsx9z98j2qpq7rzwpsj8gnfvsbz2d69g0vl7q";
+ src = pythonPackages.fetchPypi {
+ inherit pname version;
+ sha256 = "0gs791yb0cndg9879vayvcj329jwhzpk6wrf9ri12l5hg8g490za";
};
- buildInputs = [ git ] ++ (with python2Packages; [ nose ]);
- propagatedBuildInputs = with python2Packages; [ click colorama docopt GitPython six termcolor ];
+ # git should be on path for tool to work correctly
+ propagatedBuildInputs = [ git ] ++ (with pythonPackages; [ click colorama docopt GitPython six termcolor ]);
+ checkInputs = [ git pythonPackages.nose ]; # git needs to be on path
# 1. git fails to run as it cannot detect the email address, so we set it
# 2. $HOME is by default not a valid dir, so we have to set that too
# https://github.com/NixOS/nixpkgs/issues/12591
@@ -22,7 +23,7 @@ python2Packages.buildPythonApplication rec {
'';
postInstall = ''
- rm -r $out/${python2Packages.python.sitePackages}/PyGitUp/tests
+ rm -r $out/${pythonPackages.python.sitePackages}/PyGitUp/tests
'';
meta = with stdenv.lib; {
@@ -31,6 +32,5 @@ python2Packages.buildPythonApplication rec {
license = licenses.mit;
maintainers = with maintainers; [ peterhoeg ];
platforms = platforms.all;
- broken = true; # Incompatible with Git 2.15 object store.
};
}
diff --git a/pkgs/applications/version-management/gitea/default.nix b/pkgs/applications/version-management/gitea/default.nix
index 9c7d83a05fd..8a22f8c3dc1 100644
--- a/pkgs/applications/version-management/gitea/default.nix
+++ b/pkgs/applications/version-management/gitea/default.nix
@@ -8,13 +8,13 @@ with stdenv.lib;
buildGoPackage rec {
pname = "gitea";
- version = "1.9.3";
+ version = "1.10.0";
src = fetchFromGitHub {
owner = "go-gitea";
repo = "gitea";
rev = "v${version}";
- sha256 = "0g6ch85dq4vazxnr6g78wgqrnfa955395y1zws0a50h0wfxpdjis";
+ sha256 = "19r0gbp4q2sk3br17625m8jinlglijjknqs5y20w3kzxrifrjrmk";
# Required to generate the same checksum on MacOS due to unicode encoding differences
# More information: https://github.com/NixOS/nixpkgs/pull/48128
extraPostFetch = ''
diff --git a/pkgs/applications/version-management/gitkraken/default.nix b/pkgs/applications/version-management/gitkraken/default.nix
index fa93ff41a4a..acd2da71219 100644
--- a/pkgs/applications/version-management/gitkraken/default.nix
+++ b/pkgs/applications/version-management/gitkraken/default.nix
@@ -2,7 +2,7 @@
, libXfixes, atk, gtk3, libXrender, pango, gnome3, cairo, freetype, fontconfig
, libX11, libXi, libxcb, libXext, libXcursor, glib, libXScrnSaver, libxkbfile, libXtst
, nss, nspr, cups, fetchurl, expat, gdk-pixbuf, libXdamage, libXrandr, dbus
-, dpkg, makeDesktopItem, openssl, wrapGAppsHook, hicolor-icon-theme, at-spi2-atk, libuuid
+, dpkg, makeDesktopItem, openssl, wrapGAppsHook, at-spi2-atk, libuuid
, e2fsprogs, krb5
}:
@@ -13,11 +13,11 @@ let
in
stdenv.mkDerivation rec {
pname = "gitkraken";
- version = "6.1.4";
+ version = "6.3.1";
src = fetchurl {
url = "https://release.axocdn.com/linux/GitKraken-v${version}.deb";
- sha256 = "10m6pwdwdxj6x64bc7mrvlvwkgqrd5prh9xx7xhvbz55q6gx4vdr";
+ sha256 = "071i3z6jym6f5nfy2mq36m45jywpk53w1vpzr2n599pabdkavj89";
};
libPath = makeLibraryPath [
@@ -69,8 +69,8 @@ stdenv.mkDerivation rec {
comment = "Graphical Git client from Axosoft";
};
- nativeBuildInputs = [ makeWrapper wrapGAppsHook ];
- buildInputs = [ dpkg gtk3 gnome3.adwaita-icon-theme hicolor-icon-theme ];
+ nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook ];
+ buildInputs = [ gtk3 gnome3.adwaita-icon-theme ];
unpackCmd = ''
mkdir out
@@ -78,6 +78,7 @@ stdenv.mkDerivation rec {
'';
installPhase = ''
+ runHook preInstall
mkdir $out
pushd usr
pushd share
@@ -89,6 +90,7 @@ stdenv.mkDerivation rec {
popd
ln -s $out/share/gitkraken/gitkraken $out/bin/gitkraken
+ runHook postInstall
'';
postFixup = ''
diff --git a/pkgs/applications/version-management/gitlab/data.json b/pkgs/applications/version-management/gitlab/data.json
index d20236e9f5b..42cc127e40d 100644
--- a/pkgs/applications/version-management/gitlab/data.json
+++ b/pkgs/applications/version-management/gitlab/data.json
@@ -1,32 +1,13 @@
{
- "ce": {
- "version": "12.1.6",
- "repo_hash": "0zyqxzyb1m8qa94iiyqf5ivqxrg60y378r94fsixy17fbh4y7sa6",
- "deb_hash": "14bwcmwar44pjnjr6fdn2h9y92vyfva0kb76d4pz8pqc9pfm2hmg",
- "deb_url": "https://packages.gitlab.com/gitlab/gitlab-ce/packages/debian/stretch/gitlab-ce_12.1.6-ce.0_amd64.deb/download.deb",
- "owner": "gitlab-org",
- "repo": "gitlab-ce",
- "rev": "v12.1.6",
- "passthru": {
- "GITALY_SERVER_VERSION": "1.53.2",
- "GITLAB_PAGES_VERSION": "1.7.1",
- "GITLAB_SHELL_VERSION": "9.3.0",
- "GITLAB_WORKHORSE_VERSION": "8.7.0"
- }
- },
- "ee": {
- "version": "12.1.6",
- "repo_hash": "1lxci1hwcccgw567c5733yl95xsxr4gnw41m48igdw9y8p6g7zbc",
- "deb_hash": "0yjilhf4bjhl1a596x6n4cvjklfbrwhymslhx977nfjazfb5slx3",
- "deb_url": "https://packages.gitlab.com/gitlab/gitlab-ee/packages/debian/stretch/gitlab-ee_12.1.6-ee.0_amd64.deb/download.deb",
- "owner": "gitlab-org",
- "repo": "gitlab-ee",
- "rev": "v12.1.6-ee",
- "passthru": {
- "GITALY_SERVER_VERSION": "1.53.2",
- "GITLAB_PAGES_VERSION": "1.7.1",
- "GITLAB_SHELL_VERSION": "9.3.0",
- "GITLAB_WORKHORSE_VERSION": "8.7.0"
- }
+ "version": "12.4.2",
+ "repo_hash": "00y8n0y7wydwxq62fyf7hcpx90zz5sw458m2773lz7pdgnpnrdc2",
+ "owner": "gitlab-org",
+ "repo": "gitlab",
+ "rev": "v12.4.2-ee",
+ "passthru": {
+ "GITALY_SERVER_VERSION": "1.67.0",
+ "GITLAB_PAGES_VERSION": "1.11.0",
+ "GITLAB_SHELL_VERSION": "10.2.0",
+ "GITLAB_WORKHORSE_VERSION": "8.14.0"
}
}
\ No newline at end of file
diff --git a/pkgs/applications/version-management/gitlab/default.nix b/pkgs/applications/version-management/gitlab/default.nix
index fb18fb7941e..545894cc1e5 100644
--- a/pkgs/applications/version-management/gitlab/default.nix
+++ b/pkgs/applications/version-management/gitlab/default.nix
@@ -1,13 +1,24 @@
{ stdenv, lib, fetchurl, fetchFromGitLab, bundlerEnv
-, ruby, tzdata, git, nettools, nixosTests
-, gitlabEnterprise ? false
+, ruby, tzdata, git, nettools, nixosTests, nodejs
+, gitlabEnterprise ? false, callPackage, yarn
+, fixup_yarn_lock, replace
}:
let
+ data = (builtins.fromJSON (builtins.readFile ./data.json));
+
+ version = data.version;
+ src = fetchFromGitLab {
+ owner = data.owner;
+ repo = data.repo;
+ rev = data.rev;
+ sha256 = data.repo_hash;
+ };
+
rubyEnv = bundlerEnv rec {
name = "gitlab-env-${version}";
inherit ruby;
- gemdir = ./rubyEnv- + (if gitlabEnterprise then "ee" else "ce");
+ gemdir = ./rubyEnv;
gemset =
let x = import (gemdir + "/gemset.nix");
in x // {
@@ -19,35 +30,71 @@ let
};
};
groups = [
- "default" "unicorn" "ed25519" "metrics" "development" "puma" "test"
+ "default" "unicorn" "ed25519" "metrics" "development" "puma" "test" "kerberos"
];
# N.B. omniauth_oauth2_generic and apollo_upload_server both provide a
# `console` executable.
ignoreCollisions = true;
};
- flavour = if gitlabEnterprise then "ee" else "ce";
- data = (builtins.fromJSON (builtins.readFile ./data.json)).${flavour};
+ yarnOfflineCache = (callPackage ./yarnPkgs.nix {}).offline_cache;
- version = data.version;
- sources = {
- gitlab = fetchFromGitLab {
- owner = data.owner;
- repo = data.repo;
- rev = data.rev;
- sha256 = data.repo_hash;
- };
- gitlabDeb = fetchurl {
- url = data.deb_url;
- sha256 = data.deb_hash;
- };
+ assets = stdenv.mkDerivation {
+ pname = "gitlab-assets";
+ inherit version src;
+
+ nativeBuildInputs = [ rubyEnv.wrappedRuby rubyEnv.bundler nodejs yarn ];
+
+ configurePhase = ''
+ runHook preConfigure
+
+ # Some rake tasks try to run yarn automatically, which won't work
+ rm lib/tasks/yarn.rake
+
+ # The rake tasks won't run without a basic configuration in place
+ mv config/database.yml.env config/database.yml
+ mv config/gitlab.yml.example config/gitlab.yml
+
+ # Yarn and bundler wants a real home directory to write cache, config, etc to
+ export HOME=$NIX_BUILD_TOP/fake_home
+
+ # Make yarn install packages from our offline cache, not the registry
+ yarn config --offline set yarn-offline-mirror ${yarnOfflineCache}
+
+ # Fixup "resolved"-entries in yarn.lock to match our offline cache
+ ${fixup_yarn_lock}/bin/fixup_yarn_lock yarn.lock
+
+ yarn install --offline --frozen-lockfile --ignore-scripts --no-progress --non-interactive
+
+ patchShebangs node_modules/
+
+ runHook postConfigure
+ '';
+
+ buildPhase = ''
+ runHook preBuild
+
+ bundle exec rake gettext:po_to_json RAILS_ENV=production NODE_ENV=production
+ bundle exec rake rake:assets:precompile RAILS_ENV=production NODE_ENV=production
+ bundle exec rake webpack:compile RAILS_ENV=production NODE_ENV=production NODE_OPTIONS="--max_old_space_size=2048"
+ bundle exec rake gitlab:assets:fix_urls RAILS_ENV=production NODE_ENV=production
+
+ runHook postBuild
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ mv public/assets $out
+
+ runHook postInstall
+ '';
};
in
-
stdenv.mkDerivation {
- name = "gitlab${if gitlabEnterprise then "-ee" else ""}-${version}";
+ name = "gitlab${lib.optionalString gitlabEnterprise "-ee"}-${version}";
- src = sources.gitlab;
+ inherit src;
buildInputs = [
rubyEnv rubyEnv.wrappedRuby rubyEnv.bundler tzdata git nettools
@@ -56,40 +103,40 @@ stdenv.mkDerivation {
patches = [ ./remove-hardcoded-locations.patch ];
postPatch = ''
+ ${lib.optionalString (!gitlabEnterprise) ''
+ # Remove all proprietary components
+ rm -rf ee
+ ''}
+
# For reasons I don't understand "bundle exec" ignores the
# RAILS_ENV causing tests to be executed that fail because we're
# not installing development and test gems above. Deleting the
- # tests works though.:
+ # tests works though.
rm lib/tasks/test.rake
rm config/initializers/gitlab_shell_secret_token.rb
sed -i '/ask_to_continue/d' lib/tasks/gitlab/two_factor.rake
sed -ri -e '/log_level/a config.logger = Logger.new(STDERR)' config/environments/production.rb
+
+ # Always require lib-files and application.rb through their store
+ # path, not their relative state directory path. This gets rid of
+ # warnings and means we don't have to link back to lib from the
+ # state directory.
+ ${replace}/bin/replace-literal -f -r -e '../lib' "$out/share/gitlab/lib" config
+ ${replace}/bin/replace-literal -f -r -e "require_relative 'application'" "require_relative '$out/share/gitlab/config/application'" config
'';
buildPhase = ''
- mv config/gitlab.yml.example config/gitlab.yml
-
- # Building this requires yarn, node &c, so we just get it from the deb
- ar p ${sources.gitlabDeb} data.tar.gz | gunzip > gitlab-deb-data.tar
- # Work around unpacking deb containing binary with suid bit
- tar -f gitlab-deb-data.tar --delete ./opt/gitlab/embedded/bin/ksu
- tar -xf gitlab-deb-data.tar
- rm gitlab-deb-data.tar
-
- mv -v opt/gitlab/embedded/service/gitlab-rails/public/assets public
- rm -rf opt # only directory in data.tar.gz
-
- mv config/gitlab.yml config/gitlab.yml.example
rm -f config/secrets.yml
mv config config.dist
+ rm -r tmp
'';
installPhase = ''
- rm -r tmp
mkdir -p $out/share
cp -r . $out/share/gitlab
+ ln -sf ${assets} $out/share/gitlab/public/assets
rm -rf $out/share/gitlab/log
ln -sf /run/gitlab/log $out/share/gitlab/log
ln -sf /run/gitlab/uploads $out/share/gitlab/public/uploads
@@ -102,7 +149,7 @@ stdenv.mkDerivation {
'';
passthru = {
- inherit rubyEnv;
+ inherit rubyEnv assets;
ruby = rubyEnv.wrappedRuby;
GITALY_SERVER_VERSION = data.passthru.GITALY_SERVER_VERSION;
GITLAB_PAGES_VERSION = data.passthru.GITLAB_PAGES_VERSION;
@@ -116,7 +163,7 @@ stdenv.mkDerivation {
meta = with lib; {
homepage = http://www.gitlab.com/;
platforms = platforms.linux;
- maintainers = with maintainers; [ fpletz globin krav ];
+ maintainers = with maintainers; [ fpletz globin krav talyz ];
} // (if gitlabEnterprise then
{
license = licenses.unfreeRedistributable; # https://gitlab.com/gitlab-org/gitlab-ee/raw/master/LICENSE
diff --git a/pkgs/applications/version-management/gitlab/gitaly/Gemfile b/pkgs/applications/version-management/gitlab/gitaly/Gemfile
index 1a6eb99b678..9478dc9a84b 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/Gemfile
+++ b/pkgs/applications/version-management/gitlab/gitaly/Gemfile
@@ -6,8 +6,7 @@ gem 'bundler', '>= 1.17.3'
gem 'rugged', '~> 0.28'
gem 'github-linguist', '~> 6.1', require: 'linguist'
gem 'gitlab-markup', '~> 1.7.0'
-gem 'activesupport', '~> 5.1.7'
-gem 'gitaly-proto', '~> 1.36.0'
+gem 'activesupport', '~> 5.2.3'
gem 'rdoc', '~> 4.2'
gem 'gitlab-gollum-lib', '~> 4.2.7.7', require: false
gem 'gitlab-gollum-rugged_adapter', '~> 0.4.4.2', require: false
@@ -17,7 +16,7 @@ gem 'faraday', '~> 0.12'
gem 'rbtrace', require: false
# Labkit provides observability functionality
-gem 'gitlab-labkit', '~> 0.3.0'
+gem 'gitlab-labkit', '~> 0.5.0'
# Detects the open source license the repository includes
# This version needs to be in sync with GitLab CE/EE
diff --git a/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock b/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
index 0a86273f7cb..cb292af8cc3 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
+++ b/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
@@ -2,20 +2,20 @@ GEM
remote: https://rubygems.org/
specs:
abstract_type (0.0.7)
- actionpack (5.1.7)
- actionview (= 5.1.7)
- activesupport (= 5.1.7)
+ actionpack (5.2.3)
+ actionview (= 5.2.3)
+ activesupport (= 5.2.3)
rack (~> 2.0)
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.0.2)
- actionview (5.1.7)
- activesupport (= 5.1.7)
+ actionview (5.2.3)
+ activesupport (= 5.2.3)
builder (~> 3.1)
erubi (~> 1.4)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.0.3)
- activesupport (5.1.7)
+ activesupport (5.2.3)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 0.7, < 2)
minitest (~> 5.1)
@@ -46,11 +46,9 @@ GEM
activesupport (>= 4.2.0)
faraday (0.15.4)
multipart-post (>= 1.2, < 3)
- ffi (1.10.0)
+ ffi (1.11.1)
gemojione (3.3.0)
json
- gitaly-proto (1.36.0)
- grpc (~> 1.0)
github-linguist (6.4.1)
charlock_holmes (~> 0.7.6)
escape_utils (~> 1.2.0)
@@ -73,12 +71,13 @@ GEM
diff-lcs (~> 1.1)
mime-types (>= 1.16)
posix-spawn (~> 0.3)
- gitlab-labkit (0.3.0)
+ gitlab-labkit (0.5.2)
actionpack (~> 5)
activesupport (~> 5)
- grpc (~> 1.19.0)
+ grpc (~> 1.19)
jaeger-client (~> 0.10)
opentracing (~> 0.4)
+ redis (> 3.0.0, < 5.0.0)
gitlab-markup (1.7.0)
gollum-grit_adapter (1.0.1)
gitlab-grit (~> 2.7, >= 2.7.1)
@@ -111,10 +110,10 @@ GEM
mime-types-data (3.2019.0331)
mini_portile2 (2.4.0)
minitest (5.11.3)
- msgpack (1.2.10)
+ msgpack (1.3.0)
multi_json (1.13.1)
multipart-post (2.0.0)
- nokogiri (1.10.3)
+ nokogiri (1.10.4)
mini_portile2 (~> 2.4.0)
nokogumbo (1.5.0)
nokogiri
@@ -139,7 +138,7 @@ GEM
rails-dom-testing (2.0.3)
activesupport (>= 4.2.0)
nokogiri (>= 1.6)
- rails-html-sanitizer (1.0.4)
+ rails-html-sanitizer (1.2.0)
loofah (~> 2.2, >= 2.2.2)
rainbow (3.0.0)
rbtrace (0.4.11)
@@ -147,7 +146,8 @@ GEM
msgpack (>= 0.4.3)
optimist (>= 3.0.0)
rdoc (4.3.0)
- rouge (3.5.1)
+ redis (4.1.2)
+ rouge (3.11.0)
rspec (3.8.0)
rspec-core (~> 3.8.0)
rspec-expectations (~> 3.8.0)
@@ -175,7 +175,7 @@ GEM
ruby-progressbar (~> 1.7)
unicode-display_width (>= 1.4.0, < 1.7)
ruby-progressbar (1.10.0)
- rugged (0.28.1)
+ rugged (0.28.3.1)
safe_yaml (1.0.5)
sanitize (4.6.6)
crass (~> 1.0.2)
@@ -213,15 +213,14 @@ PLATFORMS
ruby
DEPENDENCIES
- activesupport (~> 5.1.7)
+ activesupport (~> 5.2.3)
bundler (>= 1.17.3)
factory_bot
faraday (~> 0.12)
- gitaly-proto (~> 1.36.0)
github-linguist (~> 6.1)
gitlab-gollum-lib (~> 4.2.7.7)
gitlab-gollum-rugged_adapter (~> 0.4.4.2)
- gitlab-labkit (~> 0.3.0)
+ gitlab-labkit (~> 0.5.0)
gitlab-markup (~> 1.7.0)
google-protobuf (~> 3.7.1)
grpc (~> 1.19.0)
diff --git a/pkgs/applications/version-management/gitlab/gitaly/default.nix b/pkgs/applications/version-management/gitlab/gitaly/default.nix
index 873d9f39090..dd17618dc74 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitaly/default.nix
@@ -17,14 +17,14 @@ let
};
};
in buildGoPackage rec {
- version = "1.53.2";
+ version = "1.67.0";
pname = "gitaly";
src = fetchFromGitLab {
owner = "gitlab-org";
repo = "gitaly";
rev = "v${version}";
- sha256 = "0x4dhqaxx6n5jlcvf69rglxiz11037ghgcnskks6qnlcbkd85j3d";
+ sha256 = "1mj2l15hnxwqmyc8xn79d6qpmpqbqw2ishalr8qvn83nzdsbk8l3";
};
goPackagePath = "gitlab.com/gitlab-org/gitaly";
@@ -40,7 +40,7 @@ in buildGoPackage rec {
postInstall = ''
mkdir -p $ruby
- cp -rv $src/ruby/{bin,lib,git-hooks,gitlab-shell} $ruby
+ cp -rv $src/ruby/{bin,lib,proto,git-hooks,gitlab-shell} $ruby
# gitlab-shell will try to read its config relative to the source
# code by default which doesn't work in nixos because it's a
@@ -53,8 +53,9 @@ in buildGoPackage rec {
outputs = [ "bin" "out" "ruby" ];
meta = with stdenv.lib; {
- homepage = http://www.gitlab.com/;
- platforms = platforms.unix;
+ homepage = https://gitlab.com/gitlab-org/gitaly;
+ description = "A Git RPC service for handling all the git calls made by GitLab";
+ platforms = platforms.linux;
maintainers = with maintainers; [ roblabla globin fpletz ];
license = licenses.mit;
};
diff --git a/pkgs/applications/version-management/gitlab/gitaly/deps.nix b/pkgs/applications/version-management/gitlab/gitaly/deps.nix
index 5522185783d..34c30f71054 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/deps.nix
+++ b/pkgs/applications/version-management/gitlab/gitaly/deps.nix
@@ -477,15 +477,6 @@
sha256 = "113fwpn80ylx970w8h7nfqnhh18dpx1jadbk7rbr8k68q4di4y0q";
};
}
- {
- goPackagePath = "gitlab.com/gitlab-org/gitaly-proto";
- fetch = {
- type = "git";
- url = "https://gitlab.com/gitlab-org/gitaly-proto.git";
- rev = "v1.36.0";
- sha256 = "0xma8ys3lf1bdhlkmcis31xs1h1dshcr5796wwfwnzijwk6422m3";
- };
- }
{
goPackagePath = "gitlab.com/gitlab-org/labkit";
fetch = {
@@ -509,8 +500,8 @@
fetch = {
type = "git";
url = "https://go.googlesource.com/crypto";
- rev = "c2843e01d9a2";
- sha256 = "01xgxbj5r79nmisdvpq48zfy8pzaaj90bn6ngd4nf33j9ar1dp8r";
+ rev = "20be4c3c3ed5";
+ sha256 = "1ph7y8v30hc95h1dwr7vrhg1nzs47a261qin6zg8mhf12g5k2lxb";
};
}
{
@@ -554,8 +545,8 @@
fetch = {
type = "git";
url = "https://go.googlesource.com/sys";
- rev = "d0b11bdaac8a";
- sha256 = "18yfsmw622l7gc5sqriv5qmck6903vvhivpzp8i3xfy3z33dybdl";
+ rev = "953cdadca894";
+ sha256 = "0gkha4whk8xkcv3isigbs250akag99isxnd3v9xmy0kl3g88hxy1";
};
}
{
diff --git a/pkgs/applications/version-management/gitlab/gitaly/gemset.nix b/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
index fd1af22dd78..a5140972ef0 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
+++ b/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
@@ -13,10 +13,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0zyi3dc50ii2msdkawaf11y4xw645ig57ha2jfnr8lpr8s1nlh52";
+ sha256 = "1s2iay17i2k0xx36cmnpbrmr5w6x70jk7fq1d8w70xcdw5chm0w1";
type = "gem";
};
- version = "5.1.7";
+ version = "5.2.3";
};
actionview = {
dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
@@ -24,10 +24,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0i2j580njb767yhf0k5ih3qqg38ybiah80ai8dsr6kjjw35aj747";
+ sha256 = "1v49rgf8305grqf6gq7qa47qhamr369igyy0giycz60x86afyr4h";
type = "gem";
};
- version = "5.1.7";
+ version = "5.2.3";
};
activesupport = {
dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
@@ -35,10 +35,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0znhiy90hdlx66jqhaycin4qrphrymsw68c36a1an7g481zvfv91";
+ sha256 = "110vp4frgkw3mpzlmshg2f2ig09cknls2w68ym1r1s39d01v0mi8";
type = "gem";
};
- version = "5.1.7";
+ version = "5.2.3";
};
adamantium = {
dependencies = ["ice_nine" "memoizable"];
@@ -205,12 +205,14 @@
version = "0.15.4";
};
ffi = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0j8pzj8raxbir5w5k6s7a042sb5k02pg0f8s4na1r5lan901j00p";
+ sha256 = "06mvxpjply8qh4j3fj9wh08kdzwkbnvsiysh0vrhlk5cwxzjmblh";
type = "gem";
};
- version = "1.10.0";
+ version = "1.11.1";
};
gemojione = {
dependencies = ["json"];
@@ -221,17 +223,6 @@
};
version = "3.3.0";
};
- gitaly-proto = {
- dependencies = ["grpc"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "11bkrf2z5ppp55cipawdpinrva42x12grp2gl1dp1jdb35crqick";
- type = "gem";
- };
- version = "1.36.0";
- };
github-linguist = {
dependencies = ["charlock_holmes" "escape_utils" "mime-types" "rugged"];
groups = ["default"];
@@ -283,15 +274,15 @@
version = "2.8.2";
};
gitlab-labkit = {
- dependencies = ["actionpack" "activesupport" "grpc" "jaeger-client" "opentracing"];
+ dependencies = ["actionpack" "activesupport" "grpc" "jaeger-client" "opentracing" "redis"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0dvapmdc9axm9dq2gg89qrqb318rkrsabpyybrqvcx1ipbi5k3a1";
+ sha256 = "1j06gl4ksd83rycg3fb46bb77iw74i1ivs5li6pyf5klrxjq8k3h";
type = "gem";
};
- version = "0.3.0";
+ version = "0.5.2";
};
gitlab-markup = {
groups = ["default"];
@@ -489,10 +480,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1w38hilm3dk42dwk8ygiq49bl4in7y80hfqr63hk54mj4gmzi6ch";
+ sha256 = "1186lhwnxiw5ryv6dbxrsfy0fajfll2l95kf9pmca50iyiqi86zn";
type = "gem";
};
- version = "1.2.10";
+ version = "1.3.0";
};
multi_json = {
source = {
@@ -516,10 +507,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "02bjydih0j515szfv9mls195cvpyidh6ixm7dwbl3s2sbaxxk5s4";
+ sha256 = "0nmdrqqz1gs0fwkgzxjl4wr554gr8dc1fkrqjc2jpsvwgm41rygv";
type = "gem";
};
- version = "1.10.3";
+ version = "1.10.4";
};
nokogumbo = {
dependencies = ["nokogiri"];
@@ -649,10 +640,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1gv7vr5d9g2xmgpjfq4nxsqr70r9pr042r9ycqqnfvw5cz9c7jwr";
+ sha256 = "0ilwxzm3a7bql5c9q2n9g9nb1hax7vd8d65a5yp3d967ld97nvrq";
type = "gem";
};
- version = "1.0.4";
+ version = "1.2.0";
};
rainbow = {
source = {
@@ -679,15 +670,25 @@
};
version = "4.3.0";
};
+ redis = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1mymdx7s5sr4mablklaipz679ckczsiigswm1g2v5mc93yj5amw3";
+ type = "gem";
+ };
+ version = "4.1.2";
+ };
rouge = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0yfhazlhjc4abgzhkgq8zqmdphvkh52211widkl4zhsbhqh8wg2q";
+ sha256 = "1zsyv6abqrk7lpql5f1ja4m88bfy9qndi8xykpss6cpvjdmi3ydb";
type = "gem";
};
- version = "3.5.1";
+ version = "3.11.0";
};
rspec = {
dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
@@ -778,10 +779,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1yiszpz6y13vvgh3fss1l0ipp0zgsbbc8c28vynnpdyx1sy6krp6";
+ sha256 = "03w3k7j27kgzpcc3halkd3w0b677sny2lfwm2lwn2n1ac20dzjc6";
type = "gem";
};
- version = "0.28.1";
+ version = "0.28.3.1";
};
safe_yaml = {
groups = ["default" "development" "test"];
diff --git a/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix b/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
index cd4784b36c8..2a83cbe5f3c 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
@@ -1,47 +1,32 @@
-{ stdenv, ruby, bundler, fetchFromGitLab, go }:
-
-stdenv.mkDerivation rec {
- version = "9.3.0";
- pname = "gitlab-shell";
+{ stdenv, fetchFromGitLab, buildGoPackage, ruby }:
+buildGoPackage rec {
+ pname = "gitlab-shell-go";
+ version = "10.2.0";
src = fetchFromGitLab {
owner = "gitlab-org";
repo = "gitlab-shell";
rev = "v${version}";
- sha256 = "1r000h4sgplx7giqvqs5iy0zh3drf6qa1iiq0mxlk3h9fshs1348";
+ sha256 = "1mpzsdqd8mlsh8wccz4s8415w080z55lnifn7l7vd5rflpnyfhcj";
};
- buildInputs = [ ruby bundler go ];
+ buildInputs = [ ruby ];
patches = [ ./remove-hardcoded-locations.patch ];
- installPhase = ''
- export GOCACHE="$TMPDIR/go-cache"
+ goPackagePath = "gitlab.com/gitlab-org/gitlab-shell";
+ goDeps = ./deps.nix;
- ruby bin/compile
- mkdir -p $out/
- cp -R . $out/
-
- # Nothing to install ATM for non-development but keeping the
- # install command anyway in case that changes in the future:
- export HOME=$(pwd)
- bundle install -j4 --verbose --local --deployment --without development test
- '';
-
- # gitlab-shell will try to read its config relative to the source
- # code by default which doesn't work in nixos because it's a
- # read-only filesystem
- postPatch = ''
- substituteInPlace lib/gitlab_config.rb --replace \
- "File.join(ROOT_PATH, 'config.yml')" \
- "'/run/gitlab/shell-config.yml'"
+ postInstall = ''
+ cp -r "$NIX_BUILD_TOP/go/src/$goPackagePath"/bin/* $bin/bin
+ cp -r "$NIX_BUILD_TOP/go/src/$goPackagePath"/{support,VERSION} $bin/
'';
meta = with stdenv.lib; {
description = "SSH access and repository management app for GitLab";
homepage = http://www.gitlab.com/;
- platforms = platforms.unix;
- maintainers = with maintainers; [ fpletz globin ];
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ fpletz globin talyz ];
license = licenses.mit;
};
}
diff --git a/pkgs/applications/version-management/gitlab/gitlab-shell/deps.nix b/pkgs/applications/version-management/gitlab/gitlab-shell/deps.nix
new file mode 100644
index 00000000000..5b5d0b99bcf
--- /dev/null
+++ b/pkgs/applications/version-management/gitlab/gitlab-shell/deps.nix
@@ -0,0 +1,705 @@
+# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
+[
+ {
+ goPackagePath = "bou.ke/monkey";
+ fetch = {
+ type = "git";
+ url = "https://github.com/bouk/monkey";
+ rev = "v1.0.1";
+ sha256 = "050y07pwx5zk7fchp0lhf35w417sml7lxkkzly8f932fy25rydz5";
+ };
+ }
+ {
+ goPackagePath = "cloud.google.com/go";
+ fetch = {
+ type = "git";
+ url = "https://code.googlesource.com/gocloud";
+ rev = "v0.26.0";
+ sha256 = "149v3ci17g6wd2pm18mzcncq5qpl9hwdjnz3rlbn5rfidyn46la1";
+ };
+ }
+ {
+ goPackagePath = "github.com/BurntSushi/toml";
+ fetch = {
+ type = "git";
+ url = "https://github.com/BurntSushi/toml";
+ rev = "v0.3.1";
+ sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
+ };
+ }
+ {
+ goPackagePath = "github.com/alecthomas/template";
+ fetch = {
+ type = "git";
+ url = "https://github.com/alecthomas/template";
+ rev = "a0175ee3bccc";
+ sha256 = "0qjgvvh26vk1cyfq9fadyhfgdj36f1iapbmr5xp6zqipldz8ffxj";
+ };
+ }
+ {
+ goPackagePath = "github.com/alecthomas/units";
+ fetch = {
+ type = "git";
+ url = "https://github.com/alecthomas/units";
+ rev = "2efee857e7cf";
+ sha256 = "1j65b91qb9sbrml9cpabfrcf07wmgzzghrl7809hjjhrmbzri5bl";
+ };
+ }
+ {
+ goPackagePath = "github.com/beorn7/perks";
+ fetch = {
+ type = "git";
+ url = "https://github.com/beorn7/perks";
+ rev = "v1.0.0";
+ sha256 = "1i1nz1f6g55xi2y3aiaz5kqfgvknarbfl4f0sx4nyyb4s7xb1z9x";
+ };
+ }
+ {
+ goPackagePath = "github.com/certifi/gocertifi";
+ fetch = {
+ type = "git";
+ url = "https://github.com/certifi/gocertifi";
+ rev = "ee1a9a0726d2";
+ sha256 = "08l6lqaw83pva6fa0aafmhmy1mhb145av21772zfh3ij809a37i4";
+ };
+ }
+ {
+ goPackagePath = "github.com/client9/misspell";
+ fetch = {
+ type = "git";
+ url = "https://github.com/client9/misspell";
+ rev = "v0.3.4";
+ sha256 = "1vwf33wsc4la25zk9nylpbp9px3svlmldkm0bha4hp56jws4q9cs";
+ };
+ }
+ {
+ goPackagePath = "github.com/cloudflare/tableflip";
+ fetch = {
+ type = "git";
+ url = "https://github.com/cloudflare/tableflip";
+ rev = "8392f1641731";
+ sha256 = "0by5hk8s0bhhl3kiw658p5g53zvc61k4q2wxnh1w64p5ghd1rfn8";
+ };
+ }
+ {
+ goPackagePath = "github.com/codahale/hdrhistogram";
+ fetch = {
+ type = "git";
+ url = "https://github.com/codahale/hdrhistogram";
+ rev = "3a0bb77429bd";
+ sha256 = "1zampgfjbxy192cbwdi7g86l1idxaam96d834wncnpfdwgh5kl57";
+ };
+ }
+ {
+ 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/fsnotify/fsnotify";
+ fetch = {
+ type = "git";
+ url = "https://github.com/fsnotify/fsnotify";
+ rev = "v1.4.7";
+ sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
+ };
+ }
+ {
+ goPackagePath = "github.com/getsentry/raven-go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/getsentry/raven-go";
+ rev = "v0.1.2";
+ sha256 = "1dl80kar4lzdcfl3w6jssi1ld6bv0rmx6sp6bz6rzysfr9ilm02z";
+ };
+ }
+ {
+ goPackagePath = "github.com/go-kit/kit";
+ fetch = {
+ type = "git";
+ url = "https://github.com/go-kit/kit";
+ rev = "v0.8.0";
+ sha256 = "1rcywbc2pvab06qyf8pc2rdfjv7r6kxdv2v4wnpqnjhz225wqvc0";
+ };
+ }
+ {
+ goPackagePath = "github.com/go-logfmt/logfmt";
+ fetch = {
+ type = "git";
+ url = "https://github.com/go-logfmt/logfmt";
+ rev = "v0.3.0";
+ sha256 = "1gkgh3k5w1xwb2qbjq52p6azq3h1c1rr6pfwjlwj1zrijpzn2xb9";
+ };
+ }
+ {
+ goPackagePath = "github.com/go-stack/stack";
+ fetch = {
+ type = "git";
+ url = "https://github.com/go-stack/stack";
+ rev = "v1.8.0";
+ sha256 = "0wk25751ryyvxclyp8jdk5c3ar0cmfr8lrjb66qbg4808x66b96v";
+ };
+ }
+ {
+ goPackagePath = "github.com/gogo/protobuf";
+ fetch = {
+ type = "git";
+ url = "https://github.com/gogo/protobuf";
+ rev = "v1.1.1";
+ sha256 = "1525pq7r6h3s8dncvq8gxi893p2nq8dxpzvq0nfl5b4p6mq0v1c2";
+ };
+ }
+ {
+ goPackagePath = "github.com/golang/glog";
+ fetch = {
+ type = "git";
+ url = "https://github.com/golang/glog";
+ rev = "23def4e6c14b";
+ sha256 = "0jb2834rw5sykfr937fxi8hxi2zy80sj2bdn9b3jb4b26ksqng30";
+ };
+ }
+ {
+ goPackagePath = "github.com/golang/mock";
+ fetch = {
+ type = "git";
+ url = "https://github.com/golang/mock";
+ rev = "v1.1.1";
+ sha256 = "0ap8wb6pdl6ccmdb43advjll2ly4sz26wsc3axw0hbrjrybybzgy";
+ };
+ }
+ {
+ goPackagePath = "github.com/golang/protobuf";
+ fetch = {
+ type = "git";
+ url = "https://github.com/golang/protobuf";
+ rev = "v1.3.2";
+ sha256 = "1k1wb4zr0qbwgpvz9q5ws9zhlal8hq7dmq62pwxxriksayl6hzym";
+ };
+ }
+ {
+ goPackagePath = "github.com/google/go-cmp";
+ fetch = {
+ type = "git";
+ url = "https://github.com/google/go-cmp";
+ rev = "v0.2.0";
+ sha256 = "1fbv0x27k9sn8svafc0hjwsnckk864lv4yi7bvzrxvmd3d5hskds";
+ };
+ }
+ {
+ goPackagePath = "github.com/google/uuid";
+ fetch = {
+ type = "git";
+ url = "https://github.com/google/uuid";
+ rev = "v1.1.1";
+ sha256 = "0hfxcf9frkb57k6q0rdkrmnfs78ms21r1qfk9fhlqga2yh5xg8zb";
+ };
+ }
+ {
+ goPackagePath = "github.com/grpc-ecosystem/go-grpc-middleware";
+ fetch = {
+ type = "git";
+ url = "https://github.com/grpc-ecosystem/go-grpc-middleware";
+ rev = "v1.0.0";
+ sha256 = "0lwgxih021xfhfb1xb9la5f98bpgpaiz63sbllx77qwwl2rmhrsp";
+ };
+ }
+ {
+ goPackagePath = "github.com/grpc-ecosystem/go-grpc-prometheus";
+ fetch = {
+ type = "git";
+ url = "https://github.com/grpc-ecosystem/go-grpc-prometheus";
+ rev = "v1.2.0";
+ sha256 = "1lzk54h7np32b3acidg1ggbn8ppbnns0m71gcg9d1qkkdh8zrijl";
+ };
+ }
+ {
+ goPackagePath = "github.com/hpcloud/tail";
+ fetch = {
+ type = "git";
+ url = "https://github.com/hpcloud/tail";
+ rev = "v1.0.0";
+ sha256 = "1njpzc0pi1acg5zx9y6vj9xi6ksbsc5d387rd6904hy6rh2m6kn0";
+ };
+ }
+ {
+ goPackagePath = "github.com/json-iterator/go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/json-iterator/go";
+ rev = "v1.1.6";
+ sha256 = "08caswxvdn7nvaqyj5kyny6ghpygandlbw9vxdj7l5vkp7q0s43r";
+ };
+ }
+ {
+ goPackagePath = "github.com/julienschmidt/httprouter";
+ fetch = {
+ type = "git";
+ url = "https://github.com/julienschmidt/httprouter";
+ rev = "v1.2.0";
+ sha256 = "1k8bylc9s4vpvf5xhqh9h246dl1snxrzzz0614zz88cdh8yzs666";
+ };
+ }
+ {
+ goPackagePath = "github.com/kelseyhightower/envconfig";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kelseyhightower/envconfig";
+ rev = "v1.3.0";
+ sha256 = "1zcq480ig7wbg4378qcfxznp2gzqmk7x6rbxizflvg9v2f376vrw";
+ };
+ }
+ {
+ goPackagePath = "github.com/konsorten/go-windows-terminal-sequences";
+ fetch = {
+ type = "git";
+ url = "https://github.com/konsorten/go-windows-terminal-sequences";
+ rev = "v1.0.1";
+ sha256 = "1lchgf27n276vma6iyxa0v1xds68n2g8lih5lavqnx5x6q5pw2ip";
+ };
+ }
+ {
+ goPackagePath = "github.com/kr/logfmt";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kr/logfmt";
+ rev = "b84e30acd515";
+ sha256 = "02ldzxgznrfdzvghfraslhgp19la1fczcbzh7wm2zdc6lmpd1qq9";
+ };
+ }
+ {
+ goPackagePath = "github.com/libgit2/git2go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/libgit2/git2go";
+ rev = "ecaeb7a21d47";
+ sha256 = "14r7ryff93r49g94f6kg66xc0y6rwb31lj22s3qmzmlgywk0pgvr";
+ };
+ }
+ {
+ goPackagePath = "github.com/lightstep/lightstep-tracer-go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/lightstep/lightstep-tracer-go";
+ rev = "v0.15.6";
+ sha256 = "10n5r66g44s6rnz5kf86s4a3p1g55kc1kxqhnk7bx7mlayndgpmb";
+ };
+ }
+ {
+ goPackagePath = "github.com/mattn/go-shellwords";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-shellwords";
+ rev = "2444a32a19f4";
+ sha256 = "08zcgr1az1n8zaxzwdd205j86hczgyc52nxfnw5avpw7rrkf7v0d";
+ };
+ }
+ {
+ goPackagePath = "github.com/matttproud/golang_protobuf_extensions";
+ fetch = {
+ type = "git";
+ url = "https://github.com/matttproud/golang_protobuf_extensions";
+ rev = "v1.0.1";
+ sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya";
+ };
+ }
+ {
+ goPackagePath = "github.com/modern-go/concurrent";
+ fetch = {
+ type = "git";
+ url = "https://github.com/modern-go/concurrent";
+ rev = "bacd9c7ef1dd";
+ sha256 = "0s0fxccsyb8icjmiym5k7prcqx36hvgdwl588y0491gi18k5i4zs";
+ };
+ }
+ {
+ goPackagePath = "github.com/modern-go/reflect2";
+ fetch = {
+ type = "git";
+ url = "https://github.com/modern-go/reflect2";
+ rev = "v1.0.1";
+ sha256 = "06a3sablw53n1dqqbr2f53jyksbxdmmk8axaas4yvnhyfi55k4lf";
+ };
+ }
+ {
+ goPackagePath = "github.com/mwitkow/go-conntrack";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mwitkow/go-conntrack";
+ rev = "cc309e4a2223";
+ sha256 = "0nbrnpk7bkmqg9mzwsxlm0y8m7s9qd9phr1q30qlx2qmdmz7c1mf";
+ };
+ }
+ {
+ goPackagePath = "github.com/onsi/ginkgo";
+ fetch = {
+ type = "git";
+ url = "https://github.com/onsi/ginkgo";
+ rev = "v1.7.0";
+ sha256 = "14wgpdrvpc35rdz3859bz53sc1g4vpr1fysy15wy3ff9gmqs14yg";
+ };
+ }
+ {
+ goPackagePath = "github.com/onsi/gomega";
+ fetch = {
+ type = "git";
+ url = "https://github.com/onsi/gomega";
+ rev = "v1.4.3";
+ sha256 = "1c8rqg5i2hz3snmq7s41yar1zjnzilb0fyiyhkg83v97afcfx79v";
+ };
+ }
+ {
+ goPackagePath = "github.com/opentracing/opentracing-go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/opentracing/opentracing-go";
+ rev = "v1.0.2";
+ sha256 = "0i0ghg94dg8lk05mw5n23983wq04yjvkjmdkc9z5y1f3508938h9";
+ };
+ }
+ {
+ goPackagePath = "github.com/otiai10/copy";
+ fetch = {
+ type = "git";
+ url = "https://github.com/otiai10/copy";
+ rev = "v1.0.1";
+ sha256 = "0xmy0kfcx48q10s040579pcjswfaxlwhv7a2z07z9r92fdrgw03k";
+ };
+ }
+ {
+ goPackagePath = "github.com/otiai10/curr";
+ fetch = {
+ type = "git";
+ url = "https://github.com/otiai10/curr";
+ rev = "f5a3d24e5776";
+ sha256 = "01k33ifs9n0pnhwhbfb9ws3q5sa37fi7dhir5vjakpfzdin07y4w";
+ };
+ }
+ {
+ goPackagePath = "github.com/otiai10/mint";
+ fetch = {
+ type = "git";
+ url = "https://github.com/otiai10/mint";
+ rev = "v1.2.4";
+ sha256 = "1mf7b8h3akxbpj1rf3nk0ccqk5idd6z2gh9gm31phr7ll4gykn2m";
+ };
+ }
+ {
+ goPackagePath = "github.com/philhofer/fwd";
+ fetch = {
+ type = "git";
+ url = "https://github.com/philhofer/fwd";
+ rev = "v1.0.0";
+ sha256 = "1pg84khadh79v42y8sjsdgfb54vw2kzv7hpapxkifgj0yvcp30g2";
+ };
+ }
+ {
+ goPackagePath = "github.com/pkg/errors";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pkg/errors";
+ rev = "v0.8.0";
+ sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
+ };
+ }
+ {
+ 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/prometheus/client_golang";
+ fetch = {
+ type = "git";
+ url = "https://github.com/prometheus/client_golang";
+ rev = "v1.0.0";
+ sha256 = "1f03ndyi3jq7zdxinnvzimz3s4z2374r6dikkc8i42xzb6d1bli6";
+ };
+ }
+ {
+ goPackagePath = "github.com/prometheus/client_model";
+ fetch = {
+ type = "git";
+ url = "https://github.com/prometheus/client_model";
+ rev = "fd36f4220a90";
+ sha256 = "1bs5d72k361llflgl94c22n0w53j30rsfh84smgk8mbjbcmjsaa5";
+ };
+ }
+ {
+ goPackagePath = "github.com/prometheus/common";
+ fetch = {
+ type = "git";
+ url = "https://github.com/prometheus/common";
+ rev = "v0.4.1";
+ sha256 = "0sf4sjdckblz1hqdfvripk3zyp8xq89w7q75kbsyg4c078af896s";
+ };
+ }
+ {
+ goPackagePath = "github.com/prometheus/procfs";
+ fetch = {
+ type = "git";
+ url = "https://github.com/prometheus/procfs";
+ rev = "v0.0.2";
+ sha256 = "0s7pvs7fgnfpmym3cd0k219av321h9sf3yvdlnn3qy0ps280lg7k";
+ };
+ }
+ {
+ goPackagePath = "github.com/sirupsen/logrus";
+ fetch = {
+ type = "git";
+ url = "https://github.com/sirupsen/logrus";
+ rev = "v1.2.0";
+ sha256 = "0r6334x2bls8ddznvzaldx4g88msjjns4mlks95rqrrg7h0ijigg";
+ };
+ }
+ {
+ goPackagePath = "github.com/stretchr/objx";
+ fetch = {
+ type = "git";
+ url = "https://github.com/stretchr/objx";
+ rev = "v0.1.1";
+ sha256 = "0iph0qmpyqg4kwv8jsx6a56a7hhqq8swrazv40ycxk9rzr0s8yls";
+ };
+ }
+ {
+ goPackagePath = "github.com/stretchr/testify";
+ fetch = {
+ type = "git";
+ url = "https://github.com/stretchr/testify";
+ rev = "v1.3.0";
+ sha256 = "0wjchp2c8xbgcbbq32w3kvblk6q6yn533g78nxl6iskq6y95lxsy";
+ };
+ }
+ {
+ goPackagePath = "github.com/tinylib/msgp";
+ fetch = {
+ type = "git";
+ url = "https://github.com/tinylib/msgp";
+ rev = "v1.1.0";
+ sha256 = "08ha23sn14071ywrgxlyj7r523vzdwx1i83dcp1mqa830glgqaff";
+ };
+ }
+ {
+ goPackagePath = "github.com/uber-go/atomic";
+ fetch = {
+ type = "git";
+ url = "https://github.com/uber-go/atomic";
+ rev = "v1.3.2";
+ sha256 = "11pzvjys5ddjjgrv94pgk9pnip9yyb54z7idf33zk7p7xylpnsv6";
+ };
+ }
+ {
+ goPackagePath = "github.com/uber/jaeger-client-go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/uber/jaeger-client-go";
+ rev = "v2.15.0";
+ sha256 = "0ki23m9zrf3vxp839fnp9ckr4m28y6mpad8g5s5lr5k8jkl0sfwj";
+ };
+ }
+ {
+ goPackagePath = "github.com/uber/jaeger-lib";
+ fetch = {
+ type = "git";
+ url = "https://github.com/uber/jaeger-lib";
+ rev = "v1.5.0";
+ sha256 = "113fwpn80ylx970w8h7nfqnhh18dpx1jadbk7rbr8k68q4di4y0q";
+ };
+ }
+ {
+ goPackagePath = "gitlab.com/gitlab-org/gitaly";
+ fetch = {
+ type = "git";
+ url = "https://gitlab.com/gitlab-org/gitaly.git";
+ rev = "v1.68.0";
+ sha256 = "06w2qx9r7wxhpk6a3icqa0l6hr7x2j2k11kni1ksdx1m1100myjb";
+ };
+ }
+ {
+ goPackagePath = "gitlab.com/gitlab-org/labkit";
+ fetch = {
+ type = "git";
+ url = "https://gitlab.com/gitlab-org/labkit.git";
+ rev = "0c3fc7cdd57c";
+ sha256 = "0fpn37v7dhhdgd63v4mq9cna9wdzrsfams13qmjmps3xpdw2wr9i";
+ };
+ }
+ {
+ goPackagePath = "go.uber.org/atomic";
+ fetch = {
+ type = "git";
+ url = "https://github.com/uber-go/atomic";
+ rev = "v1.3.2";
+ sha256 = "11pzvjys5ddjjgrv94pgk9pnip9yyb54z7idf33zk7p7xylpnsv6";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/crypto";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/crypto";
+ rev = "20be4c3c3ed5";
+ sha256 = "1ph7y8v30hc95h1dwr7vrhg1nzs47a261qin6zg8mhf12g5k2lxb";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/lint";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/lint";
+ rev = "d0100b6bd8b3";
+ sha256 = "0b0amr9x4ji66iv9ayfx7zrfx52k1m5g66qfcxkgj80qrb1y2yn7";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/net";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/net";
+ rev = "d28f0bde5980";
+ sha256 = "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/oauth2";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/oauth2";
+ rev = "d2e6202438be";
+ sha256 = "0wbn75fd10485nb93bm4kqldqifdim5xqy4v7r5sdvimvf3fyhn7";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/sync";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/sync";
+ rev = "112230192c58";
+ sha256 = "05i2k43j2d0llq768hg5pf3hb2yhfzp9la1w5wp0rsnnzblr0lfn";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/sys";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/sys";
+ rev = "953cdadca894";
+ sha256 = "0gkha4whk8xkcv3isigbs250akag99isxnd3v9xmy0kl3g88hxy1";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/text";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/text";
+ rev = "v0.3.0";
+ sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/tools";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/tools";
+ rev = "2c0ae7006135";
+ sha256 = "1lsi2ssxajclj3bciz2a41v1vjv768ja3v6wnbyhxy8xphwkp4fk";
+ };
+ }
+ {
+ goPackagePath = "google.golang.org/appengine";
+ fetch = {
+ type = "git";
+ url = "https://github.com/golang/appengine";
+ rev = "v1.1.0";
+ sha256 = "1pz202zszg8f35dk5pfhwgcdi3r6dx1l4yk6x6ly7nb4j45zi96x";
+ };
+ }
+ {
+ goPackagePath = "google.golang.org/genproto";
+ fetch = {
+ type = "git";
+ url = "https://github.com/google/go-genproto";
+ rev = "bd91e49a0898";
+ sha256 = "1f5q04h03q6fksbfkhz13ai5849rkkb8xrmmi7cxs4lzsi6ixkg8";
+ };
+ }
+ {
+ goPackagePath = "google.golang.org/grpc";
+ fetch = {
+ type = "git";
+ url = "https://github.com/grpc/grpc-go";
+ rev = "v1.24.0";
+ sha256 = "0h8mwv74vzcfb7p4ai247x094skxca71vjp4wpj2wzmri0x9p4v6";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/DataDog/dd-trace-go.v1";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/DataDog/dd-trace-go.v1";
+ rev = "v1.9.0";
+ sha256 = "1zfbsmm8fbcwhd6j28q3ijyswn1d3dyhydx3ckqpkkp6qiam3c2j";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/alecthomas/kingpin.v2";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/alecthomas/kingpin.v2";
+ rev = "v2.2.6";
+ sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/check.v1";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/check.v1";
+ rev = "20d25e280405";
+ sha256 = "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/fsnotify.v1";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/fsnotify.v1";
+ rev = "v1.4.7";
+ sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/tomb.v1";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/tomb.v1";
+ rev = "dd632973f1e7";
+ sha256 = "1lqmq1ag7s4b3gc3ddvr792c5xb5k6sfn0cchr3i2s7f1c231zjv";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/yaml.v2";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/yaml.v2";
+ rev = "v2.2.2";
+ sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa";
+ };
+ }
+ {
+ goPackagePath = "honnef.co/go/tools";
+ fetch = {
+ type = "git";
+ url = "https://github.com/dominikh/go-tools";
+ rev = "ea95bdfd59fc";
+ sha256 = "1763nw7pwpzkvzfnm63dgzcgbq9hwmq5l1nffchnhh77vgkaq4ic";
+ };
+ }
+]
diff --git a/pkgs/applications/version-management/gitlab/gitlab-shell/remove-hardcoded-locations.patch b/pkgs/applications/version-management/gitlab/gitlab-shell/remove-hardcoded-locations.patch
index d8337ebb9ea..515a41ad34e 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-shell/remove-hardcoded-locations.patch
+++ b/pkgs/applications/version-management/gitlab/gitlab-shell/remove-hardcoded-locations.patch
@@ -1,5 +1,5 @@
diff --git a/go/internal/config/config.go b/go/internal/config/config.go
-index f951fe6..b422fe3 100644
+index 2231851..c869930 100644
--- a/go/internal/config/config.go
+++ b/go/internal/config/config.go
@@ -3,7 +3,6 @@ package config
@@ -8,9 +8,9 @@ index f951fe6..b422fe3 100644
"net/url"
- "os"
"path"
- "strings"
+ "path/filepath"
-@@ -30,16 +29,13 @@ type Config struct {
+@@ -38,16 +37,13 @@ type Config struct {
}
func New() (*Config, error) {
@@ -28,44 +28,30 @@ index f951fe6..b422fe3 100644
+ return newFromFile("/run/gitlab/shell-config.yml")
}
- func (c *Config) FeatureEnabled(featureName string) bool {
-diff --git a/lib/gitlab_keys.rb b/lib/gitlab_keys.rb
-index 0600a18..c46f2d7 100644
---- a/lib/gitlab_keys.rb
-+++ b/lib/gitlab_keys.rb
-@@ -10,7 +10,7 @@ class GitlabKeys # rubocop:disable Metrics/ClassLength
- attr_accessor :auth_file, :key
+ func newFromFile(filename string) (*Config, error) {
+diff --git a/go/internal/keyline/key_line.go b/go/internal/keyline/key_line.go
+index f92f50b..160e287 100644
+--- a/go/internal/keyline/key_line.go
++++ b/go/internal/keyline/key_line.go
+@@ -36,7 +36,7 @@ func NewPrincipalKeyLine(keyId string, principal string, rootDir string) (*KeyLi
+ }
- def self.command(whatever)
-- "#{ROOT_PATH}/bin/gitlab-shell #{whatever}"
-+ "/run/current-system/sw/bin/gitlab-shell #{whatever}"
+ func (k *KeyLine) ToString() string {
+- command := fmt.Sprintf("%s %s-%s", path.Join(k.RootDir, executable.BinDir, executable.GitlabShell), k.Prefix, k.Id)
++ command := fmt.Sprintf("%s %s-%s", path.Join("/run/current-system/sw/bin", executable.GitlabShell), k.Prefix, k.Id)
+
+ return fmt.Sprintf(`command="%s",%s %s`, command, SshOptions, k.Value)
+ }
+diff --git a/support/gitlab_config.rb b/support/gitlab_config.rb
+index 1416488..90a5f79 100644
+--- a/support/gitlab_config.rb
++++ b/support/gitlab_config.rb
+@@ -4,7 +4,7 @@ class GitlabConfig
+ attr_reader :config
+
+ def initialize
+- @config = YAML.load_file(File.join(ROOT_PATH, 'config.yml'))
++ @config = YAML.load_file('/run/gitlab/shell-config.yml')
end
- def self.command_key(key_id)
-diff --git a/lib/gitlab_shell.rb b/lib/gitlab_shell.rb
-index 2cb76a8..f59ad5e 100644
---- a/lib/gitlab_shell.rb
-+++ b/lib/gitlab_shell.rb
-@@ -190,7 +190,8 @@ class GitlabShell # rubocop:disable Metrics/ClassLength
-
- args = [executable, gitaly_address, json_args]
- # We use 'chdir: ROOT_PATH' to let the next executable know where config.yml is.
-- Kernel.exec(env, *args, unsetenv_others: true, chdir: ROOT_PATH)
-+ # Except we don't, because we're already in the right directory on nixos!
-+ Kernel.exec(env, *args, unsetenv_others: true)
- end
-
- def api
-diff --git a/go/internal/command/fallback/fallback.go b/go/internal/command/fallback/fallback.go
-index 2cb76a8..f59ad5e 100644
---- a/go/internal/command/fallback/fallback.go
-+++ b/go/internal/command/fallback/fallback.go
-@@ -21,7 +21,7 @@
- )
-
- func (c *Command) Execute() error {
-- rubyCmd := filepath.Join(c.RootDir, "bin", RubyProgram)
-+ rubyCmd := filepath.Join("/run/current-system/sw/bin", RubyProgram)
-
- // Ensure rubyArgs[0] is the full path to gitlab-shell-ruby
- rubyArgs := append([]string{rubyCmd}, c.Args[1:]...)
+ def auth_file
diff --git a/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
index 12f354bc2fb..aa8cf7c164c 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
@@ -1,25 +1,36 @@
-{ stdenv, fetchFromGitLab, git, go }:
+{ stdenv, fetchFromGitLab, git, buildGoPackage }:
-stdenv.mkDerivation rec {
+buildGoPackage rec {
pname = "gitlab-workhorse";
- version = "8.7.0";
+ version = "8.14.0";
src = fetchFromGitLab {
owner = "gitlab-org";
repo = "gitlab-workhorse";
rev = "v${version}";
- sha256 = "1zlngc498hnzbxwdjn3ymr0xwrnfgnzzhn9lyf37yfbjl8x28n3z";
+ sha256 = "1cqx75h4x4chjvp72kzbln8qkm5p7p2w7x8bdd99g38kf21wxxaq";
};
- buildInputs = [ git go ];
+ goPackagePath = "gitlab.com/gitlab-org/gitlab-workhorse";
+ goDeps = ./deps.nix;
+ buildInputs = [ git ];
+ buildFlagsArray = "-ldflags=-X main.Version=${version}";
- makeFlags = [ "PREFIX=$(out)" "VERSION=${version}" "GOCACHE=$(TMPDIR)/go-cache" ];
+ # gitlab-workhorse depends on an older version of labkit which
+ # contains old, vendored versions of some packages; gitlab-workhorse
+ # also explicitly depends on newer versions of these libraries,
+ # but buildGoPackage exposes the vendored versions instead,
+ # leading to compilation errors. Since the vendored libraries
+ # aren't used here anyway, we'll just remove them.
+ postConfigure = ''
+ rm -r "$NIX_BUILD_TOP/go/src/gitlab.com/gitlab-org/labkit/vendor"
+ '';
meta = with stdenv.lib; {
homepage = http://www.gitlab.com/;
- platforms = platforms.unix;
- maintainers = with maintainers; [ fpletz globin ];
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ fpletz globin talyz ];
license = licenses.mit;
};
}
diff --git a/pkgs/applications/version-management/gitlab/gitlab-workhorse/deps.nix b/pkgs/applications/version-management/gitlab/gitlab-workhorse/deps.nix
new file mode 100644
index 00000000000..9db1c002f8f
--- /dev/null
+++ b/pkgs/applications/version-management/gitlab/gitlab-workhorse/deps.nix
@@ -0,0 +1,885 @@
+# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
+[
+ {
+ goPackagePath = "cloud.google.com/go";
+ fetch = {
+ type = "git";
+ url = "https://code.googlesource.com/gocloud";
+ rev = "v0.26.0";
+ sha256 = "149v3ci17g6wd2pm18mzcncq5qpl9hwdjnz3rlbn5rfidyn46la1";
+ };
+ }
+ {
+ goPackagePath = "github.com/BurntSushi/toml";
+ fetch = {
+ type = "git";
+ url = "https://github.com/BurntSushi/toml";
+ rev = "v0.3.1";
+ sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
+ };
+ }
+ {
+ goPackagePath = "github.com/FZambia/sentinel";
+ fetch = {
+ type = "git";
+ url = "https://github.com/FZambia/sentinel";
+ rev = "v1.0.0";
+ sha256 = "14cfngdy0n5rg7nrvxg1ydcjd18v0s8h33jx9wkln5ms0d59kfly";
+ };
+ }
+ {
+ goPackagePath = "github.com/alecthomas/template";
+ fetch = {
+ type = "git";
+ url = "https://github.com/alecthomas/template";
+ rev = "a0175ee3bccc";
+ sha256 = "0qjgvvh26vk1cyfq9fadyhfgdj36f1iapbmr5xp6zqipldz8ffxj";
+ };
+ }
+ {
+ goPackagePath = "github.com/alecthomas/units";
+ fetch = {
+ type = "git";
+ url = "https://github.com/alecthomas/units";
+ rev = "2efee857e7cf";
+ sha256 = "1j65b91qb9sbrml9cpabfrcf07wmgzzghrl7809hjjhrmbzri5bl";
+ };
+ }
+ {
+ goPackagePath = "github.com/beorn7/perks";
+ fetch = {
+ type = "git";
+ url = "https://github.com/beorn7/perks";
+ rev = "v1.0.0";
+ sha256 = "1i1nz1f6g55xi2y3aiaz5kqfgvknarbfl4f0sx4nyyb4s7xb1z9x";
+ };
+ }
+ {
+ goPackagePath = "github.com/certifi/gocertifi";
+ fetch = {
+ type = "git";
+ url = "https://github.com/certifi/gocertifi";
+ rev = "ee1a9a0726d2";
+ sha256 = "08l6lqaw83pva6fa0aafmhmy1mhb145av21772zfh3ij809a37i4";
+ };
+ }
+ {
+ goPackagePath = "github.com/client9/misspell";
+ fetch = {
+ type = "git";
+ url = "https://github.com/client9/misspell";
+ rev = "v0.3.4";
+ sha256 = "1vwf33wsc4la25zk9nylpbp9px3svlmldkm0bha4hp56jws4q9cs";
+ };
+ }
+ {
+ goPackagePath = "github.com/client9/reopen";
+ fetch = {
+ type = "git";
+ url = "https://github.com/client9/reopen";
+ rev = "v1.0.0";
+ sha256 = "0f0dpdbmvk7w518c6zjhlmp65y55vvx47x4lq9pgzvcbsvjsf18s";
+ };
+ }
+ {
+ goPackagePath = "github.com/cloudflare/tableflip";
+ fetch = {
+ type = "git";
+ url = "https://github.com/cloudflare/tableflip";
+ rev = "8392f1641731";
+ sha256 = "0by5hk8s0bhhl3kiw658p5g53zvc61k4q2wxnh1w64p5ghd1rfn8";
+ };
+ }
+ {
+ goPackagePath = "github.com/codahale/hdrhistogram";
+ fetch = {
+ type = "git";
+ url = "https://github.com/codahale/hdrhistogram";
+ rev = "3a0bb77429bd";
+ sha256 = "1zampgfjbxy192cbwdi7g86l1idxaam96d834wncnpfdwgh5kl57";
+ };
+ }
+ {
+ 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/dgrijalva/jwt-go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/dgrijalva/jwt-go";
+ rev = "v3.2.0";
+ sha256 = "08m27vlms74pfy5z79w67f9lk9zkx6a9jd68k3c4msxy75ry36mp";
+ };
+ }
+ {
+ goPackagePath = "github.com/fsnotify/fsnotify";
+ fetch = {
+ type = "git";
+ url = "https://github.com/fsnotify/fsnotify";
+ rev = "v1.4.7";
+ sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
+ };
+ }
+ {
+ goPackagePath = "github.com/getsentry/raven-go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/getsentry/raven-go";
+ rev = "v0.1.2";
+ sha256 = "1dl80kar4lzdcfl3w6jssi1ld6bv0rmx6sp6bz6rzysfr9ilm02z";
+ };
+ }
+ {
+ goPackagePath = "github.com/go-kit/kit";
+ fetch = {
+ type = "git";
+ url = "https://github.com/go-kit/kit";
+ rev = "v0.8.0";
+ sha256 = "1rcywbc2pvab06qyf8pc2rdfjv7r6kxdv2v4wnpqnjhz225wqvc0";
+ };
+ }
+ {
+ goPackagePath = "github.com/go-logfmt/logfmt";
+ fetch = {
+ type = "git";
+ url = "https://github.com/go-logfmt/logfmt";
+ rev = "v0.3.0";
+ sha256 = "1gkgh3k5w1xwb2qbjq52p6azq3h1c1rr6pfwjlwj1zrijpzn2xb9";
+ };
+ }
+ {
+ goPackagePath = "github.com/go-stack/stack";
+ fetch = {
+ type = "git";
+ url = "https://github.com/go-stack/stack";
+ rev = "v1.8.0";
+ sha256 = "0wk25751ryyvxclyp8jdk5c3ar0cmfr8lrjb66qbg4808x66b96v";
+ };
+ }
+ {
+ goPackagePath = "github.com/gogo/protobuf";
+ fetch = {
+ type = "git";
+ url = "https://github.com/gogo/protobuf";
+ rev = "v1.1.1";
+ sha256 = "1525pq7r6h3s8dncvq8gxi893p2nq8dxpzvq0nfl5b4p6mq0v1c2";
+ };
+ }
+ {
+ goPackagePath = "github.com/golang/gddo";
+ fetch = {
+ type = "git";
+ url = "https://github.com/golang/gddo";
+ rev = "af0f2af80721";
+ sha256 = "0ja0xwgg31i2fyqn0b9sf1rjsqkw34kwrr0k0iczzn19mhhc3m7j";
+ };
+ }
+ {
+ goPackagePath = "github.com/golang/glog";
+ fetch = {
+ type = "git";
+ url = "https://github.com/golang/glog";
+ rev = "23def4e6c14b";
+ sha256 = "0jb2834rw5sykfr937fxi8hxi2zy80sj2bdn9b3jb4b26ksqng30";
+ };
+ }
+ {
+ goPackagePath = "github.com/golang/lint";
+ fetch = {
+ type = "git";
+ url = "https://github.com/golang/lint";
+ rev = "06c8688daad7";
+ sha256 = "0xi94dwvz50a66bq1hp9fyqkym5mcpdxdb1hrfvicldgjf37lc47";
+ };
+ }
+ {
+ goPackagePath = "github.com/golang/mock";
+ fetch = {
+ type = "git";
+ url = "https://github.com/golang/mock";
+ rev = "v1.1.1";
+ sha256 = "0ap8wb6pdl6ccmdb43advjll2ly4sz26wsc3axw0hbrjrybybzgy";
+ };
+ }
+ {
+ goPackagePath = "github.com/golang/protobuf";
+ fetch = {
+ type = "git";
+ url = "https://github.com/golang/protobuf";
+ rev = "v1.3.1";
+ sha256 = "15am4s4646qy6iv0g3kkqq52rzykqjhm4bf08dk0fy2r58knpsyl";
+ };
+ }
+ {
+ goPackagePath = "github.com/gomodule/redigo";
+ fetch = {
+ type = "git";
+ url = "https://github.com/gomodule/redigo";
+ rev = "v2.0.0";
+ sha256 = "1kg7s8027b4g1sfw0v3nh30c15j407kv684s53gg281r807dnfpk";
+ };
+ }
+ {
+ goPackagePath = "github.com/google/go-cmp";
+ fetch = {
+ type = "git";
+ url = "https://github.com/google/go-cmp";
+ rev = "v0.3.1";
+ sha256 = "1caw49i0plkjxir7kdf5qhwls3krqwfmi7g4h392rdfwi3kfahx1";
+ };
+ }
+ {
+ goPackagePath = "github.com/google/renameio";
+ fetch = {
+ type = "git";
+ url = "https://github.com/google/renameio";
+ rev = "v0.1.0";
+ sha256 = "1ki2x5a9nrj17sn092d6n4zr29lfg5ydv4xz5cp58z6cw8ip43jx";
+ };
+ }
+ {
+ goPackagePath = "github.com/google/uuid";
+ fetch = {
+ type = "git";
+ url = "https://github.com/google/uuid";
+ rev = "v1.1.1";
+ sha256 = "0hfxcf9frkb57k6q0rdkrmnfs78ms21r1qfk9fhlqga2yh5xg8zb";
+ };
+ }
+ {
+ 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.0";
+ sha256 = "00i4vb31nsfkzzk7swvx3i75r2d960js3dri1875vypk3v2s0pzk";
+ };
+ }
+ {
+ goPackagePath = "github.com/grpc-ecosystem/go-grpc-middleware";
+ fetch = {
+ type = "git";
+ url = "https://github.com/grpc-ecosystem/go-grpc-middleware";
+ rev = "v1.0.0";
+ sha256 = "0lwgxih021xfhfb1xb9la5f98bpgpaiz63sbllx77qwwl2rmhrsp";
+ };
+ }
+ {
+ goPackagePath = "github.com/grpc-ecosystem/go-grpc-prometheus";
+ fetch = {
+ type = "git";
+ url = "https://github.com/grpc-ecosystem/go-grpc-prometheus";
+ rev = "v1.2.0";
+ sha256 = "1lzk54h7np32b3acidg1ggbn8ppbnns0m71gcg9d1qkkdh8zrijl";
+ };
+ }
+ {
+ goPackagePath = "github.com/hpcloud/tail";
+ fetch = {
+ type = "git";
+ url = "https://github.com/hpcloud/tail";
+ rev = "v1.0.0";
+ sha256 = "1njpzc0pi1acg5zx9y6vj9xi6ksbsc5d387rd6904hy6rh2m6kn0";
+ };
+ }
+ {
+ goPackagePath = "github.com/jfbus/httprs";
+ fetch = {
+ type = "git";
+ url = "https://github.com/jfbus/httprs";
+ rev = "b0af8319bb15";
+ sha256 = "05cg9a27i9g92n3bivqrrqznccl5lfadlk97sp9izmd368dl5qvc";
+ };
+ }
+ {
+ goPackagePath = "github.com/jpillora/backoff";
+ fetch = {
+ type = "git";
+ url = "https://github.com/jpillora/backoff";
+ rev = "8eab2debe79d";
+ sha256 = "1m5z0703094vhbbmp6s7n6kk7ci5s1pfjq466mz14zp8d1w0yn3x";
+ };
+ }
+ {
+ goPackagePath = "github.com/json-iterator/go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/json-iterator/go";
+ rev = "v1.1.6";
+ sha256 = "08caswxvdn7nvaqyj5kyny6ghpygandlbw9vxdj7l5vkp7q0s43r";
+ };
+ }
+ {
+ goPackagePath = "github.com/jtolds/gls";
+ fetch = {
+ type = "git";
+ url = "https://github.com/jtolds/gls";
+ rev = "v4.20.0";
+ sha256 = "1k7xd2q2ysv2xsh373qs801v6f359240kx0vrl0ydh7731lngvk6";
+ };
+ }
+ {
+ goPackagePath = "github.com/julienschmidt/httprouter";
+ fetch = {
+ type = "git";
+ url = "https://github.com/julienschmidt/httprouter";
+ rev = "v1.2.0";
+ sha256 = "1k8bylc9s4vpvf5xhqh9h246dl1snxrzzz0614zz88cdh8yzs666";
+ };
+ }
+ {
+ goPackagePath = "github.com/kelseyhightower/envconfig";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kelseyhightower/envconfig";
+ rev = "v1.3.0";
+ sha256 = "1zcq480ig7wbg4378qcfxznp2gzqmk7x6rbxizflvg9v2f376vrw";
+ };
+ }
+ {
+ goPackagePath = "github.com/kisielk/gotool";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kisielk/gotool";
+ rev = "v1.0.0";
+ sha256 = "14af2pa0ssyp8bp2mvdw184s5wcysk6akil3wzxmr05wwy951iwn";
+ };
+ }
+ {
+ goPackagePath = "github.com/konsorten/go-windows-terminal-sequences";
+ fetch = {
+ type = "git";
+ url = "https://github.com/konsorten/go-windows-terminal-sequences";
+ rev = "v1.0.2";
+ sha256 = "09mn209ika7ciy87xf2x31dq5fnqw39jidgaljvmqxwk7ff1hnx7";
+ };
+ }
+ {
+ goPackagePath = "github.com/kr/logfmt";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kr/logfmt";
+ rev = "b84e30acd515";
+ sha256 = "02ldzxgznrfdzvghfraslhgp19la1fczcbzh7wm2zdc6lmpd1qq9";
+ };
+ }
+ {
+ 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/libgit2/git2go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/libgit2/git2go";
+ rev = "ecaeb7a21d47";
+ sha256 = "14r7ryff93r49g94f6kg66xc0y6rwb31lj22s3qmzmlgywk0pgvr";
+ };
+ }
+ {
+ goPackagePath = "github.com/lightstep/lightstep-tracer-go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/lightstep/lightstep-tracer-go";
+ rev = "v0.15.6";
+ sha256 = "10n5r66g44s6rnz5kf86s4a3p1g55kc1kxqhnk7bx7mlayndgpmb";
+ };
+ }
+ {
+ goPackagePath = "github.com/matttproud/golang_protobuf_extensions";
+ fetch = {
+ type = "git";
+ url = "https://github.com/matttproud/golang_protobuf_extensions";
+ rev = "v1.0.1";
+ sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya";
+ };
+ }
+ {
+ goPackagePath = "github.com/mitchellh/copystructure";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mitchellh/copystructure";
+ rev = "v1.0.0";
+ sha256 = "05njg92w1088v4yl0js0zdrpfq6k37i9j14mxkr3p90p5yd9rrrr";
+ };
+ }
+ {
+ goPackagePath = "github.com/mitchellh/reflectwalk";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mitchellh/reflectwalk";
+ rev = "v1.0.0";
+ sha256 = "0wzkp0fdx22n8f7y9y37dgmnlrlfsv9zjdb48cbx7rsqsbnny7l0";
+ };
+ }
+ {
+ goPackagePath = "github.com/modern-go/concurrent";
+ fetch = {
+ type = "git";
+ url = "https://github.com/modern-go/concurrent";
+ rev = "bacd9c7ef1dd";
+ sha256 = "0s0fxccsyb8icjmiym5k7prcqx36hvgdwl588y0491gi18k5i4zs";
+ };
+ }
+ {
+ goPackagePath = "github.com/modern-go/reflect2";
+ fetch = {
+ type = "git";
+ url = "https://github.com/modern-go/reflect2";
+ rev = "v1.0.1";
+ sha256 = "06a3sablw53n1dqqbr2f53jyksbxdmmk8axaas4yvnhyfi55k4lf";
+ };
+ }
+ {
+ goPackagePath = "github.com/mwitkow/go-conntrack";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mwitkow/go-conntrack";
+ rev = "cc309e4a2223";
+ sha256 = "0nbrnpk7bkmqg9mzwsxlm0y8m7s9qd9phr1q30qlx2qmdmz7c1mf";
+ };
+ }
+ {
+ goPackagePath = "github.com/onsi/ginkgo";
+ fetch = {
+ type = "git";
+ url = "https://github.com/onsi/ginkgo";
+ rev = "v1.7.0";
+ sha256 = "14wgpdrvpc35rdz3859bz53sc1g4vpr1fysy15wy3ff9gmqs14yg";
+ };
+ }
+ {
+ goPackagePath = "github.com/onsi/gomega";
+ fetch = {
+ type = "git";
+ url = "https://github.com/onsi/gomega";
+ rev = "v1.4.3";
+ sha256 = "1c8rqg5i2hz3snmq7s41yar1zjnzilb0fyiyhkg83v97afcfx79v";
+ };
+ }
+ {
+ goPackagePath = "github.com/opentracing/opentracing-go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/opentracing/opentracing-go";
+ rev = "v1.0.2";
+ sha256 = "0i0ghg94dg8lk05mw5n23983wq04yjvkjmdkc9z5y1f3508938h9";
+ };
+ }
+ {
+ goPackagePath = "github.com/philhofer/fwd";
+ fetch = {
+ type = "git";
+ url = "https://github.com/philhofer/fwd";
+ rev = "v1.0.0";
+ sha256 = "1pg84khadh79v42y8sjsdgfb54vw2kzv7hpapxkifgj0yvcp30g2";
+ };
+ }
+ {
+ goPackagePath = "github.com/pkg/errors";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pkg/errors";
+ rev = "v0.8.0";
+ sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
+ };
+ }
+ {
+ 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/prometheus/client_golang";
+ fetch = {
+ type = "git";
+ url = "https://github.com/prometheus/client_golang";
+ rev = "v1.0.0";
+ sha256 = "1f03ndyi3jq7zdxinnvzimz3s4z2374r6dikkc8i42xzb6d1bli6";
+ };
+ }
+ {
+ goPackagePath = "github.com/prometheus/client_model";
+ fetch = {
+ type = "git";
+ url = "https://github.com/prometheus/client_model";
+ rev = "fd36f4220a90";
+ sha256 = "1bs5d72k361llflgl94c22n0w53j30rsfh84smgk8mbjbcmjsaa5";
+ };
+ }
+ {
+ goPackagePath = "github.com/prometheus/common";
+ fetch = {
+ type = "git";
+ url = "https://github.com/prometheus/common";
+ rev = "v0.4.1";
+ sha256 = "0sf4sjdckblz1hqdfvripk3zyp8xq89w7q75kbsyg4c078af896s";
+ };
+ }
+ {
+ goPackagePath = "github.com/prometheus/procfs";
+ fetch = {
+ type = "git";
+ url = "https://github.com/prometheus/procfs";
+ rev = "v0.0.2";
+ sha256 = "0s7pvs7fgnfpmym3cd0k219av321h9sf3yvdlnn3qy0ps280lg7k";
+ };
+ }
+ {
+ goPackagePath = "github.com/rafaeljusto/redigomock";
+ fetch = {
+ type = "git";
+ url = "https://github.com/rafaeljusto/redigomock";
+ rev = "257e089e14a1";
+ sha256 = "1k572vsda7q5l42s1kn5bjkfb30jshsbc96dz4cnghg43qylyd6h";
+ };
+ }
+ {
+ goPackagePath = "github.com/rogpeppe/go-internal";
+ fetch = {
+ type = "git";
+ url = "https://github.com/rogpeppe/go-internal";
+ rev = "v1.3.0";
+ sha256 = "0mcdh1licgnnahwml9y2iq6xy5x9xmjw5frcnds2s3wpjyqrl216";
+ };
+ }
+ {
+ goPackagePath = "github.com/sebest/xff";
+ fetch = {
+ type = "git";
+ url = "https://github.com/sebest/xff";
+ rev = "6c115e0ffa35";
+ sha256 = "0l11d8mc870vxzgi74cc9dqr7kgxjmbfkfi53gc30rsyx877jx4h";
+ };
+ }
+ {
+ goPackagePath = "github.com/sirupsen/logrus";
+ fetch = {
+ type = "git";
+ url = "https://github.com/sirupsen/logrus";
+ rev = "v1.3.0";
+ sha256 = "0ib7k8cwxn53dyxd3af1g81z018n77n6q64pm4miznirf7c2c9gk";
+ };
+ }
+ {
+ 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 = "505e41936337";
+ sha256 = "07zjxwszayal88z1j2bwnqrsa32vg8l4nivks5yfr9j8xfsw7n6m";
+ };
+ }
+ {
+ goPackagePath = "github.com/stretchr/objx";
+ fetch = {
+ type = "git";
+ url = "https://github.com/stretchr/objx";
+ rev = "v0.1.1";
+ sha256 = "0iph0qmpyqg4kwv8jsx6a56a7hhqq8swrazv40ycxk9rzr0s8yls";
+ };
+ }
+ {
+ goPackagePath = "github.com/stretchr/testify";
+ fetch = {
+ type = "git";
+ url = "https://github.com/stretchr/testify";
+ rev = "v1.3.0";
+ sha256 = "0wjchp2c8xbgcbbq32w3kvblk6q6yn533g78nxl6iskq6y95lxsy";
+ };
+ }
+ {
+ goPackagePath = "github.com/tinylib/msgp";
+ fetch = {
+ type = "git";
+ url = "https://github.com/tinylib/msgp";
+ rev = "v1.1.0";
+ sha256 = "08ha23sn14071ywrgxlyj7r523vzdwx1i83dcp1mqa830glgqaff";
+ };
+ }
+ {
+ goPackagePath = "github.com/uber-go/atomic";
+ fetch = {
+ type = "git";
+ url = "https://github.com/uber-go/atomic";
+ rev = "v1.3.2";
+ sha256 = "11pzvjys5ddjjgrv94pgk9pnip9yyb54z7idf33zk7p7xylpnsv6";
+ };
+ }
+ {
+ goPackagePath = "github.com/uber/jaeger-client-go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/uber/jaeger-client-go";
+ rev = "v2.15.0";
+ sha256 = "0ki23m9zrf3vxp839fnp9ckr4m28y6mpad8g5s5lr5k8jkl0sfwj";
+ };
+ }
+ {
+ goPackagePath = "github.com/uber/jaeger-lib";
+ fetch = {
+ type = "git";
+ url = "https://github.com/uber/jaeger-lib";
+ rev = "v1.5.0";
+ sha256 = "113fwpn80ylx970w8h7nfqnhh18dpx1jadbk7rbr8k68q4di4y0q";
+ };
+ }
+ {
+ goPackagePath = "gitlab.com/gitlab-org/gitaly";
+ fetch = {
+ type = "git";
+ url = "https://gitlab.com/gitlab-org/gitaly.git";
+ rev = "v1.57.0";
+ sha256 = "0mgawp5afcv9s4y8fq3mc4dn6hhdg1shbns8vmjwklh9bia988cy";
+ };
+ }
+ {
+ goPackagePath = "gitlab.com/gitlab-org/labkit";
+ fetch = {
+ type = "git";
+ url = "https://gitlab.com/gitlab-org/labkit.git";
+ rev = "905271af7abb";
+ sha256 = "144w5dikd82wz53drml9khlx39pmp6kgqccc5c0xfzpijbj7krbd";
+ };
+ }
+ {
+ goPackagePath = "go.uber.org/atomic";
+ fetch = {
+ type = "git";
+ url = "https://github.com/uber-go/atomic";
+ rev = "v1.3.2";
+ sha256 = "11pzvjys5ddjjgrv94pgk9pnip9yyb54z7idf33zk7p7xylpnsv6";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/crypto";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/crypto";
+ rev = "20be4c3c3ed5";
+ sha256 = "1ph7y8v30hc95h1dwr7vrhg1nzs47a261qin6zg8mhf12g5k2lxb";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/lint";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/lint";
+ rev = "06c8688daad7";
+ sha256 = "0xi94dwvz50a66bq1hp9fyqkym5mcpdxdb1hrfvicldgjf37lc47";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/mod";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/mod";
+ rev = "4bf6d317e70e";
+ sha256 = "19lg1ly3j31anx92p0hynic1gjk417wwxphfdrb2cq1c19kj3r17";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/net";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/net";
+ rev = "d28f0bde5980";
+ sha256 = "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/oauth2";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/oauth2";
+ rev = "d2e6202438be";
+ sha256 = "0wbn75fd10485nb93bm4kqldqifdim5xqy4v7r5sdvimvf3fyhn7";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/sync";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/sync";
+ rev = "112230192c58";
+ sha256 = "05i2k43j2d0llq768hg5pf3hb2yhfzp9la1w5wp0rsnnzblr0lfn";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/sys";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/sys";
+ rev = "953cdadca894";
+ sha256 = "0gkha4whk8xkcv3isigbs250akag99isxnd3v9xmy0kl3g88hxy1";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/text";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/text";
+ rev = "v0.3.0";
+ sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/tools";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/tools";
+ rev = "6e04913cbbac";
+ sha256 = "1314j8r4cp69a12nqdaljd06r6hmh3b1v4xyrz8prw6gx5jg7h3q";
+ };
+ }
+ {
+ goPackagePath = "google.golang.org/appengine";
+ fetch = {
+ type = "git";
+ url = "https://github.com/golang/appengine";
+ rev = "v1.1.0";
+ sha256 = "1pz202zszg8f35dk5pfhwgcdi3r6dx1l4yk6x6ly7nb4j45zi96x";
+ };
+ }
+ {
+ goPackagePath = "google.golang.org/genproto";
+ fetch = {
+ type = "git";
+ url = "https://github.com/google/go-genproto";
+ rev = "bd91e49a0898";
+ sha256 = "1f5q04h03q6fksbfkhz13ai5849rkkb8xrmmi7cxs4lzsi6ixkg8";
+ };
+ }
+ {
+ goPackagePath = "google.golang.org/grpc";
+ fetch = {
+ type = "git";
+ url = "https://github.com/grpc/grpc-go";
+ rev = "v1.16.0";
+ sha256 = "0a9xl6c5j7lvsb4q6ry5p892rjm86p47d4f8xrf0r8lxblf79qbg";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/DataDog/dd-trace-go.v1";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/DataDog/dd-trace-go.v1";
+ rev = "v1.7.0";
+ sha256 = "0j45skiiayfsaw8id4g20k51zfr0raj47a03q2icka5xrh3qj6yq";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/alecthomas/kingpin.v2";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/alecthomas/kingpin.v2";
+ rev = "v2.2.6";
+ sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/check.v1";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/check.v1";
+ rev = "788fd7840127";
+ sha256 = "0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/errgo.v2";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/errgo.v2";
+ rev = "v2.1.0";
+ sha256 = "065mbihiy7q67wnql0bzl9y1kkvck5ivra68254zbih52jxwrgr2";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/fsnotify.v1";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/fsnotify.v1";
+ rev = "v1.4.7";
+ sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/tomb.v1";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/tomb.v1";
+ rev = "dd632973f1e7";
+ sha256 = "1lqmq1ag7s4b3gc3ddvr792c5xb5k6sfn0cchr3i2s7f1c231zjv";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/yaml.v2";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/yaml.v2";
+ rev = "v2.2.2";
+ sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa";
+ };
+ }
+ {
+ goPackagePath = "honnef.co/go/tools";
+ fetch = {
+ type = "git";
+ url = "https://github.com/dominikh/go-tools";
+ rev = "v0.0.1-2019.2.2";
+ sha256 = "1vndpwg797z2gw9h9378iq99aqy7nalqx82lgvcsaqnkypdmppnd";
+ };
+ }
+]
diff --git a/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch b/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch
index 7a2bfea0c10..846bdeff48d 100644
--- a/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch
+++ b/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch
@@ -150,3 +150,14 @@ index b276a81eac..070e3ebd81 100644
end
end
end
+--- a/lib/gitlab/authorized_keys.rb
++++ b/lib/gitlab/authorized_keys.rb
+@@ -157,7 +157,7 @@
+ raise KeyError, "Invalid ID: #{id.inspect}"
+ end
+
+- "#{File.join(Gitlab.config.gitlab_shell.path, 'bin', 'gitlab-shell')} #{id}"
++ "#{File.join('/run/current-system/sw/bin', 'gitlab-shell')} #{id}"
+ end
+
+ def strip(key)
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv-ce/Gemfile b/pkgs/applications/version-management/gitlab/rubyEnv-ce/Gemfile
deleted file mode 100644
index 8bffc2a973d..00000000000
--- a/pkgs/applications/version-management/gitlab/rubyEnv-ce/Gemfile
+++ /dev/null
@@ -1,449 +0,0 @@
-source 'https://rubygems.org'
-
-gem 'rails', '5.2.3'
-
-# Improves copy-on-write performance for MRI
-gem 'nakayoshi_fork', '~> 0.0.4'
-
-# Responders respond_to and respond_with
-gem 'responders', '~> 2.0'
-
-gem 'sprockets', '~> 3.7.0'
-
-# Default values for AR models
-gem 'default_value_for', '~> 3.2.0'
-
-# Supported DBs
-gem 'mysql2', '~> 0.4.10', group: :mysql
-gem 'pg', '~> 1.1', group: :postgres
-
-gem 'rugged', '~> 0.28'
-gem 'grape-path-helpers', '~> 1.1'
-
-gem 'faraday', '~> 0.12'
-
-# Authentication libraries
-gem 'devise', '~> 4.6'
-gem 'doorkeeper', '~> 4.3'
-gem 'doorkeeper-openid_connect', '~> 1.5'
-gem 'omniauth', '~> 1.8'
-gem 'omniauth-auth0', '~> 2.0.0'
-gem 'omniauth-azure-oauth2', '~> 0.0.9'
-gem 'omniauth-cas3', '~> 1.1.4'
-gem 'omniauth-facebook', '~> 4.0.0'
-gem 'omniauth-github', '~> 1.3'
-gem 'omniauth-gitlab', '~> 1.0.2'
-gem 'omniauth-google-oauth2', '~> 0.6.0'
-gem 'omniauth-kerberos', '~> 0.3.0', group: :kerberos
-gem 'omniauth-oauth2-generic', '~> 0.2.2'
-gem 'omniauth-saml', '~> 1.10'
-gem 'omniauth-shibboleth', '~> 1.3.0'
-gem 'omniauth-twitter', '~> 1.4'
-gem 'omniauth_crowd', '~> 2.2.0'
-gem 'omniauth-authentiq', '~> 0.3.3'
-gem 'omniauth_openid_connect', '~> 0.3.1'
-gem "omniauth-ultraauth", '~> 0.0.2'
-gem 'omniauth-salesforce', '~> 1.0.5'
-gem 'rack-oauth2', '~> 1.9.3'
-gem 'jwt', '~> 2.1.0'
-
-# Spam and anti-bot protection
-gem 'recaptcha', '~> 4.11', require: 'recaptcha/rails'
-gem 'akismet', '~> 2.0'
-
-# Two-factor authentication
-gem 'devise-two-factor', '~> 3.0.0'
-gem 'rqrcode-rails3', '~> 0.1.7'
-gem 'attr_encrypted', '~> 3.1.0'
-gem 'u2f', '~> 0.2.1'
-
-# GitLab Pages
-gem 'validates_hostname', '~> 1.0.6'
-gem 'rubyzip', '~> 1.2.2', require: 'zip'
-# GitLab Pages letsencrypt support
-gem 'acme-client', '~> 2.0.2'
-
-# Browser detection
-gem 'browser', '~> 2.5'
-
-# GPG
-gem 'gpgme', '~> 2.0.18'
-
-# LDAP Auth
-# GitLab fork with several improvements to original library. For full list of changes
-# see https://github.com/intridea/omniauth-ldap/compare/master...gitlabhq:master
-gem 'gitlab_omniauth-ldap', '~> 2.1.1', require: 'omniauth-ldap'
-gem 'net-ldap'
-
-# API
-gem 'grape', '~> 1.1.0'
-gem 'grape-entity', '~> 0.7.1'
-gem 'rack-cors', '~> 1.0.0', require: 'rack/cors'
-
-# GraphQL API
-gem 'graphql', '~> 1.8.0'
-gem 'graphiql-rails', '~> 1.4.10'
-gem 'apollo_upload_server', '~> 2.0.0.beta3'
-gem 'graphql-docs', '~> 1.6.0', group: [:development, :test]
-
-# Disable strong_params so that Mash does not respond to :permitted?
-gem 'hashie-forbidden_attributes'
-
-# Pagination
-gem 'kaminari', '~> 1.0'
-
-# HAML
-gem 'hamlit', '~> 2.8.8'
-
-# Files attachments
-gem 'carrierwave', '~> 1.3'
-gem 'mini_magick'
-
-# for backups
-gem 'fog-aws', '~> 3.5'
-# Locked until fog-google resolves https://github.com/fog/fog-google/issues/421.
-# Also see config/initializers/fog_core_patch.rb.
-gem 'fog-core', '= 2.1.0'
-gem 'fog-google', '~> 1.8'
-gem 'fog-local', '~> 0.6'
-gem 'fog-openstack', '~> 1.0'
-gem 'fog-rackspace', '~> 0.1.1'
-gem 'fog-aliyun', '~> 0.3'
-
-# for Google storage
-gem 'google-api-client', '~> 0.23'
-
-# for aws storage
-gem 'unf', '~> 0.1.4'
-
-# Seed data
-gem 'seed-fu', '~> 2.3.7'
-
-# Markdown and HTML processing
-gem 'html-pipeline', '~> 2.8'
-gem 'deckar01-task_list', '2.2.0'
-gem 'gitlab-markup', '~> 1.7.0'
-gem 'github-markup', '~> 1.7.0', require: 'github/markup'
-gem 'commonmarker', '~> 0.17'
-gem 'RedCloth', '~> 4.3.2'
-gem 'rdoc', '~> 6.0'
-gem 'org-ruby', '~> 0.9.12'
-gem 'creole', '~> 0.5.0'
-gem 'wikicloth', '0.8.1'
-gem 'asciidoctor', '~> 2.0.10'
-gem 'asciidoctor-include-ext', '~> 0.3.1', require: false
-gem 'asciidoctor-plantuml', '0.0.9'
-gem 'rouge', '~> 3.5'
-gem 'truncato', '~> 0.7.11'
-gem 'bootstrap_form', '~> 4.2.0'
-gem 'nokogiri', '~> 1.10.3'
-gem 'escape_utils', '~> 1.1'
-
-# Calendar rendering
-gem 'icalendar'
-
-# Diffs
-gem 'diffy', '~> 3.1.0'
-
-# Application server
-gem 'rack', '~> 2.0.7'
-
-group :unicorn do
- gem 'unicorn', '~> 5.4.1'
- gem 'unicorn-worker-killer', '~> 0.4.4'
-end
-
-group :puma do
- gem 'puma', '~> 3.12', require: false
- gem 'puma_worker_killer', require: false
- gem 'rack-timeout', require: false
-end
-
-# State machine
-gem 'state_machines-activerecord', '~> 0.5.1'
-
-# Issue tags
-gem 'acts-as-taggable-on', '~> 6.0'
-
-# Background jobs
-gem 'sidekiq', '~> 5.2.7'
-gem 'sidekiq-cron', '~> 1.0'
-gem 'redis-namespace', '~> 1.6.0'
-gem 'gitlab-sidekiq-fetcher', '~> 0.4.0', require: 'sidekiq-reliable-fetch'
-
-# Cron Parser
-gem 'fugit', '~> 1.2.1'
-
-# HTTP requests
-gem 'httparty', '~> 0.16.4'
-
-# Colored output to console
-gem 'rainbow', '~> 3.0'
-
-# Progress bar
-gem 'ruby-progressbar'
-
-# GitLab settings
-gem 'settingslogic', '~> 2.0.9'
-
-# Linear-time regex library for untrusted regular expressions
-gem 're2', '~> 1.1.1'
-
-# Misc
-
-gem 'version_sorter', '~> 2.2.4'
-
-# Export Ruby Regex to Javascript
-gem 'js_regex', '~> 3.1'
-
-# User agent parsing
-gem 'device_detector'
-
-# Cache
-gem 'redis-rails', '~> 5.0.2'
-
-# Redis
-gem 'redis', '~> 3.2'
-gem 'connection_pool', '~> 2.0'
-
-# Discord integration
-gem 'discordrb-webhooks-blackst0ne', '~> 3.3', require: false
-
-# HipChat integration
-gem 'hipchat', '~> 1.5.0'
-
-# Jira integration
-gem 'jira-ruby', '~> 1.4'
-
-# Flowdock integration
-gem 'flowdock', '~> 0.7'
-
-# Slack integration
-gem 'slack-notifier', '~> 1.5.1'
-
-# Hangouts Chat integration
-gem 'hangouts-chat', '~> 0.0.5'
-
-# Asana integration
-gem 'asana', '~> 0.8.1'
-
-# FogBugz integration
-gem 'ruby-fogbugz', '~> 0.2.1'
-
-# Kubernetes integration
-gem 'kubeclient', '~> 4.2.2'
-
-# Sanitize user input
-gem 'sanitize', '~> 4.6'
-gem 'babosa', '~> 1.0.2'
-
-# Sanitizes SVG input
-gem 'loofah', '~> 2.2'
-
-# Working with license
-gem 'licensee', '~> 8.9'
-
-# Protect against bruteforcing
-gem 'rack-attack', '~> 4.4.1'
-
-# Ace editor
-gem 'ace-rails-ap', '~> 4.1.0'
-
-# Detect and convert string character encoding
-gem 'charlock_holmes', '~> 0.7.5'
-
-# Detect mime content type from content
-gem 'mimemagic', '~> 0.3.2'
-
-# Faster blank
-gem 'fast_blank'
-
-# Parse time & duration
-gem 'chronic', '~> 0.10.2'
-gem 'chronic_duration', '~> 0.10.6'
-
-gem 'webpack-rails', '~> 0.9.10'
-gem 'rack-proxy', '~> 0.6.0'
-
-gem 'sassc-rails', '~> 2.1.0'
-gem 'uglifier', '~> 2.7.2'
-
-gem 'addressable', '~> 2.5.2'
-gem 'font-awesome-rails', '~> 4.7'
-gem 'gemojione', '~> 3.3'
-gem 'gon', '~> 6.2'
-gem 'request_store', '~> 1.3'
-gem 'virtus', '~> 1.0.1'
-gem 'base32', '~> 0.3.0'
-
-# Sentry integration
-gem 'sentry-raven', '~> 2.9'
-
-gem 'premailer-rails', '~> 1.9.7'
-
-# LabKit: Tracing and Correlation
-gem 'gitlab-labkit', '~> 0.3.0'
-
-# I18n
-gem 'ruby_parser', '~> 3.8', require: false
-gem 'rails-i18n', '~> 5.1'
-gem 'gettext_i18n_rails', '~> 1.8.0'
-gem 'gettext_i18n_rails_js', '~> 1.3'
-gem 'gettext', '~> 3.2.2', require: false, group: :development
-
-gem 'batch-loader', '~> 1.4.0'
-
-# Perf bar
-gem 'peek', '~> 1.0.1'
-gem 'peek-gc', '~> 0.0.2'
-gem 'peek-mysql2', '~> 1.2.0', group: :mysql
-gem 'peek-pg', '~> 1.3.0', group: :postgres
-gem 'peek-rblineprof', '~> 0.2.0'
-gem 'peek-redis', '~> 1.2.0'
-
-# Memory benchmarks
-gem 'derailed_benchmarks', require: false
-
-# Metrics
-group :metrics do
- gem 'method_source', '~> 0.8', require: false
- gem 'influxdb', '~> 0.2', require: false
-
- # Prometheus
- gem 'prometheus-client-mmap', '~> 0.9.8'
- gem 'raindrops', '~> 0.18'
-end
-
-group :development do
- gem 'foreman', '~> 0.84.0'
- gem 'brakeman', '~> 4.2', require: false
-
- gem 'letter_opener_web', '~> 1.3.4'
- gem 'rblineprof', '~> 0.3.6', platform: :mri, require: false
-
- # Better errors handler
- gem 'better_errors', '~> 2.5.0'
- gem 'binding_of_caller', '~> 0.8.0'
-
- # thin instead webrick
- gem 'thin', '~> 1.7.0'
-end
-
-group :development, :test do
- gem 'bootsnap', '~> 1.4'
- gem 'bullet', '~> 5.5.0', require: !!ENV['ENABLE_BULLET']
- gem 'pry-byebug', '~> 3.5.1', platform: :mri
- gem 'pry-rails', '~> 0.3.4'
-
- gem 'awesome_print', require: false
- gem 'fuubar', '~> 2.2.0'
-
- gem 'database_cleaner', '~> 1.7.0'
- gem 'factory_bot_rails', '~> 4.8.2'
- gem 'rspec-rails', '~> 3.8.0'
- gem 'rspec-retry', '~> 0.6.1'
- gem 'rspec_profiling', '~> 0.0.5'
- gem 'rspec-set', '~> 0.1.3'
- gem 'rspec-parameterized', require: false
-
- # Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826)
- gem 'minitest', '~> 5.11.0'
-
- # Generate Fake data
- gem 'ffaker', '~> 2.10'
-
- gem 'capybara', '~> 3.22.0'
- gem 'capybara-screenshot', '~> 1.0.22'
- gem 'selenium-webdriver', '~> 3.141'
-
- gem 'spring', '~> 2.0.0'
- gem 'spring-commands-rspec', '~> 1.0.4'
-
- gem 'gitlab-styles', '~> 2.7', require: false
- # Pin these dependencies, otherwise a new rule could break the CI pipelines
- gem 'rubocop', '~> 0.69.0'
- gem 'rubocop-performance', '~> 1.1.0'
- gem 'rubocop-rspec', '~> 1.22.1'
-
- gem 'scss_lint', '~> 0.56.0', require: false
- gem 'haml_lint', '~> 0.31.0', require: false
- gem 'simplecov', '~> 0.16.1', require: false
- gem 'bundler-audit', '~> 0.5.0', require: false
- gem 'mdl', '~> 0.5.0', require: false
-
- gem 'benchmark-ips', '~> 2.3.0', require: false
-
- gem 'license_finder', '~> 5.4', require: false
- gem 'knapsack', '~> 1.17'
-
- gem 'activerecord_sane_schema_dumper', '1.0'
-
- gem 'stackprof', '~> 0.2.10', require: false
-
- gem 'simple_po_parser', '~> 1.1.2', require: false
-
- gem 'timecop', '~> 0.8.0'
-end
-
-group :test do
- gem 'shoulda-matchers', '~> 4.0.1', require: false
- gem 'email_spec', '~> 2.2.0'
- gem 'json-schema', '~> 2.8.0'
- gem 'webmock', '~> 3.5.1'
- gem 'rails-controller-testing'
- gem 'sham_rack', '~> 1.3.6'
- gem 'concurrent-ruby', '~> 1.1'
- gem 'test-prof', '~> 0.2.5'
- gem 'rspec_junit_formatter'
-end
-
-gem 'octokit', '~> 4.9'
-
-gem 'mail_room', '~> 0.9.1'
-
-gem 'email_reply_trimmer', '~> 0.1'
-gem 'html2text'
-
-gem 'ruby-prof', '~> 0.17.0'
-gem 'rbtrace', '~> 0.4', require: false
-gem 'memory_profiler', '~> 0.9', require: false
-gem 'benchmark-memory', '~> 0.1', require: false
-gem 'activerecord-explain-analyze', '~> 0.1', require: false
-
-# OAuth
-gem 'oauth2', '~> 1.4'
-
-# Health check
-gem 'health_check', '~> 2.6.0'
-
-# System information
-gem 'vmstat', '~> 2.3.0'
-gem 'sys-filesystem', '~> 1.1.6'
-
-# SSH host key support
-gem 'net-ssh', '~> 5.2'
-gem 'sshkey', '~> 2.0'
-
-# Required for ED25519 SSH host key support
-group :ed25519 do
- gem 'ed25519', '~> 1.2'
- gem 'bcrypt_pbkdf', '~> 1.0'
-end
-
-# Gitaly GRPC client
-gem 'gitaly-proto', '~> 1.37.0', require: 'gitaly'
-
-gem 'grpc', '~> 1.19.0'
-
-gem 'google-protobuf', '~> 3.7.1'
-
-gem 'toml-rb', '~> 1.0.0', require: false
-
-# Feature toggles
-gem 'flipper', '~> 0.13.0'
-gem 'flipper-active_record', '~> 0.13.0'
-gem 'flipper-active_support_cache_store', '~> 0.13.0'
-
-# Structured logging
-gem 'lograge', '~> 0.5'
-gem 'grape_logging', '~> 1.7'
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv-ce/Gemfile.lock b/pkgs/applications/version-management/gitlab/rubyEnv-ce/Gemfile.lock
deleted file mode 100644
index 60939ae918c..00000000000
--- a/pkgs/applications/version-management/gitlab/rubyEnv-ce/Gemfile.lock
+++ /dev/null
@@ -1,1288 +0,0 @@
-GEM
- remote: https://rubygems.org/
- specs:
- RedCloth (4.3.2)
- abstract_type (0.0.7)
- ace-rails-ap (4.1.2)
- acme-client (2.0.2)
- faraday (~> 0.9, >= 0.9.1)
- actioncable (5.2.3)
- actionpack (= 5.2.3)
- nio4r (~> 2.0)
- websocket-driver (>= 0.6.1)
- actionmailer (5.2.3)
- actionpack (= 5.2.3)
- actionview (= 5.2.3)
- activejob (= 5.2.3)
- mail (~> 2.5, >= 2.5.4)
- rails-dom-testing (~> 2.0)
- actionpack (5.2.3)
- actionview (= 5.2.3)
- activesupport (= 5.2.3)
- rack (~> 2.0)
- rack-test (>= 0.6.3)
- rails-dom-testing (~> 2.0)
- rails-html-sanitizer (~> 1.0, >= 1.0.2)
- actionview (5.2.3)
- activesupport (= 5.2.3)
- builder (~> 3.1)
- erubi (~> 1.4)
- rails-dom-testing (~> 2.0)
- rails-html-sanitizer (~> 1.0, >= 1.0.3)
- activejob (5.2.3)
- activesupport (= 5.2.3)
- globalid (>= 0.3.6)
- activemodel (5.2.3)
- activesupport (= 5.2.3)
- activerecord (5.2.3)
- activemodel (= 5.2.3)
- activesupport (= 5.2.3)
- arel (>= 9.0)
- activerecord-explain-analyze (0.1.0)
- activerecord (>= 4)
- pg
- activerecord_sane_schema_dumper (1.0)
- rails (>= 5, < 6)
- activestorage (5.2.3)
- actionpack (= 5.2.3)
- activerecord (= 5.2.3)
- marcel (~> 0.3.1)
- activesupport (5.2.3)
- concurrent-ruby (~> 1.0, >= 1.0.2)
- i18n (>= 0.7, < 2)
- minitest (~> 5.1)
- tzinfo (~> 1.1)
- acts-as-taggable-on (6.0.0)
- activerecord (~> 5.0)
- adamantium (0.2.0)
- ice_nine (~> 0.11.0)
- memoizable (~> 0.4.0)
- addressable (2.5.2)
- public_suffix (>= 2.0.2, < 4.0)
- aes_key_wrap (1.0.1)
- akismet (2.0.0)
- apollo_upload_server (2.0.0.beta.3)
- graphql (>= 1.8)
- rails (>= 4.2)
- arel (9.0.0)
- asana (0.8.1)
- faraday (~> 0.9)
- faraday_middleware (~> 0.9)
- faraday_middleware-multi_json (~> 0.0)
- oauth2 (~> 1.0)
- asciidoctor (2.0.10)
- asciidoctor-include-ext (0.3.1)
- asciidoctor (>= 1.5.6, < 3.0.0)
- asciidoctor-plantuml (0.0.9)
- asciidoctor (>= 1.5.6, < 3.0.0)
- ast (2.4.0)
- atomic (1.1.99)
- attr_encrypted (3.1.0)
- encryptor (~> 3.0.0)
- attr_required (1.0.1)
- awesome_print (1.8.0)
- axiom-types (0.1.1)
- descendants_tracker (~> 0.0.4)
- ice_nine (~> 0.11.0)
- thread_safe (~> 0.3, >= 0.3.1)
- babosa (1.0.2)
- base32 (0.3.2)
- batch-loader (1.4.0)
- bcrypt (3.1.12)
- bcrypt_pbkdf (1.0.0)
- benchmark-ips (2.3.0)
- benchmark-memory (0.1.2)
- memory_profiler (~> 0.9)
- better_errors (2.5.0)
- coderay (>= 1.0.0)
- erubi (>= 1.0.0)
- rack (>= 0.9.0)
- bindata (2.4.3)
- binding_ninja (0.2.3)
- binding_of_caller (0.8.0)
- debug_inspector (>= 0.0.1)
- bootsnap (1.4.1)
- msgpack (~> 1.0)
- bootstrap_form (4.2.0)
- actionpack (>= 5.0)
- activemodel (>= 5.0)
- brakeman (4.2.1)
- browser (2.5.3)
- builder (3.2.3)
- bullet (5.5.1)
- activesupport (>= 3.0.0)
- uniform_notifier (~> 1.10.0)
- bundler-audit (0.5.0)
- bundler (~> 1.2)
- thor (~> 0.18)
- byebug (9.1.0)
- capybara (3.22.0)
- addressable
- mini_mime (>= 0.1.3)
- nokogiri (~> 1.8)
- rack (>= 1.6.0)
- rack-test (>= 0.6.3)
- regexp_parser (~> 1.5)
- xpath (~> 3.2)
- capybara-screenshot (1.0.22)
- capybara (>= 1.0, < 4)
- launchy
- carrierwave (1.3.1)
- activemodel (>= 4.0.0)
- activesupport (>= 4.0.0)
- mime-types (>= 1.16)
- cause (0.1)
- character_set (1.1.2)
- charlock_holmes (0.7.6)
- childprocess (0.9.0)
- ffi (~> 1.0, >= 1.0.11)
- chronic (0.10.2)
- chronic_duration (0.10.6)
- numerizer (~> 0.1.1)
- chunky_png (1.3.5)
- citrus (3.0.2)
- coderay (1.1.2)
- coercible (1.0.0)
- descendants_tracker (~> 0.0.1)
- commonmarker (0.17.13)
- ruby-enum (~> 0.5)
- concord (0.1.5)
- adamantium (~> 0.2.0)
- equalizer (~> 0.0.9)
- concurrent-ruby (1.1.5)
- concurrent-ruby-ext (1.1.5)
- concurrent-ruby (= 1.1.5)
- connection_pool (2.2.2)
- crack (0.4.3)
- safe_yaml (~> 1.0.0)
- crass (1.0.4)
- creole (0.5.0)
- css_parser (1.5.0)
- addressable
- daemons (1.2.6)
- database_cleaner (1.7.0)
- debug_inspector (0.0.3)
- debugger-ruby_core_source (1.3.8)
- deckar01-task_list (2.2.0)
- html-pipeline
- declarative (0.0.10)
- declarative-option (0.1.0)
- default_value_for (3.2.0)
- activerecord (>= 3.2.0, < 6.0)
- derailed_benchmarks (1.3.5)
- benchmark-ips (~> 2)
- get_process_mem (~> 0)
- heapy (~> 0)
- memory_profiler (~> 0)
- rack (>= 1)
- rake (> 10, < 13)
- thor (~> 0.19)
- descendants_tracker (0.0.4)
- thread_safe (~> 0.3, >= 0.3.1)
- device_detector (1.0.0)
- devise (4.6.2)
- bcrypt (~> 3.0)
- orm_adapter (~> 0.1)
- railties (>= 4.1.0, < 6.0)
- responders
- warden (~> 1.2.3)
- devise-two-factor (3.0.0)
- activesupport
- attr_encrypted (>= 1.3, < 4, != 2)
- devise (~> 4.0)
- railties
- rotp (~> 2.0)
- diff-lcs (1.3)
- diffy (3.1.0)
- discordrb-webhooks-blackst0ne (3.3.0)
- rest-client (~> 2.0)
- docile (1.3.1)
- domain_name (0.5.20180417)
- unf (>= 0.0.5, < 1.0.0)
- doorkeeper (4.3.2)
- railties (>= 4.2)
- doorkeeper-openid_connect (1.5.0)
- doorkeeper (~> 4.3)
- json-jwt (~> 1.6)
- ed25519 (1.2.4)
- email_reply_trimmer (0.1.6)
- email_spec (2.2.0)
- htmlentities (~> 4.3.3)
- launchy (~> 2.1)
- mail (~> 2.7)
- encryptor (3.0.0)
- equalizer (0.0.11)
- erubi (1.8.0)
- escape_utils (1.2.1)
- et-orbi (1.2.1)
- tzinfo
- eventmachine (1.2.7)
- excon (0.62.0)
- execjs (2.6.0)
- expression_parser (0.9.0)
- extended-markdown-filter (0.6.0)
- html-pipeline (~> 2.0)
- factory_bot (4.8.2)
- activesupport (>= 3.0.0)
- factory_bot_rails (4.8.2)
- factory_bot (~> 4.8.2)
- railties (>= 3.0.0)
- faraday (0.12.2)
- multipart-post (>= 1.2, < 3)
- faraday_middleware (0.12.2)
- faraday (>= 0.7.4, < 1.0)
- faraday_middleware-multi_json (0.0.6)
- faraday_middleware
- multi_json
- fast_blank (1.0.0)
- fast_gettext (1.6.0)
- ffaker (2.10.0)
- ffi (1.10.0)
- flipper (0.13.0)
- flipper-active_record (0.13.0)
- activerecord (>= 3.2, < 6)
- flipper (~> 0.13.0)
- flipper-active_support_cache_store (0.13.0)
- activesupport (>= 3.2, < 6)
- flipper (~> 0.13.0)
- flowdock (0.7.1)
- httparty (~> 0.7)
- multi_json
- fog-aliyun (0.3.3)
- fog-core
- fog-json
- ipaddress (~> 0.8)
- xml-simple (~> 1.1)
- fog-aws (3.5.2)
- fog-core (~> 2.1)
- fog-json (~> 1.1)
- fog-xml (~> 0.1)
- ipaddress (~> 0.8)
- fog-core (2.1.0)
- builder
- excon (~> 0.58)
- formatador (~> 0.2)
- mime-types
- fog-google (1.8.2)
- fog-core (<= 2.1.0)
- fog-json (~> 1.2)
- fog-xml (~> 0.1.0)
- google-api-client (~> 0.23.0)
- fog-json (1.2.0)
- fog-core
- multi_json (~> 1.10)
- fog-local (0.6.0)
- fog-core (>= 1.27, < 3.0)
- fog-openstack (1.0.8)
- fog-core (~> 2.1)
- fog-json (>= 1.0)
- ipaddress (>= 0.8)
- fog-rackspace (0.1.1)
- fog-core (>= 1.35)
- fog-json (>= 1.0)
- fog-xml (>= 0.1)
- ipaddress (>= 0.8)
- fog-xml (0.1.3)
- fog-core
- nokogiri (>= 1.5.11, < 2.0.0)
- font-awesome-rails (4.7.0.4)
- railties (>= 3.2, < 6.0)
- foreman (0.84.0)
- thor (~> 0.19.1)
- formatador (0.2.5)
- fugit (1.2.1)
- et-orbi (~> 1.1, >= 1.1.8)
- raabro (~> 1.1)
- fuubar (2.2.0)
- rspec-core (~> 3.0)
- ruby-progressbar (~> 1.4)
- gemoji (3.0.1)
- gemojione (3.3.0)
- json
- get_process_mem (0.2.3)
- gettext (3.2.9)
- locale (>= 2.0.5)
- text (>= 1.3.0)
- gettext_i18n_rails (1.8.0)
- fast_gettext (>= 0.9.0)
- gettext_i18n_rails_js (1.3.0)
- gettext (>= 3.0.2)
- gettext_i18n_rails (>= 0.7.1)
- po_to_json (>= 1.0.0)
- rails (>= 3.2.0)
- gitaly-proto (1.37.0)
- grpc (~> 1.0)
- github-markup (1.7.0)
- gitlab-labkit (0.3.0)
- actionpack (~> 5)
- activesupport (~> 5)
- grpc (~> 1.19.0)
- jaeger-client (~> 0.10)
- opentracing (~> 0.4)
- gitlab-markup (1.7.0)
- gitlab-sidekiq-fetcher (0.4.0)
- sidekiq (~> 5)
- gitlab-styles (2.7.0)
- rubocop (~> 0.69.0)
- rubocop-gitlab-security (~> 0.1.0)
- rubocop-performance (~> 1.1.0)
- rubocop-rspec (~> 1.19)
- gitlab_omniauth-ldap (2.1.1)
- net-ldap (~> 0.16)
- omniauth (~> 1.3)
- pyu-ruby-sasl (>= 0.0.3.3, < 0.1)
- rubyntlm (~> 0.5)
- globalid (0.4.2)
- activesupport (>= 4.2.0)
- gon (6.2.0)
- actionpack (>= 3.0)
- multi_json
- request_store (>= 1.0)
- google-api-client (0.23.4)
- addressable (~> 2.5, >= 2.5.1)
- googleauth (>= 0.5, < 0.7.0)
- httpclient (>= 2.8.1, < 3.0)
- mime-types (~> 3.0)
- representable (~> 3.0)
- retriable (>= 2.0, < 4.0)
- google-protobuf (3.7.1)
- googleapis-common-protos-types (1.0.4)
- google-protobuf (~> 3.0)
- googleauth (0.6.6)
- faraday (~> 0.12)
- jwt (>= 1.4, < 3.0)
- memoist (~> 0.12)
- multi_json (~> 1.11)
- os (>= 0.9, < 2.0)
- signet (~> 0.7)
- gpgme (2.0.18)
- mini_portile2 (~> 2.3)
- grape (1.1.0)
- activesupport
- builder
- mustermann-grape (~> 1.0.0)
- rack (>= 1.3.0)
- rack-accept
- virtus (>= 1.0.0)
- grape-entity (0.7.1)
- activesupport (>= 4.0)
- multi_json (>= 1.3.2)
- grape-path-helpers (1.1.0)
- activesupport
- grape (~> 1.0)
- rake (~> 12)
- grape_logging (1.7.0)
- grape
- graphiql-rails (1.4.10)
- railties
- sprockets-rails
- graphql (1.8.1)
- graphql-docs (1.6.0)
- commonmarker (~> 0.16)
- escape_utils (~> 1.2)
- extended-markdown-filter (~> 0.4)
- gemoji (~> 3.0)
- graphql (~> 1.6)
- html-pipeline (~> 2.8)
- sass (~> 3.4)
- grpc (1.19.0)
- google-protobuf (~> 3.1)
- googleapis-common-protos-types (~> 1.0.0)
- haml (5.0.4)
- temple (>= 0.8.0)
- tilt
- haml_lint (0.31.0)
- haml (>= 4.0, < 5.1)
- rainbow
- rake (>= 10, < 13)
- rubocop (>= 0.50.0)
- sysexits (~> 1.1)
- hamlit (2.8.8)
- temple (>= 0.8.0)
- thor
- tilt
- hangouts-chat (0.0.5)
- hashdiff (0.3.8)
- hashie (3.5.7)
- hashie-forbidden_attributes (0.1.1)
- hashie (>= 3.0)
- health_check (2.6.0)
- rails (>= 4.0)
- heapy (0.1.4)
- hipchat (1.5.2)
- httparty
- mimemagic
- html-pipeline (2.8.4)
- activesupport (>= 2)
- nokogiri (>= 1.4)
- html2text (0.2.0)
- nokogiri (~> 1.6)
- htmlentities (4.3.4)
- http (3.3.0)
- addressable (~> 2.3)
- http-cookie (~> 1.0)
- http-form_data (~> 2.0)
- http_parser.rb (~> 0.6.0)
- http-cookie (1.0.3)
- domain_name (~> 0.5)
- http-form_data (2.1.1)
- http_parser.rb (0.6.0)
- httparty (0.16.4)
- mime-types (~> 3.0)
- multi_xml (>= 0.5.2)
- httpclient (2.8.3)
- i18n (1.6.0)
- concurrent-ruby (~> 1.0)
- icalendar (2.4.1)
- ice_nine (0.11.2)
- influxdb (0.2.3)
- cause
- json
- ipaddress (0.8.3)
- jaeger-client (0.10.0)
- opentracing (~> 0.3)
- thrift
- jaro_winkler (1.5.2)
- jira-ruby (1.4.1)
- activesupport
- multipart-post
- oauth (~> 0.5, >= 0.5.0)
- js_regex (3.1.1)
- character_set (~> 1.1)
- regexp_parser (~> 1.1)
- regexp_property_values (~> 0.3)
- json (1.8.6)
- json-jwt (1.9.4)
- activesupport
- aes_key_wrap
- bindata
- json-schema (2.8.0)
- addressable (>= 2.4)
- jwt (2.1.0)
- kaminari (1.0.1)
- activesupport (>= 4.1.0)
- kaminari-actionview (= 1.0.1)
- kaminari-activerecord (= 1.0.1)
- kaminari-core (= 1.0.1)
- kaminari-actionview (1.0.1)
- actionview
- kaminari-core (= 1.0.1)
- kaminari-activerecord (1.0.1)
- activerecord
- kaminari-core (= 1.0.1)
- kaminari-core (1.0.1)
- kgio (2.11.2)
- knapsack (1.17.0)
- rake
- kramdown (1.17.0)
- kubeclient (4.2.2)
- http (~> 3.0)
- recursive-open-struct (~> 1.0, >= 1.0.4)
- rest-client (~> 2.0)
- launchy (2.4.3)
- addressable (~> 2.3)
- letter_opener (1.7.0)
- launchy (~> 2.2)
- letter_opener_web (1.3.4)
- actionmailer (>= 3.2)
- letter_opener (~> 1.0)
- railties (>= 3.2)
- license_finder (5.4.0)
- bundler
- rubyzip
- thor
- toml (= 0.2.0)
- with_env (= 1.1.0)
- xml-simple
- licensee (8.9.2)
- rugged (~> 0.24)
- locale (2.1.2)
- lograge (0.10.0)
- actionpack (>= 4)
- activesupport (>= 4)
- railties (>= 4)
- request_store (~> 1.0)
- loofah (2.2.3)
- crass (~> 1.0.2)
- nokogiri (>= 1.5.9)
- mail (2.7.1)
- mini_mime (>= 0.1.1)
- mail_room (0.9.1)
- marcel (0.3.3)
- mimemagic (~> 0.3.2)
- mdl (0.5.0)
- kramdown (~> 1.12, >= 1.12.0)
- mixlib-cli (~> 1.7, >= 1.7.0)
- mixlib-config (~> 2.2, >= 2.2.1)
- memoist (0.16.0)
- memoizable (0.4.2)
- thread_safe (~> 0.3, >= 0.3.1)
- memory_profiler (0.9.13)
- method_source (0.9.2)
- mime-types (3.2.2)
- mime-types-data (~> 3.2015)
- mime-types-data (3.2019.0331)
- mimemagic (0.3.2)
- mini_magick (4.8.0)
- mini_mime (1.0.1)
- mini_portile2 (2.4.0)
- minitest (5.11.3)
- mixlib-cli (1.7.0)
- mixlib-config (2.2.18)
- tomlrb
- msgpack (1.2.10)
- multi_json (1.13.1)
- multi_xml (0.6.0)
- multipart-post (2.0.0)
- mustermann (1.0.3)
- mustermann-grape (1.0.0)
- mustermann (~> 1.0.0)
- mysql2 (0.4.10)
- nakayoshi_fork (0.0.4)
- net-ldap (0.16.0)
- net-ssh (5.2.0)
- netrc (0.11.0)
- nio4r (2.3.1)
- nokogiri (1.10.3)
- mini_portile2 (~> 2.4.0)
- nokogumbo (1.5.0)
- nokogiri
- numerizer (0.1.1)
- oauth (0.5.4)
- oauth2 (1.4.1)
- faraday (>= 0.8, < 0.16.0)
- jwt (>= 1.0, < 3.0)
- multi_json (~> 1.3)
- multi_xml (~> 0.5)
- rack (>= 1.2, < 3)
- octokit (4.9.0)
- sawyer (~> 0.8.0, >= 0.5.3)
- omniauth (1.9.0)
- hashie (>= 3.4.6, < 3.7.0)
- rack (>= 1.6.2, < 3)
- omniauth-auth0 (2.0.0)
- omniauth-oauth2 (~> 1.4)
- omniauth-authentiq (0.3.3)
- jwt (>= 1.5)
- omniauth-oauth2 (>= 1.5)
- omniauth-azure-oauth2 (0.0.10)
- jwt (>= 1.0, < 3.0)
- omniauth (~> 1.0)
- omniauth-oauth2 (~> 1.4)
- omniauth-cas3 (1.1.4)
- addressable (~> 2.3)
- nokogiri (~> 1.7, >= 1.7.1)
- omniauth (~> 1.2)
- omniauth-facebook (4.0.0)
- omniauth-oauth2 (~> 1.2)
- omniauth-github (1.3.0)
- omniauth (~> 1.5)
- omniauth-oauth2 (>= 1.4.0, < 2.0)
- omniauth-gitlab (1.0.3)
- omniauth (~> 1.0)
- omniauth-oauth2 (~> 1.0)
- omniauth-google-oauth2 (0.6.0)
- jwt (>= 2.0)
- omniauth (>= 1.1.1)
- omniauth-oauth2 (>= 1.5)
- omniauth-kerberos (0.3.0)
- omniauth-multipassword
- timfel-krb5-auth (~> 0.8)
- omniauth-multipassword (0.4.2)
- omniauth (~> 1.0)
- omniauth-oauth (1.1.0)
- oauth
- omniauth (~> 1.0)
- omniauth-oauth2 (1.6.0)
- oauth2 (~> 1.1)
- omniauth (~> 1.9)
- omniauth-oauth2-generic (0.2.2)
- omniauth-oauth2 (~> 1.0)
- omniauth-salesforce (1.0.5)
- omniauth (~> 1.0)
- omniauth-oauth2 (~> 1.0)
- omniauth-saml (1.10.0)
- omniauth (~> 1.3, >= 1.3.2)
- ruby-saml (~> 1.7)
- omniauth-shibboleth (1.3.0)
- omniauth (>= 1.0.0)
- omniauth-twitter (1.4.0)
- omniauth-oauth (~> 1.1)
- rack
- omniauth-ultraauth (0.0.2)
- omniauth_openid_connect (~> 0.3.0)
- omniauth_crowd (2.2.3)
- activesupport
- nokogiri (>= 1.4.4)
- omniauth (~> 1.0)
- omniauth_openid_connect (0.3.1)
- addressable (~> 2.5)
- omniauth (~> 1.3)
- openid_connect (~> 1.1)
- openid_connect (1.1.6)
- activemodel
- attr_required (>= 1.0.0)
- json-jwt (>= 1.5.0)
- rack-oauth2 (>= 1.6.1)
- swd (>= 1.0.0)
- tzinfo
- validate_email
- validate_url
- webfinger (>= 1.0.1)
- opentracing (0.5.0)
- optimist (3.0.0)
- org-ruby (0.9.12)
- rubypants (~> 0.2)
- orm_adapter (0.5.0)
- os (1.0.0)
- parallel (1.17.0)
- parser (2.6.3.0)
- ast (~> 2.4.0)
- parslet (1.8.2)
- peek (1.0.1)
- concurrent-ruby (>= 0.9.0)
- concurrent-ruby-ext (>= 0.9.0)
- railties (>= 4.0.0)
- peek-gc (0.0.2)
- peek
- peek-mysql2 (1.2.0)
- concurrent-ruby
- concurrent-ruby-ext
- mysql2
- peek
- peek-pg (1.3.0)
- concurrent-ruby
- concurrent-ruby-ext
- peek
- pg
- peek-rblineprof (0.2.0)
- peek
- rblineprof
- peek-redis (1.2.0)
- atomic (>= 1.0.0)
- peek
- redis
- pg (1.1.4)
- po_to_json (1.0.1)
- json (>= 1.6.0)
- premailer (1.10.4)
- addressable
- css_parser (>= 1.4.10)
- htmlentities (>= 4.0.0)
- premailer-rails (1.9.7)
- actionmailer (>= 3, < 6)
- premailer (~> 1.7, >= 1.7.9)
- proc_to_ast (0.1.0)
- coderay
- parser
- unparser
- procto (0.0.3)
- prometheus-client-mmap (0.9.8)
- pry (0.11.3)
- coderay (~> 1.1.0)
- method_source (~> 0.9.0)
- pry-byebug (3.5.1)
- byebug (~> 9.1)
- pry (~> 0.10)
- pry-rails (0.3.6)
- pry (>= 0.10.4)
- public_suffix (3.1.0)
- puma (3.12.0)
- puma_worker_killer (0.1.0)
- get_process_mem (~> 0.2)
- puma (>= 2.7, < 4)
- pyu-ruby-sasl (0.0.3.3)
- raabro (1.1.6)
- rack (2.0.7)
- rack-accept (0.4.5)
- rack (>= 0.4)
- rack-attack (4.4.1)
- rack
- rack-cors (1.0.2)
- rack-oauth2 (1.9.3)
- activesupport
- attr_required
- httpclient
- json-jwt (>= 1.9.0)
- rack
- rack-protection (2.0.5)
- rack
- rack-proxy (0.6.0)
- rack
- rack-test (1.1.0)
- rack (>= 1.0, < 3)
- rack-timeout (0.5.1)
- rails (5.2.3)
- actioncable (= 5.2.3)
- actionmailer (= 5.2.3)
- actionpack (= 5.2.3)
- actionview (= 5.2.3)
- activejob (= 5.2.3)
- activemodel (= 5.2.3)
- activerecord (= 5.2.3)
- activestorage (= 5.2.3)
- activesupport (= 5.2.3)
- bundler (>= 1.3.0)
- railties (= 5.2.3)
- sprockets-rails (>= 2.0.0)
- rails-controller-testing (1.0.2)
- actionpack (~> 5.x, >= 5.0.1)
- actionview (~> 5.x, >= 5.0.1)
- activesupport (~> 5.x)
- rails-dom-testing (2.0.3)
- activesupport (>= 4.2.0)
- nokogiri (>= 1.6)
- rails-html-sanitizer (1.0.4)
- loofah (~> 2.2, >= 2.2.2)
- rails-i18n (5.1.1)
- i18n (>= 0.7, < 2)
- railties (>= 5.0, < 6)
- railties (5.2.3)
- actionpack (= 5.2.3)
- activesupport (= 5.2.3)
- method_source
- rake (>= 0.8.7)
- thor (>= 0.19.0, < 2.0)
- rainbow (3.0.0)
- raindrops (0.19.0)
- rake (12.3.2)
- rb-fsevent (0.10.2)
- rb-inotify (0.9.10)
- ffi (>= 0.5.0, < 2)
- rblineprof (0.3.6)
- debugger-ruby_core_source (~> 1.3)
- rbtrace (0.4.11)
- ffi (>= 1.0.6)
- msgpack (>= 0.4.3)
- optimist (>= 3.0.0)
- rdoc (6.0.4)
- re2 (1.1.1)
- recaptcha (4.13.1)
- json
- recursive-open-struct (1.1.0)
- redis (3.3.5)
- redis-actionpack (5.0.2)
- actionpack (>= 4.0, < 6)
- redis-rack (>= 1, < 3)
- redis-store (>= 1.1.0, < 2)
- redis-activesupport (5.0.4)
- activesupport (>= 3, < 6)
- redis-store (>= 1.3, < 2)
- redis-namespace (1.6.0)
- redis (>= 3.0.4)
- redis-rack (2.0.4)
- rack (>= 1.5, < 3)
- redis-store (>= 1.2, < 2)
- redis-rails (5.0.2)
- redis-actionpack (>= 5.0, < 6)
- redis-activesupport (>= 5.0, < 6)
- redis-store (>= 1.2, < 2)
- redis-store (1.6.0)
- redis (>= 2.2, < 5)
- regexp_parser (1.5.1)
- regexp_property_values (0.3.4)
- representable (3.0.4)
- declarative (< 0.1.0)
- declarative-option (< 0.2.0)
- uber (< 0.2.0)
- request_store (1.3.1)
- responders (2.4.0)
- actionpack (>= 4.2.0, < 5.3)
- railties (>= 4.2.0, < 5.3)
- rest-client (2.0.2)
- http-cookie (>= 1.0.2, < 2.0)
- mime-types (>= 1.16, < 4.0)
- netrc (~> 0.8)
- retriable (3.1.2)
- rinku (2.0.0)
- rotp (2.1.2)
- rouge (3.5.1)
- rqrcode (0.7.0)
- chunky_png
- rqrcode-rails3 (0.1.7)
- rqrcode (>= 0.4.2)
- rspec (3.8.0)
- rspec-core (~> 3.8.0)
- rspec-expectations (~> 3.8.0)
- rspec-mocks (~> 3.8.0)
- rspec-core (3.8.2)
- rspec-support (~> 3.8.0)
- rspec-expectations (3.8.4)
- diff-lcs (>= 1.2.0, < 2.0)
- rspec-support (~> 3.8.0)
- rspec-mocks (3.8.1)
- diff-lcs (>= 1.2.0, < 2.0)
- rspec-support (~> 3.8.0)
- rspec-parameterized (0.4.2)
- binding_ninja (>= 0.2.3)
- parser
- proc_to_ast
- rspec (>= 2.13, < 4)
- unparser
- rspec-rails (3.8.2)
- actionpack (>= 3.0)
- activesupport (>= 3.0)
- railties (>= 3.0)
- rspec-core (~> 3.8.0)
- rspec-expectations (~> 3.8.0)
- rspec-mocks (~> 3.8.0)
- rspec-support (~> 3.8.0)
- rspec-retry (0.6.1)
- rspec-core (> 3.3)
- rspec-set (0.1.3)
- rspec-support (3.8.2)
- rspec_junit_formatter (0.4.1)
- rspec-core (>= 2, < 4, != 2.12.0)
- rspec_profiling (0.0.5)
- activerecord
- pg
- rails
- sqlite3
- rubocop (0.69.0)
- jaro_winkler (~> 1.5.1)
- parallel (~> 1.10)
- parser (>= 2.6)
- rainbow (>= 2.2.2, < 4.0)
- ruby-progressbar (~> 1.7)
- unicode-display_width (>= 1.4.0, < 1.7)
- rubocop-gitlab-security (0.1.1)
- rubocop (>= 0.51)
- rubocop-performance (1.1.0)
- rubocop (>= 0.67.0)
- rubocop-rspec (1.22.2)
- rubocop (>= 0.52.1)
- ruby-enum (0.7.2)
- i18n
- ruby-fogbugz (0.2.1)
- crack (~> 0.4)
- ruby-prof (0.17.0)
- ruby-progressbar (1.10.0)
- ruby-saml (1.7.2)
- nokogiri (>= 1.5.10)
- ruby_parser (3.13.1)
- sexp_processor (~> 4.9)
- rubyntlm (0.6.2)
- rubypants (0.2.0)
- rubyzip (1.2.2)
- rugged (0.28.1)
- safe_yaml (1.0.4)
- sanitize (4.6.6)
- crass (~> 1.0.2)
- nokogiri (>= 1.4.4)
- nokogumbo (~> 1.4)
- sass (3.5.5)
- sass-listen (~> 4.0.0)
- sass-listen (4.0.0)
- rb-fsevent (~> 0.9, >= 0.9.4)
- rb-inotify (~> 0.9, >= 0.9.7)
- sassc (2.0.1)
- ffi (~> 1.9)
- rake
- sassc-rails (2.1.0)
- railties (>= 4.0.0)
- sassc (>= 2.0)
- sprockets (> 3.0)
- sprockets-rails
- tilt
- sawyer (0.8.1)
- addressable (>= 2.3.5, < 2.6)
- faraday (~> 0.8, < 1.0)
- scss_lint (0.56.0)
- rake (>= 0.9, < 13)
- sass (~> 3.5.3)
- seed-fu (2.3.7)
- activerecord (>= 3.1)
- activesupport (>= 3.1)
- selenium-webdriver (3.141.0)
- childprocess (~> 0.5)
- rubyzip (~> 1.2, >= 1.2.2)
- sentry-raven (2.9.0)
- faraday (>= 0.7.6, < 1.0)
- settingslogic (2.0.9)
- sexp_processor (4.12.0)
- sham_rack (1.3.6)
- rack
- shoulda-matchers (4.0.1)
- activesupport (>= 4.2.0)
- sidekiq (5.2.7)
- connection_pool (~> 2.2, >= 2.2.2)
- rack (>= 1.5.0)
- rack-protection (>= 1.5.0)
- redis (>= 3.3.5, < 5)
- sidekiq-cron (1.0.4)
- fugit (~> 1.1)
- sidekiq (>= 4.2.1)
- signet (0.11.0)
- addressable (~> 2.3)
- faraday (~> 0.9)
- jwt (>= 1.5, < 3.0)
- multi_json (~> 1.10)
- simple_po_parser (1.1.2)
- simplecov (0.16.1)
- docile (~> 1.1)
- json (>= 1.8, < 3)
- simplecov-html (~> 0.10.0)
- simplecov-html (0.10.2)
- slack-notifier (1.5.1)
- spring (2.0.2)
- activesupport (>= 4.2)
- spring-commands-rspec (1.0.4)
- spring (>= 0.9.1)
- sprockets (3.7.2)
- concurrent-ruby (~> 1.0)
- rack (> 1, < 3)
- sprockets-rails (3.2.1)
- actionpack (>= 4.0)
- activesupport (>= 4.0)
- sprockets (>= 3.0.0)
- sqlite3 (1.3.13)
- sshkey (2.0.0)
- stackprof (0.2.10)
- state_machines (0.5.0)
- state_machines-activemodel (0.5.1)
- activemodel (>= 4.1, < 6.0)
- state_machines (>= 0.5.0)
- state_machines-activerecord (0.5.1)
- activerecord (>= 4.1, < 6.0)
- state_machines-activemodel (>= 0.5.0)
- swd (1.1.2)
- activesupport (>= 3)
- attr_required (>= 0.0.5)
- httpclient (>= 2.4)
- sys-filesystem (1.1.6)
- ffi
- sysexits (1.2.0)
- temple (0.8.0)
- test-prof (0.2.5)
- text (1.3.1)
- thin (1.7.2)
- daemons (~> 1.0, >= 1.0.9)
- eventmachine (~> 1.0, >= 1.0.4)
- rack (>= 1, < 3)
- thor (0.19.4)
- thread_safe (0.3.6)
- thrift (0.11.0.0)
- tilt (2.0.8)
- timecop (0.8.1)
- timfel-krb5-auth (0.8.3)
- toml (0.2.0)
- parslet (~> 1.8.0)
- toml-rb (1.0.0)
- citrus (~> 3.0, > 3.0)
- tomlrb (1.2.8)
- truncato (0.7.11)
- htmlentities (~> 4.3.1)
- nokogiri (>= 1.7.0, <= 2.0)
- tzinfo (1.2.5)
- thread_safe (~> 0.1)
- u2f (0.2.1)
- uber (0.1.0)
- uglifier (2.7.2)
- execjs (>= 0.3.0)
- json (>= 1.8.0)
- unf (0.1.4)
- unf_ext
- unf_ext (0.0.7.5)
- unicode-display_width (1.6.0)
- unicorn (5.4.1)
- kgio (~> 2.6)
- raindrops (~> 0.7)
- unicorn-worker-killer (0.4.4)
- get_process_mem (~> 0)
- unicorn (>= 4, < 6)
- uniform_notifier (1.10.0)
- unparser (0.4.5)
- abstract_type (~> 0.0.7)
- adamantium (~> 0.2.0)
- concord (~> 0.1.5)
- diff-lcs (~> 1.3)
- equalizer (~> 0.0.9)
- parser (~> 2.6.3)
- procto (~> 0.0.2)
- validate_email (0.1.6)
- activemodel (>= 3.0)
- mail (>= 2.2.5)
- validate_url (1.0.8)
- activemodel (>= 3.0.0)
- public_suffix
- validates_hostname (1.0.6)
- activerecord (>= 3.0)
- activesupport (>= 3.0)
- version_sorter (2.2.4)
- virtus (1.0.5)
- axiom-types (~> 0.1)
- coercible (~> 1.0)
- descendants_tracker (~> 0.0, >= 0.0.3)
- equalizer (~> 0.0, >= 0.0.9)
- vmstat (2.3.0)
- warden (1.2.7)
- rack (>= 1.0)
- webfinger (1.1.0)
- activesupport
- httpclient (>= 2.4)
- webmock (3.5.1)
- addressable (>= 2.3.6)
- crack (>= 0.3.2)
- hashdiff
- webpack-rails (0.9.11)
- railties (>= 3.2.0)
- websocket-driver (0.7.0)
- websocket-extensions (>= 0.1.0)
- websocket-extensions (0.1.3)
- wikicloth (0.8.1)
- builder
- expression_parser
- rinku
- with_env (1.1.0)
- xml-simple (1.1.5)
- xpath (3.2.0)
- nokogiri (~> 1.8)
-
-PLATFORMS
- ruby
-
-DEPENDENCIES
- RedCloth (~> 4.3.2)
- ace-rails-ap (~> 4.1.0)
- acme-client (~> 2.0.2)
- activerecord-explain-analyze (~> 0.1)
- activerecord_sane_schema_dumper (= 1.0)
- acts-as-taggable-on (~> 6.0)
- addressable (~> 2.5.2)
- akismet (~> 2.0)
- apollo_upload_server (~> 2.0.0.beta3)
- asana (~> 0.8.1)
- asciidoctor (~> 2.0.10)
- asciidoctor-include-ext (~> 0.3.1)
- asciidoctor-plantuml (= 0.0.9)
- attr_encrypted (~> 3.1.0)
- awesome_print
- babosa (~> 1.0.2)
- base32 (~> 0.3.0)
- batch-loader (~> 1.4.0)
- bcrypt_pbkdf (~> 1.0)
- benchmark-ips (~> 2.3.0)
- benchmark-memory (~> 0.1)
- better_errors (~> 2.5.0)
- binding_of_caller (~> 0.8.0)
- bootsnap (~> 1.4)
- bootstrap_form (~> 4.2.0)
- brakeman (~> 4.2)
- browser (~> 2.5)
- bullet (~> 5.5.0)
- bundler-audit (~> 0.5.0)
- capybara (~> 3.22.0)
- capybara-screenshot (~> 1.0.22)
- carrierwave (~> 1.3)
- charlock_holmes (~> 0.7.5)
- chronic (~> 0.10.2)
- chronic_duration (~> 0.10.6)
- commonmarker (~> 0.17)
- concurrent-ruby (~> 1.1)
- connection_pool (~> 2.0)
- creole (~> 0.5.0)
- database_cleaner (~> 1.7.0)
- deckar01-task_list (= 2.2.0)
- default_value_for (~> 3.2.0)
- derailed_benchmarks
- device_detector
- devise (~> 4.6)
- devise-two-factor (~> 3.0.0)
- diffy (~> 3.1.0)
- discordrb-webhooks-blackst0ne (~> 3.3)
- doorkeeper (~> 4.3)
- doorkeeper-openid_connect (~> 1.5)
- ed25519 (~> 1.2)
- email_reply_trimmer (~> 0.1)
- email_spec (~> 2.2.0)
- escape_utils (~> 1.1)
- factory_bot_rails (~> 4.8.2)
- faraday (~> 0.12)
- fast_blank
- ffaker (~> 2.10)
- flipper (~> 0.13.0)
- flipper-active_record (~> 0.13.0)
- flipper-active_support_cache_store (~> 0.13.0)
- flowdock (~> 0.7)
- fog-aliyun (~> 0.3)
- fog-aws (~> 3.5)
- fog-core (= 2.1.0)
- fog-google (~> 1.8)
- fog-local (~> 0.6)
- fog-openstack (~> 1.0)
- fog-rackspace (~> 0.1.1)
- font-awesome-rails (~> 4.7)
- foreman (~> 0.84.0)
- fugit (~> 1.2.1)
- fuubar (~> 2.2.0)
- gemojione (~> 3.3)
- gettext (~> 3.2.2)
- gettext_i18n_rails (~> 1.8.0)
- gettext_i18n_rails_js (~> 1.3)
- gitaly-proto (~> 1.37.0)
- github-markup (~> 1.7.0)
- gitlab-labkit (~> 0.3.0)
- gitlab-markup (~> 1.7.0)
- gitlab-sidekiq-fetcher (~> 0.4.0)
- gitlab-styles (~> 2.7)
- gitlab_omniauth-ldap (~> 2.1.1)
- gon (~> 6.2)
- google-api-client (~> 0.23)
- google-protobuf (~> 3.7.1)
- gpgme (~> 2.0.18)
- grape (~> 1.1.0)
- grape-entity (~> 0.7.1)
- grape-path-helpers (~> 1.1)
- grape_logging (~> 1.7)
- graphiql-rails (~> 1.4.10)
- graphql (~> 1.8.0)
- graphql-docs (~> 1.6.0)
- grpc (~> 1.19.0)
- haml_lint (~> 0.31.0)
- hamlit (~> 2.8.8)
- hangouts-chat (~> 0.0.5)
- hashie-forbidden_attributes
- health_check (~> 2.6.0)
- hipchat (~> 1.5.0)
- html-pipeline (~> 2.8)
- html2text
- httparty (~> 0.16.4)
- icalendar
- influxdb (~> 0.2)
- jira-ruby (~> 1.4)
- js_regex (~> 3.1)
- json-schema (~> 2.8.0)
- jwt (~> 2.1.0)
- kaminari (~> 1.0)
- knapsack (~> 1.17)
- kubeclient (~> 4.2.2)
- letter_opener_web (~> 1.3.4)
- license_finder (~> 5.4)
- licensee (~> 8.9)
- lograge (~> 0.5)
- loofah (~> 2.2)
- mail_room (~> 0.9.1)
- mdl (~> 0.5.0)
- memory_profiler (~> 0.9)
- method_source (~> 0.8)
- mimemagic (~> 0.3.2)
- mini_magick
- minitest (~> 5.11.0)
- mysql2 (~> 0.4.10)
- nakayoshi_fork (~> 0.0.4)
- net-ldap
- net-ssh (~> 5.2)
- nokogiri (~> 1.10.3)
- oauth2 (~> 1.4)
- octokit (~> 4.9)
- omniauth (~> 1.8)
- omniauth-auth0 (~> 2.0.0)
- omniauth-authentiq (~> 0.3.3)
- omniauth-azure-oauth2 (~> 0.0.9)
- omniauth-cas3 (~> 1.1.4)
- omniauth-facebook (~> 4.0.0)
- omniauth-github (~> 1.3)
- omniauth-gitlab (~> 1.0.2)
- omniauth-google-oauth2 (~> 0.6.0)
- omniauth-kerberos (~> 0.3.0)
- omniauth-oauth2-generic (~> 0.2.2)
- omniauth-salesforce (~> 1.0.5)
- omniauth-saml (~> 1.10)
- omniauth-shibboleth (~> 1.3.0)
- omniauth-twitter (~> 1.4)
- omniauth-ultraauth (~> 0.0.2)
- omniauth_crowd (~> 2.2.0)
- omniauth_openid_connect (~> 0.3.1)
- org-ruby (~> 0.9.12)
- peek (~> 1.0.1)
- peek-gc (~> 0.0.2)
- peek-mysql2 (~> 1.2.0)
- peek-pg (~> 1.3.0)
- peek-rblineprof (~> 0.2.0)
- peek-redis (~> 1.2.0)
- pg (~> 1.1)
- premailer-rails (~> 1.9.7)
- prometheus-client-mmap (~> 0.9.8)
- pry-byebug (~> 3.5.1)
- pry-rails (~> 0.3.4)
- puma (~> 3.12)
- puma_worker_killer
- rack (~> 2.0.7)
- rack-attack (~> 4.4.1)
- rack-cors (~> 1.0.0)
- rack-oauth2 (~> 1.9.3)
- rack-proxy (~> 0.6.0)
- rack-timeout
- rails (= 5.2.3)
- rails-controller-testing
- rails-i18n (~> 5.1)
- rainbow (~> 3.0)
- raindrops (~> 0.18)
- rblineprof (~> 0.3.6)
- rbtrace (~> 0.4)
- rdoc (~> 6.0)
- re2 (~> 1.1.1)
- recaptcha (~> 4.11)
- redis (~> 3.2)
- redis-namespace (~> 1.6.0)
- redis-rails (~> 5.0.2)
- request_store (~> 1.3)
- responders (~> 2.0)
- rouge (~> 3.5)
- rqrcode-rails3 (~> 0.1.7)
- rspec-parameterized
- rspec-rails (~> 3.8.0)
- rspec-retry (~> 0.6.1)
- rspec-set (~> 0.1.3)
- rspec_junit_formatter
- rspec_profiling (~> 0.0.5)
- rubocop (~> 0.69.0)
- rubocop-performance (~> 1.1.0)
- rubocop-rspec (~> 1.22.1)
- ruby-fogbugz (~> 0.2.1)
- ruby-prof (~> 0.17.0)
- ruby-progressbar
- ruby_parser (~> 3.8)
- rubyzip (~> 1.2.2)
- rugged (~> 0.28)
- sanitize (~> 4.6)
- sassc-rails (~> 2.1.0)
- scss_lint (~> 0.56.0)
- seed-fu (~> 2.3.7)
- selenium-webdriver (~> 3.141)
- sentry-raven (~> 2.9)
- settingslogic (~> 2.0.9)
- sham_rack (~> 1.3.6)
- shoulda-matchers (~> 4.0.1)
- sidekiq (~> 5.2.7)
- sidekiq-cron (~> 1.0)
- simple_po_parser (~> 1.1.2)
- simplecov (~> 0.16.1)
- slack-notifier (~> 1.5.1)
- spring (~> 2.0.0)
- spring-commands-rspec (~> 1.0.4)
- sprockets (~> 3.7.0)
- sshkey (~> 2.0)
- stackprof (~> 0.2.10)
- state_machines-activerecord (~> 0.5.1)
- sys-filesystem (~> 1.1.6)
- test-prof (~> 0.2.5)
- thin (~> 1.7.0)
- timecop (~> 0.8.0)
- toml-rb (~> 1.0.0)
- truncato (~> 0.7.11)
- u2f (~> 0.2.1)
- uglifier (~> 2.7.2)
- unf (~> 0.1.4)
- unicorn (~> 5.4.1)
- unicorn-worker-killer (~> 0.4.4)
- validates_hostname (~> 1.0.6)
- version_sorter (~> 2.2.4)
- virtus (~> 1.0.1)
- vmstat (~> 2.3.0)
- webmock (~> 3.5.1)
- webpack-rails (~> 0.9.10)
- wikicloth (= 0.8.1)
-
-BUNDLED WITH
- 1.17.3
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv-ce/gemset.nix b/pkgs/applications/version-management/gitlab/rubyEnv-ce/gemset.nix
deleted file mode 100644
index 8da7a3262c1..00000000000
--- a/pkgs/applications/version-management/gitlab/rubyEnv-ce/gemset.nix
+++ /dev/null
@@ -1,4025 +0,0 @@
-{
- abstract_type = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "09330cmhrc2wmfhdj9zzg82sv6cdhm3qgdkva5ni5xfjril2pf14";
- type = "gem";
- };
- version = "0.0.7";
- };
- ace-rails-ap = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "14wj9gsiy7rm0lvs27ffsrh92wndjksj6rlfj3n7jhv1v77w9v2h";
- type = "gem";
- };
- version = "4.1.2";
- };
- acme-client = {
- dependencies = ["faraday"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1552fkgaj6qfylwsckgmhck34shjqnfrzymj1ji1kq3r310qqrnp";
- type = "gem";
- };
- version = "2.0.2";
- };
- actioncable = {
- dependencies = ["actionpack" "nio4r" "websocket-driver"];
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "04wd9rf8sglrqc8jz49apqcxbi51gdj7l1apf5qr4i86iddk6pkm";
- type = "gem";
- };
- version = "5.2.3";
- };
- actionmailer = {
- dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"];
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "15laym06zcm2021qdhlyr6y9jn1marw436i89hcxqg14a8zvyvwa";
- type = "gem";
- };
- version = "5.2.3";
- };
- actionpack = {
- dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
- groups = ["default" "development" "mysql" "postgres" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1s2iay17i2k0xx36cmnpbrmr5w6x70jk7fq1d8w70xcdw5chm0w1";
- type = "gem";
- };
- version = "5.2.3";
- };
- actionview = {
- dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
- groups = ["default" "development" "mysql" "postgres" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1v49rgf8305grqf6gq7qa47qhamr369igyy0giycz60x86afyr4h";
- type = "gem";
- };
- version = "5.2.3";
- };
- activejob = {
- dependencies = ["activesupport" "globalid"];
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "17vizibxbsli5yppgrvmw13wj7a9xy19s5nqxf1k23bbk2s5b87s";
- type = "gem";
- };
- version = "5.2.3";
- };
- activemodel = {
- dependencies = ["activesupport"];
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0mghh9di8011ara9h1r5a216yzk1vjm9r3p0gdvdi8j1zmkl6k6h";
- type = "gem";
- };
- version = "5.2.3";
- };
- activerecord = {
- dependencies = ["activemodel" "activesupport" "arel"];
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0d6036f592803iyvp6bw98p3sg638mia5dbw19lvachx6jgzfvpw";
- type = "gem";
- };
- version = "5.2.3";
- };
- activerecord-explain-analyze = {
- dependencies = ["activerecord" "pg"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0yvz452ww0vn3n6197gx6zklwa591gc7f1m8accvjd9zw8gv3ssx";
- type = "gem";
- };
- version = "0.1.0";
- };
- activerecord_sane_schema_dumper = {
- dependencies = ["rails"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "16jbf461wjaxyq26si5505wcj46mi23mii9hx4wjpva1zn9hz5m2";
- type = "gem";
- };
- version = "1.0";
- };
- activestorage = {
- dependencies = ["actionpack" "activerecord" "marcel"];
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "04is6ipjqw1f337i8pm8w5bd99rpygqfd0fzzxkr7jd308ggmsjk";
- type = "gem";
- };
- version = "5.2.3";
- };
- activesupport = {
- dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
- groups = ["default" "development" "mysql" "postgres" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "110vp4frgkw3mpzlmshg2f2ig09cknls2w68ym1r1s39d01v0mi8";
- type = "gem";
- };
- version = "5.2.3";
- };
- acts-as-taggable-on = {
- dependencies = ["activerecord"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0hl52pjgfzy3acdwnbxfqy08m808vlv9dmsyp03d5x7x0y499kvl";
- type = "gem";
- };
- version = "6.0.0";
- };
- adamantium = {
- dependencies = ["ice_nine" "memoizable"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0165r2ikgfwv2rm8dzyijkp74fvg0ni72hpdx8ay2v7cj08dqyak";
- type = "gem";
- };
- version = "0.2.0";
- };
- addressable = {
- dependencies = ["public_suffix"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0viqszpkggqi8hq87pqp0xykhvz60g99nwmkwsb0v45kc2liwxvk";
- type = "gem";
- };
- version = "2.5.2";
- };
- aes_key_wrap = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0li86k0g812jkzrppb2fvqngvzp09nygywjpn81nx90s01wxqw07";
- type = "gem";
- };
- version = "1.0.1";
- };
- akismet = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0hqpn25iyypkwkrqaibjm5nss5jmlkrddhia7frmz94prvyjr02w";
- type = "gem";
- };
- version = "2.0.0";
- };
- apollo_upload_server = {
- dependencies = ["graphql" "rails"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0riijpyicbkqsr46w4mfhh3pq2yrmakkz8mmgbrfjhzbyzac25na";
- type = "gem";
- };
- version = "2.0.0.beta.3";
- };
- arel = {
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1jk7wlmkr61f6g36w9s2sn46nmdg6wn2jfssrhbhirv5x9n95nk0";
- type = "gem";
- };
- version = "9.0.0";
- };
- asana = {
- dependencies = ["faraday" "faraday_middleware" "faraday_middleware-multi_json" "oauth2"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1h0qiywvjjc9iyzq9nz5iaqyh6qsrix4ip0w86j5c4v5g940z6qx";
- type = "gem";
- };
- version = "0.8.1";
- };
- asciidoctor = {
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1b2ajs3sabl0s27r7lhwkacw0yn0zfk4jpmidg9l8lzp2qlgjgbz";
- type = "gem";
- };
- version = "2.0.10";
- };
- asciidoctor-include-ext = {
- dependencies = ["asciidoctor"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1alaqfh31hd98yhqq8fsc50zzqw04p3d83pc35gdx3x9p3j1ds7d";
- type = "gem";
- };
- version = "0.3.1";
- };
- asciidoctor-plantuml = {
- dependencies = ["asciidoctor"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0lzxj16w7s3w0wnlpg8lfs9v2xxk3x3c1skynqm1sms7rjhnhlnb";
- type = "gem";
- };
- version = "0.0.9";
- };
- ast = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "184ssy3w93nkajlz2c70ifm79jp3j737294kbc5fjw69v1w0n9x7";
- type = "gem";
- };
- version = "2.4.0";
- };
- atomic = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1kh9rvhjn4dndbfsk3yjq7alds6s2j70rc4k8wdwdyibab8a8gq9";
- type = "gem";
- };
- version = "1.1.99";
- };
- attr_encrypted = {
- dependencies = ["encryptor"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0ncv2az1zlj33bsllr6q1qdvbw42gv91lxq0ryclbv8l8xh841jg";
- type = "gem";
- };
- version = "3.1.0";
- };
- attr_required = {
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1g22axmi2rhhy7w8c3x6gppsawxqavbrnxpnmphh22fk7cwi0kh2";
- type = "gem";
- };
- version = "1.0.1";
- };
- awesome_print = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "14arh1ixfsd6j5md0agyzvksm5svfkvchb90fp32nn7y3avcmc2h";
- type = "gem";
- };
- version = "1.8.0";
- };
- axiom-types = {
- dependencies = ["descendants_tracker" "ice_nine" "thread_safe"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "10q3k04pll041mkgy0m5fn2b1lazm6ly1drdbcczl5p57lzi3zy1";
- type = "gem";
- };
- version = "0.1.1";
- };
- babosa = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "05rgxg4pz4bc4xk34w5grv0yp1j94wf571w84lf3xgqcbs42ip2f";
- type = "gem";
- };
- version = "1.0.2";
- };
- base32 = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0b7y8sy6j9v1lvfzd4va88k5vg9yh0xcjzzn3llcw7yxqlcrnbjk";
- type = "gem";
- };
- version = "0.3.2";
- };
- batch-loader = {
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "09jaxxddqpgq8ynwd2gpjq5rkhw00zdjnqisk9qbpjgxzk6f8gwi";
- type = "gem";
- };
- version = "1.4.0";
- };
- bcrypt = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0ysblqxkclmnhrd0kmb5mr8p38mbar633gdsb14b7dhkhgawgzfy";
- type = "gem";
- };
- version = "3.1.12";
- };
- bcrypt_pbkdf = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0cj4k13c7qvvck7y25i3xarvyqq8d27vl61jddifkc7llnnap1hv";
- type = "gem";
- };
- version = "1.0.0";
- };
- benchmark-ips = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0bh681m54qdsdyvpvflj1wpnj3ybspbpjkr4cnlrl4nk4yikli0j";
- type = "gem";
- };
- version = "2.3.0";
- };
- benchmark-memory = {
- dependencies = ["memory_profiler"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "11qw8k6rl79ri00njrf1x9v6vzwgv12rkcvgzvg0sk8pfrkzwyxa";
- type = "gem";
- };
- version = "0.1.2";
- };
- better_errors = {
- dependencies = ["coderay" "erubi" "rack"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1pqnxxsqqs7vnqvamk5bzs84dv584g9s0qaf2vqb1v2aj5dabcg7";
- type = "gem";
- };
- version = "2.5.0";
- };
- bindata = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0kxy917xyxckifmnawff65j7g6yb3wh2s45npjq9lqjbi1p86lsr";
- type = "gem";
- };
- version = "2.4.3";
- };
- binding_ninja = {
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "17fa3sv6p2fw9g8fxpwx1kjhhs28aw41akkba0hlgvk60055b1aa";
- type = "gem";
- };
- version = "0.2.3";
- };
- binding_of_caller = {
- dependencies = ["debug_inspector"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "05syqlks7463zsy1jdfbbdravdhj9hpj5pv2m74blqpv8bq4vv5g";
- type = "gem";
- };
- version = "0.8.0";
- };
- bootsnap = {
- dependencies = ["msgpack"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1amksyijp9hwpc2jr0yi45hpcp0qiz5r2h8rnf2wi1hdfw6m2hxh";
- type = "gem";
- };
- version = "1.4.1";
- };
- bootstrap_form = {
- dependencies = ["actionpack" "activemodel"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "044pi097jwh3z68g1zfmbcl9xchqfcsls1j1nvx1bkyj034v6y7m";
- type = "gem";
- };
- version = "4.2.0";
- };
- brakeman = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "161l4ln7x1vnqrcvbvglznf46f0lvq305vq211xaxp4fv4wwv89v";
- type = "gem";
- };
- version = "4.2.1";
- };
- browser = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0sdx0ny34i6vqxdsc7sy9g0nafdbrw8kvvb5xh9m18x1bzpqk92f";
- type = "gem";
- };
- version = "2.5.3";
- };
- builder = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0qibi5s67lpdv1wgcj66wcymcr04q6j4mzws6a479n0mlrmh5wr1";
- type = "gem";
- };
- version = "3.2.3";
- };
- bullet = {
- dependencies = ["activesupport" "uniform_notifier"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1pdq3ckmwxnwrdm2x89zfj68h0yhiln35y8wps2nkvam4kpivyr5";
- type = "gem";
- };
- version = "5.5.1";
- };
- bundler-audit = {
- dependencies = ["thor"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1gr7k6m9fda7m66irxzydm8v9xbmlryjj65cagwm1zyi5f317srb";
- type = "gem";
- };
- version = "0.5.0";
- };
- byebug = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1vv7s88w8jb1qg4qz3jrs3x3y5d9jfyyl7wfiz78b5x95ydvx41q";
- type = "gem";
- };
- version = "9.1.0";
- };
- capybara = {
- dependencies = ["addressable" "mini_mime" "nokogiri" "rack" "rack-test" "regexp_parser" "xpath"];
- groups = ["development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1y7ncfji4s3h3wdr2hwsrd32k0va92a6lyx2x8w6a3vkbc94kpch";
- type = "gem";
- };
- version = "3.22.0";
- };
- capybara-screenshot = {
- dependencies = ["capybara" "launchy"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1x90lh7nf3zi54arjf430s9xdxr3c12xjq1l28izgxqdk8s40q7q";
- type = "gem";
- };
- version = "1.0.22";
- };
- carrierwave = {
- dependencies = ["activemodel" "activesupport" "mime-types"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "10rz94kajilffp83sb767lr62b5f8l4jzqq80cr92wqxdgbszdks";
- type = "gem";
- };
- version = "1.3.1";
- };
- cause = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0digirxqlwdg79mkbn70yc7i9i1qnclm2wjbrc47kqv6236bpj00";
- type = "gem";
- };
- version = "0.1";
- };
- character_set = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "114npdbw1ivyx4vnid8ncnjw4wnjcipf2lvihlg3ibbh7an0m9s9";
- type = "gem";
- };
- version = "1.1.2";
- };
- charlock_holmes = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1nf1l31n10yaark2rrg5qzyzcx9w80681449s3j09qmnipsl8rl5";
- type = "gem";
- };
- version = "0.7.6";
- };
- childprocess = {
- dependencies = ["ffi"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0a61922kmvcxyj5l70fycapr87gz1dzzlkfpq85rfqk5vdh3d28p";
- type = "gem";
- };
- version = "0.9.0";
- };
- chronic = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1hrdkn4g8x7dlzxwb1rfgr8kw3bp4ywg5l4y4i9c2g5cwv62yvvn";
- type = "gem";
- };
- version = "0.10.2";
- };
- chronic_duration = {
- dependencies = ["numerizer"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1k7sx3xqbrn6s4pishh2pgr4kw6fmw63h00lh503l66k8x0qvigs";
- type = "gem";
- };
- version = "0.10.6";
- };
- chunky_png = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0vf0axgrm95bs3y0x5gdb76xawfh210yxplj7jbwr6z7n88i1axn";
- type = "gem";
- };
- version = "1.3.5";
- };
- citrus = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0l7nhk3gkm1hdchkzzhg2f70m47pc0afxfpl6mkiibc9qcpl3hjf";
- type = "gem";
- };
- version = "3.0.2";
- };
- coderay = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y";
- type = "gem";
- };
- version = "1.1.2";
- };
- coercible = {
- dependencies = ["descendants_tracker"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1p5azydlsz0nkxmcq0i1gzmcfq02lgxc4as7wmf47j1c6ljav0ah";
- type = "gem";
- };
- version = "1.0.0";
- };
- commonmarker = {
- dependencies = ["ruby-enum"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1pmjm87p0hxnknp33cxyvkgbr1swfp9gcznssmalm9z8kwyancb9";
- type = "gem";
- };
- version = "0.17.13";
- };
- concord = {
- dependencies = ["adamantium" "equalizer"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1b6cdn0fg4n9gzbdr7zyf4jq40y6h0c0g9cra7wk9hhmsylk91bg";
- type = "gem";
- };
- version = "0.1.5";
- };
- concurrent-ruby = {
- groups = ["default" "development" "mysql" "postgres" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1x07r23s7836cpp5z9yrlbpljcxpax14yw4fy4bnp6crhr6x24an";
- type = "gem";
- };
- version = "1.1.5";
- };
- concurrent-ruby-ext = {
- dependencies = ["concurrent-ruby"];
- groups = ["default" "mysql" "postgres"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "03ypsv2k581yv0b3f0hzvb3mq6mqj8jlbi32jmkj3k175vbc8hvz";
- type = "gem";
- };
- version = "1.1.5";
- };
- connection_pool = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0lflx29mlznf1hn0nihkgllzbj8xp5qasn8j7h838465pi399k68";
- type = "gem";
- };
- version = "2.2.2";
- };
- crack = {
- dependencies = ["safe_yaml"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0abb0fvgw00akyik1zxnq7yv391va148151qxdghnzngv66bl62k";
- type = "gem";
- };
- version = "0.4.3";
- };
- crass = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0bpxzy6gjw9ggjynlxschbfsgmx8lv3zw1azkjvnb8b9i895dqfi";
- type = "gem";
- };
- version = "1.0.4";
- };
- creole = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "00rcscz16idp6dx0dk5yi5i0fz593i3r6anbn5bg2q07v3i025wm";
- type = "gem";
- };
- version = "0.5.0";
- };
- css_parser = {
- dependencies = ["addressable"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0jlr17cn044yaq4l3d9p42g3bghnamwsprq9c39xn6pxjrn5k1hy";
- type = "gem";
- };
- version = "1.5.0";
- };
- daemons = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0lxqq6dgb8xhliywar2lvkwqy2ssraf9dk4b501pb4ixc2mvxbp2";
- type = "gem";
- };
- version = "1.2.6";
- };
- database_cleaner = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "05i0nf2aj70m61y3fspypdkc6d1qgibf5kav05a71b5gjz0k7y5x";
- type = "gem";
- };
- version = "1.7.0";
- };
- debug_inspector = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0vxr0xa1mfbkfcrn71n7c4f2dj7la5hvphn904vh20j3x4j5lrx0";
- type = "gem";
- };
- version = "0.0.3";
- };
- debugger-ruby_core_source = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1lp5dmm8a8dpwymv6r1y6yr24wxsj0gvgb2b8i7qq9rcv414snwd";
- type = "gem";
- };
- version = "1.3.8";
- };
- deckar01-task_list = {
- dependencies = ["html-pipeline"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0s637v5pi5ipmv0gn9g2wwjpxdm27dvppfjd8ml0dc1m0jsm7964";
- type = "gem";
- };
- version = "2.2.0";
- };
- declarative = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0642xvwzzbgi3kp1bg467wma4g3xqrrn0sk369hjam7w579gnv5j";
- type = "gem";
- };
- version = "0.0.10";
- };
- declarative-option = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1g4ibxq566f1frnhdymzi9hxxcm4g2gw4n21mpjk2mhwym4q6l0p";
- type = "gem";
- };
- version = "0.1.0";
- };
- default_value_for = {
- dependencies = ["activerecord"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1xj9d1y2fk3kxfm1kyiwasjpw6r1w7c1xjx26sm3c33xhmz57fla";
- type = "gem";
- };
- version = "3.2.0";
- };
- derailed_benchmarks = {
- dependencies = ["benchmark-ips" "get_process_mem" "heapy" "memory_profiler" "rack" "rake" "thor"];
- groups = ["development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1c9djg1r2w461h97zmmdsdgnsrxqm4qfyp7gry9qxbav9skrplb8";
- type = "gem";
- };
- version = "1.3.5";
- };
- descendants_tracker = {
- dependencies = ["thread_safe"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "15q8g3fcqyb41qixn6cky0k3p86291y7xsh1jfd851dvrza1vi79";
- type = "gem";
- };
- version = "0.0.4";
- };
- device_detector = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0zbsjj1bgwmsiqiw6x5fzbzp25xc10c02s37ggl2635ha0qzn05q";
- type = "gem";
- };
- version = "1.0.0";
- };
- devise = {
- dependencies = ["bcrypt" "orm_adapter" "railties" "responders" "warden"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "04b2p61mqfb6ln8s2lhmvnkd45wjjinykbn9svmhs54kacrrjkcf";
- type = "gem";
- };
- version = "4.6.2";
- };
- devise-two-factor = {
- dependencies = ["activesupport" "attr_encrypted" "devise" "railties" "rotp"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1pkldws5lga4mlv4xmcrfb0yivl6qad0l8qyb2hdb50adv6ny4gs";
- type = "gem";
- };
- version = "3.0.0";
- };
- diff-lcs = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza";
- type = "gem";
- };
- version = "1.3";
- };
- diffy = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1azibizfv91sjbzhjqj1pg2xcv8z9b8a7z6kb3wpl4hpj5hil5kj";
- type = "gem";
- };
- version = "3.1.0";
- };
- discordrb-webhooks-blackst0ne = {
- dependencies = ["rest-client"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1f0dw6ci5cbrxrvvqw2kqabpzyjisd4hflbi370rpb4cakkzgw39";
- type = "gem";
- };
- version = "3.3.0";
- };
- docile = {
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "04d2izkna3ahfn6fwq4xrcafa715d3bbqczxm16fq40fqy87xn17";
- type = "gem";
- };
- version = "1.3.1";
- };
- domain_name = {
- dependencies = ["unf"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0abdlwb64ns7ssmiqhdwgl27ly40x2l27l8hs8hn0z4kb3zd2x3v";
- type = "gem";
- };
- version = "0.5.20180417";
- };
- doorkeeper = {
- dependencies = ["railties"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "022r03i830b2lvmr0xzlj6ivlvc1zr64hy4a4bsy3flv94da77rz";
- type = "gem";
- };
- version = "4.3.2";
- };
- doorkeeper-openid_connect = {
- dependencies = ["doorkeeper" "json-jwt"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1wgrz0xcply5vl6d1m62blqwcbn4v0b27bswyws2y9wbyglz6f95";
- type = "gem";
- };
- version = "1.5.0";
- };
- ed25519 = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1f5kr8za7hvla38fc0n9jiv55iq62k5bzclsa5kdb14l3r4w6qnw";
- type = "gem";
- };
- version = "1.2.4";
- };
- email_reply_trimmer = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0vijywhy1acsq4187ss6w8a7ksswaf1d5np3wbj962b6rqif5vcz";
- type = "gem";
- };
- version = "0.1.6";
- };
- email_spec = {
- dependencies = ["htmlentities" "launchy" "mail"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0yadaif80cf2ry0nvhir1s70xmm22xzncq6vfvvffdd8h02ridv0";
- type = "gem";
- };
- version = "2.2.0";
- };
- encryptor = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0s8rvfl0vn8w7k1sgkc234060jh468s3zd45xa64p1jdmfa3zwmb";
- type = "gem";
- };
- version = "3.0.0";
- };
- equalizer = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1kjmx3fygx8njxfrwcmn7clfhjhb6bvv3scy2lyyi0wqyi3brra4";
- type = "gem";
- };
- version = "0.0.11";
- };
- erubi = {
- groups = ["default" "development" "mysql" "postgres" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1kagnf6ziahj0d781s6ryy6fwqwa3ad4xbzzj84p9m4nv4c2jir1";
- type = "gem";
- };
- version = "1.8.0";
- };
- escape_utils = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0qminivnyzwmqjhrh3b92halwbk0zcl9xn828p5rnap1szl2yag5";
- type = "gem";
- };
- version = "1.2.1";
- };
- et-orbi = {
- dependencies = ["tzinfo"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1swgjb3h2hs5xflb68837l0vd32masbz9c66b1963mxlnnxf5gsg";
- type = "gem";
- };
- version = "1.2.1";
- };
- eventmachine = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r";
- type = "gem";
- };
- version = "1.2.7";
- };
- excon = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "15l9w0938c19nxmrp09n75qpmm64k12xj69h47yvxzcxcpbgnkb2";
- type = "gem";
- };
- version = "0.62.0";
- };
- execjs = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0grlxwiccbnflxs30r3h7g23xnps5knav1jyqkk3anvm8363ifjw";
- type = "gem";
- };
- version = "2.6.0";
- };
- expression_parser = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1938z3wmmdabqxlh5d5c56xfg1jc6z15p7zjyhvk7364zwydnmib";
- type = "gem";
- };
- version = "0.9.0";
- };
- extended-markdown-filter = {
- dependencies = ["html-pipeline"];
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "17mi5qayplfaa6p3mfwa36il84ixr0bimqvl0q73lw5i81blp126";
- type = "gem";
- };
- version = "0.6.0";
- };
- factory_bot = {
- dependencies = ["activesupport"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0r975ba6y0mcy3aya099gpnjn5gf1h6fbw8f3smmjay5zvin3nwx";
- type = "gem";
- };
- version = "4.8.2";
- };
- factory_bot_rails = {
- dependencies = ["factory_bot" "railties"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0cdbp12ih2w77l331frv8gv6bv9dinn1663dy1jn0gb9ss1hwvs2";
- type = "gem";
- };
- version = "4.8.2";
- };
- faraday = {
- dependencies = ["multipart-post"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "157c4cmb5g1b3ny6k9qf9z57rfijl54fcq3hnqqf6g31g1m096b2";
- type = "gem";
- };
- version = "0.12.2";
- };
- faraday_middleware = {
- dependencies = ["faraday"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1p7icfl28nvl8qqdsngryz1snqic9l8x6bk0dxd7ygn230y0k41d";
- type = "gem";
- };
- version = "0.12.2";
- };
- faraday_middleware-multi_json = {
- dependencies = ["faraday_middleware" "multi_json"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0651sxhzbq9xfq3hbpmrp0nbybxnm9ja3m97k386m4bqgamlvz1q";
- type = "gem";
- };
- version = "0.0.6";
- };
- fast_blank = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "16s1ilyvwzmkcgmklbrn0c2pch5n02vf921njx0bld4crgdr6z56";
- type = "gem";
- };
- version = "1.0.0";
- };
- fast_gettext = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1s42dsy3rh9h37d16pwhswf2q9cx25v5fn3q881b5iz6fvdjixv3";
- type = "gem";
- };
- version = "1.6.0";
- };
- ffaker = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "01z5lpssjc0n8lm4xrlja0hh8lv4ngzbybjvd4rdkc5x9ddvh8s3";
- type = "gem";
- };
- version = "2.10.0";
- };
- ffi = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0j8pzj8raxbir5w5k6s7a042sb5k02pg0f8s4na1r5lan901j00p";
- type = "gem";
- };
- version = "1.10.0";
- };
- flipper = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1pdj9y3k6padiicfraxw9ibx9fm8yi2ihh608736lq5nnbf3k6gw";
- type = "gem";
- };
- version = "0.13.0";
- };
- flipper-active_record = {
- dependencies = ["activerecord" "flipper"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0rgm4h5h6xcbf17z47sw8ancaxva8x4hwlxmyqpm0vzj1pnc47c1";
- type = "gem";
- };
- version = "0.13.0";
- };
- flipper-active_support_cache_store = {
- dependencies = ["activesupport" "flipper"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0zpikmfhadb7l1ny6xbhk5d4840im6yq0wvfsnlw718spxi4ccgk";
- type = "gem";
- };
- version = "0.13.0";
- };
- flowdock = {
- dependencies = ["httparty" "multi_json"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "04nrvg4gzgabf5mnnhccl8bwrkvn3y4pm7a1dqzqhpvfr4m5pafg";
- type = "gem";
- };
- version = "0.7.1";
- };
- fog-aliyun = {
- dependencies = ["fog-core" "fog-json" "ipaddress" "xml-simple"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1vl5zf9wr6qwm1awxscyifvrrfqnyacidxgzhkba2wqlgizk3anh";
- type = "gem";
- };
- version = "0.3.3";
- };
- fog-aws = {
- dependencies = ["fog-core" "fog-json" "fog-xml" "ipaddress"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "086kyvdhf1k8nk7f4gmybjc3k0m88f9pw99frddcy1w96pj5kyg4";
- type = "gem";
- };
- version = "3.5.2";
- };
- fog-core = {
- dependencies = ["builder" "excon" "formatador" "mime-types"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1agd6xgzk0rxrsjdpn94v4hy89s0nm2cs4zg2p880w2dan9xgrak";
- type = "gem";
- };
- version = "2.1.0";
- };
- fog-google = {
- dependencies = ["fog-core" "fog-json" "fog-xml" "google-api-client"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0rxhcf2rhs8ml9j9xppz1yxgig3s1l5hm6yz582lqrs8bdmq028m";
- type = "gem";
- };
- version = "1.8.2";
- };
- fog-json = {
- dependencies = ["fog-core" "multi_json"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1zj8llzc119zafbmfa4ai3z5s7c4vp9akfs0f9l2piyvcarmlkyx";
- type = "gem";
- };
- version = "1.2.0";
- };
- fog-local = {
- dependencies = ["fog-core"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0ba4lln35nryi6dcbz68vxg9ml6v8cc8s8c82f7syfd84bz76x21";
- type = "gem";
- };
- version = "0.6.0";
- };
- fog-openstack = {
- dependencies = ["fog-core" "fog-json" "ipaddress"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "171xnsl6w0j7yi6sp26dcqahx4r4gb2cf359gmy11g5iwnsll5wg";
- type = "gem";
- };
- version = "1.0.8";
- };
- fog-rackspace = {
- dependencies = ["fog-core" "fog-json" "fog-xml" "ipaddress"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0y2bli061g37l9p4w0ljqbmg830rp2qz6sf8b0ck4cnx68j7m32a";
- type = "gem";
- };
- version = "0.1.1";
- };
- fog-xml = {
- dependencies = ["fog-core" "nokogiri"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "043lwdw2wsi6d55ifk0w3izi5l1d1h0alwyr3fixic7b94kc812n";
- type = "gem";
- };
- version = "0.1.3";
- };
- font-awesome-rails = {
- dependencies = ["railties"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "11mf7bk2737pyxjwba3a9lpgcxzbp0vgq01n2dn30774zysc90hj";
- type = "gem";
- };
- version = "4.7.0.4";
- };
- foreman = {
- dependencies = ["thor"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "06mq39lpmc17bxzlwhad9d8i0lcnbb08xr18smh2x79mm631wsw0";
- type = "gem";
- };
- version = "0.84.0";
- };
- formatador = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1gc26phrwlmlqrmz4bagq1wd5b7g64avpx0ghxr9xdxcvmlii0l0";
- type = "gem";
- };
- version = "0.2.5";
- };
- fugit = {
- dependencies = ["et-orbi" "raabro"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1x5h31hl75x0p5s36hinywg18ijlxjhnlb5p02aqcjjkx777rcav";
- type = "gem";
- };
- version = "1.2.1";
- };
- fuubar = {
- dependencies = ["rspec-core" "ruby-progressbar"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0jlv2wisgnim29h47shvqhipbz1wgndfdr7i6y5wcfag0z2660lv";
- type = "gem";
- };
- version = "2.2.0";
- };
- gemoji = {
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0vgklpmhdz98xayln5hhqv4ffdyrglzwdixkn5gsk9rj94pkymc0";
- type = "gem";
- };
- version = "3.0.1";
- };
- gemojione = {
- dependencies = ["json"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0ayk8r147k1s38nj18pwk76npx1p7jhi86silk800nj913pjvrhj";
- type = "gem";
- };
- version = "3.3.0";
- };
- get_process_mem = {
- groups = ["default" "development" "puma" "test" "unicorn"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1bvfjdign16r0zwm2rlfrq0sk1licvmlgbnlpnyckniv5r7i080g";
- type = "gem";
- };
- version = "0.2.3";
- };
- gettext = {
- dependencies = ["locale" "text"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0764vj7gacn0aypm2bf6m46dzjzwzrjlmbyx6qwwwzbmi94r40wr";
- type = "gem";
- };
- version = "3.2.9";
- };
- gettext_i18n_rails = {
- dependencies = ["fast_gettext"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0vs918a03mqvx9aczaqdg9d2q9s3c6swqavzn82qgq5i822czrcm";
- type = "gem";
- };
- version = "1.8.0";
- };
- gettext_i18n_rails_js = {
- dependencies = ["gettext" "gettext_i18n_rails" "po_to_json" "rails"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "11yn5cf92wsmlj5c1065mg6swf8gq9l6g9ahikvvyf9npvjay42x";
- type = "gem";
- };
- version = "1.3.0";
- };
- gitaly-proto = {
- dependencies = ["grpc"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1lx2cids0r175agdz3wa25ivi17vxx2kryb2v29gdsrpg3pyyq7j";
- type = "gem";
- };
- version = "1.37.0";
- };
- github-markup = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "17g6g18gdjg63k75sfwiskjzl9i0hfcnrkcpb4fwrnb20v3jgswp";
- type = "gem";
- };
- version = "1.7.0";
- };
- gitlab-labkit = {
- dependencies = ["actionpack" "activesupport" "grpc" "jaeger-client" "opentracing"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0dvapmdc9axm9dq2gg89qrqb318rkrsabpyybrqvcx1ipbi5k3a1";
- type = "gem";
- };
- version = "0.3.0";
- };
- gitlab-markup = {
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0rqf3jmyn78r3ysy3bjyx7s4yv3xipxlmqlmbyrbksna19rrx08d";
- type = "gem";
- };
- version = "1.7.0";
- };
- gitlab-sidekiq-fetcher = {
- dependencies = ["sidekiq"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1xaag97iclmiay8fx7dkiws8dsws2gi6l0axq4yljq5g7xm78qjr";
- type = "gem";
- };
- version = "0.4.0";
- };
- gitlab-styles = {
- dependencies = ["rubocop" "rubocop-gitlab-security" "rubocop-performance" "rubocop-rspec"];
- groups = ["development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1vxlvbq4jpq0cfjqippz9d3j73sq9qg3pna5pb0l8jr0rc0xs89y";
- type = "gem";
- };
- version = "2.7.0";
- };
- gitlab_omniauth-ldap = {
- dependencies = ["net-ldap" "omniauth" "pyu-ruby-sasl" "rubyntlm"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1f8cjbzlhckarmm59l380jjy33a3hlljg69b3zkh8rhy1xd3xr90";
- type = "gem";
- };
- version = "2.1.1";
- };
- globalid = {
- dependencies = ["activesupport"];
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1zkxndvck72bfw235bd9nl2ii0lvs5z88q14706cmn702ww2mxv1";
- type = "gem";
- };
- version = "0.4.2";
- };
- gon = {
- dependencies = ["actionpack" "multi_json" "request_store"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0q9nvnw98mbb40h7mlzn1zk40r2l29yybhinmiqhrq8a6adsv806";
- type = "gem";
- };
- version = "6.2.0";
- };
- google-api-client = {
- dependencies = ["addressable" "googleauth" "httpclient" "mime-types" "representable" "retriable"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "05h2lca9b334ayabgs3h0mzc2wg3csvkqv1lv3iirpgf90ypbk1k";
- type = "gem";
- };
- version = "0.23.4";
- };
- google-protobuf = {
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "04988m3hmllg4sl4syjb35x0wzsg7rj1nmvhx3d9ihml22w76gb2";
- type = "gem";
- };
- version = "3.7.1";
- };
- googleapis-common-protos-types = {
- dependencies = ["google-protobuf"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0hyr94cafiqj0k8q19hnl658pmbz2b404akikzfv4hdb1j1bwsg1";
- type = "gem";
- };
- version = "1.0.4";
- };
- googleauth = {
- dependencies = ["faraday" "jwt" "memoist" "multi_json" "os" "signet"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1747p1dhpvz76i98xnjrvaj785y1232svm0nc8g9by6pz835gp2l";
- type = "gem";
- };
- version = "0.6.6";
- };
- gpgme = {
- dependencies = ["mini_portile2"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "12fqirxr964mc8jwsfl5nif6q4wcckrmj7w4c9ci4xg9xy2b9v6m";
- type = "gem";
- };
- version = "2.0.18";
- };
- grape = {
- dependencies = ["activesupport" "builder" "mustermann-grape" "rack" "rack-accept" "virtus"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "04bam0iq9sad1df361317zz4knwci905yig502khl8gm1lp1168c";
- type = "gem";
- };
- version = "1.1.0";
- };
- grape-entity = {
- dependencies = ["activesupport" "multi_json"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1w78wylkhdkc0s6n6d20hggbb3pl3ladzzd5lx6ack2iswybx7b9";
- type = "gem";
- };
- version = "0.7.1";
- };
- grape-path-helpers = {
- dependencies = ["activesupport" "grape" "rake"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "16l6lrv4h4ls0lrpj35pc00431q2rx6r9n47337qyvprxs3v0a01";
- type = "gem";
- };
- version = "1.1.0";
- };
- grape_logging = {
- dependencies = ["grape"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0lg2vhk0dlnyqs2rz8wilfm039q5mbsp5nvf51asir48a1rf9yza";
- type = "gem";
- };
- version = "1.7.0";
- };
- graphiql-rails = {
- dependencies = ["railties" "sprockets-rails"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "10q5zipwgjgaan9lfqakdkm5ry8afgkq79bkimgksn6jyyvpz6w8";
- type = "gem";
- };
- version = "1.4.10";
- };
- graphql = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "10bnl8yjyg5x6h787cfkpd5gphl5z5jblj8fc9lbmgk27n2knssl";
- type = "gem";
- };
- version = "1.8.1";
- };
- graphql-docs = {
- dependencies = ["commonmarker" "escape_utils" "extended-markdown-filter" "gemoji" "graphql" "html-pipeline" "sass"];
- groups = ["development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "12wzsikbn54b2hcv100hz7isq5gdjm5w5b8xya64ra5sw6sabq8d";
- type = "gem";
- };
- version = "1.6.0";
- };
- grpc = {
- dependencies = ["google-protobuf" "googleapis-common-protos-types"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1rdywzism5vxz8pnml6xjb9f19diclyy74014z69q01jzqwi1wgs";
- type = "gem";
- };
- version = "1.19.0";
- };
- haml = {
- dependencies = ["temple" "tilt"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1q0a9fvqh8kn6wm97fcks6qzbjd400bv8bx748w8v87m7p4klhac";
- type = "gem";
- };
- version = "5.0.4";
- };
- haml_lint = {
- dependencies = ["haml" "rainbow" "rake" "rubocop" "sysexits"];
- groups = ["development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1k6pvb2lc6d72nq01jqmi3mxpp80m9mmbc265kgaxmcnjxqhacb1";
- type = "gem";
- };
- version = "0.31.0";
- };
- hamlit = {
- dependencies = ["temple" "thor" "tilt"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0hk338vkzmwszxdh0q02iw88rbr3bj3fd7fzn4psm8wy80zcgl9i";
- type = "gem";
- };
- version = "2.8.8";
- };
- hangouts-chat = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1dmnv3723c22683bzys8walkl6wi74xzawxjbhwqzjdbwk3bdgmx";
- type = "gem";
- };
- version = "0.0.5";
- };
- hashdiff = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "19ykg5pax8798nh1yv71adkx0zzs7gn2rxjj86v7nsw0jba5lask";
- type = "gem";
- };
- version = "0.3.8";
- };
- hashie = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1hh5lybf8hm7d7xs4xm8hxvm8xqrs2flc8fnwkrclaj746izw6xb";
- type = "gem";
- };
- version = "3.5.7";
- };
- hashie-forbidden_attributes = {
- dependencies = ["hashie"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1chgg5d2iddja6ww02x34g8avg11fzmzcb8yvnqlykii79zx6vis";
- type = "gem";
- };
- version = "0.1.1";
- };
- health_check = {
- dependencies = ["rails"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1mfa180nyzz1j0abfihm5nm3lmzq99362ibcphky6rh5vwhckvm8";
- type = "gem";
- };
- version = "2.6.0";
- };
- heapy = {
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1r9f38fpgjgaxskkwvsliijj6vfmgsff9pnranvvvzkdl67hk1hw";
- type = "gem";
- };
- version = "0.1.4";
- };
- hipchat = {
- dependencies = ["httparty" "mimemagic"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0hgy5jav479vbzzk53lazhpjj094dcsqw6w1d6zjn52p72bwq60k";
- type = "gem";
- };
- version = "1.5.2";
- };
- html-pipeline = {
- dependencies = ["activesupport" "nokogiri"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1mpj5y13jk1arqkhdk66n49kyglmci980c1l6np7pqgyjllb68ad";
- type = "gem";
- };
- version = "2.8.4";
- };
- html2text = {
- dependencies = ["nokogiri"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0kxdj8pf9pss9xgs8aac0alj5g1fi225yzdhh33lzampkazg1hii";
- type = "gem";
- };
- version = "0.2.0";
- };
- htmlentities = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj";
- type = "gem";
- };
- version = "4.3.4";
- };
- http = {
- dependencies = ["addressable" "http-cookie" "http-form_data" "http_parser.rb"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1jlm5prw437wqpfxcigh88lfap3m7g8mnmj5as7qw6dzqnvrxwmc";
- type = "gem";
- };
- version = "3.3.0";
- };
- http-cookie = {
- dependencies = ["domain_name"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "004cgs4xg5n6byjs7qld0xhsjq3n6ydfh897myr2mibvh6fjc49g";
- type = "gem";
- };
- version = "1.0.3";
- };
- http-form_data = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "15lpn604byf7cyxnw949xz4rvpcknqp7a48q73nm630gqxsa76f3";
- type = "gem";
- };
- version = "2.1.1";
- };
- "http_parser.rb" = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi";
- type = "gem";
- };
- version = "0.6.0";
- };
- httparty = {
- dependencies = ["mime-types" "multi_xml"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "109xvhl35dsk9zp65n5pdkhiijhqxdyvajbs74nkp4z8yl09vj32";
- type = "gem";
- };
- version = "0.16.4";
- };
- httpclient = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99";
- type = "gem";
- };
- version = "2.8.3";
- };
- i18n = {
- dependencies = ["concurrent-ruby"];
- groups = ["default" "development" "mysql" "postgres" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1hfxnlyr618s25xpafw9mypa82qppjccbh292c4l3bj36az7f6wl";
- type = "gem";
- };
- version = "1.6.0";
- };
- icalendar = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1xsydpp2xph00awi25axv2mwjd5p2rlgd4qb3kh05lvq795kirxd";
- type = "gem";
- };
- version = "2.4.1";
- };
- ice_nine = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1nv35qg1rps9fsis28hz2cq2fx1i96795f91q4nmkm934xynll2x";
- type = "gem";
- };
- version = "0.11.2";
- };
- influxdb = {
- dependencies = ["cause" "json"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1vhg5nd88nwvfa76lqcczld916nljswwq6clsixrzi3js8ym9y1w";
- type = "gem";
- };
- version = "0.2.3";
- };
- ipaddress = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1x86s0s11w202j6ka40jbmywkrx8fhq8xiy8mwvnkhllj57hqr45";
- type = "gem";
- };
- version = "0.8.3";
- };
- jaeger-client = {
- dependencies = ["opentracing" "thrift"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "198m72c9w3wfwr1mq22dcjjm7d4jd0bci4lrq6zq2zvlzhi04n8l";
- type = "gem";
- };
- version = "0.10.0";
- };
- jaro_winkler = {
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1zz27z88qznix4r65gd9h56gl177snlfpgv10b0s69vi8qpl909l";
- type = "gem";
- };
- version = "1.5.2";
- };
- jira-ruby = {
- dependencies = ["activesupport" "multipart-post" "oauth"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "14019mliqwcppj6qp2wdhh5gbvs2yh2idibag13m9a18ag965bhw";
- type = "gem";
- };
- version = "1.4.1";
- };
- js_regex = {
- dependencies = ["character_set" "regexp_parser" "regexp_property_values"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0wi4h4f3knb0yp4zq2spks3dpmdzz9wa54d6xk88md0h4v2x33cq";
- type = "gem";
- };
- version = "3.1.1";
- };
- json = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0qmj7fypgb9vag723w1a49qihxrcf5shzars106ynw2zk352gbv5";
- type = "gem";
- };
- version = "1.8.6";
- };
- json-jwt = {
- dependencies = ["activesupport" "aes_key_wrap" "bindata"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "065k7vffdki73f4nz89lxi6wxmcw5dlf593831pgvlbralll6x3r";
- type = "gem";
- };
- version = "1.9.4";
- };
- json-schema = {
- dependencies = ["addressable"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "11di8qyam6bmqn0fvvvf3crgaqy4sil0d406ymx0jacn3ff98ymz";
- type = "gem";
- };
- version = "2.8.0";
- };
- jwt = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1w0kaqrbl71cq9sbnixc20x5lqah3hs2i93xmhlfdg2y3by7yzky";
- type = "gem";
- };
- version = "2.1.0";
- };
- kaminari = {
- dependencies = ["activesupport" "kaminari-actionview" "kaminari-activerecord" "kaminari-core"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0invfvfb252ihsdr65rylkvd1x2wy004jval52v3i8ybb0jhc5hi";
- type = "gem";
- };
- version = "1.0.1";
- };
- kaminari-actionview = {
- dependencies = ["actionview" "kaminari-core"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0mhhsm6xhmwqc7hfw7xnk1kdbfg468bqs5awcqm5j6j8b9zyjvdi";
- type = "gem";
- };
- version = "1.0.1";
- };
- kaminari-activerecord = {
- dependencies = ["activerecord" "kaminari-core"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1kb5aj6iy1cwcq5548jd3w1ipxicnzmnx2ay1s4hvad2gvrd4g93";
- type = "gem";
- };
- version = "1.0.1";
- };
- kaminari-core = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0r2n293ad1xr9wgn8cr53nfzwls4w3p1xi4kjfjgl1z0yf05mpwr";
- type = "gem";
- };
- version = "1.0.1";
- };
- kgio = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1528pyj1szzzp3pgj05fzjd36qjrxm9yj2x5radc9p1z7vl67y50";
- type = "gem";
- };
- version = "2.11.2";
- };
- knapsack = {
- dependencies = ["rake"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1c69rcwfrdrnx8ddl6k1qxhw9f2dj5x5bbddz435isl2hfr5zh92";
- type = "gem";
- };
- version = "1.17.0";
- };
- kramdown = {
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1n1c4jmrh5ig8iv1rw81s4mw4xsp4v97hvf8zkigv4hn5h542qjq";
- type = "gem";
- };
- version = "1.17.0";
- };
- kubeclient = {
- dependencies = ["http" "recursive-open-struct" "rest-client"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "10761kwhgclnf2lrdjspmxnw90z7i0l85inranfxc688ing0d5xn";
- type = "gem";
- };
- version = "4.2.2";
- };
- launchy = {
- dependencies = ["addressable"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "190lfbiy1vwxhbgn4nl4dcbzxvm049jwc158r2x7kq3g5khjrxa2";
- type = "gem";
- };
- version = "2.4.3";
- };
- letter_opener = {
- dependencies = ["launchy"];
- groups = ["default" "development"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "09a7kgsmr10a0hrc9bwxglgqvppjxij9w8bxx91mnvh0ivaw0nq9";
- type = "gem";
- };
- version = "1.7.0";
- };
- letter_opener_web = {
- dependencies = ["actionmailer" "letter_opener" "railties"];
- groups = ["development"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "17qhwrkncrrp1bi2f7fbkm5lpnkdsiwy8jcvgr2wa97ck8y4x2bb";
- type = "gem";
- };
- version = "1.3.4";
- };
- license_finder = {
- dependencies = ["rubyzip" "thor" "toml" "with_env" "xml-simple"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "01rhqm5m3m22gq6q9f1x9fh3x3wrf9khnnsycblj0xg5frdjv77v";
- type = "gem";
- };
- version = "5.4.0";
- };
- licensee = {
- dependencies = ["rugged"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0w6d2smhg3kzcx4m2ii06akakypwhiglansk51bpx290hhc8h3pc";
- type = "gem";
- };
- version = "8.9.2";
- };
- locale = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1sls9bq4krx0fmnzmlbn64dw23c4d6pz46ynjzrn9k8zyassdd0x";
- type = "gem";
- };
- version = "2.1.2";
- };
- lograge = {
- dependencies = ["actionpack" "activesupport" "railties" "request_store"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "00lcn7s3slfn32di4qwlx2yj5f9r2pcnd0naxrvqqwypcg1z2sdd";
- type = "gem";
- };
- version = "0.10.0";
- };
- loofah = {
- dependencies = ["crass" "nokogiri"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1ccsid33xjajd0im2xv941aywi58z7ihwkvaf1w2bv89vn5bhsjg";
- type = "gem";
- };
- version = "2.2.3";
- };
- mail = {
- dependencies = ["mini_mime"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "00wwz6ys0502dpk8xprwcqfwyf3hmnx6lgxaiq6vj43mkx43sapc";
- type = "gem";
- };
- version = "2.7.1";
- };
- mail_room = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "16b8yjd1if665mwaindwys06nkkcs0jw3dcsqvn6qbp6alfigqaa";
- type = "gem";
- };
- version = "0.9.1";
- };
- marcel = {
- dependencies = ["mimemagic"];
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1nxbjmcyg8vlw6zwagf17l9y2mwkagmmkg95xybpn4bmf3rfnksx";
- type = "gem";
- };
- version = "0.3.3";
- };
- mdl = {
- dependencies = ["kramdown" "mixlib-cli" "mixlib-config"];
- groups = ["development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "047hp8z1ma630wp38bm1giklkf385rp6wly8aidn825q831w2g4i";
- type = "gem";
- };
- version = "0.5.0";
- };
- memoist = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0pq8fhqh8w25qcw9v3vzfb0i6jp0k3949ahxc3wrwz2791dpbgbh";
- type = "gem";
- };
- version = "0.16.0";
- };
- memoizable = {
- dependencies = ["thread_safe"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0v42bvghsvfpzybfazl14qhkrjvx0xlmxz0wwqc960ga1wld5x5c";
- type = "gem";
- };
- version = "0.4.2";
- };
- memory_profiler = {
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1xki7jrbzylsmk1brjibmhifb0x70skr55pdq4rvxcyrlnrrvyxz";
- type = "gem";
- };
- version = "0.9.13";
- };
- method_source = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1pviwzvdqd90gn6y7illcdd9adapw8fczml933p5vl739dkvl3lq";
- type = "gem";
- };
- version = "0.9.2";
- };
- mime-types = {
- dependencies = ["mime-types-data"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0fjxy1jm52ixpnv3vg9ld9pr9f35gy0jp66i1njhqjvmnvq0iwwk";
- type = "gem";
- };
- version = "3.2.2";
- };
- mime-types-data = {
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1m00pg19cm47n1qlcxgl91ajh2yq0fszvn1vy8fy0s1jkrp9fw4a";
- type = "gem";
- };
- version = "3.2019.0331";
- };
- mimemagic = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "00ibc1mhvdfyfyl103xwb45621nwyqxf124cni5hyfhag0fn1c3q";
- type = "gem";
- };
- version = "0.3.2";
- };
- mini_magick = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1djxfs9rxw6q6vr6wb4ndxhp1vj1zbwb55s1kf6mz9bzgmswqg0n";
- type = "gem";
- };
- version = "4.8.0";
- };
- mini_mime = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1q4pshq387lzv9m39jv32vwb8wrq3wc4jwgl4jk209r4l33v09d3";
- type = "gem";
- };
- version = "1.0.1";
- };
- mini_portile2 = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
- type = "gem";
- };
- version = "2.4.0";
- };
- minitest = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq";
- type = "gem";
- };
- version = "5.11.3";
- };
- mixlib-cli = {
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0647msh7kp7lzyf6m72g6snpirvhimjm22qb8xgv9pdhbcrmcccp";
- type = "gem";
- };
- version = "1.7.0";
- };
- mixlib-config = {
- dependencies = ["tomlrb"];
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1gm6yj9cbbgsl9x4xqxga0vz5w0ksq2jnq1wj8hvgm5c4wfcrswb";
- type = "gem";
- };
- version = "2.2.18";
- };
- msgpack = {
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1w38hilm3dk42dwk8ygiq49bl4in7y80hfqr63hk54mj4gmzi6ch";
- type = "gem";
- };
- version = "1.2.10";
- };
- multi_json = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
- type = "gem";
- };
- version = "1.13.1";
- };
- multi_xml = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0lmd4f401mvravi1i1yq7b2qjjli0yq7dfc4p1nj5nwajp7r6hyj";
- type = "gem";
- };
- version = "0.6.0";
- };
- multipart-post = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x";
- type = "gem";
- };
- version = "2.0.0";
- };
- mustermann = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0lycgkmnyy0bf29nnd2zql5a6pcf8sp69g9v4xw0gcfcxgpwp7i1";
- type = "gem";
- };
- version = "1.0.3";
- };
- mustermann-grape = {
- dependencies = ["mustermann"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "10xdggddjl8nraq7pbli31lwgrzxzz8gp558i811lsv71fqbmhzr";
- type = "gem";
- };
- version = "1.0.0";
- };
- mysql2 = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0qjd97w6a0w9aldsrhb2y6jrc4wnnlbj5j8kcl7pp7vviwa0r5iq";
- type = "gem";
- };
- version = "0.4.10";
- };
- nakayoshi_fork = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1mj5czi7rxxmfq4v9qjz74lcqypvnjxhxqfs71zhb2rsfa97a6jg";
- type = "gem";
- };
- version = "0.0.4";
- };
- net-ldap = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1fh4l8zfsrvghanpnjxk944k7yl093qpw4759xs6f1v9kb73ihfq";
- type = "gem";
- };
- version = "0.16.0";
- };
- net-ssh = {
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "101wd2px9lady54aqmkibvy4j62zk32w0rjz4vnigyg974fsga40";
- type = "gem";
- };
- version = "5.2.0";
- };
- netrc = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0gzfmcywp1da8nzfqsql2zqi648mfnx6qwkig3cv36n9m0yy676y";
- type = "gem";
- };
- version = "0.11.0";
- };
- nio4r = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1a41ca1kpdmrypjp9xbgvckpy8g26zxphkja9vk7j5wl4n8yvlyr";
- type = "gem";
- };
- version = "2.3.1";
- };
- nokogiri = {
- dependencies = ["mini_portile2"];
- groups = ["default" "development" "mysql" "postgres" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "02bjydih0j515szfv9mls195cvpyidh6ixm7dwbl3s2sbaxxk5s4";
- type = "gem";
- };
- version = "1.10.3";
- };
- nokogumbo = {
- dependencies = ["nokogiri"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "09qc1c7acv9qm48vk2kzvnrq4ij8jrql1cv33nmv2nwmlggy0jyj";
- type = "gem";
- };
- version = "1.5.0";
- };
- numerizer = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0vrk9jbv4p4dcz0wzr72wrf5kajblhc5l9qf7adbcwi4qvz9xv0h";
- type = "gem";
- };
- version = "0.1.1";
- };
- oauth = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1zszdg8q1b135z7l7crjj234k4j0m347hywp5kj6zsq7q78pw09y";
- type = "gem";
- };
- version = "0.5.4";
- };
- oauth2 = {
- dependencies = ["faraday" "jwt" "multi_json" "multi_xml" "rack"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0av6nlb5y2sm6m8fx669ywrqa9858yqaqfqzny75nqp3anag89qh";
- type = "gem";
- };
- version = "1.4.1";
- };
- octokit = {
- dependencies = ["sawyer"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1ssn5iyax07a22mvmj0y45bfy8ali129bl1qmasp6bcg03bvk298";
- type = "gem";
- };
- version = "4.9.0";
- };
- omniauth = {
- dependencies = ["hashie" "rack"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1p16h1rp8by05k8gfw17xjhgwp60dk8qmj1xalv1n23kmxfsxb1x";
- type = "gem";
- };
- version = "1.9.0";
- };
- omniauth-auth0 = {
- dependencies = ["omniauth-oauth2"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0id5gn14av81kh41cq4q6c9knyvzl7vc4rs3m4pmpd43g2z6jdw2";
- type = "gem";
- };
- version = "2.0.0";
- };
- omniauth-authentiq = {
- dependencies = ["jwt" "omniauth-oauth2"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0k7vajxwplsp188xfj4mi9iqbc7f7djqh02by4mphc51hl87kcqi";
- type = "gem";
- };
- version = "0.3.3";
- };
- omniauth-azure-oauth2 = {
- dependencies = ["jwt" "omniauth" "omniauth-oauth2"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1a3iqy63l1jd6na4y0bj4a8mlp7gcn3a0awnz9g79fa8n4v2g8n4";
- type = "gem";
- };
- version = "0.0.10";
- };
- omniauth-cas3 = {
- dependencies = ["addressable" "nokogiri" "omniauth"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "191b4jm4djmmy54yxfxj3c889r2wn3g6sfsdj6l1rjy0kw1m2qgx";
- type = "gem";
- };
- version = "1.1.4";
- };
- omniauth-facebook = {
- dependencies = ["omniauth-oauth2"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "03zjla9i446fk1jkw7arh67c39jfhp5bhkmhvbw8vczxr1jkbbh5";
- type = "gem";
- };
- version = "4.0.0";
- };
- omniauth-github = {
- dependencies = ["omniauth" "omniauth-oauth2"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0yg7k4p95ybcsii17spqarl8rpfzkq0kb19ab6wl4lc922zgfbqc";
- type = "gem";
- };
- version = "1.3.0";
- };
- omniauth-gitlab = {
- dependencies = ["omniauth" "omniauth-oauth2"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "19ydk2zd2mz8zi80z3l03pajpm9357sg3lrankrcb3pirkkdb9fp";
- type = "gem";
- };
- version = "1.0.3";
- };
- omniauth-google-oauth2 = {
- dependencies = ["jwt" "omniauth" "omniauth-oauth2"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "03v2gqpsbdhkqaxhvzr83za885awm6pgskv3mkyfvang7mr321df";
- type = "gem";
- };
- version = "0.6.0";
- };
- omniauth-kerberos = {
- dependencies = ["omniauth-multipassword" "timfel-krb5-auth"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "05xsv76qjxcxzrvabaar2bchv7435y8l2j0wk4zgchh3yv85kiq7";
- type = "gem";
- };
- version = "0.3.0";
- };
- omniauth-multipassword = {
- dependencies = ["omniauth"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0qykp76hw80lkgb39hyzrv68hkbivc8cv0vbvrnycjh9fwfp1lv8";
- type = "gem";
- };
- version = "0.4.2";
- };
- omniauth-oauth = {
- dependencies = ["oauth" "omniauth"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1n5vk4by7hkyc09d9blrw2argry5awpw4gbw1l4n2s9b3j4qz037";
- type = "gem";
- };
- version = "1.1.0";
- };
- omniauth-oauth2 = {
- dependencies = ["oauth2" "omniauth"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "11mi36l9d97r77q99jnafdc1yaa0a9wahhpp7dj7ank8q52g7g79";
- type = "gem";
- };
- version = "1.6.0";
- };
- omniauth-oauth2-generic = {
- dependencies = ["omniauth-oauth2"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1m6vpip3rm1spx1x9y1kjczzailsph1xqgaakqylzq3jqkv18273";
- type = "gem";
- };
- version = "0.2.2";
- };
- omniauth-salesforce = {
- dependencies = ["omniauth" "omniauth-oauth2"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0sr7xmffx6dbsrvnh6spka5ljyzf69iac754xw5r1736py41qhpj";
- type = "gem";
- };
- version = "1.0.5";
- };
- omniauth-saml = {
- dependencies = ["omniauth" "ruby-saml"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "17lji8i4q9k3yi8lmjwlw8rfpp2sc74jv8d6flgq85lg5brfqq1p";
- type = "gem";
- };
- version = "1.10.0";
- };
- omniauth-shibboleth = {
- dependencies = ["omniauth"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "04yin7j8xpr8llvank3ivzahqkc6ss5bppc7q6znzdswxmf75fxh";
- type = "gem";
- };
- version = "1.3.0";
- };
- omniauth-twitter = {
- dependencies = ["omniauth-oauth" "rack"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0r5j65hkpgzhvvbs90id3nfsjgsad6ymzggbm7zlaxvnrmvnrk65";
- type = "gem";
- };
- version = "1.4.0";
- };
- omniauth-ultraauth = {
- dependencies = ["omniauth_openid_connect"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1z8gz8ql4vb8y5n4lr67afnjmp23bpqi18dmda5psigvd2jddyn8";
- type = "gem";
- };
- version = "0.0.2";
- };
- omniauth_crowd = {
- dependencies = ["activesupport" "nokogiri" "omniauth"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "12g5ck05h6kr9mnp870x8pkxsadg81ca70hg8n3k8xx007lfw2q7";
- type = "gem";
- };
- version = "2.2.3";
- };
- omniauth_openid_connect = {
- dependencies = ["addressable" "omniauth" "openid_connect"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0ja7cjlm4z0k0pwwy64djl58pay3lzkw7im565fybs4a8q4wmacb";
- type = "gem";
- };
- version = "0.3.1";
- };
- openid_connect = {
- dependencies = ["activemodel" "attr_required" "json-jwt" "rack-oauth2" "swd" "tzinfo" "validate_email" "validate_url" "webfinger"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1r13bv18nyvw0g1nw3fzffvv2si99zj24w0k5zgawf4q6nn5f7vd";
- type = "gem";
- };
- version = "1.1.6";
- };
- opentracing = {
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "11lj1d8vq0hkb5hjz8q4lm82cddrggpbb33dhqfn7rxhwsmxgdfy";
- type = "gem";
- };
- version = "0.5.0";
- };
- optimist = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "05jxrp3nbn5iilc1k7ir90mfnwc5abc9h78s5rpm3qafwqxvcj4j";
- type = "gem";
- };
- version = "3.0.0";
- };
- org-ruby = {
- dependencies = ["rubypants"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0x69s7aysfiwlcpd9hkvksfyld34d8kxr62adb59vjvh8hxfrjwk";
- type = "gem";
- };
- version = "0.9.12";
- };
- orm_adapter = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1fg9jpjlzf5y49qs9mlpdrgs5rpcyihq1s4k79nv9js0spjhnpda";
- type = "gem";
- };
- version = "0.5.0";
- };
- os = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1s401gvhqgs2r8hh43ia205mxsy1wc0ib4k76wzkdpspfcnfr1rk";
- type = "gem";
- };
- version = "1.0.0";
- };
- parallel = {
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1x1gzgjrdlkm1aw0hfpyphsxcx90qgs3y4gmp9km3dvf4hc4qm8r";
- type = "gem";
- };
- version = "1.17.0";
- };
- parser = {
- dependencies = ["ast"];
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1pnks149x0fzgqiw53qlmvcd8bi746cxdw03sjljby5s97p1fskn";
- type = "gem";
- };
- version = "2.6.3.0";
- };
- parslet = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "12nrzfwjphjlakb9pmpj70hgjwgzvnr8i1zfzddifgyd44vspl88";
- type = "gem";
- };
- version = "1.8.2";
- };
- peek = {
- dependencies = ["concurrent-ruby" "concurrent-ruby-ext" "railties"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1998vcsli215d6qrn9821gr2qip60xki2p7n2dpn8i1n68hyshcn";
- type = "gem";
- };
- version = "1.0.1";
- };
- peek-gc = {
- dependencies = ["peek"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "094h3mr9q8wzbqsj0girpyjvj4bcxax8m438igp42n75xv0bhwi9";
- type = "gem";
- };
- version = "0.0.2";
- };
- peek-mysql2 = {
- dependencies = ["concurrent-ruby" "concurrent-ruby-ext" "mysql2" "peek"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0avmwm3yw0kx0z8gh4cpqj79jb5aicd0h3yzrcdfpzwks56h1k9z";
- type = "gem";
- };
- version = "1.2.0";
- };
- peek-pg = {
- dependencies = ["concurrent-ruby" "concurrent-ruby-ext" "peek" "pg"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "17yk8xrh7yh57wg6vi3s8km9qd9f910n94r511mdyqd7aizlfb7c";
- type = "gem";
- };
- version = "1.3.0";
- };
- peek-rblineprof = {
- dependencies = ["peek" "rblineprof"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0ywk1gvsnhrkhqq2ibwsg7099kg5m2vs4nmzy0wf65kb0ywl0m9c";
- type = "gem";
- };
- version = "0.2.0";
- };
- peek-redis = {
- dependencies = ["atomic" "peek" "redis"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0v91cni591d9wdrmvgam20gr3504x84mh1l95da4rz5a9436jm33";
- type = "gem";
- };
- version = "1.2.0";
- };
- pg = {
- groups = ["development" "postgres" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0fmnyxcyrvgdbgq7m09whgn9i8rwfybk0w8aii1nc4g5kqw0k2jy";
- type = "gem";
- };
- version = "1.1.4";
- };
- po_to_json = {
- dependencies = ["json"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1xvanl437305mry1gd57yvcg7xrfhri91czr32bjr8j2djm8hwba";
- type = "gem";
- };
- version = "1.0.1";
- };
- premailer = {
- dependencies = ["addressable" "css_parser" "htmlentities"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "10w6f7r6snpkcnv3byxma9b08lyqzcfxkm083scb2dr2ly4xkzyf";
- type = "gem";
- };
- version = "1.10.4";
- };
- premailer-rails = {
- dependencies = ["actionmailer" "premailer"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "05czxmx6hnykg6g23hy2ww2bf86a69njbi02sv7lrds4w776jhim";
- type = "gem";
- };
- version = "1.9.7";
- };
- proc_to_ast = {
- dependencies = ["coderay" "parser" "unparser"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "14c65w48bbzp5lh1cngqd1y25kqvfnq1iy49hlzshl12dsk3z9wj";
- type = "gem";
- };
- version = "0.1.0";
- };
- procto = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "13imvg1x50rz3r0yyfbhxwv72lbf7q28qx9l9nfbb91h2n9ch58c";
- type = "gem";
- };
- version = "0.0.3";
- };
- prometheus-client-mmap = {
- groups = ["metrics"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "01f1zkpi7qsmgmk17fpq6ck7jn64sa9afsq20vc5k9f6mpyqkncd";
- type = "gem";
- };
- version = "0.9.8";
- };
- pry = {
- dependencies = ["coderay" "method_source"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1mh312k3y94sj0pi160wpia0ps8f4kmzvm505i6bvwynfdh7v30g";
- type = "gem";
- };
- version = "0.11.3";
- };
- pry-byebug = {
- dependencies = ["byebug" "pry"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1f9kj1qp14qb8crg2rdzf22pr6ngxvy4n6ipymla8q1yjr842625";
- type = "gem";
- };
- version = "3.5.1";
- };
- pry-rails = {
- dependencies = ["pry"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0k2d43bwmqbswfra4fkadjjbszwb11pr7qdkma91qrcrk62wqxvy";
- type = "gem";
- };
- version = "0.3.6";
- };
- public_suffix = {
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1c7c5xxkx91hwj4572hbnyvxmydb90q69wlpr2l0dxrmwx2p365l";
- type = "gem";
- };
- version = "3.1.0";
- };
- puma = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1k7dqxnq0dnf5rxkgs9rknclkn3ah7lsdrk6nrqxla8qzy31wliq";
- type = "gem";
- };
- version = "3.12.0";
- };
- puma_worker_killer = {
- dependencies = ["get_process_mem" "puma"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1m08qi8mxpp20zqqjj9yzcrx0sn29n5fn5avlf1lnl0n7qa9c03i";
- type = "gem";
- };
- version = "0.1.0";
- };
- pyu-ruby-sasl = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1rcpjiz9lrvyb3rd8k8qni0v4ps08psympffyldmmnrqayyad0sn";
- type = "gem";
- };
- version = "0.0.3.3";
- };
- raabro = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0xzdmbn48753f6k0ckirp8ja5p0xn1a92wbwxfyggyhj0hza9ylq";
- type = "gem";
- };
- version = "1.1.6";
- };
- rack = {
- groups = ["default" "development" "kerberos" "mysql" "postgres" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0z90vflxbgjy2n84r7mbyax3i2vyvvrxxrf86ljzn5rw65jgnn2i";
- type = "gem";
- };
- version = "2.0.7";
- };
- rack-accept = {
- dependencies = ["rack"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "18jdipx17b4ki33cfqvliapd31sbfvs4mv727awynr6v95a7n936";
- type = "gem";
- };
- version = "0.4.5";
- };
- rack-attack = {
- dependencies = ["rack"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1czx68p70x98y21dkdndsb64lrxf9qrv09wl1dbcxrypcjnpsdl1";
- type = "gem";
- };
- version = "4.4.1";
- };
- rack-cors = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1j27vy1bmhbqcyzhxg8d07qassmax769xjalfwcwz6qfiq8cf013";
- type = "gem";
- };
- version = "1.0.2";
- };
- rack-oauth2 = {
- dependencies = ["activesupport" "attr_required" "httpclient" "json-jwt" "rack"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0kmxj9hbjhhcs3yyb433s82hkpmzb536m0mwfadjiaisganx1cii";
- type = "gem";
- };
- version = "1.9.3";
- };
- rack-protection = {
- dependencies = ["rack"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "15167q25rmxipqwi6hjqj3i1byi9iwl3xq9b7mdar7qiz39pmjsk";
- type = "gem";
- };
- version = "2.0.5";
- };
- rack-proxy = {
- dependencies = ["rack"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1bpbcb9ch94ha2q7gdri88ry7ch0z6ian289kah9ayxyqg19j6f4";
- type = "gem";
- };
- version = "0.6.0";
- };
- rack-test = {
- dependencies = ["rack"];
- groups = ["default" "development" "mysql" "postgres" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0rh8h376mx71ci5yklnpqqn118z3bl67nnv5k801qaqn1zs62h8m";
- type = "gem";
- };
- version = "1.1.0";
- };
- rack-timeout = {
- groups = ["puma"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "15xph8h6v0lvq9pxm3bc9i9pnk2k68rgdr1mp0dw4l7v1xvhs78a";
- type = "gem";
- };
- version = "0.5.1";
- };
- rails = {
- dependencies = ["actioncable" "actionmailer" "actionpack" "actionview" "activejob" "activemodel" "activerecord" "activestorage" "activesupport" "railties" "sprockets-rails"];
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1p7cszi3n9ksxchxnccmz61pd1i3rjg4813dsdinsm8xm5k1pdgr";
- type = "gem";
- };
- version = "5.2.3";
- };
- rails-controller-testing = {
- dependencies = ["actionpack" "actionview" "activesupport"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "16kdkk73mhhs73iz3i1i0ryjm84dadiyh817b3nh8acdi490jyhy";
- type = "gem";
- };
- version = "1.0.2";
- };
- rails-dom-testing = {
- dependencies = ["activesupport" "nokogiri"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1lfq2a7kp2x64dzzi5p4cjcbiv62vxh9lyqk2f0rqq3fkzrw8h5i";
- type = "gem";
- };
- version = "2.0.3";
- };
- rails-html-sanitizer = {
- dependencies = ["loofah"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1gv7vr5d9g2xmgpjfq4nxsqr70r9pr042r9ycqqnfvw5cz9c7jwr";
- type = "gem";
- };
- version = "1.0.4";
- };
- rails-i18n = {
- dependencies = ["i18n" "railties"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1rqij2ggqz5iq36lbibhnd7pl4qxrvv9kgw9s0c6594vzbbxmhs0";
- type = "gem";
- };
- version = "5.1.1";
- };
- railties = {
- dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor"];
- groups = ["default" "development" "mysql" "postgres" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1gn9fwb5wm08fbj7zpilqgblfl315l5b7pg4jsvxlizvrzg8h8q4";
- type = "gem";
- };
- version = "5.2.3";
- };
- rainbow = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk";
- type = "gem";
- };
- version = "3.0.0";
- };
- raindrops = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1qpbd9jif40c53fz2r0l8khfl016y8s8bkx37ibcaafclbl3xygp";
- type = "gem";
- };
- version = "0.19.0";
- };
- rake = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1sy5a7nh6xjdc9yhcw31jji7ssrf9v5806hn95gbrzr998a2ydjn";
- type = "gem";
- };
- version = "12.3.2";
- };
- rb-fsevent = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1fbpmjypwxkb8r7y1kmhmyp6gawa4byw0yb3jc3dn9ly4ld9lizf";
- type = "gem";
- };
- version = "0.10.2";
- };
- rb-inotify = {
- dependencies = ["ffi"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0yfsgw5n7pkpyky6a9wkf1g9jafxb0ja7gz0qw0y14fd2jnzfh71";
- type = "gem";
- };
- version = "0.9.10";
- };
- rblineprof = {
- dependencies = ["debugger-ruby_core_source"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0m58kdjgncwf0h1qry3qk5h4bg8sj0idykqqijqcrr09mxfd9yc6";
- type = "gem";
- };
- version = "0.3.6";
- };
- rbtrace = {
- dependencies = ["ffi" "msgpack" "optimist"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1lwsq08i0aj8na5q5ba3gg02sx3wl58fi6m52svl5p7cy56ycdwi";
- type = "gem";
- };
- version = "0.4.11";
- };
- rdoc = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0anv42cqcdc6g4n386mrva7mgav5i0c2ry3yzvzzc6z6hymkmcr7";
- type = "gem";
- };
- version = "6.0.4";
- };
- re2 = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "00wf9k1hkv3z3nfkrnfyyfq9ah0l7k14awqys3h2hqz4c21pqd2i";
- type = "gem";
- };
- version = "1.1.1";
- };
- recaptcha = {
- dependencies = ["json"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "121pkq8kwqjh4l751xzx15bjp5vmf5pirfmpb11h71zsiavjqv6w";
- type = "gem";
- };
- version = "4.13.1";
- };
- recursive-open-struct = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0wfcyigmf5mwrxy76p0bi4sdb4h9afs8jc73pjav5cnqszljjl3c";
- type = "gem";
- };
- version = "1.1.0";
- };
- RedCloth = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0m9dv7ya9q93r8x1pg2gi15rxlbck8m178j1fz7r5v6wr1avrrqy";
- type = "gem";
- };
- version = "4.3.2";
- };
- redis = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0i415x8gi0c5vsiy6ikvx5js6fhc4x80a5lqv8iidy2iymd20irv";
- type = "gem";
- };
- version = "3.3.5";
- };
- redis-actionpack = {
- dependencies = ["actionpack" "redis-rack" "redis-store"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "15k41gz7nygd4yydk2yd25gghya1j7q6zifk4mdrra6bwnwjbm63";
- type = "gem";
- };
- version = "5.0.2";
- };
- redis-activesupport = {
- dependencies = ["activesupport" "redis-store"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0rq5dhrzc1l8c7f5gx9r7mvnsk5206dfwih3yv5si5rf42nx2ay5";
- type = "gem";
- };
- version = "5.0.4";
- };
- redis-namespace = {
- dependencies = ["redis"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0r7daagrjjribn098dxwbv9zivrbq2rsffbkj2ccxyn9lmjjbgah";
- type = "gem";
- };
- version = "1.6.0";
- };
- redis-rack = {
- dependencies = ["rack" "redis-store"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0px0wv8zripc6lrn3k0k61j6nlxda145q8sz50yvnig17wlk36gb";
- type = "gem";
- };
- version = "2.0.4";
- };
- redis-rails = {
- dependencies = ["redis-actionpack" "redis-activesupport" "redis-store"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0hjvkyaw5hgz7v6fgwdk8pb966z44h1gv8jarmb0gwhkqmjnsh40";
- type = "gem";
- };
- version = "5.0.2";
- };
- redis-store = {
- dependencies = ["redis"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1mrcnjgkbmx1zf569mly82agdizqayjvnp2k6055k1iy07in3j8b";
- type = "gem";
- };
- version = "1.6.0";
- };
- regexp_parser = {
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0dsgjb3kszk6a82s6gl0h6a8vncjrxmcbk0r4mcxcdcad2b7vb2d";
- type = "gem";
- };
- version = "1.5.1";
- };
- regexp_property_values = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "05ka0bkhghs9b9pv6q443k8y1c5xalmm0vylj9zd450ksncxj1yr";
- type = "gem";
- };
- version = "0.3.4";
- };
- representable = {
- dependencies = ["declarative" "declarative-option" "uber"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0qm9rgi1j5a6nv726ka4mmixivlxfsg91h8rpp72wwd4vqbkkm07";
- type = "gem";
- };
- version = "3.0.4";
- };
- request_store = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1va9x0b3ww4chcfqlmi8b14db39di1mwa7qrjbh7ma0lhndvs2zv";
- type = "gem";
- };
- version = "1.3.1";
- };
- responders = {
- dependencies = ["actionpack" "railties"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1rhdyyvvm26f2l3fgwdp6xasfl2y0whwgy766bhdwz697mf78zfn";
- type = "gem";
- };
- version = "2.4.0";
- };
- rest-client = {
- dependencies = ["http-cookie" "mime-types" "netrc"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1hzcs2r7b5bjkf2x2z3n8z6082maz0j8vqjiciwgg3hzb63f958j";
- type = "gem";
- };
- version = "2.0.2";
- };
- retriable = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1q48hqws2dy1vws9schc0kmina40gy7sn5qsndpsfqdslh65snha";
- type = "gem";
- };
- version = "3.1.2";
- };
- rinku = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "11cakxzp7qi04d41hbqkh92n52mm4z2ba8sqyhxbmfi4kypmls9y";
- type = "gem";
- };
- version = "2.0.0";
- };
- rotp = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1w8d6svhq3y9y952r8cqirxvdx12zlkb7zxjb44bcbidb2sisy4d";
- type = "gem";
- };
- version = "2.1.2";
- };
- rouge = {
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0yfhazlhjc4abgzhkgq8zqmdphvkh52211widkl4zhsbhqh8wg2q";
- type = "gem";
- };
- version = "3.5.1";
- };
- rqrcode = {
- dependencies = ["chunky_png"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "188n1mvc7klrlw30bai16sdg4yannmy7cz0sg0nvm6f1kjx5qflb";
- type = "gem";
- };
- version = "0.7.0";
- };
- rqrcode-rails3 = {
- dependencies = ["rqrcode"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1i28rwmj24ssk91chn0g7qsnvn003y3s5a7jsrg3w4l5ckr841bg";
- type = "gem";
- };
- version = "0.1.7";
- };
- rspec = {
- dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "15ppasvb9qrscwlyjz67ppw1lnxiqnkzx5vkx1bd8x5n3dhikxc3";
- type = "gem";
- };
- version = "3.8.0";
- };
- rspec-core = {
- dependencies = ["rspec-support"];
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0spjgmd3yx6q28q950r32bi0cs8h2si53zn6rq8s7n1i4zp4zwbf";
- type = "gem";
- };
- version = "3.8.2";
- };
- rspec-expectations = {
- dependencies = ["diff-lcs" "rspec-support"];
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0x3iddjjaramqb0yb51c79p2qajgi9wb5b59bzv25czddigyk49r";
- type = "gem";
- };
- version = "3.8.4";
- };
- rspec-mocks = {
- dependencies = ["diff-lcs" "rspec-support"];
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "12zplnsv4p6wvvxsk8xn6nm87a5qadxlkk497zlxfczd0jfawrni";
- type = "gem";
- };
- version = "3.8.1";
- };
- rspec-parameterized = {
- dependencies = ["binding_ninja" "parser" "proc_to_ast" "rspec" "unparser"];
- groups = ["development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1c0892jbaznnldk1wi24qxm70g4zhw2idqx516rhgdzgd7yh5j31";
- type = "gem";
- };
- version = "0.4.2";
- };
- rspec-rails = {
- dependencies = ["actionpack" "activesupport" "railties" "rspec-core" "rspec-expectations" "rspec-mocks" "rspec-support"];
- groups = ["development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1pf6n9l4sw1arlax1bdbm1znsvl8cgna2n6k6yk1bi8vz2n73ls1";
- type = "gem";
- };
- version = "3.8.2";
- };
- rspec-retry = {
- dependencies = ["rspec-core"];
- groups = ["development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1nnqcg2yd3nn187zbvh4cgx8xsvdk56lz1985qy7232v7i8yidw6";
- type = "gem";
- };
- version = "0.6.1";
- };
- rspec-set = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "06vw8b5w1a58838cw9ssmy3r6f8vrjh54h7dp97rwv831gn5zlyk";
- type = "gem";
- };
- version = "0.1.3";
- };
- rspec-support = {
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "139mbhfdr10flm2ffryvxkyqgqs1gjdclc1xhyh7i7njfqayxk7g";
- type = "gem";
- };
- version = "3.8.2";
- };
- rspec_junit_formatter = {
- dependencies = ["rspec-core"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1aynmrgnv26pkprrajvp7advb8nbh0x4pkwk6jwq8qmwzarzk21p";
- type = "gem";
- };
- version = "0.4.1";
- };
- rspec_profiling = {
- dependencies = ["activerecord" "pg" "rails" "sqlite3"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1g7q7gav26bpiprx4dhlvdh4zdrhwiky9jbmsp14gyfiabqdz4sz";
- type = "gem";
- };
- version = "0.0.5";
- };
- rubocop = {
- dependencies = ["jaro_winkler" "parallel" "parser" "rainbow" "ruby-progressbar" "unicode-display_width"];
- groups = ["development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1cmw8ajaiidvrzjcsljh47f4l3lmcazqrzljgalj3szkr8ibkk5i";
- type = "gem";
- };
- version = "0.69.0";
- };
- rubocop-gitlab-security = {
- dependencies = ["rubocop"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0v0040kpx46fxz3p7dsdjgvsx89qjhwy17n8vxnqg9a7g1rfvxln";
- type = "gem";
- };
- version = "0.1.1";
- };
- rubocop-performance = {
- dependencies = ["rubocop"];
- groups = ["development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0azzgj62w24wa4hza1qn7i9b9crxdh907kydlzcvhismx41h3lzk";
- type = "gem";
- };
- version = "1.1.0";
- };
- rubocop-rspec = {
- dependencies = ["rubocop"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0vk51h9swvgshan8vp8yjz03qv9vn5vs29i9iddhjwcwgzsganla";
- type = "gem";
- };
- version = "1.22.2";
- };
- ruby-enum = {
- dependencies = ["i18n"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0h62avini866kxpjzqxlqnajma3yvj0y25l6hn9h2mv5pp6fcrhx";
- type = "gem";
- };
- version = "0.7.2";
- };
- ruby-fogbugz = {
- dependencies = ["crack"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1jj0gpkycbrivkh2q3429vj6mbgx6axxisg69slj3c4mgvzfgchm";
- type = "gem";
- };
- version = "0.2.1";
- };
- ruby-prof = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "02z4lh1iv1d8751a1l6r4hfc9mp61gf80g4qc4l6gbync3j3hf2c";
- type = "gem";
- };
- version = "0.17.0";
- };
- ruby-progressbar = {
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1cv2ym3rl09svw8940ny67bav7b2db4ms39i4raaqzkf59jmhglk";
- type = "gem";
- };
- version = "1.10.0";
- };
- ruby-saml = {
- dependencies = ["nokogiri"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0k9d88fa8bp5szivbwq0qi960y3r2kp6jhnkmsp3n2rvwpn936i3";
- type = "gem";
- };
- version = "1.7.2";
- };
- ruby_parser = {
- dependencies = ["sexp_processor"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0s3hsccsmrirc2hy3r51kl8g9cfmcn7jxaa0asadg1kn78h1sgr7";
- type = "gem";
- };
- version = "3.13.1";
- };
- rubyntlm = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1p6bxsklkbcqni4bcq6jajc2n57g0w5rzn4r49c3lb04wz5xg0dy";
- type = "gem";
- };
- version = "0.6.2";
- };
- rubypants = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1vpdkrc4c8qhrxph41wqwswl28q5h5h994gy4c1mlrckqzm3hzph";
- type = "gem";
- };
- version = "0.2.0";
- };
- rubyzip = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1n1lb2sdwh9h27y244hxzg1lrxxg2m53pk1vq7p33bna003qkyrj";
- type = "gem";
- };
- version = "1.2.2";
- };
- rugged = {
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1yiszpz6y13vvgh3fss1l0ipp0zgsbbc8c28vynnpdyx1sy6krp6";
- type = "gem";
- };
- version = "0.28.1";
- };
- safe_yaml = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094";
- type = "gem";
- };
- version = "1.0.4";
- };
- sanitize = {
- dependencies = ["crass" "nokogiri" "nokogumbo"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0j4j2a2mkk1a70vbx959pvx0gvr1zb9snjwvsppwj28bp0p0b2bv";
- type = "gem";
- };
- version = "4.6.6";
- };
- sass = {
- dependencies = ["sass-listen"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "10401m2xlv6vaxfwzy4xxmk51ddcnkvwi918cw3jkki0qqdl7d8v";
- type = "gem";
- };
- version = "3.5.5";
- };
- sass-listen = {
- dependencies = ["rb-fsevent" "rb-inotify"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0xw3q46cmahkgyldid5hwyiwacp590zj2vmswlll68ryvmvcp7df";
- type = "gem";
- };
- version = "4.0.0";
- };
- sassc = {
- dependencies = ["ffi" "rake"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1sr4825rlwsrl7xrsm0sgalcpf5zgp4i56dbi3qxfa9lhs8r6zh4";
- type = "gem";
- };
- version = "2.0.1";
- };
- sassc-rails = {
- dependencies = ["railties" "sassc" "sprockets" "sprockets-rails" "tilt"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "18mgdjxdzpbw92zrllynxw7jn7yihi85j3dg7i4f6c39w1scqkbn";
- type = "gem";
- };
- version = "2.1.0";
- };
- sawyer = {
- dependencies = ["addressable" "faraday"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0sv1463r7bqzvx4drqdmd36m7rrv6sf1v3c6vswpnq3k6vdw2dvd";
- type = "gem";
- };
- version = "0.8.1";
- };
- scss_lint = {
- dependencies = ["rake" "sass"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "01bfkrjn1i0hfg1ifwn1rs7vqwdbdw158krwr5fm6iasd9zgl10g";
- type = "gem";
- };
- version = "0.56.0";
- };
- seed-fu = {
- dependencies = ["activerecord" "activesupport"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0x6gclryl0hds3zms095d2iyafcvm2kfrm7362vrkxws7r2775pi";
- type = "gem";
- };
- version = "2.3.7";
- };
- selenium-webdriver = {
- dependencies = ["childprocess" "rubyzip"];
- groups = ["development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "114hv2ajmh6d186v2w887yqakqcxyxq367l0iakrrpvwviknrhfs";
- type = "gem";
- };
- version = "3.141.0";
- };
- sentry-raven = {
- dependencies = ["faraday"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1j9rwbig24ry0smgvmkzdjrzyszniaswipinvflzxzzaz52v7483";
- type = "gem";
- };
- version = "2.9.0";
- };
- settingslogic = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1ria5zcrk1nf0b9yia15mdpzw0dqr6wjpbj8dsdbbps81lfsj9ar";
- type = "gem";
- };
- version = "2.0.9";
- };
- sexp_processor = {
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0w24rgmyjf7yz0xr2qhbr8z48h4m6gvbggr8nc1pldwn9rbi04b7";
- type = "gem";
- };
- version = "4.12.0";
- };
- sham_rack = {
- dependencies = ["rack"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0zs6hpgg87x5jrykjxgfp2i7m5aja53s5kamdhxam16wki1hid3i";
- type = "gem";
- };
- version = "1.3.6";
- };
- shoulda-matchers = {
- dependencies = ["activesupport"];
- groups = ["test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1s6a2i39lsqq8rrkk2pddqcb10bsihxy3v5gpnc2gk8xakj1brdq";
- type = "gem";
- };
- version = "4.0.1";
- };
- sidekiq = {
- dependencies = ["connection_pool" "rack" "rack-protection" "redis"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "131zv8i341bkacxx7n1id2cmblkbs379farnibqg8c7bycd1iajq";
- type = "gem";
- };
- version = "5.2.7";
- };
- sidekiq-cron = {
- dependencies = ["fugit" "sidekiq"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1aliswahmpxn1ib2brn4126gk97ac3zdnwr71mn8vzbr3vdd7fl0";
- type = "gem";
- };
- version = "1.0.4";
- };
- signet = {
- dependencies = ["addressable" "faraday" "jwt" "multi_json"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1f5d3bz5bjc4b0r2jmqd15qf07lgsqkgd25f0h46jihrf9l5fsi4";
- type = "gem";
- };
- version = "0.11.0";
- };
- simple_po_parser = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "08wkp4gcrd89k5yari9j94if9ffkj3rka4llcwrhdgsi3l15p5f3";
- type = "gem";
- };
- version = "1.1.2";
- };
- simplecov = {
- dependencies = ["docile" "json" "simplecov-html"];
- groups = ["development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1sfyfgf7zrp2n42v7rswkqgk3bbwk1bnsphm24y7laxv3f8z0947";
- type = "gem";
- };
- version = "0.16.1";
- };
- simplecov-html = {
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1lihraa4rgxk8wbfl77fy9sf0ypk31iivly8vl3w04srd7i0clzn";
- type = "gem";
- };
- version = "0.10.2";
- };
- slack-notifier = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0xavibxh00gy62mm79l6id9l2fldjmdqifk8alqfqy5z38ffwah6";
- type = "gem";
- };
- version = "1.5.1";
- };
- spring = {
- dependencies = ["activesupport"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "168yz9c1fv21wc5i8q7n43b9nk33ivg3ws1fn6x0afgryz3ssx75";
- type = "gem";
- };
- version = "2.0.2";
- };
- spring-commands-rspec = {
- dependencies = ["spring"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0b0svpq3md1pjz5drpa5pxwg8nk48wrshq8lckim4x3nli7ya0k2";
- type = "gem";
- };
- version = "1.0.4";
- };
- sprockets = {
- dependencies = ["concurrent-ruby" "rack"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay";
- type = "gem";
- };
- version = "3.7.2";
- };
- sprockets-rails = {
- dependencies = ["actionpack" "activesupport" "sprockets"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0ab42pm8p5zxpv3sfraq45b9lj39cz9mrpdirm30vywzrwwkm5p1";
- type = "gem";
- };
- version = "3.2.1";
- };
- sqlite3 = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "01ifzp8nwzqppda419c9wcvr8n82ysmisrs0hph9pdmv1lpa4f5i";
- type = "gem";
- };
- version = "1.3.13";
- };
- sshkey = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "03bkn55qsng484iqwz2lmm6rkimj01vsvhwk661s3lnmpkl65lbp";
- type = "gem";
- };
- version = "2.0.0";
- };
- stackprof = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1c88j2d6ipjw5s3hgdgfww37gysgrkicawagj33hv3knijjc9ski";
- type = "gem";
- };
- version = "0.2.10";
- };
- state_machines = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "00mi16hg3rhkxz4y58s173cbnjlba41y9bfcim90p4ja6yfj9ri3";
- type = "gem";
- };
- version = "0.5.0";
- };
- state_machines-activemodel = {
- dependencies = ["activemodel" "state_machines"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0chhm5hs1y83dq8haff10m66r3yrm7jab35r9xg6adn6qd8ynv2l";
- type = "gem";
- };
- version = "0.5.1";
- };
- state_machines-activerecord = {
- dependencies = ["activerecord" "state_machines-activemodel"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "00h07gd4kb22ahgv61r8zca9hqxaw44fnk2sc28j00c1nmwsw6r3";
- type = "gem";
- };
- version = "0.5.1";
- };
- swd = {
- dependencies = ["activesupport" "attr_required" "httpclient"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1s2vjb6f13za7p1iycl2p73d3p202xa6xny9fjrp8ynwsqix7lyd";
- type = "gem";
- };
- version = "1.1.2";
- };
- sys-filesystem = {
- dependencies = ["ffi"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "092wj7936i5inzafi09wqh5c8dbak588q21k652dsrdjf5qi10zq";
- type = "gem";
- };
- version = "1.1.6";
- };
- sysexits = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0qjng6pllznmprzx8vb0zg0c86hdrkyjs615q41s9fjpmv2430jr";
- type = "gem";
- };
- version = "1.2.0";
- };
- temple = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "00nxf610nzi4n1i2lkby43nrnarvl89fcl6lg19406msr0k3ycmq";
- type = "gem";
- };
- version = "0.8.0";
- };
- test-prof = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "08nvn3c1mzgcjgk9lr3py0zjd8fjjrm3ncn9rpqkfbx429mgw2l3";
- type = "gem";
- };
- version = "0.2.5";
- };
- text = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1x6kkmsr49y3rnrin91rv8mpc3dhrf3ql08kbccw8yffq61brfrg";
- type = "gem";
- };
- version = "1.3.1";
- };
- thin = {
- dependencies = ["daemons" "eventmachine" "rack"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0nagbf9pwy1vg09k6j4xqhbjjzrg5dwzvkn4ffvlj76fsn6vv61f";
- type = "gem";
- };
- version = "1.7.2";
- };
- thor = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "01n5dv9kql60m6a00zc0r66jvaxx98qhdny3klyj0p3w34pad2ns";
- type = "gem";
- };
- version = "0.19.4";
- };
- thread_safe = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
- type = "gem";
- };
- version = "0.3.6";
- };
- thrift = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "02p107kwx7jnkh6fpdgvaji0xdg6xkaarngkqjml6s4zny4m8slv";
- type = "gem";
- };
- version = "0.11.0.0";
- };
- tilt = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0020mrgdf11q23hm1ddd6fv691l51vi10af00f137ilcdb2ycfra";
- type = "gem";
- };
- version = "2.0.8";
- };
- timecop = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0vwbkwqyxhavzvr1820hqwz43ylnfcf6w4x6sag0nghi44sr9kmx";
- type = "gem";
- };
- version = "0.8.1";
- };
- timfel-krb5-auth = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "105vajc0jkqgcx1wbp0ad262sdry4l1irk7jpaawv8vzfjfqqf5b";
- type = "gem";
- };
- version = "0.8.3";
- };
- toml = {
- dependencies = ["parslet"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0xj460rkyqvg74xc8kivmbvgc46c6mm7r8mbjs5m2gq8khf8sbki";
- type = "gem";
- };
- version = "0.2.0";
- };
- toml-rb = {
- dependencies = ["citrus"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0pz6z1mc7rnv4chkbx3mdn4q1lpp0j596dq57kbq39jv0wn0wi4d";
- type = "gem";
- };
- version = "1.0.0";
- };
- tomlrb = {
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0g28ssfal6vry3cmhy509ba3vi5d5aggz1gnffnvvmc8ml8vkpiv";
- type = "gem";
- };
- version = "1.2.8";
- };
- truncato = {
- dependencies = ["htmlentities" "nokogiri"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0z36dprfj9l4jwgwb2wv4v3cilm53v7i1ywfmm5f1dl352id3ak4";
- type = "gem";
- };
- version = "0.7.11";
- };
- tzinfo = {
- dependencies = ["thread_safe"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z";
- type = "gem";
- };
- version = "1.2.5";
- };
- u2f = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0lsm1hvwcaa9sq13ab1l1zjk0fgcy951ay11v2acx0h6q1iv21vr";
- type = "gem";
- };
- version = "0.2.1";
- };
- uber = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1p1mm7mngg40x05z52md3mbamkng0zpajbzqjjwmsyw0zw3v9vjv";
- type = "gem";
- };
- version = "0.1.0";
- };
- uglifier = {
- dependencies = ["execjs" "json"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0mzs64z3m1b98rh6ssxpqfz9sc87f6ml6906b0m57vydzfgrh1cz";
- type = "gem";
- };
- version = "2.7.2";
- };
- unf = {
- dependencies = ["unf_ext"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9";
- type = "gem";
- };
- version = "0.1.4";
- };
- unf_ext = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "06p1i6qhy34bpb8q8ms88y6f2kz86azwm098yvcc0nyqk9y729j1";
- type = "gem";
- };
- version = "0.0.7.5";
- };
- unicode-display_width = {
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "08kfiniak1pvg3gn5k6snpigzvhvhyg7slmm0s2qx5zkj62c1z2w";
- type = "gem";
- };
- version = "1.6.0";
- };
- unicorn = {
- dependencies = ["kgio" "raindrops"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1qfhvzs4i6ja1s43j8p1kfbzm10n7a02ngki30a38y5m46a2qrak";
- type = "gem";
- };
- version = "5.4.1";
- };
- unicorn-worker-killer = {
- dependencies = ["get_process_mem" "unicorn"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0rrdxpwdsapx47axjin8ymxb4f685qlpx8a26bql4ay1559c3gva";
- type = "gem";
- };
- version = "0.4.4";
- };
- uniform_notifier = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1jha0l7x602g5rvah960xl9r0f3q25gslj39i0x1vai8i5z6zr1l";
- type = "gem";
- };
- version = "1.10.0";
- };
- unparser = {
- dependencies = ["abstract_type" "adamantium" "concord" "diff-lcs" "equalizer" "parser" "procto"];
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "03vjj74kj86vlazhiclf63kf6gajs66k8ni34q70fdhf97d7b60c";
- type = "gem";
- };
- version = "0.4.5";
- };
- validate_email = {
- dependencies = ["activemodel" "mail"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1r1fz29l699arka177c9xw7409d1a3ff95bf7a6pmc97slb91zlx";
- type = "gem";
- };
- version = "0.1.6";
- };
- validate_url = {
- dependencies = ["activemodel" "public_suffix"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1k0bfxzvdcf1nrqhvnyhijc4mwab9wn4qvqb0ynq6p8dj0f866zi";
- type = "gem";
- };
- version = "1.0.8";
- };
- validates_hostname = {
- dependencies = ["activerecord" "activesupport"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "04p1l0v98j4ffvaks1ig9mygx5grpbpdgz7haq3mygva9iy8ykja";
- type = "gem";
- };
- version = "1.0.6";
- };
- version_sorter = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0hbdw3vh856f5yg5mbj4498l6vh90cd3pn22ikr3ranzkrh73l3s";
- type = "gem";
- };
- version = "2.2.4";
- };
- virtus = {
- dependencies = ["axiom-types" "coercible" "descendants_tracker" "equalizer"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "06iphwi3c4f7y9i2rvhvaizfswqbaflilziz4dxqngrdysgkn1fk";
- type = "gem";
- };
- version = "1.0.5";
- };
- vmstat = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0vb5mwc71p8rlm30hnll3lb4z70ipl5rmilskpdrq2mxwfilcm5b";
- type = "gem";
- };
- version = "2.3.0";
- };
- warden = {
- dependencies = ["rack"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0va966lhpylcwbqb9n151kkihx30agh0a57mwjwdxyanll4s1q12";
- type = "gem";
- };
- version = "1.2.7";
- };
- webfinger = {
- dependencies = ["activesupport" "httpclient"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0m0jh8k7c0ifh2jhbn7ihqrmn5fi754wflva97zgy70hpdvxyjar";
- type = "gem";
- };
- version = "1.1.0";
- };
- webmock = {
- dependencies = ["addressable" "crack" "hashdiff"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0gg0c2sxq7rni0b93w47h7p7cn590xdhf5va7ska48inpipwlgxp";
- type = "gem";
- };
- version = "3.5.1";
- };
- webpack-rails = {
- dependencies = ["railties"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0fsjxw730bh4k1dfnbjm645fgjyqrh830l1z7brqbsm6306ig1rr";
- type = "gem";
- };
- version = "0.9.11";
- };
- websocket-driver = {
- dependencies = ["websocket-extensions"];
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1551k3fs3kkb3ghqfj3n5lps0ikb9pyrdnzmvgfdxy8574n4g1dn";
- type = "gem";
- };
- version = "0.7.0";
- };
- websocket-extensions = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "034sdr7fd34yag5l6y156rkbhiqgmy395m231dwhlpcswhs6d270";
- type = "gem";
- };
- version = "0.1.3";
- };
- wikicloth = {
- dependencies = ["builder" "expression_parser" "rinku"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1jp6c2yzyqbap8jdiw8yz6l08sradky1llhyhmrg934l1b5akj3s";
- type = "gem";
- };
- version = "0.8.1";
- };
- with_env = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1r5ns064mbb99hf1dyxsk9183hznc5i7mn3bi86zka6dlvqf9csh";
- type = "gem";
- };
- version = "1.1.0";
- };
- xml-simple = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0xlqplda3fix5pcykzsyzwgnbamb3qrqkgbrhhfz2a2fxhrkvhw8";
- type = "gem";
- };
- version = "1.1.5";
- };
- xpath = {
- dependencies = ["nokogiri"];
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0bh8lk9hvlpn7vmi6h4hkcwjzvs2y0cmkk3yjjdr8fxvj6fsgzbd";
- type = "gem";
- };
- version = "3.2.0";
- };
-}
\ No newline at end of file
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
similarity index 89%
rename from pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile
rename to pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
index 62ee2990dfa..920f778c053 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
@@ -2,6 +2,8 @@ source 'https://rubygems.org'
gem 'rails', '5.2.3'
+gem 'bootsnap', '~> 1.4'
+
# Improves copy-on-write performance for MRI
gem 'nakayoshi_fork', '~> 0.0.4'
@@ -14,8 +16,7 @@ gem 'sprockets', '~> 3.7.0'
gem 'default_value_for', '~> 3.2.0'
# Supported DBs
-gem 'mysql2', '~> 0.4.10', group: :mysql
-gem 'pg', '~> 1.1', group: :postgres
+gem 'pg', '~> 1.1'
gem 'rugged', '~> 0.28'
gem 'grape-path-helpers', '~> 1.1'
@@ -53,6 +54,7 @@ gem 'gssapi', group: :kerberos
# Spam and anti-bot protection
gem 'recaptcha', '~> 4.11', require: 'recaptcha/rails'
gem 'akismet', '~> 2.0'
+gem 'invisible_captcha', '~> 0.12.1'
# Two-factor authentication
gem 'devise-two-factor', '~> 3.0.0'
@@ -84,7 +86,10 @@ gem 'grape-entity', '~> 0.7.1'
gem 'rack-cors', '~> 1.0.0', require: 'rack/cors'
# GraphQL API
-gem 'graphql', '~> 1.8.0'
+gem 'graphql', '~> 1.9.11'
+# NOTE: graphiql-rails v1.5+ doesn't work: https://gitlab.com/gitlab-org/gitlab/issues/31771
+# TODO: remove app/views/graphiql/rails/editors/show.html.erb when https://github.com/rmosolgo/graphiql-rails/pull/71 is released:
+# https://gitlab.com/gitlab-org/gitlab/issues/31747
gem 'graphiql-rails', '~> 1.4.10'
gem 'apollo_upload_server', '~> 2.0.0.beta3'
gem 'graphql-docs', '~> 1.6.0', group: [:development, :test]
@@ -107,7 +112,7 @@ gem 'fog-aws', '~> 3.5'
# Locked until fog-google resolves https://github.com/fog/fog-google/issues/421.
# Also see config/initializers/fog_core_patch.rb.
gem 'fog-core', '= 2.1.0'
-gem 'fog-google', '~> 1.8'
+gem 'fog-google', '~> 1.9'
gem 'fog-local', '~> 0.6'
gem 'fog-openstack', '~> 1.0'
gem 'fog-rackspace', '~> 0.1.1'
@@ -143,10 +148,10 @@ gem 'wikicloth', '0.8.1'
gem 'asciidoctor', '~> 2.0.10'
gem 'asciidoctor-include-ext', '~> 0.3.1', require: false
gem 'asciidoctor-plantuml', '0.0.9'
-gem 'rouge', '~> 3.5'
+gem 'rouge', '~> 3.11.0'
gem 'truncato', '~> 0.7.11'
gem 'bootstrap_form', '~> 4.2.0'
-gem 'nokogiri', '~> 1.10.3'
+gem 'nokogiri', '~> 1.10.4'
gem 'escape_utils', '~> 1.1'
# Calendar rendering
@@ -179,7 +184,7 @@ gem 'acts-as-taggable-on', '~> 6.0'
gem 'sidekiq', '~> 5.2.7'
gem 'sidekiq-cron', '~> 1.0'
gem 'redis-namespace', '~> 1.6.0'
-gem 'gitlab-sidekiq-fetcher', '~> 0.4.0', require: 'sidekiq-reliable-fetch'
+gem 'gitlab-sidekiq-fetcher', '0.5.2', require: 'sidekiq-reliable-fetch'
# Cron Parser
gem 'fugit', '~> 1.2.1'
@@ -209,13 +214,13 @@ gem 'js_regex', '~> 3.1'
# User agent parsing
gem 'device_detector'
-# Cache
-gem 'redis-rails', '~> 5.0.2'
-
# Redis
-gem 'redis', '~> 3.2'
+gem 'redis', '~> 4.0'
gem 'connection_pool', '~> 2.0'
+# Redis session store
+gem 'redis-rails', '~> 5.0.2'
+
# Discord integration
gem 'discordrb-webhooks-blackst0ne', '~> 3.3', require: false
@@ -223,7 +228,8 @@ gem 'discordrb-webhooks-blackst0ne', '~> 3.3', require: false
gem 'hipchat', '~> 1.5.0'
# Jira integration
-gem 'jira-ruby', '~> 1.4'
+gem 'jira-ruby', '~> 1.7'
+gem 'atlassian-jwt', '~> 0.2.0'
# Flowdock integration
gem 'flowdock', '~> 0.7'
@@ -241,7 +247,7 @@ gem 'asana', '~> 0.8.1'
gem 'ruby-fogbugz', '~> 0.2.1'
# Kubernetes integration
-gem 'kubeclient', '~> 4.2.2'
+gem 'kubeclient', '~> 4.4.0'
# Sanitize user input
gem 'sanitize', '~> 4.6'
@@ -270,7 +276,7 @@ gem 'fast_blank'
# Parse time & duration
gem 'chronic', '~> 0.10.2'
-gem 'chronic_duration', '~> 0.10.6'
+gem 'gitlab_chronic_duration', '~> 0.10.6.1'
gem 'webpack-rails', '~> 0.9.10'
gem 'rack-proxy', '~> 0.6.0'
@@ -283,7 +289,6 @@ gem 'font-awesome-rails', '~> 4.7'
gem 'gemojione', '~> 3.3'
gem 'gon', '~> 6.2'
gem 'request_store', '~> 1.3'
-gem 'virtus', '~> 1.0.1'
gem 'base32', '~> 0.3.0'
gem "gitlab-license", "~> 1.0"
@@ -294,7 +299,7 @@ gem 'sentry-raven', '~> 2.9'
gem 'premailer-rails', '~> 1.9.7'
# LabKit: Tracing and Correlation
-gem 'gitlab-labkit', '~> 0.3.0'
+gem 'gitlab-labkit', '~> 0.5'
# I18n
gem 'ruby_parser', '~> 3.8', require: false
@@ -306,12 +311,8 @@ gem 'gettext', '~> 3.2.2', require: false, group: :development
gem 'batch-loader', '~> 1.4.0'
# Perf bar
-gem 'peek', '~> 1.0.1'
-gem 'peek-gc', '~> 0.0.2'
-gem 'peek-mysql2', '~> 1.2.0', group: :mysql
-gem 'peek-pg', '~> 1.3.0', group: :postgres
-gem 'peek-rblineprof', '~> 0.2.0'
-gem 'peek-redis', '~> 1.2.0'
+# https://gitlab.com/gitlab-org/gitlab/issues/13996
+gem 'gitlab-peek', '~> 0.0.1', require: 'peek'
# Snowplow events tracking
gem 'snowplow-tracker', '~> 0.6.1'
@@ -325,13 +326,14 @@ group :metrics do
gem 'influxdb', '~> 0.2', require: false
# Prometheus
- gem 'prometheus-client-mmap', '~> 0.9.8'
+ gem 'prometheus-client-mmap', '~> 0.9.10'
gem 'raindrops', '~> 0.18'
end
group :development do
gem 'foreman', '~> 0.84.0'
gem 'brakeman', '~> 4.2', require: false
+ gem 'danger', '~> 6.0', require: false
gem 'letter_opener_web', '~> 1.3.4'
gem 'rblineprof', '~> 0.3.6', platform: :mri, require: false
@@ -345,7 +347,6 @@ group :development do
end
group :development, :test do
- gem 'bootsnap', '~> 1.4'
gem 'bullet', '~> 5.5.0', require: !!ENV['ENABLE_BULLET']
gem 'pry-byebug', '~> 3.5.1', platform: :mri
gem 'pry-rails', '~> 0.3.4'
@@ -354,7 +355,7 @@ group :development, :test do
gem 'fuubar', '~> 2.2.0'
gem 'database_cleaner', '~> 1.7.0'
- gem 'factory_bot_rails', '~> 4.8.2'
+ gem 'factory_bot_rails', '~> 5.1.0'
gem 'rspec-rails', '~> 3.8.0'
gem 'rspec-retry', '~> 0.6.1'
gem 'rspec_profiling', '~> 0.0.5'
@@ -384,15 +385,12 @@ group :development, :test do
gem 'haml_lint', '~> 0.31.0', require: false
gem 'simplecov', '~> 0.16.1', require: false
gem 'bundler-audit', '~> 0.5.0', require: false
- gem 'mdl', '~> 0.5.0', require: false
gem 'benchmark-ips', '~> 2.3.0', require: false
gem 'license_finder', '~> 5.4', require: false
gem 'knapsack', '~> 1.17'
- gem 'activerecord_sane_schema_dumper', '1.0'
-
gem 'stackprof', '~> 0.2.10', require: false
gem 'simple_po_parser', '~> 1.1.2', require: false
@@ -406,9 +404,8 @@ group :test do
gem 'json-schema', '~> 2.8.0'
gem 'webmock', '~> 3.5.1'
gem 'rails-controller-testing'
- gem 'sham_rack', '~> 1.3.6'
gem 'concurrent-ruby', '~> 1.1'
- gem 'test-prof', '~> 0.2.5'
+ gem 'test-prof', '~> 0.10.0'
gem 'rspec_junit_formatter'
end
@@ -419,7 +416,7 @@ gem 'mail_room', '~> 0.9.1'
gem 'email_reply_trimmer', '~> 0.1'
gem 'html2text'
-gem 'ruby-prof', '~> 0.17.0'
+gem 'ruby-prof', '~> 1.0.0'
gem 'rbtrace', '~> 0.4', require: false
gem 'memory_profiler', '~> 0.9', require: false
gem 'benchmark-memory', '~> 0.1', require: false
@@ -448,8 +445,8 @@ group :ed25519 do
gem 'bcrypt_pbkdf', '~> 1.0'
end
-# Gitaly GRPC client
-gem 'gitaly-proto', '~> 1.37.0', require: 'gitaly'
+# Gitaly GRPC protocol definitions
+gem 'gitaly', '~> 1.65.0'
gem 'grpc', '~> 1.19.0'
@@ -461,10 +458,14 @@ gem 'toml-rb', '~> 1.0.0', require: false
gem 'flipper', '~> 0.13.0'
gem 'flipper-active_record', '~> 0.13.0'
gem 'flipper-active_support_cache_store', '~> 0.13.0'
+gem 'unleash', '~> 0.1.5'
# Structured logging
gem 'lograge', '~> 0.5'
gem 'grape_logging', '~> 1.7'
# DNS Lookup
-gem 'net-dns', '~> 0.9.0'
+gem 'gitlab-net-dns', '~> 0.9.1'
+
+# Countries list
+gem 'countries', '~> 3.0'
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile.lock b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
similarity index 91%
rename from pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile.lock
rename to pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
index 0a6d7fe1370..18160932c56 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile.lock
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
@@ -41,8 +41,6 @@ GEM
activerecord-explain-analyze (0.1.0)
activerecord (>= 4)
pg
- activerecord_sane_schema_dumper (1.0)
- rails (>= 5, < 6)
activestorage (5.2.3)
actionpack (= 5.2.3)
activerecord (= 5.2.3)
@@ -76,7 +74,8 @@ GEM
asciidoctor-plantuml (0.0.9)
asciidoctor (>= 1.5.6, < 3.0.0)
ast (2.4.0)
- atomic (1.1.99)
+ atlassian-jwt (0.2.0)
+ jwt (~> 2.1.0)
attr_encrypted (3.1.0)
encryptor (~> 3.0.0)
attr_required (1.0.1)
@@ -109,7 +108,7 @@ GEM
binding_ninja (0.2.3)
binding_of_caller (0.8.0)
debug_inspector (>= 0.0.1)
- bootsnap (1.4.1)
+ bootsnap (1.4.5)
msgpack (~> 1.0)
bootstrap_form (4.2.0)
actionpack (>= 5.0)
@@ -145,23 +144,31 @@ GEM
childprocess (0.9.0)
ffi (~> 1.0, >= 1.0.11)
chronic (0.10.2)
- chronic_duration (0.10.6)
- numerizer (~> 0.1.1)
chunky_png (1.3.5)
citrus (3.0.2)
+ claide (1.0.3)
+ claide-plugins (0.9.2)
+ cork
+ nap
+ open4 (~> 1.3)
coderay (1.1.2)
coercible (1.0.0)
descendants_tracker (~> 0.0.1)
+ colored2 (3.1.2)
commonmarker (0.17.13)
ruby-enum (~> 0.5)
concord (0.1.5)
adamantium (~> 0.2.0)
equalizer (~> 0.0.9)
concurrent-ruby (1.1.5)
- concurrent-ruby-ext (1.1.5)
- concurrent-ruby (= 1.1.5)
connection_pool (2.2.2)
contracts (0.11.0)
+ cork (0.3.0)
+ colored2 (~> 3.1)
+ countries (3.0.0)
+ i18n_data (~> 0.8.0)
+ sixarm_ruby_unaccent (~> 1.1)
+ unicode_utils (~> 1.4)
crack (0.4.3)
safe_yaml (~> 1.0.0)
crass (1.0.4)
@@ -169,6 +176,19 @@ GEM
css_parser (1.5.0)
addressable
daemons (1.2.6)
+ danger (6.0.9)
+ claide (~> 1.0)
+ claide-plugins (>= 0.9.2)
+ colored2 (~> 3.1)
+ cork (~> 0.1)
+ faraday (~> 0.9)
+ faraday-http-cache (~> 2.0)
+ git (~> 1.5)
+ kramdown (~> 2.0)
+ kramdown-parser-gfm (~> 1.0)
+ no_proxy_fix
+ octokit (~> 4.7)
+ terminal-table (~> 1)
database_cleaner (1.7.0)
debug_inspector (0.0.3)
debugger-ruby_core_source (1.3.8)
@@ -189,10 +209,10 @@ GEM
descendants_tracker (0.0.4)
thread_safe (~> 0.3, >= 0.3.1)
device_detector (1.0.0)
- devise (4.6.2)
+ devise (4.7.1)
bcrypt (~> 3.0)
orm_adapter (~> 0.1)
- railties (>= 4.1.0, < 6.0)
+ railties (>= 4.1.0)
responders
warden (~> 1.2.3)
devise-two-factor (3.0.0)
@@ -234,7 +254,7 @@ GEM
mail (~> 2.7)
encryptor (3.0.0)
equalizer (0.0.11)
- erubi (1.8.0)
+ erubi (1.9.0)
escape_utils (1.2.1)
et-orbi (1.2.1)
tzinfo
@@ -244,13 +264,15 @@ GEM
expression_parser (0.9.0)
extended-markdown-filter (0.6.0)
html-pipeline (~> 2.0)
- factory_bot (4.8.2)
- activesupport (>= 3.0.0)
- factory_bot_rails (4.8.2)
- factory_bot (~> 4.8.2)
- railties (>= 3.0.0)
+ factory_bot (5.1.0)
+ activesupport (>= 4.2.0)
+ factory_bot_rails (5.1.0)
+ factory_bot (~> 5.1.0)
+ railties (>= 4.2.0)
faraday (0.12.2)
multipart-post (>= 1.2, < 3)
+ faraday-http-cache (2.0.0)
+ faraday (~> 0.8)
faraday_middleware (0.12.2)
faraday (>= 0.7.4, < 1.0)
faraday_middleware-aws-signers-v4 (0.1.7)
@@ -262,7 +284,7 @@ GEM
fast_blank (1.0.0)
fast_gettext (1.6.0)
ffaker (2.10.0)
- ffi (1.10.0)
+ ffi (1.11.1)
flipper (0.13.0)
flipper-active_record (0.13.0)
activerecord (>= 3.2, < 6)
@@ -288,7 +310,7 @@ GEM
excon (~> 0.58)
formatador (~> 0.2)
mime-types
- fog-google (1.8.2)
+ fog-google (1.9.1)
fog-core (<= 2.1.0)
fog-json (~> 1.2)
fog-xml (~> 0.1.0)
@@ -335,24 +357,31 @@ GEM
gettext_i18n_rails (>= 0.7.1)
po_to_json (>= 1.0.0)
rails (>= 3.2.0)
- gitaly-proto (1.37.0)
+ git (1.5.0)
+ gitaly (1.65.0)
grpc (~> 1.0)
github-markup (1.7.0)
- gitlab-labkit (0.3.0)
+ gitlab-labkit (0.5.2)
actionpack (~> 5)
activesupport (~> 5)
- grpc (~> 1.19.0)
+ grpc (~> 1.19)
jaeger-client (~> 0.10)
opentracing (~> 0.4)
+ redis (> 3.0.0, < 5.0.0)
gitlab-license (1.0.0)
gitlab-markup (1.7.0)
- gitlab-sidekiq-fetcher (0.4.0)
+ gitlab-net-dns (0.9.1)
+ gitlab-peek (0.0.1)
+ railties (>= 4.0.0)
+ gitlab-sidekiq-fetcher (0.5.2)
sidekiq (~> 5)
- gitlab-styles (2.7.0)
+ gitlab-styles (2.8.0)
rubocop (~> 0.69.0)
rubocop-gitlab-security (~> 0.1.0)
rubocop-performance (~> 1.1.0)
rubocop-rspec (~> 1.19)
+ gitlab_chronic_duration (0.10.6.1)
+ numerizer (~> 0.1.1)
gitlab_omniauth-ldap (2.1.1)
net-ldap (~> 0.16)
omniauth (~> 1.3)
@@ -402,7 +431,7 @@ GEM
graphiql-rails (1.4.10)
railties
sprockets-rails
- graphql (1.8.1)
+ graphql (1.9.11)
graphql-docs (1.6.0)
commonmarker (~> 0.16)
escape_utils (~> 1.2)
@@ -459,20 +488,24 @@ GEM
mime-types (~> 3.0)
multi_xml (>= 0.5.2)
httpclient (2.8.3)
- i18n (1.6.0)
+ i18n (1.7.0)
concurrent-ruby (~> 1.0)
+ i18n_data (0.8.0)
icalendar (2.4.1)
ice_nine (0.11.2)
influxdb (0.2.3)
cause
json
+ invisible_captcha (0.12.1)
+ rails (>= 3.2.0)
ipaddress (0.8.3)
jaeger-client (0.10.0)
opentracing (~> 0.3)
thrift
- jaro_winkler (1.5.2)
- jira-ruby (1.4.1)
+ jaro_winkler (1.5.3)
+ jira-ruby (1.7.1)
activesupport
+ atlassian-jwt
multipart-post
oauth (~> 0.5, >= 0.5.0)
jmespath (1.3.1)
@@ -503,8 +536,10 @@ GEM
kgio (2.11.2)
knapsack (1.17.0)
rake
- kramdown (1.17.0)
- kubeclient (4.2.2)
+ kramdown (2.1.0)
+ kramdown-parser-gfm (1.1.0)
+ kramdown (~> 2.0)
+ kubeclient (4.4.0)
http (~> 3.0)
recursive-open-struct (~> 1.0, >= 1.0.4)
rest-client (~> 2.0)
@@ -531,7 +566,7 @@ GEM
activesupport (>= 4)
railties (>= 4)
request_store (~> 1.0)
- loofah (2.2.3)
+ loofah (2.3.0)
crass (~> 1.0.2)
nokogiri (>= 1.5.9)
mail (2.7.1)
@@ -539,10 +574,6 @@ GEM
mail_room (0.9.1)
marcel (0.3.3)
mimemagic (~> 0.3.2)
- mdl (0.5.0)
- kramdown (~> 1.12, >= 1.12.0)
- mixlib-cli (~> 1.7, >= 1.7.0)
- mixlib-config (~> 2.2, >= 2.2.1)
memoist (0.16.0)
memoizable (0.4.2)
thread_safe (~> 0.3, >= 0.3.1)
@@ -552,29 +583,27 @@ GEM
mime-types-data (~> 3.2015)
mime-types-data (3.2019.0331)
mimemagic (0.3.2)
- mini_magick (4.8.0)
+ mini_magick (4.9.5)
mini_mime (1.0.1)
mini_portile2 (2.4.0)
minitest (5.11.3)
- mixlib-cli (1.7.0)
- mixlib-config (2.2.18)
- tomlrb
- msgpack (1.2.10)
+ msgpack (1.3.1)
multi_json (1.13.1)
multi_xml (0.6.0)
multipart-post (2.0.0)
+ murmurhash3 (0.1.6)
mustermann (1.0.3)
mustermann-grape (1.0.0)
mustermann (~> 1.0.0)
- mysql2 (0.4.10)
nakayoshi_fork (0.0.4)
- net-dns (0.9.0)
+ nap (1.1.0)
net-ldap (0.16.0)
net-ntp (2.1.3)
net-ssh (5.2.0)
netrc (0.11.0)
nio4r (2.3.1)
- nokogiri (1.10.3)
+ no_proxy_fix (0.1.2)
+ nokogiri (1.10.4)
mini_portile2 (~> 2.4.0)
nokogumbo (1.5.0)
nokogiri
@@ -650,6 +679,7 @@ GEM
addressable (~> 2.5)
omniauth (~> 1.3)
openid_connect (~> 1.1)
+ open4 (1.3.4)
openid_connect (1.1.6)
activemodel
attr_required (>= 1.0.0)
@@ -670,29 +700,6 @@ GEM
parser (2.6.3.0)
ast (~> 2.4.0)
parslet (1.8.2)
- peek (1.0.1)
- concurrent-ruby (>= 0.9.0)
- concurrent-ruby-ext (>= 0.9.0)
- railties (>= 4.0.0)
- peek-gc (0.0.2)
- peek
- peek-mysql2 (1.2.0)
- concurrent-ruby
- concurrent-ruby-ext
- mysql2
- peek
- peek-pg (1.3.0)
- concurrent-ruby
- concurrent-ruby-ext
- peek
- pg
- peek-rblineprof (0.2.0)
- peek
- rblineprof
- peek-redis (1.2.0)
- atomic (>= 1.0.0)
- peek
- redis
pg (1.1.4)
po_to_json (1.0.1)
json (>= 1.6.0)
@@ -708,7 +715,7 @@ GEM
parser
unparser
procto (0.0.3)
- prometheus-client-mmap (0.9.8)
+ prometheus-client-mmap (0.9.10)
pry (0.11.3)
coderay (~> 1.1.0)
method_source (~> 0.9.0)
@@ -763,8 +770,8 @@ GEM
rails-dom-testing (2.0.3)
activesupport (>= 4.2.0)
nokogiri (>= 1.6)
- rails-html-sanitizer (1.0.4)
- loofah (~> 2.2, >= 2.2.2)
+ rails-html-sanitizer (1.3.0)
+ loofah (~> 2.3)
rails-i18n (5.1.1)
i18n (>= 0.7, < 2)
railties (>= 5.0, < 6)
@@ -776,7 +783,7 @@ GEM
thor (>= 0.19.0, < 2.0)
rainbow (3.0.0)
raindrops (0.19.0)
- rake (12.3.2)
+ rake (12.3.3)
rb-fsevent (0.10.2)
rb-inotify (0.9.10)
ffi (>= 0.5.0, < 2)
@@ -791,17 +798,17 @@ GEM
recaptcha (4.13.1)
json
recursive-open-struct (1.1.0)
- redis (3.3.5)
+ redis (4.1.2)
redis-actionpack (5.0.2)
actionpack (>= 4.0, < 6)
redis-rack (>= 1, < 3)
redis-store (>= 1.1.0, < 2)
- redis-activesupport (5.0.4)
+ redis-activesupport (5.0.7)
activesupport (>= 3, < 6)
redis-store (>= 1.3, < 2)
redis-namespace (1.6.0)
redis (>= 3.0.4)
- redis-rack (2.0.4)
+ redis-rack (2.0.5)
rack (>= 1.5, < 3)
redis-store (>= 1.2, < 2)
redis-rails (5.0.2)
@@ -817,9 +824,9 @@ GEM
declarative-option (< 0.2.0)
uber (< 0.2.0)
request_store (1.3.1)
- responders (2.4.0)
- actionpack (>= 4.2.0, < 5.3)
- railties (>= 4.2.0, < 5.3)
+ responders (2.4.1)
+ actionpack (>= 4.2.0, < 6.0)
+ railties (>= 4.2.0, < 6.0)
rest-client (2.0.2)
http-cookie (>= 1.0.2, < 2.0)
mime-types (>= 1.16, < 4.0)
@@ -827,7 +834,7 @@ GEM
retriable (3.1.2)
rinku (2.0.0)
rotp (2.1.2)
- rouge (3.5.1)
+ rouge (3.11.0)
rqrcode (0.7.0)
chunky_png
rqrcode-rails3 (0.1.7)
@@ -886,8 +893,8 @@ GEM
i18n
ruby-fogbugz (0.2.1)
crack (~> 0.4)
- ruby-prof (0.17.0)
- ruby-progressbar (1.10.0)
+ ruby-prof (1.0.0)
+ ruby-progressbar (1.10.1)
ruby-saml (1.7.2)
nokogiri (>= 1.5.10)
ruby_parser (3.13.1)
@@ -895,7 +902,7 @@ GEM
rubyntlm (0.6.2)
rubypants (0.2.0)
rubyzip (1.2.2)
- rugged (0.28.1)
+ rugged (0.28.3.1)
safe_yaml (1.0.4)
sanitize (4.6.6)
crass (~> 1.0.2)
@@ -931,8 +938,6 @@ GEM
faraday (>= 0.7.6, < 1.0)
settingslogic (2.0.9)
sexp_processor (4.12.0)
- sham_rack (1.3.6)
- rack
shoulda-matchers (4.0.1)
activesupport (>= 4.2.0)
sidekiq (5.2.7)
@@ -954,6 +959,7 @@ GEM
json (>= 1.8, < 3)
simplecov-html (~> 0.10.0)
simplecov-html (0.10.2)
+ sixarm_ruby_unaccent (1.2.0)
slack-notifier (1.5.1)
snowplow-tracker (0.6.1)
contracts (~> 0.7, <= 0.11)
@@ -986,7 +992,9 @@ GEM
ffi
sysexits (1.2.0)
temple (0.8.1)
- test-prof (0.2.5)
+ terminal-table (1.8.0)
+ unicode-display_width (~> 1.1, >= 1.1.1)
+ test-prof (0.10.0)
text (1.3.1)
thin (1.7.2)
daemons (~> 1.0, >= 1.0.9)
@@ -1002,7 +1010,6 @@ GEM
parslet (~> 1.8.0)
toml-rb (1.0.0)
citrus (~> 3.0, > 3.0)
- tomlrb (1.2.8)
truncato (0.7.11)
htmlentities (~> 4.3.1)
nokogiri (>= 1.7.0, <= 2.0)
@@ -1017,6 +1024,7 @@ GEM
unf_ext
unf_ext (0.0.7.5)
unicode-display_width (1.6.0)
+ unicode_utils (1.4.0)
unicorn (5.4.1)
kgio (~> 2.6)
raindrops (~> 0.7)
@@ -1024,6 +1032,8 @@ GEM
get_process_mem (~> 0)
unicorn (>= 4, < 6)
uniform_notifier (1.10.0)
+ unleash (0.1.5)
+ murmurhash3 (~> 0.1.6)
unparser (0.4.5)
abstract_type (~> 0.0.7)
adamantium (~> 0.2.0)
@@ -1048,8 +1058,8 @@ GEM
descendants_tracker (~> 0.0, >= 0.0.3)
equalizer (~> 0.0, >= 0.0.9)
vmstat (2.3.0)
- warden (1.2.7)
- rack (>= 1.0)
+ warden (1.2.8)
+ rack (>= 2.0.6)
webfinger (1.1.0)
activesupport
httpclient (>= 2.4)
@@ -1079,7 +1089,6 @@ DEPENDENCIES
ace-rails-ap (~> 4.1.0)
acme-client (~> 2.0.2)
activerecord-explain-analyze (~> 0.1)
- activerecord_sane_schema_dumper (= 1.0)
acts-as-taggable-on (~> 6.0)
addressable (~> 2.5.2)
akismet (~> 2.0)
@@ -1088,6 +1097,7 @@ DEPENDENCIES
asciidoctor (~> 2.0.10)
asciidoctor-include-ext (~> 0.3.1)
asciidoctor-plantuml (= 0.0.9)
+ atlassian-jwt (~> 0.2.0)
attr_encrypted (~> 3.1.0)
awesome_print
aws-sdk
@@ -1110,11 +1120,12 @@ DEPENDENCIES
carrierwave (~> 1.3)
charlock_holmes (~> 0.7.5)
chronic (~> 0.10.2)
- chronic_duration (~> 0.10.6)
commonmarker (~> 0.17)
concurrent-ruby (~> 1.1)
connection_pool (~> 2.0)
+ countries (~> 3.0)
creole (~> 0.5.0)
+ danger (~> 6.0)
database_cleaner (~> 1.7.0)
deckar01-task_list (= 2.2.0)
default_value_for (~> 3.2.0)
@@ -1133,7 +1144,7 @@ DEPENDENCIES
email_reply_trimmer (~> 0.1)
email_spec (~> 2.2.0)
escape_utils (~> 1.1)
- factory_bot_rails (~> 4.8.2)
+ factory_bot_rails (~> 5.1.0)
faraday (~> 0.12)
faraday_middleware-aws-signers-v4
fast_blank
@@ -1145,7 +1156,7 @@ DEPENDENCIES
fog-aliyun (~> 0.3)
fog-aws (~> 3.5)
fog-core (= 2.1.0)
- fog-google (~> 1.8)
+ fog-google (~> 1.9)
fog-local (~> 0.6)
fog-openstack (~> 1.0)
fog-rackspace (~> 0.1.1)
@@ -1157,13 +1168,16 @@ DEPENDENCIES
gettext (~> 3.2.2)
gettext_i18n_rails (~> 1.8.0)
gettext_i18n_rails_js (~> 1.3)
- gitaly-proto (~> 1.37.0)
+ gitaly (~> 1.65.0)
github-markup (~> 1.7.0)
- gitlab-labkit (~> 0.3.0)
+ gitlab-labkit (~> 0.5)
gitlab-license (~> 1.0)
gitlab-markup (~> 1.7.0)
- gitlab-sidekiq-fetcher (~> 0.4.0)
+ gitlab-net-dns (~> 0.9.1)
+ gitlab-peek (~> 0.0.1)
+ gitlab-sidekiq-fetcher (= 0.5.2)
gitlab-styles (~> 2.7)
+ gitlab_chronic_duration (~> 0.10.6.1)
gitlab_omniauth-ldap (~> 2.1.1)
gon (~> 6.2)
google-api-client (~> 0.23)
@@ -1174,7 +1188,7 @@ DEPENDENCIES
grape-path-helpers (~> 1.1)
grape_logging (~> 1.7)
graphiql-rails (~> 1.4.10)
- graphql (~> 1.8.0)
+ graphql (~> 1.9.11)
graphql-docs (~> 1.6.0)
grpc (~> 1.19.0)
gssapi
@@ -1189,32 +1203,30 @@ DEPENDENCIES
httparty (~> 0.16.4)
icalendar
influxdb (~> 0.2)
- jira-ruby (~> 1.4)
+ invisible_captcha (~> 0.12.1)
+ jira-ruby (~> 1.7)
js_regex (~> 3.1)
json-schema (~> 2.8.0)
jwt (~> 2.1.0)
kaminari (~> 1.0)
knapsack (~> 1.17)
- kubeclient (~> 4.2.2)
+ kubeclient (~> 4.4.0)
letter_opener_web (~> 1.3.4)
license_finder (~> 5.4)
licensee (~> 8.9)
lograge (~> 0.5)
loofah (~> 2.2)
mail_room (~> 0.9.1)
- mdl (~> 0.5.0)
memory_profiler (~> 0.9)
method_source (~> 0.8)
mimemagic (~> 0.3.2)
mini_magick
minitest (~> 5.11.0)
- mysql2 (~> 0.4.10)
nakayoshi_fork (~> 0.0.4)
- net-dns (~> 0.9.0)
net-ldap
net-ntp
net-ssh (~> 5.2)
- nokogiri (~> 1.10.3)
+ nokogiri (~> 1.10.4)
oauth2 (~> 1.4)
octokit (~> 4.9)
omniauth (~> 1.8)
@@ -1236,15 +1248,9 @@ DEPENDENCIES
omniauth_crowd (~> 2.2.0)
omniauth_openid_connect (~> 0.3.1)
org-ruby (~> 0.9.12)
- peek (~> 1.0.1)
- peek-gc (~> 0.0.2)
- peek-mysql2 (~> 1.2.0)
- peek-pg (~> 1.3.0)
- peek-rblineprof (~> 0.2.0)
- peek-redis (~> 1.2.0)
pg (~> 1.1)
premailer-rails (~> 1.9.7)
- prometheus-client-mmap (~> 0.9.8)
+ prometheus-client-mmap (~> 0.9.10)
pry-byebug (~> 3.5.1)
pry-rails (~> 0.3.4)
puma (~> 3.12)
@@ -1265,12 +1271,12 @@ DEPENDENCIES
rdoc (~> 6.0)
re2 (~> 1.1.1)
recaptcha (~> 4.11)
- redis (~> 3.2)
+ redis (~> 4.0)
redis-namespace (~> 1.6.0)
redis-rails (~> 5.0.2)
request_store (~> 1.3)
responders (~> 2.0)
- rouge (~> 3.5)
+ rouge (~> 3.11.0)
rqrcode-rails3 (~> 0.1.7)
rspec-parameterized
rspec-rails (~> 3.8.0)
@@ -1282,7 +1288,7 @@ DEPENDENCIES
rubocop-performance (~> 1.1.0)
rubocop-rspec (~> 1.22.1)
ruby-fogbugz (~> 0.2.1)
- ruby-prof (~> 0.17.0)
+ ruby-prof (~> 1.0.0)
ruby-progressbar
ruby_parser (~> 3.8)
rubyzip (~> 1.2.2)
@@ -1294,7 +1300,6 @@ DEPENDENCIES
selenium-webdriver (~> 3.141)
sentry-raven (~> 2.9)
settingslogic (~> 2.0.9)
- sham_rack (~> 1.3.6)
shoulda-matchers (~> 4.0.1)
sidekiq (~> 5.2.7)
sidekiq-cron (~> 1.0)
@@ -1309,7 +1314,7 @@ DEPENDENCIES
stackprof (~> 0.2.10)
state_machines-activerecord (~> 0.5.1)
sys-filesystem (~> 1.1.6)
- test-prof (~> 0.2.5)
+ test-prof (~> 0.10.0)
thin (~> 1.7.0)
timecop (~> 0.8.0)
toml-rb (~> 1.0.0)
@@ -1319,9 +1324,9 @@ DEPENDENCIES
unf (~> 0.1.4)
unicorn (~> 5.4.1)
unicorn-worker-killer (~> 0.4.4)
+ unleash (~> 0.1.5)
validates_hostname (~> 1.0.6)
version_sorter (~> 2.2.4)
- virtus (~> 1.0.1)
vmstat (~> 2.3.0)
webmock (~> 3.5.1)
webpack-rails (~> 0.9.10)
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv-ee/gemset.nix b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
similarity index 80%
rename from pkgs/applications/version-management/gitlab/rubyEnv-ee/gemset.nix
rename to pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
index 8050743ab25..84a984ea2b3 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv-ee/gemset.nix
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
@@ -1,5 +1,7 @@
{
abstract_type = {
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "09330cmhrc2wmfhdj9zzg82sv6cdhm3qgdkva5ni5xfjril2pf14";
@@ -8,6 +10,8 @@
version = "0.0.7";
};
ace-rails-ap = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "14wj9gsiy7rm0lvs27ffsrh92wndjksj6rlfj3n7jhv1v77w9v2h";
@@ -50,7 +54,7 @@
};
actionpack = {
dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
- groups = ["default" "development" "mysql" "postgres" "test"];
+ groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
@@ -61,7 +65,7 @@
};
actionview = {
dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
- groups = ["default" "development" "mysql" "postgres" "test"];
+ groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
@@ -114,15 +118,6 @@
};
version = "0.1.0";
};
- activerecord_sane_schema_dumper = {
- dependencies = ["rails"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "16jbf461wjaxyq26si5505wcj46mi23mii9hx4wjpva1zn9hz5m2";
- type = "gem";
- };
- version = "1.0";
- };
activestorage = {
dependencies = ["actionpack" "activerecord" "marcel"];
groups = ["default" "development" "test"];
@@ -136,7 +131,7 @@
};
activesupport = {
dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
- groups = ["default" "development" "mysql" "postgres" "test"];
+ groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
@@ -158,6 +153,8 @@
};
adamantium = {
dependencies = ["ice_nine" "memoizable"];
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0165r2ikgfwv2rm8dzyijkp74fvg0ni72hpdx8ay2v7cj08dqyak";
@@ -167,6 +164,8 @@
};
addressable = {
dependencies = ["public_suffix"];
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0viqszpkggqi8hq87pqp0xykhvz60g99nwmkwsb0v45kc2liwxvk";
@@ -175,6 +174,8 @@
version = "2.5.2";
};
aes_key_wrap = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0li86k0g812jkzrppb2fvqngvzp09nygywjpn81nx90s01wxqw07";
@@ -183,6 +184,8 @@
version = "1.0.1";
};
akismet = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0hqpn25iyypkwkrqaibjm5nss5jmlkrddhia7frmz94prvyjr02w";
@@ -213,6 +216,8 @@
};
asana = {
dependencies = ["faraday" "faraday_middleware" "faraday_middleware-multi_json" "oauth2"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1h0qiywvjjc9iyzq9nz5iaqyh6qsrix4ip0w86j5c4v5g940z6qx";
@@ -253,6 +258,8 @@
version = "0.0.9";
};
ast = {
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "184ssy3w93nkajlz2c70ifm79jp3j737294kbc5fjw69v1w0n9x7";
@@ -260,16 +267,21 @@
};
version = "2.4.0";
};
- atomic = {
+ atlassian-jwt = {
+ dependencies = ["jwt"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1kh9rvhjn4dndbfsk3yjq7alds6s2j70rc4k8wdwdyibab8a8gq9";
+ sha256 = "1ckfiiwv7dnifra7zhbggj96g0x0kzkv0x9n1is7lb86svlm7rjj";
type = "gem";
};
- version = "1.1.99";
+ version = "0.2.0";
};
attr_encrypted = {
dependencies = ["encryptor"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0ncv2az1zlj33bsllr6q1qdvbw42gv91lxq0ryclbv8l8xh841jg";
@@ -288,6 +300,8 @@
version = "1.0.1";
};
awesome_print = {
+ groups = ["development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "14arh1ixfsd6j5md0agyzvksm5svfkvchb90fp32nn7y3avcmc2h";
@@ -297,6 +311,8 @@
};
aws-sdk = {
dependencies = ["aws-sdk-resources"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "03r754cqa0jayf1nxpcmp1anaypxwpcjyjaq5cz7i04l9jdxvsnn";
@@ -306,6 +322,8 @@
};
aws-sdk-core = {
dependencies = ["aws-sigv4" "jmespath"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1pq09wwb74y4m5adk4hi4zlz05q6sxjxij6g71v6nkd0z83hi34x";
@@ -315,6 +333,8 @@
};
aws-sdk-resources = {
dependencies = ["aws-sdk-core"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "15m56k12x9gzkcyhwrab1qhi3wqla0qmv84dkqcjwp44d7c2xjyi";
@@ -323,6 +343,8 @@
version = "2.9.32";
};
aws-sigv4 = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0cnrfxbaxn86qrxhfidg10f89ka1hddihakdhcvnri0dljaw7dsz";
@@ -332,6 +354,8 @@
};
axiom-types = {
dependencies = ["descendants_tracker" "ice_nine" "thread_safe"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "10q3k04pll041mkgy0m5fn2b1lazm6ly1drdbcczl5p57lzi3zy1";
@@ -340,6 +364,8 @@
version = "0.1.1";
};
babosa = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "05rgxg4pz4bc4xk34w5grv0yp1j94wf571w84lf3xgqcbs42ip2f";
@@ -348,6 +374,8 @@
version = "1.0.2";
};
base32 = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0b7y8sy6j9v1lvfzd4va88k5vg9yh0xcjzzn3llcw7yxqlcrnbjk";
@@ -366,6 +394,8 @@
version = "1.4.0";
};
bcrypt = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0ysblqxkclmnhrd0kmb5mr8p38mbar633gdsb14b7dhkhgawgzfy";
@@ -374,6 +404,8 @@
version = "3.1.12";
};
bcrypt_pbkdf = {
+ groups = ["ed25519"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0cj4k13c7qvvck7y25i3xarvyqq8d27vl61jddifkc7llnnap1hv";
@@ -382,6 +414,8 @@
version = "1.0.0";
};
benchmark-ips = {
+ groups = ["development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0bh681m54qdsdyvpvflj1wpnj3ybspbpjkr4cnlrl4nk4yikli0j";
@@ -402,6 +436,8 @@
};
better_errors = {
dependencies = ["coderay" "erubi" "rack"];
+ groups = ["development"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1pqnxxsqqs7vnqvamk5bzs84dv584g9s0qaf2vqb1v2aj5dabcg7";
@@ -410,6 +446,8 @@
version = "2.5.0";
};
bindata = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0kxy917xyxckifmnawff65j7g6yb3wh2s45npjq9lqjbi1p86lsr";
@@ -429,6 +467,8 @@
};
binding_of_caller = {
dependencies = ["debug_inspector"];
+ groups = ["development"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "05syqlks7463zsy1jdfbbdravdhj9hpj5pv2m74blqpv8bq4vv5g";
@@ -438,12 +478,14 @@
};
bootsnap = {
dependencies = ["msgpack"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1amksyijp9hwpc2jr0yi45hpcp0qiz5r2h8rnf2wi1hdfw6m2hxh";
+ sha256 = "0dyjk2irr0d3d3am2dzipg1zyv2nz69a16g8xkprxfa0na07wvs0";
type = "gem";
};
- version = "1.4.1";
+ version = "1.4.5";
};
bootstrap_form = {
dependencies = ["actionpack" "activemodel"];
@@ -457,6 +499,8 @@
version = "4.2.0";
};
brakeman = {
+ groups = ["development"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "161l4ln7x1vnqrcvbvglznf46f0lvq305vq211xaxp4fv4wwv89v";
@@ -465,6 +509,8 @@
version = "4.2.1";
};
browser = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0sdx0ny34i6vqxdsc7sy9g0nafdbrw8kvvb5xh9m18x1bzpqk92f";
@@ -473,6 +519,8 @@
version = "2.5.3";
};
builder = {
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0qibi5s67lpdv1wgcj66wcymcr04q6j4mzws6a479n0mlrmh5wr1";
@@ -482,6 +530,8 @@
};
bullet = {
dependencies = ["activesupport" "uniform_notifier"];
+ groups = ["development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1pdq3ckmwxnwrdm2x89zfj68h0yhiln35y8wps2nkvam4kpivyr5";
@@ -491,6 +541,8 @@
};
bundler-audit = {
dependencies = ["thor"];
+ groups = ["development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1gr7k6m9fda7m66irxzydm8v9xbmlryjj65cagwm1zyi5f317srb";
@@ -499,6 +551,12 @@
version = "0.5.0";
};
byebug = {
+ groups = ["default" "development" "test"];
+ platforms = [{
+ engine = "maglev";
+ } {
+ engine = "ruby";
+ }];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1vv7s88w8jb1qg4qz3jrs3x3y5d9jfyyl7wfiz78b5x95ydvx41q";
@@ -519,6 +577,8 @@
};
capybara-screenshot = {
dependencies = ["capybara" "launchy"];
+ groups = ["development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1x90lh7nf3zi54arjf430s9xdxr3c12xjq1l28izgxqdk8s40q7q";
@@ -528,6 +588,8 @@
};
carrierwave = {
dependencies = ["activemodel" "activesupport" "mime-types"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "10rz94kajilffp83sb767lr62b5f8l4jzqq80cr92wqxdgbszdks";
@@ -536,6 +598,8 @@
version = "1.3.1";
};
cause = {
+ groups = ["default" "metrics"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0digirxqlwdg79mkbn70yc7i9i1qnclm2wjbrc47kqv6236bpj00";
@@ -544,6 +608,8 @@
version = "0.1";
};
character_set = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "114npdbw1ivyx4vnid8ncnjw4wnjcipf2lvihlg3ibbh7an0m9s9";
@@ -552,6 +618,8 @@
version = "1.1.2";
};
charlock_holmes = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1nf1l31n10yaark2rrg5qzyzcx9w80681449s3j09qmnipsl8rl5";
@@ -561,6 +629,8 @@
};
childprocess = {
dependencies = ["ffi"];
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0a61922kmvcxyj5l70fycapr87gz1dzzlkfpq85rfqk5vdh3d28p";
@@ -569,6 +639,8 @@
version = "0.9.0";
};
chronic = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1hrdkn4g8x7dlzxwb1rfgr8kw3bp4ywg5l4y4i9c2g5cwv62yvvn";
@@ -576,16 +648,9 @@
};
version = "0.10.2";
};
- chronic_duration = {
- dependencies = ["numerizer"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1k7sx3xqbrn6s4pishh2pgr4kw6fmw63h00lh503l66k8x0qvigs";
- type = "gem";
- };
- version = "0.10.6";
- };
chunky_png = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0vf0axgrm95bs3y0x5gdb76xawfh210yxplj7jbwr6z7n88i1axn";
@@ -594,6 +659,8 @@
version = "1.3.5";
};
citrus = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0l7nhk3gkm1hdchkzzhg2f70m47pc0afxfpl6mkiibc9qcpl3hjf";
@@ -601,7 +668,34 @@
};
version = "3.0.2";
};
+ claide = {
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0kasxsms24fgcdsq680nz99d5lazl9rmz1qkil2y5gbbssx89g0z";
+ type = "gem";
+ };
+ version = "1.0.3";
+ };
+ claide-plugins = {
+ dependencies = ["cork" "nap" "open4"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bhw5j985qs48v217gnzva31rw5qvkf7qj8mhp73pcks0sy7isn7";
+ type = "gem";
+ };
+ version = "0.9.2";
+ };
coderay = {
+ groups = ["default" "development" "test"];
+ platforms = [{
+ engine = "maglev";
+ } {
+ engine = "ruby";
+ }];
source = {
remotes = ["https://rubygems.org"];
sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y";
@@ -611,6 +705,8 @@
};
coercible = {
dependencies = ["descendants_tracker"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1p5azydlsz0nkxmcq0i1gzmcfq02lgxc4as7wmf47j1c6ljav0ah";
@@ -618,8 +714,20 @@
};
version = "1.0.0";
};
+ colored2 = {
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0jlbqa9q4mvrm73aw9mxh23ygzbjiqwisl32d8szfb5fxvbjng5i";
+ type = "gem";
+ };
+ version = "3.1.2";
+ };
commonmarker = {
dependencies = ["ruby-enum"];
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1pmjm87p0hxnknp33cxyvkgbr1swfp9gcznssmalm9z8kwyancb9";
@@ -629,6 +737,8 @@
};
concord = {
dependencies = ["adamantium" "equalizer"];
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1b6cdn0fg4n9gzbdr7zyf4jq40y6h0c0g9cra7wk9hhmsylk91bg";
@@ -637,7 +747,7 @@
version = "0.1.5";
};
concurrent-ruby = {
- groups = ["default" "development" "mysql" "postgres" "test"];
+ groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
@@ -646,18 +756,9 @@
};
version = "1.1.5";
};
- concurrent-ruby-ext = {
- dependencies = ["concurrent-ruby"];
- groups = ["default" "mysql" "postgres"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "03ypsv2k581yv0b3f0hzvb3mq6mqj8jlbi32jmkj3k175vbc8hvz";
- type = "gem";
- };
- version = "1.1.5";
- };
connection_pool = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0lflx29mlznf1hn0nihkgllzbj8xp5qasn8j7h838465pi399k68";
@@ -675,8 +776,32 @@
};
version = "0.11.0";
};
+ cork = {
+ dependencies = ["colored2"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1g6l780z1nj4s3jr11ipwcj8pjbibvli82my396m3y32w98ar850";
+ type = "gem";
+ };
+ version = "0.3.0";
+ };
+ countries = {
+ dependencies = ["i18n_data" "sixarm_ruby_unaccent" "unicode_utils"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0w278pjhwkbin7jpr7m47wac7gj5n4l2him9k2q4ngzq6rs2id7c";
+ type = "gem";
+ };
+ version = "3.0.0";
+ };
crack = {
dependencies = ["safe_yaml"];
+ groups = ["default" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0abb0fvgw00akyik1zxnq7yv391va148151qxdghnzngv66bl62k";
@@ -685,6 +810,8 @@
version = "0.4.3";
};
crass = {
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0bpxzy6gjw9ggjynlxschbfsgmx8lv3zw1azkjvnb8b9i895dqfi";
@@ -693,6 +820,8 @@
version = "1.0.4";
};
creole = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "00rcscz16idp6dx0dk5yi5i0fz593i3r6anbn5bg2q07v3i025wm";
@@ -702,6 +831,8 @@
};
css_parser = {
dependencies = ["addressable"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0jlr17cn044yaq4l3d9p42g3bghnamwsprq9c39xn6pxjrn5k1hy";
@@ -710,6 +841,8 @@
version = "1.5.0";
};
daemons = {
+ groups = ["default" "development"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0lxqq6dgb8xhliywar2lvkwqy2ssraf9dk4b501pb4ixc2mvxbp2";
@@ -717,7 +850,20 @@
};
version = "1.2.6";
};
+ danger = {
+ dependencies = ["claide" "claide-plugins" "colored2" "cork" "faraday" "faraday-http-cache" "git" "kramdown" "kramdown-parser-gfm" "no_proxy_fix" "octokit" "terminal-table"];
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0gyxfs7pkcg90llhpl2nwfqqcqi0qngqhk8gpyrffj6m0lm1m6wl";
+ type = "gem";
+ };
+ version = "6.0.9";
+ };
database_cleaner = {
+ groups = ["development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "05i0nf2aj70m61y3fspypdkc6d1qgibf5kav05a71b5gjz0k7y5x";
@@ -726,6 +872,8 @@
version = "1.7.0";
};
debug_inspector = {
+ groups = ["default" "development"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0vxr0xa1mfbkfcrn71n7c4f2dj7la5hvphn904vh20j3x4j5lrx0";
@@ -734,6 +882,12 @@
version = "0.0.3";
};
debugger-ruby_core_source = {
+ groups = ["default" "development"];
+ platforms = [{
+ engine = "maglev";
+ } {
+ engine = "ruby";
+ }];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1lp5dmm8a8dpwymv6r1y6yr24wxsj0gvgb2b8i7qq9rcv414snwd";
@@ -743,6 +897,8 @@
};
deckar01-task_list = {
dependencies = ["html-pipeline"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0s637v5pi5ipmv0gn9g2wwjpxdm27dvppfjd8ml0dc1m0jsm7964";
@@ -751,6 +907,8 @@
version = "2.2.0";
};
declarative = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0642xvwzzbgi3kp1bg467wma4g3xqrrn0sk369hjam7w579gnv5j";
@@ -759,6 +917,8 @@
version = "0.0.10";
};
declarative-option = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1g4ibxq566f1frnhdymzi9hxxcm4g2gw4n21mpjk2mhwym4q6l0p";
@@ -779,7 +939,7 @@
};
derailed_benchmarks = {
dependencies = ["benchmark-ips" "get_process_mem" "heapy" "memory_profiler" "rack" "rake" "thor"];
- groups = ["development" "test"];
+ groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
@@ -790,6 +950,8 @@
};
descendants_tracker = {
dependencies = ["thread_safe"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "15q8g3fcqyb41qixn6cky0k3p86291y7xsh1jfd851dvrza1vi79";
@@ -798,6 +960,8 @@
version = "0.0.4";
};
device_detector = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0zbsjj1bgwmsiqiw6x5fzbzp25xc10c02s37ggl2635ha0qzn05q";
@@ -811,13 +975,15 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "04b2p61mqfb6ln8s2lhmvnkd45wjjinykbn9svmhs54kacrrjkcf";
+ sha256 = "0a64xq0dj6p0firpg4mrrfmlakpv17hky5yfrjhchs2sybmymr9i";
type = "gem";
};
- version = "4.6.2";
+ version = "4.7.1";
};
devise-two-factor = {
dependencies = ["activesupport" "attr_encrypted" "devise" "railties" "rotp"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1pkldws5lga4mlv4xmcrfb0yivl6qad0l8qyb2hdb50adv6ny4gs";
@@ -826,6 +992,8 @@
version = "3.0.0";
};
diff-lcs = {
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza";
@@ -834,6 +1002,8 @@
version = "1.3";
};
diffy = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1azibizfv91sjbzhjqj1pg2xcv8z9b8a7z6kb3wpl4hpj5hil5kj";
@@ -843,6 +1013,8 @@
};
discordrb-webhooks-blackst0ne = {
dependencies = ["rest-client"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1f0dw6ci5cbrxrvvqw2kqabpzyjisd4hflbi370rpb4cakkzgw39";
@@ -862,6 +1034,8 @@
};
domain_name = {
dependencies = ["unf"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0abdlwb64ns7ssmiqhdwgl27ly40x2l27l8hs8hn0z4kb3zd2x3v";
@@ -871,6 +1045,8 @@
};
doorkeeper = {
dependencies = ["railties"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "022r03i830b2lvmr0xzlj6ivlvc1zr64hy4a4bsy3flv94da77rz";
@@ -880,6 +1056,8 @@
};
doorkeeper-openid_connect = {
dependencies = ["doorkeeper" "json-jwt"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1wgrz0xcply5vl6d1m62blqwcbn4v0b27bswyws2y9wbyglz6f95";
@@ -888,6 +1066,8 @@
version = "1.5.0";
};
ed25519 = {
+ groups = ["ed25519"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1f5kr8za7hvla38fc0n9jiv55iq62k5bzclsa5kdb14l3r4w6qnw";
@@ -897,6 +1077,8 @@
};
elasticsearch = {
dependencies = ["elasticsearch-api" "elasticsearch-transport"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0fik4nrxyi28zy1xwi4rygn0pf1sm1gskcrvbsnmqfrsdd6l4ga4";
@@ -906,6 +1088,8 @@
};
elasticsearch-api = {
dependencies = ["multi_json"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0aal128hq59l5kscl2ag2cv24g1sp5ysdb4jxkqmj0b1l9rv16mw";
@@ -915,6 +1099,8 @@
};
elasticsearch-model = {
dependencies = ["activesupport" "elasticsearch" "hashie"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "10kbsdxd192g8x60fhaxs4gqpgwag68d53flcw8rwvdm0i8smyzf";
@@ -923,6 +1109,8 @@
version = "0.1.9";
};
elasticsearch-rails = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "081hm2dc3l6kky027wm3s8k6lmiygg0hnrggnidchbl94nlalw2z";
@@ -932,6 +1120,8 @@
};
elasticsearch-transport = {
dependencies = ["faraday" "multi_json"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1a7fak70ajdqw1ahd2gmgijka52pjjfr3chaakkxa5fk3rwwna26";
@@ -940,6 +1130,8 @@
version = "5.0.3";
};
email_reply_trimmer = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0vijywhy1acsq4187ss6w8a7ksswaf1d5np3wbj962b6rqif5vcz";
@@ -949,6 +1141,8 @@
};
email_spec = {
dependencies = ["htmlentities" "launchy" "mail"];
+ groups = ["test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0yadaif80cf2ry0nvhir1s70xmm22xzncq6vfvvffdd8h02ridv0";
@@ -957,6 +1151,8 @@
version = "2.2.0";
};
encryptor = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0s8rvfl0vn8w7k1sgkc234060jh468s3zd45xa64p1jdmfa3zwmb";
@@ -965,6 +1161,8 @@
version = "3.0.0";
};
equalizer = {
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1kjmx3fygx8njxfrwcmn7clfhjhb6bvv3scy2lyyi0wqyi3brra4";
@@ -973,16 +1171,18 @@
version = "0.0.11";
};
erubi = {
- groups = ["default" "development" "mysql" "postgres" "test"];
+ groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1kagnf6ziahj0d781s6ryy6fwqwa3ad4xbzzj84p9m4nv4c2jir1";
+ sha256 = "1nwzxnqhr31fn7nbqmffcysvxjdfl3bhxi0bld5qqhcnfc1xd13x";
type = "gem";
};
- version = "1.8.0";
+ version = "1.9.0";
};
escape_utils = {
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0qminivnyzwmqjhrh3b92halwbk0zcl9xn828p5rnap1szl2yag5";
@@ -1002,6 +1202,8 @@
version = "1.2.1";
};
eventmachine = {
+ groups = ["default" "development"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r";
@@ -1010,6 +1212,8 @@
version = "1.2.7";
};
excon = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "15l9w0938c19nxmrp09n75qpmm64k12xj69h47yvxzcxcpbgnkb2";
@@ -1018,6 +1222,8 @@
version = "0.62.0";
};
execjs = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0grlxwiccbnflxs30r3h7g23xnps5knav1jyqkk3anvm8363ifjw";
@@ -1026,6 +1232,8 @@
version = "2.6.0";
};
expression_parser = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1938z3wmmdabqxlh5d5c56xfg1jc6z15p7zjyhvk7364zwydnmib";
@@ -1046,24 +1254,30 @@
};
factory_bot = {
dependencies = ["activesupport"];
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0r975ba6y0mcy3aya099gpnjn5gf1h6fbw8f3smmjay5zvin3nwx";
+ sha256 = "04mvwcdh1056r79vq969vlncrcy53fkhw0iixpqvp8gnx5ajbsv6";
type = "gem";
};
- version = "4.8.2";
+ version = "5.1.0";
};
factory_bot_rails = {
dependencies = ["factory_bot" "railties"];
+ groups = ["development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0cdbp12ih2w77l331frv8gv6bv9dinn1663dy1jn0gb9ss1hwvs2";
+ sha256 = "02q7lwfdilwahza2jz0p0kc2rragv617q9r2yy72syv6lfy923sx";
type = "gem";
};
- version = "4.8.2";
+ version = "5.1.0";
};
faraday = {
dependencies = ["multipart-post"];
+ groups = ["default" "development"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "157c4cmb5g1b3ny6k9qf9z57rfijl54fcq3hnqqf6g31g1m096b2";
@@ -1071,8 +1285,21 @@
};
version = "0.12.2";
};
+ faraday-http-cache = {
+ dependencies = ["faraday"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08j86fgcwl7z792qyijdsq680arzpfiydqd24ja405z2rbm7r2i0";
+ type = "gem";
+ };
+ version = "2.0.0";
+ };
faraday_middleware = {
dependencies = ["faraday"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1p7icfl28nvl8qqdsngryz1snqic9l8x6bk0dxd7ygn230y0k41d";
@@ -1082,6 +1309,8 @@
};
faraday_middleware-aws-signers-v4 = {
dependencies = ["aws-sdk-resources" "faraday"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0y88xcbq8k2ijhsqdava5493p26k49agvnzca6vkl3qwfv3ambhp";
@@ -1091,6 +1320,8 @@
};
faraday_middleware-multi_json = {
dependencies = ["faraday_middleware" "multi_json"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0651sxhzbq9xfq3hbpmrp0nbybxnm9ja3m97k386m4bqgamlvz1q";
@@ -1099,6 +1330,8 @@
version = "0.0.6";
};
fast_blank = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "16s1ilyvwzmkcgmklbrn0c2pch5n02vf921njx0bld4crgdr6z56";
@@ -1107,6 +1340,8 @@
version = "1.0.0";
};
fast_gettext = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1s42dsy3rh9h37d16pwhswf2q9cx25v5fn3q881b5iz6fvdjixv3";
@@ -1115,6 +1350,8 @@
version = "1.6.0";
};
ffaker = {
+ groups = ["development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "01z5lpssjc0n8lm4xrlja0hh8lv4ngzbybjvd4rdkc5x9ddvh8s3";
@@ -1123,14 +1360,18 @@
version = "2.10.0";
};
ffi = {
+ groups = ["default" "development" "kerberos" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0j8pzj8raxbir5w5k6s7a042sb5k02pg0f8s4na1r5lan901j00p";
+ sha256 = "06mvxpjply8qh4j3fj9wh08kdzwkbnvsiysh0vrhlk5cwxzjmblh";
type = "gem";
};
- version = "1.10.0";
+ version = "1.11.1";
};
flipper = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1pdj9y3k6padiicfraxw9ibx9fm8yi2ihh608736lq5nnbf3k6gw";
@@ -1140,6 +1381,8 @@
};
flipper-active_record = {
dependencies = ["activerecord" "flipper"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0rgm4h5h6xcbf17z47sw8ancaxva8x4hwlxmyqpm0vzj1pnc47c1";
@@ -1149,6 +1392,8 @@
};
flipper-active_support_cache_store = {
dependencies = ["activesupport" "flipper"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0zpikmfhadb7l1ny6xbhk5d4840im6yq0wvfsnlw718spxi4ccgk";
@@ -1158,6 +1403,8 @@
};
flowdock = {
dependencies = ["httparty" "multi_json"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "04nrvg4gzgabf5mnnhccl8bwrkvn3y4pm7a1dqzqhpvfr4m5pafg";
@@ -1167,6 +1414,8 @@
};
fog-aliyun = {
dependencies = ["fog-core" "fog-json" "ipaddress" "xml-simple"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1vl5zf9wr6qwm1awxscyifvrrfqnyacidxgzhkba2wqlgizk3anh";
@@ -1187,6 +1436,8 @@
};
fog-core = {
dependencies = ["builder" "excon" "formatador" "mime-types"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1agd6xgzk0rxrsjdpn94v4hy89s0nm2cs4zg2p880w2dan9xgrak";
@@ -1196,15 +1447,19 @@
};
fog-google = {
dependencies = ["fog-core" "fog-json" "fog-xml" "google-api-client"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0rxhcf2rhs8ml9j9xppz1yxgig3s1l5hm6yz582lqrs8bdmq028m";
+ sha256 = "1784xynmgvj1x9phy42nbd3fcgj040zps6wn7msi6vnj1sg4wpfy";
type = "gem";
};
- version = "1.8.2";
+ version = "1.9.1";
};
fog-json = {
dependencies = ["fog-core" "multi_json"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1zj8llzc119zafbmfa4ai3z5s7c4vp9akfs0f9l2piyvcarmlkyx";
@@ -1214,6 +1469,8 @@
};
fog-local = {
dependencies = ["fog-core"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0ba4lln35nryi6dcbz68vxg9ml6v8cc8s8c82f7syfd84bz76x21";
@@ -1223,6 +1480,8 @@
};
fog-openstack = {
dependencies = ["fog-core" "fog-json" "ipaddress"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "171xnsl6w0j7yi6sp26dcqahx4r4gb2cf359gmy11g5iwnsll5wg";
@@ -1232,6 +1491,8 @@
};
fog-rackspace = {
dependencies = ["fog-core" "fog-json" "fog-xml" "ipaddress"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0y2bli061g37l9p4w0ljqbmg830rp2qz6sf8b0ck4cnx68j7m32a";
@@ -1241,6 +1502,8 @@
};
fog-xml = {
dependencies = ["fog-core" "nokogiri"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "043lwdw2wsi6d55ifk0w3izi5l1d1h0alwyr3fixic7b94kc812n";
@@ -1261,6 +1524,8 @@
};
foreman = {
dependencies = ["thor"];
+ groups = ["development"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "06mq39lpmc17bxzlwhad9d8i0lcnbb08xr18smh2x79mm631wsw0";
@@ -1269,6 +1534,8 @@
version = "0.84.0";
};
formatador = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1gc26phrwlmlqrmz4bagq1wd5b7g64avpx0ghxr9xdxcvmlii0l0";
@@ -1289,6 +1556,8 @@
};
fuubar = {
dependencies = ["rspec-core" "ruby-progressbar"];
+ groups = ["development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0jlv2wisgnim29h47shvqhipbz1wgndfdr7i6y5wcfag0z2660lv";
@@ -1308,6 +1577,8 @@
};
gemojione = {
dependencies = ["json"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0ayk8r147k1s38nj18pwk76npx1p7jhi86silk800nj913pjvrhj";
@@ -1316,7 +1587,7 @@
version = "3.3.0";
};
get_process_mem = {
- groups = ["default" "development" "puma" "test" "unicorn"];
+ groups = ["default" "puma" "unicorn"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
@@ -1327,6 +1598,8 @@
};
gettext = {
dependencies = ["locale" "text"];
+ groups = ["development"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0764vj7gacn0aypm2bf6m46dzjzwzrjlmbyx6qwwwzbmi94r40wr";
@@ -1336,6 +1609,8 @@
};
gettext_i18n_rails = {
dependencies = ["fast_gettext"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0vs918a03mqvx9aczaqdg9d2q9s3c6swqavzn82qgq5i822czrcm";
@@ -1345,6 +1620,8 @@
};
gettext_i18n_rails_js = {
dependencies = ["gettext" "gettext_i18n_rails" "po_to_json" "rails"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "11yn5cf92wsmlj5c1065mg6swf8gq9l6g9ahikvvyf9npvjay42x";
@@ -1352,18 +1629,30 @@
};
version = "1.3.0";
};
- gitaly-proto = {
+ git = {
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bf83icwypi3p3pd97vlqbnp3hvf31ncd440m9kh9y7x6yk74wyh";
+ type = "gem";
+ };
+ version = "1.5.0";
+ };
+ gitaly = {
dependencies = ["grpc"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1lx2cids0r175agdz3wa25ivi17vxx2kryb2v29gdsrpg3pyyq7j";
+ sha256 = "0h8jzwifqgkrgh9d05g0vsdkyrnk75i53lmm3pfp9rj47gvn1z1j";
type = "gem";
};
- version = "1.37.0";
+ version = "1.65.0";
};
github-markup = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "17g6g18gdjg63k75sfwiskjzl9i0hfcnrkcpb4fwrnb20v3jgswp";
@@ -1372,17 +1661,19 @@
version = "1.7.0";
};
gitlab-labkit = {
- dependencies = ["actionpack" "activesupport" "grpc" "jaeger-client" "opentracing"];
+ dependencies = ["actionpack" "activesupport" "grpc" "jaeger-client" "opentracing" "redis"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0dvapmdc9axm9dq2gg89qrqb318rkrsabpyybrqvcx1ipbi5k3a1";
+ sha256 = "1j06gl4ksd83rycg3fb46bb77iw74i1ivs5li6pyf5klrxjq8k3h";
type = "gem";
};
- version = "0.3.0";
+ version = "0.5.2";
};
gitlab-license = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1q26cgp3ln3b36n3sc69r6hxafkxjwdr3m0d7jlch5j7vyib9bih";
@@ -1400,16 +1691,37 @@
};
version = "1.7.0";
};
+ gitlab-net-dns = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1jylfc47477imjmzc4jq7zsxklhrws6q4bb0zzl33drirf6s1ldw";
+ type = "gem";
+ };
+ version = "0.9.1";
+ };
+ gitlab-peek = {
+ dependencies = ["railties"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0r5a1cjhw8dyz1az9rhqh252rvsjhvbs28wnmk0lnqkvyydip4ql";
+ type = "gem";
+ };
+ version = "0.0.1";
+ };
gitlab-sidekiq-fetcher = {
dependencies = ["sidekiq"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1xaag97iclmiay8fx7dkiws8dsws2gi6l0axq4yljq5g7xm78qjr";
+ sha256 = "0dvx2klf1a1xyf15q34fn59291v6jwx3z315rxb2dmkvcr9873m1";
type = "gem";
};
- version = "0.4.0";
+ version = "0.5.2";
};
gitlab-styles = {
dependencies = ["rubocop" "rubocop-gitlab-security" "rubocop-performance" "rubocop-rspec"];
@@ -1417,13 +1729,26 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1vxlvbq4jpq0cfjqippz9d3j73sq9qg3pna5pb0l8jr0rc0xs89y";
+ sha256 = "0kxn5j4gk2bidxfi3lnx8sl58kwh0fp89p75pbwwz3cd88d4vgsq";
type = "gem";
};
- version = "2.7.0";
+ version = "2.8.0";
+ };
+ gitlab_chronic_duration = {
+ dependencies = ["numerizer"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rajna3aijqj8ap55xggawyh2xzh1vkrmzkjh3ja5x05qsf9csgs";
+ type = "gem";
+ };
+ version = "0.10.6.1";
};
gitlab_omniauth-ldap = {
dependencies = ["net-ldap" "omniauth" "pyu-ruby-sasl" "rubyntlm"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1f8cjbzlhckarmm59l380jjy33a3hlljg69b3zkh8rhy1xd3xr90";
@@ -1444,6 +1769,8 @@
};
gon = {
dependencies = ["actionpack" "multi_json" "request_store"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0q9nvnw98mbb40h7mlzn1zk40r2l29yybhinmiqhrq8a6adsv806";
@@ -1453,6 +1780,8 @@
};
google-api-client = {
dependencies = ["addressable" "googleauth" "httpclient" "mime-types" "representable" "retriable"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "05h2lca9b334ayabgs3h0mzc2wg3csvkqv1lv3iirpgf90ypbk1k";
@@ -1483,6 +1812,8 @@
};
googleauth = {
dependencies = ["faraday" "jwt" "memoist" "multi_json" "os" "signet"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1747p1dhpvz76i98xnjrvaj785y1232svm0nc8g9by6pz835gp2l";
@@ -1492,6 +1823,8 @@
};
gpgme = {
dependencies = ["mini_portile2"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "12fqirxr964mc8jwsfl5nif6q4wcckrmj7w4c9ci4xg9xy2b9v6m";
@@ -1501,6 +1834,8 @@
};
grape = {
dependencies = ["activesupport" "builder" "mustermann-grape" "rack" "rack-accept" "virtus"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "04bam0iq9sad1df361317zz4knwci905yig502khl8gm1lp1168c";
@@ -1510,6 +1845,8 @@
};
grape-entity = {
dependencies = ["activesupport" "multi_json"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1w78wylkhdkc0s6n6d20hggbb3pl3ladzzd5lx6ack2iswybx7b9";
@@ -1530,6 +1867,8 @@
};
grape_logging = {
dependencies = ["grape"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0lg2vhk0dlnyqs2rz8wilfm039q5mbsp5nvf51asir48a1rf9yza";
@@ -1539,6 +1878,8 @@
};
graphiql-rails = {
dependencies = ["railties" "sprockets-rails"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "10q5zipwgjgaan9lfqakdkm5ry8afgkq79bkimgksn6jyyvpz6w8";
@@ -1547,12 +1888,14 @@
version = "1.4.10";
};
graphql = {
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "10bnl8yjyg5x6h787cfkpd5gphl5z5jblj8fc9lbmgk27n2knssl";
+ sha256 = "17gpvpv3zpmcbzgdx9skaaj5frxw12ja5hssk7xwzckna0v782vh";
type = "gem";
};
- version = "1.8.1";
+ version = "1.9.11";
};
graphql-docs = {
dependencies = ["commonmarker" "escape_utils" "extended-markdown-filter" "gemoji" "graphql" "html-pipeline" "sass"];
@@ -1578,6 +1921,8 @@
};
gssapi = {
dependencies = ["ffi"];
+ groups = ["kerberos"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0j93nsf9j57p7x4aafalvjg8hia2mmqv3aky7fmw2ck5yci343ix";
@@ -1587,6 +1932,8 @@
};
haml = {
dependencies = ["temple" "tilt"];
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1q0a9fvqh8kn6wm97fcks6qzbjd400bv8bx748w8v87m7p4klhac";
@@ -1607,6 +1954,8 @@
};
hamlit = {
dependencies = ["temple" "thor" "tilt"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0hk338vkzmwszxdh0q02iw88rbr3bj3fd7fzn4psm8wy80zcgl9i";
@@ -1615,6 +1964,8 @@
version = "2.8.8";
};
hangouts-chat = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1dmnv3723c22683bzys8walkl6wi74xzawxjbhwqzjdbwk3bdgmx";
@@ -1623,6 +1974,8 @@
version = "0.0.5";
};
hashdiff = {
+ groups = ["default" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "19ykg5pax8798nh1yv71adkx0zzs7gn2rxjj86v7nsw0jba5lask";
@@ -1631,6 +1984,8 @@
version = "0.3.8";
};
hashie = {
+ groups = ["default" "kerberos"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1hh5lybf8hm7d7xs4xm8hxvm8xqrs2flc8fnwkrclaj746izw6xb";
@@ -1640,6 +1995,8 @@
};
hashie-forbidden_attributes = {
dependencies = ["hashie"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1chgg5d2iddja6ww02x34g8avg11fzmzcb8yvnqlykii79zx6vis";
@@ -1649,6 +2006,8 @@
};
health_check = {
dependencies = ["rails"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1mfa180nyzz1j0abfihm5nm3lmzq99362ibcphky6rh5vwhckvm8";
@@ -1657,7 +2016,7 @@
version = "2.6.0";
};
heapy = {
- groups = ["default" "development" "test"];
+ groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
@@ -1679,6 +2038,8 @@
};
html-pipeline = {
dependencies = ["activesupport" "nokogiri"];
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1mpj5y13jk1arqkhdk66n49kyglmci980c1l6np7pqgyjllb68ad";
@@ -1688,6 +2049,8 @@
};
html2text = {
dependencies = ["nokogiri"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0kxdj8pf9pss9xgs8aac0alj5g1fi225yzdhh33lzampkazg1hii";
@@ -1696,6 +2059,8 @@
version = "0.2.0";
};
htmlentities = {
+ groups = ["default" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj";
@@ -1705,6 +2070,8 @@
};
http = {
dependencies = ["addressable" "http-cookie" "http-form_data" "http_parser.rb"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1jlm5prw437wqpfxcigh88lfap3m7g8mnmj5as7qw6dzqnvrxwmc";
@@ -1714,6 +2081,8 @@
};
http-cookie = {
dependencies = ["domain_name"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "004cgs4xg5n6byjs7qld0xhsjq3n6ydfh897myr2mibvh6fjc49g";
@@ -1722,6 +2091,8 @@
version = "1.0.3";
};
http-form_data = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "15lpn604byf7cyxnw949xz4rvpcknqp7a48q73nm630gqxsa76f3";
@@ -1730,6 +2101,8 @@
version = "2.1.1";
};
"http_parser.rb" = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi";
@@ -1749,6 +2122,8 @@
version = "0.16.4";
};
httpclient = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99";
@@ -1758,16 +2133,28 @@
};
i18n = {
dependencies = ["concurrent-ruby"];
- groups = ["default" "development" "mysql" "postgres" "test"];
+ groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1hfxnlyr618s25xpafw9mypa82qppjccbh292c4l3bj36az7f6wl";
+ sha256 = "0hmypvx9iyc0b4hski7aic2xzm09cg1c7q1qlpnk3k8s5acxzyhl";
type = "gem";
};
- version = "1.6.0";
+ version = "1.7.0";
+ };
+ i18n_data = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0v0cdwxiaqdwhaljd7z0fbx29q3r5kjl93xnjm5abi1x37645ncj";
+ type = "gem";
+ };
+ version = "0.8.0";
};
icalendar = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1xsydpp2xph00awi25axv2mwjd5p2rlgd4qb3kh05lvq795kirxd";
@@ -1776,6 +2163,8 @@
version = "2.4.1";
};
ice_nine = {
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1nv35qg1rps9fsis28hz2cq2fx1i96795f91q4nmkm934xynll2x";
@@ -1785,6 +2174,8 @@
};
influxdb = {
dependencies = ["cause" "json"];
+ groups = ["metrics"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1vhg5nd88nwvfa76lqcczld916nljswwq6clsixrzi3js8ym9y1w";
@@ -1792,7 +2183,20 @@
};
version = "0.2.3";
};
+ invisible_captcha = {
+ dependencies = ["rails"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15510dh1vh7l2xs2a4956nhxpnf10168r62i497nmcbyqpp1df88";
+ type = "gem";
+ };
+ version = "0.12.1";
+ };
ipaddress = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1x86s0s11w202j6ka40jbmywkrx8fhq8xiy8mwvnkhllj57hqr45";
@@ -1802,6 +2206,8 @@
};
jaeger-client = {
dependencies = ["opentracing" "thrift"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "198m72c9w3wfwr1mq22dcjjm7d4jd0bci4lrq6zq2zvlzhi04n8l";
@@ -1814,21 +2220,25 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1zz27z88qznix4r65gd9h56gl177snlfpgv10b0s69vi8qpl909l";
+ sha256 = "1930v0chc1q4fr7hn0y1j34mw0v032a8kh0by4d4sbz8ksy056kf";
type = "gem";
};
- version = "1.5.2";
+ version = "1.5.3";
};
jira-ruby = {
- dependencies = ["activesupport" "multipart-post" "oauth"];
+ dependencies = ["activesupport" "atlassian-jwt" "multipart-post" "oauth"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "14019mliqwcppj6qp2wdhh5gbvs2yh2idibag13m9a18ag965bhw";
+ sha256 = "0hb3645x0p3bkmqcgc9b2q4b5kn02wgmb03brx7ag1h5y79an4q5";
type = "gem";
};
- version = "1.4.1";
+ version = "1.7.1";
};
jmespath = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "07w8ipjg59qavijq59hl82zs74jf3jsp7vxl9q3a2d0wpv5akz3y";
@@ -1838,6 +2248,8 @@
};
js_regex = {
dependencies = ["character_set" "regexp_parser" "regexp_property_values"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0wi4h4f3knb0yp4zq2spks3dpmdzz9wa54d6xk88md0h4v2x33cq";
@@ -1846,6 +2258,8 @@
version = "3.1.1";
};
json = {
+ groups = ["default" "development" "metrics" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0qmj7fypgb9vag723w1a49qihxrcf5shzars106ynw2zk352gbv5";
@@ -1855,6 +2269,8 @@
};
json-jwt = {
dependencies = ["activesupport" "aes_key_wrap" "bindata"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "065k7vffdki73f4nz89lxi6wxmcw5dlf593831pgvlbralll6x3r";
@@ -1864,6 +2280,8 @@
};
json-schema = {
dependencies = ["addressable"];
+ groups = ["test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "11di8qyam6bmqn0fvvvf3crgaqy4sil0d406ymx0jacn3ff98ymz";
@@ -1872,6 +2290,8 @@
version = "2.8.0";
};
jwt = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1w0kaqrbl71cq9sbnixc20x5lqah3hs2i93xmhlfdg2y3by7yzky";
@@ -1881,6 +2301,8 @@
};
kaminari = {
dependencies = ["activesupport" "kaminari-actionview" "kaminari-activerecord" "kaminari-core"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0invfvfb252ihsdr65rylkvd1x2wy004jval52v3i8ybb0jhc5hi";
@@ -1890,6 +2312,8 @@
};
kaminari-actionview = {
dependencies = ["actionview" "kaminari-core"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0mhhsm6xhmwqc7hfw7xnk1kdbfg468bqs5awcqm5j6j8b9zyjvdi";
@@ -1899,6 +2323,8 @@
};
kaminari-activerecord = {
dependencies = ["activerecord" "kaminari-core"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1kb5aj6iy1cwcq5548jd3w1ipxicnzmnx2ay1s4hvad2gvrd4g93";
@@ -1907,6 +2333,8 @@
version = "1.0.1";
};
kaminari-core = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0r2n293ad1xr9wgn8cr53nfzwls4w3p1xi4kjfjgl1z0yf05mpwr";
@@ -1915,6 +2343,8 @@
version = "1.0.1";
};
kgio = {
+ groups = ["default" "unicorn"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1528pyj1szzzp3pgj05fzjd36qjrxm9yj2x5radc9p1z7vl67y50";
@@ -1924,6 +2354,8 @@
};
knapsack = {
dependencies = ["rake"];
+ groups = ["development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1c69rcwfrdrnx8ddl6k1qxhw9f2dj5x5bbddz435isl2hfr5zh92";
@@ -1932,26 +2364,41 @@
version = "1.17.0";
};
kramdown = {
- groups = ["default" "development" "test"];
+ groups = ["default" "development"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1n1c4jmrh5ig8iv1rw81s4mw4xsp4v97hvf8zkigv4hn5h542qjq";
+ sha256 = "1dl840bvx8d9nq6lg3mxqyvbiqnr6lk3jfsm6r8zhz7p5srmd688";
type = "gem";
};
- version = "1.17.0";
+ version = "2.1.0";
+ };
+ kramdown-parser-gfm = {
+ dependencies = ["kramdown"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0a8pb3v951f4x7h968rqfsa19c8arz21zw1vaj42jza22rap8fgv";
+ type = "gem";
+ };
+ version = "1.1.0";
};
kubeclient = {
dependencies = ["http" "recursive-open-struct" "rest-client"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "10761kwhgclnf2lrdjspmxnw90z7i0l85inranfxc688ing0d5xn";
+ sha256 = "0gj6z90p3nm43bafbp97b78zi764gy88590g2y4lm8zcgk8k586r";
type = "gem";
};
- version = "4.2.2";
+ version = "4.4.0";
};
launchy = {
dependencies = ["addressable"];
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "190lfbiy1vwxhbgn4nl4dcbzxvm049jwc158r2x7kq3g5khjrxa2";
@@ -1983,6 +2430,8 @@
};
license_finder = {
dependencies = ["rubyzip" "thor" "toml" "with_env" "xml-simple"];
+ groups = ["development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "01rhqm5m3m22gq6q9f1x9fh3x3wrf9khnnsycblj0xg5frdjv77v";
@@ -1992,6 +2441,8 @@
};
licensee = {
dependencies = ["rugged"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0w6d2smhg3kzcx4m2ii06akakypwhiglansk51bpx290hhc8h3pc";
@@ -2000,6 +2451,8 @@
version = "8.9.2";
};
locale = {
+ groups = ["default" "development"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1sls9bq4krx0fmnzmlbn64dw23c4d6pz46ynjzrn9k8zyassdd0x";
@@ -2009,6 +2462,8 @@
};
lograge = {
dependencies = ["actionpack" "activesupport" "railties" "request_store"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "00lcn7s3slfn32di4qwlx2yj5f9r2pcnd0naxrvqqwypcg1z2sdd";
@@ -2018,15 +2473,19 @@
};
loofah = {
dependencies = ["crass" "nokogiri"];
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1ccsid33xjajd0im2xv941aywi58z7ihwkvaf1w2bv89vn5bhsjg";
+ sha256 = "06kfq90vi38gv6i128f4zg462kj32szs5vsgm25hxgw9zd12pj9x";
type = "gem";
};
- version = "2.2.3";
+ version = "2.3.0";
};
mail = {
dependencies = ["mini_mime"];
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "00wwz6ys0502dpk8xprwcqfwyf3hmnx6lgxaiq6vj43mkx43sapc";
@@ -2035,6 +2494,8 @@
version = "2.7.1";
};
mail_room = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "16b8yjd1if665mwaindwys06nkkcs0jw3dcsqvn6qbp6alfigqaa";
@@ -2053,18 +2514,9 @@
};
version = "0.3.3";
};
- mdl = {
- dependencies = ["kramdown" "mixlib-cli" "mixlib-config"];
- groups = ["development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "047hp8z1ma630wp38bm1giklkf385rp6wly8aidn825q831w2g4i";
- type = "gem";
- };
- version = "0.5.0";
- };
memoist = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0pq8fhqh8w25qcw9v3vzfb0i6jp0k3949ahxc3wrwz2791dpbgbh";
@@ -2074,6 +2526,8 @@
};
memoizable = {
dependencies = ["thread_safe"];
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0v42bvghsvfpzybfazl14qhkrjvx0xlmxz0wwqc960ga1wld5x5c";
@@ -2082,7 +2536,7 @@
version = "0.4.2";
};
memory_profiler = {
- groups = ["default" "development" "test"];
+ groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
@@ -2092,6 +2546,12 @@
version = "0.9.13";
};
method_source = {
+ groups = ["default" "development" "metrics" "test"];
+ platforms = [{
+ engine = "maglev";
+ } {
+ engine = "ruby";
+ }];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1pviwzvdqd90gn6y7illcdd9adapw8fczml933p5vl739dkvl3lq";
@@ -2101,6 +2561,8 @@
};
mime-types = {
dependencies = ["mime-types-data"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0fjxy1jm52ixpnv3vg9ld9pr9f35gy0jp66i1njhqjvmnvq0iwwk";
@@ -2119,6 +2581,8 @@
version = "3.2019.0331";
};
mimemagic = {
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "00ibc1mhvdfyfyl103xwb45621nwyqxf124cni5hyfhag0fn1c3q";
@@ -2127,14 +2591,18 @@
version = "0.3.2";
};
mini_magick = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1djxfs9rxw6q6vr6wb4ndxhp1vj1zbwb55s1kf6mz9bzgmswqg0n";
+ sha256 = "0qy09qrd5bwh8mkbj514n5vcw9ni73218h9s3zmvbpmdwrnzi8j4";
type = "gem";
};
- version = "4.8.0";
+ version = "4.9.5";
};
mini_mime = {
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1q4pshq387lzv9m39jv32vwb8wrq3wc4jwgl4jk209r4l33v09d3";
@@ -2143,6 +2611,8 @@
version = "1.0.1";
};
mini_portile2 = {
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
@@ -2151,6 +2621,8 @@
version = "2.4.0";
};
minitest = {
+ groups = ["development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq";
@@ -2158,38 +2630,19 @@
};
version = "5.11.3";
};
- mixlib-cli = {
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0647msh7kp7lzyf6m72g6snpirvhimjm22qb8xgv9pdhbcrmcccp";
- type = "gem";
- };
- version = "1.7.0";
- };
- mixlib-config = {
- dependencies = ["tomlrb"];
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1gm6yj9cbbgsl9x4xqxga0vz5w0ksq2jnq1wj8hvgm5c4wfcrswb";
- type = "gem";
- };
- version = "2.2.18";
- };
msgpack = {
- groups = ["default" "development" "test"];
+ groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1w38hilm3dk42dwk8ygiq49bl4in7y80hfqr63hk54mj4gmzi6ch";
+ sha256 = "1qr2mkm2i3m76zarvy7qgjl9596hmvjrg7x6w42vx8cfsbf5p0y1";
type = "gem";
};
- version = "1.2.10";
+ version = "1.3.1";
};
multi_json = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
@@ -2198,6 +2651,8 @@
version = "1.13.1";
};
multi_xml = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0lmd4f401mvravi1i1yq7b2qjjli0yq7dfc4p1nj5nwajp7r6hyj";
@@ -2206,6 +2661,8 @@
version = "0.6.0";
};
multipart-post = {
+ groups = ["default" "development"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x";
@@ -2213,7 +2670,19 @@
};
version = "2.0.0";
};
+ murmurhash3 = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1szwcm44z5jg1l4dq73zyjw4rjin23ihkhrw5cpcjrb6cg8hd3y7";
+ type = "gem";
+ };
+ version = "0.1.6";
+ };
mustermann = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0lycgkmnyy0bf29nnd2zql5a6pcf8sp69g9v4xw0gcfcxgpwp7i1";
@@ -2223,6 +2692,8 @@
};
mustermann-grape = {
dependencies = ["mustermann"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "10xdggddjl8nraq7pbli31lwgrzxzz8gp558i811lsv71fqbmhzr";
@@ -2230,15 +2701,9 @@
};
version = "1.0.0";
};
- mysql2 = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0qjd97w6a0w9aldsrhb2y6jrc4wnnlbj5j8kcl7pp7vviwa0r5iq";
- type = "gem";
- };
- version = "0.4.10";
- };
nakayoshi_fork = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1mj5czi7rxxmfq4v9qjz74lcqypvnjxhxqfs71zhb2rsfa97a6jg";
@@ -2246,15 +2711,19 @@
};
version = "0.0.4";
};
- net-dns = {
+ nap = {
+ groups = ["default" "development"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "18d97xjphw21naaqfhgxp95ikr1d79rx708b2df3xm01j6isqy1d";
+ sha256 = "0xm5xssxk5s03wjarpipfm39qmgxsalb46v1prsis14x1xk935ll";
type = "gem";
};
- version = "0.9.0";
+ version = "1.1.0";
};
net-ldap = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1fh4l8zfsrvghanpnjxk944k7yl093qpw4759xs6f1v9kb73ihfq";
@@ -2263,6 +2732,8 @@
version = "0.16.0";
};
net-ntp = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0z96m7nnb9f634cz4i6p0x89z7g9i9h97cnk5f3x3q5x090kzisv";
@@ -2281,6 +2752,8 @@
version = "5.2.0";
};
netrc = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0gzfmcywp1da8nzfqsql2zqi648mfnx6qwkig3cv36n9m0yy676y";
@@ -2289,6 +2762,8 @@
version = "0.11.0";
};
nio4r = {
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1a41ca1kpdmrypjp9xbgvckpy8g26zxphkja9vk7j5wl4n8yvlyr";
@@ -2296,19 +2771,31 @@
};
version = "2.3.1";
};
- nokogiri = {
- dependencies = ["mini_portile2"];
- groups = ["default" "development" "mysql" "postgres" "test"];
+ no_proxy_fix = {
+ groups = ["default" "development"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "02bjydih0j515szfv9mls195cvpyidh6ixm7dwbl3s2sbaxxk5s4";
+ sha256 = "006dmdb640v1kq0sll3dnlwj1b0kpf3i1p27ygyffv8lpcqlr6sf";
type = "gem";
};
- version = "1.10.3";
+ version = "0.1.2";
+ };
+ nokogiri = {
+ dependencies = ["mini_portile2"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nmdrqqz1gs0fwkgzxjl4wr554gr8dc1fkrqjc2jpsvwgm41rygv";
+ type = "gem";
+ };
+ version = "1.10.4";
};
nokogumbo = {
dependencies = ["nokogiri"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "09qc1c7acv9qm48vk2kzvnrq4ij8jrql1cv33nmv2nwmlggy0jyj";
@@ -2317,6 +2804,8 @@
version = "1.5.0";
};
numerizer = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0vrk9jbv4p4dcz0wzr72wrf5kajblhc5l9qf7adbcwi4qvz9xv0h";
@@ -2325,6 +2814,8 @@
version = "0.1.1";
};
oauth = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1zszdg8q1b135z7l7crjj234k4j0m347hywp5kj6zsq7q78pw09y";
@@ -2334,6 +2825,8 @@
};
oauth2 = {
dependencies = ["faraday" "jwt" "multi_json" "multi_xml" "rack"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0av6nlb5y2sm6m8fx669ywrqa9858yqaqfqzny75nqp3anag89qh";
@@ -2343,6 +2836,8 @@
};
octokit = {
dependencies = ["sawyer"];
+ groups = ["default" "development"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1ssn5iyax07a22mvmj0y45bfy8ali129bl1qmasp6bcg03bvk298";
@@ -2352,6 +2847,8 @@
};
omniauth = {
dependencies = ["hashie" "rack"];
+ groups = ["default" "kerberos"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1p16h1rp8by05k8gfw17xjhgwp60dk8qmj1xalv1n23kmxfsxb1x";
@@ -2361,6 +2858,8 @@
};
omniauth-auth0 = {
dependencies = ["omniauth-oauth2"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0id5gn14av81kh41cq4q6c9knyvzl7vc4rs3m4pmpd43g2z6jdw2";
@@ -2370,6 +2869,8 @@
};
omniauth-authentiq = {
dependencies = ["jwt" "omniauth-oauth2"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0k7vajxwplsp188xfj4mi9iqbc7f7djqh02by4mphc51hl87kcqi";
@@ -2379,6 +2880,8 @@
};
omniauth-azure-oauth2 = {
dependencies = ["jwt" "omniauth" "omniauth-oauth2"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1a3iqy63l1jd6na4y0bj4a8mlp7gcn3a0awnz9g79fa8n4v2g8n4";
@@ -2388,6 +2891,8 @@
};
omniauth-cas3 = {
dependencies = ["addressable" "nokogiri" "omniauth"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "191b4jm4djmmy54yxfxj3c889r2wn3g6sfsdj6l1rjy0kw1m2qgx";
@@ -2397,6 +2902,8 @@
};
omniauth-facebook = {
dependencies = ["omniauth-oauth2"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "03zjla9i446fk1jkw7arh67c39jfhp5bhkmhvbw8vczxr1jkbbh5";
@@ -2406,6 +2913,8 @@
};
omniauth-github = {
dependencies = ["omniauth" "omniauth-oauth2"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0yg7k4p95ybcsii17spqarl8rpfzkq0kb19ab6wl4lc922zgfbqc";
@@ -2415,6 +2924,8 @@
};
omniauth-gitlab = {
dependencies = ["omniauth" "omniauth-oauth2"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "19ydk2zd2mz8zi80z3l03pajpm9357sg3lrankrcb3pirkkdb9fp";
@@ -2424,6 +2935,8 @@
};
omniauth-google-oauth2 = {
dependencies = ["jwt" "omniauth" "omniauth-oauth2"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "03v2gqpsbdhkqaxhvzr83za885awm6pgskv3mkyfvang7mr321df";
@@ -2433,6 +2946,8 @@
};
omniauth-kerberos = {
dependencies = ["omniauth-multipassword" "timfel-krb5-auth"];
+ groups = ["kerberos"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "05xsv76qjxcxzrvabaar2bchv7435y8l2j0wk4zgchh3yv85kiq7";
@@ -2442,6 +2957,8 @@
};
omniauth-multipassword = {
dependencies = ["omniauth"];
+ groups = ["default" "kerberos"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0qykp76hw80lkgb39hyzrv68hkbivc8cv0vbvrnycjh9fwfp1lv8";
@@ -2451,6 +2968,8 @@
};
omniauth-oauth = {
dependencies = ["oauth" "omniauth"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1n5vk4by7hkyc09d9blrw2argry5awpw4gbw1l4n2s9b3j4qz037";
@@ -2460,6 +2979,8 @@
};
omniauth-oauth2 = {
dependencies = ["oauth2" "omniauth"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "11mi36l9d97r77q99jnafdc1yaa0a9wahhpp7dj7ank8q52g7g79";
@@ -2469,6 +2990,8 @@
};
omniauth-oauth2-generic = {
dependencies = ["omniauth-oauth2"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1m6vpip3rm1spx1x9y1kjczzailsph1xqgaakqylzq3jqkv18273";
@@ -2489,6 +3012,8 @@
};
omniauth-saml = {
dependencies = ["omniauth" "ruby-saml"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "17lji8i4q9k3yi8lmjwlw8rfpp2sc74jv8d6flgq85lg5brfqq1p";
@@ -2498,6 +3023,8 @@
};
omniauth-shibboleth = {
dependencies = ["omniauth"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "04yin7j8xpr8llvank3ivzahqkc6ss5bppc7q6znzdswxmf75fxh";
@@ -2507,6 +3034,8 @@
};
omniauth-twitter = {
dependencies = ["omniauth-oauth" "rack"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0r5j65hkpgzhvvbs90id3nfsjgsad6ymzggbm7zlaxvnrmvnrk65";
@@ -2527,6 +3056,8 @@
};
omniauth_crowd = {
dependencies = ["activesupport" "nokogiri" "omniauth"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "12g5ck05h6kr9mnp870x8pkxsadg81ca70hg8n3k8xx007lfw2q7";
@@ -2545,6 +3076,16 @@
};
version = "0.3.1";
};
+ open4 = {
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1cgls3f9dlrpil846q0w7h66vsc33jqn84nql4gcqkk221rh7px1";
+ type = "gem";
+ };
+ version = "1.3.4";
+ };
openid_connect = {
dependencies = ["activemodel" "attr_required" "json-jwt" "rack-oauth2" "swd" "tzinfo" "validate_email" "validate_url" "webfinger"];
groups = ["default"];
@@ -2567,6 +3108,8 @@
version = "0.5.0";
};
optimist = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "05jxrp3nbn5iilc1k7ir90mfnwc5abc9h78s5rpm3qafwqxvcj4j";
@@ -2576,6 +3119,8 @@
};
org-ruby = {
dependencies = ["rubypants"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0x69s7aysfiwlcpd9hkvksfyld34d8kxr62adb59vjvh8hxfrjwk";
@@ -2584,6 +3129,8 @@
version = "0.9.12";
};
orm_adapter = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1fg9jpjlzf5y49qs9mlpdrgs5rpcyihq1s4k79nv9js0spjhnpda";
@@ -2592,6 +3139,8 @@
version = "0.5.0";
};
os = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1s401gvhqgs2r8hh43ia205mxsy1wc0ib4k76wzkdpspfcnfr1rk";
@@ -2621,6 +3170,8 @@
version = "2.6.3.0";
};
parslet = {
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "12nrzfwjphjlakb9pmpj70hgjwgzvnr8i1zfzddifgyd44vspl88";
@@ -2628,62 +3179,8 @@
};
version = "1.8.2";
};
- peek = {
- dependencies = ["concurrent-ruby" "concurrent-ruby-ext" "railties"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1998vcsli215d6qrn9821gr2qip60xki2p7n2dpn8i1n68hyshcn";
- type = "gem";
- };
- version = "1.0.1";
- };
- peek-gc = {
- dependencies = ["peek"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "094h3mr9q8wzbqsj0girpyjvj4bcxax8m438igp42n75xv0bhwi9";
- type = "gem";
- };
- version = "0.0.2";
- };
- peek-mysql2 = {
- dependencies = ["concurrent-ruby" "concurrent-ruby-ext" "mysql2" "peek"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0avmwm3yw0kx0z8gh4cpqj79jb5aicd0h3yzrcdfpzwks56h1k9z";
- type = "gem";
- };
- version = "1.2.0";
- };
- peek-pg = {
- dependencies = ["concurrent-ruby" "concurrent-ruby-ext" "peek" "pg"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "17yk8xrh7yh57wg6vi3s8km9qd9f910n94r511mdyqd7aizlfb7c";
- type = "gem";
- };
- version = "1.3.0";
- };
- peek-rblineprof = {
- dependencies = ["peek" "rblineprof"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0ywk1gvsnhrkhqq2ibwsg7099kg5m2vs4nmzy0wf65kb0ywl0m9c";
- type = "gem";
- };
- version = "0.2.0";
- };
- peek-redis = {
- dependencies = ["atomic" "peek" "redis"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0v91cni591d9wdrmvgam20gr3504x84mh1l95da4rz5a9436jm33";
- type = "gem";
- };
- version = "1.2.0";
- };
pg = {
- groups = ["development" "postgres" "test"];
+ groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
@@ -2694,6 +3191,8 @@
};
po_to_json = {
dependencies = ["json"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1xvanl437305mry1gd57yvcg7xrfhri91czr32bjr8j2djm8hwba";
@@ -2703,6 +3202,8 @@
};
premailer = {
dependencies = ["addressable" "css_parser" "htmlentities"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "10w6f7r6snpkcnv3byxma9b08lyqzcfxkm083scb2dr2ly4xkzyf";
@@ -2712,6 +3213,8 @@
};
premailer-rails = {
dependencies = ["actionmailer" "premailer"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "05czxmx6hnykg6g23hy2ww2bf86a69njbi02sv7lrds4w776jhim";
@@ -2721,6 +3224,8 @@
};
proc_to_ast = {
dependencies = ["coderay" "parser" "unparser"];
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "14c65w48bbzp5lh1cngqd1y25kqvfnq1iy49hlzshl12dsk3z9wj";
@@ -2729,6 +3234,8 @@
version = "0.1.0";
};
procto = {
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "13imvg1x50rz3r0yyfbhxwv72lbf7q28qx9l9nfbb91h2n9ch58c";
@@ -2741,13 +3248,19 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "01f1zkpi7qsmgmk17fpq6ck7jn64sa9afsq20vc5k9f6mpyqkncd";
+ sha256 = "0immyg4as0isyj2dcjf44n0avg1jv5kx1qk0asrgb5ayzwmjqg1k";
type = "gem";
};
- version = "0.9.8";
+ version = "0.9.10";
};
pry = {
dependencies = ["coderay" "method_source"];
+ groups = ["default" "development" "test"];
+ platforms = [{
+ engine = "maglev";
+ } {
+ engine = "ruby";
+ }];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1mh312k3y94sj0pi160wpia0ps8f4kmzvm505i6bvwynfdh7v30g";
@@ -2757,6 +3270,12 @@
};
pry-byebug = {
dependencies = ["byebug" "pry"];
+ groups = ["development" "test"];
+ platforms = [{
+ engine = "maglev";
+ } {
+ engine = "ruby";
+ }];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1f9kj1qp14qb8crg2rdzf22pr6ngxvy4n6ipymla8q1yjr842625";
@@ -2766,6 +3285,8 @@
};
pry-rails = {
dependencies = ["pry"];
+ groups = ["development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0k2d43bwmqbswfra4fkadjjbszwb11pr7qdkma91qrcrk62wqxvy";
@@ -2784,6 +3305,8 @@
version = "3.1.0";
};
puma = {
+ groups = ["puma"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1k7dqxnq0dnf5rxkgs9rknclkn3ah7lsdrk6nrqxla8qzy31wliq";
@@ -2793,6 +3316,8 @@
};
puma_worker_killer = {
dependencies = ["get_process_mem" "puma"];
+ groups = ["puma"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1m08qi8mxpp20zqqjj9yzcrx0sn29n5fn5avlf1lnl0n7qa9c03i";
@@ -2801,6 +3326,8 @@
version = "0.1.0";
};
pyu-ruby-sasl = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1rcpjiz9lrvyb3rd8k8qni0v4ps08psympffyldmmnrqayyad0sn";
@@ -2809,6 +3336,8 @@
version = "0.0.3.3";
};
raabro = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0xzdmbn48753f6k0ckirp8ja5p0xn1a92wbwxfyggyhj0hza9ylq";
@@ -2817,7 +3346,7 @@
version = "1.1.6";
};
rack = {
- groups = ["default" "development" "kerberos" "mysql" "postgres" "test"];
+ groups = ["default" "development" "kerberos" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
@@ -2828,6 +3357,8 @@
};
rack-accept = {
dependencies = ["rack"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "18jdipx17b4ki33cfqvliapd31sbfvs4mv727awynr6v95a7n936";
@@ -2837,6 +3368,8 @@
};
rack-attack = {
dependencies = ["rack"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1czx68p70x98y21dkdndsb64lrxf9qrv09wl1dbcxrypcjnpsdl1";
@@ -2845,6 +3378,8 @@
version = "4.4.1";
};
rack-cors = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1j27vy1bmhbqcyzhxg8d07qassmax769xjalfwcwz6qfiq8cf013";
@@ -2865,6 +3400,8 @@
};
rack-protection = {
dependencies = ["rack"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "15167q25rmxipqwi6hjqj3i1byi9iwl3xq9b7mdar7qiz39pmjsk";
@@ -2874,6 +3411,8 @@
};
rack-proxy = {
dependencies = ["rack"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1bpbcb9ch94ha2q7gdri88ry7ch0z6ian289kah9ayxyqg19j6f4";
@@ -2883,7 +3422,7 @@
};
rack-test = {
dependencies = ["rack"];
- groups = ["default" "development" "mysql" "postgres" "test"];
+ groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
@@ -2915,6 +3454,8 @@
};
rails-controller-testing = {
dependencies = ["actionpack" "actionview" "activesupport"];
+ groups = ["test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "16kdkk73mhhs73iz3i1i0ryjm84dadiyh817b3nh8acdi490jyhy";
@@ -2924,6 +3465,8 @@
};
rails-dom-testing = {
dependencies = ["activesupport" "nokogiri"];
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1lfq2a7kp2x64dzzi5p4cjcbiv62vxh9lyqk2f0rqq3fkzrw8h5i";
@@ -2933,15 +3476,19 @@
};
rails-html-sanitizer = {
dependencies = ["loofah"];
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1gv7vr5d9g2xmgpjfq4nxsqr70r9pr042r9ycqqnfvw5cz9c7jwr";
+ sha256 = "1icpqmxbppl4ynzmn6dx7wdil5hhq6fz707m9ya6d86c7ys8sd4f";
type = "gem";
};
- version = "1.0.4";
+ version = "1.3.0";
};
rails-i18n = {
dependencies = ["i18n" "railties"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1rqij2ggqz5iq36lbibhnd7pl4qxrvv9kgw9s0c6594vzbbxmhs0";
@@ -2951,7 +3498,7 @@
};
railties = {
dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor"];
- groups = ["default" "development" "mysql" "postgres" "test"];
+ groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
@@ -2961,6 +3508,8 @@
version = "5.2.3";
};
rainbow = {
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk";
@@ -2969,6 +3518,8 @@
version = "3.0.0";
};
raindrops = {
+ groups = ["metrics" "unicorn"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1qpbd9jif40c53fz2r0l8khfl016y8s8bkx37ibcaafclbl3xygp";
@@ -2977,14 +3528,18 @@
version = "0.19.0";
};
rake = {
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1sy5a7nh6xjdc9yhcw31jji7ssrf9v5806hn95gbrzr998a2ydjn";
+ sha256 = "1cvaqarr1m84mhc006g3l1vw7sa5qpkcw0138lsxlf769zdllsgp";
type = "gem";
};
- version = "12.3.2";
+ version = "12.3.3";
};
rb-fsevent = {
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1fbpmjypwxkb8r7y1kmhmyp6gawa4byw0yb3jc3dn9ly4ld9lizf";
@@ -2994,6 +3549,8 @@
};
rb-inotify = {
dependencies = ["ffi"];
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0yfsgw5n7pkpyky6a9wkf1g9jafxb0ja7gz0qw0y14fd2jnzfh71";
@@ -3003,6 +3560,12 @@
};
rblineprof = {
dependencies = ["debugger-ruby_core_source"];
+ groups = ["development"];
+ platforms = [{
+ engine = "maglev";
+ } {
+ engine = "ruby";
+ }];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0m58kdjgncwf0h1qry3qk5h4bg8sj0idykqqijqcrr09mxfd9yc6";
@@ -3012,6 +3575,8 @@
};
rbtrace = {
dependencies = ["ffi" "msgpack" "optimist"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1lwsq08i0aj8na5q5ba3gg02sx3wl58fi6m52svl5p7cy56ycdwi";
@@ -3020,6 +3585,8 @@
version = "0.4.11";
};
rdoc = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0anv42cqcdc6g4n386mrva7mgav5i0c2ry3yzvzzc6z6hymkmcr7";
@@ -3028,6 +3595,8 @@
version = "6.0.4";
};
re2 = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "00wf9k1hkv3z3nfkrnfyyfq9ah0l7k14awqys3h2hqz4c21pqd2i";
@@ -3047,6 +3616,8 @@
version = "4.13.1";
};
recursive-open-struct = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0wfcyigmf5mwrxy76p0bi4sdb4h9afs8jc73pjav5cnqszljjl3c";
@@ -3055,6 +3626,8 @@
version = "1.1.0";
};
RedCloth = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0m9dv7ya9q93r8x1pg2gi15rxlbck8m178j1fz7r5v6wr1avrrqy";
@@ -3063,15 +3636,19 @@
version = "4.3.2";
};
redis = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0i415x8gi0c5vsiy6ikvx5js6fhc4x80a5lqv8iidy2iymd20irv";
+ sha256 = "1mymdx7s5sr4mablklaipz679ckczsiigswm1g2v5mc93yj5amw3";
type = "gem";
};
- version = "3.3.5";
+ version = "4.1.2";
};
redis-actionpack = {
dependencies = ["actionpack" "redis-rack" "redis-store"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "15k41gz7nygd4yydk2yd25gghya1j7q6zifk4mdrra6bwnwjbm63";
@@ -3081,15 +3658,19 @@
};
redis-activesupport = {
dependencies = ["activesupport" "redis-store"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0rq5dhrzc1l8c7f5gx9r7mvnsk5206dfwih3yv5si5rf42nx2ay5";
+ sha256 = "0y1df62gpqgy0yrlmgl05rp4kb0xvn0kylprhv1k32bs33dgpv62";
type = "gem";
};
- version = "5.0.4";
+ version = "5.0.7";
};
redis-namespace = {
dependencies = ["redis"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0r7daagrjjribn098dxwbv9zivrbq2rsffbkj2ccxyn9lmjjbgah";
@@ -3099,15 +3680,19 @@
};
redis-rack = {
dependencies = ["rack" "redis-store"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0px0wv8zripc6lrn3k0k61j6nlxda145q8sz50yvnig17wlk36gb";
+ sha256 = "03xgdmq4fh187aqlh8z05idbxrmgddcarlb8x1kw4wjfcsf5afqi";
type = "gem";
};
- version = "2.0.4";
+ version = "2.0.5";
};
redis-rails = {
dependencies = ["redis-actionpack" "redis-activesupport" "redis-store"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0hjvkyaw5hgz7v6fgwdk8pb966z44h1gv8jarmb0gwhkqmjnsh40";
@@ -3117,6 +3702,8 @@
};
redis-store = {
dependencies = ["redis"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1mrcnjgkbmx1zf569mly82agdizqayjvnp2k6055k1iy07in3j8b";
@@ -3135,6 +3722,8 @@
version = "1.5.1";
};
regexp_property_values = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "05ka0bkhghs9b9pv6q443k8y1c5xalmm0vylj9zd450ksncxj1yr";
@@ -3144,6 +3733,8 @@
};
representable = {
dependencies = ["declarative" "declarative-option" "uber"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0qm9rgi1j5a6nv726ka4mmixivlxfsg91h8rpp72wwd4vqbkkm07";
@@ -3152,6 +3743,8 @@
version = "3.0.4";
};
request_store = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1va9x0b3ww4chcfqlmi8b14db39di1mwa7qrjbh7ma0lhndvs2zv";
@@ -3161,15 +3754,19 @@
};
responders = {
dependencies = ["actionpack" "railties"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1rhdyyvvm26f2l3fgwdp6xasfl2y0whwgy766bhdwz697mf78zfn";
+ sha256 = "18lqbiyc7234vd6iwxia5yvvzg6bdvdwl2nm4a5y7ia5fxjl3kqm";
type = "gem";
};
- version = "2.4.0";
+ version = "2.4.1";
};
rest-client = {
dependencies = ["http-cookie" "mime-types" "netrc"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1hzcs2r7b5bjkf2x2z3n8z6082maz0j8vqjiciwgg3hzb63f958j";
@@ -3178,6 +3775,8 @@
version = "2.0.2";
};
retriable = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1q48hqws2dy1vws9schc0kmina40gy7sn5qsndpsfqdslh65snha";
@@ -3186,6 +3785,8 @@
version = "3.1.2";
};
rinku = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "11cakxzp7qi04d41hbqkh92n52mm4z2ba8sqyhxbmfi4kypmls9y";
@@ -3194,6 +3795,8 @@
version = "2.0.0";
};
rotp = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1w8d6svhq3y9y952r8cqirxvdx12zlkb7zxjb44bcbidb2sisy4d";
@@ -3206,13 +3809,15 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0yfhazlhjc4abgzhkgq8zqmdphvkh52211widkl4zhsbhqh8wg2q";
+ sha256 = "1zsyv6abqrk7lpql5f1ja4m88bfy9qndi8xykpss6cpvjdmi3ydb";
type = "gem";
};
- version = "3.5.1";
+ version = "3.11.0";
};
rqrcode = {
dependencies = ["chunky_png"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "188n1mvc7klrlw30bai16sdg4yannmy7cz0sg0nvm6f1kjx5qflb";
@@ -3222,6 +3827,8 @@
};
rqrcode-rails3 = {
dependencies = ["rqrcode"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1i28rwmj24ssk91chn0g7qsnvn003y3s5a7jsrg3w4l5ckr841bg";
@@ -3307,6 +3914,8 @@
version = "0.6.1";
};
rspec-set = {
+ groups = ["development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "06vw8b5w1a58838cw9ssmy3r6f8vrjh54h7dp97rwv831gn5zlyk";
@@ -3326,6 +3935,8 @@
};
rspec_junit_formatter = {
dependencies = ["rspec-core"];
+ groups = ["test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1aynmrgnv26pkprrajvp7advb8nbh0x4pkwk6jwq8qmwzarzk21p";
@@ -3335,6 +3946,8 @@
};
rspec_profiling = {
dependencies = ["activerecord" "pg" "rails" "sqlite3"];
+ groups = ["development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1g7q7gav26bpiprx4dhlvdh4zdrhwiky9jbmsp14gyfiabqdz4sz";
@@ -3355,6 +3968,8 @@
};
rubocop-gitlab-security = {
dependencies = ["rubocop"];
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0v0040kpx46fxz3p7dsdjgvsx89qjhwy17n8vxnqg9a7g1rfvxln";
@@ -3375,6 +3990,8 @@
};
rubocop-rspec = {
dependencies = ["rubocop"];
+ groups = ["development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0vk51h9swvgshan8vp8yjz03qv9vn5vs29i9iddhjwcwgzsganla";
@@ -3384,6 +4001,8 @@
};
ruby-enum = {
dependencies = ["i18n"];
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0h62avini866kxpjzqxlqnajma3yvj0y25l6hn9h2mv5pp6fcrhx";
@@ -3393,6 +4012,8 @@
};
ruby-fogbugz = {
dependencies = ["crack"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1jj0gpkycbrivkh2q3429vj6mbgx6axxisg69slj3c4mgvzfgchm";
@@ -3401,25 +4022,29 @@
version = "0.2.1";
};
ruby-prof = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "02z4lh1iv1d8751a1l6r4hfc9mp61gf80g4qc4l6gbync3j3hf2c";
+ sha256 = "0ac3mv3x468s820f6wnp5whzl59y5844wmdjg47a8mbp0kkmnn58";
type = "gem";
};
- version = "0.17.0";
+ version = "1.0.0";
};
ruby-progressbar = {
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1cv2ym3rl09svw8940ny67bav7b2db4ms39i4raaqzkf59jmhglk";
+ sha256 = "1k77i0d4wsn23ggdd2msrcwfy0i376cglfqypkk2q77r2l3408zf";
type = "gem";
};
- version = "1.10.0";
+ version = "1.10.1";
};
ruby-saml = {
dependencies = ["nokogiri"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0k9d88fa8bp5szivbwq0qi960y3r2kp6jhnkmsp3n2rvwpn936i3";
@@ -3439,6 +4064,8 @@
version = "3.13.1";
};
rubyntlm = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1p6bxsklkbcqni4bcq6jajc2n57g0w5rzn4r49c3lb04wz5xg0dy";
@@ -3447,6 +4074,8 @@
version = "0.6.2";
};
rubypants = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1vpdkrc4c8qhrxph41wqwswl28q5h5h994gy4c1mlrckqzm3hzph";
@@ -3455,6 +4084,8 @@
version = "0.2.0";
};
rubyzip = {
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1n1lb2sdwh9h27y244hxzg1lrxxg2m53pk1vq7p33bna003qkyrj";
@@ -3467,12 +4098,14 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1yiszpz6y13vvgh3fss1l0ipp0zgsbbc8c28vynnpdyx1sy6krp6";
+ sha256 = "03w3k7j27kgzpcc3halkd3w0b677sny2lfwm2lwn2n1ac20dzjc6";
type = "gem";
};
- version = "0.28.1";
+ version = "0.28.3.1";
};
safe_yaml = {
+ groups = ["default" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094";
@@ -3482,6 +4115,8 @@
};
sanitize = {
dependencies = ["crass" "nokogiri" "nokogumbo"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0j4j2a2mkk1a70vbx959pvx0gvr1zb9snjwvsppwj28bp0p0b2bv";
@@ -3491,6 +4126,8 @@
};
sass = {
dependencies = ["sass-listen"];
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "10401m2xlv6vaxfwzy4xxmk51ddcnkvwi918cw3jkki0qqdl7d8v";
@@ -3500,6 +4137,8 @@
};
sass-listen = {
dependencies = ["rb-fsevent" "rb-inotify"];
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0xw3q46cmahkgyldid5hwyiwacp590zj2vmswlll68ryvmvcp7df";
@@ -3531,6 +4170,8 @@
};
sawyer = {
dependencies = ["addressable" "faraday"];
+ groups = ["default" "development"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0sv1463r7bqzvx4drqdmd36m7rrv6sf1v3c6vswpnq3k6vdw2dvd";
@@ -3540,6 +4181,8 @@
};
scss_lint = {
dependencies = ["rake" "sass"];
+ groups = ["development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "01bfkrjn1i0hfg1ifwn1rs7vqwdbdw158krwr5fm6iasd9zgl10g";
@@ -3549,6 +4192,8 @@
};
seed-fu = {
dependencies = ["activerecord" "activesupport"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0x6gclryl0hds3zms095d2iyafcvm2kfrm7362vrkxws7r2775pi";
@@ -3579,6 +4224,8 @@
version = "2.9.0";
};
settingslogic = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1ria5zcrk1nf0b9yia15mdpzw0dqr6wjpbj8dsdbbps81lfsj9ar";
@@ -3596,15 +4243,6 @@
};
version = "4.12.0";
};
- sham_rack = {
- dependencies = ["rack"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0zs6hpgg87x5jrykjxgfp2i7m5aja53s5kamdhxam16wki1hid3i";
- type = "gem";
- };
- version = "1.3.6";
- };
shoulda-matchers = {
dependencies = ["activesupport"];
groups = ["test"];
@@ -3629,6 +4267,8 @@
};
sidekiq-cron = {
dependencies = ["fugit" "sidekiq"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1aliswahmpxn1ib2brn4126gk97ac3zdnwr71mn8vzbr3vdd7fl0";
@@ -3638,6 +4278,8 @@
};
signet = {
dependencies = ["addressable" "faraday" "jwt" "multi_json"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1f5d3bz5bjc4b0r2jmqd15qf07lgsqkgd25f0h46jihrf9l5fsi4";
@@ -3646,6 +4288,8 @@
version = "0.11.0";
};
simple_po_parser = {
+ groups = ["development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "08wkp4gcrd89k5yari9j94if9ffkj3rka4llcwrhdgsi3l15p5f3";
@@ -3674,7 +4318,19 @@
};
version = "0.10.2";
};
+ sixarm_ruby_unaccent = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "11237b8r8p7fc0cpn04v9wa7ggzq0xm6flh10h1lnb6zgc3schq0";
+ type = "gem";
+ };
+ version = "1.2.0";
+ };
slack-notifier = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0xavibxh00gy62mm79l6id9l2fldjmdqifk8alqfqy5z38ffwah6";
@@ -3695,6 +4351,8 @@
};
spring = {
dependencies = ["activesupport"];
+ groups = ["development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "168yz9c1fv21wc5i8q7n43b9nk33ivg3ws1fn6x0afgryz3ssx75";
@@ -3704,6 +4362,8 @@
};
spring-commands-rspec = {
dependencies = ["spring"];
+ groups = ["development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0b0svpq3md1pjz5drpa5pxwg8nk48wrshq8lckim4x3nli7ya0k2";
@@ -3713,6 +4373,8 @@
};
sprockets = {
dependencies = ["concurrent-ruby" "rack"];
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay";
@@ -3722,6 +4384,8 @@
};
sprockets-rails = {
dependencies = ["actionpack" "activesupport" "sprockets"];
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0ab42pm8p5zxpv3sfraq45b9lj39cz9mrpdirm30vywzrwwkm5p1";
@@ -3730,6 +4394,8 @@
version = "3.2.1";
};
sqlite3 = {
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "01ifzp8nwzqppda419c9wcvr8n82ysmisrs0hph9pdmv1lpa4f5i";
@@ -3738,6 +4404,8 @@
version = "1.3.13";
};
sshkey = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "03bkn55qsng484iqwz2lmm6rkimj01vsvhwk661s3lnmpkl65lbp";
@@ -3746,6 +4414,8 @@
version = "2.0.0";
};
stackprof = {
+ groups = ["development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1c88j2d6ipjw5s3hgdgfww37gysgrkicawagj33hv3knijjc9ski";
@@ -3754,6 +4424,8 @@
version = "0.2.10";
};
state_machines = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "00mi16hg3rhkxz4y58s173cbnjlba41y9bfcim90p4ja6yfj9ri3";
@@ -3763,6 +4435,8 @@
};
state_machines-activemodel = {
dependencies = ["activemodel" "state_machines"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0chhm5hs1y83dq8haff10m66r3yrm7jab35r9xg6adn6qd8ynv2l";
@@ -3772,6 +4446,8 @@
};
state_machines-activerecord = {
dependencies = ["activerecord" "state_machines-activemodel"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "00h07gd4kb22ahgv61r8zca9hqxaw44fnk2sc28j00c1nmwsw6r3";
@@ -3792,6 +4468,8 @@
};
sys-filesystem = {
dependencies = ["ffi"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "092wj7936i5inzafi09wqh5c8dbak588q21k652dsrdjf5qi10zq";
@@ -3800,6 +4478,8 @@
version = "1.1.6";
};
sysexits = {
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0qjng6pllznmprzx8vb0zg0c86hdrkyjs615q41s9fjpmv2430jr";
@@ -3817,15 +4497,30 @@
};
version = "0.8.1";
};
- test-prof = {
+ terminal-table = {
+ dependencies = ["unicode-display_width"];
+ groups = ["default" "development"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "08nvn3c1mzgcjgk9lr3py0zjd8fjjrm3ncn9rpqkfbx429mgw2l3";
+ sha256 = "1512cngw35hsmhvw4c05rscihc59mnj09m249sm9p3pik831ydqk";
type = "gem";
};
- version = "0.2.5";
+ version = "1.8.0";
+ };
+ test-prof = {
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ag33hv8ky8nxpsra9jkam9npi1jjwb7f7zmvi2najci5mdr10nr";
+ type = "gem";
+ };
+ version = "0.10.0";
};
text = {
+ groups = ["default" "development"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1x6kkmsr49y3rnrin91rv8mpc3dhrf3ql08kbccw8yffq61brfrg";
@@ -3835,6 +4530,8 @@
};
thin = {
dependencies = ["daemons" "eventmachine" "rack"];
+ groups = ["development"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0nagbf9pwy1vg09k6j4xqhbjjzrg5dwzvkn4ffvlj76fsn6vv61f";
@@ -3843,6 +4540,8 @@
version = "1.7.2";
};
thor = {
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "01n5dv9kql60m6a00zc0r66jvaxx98qhdny3klyj0p3w34pad2ns";
@@ -3851,6 +4550,8 @@
version = "0.19.4";
};
thread_safe = {
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
@@ -3859,6 +4560,8 @@
version = "0.3.6";
};
thrift = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "02p107kwx7jnkh6fpdgvaji0xdg6xkaarngkqjml6s4zny4m8slv";
@@ -3877,6 +4580,8 @@
version = "2.0.9";
};
timecop = {
+ groups = ["development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0vwbkwqyxhavzvr1820hqwz43ylnfcf6w4x6sag0nghi44sr9kmx";
@@ -3885,6 +4590,8 @@
version = "0.8.1";
};
timfel-krb5-auth = {
+ groups = ["default" "kerberos"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "105vajc0jkqgcx1wbp0ad262sdry4l1irk7jpaawv8vzfjfqqf5b";
@@ -3894,6 +4601,8 @@
};
toml = {
dependencies = ["parslet"];
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0xj460rkyqvg74xc8kivmbvgc46c6mm7r8mbjs5m2gq8khf8sbki";
@@ -3903,6 +4612,8 @@
};
toml-rb = {
dependencies = ["citrus"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0pz6z1mc7rnv4chkbx3mdn4q1lpp0j596dq57kbq39jv0wn0wi4d";
@@ -3910,18 +4621,10 @@
};
version = "1.0.0";
};
- tomlrb = {
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0g28ssfal6vry3cmhy509ba3vi5d5aggz1gnffnvvmc8ml8vkpiv";
- type = "gem";
- };
- version = "1.2.8";
- };
truncato = {
dependencies = ["htmlentities" "nokogiri"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0z36dprfj9l4jwgwb2wv4v3cilm53v7i1ywfmm5f1dl352id3ak4";
@@ -3931,6 +4634,8 @@
};
tzinfo = {
dependencies = ["thread_safe"];
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z";
@@ -3939,6 +4644,8 @@
version = "1.2.5";
};
u2f = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0lsm1hvwcaa9sq13ab1l1zjk0fgcy951ay11v2acx0h6q1iv21vr";
@@ -3947,6 +4654,8 @@
version = "0.2.1";
};
uber = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1p1mm7mngg40x05z52md3mbamkng0zpajbzqjjwmsyw0zw3v9vjv";
@@ -3956,6 +4665,8 @@
};
uglifier = {
dependencies = ["execjs" "json"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0mzs64z3m1b98rh6ssxpqfz9sc87f6ml6906b0m57vydzfgrh1cz";
@@ -3965,6 +4676,8 @@
};
unf = {
dependencies = ["unf_ext"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9";
@@ -3973,6 +4686,8 @@
version = "0.1.4";
};
unf_ext = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "06p1i6qhy34bpb8q8ms88y6f2kz86azwm098yvcc0nyqk9y729j1";
@@ -3990,8 +4705,20 @@
};
version = "1.6.0";
};
+ unicode_utils = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0h1a5yvrxzlf0lxxa1ya31jcizslf774arnsd89vgdhk4g7x08mr";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
unicorn = {
dependencies = ["kgio" "raindrops"];
+ groups = ["unicorn"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1qfhvzs4i6ja1s43j8p1kfbzm10n7a02ngki30a38y5m46a2qrak";
@@ -4001,6 +4728,8 @@
};
unicorn-worker-killer = {
dependencies = ["get_process_mem" "unicorn"];
+ groups = ["unicorn"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0rrdxpwdsapx47axjin8ymxb4f685qlpx8a26bql4ay1559c3gva";
@@ -4009,6 +4738,8 @@
version = "0.4.4";
};
uniform_notifier = {
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1jha0l7x602g5rvah960xl9r0f3q25gslj39i0x1vai8i5z6zr1l";
@@ -4016,6 +4747,17 @@
};
version = "1.10.0";
};
+ unleash = {
+ dependencies = ["murmurhash3"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xs2ml9cwskddsxick3a9wnasy7q6wmc0dbydfcaspfl2cjmp1rk";
+ type = "gem";
+ };
+ version = "0.1.5";
+ };
unparser = {
dependencies = ["abstract_type" "adamantium" "concord" "diff-lcs" "equalizer" "parser" "procto"];
groups = ["default" "development" "test"];
@@ -4051,6 +4793,8 @@
};
validates_hostname = {
dependencies = ["activerecord" "activesupport"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "04p1l0v98j4ffvaks1ig9mygx5grpbpdgz7haq3mygva9iy8ykja";
@@ -4059,6 +4803,8 @@
version = "1.0.6";
};
version_sorter = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0hbdw3vh856f5yg5mbj4498l6vh90cd3pn22ikr3ranzkrh73l3s";
@@ -4068,6 +4814,8 @@
};
virtus = {
dependencies = ["axiom-types" "coercible" "descendants_tracker" "equalizer"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "06iphwi3c4f7y9i2rvhvaizfswqbaflilziz4dxqngrdysgkn1fk";
@@ -4076,6 +4824,8 @@
version = "1.0.5";
};
vmstat = {
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0vb5mwc71p8rlm30hnll3lb4z70ipl5rmilskpdrq2mxwfilcm5b";
@@ -4085,12 +4835,14 @@
};
warden = {
dependencies = ["rack"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0va966lhpylcwbqb9n151kkihx30agh0a57mwjwdxyanll4s1q12";
+ sha256 = "1fr9n9i9r82xb6i61fdw4xgc7zjv7fsdrr4k0njchy87iw9fl454";
type = "gem";
};
- version = "1.2.7";
+ version = "1.2.8";
};
webfinger = {
dependencies = ["activesupport" "httpclient"];
@@ -4105,6 +4857,8 @@
};
webmock = {
dependencies = ["addressable" "crack" "hashdiff"];
+ groups = ["test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0gg0c2sxq7rni0b93w47h7p7cn590xdhf5va7ska48inpipwlgxp";
@@ -4114,6 +4868,8 @@
};
webpack-rails = {
dependencies = ["railties"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0fsjxw730bh4k1dfnbjm645fgjyqrh830l1z7brqbsm6306ig1rr";
@@ -4133,6 +4889,8 @@
version = "0.7.0";
};
websocket-extensions = {
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "034sdr7fd34yag5l6y156rkbhiqgmy395m231dwhlpcswhs6d270";
@@ -4142,6 +4900,8 @@
};
wikicloth = {
dependencies = ["builder" "expression_parser" "rinku"];
+ groups = ["default"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1jp6c2yzyqbap8jdiw8yz6l08sradky1llhyhmrg934l1b5akj3s";
@@ -4150,6 +4910,8 @@
version = "0.8.1";
};
with_env = {
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1r5ns064mbb99hf1dyxsk9183hznc5i7mn3bi86zka6dlvqf9csh";
@@ -4158,6 +4920,8 @@
version = "1.1.0";
};
xml-simple = {
+ groups = ["default" "development" "test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0xlqplda3fix5pcykzsyzwgnbamb3qrqkgbrhhfz2a2fxhrkvhw8";
diff --git a/pkgs/applications/version-management/gitlab/update.py b/pkgs/applications/version-management/gitlab/update.py
index 650bd73aa84..a2231f813e8 100755
--- a/pkgs/applications/version-management/gitlab/update.py
+++ b/pkgs/applications/version-management/gitlab/update.py
@@ -1,5 +1,5 @@
#!/usr/bin/env nix-shell
-#! nix-shell -i python3 -p bundix common-updater-scripts nix nix-prefetch-git python3 python3Packages.requests python3Packages.lxml python3Packages.click python3Packages.click-log vgo2nix
+#! nix-shell -i python3 -p bundix common-updater-scripts nix nix-prefetch-git python3 python3Packages.requests python3Packages.lxml python3Packages.click python3Packages.click-log vgo2nix yarn2nix
import click
import click_log
@@ -20,7 +20,7 @@ logger = logging.getLogger(__name__)
class GitLabRepo:
version_regex = re.compile(r"^v\d+\.\d+\.\d+(\-rc\d+)?(\-ee)?")
- def __init__(self, owner: str, repo: str):
+ def __init__(self, owner: str = 'gitlab-org', repo: str = 'gitlab'):
self.owner = owner
self.repo = repo
@@ -46,24 +46,6 @@ class GitLabRepo:
j = json.loads(out)
return j['sha256']
- def get_deb_url(self, flavour: str, version: str, arch: str = 'amd64') -> str:
- """
- gitlab builds debian packages, which we currently need as we don't build the frontend on our own
- this returns the url of a given flavour, version and arch
- :param flavour: 'ce' or 'ee'
- :param version: a version, without 'v' prefix and '-ee' suffix
- :param arch: amd64
- :return: url of the debian package
- """
- if self.owner != "gitlab-org" or self.repo not in ['gitlab-ce', 'gitlab-ee']:
- raise Exception(f"don't know how to get deb_url for {self.url}")
- return f"https://packages.gitlab.com/gitlab/gitlab-{flavour}/packages" + \
- f"/debian/stretch/gitlab-{flavour}_{version}-{flavour}.0_{arch}.deb/download.deb"
-
- def get_deb_hash(self, flavour: str, version: str) -> str:
- out = subprocess.check_output(['nix-prefetch-url', self.get_deb_url(flavour, version)])
- return out.decode('utf-8').strip()
-
@staticmethod
def rev2version(tag: str) -> str:
"""
@@ -86,46 +68,19 @@ class GitLabRepo:
"""
return requests.get(self.url + f"/raw/{rev}/{filepath}").text
- def get_data(self, rev, flavour):
+ def get_data(self, rev):
version = self.rev2version(rev)
passthru = {v: self.get_file(v, rev).strip() for v in ['GITALY_SERVER_VERSION', 'GITLAB_PAGES_VERSION',
'GITLAB_SHELL_VERSION', 'GITLAB_WORKHORSE_VERSION']}
return dict(version=self.rev2version(rev),
repo_hash=self.get_git_hash(rev),
- deb_hash=self.get_deb_hash(flavour, version),
- deb_url=self.get_deb_url(flavour, version),
owner=self.owner,
repo=self.repo,
rev=rev,
passthru=passthru)
-def _flavour2gitlabrepo(flavour: str):
- if flavour not in ['ce', 'ee']:
- raise Exception(f"unknown gitlab flavour: {flavour}, needs to be ce or ee")
-
- owner = 'gitlab-org'
- repo = 'gitlab-' + flavour
-
- return GitLabRepo(owner, repo)
-
-
-def _update_data_json(filename: str, repo: GitLabRepo, rev: str, flavour: str):
- flavour_data = repo.get_data(rev, flavour)
-
- if not os.path.exists(filename):
- with open(filename, 'w') as f:
- json.dump({flavour: flavour_data}, f, indent=2)
- else:
- with open(filename, 'r+') as f:
- data = json.load(f)
- data[flavour] = flavour_data
- f.seek(0)
- f.truncate()
- json.dump(data, f, indent=2)
-
-
def _get_data_json():
data_file_path = pathlib.Path(__file__).parent / 'data.json'
with open(data_file_path, 'r') as f:
@@ -146,100 +101,134 @@ def cli():
@cli.command('update-data')
@click.option('--rev', default='latest', help='The rev to use, \'latest\' points to the latest (stable) tag')
-@click.argument('flavour')
-def update_data(rev: str, flavour: str):
- """Update data.nix for a selected flavour"""
- r = _flavour2gitlabrepo(flavour)
+def update_data(rev: str):
+ """Update data.nix"""
+ repo = GitLabRepo()
if rev == 'latest':
# filter out pre and re releases
- rev = next(filter(lambda x: not ('rc' in x or x.endswith('pre')), r.tags))
+ rev = next(filter(lambda x: not ('rc' in x or x.endswith('pre')), repo.tags))
logger.debug(f"Using rev {rev}")
- version = r.rev2version(rev)
+ version = repo.rev2version(rev)
logger.debug(f"Using version {version}")
data_file_path = pathlib.Path(__file__).parent / 'data.json'
- _update_data_json(filename=data_file_path.as_posix(),
- repo=r,
- rev=rev,
- flavour=flavour)
+ data = repo.get_data(rev)
+
+ with open(data_file_path.as_posix(), 'w') as f:
+ json.dump(data, f, indent=2)
@cli.command('update-rubyenv')
-@click.argument('flavour')
-def update_rubyenv(flavour):
- """Update rubyEnv-${flavour}"""
- if flavour not in ['ce', 'ee']:
- raise Exception(f"unknown gitlab flavour: {flavour}, needs to be ce or ee")
-
- r = _flavour2gitlabrepo(flavour)
- rubyenv_dir = pathlib.Path(__file__).parent / f"rubyEnv-{flavour}"
+def update_rubyenv():
+ """Update rubyEnv"""
+ repo = GitLabRepo()
+ rubyenv_dir = pathlib.Path(__file__).parent / f"rubyEnv"
# load rev from data.json
data = _get_data_json()
- rev = data[flavour]['rev']
+ rev = data['rev']
for fn in ['Gemfile.lock', 'Gemfile']:
with open(rubyenv_dir / fn, 'w') as f:
- f.write(r.get_file(fn, rev))
+ f.write(repo.get_file(fn, rev))
subprocess.check_output(['bundix'], cwd=rubyenv_dir)
+@cli.command('update-yarnpkgs')
+def update_yarnpkgs():
+ """Update yarnPkgs"""
+
+ repo = GitLabRepo()
+ yarnpkgs_dir = pathlib.Path(__file__).parent
+
+ # load rev from data.json
+ data = _get_data_json()
+ rev = data['rev']
+
+ with open(yarnpkgs_dir / 'yarn.lock', 'w') as f:
+ f.write(repo.get_file('yarn.lock', rev))
+
+ with open(yarnpkgs_dir / 'yarnPkgs.nix', 'w') as f:
+ subprocess.run(['yarn2nix'], cwd=yarnpkgs_dir, check=True, stdout=f)
+
+ os.unlink(yarnpkgs_dir / 'yarn.lock')
+
+
@cli.command('update-gitaly')
def update_gitaly():
"""Update gitaly"""
data = _get_data_json()
- gitaly_server_version = data['ce']['passthru']['GITALY_SERVER_VERSION']
- r = GitLabRepo('gitlab-org', 'gitaly')
+ gitaly_server_version = data['passthru']['GITALY_SERVER_VERSION']
+ repo = GitLabRepo(repo='gitaly')
gitaly_dir = pathlib.Path(__file__).parent / 'gitaly'
for fn in ['Gemfile.lock', 'Gemfile']:
with open(gitaly_dir / fn, 'w') as f:
- f.write(r.get_file(f"ruby/{fn}", f"v{gitaly_server_version}"))
+ f.write(repo.get_file(f"ruby/{fn}", f"v{gitaly_server_version}"))
for fn in ['go.mod', 'go.sum']:
with open(gitaly_dir / fn, 'w') as f:
- f.write(r.get_file(fn, f"v{gitaly_server_version}"))
+ f.write(repo.get_file(fn, f"v{gitaly_server_version}"))
subprocess.check_output(['bundix'], cwd=gitaly_dir)
subprocess.check_output(['vgo2nix'], cwd=gitaly_dir)
for fn in ['go.mod', 'go.sum']:
os.unlink(gitaly_dir / fn)
- # currently broken, as `gitaly.meta.position` returns
- # pkgs/development/go-modules/generic/default.nix
- # so update-source-version doesn't know where to update hashes
- # _call_update_source_version('gitaly', gitaly_server_version)
- gitaly_hash = r.get_git_hash(f"v{gitaly_server_version}")
- click.echo(f"Please update gitaly/default.nix to version {gitaly_server_version} and hash {gitaly_hash}")
+
+ _call_update_source_version('gitaly', gitaly_server_version)
@cli.command('update-gitlab-shell')
def update_gitlab_shell():
"""Update gitlab-shell"""
data = _get_data_json()
- gitlab_shell_version = data['ce']['passthru']['GITLAB_SHELL_VERSION']
+ gitlab_shell_version = data['passthru']['GITLAB_SHELL_VERSION']
_call_update_source_version('gitlab-shell', gitlab_shell_version)
+ repo = GitLabRepo(repo='gitlab-shell')
+ gitlab_shell_dir = pathlib.Path(__file__).parent / 'gitlab-shell'
+
+ for fn in ['go.mod', 'go.sum']:
+ with open(gitlab_shell_dir / fn, 'w') as f:
+ f.write(repo.get_file(f"go/{fn}", f"v{gitlab_shell_version}"))
+
+ subprocess.check_output(['vgo2nix'], cwd=gitlab_shell_dir)
+
+ for fn in ['go.mod', 'go.sum']:
+ os.unlink(gitlab_shell_dir / fn)
+
@cli.command('update-gitlab-workhorse')
def update_gitlab_workhorse():
- """Update gitlab-shell"""
+ """Update gitlab-workhorse"""
data = _get_data_json()
- gitlab_workhorse_version = data['ce']['passthru']['GITLAB_WORKHORSE_VERSION']
+ gitlab_workhorse_version = data['passthru']['GITLAB_WORKHORSE_VERSION']
_call_update_source_version('gitlab-workhorse', gitlab_workhorse_version)
+ repo = GitLabRepo('gitlab-org', 'gitlab-workhorse')
+ gitlab_workhorse_dir = pathlib.Path(__file__).parent / 'gitlab-workhorse'
+
+ for fn in ['go.mod', 'go.sum']:
+ with open(gitlab_workhorse_dir / fn, 'w') as f:
+ f.write(repo.get_file(fn, f"v{gitlab_workhorse_version}"))
+
+ subprocess.check_output(['vgo2nix'], cwd=gitlab_workhorse_dir)
+
+ for fn in ['go.mod', 'go.sum']:
+ os.unlink(gitlab_workhorse_dir / fn)
@cli.command('update-all')
@click.pass_context
def update_all(ctx):
- """Update gitlab ce and ee data.nix and rubyenvs to the latest stable release"""
- for flavour in ['ce', 'ee']:
- ctx.invoke(update_data, rev='latest', flavour=flavour)
- ctx.invoke(update_rubyenv, flavour=flavour)
+ """Update all gitlab components to the latest stable release"""
+ ctx.invoke(update_data, rev='latest')
+ ctx.invoke(update_rubyenv)
+ ctx.invoke(update_yarnpkgs)
ctx.invoke(update_gitaly)
ctx.invoke(update_gitlab_shell)
ctx.invoke(update_gitlab_workhorse)
diff --git a/pkgs/applications/version-management/gitlab/yarnPkgs.nix b/pkgs/applications/version-management/gitlab/yarnPkgs.nix
new file mode 100644
index 00000000000..cff2603129d
--- /dev/null
+++ b/pkgs/applications/version-management/gitlab/yarnPkgs.nix
@@ -0,0 +1,14157 @@
+{ fetchurl, fetchgit, linkFarm, runCommandNoCC, gnutar }: rec {
+ offline_cache = linkFarm "offline" packages;
+ packages = [
+ {
+ name = "_babel_code_frame___code_frame_7.5.5.tgz";
+ path = fetchurl {
+ name = "_babel_code_frame___code_frame_7.5.5.tgz";
+ url = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz";
+ sha1 = "bc0782f6d69f7b7d49531219699b988f669a8f9d";
+ };
+ }
+ {
+ name = "_babel_core___core_7.6.2.tgz";
+ path = fetchurl {
+ name = "_babel_core___core_7.6.2.tgz";
+ url = "https://registry.yarnpkg.com/@babel/core/-/core-7.6.2.tgz";
+ sha1 = "069a776e8d5e9eefff76236bc8845566bd31dd91";
+ };
+ }
+ {
+ name = "_babel_generator___generator_7.6.2.tgz";
+ path = fetchurl {
+ name = "_babel_generator___generator_7.6.2.tgz";
+ url = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.6.2.tgz";
+ sha1 = "dac8a3c2df118334c2a29ff3446da1636a8f8c03";
+ };
+ }
+ {
+ name = "_babel_helper_annotate_as_pure___helper_annotate_as_pure_7.0.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_annotate_as_pure___helper_annotate_as_pure_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz";
+ sha1 = "323d39dd0b50e10c7c06ca7d7638e6864d8c5c32";
+ };
+ }
+ {
+ name = "_babel_helper_builder_binary_assignment_operator_visitor___helper_builder_binary_assignment_operator_visitor_7.1.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_builder_binary_assignment_operator_visitor___helper_builder_binary_assignment_operator_visitor_7.1.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz";
+ sha1 = "6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f";
+ };
+ }
+ {
+ name = "_babel_helper_builder_react_jsx___helper_builder_react_jsx_7.3.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_builder_react_jsx___helper_builder_react_jsx_7.3.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.3.0.tgz";
+ sha1 = "a1ac95a5d2b3e88ae5e54846bf462eeb81b318a4";
+ };
+ }
+ {
+ name = "_babel_helper_call_delegate___helper_call_delegate_7.4.4.tgz";
+ path = fetchurl {
+ name = "_babel_helper_call_delegate___helper_call_delegate_7.4.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz";
+ sha1 = "87c1f8ca19ad552a736a7a27b1c1fcf8b1ff1f43";
+ };
+ }
+ {
+ name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.6.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.6.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.6.0.tgz";
+ sha1 = "769711acca889be371e9bc2eb68641d55218021f";
+ };
+ }
+ {
+ name = "_babel_helper_define_map___helper_define_map_7.5.5.tgz";
+ path = fetchurl {
+ name = "_babel_helper_define_map___helper_define_map_7.5.5.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz";
+ sha1 = "3dec32c2046f37e09b28c93eb0b103fd2a25d369";
+ };
+ }
+ {
+ name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.1.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.1.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz";
+ sha1 = "537fa13f6f1674df745b0c00ec8fe4e99681c8f6";
+ };
+ }
+ {
+ name = "_babel_helper_function_name___helper_function_name_7.1.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_function_name___helper_function_name_7.1.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz";
+ sha1 = "a0ceb01685f73355d4360c1247f582bfafc8ff53";
+ };
+ }
+ {
+ name = "_babel_helper_get_function_arity___helper_get_function_arity_7.0.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_get_function_arity___helper_get_function_arity_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz";
+ sha1 = "83572d4320e2a4657263734113c42868b64e49c3";
+ };
+ }
+ {
+ name = "_babel_helper_hoist_variables___helper_hoist_variables_7.4.4.tgz";
+ path = fetchurl {
+ name = "_babel_helper_hoist_variables___helper_hoist_variables_7.4.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz";
+ sha1 = "0298b5f25c8c09c53102d52ac4a98f773eb2850a";
+ };
+ }
+ {
+ name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.5.5.tgz";
+ path = fetchurl {
+ name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.5.5.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz";
+ sha1 = "1fb5b8ec4453a93c439ee9fe3aeea4a84b76b590";
+ };
+ }
+ {
+ name = "_babel_helper_module_imports___helper_module_imports_7.0.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_module_imports___helper_module_imports_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz";
+ sha1 = "96081b7111e486da4d2cd971ad1a4fe216cc2e3d";
+ };
+ }
+ {
+ name = "_babel_helper_module_transforms___helper_module_transforms_7.5.5.tgz";
+ path = fetchurl {
+ name = "_babel_helper_module_transforms___helper_module_transforms_7.5.5.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz";
+ sha1 = "f84ff8a09038dcbca1fd4355661a500937165b4a";
+ };
+ }
+ {
+ name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.0.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz";
+ sha1 = "a2920c5702b073c15de51106200aa8cad20497d5";
+ };
+ }
+ {
+ name = "_babel_helper_plugin_utils___helper_plugin_utils_7.0.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_plugin_utils___helper_plugin_utils_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz";
+ sha1 = "bbb3fbee98661c569034237cc03967ba99b4f250";
+ };
+ }
+ {
+ name = "_babel_helper_regex___helper_regex_7.5.5.tgz";
+ path = fetchurl {
+ name = "_babel_helper_regex___helper_regex_7.5.5.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz";
+ sha1 = "0aa6824f7100a2e0e89c1527c23936c152cab351";
+ };
+ }
+ {
+ name = "_babel_helper_remap_async_to_generator___helper_remap_async_to_generator_7.1.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_remap_async_to_generator___helper_remap_async_to_generator_7.1.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz";
+ sha1 = "361d80821b6f38da75bd3f0785ece20a88c5fe7f";
+ };
+ }
+ {
+ name = "_babel_helper_replace_supers___helper_replace_supers_7.5.5.tgz";
+ path = fetchurl {
+ name = "_babel_helper_replace_supers___helper_replace_supers_7.5.5.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz";
+ sha1 = "f84ce43df031222d2bad068d2626cb5799c34bc2";
+ };
+ }
+ {
+ name = "_babel_helper_simple_access___helper_simple_access_7.1.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_simple_access___helper_simple_access_7.1.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz";
+ sha1 = "65eeb954c8c245beaa4e859da6188f39d71e585c";
+ };
+ }
+ {
+ name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.4.4.tgz";
+ path = fetchurl {
+ name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.4.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz";
+ sha1 = "ff94894a340be78f53f06af038b205c49d993677";
+ };
+ }
+ {
+ name = "_babel_helper_wrap_function___helper_wrap_function_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_wrap_function___helper_wrap_function_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz";
+ sha1 = "c4e0012445769e2815b55296ead43a958549f6fa";
+ };
+ }
+ {
+ name = "_babel_helpers___helpers_7.6.2.tgz";
+ path = fetchurl {
+ name = "_babel_helpers___helpers_7.6.2.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.6.2.tgz";
+ sha1 = "681ffe489ea4dcc55f23ce469e58e59c1c045153";
+ };
+ }
+ {
+ name = "_babel_highlight___highlight_7.5.0.tgz";
+ path = fetchurl {
+ name = "_babel_highlight___highlight_7.5.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz";
+ sha1 = "56d11312bd9248fa619591d02472be6e8cb32540";
+ };
+ }
+ {
+ name = "_babel_parser___parser_7.1.3.tgz";
+ path = fetchurl {
+ name = "_babel_parser___parser_7.1.3.tgz";
+ url = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.1.3.tgz";
+ sha1 = "2c92469bac2b7fbff810b67fca07bd138b48af77";
+ };
+ }
+ {
+ name = "_babel_parser___parser_7.6.2.tgz";
+ path = fetchurl {
+ name = "_babel_parser___parser_7.6.2.tgz";
+ url = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.6.2.tgz";
+ sha1 = "205e9c95e16ba3b8b96090677a67c9d6075b70a1";
+ };
+ }
+ {
+ name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz";
+ sha1 = "b289b306669dce4ad20b0252889a15768c9d417e";
+ };
+ }
+ {
+ name = "_babel_plugin_proposal_class_properties___plugin_proposal_class_properties_7.5.5.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_class_properties___plugin_proposal_class_properties_7.5.5.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.5.5.tgz";
+ sha1 = "a974cfae1e37c3110e71f3c6a2e48b8e71958cd4";
+ };
+ }
+ {
+ name = "_babel_plugin_proposal_decorators___plugin_proposal_decorators_7.4.4.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_decorators___plugin_proposal_decorators_7.4.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.4.4.tgz";
+ sha1 = "de9b2a1a8ab0196f378e2a82f10b6e2a36f21cc0";
+ };
+ }
+ {
+ name = "_babel_plugin_proposal_do_expressions___plugin_proposal_do_expressions_7.5.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_do_expressions___plugin_proposal_do_expressions_7.5.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-do-expressions/-/plugin-proposal-do-expressions-7.5.0.tgz";
+ sha1 = "ceb594d4a618545b00aa0b5cd61cad4aaaeb7a5a";
+ };
+ }
+ {
+ name = "_babel_plugin_proposal_dynamic_import___plugin_proposal_dynamic_import_7.5.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_dynamic_import___plugin_proposal_dynamic_import_7.5.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz";
+ sha1 = "e532202db4838723691b10a67b8ce509e397c506";
+ };
+ }
+ {
+ name = "_babel_plugin_proposal_export_default_from___plugin_proposal_export_default_from_7.5.2.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_export_default_from___plugin_proposal_export_default_from_7.5.2.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.5.2.tgz";
+ sha1 = "2c0ac2dcc36e3b2443fead2c3c5fc796fb1b5145";
+ };
+ }
+ {
+ name = "_babel_plugin_proposal_export_namespace_from___plugin_proposal_export_namespace_from_7.5.2.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_export_namespace_from___plugin_proposal_export_namespace_from_7.5.2.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.5.2.tgz";
+ sha1 = "ccd5ed05b06d700688ff1db01a9dd27155e0d2a0";
+ };
+ }
+ {
+ name = "_babel_plugin_proposal_function_bind___plugin_proposal_function_bind_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_function_bind___plugin_proposal_function_bind_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-function-bind/-/plugin-proposal-function-bind-7.2.0.tgz";
+ sha1 = "94dc2cdc505cafc4e225c0014335a01648056bf7";
+ };
+ }
+ {
+ name = "_babel_plugin_proposal_function_sent___plugin_proposal_function_sent_7.5.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_function_sent___plugin_proposal_function_sent_7.5.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-function-sent/-/plugin-proposal-function-sent-7.5.0.tgz";
+ sha1 = "39233aa801145e7d8072077cdb2d25f781c1ffd7";
+ };
+ }
+ {
+ name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz";
+ sha1 = "568ecc446c6148ae6b267f02551130891e29f317";
+ };
+ }
+ {
+ name = "_babel_plugin_proposal_logical_assignment_operators___plugin_proposal_logical_assignment_operators_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_logical_assignment_operators___plugin_proposal_logical_assignment_operators_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.2.0.tgz";
+ sha1 = "8a5cea6c42a7c87446959e02fff5fad012c56f57";
+ };
+ }
+ {
+ name = "_babel_plugin_proposal_nullish_coalescing_operator___plugin_proposal_nullish_coalescing_operator_7.4.4.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_nullish_coalescing_operator___plugin_proposal_nullish_coalescing_operator_7.4.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.4.4.tgz";
+ sha1 = "41c360d59481d88e0ce3a3f837df10121a769b39";
+ };
+ }
+ {
+ name = "_babel_plugin_proposal_numeric_separator___plugin_proposal_numeric_separator_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_numeric_separator___plugin_proposal_numeric_separator_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.2.0.tgz";
+ sha1 = "646854daf4cd22fd6733f6076013a936310443ac";
+ };
+ }
+ {
+ name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.6.2.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.6.2.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.6.2.tgz";
+ sha1 = "8ffccc8f3a6545e9f78988b6bf4fe881b88e8096";
+ };
+ }
+ {
+ name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz";
+ sha1 = "135d81edb68a081e55e56ec48541ece8065c38f5";
+ };
+ }
+ {
+ name = "_babel_plugin_proposal_optional_chaining___plugin_proposal_optional_chaining_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_optional_chaining___plugin_proposal_optional_chaining_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.2.0.tgz";
+ sha1 = "ae454f4c21c6c2ce8cb2397dc332ae8b420c5441";
+ };
+ }
+ {
+ name = "_babel_plugin_proposal_pipeline_operator___plugin_proposal_pipeline_operator_7.5.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_pipeline_operator___plugin_proposal_pipeline_operator_7.5.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-pipeline-operator/-/plugin-proposal-pipeline-operator-7.5.0.tgz";
+ sha1 = "4100ec55ef4f6a4c2490b5f5a4f2a22dfa272c06";
+ };
+ }
+ {
+ name = "_babel_plugin_proposal_private_methods___plugin_proposal_private_methods_7.6.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_private_methods___plugin_proposal_private_methods_7.6.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.6.0.tgz";
+ sha1 = "19ddc493c7b5d47afdd4291e740c609a83c9fae4";
+ };
+ }
+ {
+ name = "_babel_plugin_proposal_throw_expressions___plugin_proposal_throw_expressions_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_throw_expressions___plugin_proposal_throw_expressions_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-throw-expressions/-/plugin-proposal-throw-expressions-7.2.0.tgz";
+ sha1 = "2d9e452d370f139000e51db65d0a85dc60c64739";
+ };
+ }
+ {
+ name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.6.2.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.6.2.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.6.2.tgz";
+ sha1 = "05413762894f41bfe42b9a5e80919bd575dcc802";
+ };
+ }
+ {
+ name = "_babel_plugin_syntax_async_generators___plugin_syntax_async_generators_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_async_generators___plugin_syntax_async_generators_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz";
+ sha1 = "69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f";
+ };
+ }
+ {
+ name = "_babel_plugin_syntax_decorators___plugin_syntax_decorators_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_decorators___plugin_syntax_decorators_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.2.0.tgz";
+ sha1 = "c50b1b957dcc69e4b1127b65e1c33eef61570c1b";
+ };
+ }
+ {
+ name = "_babel_plugin_syntax_do_expressions___plugin_syntax_do_expressions_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_do_expressions___plugin_syntax_do_expressions_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-do-expressions/-/plugin-syntax-do-expressions-7.2.0.tgz";
+ sha1 = "f3d4b01be05ecde2892086d7cfd5f1fa1ead5a2a";
+ };
+ }
+ {
+ name = "_babel_plugin_syntax_dynamic_import___plugin_syntax_dynamic_import_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_dynamic_import___plugin_syntax_dynamic_import_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz";
+ sha1 = "69c159ffaf4998122161ad8ebc5e6d1f55df8612";
+ };
+ }
+ {
+ name = "_babel_plugin_syntax_export_default_from___plugin_syntax_export_default_from_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_export_default_from___plugin_syntax_export_default_from_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.2.0.tgz";
+ sha1 = "edd83b7adc2e0d059e2467ca96c650ab6d2f3820";
+ };
+ }
+ {
+ name = "_babel_plugin_syntax_export_namespace_from___plugin_syntax_export_namespace_from_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_export_namespace_from___plugin_syntax_export_namespace_from_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.2.0.tgz";
+ sha1 = "8d257838c6b3b779db52c0224443459bd27fb039";
+ };
+ }
+ {
+ name = "_babel_plugin_syntax_flow___plugin_syntax_flow_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_flow___plugin_syntax_flow_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.2.0.tgz";
+ sha1 = "a765f061f803bc48f240c26f8747faf97c26bf7c";
+ };
+ }
+ {
+ name = "_babel_plugin_syntax_function_bind___plugin_syntax_function_bind_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_function_bind___plugin_syntax_function_bind_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-function-bind/-/plugin-syntax-function-bind-7.2.0.tgz";
+ sha1 = "68fe85b0c0da67125f87bf239c68051b06c66309";
+ };
+ }
+ {
+ name = "_babel_plugin_syntax_function_sent___plugin_syntax_function_sent_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_function_sent___plugin_syntax_function_sent_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-function-sent/-/plugin-syntax-function-sent-7.2.0.tgz";
+ sha1 = "91474d4d400604e4c6cbd4d77cd6cb3b8565576c";
+ };
+ }
+ {
+ name = "_babel_plugin_syntax_import_meta___plugin_syntax_import_meta_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_import_meta___plugin_syntax_import_meta_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.2.0.tgz";
+ sha1 = "2333ef4b875553a3bcd1e93f8ebc09f5b9213a40";
+ };
+ }
+ {
+ name = "_babel_plugin_syntax_json_strings___plugin_syntax_json_strings_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_json_strings___plugin_syntax_json_strings_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz";
+ sha1 = "72bd13f6ffe1d25938129d2a186b11fd62951470";
+ };
+ }
+ {
+ name = "_babel_plugin_syntax_jsx___plugin_syntax_jsx_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_jsx___plugin_syntax_jsx_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz";
+ sha1 = "0b85a3b4bc7cdf4cc4b8bf236335b907ca22e7c7";
+ };
+ }
+ {
+ name = "_babel_plugin_syntax_logical_assignment_operators___plugin_syntax_logical_assignment_operators_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_logical_assignment_operators___plugin_syntax_logical_assignment_operators_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.2.0.tgz";
+ sha1 = "fcab7388530e96c6f277ce494c55caa6c141fcfb";
+ };
+ }
+ {
+ name = "_babel_plugin_syntax_nullish_coalescing_operator___plugin_syntax_nullish_coalescing_operator_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_nullish_coalescing_operator___plugin_syntax_nullish_coalescing_operator_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.2.0.tgz";
+ sha1 = "f75083dfd5ade73e783db729bbd87e7b9efb7624";
+ };
+ }
+ {
+ name = "_babel_plugin_syntax_numeric_separator___plugin_syntax_numeric_separator_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_numeric_separator___plugin_syntax_numeric_separator_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.2.0.tgz";
+ sha1 = "7470fe070c2944469a756752a69a6963135018be";
+ };
+ }
+ {
+ name = "_babel_plugin_syntax_object_rest_spread___plugin_syntax_object_rest_spread_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_object_rest_spread___plugin_syntax_object_rest_spread_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz";
+ sha1 = "3b7a3e733510c57e820b9142a6579ac8b0dfad2e";
+ };
+ }
+ {
+ name = "_babel_plugin_syntax_optional_catch_binding___plugin_syntax_optional_catch_binding_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_optional_catch_binding___plugin_syntax_optional_catch_binding_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz";
+ sha1 = "a94013d6eda8908dfe6a477e7f9eda85656ecf5c";
+ };
+ }
+ {
+ name = "_babel_plugin_syntax_optional_chaining___plugin_syntax_optional_chaining_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_optional_chaining___plugin_syntax_optional_chaining_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.2.0.tgz";
+ sha1 = "a59d6ae8c167e7608eaa443fda9fa8fa6bf21dff";
+ };
+ }
+ {
+ name = "_babel_plugin_syntax_pipeline_operator___plugin_syntax_pipeline_operator_7.5.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_pipeline_operator___plugin_syntax_pipeline_operator_7.5.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-pipeline-operator/-/plugin-syntax-pipeline-operator-7.5.0.tgz";
+ sha1 = "8ea7c2c22847c797748bf07752722a317079dc1e";
+ };
+ }
+ {
+ name = "_babel_plugin_syntax_throw_expressions___plugin_syntax_throw_expressions_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_throw_expressions___plugin_syntax_throw_expressions_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-throw-expressions/-/plugin-syntax-throw-expressions-7.2.0.tgz";
+ sha1 = "79001ee2afe1b174b1733cdc2fc69c9a46a0f1f8";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz";
+ sha1 = "9aeafbe4d6ffc6563bf8f8372091628f00779550";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.5.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.5.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz";
+ sha1 = "89a3848a0166623b5bc481164b5936ab947e887e";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz";
+ sha1 = "5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.6.2.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.6.2.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.2.tgz";
+ sha1 = "96c33ab97a9ae500cc6f5b19e04a7e6553360a79";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_classes___plugin_transform_classes_7.5.5.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_classes___plugin_transform_classes_7.5.5.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz";
+ sha1 = "d094299d9bd680a14a2a0edae38305ad60fb4de9";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz";
+ sha1 = "83a7df6a658865b1c8f641d510c6f3af220216da";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.6.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.6.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz";
+ sha1 = "44bbe08b57f4480094d57d9ffbcd96d309075ba6";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.6.2.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.6.2.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.6.2.tgz";
+ sha1 = "44abb948b88f0199a627024e1508acaf8dc9b2f9";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.5.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.5.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz";
+ sha1 = "c5dbf5106bf84cdf691222c0974c12b1df931853";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz";
+ sha1 = "a63868289e5b4007f7054d46491af51435766008";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_flow_strip_types___plugin_transform_flow_strip_types_7.4.4.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_flow_strip_types___plugin_transform_flow_strip_types_7.4.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.4.4.tgz";
+ sha1 = "d267a081f49a8705fc9146de0768c6b58dccd8f7";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.4.4.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.4.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz";
+ sha1 = "0267fc735e24c808ba173866c6c4d1440fc3c556";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.4.4.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.4.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz";
+ sha1 = "e1436116abb0610c2259094848754ac5230922ad";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_literals___plugin_transform_literals_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_literals___plugin_transform_literals_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz";
+ sha1 = "690353e81f9267dad4fd8cfd77eafa86aba53ea1";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_member_expression_literals___plugin_transform_member_expression_literals_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_member_expression_literals___plugin_transform_member_expression_literals_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz";
+ sha1 = "fa10aa5c58a2cb6afcf2c9ffa8cb4d8b3d489a2d";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.5.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.5.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz";
+ sha1 = "ef00435d46da0a5961aa728a1d2ecff063e4fb91";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.6.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.6.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz";
+ sha1 = "39dfe957de4420445f1fcf88b68a2e4aa4515486";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.5.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.5.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz";
+ sha1 = "e75266a13ef94202db2a0620977756f51d52d249";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz";
+ sha1 = "7678ce75169f0877b8eb2235538c074268dd01ae";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_named_capturing_groups_regex___plugin_transform_named_capturing_groups_regex_7.6.2.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_named_capturing_groups_regex___plugin_transform_named_capturing_groups_regex_7.6.2.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.6.2.tgz";
+ sha1 = "c1ca0bb84b94f385ca302c3932e870b0fb0e522b";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.4.4.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.4.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz";
+ sha1 = "18d120438b0cc9ee95a47f2c72bc9768fbed60a5";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.5.5.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.5.5.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz";
+ sha1 = "c70021df834073c65eb613b8679cc4a381d1a9f9";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.4.4.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.4.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz";
+ sha1 = "7556cf03f318bd2719fe4c922d2d808be5571e16";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_property_literals___plugin_transform_property_literals_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_property_literals___plugin_transform_property_literals_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz";
+ sha1 = "03e33f653f5b25c4eb572c98b9485055b389e905";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_react_display_name___plugin_transform_react_display_name_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_react_display_name___plugin_transform_react_display_name_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz";
+ sha1 = "ebfaed87834ce8dc4279609a4f0c324c156e3eb0";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_react_jsx_self___plugin_transform_react_jsx_self_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_react_jsx_self___plugin_transform_react_jsx_self_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.2.0.tgz";
+ sha1 = "461e21ad9478f1031dd5e276108d027f1b5240ba";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_react_jsx_source___plugin_transform_react_jsx_source_7.5.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_react_jsx_source___plugin_transform_react_jsx_source_7.5.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.5.0.tgz";
+ sha1 = "583b10c49cf057e237085bcbd8cc960bd83bd96b";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_react_jsx___plugin_transform_react_jsx_7.3.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_react_jsx___plugin_transform_react_jsx_7.3.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.3.0.tgz";
+ sha1 = "f2cab99026631c767e2745a5368b331cfe8f5290";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.4.5.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.4.5.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz";
+ sha1 = "629dc82512c55cee01341fb27bdfcb210354680f";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_reserved_words___plugin_transform_reserved_words_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_reserved_words___plugin_transform_reserved_words_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz";
+ sha1 = "4792af87c998a49367597d07fedf02636d2e1634";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz";
+ sha1 = "6333aee2f8d6ee7e28615457298934a3b46198f0";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_spread___plugin_transform_spread_7.6.2.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_spread___plugin_transform_spread_7.6.2.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.6.2.tgz";
+ sha1 = "fc77cf798b24b10c46e1b51b1b88c2bf661bb8dd";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz";
+ sha1 = "a1e454b5995560a9c1e0d537dfc15061fd2687e1";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.4.4.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.4.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz";
+ sha1 = "9d28fea7bbce637fb7612a0750989d8321d4bcb0";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz";
+ sha1 = "117d2bcec2fbf64b4b59d1f9819894682d29f2b2";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.6.2.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.6.2.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.6.2.tgz";
+ sha1 = "b692aad888a7e8d8b1b214be6b9dc03d5031f698";
+ };
+ }
+ {
+ name = "_babel_preset_env___preset_env_7.6.2.tgz";
+ path = fetchurl {
+ name = "_babel_preset_env___preset_env_7.6.2.tgz";
+ url = "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.6.2.tgz";
+ sha1 = "abbb3ed785c7fe4220d4c82a53621d71fc0c75d3";
+ };
+ }
+ {
+ name = "_babel_preset_flow___preset_flow_7.0.0.tgz";
+ path = fetchurl {
+ name = "_babel_preset_flow___preset_flow_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.0.0.tgz";
+ sha1 = "afd764835d9535ec63d8c7d4caf1c06457263da2";
+ };
+ }
+ {
+ name = "_babel_preset_react___preset_react_7.0.0.tgz";
+ path = fetchurl {
+ name = "_babel_preset_react___preset_react_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.0.0.tgz";
+ sha1 = "e86b4b3d99433c7b3e9e91747e2653958bc6b3c0";
+ };
+ }
+ {
+ name = "_babel_preset_stage_0___preset_stage_0_7.0.0.tgz";
+ path = fetchurl {
+ name = "_babel_preset_stage_0___preset_stage_0_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/preset-stage-0/-/preset-stage-0-7.0.0.tgz";
+ sha1 = "999aaec79ee8f0a763042c68c06539c97c6e0646";
+ };
+ }
+ {
+ name = "_babel_standalone___standalone_7.5.5.tgz";
+ path = fetchurl {
+ name = "_babel_standalone___standalone_7.5.5.tgz";
+ url = "https://registry.yarnpkg.com/@babel/standalone/-/standalone-7.5.5.tgz";
+ sha1 = "9d3143f6078ff408db694a4254bd6f03c5c33962";
+ };
+ }
+ {
+ name = "_babel_template___template_7.6.0.tgz";
+ path = fetchurl {
+ name = "_babel_template___template_7.6.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/template/-/template-7.6.0.tgz";
+ sha1 = "7f0159c7f5012230dad64cca42ec9bdb5c9536e6";
+ };
+ }
+ {
+ name = "_babel_traverse___traverse_7.6.2.tgz";
+ path = fetchurl {
+ name = "_babel_traverse___traverse_7.6.2.tgz";
+ url = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.6.2.tgz";
+ sha1 = "b0e2bfd401d339ce0e6c05690206d1e11502ce2c";
+ };
+ }
+ {
+ name = "_babel_types___types_7.6.1.tgz";
+ path = fetchurl {
+ name = "_babel_types___types_7.6.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/types/-/types-7.6.1.tgz";
+ sha1 = "53abf3308add3ac2a2884d539151c57c4b3ac648";
+ };
+ }
+ {
+ name = "_braintree_sanitize_url___sanitize_url_3.1.0.tgz";
+ path = fetchurl {
+ name = "_braintree_sanitize_url___sanitize_url_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-3.1.0.tgz";
+ sha1 = "8ff71d51053cd5ee4981e5a501d80a536244f7fd";
+ };
+ }
+ {
+ name = "_cnakazawa_watch___watch_1.0.3.tgz";
+ path = fetchurl {
+ name = "_cnakazawa_watch___watch_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.3.tgz";
+ sha1 = "099139eaec7ebf07a27c1786a3ff64f39464d2ef";
+ };
+ }
+ {
+ name = "_gitlab_eslint_config___eslint_config_1.6.0.tgz";
+ path = fetchurl {
+ name = "_gitlab_eslint_config___eslint_config_1.6.0.tgz";
+ url = "https://registry.yarnpkg.com/@gitlab/eslint-config/-/eslint-config-1.6.0.tgz";
+ sha1 = "1fd247d6ab477d53d4c330e05f007e3afa303689";
+ };
+ }
+ {
+ name = "_gitlab_eslint_plugin_i18n___eslint_plugin_i18n_1.1.0.tgz";
+ path = fetchurl {
+ name = "_gitlab_eslint_plugin_i18n___eslint_plugin_i18n_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/@gitlab/eslint-plugin-i18n/-/eslint-plugin-i18n-1.1.0.tgz";
+ sha1 = "e494d599e644ce3a094ea85f87dbbda41a924c5e";
+ };
+ }
+ {
+ name = "_gitlab_eslint_plugin_vue_i18n___eslint_plugin_vue_i18n_1.2.0.tgz";
+ path = fetchurl {
+ name = "_gitlab_eslint_plugin_vue_i18n___eslint_plugin_vue_i18n_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@gitlab/eslint-plugin-vue-i18n/-/eslint-plugin-vue-i18n-1.2.0.tgz";
+ sha1 = "6dcd8bf6bdd7a31c1c4c2c4114762508af435836";
+ };
+ }
+ {
+ name = "_gitlab_svgs___svgs_1.78.0.tgz";
+ path = fetchurl {
+ name = "_gitlab_svgs___svgs_1.78.0.tgz";
+ url = "https://registry.yarnpkg.com/@gitlab/svgs/-/svgs-1.78.0.tgz";
+ sha1 = "469493bd6cdd254eb5d1271edeab22bbbee2f4c4";
+ };
+ }
+ {
+ name = "_gitlab_ui___ui_5.36.0.tgz";
+ path = fetchurl {
+ name = "_gitlab_ui___ui_5.36.0.tgz";
+ url = "https://registry.yarnpkg.com/@gitlab/ui/-/ui-5.36.0.tgz";
+ sha1 = "3087b23c138ad1c222f6b047e533f253371bc618";
+ };
+ }
+ {
+ name = "_gitlab_visual_review_tools___visual_review_tools_1.0.3.tgz";
+ path = fetchurl {
+ name = "_gitlab_visual_review_tools___visual_review_tools_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/@gitlab/visual-review-tools/-/visual-review-tools-1.0.3.tgz";
+ sha1 = "b49c4a6fd8af3a1517d7e7d04096562f8bcb5d14";
+ };
+ }
+ {
+ name = "_gitlab_vue_toasted___vue_toasted_1.2.1.tgz";
+ path = fetchurl {
+ name = "_gitlab_vue_toasted___vue_toasted_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/@gitlab/vue-toasted/-/vue-toasted-1.2.1.tgz";
+ sha1 = "f407b5aa710863e5b7f021f4a1f66160331ab263";
+ };
+ }
+ {
+ name = "_jest_console___console_24.7.1.tgz";
+ path = fetchurl {
+ name = "_jest_console___console_24.7.1.tgz";
+ url = "https://registry.yarnpkg.com/@jest/console/-/console-24.7.1.tgz";
+ sha1 = "32a9e42535a97aedfe037e725bd67e954b459545";
+ };
+ }
+ {
+ name = "_jest_core___core_24.8.0.tgz";
+ path = fetchurl {
+ name = "_jest_core___core_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/@jest/core/-/core-24.8.0.tgz";
+ sha1 = "fbbdcd42a41d0d39cddbc9f520c8bab0c33eed5b";
+ };
+ }
+ {
+ name = "_jest_environment___environment_24.8.0.tgz";
+ path = fetchurl {
+ name = "_jest_environment___environment_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/@jest/environment/-/environment-24.8.0.tgz";
+ sha1 = "0342261383c776bdd652168f68065ef144af0eac";
+ };
+ }
+ {
+ name = "_jest_fake_timers___fake_timers_24.8.0.tgz";
+ path = fetchurl {
+ name = "_jest_fake_timers___fake_timers_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.8.0.tgz";
+ sha1 = "2e5b80a4f78f284bcb4bd5714b8e10dd36a8d3d1";
+ };
+ }
+ {
+ name = "_jest_reporters___reporters_24.8.0.tgz";
+ path = fetchurl {
+ name = "_jest_reporters___reporters_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.8.0.tgz";
+ sha1 = "075169cd029bddec54b8f2c0fc489fd0b9e05729";
+ };
+ }
+ {
+ name = "_jest_source_map___source_map_24.3.0.tgz";
+ path = fetchurl {
+ name = "_jest_source_map___source_map_24.3.0.tgz";
+ url = "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.3.0.tgz";
+ sha1 = "563be3aa4d224caf65ff77edc95cd1ca4da67f28";
+ };
+ }
+ {
+ name = "_jest_test_result___test_result_24.8.0.tgz";
+ path = fetchurl {
+ name = "_jest_test_result___test_result_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.8.0.tgz";
+ sha1 = "7675d0aaf9d2484caa65e048d9b467d160f8e9d3";
+ };
+ }
+ {
+ name = "_jest_test_sequencer___test_sequencer_24.8.0.tgz";
+ path = fetchurl {
+ name = "_jest_test_sequencer___test_sequencer_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.8.0.tgz";
+ sha1 = "2f993bcf6ef5eb4e65e8233a95a3320248cf994b";
+ };
+ }
+ {
+ name = "_jest_transform___transform_24.8.0.tgz";
+ path = fetchurl {
+ name = "_jest_transform___transform_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/@jest/transform/-/transform-24.8.0.tgz";
+ sha1 = "628fb99dce4f9d254c6fd9341e3eea262e06fef5";
+ };
+ }
+ {
+ name = "_jest_types___types_24.8.0.tgz";
+ path = fetchurl {
+ name = "_jest_types___types_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/@jest/types/-/types-24.8.0.tgz";
+ sha1 = "f31e25948c58f0abd8c845ae26fcea1491dea7ad";
+ };
+ }
+ {
+ name = "_mrmlnc_readdir_enhanced___readdir_enhanced_2.2.1.tgz";
+ path = fetchurl {
+ name = "_mrmlnc_readdir_enhanced___readdir_enhanced_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz";
+ sha1 = "524af240d1a360527b730475ecfa1344aa540dde";
+ };
+ }
+ {
+ name = "_nodelib_fs.stat___fs.stat_1.1.3.tgz";
+ path = fetchurl {
+ name = "_nodelib_fs.stat___fs.stat_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz";
+ sha1 = "2b5a3ab3f918cca48a8c754c08168e3f03eba61b";
+ };
+ }
+ {
+ name = "_nuxt_opencollective___opencollective_0.2.2.tgz";
+ path = fetchurl {
+ name = "_nuxt_opencollective___opencollective_0.2.2.tgz";
+ url = "https://registry.yarnpkg.com/@nuxt/opencollective/-/opencollective-0.2.2.tgz";
+ sha1 = "17adc7d380457379cd14cbb64a435ea196cc4a6e";
+ };
+ }
+ {
+ name = "_types_anymatch___anymatch_1.3.0.tgz";
+ path = fetchurl {
+ name = "_types_anymatch___anymatch_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.0.tgz";
+ sha1 = "d1d55958d1fccc5527d4aba29fc9c4b942f563ff";
+ };
+ }
+ {
+ name = "_types_babel__core___babel__core_7.1.2.tgz";
+ path = fetchurl {
+ name = "_types_babel__core___babel__core_7.1.2.tgz";
+ url = "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.2.tgz";
+ sha1 = "608c74f55928033fce18b99b213c16be4b3d114f";
+ };
+ }
+ {
+ name = "_types_babel__generator___babel__generator_7.0.2.tgz";
+ path = fetchurl {
+ name = "_types_babel__generator___babel__generator_7.0.2.tgz";
+ url = "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.0.2.tgz";
+ sha1 = "d2112a6b21fad600d7674274293c85dce0cb47fc";
+ };
+ }
+ {
+ name = "_types_babel__template___babel__template_7.0.2.tgz";
+ path = fetchurl {
+ name = "_types_babel__template___babel__template_7.0.2.tgz";
+ url = "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.0.2.tgz";
+ sha1 = "4ff63d6b52eddac1de7b975a5223ed32ecea9307";
+ };
+ }
+ {
+ name = "_types_babel__traverse___babel__traverse_7.0.6.tgz";
+ path = fetchurl {
+ name = "_types_babel__traverse___babel__traverse_7.0.6.tgz";
+ url = "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.6.tgz";
+ sha1 = "328dd1a8fc4cfe3c8458be9477b219ea158fd7b2";
+ };
+ }
+ {
+ name = "_types_events___events_1.2.0.tgz";
+ path = fetchurl {
+ name = "_types_events___events_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@types/events/-/events-1.2.0.tgz";
+ sha1 = "81a6731ce4df43619e5c8c945383b3e62a89ea86";
+ };
+ }
+ {
+ name = "_types_glob___glob_7.1.1.tgz";
+ path = fetchurl {
+ name = "_types_glob___glob_7.1.1.tgz";
+ url = "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz";
+ sha1 = "aa59a1c6e3fbc421e07ccd31a944c30eba521575";
+ };
+ }
+ {
+ name = "_types_istanbul_lib_coverage___istanbul_lib_coverage_2.0.1.tgz";
+ path = fetchurl {
+ name = "_types_istanbul_lib_coverage___istanbul_lib_coverage_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz";
+ sha1 = "42995b446db9a48a11a07ec083499a860e9138ff";
+ };
+ }
+ {
+ name = "_types_istanbul_lib_report___istanbul_lib_report_1.1.1.tgz";
+ path = fetchurl {
+ name = "_types_istanbul_lib_report___istanbul_lib_report_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz";
+ sha1 = "e5471e7fa33c61358dd38426189c037a58433b8c";
+ };
+ }
+ {
+ name = "_types_istanbul_reports___istanbul_reports_1.1.1.tgz";
+ path = fetchurl {
+ name = "_types_istanbul_reports___istanbul_reports_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz";
+ sha1 = "7a8cbf6a406f36c8add871625b278eaf0b0d255a";
+ };
+ }
+ {
+ name = "_types_jquery___jquery_2.0.48.tgz";
+ path = fetchurl {
+ name = "_types_jquery___jquery_2.0.48.tgz";
+ url = "https://registry.yarnpkg.com/@types/jquery/-/jquery-2.0.48.tgz";
+ sha1 = "3e90d8cde2d29015e5583017f7830cb3975b2eef";
+ };
+ }
+ {
+ name = "_types_minimatch___minimatch_3.0.3.tgz";
+ path = fetchurl {
+ name = "_types_minimatch___minimatch_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz";
+ sha1 = "3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d";
+ };
+ }
+ {
+ name = "_types_node___node_10.12.9.tgz";
+ path = fetchurl {
+ name = "_types_node___node_10.12.9.tgz";
+ url = "https://registry.yarnpkg.com/@types/node/-/node-10.12.9.tgz";
+ sha1 = "a07bfa74331471e1dc22a47eb72026843f7b95c8";
+ };
+ }
+ {
+ name = "_types_parse5___parse5_5.0.0.tgz";
+ path = fetchurl {
+ name = "_types_parse5___parse5_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@types/parse5/-/parse5-5.0.0.tgz";
+ sha1 = "9ae2106efc443d7c1e26570aa8247828c9c80f11";
+ };
+ }
+ {
+ name = "_types_semver___semver_5.5.0.tgz";
+ path = fetchurl {
+ name = "_types_semver___semver_5.5.0.tgz";
+ url = "https://registry.yarnpkg.com/@types/semver/-/semver-5.5.0.tgz";
+ sha1 = "146c2a29ee7d3bae4bf2fcb274636e264c813c45";
+ };
+ }
+ {
+ name = "_types_stack_utils___stack_utils_1.0.1.tgz";
+ path = fetchurl {
+ name = "_types_stack_utils___stack_utils_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz";
+ sha1 = "0a851d3bd96498fa25c33ab7278ed3bd65f06c3e";
+ };
+ }
+ {
+ name = "_types_tapable___tapable_1.0.4.tgz";
+ path = fetchurl {
+ name = "_types_tapable___tapable_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.4.tgz";
+ sha1 = "b4ffc7dc97b498c969b360a41eee247f82616370";
+ };
+ }
+ {
+ name = "_types_uglify_js___uglify_js_3.0.4.tgz";
+ path = fetchurl {
+ name = "_types_uglify_js___uglify_js_3.0.4.tgz";
+ url = "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.0.4.tgz";
+ sha1 = "96beae23df6f561862a830b4288a49e86baac082";
+ };
+ }
+ {
+ name = "_types_unist___unist_2.0.3.tgz";
+ path = fetchurl {
+ name = "_types_unist___unist_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz";
+ sha1 = "9c088679876f374eb5983f150d4787aa6fb32d7e";
+ };
+ }
+ {
+ name = "_types_vfile_message___vfile_message_1.0.1.tgz";
+ path = fetchurl {
+ name = "_types_vfile_message___vfile_message_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/@types/vfile-message/-/vfile-message-1.0.1.tgz";
+ sha1 = "e1e9895cc6b36c462d4244e64e6d0b6eaf65355a";
+ };
+ }
+ {
+ name = "_types_vfile___vfile_3.0.2.tgz";
+ path = fetchurl {
+ name = "_types_vfile___vfile_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/@types/vfile/-/vfile-3.0.2.tgz";
+ sha1 = "19c18cd232df11ce6fa6ad80259bc86c366b09b9";
+ };
+ }
+ {
+ name = "_types_webpack___webpack_4.4.23.tgz";
+ path = fetchurl {
+ name = "_types_webpack___webpack_4.4.23.tgz";
+ url = "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.4.23.tgz";
+ sha1 = "059d6f4598cfd65ddee0e2db38317ef989696712";
+ };
+ }
+ {
+ name = "_types_yargs___yargs_12.0.12.tgz";
+ path = fetchurl {
+ name = "_types_yargs___yargs_12.0.12.tgz";
+ url = "https://registry.yarnpkg.com/@types/yargs/-/yargs-12.0.12.tgz";
+ sha1 = "45dd1d0638e8c8f153e87d296907659296873916";
+ };
+ }
+ {
+ name = "_types_zen_observable___zen_observable_0.8.0.tgz";
+ path = fetchurl {
+ name = "_types_zen_observable___zen_observable_0.8.0.tgz";
+ url = "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.0.tgz";
+ sha1 = "8b63ab7f1aa5321248aad5ac890a485656dcea4d";
+ };
+ }
+ {
+ name = "_vue_component_compiler_utils___component_compiler_utils_2.6.0.tgz";
+ path = fetchurl {
+ name = "_vue_component_compiler_utils___component_compiler_utils_2.6.0.tgz";
+ url = "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-2.6.0.tgz";
+ sha1 = "aa46d2a6f7647440b0b8932434d22f12371e543b";
+ };
+ }
+ {
+ name = "_vue_component_compiler_utils___component_compiler_utils_3.0.0.tgz";
+ path = fetchurl {
+ name = "_vue_component_compiler_utils___component_compiler_utils_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.0.0.tgz";
+ sha1 = "d16fa26b836c06df5baaeb45f3d80afc47e35634";
+ };
+ }
+ {
+ name = "_vue_test_utils___test_utils_1.0.0_beta.25.tgz";
+ path = fetchurl {
+ name = "_vue_test_utils___test_utils_1.0.0_beta.25.tgz";
+ url = "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-1.0.0-beta.25.tgz";
+ sha1 = "4703076de3076bac42cdd242cd53e6fb8752ed8c";
+ };
+ }
+ {
+ name = "_webassemblyjs_ast___ast_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_ast___ast_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz";
+ sha1 = "51b1c5fe6576a34953bf4b253df9f0d490d9e359";
+ };
+ }
+ {
+ name = "_webassemblyjs_floating_point_hex_parser___floating_point_hex_parser_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_floating_point_hex_parser___floating_point_hex_parser_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz";
+ sha1 = "1ba926a2923613edce496fd5b02e8ce8a5f49721";
+ };
+ }
+ {
+ name = "_webassemblyjs_helper_api_error___helper_api_error_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_helper_api_error___helper_api_error_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz";
+ sha1 = "c49dad22f645227c5edb610bdb9697f1aab721f7";
+ };
+ }
+ {
+ name = "_webassemblyjs_helper_buffer___helper_buffer_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_helper_buffer___helper_buffer_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz";
+ sha1 = "fea93e429863dd5e4338555f42292385a653f204";
+ };
+ }
+ {
+ name = "_webassemblyjs_helper_code_frame___helper_code_frame_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_helper_code_frame___helper_code_frame_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz";
+ sha1 = "9a740ff48e3faa3022b1dff54423df9aa293c25e";
+ };
+ }
+ {
+ name = "_webassemblyjs_helper_fsm___helper_fsm_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_helper_fsm___helper_fsm_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz";
+ sha1 = "ba0b7d3b3f7e4733da6059c9332275d860702452";
+ };
+ }
+ {
+ name = "_webassemblyjs_helper_module_context___helper_module_context_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_helper_module_context___helper_module_context_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz";
+ sha1 = "def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245";
+ };
+ }
+ {
+ name = "_webassemblyjs_helper_wasm_bytecode___helper_wasm_bytecode_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_helper_wasm_bytecode___helper_wasm_bytecode_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz";
+ sha1 = "537a750eddf5c1e932f3744206551c91c1b93e61";
+ };
+ }
+ {
+ name = "_webassemblyjs_helper_wasm_section___helper_wasm_section_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_helper_wasm_section___helper_wasm_section_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz";
+ sha1 = "74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf";
+ };
+ }
+ {
+ name = "_webassemblyjs_ieee754___ieee754_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_ieee754___ieee754_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz";
+ sha1 = "712329dbef240f36bf57bd2f7b8fb9bf4154421e";
+ };
+ }
+ {
+ name = "_webassemblyjs_leb128___leb128_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_leb128___leb128_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz";
+ sha1 = "044edeb34ea679f3e04cd4fd9824d5e35767ae10";
+ };
+ }
+ {
+ name = "_webassemblyjs_utf8___utf8_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_utf8___utf8_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz";
+ sha1 = "a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc";
+ };
+ }
+ {
+ name = "_webassemblyjs_wasm_edit___wasm_edit_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_wasm_edit___wasm_edit_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz";
+ sha1 = "962da12aa5acc1c131c81c4232991c82ce56e01a";
+ };
+ }
+ {
+ name = "_webassemblyjs_wasm_gen___wasm_gen_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_wasm_gen___wasm_gen_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz";
+ sha1 = "54840766c2c1002eb64ed1abe720aded714f98bc";
+ };
+ }
+ {
+ name = "_webassemblyjs_wasm_opt___wasm_opt_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_wasm_opt___wasm_opt_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz";
+ sha1 = "b24d9f6ba50394af1349f510afa8ffcb8a63d264";
+ };
+ }
+ {
+ name = "_webassemblyjs_wasm_parser___wasm_parser_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_wasm_parser___wasm_parser_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz";
+ sha1 = "21576f0ec88b91427357b8536383668ef7c66b8d";
+ };
+ }
+ {
+ name = "_webassemblyjs_wast_parser___wast_parser_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_wast_parser___wast_parser_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz";
+ sha1 = "e10eecd542d0e7bd394f6827c49f3df6d4eefb8c";
+ };
+ }
+ {
+ name = "_webassemblyjs_wast_printer___wast_printer_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_wast_printer___wast_printer_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz";
+ sha1 = "114bbc481fd10ca0e23b3560fa812748b0bae5bc";
+ };
+ }
+ {
+ name = "_xtuc_ieee754___ieee754_1.2.0.tgz";
+ path = fetchurl {
+ name = "_xtuc_ieee754___ieee754_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz";
+ sha1 = "eef014a3145ae477a1cbc00cd1e552336dceb790";
+ };
+ }
+ {
+ name = "_xtuc_long___long_4.2.2.tgz";
+ path = fetchurl {
+ name = "_xtuc_long___long_4.2.2.tgz";
+ url = "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz";
+ sha1 = "d291c6a4e97989b5c61d9acf396ae4fe133a718d";
+ };
+ }
+ {
+ name = "_yarnpkg_lockfile___lockfile_1.1.0.tgz";
+ path = fetchurl {
+ name = "_yarnpkg_lockfile___lockfile_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz";
+ sha1 = "e77a97fbd345b76d83245edcd17d393b1b41fb31";
+ };
+ }
+ {
+ name = "JSONStream___JSONStream_1.3.5.tgz";
+ path = fetchurl {
+ name = "JSONStream___JSONStream_1.3.5.tgz";
+ url = "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz";
+ sha1 = "3208c1f08d3a4d99261ab64f92302bc15e111ca0";
+ };
+ }
+ {
+ name = "abab___abab_2.0.0.tgz";
+ path = fetchurl {
+ name = "abab___abab_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/abab/-/abab-2.0.0.tgz";
+ sha1 = "aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f";
+ };
+ }
+ {
+ name = "abbrev___abbrev_1.0.9.tgz";
+ path = fetchurl {
+ name = "abbrev___abbrev_1.0.9.tgz";
+ url = "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz";
+ sha1 = "91b4792588a7738c25f35dd6f63752a2f8776135";
+ };
+ }
+ {
+ name = "accepts___accepts_1.3.7.tgz";
+ path = fetchurl {
+ name = "accepts___accepts_1.3.7.tgz";
+ url = "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz";
+ sha1 = "531bc726517a3b2b41f850021c6cc15eaab507cd";
+ };
+ }
+ {
+ name = "acorn_globals___acorn_globals_4.3.0.tgz";
+ path = fetchurl {
+ name = "acorn_globals___acorn_globals_4.3.0.tgz";
+ url = "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.0.tgz";
+ sha1 = "e3b6f8da3c1552a95ae627571f7dd6923bb54103";
+ };
+ }
+ {
+ name = "acorn_jsx___acorn_jsx_5.0.1.tgz";
+ path = fetchurl {
+ name = "acorn_jsx___acorn_jsx_5.0.1.tgz";
+ url = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz";
+ sha1 = "32a064fd925429216a09b141102bfdd185fae40e";
+ };
+ }
+ {
+ name = "acorn_walk___acorn_walk_6.2.0.tgz";
+ path = fetchurl {
+ name = "acorn_walk___acorn_walk_6.2.0.tgz";
+ url = "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz";
+ sha1 = "123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c";
+ };
+ }
+ {
+ name = "acorn___acorn_5.7.3.tgz";
+ path = fetchurl {
+ name = "acorn___acorn_5.7.3.tgz";
+ url = "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz";
+ sha1 = "67aa231bf8812974b85235a96771eb6bd07ea279";
+ };
+ }
+ {
+ name = "acorn___acorn_6.3.0.tgz";
+ path = fetchurl {
+ name = "acorn___acorn_6.3.0.tgz";
+ url = "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz";
+ sha1 = "0087509119ffa4fc0a0041d1e93a417e68cb856e";
+ };
+ }
+ {
+ name = "after___after_0.8.2.tgz";
+ path = fetchurl {
+ name = "after___after_0.8.2.tgz";
+ url = "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz";
+ sha1 = "fedb394f9f0e02aa9768e702bda23b505fae7e1f";
+ };
+ }
+ {
+ name = "ajv_errors___ajv_errors_1.0.0.tgz";
+ path = fetchurl {
+ name = "ajv_errors___ajv_errors_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.0.tgz";
+ sha1 = "ecf021fa108fd17dfb5e6b383f2dd233e31ffc59";
+ };
+ }
+ {
+ name = "ajv_keywords___ajv_keywords_3.4.1.tgz";
+ path = fetchurl {
+ name = "ajv_keywords___ajv_keywords_3.4.1.tgz";
+ url = "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz";
+ sha1 = "ef916e271c64ac12171fd8384eaae6b2345854da";
+ };
+ }
+ {
+ name = "ajv___ajv_6.10.2.tgz";
+ path = fetchurl {
+ name = "ajv___ajv_6.10.2.tgz";
+ url = "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz";
+ sha1 = "d3cea04d6b017b2894ad69040fec8b623eb4bd52";
+ };
+ }
+ {
+ name = "amdefine___amdefine_1.0.1.tgz";
+ path = fetchurl {
+ name = "amdefine___amdefine_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz";
+ sha1 = "4a5282ac164729e93619bcfd3ad151f817ce91f5";
+ };
+ }
+ {
+ name = "ansi_align___ansi_align_2.0.0.tgz";
+ path = fetchurl {
+ name = "ansi_align___ansi_align_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz";
+ sha1 = "c36aeccba563b89ceb556f3690f0b1d9e3547f7f";
+ };
+ }
+ {
+ name = "ansi_colors___ansi_colors_3.2.4.tgz";
+ path = fetchurl {
+ name = "ansi_colors___ansi_colors_3.2.4.tgz";
+ url = "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz";
+ sha1 = "e3a3da4bfbae6c86a9c285625de124a234026fbf";
+ };
+ }
+ {
+ name = "ansi_escapes___ansi_escapes_3.2.0.tgz";
+ path = fetchurl {
+ name = "ansi_escapes___ansi_escapes_3.2.0.tgz";
+ url = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz";
+ sha1 = "8780b98ff9dbf5638152d1f1fe5c1d7b4442976b";
+ };
+ }
+ {
+ name = "ansi_html___ansi_html_0.0.7.tgz";
+ path = fetchurl {
+ name = "ansi_html___ansi_html_0.0.7.tgz";
+ url = "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz";
+ sha1 = "813584021962a9e9e6fd039f940d12f56ca7859e";
+ };
+ }
+ {
+ name = "ansi_regex___ansi_regex_2.1.1.tgz";
+ path = fetchurl {
+ name = "ansi_regex___ansi_regex_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz";
+ sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
+ };
+ }
+ {
+ name = "ansi_regex___ansi_regex_3.0.0.tgz";
+ path = fetchurl {
+ name = "ansi_regex___ansi_regex_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz";
+ sha1 = "ed0317c322064f79466c02966bddb605ab37d998";
+ };
+ }
+ {
+ name = "ansi_regex___ansi_regex_4.1.0.tgz";
+ path = fetchurl {
+ name = "ansi_regex___ansi_regex_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz";
+ sha1 = "8b9f8f08cf1acb843756a839ca8c7e3168c51997";
+ };
+ }
+ {
+ name = "ansi_styles___ansi_styles_2.2.1.tgz";
+ path = fetchurl {
+ name = "ansi_styles___ansi_styles_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz";
+ sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe";
+ };
+ }
+ {
+ name = "ansi_styles___ansi_styles_3.2.1.tgz";
+ path = fetchurl {
+ name = "ansi_styles___ansi_styles_3.2.1.tgz";
+ url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz";
+ sha1 = "41fbb20243e50b12be0f04b8dedbf07520ce841d";
+ };
+ }
+ {
+ name = "anymatch___anymatch_2.0.0.tgz";
+ path = fetchurl {
+ name = "anymatch___anymatch_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz";
+ sha1 = "bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb";
+ };
+ }
+ {
+ name = "anymatch___anymatch_3.0.3.tgz";
+ path = fetchurl {
+ name = "anymatch___anymatch_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/anymatch/-/anymatch-3.0.3.tgz";
+ sha1 = "2fb624fe0e84bccab00afee3d0006ed310f22f09";
+ };
+ }
+ {
+ name = "apollo_cache_inmemory___apollo_cache_inmemory_1.5.1.tgz";
+ path = fetchurl {
+ name = "apollo_cache_inmemory___apollo_cache_inmemory_1.5.1.tgz";
+ url = "https://registry.yarnpkg.com/apollo-cache-inmemory/-/apollo-cache-inmemory-1.5.1.tgz";
+ sha1 = "265d1ee67b0bf0aca9c37629d410bfae44e62953";
+ };
+ }
+ {
+ name = "apollo_cache___apollo_cache_1.2.1.tgz";
+ path = fetchurl {
+ name = "apollo_cache___apollo_cache_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/apollo-cache/-/apollo-cache-1.2.1.tgz";
+ sha1 = "aae71eb4a11f1f7322adc343f84b1a39b0693644";
+ };
+ }
+ {
+ name = "apollo_client___apollo_client_2.5.1.tgz";
+ path = fetchurl {
+ name = "apollo_client___apollo_client_2.5.1.tgz";
+ url = "https://registry.yarnpkg.com/apollo-client/-/apollo-client-2.5.1.tgz";
+ sha1 = "36126ed1d32edd79c3713c6684546a3bea80e6d1";
+ };
+ }
+ {
+ name = "apollo_link_batch_http___apollo_link_batch_http_1.2.11.tgz";
+ path = fetchurl {
+ name = "apollo_link_batch_http___apollo_link_batch_http_1.2.11.tgz";
+ url = "https://registry.yarnpkg.com/apollo-link-batch-http/-/apollo-link-batch-http-1.2.11.tgz";
+ sha1 = "ae42dbcc02820658e1e267d05bf2aae7ac208088";
+ };
+ }
+ {
+ name = "apollo_link_batch___apollo_link_batch_1.1.12.tgz";
+ path = fetchurl {
+ name = "apollo_link_batch___apollo_link_batch_1.1.12.tgz";
+ url = "https://registry.yarnpkg.com/apollo-link-batch/-/apollo-link-batch-1.1.12.tgz";
+ sha1 = "64eb231082f182b0395ef7ab903600627f6c7fe8";
+ };
+ }
+ {
+ name = "apollo_link_dedup___apollo_link_dedup_1.0.10.tgz";
+ path = fetchurl {
+ name = "apollo_link_dedup___apollo_link_dedup_1.0.10.tgz";
+ url = "https://registry.yarnpkg.com/apollo-link-dedup/-/apollo-link-dedup-1.0.10.tgz";
+ sha1 = "7b94589fe7f969777efd18a129043c78430800ae";
+ };
+ }
+ {
+ name = "apollo_link_http_common___apollo_link_http_common_0.2.13.tgz";
+ path = fetchurl {
+ name = "apollo_link_http_common___apollo_link_http_common_0.2.13.tgz";
+ url = "https://registry.yarnpkg.com/apollo-link-http-common/-/apollo-link-http-common-0.2.13.tgz";
+ sha1 = "c688f6baaffdc7b269b2db7ae89dae7c58b5b350";
+ };
+ }
+ {
+ name = "apollo_link___apollo_link_1.2.11.tgz";
+ path = fetchurl {
+ name = "apollo_link___apollo_link_1.2.11.tgz";
+ url = "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.11.tgz";
+ sha1 = "493293b747ad3237114ccd22e9f559e5e24a194d";
+ };
+ }
+ {
+ name = "apollo_upload_client___apollo_upload_client_10.0.0.tgz";
+ path = fetchurl {
+ name = "apollo_upload_client___apollo_upload_client_10.0.0.tgz";
+ url = "https://registry.yarnpkg.com/apollo-upload-client/-/apollo-upload-client-10.0.0.tgz";
+ sha1 = "6cc3d0ea2aef40bc237b655f5042809cacee1859";
+ };
+ }
+ {
+ name = "apollo_utilities___apollo_utilities_1.2.1.tgz";
+ path = fetchurl {
+ name = "apollo_utilities___apollo_utilities_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.2.1.tgz";
+ sha1 = "1c3a1ebf5607d7c8efe7636daaf58e7463b41b3c";
+ };
+ }
+ {
+ name = "append_buffer___append_buffer_1.0.2.tgz";
+ path = fetchurl {
+ name = "append_buffer___append_buffer_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/append-buffer/-/append-buffer-1.0.2.tgz";
+ sha1 = "d8220cf466081525efea50614f3de6514dfa58f1";
+ };
+ }
+ {
+ name = "append_transform___append_transform_1.0.0.tgz";
+ path = fetchurl {
+ name = "append_transform___append_transform_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz";
+ sha1 = "046a52ae582a228bd72f58acfbe2967c678759ab";
+ };
+ }
+ {
+ name = "aproba___aproba_1.2.0.tgz";
+ path = fetchurl {
+ name = "aproba___aproba_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz";
+ sha1 = "6802e6264efd18c790a1b0d517f0f2627bf2c94a";
+ };
+ }
+ {
+ name = "are_we_there_yet___are_we_there_yet_1.1.5.tgz";
+ path = fetchurl {
+ name = "are_we_there_yet___are_we_there_yet_1.1.5.tgz";
+ url = "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz";
+ sha1 = "4b35c2944f062a8bfcda66410760350fe9ddfc21";
+ };
+ }
+ {
+ name = "argparse___argparse_1.0.10.tgz";
+ path = fetchurl {
+ name = "argparse___argparse_1.0.10.tgz";
+ url = "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz";
+ sha1 = "bcd6791ea5ae09725e17e5ad988134cd40b3d911";
+ };
+ }
+ {
+ name = "arr_diff___arr_diff_4.0.0.tgz";
+ path = fetchurl {
+ name = "arr_diff___arr_diff_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz";
+ sha1 = "d6461074febfec71e7e15235761a329a5dc7c520";
+ };
+ }
+ {
+ name = "arr_flatten___arr_flatten_1.1.0.tgz";
+ path = fetchurl {
+ name = "arr_flatten___arr_flatten_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz";
+ sha1 = "36048bbff4e7b47e136644316c99669ea5ae91f1";
+ };
+ }
+ {
+ name = "arr_union___arr_union_3.1.0.tgz";
+ path = fetchurl {
+ name = "arr_union___arr_union_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz";
+ sha1 = "e39b09aea9def866a8f206e288af63919bae39c4";
+ };
+ }
+ {
+ name = "array_equal___array_equal_1.0.0.tgz";
+ path = fetchurl {
+ name = "array_equal___array_equal_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz";
+ sha1 = "8c2a5ef2472fd9ea742b04c77a75093ba2757c93";
+ };
+ }
+ {
+ name = "array_find_index___array_find_index_1.0.2.tgz";
+ path = fetchurl {
+ name = "array_find_index___array_find_index_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz";
+ sha1 = "df010aa1287e164bbda6f9723b0a96a1ec4187a1";
+ };
+ }
+ {
+ name = "array_find___array_find_1.0.0.tgz";
+ path = fetchurl {
+ name = "array_find___array_find_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/array-find/-/array-find-1.0.0.tgz";
+ sha1 = "6c8e286d11ed768327f8e62ecee87353ca3e78b8";
+ };
+ }
+ {
+ name = "array_flatten___array_flatten_1.1.1.tgz";
+ path = fetchurl {
+ name = "array_flatten___array_flatten_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz";
+ sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2";
+ };
+ }
+ {
+ name = "array_flatten___array_flatten_2.1.1.tgz";
+ path = fetchurl {
+ name = "array_flatten___array_flatten_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz";
+ sha1 = "426bb9da84090c1838d812c8150af20a8331e296";
+ };
+ }
+ {
+ name = "array_union___array_union_1.0.2.tgz";
+ path = fetchurl {
+ name = "array_union___array_union_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz";
+ sha1 = "9a34410e4f4e3da23dea375be5be70f24778ec39";
+ };
+ }
+ {
+ name = "array_uniq___array_uniq_1.0.3.tgz";
+ path = fetchurl {
+ name = "array_uniq___array_uniq_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz";
+ sha1 = "af6ac877a25cc7f74e058894753858dfdb24fdb6";
+ };
+ }
+ {
+ name = "array_unique___array_unique_0.3.2.tgz";
+ path = fetchurl {
+ name = "array_unique___array_unique_0.3.2.tgz";
+ url = "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz";
+ sha1 = "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428";
+ };
+ }
+ {
+ name = "arraybuffer.slice___arraybuffer.slice_0.0.7.tgz";
+ path = fetchurl {
+ name = "arraybuffer.slice___arraybuffer.slice_0.0.7.tgz";
+ url = "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz";
+ sha1 = "3bbc4275dd584cc1b10809b89d4e8b63a69e7675";
+ };
+ }
+ {
+ name = "arrify___arrify_1.0.1.tgz";
+ path = fetchurl {
+ name = "arrify___arrify_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz";
+ sha1 = "898508da2226f380df904728456849c1501a4b0d";
+ };
+ }
+ {
+ name = "asn1.js___asn1.js_4.10.1.tgz";
+ path = fetchurl {
+ name = "asn1.js___asn1.js_4.10.1.tgz";
+ url = "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz";
+ sha1 = "b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0";
+ };
+ }
+ {
+ name = "asn1___asn1_0.2.4.tgz";
+ path = fetchurl {
+ name = "asn1___asn1_0.2.4.tgz";
+ url = "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz";
+ sha1 = "8d2475dfab553bb33e77b54e59e880bb8ce23136";
+ };
+ }
+ {
+ name = "assert_plus___assert_plus_1.0.0.tgz";
+ path = fetchurl {
+ name = "assert_plus___assert_plus_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz";
+ sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
+ };
+ }
+ {
+ name = "assert___assert_1.4.1.tgz";
+ path = fetchurl {
+ name = "assert___assert_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz";
+ sha1 = "99912d591836b5a6f5b345c0f07eefc08fc65d91";
+ };
+ }
+ {
+ name = "assign_symbols___assign_symbols_1.0.0.tgz";
+ path = fetchurl {
+ name = "assign_symbols___assign_symbols_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz";
+ sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367";
+ };
+ }
+ {
+ name = "astral_regex___astral_regex_1.0.0.tgz";
+ path = fetchurl {
+ name = "astral_regex___astral_regex_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz";
+ sha1 = "6c8c3fb827dd43ee3918f27b82782ab7658a6fd9";
+ };
+ }
+ {
+ name = "async_each___async_each_1.0.3.tgz";
+ path = fetchurl {
+ name = "async_each___async_each_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz";
+ sha1 = "b727dbf87d7651602f06f4d4ac387f47d91b0cbf";
+ };
+ }
+ {
+ name = "async_foreach___async_foreach_0.1.3.tgz";
+ path = fetchurl {
+ name = "async_foreach___async_foreach_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz";
+ sha1 = "36121f845c0578172de419a97dbeb1d16ec34542";
+ };
+ }
+ {
+ name = "async_limiter___async_limiter_1.0.0.tgz";
+ path = fetchurl {
+ name = "async_limiter___async_limiter_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz";
+ sha1 = "78faed8c3d074ab81f22b4e985d79e8738f720f8";
+ };
+ }
+ {
+ name = "async___async_1.5.2.tgz";
+ path = fetchurl {
+ name = "async___async_1.5.2.tgz";
+ url = "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz";
+ sha1 = "ec6a61ae56480c0c3cb241c95618e20892f9672a";
+ };
+ }
+ {
+ name = "async___async_2.6.3.tgz";
+ path = fetchurl {
+ name = "async___async_2.6.3.tgz";
+ url = "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz";
+ sha1 = "d72625e2344a3656e3a3ad4fa749fa83299d82ff";
+ };
+ }
+ {
+ name = "asynckit___asynckit_0.4.0.tgz";
+ path = fetchurl {
+ name = "asynckit___asynckit_0.4.0.tgz";
+ url = "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz";
+ sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
+ };
+ }
+ {
+ name = "at.js___at.js_1.5.4.tgz";
+ path = fetchurl {
+ name = "at.js___at.js_1.5.4.tgz";
+ url = "https://registry.yarnpkg.com/at.js/-/at.js-1.5.4.tgz";
+ sha1 = "8fc60cc80eadbe4874449b166a818e7ae1d784c1";
+ };
+ }
+ {
+ name = "atob___atob_2.1.2.tgz";
+ path = fetchurl {
+ name = "atob___atob_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz";
+ sha1 = "6d9517eb9e030d2436666651e86bd9f6f13533c9";
+ };
+ }
+ {
+ name = "autoprefixer___autoprefixer_9.6.1.tgz";
+ path = fetchurl {
+ name = "autoprefixer___autoprefixer_9.6.1.tgz";
+ url = "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.6.1.tgz";
+ sha1 = "51967a02d2d2300bb01866c1611ec8348d355a47";
+ };
+ }
+ {
+ name = "autosize___autosize_4.0.0.tgz";
+ path = fetchurl {
+ name = "autosize___autosize_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/autosize/-/autosize-4.0.0.tgz";
+ sha1 = "7a0599b1ba84d73bd7589b0d9da3870152c69237";
+ };
+ }
+ {
+ name = "aws_sdk___aws_sdk_2.526.0.tgz";
+ path = fetchurl {
+ name = "aws_sdk___aws_sdk_2.526.0.tgz";
+ url = "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.526.0.tgz";
+ sha1 = "e0f899be59edb7d50eb8cca7978bcd401a5d48c2";
+ };
+ }
+ {
+ name = "aws_sign2___aws_sign2_0.7.0.tgz";
+ path = fetchurl {
+ name = "aws_sign2___aws_sign2_0.7.0.tgz";
+ url = "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz";
+ sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
+ };
+ }
+ {
+ name = "aws4___aws4_1.8.0.tgz";
+ path = fetchurl {
+ name = "aws4___aws4_1.8.0.tgz";
+ url = "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz";
+ sha1 = "f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f";
+ };
+ }
+ {
+ name = "axios_mock_adapter___axios_mock_adapter_1.15.0.tgz";
+ path = fetchurl {
+ name = "axios_mock_adapter___axios_mock_adapter_1.15.0.tgz";
+ url = "https://registry.yarnpkg.com/axios-mock-adapter/-/axios-mock-adapter-1.15.0.tgz";
+ sha1 = "fbc06825d8302c95c3334d21023bba996255d45d";
+ };
+ }
+ {
+ name = "axios___axios_0.19.0.tgz";
+ path = fetchurl {
+ name = "axios___axios_0.19.0.tgz";
+ url = "https://registry.yarnpkg.com/axios/-/axios-0.19.0.tgz";
+ sha1 = "8e09bff3d9122e133f7b8101c8fbdd00ed3d2ab8";
+ };
+ }
+ {
+ name = "babel_code_frame___babel_code_frame_6.26.0.tgz";
+ path = fetchurl {
+ name = "babel_code_frame___babel_code_frame_6.26.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz";
+ sha1 = "63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b";
+ };
+ }
+ {
+ name = "babel_eslint___babel_eslint_10.0.1.tgz";
+ path = fetchurl {
+ name = "babel_eslint___babel_eslint_10.0.1.tgz";
+ url = "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.1.tgz";
+ sha1 = "919681dc099614cd7d31d45c8908695092a1faed";
+ };
+ }
+ {
+ name = "babel_jest___babel_jest_24.8.0.tgz";
+ path = fetchurl {
+ name = "babel_jest___babel_jest_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.8.0.tgz";
+ sha1 = "5c15ff2b28e20b0f45df43fe6b7f2aae93dba589";
+ };
+ }
+ {
+ name = "babel_loader___babel_loader_8.0.6.tgz";
+ path = fetchurl {
+ name = "babel_loader___babel_loader_8.0.6.tgz";
+ url = "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.6.tgz";
+ sha1 = "e33bdb6f362b03f4bb141a0c21ab87c501b70dfb";
+ };
+ }
+ {
+ name = "babel_plugin_dynamic_import_node___babel_plugin_dynamic_import_node_2.3.0.tgz";
+ path = fetchurl {
+ name = "babel_plugin_dynamic_import_node___babel_plugin_dynamic_import_node_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz";
+ sha1 = "f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f";
+ };
+ }
+ {
+ name = "babel_plugin_istanbul___babel_plugin_istanbul_5.1.0.tgz";
+ path = fetchurl {
+ name = "babel_plugin_istanbul___babel_plugin_istanbul_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.1.0.tgz";
+ sha1 = "6892f529eff65a3e2d33d87dc5888ffa2ecd4a30";
+ };
+ }
+ {
+ name = "babel_plugin_jest_hoist___babel_plugin_jest_hoist_24.6.0.tgz";
+ path = fetchurl {
+ name = "babel_plugin_jest_hoist___babel_plugin_jest_hoist_24.6.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.6.0.tgz";
+ sha1 = "f7f7f7ad150ee96d7a5e8e2c5da8319579e78019";
+ };
+ }
+ {
+ name = "babel_plugin_rewire___babel_plugin_rewire_1.2.0.tgz";
+ path = fetchurl {
+ name = "babel_plugin_rewire___babel_plugin_rewire_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-rewire/-/babel-plugin-rewire-1.2.0.tgz";
+ sha1 = "822562d72ed2c84e47c0f95ee232c920853e9d89";
+ };
+ }
+ {
+ name = "babel_preset_jest___babel_preset_jest_24.6.0.tgz";
+ path = fetchurl {
+ name = "babel_preset_jest___babel_preset_jest_24.6.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.6.0.tgz";
+ sha1 = "66f06136eefce87797539c0d63f1769cc3915984";
+ };
+ }
+ {
+ name = "babelify___babelify_10.0.0.tgz";
+ path = fetchurl {
+ name = "babelify___babelify_10.0.0.tgz";
+ url = "https://registry.yarnpkg.com/babelify/-/babelify-10.0.0.tgz";
+ sha1 = "fe73b1a22583f06680d8d072e25a1e0d1d1d7fb5";
+ };
+ }
+ {
+ name = "babylon___babylon_7.0.0_beta.19.tgz";
+ path = fetchurl {
+ name = "babylon___babylon_7.0.0_beta.19.tgz";
+ url = "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.19.tgz";
+ sha1 = "e928c7e807e970e0536b078ab3e0c48f9e052503";
+ };
+ }
+ {
+ name = "backo2___backo2_1.0.2.tgz";
+ path = fetchurl {
+ name = "backo2___backo2_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz";
+ sha1 = "31ab1ac8b129363463e35b3ebb69f4dfcfba7947";
+ };
+ }
+ {
+ name = "bail___bail_1.0.3.tgz";
+ path = fetchurl {
+ name = "bail___bail_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/bail/-/bail-1.0.3.tgz";
+ sha1 = "63cfb9ddbac829b02a3128cd53224be78e6c21a3";
+ };
+ }
+ {
+ name = "balanced_match___balanced_match_1.0.0.tgz";
+ path = fetchurl {
+ name = "balanced_match___balanced_match_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz";
+ sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+ };
+ }
+ {
+ name = "base64_arraybuffer___base64_arraybuffer_0.1.5.tgz";
+ path = fetchurl {
+ name = "base64_arraybuffer___base64_arraybuffer_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz";
+ sha1 = "73926771923b5a19747ad666aa5cd4bf9c6e9ce8";
+ };
+ }
+ {
+ name = "base64_js___base64_js_1.2.3.tgz";
+ path = fetchurl {
+ name = "base64_js___base64_js_1.2.3.tgz";
+ url = "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.3.tgz";
+ sha1 = "fb13668233d9614cf5fb4bce95a9ba4096cdf801";
+ };
+ }
+ {
+ name = "base64id___base64id_1.0.0.tgz";
+ path = fetchurl {
+ name = "base64id___base64id_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz";
+ sha1 = "47688cb99bb6804f0e06d3e763b1c32e57d8e6b6";
+ };
+ }
+ {
+ name = "base___base_0.11.2.tgz";
+ path = fetchurl {
+ name = "base___base_0.11.2.tgz";
+ url = "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz";
+ sha1 = "7bde5ced145b6d551a90db87f83c558b4eb48a8f";
+ };
+ }
+ {
+ name = "batch___batch_0.6.1.tgz";
+ path = fetchurl {
+ name = "batch___batch_0.6.1.tgz";
+ url = "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz";
+ sha1 = "dc34314f4e679318093fc760272525f94bf25c16";
+ };
+ }
+ {
+ name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
+ path = fetchurl {
+ name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz";
+ sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
+ };
+ }
+ {
+ name = "better_assert___better_assert_1.0.2.tgz";
+ path = fetchurl {
+ name = "better_assert___better_assert_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz";
+ sha1 = "40866b9e1b9e0b55b481894311e68faffaebc522";
+ };
+ }
+ {
+ name = "bfj___bfj_6.1.1.tgz";
+ path = fetchurl {
+ name = "bfj___bfj_6.1.1.tgz";
+ url = "https://registry.yarnpkg.com/bfj/-/bfj-6.1.1.tgz";
+ sha1 = "05a3b7784fbd72cfa3c22e56002ef99336516c48";
+ };
+ }
+ {
+ name = "big.js___big.js_5.2.2.tgz";
+ path = fetchurl {
+ name = "big.js___big.js_5.2.2.tgz";
+ url = "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz";
+ sha1 = "65f0af382f578bcdc742bd9c281e9cb2d7768328";
+ };
+ }
+ {
+ name = "binary_extensions___binary_extensions_1.11.0.tgz";
+ path = fetchurl {
+ name = "binary_extensions___binary_extensions_1.11.0.tgz";
+ url = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz";
+ sha1 = "46aa1751fb6a2f93ee5e689bb1087d4b14c6c205";
+ };
+ }
+ {
+ name = "binary_extensions___binary_extensions_2.0.0.tgz";
+ path = fetchurl {
+ name = "binary_extensions___binary_extensions_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz";
+ sha1 = "23c0df14f6a88077f5f986c0d167ec03c3d5537c";
+ };
+ }
+ {
+ name = "binaryextensions___binaryextensions_2.1.1.tgz";
+ path = fetchurl {
+ name = "binaryextensions___binaryextensions_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-2.1.1.tgz";
+ sha1 = "3209a51ca4a4ad541a3b8d3d6a6d5b83a2485935";
+ };
+ }
+ {
+ name = "blob___blob_0.0.4.tgz";
+ path = fetchurl {
+ name = "blob___blob_0.0.4.tgz";
+ url = "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz";
+ sha1 = "bcf13052ca54463f30f9fc7e95b9a47630a94921";
+ };
+ }
+ {
+ name = "block_stream___block_stream_0.0.9.tgz";
+ path = fetchurl {
+ name = "block_stream___block_stream_0.0.9.tgz";
+ url = "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz";
+ sha1 = "13ebfe778a03205cfe03751481ebb4b3300c126a";
+ };
+ }
+ {
+ name = "bluebird___bluebird_3.5.5.tgz";
+ path = fetchurl {
+ name = "bluebird___bluebird_3.5.5.tgz";
+ url = "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz";
+ sha1 = "a8d0afd73251effbbd5fe384a77d73003c17a71f";
+ };
+ }
+ {
+ name = "bn.js___bn.js_4.11.8.tgz";
+ path = fetchurl {
+ name = "bn.js___bn.js_4.11.8.tgz";
+ url = "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz";
+ sha1 = "2cde09eb5ee341f484746bb0309b3253b1b1442f";
+ };
+ }
+ {
+ name = "body_parser___body_parser_1.19.0.tgz";
+ path = fetchurl {
+ name = "body_parser___body_parser_1.19.0.tgz";
+ url = "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz";
+ sha1 = "96b2709e57c9c4e09a6fd66a8fd979844f69f08a";
+ };
+ }
+ {
+ name = "body___body_5.1.0.tgz";
+ path = fetchurl {
+ name = "body___body_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/body/-/body-5.1.0.tgz";
+ sha1 = "e4ba0ce410a46936323367609ecb4e6553125069";
+ };
+ }
+ {
+ name = "bonjour___bonjour_3.5.0.tgz";
+ path = fetchurl {
+ name = "bonjour___bonjour_3.5.0.tgz";
+ url = "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz";
+ sha1 = "8e890a183d8ee9a2393b3844c691a42bcf7bc9f5";
+ };
+ }
+ {
+ name = "bootstrap_vue___bootstrap_vue_2.0.0_rc.27.tgz";
+ path = fetchurl {
+ name = "bootstrap_vue___bootstrap_vue_2.0.0_rc.27.tgz";
+ url = "https://registry.yarnpkg.com/bootstrap-vue/-/bootstrap-vue-2.0.0-rc.27.tgz";
+ sha1 = "884a46a71948d13c9729134cb564467f79a7b2b9";
+ };
+ }
+ {
+ name = "bootstrap___bootstrap_4.3.1.tgz";
+ path = fetchurl {
+ name = "bootstrap___bootstrap_4.3.1.tgz";
+ url = "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.3.1.tgz";
+ sha1 = "280ca8f610504d99d7b6b4bfc4b68cec601704ac";
+ };
+ }
+ {
+ name = "boxen___boxen_1.3.0.tgz";
+ path = fetchurl {
+ name = "boxen___boxen_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz";
+ sha1 = "55c6c39a8ba58d9c61ad22cd877532deb665a20b";
+ };
+ }
+ {
+ name = "brace_expansion___brace_expansion_1.1.11.tgz";
+ path = fetchurl {
+ name = "brace_expansion___brace_expansion_1.1.11.tgz";
+ url = "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz";
+ sha1 = "3c7fcbf529d87226f3d2f52b966ff5271eb441dd";
+ };
+ }
+ {
+ name = "braces___braces_2.3.2.tgz";
+ path = fetchurl {
+ name = "braces___braces_2.3.2.tgz";
+ url = "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz";
+ sha1 = "5979fd3f14cd531565e5fa2df1abfff1dfaee729";
+ };
+ }
+ {
+ name = "braces___braces_3.0.2.tgz";
+ path = fetchurl {
+ name = "braces___braces_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz";
+ sha1 = "3454e1a462ee8d599e236df336cd9ea4f8afe107";
+ };
+ }
+ {
+ name = "brorand___brorand_1.1.0.tgz";
+ path = fetchurl {
+ name = "brorand___brorand_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz";
+ sha1 = "12c25efe40a45e3c323eb8675a0a0ce57b22371f";
+ };
+ }
+ {
+ name = "browser_process_hrtime___browser_process_hrtime_0.1.3.tgz";
+ path = fetchurl {
+ name = "browser_process_hrtime___browser_process_hrtime_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz";
+ sha1 = "616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4";
+ };
+ }
+ {
+ name = "browser_resolve___browser_resolve_1.11.3.tgz";
+ path = fetchurl {
+ name = "browser_resolve___browser_resolve_1.11.3.tgz";
+ url = "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz";
+ sha1 = "9b7cbb3d0f510e4cb86bdbd796124d28b5890af6";
+ };
+ }
+ {
+ name = "browserify_aes___browserify_aes_1.1.1.tgz";
+ path = fetchurl {
+ name = "browserify_aes___browserify_aes_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.1.1.tgz";
+ sha1 = "38b7ab55edb806ff2dcda1a7f1620773a477c49f";
+ };
+ }
+ {
+ name = "browserify_cipher___browserify_cipher_1.0.0.tgz";
+ path = fetchurl {
+ name = "browserify_cipher___browserify_cipher_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz";
+ sha1 = "9988244874bf5ed4e28da95666dcd66ac8fc363a";
+ };
+ }
+ {
+ name = "browserify_des___browserify_des_1.0.0.tgz";
+ path = fetchurl {
+ name = "browserify_des___browserify_des_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz";
+ sha1 = "daa277717470922ed2fe18594118a175439721dd";
+ };
+ }
+ {
+ name = "browserify_rsa___browserify_rsa_4.0.1.tgz";
+ path = fetchurl {
+ name = "browserify_rsa___browserify_rsa_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz";
+ sha1 = "21e0abfaf6f2029cf2fafb133567a701d4135524";
+ };
+ }
+ {
+ name = "browserify_sign___browserify_sign_4.0.4.tgz";
+ path = fetchurl {
+ name = "browserify_sign___browserify_sign_4.0.4.tgz";
+ url = "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz";
+ sha1 = "aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298";
+ };
+ }
+ {
+ name = "browserify_zlib___browserify_zlib_0.2.0.tgz";
+ path = fetchurl {
+ name = "browserify_zlib___browserify_zlib_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz";
+ sha1 = "2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f";
+ };
+ }
+ {
+ name = "browserslist___browserslist_4.6.6.tgz";
+ path = fetchurl {
+ name = "browserslist___browserslist_4.6.6.tgz";
+ url = "https://registry.yarnpkg.com/browserslist/-/browserslist-4.6.6.tgz";
+ sha1 = "6e4bf467cde520bc9dbdf3747dafa03531cec453";
+ };
+ }
+ {
+ name = "bs_logger___bs_logger_0.2.6.tgz";
+ path = fetchurl {
+ name = "bs_logger___bs_logger_0.2.6.tgz";
+ url = "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz";
+ sha1 = "eb7d365307a72cf974cc6cda76b68354ad336bd8";
+ };
+ }
+ {
+ name = "bser___bser_2.0.0.tgz";
+ path = fetchurl {
+ name = "bser___bser_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz";
+ sha1 = "9ac78d3ed5d915804fd87acb158bc797147a1719";
+ };
+ }
+ {
+ name = "buffer_equal___buffer_equal_1.0.0.tgz";
+ path = fetchurl {
+ name = "buffer_equal___buffer_equal_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz";
+ sha1 = "59616b498304d556abd466966b22eeda3eca5fbe";
+ };
+ }
+ {
+ name = "buffer_from___buffer_from_1.1.1.tgz";
+ path = fetchurl {
+ name = "buffer_from___buffer_from_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz";
+ sha1 = "32713bc028f75c02fdb710d7c7bcec1f2c6070ef";
+ };
+ }
+ {
+ name = "buffer_indexof___buffer_indexof_1.1.0.tgz";
+ path = fetchurl {
+ name = "buffer_indexof___buffer_indexof_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.0.tgz";
+ sha1 = "f54f647c4f4e25228baa656a2e57e43d5f270982";
+ };
+ }
+ {
+ name = "buffer_json___buffer_json_2.0.0.tgz";
+ path = fetchurl {
+ name = "buffer_json___buffer_json_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/buffer-json/-/buffer-json-2.0.0.tgz";
+ sha1 = "f73e13b1e42f196fe2fd67d001c7d7107edd7c23";
+ };
+ }
+ {
+ name = "buffer_shims___buffer_shims_1.0.0.tgz";
+ path = fetchurl {
+ name = "buffer_shims___buffer_shims_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz";
+ sha1 = "9978ce317388c649ad8793028c3477ef044a8b51";
+ };
+ }
+ {
+ name = "buffer_xor___buffer_xor_1.0.3.tgz";
+ path = fetchurl {
+ name = "buffer_xor___buffer_xor_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz";
+ sha1 = "26e61ed1422fb70dd42e6e36729ed51d855fe8d9";
+ };
+ }
+ {
+ name = "buffer___buffer_4.9.1.tgz";
+ path = fetchurl {
+ name = "buffer___buffer_4.9.1.tgz";
+ url = "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz";
+ sha1 = "6d1bb601b07a4efced97094132093027c95bc298";
+ };
+ }
+ {
+ name = "builtin_status_codes___builtin_status_codes_3.0.0.tgz";
+ path = fetchurl {
+ name = "builtin_status_codes___builtin_status_codes_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz";
+ sha1 = "85982878e21b98e1c66425e03d0174788f569ee8";
+ };
+ }
+ {
+ name = "bytes___bytes_1.0.0.tgz";
+ path = fetchurl {
+ name = "bytes___bytes_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/bytes/-/bytes-1.0.0.tgz";
+ sha1 = "3569ede8ba34315fab99c3e92cb04c7220de1fa8";
+ };
+ }
+ {
+ name = "bytes___bytes_3.0.0.tgz";
+ path = fetchurl {
+ name = "bytes___bytes_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz";
+ sha1 = "d32815404d689699f85a4ea4fa8755dd13a96048";
+ };
+ }
+ {
+ name = "bytes___bytes_3.1.0.tgz";
+ path = fetchurl {
+ name = "bytes___bytes_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz";
+ sha1 = "f6cf7933a360e0588fa9fde85651cdc7f805d1f6";
+ };
+ }
+ {
+ name = "cacache___cacache_11.3.3.tgz";
+ path = fetchurl {
+ name = "cacache___cacache_11.3.3.tgz";
+ url = "https://registry.yarnpkg.com/cacache/-/cacache-11.3.3.tgz";
+ sha1 = "8bd29df8c6a718a6ebd2d010da4d7972ae3bbadc";
+ };
+ }
+ {
+ name = "cacache___cacache_12.0.3.tgz";
+ path = fetchurl {
+ name = "cacache___cacache_12.0.3.tgz";
+ url = "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz";
+ sha1 = "be99abba4e1bf5df461cd5a2c1071fc432573390";
+ };
+ }
+ {
+ name = "cache_base___cache_base_1.0.1.tgz";
+ path = fetchurl {
+ name = "cache_base___cache_base_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz";
+ sha1 = "0a7f46416831c8b662ee36fe4e7c59d76f666ab2";
+ };
+ }
+ {
+ name = "cache_loader___cache_loader_4.1.0.tgz";
+ path = fetchurl {
+ name = "cache_loader___cache_loader_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/cache-loader/-/cache-loader-4.1.0.tgz";
+ sha1 = "9948cae353aec0a1fcb1eafda2300816ec85387e";
+ };
+ }
+ {
+ name = "cached_path_relative___cached_path_relative_1.0.2.tgz";
+ path = fetchurl {
+ name = "cached_path_relative___cached_path_relative_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.2.tgz";
+ sha1 = "a13df4196d26776220cc3356eb147a52dba2c6db";
+ };
+ }
+ {
+ name = "call_me_maybe___call_me_maybe_1.0.1.tgz";
+ path = fetchurl {
+ name = "call_me_maybe___call_me_maybe_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz";
+ sha1 = "26d208ea89e37b5cbde60250a15f031c16a4d66b";
+ };
+ }
+ {
+ name = "caller_callsite___caller_callsite_2.0.0.tgz";
+ path = fetchurl {
+ name = "caller_callsite___caller_callsite_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz";
+ sha1 = "847e0fce0a223750a9a027c54b33731ad3154134";
+ };
+ }
+ {
+ name = "caller_path___caller_path_0.1.0.tgz";
+ path = fetchurl {
+ name = "caller_path___caller_path_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz";
+ sha1 = "94085ef63581ecd3daa92444a8fe94e82577751f";
+ };
+ }
+ {
+ name = "caller_path___caller_path_2.0.0.tgz";
+ path = fetchurl {
+ name = "caller_path___caller_path_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz";
+ sha1 = "468f83044e369ab2010fac5f06ceee15bb2cb1f4";
+ };
+ }
+ {
+ name = "callsite___callsite_1.0.0.tgz";
+ path = fetchurl {
+ name = "callsite___callsite_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz";
+ sha1 = "280398e5d664bd74038b6f0905153e6e8af1bc20";
+ };
+ }
+ {
+ name = "callsites___callsites_0.2.0.tgz";
+ path = fetchurl {
+ name = "callsites___callsites_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz";
+ sha1 = "afab96262910a7f33c19a5775825c69f34e350ca";
+ };
+ }
+ {
+ name = "callsites___callsites_2.0.0.tgz";
+ path = fetchurl {
+ name = "callsites___callsites_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz";
+ sha1 = "06eb84f00eea413da86affefacbffb36093b3c50";
+ };
+ }
+ {
+ name = "callsites___callsites_3.0.0.tgz";
+ path = fetchurl {
+ name = "callsites___callsites_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/callsites/-/callsites-3.0.0.tgz";
+ sha1 = "fb7eb569b72ad7a45812f93fd9430a3e410b3dd3";
+ };
+ }
+ {
+ name = "camel_case___camel_case_3.0.0.tgz";
+ path = fetchurl {
+ name = "camel_case___camel_case_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz";
+ sha1 = "ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73";
+ };
+ }
+ {
+ name = "camelcase_keys___camelcase_keys_2.1.0.tgz";
+ path = fetchurl {
+ name = "camelcase_keys___camelcase_keys_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz";
+ sha1 = "308beeaffdf28119051efa1d932213c91b8f92e7";
+ };
+ }
+ {
+ name = "camelcase_keys___camelcase_keys_4.2.0.tgz";
+ path = fetchurl {
+ name = "camelcase_keys___camelcase_keys_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz";
+ sha1 = "a2aa5fb1af688758259c32c141426d78923b9b77";
+ };
+ }
+ {
+ name = "camelcase___camelcase_2.1.1.tgz";
+ path = fetchurl {
+ name = "camelcase___camelcase_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz";
+ sha1 = "7c1d16d679a1bbe59ca02cacecfb011e201f5a1f";
+ };
+ }
+ {
+ name = "camelcase___camelcase_3.0.0.tgz";
+ path = fetchurl {
+ name = "camelcase___camelcase_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz";
+ sha1 = "32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a";
+ };
+ }
+ {
+ name = "camelcase___camelcase_4.1.0.tgz";
+ path = fetchurl {
+ name = "camelcase___camelcase_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz";
+ sha1 = "d545635be1e33c542649c69173e5de6acfae34dd";
+ };
+ }
+ {
+ name = "camelcase___camelcase_5.3.1.tgz";
+ path = fetchurl {
+ name = "camelcase___camelcase_5.3.1.tgz";
+ url = "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz";
+ sha1 = "e3c9b31569e106811df242f715725a1f4c494320";
+ };
+ }
+ {
+ name = "caniuse_lite___caniuse_lite_1.0.30000985.tgz";
+ path = fetchurl {
+ name = "caniuse_lite___caniuse_lite_1.0.30000985.tgz";
+ url = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000985.tgz";
+ sha1 = "0eb40f6c8a8c219155cbe43c4975c0efb4a0f77f";
+ };
+ }
+ {
+ name = "capture_exit___capture_exit_2.0.0.tgz";
+ path = fetchurl {
+ name = "capture_exit___capture_exit_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz";
+ sha1 = "fb953bfaebeb781f62898239dabb426d08a509a4";
+ };
+ }
+ {
+ name = "capture_stack_trace___capture_stack_trace_1.0.0.tgz";
+ path = fetchurl {
+ name = "capture_stack_trace___capture_stack_trace_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz";
+ sha1 = "4a6fa07399c26bba47f0b2496b4d0fb408c5550d";
+ };
+ }
+ {
+ name = "caseless___caseless_0.12.0.tgz";
+ path = fetchurl {
+ name = "caseless___caseless_0.12.0.tgz";
+ url = "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz";
+ sha1 = "1b681c21ff84033c826543090689420d187151dc";
+ };
+ }
+ {
+ name = "catharsis___catharsis_0.8.9.tgz";
+ path = fetchurl {
+ name = "catharsis___catharsis_0.8.9.tgz";
+ url = "https://registry.yarnpkg.com/catharsis/-/catharsis-0.8.9.tgz";
+ sha1 = "98cc890ca652dd2ef0e70b37925310ff9e90fc8b";
+ };
+ }
+ {
+ name = "ccount___ccount_1.0.3.tgz";
+ path = fetchurl {
+ name = "ccount___ccount_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/ccount/-/ccount-1.0.3.tgz";
+ sha1 = "f1cec43f332e2ea5a569fd46f9f5bde4e6102aff";
+ };
+ }
+ {
+ name = "chalk___chalk_2.4.2.tgz";
+ path = fetchurl {
+ name = "chalk___chalk_2.4.2.tgz";
+ url = "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz";
+ sha1 = "cd42541677a54333cf541a49108c1432b44c9424";
+ };
+ }
+ {
+ name = "chalk___chalk_1.1.3.tgz";
+ path = fetchurl {
+ name = "chalk___chalk_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz";
+ sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98";
+ };
+ }
+ {
+ name = "character_entities_html4___character_entities_html4_1.1.2.tgz";
+ path = fetchurl {
+ name = "character_entities_html4___character_entities_html4_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.2.tgz";
+ sha1 = "c44fdde3ce66b52e8d321d6c1bf46101f0150610";
+ };
+ }
+ {
+ name = "character_entities_legacy___character_entities_legacy_1.1.2.tgz";
+ path = fetchurl {
+ name = "character_entities_legacy___character_entities_legacy_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.2.tgz";
+ sha1 = "7c6defb81648498222c9855309953d05f4d63a9c";
+ };
+ }
+ {
+ name = "character_entities___character_entities_1.2.2.tgz";
+ path = fetchurl {
+ name = "character_entities___character_entities_1.2.2.tgz";
+ url = "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.2.tgz";
+ sha1 = "58c8f371c0774ef0ba9b2aca5f00d8f100e6e363";
+ };
+ }
+ {
+ name = "character_reference_invalid___character_reference_invalid_1.1.2.tgz";
+ path = fetchurl {
+ name = "character_reference_invalid___character_reference_invalid_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.2.tgz";
+ sha1 = "21e421ad3d84055952dab4a43a04e73cd425d3ed";
+ };
+ }
+ {
+ name = "chardet___chardet_0.5.0.tgz";
+ path = fetchurl {
+ name = "chardet___chardet_0.5.0.tgz";
+ url = "https://registry.yarnpkg.com/chardet/-/chardet-0.5.0.tgz";
+ sha1 = "fe3ac73c00c3d865ffcc02a0682e2c20b6a06029";
+ };
+ }
+ {
+ name = "charenc___charenc_0.0.2.tgz";
+ path = fetchurl {
+ name = "charenc___charenc_0.0.2.tgz";
+ url = "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz";
+ sha1 = "c0a1d2f3a7092e03774bfa83f14c0fc5790a8667";
+ };
+ }
+ {
+ name = "chart.js___chart.js_2.7.2.tgz";
+ path = fetchurl {
+ name = "chart.js___chart.js_2.7.2.tgz";
+ url = "https://registry.yarnpkg.com/chart.js/-/chart.js-2.7.2.tgz";
+ sha1 = "3c9fde4dc5b95608211bdefeda7e5d33dffa5714";
+ };
+ }
+ {
+ name = "chartjs_color_string___chartjs_color_string_0.5.0.tgz";
+ path = fetchurl {
+ name = "chartjs_color_string___chartjs_color_string_0.5.0.tgz";
+ url = "https://registry.yarnpkg.com/chartjs-color-string/-/chartjs-color-string-0.5.0.tgz";
+ sha1 = "8d3752d8581d86687c35bfe2cb80ac5213ceb8c1";
+ };
+ }
+ {
+ name = "chartjs_color___chartjs_color_2.2.0.tgz";
+ path = fetchurl {
+ name = "chartjs_color___chartjs_color_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/chartjs-color/-/chartjs-color-2.2.0.tgz";
+ sha1 = "84a2fb755787ed85c39dd6dd8c7b1d88429baeae";
+ };
+ }
+ {
+ name = "check_types___check_types_7.3.0.tgz";
+ path = fetchurl {
+ name = "check_types___check_types_7.3.0.tgz";
+ url = "https://registry.yarnpkg.com/check-types/-/check-types-7.3.0.tgz";
+ sha1 = "468f571a4435c24248f5fd0cb0e8d87c3c341e7d";
+ };
+ }
+ {
+ name = "chokidar___chokidar_2.1.8.tgz";
+ path = fetchurl {
+ name = "chokidar___chokidar_2.1.8.tgz";
+ url = "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz";
+ sha1 = "804b3a7b6a99358c3c5c61e71d8728f041cff917";
+ };
+ }
+ {
+ name = "chokidar___chokidar_3.0.2.tgz";
+ path = fetchurl {
+ name = "chokidar___chokidar_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/chokidar/-/chokidar-3.0.2.tgz";
+ sha1 = "0d1cd6d04eb2df0327446188cd13736a3367d681";
+ };
+ }
+ {
+ name = "chownr___chownr_1.1.1.tgz";
+ path = fetchurl {
+ name = "chownr___chownr_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz";
+ sha1 = "54726b8b8fff4df053c42187e801fb4412df1494";
+ };
+ }
+ {
+ name = "chrome_trace_event___chrome_trace_event_1.0.2.tgz";
+ path = fetchurl {
+ name = "chrome_trace_event___chrome_trace_event_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz";
+ sha1 = "234090ee97c7d4ad1a2c4beae27505deffc608a4";
+ };
+ }
+ {
+ name = "ci_info___ci_info_1.6.0.tgz";
+ path = fetchurl {
+ name = "ci_info___ci_info_1.6.0.tgz";
+ url = "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz";
+ sha1 = "2ca20dbb9ceb32d4524a683303313f0304b1e497";
+ };
+ }
+ {
+ name = "ci_info___ci_info_2.0.0.tgz";
+ path = fetchurl {
+ name = "ci_info___ci_info_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz";
+ sha1 = "67a9e964be31a51e15e5010d58e6f12834002f46";
+ };
+ }
+ {
+ name = "cipher_base___cipher_base_1.0.4.tgz";
+ path = fetchurl {
+ name = "cipher_base___cipher_base_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz";
+ sha1 = "8760e4ecc272f4c363532f926d874aae2c1397de";
+ };
+ }
+ {
+ name = "circular_json___circular_json_0.3.3.tgz";
+ path = fetchurl {
+ name = "circular_json___circular_json_0.3.3.tgz";
+ url = "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz";
+ sha1 = "815c99ea84f6809529d2f45791bdf82711352d66";
+ };
+ }
+ {
+ name = "class_utils___class_utils_0.3.6.tgz";
+ path = fetchurl {
+ name = "class_utils___class_utils_0.3.6.tgz";
+ url = "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz";
+ sha1 = "f93369ae8b9a7ce02fd41faad0ca83033190c463";
+ };
+ }
+ {
+ name = "classlist_polyfill___classlist_polyfill_1.2.0.tgz";
+ path = fetchurl {
+ name = "classlist_polyfill___classlist_polyfill_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/classlist-polyfill/-/classlist-polyfill-1.2.0.tgz";
+ sha1 = "935bc2dfd9458a876b279617514638bcaa964a2e";
+ };
+ }
+ {
+ name = "clean_css___clean_css_4.2.1.tgz";
+ path = fetchurl {
+ name = "clean_css___clean_css_4.2.1.tgz";
+ url = "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.1.tgz";
+ sha1 = "2d411ef76b8569b6d0c84068dabe85b0aa5e5c17";
+ };
+ }
+ {
+ name = "cli_boxes___cli_boxes_1.0.0.tgz";
+ path = fetchurl {
+ name = "cli_boxes___cli_boxes_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz";
+ sha1 = "4fa917c3e59c94a004cd61f8ee509da651687143";
+ };
+ }
+ {
+ name = "cli_cursor___cli_cursor_2.1.0.tgz";
+ path = fetchurl {
+ name = "cli_cursor___cli_cursor_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz";
+ sha1 = "b35dac376479facc3e94747d41d0d0f5238ffcb5";
+ };
+ }
+ {
+ name = "cli_width___cli_width_2.1.0.tgz";
+ path = fetchurl {
+ name = "cli_width___cli_width_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz";
+ sha1 = "b234ca209b29ef66fc518d9b98d5847b00edf00a";
+ };
+ }
+ {
+ name = "clipboard___clipboard_1.7.1.tgz";
+ path = fetchurl {
+ name = "clipboard___clipboard_1.7.1.tgz";
+ url = "https://registry.yarnpkg.com/clipboard/-/clipboard-1.7.1.tgz";
+ sha1 = "360d6d6946e99a7a1fef395e42ba92b5e9b5a16b";
+ };
+ }
+ {
+ name = "cliui___cliui_3.2.0.tgz";
+ path = fetchurl {
+ name = "cliui___cliui_3.2.0.tgz";
+ url = "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz";
+ sha1 = "120601537a916d29940f934da3b48d585a39213d";
+ };
+ }
+ {
+ name = "cliui___cliui_4.1.0.tgz";
+ path = fetchurl {
+ name = "cliui___cliui_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz";
+ sha1 = "348422dbe82d800b3022eef4f6ac10bf2e4d1b49";
+ };
+ }
+ {
+ name = "cliui___cliui_5.0.0.tgz";
+ path = fetchurl {
+ name = "cliui___cliui_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz";
+ sha1 = "deefcfdb2e800784aa34f46fa08e06851c7bbbc5";
+ };
+ }
+ {
+ name = "clone_buffer___clone_buffer_1.0.0.tgz";
+ path = fetchurl {
+ name = "clone_buffer___clone_buffer_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz";
+ sha1 = "e3e25b207ac4e701af721e2cb5a16792cac3dc58";
+ };
+ }
+ {
+ name = "clone_deep___clone_deep_4.0.1.tgz";
+ path = fetchurl {
+ name = "clone_deep___clone_deep_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz";
+ sha1 = "c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387";
+ };
+ }
+ {
+ name = "clone_regexp___clone_regexp_2.2.0.tgz";
+ path = fetchurl {
+ name = "clone_regexp___clone_regexp_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/clone-regexp/-/clone-regexp-2.2.0.tgz";
+ sha1 = "7d65e00885cd8796405c35a737e7a86b7429e36f";
+ };
+ }
+ {
+ name = "clone_stats___clone_stats_1.0.0.tgz";
+ path = fetchurl {
+ name = "clone_stats___clone_stats_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz";
+ sha1 = "b3782dff8bb5474e18b9b6bf0fdfe782f8777680";
+ };
+ }
+ {
+ name = "clone___clone_2.1.2.tgz";
+ path = fetchurl {
+ name = "clone___clone_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz";
+ sha1 = "1b7f4b9f591f1e8f83670401600345a02887435f";
+ };
+ }
+ {
+ name = "cloneable_readable___cloneable_readable_1.1.3.tgz";
+ path = fetchurl {
+ name = "cloneable_readable___cloneable_readable_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.3.tgz";
+ sha1 = "120a00cb053bfb63a222e709f9683ea2e11d8cec";
+ };
+ }
+ {
+ name = "co___co_4.6.0.tgz";
+ path = fetchurl {
+ name = "co___co_4.6.0.tgz";
+ url = "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz";
+ sha1 = "6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184";
+ };
+ }
+ {
+ name = "code_point_at___code_point_at_1.1.0.tgz";
+ path = fetchurl {
+ name = "code_point_at___code_point_at_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz";
+ sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77";
+ };
+ }
+ {
+ name = "codesandbox_api___codesandbox_api_0.0.20.tgz";
+ path = fetchurl {
+ name = "codesandbox_api___codesandbox_api_0.0.20.tgz";
+ url = "https://registry.yarnpkg.com/codesandbox-api/-/codesandbox-api-0.0.20.tgz";
+ sha1 = "174bcd76c9f31521175c6bceabc37da6b1fbc30b";
+ };
+ }
+ {
+ name = "codesandbox_import_util_types___codesandbox_import_util_types_1.2.11.tgz";
+ path = fetchurl {
+ name = "codesandbox_import_util_types___codesandbox_import_util_types_1.2.11.tgz";
+ url = "https://registry.yarnpkg.com/codesandbox-import-util-types/-/codesandbox-import-util-types-1.2.11.tgz";
+ sha1 = "68e812f21d6b309e9a52eec5cf027c3e63b4c703";
+ };
+ }
+ {
+ name = "codesandbox_import_utils___codesandbox_import_utils_1.2.11.tgz";
+ path = fetchurl {
+ name = "codesandbox_import_utils___codesandbox_import_utils_1.2.11.tgz";
+ url = "https://registry.yarnpkg.com/codesandbox-import-utils/-/codesandbox-import-utils-1.2.11.tgz";
+ sha1 = "b88423a4a7c785175c784c84e87f5950820280e1";
+ };
+ }
+ {
+ name = "collapse_white_space___collapse_white_space_1.0.5.tgz";
+ path = fetchurl {
+ name = "collapse_white_space___collapse_white_space_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.5.tgz";
+ sha1 = "c2495b699ab1ed380d29a1091e01063e75dbbe3a";
+ };
+ }
+ {
+ name = "collection_visit___collection_visit_1.0.0.tgz";
+ path = fetchurl {
+ name = "collection_visit___collection_visit_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz";
+ sha1 = "4bc0373c164bc3291b4d368c829cf1a80a59dca0";
+ };
+ }
+ {
+ name = "color_convert___color_convert_0.5.3.tgz";
+ path = fetchurl {
+ name = "color_convert___color_convert_0.5.3.tgz";
+ url = "https://registry.yarnpkg.com/color-convert/-/color-convert-0.5.3.tgz";
+ sha1 = "bdb6c69ce660fadffe0b0007cc447e1b9f7282bd";
+ };
+ }
+ {
+ name = "color_convert___color_convert_1.9.3.tgz";
+ path = fetchurl {
+ name = "color_convert___color_convert_1.9.3.tgz";
+ url = "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz";
+ sha1 = "bb71850690e1f136567de629d2d5471deda4c1e8";
+ };
+ }
+ {
+ name = "color_name___color_name_1.1.3.tgz";
+ path = fetchurl {
+ name = "color_name___color_name_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz";
+ sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25";
+ };
+ }
+ {
+ name = "colors___colors_1.3.3.tgz";
+ path = fetchurl {
+ name = "colors___colors_1.3.3.tgz";
+ url = "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz";
+ sha1 = "39e005d546afe01e01f9c4ca8fa50f686a01205d";
+ };
+ }
+ {
+ name = "combined_stream___combined_stream_1.0.7.tgz";
+ path = fetchurl {
+ name = "combined_stream___combined_stream_1.0.7.tgz";
+ url = "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz";
+ sha1 = "2d1d24317afb8abe95d6d2c0b07b57813539d828";
+ };
+ }
+ {
+ name = "comma_separated_tokens___comma_separated_tokens_1.0.7.tgz";
+ path = fetchurl {
+ name = "comma_separated_tokens___comma_separated_tokens_1.0.7.tgz";
+ url = "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.7.tgz";
+ sha1 = "419cd7fb3258b1ed838dc0953167a25e152f5b59";
+ };
+ }
+ {
+ name = "commander___commander_2.20.0.tgz";
+ path = fetchurl {
+ name = "commander___commander_2.20.0.tgz";
+ url = "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz";
+ sha1 = "d58bb2b5c1ee8f87b0d340027e9e94e222c5a422";
+ };
+ }
+ {
+ name = "commander___commander_2.9.0.tgz";
+ path = fetchurl {
+ name = "commander___commander_2.9.0.tgz";
+ url = "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz";
+ sha1 = "9c99094176e12240cb22d6c5146098400fe0f7d4";
+ };
+ }
+ {
+ name = "commondir___commondir_1.0.1.tgz";
+ path = fetchurl {
+ name = "commondir___commondir_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz";
+ sha1 = "ddd800da0c66127393cca5950ea968a3aaf1253b";
+ };
+ }
+ {
+ name = "compare_versions___compare_versions_3.5.1.tgz";
+ path = fetchurl {
+ name = "compare_versions___compare_versions_3.5.1.tgz";
+ url = "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.5.1.tgz";
+ sha1 = "26e1f5cf0d48a77eced5046b9f67b6b61075a393";
+ };
+ }
+ {
+ name = "component_bind___component_bind_1.0.0.tgz";
+ path = fetchurl {
+ name = "component_bind___component_bind_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz";
+ sha1 = "00c608ab7dcd93897c0009651b1d3a8e1e73bbd1";
+ };
+ }
+ {
+ name = "component_emitter___component_emitter_1.2.1.tgz";
+ path = fetchurl {
+ name = "component_emitter___component_emitter_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz";
+ sha1 = "137918d6d78283f7df7a6b7c5a63e140e69425e6";
+ };
+ }
+ {
+ name = "component_inherit___component_inherit_0.0.3.tgz";
+ path = fetchurl {
+ name = "component_inherit___component_inherit_0.0.3.tgz";
+ url = "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz";
+ sha1 = "645fc4adf58b72b649d5cae65135619db26ff143";
+ };
+ }
+ {
+ name = "compressible___compressible_2.0.17.tgz";
+ path = fetchurl {
+ name = "compressible___compressible_2.0.17.tgz";
+ url = "https://registry.yarnpkg.com/compressible/-/compressible-2.0.17.tgz";
+ sha1 = "6e8c108a16ad58384a977f3a482ca20bff2f38c1";
+ };
+ }
+ {
+ name = "compression_webpack_plugin___compression_webpack_plugin_3.0.0.tgz";
+ path = fetchurl {
+ name = "compression_webpack_plugin___compression_webpack_plugin_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-3.0.0.tgz";
+ sha1 = "097d2e4d95c3a14cb5c8ed20899009ab5b9bbca0";
+ };
+ }
+ {
+ name = "compression___compression_1.7.4.tgz";
+ path = fetchurl {
+ name = "compression___compression_1.7.4.tgz";
+ url = "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz";
+ sha1 = "95523eff170ca57c29a0ca41e6fe131f41e5bb8f";
+ };
+ }
+ {
+ name = "concat_map___concat_map_0.0.1.tgz";
+ path = fetchurl {
+ name = "concat_map___concat_map_0.0.1.tgz";
+ url = "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz";
+ sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+ };
+ }
+ {
+ name = "concat_stream___concat_stream_1.6.2.tgz";
+ path = fetchurl {
+ name = "concat_stream___concat_stream_1.6.2.tgz";
+ url = "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz";
+ sha1 = "904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34";
+ };
+ }
+ {
+ name = "concat_stream___concat_stream_1.5.2.tgz";
+ path = fetchurl {
+ name = "concat_stream___concat_stream_1.5.2.tgz";
+ url = "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.2.tgz";
+ sha1 = "708978624d856af41a5a741defdd261da752c266";
+ };
+ }
+ {
+ name = "config_chain___config_chain_1.1.12.tgz";
+ path = fetchurl {
+ name = "config_chain___config_chain_1.1.12.tgz";
+ url = "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz";
+ sha1 = "0fde8d091200eb5e808caf25fe618c02f48e4efa";
+ };
+ }
+ {
+ name = "configstore___configstore_3.1.1.tgz";
+ path = fetchurl {
+ name = "configstore___configstore_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/configstore/-/configstore-3.1.1.tgz";
+ sha1 = "094ee662ab83fad9917678de114faaea8fcdca90";
+ };
+ }
+ {
+ name = "connect_history_api_fallback___connect_history_api_fallback_1.6.0.tgz";
+ path = fetchurl {
+ name = "connect_history_api_fallback___connect_history_api_fallback_1.6.0.tgz";
+ url = "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz";
+ sha1 = "8b32089359308d111115d81cad3fceab888f97bc";
+ };
+ }
+ {
+ name = "connect___connect_3.6.6.tgz";
+ path = fetchurl {
+ name = "connect___connect_3.6.6.tgz";
+ url = "https://registry.yarnpkg.com/connect/-/connect-3.6.6.tgz";
+ sha1 = "09eff6c55af7236e137135a72574858b6786f524";
+ };
+ }
+ {
+ name = "consola___consola_2.9.0.tgz";
+ path = fetchurl {
+ name = "consola___consola_2.9.0.tgz";
+ url = "https://registry.yarnpkg.com/consola/-/consola-2.9.0.tgz";
+ sha1 = "57760e3a65a53ec27337f4add31505802d902278";
+ };
+ }
+ {
+ name = "console_browserify___console_browserify_1.1.0.tgz";
+ path = fetchurl {
+ name = "console_browserify___console_browserify_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz";
+ sha1 = "f0241c45730a9fc6323b206dbf38edc741d0bb10";
+ };
+ }
+ {
+ name = "console_control_strings___console_control_strings_1.1.0.tgz";
+ path = fetchurl {
+ name = "console_control_strings___console_control_strings_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz";
+ sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e";
+ };
+ }
+ {
+ name = "consolidate___consolidate_0.15.1.tgz";
+ path = fetchurl {
+ name = "consolidate___consolidate_0.15.1.tgz";
+ url = "https://registry.yarnpkg.com/consolidate/-/consolidate-0.15.1.tgz";
+ sha1 = "21ab043235c71a07d45d9aad98593b0dba56bab7";
+ };
+ }
+ {
+ name = "constants_browserify___constants_browserify_1.0.0.tgz";
+ path = fetchurl {
+ name = "constants_browserify___constants_browserify_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz";
+ sha1 = "c20b96d8c617748aaf1c16021760cd27fcb8cb75";
+ };
+ }
+ {
+ name = "contains_path___contains_path_0.1.0.tgz";
+ path = fetchurl {
+ name = "contains_path___contains_path_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz";
+ sha1 = "fe8cf184ff6670b6baef01a9d4861a5cbec4120a";
+ };
+ }
+ {
+ name = "content_disposition___content_disposition_0.5.3.tgz";
+ path = fetchurl {
+ name = "content_disposition___content_disposition_0.5.3.tgz";
+ url = "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz";
+ sha1 = "e130caf7e7279087c5616c2007d0485698984fbd";
+ };
+ }
+ {
+ name = "content_type___content_type_1.0.4.tgz";
+ path = fetchurl {
+ name = "content_type___content_type_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz";
+ sha1 = "e138cc75e040c727b1966fe5e5f8c9aee256fe3b";
+ };
+ }
+ {
+ name = "continuable_cache___continuable_cache_0.3.1.tgz";
+ path = fetchurl {
+ name = "continuable_cache___continuable_cache_0.3.1.tgz";
+ url = "https://registry.yarnpkg.com/continuable-cache/-/continuable-cache-0.3.1.tgz";
+ sha1 = "bd727a7faed77e71ff3985ac93351a912733ad0f";
+ };
+ }
+ {
+ name = "convert_source_map___convert_source_map_1.6.0.tgz";
+ path = fetchurl {
+ name = "convert_source_map___convert_source_map_1.6.0.tgz";
+ url = "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz";
+ sha1 = "51b537a8c43e0f04dec1993bffcdd504e758ac20";
+ };
+ }
+ {
+ name = "cookie_signature___cookie_signature_1.0.6.tgz";
+ path = fetchurl {
+ name = "cookie_signature___cookie_signature_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz";
+ sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c";
+ };
+ }
+ {
+ name = "cookie___cookie_0.3.1.tgz";
+ path = fetchurl {
+ name = "cookie___cookie_0.3.1.tgz";
+ url = "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz";
+ sha1 = "e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb";
+ };
+ }
+ {
+ name = "cookie___cookie_0.4.0.tgz";
+ path = fetchurl {
+ name = "cookie___cookie_0.4.0.tgz";
+ url = "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz";
+ sha1 = "beb437e7022b3b6d49019d088665303ebe9c14ba";
+ };
+ }
+ {
+ name = "copy_concurrently___copy_concurrently_1.0.5.tgz";
+ path = fetchurl {
+ name = "copy_concurrently___copy_concurrently_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz";
+ sha1 = "92297398cae34937fcafd6ec8139c18051f0b5e0";
+ };
+ }
+ {
+ name = "copy_descriptor___copy_descriptor_0.1.1.tgz";
+ path = fetchurl {
+ name = "copy_descriptor___copy_descriptor_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz";
+ sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d";
+ };
+ }
+ {
+ name = "copy_to_clipboard___copy_to_clipboard_3.0.8.tgz";
+ path = fetchurl {
+ name = "copy_to_clipboard___copy_to_clipboard_3.0.8.tgz";
+ url = "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.0.8.tgz";
+ sha1 = "f4e82f4a8830dce4666b7eb8ded0c9bcc313aba9";
+ };
+ }
+ {
+ name = "copy_webpack_plugin___copy_webpack_plugin_5.0.4.tgz";
+ path = fetchurl {
+ name = "copy_webpack_plugin___copy_webpack_plugin_5.0.4.tgz";
+ url = "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.0.4.tgz";
+ sha1 = "c78126f604e24f194c6ec2f43a64e232b5d43655";
+ };
+ }
+ {
+ name = "core_js_compat___core_js_compat_3.1.4.tgz";
+ path = fetchurl {
+ name = "core_js_compat___core_js_compat_3.1.4.tgz";
+ url = "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.1.4.tgz";
+ sha1 = "e4d0c40fbd01e65b1d457980fe4112d4358a7408";
+ };
+ }
+ {
+ name = "core_js_pure___core_js_pure_3.1.4.tgz";
+ path = fetchurl {
+ name = "core_js_pure___core_js_pure_3.1.4.tgz";
+ url = "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.1.4.tgz";
+ sha1 = "5fa17dc77002a169a3566cc48dc774d2e13e3769";
+ };
+ }
+ {
+ name = "core_js___core_js_3.2.1.tgz";
+ path = fetchurl {
+ name = "core_js___core_js_3.2.1.tgz";
+ url = "https://registry.yarnpkg.com/core-js/-/core-js-3.2.1.tgz";
+ sha1 = "cd41f38534da6cc59f7db050fe67307de9868b09";
+ };
+ }
+ {
+ name = "core_js___core_js_2.3.0.tgz";
+ path = fetchurl {
+ name = "core_js___core_js_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/core-js/-/core-js-2.3.0.tgz";
+ sha1 = "fab83fbb0b2d8dc85fa636c4b9d34c75420c6d65";
+ };
+ }
+ {
+ name = "core_util_is___core_util_is_1.0.2.tgz";
+ path = fetchurl {
+ name = "core_util_is___core_util_is_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz";
+ sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+ };
+ }
+ {
+ name = "cosmiconfig___cosmiconfig_5.2.1.tgz";
+ path = fetchurl {
+ name = "cosmiconfig___cosmiconfig_5.2.1.tgz";
+ url = "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz";
+ sha1 = "040f726809c591e77a17c0a3626ca45b4f168b1a";
+ };
+ }
+ {
+ name = "create_ecdh___create_ecdh_4.0.0.tgz";
+ path = fetchurl {
+ name = "create_ecdh___create_ecdh_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz";
+ sha1 = "888c723596cdf7612f6498233eebd7a35301737d";
+ };
+ }
+ {
+ name = "create_error_class___create_error_class_3.0.2.tgz";
+ path = fetchurl {
+ name = "create_error_class___create_error_class_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz";
+ sha1 = "06be7abef947a3f14a30fd610671d401bca8b7b6";
+ };
+ }
+ {
+ name = "create_hash___create_hash_1.1.3.tgz";
+ path = fetchurl {
+ name = "create_hash___create_hash_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz";
+ sha1 = "606042ac8b9262750f483caddab0f5819172d8fd";
+ };
+ }
+ {
+ name = "create_hmac___create_hmac_1.1.6.tgz";
+ path = fetchurl {
+ name = "create_hmac___create_hmac_1.1.6.tgz";
+ url = "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.6.tgz";
+ sha1 = "acb9e221a4e17bdb076e90657c42b93e3726cf06";
+ };
+ }
+ {
+ name = "cropper___cropper_2.3.0.tgz";
+ path = fetchurl {
+ name = "cropper___cropper_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/cropper/-/cropper-2.3.0.tgz";
+ sha1 = "607461d4e7aa7a7fe15a26834b14b7f0c2801562";
+ };
+ }
+ {
+ name = "cross_spawn___cross_spawn_6.0.5.tgz";
+ path = fetchurl {
+ name = "cross_spawn___cross_spawn_6.0.5.tgz";
+ url = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz";
+ sha1 = "4a5ec7c64dfae22c3a14124dbacdee846d80cbc4";
+ };
+ }
+ {
+ name = "cross_spawn___cross_spawn_3.0.1.tgz";
+ path = fetchurl {
+ name = "cross_spawn___cross_spawn_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz";
+ sha1 = "1256037ecb9f0c5f79e3d6ef135e30770184b982";
+ };
+ }
+ {
+ name = "cross_spawn___cross_spawn_5.1.0.tgz";
+ path = fetchurl {
+ name = "cross_spawn___cross_spawn_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz";
+ sha1 = "e8bd0efee58fcff6f8f94510a0a554bbfa235449";
+ };
+ }
+ {
+ name = "crypt___crypt_0.0.2.tgz";
+ path = fetchurl {
+ name = "crypt___crypt_0.0.2.tgz";
+ url = "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz";
+ sha1 = "88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b";
+ };
+ }
+ {
+ name = "crypto_browserify___crypto_browserify_3.12.0.tgz";
+ path = fetchurl {
+ name = "crypto_browserify___crypto_browserify_3.12.0.tgz";
+ url = "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz";
+ sha1 = "396cf9f3137f03e4b8e532c58f698254e00f80ec";
+ };
+ }
+ {
+ name = "crypto_random_string___crypto_random_string_1.0.0.tgz";
+ path = fetchurl {
+ name = "crypto_random_string___crypto_random_string_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz";
+ sha1 = "a230f64f568310e1498009940790ec99545bca7e";
+ };
+ }
+ {
+ name = "css_b64_images___css_b64_images_0.2.5.tgz";
+ path = fetchurl {
+ name = "css_b64_images___css_b64_images_0.2.5.tgz";
+ url = "https://registry.yarnpkg.com/css-b64-images/-/css-b64-images-0.2.5.tgz";
+ sha1 = "42005d83204b2b4a5d93b6b1a5644133b5927a02";
+ };
+ }
+ {
+ name = "css_loader___css_loader_1.0.1.tgz";
+ path = fetchurl {
+ name = "css_loader___css_loader_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/css-loader/-/css-loader-1.0.1.tgz";
+ sha1 = "6885bb5233b35ec47b006057da01cc640b6b79fe";
+ };
+ }
+ {
+ name = "css_selector_parser___css_selector_parser_1.3.0.tgz";
+ path = fetchurl {
+ name = "css_selector_parser___css_selector_parser_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/css-selector-parser/-/css-selector-parser-1.3.0.tgz";
+ sha1 = "5f1ad43e2d8eefbfdc304fcd39a521664943e3eb";
+ };
+ }
+ {
+ name = "css_selector_tokenizer___css_selector_tokenizer_0.7.1.tgz";
+ path = fetchurl {
+ name = "css_selector_tokenizer___css_selector_tokenizer_0.7.1.tgz";
+ url = "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz";
+ sha1 = "a177271a8bca5019172f4f891fc6eed9cbf68d5d";
+ };
+ }
+ {
+ name = "css___css_2.2.4.tgz";
+ path = fetchurl {
+ name = "css___css_2.2.4.tgz";
+ url = "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz";
+ sha1 = "c646755c73971f2bba6a601e2cf2fd71b1298929";
+ };
+ }
+ {
+ name = "cssesc___cssesc_0.1.0.tgz";
+ path = fetchurl {
+ name = "cssesc___cssesc_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz";
+ sha1 = "c814903e45623371a0477b40109aaafbeeaddbb4";
+ };
+ }
+ {
+ name = "cssesc___cssesc_2.0.0.tgz";
+ path = fetchurl {
+ name = "cssesc___cssesc_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz";
+ sha1 = "3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703";
+ };
+ }
+ {
+ name = "cssesc___cssesc_3.0.0.tgz";
+ path = fetchurl {
+ name = "cssesc___cssesc_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz";
+ sha1 = "37741919903b868565e1c09ea747445cd18983ee";
+ };
+ }
+ {
+ name = "cssom___cssom_0.3.4.tgz";
+ path = fetchurl {
+ name = "cssom___cssom_0.3.4.tgz";
+ url = "https://registry.yarnpkg.com/cssom/-/cssom-0.3.4.tgz";
+ sha1 = "8cd52e8a3acfd68d3aed38ee0a640177d2f9d797";
+ };
+ }
+ {
+ name = "cssstyle___cssstyle_1.1.1.tgz";
+ path = fetchurl {
+ name = "cssstyle___cssstyle_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.1.1.tgz";
+ sha1 = "18b038a9c44d65f7a8e428a653b9f6fe42faf5fb";
+ };
+ }
+ {
+ name = "currently_unhandled___currently_unhandled_0.4.1.tgz";
+ path = fetchurl {
+ name = "currently_unhandled___currently_unhandled_0.4.1.tgz";
+ url = "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz";
+ sha1 = "988df33feab191ef799a61369dd76c17adf957ea";
+ };
+ }
+ {
+ name = "custom_event___custom_event_1.0.1.tgz";
+ path = fetchurl {
+ name = "custom_event___custom_event_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz";
+ sha1 = "5d02a46850adf1b4a317946a3928fccb5bfd0425";
+ };
+ }
+ {
+ name = "custom_jquery_matchers___custom_jquery_matchers_2.1.0.tgz";
+ path = fetchurl {
+ name = "custom_jquery_matchers___custom_jquery_matchers_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/custom-jquery-matchers/-/custom-jquery-matchers-2.1.0.tgz";
+ sha1 = "e5988fa9715c416b0986b372563f872d9e91e024";
+ };
+ }
+ {
+ name = "cyclist___cyclist_0.2.2.tgz";
+ path = fetchurl {
+ name = "cyclist___cyclist_0.2.2.tgz";
+ url = "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz";
+ sha1 = "1b33792e11e914a2fd6d6ed6447464444e5fa640";
+ };
+ }
+ {
+ name = "d3_array___d3_array_1.2.1.tgz";
+ path = fetchurl {
+ name = "d3_array___d3_array_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.1.tgz";
+ sha1 = "d1ca33de2f6ac31efadb8e050a021d7e2396d5dc";
+ };
+ }
+ {
+ name = "d3_axis___d3_axis_1.0.8.tgz";
+ path = fetchurl {
+ name = "d3_axis___d3_axis_1.0.8.tgz";
+ url = "https://registry.yarnpkg.com/d3-axis/-/d3-axis-1.0.8.tgz";
+ sha1 = "31a705a0b535e65759de14173a31933137f18efa";
+ };
+ }
+ {
+ name = "d3_brush___d3_brush_1.0.4.tgz";
+ path = fetchurl {
+ name = "d3_brush___d3_brush_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/d3-brush/-/d3-brush-1.0.4.tgz";
+ sha1 = "00c2f238019f24f6c0a194a26d41a1530ffe7bc4";
+ };
+ }
+ {
+ name = "d3_chord___d3_chord_1.0.4.tgz";
+ path = fetchurl {
+ name = "d3_chord___d3_chord_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/d3-chord/-/d3-chord-1.0.4.tgz";
+ sha1 = "7dec4f0ba886f713fe111c45f763414f6f74ca2c";
+ };
+ }
+ {
+ name = "d3_collection___d3_collection_1.0.4.tgz";
+ path = fetchurl {
+ name = "d3_collection___d3_collection_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.4.tgz";
+ sha1 = "342dfd12837c90974f33f1cc0a785aea570dcdc2";
+ };
+ }
+ {
+ name = "d3_color___d3_color_1.0.3.tgz";
+ path = fetchurl {
+ name = "d3_color___d3_color_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/d3-color/-/d3-color-1.0.3.tgz";
+ sha1 = "bc7643fca8e53a8347e2fbdaffa236796b58509b";
+ };
+ }
+ {
+ name = "d3_contour___d3_contour_1.3.2.tgz";
+ path = fetchurl {
+ name = "d3_contour___d3_contour_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/d3-contour/-/d3-contour-1.3.2.tgz";
+ sha1 = "652aacd500d2264cb3423cee10db69f6f59bead3";
+ };
+ }
+ {
+ name = "d3_dispatch___d3_dispatch_1.0.3.tgz";
+ path = fetchurl {
+ name = "d3_dispatch___d3_dispatch_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.3.tgz";
+ sha1 = "46e1491eaa9b58c358fce5be4e8bed626e7871f8";
+ };
+ }
+ {
+ name = "d3_drag___d3_drag_1.2.1.tgz";
+ path = fetchurl {
+ name = "d3_drag___d3_drag_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.2.1.tgz";
+ sha1 = "df8dd4c502fb490fc7462046a8ad98a5c479282d";
+ };
+ }
+ {
+ name = "d3_dsv___d3_dsv_1.0.8.tgz";
+ path = fetchurl {
+ name = "d3_dsv___d3_dsv_1.0.8.tgz";
+ url = "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-1.0.8.tgz";
+ sha1 = "907e240d57b386618dc56468bacfe76bf19764ae";
+ };
+ }
+ {
+ name = "d3_ease___d3_ease_1.0.3.tgz";
+ path = fetchurl {
+ name = "d3_ease___d3_ease_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.3.tgz";
+ sha1 = "68bfbc349338a380c44d8acc4fbc3304aa2d8c0e";
+ };
+ }
+ {
+ name = "d3_fetch___d3_fetch_1.1.2.tgz";
+ path = fetchurl {
+ name = "d3_fetch___d3_fetch_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-1.1.2.tgz";
+ sha1 = "957c8fbc6d4480599ba191b1b2518bf86b3e1be2";
+ };
+ }
+ {
+ name = "d3_force___d3_force_1.1.0.tgz";
+ path = fetchurl {
+ name = "d3_force___d3_force_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/d3-force/-/d3-force-1.1.0.tgz";
+ sha1 = "cebf3c694f1078fcc3d4daf8e567b2fbd70d4ea3";
+ };
+ }
+ {
+ name = "d3_format___d3_format_1.2.2.tgz";
+ path = fetchurl {
+ name = "d3_format___d3_format_1.2.2.tgz";
+ url = "https://registry.yarnpkg.com/d3-format/-/d3-format-1.2.2.tgz";
+ sha1 = "1a39c479c8a57fe5051b2e67a3bee27061a74e7a";
+ };
+ }
+ {
+ name = "d3_geo___d3_geo_1.9.1.tgz";
+ path = fetchurl {
+ name = "d3_geo___d3_geo_1.9.1.tgz";
+ url = "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.9.1.tgz";
+ sha1 = "157e3b0f917379d0f73bebfff3be537f49fa7356";
+ };
+ }
+ {
+ name = "d3_hierarchy___d3_hierarchy_1.1.5.tgz";
+ path = fetchurl {
+ name = "d3_hierarchy___d3_hierarchy_1.1.5.tgz";
+ url = "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.1.5.tgz";
+ sha1 = "a1c845c42f84a206bcf1c01c01098ea4ddaa7a26";
+ };
+ }
+ {
+ name = "d3_interpolate___d3_interpolate_1.1.6.tgz";
+ path = fetchurl {
+ name = "d3_interpolate___d3_interpolate_1.1.6.tgz";
+ url = "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.1.6.tgz";
+ sha1 = "2cf395ae2381804df08aa1bf766b7f97b5f68fb6";
+ };
+ }
+ {
+ name = "d3_path___d3_path_1.0.5.tgz";
+ path = fetchurl {
+ name = "d3_path___d3_path_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.5.tgz";
+ sha1 = "241eb1849bd9e9e8021c0d0a799f8a0e8e441764";
+ };
+ }
+ {
+ name = "d3_polygon___d3_polygon_1.0.3.tgz";
+ path = fetchurl {
+ name = "d3_polygon___d3_polygon_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-1.0.3.tgz";
+ sha1 = "16888e9026460933f2b179652ad378224d382c62";
+ };
+ }
+ {
+ name = "d3_quadtree___d3_quadtree_1.0.3.tgz";
+ path = fetchurl {
+ name = "d3_quadtree___d3_quadtree_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-1.0.3.tgz";
+ sha1 = "ac7987e3e23fe805a990f28e1b50d38fcb822438";
+ };
+ }
+ {
+ name = "d3_queue___d3_queue_3.0.7.tgz";
+ path = fetchurl {
+ name = "d3_queue___d3_queue_3.0.7.tgz";
+ url = "https://registry.yarnpkg.com/d3-queue/-/d3-queue-3.0.7.tgz";
+ sha1 = "c93a2e54b417c0959129d7d73f6cf7d4292e7618";
+ };
+ }
+ {
+ name = "d3_random___d3_random_1.1.0.tgz";
+ path = fetchurl {
+ name = "d3_random___d3_random_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/d3-random/-/d3-random-1.1.0.tgz";
+ sha1 = "6642e506c6fa3a648595d2b2469788a8d12529d3";
+ };
+ }
+ {
+ name = "d3_request___d3_request_1.0.6.tgz";
+ path = fetchurl {
+ name = "d3_request___d3_request_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/d3-request/-/d3-request-1.0.6.tgz";
+ sha1 = "a1044a9ef4ec28c824171c9379fae6d79474b19f";
+ };
+ }
+ {
+ name = "d3_scale_chromatic___d3_scale_chromatic_1.3.3.tgz";
+ path = fetchurl {
+ name = "d3_scale_chromatic___d3_scale_chromatic_1.3.3.tgz";
+ url = "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-1.3.3.tgz";
+ sha1 = "dad4366f0edcb288f490128979c3c793583ed3c0";
+ };
+ }
+ {
+ name = "d3_scale___d3_scale_1.0.7.tgz";
+ path = fetchurl {
+ name = "d3_scale___d3_scale_1.0.7.tgz";
+ url = "https://registry.yarnpkg.com/d3-scale/-/d3-scale-1.0.7.tgz";
+ sha1 = "fa90324b3ea8a776422bd0472afab0b252a0945d";
+ };
+ }
+ {
+ name = "d3_scale___d3_scale_2.2.2.tgz";
+ path = fetchurl {
+ name = "d3_scale___d3_scale_2.2.2.tgz";
+ url = "https://registry.yarnpkg.com/d3-scale/-/d3-scale-2.2.2.tgz";
+ sha1 = "4e880e0b2745acaaddd3ede26a9e908a9e17b81f";
+ };
+ }
+ {
+ name = "d3_selection___d3_selection_1.3.0.tgz";
+ path = fetchurl {
+ name = "d3_selection___d3_selection_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.3.0.tgz";
+ sha1 = "d53772382d3dc4f7507bfb28bcd2d6aed2a0ad6d";
+ };
+ }
+ {
+ name = "d3_shape___d3_shape_1.2.0.tgz";
+ path = fetchurl {
+ name = "d3_shape___d3_shape_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.2.0.tgz";
+ sha1 = "45d01538f064bafd05ea3d6d2cb748fd8c41f777";
+ };
+ }
+ {
+ name = "d3_time_format___d3_time_format_2.1.1.tgz";
+ path = fetchurl {
+ name = "d3_time_format___d3_time_format_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.1.1.tgz";
+ sha1 = "85b7cdfbc9ffca187f14d3c456ffda268081bb31";
+ };
+ }
+ {
+ name = "d3_time___d3_time_1.0.8.tgz";
+ path = fetchurl {
+ name = "d3_time___d3_time_1.0.8.tgz";
+ url = "https://registry.yarnpkg.com/d3-time/-/d3-time-1.0.8.tgz";
+ sha1 = "dbd2d6007bf416fe67a76d17947b784bffea1e84";
+ };
+ }
+ {
+ name = "d3_timer___d3_timer_1.0.7.tgz";
+ path = fetchurl {
+ name = "d3_timer___d3_timer_1.0.7.tgz";
+ url = "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.7.tgz";
+ sha1 = "df9650ca587f6c96607ff4e60cc38229e8dd8531";
+ };
+ }
+ {
+ name = "d3_transition___d3_transition_1.1.1.tgz";
+ path = fetchurl {
+ name = "d3_transition___d3_transition_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.1.1.tgz";
+ sha1 = "d8ef89c3b848735b060e54a39b32aaebaa421039";
+ };
+ }
+ {
+ name = "d3_voronoi___d3_voronoi_1.1.2.tgz";
+ path = fetchurl {
+ name = "d3_voronoi___d3_voronoi_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/d3-voronoi/-/d3-voronoi-1.1.2.tgz";
+ sha1 = "1687667e8f13a2d158c80c1480c5a29cb0d8973c";
+ };
+ }
+ {
+ name = "d3_zoom___d3_zoom_1.7.1.tgz";
+ path = fetchurl {
+ name = "d3_zoom___d3_zoom_1.7.1.tgz";
+ url = "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-1.7.1.tgz";
+ sha1 = "02f43b3c3e2db54f364582d7e4a236ccc5506b63";
+ };
+ }
+ {
+ name = "d3___d3_4.13.0.tgz";
+ path = fetchurl {
+ name = "d3___d3_4.13.0.tgz";
+ url = "https://registry.yarnpkg.com/d3/-/d3-4.13.0.tgz";
+ sha1 = "ab236ff8cf0cfc27a81e69bf2fb7518bc9b4f33d";
+ };
+ }
+ {
+ name = "d3___d3_5.9.2.tgz";
+ path = fetchurl {
+ name = "d3___d3_5.9.2.tgz";
+ url = "https://registry.yarnpkg.com/d3/-/d3-5.9.2.tgz";
+ sha1 = "64e8a7e9c3d96d9e6e4999d2c8a2c829767e67f5";
+ };
+ }
+ {
+ name = "dagre_d3_renderer___dagre_d3_renderer_0.5.8.tgz";
+ path = fetchurl {
+ name = "dagre_d3_renderer___dagre_d3_renderer_0.5.8.tgz";
+ url = "https://registry.yarnpkg.com/dagre-d3-renderer/-/dagre-d3-renderer-0.5.8.tgz";
+ sha1 = "aa071bb71d3c4d67426925906f3f6ddead49c1a3";
+ };
+ }
+ {
+ name = "dagre_layout___dagre_layout_0.8.8.tgz";
+ path = fetchurl {
+ name = "dagre_layout___dagre_layout_0.8.8.tgz";
+ url = "https://registry.yarnpkg.com/dagre-layout/-/dagre-layout-0.8.8.tgz";
+ sha1 = "9b6792f24229f402441c14162c1049e3f261f6d9";
+ };
+ }
+ {
+ name = "dashdash___dashdash_1.14.1.tgz";
+ path = fetchurl {
+ name = "dashdash___dashdash_1.14.1.tgz";
+ url = "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz";
+ sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
+ };
+ }
+ {
+ name = "data_urls___data_urls_1.1.0.tgz";
+ path = fetchurl {
+ name = "data_urls___data_urls_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz";
+ sha1 = "15ee0582baa5e22bb59c77140da8f9c76963bbfe";
+ };
+ }
+ {
+ name = "date_format___date_format_2.1.0.tgz";
+ path = fetchurl {
+ name = "date_format___date_format_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/date-format/-/date-format-2.1.0.tgz";
+ sha1 = "31d5b5ea211cf5fd764cd38baf9d033df7e125cf";
+ };
+ }
+ {
+ name = "date_now___date_now_0.1.4.tgz";
+ path = fetchurl {
+ name = "date_now___date_now_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz";
+ sha1 = "eaf439fd4d4848ad74e5cc7dbef200672b9e345b";
+ };
+ }
+ {
+ name = "dateformat___dateformat_3.0.3.tgz";
+ path = fetchurl {
+ name = "dateformat___dateformat_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz";
+ sha1 = "a6e37499a4d9a9cf85ef5872044d62901c9889ae";
+ };
+ }
+ {
+ name = "de_indent___de_indent_1.0.2.tgz";
+ path = fetchurl {
+ name = "de_indent___de_indent_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz";
+ sha1 = "b2038e846dc33baa5796128d0804b455b8c1e21d";
+ };
+ }
+ {
+ name = "debug___debug_2.6.9.tgz";
+ path = fetchurl {
+ name = "debug___debug_2.6.9.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz";
+ sha1 = "5d128515df134ff327e90a4c93f4e077a536341f";
+ };
+ }
+ {
+ name = "debug___debug_3.1.0.tgz";
+ path = fetchurl {
+ name = "debug___debug_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz";
+ sha1 = "5bb5a0672628b64149566ba16819e61518c67261";
+ };
+ }
+ {
+ name = "debug___debug_3.2.6.tgz";
+ path = fetchurl {
+ name = "debug___debug_3.2.6.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz";
+ sha1 = "e83d17de16d8a7efb7717edbe5fb10135eee629b";
+ };
+ }
+ {
+ name = "debug___debug_4.1.1.tgz";
+ path = fetchurl {
+ name = "debug___debug_4.1.1.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz";
+ sha1 = "3b72260255109c6b589cee050f1d516139664791";
+ };
+ }
+ {
+ name = "decamelize_keys___decamelize_keys_1.1.0.tgz";
+ path = fetchurl {
+ name = "decamelize_keys___decamelize_keys_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz";
+ sha1 = "d171a87933252807eb3cb61dc1c1445d078df2d9";
+ };
+ }
+ {
+ name = "decamelize___decamelize_1.2.0.tgz";
+ path = fetchurl {
+ name = "decamelize___decamelize_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz";
+ sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
+ };
+ }
+ {
+ name = "deckar01_task_list___deckar01_task_list_2.2.0.tgz";
+ path = fetchurl {
+ name = "deckar01_task_list___deckar01_task_list_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/deckar01-task_list/-/deckar01-task_list-2.2.0.tgz";
+ sha1 = "5cc3ea06f01d3d786b1a667064a462eb5d069bd3";
+ };
+ }
+ {
+ name = "decode_uri_component___decode_uri_component_0.2.0.tgz";
+ path = fetchurl {
+ name = "decode_uri_component___decode_uri_component_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz";
+ sha1 = "eb3913333458775cb84cd1a1fae062106bb87545";
+ };
+ }
+ {
+ name = "deep_equal___deep_equal_1.0.1.tgz";
+ path = fetchurl {
+ name = "deep_equal___deep_equal_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz";
+ sha1 = "f5d260292b660e084eff4cdbc9f08ad3247448b5";
+ };
+ }
+ {
+ name = "deep_extend___deep_extend_0.6.0.tgz";
+ path = fetchurl {
+ name = "deep_extend___deep_extend_0.6.0.tgz";
+ url = "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz";
+ sha1 = "c4fa7c95404a17a9c3e8ca7e1537312b736330ac";
+ };
+ }
+ {
+ name = "deep_extend___deep_extend_0.5.1.tgz";
+ path = fetchurl {
+ name = "deep_extend___deep_extend_0.5.1.tgz";
+ url = "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.5.1.tgz";
+ sha1 = "b894a9dd90d3023fbf1c55a394fb858eb2066f1f";
+ };
+ }
+ {
+ name = "deep_is___deep_is_0.1.3.tgz";
+ path = fetchurl {
+ name = "deep_is___deep_is_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz";
+ sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
+ };
+ }
+ {
+ name = "default_gateway___default_gateway_4.2.0.tgz";
+ path = fetchurl {
+ name = "default_gateway___default_gateway_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz";
+ sha1 = "167104c7500c2115f6dd69b0a536bb8ed720552b";
+ };
+ }
+ {
+ name = "default_require_extensions___default_require_extensions_2.0.0.tgz";
+ path = fetchurl {
+ name = "default_require_extensions___default_require_extensions_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-2.0.0.tgz";
+ sha1 = "f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7";
+ };
+ }
+ {
+ name = "define_properties___define_properties_1.1.3.tgz";
+ path = fetchurl {
+ name = "define_properties___define_properties_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz";
+ sha1 = "cf88da6cbee26fe6db7094f61d870cbd84cee9f1";
+ };
+ }
+ {
+ name = "define_property___define_property_0.2.5.tgz";
+ path = fetchurl {
+ name = "define_property___define_property_0.2.5.tgz";
+ url = "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz";
+ sha1 = "c35b1ef918ec3c990f9a5bc57be04aacec5c8116";
+ };
+ }
+ {
+ name = "define_property___define_property_1.0.0.tgz";
+ path = fetchurl {
+ name = "define_property___define_property_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz";
+ sha1 = "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6";
+ };
+ }
+ {
+ name = "define_property___define_property_2.0.2.tgz";
+ path = fetchurl {
+ name = "define_property___define_property_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz";
+ sha1 = "d459689e8d654ba77e02a817f8710d702cb16e9d";
+ };
+ }
+ {
+ name = "defined___defined_1.0.0.tgz";
+ path = fetchurl {
+ name = "defined___defined_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz";
+ sha1 = "c98d9bcef75674188e110969151199e39b1fa693";
+ };
+ }
+ {
+ name = "del___del_2.2.2.tgz";
+ path = fetchurl {
+ name = "del___del_2.2.2.tgz";
+ url = "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz";
+ sha1 = "c12c981d067846c84bcaf862cff930d907ffd1a8";
+ };
+ }
+ {
+ name = "del___del_4.1.1.tgz";
+ path = fetchurl {
+ name = "del___del_4.1.1.tgz";
+ url = "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz";
+ sha1 = "9e8f117222ea44a31ff3a156c049b99052a9f0b4";
+ };
+ }
+ {
+ name = "delayed_stream___delayed_stream_1.0.0.tgz";
+ path = fetchurl {
+ name = "delayed_stream___delayed_stream_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz";
+ sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
+ };
+ }
+ {
+ name = "delegate___delegate_3.1.2.tgz";
+ path = fetchurl {
+ name = "delegate___delegate_3.1.2.tgz";
+ url = "https://registry.yarnpkg.com/delegate/-/delegate-3.1.2.tgz";
+ sha1 = "1e1bc6f5cadda6cb6cbf7e6d05d0bcdd5712aebe";
+ };
+ }
+ {
+ name = "delegates___delegates_1.0.0.tgz";
+ path = fetchurl {
+ name = "delegates___delegates_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz";
+ sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a";
+ };
+ }
+ {
+ name = "depd___depd_1.1.1.tgz";
+ path = fetchurl {
+ name = "depd___depd_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz";
+ sha1 = "5783b4e1c459f06fa5ca27f991f3d06e7a310359";
+ };
+ }
+ {
+ name = "depd___depd_1.1.2.tgz";
+ path = fetchurl {
+ name = "depd___depd_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz";
+ sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9";
+ };
+ }
+ {
+ name = "des.js___des.js_1.0.0.tgz";
+ path = fetchurl {
+ name = "des.js___des.js_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz";
+ sha1 = "c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc";
+ };
+ }
+ {
+ name = "destroy___destroy_1.0.4.tgz";
+ path = fetchurl {
+ name = "destroy___destroy_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz";
+ sha1 = "978857442c44749e4206613e37946205826abd80";
+ };
+ }
+ {
+ name = "detab___detab_2.0.2.tgz";
+ path = fetchurl {
+ name = "detab___detab_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/detab/-/detab-2.0.2.tgz";
+ sha1 = "074970d1a807b045d0258a4235df5928dd683561";
+ };
+ }
+ {
+ name = "detect_file___detect_file_1.0.0.tgz";
+ path = fetchurl {
+ name = "detect_file___detect_file_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz";
+ sha1 = "f0d66d03672a825cb1b73bdb3fe62310c8e552b7";
+ };
+ }
+ {
+ name = "detect_libc___detect_libc_1.0.3.tgz";
+ path = fetchurl {
+ name = "detect_libc___detect_libc_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz";
+ sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b";
+ };
+ }
+ {
+ name = "detect_newline___detect_newline_2.1.0.tgz";
+ path = fetchurl {
+ name = "detect_newline___detect_newline_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz";
+ sha1 = "f41f1c10be4b00e87b5f13da680759f2c5bfd3e2";
+ };
+ }
+ {
+ name = "detect_node___detect_node_2.0.4.tgz";
+ path = fetchurl {
+ name = "detect_node___detect_node_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz";
+ sha1 = "014ee8f8f669c5c58023da64b8179c083a28c46c";
+ };
+ }
+ {
+ name = "detective___detective_4.7.1.tgz";
+ path = fetchurl {
+ name = "detective___detective_4.7.1.tgz";
+ url = "https://registry.yarnpkg.com/detective/-/detective-4.7.1.tgz";
+ sha1 = "0eca7314338442febb6d65da54c10bb1c82b246e";
+ };
+ }
+ {
+ name = "di___di_0.0.1.tgz";
+ path = fetchurl {
+ name = "di___di_0.0.1.tgz";
+ url = "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz";
+ sha1 = "806649326ceaa7caa3306d75d985ea2748ba913c";
+ };
+ }
+ {
+ name = "diff_sequences___diff_sequences_24.3.0.tgz";
+ path = fetchurl {
+ name = "diff_sequences___diff_sequences_24.3.0.tgz";
+ url = "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.3.0.tgz";
+ sha1 = "0f20e8a1df1abddaf4d9c226680952e64118b975";
+ };
+ }
+ {
+ name = "diff___diff_3.5.0.tgz";
+ path = fetchurl {
+ name = "diff___diff_3.5.0.tgz";
+ url = "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz";
+ sha1 = "800c0dd1e0a8bfbc95835c202ad220fe317e5a12";
+ };
+ }
+ {
+ name = "diff___diff_4.0.1.tgz";
+ path = fetchurl {
+ name = "diff___diff_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/diff/-/diff-4.0.1.tgz";
+ sha1 = "0c667cb467ebbb5cea7f14f135cc2dba7780a8ff";
+ };
+ }
+ {
+ name = "diffie_hellman___diffie_hellman_5.0.2.tgz";
+ path = fetchurl {
+ name = "diffie_hellman___diffie_hellman_5.0.2.tgz";
+ url = "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz";
+ sha1 = "b5835739270cfe26acf632099fded2a07f209e5e";
+ };
+ }
+ {
+ name = "dir_glob___dir_glob_2.2.2.tgz";
+ path = fetchurl {
+ name = "dir_glob___dir_glob_2.2.2.tgz";
+ url = "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz";
+ sha1 = "fa09f0694153c8918b18ba0deafae94769fc50c4";
+ };
+ }
+ {
+ name = "dns_equal___dns_equal_1.0.0.tgz";
+ path = fetchurl {
+ name = "dns_equal___dns_equal_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz";
+ sha1 = "b39e7f1da6eb0a75ba9c17324b34753c47e0654d";
+ };
+ }
+ {
+ name = "dns_packet___dns_packet_1.2.2.tgz";
+ path = fetchurl {
+ name = "dns_packet___dns_packet_1.2.2.tgz";
+ url = "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.2.2.tgz";
+ sha1 = "a8a26bec7646438963fc86e06f8f8b16d6c8bf7a";
+ };
+ }
+ {
+ name = "dns_txt___dns_txt_2.0.2.tgz";
+ path = fetchurl {
+ name = "dns_txt___dns_txt_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz";
+ sha1 = "b91d806f5d27188e4ab3e7d107d881a1cc4642b6";
+ };
+ }
+ {
+ name = "docdash___docdash_1.0.2.tgz";
+ path = fetchurl {
+ name = "docdash___docdash_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/docdash/-/docdash-1.0.2.tgz";
+ sha1 = "0449a8f6bb247f563020b78a5485dea95ae2e094";
+ };
+ }
+ {
+ name = "doctrine_temporary_fork___doctrine_temporary_fork_2.1.0.tgz";
+ path = fetchurl {
+ name = "doctrine_temporary_fork___doctrine_temporary_fork_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/doctrine-temporary-fork/-/doctrine-temporary-fork-2.1.0.tgz";
+ sha1 = "36f2154f556ee4f1e60311d391cd23de5187ed57";
+ };
+ }
+ {
+ name = "doctrine___doctrine_1.5.0.tgz";
+ path = fetchurl {
+ name = "doctrine___doctrine_1.5.0.tgz";
+ url = "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz";
+ sha1 = "379dce730f6166f76cefa4e6707a159b02c5a6fa";
+ };
+ }
+ {
+ name = "doctrine___doctrine_2.1.0.tgz";
+ path = fetchurl {
+ name = "doctrine___doctrine_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz";
+ sha1 = "5cd01fc101621b42c4cd7f5d1a66243716d3f39d";
+ };
+ }
+ {
+ name = "document_register_element___document_register_element_1.13.1.tgz";
+ path = fetchurl {
+ name = "document_register_element___document_register_element_1.13.1.tgz";
+ url = "https://registry.yarnpkg.com/document-register-element/-/document-register-element-1.13.1.tgz";
+ sha1 = "dad8cb7be38e04ee3f56842e6cf81af46c1249ba";
+ };
+ }
+ {
+ name = "documentation___documentation_12.0.3.tgz";
+ path = fetchurl {
+ name = "documentation___documentation_12.0.3.tgz";
+ url = "https://registry.yarnpkg.com/documentation/-/documentation-12.0.3.tgz";
+ sha1 = "32f91da8e5cb4104f69db9fd32c87773a1ad6240";
+ };
+ }
+ {
+ name = "dom_serialize___dom_serialize_2.2.1.tgz";
+ path = fetchurl {
+ name = "dom_serialize___dom_serialize_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz";
+ sha1 = "562ae8999f44be5ea3076f5419dcd59eb43ac95b";
+ };
+ }
+ {
+ name = "dom_serializer___dom_serializer_0.1.0.tgz";
+ path = fetchurl {
+ name = "dom_serializer___dom_serializer_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz";
+ sha1 = "073c697546ce0780ce23be4a28e293e40bc30c82";
+ };
+ }
+ {
+ name = "domain_browser___domain_browser_1.1.7.tgz";
+ path = fetchurl {
+ name = "domain_browser___domain_browser_1.1.7.tgz";
+ url = "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz";
+ sha1 = "867aa4b093faa05f1de08c06f4d7b21fdf8698bc";
+ };
+ }
+ {
+ name = "domelementtype___domelementtype_1.3.0.tgz";
+ path = fetchurl {
+ name = "domelementtype___domelementtype_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz";
+ sha1 = "b17aed82e8ab59e52dd9c19b1756e0fc187204c2";
+ };
+ }
+ {
+ name = "domelementtype___domelementtype_1.1.3.tgz";
+ path = fetchurl {
+ name = "domelementtype___domelementtype_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz";
+ sha1 = "bd28773e2642881aec51544924299c5cd822185b";
+ };
+ }
+ {
+ name = "domexception___domexception_1.0.1.tgz";
+ path = fetchurl {
+ name = "domexception___domexception_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz";
+ sha1 = "937442644ca6a31261ef36e3ec677fe805582c90";
+ };
+ }
+ {
+ name = "domhandler___domhandler_2.4.1.tgz";
+ path = fetchurl {
+ name = "domhandler___domhandler_2.4.1.tgz";
+ url = "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.1.tgz";
+ sha1 = "892e47000a99be55bbf3774ffea0561d8879c259";
+ };
+ }
+ {
+ name = "domutils___domutils_1.6.2.tgz";
+ path = fetchurl {
+ name = "domutils___domutils_1.6.2.tgz";
+ url = "https://registry.yarnpkg.com/domutils/-/domutils-1.6.2.tgz";
+ sha1 = "1958cc0b4c9426e9ed367fb1c8e854891b0fa3ff";
+ };
+ }
+ {
+ name = "dot_prop___dot_prop_4.2.0.tgz";
+ path = fetchurl {
+ name = "dot_prop___dot_prop_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz";
+ sha1 = "1f19e0c2e1aa0e32797c49799f2837ac6af69c57";
+ };
+ }
+ {
+ name = "dropzone___dropzone_4.2.0.tgz";
+ path = fetchurl {
+ name = "dropzone___dropzone_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/dropzone/-/dropzone-4.2.0.tgz";
+ sha1 = "fbe7acbb9918e0706489072ef663effeef8a79f3";
+ };
+ }
+ {
+ name = "duplexer2___duplexer2_0.1.4.tgz";
+ path = fetchurl {
+ name = "duplexer2___duplexer2_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz";
+ sha1 = "8b12dab878c0d69e3e7891051662a32fc6bddcc1";
+ };
+ }
+ {
+ name = "duplexer3___duplexer3_0.1.4.tgz";
+ path = fetchurl {
+ name = "duplexer3___duplexer3_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz";
+ sha1 = "ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2";
+ };
+ }
+ {
+ name = "duplexer___duplexer_0.1.1.tgz";
+ path = fetchurl {
+ name = "duplexer___duplexer_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz";
+ sha1 = "ace6ff808c1ce66b57d1ebf97977acb02334cfc1";
+ };
+ }
+ {
+ name = "duplexify___duplexify_3.7.1.tgz";
+ path = fetchurl {
+ name = "duplexify___duplexify_3.7.1.tgz";
+ url = "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz";
+ sha1 = "2a4df5317f6ccfd91f86d6fd25d8d8a103b88309";
+ };
+ }
+ {
+ name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
+ path = fetchurl {
+ name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz";
+ sha1 = "3a83a904e54353287874c564b7549386849a98c9";
+ };
+ }
+ {
+ name = "echarts___echarts_4.2.1.tgz";
+ path = fetchurl {
+ name = "echarts___echarts_4.2.1.tgz";
+ url = "https://registry.yarnpkg.com/echarts/-/echarts-4.2.1.tgz";
+ sha1 = "9a8ea3b03354f86f824d97625c334cf16965ef03";
+ };
+ }
+ {
+ name = "editions___editions_1.3.4.tgz";
+ path = fetchurl {
+ name = "editions___editions_1.3.4.tgz";
+ url = "https://registry.yarnpkg.com/editions/-/editions-1.3.4.tgz";
+ sha1 = "3662cb592347c3168eb8e498a0ff73271d67f50b";
+ };
+ }
+ {
+ name = "editorconfig___editorconfig_0.15.2.tgz";
+ path = fetchurl {
+ name = "editorconfig___editorconfig_0.15.2.tgz";
+ url = "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.2.tgz";
+ sha1 = "047be983abb9ab3c2eefe5199cb2b7c5689f0702";
+ };
+ }
+ {
+ name = "ee_first___ee_first_1.1.1.tgz";
+ path = fetchurl {
+ name = "ee_first___ee_first_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz";
+ sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
+ };
+ }
+ {
+ name = "ejs___ejs_2.6.1.tgz";
+ path = fetchurl {
+ name = "ejs___ejs_2.6.1.tgz";
+ url = "https://registry.yarnpkg.com/ejs/-/ejs-2.6.1.tgz";
+ sha1 = "498ec0d495655abc6f23cd61868d926464071aa0";
+ };
+ }
+ {
+ name = "electron_to_chromium___electron_to_chromium_1.3.199.tgz";
+ path = fetchurl {
+ name = "electron_to_chromium___electron_to_chromium_1.3.199.tgz";
+ url = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.199.tgz";
+ sha1 = "f9a62a74cda77854310a2abffde8b75591ea09a1";
+ };
+ }
+ {
+ name = "elliptic___elliptic_6.4.0.tgz";
+ path = fetchurl {
+ name = "elliptic___elliptic_6.4.0.tgz";
+ url = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz";
+ sha1 = "cac9af8762c85836187003c8dfe193e5e2eae5df";
+ };
+ }
+ {
+ name = "emoji_regex___emoji_regex_6.1.1.tgz";
+ path = fetchurl {
+ name = "emoji_regex___emoji_regex_6.1.1.tgz";
+ url = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.1.1.tgz";
+ sha1 = "c6cd0ec1b0642e2a3c67a1137efc5e796da4f88e";
+ };
+ }
+ {
+ name = "emoji_regex___emoji_regex_7.0.3.tgz";
+ path = fetchurl {
+ name = "emoji_regex___emoji_regex_7.0.3.tgz";
+ url = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz";
+ sha1 = "933a04052860c85e83c122479c4748a8e4c72156";
+ };
+ }
+ {
+ name = "emoji_regex___emoji_regex_8.0.0.tgz";
+ path = fetchurl {
+ name = "emoji_regex___emoji_regex_8.0.0.tgz";
+ url = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz";
+ sha1 = "e818fd69ce5ccfcb404594f842963bf53164cc37";
+ };
+ }
+ {
+ name = "emoji_unicode_version___emoji_unicode_version_0.2.1.tgz";
+ path = fetchurl {
+ name = "emoji_unicode_version___emoji_unicode_version_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/emoji-unicode-version/-/emoji-unicode-version-0.2.1.tgz";
+ sha1 = "0ebf3666b5414097971d34994e299fce75cdbafc";
+ };
+ }
+ {
+ name = "emojis_list___emojis_list_2.1.0.tgz";
+ path = fetchurl {
+ name = "emojis_list___emojis_list_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz";
+ sha1 = "4daa4d9db00f9819880c79fa457ae5b09a1fd389";
+ };
+ }
+ {
+ name = "encodeurl___encodeurl_1.0.2.tgz";
+ path = fetchurl {
+ name = "encodeurl___encodeurl_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz";
+ sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
+ };
+ }
+ {
+ name = "end_of_stream___end_of_stream_1.4.1.tgz";
+ path = fetchurl {
+ name = "end_of_stream___end_of_stream_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz";
+ sha1 = "ed29634d19baba463b6ce6b80a37213eab71ec43";
+ };
+ }
+ {
+ name = "engine.io_client___engine.io_client_3.2.1.tgz";
+ path = fetchurl {
+ name = "engine.io_client___engine.io_client_3.2.1.tgz";
+ url = "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.2.1.tgz";
+ sha1 = "6f54c0475de487158a1a7c77d10178708b6add36";
+ };
+ }
+ {
+ name = "engine.io_parser___engine.io_parser_2.1.2.tgz";
+ path = fetchurl {
+ name = "engine.io_parser___engine.io_parser_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.2.tgz";
+ sha1 = "4c0f4cff79aaeecbbdcfdea66a823c6085409196";
+ };
+ }
+ {
+ name = "engine.io___engine.io_3.2.0.tgz";
+ path = fetchurl {
+ name = "engine.io___engine.io_3.2.0.tgz";
+ url = "https://registry.yarnpkg.com/engine.io/-/engine.io-3.2.0.tgz";
+ sha1 = "54332506f42f2edc71690d2f2a42349359f3bf7d";
+ };
+ }
+ {
+ name = "enhanced_resolve___enhanced_resolve_4.1.0.tgz";
+ path = fetchurl {
+ name = "enhanced_resolve___enhanced_resolve_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz";
+ sha1 = "41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f";
+ };
+ }
+ {
+ name = "enhanced_resolve___enhanced_resolve_0.9.1.tgz";
+ path = fetchurl {
+ name = "enhanced_resolve___enhanced_resolve_0.9.1.tgz";
+ url = "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz";
+ sha1 = "4d6e689b3725f86090927ccc86cd9f1635b89e2e";
+ };
+ }
+ {
+ name = "ent___ent_2.2.0.tgz";
+ path = fetchurl {
+ name = "ent___ent_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz";
+ sha1 = "e964219325a21d05f44466a2f686ed6ce5f5dd1d";
+ };
+ }
+ {
+ name = "entities___entities_1.1.1.tgz";
+ path = fetchurl {
+ name = "entities___entities_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz";
+ sha1 = "6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0";
+ };
+ }
+ {
+ name = "errno___errno_0.1.7.tgz";
+ path = fetchurl {
+ name = "errno___errno_0.1.7.tgz";
+ url = "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz";
+ sha1 = "4684d71779ad39af177e3f007996f7c67c852618";
+ };
+ }
+ {
+ name = "error_ex___error_ex_1.3.2.tgz";
+ path = fetchurl {
+ name = "error_ex___error_ex_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz";
+ sha1 = "b4ac40648107fdcdcfae242f428bea8a14d4f1bf";
+ };
+ }
+ {
+ name = "error___error_7.0.2.tgz";
+ path = fetchurl {
+ name = "error___error_7.0.2.tgz";
+ url = "https://registry.yarnpkg.com/error/-/error-7.0.2.tgz";
+ sha1 = "a5f75fff4d9926126ddac0ea5dc38e689153cb02";
+ };
+ }
+ {
+ name = "es_abstract___es_abstract_1.13.0.tgz";
+ path = fetchurl {
+ name = "es_abstract___es_abstract_1.13.0.tgz";
+ url = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz";
+ sha1 = "ac86145fdd5099d8dd49558ccba2eaf9b88e24e9";
+ };
+ }
+ {
+ name = "es_to_primitive___es_to_primitive_1.2.0.tgz";
+ path = fetchurl {
+ name = "es_to_primitive___es_to_primitive_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz";
+ sha1 = "edf72478033456e8dda8ef09e00ad9650707f377";
+ };
+ }
+ {
+ name = "es6_promise___es6_promise_3.0.2.tgz";
+ path = fetchurl {
+ name = "es6_promise___es6_promise_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.0.2.tgz";
+ sha1 = "010d5858423a5f118979665f46486a95c6ee2bb6";
+ };
+ }
+ {
+ name = "escape_html___escape_html_1.0.3.tgz";
+ path = fetchurl {
+ name = "escape_html___escape_html_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz";
+ sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
+ };
+ }
+ {
+ name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
+ path = fetchurl {
+ name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
+ sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
+ };
+ }
+ {
+ name = "escaper___escaper_2.5.3.tgz";
+ path = fetchurl {
+ name = "escaper___escaper_2.5.3.tgz";
+ url = "https://registry.yarnpkg.com/escaper/-/escaper-2.5.3.tgz";
+ sha1 = "8b8fe90ba364054151ab7eff18b4ce43b1e13ab5";
+ };
+ }
+ {
+ name = "escodegen___escodegen_1.11.0.tgz";
+ path = fetchurl {
+ name = "escodegen___escodegen_1.11.0.tgz";
+ url = "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.0.tgz";
+ sha1 = "b27a9389481d5bfd5bec76f7bb1eb3f8f4556589";
+ };
+ }
+ {
+ name = "eslint_config_airbnb_base___eslint_config_airbnb_base_13.1.0.tgz";
+ path = fetchurl {
+ name = "eslint_config_airbnb_base___eslint_config_airbnb_base_13.1.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.1.0.tgz";
+ sha1 = "b5a1b480b80dfad16433d6c4ad84e6605052c05c";
+ };
+ }
+ {
+ name = "eslint_config_prettier___eslint_config_prettier_3.3.0.tgz";
+ path = fetchurl {
+ name = "eslint_config_prettier___eslint_config_prettier_3.3.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-3.3.0.tgz";
+ sha1 = "41afc8d3b852e757f06274ed6c44ca16f939a57d";
+ };
+ }
+ {
+ name = "eslint_import_resolver_jest___eslint_import_resolver_jest_2.1.1.tgz";
+ path = fetchurl {
+ name = "eslint_import_resolver_jest___eslint_import_resolver_jest_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/eslint-import-resolver-jest/-/eslint-import-resolver-jest-2.1.1.tgz";
+ sha1 = "78c1934e3b5b77283326f036e089cc3b9fae6346";
+ };
+ }
+ {
+ name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.2.tgz";
+ path = fetchurl {
+ name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.2.tgz";
+ url = "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz";
+ sha1 = "58f15fb839b8d0576ca980413476aab2472db66a";
+ };
+ }
+ {
+ name = "eslint_import_resolver_webpack___eslint_import_resolver_webpack_0.10.1.tgz";
+ path = fetchurl {
+ name = "eslint_import_resolver_webpack___eslint_import_resolver_webpack_0.10.1.tgz";
+ url = "https://registry.yarnpkg.com/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.10.1.tgz";
+ sha1 = "4cbceed2c0c43e488a74775c30861e58e00fb290";
+ };
+ }
+ {
+ name = "eslint_module_utils___eslint_module_utils_2.3.0.tgz";
+ path = fetchurl {
+ name = "eslint_module_utils___eslint_module_utils_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.3.0.tgz";
+ sha1 = "546178dab5e046c8b562bbb50705e2456d7bda49";
+ };
+ }
+ {
+ name = "eslint_plugin_filenames___eslint_plugin_filenames_1.3.2.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_filenames___eslint_plugin_filenames_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-filenames/-/eslint-plugin-filenames-1.3.2.tgz";
+ sha1 = "7094f00d7aefdd6999e3ac19f72cea058e590cf7";
+ };
+ }
+ {
+ name = "eslint_plugin_import___eslint_plugin_import_2.16.0.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_import___eslint_plugin_import_2.16.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.16.0.tgz";
+ sha1 = "97ac3e75d0791c4fac0e15ef388510217be7f66f";
+ };
+ }
+ {
+ name = "eslint_plugin_jasmine___eslint_plugin_jasmine_2.10.1.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_jasmine___eslint_plugin_jasmine_2.10.1.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-jasmine/-/eslint-plugin-jasmine-2.10.1.tgz";
+ sha1 = "5733b709e751f4bc40e31e1c16989bd2cdfbec97";
+ };
+ }
+ {
+ name = "eslint_plugin_jest___eslint_plugin_jest_22.3.0.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_jest___eslint_plugin_jest_22.3.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-22.3.0.tgz";
+ sha1 = "a10f10dedfc92def774ec9bb5bfbd2fb8e1c96d2";
+ };
+ }
+ {
+ name = "eslint_plugin_no_jquery___eslint_plugin_no_jquery_2.1.0.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_no_jquery___eslint_plugin_no_jquery_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-2.1.0.tgz";
+ sha1 = "d03b74224c5cfbc7fc0bdd12ce4eb400d09e0c0b";
+ };
+ }
+ {
+ name = "eslint_plugin_promise___eslint_plugin_promise_4.1.1.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_promise___eslint_plugin_promise_4.1.1.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.1.1.tgz";
+ sha1 = "1e08cb68b5b2cd8839f8d5864c796f56d82746db";
+ };
+ }
+ {
+ name = "eslint_plugin_vue___eslint_plugin_vue_5.0.0.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_vue___eslint_plugin_vue_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-5.0.0.tgz";
+ sha1 = "4a2cc1c0e71ea45e1bd9c1a60f925bfe68bb5710";
+ };
+ }
+ {
+ name = "eslint_restricted_globals___eslint_restricted_globals_0.1.1.tgz";
+ path = fetchurl {
+ name = "eslint_restricted_globals___eslint_restricted_globals_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz";
+ sha1 = "35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7";
+ };
+ }
+ {
+ name = "eslint_scope___eslint_scope_3.7.1.tgz";
+ path = fetchurl {
+ name = "eslint_scope___eslint_scope_3.7.1.tgz";
+ url = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz";
+ sha1 = "3d63c3edfda02e06e01a452ad88caacc7cdcb6e8";
+ };
+ }
+ {
+ name = "eslint_scope___eslint_scope_4.0.3.tgz";
+ path = fetchurl {
+ name = "eslint_scope___eslint_scope_4.0.3.tgz";
+ url = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz";
+ sha1 = "ca03833310f6889a3264781aa82e63eb9cfe7848";
+ };
+ }
+ {
+ name = "eslint_utils___eslint_utils_1.4.2.tgz";
+ path = fetchurl {
+ name = "eslint_utils___eslint_utils_1.4.2.tgz";
+ url = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.2.tgz";
+ sha1 = "166a5180ef6ab7eb462f162fd0e6f2463d7309ab";
+ };
+ }
+ {
+ name = "eslint_visitor_keys___eslint_visitor_keys_1.0.0.tgz";
+ path = fetchurl {
+ name = "eslint_visitor_keys___eslint_visitor_keys_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz";
+ sha1 = "3f3180fb2e291017716acb4c9d6d5b5c34a6a81d";
+ };
+ }
+ {
+ name = "eslint___eslint_5.9.0.tgz";
+ path = fetchurl {
+ name = "eslint___eslint_5.9.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint/-/eslint-5.9.0.tgz";
+ sha1 = "b234b6d15ef84b5849c6de2af43195a2d59d408e";
+ };
+ }
+ {
+ name = "espree___espree_4.1.0.tgz";
+ path = fetchurl {
+ name = "espree___espree_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/espree/-/espree-4.1.0.tgz";
+ sha1 = "728d5451e0fd156c04384a7ad89ed51ff54eb25f";
+ };
+ }
+ {
+ name = "espree___espree_5.0.1.tgz";
+ path = fetchurl {
+ name = "espree___espree_5.0.1.tgz";
+ url = "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz";
+ sha1 = "5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a";
+ };
+ }
+ {
+ name = "esprima___esprima_3.1.3.tgz";
+ path = fetchurl {
+ name = "esprima___esprima_3.1.3.tgz";
+ url = "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz";
+ sha1 = "fdca51cee6133895e3c88d535ce49dbff62a4633";
+ };
+ }
+ {
+ name = "esprima___esprima_4.0.1.tgz";
+ path = fetchurl {
+ name = "esprima___esprima_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz";
+ sha1 = "13b04cdb3e6c5d19df91ab6987a8695619b0aa71";
+ };
+ }
+ {
+ name = "esquery___esquery_1.0.1.tgz";
+ path = fetchurl {
+ name = "esquery___esquery_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz";
+ sha1 = "406c51658b1f5991a5f9b62b1dc25b00e3e5c708";
+ };
+ }
+ {
+ name = "esrecurse___esrecurse_4.2.1.tgz";
+ path = fetchurl {
+ name = "esrecurse___esrecurse_4.2.1.tgz";
+ url = "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz";
+ sha1 = "007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf";
+ };
+ }
+ {
+ name = "estraverse___estraverse_4.2.0.tgz";
+ path = fetchurl {
+ name = "estraverse___estraverse_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz";
+ sha1 = "0dee3fed31fcd469618ce7342099fc1afa0bdb13";
+ };
+ }
+ {
+ name = "esutils___esutils_2.0.2.tgz";
+ path = fetchurl {
+ name = "esutils___esutils_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz";
+ sha1 = "0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b";
+ };
+ }
+ {
+ name = "etag___etag_1.8.1.tgz";
+ path = fetchurl {
+ name = "etag___etag_1.8.1.tgz";
+ url = "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz";
+ sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
+ };
+ }
+ {
+ name = "eve_raphael___eve_raphael_0.5.0.tgz";
+ path = fetchurl {
+ name = "eve_raphael___eve_raphael_0.5.0.tgz";
+ url = "https://registry.yarnpkg.com/eve-raphael/-/eve-raphael-0.5.0.tgz";
+ sha1 = "17c754b792beef3fa6684d79cf5a47c63c4cda30";
+ };
+ }
+ {
+ name = "eventemitter3___eventemitter3_4.0.0.tgz";
+ path = fetchurl {
+ name = "eventemitter3___eventemitter3_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz";
+ sha1 = "d65176163887ee59f386d64c82610b696a4a74eb";
+ };
+ }
+ {
+ name = "events___events_1.1.1.tgz";
+ path = fetchurl {
+ name = "events___events_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz";
+ sha1 = "9ebdb7635ad099c70dcc4c2a1f5004288e8bd924";
+ };
+ }
+ {
+ name = "events___events_3.0.0.tgz";
+ path = fetchurl {
+ name = "events___events_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz";
+ sha1 = "9a0a0dfaf62893d92b875b8f2698ca4114973e88";
+ };
+ }
+ {
+ name = "eventsource___eventsource_1.0.7.tgz";
+ path = fetchurl {
+ name = "eventsource___eventsource_1.0.7.tgz";
+ url = "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz";
+ sha1 = "8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0";
+ };
+ }
+ {
+ name = "evp_bytestokey___evp_bytestokey_1.0.3.tgz";
+ path = fetchurl {
+ name = "evp_bytestokey___evp_bytestokey_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz";
+ sha1 = "7fcbdb198dc71959432efe13842684e0525acb02";
+ };
+ }
+ {
+ name = "exec_sh___exec_sh_0.3.2.tgz";
+ path = fetchurl {
+ name = "exec_sh___exec_sh_0.3.2.tgz";
+ url = "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.2.tgz";
+ sha1 = "6738de2eb7c8e671d0366aea0b0db8c6f7d7391b";
+ };
+ }
+ {
+ name = "execa___execa_0.7.0.tgz";
+ path = fetchurl {
+ name = "execa___execa_0.7.0.tgz";
+ url = "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz";
+ sha1 = "944becd34cc41ee32a63a9faf27ad5a65fc59777";
+ };
+ }
+ {
+ name = "execa___execa_1.0.0.tgz";
+ path = fetchurl {
+ name = "execa___execa_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz";
+ sha1 = "c6236a5bb4df6d6f15e88e7f017798216749ddd8";
+ };
+ }
+ {
+ name = "execall___execall_2.0.0.tgz";
+ path = fetchurl {
+ name = "execall___execall_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/execall/-/execall-2.0.0.tgz";
+ sha1 = "16a06b5fe5099df7d00be5d9c06eecded1663b45";
+ };
+ }
+ {
+ name = "exit___exit_0.1.2.tgz";
+ path = fetchurl {
+ name = "exit___exit_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz";
+ sha1 = "0632638f8d877cc82107d30a0fff1a17cba1cd0c";
+ };
+ }
+ {
+ name = "expand_brackets___expand_brackets_2.1.4.tgz";
+ path = fetchurl {
+ name = "expand_brackets___expand_brackets_2.1.4.tgz";
+ url = "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz";
+ sha1 = "b77735e315ce30f6b6eff0f83b04151a22449622";
+ };
+ }
+ {
+ name = "expand_tilde___expand_tilde_2.0.2.tgz";
+ path = fetchurl {
+ name = "expand_tilde___expand_tilde_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz";
+ sha1 = "97e801aa052df02454de46b02bf621642cdc8502";
+ };
+ }
+ {
+ name = "expect___expect_24.8.0.tgz";
+ path = fetchurl {
+ name = "expect___expect_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/expect/-/expect-24.8.0.tgz";
+ sha1 = "471f8ec256b7b6129ca2524b2a62f030df38718d";
+ };
+ }
+ {
+ name = "exports_loader___exports_loader_0.7.0.tgz";
+ path = fetchurl {
+ name = "exports_loader___exports_loader_0.7.0.tgz";
+ url = "https://registry.yarnpkg.com/exports-loader/-/exports-loader-0.7.0.tgz";
+ sha1 = "84881c784dea6036b8e1cd1dac3da9b6409e21a5";
+ };
+ }
+ {
+ name = "express___express_4.17.1.tgz";
+ path = fetchurl {
+ name = "express___express_4.17.1.tgz";
+ url = "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz";
+ sha1 = "4491fc38605cf51f8629d39c2b5d026f98a4c134";
+ };
+ }
+ {
+ name = "extend_shallow___extend_shallow_2.0.1.tgz";
+ path = fetchurl {
+ name = "extend_shallow___extend_shallow_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz";
+ sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f";
+ };
+ }
+ {
+ name = "extend_shallow___extend_shallow_3.0.2.tgz";
+ path = fetchurl {
+ name = "extend_shallow___extend_shallow_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz";
+ sha1 = "26a71aaf073b39fb2127172746131c2704028db8";
+ };
+ }
+ {
+ name = "extend___extend_3.0.2.tgz";
+ path = fetchurl {
+ name = "extend___extend_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz";
+ sha1 = "f8b1136b4071fbd8eb140aff858b1019ec2915fa";
+ };
+ }
+ {
+ name = "external_editor___external_editor_3.0.0.tgz";
+ path = fetchurl {
+ name = "external_editor___external_editor_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.0.tgz";
+ sha1 = "dc35c48c6f98a30ca27a20e9687d7f3c77704bb6";
+ };
+ }
+ {
+ name = "extglob___extglob_2.0.4.tgz";
+ path = fetchurl {
+ name = "extglob___extglob_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz";
+ sha1 = "ad00fe4dc612a9232e8718711dc5cb5ab0285543";
+ };
+ }
+ {
+ name = "extract_files___extract_files_5.0.1.tgz";
+ path = fetchurl {
+ name = "extract_files___extract_files_5.0.1.tgz";
+ url = "https://registry.yarnpkg.com/extract-files/-/extract-files-5.0.1.tgz";
+ sha1 = "c9492a8410be643e260a376f0151361993d5f659";
+ };
+ }
+ {
+ name = "extract_from_css___extract_from_css_0.4.4.tgz";
+ path = fetchurl {
+ name = "extract_from_css___extract_from_css_0.4.4.tgz";
+ url = "https://registry.yarnpkg.com/extract-from-css/-/extract-from-css-0.4.4.tgz";
+ sha1 = "1ea7df2e7c7c6eb9922fa08e8adaea486f6f8f92";
+ };
+ }
+ {
+ name = "extsprintf___extsprintf_1.3.0.tgz";
+ path = fetchurl {
+ name = "extsprintf___extsprintf_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz";
+ sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
+ };
+ }
+ {
+ name = "fast_deep_equal___fast_deep_equal_2.0.1.tgz";
+ path = fetchurl {
+ name = "fast_deep_equal___fast_deep_equal_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz";
+ sha1 = "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49";
+ };
+ }
+ {
+ name = "fast_glob___fast_glob_2.2.6.tgz";
+ path = fetchurl {
+ name = "fast_glob___fast_glob_2.2.6.tgz";
+ url = "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.6.tgz";
+ sha1 = "a5d5b697ec8deda468d85a74035290a025a95295";
+ };
+ }
+ {
+ name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz";
+ path = fetchurl {
+ name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz";
+ sha1 = "d5142c0caee6b1189f87d3a76111064f86c8bbf2";
+ };
+ }
+ {
+ name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz";
+ path = fetchurl {
+ name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz";
+ url = "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz";
+ sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917";
+ };
+ }
+ {
+ name = "fastparse___fastparse_1.1.2.tgz";
+ path = fetchurl {
+ name = "fastparse___fastparse_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz";
+ sha1 = "91728c5a5942eced8531283c79441ee4122c35a9";
+ };
+ }
+ {
+ name = "fault___fault_1.0.2.tgz";
+ path = fetchurl {
+ name = "fault___fault_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/fault/-/fault-1.0.2.tgz";
+ sha1 = "c3d0fec202f172a3a4d414042ad2bb5e2a3ffbaa";
+ };
+ }
+ {
+ name = "faye_websocket___faye_websocket_0.10.0.tgz";
+ path = fetchurl {
+ name = "faye_websocket___faye_websocket_0.10.0.tgz";
+ url = "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz";
+ sha1 = "4e492f8d04dfb6f89003507f6edbf2d501e7c6f4";
+ };
+ }
+ {
+ name = "faye_websocket___faye_websocket_0.11.1.tgz";
+ path = fetchurl {
+ name = "faye_websocket___faye_websocket_0.11.1.tgz";
+ url = "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz";
+ sha1 = "f0efe18c4f56e4f40afc7e06c719fd5ee6188f38";
+ };
+ }
+ {
+ name = "fb_watchman___fb_watchman_2.0.0.tgz";
+ path = fetchurl {
+ name = "fb_watchman___fb_watchman_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz";
+ sha1 = "54e9abf7dfa2f26cd9b1636c588c1afc05de5d58";
+ };
+ }
+ {
+ name = "figgy_pudding___figgy_pudding_3.5.1.tgz";
+ path = fetchurl {
+ name = "figgy_pudding___figgy_pudding_3.5.1.tgz";
+ url = "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz";
+ sha1 = "862470112901c727a0e495a80744bd5baa1d6790";
+ };
+ }
+ {
+ name = "figures___figures_2.0.0.tgz";
+ path = fetchurl {
+ name = "figures___figures_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz";
+ sha1 = "3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962";
+ };
+ }
+ {
+ name = "file_entry_cache___file_entry_cache_2.0.0.tgz";
+ path = fetchurl {
+ name = "file_entry_cache___file_entry_cache_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz";
+ sha1 = "c392990c3e684783d838b8c84a45d8a048458361";
+ };
+ }
+ {
+ name = "file_entry_cache___file_entry_cache_5.0.1.tgz";
+ path = fetchurl {
+ name = "file_entry_cache___file_entry_cache_5.0.1.tgz";
+ url = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz";
+ sha1 = "ca0f6efa6dd3d561333fb14515065c2fafdf439c";
+ };
+ }
+ {
+ name = "file_loader___file_loader_4.2.0.tgz";
+ path = fetchurl {
+ name = "file_loader___file_loader_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/file-loader/-/file-loader-4.2.0.tgz";
+ sha1 = "5fb124d2369d7075d70a9a5abecd12e60a95215e";
+ };
+ }
+ {
+ name = "fileset___fileset_2.0.3.tgz";
+ path = fetchurl {
+ name = "fileset___fileset_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz";
+ sha1 = "8e7548a96d3cc2327ee5e674168723a333bba2a0";
+ };
+ }
+ {
+ name = "filesize___filesize_3.6.1.tgz";
+ path = fetchurl {
+ name = "filesize___filesize_3.6.1.tgz";
+ url = "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz";
+ sha1 = "090bb3ee01b6f801a8a8be99d31710b3422bb317";
+ };
+ }
+ {
+ name = "fill_range___fill_range_4.0.0.tgz";
+ path = fetchurl {
+ name = "fill_range___fill_range_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz";
+ sha1 = "d544811d428f98eb06a63dc402d2403c328c38f7";
+ };
+ }
+ {
+ name = "fill_range___fill_range_7.0.1.tgz";
+ path = fetchurl {
+ name = "fill_range___fill_range_7.0.1.tgz";
+ url = "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz";
+ sha1 = "1919a6a7c75fe38b2c7c77e5198535da9acdda40";
+ };
+ }
+ {
+ name = "finalhandler___finalhandler_1.1.0.tgz";
+ path = fetchurl {
+ name = "finalhandler___finalhandler_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz";
+ sha1 = "ce0b6855b45853e791b2fcc680046d88253dd7f5";
+ };
+ }
+ {
+ name = "finalhandler___finalhandler_1.1.2.tgz";
+ path = fetchurl {
+ name = "finalhandler___finalhandler_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz";
+ sha1 = "b7e7d000ffd11938d0fdb053506f6ebabe9f587d";
+ };
+ }
+ {
+ name = "find_cache_dir___find_cache_dir_2.1.0.tgz";
+ path = fetchurl {
+ name = "find_cache_dir___find_cache_dir_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz";
+ sha1 = "8d0f94cd13fe43c6c7c261a0d86115ca918c05f7";
+ };
+ }
+ {
+ name = "find_cache_dir___find_cache_dir_3.0.0.tgz";
+ path = fetchurl {
+ name = "find_cache_dir___find_cache_dir_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.0.0.tgz";
+ sha1 = "cd4b7dd97b7185b7e17dbfe2d6e4115ee3eeb8fc";
+ };
+ }
+ {
+ name = "find_root___find_root_1.1.0.tgz";
+ path = fetchurl {
+ name = "find_root___find_root_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz";
+ sha1 = "abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4";
+ };
+ }
+ {
+ name = "find_up___find_up_1.1.2.tgz";
+ path = fetchurl {
+ name = "find_up___find_up_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz";
+ sha1 = "6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f";
+ };
+ }
+ {
+ name = "find_up___find_up_2.1.0.tgz";
+ path = fetchurl {
+ name = "find_up___find_up_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz";
+ sha1 = "45d1b7e506c717ddd482775a2b77920a3c0c57a7";
+ };
+ }
+ {
+ name = "find_up___find_up_3.0.0.tgz";
+ path = fetchurl {
+ name = "find_up___find_up_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz";
+ sha1 = "49169f1d7993430646da61ecc5ae355c21c97b73";
+ };
+ }
+ {
+ name = "find_up___find_up_4.1.0.tgz";
+ path = fetchurl {
+ name = "find_up___find_up_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz";
+ sha1 = "97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19";
+ };
+ }
+ {
+ name = "findup_sync___findup_sync_3.0.0.tgz";
+ path = fetchurl {
+ name = "findup_sync___findup_sync_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz";
+ sha1 = "17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1";
+ };
+ }
+ {
+ name = "flat_cache___flat_cache_1.2.2.tgz";
+ path = fetchurl {
+ name = "flat_cache___flat_cache_1.2.2.tgz";
+ url = "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz";
+ sha1 = "fa86714e72c21db88601761ecf2f555d1abc6b96";
+ };
+ }
+ {
+ name = "flat_cache___flat_cache_2.0.1.tgz";
+ path = fetchurl {
+ name = "flat_cache___flat_cache_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz";
+ sha1 = "5d296d6f04bda44a4630a301413bdbc2ec085ec0";
+ };
+ }
+ {
+ name = "flatted___flatted_2.0.0.tgz";
+ path = fetchurl {
+ name = "flatted___flatted_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/flatted/-/flatted-2.0.0.tgz";
+ sha1 = "55122b6536ea496b4b44893ee2608141d10d9916";
+ };
+ }
+ {
+ name = "flush_write_stream___flush_write_stream_1.1.1.tgz";
+ path = fetchurl {
+ name = "flush_write_stream___flush_write_stream_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz";
+ sha1 = "8dd7d873a1babc207d94ead0c2e0e44276ebf2e8";
+ };
+ }
+ {
+ name = "follow_redirects___follow_redirects_1.5.10.tgz";
+ path = fetchurl {
+ name = "follow_redirects___follow_redirects_1.5.10.tgz";
+ url = "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz";
+ sha1 = "7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a";
+ };
+ }
+ {
+ name = "for_in___for_in_1.0.2.tgz";
+ path = fetchurl {
+ name = "for_in___for_in_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz";
+ sha1 = "81068d295a8142ec0ac726c6e2200c30fb6d5e80";
+ };
+ }
+ {
+ name = "forever_agent___forever_agent_0.6.1.tgz";
+ path = fetchurl {
+ name = "forever_agent___forever_agent_0.6.1.tgz";
+ url = "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz";
+ sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
+ };
+ }
+ {
+ name = "form_data___form_data_2.3.3.tgz";
+ path = fetchurl {
+ name = "form_data___form_data_2.3.3.tgz";
+ url = "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz";
+ sha1 = "dcce52c05f644f298c6a7ab936bd724ceffbf3a6";
+ };
+ }
+ {
+ name = "format___format_0.2.2.tgz";
+ path = fetchurl {
+ name = "format___format_0.2.2.tgz";
+ url = "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz";
+ sha1 = "d6170107e9efdc4ed30c9dc39016df942b5cb58b";
+ };
+ }
+ {
+ name = "formdata_polyfill___formdata_polyfill_3.0.11.tgz";
+ path = fetchurl {
+ name = "formdata_polyfill___formdata_polyfill_3.0.11.tgz";
+ url = "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-3.0.11.tgz";
+ sha1 = "c82b4b4bea3356c0a6752219e54ce1edb2a7fb5b";
+ };
+ }
+ {
+ name = "forwarded___forwarded_0.1.2.tgz";
+ path = fetchurl {
+ name = "forwarded___forwarded_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz";
+ sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84";
+ };
+ }
+ {
+ name = "fragment_cache___fragment_cache_0.2.1.tgz";
+ path = fetchurl {
+ name = "fragment_cache___fragment_cache_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz";
+ sha1 = "4290fad27f13e89be7f33799c6bc5a0abfff0d19";
+ };
+ }
+ {
+ name = "fresh___fresh_0.5.2.tgz";
+ path = fetchurl {
+ name = "fresh___fresh_0.5.2.tgz";
+ url = "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz";
+ sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7";
+ };
+ }
+ {
+ name = "from2___from2_2.3.0.tgz";
+ path = fetchurl {
+ name = "from2___from2_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz";
+ sha1 = "8bfb5502bde4a4d36cfdeea007fcca21d7e382af";
+ };
+ }
+ {
+ name = "fs_extra___fs_extra_7.0.1.tgz";
+ path = fetchurl {
+ name = "fs_extra___fs_extra_7.0.1.tgz";
+ url = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz";
+ sha1 = "4f189c44aa123b895f722804f55ea23eadc348e9";
+ };
+ }
+ {
+ name = "fs_minipass___fs_minipass_1.2.6.tgz";
+ path = fetchurl {
+ name = "fs_minipass___fs_minipass_1.2.6.tgz";
+ url = "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.6.tgz";
+ sha1 = "2c5cc30ded81282bfe8a0d7c7c1853ddeb102c07";
+ };
+ }
+ {
+ name = "fs_mkdirp_stream___fs_mkdirp_stream_1.0.0.tgz";
+ path = fetchurl {
+ name = "fs_mkdirp_stream___fs_mkdirp_stream_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz";
+ sha1 = "0b7815fc3201c6a69e14db98ce098c16935259eb";
+ };
+ }
+ {
+ name = "fs_write_stream_atomic___fs_write_stream_atomic_1.0.10.tgz";
+ path = fetchurl {
+ name = "fs_write_stream_atomic___fs_write_stream_atomic_1.0.10.tgz";
+ url = "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz";
+ sha1 = "b47df53493ef911df75731e70a9ded0189db40c9";
+ };
+ }
+ {
+ name = "fs.realpath___fs.realpath_1.0.0.tgz";
+ path = fetchurl {
+ name = "fs.realpath___fs.realpath_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz";
+ sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+ };
+ }
+ {
+ name = "fsevents___fsevents_1.2.9.tgz";
+ path = fetchurl {
+ name = "fsevents___fsevents_1.2.9.tgz";
+ url = "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz";
+ sha1 = "3f5ed66583ccd6f400b5a00db6f7e861363e388f";
+ };
+ }
+ {
+ name = "fsevents___fsevents_2.0.7.tgz";
+ path = fetchurl {
+ name = "fsevents___fsevents_2.0.7.tgz";
+ url = "https://registry.yarnpkg.com/fsevents/-/fsevents-2.0.7.tgz";
+ sha1 = "382c9b443c6cbac4c57187cdda23aa3bf1ccfc2a";
+ };
+ }
+ {
+ name = "fstream___fstream_1.0.12.tgz";
+ path = fetchurl {
+ name = "fstream___fstream_1.0.12.tgz";
+ url = "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz";
+ sha1 = "4e8ba8ee2d48be4f7d0de505455548eae5932045";
+ };
+ }
+ {
+ name = "function_bind___function_bind_1.1.1.tgz";
+ path = fetchurl {
+ name = "function_bind___function_bind_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz";
+ sha1 = "a56899d3ea3c9bab874bb9773b7c5ede92f4895d";
+ };
+ }
+ {
+ name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz";
+ path = fetchurl {
+ name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz";
+ sha1 = "1b0ab3bd553b2a0d6399d29c0e3ea0b252078327";
+ };
+ }
+ {
+ name = "fuzzaldrin_plus___fuzzaldrin_plus_0.5.0.tgz";
+ path = fetchurl {
+ name = "fuzzaldrin_plus___fuzzaldrin_plus_0.5.0.tgz";
+ url = "https://registry.yarnpkg.com/fuzzaldrin-plus/-/fuzzaldrin-plus-0.5.0.tgz";
+ sha1 = "ef5f26f0c2fc7e9e9a16ea149a802d6cb4804b1e";
+ };
+ }
+ {
+ name = "gauge___gauge_2.7.4.tgz";
+ path = fetchurl {
+ name = "gauge___gauge_2.7.4.tgz";
+ url = "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz";
+ sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7";
+ };
+ }
+ {
+ name = "gaze___gaze_1.1.3.tgz";
+ path = fetchurl {
+ name = "gaze___gaze_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz";
+ sha1 = "c441733e13b927ac8c0ff0b4c3b033f28812924a";
+ };
+ }
+ {
+ name = "get_caller_file___get_caller_file_1.0.3.tgz";
+ path = fetchurl {
+ name = "get_caller_file___get_caller_file_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz";
+ sha1 = "f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a";
+ };
+ }
+ {
+ name = "get_caller_file___get_caller_file_2.0.5.tgz";
+ path = fetchurl {
+ name = "get_caller_file___get_caller_file_2.0.5.tgz";
+ url = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz";
+ sha1 = "4f94412a82db32f36e3b0b9741f8a97feb031f7e";
+ };
+ }
+ {
+ name = "get_port___get_port_4.2.0.tgz";
+ path = fetchurl {
+ name = "get_port___get_port_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/get-port/-/get-port-4.2.0.tgz";
+ sha1 = "e37368b1e863b7629c43c5a323625f95cf24b119";
+ };
+ }
+ {
+ name = "get_stdin___get_stdin_4.0.1.tgz";
+ path = fetchurl {
+ name = "get_stdin___get_stdin_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz";
+ sha1 = "b968c6b0a04384324902e8bf1a5df32579a450fe";
+ };
+ }
+ {
+ name = "get_stdin___get_stdin_6.0.0.tgz";
+ path = fetchurl {
+ name = "get_stdin___get_stdin_6.0.0.tgz";
+ url = "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz";
+ sha1 = "9e09bf712b360ab9225e812048f71fde9c89657b";
+ };
+ }
+ {
+ name = "get_stdin___get_stdin_7.0.0.tgz";
+ path = fetchurl {
+ name = "get_stdin___get_stdin_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz";
+ sha1 = "8d5de98f15171a125c5e516643c7a6d0ea8a96f6";
+ };
+ }
+ {
+ name = "get_stdin___get_stdin_5.0.1.tgz";
+ path = fetchurl {
+ name = "get_stdin___get_stdin_5.0.1.tgz";
+ url = "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz";
+ sha1 = "122e161591e21ff4c52530305693f20e6393a398";
+ };
+ }
+ {
+ name = "get_stream___get_stream_3.0.0.tgz";
+ path = fetchurl {
+ name = "get_stream___get_stream_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz";
+ sha1 = "8e943d1358dc37555054ecbe2edb05aa174ede14";
+ };
+ }
+ {
+ name = "get_stream___get_stream_4.1.0.tgz";
+ path = fetchurl {
+ name = "get_stream___get_stream_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz";
+ sha1 = "c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5";
+ };
+ }
+ {
+ name = "get_value___get_value_2.0.6.tgz";
+ path = fetchurl {
+ name = "get_value___get_value_2.0.6.tgz";
+ url = "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz";
+ sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28";
+ };
+ }
+ {
+ name = "getpass___getpass_0.1.7.tgz";
+ path = fetchurl {
+ name = "getpass___getpass_0.1.7.tgz";
+ url = "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz";
+ sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
+ };
+ }
+ {
+ name = "gettext_extractor_vue___gettext_extractor_vue_4.0.2.tgz";
+ path = fetchurl {
+ name = "gettext_extractor_vue___gettext_extractor_vue_4.0.2.tgz";
+ url = "https://registry.yarnpkg.com/gettext-extractor-vue/-/gettext-extractor-vue-4.0.2.tgz";
+ sha1 = "16e1cdbdaf37e5bdf3cb0aff63685bdc5e74e906";
+ };
+ }
+ {
+ name = "gettext_extractor___gettext_extractor_3.4.3.tgz";
+ path = fetchurl {
+ name = "gettext_extractor___gettext_extractor_3.4.3.tgz";
+ url = "https://registry.yarnpkg.com/gettext-extractor/-/gettext-extractor-3.4.3.tgz";
+ sha1 = "882679cefc71888eb6e69297e6b2dc14c0384fef";
+ };
+ }
+ {
+ name = "git_up___git_up_2.1.0.tgz";
+ path = fetchurl {
+ name = "git_up___git_up_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/git-up/-/git-up-2.1.0.tgz";
+ sha1 = "2f14cfe78327e7c4a2b92fcac7bfc674fdfad40c";
+ };
+ }
+ {
+ name = "git_url_parse___git_url_parse_10.1.0.tgz";
+ path = fetchurl {
+ name = "git_url_parse___git_url_parse_10.1.0.tgz";
+ url = "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-10.1.0.tgz";
+ sha1 = "a27813218f8777e91d15f1c121b83bf14721b67e";
+ };
+ }
+ {
+ name = "github_slugger___github_slugger_1.2.0.tgz";
+ path = fetchurl {
+ name = "github_slugger___github_slugger_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.2.0.tgz";
+ sha1 = "8ada3286fd046d8951c3c952a8d7854cfd90fd9a";
+ };
+ }
+ {
+ name = "github_slugger___github_slugger_1.2.1.tgz";
+ path = fetchurl {
+ name = "github_slugger___github_slugger_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.2.1.tgz";
+ sha1 = "47e904e70bf2dccd0014748142d31126cfd49508";
+ };
+ }
+ {
+ name = "glob_parent___glob_parent_3.1.0.tgz";
+ path = fetchurl {
+ name = "glob_parent___glob_parent_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz";
+ sha1 = "9e6af6299d8d3bd2bd40430832bd113df906c5ae";
+ };
+ }
+ {
+ name = "glob_parent___glob_parent_5.0.0.tgz";
+ path = fetchurl {
+ name = "glob_parent___glob_parent_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.0.0.tgz";
+ sha1 = "1dc99f0f39b006d3e92c2c284068382f0c20e954";
+ };
+ }
+ {
+ name = "glob_stream___glob_stream_6.1.0.tgz";
+ path = fetchurl {
+ name = "glob_stream___glob_stream_6.1.0.tgz";
+ url = "https://registry.yarnpkg.com/glob-stream/-/glob-stream-6.1.0.tgz";
+ sha1 = "7045c99413b3eb94888d83ab46d0b404cc7bdde4";
+ };
+ }
+ {
+ name = "glob_to_regexp___glob_to_regexp_0.3.0.tgz";
+ path = fetchurl {
+ name = "glob_to_regexp___glob_to_regexp_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz";
+ sha1 = "8c5a1494d2066c570cc3bfe4496175acc4d502ab";
+ };
+ }
+ {
+ name = "glob_to_regexp___glob_to_regexp_0.4.1.tgz";
+ path = fetchurl {
+ name = "glob_to_regexp___glob_to_regexp_0.4.1.tgz";
+ url = "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz";
+ sha1 = "c75297087c851b9a578bd217dd59a92f59fe546e";
+ };
+ }
+ {
+ name = "glob___glob_7.1.4.tgz";
+ path = fetchurl {
+ name = "glob___glob_7.1.4.tgz";
+ url = "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz";
+ sha1 = "aa608a2f6c577ad357e1ae5a5c26d9a8d1969255";
+ };
+ }
+ {
+ name = "global_dirs___global_dirs_0.1.1.tgz";
+ path = fetchurl {
+ name = "global_dirs___global_dirs_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz";
+ sha1 = "b319c0dd4607f353f3be9cca4c72fc148c49f445";
+ };
+ }
+ {
+ name = "global_modules___global_modules_2.0.0.tgz";
+ path = fetchurl {
+ name = "global_modules___global_modules_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz";
+ sha1 = "997605ad2345f27f51539bea26574421215c7780";
+ };
+ }
+ {
+ name = "global_modules___global_modules_1.0.0.tgz";
+ path = fetchurl {
+ name = "global_modules___global_modules_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz";
+ sha1 = "6d770f0eb523ac78164d72b5e71a8877265cc3ea";
+ };
+ }
+ {
+ name = "global_prefix___global_prefix_1.0.2.tgz";
+ path = fetchurl {
+ name = "global_prefix___global_prefix_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz";
+ sha1 = "dbf743c6c14992593c655568cb66ed32c0122ebe";
+ };
+ }
+ {
+ name = "global_prefix___global_prefix_3.0.0.tgz";
+ path = fetchurl {
+ name = "global_prefix___global_prefix_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz";
+ sha1 = "fc85f73064df69f50421f47f883fe5b913ba9b97";
+ };
+ }
+ {
+ name = "globals_docs___globals_docs_2.4.0.tgz";
+ path = fetchurl {
+ name = "globals_docs___globals_docs_2.4.0.tgz";
+ url = "https://registry.yarnpkg.com/globals-docs/-/globals-docs-2.4.0.tgz";
+ sha1 = "f2c647544eb6161c7c38452808e16e693c2dafbb";
+ };
+ }
+ {
+ name = "globals___globals_11.12.0.tgz";
+ path = fetchurl {
+ name = "globals___globals_11.12.0.tgz";
+ url = "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz";
+ sha1 = "ab8795338868a0babd8525758018c2a7eb95c42e";
+ };
+ }
+ {
+ name = "globby___globby_5.0.0.tgz";
+ path = fetchurl {
+ name = "globby___globby_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz";
+ sha1 = "ebd84667ca0dbb330b99bcfc68eac2bc54370e0d";
+ };
+ }
+ {
+ name = "globby___globby_6.1.0.tgz";
+ path = fetchurl {
+ name = "globby___globby_6.1.0.tgz";
+ url = "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz";
+ sha1 = "f5a6d70e8395e21c858fb0489d64df02424d506c";
+ };
+ }
+ {
+ name = "globby___globby_7.1.1.tgz";
+ path = fetchurl {
+ name = "globby___globby_7.1.1.tgz";
+ url = "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz";
+ sha1 = "fb2ccff9401f8600945dfada97440cca972b8680";
+ };
+ }
+ {
+ name = "globby___globby_9.2.0.tgz";
+ path = fetchurl {
+ name = "globby___globby_9.2.0.tgz";
+ url = "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz";
+ sha1 = "fd029a706c703d29bdd170f4b6db3a3f7a7cb63d";
+ };
+ }
+ {
+ name = "globjoin___globjoin_0.1.4.tgz";
+ path = fetchurl {
+ name = "globjoin___globjoin_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz";
+ sha1 = "2f4494ac8919e3767c5cbb691e9f463324285d43";
+ };
+ }
+ {
+ name = "globule___globule_1.2.1.tgz";
+ path = fetchurl {
+ name = "globule___globule_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/globule/-/globule-1.2.1.tgz";
+ sha1 = "5dffb1b191f22d20797a9369b49eab4e9839696d";
+ };
+ }
+ {
+ name = "gonzales_pe___gonzales_pe_4.2.3.tgz";
+ path = fetchurl {
+ name = "gonzales_pe___gonzales_pe_4.2.3.tgz";
+ url = "https://registry.yarnpkg.com/gonzales-pe/-/gonzales-pe-4.2.3.tgz";
+ sha1 = "41091703625433285e0aee3aa47829fc1fbeb6f2";
+ };
+ }
+ {
+ name = "good_listener___good_listener_1.2.2.tgz";
+ path = fetchurl {
+ name = "good_listener___good_listener_1.2.2.tgz";
+ url = "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz";
+ sha1 = "d53b30cdf9313dffb7dc9a0d477096aa6d145c50";
+ };
+ }
+ {
+ name = "got___got_6.7.1.tgz";
+ path = fetchurl {
+ name = "got___got_6.7.1.tgz";
+ url = "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz";
+ sha1 = "240cd05785a9a18e561dc1b44b41c763ef1e8db0";
+ };
+ }
+ {
+ name = "graceful_fs___graceful_fs_4.2.0.tgz";
+ path = fetchurl {
+ name = "graceful_fs___graceful_fs_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.0.tgz";
+ sha1 = "8d8fdc73977cb04104721cb53666c1ca64cd328b";
+ };
+ }
+ {
+ name = "graceful_readlink___graceful_readlink_1.0.1.tgz";
+ path = fetchurl {
+ name = "graceful_readlink___graceful_readlink_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz";
+ sha1 = "4cafad76bc62f02fa039b2f94e9a3dd3a391a725";
+ };
+ }
+ {
+ name = "graphlibrary___graphlibrary_2.2.0.tgz";
+ path = fetchurl {
+ name = "graphlibrary___graphlibrary_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/graphlibrary/-/graphlibrary-2.2.0.tgz";
+ sha1 = "017a14899775228dec4497a39babfdd6bf56eac6";
+ };
+ }
+ {
+ name = "graphql_tag___graphql_tag_2.10.0.tgz";
+ path = fetchurl {
+ name = "graphql_tag___graphql_tag_2.10.0.tgz";
+ url = "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.10.0.tgz";
+ sha1 = "87da024be863e357551b2b8700e496ee2d4353ae";
+ };
+ }
+ {
+ name = "graphql___graphql_14.0.2.tgz";
+ path = fetchurl {
+ name = "graphql___graphql_14.0.2.tgz";
+ url = "https://registry.yarnpkg.com/graphql/-/graphql-14.0.2.tgz";
+ sha1 = "7dded337a4c3fd2d075692323384034b357f5650";
+ };
+ }
+ {
+ name = "growly___growly_1.3.0.tgz";
+ path = fetchurl {
+ name = "growly___growly_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz";
+ sha1 = "f10748cbe76af964b7c96c93c6bcc28af120c081";
+ };
+ }
+ {
+ name = "gzip_size___gzip_size_5.0.0.tgz";
+ path = fetchurl {
+ name = "gzip_size___gzip_size_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.0.0.tgz";
+ sha1 = "a55ecd99222f4c48fd8c01c625ce3b349d0a0e80";
+ };
+ }
+ {
+ name = "handle_thing___handle_thing_2.0.0.tgz";
+ path = fetchurl {
+ name = "handle_thing___handle_thing_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz";
+ sha1 = "0e039695ff50c93fc288557d696f3c1dc6776754";
+ };
+ }
+ {
+ name = "handlebars___handlebars_4.1.2.tgz";
+ path = fetchurl {
+ name = "handlebars___handlebars_4.1.2.tgz";
+ url = "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.2.tgz";
+ sha1 = "b6b37c1ced0306b221e094fc7aca3ec23b131b67";
+ };
+ }
+ {
+ name = "har_schema___har_schema_2.0.0.tgz";
+ path = fetchurl {
+ name = "har_schema___har_schema_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz";
+ sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
+ };
+ }
+ {
+ name = "har_validator___har_validator_5.1.3.tgz";
+ path = fetchurl {
+ name = "har_validator___har_validator_5.1.3.tgz";
+ url = "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz";
+ sha1 = "1ef89ebd3e4996557675eed9893110dc350fa080";
+ };
+ }
+ {
+ name = "has_ansi___has_ansi_2.0.0.tgz";
+ path = fetchurl {
+ name = "has_ansi___has_ansi_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz";
+ sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91";
+ };
+ }
+ {
+ name = "has_binary2___has_binary2_1.0.2.tgz";
+ path = fetchurl {
+ name = "has_binary2___has_binary2_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.2.tgz";
+ sha1 = "e83dba49f0b9be4d026d27365350d9f03f54be98";
+ };
+ }
+ {
+ name = "has_cors___has_cors_1.1.0.tgz";
+ path = fetchurl {
+ name = "has_cors___has_cors_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz";
+ sha1 = "5e474793f7ea9843d1bb99c23eef49ff126fff39";
+ };
+ }
+ {
+ name = "has_flag___has_flag_3.0.0.tgz";
+ path = fetchurl {
+ name = "has_flag___has_flag_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz";
+ sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
+ };
+ }
+ {
+ name = "has_symbols___has_symbols_1.0.0.tgz";
+ path = fetchurl {
+ name = "has_symbols___has_symbols_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz";
+ sha1 = "ba1a8f1af2a0fc39650f5c850367704122063b44";
+ };
+ }
+ {
+ name = "has_unicode___has_unicode_2.0.1.tgz";
+ path = fetchurl {
+ name = "has_unicode___has_unicode_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz";
+ sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9";
+ };
+ }
+ {
+ name = "has_value___has_value_0.3.1.tgz";
+ path = fetchurl {
+ name = "has_value___has_value_0.3.1.tgz";
+ url = "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz";
+ sha1 = "7b1f58bada62ca827ec0a2078025654845995e1f";
+ };
+ }
+ {
+ name = "has_value___has_value_1.0.0.tgz";
+ path = fetchurl {
+ name = "has_value___has_value_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz";
+ sha1 = "18b281da585b1c5c51def24c930ed29a0be6b177";
+ };
+ }
+ {
+ name = "has_values___has_values_0.1.4.tgz";
+ path = fetchurl {
+ name = "has_values___has_values_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz";
+ sha1 = "6d61de95d91dfca9b9a02089ad384bff8f62b771";
+ };
+ }
+ {
+ name = "has_values___has_values_1.0.0.tgz";
+ path = fetchurl {
+ name = "has_values___has_values_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz";
+ sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f";
+ };
+ }
+ {
+ name = "has___has_1.0.3.tgz";
+ path = fetchurl {
+ name = "has___has_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz";
+ sha1 = "722d7cbfc1f6aa8241f16dd814e011e1f41e8796";
+ };
+ }
+ {
+ name = "hash_base___hash_base_2.0.2.tgz";
+ path = fetchurl {
+ name = "hash_base___hash_base_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz";
+ sha1 = "66ea1d856db4e8a5470cadf6fce23ae5244ef2e1";
+ };
+ }
+ {
+ name = "hash_base___hash_base_3.0.4.tgz";
+ path = fetchurl {
+ name = "hash_base___hash_base_3.0.4.tgz";
+ url = "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz";
+ sha1 = "5fc8686847ecd73499403319a6b0a3f3f6ae4918";
+ };
+ }
+ {
+ name = "hash_sum___hash_sum_1.0.2.tgz";
+ path = fetchurl {
+ name = "hash_sum___hash_sum_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz";
+ sha1 = "33b40777754c6432573c120cc3808bbd10d47f04";
+ };
+ }
+ {
+ name = "hash.js___hash.js_1.1.3.tgz";
+ path = fetchurl {
+ name = "hash.js___hash.js_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz";
+ sha1 = "340dedbe6290187151c1ea1d777a3448935df846";
+ };
+ }
+ {
+ name = "hast_util_is_element___hast_util_is_element_1.0.3.tgz";
+ path = fetchurl {
+ name = "hast_util_is_element___hast_util_is_element_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/hast-util-is-element/-/hast-util-is-element-1.0.3.tgz";
+ sha1 = "423b4b26fe8bf1f25950fe052e9ce8f83fd5f6a4";
+ };
+ }
+ {
+ name = "hast_util_sanitize___hast_util_sanitize_1.3.1.tgz";
+ path = fetchurl {
+ name = "hast_util_sanitize___hast_util_sanitize_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/hast-util-sanitize/-/hast-util-sanitize-1.3.1.tgz";
+ sha1 = "4e60d66336bd67e52354d581967467029a933f2e";
+ };
+ }
+ {
+ name = "hast_util_to_html___hast_util_to_html_4.0.1.tgz";
+ path = fetchurl {
+ name = "hast_util_to_html___hast_util_to_html_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/hast-util-to-html/-/hast-util-to-html-4.0.1.tgz";
+ sha1 = "3666b05afb62bd69f8f5e6c94db04dea19438e2a";
+ };
+ }
+ {
+ name = "hast_util_whitespace___hast_util_whitespace_1.0.3.tgz";
+ path = fetchurl {
+ name = "hast_util_whitespace___hast_util_whitespace_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-1.0.3.tgz";
+ sha1 = "6d161b307bd0693b5ec000c7c7e8b5445109ee34";
+ };
+ }
+ {
+ name = "he___he_1.2.0.tgz";
+ path = fetchurl {
+ name = "he___he_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz";
+ sha1 = "84ae65fa7eafb165fddb61566ae14baf05664f0f";
+ };
+ }
+ {
+ name = "highlight.js___highlight.js_9.15.8.tgz";
+ path = fetchurl {
+ name = "highlight.js___highlight.js_9.15.8.tgz";
+ url = "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.15.8.tgz";
+ sha1 = "f344fda123f36f1a65490e932cf90569e4999971";
+ };
+ }
+ {
+ name = "highlight.js___highlight.js_9.13.1.tgz";
+ path = fetchurl {
+ name = "highlight.js___highlight.js_9.13.1.tgz";
+ url = "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.13.1.tgz";
+ sha1 = "054586d53a6863311168488a0f58d6c505ce641e";
+ };
+ }
+ {
+ name = "hmac_drbg___hmac_drbg_1.0.1.tgz";
+ path = fetchurl {
+ name = "hmac_drbg___hmac_drbg_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz";
+ sha1 = "d2745701025a6c775a6c545793ed502fc0c649a1";
+ };
+ }
+ {
+ name = "homedir_polyfill___homedir_polyfill_1.0.1.tgz";
+ path = fetchurl {
+ name = "homedir_polyfill___homedir_polyfill_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz";
+ sha1 = "4c2bbc8a758998feebf5ed68580f76d46768b4bc";
+ };
+ }
+ {
+ name = "hoopy___hoopy_0.1.4.tgz";
+ path = fetchurl {
+ name = "hoopy___hoopy_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz";
+ sha1 = "609207d661100033a9a9402ad3dea677381c1b1d";
+ };
+ }
+ {
+ name = "hosted_git_info___hosted_git_info_2.2.0.tgz";
+ path = fetchurl {
+ name = "hosted_git_info___hosted_git_info_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.2.0.tgz";
+ sha1 = "7a0d097863d886c0fabbdcd37bf1758d8becf8a5";
+ };
+ }
+ {
+ name = "hpack.js___hpack.js_2.1.6.tgz";
+ path = fetchurl {
+ name = "hpack.js___hpack.js_2.1.6.tgz";
+ url = "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz";
+ sha1 = "87774c0949e513f42e84575b3c45681fade2a0b2";
+ };
+ }
+ {
+ name = "html_encoding_sniffer___html_encoding_sniffer_1.0.2.tgz";
+ path = fetchurl {
+ name = "html_encoding_sniffer___html_encoding_sniffer_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz";
+ sha1 = "e70d84b94da53aa375e11fe3a351be6642ca46f8";
+ };
+ }
+ {
+ name = "html_entities___html_entities_1.2.1.tgz";
+ path = fetchurl {
+ name = "html_entities___html_entities_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz";
+ sha1 = "0df29351f0721163515dfb9e5543e5f6eed5162f";
+ };
+ }
+ {
+ name = "html_minifier___html_minifier_4.0.0.tgz";
+ path = fetchurl {
+ name = "html_minifier___html_minifier_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/html-minifier/-/html-minifier-4.0.0.tgz";
+ sha1 = "cca9aad8bce1175e02e17a8c33e46d8988889f56";
+ };
+ }
+ {
+ name = "html_tags___html_tags_3.0.0.tgz";
+ path = fetchurl {
+ name = "html_tags___html_tags_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/html-tags/-/html-tags-3.0.0.tgz";
+ sha1 = "41f57708c9e6b7b46a00a22317d614c4a2bab166";
+ };
+ }
+ {
+ name = "html_void_elements___html_void_elements_1.0.4.tgz";
+ path = fetchurl {
+ name = "html_void_elements___html_void_elements_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.4.tgz";
+ sha1 = "95e8bb5ecd6b88766569c2645f2b5f1591db9ba5";
+ };
+ }
+ {
+ name = "htmlparser2___htmlparser2_3.10.0.tgz";
+ path = fetchurl {
+ name = "htmlparser2___htmlparser2_3.10.0.tgz";
+ url = "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.0.tgz";
+ sha1 = "5f5e422dcf6119c0d983ed36260ce9ded0bee464";
+ };
+ }
+ {
+ name = "http_deceiver___http_deceiver_1.2.7.tgz";
+ path = fetchurl {
+ name = "http_deceiver___http_deceiver_1.2.7.tgz";
+ url = "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz";
+ sha1 = "fa7168944ab9a519d337cb0bec7284dc3e723d87";
+ };
+ }
+ {
+ name = "http_errors___http_errors_1.7.2.tgz";
+ path = fetchurl {
+ name = "http_errors___http_errors_1.7.2.tgz";
+ url = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz";
+ sha1 = "4f5029cf13239f31036e5b2e55292bcfbcc85c8f";
+ };
+ }
+ {
+ name = "http_errors___http_errors_1.6.2.tgz";
+ path = fetchurl {
+ name = "http_errors___http_errors_1.6.2.tgz";
+ url = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz";
+ sha1 = "0a002cc85707192a7e7946ceedc11155f60ec736";
+ };
+ }
+ {
+ name = "http_proxy_middleware___http_proxy_middleware_0.19.1.tgz";
+ path = fetchurl {
+ name = "http_proxy_middleware___http_proxy_middleware_0.19.1.tgz";
+ url = "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz";
+ sha1 = "183c7dc4aa1479150306498c210cdaf96080a43a";
+ };
+ }
+ {
+ name = "http_proxy___http_proxy_1.18.0.tgz";
+ path = fetchurl {
+ name = "http_proxy___http_proxy_1.18.0.tgz";
+ url = "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.0.tgz";
+ sha1 = "dbe55f63e75a347db7f3d99974f2692a314a6a3a";
+ };
+ }
+ {
+ name = "http_signature___http_signature_1.2.0.tgz";
+ path = fetchurl {
+ name = "http_signature___http_signature_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz";
+ sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
+ };
+ }
+ {
+ name = "https_browserify___https_browserify_1.0.0.tgz";
+ path = fetchurl {
+ name = "https_browserify___https_browserify_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz";
+ sha1 = "ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73";
+ };
+ }
+ {
+ name = "iconv_lite___iconv_lite_0.4.24.tgz";
+ path = fetchurl {
+ name = "iconv_lite___iconv_lite_0.4.24.tgz";
+ url = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz";
+ sha1 = "2022b4b25fbddc21d2f524974a474aafe733908b";
+ };
+ }
+ {
+ name = "icss_replace_symbols___icss_replace_symbols_1.1.0.tgz";
+ path = fetchurl {
+ name = "icss_replace_symbols___icss_replace_symbols_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz";
+ sha1 = "06ea6f83679a7749e386cfe1fe812ae5db223ded";
+ };
+ }
+ {
+ name = "icss_utils___icss_utils_2.1.0.tgz";
+ path = fetchurl {
+ name = "icss_utils___icss_utils_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz";
+ sha1 = "83f0a0ec378bf3246178b6c2ad9136f135b1c962";
+ };
+ }
+ {
+ name = "ieee754___ieee754_1.1.8.tgz";
+ path = fetchurl {
+ name = "ieee754___ieee754_1.1.8.tgz";
+ url = "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz";
+ sha1 = "be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4";
+ };
+ }
+ {
+ name = "iferr___iferr_0.1.5.tgz";
+ path = fetchurl {
+ name = "iferr___iferr_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz";
+ sha1 = "c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501";
+ };
+ }
+ {
+ name = "ignore_by_default___ignore_by_default_1.0.1.tgz";
+ path = fetchurl {
+ name = "ignore_by_default___ignore_by_default_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz";
+ sha1 = "48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09";
+ };
+ }
+ {
+ name = "ignore_walk___ignore_walk_3.0.1.tgz";
+ path = fetchurl {
+ name = "ignore_walk___ignore_walk_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz";
+ sha1 = "a83e62e7d272ac0e3b551aaa82831a19b69f82f8";
+ };
+ }
+ {
+ name = "ignore___ignore_3.3.10.tgz";
+ path = fetchurl {
+ name = "ignore___ignore_3.3.10.tgz";
+ url = "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz";
+ sha1 = "0a97fb876986e8081c631160f8f9f389157f0043";
+ };
+ }
+ {
+ name = "ignore___ignore_4.0.6.tgz";
+ path = fetchurl {
+ name = "ignore___ignore_4.0.6.tgz";
+ url = "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz";
+ sha1 = "750e3db5862087b4737ebac8207ffd1ef27b25fc";
+ };
+ }
+ {
+ name = "ignore___ignore_5.1.2.tgz";
+ path = fetchurl {
+ name = "ignore___ignore_5.1.2.tgz";
+ url = "https://registry.yarnpkg.com/ignore/-/ignore-5.1.2.tgz";
+ sha1 = "e28e584d43ad7e92f96995019cc43b9e1ac49558";
+ };
+ }
+ {
+ name = "immediate___immediate_3.0.6.tgz";
+ path = fetchurl {
+ name = "immediate___immediate_3.0.6.tgz";
+ url = "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz";
+ sha1 = "9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b";
+ };
+ }
+ {
+ name = "immutable_tuple___immutable_tuple_0.4.9.tgz";
+ path = fetchurl {
+ name = "immutable_tuple___immutable_tuple_0.4.9.tgz";
+ url = "https://registry.yarnpkg.com/immutable-tuple/-/immutable-tuple-0.4.9.tgz";
+ sha1 = "473ebdd6c169c461913a454bf87ef8f601a20ff0";
+ };
+ }
+ {
+ name = "import_fresh___import_fresh_2.0.0.tgz";
+ path = fetchurl {
+ name = "import_fresh___import_fresh_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz";
+ sha1 = "d81355c15612d386c61f9ddd3922d4304822a546";
+ };
+ }
+ {
+ name = "import_lazy___import_lazy_2.1.0.tgz";
+ path = fetchurl {
+ name = "import_lazy___import_lazy_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz";
+ sha1 = "05698e3d45c88e8d7e9d92cb0584e77f096f3e43";
+ };
+ }
+ {
+ name = "import_lazy___import_lazy_4.0.0.tgz";
+ path = fetchurl {
+ name = "import_lazy___import_lazy_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz";
+ sha1 = "e8eb627483a0a43da3c03f3e35548be5cb0cc153";
+ };
+ }
+ {
+ name = "import_local___import_local_2.0.0.tgz";
+ path = fetchurl {
+ name = "import_local___import_local_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz";
+ sha1 = "55070be38a5993cf18ef6db7e961f5bee5c5a09d";
+ };
+ }
+ {
+ name = "imports_loader___imports_loader_0.8.0.tgz";
+ path = fetchurl {
+ name = "imports_loader___imports_loader_0.8.0.tgz";
+ url = "https://registry.yarnpkg.com/imports-loader/-/imports-loader-0.8.0.tgz";
+ sha1 = "030ea51b8ca05977c40a3abfd9b4088fe0be9a69";
+ };
+ }
+ {
+ name = "imurmurhash___imurmurhash_0.1.4.tgz";
+ path = fetchurl {
+ name = "imurmurhash___imurmurhash_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz";
+ sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea";
+ };
+ }
+ {
+ name = "in_publish___in_publish_2.0.0.tgz";
+ path = fetchurl {
+ name = "in_publish___in_publish_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz";
+ sha1 = "e20ff5e3a2afc2690320b6dc552682a9c7fadf51";
+ };
+ }
+ {
+ name = "indent_string___indent_string_2.1.0.tgz";
+ path = fetchurl {
+ name = "indent_string___indent_string_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz";
+ sha1 = "8e2d48348742121b4a8218b7a137e9a52049dc80";
+ };
+ }
+ {
+ name = "indent_string___indent_string_3.2.0.tgz";
+ path = fetchurl {
+ name = "indent_string___indent_string_3.2.0.tgz";
+ url = "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz";
+ sha1 = "4a5fd6d27cc332f37e5419a504dbb837105c9289";
+ };
+ }
+ {
+ name = "indexes_of___indexes_of_1.0.1.tgz";
+ path = fetchurl {
+ name = "indexes_of___indexes_of_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz";
+ sha1 = "f30f716c8e2bd346c7b67d3df3915566a7c05607";
+ };
+ }
+ {
+ name = "indexof___indexof_0.0.1.tgz";
+ path = fetchurl {
+ name = "indexof___indexof_0.0.1.tgz";
+ url = "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz";
+ sha1 = "82dc336d232b9062179d05ab3293a66059fd435d";
+ };
+ }
+ {
+ name = "infer_owner___infer_owner_1.0.4.tgz";
+ path = fetchurl {
+ name = "infer_owner___infer_owner_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz";
+ sha1 = "c4cefcaa8e51051c2a40ba2ce8a3d27295af9467";
+ };
+ }
+ {
+ name = "inflight___inflight_1.0.6.tgz";
+ path = fetchurl {
+ name = "inflight___inflight_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz";
+ sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+ };
+ }
+ {
+ name = "inherits___inherits_2.0.3.tgz";
+ path = fetchurl {
+ name = "inherits___inherits_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz";
+ sha1 = "633c2c83e3da42a502f52466022480f4208261de";
+ };
+ }
+ {
+ name = "inherits___inherits_2.0.1.tgz";
+ path = fetchurl {
+ name = "inherits___inherits_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz";
+ sha1 = "b17d08d326b4423e568eff719f91b0b1cbdf69f1";
+ };
+ }
+ {
+ name = "ini___ini_1.3.5.tgz";
+ path = fetchurl {
+ name = "ini___ini_1.3.5.tgz";
+ url = "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz";
+ sha1 = "eee25f56db1c9ec6085e0c22778083f596abf927";
+ };
+ }
+ {
+ name = "inquirer___inquirer_6.2.0.tgz";
+ path = fetchurl {
+ name = "inquirer___inquirer_6.2.0.tgz";
+ url = "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.0.tgz";
+ sha1 = "51adcd776f661369dc1e894859c2560a224abdd8";
+ };
+ }
+ {
+ name = "internal_ip___internal_ip_4.3.0.tgz";
+ path = fetchurl {
+ name = "internal_ip___internal_ip_4.3.0.tgz";
+ url = "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz";
+ sha1 = "845452baad9d2ca3b69c635a137acb9a0dad0907";
+ };
+ }
+ {
+ name = "interpret___interpret_1.2.0.tgz";
+ path = fetchurl {
+ name = "interpret___interpret_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz";
+ sha1 = "d5061a6224be58e8083985f5014d844359576296";
+ };
+ }
+ {
+ name = "invariant___invariant_2.2.4.tgz";
+ path = fetchurl {
+ name = "invariant___invariant_2.2.4.tgz";
+ url = "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz";
+ sha1 = "610f3c92c9359ce1db616e538008d23ff35158e6";
+ };
+ }
+ {
+ name = "invert_kv___invert_kv_1.0.0.tgz";
+ path = fetchurl {
+ name = "invert_kv___invert_kv_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz";
+ sha1 = "104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6";
+ };
+ }
+ {
+ name = "invert_kv___invert_kv_2.0.0.tgz";
+ path = fetchurl {
+ name = "invert_kv___invert_kv_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz";
+ sha1 = "7393f5afa59ec9ff5f67a27620d11c226e3eec02";
+ };
+ }
+ {
+ name = "ip_regex___ip_regex_2.1.0.tgz";
+ path = fetchurl {
+ name = "ip_regex___ip_regex_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz";
+ sha1 = "fa78bf5d2e6913c911ce9f819ee5146bb6d844e9";
+ };
+ }
+ {
+ name = "ip___ip_1.1.5.tgz";
+ path = fetchurl {
+ name = "ip___ip_1.1.5.tgz";
+ url = "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz";
+ sha1 = "bdded70114290828c0a039e72ef25f5aaec4354a";
+ };
+ }
+ {
+ name = "ipaddr.js___ipaddr.js_1.9.0.tgz";
+ path = fetchurl {
+ name = "ipaddr.js___ipaddr.js_1.9.0.tgz";
+ url = "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz";
+ sha1 = "37df74e430a0e47550fe54a2defe30d8acd95f65";
+ };
+ }
+ {
+ name = "is_absolute_url___is_absolute_url_3.0.2.tgz";
+ path = fetchurl {
+ name = "is_absolute_url___is_absolute_url_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.2.tgz";
+ sha1 = "554f2933e7385cc46e94351977ca2081170a206e";
+ };
+ }
+ {
+ name = "is_absolute___is_absolute_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_absolute___is_absolute_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz";
+ sha1 = "395e1ae84b11f26ad1795e73c17378e48a301576";
+ };
+ }
+ {
+ name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz";
+ path = fetchurl {
+ name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz";
+ url = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz";
+ sha1 = "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6";
+ };
+ }
+ {
+ name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz";
+ sha1 = "169c2f6d3df1f992618072365c9b0ea1f6878656";
+ };
+ }
+ {
+ name = "is_alphabetical___is_alphabetical_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_alphabetical___is_alphabetical_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.2.tgz";
+ sha1 = "1fa6e49213cb7885b75d15862fb3f3d96c884f41";
+ };
+ }
+ {
+ name = "is_alphanumeric___is_alphanumeric_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_alphanumeric___is_alphanumeric_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz";
+ sha1 = "4a9cef71daf4c001c1d81d63d140cf53fd6889f4";
+ };
+ }
+ {
+ name = "is_alphanumerical___is_alphanumerical_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_alphanumerical___is_alphanumerical_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.2.tgz";
+ sha1 = "1138e9ae5040158dc6ff76b820acd6b7a181fd40";
+ };
+ }
+ {
+ name = "is_arrayish___is_arrayish_0.2.1.tgz";
+ path = fetchurl {
+ name = "is_arrayish___is_arrayish_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz";
+ sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d";
+ };
+ }
+ {
+ name = "is_binary_path___is_binary_path_1.0.1.tgz";
+ path = fetchurl {
+ name = "is_binary_path___is_binary_path_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz";
+ sha1 = "75f16642b480f187a711c814161fd3a4a7655898";
+ };
+ }
+ {
+ name = "is_binary_path___is_binary_path_2.1.0.tgz";
+ path = fetchurl {
+ name = "is_binary_path___is_binary_path_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz";
+ sha1 = "ea1f7f3b80f064236e83470f86c09c254fb45b09";
+ };
+ }
+ {
+ name = "is_buffer___is_buffer_1.1.6.tgz";
+ path = fetchurl {
+ name = "is_buffer___is_buffer_1.1.6.tgz";
+ url = "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz";
+ sha1 = "efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be";
+ };
+ }
+ {
+ name = "is_buffer___is_buffer_2.0.3.tgz";
+ path = fetchurl {
+ name = "is_buffer___is_buffer_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz";
+ sha1 = "4ecf3fcf749cbd1e472689e109ac66261a25e725";
+ };
+ }
+ {
+ name = "is_callable___is_callable_1.1.4.tgz";
+ path = fetchurl {
+ name = "is_callable___is_callable_1.1.4.tgz";
+ url = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz";
+ sha1 = "1e1adf219e1eeb684d691f9d6a05ff0d30a24d75";
+ };
+ }
+ {
+ name = "is_ci___is_ci_1.2.1.tgz";
+ path = fetchurl {
+ name = "is_ci___is_ci_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz";
+ sha1 = "e3779c8ee17fccf428488f6e281187f2e632841c";
+ };
+ }
+ {
+ name = "is_ci___is_ci_2.0.0.tgz";
+ path = fetchurl {
+ name = "is_ci___is_ci_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz";
+ sha1 = "6bc6334181810e04b5c22b3d589fdca55026404c";
+ };
+ }
+ {
+ name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz";
+ path = fetchurl {
+ name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz";
+ sha1 = "0b5ee648388e2c860282e793f1856fec3f301b56";
+ };
+ }
+ {
+ name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz";
+ sha1 = "d84876321d0e7add03990406abbbbd36ba9268c7";
+ };
+ }
+ {
+ name = "is_date_object___is_date_object_1.0.1.tgz";
+ path = fetchurl {
+ name = "is_date_object___is_date_object_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz";
+ sha1 = "9aa20eb6aeebbff77fbd33e74ca01b33581d3a16";
+ };
+ }
+ {
+ name = "is_decimal___is_decimal_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_decimal___is_decimal_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.2.tgz";
+ sha1 = "894662d6a8709d307f3a276ca4339c8fa5dff0ff";
+ };
+ }
+ {
+ name = "is_descriptor___is_descriptor_0.1.6.tgz";
+ path = fetchurl {
+ name = "is_descriptor___is_descriptor_0.1.6.tgz";
+ url = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz";
+ sha1 = "366d8240dde487ca51823b1ab9f07a10a78251ca";
+ };
+ }
+ {
+ name = "is_descriptor___is_descriptor_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_descriptor___is_descriptor_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz";
+ sha1 = "3b159746a66604b04f8c81524ba365c5f14d86ec";
+ };
+ }
+ {
+ name = "is_directory___is_directory_0.3.1.tgz";
+ path = fetchurl {
+ name = "is_directory___is_directory_0.3.1.tgz";
+ url = "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz";
+ sha1 = "61339b6f2475fc772fd9c9d83f5c8575dc154ae1";
+ };
+ }
+ {
+ name = "is_extendable___is_extendable_0.1.1.tgz";
+ path = fetchurl {
+ name = "is_extendable___is_extendable_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz";
+ sha1 = "62b110e289a471418e3ec36a617d472e301dfc89";
+ };
+ }
+ {
+ name = "is_extendable___is_extendable_1.0.1.tgz";
+ path = fetchurl {
+ name = "is_extendable___is_extendable_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz";
+ sha1 = "a7470f9e426733d81bd81e1155264e3a3507cab4";
+ };
+ }
+ {
+ name = "is_extglob___is_extglob_2.1.1.tgz";
+ path = fetchurl {
+ name = "is_extglob___is_extglob_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz";
+ sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
+ };
+ }
+ {
+ name = "is_finite___is_finite_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_finite___is_finite_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz";
+ sha1 = "cc6677695602be550ef11e8b4aa6305342b6d0aa";
+ };
+ }
+ {
+ name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz";
+ sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb";
+ };
+ }
+ {
+ name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
+ path = fetchurl {
+ name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
+ sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
+ };
+ }
+ {
+ name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz";
+ path = fetchurl {
+ name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz";
+ sha1 = "f116f8064fe90b3f7844a38997c0b75051269f1d";
+ };
+ }
+ {
+ name = "is_generator_fn___is_generator_fn_2.1.0.tgz";
+ path = fetchurl {
+ name = "is_generator_fn___is_generator_fn_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz";
+ sha1 = "7d140adc389aaf3011a8f2a2a4cfa6faadffb118";
+ };
+ }
+ {
+ name = "is_glob___is_glob_3.1.0.tgz";
+ path = fetchurl {
+ name = "is_glob___is_glob_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz";
+ sha1 = "7ba5ae24217804ac70707b96922567486cc3e84a";
+ };
+ }
+ {
+ name = "is_glob___is_glob_4.0.1.tgz";
+ path = fetchurl {
+ name = "is_glob___is_glob_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz";
+ sha1 = "7567dbe9f2f5e2467bc77ab83c4a29482407a5dc";
+ };
+ }
+ {
+ name = "is_hexadecimal___is_hexadecimal_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_hexadecimal___is_hexadecimal_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.2.tgz";
+ sha1 = "b6e710d7d07bb66b98cb8cece5c9b4921deeb835";
+ };
+ }
+ {
+ name = "is_installed_globally___is_installed_globally_0.1.0.tgz";
+ path = fetchurl {
+ name = "is_installed_globally___is_installed_globally_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz";
+ sha1 = "0dfd98f5a9111716dd535dda6492f67bf3d25a80";
+ };
+ }
+ {
+ name = "is_negated_glob___is_negated_glob_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_negated_glob___is_negated_glob_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz";
+ sha1 = "6910bca5da8c95e784b5751b976cf5a10fee36d2";
+ };
+ }
+ {
+ name = "is_npm___is_npm_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_npm___is_npm_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz";
+ sha1 = "f2fb63a65e4905b406c86072765a1a4dc793b9f4";
+ };
+ }
+ {
+ name = "is_number___is_number_3.0.0.tgz";
+ path = fetchurl {
+ name = "is_number___is_number_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz";
+ sha1 = "24fd6201a4782cf50561c810276afc7d12d71195";
+ };
+ }
+ {
+ name = "is_number___is_number_7.0.0.tgz";
+ path = fetchurl {
+ name = "is_number___is_number_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz";
+ sha1 = "7535345b896734d5f80c4d06c50955527a14f12b";
+ };
+ }
+ {
+ name = "is_obj___is_obj_1.0.1.tgz";
+ path = fetchurl {
+ name = "is_obj___is_obj_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz";
+ sha1 = "3e4729ac1f5fde025cd7d83a896dab9f4f67db0f";
+ };
+ }
+ {
+ name = "is_path_cwd___is_path_cwd_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_path_cwd___is_path_cwd_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz";
+ sha1 = "d225ec23132e89edd38fda767472e62e65f1106d";
+ };
+ }
+ {
+ name = "is_path_cwd___is_path_cwd_2.2.0.tgz";
+ path = fetchurl {
+ name = "is_path_cwd___is_path_cwd_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz";
+ sha1 = "67d43b82664a7b5191fd9119127eb300048a9fdb";
+ };
+ }
+ {
+ name = "is_path_in_cwd___is_path_in_cwd_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_path_in_cwd___is_path_in_cwd_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz";
+ sha1 = "6477582b8214d602346094567003be8a9eac04dc";
+ };
+ }
+ {
+ name = "is_path_in_cwd___is_path_in_cwd_2.1.0.tgz";
+ path = fetchurl {
+ name = "is_path_in_cwd___is_path_in_cwd_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz";
+ sha1 = "bfe2dca26c69f397265a4009963602935a053acb";
+ };
+ }
+ {
+ name = "is_path_inside___is_path_inside_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_path_inside___is_path_inside_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz";
+ sha1 = "fc06e5a1683fbda13de667aff717bbc10a48f37f";
+ };
+ }
+ {
+ name = "is_path_inside___is_path_inside_2.1.0.tgz";
+ path = fetchurl {
+ name = "is_path_inside___is_path_inside_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz";
+ sha1 = "7c9810587d659a40d27bcdb4d5616eab059494b2";
+ };
+ }
+ {
+ name = "is_plain_obj___is_plain_obj_1.1.0.tgz";
+ path = fetchurl {
+ name = "is_plain_obj___is_plain_obj_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz";
+ sha1 = "71a50c8429dfca773c92a390a4a03b39fcd51d3e";
+ };
+ }
+ {
+ name = "is_plain_object___is_plain_object_2.0.4.tgz";
+ path = fetchurl {
+ name = "is_plain_object___is_plain_object_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz";
+ sha1 = "2c163b3fafb1b606d9d17928f05c2a1c38e07677";
+ };
+ }
+ {
+ name = "is_promise___is_promise_2.1.0.tgz";
+ path = fetchurl {
+ name = "is_promise___is_promise_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz";
+ sha1 = "79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa";
+ };
+ }
+ {
+ name = "is_redirect___is_redirect_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_redirect___is_redirect_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz";
+ sha1 = "1d03dded53bd8db0f30c26e4f95d36fc7c87dc24";
+ };
+ }
+ {
+ name = "is_regex___is_regex_1.0.4.tgz";
+ path = fetchurl {
+ name = "is_regex___is_regex_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz";
+ sha1 = "5517489b547091b0930e095654ced25ee97e9491";
+ };
+ }
+ {
+ name = "is_regexp___is_regexp_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_regexp___is_regexp_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz";
+ sha1 = "fd2d883545c46bac5a633e7b9a09e87fa2cb5069";
+ };
+ }
+ {
+ name = "is_regexp___is_regexp_2.1.0.tgz";
+ path = fetchurl {
+ name = "is_regexp___is_regexp_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-regexp/-/is-regexp-2.1.0.tgz";
+ sha1 = "cd734a56864e23b956bf4e7c66c396a4c0b22c2d";
+ };
+ }
+ {
+ name = "is_relative___is_relative_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_relative___is_relative_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz";
+ sha1 = "a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d";
+ };
+ }
+ {
+ name = "is_resolvable___is_resolvable_1.1.0.tgz";
+ path = fetchurl {
+ name = "is_resolvable___is_resolvable_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz";
+ sha1 = "fb18f87ce1feb925169c9a407c19318a3206ed88";
+ };
+ }
+ {
+ name = "is_retry_allowed___is_retry_allowed_1.1.0.tgz";
+ path = fetchurl {
+ name = "is_retry_allowed___is_retry_allowed_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz";
+ sha1 = "11a060568b67339444033d0125a61a20d564fb34";
+ };
+ }
+ {
+ name = "is_ssh___is_ssh_1.3.1.tgz";
+ path = fetchurl {
+ name = "is_ssh___is_ssh_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.3.1.tgz";
+ sha1 = "f349a8cadd24e65298037a522cf7520f2e81a0f3";
+ };
+ }
+ {
+ name = "is_stream___is_stream_1.1.0.tgz";
+ path = fetchurl {
+ name = "is_stream___is_stream_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz";
+ sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44";
+ };
+ }
+ {
+ name = "is_symbol___is_symbol_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_symbol___is_symbol_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz";
+ sha1 = "a055f6ae57192caee329e7a860118b497a950f38";
+ };
+ }
+ {
+ name = "is_typedarray___is_typedarray_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_typedarray___is_typedarray_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz";
+ sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
+ };
+ }
+ {
+ name = "is_unc_path___is_unc_path_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_unc_path___is_unc_path_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz";
+ sha1 = "d731e8898ed090a12c352ad2eaed5095ad322c9d";
+ };
+ }
+ {
+ name = "is_utf8___is_utf8_0.2.1.tgz";
+ path = fetchurl {
+ name = "is_utf8___is_utf8_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz";
+ sha1 = "4b0da1442104d1b336340e80797e865cf39f7d72";
+ };
+ }
+ {
+ name = "is_valid_glob___is_valid_glob_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_valid_glob___is_valid_glob_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz";
+ sha1 = "29bf3eff701be2d4d315dbacc39bc39fe8f601aa";
+ };
+ }
+ {
+ name = "is_whitespace_character___is_whitespace_character_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_whitespace_character___is_whitespace_character_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.2.tgz";
+ sha1 = "ede53b4c6f6fb3874533751ec9280d01928d03ed";
+ };
+ }
+ {
+ name = "is_windows___is_windows_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_windows___is_windows_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz";
+ sha1 = "d1850eb9791ecd18e6182ce12a30f396634bb19d";
+ };
+ }
+ {
+ name = "is_word_character___is_word_character_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_word_character___is_word_character_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.2.tgz";
+ sha1 = "46a5dac3f2a1840898b91e576cd40d493f3ae553";
+ };
+ }
+ {
+ name = "is_wsl___is_wsl_1.1.0.tgz";
+ path = fetchurl {
+ name = "is_wsl___is_wsl_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz";
+ sha1 = "1f16e4aa22b04d1336b66188a66af3c600c3a66d";
+ };
+ }
+ {
+ name = "isarray___isarray_1.0.0.tgz";
+ path = fetchurl {
+ name = "isarray___isarray_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz";
+ sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+ };
+ }
+ {
+ name = "isarray___isarray_2.0.1.tgz";
+ path = fetchurl {
+ name = "isarray___isarray_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz";
+ sha1 = "a37d94ed9cda2d59865c9f76fe596ee1f338741e";
+ };
+ }
+ {
+ name = "isbinaryfile___isbinaryfile_3.0.2.tgz";
+ path = fetchurl {
+ name = "isbinaryfile___isbinaryfile_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.2.tgz";
+ sha1 = "4a3e974ec0cba9004d3fc6cde7209ea69368a621";
+ };
+ }
+ {
+ name = "isexe___isexe_2.0.0.tgz";
+ path = fetchurl {
+ name = "isexe___isexe_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz";
+ sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
+ };
+ }
+ {
+ name = "isobject___isobject_2.1.0.tgz";
+ path = fetchurl {
+ name = "isobject___isobject_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz";
+ sha1 = "f065561096a3f1da2ef46272f815c840d87e0c89";
+ };
+ }
+ {
+ name = "isobject___isobject_3.0.1.tgz";
+ path = fetchurl {
+ name = "isobject___isobject_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz";
+ sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df";
+ };
+ }
+ {
+ name = "isstream___isstream_0.1.2.tgz";
+ path = fetchurl {
+ name = "isstream___isstream_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz";
+ sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
+ };
+ }
+ {
+ name = "istanbul_api___istanbul_api_2.1.6.tgz";
+ path = fetchurl {
+ name = "istanbul_api___istanbul_api_2.1.6.tgz";
+ url = "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-2.1.6.tgz";
+ sha1 = "d61702a9d1c66ad89d92e66d401e16b0bda4a35f";
+ };
+ }
+ {
+ name = "istanbul_lib_coverage___istanbul_lib_coverage_2.0.5.tgz";
+ path = fetchurl {
+ name = "istanbul_lib_coverage___istanbul_lib_coverage_2.0.5.tgz";
+ url = "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz";
+ sha1 = "675f0ab69503fad4b1d849f736baaca803344f49";
+ };
+ }
+ {
+ name = "istanbul_lib_hook___istanbul_lib_hook_2.0.7.tgz";
+ path = fetchurl {
+ name = "istanbul_lib_hook___istanbul_lib_hook_2.0.7.tgz";
+ url = "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz";
+ sha1 = "c95695f383d4f8f60df1f04252a9550e15b5b133";
+ };
+ }
+ {
+ name = "istanbul_lib_instrument___istanbul_lib_instrument_3.3.0.tgz";
+ path = fetchurl {
+ name = "istanbul_lib_instrument___istanbul_lib_instrument_3.3.0.tgz";
+ url = "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz";
+ sha1 = "a5f63d91f0bbc0c3e479ef4c5de027335ec6d630";
+ };
+ }
+ {
+ name = "istanbul_lib_report___istanbul_lib_report_2.0.8.tgz";
+ path = fetchurl {
+ name = "istanbul_lib_report___istanbul_lib_report_2.0.8.tgz";
+ url = "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz";
+ sha1 = "5a8113cd746d43c4889eba36ab10e7d50c9b4f33";
+ };
+ }
+ {
+ name = "istanbul_lib_source_maps___istanbul_lib_source_maps_3.0.6.tgz";
+ path = fetchurl {
+ name = "istanbul_lib_source_maps___istanbul_lib_source_maps_3.0.6.tgz";
+ url = "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz";
+ sha1 = "284997c48211752ec486253da97e3879defba8c8";
+ };
+ }
+ {
+ name = "istanbul_reports___istanbul_reports_2.2.6.tgz";
+ path = fetchurl {
+ name = "istanbul_reports___istanbul_reports_2.2.6.tgz";
+ url = "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.6.tgz";
+ sha1 = "7b4f2660d82b29303a8fe6091f8ca4bf058da1af";
+ };
+ }
+ {
+ name = "istextorbinary___istextorbinary_2.2.1.tgz";
+ path = fetchurl {
+ name = "istextorbinary___istextorbinary_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/istextorbinary/-/istextorbinary-2.2.1.tgz";
+ sha1 = "a5231a08ef6dd22b268d0895084cf8d58b5bec53";
+ };
+ }
+ {
+ name = "iterall___iterall_1.2.2.tgz";
+ path = fetchurl {
+ name = "iterall___iterall_1.2.2.tgz";
+ url = "https://registry.yarnpkg.com/iterall/-/iterall-1.2.2.tgz";
+ sha1 = "92d70deb8028e0c39ff3164fdbf4d8b088130cd7";
+ };
+ }
+ {
+ name = "jasmine_core___jasmine_core_2.9.0.tgz";
+ path = fetchurl {
+ name = "jasmine_core___jasmine_core_2.9.0.tgz";
+ url = "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.9.0.tgz";
+ sha1 = "bfbb56defcd30789adec5a3fbba8504233289c72";
+ };
+ }
+ {
+ name = "jasmine_diff___jasmine_diff_0.1.3.tgz";
+ path = fetchurl {
+ name = "jasmine_diff___jasmine_diff_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/jasmine-diff/-/jasmine-diff-0.1.3.tgz";
+ sha1 = "93ccc2dcc41028c5ddd4606558074839f2deeaa8";
+ };
+ }
+ {
+ name = "jasmine_jquery___jasmine_jquery_2.1.1.tgz";
+ path = fetchurl {
+ name = "jasmine_jquery___jasmine_jquery_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/jasmine-jquery/-/jasmine-jquery-2.1.1.tgz";
+ sha1 = "d4095e646944a26763235769ab018d9f30f0d47b";
+ };
+ }
+ {
+ name = "jed___jed_1.1.1.tgz";
+ path = fetchurl {
+ name = "jed___jed_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/jed/-/jed-1.1.1.tgz";
+ sha1 = "7a549bbd9ffe1585b0cd0a191e203055bee574b4";
+ };
+ }
+ {
+ name = "jest_changed_files___jest_changed_files_24.8.0.tgz";
+ path = fetchurl {
+ name = "jest_changed_files___jest_changed_files_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.8.0.tgz";
+ sha1 = "7e7eb21cf687587a85e50f3d249d1327e15b157b";
+ };
+ }
+ {
+ name = "jest_cli___jest_cli_24.8.0.tgz";
+ path = fetchurl {
+ name = "jest_cli___jest_cli_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.8.0.tgz";
+ sha1 = "b075ac914492ed114fa338ade7362a301693e989";
+ };
+ }
+ {
+ name = "jest_config___jest_config_24.8.0.tgz";
+ path = fetchurl {
+ name = "jest_config___jest_config_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-config/-/jest-config-24.8.0.tgz";
+ sha1 = "77db3d265a6f726294687cbbccc36f8a76ee0f4f";
+ };
+ }
+ {
+ name = "jest_diff___jest_diff_24.8.0.tgz";
+ path = fetchurl {
+ name = "jest_diff___jest_diff_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.8.0.tgz";
+ sha1 = "146435e7d1e3ffdf293d53ff97e193f1d1546172";
+ };
+ }
+ {
+ name = "jest_docblock___jest_docblock_24.3.0.tgz";
+ path = fetchurl {
+ name = "jest_docblock___jest_docblock_24.3.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.3.0.tgz";
+ sha1 = "b9c32dac70f72e4464520d2ba4aec02ab14db5dd";
+ };
+ }
+ {
+ name = "jest_each___jest_each_24.8.0.tgz";
+ path = fetchurl {
+ name = "jest_each___jest_each_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-each/-/jest-each-24.8.0.tgz";
+ sha1 = "a05fd2bf94ddc0b1da66c6d13ec2457f35e52775";
+ };
+ }
+ {
+ name = "jest_environment_jsdom___jest_environment_jsdom_24.8.0.tgz";
+ path = fetchurl {
+ name = "jest_environment_jsdom___jest_environment_jsdom_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.8.0.tgz";
+ sha1 = "300f6949a146cabe1c9357ad9e9ecf9f43f38857";
+ };
+ }
+ {
+ name = "jest_environment_node___jest_environment_node_24.8.0.tgz";
+ path = fetchurl {
+ name = "jest_environment_node___jest_environment_node_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.8.0.tgz";
+ sha1 = "d3f726ba8bc53087a60e7a84ca08883a4c892231";
+ };
+ }
+ {
+ name = "jest_get_type___jest_get_type_24.8.0.tgz";
+ path = fetchurl {
+ name = "jest_get_type___jest_get_type_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.8.0.tgz";
+ sha1 = "a7440de30b651f5a70ea3ed7ff073a32dfe646fc";
+ };
+ }
+ {
+ name = "jest_haste_map___jest_haste_map_24.8.0.tgz";
+ path = fetchurl {
+ name = "jest_haste_map___jest_haste_map_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.8.0.tgz";
+ sha1 = "51794182d877b3ddfd6e6d23920e3fe72f305800";
+ };
+ }
+ {
+ name = "jest_jasmine2___jest_jasmine2_24.8.0.tgz";
+ path = fetchurl {
+ name = "jest_jasmine2___jest_jasmine2_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.8.0.tgz";
+ sha1 = "a9c7e14c83dd77d8b15e820549ce8987cc8cd898";
+ };
+ }
+ {
+ name = "jest_junit___jest_junit_6.3.0.tgz";
+ path = fetchurl {
+ name = "jest_junit___jest_junit_6.3.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-junit/-/jest-junit-6.3.0.tgz";
+ sha1 = "99e64ebc54eddcb21238f0cc49f5820c89a8c785";
+ };
+ }
+ {
+ name = "jest_leak_detector___jest_leak_detector_24.8.0.tgz";
+ path = fetchurl {
+ name = "jest_leak_detector___jest_leak_detector_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.8.0.tgz";
+ sha1 = "c0086384e1f650c2d8348095df769f29b48e6980";
+ };
+ }
+ {
+ name = "jest_matcher_utils___jest_matcher_utils_24.8.0.tgz";
+ path = fetchurl {
+ name = "jest_matcher_utils___jest_matcher_utils_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.8.0.tgz";
+ sha1 = "2bce42204c9af12bde46f83dc839efe8be832495";
+ };
+ }
+ {
+ name = "jest_message_util___jest_message_util_24.8.0.tgz";
+ path = fetchurl {
+ name = "jest_message_util___jest_message_util_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.8.0.tgz";
+ sha1 = "0d6891e72a4beacc0292b638685df42e28d6218b";
+ };
+ }
+ {
+ name = "jest_mock___jest_mock_24.8.0.tgz";
+ path = fetchurl {
+ name = "jest_mock___jest_mock_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.8.0.tgz";
+ sha1 = "2f9d14d37699e863f1febf4e4d5a33b7fdbbde56";
+ };
+ }
+ {
+ name = "jest_pnp_resolver___jest_pnp_resolver_1.2.1.tgz";
+ path = fetchurl {
+ name = "jest_pnp_resolver___jest_pnp_resolver_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz";
+ sha1 = "ecdae604c077a7fbc70defb6d517c3c1c898923a";
+ };
+ }
+ {
+ name = "jest_regex_util___jest_regex_util_24.3.0.tgz";
+ path = fetchurl {
+ name = "jest_regex_util___jest_regex_util_24.3.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.3.0.tgz";
+ sha1 = "d5a65f60be1ae3e310d5214a0307581995227b36";
+ };
+ }
+ {
+ name = "jest_resolve_dependencies___jest_resolve_dependencies_24.8.0.tgz";
+ path = fetchurl {
+ name = "jest_resolve_dependencies___jest_resolve_dependencies_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.8.0.tgz";
+ sha1 = "19eec3241f2045d3f990dba331d0d7526acff8e0";
+ };
+ }
+ {
+ name = "jest_resolve___jest_resolve_24.8.0.tgz";
+ path = fetchurl {
+ name = "jest_resolve___jest_resolve_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.8.0.tgz";
+ sha1 = "84b8e5408c1f6a11539793e2b5feb1b6e722439f";
+ };
+ }
+ {
+ name = "jest_runner___jest_runner_24.8.0.tgz";
+ path = fetchurl {
+ name = "jest_runner___jest_runner_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.8.0.tgz";
+ sha1 = "4f9ae07b767db27b740d7deffad0cf67ccb4c5bb";
+ };
+ }
+ {
+ name = "jest_runtime___jest_runtime_24.8.0.tgz";
+ path = fetchurl {
+ name = "jest_runtime___jest_runtime_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.8.0.tgz";
+ sha1 = "05f94d5b05c21f6dc54e427cd2e4980923350620";
+ };
+ }
+ {
+ name = "jest_serializer___jest_serializer_24.4.0.tgz";
+ path = fetchurl {
+ name = "jest_serializer___jest_serializer_24.4.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.4.0.tgz";
+ sha1 = "f70c5918c8ea9235ccb1276d232e459080588db3";
+ };
+ }
+ {
+ name = "jest_snapshot___jest_snapshot_24.8.0.tgz";
+ path = fetchurl {
+ name = "jest_snapshot___jest_snapshot_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.8.0.tgz";
+ sha1 = "3bec6a59da2ff7bc7d097a853fb67f9d415cb7c6";
+ };
+ }
+ {
+ name = "jest_transform_graphql___jest_transform_graphql_2.1.0.tgz";
+ path = fetchurl {
+ name = "jest_transform_graphql___jest_transform_graphql_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-transform-graphql/-/jest-transform-graphql-2.1.0.tgz";
+ sha1 = "903cb66bb27bc2772fd3e5dd4f7e9b57230f5829";
+ };
+ }
+ {
+ name = "jest_util___jest_util_24.8.0.tgz";
+ path = fetchurl {
+ name = "jest_util___jest_util_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-util/-/jest-util-24.8.0.tgz";
+ sha1 = "41f0e945da11df44cc76d64ffb915d0716f46cd1";
+ };
+ }
+ {
+ name = "jest_validate___jest_validate_24.8.0.tgz";
+ path = fetchurl {
+ name = "jest_validate___jest_validate_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.8.0.tgz";
+ sha1 = "624c41533e6dfe356ffadc6e2423a35c2d3b4849";
+ };
+ }
+ {
+ name = "jest_watcher___jest_watcher_24.8.0.tgz";
+ path = fetchurl {
+ name = "jest_watcher___jest_watcher_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.8.0.tgz";
+ sha1 = "58d49915ceddd2de85e238f6213cef1c93715de4";
+ };
+ }
+ {
+ name = "jest_worker___jest_worker_24.6.0.tgz";
+ path = fetchurl {
+ name = "jest_worker___jest_worker_24.6.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.6.0.tgz";
+ sha1 = "7f81ceae34b7cde0c9827a6980c35b7cdc0161b3";
+ };
+ }
+ {
+ name = "jest___jest_24.8.0.tgz";
+ path = fetchurl {
+ name = "jest___jest_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/jest/-/jest-24.8.0.tgz";
+ sha1 = "d5dff1984d0d1002196e9b7f12f75af1b2809081";
+ };
+ }
+ {
+ name = "jmespath___jmespath_0.15.0.tgz";
+ path = fetchurl {
+ name = "jmespath___jmespath_0.15.0.tgz";
+ url = "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz";
+ sha1 = "a3f222a9aae9f966f5d27c796510e28091764217";
+ };
+ }
+ {
+ name = "jquery_ujs___jquery_ujs_1.2.2.tgz";
+ path = fetchurl {
+ name = "jquery_ujs___jquery_ujs_1.2.2.tgz";
+ url = "https://registry.yarnpkg.com/jquery-ujs/-/jquery-ujs-1.2.2.tgz";
+ sha1 = "6a8ef1020e6b6dda385b90a4bddc128c21c56397";
+ };
+ }
+ {
+ name = "jquery.caret___jquery.caret_0.3.1.tgz";
+ path = fetchurl {
+ name = "jquery.caret___jquery.caret_0.3.1.tgz";
+ url = "https://registry.yarnpkg.com/jquery.caret/-/jquery.caret-0.3.1.tgz";
+ sha1 = "9c093318faf327eff322e826ca9f3241368bc7b8";
+ };
+ }
+ {
+ name = "jquery.waitforimages___jquery.waitforimages_2.2.0.tgz";
+ path = fetchurl {
+ name = "jquery.waitforimages___jquery.waitforimages_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/jquery.waitforimages/-/jquery.waitforimages-2.2.0.tgz";
+ sha1 = "63f23131055a1b060dc913e6d874bcc9b9e6b16b";
+ };
+ }
+ {
+ name = "jquery___jquery_3.4.1.tgz";
+ path = fetchurl {
+ name = "jquery___jquery_3.4.1.tgz";
+ url = "https://registry.yarnpkg.com/jquery/-/jquery-3.4.1.tgz";
+ sha1 = "714f1f8d9dde4bdfa55764ba37ef214630d80ef2";
+ };
+ }
+ {
+ name = "js_base64___js_base64_2.5.1.tgz";
+ path = fetchurl {
+ name = "js_base64___js_base64_2.5.1.tgz";
+ url = "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.1.tgz";
+ sha1 = "1efa39ef2c5f7980bb1784ade4a8af2de3291121";
+ };
+ }
+ {
+ name = "js_beautify___js_beautify_1.8.9.tgz";
+ path = fetchurl {
+ name = "js_beautify___js_beautify_1.8.9.tgz";
+ url = "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.8.9.tgz";
+ sha1 = "08e3c05ead3ecfbd4f512c3895b1cda76c87d523";
+ };
+ }
+ {
+ name = "js_cookie___js_cookie_2.1.3.tgz";
+ path = fetchurl {
+ name = "js_cookie___js_cookie_2.1.3.tgz";
+ url = "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.1.3.tgz";
+ sha1 = "48071625217ac9ecfab8c343a13d42ec09ff0526";
+ };
+ }
+ {
+ name = "js_levenshtein___js_levenshtein_1.1.4.tgz";
+ path = fetchurl {
+ name = "js_levenshtein___js_levenshtein_1.1.4.tgz";
+ url = "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.4.tgz";
+ sha1 = "3a56e3cbf589ca0081eb22cd9ba0b1290a16d26e";
+ };
+ }
+ {
+ name = "js_tokens___js_tokens_4.0.0.tgz";
+ path = fetchurl {
+ name = "js_tokens___js_tokens_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz";
+ sha1 = "19203fb59991df98e3a287050d4647cdeaf32499";
+ };
+ }
+ {
+ name = "js_tokens___js_tokens_3.0.2.tgz";
+ path = fetchurl {
+ name = "js_tokens___js_tokens_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz";
+ sha1 = "9866df395102130e38f7f996bceb65443209c25b";
+ };
+ }
+ {
+ name = "js_yaml___js_yaml_3.13.1.tgz";
+ path = fetchurl {
+ name = "js_yaml___js_yaml_3.13.1.tgz";
+ url = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz";
+ sha1 = "aff151b30bfdfa8e49e05da22e7415e9dfa37847";
+ };
+ }
+ {
+ name = "js2xmlparser___js2xmlparser_3.0.0.tgz";
+ path = fetchurl {
+ name = "js2xmlparser___js2xmlparser_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/js2xmlparser/-/js2xmlparser-3.0.0.tgz";
+ sha1 = "3fb60eaa089c5440f9319f51760ccd07e2499733";
+ };
+ }
+ {
+ name = "jsbn___jsbn_0.1.1.tgz";
+ path = fetchurl {
+ name = "jsbn___jsbn_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz";
+ sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
+ };
+ }
+ {
+ name = "jsdoc_vue___jsdoc_vue_1.0.0.tgz";
+ path = fetchurl {
+ name = "jsdoc_vue___jsdoc_vue_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/jsdoc-vue/-/jsdoc-vue-1.0.0.tgz";
+ sha1 = "ff3ac1ba6bc4a74079bb79058a7bf0066e346235";
+ };
+ }
+ {
+ name = "jsdoc___jsdoc_3.5.5.tgz";
+ path = fetchurl {
+ name = "jsdoc___jsdoc_3.5.5.tgz";
+ url = "https://registry.yarnpkg.com/jsdoc/-/jsdoc-3.5.5.tgz";
+ sha1 = "484521b126e81904d632ff83ec9aaa096708fa4d";
+ };
+ }
+ {
+ name = "jsdom___jsdom_11.12.0.tgz";
+ path = fetchurl {
+ name = "jsdom___jsdom_11.12.0.tgz";
+ url = "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz";
+ sha1 = "1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8";
+ };
+ }
+ {
+ name = "jsesc___jsesc_2.5.2.tgz";
+ path = fetchurl {
+ name = "jsesc___jsesc_2.5.2.tgz";
+ url = "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz";
+ sha1 = "80564d2e483dacf6e8ef209650a67df3f0c283a4";
+ };
+ }
+ {
+ name = "jsesc___jsesc_0.5.0.tgz";
+ path = fetchurl {
+ name = "jsesc___jsesc_0.5.0.tgz";
+ url = "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz";
+ sha1 = "e7dee66e35d6fc16f710fe91d5cf69f70f08911d";
+ };
+ }
+ {
+ name = "json_parse_better_errors___json_parse_better_errors_1.0.2.tgz";
+ path = fetchurl {
+ name = "json_parse_better_errors___json_parse_better_errors_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz";
+ sha1 = "bb867cfb3450e69107c131d1c514bab3dc8bcaa9";
+ };
+ }
+ {
+ name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
+ path = fetchurl {
+ name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
+ url = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
+ sha1 = "69f6a87d9513ab8bb8fe63bdb0979c448e684660";
+ };
+ }
+ {
+ name = "json_schema___json_schema_0.2.3.tgz";
+ path = fetchurl {
+ name = "json_schema___json_schema_0.2.3.tgz";
+ url = "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz";
+ sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
+ };
+ }
+ {
+ name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz";
+ path = fetchurl {
+ name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz";
+ sha1 = "9db7b59496ad3f3cfef30a75142d2d930ad72651";
+ };
+ }
+ {
+ name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
+ path = fetchurl {
+ name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
+ url = "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
+ sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
+ };
+ }
+ {
+ name = "json3___json3_3.3.2.tgz";
+ path = fetchurl {
+ name = "json3___json3_3.3.2.tgz";
+ url = "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz";
+ sha1 = "3c0434743df93e2f5c42aee7b19bcb483575f4e1";
+ };
+ }
+ {
+ name = "json5___json5_2.1.0.tgz";
+ path = fetchurl {
+ name = "json5___json5_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz";
+ sha1 = "e7a0c62c48285c628d20a10b85c89bb807c32850";
+ };
+ }
+ {
+ name = "json5___json5_1.0.1.tgz";
+ path = fetchurl {
+ name = "json5___json5_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz";
+ sha1 = "779fb0018604fa854eacbf6252180d83543e3dbe";
+ };
+ }
+ {
+ name = "jsonfile___jsonfile_4.0.0.tgz";
+ path = fetchurl {
+ name = "jsonfile___jsonfile_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz";
+ sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb";
+ };
+ }
+ {
+ name = "jsonparse___jsonparse_1.3.1.tgz";
+ path = fetchurl {
+ name = "jsonparse___jsonparse_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz";
+ sha1 = "3f4dae4a91fac315f71062f8521cc239f1366280";
+ };
+ }
+ {
+ name = "jsprim___jsprim_1.4.1.tgz";
+ path = fetchurl {
+ name = "jsprim___jsprim_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz";
+ sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
+ };
+ }
+ {
+ name = "jszip_utils___jszip_utils_0.0.2.tgz";
+ path = fetchurl {
+ name = "jszip_utils___jszip_utils_0.0.2.tgz";
+ url = "https://registry.yarnpkg.com/jszip-utils/-/jszip-utils-0.0.2.tgz";
+ sha1 = "457d5cbca60a1c2e0706e9da2b544e8e7bc50bf8";
+ };
+ }
+ {
+ name = "jszip___jszip_3.1.3.tgz";
+ path = fetchurl {
+ name = "jszip___jszip_3.1.3.tgz";
+ url = "https://registry.yarnpkg.com/jszip/-/jszip-3.1.3.tgz";
+ sha1 = "8a920403b2b1651c0fc126be90192d9080957c37";
+ };
+ }
+ {
+ name = "karma_chrome_launcher___karma_chrome_launcher_3.0.0.tgz";
+ path = fetchurl {
+ name = "karma_chrome_launcher___karma_chrome_launcher_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-3.0.0.tgz";
+ sha1 = "5c3a7f877a304e90781c28fcd9a49e334a890f42";
+ };
+ }
+ {
+ name = "karma_coverage_istanbul_reporter___karma_coverage_istanbul_reporter_2.1.0.tgz";
+ path = fetchurl {
+ name = "karma_coverage_istanbul_reporter___karma_coverage_istanbul_reporter_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-2.1.0.tgz";
+ sha1 = "5f1bcc13c5e14ee1d91821ee8946861674f54c75";
+ };
+ }
+ {
+ name = "karma_jasmine___karma_jasmine_1.1.2.tgz";
+ path = fetchurl {
+ name = "karma_jasmine___karma_jasmine_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-1.1.2.tgz";
+ sha1 = "394f2b25ffb4a644b9ada6f22d443e2fd08886c3";
+ };
+ }
+ {
+ name = "karma_junit_reporter___karma_junit_reporter_1.2.0.tgz";
+ path = fetchurl {
+ name = "karma_junit_reporter___karma_junit_reporter_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/karma-junit-reporter/-/karma-junit-reporter-1.2.0.tgz";
+ sha1 = "4f9c40cedfb1a395f8aef876abf96189917c6396";
+ };
+ }
+ {
+ name = "karma_mocha_reporter___karma_mocha_reporter_2.2.5.tgz";
+ path = fetchurl {
+ name = "karma_mocha_reporter___karma_mocha_reporter_2.2.5.tgz";
+ url = "https://registry.yarnpkg.com/karma-mocha-reporter/-/karma-mocha-reporter-2.2.5.tgz";
+ sha1 = "15120095e8ed819186e47a0b012f3cd741895560";
+ };
+ }
+ {
+ name = "karma_sourcemap_loader___karma_sourcemap_loader_0.3.7.tgz";
+ path = fetchurl {
+ name = "karma_sourcemap_loader___karma_sourcemap_loader_0.3.7.tgz";
+ url = "https://registry.yarnpkg.com/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.7.tgz";
+ sha1 = "91322c77f8f13d46fed062b042e1009d4c4505d8";
+ };
+ }
+ {
+ name = "karma_webpack___karma_webpack_4.0.2.tgz";
+ path = fetchurl {
+ name = "karma_webpack___karma_webpack_4.0.2.tgz";
+ url = "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-4.0.2.tgz";
+ sha1 = "23219bd95bdda853e3073d3874d34447c77bced0";
+ };
+ }
+ {
+ name = "karma___karma_4.2.0.tgz";
+ path = fetchurl {
+ name = "karma___karma_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/karma/-/karma-4.2.0.tgz";
+ sha1 = "27e88b310cde090d016980ff5444e3a239196fca";
+ };
+ }
+ {
+ name = "katex___katex_0.10.0.tgz";
+ path = fetchurl {
+ name = "katex___katex_0.10.0.tgz";
+ url = "https://registry.yarnpkg.com/katex/-/katex-0.10.0.tgz";
+ sha1 = "da562e5d0d5cc3aa602e27af8a9b8710bfbce765";
+ };
+ }
+ {
+ name = "killable___killable_1.0.1.tgz";
+ path = fetchurl {
+ name = "killable___killable_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz";
+ sha1 = "4c8ce441187a061c7474fb87ca08e2a638194892";
+ };
+ }
+ {
+ name = "kind_of___kind_of_3.2.2.tgz";
+ path = fetchurl {
+ name = "kind_of___kind_of_3.2.2.tgz";
+ url = "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz";
+ sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64";
+ };
+ }
+ {
+ name = "kind_of___kind_of_4.0.0.tgz";
+ path = fetchurl {
+ name = "kind_of___kind_of_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz";
+ sha1 = "20813df3d712928b207378691a45066fae72dd57";
+ };
+ }
+ {
+ name = "kind_of___kind_of_5.1.0.tgz";
+ path = fetchurl {
+ name = "kind_of___kind_of_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz";
+ sha1 = "729c91e2d857b7a419a1f9aa65685c4c33f5845d";
+ };
+ }
+ {
+ name = "kind_of___kind_of_6.0.2.tgz";
+ path = fetchurl {
+ name = "kind_of___kind_of_6.0.2.tgz";
+ url = "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz";
+ sha1 = "01146b36a6218e64e58f3a8d66de5d7fc6f6d051";
+ };
+ }
+ {
+ name = "klaw___klaw_2.0.0.tgz";
+ path = fetchurl {
+ name = "klaw___klaw_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/klaw/-/klaw-2.0.0.tgz";
+ sha1 = "59c128e0dc5ce410201151194eeb9cbf858650f6";
+ };
+ }
+ {
+ name = "kleur___kleur_3.0.3.tgz";
+ path = fetchurl {
+ name = "kleur___kleur_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz";
+ sha1 = "a79c9ecc86ee1ce3fa6206d1216c501f147fc07e";
+ };
+ }
+ {
+ name = "known_css_properties___known_css_properties_0.14.0.tgz";
+ path = fetchurl {
+ name = "known_css_properties___known_css_properties_0.14.0.tgz";
+ url = "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.14.0.tgz";
+ sha1 = "d7032b4334a32dc22e6e46b081ec789daf18756c";
+ };
+ }
+ {
+ name = "latest_version___latest_version_3.1.0.tgz";
+ path = fetchurl {
+ name = "latest_version___latest_version_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz";
+ sha1 = "a205383fea322b33b5ae3b18abee0dc2f356ee15";
+ };
+ }
+ {
+ name = "lazystream___lazystream_1.0.0.tgz";
+ path = fetchurl {
+ name = "lazystream___lazystream_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz";
+ sha1 = "f6995fe0f820392f61396be89462407bb77168e4";
+ };
+ }
+ {
+ name = "lcid___lcid_1.0.0.tgz";
+ path = fetchurl {
+ name = "lcid___lcid_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz";
+ sha1 = "308accafa0bc483a3867b4b6f2b9506251d1b835";
+ };
+ }
+ {
+ name = "lcid___lcid_2.0.0.tgz";
+ path = fetchurl {
+ name = "lcid___lcid_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz";
+ sha1 = "6ef5d2df60e52f82eb228a4c373e8d1f397253cf";
+ };
+ }
+ {
+ name = "lead___lead_1.0.0.tgz";
+ path = fetchurl {
+ name = "lead___lead_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/lead/-/lead-1.0.0.tgz";
+ sha1 = "6f14f99a37be3a9dd784f5495690e5903466ee42";
+ };
+ }
+ {
+ name = "left_pad___left_pad_1.3.0.tgz";
+ path = fetchurl {
+ name = "left_pad___left_pad_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz";
+ sha1 = "5b8a3a7765dfe001261dde915589e782f8c94d1e";
+ };
+ }
+ {
+ name = "leven___leven_2.1.0.tgz";
+ path = fetchurl {
+ name = "leven___leven_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz";
+ sha1 = "c2e7a9f772094dee9d34202ae8acce4687875580";
+ };
+ }
+ {
+ name = "leven___leven_3.1.0.tgz";
+ path = fetchurl {
+ name = "leven___leven_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz";
+ sha1 = "77891de834064cccba82ae7842bb6b14a13ed7f2";
+ };
+ }
+ {
+ name = "levn___levn_0.3.0.tgz";
+ path = fetchurl {
+ name = "levn___levn_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz";
+ sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee";
+ };
+ }
+ {
+ name = "lie___lie_3.1.1.tgz";
+ path = fetchurl {
+ name = "lie___lie_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/lie/-/lie-3.1.1.tgz";
+ sha1 = "9a436b2cc7746ca59de7a41fa469b3efb76bd87e";
+ };
+ }
+ {
+ name = "lightercollective___lightercollective_0.1.0.tgz";
+ path = fetchurl {
+ name = "lightercollective___lightercollective_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/lightercollective/-/lightercollective-0.1.0.tgz";
+ sha1 = "70df102c530dcb8d0ccabfe6175a8d00d5f61300";
+ };
+ }
+ {
+ name = "linkify_it___linkify_it_2.1.0.tgz";
+ path = fetchurl {
+ name = "linkify_it___linkify_it_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.1.0.tgz";
+ sha1 = "c4caf38a6cd7ac2212ef3c7d2bde30a91561f9db";
+ };
+ }
+ {
+ name = "livereload_js___livereload_js_2.4.0.tgz";
+ path = fetchurl {
+ name = "livereload_js___livereload_js_2.4.0.tgz";
+ url = "https://registry.yarnpkg.com/livereload-js/-/livereload-js-2.4.0.tgz";
+ sha1 = "447c31cf1ea9ab52fc20db615c5ddf678f78009c";
+ };
+ }
+ {
+ name = "load_json_file___load_json_file_1.1.0.tgz";
+ path = fetchurl {
+ name = "load_json_file___load_json_file_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz";
+ sha1 = "956905708d58b4bab4c2261b04f59f31c99374c0";
+ };
+ }
+ {
+ name = "load_json_file___load_json_file_2.0.0.tgz";
+ path = fetchurl {
+ name = "load_json_file___load_json_file_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz";
+ sha1 = "7947e42149af80d696cbf797bcaabcfe1fe29ca8";
+ };
+ }
+ {
+ name = "load_json_file___load_json_file_4.0.0.tgz";
+ path = fetchurl {
+ name = "load_json_file___load_json_file_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz";
+ sha1 = "2f5f45ab91e33216234fd53adab668eb4ec0993b";
+ };
+ }
+ {
+ name = "loader_runner___loader_runner_2.4.0.tgz";
+ path = fetchurl {
+ name = "loader_runner___loader_runner_2.4.0.tgz";
+ url = "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz";
+ sha1 = "ed47066bfe534d7e84c4c7b9998c2a75607d9357";
+ };
+ }
+ {
+ name = "loader_utils___loader_utils_1.2.3.tgz";
+ path = fetchurl {
+ name = "loader_utils___loader_utils_1.2.3.tgz";
+ url = "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz";
+ sha1 = "1ff5dc6911c9f0a062531a4c04b609406108c2c7";
+ };
+ }
+ {
+ name = "locate_path___locate_path_2.0.0.tgz";
+ path = fetchurl {
+ name = "locate_path___locate_path_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz";
+ sha1 = "2b568b265eec944c6d9c0de9c3dbbbca0354cd8e";
+ };
+ }
+ {
+ name = "locate_path___locate_path_3.0.0.tgz";
+ path = fetchurl {
+ name = "locate_path___locate_path_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz";
+ sha1 = "dbec3b3ab759758071b58fe59fc41871af21400e";
+ };
+ }
+ {
+ name = "locate_path___locate_path_5.0.0.tgz";
+ path = fetchurl {
+ name = "locate_path___locate_path_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz";
+ sha1 = "1afba396afd676a6d42504d0a67a3a7eb9f62aa0";
+ };
+ }
+ {
+ name = "lodash.camelcase___lodash.camelcase_4.3.0.tgz";
+ path = fetchurl {
+ name = "lodash.camelcase___lodash.camelcase_4.3.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz";
+ sha1 = "b28aa6288a2b9fc651035c7711f65ab6190331a6";
+ };
+ }
+ {
+ name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz";
+ path = fetchurl {
+ name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz";
+ sha1 = "e23f3f9c4f8fbdde872529c1071857a086e5ccef";
+ };
+ }
+ {
+ name = "lodash.differencewith___lodash.differencewith_4.5.0.tgz";
+ path = fetchurl {
+ name = "lodash.differencewith___lodash.differencewith_4.5.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.differencewith/-/lodash.differencewith-4.5.0.tgz";
+ sha1 = "bafafbc918b55154e179176a00bb0aefaac854b7";
+ };
+ }
+ {
+ name = "lodash.escaperegexp___lodash.escaperegexp_4.1.2.tgz";
+ path = fetchurl {
+ name = "lodash.escaperegexp___lodash.escaperegexp_4.1.2.tgz";
+ url = "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz";
+ sha1 = "64762c48618082518ac3df4ccf5d5886dae20347";
+ };
+ }
+ {
+ name = "lodash.flatten___lodash.flatten_4.4.0.tgz";
+ path = fetchurl {
+ name = "lodash.flatten___lodash.flatten_4.4.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz";
+ sha1 = "f31c22225a9632d2bbf8e4addbef240aa765a61f";
+ };
+ }
+ {
+ name = "lodash.isequal___lodash.isequal_4.5.0.tgz";
+ path = fetchurl {
+ name = "lodash.isequal___lodash.isequal_4.5.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz";
+ sha1 = "415c4478f2bcc30120c22ce10ed3226f7d3e18e0";
+ };
+ }
+ {
+ name = "lodash.kebabcase___lodash.kebabcase_4.1.1.tgz";
+ path = fetchurl {
+ name = "lodash.kebabcase___lodash.kebabcase_4.1.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz";
+ sha1 = "8489b1cb0d29ff88195cceca448ff6d6cc295c36";
+ };
+ }
+ {
+ name = "lodash.mergewith___lodash.mergewith_4.6.2.tgz";
+ path = fetchurl {
+ name = "lodash.mergewith___lodash.mergewith_4.6.2.tgz";
+ url = "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz";
+ sha1 = "617121f89ac55f59047c7aec1ccd6654c6590f55";
+ };
+ }
+ {
+ name = "lodash.snakecase___lodash.snakecase_4.1.1.tgz";
+ path = fetchurl {
+ name = "lodash.snakecase___lodash.snakecase_4.1.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz";
+ sha1 = "39d714a35357147837aefd64b5dcbb16becd8f8d";
+ };
+ }
+ {
+ name = "lodash.sortby___lodash.sortby_4.7.0.tgz";
+ path = fetchurl {
+ name = "lodash.sortby___lodash.sortby_4.7.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz";
+ sha1 = "edd14c824e2cc9c1e0b0a1b42bb5210516a42438";
+ };
+ }
+ {
+ name = "lodash.upperfirst___lodash.upperfirst_4.3.1.tgz";
+ path = fetchurl {
+ name = "lodash.upperfirst___lodash.upperfirst_4.3.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz";
+ sha1 = "1365edf431480481ef0d1c68957a5ed99d49f7ce";
+ };
+ }
+ {
+ name = "lodash___lodash_4.17.15.tgz";
+ path = fetchurl {
+ name = "lodash___lodash_4.17.15.tgz";
+ url = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz";
+ sha1 = "b447f6670a0455bbfeedd11392eff330ea097548";
+ };
+ }
+ {
+ name = "log_symbols___log_symbols_2.2.0.tgz";
+ path = fetchurl {
+ name = "log_symbols___log_symbols_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz";
+ sha1 = "5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a";
+ };
+ }
+ {
+ name = "log_symbols___log_symbols_3.0.0.tgz";
+ path = fetchurl {
+ name = "log_symbols___log_symbols_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz";
+ sha1 = "f3a08516a5dea893336a7dee14d18a1cfdab77c4";
+ };
+ }
+ {
+ name = "log4js___log4js_4.5.1.tgz";
+ path = fetchurl {
+ name = "log4js___log4js_4.5.1.tgz";
+ url = "https://registry.yarnpkg.com/log4js/-/log4js-4.5.1.tgz";
+ sha1 = "e543625e97d9e6f3e6e7c9fc196dd6ab2cae30b5";
+ };
+ }
+ {
+ name = "loglevel___loglevel_1.6.4.tgz";
+ path = fetchurl {
+ name = "loglevel___loglevel_1.6.4.tgz";
+ url = "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.4.tgz";
+ sha1 = "f408f4f006db8354d0577dcf6d33485b3cb90d56";
+ };
+ }
+ {
+ name = "longest_streak___longest_streak_2.0.2.tgz";
+ path = fetchurl {
+ name = "longest_streak___longest_streak_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.2.tgz";
+ sha1 = "2421b6ba939a443bb9ffebf596585a50b4c38e2e";
+ };
+ }
+ {
+ name = "loose_envify___loose_envify_1.4.0.tgz";
+ path = fetchurl {
+ name = "loose_envify___loose_envify_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz";
+ sha1 = "71ee51fa7be4caec1a63839f7e682d8132d30caf";
+ };
+ }
+ {
+ name = "loud_rejection___loud_rejection_1.6.0.tgz";
+ path = fetchurl {
+ name = "loud_rejection___loud_rejection_1.6.0.tgz";
+ url = "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz";
+ sha1 = "5b46f80147edee578870f086d04821cf998e551f";
+ };
+ }
+ {
+ name = "lower_case___lower_case_1.1.4.tgz";
+ path = fetchurl {
+ name = "lower_case___lower_case_1.1.4.tgz";
+ url = "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz";
+ sha1 = "9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac";
+ };
+ }
+ {
+ name = "lowercase_keys___lowercase_keys_1.0.0.tgz";
+ path = fetchurl {
+ name = "lowercase_keys___lowercase_keys_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz";
+ sha1 = "4e3366b39e7f5457e35f1324bdf6f88d0bfc7306";
+ };
+ }
+ {
+ name = "lowlight___lowlight_1.11.0.tgz";
+ path = fetchurl {
+ name = "lowlight___lowlight_1.11.0.tgz";
+ url = "https://registry.yarnpkg.com/lowlight/-/lowlight-1.11.0.tgz";
+ sha1 = "1304d83005126d4e8b1dc0f07981e9b689ec2efc";
+ };
+ }
+ {
+ name = "lru_cache___lru_cache_4.1.5.tgz";
+ path = fetchurl {
+ name = "lru_cache___lru_cache_4.1.5.tgz";
+ url = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz";
+ sha1 = "8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd";
+ };
+ }
+ {
+ name = "lru_cache___lru_cache_5.1.1.tgz";
+ path = fetchurl {
+ name = "lru_cache___lru_cache_5.1.1.tgz";
+ url = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz";
+ sha1 = "1da27e6710271947695daf6848e847f01d84b920";
+ };
+ }
+ {
+ name = "lz_string___lz_string_1.4.4.tgz";
+ path = fetchurl {
+ name = "lz_string___lz_string_1.4.4.tgz";
+ url = "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz";
+ sha1 = "c0d8eaf36059f705796e1e344811cf4c498d3a26";
+ };
+ }
+ {
+ name = "make_dir___make_dir_1.3.0.tgz";
+ path = fetchurl {
+ name = "make_dir___make_dir_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz";
+ sha1 = "79c1033b80515bd6d24ec9933e860ca75ee27f0c";
+ };
+ }
+ {
+ name = "make_dir___make_dir_2.1.0.tgz";
+ path = fetchurl {
+ name = "make_dir___make_dir_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz";
+ sha1 = "5f0310e18b8be898cc07009295a30ae41e91e6f5";
+ };
+ }
+ {
+ name = "make_dir___make_dir_3.0.0.tgz";
+ path = fetchurl {
+ name = "make_dir___make_dir_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.0.tgz";
+ sha1 = "1b5f39f6b9270ed33f9f054c5c0f84304989f801";
+ };
+ }
+ {
+ name = "make_error___make_error_1.3.5.tgz";
+ path = fetchurl {
+ name = "make_error___make_error_1.3.5.tgz";
+ url = "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz";
+ sha1 = "efe4e81f6db28cadd605c70f29c831b58ef776c8";
+ };
+ }
+ {
+ name = "makeerror___makeerror_1.0.11.tgz";
+ path = fetchurl {
+ name = "makeerror___makeerror_1.0.11.tgz";
+ url = "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz";
+ sha1 = "e01a5c9109f2af79660e4e8b9587790184f5a96c";
+ };
+ }
+ {
+ name = "mamacro___mamacro_0.0.3.tgz";
+ path = fetchurl {
+ name = "mamacro___mamacro_0.0.3.tgz";
+ url = "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz";
+ sha1 = "ad2c9576197c9f1abf308d0787865bd975a3f3e4";
+ };
+ }
+ {
+ name = "map_age_cleaner___map_age_cleaner_0.1.3.tgz";
+ path = fetchurl {
+ name = "map_age_cleaner___map_age_cleaner_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz";
+ sha1 = "7d583a7306434c055fe474b0f45078e6e1b4b92a";
+ };
+ }
+ {
+ name = "map_cache___map_cache_0.2.2.tgz";
+ path = fetchurl {
+ name = "map_cache___map_cache_0.2.2.tgz";
+ url = "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz";
+ sha1 = "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf";
+ };
+ }
+ {
+ name = "map_obj___map_obj_1.0.1.tgz";
+ path = fetchurl {
+ name = "map_obj___map_obj_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz";
+ sha1 = "d933ceb9205d82bdcf4886f6742bdc2b4dea146d";
+ };
+ }
+ {
+ name = "map_obj___map_obj_2.0.0.tgz";
+ path = fetchurl {
+ name = "map_obj___map_obj_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz";
+ sha1 = "a65cd29087a92598b8791257a523e021222ac1f9";
+ };
+ }
+ {
+ name = "map_visit___map_visit_1.0.0.tgz";
+ path = fetchurl {
+ name = "map_visit___map_visit_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz";
+ sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f";
+ };
+ }
+ {
+ name = "markdown_escapes___markdown_escapes_1.0.2.tgz";
+ path = fetchurl {
+ name = "markdown_escapes___markdown_escapes_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.2.tgz";
+ sha1 = "e639cbde7b99c841c0bacc8a07982873b46d2122";
+ };
+ }
+ {
+ name = "markdown_it___markdown_it_9.0.1.tgz";
+ path = fetchurl {
+ name = "markdown_it___markdown_it_9.0.1.tgz";
+ url = "https://registry.yarnpkg.com/markdown-it/-/markdown-it-9.0.1.tgz";
+ sha1 = "aafe363c43718720b6575fd10625cde6e4ff2d47";
+ };
+ }
+ {
+ name = "markdown_it___markdown_it_8.4.2.tgz";
+ path = fetchurl {
+ name = "markdown_it___markdown_it_8.4.2.tgz";
+ url = "https://registry.yarnpkg.com/markdown-it/-/markdown-it-8.4.2.tgz";
+ sha1 = "386f98998dc15a37722aa7722084f4020bdd9b54";
+ };
+ }
+ {
+ name = "markdown_table___markdown_table_1.1.2.tgz";
+ path = fetchurl {
+ name = "markdown_table___markdown_table_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.2.tgz";
+ sha1 = "c78db948fa879903a41bce522e3b96f801c63786";
+ };
+ }
+ {
+ name = "markdownlint_cli___markdownlint_cli_0.18.0.tgz";
+ path = fetchurl {
+ name = "markdownlint_cli___markdownlint_cli_0.18.0.tgz";
+ url = "https://registry.yarnpkg.com/markdownlint-cli/-/markdownlint-cli-0.18.0.tgz";
+ sha1 = "bd1cee72739049d42dcea5f6db0c0f57c6eb8096";
+ };
+ }
+ {
+ name = "markdownlint___markdownlint_0.16.0.tgz";
+ path = fetchurl {
+ name = "markdownlint___markdownlint_0.16.0.tgz";
+ url = "https://registry.yarnpkg.com/markdownlint/-/markdownlint-0.16.0.tgz";
+ sha1 = "69f73cc755a44231fbe5dc7c37a5909cedc0ac6e";
+ };
+ }
+ {
+ name = "marked___marked_0.3.19.tgz";
+ path = fetchurl {
+ name = "marked___marked_0.3.19.tgz";
+ url = "https://registry.yarnpkg.com/marked/-/marked-0.3.19.tgz";
+ sha1 = "5d47f709c4c9fc3c216b6d46127280f40b39d790";
+ };
+ }
+ {
+ name = "mathml_tag_names___mathml_tag_names_2.1.1.tgz";
+ path = fetchurl {
+ name = "mathml_tag_names___mathml_tag_names_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.1.tgz";
+ sha1 = "6dff66c99d55ecf739ca53c492e626f1d12a33cc";
+ };
+ }
+ {
+ name = "md5.js___md5.js_1.3.4.tgz";
+ path = fetchurl {
+ name = "md5.js___md5.js_1.3.4.tgz";
+ url = "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz";
+ sha1 = "e9bdbde94a20a5ac18b04340fc5764d5b09d901d";
+ };
+ }
+ {
+ name = "md5___md5_2.2.1.tgz";
+ path = fetchurl {
+ name = "md5___md5_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz";
+ sha1 = "53ab38d5fe3c8891ba465329ea23fac0540126f9";
+ };
+ }
+ {
+ name = "mdast_util_compact___mdast_util_compact_1.0.2.tgz";
+ path = fetchurl {
+ name = "mdast_util_compact___mdast_util_compact_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-1.0.2.tgz";
+ sha1 = "c12ebe16fffc84573d3e19767726de226e95f649";
+ };
+ }
+ {
+ name = "mdast_util_definitions___mdast_util_definitions_1.2.4.tgz";
+ path = fetchurl {
+ name = "mdast_util_definitions___mdast_util_definitions_1.2.4.tgz";
+ url = "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-1.2.4.tgz";
+ sha1 = "2b54ad4eecaff9d9fcb6bf6f9f6b68b232d77ca7";
+ };
+ }
+ {
+ name = "mdast_util_inject___mdast_util_inject_1.1.0.tgz";
+ path = fetchurl {
+ name = "mdast_util_inject___mdast_util_inject_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/mdast-util-inject/-/mdast-util-inject-1.1.0.tgz";
+ sha1 = "db06b8b585be959a2dcd2f87f472ba9b756f3675";
+ };
+ }
+ {
+ name = "mdast_util_to_hast___mdast_util_to_hast_3.0.4.tgz";
+ path = fetchurl {
+ name = "mdast_util_to_hast___mdast_util_to_hast_3.0.4.tgz";
+ url = "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-3.0.4.tgz";
+ sha1 = "132001b266031192348d3366a6b011f28e54dc40";
+ };
+ }
+ {
+ name = "mdast_util_to_string___mdast_util_to_string_1.0.6.tgz";
+ path = fetchurl {
+ name = "mdast_util_to_string___mdast_util_to_string_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.0.6.tgz";
+ sha1 = "7d85421021343b33de1552fc71cb8e5b4ae7536d";
+ };
+ }
+ {
+ name = "mdast_util_toc___mdast_util_toc_3.1.0.tgz";
+ path = fetchurl {
+ name = "mdast_util_toc___mdast_util_toc_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/mdast-util-toc/-/mdast-util-toc-3.1.0.tgz";
+ sha1 = "395eeb877f067f9d2165d990d77c7eea6f740934";
+ };
+ }
+ {
+ name = "mdurl___mdurl_1.0.1.tgz";
+ path = fetchurl {
+ name = "mdurl___mdurl_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz";
+ sha1 = "fe85b2ec75a59037f2adfec100fd6c601761152e";
+ };
+ }
+ {
+ name = "media_typer___media_typer_0.3.0.tgz";
+ path = fetchurl {
+ name = "media_typer___media_typer_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz";
+ sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
+ };
+ }
+ {
+ name = "mem___mem_4.3.0.tgz";
+ path = fetchurl {
+ name = "mem___mem_4.3.0.tgz";
+ url = "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz";
+ sha1 = "461af497bc4ae09608cdb2e60eefb69bff744178";
+ };
+ }
+ {
+ name = "memory_fs___memory_fs_0.2.0.tgz";
+ path = fetchurl {
+ name = "memory_fs___memory_fs_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.2.0.tgz";
+ sha1 = "f2bb25368bc121e391c2520de92969caee0a0290";
+ };
+ }
+ {
+ name = "memory_fs___memory_fs_0.4.1.tgz";
+ path = fetchurl {
+ name = "memory_fs___memory_fs_0.4.1.tgz";
+ url = "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz";
+ sha1 = "3a9a20b8462523e447cfbc7e8bb80ed667bfc552";
+ };
+ }
+ {
+ name = "meow___meow_3.7.0.tgz";
+ path = fetchurl {
+ name = "meow___meow_3.7.0.tgz";
+ url = "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz";
+ sha1 = "72cb668b425228290abbfa856892587308a801fb";
+ };
+ }
+ {
+ name = "meow___meow_5.0.0.tgz";
+ path = fetchurl {
+ name = "meow___meow_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz";
+ sha1 = "dfc73d63a9afc714a5e371760eb5c88b91078aa4";
+ };
+ }
+ {
+ name = "merge_descriptors___merge_descriptors_1.0.1.tgz";
+ path = fetchurl {
+ name = "merge_descriptors___merge_descriptors_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz";
+ sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61";
+ };
+ }
+ {
+ name = "merge_source_map___merge_source_map_1.1.0.tgz";
+ path = fetchurl {
+ name = "merge_source_map___merge_source_map_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz";
+ sha1 = "2fdde7e6020939f70906a68f2d7ae685e4c8c646";
+ };
+ }
+ {
+ name = "merge_stream___merge_stream_1.0.1.tgz";
+ path = fetchurl {
+ name = "merge_stream___merge_stream_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz";
+ sha1 = "4041202d508a342ba00174008df0c251b8c135e1";
+ };
+ }
+ {
+ name = "merge2___merge2_1.2.3.tgz";
+ path = fetchurl {
+ name = "merge2___merge2_1.2.3.tgz";
+ url = "https://registry.yarnpkg.com/merge2/-/merge2-1.2.3.tgz";
+ sha1 = "7ee99dbd69bb6481689253f018488a1b902b0ed5";
+ };
+ }
+ {
+ name = "mermaid___mermaid_8.2.6.tgz";
+ path = fetchurl {
+ name = "mermaid___mermaid_8.2.6.tgz";
+ url = "https://registry.yarnpkg.com/mermaid/-/mermaid-8.2.6.tgz";
+ sha1 = "e73f396461a435c39a998819171c2114f59e46e1";
+ };
+ }
+ {
+ name = "methods___methods_1.1.2.tgz";
+ path = fetchurl {
+ name = "methods___methods_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz";
+ sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
+ };
+ }
+ {
+ name = "micromatch___micromatch_3.1.10.tgz";
+ path = fetchurl {
+ name = "micromatch___micromatch_3.1.10.tgz";
+ url = "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz";
+ sha1 = "70859bc95c9840952f359a068a3fc49f9ecfac23";
+ };
+ }
+ {
+ name = "micromatch___micromatch_4.0.2.tgz";
+ path = fetchurl {
+ name = "micromatch___micromatch_4.0.2.tgz";
+ url = "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz";
+ sha1 = "4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259";
+ };
+ }
+ {
+ name = "miller_rabin___miller_rabin_4.0.1.tgz";
+ path = fetchurl {
+ name = "miller_rabin___miller_rabin_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz";
+ sha1 = "f080351c865b0dc562a8462966daa53543c78a4d";
+ };
+ }
+ {
+ name = "mime_db___mime_db_1.40.0.tgz";
+ path = fetchurl {
+ name = "mime_db___mime_db_1.40.0.tgz";
+ url = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz";
+ sha1 = "a65057e998db090f732a68f6c276d387d4126c32";
+ };
+ }
+ {
+ name = "mime_types___mime_types_2.1.24.tgz";
+ path = fetchurl {
+ name = "mime_types___mime_types_2.1.24.tgz";
+ url = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz";
+ sha1 = "b6f8d0b3e951efb77dedeca194cff6d16f676f81";
+ };
+ }
+ {
+ name = "mime___mime_1.6.0.tgz";
+ path = fetchurl {
+ name = "mime___mime_1.6.0.tgz";
+ url = "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz";
+ sha1 = "32cd9e5c64553bd58d19a568af452acff04981b1";
+ };
+ }
+ {
+ name = "mime___mime_2.4.4.tgz";
+ path = fetchurl {
+ name = "mime___mime_2.4.4.tgz";
+ url = "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz";
+ sha1 = "bd7b91135fc6b01cde3e9bae33d659b63d8857e5";
+ };
+ }
+ {
+ name = "mimic_fn___mimic_fn_1.2.0.tgz";
+ path = fetchurl {
+ name = "mimic_fn___mimic_fn_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz";
+ sha1 = "820c86a39334640e99516928bd03fca88057d022";
+ };
+ }
+ {
+ name = "mimic_fn___mimic_fn_2.1.0.tgz";
+ path = fetchurl {
+ name = "mimic_fn___mimic_fn_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz";
+ sha1 = "7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b";
+ };
+ }
+ {
+ name = "minify___minify_4.1.2.tgz";
+ path = fetchurl {
+ name = "minify___minify_4.1.2.tgz";
+ url = "https://registry.yarnpkg.com/minify/-/minify-4.1.2.tgz";
+ sha1 = "88755f4faa5f7ab6d0c64fdd659aa34ea658f180";
+ };
+ }
+ {
+ name = "minimalistic_assert___minimalistic_assert_1.0.0.tgz";
+ path = fetchurl {
+ name = "minimalistic_assert___minimalistic_assert_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz";
+ sha1 = "702be2dda6b37f4836bcb3f5db56641b64a1d3d3";
+ };
+ }
+ {
+ name = "minimalistic_crypto_utils___minimalistic_crypto_utils_1.0.1.tgz";
+ path = fetchurl {
+ name = "minimalistic_crypto_utils___minimalistic_crypto_utils_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz";
+ sha1 = "f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a";
+ };
+ }
+ {
+ name = "minimatch___minimatch_3.0.4.tgz";
+ path = fetchurl {
+ name = "minimatch___minimatch_3.0.4.tgz";
+ url = "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz";
+ sha1 = "5166e286457f03306064be5497e8dbb0c3d32083";
+ };
+ }
+ {
+ name = "minimist_options___minimist_options_3.0.2.tgz";
+ path = fetchurl {
+ name = "minimist_options___minimist_options_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz";
+ sha1 = "fba4c8191339e13ecf4d61beb03f070103f3d954";
+ };
+ }
+ {
+ name = "minimist___minimist_0.0.8.tgz";
+ path = fetchurl {
+ name = "minimist___minimist_0.0.8.tgz";
+ url = "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz";
+ sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
+ };
+ }
+ {
+ name = "minimist___minimist_1.1.3.tgz";
+ path = fetchurl {
+ name = "minimist___minimist_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/minimist/-/minimist-1.1.3.tgz";
+ sha1 = "3bedfd91a92d39016fcfaa1c681e8faa1a1efda8";
+ };
+ }
+ {
+ name = "minimist___minimist_1.2.0.tgz";
+ path = fetchurl {
+ name = "minimist___minimist_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz";
+ sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284";
+ };
+ }
+ {
+ name = "minipass___minipass_2.3.5.tgz";
+ path = fetchurl {
+ name = "minipass___minipass_2.3.5.tgz";
+ url = "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz";
+ sha1 = "cacebe492022497f656b0f0f51e2682a9ed2d848";
+ };
+ }
+ {
+ name = "minizlib___minizlib_1.2.1.tgz";
+ path = fetchurl {
+ name = "minizlib___minizlib_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz";
+ sha1 = "dd27ea6136243c7c880684e8672bb3a45fd9b614";
+ };
+ }
+ {
+ name = "mississippi___mississippi_3.0.0.tgz";
+ path = fetchurl {
+ name = "mississippi___mississippi_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz";
+ sha1 = "ea0a3291f97e0b5e8776b363d5f0a12d94c67022";
+ };
+ }
+ {
+ name = "mixin_deep___mixin_deep_1.3.2.tgz";
+ path = fetchurl {
+ name = "mixin_deep___mixin_deep_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz";
+ sha1 = "1120b43dc359a785dce65b55b82e257ccf479566";
+ };
+ }
+ {
+ name = "https___registry.npmjs.org_mkdirp___mkdirp_0.5.1.tgz";
+ path = fetchurl {
+ name = "https___registry.npmjs.org_mkdirp___mkdirp_0.5.1.tgz";
+ url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz";
+ sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
+ };
+ }
+ {
+ name = "module_deps_sortable___module_deps_sortable_5.0.0.tgz";
+ path = fetchurl {
+ name = "module_deps_sortable___module_deps_sortable_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/module-deps-sortable/-/module-deps-sortable-5.0.0.tgz";
+ sha1 = "99db5bb08f7eab55e4c31f6b7c722c6a2144ba74";
+ };
+ }
+ {
+ name = "moment_mini___moment_mini_2.22.1.tgz";
+ path = fetchurl {
+ name = "moment_mini___moment_mini_2.22.1.tgz";
+ url = "https://registry.yarnpkg.com/moment-mini/-/moment-mini-2.22.1.tgz";
+ sha1 = "bc32d73e43a4505070be6b53494b17623183420d";
+ };
+ }
+ {
+ name = "moment___moment_2.24.0.tgz";
+ path = fetchurl {
+ name = "moment___moment_2.24.0.tgz";
+ url = "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz";
+ sha1 = "0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b";
+ };
+ }
+ {
+ name = "monaco_editor_webpack_plugin___monaco_editor_webpack_plugin_1.7.0.tgz";
+ path = fetchurl {
+ name = "monaco_editor_webpack_plugin___monaco_editor_webpack_plugin_1.7.0.tgz";
+ url = "https://registry.yarnpkg.com/monaco-editor-webpack-plugin/-/monaco-editor-webpack-plugin-1.7.0.tgz";
+ sha1 = "920cbeecca25f15d70d568a7e11b0ba4daf1ae83";
+ };
+ }
+ {
+ name = "monaco_editor___monaco_editor_0.15.6.tgz";
+ path = fetchurl {
+ name = "monaco_editor___monaco_editor_0.15.6.tgz";
+ url = "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.15.6.tgz";
+ sha1 = "d63b3b06f86f803464f003b252627c3eb4a09483";
+ };
+ }
+ {
+ name = "mousetrap___mousetrap_1.4.6.tgz";
+ path = fetchurl {
+ name = "mousetrap___mousetrap_1.4.6.tgz";
+ url = "https://registry.yarnpkg.com/mousetrap/-/mousetrap-1.4.6.tgz";
+ sha1 = "eaca72e22e56d5b769b7555873b688c3332e390a";
+ };
+ }
+ {
+ name = "move_concurrently___move_concurrently_1.0.1.tgz";
+ path = fetchurl {
+ name = "move_concurrently___move_concurrently_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz";
+ sha1 = "be2c005fda32e0b29af1f05d7c4b33214c701f92";
+ };
+ }
+ {
+ name = "ms___ms_2.0.0.tgz";
+ path = fetchurl {
+ name = "ms___ms_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz";
+ sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
+ };
+ }
+ {
+ name = "ms___ms_2.1.1.tgz";
+ path = fetchurl {
+ name = "ms___ms_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz";
+ sha1 = "30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a";
+ };
+ }
+ {
+ name = "multicast_dns_service_types___multicast_dns_service_types_1.1.0.tgz";
+ path = fetchurl {
+ name = "multicast_dns_service_types___multicast_dns_service_types_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz";
+ sha1 = "899f11d9686e5e05cb91b35d5f0e63b773cfc901";
+ };
+ }
+ {
+ name = "multicast_dns___multicast_dns_6.1.1.tgz";
+ path = fetchurl {
+ name = "multicast_dns___multicast_dns_6.1.1.tgz";
+ url = "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.1.1.tgz";
+ sha1 = "6e7de86a570872ab17058adea7160bbeca814dde";
+ };
+ }
+ {
+ name = "mute_stream___mute_stream_0.0.7.tgz";
+ path = fetchurl {
+ name = "mute_stream___mute_stream_0.0.7.tgz";
+ url = "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz";
+ sha1 = "3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab";
+ };
+ }
+ {
+ name = "nan___nan_2.14.0.tgz";
+ path = fetchurl {
+ name = "nan___nan_2.14.0.tgz";
+ url = "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz";
+ sha1 = "7818f722027b2459a86f0295d434d1fc2336c52c";
+ };
+ }
+ {
+ name = "nanomatch___nanomatch_1.2.13.tgz";
+ path = fetchurl {
+ name = "nanomatch___nanomatch_1.2.13.tgz";
+ url = "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz";
+ sha1 = "b87a8aa4fc0de8fe6be88895b38983ff265bd119";
+ };
+ }
+ {
+ name = "natural_compare___natural_compare_1.4.0.tgz";
+ path = fetchurl {
+ name = "natural_compare___natural_compare_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz";
+ sha1 = "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7";
+ };
+ }
+ {
+ name = "needle___needle_2.4.0.tgz";
+ path = fetchurl {
+ name = "needle___needle_2.4.0.tgz";
+ url = "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz";
+ sha1 = "6833e74975c444642590e15a750288c5f939b57c";
+ };
+ }
+ {
+ name = "negotiator___negotiator_0.6.2.tgz";
+ path = fetchurl {
+ name = "negotiator___negotiator_0.6.2.tgz";
+ url = "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz";
+ sha1 = "feacf7ccf525a77ae9634436a64883ffeca346fb";
+ };
+ }
+ {
+ name = "neo_async___neo_async_2.6.1.tgz";
+ path = fetchurl {
+ name = "neo_async___neo_async_2.6.1.tgz";
+ url = "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz";
+ sha1 = "ac27ada66167fa8849a6addd837f6b189ad2081c";
+ };
+ }
+ {
+ name = "nice_try___nice_try_1.0.5.tgz";
+ path = fetchurl {
+ name = "nice_try___nice_try_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz";
+ sha1 = "a3378a7696ce7d223e88fc9b764bd7ef1089e366";
+ };
+ }
+ {
+ name = "no_case___no_case_2.3.2.tgz";
+ path = fetchurl {
+ name = "no_case___no_case_2.3.2.tgz";
+ url = "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz";
+ sha1 = "60b813396be39b3f1288a4c1ed5d1e7d28b464ac";
+ };
+ }
+ {
+ name = "node_ensure___node_ensure_0.0.0.tgz";
+ path = fetchurl {
+ name = "node_ensure___node_ensure_0.0.0.tgz";
+ url = "https://registry.yarnpkg.com/node-ensure/-/node-ensure-0.0.0.tgz";
+ sha1 = "ecae764150de99861ec5c810fd5d096b183932a7";
+ };
+ }
+ {
+ name = "node_fetch___node_fetch_2.6.0.tgz";
+ path = fetchurl {
+ name = "node_fetch___node_fetch_2.6.0.tgz";
+ url = "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz";
+ sha1 = "e633456386d4aa55863f676a7ab0daa8fdecb0fd";
+ };
+ }
+ {
+ name = "node_forge___node_forge_0.8.2.tgz";
+ path = fetchurl {
+ name = "node_forge___node_forge_0.8.2.tgz";
+ url = "https://registry.yarnpkg.com/node-forge/-/node-forge-0.8.2.tgz";
+ sha1 = "b4bcc59fb12ce77a8825fc6a783dfe3182499c5a";
+ };
+ }
+ {
+ name = "node_gyp___node_gyp_3.8.0.tgz";
+ path = fetchurl {
+ name = "node_gyp___node_gyp_3.8.0.tgz";
+ url = "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz";
+ sha1 = "540304261c330e80d0d5edce253a68cb3964218c";
+ };
+ }
+ {
+ name = "node_int64___node_int64_0.4.0.tgz";
+ path = fetchurl {
+ name = "node_int64___node_int64_0.4.0.tgz";
+ url = "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz";
+ sha1 = "87a9065cdb355d3182d8f94ce11188b825c68a3b";
+ };
+ }
+ {
+ name = "node_libs_browser___node_libs_browser_2.2.1.tgz";
+ path = fetchurl {
+ name = "node_libs_browser___node_libs_browser_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz";
+ sha1 = "b64f513d18338625f90346d27b0d235e631f6425";
+ };
+ }
+ {
+ name = "node_modules_regexp___node_modules_regexp_1.0.0.tgz";
+ path = fetchurl {
+ name = "node_modules_regexp___node_modules_regexp_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz";
+ sha1 = "8d9dbe28964a4ac5712e9131642107c71e90ec40";
+ };
+ }
+ {
+ name = "node_notifier___node_notifier_5.4.0.tgz";
+ path = fetchurl {
+ name = "node_notifier___node_notifier_5.4.0.tgz";
+ url = "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.0.tgz";
+ sha1 = "7b455fdce9f7de0c63538297354f3db468426e6a";
+ };
+ }
+ {
+ name = "node_pre_gyp___node_pre_gyp_0.12.0.tgz";
+ path = fetchurl {
+ name = "node_pre_gyp___node_pre_gyp_0.12.0.tgz";
+ url = "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz";
+ sha1 = "39ba4bb1439da030295f899e3b520b7785766149";
+ };
+ }
+ {
+ name = "node_releases___node_releases_1.1.25.tgz";
+ path = fetchurl {
+ name = "node_releases___node_releases_1.1.25.tgz";
+ url = "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.25.tgz";
+ sha1 = "0c2d7dbc7fed30fbe02a9ee3007b8c90bf0133d3";
+ };
+ }
+ {
+ name = "node_sass___node_sass_4.12.0.tgz";
+ path = fetchurl {
+ name = "node_sass___node_sass_4.12.0.tgz";
+ url = "https://registry.yarnpkg.com/node-sass/-/node-sass-4.12.0.tgz";
+ sha1 = "0914f531932380114a30cc5fa4fa63233a25f017";
+ };
+ }
+ {
+ name = "nodemon___nodemon_1.18.9.tgz";
+ path = fetchurl {
+ name = "nodemon___nodemon_1.18.9.tgz";
+ url = "https://registry.yarnpkg.com/nodemon/-/nodemon-1.18.9.tgz";
+ sha1 = "90b467efd3b3c81b9453380aeb2a2cba535d0ead";
+ };
+ }
+ {
+ name = "nopt___nopt_3.0.6.tgz";
+ path = fetchurl {
+ name = "nopt___nopt_3.0.6.tgz";
+ url = "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz";
+ sha1 = "c6465dbf08abcd4db359317f79ac68a646b28ff9";
+ };
+ }
+ {
+ name = "nopt___nopt_4.0.1.tgz";
+ path = fetchurl {
+ name = "nopt___nopt_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz";
+ sha1 = "d0d4685afd5415193c8c7505602d0d17cd64474d";
+ };
+ }
+ {
+ name = "nopt___nopt_1.0.10.tgz";
+ path = fetchurl {
+ name = "nopt___nopt_1.0.10.tgz";
+ url = "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz";
+ sha1 = "6ddd21bd2a31417b92727dd585f8a6f37608ebee";
+ };
+ }
+ {
+ name = "normalize_package_data___normalize_package_data_2.5.0.tgz";
+ path = fetchurl {
+ name = "normalize_package_data___normalize_package_data_2.5.0.tgz";
+ url = "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz";
+ sha1 = "e66db1838b200c1dfc233225d12cb36520e234a8";
+ };
+ }
+ {
+ name = "normalize_path___normalize_path_2.1.1.tgz";
+ path = fetchurl {
+ name = "normalize_path___normalize_path_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz";
+ sha1 = "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9";
+ };
+ }
+ {
+ name = "normalize_path___normalize_path_3.0.0.tgz";
+ path = fetchurl {
+ name = "normalize_path___normalize_path_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz";
+ sha1 = "0dcd69ff23a1c9b11fd0978316644a0388216a65";
+ };
+ }
+ {
+ name = "normalize_range___normalize_range_0.1.2.tgz";
+ path = fetchurl {
+ name = "normalize_range___normalize_range_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz";
+ sha1 = "2d10c06bdfd312ea9777695a4d28439456b75942";
+ };
+ }
+ {
+ name = "normalize_selector___normalize_selector_0.2.0.tgz";
+ path = fetchurl {
+ name = "normalize_selector___normalize_selector_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/normalize-selector/-/normalize-selector-0.2.0.tgz";
+ sha1 = "d0b145eb691189c63a78d201dc4fdb1293ef0c03";
+ };
+ }
+ {
+ name = "normalize_url___normalize_url_1.9.1.tgz";
+ path = fetchurl {
+ name = "normalize_url___normalize_url_1.9.1.tgz";
+ url = "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz";
+ sha1 = "2cc0d66b31ea23036458436e3620d85954c66c3c";
+ };
+ }
+ {
+ name = "now_and_later___now_and_later_2.0.1.tgz";
+ path = fetchurl {
+ name = "now_and_later___now_and_later_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/now-and-later/-/now-and-later-2.0.1.tgz";
+ sha1 = "8e579c8685764a7cc02cb680380e94f43ccb1f7c";
+ };
+ }
+ {
+ name = "npm_bundled___npm_bundled_1.0.6.tgz";
+ path = fetchurl {
+ name = "npm_bundled___npm_bundled_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz";
+ sha1 = "e7ba9aadcef962bb61248f91721cd932b3fe6bdd";
+ };
+ }
+ {
+ name = "npm_packlist___npm_packlist_1.4.1.tgz";
+ path = fetchurl {
+ name = "npm_packlist___npm_packlist_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.1.tgz";
+ sha1 = "19064cdf988da80ea3cee45533879d90192bbfbc";
+ };
+ }
+ {
+ name = "npm_run_path___npm_run_path_2.0.2.tgz";
+ path = fetchurl {
+ name = "npm_run_path___npm_run_path_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz";
+ sha1 = "35a9232dfa35d7067b4cb2ddf2357b1871536c5f";
+ };
+ }
+ {
+ name = "npmlog___npmlog_4.1.2.tgz";
+ path = fetchurl {
+ name = "npmlog___npmlog_4.1.2.tgz";
+ url = "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz";
+ sha1 = "08a7f2a8bf734604779a9efa4ad5cc717abb954b";
+ };
+ }
+ {
+ name = "num2fraction___num2fraction_1.2.2.tgz";
+ path = fetchurl {
+ name = "num2fraction___num2fraction_1.2.2.tgz";
+ url = "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz";
+ sha1 = "6f682b6a027a4e9ddfa4564cd2589d1d4e669ede";
+ };
+ }
+ {
+ name = "number_is_nan___number_is_nan_1.0.1.tgz";
+ path = fetchurl {
+ name = "number_is_nan___number_is_nan_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz";
+ sha1 = "097b602b53422a522c1afb8790318336941a011d";
+ };
+ }
+ {
+ name = "nwsapi___nwsapi_2.0.9.tgz";
+ path = fetchurl {
+ name = "nwsapi___nwsapi_2.0.9.tgz";
+ url = "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.0.9.tgz";
+ sha1 = "77ac0cdfdcad52b6a1151a84e73254edc33ed016";
+ };
+ }
+ {
+ name = "oauth_sign___oauth_sign_0.9.0.tgz";
+ path = fetchurl {
+ name = "oauth_sign___oauth_sign_0.9.0.tgz";
+ url = "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz";
+ sha1 = "47a7b016baa68b5fa0ecf3dee08a85c679ac6455";
+ };
+ }
+ {
+ name = "object_assign___object_assign_4.1.1.tgz";
+ path = fetchurl {
+ name = "object_assign___object_assign_4.1.1.tgz";
+ url = "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz";
+ sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
+ };
+ }
+ {
+ name = "object_component___object_component_0.0.3.tgz";
+ path = fetchurl {
+ name = "object_component___object_component_0.0.3.tgz";
+ url = "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz";
+ sha1 = "f0c69aa50efc95b866c186f400a33769cb2f1291";
+ };
+ }
+ {
+ name = "object_copy___object_copy_0.1.0.tgz";
+ path = fetchurl {
+ name = "object_copy___object_copy_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz";
+ sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c";
+ };
+ }
+ {
+ name = "object_keys___object_keys_1.1.1.tgz";
+ path = fetchurl {
+ name = "object_keys___object_keys_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz";
+ sha1 = "1c47f272df277f3b1daf061677d9c82e2322c60e";
+ };
+ }
+ {
+ name = "object_visit___object_visit_1.0.1.tgz";
+ path = fetchurl {
+ name = "object_visit___object_visit_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz";
+ sha1 = "f79c4493af0c5377b59fe39d395e41042dd045bb";
+ };
+ }
+ {
+ name = "object.assign___object.assign_4.1.0.tgz";
+ path = fetchurl {
+ name = "object.assign___object.assign_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz";
+ sha1 = "968bf1100d7956bb3ca086f006f846b3bc4008da";
+ };
+ }
+ {
+ name = "object.entries___object.entries_1.0.4.tgz";
+ path = fetchurl {
+ name = "object.entries___object.entries_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/object.entries/-/object.entries-1.0.4.tgz";
+ sha1 = "1bf9a4dd2288f5b33f3a993d257661f05d161a5f";
+ };
+ }
+ {
+ name = "object.getownpropertydescriptors___object.getownpropertydescriptors_2.0.3.tgz";
+ path = fetchurl {
+ name = "object.getownpropertydescriptors___object.getownpropertydescriptors_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz";
+ sha1 = "8758c846f5b407adab0f236e0986f14b051caa16";
+ };
+ }
+ {
+ name = "object.pick___object.pick_1.3.0.tgz";
+ path = fetchurl {
+ name = "object.pick___object.pick_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz";
+ sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747";
+ };
+ }
+ {
+ name = "obuf___obuf_1.1.2.tgz";
+ path = fetchurl {
+ name = "obuf___obuf_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz";
+ sha1 = "09bea3343d41859ebd446292d11c9d4db619084e";
+ };
+ }
+ {
+ name = "on_finished___on_finished_2.3.0.tgz";
+ path = fetchurl {
+ name = "on_finished___on_finished_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz";
+ sha1 = "20f1336481b083cd75337992a16971aa2d906947";
+ };
+ }
+ {
+ name = "on_headers___on_headers_1.0.2.tgz";
+ path = fetchurl {
+ name = "on_headers___on_headers_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz";
+ sha1 = "772b0ae6aaa525c399e489adfad90c403eb3c28f";
+ };
+ }
+ {
+ name = "once___once_1.4.0.tgz";
+ path = fetchurl {
+ name = "once___once_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz";
+ sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
+ };
+ }
+ {
+ name = "onetime___onetime_2.0.1.tgz";
+ path = fetchurl {
+ name = "onetime___onetime_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz";
+ sha1 = "067428230fd67443b2794b22bba528b6867962d4";
+ };
+ }
+ {
+ name = "opener___opener_1.5.1.tgz";
+ path = fetchurl {
+ name = "opener___opener_1.5.1.tgz";
+ url = "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz";
+ sha1 = "6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed";
+ };
+ }
+ {
+ name = "opn___opn_5.5.0.tgz";
+ path = fetchurl {
+ name = "opn___opn_5.5.0.tgz";
+ url = "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz";
+ sha1 = "fc7164fab56d235904c51c3b27da6758ca3b9bfc";
+ };
+ }
+ {
+ name = "optimism___optimism_0.6.9.tgz";
+ path = fetchurl {
+ name = "optimism___optimism_0.6.9.tgz";
+ url = "https://registry.yarnpkg.com/optimism/-/optimism-0.6.9.tgz";
+ sha1 = "19258ff8b3be0cea29ac35f06bff818e026e30bb";
+ };
+ }
+ {
+ name = "optimist___optimist_0.6.1.tgz";
+ path = fetchurl {
+ name = "optimist___optimist_0.6.1.tgz";
+ url = "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz";
+ sha1 = "da3ea74686fa21a19a111c326e90eb15a0196686";
+ };
+ }
+ {
+ name = "optionator___optionator_0.8.2.tgz";
+ path = fetchurl {
+ name = "optionator___optionator_0.8.2.tgz";
+ url = "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz";
+ sha1 = "364c5e409d3f4d6301d6c0b4c05bba50180aeb64";
+ };
+ }
+ {
+ name = "ordered_read_streams___ordered_read_streams_1.0.1.tgz";
+ path = fetchurl {
+ name = "ordered_read_streams___ordered_read_streams_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz";
+ sha1 = "77c0cb37c41525d64166d990ffad7ec6a0e1363e";
+ };
+ }
+ {
+ name = "orderedmap___orderedmap_1.0.0.tgz";
+ path = fetchurl {
+ name = "orderedmap___orderedmap_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/orderedmap/-/orderedmap-1.0.0.tgz";
+ sha1 = "d90fc2ba1ed085190907d601dec6e6a53f8d41ba";
+ };
+ }
+ {
+ name = "original___original_1.0.2.tgz";
+ path = fetchurl {
+ name = "original___original_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz";
+ sha1 = "e442a61cffe1c5fd20a65f3261c26663b303f25f";
+ };
+ }
+ {
+ name = "os_browserify___os_browserify_0.3.0.tgz";
+ path = fetchurl {
+ name = "os_browserify___os_browserify_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz";
+ sha1 = "854373c7f5c2315914fc9bfc6bd8238fdda1ec27";
+ };
+ }
+ {
+ name = "os_homedir___os_homedir_1.0.2.tgz";
+ path = fetchurl {
+ name = "os_homedir___os_homedir_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz";
+ sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3";
+ };
+ }
+ {
+ name = "os_locale___os_locale_1.4.0.tgz";
+ path = fetchurl {
+ name = "os_locale___os_locale_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz";
+ sha1 = "20f9f17ae29ed345e8bde583b13d2009803c14d9";
+ };
+ }
+ {
+ name = "os_locale___os_locale_3.1.0.tgz";
+ path = fetchurl {
+ name = "os_locale___os_locale_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz";
+ sha1 = "a802a6ee17f24c10483ab9935719cef4ed16bf1a";
+ };
+ }
+ {
+ name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
+ path = fetchurl {
+ name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
+ sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
+ };
+ }
+ {
+ name = "osenv___osenv_0.1.5.tgz";
+ path = fetchurl {
+ name = "osenv___osenv_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz";
+ sha1 = "85cdfafaeb28e8677f416e287592b5f3f49ea410";
+ };
+ }
+ {
+ name = "p_defer___p_defer_1.0.0.tgz";
+ path = fetchurl {
+ name = "p_defer___p_defer_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz";
+ sha1 = "9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c";
+ };
+ }
+ {
+ name = "p_each_series___p_each_series_1.0.0.tgz";
+ path = fetchurl {
+ name = "p_each_series___p_each_series_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/p-each-series/-/p-each-series-1.0.0.tgz";
+ sha1 = "930f3d12dd1f50e7434457a22cd6f04ac6ad7f71";
+ };
+ }
+ {
+ name = "p_finally___p_finally_1.0.0.tgz";
+ path = fetchurl {
+ name = "p_finally___p_finally_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz";
+ sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae";
+ };
+ }
+ {
+ name = "p_is_promise___p_is_promise_2.1.0.tgz";
+ path = fetchurl {
+ name = "p_is_promise___p_is_promise_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz";
+ sha1 = "918cebaea248a62cf7ffab8e3bca8c5f882fc42e";
+ };
+ }
+ {
+ name = "p_limit___p_limit_1.2.0.tgz";
+ path = fetchurl {
+ name = "p_limit___p_limit_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz";
+ sha1 = "0e92b6bedcb59f022c13d0f1949dc82d15909f1c";
+ };
+ }
+ {
+ name = "p_limit___p_limit_2.2.0.tgz";
+ path = fetchurl {
+ name = "p_limit___p_limit_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz";
+ sha1 = "417c9941e6027a9abcba5092dd2904e255b5fbc2";
+ };
+ }
+ {
+ name = "p_locate___p_locate_2.0.0.tgz";
+ path = fetchurl {
+ name = "p_locate___p_locate_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz";
+ sha1 = "20a0103b222a70c8fd39cc2e580680f3dde5ec43";
+ };
+ }
+ {
+ name = "p_locate___p_locate_3.0.0.tgz";
+ path = fetchurl {
+ name = "p_locate___p_locate_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz";
+ sha1 = "322d69a05c0264b25997d9f40cd8a891ab0064a4";
+ };
+ }
+ {
+ name = "p_locate___p_locate_4.1.0.tgz";
+ path = fetchurl {
+ name = "p_locate___p_locate_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz";
+ sha1 = "a3428bb7088b3a60292f66919278b7c297ad4f07";
+ };
+ }
+ {
+ name = "p_map___p_map_2.1.0.tgz";
+ path = fetchurl {
+ name = "p_map___p_map_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz";
+ sha1 = "310928feef9c9ecc65b68b17693018a665cea175";
+ };
+ }
+ {
+ name = "p_reduce___p_reduce_1.0.0.tgz";
+ path = fetchurl {
+ name = "p_reduce___p_reduce_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz";
+ sha1 = "18c2b0dd936a4690a529f8231f58a0fdb6a47dfa";
+ };
+ }
+ {
+ name = "p_retry___p_retry_3.0.1.tgz";
+ path = fetchurl {
+ name = "p_retry___p_retry_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz";
+ sha1 = "316b4c8893e2c8dc1cfa891f406c4b422bebf328";
+ };
+ }
+ {
+ name = "p_try___p_try_1.0.0.tgz";
+ path = fetchurl {
+ name = "p_try___p_try_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz";
+ sha1 = "cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3";
+ };
+ }
+ {
+ name = "p_try___p_try_2.2.0.tgz";
+ path = fetchurl {
+ name = "p_try___p_try_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz";
+ sha1 = "cb2868540e313d61de58fafbe35ce9004d5540e6";
+ };
+ }
+ {
+ name = "package_json___package_json_4.0.1.tgz";
+ path = fetchurl {
+ name = "package_json___package_json_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz";
+ sha1 = "8869a0401253661c4c4ca3da6c2121ed555f5eed";
+ };
+ }
+ {
+ name = "pako___pako_1.0.6.tgz";
+ path = fetchurl {
+ name = "pako___pako_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz";
+ sha1 = "0101211baa70c4bca4a0f63f2206e97b7dfaf258";
+ };
+ }
+ {
+ name = "parallel_transform___parallel_transform_1.1.0.tgz";
+ path = fetchurl {
+ name = "parallel_transform___parallel_transform_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz";
+ sha1 = "d410f065b05da23081fcd10f28854c29bda33b06";
+ };
+ }
+ {
+ name = "param_case___param_case_2.1.1.tgz";
+ path = fetchurl {
+ name = "param_case___param_case_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz";
+ sha1 = "df94fd8cf6531ecf75e6bef9a0858fbc72be2247";
+ };
+ }
+ {
+ name = "parse_asn1___parse_asn1_5.1.0.tgz";
+ path = fetchurl {
+ name = "parse_asn1___parse_asn1_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz";
+ sha1 = "37c4f9b7ed3ab65c74817b5f2480937fbf97c712";
+ };
+ }
+ {
+ name = "parse_entities___parse_entities_1.2.0.tgz";
+ path = fetchurl {
+ name = "parse_entities___parse_entities_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/parse-entities/-/parse-entities-1.2.0.tgz";
+ sha1 = "9deac087661b2e36814153cb78d7e54a4c5fd6f4";
+ };
+ }
+ {
+ name = "parse_filepath___parse_filepath_1.0.2.tgz";
+ path = fetchurl {
+ name = "parse_filepath___parse_filepath_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz";
+ sha1 = "a632127f53aaf3d15876f5872f3ffac763d6c891";
+ };
+ }
+ {
+ name = "parse_git_config___parse_git_config_0.2.0.tgz";
+ path = fetchurl {
+ name = "parse_git_config___parse_git_config_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/parse-git-config/-/parse-git-config-0.2.0.tgz";
+ sha1 = "272833fdd15fea146fb75d336d236b963b6ff706";
+ };
+ }
+ {
+ name = "parse_json___parse_json_2.2.0.tgz";
+ path = fetchurl {
+ name = "parse_json___parse_json_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz";
+ sha1 = "f480f40434ef80741f8469099f8dea18f55a4dc9";
+ };
+ }
+ {
+ name = "parse_json___parse_json_4.0.0.tgz";
+ path = fetchurl {
+ name = "parse_json___parse_json_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz";
+ sha1 = "be35f5425be1f7f6c747184f98a788cb99477ee0";
+ };
+ }
+ {
+ name = "parse_passwd___parse_passwd_1.0.0.tgz";
+ path = fetchurl {
+ name = "parse_passwd___parse_passwd_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz";
+ sha1 = "6d5b934a456993b23d37f40a382d6f1666a8e5c6";
+ };
+ }
+ {
+ name = "parse_path___parse_path_3.0.4.tgz";
+ path = fetchurl {
+ name = "parse_path___parse_path_3.0.4.tgz";
+ url = "https://registry.yarnpkg.com/parse-path/-/parse-path-3.0.4.tgz";
+ sha1 = "a48b7b529da41f34d9d1428602a39b29fc7180e4";
+ };
+ }
+ {
+ name = "parse_url___parse_url_3.0.2.tgz";
+ path = fetchurl {
+ name = "parse_url___parse_url_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/parse-url/-/parse-url-3.0.2.tgz";
+ sha1 = "602787a7063a795d72b8673197505e72f60610be";
+ };
+ }
+ {
+ name = "parse5___parse5_4.0.0.tgz";
+ path = fetchurl {
+ name = "parse5___parse5_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz";
+ sha1 = "6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608";
+ };
+ }
+ {
+ name = "parse5___parse5_5.0.0.tgz";
+ path = fetchurl {
+ name = "parse5___parse5_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/parse5/-/parse5-5.0.0.tgz";
+ sha1 = "4d02710d44f3c3846197a11e205d4ef17842b81a";
+ };
+ }
+ {
+ name = "parseqs___parseqs_0.0.5.tgz";
+ path = fetchurl {
+ name = "parseqs___parseqs_0.0.5.tgz";
+ url = "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz";
+ sha1 = "d5208a3738e46766e291ba2ea173684921a8b89d";
+ };
+ }
+ {
+ name = "parseuri___parseuri_0.0.5.tgz";
+ path = fetchurl {
+ name = "parseuri___parseuri_0.0.5.tgz";
+ url = "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz";
+ sha1 = "80204a50d4dbb779bfdc6ebe2778d90e4bce320a";
+ };
+ }
+ {
+ name = "parseurl___parseurl_1.3.3.tgz";
+ path = fetchurl {
+ name = "parseurl___parseurl_1.3.3.tgz";
+ url = "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz";
+ sha1 = "9da19e7bee8d12dff0513ed5b76957793bc2e8d4";
+ };
+ }
+ {
+ name = "pascalcase___pascalcase_0.1.1.tgz";
+ path = fetchurl {
+ name = "pascalcase___pascalcase_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz";
+ sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14";
+ };
+ }
+ {
+ name = "path_browserify___path_browserify_0.0.1.tgz";
+ path = fetchurl {
+ name = "path_browserify___path_browserify_0.0.1.tgz";
+ url = "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz";
+ sha1 = "e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a";
+ };
+ }
+ {
+ name = "path_dirname___path_dirname_1.0.2.tgz";
+ path = fetchurl {
+ name = "path_dirname___path_dirname_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz";
+ sha1 = "cc33d24d525e099a5388c0336c6e32b9160609e0";
+ };
+ }
+ {
+ name = "path_exists___path_exists_2.1.0.tgz";
+ path = fetchurl {
+ name = "path_exists___path_exists_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz";
+ sha1 = "0feb6c64f0fc518d9a754dd5efb62c7022761f4b";
+ };
+ }
+ {
+ name = "path_exists___path_exists_3.0.0.tgz";
+ path = fetchurl {
+ name = "path_exists___path_exists_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz";
+ sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515";
+ };
+ }
+ {
+ name = "path_exists___path_exists_4.0.0.tgz";
+ path = fetchurl {
+ name = "path_exists___path_exists_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz";
+ sha1 = "513bdbe2d3b95d7762e8c1137efa195c6c61b5b3";
+ };
+ }
+ {
+ name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
+ path = fetchurl {
+ name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
+ sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+ };
+ }
+ {
+ name = "path_is_inside___path_is_inside_1.0.2.tgz";
+ path = fetchurl {
+ name = "path_is_inside___path_is_inside_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz";
+ sha1 = "365417dede44430d1c11af61027facf074bdfc53";
+ };
+ }
+ {
+ name = "path_key___path_key_2.0.1.tgz";
+ path = fetchurl {
+ name = "path_key___path_key_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz";
+ sha1 = "411cadb574c5a140d3a4b1910d40d80cc9f40b40";
+ };
+ }
+ {
+ name = "path_parse___path_parse_1.0.6.tgz";
+ path = fetchurl {
+ name = "path_parse___path_parse_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz";
+ sha1 = "d62dbb5679405d72c4737ec58600e9ddcf06d24c";
+ };
+ }
+ {
+ name = "path_root_regex___path_root_regex_0.1.2.tgz";
+ path = fetchurl {
+ name = "path_root_regex___path_root_regex_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz";
+ sha1 = "bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d";
+ };
+ }
+ {
+ name = "path_root___path_root_0.1.1.tgz";
+ path = fetchurl {
+ name = "path_root___path_root_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz";
+ sha1 = "9a4a6814cac1c0cd73360a95f32083c8ea4745b7";
+ };
+ }
+ {
+ name = "path_to_regexp___path_to_regexp_0.1.7.tgz";
+ path = fetchurl {
+ name = "path_to_regexp___path_to_regexp_0.1.7.tgz";
+ url = "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz";
+ sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c";
+ };
+ }
+ {
+ name = "path_type___path_type_1.1.0.tgz";
+ path = fetchurl {
+ name = "path_type___path_type_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz";
+ sha1 = "59c44f7ee491da704da415da5a4070ba4f8fe441";
+ };
+ }
+ {
+ name = "path_type___path_type_2.0.0.tgz";
+ path = fetchurl {
+ name = "path_type___path_type_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz";
+ sha1 = "f012ccb8415b7096fc2daa1054c3d72389594c73";
+ };
+ }
+ {
+ name = "path_type___path_type_3.0.0.tgz";
+ path = fetchurl {
+ name = "path_type___path_type_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz";
+ sha1 = "cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f";
+ };
+ }
+ {
+ name = "pbkdf2___pbkdf2_3.0.14.tgz";
+ path = fetchurl {
+ name = "pbkdf2___pbkdf2_3.0.14.tgz";
+ url = "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz";
+ sha1 = "a35e13c64799b06ce15320f459c230e68e73bade";
+ };
+ }
+ {
+ name = "pdfjs_dist___pdfjs_dist_2.1.266.tgz";
+ path = fetchurl {
+ name = "pdfjs_dist___pdfjs_dist_2.1.266.tgz";
+ url = "https://registry.yarnpkg.com/pdfjs-dist/-/pdfjs-dist-2.1.266.tgz";
+ sha1 = "cded02268b389559e807f410d2a729db62160026";
+ };
+ }
+ {
+ name = "performance_now___performance_now_2.1.0.tgz";
+ path = fetchurl {
+ name = "performance_now___performance_now_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz";
+ sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
+ };
+ }
+ {
+ name = "picomatch___picomatch_2.0.7.tgz";
+ path = fetchurl {
+ name = "picomatch___picomatch_2.0.7.tgz";
+ url = "https://registry.yarnpkg.com/picomatch/-/picomatch-2.0.7.tgz";
+ sha1 = "514169d8c7cd0bdbeecc8a2609e34a7163de69f6";
+ };
+ }
+ {
+ name = "pify___pify_2.3.0.tgz";
+ path = fetchurl {
+ name = "pify___pify_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz";
+ sha1 = "ed141a6ac043a849ea588498e7dca8b15330e90c";
+ };
+ }
+ {
+ name = "pify___pify_3.0.0.tgz";
+ path = fetchurl {
+ name = "pify___pify_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz";
+ sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176";
+ };
+ }
+ {
+ name = "pify___pify_4.0.1.tgz";
+ path = fetchurl {
+ name = "pify___pify_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz";
+ sha1 = "4b2cd25c50d598735c50292224fd8c6df41e3231";
+ };
+ }
+ {
+ name = "pikaday___pikaday_1.8.0.tgz";
+ path = fetchurl {
+ name = "pikaday___pikaday_1.8.0.tgz";
+ url = "https://registry.yarnpkg.com/pikaday/-/pikaday-1.8.0.tgz";
+ sha1 = "ce930e257042e852e6aadee1115e01554b2d71c5";
+ };
+ }
+ {
+ name = "pinkie_promise___pinkie_promise_2.0.1.tgz";
+ path = fetchurl {
+ name = "pinkie_promise___pinkie_promise_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz";
+ sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa";
+ };
+ }
+ {
+ name = "pinkie___pinkie_2.0.4.tgz";
+ path = fetchurl {
+ name = "pinkie___pinkie_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz";
+ sha1 = "72556b80cfa0d48a974e80e77248e80ed4f7f870";
+ };
+ }
+ {
+ name = "pirates___pirates_4.0.1.tgz";
+ path = fetchurl {
+ name = "pirates___pirates_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz";
+ sha1 = "643a92caf894566f91b2b986d2c66950a8e2fb87";
+ };
+ }
+ {
+ name = "pixelmatch___pixelmatch_4.0.2.tgz";
+ path = fetchurl {
+ name = "pixelmatch___pixelmatch_4.0.2.tgz";
+ url = "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz";
+ sha1 = "8f47dcec5011b477b67db03c243bc1f3085e8854";
+ };
+ }
+ {
+ name = "pkg_dir___pkg_dir_2.0.0.tgz";
+ path = fetchurl {
+ name = "pkg_dir___pkg_dir_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz";
+ sha1 = "f6d5d1109e19d63edf428e0bd57e12777615334b";
+ };
+ }
+ {
+ name = "pkg_dir___pkg_dir_3.0.0.tgz";
+ path = fetchurl {
+ name = "pkg_dir___pkg_dir_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz";
+ sha1 = "2749020f239ed990881b1f71210d51eb6523bea3";
+ };
+ }
+ {
+ name = "pkg_dir___pkg_dir_4.2.0.tgz";
+ path = fetchurl {
+ name = "pkg_dir___pkg_dir_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz";
+ sha1 = "f099133df7ede422e81d1d8448270eeb3e4261f3";
+ };
+ }
+ {
+ name = "pluralize___pluralize_7.0.0.tgz";
+ path = fetchurl {
+ name = "pluralize___pluralize_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz";
+ sha1 = "298b89df8b93b0221dbf421ad2b1b1ea23fc6777";
+ };
+ }
+ {
+ name = "pn___pn_1.1.0.tgz";
+ path = fetchurl {
+ name = "pn___pn_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz";
+ sha1 = "e2f4cef0e219f463c179ab37463e4e1ecdccbafb";
+ };
+ }
+ {
+ name = "pngjs___pngjs_3.3.3.tgz";
+ path = fetchurl {
+ name = "pngjs___pngjs_3.3.3.tgz";
+ url = "https://registry.yarnpkg.com/pngjs/-/pngjs-3.3.3.tgz";
+ sha1 = "85173703bde3edac8998757b96e5821d0966a21b";
+ };
+ }
+ {
+ name = "pofile___pofile_1.0.11.tgz";
+ path = fetchurl {
+ name = "pofile___pofile_1.0.11.tgz";
+ url = "https://registry.yarnpkg.com/pofile/-/pofile-1.0.11.tgz";
+ sha1 = "35aff58c17491d127a07336d5522ebc9df57c954";
+ };
+ }
+ {
+ name = "popper.js___popper.js_1.15.0.tgz";
+ path = fetchurl {
+ name = "popper.js___popper.js_1.15.0.tgz";
+ url = "https://registry.yarnpkg.com/popper.js/-/popper.js-1.15.0.tgz";
+ sha1 = "5560b99bbad7647e9faa475c6b8056621f5a4ff2";
+ };
+ }
+ {
+ name = "portal_vue___portal_vue_2.1.5.tgz";
+ path = fetchurl {
+ name = "portal_vue___portal_vue_2.1.5.tgz";
+ url = "https://registry.yarnpkg.com/portal-vue/-/portal-vue-2.1.5.tgz";
+ sha1 = "ecd0997cb32958205151cb72f40fd4f38d175e5c";
+ };
+ }
+ {
+ name = "portfinder___portfinder_1.0.24.tgz";
+ path = fetchurl {
+ name = "portfinder___portfinder_1.0.24.tgz";
+ url = "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.24.tgz";
+ sha1 = "11efbc6865f12f37624b6531ead1d809ed965cfa";
+ };
+ }
+ {
+ name = "posix_character_classes___posix_character_classes_0.1.1.tgz";
+ path = fetchurl {
+ name = "posix_character_classes___posix_character_classes_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz";
+ sha1 = "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab";
+ };
+ }
+ {
+ name = "postcss_html___postcss_html_0.36.0.tgz";
+ path = fetchurl {
+ name = "postcss_html___postcss_html_0.36.0.tgz";
+ url = "https://registry.yarnpkg.com/postcss-html/-/postcss-html-0.36.0.tgz";
+ sha1 = "b40913f94eaacc2453fd30a1327ad6ee1f88b204";
+ };
+ }
+ {
+ name = "postcss_jsx___postcss_jsx_0.36.2.tgz";
+ path = fetchurl {
+ name = "postcss_jsx___postcss_jsx_0.36.2.tgz";
+ url = "https://registry.yarnpkg.com/postcss-jsx/-/postcss-jsx-0.36.2.tgz";
+ sha1 = "34bcd6752426a60b8df73f069e7595383060a794";
+ };
+ }
+ {
+ name = "postcss_less___postcss_less_3.1.4.tgz";
+ path = fetchurl {
+ name = "postcss_less___postcss_less_3.1.4.tgz";
+ url = "https://registry.yarnpkg.com/postcss-less/-/postcss-less-3.1.4.tgz";
+ sha1 = "369f58642b5928ef898ffbc1a6e93c958304c5ad";
+ };
+ }
+ {
+ name = "postcss_markdown___postcss_markdown_0.36.0.tgz";
+ path = fetchurl {
+ name = "postcss_markdown___postcss_markdown_0.36.0.tgz";
+ url = "https://registry.yarnpkg.com/postcss-markdown/-/postcss-markdown-0.36.0.tgz";
+ sha1 = "7f22849ae0e3db18820b7b0d5e7833f13a447560";
+ };
+ }
+ {
+ name = "postcss_media_query_parser___postcss_media_query_parser_0.2.3.tgz";
+ path = fetchurl {
+ name = "postcss_media_query_parser___postcss_media_query_parser_0.2.3.tgz";
+ url = "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz";
+ sha1 = "27b39c6f4d94f81b1a73b8f76351c609e5cef244";
+ };
+ }
+ {
+ name = "postcss_modules_extract_imports___postcss_modules_extract_imports_1.2.1.tgz";
+ path = fetchurl {
+ name = "postcss_modules_extract_imports___postcss_modules_extract_imports_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz";
+ sha1 = "dc87e34148ec7eab5f791f7cd5849833375b741a";
+ };
+ }
+ {
+ name = "postcss_modules_local_by_default___postcss_modules_local_by_default_1.2.0.tgz";
+ path = fetchurl {
+ name = "postcss_modules_local_by_default___postcss_modules_local_by_default_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz";
+ sha1 = "f7d80c398c5a393fa7964466bd19500a7d61c069";
+ };
+ }
+ {
+ name = "postcss_modules_scope___postcss_modules_scope_1.1.0.tgz";
+ path = fetchurl {
+ name = "postcss_modules_scope___postcss_modules_scope_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz";
+ sha1 = "d6ea64994c79f97b62a72b426fbe6056a194bb90";
+ };
+ }
+ {
+ name = "postcss_modules_values___postcss_modules_values_1.3.0.tgz";
+ path = fetchurl {
+ name = "postcss_modules_values___postcss_modules_values_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz";
+ sha1 = "ecffa9d7e192518389f42ad0e83f72aec456ea20";
+ };
+ }
+ {
+ name = "postcss_reporter___postcss_reporter_6.0.1.tgz";
+ path = fetchurl {
+ name = "postcss_reporter___postcss_reporter_6.0.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-6.0.1.tgz";
+ sha1 = "7c055120060a97c8837b4e48215661aafb74245f";
+ };
+ }
+ {
+ name = "postcss_resolve_nested_selector___postcss_resolve_nested_selector_0.1.1.tgz";
+ path = fetchurl {
+ name = "postcss_resolve_nested_selector___postcss_resolve_nested_selector_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz";
+ sha1 = "29ccbc7c37dedfac304e9fff0bf1596b3f6a0e4e";
+ };
+ }
+ {
+ name = "postcss_safe_parser___postcss_safe_parser_4.0.1.tgz";
+ path = fetchurl {
+ name = "postcss_safe_parser___postcss_safe_parser_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz";
+ sha1 = "8756d9e4c36fdce2c72b091bbc8ca176ab1fcdea";
+ };
+ }
+ {
+ name = "postcss_sass___postcss_sass_0.3.5.tgz";
+ path = fetchurl {
+ name = "postcss_sass___postcss_sass_0.3.5.tgz";
+ url = "https://registry.yarnpkg.com/postcss-sass/-/postcss-sass-0.3.5.tgz";
+ sha1 = "6d3e39f101a53d2efa091f953493116d32beb68c";
+ };
+ }
+ {
+ name = "postcss_scss___postcss_scss_2.0.0.tgz";
+ path = fetchurl {
+ name = "postcss_scss___postcss_scss_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-2.0.0.tgz";
+ sha1 = "248b0a28af77ea7b32b1011aba0f738bda27dea1";
+ };
+ }
+ {
+ name = "postcss_selector_parser___postcss_selector_parser_3.1.1.tgz";
+ path = fetchurl {
+ name = "postcss_selector_parser___postcss_selector_parser_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz";
+ sha1 = "4f875f4afb0c96573d5cf4d74011aee250a7e865";
+ };
+ }
+ {
+ name = "postcss_selector_parser___postcss_selector_parser_5.0.0.tgz";
+ path = fetchurl {
+ name = "postcss_selector_parser___postcss_selector_parser_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz";
+ sha1 = "249044356697b33b64f1a8f7c80922dddee7195c";
+ };
+ }
+ {
+ name = "postcss_selector_parser___postcss_selector_parser_6.0.2.tgz";
+ path = fetchurl {
+ name = "postcss_selector_parser___postcss_selector_parser_6.0.2.tgz";
+ url = "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz";
+ sha1 = "934cf799d016c83411859e09dcecade01286ec5c";
+ };
+ }
+ {
+ name = "postcss_syntax___postcss_syntax_0.36.2.tgz";
+ path = fetchurl {
+ name = "postcss_syntax___postcss_syntax_0.36.2.tgz";
+ url = "https://registry.yarnpkg.com/postcss-syntax/-/postcss-syntax-0.36.2.tgz";
+ sha1 = "f08578c7d95834574e5593a82dfbfa8afae3b51c";
+ };
+ }
+ {
+ name = "postcss_value_parser___postcss_value_parser_3.3.1.tgz";
+ path = fetchurl {
+ name = "postcss_value_parser___postcss_value_parser_3.3.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz";
+ sha1 = "9ff822547e2893213cf1c30efa51ac5fd1ba8281";
+ };
+ }
+ {
+ name = "postcss_value_parser___postcss_value_parser_4.0.0.tgz";
+ path = fetchurl {
+ name = "postcss_value_parser___postcss_value_parser_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.0.tgz";
+ sha1 = "99a983d365f7b2ad8d0f9b8c3094926eab4b936d";
+ };
+ }
+ {
+ name = "postcss___postcss_6.0.23.tgz";
+ path = fetchurl {
+ name = "postcss___postcss_6.0.23.tgz";
+ url = "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz";
+ sha1 = "61c82cc328ac60e677645f979054eb98bc0e3324";
+ };
+ }
+ {
+ name = "postcss___postcss_7.0.18.tgz";
+ path = fetchurl {
+ name = "postcss___postcss_7.0.18.tgz";
+ url = "https://registry.yarnpkg.com/postcss/-/postcss-7.0.18.tgz";
+ sha1 = "4b9cda95ae6c069c67a4d933029eddd4838ac233";
+ };
+ }
+ {
+ name = "prelude_ls___prelude_ls_1.1.2.tgz";
+ path = fetchurl {
+ name = "prelude_ls___prelude_ls_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz";
+ sha1 = "21932a549f5e52ffd9a827f570e04be62a97da54";
+ };
+ }
+ {
+ name = "prepend_http___prepend_http_1.0.4.tgz";
+ path = fetchurl {
+ name = "prepend_http___prepend_http_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz";
+ sha1 = "d4f4562b0ce3696e41ac52d0e002e57a635dc6dc";
+ };
+ }
+ {
+ name = "prettier___prettier_1.16.3.tgz";
+ path = fetchurl {
+ name = "prettier___prettier_1.16.3.tgz";
+ url = "https://registry.yarnpkg.com/prettier/-/prettier-1.16.3.tgz";
+ sha1 = "8c62168453badef702f34b45b6ee899574a6a65d";
+ };
+ }
+ {
+ name = "prettier___prettier_1.18.2.tgz";
+ path = fetchurl {
+ name = "prettier___prettier_1.18.2.tgz";
+ url = "https://registry.yarnpkg.com/prettier/-/prettier-1.18.2.tgz";
+ sha1 = "6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea";
+ };
+ }
+ {
+ name = "pretty_format___pretty_format_24.8.0.tgz";
+ path = fetchurl {
+ name = "pretty_format___pretty_format_24.8.0.tgz";
+ url = "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.8.0.tgz";
+ sha1 = "8dae7044f58db7cb8be245383b565a963e3c27f2";
+ };
+ }
+ {
+ name = "prismjs___prismjs_1.6.0.tgz";
+ path = fetchurl {
+ name = "prismjs___prismjs_1.6.0.tgz";
+ url = "https://registry.yarnpkg.com/prismjs/-/prismjs-1.6.0.tgz";
+ sha1 = "118d95fb7a66dba2272e343b345f5236659db365";
+ };
+ }
+ {
+ name = "private___private_0.1.8.tgz";
+ path = fetchurl {
+ name = "private___private_0.1.8.tgz";
+ url = "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz";
+ sha1 = "2381edb3689f7a53d653190060fcf822d2f368ff";
+ };
+ }
+ {
+ name = "process_nextick_args___process_nextick_args_2.0.1.tgz";
+ path = fetchurl {
+ name = "process_nextick_args___process_nextick_args_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
+ sha1 = "7820d9b16120cc55ca9ae7792680ae7dba6d7fe2";
+ };
+ }
+ {
+ name = "process_nextick_args___process_nextick_args_1.0.7.tgz";
+ path = fetchurl {
+ name = "process_nextick_args___process_nextick_args_1.0.7.tgz";
+ url = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz";
+ sha1 = "150e20b756590ad3f91093f25a4f2ad8bff30ba3";
+ };
+ }
+ {
+ name = "process___process_0.11.10.tgz";
+ path = fetchurl {
+ name = "process___process_0.11.10.tgz";
+ url = "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz";
+ sha1 = "7332300e840161bda3e69a1d1d91a7d4bc16f182";
+ };
+ }
+ {
+ name = "progress___progress_2.0.0.tgz";
+ path = fetchurl {
+ name = "progress___progress_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz";
+ sha1 = "8a1be366bf8fc23db2bd23f10c6fe920b4389d1f";
+ };
+ }
+ {
+ name = "promise_inflight___promise_inflight_1.0.1.tgz";
+ path = fetchurl {
+ name = "promise_inflight___promise_inflight_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz";
+ sha1 = "98472870bf228132fcbdd868129bad12c3c029e3";
+ };
+ }
+ {
+ name = "prompts___prompts_2.1.0.tgz";
+ path = fetchurl {
+ name = "prompts___prompts_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/prompts/-/prompts-2.1.0.tgz";
+ sha1 = "bf90bc71f6065d255ea2bdc0fe6520485c1b45db";
+ };
+ }
+ {
+ name = "property_information___property_information_4.2.0.tgz";
+ path = fetchurl {
+ name = "property_information___property_information_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/property-information/-/property-information-4.2.0.tgz";
+ sha1 = "f0e66e07cbd6fed31d96844d958d153ad3eb486e";
+ };
+ }
+ {
+ name = "prosemirror_commands___prosemirror_commands_1.0.7.tgz";
+ path = fetchurl {
+ name = "prosemirror_commands___prosemirror_commands_1.0.7.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-commands/-/prosemirror-commands-1.0.7.tgz";
+ sha1 = "e5a2ba821e29ea7065c88277fe2c3d7f6b0b9d37";
+ };
+ }
+ {
+ name = "prosemirror_dropcursor___prosemirror_dropcursor_1.1.1.tgz";
+ path = fetchurl {
+ name = "prosemirror_dropcursor___prosemirror_dropcursor_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-dropcursor/-/prosemirror-dropcursor-1.1.1.tgz";
+ sha1 = "c60ed1ed6c58804a06a75db06a0d993b087b7622";
+ };
+ }
+ {
+ name = "prosemirror_gapcursor___prosemirror_gapcursor_1.0.3.tgz";
+ path = fetchurl {
+ name = "prosemirror_gapcursor___prosemirror_gapcursor_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-gapcursor/-/prosemirror-gapcursor-1.0.3.tgz";
+ sha1 = "acc6537fc5a35e9b38966f91a199a382dfc715c4";
+ };
+ }
+ {
+ name = "prosemirror_history___prosemirror_history_1.0.3.tgz";
+ path = fetchurl {
+ name = "prosemirror_history___prosemirror_history_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-history/-/prosemirror-history-1.0.3.tgz";
+ sha1 = "5fb8591adfc272afaaf0b41bec64ee7d9522a118";
+ };
+ }
+ {
+ name = "prosemirror_inputrules___prosemirror_inputrules_1.0.1.tgz";
+ path = fetchurl {
+ name = "prosemirror_inputrules___prosemirror_inputrules_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-inputrules/-/prosemirror-inputrules-1.0.1.tgz";
+ sha1 = "f63305fd966379f218e82ca76a2a9b328b66dc7b";
+ };
+ }
+ {
+ name = "prosemirror_keymap___prosemirror_keymap_1.0.1.tgz";
+ path = fetchurl {
+ name = "prosemirror_keymap___prosemirror_keymap_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-keymap/-/prosemirror-keymap-1.0.1.tgz";
+ sha1 = "03ef32b828e3a859dfb570eb84928bf2e5330bc2";
+ };
+ }
+ {
+ name = "prosemirror_markdown___prosemirror_markdown_1.3.0.tgz";
+ path = fetchurl {
+ name = "prosemirror_markdown___prosemirror_markdown_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-markdown/-/prosemirror-markdown-1.3.0.tgz";
+ sha1 = "a100d14c27da7d8fb70818230d786898eeadb7fa";
+ };
+ }
+ {
+ name = "prosemirror_model___prosemirror_model_1.6.4.tgz";
+ path = fetchurl {
+ name = "prosemirror_model___prosemirror_model_1.6.4.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.6.4.tgz";
+ sha1 = "2ac37a629448a7dbfd1635450e2fdd63c3450d7d";
+ };
+ }
+ {
+ name = "prosemirror_schema_list___prosemirror_schema_list_1.0.1.tgz";
+ path = fetchurl {
+ name = "prosemirror_schema_list___prosemirror_schema_list_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-schema-list/-/prosemirror-schema-list-1.0.1.tgz";
+ sha1 = "f216e0cf4809b6074aa27912449ac89897f1ae94";
+ };
+ }
+ {
+ name = "prosemirror_state___prosemirror_state_1.2.2.tgz";
+ path = fetchurl {
+ name = "prosemirror_state___prosemirror_state_1.2.2.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-1.2.2.tgz";
+ sha1 = "8df26d95fd6fd327c0f9984a760e84d863204154";
+ };
+ }
+ {
+ name = "prosemirror_tables___prosemirror_tables_0.7.10.tgz";
+ path = fetchurl {
+ name = "prosemirror_tables___prosemirror_tables_0.7.10.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-tables/-/prosemirror-tables-0.7.10.tgz";
+ sha1 = "4b0f623422b4b8f84cdc9c559f8a87579846b3ba";
+ };
+ }
+ {
+ name = "prosemirror_transform___prosemirror_transform_1.1.3.tgz";
+ path = fetchurl {
+ name = "prosemirror_transform___prosemirror_transform_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.1.3.tgz";
+ sha1 = "28cfdf1f9ee514edc40466be7b7db39eed545fdf";
+ };
+ }
+ {
+ name = "prosemirror_utils___prosemirror_utils_0.7.5.tgz";
+ path = fetchurl {
+ name = "prosemirror_utils___prosemirror_utils_0.7.5.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-utils/-/prosemirror-utils-0.7.5.tgz";
+ sha1 = "11b477647b672ec8f10679ab298a5823dad6457a";
+ };
+ }
+ {
+ name = "prosemirror_view___prosemirror_view_1.6.8.tgz";
+ path = fetchurl {
+ name = "prosemirror_view___prosemirror_view_1.6.8.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.6.8.tgz";
+ sha1 = "33fc1a6e2731633e5d6dc1af1967378f15810b74";
+ };
+ }
+ {
+ name = "proto_list___proto_list_1.2.4.tgz";
+ path = fetchurl {
+ name = "proto_list___proto_list_1.2.4.tgz";
+ url = "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz";
+ sha1 = "212d5bfe1318306a420f6402b8e26ff39647a849";
+ };
+ }
+ {
+ name = "protocols___protocols_1.4.7.tgz";
+ path = fetchurl {
+ name = "protocols___protocols_1.4.7.tgz";
+ url = "https://registry.yarnpkg.com/protocols/-/protocols-1.4.7.tgz";
+ sha1 = "95f788a4f0e979b291ffefcf5636ad113d037d32";
+ };
+ }
+ {
+ name = "proxy_addr___proxy_addr_2.0.5.tgz";
+ path = fetchurl {
+ name = "proxy_addr___proxy_addr_2.0.5.tgz";
+ url = "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz";
+ sha1 = "34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34";
+ };
+ }
+ {
+ name = "prr___prr_1.0.1.tgz";
+ path = fetchurl {
+ name = "prr___prr_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz";
+ sha1 = "d3fc114ba06995a45ec6893f484ceb1d78f5f476";
+ };
+ }
+ {
+ name = "pseudomap___pseudomap_1.0.2.tgz";
+ path = fetchurl {
+ name = "pseudomap___pseudomap_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz";
+ sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3";
+ };
+ }
+ {
+ name = "psl___psl_1.1.29.tgz";
+ path = fetchurl {
+ name = "psl___psl_1.1.29.tgz";
+ url = "https://registry.yarnpkg.com/psl/-/psl-1.1.29.tgz";
+ sha1 = "60f580d360170bb722a797cc704411e6da850c67";
+ };
+ }
+ {
+ name = "pstree.remy___pstree.remy_1.1.6.tgz";
+ path = fetchurl {
+ name = "pstree.remy___pstree.remy_1.1.6.tgz";
+ url = "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.6.tgz";
+ sha1 = "73a55aad9e2d95814927131fbf4dc1b62d259f47";
+ };
+ }
+ {
+ name = "public_encrypt___public_encrypt_4.0.0.tgz";
+ path = fetchurl {
+ name = "public_encrypt___public_encrypt_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz";
+ sha1 = "39f699f3a46560dd5ebacbca693caf7c65c18cc6";
+ };
+ }
+ {
+ name = "pump___pump_2.0.1.tgz";
+ path = fetchurl {
+ name = "pump___pump_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz";
+ sha1 = "12399add6e4cf7526d973cbc8b5ce2e2908b3909";
+ };
+ }
+ {
+ name = "pump___pump_3.0.0.tgz";
+ path = fetchurl {
+ name = "pump___pump_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz";
+ sha1 = "b4a2116815bde2f4e1ea602354e8c75565107a64";
+ };
+ }
+ {
+ name = "pumpify___pumpify_1.5.1.tgz";
+ path = fetchurl {
+ name = "pumpify___pumpify_1.5.1.tgz";
+ url = "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz";
+ sha1 = "36513be246ab27570b1a374a5ce278bfd74370ce";
+ };
+ }
+ {
+ name = "punycode___punycode_1.3.2.tgz";
+ path = fetchurl {
+ name = "punycode___punycode_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz";
+ sha1 = "9653a036fb7c1ee42342f2325cceefea3926c48d";
+ };
+ }
+ {
+ name = "punycode___punycode_1.4.1.tgz";
+ path = fetchurl {
+ name = "punycode___punycode_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz";
+ sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e";
+ };
+ }
+ {
+ name = "punycode___punycode_2.1.1.tgz";
+ path = fetchurl {
+ name = "punycode___punycode_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz";
+ sha1 = "b58b010ac40c22c5657616c8d2c2c02c7bf479ec";
+ };
+ }
+ {
+ name = "qjobs___qjobs_1.2.0.tgz";
+ path = fetchurl {
+ name = "qjobs___qjobs_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz";
+ sha1 = "c45e9c61800bd087ef88d7e256423bdd49e5d071";
+ };
+ }
+ {
+ name = "qs___qs_6.7.0.tgz";
+ path = fetchurl {
+ name = "qs___qs_6.7.0.tgz";
+ url = "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz";
+ sha1 = "41dc1a015e3d581f1621776be31afb2876a9b1bc";
+ };
+ }
+ {
+ name = "qs___qs_6.5.2.tgz";
+ path = fetchurl {
+ name = "qs___qs_6.5.2.tgz";
+ url = "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz";
+ sha1 = "cb3ae806e8740444584ef154ce8ee98d403f3e36";
+ };
+ }
+ {
+ name = "query_string___query_string_4.3.4.tgz";
+ path = fetchurl {
+ name = "query_string___query_string_4.3.4.tgz";
+ url = "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz";
+ sha1 = "bbb693b9ca915c232515b228b1a02b609043dbeb";
+ };
+ }
+ {
+ name = "querystring_es3___querystring_es3_0.2.1.tgz";
+ path = fetchurl {
+ name = "querystring_es3___querystring_es3_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz";
+ sha1 = "9ec61f79049875707d69414596fd907a4d711e73";
+ };
+ }
+ {
+ name = "querystring___querystring_0.2.0.tgz";
+ path = fetchurl {
+ name = "querystring___querystring_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz";
+ sha1 = "b209849203bb25df820da756e747005878521620";
+ };
+ }
+ {
+ name = "querystringify___querystringify_2.1.0.tgz";
+ path = fetchurl {
+ name = "querystringify___querystringify_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.0.tgz";
+ sha1 = "7ded8dfbf7879dcc60d0a644ac6754b283ad17ef";
+ };
+ }
+ {
+ name = "quick_lru___quick_lru_1.1.0.tgz";
+ path = fetchurl {
+ name = "quick_lru___quick_lru_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz";
+ sha1 = "4360b17c61136ad38078397ff11416e186dcfbb8";
+ };
+ }
+ {
+ name = "randombytes___randombytes_2.0.6.tgz";
+ path = fetchurl {
+ name = "randombytes___randombytes_2.0.6.tgz";
+ url = "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz";
+ sha1 = "d302c522948588848a8d300c932b44c24231da80";
+ };
+ }
+ {
+ name = "randomfill___randomfill_1.0.4.tgz";
+ path = fetchurl {
+ name = "randomfill___randomfill_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz";
+ sha1 = "c92196fc86ab42be983f1bf31778224931d61458";
+ };
+ }
+ {
+ name = "range_parser___range_parser_1.2.1.tgz";
+ path = fetchurl {
+ name = "range_parser___range_parser_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz";
+ sha1 = "3cf37023d199e1c24d1a55b84800c2f3e6468031";
+ };
+ }
+ {
+ name = "raphael___raphael_2.2.7.tgz";
+ path = fetchurl {
+ name = "raphael___raphael_2.2.7.tgz";
+ url = "https://registry.yarnpkg.com/raphael/-/raphael-2.2.7.tgz";
+ sha1 = "231b19141f8d086986d8faceb66f8b562ee2c810";
+ };
+ }
+ {
+ name = "raven_js___raven_js_3.22.1.tgz";
+ path = fetchurl {
+ name = "raven_js___raven_js_3.22.1.tgz";
+ url = "https://registry.yarnpkg.com/raven-js/-/raven-js-3.22.1.tgz";
+ sha1 = "1117f00dfefaa427ef6e1a7d50bbb1fb998a24da";
+ };
+ }
+ {
+ name = "raw_body___raw_body_2.4.0.tgz";
+ path = fetchurl {
+ name = "raw_body___raw_body_2.4.0.tgz";
+ url = "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz";
+ sha1 = "a1ce6fb9c9bc356ca52e89256ab59059e13d0332";
+ };
+ }
+ {
+ name = "raw_body___raw_body_1.1.7.tgz";
+ path = fetchurl {
+ name = "raw_body___raw_body_1.1.7.tgz";
+ url = "https://registry.yarnpkg.com/raw-body/-/raw-body-1.1.7.tgz";
+ sha1 = "1d027c2bfa116acc6623bca8f00016572a87d425";
+ };
+ }
+ {
+ name = "raw_loader___raw_loader_3.1.0.tgz";
+ path = fetchurl {
+ name = "raw_loader___raw_loader_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/raw-loader/-/raw-loader-3.1.0.tgz";
+ sha1 = "5e9d399a5a222cc0de18f42c3bc5e49677532b3f";
+ };
+ }
+ {
+ name = "rc___rc_1.2.8.tgz";
+ path = fetchurl {
+ name = "rc___rc_1.2.8.tgz";
+ url = "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz";
+ sha1 = "cd924bf5200a075b83c188cd6b9e211b7fc0d3ed";
+ };
+ }
+ {
+ name = "react_is___react_is_16.8.6.tgz";
+ path = fetchurl {
+ name = "react_is___react_is_16.8.6.tgz";
+ url = "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz";
+ sha1 = "5bbc1e2d29141c9fbdfed456343fe2bc430a6a16";
+ };
+ }
+ {
+ name = "read_pkg_up___read_pkg_up_1.0.1.tgz";
+ path = fetchurl {
+ name = "read_pkg_up___read_pkg_up_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz";
+ sha1 = "9d63c13276c065918d57f002a57f40a1b643fb02";
+ };
+ }
+ {
+ name = "read_pkg_up___read_pkg_up_2.0.0.tgz";
+ path = fetchurl {
+ name = "read_pkg_up___read_pkg_up_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz";
+ sha1 = "6b72a8048984e0c41e79510fd5e9fa99b3b549be";
+ };
+ }
+ {
+ name = "read_pkg_up___read_pkg_up_3.0.0.tgz";
+ path = fetchurl {
+ name = "read_pkg_up___read_pkg_up_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz";
+ sha1 = "3ed496685dba0f8fe118d0691dc51f4a1ff96f07";
+ };
+ }
+ {
+ name = "read_pkg_up___read_pkg_up_4.0.0.tgz";
+ path = fetchurl {
+ name = "read_pkg_up___read_pkg_up_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz";
+ sha1 = "1b221c6088ba7799601c808f91161c66e58f8978";
+ };
+ }
+ {
+ name = "read_pkg___read_pkg_1.1.0.tgz";
+ path = fetchurl {
+ name = "read_pkg___read_pkg_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz";
+ sha1 = "f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28";
+ };
+ }
+ {
+ name = "read_pkg___read_pkg_2.0.0.tgz";
+ path = fetchurl {
+ name = "read_pkg___read_pkg_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz";
+ sha1 = "8ef1c0623c6a6db0dc6713c4bfac46332b2368f8";
+ };
+ }
+ {
+ name = "read_pkg___read_pkg_3.0.0.tgz";
+ path = fetchurl {
+ name = "read_pkg___read_pkg_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz";
+ sha1 = "9cbc686978fee65d16c00e2b19c237fcf6e38389";
+ };
+ }
+ {
+ name = "readable_stream___readable_stream_2.3.6.tgz";
+ path = fetchurl {
+ name = "readable_stream___readable_stream_2.3.6.tgz";
+ url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz";
+ sha1 = "b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf";
+ };
+ }
+ {
+ name = "readable_stream___readable_stream_3.0.6.tgz";
+ path = fetchurl {
+ name = "readable_stream___readable_stream_3.0.6.tgz";
+ url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.0.6.tgz";
+ sha1 = "351302e4c68b5abd6a2ed55376a7f9a25be3057a";
+ };
+ }
+ {
+ name = "readable_stream___readable_stream_2.0.6.tgz";
+ path = fetchurl {
+ name = "readable_stream___readable_stream_2.0.6.tgz";
+ url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz";
+ sha1 = "8f90341e68a53ccc928788dacfcd11b36eb9b78e";
+ };
+ }
+ {
+ name = "readable_stream___readable_stream_2.1.5.tgz";
+ path = fetchurl {
+ name = "readable_stream___readable_stream_2.1.5.tgz";
+ url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz";
+ sha1 = "66fa8b720e1438b364681f2ad1a63c618448c9d0";
+ };
+ }
+ {
+ name = "readdir_enhanced___readdir_enhanced_2.2.4.tgz";
+ path = fetchurl {
+ name = "readdir_enhanced___readdir_enhanced_2.2.4.tgz";
+ url = "https://registry.yarnpkg.com/readdir-enhanced/-/readdir-enhanced-2.2.4.tgz";
+ sha1 = "773fb8a8de5f645fb13d9403746d490d4facb3e6";
+ };
+ }
+ {
+ name = "readdirp___readdirp_2.2.1.tgz";
+ path = fetchurl {
+ name = "readdirp___readdirp_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz";
+ sha1 = "0e87622a3325aa33e892285caf8b4e846529a525";
+ };
+ }
+ {
+ name = "readdirp___readdirp_3.1.1.tgz";
+ path = fetchurl {
+ name = "readdirp___readdirp_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/readdirp/-/readdirp-3.1.1.tgz";
+ sha1 = "b158123ac343c8b0f31d65680269cc0fc1025db1";
+ };
+ }
+ {
+ name = "realpath_native___realpath_native_1.1.0.tgz";
+ path = fetchurl {
+ name = "realpath_native___realpath_native_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz";
+ sha1 = "2003294fea23fb0672f2476ebe22fcf498a2d65c";
+ };
+ }
+ {
+ name = "redent___redent_1.0.0.tgz";
+ path = fetchurl {
+ name = "redent___redent_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz";
+ sha1 = "cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde";
+ };
+ }
+ {
+ name = "redent___redent_2.0.0.tgz";
+ path = fetchurl {
+ name = "redent___redent_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz";
+ sha1 = "c1b2007b42d57eb1389079b3c8333639d5e1ccaa";
+ };
+ }
+ {
+ name = "regenerate_unicode_properties___regenerate_unicode_properties_8.1.0.tgz";
+ path = fetchurl {
+ name = "regenerate_unicode_properties___regenerate_unicode_properties_8.1.0.tgz";
+ url = "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz";
+ sha1 = "ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e";
+ };
+ }
+ {
+ name = "regenerate___regenerate_1.4.0.tgz";
+ path = fetchurl {
+ name = "regenerate___regenerate_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz";
+ sha1 = "4a856ec4b56e4077c557589cae85e7a4c8869a11";
+ };
+ }
+ {
+ name = "regenerator_transform___regenerator_transform_0.14.1.tgz";
+ path = fetchurl {
+ name = "regenerator_transform___regenerator_transform_0.14.1.tgz";
+ url = "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz";
+ sha1 = "3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb";
+ };
+ }
+ {
+ name = "regex_not___regex_not_1.0.2.tgz";
+ path = fetchurl {
+ name = "regex_not___regex_not_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz";
+ sha1 = "1f4ece27e00b0b65e0247a6810e6a85d83a5752c";
+ };
+ }
+ {
+ name = "regexpp___regexpp_2.0.1.tgz";
+ path = fetchurl {
+ name = "regexpp___regexpp_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz";
+ sha1 = "8d19d31cf632482b589049f8281f93dbcba4d07f";
+ };
+ }
+ {
+ name = "regexpu_core___regexpu_core_1.0.0.tgz";
+ path = fetchurl {
+ name = "regexpu_core___regexpu_core_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz";
+ sha1 = "86a763f58ee4d7c2f6b102e4764050de7ed90c6b";
+ };
+ }
+ {
+ name = "regexpu_core___regexpu_core_4.6.0.tgz";
+ path = fetchurl {
+ name = "regexpu_core___regexpu_core_4.6.0.tgz";
+ url = "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz";
+ sha1 = "2037c18b327cfce8a6fea2a4ec441f2432afb8b6";
+ };
+ }
+ {
+ name = "registry_auth_token___registry_auth_token_3.3.2.tgz";
+ path = fetchurl {
+ name = "registry_auth_token___registry_auth_token_3.3.2.tgz";
+ url = "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz";
+ sha1 = "851fd49038eecb586911115af845260eec983f20";
+ };
+ }
+ {
+ name = "registry_url___registry_url_3.1.0.tgz";
+ path = fetchurl {
+ name = "registry_url___registry_url_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz";
+ sha1 = "3d4ef870f73dde1d77f0cf9a381432444e174942";
+ };
+ }
+ {
+ name = "regjsgen___regjsgen_0.2.0.tgz";
+ path = fetchurl {
+ name = "regjsgen___regjsgen_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz";
+ sha1 = "6c016adeac554f75823fe37ac05b92d5a4edb1f7";
+ };
+ }
+ {
+ name = "regjsgen___regjsgen_0.5.0.tgz";
+ path = fetchurl {
+ name = "regjsgen___regjsgen_0.5.0.tgz";
+ url = "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz";
+ sha1 = "a7634dc08f89209c2049adda3525711fb97265dd";
+ };
+ }
+ {
+ name = "regjsparser___regjsparser_0.1.5.tgz";
+ path = fetchurl {
+ name = "regjsparser___regjsparser_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz";
+ sha1 = "7ee8f84dc6fa792d3fd0ae228d24bd949ead205c";
+ };
+ }
+ {
+ name = "regjsparser___regjsparser_0.6.0.tgz";
+ path = fetchurl {
+ name = "regjsparser___regjsparser_0.6.0.tgz";
+ url = "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz";
+ sha1 = "f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c";
+ };
+ }
+ {
+ name = "relateurl___relateurl_0.2.7.tgz";
+ path = fetchurl {
+ name = "relateurl___relateurl_0.2.7.tgz";
+ url = "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz";
+ sha1 = "54dbf377e51440aca90a4cd274600d3ff2d888a9";
+ };
+ }
+ {
+ name = "remark_html___remark_html_8.0.0.tgz";
+ path = fetchurl {
+ name = "remark_html___remark_html_8.0.0.tgz";
+ url = "https://registry.yarnpkg.com/remark-html/-/remark-html-8.0.0.tgz";
+ sha1 = "9fcb859a6f3cb40f3ef15402950f1a62ec301b3a";
+ };
+ }
+ {
+ name = "remark_parse___remark_parse_5.0.0.tgz";
+ path = fetchurl {
+ name = "remark_parse___remark_parse_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/remark-parse/-/remark-parse-5.0.0.tgz";
+ sha1 = "4c077f9e499044d1d5c13f80d7a98cf7b9285d95";
+ };
+ }
+ {
+ name = "remark_parse___remark_parse_6.0.3.tgz";
+ path = fetchurl {
+ name = "remark_parse___remark_parse_6.0.3.tgz";
+ url = "https://registry.yarnpkg.com/remark-parse/-/remark-parse-6.0.3.tgz";
+ sha1 = "c99131052809da482108413f87b0ee7f52180a3a";
+ };
+ }
+ {
+ name = "remark_reference_links___remark_reference_links_4.0.4.tgz";
+ path = fetchurl {
+ name = "remark_reference_links___remark_reference_links_4.0.4.tgz";
+ url = "https://registry.yarnpkg.com/remark-reference-links/-/remark-reference-links-4.0.4.tgz";
+ sha1 = "190579a0d6b002859d6cdbdc5aeb8bbdae4e06ab";
+ };
+ }
+ {
+ name = "remark_slug___remark_slug_5.1.2.tgz";
+ path = fetchurl {
+ name = "remark_slug___remark_slug_5.1.2.tgz";
+ url = "https://registry.yarnpkg.com/remark-slug/-/remark-slug-5.1.2.tgz";
+ sha1 = "715ecdef8df1226786204b1887d31ab16aa24609";
+ };
+ }
+ {
+ name = "remark_stringify___remark_stringify_5.0.0.tgz";
+ path = fetchurl {
+ name = "remark_stringify___remark_stringify_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-5.0.0.tgz";
+ sha1 = "336d3a4d4a6a3390d933eeba62e8de4bd280afba";
+ };
+ }
+ {
+ name = "remark_stringify___remark_stringify_6.0.4.tgz";
+ path = fetchurl {
+ name = "remark_stringify___remark_stringify_6.0.4.tgz";
+ url = "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-6.0.4.tgz";
+ sha1 = "16ac229d4d1593249018663c7bddf28aafc4e088";
+ };
+ }
+ {
+ name = "remark_toc___remark_toc_5.1.1.tgz";
+ path = fetchurl {
+ name = "remark_toc___remark_toc_5.1.1.tgz";
+ url = "https://registry.yarnpkg.com/remark-toc/-/remark-toc-5.1.1.tgz";
+ sha1 = "8c229d6f834cdb43fde6685e2d43248d3fc82d78";
+ };
+ }
+ {
+ name = "remark___remark_10.0.1.tgz";
+ path = fetchurl {
+ name = "remark___remark_10.0.1.tgz";
+ url = "https://registry.yarnpkg.com/remark/-/remark-10.0.1.tgz";
+ sha1 = "3058076dc41781bf505d8978c291485fe47667df";
+ };
+ }
+ {
+ name = "remark___remark_9.0.0.tgz";
+ path = fetchurl {
+ name = "remark___remark_9.0.0.tgz";
+ url = "https://registry.yarnpkg.com/remark/-/remark-9.0.0.tgz";
+ sha1 = "c5cfa8ec535c73a67c4b0f12bfdbd3a67d8b2f60";
+ };
+ }
+ {
+ name = "remote_origin_url___remote_origin_url_0.4.0.tgz";
+ path = fetchurl {
+ name = "remote_origin_url___remote_origin_url_0.4.0.tgz";
+ url = "https://registry.yarnpkg.com/remote-origin-url/-/remote-origin-url-0.4.0.tgz";
+ sha1 = "4d3e2902f34e2d37d1c263d87710b77eb4086a30";
+ };
+ }
+ {
+ name = "remove_bom_buffer___remove_bom_buffer_3.0.0.tgz";
+ path = fetchurl {
+ name = "remove_bom_buffer___remove_bom_buffer_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz";
+ sha1 = "c2bf1e377520d324f623892e33c10cac2c252b53";
+ };
+ }
+ {
+ name = "remove_bom_stream___remove_bom_stream_1.2.0.tgz";
+ path = fetchurl {
+ name = "remove_bom_stream___remove_bom_stream_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz";
+ sha1 = "05f1a593f16e42e1fb90ebf59de8e569525f9523";
+ };
+ }
+ {
+ name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz";
+ path = fetchurl {
+ name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz";
+ sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef";
+ };
+ }
+ {
+ name = "repeat_element___repeat_element_1.1.3.tgz";
+ path = fetchurl {
+ name = "repeat_element___repeat_element_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz";
+ sha1 = "782e0d825c0c5a3bb39731f84efee6b742e6b1ce";
+ };
+ }
+ {
+ name = "repeat_string___repeat_string_1.6.1.tgz";
+ path = fetchurl {
+ name = "repeat_string___repeat_string_1.6.1.tgz";
+ url = "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz";
+ sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637";
+ };
+ }
+ {
+ name = "repeating___repeating_2.0.1.tgz";
+ path = fetchurl {
+ name = "repeating___repeating_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz";
+ sha1 = "5214c53a926d3552707527fbab415dbc08d06dda";
+ };
+ }
+ {
+ name = "replace_ext___replace_ext_1.0.0.tgz";
+ path = fetchurl {
+ name = "replace_ext___replace_ext_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz";
+ sha1 = "de63128373fcbf7c3ccfa4de5a480c45a67958eb";
+ };
+ }
+ {
+ name = "request_promise_core___request_promise_core_1.1.1.tgz";
+ path = fetchurl {
+ name = "request_promise_core___request_promise_core_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.1.tgz";
+ sha1 = "3eee00b2c5aa83239cfb04c5700da36f81cd08b6";
+ };
+ }
+ {
+ name = "request_promise_native___request_promise_native_1.0.5.tgz";
+ path = fetchurl {
+ name = "request_promise_native___request_promise_native_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.5.tgz";
+ sha1 = "5281770f68e0c9719e5163fd3fab482215f4fda5";
+ };
+ }
+ {
+ name = "request___request_2.88.0.tgz";
+ path = fetchurl {
+ name = "request___request_2.88.0.tgz";
+ url = "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz";
+ sha1 = "9c2fca4f7d35b592efe57c7f0a55e81052124fef";
+ };
+ }
+ {
+ name = "require_directory___require_directory_2.1.1.tgz";
+ path = fetchurl {
+ name = "require_directory___require_directory_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz";
+ sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
+ };
+ }
+ {
+ name = "require_main_filename___require_main_filename_1.0.1.tgz";
+ path = fetchurl {
+ name = "require_main_filename___require_main_filename_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz";
+ sha1 = "97f717b69d48784f5f526a6c5aa8ffdda055a4d1";
+ };
+ }
+ {
+ name = "require_main_filename___require_main_filename_2.0.0.tgz";
+ path = fetchurl {
+ name = "require_main_filename___require_main_filename_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz";
+ sha1 = "d0b329ecc7cc0f61649f62215be69af54aa8989b";
+ };
+ }
+ {
+ name = "require_uncached___require_uncached_1.0.3.tgz";
+ path = fetchurl {
+ name = "require_uncached___require_uncached_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz";
+ sha1 = "4e0d56d6c9662fd31e43011c4b95aa49955421d3";
+ };
+ }
+ {
+ name = "requireindex___requireindex_1.1.0.tgz";
+ path = fetchurl {
+ name = "requireindex___requireindex_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/requireindex/-/requireindex-1.1.0.tgz";
+ sha1 = "e5404b81557ef75db6e49c5a72004893fe03e162";
+ };
+ }
+ {
+ name = "requires_port___requires_port_1.0.0.tgz";
+ path = fetchurl {
+ name = "requires_port___requires_port_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz";
+ sha1 = "925d2601d39ac485e091cf0da5c6e694dc3dcaff";
+ };
+ }
+ {
+ name = "requizzle___requizzle_0.2.1.tgz";
+ path = fetchurl {
+ name = "requizzle___requizzle_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/requizzle/-/requizzle-0.2.1.tgz";
+ sha1 = "6943c3530c4d9a7e46f1cddd51c158fc670cdbde";
+ };
+ }
+ {
+ name = "resize_observer_polyfill___resize_observer_polyfill_1.5.1.tgz";
+ path = fetchurl {
+ name = "resize_observer_polyfill___resize_observer_polyfill_1.5.1.tgz";
+ url = "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz";
+ sha1 = "0e9020dd3d21024458d4ebd27e23e40269810464";
+ };
+ }
+ {
+ name = "resolve_cwd___resolve_cwd_2.0.0.tgz";
+ path = fetchurl {
+ name = "resolve_cwd___resolve_cwd_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz";
+ sha1 = "00a9f7387556e27038eae232caa372a6a59b665a";
+ };
+ }
+ {
+ name = "resolve_dir___resolve_dir_1.0.1.tgz";
+ path = fetchurl {
+ name = "resolve_dir___resolve_dir_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz";
+ sha1 = "79a40644c362be82f26effe739c9bb5382046f43";
+ };
+ }
+ {
+ name = "resolve_from___resolve_from_1.0.1.tgz";
+ path = fetchurl {
+ name = "resolve_from___resolve_from_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz";
+ sha1 = "26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226";
+ };
+ }
+ {
+ name = "resolve_from___resolve_from_3.0.0.tgz";
+ path = fetchurl {
+ name = "resolve_from___resolve_from_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz";
+ sha1 = "b22c7af7d9d6881bc8b6e653335eebcb0a188748";
+ };
+ }
+ {
+ name = "resolve_from___resolve_from_5.0.0.tgz";
+ path = fetchurl {
+ name = "resolve_from___resolve_from_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz";
+ sha1 = "c35225843df8f776df21c57557bc087e9dfdfc69";
+ };
+ }
+ {
+ name = "resolve_options___resolve_options_1.1.0.tgz";
+ path = fetchurl {
+ name = "resolve_options___resolve_options_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/resolve-options/-/resolve-options-1.1.0.tgz";
+ sha1 = "32bb9e39c06d67338dc9378c0d6d6074566ad131";
+ };
+ }
+ {
+ name = "resolve_url___resolve_url_0.2.1.tgz";
+ path = fetchurl {
+ name = "resolve_url___resolve_url_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz";
+ sha1 = "2c637fe77c893afd2a663fe21aa9080068e2052a";
+ };
+ }
+ {
+ name = "resolve___resolve_1.1.7.tgz";
+ path = fetchurl {
+ name = "resolve___resolve_1.1.7.tgz";
+ url = "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz";
+ sha1 = "203114d82ad2c5ed9e8e0411b3932875e889e97b";
+ };
+ }
+ {
+ name = "resolve___resolve_1.11.1.tgz";
+ path = fetchurl {
+ name = "resolve___resolve_1.11.1.tgz";
+ url = "https://registry.yarnpkg.com/resolve/-/resolve-1.11.1.tgz";
+ sha1 = "ea10d8110376982fef578df8fc30b9ac30a07a3e";
+ };
+ }
+ {
+ name = "restore_cursor___restore_cursor_2.0.0.tgz";
+ path = fetchurl {
+ name = "restore_cursor___restore_cursor_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz";
+ sha1 = "9f7ee287f82fd326d4fd162923d62129eee0dfaf";
+ };
+ }
+ {
+ name = "ret___ret_0.1.15.tgz";
+ path = fetchurl {
+ name = "ret___ret_0.1.15.tgz";
+ url = "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz";
+ sha1 = "b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc";
+ };
+ }
+ {
+ name = "retry___retry_0.12.0.tgz";
+ path = fetchurl {
+ name = "retry___retry_0.12.0.tgz";
+ url = "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz";
+ sha1 = "1b42a6266a21f07421d1b0b54b7dc167b01c013b";
+ };
+ }
+ {
+ name = "rfdc___rfdc_1.1.4.tgz";
+ path = fetchurl {
+ name = "rfdc___rfdc_1.1.4.tgz";
+ url = "https://registry.yarnpkg.com/rfdc/-/rfdc-1.1.4.tgz";
+ sha1 = "ba72cc1367a0ccd9cf81a870b3b58bd3ad07f8c2";
+ };
+ }
+ {
+ name = "rimraf___rimraf_2.6.3.tgz";
+ path = fetchurl {
+ name = "rimraf___rimraf_2.6.3.tgz";
+ url = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz";
+ sha1 = "b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab";
+ };
+ }
+ {
+ name = "ripemd160___ripemd160_2.0.1.tgz";
+ path = fetchurl {
+ name = "ripemd160___ripemd160_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz";
+ sha1 = "0f4584295c53a3628af7e6d79aca21ce57d1c6e7";
+ };
+ }
+ {
+ name = "rope_sequence___rope_sequence_1.2.2.tgz";
+ path = fetchurl {
+ name = "rope_sequence___rope_sequence_1.2.2.tgz";
+ url = "https://registry.yarnpkg.com/rope-sequence/-/rope-sequence-1.2.2.tgz";
+ sha1 = "49c4e5c2f54a48e990b050926771e2871bcb31ce";
+ };
+ }
+ {
+ name = "rsvp___rsvp_4.8.4.tgz";
+ path = fetchurl {
+ name = "rsvp___rsvp_4.8.4.tgz";
+ url = "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.4.tgz";
+ sha1 = "b50e6b34583f3dd89329a2f23a8a2be072845911";
+ };
+ }
+ {
+ name = "run_async___run_async_2.3.0.tgz";
+ path = fetchurl {
+ name = "run_async___run_async_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz";
+ sha1 = "0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0";
+ };
+ }
+ {
+ name = "run_queue___run_queue_1.0.3.tgz";
+ path = fetchurl {
+ name = "run_queue___run_queue_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz";
+ sha1 = "e848396f057d223f24386924618e25694161ec47";
+ };
+ }
+ {
+ name = "rw___rw_1.3.3.tgz";
+ path = fetchurl {
+ name = "rw___rw_1.3.3.tgz";
+ url = "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz";
+ sha1 = "3f862dfa91ab766b14885ef4d01124bfda074fb4";
+ };
+ }
+ {
+ name = "rxjs___rxjs_6.2.1.tgz";
+ path = fetchurl {
+ name = "rxjs___rxjs_6.2.1.tgz";
+ url = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.2.1.tgz";
+ sha1 = "246cebec189a6cbc143a3ef9f62d6f4c91813ca1";
+ };
+ }
+ {
+ name = "safe_buffer___safe_buffer_5.1.2.tgz";
+ path = fetchurl {
+ name = "safe_buffer___safe_buffer_5.1.2.tgz";
+ url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz";
+ sha1 = "991ec69d296e0313747d59bdfd2b745c35f8828d";
+ };
+ }
+ {
+ name = "safe_json_parse___safe_json_parse_1.0.1.tgz";
+ path = fetchurl {
+ name = "safe_json_parse___safe_json_parse_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/safe-json-parse/-/safe-json-parse-1.0.1.tgz";
+ sha1 = "3e76723e38dfdda13c9b1d29a1e07ffee4b30b57";
+ };
+ }
+ {
+ name = "safe_regex___safe_regex_1.1.0.tgz";
+ path = fetchurl {
+ name = "safe_regex___safe_regex_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz";
+ sha1 = "40a3669f3b077d1e943d44629e157dd48023bf2e";
+ };
+ }
+ {
+ name = "safer_buffer___safer_buffer_2.1.2.tgz";
+ path = fetchurl {
+ name = "safer_buffer___safer_buffer_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz";
+ sha1 = "44fa161b0187b9549dd84bb91802f9bd8385cd6a";
+ };
+ }
+ {
+ name = "sane___sane_4.1.0.tgz";
+ path = fetchurl {
+ name = "sane___sane_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz";
+ sha1 = "ed881fd922733a6c461bc189dc2b6c006f3ffded";
+ };
+ }
+ {
+ name = "sanitize_html___sanitize_html_1.16.3.tgz";
+ path = fetchurl {
+ name = "sanitize_html___sanitize_html_1.16.3.tgz";
+ url = "https://registry.yarnpkg.com/sanitize-html/-/sanitize-html-1.16.3.tgz";
+ sha1 = "96c1b44a36ff7312e1c22a14b05274370ac8bd56";
+ };
+ }
+ {
+ name = "sass_graph___sass_graph_2.2.4.tgz";
+ path = fetchurl {
+ name = "sass_graph___sass_graph_2.2.4.tgz";
+ url = "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz";
+ sha1 = "13fbd63cd1caf0908b9fd93476ad43a51d1e0b49";
+ };
+ }
+ {
+ name = "sax___sax_1.2.1.tgz";
+ path = fetchurl {
+ name = "sax___sax_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz";
+ sha1 = "7b8e656190b228e81a66aea748480d828cd2d37a";
+ };
+ }
+ {
+ name = "sax___sax_1.2.4.tgz";
+ path = fetchurl {
+ name = "sax___sax_1.2.4.tgz";
+ url = "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz";
+ sha1 = "2816234e2378bddc4e5354fab5caa895df7100d9";
+ };
+ }
+ {
+ name = "schema_utils___schema_utils_0.4.5.tgz";
+ path = fetchurl {
+ name = "schema_utils___schema_utils_0.4.5.tgz";
+ url = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.5.tgz";
+ sha1 = "21836f0608aac17b78f9e3e24daff14a5ca13a3e";
+ };
+ }
+ {
+ name = "schema_utils___schema_utils_1.0.0.tgz";
+ path = fetchurl {
+ name = "schema_utils___schema_utils_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz";
+ sha1 = "0b79a93204d7b600d4b2850d1f66c2a34951c770";
+ };
+ }
+ {
+ name = "schema_utils___schema_utils_2.2.0.tgz";
+ path = fetchurl {
+ name = "schema_utils___schema_utils_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.2.0.tgz";
+ sha1 = "48a065ce219e0cacf4631473159037b2c1ae82da";
+ };
+ }
+ {
+ name = "scope_css___scope_css_1.2.1.tgz";
+ path = fetchurl {
+ name = "scope_css___scope_css_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/scope-css/-/scope-css-1.2.1.tgz";
+ sha1 = "c35768bc900cad030a3e0d663a818c0f6a57f40e";
+ };
+ }
+ {
+ name = "scss_tokenizer___scss_tokenizer_0.2.3.tgz";
+ path = fetchurl {
+ name = "scss_tokenizer___scss_tokenizer_0.2.3.tgz";
+ url = "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz";
+ sha1 = "8eb06db9a9723333824d3f5530641149847ce5d1";
+ };
+ }
+ {
+ name = "select_hose___select_hose_2.0.0.tgz";
+ path = fetchurl {
+ name = "select_hose___select_hose_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz";
+ sha1 = "625d8658f865af43ec962bfc376a37359a4994ca";
+ };
+ }
+ {
+ name = "select2___select2_3.5.2_browserify.tgz";
+ path = fetchurl {
+ name = "select2___select2_3.5.2_browserify.tgz";
+ url = "https://registry.yarnpkg.com/select2/-/select2-3.5.2-browserify.tgz";
+ sha1 = "dc4dafda38d67a734e8a97a46f0d3529ae05391d";
+ };
+ }
+ {
+ name = "select___select_1.1.2.tgz";
+ path = fetchurl {
+ name = "select___select_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz";
+ sha1 = "0e7350acdec80b1108528786ec1d4418d11b396d";
+ };
+ }
+ {
+ name = "selfsigned___selfsigned_1.10.6.tgz";
+ path = fetchurl {
+ name = "selfsigned___selfsigned_1.10.6.tgz";
+ url = "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.6.tgz";
+ sha1 = "7b3cd37ed9c2034261a173af1a1aae27d8169b67";
+ };
+ }
+ {
+ name = "semver_diff___semver_diff_2.1.0.tgz";
+ path = fetchurl {
+ name = "semver_diff___semver_diff_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz";
+ sha1 = "4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36";
+ };
+ }
+ {
+ name = "semver___semver_5.7.0.tgz";
+ path = fetchurl {
+ name = "semver___semver_5.7.0.tgz";
+ url = "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz";
+ sha1 = "790a7cf6fea5459bac96110b29b60412dc8ff96b";
+ };
+ }
+ {
+ name = "semver___semver_6.3.0.tgz";
+ path = fetchurl {
+ name = "semver___semver_6.3.0.tgz";
+ url = "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz";
+ sha1 = "ee0a64c8af5e8ceea67687b133761e1becbd1d3d";
+ };
+ }
+ {
+ name = "semver___semver_5.3.0.tgz";
+ path = fetchurl {
+ name = "semver___semver_5.3.0.tgz";
+ url = "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz";
+ sha1 = "9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f";
+ };
+ }
+ {
+ name = "send___send_0.17.1.tgz";
+ path = fetchurl {
+ name = "send___send_0.17.1.tgz";
+ url = "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz";
+ sha1 = "c1d8b059f7900f7466dd4938bdc44e11ddb376c8";
+ };
+ }
+ {
+ name = "serialize_javascript___serialize_javascript_1.7.0.tgz";
+ path = fetchurl {
+ name = "serialize_javascript___serialize_javascript_1.7.0.tgz";
+ url = "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.7.0.tgz";
+ sha1 = "d6e0dfb2a3832a8c94468e6eb1db97e55a192a65";
+ };
+ }
+ {
+ name = "serve_index___serve_index_1.9.1.tgz";
+ path = fetchurl {
+ name = "serve_index___serve_index_1.9.1.tgz";
+ url = "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz";
+ sha1 = "d3768d69b1e7d82e5ce050fff5b453bea12a9239";
+ };
+ }
+ {
+ name = "serve_static___serve_static_1.14.1.tgz";
+ path = fetchurl {
+ name = "serve_static___serve_static_1.14.1.tgz";
+ url = "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz";
+ sha1 = "666e636dc4f010f7ef29970a88a674320898b2f9";
+ };
+ }
+ {
+ name = "set_blocking___set_blocking_2.0.0.tgz";
+ path = fetchurl {
+ name = "set_blocking___set_blocking_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz";
+ sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
+ };
+ }
+ {
+ name = "set_value___set_value_0.4.3.tgz";
+ path = fetchurl {
+ name = "set_value___set_value_0.4.3.tgz";
+ url = "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz";
+ sha1 = "7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1";
+ };
+ }
+ {
+ name = "set_value___set_value_2.0.0.tgz";
+ path = fetchurl {
+ name = "set_value___set_value_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz";
+ sha1 = "71ae4a88f0feefbbf52d1ea604f3fb315ebb6274";
+ };
+ }
+ {
+ name = "setimmediate___setimmediate_1.0.5.tgz";
+ path = fetchurl {
+ name = "setimmediate___setimmediate_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz";
+ sha1 = "290cbb232e306942d7d7ea9b83732ab7856f8285";
+ };
+ }
+ {
+ name = "setprototypeof___setprototypeof_1.0.3.tgz";
+ path = fetchurl {
+ name = "setprototypeof___setprototypeof_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz";
+ sha1 = "66567e37043eeb4f04d91bd658c0cbefb55b8e04";
+ };
+ }
+ {
+ name = "setprototypeof___setprototypeof_1.1.1.tgz";
+ path = fetchurl {
+ name = "setprototypeof___setprototypeof_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz";
+ sha1 = "7e95acb24aa92f5885e0abef5ba131330d4ae683";
+ };
+ }
+ {
+ name = "sha.js___sha.js_2.4.10.tgz";
+ path = fetchurl {
+ name = "sha.js___sha.js_2.4.10.tgz";
+ url = "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.10.tgz";
+ sha1 = "b1fde5cd7d11a5626638a07c604ab909cfa31f9b";
+ };
+ }
+ {
+ name = "sha1___sha1_1.1.1.tgz";
+ path = fetchurl {
+ name = "sha1___sha1_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/sha1/-/sha1-1.1.1.tgz";
+ sha1 = "addaa7a93168f393f19eb2b15091618e2700f848";
+ };
+ }
+ {
+ name = "shallow_clone___shallow_clone_3.0.1.tgz";
+ path = fetchurl {
+ name = "shallow_clone___shallow_clone_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz";
+ sha1 = "8f2981ad92531f55035b01fb230769a40e02efa3";
+ };
+ }
+ {
+ name = "shebang_command___shebang_command_1.2.0.tgz";
+ path = fetchurl {
+ name = "shebang_command___shebang_command_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz";
+ sha1 = "44aac65b695b03398968c39f363fee5deafdf1ea";
+ };
+ }
+ {
+ name = "shebang_regex___shebang_regex_1.0.0.tgz";
+ path = fetchurl {
+ name = "shebang_regex___shebang_regex_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz";
+ sha1 = "da42f49740c0b42db2ca9728571cb190c98efea3";
+ };
+ }
+ {
+ name = "shellwords___shellwords_0.1.1.tgz";
+ path = fetchurl {
+ name = "shellwords___shellwords_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz";
+ sha1 = "d6b9181c1a48d397324c84871efbcfc73fc0654b";
+ };
+ }
+ {
+ name = "sigmund___sigmund_1.0.1.tgz";
+ path = fetchurl {
+ name = "sigmund___sigmund_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz";
+ sha1 = "3ff21f198cad2175f9f3b781853fd94d0d19b590";
+ };
+ }
+ {
+ name = "signal_exit___signal_exit_3.0.2.tgz";
+ path = fetchurl {
+ name = "signal_exit___signal_exit_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz";
+ sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d";
+ };
+ }
+ {
+ name = "sisteransi___sisteransi_1.0.0.tgz";
+ path = fetchurl {
+ name = "sisteransi___sisteransi_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.0.tgz";
+ sha1 = "77d9622ff909080f1c19e5f4a1df0c1b0a27b88c";
+ };
+ }
+ {
+ name = "slash___slash_1.0.0.tgz";
+ path = fetchurl {
+ name = "slash___slash_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz";
+ sha1 = "c41f2f6c39fc16d1cd17ad4b5d896114ae470d55";
+ };
+ }
+ {
+ name = "slash___slash_2.0.0.tgz";
+ path = fetchurl {
+ name = "slash___slash_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz";
+ sha1 = "de552851a1759df3a8f206535442f5ec4ddeab44";
+ };
+ }
+ {
+ name = "slash___slash_3.0.0.tgz";
+ path = fetchurl {
+ name = "slash___slash_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz";
+ sha1 = "6539be870c165adbd5240220dbe361f1bc4d4634";
+ };
+ }
+ {
+ name = "slice_ansi___slice_ansi_2.1.0.tgz";
+ path = fetchurl {
+ name = "slice_ansi___slice_ansi_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz";
+ sha1 = "cacd7693461a637a5788d92a7dd4fba068e81636";
+ };
+ }
+ {
+ name = "slugify___slugify_1.3.1.tgz";
+ path = fetchurl {
+ name = "slugify___slugify_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/slugify/-/slugify-1.3.1.tgz";
+ sha1 = "f572127e8535329fbc6c1edb74ab856b61ad7de2";
+ };
+ }
+ {
+ name = "smooshpack___smooshpack_0.0.54.tgz";
+ path = fetchurl {
+ name = "smooshpack___smooshpack_0.0.54.tgz";
+ url = "https://registry.yarnpkg.com/smooshpack/-/smooshpack-0.0.54.tgz";
+ sha1 = "9044358b85052d348b801f385678c8a0c76f2bb6";
+ };
+ }
+ {
+ name = "snapdragon_node___snapdragon_node_2.1.1.tgz";
+ path = fetchurl {
+ name = "snapdragon_node___snapdragon_node_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz";
+ sha1 = "6c175f86ff14bdb0724563e8f3c1b021a286853b";
+ };
+ }
+ {
+ name = "snapdragon_util___snapdragon_util_3.0.1.tgz";
+ path = fetchurl {
+ name = "snapdragon_util___snapdragon_util_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz";
+ sha1 = "f956479486f2acd79700693f6f7b805e45ab56e2";
+ };
+ }
+ {
+ name = "snapdragon___snapdragon_0.8.2.tgz";
+ path = fetchurl {
+ name = "snapdragon___snapdragon_0.8.2.tgz";
+ url = "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz";
+ sha1 = "64922e7c565b0e14204ba1aa7d6964278d25182d";
+ };
+ }
+ {
+ name = "socket.io_adapter___socket.io_adapter_1.1.1.tgz";
+ path = fetchurl {
+ name = "socket.io_adapter___socket.io_adapter_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz";
+ sha1 = "2a805e8a14d6372124dd9159ad4502f8cb07f06b";
+ };
+ }
+ {
+ name = "socket.io_client___socket.io_client_2.1.1.tgz";
+ path = fetchurl {
+ name = "socket.io_client___socket.io_client_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.1.1.tgz";
+ sha1 = "dcb38103436ab4578ddb026638ae2f21b623671f";
+ };
+ }
+ {
+ name = "socket.io_parser___socket.io_parser_3.2.0.tgz";
+ path = fetchurl {
+ name = "socket.io_parser___socket.io_parser_3.2.0.tgz";
+ url = "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.2.0.tgz";
+ sha1 = "e7c6228b6aa1f814e6148aea325b51aa9499e077";
+ };
+ }
+ {
+ name = "socket.io___socket.io_2.1.1.tgz";
+ path = fetchurl {
+ name = "socket.io___socket.io_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/socket.io/-/socket.io-2.1.1.tgz";
+ sha1 = "a069c5feabee3e6b214a75b40ce0652e1cfb9980";
+ };
+ }
+ {
+ name = "sockjs_client___sockjs_client_1.4.0.tgz";
+ path = fetchurl {
+ name = "sockjs_client___sockjs_client_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz";
+ sha1 = "c9f2568e19c8fd8173b4997ea3420e0bb306c7d5";
+ };
+ }
+ {
+ name = "sockjs___sockjs_0.3.19.tgz";
+ path = fetchurl {
+ name = "sockjs___sockjs_0.3.19.tgz";
+ url = "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz";
+ sha1 = "d976bbe800af7bd20ae08598d582393508993c0d";
+ };
+ }
+ {
+ name = "sort_keys___sort_keys_1.1.2.tgz";
+ path = fetchurl {
+ name = "sort_keys___sort_keys_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz";
+ sha1 = "441b6d4d346798f1b4e49e8920adfba0e543f9ad";
+ };
+ }
+ {
+ name = "sortablejs___sortablejs_1.10.0.tgz";
+ path = fetchurl {
+ name = "sortablejs___sortablejs_1.10.0.tgz";
+ url = "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.10.0.tgz";
+ sha1 = "0ebc054acff2486569194a2f975b2b145dd5e7d6";
+ };
+ }
+ {
+ name = "source_list_map___source_list_map_2.0.0.tgz";
+ path = fetchurl {
+ name = "source_list_map___source_list_map_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz";
+ sha1 = "aaa47403f7b245a92fbc97ea08f250d6087ed085";
+ };
+ }
+ {
+ name = "source_map_resolve___source_map_resolve_0.5.2.tgz";
+ path = fetchurl {
+ name = "source_map_resolve___source_map_resolve_0.5.2.tgz";
+ url = "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz";
+ sha1 = "72e2cc34095543e43b2c62b2c4c10d4a9054f259";
+ };
+ }
+ {
+ name = "source_map_support___source_map_support_0.5.13.tgz";
+ path = fetchurl {
+ name = "source_map_support___source_map_support_0.5.13.tgz";
+ url = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz";
+ sha1 = "31b24a9c2e73c2de85066c0feb7d44767ed52932";
+ };
+ }
+ {
+ name = "source_map_url___source_map_url_0.4.0.tgz";
+ path = fetchurl {
+ name = "source_map_url___source_map_url_0.4.0.tgz";
+ url = "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz";
+ sha1 = "3e935d7ddd73631b97659956d55128e87b5084a3";
+ };
+ }
+ {
+ name = "source_map___source_map_0.5.0.tgz";
+ path = fetchurl {
+ name = "source_map___source_map_0.5.0.tgz";
+ url = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.0.tgz";
+ sha1 = "0fe96503ac86a5adb5de63f4e412ae4872cdbe86";
+ };
+ }
+ {
+ name = "source_map___source_map_0.4.4.tgz";
+ path = fetchurl {
+ name = "source_map___source_map_0.4.4.tgz";
+ url = "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz";
+ sha1 = "eba4f5da9c0dc999de68032d8b4f76173652036b";
+ };
+ }
+ {
+ name = "source_map___source_map_0.5.7.tgz";
+ path = fetchurl {
+ name = "source_map___source_map_0.5.7.tgz";
+ url = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz";
+ sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
+ };
+ }
+ {
+ name = "source_map___source_map_0.6.1.tgz";
+ path = fetchurl {
+ name = "source_map___source_map_0.6.1.tgz";
+ url = "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz";
+ sha1 = "74722af32e9614e9c287a8d0bbde48b5e2f1a263";
+ };
+ }
+ {
+ name = "source_map___source_map_0.7.3.tgz";
+ path = fetchurl {
+ name = "source_map___source_map_0.7.3.tgz";
+ url = "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz";
+ sha1 = "5302f8169031735226544092e64981f751750383";
+ };
+ }
+ {
+ name = "space_separated_tokens___space_separated_tokens_1.1.4.tgz";
+ path = fetchurl {
+ name = "space_separated_tokens___space_separated_tokens_1.1.4.tgz";
+ url = "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.4.tgz";
+ sha1 = "27910835ae00d0adfcdbd0ad7e611fb9544351fa";
+ };
+ }
+ {
+ name = "spdx_correct___spdx_correct_1.0.2.tgz";
+ path = fetchurl {
+ name = "spdx_correct___spdx_correct_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz";
+ sha1 = "4b3073d933ff51f3912f03ac5519498a4150db40";
+ };
+ }
+ {
+ name = "spdx_expression_parse___spdx_expression_parse_1.0.4.tgz";
+ path = fetchurl {
+ name = "spdx_expression_parse___spdx_expression_parse_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz";
+ sha1 = "9bdf2f20e1f40ed447fbe273266191fced51626c";
+ };
+ }
+ {
+ name = "spdx_license_ids___spdx_license_ids_1.2.2.tgz";
+ path = fetchurl {
+ name = "spdx_license_ids___spdx_license_ids_1.2.2.tgz";
+ url = "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz";
+ sha1 = "c9df7a3424594ade6bd11900d596696dc06bac57";
+ };
+ }
+ {
+ name = "spdy_transport___spdy_transport_3.0.0.tgz";
+ path = fetchurl {
+ name = "spdy_transport___spdy_transport_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz";
+ sha1 = "00d4863a6400ad75df93361a1608605e5dcdcf31";
+ };
+ }
+ {
+ name = "spdy___spdy_4.0.1.tgz";
+ path = fetchurl {
+ name = "spdy___spdy_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/spdy/-/spdy-4.0.1.tgz";
+ sha1 = "6f12ed1c5db7ea4f24ebb8b89ba58c87c08257f2";
+ };
+ }
+ {
+ name = "specificity___specificity_0.4.1.tgz";
+ path = fetchurl {
+ name = "specificity___specificity_0.4.1.tgz";
+ url = "https://registry.yarnpkg.com/specificity/-/specificity-0.4.1.tgz";
+ sha1 = "aab5e645012db08ba182e151165738d00887b019";
+ };
+ }
+ {
+ name = "split_string___split_string_3.1.0.tgz";
+ path = fetchurl {
+ name = "split_string___split_string_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz";
+ sha1 = "7cb09dda3a86585705c64b39a6466038682e8fe2";
+ };
+ }
+ {
+ name = "sprintf_js___sprintf_js_1.0.3.tgz";
+ path = fetchurl {
+ name = "sprintf_js___sprintf_js_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz";
+ sha1 = "04e6926f662895354f3dd015203633b857297e2c";
+ };
+ }
+ {
+ name = "sql.js___sql.js_0.4.0.tgz";
+ path = fetchurl {
+ name = "sql.js___sql.js_0.4.0.tgz";
+ url = "https://registry.yarnpkg.com/sql.js/-/sql.js-0.4.0.tgz";
+ sha1 = "23be9635520eb0ff43a741e7e830397266e88445";
+ };
+ }
+ {
+ name = "srcset___srcset_1.0.0.tgz";
+ path = fetchurl {
+ name = "srcset___srcset_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/srcset/-/srcset-1.0.0.tgz";
+ sha1 = "a5669de12b42f3b1d5e83ed03c71046fc48f41ef";
+ };
+ }
+ {
+ name = "sshpk___sshpk_1.15.2.tgz";
+ path = fetchurl {
+ name = "sshpk___sshpk_1.15.2.tgz";
+ url = "https://registry.yarnpkg.com/sshpk/-/sshpk-1.15.2.tgz";
+ sha1 = "c946d6bd9b1a39d0e8635763f5242d6ed6dcb629";
+ };
+ }
+ {
+ name = "ssri___ssri_6.0.1.tgz";
+ path = fetchurl {
+ name = "ssri___ssri_6.0.1.tgz";
+ url = "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz";
+ sha1 = "2a3c41b28dd45b62b63676ecb74001265ae9edd8";
+ };
+ }
+ {
+ name = "stack_utils___stack_utils_1.0.2.tgz";
+ path = fetchurl {
+ name = "stack_utils___stack_utils_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz";
+ sha1 = "33eba3897788558bebfc2db059dc158ec36cebb8";
+ };
+ }
+ {
+ name = "state_toggle___state_toggle_1.0.1.tgz";
+ path = fetchurl {
+ name = "state_toggle___state_toggle_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.1.tgz";
+ sha1 = "c3cb0974f40a6a0f8e905b96789eb41afa1cde3a";
+ };
+ }
+ {
+ name = "static_extend___static_extend_0.1.2.tgz";
+ path = fetchurl {
+ name = "static_extend___static_extend_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz";
+ sha1 = "60809c39cbff55337226fd5e0b520f341f1fb5c6";
+ };
+ }
+ {
+ name = "statuses___statuses_1.5.0.tgz";
+ path = fetchurl {
+ name = "statuses___statuses_1.5.0.tgz";
+ url = "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz";
+ sha1 = "161c7dac177659fd9811f43771fa99381478628c";
+ };
+ }
+ {
+ name = "statuses___statuses_1.3.1.tgz";
+ path = fetchurl {
+ name = "statuses___statuses_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz";
+ sha1 = "faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e";
+ };
+ }
+ {
+ name = "stdout_stream___stdout_stream_1.4.1.tgz";
+ path = fetchurl {
+ name = "stdout_stream___stdout_stream_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.1.tgz";
+ sha1 = "5ac174cdd5cd726104aa0c0b2bd83815d8d535de";
+ };
+ }
+ {
+ name = "stealthy_require___stealthy_require_1.1.1.tgz";
+ path = fetchurl {
+ name = "stealthy_require___stealthy_require_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz";
+ sha1 = "35b09875b4ff49f26a777e509b3090a3226bf24b";
+ };
+ }
+ {
+ name = "stickyfilljs___stickyfilljs_2.0.5.tgz";
+ path = fetchurl {
+ name = "stickyfilljs___stickyfilljs_2.0.5.tgz";
+ url = "https://registry.yarnpkg.com/stickyfilljs/-/stickyfilljs-2.0.5.tgz";
+ sha1 = "d229e372d2199ddf5d283bbe34ac1f7d2529c2fc";
+ };
+ }
+ {
+ name = "stream_array___stream_array_1.1.2.tgz";
+ path = fetchurl {
+ name = "stream_array___stream_array_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/stream-array/-/stream-array-1.1.2.tgz";
+ sha1 = "9e5f7345f2137c30ee3b498b9114e80b52bb7eb5";
+ };
+ }
+ {
+ name = "stream_browserify___stream_browserify_2.0.1.tgz";
+ path = fetchurl {
+ name = "stream_browserify___stream_browserify_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz";
+ sha1 = "66266ee5f9bdb9940a4e4514cafb43bb71e5c9db";
+ };
+ }
+ {
+ name = "stream_combiner2___stream_combiner2_1.1.1.tgz";
+ path = fetchurl {
+ name = "stream_combiner2___stream_combiner2_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz";
+ sha1 = "fb4d8a1420ea362764e21ad4780397bebcb41cbe";
+ };
+ }
+ {
+ name = "stream_each___stream_each_1.2.2.tgz";
+ path = fetchurl {
+ name = "stream_each___stream_each_1.2.2.tgz";
+ url = "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.2.tgz";
+ sha1 = "8e8c463f91da8991778765873fe4d960d8f616bd";
+ };
+ }
+ {
+ name = "stream_http___stream_http_2.8.2.tgz";
+ path = fetchurl {
+ name = "stream_http___stream_http_2.8.2.tgz";
+ url = "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.2.tgz";
+ sha1 = "4126e8c6b107004465918aa2fc35549e77402c87";
+ };
+ }
+ {
+ name = "stream_shift___stream_shift_1.0.0.tgz";
+ path = fetchurl {
+ name = "stream_shift___stream_shift_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz";
+ sha1 = "d5c752825e5367e786f78e18e445ea223a155952";
+ };
+ }
+ {
+ name = "streamroller___streamroller_1.0.6.tgz";
+ path = fetchurl {
+ name = "streamroller___streamroller_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/streamroller/-/streamroller-1.0.6.tgz";
+ sha1 = "8167d8496ed9f19f05ee4b158d9611321b8cacd9";
+ };
+ }
+ {
+ name = "strict_uri_encode___strict_uri_encode_1.1.0.tgz";
+ path = fetchurl {
+ name = "strict_uri_encode___strict_uri_encode_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz";
+ sha1 = "279b225df1d582b1f54e65addd4352e18faa0713";
+ };
+ }
+ {
+ name = "string_length___string_length_2.0.0.tgz";
+ path = fetchurl {
+ name = "string_length___string_length_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz";
+ sha1 = "d40dbb686a3ace960c1cffca562bf2c45f8363ed";
+ };
+ }
+ {
+ name = "string_template___string_template_0.2.1.tgz";
+ path = fetchurl {
+ name = "string_template___string_template_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz";
+ sha1 = "42932e598a352d01fc22ec3367d9d84eec6c9add";
+ };
+ }
+ {
+ name = "string_width___string_width_1.0.2.tgz";
+ path = fetchurl {
+ name = "string_width___string_width_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz";
+ sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3";
+ };
+ }
+ {
+ name = "string_width___string_width_2.1.1.tgz";
+ path = fetchurl {
+ name = "string_width___string_width_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz";
+ sha1 = "ab93f27a8dc13d28cac815c462143a6d9012ae9e";
+ };
+ }
+ {
+ name = "string_width___string_width_3.1.0.tgz";
+ path = fetchurl {
+ name = "string_width___string_width_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz";
+ sha1 = "22767be21b62af1081574306f69ac51b62203961";
+ };
+ }
+ {
+ name = "string_width___string_width_4.1.0.tgz";
+ path = fetchurl {
+ name = "string_width___string_width_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/string-width/-/string-width-4.1.0.tgz";
+ sha1 = "ba846d1daa97c3c596155308063e075ed1c99aff";
+ };
+ }
+ {
+ name = "string_decoder___string_decoder_0.10.31.tgz";
+ path = fetchurl {
+ name = "string_decoder___string_decoder_0.10.31.tgz";
+ url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz";
+ sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94";
+ };
+ }
+ {
+ name = "string_decoder___string_decoder_1.1.1.tgz";
+ path = fetchurl {
+ name = "string_decoder___string_decoder_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz";
+ sha1 = "9cf1611ba62685d7030ae9e4ba34149c3af03fc8";
+ };
+ }
+ {
+ name = "stringify_entities___stringify_entities_1.3.2.tgz";
+ path = fetchurl {
+ name = "stringify_entities___stringify_entities_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-1.3.2.tgz";
+ sha1 = "a98417e5471fd227b3e45d3db1861c11caf668f7";
+ };
+ }
+ {
+ name = "strip_ansi___strip_ansi_3.0.1.tgz";
+ path = fetchurl {
+ name = "strip_ansi___strip_ansi_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz";
+ sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
+ };
+ }
+ {
+ name = "strip_ansi___strip_ansi_4.0.0.tgz";
+ path = fetchurl {
+ name = "strip_ansi___strip_ansi_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz";
+ sha1 = "a8479022eb1ac368a871389b635262c505ee368f";
+ };
+ }
+ {
+ name = "strip_ansi___strip_ansi_5.2.0.tgz";
+ path = fetchurl {
+ name = "strip_ansi___strip_ansi_5.2.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz";
+ sha1 = "8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae";
+ };
+ }
+ {
+ name = "strip_bom___strip_bom_2.0.0.tgz";
+ path = fetchurl {
+ name = "strip_bom___strip_bom_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz";
+ sha1 = "6219a85616520491f35788bdbf1447a99c7e6b0e";
+ };
+ }
+ {
+ name = "strip_bom___strip_bom_3.0.0.tgz";
+ path = fetchurl {
+ name = "strip_bom___strip_bom_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz";
+ sha1 = "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3";
+ };
+ }
+ {
+ name = "strip_css_comments___strip_css_comments_3.0.0.tgz";
+ path = fetchurl {
+ name = "strip_css_comments___strip_css_comments_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-css-comments/-/strip-css-comments-3.0.0.tgz";
+ sha1 = "7a5625eff8a2b226cf8947a11254da96e13dae89";
+ };
+ }
+ {
+ name = "strip_eof___strip_eof_1.0.0.tgz";
+ path = fetchurl {
+ name = "strip_eof___strip_eof_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz";
+ sha1 = "bb43ff5598a6eb05d89b59fcd129c983313606bf";
+ };
+ }
+ {
+ name = "strip_indent___strip_indent_1.0.1.tgz";
+ path = fetchurl {
+ name = "strip_indent___strip_indent_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz";
+ sha1 = "0c7962a6adefa7bbd4ac366460a638552ae1a0a2";
+ };
+ }
+ {
+ name = "strip_indent___strip_indent_2.0.0.tgz";
+ path = fetchurl {
+ name = "strip_indent___strip_indent_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz";
+ sha1 = "5ef8db295d01e6ed6cbf7aab96998d7822527b68";
+ };
+ }
+ {
+ name = "strip_json_comments___strip_json_comments_2.0.1.tgz";
+ path = fetchurl {
+ name = "strip_json_comments___strip_json_comments_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz";
+ sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
+ };
+ }
+ {
+ name = "style_loader___style_loader_1.0.0.tgz";
+ path = fetchurl {
+ name = "style_loader___style_loader_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/style-loader/-/style-loader-1.0.0.tgz";
+ sha1 = "1d5296f9165e8e2c85d24eee0b7caf9ec8ca1f82";
+ };
+ }
+ {
+ name = "style_search___style_search_0.1.0.tgz";
+ path = fetchurl {
+ name = "style_search___style_search_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz";
+ sha1 = "7958c793e47e32e07d2b5cafe5c0bf8e12e77902";
+ };
+ }
+ {
+ name = "stylelint_config_recommended___stylelint_config_recommended_2.2.0.tgz";
+ path = fetchurl {
+ name = "stylelint_config_recommended___stylelint_config_recommended_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-2.2.0.tgz";
+ sha1 = "46ab139db4a0e7151fd5f94af155512886c96d3f";
+ };
+ }
+ {
+ name = "stylelint_scss___stylelint_scss_3.9.2.tgz";
+ path = fetchurl {
+ name = "stylelint_scss___stylelint_scss_3.9.2.tgz";
+ url = "https://registry.yarnpkg.com/stylelint-scss/-/stylelint-scss-3.9.2.tgz";
+ sha1 = "5435174a57696ee52eae40146778a4e62f7ed3a3";
+ };
+ }
+ {
+ name = "stylelint___stylelint_10.1.0.tgz";
+ path = fetchurl {
+ name = "stylelint___stylelint_10.1.0.tgz";
+ url = "https://registry.yarnpkg.com/stylelint/-/stylelint-10.1.0.tgz";
+ sha1 = "1bc4c4ce878107e7c396b19226d91ba28268911a";
+ };
+ }
+ {
+ name = "subarg___subarg_1.0.0.tgz";
+ path = fetchurl {
+ name = "subarg___subarg_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz";
+ sha1 = "f62cf17581e996b48fc965699f54c06ae268b8d2";
+ };
+ }
+ {
+ name = "sugarss___sugarss_2.0.0.tgz";
+ path = fetchurl {
+ name = "sugarss___sugarss_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/sugarss/-/sugarss-2.0.0.tgz";
+ sha1 = "ddd76e0124b297d40bf3cca31c8b22ecb43bc61d";
+ };
+ }
+ {
+ name = "supports_color___supports_color_6.1.0.tgz";
+ path = fetchurl {
+ name = "supports_color___supports_color_6.1.0.tgz";
+ url = "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz";
+ sha1 = "0764abc69c63d5ac842dd4867e8d025e880df8f3";
+ };
+ }
+ {
+ name = "supports_color___supports_color_2.0.0.tgz";
+ path = fetchurl {
+ name = "supports_color___supports_color_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz";
+ sha1 = "535d045ce6b6363fa40117084629995e9df324c7";
+ };
+ }
+ {
+ name = "supports_color___supports_color_5.5.0.tgz";
+ path = fetchurl {
+ name = "supports_color___supports_color_5.5.0.tgz";
+ url = "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz";
+ sha1 = "e2e69a44ac8772f78a1ec0b35b689df6530efc8f";
+ };
+ }
+ {
+ name = "svg_tags___svg_tags_1.0.0.tgz";
+ path = fetchurl {
+ name = "svg_tags___svg_tags_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz";
+ sha1 = "58f71cee3bd519b59d4b2a843b6c7de64ac04764";
+ };
+ }
+ {
+ name = "svg4everybody___svg4everybody_2.1.9.tgz";
+ path = fetchurl {
+ name = "svg4everybody___svg4everybody_2.1.9.tgz";
+ url = "https://registry.yarnpkg.com/svg4everybody/-/svg4everybody-2.1.9.tgz";
+ sha1 = "5bd9f6defc133859a044646d4743fabc28db7e2d";
+ };
+ }
+ {
+ name = "symbol_observable___symbol_observable_1.2.0.tgz";
+ path = fetchurl {
+ name = "symbol_observable___symbol_observable_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz";
+ sha1 = "c22688aed4eab3cdc2dfeacbb561660560a00804";
+ };
+ }
+ {
+ name = "symbol_tree___symbol_tree_3.2.2.tgz";
+ path = fetchurl {
+ name = "symbol_tree___symbol_tree_3.2.2.tgz";
+ url = "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz";
+ sha1 = "ae27db38f660a7ae2e1c3b7d1bc290819b8519e6";
+ };
+ }
+ {
+ name = "table___table_5.4.4.tgz";
+ path = fetchurl {
+ name = "table___table_5.4.4.tgz";
+ url = "https://registry.yarnpkg.com/table/-/table-5.4.4.tgz";
+ sha1 = "6e0f88fdae3692793d1077fd172a4667afe986a6";
+ };
+ }
+ {
+ name = "taffydb___taffydb_2.6.2.tgz";
+ path = fetchurl {
+ name = "taffydb___taffydb_2.6.2.tgz";
+ url = "https://registry.yarnpkg.com/taffydb/-/taffydb-2.6.2.tgz";
+ sha1 = "7cbcb64b5a141b6a2efc2c5d2c67b4e150b2a268";
+ };
+ }
+ {
+ name = "tapable___tapable_0.1.10.tgz";
+ path = fetchurl {
+ name = "tapable___tapable_0.1.10.tgz";
+ url = "https://registry.yarnpkg.com/tapable/-/tapable-0.1.10.tgz";
+ sha1 = "29c35707c2b70e50d07482b5d202e8ed446dafd4";
+ };
+ }
+ {
+ name = "tapable___tapable_1.1.3.tgz";
+ path = fetchurl {
+ name = "tapable___tapable_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz";
+ sha1 = "a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2";
+ };
+ }
+ {
+ name = "tar___tar_2.2.2.tgz";
+ path = fetchurl {
+ name = "tar___tar_2.2.2.tgz";
+ url = "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz";
+ sha1 = "0ca8848562c7299b8b446ff6a4d60cdbb23edc40";
+ };
+ }
+ {
+ name = "tar___tar_4.4.8.tgz";
+ path = fetchurl {
+ name = "tar___tar_4.4.8.tgz";
+ url = "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz";
+ sha1 = "b19eec3fde2a96e64666df9fdb40c5ca1bc3747d";
+ };
+ }
+ {
+ name = "term_size___term_size_1.2.0.tgz";
+ path = fetchurl {
+ name = "term_size___term_size_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz";
+ sha1 = "458b83887f288fc56d6fffbfad262e26638efa69";
+ };
+ }
+ {
+ name = "terser_webpack_plugin___terser_webpack_plugin_1.4.1.tgz";
+ path = fetchurl {
+ name = "terser_webpack_plugin___terser_webpack_plugin_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz";
+ sha1 = "61b18e40eaee5be97e771cdbb10ed1280888c2b4";
+ };
+ }
+ {
+ name = "terser___terser_4.3.1.tgz";
+ path = fetchurl {
+ name = "terser___terser_4.3.1.tgz";
+ url = "https://registry.yarnpkg.com/terser/-/terser-4.3.1.tgz";
+ sha1 = "09820bcb3398299c4b48d9a86aefc65127d0ed65";
+ };
+ }
+ {
+ name = "test_exclude___test_exclude_5.0.0.tgz";
+ path = fetchurl {
+ name = "test_exclude___test_exclude_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.0.0.tgz";
+ sha1 = "cdce7cece785e0e829cd5c2b27baf18bc583cfb7";
+ };
+ }
+ {
+ name = "text_table___text_table_0.2.0.tgz";
+ path = fetchurl {
+ name = "text_table___text_table_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz";
+ sha1 = "7f5ee823ae805207c00af2df4a84ec3fcfa570b4";
+ };
+ }
+ {
+ name = "textextensions___textextensions_2.2.0.tgz";
+ path = fetchurl {
+ name = "textextensions___textextensions_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/textextensions/-/textextensions-2.2.0.tgz";
+ sha1 = "38ac676151285b658654581987a0ce1a4490d286";
+ };
+ }
+ {
+ name = "three_orbit_controls___three_orbit_controls_82.1.0.tgz";
+ path = fetchurl {
+ name = "three_orbit_controls___three_orbit_controls_82.1.0.tgz";
+ url = "https://registry.yarnpkg.com/three-orbit-controls/-/three-orbit-controls-82.1.0.tgz";
+ sha1 = "11a7f33d0a20ecec98f098b37780f6537374fab4";
+ };
+ }
+ {
+ name = "three_stl_loader___three_stl_loader_1.0.4.tgz";
+ path = fetchurl {
+ name = "three_stl_loader___three_stl_loader_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/three-stl-loader/-/three-stl-loader-1.0.4.tgz";
+ sha1 = "6b3319a31e3b910aab1883d19b00c81a663c3e03";
+ };
+ }
+ {
+ name = "three___three_0.84.0.tgz";
+ path = fetchurl {
+ name = "three___three_0.84.0.tgz";
+ url = "https://registry.yarnpkg.com/three/-/three-0.84.0.tgz";
+ sha1 = "95be85a55a0fa002aa625ed559130957dcffd918";
+ };
+ }
+ {
+ name = "throat___throat_4.1.0.tgz";
+ path = fetchurl {
+ name = "throat___throat_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz";
+ sha1 = "89037cbc92c56ab18926e6ba4cbb200e15672a6a";
+ };
+ }
+ {
+ name = "throttle_debounce___throttle_debounce_2.0.1.tgz";
+ path = fetchurl {
+ name = "throttle_debounce___throttle_debounce_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-2.0.1.tgz";
+ sha1 = "7307ddd6cd9acadb349132fbf6c18d78c88a5e62";
+ };
+ }
+ {
+ name = "through2_filter___through2_filter_3.0.0.tgz";
+ path = fetchurl {
+ name = "through2_filter___through2_filter_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/through2-filter/-/through2-filter-3.0.0.tgz";
+ sha1 = "700e786df2367c2c88cd8aa5be4cf9c1e7831254";
+ };
+ }
+ {
+ name = "through2___through2_2.0.5.tgz";
+ path = fetchurl {
+ name = "through2___through2_2.0.5.tgz";
+ url = "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz";
+ sha1 = "01c1e39eb31d07cb7d03a96a70823260b23132cd";
+ };
+ }
+ {
+ name = "through___through_2.3.8.tgz";
+ path = fetchurl {
+ name = "through___through_2.3.8.tgz";
+ url = "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz";
+ sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
+ };
+ }
+ {
+ name = "thunky___thunky_0.1.0.tgz";
+ path = fetchurl {
+ name = "thunky___thunky_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/thunky/-/thunky-0.1.0.tgz";
+ sha1 = "bf30146824e2b6e67b0f2d7a4ac8beb26908684e";
+ };
+ }
+ {
+ name = "timeago.js___timeago.js_3.0.2.tgz";
+ path = fetchurl {
+ name = "timeago.js___timeago.js_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/timeago.js/-/timeago.js-3.0.2.tgz";
+ sha1 = "32a67e7c0d887ea42ca588d3aae26f77de5e76cc";
+ };
+ }
+ {
+ name = "timed_out___timed_out_4.0.1.tgz";
+ path = fetchurl {
+ name = "timed_out___timed_out_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz";
+ sha1 = "f32eacac5a175bea25d7fab565ab3ed8741ef56f";
+ };
+ }
+ {
+ name = "timers_browserify___timers_browserify_2.0.10.tgz";
+ path = fetchurl {
+ name = "timers_browserify___timers_browserify_2.0.10.tgz";
+ url = "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz";
+ sha1 = "1d28e3d2aadf1d5a5996c4e9f95601cd053480ae";
+ };
+ }
+ {
+ name = "timezone_mock___timezone_mock_1.0.8.tgz";
+ path = fetchurl {
+ name = "timezone_mock___timezone_mock_1.0.8.tgz";
+ url = "https://registry.yarnpkg.com/timezone-mock/-/timezone-mock-1.0.8.tgz";
+ sha1 = "1b9f7af13f2bf84b7aa3d3d6e24aa17255b6037d";
+ };
+ }
+ {
+ name = "tiny_emitter___tiny_emitter_2.0.2.tgz";
+ path = fetchurl {
+ name = "tiny_emitter___tiny_emitter_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.0.2.tgz";
+ sha1 = "82d27468aca5ade8e5fd1e6d22b57dd43ebdfb7c";
+ };
+ }
+ {
+ name = "tiny_lr___tiny_lr_1.1.1.tgz";
+ path = fetchurl {
+ name = "tiny_lr___tiny_lr_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/tiny-lr/-/tiny-lr-1.1.1.tgz";
+ sha1 = "9fa547412f238fedb068ee295af8b682c98b2aab";
+ };
+ }
+ {
+ name = "tiptap_commands___tiptap_commands_1.4.0.tgz";
+ path = fetchurl {
+ name = "tiptap_commands___tiptap_commands_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/tiptap-commands/-/tiptap-commands-1.4.0.tgz";
+ sha1 = "0cfb3ac138ee3099de56114cb119abd841fbcbe7";
+ };
+ }
+ {
+ name = "tiptap_extensions___tiptap_extensions_1.8.0.tgz";
+ path = fetchurl {
+ name = "tiptap_extensions___tiptap_extensions_1.8.0.tgz";
+ url = "https://registry.yarnpkg.com/tiptap-extensions/-/tiptap-extensions-1.8.0.tgz";
+ sha1 = "3067620a024f1a9e5fae4450790b143d7ebe4394";
+ };
+ }
+ {
+ name = "tiptap_utils___tiptap_utils_1.1.1.tgz";
+ path = fetchurl {
+ name = "tiptap_utils___tiptap_utils_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/tiptap-utils/-/tiptap-utils-1.1.1.tgz";
+ sha1 = "e7aad3e84eb35f7abed704d15da0420029789d0d";
+ };
+ }
+ {
+ name = "tiptap___tiptap_1.8.0.tgz";
+ path = fetchurl {
+ name = "tiptap___tiptap_1.8.0.tgz";
+ url = "https://registry.yarnpkg.com/tiptap/-/tiptap-1.8.0.tgz";
+ sha1 = "c671188075ffa5ee4f86470f95818fd9ce6f1040";
+ };
+ }
+ {
+ name = "tmp___tmp_0.0.33.tgz";
+ path = fetchurl {
+ name = "tmp___tmp_0.0.33.tgz";
+ url = "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz";
+ sha1 = "6d34335889768d21b2bcda0aa277ced3b1bfadf9";
+ };
+ }
+ {
+ name = "tmpl___tmpl_1.0.4.tgz";
+ path = fetchurl {
+ name = "tmpl___tmpl_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz";
+ sha1 = "23640dd7b42d00433911140820e5cf440e521dd1";
+ };
+ }
+ {
+ name = "to_absolute_glob___to_absolute_glob_2.0.2.tgz";
+ path = fetchurl {
+ name = "to_absolute_glob___to_absolute_glob_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz";
+ sha1 = "1865f43d9e74b0822db9f145b78cff7d0f7c849b";
+ };
+ }
+ {
+ name = "to_array___to_array_0.1.4.tgz";
+ path = fetchurl {
+ name = "to_array___to_array_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz";
+ sha1 = "17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890";
+ };
+ }
+ {
+ name = "to_arraybuffer___to_arraybuffer_1.0.1.tgz";
+ path = fetchurl {
+ name = "to_arraybuffer___to_arraybuffer_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz";
+ sha1 = "7d229b1fcc637e466ca081180836a7aabff83f43";
+ };
+ }
+ {
+ name = "to_fast_properties___to_fast_properties_2.0.0.tgz";
+ path = fetchurl {
+ name = "to_fast_properties___to_fast_properties_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz";
+ sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e";
+ };
+ }
+ {
+ name = "to_object_path___to_object_path_0.3.0.tgz";
+ path = fetchurl {
+ name = "to_object_path___to_object_path_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz";
+ sha1 = "297588b7b0e7e0ac08e04e672f85c1f4999e17af";
+ };
+ }
+ {
+ name = "to_regex_range___to_regex_range_2.1.1.tgz";
+ path = fetchurl {
+ name = "to_regex_range___to_regex_range_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz";
+ sha1 = "7c80c17b9dfebe599e27367e0d4dd5590141db38";
+ };
+ }
+ {
+ name = "to_regex_range___to_regex_range_5.0.1.tgz";
+ path = fetchurl {
+ name = "to_regex_range___to_regex_range_5.0.1.tgz";
+ url = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz";
+ sha1 = "1648c44aae7c8d988a326018ed72f5b4dd0392e4";
+ };
+ }
+ {
+ name = "to_regex___to_regex_3.0.2.tgz";
+ path = fetchurl {
+ name = "to_regex___to_regex_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz";
+ sha1 = "13cfdd9b336552f30b51f33a8ae1b42a7a7599ce";
+ };
+ }
+ {
+ name = "to_through___to_through_2.0.0.tgz";
+ path = fetchurl {
+ name = "to_through___to_through_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/to-through/-/to-through-2.0.0.tgz";
+ sha1 = "fc92adaba072647bc0b67d6b03664aa195093af6";
+ };
+ }
+ {
+ name = "toggle_selection___toggle_selection_1.0.6.tgz";
+ path = fetchurl {
+ name = "toggle_selection___toggle_selection_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz";
+ sha1 = "6e45b1263f2017fa0acc7d89d78b15b8bf77da32";
+ };
+ }
+ {
+ name = "toidentifier___toidentifier_1.0.0.tgz";
+ path = fetchurl {
+ name = "toidentifier___toidentifier_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz";
+ sha1 = "7e1be3470f1e77948bc43d94a3c8f4d7752ba553";
+ };
+ }
+ {
+ name = "touch___touch_3.1.0.tgz";
+ path = fetchurl {
+ name = "touch___touch_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz";
+ sha1 = "fe365f5f75ec9ed4e56825e0bb76d24ab74af83b";
+ };
+ }
+ {
+ name = "tough_cookie___tough_cookie_2.4.3.tgz";
+ path = fetchurl {
+ name = "tough_cookie___tough_cookie_2.4.3.tgz";
+ url = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz";
+ sha1 = "53f36da3f47783b0925afa06ff9f3b165280f781";
+ };
+ }
+ {
+ name = "tr46___tr46_1.0.1.tgz";
+ path = fetchurl {
+ name = "tr46___tr46_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz";
+ sha1 = "a8b13fd6bfd2489519674ccde55ba3693b706d09";
+ };
+ }
+ {
+ name = "trim_lines___trim_lines_1.1.2.tgz";
+ path = fetchurl {
+ name = "trim_lines___trim_lines_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/trim-lines/-/trim-lines-1.1.2.tgz";
+ sha1 = "c8adbdbdae21bb5c2766240a661f693afe23e59b";
+ };
+ }
+ {
+ name = "trim_newlines___trim_newlines_1.0.0.tgz";
+ path = fetchurl {
+ name = "trim_newlines___trim_newlines_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz";
+ sha1 = "5887966bb582a4503a41eb524f7d35011815a613";
+ };
+ }
+ {
+ name = "trim_newlines___trim_newlines_2.0.0.tgz";
+ path = fetchurl {
+ name = "trim_newlines___trim_newlines_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz";
+ sha1 = "b403d0b91be50c331dfc4b82eeceb22c3de16d20";
+ };
+ }
+ {
+ name = "trim_trailing_lines___trim_trailing_lines_1.1.1.tgz";
+ path = fetchurl {
+ name = "trim_trailing_lines___trim_trailing_lines_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.1.tgz";
+ sha1 = "e0ec0810fd3c3f1730516b45f49083caaf2774d9";
+ };
+ }
+ {
+ name = "trim___trim_0.0.1.tgz";
+ path = fetchurl {
+ name = "trim___trim_0.0.1.tgz";
+ url = "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz";
+ sha1 = "5858547f6b290757ee95cccc666fb50084c460dd";
+ };
+ }
+ {
+ name = "trough___trough_1.0.3.tgz";
+ path = fetchurl {
+ name = "trough___trough_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/trough/-/trough-1.0.3.tgz";
+ sha1 = "e29bd1614c6458d44869fc28b255ab7857ef7c24";
+ };
+ }
+ {
+ name = "true_case_path___true_case_path_1.0.3.tgz";
+ path = fetchurl {
+ name = "true_case_path___true_case_path_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz";
+ sha1 = "f813b5a8c86b40da59606722b144e3225799f47d";
+ };
+ }
+ {
+ name = "try_catch___try_catch_2.0.0.tgz";
+ path = fetchurl {
+ name = "try_catch___try_catch_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/try-catch/-/try-catch-2.0.0.tgz";
+ sha1 = "a491141d597f8b72b46757fe1c47059341a16aed";
+ };
+ }
+ {
+ name = "try_to_catch___try_to_catch_1.1.1.tgz";
+ path = fetchurl {
+ name = "try_to_catch___try_to_catch_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/try-to-catch/-/try-to-catch-1.1.1.tgz";
+ sha1 = "770162dd13b9a0e55da04db5b7f888956072038a";
+ };
+ }
+ {
+ name = "tryer___tryer_1.0.0.tgz";
+ path = fetchurl {
+ name = "tryer___tryer_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/tryer/-/tryer-1.0.0.tgz";
+ sha1 = "027b69fa823225e551cace3ef03b11f6ab37c1d7";
+ };
+ }
+ {
+ name = "ts_invariant___ts_invariant_0.2.1.tgz";
+ path = fetchurl {
+ name = "ts_invariant___ts_invariant_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.2.1.tgz";
+ sha1 = "3d587f9d6e3bded97bf9ec17951dd9814d5a9d3f";
+ };
+ }
+ {
+ name = "ts_invariant___ts_invariant_0.3.2.tgz";
+ path = fetchurl {
+ name = "ts_invariant___ts_invariant_0.3.2.tgz";
+ url = "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.3.2.tgz";
+ sha1 = "89a2ffeb70879b777258df1df1c59383c35209b0";
+ };
+ }
+ {
+ name = "ts_jest___ts_jest_24.0.0.tgz";
+ path = fetchurl {
+ name = "ts_jest___ts_jest_24.0.0.tgz";
+ url = "https://registry.yarnpkg.com/ts-jest/-/ts-jest-24.0.0.tgz";
+ sha1 = "3f26bf2ec1fa584863a5a9c29bd8717d549efbf6";
+ };
+ }
+ {
+ name = "tslib___tslib_1.9.3.tgz";
+ path = fetchurl {
+ name = "tslib___tslib_1.9.3.tgz";
+ url = "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz";
+ sha1 = "d7e4dd79245d85428c4d7e4822a79917954ca286";
+ };
+ }
+ {
+ name = "tty_browserify___tty_browserify_0.0.0.tgz";
+ path = fetchurl {
+ name = "tty_browserify___tty_browserify_0.0.0.tgz";
+ url = "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz";
+ sha1 = "a157ba402da24e9bf957f9aa69d524eed42901a6";
+ };
+ }
+ {
+ name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
+ path = fetchurl {
+ name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
+ url = "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
+ sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
+ };
+ }
+ {
+ name = "tweetnacl___tweetnacl_0.14.5.tgz";
+ path = fetchurl {
+ name = "tweetnacl___tweetnacl_0.14.5.tgz";
+ url = "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz";
+ sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
+ };
+ }
+ {
+ name = "type_check___type_check_0.3.2.tgz";
+ path = fetchurl {
+ name = "type_check___type_check_0.3.2.tgz";
+ url = "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz";
+ sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72";
+ };
+ }
+ {
+ name = "type_is___type_is_1.6.18.tgz";
+ path = fetchurl {
+ name = "type_is___type_is_1.6.18.tgz";
+ url = "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz";
+ sha1 = "4e552cd05df09467dcbc4ef739de89f2cf37c131";
+ };
+ }
+ {
+ name = "typedarray___typedarray_0.0.6.tgz";
+ path = fetchurl {
+ name = "typedarray___typedarray_0.0.6.tgz";
+ url = "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz";
+ sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
+ };
+ }
+ {
+ name = "typescript___typescript_3.3.4000.tgz";
+ path = fetchurl {
+ name = "typescript___typescript_3.3.4000.tgz";
+ url = "https://registry.yarnpkg.com/typescript/-/typescript-3.3.4000.tgz";
+ sha1 = "76b0f89cfdbf97827e1112d64f283f1151d6adf0";
+ };
+ }
+ {
+ name = "uc.micro___uc.micro_1.0.5.tgz";
+ path = fetchurl {
+ name = "uc.micro___uc.micro_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.5.tgz";
+ sha1 = "0c65f15f815aa08b560a61ce8b4db7ffc3f45376";
+ };
+ }
+ {
+ name = "uglify_js___uglify_js_3.6.0.tgz";
+ path = fetchurl {
+ name = "uglify_js___uglify_js_3.6.0.tgz";
+ url = "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.0.tgz";
+ sha1 = "704681345c53a8b2079fb6cec294b05ead242ff5";
+ };
+ }
+ {
+ name = "ultron___ultron_1.1.1.tgz";
+ path = fetchurl {
+ name = "ultron___ultron_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz";
+ sha1 = "9fe1536a10a664a65266a1e3ccf85fd36302bc9c";
+ };
+ }
+ {
+ name = "unc_path_regex___unc_path_regex_0.1.2.tgz";
+ path = fetchurl {
+ name = "unc_path_regex___unc_path_regex_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz";
+ sha1 = "e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa";
+ };
+ }
+ {
+ name = "undefsafe___undefsafe_2.0.2.tgz";
+ path = fetchurl {
+ name = "undefsafe___undefsafe_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.2.tgz";
+ sha1 = "225f6b9e0337663e0d8e7cfd686fc2836ccace76";
+ };
+ }
+ {
+ name = "underscore_contrib___underscore_contrib_0.3.0.tgz";
+ path = fetchurl {
+ name = "underscore_contrib___underscore_contrib_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/underscore-contrib/-/underscore-contrib-0.3.0.tgz";
+ sha1 = "665b66c24783f8fa2b18c9f8cbb0e2c7d48c26c7";
+ };
+ }
+ {
+ name = "underscore___underscore_1.6.0.tgz";
+ path = fetchurl {
+ name = "underscore___underscore_1.6.0.tgz";
+ url = "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz";
+ sha1 = "8b38b10cacdef63337b8b24e4ff86d45aea529a8";
+ };
+ }
+ {
+ name = "underscore___underscore_1.9.0.tgz";
+ path = fetchurl {
+ name = "underscore___underscore_1.9.0.tgz";
+ url = "https://registry.yarnpkg.com/underscore/-/underscore-1.9.0.tgz";
+ sha1 = "31dbb314cfcc88f169cd3692d9149d81a00a73e4";
+ };
+ }
+ {
+ name = "underscore___underscore_1.8.3.tgz";
+ path = fetchurl {
+ name = "underscore___underscore_1.8.3.tgz";
+ url = "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz";
+ sha1 = "4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022";
+ };
+ }
+ {
+ name = "unherit___unherit_1.1.1.tgz";
+ path = fetchurl {
+ name = "unherit___unherit_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/unherit/-/unherit-1.1.1.tgz";
+ sha1 = "132748da3e88eab767e08fabfbb89c5e9d28628c";
+ };
+ }
+ {
+ name = "unicode_canonical_property_names_ecmascript___unicode_canonical_property_names_ecmascript_1.0.4.tgz";
+ path = fetchurl {
+ name = "unicode_canonical_property_names_ecmascript___unicode_canonical_property_names_ecmascript_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz";
+ sha1 = "2619800c4c825800efdd8343af7dd9933cbe2818";
+ };
+ }
+ {
+ name = "unicode_match_property_ecmascript___unicode_match_property_ecmascript_1.0.4.tgz";
+ path = fetchurl {
+ name = "unicode_match_property_ecmascript___unicode_match_property_ecmascript_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz";
+ sha1 = "8ed2a32569961bce9227d09cd3ffbb8fed5f020c";
+ };
+ }
+ {
+ name = "unicode_match_property_value_ecmascript___unicode_match_property_value_ecmascript_1.1.0.tgz";
+ path = fetchurl {
+ name = "unicode_match_property_value_ecmascript___unicode_match_property_value_ecmascript_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz";
+ sha1 = "5b4b426e08d13a80365e0d657ac7a6c1ec46a277";
+ };
+ }
+ {
+ name = "unicode_property_aliases_ecmascript___unicode_property_aliases_ecmascript_1.0.4.tgz";
+ path = fetchurl {
+ name = "unicode_property_aliases_ecmascript___unicode_property_aliases_ecmascript_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz";
+ sha1 = "5a533f31b4317ea76f17d807fa0d116546111dd0";
+ };
+ }
+ {
+ name = "unified___unified_6.2.0.tgz";
+ path = fetchurl {
+ name = "unified___unified_6.2.0.tgz";
+ url = "https://registry.yarnpkg.com/unified/-/unified-6.2.0.tgz";
+ sha1 = "7fbd630f719126d67d40c644b7e3f617035f6dba";
+ };
+ }
+ {
+ name = "unified___unified_7.1.0.tgz";
+ path = fetchurl {
+ name = "unified___unified_7.1.0.tgz";
+ url = "https://registry.yarnpkg.com/unified/-/unified-7.1.0.tgz";
+ sha1 = "5032f1c1ee3364bd09da12e27fdd4a7553c7be13";
+ };
+ }
+ {
+ name = "union_value___union_value_1.0.0.tgz";
+ path = fetchurl {
+ name = "union_value___union_value_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz";
+ sha1 = "5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4";
+ };
+ }
+ {
+ name = "uniq___uniq_1.0.1.tgz";
+ path = fetchurl {
+ name = "uniq___uniq_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz";
+ sha1 = "b31c5ae8254844a3a8281541ce2b04b865a734ff";
+ };
+ }
+ {
+ name = "unique_filename___unique_filename_1.1.1.tgz";
+ path = fetchurl {
+ name = "unique_filename___unique_filename_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz";
+ sha1 = "1d69769369ada0583103a1e6ae87681b56573230";
+ };
+ }
+ {
+ name = "unique_slug___unique_slug_2.0.0.tgz";
+ path = fetchurl {
+ name = "unique_slug___unique_slug_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.0.tgz";
+ sha1 = "db6676e7c7cc0629878ff196097c78855ae9f4ab";
+ };
+ }
+ {
+ name = "unique_stream___unique_stream_2.3.1.tgz";
+ path = fetchurl {
+ name = "unique_stream___unique_stream_2.3.1.tgz";
+ url = "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.3.1.tgz";
+ sha1 = "c65d110e9a4adf9a6c5948b28053d9a8d04cbeac";
+ };
+ }
+ {
+ name = "unique_string___unique_string_1.0.0.tgz";
+ path = fetchurl {
+ name = "unique_string___unique_string_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz";
+ sha1 = "9e1057cca851abb93398f8b33ae187b99caec11a";
+ };
+ }
+ {
+ name = "unist_builder___unist_builder_1.0.4.tgz";
+ path = fetchurl {
+ name = "unist_builder___unist_builder_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/unist-builder/-/unist-builder-1.0.4.tgz";
+ sha1 = "e1808aed30bd72adc3607f25afecebef4dd59e17";
+ };
+ }
+ {
+ name = "unist_util_find_all_after___unist_util_find_all_after_1.0.2.tgz";
+ path = fetchurl {
+ name = "unist_util_find_all_after___unist_util_find_all_after_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/unist-util-find-all-after/-/unist-util-find-all-after-1.0.2.tgz";
+ sha1 = "9be49cfbae5ca1566b27536670a92836bf2f8d6d";
+ };
+ }
+ {
+ name = "unist_util_generated___unist_util_generated_1.1.4.tgz";
+ path = fetchurl {
+ name = "unist_util_generated___unist_util_generated_1.1.4.tgz";
+ url = "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.4.tgz";
+ sha1 = "2261c033d9fc23fae41872cdb7663746e972c1a7";
+ };
+ }
+ {
+ name = "unist_util_is___unist_util_is_2.1.2.tgz";
+ path = fetchurl {
+ name = "unist_util_is___unist_util_is_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-2.1.2.tgz";
+ sha1 = "1193fa8f2bfbbb82150633f3a8d2eb9a1c1d55db";
+ };
+ }
+ {
+ name = "unist_util_position___unist_util_position_3.0.3.tgz";
+ path = fetchurl {
+ name = "unist_util_position___unist_util_position_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.0.3.tgz";
+ sha1 = "fff942b879538b242096c148153826664b1ca373";
+ };
+ }
+ {
+ name = "unist_util_remove_position___unist_util_remove_position_1.1.2.tgz";
+ path = fetchurl {
+ name = "unist_util_remove_position___unist_util_remove_position_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-1.1.2.tgz";
+ sha1 = "86b5dad104d0bbfbeb1db5f5c92f3570575c12cb";
+ };
+ }
+ {
+ name = "unist_util_stringify_position___unist_util_stringify_position_1.1.2.tgz";
+ path = fetchurl {
+ name = "unist_util_stringify_position___unist_util_stringify_position_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz";
+ sha1 = "3f37fcf351279dcbca7480ab5889bb8a832ee1c6";
+ };
+ }
+ {
+ name = "unist_util_stringify_position___unist_util_stringify_position_2.0.1.tgz";
+ path = fetchurl {
+ name = "unist_util_stringify_position___unist_util_stringify_position_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.1.tgz";
+ sha1 = "de2a2bc8d3febfa606652673a91455b6a36fb9f3";
+ };
+ }
+ {
+ name = "unist_util_visit_parents___unist_util_visit_parents_2.0.1.tgz";
+ path = fetchurl {
+ name = "unist_util_visit_parents___unist_util_visit_parents_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-2.0.1.tgz";
+ sha1 = "63fffc8929027bee04bfef7d2cce474f71cb6217";
+ };
+ }
+ {
+ name = "unist_util_visit___unist_util_visit_1.4.1.tgz";
+ path = fetchurl {
+ name = "unist_util_visit___unist_util_visit_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-1.4.1.tgz";
+ sha1 = "4724aaa8486e6ee6e26d7ff3c8685960d560b1e3";
+ };
+ }
+ {
+ name = "universalify___universalify_0.1.2.tgz";
+ path = fetchurl {
+ name = "universalify___universalify_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz";
+ sha1 = "b646f69be3942dabcecc9d6639c80dc105efaa66";
+ };
+ }
+ {
+ name = "unpipe___unpipe_1.0.0.tgz";
+ path = fetchurl {
+ name = "unpipe___unpipe_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz";
+ sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
+ };
+ }
+ {
+ name = "unset_value___unset_value_1.0.0.tgz";
+ path = fetchurl {
+ name = "unset_value___unset_value_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz";
+ sha1 = "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559";
+ };
+ }
+ {
+ name = "unzip_response___unzip_response_2.0.1.tgz";
+ path = fetchurl {
+ name = "unzip_response___unzip_response_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz";
+ sha1 = "d2f0f737d16b0615e72a6935ed04214572d56f97";
+ };
+ }
+ {
+ name = "upath___upath_1.2.0.tgz";
+ path = fetchurl {
+ name = "upath___upath_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz";
+ sha1 = "8f66dbcd55a883acdae4408af8b035a5044c1894";
+ };
+ }
+ {
+ name = "update_notifier___update_notifier_2.5.0.tgz";
+ path = fetchurl {
+ name = "update_notifier___update_notifier_2.5.0.tgz";
+ url = "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz";
+ sha1 = "d0744593e13f161e406acb1d9408b72cad08aff6";
+ };
+ }
+ {
+ name = "upper_case___upper_case_1.1.3.tgz";
+ path = fetchurl {
+ name = "upper_case___upper_case_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz";
+ sha1 = "f6b4501c2ec4cdd26ba78be7222961de77621598";
+ };
+ }
+ {
+ name = "uri_js___uri_js_4.2.2.tgz";
+ path = fetchurl {
+ name = "uri_js___uri_js_4.2.2.tgz";
+ url = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz";
+ sha1 = "94c540e1ff772956e2299507c010aea6c8838eb0";
+ };
+ }
+ {
+ name = "urix___urix_0.1.0.tgz";
+ path = fetchurl {
+ name = "urix___urix_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz";
+ sha1 = "da937f7a62e21fec1fd18d49b35c2935067a6c72";
+ };
+ }
+ {
+ name = "url_loader___url_loader_2.1.0.tgz";
+ path = fetchurl {
+ name = "url_loader___url_loader_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/url-loader/-/url-loader-2.1.0.tgz";
+ sha1 = "bcc1ecabbd197e913eca23f5e0378e24b4412961";
+ };
+ }
+ {
+ name = "url_parse_lax___url_parse_lax_1.0.0.tgz";
+ path = fetchurl {
+ name = "url_parse_lax___url_parse_lax_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz";
+ sha1 = "7af8f303645e9bd79a272e7a14ac68bc0609da73";
+ };
+ }
+ {
+ name = "url_parse___url_parse_1.4.4.tgz";
+ path = fetchurl {
+ name = "url_parse___url_parse_1.4.4.tgz";
+ url = "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.4.tgz";
+ sha1 = "cac1556e95faa0303691fec5cf9d5a1bc34648f8";
+ };
+ }
+ {
+ name = "url_search_params_polyfill___url_search_params_polyfill_5.0.0.tgz";
+ path = fetchurl {
+ name = "url_search_params_polyfill___url_search_params_polyfill_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/url-search-params-polyfill/-/url-search-params-polyfill-5.0.0.tgz";
+ sha1 = "09b98337c89dcf6c6a6a0bfeb096f6ba83b7526b";
+ };
+ }
+ {
+ name = "url___url_0.10.3.tgz";
+ path = fetchurl {
+ name = "url___url_0.10.3.tgz";
+ url = "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz";
+ sha1 = "021e4d9c7705f21bbf37d03ceb58767402774c64";
+ };
+ }
+ {
+ name = "url___url_0.11.0.tgz";
+ path = fetchurl {
+ name = "url___url_0.11.0.tgz";
+ url = "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz";
+ sha1 = "3838e97cfc60521eb73c525a8e55bfdd9e2e28f1";
+ };
+ }
+ {
+ name = "use___use_3.1.1.tgz";
+ path = fetchurl {
+ name = "use___use_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz";
+ sha1 = "d50c8cac79a19fbc20f2911f56eb973f4e10070f";
+ };
+ }
+ {
+ name = "useragent___useragent_2.3.0.tgz";
+ path = fetchurl {
+ name = "useragent___useragent_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/useragent/-/useragent-2.3.0.tgz";
+ sha1 = "217f943ad540cb2128658ab23fc960f6a88c9972";
+ };
+ }
+ {
+ name = "util_deprecate___util_deprecate_1.0.2.tgz";
+ path = fetchurl {
+ name = "util_deprecate___util_deprecate_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz";
+ sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+ };
+ }
+ {
+ name = "util.promisify___util.promisify_1.0.0.tgz";
+ path = fetchurl {
+ name = "util.promisify___util.promisify_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz";
+ sha1 = "440f7165a459c9a16dc145eb8e72f35687097030";
+ };
+ }
+ {
+ name = "util___util_0.10.3.tgz";
+ path = fetchurl {
+ name = "util___util_0.10.3.tgz";
+ url = "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz";
+ sha1 = "7afb1afe50805246489e3db7fe0ed379336ac0f9";
+ };
+ }
+ {
+ name = "util___util_0.11.1.tgz";
+ path = fetchurl {
+ name = "util___util_0.11.1.tgz";
+ url = "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz";
+ sha1 = "3236733720ec64bb27f6e26f421aaa2e1b588d61";
+ };
+ }
+ {
+ name = "utils_merge___utils_merge_1.0.1.tgz";
+ path = fetchurl {
+ name = "utils_merge___utils_merge_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz";
+ sha1 = "9f95710f50a267947b2ccc124741c1028427e713";
+ };
+ }
+ {
+ name = "uuid___uuid_3.3.2.tgz";
+ path = fetchurl {
+ name = "uuid___uuid_3.3.2.tgz";
+ url = "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz";
+ sha1 = "1b4af4955eb3077c501c23872fc6513811587131";
+ };
+ }
+ {
+ name = "v8_compile_cache___v8_compile_cache_2.0.3.tgz";
+ path = fetchurl {
+ name = "v8_compile_cache___v8_compile_cache_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz";
+ sha1 = "00f7494d2ae2b688cfe2899df6ed2c54bef91dbe";
+ };
+ }
+ {
+ name = "validate_npm_package_license___validate_npm_package_license_3.0.1.tgz";
+ path = fetchurl {
+ name = "validate_npm_package_license___validate_npm_package_license_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz";
+ sha1 = "2804babe712ad3379459acfbe24746ab2c303fbc";
+ };
+ }
+ {
+ name = "value_or_function___value_or_function_3.0.0.tgz";
+ path = fetchurl {
+ name = "value_or_function___value_or_function_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz";
+ sha1 = "1c243a50b595c1be54a754bfece8563b9ff8d813";
+ };
+ }
+ {
+ name = "vary___vary_1.1.2.tgz";
+ path = fetchurl {
+ name = "vary___vary_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz";
+ sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc";
+ };
+ }
+ {
+ name = "verror___verror_1.10.0.tgz";
+ path = fetchurl {
+ name = "verror___verror_1.10.0.tgz";
+ url = "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz";
+ sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
+ };
+ }
+ {
+ name = "vfile_location___vfile_location_2.0.4.tgz";
+ path = fetchurl {
+ name = "vfile_location___vfile_location_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/vfile-location/-/vfile-location-2.0.4.tgz";
+ sha1 = "2a5e7297dd0d9e2da4381464d04acc6b834d3e55";
+ };
+ }
+ {
+ name = "vfile_message___vfile_message_1.1.1.tgz";
+ path = fetchurl {
+ name = "vfile_message___vfile_message_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/vfile-message/-/vfile-message-1.1.1.tgz";
+ sha1 = "5833ae078a1dfa2d96e9647886cd32993ab313e1";
+ };
+ }
+ {
+ name = "vfile_message___vfile_message_2.0.1.tgz";
+ path = fetchurl {
+ name = "vfile_message___vfile_message_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.1.tgz";
+ sha1 = "951881861c22fc1eb39f873c0b93e336a64e8f6d";
+ };
+ }
+ {
+ name = "vfile_reporter___vfile_reporter_6.0.0.tgz";
+ path = fetchurl {
+ name = "vfile_reporter___vfile_reporter_6.0.0.tgz";
+ url = "https://registry.yarnpkg.com/vfile-reporter/-/vfile-reporter-6.0.0.tgz";
+ sha1 = "753119f51dec9289b7508b457afc0cddf5e07f2e";
+ };
+ }
+ {
+ name = "vfile_sort___vfile_sort_2.2.1.tgz";
+ path = fetchurl {
+ name = "vfile_sort___vfile_sort_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/vfile-sort/-/vfile-sort-2.2.1.tgz";
+ sha1 = "74e714f9175618cdae96bcaedf1a3dc711d87567";
+ };
+ }
+ {
+ name = "vfile_statistics___vfile_statistics_1.1.3.tgz";
+ path = fetchurl {
+ name = "vfile_statistics___vfile_statistics_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/vfile-statistics/-/vfile-statistics-1.1.3.tgz";
+ sha1 = "e9c87071997fbcb4243764d2c3805e0bb0820c60";
+ };
+ }
+ {
+ name = "vfile___vfile_2.3.0.tgz";
+ path = fetchurl {
+ name = "vfile___vfile_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/vfile/-/vfile-2.3.0.tgz";
+ sha1 = "e62d8e72b20e83c324bc6c67278ee272488bf84a";
+ };
+ }
+ {
+ name = "vfile___vfile_3.0.1.tgz";
+ path = fetchurl {
+ name = "vfile___vfile_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/vfile/-/vfile-3.0.1.tgz";
+ sha1 = "47331d2abe3282424f4a4bb6acd20a44c4121803";
+ };
+ }
+ {
+ name = "vfile___vfile_4.0.1.tgz";
+ path = fetchurl {
+ name = "vfile___vfile_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/vfile/-/vfile-4.0.1.tgz";
+ sha1 = "fc3d43a1c71916034216bf65926d5ee3c64ed60c";
+ };
+ }
+ {
+ name = "vinyl_fs___vinyl_fs_3.0.3.tgz";
+ path = fetchurl {
+ name = "vinyl_fs___vinyl_fs_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-3.0.3.tgz";
+ sha1 = "c85849405f67428feabbbd5c5dbdd64f47d31bc7";
+ };
+ }
+ {
+ name = "vinyl_sourcemap___vinyl_sourcemap_1.1.0.tgz";
+ path = fetchurl {
+ name = "vinyl_sourcemap___vinyl_sourcemap_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz";
+ sha1 = "92a800593a38703a8cdb11d8b300ad4be63b3e16";
+ };
+ }
+ {
+ name = "vinyl___vinyl_2.2.0.tgz";
+ path = fetchurl {
+ name = "vinyl___vinyl_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.0.tgz";
+ sha1 = "d85b07da96e458d25b2ffe19fece9f2caa13ed86";
+ };
+ }
+ {
+ name = "visibilityjs___visibilityjs_1.2.4.tgz";
+ path = fetchurl {
+ name = "visibilityjs___visibilityjs_1.2.4.tgz";
+ url = "https://registry.yarnpkg.com/visibilityjs/-/visibilityjs-1.2.4.tgz";
+ sha1 = "bff8663da62c8c10ad4ee5ae6a1ae6fac4259d63";
+ };
+ }
+ {
+ name = "vm_browserify___vm_browserify_1.1.0.tgz";
+ path = fetchurl {
+ name = "vm_browserify___vm_browserify_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz";
+ sha1 = "bd76d6a23323e2ca8ffa12028dc04559c75f9019";
+ };
+ }
+ {
+ name = "void_elements___void_elements_2.0.1.tgz";
+ path = fetchurl {
+ name = "void_elements___void_elements_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz";
+ sha1 = "c066afb582bb1cb4128d60ea92392e94d5e9dbec";
+ };
+ }
+ {
+ name = "vue_apollo___vue_apollo_3.0.0_beta.28.tgz";
+ path = fetchurl {
+ name = "vue_apollo___vue_apollo_3.0.0_beta.28.tgz";
+ url = "https://registry.yarnpkg.com/vue-apollo/-/vue-apollo-3.0.0-beta.28.tgz";
+ sha1 = "be6a3a1504be2096cbfb23996537e2fc95c8c239";
+ };
+ }
+ {
+ name = "vue_eslint_parser___vue_eslint_parser_4.0.3.tgz";
+ path = fetchurl {
+ name = "vue_eslint_parser___vue_eslint_parser_4.0.3.tgz";
+ url = "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-4.0.3.tgz";
+ sha1 = "80cf162e484387b2640371ad21ba1f86e0c10a61";
+ };
+ }
+ {
+ name = "vue_eslint_parser___vue_eslint_parser_6.0.4.tgz";
+ path = fetchurl {
+ name = "vue_eslint_parser___vue_eslint_parser_6.0.4.tgz";
+ url = "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-6.0.4.tgz";
+ sha1 = "56ff47e2c2644bff39951d5a284982c7ecd6f7fa";
+ };
+ }
+ {
+ name = "vue_functional_data_merge___vue_functional_data_merge_3.1.0.tgz";
+ path = fetchurl {
+ name = "vue_functional_data_merge___vue_functional_data_merge_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/vue-functional-data-merge/-/vue-functional-data-merge-3.1.0.tgz";
+ sha1 = "08a7797583b7f35680587f8a1d51d729aa1dc657";
+ };
+ }
+ {
+ name = "vue_hot_reload_api___vue_hot_reload_api_2.3.0.tgz";
+ path = fetchurl {
+ name = "vue_hot_reload_api___vue_hot_reload_api_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.0.tgz";
+ sha1 = "97976142405d13d8efae154749e88c4e358cf926";
+ };
+ }
+ {
+ name = "vue_jest___vue_jest_4.0.0_beta.2.tgz";
+ path = fetchurl {
+ name = "vue_jest___vue_jest_4.0.0_beta.2.tgz";
+ url = "https://registry.yarnpkg.com/vue-jest/-/vue-jest-4.0.0-beta.2.tgz";
+ sha1 = "f2120ea9d24224aad3a100c2010b0760d47ee6fe";
+ };
+ }
+ {
+ name = "vue_loader___vue_loader_15.7.1.tgz";
+ path = fetchurl {
+ name = "vue_loader___vue_loader_15.7.1.tgz";
+ url = "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.7.1.tgz";
+ sha1 = "6ccacd4122aa80f69baaac08ff295a62e3aefcfd";
+ };
+ }
+ {
+ name = "vue_router___vue_router_3.0.2.tgz";
+ path = fetchurl {
+ name = "vue_router___vue_router_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/vue-router/-/vue-router-3.0.2.tgz";
+ sha1 = "dedc67afe6c4e2bc25682c8b1c2a8c0d7c7e56be";
+ };
+ }
+ {
+ name = "vue_style_loader___vue_style_loader_4.1.0.tgz";
+ path = fetchurl {
+ name = "vue_style_loader___vue_style_loader_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.0.tgz";
+ sha1 = "7588bd778e2c9f8d87bfc3c5a4a039638da7a863";
+ };
+ }
+ {
+ name = "vue_template_compiler___vue_template_compiler_2.6.10.tgz";
+ path = fetchurl {
+ name = "vue_template_compiler___vue_template_compiler_2.6.10.tgz";
+ url = "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.10.tgz";
+ sha1 = "323b4f3495f04faa3503337a82f5d6507799c9cc";
+ };
+ }
+ {
+ name = "vue_template_es2015_compiler___vue_template_es2015_compiler_1.9.1.tgz";
+ path = fetchurl {
+ name = "vue_template_es2015_compiler___vue_template_es2015_compiler_1.9.1.tgz";
+ url = "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz";
+ sha1 = "1ee3bc9a16ecbf5118be334bb15f9c46f82f5825";
+ };
+ }
+ {
+ name = "vue_virtual_scroll_list___vue_virtual_scroll_list_1.3.1.tgz";
+ path = fetchurl {
+ name = "vue_virtual_scroll_list___vue_virtual_scroll_list_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/vue-virtual-scroll-list/-/vue-virtual-scroll-list-1.3.1.tgz";
+ sha1 = "efcb83d3a3dcc69cd886fa4de1130a65493e8f76";
+ };
+ }
+ {
+ name = "vue___vue_2.6.10.tgz";
+ path = fetchurl {
+ name = "vue___vue_2.6.10.tgz";
+ url = "https://registry.yarnpkg.com/vue/-/vue-2.6.10.tgz";
+ sha1 = "a72b1a42a4d82a721ea438d1b6bf55e66195c637";
+ };
+ }
+ {
+ name = "vuedraggable___vuedraggable_2.23.0.tgz";
+ path = fetchurl {
+ name = "vuedraggable___vuedraggable_2.23.0.tgz";
+ url = "https://registry.yarnpkg.com/vuedraggable/-/vuedraggable-2.23.0.tgz";
+ sha1 = "1f4a5a601675a5dbf0d96ee61aebfffa43445262";
+ };
+ }
+ {
+ name = "vuex___vuex_3.1.0.tgz";
+ path = fetchurl {
+ name = "vuex___vuex_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/vuex/-/vuex-3.1.0.tgz";
+ sha1 = "634b81515cf0cfe976bd1ffe9601755e51f843b9";
+ };
+ }
+ {
+ name = "w3c_hr_time___w3c_hr_time_1.0.1.tgz";
+ path = fetchurl {
+ name = "w3c_hr_time___w3c_hr_time_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz";
+ sha1 = "82ac2bff63d950ea9e3189a58a65625fedf19045";
+ };
+ }
+ {
+ name = "w3c_keyname___w3c_keyname_1.1.8.tgz";
+ path = fetchurl {
+ name = "w3c_keyname___w3c_keyname_1.1.8.tgz";
+ url = "https://registry.yarnpkg.com/w3c-keyname/-/w3c-keyname-1.1.8.tgz";
+ sha1 = "4e2219663760fd6535b7a1550f1552d71fc9372c";
+ };
+ }
+ {
+ name = "walker___walker_1.0.7.tgz";
+ path = fetchurl {
+ name = "walker___walker_1.0.7.tgz";
+ url = "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz";
+ sha1 = "2f7f9b8fd10d677262b18a884e28d19618e028fb";
+ };
+ }
+ {
+ name = "watchpack___watchpack_1.6.0.tgz";
+ path = fetchurl {
+ name = "watchpack___watchpack_1.6.0.tgz";
+ url = "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz";
+ sha1 = "4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00";
+ };
+ }
+ {
+ name = "wbuf___wbuf_1.7.3.tgz";
+ path = fetchurl {
+ name = "wbuf___wbuf_1.7.3.tgz";
+ url = "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz";
+ sha1 = "c1d8d149316d3ea852848895cb6a0bfe887b87df";
+ };
+ }
+ {
+ name = "webidl_conversions___webidl_conversions_4.0.2.tgz";
+ path = fetchurl {
+ name = "webidl_conversions___webidl_conversions_4.0.2.tgz";
+ url = "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz";
+ sha1 = "a855980b1f0b6b359ba1d5d9fb39ae941faa63ad";
+ };
+ }
+ {
+ name = "webpack_bundle_analyzer___webpack_bundle_analyzer_3.5.1.tgz";
+ path = fetchurl {
+ name = "webpack_bundle_analyzer___webpack_bundle_analyzer_3.5.1.tgz";
+ url = "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.5.1.tgz";
+ sha1 = "84aabb1547178d842ebb4ccc7324084b6c3b0ea9";
+ };
+ }
+ {
+ name = "webpack_cli___webpack_cli_3.3.9.tgz";
+ path = fetchurl {
+ name = "webpack_cli___webpack_cli_3.3.9.tgz";
+ url = "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.9.tgz";
+ sha1 = "79c27e71f94b7fe324d594ab64a8e396b9daa91a";
+ };
+ }
+ {
+ name = "webpack_dev_middleware___webpack_dev_middleware_3.7.1.tgz";
+ path = fetchurl {
+ name = "webpack_dev_middleware___webpack_dev_middleware_3.7.1.tgz";
+ url = "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.1.tgz";
+ sha1 = "1167aea02afa034489869b8368fe9fed1aea7d09";
+ };
+ }
+ {
+ name = "webpack_dev_server___webpack_dev_server_3.8.1.tgz";
+ path = fetchurl {
+ name = "webpack_dev_server___webpack_dev_server_3.8.1.tgz";
+ url = "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.8.1.tgz";
+ sha1 = "485b64c4aadc23f601e72114b40c1b1fea31d9f1";
+ };
+ }
+ {
+ name = "webpack_log___webpack_log_2.0.0.tgz";
+ path = fetchurl {
+ name = "webpack_log___webpack_log_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz";
+ sha1 = "5b7928e0637593f119d32f6227c1e0ac31e1b47f";
+ };
+ }
+ {
+ name = "webpack_sources___webpack_sources_1.4.3.tgz";
+ path = fetchurl {
+ name = "webpack_sources___webpack_sources_1.4.3.tgz";
+ url = "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz";
+ sha1 = "eedd8ec0b928fbf1cbfe994e22d2d890f330a933";
+ };
+ }
+ {
+ name = "webpack_stats_plugin___webpack_stats_plugin_0.3.0.tgz";
+ path = fetchurl {
+ name = "webpack_stats_plugin___webpack_stats_plugin_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/webpack-stats-plugin/-/webpack-stats-plugin-0.3.0.tgz";
+ sha1 = "6952f63feb9a5393a328d774fb3eccac78d2f51b";
+ };
+ }
+ {
+ name = "webpack___webpack_4.40.2.tgz";
+ path = fetchurl {
+ name = "webpack___webpack_4.40.2.tgz";
+ url = "https://registry.yarnpkg.com/webpack/-/webpack-4.40.2.tgz";
+ sha1 = "d21433d250f900bf0facbabe8f50d585b2dc30a7";
+ };
+ }
+ {
+ name = "websocket_driver___websocket_driver_0.6.5.tgz";
+ path = fetchurl {
+ name = "websocket_driver___websocket_driver_0.6.5.tgz";
+ url = "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz";
+ sha1 = "5cb2556ceb85f4373c6d8238aa691c8454e13a36";
+ };
+ }
+ {
+ name = "websocket_extensions___websocket_extensions_0.1.1.tgz";
+ path = fetchurl {
+ name = "websocket_extensions___websocket_extensions_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.1.tgz";
+ sha1 = "76899499c184b6ef754377c2dbb0cd6cb55d29e7";
+ };
+ }
+ {
+ name = "whatwg_encoding___whatwg_encoding_1.0.5.tgz";
+ path = fetchurl {
+ name = "whatwg_encoding___whatwg_encoding_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz";
+ sha1 = "5abacf777c32166a51d085d6b4f3e7d27113ddb0";
+ };
+ }
+ {
+ name = "whatwg_mimetype___whatwg_mimetype_2.3.0.tgz";
+ path = fetchurl {
+ name = "whatwg_mimetype___whatwg_mimetype_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz";
+ sha1 = "3d4b1e0312d2079879f826aff18dbeeca5960fbf";
+ };
+ }
+ {
+ name = "whatwg_url___whatwg_url_6.5.0.tgz";
+ path = fetchurl {
+ name = "whatwg_url___whatwg_url_6.5.0.tgz";
+ url = "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz";
+ sha1 = "f2df02bff176fd65070df74ad5ccbb5a199965a8";
+ };
+ }
+ {
+ name = "whatwg_url___whatwg_url_7.0.0.tgz";
+ path = fetchurl {
+ name = "whatwg_url___whatwg_url_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.0.0.tgz";
+ sha1 = "fde926fa54a599f3adf82dff25a9f7be02dc6edd";
+ };
+ }
+ {
+ name = "which_module___which_module_1.0.0.tgz";
+ path = fetchurl {
+ name = "which_module___which_module_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz";
+ sha1 = "bba63ca861948994ff307736089e3b96026c2a4f";
+ };
+ }
+ {
+ name = "which_module___which_module_2.0.0.tgz";
+ path = fetchurl {
+ name = "which_module___which_module_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz";
+ sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
+ };
+ }
+ {
+ name = "which___which_1.3.1.tgz";
+ path = fetchurl {
+ name = "which___which_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz";
+ sha1 = "a45043d54f5805316da8d62f9f50918d3da70b0a";
+ };
+ }
+ {
+ name = "wide_align___wide_align_1.1.3.tgz";
+ path = fetchurl {
+ name = "wide_align___wide_align_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz";
+ sha1 = "ae074e6bdc0c14a431e804e624549c633b000457";
+ };
+ }
+ {
+ name = "widest_line___widest_line_2.0.0.tgz";
+ path = fetchurl {
+ name = "widest_line___widest_line_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.0.tgz";
+ sha1 = "0142a4e8a243f8882c0233aa0e0281aa76152273";
+ };
+ }
+ {
+ name = "wordwrap___wordwrap_0.0.3.tgz";
+ path = fetchurl {
+ name = "wordwrap___wordwrap_0.0.3.tgz";
+ url = "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz";
+ sha1 = "a3d5da6cd5c0bc0008d37234bbaf1bed63059107";
+ };
+ }
+ {
+ name = "wordwrap___wordwrap_1.0.0.tgz";
+ path = fetchurl {
+ name = "wordwrap___wordwrap_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz";
+ sha1 = "27584810891456a4171c8d0226441ade90cbcaeb";
+ };
+ }
+ {
+ name = "worker_farm___worker_farm_1.7.0.tgz";
+ path = fetchurl {
+ name = "worker_farm___worker_farm_1.7.0.tgz";
+ url = "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz";
+ sha1 = "26a94c5391bbca926152002f69b84a4bf772e5a8";
+ };
+ }
+ {
+ name = "worker_loader___worker_loader_2.0.0.tgz";
+ path = fetchurl {
+ name = "worker_loader___worker_loader_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/worker-loader/-/worker-loader-2.0.0.tgz";
+ sha1 = "45fda3ef76aca815771a89107399ee4119b430ac";
+ };
+ }
+ {
+ name = "wrap_ansi___wrap_ansi_2.1.0.tgz";
+ path = fetchurl {
+ name = "wrap_ansi___wrap_ansi_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz";
+ sha1 = "d8fc3d284dd05794fe84973caecdd1cf824fdd85";
+ };
+ }
+ {
+ name = "wrap_ansi___wrap_ansi_5.1.0.tgz";
+ path = fetchurl {
+ name = "wrap_ansi___wrap_ansi_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz";
+ sha1 = "1fd1f67235d5b6d0fee781056001bfb694c03b09";
+ };
+ }
+ {
+ name = "wrappy___wrappy_1.0.2.tgz";
+ path = fetchurl {
+ name = "wrappy___wrappy_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz";
+ sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+ };
+ }
+ {
+ name = "write_file_atomic___write_file_atomic_2.4.1.tgz";
+ path = fetchurl {
+ name = "write_file_atomic___write_file_atomic_2.4.1.tgz";
+ url = "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.1.tgz";
+ sha1 = "d0b05463c188ae804396fd5ab2a370062af87529";
+ };
+ }
+ {
+ name = "write___write_1.0.3.tgz";
+ path = fetchurl {
+ name = "write___write_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz";
+ sha1 = "0800e14523b923a387e415123c865616aae0f5c3";
+ };
+ }
+ {
+ name = "write___write_0.2.1.tgz";
+ path = fetchurl {
+ name = "write___write_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz";
+ sha1 = "5fc03828e264cea3fe91455476f7a3c566cb0757";
+ };
+ }
+ {
+ name = "ws___ws_5.2.2.tgz";
+ path = fetchurl {
+ name = "ws___ws_5.2.2.tgz";
+ url = "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz";
+ sha1 = "dffef14866b8e8dc9133582514d1befaf96e980f";
+ };
+ }
+ {
+ name = "ws___ws_6.2.1.tgz";
+ path = fetchurl {
+ name = "ws___ws_6.2.1.tgz";
+ url = "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz";
+ sha1 = "442fdf0a47ed64f59b6a5d8ff130f4748ed524fb";
+ };
+ }
+ {
+ name = "ws___ws_3.3.3.tgz";
+ path = fetchurl {
+ name = "ws___ws_3.3.3.tgz";
+ url = "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz";
+ sha1 = "f1cf84fe2d5e901ebce94efaece785f187a228f2";
+ };
+ }
+ {
+ name = "x_is_string___x_is_string_0.1.0.tgz";
+ path = fetchurl {
+ name = "x_is_string___x_is_string_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz";
+ sha1 = "474b50865af3a49a9c4657f05acd145458f77d82";
+ };
+ }
+ {
+ name = "xdg_basedir___xdg_basedir_3.0.0.tgz";
+ path = fetchurl {
+ name = "xdg_basedir___xdg_basedir_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz";
+ sha1 = "496b2cc109eca8dbacfe2dc72b603c17c5870ad4";
+ };
+ }
+ {
+ name = "xml_name_validator___xml_name_validator_3.0.0.tgz";
+ path = fetchurl {
+ name = "xml_name_validator___xml_name_validator_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz";
+ sha1 = "6ae73e06de4d8c6e47f9fb181f78d648ad457c6a";
+ };
+ }
+ {
+ name = "xml2js___xml2js_0.4.19.tgz";
+ path = fetchurl {
+ name = "xml2js___xml2js_0.4.19.tgz";
+ url = "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz";
+ sha1 = "686c20f213209e94abf0d1bcf1efaa291c7827a7";
+ };
+ }
+ {
+ name = "xml___xml_1.0.1.tgz";
+ path = fetchurl {
+ name = "xml___xml_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz";
+ sha1 = "78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5";
+ };
+ }
+ {
+ name = "xmlbuilder___xmlbuilder_8.2.2.tgz";
+ path = fetchurl {
+ name = "xmlbuilder___xmlbuilder_8.2.2.tgz";
+ url = "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-8.2.2.tgz";
+ sha1 = "69248673410b4ba42e1a6136551d2922335aa773";
+ };
+ }
+ {
+ name = "xmlbuilder___xmlbuilder_9.0.7.tgz";
+ path = fetchurl {
+ name = "xmlbuilder___xmlbuilder_9.0.7.tgz";
+ url = "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz";
+ sha1 = "132ee63d2ec5565c557e20f4c22df9aca686b10d";
+ };
+ }
+ {
+ name = "xmlcreate___xmlcreate_1.0.2.tgz";
+ path = fetchurl {
+ name = "xmlcreate___xmlcreate_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/xmlcreate/-/xmlcreate-1.0.2.tgz";
+ sha1 = "fa6bf762a60a413fb3dd8f4b03c5b269238d308f";
+ };
+ }
+ {
+ name = "xmlhttprequest_ssl___xmlhttprequest_ssl_1.5.5.tgz";
+ path = fetchurl {
+ name = "xmlhttprequest_ssl___xmlhttprequest_ssl_1.5.5.tgz";
+ url = "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz";
+ sha1 = "c2876b06168aadc40e57d97e81191ac8f4398b3e";
+ };
+ }
+ {
+ name = "xmlhttprequest___xmlhttprequest_1.8.0.tgz";
+ path = fetchurl {
+ name = "xmlhttprequest___xmlhttprequest_1.8.0.tgz";
+ url = "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz";
+ sha1 = "67fe075c5c24fef39f9d65f5f7b7fe75171968fc";
+ };
+ }
+ {
+ name = "xtend___xtend_4.0.2.tgz";
+ path = fetchurl {
+ name = "xtend___xtend_4.0.2.tgz";
+ url = "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz";
+ sha1 = "bb72779f5fa465186b1f438f674fa347fdb5db54";
+ };
+ }
+ {
+ name = "xterm___xterm_3.5.0.tgz";
+ path = fetchurl {
+ name = "xterm___xterm_3.5.0.tgz";
+ url = "https://registry.yarnpkg.com/xterm/-/xterm-3.5.0.tgz";
+ sha1 = "ba3f464bc5730c9d259ebe62131862224db9ddcc";
+ };
+ }
+ {
+ name = "y18n___y18n_3.2.1.tgz";
+ path = fetchurl {
+ name = "y18n___y18n_3.2.1.tgz";
+ url = "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz";
+ sha1 = "6d15fba884c08679c0d77e88e7759e811e07fa41";
+ };
+ }
+ {
+ name = "y18n___y18n_4.0.0.tgz";
+ path = fetchurl {
+ name = "y18n___y18n_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz";
+ sha1 = "95ef94f85ecc81d007c264e190a120f0a3c8566b";
+ };
+ }
+ {
+ name = "yallist___yallist_2.1.2.tgz";
+ path = fetchurl {
+ name = "yallist___yallist_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz";
+ sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52";
+ };
+ }
+ {
+ name = "yallist___yallist_3.0.3.tgz";
+ path = fetchurl {
+ name = "yallist___yallist_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz";
+ sha1 = "b4b049e314be545e3ce802236d6cd22cd91c3de9";
+ };
+ }
+ {
+ name = "yargs_parser___yargs_parser_10.1.0.tgz";
+ path = fetchurl {
+ name = "yargs_parser___yargs_parser_10.1.0.tgz";
+ url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz";
+ sha1 = "7202265b89f7e9e9f2e5765e0fe735a905edbaa8";
+ };
+ }
+ {
+ name = "yargs_parser___yargs_parser_11.1.1.tgz";
+ path = fetchurl {
+ name = "yargs_parser___yargs_parser_11.1.1.tgz";
+ url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz";
+ sha1 = "879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4";
+ };
+ }
+ {
+ name = "yargs_parser___yargs_parser_13.1.1.tgz";
+ path = fetchurl {
+ name = "yargs_parser___yargs_parser_13.1.1.tgz";
+ url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz";
+ sha1 = "d26058532aa06d365fe091f6a1fc06b2f7e5eca0";
+ };
+ }
+ {
+ name = "yargs_parser___yargs_parser_5.0.0.tgz";
+ path = fetchurl {
+ name = "yargs_parser___yargs_parser_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz";
+ sha1 = "275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a";
+ };
+ }
+ {
+ name = "yargs___yargs_12.0.5.tgz";
+ path = fetchurl {
+ name = "yargs___yargs_12.0.5.tgz";
+ url = "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz";
+ sha1 = "05f5997b609647b64f66b81e3b4b10a368e7ad13";
+ };
+ }
+ {
+ name = "yargs___yargs_13.2.4.tgz";
+ path = fetchurl {
+ name = "yargs___yargs_13.2.4.tgz";
+ url = "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz";
+ sha1 = "0b562b794016eb9651b98bd37acf364aa5d6dc83";
+ };
+ }
+ {
+ name = "yargs___yargs_7.1.0.tgz";
+ path = fetchurl {
+ name = "yargs___yargs_7.1.0.tgz";
+ url = "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz";
+ sha1 = "6ba318eb16961727f5d284f8ea003e8d6154d0c8";
+ };
+ }
+ {
+ name = "yarn_deduplicate___yarn_deduplicate_1.1.1.tgz";
+ path = fetchurl {
+ name = "yarn_deduplicate___yarn_deduplicate_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/yarn-deduplicate/-/yarn-deduplicate-1.1.1.tgz";
+ sha1 = "19b4a87654b66f55bf3a4bd6b153b4e4ab1b6e6d";
+ };
+ }
+ {
+ name = "yeast___yeast_0.1.2.tgz";
+ path = fetchurl {
+ name = "yeast___yeast_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz";
+ sha1 = "008e06d8094320c372dbc2f8ed76a0ca6c8ac419";
+ };
+ }
+ {
+ name = "zen_observable_ts___zen_observable_ts_0.8.18.tgz";
+ path = fetchurl {
+ name = "zen_observable_ts___zen_observable_ts_0.8.18.tgz";
+ url = "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.18.tgz";
+ sha1 = "ade44b1060cc4a800627856ec10b9c67f5f639c8";
+ };
+ }
+ {
+ name = "zen_observable___zen_observable_0.8.11.tgz";
+ path = fetchurl {
+ name = "zen_observable___zen_observable_0.8.11.tgz";
+ url = "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.11.tgz";
+ sha1 = "d3415885eeeb42ee5abb9821c95bb518fcd6d199";
+ };
+ }
+ {
+ name = "zrender___zrender_4.0.7.tgz";
+ path = fetchurl {
+ name = "zrender___zrender_4.0.7.tgz";
+ url = "https://registry.yarnpkg.com/zrender/-/zrender-4.0.7.tgz";
+ sha1 = "15ae960822f5efed410995d37e5107fe3de10e6d";
+ };
+ }
+ ];
+}
diff --git a/pkgs/applications/version-management/meld/default.nix b/pkgs/applications/version-management/meld/default.nix
index 168827c3548..5342a0697ab 100644
--- a/pkgs/applications/version-management/meld/default.nix
+++ b/pkgs/applications/version-management/meld/default.nix
@@ -60,6 +60,6 @@ python3.pkgs.buildPythonApplication rec {
homepage = http://meldmerge.org/;
license = licenses.gpl2;
platforms = platforms.linux ++ platforms.darwin;
- maintainers = with maintainers; [ jtojnar mimadrid ];
+ maintainers = with maintainers; [ jtojnar mimame ];
};
}
diff --git a/pkgs/applications/version-management/monotone-viz/default.nix b/pkgs/applications/version-management/monotone-viz/default.nix
index bee1c82e11b..c23feec6f43 100644
--- a/pkgs/applications/version-management/monotone-viz/default.nix
+++ b/pkgs/applications/version-management/monotone-viz/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, ocaml, lablgtk, libgnomecanvas, camlp4, glib, pkgconfig, makeWrapper
+{ stdenv, fetchurl, ocamlPackages, gnome2, pkgconfig, makeWrapper
, libtool, libpng, yacc, expat, fontconfig, gd, pango, libjpeg, libwebp, xlibsWrapper, libXaw
}:
# We need an old version of Graphviz for format compatibility reasons.
@@ -7,6 +7,8 @@ let graphviz_2_0 = import ./graphviz-2.0.nix {
inherit stdenv fetchurl pkgconfig xlibsWrapper libpng libjpeg expat libXaw
yacc libtool fontconfig pango gd libwebp;
}; in
+let inherit (gnome2) libgnomecanvas glib; in
+let inherit (ocamlPackages) ocaml lablgtk camlp4; in
stdenv.mkDerivation rec {
version = "1.0.2";
pname = "monotone-viz";
diff --git a/pkgs/applications/version-management/p4v/default.nix b/pkgs/applications/version-management/p4v/default.nix
index 0020c8c2189..317cbfde85b 100644
--- a/pkgs/applications/version-management/p4v/default.nix
+++ b/pkgs/applications/version-management/p4v/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, lib, qtbase, qtmultimedia, qtscript, qtsensors, qtwebkit, openssl, xkeyboard_config, wrapQtAppsHook }:
+{ stdenv, fetchurl, lib, qtbase, qtmultimedia, qtscript, qtsensors, qtwebkit, openssl_1_0_2, xkeyboard_config, wrapQtAppsHook }:
stdenv.mkDerivation rec {
pname = "p4v";
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
qtscript
qtsensors
qtwebkit
- openssl
+ openssl_1_0_2
];
dontWrapQtApps = true;
@@ -43,6 +43,6 @@ stdenv.mkDerivation rec {
homepage = https://www.perforce.com;
license = stdenv.lib.licenses.unfreeRedistributable;
platforms = [ "x86_64-linux" ];
- maintainers = [ stdenv.lib.maintainers.nioncode ];
+ maintainers = with stdenv.lib.maintainers; [ nathyong nioncode ];
};
}
diff --git a/pkgs/applications/version-management/pijul/default.nix b/pkgs/applications/version-management/pijul/default.nix
index 6d0e39d47bf..3c553918925 100644
--- a/pkgs/applications/version-management/pijul/default.nix
+++ b/pkgs/applications/version-management/pijul/default.nix
@@ -1,6 +1,17 @@
{ stdenv, fetchurl, rustPlatform, darwin, openssl, libsodium, nettle, clang, libclang, pkgconfig }:
-rustPlatform.buildRustPackage rec {
+let
+ # nettle-sys=1.0.1 requires the des-compat.h header, but it was removed in
+ # nettle 3.5. See https://nest.pijul.com/pijul_org/pijul/discussions/416
+ # Remove with the next release
+ nettle_34 = nettle.overrideAttrs (_oldAttrs: rec {
+ version = "3.4.1";
+ src = fetchurl {
+ url = "mirror://gnu/nettle/nettle-${version}.tar.gz";
+ sha256 = "1bcji95n1iz9p9vsgdgr26v6s7zhpsxfbjjwpqcihpfd6lawyhgr";
+ };
+ });
+in rustPlatform.buildRustPackage rec {
pname = "pijul";
version = "0.12.0";
@@ -20,7 +31,7 @@ rustPlatform.buildRustPackage rec {
LIBCLANG_PATH = libclang + "/lib";
- buildInputs = [ openssl libsodium nettle libclang ] ++ stdenv.lib.optionals stdenv.isDarwin
+ buildInputs = [ openssl libsodium nettle_34 libclang ] ++ stdenv.lib.optionals stdenv.isDarwin
(with darwin.apple_sdk.frameworks; [ CoreServices Security ]);
doCheck = false;
diff --git a/pkgs/applications/version-management/redmine/4.x/Gemfile b/pkgs/applications/version-management/redmine/4.x/Gemfile
deleted file mode 100644
index 343c7b3a547..00000000000
--- a/pkgs/applications/version-management/redmine/4.x/Gemfile
+++ /dev/null
@@ -1,72 +0,0 @@
-source 'https://rubygems.org'
-
-gem "bundler", ">= 1.5.0"
-
-gem "rails", "5.2.3"
-gem "rouge", "~> 3.3.0"
-gem "request_store", "1.0.5"
-gem "mini_mime", "~> 1.0.1"
-gem "actionpack-xml_parser"
-gem "roadie-rails", "~> 1.3.0"
-gem "mimemagic"
-gem "mail", "~> 2.7.1"
-gem "csv", "~> 3.0.1" if RUBY_VERSION >= "2.3" && RUBY_VERSION < "2.6"
-
-gem "nokogiri", (RUBY_VERSION >= "2.3" ? "~> 1.10.0" : "~> 1.9.1")
-gem "i18n", "~> 0.7.0"
-gem "xpath", "< 3.2.0" if RUBY_VERSION < "2.3"
-
-# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
-gem 'tzinfo-data', platforms: [:mingw, :x64_mingw, :mswin]
-gem "rbpdf", "~> 1.19.6"
-
-# Optional gem for LDAP authentication
-group :ldap do
- gem "net-ldap", "~> 0.16.0"
-end
-
-# Optional gem for OpenID authentication
-group :openid do
- gem "ruby-openid", "~> 2.3.0", :require => "openid"
- gem "rack-openid"
-end
-
-platforms :mri, :mingw, :x64_mingw do
- # Optional gem for exporting the gantt to a PNG file, not supported with jruby
- group :rmagick do
- gem "rmagick", "~> 2.16.0"
- end
-
- # Optional Markdown support, not for JRuby
- group :markdown do
- gem "redcarpet", "~> 3.4.0"
- end
-end
-
-# Include database gems for the database adapters NixOS supports
-gem "mysql2", "~> 0.5.0", :platforms => [:mri, :mingw, :x64_mingw]
-gem "pg", "~> 1.1.4", :platforms => [:mri, :mingw, :x64_mingw]
-
-group :development do
- gem "yard"
-end
-
-group :test do
- gem "rails-dom-testing"
- gem "mocha"
- gem "simplecov", "~> 0.14.1", :require => false
- # For running system tests
- gem 'puma', '~> 3.7'
- gem "capybara", '~> 2.13'
- gem "selenium-webdriver"
-end
-
-local_gemfile = File.join(File.dirname(__FILE__), "Gemfile.local")
-if File.exists?(local_gemfile)
- eval_gemfile local_gemfile
-end
-
-# Load plugins' Gemfiles
-Dir.glob File.expand_path("../plugins/*/{Gemfile,PluginGemfile}", __FILE__) do |file|
- eval_gemfile file
-end
diff --git a/pkgs/applications/version-management/redmine/4.x/Gemfile.lock b/pkgs/applications/version-management/redmine/4.x/Gemfile.lock
deleted file mode 100644
index 671d2bb4ac1..00000000000
--- a/pkgs/applications/version-management/redmine/4.x/Gemfile.lock
+++ /dev/null
@@ -1,203 +0,0 @@
-GEM
- remote: https://rubygems.org/
- specs:
- actioncable (5.2.3)
- actionpack (= 5.2.3)
- nio4r (~> 2.0)
- websocket-driver (>= 0.6.1)
- actionmailer (5.2.3)
- actionpack (= 5.2.3)
- actionview (= 5.2.3)
- activejob (= 5.2.3)
- mail (~> 2.5, >= 2.5.4)
- rails-dom-testing (~> 2.0)
- actionpack (5.2.3)
- actionview (= 5.2.3)
- activesupport (= 5.2.3)
- rack (~> 2.0)
- rack-test (>= 0.6.3)
- rails-dom-testing (~> 2.0)
- rails-html-sanitizer (~> 1.0, >= 1.0.2)
- actionpack-xml_parser (2.0.1)
- actionpack (>= 5.0)
- railties (>= 5.0)
- actionview (5.2.3)
- activesupport (= 5.2.3)
- builder (~> 3.1)
- erubi (~> 1.4)
- rails-dom-testing (~> 2.0)
- rails-html-sanitizer (~> 1.0, >= 1.0.3)
- activejob (5.2.3)
- activesupport (= 5.2.3)
- globalid (>= 0.3.6)
- activemodel (5.2.3)
- activesupport (= 5.2.3)
- activerecord (5.2.3)
- activemodel (= 5.2.3)
- activesupport (= 5.2.3)
- arel (>= 9.0)
- activestorage (5.2.3)
- actionpack (= 5.2.3)
- activerecord (= 5.2.3)
- marcel (~> 0.3.1)
- activesupport (5.2.3)
- concurrent-ruby (~> 1.0, >= 1.0.2)
- i18n (>= 0.7, < 2)
- minitest (~> 5.1)
- tzinfo (~> 1.1)
- addressable (2.6.0)
- public_suffix (>= 2.0.2, < 4.0)
- arel (9.0.0)
- builder (3.2.3)
- capybara (2.18.0)
- addressable
- mini_mime (>= 0.1.3)
- nokogiri (>= 1.3.3)
- rack (>= 1.0.0)
- rack-test (>= 0.5.4)
- xpath (>= 2.0, < 4.0)
- childprocess (1.0.1)
- rake (< 13.0)
- concurrent-ruby (1.1.5)
- crass (1.0.4)
- css_parser (1.7.0)
- addressable
- csv (3.0.9)
- docile (1.1.5)
- erubi (1.8.0)
- globalid (0.4.2)
- activesupport (>= 4.2.0)
- htmlentities (4.3.4)
- i18n (0.7.0)
- json (2.2.0)
- loofah (2.2.3)
- crass (~> 1.0.2)
- nokogiri (>= 1.5.9)
- mail (2.7.1)
- mini_mime (>= 0.1.1)
- marcel (0.3.3)
- mimemagic (~> 0.3.2)
- metaclass (0.0.4)
- method_source (0.9.2)
- mimemagic (0.3.3)
- mini_mime (1.0.1)
- mini_portile2 (2.4.0)
- minitest (5.11.3)
- mocha (1.8.0)
- metaclass (~> 0.0.1)
- mysql2 (0.5.2)
- net-ldap (0.16.1)
- nio4r (2.3.1)
- nokogiri (1.10.3)
- mini_portile2 (~> 2.4.0)
- pg (1.1.4)
- public_suffix (3.1.0)
- puma (3.12.1)
- rack (2.0.7)
- rack-openid (1.4.2)
- rack (>= 1.1.0)
- ruby-openid (>= 2.1.8)
- rack-test (1.1.0)
- rack (>= 1.0, < 3)
- rails (5.2.3)
- actioncable (= 5.2.3)
- actionmailer (= 5.2.3)
- actionpack (= 5.2.3)
- actionview (= 5.2.3)
- activejob (= 5.2.3)
- activemodel (= 5.2.3)
- activerecord (= 5.2.3)
- activestorage (= 5.2.3)
- activesupport (= 5.2.3)
- bundler (>= 1.3.0)
- railties (= 5.2.3)
- sprockets-rails (>= 2.0.0)
- rails-dom-testing (2.0.3)
- activesupport (>= 4.2.0)
- nokogiri (>= 1.6)
- rails-html-sanitizer (1.0.4)
- loofah (~> 2.2, >= 2.2.2)
- railties (5.2.3)
- actionpack (= 5.2.3)
- activesupport (= 5.2.3)
- method_source
- rake (>= 0.8.7)
- thor (>= 0.19.0, < 2.0)
- rake (12.3.2)
- rbpdf (1.19.8)
- htmlentities
- rbpdf-font (~> 1.19.0)
- rbpdf-font (1.19.1)
- redcarpet (3.4.0)
- request_store (1.0.5)
- rmagick (2.16.0)
- roadie (3.5.0)
- css_parser (~> 1.4)
- nokogiri (~> 1.8)
- roadie-rails (1.3.0)
- railties (>= 3.0, < 5.3)
- roadie (~> 3.1)
- rouge (3.3.0)
- ruby-openid (2.3.0)
- rubyzip (1.2.3)
- selenium-webdriver (3.142.3)
- childprocess (>= 0.5, < 2.0)
- rubyzip (~> 1.2, >= 1.2.2)
- simplecov (0.14.1)
- docile (~> 1.1.0)
- json (>= 1.8, < 3)
- simplecov-html (~> 0.10.0)
- simplecov-html (0.10.2)
- sprockets (3.7.2)
- concurrent-ruby (~> 1.0)
- rack (> 1, < 3)
- sprockets-rails (3.2.1)
- actionpack (>= 4.0)
- activesupport (>= 4.0)
- sprockets (>= 3.0.0)
- thor (0.20.3)
- thread_safe (0.3.6)
- tzinfo (1.2.5)
- thread_safe (~> 0.1)
- websocket-driver (0.7.1)
- websocket-extensions (>= 0.1.0)
- websocket-extensions (0.1.4)
- xpath (3.2.0)
- nokogiri (~> 1.8)
- yard (0.9.19)
-
-PLATFORMS
- ruby
-
-DEPENDENCIES
- actionpack-xml_parser
- bundler (>= 1.5.0)
- capybara (~> 2.13)
- csv (~> 3.0.1)
- i18n (~> 0.7.0)
- mail (~> 2.7.1)
- mimemagic
- mini_mime (~> 1.0.1)
- mocha
- mysql2 (~> 0.5.0)
- net-ldap (~> 0.16.0)
- nokogiri (~> 1.10.0)
- pg (~> 1.1.4)
- puma (~> 3.7)
- rack-openid
- rails (= 5.2.3)
- rails-dom-testing
- rbpdf (~> 1.19.6)
- redcarpet (~> 3.4.0)
- request_store (= 1.0.5)
- rmagick (~> 2.16.0)
- roadie-rails (~> 1.3.0)
- rouge (~> 3.3.0)
- ruby-openid (~> 2.3.0)
- selenium-webdriver
- simplecov (~> 0.14.1)
- tzinfo-data
- yard
-
-BUNDLED WITH
- 1.16.3
diff --git a/pkgs/applications/version-management/redmine/4.x/default.nix b/pkgs/applications/version-management/redmine/4.x/default.nix
deleted file mode 100644
index a3ba418a146..00000000000
--- a/pkgs/applications/version-management/redmine/4.x/default.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{ stdenv, fetchurl, bundlerEnv, ruby }:
-
-let
- version = "4.0.4";
- rubyEnv = bundlerEnv {
- name = "redmine-env-${version}";
-
- inherit ruby;
- gemdir = ./.;
- groups = [ "ldap" "openid" ];
- };
-in
- stdenv.mkDerivation rec {
- pname = "redmine";
- inherit version;
-
- src = fetchurl {
- url = "https://www.redmine.org/releases/${pname}-${version}.tar.gz";
- sha256 = "0i5bmgdi3mahbis9hn0hk53rnz4ihp9yij4b4i07ny9vf3n4kp1a";
- };
-
- buildInputs = [ rubyEnv rubyEnv.wrappedRuby rubyEnv.bundler ];
-
- buildPhase = ''
- mv config config.dist
- mv public/themes public/themes.dist
- '';
-
- installPhase = ''
- mkdir -p $out/share
- cp -r . $out/share/redmine
- for i in config files log plugins public/plugin_assets public/themes tmp; do
- rm -rf $out/share/redmine/$i
- ln -fs /run/redmine/$i $out/share/redmine/$i
- done
- '';
-
- meta = with stdenv.lib; {
- homepage = http://www.redmine.org/;
- platforms = platforms.linux;
- maintainers = [ maintainers.aanderse ];
- license = licenses.gpl2;
- };
- }
diff --git a/pkgs/applications/version-management/redmine/4.x/gemset.nix b/pkgs/applications/version-management/redmine/4.x/gemset.nix
deleted file mode 100644
index 34e459111f8..00000000000
--- a/pkgs/applications/version-management/redmine/4.x/gemset.nix
+++ /dev/null
@@ -1,614 +0,0 @@
-{
- actioncable = {
- dependencies = ["actionpack" "nio4r" "websocket-driver"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "04wd9rf8sglrqc8jz49apqcxbi51gdj7l1apf5qr4i86iddk6pkm";
- type = "gem";
- };
- version = "5.2.3";
- };
- actionmailer = {
- dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "15laym06zcm2021qdhlyr6y9jn1marw436i89hcxqg14a8zvyvwa";
- type = "gem";
- };
- version = "5.2.3";
- };
- actionpack = {
- dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1s2iay17i2k0xx36cmnpbrmr5w6x70jk7fq1d8w70xcdw5chm0w1";
- type = "gem";
- };
- version = "5.2.3";
- };
- actionpack-xml_parser = {
- dependencies = ["actionpack" "railties"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1rnm6jrw3mzcf2g3q498igmhsn0kfkxq79w0nm532iclx4g4djs0";
- type = "gem";
- };
- version = "2.0.1";
- };
- actionview = {
- dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1v49rgf8305grqf6gq7qa47qhamr369igyy0giycz60x86afyr4h";
- type = "gem";
- };
- version = "5.2.3";
- };
- activejob = {
- dependencies = ["activesupport" "globalid"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "17vizibxbsli5yppgrvmw13wj7a9xy19s5nqxf1k23bbk2s5b87s";
- type = "gem";
- };
- version = "5.2.3";
- };
- activemodel = {
- dependencies = ["activesupport"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0mghh9di8011ara9h1r5a216yzk1vjm9r3p0gdvdi8j1zmkl6k6h";
- type = "gem";
- };
- version = "5.2.3";
- };
- activerecord = {
- dependencies = ["activemodel" "activesupport" "arel"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0d6036f592803iyvp6bw98p3sg638mia5dbw19lvachx6jgzfvpw";
- type = "gem";
- };
- version = "5.2.3";
- };
- activestorage = {
- dependencies = ["actionpack" "activerecord" "marcel"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "04is6ipjqw1f337i8pm8w5bd99rpygqfd0fzzxkr7jd308ggmsjk";
- type = "gem";
- };
- version = "5.2.3";
- };
- activesupport = {
- dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "110vp4frgkw3mpzlmshg2f2ig09cknls2w68ym1r1s39d01v0mi8";
- type = "gem";
- };
- version = "5.2.3";
- };
- addressable = {
- dependencies = ["public_suffix"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0bcm2hchn897xjhqj9zzsxf3n9xhddymj4lsclz508f4vw3av46l";
- type = "gem";
- };
- version = "2.6.0";
- };
- arel = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1jk7wlmkr61f6g36w9s2sn46nmdg6wn2jfssrhbhirv5x9n95nk0";
- type = "gem";
- };
- version = "9.0.0";
- };
- builder = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0qibi5s67lpdv1wgcj66wcymcr04q6j4mzws6a479n0mlrmh5wr1";
- type = "gem";
- };
- version = "3.2.3";
- };
- capybara = {
- dependencies = ["addressable" "mini_mime" "nokogiri" "rack" "rack-test" "xpath"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0yv77rnsjlvs8qpfn9n5vf1h6b9agxwhxw09gssbiw9zn9j20jh8";
- type = "gem";
- };
- version = "2.18.0";
- };
- childprocess = {
- dependencies = ["rake"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1d2gasf988jh2k3fjb7i54c68rq6ni6jf9w0gnsfhrq94a6mprkz";
- type = "gem";
- };
- version = "1.0.1";
- };
- concurrent-ruby = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1x07r23s7836cpp5z9yrlbpljcxpax14yw4fy4bnp6crhr6x24an";
- type = "gem";
- };
- version = "1.1.5";
- };
- crass = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0bpxzy6gjw9ggjynlxschbfsgmx8lv3zw1azkjvnb8b9i895dqfi";
- type = "gem";
- };
- version = "1.0.4";
- };
- css_parser = {
- dependencies = ["addressable"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1y4vc018b5mzp7winw4pbb22jk0dpxp22pzzxq7w0rgvfxzi89pd";
- type = "gem";
- };
- version = "1.7.0";
- };
- csv = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "097rl10ivzlya5640530ayls2f1vid2mfgjy9ngd789qmp0j6x4b";
- type = "gem";
- };
- version = "3.0.9";
- };
- docile = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0m8j31whq7bm5ljgmsrlfkiqvacrw6iz9wq10r3gwrv5785y8gjx";
- type = "gem";
- };
- version = "1.1.5";
- };
- erubi = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1kagnf6ziahj0d781s6ryy6fwqwa3ad4xbzzj84p9m4nv4c2jir1";
- type = "gem";
- };
- version = "1.8.0";
- };
- globalid = {
- dependencies = ["activesupport"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1zkxndvck72bfw235bd9nl2ii0lvs5z88q14706cmn702ww2mxv1";
- type = "gem";
- };
- version = "0.4.2";
- };
- htmlentities = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj";
- type = "gem";
- };
- version = "4.3.4";
- };
- i18n = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1i5z1ykl8zhszsxcs8mzl8d0dxgs3ylz8qlzrw74jb0gplkx6758";
- type = "gem";
- };
- version = "0.7.0";
- };
- json = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0sx97bm9by389rbzv8r1f43h06xcz8vwi3h5jv074gvparql7lcx";
- type = "gem";
- };
- version = "2.2.0";
- };
- loofah = {
- dependencies = ["crass" "nokogiri"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1ccsid33xjajd0im2xv941aywi58z7ihwkvaf1w2bv89vn5bhsjg";
- type = "gem";
- };
- version = "2.2.3";
- };
- mail = {
- dependencies = ["mini_mime"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "00wwz6ys0502dpk8xprwcqfwyf3hmnx6lgxaiq6vj43mkx43sapc";
- type = "gem";
- };
- version = "2.7.1";
- };
- marcel = {
- dependencies = ["mimemagic"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1nxbjmcyg8vlw6zwagf17l9y2mwkagmmkg95xybpn4bmf3rfnksx";
- type = "gem";
- };
- version = "0.3.3";
- };
- metaclass = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0hp99y2b1nh0nr8pc398n3f8lakgci6pkrg4bf2b2211j1f6hsc5";
- type = "gem";
- };
- version = "0.0.4";
- };
- method_source = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1pviwzvdqd90gn6y7illcdd9adapw8fczml933p5vl739dkvl3lq";
- type = "gem";
- };
- version = "0.9.2";
- };
- mimemagic = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "04cp5sfbh1qx82yqxn0q75c7hlcx8y1dr5g3kyzwm4mx6wi2gifw";
- type = "gem";
- };
- version = "0.3.3";
- };
- mini_mime = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1q4pshq387lzv9m39jv32vwb8wrq3wc4jwgl4jk209r4l33v09d3";
- type = "gem";
- };
- version = "1.0.1";
- };
- mini_portile2 = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
- type = "gem";
- };
- version = "2.4.0";
- };
- minitest = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq";
- type = "gem";
- };
- version = "5.11.3";
- };
- mocha = {
- dependencies = ["metaclass"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "12aglpiq1h18j5a4rlwvnsvnsi2f3407v5xm59lgcg3ymlyak4al";
- type = "gem";
- };
- version = "1.8.0";
- };
- mysql2 = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1a2kdjgzwh1p2rkcmxaawy6ibi32b04wbdd5d4wr8i342pq76di4";
- type = "gem";
- };
- version = "0.5.2";
- };
- net-ldap = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "016igqz81a8zcwqzp5bbhryqmb2skmyf57ij3nb5z8sxwhw22jgh";
- type = "gem";
- };
- version = "0.16.1";
- };
- nio4r = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1a41ca1kpdmrypjp9xbgvckpy8g26zxphkja9vk7j5wl4n8yvlyr";
- type = "gem";
- };
- version = "2.3.1";
- };
- nokogiri = {
- dependencies = ["mini_portile2"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "02bjydih0j515szfv9mls195cvpyidh6ixm7dwbl3s2sbaxxk5s4";
- type = "gem";
- };
- version = "1.10.3";
- };
- pg = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0fmnyxcyrvgdbgq7m09whgn9i8rwfybk0w8aii1nc4g5kqw0k2jy";
- type = "gem";
- };
- version = "1.1.4";
- };
- public_suffix = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1c7c5xxkx91hwj4572hbnyvxmydb90q69wlpr2l0dxrmwx2p365l";
- type = "gem";
- };
- version = "3.1.0";
- };
- puma = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1pkrbvak6rlf147qpd4zss031qrwwh53g8s6017037iwg0436kv3";
- type = "gem";
- };
- version = "3.12.1";
- };
- rack = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0z90vflxbgjy2n84r7mbyax3i2vyvvrxxrf86ljzn5rw65jgnn2i";
- type = "gem";
- };
- version = "2.0.7";
- };
- rack-openid = {
- dependencies = ["rack" "ruby-openid"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0sg85yn981j3a0iri3ch4znzdwscvz29l7vrk3dafqw4fdg31llc";
- type = "gem";
- };
- version = "1.4.2";
- };
- rack-test = {
- dependencies = ["rack"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0rh8h376mx71ci5yklnpqqn118z3bl67nnv5k801qaqn1zs62h8m";
- type = "gem";
- };
- version = "1.1.0";
- };
- rails = {
- dependencies = ["actioncable" "actionmailer" "actionpack" "actionview" "activejob" "activemodel" "activerecord" "activestorage" "activesupport" "railties" "sprockets-rails"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1p7cszi3n9ksxchxnccmz61pd1i3rjg4813dsdinsm8xm5k1pdgr";
- type = "gem";
- };
- version = "5.2.3";
- };
- rails-dom-testing = {
- dependencies = ["activesupport" "nokogiri"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1lfq2a7kp2x64dzzi5p4cjcbiv62vxh9lyqk2f0rqq3fkzrw8h5i";
- type = "gem";
- };
- version = "2.0.3";
- };
- rails-html-sanitizer = {
- dependencies = ["loofah"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1gv7vr5d9g2xmgpjfq4nxsqr70r9pr042r9ycqqnfvw5cz9c7jwr";
- type = "gem";
- };
- version = "1.0.4";
- };
- railties = {
- dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1gn9fwb5wm08fbj7zpilqgblfl315l5b7pg4jsvxlizvrzg8h8q4";
- type = "gem";
- };
- version = "5.2.3";
- };
- rake = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1sy5a7nh6xjdc9yhcw31jji7ssrf9v5806hn95gbrzr998a2ydjn";
- type = "gem";
- };
- version = "12.3.2";
- };
- rbpdf = {
- dependencies = ["htmlentities" "rbpdf-font"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0fnhcn4z2zz6ic1yvl5hmhwmkdnybh8f8fnk1ni7bvl2s4ig5195";
- type = "gem";
- };
- version = "1.19.8";
- };
- rbpdf-font = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0pxlr0l4vf785qpy55m439dyii63a26l0sd0yyhbwwcy9zm9hd1v";
- type = "gem";
- };
- version = "1.19.1";
- };
- redcarpet = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0h9qz2hik4s9knpmbwrzb3jcp3vc5vygp9ya8lcpl7f1l9khmcd7";
- type = "gem";
- };
- version = "3.4.0";
- };
- request_store = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1ky19wb6mpq6dxb81a0h4hnzx7a4ka99n9ay2syi68djbr4bkbbh";
- type = "gem";
- };
- version = "1.0.5";
- };
- rmagick = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0m9x15cdlkcb9826s3s2jd97hxf50hln22p94x8hcccxi1lwklq6";
- type = "gem";
- };
- version = "2.16.0";
- };
- roadie = {
- dependencies = ["css_parser" "nokogiri"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0b2qgr725hnscz3ldb607gwgjkr47ncs1jjnk6zh0h70p5dxrk2d";
- type = "gem";
- };
- version = "3.5.0";
- };
- roadie-rails = {
- dependencies = ["railties" "roadie"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "02km0ama85mkw7kkn6qif86b781pglfdmqrwx5s6hwjlzk16qih3";
- type = "gem";
- };
- version = "1.3.0";
- };
- rouge = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1digsi2s8wyzx8vsqcxasw205lg6s7izx8jypl8rrpjwshmv83ql";
- type = "gem";
- };
- version = "3.3.0";
- };
- ruby-openid = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0yzaf2c1i88757554wk38rxqmj0xzgmwk2zx7gi98w2zx42d17pn";
- type = "gem";
- };
- version = "2.3.0";
- };
- rubyzip = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1w9gw28ly3zyqydnm8phxchf4ymyjl2r7zf7c12z8kla10cpmhlc";
- type = "gem";
- };
- version = "1.2.3";
- };
- selenium-webdriver = {
- dependencies = ["childprocess" "rubyzip"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0i0jr4qrcvg5isc11ivjw7f9gywbimnz613k82bfcrnlzdf90mxy";
- type = "gem";
- };
- version = "3.142.3";
- };
- simplecov = {
- dependencies = ["docile" "json" "simplecov-html"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1r9fnsnsqj432cmrpafryn8nif3x0qg9mdnvrcf0wr01prkdlnww";
- type = "gem";
- };
- version = "0.14.1";
- };
- simplecov-html = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1lihraa4rgxk8wbfl77fy9sf0ypk31iivly8vl3w04srd7i0clzn";
- type = "gem";
- };
- version = "0.10.2";
- };
- sprockets = {
- dependencies = ["concurrent-ruby" "rack"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay";
- type = "gem";
- };
- version = "3.7.2";
- };
- sprockets-rails = {
- dependencies = ["actionpack" "activesupport" "sprockets"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0ab42pm8p5zxpv3sfraq45b9lj39cz9mrpdirm30vywzrwwkm5p1";
- type = "gem";
- };
- version = "3.2.1";
- };
- thor = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1yhrnp9x8qcy5vc7g438amd5j9sw83ih7c30dr6g6slgw9zj3g29";
- type = "gem";
- };
- version = "0.20.3";
- };
- thread_safe = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
- type = "gem";
- };
- version = "0.3.6";
- };
- tzinfo = {
- dependencies = ["thread_safe"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z";
- type = "gem";
- };
- version = "1.2.5";
- };
- websocket-driver = {
- dependencies = ["websocket-extensions"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1bxamwqldmy98hxs5pqby3andws14hl36ch78g0s81gaz9b91nj2";
- type = "gem";
- };
- version = "0.7.1";
- };
- websocket-extensions = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "00i624ng1nvkz1yckj3f8yxxp6hi7xaqf40qh9q3hj2n1l9i8g6m";
- type = "gem";
- };
- version = "0.1.4";
- };
- xpath = {
- dependencies = ["nokogiri"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0bh8lk9hvlpn7vmi6h4hkcwjzvs2y0cmkk3yjjdr8fxvj6fsgzbd";
- type = "gem";
- };
- version = "3.2.0";
- };
- yard = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1w0i13a0vsw4jmlj59xn64rdsqcsl9r3rmjjgdca5i51m1q4ix6v";
- type = "gem";
- };
- version = "0.9.19";
- };
-}
\ No newline at end of file
diff --git a/pkgs/applications/version-management/redmine/Gemfile b/pkgs/applications/version-management/redmine/Gemfile
index 5a0283e20ed..b51096d16f3 100644
--- a/pkgs/applications/version-management/redmine/Gemfile
+++ b/pkgs/applications/version-management/redmine/Gemfile
@@ -1,30 +1,23 @@
source 'https://rubygems.org'
-gem "bundler", ">= 1.5.0", "< 2.0.0"
+gem "bundler", ">= 1.5.0"
-gem "rails", "4.2.11.1"
-gem "addressable", "2.4.0" if RUBY_VERSION < "2.0"
-if RUBY_VERSION < "2.1"
- gem "public_suffix", (RUBY_VERSION < "2.0" ? "~> 1.4" : "~> 2.0.5")
-end
-gem "jquery-rails", "~> 3.1.4"
-gem "coderay", "~> 1.1.1"
+gem "rails", "5.2.3"
+gem "rouge", "~> 3.3.0"
gem "request_store", "1.0.5"
-gem "mime-types", (RUBY_VERSION >= "2.0" ? "~> 3.0" : "~> 2.99")
-gem "protected_attributes"
+gem "mini_mime", "~> 1.0.1"
gem "actionpack-xml_parser"
-gem "roadie-rails", "~> 1.1.1"
-gem "roadie", "~> 3.2.1"
+gem "roadie-rails", "~> 1.3.0"
gem "mimemagic"
-gem "mail", "~> 2.6.4"
+gem "mail", "~> 2.7.1"
+gem "csv", "~> 3.0.1" if RUBY_VERSION >= "2.3" && RUBY_VERSION < "2.6"
-gem "nokogiri", (RUBY_VERSION >= "2.1" ? "~> 1.8.1" : "~> 1.6.8")
+gem "nokogiri", (RUBY_VERSION >= "2.3" ? "~> 1.10.0" : "~> 1.9.1")
gem "i18n", "~> 0.7.0"
-gem "ffi", "1.9.14", :platforms => :mingw if RUBY_VERSION < "2.0"
gem "xpath", "< 3.2.0" if RUBY_VERSION < "2.3"
-# Request at least rails-html-sanitizer 1.0.3 because of security advisories
-gem "rails-html-sanitizer", ">= 1.0.3"
+# TODO: Remove the following line when #32223 is fixed
+gem "sprockets", "~> 3.7.2"
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :x64_mingw, :mswin]
@@ -32,12 +25,12 @@ gem "rbpdf", "~> 1.19.6"
# Optional gem for LDAP authentication
group :ldap do
- gem "net-ldap", "~> 0.12.0"
+ gem "net-ldap", "~> 0.16.0"
end
# Optional gem for OpenID authentication
group :openid do
- gem "ruby-openid", "~> 2.3.0", :require => "openid"
+ gem "ruby-openid", "~> 2.9.2", :require => "openid"
gem "rack-openid"
end
@@ -54,24 +47,21 @@ platforms :mri, :mingw, :x64_mingw do
end
# Include database gems for the database adapters NixOS supports
-gem "mysql2", "~> 0.4.6", :platforms => [:mri, :mingw, :x64_mingw]
-gem "pg", "~> 0.18.1", :platforms => [:mri, :mingw, :x64_mingw]
+gem "mysql2", "~> 0.5.0", :platforms => [:mri, :mingw, :x64_mingw]
+gem "pg", "~> 1.1.4", :platforms => [:mri, :mingw, :x64_mingw]
group :development do
- gem "rdoc", "~> 4.3"
gem "yard"
end
group :test do
- gem "minitest"
gem "rails-dom-testing"
gem "mocha"
- gem "simplecov", "~> 0.9.1", :require => false
- # TODO: remove this after upgrading to Rails 5
- gem "test_after_commit", "~> 0.4.2"
- # For running UI tests
+ gem "simplecov", "~> 0.14.1", :require => false
+ # For running system tests
+ gem 'puma', '~> 3.7'
gem "capybara", '~> 2.13'
- gem "selenium-webdriver", "~> 2.53.4"
+ gem "selenium-webdriver"
end
local_gemfile = File.join(File.dirname(__FILE__), "Gemfile.local")
diff --git a/pkgs/applications/version-management/redmine/Gemfile.lock b/pkgs/applications/version-management/redmine/Gemfile.lock
index 21296d343b4..aa434465b02 100644
--- a/pkgs/applications/version-management/redmine/Gemfile.lock
+++ b/pkgs/applications/version-management/redmine/Gemfile.lock
@@ -1,45 +1,53 @@
GEM
remote: https://rubygems.org/
specs:
- actionmailer (4.2.11.1)
- actionpack (= 4.2.11.1)
- actionview (= 4.2.11.1)
- activejob (= 4.2.11.1)
+ actioncable (5.2.3)
+ actionpack (= 5.2.3)
+ nio4r (~> 2.0)
+ websocket-driver (>= 0.6.1)
+ actionmailer (5.2.3)
+ actionpack (= 5.2.3)
+ actionview (= 5.2.3)
+ activejob (= 5.2.3)
mail (~> 2.5, >= 2.5.4)
- rails-dom-testing (~> 1.0, >= 1.0.5)
- actionpack (4.2.11.1)
- actionview (= 4.2.11.1)
- activesupport (= 4.2.11.1)
- rack (~> 1.6)
- rack-test (~> 0.6.2)
- rails-dom-testing (~> 1.0, >= 1.0.5)
+ rails-dom-testing (~> 2.0)
+ actionpack (5.2.3)
+ actionview (= 5.2.3)
+ activesupport (= 5.2.3)
+ rack (~> 2.0)
+ rack-test (>= 0.6.3)
+ rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.0.2)
- actionpack-xml_parser (1.0.2)
- actionpack (>= 4.0.0, < 5)
- actionview (4.2.11.1)
- activesupport (= 4.2.11.1)
+ actionpack-xml_parser (2.0.1)
+ actionpack (>= 5.0)
+ railties (>= 5.0)
+ actionview (5.2.3)
+ activesupport (= 5.2.3)
builder (~> 3.1)
- erubis (~> 2.7.0)
- rails-dom-testing (~> 1.0, >= 1.0.5)
+ erubi (~> 1.4)
+ rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.0.3)
- activejob (4.2.11.1)
- activesupport (= 4.2.11.1)
- globalid (>= 0.3.0)
- activemodel (4.2.11.1)
- activesupport (= 4.2.11.1)
- builder (~> 3.1)
- activerecord (4.2.11.1)
- activemodel (= 4.2.11.1)
- activesupport (= 4.2.11.1)
- arel (~> 6.0)
- activesupport (4.2.11.1)
- i18n (~> 0.7)
+ activejob (5.2.3)
+ activesupport (= 5.2.3)
+ globalid (>= 0.3.6)
+ activemodel (5.2.3)
+ activesupport (= 5.2.3)
+ activerecord (5.2.3)
+ activemodel (= 5.2.3)
+ activesupport (= 5.2.3)
+ arel (>= 9.0)
+ activestorage (5.2.3)
+ actionpack (= 5.2.3)
+ activerecord (= 5.2.3)
+ marcel (~> 0.3.1)
+ activesupport (5.2.3)
+ concurrent-ruby (~> 1.0, >= 1.0.2)
+ i18n (>= 0.7, < 2)
minitest (~> 5.1)
- thread_safe (~> 0.3, >= 0.3.4)
tzinfo (~> 1.1)
- addressable (2.6.0)
- public_suffix (>= 2.0.2, < 4.0)
- arel (6.0.4)
+ addressable (2.7.0)
+ public_suffix (>= 2.0.2, < 5.0)
+ arel (9.0.0)
builder (3.2.3)
capybara (2.18.0)
addressable
@@ -48,103 +56,97 @@ GEM
rack (>= 1.0.0)
rack-test (>= 0.5.4)
xpath (>= 2.0, < 4.0)
- childprocess (0.9.0)
- ffi (~> 1.0, >= 1.0.11)
- coderay (1.1.2)
+ childprocess (3.0.0)
concurrent-ruby (1.1.5)
- crass (1.0.4)
+ crass (1.0.5)
css_parser (1.7.0)
addressable
+ csv (3.0.9)
docile (1.1.5)
- erubis (2.7.0)
- ffi (1.11.1)
+ erubi (1.9.0)
globalid (0.4.2)
activesupport (>= 4.2.0)
htmlentities (4.3.4)
i18n (0.7.0)
- jquery-rails (3.1.5)
- railties (>= 3.0, < 5.0)
- thor (>= 0.14, < 2.0)
- loofah (2.2.3)
+ json (2.2.0)
+ loofah (2.3.0)
crass (~> 1.0.2)
nokogiri (>= 1.5.9)
- mail (2.6.6)
- mime-types (>= 1.16, < 4)
+ mail (2.7.1)
+ mini_mime (>= 0.1.1)
+ marcel (0.3.3)
+ mimemagic (~> 0.3.2)
metaclass (0.0.4)
- mime-types (3.2.2)
- mime-types-data (~> 3.2015)
- mime-types-data (3.2019.0331)
+ method_source (0.9.2)
mimemagic (0.3.3)
- mini_mime (1.0.1)
- mini_portile2 (2.3.0)
- minitest (5.11.3)
- mocha (1.8.0)
+ mini_mime (1.0.2)
+ mini_portile2 (2.4.0)
+ minitest (5.12.2)
+ mocha (1.9.0)
metaclass (~> 0.0.1)
- multi_json (1.13.1)
- mysql2 (0.4.10)
- net-ldap (0.12.1)
- nokogiri (1.8.5)
- mini_portile2 (~> 2.3.0)
- pg (0.18.4)
- protected_attributes (1.1.4)
- activemodel (>= 4.0.1, < 5.0)
- public_suffix (3.1.0)
- rack (1.6.11)
+ mysql2 (0.5.2)
+ net-ldap (0.16.1)
+ nio4r (2.5.2)
+ nokogiri (1.10.4)
+ mini_portile2 (~> 2.4.0)
+ pg (1.1.4)
+ public_suffix (4.0.1)
+ puma (3.12.1)
+ rack (2.0.7)
rack-openid (1.4.2)
rack (>= 1.1.0)
ruby-openid (>= 2.1.8)
- rack-test (0.6.3)
- rack (>= 1.0)
- rails (4.2.11.1)
- actionmailer (= 4.2.11.1)
- actionpack (= 4.2.11.1)
- actionview (= 4.2.11.1)
- activejob (= 4.2.11.1)
- activemodel (= 4.2.11.1)
- activerecord (= 4.2.11.1)
- activesupport (= 4.2.11.1)
- bundler (>= 1.3.0, < 2.0)
- railties (= 4.2.11.1)
- sprockets-rails
- rails-deprecated_sanitizer (1.0.3)
- activesupport (>= 4.2.0.alpha)
- rails-dom-testing (1.0.9)
- activesupport (>= 4.2.0, < 5.0)
- nokogiri (~> 1.6)
- rails-deprecated_sanitizer (>= 1.0.1)
- rails-html-sanitizer (1.0.4)
- loofah (~> 2.2, >= 2.2.2)
- railties (4.2.11.1)
- actionpack (= 4.2.11.1)
- activesupport (= 4.2.11.1)
+ rack-test (1.1.0)
+ rack (>= 1.0, < 3)
+ rails (5.2.3)
+ actioncable (= 5.2.3)
+ actionmailer (= 5.2.3)
+ actionpack (= 5.2.3)
+ actionview (= 5.2.3)
+ activejob (= 5.2.3)
+ activemodel (= 5.2.3)
+ activerecord (= 5.2.3)
+ activestorage (= 5.2.3)
+ activesupport (= 5.2.3)
+ bundler (>= 1.3.0)
+ railties (= 5.2.3)
+ sprockets-rails (>= 2.0.0)
+ rails-dom-testing (2.0.3)
+ activesupport (>= 4.2.0)
+ nokogiri (>= 1.6)
+ rails-html-sanitizer (1.3.0)
+ loofah (~> 2.3)
+ railties (5.2.3)
+ actionpack (= 5.2.3)
+ activesupport (= 5.2.3)
+ method_source
rake (>= 0.8.7)
- thor (>= 0.18.1, < 2.0)
- rake (12.3.2)
+ thor (>= 0.19.0, < 2.0)
+ rake (13.0.0)
rbpdf (1.19.8)
htmlentities
rbpdf-font (~> 1.19.0)
rbpdf-font (1.19.1)
- rdoc (4.3.0)
redcarpet (3.4.0)
request_store (1.0.5)
rmagick (2.16.0)
- roadie (3.2.2)
+ roadie (3.5.1)
css_parser (~> 1.4)
- nokogiri (~> 1.5)
- roadie-rails (1.1.1)
- railties (>= 3.0, < 5.1)
+ nokogiri (~> 1.8)
+ roadie-rails (1.3.0)
+ railties (>= 3.0, < 5.3)
roadie (~> 3.1)
- ruby-openid (2.3.0)
- rubyzip (1.2.3)
- selenium-webdriver (2.53.4)
- childprocess (~> 0.5)
- rubyzip (~> 1.0)
- websocket (~> 1.0)
- simplecov (0.9.2)
+ rouge (3.3.0)
+ ruby-openid (2.9.2)
+ rubyzip (2.0.0)
+ selenium-webdriver (3.142.6)
+ childprocess (>= 0.5, < 4.0)
+ rubyzip (>= 1.2.2)
+ simplecov (0.14.1)
docile (~> 1.1.0)
- multi_json (~> 1.0)
- simplecov-html (~> 0.9.0)
- simplecov-html (0.9.0)
+ json (>= 1.8, < 3)
+ simplecov-html (~> 0.10.0)
+ simplecov-html (0.10.2)
sprockets (3.7.2)
concurrent-ruby (~> 1.0)
rack (> 1, < 3)
@@ -152,52 +154,48 @@ GEM
actionpack (>= 4.0)
activesupport (>= 4.0)
sprockets (>= 3.0.0)
- test_after_commit (0.4.2)
- activerecord (>= 3.2)
thor (0.20.3)
thread_safe (0.3.6)
tzinfo (1.2.5)
thread_safe (~> 0.1)
- websocket (1.2.8)
+ websocket-driver (0.7.1)
+ websocket-extensions (>= 0.1.0)
+ websocket-extensions (0.1.4)
xpath (3.2.0)
nokogiri (~> 1.8)
- yard (0.9.19)
+ yard (0.9.20)
PLATFORMS
ruby
DEPENDENCIES
actionpack-xml_parser
- bundler (>= 1.5.0, < 2.0.0)
+ bundler (>= 1.5.0)
capybara (~> 2.13)
- coderay (~> 1.1.1)
+ csv (~> 3.0.1)
i18n (~> 0.7.0)
- jquery-rails (~> 3.1.4)
- mail (~> 2.6.4)
- mime-types (~> 3.0)
+ mail (~> 2.7.1)
mimemagic
- minitest
+ mini_mime (~> 1.0.1)
mocha
- mysql2 (~> 0.4.6)
- net-ldap (~> 0.12.0)
- nokogiri (~> 1.8.1)
- pg (~> 0.18.1)
- protected_attributes
+ mysql2 (~> 0.5.0)
+ net-ldap (~> 0.16.0)
+ nokogiri (~> 1.10.0)
+ pg (~> 1.1.4)
+ puma (~> 3.7)
rack-openid
- rails (= 4.2.11.1)
+ rails (= 5.2.3)
rails-dom-testing
- rails-html-sanitizer (>= 1.0.3)
rbpdf (~> 1.19.6)
- rdoc (~> 4.3)
redcarpet (~> 3.4.0)
request_store (= 1.0.5)
rmagick (~> 2.16.0)
- roadie (~> 3.2.1)
- roadie-rails (~> 1.1.1)
- ruby-openid (~> 2.3.0)
- selenium-webdriver (~> 2.53.4)
- simplecov (~> 0.9.1)
- test_after_commit (~> 0.4.2)
+ roadie-rails (~> 1.3.0)
+ rouge (~> 3.3.0)
+ ruby-openid (~> 2.9.2)
+ selenium-webdriver
+ simplecov (~> 0.14.1)
+ sprockets (~> 3.7.2)
tzinfo-data
yard
diff --git a/pkgs/applications/version-management/redmine/default.nix b/pkgs/applications/version-management/redmine/default.nix
index 0b1f64b58a1..e70850e8821 100644
--- a/pkgs/applications/version-management/redmine/default.nix
+++ b/pkgs/applications/version-management/redmine/default.nix
@@ -1,7 +1,7 @@
{ stdenv, fetchurl, bundlerEnv, ruby }:
let
- version = "3.4.11";
+ version = "4.0.5";
rubyEnv = bundlerEnv {
name = "redmine-env-${version}";
@@ -16,7 +16,7 @@ in
src = fetchurl {
url = "https://www.redmine.org/releases/${pname}-${version}.tar.gz";
- sha256 = "14987sd9ff2n3982qlfwd4m0g1m10w8jyv791nica3wppvnrxh0r";
+ sha256 = "1s39qd3j27ryn3p01501iavbkyvikdxl3165nk8i8pgxcxlbxsk4";
};
buildInputs = [ rubyEnv rubyEnv.wrappedRuby rubyEnv.bundler ];
diff --git a/pkgs/applications/version-management/redmine/gemset.nix b/pkgs/applications/version-management/redmine/gemset.nix
index 4ef4bd40427..e969d2bfee0 100644
--- a/pkgs/applications/version-management/redmine/gemset.nix
+++ b/pkgs/applications/version-management/redmine/gemset.nix
@@ -1,92 +1,110 @@
{
+ actioncable = {
+ dependencies = ["actionpack" "nio4r" "websocket-driver"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "04wd9rf8sglrqc8jz49apqcxbi51gdj7l1apf5qr4i86iddk6pkm";
+ type = "gem";
+ };
+ version = "5.2.3";
+ };
actionmailer = {
dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "18wwlj4f7jffv3vxm80d2z36nwza95l5xfcqc401hvvrls4xzhsy";
+ sha256 = "15laym06zcm2021qdhlyr6y9jn1marw436i89hcxqg14a8zvyvwa";
type = "gem";
};
- version = "4.2.11.1";
+ version = "5.2.3";
};
actionpack = {
dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0rmldsk3a4lwxk0lrp6x1nz1v1r2xmbm3300l4ghgfygv3grdwjh";
+ sha256 = "1s2iay17i2k0xx36cmnpbrmr5w6x70jk7fq1d8w70xcdw5chm0w1";
type = "gem";
};
- version = "4.2.11.1";
+ version = "5.2.3";
};
actionpack-xml_parser = {
- dependencies = ["actionpack"];
+ dependencies = ["actionpack" "railties"];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "17am4nd7x6g8x7f8i35rzzv2qrxlkc230rbgzg98af0yf50j8gka";
+ sha256 = "1rnm6jrw3mzcf2g3q498igmhsn0kfkxq79w0nm532iclx4g4djs0";
type = "gem";
};
- version = "1.0.2";
+ version = "2.0.1";
};
actionview = {
- dependencies = ["activesupport" "builder" "erubis" "rails-dom-testing" "rails-html-sanitizer"];
+ dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0x7vjn8q6blzyf7j3kwg0ciy7vnfh28bjdkd1mp9k4ghp9jn0g9p";
+ sha256 = "1v49rgf8305grqf6gq7qa47qhamr369igyy0giycz60x86afyr4h";
type = "gem";
};
- version = "4.2.11.1";
+ version = "5.2.3";
};
activejob = {
dependencies = ["activesupport" "globalid"];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0jy1c1r6syjqpa0sh9f1p4iaxzvp6qg4n6zs774j9z27q7h407mj";
+ sha256 = "17vizibxbsli5yppgrvmw13wj7a9xy19s5nqxf1k23bbk2s5b87s";
type = "gem";
};
- version = "4.2.11.1";
+ version = "5.2.3";
};
activemodel = {
- dependencies = ["activesupport" "builder"];
+ dependencies = ["activesupport"];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1c1x0rd6wnk1f0gsmxs6x3gx7yf6fs9qqkdv7r4hlbcdd849in33";
+ sha256 = "0mghh9di8011ara9h1r5a216yzk1vjm9r3p0gdvdi8j1zmkl6k6h";
type = "gem";
};
- version = "4.2.11.1";
+ version = "5.2.3";
};
activerecord = {
dependencies = ["activemodel" "activesupport" "arel"];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "07ixiwi0zzs9skqarvpfamsnay7npfswymrn28ngxaf8hi279q5p";
+ sha256 = "0d6036f592803iyvp6bw98p3sg638mia5dbw19lvachx6jgzfvpw";
type = "gem";
};
- version = "4.2.11.1";
+ version = "5.2.3";
};
- activesupport = {
- dependencies = ["i18n" "minitest" "thread_safe" "tzinfo"];
+ activestorage = {
+ dependencies = ["actionpack" "activerecord" "marcel"];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1vbq7a805bfvyik2q3kl9s3r418f5qzvysqbz2cwy4hr7m2q4ir6";
+ sha256 = "04is6ipjqw1f337i8pm8w5bd99rpygqfd0fzzxkr7jd308ggmsjk";
type = "gem";
};
- version = "4.2.11.1";
+ version = "5.2.3";
+ };
+ activesupport = {
+ dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "110vp4frgkw3mpzlmshg2f2ig09cknls2w68ym1r1s39d01v0mi8";
+ type = "gem";
+ };
+ version = "5.2.3";
};
addressable = {
dependencies = ["public_suffix"];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0bcm2hchn897xjhqj9zzsxf3n9xhddymj4lsclz508f4vw3av46l";
+ sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
type = "gem";
};
- version = "2.6.0";
+ version = "2.7.0";
};
arel = {
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0nfcrdiys6q6ylxiblky9jyssrw2xj96fmxmal7f4f0jj3417vj4";
+ sha256 = "1jk7wlmkr61f6g36w9s2sn46nmdg6wn2jfssrhbhirv5x9n95nk0";
type = "gem";
};
- version = "6.0.4";
+ version = "9.0.0";
};
builder = {
source = {
@@ -106,21 +124,12 @@
version = "2.18.0";
};
childprocess = {
- dependencies = ["ffi"];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0a61922kmvcxyj5l70fycapr87gz1dzzlkfpq85rfqk5vdh3d28p";
+ sha256 = "1ic028k8xgm2dds9mqnvwwx3ibaz32j8455zxr9f4bcnviyahya5";
type = "gem";
};
- version = "0.9.0";
- };
- coderay = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y";
- type = "gem";
- };
- version = "1.1.2";
+ version = "3.0.0";
};
concurrent-ruby = {
source = {
@@ -133,10 +142,10 @@
crass = {
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0bpxzy6gjw9ggjynlxschbfsgmx8lv3zw1azkjvnb8b9i895dqfi";
+ sha256 = "030sc98kjrb36rh7g21qsbdfxrj6knsjkx0mn3b7gig8zknwhp2f";
type = "gem";
};
- version = "1.0.4";
+ version = "1.0.5";
};
css_parser = {
dependencies = ["addressable"];
@@ -147,6 +156,14 @@
};
version = "1.7.0";
};
+ csv = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "097rl10ivzlya5640530ayls2f1vid2mfgjy9ngd789qmp0j6x4b";
+ type = "gem";
+ };
+ version = "3.0.9";
+ };
docile = {
source = {
remotes = ["https://rubygems.org"];
@@ -155,21 +172,13 @@
};
version = "1.1.5";
};
- erubis = {
+ erubi = {
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1fj827xqjs91yqsydf0zmfyw9p4l2jz5yikg3mppz6d7fi8kyrb3";
+ sha256 = "1nwzxnqhr31fn7nbqmffcysvxjdfl3bhxi0bld5qqhcnfc1xd13x";
type = "gem";
};
- version = "2.7.0";
- };
- ffi = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "06mvxpjply8qh4j3fj9wh08kdzwkbnvsiysh0vrhlk5cwxzjmblh";
- type = "gem";
- };
- version = "1.11.1";
+ version = "1.9.0";
};
globalid = {
dependencies = ["activesupport"];
@@ -196,32 +205,40 @@
};
version = "0.7.0";
};
- jquery-rails = {
- dependencies = ["railties" "thor"];
+ json = {
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1lk7xqmms45czylxs22kv5khlbm7a0yqcchqijxb9m10zsqc6lp5";
+ sha256 = "0sx97bm9by389rbzv8r1f43h06xcz8vwi3h5jv074gvparql7lcx";
type = "gem";
};
- version = "3.1.5";
+ version = "2.2.0";
};
loofah = {
dependencies = ["crass" "nokogiri"];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1ccsid33xjajd0im2xv941aywi58z7ihwkvaf1w2bv89vn5bhsjg";
+ sha256 = "06kfq90vi38gv6i128f4zg462kj32szs5vsgm25hxgw9zd12pj9x";
type = "gem";
};
- version = "2.2.3";
+ version = "2.3.0";
};
mail = {
- dependencies = ["mime-types"];
+ dependencies = ["mini_mime"];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0d7lhj2dw52ycls6xigkfz6zvfhc6qggply9iycjmcyj9760yvz9";
+ sha256 = "00wwz6ys0502dpk8xprwcqfwyf3hmnx6lgxaiq6vj43mkx43sapc";
type = "gem";
};
- version = "2.6.6";
+ version = "2.7.1";
+ };
+ marcel = {
+ dependencies = ["mimemagic"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1nxbjmcyg8vlw6zwagf17l9y2mwkagmmkg95xybpn4bmf3rfnksx";
+ type = "gem";
+ };
+ version = "0.3.3";
};
metaclass = {
source = {
@@ -231,22 +248,13 @@
};
version = "0.0.4";
};
- mime-types = {
- dependencies = ["mime-types-data"];
+ method_source = {
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0fjxy1jm52ixpnv3vg9ld9pr9f35gy0jp66i1njhqjvmnvq0iwwk";
+ sha256 = "1pviwzvdqd90gn6y7illcdd9adapw8fczml933p5vl739dkvl3lq";
type = "gem";
};
- version = "3.2.2";
- };
- mime-types-data = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1m00pg19cm47n1qlcxgl91ajh2yq0fszvn1vy8fy0s1jkrp9fw4a";
- type = "gem";
- };
- version = "3.2019.0331";
+ version = "0.9.2";
};
mimemagic = {
source = {
@@ -259,82 +267,73 @@
mini_mime = {
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1q4pshq387lzv9m39jv32vwb8wrq3wc4jwgl4jk209r4l33v09d3";
+ sha256 = "1axm0rxyx3ss93wbmfkm78a6x03l8y4qy60rhkkiq0aza0vwq3ha";
type = "gem";
};
- version = "1.0.1";
+ version = "1.0.2";
};
mini_portile2 = {
source = {
remotes = ["https://rubygems.org"];
- sha256 = "13d32jjadpjj6d2wdhkfpsmy68zjx90p49bgf8f7nkpz86r1fr11";
+ sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
type = "gem";
};
- version = "2.3.0";
+ version = "2.4.0";
};
minitest = {
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq";
+ sha256 = "0zjm24aiz42i9n37mcw8lydd7n0y7wfk27by06jx77ypcld3qvkw";
type = "gem";
};
- version = "5.11.3";
+ version = "5.12.2";
};
mocha = {
dependencies = ["metaclass"];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "12aglpiq1h18j5a4rlwvnsvnsi2f3407v5xm59lgcg3ymlyak4al";
+ sha256 = "1s56iivmwpv4979hd25v3ghwwgy8ah15nh378lrj8czlh4kf5k5s";
type = "gem";
};
- version = "1.8.0";
- };
- multi_json = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
- type = "gem";
- };
- version = "1.13.1";
+ version = "1.9.0";
};
mysql2 = {
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0qjd97w6a0w9aldsrhb2y6jrc4wnnlbj5j8kcl7pp7vviwa0r5iq";
+ sha256 = "1a2kdjgzwh1p2rkcmxaawy6ibi32b04wbdd5d4wr8i342pq76di4";
type = "gem";
};
- version = "0.4.10";
+ version = "0.5.2";
};
net-ldap = {
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0z1j0zklbbx3vi91zcd2v0fnkfgkvq3plisa6hxaid8sqndyak46";
+ sha256 = "016igqz81a8zcwqzp5bbhryqmb2skmyf57ij3nb5z8sxwhw22jgh";
type = "gem";
};
- version = "0.12.1";
+ version = "0.16.1";
+ };
+ nio4r = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0gnmvbryr521r135yz5bv8354m7xn6miiapfgpg1bnwsvxz8xj6c";
+ type = "gem";
+ };
+ version = "2.5.2";
};
nokogiri = {
dependencies = ["mini_portile2"];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0byyxrazkfm29ypcx5q4syrv126nvjnf7z6bqi01sqkv4llsi4qz";
+ sha256 = "0nmdrqqz1gs0fwkgzxjl4wr554gr8dc1fkrqjc2jpsvwgm41rygv";
type = "gem";
};
- version = "1.8.5";
+ version = "1.10.4";
};
pg = {
source = {
remotes = ["https://rubygems.org"];
- sha256 = "07dv4ma9xd75xpsnnwwg1yrpwpji7ydy0q1d9dl0yfqbzpidrw32";
- type = "gem";
- };
- version = "0.18.4";
- };
- protected_attributes = {
- dependencies = ["activemodel"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "18lvrvmcwjvjr2mrn20vaf68a0q6mg4cy9f0m1i7x83p0ljhhyar";
+ sha256 = "0fmnyxcyrvgdbgq7m09whgn9i8rwfybk0w8aii1nc4g5kqw0k2jy";
type = "gem";
};
version = "1.1.4";
@@ -342,18 +341,26 @@
public_suffix = {
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1c7c5xxkx91hwj4572hbnyvxmydb90q69wlpr2l0dxrmwx2p365l";
+ sha256 = "0xnfv2j2bqgdpg2yq9i2rxby0w2sc9h5iyjkpaas2xknwrgmhdb0";
type = "gem";
};
- version = "3.1.0";
+ version = "4.0.1";
+ };
+ puma = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pkrbvak6rlf147qpd4zss031qrwwh53g8s6017037iwg0436kv3";
+ type = "gem";
+ };
+ version = "3.12.1";
};
rack = {
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1g9926ln2lw12lfxm4ylq1h6nl0rafl10za3xvjzc87qvnqic87f";
+ sha256 = "0z90vflxbgjy2n84r7mbyax3i2vyvvrxxrf86ljzn5rw65jgnn2i";
type = "gem";
};
- version = "1.6.11";
+ version = "2.0.7";
};
rack-openid = {
dependencies = ["rack" "ruby-openid"];
@@ -368,63 +375,54 @@
dependencies = ["rack"];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0h6x5jq24makgv2fq5qqgjlrk74dxfy62jif9blk43llw8ib2q7z";
+ sha256 = "0rh8h376mx71ci5yklnpqqn118z3bl67nnv5k801qaqn1zs62h8m";
type = "gem";
};
- version = "0.6.3";
+ version = "1.1.0";
};
rails = {
- dependencies = ["actionmailer" "actionpack" "actionview" "activejob" "activemodel" "activerecord" "activesupport" "railties" "sprockets-rails"];
+ dependencies = ["actioncable" "actionmailer" "actionpack" "actionview" "activejob" "activemodel" "activerecord" "activestorage" "activesupport" "railties" "sprockets-rails"];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1ywvis59dd3v8qapi9ix6743zgk07l21x1cd6nb1ddpahxhm7dml";
+ sha256 = "1p7cszi3n9ksxchxnccmz61pd1i3rjg4813dsdinsm8xm5k1pdgr";
type = "gem";
};
- version = "4.2.11.1";
- };
- rails-deprecated_sanitizer = {
- dependencies = ["activesupport"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0qxymchzdxww8bjsxj05kbf86hsmrjx40r41ksj0xsixr2gmhbbj";
- type = "gem";
- };
- version = "1.0.3";
+ version = "5.2.3";
};
rails-dom-testing = {
- dependencies = ["activesupport" "nokogiri" "rails-deprecated_sanitizer"];
+ dependencies = ["activesupport" "nokogiri"];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0wssfqpn00byhvp2372p99mphkcj8qx6pf6646avwr9ifvq0q1x6";
+ sha256 = "1lfq2a7kp2x64dzzi5p4cjcbiv62vxh9lyqk2f0rqq3fkzrw8h5i";
type = "gem";
};
- version = "1.0.9";
+ version = "2.0.3";
};
rails-html-sanitizer = {
dependencies = ["loofah"];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1gv7vr5d9g2xmgpjfq4nxsqr70r9pr042r9ycqqnfvw5cz9c7jwr";
+ sha256 = "1icpqmxbppl4ynzmn6dx7wdil5hhq6fz707m9ya6d86c7ys8sd4f";
type = "gem";
};
- version = "1.0.4";
+ version = "1.3.0";
};
railties = {
- dependencies = ["actionpack" "activesupport" "rake" "thor"];
+ dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor"];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1bjf21z9maiiazc1if56nnh9xmgbkcqlpznv34f40a1hsvgk1d1m";
+ sha256 = "1gn9fwb5wm08fbj7zpilqgblfl315l5b7pg4jsvxlizvrzg8h8q4";
type = "gem";
};
- version = "4.2.11.1";
+ version = "5.2.3";
};
rake = {
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1sy5a7nh6xjdc9yhcw31jji7ssrf9v5806hn95gbrzr998a2ydjn";
+ sha256 = "05l80mgaabdipkjsnjlffn9gc1wx9fi629d2kfbz8628cx3m6686";
type = "gem";
};
- version = "12.3.2";
+ version = "13.0.0";
};
rbpdf = {
dependencies = ["htmlentities" "rbpdf-font"];
@@ -443,14 +441,6 @@
};
version = "1.19.1";
};
- rdoc = {
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "13ba2mhqqcsp3k97x3iz9x29xk26rv4561lfzzzibcy41vvj1n4c";
- type = "gem";
- };
- version = "4.3.0";
- };
redcarpet = {
source = {
remotes = ["https://rubygems.org"];
@@ -479,61 +469,69 @@
dependencies = ["css_parser" "nokogiri"];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0frp5yb07ib9y1k43shd4xjkb9a6wavhqq892l8yi9y73qi2cqbc";
+ sha256 = "1zihd316bkbnrinz5s1s7pg7s0cadhhj6qs7wmc713j0g6ai1k9r";
type = "gem";
};
- version = "3.2.2";
+ version = "3.5.1";
};
roadie-rails = {
dependencies = ["railties" "roadie"];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1hxgl5marq2hi6lcc73f7g6afd7dz4w893rrgrbh7m3k8zrwjyk1";
+ sha256 = "02km0ama85mkw7kkn6qif86b781pglfdmqrwx5s6hwjlzk16qih3";
type = "gem";
};
- version = "1.1.1";
+ version = "1.3.0";
+ };
+ rouge = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1digsi2s8wyzx8vsqcxasw205lg6s7izx8jypl8rrpjwshmv83ql";
+ type = "gem";
+ };
+ version = "3.3.0";
};
ruby-openid = {
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0yzaf2c1i88757554wk38rxqmj0xzgmwk2zx7gi98w2zx42d17pn";
+ sha256 = "190p1m0bxd9xkfk1j6cpcv3x5c367g36nsglg4m1fcwqdd13k3kz";
type = "gem";
};
- version = "2.3.0";
+ version = "2.9.2";
};
rubyzip = {
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1w9gw28ly3zyqydnm8phxchf4ymyjl2r7zf7c12z8kla10cpmhlc";
+ sha256 = "1gz0ri0pa2xr7b6bf66yjc2wfvk51f4gi6yk7bklwl1nr65zc4gz";
type = "gem";
};
- version = "1.2.3";
+ version = "2.0.0";
};
selenium-webdriver = {
- dependencies = ["childprocess" "rubyzip" "websocket"];
+ dependencies = ["childprocess" "rubyzip"];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "15qyf7b9fa2nxhhwp551b9fjj82kb3wmy65559yrrcwpdadqvcs4";
+ sha256 = "11abil34dr8p1kw7hlaqd6kr430v4srmhzf72zzqvhcimlfvm4yb";
type = "gem";
};
- version = "2.53.4";
+ version = "3.142.6";
};
simplecov = {
- dependencies = ["docile" "multi_json" "simplecov-html"];
+ dependencies = ["docile" "json" "simplecov-html"];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1a3wy9zlmfwl3f47cibnxyxrgfz16y6fmy0dj1vyidzyys4mvy12";
+ sha256 = "1r9fnsnsqj432cmrpafryn8nif3x0qg9mdnvrcf0wr01prkdlnww";
type = "gem";
};
- version = "0.9.2";
+ version = "0.14.1";
};
simplecov-html = {
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0jv9pmpaxihrcsgcf6mgl3qg7rhf9scl5l2k67d768w9cz63xgvc";
+ sha256 = "1lihraa4rgxk8wbfl77fy9sf0ypk31iivly8vl3w04srd7i0clzn";
type = "gem";
};
- version = "0.9.0";
+ version = "0.10.2";
};
sprockets = {
dependencies = ["concurrent-ruby" "rack"];
@@ -553,15 +551,6 @@
};
version = "3.2.1";
};
- test_after_commit = {
- dependencies = ["activerecord"];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1fzg8qan6f0n0ynr594bld2k0rwwxj99yzhiga2f3pkj9ina1abb";
- type = "gem";
- };
- version = "0.4.2";
- };
thor = {
source = {
remotes = ["https://rubygems.org"];
@@ -587,13 +576,22 @@
};
version = "1.2.5";
};
- websocket = {
+ websocket-driver = {
+ dependencies = ["websocket-extensions"];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0f11rcn4qgffb1rq4kjfwi7di79w8840x9l74pkyif5arp0mb08x";
+ sha256 = "1bxamwqldmy98hxs5pqby3andws14hl36ch78g0s81gaz9b91nj2";
type = "gem";
};
- version = "1.2.8";
+ version = "0.7.1";
+ };
+ websocket-extensions = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00i624ng1nvkz1yckj3f8yxxp6hi7xaqf40qh9q3hj2n1l9i8g6m";
+ type = "gem";
+ };
+ version = "0.1.4";
};
xpath = {
dependencies = ["nokogiri"];
@@ -607,9 +605,9 @@
yard = {
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1w0i13a0vsw4jmlj59xn64rdsqcsl9r3rmjjgdca5i51m1q4ix6v";
+ sha256 = "0rxqwry3h2hjz069f0kfr140wgx1khgljnqf112dk5x9rm4l0xny";
type = "gem";
};
- version = "0.9.19";
+ version = "0.9.20";
};
}
\ No newline at end of file
diff --git a/pkgs/applications/version-management/smartgithg/default.nix b/pkgs/applications/version-management/smartgithg/default.nix
index 343d88554d6..554dbae3882 100644
--- a/pkgs/applications/version-management/smartgithg/default.nix
+++ b/pkgs/applications/version-management/smartgithg/default.nix
@@ -6,7 +6,6 @@
, glib
, gnome3
, wrapGAppsHook
-, hicolor-icon-theme
, libXtst
, which
}:
@@ -22,7 +21,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ wrapGAppsHook ];
- buildInputs = [ jre gnome3.adwaita-icon-theme hicolor-icon-theme gtk3 ];
+ buildInputs = [ jre gnome3.adwaita-icon-theme gtk3 ];
preFixup = with stdenv.lib; ''
gappsWrapperArgs+=( \
diff --git a/pkgs/applications/version-management/sourcehut/builds.nix b/pkgs/applications/version-management/sourcehut/builds.nix
index e554afe4a92..76edc1b3e64 100644
--- a/pkgs/applications/version-management/sourcehut/builds.nix
+++ b/pkgs/applications/version-management/sourcehut/builds.nix
@@ -4,7 +4,7 @@
, srht, redis, celery, pyyaml, markdown }:
let
- version = "0.45.13";
+ version = "0.48.0";
buildWorker = src: buildGoModule {
inherit src version;
@@ -20,7 +20,7 @@ in buildPythonPackage rec {
src = fetchgit {
url = "https://git.sr.ht/~sircmpwn/builds.sr.ht";
rev = version;
- sha256 = "002pcj2a98gbmv77a10449w1q6iqhqjz4fim8hm4qm7vn6bwp0hz";
+ sha256 = "1z5bxsn67cqffixqsrnska86mw0a6494650wbi6dbp10z03870bs";
};
patches = [
diff --git a/pkgs/applications/version-management/sourcehut/core.nix b/pkgs/applications/version-management/sourcehut/core.nix
index ca054c5cfde..67486bd28f3 100644
--- a/pkgs/applications/version-management/sourcehut/core.nix
+++ b/pkgs/applications/version-management/sourcehut/core.nix
@@ -1,22 +1,23 @@
{ stdenv, fetchgit, fetchNodeModules, buildPythonPackage
, pgpy, flask, bleach, misaka, humanize, markdown, psycopg2, pygments, requests
, sqlalchemy, flask_login, beautifulsoup4, sqlalchemy-utils, celery, alembic
-, sassc, nodejs-11_x
+, importlib-metadata
+, sassc, nodejs
, writeText }:
buildPythonPackage rec {
pname = "srht";
- version = "0.52.13";
+ version = "0.54.4";
src = fetchgit {
url = "https://git.sr.ht/~sircmpwn/core.sr.ht";
rev = version;
- sha256 = "0i7gd2rkq4y4lffxsgb3mql9ddmk3vqckan29w266imrqs6p8c0z";
+ sha256 = "0flxvn178hqd8ljz89ddis80zfnmzgimv4506w4dg2flbwzywy7z";
};
node_modules = fetchNodeModules {
src = "${src}/srht";
- nodejs = nodejs-11_x;
+ nodejs = nodejs;
sha256 = "0axl50swhcw8llq8z2icwr4nkr5qsw2riih0a040f9wx4xiw4p6p";
};
@@ -26,7 +27,7 @@ buildPythonPackage rec {
nativeBuildInputs = [
sassc
- nodejs-11_x
+ nodejs
];
propagatedBuildInputs = [
@@ -47,6 +48,7 @@ buildPythonPackage rec {
# Unofficial runtime dependencies?
celery
alembic
+ importlib-metadata
];
PKGVER = version;
@@ -55,7 +57,6 @@ buildPythonPackage rec {
cp -r ${node_modules} srht/node_modules
'';
- # No actual? tests but seems like it needs this anyway
preCheck = let
config = writeText "config.ini" ''
[webhooks]
@@ -65,10 +66,7 @@ buildPythonPackage rec {
origin=http://meta.sr.ht.local
'';
in ''
- # Validation needs config option(s)
- # webhooks <- ( private-key )
- # meta.sr.ht <- ( origin )
- cp ${config} config.ini
+ cp -f ${config} config.ini
'';
meta = with stdenv.lib; {
diff --git a/pkgs/applications/version-management/sourcehut/default.nix b/pkgs/applications/version-management/sourcehut/default.nix
index 00a3cf27111..3fa5399c2b5 100644
--- a/pkgs/applications/version-management/sourcehut/default.nix
+++ b/pkgs/applications/version-management/sourcehut/default.nix
@@ -1,5 +1,5 @@
{ python37, openssl
-, callPackage }:
+, callPackage, recurseIntoAttrs }:
# To expose the *srht modules, they have to be a python module so we use `buildPythonModule`
# Then we expose them through all-packages.nix as an application through `toPythonApplication`
@@ -25,7 +25,7 @@ let
scmsrht = self.callPackage ./scm.nix { };
};
};
-in with python.pkgs; {
+in with python.pkgs; recurseIntoAttrs {
inherit python;
buildsrht = toPythonApplication buildsrht;
dispatchsrht = toPythonApplication dispatchsrht;
diff --git a/pkgs/applications/version-management/sourcehut/dispatch.nix b/pkgs/applications/version-management/sourcehut/dispatch.nix
index c77fc902277..a61f35b9ee1 100644
--- a/pkgs/applications/version-management/sourcehut/dispatch.nix
+++ b/pkgs/applications/version-management/sourcehut/dispatch.nix
@@ -4,12 +4,12 @@
buildPythonPackage rec {
pname = "dispatchsrht";
- version = "0.11.0";
+ version = "0.12.3";
src = fetchgit {
url = "https://git.sr.ht/~sircmpwn/dispatch.sr.ht";
rev = version;
- sha256 = "1kahl2gy5a5li79djwkzkglkw2s7pl4d29bzqp8c53r0xvx4sqkz";
+ sha256 = "0lpc8jpyz1rg3g98546wlhr27b15g32lds77hl42aixv5f5b8lc9";
};
patches = [
diff --git a/pkgs/applications/version-management/sourcehut/git.nix b/pkgs/applications/version-management/sourcehut/git.nix
index 996663761a7..b580e89c747 100644
--- a/pkgs/applications/version-management/sourcehut/git.nix
+++ b/pkgs/applications/version-management/sourcehut/git.nix
@@ -4,11 +4,19 @@
, srht, pygit2, scmsrht }:
let
- version = "0.32.3";
+ version = "0.35.6";
+
+ buildShell = src: buildGoModule {
+ inherit src version;
+ pname = "git-srht-shell";
+ goPackagePath = "git.sr.ht/~sircmpwn/git.sr.ht/gitsrht-shell";
+
+ modSha256 = "1v4npijqgv09ssrxf1y1b3syb2fs7smy7k9rcj3ynsfrn9xgfd9y";
+ };
buildDispatcher = src: buildGoModule {
inherit src version;
- pname = "git-sr-ht-dispatcher";
+ pname = "git-srht-dispatcher";
goPackagePath = "git.sr.ht/~sircmpwn/git.sr.ht/gitsrht-dispatch";
modSha256 = "1lmgmlin460g09dph2hw6yz25d4agqwjhrjv0qqsis7df9qpf3i1";
@@ -20,7 +28,7 @@ in buildPythonPackage rec {
src = fetchgit {
url = "https://git.sr.ht/~sircmpwn/git.sr.ht";
rev = version;
- sha256 = "0grycmblhm9dnhcf1kcmn6bclgb9znahk2026dan58m9j9pja5vw";
+ sha256 = "0j8caqbzdqkgc1bdhzz4k5hgh8lhsghfgwf46d19ryf83d8ggxqc";
};
patches = [
@@ -40,9 +48,9 @@ in buildPythonPackage rec {
export SRHT_PATH=${srht}/${python.sitePackages}/srht
'';
- # TODO: Remove redundant mkdir?
postInstall = ''
mkdir -p $out/bin
+ cp ${buildShell "${src}/gitsrht-shell"}/bin/gitsrht-shell $out/bin/gitsrht-shell
cp ${buildDispatcher "${src}/gitsrht-dispatch"}/bin/gitsrht-dispatch $out/bin/gitsrht-dispatch
'';
diff --git a/pkgs/applications/version-management/sourcehut/hg.nix b/pkgs/applications/version-management/sourcehut/hg.nix
index 93817648468..fd5c3145db0 100644
--- a/pkgs/applications/version-management/sourcehut/hg.nix
+++ b/pkgs/applications/version-management/sourcehut/hg.nix
@@ -4,12 +4,12 @@
buildPythonPackage rec {
pname = "hgsrht";
- version = "0.13.0";
+ version = "0.16.2";
src = fetchhg {
url = "https://hg.sr.ht/~sircmpwn/hg.sr.ht";
rev = version;
- sha256 = "0qkknvja0pyk69fvzqafj3x8hi5miw22nmksvifbrjcqph8jknqg";
+ sha256 = "02bzy31zplnlqg8rcls5n65q1h920lhy6f51w89w1kskdw7r2mhy";
};
patches = [
diff --git a/pkgs/applications/version-management/sourcehut/lists.nix b/pkgs/applications/version-management/sourcehut/lists.nix
index ac36a219a91..8aa6128819f 100644
--- a/pkgs/applications/version-management/sourcehut/lists.nix
+++ b/pkgs/applications/version-management/sourcehut/lists.nix
@@ -4,12 +4,12 @@
buildPythonPackage rec {
pname = "listssrht";
- version = "0.36.3";
+ version = "0.38.3";
src = fetchgit {
url = "https://git.sr.ht/~sircmpwn/lists.sr.ht";
rev = version;
- sha256 = "1q2z2pjwz4zifsrkxab9b9jh1vzayjqych1cx3i4859f1swl2gwa";
+ sha256 = "020s6kglm7620pjn2j7fxvaqd5lpz7y7x0wf014jsrm71l6w0rla";
};
patches = [
diff --git a/pkgs/applications/version-management/sourcehut/man.nix b/pkgs/applications/version-management/sourcehut/man.nix
index a0198cb52cf..df4e62a7ac2 100644
--- a/pkgs/applications/version-management/sourcehut/man.nix
+++ b/pkgs/applications/version-management/sourcehut/man.nix
@@ -4,12 +4,12 @@
buildPythonPackage rec {
pname = "mansrht";
- version = "0.12.4";
+ version = "0.13.5";
src = fetchgit {
url = "https://git.sr.ht/~sircmpwn/man.sr.ht";
rev = version;
- sha256 = "1csnw71yh5zw7l17xmmxyskwiqbls0ynbbjrg45y5k1i3622mhiy";
+ sha256 = "1hfxhczppn8yng6m3kdzj9rn6zjhwpm6dq3pzaiaii92b3d4cyh3";
};
patches = [
diff --git a/pkgs/applications/version-management/sourcehut/meta.nix b/pkgs/applications/version-management/sourcehut/meta.nix
index af3685c472c..a5458b0b864 100644
--- a/pkgs/applications/version-management/sourcehut/meta.nix
+++ b/pkgs/applications/version-management/sourcehut/meta.nix
@@ -5,12 +5,12 @@
buildPythonPackage rec {
pname = "metasrht";
- version = "0.34.3";
+ version = "0.37.0";
src = fetchgit {
url = "https://git.sr.ht/~sircmpwn/meta.sr.ht";
rev = version;
- sha256 = "1yj3npw1vlqawzj6q1mh6qryx009dg5prja9fn6rasfmxjn2gr7v";
+ sha256 = "1jf3h2v27cbam8bwiw3x35319pzp0r651p8mfhw150jvskyvmkmr";
};
nativeBuildInputs = srht.nativeBuildInputs;
diff --git a/pkgs/applications/version-management/sourcehut/paste.nix b/pkgs/applications/version-management/sourcehut/paste.nix
index 47153d9f204..4e397c649f9 100644
--- a/pkgs/applications/version-management/sourcehut/paste.nix
+++ b/pkgs/applications/version-management/sourcehut/paste.nix
@@ -4,12 +4,12 @@
buildPythonPackage rec {
pname = "pastesrht";
- version = "0.5.1";
+ version = "0.7.3";
src = fetchgit {
url = "https://git.sr.ht/~sircmpwn/paste.sr.ht";
rev = version;
- sha256 = "0bzw03hcwi1pw16kliqjsr7kphqq3qw0pbpdjqkcs7jdr0a59vny";
+ sha256 = "15689gk37djcwdjb636d97k0il2zpdpksb95l9l4d43wipd7x5qi";
};
patches = [
diff --git a/pkgs/applications/version-management/sourcehut/scm.nix b/pkgs/applications/version-management/sourcehut/scm.nix
index ef6ed3a744b..c5209cee46b 100644
--- a/pkgs/applications/version-management/sourcehut/scm.nix
+++ b/pkgs/applications/version-management/sourcehut/scm.nix
@@ -4,12 +4,12 @@
buildPythonPackage rec {
pname = "scmsrht";
- version = "0.13.3";
+ version = "0.16.0";
src = fetchgit {
url = "https://git.sr.ht/~sircmpwn/scm.sr.ht";
rev = version;
- sha256 = "0bapddgfqrs27y6prd6kwpz6jdlr33zdqr6ci6ixi584a7z8z7d6";
+ sha256 = "0jny8ihn49n7bpw5nhdrfha78yzpxp277l50y1lj142r59kwmh22";
};
nativeBuildInputs = srht.nativeBuildInputs;
@@ -39,11 +39,7 @@ buildPythonPackage rec {
origin=http://meta.sr.ht.local
'';
in ''
- # Validation needs config option(s)
- # webhooks <- ( private-key )
- # meta.sr.ht <- ( origin )
- # builds.sr.ht <- ( origin, oauth-client-id )
- cp ${config} config.ini
+ cp -f ${config} config.ini
'';
meta = with stdenv.lib; {
diff --git a/pkgs/applications/version-management/sourcehut/todo.nix b/pkgs/applications/version-management/sourcehut/todo.nix
index 6b67478aa67..a7703bd0729 100644
--- a/pkgs/applications/version-management/sourcehut/todo.nix
+++ b/pkgs/applications/version-management/sourcehut/todo.nix
@@ -1,15 +1,16 @@
{ stdenv, fetchgit, buildPythonPackage
, python
-, srht, redis, alembic, pystache }:
+, srht, redis, alembic, pystache
+, pytest, factory_boy, writeText }:
buildPythonPackage rec {
pname = "todosrht";
- version = "0.46.8";
+ version = "0.51.13";
src = fetchgit {
url = "https://git.sr.ht/~sircmpwn/todo.sr.ht";
rev = version;
- sha256 = "17nqqy81535jnkidjiqv8v2301w5wzbbvx4czib69aagw1l85gnn";
+ sha256 = "19gywq5j7wlpk7j2whm2ivz0z0i3j50n7k7bx29pghndl7l43c18";
};
patches = [
@@ -30,8 +31,33 @@ buildPythonPackage rec {
export SRHT_PATH=${srht}/${python.sitePackages}/srht
'';
- # Tests require a network connection
- doCheck = false;
+ checkInputs = [
+ pytest
+ factory_boy
+ ];
+
+ installCheckPhase = let
+ config = writeText "config.ini" ''
+ [webhooks]
+ private-key=K6JupPpnr0HnBjelKTQUSm3Ro9SgzEA2T2Zv472OvzI=
+
+ [todo.sr.ht]
+ origin=http://todo.sr.ht.local
+ oauth-client-id=
+ oauth-client-secret=
+
+ [todo.sr.ht::mail]
+ posting-domain=
+
+ [meta.sr.ht]
+ origin=http://meta.sr.ht.local
+ '';
+ in ''
+ cp -f ${config} config.ini
+
+ # pytest tests fail
+ # pytest tests/
+ '';
meta = with stdenv.lib; {
homepage = https://todo.sr.ht/~sircmpwn/todo.sr.ht;
diff --git a/pkgs/applications/version-management/src/default.nix b/pkgs/applications/version-management/src/default.nix
index a3fcd209efc..8ff384d84b7 100644
--- a/pkgs/applications/version-management/src/default.nix
+++ b/pkgs/applications/version-management/src/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "src";
- version = "1.26";
+ version = "1.27";
src = fetchurl {
url = "http://www.catb.org/~esr/src/${pname}-${version}.tar.gz";
- sha256 = "06npsnf2bfjgcs7wilhcqn24zn286nyy4qyp3yp88zapkxzlap23";
+ sha256 = "0764kcyh54plzmvfyhh086wpszh67nv1nsxgk95n9bxxinr7sn3x";
};
nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/video/catt/default.nix b/pkgs/applications/video/catt/default.nix
new file mode 100644
index 00000000000..1f2b2535931
--- /dev/null
+++ b/pkgs/applications/video/catt/default.nix
@@ -0,0 +1,31 @@
+{ buildPythonApplication, fetchPypi, lib
+, youtube-dl
+, PyChromecast
+, click
+, ifaddr
+, requests
+}:
+
+buildPythonApplication rec {
+ pname = "catt";
+ version = "0.10.2";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "0n6aa2vvbq0z3vcg4cylhpqxch783cxvxk234647knklgg9vdf1r";
+ };
+
+ propagatedBuildInputs = [
+ youtube-dl PyChromecast click ifaddr requests
+ ];
+
+ doCheck = false; # attempts to access various URLs
+
+ meta = with lib; {
+ description = "Cast All The Things allows you to send videos from many, many online sources to your Chromecast";
+ homepage = "https://github.com/skorokithakis/catt";
+ license = licenses.bsd2;
+ maintainers = with maintainers; [ dtzWill ];
+ };
+}
+
diff --git a/pkgs/applications/video/celluloid/default.nix b/pkgs/applications/video/celluloid/default.nix
index 47a82470137..22fac11b018 100644
--- a/pkgs/applications/video/celluloid/default.nix
+++ b/pkgs/applications/video/celluloid/default.nix
@@ -16,13 +16,13 @@
stdenv.mkDerivation rec {
pname = "celluloid";
- version = "0.17";
+ version = "0.18";
src = fetchFromGitHub {
owner = "celluloid-player";
repo = "celluloid";
rev = "v${version}";
- sha256 = "0pnxjv6n2q6igxdr8wzbahcj7vccw4nfjdk8fjdnaivf2lyrpv2d";
+ sha256 = "1j8z75y98liirr41rlcn89cshvp1xp71cspcclm6wx455i7q2cg1";
};
nativeBuildInputs = [
@@ -45,7 +45,6 @@ stdenv.mkDerivation rec {
postPatch = ''
patchShebangs meson-post-install.py src/generate-authors.py
- sed -i '/gtk-update-icon-cache/s/^/#/' meson-post-install.py
'';
doCheck = true;
@@ -59,6 +58,7 @@ stdenv.mkDerivation rec {
'';
homepage = "https://github.com/celluloid-player/celluloid";
license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ worldofpeace ];
platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/video/cinelerra/default.nix b/pkgs/applications/video/cinelerra/default.nix
index eb3946b9ed0..36ad39bd37c 100644
--- a/pkgs/applications/video/cinelerra/default.nix
+++ b/pkgs/applications/video/cinelerra/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, autoconf, automake, libtool
+{ stdenv, fetchFromGitHub, autoconf, automake, libtool
, pkgconfig, faad2, faac, a52dec, alsaLib, fftw, lame, libavc1394
, libiec61883, libraw1394, libsndfile, libvorbis, libogg, libjpeg
, libtiff, freetype, mjpegtools, x264, gettext, openexr
@@ -7,22 +7,27 @@
, fontconfig, intltool }:
stdenv.mkDerivation {
- name = "cinelerra-unstable-2016-01-12";
+ name = "cinelerra-cv-2018-05-16";
- src = fetchgit {
- url = "git://git.cinelerra-cv.org/j6t/cinelerra.git";
- rev = "454be60e201c18c1fc3f1f253a6d2184fcfc94c4";
- sha256 = "1n4kshqhgnr7aivsi8dgx48phyd2nzvv4szbc82mndklvs9jfb7r";
+ src = fetchFromGitHub {
+ owner = "ratopi";
+ repo = "CinelerraCV";
+ rev = "d9c0dbf4393717f0a42f4b91c3e1ed5b16f955dc";
+ sha256 = "0a8kfm1v96sv6jh4568crg6nkr6n3579i9xksfj8w199s6yxzsbk";
};
- # touch config.rpath: work around bug in automake 1.10 ?
preConfigure = ''
find -type f -print0 | xargs --null sed -e "s@/usr/bin/perl@${perl}/bin/perl@" -i
- touch config.rpath
./autogen.sh
sed -i -e "s@/usr/bin/file@${file}/bin/file@" ./configure
'';
+ ## fix bug with parallel building
+ preBuild = ''
+ make -C cinelerra versioninfo.h
+ '';
+ enableParallelBuilding = true;
+
buildInputs =
[ automake
autoconf libtool pkgconfig file
@@ -37,10 +42,6 @@ stdenv.mkDerivation {
fontconfig intltool
];
- # $ make -C cinelerra edl.o
- # edl.C:50:25: fatal error: versioninfo.h: No such file or directory
- enableParallelBuilding = false;
-
meta = {
description = "Video Editor";
homepage = http://www.cinelerra.org;
diff --git a/pkgs/applications/video/clipgrab/default.nix b/pkgs/applications/video/clipgrab/default.nix
index 1872750deb0..145b7cc06c2 100644
--- a/pkgs/applications/video/clipgrab/default.nix
+++ b/pkgs/applications/video/clipgrab/default.nix
@@ -5,10 +5,10 @@
mkDerivation rec {
pname = "clipgrab";
- version = "3.8.4";
+ version = "3.8.5";
src = fetchurl {
- sha256 = "0pyrg3rrsd538vnrv6x2frhbq9k2638nzffjsar1p76wxp8fm42s";
+ sha256 = "0jfjnzwvz4ynlld0ih7f7d575s5w2dag0hvb02c6qan7xm5jdhv9";
# The .tar.bz2 "Download" link is a binary blob, the source is the .tar.gz!
url = "https://download.clipgrab.org/${pname}-${version}.tar.gz";
};
diff --git a/pkgs/applications/video/handbrake/default.nix b/pkgs/applications/video/handbrake/default.nix
index a15a4cd5999..e8a81a192b5 100644
--- a/pkgs/applications/video/handbrake/default.nix
+++ b/pkgs/applications/video/handbrake/default.nix
@@ -2,10 +2,14 @@
#
# Derivation patches HandBrake to use Nix closure dependencies.
#
+# NOTE: 2019-07-19: This derivation does not currently support the native macOS
+# GUI--it produces the "HandbrakeCLI" CLI version only. In the future it would
+# be nice to add the native GUI (and/or the GTK GUI) as an option too, but that
+# requires invoking the Xcode build system, which is non-trivial for now.
-{ stdenv, lib, fetchurl,
+{ stdenv, lib, fetchurl, fetchpatch,
# Main build tools
- python2, pkgconfig, autoconf, automake, cmake, nasm, libtool, m4,
+ python2, pkgconfig, autoconf, automake, cmake, nasm, libtool, m4, lzma,
# Processing, video codecs, containers
ffmpeg-full, nv-codec-headers, libogg, x264, x265, libvpx, libtheora,
# Codecs, audio
@@ -14,20 +18,34 @@
libiconv, fribidi, fontconfig, freetype, libass, jansson, libxml2, harfbuzz,
# Optical media
libdvdread, libdvdnav, libdvdcss, libbluray,
- useGtk ? true, wrapGAppsHook ? null,
- intltool ? null,
- glib ? null,
- gtk3 ? null,
- libappindicator-gtk3 ? null,
- libnotify ? null,
- gst_all_1 ? null,
- dbus-glib ? null,
- udev ? null,
- libgudev ? null,
- hicolor-icon-theme ? null,
+ # Darwin-specific
+ AudioToolbox ? null,
+ Foundation ? null,
+ libobjc ? null,
+ VideoToolbox ? null,
+ # GTK
+ # NOTE: 2019-07-19: The gtk3 package has a transitive dependency on dbus,
+ # which in turn depends on systemd. systemd is not supported on Darwin, so
+ # for now we disable GTK GUI support on Darwin. (It may be possible to remove
+ # this restriction later.)
+ useGtk ? !stdenv.isDarwin, wrapGAppsHook ? null,
+ intltool ? null,
+ glib ? null,
+ gtk3 ? null,
+ libappindicator-gtk3 ? null,
+ libnotify ? null,
+ gst_all_1 ? null,
+ dbus-glib ? null,
+ udev ? null,
+ libgudev ? null,
+ hicolor-icon-theme ? null,
+ # FDK
useFdk ? false, fdk_aac ? null
}:
+assert stdenv.isDarwin -> AudioToolbox != null && Foundation != null
+ && libobjc != null && VideoToolbox != null;
+
stdenv.mkDerivation rec {
pname = "handbrake";
version = "1.2.2";
@@ -45,12 +63,13 @@ stdenv.mkDerivation rec {
ffmpeg-full libogg libtheora x264 x265 libvpx
libopus lame libvorbis a52dec speex libsamplerate
libiconv fribidi fontconfig freetype libass jansson libxml2 harfbuzz
- libdvdread libdvdnav libdvdcss libbluray
+ libdvdread libdvdnav libdvdcss libbluray lzma
] ++ lib.optionals useGtk [
glib gtk3 libappindicator-gtk3 libnotify
gst_all_1.gstreamer gst_all_1.gst-plugins-base dbus-glib udev
libgudev hicolor-icon-theme
] ++ lib.optional useFdk fdk_aac
+ ++ lib.optionals stdenv.isDarwin [ AudioToolbox Foundation libobjc VideoToolbox ]
# NOTE: 2018-12-27: Handbrake supports nv-codec-headers for Linux only,
# look at ./make/configure.py search "enable_nvenc"
++ lib.optional stdenv.isLinux nv-codec-headers;
@@ -59,13 +78,23 @@ stdenv.mkDerivation rec {
# (default distribution bundles&builds 3rd party libs),
# don't trigger cmake build
dontUseCmakeConfigure = true;
- enableParallelBuilding = true;
+ # cp: cannot create regular file './internal_defaults.json': File exists
+ enableParallelBuilding = false;
+
+ # The samplerate patch should be removed when HandBrake 1.3.0 is released
+ patches = [(fetchpatch {
+ name = "set-ffmpeg-samplerate.patch";
+ url = "https://patch-diff.githubusercontent.com/raw/HandBrake/HandBrake/pull/2126.patch";
+ sha256 = "00lds9h27cvyr53qpvv8gbv01hfxdxd8gphxcwbwg8akqrvk9gbf";
+ })];
preConfigure = ''
patchShebangs scripts
substituteInPlace libhb/module.defs \
--replace /usr/include/libxml2 ${libxml2.dev}/include/libxml2
+ substituteInPlace libhb/module.defs \
+ --replace '$(CONTRIB.build/)include/libxml2' ${libxml2.dev}/include/libxml2
# Force using nixpkgs dependencies
sed -i '/MODULES += contrib/d' make/include/main.defs
@@ -75,8 +104,9 @@ stdenv.mkDerivation rec {
configureFlags = [
"--disable-df-fetch"
"--disable-df-verify"
- (if useGtk then "--disable-gtk-update-checks" else "--disable-gtk")
- (if useFdk then "--enable-fdk-aac" else "")
+ (if useGtk then "--disable-gtk-update-checks" else "--disable-gtk")
+ (if useFdk then "--enable-fdk-aac" else "")
+ (if stdenv.isDarwin then "--disable-xcode" else "")
];
# NOTE: 2018-12-27: Check NixOS HandBrake test if changing
diff --git a/pkgs/applications/video/kazam/default.nix b/pkgs/applications/video/kazam/default.nix
index 9d549c2aecc..f38046cf8e1 100644
--- a/pkgs/applications/video/kazam/default.nix
+++ b/pkgs/applications/video/kazam/default.nix
@@ -1,5 +1,6 @@
{ stdenv, fetchurl, substituteAll, python3, gst_all_1, wrapGAppsHook, gobject-introspection
-, gtk3, libwnck3, keybinder3, intltool, libcanberra-gtk3, libappindicator-gtk3, libpulseaudio }:
+, gtk3, libwnck3, keybinder3, intltool, libcanberra-gtk3, libappindicator-gtk3, libpulseaudio
+, fetchpatch }:
python3.pkgs.buildPythonApplication rec {
name = "kazam-${version}";
@@ -18,6 +19,9 @@ python3.pkgs.buildPythonApplication rec {
];
propagatedBuildInputs = with python3.pkgs; [ pygobject3 pyxdg pycairo dbus-python ];
+
+ # workaround https://github.com/NixOS/nixpkgs/issues/56943
+ strictDeps = false;
patches = [
# Fix paths
@@ -26,10 +30,10 @@ python3.pkgs.buildPythonApplication rec {
libcanberra = libcanberra-gtk3;
inherit libpulseaudio;
})
- # Fix compability with Python 3.4
- (fetchurl {
- url = https://sources.debian.org/data/main/k/kazam/1.4.5-2/debian/patches/configparser_api_changes.patch;
- sha256 = "0yvmipnh98s7y07cp1f113l0qqfw65k13an96byq707z3ymv1c2h";
+ # https://github.com/hzbd/kazam/pull/21
+ (fetchpatch {
+ url = https://github.com/hzbd/kazam/commit/37e53a5aa61f4223a9ea03ceeda26eeba2b9d37b.patch;
+ sha256 = "1q5dpmdm6cvgzw8xa7bwclnqa05xc73ja1lszwmwv5glyik0fk4z";
})
];
diff --git a/pkgs/applications/video/kino/default.nix b/pkgs/applications/video/kino/default.nix
index 4ddd84433e8..1b9f0d0997a 100644
--- a/pkgs/applications/video/kino/default.nix
+++ b/pkgs/applications/video/kino/default.nix
@@ -80,7 +80,7 @@ stdenv.mkDerivation {
postInstall = "
rpath=`patchelf --print-rpath \$out/bin/kino`;
- for i in $\buildInputs; do
+ for i in $buildInputs; do
echo adding \$i/lib
rpath=\$rpath\${rpath:+:}\$i/lib
done
diff --git a/pkgs/applications/video/kodi/default.nix b/pkgs/applications/video/kodi/default.nix
index 773c63b0036..8edc99c5f02 100644
--- a/pkgs/applications/video/kodi/default.nix
+++ b/pkgs/applications/video/kodi/default.nix
@@ -8,12 +8,12 @@
, libXt, libXmu, libXext
, libXinerama, libXrandr
, libXtst, libXfixes, systemd
-, alsaLib, libGLU_combined, glew, fontconfig, freetype, ftgl
+, alsaLib, libGLU, libGL, glew, fontconfig, freetype, ftgl
, libjpeg, jasper, libpng, libtiff
, libmpeg2, libsamplerate, libmad
, libogg, libvorbis, flac, libxslt
, lzo, libcdio, libmodplug, libass, libbluray
-, sqlite, mysql, nasm, gnutls, libva, libdrm
+, sqlite, libmysqlclient, nasm, gnutls, libva, libdrm
, curl, bzip2, zip, unzip, glxinfo, xdpyinfo
, libcec, libcec_platform, dcadec, libuuid
, libcrossguid, libmicrohttpd
@@ -156,12 +156,12 @@ in stdenv.mkDerivation {
openssl gperf tinyxml2 taglib libssh swig jre
libX11 xorgproto libXt libXmu libXext
libXinerama libXrandr libXtst libXfixes
- alsaLib libGLU_combined glew fontconfig freetype ftgl
+ alsaLib libGL libGLU glew fontconfig freetype ftgl
libjpeg jasper libpng libtiff
libmpeg2 libsamplerate libmad
libogg libvorbis flac libxslt systemd
lzo libcdio libmodplug libass libbluray
- sqlite mysql.connector-c avahi lame
+ sqlite libmysqlclient avahi lame
curl bzip2 zip unzip glxinfo xdpyinfo
libcec libcec_platform dcadec libuuid
libgcrypt libgpgerror libunistring
diff --git a/pkgs/applications/video/mediathekview/default.nix b/pkgs/applications/video/mediathekview/default.nix
index a5de209854b..586779252b6 100644
--- a/pkgs/applications/video/mediathekview/default.nix
+++ b/pkgs/applications/video/mediathekview/default.nix
@@ -1,25 +1,29 @@
{ stdenv, fetchurl, makeWrapper, jre }:
stdenv.mkDerivation rec {
- version = "13.2.1";
+ version = "13.5.0";
pname = "mediathekview";
src = fetchurl {
- url = "https://download.mediathekview.de/stabil/MediathekView-${version}.tar.gz";
- sha256 = "11wg6klviig0h7pprfaygamsgqr7drqra2s4yxgfak6665033l2a";
+ url = "https://download.mediathekview.de/stabil/MediathekView-${version}-linux.tar.gz";
+ sha256 = "0n05w2d6sh03rjms7m9b5nj84cl16gkrc9nsn53kvldglmqmmrac";
};
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
- mkdir -p $out/{lib,bin,share/mediathekview}
+ mkdir -p $out/{bin,lib}
- install -m644 MediathekView.jar $out/
- install -m644 -t $out/lib lib/*
- install -m755 bin/flv.sh $out/share/mediathekview
+ install -m644 MediathekView.jar $out/lib
makeWrapper ${jre}/bin/java $out/bin/mediathek \
- --add-flags "-cp '$out/lib/*' -jar $out/MediathekView.jar"
- '';
+ --add-flags "-Xmx1G -jar $out/lib/MediathekView.jar"
+
+ makeWrapper ${jre}/bin/java $out/bin/MediathekView \
+ --add-flags "-Xmx1G -jar $out/lib/MediathekView.jar"
+
+ makeWrapper ${jre}/bin/java $out/bin/MediathekView_ipv4 \
+ --add-flags "-Xmx1G -Djava.net.preferIPv4Stack=true -jar $out/lib/MediathekView.jar"
+ '';
meta = with stdenv.lib; {
description = "Offers access to the Mediathek of different tv stations (ARD, ZDF, Arte, etc.)";
diff --git a/pkgs/applications/video/minitube/default.nix b/pkgs/applications/video/minitube/default.nix
index a9876da234f..f1f757d588f 100644
--- a/pkgs/applications/video/minitube/default.nix
+++ b/pkgs/applications/video/minitube/default.nix
@@ -1,5 +1,5 @@
{ stdenv, fetchFromGitHub, wrapQtAppsHook, phonon, phonon-backend-vlc, qtbase, qmake
-, qtdeclarative, qttools
+, qtdeclarative, qttools, qtx11extras, mpv
# "Free" key generated by nckx . I no longer have a Google
# account. You'll need to generate (and please share :-) a new one if it breaks.
@@ -7,16 +7,17 @@
stdenv.mkDerivation rec {
pname = "minitube";
- version = "2.9";
+ version = "3.2";
src = fetchFromGitHub {
- sha256 = "11zkmwqadlgrrghs3rxq0h0fllfnyd3g09d7gdd6vd9r1a1yz73f";
+ sha256 = "0175sgqmszakqd631bni4aqjpx68h6n49zjvg23fb1yyancnkn4c";
rev = version;
repo = "minitube";
owner = "flaviotordini";
+ fetchSubmodules = true;
};
- buildInputs = [ phonon phonon-backend-vlc qtbase qtdeclarative qttools ];
+ buildInputs = [ phonon phonon-backend-vlc qtbase qtdeclarative qttools qtx11extras mpv ];
nativeBuildInputs = [ wrapQtAppsHook qmake ];
qmakeFlags = [ "DEFINES+=APP_GOOGLE_API_KEY=${withAPIKey}" ];
diff --git a/pkgs/applications/video/mkvtoolnix/default.nix b/pkgs/applications/video/mkvtoolnix/default.nix
index 04ddbbb8c06..153d0a20b6e 100644
--- a/pkgs/applications/video/mkvtoolnix/default.nix
+++ b/pkgs/applications/video/mkvtoolnix/default.nix
@@ -13,13 +13,13 @@ with stdenv.lib;
stdenv.mkDerivation rec {
pname = "mkvtoolnix";
- version = "37.0.0";
+ version = "38.0.0";
src = fetchFromGitLab {
owner = "mbunkus";
repo = "mkvtoolnix";
rev = "release-${version}";
- sha256 = "0r1qzvqc6xx7rmv4v4fjc70cqy832h8v0fjf6c5ljbg1c6pgkl0l";
+ sha256 = "0874rfslglywpa8ilhqv59zvn2hisdsbwd7r61psf5rd64v72ym4";
};
nativeBuildInputs = [
@@ -50,6 +50,8 @@ stdenv.mkDerivation rec {
(enableFeature withGUI "qt")
];
+ CXXFLAGS = optional stdenv.cc.isClang "-std=c++14";
+
dontWrapQtApps = true;
postFixup = optionalString withGUI ''
wrapQtApp $out/bin/mkvtoolnix-gui
diff --git a/pkgs/applications/video/mpv/default.nix b/pkgs/applications/video/mpv/default.nix
index bb0b92eee03..f3c7d376100 100644
--- a/pkgs/applications/video/mpv/default.nix
+++ b/pkgs/applications/video/mpv/default.nix
@@ -1,6 +1,6 @@
{ config, stdenv, fetchurl, fetchFromGitHub, makeWrapper
-, docutils, perl, pkgconfig, python3, which, ffmpeg_4
-, freefont_ttf, freetype, libass, libpthreadstubs, mujs
+, addOpenGLRunpath, docutils, perl, pkgconfig, python3, which
+, ffmpeg_4, freefont_ttf, freetype, libass, libpthreadstubs, mujs
, nv-codec-headers, lua, libuchardet, libiconv ? null, darwin
, waylandSupport ? stdenv.isLinux
@@ -20,33 +20,39 @@
, libcdio-paranoia ? null
, vulkanSupport ? stdenv.isLinux
- , shaderc ? null
+ , libplacebo ? null
+ , shaderc ? null
, vulkan-headers ? null
- , vulkan-loader ? null
+ , vulkan-loader ? null
+
+, drmSupport ? stdenv.isLinux
+ , libdrm ? null
+ , mesa ? null
, alsaSupport ? stdenv.isLinux, alsaLib ? null
, bluraySupport ? true, libbluray ? null
, bs2bSupport ? true, libbs2b ? null
, cacaSupport ? true, libcaca ? null
, cmsSupport ? true, lcms2 ? null
-, drmSupport ? stdenv.isLinux, libdrm ? null
, dvdnavSupport ? stdenv.isLinux, libdvdnav ? null
-, dvdreadSupport ? stdenv.isLinux, libdvdread ? null
, libpngSupport ? true, libpng ? null
, pulseSupport ? config.pulseaudio or stdenv.isLinux, libpulseaudio ? null
-, rubberbandSupport ? stdenv.isLinux, rubberband ? null
+, rubberbandSupport ? stdenv.isLinux, rubberband ? null
, screenSaverSupport ? true, libXScrnSaver ? null
+, sambaSupport ? stdenv.isLinux, samba ? null
, sdl2Support ? true, SDL2 ? null
+, sndioSupport ? true, sndio ? null
, speexSupport ? true, speex ? null
, theoraSupport ? true, libtheora ? null
-, vaapiSupport ? stdenv.isLinux, libva ? null
+, vaapiSupport ? stdenv.isLinux, libva ? null
, vdpauSupport ? true, libvdpau ? null
, xineramaSupport ? stdenv.isLinux, libXinerama ? null
, xvSupport ? stdenv.isLinux, libXv ? null
, youtubeSupport ? true, youtube-dl ? null
+, zimgSupport ? true, zimg ? null
, archiveSupport ? false, libarchive ? null
, jackaudioSupport ? false, libjack2 ? null
-, openalSupport ? false, openalSoft ? null
+, openalSupport ? true, openalSoft ? null
, vapoursynthSupport ? false, vapoursynth ? null
}:
@@ -60,28 +66,31 @@ assert archiveSupport -> available libarchive;
assert bluraySupport -> available libbluray;
assert bs2bSupport -> available libbs2b;
assert cacaSupport -> available libcaca;
-assert cddaSupport -> all available [libcdio libcdio-paranoia];
+assert cddaSupport -> all available [ libcdio libcdio-paranoia ];
assert cmsSupport -> available lcms2;
-assert drmSupport -> available libdrm;
+assert drmSupport -> all available [ libdrm mesa ];
assert dvdnavSupport -> available libdvdnav;
-assert dvdreadSupport -> available libdvdread;
assert jackaudioSupport -> available libjack2;
assert libpngSupport -> available libpng;
assert openalSupport -> available openalSoft;
assert pulseSupport -> available libpulseaudio;
assert rubberbandSupport -> available rubberband;
assert screenSaverSupport -> available libXScrnSaver;
+assert sambaSupport -> available samba;
assert sdl2Support -> available SDL2;
+assert sndioSupport -> available sndio;
assert speexSupport -> available speex;
assert theoraSupport -> available libtheora;
assert vaapiSupport -> available libva;
assert vapoursynthSupport -> available vapoursynth;
assert vdpauSupport -> available libvdpau;
+assert vulkanSupport -> all available [ libplacebo shaderc vulkan-headers vulkan-loader ];
assert waylandSupport -> all available [ wayland wayland-protocols libxkbcommon ];
assert x11Support -> all available [ libGLU_combined libX11 libXext libXxf86vm libXrandr ];
assert xineramaSupport -> x11Support && available libXinerama;
assert xvSupport -> x11Support && available libXv;
assert youtubeSupport -> available youtube-dl;
+assert zimgSupport -> available zimg;
let
# Purity: Waf is normally downloaded by bootstrap.py, but
@@ -92,17 +101,17 @@ let
"http://www.freehackers.org/~tnagy/release/waf-${wafVersion}" ];
sha256 = "0j7sbn3w6bgslvwwh5v9527w3gi2sd08kskrgxamx693y0b0i3ia";
};
- luaEnv = lua.withPackages(ps: with ps; [ luasocket ]);
+ luaEnv = lua.withPackages (ps: with ps; [ luasocket ]);
in stdenv.mkDerivation rec {
pname = "mpv";
- version = "0.29.1";
+ version = "0.30.0";
src = fetchFromGitHub {
- owner = "mpv-player";
- repo = "mpv";
+ owner = "mpv-player";
+ repo = "mpv";
rev = "v${version}";
- sha256 = "138921kx8g6qprim558xin09xximjhsj9ss8b71ifg2m6kclym8m";
+ sha256 = "17mxjgcfljlv6h0ik3332xsqbs0ybvk6dkwflyl0cjh15vl1iv6f";
};
postPatch = ''
@@ -115,7 +124,6 @@ in stdenv.mkDerivation rec {
configureFlags = [
"--enable-libmpv-shared"
"--enable-manpage-build"
- "--enable-zsh-comp"
"--disable-libmpv-static"
"--disable-static-build"
"--disable-build-date" # Purity
@@ -123,8 +131,10 @@ in stdenv.mkDerivation rec {
(enableFeature archiveSupport "libarchive")
(enableFeature cddaSupport "cdda")
(enableFeature dvdnavSupport "dvdnav")
- (enableFeature dvdreadSupport "dvdread")
(enableFeature openalSupport "openal")
+ (enableFeature sambaSupport "libsmbclient")
+ (enableFeature sdl2Support "sdl2")
+ (enableFeature sndioSupport "sndio")
(enableFeature vaapiSupport "vaapi")
(enableFeature waylandSupport "wayland")
(enableFeature stdenv.isLinux "dvbin")
@@ -135,8 +145,7 @@ in stdenv.mkDerivation rec {
'';
nativeBuildInputs = [
- docutils makeWrapper perl
- pkgconfig python3 which
+ addOpenGLRunpath docutils makeWrapper perl pkgconfig python3 which
];
buildInputs = [
@@ -148,15 +157,15 @@ in stdenv.mkDerivation rec {
++ optional bs2bSupport libbs2b
++ optional cacaSupport libcaca
++ optional cmsSupport lcms2
- ++ optional drmSupport libdrm
- ++ optional dvdreadSupport libdvdread
++ optional jackaudioSupport libjack2
++ optional libpngSupport libpng
++ optional openalSupport openalSoft
++ optional pulseSupport libpulseaudio
++ optional rubberbandSupport rubberband
+ ++ optional sambaSupport samba
++ optional screenSaverSupport libXScrnSaver
++ optional sdl2Support SDL2
+ ++ optional sndioSupport sndio
++ optional speexSupport speex
++ optional theoraSupport libtheora
++ optional vaapiSupport libva
@@ -165,13 +174,15 @@ in stdenv.mkDerivation rec {
++ optional xineramaSupport libXinerama
++ optional xvSupport libXv
++ optional youtubeSupport youtube-dl
+ ++ optional zimgSupport zimg
++ optional stdenv.isDarwin libiconv
++ optional stdenv.isLinux nv-codec-headers
++ optionals cddaSupport [ libcdio libcdio-paranoia ]
+ ++ optionals drmSupport [ libdrm mesa ]
++ optionals dvdnavSupport [ libdvdnav libdvdnav.libdvdread ]
++ optionals waylandSupport [ wayland wayland-protocols libxkbcommon ]
++ optionals x11Support [ libX11 libXext libGLU_combined libXxf86vm libXrandr ]
- ++ optionals vulkanSupport [ shaderc vulkan-headers vulkan-loader ]
+ ++ optionals vulkanSupport [ libplacebo shaderc vulkan-headers vulkan-loader ]
++ optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
CoreFoundation Cocoa CoreAudio
]);
@@ -214,11 +225,17 @@ in stdenv.mkDerivation rec {
${wrapperFlags}
'';
+ # Set RUNPATH so that libcuda in /run/opengl-driver(-32)/lib can be found.
+ # See the explanation in addOpenGLRunpath.
+ postFixup = optionalString stdenv.isLinux ''
+ addOpenGLRunpath $out/bin/.mpv-wrapped
+ '';
+
meta = with stdenv.lib; {
description = "A media player that supports many video formats (MPlayer and mplayer2 fork)";
homepage = https://mpv.io;
license = licenses.gpl2Plus;
- maintainers = with maintainers; [ AndersonTorres fuuzetsu fpletz globin ];
+ maintainers = with maintainers; [ AndersonTorres fuuzetsu fpletz globin ivan ];
platforms = platforms.darwin ++ platforms.linux;
longDescription = ''
diff --git a/pkgs/applications/video/mythtv/default.nix b/pkgs/applications/video/mythtv/default.nix
index d5c46491cf4..7914bb84c42 100644
--- a/pkgs/applications/video/mythtv/default.nix
+++ b/pkgs/applications/video/mythtv/default.nix
@@ -1,40 +1,40 @@
-{ stdenv, fetchFromGitHub, which, qtbase, qtwebkit, qtscript, xlibsWrapper
+{ stdenv, mkDerivation, fetchFromGitHub, which, qtbase, qtwebkit, qtscript, xlibsWrapper
, libpulseaudio, fftwSinglePrec , lame, zlib, libGLU_combined, alsaLib, freetype
-, perl, pkgconfig , libX11, libXv, libXrandr, libXvMC, libXinerama, libXxf86vm
-, libXmu , yasm, libuuid, taglib, libtool, autoconf, automake, file, exiv2
-, linuxHeaders, fetchpatch
+, perl, pkgconfig , libsamplerate, libbluray, lzo, libX11, libXv, libXrandr, libXvMC, libXinerama, libXxf86vm
+, libXmu , yasm, libuuid, taglib, libtool, autoconf, automake, file, exiv2, linuxHeaders
+, libXNVCtrl, enableXnvctrl ? false
}:
-stdenv.mkDerivation rec {
+mkDerivation rec {
pname = "mythtv";
- version = "29.1";
+ version = "30.0";
src = fetchFromGitHub {
owner = "MythTV";
repo = "mythtv";
rev = "v${version}";
- sha256 = "0pjxv4bmq8h285jsr02svgaa03614arsyk12fn9d4rndjsi2cc3x";
+ sha256 = "1pfzjb07xwd3mfgmbr4kkiyfyvwy9fkl13ik7bvqds86m0ws5bw4";
};
patches = [
# Fixes build with exiv2 0.27.1.
- (fetchpatch {
- name = "004-exiv2.patch";
- url = "https://aur.archlinux.org/cgit/aur.git/plain/004-exiv2.patch?h=mythtv&id=76ea37f8556805b205878772ad7874e487c0d946";
- sha256 = "0mh542f53qgky0w3s2bv0gmcxzvmb10834z3cfff40fby2ffr6k8";
- })
+ ./exiv2.patch
+ # Disables OS detection used while checking for xnvctrl support.
+ ./disable-os-detection.patch
];
setSourceRoot = ''sourceRoot=$(echo */mythtv)'';
buildInputs = [
freetype qtbase qtwebkit qtscript lame zlib xlibsWrapper libGLU_combined
- perl alsaLib libpulseaudio fftwSinglePrec libX11 libXv libXrandr libXvMC
+ perl libsamplerate libbluray lzo alsaLib libpulseaudio fftwSinglePrec libX11 libXv libXrandr libXvMC
libXmu libXinerama libXxf86vm libXmu libuuid taglib exiv2
- ];
+ ] ++ stdenv.lib.optional enableXnvctrl libXNVCtrl;
nativeBuildInputs = [ pkgconfig which yasm libtool autoconf automake file ];
- configureFlags = [ "--dvb-path=${linuxHeaders}/include" ];
+ configureFlags =
+ [ "--dvb-path=${linuxHeaders}/include" ]
+ ++ stdenv.lib.optionals (!enableXnvctrl) [ "--disable-xnvctrl" ];
meta = with stdenv.lib; {
homepage = https://www.mythtv.org/;
diff --git a/pkgs/applications/video/mythtv/disable-os-detection.patch b/pkgs/applications/video/mythtv/disable-os-detection.patch
new file mode 100644
index 00000000000..5a35dc2d1dd
--- /dev/null
+++ b/pkgs/applications/video/mythtv/disable-os-detection.patch
@@ -0,0 +1,51 @@
+--- a/configure 1970-01-01 01:00:01.000000000 +0100
++++ b/configure 2019-10-26 11:54:01.920776490 +0200
+@@ -6642,29 +6642,29 @@
+ require libXinerama X11/extensions/Xinerama.h XineramaQueryExtension -lXinerama
+ require libXext "X11/Xdefs.h X11/Xlib.h X11/extensions/Xext.h" XMissingExtension -lXext
+ if enabled xnvctrl; then
+- case $target_os in
+- linux)
++# case $target_os in
++# linux)
+ # Bah. Suse linux doesn't have xnvctrl.
+- . /etc/os-release
+- case $ID in
+- *suse*)
++# . /etc/os-release
++# case $ID in
++# *suse*)
+ # This is hopefully temporary.
+- disable xnvctrl_external
+- ;;
+- *)
+- require XNVctrl "X11/Xlib.h NVCtrl/NVCtrl.h NVCtrl/NVCtrlLib.h" XNVCTRLIsNvScreen -lXNVCtrl || disable xnvctrl
+- ;;
+- esac
+- ;;
+- freebsd)
++# disable xnvctrl_external
++# ;;
++# *)
++ require XNVctrl "X11/Xlib.h NVCtrl/NVCtrl.h NVCtrl/NVCtrlLib.h" XNVCTRLIsNvScreen -lXNVCtrl || disable xnvctrl
++# ;;
++# esac
++# ;;
++# freebsd)
+ # This is hopefully temporary, and will eventually
+ # check for a system library too.
+- disable xnvctrl_external
+- ;;
+- *)
+- disable xnvctrl
+- ;;
+- esac
++# disable xnvctrl_external
++# ;;
++# *)
++# disable xnvctrl
++# ;;
++# esac
+ fi
+ fi
+
diff --git a/pkgs/applications/video/mythtv/exiv2.patch b/pkgs/applications/video/mythtv/exiv2.patch
new file mode 100644
index 00000000000..29bf1f5967b
--- /dev/null
+++ b/pkgs/applications/video/mythtv/exiv2.patch
@@ -0,0 +1,19 @@
+Patch source: https://aur.archlinux.org/cgit/aur.git/plain/004-exiv2.patch?h=mythtv&id=76ea37f8556805b205878772ad7874e487c0d946
+--- a/libs/libmythmetadata/imagemetadata.cpp
++++ b/libs/libmythmetadata/imagemetadata.cpp
+@@ -7,14 +7,7 @@
+ #include "exitcodes.h" // for ffprobe
+
+ // libexiv2 for Exif metadata
+-//#include
+-// Note: Older versions of Exiv2 don't have the exiv2.hpp include
+-// file. Using image.hpp instead seems to work.
+-#ifdef _MSC_VER
+-#include
+-#else
+-#include
+-#endif
++#include
+
+ // To read FFMPEG Metadata
+ extern "C" {
diff --git a/pkgs/applications/video/obs-studio/default.nix b/pkgs/applications/video/obs-studio/default.nix
index 5e7cf9353b2..e5022242ef8 100644
--- a/pkgs/applications/video/obs-studio/default.nix
+++ b/pkgs/applications/video/obs-studio/default.nix
@@ -37,13 +37,13 @@ let
optional = stdenv.lib.optional;
in mkDerivation rec {
pname = "obs-studio";
- version = "23.2.1";
+ version = "24.0.3";
src = fetchFromGitHub {
owner = "jp9000";
repo = "obs-studio";
rev = version;
- sha256 = "05brixq2z98mvn1q2rgdl27xj798509nv8yh6h0yzqyk9gly4anz";
+ sha256 = "0g8nzs696f3myz4hvygav85b0jgjmn6dicy50axmapdv8miff9xa";
};
nativeBuildInputs = [ cmake
diff --git a/pkgs/applications/video/obs-studio/fix-search-path.patch b/pkgs/applications/video/obs-studio/fix-search-path.patch
new file mode 100644
index 00000000000..4503447ff5d
--- /dev/null
+++ b/pkgs/applications/video/obs-studio/fix-search-path.patch
@@ -0,0 +1,13 @@
+diff --git a/external/FindLibObs.cmake b/external/FindLibObs.cmake
+index ab0a3de..19c63ee 100644
+--- a/external/FindLibObs.cmake
++++ b/external/FindLibObs.cmake
+@@ -95,7 +95,7 @@ if(LIBOBS_FOUND)
+
+ set(LIBOBS_INCLUDE_DIRS ${LIBOBS_INCLUDE_DIR} ${W32_PTHREADS_INCLUDE_DIR})
+ set(LIBOBS_LIBRARIES ${LIBOBS_LIB} ${W32_PTHREADS_LIB})
+- include(${LIBOBS_INCLUDE_DIR}/../cmake/external/ObsPluginHelpers.cmake)
++ include(external/ObsPluginHelpers.cmake)
+
+ # allows external plugins to easily use/share common dependencies that are often included with libobs (such as FFmpeg)
+ if(NOT DEFINED INCLUDED_LIBOBS_CMAKE_MODULES)
diff --git a/pkgs/applications/video/obs-studio/hardcode-ndi-path.patch b/pkgs/applications/video/obs-studio/hardcode-ndi-path.patch
new file mode 100644
index 00000000000..caef96c381f
--- /dev/null
+++ b/pkgs/applications/video/obs-studio/hardcode-ndi-path.patch
@@ -0,0 +1,17 @@
+diff --git a/src/obs-ndi.cpp b/src/obs-ndi.cpp
+index 493831c..7b0f8db 100644
+--- a/src/obs-ndi.cpp
++++ b/src/obs-ndi.cpp
+@@ -197,11 +197,7 @@ const char* obs_module_description()
+ const NDIlib_v4* load_ndilib()
+ {
+ QStringList locations;
+- locations << QString(qgetenv(NDILIB_REDIST_FOLDER));
+-#if defined(__linux__) || defined(__APPLE__)
+- locations << "/usr/lib";
+- locations << "/usr/local/lib";
+-#endif
++ locations << "@NDI@/lib";
+
+ for (QString path : locations) {
+ blog(LOG_INFO, "Trying '%s'", path.toUtf8().constData());
diff --git a/pkgs/applications/video/obs-studio/linuxbrowser.nix b/pkgs/applications/video/obs-studio/linuxbrowser.nix
index 52aa57bf198..134e0cb8a9e 100644
--- a/pkgs/applications/video/obs-studio/linuxbrowser.nix
+++ b/pkgs/applications/video/obs-studio/linuxbrowser.nix
@@ -5,18 +5,19 @@
# mkdir -p ~/.config/obs-studio/plugins
# ln -s ~/.nix-profile/share/obs/obs-plugins/obs-linuxbrowser ~/.config/obs-studio/plugins/
-{ stdenv, fetchFromGitHub, obs-studio, cmake, libcef
-}:
+{ stdenv, fetchFromGitHub, obs-studio, cmake, libcef }:
stdenv.mkDerivation rec {
pname = "obs-linuxbrowser";
- version = "0.6.1";
+ version = "0.6.1-6-gf86dba6";
+
src = fetchFromGitHub {
owner = "bazukas";
repo = "obs-linuxbrowser";
rev = version;
- sha256 = "1mi9pchy07ipnx1m2767n29d53v822yajcf6c3705dhz882z21zq";
+ sha256 = "08d7qz0721va88bcyia8p0ycw50f6x3yk97s3vzhsc9xpq691kpi";
};
+
nativeBuildInputs = [ cmake ];
buildInputs = [ obs-studio ];
postUnpack = ''
diff --git a/pkgs/applications/video/obs-studio/obs-ndi.nix b/pkgs/applications/video/obs-studio/obs-ndi.nix
new file mode 100644
index 00000000000..452793f442e
--- /dev/null
+++ b/pkgs/applications/video/obs-studio/obs-ndi.nix
@@ -0,0 +1,41 @@
+# We don't have a wrapper which can supply obs-studio plugins so you have to
+# somewhat manually install this:
+
+# nix-env -f "" -iA obs-ndi
+# mkdir -p ~/.config/obs-studio/plugins/bin
+# ln -s ~/.nix-profile/lib/obs-plugins/obs-ndi.so ~/.config/obs-studio/plugins/bin/
+
+{ stdenv, fetchFromGitHub, obs-studio, cmake, qt5, ndi }:
+
+stdenv.mkDerivation rec {
+ pname = "obs-ndi";
+ version = "4.7.1";
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ obs-studio qt5.qtbase ndi ];
+
+ src = fetchFromGitHub {
+ owner = "Palakis";
+ repo = "obs-ndi";
+ rev = version;
+ sha256 = "040fkbf3f3qgqcrd3072y3zrjb4fwga8zr10jym744xd7bgyylqh";
+ };
+
+ patches = [ ./fix-search-path.patch ./hardcode-ndi-path.patch ];
+
+ postPatch = "sed -i -e s,@NDI@,${ndi},g src/obs-ndi.cpp";
+
+ cmakeFlags = [
+ "-DLIBOBS_INCLUDE_DIR=${obs-studio}/include/obs"
+ "-DLIBOBS_LIB=${obs-studio}/lib"
+ "-DCMAKE_CXX_FLAGS=-I${obs-studio.src}/UI/obs-frontend-api"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Network A/V plugin for OBS Studio";
+ homepage = https://github.com/Palakis/obs-ndi;
+ maintainers = with maintainers; [ peti ];
+ license = licenses.gpl2;
+ platforms = with platforms; linux;
+ };
+}
diff --git a/pkgs/applications/video/obs-studio/wlrobs.nix b/pkgs/applications/video/obs-studio/wlrobs.nix
new file mode 100644
index 00000000000..13a53f94590
--- /dev/null
+++ b/pkgs/applications/video/obs-studio/wlrobs.nix
@@ -0,0 +1,37 @@
+# (the following is somewhat lifted from ./linuxbrowser.nix)
+# We don't have a wrapper which can supply obs-studio plugins so you have to
+# somewhat manually install this:
+
+# nix-env -f . -iA obs-wlrobs
+# mkdir -p ~/.config/obs-studio/plugins/wlrobs/bin/64bit
+# ln -s ~/.nix-profile/share/obs/obs-plugins/wlrobs/bin/64bit/libwlrobs.so ~/.config/obs-studio/plugins/wlrobs/bin/64bit
+{ stdenv, fetchhg, wayland, obs-studio }:
+stdenv.mkDerivation {
+ pname = "obs-wlrobs";
+ version = "20191008";
+
+ src = fetchhg {
+ url = "https://hg.sr.ht/~scoopta/wlrobs";
+ rev = "82e2b93c6f662dfd9d69f7826c0096bef585c3ae";
+ sha256 = "1d2mlybkwyr0jw6paamazla2a1cyj60bs10i0lk9jclxnp780fy6";
+ };
+
+ buildInputs = [ wayland obs-studio ];
+
+ preBuild = ''
+ cd Release
+ '';
+
+ installPhase = ''
+ mkdir -p $out/share/obs/obs-plugins/wlrobs/bin/64bit
+ cp ./libwlrobs.so $out/share/obs/obs-plugins/wlrobs/bin/64bit/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An obs-studio plugin that allows you to screen capture on wlroots based wayland compositors";
+ homepage = https://hg.sr.ht/~scoopta/wlrobs;
+ maintainers = with maintainers; [ grahamc ];
+ license = licenses.gpl3;
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/pkgs/applications/video/olive-editor/default.nix b/pkgs/applications/video/olive-editor/default.nix
index efa06f4794e..1285422a2f9 100644
--- a/pkgs/applications/video/olive-editor/default.nix
+++ b/pkgs/applications/video/olive-editor/default.nix
@@ -1,5 +1,5 @@
{ stdenv, fetchFromGitHub, pkgconfig, which, qmake, mkDerivation,
- qtbase, qtmultimedia, frei0r, opencolorio, hicolor-icon-theme, ffmpeg-full,
+ qtbase, qtmultimedia, frei0r, opencolorio, ffmpeg-full,
CoreFoundation }:
mkDerivation rec {
@@ -13,9 +13,9 @@ mkDerivation rec {
sha256 = "15q4qwf5rc3adssywl72jrhkpqk55ihpd5h5wf07baw0s47vv5kq";
};
- nativeBuildInputs = [
- pkgconfig
- which
+ nativeBuildInputs = [
+ pkgconfig
+ which
qmake
];
@@ -26,7 +26,6 @@ mkDerivation rec {
qtbase
qtmultimedia
qtmultimedia.dev
- hicolor-icon-theme
] ++ stdenv.lib.optional stdenv.isDarwin CoreFoundation;
meta = with stdenv.lib; {
diff --git a/pkgs/applications/video/peek/default.nix b/pkgs/applications/video/peek/default.nix
index 374ea08816f..4872b5ec2eb 100644
--- a/pkgs/applications/video/peek/default.nix
+++ b/pkgs/applications/video/peek/default.nix
@@ -1,45 +1,78 @@
-{ stdenv, fetchFromGitHub, cmake, gettext, libxml2, pkgconfig, txt2man, vala_0_40, wrapGAppsHook
-, gsettings-desktop-schemas, gtk3, keybinder3, ffmpeg
+{ stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, gettext
+, desktop-file-utils
+, appstream-glib
+, pkgconfig
+, txt2man
+, gzip
+, vala
+, wrapGAppsHook
+, gsettings-desktop-schemas
+, gtk3
+, glib
+, cairo
+, keybinder3
+, ffmpeg
+, python3
+, libxml2
+, gst_all_1
+, which
+, gifski
}:
stdenv.mkDerivation rec {
pname = "peek";
- version = "1.3.1";
+ version = "1.4.0";
src = fetchFromGitHub {
owner = "phw";
- repo = pname;
+ repo = "peek";
rev = version;
- sha256 = "1fnvlklmg6s5rs3ql74isa5fgdkqqrpsyf8k2spxj520239l4vgb";
+ sha256 = "0q70hz9anqywqgksd43i8v9ijwy6djyzwnzzd94j44xqwsk9zdbb";
};
- preConfigure = ''
- gappsWrapperArgs+=(--prefix PATH : ${stdenv.lib.makeBinPath [ ffmpeg ]})
- '';
-
nativeBuildInputs = [
- cmake
+ appstream-glib
+ desktop-file-utils
gettext
+ gzip
+ meson
+ ninja
+ libxml2
pkgconfig
- libxml2.bin
txt2man
- vala_0_40 # See https://github.com/NixOS/nixpkgs/issues/58433
+ python3
+ vala
wrapGAppsHook
];
buildInputs = [
+ cairo
+ glib
gsettings-desktop-schemas
gtk3
+ gst_all_1.gstreamer
+ gst_all_1.gst-plugins-good
+ gst_all_1.gst-plugins-ugly
keybinder3
];
- enableParallelBuilding = true;
+ postPatch = ''
+ patchShebangs build-aux/meson/postinstall.py data/man/build_man.sh
+ '';
+
+ preFixup = ''
+ gappsWrapperArgs+=(--prefix PATH : ${stdenv.lib.makeBinPath [ which ffmpeg gifski ]})
+ '';
meta = with stdenv.lib; {
- homepage = https://github.com/phw/peek;
+ homepage = https://github.com/phw/peek;
description = "Simple animated GIF screen recorder with an easy to use interface";
- license = licenses.gpl3;
- maintainers = with maintainers; [ puffnfresh ];
- platforms = platforms.linux;
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ puffnfresh worldofpeace ];
+ platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/video/qarte/default.nix b/pkgs/applications/video/qarte/default.nix
index f0c3776a433..cd6416032da 100644
--- a/pkgs/applications/video/qarte/default.nix
+++ b/pkgs/applications/video/qarte/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, fetchbzr, python3, rtmpdump, makeWrapper }:
+{ mkDerivation, lib, fetchbzr, python3, rtmpdump }:
let
- pythonEnv = python3.withPackages (ps: with ps; [ pyqt5 sip ]);
-in stdenv.mkDerivation {
+ pythonEnv = python3.withPackages (ps: with ps; [ pyqt5_with_qtmultimedia ]);
+in mkDerivation {
name = "qarte-4.6.0";
src = fetchbzr {
url = http://bazaar.launchpad.net/~vincent-vandevyvre/qarte/qarte-4;
@@ -10,28 +10,33 @@ in stdenv.mkDerivation {
sha256 = "0v4zpj8w67ydvnmanxbl8pwvn0cfv70c0mlw36a1r4n0rvgxffcn";
};
- buildInputs = [ makeWrapper pythonEnv ];
+ buildInputs = [ pythonEnv ];
installPhase = ''
+ runHook preInstall
mkdir -p $out/bin
mv qarte $out/bin/
substituteInPlace $out/bin/qarte \
--replace '/usr/share' "$out/share"
- wrapProgram $out/bin/qarte \
- --prefix PATH : "${rtmpdump}/bin"
mkdir -p $out/share/man/man1/
mv qarte.1 $out/share/man/man1/
mkdir -p $out/share/qarte
mv * $out/share/qarte/
+ runHook postInstall
+ '';
+
+ postFixup = ''
+ wrapQtApp $out/bin/qarte \
+ --prefix PATH : ${rtmpdump}/bin
'';
meta = {
homepage = https://launchpad.net/qarte;
description = "A recorder for Arte TV Guide and Arte Concert";
- license = stdenv.lib.licenses.gpl3;
- maintainers = with stdenv.lib.maintainers; [ vbgl ];
- platforms = stdenv.lib.platforms.linux;
+ license = lib.licenses.gpl3;
+ maintainers = with lib.maintainers; [ vbgl ];
+ platforms = lib.platforms.linux;
};
}
diff --git a/pkgs/applications/video/screenkey/default.nix b/pkgs/applications/video/screenkey/default.nix
index 1671c3f14d0..56b1134b2b8 100644
--- a/pkgs/applications/video/screenkey/default.nix
+++ b/pkgs/applications/video/screenkey/default.nix
@@ -10,7 +10,6 @@
, libXtst
, wrapGAppsHook
, gnome3
-, hicolor-icon-theme
}:
buildPythonApplication rec {
pname = "screenkey";
@@ -40,7 +39,6 @@ buildPythonApplication rec {
buildInputs = [
gnome3.adwaita-icon-theme
- hicolor-icon-theme
];
propagatedBuildInputs = [
diff --git a/pkgs/applications/video/shotcut/default.nix b/pkgs/applications/video/shotcut/default.nix
index 176c4be4946..4636ce48b1a 100644
--- a/pkgs/applications/video/shotcut/default.nix
+++ b/pkgs/applications/video/shotcut/default.nix
@@ -1,21 +1,36 @@
-{ stdenv, fetchFromGitHub, SDL2, frei0r, gettext, mlt, jack1, mkDerivation
-, pkgconfig, qtbase, qtmultimedia, qtwebkit, qtx11extras, qtwebsockets
-, qtquickcontrols, qtgraphicaleffects, libmlt, qmake, qttools }:
+{ stdenv, fetchFromGitHub, fetchpatch, mkDerivation, SDL2, frei0r, gettext, mlt
+, jack1, pkgconfig, qtbase, qtmultimedia, qtwebkit, qtx11extras, qtwebsockets
+, qtquickcontrols, qtgraphicaleffects, libmlt, qmake, qttools
+}:
assert stdenv.lib.versionAtLeast libmlt.version "6.8.0";
assert stdenv.lib.versionAtLeast mlt.version "6.8.0";
+let
+ # https://github.com/mltframework/shotcut/issues/771
+ fixVaapiRendering1 = fetchpatch {
+ url = "https://github.com/peti/shotcut/commit/038f6839298fc1e9e80ddf84fe168a78118bc625.patch";
+ sha256 = "153z1g6criszd6gdkw4f5zk0gmh0jar6l2g8fzwjhhcvkdz30vbp";
+ };
+ fixVaapiRendering2 = fetchpatch {
+ url = "https://github.com/peti/shotcut/commit/653c485f92d2847fdac517e3f797c9254826ffab.patch";
+ sha256 = "1qd0zgyahda72xh3avlg7lg0jq94wq5847154qlrgzj8b4n7vizw";
+ };
+in
+
mkDerivation rec {
pname = "shotcut";
- version = "19.08.16";
+ version = "19.09.14";
src = fetchFromGitHub {
owner = "mltframework";
repo = "shotcut";
rev = "v${version}";
- sha256 = "0alnnfgimfs8fjddkcfx4pzyijwz5dgnqic5qazaza6f4kf60801";
+ sha256 = "1cl8ba1n0h450r4n5mfqmyjaxvczs3m19blwxslqskvmxy5my3cn";
};
+ patches = [ fixVaapiRendering1 fixVaapiRendering2 ];
+
enableParallelBuilding = true;
nativeBuildInputs = [ pkgconfig qmake ];
buildInputs = [
@@ -30,13 +45,14 @@ mkDerivation rec {
prePatch = ''
sed 's_shotcutPath, "qmelt"_"${mlt}/bin/melt"_' -i src/jobs/meltjob.cpp
sed 's_shotcutPath, "ffmpeg"_"${mlt.ffmpeg}/bin/ffmpeg"_' -i src/jobs/ffmpegjob.cpp
+ sed 's_qApp->applicationDirPath(), "ffmpeg"_"${mlt.ffmpeg}/bin/ffmpeg"_' -i src/docks/encodedock.cpp
NICE=$(type -P nice)
sed "s_/usr/bin/nice_''${NICE}_" -i src/jobs/meltjob.cpp src/jobs/ffmpegjob.cpp
'';
qtWrapperArgs = [
"--prefix FREI0R_PATH : ${frei0r}/lib/frei0r-1"
- "--prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [jack1 SDL2 ]}"
+ "--prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [jack1 SDL2]}"
"--prefix PATH : ${mlt}/bin"
];
diff --git a/pkgs/applications/video/smplayer/default.nix b/pkgs/applications/video/smplayer/default.nix
index 495fc6f6745..facb8fabe26 100644
--- a/pkgs/applications/video/smplayer/default.nix
+++ b/pkgs/applications/video/smplayer/default.nix
@@ -1,11 +1,12 @@
{ lib, mkDerivation, fetchurl, qmake, qtscript }:
mkDerivation rec {
- name = "smplayer-19.5.0";
+ pname = "smplayer";
+ version = "19.10.0";
src = fetchurl {
- url = "mirror://sourceforge/smplayer/${name}.tar.bz2";
- sha256 = "1xda9pbrc3dfbs71n5l8yszlcywz9456mwkv52vmn8lszhvjpjxm";
+ url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
+ sha256 = "0sq7hr10b4pbbi0y1q4mxs24h2lb042nv4rqr03r72bp57353xsl";
};
buildInputs = [ qtscript ];
@@ -13,13 +14,12 @@ mkDerivation rec {
dontUseQmakeConfigure = true;
- preConfigure = ''
- makeFlags="PREFIX=$out"
- '';
+ makeFlags = [ "PREFIX=${placeholder "out"}" ];
meta = {
description = "A complete front-end for MPlayer";
- homepage = http://smplayer.sourceforge.net/;
+ longDescription = "Either mplayer or mpv should also be installed for smplayer to play medias";
+ homepage = https://www.smplayer.info;
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.linux;
};
diff --git a/pkgs/applications/video/streamlink/default.nix b/pkgs/applications/video/streamlink/default.nix
index e33610ac416..b5ffdb018ff 100644
--- a/pkgs/applications/video/streamlink/default.nix
+++ b/pkgs/applications/video/streamlink/default.nix
@@ -1,14 +1,14 @@
{ stdenv, pythonPackages, fetchFromGitHub, rtmpdump, ffmpeg }:
pythonPackages.buildPythonApplication rec {
- version = "1.1.1";
+ version = "1.2.0";
pname = "streamlink";
src = fetchFromGitHub {
owner = "streamlink";
repo = "streamlink";
rev = version;
- sha256 = "1vyf0pifdqygg98azdkfhy5fdckb0w2ca7c46mkrj452gkvmcq33";
+ sha256 = "0l8b9ipfmd6dic07ajqqml26jdydz0k046hvx32mqp64jl5jpznh";
};
checkInputs = with pythonPackages; [ pytest mock requests-mock freezegun ];
diff --git a/pkgs/applications/video/vlc/default.nix b/pkgs/applications/video/vlc/default.nix
index a38076ca42b..2396a224d45 100644
--- a/pkgs/applications/video/vlc/default.nix
+++ b/pkgs/applications/video/vlc/default.nix
@@ -5,7 +5,7 @@
, libvorbis, libtheora, speex, lua5, libgcrypt, libgpgerror, libupnp
, libcaca, libpulseaudio, flac, schroedinger, libxml2, librsvg
, mpeg2dec, systemd, gnutls, avahi, libcddb, libjack2, SDL, SDL_image
-, libmtp, unzip, taglib, libkate, libtiger, libv4l, samba, liboggz
+, libmtp, unzip, taglib, libkate, libtiger, libv4l, samba, libssh2, liboggz
, libass, libva, libdvbpsi, libdc1394, libraw1394, libopus
, libvdpau, libsamplerate, live555, fluidsynth, wayland, wayland-protocols
, onlyLibVLC ? false
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
libbluray dbus fribidi libvorbis libtheora speex lua5 libgcrypt libgpgerror
libupnp libcaca libpulseaudio flac schroedinger libxml2 librsvg mpeg2dec
systemd gnutls avahi libcddb SDL SDL_image libmtp unzip taglib libarchive
- libkate libtiger libv4l samba liboggz libass libdvbpsi libva
+ libkate libtiger libv4l samba libssh2 liboggz libass libdvbpsi libva
xorg.xlibsWrapper xorg.libXv xorg.libXvMC xorg.libXpm xorg.xcbutilkeysyms
libdc1394 libraw1394 libopus libebml libmatroska libvdpau libsamplerate
fluidsynth wayland wayland-protocols
diff --git a/pkgs/applications/virtualization/OVMF/default.nix b/pkgs/applications/virtualization/OVMF/default.nix
index 846f395671d..e475c4ed78a 100644
--- a/pkgs/applications/virtualization/OVMF/default.nix
+++ b/pkgs/applications/virtualization/OVMF/default.nix
@@ -42,7 +42,7 @@ edk2.mkDerivation projectDscPath {
mv -v $out/FV/QEMU_{EFI,VARS}.fd $fd/FV
# Uses Fedora dir layout: https://src.fedoraproject.org/cgit/rpms/edk2.git/tree/edk2.spec
- # FIXME: why is it different from Debian dir layout? https://anonscm.debian.org/cgit/pkg-qemu/edk2.git/tree/debian/rules
+ # FIXME: why is it different from Debian dir layout? https://salsa.debian.org/qemu-team/edk2/blob/debian/debian/rules
dd of=$fd/AAVMF/QEMU_EFI-pflash.raw if=/dev/zero bs=1M count=64
dd of=$fd/AAVMF/QEMU_EFI-pflash.raw if=$fd/FV/QEMU_EFI.fd conv=notrunc
dd of=$fd/AAVMF/vars-template-pflash.raw if=/dev/zero bs=1M count=64
diff --git a/pkgs/applications/virtualization/arion/default.nix b/pkgs/applications/virtualization/arion/default.nix
new file mode 100644
index 00000000000..f144ec97677
--- /dev/null
+++ b/pkgs/applications/virtualization/arion/default.nix
@@ -0,0 +1,83 @@
+{ pkgs
+, lib
+, haskellPackages
+, haskell
+, runCommand
+}:
+
+let
+
+ /* This derivation builds the arion tool.
+
+ It is based on the arion-compose Haskell package, but adapted and extended to
+ - have the correct name
+ - have a smaller closure size
+ - have functions to use Arion from inside Nix: arion.eval and arion.build
+ - make it self-contained by including docker-compose
+ */
+ arion =
+ justStaticExecutables (
+ overrideCabal
+ arion-compose
+ cabalOverrides
+ );
+
+ inherit (haskell.lib) justStaticExecutables overrideCabal;
+
+ inherit (haskellPackages) arion-compose;
+
+ cabalOverrides = o: {
+ buildTools = (o.buildTools or []) ++ [pkgs.makeWrapper];
+ passthru = (o.passthru or {}) // {
+ inherit eval build;
+ };
+ # Patch away the arion-compose name. Unlike the Haskell library, the program
+ # is called arion (arion was already taken on hackage).
+ pname = "arion";
+ src = arion-compose.src;
+
+ # PYTHONPATH
+ #
+ # We close off the python module search path!
+ #
+ # Accepting directories from the environment into the search path
+ # tends to break things. Docker Compose does not have a plugin
+ # system as far as I can tell, so I don't expect this to break a
+ # feature, but rather to make the program more robustly self-
+ # contained.
+
+ postInstall = ''${o.postInstall or ""}
+ mkdir -p $out/libexec
+ mv $out/bin/arion $out/libexec
+ makeWrapper $out/libexec/arion $out/bin/arion \
+ --unset PYTHONPATH \
+ --prefix PATH : ${lib.makeBinPath [ pkgs.docker-compose ]} \
+ ;
+ '';
+ };
+
+ # Unpacked sources for evaluation by `eval`
+ srcUnpacked = runCommand "arion-src" {}
+ "mkdir $out; tar -C $out --strip-components=1 -xf ${arion-compose.src}";
+
+ /* Function for evaluating a composition
+
+ Re-uses this Nixpkgs evaluation instead of `arion-pkgs.nix`.
+
+ Returns the module system's `config` and `options` variables.
+ */
+ eval = args@{...}:
+ import (srcUnpacked + "/src/nix/eval-composition.nix")
+ ({ inherit pkgs; } // args);
+
+ /* Function to derivation of the docker compose yaml file
+ NOTE: The output will change: https://github.com/hercules-ci/arion/issues/82
+
+ This function is particularly useful on CI, although the references
+ to image tarballs may not always be desirable.
+ */
+ build = args@{...}:
+ let composition = eval args;
+ in composition.config.out.dockerComposeYaml;
+
+in arion
diff --git a/pkgs/applications/virtualization/charliecloud/default.nix b/pkgs/applications/virtualization/charliecloud/default.nix
index c55eb342e06..35c78dfd50a 100644
--- a/pkgs/applications/virtualization/charliecloud/default.nix
+++ b/pkgs/applications/virtualization/charliecloud/default.nix
@@ -2,14 +2,14 @@
stdenv.mkDerivation rec {
- version = "0.9.8";
+ version = "0.11";
pname = "charliecloud";
src = fetchFromGitHub {
owner = "hpc";
repo = "charliecloud";
rev = "v${version}";
- sha256 = "1w1wy4sj9zqfysrpf04shhppcf5ap4rp7i3ja81sv2fm27k4m9nl";
+ sha256 = "10dzas5fyh2lpa0kf1xv8z9c4g4cf0zlmnpilyvpcyccyfjf6cp2";
};
buildInputs = [ python ];
diff --git a/pkgs/applications/virtualization/conmon/default.nix b/pkgs/applications/virtualization/conmon/default.nix
index 0b523d7b88d..a3576557f34 100644
--- a/pkgs/applications/virtualization/conmon/default.nix
+++ b/pkgs/applications/virtualization/conmon/default.nix
@@ -9,13 +9,13 @@
stdenv.mkDerivation rec {
project = "conmon";
name = "${project}-${version}";
- version = "2.0.0";
+ version = "2.0.3";
src = fetchFromGitHub {
owner = "containers";
repo = project;
rev = "v${version}";
- sha256 = "1sigcylya668f5jzkf1vgfsgqy26l3glh9a3g8lhd2468ax6wymk";
+ sha256 = "0xsirdsgq84bsjb1xgzv3pnjhm9l13vwj79zd8rjdd7p28wsxb0y";
};
nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/virtualization/containerd/default.nix b/pkgs/applications/virtualization/containerd/default.nix
index b770c6ed0a5..70865ea848b 100644
--- a/pkgs/applications/virtualization/containerd/default.nix
+++ b/pkgs/applications/virtualization/containerd/default.nix
@@ -16,8 +16,6 @@ buildGoPackage rec {
goPackagePath = "github.com/containerd/containerd";
outputs = [ "bin" "out" "man" ];
- hardeningDisable = [ "fortify" ];
-
buildInputs = [ btrfs-progs go-md2man utillinux ];
buildFlags = "VERSION=v${version}";
diff --git a/pkgs/applications/virtualization/cri-o/default.nix b/pkgs/applications/virtualization/cri-o/default.nix
index 0d2d0278cc3..fddf1741720 100644
--- a/pkgs/applications/virtualization/cri-o/default.nix
+++ b/pkgs/applications/virtualization/cri-o/default.nix
@@ -17,7 +17,7 @@
buildGoPackage rec {
project = "cri-o";
- version = "1.15.1";
+ version = "1.16.0";
name = "${project}-${version}${flavor}";
goPackagePath = "github.com/${project}/${project}";
@@ -26,7 +26,7 @@ buildGoPackage rec {
owner = "cri-o";
repo = "cri-o";
rev = "v${version}";
- sha256 = "0yjj03qwwb6g05pzavimgj14p6805m3w8qqpl4fp4fpmbrsx4sb0";
+ sha256 = "1kbg544v7c1apaxrpndgrap0pb5c67d8fazbkgykg6ynskx6n344";
};
outputs = [ "bin" "out" ];
@@ -42,17 +42,23 @@ buildGoPackage rec {
pushd go/src/${goPackagePath}
# Build pause
- go build -tags ${makeFlags} -o bin/crio-config -buildmode=pie \
- -ldflags '-s -w ${ldflags}' ${goPackagePath}/cmd/crio-config
-
make -C pause
- # Build the crio binary
- go build -tags ${makeFlags} -o bin/crio -buildmode=pie \
- -ldflags '-s -w ${ldflags}' ${goPackagePath}/cmd/crio
+ # Build the crio binaries
+ function build() {
+ go build \
+ -tags ${makeFlags} \
+ -o bin/"$1" \
+ -buildmode=pie \
+ -ldflags '-s -w ${ldflags}' \
+ ${goPackagePath}/cmd/"$1"
+ }
+ build crio
+ build crio-status
'';
installPhase = ''
install -Dm755 bin/crio $bin/bin/crio${flavor}
+ install -Dm755 bin/crio-status $bin/bin/crio-status${flavor}
mkdir -p $bin/libexec/crio
install -Dm755 bin/pause $bin/libexec/crio/pause${flavor}
diff --git a/pkgs/applications/virtualization/crun/default.nix b/pkgs/applications/virtualization/crun/default.nix
new file mode 100644
index 00000000000..7dddc3b533b
--- /dev/null
+++ b/pkgs/applications/virtualization/crun/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, lib, fetchFromGitHub, autoreconfHook, go-md2man, pkgconfig
+, libcap, libseccomp, python3, systemd, yajl }:
+
+stdenv.mkDerivation rec {
+ pname = "crun";
+ version = "0.8";
+
+ src = fetchFromGitHub {
+ owner = "containers";
+ repo = pname;
+ rev = version;
+ sha256 = "1anvlgw373031w0pp0b28l10yrnyhbj192n60bbbjahw487dk2fi";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ autoreconfHook go-md2man pkgconfig python3 ];
+
+ buildInputs = [ libcap libseccomp systemd yajl ];
+
+ enableParallelBuilding = true;
+
+ # the tests require additional permissions
+ doCheck = false;
+
+ meta = with lib; {
+ description = "A fast and lightweight fully featured OCI runtime and C library for running containers";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ inherit (src.meta) homepage;
+ };
+}
diff --git a/pkgs/applications/virtualization/docker/default.nix b/pkgs/applications/virtualization/docker/default.nix
index 027404439cd..7b4e7787985 100644
--- a/pkgs/applications/virtualization/docker/default.nix
+++ b/pkgs/applications/virtualization/docker/default.nix
@@ -19,7 +19,7 @@ rec {
name = "docker-runc-${version}";
inherit version;
src = fetchFromGitHub {
- owner = "docker";
+ owner = "opencontainers";
repo = "runc";
rev = runcRev;
sha256 = runcSha256;
@@ -37,8 +37,6 @@ rec {
rev = containerdRev;
sha256 = containerdSha256;
};
-
- hardeningDisable = [ "fortify" ];
});
docker-tini = tini.overrideAttrs (oldAttrs: {
@@ -82,9 +80,6 @@ rec {
sha256 = sha256;
};
- # Optimizations break compilation of libseccomp c bindings
- hardeningDisable = [ "fortify" ];
-
nativeBuildInputs = [ pkgconfig ];
buildInputs = [
makeWrapper removeReferencesTo go-md2man go libtool
@@ -198,14 +193,14 @@ rec {
});
# Get revisions from
- # https://github.com/docker/docker-ce/tree/v${version}/components/engine/hack/dockerfile/install/*
+ # https://github.com/docker/docker-ce/tree/${version}/components/engine/hack/dockerfile/install/*
docker_18_09 = makeOverridable dockerGen {
version = "18.09.9";
rev = "039a7df9ba8097dd987370782fcdd6ea79b26016";
sha256 = "0wqhjx9qs96q2jd091wffn3cyv2aslqn2cvpdpgljk8yr9s0yg7h";
- runcRev = "425e105d5a03fabd737a126ad93d62a9eeede87f";
- runcSha256 = "05s4p12mgmdcy7gjralh41wlgds6m69zdgwbpdn1xjj2487dmhxf";
+ runcRev = "3e425f80a8c931f88e6d94a8c831b9d5aa481657";
+ runcSha256 = "18psc830b2rkwml1x6vxngam5b5wi3pj14mw817rshpzy87prspj";
containerdRev = "894b81a4b802e4eb2a91d1ce216b8817763c29fb";
containerdSha256 = "0sp5mn5wd3xma4svm6hf67hyhiixzkzz6ijhyjkwdrc4alk81357";
tiniRev = "fec3683b971d9c3ef73f284f176672c44b448662";
@@ -213,13 +208,13 @@ rec {
};
docker_19_03 = makeOverridable dockerGen {
- version = "19.03.2";
- rev = "6a30dfca03664a0b6bf0646a7d389ee7d0318e6e";
- sha256 = "0bghqwxlx4v06bwcv3c2wizbihhf983gvypx5sjcbgmiyd3bgb47";
- runcRev = "425e105d5a03fabd737a126ad93d62a9eeede87f";
- runcSha256 = "05s4p12mgmdcy7gjralh41wlgds6m69zdgwbpdn1xjj2487dmhxf";
- containerdRev = "894b81a4b802e4eb2a91d1ce216b8817763c29fb";
- containerdSha256 = "0sp5mn5wd3xma4svm6hf67hyhiixzkzz6ijhyjkwdrc4alk81357";
+ version = "19.03.4";
+ rev = "9013bf583a215dc1488d941f9b6f7f11e1ea899f";
+ sha256 = "094d6d93jd7g1vw362cqbv9qbyv8h6pb6dj750pgqvnf1bn1mffb";
+ runcRev = "3e425f80a8c931f88e6d94a8c831b9d5aa481657";
+ runcSha256 = "18psc830b2rkwml1x6vxngam5b5wi3pj14mw817rshpzy87prspj";
+ containerdRev = "b34a5c8af56e510852c35414db4c1f4fa6172339";
+ containerdSha256 = "1kddhkd93wkrimk0yjcqiavdrqc818nd39rf3wrgxyilx1mfnrwb";
tiniRev = "fec3683b971d9c3ef73f284f176672c44b448662";
tiniSha256 = "1h20i3wwlbd8x4jr2gz68hgklh0lb0jj7y5xk1wvr8y58fip1rdn";
};
diff --git a/pkgs/applications/virtualization/dumb-init/default.nix b/pkgs/applications/virtualization/dumb-init/default.nix
new file mode 100644
index 00000000000..c7be90222c2
--- /dev/null
+++ b/pkgs/applications/virtualization/dumb-init/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, glibc }:
+
+stdenv.mkDerivation rec {
+ pname = "dumb-init";
+ version = "1.2.2";
+
+ src = fetchFromGitHub {
+ owner = "Yelp";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "15hgl8rz5dmrl5gx21sq5269l1hq539qn68xghjx0bv9hgbx0g20";
+ };
+
+ buildInputs = [ glibc.static ];
+
+ installPhase = ''
+ runHook preInstall
+
+ install -Dm755 -t $out/bin dumb-init
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A minimal init system for Linux containers";
+ homepage = "https://github.com/Yelp/dumb-init";
+ license = licenses.mit;
+ maintainers = [ maintainers.marsam ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/applications/virtualization/firecracker/default.nix b/pkgs/applications/virtualization/firecracker/default.nix
index 45ec7383fc8..9fa06f5bf0b 100644
--- a/pkgs/applications/virtualization/firecracker/default.nix
+++ b/pkgs/applications/virtualization/firecracker/default.nix
@@ -1,35 +1,61 @@
{ fetchurl, stdenv }:
let
- version = "0.15.2";
- baseurl = "https://github.com/firecracker-microvm/firecracker/releases/download";
+ version = "0.19.0";
+ suffix = {
+ x86_64-linux = "";
+ aarch64-linux = "-aarch64";
+ }."${stdenv.hostPlatform.system}" or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+
+ baseurl = "https://github.com/firecracker-microvm/firecracker/releases/download";
fetchbin = name: sha256: fetchurl {
- url = "${baseurl}/v${version}/${name}-v${version}";
- inherit sha256;
+ url = "${baseurl}/v${version}/${name}-v${version}${suffix}";
+ sha256 = sha256."${stdenv.hostPlatform.system}";
+ };
+
+ firecracker-bin = fetchbin "firecracker" {
+ x86_64-linux = "0yjhw77xc2nc96p36jhf0va95gf6hwi9n270g4iiwakycdy048mx";
+ aarch64-linux = "165yca7pcwpqw3x6dihcjz1xcwjh37sdi9qrrjk9zasxx7xcniym";
+ };
+
+ jailer-bin = fetchbin "jailer" {
+ x86_64-linux = "1q792b4bl1q3ach8nc8l0fbcil44knv3wa542xrskndzdz28lhsp";
+ aarch64-linux = "1cnwlpy5bswjprk7fcjgf6lxidhp7z00qx691nkwhzjkby80j490";
};
- firecracker-bin = fetchbin "firecracker" "11g0iz1krsm6gzhvf0fb4101c6qyk6bl8j3kjidbb52x9i4aqsxk";
- jailer-bin = fetchbin "jailer" "0j1gc1cdsfsi82fkvvxla25791lcvk6vmp46i82f0ms9xm7xhswz";
in
stdenv.mkDerivation {
- name = "firecracker-${version}";
+ pname = "firecracker";
inherit version;
-
srcs = [ firecracker-bin jailer-bin ];
- phases = [ "installPhase" ];
+
+ unpackPhase = ":";
+ configurePhase = ":";
+
+ buildPhase = ''
+ cp ${firecracker-bin} firecracker
+ cp ${jailer-bin} jailer
+ chmod +x firecracker jailer
+ '';
+
+ doCheck = true;
+ checkPhase = ''
+ ./firecracker --version
+ ./jailer --version
+ '';
installPhase = ''
mkdir -p $out/bin
- install -D ${firecracker-bin} $out/bin/firecracker
- install -D ${jailer-bin} $out/bin/jailer
+ install -D firecracker $out/bin/firecracker
+ install -D jailer $out/bin/jailer
'';
meta = with stdenv.lib; {
description = "Secure, fast, minimal micro-container virtualization";
homepage = http://firecracker-microvm.io;
license = licenses.asl20;
- platforms = [ "x86_64-linux" ];
+ platforms = [ "x86_64-linux" "aarch64-linux" ];
maintainers = with maintainers; [ thoughtpolice ];
};
}
diff --git a/pkgs/applications/virtualization/firectl/default.nix b/pkgs/applications/virtualization/firectl/default.nix
new file mode 100644
index 00000000000..1f74318f2dd
--- /dev/null
+++ b/pkgs/applications/virtualization/firectl/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "firectl";
+ version = "0.1.0";
+
+ src = fetchFromGitHub {
+ owner = "firecracker-microvm";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1ni3yx4rjhrkqk2038c6hkb2jwsdj2llx233wd5wgpvb6c57652p";
+ };
+
+ modSha256 = "1nqjz1afklcxc3xcpmygjdh3lfxjk6zvmghr8z8fr3nw2wvw2ddr";
+
+ meta = with stdenv.lib; {
+ description = "A command-line tool to run Firecracker microVMs";
+ homepage = https://github.com/firecracker-microvm/firectl;
+ license = licenses.asl20;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ xrelkd ];
+ };
+}
diff --git a/pkgs/applications/virtualization/lkl/default.nix b/pkgs/applications/virtualization/lkl/default.nix
index 318929eb225..cd6600387cd 100644
--- a/pkgs/applications/virtualization/lkl/default.nix
+++ b/pkgs/applications/virtualization/lkl/default.nix
@@ -3,8 +3,8 @@
stdenv.mkDerivation rec {
pname = "lkl";
- version = "2019-06-20";
- rev = "0a4ebeadad12b94db665b8daf30e44e949a02d90";
+ version = "2019-10-04";
+ rev = "06ca3ddb74dc5b84fa54fa1746737f2df502e047";
outputs = [ "dev" "lib" "out" ];
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
inherit rev;
owner = "lkl";
repo = "linux";
- sha256 = "09y9ci3j0lp3z74h577ng2s9a4n4glqpqndyc9iy6wdqaj764gm6";
+ sha256 = "0qjp0r338bwgrqdsvy5mkdh7ryas23m47yvxfwdknfyl0k3ylq62";
};
# Fix a /usr/bin/env reference in here that breaks sandboxed builds
diff --git a/pkgs/applications/virtualization/open-vm-tools/default.nix b/pkgs/applications/virtualization/open-vm-tools/default.nix
index ee241abda7f..49e77a5ec9d 100644
--- a/pkgs/applications/virtualization/open-vm-tools/default.nix
+++ b/pkgs/applications/virtualization/open-vm-tools/default.nix
@@ -46,6 +46,10 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
+ # igrone glib-2.62 deprecations
+ # Drop in next stable release.
+ NIX_CFLAGS_COMPILE = [ "-DGLIB_DISABLE_DEPRECATION_WARNINGS" ];
+
postInstall = ''
wrapProgram "$out/etc/vmware-tools/scripts/vmware/network" \
--prefix PATH ':' "${lib.makeBinPath [ iproute dbus systemd which ]}"
diff --git a/pkgs/applications/virtualization/podman/default.nix b/pkgs/applications/virtualization/podman/default.nix
index ff768cb7878..9d94ced0bf2 100644
--- a/pkgs/applications/virtualization/podman/default.nix
+++ b/pkgs/applications/virtualization/podman/default.nix
@@ -5,21 +5,19 @@
buildGoPackage rec {
pname = "podman";
- version = "1.5.1";
+ version = "1.6.3";
src = fetchFromGitHub {
owner = "containers";
repo = "libpod";
rev = "v${version}";
- sha256 = "1jg7fdshqz0x71339i0wndskb17x1k5rwpkjiwd463f96fnbfp4x";
+ sha256 = "0y87pylpff2xl796n5s2vrm90pspzqfw8h4a5gndn1mx18s09s69";
};
goPackagePath = "github.com/containers/libpod";
outputs = [ "bin" "out" "man" ];
- # Optimizations break compilation of libseccomp c bindings
- hardeningDisable = [ "fortify" ];
nativeBuildInputs = [ pkgconfig go-md2man ];
buildInputs = [ btrfs-progs libseccomp gpgme lvm2 systemd ];
diff --git a/pkgs/applications/virtualization/qemu/default.nix b/pkgs/applications/virtualization/qemu/default.nix
index d64baca2cc7..f90873c6e33 100644
--- a/pkgs/applications/virtualization/qemu/default.nix
+++ b/pkgs/applications/virtualization/qemu/default.nix
@@ -35,16 +35,15 @@ let
in
stdenv.mkDerivation rec {
- version = "4.0.0";
- name = "qemu-"
- + stdenv.lib.optionalString xenSupport "xen-"
- + stdenv.lib.optionalString hostCpuOnly "host-cpu-only-"
- + stdenv.lib.optionalString nixosTestRunner "for-vm-tests-"
- + version;
+ version = "4.1.0";
+ pname = "qemu"
+ + stdenv.lib.optionalString xenSupport "-xen"
+ + stdenv.lib.optionalString hostCpuOnly "-host-cpu-only"
+ + stdenv.lib.optionalString nixosTestRunner "-for-vm-tests";
src = fetchurl {
url = "https://wiki.qemu.org/download/qemu-${version}.tar.bz2";
- sha256 = "085g6f75si8hbn94mnnjn1r7ysixn5bqj4bhqwvadj00fhzp2zvd";
+ sha256 = "1bpl6hwiw1jdxk4xmqp10qgki0dji0l2rzr10dyhyk8d85vxxw29";
};
nativeBuildInputs = [ python python.pkgs.sphinx pkgconfig flex bison ];
@@ -78,11 +77,6 @@ stdenv.mkDerivation rec {
./no-etc-install.patch
./fix-qemu-ga.patch
./9p-ignore-noatime.patch
- (fetchpatch {
- url = "https://git.qemu.org/?p=qemu.git;a=patch;h=d52680fc932efb8a2f334cc6993e705ed1e31e99";
- name = "CVE-2019-12155.patch";
- sha256 = "0h2q71mcz3gvlrbfkqcgla74jdg73hvzcrwr4max2ckpxx8x9207";
- })
] ++ optional nixosTestRunner ./force-uid0-on-9p.patch
++ optionals stdenv.hostPlatform.isMusl [
(fetchpatch {
diff --git a/pkgs/applications/virtualization/qemu/no-etc-install.patch b/pkgs/applications/virtualization/qemu/no-etc-install.patch
index 37c12ddbfeb..57e190f5ae7 100644
--- a/pkgs/applications/virtualization/qemu/no-etc-install.patch
+++ b/pkgs/applications/virtualization/qemu/no-etc-install.patch
@@ -1,25 +1,13 @@
-From 98b3e5993bbdb0013b6cc1814e0ad9555290c3af Mon Sep 17 00:00:00 2001
-From: Will Dietz
-Date: Tue, 23 Apr 2019 21:31:45 -0500
-Subject: [PATCH] no install localstatedir
-
----
- Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
diff --git a/Makefile b/Makefile
-index 04a0d45050..5dc82d0eb7 100644
+index 85862fb8..ed52c5ec 100644
--- a/Makefile
+++ b/Makefile
-@@ -786,7 +786,7 @@ endif
+@@ -841,7 +841,7 @@ endif
ICON_SIZES=16x16 24x24 32x32 48x48 64x64 128x128 256x256 512x512
--install: all $(if $(BUILD_DOCS),install-doc) install-datadir install-localstatedir
-+install: all $(if $(BUILD_DOCS),install-doc) install-datadir
+-install: all $(if $(BUILD_DOCS),install-doc) install-datadir install-localstatedir \
++install: all $(if $(BUILD_DOCS),install-doc) install-datadir \
+ $(if $(INSTALL_BLOBS),$(edk2-decompressed)) \
+ recurse-install
ifneq ($(TOOLS),)
- $(call install-prog,$(subst qemu-ga,qemu-ga$(EXESUF),$(TOOLS)),$(DESTDIR)$(bindir))
- endif
---
-2.21.GIT
-
diff --git a/pkgs/applications/virtualization/qemu/utils.nix b/pkgs/applications/virtualization/qemu/utils.nix
new file mode 100644
index 00000000000..430d7122179
--- /dev/null
+++ b/pkgs/applications/virtualization/qemu/utils.nix
@@ -0,0 +1,16 @@
+{ stdenv, qemu }:
+
+stdenv.mkDerivation rec {
+ name = "qemu-utils-${version}";
+ version = qemu.version;
+
+ buildInputs = [ qemu ];
+ unpackPhase = "true";
+
+ installPhase = ''
+ mkdir -p "$out/bin"
+ cp "${qemu}/bin/qemu-img" "$out/bin/qemu-img"
+ cp "${qemu}/bin/qemu-io" "$out/bin/qemu-io"
+ cp "${qemu}/bin/qemu-nbd" "$out/bin/qemu-nbd"
+ '';
+}
diff --git a/pkgs/applications/virtualization/runc/default.nix b/pkgs/applications/virtualization/runc/default.nix
index 6357f9fadff..c850a18c867 100644
--- a/pkgs/applications/virtualization/runc/default.nix
+++ b/pkgs/applications/virtualization/runc/default.nix
@@ -5,13 +5,13 @@ with lib;
buildGoPackage rec {
pname = "runc";
- version = "1.0.0-rc8";
+ version = "1.0.0-rc9";
src = fetchFromGitHub {
owner = "opencontainers";
repo = "runc";
rev = "v${version}";
- sha256 = "05s4p12mgmdcy7gjralh41wlgds6m69zdgwbpdn1xjj2487dmhxf";
+ sha256 = "1ss5b46cbbckyqlwgj8dbd5l59c5y0kp679hcpc0ybaj53pmwxj7";
};
goPackagePath = "github.com/opencontainers/runc";
@@ -53,7 +53,7 @@ buildGoPackage rec {
homepage = https://runc.io/;
description = "A CLI tool for spawning and running containers according to the OCI specification";
license = licenses.asl20;
- maintainers = with maintainers; [ offline vdemeester ];
+ maintainers = with maintainers; [ offline vdemeester saschagrunert ];
platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/virtualization/spike/default.nix b/pkgs/applications/virtualization/spike/default.nix
new file mode 100644
index 00000000000..4dbb7fbe4a5
--- /dev/null
+++ b/pkgs/applications/virtualization/spike/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchgit, dtc }:
+
+stdenv.mkDerivation rec {
+ pname = "spike";
+ version = "1.0.0";
+
+ src = fetchgit {
+ url = "https://github.com/riscv/riscv-isa-sim.git";
+ rev = "v${version}";
+ sha256 = "1hcl01nj96s3rkz4mrq747s5lkw81lgdjdimb8b1b9h8qnida7ww";
+ };
+
+ nativeBuildInputs = [ dtc ];
+ enableParallelBuilding = true;
+
+ patchPhase = ''
+ patchShebangs scripts/*.sh
+ patchShebangs tests/ebreak.py
+ '';
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ description = "A RISC-V ISA Simulator";
+ homepage = "https://github.com/riscv/riscv-isa-sim";
+ license = licenses.bsd3;
+ platforms = [ "x86_64-linux" "aarch64-linux" ];
+ maintainers = with maintainers; [ blitz ];
+ };
+}
diff --git a/pkgs/applications/virtualization/umoci/default.nix b/pkgs/applications/virtualization/umoci/default.nix
new file mode 100644
index 00000000000..245bb841af6
--- /dev/null
+++ b/pkgs/applications/virtualization/umoci/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, buildGoPackage }:
+
+buildGoPackage rec {
+ pname = "umoci";
+ version = "0.4.4";
+
+ goPackagePath = "github.com/openSUSE/umoci";
+
+ src = fetchFromGitHub {
+ owner = "openSUSE";
+ repo = "umoci";
+ rev = "v${version}";
+ sha256 = "1mmk9y6xk0qk5rgysmm7x16b025zzwa2sd13jd32drd48scai2dw";
+ };
+
+ meta = with stdenv.lib; {
+ description = "umoci modifies Open Container images";
+ homepage = https://umo.ci;
+ license = licenses.asl20;
+ maintainers = with maintainers; [ zokrezyl ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/applications/virtualization/virt-top/default.nix b/pkgs/applications/virtualization/virt-top/default.nix
index 9fc167f5e9d..f32a2a6ce1c 100644
--- a/pkgs/applications/virtualization/virt-top/default.nix
+++ b/pkgs/applications/virtualization/virt-top/default.nix
@@ -1,13 +1,13 @@
{ stdenv, fetchgit, ocamlPackages, autoreconfHook }:
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
pname = "virt-top";
- version = "2017-11-18-unstable";
+ version = "1.0.9";
src = fetchgit {
- url = git://git.annexia.org/git/virt-top.git;
- rev = "18a751d8c26548bb090ff05e30ccda3092e3373b";
- sha256 = "0c4whjvw7p3yvd476i4ppdhi8j821r5y6caqrj2v9dc181cnp01i";
+ url = git://git.annexia.org/virt-top.git;
+ rev = "v${version}";
+ sha256 = "0m7pm8lzlpngsj0vjv0hg8l9ck3gvwpva7r472f8f03xpjffwiga";
};
nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/applications/virtualization/virt-what/default.nix b/pkgs/applications/virtualization/virt-what/default.nix
index 7ea83b01559..f3004267ed7 100644
--- a/pkgs/applications/virtualization/virt-what/default.nix
+++ b/pkgs/applications/virtualization/virt-what/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "virt-what";
- version = "1.19";
+ version = "1.20";
src = fetchurl {
url = "https://people.redhat.com/~rjones/virt-what/files/${pname}-${version}.tar.gz";
- sha256 = "00nhwly5q0ps8yv9cy3c2qp8lfshf3s0kdpwiy5zwk3g77z96rwk";
+ sha256 = "1s0hg5w47gmnllbs935bx21k3zqrgvqx1wn0zzij2lfxkb9dq4zr";
};
meta = with lib; {
diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix
index ac52b83e43d..addcf125e27 100644
--- a/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/default.nix
@@ -21,8 +21,8 @@ let
buildType = "release";
# Remember to change the extpackRev and version in extpack.nix and
# guest-additions/default.nix as well.
- main = "1y6j73axjns8ng3m8zs31zwx71wmm91n6vrhdpxphx16jf518djj";
- version = "6.0.10";
+ main = "1hxbvr78b0fddcn7npz72ki89lpmbgqj4b5qvxm1wik7v0d8v1y8";
+ version = "6.0.12";
in stdenv.mkDerivation {
pname = "virtualbox";
inherit version;
@@ -92,6 +92,9 @@ in stdenv.mkDerivation {
})
++ [
./qtx11extras.patch
+ # Kernel 5.3 fix, should be fixed with VirtualBox 6.0.14
+ # https://www.virtualbox.org/ticket/18911
+ ./kernel-5.3-fix.patch
];
postPatch = ''
diff --git a/pkgs/applications/virtualization/virtualbox/extpack.nix b/pkgs/applications/virtualization/virtualbox/extpack.nix
index 8c9f1aea7ba..56400a75945 100644
--- a/pkgs/applications/virtualization/virtualbox/extpack.nix
+++ b/pkgs/applications/virtualization/virtualbox/extpack.nix
@@ -2,7 +2,7 @@
with lib;
-let version = "6.0.10";
+let version = "6.0.12";
in
fetchurl rec {
name = "Oracle_VM_VirtualBox_Extension_Pack-${version}.vbox-extpack";
@@ -11,7 +11,7 @@ fetchurl rec {
# Manually sha256sum the extensionPack file, must be hex!
# Thus do not use `nix-prefetch-url` but instead plain old `sha256sum`.
# Checksums can also be found at https://www.virtualbox.org/download/hashes/${version}/SHA256SUMS
- let value = "e5a9eb240379a57c9bf03954a594a03431698e67aef551e27f62170bed9b16ea";
+ let value = "27a0956940654b0accf4d79692078bd496d9f062e4ed3da69e5421cba8d1e444";
in assert (builtins.stringLength value) == 64; value;
meta = {
diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
index e7f6fad79f9..af247af0051 100644
--- a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
@@ -1,9 +1,9 @@
{ stdenv, fetchurl, lib, patchelf, cdrkit, kernel, which, makeWrapper
-, zlib, xorg, dbus, virtualbox }:
+, zlib, xorg, dbus, virtualbox, dos2unix }:
let
version = virtualbox.version;
- xserverVListFunc = builtins.elemAt (stdenv.lib.splitString "." xorg.xorgserver.version);
+ xserverVListFunc = builtins.elemAt (stdenv.lib.splitVersion xorg.xorgserver.version);
# Forced to 1.18 in
# as it even fails to build otherwise. Still, override this even here,
@@ -12,22 +12,26 @@ let
# It's likely to work again in some future update.
xserverABI = let abi = xserverVListFunc 0 + xserverVListFunc 1;
in if abi == "119" || abi == "120" then "118" else abi;
-in
-stdenv.mkDerivation {
+ # Specifies how to patch binaries to make sure that libraries loaded using
+ # dlopen are found. We grep binaries for specific library names and patch
+ # RUNPATH in matching binaries to contain the needed library paths.
+ dlopenLibs = [
+ { name = "libdbus-1.so"; pkg = dbus; }
+ { name = "libXfixes.so"; pkg = xorg.libXfixes; }
+ ];
+
+in stdenv.mkDerivation {
name = "VirtualBox-GuestAdditions-${version}-${kernel.version}";
src = fetchurl {
url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
- sha256 = "098kibz8dkiqd8shm44n4h6iyszcbj0ikav1b4vsi75dqzw8d9n8";
+ sha256 = "0hflsbx70dli34mpx94vd33p55ycfs3ahzwcdzqxdiwiiskjpykq";
};
KERN_DIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
KERN_INCL = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/source/include";
- # If you add a patch you probably need this.
- #patchFlags = [ "-p1" "-d" "install/src/vboxguest-${version}" ];
-
hardeningDisable = [ "pic" ];
NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types -Wno-error=implicit-function-declaration";
@@ -35,10 +39,24 @@ stdenv.mkDerivation {
nativeBuildInputs = [ patchelf makeWrapper ];
buildInputs = [ cdrkit ] ++ kernel.moduleBuildDependencies;
+
+ prePatch = ''
+ substituteInPlace src/vboxguest-${version}/vboxvideo/vbox_ttm.c \
+ --replace " ./VBoxLinuxAdditions.run
chmod 755 ./VBoxLinuxAdditions.run
+ # An overflow leads the is-there-enough-space check to fail when there's too much space available, so fake how much space there is
+ sed -i 's/\$leftspace/16383/' VBoxLinuxAdditions.run
./VBoxLinuxAdditions.run --noexec --keep
''
else throw ("Architecture: "+stdenv.hostPlatform.system+" not supported for VirtualBox guest additions")
@@ -129,13 +147,13 @@ stdenv.mkDerivation {
# Stripping breaks these binaries for some reason.
dontStrip = true;
- # Some code dlopen() libdbus, patch RUNPATH in fixupPhase so it isn't stripped.
- postFixup = ''
- for i in $(grep -F libdbus-1.so -l -r $out/{lib,bin}); do
+ # Patch RUNPATH according to dlopenLibs (see the comment there).
+ postFixup = lib.concatMapStrings (library: ''
+ for i in $(grep -F ${lib.escapeShellArg library.name} -l -r $out/{lib,bin}); do
origRpath=$(patchelf --print-rpath "$i")
- patchelf --set-rpath "$origRpath:${lib.makeLibraryPath [ dbus ]}" "$i"
+ patchelf --set-rpath "$origRpath:${lib.makeLibraryPath [ library.pkg ]}" "$i"
done
- '';
+ '') dlopenLibs;
meta = {
description = "Guest additions for VirtualBox";
diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/kernel-5.3-fix.patch b/pkgs/applications/virtualization/virtualbox/guest-additions/kernel-5.3-fix.patch
new file mode 100644
index 00000000000..0bdd9ec1056
--- /dev/null
+++ b/pkgs/applications/virtualization/virtualbox/guest-additions/kernel-5.3-fix.patch
@@ -0,0 +1,50 @@
+--- a/vboxguest/r0drv/linux/mp-r0drv-linux.c
++++ a/vboxguest/r0drv/linux/mp-r0drv-linux.c
+@@ -283,12 +283,15 @@
+ if (RTCpuSetCount(&OnlineSet) > 1)
+ {
+ /* Fire the function on all other CPUs without waiting for completion. */
+-# if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
++# if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0)
++ smp_call_function(rtmpLinuxAllWrapper, &Args, 0 /* wait */);
++# elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
+ int rc = smp_call_function(rtmpLinuxAllWrapper, &Args, 0 /* wait */);
++ Assert(!rc); NOREF(rc);
+ # else
+ int rc = smp_call_function(rtmpLinuxAllWrapper, &Args, 0 /* retry */, 0 /* wait */);
+-# endif
+ Assert(!rc); NOREF(rc);
++# endif
+ }
+ #endif
+
+@@ -326,7 +329,6 @@
+ {
+ #ifdef CONFIG_SMP
+ IPRT_LINUX_SAVE_EFL_AC();
+- int rc;
+ RTMPARGS Args;
+
+ RTTHREADPREEMPTSTATE PreemptState = RTTHREADPREEMPTSTATE_INITIALIZER;
+@@ -337,14 +339,17 @@
+ Args.cHits = 0;
+
+ RTThreadPreemptDisable(&PreemptState);
+-# if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
+- rc = smp_call_function(rtmpLinuxWrapper, &Args, 1 /* wait */);
++# if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0)
++ smp_call_function(rtmpLinuxWrapper, &Args, 1 /* wait */);
++# elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
++ int rc = smp_call_function(rtmpLinuxWrapper, &Args, 1 /* wait */);
++ Assert(rc == 0); NOREF(rc);
+ # else /* older kernels */
+- rc = smp_call_function(rtmpLinuxWrapper, &Args, 0 /* retry */, 1 /* wait */);
++ int rc = smp_call_function(rtmpLinuxWrapper, &Args, 0 /* retry */, 1 /* wait */);
++ Assert(rc == 0); NOREF(rc);
+ # endif /* older kernels */
+ RTThreadPreemptRestore(&PreemptState);
+
+- Assert(rc == 0); NOREF(rc);
+ IPRT_LINUX_RESTORE_EFL_AC();
+ #else
+ RT_NOREF(pfnWorker, pvUser1, pvUser2);
diff --git a/pkgs/applications/virtualization/virtualbox/kernel-5.3-fix.patch b/pkgs/applications/virtualization/virtualbox/kernel-5.3-fix.patch
new file mode 100644
index 00000000000..ba9c7c941db
--- /dev/null
+++ b/pkgs/applications/virtualization/virtualbox/kernel-5.3-fix.patch
@@ -0,0 +1,72 @@
+--- a/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c
++++ b/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c
+@@ -2123,7 +2123,9 @@
+ #endif
+ if (in_dev != NULL)
+ {
+- for_ifa(in_dev) {
++ struct in_ifaddr *ifa;
++
++ for (ifa = in_dev->ifa_list; ifa; ifa = ifa->ifa_next) {
+ if (VBOX_IPV4_IS_LOOPBACK(ifa->ifa_address))
+ return NOTIFY_OK;
+
+@@ -2137,7 +2139,7 @@
+
+ pThis->pSwitchPort->pfnNotifyHostAddress(pThis->pSwitchPort,
+ /* :fAdded */ true, kIntNetAddrType_IPv4, &ifa->ifa_address);
+- } endfor_ifa(in_dev);
++ }
+ }
+
+ /*
+--- a/src/VBox/Runtime/r0drv/linux/mp-r0drv-linux.c
++++ a/src/VBox/Runtime/r0drv/linux/mp-r0drv-linux.c
+@@ -283,12 +283,15 @@
+ if (RTCpuSetCount(&OnlineSet) > 1)
+ {
+ /* Fire the function on all other CPUs without waiting for completion. */
+-# if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
++# if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0)
++ smp_call_function(rtmpLinuxAllWrapper, &Args, 0 /* wait */);
++# elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
+ int rc = smp_call_function(rtmpLinuxAllWrapper, &Args, 0 /* wait */);
++ Assert(!rc); NOREF(rc);
+ # else
+ int rc = smp_call_function(rtmpLinuxAllWrapper, &Args, 0 /* retry */, 0 /* wait */);
+-# endif
+ Assert(!rc); NOREF(rc);
++# endif
+ }
+ #endif
+
+@@ -326,7 +329,6 @@
+ {
+ #ifdef CONFIG_SMP
+ IPRT_LINUX_SAVE_EFL_AC();
+- int rc;
+ RTMPARGS Args;
+
+ RTTHREADPREEMPTSTATE PreemptState = RTTHREADPREEMPTSTATE_INITIALIZER;
+@@ -337,14 +339,17 @@
+ Args.cHits = 0;
+
+ RTThreadPreemptDisable(&PreemptState);
+-# if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
+- rc = smp_call_function(rtmpLinuxWrapper, &Args, 1 /* wait */);
++# if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0)
++ smp_call_function(rtmpLinuxWrapper, &Args, 1 /* wait */);
++# elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
++ int rc = smp_call_function(rtmpLinuxWrapper, &Args, 1 /* wait */);
++ Assert(rc == 0); NOREF(rc);
+ # else /* older kernels */
+- rc = smp_call_function(rtmpLinuxWrapper, &Args, 0 /* retry */, 1 /* wait */);
++ int rc = smp_call_function(rtmpLinuxWrapper, &Args, 0 /* retry */, 1 /* wait */);
++ Assert(rc == 0); NOREF(rc);
+ # endif /* older kernels */
+ RTThreadPreemptRestore(&PreemptState);
+
+- Assert(rc == 0); NOREF(rc);
+ IPRT_LINUX_RESTORE_EFL_AC();
+ #else
+ RT_NOREF(pfnWorker, pvUser1, pvUser2);
diff --git a/pkgs/applications/virtualization/x11docker/default.nix b/pkgs/applications/virtualization/x11docker/default.nix
index ea8a24e57a3..c57a7f6e771 100644
--- a/pkgs/applications/virtualization/x11docker/default.nix
+++ b/pkgs/applications/virtualization/x11docker/default.nix
@@ -1,26 +1,22 @@
-{ stdenv, fetchFromGitHub, makeWrapper, nx-libs, xorg }:
+{ stdenv, fetchFromGitHub, makeWrapper, nx-libs, xorg, getopt, gnugrep, gawk, ps, mount, iproute }:
stdenv.mkDerivation rec {
pname = "x11docker";
- version = "6.0.0";
+ version = "6.3.0";
src = fetchFromGitHub {
owner = "mviereck";
repo = "x11docker";
rev = "v${version}";
- sha256 = "1sfdxlh50hv8j3dj5bphihqdyf8s7ixm6ckrmvqgr2y3gak1y840";
+ sha256 = "0x2sx41y3ylzg511x52k3wh8mfbzp4ialpas6sn4ccagqxh2hc4y";
};
nativeBuildInputs = [ makeWrapper ];
- buildInputs = [ nx-libs xorg.xhost xorg.xinit ];
dontBuild = true;
- PATH_PREFIX = "${nx-libs}/bin:${xorg.xdpyinfo}/bin:${xorg.xhost}/bin:${xorg.xinit}/bin";
-
+ # Don't install `x11docker-gui`, because requires `kaptain` dependency
installPhase = ''
install -D x11docker "$out/bin/x11docker";
- #install -D x11docker-gui "$out/bin/x11docker-gui";
- wrapProgram "$out/bin/x11docker" --prefix PATH : "${PATH_PREFIX}"
- #wrapProgram "$out/bin/x11docker-gui" --prefix PATH : "${PATH_PREFIX}"
- # GUI disabled because of missing `kaptain` dependency
+ wrapProgram "$out/bin/x11docker" \
+ --prefix PATH : "${stdenv.lib.makeBinPath [ getopt gnugrep gawk ps mount iproute nx-libs xorg.xdpyinfo xorg.xhost xorg.xinit ]}"
'';
meta = {
@@ -28,5 +24,6 @@ stdenv.mkDerivation rec {
homepage = https://github.com/mviereck/x11docker;
license = stdenv.lib.licenses.mit;
maintainers = with stdenv.lib.maintainers; [ jD91mZM2 ];
+ platforms = stdenv.lib.platforms.linux;
};
}
diff --git a/pkgs/applications/virtualization/xen/4.10.nix b/pkgs/applications/virtualization/xen/4.10.nix
index 042b01e8678..d3c2ed9060c 100644
--- a/pkgs/applications/virtualization/xen/4.10.nix
+++ b/pkgs/applications/virtualization/xen/4.10.nix
@@ -38,11 +38,11 @@ let
in
callPackage (import ./generic.nix (rec {
- version = "4.10.0";
+ version = "4.10.4";
src = fetchurl {
url = "https://downloads.xenproject.org/release/xen/${version}/xen-${version}.tar.gz";
- sha256 = "0i38ap5b5m1kix6xb0vn9ya1yab35adyc98bzfnbq4lb7w1afqh2";
+ sha256 = "0ipkr7b3v3y183n6nfmz7q3gnzxa20011df4jpvxi6pmr8cpnkwh";
};
# Sources needed to build tools and firmwares.
@@ -52,12 +52,9 @@ callPackage (import ./generic.nix (rec {
url = https://xenbits.xen.org/git-http/qemu-xen.git;
# rev = "refs/tags/qemu-xen-${version}";
# use revision hash - reproducible but must be updated with each new version
- rev = "b79708a8ed1b3d18bee67baeaf33b3fa529493e2";
- sha256 = "1yxxad6nvlfmrbgyc8ix19qmrsn1rx4zpyiqnfi4x4kg94acwa5w";
+ rev = "qemu-xen-${version}";
+ sha256 = "0laxvhdjz1njxjvq3jzw2yqvdr9gdn188kqjf2gcrfzgih7xv2ym";
};
- patches = [
- qemuMemfdBuildFix
- ];
buildInputs = qemuDeps;
postPatch = ''
# needed in build but /usr/bin/env is not available in sandbox
@@ -151,17 +148,16 @@ callPackage (import ./generic.nix (rec {
++ optional (withOVMF) "--with-system-ovmf=${OVMF.fd}/FV/OVMF.fd"
++ optional (withInternalOVMF) "--enable-ovmf";
- patches = with xsa; flatten [
- XSA_252
- XSA_253
- XSA_255_1
- XSA_255_2
- XSA_256
+ NIX_CFLAGS_COMPILE = [
+ # Fix build on Glibc 2.24.
+ "-Wno-error=deprecated-declarations"
+ # Fix build with GCC 8
+ "-Wno-error=maybe-uninitialized"
+ "-Wno-error=stringop-truncation"
+ "-Wno-error=format-truncation"
+ "-Wno-error=array-bounds"
];
- # Fix build on Glibc 2.24.
- NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations";
-
postPatch = ''
# Avoid a glibc >= 2.25 deprecation warnings that get fatal via -Werror.
sed 1i'#include ' \
diff --git a/pkgs/applications/virtualization/xen/4.8.nix b/pkgs/applications/virtualization/xen/4.8.nix
index 1608fabf4b2..c7568d99062 100644
--- a/pkgs/applications/virtualization/xen/4.8.nix
+++ b/pkgs/applications/virtualization/xen/4.8.nix
@@ -167,8 +167,15 @@ callPackage (import ./generic.nix (rec {
xenpmdpatch
];
- # Fix build on Glibc 2.24.
- NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations";
+ NIX_CFLAGS_COMPILE = [
+ # Fix build on Glibc 2.24
+ "-Wno-error=deprecated-declarations"
+ # Fix build with GCC8
+ "-Wno-error=maybe-uninitialized"
+ "-Wno-error=stringop-truncation"
+ "-Wno-error=format-truncation"
+ "-Wno-error=array-bounds"
+ ];
postPatch = ''
# Avoid a glibc >= 2.25 deprecation warnings that get fatal via -Werror.
diff --git a/pkgs/applications/virtualization/xen/xsa-patches.nix b/pkgs/applications/virtualization/xen/xsa-patches.nix
index de692820d8f..26cdbc1f65f 100644
--- a/pkgs/applications/virtualization/xen/xsa-patches.nix
+++ b/pkgs/applications/virtualization/xen/xsa-patches.nix
@@ -66,30 +66,12 @@ in {
sha256 = "0nnznkrvfbbc8z64dr9wvbdijd4qbpc0wz2j5vpmx6b32sm7932f";
});
- # 4.8
- XSA_202 = (xsaPatch {
- name = "202";
- sha256 = "0j1d5akcjgx8w2c6w6p9znv77fkmps0880m2xgpbgs1ra9grshm1";
- });
-
- # 4.8
- XSA_203 = (xsaPatch {
- name = "203";
- sha256 = "1s1q7xskvpg87ivwfaiqr0cj3ajdkhkhpmpikfkvq127h8hhmd8j";
- });
-
# 4.5
XSA_204_45 = (xsaPatch {
name = "204-4.5";
sha256 = "083z9pbdz3f532fnzg7n2d5wzv6rmqc0f4mvc3mnmkd0rzqw8vcp";
});
- # 4.8
- XSA_204 = (xsaPatch {
- name = "204-4.8";
- sha256 = "0rs498s4w2alz3h6jhlr2y0ni630vhggmxbrd1p1p3gcv8p6zzrr";
- });
-
# 4.5
XSA_206_45 = [
(xsaPatch {
@@ -190,86 +172,12 @@ in {
})
];
- # 4.8
- XSA_206 = [
- (xsaPatch {
- name = "206-4.8/0001-xenstored-apply-a-write-transaction-rate-limit";
- sha256 = "1c81d93i3qx7l38f9af0sd84w5x51zvn262mzl25ilcklql4kzl6";
- })
- (xsaPatch {
- name = "206-4.8/0002-xenstored-Log-when-the-write-transaction-rate-limit-";
- sha256 = "0b8iw409wi1x6p0swpnr51lcdlla1lgxjv5f910sj4wl96bca84q";
- })
- (xsaPatch {
- name = "206-4.8/0003-oxenstored-comments-explaining-some-variables";
- sha256 = "1d3n0y9syya4kaavrvqn01d3wsn85gmw7qrbylkclznqgkwdsr2p";
- })
- (xsaPatch {
- name = "206-4.8/0004-oxenstored-handling-of-domain-conflict-credit";
- sha256 = "020rw7hgc0dmhr4admz91kd99b4z1bdpji47nsy1255bjgvwc01k";
- })
- (xsaPatch {
- name = "206-4.8/0005-oxenstored-ignore-domains-with-no-conflict-credit";
- sha256 = "1ilhcgyn803bxvfbqv0ihfrh9jfpp0lidkv7i4613f9v9vjm8q0h";
- })
- (xsaPatch {
- name = "206-4.8/0006-oxenstored-add-transaction-info-relevant-to-history-";
- sha256 = "1dbd9pzda6hn9wj9pck44dlgz9nxvch3bzgrpaivanww8llxdfzz";
- })
- (xsaPatch {
- name = "206-4.8/0007-oxenstored-support-commit-history-tracking";
- sha256 = "1jfr56c22fqkhj6fnv1ha7zsid86zm9l0nihpb8m932xgc4a6h9h";
- })
- (xsaPatch {
- name = "206-4.8/0008-oxenstored-only-record-operations-with-side-effects-";
- sha256 = "1y845hj8krjdrirbd2jx4jqgnylwjv7bxnk7474lkld5kdnlbjyf";
- })
- (xsaPatch {
- name = "206-4.8/0009-oxenstored-discard-old-commit-history-on-txn-end";
- sha256 = "1lcr9gz2b77x74sr1flfymyyz4xzs04iv88rc1633ibyqxmvk0lx";
- })
- (xsaPatch {
- name = "206-4.8/0010-oxenstored-track-commit-history";
- sha256 = "1qwnivak4y038mpby75aaz0y70r0l3yc3hsz6wl5x0b74q6yy0ja";
- })
- (xsaPatch {
- name = "206-4.8/0011-oxenstored-blame-the-connection-that-caused-a-transa";
- sha256 = "0p2w5ddyhc6d95dnlxzc5k77j063p02d53ab7m7ijfm7m6gknq8y";
- })
- (xsaPatch {
- name = "206-4.8/0012-oxenstored-allow-self-conflicts";
- sha256 = "1571l81m30cbmqm4pk33q33p3dy58sfy2lnkl2wbgl2b3mkk657l";
- })
- (xsaPatch {
- name = "206-4.8/0013-oxenstored-do-not-commit-read-only-transactions";
- sha256 = "15985wl635w22dddjyx5l97b5p6m55mzv5ygk7xr0jx7mi192f9x";
- })
- (xsaPatch {
- name = "206-4.8/0014-oxenstored-don-t-wake-to-issue-no-conflict-credit";
- sha256 = "08672w4gaf2n3r8xy09h874gh5lg2vnrkjzq6xzvzdhdl092mipw";
- })
- (xsaPatch {
- name = "206-4.8/0015-oxenstored-transaction-conflicts-improve-logging";
- sha256 = "0ck98ms0py8wjsc38pbx6222x7n6l90zckfa7m7nnszsyc0sxxad";
- })
- (xsaPatch {
- name = "206-4.8/0016-oxenstored-trim-history-in-the-frequent_ops-function";
- sha256 = "014zs6i4gzrimn814k5i7gz66vbb0adkzr2qyai7i4fxc9h9r7w8";
- })
- ];
-
# 4.5 - 4.8
XSA_207 = (xsaPatch {
name = "207";
sha256 = "0wdlhijmw9mdj6a82pyw1rwwiz605dwzjc392zr3fpb2jklrvibc";
});
- # 4.8
- XSA_210 = (xsaPatch {
- name = "210";
- sha256 = "02mykxqxnsrd0sr4ij022j8y7618wzi2a6j6j761vx8qgmh11xai";
- });
-
# 4.5 - 4.8
XSA_212 = (xsaPatch {
name = "212";
@@ -282,12 +190,6 @@ in {
sha256 = "1vnqf89ydacr5bq3d6z2r33xb2sn5vsd934rncyc28ybc9rvj6wm";
});
- # 4.8
- XSA_213 = (xsaPatch {
- name = "213-4.8";
- sha256 = "0ia3zr6r3bqy2h48fdy7p0iz423lniy3i0qkdvzgv5a8m80darr2";
- });
-
# 4.5 - 4.8
XSA_214 = (xsaPatch {
name = "214";
@@ -306,12 +208,6 @@ in {
sha256 = "067pgsfrb9py2dhm1pk9g8f6fs40vyfrcxhj8c12vzamb6svzmn4";
});
- # 4.6 - 4.8
- XSA_217 = (xsaPatch {
- name = "217";
- sha256 = "1khs5ilif14dzcm7lmikjzkwsrfzlmir1rgrgzkc411gf18ylzmj";
- });
-
# 4.5
XSA_218_45 = [
(xsaPatch {
@@ -332,46 +228,18 @@ in {
})
];
- # 4.8
- XSA_218 = [
- (xsaPatch {
- name = "218-4.8/0001-gnttab-fix-unmap-pin-accounting-race";
- sha256 = "0r363frai239r2wmwxi48kcr50gbk5l64nja0h9lppi3z2y3dkdd";
- })
- (xsaPatch {
- name = "218-4.8/0002-gnttab-Avoid-potential-double-put-of-maptrack-entry";
- sha256 = "07wm06i7frv7bsaykakx3g9h0hfqv96zcadvwf6wv194dggq1plc";
- })
- (xsaPatch {
- name = "218-4.8/0003-gnttab-correct-maptrack-table-accesses";
- sha256 = "0ad0irc3p4dmla8sp3frxbh2qciji1dipkslh0xqvy2hyf9p80y9";
- })
- ];
-
# 4.5
XSA_219_45 = (xsaPatch {
name = "219-4.5";
sha256 = "003msr5vhsc66scmdpgn0lp3p01g4zfw5vj86y5lw9ajkbaywdsm";
});
- # 4.8
- XSA_219 = (xsaPatch {
- name = "219-4.8";
- sha256 = "16q7kiamy86x8qdvls74wmq5j72kgzgdilryig4q1b21mp0ij1jq";
- });
-
# 4.5
XSA_220_45 = (xsaPatch {
name = "220-4.5";
sha256 = "1dj9nn6lzxlipjb3nb7b9m4337fl6yn2bd7ap1lqrjn8h9zkk1pp";
});
- # 4.8
- XSA_220 = (xsaPatch {
- name = "220-4.8";
- sha256 = "0214qyqx7qap5y1pdi9fm0vz4y2fbyg71gaq36fisknj35dv2mh5";
- });
-
# 4.5 - 4.8
XSA_221 = (xsaPatch {
name = "221";
@@ -390,18 +258,6 @@ in {
})
];
- # 4.8
- XSA_222 = [
- (xsaPatch {
- name = "222-1";
- sha256 = "0x02x4kqwfw255638fh2zcxwig1dy6kadlmqim1jgnjgmrvvqas2";
- })
- (xsaPatch {
- name = "222-2-4.8";
- sha256 = "1xhyp6q3c5l8djh965g1i8201m2wvhms8k886h4sn30hks38giin";
- })
- ];
-
# 4.5 - 4.8
XSA_223 = (xsaPatch {
name = "223";
@@ -428,32 +284,6 @@ in {
})
];
- # 4.8
- XSA_224 = [
- (xsaPatch {
- name = "224-4.8/0001-gnttab-Fix-handling-of-dev_bus_addr-during-unmap";
- sha256 = "1k326yan5811qzyvpdfkv801a19nyd09nsqayi8gyh58xx9c21m4";
- })
- (xsaPatch {
- name = "224-4.8/0002-gnttab-never-create-host-mapping-unless-asked-to";
- sha256 = "06nj1x59bbx9hrj26xmvbw8z805lfqhld9hm0ld0fs6dmcpqzcck";
- })
- (xsaPatch {
- name = "224-4.8/0003-gnttab-correct-logic-to-get-page-references-during-m";
- sha256 = "0kmag6fdsskgplcvzqp341yfi6pgc14wvjj58bp7ydb9hdk53qx2";
- })
- (xsaPatch {
- name = "224-4.8/0004-gnttab-__gnttab_unmap_common_complete-is-all-or-noth";
- sha256 = "1ww80pi7jr4gjpymkcw8qxmr5as18b2asdqv35527nqprylsff9f";
- })
- ];
-
- # 4.6 - 4.8
- XSA_225 = (xsaPatch {
- name = "225";
- sha256 = "0lcp2bs0r849xnvhrdf8s821v36cqdbzk8lwz6chrjhjalk6ha2g";
- });
-
# 4.5
XSA_226_45 = [
(xsaPatch {
@@ -466,42 +296,12 @@ in {
})
];
- # 4.8 - 4.9
- XSA_226 = [
- (xsaPatch {
- name = "226-4.9/0001-gnttab-dont-use-possibly-unbounded-tail-calls";
- sha256 = "1hx47ppv5q33cw4dwp82lgvv4fp28gx7rxijw0iaczsv8bvb8vcg";
- })
- (xsaPatch {
- name = "226-4.9/0002-gnttab-fix-transitive-grant-handling";
- sha256 = "1gzp8m2zfihwlk71c3lqyd0ajh9h11pvkhzhw0mawckxy0qksvlc";
- })
- ];
-
# 4.5
XSA_227_45 = (xsaPatch {
name = "227-4.5";
sha256 = "1qfjfisgqm4x98qw54x2qrvgjnvvzizx9p1pjhcnsps9q6g1y3x8";
});
- # 4.8 - 4.9
- XSA_227 = (xsaPatch {
- name = "227";
- sha256 = "0zdcm43i5n08rh7rrnb0fcssvd4fgawwmizsa16w2ak7pzvgmg94";
- });
-
- # 4.8
- XSA_228_48 = (xsaPatch {
- name = "228-4.8";
- sha256 = "085pnzwyv0rdb51hv5vhbhwfyxl0wg8sxcm912gjq8z7da5cv10n";
- });
-
- # 4.9
- XSA_228 = (xsaPatch {
- name = "228";
- sha256 = "0c9nvfpnr5ira7ha3fszhvvh71nsxrvmzrab56xwjhl2dbw2yy23";
- });
-
# 4.5 - 4.9
XSA_230 = (xsaPatch {
name = "230";
@@ -514,12 +314,6 @@ in {
sha256 = "06gwx2f1lg51dfk2b4zxp7wv9c4pxdi87pg2asvmxqc78ir7l5s6";
});
- # 4.8 - 4.9
- XSA_231 = (xsaPatch {
- name = "231-4.9";
- sha256 = "09r8xxq2fd52wrk6i0y0sk3nbidfg6pzzrkx327hfmdjj76iyz3b";
- });
-
# 4.5 - 4.9
XSA_232 = (xsaPatch {
name = "232";
@@ -538,42 +332,18 @@ in {
sha256 = "1ji6hbgybb4gbgz5l5fis9midnvjbddzam8d63377rkzdyb3yz9f";
});
- # 4.8
- XSA_234_48 = (xsaPatch {
- name = "234-4.8";
- sha256 = "08n1pf7z5y67dmay1ap39bi81clgkx82fpmfn7jsh8k4aw94jrsa";
- });
-
- # 4.9
- XSA_234 = (xsaPatch {
- name = "234-4.9";
- sha256 = "1znmxg432is0virw8321gax8zqq2zcmi2pc5p2j31sixylixsvzx";
- });
-
# 4.5
XSA_235_45 = (xsaPatch {
name = "235-4.5";
sha256 = "0hhgnql2gji111020z4wiyzg23wqs6ymanb67rg11p4qad1fp3ff";
});
- # 4.8 - 4.9
- XSA_235 = (xsaPatch {
- name = "235-4.9";
- sha256 = "1rj4jkmh79wm30jq9f8x65qv3al8l91zc3m5s23q0x6abn3pfb9z";
- });
-
# 4.5
XSA_236_45 = (xsaPatch {
name = "236-4.5";
sha256 = "0hcla86x81wykssd2967gblp7fzx61290p4ls4v0hcyxdg2bs2yz";
});
- # 4.8 - 4.9
- XSA_236 = (xsaPatch {
- name = "236-4.9";
- sha256 = "0vqxy7mgflga05l33j3488fwxmdw3p9yxj4ylhk9n3nw8id72ghq";
- });
-
# 4.5
XSA_237_45 = [
(xsaPatch {
@@ -598,78 +368,18 @@ in {
})
];
- # 4.8
- XSA_237_48 = [
- (xsaPatch {
- name = "237-4.8/0001-x86-dont-allow-MSI-pIRQ-mapping-on-unowned-device";
- sha256 = "0qjisp37lwi2611mp7fbbm1s7m0bx726rrg79dnxs2mj0skw59iv";
- })
- (xsaPatch {
- name = "237-4.8/0002-x86-enforce-proper-privilege-when-mapping-pIRQ-s";
- sha256 = "05q1dny13jrqhjfwak7r635mqp9chpibjvn8b7d90japc1nzpq62";
- })
- (xsaPatch {
- name = "237-4.8/0003-x86-MSI-disallow-redundant-enabling";
- sha256 = "1907lv8nb2zhpb6k6jlw4m0hm0n0lyd69vfr3wpzbc56dn0w7jqd";
- })
- (xsaPatch {
- name = "237-4.8/0004-x86-IRQ-conditionally-preserve-irq-pirq-mapping-on-error";
- sha256 = "06nrq0bx3p9ipab2r1why6qm4g32dj0x5q24hfkwc6ih0l9xwf8h";
- })
- (xsaPatch {
- name = "237-4.8/0005-x86-FLASK-fix-unmap-domain-IRQ-XSM-hook";
- sha256 = "1nbg7bjw2hv55gnkhf6chkh35va6brs08acq1d5jxncl6kv0amc1";
- })
- ];
-
- # 4.9
- XSA_237 = [
- (xsaPatch {
- name = "237-4.9/0001-x86-dont-allow-MSI-pIRQ-mapping-on-unowned-device";
- sha256 = "1cbl24mqxa62h0wgsnrpcs6y6vs53znzj7g8dfsbmf74xwrd4px6";
- })
- (xsaPatch {
- name = "237-4.9/0002-x86-enforce-proper-privilege-when-mapping-pIRQ-s";
- sha256 = "0p60148j18b78pxz0dx5ymh1gyrhg2cgmxq0jxmbk090bc4jql35";
- })
- (xsaPatch {
- name = "237-4.9/0003-x86-MSI-disallow-redundant-enabling";
- sha256 = "1907lv8nb2zhpb6k6jlw4m0hm0n0lyd69vfr3wpzbc56dn0w7jqd";
- })
- (xsaPatch {
- name = "237-4.9/0004-x86-IRQ-conditionally-preserve-irq-pirq-mapping-on-error";
- sha256 = "0q95z5641amni53agimnzbspva53p0hz5wl16zaz2yhnjasj5pzr";
- })
- (xsaPatch {
- name = "237-4.9/0005-x86-FLASK-fix-unmap-domain-IRQ-XSM-hook";
- sha256 = "0bnqx9w7ppgx8wxj2zw09z0rkv1jzn3r0bd76cz0r22wz29fsdp2";
- })
- ];
-
# 4.5
XSA_238_45 = (xsaPatch {
name = "238-4.5";
sha256 = "1x2fg5vfv5jc084h5gjm6fq0nxjpzvi96px3sqzz4pvsvy4y4i1z";
});
- # 4.8 - 4.9
- XSA_238 = (xsaPatch {
- name = "238";
- sha256 = "1cbmg1bi5ajh7qbwsl92ynaxw2c3p7i24p3wds81r4n93r0y5dxk";
- });
-
# 4.5
XSA_239_45 = (xsaPatch {
name = "239-4.5";
sha256 = "06bi8q3973yajxsdj7pcqarvb56q2gisxdiy0cpbyffbmpkfv3h6";
});
- # 4.8 - 4.9
- XSA_239 = (xsaPatch {
- name = "239";
- sha256 = "1a9r8j7167s43ds5i7v7mm4y970vjnbhhkrjzpmzlcx8kcz96vh3";
- });
-
# 4.5
XSA_240_45 = [
(xsaPatch {
@@ -682,42 +392,12 @@ in {
})
];
- # 4.8
- XSA_240_48 = [
- (xsaPatch {
- name = "240-4.8/0001-x86-limit-linear-page-table-use-to-a-single-level";
- sha256 = "0m44qhhqk2pdwqg8g28pypqrylq6iw00k9qrzf6qd0iza2y42kgj";
- })
- (xsaPatch {
- name = "240-4.8/0002-x86-mm-Disable-PV-linear-pagetables-by-default";
- sha256 = "1jd720wvngj9wq3fprdhakxvqlff0jd8zcx2pd3vsn2qvjbvr2gf";
- })
- ];
-
- # 4.9
- XSA_240 = [
- (xsaPatch {
- name = "240-4.9/0001-x86-limit-linear-page-table-use-to-a-single-level";
- sha256 = "1759ni80aifakm44g4cc6pnmbcn1xjic8j66fvj0vibm0wqk6xck";
- })
- (xsaPatch {
- name = "240-4.9/0002-x86-mm-Disable-PV-linear-pagetables-by-default";
- sha256 = "0g6dpi006p5cjxw5d8h33p0429fdmdm6nqzj0m63ralpqvns3ib5";
- })
- ];
-
# 4.5 - 4.8
XSA_241 = (xsaPatch {
name = "241-4.8";
sha256 = "16zb75kzs98f4mdxhbyczk5mbh9dvn6j3yhfafki34x1dfdnq4pj";
});
- # 4.9
- XSA_241_49 = (xsaPatch {
- name = "241-4.9";
- sha256 = "0xlhin7wkhmlnbp9mqcbq3q4drdwb5la482ja9nwkhi8i867p6wc";
- });
-
# 4.5 - 4.9
XSA_242 = (xsaPatch {
name = "242-4.9";
@@ -736,30 +416,12 @@ in {
})
];
- # 4.8
- XSA_243_48 = (xsaPatch {
- name = "243-4.8";
- sha256 = "1q60zn55l9wpq45nrxh0av59sjz0jg8pkjm1gkyywkdsgg4fg5z4";
- });
-
- # 4.9
- XSA_243 = (xsaPatch {
- name = "243";
- sha256 = "06fnbnh9zlsbkqih9ipnb7a8gly54m7lp17d854j1r370ad3c4yg";
- });
-
# 4.5
XSA_244_45 = (xsaPatch {
name = "244-4.5";
sha256 = "05ci3vdl1ywfjpzcvsy1k52whxjk8pxzj7dh3r94yqasr56i5v2l";
});
- # 4.8 - 4.9
- XSA_244 = (xsaPatch {
- name = "244";
- sha256 = "10308xsgmhb0vg6fk0ql8v94zifv6dcv6vkaicryfp405yj2rzkm";
- });
-
# 4.5 - 4.9
XSA_245 = [
(xsaPatch {
@@ -780,26 +442,6 @@ in {
})
];
- # 4.8 - 4.9
- XSA_246 = [
- (xsaPatch {
- name = "246-4.9";
- sha256 = "0z68vm0z5zvv9gm06pxs9kxq2q9fdbl0l0cm71ggzdplg1vw0snz";
- })
- ];
-
- # 4.8
- XSA_247_48 = [
- (xsaPatch {
- name = "247-4.8/0001-p2m-Always-check-to-see-if-removing-a-p2m-entry-actu";
- sha256 = "0kvjrk90n69s721c2qj2df5raml3pjk6bg80aig353p620w6s3xh";
- })
- (xsaPatch {
- name = "247-4.8/0002-p2m-Check-return-value-of-p2m_set_entry-when-decreas";
- sha256 = "1s9kv6h6dd8psi5qf5l5gpk9qhq8blckwhl76cjbldcgi6imb3nr";
- })
- ];
-
# 4.5
XSA_247_45 = [
(xsaPatch {
@@ -820,14 +462,6 @@ in {
})
];
- # 4.8
- XSA_248_48 = [
- (xsaPatch {
- name = "248-4.8";
- sha256 = "1ycw29q22ymxg18kxpr5p7vhpmp8klssbp5gq77hspxzz2mb96q1";
- })
- ];
-
# 4.5 .. 4.9
XSA_249 = [
(xsaPatch {
@@ -835,6 +469,7 @@ in {
sha256 = "0v6ngzqhkz7yv4n83xlpxfbkr2qyg5b1cds7ikkinm86hiqy6agl";
})
];
+
# 4.5
XSA_250_45 = [
(xsaPatch {
@@ -842,13 +477,7 @@ in {
sha256 = "0pqldl6qnl834gvfp90z247q9xcjh3835s2iffnajz7jhjb2145d";
})
];
- # 4.8 ...
- XSA_250 = [
- (xsaPatch {
- name = "250";
- sha256 = "1wpigg8kmha57sspqqln3ih9nbczsw6rx3v72mc62lh62qvwd7x8";
- })
- ];
+
# 4.5
XSA_251_45 = [
(xsaPatch {
@@ -856,81 +485,4 @@ in {
sha256 = "0lc94cx271z09r0mhxaypyd9d4740051p28idf5calx5228dqjgm";
})
];
- # 4.8
- XSA_251_48 = [
- (xsaPatch {
- name = "251-4.8";
- sha256 = "079wi0j6iydid2zj7k584w2c393kgh588w7sjz2nn4039qn8k9mq";
- })
- ];
- # 4.8
- XSA_252_49 = [
- (xsaPatch {
- name = "252-4.9";
- sha256 = "03sbn90nlkk5ba1n168rxjkc7x3mqj7rfqvspbwblmwikfbnms2n";
- })
- ];
- # 4.8
- XSA_255_49_1= [
- (xsaPatch {
- name = "255-4.9-1";
- sha256 = "0gbin7yxbkq40lvm3gvj1vffavvbng3zpd2m8l1kqyz0rv4vm9zc";
- })
- ];
- # 4.8
- XSA_255_49_2= [
- (xsaPatch {
- name = "255-4.9-2";
- sha256 = "0fyg5nnyfpfr80qq83pr64zjp5w1nx94bdblzsjap8gaqcahyr12";
- })
- ];
- # 4.8
- XSA_256_48= [
- (xsaPatch {
- name = "256-4.8";
- sha256 = "1w84f717kxwx0h3rw18r4f8pl0l1h5xlj5fy80sr0ws4xkp1qdn4";
- })
- ];
-
-
- # 4.10
- XSA_252 = [
- (xsaPatch {
- name = "252";
- sha256 = "0v4sg20dnvnwrjh3x69gk81v2kmcql7g2s044vg3wcxhzvij1rrn";
- })
- ];
-
- # 4.10
- XSA_253 = [
- (xsaPatch {
- name = "253";
- sha256 = "0445vzlzy3gd499xraqh5r4qjar6qr0y3813h22jy1n84nhxz27i";
- })
- ];
-
- # 4.10
- XSA_255_1 = [
- (xsaPatch {
- name = "255-1";
- sha256 = "05g2f3ji1rrjlw3yw4nrns50pnmsib8ybrf64scr1817mj0q9myr";
- })
- ];
-
- # 4.10
- XSA_255_2 = [
- (xsaPatch {
- name = "255-2";
- sha256 = "08wbngw5z0f9g8di59hww3hhi7j9z49bpc4xlwn5akfcwbgf0961";
- })
- ];
-
- # 4.10
- XSA_256 = [
- (xsaPatch {
- name = "256";
- sha256 = "1hicwhbwj6k25px55f4ncx1c5xiihi8pfvsb3kv57k7kaicb7pza";
- })
- ];
-
}
diff --git a/pkgs/applications/virtualization/xhyve/default.nix b/pkgs/applications/virtualization/xhyve/default.nix
index 26b55b364f1..e39877df829 100644
--- a/pkgs/applications/virtualization/xhyve/default.nix
+++ b/pkgs/applications/virtualization/xhyve/default.nix
@@ -1,12 +1,14 @@
-{ stdenv, lib, fetchurl, Hypervisor, vmnet, xpc, libobjc, zlib }:
+{ stdenv, lib, fetchFromGitHub, Hypervisor, vmnet, xpc, libobjc, zlib }:
stdenv.mkDerivation rec {
pname = "xhyve";
- version = "20190124";
+ version = "20191001";
- src = fetchurl {
- url = "https://github.com/machyve/xhyve/archive/1dd9a5165848c7ed56dafc41932c553ea56a12af.tar.gz";
- sha256 = "18zd74pd0azf43csbqb14srbyclfgx28dpgm8ygjmbcazbnipc1k";
+ src = fetchFromGitHub {
+ owner = "machyve";
+ repo = "xhyve";
+ rev = "1f46a3d0bbeb6c90883f302425844fcc3800a776";
+ sha256 = "0mm9xa0v6n7xl2qypnppq5abdncd31vffiklrhcrlni5ymyh9ia5";
};
buildInputs = [ Hypervisor vmnet xpc libobjc zlib ];
diff --git a/pkgs/applications/window-managers/2bwm/default.nix b/pkgs/applications/window-managers/2bwm/default.nix
index 4b61fe3d7e6..cd1a3a4baf7 100644
--- a/pkgs/applications/window-managers/2bwm/default.nix
+++ b/pkgs/applications/window-managers/2bwm/default.nix
@@ -3,14 +3,14 @@
, libX11, xcbutil, xcbutilxrm }:
stdenv.mkDerivation rec {
- version = "0.2";
+ version = "0.3";
pname = "2bwm";
src = fetchFromGitHub {
owner = "venam";
repo = "2bwm";
rev = "v${version}";
- sha256 = "1la1ixpm5knsj2gvdcmxzj1jfbzxvhmgzps4f5kbvx5047xc6ici";
+ sha256 = "1xwib612ahv4rg9yl5injck89dlpyp5475xqgag0ydfd0r4sfld7";
};
# Allow users set their own list of patches
diff --git a/pkgs/applications/window-managers/awesome/default.nix b/pkgs/applications/window-managers/awesome/default.nix
index 2551ea80550..b8f31e5b512 100644
--- a/pkgs/applications/window-managers/awesome/default.nix
+++ b/pkgs/applications/window-managers/awesome/default.nix
@@ -12,7 +12,10 @@
# needed for beautiful.gtk to work
assert gtk3Support -> gtk3 != null;
-with luaPackages; stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
+ lgi = luaPackages.lgi;
+ lua = luaPackages.lua;
+ ldoc = luaPackages.ldoc;
pname = "awesome";
version = "4.3";
@@ -49,8 +52,11 @@ with luaPackages; stdenv.mkDerivation rec {
xcbutilxrm ]
++ stdenv.lib.optional gtk3Support gtk3;
- #cmakeFlags = "-DGENERATE_MANPAGES=ON";
- cmakeFlags = "-DOVERRIDE_VERSION=${version}";
+ cmakeFlags = [
+ #"-DGENERATE_MANPAGES=ON"
+ "-DOVERRIDE_VERSION=${version}"
+ ] ++ stdenv.lib.optional luaPackages.isLuaJIT "-DLUA_LIBRARY=${lua}/lib/libluajit-5.1.so"
+ ;
GI_TYPELIB_PATH = "${pango.out}/lib/girepository-1.0";
# LUA_CPATH and LUA_PATH are used only for *building*, see the --search flags
diff --git a/pkgs/applications/window-managers/cage/default.nix b/pkgs/applications/window-managers/cage/default.nix
index be45d68dc5d..ce4031b92f5 100644
--- a/pkgs/applications/window-managers/cage/default.nix
+++ b/pkgs/applications/window-managers/cage/default.nix
@@ -1,7 +1,7 @@
{ stdenv, fetchFromGitHub
, meson, ninja, pkgconfig, makeWrapper
, wlroots, wayland, wayland-protocols, pixman, libxkbcommon
-, systemd, mesa, libX11
+, systemd, libGL, libX11
, xwayland ? null
}:
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
buildInputs = [
wlroots wayland wayland-protocols pixman libxkbcommon
# TODO: Not specified but required:
- systemd mesa libX11
+ systemd libGL libX11
];
enableParallelBuilding = true;
diff --git a/pkgs/applications/window-managers/cwm/default.nix b/pkgs/applications/window-managers/cwm/default.nix
index 1354171dcfa..c109cd5cb68 100644
--- a/pkgs/applications/window-managers/cwm/default.nix
+++ b/pkgs/applications/window-managers/cwm/default.nix
@@ -1,13 +1,15 @@
{ stdenv, fetchFromGitHub, libX11, libXinerama, libXrandr, libXft, yacc, pkgconfig }:
-stdenv.mkDerivation {
- name = "cwm-5.6";
+stdenv.mkDerivation rec {
+
+ pname = "cwm";
+ version = "6.3";
src = fetchFromGitHub {
- owner = "chneukirchen";
- repo = "cwm";
- rev = "b7a8c11750d11721a897fdb8442d52f15e7a24a0";
- sha256 = "0a0x8rgqif4kxy7hj70hck7jma6c8jy4428ybl8fz9qxgxh014ml";
+ owner = "leahneukirchen";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1m08gd6nscwfx6040zbg2zl89m4g73im68iflzcihd6pdc8rzzs4";
};
nativeBuildInputs = [ pkgconfig ];
@@ -17,8 +19,8 @@ stdenv.mkDerivation {
meta = with stdenv.lib; {
description = "A lightweight and efficient window manager for X11";
- homepage = https://github.com/chneukirchen/cwm;
- maintainers = [];
+ homepage = "https://github.com/leahneukirchen/cwm";
+ maintainers = with maintainers; [ "0x4A6F" mkf ];
license = licenses.isc;
platforms = platforms.linux;
};
diff --git a/pkgs/applications/window-managers/dwm/dwm-status.nix b/pkgs/applications/window-managers/dwm/dwm-status.nix
index 1787e40eb96..ecd792f74e7 100644
--- a/pkgs/applications/window-managers/dwm/dwm-status.nix
+++ b/pkgs/applications/window-managers/dwm/dwm-status.nix
@@ -9,19 +9,19 @@ in
rustPlatform.buildRustPackage rec {
pname = "dwm-status";
- version = "1.6.2";
+ version = "1.6.3";
src = fetchFromGitHub {
owner = "Gerschtli";
repo = "dwm-status";
rev = version;
- sha256 = "16vf7val1isc4227amng2ap9af34xa2va23dxv43px006xhrar78";
+ sha256 = "02sprsr7822ynkwpf3xdgmkdrgkw3vgijhlh65bayiv3b5lwb54n";
};
nativeBuildInputs = [ makeWrapper pkgconfig ];
buildInputs = [ dbus gdk-pixbuf libnotify xorg.libX11 ];
- cargoSha256 = "0pprf8509d321azg2l51lpxylgpk7290y38z9p5hxgkcwhrhrcss";
+ cargoSha256 = "0l6x59bzzilc78gsi5rlgq9zjvp8qjphfsds776ljzmkbdq8q4iz";
postInstall = lib.optionalString (bins != []) ''
wrapProgram $out/bin/dwm-status --prefix "PATH" : "${stdenv.lib.makeBinPath bins}"
diff --git a/pkgs/applications/window-managers/fvwm/default.nix b/pkgs/applications/window-managers/fvwm/default.nix
index 27657c10a7e..cc503b2db4f 100644
--- a/pkgs/applications/window-managers/fvwm/default.nix
+++ b/pkgs/applications/window-managers/fvwm/default.nix
@@ -9,11 +9,11 @@ assert gestures -> libstroke != null;
stdenv.mkDerivation rec {
pname = "fvwm";
- version = "2.6.8";
+ version = "2.6.9";
src = fetchurl {
url = "https://github.com/fvwmorg/fvwm/releases/download/${version}/${pname}-${version}.tar.gz";
- sha256 = "0hgkkdzcqjnaabvv9cnh0bz90nnjskbhjg9qnzpi2x0mbliwjdpv";
+ sha256 = "1bliqcnap7vb3m2rn8wvxyfhbf35h9x34s41fl4301yhrkrlrihv";
};
nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/window-managers/i3/blocks.nix b/pkgs/applications/window-managers/i3/blocks.nix
index ef03216d499..15bd5e74cdc 100644
--- a/pkgs/applications/window-managers/i3/blocks.nix
+++ b/pkgs/applications/window-managers/i3/blocks.nix
@@ -1,4 +1,4 @@
-{ fetchFromGitHub, stdenv, autoreconfHook }:
+{ fetchFromGitHub, fetchpatch, stdenv, autoreconfHook }:
with stdenv.lib;
@@ -13,6 +13,15 @@ stdenv.mkDerivation {
sha256 = "1fx4230lmqa5rpzph68dwnpcjfaaqv5gfkradcr85hd1z8d1qp1b";
};
+ patches = [
+ # XDG_CONFIG_DIRS can contain multiple elements separated by colons, which should be searched in order.
+ (fetchpatch {
+ # https://github.com/vivien/i3blocks/pull/405
+ url = https://github.com/edef1c/i3blocks/commit/d57b32f9a364aeaf36869efdd54240433c737e57.patch;
+ sha256 = "102xb0ax0hmg82dz2gzfag470dkckzf2yizai0izacvrz0d3ngj1";
+ })
+ ];
+
nativeBuildInputs = [ autoreconfHook ];
meta = {
diff --git a/pkgs/applications/window-managers/i3/gaps.nix b/pkgs/applications/window-managers/i3/gaps.nix
index 4d4ab6d96cc..e5c478987df 100644
--- a/pkgs/applications/window-managers/i3/gaps.nix
+++ b/pkgs/applications/window-managers/i3/gaps.nix
@@ -3,12 +3,12 @@
i3.overrideAttrs (oldAttrs : rec {
name = "i3-gaps-${version}";
- version = "4.17";
+ version = "4.17.1";
releaseDate = "2019-01-27";
src = fetchurl {
url = "https://github.com/Airblader/i3/archive/${version}.tar.gz";
- sha256 = "1vd2xv91xrcr07s2dywq9rvidqqmbs41hlvhcvr1927gz200vgjg";
+ sha256 = "02jpvwmfwv58dfdwvcvkdfcyca7l7zw7hx18aj4cqm3gg0r5pmqh";
};
nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ autoreconfHook ];
diff --git a/pkgs/applications/window-managers/i3/status-rust.nix b/pkgs/applications/window-managers/i3/status-rust.nix
index 60edf05892d..c8731408951 100644
--- a/pkgs/applications/window-managers/i3/status-rust.nix
+++ b/pkgs/applications/window-managers/i3/status-rust.nix
@@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "i3status-rust";
- version = "0.10.0";
+ version = "0.11.0";
src = fetchFromGitHub {
owner = "greshake";
repo = pname;
rev = "v${version}";
- sha256 = "0i1k884ha08w7r5q5z012q2w7hs333b3c18hkbrhamknpvy6c2i0";
+ sha256 = "15083nagd0kzpkay5jxcq5i16yvybd4sh03g9x4q9xq4cy0qwj11";
};
- cargoSha256 = "1w43k3ld9ra7blbn593mpi8qg5pgcglwqwddkrb55yxnpnkaxvzy";
+ cargoSha256 = "1cbx2jll0bj547dvwzjprzidndbqn1c4c6hmbfgjgdkxmmrpb0r1";
nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/window-managers/leftwm/cargo-lock.patch b/pkgs/applications/window-managers/leftwm/cargo-lock.patch
index 92588eb2fdb..54b7e47cc07 100644
--- a/pkgs/applications/window-managers/leftwm/cargo-lock.patch
+++ b/pkgs/applications/window-managers/leftwm/cargo-lock.patch
@@ -1,1483 +1,13 @@
---- /dev/null 2019-05-17 17:44:26.875442706 +0200
-+++ b/Cargo.lock 2019-05-17 18:30:29.490608288 +0200
-@@ -0,0 +1,1480 @@
-+# This file is automatically @generated by Cargo.
-+# It is not intended for manual editing.
-+[[package]]
-+name = "aho-corasick"
-+version = "0.7.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "ansi_term"
-+version = "0.11.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "anymap"
-+version = "0.12.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "argon2rs"
-+version = "0.2.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "scoped_threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "arrayvec"
-+version = "0.4.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "atty"
-+version = "0.2.11"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "termion 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "autocfg"
-+version = "0.1.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "backtrace"
-+version = "0.3.18"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rustc-demangle 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "backtrace-sys"
-+version = "0.1.28"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "bitflags"
-+version = "1.0.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "blake2-rfc"
-+version = "0.2.18"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "constant_time_eq 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "block-buffer"
-+version = "0.7.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "block-padding 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "generic-array 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "block-padding"
-+version = "0.1.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "byte-tools"
-+version = "0.3.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "byteorder"
-+version = "1.3.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "bytes"
-+version = "0.4.12"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "cc"
-+version = "1.0.37"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "cfg-if"
-+version = "0.1.9"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "chrono"
-+version = "0.4.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "clap"
-+version = "2.33.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "cloudabi"
-+version = "0.0.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "constant_time_eq"
-+version = "0.1.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "crossbeam-deque"
-+version = "0.7.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "crossbeam-epoch 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "crossbeam-epoch"
-+version = "0.7.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "crossbeam-queue"
-+version = "0.1.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "crossbeam-utils"
-+version = "0.6.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "deunicode"
-+version = "1.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "digest"
-+version = "0.8.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "generic-array 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "dirs"
-+version = "1.0.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "redox_users 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "either"
-+version = "1.5.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "env_logger"
-+version = "0.6.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "regex 1.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "failure"
-+version = "0.1.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "backtrace 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "failure_derive"
-+version = "0.1.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "synstructure 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "fake-simd"
-+version = "0.1.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "fnv"
-+version = "1.0.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "fuchsia-cprng"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "fuchsia-zircon"
-+version = "0.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "fuchsia-zircon-sys"
-+version = "0.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "futures"
-+version = "0.1.27"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "generic-array"
-+version = "0.12.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "humantime"
-+version = "1.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "idna"
-+version = "0.1.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-normalization 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "iovec"
-+version = "0.1.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "itertools"
-+version = "0.8.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "itoa"
-+version = "0.4.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "kernel32-sys"
-+version = "0.2.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "lazy_static"
-+version = "1.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "leftwm"
-+version = "0.1.9"
-+dependencies = [
-+ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "dirs 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "liquid 0.18.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde_derive 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-uds 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "x11-dl 2.18.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "libc"
-+version = "0.2.55"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "liquid"
-+version = "0.18.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "deunicode 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "liquid-compiler 0.18.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "liquid-error 0.18.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "liquid-interpreter 0.18.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "liquid-value 0.18.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "regex 1.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-segmentation 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "liquid-compiler"
-+version = "0.18.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "liquid-error 0.18.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "liquid-interpreter 0.18.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "liquid-value 0.18.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pest 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pest_derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "liquid-error"
-+version = "0.18.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "liquid-interpreter"
-+version = "0.18.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "anymap 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "liquid-error 0.18.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "liquid-value 0.18.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "liquid-value"
-+version = "0.18.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "liquid-error 0.18.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "lock_api"
-+version = "0.1.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "log"
-+version = "0.4.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "maplit"
-+version = "1.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "matches"
-+version = "0.1.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "memchr"
-+version = "2.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "memoffset"
-+version = "0.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "mio"
-+version = "0.6.17"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "mio-uds"
-+version = "0.6.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "mio 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "miow"
-+version = "0.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "net2"
-+version = "0.2.33"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "nodrop"
-+version = "0.1.13"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "num-integer"
-+version = "0.1.39"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "num-traits"
-+version = "0.2.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "num_cpus"
-+version = "1.10.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "numtoa"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "opaque-debug"
-+version = "0.2.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "owning_ref"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "parking_lot"
-+version = "0.7.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "parking_lot_core"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "percent-encoding"
-+version = "1.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "pest"
-+version = "2.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "ucd-trie 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "pest_derive"
-+version = "2.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "pest 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pest_generator 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "pest_generator"
-+version = "2.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "pest 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pest_meta 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "pest_meta"
-+version = "2.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "maplit 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pest 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "sha-1 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "pkg-config"
-+version = "0.3.14"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "proc-macro2"
-+version = "0.4.30"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "quick-error"
-+version = "1.2.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "quote"
-+version = "0.6.12"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rand"
-+version = "0.6.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rand_chacha"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rand_core"
-+version = "0.3.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rand_core"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "rand_hc"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rand_isaac"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rand_jitter"
-+version = "0.1.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rand_os"
-+version = "0.1.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rand_pcg"
-+version = "0.1.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rand_xorshift"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rdrand"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "redox_syscall"
-+version = "0.1.54"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "redox_termios"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "redox_users"
-+version = "0.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "argon2rs 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "regex"
-+version = "1.1.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "aho-corasick 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "regex-syntax 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "regex-syntax"
-+version = "0.6.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rustc-demangle"
-+version = "0.1.14"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "rustc_version"
-+version = "0.2.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "ryu"
-+version = "0.2.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "scoped_threadpool"
-+version = "0.1.9"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "scopeguard"
-+version = "0.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "semver"
-+version = "0.9.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "semver-parser"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "serde"
-+version = "1.0.91"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "serde_derive 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "serde_derive"
-+version = "1.0.91"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "serde_json"
-+version = "1.0.39"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "ryu 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "sha-1"
-+version = "0.8.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "digest 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "opaque-debug 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "slab"
-+version = "0.4.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "smallvec"
-+version = "0.6.9"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "stable_deref_trait"
-+version = "1.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "strsim"
-+version = "0.8.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "syn"
-+version = "0.15.34"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "synstructure"
-+version = "0.10.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "termcolor"
-+version = "1.0.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "termion"
-+version = "1.5.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "numtoa 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "textwrap"
-+version = "0.11.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "thread_local"
-+version = "0.3.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "time"
-+version = "0.1.42"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "tokio"
-+version = "0.1.20"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "mio 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-current-thread 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-fs 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-sync 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-threadpool 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-timer 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-trace-core 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-udp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-uds 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "tokio-codec"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "tokio-current-thread"
-+version = "0.1.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "tokio-executor"
-+version = "0.1.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "tokio-fs"
-+version = "0.1.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-threadpool 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "tokio-io"
-+version = "0.1.12"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "tokio-reactor"
-+version = "0.1.9"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "mio 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-sync 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "tokio-sync"
-+version = "0.1.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "tokio-tcp"
-+version = "0.1.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "mio 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "tokio-threadpool"
-+version = "0.1.14"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "crossbeam-deque 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "tokio-timer"
-+version = "0.2.11"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "tokio-trace-core"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "tokio-udp"
-+version = "0.1.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "mio 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "tokio-uds"
-+version = "0.2.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "mio 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "toml"
-+version = "0.4.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "typenum"
-+version = "1.10.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "ucd-trie"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "ucd-util"
-+version = "0.1.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "unicode-bidi"
-+version = "0.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "unicode-normalization"
-+version = "0.1.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "unicode-segmentation"
-+version = "1.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "unicode-width"
-+version = "0.1.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "unicode-xid"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "url"
-+version = "1.7.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "utf8-ranges"
-+version = "1.0.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "uuid"
-+version = "0.7.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "vec_map"
-+version = "0.8.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "winapi"
-+version = "0.2.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "winapi"
-+version = "0.3.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "winapi-build"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "winapi-i686-pc-windows-gnu"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "winapi-util"
-+version = "0.1.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "winapi-x86_64-pc-windows-gnu"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "wincolor"
-+version = "1.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "ws2_32-sys"
-+version = "0.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "x11-dl"
-+version = "2.18.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "xdg"
-+version = "2.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[metadata]
-+"checksum aho-corasick 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e6f484ae0c99fec2e858eb6134949117399f222608d84cadb3f58c1f97c2364c"
-+"checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
-+"checksum anymap 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "33954243bd79057c2de7338850b85983a44588021f8a5fee574a8888c6de4344"
-+"checksum argon2rs 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3f67b0b6a86dae6e67ff4ca2b6201396074996379fba2b92ff649126f37cb392"
-+"checksum arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "92c7fb76bc8826a8b33b4ee5bb07a247a81e76764ab4d55e8f73e3a4d8808c71"
-+"checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652"
-+"checksum autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a6d640bee2da49f60a4068a7fae53acde8982514ab7bae8b8cea9e88cbcfd799"
-+"checksum backtrace 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)" = "f92d5d536fa03dc3d93711d97bac1fae2eb59aba467ca4c6600c0119da614f51"
-+"checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6"
-+"checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12"
-+"checksum blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400"
-+"checksum block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b"
-+"checksum block-padding 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "6d4dc3af3ee2e12f3e5d224e5e1e3d73668abbeb69e566d361f7d5563a4fdf09"
-+"checksum byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
-+"checksum byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a019b10a2a7cdeb292db131fc8113e57ea2a908f6e7894b0c3c671893b65dbeb"
-+"checksum bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c"
-+"checksum cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)" = "39f75544d7bbaf57560d2168f28fd649ff9c76153874db88bdbdfd839b1a7e7d"
-+"checksum cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33"
-+"checksum chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "45912881121cb26fad7c38c17ba7daa18764771836b34fab7d3fbd93ed633878"
-+"checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9"
-+"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
-+"checksum constant_time_eq 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8ff012e225ce166d4422e0e78419d901719760f62ae2b7969ca6b564d1b54a9e"
-+"checksum crossbeam-deque 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b18cd2e169ad86297e6bc0ad9aa679aee9daa4f19e8163860faf7c164e4f5a71"
-+"checksum crossbeam-epoch 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "04c9e3102cc2d69cd681412141b390abd55a362afc1540965dad0ad4d34280b4"
-+"checksum crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b"
-+"checksum crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f8306fcef4a7b563b76b7dd949ca48f52bc1141aa067d2ea09565f3e2652aa5c"
-+"checksum deunicode 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca8a0f5bbdedde60605d0719b998e282af68e2b1c50203110211fe4abe857560"
-+"checksum digest 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05f47366984d3ad862010e22c7ce81a7dbcaebbdfb37241a620f8b6596ee135c"
-+"checksum dirs 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3fd78930633bd1c6e35c4b42b1df7b0cbc6bc191146e512bb3bedf243fcc3901"
-+"checksum either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5527cfe0d098f36e3f8839852688e63c8fff1c90b2b405aef730615f9a7bcf7b"
-+"checksum env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b61fa891024a945da30a9581546e8cfaf5602c7b3f4c137a2805cf388f92075a"
-+"checksum failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "795bd83d3abeb9220f257e597aa0080a508b27533824adf336529648f6abf7e2"
-+"checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1"
-+"checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
-+"checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3"
-+"checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
-+"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
-+"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
-+"checksum futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)" = "a2037ec1c6c1c4f79557762eab1f7eae1f64f6cb418ace90fae88f0942b60139"
-+"checksum generic-array 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3c0f28c2f5bfb5960175af447a2da7c18900693738343dc896ffbcabd9839592"
-+"checksum humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ca7e5f2e110db35f93b837c81797f3714500b81d517bf20c431b16d3ca4f114"
-+"checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e"
-+"checksum iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dbe6e417e7d0975db6512b90796e8ce223145ac4e33c377e4a42882a0e88bb08"
-+"checksum itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5b8467d9c1cebe26feb08c640139247fac215782d35371ade9a2136ed6085358"
-+"checksum itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f"
-+"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
-+"checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14"
-+"checksum libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)" = "42914d39aad277d9e176efbdad68acb1d5443ab65afe0e0e4f0d49352a950880"
-+"checksum liquid 0.18.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e1d91078b50038dba2539ec474656192a0c83b4802e999e5ee334bf198a8120c"
-+"checksum liquid-compiler 0.18.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d6b581cfb0437adeb4628cceafed44441d0a4a5c858ab169ec932ba4b4fda815"
-+"checksum liquid-error 0.18.1 (registry+https://github.com/rust-lang/crates.io-index)" = "76119f2171687b188d7b953627ae924ca0556499b0bd20099ee5f2dea8e8969b"
-+"checksum liquid-interpreter 0.18.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0cc07e0e8d8b87a34579e42644ac63e290989d4e0539b79993979163bb43ea7b"
-+"checksum liquid-value 0.18.1 (registry+https://github.com/rust-lang/crates.io-index)" = "21caa8903eae7cd9f5918d85d99a06e2a21528fcf6e3da33a7b319d03b81d87c"
-+"checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c"
-+"checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6"
-+"checksum maplit 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "08cbb6b4fef96b6d77bfc40ec491b1690c779e77b05cd9f07f787ed376fd4c43"
-+"checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
-+"checksum memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2efc7bc57c883d4a4d6e3246905283d8dae951bb3bd32f49d6ef297f546e1c39"
-+"checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3"
-+"checksum mio 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)" = "049ba5ca2b63e837adeee724aa9e36b408ed593529dcc802aa96ca14bd329bdf"
-+"checksum mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "966257a94e196b11bb43aca423754d87429960a768de9414f3691d6957abf125"
-+"checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
-+"checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88"
-+"checksum nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945"
-+"checksum num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)" = "e83d528d2677f0518c570baf2b7abdcf0cd2d248860b68507bdcb3e91d4c0cea"
-+"checksum num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0b3a5d7cc97d6d30d8b9bc8fa19bf45349ffe46241e8816f50f62f6d6aaabee1"
-+"checksum num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1a23f0ed30a54abaa0c7e83b1d2d87ada7c3c23078d1d87815af3e3b6385fbba"
-+"checksum numtoa 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef"
-+"checksum opaque-debug 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "93f5bb2e8e8dec81642920ccff6b61f1eb94fa3020c5a325c9851ff604152409"
-+"checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13"
-+"checksum parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab41b4aed082705d1056416ae4468b6ea99d52599ecf3169b00088d43113e337"
-+"checksum parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9"
-+"checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831"
-+"checksum pest 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "933085deae3f32071f135d799d75667b63c8dc1f4537159756e3d4ceab41868c"
-+"checksum pest_derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0"
-+"checksum pest_generator 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "63120576c4efd69615b5537d3d052257328a4ca82876771d6944424ccfd9f646"
-+"checksum pest_meta 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f249ea6de7c7b7aba92b4ff4376a994c6dbd98fd2166c89d5c4947397ecb574d"
-+"checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c"
-+"checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
-+"checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0"
-+"checksum quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)" = "faf4799c5d274f3868a4aae320a0a182cbd2baee377b378f080e16a23e9d80db"
-+"checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
-+"checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
-+"checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
-+"checksum rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d0e7a549d590831370895ab7ba4ea0c1b6b011d106b5ff2da6eee112615e6dc0"
-+"checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
-+"checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
-+"checksum rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
-+"checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
-+"checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
-+"checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
-+"checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
-+"checksum redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)" = "12229c14a0f65c4f1cb046a3b52047cdd9da1f4b30f8a39c5063c8bae515e252"
-+"checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76"
-+"checksum redox_users 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3fe5204c3a17e97dde73f285d49be585df59ed84b50a872baf416e73b62c3828"
-+"checksum regex 1.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "8f0a0bcab2fd7d1d7c54fa9eae6f43eddeb9ce2e7352f8518a814a4f65d60c58"
-+"checksum regex-syntax 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "dcfd8681eebe297b81d98498869d4aae052137651ad7b96822f09ceb690d0a96"
-+"checksum rustc-demangle 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "ccc78bfd5acd7bf3e89cffcf899e5cb1a52d6fafa8dec2739ad70c9577a57288"
-+"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
-+"checksum ryu 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "b96a9549dc8d48f2c283938303c4b5a77aa29bfbc5b54b084fb1630408899a8f"
-+"checksum scoped_threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8"
-+"checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27"
-+"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
-+"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
-+"checksum serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)" = "a72e9b96fa45ce22a4bc23da3858dfccfd60acd28a25bcd328a98fdd6bea43fd"
-+"checksum serde_derive 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)" = "101b495b109a3e3ca8c4cbe44cf62391527cdfb6ba15821c5ce80bcd5ea23f9f"
-+"checksum serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)" = "5a23aa71d4a4d43fdbfaac00eff68ba8a06a51759a89ac3304323e800c4dd40d"
-+"checksum sha-1 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "23962131a91661d643c98940b20fcaffe62d776a823247be80a48fcb8b6fce68"
-+"checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
-+"checksum smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "c4488ae950c49d403731982257768f48fada354a5203fe81f9bb6f43ca9002be"
-+"checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8"
-+"checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
-+"checksum syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)" = "a1393e4a97a19c01e900df2aec855a29f71cf02c402e2f443b8d2747c25c5dbe"
-+"checksum synstructure 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "02353edf96d6e4dc81aea2d8490a7e9db177bf8acb0e951c24940bf866cb313f"
-+"checksum termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4096add70612622289f2fdcdbd5086dc81c1e2675e6ae58d6c4f62a16c6d7f2f"
-+"checksum termion 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dde0593aeb8d47accea5392b39350015b5eccb12c0d98044d856983d89548dea"
-+"checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
-+"checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
-+"checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f"
-+"checksum tokio 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)" = "94a1f9396aec29d31bb16c24d155cfa144d1af91c40740125db3131bdaf76da8"
-+"checksum tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5c501eceaf96f0e1793cf26beb63da3d11c738c4a943fdf3746d81d64684c39f"
-+"checksum tokio-current-thread 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "d16217cad7f1b840c5a97dfb3c43b0c871fef423a6e8d2118c604e843662a443"
-+"checksum tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "83ea44c6c0773cc034771693711c35c677b4b5a4b21b9e7071704c54de7d555e"
-+"checksum tokio-fs 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "3fe6dc22b08d6993916647d108a1a7d15b9cd29c4f4496c62b92c45b5041b7af"
-+"checksum tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "5090db468dad16e1a7a54c8c67280c5e4b544f3d3e018f0b913b400261f85926"
-+"checksum tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "6af16bfac7e112bea8b0442542161bfc41cbfa4466b580bdda7d18cb88b911ce"
-+"checksum tokio-sync 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "5b2f843ffdf8d6e1f90bddd48da43f99ab071660cd92b7ec560ef3cdfd7a409a"
-+"checksum tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1d14b10654be682ac43efee27401d792507e30fd8d26389e1da3b185de2e4119"
-+"checksum tokio-threadpool 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "72558af20be886ea124595ea0f806dd5703b8958e4705429dd58b3d8231f72f2"
-+"checksum tokio-timer 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "f2106812d500ed25a4f38235b9cae8f78a09edf43203e16e59c3b769a342a60e"
-+"checksum tokio-trace-core 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "350c9edade9830dc185ae48ba45667a445ab59f6167ef6d0254ec9d2430d9dd3"
-+"checksum tokio-udp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "66268575b80f4a4a710ef83d087fdfeeabdce9b74c797535fbac18a2cb906e92"
-+"checksum tokio-uds 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "037ffc3ba0e12a0ab4aca92e5234e0dedeb48fddf6ccd260f1f150a36a9f2445"
-+"checksum toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "758664fc71a3a69038656bee8b6be6477d2a6c315a6b81f7081f591bffa4111f"
-+"checksum typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "612d636f949607bdf9b123b4a6f6d966dedf3ff669f7f045890d3a4a73948169"
-+"checksum ucd-trie 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "71a9c5b1fe77426cf144cc30e49e955270f5086e31a6441dfa8b32efc09b9d77"
-+"checksum ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86"
-+"checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
-+"checksum unicode-normalization 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "141339a08b982d942be2ca06ff8b076563cbe223d1befd5450716790d44e2426"
-+"checksum unicode-segmentation 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1967f4cdfc355b37fd76d2a954fb2ed3871034eb4f26d60537d88795cfc332a9"
-+"checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526"
-+"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
-+"checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a"
-+"checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737"
-+"checksum uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a"
-+"checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
-+"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
-+"checksum winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f10e386af2b13e47c89e7236a7a14a086791a2b88ebad6df9bf42040195cf770"
-+"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
-+"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-+"checksum winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9"
-+"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-+"checksum wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "561ed901ae465d6185fa7864d63fbd5720d0ef718366c9a4dc83cf6170d7e9ba"
-+"checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
-+"checksum x11-dl 2.18.3 (registry+https://github.com/rust-lang/crates.io-index)" = "940586acb859ea05c53971ac231685799a7ec1dee66ac0bccc0e6ad96e06b4e3"
-+"checksum xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d089681aa106a86fade1b0128fb5daf07d5867a509ab036d99988dec80429a57"
+diff --git a/Cargo.lock b/Cargo.lock
+index 915ab04..3d5956d 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -370,7 +370,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+
+ [[package]]
+ name = "leftwm"
+-version = "0.1.9"
++version = "0.1.10"
+ dependencies = [
+ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+ "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
diff --git a/pkgs/applications/window-managers/leftwm/default.nix b/pkgs/applications/window-managers/leftwm/default.nix
index 661ca013e24..29e33bca914 100644
--- a/pkgs/applications/window-managers/leftwm/default.nix
+++ b/pkgs/applications/window-managers/leftwm/default.nix
@@ -6,13 +6,13 @@ in
rustPlatform.buildRustPackage rec {
pname = "leftwm";
- version = "0.1.9";
+ version = "0.1.10";
src = fetchFromGitHub {
owner = "leftwm";
repo = "leftwm";
rev = version;
- sha256 = "0ji7m2npkdg27gm33b19rxr50km0gm1h9czi1f425vxq65mlkl4y";
+ sha256 = "190lc48clkh9vzlsfg2a70w405k7xyyw7avnxwna1glfwmbyy2ag";
};
buildInputs = [ makeWrapper libX11 libXinerama ];
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
cargoSha256 = "0mpvfix7bvc84vanha474l4gaq97ac1zy5l77z83m9jg0246yxd6";
- # https://github.com/leftwm/leftwm/pull/37
+ # patch wrong version in Cargo.lock
cargoPatches = [ ./cargo-lock.patch ];
meta = {
diff --git a/pkgs/applications/window-managers/qtile/default.nix b/pkgs/applications/window-managers/qtile/default.nix
index dc78702b03c..6d0e6bdac45 100644
--- a/pkgs/applications/window-managers/qtile/default.nix
+++ b/pkgs/applications/window-managers/qtile/default.nix
@@ -32,7 +32,7 @@ python37Packages.buildPythonApplication rec {
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ glib libxcb cairo pango python37Packages.xcffib ];
- pythonPath = with python37Packages; [ xcffib cairocffi-xcffib ];
+ pythonPath = with python37Packages; [ xcffib cairocffi-xcffib setuptools ];
postInstall = ''
wrapProgram $out/bin/qtile \
diff --git a/pkgs/build-support/appimage/default.nix b/pkgs/build-support/appimage/default.nix
index 1f84403c10f..c871df787b7 100644
--- a/pkgs/build-support/appimage/default.nix
+++ b/pkgs/build-support/appimage/default.nix
@@ -185,10 +185,12 @@ rec {
keyutils.lib
libjack2
fribidi
+ p11-kit
# libraries not on the upstream include list, but nevertheless expected
# by at least one appimage
libtool.lib # for Synfigstudio
+ at-spi2-core
];
};
}
diff --git a/pkgs/build-support/bintools-wrapper/default.nix b/pkgs/build-support/bintools-wrapper/default.nix
index 648b8b4ffa9..fd95da6c6cd 100644
--- a/pkgs/build-support/bintools-wrapper/default.nix
+++ b/pkgs/build-support/bintools-wrapper/default.nix
@@ -111,17 +111,13 @@ stdenv.mkDerivation {
installPhase =
''
- set -u
-
mkdir -p $out/bin $out/nix-support
wrap() {
local dst="$1"
local wrapper="$2"
export prog="$3"
- set +u
substituteAll "$wrapper" "$out/bin/$dst"
- set -u
chmod +x "$out/bin/$dst"
}
''
@@ -163,8 +159,6 @@ stdenv.mkDerivation {
[[ -e "$underlying" ]] || continue
wrap ${targetPrefix}$variant ${./ld-wrapper.sh} $underlying
done
-
- set +u
'';
emulation = let
@@ -190,6 +184,7 @@ stdenv.mkDerivation {
else if targetPlatform.isMsp430 then "msp430"
else if targetPlatform.isAvr then "avr"
else if targetPlatform.isAlpha then "alpha"
+ else if targetPlatform.isVc4 then "vc4"
else throw "unknown emulation for platform: ${targetPlatform.config}";
in if targetPlatform.useLLVM or false then ""
else targetPlatform.platform.bfdEmulation or (fmt + sep + arch);
@@ -205,11 +200,7 @@ stdenv.mkDerivation {
];
postFixup =
- ''
- set -u
- ''
-
- + optionalString (libc != null) (''
+ optionalString (libc != null) (''
##
## General libc support
##
@@ -307,7 +298,6 @@ stdenv.mkDerivation {
''
+ ''
- set +u
substituteAll ${./add-flags.sh} $out/nix-support/add-flags.sh
substituteAll ${./add-hardening.sh} $out/nix-support/add-hardening.sh
substituteAll ${../wrapper-common/utils.bash} $out/nix-support/utils.bash
diff --git a/pkgs/build-support/bintools-wrapper/setup-hook.sh b/pkgs/build-support/bintools-wrapper/setup-hook.sh
index f65b792485a..a714bd151c9 100644
--- a/pkgs/build-support/bintools-wrapper/setup-hook.sh
+++ b/pkgs/build-support/bintools-wrapper/setup-hook.sh
@@ -2,8 +2,6 @@
#
# See comments in cc-wrapper's setup hook. This works exactly the same way.
-set -u
-
# Skip setup hook if we're neither a build-time dep, nor, temporarily, doing a
# native compile.
#
@@ -24,7 +22,8 @@ bintoolsWrapper_addLDVars () {
# Python and Haskell packages often only have directories like $out/lib/ghc-8.4.3/ or
# $out/lib/python3.6/, so having them in LDFLAGS just makes the linker search unnecessary
# directories and bloats the size of the environment variable space.
- if [[ -n "$(echo $1/lib/lib*)" ]]; then
+ local -a glob=( $1/lib/lib* )
+ if [ "${#glob[*]}" -gt 0 ]; then
export NIX_${role_pre}LDFLAGS+=" -L$1/lib"
fi
fi
@@ -61,9 +60,8 @@ do
if
PATH=$_PATH type -p "@targetPrefix@${cmd}" > /dev/null
then
- upper_case="$(echo "$cmd" | tr "[:lower:]" "[:upper:]")"
- export "${role_pre}${upper_case}=@targetPrefix@${cmd}";
- export "${upper_case}${role_post}=@targetPrefix@${cmd}";
+ export "${role_pre}${cmd^^}=@targetPrefix@${cmd}";
+ export "${cmd^^}${role_post}=@targetPrefix@${cmd}";
fi
done
@@ -73,4 +71,3 @@ export NIX_HARDENING_ENABLE
# No local scope in sourced file
unset -v role_pre role_post cmd upper_case
-set +u
diff --git a/pkgs/build-support/build-bazel-package/default.nix b/pkgs/build-support/build-bazel-package/default.nix
index d4318b715ba..a1a38484386 100644
--- a/pkgs/build-support/build-bazel-package/default.nix
+++ b/pkgs/build-support/build-bazel-package/default.nix
@@ -60,6 +60,7 @@ in stdenv.mkDerivation (fBuildAttrs // {
# Remove all built in external workspaces, Bazel will recreate them when building
rm -rf $bazelOut/external/{bazel_tools,\@bazel_tools.marker}
+ rm -rf $bazelOut/external/{rules_cc,\@rules_cc.marker}
rm -rf $bazelOut/external/{embedded_jdk,\@embedded_jdk.marker}
rm -rf $bazelOut/external/{local_*,\@local_*.marker}
diff --git a/pkgs/build-support/build-dotnet-package/default.nix b/pkgs/build-support/build-dotnet-package/default.nix
index f36c69e4339..dae9ed888c7 100644
--- a/pkgs/build-support/build-dotnet-package/default.nix
+++ b/pkgs/build-support/build-dotnet-package/default.nix
@@ -29,9 +29,9 @@ attrsOrig @
configurePhase = ''
runHook preConfigure
- [ -z "$dontPlacateNuget" ] && placate-nuget.sh
- [ -z "$dontPlacatePaket" ] && placate-paket.sh
- [ -z "$dontPatchFSharpTargets" ] && patch-fsharp-targets.sh
+ [ -z "''${dontPlacateNuget-}" ] && placate-nuget.sh
+ [ -z "''${dontPlacatePaket-}" ] && placate-paket.sh
+ [ -z "''${dontPatchFSharpTargets-}" ] && patch-fsharp-targets.sh
runHook postConfigure
'';
@@ -69,7 +69,7 @@ attrsOrig @
cp -rv ${arrayToShell outputFiles} "''${outputFilesArray[@]}" "$target"
- if [ -z "$dontRemoveDuplicatedDlls" ]
+ if [ -z "''${dontRemoveDuplicatedDlls-}" ]
then
pushd "$out"
remove-duplicated-dlls.sh
diff --git a/pkgs/build-support/buildenv/builder.pl b/pkgs/build-support/buildenv/builder.pl
index b699d762d29..fc6ffce735c 100755
--- a/pkgs/build-support/buildenv/builder.pl
+++ b/pkgs/build-support/buildenv/builder.pl
@@ -26,6 +26,19 @@ sub isInPathsToLink {
return 0;
}
+# Returns whether a path in one of the linked packages may contain
+# files in one of the elements of pathsToLink.
+sub hasPathsToLink {
+ my $path = shift;
+ foreach my $elem (@pathsToLink) {
+ return 1 if
+ $path eq "" ||
+ (substr($elem, 0, length($path)) eq $path
+ && (($path eq $elem) || (substr($elem, length($path), 1) eq "/")));
+ }
+ return 0;
+}
+
# Similar to `lib.isStorePath`
sub isStorePath {
my $path = shift;
@@ -103,7 +116,8 @@ sub findFiles {
$relName =~ /info\/dir/ ||
( $relName =~ /^\/share\/mime\// && !( $relName =~ /^\/share\/mime\/packages/ ) ) ||
$baseName eq "perllocal.pod" ||
- $baseName eq "log";
+ $baseName eq "log" ||
+ ! (hasPathsToLink($relName) || isInPathsToLink($relName));
my ($oldTarget, $oldPriority) = @{$symlinks{$relName} // [undef, undef]};
diff --git a/pkgs/build-support/cc-wrapper/cc-wrapper.sh b/pkgs/build-support/cc-wrapper/cc-wrapper.sh
index bb789010008..ba3dfc96f5c 100644
--- a/pkgs/build-support/cc-wrapper/cc-wrapper.sh
+++ b/pkgs/build-support/cc-wrapper/cc-wrapper.sh
@@ -33,6 +33,7 @@ fi
# GCC prints annoying warnings when they are not needed.
dontLink=0
nonFlagArgs=0
+cc1=0
# shellcheck disable=SC2193
[[ "@prog@" = *++ ]] && isCpp=1 || isCpp=0
cppInclude=1
@@ -68,6 +69,8 @@ while (( "$n" < "$nParams" )); do
elif [[ "$p" != -?* ]]; then
# A dash alone signifies standard input; it is not a flag
nonFlagArgs=1
+ elif [ "$p" = -cc1 ]; then
+ cc1=1
fi
n+=1
done
@@ -167,6 +170,14 @@ if [ "$*" = -v ]; then
extraBefore=()
fi
+# clang's -cc1 mode is not compatible with most options
+# that we would pass. Rather than trying to pass only
+# options that would work, let's just remove all of them.
+if [ "$cc1" = 1 ]; then
+ extraAfter=()
+ extraBefore=()
+fi
+
# Optionally print debug info.
if (( "${NIX_DEBUG:-0}" >= 1 )); then
# Old bash workaround, see ld-wrapper for explanation.
diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix
index a4ece85e619..cf5593b915c 100644
--- a/pkgs/build-support/cc-wrapper/default.nix
+++ b/pkgs/build-support/cc-wrapper/default.nix
@@ -134,8 +134,6 @@ stdenv.mkDerivation {
installPhase =
''
- set -u
-
mkdir -p $out/bin $out/nix-support
wrap() {
@@ -224,8 +222,6 @@ stdenv.mkDerivation {
postFixup =
''
- set -u
-
# Backwards compatability for packages expecting this file, e.g. with
# `$NIX_CC/nix-support/dynamic-linker`.
#
diff --git a/pkgs/build-support/cc-wrapper/setup-hook.sh b/pkgs/build-support/cc-wrapper/setup-hook.sh
index 211b5063291..5b13f268309 100644
--- a/pkgs/build-support/cc-wrapper/setup-hook.sh
+++ b/pkgs/build-support/cc-wrapper/setup-hook.sh
@@ -54,8 +54,6 @@
# For more details, read the individual files where the mechanisms used to
# accomplish this will be individually documented.
-set -u
-
# Skip setup hook if we're neither a build-time dep, nor, temporarily, doing a
# native compile.
#
@@ -120,4 +118,3 @@ export NIX_HARDENING_ENABLE
# No local scope in sourced file
unset -v role_pre role_post
-set +u
diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix
index 83e21c8945d..37b25232b96 100644
--- a/pkgs/build-support/docker/default.nix
+++ b/pkgs/build-support/docker/default.nix
@@ -1,4 +1,5 @@
{
+ buildPackages,
cacert,
callPackage,
closureInfo,
@@ -47,7 +48,7 @@ rec {
, imageDigest
, sha256
, os ? "linux"
- , arch ? "amd64"
+ , arch ? buildPackages.go.GOARCH
# This is used to set name to the pulled image
, finalImageName ? imageName
@@ -540,7 +541,7 @@ rec {
configJson = let
pure = writeText "${baseName}-config.json" (builtins.toJSON {
inherit created config;
- architecture = "amd64";
+ architecture = buildPackages.go.GOARCH;
os = "linux";
});
impure = runCommand "${baseName}-standard-dynamic-date.json"
@@ -658,7 +659,7 @@ rec {
baseJson = let
pure = writeText "${baseName}-config.json" (builtins.toJSON {
inherit created config;
- architecture = "amd64";
+ architecture = buildPackages.go.GOARCH;
os = "linux";
});
impure = runCommand "${baseName}-config.json"
diff --git a/pkgs/build-support/emacs/setup-hook.sh b/pkgs/build-support/emacs/setup-hook.sh
index e1db3e828fd..b210511d670 100644
--- a/pkgs/build-support/emacs/setup-hook.sh
+++ b/pkgs/build-support/emacs/setup-hook.sh
@@ -1,11 +1,13 @@
addEmacsVars () {
if test -d $1/share/emacs/site-lisp; then
- export EMACSLOADPATH="$1/share/emacs/site-lisp:$EMACSLOADPATH"
+ # it turns out, that the trailing : is actually required
+ # see https://www.gnu.org/software/emacs/manual/html_node/elisp/Library-Search.html
+ export EMACSLOADPATH="$1/share/emacs/site-lisp:${EMACSLOADPATH-}"
fi
}
# If this is for a wrapper derivation, emacs and the dependencies are all
# run-time dependencies. If this is for precompiling packages into bytecode,
# emacs is a compile-time dependency of the package.
-addEnvHooks "$targetOffset" addEmacsVars
+addEnvHooks "$hostOffset" addEmacsVars
addEnvHooks "$targetOffset" addEmacsVars
diff --git a/pkgs/build-support/emacs/wrapper.nix b/pkgs/build-support/emacs/wrapper.nix
index b242672df10..25f068cd3fa 100644
--- a/pkgs/build-support/emacs/wrapper.nix
+++ b/pkgs/build-support/emacs/wrapper.nix
@@ -32,7 +32,7 @@ in customEmacsPackages.emacsWithPackages (epkgs: [ epkgs.evil epkgs.magit ])
*/
-{ lib, lndir, makeWrapper, runCommand, stdenv }: self:
+{ lib, lndir, makeWrapper, runCommand }: self:
with lib; let inherit (self) emacs; in
@@ -45,105 +45,110 @@ let
else packagesFun;
in
-stdenv.mkDerivation {
- name = (appendToName "with-packages" emacs).name;
- nativeBuildInputs = [ emacs lndir makeWrapper ];
- inherit emacs explicitRequires;
+runCommand
+ (appendToName "with-packages" emacs).name
+ {
+ nativeBuildInputs = [ emacs lndir makeWrapper ];
+ inherit emacs explicitRequires;
- # Store all paths we want to add to emacs here, so that we only need to add
- # one path to the load lists
- deps = runCommand "emacs-packages-deps"
- { inherit explicitRequires lndir emacs; }
- ''
- findInputsOld() {
- local pkg="$1"; shift
- local var="$1"; shift
- local propagatedBuildInputsFiles=("$@")
+ preferLocalBuild = true;
+ allowSubstitutes = false;
- # TODO(@Ericson2314): Restore using associative array once Darwin
- # nix-shell doesn't use impure bash. This should replace the O(n)
- # case with an O(1) hash map lookup, assuming bash is implemented
- # well :D.
- local varSlice="$var[*]"
- # ''${..-} to hack around old bash empty array problem
- case "''${!varSlice-}" in
- *" $pkg "*) return 0 ;;
- esac
- unset -v varSlice
+ # Store all paths we want to add to emacs here, so that we only need to add
+ # one path to the load lists
+ deps = runCommand "emacs-packages-deps"
+ { inherit explicitRequires lndir emacs; }
+ ''
+ findInputsOld() {
+ local pkg="$1"; shift
+ local var="$1"; shift
+ local propagatedBuildInputsFiles=("$@")
- eval "$var"'+=("$pkg")'
+ # TODO(@Ericson2314): Restore using associative array once Darwin
+ # nix-shell doesn't use impure bash. This should replace the O(n)
+ # case with an O(1) hash map lookup, assuming bash is implemented
+ # well :D.
+ local varSlice="$var[*]"
+ # ''${..-} to hack around old bash empty array problem
+ case "''${!varSlice-}" in
+ *" $pkg "*) return 0 ;;
+ esac
+ unset -v varSlice
- if ! [ -e "$pkg" ]; then
- echo "build input $pkg does not exist" >&2
- exit 1
- fi
+ eval "$var"'+=("$pkg")'
- local file
- for file in "''${propagatedBuildInputsFiles[@]}"; do
- file="$pkg/nix-support/$file"
- [[ -f "$file" ]] || continue
+ if ! [ -e "$pkg" ]; then
+ echo "build input $pkg does not exist" >&2
+ exit 1
+ fi
- local pkgNext
- for pkgNext in $(< "$file"); do
- findInputsOld "$pkgNext" "$var" "''${propagatedBuildInputsFiles[@]}"
- done
- done
- }
- mkdir -p $out/bin
- mkdir -p $out/share/emacs/site-lisp
+ local file
+ for file in "''${propagatedBuildInputsFiles[@]}"; do
+ file="$pkg/nix-support/$file"
+ [[ -f "$file" ]] || continue
- local requires
- for pkg in $explicitRequires; do
- findInputsOld $pkg requires propagated-user-env-packages
- done
- # requires now holds all requested packages and their transitive dependencies
+ local pkgNext
+ for pkgNext in $(< "$file"); do
+ findInputsOld "$pkgNext" "$var" "''${propagatedBuildInputsFiles[@]}"
+ done
+ done
+ }
+ mkdir -p $out/bin
+ mkdir -p $out/share/emacs/site-lisp
- linkPath() {
- local pkg=$1
- local origin_path=$2
- local dest_path=$3
+ local requires
+ for pkg in $explicitRequires; do
+ findInputsOld $pkg requires propagated-user-env-packages
+ done
+ # requires now holds all requested packages and their transitive dependencies
- # Add the path to the search path list, but only if it exists
- if [[ -d "$pkg/$origin_path" ]]; then
- $lndir/bin/lndir -silent "$pkg/$origin_path" "$out/$dest_path"
- fi
- }
+ linkPath() {
+ local pkg=$1
+ local origin_path=$2
+ local dest_path=$3
- linkEmacsPackage() {
- linkPath "$1" "bin" "bin"
- linkPath "$1" "share/emacs/site-lisp" "share/emacs/site-lisp"
- }
+ # Add the path to the search path list, but only if it exists
+ if [[ -d "$pkg/$origin_path" ]]; then
+ $lndir/bin/lndir -silent "$pkg/$origin_path" "$out/$dest_path"
+ fi
+ }
- # Iterate over the array of inputs (avoiding nix's own interpolation)
- for pkg in "''${requires[@]}"; do
- linkEmacsPackage $pkg
- done
+ linkEmacsPackage() {
+ linkPath "$1" "bin" "bin"
+ linkPath "$1" "share/emacs/site-lisp" "share/emacs/site-lisp"
+ }
- siteStart="$out/share/emacs/site-lisp/site-start.el"
- siteStartByteCompiled="$siteStart"c
- subdirs="$out/share/emacs/site-lisp/subdirs.el"
- subdirsByteCompiled="$subdirs"c
+ # Iterate over the array of inputs (avoiding nix's own interpolation)
+ for pkg in "''${requires[@]}"; do
+ linkEmacsPackage $pkg
+ done
- # A dependency may have brought the original siteStart or subdirs, delete
- # it and create our own
- # Begin the new site-start.el by loading the original, which sets some
- # NixOS-specific paths. Paths are searched in the reverse of the order
- # they are specified in, so user and system profile paths are searched last.
- rm -f $siteStart $siteStartByteCompiled $subdirs $subdirsByteCompiled
- cat >"$siteStart" <"$siteStart" <).success
- then builtins.toString
- else null;
-
- GIT_SSH = let
- config = let
- sshConfigFile = if (builtins.tryEval ).success
- then
- else builtins.trace ''
- Please set your nix-path such that ssh-config-file points to a file that will allow ssh to access private repositories. The builder will not be able to see any running ssh agent sessions unless ssh-auth-sock is also set in the nix-path.
-
- Note that the config file and any keys it points to must be readable by the build user, which depending on your nix configuration means making it readable by the build-users-group, the user of the running nix-daemon, or the user calling the nix command which started the build. Similarly, if using an ssh agent ssh-auth-sock must point to a socket the build user can access.
-
- You may need StrictHostKeyChecking=no in the config file. Since ssh will refuse to use a group-readable private key, if using build-users you will likely want to use something like IdentityFile /some/directory/%u/key and have a directory for each build user accessible to that user.
- '' "/var/lib/empty/config";
- in builtins.toString sshConfigFile;
-
- ssh-wrapped = runCommand "fetchgit-ssh" {
- nativeBuildInputs = [ makeWrapper ];
- } ''
- mkdir -p $out/bin
- makeWrapper ${openssh}/bin/ssh $out/bin/ssh --prefix PATH : "$out/bin" --add-flags "-F ${config}" "$@"
- '';
- in "${ssh-wrapped}/bin/ssh";
-})
diff --git a/pkgs/build-support/kernel/make-initrd.nix b/pkgs/build-support/kernel/make-initrd.nix
index 7a5642e565d..ed5dbdaee17 100644
--- a/pkgs/build-support/kernel/make-initrd.nix
+++ b/pkgs/build-support/kernel/make-initrd.nix
@@ -12,26 +12,26 @@
# `contents = {object = ...; symlink = /init;}' is a typical
# argument.
-{ stdenv, perl, cpio, contents, ubootTools
+{ stdenvNoCC, perl, cpio, contents, ubootTools
, name ? "initrd"
, compressor ? "gzip -9n"
, prepend ? []
, lib
}:
-let
+let
# !!! Move this into a public lib function, it is probably useful for others
- toValidStoreName = x: with builtins;
+ toValidStoreName = x: with builtins;
lib.concatStringsSep "-" (filter (x: !(isList x)) (split "[^a-zA-Z0-9_=.?-]+" x));
-in stdenv.mkDerivation rec {
+in stdenvNoCC.mkDerivation rec {
inherit name;
builder = ./make-initrd.sh;
- makeUInitrd = stdenv.hostPlatform.platform.kernelTarget == "uImage";
+ makeUInitrd = stdenvNoCC.hostPlatform.platform.kernelTarget == "uImage";
nativeBuildInputs = [ perl cpio ]
- ++ stdenv.lib.optional makeUInitrd ubootTools;
+ ++ stdenvNoCC.lib.optional makeUInitrd ubootTools;
# !!! should use XML.
objects = map (x: x.object) contents;
@@ -42,12 +42,11 @@ in stdenv.mkDerivation rec {
# Note: we don't use closureInfo yet, as that won't build with nix-1.x.
# See #36268.
exportReferencesGraph =
- lib.zipListsWith
- (x: i: [("closure-${toValidStoreName (baseNameOf x.symlink)}-${toString i}") x.object])
- contents
+ lib.zipListsWith
+ (x: i: [("closure-${toValidStoreName (baseNameOf x.symlink)}-${toString i}") x.object])
+ contents
(lib.range 0 (lib.length contents - 1));
pathsFromGraph = ./paths-from-graph.pl;
inherit compressor prepend;
}
-
diff --git a/pkgs/build-support/nix-prefetch-github/default.nix b/pkgs/build-support/nix-prefetch-github/default.nix
deleted file mode 100644
index 10a6daaf53f..00000000000
--- a/pkgs/build-support/nix-prefetch-github/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ python3
-, fetchFromGitHub
-, stdenv
-}:
-
-python3.pkgs.buildPythonApplication rec {
- pname = "nix-prefetch-github";
- version = "2.3.1";
-
- src = fetchFromGitHub {
- owner = "seppeljordan";
- repo = "nix-prefetch-github";
- rev = "v${version}";
- sha256 = "13wvq13iiva97a16kahfpxar5ppb015nnbn7d4v9s9jyxdickc2c";
- };
-
- propagatedBuildInputs = with python3.pkgs; [
- attrs
- click
- effect
- jinja2
- ];
- meta = with stdenv.lib; {
- description = "Prefetch sources from github";
- homepage = https://github.com/seppeljordan/nix-prefetch-github;
- license = licenses.gpl3;
- maintainers = [ maintainers.seppeljordan ];
- };
-}
diff --git a/pkgs/build-support/nuke-references/default.nix b/pkgs/build-support/nuke-references/default.nix
index 8f976ad462c..d894b56d366 100644
--- a/pkgs/build-support/nuke-references/default.nix
+++ b/pkgs/build-support/nuke-references/default.nix
@@ -3,10 +3,11 @@
# path (/nix/store/eeee...). This is useful for getting rid of
# dependencies that you know are not actually needed at runtime.
-{ stdenv, perl }:
+{ stdenvNoCC, perl }:
-stdenv.mkDerivation {
+stdenvNoCC.mkDerivation {
name = "nuke-references";
builder = ./builder.sh;
+ # FIXME: get rid of perl dependency.
inherit perl;
}
diff --git a/pkgs/build-support/ocaml/default.nix b/pkgs/build-support/ocaml/default.nix
index cc2001c66e2..3957b955a2c 100644
--- a/pkgs/build-support/ocaml/default.nix
+++ b/pkgs/build-support/ocaml/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation (args // {
setupHook = if setupHook == null && hasSharedObjects
then writeText "setupHook.sh" ''
- export CAML_LD_LIBRARY_PATH="''${CAML_LD_LIBRARY_PATH}''${CAML_LD_LIBRARY_PATH:+:}''$1/lib/ocaml/${ocaml.version}/site-lib/${name}/"
+ export CAML_LD_LIBRARY_PATH="''${CAML_LD_LIBRARY_PATH-}''${CAML_LD_LIBRARY_PATH:+:}''$1/lib/ocaml/${ocaml.version}/site-lib/${name}/"
''
else setupHook;
diff --git a/pkgs/build-support/rust/build-rust-crate/build-crate.nix b/pkgs/build-support/rust/build-rust-crate/build-crate.nix
index 2999c3d4c1d..e0a52e62561 100644
--- a/pkgs/build-support/rust/build-rust-crate/build-crate.nix
+++ b/pkgs/build-support/rust/build-rust-crate/build-crate.nix
@@ -1,13 +1,13 @@
{ lib, stdenv, echo_build_heading, noisily, makeDeps }:
{ crateName,
dependencies,
- crateFeatures, libName, release, libPath,
+ crateFeatures, crateRenames, libName, release, libPath,
crateType, metadata, crateBin, hasCrateBin,
extraRustcOpts, verbose, colors }:
let
- deps = makeDeps dependencies;
+ deps = makeDeps dependencies crateRenames;
rustcOpts =
lib.lists.foldl' (opts: opt: opts + " " + opt)
(if release then "-C opt-level=3" else "-C debuginfo=2")
diff --git a/pkgs/build-support/rust/build-rust-crate/configure-crate.nix b/pkgs/build-support/rust/build-rust-crate/configure-crate.nix
index 169adcf2d43..2c7226b0962 100644
--- a/pkgs/build-support/rust/build-rust-crate/configure-crate.nix
+++ b/pkgs/build-support/rust/build-rust-crate/configure-crate.nix
@@ -9,6 +9,7 @@
, crateHomepage
, crateFeatures
, crateName
+, crateRenames
, crateVersion
, extraLinkFlags
, extraRustcOpts
@@ -20,11 +21,11 @@
, workspace_member }:
let version_ = lib.splitString "-" crateVersion;
versionPre = if lib.tail version_ == [] then "" else builtins.elemAt version_ 1;
- version = lib.splitString "." (lib.head version_);
+ version = lib.splitVersion (lib.head version_);
rustcOpts = lib.lists.foldl' (opts: opt: opts + " " + opt)
(if release then "-C opt-level=3" else "-C debuginfo=2")
(["-C codegen-units=$NIX_BUILD_CORES"] ++ extraRustcOpts);
- buildDeps = makeDeps buildDependencies;
+ buildDeps = makeDeps buildDependencies crateRenames;
authors = lib.concatStringsSep ":" crateAuthors;
optLevel = if release then 3 else 0;
completeDepsDir = lib.concatStringsSep " " completeDeps;
@@ -149,4 +150,3 @@ in ''
fi
runHook postConfigure
''
-
diff --git a/pkgs/build-support/rust/build-rust-crate/default.nix b/pkgs/build-support/rust/build-rust-crate/default.nix
index acb2ee63cce..6534e21c0f0 100644
--- a/pkgs/build-support/rust/build-rust-crate/default.nix
+++ b/pkgs/build-support/rust/build-rust-crate/default.nix
@@ -13,13 +13,18 @@ let
then "macos"
else stdenv.hostPlatform.parsed.kernel.name;
- makeDeps = dependencies:
+ makeDeps = dependencies: crateRenames:
(lib.concatMapStringsSep " " (dep:
- let extern = lib.strings.replaceStrings ["-"] ["_"] dep.libName; in
- (if lib.lists.any (x: x == "lib") dep.crateType then
- " --extern ${extern}=${dep.out}/lib/lib${extern}-${dep.metadata}.rlib"
+ let
+ extern = lib.strings.replaceStrings ["-"] ["_"] dep.libName;
+ name = if builtins.hasAttr dep.crateName crateRenames then
+ lib.strings.replaceStrings ["-"] ["_"] crateRenames.${dep.crateName}
+ else
+ extern;
+ in (if lib.lists.any (x: x == "lib") dep.crateType then
+ " --extern ${name}=${dep.out}/lib/lib${extern}-${dep.metadata}.rlib"
else
- " --extern ${extern}=${dep.out}/lib/lib${extern}-${dep.metadata}${stdenv.hostPlatform.extensions.sharedLibrary}")
+ " --extern ${name}=${dep.out}/lib/lib${extern}-${dep.metadata}${stdenv.hostPlatform.extensions.sharedLibrary}")
) dependencies);
echo_build_heading = colors: ''
@@ -60,7 +65,7 @@ let
in
crate_: lib.makeOverridable ({ rust, release, verbose, features, buildInputs, crateOverrides,
- dependencies, buildDependencies,
+ dependencies, buildDependencies, crateRenames,
extraRustcOpts,
preUnpack, postUnpack, prePatch, patches, postPatch,
preConfigure, postConfigure, preBuild, postBuild, preInstall, postInstall }:
@@ -70,7 +75,7 @@ let crate = crate_ // (lib.attrByPath [ crate_.crateName ] (attr: {}) crateOverr
buildDependencies_ = buildDependencies;
processedAttrs = [
"src" "buildInputs" "crateBin" "crateLib" "libName" "libPath"
- "buildDependencies" "dependencies" "features"
+ "buildDependencies" "dependencies" "features" "crateRenames"
"crateName" "version" "build" "authors" "colors" "edition"
];
extraDerivationAttrs = lib.filterAttrs (n: v: ! lib.elem n processedAttrs) crate;
@@ -143,13 +148,13 @@ stdenv.mkDerivation (rec {
configurePhase = configureCrate {
inherit crateName buildDependencies completeDeps completeBuildDeps crateDescription
- crateFeatures libName build workspace_member release libPath crateVersion
+ crateFeatures crateRenames libName build workspace_member release libPath crateVersion
extraLinkFlags extraRustcOpts
crateAuthors crateHomepage verbose colors target_os;
};
buildPhase = buildCrate {
inherit crateName dependencies
- crateFeatures libName release libPath crateType
+ crateFeatures crateRenames libName release libPath crateType
metadata crateBin hasCrateBin verbose colors
extraRustcOpts;
};
@@ -177,4 +182,5 @@ stdenv.mkDerivation (rec {
postInstall = crate_.postInstall or "";
dependencies = crate_.dependencies or [];
buildDependencies = crate_.buildDependencies or [];
+ crateRenames = crate_.crateRenames or {};
}
diff --git a/pkgs/build-support/rust/build-rust-crate/test/default.nix b/pkgs/build-support/rust/build-rust-crate/test/default.nix
index f3f9ef377c8..4a90cf442a4 100644
--- a/pkgs/build-support/rust/build-rust-crate/test/default.nix
+++ b/pkgs/build-support/rust/build-rust-crate/test/default.nix
@@ -22,6 +22,13 @@ let
}
'';
+ mkBinExtern = name: extern: mkFile name ''
+ extern crate ${extern};
+ fn main() {
+ assert_eq!(${extern}::test(), 23);
+ }
+ '';
+
mkLib = name: mkFile name "pub fn test() -> i32 { return 23; }";
mkTest = crateArgs: let
@@ -34,12 +41,7 @@ let
libTestBinary = if !isLib then null else mkCrate {
crateName = "run-test-${crateName}";
dependencies = [ crate ];
- src = mkFile "src/main.rs" ''
- extern crate ${libName};
- fn main() {
- assert_eq!(${libName}::test(), 23);
- }
- '';
+ src = mkBinExtern "src/main.rs" libName;
};
in runCommand "run-buildRustCrate-${crateName}-test" {
@@ -71,6 +73,18 @@ let
};
crateBinNoPath3 = { crateBin = [{ name = "my-binary5"; }]; src = mkBin "src/bin/main.rs"; };
crateBinNoPath4 = { crateBin = [{ name = "my-binary6"; }]; src = mkBin "src/main.rs";};
+ crateBinRename1 = {
+ crateBin = [{ name = "my-binary-rename1"; }];
+ src = mkBinExtern "src/main.rs" "foo_renamed";
+ dependencies = [ (mkCrate { crateName = "foo"; src = mkLib "src/lib.rs"; }) ];
+ crateRenames = { "foo" = "foo_renamed"; };
+ };
+ crateBinRename2 = {
+ crateBin = [{ name = "my-binary-rename2"; }];
+ src = mkBinExtern "src/main.rs" "foo_renamed";
+ dependencies = [ (mkCrate { crateName = "foo"; libName = "foolib"; src = mkLib "src/lib.rs"; }) ];
+ crateRenames = { "foo" = "foo_renamed"; };
+ };
};
brotliCrates = (callPackage ./brotli-crates.nix {});
in lib.mapAttrs (key: value: mkTest (value // lib.optionalAttrs (!value?crateName) { crateName = key; })) cases // {
diff --git a/pkgs/build-support/rust/cargo-vendor/cargo-vendor.nix b/pkgs/build-support/rust/cargo-vendor/cargo-vendor.nix
deleted file mode 100644
index 9af5cbe652c..00000000000
--- a/pkgs/build-support/rust/cargo-vendor/cargo-vendor.nix
+++ /dev/null
@@ -1,693 +0,0 @@
-# Generated by carnix 0.10.0: carnix generate-nix --src .
-{ lib, buildPlatform, buildRustCrate, buildRustCrateHelpers, cratesIO, fetchgit }:
-with buildRustCrateHelpers;
-let inherit (lib.lists) fold;
- inherit (lib.attrsets) recursiveUpdate;
-in
-rec {
- crates = cratesIO // rec {
-# cargo-vendor-0.1.23
-
- crates.cargo_vendor."0.1.23" = deps: { features?(features_.cargo_vendor."0.1.23" deps {}) }: buildRustCrate {
- crateName = "cargo-vendor";
- version = "0.1.23";
- description = "A Cargo subcommand to vendor all crates.io dependencies onto the local\nfilesystem.\n";
- authors = [ "Alex Crichton " ];
- edition = "2018";
- src = exclude [ ".git" "target" ] ./.;
- dependencies = mapFeatures features ([
- (cratesIO.crates."cargo"."${deps."cargo_vendor"."0.1.23"."cargo"}" deps)
- (cratesIO.crates."docopt"."${deps."cargo_vendor"."0.1.23"."docopt"}" deps)
- (cratesIO.crates."env_logger"."${deps."cargo_vendor"."0.1.23"."env_logger"}" deps)
- (cratesIO.crates."failure"."${deps."cargo_vendor"."0.1.23"."failure"}" deps)
- (cratesIO.crates."serde"."${deps."cargo_vendor"."0.1.23"."serde"}" deps)
- (cratesIO.crates."serde_json"."${deps."cargo_vendor"."0.1.23"."serde_json"}" deps)
- (cratesIO.crates."toml"."${deps."cargo_vendor"."0.1.23"."toml"}" deps)
- ]
- ++ (if features.cargo_vendor."0.1.23".openssl or false then [ (cratesIO.crates.openssl."${deps."cargo_vendor"."0.1.23".openssl}" deps) ] else []));
- features = mkFeatures (features."cargo_vendor"."0.1.23" or {});
- };
- features_.cargo_vendor."0.1.23" = deps: f: updateFeatures f (rec {
- cargo."${deps.cargo_vendor."0.1.23".cargo}".default = true;
- cargo_vendor."0.1.23".default = (f.cargo_vendor."0.1.23".default or true);
- docopt."${deps.cargo_vendor."0.1.23".docopt}".default = true;
- env_logger."${deps.cargo_vendor."0.1.23".env_logger}".default = true;
- failure."${deps.cargo_vendor."0.1.23".failure}".default = true;
- openssl = fold recursiveUpdate {} [
- { "${deps.cargo_vendor."0.1.23".openssl}"."vendored" =
- (f.openssl."${deps.cargo_vendor."0.1.23".openssl}"."vendored" or false) ||
- (cargo_vendor."0.1.23"."vendored-openssl" or false) ||
- (f."cargo_vendor"."0.1.23"."vendored-openssl" or false); }
- { "${deps.cargo_vendor."0.1.23".openssl}".default = true; }
- ];
- serde = fold recursiveUpdate {} [
- { "${deps.cargo_vendor."0.1.23".serde}"."derive" = true; }
- { "${deps.cargo_vendor."0.1.23".serde}".default = true; }
- ];
- serde_json."${deps.cargo_vendor."0.1.23".serde_json}".default = true;
- toml."${deps.cargo_vendor."0.1.23".toml}".default = true;
- }) [
- (cratesIO.features_.cargo."${deps."cargo_vendor"."0.1.23"."cargo"}" deps)
- (cratesIO.features_.docopt."${deps."cargo_vendor"."0.1.23"."docopt"}" deps)
- (cratesIO.features_.env_logger."${deps."cargo_vendor"."0.1.23"."env_logger"}" deps)
- (cratesIO.features_.failure."${deps."cargo_vendor"."0.1.23"."failure"}" deps)
- (cratesIO.features_.openssl."${deps."cargo_vendor"."0.1.23"."openssl"}" deps)
- (cratesIO.features_.serde."${deps."cargo_vendor"."0.1.23"."serde"}" deps)
- (cratesIO.features_.serde_json."${deps."cargo_vendor"."0.1.23"."serde_json"}" deps)
- (cratesIO.features_.toml."${deps."cargo_vendor"."0.1.23"."toml"}" deps)
- ];
-
-
-# end
-
- };
-
- cargo_vendor = crates.crates.cargo_vendor."0.1.23" deps;
- __all = [ (cargo_vendor {}) ];
- deps.adler32."1.0.3" = {};
- deps.aho_corasick."0.7.3" = {
- memchr = "2.2.0";
- };
- deps.ansi_term."0.11.0" = {
- winapi = "0.3.7";
- };
- deps.atty."0.2.11" = {
- termion = "1.5.1";
- libc = "0.2.51";
- winapi = "0.3.7";
- };
- deps.autocfg."0.1.2" = {};
- deps.backtrace."0.3.15" = {
- cfg_if = "0.1.7";
- rustc_demangle = "0.1.14";
- autocfg = "0.1.2";
- backtrace_sys = "0.1.28";
- libc = "0.2.51";
- winapi = "0.3.7";
- };
- deps.backtrace_sys."0.1.28" = {
- libc = "0.2.51";
- cc = "1.0.35";
- };
- deps.bitflags."1.0.4" = {};
- deps.bstr."0.1.2" = {
- memchr = "2.2.0";
- };
- deps.build_const."0.2.1" = {};
- deps.byteorder."1.3.1" = {};
- deps.bytes."0.4.12" = {
- byteorder = "1.3.1";
- iovec = "0.1.2";
- };
- deps.bytesize."1.0.0" = {};
- deps.cargo."0.35.0" = {
- atty = "0.2.11";
- byteorder = "1.3.1";
- bytesize = "1.0.0";
- clap = "2.33.0";
- crates_io = "0.23.0";
- crossbeam_utils = "0.6.5";
- crypto_hash = "0.3.3";
- curl = "0.4.21";
- curl_sys = "0.4.18";
- env_logger = "0.6.1";
- failure = "0.1.5";
- filetime = "0.2.4";
- flate2 = "1.0.7";
- fs2 = "0.4.3";
- git2 = "0.8.0";
- git2_curl = "0.9.0";
- glob = "0.2.11";
- hex = "0.3.2";
- home = "0.3.4";
- ignore = "0.4.7";
- im_rc = "12.3.4";
- jobserver = "0.1.13";
- lazy_static = "1.3.0";
- lazycell = "1.2.1";
- libc = "0.2.51";
- libgit2_sys = "0.7.11";
- log = "0.4.6";
- num_cpus = "1.10.0";
- opener = "0.3.2";
- rustc_workspace_hack = "1.0.0";
- rustfix = "0.4.5";
- same_file = "1.0.4";
- semver = "0.9.0";
- serde = "1.0.90";
- serde_ignored = "0.0.4";
- serde_json = "1.0.39";
- shell_escape = "0.1.4";
- tar = "0.4.22";
- tempfile = "3.0.7";
- termcolor = "1.0.4";
- toml = "0.4.10";
- unicode_width = "0.1.5";
- url = "1.7.2";
- url_serde = "0.2.0";
- core_foundation = "0.6.4";
- fwdansi = "1.0.1";
- miow = "0.3.3";
- winapi = "0.3.7";
- };
- deps.cargo_vendor."0.1.23" = {
- cargo = "0.35.0";
- docopt = "1.1.0";
- env_logger = "0.6.1";
- failure = "0.1.5";
- openssl = "0.10.20";
- serde = "1.0.90";
- serde_json = "1.0.39";
- toml = "0.5.0";
- };
- deps.cc."1.0.35" = {};
- deps.cfg_if."0.1.7" = {};
- deps.clap."2.33.0" = {
- atty = "0.2.11";
- bitflags = "1.0.4";
- strsim = "0.8.0";
- textwrap = "0.11.0";
- unicode_width = "0.1.5";
- vec_map = "0.8.1";
- ansi_term = "0.11.0";
- };
- deps.cloudabi."0.0.3" = {
- bitflags = "1.0.4";
- };
- deps.commoncrypto."0.2.0" = {
- commoncrypto_sys = "0.2.0";
- };
- deps.commoncrypto_sys."0.2.0" = {
- libc = "0.2.51";
- };
- deps.core_foundation."0.6.4" = {
- core_foundation_sys = "0.6.2";
- libc = "0.2.51";
- };
- deps.core_foundation_sys."0.6.2" = {};
- deps.crates_io."0.23.0" = {
- curl = "0.4.21";
- failure = "0.1.5";
- http = "0.1.17";
- serde = "1.0.90";
- serde_derive = "1.0.90";
- serde_json = "1.0.39";
- url = "1.7.2";
- };
- deps.crc."1.8.1" = {
- build_const = "0.2.1";
- };
- deps.crc32fast."1.2.0" = {
- cfg_if = "0.1.7";
- };
- deps.crossbeam_channel."0.3.8" = {
- crossbeam_utils = "0.6.5";
- smallvec = "0.6.9";
- };
- deps.crossbeam_utils."0.6.5" = {
- cfg_if = "0.1.7";
- lazy_static = "1.3.0";
- };
- deps.crypto_hash."0.3.3" = {
- hex = "0.3.2";
- commoncrypto = "0.2.0";
- openssl = "0.10.20";
- winapi = "0.3.7";
- };
- deps.curl."0.4.21" = {
- curl_sys = "0.4.18";
- libc = "0.2.51";
- socket2 = "0.3.8";
- openssl_probe = "0.1.2";
- openssl_sys = "0.9.43";
- kernel32_sys = "0.2.2";
- schannel = "0.1.15";
- winapi = "0.2.8";
- };
- deps.curl_sys."0.4.18" = {
- libc = "0.2.51";
- libnghttp2_sys = "0.1.1";
- libz_sys = "1.0.25";
- cc = "1.0.35";
- pkg_config = "0.3.14";
- openssl_sys = "0.9.43";
- winapi = "0.3.7";
- };
- deps.docopt."1.1.0" = {
- lazy_static = "1.3.0";
- regex = "1.1.6";
- serde = "1.0.90";
- strsim = "0.9.1";
- };
- deps.either."1.5.2" = {};
- deps.env_logger."0.6.1" = {
- atty = "0.2.11";
- humantime = "1.2.0";
- log = "0.4.6";
- regex = "1.1.6";
- termcolor = "1.0.4";
- };
- deps.failure."0.1.5" = {
- backtrace = "0.3.15";
- failure_derive = "0.1.5";
- };
- deps.failure_derive."0.1.5" = {
- proc_macro2 = "0.4.27";
- quote = "0.6.12";
- syn = "0.15.32";
- synstructure = "0.10.1";
- };
- deps.filetime."0.2.4" = {
- cfg_if = "0.1.7";
- redox_syscall = "0.1.54";
- libc = "0.2.51";
- };
- deps.flate2."1.0.7" = {
- crc32fast = "1.2.0";
- libc = "0.2.51";
- libz_sys = "1.0.25";
- miniz_sys = "0.1.11";
- miniz_oxide_c_api = "0.2.1";
- };
- deps.fnv."1.0.6" = {};
- deps.foreign_types."0.3.2" = {
- foreign_types_shared = "0.1.1";
- };
- deps.foreign_types_shared."0.1.1" = {};
- deps.fs2."0.4.3" = {
- libc = "0.2.51";
- winapi = "0.3.7";
- };
- deps.fuchsia_cprng."0.1.1" = {};
- deps.fwdansi."1.0.1" = {
- memchr = "2.2.0";
- termcolor = "1.0.4";
- };
- deps.git2."0.8.0" = {
- bitflags = "1.0.4";
- libc = "0.2.51";
- libgit2_sys = "0.7.11";
- log = "0.4.6";
- url = "1.7.2";
- openssl_probe = "0.1.2";
- openssl_sys = "0.9.43";
- };
- deps.git2_curl."0.9.0" = {
- curl = "0.4.21";
- git2 = "0.8.0";
- log = "0.4.6";
- url = "1.7.2";
- };
- deps.glob."0.2.11" = {};
- deps.globset."0.4.3" = {
- aho_corasick = "0.7.3";
- bstr = "0.1.2";
- fnv = "1.0.6";
- log = "0.4.6";
- regex = "1.1.6";
- };
- deps.hashbrown."0.1.8" = {
- byteorder = "1.3.1";
- scopeguard = "0.3.3";
- };
- deps.hex."0.3.2" = {};
- deps.home."0.3.4" = {
- scopeguard = "0.3.3";
- winapi = "0.3.7";
- };
- deps.http."0.1.17" = {
- bytes = "0.4.12";
- fnv = "1.0.6";
- itoa = "0.4.3";
- };
- deps.humantime."1.2.0" = {
- quick_error = "1.2.2";
- };
- deps.idna."0.1.5" = {
- matches = "0.1.8";
- unicode_bidi = "0.3.4";
- unicode_normalization = "0.1.8";
- };
- deps.ignore."0.4.7" = {
- crossbeam_channel = "0.3.8";
- globset = "0.4.3";
- lazy_static = "1.3.0";
- log = "0.4.6";
- memchr = "2.2.0";
- regex = "1.1.6";
- same_file = "1.0.4";
- thread_local = "0.3.6";
- walkdir = "2.2.7";
- winapi_util = "0.1.2";
- };
- deps.im_rc."12.3.4" = {
- sized_chunks = "0.1.3";
- typenum = "1.10.0";
- rustc_version = "0.2.3";
- };
- deps.iovec."0.1.2" = {
- libc = "0.2.51";
- winapi = "0.2.8";
- };
- deps.itertools."0.7.11" = {
- either = "1.5.2";
- };
- deps.itoa."0.4.3" = {};
- deps.jobserver."0.1.13" = {
- log = "0.4.6";
- libc = "0.2.51";
- rand = "0.6.5";
- };
- deps.kernel32_sys."0.2.2" = {
- winapi = "0.2.8";
- winapi_build = "0.1.1";
- };
- deps.lazy_static."1.3.0" = {};
- deps.lazycell."1.2.1" = {};
- deps.libc."0.2.51" = {};
- deps.libgit2_sys."0.7.11" = {
- curl_sys = "0.4.18";
- libc = "0.2.51";
- libssh2_sys = "0.2.11";
- libz_sys = "1.0.25";
- cc = "1.0.35";
- pkg_config = "0.3.14";
- openssl_sys = "0.9.43";
- };
- deps.libnghttp2_sys."0.1.1" = {
- libc = "0.2.51";
- cc = "1.0.35";
- };
- deps.libssh2_sys."0.2.11" = {
- libc = "0.2.51";
- libz_sys = "1.0.25";
- cc = "1.0.35";
- pkg_config = "0.3.14";
- openssl_sys = "0.9.43";
- };
- deps.libz_sys."1.0.25" = {
- libc = "0.2.51";
- cc = "1.0.35";
- pkg_config = "0.3.14";
- };
- deps.lock_api."0.1.5" = {
- scopeguard = "0.3.3";
- };
- deps.log."0.4.6" = {
- cfg_if = "0.1.7";
- };
- deps.matches."0.1.8" = {};
- deps.matrixmultiply."0.1.15" = {
- rawpointer = "0.1.0";
- };
- deps.memchr."2.2.0" = {};
- deps.miniz_sys."0.1.11" = {
- libc = "0.2.51";
- cc = "1.0.35";
- };
- deps.miniz_oxide."0.2.1" = {
- adler32 = "1.0.3";
- };
- deps.miniz_oxide_c_api."0.2.1" = {
- crc = "1.8.1";
- libc = "0.2.51";
- miniz_oxide = "0.2.1";
- cc = "1.0.35";
- };
- deps.miow."0.3.3" = {
- socket2 = "0.3.8";
- winapi = "0.3.7";
- };
- deps.ndarray."0.12.1" = {
- itertools = "0.7.11";
- matrixmultiply = "0.1.15";
- num_complex = "0.2.1";
- num_traits = "0.2.6";
- };
- deps.num_complex."0.2.1" = {
- num_traits = "0.2.6";
- };
- deps.num_traits."0.2.6" = {};
- deps.num_cpus."1.10.0" = {
- libc = "0.2.51";
- };
- deps.once_cell."0.1.8" = {
- parking_lot = "0.7.1";
- };
- deps.opener."0.3.2" = {
- failure = "0.1.5";
- failure_derive = "0.1.5";
- winapi = "0.3.7";
- };
- deps.openssl."0.10.20" = {
- bitflags = "1.0.4";
- cfg_if = "0.1.7";
- foreign_types = "0.3.2";
- lazy_static = "1.3.0";
- libc = "0.2.51";
- openssl_sys = "0.9.43";
- };
- deps.openssl_probe."0.1.2" = {};
- deps.openssl_src."111.2.1+1.1.1b" = {
- cc = "1.0.35";
- };
- deps.openssl_sys."0.9.43" = {
- libc = "0.2.51";
- cc = "1.0.35";
- openssl_src = "111.2.1+1.1.1b";
- pkg_config = "0.3.14";
- rustc_version = "0.2.3";
- };
- deps.parking_lot."0.7.1" = {
- lock_api = "0.1.5";
- parking_lot_core = "0.4.0";
- };
- deps.parking_lot_core."0.4.0" = {
- rand = "0.6.5";
- smallvec = "0.6.9";
- rustc_version = "0.2.3";
- libc = "0.2.51";
- winapi = "0.3.7";
- };
- deps.percent_encoding."1.0.1" = {};
- deps.pkg_config."0.3.14" = {};
- deps.proc_macro2."0.4.27" = {
- unicode_xid = "0.1.0";
- };
- deps.quick_error."1.2.2" = {};
- deps.quote."0.6.12" = {
- proc_macro2 = "0.4.27";
- };
- deps.rand."0.6.5" = {
- rand_chacha = "0.1.1";
- rand_core = "0.4.0";
- rand_hc = "0.1.0";
- rand_isaac = "0.1.1";
- rand_jitter = "0.1.3";
- rand_os = "0.1.3";
- rand_pcg = "0.1.2";
- rand_xorshift = "0.1.1";
- autocfg = "0.1.2";
- libc = "0.2.51";
- winapi = "0.3.7";
- };
- deps.rand_chacha."0.1.1" = {
- rand_core = "0.3.1";
- autocfg = "0.1.2";
- };
- deps.rand_core."0.3.1" = {
- rand_core = "0.4.0";
- };
- deps.rand_core."0.4.0" = {};
- deps.rand_hc."0.1.0" = {
- rand_core = "0.3.1";
- };
- deps.rand_isaac."0.1.1" = {
- rand_core = "0.3.1";
- };
- deps.rand_jitter."0.1.3" = {
- rand_core = "0.4.0";
- libc = "0.2.51";
- winapi = "0.3.7";
- };
- deps.rand_os."0.1.3" = {
- rand_core = "0.4.0";
- rdrand = "0.4.0";
- cloudabi = "0.0.3";
- fuchsia_cprng = "0.1.1";
- libc = "0.2.51";
- winapi = "0.3.7";
- };
- deps.rand_pcg."0.1.2" = {
- rand_core = "0.4.0";
- autocfg = "0.1.2";
- };
- deps.rand_xorshift."0.1.1" = {
- rand_core = "0.3.1";
- };
- deps.rawpointer."0.1.0" = {};
- deps.rdrand."0.4.0" = {
- rand_core = "0.3.1";
- };
- deps.redox_syscall."0.1.54" = {};
- deps.redox_termios."0.1.1" = {
- redox_syscall = "0.1.54";
- };
- deps.regex."1.1.6" = {
- aho_corasick = "0.7.3";
- memchr = "2.2.0";
- regex_syntax = "0.6.6";
- thread_local = "0.3.6";
- utf8_ranges = "1.0.2";
- };
- deps.regex_syntax."0.6.6" = {
- ucd_util = "0.1.3";
- };
- deps.remove_dir_all."0.5.1" = {
- winapi = "0.3.7";
- };
- deps.rustc_demangle."0.1.14" = {};
- deps.rustc_workspace_hack."1.0.0" = {};
- deps.rustc_version."0.2.3" = {
- semver = "0.9.0";
- };
- deps.rustfix."0.4.5" = {
- failure = "0.1.5";
- log = "0.4.6";
- serde = "1.0.90";
- serde_derive = "1.0.90";
- serde_json = "1.0.39";
- };
- deps.ryu."0.2.7" = {};
- deps.same_file."1.0.4" = {
- winapi_util = "0.1.2";
- };
- deps.schannel."0.1.15" = {
- lazy_static = "1.3.0";
- winapi = "0.3.7";
- };
- deps.scopeguard."0.3.3" = {};
- deps.semver."0.9.0" = {
- semver_parser = "0.7.0";
- serde = "1.0.90";
- };
- deps.semver_parser."0.7.0" = {};
- deps.serde."1.0.90" = {
- serde_derive = "1.0.90";
- };
- deps.serde_derive."1.0.90" = {
- proc_macro2 = "0.4.27";
- quote = "0.6.12";
- syn = "0.15.32";
- };
- deps.serde_ignored."0.0.4" = {
- serde = "1.0.90";
- };
- deps.serde_json."1.0.39" = {
- itoa = "0.4.3";
- ryu = "0.2.7";
- serde = "1.0.90";
- };
- deps.shell_escape."0.1.4" = {};
- deps.sized_chunks."0.1.3" = {
- typenum = "1.10.0";
- };
- deps.smallvec."0.6.9" = {};
- deps.socket2."0.3.8" = {
- cfg_if = "0.1.7";
- libc = "0.2.51";
- redox_syscall = "0.1.54";
- winapi = "0.3.7";
- };
- deps.strsim."0.8.0" = {};
- deps.strsim."0.9.1" = {
- hashbrown = "0.1.8";
- ndarray = "0.12.1";
- };
- deps.syn."0.15.32" = {
- proc_macro2 = "0.4.27";
- quote = "0.6.12";
- unicode_xid = "0.1.0";
- };
- deps.synstructure."0.10.1" = {
- proc_macro2 = "0.4.27";
- quote = "0.6.12";
- syn = "0.15.32";
- unicode_xid = "0.1.0";
- };
- deps.tar."0.4.22" = {
- filetime = "0.2.4";
- redox_syscall = "0.1.54";
- libc = "0.2.51";
- };
- deps.tempfile."3.0.7" = {
- cfg_if = "0.1.7";
- rand = "0.6.5";
- remove_dir_all = "0.5.1";
- redox_syscall = "0.1.54";
- libc = "0.2.51";
- winapi = "0.3.7";
- };
- deps.termcolor."1.0.4" = {
- wincolor = "1.0.1";
- };
- deps.termion."1.5.1" = {
- libc = "0.2.51";
- redox_syscall = "0.1.54";
- redox_termios = "0.1.1";
- };
- deps.textwrap."0.11.0" = {
- unicode_width = "0.1.5";
- };
- deps.thread_local."0.3.6" = {
- lazy_static = "1.3.0";
- };
- deps.toml."0.4.10" = {
- serde = "1.0.90";
- };
- deps.toml."0.5.0" = {
- serde = "1.0.90";
- };
- deps.typenum."1.10.0" = {};
- deps.ucd_util."0.1.3" = {};
- deps.unicode_bidi."0.3.4" = {
- matches = "0.1.8";
- };
- deps.unicode_normalization."0.1.8" = {
- smallvec = "0.6.9";
- };
- deps.unicode_width."0.1.5" = {};
- deps.unicode_xid."0.1.0" = {};
- deps.url."1.7.2" = {
- idna = "0.1.5";
- matches = "0.1.8";
- percent_encoding = "1.0.1";
- };
- deps.url_serde."0.2.0" = {
- serde = "1.0.90";
- url = "1.7.2";
- };
- deps.utf8_ranges."1.0.2" = {};
- deps.vcpkg."0.2.6" = {};
- deps.vec_map."0.8.1" = {};
- deps.walkdir."2.2.7" = {
- same_file = "1.0.4";
- winapi = "0.3.7";
- winapi_util = "0.1.2";
- };
- deps.winapi."0.2.8" = {};
- deps.winapi."0.3.7" = {
- winapi_i686_pc_windows_gnu = "0.4.0";
- winapi_x86_64_pc_windows_gnu = "0.4.0";
- };
- deps.winapi_build."0.1.1" = {};
- deps.winapi_i686_pc_windows_gnu."0.4.0" = {};
- deps.winapi_util."0.1.2" = {
- winapi = "0.3.7";
- };
- deps.winapi_x86_64_pc_windows_gnu."0.4.0" = {};
- deps.wincolor."1.0.1" = {
- winapi = "0.3.7";
- winapi_util = "0.1.2";
- };
-}
diff --git a/pkgs/build-support/rust/cargo-vendor/default.nix b/pkgs/build-support/rust/cargo-vendor/default.nix
deleted file mode 100644
index f252c6a6cb1..00000000000
--- a/pkgs/build-support/rust/cargo-vendor/default.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ callPackage, fetchFromGitHub }:
-
-((callPackage ./cargo-vendor.nix {}).cargo_vendor {}).overrideAttrs (attrs: {
- src = fetchFromGitHub {
- owner = "alexcrichton";
- repo = "cargo-vendor";
- rev = "9355661303ce2870d68a69d99953fce22581e31e";
- sha256 = "0d4j3r09am3ynwhczimzv39264f5xz37jxa9js123y46w5by3wd2";
- };
-})
diff --git a/pkgs/build-support/rust/default-crate-overrides.nix b/pkgs/build-support/rust/default-crate-overrides.nix
index b3ab9f5ba78..1c4fe9daead 100644
--- a/pkgs/build-support/rust/default-crate-overrides.nix
+++ b/pkgs/build-support/rust/default-crate-overrides.nix
@@ -15,11 +15,6 @@ in
++ stdenv.lib.optionals stdenv.isDarwin [ CoreFoundation Security libiconv ];
};
- cargo-vendor = attrs: {
- buildInputs = [ openssl zlib curl ]
- ++ stdenv.lib.optionals stdenv.isDarwin [ Security ];
- };
-
libz-sys = attrs: {
buildInputs = [ pkgconfig zlib ];
extraLinkFlags = ["-L${zlib.out}/lib"];
diff --git a/pkgs/build-support/rust/default.nix b/pkgs/build-support/rust/default.nix
index ce1bf800276..f0f949b2205 100644
--- a/pkgs/build-support/rust/default.nix
+++ b/pkgs/build-support/rust/default.nix
@@ -13,8 +13,12 @@
, cargoUpdateHook ? ""
, cargoDepsHook ? ""
, cargoBuildFlags ? []
+, # Set to true to verify if the cargo dependencies are up to date.
+ # This will change the value of cargoSha256.
+ verifyCargoDeps ? false
, buildType ? "release"
, meta ? {}
+, target ? null
, cargoVendorDir ? null
, ... } @ args:
@@ -26,6 +30,7 @@ let
cargoDeps = if cargoVendorDir == null
then fetchcargo {
inherit name src srcs sourceRoot cargoUpdateHook;
+ copyLockfile = verifyCargoDeps;
patches = cargoPatches;
sha256 = cargoSha256;
}
@@ -46,12 +51,13 @@ let
rustHostConfig = {
x86_64-pc-mingw32 = "x86_64-pc-windows-gnu";
}.${hostConfig} or hostConfig;
+ rustTarget = if target == null then rustHostConfig else target;
ccForBuild="${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}cc";
cxxForBuild="${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}c++";
ccForHost="${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc";
cxxForHost="${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++";
- releaseDir = "target/${rustHostConfig}/${buildType}";
+ releaseDir = "target/${rustTarget}/${buildType}";
in
stdenv.mkDerivation (args // {
@@ -84,13 +90,32 @@ stdenv.mkDerivation (args // {
[target."${stdenv.buildPlatform.config}"]
"linker" = "${ccForBuild}"
${stdenv.lib.optionalString (stdenv.buildPlatform.config != stdenv.hostPlatform.config) ''
- [target."${rustHostConfig}"]
+ [target."${rustTarget}"]
"linker" = "${ccForHost}"
+ ${# https://github.com/rust-lang/rust/issues/46651#issuecomment-433611633
+ stdenv.lib.optionalString (stdenv.hostPlatform.isMusl && stdenv.hostPlatform.isAarch64) ''
+ "rustflags" = [ "-C", "target-feature=+crt-static", "-C", "link-arg=-lgcc" ]
+ ''}
''}
EOF
unset cargoDepsCopy
export RUST_LOG=${logLevel}
+ '' + stdenv.lib.optionalString verifyCargoDeps ''
+ if ! diff source/Cargo.lock $cargoDeps/Cargo.lock ; then
+ echo
+ echo "ERROR: cargoSha256 is out of date."
+ echo
+ echo "Cargo.lock is not the same in $cargoDeps."
+ echo
+ echo "To fix the issue:"
+ echo '1. Use "1111111111111111111111111111111111111111111111111111" as the cargoSha256 value'
+ echo "2. Build the derivation and wait it to fail with a hash mismatch"
+ echo "3. Copy the 'got: sha256:' value back into the cargoSha256 field"
+ echo
+
+ exit 1
+ fi
'' + (args.postUnpack or "");
configurePhase = args.configurePhase or ''
@@ -110,7 +135,7 @@ stdenv.mkDerivation (args // {
"CXX_${stdenv.hostPlatform.config}"="${cxxForHost}" \
cargo build \
${stdenv.lib.optionalString (buildType == "release") "--release"} \
- --target ${rustHostConfig} \
+ --target ${rustTarget} \
--frozen ${concatStringsSep " " cargoBuildFlags}
)
@@ -126,8 +151,8 @@ stdenv.mkDerivation (args // {
checkPhase = args.checkPhase or ''
runHook preCheck
- echo "Running cargo test"
- cargo test
+ echo "Running cargo cargo test -- ''${checkFlags} ''${checkFlagsArray+''${checkFlagsArray[@]}}"
+ cargo test -- ''${checkFlags} ''${checkFlagsArray+"''${checkFlagsArray[@]}"}
runHook postCheck
'';
diff --git a/pkgs/build-support/rust/fetchcargo.nix b/pkgs/build-support/rust/fetchcargo.nix
index 4e6058383d4..a515ce9c6eb 100644
--- a/pkgs/build-support/rust/fetchcargo.nix
+++ b/pkgs/build-support/rust/fetchcargo.nix
@@ -1,4 +1,4 @@
-{ stdenv, cacert, git, cargo, cargo-vendor, python3 }:
+{ stdenv, cacert, git, cargo, python3 }:
let cargo-vendor-normalise = stdenv.mkDerivation {
name = "cargo-vendor-normalise";
src = ./cargo-vendor-normalise.py;
@@ -17,10 +17,19 @@ let cargo-vendor-normalise = stdenv.mkDerivation {
preferLocalBuild = true;
};
in
-{ name ? "cargo-deps", src, srcs, patches, sourceRoot, sha256, cargoUpdateHook ? "" }:
+{ name ? "cargo-deps"
+, src
+, srcs
+, patches
+, sourceRoot
+, sha256
+, cargoUpdateHook ? ""
+, # whenever to also include the Cargo.lock in the output
+ copyLockfile ? false
+}:
stdenv.mkDerivation {
name = "${name}-vendor";
- nativeBuildInputs = [ cacert cargo-vendor git cargo-vendor-normalise cargo ];
+ nativeBuildInputs = [ cacert git cargo-vendor-normalise cargo ];
inherit src srcs patches sourceRoot;
phases = "unpackPhase patchPhase installPhase";
@@ -37,6 +46,9 @@ stdenv.mkDerivation {
exit 1
fi
+ # Keep the original around for copyLockfile
+ cp Cargo.lock Cargo.lock.orig
+
export CARGO_HOME=$(mktemp -d cargo-home.XXX)
CARGO_CONFIG=$(mktemp cargo-config.XXXX)
@@ -52,6 +64,10 @@ stdenv.mkDerivation {
if ! cmp $CARGO_CONFIG ${./fetchcargo-default-config.toml} > /dev/null; then
install -D $CARGO_CONFIG $out/.cargo/config;
fi;
+
+ '' + stdenv.lib.optionalString copyLockfile ''
+ # add the Cargo.lock to allow hash invalidation
+ cp Cargo.lock.orig $out/Cargo.lock
'';
outputHashAlgo = "sha256";
diff --git a/pkgs/build-support/setup-hooks/audit-tmpdir.sh b/pkgs/build-support/setup-hooks/audit-tmpdir.sh
index 5264ce39851..c9dd32d1dd2 100644
--- a/pkgs/build-support/setup-hooks/audit-tmpdir.sh
+++ b/pkgs/build-support/setup-hooks/audit-tmpdir.sh
@@ -7,7 +7,7 @@
# the moment that would produce too many spurious errors (e.g. debug
# info or assertion messages that refer to $TMPDIR).
-fixupOutputHooks+=('if [ -z "$noAuditTmpdir" -a -e "$prefix" ]; then auditTmpdir "$prefix"; fi')
+fixupOutputHooks+=('if [[ -z "${noAuditTmpdir-}" && -e "$prefix" ]]; then auditTmpdir "$prefix"; fi')
auditTmpdir() {
local dir="$1"
diff --git a/pkgs/build-support/setup-hooks/auto-patchelf.sh b/pkgs/build-support/setup-hooks/auto-patchelf.sh
index 6af8eb1aed9..52c50091d08 100644
--- a/pkgs/build-support/setup-hooks/auto-patchelf.sh
+++ b/pkgs/build-support/setup-hooks/auto-patchelf.sh
@@ -228,7 +228,7 @@ autoPatchelf() {
# behaviour as fixupOutputHooks because the setup hook for patchelf is run in
# fixupOutput and the postFixup hook runs later.
postFixupHooks+=('
- if [ -z "$dontAutoPatchelf" ]; then
+ if [ -z "${dontAutoPatchelf-}" ]; then
autoPatchelf -- $(for output in $outputs; do
[ -e "${!output}" ] || continue
echo "${!output}"
diff --git a/pkgs/build-support/setup-hooks/compress-man-pages.sh b/pkgs/build-support/setup-hooks/compress-man-pages.sh
index d10a898d6e4..82e48cd8aa7 100644
--- a/pkgs/build-support/setup-hooks/compress-man-pages.sh
+++ b/pkgs/build-support/setup-hooks/compress-man-pages.sh
@@ -1,4 +1,4 @@
-fixupOutputHooks+=('if [ -z "$dontGzipMan" ]; then compressManPages "$prefix"; fi')
+fixupOutputHooks+=('if [ -z "${dontGzipMan-}" ]; then compressManPages "$prefix"; fi')
compressManPages() {
local dir="$1"
diff --git a/pkgs/build-support/setup-hooks/find-xml-catalogs.sh b/pkgs/build-support/setup-hooks/find-xml-catalogs.sh
index 85364a61f61..f446a6f27fd 100644
--- a/pkgs/build-support/setup-hooks/find-xml-catalogs.sh
+++ b/pkgs/build-support/setup-hooks/find-xml-catalogs.sh
@@ -11,12 +11,12 @@ addXMLCatalogs () {
done
}
-if [ -z "$libxmlHookDone" ]; then
+if [ -z "${libxmlHookDone-}" ]; then
libxmlHookDone=1
# Set up XML_CATALOG_FILES. An empty initial value prevents
# xmllint and xsltproc from looking in /etc/xml/catalog.
- export XML_CATALOG_FILES
+ export XML_CATALOG_FILES=''
if [ -z "$XML_CATALOG_FILES" ]; then XML_CATALOG_FILES=" "; fi
addEnvHooks "$hostOffset" addXMLCatalogs
fi
diff --git a/pkgs/build-support/setup-hooks/make-wrapper.sh b/pkgs/build-support/setup-hooks/make-wrapper.sh
index 06891893e8c..8b7012677cd 100644
--- a/pkgs/build-support/setup-hooks/make-wrapper.sh
+++ b/pkgs/build-support/setup-hooks/make-wrapper.sh
@@ -19,9 +19,6 @@ assertExecutable() {
# the environment
# --unset VAR : remove VAR from the environment
# --run COMMAND : run command before the executable
-# The command can push extra flags to a magic list
-# variable extraFlagsArray, which are then added to
-# the invocation of the executable
# --add-flags FLAGS : add FLAGS to invocation of executable
# --prefix ENV SEP VAL : suffix/prefix ENV with VAL, separated by SEP
@@ -109,12 +106,8 @@ makeWrapper() {
fi
done
- # Note: extraFlagsArray is an array containing additional flags
- # that may be set by --run actions.
- # Silence warning about unexpanded extraFlagsArray:
- # shellcheck disable=SC2016
echo exec ${argv0:+-a \"$argv0\"} \""$original"\" \
- "$flagsBefore" '"${extraFlagsArray[@]}"' '"$@"' >> "$wrapper"
+ "$flagsBefore" '"$@"' >> "$wrapper"
chmod +x "$wrapper"
}
diff --git a/pkgs/build-support/setup-hooks/move-lib64.sh b/pkgs/build-support/setup-hooks/move-lib64.sh
index 7724be369c9..9517af79732 100644
--- a/pkgs/build-support/setup-hooks/move-lib64.sh
+++ b/pkgs/build-support/setup-hooks/move-lib64.sh
@@ -8,7 +8,7 @@
fixupOutputHooks+=(_moveLib64)
_moveLib64() {
- if [ "$dontMoveLib64" = 1 ]; then return; fi
+ if [ "${dontMoveLib64-}" = 1 ]; then return; fi
if [ ! -e "$prefix/lib64" -o -L "$prefix/lib64" ]; then return; fi
echo "moving $prefix/lib64/* to $prefix/lib"
mkdir -p $prefix/lib
diff --git a/pkgs/build-support/setup-hooks/move-sbin.sh b/pkgs/build-support/setup-hooks/move-sbin.sh
index cc51c27cafd..1c0c4dc9f2d 100644
--- a/pkgs/build-support/setup-hooks/move-sbin.sh
+++ b/pkgs/build-support/setup-hooks/move-sbin.sh
@@ -5,7 +5,7 @@
fixupOutputHooks+=(_moveSbin)
_moveSbin() {
- if [ "$dontMoveSbin" = 1 ]; then return; fi
+ if [ "${dontMoveSbin-}" = 1 ]; then return; fi
if [ ! -e "$prefix/sbin" -o -L "$prefix/sbin" ]; then return; fi
echo "moving $prefix/sbin/* to $prefix/bin"
mkdir -p $prefix/bin
diff --git a/pkgs/build-support/setup-hooks/multiple-outputs.sh b/pkgs/build-support/setup-hooks/multiple-outputs.sh
index d43b1877674..2e95495c96f 100644
--- a/pkgs/build-support/setup-hooks/multiple-outputs.sh
+++ b/pkgs/build-support/setup-hooks/multiple-outputs.sh
@@ -9,8 +9,8 @@ _assignFirst() {
local varName="$1"
local REMOVE=REMOVE # slightly hacky - we allow REMOVE (i.e. not a variable name)
shift
- while [ $# -ge 1 ]; do
- if [ -n "${!1}" ]; then eval "${varName}"="$1"; return; fi
+ while (( $# )); do
+ if [ -n "${!1-}" ]; then eval "${varName}"="$1"; return; fi
shift
done
echo "Error: _assignFirst found no valid variant!"
@@ -19,7 +19,7 @@ _assignFirst() {
# Same as _assignFirst, but only if "$1" = ""
_overrideFirst() {
- if [ -z "${!1}" ]; then
+ if [ -z "${!1-}" ]; then
_assignFirst "$@"
fi
}
diff --git a/pkgs/build-support/setup-hooks/patch-shebangs.sh b/pkgs/build-support/setup-hooks/patch-shebangs.sh
index 3e900d0704c..29fed7ad794 100644
--- a/pkgs/build-support/setup-hooks/patch-shebangs.sh
+++ b/pkgs/build-support/setup-hooks/patch-shebangs.sh
@@ -105,7 +105,7 @@ patchShebangs() {
}
patchShebangsAuto () {
- if [ -z "$dontPatchShebangs" -a -e "$prefix" ]; then
+ if [ -z "${dontPatchShebangs-}" -a -e "$prefix" ]; then
# Dev output will end up being run on the build platform. An
# example case of this is sdl2-config. Otherwise, we can just
diff --git a/pkgs/build-support/setup-hooks/prune-libtool-files.sh b/pkgs/build-support/setup-hooks/prune-libtool-files.sh
index 5d7432e8f09..0ec56549645 100644
--- a/pkgs/build-support/setup-hooks/prune-libtool-files.sh
+++ b/pkgs/build-support/setup-hooks/prune-libtool-files.sh
@@ -8,7 +8,7 @@
fixupOutputHooks+=(_pruneLibtoolFiles)
_pruneLibtoolFiles() {
- if [ "$dontPruneLibtoolFiles" ] || [ ! -e "$prefix" ]; then
+ if [ "${dontPruneLibtoolFiles-}" ] || [ ! -e "$prefix" ]; then
return
fi
diff --git a/pkgs/build-support/setup-hooks/strip.sh b/pkgs/build-support/setup-hooks/strip.sh
index fc4c7bfbaf9..f5fa9378fd7 100644
--- a/pkgs/build-support/setup-hooks/strip.sh
+++ b/pkgs/build-support/setup-hooks/strip.sh
@@ -10,7 +10,7 @@ _doStrip() {
local -ra stripCmds=(STRIP TARGET_STRIP)
# Optimization
- if [[ "$STRIP" == "$TARGET_STRIP" ]]; then
+ if [[ "${STRIP-}" == "${TARGET_STRIP-}" ]]; then
dontStripTarget+=1
fi
@@ -20,7 +20,7 @@ _doStrip() {
local -n stripCmd="${stripCmds[$i]}"
# `dontStrip` disables them all
- if [[ "$dontStrip" || "$flag" ]] || ! type -f "$stripCmd" 2>/dev/null
+ if [[ "${dontStrip-}" || "${flag-}" ]] || ! type -f "${stripCmd-}" 2>/dev/null
then continue; fi
stripDebugList=${stripDebugList:-lib lib32 lib64 libexec bin sbin}
diff --git a/pkgs/build-support/setup-hooks/update-autotools-gnu-config-scripts.sh b/pkgs/build-support/setup-hooks/update-autotools-gnu-config-scripts.sh
index 66f4e91c7bb..ebd3afa05d9 100644
--- a/pkgs/build-support/setup-hooks/update-autotools-gnu-config-scripts.sh
+++ b/pkgs/build-support/setup-hooks/update-autotools-gnu-config-scripts.sh
@@ -1,7 +1,7 @@
preConfigurePhases+=" updateAutotoolsGnuConfigScriptsPhase"
updateAutotoolsGnuConfigScriptsPhase() {
- if [ -n "$dontUpdateAutotoolsGnuConfigScripts" ]; then return; fi
+ if [ -n "${dontUpdateAutotoolsGnuConfigScripts-}" ]; then return; fi
for script in config.sub config.guess; do
for f in $(find . -type f -name "$script"); do
diff --git a/pkgs/build-support/setup-hooks/wrap-gapps-hook.sh b/pkgs/build-support/setup-hooks/wrap-gapps-hook.sh
index 906b1db9d10..a05d4f689db 100644
--- a/pkgs/build-support/setup-hooks/wrap-gapps-hook.sh
+++ b/pkgs/build-support/setup-hooks/wrap-gapps-hook.sh
@@ -1,14 +1,21 @@
+# shellcheck shell=bash
gappsWrapperArgs=()
find_gio_modules() {
- if [ -d "$1"/lib/gio/modules ] && [ -n "$(ls -A $1/lib/gio/modules)" ] ; then
+ if [ -d "$1/lib/gio/modules" ] && [ -n "$(ls -A "$1/lib/gio/modules")" ] ; then
gappsWrapperArgs+=(--prefix GIO_EXTRA_MODULES : "$1/lib/gio/modules")
fi
}
-addEnvHooks "$targetOffset" find_gio_modules
+addEnvHooks "${targetOffset:?}" find_gio_modules
-# Note: $gappsWrapperArgs still gets defined even if $dontWrapGApps is set.
+wrapGApp() {
+ local program="$1"
+ shift 1
+ wrapProgram "$program" "${gappsWrapperArgs[@]}" "$@"
+}
+
+# Note: $gappsWrapperArgs still gets defined even if ${dontWrapGApps-} is set.
wrapGAppsHook() {
# guard against running multiple times (e.g. due to propagation)
[ -z "$wrapGAppsHookHasRun" ] || return 0
@@ -26,20 +33,19 @@ wrapGAppsHook() {
gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH")
fi
- if [ -d "$prefix/share" ]; then
+ if [ -d "${prefix:?}/share" ]; then
gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "$prefix/share")
fi
- if [ -d "$prefix/lib/gio/modules" ] && [ -n "$(ls -A $prefix/lib/gio/modules)" ] ; then
+ if [ -d "$prefix/lib/gio/modules" ] && [ -n "$(ls -A "$prefix/lib/gio/modules")" ] ; then
gappsWrapperArgs+=(--prefix GIO_EXTRA_MODULES : "$prefix/lib/gio/modules")
fi
- for v in $wrapPrefixVariables GST_PLUGIN_SYSTEM_PATH_1_0 GI_TYPELIB_PATH GRL_PLUGIN_PATH; do
- eval local dummy="\$$v"
- gappsWrapperArgs+=(--prefix $v : "$dummy")
+ for v in ${wrapPrefixVariables:-} GST_PLUGIN_SYSTEM_PATH_1_0 GI_TYPELIB_PATH GRL_PLUGIN_PATH; do
+ gappsWrapperArgs+=(--prefix "$v" : "${!v}")
done
- if [[ -z "$dontWrapGApps" ]]; then
+ if [[ -z "${dontWrapGApps:-}" ]]; then
targetDirsThatExist=()
targetDirsRealPath=()
@@ -52,7 +58,7 @@ wrapGAppsHook() {
find "${targetDir}" -type f -executable -print0 \
| while IFS= read -r -d '' file; do
echo "Wrapping program '${file}'"
- wrapProgram "${file}" "${gappsWrapperArgs[@]}"
+ wrapGApp "${file}"
done
fi
done
@@ -71,7 +77,7 @@ wrapGAppsHook() {
fi
done
echo "Wrapping link: '$linkPath'"
- wrapProgram "${linkPath}" "${gappsWrapperArgs[@]}"
+ wrapGApp "${linkPath}"
done
fi
fi
diff --git a/pkgs/build-support/skaware/build-skaware-package.nix b/pkgs/build-support/skaware/build-skaware-package.nix
index ce32279710e..9b159a994c8 100644
--- a/pkgs/build-support/skaware/build-skaware-package.nix
+++ b/pkgs/build-support/skaware/build-skaware-package.nix
@@ -19,10 +19,6 @@ in {
# mostly for moving and deleting files from the build directory
# : lines
, postInstall
- # packages with setup hooks that should be run
- # (see definition of `makeSetupHook`)
- # : list drv
-, setupHooks ? []
# : list Maintainer
, maintainers ? []
@@ -67,8 +63,6 @@ in stdenv.mkDerivation {
dontDisableStatic = true;
enableParallelBuilding = true;
- nativeBuildInputs = setupHooks;
-
configureFlags = configureFlags ++ [
"--enable-absolute-paths"
(if stdenv.isDarwin
diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix
index 371ab13c528..335cab7c45e 100644
--- a/pkgs/build-support/vm/default.nix
+++ b/pkgs/build-support/vm/default.nix
@@ -719,7 +719,7 @@ rec {
{ name, fullName, size ? 4096, urlPrefix
, packagesList ? "", packagesLists ? [packagesList]
, packages, extraPackages ? [], postInstall ? ""
- , extraDebs ? []
+ , extraDebs ? [], createRootFS ? defaultCreateRootFS
, QEMU_OPTS ? "", memSize ? 512 }:
let
@@ -729,7 +729,7 @@ rec {
};
in
(fillDiskWithDebs {
- inherit name fullName size postInstall QEMU_OPTS memSize;
+ inherit name fullName size postInstall createRootFS QEMU_OPTS memSize;
debs = import expr {inherit fetchurl;} ++ extraDebs;
}) // {inherit expr;};
diff --git a/pkgs/build-support/writers/default.nix b/pkgs/build-support/writers/default.nix
index 8dbe0dbdbd0..2cd4f1af022 100644
--- a/pkgs/build-support/writers/default.nix
+++ b/pkgs/build-support/writers/default.nix
@@ -92,13 +92,15 @@ rec {
PATH=${makeBinPath [
pkgs.binutils-unwrapped
pkgs.coreutils
+ pkgs.findutils
pkgs.gcc
pkgs.pkgconfig
]}
+ export PKG_CONFIG_PATH=${concatMapStringsSep ":" (pkg: "${pkg}/lib/pkgconfig") libraries}
gcc \
${optionalString (libraries != [])
"$(pkg-config --cflags --libs ${
- concatMapStringsSep " " (pkg: "$(find ${escapeShellArg pkg}/lib/pkgsconfig -name \*.pc -exec basename {} \;)") libraries
+ concatMapStringsSep " " (pkg: "$(find ${escapeShellArg pkg}/lib/pkgconfig -name \\*.pc)") libraries
})"
} \
-O \
diff --git a/pkgs/build-support/writers/test.nix b/pkgs/build-support/writers/test.nix
index d7c347a559e..3cd0a080ae8 100644
--- a/pkgs/build-support/writers/test.nix
+++ b/pkgs/build-support/writers/test.nix
@@ -1,4 +1,16 @@
-{ stdenv, lib, runCommand, haskellPackages, nodePackages, perlPackages, python2Packages, python3Packages, writers, writeText }:
+{
+ glib,
+ haskellPackages,
+ lib,
+ nodePackages,
+ perlPackages,
+ python2Packages,
+ python3Packages,
+ runCommand,
+ stdenv,
+ writers,
+ writeText
+}:
with writers;
let
@@ -49,9 +61,11 @@ let
python2 = writePython2Bin "test_writers" { libraries = [ python2Packages.enum ]; } ''
from enum import Enum
+
class Test(Enum):
a = "success"
+
print Test.a
'';
@@ -70,9 +84,19 @@ let
if [[ "test" == "test" ]]; then echo "success"; fi
'';
- c = writeC "test_c" { libraries = [ ]; } ''
+ c = writeC "test_c" { libraries = [ glib.dev ]; } ''
+ #include
#include
int main() {
+ GApplication *application = g_application_new ("hello.world", G_APPLICATION_FLAGS_NONE);
+ g_application_register (application, NULL, NULL);
+ GNotification *notification = g_notification_new ("Hello world!");
+ g_notification_set_body (notification, "This is an example notification.");
+ GIcon *icon = g_themed_icon_new ("dialog-information");
+ g_notification_set_icon (notification, icon);
+ g_object_unref (icon);
+ g_object_unref (notification);
+ g_object_unref (application);
printf("success\n");
return 0;
}
@@ -112,9 +136,11 @@ let
python2 = writePython2 "test_python2" { libraries = [ python2Packages.enum ]; } ''
from enum import Enum
+
class Test(Enum):
a = "success"
+
print Test.a
'';
diff --git a/pkgs/data/documentation/gnome-user-docs/default.nix b/pkgs/data/documentation/gnome-user-docs/default.nix
index 4bdfa70c63f..a47ec9ea790 100644
--- a/pkgs/data/documentation/gnome-user-docs/default.nix
+++ b/pkgs/data/documentation/gnome-user-docs/default.nix
@@ -1,27 +1,41 @@
-{ stdenv, fetchurl, itstool, libxml2, gettext, gnome3 }:
+{ stdenv
+, fetchurl
+, gettext
+, gnome3
+, itstool
+, libxml2
+, yelp-tools
+}:
stdenv.mkDerivation rec {
pname = "gnome-user-docs";
- version = "3.2.2";
+ version = "3.34.1";
src = fetchurl {
- url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "1ka0nw2kc85p10y8x31v0wv06a88k7qrgafp4ys04y9fzz0rkcjj";
+ url = "mirror://gnome/sources/gnome-user-docs/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "11m9fv8k2hynrcgah4jvbm6yczg0s1ly302mipysbwpn6gbdkvf2";
};
- nativeBuildInputs = [ itstool libxml2 gettext ];
+ nativeBuildInputs = [
+ gettext
+ itstool
+ libxml2
+ yelp-tools
+ ];
+
+ enableParallelBuilding = true;
passthru = {
updateScript = gnome3.updateScript {
packageName = pname;
- attrPath = "gnome3.gnome-user-docs";
};
};
- meta = {
- homepage = "https://gitlab.gnome.org/GNOME/gnome-user-docs";
- description = "GNOME User Documentation";
- license = stdenv.lib.licenses.cc-by-30;
+ meta = with stdenv.lib; {
+ description = "User and system administration help for the GNOME desktop";
+ homepage = "https://help.gnome.org/users/gnome-help/";
+ license = licenses.cc-by-30;
maintainers = gnome3.maintainers;
+ platforms = platforms.linux;
};
}
diff --git a/pkgs/data/documentation/man-pages/default.nix b/pkgs/data/documentation/man-pages/default.nix
index 8b0696408e6..a266a597e0b 100644
--- a/pkgs/data/documentation/man-pages/default.nix
+++ b/pkgs/data/documentation/man-pages/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "man-pages";
- version = "5.02";
+ version = "5.03";
src = fetchurl {
url = "mirror://kernel/linux/docs/man-pages/${pname}-${version}.tar.xz";
- sha256 = "1s4pdz2pwf0kvhdwx2s6lqn3xxzi38yz5jfyq5ymdmswc9gaiyn2";
+ sha256 = "082i9258rl9xxjgpxpz3v8jcwk96dsk704ki9h9lq7q8z7m3mqbz";
};
makeFlags = [ "MANDIR=$(out)/share/man" ];
diff --git a/pkgs/data/fonts/agave/default.nix b/pkgs/data/fonts/agave/default.nix
index e9f4fbd4867..1fffbd9dcb1 100644
--- a/pkgs/data/fonts/agave/default.nix
+++ b/pkgs/data/fonts/agave/default.nix
@@ -2,18 +2,18 @@
let
pname = "agave";
- version = "10";
+ version = "14";
in fetchurl {
name = "${pname}-${version}";
- url = "https://github.com/agarick/agave/releases/download/v${version}/agave-r.ttf";
+ url = "https://github.com/agarick/agave/releases/download/v${version}/Agave-Regular.ttf";
downloadToTemp = true;
recursiveHash = true;
postFetch = ''
- install -D $downloadedFile $out/share/fonts/truetype/agave-r.ttf
+ install -D $downloadedFile $out/share/fonts/truetype/Agave-Regular.ttf
'';
- sha256 = "1mfj6a9sp00mjz7420yyrbbs5bqks3fz2slwgcppklxnz0890r9f";
+ sha256 = "14hr6cdn5xbfpszj4qyfqbwmjyrkmi83yl0g9j3y3jw561jwy27j";
meta = with lib; {
description = "truetype monospaced typeface designed for X environments";
diff --git a/pkgs/data/fonts/babelstone-han/default.nix b/pkgs/data/fonts/babelstone-han/default.nix
index 5408e7b1b1d..0d46fc92d5f 100644
--- a/pkgs/data/fonts/babelstone-han/default.nix
+++ b/pkgs/data/fonts/babelstone-han/default.nix
@@ -1,20 +1,20 @@
{ lib, fetchzip }:
let
- version = "12.1.4";
+ version = "12.1.7";
in fetchzip {
name = "babelstone-han-${version}";
- url = http://www.babelstone.co.uk/Fonts/Download/BabelStoneHan.zip;
+ url = https://www.babelstone.co.uk/Fonts/Download/BabelStoneHan.zip;
postFetch = ''
mkdir -p $out/share/fonts/truetype
unzip $downloadedFile '*.ttf' -d $out/share/fonts/truetype
'';
- sha256 = "1fypwk2i87jfrckvxg9wz4x84z7c6ifgzrjb8fylhac50lzi6kni";
+ sha256 = "07liv0lmk28ybxccf91gp2wmc17pk3fcshixpj0jx069b64zwf1v";
meta = with lib; {
description = "Unicode CJK font with over 36000 Han characters";
- homepage = http://www.babelstone.co.uk/Fonts/Han.html;
+ homepage = https://www.babelstone.co.uk/Fonts/Han.html;
license = licenses.free;
platforms = platforms.all;
diff --git a/pkgs/data/fonts/cascadia-code/default.nix b/pkgs/data/fonts/cascadia-code/default.nix
new file mode 100644
index 00000000000..d2d2ad34256
--- /dev/null
+++ b/pkgs/data/fonts/cascadia-code/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchurl }:
+
+let
+ pname = "cascadia-code";
+ version = "1910.04";
+in
+fetchurl {
+ name = "${pname}-${version}";
+ url = "https://github.com/microsoft/cascadia-code/releases/download/v${version}/Cascadia.ttf";
+
+ downloadToTemp = true;
+ recursiveHash = true;
+
+ postFetch = ''
+ install -Dm444 $downloadedFile $out/share/fonts/truetype/Cascadia.ttf
+ '';
+
+ sha256 = "124zbv7xwirwwxrm988h3plwd2vynqxyx7p2gijqrnw69q9pf67q";
+
+ meta = with lib; {
+ description = "Monospaced font that includes programming ligatures and is designed to enhance the modern look and feel of the Windows Terminal";
+ homepage = "https://github.com/microsoft/cascadia-code";
+ license = licenses.ofl;
+ maintainers = [ maintainers.marsam ];
+ platforms = platforms.all;
+ };
+}
diff --git a/pkgs/data/fonts/cherry/default.nix b/pkgs/data/fonts/cherry/default.nix
index 6d1c4b10c91..00a8a2f61fc 100644
--- a/pkgs/data/fonts/cherry/default.nix
+++ b/pkgs/data/fonts/cherry/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchFromGitHub, bdftopcf }:
+{ stdenv, fetchFromGitHub, fonttosfnt, mkfontdir }:
stdenv.mkDerivation rec {
pname = "cherry";
- version = "1.3";
+ version = "1.4";
src = fetchFromGitHub {
owner = "turquoise-hexagon";
repo = pname;
rev = version;
- sha256 = "1zaiqspf6y0hpszhihdsvsyw33d3ffdap4dym7w45wfrhdpvpi0p";
+ sha256 = "13zkxwp6r6kcxv4x459vwscr0n0sik4a3kcz5xnmlpvcdnbxi586";
};
- nativeBuildInputs = [ bdftopcf ];
+ nativeBuildInputs = [ fonttosfnt mkfontdir ];
buildPhase = ''
patchShebangs make.sh
@@ -20,7 +20,10 @@ stdenv.mkDerivation rec {
installPhase = ''
mkdir -p $out/share/fonts/misc
- cp *.pcf $out/share/fonts/misc
+ cp *.otb $out/share/fonts/misc
+
+ # create fonts.dir so NixOS xorg module adds to fp
+ mkfontdir $out/share/fonts/misc
'';
meta = with stdenv.lib; {
diff --git a/pkgs/data/fonts/comic-neue/default.nix b/pkgs/data/fonts/comic-neue/default.nix
index 2615d0260f0..6dcefe90055 100644
--- a/pkgs/data/fonts/comic-neue/default.nix
+++ b/pkgs/data/fonts/comic-neue/default.nix
@@ -1,7 +1,7 @@
{ lib, fetchzip }:
let
- version = "2.2";
+ version = "2.3";
in fetchzip rec {
name = "comic-neue-${version}";
@@ -9,15 +9,15 @@ in fetchzip rec {
postFetch = ''
mkdir -vp $out/share/{doc,fonts}
- unzip -j $downloadedFile comic-neue-2.2/\*.otf -d $out/share/fonts/opentype
- unzip -j $downloadedFile comic-neue-2.2/\*.ttf -d $out/share/fonts/truetype
- unzip -j $downloadedFile comic-neue-2.2/\*.eot -d $out/share/fonts/EOT
- unzip -j $downloadedFile comic-neue-2.2/\*.woff -d $out/share/fonts/WOFF
- unzip -j $downloadedFile comic-neue-2.2/\*.woff2 -d $out/share/fonts/WOFF2
- unzip -j $downloadedFile comic-neue-2.2/\*.pdf comic-neue-2.2/FONTLOG.txt comic-neue-2.2/OFL-FAQ.txt comic-neue-2.2/SIL-License.txt -d $out/share/doc/${name}
+ unzip -j $downloadedFile OTF/\*.otf -d $out/share/fonts/opentype
+ unzip -j $downloadedFile Web/\*.ttf -d $out/share/fonts/truetype
+ unzip -j $downloadedFile Web/\*.eot -d $out/share/fonts/EOT
+ unzip -j $downloadedFile Web/\*.woff -d $out/share/fonts/WOFF
+ unzip -j $downloadedFile Web/\*.woff2 -d $out/share/fonts/WOFF2
+ unzip -j $downloadedFile \*.pdf FONTLOG.txt OFL-FAQ.txt SIL-License.txt -d $out/share/doc/${name}
'';
- sha256 = "1yypq5aqqzv3q1c6vx5130mi2iwihzzvrawhwqpwsfjl0p25sq9q";
+ sha256 = "1gs4vhys0m3qsw06qaxzyi81f06w5v66kbyl64yw3pq2rb656779";
meta = with lib; {
homepage = http://comicneue.com/;
diff --git a/pkgs/data/fonts/fantasque-sans-mono/default.nix b/pkgs/data/fonts/fantasque-sans-mono/default.nix
index 5b982dcaa3e..156db5d214c 100644
--- a/pkgs/data/fonts/fantasque-sans-mono/default.nix
+++ b/pkgs/data/fonts/fantasque-sans-mono/default.nix
@@ -1,7 +1,7 @@
{ lib, fetchzip }:
let
- version = "1.7.2";
+ version = "1.8.0";
in
fetchzip rec {
@@ -15,7 +15,7 @@ fetchzip rec {
unzip -j $downloadedFile README.md -d $out/share/doc/${name}
'';
- sha256 = "1fwvbqfrgb539xybwdawvwa8cg4f215kw905rgl9a6p0iwa1nxqk";
+ sha256 = "07y2w6xzkbaj6vr95fvvnmwq1pw9jib4z02xf8937dx812yic9ni";
meta = with lib; {
homepage = https://github.com/belluzj/fantasque-sans;
diff --git a/pkgs/data/fonts/fira-code/default.nix b/pkgs/data/fonts/fira-code/default.nix
index 09bae8cbea5..46149b0781b 100644
--- a/pkgs/data/fonts/fira-code/default.nix
+++ b/pkgs/data/fonts/fira-code/default.nix
@@ -1,7 +1,7 @@
{ stdenv, fetchzip }:
let
- version = "1.207";
+ version = "2";
in fetchzip {
name = "fira-code-${version}";
@@ -10,9 +10,10 @@ in fetchzip {
postFetch = ''
mkdir -p $out/share/fonts
unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+ unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
'';
- sha256 = "13w2jklqndria2plgangl5gi56v1cj5ja9vznh9079kqnvq0cffz";
+ sha256 = "0kg9lrrjr6wrd4r96y0rnslnaw2276558a369qdvalwb3q1gi8d2";
meta = with stdenv.lib; {
homepage = https://github.com/tonsky/FiraCode;
diff --git a/pkgs/data/fonts/gohufont/default.nix b/pkgs/data/fonts/gohufont/default.nix
index 1f861afcf83..e4e9954d118 100644
--- a/pkgs/data/fonts/gohufont/default.nix
+++ b/pkgs/data/fonts/gohufont/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
version = "2.1";
src = fetchurl {
- url = "http://font.gohu.org/${pname}-${version}.tar.gz";
+ url = "https://font.gohu.org/${pname}-${version}.tar.gz";
sha256 = "10dsl7insnw95hinkcgmp9rx39lyzb7bpx5g70vswl8d6p4n53bm";
};
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
# convert bdf to psf fonts
build=$(pwd)
mkdir psf
- cd ${bdf2psf}/usr/share/bdf2psf
+ cd ${bdf2psf}/share/bdf2psf
for i in $bdf/*.bdf; do
bdf2psf \
--fb "$i" standard.equivalents \
@@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
description = ''
A monospace bitmap font well suited for programming and terminal use
'';
- homepage = http://font.gohu.org/;
+ homepage = https://font.gohu.org/;
license = licenses.wtfpl;
maintainers = with maintainers; [ epitrochoid rnhmjoj ];
};
diff --git a/pkgs/data/fonts/ibm-plex/default.nix b/pkgs/data/fonts/ibm-plex/default.nix
index 7401c569462..cd868d88d65 100644
--- a/pkgs/data/fonts/ibm-plex/default.nix
+++ b/pkgs/data/fonts/ibm-plex/default.nix
@@ -1,7 +1,7 @@
{ lib, fetchzip }:
let
- version = "2.0.0";
+ version = "4.0.1";
in fetchzip {
name = "ibm-plex-${version}";
url = "https://github.com/IBM/plex/releases/download/v${version}/OpenType.zip";
@@ -9,7 +9,7 @@ in fetchzip {
mkdir -p $out/share/fonts
unzip -j $downloadedFile "OpenType/*/*.otf" -d $out/share/fonts/opentype
'';
- sha256 = "0m4paww4349d37s7j20a00hp514p1jq54xrnz45wyrafb8pkah4g";
+ sha256 = "11d5bsv7d5rbp9f1gf1l4za3xj6jlqwnvsl5ipwx4angh1kb7nk8";
meta = with lib; {
description = "IBM Plex Typeface";
diff --git a/pkgs/data/fonts/input-fonts/default.nix b/pkgs/data/fonts/input-fonts/default.nix
index 3bc836fa4e4..68322bd5482 100644
--- a/pkgs/data/fonts/input-fonts/default.nix
+++ b/pkgs/data/fonts/input-fonts/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation {
generous spacing, large punctuation, and easily distinguishable
characters — but without the limitations of a fixed width.
'';
- homepage = http://input.fontbureau.com;
+ homepage = https://input.fontbureau.com;
license = licenses.unfree;
maintainers = with maintainers; [ romildo ];
platforms = platforms.all;
diff --git a/pkgs/data/fonts/inter/default.nix b/pkgs/data/fonts/inter/default.nix
index 589acbcee5c..83779e7618e 100644
--- a/pkgs/data/fonts/inter/default.nix
+++ b/pkgs/data/fonts/inter/default.nix
@@ -1,7 +1,7 @@
{ lib, fetchzip }:
let
- version = "3.7";
+ version = "3.11";
in fetchzip {
name = "inter-${version}";
@@ -12,7 +12,7 @@ in fetchzip {
unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
'';
- sha256 = "1ja1v3605vp09azpabgmk710kic85zxwi4kksmqj9z805fmxddp6";
+ sha256 = "1bk4q478jy84ylgm1mmh23n8cw1cd3k7gvfih77sd7ya1zv26vl1";
meta = with lib; {
homepage = https://rsms.me/inter/;
diff --git a/pkgs/data/fonts/iosevka/bin.nix b/pkgs/data/fonts/iosevka/bin.nix
index 962769b8144..d6d986c699a 100644
--- a/pkgs/data/fonts/iosevka/bin.nix
+++ b/pkgs/data/fonts/iosevka/bin.nix
@@ -1,7 +1,7 @@
{ stdenv, fetchzip }:
let
- version = "2.3.0";
+ version = "2.3.2";
in fetchzip {
name = "iosevka-bin-${version}";
@@ -12,7 +12,7 @@ in fetchzip {
unzip -j $downloadedFile \*.ttc -d $out/share/fonts/iosevka
'';
- sha256 = "0nry6zsmvcj44rijhbvrry84rh5hrixzb4n1mx9c27vvpy33a56w";
+ sha256 = "1dkfh354scjgzq7kgy4cn70z030wmfgxixqp8p9m6i0ps8gccjgs";
meta = with stdenv.lib; {
homepage = https://be5invis.github.io/Iosevka/;
diff --git a/pkgs/data/fonts/iosevka/default.nix b/pkgs/data/fonts/iosevka/default.nix
index f7fce315e8c..fb00fff130f 100644
--- a/pkgs/data/fonts/iosevka/default.nix
+++ b/pkgs/data/fonts/iosevka/default.nix
@@ -1,96 +1,88 @@
-{
- stdenv, lib,
- fetchFromGitHub, fetchurl,
- nodejs, ttfautohint-nox, otfcc,
+{ stdenv, lib, pkgs, fetchFromGitHub, nodejs, nodePackages, remarshal
+, ttfautohint-nox, otfcc
- # Custom font set options.
- # See https://github.com/be5invis/Iosevka#build-your-own-style
- design ? [], upright ? [], italic ? [], oblique ? [],
- family ? null, weights ? [],
+# Custom font set options.
+# See https://github.com/be5invis/Iosevka#build-your-own-style
+# Ex:
+# privateBuildPlan = {
+# family = "Iosevka Expanded";
+#
+# design = [
+# "sans"
+# "expanded"
+# ];
+# };
+, privateBuildPlan ? null
+ # Extra parameters. Can be used for ligature mapping.
+ # It must be a raw toml string.
+ #
+ # Ex:
+ # [[iosevka.compLig]]
+ # unicode = 57808 # 0xe1d0
+ # featureTag = 'XHS0'
+ # sequence = "+>"
+, extraParameters ? null
# Custom font set name. Required if any custom settings above.
- set ? null
-}:
+, set ? null }:
-assert (design != []) -> set != null;
-assert (upright != []) -> set != null;
-assert (italic != []) -> set != null;
-assert (oblique != []) -> set != null;
-assert (family != null) -> set != null;
-assert (weights != []) -> set != null;
+assert (privateBuildPlan != null) -> set != null;
-let
- installPackageLock = import ./package-lock.nix { inherit fetchurl lib; };
-in
+stdenv.mkDerivation rec {
+ pname = if set != null then "iosevka-${set}" else "iosevka";
-let pname = if set != null then "iosevka-${set}" else "iosevka"; in
+ version = "2.3.2";
-let
- version = "1.14.3";
- name = "${pname}-${version}";
src = fetchFromGitHub {
owner = "be5invis";
- repo ="Iosevka";
+ repo = "Iosevka";
rev = "v${version}";
- sha256 = "0ba8hwxi88bp2jb9xfhk95nnlv8ykl74cv62xr4ybzm3b8ahpwqf";
+ sha256 = "0s0vdvp1sn8p2pi2xm9n05pabk30ki7wjlmr0zz0nkhidb8apw6k";
};
-in
-with lib;
-let unwords = concatStringsSep " "; in
+ nativeBuildInputs = [
+ nodejs
+ nodePackages."iosevka-build-deps-../../data/fonts/iosevka"
+ remarshal
+ otfcc
+ ttfautohint-nox
+ ];
-let
- param = name: options:
- if options != [] then "${name}='${unwords options}'" else null;
- config = unwords (lib.filter (x: x != null) [
- (param "design" design)
- (param "upright" upright)
- (param "italic" italic)
- (param "oblique" oblique)
- (if family != null then "family='${family}'" else null)
- (param "weights" weights)
- ]);
- custom = design != [] || upright != [] || italic != [] || oblique != []
- || family != null || weights != [];
-in
-
-stdenv.mkDerivation {
- inherit name pname version src;
-
- nativeBuildInputs = [ nodejs ttfautohint-nox otfcc ];
-
- passAsFile = [ "installPackageLock" ];
- installPackageLock = installPackageLock ./package-lock.json;
-
- preConfigure = ''
- HOME=$TMPDIR
- source "$installPackageLockPath";
- npm --offline rebuild
- '';
+ privateBuildPlanJSON =
+ builtins.toJSON { buildPlans.${pname} = privateBuildPlan; };
+ inherit extraParameters;
+ passAsFile = [ "privateBuildPlanJSON" "extraParameters" ];
configurePhase = ''
runHook preConfigure
-
- ${optionalString custom ''make custom-config set=${set} ${config}''}
-
+ ${lib.optionalString (privateBuildPlan != null) ''
+ remarshal -i "$privateBuildPlanJSONPath" -o private-build-plans.toml -if json -of toml
+ ''}
+ ${lib.optionalString (extraParameters != null) ''
+ echo -e "\n" >> parameters.toml
+ cat "$extraParametersPath" >> parameters.toml
+ ''}
+ ln -s ${
+ nodePackages."iosevka-build-deps-../../data/fonts/iosevka"
+ }/lib/node_modules/iosevka-build-deps/node_modules .
runHook postConfigure
'';
- makeFlags = lib.optionals custom [ "custom" "set=${set}" ];
+ buildPhase = ''
+ runHook preBuild
+ npm run build -- ttf::$pname
+ runHook postBuild
+ '';
installPhase = ''
- runHook preInstall
-
fontdir="$out/share/fonts/$pname"
install -d "$fontdir"
install "dist/$pname/ttf"/* "$fontdir"
-
- runHook postInstall
'';
enableParallelBuilding = true;
meta = with stdenv.lib; {
- homepage = https://be5invis.github.io/Iosevka/;
+ homepage = "https://be5invis.github.io/Iosevka";
downloadPage = "https://github.com/be5invis/Iosevka/releases";
description = ''
Slender monospace sans-serif and slab-serif typeface inspired by Pragmata
@@ -98,6 +90,12 @@ stdenv.mkDerivation {
'';
license = licenses.ofl;
platforms = platforms.all;
- maintainers = with maintainers; [ cstrahan jfrankenau ttuegel ];
+ maintainers = with maintainers; [
+ cstrahan
+ jfrankenau
+ ttuegel
+ babariviere
+ rileyinman
+ ];
};
}
diff --git a/pkgs/data/fonts/iosevka/package-lock.json b/pkgs/data/fonts/iosevka/package-lock.json
deleted file mode 100644
index 54de11a1f42..00000000000
--- a/pkgs/data/fonts/iosevka/package-lock.json
+++ /dev/null
@@ -1,1025 +0,0 @@
-{
- "name": "iosevka",
- "version": "1.14.0",
- "lockfileVersion": 1,
- "requires": true,
- "dependencies": {
- "JSONStream": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.2.tgz",
- "integrity": "sha1-wQI3G27Dp887hHygDCC7D85Mbeo=",
- "requires": {
- "jsonparse": "1.3.1",
- "through": "2.3.8"
- }
- },
- "amdefine": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
- "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
- },
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
- },
- "bezier-js": {
- "version": "2.2.5",
- "resolved": "https://registry.npmjs.org/bezier-js/-/bezier-js-2.2.5.tgz",
- "integrity": "sha512-HGh+GevPguxrAmnWF2/A+8c8FEatnKcE6WttpYWA5fn1CfpJz4reFbr11DuyFs2gwaIo9vF7aVXW2xg1iaqvyg=="
- },
- "builtin-modules": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
- "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8="
- },
- "camelcase": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
- "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
- },
- "caryll-shapeops": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/caryll-shapeops/-/caryll-shapeops-0.3.1.tgz",
- "integrity": "sha512-3TdH6DZGL08S6qEvCZLNaOHyFvmzQts8m+TyYEvc6/PiI+XgX5mIag1/CKczIM8e2QtDr8JKW8foo4VNOM8/Og==",
- "requires": {
- "bezier-js": "2.2.5",
- "clipper-lib": "1.0.0"
- }
- },
- "child-process-promise": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/child-process-promise/-/child-process-promise-2.2.1.tgz",
- "integrity": "sha1-RzChHvYQ+tRQuPIjx50x172tgHQ=",
- "requires": {
- "cross-spawn": "4.0.2",
- "node-version": "1.1.0",
- "promise-polyfill": "6.1.0"
- }
- },
- "clipper-lib": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/clipper-lib/-/clipper-lib-1.0.0.tgz",
- "integrity": "sha1-6QLOsm4o7lz6YBSr33kKUe//Tss="
- },
- "cliui": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
- "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
- "requires": {
- "string-width": "1.0.2",
- "strip-ansi": "3.0.1",
- "wrap-ansi": "2.1.0"
- }
- },
- "clone": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz",
- "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8="
- },
- "code-point-at": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
- "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
- },
- "coffee-script": {
- "version": "1.12.7",
- "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz",
- "integrity": "sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw=="
- },
- "cross-spawn": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz",
- "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=",
- "requires": {
- "lru-cache": "4.1.1",
- "which": "1.3.0"
- }
- },
- "cubic2quad": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/cubic2quad/-/cubic2quad-1.1.1.tgz",
- "integrity": "sha1-abGcYaP1tB7PLx1fro+wNBWqixU="
- },
- "decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
- },
- "deep-is": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
- "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
- },
- "defaults": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
- "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
- "requires": {
- "clone": "1.0.3"
- }
- },
- "error-ex": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz",
- "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=",
- "requires": {
- "is-arrayish": "0.2.1"
- }
- },
- "escodegen": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz",
- "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==",
- "requires": {
- "esprima": "3.1.3",
- "estraverse": "4.2.0",
- "esutils": "2.0.2",
- "optionator": "0.8.2",
- "source-map": "0.5.7"
- }
- },
- "escope": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escope/-/escope-1.0.3.tgz",
- "integrity": "sha1-dZ3OhJbEJI/sLQyq9BCLzz8af10=",
- "requires": {
- "estraverse": "2.0.0"
- },
- "dependencies": {
- "estraverse": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-2.0.0.tgz",
- "integrity": "sha1-WuRpYyQ2ACBmdMyySgnhZnT83KE="
- }
- }
- },
- "esmangle": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/esmangle/-/esmangle-1.0.1.tgz",
- "integrity": "sha1-2bs3uPjq+/Tm1O1reqKVarvTxMI=",
- "requires": {
- "escodegen": "1.3.3",
- "escope": "1.0.3",
- "esprima": "1.1.1",
- "esshorten": "1.1.1",
- "estraverse": "1.5.1",
- "esutils": "1.0.0",
- "optionator": "0.3.0",
- "source-map": "0.1.43"
- },
- "dependencies": {
- "escodegen": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.3.3.tgz",
- "integrity": "sha1-8CQBb1qI4Eb9EgBQVek5gC5sXyM=",
- "requires": {
- "esprima": "1.1.1",
- "estraverse": "1.5.1",
- "esutils": "1.0.0",
- "source-map": "0.1.43"
- }
- },
- "esprima": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.1.1.tgz",
- "integrity": "sha1-W28VR/TRAuZw4UDFCb5ncdautUk="
- },
- "estraverse": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz",
- "integrity": "sha1-hno+jlip+EYYr7bC3bzZFrfLr3E="
- },
- "esutils": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.0.0.tgz",
- "integrity": "sha1-gVHTWOIMisx/t0XnRywAJf5JZXA="
- },
- "fast-levenshtein": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.0.7.tgz",
- "integrity": "sha1-AXjc3uAjuSkFGTrwlZ6KdjnP3Lk="
- },
- "levn": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.2.5.tgz",
- "integrity": "sha1-uo0znQykphDjo/FFucr0iAcVUFQ=",
- "requires": {
- "prelude-ls": "1.1.2",
- "type-check": "0.3.2"
- }
- },
- "optionator": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.3.0.tgz",
- "integrity": "sha1-lxWotfXnWGz/BsgkngOc1zZNP1Q=",
- "requires": {
- "deep-is": "0.1.3",
- "fast-levenshtein": "1.0.7",
- "levn": "0.2.5",
- "prelude-ls": "1.1.2",
- "type-check": "0.3.2",
- "wordwrap": "0.0.3"
- }
- },
- "source-map": {
- "version": "0.1.43",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
- "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
- "requires": {
- "amdefine": "1.0.1"
- }
- },
- "wordwrap": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
- "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc="
- }
- }
- },
- "esprima": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
- "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM="
- },
- "esshorten": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/esshorten/-/esshorten-1.1.1.tgz",
- "integrity": "sha1-F0+Wt8wmfkaHLYFOfbfCkL3/Yak=",
- "requires": {
- "escope": "1.0.3",
- "estraverse": "4.1.1",
- "esutils": "2.0.2"
- },
- "dependencies": {
- "estraverse": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz",
- "integrity": "sha1-9srKcokzqFDvkGYdDheYK6RxEaI="
- }
- }
- },
- "estraverse": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
- "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM="
- },
- "esutils": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
- "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs="
- },
- "execa": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
- "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
- "requires": {
- "cross-spawn": "5.1.0",
- "get-stream": "3.0.0",
- "is-stream": "1.1.0",
- "npm-run-path": "2.0.2",
- "p-finally": "1.0.0",
- "signal-exit": "3.0.2",
- "strip-eof": "1.0.0"
- },
- "dependencies": {
- "cross-spawn": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
- "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
- "requires": {
- "lru-cache": "4.1.1",
- "shebang-command": "1.2.0",
- "which": "1.3.0"
- }
- }
- }
- },
- "fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
- },
- "find-up": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
- "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
- "requires": {
- "path-exists": "2.1.0",
- "pinkie-promise": "2.0.1"
- }
- },
- "fs-extra": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz",
- "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=",
- "requires": {
- "graceful-fs": "4.1.11",
- "jsonfile": "3.0.1",
- "universalify": "0.1.1"
- }
- },
- "get-caller-file": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz",
- "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U="
- },
- "get-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
- "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
- },
- "graceful-fs": {
- "version": "4.1.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
- "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
- },
- "hosted-git-info": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz",
- "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg=="
- },
- "invert-kv": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
- "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY="
- },
- "is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
- },
- "is-builtin-module": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
- "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
- "requires": {
- "builtin-modules": "1.1.1"
- }
- },
- "is-fullwidth-code-point": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "requires": {
- "number-is-nan": "1.0.1"
- }
- },
- "is-stream": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
- },
- "is-utf8": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
- "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
- },
- "isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
- },
- "jsonfile": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz",
- "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=",
- "requires": {
- "graceful-fs": "4.1.11"
- }
- },
- "jsonparse": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
- "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA="
- },
- "lcid": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
- "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
- "requires": {
- "invert-kv": "1.0.0"
- }
- },
- "levn": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
- "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
- "requires": {
- "prelude-ls": "1.1.2",
- "type-check": "0.3.2"
- }
- },
- "libspiro-js": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/libspiro-js/-/libspiro-js-0.3.1.tgz",
- "integrity": "sha1-hmUrAAmm2E6nmlMgvcpfAGEu5Dk="
- },
- "load-json-file": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
- "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
- "requires": {
- "graceful-fs": "4.1.11",
- "parse-json": "2.2.0",
- "pify": "2.3.0",
- "pinkie-promise": "2.0.1",
- "strip-bom": "2.0.0"
- }
- },
- "locate-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
- "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
- "requires": {
- "p-locate": "2.0.0",
- "path-exists": "3.0.0"
- },
- "dependencies": {
- "path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
- }
- }
- },
- "lru-cache": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz",
- "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==",
- "requires": {
- "pseudomap": "1.0.2",
- "yallist": "2.1.2"
- }
- },
- "megaminx": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/megaminx/-/megaminx-0.3.3.tgz",
- "integrity": "sha512-lZBSLMro+XYJIix9zCZ8N6nZgixpjUPkX6CKuh+Y9Wl9bir/2Fp27NWapA0cNQCPrzOOI9sAwxc4BI14aIdumw==",
- "requires": {
- "JSONStream": "1.3.2",
- "child-process-promise": "2.2.1",
- "cubic2quad": "1.1.1",
- "fs-extra": "3.0.1",
- "which": "1.3.0"
- }
- },
- "mem": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
- "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
- "requires": {
- "mimic-fn": "1.2.0"
- }
- },
- "mimic-fn": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
- "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="
- },
- "node-version": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/node-version/-/node-version-1.1.0.tgz",
- "integrity": "sha512-t1V2RFiaTavaW3jtQO0A2nok6k7/Gghuvx2rjvICuT0B0dYaObBQ4U0xHL+ZTPFZodt1LMYG2Vi2nypfz4/AJg=="
- },
- "normalize-package-data": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
- "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
- "requires": {
- "hosted-git-info": "2.5.0",
- "is-builtin-module": "1.0.0",
- "semver": "5.5.0",
- "validate-npm-package-license": "3.0.1"
- }
- },
- "npm-run-path": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
- "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
- "requires": {
- "path-key": "2.0.1"
- }
- },
- "number-is-nan": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
- "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
- },
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
- },
- "optionator": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
- "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
- "requires": {
- "deep-is": "0.1.3",
- "fast-levenshtein": "2.0.6",
- "levn": "0.3.0",
- "prelude-ls": "1.1.2",
- "type-check": "0.3.2",
- "wordwrap": "1.0.0"
- }
- },
- "os-locale": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
- "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
- "requires": {
- "lcid": "1.0.0"
- }
- },
- "p-finally": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
- "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4="
- },
- "p-limit": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz",
- "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==",
- "requires": {
- "p-try": "1.0.0"
- }
- },
- "p-locate": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
- "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
- "requires": {
- "p-limit": "1.2.0"
- }
- },
- "p-try": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
- "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
- },
- "pad": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/pad/-/pad-1.2.1.tgz",
- "integrity": "sha512-cx/l/K+9UjGXJmoYolvP0l3cEUyB9BUdUL3wj3uwskIiApboLsinvsXxU9nSNg9Luz2ZyH0zzJNbqgLSNtfIDw==",
- "requires": {
- "coffee-script": "1.12.7",
- "wcwidth": "1.0.1"
- }
- },
- "parse-json": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
- "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
- "requires": {
- "error-ex": "1.3.1"
- }
- },
- "patel": {
- "version": "0.32.1",
- "resolved": "https://registry.npmjs.org/patel/-/patel-0.32.1.tgz",
- "integrity": "sha1-nnC2sj/XqcgsV57VkbivpSF+YhI=",
- "requires": {
- "escodegen": "1.9.0",
- "esmangle": "1.0.1",
- "patrisika": "0.21.0",
- "resumer": "0.0.0",
- "yargs": "6.6.0"
- },
- "dependencies": {
- "yargs": {
- "version": "6.6.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz",
- "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=",
- "requires": {
- "camelcase": "3.0.0",
- "cliui": "3.2.0",
- "decamelize": "1.2.0",
- "get-caller-file": "1.0.2",
- "os-locale": "1.4.0",
- "read-pkg-up": "1.0.1",
- "require-directory": "2.1.1",
- "require-main-filename": "1.0.1",
- "set-blocking": "2.0.0",
- "string-width": "1.0.2",
- "which-module": "1.0.0",
- "y18n": "3.2.1",
- "yargs-parser": "4.2.1"
- }
- }
- }
- },
- "path-exists": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
- "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
- "requires": {
- "pinkie-promise": "2.0.1"
- }
- },
- "path-key": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
- "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="
- },
- "path-type": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
- "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
- "requires": {
- "graceful-fs": "4.1.11",
- "pify": "2.3.0",
- "pinkie-promise": "2.0.1"
- }
- },
- "patrisika": {
- "version": "0.21.0",
- "resolved": "https://registry.npmjs.org/patrisika/-/patrisika-0.21.0.tgz",
- "integrity": "sha1-uCwn99QEFSLcXDG0O3xu+xnkdII=",
- "requires": {
- "patrisika-scopes": "0.11.0"
- }
- },
- "patrisika-scopes": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/patrisika-scopes/-/patrisika-scopes-0.11.0.tgz",
- "integrity": "sha1-BSqddkoWXgs0zDW2ViqIJCA2tAM="
- },
- "pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
- },
- "pinkie": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
- },
- "pinkie-promise": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
- "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
- "requires": {
- "pinkie": "2.0.4"
- }
- },
- "prelude-ls": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
- "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
- },
- "promise-polyfill": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-6.1.0.tgz",
- "integrity": "sha1-36lpQ+qcEh/KTem1hoyznTRy4Fc="
- },
- "pseudomap": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
- "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
- },
- "read-pkg": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
- "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
- "requires": {
- "load-json-file": "1.1.0",
- "normalize-package-data": "2.4.0",
- "path-type": "1.1.0"
- }
- },
- "read-pkg-up": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
- "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
- "requires": {
- "find-up": "1.1.2",
- "read-pkg": "1.1.0"
- }
- },
- "require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
- },
- "require-main-filename": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
- "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="
- },
- "resumer": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz",
- "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=",
- "requires": {
- "through": "2.3.8"
- }
- },
- "semver": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
- "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA=="
- },
- "set-blocking": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
- },
- "shebang-command": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
- "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
- "requires": {
- "shebang-regex": "1.0.0"
- }
- },
- "shebang-regex": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
- "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
- },
- "signal-exit": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
- "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
- },
- "source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
- "optional": true
- },
- "spdx-correct": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
- "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
- "requires": {
- "spdx-license-ids": "1.2.2"
- }
- },
- "spdx-expression-parse": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
- "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw="
- },
- "spdx-license-ids": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
- "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc="
- },
- "string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
- "requires": {
- "code-point-at": "1.1.0",
- "is-fullwidth-code-point": "1.0.0",
- "strip-ansi": "3.0.1"
- }
- },
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "requires": {
- "ansi-regex": "2.1.1"
- }
- },
- "strip-bom": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
- "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
- "requires": {
- "is-utf8": "0.2.1"
- }
- },
- "strip-eof": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
- "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8="
- },
- "through": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
- "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
- },
- "toml": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/toml/-/toml-2.3.3.tgz",
- "integrity": "sha512-O7L5hhSQHxuufWUdcTRPfuTh3phKfAZ/dqfxZFoxPCj2RYmpaSGLEIs016FCXItQwNr08yefUB5TSjzRYnajTA=="
- },
- "topsort": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/topsort/-/topsort-0.0.2.tgz",
- "integrity": "sha1-Ll4O6KFDlBfxAdW5stA15iAmMyE="
- },
- "type-check": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
- "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
- "requires": {
- "prelude-ls": "1.1.2"
- }
- },
- "universalify": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz",
- "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc="
- },
- "unorm": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.4.1.tgz",
- "integrity": "sha1-NkIA1fE2RsqLzURJAnEzVhR5IwA="
- },
- "validate-npm-package-license": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
- "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
- "requires": {
- "spdx-correct": "1.0.2",
- "spdx-expression-parse": "1.0.4"
- }
- },
- "wcwidth": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
- "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=",
- "requires": {
- "defaults": "1.0.3"
- }
- },
- "which": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz",
- "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==",
- "requires": {
- "isexe": "2.0.0"
- }
- },
- "which-module": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
- "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8="
- },
- "wordwrap": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
- "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus="
- },
- "wrap-ansi": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
- "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
- "requires": {
- "string-width": "1.0.2",
- "strip-ansi": "3.0.1"
- }
- },
- "y18n": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
- "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE="
- },
- "yallist": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
- "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
- },
- "yargs": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz",
- "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=",
- "requires": {
- "camelcase": "4.1.0",
- "cliui": "3.2.0",
- "decamelize": "1.2.0",
- "get-caller-file": "1.0.2",
- "os-locale": "2.1.0",
- "read-pkg-up": "2.0.0",
- "require-directory": "2.1.1",
- "require-main-filename": "1.0.1",
- "set-blocking": "2.0.0",
- "string-width": "2.1.1",
- "which-module": "2.0.0",
- "y18n": "3.2.1",
- "yargs-parser": "7.0.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
- },
- "camelcase": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
- "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0="
- },
- "find-up": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
- "requires": {
- "locate-path": "2.0.0"
- }
- },
- "is-fullwidth-code-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
- },
- "load-json-file": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
- "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
- "requires": {
- "graceful-fs": "4.1.11",
- "parse-json": "2.2.0",
- "pify": "2.3.0",
- "strip-bom": "3.0.0"
- }
- },
- "os-locale": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
- "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
- "requires": {
- "execa": "0.7.0",
- "lcid": "1.0.0",
- "mem": "1.1.0"
- }
- },
- "path-type": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
- "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
- "requires": {
- "pify": "2.3.0"
- }
- },
- "read-pkg": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
- "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
- "requires": {
- "load-json-file": "2.0.0",
- "normalize-package-data": "2.4.0",
- "path-type": "2.0.0"
- }
- },
- "read-pkg-up": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
- "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
- "requires": {
- "find-up": "2.1.0",
- "read-pkg": "2.0.0"
- }
- },
- "string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
- "requires": {
- "is-fullwidth-code-point": "2.0.0",
- "strip-ansi": "4.0.0"
- }
- },
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "requires": {
- "ansi-regex": "3.0.0"
- }
- },
- "strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM="
- },
- "which-module": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
- "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
- },
- "yargs-parser": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz",
- "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=",
- "requires": {
- "camelcase": "4.1.0"
- }
- }
- }
- },
- "yargs-parser": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz",
- "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=",
- "requires": {
- "camelcase": "3.0.0"
- }
- }
- }
-}
diff --git a/pkgs/data/fonts/iosevka/package-lock.nix b/pkgs/data/fonts/iosevka/package-lock.nix
deleted file mode 100644
index 546482cc0d2..00000000000
--- a/pkgs/data/fonts/iosevka/package-lock.nix
+++ /dev/null
@@ -1,142 +0,0 @@
-{ lib, fetchurl }:
-
-with lib; with builtins;
-
-let
- # Convert a base64-encoded string into a list of quads and padding.
- fromBase64 = str:
- let
- len = stringLength str;
- quads = 3 * len - 4 * padding;
- padding =
- if hasSuffix "==" str then 2 else
- if hasSuffix "=" str then 1 else
- 0;
- chars = stringToCharacters (substring 0 (len - padding) str);
- table = {
- A = [0 0 0];
- B = [0 0 1];
- C = [0 0 2];
- D = [0 0 3];
- E = [0 1 0];
- F = [0 1 1];
- G = [0 1 2];
- H = [0 1 3];
- I = [0 2 0];
- J = [0 2 1];
- K = [0 2 2];
- L = [0 2 3];
- M = [0 3 0];
- N = [0 3 1];
- O = [0 3 2];
- P = [0 3 3];
- Q = [1 0 0];
- R = [1 0 1];
- S = [1 0 2];
- T = [1 0 3];
- U = [1 1 0];
- V = [1 1 1];
- W = [1 1 2];
- X = [1 1 3];
- Y = [1 2 0];
- Z = [1 2 1];
- a = [1 2 2];
- b = [1 2 3];
- c = [1 3 0];
- d = [1 3 1];
- e = [1 3 2];
- f = [1 3 3];
- g = [2 0 0];
- h = [2 0 1];
- i = [2 0 2];
- j = [2 0 3];
- k = [2 1 0];
- l = [2 1 1];
- m = [2 1 2];
- n = [2 1 3];
- o = [2 2 0];
- p = [2 2 1];
- q = [2 2 2];
- r = [2 2 3];
- s = [2 3 0];
- t = [2 3 1];
- u = [2 3 2];
- v = [2 3 3];
- w = [3 0 0];
- x = [3 0 1];
- y = [3 0 2];
- z = [3 0 3];
- "0" = [3 1 0];
- "1" = [3 1 1];
- "2" = [3 1 2];
- "3" = [3 1 3];
- "4" = [3 2 0];
- "5" = [3 2 1];
- "6" = [3 2 2];
- "7" = [3 2 3];
- "8" = [3 3 0];
- "9" = [3 3 1];
- "+" = [3 3 2];
- "/" = [3 3 3];
- };
- in
- take quads (concatMap (c: table.${c}) chars);
-
- # Convert a list of quads with padding into a base16-encoded string.
- toBase16 = quads:
- if length quads == 0 then "" else
- if length quads == 1 then throw "toBase16: odd quads" else
- let
- hexad = 4 * elemAt quads 0 + elemAt quads 1;
- hexits = "0123456789abcdef";
- in
- substring hexad 1 hexits + toBase16 (drop 2 quads);
-in
-
-let
- fetchResolved = { resolved, integrity, ... }:
- let args = { url = resolved; } // integrityHash integrity; in
- fetchurl args;
- integrityHash = integrity:
- if hasPrefix "sha1-" integrity then integritySHA1 integrity else
- if hasPrefix "sha512-" integrity then integritySHA512 integrity else
- throw "don't understand integrity: ${integrity}";
- integritySHA1 = integrity:
- { sha1 = toBase16 (fromBase64 (removePrefix "sha1-" integrity)); };
- integritySHA512 = integrity:
- { sha512 = toBase16 (fromBase64 (removePrefix "sha512-" integrity)); };
-in
-
-let
- depend = name: attrs@{ version, dependencies ? {}, ... }:
- {
- inherit name version;
- src = fetchResolved attrs;
- depends = mapAttrsToList depend dependencies;
- };
- prepareDepend = { name, src, depends, ... }:
- ''
- unpackFile '${src}'
- mv package '${name}'
- mkdir -p '${name}/node_modules'
- (
- cd '${name}/node_modules'
- ${concatMapStrings prepareDepend depends}
- )
- '';
-in
-
-packageLockFile:
-
-let
- packageLock = fromJSON (readFile packageLockFile);
- depends = mapAttrsToList depend packageLock.dependencies;
-in
- ''
- mkdir -p node_modules
- (
- cd node_modules
- ${concatMapStrings prepareDepend depends}
- )
- ''
-
diff --git a/pkgs/data/fonts/iosevka/package.json b/pkgs/data/fonts/iosevka/package.json
new file mode 100644
index 00000000000..e6221b28392
--- /dev/null
+++ b/pkgs/data/fonts/iosevka/package.json
@@ -0,0 +1,26 @@
+{
+ "name": "iosevka-build-deps",
+ "version": "2.3.2",
+ "scripts": {
+ "build": "verda -f verdafile.js"
+ },
+ "dependencies": {
+ "caryll-shapeops": "^0.3.1",
+ "colors": "^1.3.3",
+ "libspiro-js": "^0.3.1",
+ "megaminx": "^0.9.0",
+ "object-assign": "^4.1.1",
+ "otfcc-ttcize": "^0.8.0",
+ "patel": "^0.33.1",
+ "patrisika-scopes": "^0.11.1",
+ "primitive-quadify-off-curves": "^0.4.0",
+ "stylus": "^0.54.5",
+ "toml": "^2.3.2",
+ "topsort": "0.0.2",
+ "ttf2woff": "^2.0.1",
+ "ttf2woff2": "^2.0.3",
+ "unorm": "^1.4.1",
+ "verda": "^1.0.0-0",
+ "yargs": "^12.0.0"
+ }
+}
diff --git a/pkgs/data/fonts/liberation-sans-narrow/default.nix b/pkgs/data/fonts/liberation-sans-narrow/default.nix
index 4a14e095cf0..51af6a20bae 100644
--- a/pkgs/data/fonts/liberation-sans-narrow/default.nix
+++ b/pkgs/data/fonts/liberation-sans-narrow/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, fontforge, pythonPackages, python }:
+{ stdenv, fetchFromGitHub, fontforge, python3Packages, python3 }:
stdenv.mkDerivation rec {
pname = "liberation-sans-narrow";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
sha256 = "1qw554jbdnqkg6pjjl4cqkgsalq3398kzvww2naw30vykcz752bm";
};
- buildInputs = [ fontforge pythonPackages.fonttools python ];
+ buildInputs = [ fontforge python3Packages.fonttools python3 ];
installPhase = ''
find . -name '*Narrow*.ttf' -exec install -m444 -Dt $out/share/fonts/truetype {} \;
diff --git a/pkgs/data/fonts/nerdfonts/default.nix b/pkgs/data/fonts/nerdfonts/default.nix
index 59b0f89e45e..454cbc09281 100644
--- a/pkgs/data/fonts/nerdfonts/default.nix
+++ b/pkgs/data/fonts/nerdfonts/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, bash, which, withFont ? "" }:
+{ stdenv, fetchFromGitHub, which, withFont ? "" }:
stdenv.mkDerivation rec {
version = "2.0.0";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
dontPatchShebangs = true;
buildInputs = [ which ];
patchPhase = ''
- sed -i -e 's|/bin/bash|${bash}/bin/bash|g' install.sh
+ patchShebangs install.sh
sed -i -e 's|font_dir="\$HOME/.local/share/fonts|font_dir="$out/share/fonts/truetype|g' install.sh
'';
installPhase = ''
diff --git a/pkgs/data/fonts/noto-fonts/default.nix b/pkgs/data/fonts/noto-fonts/default.nix
index bd0d39c7f29..04e8e581b63 100644
--- a/pkgs/data/fonts/noto-fonts/default.nix
+++ b/pkgs/data/fonts/noto-fonts/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchzip, fetchFromGitHub, optipng, cairo, pythonPackages, pkgconfig, pngquant, which, imagemagick }:
+{ stdenv, fetchzip, fetchFromGitHub, optipng, cairo, python3Packages, pkgconfig, pngquant, which, imagemagick }:
let
mkNoto = { name, weights, sha256, }:
@@ -89,20 +89,22 @@ in
maintainers = with maintainers; [ mathnerd314 ];
};
};
- noto-fonts-emoji = let version = "2018-08-10-unicode11"; in stdenv.mkDerivation {
+ noto-fonts-emoji = let
+ version = "unstable-2019-10-22";
+ in stdenv.mkDerivation {
pname = "noto-fonts-emoji";
inherit version;
src = fetchFromGitHub {
owner = "googlei18n";
repo = "noto-emoji";
- rev = "v${version}";
- sha256 = "1y54zsvwf5pqhcd9cl2zz5l52qyswn6kycvrq03zm5kqqsngbw3p";
+ rev = "018aa149d622a4fea11f01c61a7207079da301bc";
+ sha256 = "0qmnnjpp5lza6g5m3ki6hj46p891h9vl42k3acd0qw8i0jj5yn2c";
};
buildInputs = [ cairo ];
nativeBuildInputs = [ pngquant optipng which cairo pkgconfig imagemagick ]
- ++ (with pythonPackages; [ python fonttools nototools ]);
+ ++ (with python3Packages; [ python fonttools nototools ]);
postPatch = ''
sed -i 's,^PNGQUANT :=.*,PNGQUANT := ${pngquant}/bin/pngquant,' Makefile
diff --git a/pkgs/data/fonts/noto-fonts/tools.nix b/pkgs/data/fonts/noto-fonts/tools.nix
index f4c36f34074..d91ace35e2c 100644
--- a/pkgs/data/fonts/noto-fonts/tools.nix
+++ b/pkgs/data/fonts/noto-fonts/tools.nix
@@ -1,28 +1,45 @@
-{ fetchFromGitHub, pythonPackages, lib }:
+{ fetchFromGitHub, lib, fetchpatch, buildPythonPackage, isPy3k, fonttools, numpy, pillow, six, bash }:
-pythonPackages.buildPythonPackage rec {
+buildPythonPackage rec {
pname = "nototools";
- version = "unstable-2019-03-20";
+ version = "unstable-2019-10-21";
src = fetchFromGitHub {
owner = "googlefonts";
repo = "nototools";
- rev = "9c4375f07c9adc00c700c5d252df6a25d7425870";
- sha256 = "0z9i23vl6xar4kvbqbc8nznq3s690mqc5zfv280l1c02l5n41smc";
+ rev = "cae92ce958bee37748bf0602f5d7d97bb6db98ca";
+ sha256 = "1jqr0dz23rjqiyxw1w69l6ry16dwdcf3c6cysiy793g2v7pir2yi";
};
- propagatedBuildInputs = with pythonPackages; [ fonttools numpy ];
+ propagatedBuildInputs = [ fonttools numpy ];
+
+ patches = lib.optionals isPy3k [
+ # Additional Python 3 compat https://github.com/googlefonts/nototools/pull/497
+ (fetchpatch {
+ url = https://github.com/googlefonts/nototools/commit/ded1f311b3260f015b5c5b80f05f7185392c4eff.patch;
+ sha256 = "0bn0rlbddxicw0h1dnl0cibgj6xjalja2qcm563y7kk3z5cdwhgq";
+ })
+ ];
postPatch = ''
sed -ie "s^join(_DATA_DIR_PATH,^join(\"$out/third_party/ucd\",^" nototools/unicode_data.py
'';
+ checkInputs = [
+ pillow six bash
+ ];
+
+ checkPhase = ''
+ patchShebangs tests/
+ cd tests
+ rm gpos_diff_test.py # needs ttxn?
+ ./run_tests
+ '';
+
postInstall = ''
cp -r third_party $out
'';
- disabled = pythonPackages.isPy3k;
-
meta = {
description = "Noto fonts support tools and scripts plus web site generation";
license = lib.licenses.asl20;
diff --git a/pkgs/data/fonts/public-sans/default.nix b/pkgs/data/fonts/public-sans/default.nix
index 46ebe4dd4b2..326fe73341f 100644
--- a/pkgs/data/fonts/public-sans/default.nix
+++ b/pkgs/data/fonts/public-sans/default.nix
@@ -1,18 +1,22 @@
{ lib, fetchzip }:
let
- version = "1.005";
+ version = "1.007";
in fetchzip {
name = "public-sans-${version}";
url = "https://github.com/uswds/public-sans/releases/download/v${version}/public-sans-v${version}.zip";
postFetch = ''
- mkdir -p $out/share
- unzip $downloadedFile fonts/{otf,variable}/\*.\[ot\]tf -d $out/share/
+ mkdir -p $out/share/fonts
+ unzip -j $downloadedFile binaries/otf/\*.otf -d $out/share/fonts/opentype
+ unzip -j $downloadedFile binaries/variable/\*.ttf -d $out/share/fonts/truetype
+ unzip -j $downloadedFile binaries/webfonts/\*.ttf -d $out/share/fonts/truetype
+ unzip -j $downloadedFile binaries/webfonts/\*.woff -d $out/share/fonts/woff
+ unzip -j $downloadedFile binaries/webfonts/\*.woff2 -d $out/share/fonts/woff2
'';
- sha256 = "0s0zgszpi12wanl031gi3j24ci9pkbkhvsxc30skx8s1mj99cd7i";
+ sha256 = "1yzraw08qm1ig7ks850b329xp6zv2znjwl610dppax34kwhqghsm";
meta = with lib; {
description = "A strong, neutral, principles-driven, open source typeface for text or display";
diff --git a/pkgs/data/fonts/recursive/default.nix b/pkgs/data/fonts/recursive/default.nix
new file mode 100644
index 00000000000..d3d65f8e515
--- /dev/null
+++ b/pkgs/data/fonts/recursive/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchzip }:
+
+stdenv.mkDerivation rec {
+ pname = "recursive";
+ version = "1.022";
+
+ srcs = [
+ (fetchzip {
+ name = "${pname}";
+ url = "https://github.com/arrowtype/recursive/releases/download/v${version}/recursive-beta_1_022.zip";
+ sha256 = "09nr1fli7ksv8z4yb25c4xidwsqq50av18qrybsy4kqy5c22957v";
+ stripRoot = false;
+ })
+
+ (fetchzip {
+ name = "${pname}-static";
+ url = "https://github.com/arrowtype/recursive/releases/download/v${version}/recursive-static_fonts-b020.zip";
+ sha256 = "1wlj113gjm26ra9y2r2b3syis2wx0mjq2m8i8xpwscp1kflma1r6";
+ stripRoot = false;
+ })
+ ];
+
+ sourceRoot = ".";
+
+ installPhase = ''
+ mkdir -p $out/share/fonts/{opentype,truetype,woff2}
+ find -name "*.otf" -exec cp "{}" $out/share/fonts/opentype \;
+ find -name "*.ttf" -exec cp "{}" $out/share/fonts/truetype \;
+ find -name "*.woff2" -exec cp "{}" $out/share/fonts/woff2 \;
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = https://github.com/arrowtype/recursive;
+ description = "A variable font family for code & UI";
+ license = licenses.ofl;
+ maintainers = [ maintainers.eadwu ];
+ platforms = platforms.all;
+ };
+}
diff --git a/pkgs/data/fonts/ricty/default.nix b/pkgs/data/fonts/ricty/default.nix
index ab794992e45..a248bb9d494 100644
--- a/pkgs/data/fonts/ricty/default.nix
+++ b/pkgs/data/fonts/ricty/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
version = "4.1.1";
src = fetchurl {
- url = "https://www.rs.tus.ac.jp/yyusa/ricty/ricty_generator-${version}.sh";
+ url = "http://www.yusa.lab.uec.ac.jp/~yusa/ricty/ricty_generator-${version}.sh";
sha256 = "03fngb8f5hl7ifigdm5yljhs4z2x80cq8y8kna86d07ghknhzgw6";
};
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "A high-quality Japanese font based on Inconsolata and Migu 1M";
- homepage = https://www.rs.tus.ac.jp/yyusa/ricty.html;
+ homepage = http://www.yusa.lab.uec.ac.jp/~yusa/ricty.html;
license = licenses.unfree;
maintainers = [ maintainers.mikoim ];
};
diff --git a/pkgs/data/fonts/rictydiminished-with-firacode/default.nix b/pkgs/data/fonts/rictydiminished-with-firacode/default.nix
index 2e83d5b12d4..8b6c3749962 100644
--- a/pkgs/data/fonts/rictydiminished-with-firacode/default.nix
+++ b/pkgs/data/fonts/rictydiminished-with-firacode/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, fontforge, pythonFull }:
+{ stdenv, fetchgit, fontforge, python3 }:
stdenv.mkDerivation rec {
pname = "rictydiminished-with-firacode";
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [
fontforge
- (pythonFull.withPackages (ps: [
+ (python3.withPackages (ps: [
ps.jinja2
ps.py3to2
ps.fonttools
diff --git a/pkgs/data/fonts/sarasa-gothic/default.nix b/pkgs/data/fonts/sarasa-gothic/default.nix
index 2d9fbfdae05..7e073bf56d3 100644
--- a/pkgs/data/fonts/sarasa-gothic/default.nix
+++ b/pkgs/data/fonts/sarasa-gothic/default.nix
@@ -1,12 +1,12 @@
{ lib, fetchurl, p7zip }:
let
- version = "0.8.0";
+ version = "0.8.2";
in fetchurl {
name = "sarasa-gothic-${version}";
url = "https://github.com/be5invis/Sarasa-Gothic/releases/download/v${version}/sarasa-gothic-ttc-${version}.7z";
- sha256 = "0zafvzrh4180hmz351f1rvs29n8mfxf0qv6mdl7psf1f066dizs6";
+ sha256 = "17xkpklb6spi10132lq658fwvrms3fs7ksb9j098z9vaqad1k51q";
recursiveHash = true;
downloadToTemp = true;
diff --git a/pkgs/data/fonts/source-sans-pro/default.nix b/pkgs/data/fonts/source-sans-pro/default.nix
index bea5fea0f9d..5186b9fe4a5 100644
--- a/pkgs/data/fonts/source-sans-pro/default.nix
+++ b/pkgs/data/fonts/source-sans-pro/default.nix
@@ -1,9 +1,11 @@
{ lib, fetchzip }:
-fetchzip {
- name = "source-sans-pro-2.045";
+let
+ version = "3.006";
+in fetchzip {
+ name = "source-sans-pro-${version}";
- url = https://github.com/adobe-fonts/source-sans-pro/releases/download/2.045R-ro%2F1.095R-it/source-sans-pro-2.045R-ro-1.095R-it.zip;
+ url = "https://github.com/adobe-fonts/source-sans-pro/releases/download/${version}R/source-sans-pro-${version}R.zip";
postFetch = ''
mkdir -p $out/share/fonts/{opentype,truetype,variable}
@@ -12,7 +14,7 @@ fetchzip {
unzip -j $downloadedFile "*/VAR/*.otf" -d $out/share/fonts/variable
'';
- sha256 = "0xjdp226ybdcfylbpfsdgnz2bf4pj4qv1wfs6fv22hjxlzqfixf3";
+ sha256 = "11jd50cqiq2s0z39rclg73iiw2j5yzgs1glfs9psw5wbbisgysmr";
meta = with lib; {
homepage = https://adobe-fonts.github.io/source-sans-pro/;
diff --git a/pkgs/data/fonts/spleen/default.nix b/pkgs/data/fonts/spleen/default.nix
index 2964b8692dc..c5dfc1e156f 100644
--- a/pkgs/data/fonts/spleen/default.nix
+++ b/pkgs/data/fonts/spleen/default.nix
@@ -1,8 +1,8 @@
-{ lib, fetchurl }:
+{ lib, fetchurl, mkfontdir }:
let
pname = "spleen";
- version = "1.0.5";
+ version = "1.5.0";
in fetchurl {
name = "${pname}-${version}";
url = "https://github.com/fcambus/spleen/releases/download/${version}/spleen-${version}.tar.gz";
@@ -10,14 +10,15 @@ in fetchurl {
downloadToTemp = true;
recursiveHash = true;
postFetch = ''
- tar xf $downloadedFile --strip=1
+ tar xvf $downloadedFile --strip=1
d="$out/share/fonts/X11/misc/spleen"
- gzip -n9 *.pcf
- install -Dm644 *.pcf.gz -t $d
- install -Dm644 *.bdf -t $d
+ install -Dm644 *.{pcf.gz,psfu,bdf} -t $d
install -m644 fonts.alias-spleen $d/fonts.alias
+
+ # create fonts.dir so NixOS xorg module adds to fp
+ ${mkfontdir}/bin/mkfontdir $d
'';
- sha256 = "0144a0lkkl5qx0a8sapymcayj5lp5cs9nfgpbmg3427n41pkqfbb";
+ sha256 = "13ndyw1m6c778k7jr7qwbfg28gqmpcgksprn2mjgsv75wvy51z19";
meta = with lib; {
description = "Monospaced bitmap fonts";
diff --git a/pkgs/data/fonts/stix-two/default.nix b/pkgs/data/fonts/stix-two/default.nix
index 1d5ed37767c..c71b51ad75d 100644
--- a/pkgs/data/fonts/stix-two/default.nix
+++ b/pkgs/data/fonts/stix-two/default.nix
@@ -1,18 +1,22 @@
-{ stdenv, fetchzip }:
+{ stdenv, fetchFromGitHub }:
let
- version = "2.0.0";
-in fetchzip {
+ version = "2.0.2";
+in fetchFromGitHub {
name = "stix-two-${version}";
- url = "https://github.com/stipub/stixfonts/archive/${version}.zip";
+ owner = "stipub";
+ repo = "stixfonts";
+ rev = "v${version}";
postFetch = ''
- mkdir -p $out/share/fonts
- unzip -j $downloadedFile '*/OTF/*.otf' -d $out/share/fonts/opentype
+ tar xf $downloadedFile --strip=1
+ install -m444 -Dt $out/share/fonts/opentype/ OTF/*.otf
+ install -m444 -Dt $out/share/fonts/woff/ WOFF/*.woff
+ install -m444 -Dt $out/share/fonts/woff2/ WOFF2/*.woff2
'';
- sha256 = "19i30d2xjk52bjj7xva1hnlyh58yd5phas1njcc8ldcz87a1lhql";
+ sha256 = "1ah8s0cb67yv4ll8zfs01mdh9m5i2lbkrfbmkhi1xdid6pxsk32x";
meta = with stdenv.lib; {
homepage = http://www.stixfonts.org/;
diff --git a/pkgs/data/fonts/twitter-color-emoji/default.nix b/pkgs/data/fonts/twitter-color-emoji/default.nix
index 5c01283d3e9..4e464f37022 100644
--- a/pkgs/data/fonts/twitter-color-emoji/default.nix
+++ b/pkgs/data/fonts/twitter-color-emoji/default.nix
@@ -3,28 +3,20 @@
{ stdenv
, fetchFromGitHub
+, fetchpatch
, cairo
-, imagemagick
+, graphicsmagick
, pkg-config
, pngquant
-, python2
+, python3
, which
, zopfli
+, noto-fonts-emoji
}:
let
version = "12.1.2";
- # Cannot use noto-fonts-emoji.src since it is too old
- # and still tries to use vendored pngquant.
- notoSrc = fetchFromGitHub {
- name = "noto";
- owner = "googlefonts";
- repo = "noto-emoji";
- rev = "833a43d03246a9325e748a2d783006454d76ff66";
- sha256 = "1g6ikzk8banm3ihqm9g27ggjq2mn1b1hq3zhpl13lxid6mp60s4a";
- };
-
twemojiSrc = fetchFromGitHub {
name = "twemoji";
owner = "twitter";
@@ -33,36 +25,42 @@ let
sha256 = "0vzmlp83vnk4njcfkn03jcc1vkg2rf12zf5kj3p3a373xr4ds1zn";
};
- python = python2.withPackages (pp: with pp; [
- nototools
- ]);
in
stdenv.mkDerivation rec {
pname = "twitter-color-emoji";
inherit version;
srcs = [
- notoSrc
+ noto-fonts-emoji.src
twemojiSrc
];
- sourceRoot = notoSrc.name;
+ sourceRoot = noto-fonts-emoji.src.name;
postUnpack = ''
chmod -R +w ${twemojiSrc.name}
- mv ${twemojiSrc.name} ${notoSrc.name}
+ mv ${twemojiSrc.name} ${noto-fonts-emoji.src.name}
'';
nativeBuildInputs = [
cairo
- imagemagick
+ graphicsmagick
pkg-config
pngquant
- python
+ python3
+ python3.pkgs.nototools
which
zopfli
];
+ patches = [
+ # ImageMagick -> GrahphicsMagick
+ (fetchpatch {
+ url = "https://src.fedoraproject.org/rpms/twitter-twemoji-fonts/raw/3bc176c10ced2824fe03da5ff561e22a36bf8ccd/f/noto-emoji-use-gm.patch";
+ sha256 = "0yfmfzaaiq5163c06172g4r734aysiqyv1s28siv642vqzsqh4i2";
+ })
+ ];
+
postPatch = let
templateSubstitutions = stdenv.lib.concatStringsSep "; " [
''s#Noto Color Emoji#Twitter Color Emoji#''
diff --git a/pkgs/data/fonts/victor-mono/default.nix b/pkgs/data/fonts/victor-mono/default.nix
index e886ad7578e..74f851d77b5 100644
--- a/pkgs/data/fonts/victor-mono/default.nix
+++ b/pkgs/data/fonts/victor-mono/default.nix
@@ -2,7 +2,7 @@
let
pname = "victor-mono";
- version = "1.2.5";
+ version = "1.2.7";
in fetchFromGitHub rec {
name = "${pname}-${version}";
@@ -18,7 +18,7 @@ in fetchFromGitHub rec {
# Both methods produce the same file, but this way
# we can safely reason about what version it is.
postFetch = ''
- tar xvf $downloadedFile --strip-components=2 ${name}/public/VictorMonoAll.zip
+ tar xvf $downloadedFile --strip-components=2 ${pname}-${version}/public/VictorMonoAll.zip
mkdir -p $out/share/fonts/{true,open}type/${pname}
@@ -26,7 +26,7 @@ in fetchFromGitHub rec {
unzip -j VictorMonoAll.zip \*.otf -d $out/share/fonts/opentype/${pname}
'';
- sha256 = "0dj5h45qk6abggj6mgm19sb0a7q0v4x41f2zds1ab79yd22gbjns";
+ sha256 = "0x4ydp11ry94wkkspnmy1xpzqq3m45xg60z1hq4ll9gmlccaknj0";
meta = with lib; {
description = "Free programming font with cursive italics and ligatures";
diff --git a/pkgs/data/fonts/vista-fonts/default.nix b/pkgs/data/fonts/vista-fonts/default.nix
index e8784d90e7f..59cff1b0f47 100644
--- a/pkgs/data/fonts/vista-fonts/default.nix
+++ b/pkgs/data/fonts/vista-fonts/default.nix
@@ -3,7 +3,7 @@
fetchzip {
name = "vista-fonts-1";
- url = http://download.microsoft.com/download/f/5/a/f5a3df76-d856-4a61-a6bd-722f52a5be26/PowerPointViewer.exe;
+ url = https://web.archive.org/web/20171225132744/http://download.microsoft.com/download/E/6/7/E675FFFC-2A6D-4AB0-B3EB-27C9F8C8F696/PowerPointViewer.exe;
postFetch = ''
${cabextract}/bin/cabextract --lowercase --filter ppviewer.cab $downloadedFile
@@ -21,7 +21,7 @@ fetchzip {
done
'';
- sha256 = "1q2d24c203vkl6pwk86frmaj6jra49hr9mydq7cnlx4hilqslw3g";
+ sha256 = "1l27zg5jraa16zm11d3qz1w7m6f1ih3xy5avww454ylm50fw6z11";
meta = {
description = "Some TrueType fonts from Microsoft Windows Vista (Calibri, Cambria, Candara, Consolas, Constantia, Corbel)";
@@ -31,6 +31,5 @@ fetchzip {
# Set a non-zero priority to allow easy overriding of the
# fontconfig configuration files.
priority = 5;
- broken = true; # source url is 404
};
}
diff --git a/pkgs/data/fonts/work-sans/default.nix b/pkgs/data/fonts/work-sans/default.nix
new file mode 100644
index 00000000000..16a0e9ac021
--- /dev/null
+++ b/pkgs/data/fonts/work-sans/default.nix
@@ -0,0 +1,29 @@
+{ lib, fetchFromGitHub }:
+
+let
+ version = "1.6";
+in fetchFromGitHub {
+ name = "work-sans-${version}";
+
+ owner = "weiweihuanghuang";
+ repo = "Work-Sans";
+ rev = "v${version}";
+
+ postFetch = ''
+ tar xf $downloadedFile --strip=1
+ install -m444 -Dt $out/share/fonts/opentype/ fonts/desktop/*.otf
+ install -m444 -Dt $out/share/fonts/truetype/ fonts/webfonts/ttf/*.ttf
+ install -m444 -Dt $out/share/fonts/woff/ fonts/webfonts/woff/*.woff
+ install -m444 -Dt $out/share/fonts/woff2/ fonts/webfonts/woff2/*.woff2
+ '';
+
+ sha256 = "01kjidk6zv80rqxapcdwhd9wxzrjfc6lj4gkf6dwa4sskw5x3b8a";
+
+ meta = with lib; {
+ description = "A grotesque sans";
+ homepage = "https://weiweihuanghuang.github.io/Work-Sans/";
+ license = licenses.ofl;
+ maintainers = [ maintainers.marsam ];
+ platforms = platforms.all;
+ };
+}
diff --git a/pkgs/data/fonts/xits-math/default.nix b/pkgs/data/fonts/xits-math/default.nix
index 24e9f2a3935..db0ed425dee 100644
--- a/pkgs/data/fonts/xits-math/default.nix
+++ b/pkgs/data/fonts/xits-math/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchFromGitHub, python2Packages, fontforge }:
+{ stdenv, fetchFromGitHub, python3Packages}:
stdenv.mkDerivation rec {
pname = "xits-math";
- version = "1.200";
+ version = "1.301";
src = fetchFromGitHub {
owner = "alif-type";
repo = "xits";
rev = "v${version}";
- sha256 = "0s1qqqg3zv9k4wqn1vkx0z895fjccg96n58syc1d5f2wba9kyfcm";
+ sha256 = "043g0gnjc7wn1szvrs0rc1vvrq1qmhqh45b0y2kwrlxsgprpv8ll";
};
- nativeBuildInputs = [ fontforge ] ++ (with python2Packages; [ python fonttools ]);
+ nativeBuildInputs = (with python3Packages; [ python fonttools fontforge ]);
postPatch = ''
rm *.otf
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
'';
meta = with stdenv.lib; {
- homepage = https://github.com/khaledhosny/xits-math;
+ homepage = "https://github.com/alif-type/xits";
description = "OpenType implementation of STIX fonts with math support";
license = licenses.ofl;
platforms = platforms.all;
diff --git a/pkgs/data/icons/arc-icon-theme/default.nix b/pkgs/data/icons/arc-icon-theme/default.nix
index 6529e5c571c..b0a8a05fc68 100644
--- a/pkgs/data/icons/arc-icon-theme/default.nix
+++ b/pkgs/data/icons/arc-icon-theme/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, gtk3, moka-icon-theme }:
+{ stdenv, fetchFromGitHub, autoreconfHook, gtk3, moka-icon-theme, hicolor-icon-theme }:
stdenv.mkDerivation rec {
name = "${package-name}-${version}";
@@ -14,6 +14,12 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ autoreconfHook gtk3 moka-icon-theme ];
+ propagatedBuildInputs = [
+ hicolor-icon-theme
+ ];
+
+ dontDropIconThemeCache = true;
+
postFixup = "gtk-update-icon-cache $out/share/icons/Arc";
meta = with stdenv.lib; {
diff --git a/pkgs/data/icons/bibata-cursors/default.nix b/pkgs/data/icons/bibata-cursors/default.nix
index 2e99c3d9232..a7a403726fa 100644
--- a/pkgs/data/icons/bibata-cursors/default.nix
+++ b/pkgs/data/icons/bibata-cursors/default.nix
@@ -1,6 +1,6 @@
-{ fetchFromGitHub, gnome-themes-extra, inkscape, stdenv, xcursorgen }:
+{ stdenvNoCC, fetchFromGitHub, gnome-themes-extra, inkscape, xcursorgen }:
-stdenv.mkDerivation rec {
+stdenvNoCC.mkDerivation rec {
pname = "bibata-cursors";
version = "0.4.1";
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
cp -pr Bibata_* $out/share/icons/
'';
- meta = with stdenv.lib; {
+ meta = with stdenvNoCC.lib; {
description = "Material Based Cursor";
homepage = https://github.com/KaizIqbal/Bibata_Cursor;
license = licenses.gpl3;
diff --git a/pkgs/data/icons/bibata-cursors/extra.nix b/pkgs/data/icons/bibata-cursors/extra.nix
new file mode 100644
index 00000000000..dc0ead64974
--- /dev/null
+++ b/pkgs/data/icons/bibata-cursors/extra.nix
@@ -0,0 +1,41 @@
+{ stdenvNoCC, fetchFromGitHub, gnome-themes-extra, inkscape, xcursorgen }:
+
+stdenvNoCC.mkDerivation rec {
+ pname = "bibata-extra-cursors";
+ version = "unstable-2018-10-28";
+
+ src = fetchFromGitHub {
+ owner = "KaizIqbal";
+ repo = "Bibata_Extra_Cursor";
+ rev = "66fb64b8dbe830e3f7ba2c2bdc4dacae7c438789";
+ sha256 = "1xb7v06sbxbwzd7cnghv9c55lpbbkcaf1nswdrqy87gd0bnpdd2n";
+ };
+
+ postPatch = ''
+ patchShebangs .
+ substituteInPlace build.sh --replace "gksu " ""
+ '';
+
+ nativeBuildInputs = [
+ gnome-themes-extra
+ inkscape
+ xcursorgen
+ ];
+
+ buildPhase = ''
+ HOME="$NIX_BUILD_ROOT" ./build.sh
+ '';
+
+ installPhase = ''
+ install -dm 0755 $out/share/icons
+ cp -pr Bibata_* $out/share/icons/
+ '';
+
+ meta = with stdenvNoCC.lib; {
+ description = "Cursors Based on Bibata";
+ homepage = https://github.com/KaizIqbal/Bibata_Extra_Cursor;
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ dtzWill ];
+ };
+}
diff --git a/pkgs/data/icons/bibata-cursors/translucent.nix b/pkgs/data/icons/bibata-cursors/translucent.nix
new file mode 100644
index 00000000000..d5b541317b5
--- /dev/null
+++ b/pkgs/data/icons/bibata-cursors/translucent.nix
@@ -0,0 +1,41 @@
+{ stdenvNoCC, fetchFromGitHub, gnome-themes-extra, inkscape, xcursorgen }:
+
+stdenvNoCC.mkDerivation rec {
+ pname = "bibata-cursors-translucent";
+ version = "unstable-2019-09-13";
+
+ src = fetchFromGitHub {
+ owner = "Silicasandwhich";
+ repo = "Bibata_Cursor_Translucent";
+ rev = "2eed979d817148817ea6bca15c594809aa9c2cb9";
+ sha256 = "1s688v40xx9jbvfncb4kgfnnxkmknji7igqx7c4q1ly9s7imbd1f";
+ };
+
+ postPatch = ''
+ patchShebangs .
+ substituteInPlace build.sh --replace "gksu " ""
+ '';
+
+ nativeBuildInputs = [
+ gnome-themes-extra
+ inkscape
+ xcursorgen
+ ];
+
+ buildPhase = ''
+ HOME="$NIX_BUILD_ROOT" ./build.sh
+ '';
+
+ installPhase = ''
+ install -dm 0755 $out/share/icons
+ cp -pr Bibata_* $out/share/icons/
+ '';
+
+ meta = with stdenvNoCC.lib; {
+ description = "Translucent Varient of the Material Based Cursor";
+ homepage = https://github.com/Silicasandwhich/Bibata_Cursor_Translucent;
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ dtzWill ];
+ };
+}
diff --git a/pkgs/data/icons/elementary-xfce-icon-theme/default.nix b/pkgs/data/icons/elementary-xfce-icon-theme/default.nix
index 5a566bef6ef..221974c7941 100644
--- a/pkgs/data/icons/elementary-xfce-icon-theme/default.nix
+++ b/pkgs/data/icons/elementary-xfce-icon-theme/default.nix
@@ -2,16 +2,22 @@
stdenv.mkDerivation rec {
pname = "elementary-xfce-icon-theme";
- version = "0.13.1";
+ version = "0.14";
src = fetchFromGitHub {
owner = "shimmerproject";
repo = "elementary-xfce";
rev = "v${version}";
- sha256 = "16msdrazhbv80cvh5ffvgj13xmkpf87r7mq6xz071fza6nv7g0jn";
+ sha256 = "00sk6sv0kkfb3q0jqwcllzawi30rw8nfkkfn5l1qwqha48izw3r4";
};
- nativeBuildInputs = [ pkgconfig gdk-pixbuf librsvg optipng gtk3 hicolor-icon-theme ];
+ nativeBuildInputs = [ pkgconfig gdk-pixbuf librsvg optipng gtk3 ];
+
+ propagatedBuildInputs = [
+ hicolor-icon-theme
+ ];
+
+ dontDropIconThemeCache = true;
postPatch = ''
substituteInPlace svgtopng/Makefile --replace "-O0" "-O"
diff --git a/pkgs/data/icons/faba-icon-theme/default.nix b/pkgs/data/icons/faba-icon-theme/default.nix
index c15e0f4e551..efce0a16e13 100644
--- a/pkgs/data/icons/faba-icon-theme/default.nix
+++ b/pkgs/data/icons/faba-icon-theme/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, meson, ninja, python3, gtk3, pantheon }:
+{ stdenv, fetchFromGitHub, meson, ninja, python3, gtk3, pantheon, hicolor-icon-theme }:
stdenv.mkDerivation rec {
name = "${package-name}-${version}";
@@ -14,6 +14,12 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ meson ninja python3 gtk3 pantheon.elementary-icon-theme ];
+ propagatedBuildInputs = [
+ hicolor-icon-theme
+ ];
+
+ dontDropIconThemeCache = true;
+
postPatch = ''
patchShebangs meson/post_install.py
'';
diff --git a/pkgs/data/icons/faba-mono-icons/default.nix b/pkgs/data/icons/faba-mono-icons/default.nix
index 99488a26f2b..96bd4031150 100644
--- a/pkgs/data/icons/faba-mono-icons/default.nix
+++ b/pkgs/data/icons/faba-mono-icons/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, gtk3, moka-icon-theme }:
+{ stdenv, fetchFromGitHub, autoreconfHook, gtk3, moka-icon-theme, hicolor-icon-theme }:
stdenv.mkDerivation rec {
pname = "faba-mono-icons";
@@ -13,6 +13,12 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ autoreconfHook gtk3 moka-icon-theme ];
+ propagatedBuildInputs = [
+ hicolor-icon-theme
+ ];
+
+ dontDropIconThemeCache = true;
+
postFixup = ''
for theme in $out/share/icons/*; do
gtk-update-icon-cache $theme
diff --git a/pkgs/data/icons/hicolor-icon-theme/setup-hook.sh b/pkgs/data/icons/hicolor-icon-theme/setup-hook.sh
index 29306cb316a..f07bab4b269 100644
--- a/pkgs/data/icons/hicolor-icon-theme/setup-hook.sh
+++ b/pkgs/data/icons/hicolor-icon-theme/setup-hook.sh
@@ -1,21 +1,13 @@
+# shellcheck shell=bash
+
# Populate XDG_ICON_DIRS
hicolorIconThemeHook() {
# where to find icon themes
if [ -d "$1/share/icons" ]; then
- addToSearchPath XDG_ICON_DIRS $1/share
+ addToSearchPath XDG_ICON_DIRS "$1/share"
fi
-
}
# I think this is meant to be a runtime dep
-addEnvHooks "$hostOffset" hicolorIconThemeHook
-
-# Remove icon cache
-hicolorPreFixupPhase() {
- rm -f $out/share/icons/hicolor/icon-theme.cache
- rm -f $out/share/icons/HighContrast/icon-theme.cache
-}
-
-preFixupPhases="$preFixupPhases hicolorPreFixupPhase"
-
+addEnvHooks "${hostOffset:?}" hicolorIconThemeHook
diff --git a/pkgs/data/icons/iconpack-obsidian/default.nix b/pkgs/data/icons/iconpack-obsidian/default.nix
index f7015621853..64a982f6037 100644
--- a/pkgs/data/icons/iconpack-obsidian/default.nix
+++ b/pkgs/data/icons/iconpack-obsidian/default.nix
@@ -1,18 +1,24 @@
-{ stdenv, fetchFromGitHub, gtk3 }:
+{ stdenv, fetchFromGitHub, gtk3, hicolor-icon-theme }:
stdenv.mkDerivation rec {
pname = "iconpack-obsidian";
- version = "4.3";
+ version = "4.9";
src = fetchFromGitHub {
owner = "madmaxms";
- repo = "iconpack-obsidian";
+ repo = pname;
rev = "v${version}";
- sha256 = "0np2s4mbaykwwv516959r5d9gfdmqb5hadsx18x2if4751a9qz49";
+ sha256 = "1w0lnr08gd0cnzv3n5094jqb7dpbpwwizfhvifdir0xsls1sf129";
};
nativeBuildInputs = [ gtk3 ];
+ propagatedBuildInputs = [
+ hicolor-icon-theme
+ ];
+
+ dontDropIconThemeCache = true;
+
installPhase = ''
mkdir -p $out/share/icons
mv Obsidian* $out/share/icons
diff --git a/pkgs/data/icons/maia-icon-theme/default.nix b/pkgs/data/icons/maia-icon-theme/default.nix
index a623af20604..20bc8dc0a58 100644
--- a/pkgs/data/icons/maia-icon-theme/default.nix
+++ b/pkgs/data/icons/maia-icon-theme/default.nix
@@ -21,10 +21,12 @@ stdenv.mkDerivation {
kdeFrameworks.kwindowsystem
];
- buildInputs = [
+ propagatedBuildInputs = [
hicolor-icon-theme
];
+ dontDropIconThemeCache = true;
+
postFixup = ''
for theme in $out/share/icons/*; do
gtk-update-icon-cache $theme
diff --git a/pkgs/data/icons/moka-icon-theme/default.nix b/pkgs/data/icons/moka-icon-theme/default.nix
index 83c4b19472a..539dfaa2d10 100644
--- a/pkgs/data/icons/moka-icon-theme/default.nix
+++ b/pkgs/data/icons/moka-icon-theme/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, meson, ninja, gtk3, python3, faba-icon-theme }:
+{ stdenv, fetchFromGitHub, meson, ninja, gtk3, python3, faba-icon-theme, hicolor-icon-theme }:
stdenv.mkDerivation rec {
pname = "moka-icon-theme";
@@ -13,6 +13,12 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ meson ninja gtk3 python3 faba-icon-theme ];
+ propagatedBuildInputs = [
+ hicolor-icon-theme
+ ];
+
+ dontDropIconThemeCache = true;
+
postPatch = ''
patchShebangs meson/post_install.py
'';
diff --git a/pkgs/data/icons/numix-icon-theme-circle/default.nix b/pkgs/data/icons/numix-icon-theme-circle/default.nix
index b545856f703..ed4b2581e85 100644
--- a/pkgs/data/icons/numix-icon-theme-circle/default.nix
+++ b/pkgs/data/icons/numix-icon-theme-circle/default.nix
@@ -1,24 +1,34 @@
-{ stdenv, fetchFromGitHub, gtk3, numix-icon-theme }:
+{ stdenv, fetchFromGitHub, gtk3, numix-icon-theme, hicolor-icon-theme }:
stdenv.mkDerivation rec {
pname = "numix-icon-theme-circle";
- version = "19.02.22";
+ version = "19.09.20";
src = fetchFromGitHub {
owner = "numixproject";
repo = pname;
rev = version;
- sha256 = "10jh633rllp9yjfkjjyf8455n84q7ppxw1kk9dp1rsg4dq327ks7";
+ sha256 = "1pmz2dy1580ln5m57xw3vhqrjhviayisgbs2km3i77hyx66hiivi";
};
nativeBuildInputs = [ gtk3 numix-icon-theme ];
+ propagatedBuildInputs = [
+ hicolor-icon-theme
+ ];
+
+ dontDropIconThemeCache = true;
+
installPhase = ''
install -dm 755 $out/share/icons
cp -dr --no-preserve='ownership' Numix-Circle{,-Light} $out/share/icons/
'';
postFixup = ''
+ for panel in $out/share/icons/*/*/panel; do
+ ln -sf $(realpath ${numix-icon-theme}/share/icons/Numix/16/$(readlink $panel)) $panel
+ done
+
for theme in $out/share/icons/*; do
gtk-update-icon-cache $theme
done
@@ -30,6 +40,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3;
# darwin cannot deal with file names differing only in case
platforms = platforms.linux;
- maintainers = with maintainers; [ ];
+ maintainers = with maintainers; [ romildo ];
};
}
diff --git a/pkgs/data/icons/numix-icon-theme-square/default.nix b/pkgs/data/icons/numix-icon-theme-square/default.nix
index ddec15e5f31..620ef02fde7 100644
--- a/pkgs/data/icons/numix-icon-theme-square/default.nix
+++ b/pkgs/data/icons/numix-icon-theme-square/default.nix
@@ -1,24 +1,34 @@
-{ stdenv, fetchFromGitHub, gtk3, numix-icon-theme }:
+{ stdenv, fetchFromGitHub, gtk3, numix-icon-theme, hicolor-icon-theme }:
stdenv.mkDerivation rec {
pname = "numix-icon-theme-square";
- version = "19.02.22";
+ version = "19.09.20";
src = fetchFromGitHub {
owner = "numixproject";
repo = pname;
rev = version;
- sha256 = "0qn0s7cd795pm0hbx85gxd1s272zxrzf3r9r6da54h149v3wkgzw";
+ sha256 = "0q3d4d4wndknz3043bh8ardjvdpds2hkzk73kyyh1848wg4ff0ly";
};
nativeBuildInputs = [ gtk3 numix-icon-theme ];
+ propagatedBuildInputs = [
+ hicolor-icon-theme
+ ];
+
+ dontDropIconThemeCache = true;
+
installPhase = ''
mkdir -p $out/share/icons
cp -a Numix-Square{,-Light} $out/share/icons/
'';
postFixup = ''
+ for panel in $out/share/icons/*/*/panel; do
+ ln -sf $(realpath ${numix-icon-theme}/share/icons/Numix/16/$(readlink $panel)) $panel
+ done
+
for theme in $out/share/icons/*; do
gtk-update-icon-cache $theme
done
diff --git a/pkgs/data/icons/numix-icon-theme/default.nix b/pkgs/data/icons/numix-icon-theme/default.nix
index e41373f536f..d3bcdb12d3d 100644
--- a/pkgs/data/icons/numix-icon-theme/default.nix
+++ b/pkgs/data/icons/numix-icon-theme/default.nix
@@ -2,20 +2,26 @@
stdenv.mkDerivation rec {
pname = "numix-icon-theme";
- version = "18.07.17";
+ version = "19.09.20";
src = fetchFromGitHub {
owner = "numixproject";
repo = pname;
rev = version;
- sha256 = "0clh55kmhc52d33dfm2c6h3lg6ddfh8a088ir9lv1camn9kj55bd";
+ sha256 = "0pn3x0mmsph777lwhg890ck366p31bjl3755h4pv161ym08d4z9w";
};
- nativeBuildInputs = [ gtk3 hicolor-icon-theme ];
+ nativeBuildInputs = [ gtk3 ];
+
+ propagatedBuildInputs = [
+ hicolor-icon-theme
+ ];
+
+ dontDropIconThemeCache = true;
installPhase = ''
mkdir -p $out/share/icons
- mv Numix{,-Light} $out/share/icons
+ cp -a Numix{,-Light} $out/share/icons/
'';
postFixup = ''
diff --git a/pkgs/data/icons/paper-icon-theme/default.nix b/pkgs/data/icons/paper-icon-theme/default.nix
index 5359b2229f3..477960972a7 100644
--- a/pkgs/data/icons/paper-icon-theme/default.nix
+++ b/pkgs/data/icons/paper-icon-theme/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, meson, ninja, gtk3, python3 }:
+{ stdenv, fetchFromGitHub, meson, ninja, gtk3, python3, hicolor-icon-theme }:
stdenv.mkDerivation rec {
pname = "paper-icon-theme";
@@ -13,6 +13,12 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ meson ninja gtk3 python3 ];
+ propagatedBuildInputs = [
+ hicolor-icon-theme
+ ];
+
+ dontDropIconThemeCache = true;
+
postPatch = ''
patchShebangs meson/post_install.py
'';
diff --git a/pkgs/data/icons/papirus-icon-theme/default.nix b/pkgs/data/icons/papirus-icon-theme/default.nix
index 3f9cff62ee4..88611faa308 100644
--- a/pkgs/data/icons/papirus-icon-theme/default.nix
+++ b/pkgs/data/icons/papirus-icon-theme/default.nix
@@ -1,18 +1,22 @@
-{ stdenv, fetchFromGitHub, gtk3 }:
+{ stdenv, fetchFromGitHub, gtk3, hicolor-icon-theme }:
stdenv.mkDerivation rec {
pname = "papirus-icon-theme";
- version = "20190802";
+ version = "20191101";
src = fetchFromGitHub {
owner = "PapirusDevelopmentTeam";
repo = pname;
rev = version;
- sha256 = "1i6nh1vy2cjqh4fw1mzq5v4ah613ghf018g8w0npxhj9qi3pyjm5";
+ sha256 = "17as9i5b9wqzvj08hwxqk9dlv6hrvkylns85s8gzhv6b5x2q5ma3";
};
nativeBuildInputs = [ gtk3 ];
+ propagatedBuildInputs = [ hicolor-icon-theme ];
+
+ dontDropIconThemeCache = true;
+
installPhase = ''
mkdir -p $out/share/icons
mv {,e}Papirus* $out/share/icons
diff --git a/pkgs/data/icons/papirus-maia-icon-theme/default.nix b/pkgs/data/icons/papirus-maia-icon-theme/default.nix
new file mode 100644
index 00000000000..e15e64c2101
--- /dev/null
+++ b/pkgs/data/icons/papirus-maia-icon-theme/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, cmake, gtk3 }:
+
+stdenv.mkDerivation rec {
+ pname = "papirus-maia-icon-theme";
+ version = "2019-07-26";
+
+ src = fetchFromGitHub {
+ owner = "Ste74";
+ repo = pname;
+ rev = "90d47c817cc0edeed8b5a90335e669948ff4a116";
+ sha256 = "0d6lvdg5nw5wfaq8lxszcws174vg12ywkrqzn6czimhmhp48jf5p";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ gtk3
+ ];
+
+ postPatch = ''
+ substituteInPlace CMakeLists.txt --replace /usr "$out"
+ '';
+
+ postFixup = ''
+ for theme in $out/share/icons/*; do
+ gtk-update-icon-cache $theme
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Manjaro variation of Papirus icon theme";
+ homepage = https://github.com/Ste74/papirus-maia-icon-theme;
+ license = licenses.lgpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ romildo ];
+ };
+}
diff --git a/pkgs/data/icons/qogir-icon-theme/default.nix b/pkgs/data/icons/qogir-icon-theme/default.nix
new file mode 100644
index 00000000000..b7ae27aac68
--- /dev/null
+++ b/pkgs/data/icons/qogir-icon-theme/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, gtk3 }:
+
+stdenv.mkDerivation rec {
+ pname = "qogir-icon-theme";
+ version = "2019-09-15";
+
+ src = fetchFromGitHub {
+ owner = "vinceliuice";
+ repo = pname;
+ rev = "4e1b6c693615bc2c7c7a11df6f4b90f2e6fb67db";
+ sha256 = "1vp1wp4fgmy5af8z8nb3m6wgmb6wbwlvx5smf9dxfcn254hdg8g0";
+ };
+
+ nativeBuildInputs = [ gtk3 ];
+
+ installPhase = ''
+ patchShebangs install.sh
+ mkdir -p $out/share/icons
+ name= ./install.sh -d $out/share/icons
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A colorful design icon theme for linux desktops";
+ homepage = https://github.com/vinceliuice/Qogir-icon-theme;
+ license = with licenses; [ gpl3 ];
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ romildo ];
+ };
+}
diff --git a/pkgs/data/icons/tango-icon-theme/default.nix b/pkgs/data/icons/tango-icon-theme/default.nix
index d38f6485f13..a4a7237f974 100644
--- a/pkgs/data/icons/tango-icon-theme/default.nix
+++ b/pkgs/data/icons/tango-icon-theme/default.nix
@@ -1,5 +1,5 @@
{ stdenv, fetchurl, intltool, pkgconfig, iconnamingutils, imagemagick, librsvg
-, gtk/*any version*/
+, gtk/*any version*/, hicolor-icon-theme
}:
stdenv.mkDerivation rec {
@@ -15,6 +15,12 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ intltool iconnamingutils imagemagick librsvg ];
+ propagatedBuildInputs = [
+ hicolor-icon-theme
+ ];
+
+ dontDropIconThemeCache = true;
+
configureFlags = [ "--enable-png-creation" ];
postInstall = '''${gtk.out}/bin/gtk-update-icon-cache' "$out/share/icons/Tango" '';
diff --git a/pkgs/data/icons/vanilla-dmz/default.nix b/pkgs/data/icons/vanilla-dmz/default.nix
index c4a8fd44a61..f271d7a44e6 100644
--- a/pkgs/data/icons/vanilla-dmz/default.nix
+++ b/pkgs/data/icons/vanilla-dmz/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchzip, xorg }:
+{ stdenv, lib, fetchzip, xorg, hicolor-icon-theme }:
stdenv.mkDerivation rec {
pname = "vanilla-dmz";
@@ -8,6 +8,10 @@ stdenv.mkDerivation rec {
sha256 = "1l0c0svk7dy0d7icg7j2181wdn3fvks5gmyqnvjk749ppy5ks8mj";
};
buildInputs = [ xorg.xcursorgen ];
+ propagatedBuildInputs = [
+ hicolor-icon-theme
+ ];
+ dontDropIconThemeCache = true;
buildPhase = ''
cd DMZ-White/pngs; ./make.sh; cd -
cd DMZ-Black/pngs; ./make.sh; cd -
diff --git a/pkgs/data/icons/zafiro-icons/default.nix b/pkgs/data/icons/zafiro-icons/default.nix
index 942f79ca6e4..0b28a02ba4d 100644
--- a/pkgs/data/icons/zafiro-icons/default.nix
+++ b/pkgs/data/icons/zafiro-icons/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, gtk3 }:
+{ stdenv, fetchFromGitHub, gtk3, hicolor-icon-theme }:
stdenv.mkDerivation rec {
pname = "zafiro-icons";
@@ -13,6 +13,12 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ gtk3 ];
+ propagatedBuildInputs = [
+ hicolor-icon-theme
+ ];
+
+ dontDropIconThemeCache = true;
+
installPhase = ''
mkdir -p $out/share/icons/Zafiro-icons
cp -a * $out/share/icons/Zafiro-icons
diff --git a/pkgs/data/misc/cacert/setup-hook.sh b/pkgs/data/misc/cacert/setup-hook.sh
index e969596752f..77b68a5c251 100644
--- a/pkgs/data/misc/cacert/setup-hook.sh
+++ b/pkgs/data/misc/cacert/setup-hook.sh
@@ -1,7 +1,3 @@
-cacertHook() {
- export NIX_SSL_CERT_FILE=@out@/etc/ssl/certs/ca-bundle.crt
- # left for compatibility
- export SSL_CERT_FILE=@out@/etc/ssl/certs/ca-bundle.crt
-}
-
-addEnvHooks "$targetOffset" cacertHook
+export NIX_SSL_CERT_FILE=@out@/etc/ssl/certs/ca-bundle.crt
+# left for compatibility
+export SSL_CERT_FILE=@out@/etc/ssl/certs/ca-bundle.crt
diff --git a/pkgs/data/misc/hackage/default.nix b/pkgs/data/misc/hackage/default.nix
index 3500eaa6326..0537a5d5373 100644
--- a/pkgs/data/misc/hackage/default.nix
+++ b/pkgs/data/misc/hackage/default.nix
@@ -1,6 +1,6 @@
{ fetchurl }:
fetchurl {
- url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/93bcfb09798da885d29304fa4dab1e234e3b728e.tar.gz";
- sha256 = "1mv5kxqldakapzbmch2b88mynng268njq3dxbkmyzli8fwnllra2";
+ url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/477d50a859be91a25b2fed6494d414044d7e71ab.tar.gz";
+ sha256 = "0wzi2wgcp5ykwp4wrhcfdaxlbdzrmlgalparx3ap80q069c8fd0n";
}
diff --git a/pkgs/data/misc/mailcap/default.nix b/pkgs/data/misc/mailcap/default.nix
index d27e1d2dfd2..725d4ded0eb 100644
--- a/pkgs/data/misc/mailcap/default.nix
+++ b/pkgs/data/misc/mailcap/default.nix
@@ -7,13 +7,15 @@ in fetchzip {
name = "mailcap-${version}";
url = "https://releases.pagure.org/mailcap/mailcap-${version}.tar.xz";
- sha256 = "0m1rls4z85aby9fggwx2x70b4y6l0jjyiqdv30p8g91nv8hrq9fw";
+ sha256 = "08d0avz8971hkggd60dk9yyd14izz24yag3prpfafbvm670jlmqg";
postFetch = ''
tar -xavf $downloadedFile --strip-components=1
substituteInPlace mailcap --replace "/usr/bin/" ""
gzip mailcap.4
+ sh generate-nginx-mimetypes.sh < mime.types > nginx-mime.types
+ install -D -m0644 nginx-mime.types $out/etc/nginx/mime.types
install -D -m0644 -t $out/etc mailcap mime.types
install -D -m0644 -t $out/share/man/man4 mailcap.4.gz
'';
diff --git a/pkgs/data/misc/osinfo-db/default.nix b/pkgs/data/misc/osinfo-db/default.nix
index b41c4a4c5aa..8af161e8707 100644
--- a/pkgs/data/misc/osinfo-db/default.nix
+++ b/pkgs/data/misc/osinfo-db/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "osinfo-db";
- version = "20190805";
+ version = "20190920";
src = fetchurl {
url = "https://releases.pagure.org/libosinfo/${pname}-${version}.tar.xz";
- sha256 = "1la80kmh58nrra8aa4grv31gc7xbqbybl8q1m4yv0byb11slg93x";
+ sha256 = "12kwlqljaai4fsa08m7l28v41q6244dbracvqzcbg1cs0y9jxqy8";
};
nativeBuildInputs = [ osinfo-db-tools intltool libxml2 ];
diff --git a/pkgs/data/misc/shared-mime-info/default.nix b/pkgs/data/misc/shared-mime-info/default.nix
index 6952d2da6ba..4594ffc2392 100644
--- a/pkgs/data/misc/shared-mime-info/default.nix
+++ b/pkgs/data/misc/shared-mime-info/default.nix
@@ -1,25 +1,40 @@
-{stdenv, fetchurl, pkgconfig, gettext, perlPackages, intltool
-, libxml2, glib}:
+{ stdenv
+, fetchurl
+, pkgconfig
+, gettext
+, perlPackages
+, itstool
+, libxml2
+, glib
+}:
-let version = "1.12"; in
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
pname = "shared-mime-info";
- inherit version;
+ version = "1.13.1";
src = fetchurl {
- url = "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/80c7f1afbcad2769f38aeb9ba6317a51/shared-mime-info-1.12.tar.xz";
- sha256 = "0gj0pp36qpsr9w6v4nywnjpcisadwkndapqsjn0ny3gd0zzg1chq";
+ url = "https://gitlab.freedesktop.org/xdg/${pname}/uploads/5349e18c86eb96eee258a5c1f19122d0/${pname}-${version}.tar.xz";
+ sha256 = "1bic8z5nz08qxv1x6zlxnx2j4cmlzm12kygrn3rrh1djqxdhma3f";
};
- nativeBuildInputs = [ pkgconfig gettext intltool ] ++ (with perlPackages; [ perl XMLParser ]);
- buildInputs = [ libxml2 glib ];
+ nativeBuildInputs = [
+ pkgconfig
+ gettext
+ itstool
+ ] ++ (with perlPackages; [
+ perl XMLParser
+ ]);
+
+ buildInputs = [
+ libxml2
+ glib
+ ];
meta = with stdenv.lib; {
- inherit version;
description = "A database of common MIME types";
homepage = http://freedesktop.org/wiki/Software/shared-mime-info;
license = licenses.gpl2Plus;
platforms = platforms.unix;
- maintainers = [ maintainers.mimadrid ];
+ maintainers = [ maintainers.mimame ];
};
}
diff --git a/pkgs/data/themes/amber/default.nix b/pkgs/data/themes/amber/default.nix
new file mode 100644
index 00000000000..5299f073ae9
--- /dev/null
+++ b/pkgs/data/themes/amber/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, meson, ninja, sassc, gdk-pixbuf, librsvg, gtk_engines, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+ pname = "amber-theme";
+ version = "3.34-1";
+
+ src = fetchFromGitHub {
+ owner = "lassekongo83";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1fmsjhaxlw2znlbjys3ggmsr7zlfk1wlng7bh54g6b0vjgdbik3r";
+ };
+
+ nativeBuildInputs = [ meson ninja sassc ];
+
+ buildInputs = [ gdk-pixbuf librsvg gtk_engines ];
+
+ propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+ meta = with stdenv.lib; {
+ description = "GTK, gnome-shell and Xfce theme based on Ubuntu Ambiance";
+ homepage = https://github.com/lassekongo83/amber-theme;
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/pkgs/misc/themes/arc/default.nix b/pkgs/data/themes/arc/default.nix
similarity index 65%
rename from pkgs/misc/themes/arc/default.nix
rename to pkgs/data/themes/arc/default.nix
index da12255e91e..8dcfacadb49 100644
--- a/pkgs/misc/themes/arc/default.nix
+++ b/pkgs/data/themes/arc/default.nix
@@ -3,13 +3,13 @@
stdenv.mkDerivation rec {
pname = "arc-theme";
- version = "20190330";
+ version = "20190917";
src = fetchFromGitHub {
- owner = "NicoHood";
+ owner = "arc-design";
repo = pname;
rev = version;
- sha256 = "16n5svgkpa8azxgyy64zwjjc04r57wfzkdq9igqvbvwkbvx8aa89";
+ sha256 = "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa";
};
nativeBuildInputs = [
@@ -19,7 +19,6 @@ stdenv.mkDerivation rec {
optipng
inkscape
gtk3
- gnome3.gnome-shell
];
propagatedUserEnvPkgs = [
@@ -29,26 +28,23 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
- postPatch = ''
- patchShebangs .
- # TODO: remove this after update
- ln -s 3.30 common/gnome-shell/3.32
- '';
-
preBuild = ''
# Shut up inkscape's warnings about creating profile directory
export HOME="$NIX_BUILD_ROOT"
'';
- configureFlags = [ "--disable-unity" ];
+ configureFlags = [
+ "--with-gnome-shell=${stdenv.lib.versions.majorMinor gnome3.gnome-shell.version}"
+ "--disable-unity"
+ ];
postInstall = ''
install -Dm644 -t $out/share/doc/${pname} AUTHORS *.md
'';
meta = with stdenv.lib; {
- description = "A flat theme with transparent elements for GTK 3, GTK 2 and Gnome-Shell";
- homepage = https://github.com/NicoHood/arc-theme;
+ description = "Flat theme with transparent elements for GTK 3, GTK 2 and Gnome Shell";
+ homepage = https://github.com/arc-design/arc-theme;
license = licenses.gpl3;
maintainers = with maintainers; [ simonvandel romildo ];
platforms = platforms.linux;
diff --git a/pkgs/misc/themes/jade1/default.nix b/pkgs/data/themes/jade1/default.nix
similarity index 72%
rename from pkgs/misc/themes/jade1/default.nix
rename to pkgs/data/themes/jade1/default.nix
index ebeb7f2d866..01221d45014 100644
--- a/pkgs/misc/themes/jade1/default.nix
+++ b/pkgs/data/themes/jade1/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "theme-jade1";
- version = "3.3";
+ version = "1.5";
src = fetchFromGitHub {
owner = "madmaxms";
repo = "theme-jade-1";
rev = "v${version}";
- sha256 = "06w06dvzs1llmzpyz3c5yycsw3gslsgikalfcq5l92d72z4kzfw7";
+ sha256 = "1m3150iyk8421mkwj4x2pv29wjzqdcnvvnp3bsg11k5kszsm27a8";
};
propagatedUserEnvPkgs = [ gtk-engine-murrine ];
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
'';
meta = with stdenv.lib; {
- description = "A fork of the original Linux Mint theme with dark menus, more intensive green and some other modifications";
+ description = "Fork of the original Linux Mint theme with dark menus, more intensive green and some other modifications";
homepage = https://github.com/madmaxms/theme-jade-1;
license = with licenses; [ gpl3 ];
platforms = platforms.linux;
diff --git a/pkgs/data/themes/lounge/default.nix b/pkgs/data/themes/lounge/default.nix
new file mode 100644
index 00000000000..15ec68b0757
--- /dev/null
+++ b/pkgs/data/themes/lounge/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, meson, ninja, sassc, gtk3, gnome3, gdk-pixbuf, librsvg, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+ pname = "lounge-gtk-theme";
+ version = "1.22";
+
+ src = fetchFromGitHub {
+ owner = "monday15";
+ repo = pname;
+ rev = version;
+ sha256 = "1y1wkfsv2zrxqcqr53lmr9743mvzcy4swi5j6sxmk1aykx6ccs1p";
+ };
+
+ nativeBuildInputs = [ meson ninja sassc gtk3 ];
+
+ buildInputs = [ gdk-pixbuf librsvg ];
+
+ propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+ mesonFlags = [
+ "-D gnome_version=${stdenv.lib.versions.majorMinor gnome3.gnome-shell.version}"
+ ];
+
+ postFixup = ''
+ gtk-update-icon-cache "$out"/share/icons/Lounge-aux;
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Simple and clean GTK theme with vintage scrollbars, inspired by Absolute, based on Adwaita";
+ homepage = https://github.com/monday15/lounge-gtk-theme;
+ license = licenses.gpl3Plus;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/pkgs/data/themes/matcha/default.nix b/pkgs/data/themes/matcha/default.nix
index db0b4ec6610..8ab868891b5 100644
--- a/pkgs/data/themes/matcha/default.nix
+++ b/pkgs/data/themes/matcha/default.nix
@@ -1,14 +1,14 @@
{ stdenv, fetchFromGitHub, gdk-pixbuf, librsvg, gtk-engine-murrine }:
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
pname = "matcha";
- version = "2019-06-22";
+ version = "2019-11-02";
src = fetchFromGitHub {
owner = "vinceliuice";
- repo = "matcha";
- rev = "f42df7a3219d7fbacb7be1b2e0e416d74339865e";
- sha256 = "1x954rmxv14xndn4ybhbr4pmzccnwqp462bpvzd2hak5wsqs4wxc";
+ repo = pname;
+ rev = version;
+ sha256 = "0wci9ahap8kynq8cbyxr7aba9ndb1d4kiq42xvzr34vw1rhcahrr";
};
buildInputs = [ gdk-pixbuf librsvg ];
diff --git a/pkgs/data/themes/materia-theme/default.nix b/pkgs/data/themes/materia-theme/default.nix
index 02c1b91a3eb..4a1458ee7a5 100644
--- a/pkgs/data/themes/materia-theme/default.nix
+++ b/pkgs/data/themes/materia-theme/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "materia-theme";
- version = "20190831";
+ version = "20190912";
src = fetchFromGitHub {
owner = "nana-4";
repo = pname;
rev = "v${version}";
- sha256 = "19b2wyq38wj3id0an47jln1y3zp5ih3kbrgmfpjp6bbdrmfcyccf";
+ sha256 = "07vbql1y9jfd0m34lw1674cfr6217dzg3irk0450kny8sjrrj6dx";
};
nativeBuildInputs = [ glib libxml2 bc ];
diff --git a/pkgs/data/themes/mojave/default.nix b/pkgs/data/themes/mojave/default.nix
index 1fc82e8aca2..714e026d32c 100644
--- a/pkgs/data/themes/mojave/default.nix
+++ b/pkgs/data/themes/mojave/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "mojave-gtk-theme";
- version = "2019-05-21";
+ version = "2019-09-09";
src = fetchFromGitHub {
owner = "vinceliuice";
repo = pname;
- rev = "f6167740b308715b38567ec660aa5241d964af1b";
- sha256 = "1k57f5vimdrciskjgxqz7k0xybc7b8pwcsii0p6kc8klmyrjrr9c";
+ rev = version;
+ sha256 = "1qffh6jsvy61f29ymw1v9hpjnsvhqin19mp05cys1lnwc7y810zr";
};
buildInputs = [ gtk_engines ];
diff --git a/pkgs/data/themes/plano/default.nix b/pkgs/data/themes/plano/default.nix
index b009bd2780c..a76a7e40020 100644
--- a/pkgs/data/themes/plano/default.nix
+++ b/pkgs/data/themes/plano/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "plano-theme";
- version = "3.32-1";
+ version = "3.34-1";
src = fetchFromGitHub {
owner = "lassekongo83";
repo = pname;
rev = "v${version}";
- sha256 = "0p9j4p32489jb6d67jhf9x26my0mddcc6a174x713drch8zvb96l";
+ sha256 = "0fdg4jyc3xv98yg2r6c8rccvbpf8y2l3x79qbpiq6ck9k6d34ycq";
};
buildInputs = [ gdk-pixbuf gtk_engines ];
@@ -20,11 +20,11 @@ stdenv.mkDerivation rec {
installPhase = ''
install -dm 755 $out/share/themes/Plano
cp -a * $out/share/themes/Plano/
- rm $out/share/themes/Plano/LICENSE
+ rm $out/share/themes/Plano/{COPYING.LGPL-2.1,LICENSE,README.md}
'';
meta = with stdenv.lib; {
- description = "Flat theme for GNOME & Xfce4";
+ description = "Flat theme for GNOME and Xfce";
homepage = https://github.com/lassekongo83/plano-theme;
license = licenses.gpl3;
platforms = platforms.unix;
diff --git a/pkgs/data/themes/plata/default.nix b/pkgs/data/themes/plata/default.nix
index d026e06e39d..d1d7228183c 100644
--- a/pkgs/data/themes/plata/default.nix
+++ b/pkgs/data/themes/plata/default.nix
@@ -19,13 +19,13 @@
stdenv.mkDerivation rec {
pname = "plata-theme";
- version = "0.8.9";
+ version = "0.9.0";
src = fetchFromGitLab {
owner = "tista500";
repo = "plata-theme";
rev = version;
- sha256 = "0a2wczxxfd2nfr7biawbs3rwy2sivcl2sv43y2638gmfp0w6zh9r";
+ sha256 = "1bcjrnh6bm7pxyqrr39yx5zykf3yzxrsydd5xcawjfihnph3yrlg";
};
preferLocalBuild = true;
diff --git a/pkgs/data/themes/qogir/default.nix b/pkgs/data/themes/qogir/default.nix
index 6461697b04f..44993c7e2ec 100644
--- a/pkgs/data/themes/qogir/default.nix
+++ b/pkgs/data/themes/qogir/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "qogir-theme";
- version = "2019-08-31";
+ version = "2019-10-25";
src = fetchFromGitHub {
owner = "vinceliuice";
repo = pname;
rev = version;
- sha256 = "1pqfnqc2c6f5cidg6c3y492hqlyn5ma4b7ra2lchw7g2dxfvq8w1";
+ sha256 = "027c9pbfv5flqrjcvmbyjrfi37nzq33z19bai4zjjxjvryfqpmlm";
};
buildInputs = [ gdk-pixbuf librsvg ];
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
'';
meta = with stdenv.lib; {
- description = "A flat Design theme for GTK based desktop environments";
+ description = "Flat Design theme for GTK based desktop environments";
homepage = https://vinceliuice.github.io/Qogir-theme;
license = licenses.gpl3;
platforms = platforms.unix;
diff --git a/pkgs/data/themes/shades-of-gray/default.nix b/pkgs/data/themes/shades-of-gray/default.nix
index 5d335905273..84df6175ba4 100644
--- a/pkgs/data/themes/shades-of-gray/default.nix
+++ b/pkgs/data/themes/shades-of-gray/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "shades-of-gray-theme";
- version = "1.1.9";
+ version = "1.2.0";
src = fetchFromGitHub {
owner = "WernerFP";
repo = pname;
rev = version;
- sha256 = "1hg4g242cjncrx9cn7gbzl9gj7zz2fwrkzkkbfazzrdaylbwgm4i";
+ sha256 = "17hlc224mvm9aa5msbq380vv187bw709a4ys27dw4kas6gm04g2s";
};
buildInputs = [ gtk_engines ];
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
'';
meta = with stdenv.lib; {
- description = "A flat dark GTK-theme with ergonomic contrasts";
+ description = "Flat dark GTK theme with ergonomic contrasts";
homepage = https://github.com/WernerFP/Shades-of-gray-theme;
license = licenses.gpl3Plus;
platforms = platforms.unix;
diff --git a/pkgs/data/themes/stilo/default.nix b/pkgs/data/themes/stilo/default.nix
index 61ec697d841..65c0f309fbd 100644
--- a/pkgs/data/themes/stilo/default.nix
+++ b/pkgs/data/themes/stilo/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "stilo-themes";
- version = "3.32-3";
+ version = "3.34-1";
src = fetchFromGitHub {
owner = "lassekongo83";
repo = pname;
rev = "v${version}";
- sha256 = "0xcndr5mfa91f0ln0az3m79pidjy882v65w5fi5w05kykrmvv81z";
+ sha256 = "1qwz7i32jk7wm7m9ah6g1pxldz0rnviancndsr2lqmg55x36rs01";
};
nativeBuildInputs = [ meson ninja sassc ];
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
propagatedUserEnvPkgs = [ gtk-engine-murrine ];
meta = with stdenv.lib; {
- description = "Minimalistic GTK themes";
+ description = "Minimalistic GTK, gnome shell and Xfce themes";
homepage = https://github.com/lassekongo83/stilo-themes;
license = licenses.gpl3;
platforms = platforms.linux;
diff --git a/pkgs/data/themes/yaru/default.nix b/pkgs/data/themes/yaru/default.nix
new file mode 100644
index 00000000000..f83dbc3ebcc
--- /dev/null
+++ b/pkgs/data/themes/yaru/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, meson, sassc, pkg-config, glib, ninja,
+ python3, gtk3, gnome3, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+ pname = "yaru";
+ version = "19.10.4";
+
+ src = fetchFromGitHub {
+ owner = "ubuntu";
+ repo = "yaru";
+ rev = version;
+ sha256 = "1dj6awlz13787783ds9mdid75rd4vvgpg52h6x19pxdga3k17s9b";
+ };
+
+ nativeBuildInputs = [ meson sassc pkg-config glib ninja python3 ];
+ buildInputs = [ gtk3 gnome3.gnome-themes-extra ];
+
+ propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+ postPatch = "patchShebangs .";
+
+ meta = with stdenv.lib; {
+ description = "Ubuntu community theme 'yaru' - default Ubuntu theme since 18.10";
+ homepage = https://github.com/ubuntu/yaru;
+ license = with licenses; [ cc-by-sa-40 gpl3 ];
+ platforms = platforms.linux;
+ maintainers = [ maintainers.jD91mZM2 ];
+ };
+}
diff --git a/pkgs/data/themes/zuki/default.nix b/pkgs/data/themes/zuki/default.nix
index 59099bf5227..1d24fb010f2 100644
--- a/pkgs/data/themes/zuki/default.nix
+++ b/pkgs/data/themes/zuki/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "zuki-themes";
- version = "3.32-4";
+ version = "3.34-1";
src = fetchFromGitHub {
owner = "lassekongo83";
repo = pname;
rev = "v${version}";
- sha256 = "0kqhk9qy5hwsd6g0bmq2dg6yj9gbv7l514ripsfiqyllmf4h818h";
+ sha256 = "19qg60rw5b0caqc542j2nrpkv8d37pai1cr1h0x2nvx0fkc3rmi2";
};
nativeBuildInputs = [ meson ninja sassc ];
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
propagatedUserEnvPkgs = [ gtk-engine-murrine ];
meta = with stdenv.lib; {
- description = "Themes for GTK3, gnome-shell and more";
+ description = "Themes for GTK, gnome-shell and Xfce";
homepage = https://github.com/lassekongo83/zuki-themes;
license = licenses.gpl3;
platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/dde-api/default.nix b/pkgs/desktops/deepin/dde-api/default.nix
index b052a104240..36a1d050cb8 100644
--- a/pkgs/desktops/deepin/dde-api/default.nix
+++ b/pkgs/desktops/deepin/dde-api/default.nix
@@ -24,7 +24,7 @@
buildGoPackage rec {
pname = "dde-api";
- version = "3.18.4.1";
+ version = "5.0.0";
goPackagePath = "pkg.deepin.io/dde/api";
@@ -32,7 +32,7 @@ buildGoPackage rec {
owner = "linuxdeepin";
repo = pname;
rev = version;
- sha256 = "0bcjp5ijwa4wmx6p43lik6vjlb7d5rk7nf8xl495i3yk9x70wyfa";
+ sha256 = "0iv4krj6dqdknwvmax7aj40k1h96259kqcfnljadrwpl7cvsvp5p";
};
goDeps = ./deps.nix;
diff --git a/pkgs/desktops/deepin/dde-api/deps.nix b/pkgs/desktops/deepin/dde-api/deps.nix
index a3b5e20effc..5ebe1f6af95 100644
--- a/pkgs/desktops/deepin/dde-api/deps.nix
+++ b/pkgs/desktops/deepin/dde-api/deps.nix
@@ -5,8 +5,8 @@
fetch = {
type = "git";
url = "https://github.com/alecthomas/template";
- rev = "a0175ee3bccc567396460bf5acd36800cb10c49c";
- sha256 = "0qjgvvh26vk1cyfq9fadyhfgdj36f1iapbmr5xp6zqipldz8ffxj";
+ rev = "fb15b899a75114aa79cc930e33c46b577cc664b1";
+ sha256 = "1vlasv4dgycydh5wx6jdcvz40zdv90zz1h7836z7lhsi2ymvii26";
};
}
{
@@ -14,8 +14,8 @@
fetch = {
type = "git";
url = "https://github.com/alecthomas/units";
- rev = "2efee857e7cfd4f3d0138cc3cbb1b4966962b93a";
- sha256 = "1j65b91qb9sbrml9cpabfrcf07wmgzzghrl7809hjjhrmbzri5bl";
+ rev = "f65c72e2690dc4b403c8bd637baf4611cd4c069b";
+ sha256 = "04jyqm7m3m01ppfy1f9xk4qvrwvs78q9zml6llyf2b3v5k6b2bbc";
};
}
{
@@ -32,8 +32,8 @@
fetch = {
type = "git";
url = "https://github.com/disintegration/imaging";
- rev = "465faf0892b5c7b3325643b0e47282e1331672e7";
- sha256 = "1z9rkphmqgyphznl53pp1gmf0dfrfrmr95bx46p422ldml26c5a0";
+ rev = "9aab30e6aa535fe3337b489b76759ef97dfaf362";
+ sha256 = "015amm3x989hl3r4gxnixj602fl9j8z53n0lrq804cbfbk7a31fw";
};
}
{
@@ -41,8 +41,8 @@
fetch = {
type = "git";
url = "https://github.com/fogleman/gg";
- rev = "f194ddec6f45226fc9e1b4a61b7237f186edd543";
- sha256 = "095g5hpqvpy5w9l4kb65cif013snsvlbw6sgln0kwdix0z099j3i";
+ rev = "4dc34561c649343936bb2d29e23959bd6d98ab12";
+ sha256 = "1x1finzdrr80dd3r7wvf7zb184yjf4dawz7s581p2dr64dcialww";
};
}
{
@@ -77,8 +77,8 @@
fetch = {
type = "git";
url = "https://go.googlesource.com/image";
- rev = "7e034cad644213bc79b336b52fce73624259aeca";
- sha256 = "04n4yi0p2yjv8sr9dmnzwc2k6hvzzvl6jdq2xd043kvjwzk583va";
+ rev = "e7c1f5e7dbb87d8921928a6d9fc52fb31ce73b24";
+ sha256 = "0czp897aicqw1dgybj0hc2zzwb20rhqkdqm7siqci3yk7yk9cymf";
};
}
{
@@ -86,8 +86,8 @@
fetch = {
type = "git";
url = "https://go.googlesource.com/net";
- rev = "3b0461eec859c4b73bb64fdc8285971fd33e3938";
- sha256 = "0l00c8l0a8xnv6qdpwfzxxsr58jggacgzdrwiprrfx2xqm37b6d5";
+ rev = "daa7c04131f568e31c51927b359a2d197a357058";
+ sha256 = "17gbfvb5iqyayzw0zd6q218zsbf7x74rflvn18wkxvsw95n1y54h";
};
}
{
diff --git a/pkgs/desktops/deepin/dde-calendar/default.nix b/pkgs/desktops/deepin/dde-calendar/default.nix
index 427cb1249c9..3d4800a7510 100644
--- a/pkgs/desktops/deepin/dde-calendar/default.nix
+++ b/pkgs/desktops/deepin/dde-calendar/default.nix
@@ -4,13 +4,13 @@
mkDerivation rec {
pname = "dde-calendar";
- version = "1.2.10";
+ version = "5.0.1";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = pname;
rev = version;
- sha256 = "00aqx24jccf88vvkpb9svyjz8knrqyjgd0152psf9dxc9q13f61h";
+ sha256 = "1zzr3crkz4l5l135y0m53vqhv7fkrbvbspk8295swz9gsm3f7ah9";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/deepin/dde-control-center/default.nix b/pkgs/desktops/deepin/dde-control-center/default.nix
index 0871e004e5f..0aaacee2ba4 100644
--- a/pkgs/desktops/deepin/dde-control-center/default.nix
+++ b/pkgs/desktops/deepin/dde-control-center/default.nix
@@ -8,13 +8,13 @@
mkDerivation rec {
pname = "dde-control-center";
- version = "4.10.11";
+ version = "5.0.0";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = pname;
rev = version;
- sha256 = "1ip8wjwf0n9q8xnqymzh8lz0j5gcnns976n291np6k5kdh2wqhr5";
+ sha256 = "10bx8bpvi3ib32a3l4nyb1j0iq3bch8jm9wfm6d5v0ym1zb92x3b";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/deepin/dde-daemon/default.nix b/pkgs/desktops/deepin/dde-daemon/default.nix
index 19089a6b050..31451dca91a 100644
--- a/pkgs/desktops/deepin/dde-daemon/default.nix
+++ b/pkgs/desktops/deepin/dde-daemon/default.nix
@@ -8,7 +8,7 @@
buildGoPackage rec {
pname = "dde-daemon";
- version = "3.27.2.6";
+ version = "5.0.0";
goPackagePath = "pkg.deepin.io/dde/daemon";
@@ -16,7 +16,7 @@ buildGoPackage rec {
owner = "linuxdeepin";
repo = pname;
rev = version;
- sha256 = "14g138h23f1lh1y98pdrfhnph1m7pw8lq8ypiwv9qf3fmdyn35d4";
+ sha256 = "08jri31bvzbaxaq78rpp46ndv0li2dij63hakvd9b9gs786srql1";
};
patches = [
@@ -115,7 +115,7 @@ buildGoPackage rec {
postFixup = ''
# wrapGAppsHook does not work with binaries outside of $out/bin or $out/libexec
for binary in $out/lib/deepin-daemon/*; do
- wrapProgram $binary "''${gappsWrapperArgs[@]}"
+ wrapGApp "$binary"
done
searchHardCodedPaths $out # debugging
diff --git a/pkgs/desktops/deepin/dde-daemon/deps.nix b/pkgs/desktops/deepin/dde-daemon/deps.nix
index c9a15ad88d4..bcc5ab81808 100644
--- a/pkgs/desktops/deepin/dde-daemon/deps.nix
+++ b/pkgs/desktops/deepin/dde-daemon/deps.nix
@@ -5,8 +5,8 @@
fetch = {
type = "git";
url = "https://github.com/alecthomas/template";
- rev = "a0175ee3bccc567396460bf5acd36800cb10c49c";
- sha256 = "0qjgvvh26vk1cyfq9fadyhfgdj36f1iapbmr5xp6zqipldz8ffxj";
+ rev = "fb15b899a75114aa79cc930e33c46b577cc664b1";
+ sha256 = "1vlasv4dgycydh5wx6jdcvz40zdv90zz1h7836z7lhsi2ymvii26";
};
}
{
@@ -14,8 +14,8 @@
fetch = {
type = "git";
url = "https://github.com/alecthomas/units";
- rev = "2efee857e7cfd4f3d0138cc3cbb1b4966962b93a";
- sha256 = "1j65b91qb9sbrml9cpabfrcf07wmgzzghrl7809hjjhrmbzri5bl";
+ rev = "f65c72e2690dc4b403c8bd637baf4611cd4c069b";
+ sha256 = "04jyqm7m3m01ppfy1f9xk4qvrwvs78q9zml6llyf2b3v5k6b2bbc";
};
}
{
@@ -77,8 +77,8 @@
fetch = {
type = "git";
url = "https://go.googlesource.com/image";
- rev = "7e034cad644213bc79b336b52fce73624259aeca";
- sha256 = "04n4yi0p2yjv8sr9dmnzwc2k6hvzzvl6jdq2xd043kvjwzk583va";
+ rev = "e7c1f5e7dbb87d8921928a6d9fc52fb31ce73b24";
+ sha256 = "0czp897aicqw1dgybj0hc2zzwb20rhqkdqm7siqci3yk7yk9cymf";
};
}
{
@@ -86,8 +86,8 @@
fetch = {
type = "git";
url = "https://go.googlesource.com/net";
- rev = "3b0461eec859c4b73bb64fdc8285971fd33e3938";
- sha256 = "0l00c8l0a8xnv6qdpwfzxxsr58jggacgzdrwiprrfx2xqm37b6d5";
+ rev = "daa7c04131f568e31c51927b359a2d197a357058";
+ sha256 = "17gbfvb5iqyayzw0zd6q218zsbf7x74rflvn18wkxvsw95n1y54h";
};
}
{
@@ -95,8 +95,8 @@
fetch = {
type = "git";
url = "https://go.googlesource.com/text";
- rev = "342b2e1fbaa52c93f31447ad2c6abc048c63e475";
- sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh";
+ rev = "4b67af870c6ffd08258ef1202f371aebccaf7b68";
+ sha256 = "01mhy1xs2dh18kp6wdk1xnb34lbzv2qkvdwj7w5ha2qgm5rrm4ik";
};
}
{
diff --git a/pkgs/desktops/deepin/dde-dock/default.nix b/pkgs/desktops/deepin/dde-dock/default.nix
index fc25d007f20..afa245eefe9 100644
--- a/pkgs/desktops/deepin/dde-dock/default.nix
+++ b/pkgs/desktops/deepin/dde-dock/default.nix
@@ -7,13 +7,13 @@
let
unwrapped = mkDerivation rec {
pname = "dde-dock";
- version = "4.10.3";
+ version = "5.0.0";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = pname;
rev = version;
- sha256 = "17iy78r0frpv42g521igfdcgdklbifzig1wzxq2nl14fq0bgxg4v";
+ sha256 = "12dshsqhzajnxm7r53qg0c84b6xlj313qnssnx2m25z4jdp5i7pr";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/deepin/dde-file-manager/default.nix b/pkgs/desktops/deepin/dde-file-manager/default.nix
index 081c93a65c8..ba7505b5b2f 100644
--- a/pkgs/desktops/deepin/dde-file-manager/default.nix
+++ b/pkgs/desktops/deepin/dde-file-manager/default.nix
@@ -1,22 +1,23 @@
-{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, avfs, dde-daemon, dde-dock,
- dde-polkit-agent, dde-qt-dbus-factory, deepin, deepin-anything,
- deepin-desktop-schemas, deepin-gettext-tools, deepin-movie-reborn,
- deepin-shortcut-viewer, deepin-terminal, dtkcore, dtkwidget,
- ffmpegthumbnailer, file, glib, gnugrep, gsettings-qt, gvfs,
- jemalloc, kcodecs, libX11, libsecret, polkit, polkit-qt, poppler,
- procps, qmake, qt5integration, qtmultimedia, qtsvg, qttools,
- qtx11extras, runtimeShell, samba, shadow, taglib, udisks2-qt5,
- xdg-user-dirs, xorg, zlib, wrapGAppsHook }:
+{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, avfs, dde-daemon,
+ dde-dock, dde-polkit-agent, dde-qt-dbus-factory, deepin,
+ deepin-anything, deepin-desktop-schemas, deepin-gettext-tools,
+ deepin-movie-reborn, deepin-shortcut-viewer, deepin-terminal,
+ disomaster, dtkcore, dtkwidget, ffmpegthumbnailer, file, glib,
+ gnugrep, gsettings-qt, gvfs, jemalloc, kcodecs, libX11, libsecret,
+ polkit, polkit-qt, poppler, procps, qmake, qt5integration,
+ qtmultimedia, qtsvg, qttools, qtx11extras, runtimeShell, samba,
+ shadow, taglib, udisks2-qt5, xdg-user-dirs, xorg, zlib,
+ wrapGAppsHook }:
mkDerivation rec {
pname = "dde-file-manager";
- version = "4.8.6.4";
+ version = "5.0.0";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = pname;
rev = version;
- sha256 = "1m0ykw5a91rm5xcah8bzk21xsambqvncj8104ihdhf9h0z9kdmm2";
+ sha256 = "0n2nl09anqdq0n5yn688n385rn81lcpybs0sa8m311k3k9ndkkyr";
};
nativeBuildInputs = [
@@ -39,6 +40,7 @@ mkDerivation rec {
deepin-movie-reborn.dev
deepin-shortcut-viewer
deepin-terminal
+ disomaster
dtkcore
dtkwidget
ffmpegthumbnailer
diff --git a/pkgs/desktops/deepin/dde-kwin/0001-dde-kwin.pc-make-paths-relative.patch b/pkgs/desktops/deepin/dde-kwin/0001-dde-kwin.pc-make-paths-relative.patch
new file mode 100644
index 00000000000..707eb207409
--- /dev/null
+++ b/pkgs/desktops/deepin/dde-kwin/0001-dde-kwin.pc-make-paths-relative.patch
@@ -0,0 +1,56 @@
+From c4edb65554f90a5abfc2ecbf63587b8c6ef2653d Mon Sep 17 00:00:00 2001
+From: worldofpeace
+Date: Tue, 22 Oct 2019 17:20:24 -0400
+Subject: [PATCH] dde-kwin.pc: make paths relative
+
+Values like libdir should be relative to the literal ${prefix}.
+We also use @ONLY so we don't substitute values like ${prefix}
+with CMake resulting in an unintentional replacement.
+---
+ plugins/kwin-xcb/lib/CMakeLists.txt | 2 +-
+ plugins/kwin-xcb/lib/dde-kwin.pc.in | 18 +++++++++---------
+ 2 files changed, 10 insertions(+), 10 deletions(-)
+
+diff --git a/plugins/kwin-xcb/lib/CMakeLists.txt b/plugins/kwin-xcb/lib/CMakeLists.txt
+index 0189b74..62e5553 100644
+--- a/plugins/kwin-xcb/lib/CMakeLists.txt
++++ b/plugins/kwin-xcb/lib/CMakeLists.txt
+@@ -61,7 +61,7 @@ install_files(
+ kwinutils.h
+ )
+
+-configure_file(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc)
++configure_file(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
+ if (CMAKE_INSTALL_LIBDIR)
+ install_files("/${CMAKE_INSTALL_LIBDIR}/pkgconfig" FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc)
+ elseif (CMAKE_LIBRARY_OUTPUT_DIRECTORY)
+diff --git a/plugins/kwin-xcb/lib/dde-kwin.pc.in b/plugins/kwin-xcb/lib/dde-kwin.pc.in
+index 9b1d813..1179761 100644
+--- a/plugins/kwin-xcb/lib/dde-kwin.pc.in
++++ b/plugins/kwin-xcb/lib/dde-kwin.pc.in
+@@ -1,13 +1,13 @@
+-prefix=${CMAKE_INSTALL_PREFIX}
+-exec_prefix=${CMAKE_INSTALL_PREFIX}
+-libdir=${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}
+-includedir=${INCLUDE_OUTPUT_PATH}
++prefix=@CMAKE_INSTALL_PREFIX@
++exec_prefix=${prefix}
++libdir=${prefix}/lib
++includedir=@INCLUDE_OUTPUT_PATH@
+
+
+-Name: ${PROJECT_NAME}
++Name: @PROJECT_NAME@
+ Description: DDE KWin plugin library
+-Version: ${PROJECT_VERSION}
+-Libs: -l${PROJECT_NAME}
+-Libs.private: -L/usr/X11R6/lib64 -lQt5X11Extras -lKF5WindowSystem -lQt5Widgets -lQt5Gui -lKF5ConfigCore -lKF5CoreAddons -lQt5Core -lGL -lpthread
+-Cflags: -I${INCLUDE_OUTPUT_PATH}
++Version: @PROJECT_VERSION@
++Libs: -l$@PROJECT_NAME@
++Libs.private: -L/usr/X11R6/lib64 -lQt5X11Extras -lKF5WindowSystem -lQt5Widgets -lQt5Gui -lKF5ConfigCore -lKF5CoreAddons -lQt5Core -lGL -lpthread
++Cflags: -I@INCLUDE_OUTPUT_PATH@
+
+--
+2.23.0
+
diff --git a/pkgs/desktops/deepin/dde-kwin/default.nix b/pkgs/desktops/deepin/dde-kwin/default.nix
new file mode 100644
index 00000000000..850186953f6
--- /dev/null
+++ b/pkgs/desktops/deepin/dde-kwin/default.nix
@@ -0,0 +1,140 @@
+{ stdenv
+, mkDerivation
+, pkgconfig
+, fetchFromGitHub
+, deepin
+, cmake
+, extra-cmake-modules
+, qtbase
+, libxcb
+, kglobalaccel
+, kwindowsystem
+, kcoreaddons
+, kwin
+, dtkcore
+, gsettings-qt
+, fontconfig
+, deepin-desktop-schemas
+, glib
+, libXrender
+, mtdev
+, qttools
+, deepin-gettext-tools
+, kwayland
+, qtx11extras
+, qtquickcontrols2
+, epoxy
+, qt5integration
+, dde-session-ui
+, dbus
+, wrapGAppsHook
+}:
+
+mkDerivation rec {
+ pname = "dde-kwin";
+ version = "5.0.0";
+
+ src = fetchFromGitHub {
+ owner = "linuxdeepin";
+ repo = pname;
+ rev = version;
+ sha256 = "0bvkx9h5ygj46a0j76kfyq3gvk6zn4fx6clhrmcr40hbi2k33cbl";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ deepin-gettext-tools
+ deepin.setupHook
+ extra-cmake-modules
+ pkgconfig
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ deepin-desktop-schemas
+ dtkcore
+ epoxy
+ fontconfig
+ glib
+ gsettings-qt
+ kcoreaddons
+ kglobalaccel
+ kwayland
+ kwin
+ kwindowsystem
+ libXrender
+ libxcb
+ mtdev
+ qtbase
+ qtquickcontrols2
+ qttools
+ qtx11extras
+ qt5integration
+ ];
+
+ # Need to add kwayland around:
+ # * https://github.com/linuxdeepin/dde-kwin/blob/5226bb984c844129f9fa589da56e77decb7b39a1/plugins/kwineffects/blur/CMakeLists.txt#L14
+ NIX_CFLAGS_COMPILE = "-I${kwayland.dev}/include/KF5";
+
+ cmakeFlags = [
+ "-DKWIN_VERSION=${(builtins.parseDrvName kwin.name).version}"
+ ];
+
+ patches = [
+ ./0001-dde-kwin.pc-make-paths-relative.patch
+ ./fix-paths.patch
+ ];
+
+ postPatch = ''
+ searchHardCodedPaths
+
+ patchShebangs translate_ts2desktop.sh \
+ translate_generation.sh \
+ translate_desktop2ts.sh \
+ plugins/kwin-xcb/plugin/translate_generation.sh
+
+ fixPath ${deepin-gettext-tools} /usr/bin/deepin-desktop-ts-convert translate_desktop2ts.sh translate_ts2desktop.sh
+
+ fixPath $out /etc/xdg configures/CMakeLists.txt deepin-wm-dbus/deepinwmfaker.cpp
+
+ # TODO: Need environmental patch
+ fixPath /run/current-system/sw /usr/lib plugins/kwin-xcb/plugin/main.cpp
+
+ substituteInPlace configures/kwin-wm-multitaskingview.desktop \
+ --replace "dbus-send" "${dbus}/bin/dbus-send"
+
+ fixPath ${dde-session-ui} /usr/lib/deepin-daemon/dde-warning-dialog deepin-wm-dbus/deepinwmfaker.cpp
+
+ # Correct qt plugin installation path to be within dde-kwin prefix.
+ substituteInPlace CMakeLists.txt \
+ --subst-var-by plugin_path "$out/$qtPluginPrefix"
+ '';
+
+ postInstall = ''
+ # Correct invalid path in .pc
+ substituteInPlace $out/lib/pkgconfig/dde-kwin.pc \
+ --replace "-L/usr/X11R6/lib64" ""
+
+ chmod +x $out/bin/kwin_no_scale
+ '';
+
+ dontWrapQtApps = true;
+
+ preFixup = ''
+ gappsWrapperArgs+=(
+ "''${qtWrapperArgs[@]}"
+ )
+ '';
+
+ enableParallelBuilding = true;
+
+ passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+
+ meta = with stdenv.lib; {
+ description = "KWin configuration for Deepin Desktop Environment";
+ homepage = "https://github.com/linuxdeepin/dde-kwin";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ romildo worldofpeace ];
+ };
+}
diff --git a/pkgs/desktops/deepin/dde-kwin/fix-paths.patch b/pkgs/desktops/deepin/dde-kwin/fix-paths.patch
new file mode 100644
index 00000000000..1bf576e5c1a
--- /dev/null
+++ b/pkgs/desktops/deepin/dde-kwin/fix-paths.patch
@@ -0,0 +1,16 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index feef49d..ecb7ed2 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -26,9 +26,9 @@ macro(query_qmake args output)
+ endif()
+ endmacro()
+
+-query_qmake("QT_INSTALL_PLUGINS" QT_INSTALL_PLUGINS)
++set(QT_INSTALL_PLUGINS @plugin_path@)
+
+-set(PLUGIN_INSTALL_PATH ${QT_INSTALL_PLUGINS}/platforms)
++set(PLUGIN_INSTALL_PATH @plugin_path@/platforms)
+ # Find includes in corresponding build directories
+ set(CMAKE_INCLUDE_CURRENT_DIR ON)
+ # Instruct CMake to run moc automatically when needed
diff --git a/pkgs/desktops/deepin/dde-launcher/default.nix b/pkgs/desktops/deepin/dde-launcher/default.nix
index b36d87604e7..ca5fa6d0906 100644
--- a/pkgs/desktops/deepin/dde-launcher/default.nix
+++ b/pkgs/desktops/deepin/dde-launcher/default.nix
@@ -5,13 +5,13 @@
mkDerivation rec {
pname = "dde-launcher";
- version = "4.6.13";
+ version = "5.0.0";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = pname;
rev = version;
- sha256 = "1lwwn2qjbd4i7wx18mi8n7hzdh832i3kdadrivr10sbafdank7ky";
+ sha256 = "0zh6bb0r3pgjrnw9rba46ghdzza1ka1mv7r1znf8gw24wsjgjcpn";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/deepin/dde-network-utils/default.nix b/pkgs/desktops/deepin/dde-network-utils/default.nix
index 5397439949b..0c8e7e8d137 100644
--- a/pkgs/desktops/deepin/dde-network-utils/default.nix
+++ b/pkgs/desktops/deepin/dde-network-utils/default.nix
@@ -3,13 +3,13 @@
mkDerivation rec {
pname = "dde-network-utils";
- version = "0.1.4";
+ version = "5.0.1";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = pname;
rev = version;
- sha256 = "0nj9lf455lf2hyqv6xwhm4vrr825ldbl83azzrrzqs6p781x65i1";
+ sha256 = "0670kfnkplf7skkd1ql6y9x15kmrcbdv1005qwkg4vn8hic6s0z3";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/deepin/dde-polkit-agent/default.nix b/pkgs/desktops/deepin/dde-polkit-agent/default.nix
index 9d181c188d4..533b0a0fdea 100644
--- a/pkgs/desktops/deepin/dde-polkit-agent/default.nix
+++ b/pkgs/desktops/deepin/dde-polkit-agent/default.nix
@@ -3,13 +3,13 @@
mkDerivation rec {
pname = "dde-polkit-agent";
- version = "0.2.10";
+ version = "5.0.0";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = pname;
rev = version;
- sha256 = "0syg121slpd6d9xpifgcf85lg9ca0k96cl1g3rjvsmczs2d2ffgf";
+ sha256 = "00p8syx6rfwhq7wdsk37hm9mvwd0kwj9h0s39hii892h1psd84q9";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/deepin/dde-qt-dbus-factory/default.nix b/pkgs/desktops/deepin/dde-qt-dbus-factory/default.nix
index a0e1e35ad85..cdbefb406ad 100644
--- a/pkgs/desktops/deepin/dde-qt-dbus-factory/default.nix
+++ b/pkgs/desktops/deepin/dde-qt-dbus-factory/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "dde-qt-dbus-factory";
- version = "1.1.5";
+ version = "5.0.1";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = pname;
rev = version;
- sha256 = "1jzfblsmnfpgym95mmbd8mjkk8wqqfb0kz6n6fy742hmqlzrpsj7";
+ sha256 = "1wbh4jgvy3c09ivy0vvfk0azkg4d2sv37y23c9rq49jb3sakcjgm";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/deepin/dde-session-ui/default.nix b/pkgs/desktops/deepin/dde-session-ui/default.nix
index d6713fb3688..e71262cc8e9 100644
--- a/pkgs/desktops/deepin/dde-session-ui/default.nix
+++ b/pkgs/desktops/deepin/dde-session-ui/default.nix
@@ -1,19 +1,19 @@
{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, qmake, dbus, dde-daemon,
dde-qt-dbus-factory, deepin, deepin-desktop-schemas,
deepin-gettext-tools, deepin-icon-theme, deepin-wallpapers, dtkcore,
- dtkwidget, gnugrep, gsettings-qt, hicolor-icon-theme, lightdm_qt,
+ dtkwidget, gnugrep, gsettings-qt, lightdm_qt,
onboard, qtsvg, qttools, qtx11extras, setxkbmap, utillinux, which,
xkeyboard_config, xorg, xrandr, wrapGAppsHook }:
mkDerivation rec {
pname = "dde-session-ui";
- version = "4.9.12";
+ version = "5.0.0";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = pname;
rev = version;
- sha256 = "00i45xv87wx9cww1d445lg6zjbhda5kki8nhsaav8gf2d4cmwzf4";
+ sha256 = "1gy9nlpkr9ayrs1z2dvd7h0dqlw6fq2m66d9cs48qyfkr6c8l9jj";
};
nativeBuildInputs = [
@@ -36,7 +36,6 @@ mkDerivation rec {
dtkwidget
gnugrep
gsettings-qt
- hicolor-icon-theme
lightdm_qt
onboard
qtsvg
@@ -90,8 +89,8 @@ mkDerivation rec {
substituteInPlace lightdm-deepin-greeter/scripts/lightdm-deepin-greeter --replace "/usr/bin/lightdm-deepin-greeter" "$out/bin/lightdm-deepin-greeter"
substituteInPlace session-ui-guardien/guardien.cpp --replace "dde-lock" "$out/bin/dde-lock"
substituteInPlace session-ui-guardien/guardien.cpp --replace "dde-shutdown" "$out/bin/dde-shutdown"
- substituteInPlace session-widgets/lockworker.cpp --replace "dde-switchtogreeter" "$out/bin/dde-switchtogreeter"
- substituteInPlace session-widgets/lockworker.cpp --replace "which" "${which}/bin/which"
+ substituteInPlace dde-lock/lockworker.cpp --replace "dde-switchtogreeter" "$out/bin/dde-switchtogreeter"
+ substituteInPlace dde-lock/lockworker.cpp --replace "which" "${which}/bin/which"
substituteInPlace session-widgets/userinfo.cpp --replace "/usr/share/wallpapers/deepin" "${deepin-wallpapers}/share/wallpapers/deepin"
substituteInPlace widgets/fullscreenbackground.cpp --replace "/usr/share/wallpapers/deepin" "${deepin-wallpapers}/share/wallpapers/deepin"
substituteInPlace widgets/kblayoutwidget.cpp --replace "setxkbmap" "${setxkbmap}/bin/setxkbmap"
diff --git a/pkgs/desktops/deepin/deepin-anything/default.nix b/pkgs/desktops/deepin/deepin-anything/default.nix
index 7c88102c5f3..38ebe664b85 100644
--- a/pkgs/desktops/deepin/deepin-anything/default.nix
+++ b/pkgs/desktops/deepin/deepin-anything/default.nix
@@ -3,7 +3,7 @@
mkDerivation rec {
pname = "deepin-anything";
- version = "0.1.0";
+ version = "5.0.1";
src = fetchFromGitHub {
owner = "linuxdeepin";
diff --git a/pkgs/desktops/deepin/deepin-calculator/default.nix b/pkgs/desktops/deepin/deepin-calculator/default.nix
index 97d2b53da70..201316638a8 100644
--- a/pkgs/desktops/deepin/deepin-calculator/default.nix
+++ b/pkgs/desktops/deepin/deepin-calculator/default.nix
@@ -3,13 +3,13 @@
mkDerivation rec {
pname = "deepin-calculator";
- version = "1.0.11";
+ version = "5.0.1";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = pname;
rev = version;
- sha256 = "10bfq0h8v0a8i46gcbsy79l194g8sc0ysg289ndrra209fhwlidq";
+ sha256 = "0f26y7b3giybybhvlzbnwcw8kidzvhq66h0c15n9ww81gnlqf7v5";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/deepin/deepin-desktop-base/default.nix b/pkgs/desktops/deepin/deepin-desktop-base/default.nix
index ba826eb9063..7ffba88d153 100644
--- a/pkgs/desktops/deepin/deepin-desktop-base/default.nix
+++ b/pkgs/desktops/deepin/deepin-desktop-base/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "deepin-desktop-base";
- version = "2019.06.19";
+ version = "2019.07.10";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = pname;
rev = version;
- sha256 = "1r158x4z4qalv4q1ni3aln05krdzblvr7y6wyciwl7cr5ag1i1jy";
+ sha256 = "0rs7bjy35k5gc5nbba1cijhdz16zny30lgmcf2ckx1pkdszk2vra";
};
nativeBuildInputs = [ deepin.setupHook ];
diff --git a/pkgs/desktops/deepin/deepin-desktop-schemas/default.nix b/pkgs/desktops/deepin/deepin-desktop-schemas/default.nix
index 4f2427e8237..fe2062a3d96 100644
--- a/pkgs/desktops/deepin/deepin-desktop-schemas/default.nix
+++ b/pkgs/desktops/deepin/deepin-desktop-schemas/default.nix
@@ -3,13 +3,13 @@
stdenv.mkDerivation rec {
pname = "deepin-desktop-schemas";
- version = "3.13.6";
+ version = "3.13.9";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = pname;
rev = version;
- sha256 = "03jqb47kjyb9b43m2yincfjn2i43ma1pn1hddyicrrpg937caa81";
+ sha256 = "1c69j6s7561zb1hrd1j3ihji1nvpgfzfgnp6svsv8jd8dg8vs8l1";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/deepin/deepin-editor/default.nix b/pkgs/desktops/deepin/deepin-editor/default.nix
new file mode 100644
index 00000000000..0aea9558ec0
--- /dev/null
+++ b/pkgs/desktops/deepin/deepin-editor/default.nix
@@ -0,0 +1,64 @@
+{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, cmake, deepin,
+ dtkcore, dtkwidget, kcodecs, qttools, syntax-highlighting,
+ wrapQtAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ name = "${pname}-${version}";
+ pname = "deepin-editor";
+ version = "1.2.9.1";
+
+ src = fetchFromGitHub {
+ owner = "linuxdeepin";
+ repo = pname;
+ rev = version;
+ sha256 = "0g7c3adqwn8i4ndxdrzibahr75dddz1fiqnsh3bjj1jjr86rv4ks";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ pkgconfig
+ qttools
+ wrapQtAppsHook
+ deepin.setupHook
+ ];
+
+ buildInputs = [
+ dtkcore
+ dtkwidget
+ kcodecs
+ syntax-highlighting
+ ];
+
+ postPatch = ''
+ searchHardCodedPaths # debugging
+
+ patchShebangs translate_generation.sh
+
+ fixPath $out /usr \
+ CMakeLists.txt \
+ dedit/main.cpp \
+ src/resources/settings.json \
+ src/thememodule/themelistmodel.cpp
+
+ substituteInPlace deepin-editor.desktop \
+ --replace "Exec=deepin-editor" "Exec=$out/bin/deepin-editor"
+
+ substituteInPlace src/editwrapper.cpp \
+ --replace "appExec = \"deepin-editor\"" "appExec = \"$out/bin/deepin-editor\""
+ '';
+
+ postFixup = ''
+ searchHardCodedPaths $out # debugging
+ '';
+
+ passthru.updateScript = deepin.updateScript { inherit name; };
+
+ meta = with stdenv.lib; {
+ description = "Simple editor for Deepin Desktop Environment";
+ homepage = https://github.com/linuxdeepin/deepin-editor;
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ romildo worldofpeace ];
+ };
+}
diff --git a/pkgs/desktops/deepin/deepin-icon-theme/default.nix b/pkgs/desktops/deepin/deepin-icon-theme/default.nix
index e63a228d0cb..51b67e05554 100644
--- a/pkgs/desktops/deepin/deepin-icon-theme/default.nix
+++ b/pkgs/desktops/deepin/deepin-icon-theme/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, gtk3, xcursorgen, papirus-icon-theme, deepin }:
+{ stdenv, fetchFromGitHub, gtk3, xcursorgen, papirus-icon-theme, deepin, hicolor-icon-theme }:
stdenv.mkDerivation rec {
pname = "deepin-icon-theme";
@@ -15,6 +15,12 @@ stdenv.mkDerivation rec {
buildInputs = [ papirus-icon-theme ];
+ propagatedBuildInputs = [
+ hicolor-icon-theme
+ ];
+
+ dontDropIconThemeCache = true;
+
postPatch = ''
patchShebangs tools/hicolor.links
patchShebangs tools/display_unused_links.sh
diff --git a/pkgs/desktops/deepin/deepin-image-viewer/default.nix b/pkgs/desktops/deepin/deepin-image-viewer/default.nix
index 733f4846f5c..bf9d1db2120 100644
--- a/pkgs/desktops/deepin/deepin-image-viewer/default.nix
+++ b/pkgs/desktops/deepin/deepin-image-viewer/default.nix
@@ -5,13 +5,13 @@
mkDerivation rec {
pname = "deepin-image-viewer";
- version = "1.3.17";
+ version = "5.0.0";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = pname;
rev = version;
- sha256 = "0hz4f1kqcycyvggwfzpkblhhha87rqd427hq0mf31jfh5x17ymnh";
+ sha256 = "01524hfdy3wvdf07n9b3qb8jdpxzg2hwjpl4gxvr68qws5nbnb3c";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/deepin/deepin-metacity/default.nix b/pkgs/desktops/deepin/deepin-metacity/default.nix
deleted file mode 100644
index 18f54223301..00000000000
--- a/pkgs/desktops/deepin/deepin-metacity/default.nix
+++ /dev/null
@@ -1,65 +0,0 @@
-{ stdenv, fetchFromGitHub, pkgconfig, intltool, libtool, gnome3, glib,
- gtk3, libgtop, bamf, json-glib, libcanberra-gtk3, libxkbcommon,
- libstartup_notification, deepin-wallpapers, deepin-desktop-schemas,
- deepin, wrapGAppsHook }:
-
-stdenv.mkDerivation rec {
- pname = "deepin-metacity";
- version = "3.22.24";
-
- src = fetchFromGitHub {
- owner = "linuxdeepin";
- repo = pname;
- rev = version;
- sha256 = "1im0wz1zlxiag4kpp5d4hv0aa0ybr4bizarr3903hrqv0lp46hyx";
- };
-
- nativeBuildInputs = [
- pkgconfig
- intltool
- libtool
- glib.dev
- gnome3.gnome-common
- wrapGAppsHook
- ];
-
- buildInputs = [
- gnome3.dconf
- gtk3
- libgtop
- gnome3.zenity
- bamf
- json-glib
- libcanberra-gtk3
- libstartup_notification
- libxkbcommon
- deepin-wallpapers
- deepin-desktop-schemas
- ];
-
- postPatch = ''
- sed -i src/ui/deepin-background-cache.c \
- -e 's;/usr/share/backgrounds/default_background.jpg;${deepin-wallpapers}/share/backgrounds/deepin/desktop.jpg;'
- '';
-
- NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
-
- configureFlags = [ "--disable-themes-documentation" ];
-
- preConfigure = ''
- HOME=$TMP
- NOCONFIGURE=1 ./autogen.sh
- '';
-
- enableParallelBuilding = true;
-
- passthru.updateScript = deepin.updateScript { inherit ;name = "${pname}-${version}"; };
-
- meta = with stdenv.lib; {
- description = "2D window manager for Deepin";
- homepage = https://github.com/linuxdeepin/deepin-metacity;
- license = licenses.gpl3;
- platforms = platforms.linux;
- maintainers = with maintainers; [ romildo ];
- };
-}
diff --git a/pkgs/desktops/deepin/deepin-movie-reborn/default.nix b/pkgs/desktops/deepin/deepin-movie-reborn/default.nix
index 046f589263b..0c14ddff178 100644
--- a/pkgs/desktops/deepin/deepin-movie-reborn/default.nix
+++ b/pkgs/desktops/deepin/deepin-movie-reborn/default.nix
@@ -1,16 +1,16 @@
-{ stdenv, mkDerivation, fetchFromGitHub, cmake, pkgconfig, qttools, qtx11extras,
+{ stdenv, mkDerivation, fetchFromGitHub, fetchpatch, cmake, pkgconfig, qttools, qtx11extras,
dtkcore, dtkwidget, ffmpeg, ffmpegthumbnailer, mpv, pulseaudio,
libdvdnav, libdvdread, xorg, deepin }:
mkDerivation rec {
pname = "deepin-movie-reborn";
- version = "3.2.24";
+ version = "5.0.0";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = pname;
rev = version;
- sha256 = "16mxym7dm6qk90q2w7xqm62047rq0lirrjmnnpaxshzaww9gngkh";
+ sha256 = "0cly8q0514a58s3h3wsvx9yxar7flz6i2q8xkrkfjias22b3z7b0";
};
outputs = [ "out" "dev" ];
@@ -19,6 +19,7 @@ mkDerivation rec {
cmake
pkgconfig
qttools
+ deepin.setupHook
];
buildInputs = [
@@ -37,11 +38,24 @@ mkDerivation rec {
xorg.xcbproto
];
+ patches = [
+ # fix: build failed if cannot find dtk-settings tool
+ (fetchpatch {
+ url = "https://github.com/linuxdeepin/deepin-movie-reborn/commit/fbb307b.patch";
+ sha256 = "0915za0khki0729rvcfpxkh6vxhqwc47cgcmjc90kfq1004221vx";
+ })
+ ];
+
NIX_LDFLAGS = "-ldvdnav";
+
postPatch = ''
- sed -i src/CMakeLists.txt -e "s,/usr/lib/dtk2,${dtkcore}/lib/dtk2,"
+ searchHardCodedPaths # debugging
+
sed -i src/libdmr/libdmr.pc.in -e "s,/usr,$out," -e 's,libdir=''${prefix}/,libdir=,'
+
+ substituteInPlace src/deepin-movie.desktop \
+ --replace "Exec=deepin-movie" "Exec=$out/bin/deepin-movie"
'';
passthru.updateScript = deepin.updateScript { inherit ;name = "${pname}-${version}"; };
diff --git a/pkgs/desktops/deepin/deepin-mutter/deepin-mutter.plugins-dir.patch b/pkgs/desktops/deepin/deepin-mutter/deepin-mutter.plugins-dir.patch
deleted file mode 100644
index 4a57b501e01..00000000000
--- a/pkgs/desktops/deepin/deepin-mutter/deepin-mutter.plugins-dir.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 8eeb4febcae517080d6638f8953e02335df79f01 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?=
-Date: Sat, 20 Apr 2019 00:28:47 -0300
-Subject: [PATCH] Get plugins dir from environment variable
-
----
- src/compositor/meta-plugin-manager.c | 12 ++++++++++--
- 1 file changed, 10 insertions(+), 2 deletions(-)
-
-diff --git a/src/compositor/meta-plugin-manager.c b/src/compositor/meta-plugin-manager.c
-index ac5716db..d000100b 100644
---- a/src/compositor/meta-plugin-manager.c
-+++ b/src/compositor/meta-plugin-manager.c
-@@ -56,14 +56,22 @@ meta_plugin_manager_set_plugin_type (GType gtype)
- void
- meta_plugin_manager_load (const gchar *plugin_name)
- {
-- const gchar *dpath = MUTTER_PLUGIN_DIR "/";
-+ const gchar *env_var;
-+ const gchar *dpath;
- gchar *path;
- MetaModule *module;
-
-+ env_var = g_getenv ("DEEPIN_MUTTER_PLUGINS_DIR");
-+ g_debug ("$DEEPIN_MUTTER_PLUGINS_DIR: %s\n", env_var);
-+
-+ dpath = env_var == NULL || strlen (env_var) == 0 ? MUTTER_PLUGIN_DIR : env_var;
-+ g_debug ("dpath: %s\n", dpath);
-+
- if (g_path_is_absolute (plugin_name))
- path = g_strdup (plugin_name);
- else
-- path = g_strconcat (dpath, plugin_name, ".so", NULL);
-+ path = g_strconcat (dpath, "/", plugin_name, ".so", NULL);
-+ g_debug ("path: %s\n", path);
-
- module = g_object_new (META_TYPE_MODULE, "path", path, NULL);
- if (!module || !g_type_module_use (G_TYPE_MODULE (module)))
---
-2.21.0
-
diff --git a/pkgs/desktops/deepin/deepin-mutter/default.nix b/pkgs/desktops/deepin/deepin-mutter/default.nix
deleted file mode 100644
index 9f2e8068d55..00000000000
--- a/pkgs/desktops/deepin/deepin-mutter/default.nix
+++ /dev/null
@@ -1,79 +0,0 @@
-{ stdenv, fetchFromGitHub, pkgconfig, intltool, libtool, gnome3, gtk3,
- xorg, libcanberra-gtk3, upower, xkeyboard_config, libxkbcommon,
- libstartup_notification, libinput, libgudev, cogl, clutter, systemd,
- gsettings-desktop-schemas, deepin-desktop-schemas, wrapGAppsHook,
- deepin }:
-
-stdenv.mkDerivation rec {
- pname = "deepin-mutter";
- version = "3.20.38";
-
- src = fetchFromGitHub {
- owner = "linuxdeepin";
- repo = pname;
- rev = version;
- sha256 = "1aq7606sgn2c6n8wfgxdryw3lprc4va0zjc0r65798w5656fdi31";
- };
-
- nativeBuildInputs = [
- pkgconfig
- intltool
- libtool
- gnome3.gnome-common
- wrapGAppsHook
- deepin.setupHook
- ];
-
- buildInputs = [
- clutter
- cogl
- deepin-desktop-schemas
- gnome3.gnome-desktop
- gnome3.zenity
- gsettings-desktop-schemas
- gtk3
- libcanberra-gtk3
- libgudev
- libinput
- libstartup_notification
- libxkbcommon
- systemd
- upower
- xkeyboard_config
- xorg.libxkbfile
- ];
-
- patches = [
- ./deepin-mutter.plugins-dir.patch
- ];
-
- postPatch = ''
- searchHardCodedPaths # debugging
- sed -i -e "s,Exec=deepin-mutter,Exec=$out/bin/deepin-mutter," data/mutter.desktop.in
- '';
-
- configureFlags = [
- "--enable-native-backend"
- "--enable-compile-warnings=minimum"
- ];
-
- preConfigure = ''
- NOCONFIGURE=1 ./autogen.sh
- '';
-
- postFixup = ''
- searchHardCodedPaths $out # debugging
- '';
-
- enableParallelBuilding = true;
-
- passthru.updateScript = deepin.updateScript { inherit ;name = "${pname}-${version}"; };
-
- meta = with stdenv.lib; {
- description = "Base window manager for deepin, fork of gnome mutter";
- homepage = https://github.com/linuxdeepin/deepin-mutter;
- license = licenses.gpl3;
- platforms = platforms.linux;
- maintainers = with maintainers; [ romildo ];
- };
-}
diff --git a/pkgs/desktops/deepin/deepin-screenshot/default.nix b/pkgs/desktops/deepin/deepin-screenshot/default.nix
index e77aa5e68c6..0e0db458aca 100644
--- a/pkgs/desktops/deepin/deepin-screenshot/default.nix
+++ b/pkgs/desktops/deepin/deepin-screenshot/default.nix
@@ -4,13 +4,13 @@
mkDerivation rec {
pname = "deepin-screenshot";
- version = "4.2.1";
+ version = "5.0.0";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = pname;
rev = version;
- sha256 = "16wy1ywp4lm7fg488laqxgxpir745rbpj9z410r6x7krpgjds189";
+ sha256 = "0h1kcf9i8q6rz4jhym3yf84zr6svzff0hh9sl7b24sflzkxx6zwk";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/deepin/deepin-shortcut-viewer/default.nix b/pkgs/desktops/deepin/deepin-shortcut-viewer/default.nix
index 62c6c7ed925..217dbc2b0db 100644
--- a/pkgs/desktops/deepin/deepin-shortcut-viewer/default.nix
+++ b/pkgs/desktops/deepin/deepin-shortcut-viewer/default.nix
@@ -3,7 +3,7 @@
mkDerivation rec {
pname = "deepin-shortcut-viewer";
- version = "1.3.5";
+ version = "5.0.0";
src = fetchFromGitHub {
owner = "linuxdeepin";
diff --git a/pkgs/desktops/deepin/deepin-terminal/default.nix b/pkgs/desktops/deepin/deepin-terminal/default.nix
index 59789bd84bb..7a4d0662bbb 100644
--- a/pkgs/desktops/deepin/deepin-terminal/default.nix
+++ b/pkgs/desktops/deepin/deepin-terminal/default.nix
@@ -1,25 +1,25 @@
-{ stdenv, fetchFromGitHub, pkgconfig, cmake, ninja, vala,
+{ stdenv, fetchFromGitHub, pkgconfig, cmake, ninja, vala_0_40,
gettext, at-spi2-core, dbus, epoxy, expect, gtk3, json-glib,
libXdmcp, libgee, libpthreadstubs, librsvg, libsecret, libtasn1,
- libxcb, libxkbcommon, p11-kit, pcre, vte, wnck, libselinux,
+ libxcb, libxkbcommon, p11-kit, pcre, vte, wnck, libselinux, gnutls, pcre2,
libsepol, utillinux, deepin-menu, deepin-shortcut-viewer, deepin, wrapGAppsHook }:
stdenv.mkDerivation rec {
pname = "deepin-terminal";
- version = "3.2.6";
+ version = "5.0.0";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = "deepin-terminal";
rev = version;
- sha256 = "09s5gvzfxfb353kb61x1b6z3h2aqgln3s3mah3f3zkf5y8hrp2pj";
+ sha256 = "1929saj828b438d07caw3cjhqq60v6gni7mi3fqrg9wdjz81xwv7";
};
nativeBuildInputs = [
pkgconfig
cmake
ninja
- vala
+ vala_0_40 # xcb.vapi:411.3-411.48: error: missing return statement at end of subroutine body
gettext
libselinux libsepol utillinux # required by gio
deepin.setupHook
@@ -47,6 +47,8 @@ stdenv.mkDerivation rec {
pcre
vte
wnck
+ gnutls
+ pcre2
];
postPatch = ''
diff --git a/pkgs/desktops/deepin/deepin-wm/default.nix b/pkgs/desktops/deepin/deepin-wm/default.nix
deleted file mode 100644
index 13b115e7042..00000000000
--- a/pkgs/desktops/deepin/deepin-wm/default.nix
+++ /dev/null
@@ -1,75 +0,0 @@
-{ stdenv, fetchFromGitHub, pkgconfig, intltool, libtool, vala, gnome3,
- dbus, bamf, clutter-gtk, pantheon, libgee, libcanberra-gtk3,
- libwnck3, deepin-menu, deepin-mutter, deepin-wallpapers,
- deepin-desktop-schemas, wrapGAppsHook, deepin }:
-
-stdenv.mkDerivation rec {
- pname = "deepin-wm";
- version = "1.9.38";
-
- src = fetchFromGitHub {
- owner = "linuxdeepin";
- repo = pname;
- rev = version;
- sha256 = "1qhdnv4x78f0gkr94q0j8x029fk9ji4m9jdipgrdm83pnahib80g";
- };
-
- nativeBuildInputs = [
- pkgconfig
- intltool
- libtool
- vala
- gnome3.gnome-common
- wrapGAppsHook
- deepin.setupHook
- ];
-
- buildInputs = [
- bamf
- clutter-gtk
- dbus
- deepin-desktop-schemas
- deepin-menu
- deepin-mutter
- deepin-wallpapers
- gnome3.gnome-desktop
- libcanberra-gtk3
- libgee
- libwnck3
- pantheon.granite
- ];
-
- postPatch = ''
- searchHardCodedPaths # debugging
-
- # fix background path
- fixPath ${deepin-wallpapers} /usr/share/backgrounds src/Background/BackgroundSource.vala
- sed -i 's|default_background.jpg|deepin/desktop.jpg|' src/Background/BackgroundSource.vala
-
- # fix executable paths in desktop files
- sed -i -e "s,Exec=dbus-send,Exec=${dbus}/bin/dbus-send," data/gala-multitaskingview.desktop.in
- sed -i -e "s,Exec=deepin-wm,Exec=$out/bin/deepin-wm," data/gala.desktop
- '';
-
- NIX_CFLAGS_COMPILE = "-DWNCK_I_KNOW_THIS_IS_UNSTABLE";
-
- preConfigure = ''
- NOCONFIGURE=1 ./autogen.sh
- '';
-
- postFixup = ''
- searchHardCodedPaths $out # debugging
- '';
-
- enableParallelBuilding = true;
-
- passthru.updateScript = deepin.updateScript { inherit ;name = "${pname}-${version}"; };
-
- meta = with stdenv.lib; {
- description = "Deepin Window Manager";
- homepage = https://github.com/linuxdeepin/deepin-wm;
- license = licenses.gpl3;
- platforms = platforms.linux;
- maintainers = with maintainers; [ romildo ];
- };
-}
diff --git a/pkgs/desktops/deepin/default.nix b/pkgs/desktops/deepin/default.nix
index 5d68396a498..57b0b35a532 100644
--- a/pkgs/desktops/deepin/default.nix
+++ b/pkgs/desktops/deepin/default.nix
@@ -13,6 +13,7 @@ let
dde-daemon = callPackage ./dde-daemon { };
dde-dock = callPackage ./dde-dock { };
dde-file-manager = callPackage ./dde-file-manager { };
+ dde-kwin = callPackage ./dde-kwin { };
dde-launcher = callPackage ./dde-launcher { };
dde-network-utils = callPackage ./dde-network-utils { };
dde-polkit-agent = callPackage ./dde-polkit-agent { };
@@ -22,14 +23,13 @@ let
deepin-calculator = callPackage ./deepin-calculator { };
deepin-desktop-base = callPackage ./deepin-desktop-base { };
deepin-desktop-schemas = callPackage ./deepin-desktop-schemas { };
+ deepin-editor = callPackage ./deepin-editor { };
deepin-gettext-tools = callPackage ./deepin-gettext-tools { };
deepin-gtk-theme = callPackage ./deepin-gtk-theme { };
deepin-icon-theme = callPackage ./deepin-icon-theme { };
deepin-image-viewer = callPackage ./deepin-image-viewer { };
deepin-menu = callPackage ./deepin-menu { };
- deepin-metacity = callPackage ./deepin-metacity { };
deepin-movie-reborn = callPackage ./deepin-movie-reborn { };
- deepin-mutter = callPackage ./deepin-mutter { };
deepin-screenshot = callPackage ./deepin-screenshot { };
deepin-shortcut-viewer = callPackage ./deepin-shortcut-viewer { };
deepin-sound-theme = callPackage ./deepin-sound-theme { };
@@ -38,7 +38,7 @@ let
};
deepin-turbo = callPackage ./deepin-turbo { };
deepin-wallpapers = callPackage ./deepin-wallpapers { };
- deepin-wm = callPackage ./deepin-wm { };
+ disomaster = callPackage ./disomaster { };
dpa-ext-gnomekeyring = callPackage ./dpa-ext-gnomekeyring { };
dtkcore = callPackage ./dtkcore { };
dtkwidget = callPackage ./dtkwidget { };
diff --git a/pkgs/desktops/deepin/disomaster/default.nix b/pkgs/desktops/deepin/disomaster/default.nix
new file mode 100644
index 00000000000..37140d84191
--- /dev/null
+++ b/pkgs/desktops/deepin/disomaster/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, qmake, qtbase, libisoburn, deepin }:
+
+mkDerivation rec {
+ pname = "disomaster";
+ version = "5.0.0";
+
+ src = fetchFromGitHub {
+ owner = "linuxdeepin";
+ repo = pname;
+ rev = version;
+ sha256 = "13144gq0mpbpclzxc79fb1kirh0vvi50jvjnbpla9s8lvh59xl62";
+ };
+
+ nativeBuildInputs = [
+ deepin.setupHook
+ pkgconfig
+ qmake
+ ];
+
+ buildInputs = [
+ libisoburn
+ qtbase
+ ];
+
+ postPatch = ''
+ searchHardCodedPaths # debugging
+
+ sed -i '/^QMAKE_PKGCONFIG_DESTDIR/i QMAKE_PKGCONFIG_PREFIX = $$PREFIX' \
+ libdisomaster/libdisomaster.pro
+ '';
+
+ passthru.updateScript = deepin.updateScript { inherit ;name = "${pname}-${version}"; };
+
+ meta = with stdenv.lib; {
+ description = "A libisoburn wrapper for Qt";
+ homepage = https://github.com/linuxdeepin/disomaster;
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ romildo worldofpeace ];
+ };
+}
diff --git a/pkgs/desktops/deepin/dpa-ext-gnomekeyring/default.nix b/pkgs/desktops/deepin/dpa-ext-gnomekeyring/default.nix
index f645be0f4d9..394bdd52b3d 100644
--- a/pkgs/desktops/deepin/dpa-ext-gnomekeyring/default.nix
+++ b/pkgs/desktops/deepin/dpa-ext-gnomekeyring/default.nix
@@ -3,7 +3,7 @@
stdenv.mkDerivation rec {
pname = "dpa-ext-gnomekeyring";
- version = "0.1.0";
+ version = "5.0.1";
src = fetchFromGitHub {
owner = "linuxdeepin";
diff --git a/pkgs/desktops/deepin/dtkcore/default.nix b/pkgs/desktops/deepin/dtkcore/default.nix
index 2ed10f99368..3d9dd33772b 100644
--- a/pkgs/desktops/deepin/dtkcore/default.nix
+++ b/pkgs/desktops/deepin/dtkcore/default.nix
@@ -2,13 +2,13 @@
mkDerivation rec {
pname = "dtkcore";
- version = "2.0.14";
+ version = "2.1.1";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = pname;
rev = version;
- sha256 = "0yc6zx8rhzg9mj2brggcsr1jy1pzfvgqy1h305y2dwnx5haazd04";
+ sha256 = "0xdh6mmrv8yr6mjmlwj0fv037parkkwfwlaibcbrskwxqp9iri1y";
};
nativeBuildInputs = [
@@ -31,12 +31,13 @@ mkDerivation rec {
qmakeFlags = [
"DTK_VERSION=${version}"
+ "LIB_INSTALL_DIR=${placeholder "out"}/lib"
"MKSPECS_INSTALL_DIR=${placeholder "out"}/mkspecs"
];
postFixup = ''
- chmod +x $out/lib/dtk2/*.py
- wrapPythonProgramsIn "$out/lib/dtk2" "$out $pythonPath"
+ chmod +x $out/lib/libdtk-${version}/DCore/bin/*.py
+ wrapPythonProgramsIn "$out/lib/libdtk-${version}/DCore/bin" "$out $pythonPath"
searchHardCodedPaths $out # debugging
'';
@@ -45,7 +46,7 @@ mkDerivation rec {
passthru.updateScript = deepin.updateScript { inherit ;name = "${pname}-${version}"; };
meta = with stdenv.lib; {
- description = "Deepin tool kit core modules";
+ description = "Deepin tool kit core library";
homepage = https://github.com/linuxdeepin/dtkcore;
license = licenses.gpl3;
platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/dtkwidget/default.nix b/pkgs/desktops/deepin/dtkwidget/default.nix
index 54c4163fcd1..2e0cfef036a 100644
--- a/pkgs/desktops/deepin/dtkwidget/default.nix
+++ b/pkgs/desktops/deepin/dtkwidget/default.nix
@@ -4,13 +4,13 @@
mkDerivation rec {
pname = "dtkwidget";
- version = "2.0.14";
+ version = "2.1.1";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = pname;
rev = version;
- sha256 = "11ws0rl7rhlgwbqd4nqpqxhngf4lcyfrrdq33wzxwdlk33d69i1h";
+ sha256 = "0yqrm1p0k1843ldvcd79dxl26ybyl5kljl6vwhzc58sx7pw4qmvh";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/deepin/dtkwm/default.nix b/pkgs/desktops/deepin/dtkwm/default.nix
index 4807c3d312b..0251f8097d5 100644
--- a/pkgs/desktops/deepin/dtkwm/default.nix
+++ b/pkgs/desktops/deepin/dtkwm/default.nix
@@ -1,15 +1,14 @@
-{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, qmake, qtx11extras, dtkcore,
- deepin }:
+{ stdenv, mkDerivation, fetchFromGitHub, fetchpatch, pkgconfig, qmake, qtx11extras, dtkcore, deepin }:
mkDerivation rec {
pname = "dtkwm";
- version = "2.0.11";
+ version = "2.0.12";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = pname;
rev = version;
- sha256 = "10l89i84vsh5knq9wg2php7vfg5rj5c9hrrl9rjlcidn1rz8yx6f";
+ sha256 = "0rdzzqsggqarldwb4yp5s4sf5czicgxbdmibjn0pw32129r2d1g3";
};
nativeBuildInputs = [
@@ -22,6 +21,14 @@ mkDerivation rec {
qtx11extras
];
+ patches = [
+ # Set DTK_MODULE_NAME
+ (fetchpatch {
+ url = "https://github.com/linuxdeepin/dtkwm/commit/2490891a.patch";
+ sha256 = "0krydxjpnaihkgs1n49b6mcf3rd3lkispcnkb1j5vpfs9hp9f48j";
+ })
+ ];
+
outRef = placeholder "out";
qmakeFlags = [
diff --git a/pkgs/desktops/deepin/go-dbus-generator/default.nix b/pkgs/desktops/deepin/go-dbus-generator/default.nix
index 12562976490..d564f2c8875 100644
--- a/pkgs/desktops/deepin/go-dbus-generator/default.nix
+++ b/pkgs/desktops/deepin/go-dbus-generator/default.nix
@@ -2,7 +2,7 @@
stdenv.mkDerivation rec {
pname = "go-dbus-generator";
- version = "0.6.6";
+ version = "5.0.0";
src = fetchFromGitHub {
owner = "linuxdeepin";
diff --git a/pkgs/desktops/deepin/go-lib/default.nix b/pkgs/desktops/deepin/go-lib/default.nix
index fff92b595f8..f5ed22f2f8e 100644
--- a/pkgs/desktops/deepin/go-lib/default.nix
+++ b/pkgs/desktops/deepin/go-lib/default.nix
@@ -3,13 +3,13 @@
stdenv.mkDerivation rec {
pname = "go-lib";
- version = "1.10.2";
+ version = "5.0.0";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = pname;
rev = version;
- sha256 = "05z7ayl23cm8mbn4vkn3isy5kgwxljc26ifmzrhmnqm5yibd6lsf";
+ sha256 = "0j1ik5hfrysqgync8cyv815cwyjn67k8n69x6llxdp39jli1k8q0";
};
buildInputs = [
diff --git a/pkgs/desktops/deepin/qcef/default.nix b/pkgs/desktops/deepin/qcef/default.nix
index ffbc230d2e2..b43d74d15c7 100644
--- a/pkgs/desktops/deepin/qcef/default.nix
+++ b/pkgs/desktops/deepin/qcef/default.nix
@@ -40,7 +40,7 @@ in
mkDerivation rec {
pname = "qcef";
- version = "1.1.6";
+ version = "1.1.7";
srcs = [
(fetchFromGitHub {
@@ -53,8 +53,8 @@ mkDerivation rec {
(fetchFromGitHub {
owner = "linuxdeepin";
repo = "cef-binary";
- rev = "059a0c9cef4e289a50dc7a2f4c91fe69db95035e";
- sha256 = "1h7cq63n94y2a6fprq4g63admh49rcci7avl5z9kdimkhqb2jb84";
+ rev = "fecf00339545d2819224333cc506d5aa22ae8008";
+ sha256 = "06i1zc7ciy7d0qhndiwpjrsii0x5i5hg9j6ddi4w5yf1nzgsrj4n";
name = "cef-binary";
})
];
diff --git a/pkgs/desktops/deepin/qt5dxcb-plugin/default.nix b/pkgs/desktops/deepin/qt5dxcb-plugin/default.nix
index 4d0240c426b..f382e605bac 100644
--- a/pkgs/desktops/deepin/qt5dxcb-plugin/default.nix
+++ b/pkgs/desktops/deepin/qt5dxcb-plugin/default.nix
@@ -3,14 +3,19 @@
mkDerivation rec {
pname = "qt5dxcb-plugin";
- version = "1.2.2";
+ version = "5.0.1";
- src = fetchFromGitHub {
- owner = "linuxdeepin";
- repo = pname;
- rev = version;
- sha256 = "1zvab6qxdr49pmk6mbk7s0md7bx585p32lca0xbg8mrkajz7g8rq";
- };
+ srcs = [
+ (fetchFromGitHub {
+ owner = "linuxdeepin";
+ repo = pname;
+ rev = version;
+ sha256 = "1pkhbx4hzjv7n4mscv7dng9ymjcc1csdc82iy62yxshhq32bcfja";
+ })
+ qtbase.src
+ ];
+
+ sourceRoot = "source";
nativeBuildInputs = [
pkgconfig
@@ -22,8 +27,16 @@ mkDerivation rec {
libSM
mtdev
cairo
+ qtbase
];
+ postPatch = ''
+ # The Qt5 platforms plugin is vendored in the package, however what's there is not always up-to-date with what's in nixpkgs.
+ # We simply copy the headers from qtbase's source tarball.
+ mkdir -p platformplugin/libqt5xcbqpa-dev/${qtbase.version}
+ cp -r ../qtbase-everywhere-src-${qtbase.version}/src/plugins/platforms/xcb/*.h platformplugin/libqt5xcbqpa-dev/${qtbase.version}/
+ '';
+
qmakeFlags = [
"INSTALL_PATH=${placeholder "out"}/${qtbase.qtPluginPrefix}/platforms"
];
diff --git a/pkgs/desktops/deepin/qt5integration/default.nix b/pkgs/desktops/deepin/qt5integration/default.nix
index 97e60be6d67..0ffa3d006bc 100644
--- a/pkgs/desktops/deepin/qt5integration/default.nix
+++ b/pkgs/desktops/deepin/qt5integration/default.nix
@@ -4,7 +4,7 @@
mkDerivation rec {
pname = "qt5integration";
- version = "0.3.12";
+ version = "5.0.0";
src = fetchFromGitHub {
owner = "linuxdeepin";
diff --git a/pkgs/desktops/deepin/udisks2-qt5/default.nix b/pkgs/desktops/deepin/udisks2-qt5/default.nix
index 51c38f6d347..1809f191838 100644
--- a/pkgs/desktops/deepin/udisks2-qt5/default.nix
+++ b/pkgs/desktops/deepin/udisks2-qt5/default.nix
@@ -2,13 +2,13 @@
mkDerivation rec {
pname = "udisks2-qt5";
- version = "0.0.1";
+ version = "5.0.0";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = pname;
rev = version;
- sha256 = "1gk4jmq7mrzk181r6man2rz1iyzkfasz7053a30h4nn24mq8ikig";
+ sha256 = "0mqxm6ixzpbg0rr6ly2kvnkpag8gjza67ya7jv4i4rihbq1d0wzi";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/enlightenment/econnman.nix b/pkgs/desktops/enlightenment/econnman.nix
index 93b0cb59650..9aca09a510a 100644
--- a/pkgs/desktops/enlightenment/econnman.nix
+++ b/pkgs/desktops/enlightenment/econnman.nix
@@ -22,8 +22,8 @@ stdenv.mkDerivation rec {
meta = {
description = "A user interface for the connman network connection manager";
homepage = https://enlightenment.org/;
- maintainers = with stdenv.lib.maintainers; [ matejc tstrobel ftrvxmtrx ];
- platforms = stdenv.lib.platforms.linux;
license = stdenv.lib.licenses.lgpl3;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = with stdenv.lib.maintainers; [ matejc tstrobel ftrvxmtrx romildo ];
};
}
diff --git a/pkgs/desktops/enlightenment/efl.nix b/pkgs/desktops/enlightenment/efl.nix
index 1876cce6c8a..976c6b1f32b 100644
--- a/pkgs/desktops/enlightenment/efl.nix
+++ b/pkgs/desktops/enlightenment/efl.nix
@@ -1,58 +1,119 @@
-{ stdenv, fetchurl, pkgconfig, openssl, libjpeg, zlib, lz4, freetype, fontconfig
-, fribidi, SDL2, SDL, libGL, giflib, libpng, libtiff, glib, gst_all_1, libpulseaudio
-, libsndfile, xorg, libdrm, libxkbcommon, udev, utillinux, bullet, luajit
-, python27Packages, openjpeg, doxygen, expat, harfbuzz, jbig2dec, librsvg
-, dbus, alsaLib, poppler, ghostscript, libraw, libspectre, xineLib, libwebp
-, curl, libinput, systemd, mesa, writeText, gtk3
+{ stdenv, fetchurl, meson, ninja, pkgconfig, SDL, SDL2, alsaLib,
+ avahi, bullet, check, curl, dbus, doxygen, expat, fontconfig,
+ freetype, fribidi, ghostscript, giflib, glib, gst_all_1, gtk3,
+ harfbuzz, ibus, jbig2dec, libGL, libdrm, libinput, libjpeg, libpng,
+ libpulseaudio, libraw, librsvg, libsndfile, libspectre, libtiff,
+ libwebp, libxkbcommon, luajit, lz4, mesa, openjpeg, openssl,
+ poppler, python27Packages, systemd, udev, utillinux, writeText,
+ xorg, zlib
}:
stdenv.mkDerivation rec {
pname = "efl";
- version = "1.22.3";
+ version = "1.23.2";
src = fetchurl {
url = "http://download.enlightenment.org/rel/libs/${pname}/${pname}-${version}.tar.xz";
- sha256 = "1j1i8cwq4ym9z34ikv35mdmv5q7q69hdp494mc6l03g9n6cl2yky";
+ sha256 = "14yljnnmb89s8j6ip08ip5d01zkgzbzr1h4fr4bwk9lh8r59x3ds";
};
- nativeBuildInputs = [ pkgconfig gtk3 ];
+ nativeBuildInputs = [
+ meson
+ ninja
+ gtk3
+ pkgconfig
+ check
+ ];
- buildInputs = [ openssl zlib lz4 freetype fontconfig SDL libGL mesa
- giflib libpng libtiff glib gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
- gst_all_1.gst-libav libpulseaudio libsndfile xorg.libXcursor xorg.xorgproto
- xorg.libX11 udev systemd ];
+ buildInputs = [
+ SDL
+ avahi
+ fontconfig
+ freetype
+ giflib
+ glib
+ gst_all_1.gst-libav
+ gst_all_1.gst-plugins-base
+ gst_all_1.gst-plugins-good
+ gst_all_1.gstreamer
+ ibus
+ libGL
+ libpng
+ libpulseaudio
+ libsndfile
+ libtiff
+ lz4
+ mesa
+ openssl
+ systemd
+ udev
+ xorg.libX11
+ xorg.libXcursor
+ xorg.xorgproto
+ zlib
+ ];
- propagatedBuildInputs = [ libxkbcommon python27Packages.dbus-python dbus libjpeg xorg.libXcomposite
- xorg.libXdamage xorg.libXinerama xorg.libXp xorg.libXtst xorg.libXi xorg.libXext
- bullet xorg.libXScrnSaver xorg.libXrender xorg.libXfixes xorg.libXrandr
- xorg.libxkbfile xorg.libxcb xorg.xcbutilkeysyms openjpeg doxygen expat luajit
- harfbuzz jbig2dec librsvg dbus alsaLib poppler ghostscript libraw libspectre xineLib libwebp curl libdrm
- libinput utillinux fribidi SDL2 ];
+ propagatedBuildInputs = [
+ SDL2
+ alsaLib
+ bullet
+ curl
+ dbus
+ dbus
+ doxygen
+ expat
+ fribidi
+ ghostscript
+ harfbuzz
+ jbig2dec
+ libdrm
+ libinput
+ libjpeg
+ libraw
+ librsvg
+ libspectre
+ libwebp
+ libxkbcommon
+ luajit
+ openjpeg
+ poppler
+ python27Packages.dbus-python
+ utillinux
+ xorg.libXScrnSaver
+ xorg.libXcomposite
+ xorg.libXdamage
+ xorg.libXext
+ xorg.libXfixes
+ xorg.libXi
+ xorg.libXinerama
+ xorg.libXp
+ xorg.libXrandr
+ xorg.libXrender
+ xorg.libXtst
+ xorg.libxcb
+ xorg.libxkbfile
+ xorg.xcbutilkeysyms
+ ];
- # ac_ct_CXX must be set to random value, because then it skips some magic which does alternative searching for g++
- configureFlags = [
- "--enable-sdl"
- "--enable-drm"
- "--enable-elput"
- "--with-opengl=full"
- "--enable-image-loader-jp2k"
- "--enable-xinput22"
- "--enable-multisense"
- "--enable-liblz4"
- "--enable-systemd"
- "--enable-image-loader-webp"
- "--enable-harfbuzz"
- "--enable-xine"
- "--enable-fb"
- "--disable-tslib"
- "--with-systemdunitdir=$out/systemd/user"
- "ac_ct_CXX=foo"
+ mesonFlags = [
+ "--buildtype=release"
+ "-D build-tests=false" # disable build tests, which are not working
+ "-D drm=true"
+ "-D embedded-lz4=false"
+ "-D evas-loaders-disabler=json"
+ "-D fb=true"
+ "-D opengl=full"
+ "-D sdl=true"
];
patches = [ ./efl-elua.patch ];
postPatch = ''
patchShebangs src/lib/elementary/config_embed
+
+ # fix destination of systemd unit and dbus service
+ substituteInPlace systemd-services/meson.build --replace "dep.get_pkgconfig_variable('systemduserunitdir')" "'$out/systemd/user'"
+ substituteInPlace dbus-services/meson.build --replace "dep.get_pkgconfig_variable('session_bus_services_dir')" "'$out/share/dbus-1/services'"
'';
# bin/edje_cc creates $HOME/.run, which would break build of reverse dependencies.
@@ -61,35 +122,38 @@ stdenv.mkDerivation rec {
'';
preConfigure = ''
- export LD_LIBRARY_PATH="$(pwd)/src/lib/eina/.libs:$LD_LIBRARY_PATH"
+ # allow ecore_con to find libcurl.so, which is a runtime dependency (it is dlopened)
+ export LD_LIBRARY_PATH="${curl.out}/lib:$LD_LIBRARY_PATH"
+
source "$setupHook"
'';
NIX_CFLAGS_COMPILE = [ "-DluaL_reg=luaL_Reg" ]; # needed since luajit-2.1.0-beta3
postInstall = ''
+ # fix use of $out variable
substituteInPlace "$out/share/elua/core/util.lua" --replace '$out' "$out"
+
+ # add all module include dirs to the Cflags field in efl.pc
modules=$(for i in "$out/include/"*/; do printf ' -I''${includedir}/'`basename $i`; done)
- substituteInPlace "$out/lib/pkgconfig/efl.pc" --replace 'Cflags: -I''${includedir}/efl-1' \
- 'Cflags: -I''${includedir}/eina-1/eina'"$modules"
+ substituteInPlace "$out/lib/pkgconfig/efl.pc" \
+ --replace 'Cflags: -I''${includedir}/efl-1' \
+ 'Cflags: -I''${includedir}/eina-1/eina'"$modules"
# build icon cache
gtk-update-icon-cache "$out"/share/icons/Enlightenment-X
'';
- # EFL applications depend on libcurl, although it is linked at
- # runtime by hand in code (it is dlopened).
postFixup = ''
+ # EFL applications depend on libcurl, which is linked at runtime by hand in code (it is dlopened)
patchelf --add-needed ${curl.out}/lib/libcurl.so $out/lib/libecore_con.so
'';
- enableParallelBuilding = true;
-
meta = {
description = "Enlightenment foundation libraries";
homepage = https://enlightenment.org/;
- platforms = stdenv.lib.platforms.linux;
license = stdenv.lib.licenses.lgpl3;
- maintainers = with stdenv.lib.maintainers; [ matejc tstrobel ftrvxmtrx ];
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = with stdenv.lib.maintainers; [ matejc tstrobel ftrvxmtrx romildo ];
};
}
diff --git a/pkgs/desktops/enlightenment/enlightenment.nix b/pkgs/desktops/enlightenment/enlightenment.nix
index b2a9d398709..0fb249135a2 100644
--- a/pkgs/desktops/enlightenment/enlightenment.nix
+++ b/pkgs/desktops/enlightenment/enlightenment.nix
@@ -1,7 +1,7 @@
-{ stdenv, fetchurl, meson, ninja, pkgconfig, gettext, efl,
- xcbutilkeysyms, libXrandr, libXdmcp, libxcb, libffi, pam, alsaLib,
- luajit, bzip2, libpthreadstubs, gdbm, libcap, mesa,
- xkeyboard_config, pcre,
+{ stdenv, fetchurl, meson, ninja, pkgconfig, gettext, alsaLib, bc,
+ bzip2, efl, gdbm, libXdmcp, libXrandr, libcap, libffi,
+ libpthreadstubs, libxcb, luajit, mesa, pam, pcre, xcbutilkeysyms,
+ xkeyboard_config,
bluetoothSupport ? true, bluez5,
pulseSupport ? !stdenv.isDarwin, libpulseaudio,
@@ -9,35 +9,36 @@
stdenv.mkDerivation rec {
pname = "enlightenment";
- version = "0.23.0";
+ version = "0.23.1";
src = fetchurl {
url = "http://download.enlightenment.org/rel/apps/${pname}/${pname}-${version}.tar.xz";
- sha256 = "1y7x594gvyvl5zbb1rnf3clj2pm6j97n8wl5mp9x6xjmhx0d1idq";
+ sha256 = "0d1cyl07w9pvi2pf029kablazks2q9aislzl46b6fq5m1465jc75";
};
nativeBuildInputs = [
+ gettext
meson
ninja
- (pkgconfig.override { vanilla = true; })
- gettext
+ pkgconfig
];
buildInputs = [
+ alsaLib
+ bc # for the Everything module calculator mode
+ bzip2
efl
+ gdbm
libXdmcp
- libxcb
- xcbutilkeysyms
libXrandr
libffi
- pam
- alsaLib
- luajit
- bzip2
libpthreadstubs
- gdbm
- pcre
+ libxcb
+ luajit
mesa
+ pam
+ pcre
+ xcbutilkeysyms
xkeyboard_config
]
++ stdenv.lib.optional stdenv.isLinux libcap
@@ -68,6 +69,9 @@ stdenv.mkDerivation rec {
substituteInPlace src/bin/e_import_config_dialog.c \
--replace "e_prefix_bin_get()" "\"${efl}/bin\""
+
+ substituteInPlace src/modules/everything/evry_plug_calc.c \
+ --replace "ecore_exe_pipe_run(\"bc -l\"" "ecore_exe_pipe_run(\"${bc}/bin/bc -l\""
'';
mesonFlags = [ "-Dsystemdunitdir=lib/systemd/user" ];
diff --git a/pkgs/desktops/enlightenment/ephoto.nix b/pkgs/desktops/enlightenment/ephoto.nix
index f1455f68338..b00b3d7a846 100644
--- a/pkgs/desktops/enlightenment/ephoto.nix
+++ b/pkgs/desktops/enlightenment/ephoto.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs = [
- (pkgconfig.override { vanilla = true; })
+ pkgconfig
mesa.dev # otherwise pkg-config does not find gbm
makeWrapper
];
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
meta = {
description = "Image viewer and editor written using the Enlightenment Foundation Libraries";
- homepage = http://smhouston.us/ephoto/;
+ homepage = https://smhouston.us/projects/ephoto/;
license = stdenv.lib.licenses.bsd2;
platforms = stdenv.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.romildo ];
diff --git a/pkgs/desktops/enlightenment/rage.nix b/pkgs/desktops/enlightenment/rage.nix
index 8d99ce6e8e0..f0a9799e5b4 100644
--- a/pkgs/desktops/enlightenment/rage.nix
+++ b/pkgs/desktops/enlightenment/rage.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [
meson
ninja
- (pkgconfig.override { vanilla = true; })
+ pkgconfig
mesa.dev
wrapGAppsHook
];
diff --git a/pkgs/desktops/enlightenment/terminology.nix b/pkgs/desktops/enlightenment/terminology.nix
index 52f0ff15e23..ee140e09150 100644
--- a/pkgs/desktops/enlightenment/terminology.nix
+++ b/pkgs/desktops/enlightenment/terminology.nix
@@ -2,17 +2,17 @@
stdenv.mkDerivation rec {
pname = "terminology";
- version = "1.5.0";
+ version = "1.6.0";
src = fetchurl {
url = "http://download.enlightenment.org/rel/apps/${pname}/${pname}-${version}.tar.xz";
- sha256 = "0v4amfg8ji0mb6j7kcxh3wz1xw5zyxg4rw6ylx17rfw2nc1yamfy";
+ sha256 = "0xxx4xyhis6fy3frgb34ip0aj0kc4zashf60gzbxmq5gadbb0p5r";
};
nativeBuildInputs = [
meson
ninja
- (pkgconfig.override { vanilla = true; })
+ pkgconfig
makeWrapper
];
@@ -25,8 +25,8 @@ stdenv.mkDerivation rec {
meta = {
description = "Powerful terminal emulator based on EFL";
homepage = https://www.enlightenment.org/about-terminology;
- platforms = stdenv.lib.platforms.linux;
license = stdenv.lib.licenses.bsd2;
- maintainers = with stdenv.lib.maintainers; [ matejc tstrobel ftrvxmtrx ];
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = with stdenv.lib.maintainers; [ matejc tstrobel ftrvxmtrx romildo ];
};
}
diff --git a/pkgs/desktops/gnome-3/apps/accerciser/default.nix b/pkgs/desktops/gnome-3/apps/accerciser/default.nix
index 9a70319952c..c801657f74b 100644
--- a/pkgs/desktops/gnome-3/apps/accerciser/default.nix
+++ b/pkgs/desktops/gnome-3/apps/accerciser/default.nix
@@ -17,13 +17,13 @@
python3.pkgs.buildPythonApplication rec {
name = "accerciser-${version}";
- version = "3.32.3";
+ version = "3.34.1";
format = "other";
src = fetchurl {
url = "mirror://gnome/sources/accerciser/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
- sha256 = "0ark4qkfvdggz2mbksq12iq55izdsjnkjqkvfnnkf4k5vfpa95y5";
+ sha256 = "1awf7fcm52r23s51gllyybhywf2kljqkaw4znblajph9sawnfs3l";
};
nativeBuildInputs = [
@@ -48,6 +48,7 @@
pyatspi
pycairo
pygobject3
+ setuptools
xlib
];
diff --git a/pkgs/desktops/gnome-3/apps/cheese/default.nix b/pkgs/desktops/gnome-3/apps/cheese/default.nix
index b18e58f6f56..b3bb1e1093c 100644
--- a/pkgs/desktops/gnome-3/apps/cheese/default.nix
+++ b/pkgs/desktops/gnome-3/apps/cheese/default.nix
@@ -1,39 +1,41 @@
-{ stdenv, intltool, fetchurl, wrapGAppsHook, gnome-video-effects, libcanberra-gtk3
+{ stdenv, gettext, fetchurl, wrapGAppsHook, gnome-video-effects, libcanberra-gtk3
, pkgconfig, gtk3, glib, clutter-gtk, clutter-gst, udev, gst_all_1, itstool
-, libgudev, autoreconfHook, vala, docbook_xml_dtd_43, docbook_xsl, appstream-glib
+, libgudev, vala, docbook_xml_dtd_43, docbook_xsl, appstream-glib
, libxslt, yelp-tools, gnome-common, gtk-doc
-, adwaita-icon-theme, librsvg, totem, gdk-pixbuf, gnome3, gnome-desktop, libxml2 }:
+, adwaita-icon-theme, librsvg, totem, gdk-pixbuf, gnome3, gnome-desktop, libxml2
+, meson, ninja, dbus, python3 }:
stdenv.mkDerivation rec {
pname = "cheese";
- version = "3.32.1";
+ version = "3.34.0";
src = fetchurl {
url = "mirror://gnome/sources/cheese/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "1xlmsm4zsx05ahvpd4mgy1hfhxbag0r5i6p63bksjxdligdd36kv";
+ sha256 = "0wvyc9wb0avrprvm529m42y5fkv3lirdphqydc9jw0c8mh05d1ni";
};
+ postPatch = ''
+ chmod +x meson_post_install.py
+ patchShebangs meson_post_install.py
+ '';
+
passthru = {
updateScript = gnome3.updateScript { packageName = "cheese"; attrPath = "gnome3.cheese"; };
};
nativeBuildInputs = [
- pkgconfig intltool itstool vala wrapGAppsHook libxml2 appstream-glib
+ meson ninja pkgconfig gettext itstool vala wrapGAppsHook libxml2 appstream-glib
libxslt docbook_xml_dtd_43 docbook_xsl
- autoreconfHook gtk-doc yelp-tools gnome-common
+ gtk-doc yelp-tools gnome-common python3
];
buildInputs = [ gtk3 glib gnome-video-effects
gdk-pixbuf adwaita-icon-theme librsvg udev gst_all_1.gstreamer
gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good gnome-desktop
gst_all_1.gst-plugins-bad clutter-gtk clutter-gst
- libcanberra-gtk3 libgudev ];
+ libcanberra-gtk3 libgudev dbus ];
outputs = [ "out" "man" "devdoc" ];
- patches = [
- gtk-doc.respect_xml_catalog_files_var_patch
- ];
-
preFixup = ''
gappsWrapperArgs+=(
# Effects
diff --git a/pkgs/desktops/gnome-3/apps/evolution/default.nix b/pkgs/desktops/gnome-3/apps/evolution/default.nix
index 2061fc26607..701f894939e 100644
--- a/pkgs/desktops/gnome-3/apps/evolution/default.nix
+++ b/pkgs/desktops/gnome-3/apps/evolution/default.nix
@@ -10,7 +10,7 @@
, gtk3
, glib
, libnotify
-, gtkspell3
+, gspell
, evolution-data-server
, adwaita-icon-theme
, gnome-desktop
@@ -38,15 +38,16 @@
, procps
, p11-kit
, openldap
+, spamassassin
}:
stdenv.mkDerivation rec {
pname = "evolution";
- version = "3.32.4";
+ version = "3.34.1";
src = fetchurl {
url = "mirror://gnome/sources/evolution/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "00hmmg4hfns8rq9rcilmy0gi1xkksld27lfbd9zmw2xw37wjmbqh";
+ sha256 = "0hmxz3b9paqlpfjpqn379a8c01z3gb8lz0jgxxpgn6iygzfr4sk5";
};
nativeBuildInputs = [
@@ -73,7 +74,7 @@ stdenv.mkDerivation rec {
gst_all_1.gst-plugins-base
gst_all_1.gstreamer
gtk3
- gtkspell3
+ gspell
highlight
icu
libcanberra-gtk3
@@ -102,6 +103,10 @@ stdenv.mkDerivation rec {
"-DENABLE_LIBCRYPTUI=OFF"
"-DENABLE_PST_IMPORT=OFF"
"-DENABLE_YTNEF=OFF"
+ "-DWITH_SPAMASSASSIN=${spamassassin}/bin/spamassassin"
+ "-DWITH_SA_LEARN=${spamassassin}/bin/sa-learn"
+ "-DWITH_BOGOFILTER=${bogofilter}/bin/bogofilter"
+ "-DWITH_OPENLDAP=${openldap}"
];
requiredSystemFeatures = [
diff --git a/pkgs/desktops/gnome-3/apps/file-roller/default.nix b/pkgs/desktops/gnome-3/apps/file-roller/default.nix
index 267a7f2f7d2..36b89a31052 100644
--- a/pkgs/desktops/gnome-3/apps/file-roller/default.nix
+++ b/pkgs/desktops/gnome-3/apps/file-roller/default.nix
@@ -3,11 +3,11 @@
stdenv.mkDerivation rec {
pname = "file-roller";
- version = "3.32.1";
+ version = "3.32.2";
src = fetchurl {
url = "mirror://gnome/sources/file-roller/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0irm72cf8222h93skivn0nn0ckahiiiimy4rb9r3ccjvhi3hiaqw";
+ sha256 = "0w8s6hakgsvb2nqwbv0lr8ki4cbf1pz5z3qwkb0b2k7ppbh7j2n6";
};
LANG = "en_US.UTF-8"; # postinstall.py
diff --git a/pkgs/desktops/gnome-3/apps/gedit/default.nix b/pkgs/desktops/gnome-3/apps/gedit/default.nix
index 35d97a87a86..5115c2d8fb4 100644
--- a/pkgs/desktops/gnome-3/apps/gedit/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gedit/default.nix
@@ -6,11 +6,11 @@
stdenv.mkDerivation rec {
pname = "gedit";
- version = "3.32.2";
+ version = "3.34.0";
src = fetchurl {
url = "mirror://gnome/sources/gedit/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "1q2rk7fym542c7k3bn2wlnzgy384gxacbifsjny0spbg95gfybvl";
+ sha256 = "0zjh3p3lns7a7kx3g3v7gkgcqdzyx1zyv8ssr6d5ljfb7hfyb59y";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/apps/ghex/default.nix b/pkgs/desktops/gnome-3/apps/ghex/default.nix
index f776f4dbe5a..0998dbd069d 100644
--- a/pkgs/desktops/gnome-3/apps/ghex/default.nix
+++ b/pkgs/desktops/gnome-3/apps/ghex/default.nix
@@ -6,7 +6,6 @@
, ninja
, python3
, gnome3
-, hicolor-icon-theme
, desktop-file-utils
, appstream-glib
, gettext
@@ -32,7 +31,6 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [
desktop-file-utils
gettext
- hicolor-icon-theme # for setup-hook
itstool
meson
ninja
diff --git a/pkgs/desktops/gnome-3/apps/gnome-books/default.nix b/pkgs/desktops/gnome-3/apps/gnome-books/default.nix
index 25ee957224c..628442c3075 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-books/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-books/default.nix
@@ -7,11 +7,11 @@
stdenv.mkDerivation rec {
pname = "gnome-books";
- version = "3.32.0";
+ version = "3.34.0";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "1wkcywcwwszj9mldr0lngczqdz7hys08rr1nd2k6rs8ykzs2z7m4";
+ sha256 = "153vknqisjn5f105avzm933fsc3v0pjzzbwxlqxf8vjjksh1cmya";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix b/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
index 27ce5d0f078..ce8215d6391 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
@@ -1,49 +1,124 @@
-{ stdenv, fetchurl, meson, ninja, wrapGAppsHook, pkgconfig, gettext, itstool, libvirt-glib
-, glib, gobject-introspection, libxml2, gtk3, gtk-vnc, freerdp, libvirt, spice-gtk, python3
-, spice-protocol, libsoup, libosinfo, systemd, tracker, tracker-miners, vala
-, libcap, yajl, gmp, gdbm, cyrus_sasl, gnome3, librsvg, desktop-file-utils
-, mtools, cdrkit, libcdio, libusb, libarchive, acl, libgudev, libsecret
-, libcap_ng, numactl, xen, libapparmor, json-glib, webkitgtk, vte
+{ stdenv
+, fetchurl
+, meson
+, ninja
+, wrapGAppsHook
+, pkgconfig
+, gettext
+, itstool
+, libvirt-glib
+, glib
+, gobject-introspection
+, libxml2
+, gtk3
+, gtk-vnc
+, freerdp
+, libvirt
+, spice-gtk
+, python3
+, spice-protocol
+, libsoup
+, libosinfo
+, systemd
+, tracker
+, tracker-miners
+, vala
+, libcap
+, yajl
+, gmp
+, gdbm
+, cyrus_sasl
+, gnome3
+, librsvg
+, desktop-file-utils
+, mtools
+, cdrkit
+, libcdio
+, libusb
+, libarchive
+, acl
+, libgudev
+, libsecret
+, libcap_ng
+, numactl
+, xen
+, libapparmor
+, json-glib
+, webkitgtk
+, vte
+, glib-networking
}:
-# TODO: ovirt (optional)
-
-let
- version = "3.32.1";
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
pname = "gnome-boxes";
- inherit version;
+ version = "3.34.1";
src = fetchurl {
url = "mirror://gnome/sources/gnome-boxes/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "159sxii3g4s5pjb4s4i3kc4q162w5vicp4g6wvk1y2yv68bgmcl4";
+ sha256 = "1758k5b79kyywdg67b4byqhva9045i13lzg5r62my950c4c2p0pc";
};
doCheck = true;
nativeBuildInputs = [
- meson ninja vala pkgconfig gettext itstool wrapGAppsHook gobject-introspection desktop-file-utils python3
+ desktop-file-utils
+ gettext
+ gobject-introspection
+ itstool
+ meson
+ ninja
+ pkgconfig
+ python3
+ vala
+ wrapGAppsHook
];
# Required for USB redirection PolicyKit rules file
- propagatedUserEnvPkgs = [ spice-gtk ];
+ propagatedUserEnvPkgs = [
+ spice-gtk
+ ];
buildInputs = [
- libvirt-glib glib gtk3 gtk-vnc freerdp libxml2
- libvirt spice-gtk spice-protocol libsoup json-glib webkitgtk libosinfo systemd
- tracker tracker-miners libcap yajl gmp gdbm cyrus_sasl libusb libarchive
- gnome3.adwaita-icon-theme librsvg acl libgudev libsecret
- libcap_ng numactl xen libapparmor vte
+ acl
+ cyrus_sasl
+ freerdp
+ gdbm
+ glib
+ glib-networking
+ gmp
+ gnome3.adwaita-icon-theme
+ gtk-vnc
+ gtk3
+ json-glib
+ libapparmor
+ libarchive
+ libcap
+ libcap_ng
+ libgudev
+ libosinfo
+ librsvg
+ libsecret
+ libsoup
+ libusb
+ libvirt
+ libvirt-glib
+ libxml2
+ numactl
+ spice-gtk
+ spice-protocol
+ systemd
+ tracker
+ tracker-miners
+ vte
+ webkitgtk
+ xen
+ yajl
];
preFixup = ''
gappsWrapperArgs+=(--prefix PATH : "${stdenv.lib.makeBinPath [ mtools cdrkit libcdio ]}")
'';
- mesonFlags = [
- "-Dovirt=false"
- ];
-
postPatch = ''
chmod +x build-aux/post_install.py # patchShebangs requires executable file
patchShebangs build-aux/post_install.py
@@ -51,8 +126,8 @@ in stdenv.mkDerivation rec {
passthru = {
updateScript = gnome3.updateScript {
- packageName = "gnome-boxes";
- attrPath = "gnome3.gnome-boxes";
+ packageName = pname;
+ attrPath = "gnome3.${pname}";
};
};
@@ -61,6 +136,6 @@ in stdenv.mkDerivation rec {
homepage = https://wiki.gnome.org/Apps/Boxes;
license = licenses.gpl3;
platforms = platforms.linux;
- maintainers = with maintainers; [ bjornfor ];
+ maintainers = gnome3.maintainers;
};
}
diff --git a/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix b/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
index 03619f38c9b..b00045cf9e9 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
@@ -4,13 +4,13 @@
let
pname = "gnome-calendar";
- version = "3.32.2";
+ version = "3.34.2";
in stdenv.mkDerivation rec {
name = "${pname}-${version}";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
- sha256 = "07p73cvzj8idr80npja5yiv9pjfyi6qqfhaz5jwcgqspqbnhnl7k";
+ sha256 = "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw";
};
passthru = {
diff --git a/pkgs/desktops/gnome-3/apps/gnome-characters/default.nix b/pkgs/desktops/gnome-3/apps/gnome-characters/default.nix
index ac1e9ee85c0..9e44573d2e3 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-characters/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-characters/default.nix
@@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
sed -e $"2iimports.package._findEffectiveEntryPointName = () => \'$(basename $file)\' " \
-i $file
- wrapProgram $file "''${gappsWrapperArgs[@]}"
+ wrapGApp "$file"
done
'';
diff --git a/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix b/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix
index 38182f1f994..a99e775b26b 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix
@@ -6,11 +6,11 @@
stdenv.mkDerivation rec {
pname = "gnome-clocks";
- version = "3.32.0";
+ version = "3.34.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-clocks/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "1w6lgjdak3x76c9gyhd1lqrdmjfh8q77sjnrkcimylsg0jq913bc";
+ sha256 = "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1";
};
passthru = {
diff --git a/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix b/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix
index 1301381e5aa..5aa39e09cd6 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix
@@ -1,36 +1,86 @@
-{ stdenv, meson, ninja, gettext, fetchurl, evince, gjs
-, pkgconfig, gtk3, glib, tracker, tracker-miners
-, itstool, libxslt, webkitgtk, libgdata
-, gnome-desktop, libzapojit, libgepub
-, gnome3, gdk-pixbuf, libsoup, docbook_xsl, docbook_xml_dtd_42
-, gobject-introspection, inkscape, poppler_utils
-, desktop-file-utils, wrapGAppsHook, python3, gsettings-desktop-schemas }:
+{ stdenv
+, meson
+, ninja
+, gettext
+, fetchurl
+, evince
+, gjs
+, pkgconfig
+, gtk3
+, glib
+, tracker
+, tracker-miners
+, itstool
+, libxslt
+, webkitgtk
+, libgdata
+, gnome-desktop
+, libzapojit
+, libgepub
+, gnome3
+, gdk-pixbuf
+, libsoup
+, docbook_xsl
+, docbook_xml_dtd_42
+, gobject-introspection
+, inkscape
+, poppler_utils
+, desktop-file-utils
+, wrapGAppsHook
+, python3
+, gsettings-desktop-schemas
+}:
stdenv.mkDerivation rec {
pname = "gnome-documents";
- version = "3.32.0";
+ version = "3.34.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-documents/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "1gqddzbr4d8s0asmrhy0sfmwggzhbmpm61mqf8rxpdjk7s26086c";
+ sha256 = "1qph567mapg3s1a26k7b8y57g9bklhj2mh8xm758z9zkms20xafq";
};
+ nativeBuildInputs = [
+ meson
+ ninja
+ pkgconfig
+ gettext
+ itstool
+ libxslt
+ desktop-file-utils
+ docbook_xsl
+ docbook_xml_dtd_42
+ wrapGAppsHook
+ python3
+
+ # building getting started
+ inkscape
+ poppler_utils
+ ];
+
+ buildInputs = [
+ gtk3
+ glib
+ gsettings-desktop-schemas
+ gdk-pixbuf
+ gnome3.adwaita-icon-theme
+ evince
+ libsoup
+ webkitgtk
+ gjs
+ gobject-introspection
+ tracker
+ tracker-miners
+ libgdata
+ gnome-desktop
+ libzapojit
+ libgepub
+ ];
+
doCheck = true;
mesonFlags = [
- "-Dgetting-started=true"
- ];
-
- nativeBuildInputs = [
- meson ninja pkgconfig gettext itstool libxslt desktop-file-utils docbook_xsl docbook_xml_dtd_42 wrapGAppsHook python3
- inkscape poppler_utils # building getting started
- ];
- buildInputs = [
- gtk3 glib gsettings-desktop-schemas
- gdk-pixbuf gnome3.adwaita-icon-theme evince
- libsoup webkitgtk gjs gobject-introspection
- tracker tracker-miners libgdata
- gnome-desktop libzapojit libgepub
+ "-Dgetting_started=true"
];
postPatch = ''
@@ -44,13 +94,13 @@ stdenv.mkDerivation rec {
passthru = {
updateScript = gnome3.updateScript {
- packageName = "gnome-documents";
- attrPath = "gnome3.gnome-documents";
+ packageName = pname;
+ attrPath = "gnome3.${pname}";
};
};
meta = with stdenv.lib; {
- homepage = https://wiki.gnome.org/Apps/Documents;
+ homepage = "https://wiki.gnome.org/Apps/Documents";
description = "Document manager application designed to work with GNOME 3";
maintainers = gnome3.maintainers;
license = licenses.gpl2;
diff --git a/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix b/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix
index 655e9e9fe34..f5261011d11 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "gnome-getting-started-docs";
- version = "3.32.2";
+ version = "3.34.1";
src = fetchurl {
url = "mirror://gnome/sources/gnome-getting-started-docs/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq";
+ sha256 = "00in6yc02pdalyx8g0fncmch0l7nr819587ngjm83ara9qa8z6fa";
};
passthru = {
diff --git a/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix b/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix
index 8681a3c866c..c80238740e5 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix
@@ -1,23 +1,22 @@
-{ stdenv, fetchurl, meson, ninja, pkgconfig, gnome3, glib, gtk3, wrapGAppsHook, desktop-file-utils
+{ stdenv, fetchurl, meson, ninja, pkgconfig, gnome3, glib, gtk3, wrapGAppsHook
, gettext, itstool, libxml2, libxslt, docbook_xsl, docbook_xml_dtd_43, systemd, python3, gsettings-desktop-schemas }:
stdenv.mkDerivation rec {
pname = "gnome-logs";
- version = "3.32.1";
+ version = "3.34.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-logs/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0hh3nnbq7q2xbflvaywanm0j3dqhb04ngphskhnjx2sg7px12068";
+ sha256 = "16jfwg912asirrdmipf6wh7zr5zrww3nyhf99mi230y8hmqazx0m";
};
mesonFlags = [
- "-Dtests=true"
"-Dman=true"
];
nativeBuildInputs = [
python3
- meson ninja pkgconfig wrapGAppsHook gettext itstool desktop-file-utils
+ meson ninja pkgconfig wrapGAppsHook gettext itstool
libxml2 libxslt docbook_xsl docbook_xml_dtd_43
];
buildInputs = [ glib gtk3 systemd gsettings-desktop-schemas gnome3.adwaita-icon-theme ];
diff --git a/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix b/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix
index 6011092c0e0..49b44f5f283 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix
@@ -5,13 +5,13 @@
let
pname = "gnome-maps";
- version = "3.32.2.1";
+ version = "3.34.1";
in stdenv.mkDerivation rec {
name = "${pname}-${version}";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
- sha256 = "1m191iq1gjaqz79ci3dkbmwrkxp7pzknngimlf5bqib5x8yairlb";
+ sha256 = "03nswj60lqznr2j3ld2lgjzr4j9x2gblqx2ip4l2yxnm9kgbm14s";
};
doCheck = true;
diff --git a/pkgs/desktops/gnome-3/apps/gnome-music/default.nix b/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
index 9b8c96729ad..8ac7ad7f2d2 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
@@ -1,29 +1,85 @@
-{ stdenv, meson, ninja, gettext, fetchurl, gdk-pixbuf, tracker
-, libxml2, python3, libnotify, wrapGAppsHook, libmediaart
-, gobject-introspection, gnome-online-accounts, grilo, grilo-plugins
-, pkgconfig, gtk3, glib, desktop-file-utils, appstream-glib
-, itstool, gnome3, gst_all_1, libdazzle, libsoup, gsettings-desktop-schemas }:
+{ stdenv
+, meson
+, ninja
+, gettext
+, fetchurl
+, gdk-pixbuf
+, tracker
+, libxml2
+, python3
+, libnotify
+, wrapGAppsHook
+, libmediaart
+, gobject-introspection
+, gnome-online-accounts
+, grilo
+, grilo-plugins
+, pkgconfig
+, gtk3
+, glib
+, desktop-file-utils
+, appstream-glib
+, itstool
+, gnome3
+, gst_all_1
+, libdazzle
+, libsoup
+, gsettings-desktop-schemas
+}:
python3.pkgs.buildPythonApplication rec {
pname = "gnome-music";
- version = "3.32.2";
+ version = "3.34.1";
format = "other";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0cn7l1d3ayima1w3bxpshijabd7ibhnvqxv2mpvffzizk04ln6hk";
+ sha256 = "128griji0ficf9agnlhfqh9wf819zdfcz5bbrr12nkxnhksnqv99";
};
- nativeBuildInputs = [ meson ninja gettext itstool pkgconfig libxml2 wrapGAppsHook desktop-file-utils appstream-glib gobject-introspection ];
- buildInputs = with gst_all_1; [
- gtk3 glib libmediaart gnome-online-accounts gobject-introspection
- gdk-pixbuf gnome3.adwaita-icon-theme python3
- grilo grilo-plugins libnotify libdazzle libsoup
- gsettings-desktop-schemas tracker
- gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly
+ nativeBuildInputs = [
+ meson
+ ninja
+ gettext
+ itstool
+ pkgconfig
+ libxml2
+ wrapGAppsHook
+ desktop-file-utils
+ appstream-glib
+ gobject-introspection
+ ];
+
+ buildInputs = [
+ gtk3
+ glib
+ libmediaart
+ gnome-online-accounts
+ gobject-introspection
+ gdk-pixbuf
+ gnome3.adwaita-icon-theme
+ python3
+ grilo
+ grilo-plugins
+ libnotify
+ libdazzle
+ libsoup
+ gsettings-desktop-schemas
+ tracker
+ ] ++ (with gst_all_1; [
+ gstreamer
+ gst-plugins-base
+ gst-plugins-good
+ gst-plugins-bad
+ gst-plugins-ugly
+ ]);
+
+ propagatedBuildInputs = with python3.pkgs; [
+ pycairo
+ dbus-python
+ pygobject3
];
- propagatedBuildInputs = with python3.pkgs; [ pycairo dbus-python pygobject3 ];
postPatch = ''
@@ -43,10 +99,10 @@ python3.pkgs.buildPythonApplication rec {
};
meta = with stdenv.lib; {
- homepage = https://wiki.gnome.org/Apps/Music;
+ homepage = "https://wiki.gnome.org/Apps/Music";
description = "Music player and management application for the GNOME desktop environment";
maintainers = gnome3.maintainers;
- license = licenses.gpl2;
+ license = licenses.gpl2Plus;
platforms = platforms.linux;
};
}
diff --git a/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix b/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix
index 920343a6024..434a72341f6 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix
@@ -5,14 +5,14 @@
, gnome3, libxml2, gsettings-desktop-schemas, tracker }:
let
- version = "3.32.2";
+ version = "3.34.1";
in stdenv.mkDerivation {
pname = "gnome-notes";
inherit version;
src = fetchurl {
url = "mirror://gnome/sources/bijiben/${stdenv.lib.versions.majorMinor version}/bijiben-${version}.tar.xz";
- sha256 = "0chm2fks7cpx3mycxzddpj6v9by203c3m1y6zns5ra43bspwafy2";
+ sha256 = "0yf2scjnn2qi40g4iqg11qc4bnspd3qcnvg5b11ign5fa3qcihzv";
};
doCheck = true;
diff --git a/pkgs/desktops/gnome-3/apps/gnome-sound-recorder/default.nix b/pkgs/desktops/gnome-3/apps/gnome-sound-recorder/default.nix
index 907c0424454..3996a2e7564 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-sound-recorder/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-sound-recorder/default.nix
@@ -1,18 +1,18 @@
{ stdenv, fetchurl, pkgconfig, gettext, gobject-introspection, wrapGAppsHook, gjs, glib, gtk3, gdk-pixbuf, gst_all_1, gnome3
-, meson, ninja, python3, hicolor-icon-theme, desktop-file-utils }:
+, meson, ninja, python3, desktop-file-utils }:
stdenv.mkDerivation rec {
pname = "gnome-sound-recorder";
- version = "3.32.1";
+ version = "3.34.0";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0q83b6dabckmwj8mcw0wvhbxaszwdzzcf8ajx5bldll3lyl5yh2b";
+ sha256 = "1i442qas2dkp5d9j9j1z1jicb4cb7jkgbcl4c36bmhvaq3hddwa9";
};
nativeBuildInputs = [
pkgconfig gettext meson ninja gobject-introspection
- wrapGAppsHook python3 hicolor-icon-theme desktop-file-utils
+ wrapGAppsHook python3 desktop-file-utils
];
buildInputs = [ gjs glib gtk3 gdk-pixbuf ] ++ (with gst_all_1; [ gstreamer.dev gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad ]);
diff --git a/pkgs/desktops/gnome-3/apps/gnome-todo/default.nix b/pkgs/desktops/gnome-3/apps/gnome-todo/default.nix
index dbbbb43659b..f5c4eedc48d 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-todo/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-todo/default.nix
@@ -31,10 +31,11 @@ stdenv.mkDerivation rec {
};
patches = [
- # fix build with e-d-s 3.32
+ # fix build with libecal 2.0
(fetchpatch {
- url = https://gitlab.gnome.org/GNOME/gnome-todo/commit/6cdabc4dd0c6c804a093b94c269461ce376fed4f.patch;
- sha256 = "08ldgyxv9216dgr8y9asqd7j2y82y9yqnqhkqaxc9i8a67yz1gzy";
+ name = "gnome-todo-eds-libecal-2.0.patch";
+ url = "https://src.fedoraproject.org/rpms/gnome-todo/raw/bed44b8530f3c79589982e03b430b3a125e9bceb/f/gnome-todo-eds-libecal-2.0.patch";
+ sha256 = "1ghrz973skal36j90wm2z13m3panw983r6y0k7z9gpj5lxgz92mq";
})
];
postPatch = ''
diff --git a/pkgs/desktops/gnome-3/apps/gnome-weather/default.nix b/pkgs/desktops/gnome-3/apps/gnome-weather/default.nix
index 1e5a641f08f..c71baa146d1 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-weather/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-weather/default.nix
@@ -3,11 +3,11 @@
stdenv.mkDerivation rec {
pname = "gnome-weather";
- version = "3.32.2";
+ version = "3.34.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-weather/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0jfxdfbjkrk3x48w6nxgbmazd6jw1fh4mfw12hlly4rs0cjw698s";
+ sha256 = "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4";
};
nativeBuildInputs = [ pkgconfig meson ninja wrapGAppsHook python3 ];
diff --git a/pkgs/desktops/gnome-3/apps/nautilus-sendto/default.nix b/pkgs/desktops/gnome-3/apps/nautilus-sendto/default.nix
deleted file mode 100644
index 7ac8b4dfe11..00000000000
--- a/pkgs/desktops/gnome-3/apps/nautilus-sendto/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ stdenv, fetchurl, meson, ninja, glib, pkgconfig, gnome3, appstream-glib, gettext }:
-
-let
- pname = "nautilus-sendto";
- version = "3.8.6";
-in stdenv.mkDerivation rec {
- name = "${pname}-${version}";
-
-
- src = fetchurl {
- url = "mirror://gnome/sources/${pname}/3.8/${name}.tar.xz";
- sha256 = "164d7c6e8bae29c4579bcc67a7bf50d783662b1545b62f3008e7ea3c0410e04d";
- };
-
- nativeBuildInputs = [ meson ninja pkgconfig appstream-glib gettext ];
- buildInputs = [ glib ];
-
- passthru = {
- updateScript = gnome3.updateScript {
- packageName = pname;
- attrPath = "gnome3.${pname}";
- };
- };
-
- meta = with stdenv.lib; {
- description = "Integrates Evolution and Pidgin into the Nautilus file manager";
- maintainers = gnome3.maintainers;
- license = licenses.gpl2;
- platforms = platforms.linux;
- };
-}
diff --git a/pkgs/desktops/gnome-3/apps/polari/default.nix b/pkgs/desktops/gnome-3/apps/polari/default.nix
index 51fea63b714..0202821f7d5 100644
--- a/pkgs/desktops/gnome-3/apps/polari/default.nix
+++ b/pkgs/desktops/gnome-3/apps/polari/default.nix
@@ -5,13 +5,13 @@
let
pname = "polari";
- version = "3.32.2";
+ version = "3.34.0";
in stdenv.mkDerivation rec {
name = "${pname}-${version}";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
- sha256 = "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp";
+ sha256 = "09g2ylx2fwm55h28w0c03fxkdvlwmr2yc033m93c4acz1h30rjns";
};
propagatedUserEnvPkgs = [ telepathy-idle telepathy-logger ];
diff --git a/pkgs/desktops/gnome-3/apps/seahorse/default.nix b/pkgs/desktops/gnome-3/apps/seahorse/default.nix
index a1bcb406eb3..c6d5b22f934 100644
--- a/pkgs/desktops/gnome-3/apps/seahorse/default.nix
+++ b/pkgs/desktops/gnome-3/apps/seahorse/default.nix
@@ -1,30 +1,65 @@
-{ stdenv, fetchurl, vala, meson, ninja, libpwquality
-, pkgconfig, gtk3, glib, gobject-introspection
-, wrapGAppsHook, itstool, gnupg, libsoup
-, gnome3, gpgme, python3, openldap, gcr
-, libsecret, avahi, p11-kit, openssh, gsettings-desktop-schemas }:
+{ stdenv
+, fetchurl
+, fetchpatch
+, vala
+, meson
+, ninja
+, libpwquality
+, pkgconfig
+, gtk3
+, glib
+, wrapGAppsHook
+, itstool
+, gnupg
+, libsoup
+, gnome3
+, gpgme
+, python3
+, openldap
+, gcr
+, libsecret
+, avahi
+, p11-kit
+, openssh
+, gsettings-desktop-schemas
+}:
stdenv.mkDerivation rec {
pname = "seahorse";
- version = "3.32.2";
+ version = "3.34";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0d8zdzmlz7fjv9xl20zl4ckidf465mvdjnbpxy3k08y9iw423q4x";
+ sha256 = "16sfnqrdlr5xx6kixx2ln1mva7nngjlw1k3f5n454vyaigffjh2v";
};
doCheck = true;
nativeBuildInputs = [
- meson ninja pkgconfig vala itstool wrapGAppsHook
- python3 gobject-introspection
+ meson
+ ninja
+ pkgconfig
+ vala
+ itstool
+ wrapGAppsHook
+ python3
];
+
buildInputs = [
- gtk3 glib gcr
- gsettings-desktop-schemas gnupg
- gnome3.adwaita-icon-theme gpgme
- libsecret avahi libsoup p11-kit
- openssh openldap libpwquality
+ gtk3
+ glib
+ gcr
+ gsettings-desktop-schemas
+ gnupg
+ gnome3.adwaita-icon-theme
+ gpgme
+ libsecret
+ avahi
+ libsoup
+ p11-kit
+ openssh
+ openldap
+ libpwquality
];
postPatch = ''
diff --git a/pkgs/desktops/gnome-3/core/adwaita-icon-theme/default.nix b/pkgs/desktops/gnome-3/core/adwaita-icon-theme/default.nix
index a7f4a637b17..d2f161f23b4 100644
--- a/pkgs/desktops/gnome-3/core/adwaita-icon-theme/default.nix
+++ b/pkgs/desktops/gnome-3/core/adwaita-icon-theme/default.nix
@@ -3,11 +3,11 @@
stdenv.mkDerivation rec {
pname = "adwaita-icon-theme";
- version = "3.32.0";
+ version = "3.34.0";
src = fetchurl {
url = "mirror://gnome/sources/adwaita-icon-theme/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "11ij35na8nisvxx3qh527iz33h6z2q1a7iinqyp7p65v0zjbd3b9";
+ sha256 = "0zvwikj3a07i3g3rir4cc63b14822lrzzgprs1j2nmb3h8gykds0";
};
# For convenience, we can specify adwaita-icon-theme only in packages
diff --git a/pkgs/desktops/gnome-3/core/baobab/default.nix b/pkgs/desktops/gnome-3/core/baobab/default.nix
index 4734a0e96b8..5817d8ff942 100644
--- a/pkgs/desktops/gnome-3/core/baobab/default.nix
+++ b/pkgs/desktops/gnome-3/core/baobab/default.nix
@@ -4,13 +4,13 @@
let
pname = "baobab";
- version = "3.32.0";
+ version = "3.34.0";
in stdenv.mkDerivation rec {
name = "${pname}-${version}";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
- sha256 = "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r";
+ sha256 = "01w6m5ylyqs4wslpjn1hg6n6ynwh3rghksak0qs8r9m6dm3dkss6";
};
nativeBuildInputs = [ meson ninja pkgconfig vala gettext itstool libxml2 desktop-file-utils wrapGAppsHook ];
diff --git a/pkgs/desktops/gnome-3/core/dconf-editor/default.nix b/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
index 7f4f84fa5fe..c7a126034f2 100644
--- a/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
+++ b/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
@@ -1,21 +1,20 @@
{ stdenv, fetchurl, meson, ninja, vala, libxslt, pkgconfig, glib, gtk3, gnome3, python3
-, libxml2, gettext, docbook_xsl, hicolor-icon-theme, wrapGAppsHook, gobject-introspection }:
+, libxml2, gettext, docbook_xsl, wrapGAppsHook, gobject-introspection }:
let
pname = "dconf-editor";
- version = "3.32.0";
+ version = "3.34.2";
in stdenv.mkDerivation rec {
name = "${pname}-${version}";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
- sha256 = "1fmsmlh16njjm948grz20mzrsvb4wjj7pl1fvkrkxqi7mhr177gi";
+ sha256 = "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f";
};
nativeBuildInputs = [
meson ninja vala libxslt pkgconfig wrapGAppsHook
gettext docbook_xsl libxml2 gobject-introspection python3
- hicolor-icon-theme # for setup-hook
];
buildInputs = [ glib gtk3 gnome3.dconf ];
diff --git a/pkgs/desktops/gnome-3/core/dconf/default.nix b/pkgs/desktops/gnome-3/core/dconf/default.nix
index 43f8dd08dbf..7ce498da9f3 100644
--- a/pkgs/desktops/gnome-3/core/dconf/default.nix
+++ b/pkgs/desktops/gnome-3/core/dconf/default.nix
@@ -6,20 +6,14 @@ let
in
stdenv.mkDerivation rec {
name = "${pname}-${version}";
- version = "0.32.0";
+ version = "0.34.0";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
- sha256 = "1azz4hb9z76yxn34yrrsiib3iqz5z4vpwn5q7cncp55w365ygg38";
+ sha256 = "0lnsl85cp2vpzgp8pkf6l6yd2i3lp02jdvga1icfa78j2smr8fll";
};
patches = [
- # Fix the build on Darwin
- # Issue: https://gitlab.gnome.org/GNOME/dconf/issues/47
- (fetchpatch {
- url = "https://gitlab.gnome.org/GNOME/dconf/commit/49f4d916e1151af3975df52c522c69de98ed2fbb.patch";
- sha256 = "00klkr1jzli9ap0aj6399m1bj2bxxz48pmcj4r16dsy6dfdl6325";
- })
];
postPatch = ''
diff --git a/pkgs/desktops/gnome-3/core/empathy/default.nix b/pkgs/desktops/gnome-3/core/empathy/default.nix
index 5e4bbf8cce1..06777252462 100644
--- a/pkgs/desktops/gnome-3/core/empathy/default.nix
+++ b/pkgs/desktops/gnome-3/core/empathy/default.nix
@@ -1,13 +1,54 @@
-{ stdenv, intltool, fetchurl, webkitgtk, pkgconfig, gtk3, glib
-, file, librsvg, gnome3, gdk-pixbuf, python3
-, telepathy-glib, telepathy-farstream, glibcLocales
-, clutter-gtk, clutter-gst, gst_all_1, cogl, gnome-online-accounts
-, gcr, libsecret, folks, libpulseaudio, telepathy-mission-control
-, telepathy-logger, libnotify, clutter, libsoup, gnutls
-, evolution-data-server, yelp-xsl
-, libcanberra-gtk3, p11-kit, farstream, libtool, shared-mime-info
-, wrapGAppsHook, itstool, libxml2, libxslt, icu, libgee, gsettings-desktop-schemas
-, isocodes, enchant, libchamplain, geoclue2, geocode-glib, cheese, libgudev }:
+{ stdenv
+, intltool
+, fetchurl
+, webkitgtk
+, pkgconfig
+, gtk3
+, glib
+, file
+, librsvg
+, gnome3
+, gdk-pixbuf
+, python3
+, telepathy-glib
+, telepathy-farstream
+, clutter-gtk
+, clutter-gst
+, gst_all_1
+, cogl
+, gnome-online-accounts
+, gcr
+, libsecret
+, folks
+, libpulseaudio
+, telepathy-mission-control
+, telepathy-logger
+, libnotify
+, clutter
+, libsoup
+, gnutls
+, evolution-data-server
+, yelp-xsl
+, libcanberra-gtk3
+, p11-kit
+, farstream
+, libtool
+, shared-mime-info
+, wrapGAppsHook
+, itstool
+, libxml2
+, libxslt
+, icu
+, libgee
+, gsettings-desktop-schemas
+, isocodes
+, enchant
+, libchamplain
+, geoclue2
+, geocode-glib
+, cheese
+, libgudev
+}:
stdenv.mkDerivation rec {
pname = "empathy";
@@ -18,34 +59,76 @@ stdenv.mkDerivation rec {
sha256 = "0sn10fcymc6lyrabk7vx8lpvlaxxkqnmcwj9zdkfa8qf3388k4nc";
};
- propagatedUserEnvPkgs = [
- gnome-online-accounts shared-mime-info
- ];
propagatedBuildInputs = [
- folks telepathy-logger evolution-data-server telepathy-mission-control
- ];
- nativeBuildInputs = [
- pkgconfig libtool intltool itstool file wrapGAppsHook
- libxml2 libxslt yelp-xsl python3 glibcLocales
- ];
- buildInputs = [
- gtk3 glib webkitgtk icu gnome-online-accounts
- telepathy-glib clutter-gtk clutter-gst cogl
- gst_all_1.gstreamer gst_all_1.gst-plugins-base
- gcr libsecret libpulseaudio gdk-pixbuf
- libnotify clutter libsoup gnutls libgee p11-kit
- libcanberra-gtk3 telepathy-farstream farstream
- gnome3.adwaita-icon-theme gsettings-desktop-schemas
- librsvg
- # Spell-checking
- enchant isocodes
- # Display maps, location awareness, geocode support
- libchamplain geoclue2 geocode-glib
- # Cheese webcam support, camera monitoring
- cheese libgudev
+ folks
+ telepathy-logger
+ evolution-data-server
+ telepathy-mission-control
];
- LC_ALL = "en_US.UTF-8";
+ nativeBuildInputs = [
+ pkgconfig
+ libtool
+ intltool
+ itstool
+ file
+ wrapGAppsHook
+ libxml2
+ libxslt
+ yelp-xsl
+ python3
+ ];
+
+ buildInputs = [
+ gtk3
+ glib
+ webkitgtk
+ icu
+ gnome-online-accounts
+ telepathy-glib
+ clutter-gtk
+ clutter-gst
+ cogl
+ gst_all_1.gstreamer
+ gst_all_1.gst-plugins-base
+ gcr
+ libsecret
+ libpulseaudio
+ gdk-pixbuf
+ libnotify
+ clutter
+ libsoup
+ gnutls
+ libgee
+ p11-kit
+ libcanberra-gtk3
+ telepathy-farstream
+ farstream
+ gnome3.adwaita-icon-theme
+ gsettings-desktop-schemas
+ librsvg
+
+ # Spell-checking
+ enchant
+ isocodes
+
+ # Display maps, location awareness, geocode support
+ libchamplain
+ geoclue2
+ geocode-glib
+
+ # Cheese webcam support, camera monitoring
+ cheese
+ libgudev
+ ];
+
+ enableParallelBuilding = true;
+
+ preFixup = ''
+ gappsWrapperArgs+=(
+ --prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
+ )
+ '';
passthru = {
updateScript = gnome3.updateScript {
diff --git a/pkgs/desktops/gnome-3/core/eog/default.nix b/pkgs/desktops/gnome-3/core/eog/default.nix
index 8bb727a6fc5..e8f4663ad30 100644
--- a/pkgs/desktops/gnome-3/core/eog/default.nix
+++ b/pkgs/desktops/gnome-3/core/eog/default.nix
@@ -4,13 +4,13 @@
let
pname = "eog";
- version = "3.32.2";
+ version = "3.34.1";
in stdenv.mkDerivation rec {
name = "${pname}-${version}";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
- sha256 = "1bcxpqgzlk2cy4wfb3b5h66mhpj2fhrk1rrb5qqcv5xrr62ik5xy";
+ sha256 = "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x";
};
nativeBuildInputs = [ meson ninja pkgconfig gettext itstool wrapGAppsHook libxml2 gobject-introspection python3 ];
diff --git a/pkgs/desktops/gnome-3/core/epiphany/default.nix b/pkgs/desktops/gnome-3/core/epiphany/default.nix
index 85f31bfdce5..bfcf01591e5 100644
--- a/pkgs/desktops/gnome-3/core/epiphany/default.nix
+++ b/pkgs/desktops/gnome-3/core/epiphany/default.nix
@@ -1,32 +1,90 @@
-{ stdenv, meson, ninja, gettext, fetchurl, pkgconfig, gtk3, glib, icu
-, wrapGAppsHook, gnome3, libxml2, libxslt, itstool
-, webkitgtk, libsoup, glib-networking, libsecret, gnome-desktop, libnotify, p11-kit
-, sqlite, gcr, isocodes, desktop-file-utils, python3
-, gdk-pixbuf, gst_all_1, json-glib, libdazzle, libhandy }:
+{ stdenv
+, meson
+, ninja
+, gettext
+, fetchurl
+, pkgconfig
+, gtk3
+, glib
+, icu
+, wrapGAppsHook
+, gnome3
+, libxml2
+, libxslt
+, itstool
+, webkitgtk
+, libsoup
+, glib-networking
+, libsecret
+, gnome-desktop
+, libnotify
+, p11-kit
+, sqlite
+, gcr
+, isocodes
+, desktop-file-utils
+, python3
+, nettle
+, gdk-pixbuf
+, gst_all_1
+, json-glib
+, libdazzle
+, libhandy
+}:
stdenv.mkDerivation rec {
pname = "epiphany";
- version = "3.32.4";
+ version = "3.34.1";
src = fetchurl {
url = "mirror://gnome/sources/epiphany/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "15d9s295yr6m9pbwh344c4akm7rgn19y4g1xkyn7gbq1hdbjia69";
+ sha256 = "1nf1pqv3pdgrlq7fbic06rl3731dx5ihpfsphpai9grcmnbwjyx0";
};
# Tests need an X display
- mesonFlags = [ "-Dunit_tests=disabled" ];
+ mesonFlags = [
+ "-Dunit_tests=disabled"
+ ];
nativeBuildInputs = [
- meson ninja libxslt pkgconfig itstool gettext wrapGAppsHook desktop-file-utils python3
+ desktop-file-utils
+ gettext
+ itstool
+ libxslt
+ meson
+ ninja
+ pkgconfig
+ python3
+ wrapGAppsHook
];
buildInputs = [
- gtk3 glib webkitgtk libsoup libxml2 libsecret gnome-desktop libnotify
- sqlite isocodes p11-kit icu libhandy
- gdk-pixbuf gnome3.adwaita-icon-theme gcr
- glib-networking gst_all_1.gstreamer gst_all_1.gst-plugins-base
- gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad gst_all_1.gst-plugins-ugly
- gst_all_1.gst-libav json-glib libdazzle
+ gcr
+ gdk-pixbuf
+ glib
+ glib-networking
+ gnome-desktop
+ gnome3.adwaita-icon-theme
+ gst_all_1.gst-libav
+ gst_all_1.gst-plugins-bad
+ gst_all_1.gst-plugins-base
+ gst_all_1.gst-plugins-good
+ gst_all_1.gst-plugins-ugly
+ gst_all_1.gstreamer
+ gtk3
+ icu
+ isocodes
+ json-glib
+ libdazzle
+ libhandy
+ libnotify
+ libsecret
+ libsoup
+ libxml2
+ nettle
+ p11-kit
+ sqlite
+ webkitgtk
];
postPatch = ''
@@ -36,7 +94,7 @@ stdenv.mkDerivation rec {
passthru = {
updateScript = gnome3.updateScript {
- packageName = "epiphany";
+ packageName = pname;
};
};
diff --git a/pkgs/desktops/gnome-3/core/evince/default.nix b/pkgs/desktops/gnome-3/core/evince/default.nix
index 9313ca8990c..61f27f10ae1 100644
--- a/pkgs/desktops/gnome-3/core/evince/default.nix
+++ b/pkgs/desktops/gnome-3/core/evince/default.nix
@@ -1,6 +1,5 @@
-{ fetchFromGitLab
-, stdenv
-, fetchpatch
+{ stdenv
+, fetchurl
, meson
, ninja
, pkgconfig
@@ -34,6 +33,9 @@
, texlive
, t1lib
, gst_all_1
+, gtk-doc
+, docbook-xsl-nons
+, docbook_xml_dtd_43
, supportMultimedia ? true # PDF multimedia
, libgxps
, supportXPS ? true # Open XML Paper Specification via libgxps
@@ -41,64 +43,57 @@
stdenv.mkDerivation rec {
pname = "evince";
- version = "3.32.0";
+ version = "3.34.1";
- src = fetchFromGitLab {
- domain = "gitlab.gnome.org";
- owner = "GNOME";
- repo = pname;
- rev = version;
- sha256 = "1klq8j70q8r8hyqv1wi6jcx8g76yh46bh8614y82zzggn4cx6y3r";
+ outputs = [ "out" "dev" "devdoc" ];
+
+ src = fetchurl {
+ url = "mirror://gnome/sources/evince/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "1pr6fvbaam1mzxjwyqd53hcxzdjzf73idn10j4j7n54nwg6hgr45";
};
-
- patches = [
- (fetchpatch {
- name = "CVE-2019-11459.patch";
- url = "https://gitlab.gnome.org/GNOME/evince/commit/3e38d5ad724a042eebadcba8c2d57b0f48b7a8c7.patch";
- sha256 = "1ds6iwr2r9i86nwrly8cx7p1kbvf1gljjplcffa67znxqmwx4n74";
- })
- ];
-
postPatch = ''
chmod +x meson_post_install.py
patchShebangs meson_post_install.py
'';
nativeBuildInputs = [
+ appstream
+ docbook-xsl-nons
+ docbook_xml_dtd_43
+ gettext
+ gobject-introspection
+ gtk-doc
+ itstool
meson
ninja
pkgconfig
- gobject-introspection
- gettext
- itstool
- yelp-tools
- appstream
- wrapGAppsHook
python3
+ wrapGAppsHook
+ yelp-tools
];
buildInputs = [
- glib
- gtk3
- pango
- atk
- gdk-pixbuf
- libxml2
- gsettings-desktop-schemas
- poppler
- ghostscriptX
- djvulibre
- libspectre
- libarchive
- libsecret
- librsvg
adwaita-icon-theme
- gspell
- gnome-desktop
+ atk
dbus # only needed to find the service directory
- texlive.bin.core # kpathsea for DVI support
+ djvulibre
+ gdk-pixbuf
+ ghostscriptX
+ glib
+ gnome-desktop
+ gsettings-desktop-schemas
+ gspell
+ gtk3
+ libarchive
+ librsvg
+ libsecret
+ libspectre
+ libxml2
+ pango
+ poppler
t1lib
+ texlive.bin.core # kpathsea for DVI support
] ++ stdenv.lib.optional supportXPS libgxps
++ stdenv.lib.optionals supportMultimedia (with gst_all_1; [
gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav ]);
@@ -106,7 +101,6 @@ stdenv.mkDerivation rec {
mesonFlags = [
"-Dnautilus=false"
"-Dps=enabled"
- "-Dgtk_doc=false"
];
NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
diff --git a/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix b/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
index 0048b02581a..fa70ecea264 100644
--- a/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
+++ b/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
@@ -6,13 +6,13 @@
stdenv.mkDerivation rec {
pname = "evolution-data-server";
- version = "3.32.4";
+ version = "3.34.1";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "mirror://gnome/sources/evolution-data-server/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0zsc9xwy6ixk3x0dx69ax5isrdw8qxjdxg2i5fr95s40nss7rxl3";
+ sha256 = "1gisymfjhkibqy73pmd0d3fwl43a23d0lvlxzqkycfdn9jh6pxbg";
};
patches = [
diff --git a/pkgs/desktops/gnome-3/core/gdm/default.nix b/pkgs/desktops/gnome-3/core/gdm/default.nix
index a4d2fd2be5a..9d1602dfccd 100644
--- a/pkgs/desktops/gnome-3/core/gdm/default.nix
+++ b/pkgs/desktops/gnome-3/core/gdm/default.nix
@@ -1,15 +1,29 @@
{ stdenv, fetchurl, substituteAll, pkgconfig, glib, itstool, libxml2, xorg
, accountsservice, libX11, gnome3, systemd, autoreconfHook
, gtk3, libcanberra-gtk3, pam, libtool, gobject-introspection, plymouth
-, librsvg, coreutils, xwayland }:
+, librsvg, coreutils, xwayland, nixos-icons, fetchpatch }:
+
+let
+
+ icon = fetchurl {
+ url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/4f041870efa1a6f0799ef4b32bb7be2cafee7a74/logo/nixos.svg";
+ sha256 = "0b0dj408c1wxmzy6k0pjwc4bzwq286f1334s3cqqwdwjshxskshk";
+ };
+
+ override = substituteAll {
+ src = ./org.gnome.login-screen.gschema.override;
+ inherit icon;
+ };
+
+in
stdenv.mkDerivation rec {
pname = "gdm";
- version = "3.32.0";
+ version = "3.34.1";
src = fetchurl {
url = "mirror://gnome/sources/gdm/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "12ypdz9i24hwbl1d1wnnxb8zlvfa4f49n9ac5cl9d6h8qp4b0gb4";
+ sha256 = "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8";
};
# Only needed to make it build
@@ -17,12 +31,14 @@ stdenv.mkDerivation rec {
substituteInPlace ./configure --replace "/usr/bin/X" "${xorg.xorgserver.out}/bin/X"
'';
+ initialVT = "7";
+
configureFlags = [
"--sysconfdir=/etc"
"--localstatedir=/var"
"--with-plymouth=yes"
"--enable-gdm-xsession"
- "--with-initial-vt=7"
+ "--with-initial-vt=${initialVT}"
"--with-systemdsystemunitdir=$(out)/etc/systemd/system"
"--with-udevdir=$(out)/lib/udev"
];
@@ -65,6 +81,11 @@ stdenv.mkDerivation rec {
"dbusconfdir=$(out)/etc/dbus-1/system.d"
];
+ preInstall = ''
+ schema_dir=${glib.makeSchemaPath "$out" "${pname}-${version}"}
+ install -D ${override} $schema_dir/org.gnome.login-screen.gschema.override
+ '';
+
passthru = {
updateScript = gnome3.updateScript {
packageName = "gdm";
diff --git a/pkgs/desktops/gnome-3/core/gdm/org.gnome.login-screen.gschema.override b/pkgs/desktops/gnome-3/core/gdm/org.gnome.login-screen.gschema.override
new file mode 100644
index 00000000000..8c17f494b0f
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gdm/org.gnome.login-screen.gschema.override
@@ -0,0 +1,2 @@
+[org.gnome.login-screen]
+logo='@icon@'
diff --git a/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix b/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix
index e4c772cb1d4..4b91b3219be 100644
--- a/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "gnome-backgrounds";
- version = "3.32.0";
+ version = "3.34.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-backgrounds/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "1s5krdmd3md44p1fgr2lqm5ifxb8s1vzx6hm11sb4cgzr4dw6lrz";
+ sha256 = "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2";
};
passthru = {
diff --git a/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix b/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix
index 817c8324c6b..b52161f90ae 100644
--- a/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix
@@ -6,14 +6,14 @@ let
pname = "gnome-bluetooth";
in stdenv.mkDerivation rec {
name = "${pname}-${version}";
- version = "3.32.1";
+ version = "3.34.0";
# TODO: split out "lib"
outputs = [ "out" "dev" "devdoc" "man" ];
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
- sha256 = "1am1gf0nzwg6x1s8ly13j0xnjzgrfj06j0dp52x4zy9s67ywlhb4";
+ sha256 = "1bvbxcsjkyl0givy8nfm7112bq3c0vn1v89fdk2pip714dsfcrz8";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix b/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix
index df43371a497..cabe7c9ca74 100644
--- a/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix
@@ -1,14 +1,14 @@
{ stdenv, meson, ninja, vala, gettext, itstool, fetchurl, pkgconfig, libxml2
, gtk3, glib, gtksourceview4, wrapGAppsHook, gobject-introspection, python3
-, gnome3, mpfr, gmp, libsoup, libmpc, gsettings-desktop-schemas }:
+, gnome3, mpfr, gmp, libsoup, libmpc, gsettings-desktop-schemas, libgee }:
stdenv.mkDerivation rec {
pname = "gnome-calculator";
- version = "3.32.2";
+ version = "3.34.1";
src = fetchurl {
url = "mirror://gnome/sources/gnome-calculator/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0fgpn3sc226s9fpzhik5rkkrf669037gc659ga2kn9jsyckj6p41";
+ sha256 = "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd";
};
nativeBuildInputs = [
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
buildInputs = [
gtk3 glib libxml2 gtksourceview4 mpfr gmp
- gnome3.adwaita-icon-theme
+ gnome3.adwaita-icon-theme libgee
gsettings-desktop-schemas libsoup libmpc
];
diff --git a/pkgs/desktops/gnome-3/core/gnome-color-manager/default.nix b/pkgs/desktops/gnome-3/core/gnome-color-manager/default.nix
index bcc8871bcf1..200d038d0fb 100644
--- a/pkgs/desktops/gnome-3/core/gnome-color-manager/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-color-manager/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, meson, ninja, pkgconfig, gettext, itstool, desktop-file-utils, gnome3, glib, gtk3, libexif, libtiff, colord, colord-gtk, libcanberra-gtk3, lcms2, vte, exiv2, hicolor-icon-theme }:
+{ stdenv, fetchurl, meson, ninja, pkgconfig, gettext, itstool, desktop-file-utils, gnome3, glib, gtk3, libexif, libtiff, colord, colord-gtk, libcanberra-gtk3, lcms2, vte, exiv2 }:
let
pname = "gnome-color-manager";
@@ -13,8 +13,6 @@ in stdenv.mkDerivation rec {
nativeBuildInputs = [
meson ninja pkgconfig gettext itstool desktop-file-utils
- # setup-hook
- hicolor-icon-theme
];
buildInputs = [ glib gtk3 libexif libtiff colord colord-gtk libcanberra-gtk3 lcms2 vte exiv2 ];
diff --git a/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix b/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
index 75a15a41f97..01127853a86 100644
--- a/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
@@ -5,14 +5,14 @@
, vala, meson, ninja, libhandy, gsettings-desktop-schemas }:
let
- version = "3.32.1";
+ version = "3.34";
in stdenv.mkDerivation rec {
pname = "gnome-contacts";
inherit version;
src = fetchurl {
url = "mirror://gnome/sources/gnome-contacts/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "17g1gh8yj58cfpdx69h2szivlbjgvv982kmhnkkh0i5bwj0zs2yy";
+ sha256 = "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r";
};
propagatedUserEnvPkgs = [ evolution-data-server ];
@@ -33,15 +33,6 @@ in stdenv.mkDerivation rec {
];
patches = [
- # Fixes build with libhandy >= 0.0.10
- (fetchpatch {
- url = "https://gitlab.gnome.org/GNOME/gnome-contacts/commit/c5eee38cd2556403a640a0a4c11d36cbf9a5a798.patch";
- sha256 = "0s2cl7z6b0x3ky4y28yyxc9x5zp4r3vqmvbhz5m2fm6830fyjg13";
- })
- (fetchpatch {
- url = "https://gitlab.gnome.org/GNOME/gnome-contacts/commit/1f1500ca01098ffda6392f5ec9ce3a29a48a84b1.patch";
- sha256 = "082zaaj2l5cgr2qy145x8yknja87r0vpigrhidal40041kd5nldg";
- })
];
postPatch = ''
diff --git a/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix b/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
index 04730f2370f..f94725eb3a6 100644
--- a/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
@@ -67,11 +67,11 @@
stdenv.mkDerivation rec {
pname = "gnome-control-center";
- version = "3.32.2";
+ version = "3.34.1";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "03np0mhfl9kkdw4cb711pda0cli9zgh2bq2gqn2zwbdi3qnhk9gs";
+ sha256 = "0pji9r8b81w3dl08frzxknrmhlyrh8xkdicf4iic8dj1apayr0jz";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix b/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
index 9d798c2811b..6770f3df850 100644
--- a/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
@@ -4,13 +4,13 @@
stdenv.mkDerivation rec {
pname = "gnome-desktop";
- version = "3.32.2";
+ version = "3.34.1";
outputs = [ "out" "dev" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/gnome-desktop/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0bidx4626x7k2myv6f64qv4fzmxv8v475wibiz19kj8hjfr737q9";
+ sha256 = "0nnwc837k244gjsmx8wff5sfvm8xnhm8xr39qxk73lnscrbfpny1";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix b/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
index d6d9f927252..86739bb0f45 100644
--- a/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
@@ -1,15 +1,15 @@
{ stdenv, gettext, fetchurl, pkgconfig, udisks2, libsecret, libdvdread
, meson, ninja, gtk3, glib, wrapGAppsHook, python3, libnotify
, itstool, gnome3, libxml2, gsettings-desktop-schemas
-, libcanberra-gtk3, libxslt, docbook_xsl, libpwquality }:
+, libcanberra-gtk3, libxslt, docbook_xsl, libpwquality, systemd }:
stdenv.mkDerivation rec {
pname = "gnome-disk-utility";
- version = "3.32.1";
+ version = "3.34.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-disk-utility/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "08vwbji9m1nhjjdiyhhaqi8cncys7i89b4bpy095f8475v8y05bg";
+ sha256 = "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y";
};
nativeBuildInputs = [
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
buildInputs = [
gtk3 glib libsecret libpwquality libnotify libdvdread libcanberra-gtk3
- udisks2 gnome3.adwaita-icon-theme
+ udisks2 gnome3.adwaita-icon-theme systemd
gnome3.gnome-settings-daemon gsettings-desktop-schemas
];
diff --git a/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix b/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix
index 976829acd4c..0589dfe7285 100644
--- a/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix
@@ -4,11 +4,11 @@
stdenv.mkDerivation rec {
pname = "gnome-font-viewer";
- version = "3.32.0";
+ version = "3.34.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-font-viewer/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "10b150sa3971i5lfnk0jkkzlril97lz09sshwsbkabc8b7kv1qa3";
+ sha256 = "12xrsqwmvid7hksiw4zhj4jd1qwxn8w0czskbq4yqfprwn1havxa";
};
doCheck = true;
diff --git a/pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix b/pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix
new file mode 100644
index 00000000000..c6fd8658cde
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix
@@ -0,0 +1,109 @@
+{ stdenv
+, fetchurl
+, substituteAll
+, gettext
+, meson
+, ninja
+, pkgconfig
+, wrapGAppsHook
+, gnome3
+, accountsservice
+, fontconfig
+, gdm
+, geoclue2
+, geocode-glib
+, glib
+, gnome-desktop
+, gnome-getting-started-docs
+, gnome-online-accounts
+, gtk3
+, libgweather
+, json-glib
+, krb5
+, libpwquality
+, librest
+, libsecret
+, networkmanager
+, pango
+, polkit
+, webkitgtk
+, systemd
+, networkmanagerapplet
+, tzdata
+, yelp
+, libgnomekbd
+}:
+
+stdenv.mkDerivation rec {
+ pname = "gnome-initial-setup";
+ version = "3.34.1";
+
+ src = fetchurl {
+ url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "18dzx9z9bcfqfn1jivzm9m5lkcij1c9y8x77zlpxj733dgpi07z7";
+ };
+
+ nativeBuildInputs = [
+ gettext
+ meson
+ ninja
+ pkgconfig
+ systemd
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ accountsservice
+ fontconfig
+ gdm
+ geoclue2
+ geocode-glib
+ glib
+ gnome-desktop
+ gnome-getting-started-docs
+ gnome-online-accounts
+ gtk3
+ json-glib
+ krb5
+ libgweather
+ libpwquality
+ librest
+ libsecret
+ networkmanager
+ pango
+ polkit
+ webkitgtk
+ networkmanagerapplet
+ ];
+
+ patches = [
+ (substituteAll {
+ src = ./fix-paths.patch;
+ inherit tzdata libgnomekbd;
+ yelp = "${yelp}/bin/yelp"; # gnome-welcome-tour
+ })
+ ];
+
+ mesonFlags = [
+ "-Dregion-page=true"
+ "-Dcheese=disabled"
+ "-Dsoftware-sources=disabled"
+ "-Dibus=disabled"
+ "-Dvendor-conf-file=${./vendor.conf}"
+ ];
+
+ passthru = {
+ updateScript = gnome3.updateScript {
+ packageName = pname;
+ attrPath = "gnome3.${pname}";
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Simple, easy, and safe way to prepare a new system";
+ homepage = "https://gitlab.gnome.org/GNOME/gnome-initial-setup";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = gnome3.maintainers;
+ };
+}
diff --git a/pkgs/desktops/gnome-3/core/gnome-initial-setup/fix-paths.patch b/pkgs/desktops/gnome-3/core/gnome-initial-setup/fix-paths.patch
new file mode 100644
index 00000000000..94e14f688b3
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-initial-setup/fix-paths.patch
@@ -0,0 +1,67 @@
+diff --git a/data/gnome-welcome-tour b/data/gnome-welcome-tour
+index c479296..3dd629c 100755
+--- a/data/gnome-welcome-tour
++++ b/data/gnome-welcome-tour
+@@ -3,7 +3,7 @@
+ cfgdir=${XDG_CONFIG_DIR:-$HOME/.config}
+
+ # Don't do anything if yelp isn't installed
+-yelp_path=$(which yelp 2>/dev/null)
++yelp_path=@yelp@
+ if test -z "${yelp_path}"; then
+ rm -f $cfgdir/run-welcome-tour
+ exit
+@@ -17,5 +17,5 @@ geometry=(1024, 709)
+ EOF
+ fi
+
+-yelp help:gnome-help/getting-started
++$yelp_path help:gnome-help/getting-started
+ rm -f $cfgdir/run-welcome-tour
+diff --git a/gnome-initial-setup/pages/keyboard/cc-input-chooser.c b/gnome-initial-setup/pages/keyboard/cc-input-chooser.c
+index 1c34ef7..a1e7f93 100644
+--- a/gnome-initial-setup/pages/keyboard/cc-input-chooser.c
++++ b/gnome-initial-setup/pages/keyboard/cc-input-chooser.c
+@@ -177,9 +177,9 @@ preview_cb (GtkLabel *label,
+ return TRUE;
+
+ if (variant[0])
+- commandline = g_strdup_printf ("gkbd-keyboard-display -l \"%s\t%s\"", layout, variant);
++ commandline = g_strdup_printf ("@libgnomekbd@/bin/gkbd-keyboard-display -l \"%s\t%s\"", layout, variant);
+ else
+- commandline = g_strdup_printf ("gkbd-keyboard-display -l %s", layout);
++ commandline = g_strdup_printf ("@libgnomekbd@/bin/gkbd-keyboard-display -l %s", layout);
+ g_spawn_command_line_async (commandline, NULL);
+ g_free (commandline);
+
+@@ -829,7 +829,7 @@ cc_input_chooser_class_init (CcInputChooserClass *klass)
+ g_param_spec_string ("showing-extra", "", "", "",
+ G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+
+- signals[CHANGED] =
++ signals[CHANGED] =
+ g_signal_new ("changed",
+ G_TYPE_FROM_CLASS (object_class),
+ G_SIGNAL_RUN_FIRST,
+diff --git a/gnome-initial-setup/pages/timezone/tz.h b/gnome-initial-setup/pages/timezone/tz.h
+index 93905b3..e7ee785 100644
+--- a/gnome-initial-setup/pages/timezone/tz.h
++++ b/gnome-initial-setup/pages/timezone/tz.h
+@@ -4,7 +4,7 @@
+ * Copyright (C) 2000-2001 Ximian, Inc.
+ *
+ * Authors: Hans Petter Jansson
+- *
++ *
+ * Largely based on Michael Fulbright's work on Anaconda.
+ *
+ * This program is free software; you can redistribute it and/or modify
+@@ -28,7 +28,7 @@
+ #include
+
+ #ifndef __sun
+-# define TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab"
++# define TZ_DATA_FILE "@tzdata@/share/zoneinfo/zone.tab"
+ #else
+ # define TZ_DATA_FILE "/usr/share/lib/zoneinfo/tab/zone_sun.tab"
+ #endif
diff --git a/pkgs/desktops/gnome-3/core/gnome-initial-setup/vendor.conf b/pkgs/desktops/gnome-3/core/gnome-initial-setup/vendor.conf
new file mode 100644
index 00000000000..a06b37e100e
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-initial-setup/vendor.conf
@@ -0,0 +1,5 @@
+# Disable pages not right for NixOS
+# For example user accounts should be preconfigured
+# and we can't modify system time with systemd.
+[pages]
+skip=account;software;password;timezone;
diff --git a/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
index 7817936bfda..fa960087f9b 100644
--- a/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
@@ -4,11 +4,11 @@
stdenv.mkDerivation rec {
pname = "gnome-keyring";
- version = "3.31.91";
+ version = "3.34.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-keyring/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "1fjylqw4xp0rqsylq4gbxzw1sql2sy55h1mnz1pprrxb9py0mnd4";
+ sha256 = "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9";
};
outputs = [ "out" "dev" ];
diff --git a/pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix b/pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix
index 93da1f8abec..b21e3f6f68a 100644
--- a/pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix
@@ -4,11 +4,11 @@
stdenv.mkDerivation rec {
pname = "gnome-online-miners";
- version = "3.30.0";
+ version = "3.34.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-online-miners/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0pjamwwzn5wqgihyss357dyl2q70r0bngnqmwsqawchx5f9aja9c";
+ sha256 = "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44";
};
nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
diff --git a/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix b/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix
index 33acfd245cf..34ff8793224 100644
--- a/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix
@@ -4,13 +4,13 @@
let
pname = "gnome-screenshot";
- version = "3.32.0";
+ version = "3.34.0";
in stdenv.mkDerivation rec {
name = "${pname}-${version}";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
- sha256 = "09ha7dizjm5ymqpjyrqd10ijfb3xlqc1mwg9ajkrbfry11q9yq4b";
+ sha256 = "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8";
};
doCheck = true;
diff --git a/pkgs/desktops/gnome-3/core/gnome-session/default.nix b/pkgs/desktops/gnome-3/core/gnome-session/default.nix
index f13ad9f47aa..8aaf68ea1e3 100644
--- a/pkgs/desktops/gnome-3/core/gnome-session/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-session/default.nix
@@ -4,11 +4,11 @@
stdenv.mkDerivation rec {
pname = "gnome-session";
- version = "3.32.0";
+ version = "3.34.1";
src = fetchurl {
url = "mirror://gnome/sources/gnome-session/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0zrzkpd406i159mla7bfs5npa32fgqh66aip1rfq02rgsgmc9m5v";
+ sha256 = "0q366pns99f6wka5ikahqpasnsm72q9pg0c0nnfb2ld7spi1z06p";
};
patches = [
diff --git a/pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch b/pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch
index fe4feaf7085..2399c656016 100644
--- a/pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch
+++ b/pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch
@@ -1,6 +1,6 @@
--- a/gnome-session/gnome-session.in
+++ b/gnome-session/gnome-session.in
-@@ -3,11 +3,11 @@
+@@ -3,11 +3,13 @@
if [ "x$XDG_SESSION_TYPE" = "xwayland" ] &&
[ "x$XDG_SESSION_CLASS" != "xgreeter" ] &&
[ -n "$SHELL" ] &&
@@ -12,6 +12,8 @@
+ ! (echo "$SHELL" | @grep@ -q "nologin"); then
if [ "$1" != '-l' ]; then
- exec bash -c "exec -l '$SHELL' -c '$0 -l $*'"
++ # Make sure the shell actually sets up the environment
++ unset __NIXOS_SET_ENVIRONMENT_DONE
+ exec @bash@ -c "exec -l '$SHELL' -c '$0 -l $*'"
else
shift
diff --git a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix
index b9f33ce73a8..3d9f901b66b 100644
--- a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix
@@ -27,6 +27,7 @@
, libwacom
, libxslt
, libxml2
+, modemmanager
, networkmanager
, gnome-desktop
, geocode-glib
@@ -35,15 +36,16 @@
, python3
, tzdata
, nss
+, gcr
}:
stdenv.mkDerivation rec {
pname = "gnome-settings-daemon";
- version = "3.32.1";
+ version = "3.34.1";
src = fetchurl {
url = "mirror://gnome/sources/gnome-settings-daemon/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "02d0s0g2mmqfib44r3sf0499r08p61s8l2ndsjssbam1bi7x2dks";
+ sha256 = "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr";
};
patches = [
@@ -71,6 +73,7 @@ stdenv.mkDerivation rec {
gtk3
glib
gsettings-desktop-schemas
+ modemmanager
networkmanager
libnotify
libgnomekbd # for org.gnome.libgnomekbd.keyboard schema
@@ -89,6 +92,7 @@ stdenv.mkDerivation rec {
systemd
libgudev
libwacom
+ gcr
];
mesonFlags = [
diff --git a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/fix-paths.patch b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/fix-paths.patch
index 272656fae78..2229302cab7 100644
--- a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/fix-paths.patch
+++ b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/fix-paths.patch
@@ -13,14 +13,3 @@
typedef struct _TzDB TzDB;
typedef struct _TzLocation TzLocation;
---- a/plugins/mouse/gsd-mouse-manager.c
-+++ b/plugins/mouse/gsd-mouse-manager.c
-@@ -118,7 +118,7 @@ set_mousetweaks_daemon (GsdMouseManager *manager,
- gboolean run_daemon = dwell_click_enabled || secondary_click_enabled;
-
- if (run_daemon || manager->priv->mousetweaks_daemon_running)
-- comm = g_strdup_printf ("mousetweaks %s",
-+ comm = g_strdup_printf ("@mousetweaks@/bin/mousetweaks %s",
- run_daemon ? "" : "-s");
- else
- return;
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix b/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
index 3d37040828c..92c96001682 100644
--- a/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
@@ -1,19 +1,19 @@
-{ stdenv, fetchurl, meson, ninja, gettext, pkgconfig, spidermonkey_52, glib
+{ stdenv, fetchurl, meson, ninja, gettext, pkgconfig, spidermonkey_60, glib
, gnome3, gnome-menus, substituteAll }:
stdenv.mkDerivation rec {
pname = "gnome-shell-extensions";
- version = "3.32.1";
+ version = "3.34.1";
src = fetchurl {
url = "mirror://gnome/sources/gnome-shell-extensions/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "07libf6z24n42hpdsq163w0j8xyrav0lxqrwxrvq5kbz8zxv5ch2";
+ sha256 = "0ny7mk82kpfac977j02860c75d7zn05gvy0h9bphvx0v7ca53bdh";
};
passthru = {
updateScript = gnome3.updateScript {
- packageName = "gnome-shell-extensions";
- attrPath = "gnome3.gnome-shell-extensions";
+ packageName = pname;
+ attrPath = "gnome3.${pname}";
};
};
@@ -25,9 +25,9 @@ stdenv.mkDerivation rec {
];
doCheck = true;
- # 52 is required for tests
- # https://gitlab.gnome.org/GNOME/gnome-shell-extensions/blob/3.30.1/meson.build#L25
- checkInputs = [ spidermonkey_52 ];
+ # 60 is required for tests
+ # https://gitlab.gnome.org/GNOME/gnome-shell-extensions/blob/3.34.0/meson.build#L23
+ checkInputs = [ spidermonkey_60 ];
nativeBuildInputs = [ meson ninja pkgconfig gettext glib ];
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell/default.nix b/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
index a1d8f2c599a..e8d5b7dbffd 100644
--- a/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
@@ -2,10 +2,11 @@
, python3, libsoup, polkit, clutter, networkmanager, docbook_xsl , docbook_xsl_ns, at-spi2-core
, libstartup_notification, telepathy-glib, telepathy-logger, libXtst, unzip, glibcLocales, shared-mime-info
, libgweather, libcanberra-gtk3, librsvg, geoclue2, perl, docbook_xml_dtd_42, desktop-file-utils
-, libpulseaudio, libical, gobject-introspection, gstreamer, wrapGAppsHook, libxslt, gcr, caribou
+, libpulseaudio, libical, gobject-introspection, gstreamer, wrapGAppsHook, libxslt, gcr
, accountsservice, gdk-pixbuf, gdm, upower, ibus, networkmanagerapplet, libgnomekbd, gnome-desktop
, gsettings-desktop-schemas, gnome-keyring, glib, gjs, mutter, evolution-data-server, gtk3
-, sassc, systemd, gst_all_1, adwaita-icon-theme, gnome-bluetooth, gnome-clocks, gnome-settings-daemon }:
+, sassc, systemd, gst_all_1, adwaita-icon-theme, gnome-bluetooth, gnome-clocks, gnome-settings-daemon
+, gnome-autoar, asciidoc-full }:
# http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/gnome-base/gnome-shell/gnome-shell-3.10.2.1.ebuild?revision=1.3&view=markup
@@ -14,21 +15,21 @@ let
in stdenv.mkDerivation rec {
pname = "gnome-shell";
- version = "3.32.2";
+ version = "3.34.1";
src = fetchurl {
url = "mirror://gnome/sources/gnome-shell/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0anlkdnqsp5fqvmg95rqjpp1ifcx5xzsvwcrdsvb1cqzbh6inmp5";
+ sha256 = "07kd7wdk12nba33jfr44xqdlryiy86wgvsyjs8cw55y8p5cnbn6c";
};
LANG = "en_US.UTF-8";
nativeBuildInputs = [
meson ninja pkgconfig gettext docbook_xsl docbook_xsl_ns docbook_xml_dtd_42 perl wrapGAppsHook glibcLocales
- sassc desktop-file-utils libxslt.bin python3
+ sassc desktop-file-utils libxslt.bin python3 asciidoc-full
];
buildInputs = [
- systemd caribou
+ systemd
gsettings-desktop-schemas gnome-keyring glib gcr json-glib accountsservice
libcroco libsecret libsoup polkit gdk-pixbuf librsvg
clutter networkmanager libstartup_notification telepathy-glib
@@ -39,15 +40,11 @@ in stdenv.mkDerivation rec {
at-spi2-core upower ibus gnome-desktop telepathy-logger gnome-settings-daemon
gst_all_1.gst-plugins-good # recording
gobject-introspection
+ gnome-autoar
# not declared at build time, but typelib is needed at runtime
libgweather networkmanagerapplet
];
- propagatedUserEnvPkgs = [
- # Needed to support on-screen keyboard used with touch screen devices
- # see https://github.com/NixOS/nixpkgs/issues/25968
- caribou
- ];
patches = [
(fetchpatch {
@@ -58,6 +55,7 @@ in stdenv.mkDerivation rec {
(substituteAll {
src = ./fix-paths.patch;
inherit libgnomekbd unzip;
+ gsettings = "${glib.bin}/bin/gsettings";
})
];
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch b/pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch
index 3207af11088..7b93475619b 100644
--- a/pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch
+++ b/pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch
@@ -11,12 +11,20 @@
null);
--- a/js/ui/status/keyboard.js
+++ b/js/ui/status/keyboard.js
-@@ -1059,7 +1059,7 @@ class InputSourceIndicator extends PanelMenu.Button {
- let description = xkbLayout;
+@@ -1062,6 +1062,6 @@ class InputSourceIndicator extends PanelMenu.Button {
if (xkbVariant.length > 0)
- description = description + '\t' + xkbVariant;
+ description = `${description}\t${xkbVariant}`;
- Util.spawn(['gkbd-keyboard-display', '-l', description]);
+ Util.spawn(['@libgnomekbd@/bin/gkbd-keyboard-display', '-l', description]);
}
});
+--- a/data/gnome-shell-disable-extensions.service
++++ b/data/gnome-shell-disable-extensions.service
+@@ -10,5 +10,5 @@ Requisite=gnome-session-stable.timer
+ [Service]
+ Type=simple
+ # Disable extensions
+-ExecStart=gsettings set org.gnome.shell disable-user-extensions true
++ExecStart=@gsettings@ set org.gnome.shell disable-user-extensions true
+ Restart=no
diff --git a/pkgs/desktops/gnome-3/core/gnome-software/default.nix b/pkgs/desktops/gnome-3/core/gnome-software/default.nix
index 12081bbae5b..fb4114a524a 100644
--- a/pkgs/desktops/gnome-3/core/gnome-software/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-software/default.nix
@@ -1,6 +1,6 @@
{ stdenv, fetchurl, substituteAll, pkgconfig, meson, ninja, gettext, gnome3, wrapGAppsHook, packagekit, ostree
, glib, appstream-glib, libsoup, polkit, isocodes, gspell, libxslt, gobject-introspection, flatpak, fwupd
-, gtk3, gsettings-desktop-schemas, gnome-desktop, libxmlb, gnome-online-accounts, hicolor-icon-theme
+, gtk3, gsettings-desktop-schemas, gnome-desktop, libxmlb, gnome-online-accounts
, json-glib, libsecret, valgrind-light, docbook_xsl, docbook_xml_dtd_42, docbook_xml_dtd_43, gtk-doc, desktop-file-utils }:
let
@@ -11,11 +11,11 @@ in
stdenv.mkDerivation rec {
pname = "gnome-software";
- version = "3.32.4";
+ version = "3.34.1";
src = fetchurl {
url = "mirror://gnome/sources/gnome-software/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0g30wdrpypj23npvx85wqh1i4a8bbg00ainz7wmsvry21hcny4d4";
+ sha256 = "1yd806dp1c51ym6sidbfafzcywkbxmzxbr4zz57i0yhfjmwr9mjx";
};
patches = [
@@ -28,7 +28,6 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [
meson ninja pkgconfig gettext wrapGAppsHook libxslt docbook_xml_dtd_42 docbook_xml_dtd_43
valgrind-light docbook_xsl gtk-doc desktop-file-utils gobject-introspection
- hicolor-icon-theme # for setup-hook
];
buildInputs = [
diff --git a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
index 75d4b117e77..31f125e9720 100644
--- a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
@@ -1,14 +1,14 @@
{ stdenv, fetchurl, pkgconfig, libxml2, gnome3, dconf, nautilus
, gtk3, gsettings-desktop-schemas, vte, intltool, which, libuuid, vala
-, desktop-file-utils, itstool, wrapGAppsHook, hicolor-icon-theme }:
+, desktop-file-utils, itstool, wrapGAppsHook, glib, pcre2 }:
stdenv.mkDerivation rec {
pname = "gnome-terminal";
- version = "3.32.2";
+ version = "3.34.2";
src = fetchurl {
url = "mirror://gnome/sources/gnome-terminal/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0shhpnagasyp1kxgjczfrivcxbgrrl3y8lzvp1z101m67h4jp6km";
+ sha256 = "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv";
};
buildInputs = [
@@ -19,8 +19,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [
pkgconfig intltool itstool which libxml2
- vala desktop-file-utils wrapGAppsHook
- hicolor-icon-theme # for setup-hook
+ vala desktop-file-utils wrapGAppsHook pcre2
];
# Silly ./configure, it looks for dbus file from gnome-shell in the
diff --git a/pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix b/pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix
deleted file mode 100644
index 7915e71a73c..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, gnome3, itstool, libxml2, intltool }:
-
-stdenv.mkDerivation rec {
- pname = "gnome-user-docs";
- version = "3.32.3";
-
- src = fetchurl {
- url = "mirror://gnome/sources/gnome-user-docs/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig";
- };
-
- passthru = {
- updateScript = gnome3.updateScript { packageName = "gnome-user-docs"; attrPath = "gnome3.gnome-user-docs"; };
- };
-
- nativeBuildInputs = [ pkgconfig ];
- buildInputs = [ gnome3.yelp itstool libxml2 intltool ];
-
- meta = with stdenv.lib; {
- homepage = https://help.gnome.org/users/gnome-help/;
- description = "User and system administration help for the GNOME desktop";
- maintainers = gnome3.maintainers;
- license = licenses.cc-by-30;
- platforms = platforms.linux;
- };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix b/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix
index 2a425acb067..6207dd42a61 100644
--- a/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix
@@ -1,6 +1,9 @@
{ stdenv
, gettext
+, meson
+, ninja
, fetchurl
+, fetchpatch
, apacheHttpd
, nautilus
, pkgconfig
@@ -14,36 +17,55 @@
, mod_dnssd
, gnome3
, libcanberra-gtk3
+, python3
}:
stdenv.mkDerivation rec {
pname = "gnome-user-share";
- version = "3.32.0.1";
+ version = "3.34.0";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "16w6n0cjyzp8vln3zspvab8jhjprpvs88xc9x7bvigg0wry74945";
+ sha256 = "04r9ck9v4i0d31grbli1d4slw2d6dcsfkpaybkwbzi7wnj72l30x";
};
+ patches = [
+ # fix gio-unix-2.0 lookup
+ (fetchpatch {
+ url = https://gitlab.gnome.org/GNOME/gnome-user-share/commit/8772980d4732c15505b15dccff2ca3c97e96d49d.patch;
+ sha256 = "03clzhrx72pq1cbmg2y24hvw4i1xsvrg9ip113fi5bc3w4gcji7p";
+ })
+ ];
+
+ postPatch = ''
+ chmod +x meson_post_install.py
+ patchShebangs meson_post_install.py
+ '';
+
preConfigure = ''
sed -e 's,^LoadModule dnssd_module.\+,LoadModule dnssd_module ${mod_dnssd}/modules/mod_dnssd.so,' \
-e 's,''${HTTP_MODULES_PATH},${apacheHttpd}/modules,' \
-i data/dav_user_2.4.conf
'';
- configureFlags = [
- "--with-httpd=${apacheHttpd.out}/bin/httpd"
- "--with-modules-path=${apacheHttpd.dev}/modules"
- "--with-systemduserunitdir=${placeholder "out"}/etc/systemd/user"
- "--with-nautilusdir=${placeholder "out"}/lib/nautilus/extensions-3.0"
+ mesonFlags = [
+ "-Dhttpd=${apacheHttpd.out}/bin/httpd"
+ "-Dmodules_path=${apacheHttpd.dev}/modules"
+ "-Dsystemduserunitdir=${placeholder "out"}/etc/systemd/user"
+ # In 3.34.0 it defaults to false but it is silently ignored and always installed.
+ # Let’s add it anyway in case they decide to make build respect the option in the future.
+ "-Dnautilus_extension=true"
];
nativeBuildInputs = [
pkgconfig
+ meson
+ ninja
gettext
itstool
libxml2
wrapGAppsHook
+ python3
];
buildInputs = [
diff --git a/pkgs/desktops/gnome-3/core/mutter/0001-Revert-ClutterActor-Preserve-valid-paint-volumes-til.patch b/pkgs/desktops/gnome-3/core/mutter/0001-Revert-ClutterActor-Preserve-valid-paint-volumes-til.patch
new file mode 100644
index 00000000000..0e1c33773b0
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/mutter/0001-Revert-ClutterActor-Preserve-valid-paint-volumes-til.patch
@@ -0,0 +1,147 @@
+From 76477def5c103f10d62e604305802d7f5506afd4 Mon Sep 17 00:00:00 2001
+From: worldofpeace
+Date: Sun, 15 Sep 2019 20:14:16 -0400
+Subject: [PATCH] Revert "ClutterActor: Preserve valid paint volumes till the
+ next relayout/repaint"
+
+This causes issues for users of mutter like in gala[0].
+
+Upstream report: https://gitlab.gnome.org/GNOME/mutter/issues/536
+[0]: https://github.com/elementary/gala/issues/605
+---
+ clutter/clutter/clutter-actor.c | 35 +++++----------------------------
+ 1 file changed, 5 insertions(+), 30 deletions(-)
+
+diff --git a/clutter/clutter/clutter-actor.c b/clutter/clutter/clutter-actor.c
+index e70892308..8cb60fa07 100644
+--- a/clutter/clutter/clutter-actor.c
++++ b/clutter/clutter/clutter-actor.c
+@@ -24,7 +24,7 @@
+
+ /**
+ * SECTION:clutter-actor
+- * @short_description: The basic element of the scene graph
++ * @short_description: The basic element of the scene graph
+ *
+ * The ClutterActor class is the basic element of the scene graph in Clutter,
+ * and it encapsulates the position, size, and transformations of a node in
+@@ -840,7 +840,6 @@ struct _ClutterActorPrivate
+ guint needs_compute_expand : 1;
+ guint needs_x_expand : 1;
+ guint needs_y_expand : 1;
+- guint needs_paint_volume_update : 1;
+ guint had_effects_on_last_paint_volume_update : 1;
+ };
+
+@@ -1511,8 +1510,6 @@ clutter_actor_real_map (ClutterActor *self)
+
+ CLUTTER_ACTOR_SET_FLAGS (self, CLUTTER_ACTOR_MAPPED);
+
+- self->priv->needs_paint_volume_update = TRUE;
+-
+ stage = _clutter_actor_get_stage_internal (self);
+ priv->pick_id = _clutter_stage_acquire_pick_id (CLUTTER_STAGE (stage), self);
+
+@@ -2746,7 +2743,6 @@ clutter_actor_real_queue_relayout (ClutterActor *self)
+ priv->needs_width_request = TRUE;
+ priv->needs_height_request = TRUE;
+ priv->needs_allocation = TRUE;
+- priv->needs_paint_volume_update = TRUE;
+
+ /* reset the cached size requests */
+ memset (priv->width_requests, 0,
+@@ -4742,7 +4738,7 @@ clutter_actor_set_rotation_center_internal (ClutterActor *self,
+ ClutterRotateAxis axis,
+ const ClutterVertex *center)
+ {
+- ClutterVertex v = CLUTTER_VERTEX_INIT_ZERO;
++ ClutterVertex v = CLUTTER_VERTEX_INIT_ZERO;
+ GObject *obj = G_OBJECT (self);
+ ClutterTransformInfo *info;
+
+@@ -8531,7 +8527,6 @@ clutter_actor_init (ClutterActor *self)
+ priv->needs_width_request = TRUE;
+ priv->needs_height_request = TRUE;
+ priv->needs_allocation = TRUE;
+- priv->needs_paint_volume_update = TRUE;
+
+ priv->cached_width_age = 1;
+ priv->cached_height_age = 1;
+@@ -10098,9 +10093,6 @@ clutter_actor_allocate (ClutterActor *self,
+ return;
+ }
+
+- if (CLUTTER_ACTOR_IS_MAPPED (self))
+- self->priv->needs_paint_volume_update = TRUE;
+-
+ if (!stage_allocation_changed)
+ {
+ /* If the actor didn't move but needs_allocation is set, we just
+@@ -12992,9 +12984,6 @@ clutter_actor_add_child_internal (ClutterActor *self,
+ child->priv->needs_height_request = TRUE;
+ child->priv->needs_allocation = TRUE;
+
+- if (CLUTTER_ACTOR_IS_MAPPED (child))
+- child->priv->needs_paint_volume_update = TRUE;
+-
+ /* we only queue a relayout here, because any possible
+ * redraw has already been queued either by show() or
+ * by our call to queue_redraw() above
+@@ -14130,7 +14119,7 @@ clutter_actor_get_anchor_point_gravity (ClutterActor *self)
+ *
+ * Since: 0.6
+ *
+- * Deprecated: 1.12: Use #ClutterActor:pivot-point and
++ * Deprecated: 1.12: Use #ClutterActor:pivot-point and
+ * clutter_actor_set_translation() instead.
+ */
+ void
+@@ -14178,7 +14167,7 @@ clutter_actor_move_anchor_point (ClutterActor *self,
+ *
+ * Since: 0.6
+ *
+- * Deprecated: 1.12: Use #ClutterActor:pivot-point and
++ * Deprecated: 1.12: Use #ClutterActor:pivot-point and
+ * clutter_actor_set_translation() instead.
+ */
+ void
+@@ -14230,7 +14219,7 @@ clutter_actor_move_anchor_point_from_gravity (ClutterActor *self,
+ *
+ * Since: 0.6
+ *
+- * Deprecated: 1.12: Use #ClutterActor:pivot-point and
++ * Deprecated: 1.12: Use #ClutterActor:pivot-point and
+ * clutter_actor_set_translation() instead. E.g. For %CLUTTER_GRAVITY_CENTER set
+ * pivot_point to (0.5,0.5) and the translation to (width/2,height/2).
+ */
+@@ -17567,19 +17556,6 @@ _clutter_actor_get_paint_volume_mutable (ClutterActor *self)
+
+ if (priv->paint_volume_valid)
+ {
+- /* If effects are applied, the actor paint volume
+- * needs to be recomputed on each paint, since those
+- * paint volumes could change over the duration of the
+- * effect.
+- *
+- * We also need to update the paint volume if we went
+- * from having effects to not having effects on the last
+- * paint volume update. */
+- if (!priv->needs_paint_volume_update &&
+- priv->current_effect == NULL &&
+- !has_paint_volume_override_effects &&
+- !priv->had_effects_on_last_paint_volume_update)
+- return &priv->paint_volume;
+ clutter_paint_volume_free (&priv->paint_volume);
+ }
+
+@@ -17588,7 +17564,6 @@ _clutter_actor_get_paint_volume_mutable (ClutterActor *self)
+ if (_clutter_actor_get_paint_volume_real (self, &priv->paint_volume))
+ {
+ priv->paint_volume_valid = TRUE;
+- priv->needs_paint_volume_update = FALSE;
+ return &priv->paint_volume;
+ }
+ else
+--
+2.22.1
+
diff --git a/pkgs/desktops/gnome-3/core/mutter/0001-build-use-get_pkgconfig_variable-for-sysprof-dbusdir.patch b/pkgs/desktops/gnome-3/core/mutter/0001-build-use-get_pkgconfig_variable-for-sysprof-dbusdir.patch
new file mode 100644
index 00000000000..2df70ff9646
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/mutter/0001-build-use-get_pkgconfig_variable-for-sysprof-dbusdir.patch
@@ -0,0 +1,25 @@
+From 71acfd5258b4d12323fc51dda48e83830e62e696 Mon Sep 17 00:00:00 2001
+From: worldofpeace
+Date: Mon, 16 Sep 2019 11:18:27 -0400
+Subject: [PATCH] build: use get_pkgconfig_variable for sysprof dbusdir
+
+---
+ src/meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/meson.build b/src/meson.build
+index 182f7f5f5..43060865b 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -710,7 +710,7 @@ if have_profiler
+ 'backends/meta-profiler.h',
+ ]
+
+- dbus_interfaces_dir = join_paths(datadir, 'dbus-1', 'interfaces')
++ dbus_interfaces_dir = join_paths(sysprof_dep.get_pkgconfig_variable('prefix'), 'share', 'dbus-1', 'interfaces')
+ sysprof3_dbus_file = join_paths(dbus_interfaces_dir, 'org.gnome.Sysprof3.Profiler.xml')
+
+ dbus_sysprof3_profiler_built_sources = gnome.gdbus_codegen('meta-dbus-sysprof3-profiler',
+--
+2.22.1
+
diff --git a/pkgs/desktops/gnome-3/core/mutter/3.28.nix b/pkgs/desktops/gnome-3/core/mutter/3.28.nix
index 41527298ffb..85208163415 100644
--- a/pkgs/desktops/gnome-3/core/mutter/3.28.nix
+++ b/pkgs/desktops/gnome-3/core/mutter/3.28.nix
@@ -54,6 +54,10 @@ stdenv.mkDerivation rec {
url = "https://github.com/elementary/os-patches/commit/d636a44885c5be662997f8e19f7dcd26670b3219.patch";
sha256 = "12pbxk6f39a09jxjam5a5hxl4whp3cifzpck2m7fpp0n98nc63qh";
})
+ # See patch commit message
+ ./0001-Revert-ClutterActor-Preserve-valid-paint-volumes-til.patch
+ # Fix build with libglvnd provided headers
+ ./libglvnd-328.patch
];
configureFlags = [
diff --git a/pkgs/desktops/gnome-3/core/mutter/default.nix b/pkgs/desktops/gnome-3/core/mutter/default.nix
index eab0b131ea9..8fad9e3c288 100644
--- a/pkgs/desktops/gnome-3/core/mutter/default.nix
+++ b/pkgs/desktops/gnome-3/core/mutter/default.nix
@@ -1,5 +1,5 @@
{ fetchurl, fetchpatch, substituteAll, stdenv, pkgconfig, gnome3, gettext, gobject-introspection, upower, cairo
-, pango, cogl, clutter, libstartup_notification, zenity, libcanberra-gtk3
+, pango, cogl, json-glib, libstartup_notification, zenity, libcanberra-gtk3
, ninja, xkeyboard_config, libxkbfile, libxkbcommon, libXtst, libinput
, gsettings-desktop-schemas, glib, gtk3, gnome-desktop
, geocode-glib, pipewire, libgudev, libwacom, xwayland, meson
@@ -7,17 +7,20 @@
, xorgserver
, python3
, wrapGAppsHook
+, sysprof
+, desktop-file-utils
+, libcap_ng
}:
stdenv.mkDerivation rec {
pname = "mutter";
- version = "3.32.2";
+ version = "3.34.1";
outputs = [ "out" "dev" "man" ];
src = fetchurl {
url = "mirror://gnome/sources/mutter/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "1h577i2ap7dpfy1jg101jvc6nzccc0csgvd55ahydlr8f94frcva";
+ sha256 = "13kmmgg2zizr0522clwc2zn3bkwbir503b1wjiiixf5xi37jc65s";
};
mesonFlags = [
@@ -28,6 +31,8 @@ stdenv.mkDerivation rec {
propagatedBuildInputs = [
# required for pkgconfig to detect mutter-clutter
libXtst
+ json-glib
+ libcap_ng
];
nativeBuildInputs = [
@@ -39,28 +44,32 @@ stdenv.mkDerivation rec {
# for cvt command
xorgserver
wrapGAppsHook
+ desktop-file-utils
];
buildInputs = [
glib gobject-introspection gtk3 gsettings-desktop-schemas upower
- gnome-desktop cairo pango cogl clutter zenity libstartup_notification
+ gnome-desktop cairo pango cogl zenity libstartup_notification
geocode-glib libinput libgudev libwacom
libcanberra-gtk3 zenity xkeyboard_config libxkbfile
libxkbcommon pipewire xwayland
- gnome-settings-daemon
+ gnome-settings-daemon sysprof
];
patches = [
+ # Drop inheritable cap_sys_nice, to prevent the ambient set from leaking
+ # from mutter/gnome-shell, see https://github.com/NixOS/nixpkgs/issues/71381
+ ./drop-inheritable.patch
+ # TODO: submit upstream
+ ./0001-build-use-get_pkgconfig_variable-for-sysprof-dbusdir.patch
(substituteAll {
src = ./fix-paths.patch;
inherit zenity;
})
- # Fix a segmentation fault in dri_flush_front_buffer() upon
- # suspend/resume. This change should be removed when Mutter
- # is updated to 3.34.
+ # Fix build with libglvnd provided headers
(fetchpatch {
- url = "https://gitlab.gnome.org/GNOME/mutter/commit/8307c0f7ab60760de53f764e6636893733543be8.diff";
- sha256 = "1hzfva71xdqvvnx5smjsrjlgyrmc7dj94mpylkak0gwda5si0h2n";
+ url = "https://gitlab.gnome.org/GNOME/mutter/commit/a444a4c5f58ea516ad3cd9d6ddc0056c3ca9bc90.patch";
+ sha256 = "0imy2j8af9477jliwdq4jc40yw1cifsjjf196gnmwxr9rkj0hbrd";
})
];
diff --git a/pkgs/desktops/gnome-3/core/mutter/drop-inheritable.patch b/pkgs/desktops/gnome-3/core/mutter/drop-inheritable.patch
new file mode 100644
index 00000000000..574ed572561
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/mutter/drop-inheritable.patch
@@ -0,0 +1,132 @@
+From e9c772e265b2293af031c79f4bbc99b5847dfe3c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tor=20Hedin=20Br=C3=B8nner?=
+Date: Sat, 19 Oct 2019 13:26:05 +0200
+Subject: [PATCH] drop inheritable
+
+Adapted from https://gitlab.gnome.org/GNOME/mutter/commit/c53c47ae123b03cc66044d2b846342123ecb3a01
+
+We only want to drop inheritable though, to prevent the ambient set leaking further than gnome-shell.
+
+---
+ config.h.meson | 3 +++
+ meson.build | 5 +++++
+ meson_options.txt | 6 ++++++
+ src/core/main.c | 11 +++++++++++
+ src/meson.build | 1 +
+ 5 files changed, 26 insertions(+)
+
+diff --git a/config.h.meson b/config.h.meson
+index 0bab71848..202fb7ed1 100644
+--- a/config.h.meson
++++ b/config.h.meson
+@@ -58,6 +58,9 @@
+ /* Xwayland applications allowed to issue keyboard grabs */
+ #mesondefine XWAYLAND_GRAB_DEFAULT_ACCESS_RULES
+
++/* Defined if libcap-ng is available */
++#mesondefine HAVE_LIBCAPNG
++
+ /* XKB base prefix */
+ #mesondefine XKB_BASE
+
+diff --git a/meson.build b/meson.build
+index 3322bd3b1..01c8020fa 100644
+--- a/meson.build
++++ b/meson.build
+@@ -35,6 +35,7 @@ libstartup_notification_req = '>= 0.7'
+ libcanberra_req = '>= 0.26'
+ libwacom_req = '>= 0.13'
+ atk_req = '>= 2.5.3'
++libcapng_req = '>= 0.7.9'
+
+ # optional version requirements
+ udev_req = '>= 228'
+@@ -125,6 +126,7 @@ xau_dep = dependency('xau')
+ ice_dep = dependency('ice')
+ atk_dep = dependency('atk', version: atk_req)
+ libcanberra_dep = dependency('libcanberra', version: libcanberra_req)
++libcapng_dep = dependency('libcap-ng', required: get_option('libcapng'))
+
+ # For now always require X11 support
+ have_x11 = true
+@@ -256,6 +258,7 @@ have_core_tests = false
+ have_cogl_tests = false
+ have_clutter_tests = false
+ have_installed_tests = false
++have_libcapng = libcapng_dep.found()
+
+ if have_tests
+ have_core_tests = get_option('core_tests')
+@@ -361,6 +364,7 @@ cdata.set('HAVE_LIBWACOM', have_libwacom)
+ cdata.set('HAVE_SM', have_sm)
+ cdata.set('HAVE_STARTUP_NOTIFICATION', have_startup_notification)
+ cdata.set('HAVE_INTROSPECTION', have_introspection)
++cdata.set('HAVE_LIBCAPNG', have_libcapng)
+ cdata.set('HAVE_PROFILER', have_profiler)
+
+ xkb_base = xkeyboard_config_dep.get_pkgconfig_variable('xkb_base')
+@@ -443,6 +447,7 @@ output = [
+ ' Startup notification..... ' + have_startup_notification.to_string(),
+ ' Introspection............ ' + have_introspection.to_string(),
+ ' Profiler................. ' + have_profiler.to_string(),
++ ' libcap-ng................ ' + have_libcapng.to_string(),
+ '',
+ ' Tests:',
+ '',
+diff --git a/meson_options.txt b/meson_options.txt
+index 73aa7adde..8bfaacd9a 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -152,3 +152,9 @@ option('xwayland_grab_default_access_rules',
+ value: 'gnome-boxes,remote-viewer,virt-viewer,virt-manager,vinagre,vncviewer,Xephyr',
+ description: 'Comma delimited list of applications ressources or class allowed to issue X11 grabs in Xwayland'
+ )
++
++option('libcapng',
++ type: 'feature',
++ value: 'auto',
++ description: 'Enable libcap-ng support'
++)
+diff --git a/src/core/main.c b/src/core/main.c
+index 7f4f666d2..b27968f13 100644
+--- a/src/core/main.c
++++ b/src/core/main.c
+@@ -66,6 +66,10 @@
+ #include
+ #endif
+
++#ifdef HAVE_LIBCAPNG
++#include
++#endif
++
+ #if defined(HAVE_NATIVE_BACKEND) && defined(HAVE_WAYLAND)
+ #include