diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 58834f4597e5d1393cc83f5241ba5a025e29b064..238ba161b58f0b372b003f3a476711430bf1f03b 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,14 @@
/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
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index 07eddc80c2531e2ef7e3982395113054d4392190..4577cea2225d1f6c28163cb8d6c542f49f841bfd 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 a4f1c61e8f59119409805889074f42184edab7c6..89c751f4db7660b49c2b9ca7eded84c1c2f566c7 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/.version b/.version
index ba19dc3bb41eab373afe125b2874aafd25e5027e..88b8320330daf8986231569f186c981de4f98464 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 b34438e41a8fbba95f3b874ef441965d4d257eb0..15ef4048d900736741a01ac1a8a5839348bcd520 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 0000000000000000000000000000000000000000..ff3988334916d3c821ab7b8cd97d0274f3483604
--- /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 0000000000000000000000000000000000000000..5e042a8ada80a8c318a6b6f6711383b1c3c5877b
--- /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 e6dbc22f48ddd14489fa41c3faf3277423f1c90d..37e4251cda2ea87a605b9875ab3c35af0e6e1f18 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 a284182bb047c1b3c4c6785179f6abfe4132651c..2243453c3e9721b446ff76cc3ea069ad457bd0c0 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 163bee2382e6f214ab73a5958e45a3b5900bb1ec..f61075b242f8ad6054099dcd3c75da76607f7fc5 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 d0e3efdf6c674c8d7cb7a42d8a9ca729c898b0d6..422fcfa37d88519d05b23f927605f5472402fd4c 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 0000000000000000000000000000000000000000..c629dc9ee503ecd468e3f1a4027fc67c6deee6d8
--- /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 0000000000000000000000000000000000000000..5f768dd51b62d5cc52242852eaf8a56e70c76679
--- /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 0000000000000000000000000000000000000000..fc5094ed8f364ccf93f352877a88de4164464cea
--- /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 0000000000000000000000000000000000000000..a067f6c7c70ee742489629cd71c7ee94de0de19b
--- /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 0000000000000000000000000000000000000000..9cce7c40863aff3497c90f6560f3abefa005d2bb
--- /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 0000000000000000000000000000000000000000..2ed37903a27339b016b5effc7dbc2fc883654225
--- /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 0000000000000000000000000000000000000000..9f3f58a8d90319e8020497e2830432599f1803b7
--- /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 0000000000000000000000000000000000000000..728d40dacc92faa97f3f16cee34d717b6cd848be
--- /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 0000000000000000000000000000000000000000..72d0e21493b3f00552925b4e6aea6396ec233f29
--- /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 0000000000000000000000000000000000000000..44fdef034e77f1cd2b158604c0ac26ba60978ffe
--- /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 0000000000000000000000000000000000000000..65854ba0236675233d57a2b0b27ddfec224daf99
--- /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 0000000000000000000000000000000000000000..5f4433a288446ff14d59f5d4897240a0c381d309
--- /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 0000000000000000000000000000000000000000..cb70d527d67b7abf2bf6b775c5a76e3c941f8064
--- /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 0000000000000000000000000000000000000000..8dfede59ac1ba16e2dc407488a3f07403faad48f
--- /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 0000000000000000000000000000000000000000..3d4f199f8fb0ddb17b17b4f8960f385a229f4134
--- /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 0000000000000000000000000000000000000000..a110d3f491c796f244052ed6328e4c4396ceff35
--- /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 0000000000000000000000000000000000000000..ebf4930cc0976b398050ec18a9523f8b3d3e5567
--- /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 0000000000000000000000000000000000000000..15fdba9a0419e989b17bf010a64880c7603e6414
--- /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 79682080be314a1d545d3429af06214ee1f5740d..e7b81e97a23f9da34e98c83cb4bb6c1174cd58f8 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 e5031c9463c0676c94a1c172fecea137b1d090e4..cef65d06b8823176659f60f9ec55fad9683ea4a7 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 0000000000000000000000000000000000000000..df0e38da1aa2ee0cea2eb93258a1ca4fa11fa9df
--- /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 48356247a49e1bf07d86462998eec4293b944745..799f1479467a5b045c4f8abc7546abc34e5d286a 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 523c1c9c8f03030e76ba0971c584b561114a90ac..b0266043775fbb8fa467a7f66355fa695357f514 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 292d66864a4c1d073f7186b16996eaeae0b3f377..80514cba49043c7271e02ae6816d1b8a1bb44e12 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 5aa950625efa55cf350508c44d4f07fdbe889872..ed8f379c460e576d1c5de7d225cebec33a1136cb 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 a04ec08b048438f61140fed442ebad15eb69f4ee..950e1ea974a073c9261fcb8f4813405009e79511 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 b7844da195d7f58f18f25ed5ce3aa72cc99bf366..0000000000000000000000000000000000000000
--- 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 bc13e2b70dec972d20a6c57b5365c97a03782ae6..e4b33e66ee4dd51351d1dc29ea2bbac5fa212ae0 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 96bd95958eae8461d253409fc357c3469a5e15c2..5a9240ec800e2ee7413dd17ba3c927b2ff2796fc 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 c6b3611eea53dc43437418d6a4c062322e15047e..c27421f12e76c3487c5978cf9eb810cde4005591 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 a736008c9d41817c1027c3d214da34815091ad50..0000000000000000000000000000000000000000
--- 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 e860b10e8979f090d5763c57b3cbd3ae7998b616..9ce1f85eb1731e697a6bad390863198f9c741495 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 e6aedaa6efdd5e77b2c2c6113af709e5b687cb85..6ffb944b5a609dbe572e8d8bf86775b13abb41e7 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 437850e408bc2194e96759daa5d552d7e18455c0..10891039e86961e4409bdd96423e343c2024d5ef 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 65d0b40e2e82728e4ec2b88abf9cfe8cdb4af779..f9234069392ea89f030aac86701e9d32bad2dda7 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 9011570d1eaed005b66fc7359c71e01dd098701e..37a82b196ccf2d92b4bf8331b633c4b8db48edfc 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 3e43fd28ade8c7d36989873af946d2912caaf15b..94d25d3d3aeb69e138a73e2a9d791ed76d675eb6 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 0211a4f31728141f77f873ceaff0a6c253d3a349..0000000000000000000000000000000000000000
--- 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 f268c552566028a335a98386883ab2ea13b0e3d7..9a5df2523a25a7dac730a06e5b32a92fc47b2b2a 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 dee7f2d74191eca4a69458be47500329635066ca..74c595cc89b475b0213d7871daa56b8164c9a5ca 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,36 @@
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 sets, 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 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 .
- 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 .
+ 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.
+ 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.
@@ -81,28 +55,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, which is the normal, unmodified Rebar3, under rebar3 . We also provide a helper to fetch Rebar3 dependencies from a lockfile under fetchRebar3Deps .
@@ -110,10 +63,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,13 +72,7 @@
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 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:
@@ -143,8 +87,7 @@ 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):
+ To install any of those packages into your profile, refer to them by their attribute path (first column):
@@ -152,9 +95,7 @@ beamPackages.rebar3-pc pc-1.1.0
- The attribute path of any BEAM package corresponds to the name of that
- particular package in Hex or its
- OTP Application/Release name.
+ The attribute path of any BEAM package corresponds to the name of that particular package in Hex or its OTP Application/Release name.
@@ -168,13 +109,8 @@ 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:
+ 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:
@@ -196,25 +132,16 @@ buildRebar3 rec {
- 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 .
+ 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 .
- Notably, buildRebar3 includes
- beamDeps , while stdenv.mkDerivation
- does not. BEAM dependencies added there will be correctly handled by the
- system.
+ 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,9 +149,7 @@ 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 .
@@ -257,8 +182,7 @@ buildErlangMk {
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 .
@@ -323,11 +247,7 @@ buildHex {
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:
+ 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:
@@ -373,8 +293,7 @@ ok
- Notice the -A beamPackages.ibrowse.env . That is the key
- to this functionality.
+ Notice the -A beamPackages.ibrowse.env . That is the key to this functionality.
@@ -382,11 +301,7 @@ ok
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.
+ 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.
@@ -414,8 +329,7 @@ in
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.
+ We can leverage the support of the derivation, irrespective of the build derivation, by calling the commands themselves.
@@ -477,12 +391,8 @@ analyze: build plt
- 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. Aside from test , plt , and analyze , the Make targets work just fine for all of the build derivations.
@@ -492,25 +402,14 @@ analyze: build plt
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.
+ 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:
+ 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:
@@ -518,11 +417,8 @@ analyze: build plt
- 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.
+ 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 118f6e10473ab855aa7cb09b9d9bd8d004cf9811..b0738cad293bcc25b5775f0b576e2d0fadf8519e 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 4314df5c9df29e602d4749c65e4cf2f1340a9d5f..86d9226166f5959d97ac5d271a6f01e796a609a1 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 24c49ec1409c2b20005776b5613d1b42279445a8..80e1094809ade19662a0b8e01c952fe922797f91 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 0000000000000000000000000000000000000000..3d69d77a1c8456761ec77bd355473114575614f5
--- /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 b2b4962cb5f633666b65b10270cf6c2675b50a5d..288a90298631647146467b24afc29aeb358cf3f3 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 48d22831cd9b01de19b45d6d4908823cc87c3f00..7cbac95f7d43210f40e64c006a8cf174d833ec5a 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 e88015f08e3f872cf3fbff0eb6d3ac877581a27a..8d7962d7fb9b2224e5302fd7835b2da4957e1c15 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 cd4e95cfae69a699d8d6d843c33958882a3da7de..9364c764bbf9f82dcf85061a7a24d4c43fabc1fb 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 6684b809ffe614e1318f235c8c3e0e6de4505152..5a81795c004a50e7051601135e230df4e7b407f9 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 68a1a097984deffaa742f83705e38e1b07db39b3..bf0fc48839223742eea28672c52d33481c4558e5 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 5144bb24ff6e729573bbc468d53b061c1a2523ee..bcca6b7375391cb87edef7054709624696b4a9f2 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 c6dce04c7b8b00409e191b16b04c6cd679ef16d7..4dc95fc1dd98f33a094bfd836c0a463faf1851cf 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 b7006ecba998137d3baad7347d72b75ba59f62e6..a0ea209b493c0facb30fbf7a25e1d7fb9e3f2a2e 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 065212a0e18079459bbe91b63ef65b31d7dd4d23..d9b6b2721c675b0a6bec4324bcd6b48454436994 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 88dc42ebc6c23399545f480b7b73ee631495113d..1bedebd1190295ed418628b7397da8515ef4314c 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 3332ce8c06e429e311b7ef6032d4034aa3d83fbc..8d97de504ad342c045296f7608fb0d44226b9337 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 c8f02bd1478067990b03e0a2c7fd1e2f03a0ba69..d4e1617779ce47f289d5378872f64b93c1d39692 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 df4e5acb22cb94892a5f0dd06c5e7be8b27d170e..b28745fd6e2754ce91dae7068b8a1ba5db8495e7 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 2d9338f2e89bf0ce1efe600e0ec6ba9380ef0c4d..709a0d504cf73b6ea07d372882ba8db24c30b429 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 97f274933bef274aff2087abbfc75cdfe25ece6d..7876cc213b667d4f7e6f7978753e9d99df5cc725 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 537e7b93e5230dbcaa2df1c2a5831dc3fb6bde7e..05a23d26cf2f77b78aacdbe53c7070c1a1429bd4 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 ab845e1a10866a972445e31d08e09d07bd644807..1f69872d2a7269ba6dad364e4078e4af70be7a61 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 d0247e081f9958fa46d18b9d15519f45cef8a97e..0000000000000000000000000000000000000000
--- 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 bff2339ca9338cbdf5e14d91b47cfd2b1dbeee5f..0000000000000000000000000000000000000000
--- 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 d2c660e22a9b010dfb580d2885e0eb9307e2e38a..0000000000000000000000000000000000000000
--- 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 a176f4d13959895c51ea78ca42b256ed9d46ced0..0000000000000000000000000000000000000000
--- 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 6abdc2714e2c7c47e5af897490d4e65c20482d07..88ca5e2e3cec591c744ed1c5218ef66787abc64b 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 8d9b1813010a291607c4601b592bc7039f3f15c6..b85f61da079c0444e1cb0a2205db087686f803a4 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 15a13ba49e8e702f04a6882db3ce15d9b7dd45cf..0000000000000000000000000000000000000000
--- 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 0000000000000000000000000000000000000000..5476c9a489321ffbbdead4ea9969957b89ef484f
--- /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 58c390a68b84da9bbf9e8c18f50d9a8c778db6ea..9371196818ad9272a557400d26c0ea687e4cd632 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 0000000000000000000000000000000000000000..83275bb2fbd1acd133ef3024b682052c51abaa58
--- /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 157d3fe2fcdda7b51f51a648957e90d7e5477174..5a266fdc0eea075bcb5fda648c917c8d04bf8b9f 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 0000000000000000000000000000000000000000..0b59f90eb490fd0f51080ed0f39c822ce032cd54
--- /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 b497fa4e2722cafe5cd36f875dc69bdfd67fac72..6406c3af3ec5bf80713805947239eba11046cd95 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,12 +138,11 @@
- 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
- (builtins.parseDrvName pkg.name).name [
+ (pkg.pname or (builtins.parseDrvName pkg.name).name) [
"flashplayer"
"vscode"
]);
@@ -190,14 +152,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 ];
@@ -205,8 +163,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 ];
@@ -217,37 +174,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 = [
@@ -259,18 +208,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 (builtins.parseDrvName pkg.name).name) <= 5);
@@ -278,8 +222,7 @@
- Note that permittedInsecurePackages is only checked if
- allowInsecurePredicate is not specified.
+ Note that permittedInsecurePackages is only checked if allowInsecurePredicate is not specified.
@@ -289,10 +232,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 {
@@ -309,15 +249,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 :
@@ -343,13 +275,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:
@@ -376,12 +302,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.
@@ -389,13 +310,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.
@@ -422,9 +337,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.
@@ -460,9 +373,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:
@@ -477,8 +388,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.
@@ -486,9 +396,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.
@@ -534,11 +442,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 0000000000000000000000000000000000000000..26a888368abf72877de8eda640c48b217915b867
--- /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 0000000000000000000000000000000000000000..c9d36ddb2d7b60d09f4ccab404206ef9878c0003
--- /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 d374d229f5975f0eddb5b03d379fc0ce1d359c96..086c3d746fc187873ecede9c7e433526936d849a 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 3be36fcd719b03a0320de900726bb1638634a878..ac234e3b8c6fb2f3916e4e99984b12b41fef2f1e 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 18d2dfae1e183e35835b56289f1bca9ad06e3c66..74d508ec1d6e394cd22dd1e7c4cf5eb026c4d474 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
@@ -134,5 +134,7 @@ let
mergeAttrsByFuncDefaultsClean mergeAttrBy
fakeSha256 fakeSha512
nixType imap;
+ inherit (versions)
+ splitVersion;
});
in lib
diff --git a/lib/licenses.nix b/lib/licenses.nix
index 83e1ec7748d56fb22cd919683164028c7a938925..986b7fa1fdd9df83e37dab9a2999469f64b2a56d 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 c3c903c1dfa800eab8f407cb71e7c022381f402c..44db77b5d1c6a4a2b1fd62d58ea1042ea11cc970 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 0c0cdf1f11b197e2d1d6b3ab74dfb9cfd7421c3d..0d51be4b23bc522f7dc940e0b055c72a684cb034 100644
--- a/lib/systems/default.nix
+++ b/lib/systems/default.nix
@@ -79,6 +79,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/parse.nix b/lib/systems/parse.nix
index 5a3805cf997a2f6d278b4ace0f42ecc046644aa2..362357446025ef8f2128383796773b8e5633bad6 100644
--- a/lib/systems/parse.nix
+++ b/lib/systems/parse.nix
@@ -330,6 +330,7 @@ rec {
}
];
};
+ gnuabi64 = { abi = "64"; };
musleabi = { float = "soft"; };
musleabihf = { float = "hard"; };
diff --git a/lib/tests/misc.nix b/lib/tests/misc.nix
index d8f412d3fc49ae4a94faca0ab59903e45d5776c0..b064faa1e1ba637645593bbef548590d38249d66 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 f2710a6f0338d50bb70e8c7f0418a8d6a15215c5..3a25e31fb052b5db1641b397655739f8a905f28a 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 2c05445b3dd077a54d49d6a51503609402394ca9..0e9d81ac78b1ea9519a0f5a2d880bac0e382105b 100644
--- a/lib/versions.nix
+++ b/lib/versions.nix
@@ -1,13 +1,15 @@
/* Version string functions. */
{ lib }:
-let
+rec {
- splitVersion = builtins.splitVersion or (lib.splitString ".");
-
-in
+ /* Break a version string into its component parts.
-{
+ Example:
+ splitVersion "1.2.3"
+ => ["1" "2" "3"]
+ */
+ splitVersion = builtins.splitVersion or (lib.splitString ".");
/* Get the major version string from a string.
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index a5b7ce5eaa47f97e1c8055742ae84dc7084a03cb..ec32d55315eea99f87e555bff018d8cafd23b80e 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";
@@ -1109,16 +1158,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 +1216,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 +1276,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";
@@ -1348,6 +1411,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 +1472,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 +1506,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 +1563,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 +1597,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 +1744,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";
@@ -1697,7 +1804,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 +1982,9 @@
name = "Eric Hegnes";
};
ehmry = {
- email = "emery@vfemail.net";
+ email = "ehmry@posteo.net";
+ github= "ehmry";
+ githubId = 537775;
name = "Emery Hemingway";
};
eikek = {
@@ -1961,6 +2070,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 +2092,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 +2116,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 +2159,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 +2197,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 +2239,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,6 +2279,16 @@
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";
@@ -2237,7 +2379,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 +2490,11 @@
github = "gavinrogers";
name = "Gavin Rogers";
};
+ gazally = {
+ email = "gazally@runbox.com";
+ github = "gazally";
+ name = "Gemini Lasswell";
+ };
gebner = {
email = "gebner@gebner.org";
github = "gebner";
@@ -2490,6 +2637,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 +2745,11 @@
githubId = 1401179;
name = "Guanpeng Xu";
};
+ hexa = {
+ github = "mweinelt";
+ githubId = 131599;
+ name = "Martin Weinelt";
+ };
hhm = {
email = "heehooman+nixpkgs@gmail.com";
github = "hhm0";
@@ -2602,6 +2760,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 +2906,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 +2963,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 +2996,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 +3169,11 @@
githubId = 184898;
name = "Jirka Marsik";
};
+ jitwit = {
+ email = "jrn@bluefarm.ca";
+ github = "jitwit";
+ name = "jitwit";
+ };
jlesquembre = {
email = "jl@lafuente.me";
github = "jlesquembre";
@@ -3106,6 +3298,11 @@
githubId = 392720;
name = "Jon Banafato";
};
+ jonathanmarler = {
+ email = "johnnymarler@gmail.com";
+ github = "marler8997";
+ name = "Jonathan Marler";
+ };
jonathanreeve = {
email = "jon.reeve@gmail.com";
github = "JonathanReeve";
@@ -3201,6 +3398,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 +3446,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";
@@ -3370,7 +3579,11 @@
github = "kmein";
githubId = 10352507;
};
-
+ knairda = {
+ email = "adrian@kummerlaender.eu";
+ name = "Adrian Kummerlaender";
+ github = "KnairdA";
+ };
knedlsepp = {
email = "josef.kemetmueller@gmail.com";
github = "knedlsepp";
@@ -3465,6 +3678,11 @@
githubId = 1362179;
name = "Kyle Lacy";
};
+ laikq = {
+ email = "gwen@quasebarth.de";
+ github = "laikq";
+ name = "Gwendolyn Quasebarth";
+ };
lasandell = {
email = "lasandell@gmail.com";
github = "lasandell";
@@ -3482,6 +3700,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 +3800,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";
@@ -3763,6 +3993,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 +4169,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 +4388,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 +4428,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 +4455,12 @@
githubId = 104795;
name = "Marek Mahut";
};
+ mmai = {
+ email = "henri.bourcereau@gmail.com";
+ github = "mmai";
+ githubId = 117842;
+ name = "Henri Bourcereau";
+ };
mmlb = {
email = "me.mmlb@mmlb.me";
github = "mmlb";
@@ -4262,6 +4518,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 +5203,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 +5629,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,6 +6036,12 @@
githubId = 1151264;
name = "Sebastian Graf";
};
+ shahrukh330 = {
+ email = "shahrukh330@gmail.com";
+ github = "shahrukh330";
+ githubId = 1588288;
+ name = "Shahrukh Khan";
+ };
shanemikel = {
email = "shanemikel1@gmail.com";
github = "shanemikel";
@@ -5811,6 +6093,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 +6128,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 +6436,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 +6559,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";
@@ -6394,6 +6704,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 +6751,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 +6808,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 +6844,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 +6862,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 +6979,7 @@
githubId = 1525767;
name = "Vaibhav Sagar";
};
- valebes = {
+ valebes = {
email = "valebes@gmail.com";
github = "valebes";
githubid = 10956211;
@@ -6840,6 +7183,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 +7286,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 +7404,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 +7465,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 +7543,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 23669502e46d6b6a0e0eaf0248316e8dbf11211a..6e7ec2dbc002d61e97d44ea646f613b580429e76 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 a6fbcd5a0beb6221bf11489163aa84cfb057ba71..526a928438d27da322042ddd4fd741af49b89b8f 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 2dda39fd12e143ba3fb981b85258a009c887826b..e04d3713e9a1b8b55747fa2b6e22da28fb9df0cd 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 <
= {
- 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 f6f659b02afa6534dfebc435122581b2d9e2fd10..9206f43ea3926436f824d7b476265db7eb3f0e87 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 f9de2db1a084376fe6dbbae8328b8063b8d25bbb..6ca75f869f45c475b7475039e83dca7ff84e3bdb 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 eee81bf64263802d3fece3f36e6d085cdd094473..56ebf4816306e1cfbf0330bc7d1e226ac84d4c6c 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/running-nixos-tests-interactively.xml b/nixos/doc/manual/development/running-nixos-tests-interactively.xml
index e390d62fde2f80b3f0851aaf398661450662b38c..ea3ba0e4bf7818a4095ce61959609a906317d796 100644
--- a/nixos/doc/manual/development/running-nixos-tests-interactively.xml
+++ b/nixos/doc/manual/development/running-nixos-tests-interactively.xml
@@ -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/sources.xml b/nixos/doc/manual/development/sources.xml
index 3c30c782746df4ab9180803882adbf29542ff0bb..b333ccabb420afb2066799b0a250528b54d42430 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 6be2d0a4d231f62c78d6c198d1663b5b948e0c4f..24efd2e3273ab810ca88a35744896ca98d41f8d3 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 5c86eacfbf45c509e21815a56c749a41151ab952..0ba909fa953fb60f78c1e66b4e466baf51af0ead 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 9cea2db610e0d85d9b10c484cac9a39e79738d68..8ff920eb5a8866f5cf261d5e36225401afe125be 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.
+
diff --git a/nixos/doc/manual/installation/upgrading.xml b/nixos/doc/manual/installation/upgrading.xml
index 35b4d266e12efa5c29e33f30e680d99d51aaedc8..8d3f35b7c26f4e34cd75abb769e2c51d8f1ef0dd 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 9f30b79251017882edb973b8c4f0104485654ca2..ddb1408fdcf59a31bc6fd55c971a4f426fce4b77 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 7d6e04e0dd90bbf056bb6070adcc71989cc6a0b6..d114261f53bef32704fa670342ee25808b6f8a1b 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 1481db467122d9577e807c67a80b14884bbef237..fe560d3efdd8efaf4c8ed6000e1bd103c8bf8ec6 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 61531a8f01ca043d6f37dc620cde68871eeba0cb..9ac3b918ff693b71e80b59a6777a132cbb810fa5 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 4fb94ee7494c86a346143e2960e946404e4db2b8..45bbd5d81ff0294feee88236459dbe84322bd264 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 3e316e10d4eb4d5c14387f0b6d4094769bfd0ec1..beabf020c92aee3173a3f2c5072bbac425182b25 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
-
-
-
- This option enables verbose mode, which currently is just the Bash
- set -x debug mode.
-
-
-
-
-
- --xml
+ --all
- 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 4c20cfcdd7d2f6a120c17e728229fe79642f24e5..495dbc8859b1db4ba438e6873b7bc7c1435d5845 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 931c4a5ad029333a169bbbcad00489f2680be16c..e9ad8bddcace63391333f7c3bd7bfdd6d2b45428 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 12f52e1997c8d207e0414218e2aaa1aff243daa3..18a67a2dd9416222d3bd9ce21ed75d059be270f5 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 0000000000000000000000000000000000000000..6ac9ae7e7861d1aa86ba1aa40a5c55b76531f2cc
--- /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 02b5914772143cdaf8f28b4049f29c10c9448363..444862c5739bbd1b0d91c55661963923b3de82f6 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 db46294430022eabf8b1b10ef0c96c423e250cc6..4102fe206e19d0842f7a3088480d7d46996a848a 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 0000000000000000000000000000000000000000..407e0d11584ce84d403431e0b8974da07b2d42df
--- /dev/null
+++ b/nixos/doc/manual/release-notes/rl-2003.xml
@@ -0,0 +1,169 @@
+
+ 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 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.
+
+
+
+
+
+
+ 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 4a565c8465bc038a515c5cbdb3c6cc115f06c2c7..c3f39c7fd81b8e9019ae861c5eebc7b8e76d609f 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 8cd19b6e1874b1f8e0f51017f76faea7b1420c96..0f3f2b5b5234d1e54ca5075eab2361e8f044d624 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 0000000000000000000000000000000000000000..9d89960876eb2ff58025d2b448c7fccb2d4e4899
--- /dev/null
+++ b/nixos/lib/test-driver/test-driver.py
@@ -0,0 +1,820 @@
+#! /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
+ while True:
+ answer = self.monitor.recv(1024).decode()
+ if answer.endswith("(qemu) "):
+ 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 = {
+ "QEMU_OPTS": qemu_options,
+ "SHARED_DIR": self.shared_dir,
+ "USE_TMPDIR": "1",
+ }
+ environment.update(dict(os.environ))
+
+ 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)
+ 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 0000000000000000000000000000000000000000..d567d26876538a43f2c1a7612dc509b55315a54f
--- /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 7670687710363d90b9b5e51dbce5b11aa65639d6..a5f060a8d8e305440e27db5a30f2ac70c106639a 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 c4149e3e8ffe69bccbf6174e25a101b2b629569a..f08e500e079ac9f97341eb78ee33059d28664512 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
diff --git a/nixos/maintainers/scripts/gce/create-gce.sh b/nixos/maintainers/scripts/gce/create-gce.sh
index 48748a59d298a41ff022f7c9ae76efc507c124ca..77cc64e591e9993fa69165dd84cb3fb9b55485ba 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 b9f69879a10365bf9cabbfccc062e519396436b0..0000000000000000000000000000000000000000
--- 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 84d90899dfff4e1d22f083b835e447ab9019f003..0000000000000000000000000000000000000000
--- 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 dc7305b1ba24c7ded0dbbaaa8fc3937e30d1e3d1..d0db8fedecd80ebe68a2a3cdfa5d5fea3eac7623 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 74cf74d74181fbadb779ee77671ff2fa617ae28c..873b8073fed9c8a5530509cd58b587a88f4acb59 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 5c3e3930258379b05e2c4414d64a1cb07030fb4e..9baad9b585455a6099110ba40a2881de3f310d32 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/shells-environment.nix b/nixos/modules/config/shells-environment.nix
index 9dfc1add82996e3691687248dce910253f635876..b79e16cd79796f88525a24c1c58a3799c9fbe463 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 fb2b58eed7203fec0f9d8514ad11f6190fcb308f..e59c7a32c28780d5a3b922ab2c9d662e81930d6d 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 6011e354ece48ac8e1a966b0861dfc88190fd724..4888740ba3d5337cdb272f5568ec2881eff35fd5 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 fae2fc74008290df848919ec3c5a385bec8bb219..aba9bc0945b19118552b39346c009422885de5f7 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 b86ce2dbf05726939f5adc762166bde2cf4cb6ad..1396640af6724e61b60dcadfc79c6732d5e4efcd 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 8dd811727389a3926cba1ac10bb5b8b57866970e..abc12a627d6fae5fdb485e69ea0f47f9117f7001 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 59cea51c611b497aa980293516699d64cdf9600a..15e448b787aaf4cee33c53a5ad3ac4c24e66ca26 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 ba79bd3d6ecc5708dbc13edcc5a77ab547a16239..ae3bdeb00e645669e274633bafe8114e614316bc 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/xdg/icons.nix b/nixos/modules/config/xdg/icons.nix
index 8268a3771a0ea553561bd2af8b1a3154b5ce1b2e..4677ce090b0bda3b7cb6109786d64233c725cc25 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 148240d631cf266696522da2a1fae60f38c84b10..14d6340fc33bc06363abe2c900f0c01337f396cb 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 341e4b791c237a96625902acfe6eb1498e34f98f..2d54398d10df559f4cf8ecedc327a9a2702399b4 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 0000000000000000000000000000000000000000..e970c94809989665d55fcdc7f2444ff0788cb41e
--- /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 378aeffe71b5ebc9b2671b5d4e5b2386d2961dd8..6218c9ffbb9b14ed525444e4874147684d0719d7 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 669ac849cbad0f0ae08912acb8b636831489a23a..912f53da836a834c1bfb24b327e77d8b9f26df58 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 3ab2afc9740704eb1fc06eec48c73235edc1b6da..1e18e927ec6eefd9952c17a63074f1e7afae3b90 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 1578e1547bc1fc1b2deff01848b1c59e0eb7a811..e0b558dcb0d85b9a6c8d1e99fd4b088809c61fe0 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 0b813bbf37b4c408bd9456cd94d466e15cab531a..23c3426bff08899ff2aaf5c99811ea737ae21926 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 559899b0a3b157b4a25f1a720c1094f419e3f893..6a10a6404e6791d2ed212a6f38f54593aebafc75 100644
--- a/nixos/modules/installer/cd-dvd/installation-cd-graphical-kde.nix
+++ b/nixos/modules/installer/cd-dvd/installation-cd-graphical-kde.nix
@@ -13,6 +13,15 @@ with lib;
enable = true;
enableQt4Support = false;
};
+
+ # Automatically login as nixos.
+ displayManager.sddm = {
+ enable = true;
+ autoLogin = {
+ enable = true;
+ user = "nixos";
+ };
+ };
};
environment.systemPackages = with pkgs; [
@@ -22,14 +31,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 d5c92cfc1d9e4a8111a5520f97149a24068dc489..009f1e2c543ad250ee4a4c86648d4b70d161c132 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 2a131d9ce980f946ad09d7f16353089c9e697c8e..ba4127eaa0e8501d726dd11dc8250301e0c456ea 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 0000000000000000000000000000000000000000..c545a1e7e2424194774a0a1b47bbe65d2fbfaa5f
--- /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 0a01504415549bbad3d134ae294676954e274baa..7865b767f0b7714d49206627d426fbdc6802e0e4 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 2673887d2b9657fbd14fab0adaf93643acfc55f8..d7149b35d4c0cde9c7ad5279a5b1286029c1ef63 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 cfdbdaabf5c52051f383908c591f6abf5d095d51..f2ffe61c42cbe8c94bf0da0acc98314f4f817f6a 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 0000000000000000000000000000000000000000..e5834598c4fde8ab7f4561979c3f50755365a21b
--- /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 0000000000000000000000000000000000000000..753fd92c7bbf66ba92f0cb78fd880463d28961d7
--- /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 0000000000000000000000000000000000000000..875c07da6399665dda41b112a3572c2f53c241f2
--- /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 0000000000000000000000000000000000000000..2274e9a0f85320b4c5e900998b9a8393b55fb6cd
--- /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 0000000000000000000000000000000000000000..9b92dc829cd16a5be4ffa5c30e670b4c2cc100ba
--- /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 6a08c9b4c6c62e1a0cd1aac10775b88bb7d70948..c53dc1000c4ac00ce328505e23352414bcc1bbe0 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 05add59117d1190bb5c837d780af184e7cad0b87..e4db39b5c8108381f81443f7877fb050920317fa 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 ac6af1ce8b77ff49d3a51d488ba55ee16ba94ceb..a4db2c9d1d877b6595c4029f42a2a02d840dea01 100644
--- a/nixos/modules/misc/ids.nix
+++ b/nixos/modules/misc/ids.nix
@@ -128,7 +128,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 +328,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 +443,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 +629,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 449149e4bb65fca6cc3ba1a0fb61c606f4be6717..737ed5c0a3f6ad46a5101481a891b6a8d0324cb2 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 5b7f391ed5a50d113b752c850fb1a101dbfef885..6b578cd5619f80aa8d42da806074cf5d2c508d24 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
@@ -44,6 +42,7 @@
./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 +97,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 +141,6 @@
./programs/seahorse.nix
./programs/slock.nix
./programs/shadow.nix
- ./programs/shell.nix
./programs/spacefm.nix
./programs/singularity.nix
./programs/ssh.nix
@@ -229,6 +226,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 +297,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 +316,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 +504,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
@@ -547,6 +550,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 +572,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 +605,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 +619,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 +654,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 +670,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 +717,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 +734,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 +799,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 +811,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 +842,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 +866,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 +952,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 649f5564ac61207c862e5cace41cf2b824491382..ac3c228b3c650e1459c6357b19b10c6096d3c893 100644
--- a/nixos/modules/profiles/graphical.nix
+++ b/nixos/modules/profiles/graphical.nix
@@ -16,7 +16,6 @@
# 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 626d8b1d2bde5508e92eba2eb5bb01af1a515d36..f7b2f5c7fc1e8a34316bf7b09e5fc406a7c5c1de 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 fd30220ce1c918bc5d6315d8bf45587536176832..4596e163404ca5c3e206e6e6533f647c8051545b 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 315d04093b134df806997b68f18c1d9e0b82ae3a..0ea70107f71785e347a0197d8007ad5bd1b5d82a 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/blcr.nix b/nixos/modules/programs/blcr.nix
deleted file mode 100644
index 804e1d01f12b86a4ecfdd4cffed1db19bbcc73f7..0000000000000000000000000000000000000000
--- 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 66eb83482664999581336c29e7ae30dbe11da049..38bdabb4fa81267c758a5f856e2fe7dd4a08ae79 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 bcbc994efe9b316b40c20ea74249a8ee22ea9759..2d262d9065796c374d57c7beb5ea799c4f9bb27b 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 e19935b77cafbfbc75028210c056ad7272445cde..75b3e707d576d4119a084f9d3f7a561d9b97b188 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 1fdec4c04f682e97a09922c7c339f8e800602a90..75b710c1584fc31d4d5c1e835e20e9319a4e0070 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 c08b0a85374cdeb8e1b85efdb8f90f9a88ec81f1..b229d2a2c0db0b0bd8fe3c07416f081ff12548fa 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 8ec4169207db51282139e0adc3cbfbb20e56b4cc..7eaf79d864e79251e048c716e8a572a73dd32dde 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 b7f7b91b5fbe265b31e02ca4ceabdf8655dd9d52..0000000000000000000000000000000000000000
--- 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 733b8f7636fd22426e9ed45d8aac058a3375b641..80198990ed110c687455293a0df475f7b1d2f4e3 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 b4f03151cdc1a4184ed2f5cb0c9a5d9d1e7ef50e..f92d09a7ef44d9f620585ba3dc7f0d1a96f67a8c 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 77a1a0da79938ea63eeb091e63649b3afff0bdd1..7d74231e956b7ac4bddafbe46ba8a1be1a2d4311 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 7184e5d9b9a826a5a4ccc67f5e442517880a044f..c84d26a7921ed05f9cc9f6103a04cc7ae4830bac 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 d1303f90ad8d56c5f9a98b4f67efe9c875786df9..7d8cf55b827ad7ab9d113b12e701a0dbadbbcb95 100644
--- a/nixos/modules/rename.nix
+++ b/nixos/modules/rename.nix
@@ -66,6 +66,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 +135,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 +234,7 @@ 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.")
# ZSH
(mkRenamedOptionModule [ "programs" "zsh" "enableSyntaxHighlighting" ] [ "programs" "zsh" "syntaxHighlighting" "enable" ])
@@ -273,19 +276,8 @@ 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")
# Redis
(mkRemovedOptionModule [ "services" "redis" "user" ] "The redis module now is hardcoded to the redis user.")
@@ -300,5 +292,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 b321c04e574c49b15362433f8a524e5d1d48eb3a..9563029f030a09340077483924e49a8ebb243dc9 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 9c7ddc2f4eea27aaebdd48bce8158ec8a71f41d7..11227354ad3bd39bd8624be54cc53758a249ff19 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 8b131c54a2a5e29e8c99ac738f901813d2ac7af9..75f58462d13d32fba2762afe9bd2e312dd202673 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 39112c3970d5a055b0674282639c34040ee5c376..da81be3f23e85a6287afb7905fd12f51b045923d 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 302b94de1965cdfff13a46c6f35e37b14632752f..697732426ccfbefc2a02198fff8d6be96de843df 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 aa3351f401afb0b336a74b8058f32b5e05bbcfdd..ceff366d0bbb2d91b5a842e07506cf51416af33f 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 0df8f9688d2540683536f10892b73f83f07622f2..7932d094197b7672b048786b08342fa1dcfb7496 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 e3556b2559c28605b1373f6f85fb5022abe3db45..4b74e753279551fd6612f729505a00e0c9ddfe7c 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 1884f3536a97bb89398f444e532235919e1639ca..e3a8d1f79934b7e847719e1be6b6f38b5b8d83ad 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 2ad116a7872ade8234b6993e82d6d6255b0ec3f0..10d42325a6b16160852d40e7c45944cc98b92dbf 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 d9a37037992e1fa7cc9733581477fdcda7f48885..3d9869d534313761cec61a01dbf088d16363245a 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 f317078ddda22ae3127165163df4eef13c6fe491..203631a577f0d3078a5665b041bd8772e2bb8559 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 47e588de3c9337becd214dc763ae90cc2d61ac9b..f12e866930dabf2ca45338fd358ae3399f84f820 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 d799e638fc94a932d19959332ad15c56477238a4..548ffed1ddb5884e8bbbaf214b28d69e4ce0b82c 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 250da4c807ec04cd0be4f81b7aa7c1714756361d..62d893dfefc6ec0962ad9f72a1c133b1a0638ae6 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 bd4bf04ea833a9d211d13503c37b18bc1eaadcde..3943c908840c0c1ff00670fb369ee3b14ffcdf3c 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 d1a1383e45b0b840ee81bafc63ccd792364ba886..c70d999ca96d9cb152ec014be190c113aec5227e 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 12cc3d2b1ccced89fef110f844c93fbfd68e871c..32f361454bc18434845a5c70398cc7a5402b6bf9 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 500acb48562030fa0991081cf322e66a9a420a0a..30c5550f71c5a99ee8195b2cc93f69653696258e 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 ec6a36413fe7b3afa7ed13e271b25f47668c5c10..0ec906713885d12d1496506135fb85ec757f4761 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 84d2c8674f4ebf35eae53e7b00f09ec73210339f..d1dfdb41bf402fdcf5b33f51723ca3a62b40791a 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 df74cfc9a26bf2e69513ed454982fd085e3ad7e2..39192d059485b04cb6f8ac25a28e00c248667924 100644
--- a/nixos/modules/services/databases/mysql.nix
+++ b/nixos/modules/services/databases/mysql.nix
@@ -272,8 +272,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
@@ -381,6 +386,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 7bba4dacddcca73e952570958aa96bfea1505c8f..3bedfe96a1805340b872ab15c1efe4f03520729b 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 9c389d80a6dfef109929335a526e108f672dab41..95128a641d945f99a0babe05766c3696d9f6d29b 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 4828e594b3283200f9dae1c8e2d30b1ce0d5dc57..f18fbaf5b062a1d1dd1ffec706928d101190af85 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 6007dddf50c0c31310a268ddc96b0d25cc2ea2a2..542b2ead410407b65759f5ae629fe728b9cff9ed 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";
- };
-
- users.groups.geoclue = {};
+ # 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";
+ };
- systemd.tmpfiles.rules = [
- "d /var/lib/geoclue 0755 geoclue geoclue"
- ];
+ groups.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 0000000000000000000000000000000000000000..d715d52c2d067807dafc2537b395f6b88300f380
--- /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 7f7adcf26acf4af41d142103349269aa80baaab7..2f83fd653bdee97cd329af445df6308d8f7b22fc 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 ];
-
- services.udev.packages = [ cfg.package ];
+ environment.systemPackages = [
+ pkgs.gnome3.gnome-settings-daemon
+ ];
+
+ 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 8a80be266b20888158054709f00b7637a49320fb..09c68c587b43d40903021f28486547a31524a27b 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/development/lorri.nix b/nixos/modules/services/development/lorri.nix
new file mode 100644
index 0000000000000000000000000000000000000000..68264ee869d19b8638083234c28f86e1027e53c5
--- /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 ba7ec967919e7f553ac6af31be24130862977c8d..d791b387665fcf08b8927bda96055535ddbbd00c 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 9cc8d421270ea26dd808d9551f453b9419bf2397..be36676169427a0bf508aae32a41f52c13059466 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 0000000000000000000000000000000000000000..b7d1aea6b8d2a573c56a36ee83dcd17a5ae1a5f9
--- /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/openarena-server +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 0000000000000000000000000000000000000000..bb4541a784dae61e5ceb182cdd007d9f4d361112
--- /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/trezord.nix b/nixos/modules/services/hardware/trezord.nix
index 62824ed7350a77fc9bfea5e44e8ef6c0f5c322fa..c517e9fbb2bdac55c4eadb8f8dd5220526a3f78c 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 ed8703be921cbba48bce8f3f36969c5c3d9aaa05..e898f32605856063412faf6c7d21adfdd60c7e63 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 93ced0b9f04d42689ce6b9e9fcd6f517540b5796..39bbcaf4627ca77d7750fc7ecb28e8e49d73606b 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 6e246f70f515fa0b5c4e9667740cd479c6482ce2..8a6cde51b06ffcb62a0451099fc7778966e6f37a 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 cdbb776454b658620a7b18e66f738a2e9190a630..3fd06812c6751bb263ddfd306bd4ea97ee3c07ca 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 fa8d41e918d3d093b69e771ed46a9be8fce706e7..f5b4508b335c9c6bb63536fd0cba18a51ee446c9 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
@@ -54,6 +54,7 @@ in
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}";
+ 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 b78f4c8e0e663838d812d5ce19e5f6320b8b27a5..0f998c6d0ea63f7e2d193a0ccd3603a1c7957c11 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 11dd5cb48db04154a6f442cf1b0fa4b858d77764..e917209f3d1f500274028c37cec4dea918594abf 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 a870550ba50b30a25677475399ab2da0fa42c7bd..1fabe2da45c5060c86b83033318b11aaeeb3ef37 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 d5fd76da970baf62e1fed0b6ae3dc9c6f2e83edb..df438a0c69d197cc212088e81a5334e300fe46e9 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/rspamd.nix b/nixos/modules/services/mail/rspamd.nix
index 89aa9d17ff7f65c9ac43b1fca099a25fd0d1943a..4db35d9e89ab95ee30f4f7aadb63e9978c7c2dbd 100644
--- a/nixos/modules/services/mail/rspamd.nix
+++ b/nixos/modules/services/mail/rspamd.nix
@@ -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 df454abc826719ff0b5a6029078fe891afe68bfb..c1e5964c4536d8e5149e66c7b487b7fd174c49d5 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 919d3b2f6e6406e1bcc6160bac39ffed7e549b59..c296e048cea41507576276b842167777eeb1aa15 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/docker-registry.nix b/nixos/modules/services/misc/docker-registry.nix
index c87607d2666af959d27144891c5197c201fda94c..89bac4f47d73659766b1d6112e31fcdcc8778168 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 9402d5cd801c0c0d3ca723373f2c34383408a3d2..33a6fb15264165e105daacaf9af861b1fdd52b3b 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 256adce2f02e1428253ce36bb3502924033de85d..b447ba5d438d2857072524b60c0107c4d0e589f5 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 59c1c104b9b92e76fc0c0e7da7736ca12a31c784..c8c59fb256e86a2b8f9b90f93726b808fe63fbc8 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 caef4ad4ea80cf7625c02f06032cf49c5f62ab6b..07ea9c4584371b9538cff8275700dea344949658 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,89 +764,109 @@ 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=
+ serviceConfig = {
+ Type = "simple";
+ User = cfg.user;
+ Group = cfg.group;
+ TimeoutSec = "infinity";
+ Restart = "on-failure";
+ WorkingDirectory = "${cfg.packages.gitlab}/share/gitlab";
+ ExecStartPre = let
+ preStartFullPrivileges = ''
+ shopt -s dotglob nullglob
+ set -eu
- ${pkgs.openssl}/bin/openssl rand -hex 32 > ${cfg.statePath}/gitlab_shell_secret
+ chown --no-dereference '${cfg.user}':'${cfg.group}' '${cfg.statePath}'/*
+ chown --no-dereference '${cfg.user}':'${cfg.group}' '${cfg.statePath}'/config/*
+ '';
+ preStart = ''
+ set -eu
- ${if cfg.databasePasswordFile != null then ''
- export db_password="$(<'${cfg.databasePasswordFile}')"
+ 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
- if [[ -z "$db_password" ]]; then
- >&2 echo "Database password was an empty string!"
- exit 1
- fi
+ ${cfg.packages.gitlab-shell}/bin/install
- ${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
+ ${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'
+ ''}
+ ''}
- 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'
- )
+ (
+ umask u=rwx,g=,o=
- initial_root_password="$(<'${cfg.initialRootPasswordFile}')"
- ${gitlab-rake}/bin/gitlab-rake gitlab:db:configure GITLAB_ROOT_PASSWORD="$initial_root_password" \
- GITLAB_ROOT_EMAIL='${cfg.initialRootEmail}'
+ ${pkgs.openssl}/bin/openssl rand -hex 32 > ${cfg.statePath}/gitlab_shell_secret
- # We remove potentially broken links to old gitlab-shell versions
- rm -Rf ${cfg.statePath}/repositories/**/*.git/hooks
+ if [[ -h '${cfg.statePath}/config/database.yml' ]]; then
+ rm '${cfg.statePath}/config/database.yml'
+ fi
- ${pkgs.git}/bin/git config --global core.autocrlf "input"
- '';
+ ${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
- serviceConfig = {
- Type = "simple";
- User = cfg.user;
- Group = cfg.group;
- TimeoutSec = "infinity";
- Restart = "on-failure";
- WorkingDirectory = "${cfg.packages.gitlab}/share/gitlab";
+ 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 7653b415bf09452d12cf5da9391b95c113e8acc8..f4a9c72b1545ebd1faccd44e9aca8bd4c3b981d4 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 f1b3512467400b6c6e47ab68ef7f2bba3aaf5845..74702c97f551fae2591463543b7fc9bb4ea6e299 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 55559206568d94186d9075042fd27aaf3b29b225..6ecdfb57dc3582aaafb000cca6dd48eb50f78eaa 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 40755c16217114e5f4e09b21c5879f26054bbeeb..8ff1adadcf2390cd572e333a634391ac0009558b 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 018fac386163d2a426b18bb9221d7ba29a60be39..50661b873f64c03a6a1220f515b5426e101eb046 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 3826f728afd0f4c93b7559b1e00389ee7217536e..dcec4d4fc6cd3ab708ae2fc05e02bcab5fe3987d 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 416529f690e0505567b6a75199a7d771effa5fdd..e02026d5f76c7e2c60ca5c52bbfc6905bd3f68e4 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 f89f37ccd9df5c3c628f30c28704a567ccf036a4..79c347ab7e0ef9dc23118828f29ce993a41c33af 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 ab00086e591e1db5fc32d914b3daaa0eac69f73f..e2d1254602b021d674abe05839ca15574e2c6ba6 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 24b9e27ac2da5a1c0c258727a8c128647908842e..bf9a6914a48314a41114ae815936ee9ba60a5fb8 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 3bff04e7127d7933a4e1fbd8c07892483a09041f..d7f7324580c036be4a5a386857cedca33fb4b04a 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 6a4c678eb21f3029b7c36d8d0457ca48334c7e58..731ac743b7c631b8e6ba6ec192fe0b0a64e685e2 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 0000000000000000000000000000000000000000..2d3fe2f7976878c6da7f1703371be1ab3af233ff
--- /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 b90579bb70c76591cfb58f73c6e755b5045ebe4b..fe19ed5619542a0b66047a45bd6c6ad8f5ee8f16 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 bf1084eecc3accc3a40c01592515f60f86b55a72..0f8bc2471e33501037619ad86ad04460c0a369c4 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 64cb6c3da1e572c9af8777d0774bf12bb81081ad..f7874af3df29c5f60885e99b2fe97561440a1c5d 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 463b1b882acf585f3f66ce9e7990d7a9348481a6..3ffde8e9bce225bf6cb76fdd8f6025e7f19e965f 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/prometheus/exporters.nix b/nixos/modules/services/monitoring/prometheus/exporters.nix
index b69310c34ff512df8b7a328fad050c90907c6db2..35b513bac571e4d4e39a8825461f6ee840eca051 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 ca4366121e1251a7805d6fa6ef52a01ef03699b8..8a90afa998423b65e3db1ace5255509687ff8821 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 0000000000000000000000000000000000000000..5f9a52053f79eabb29d732252eb5617d63fdb578
--- /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 554377df37ba348ada9b719d02e75a901dcf30b4..ba852fea4336da19b2b02fd28da925964467704a 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 0000000000000000000000000000000000000000..1f02ae2072499dcbeb566e3ee656e10e31c839d8
--- /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 8ae2c927b58c5f1ad28875376304e6c3f2658ff8..374f83a2939d01527cfbe0c390c082b7af49b8e0 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 215cd43fd86440bb825622497ce37a787380a457..52dab28cf72ff2d1bda50b677a27b895f0123a86 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 856b9432892b5b58af353e40de98137880860609..b3383ed628b2952196a2959dfceb18a464352bc5 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 4b4049ed360e0f045157496464a0949309590fa0..e9f1590760a46ba0c8d4483e57646cff200f66ad 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/ceph.nix b/nixos/modules/services/network-filesystems/ceph.nix
index 656a2d21b8687fb81807a998a5bd35cad7d588ef..543a7b25d5d6173939ddabc520559b5807185a21 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 0000000000000000000000000000000000000000..b69d9e713c3dc834d6bed6243aa204648e644bc5
--- /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 0000000000000000000000000000000000000000..74ebdc13402459db25aed1ea25b12f4903252c9e
--- /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 055508a32244d9c8f9cdd3ad26e0173a49eb93f1..0315c1c71ee3a6a4b538ef4cd501b64b00bbb95d 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 (
@@ -61,6 +56,7 @@ let
Type = "notify";
NotifyAccess = "all"; #may not do anything...
};
+ unitConfig.RequiresMountsFor = "/var/lib/samba";
restartTriggers = [ configFile ];
};
@@ -227,8 +223,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 +232,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/bitcoind.nix b/nixos/modules/services/networking/bitcoind.nix
index 1439d739da9d848d433c1662e9510269e7162cc1..90f1291c01985e0b987eed4b68bf5097b37e5ab1 100644
--- a/nixos/modules/services/networking/bitcoind.nix
+++ b/nixos/modules/services/networking/bitcoind.nix
@@ -187,6 +187,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/dnscache.nix b/nixos/modules/services/networking/dnscache.nix
index 5051fc916d9699ab8a7992e613d53fd0e769863f..d123bca9321931485be589eb48f346c8acb3b923 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 bf13d5c6f5fec6f1607320d103d6fded6e2db94a..79f9e1a430837bec93d750eff79f171f23823b27 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 12eee136e6394b5b4c1b5603487a2cf1bb9e3ff3..8249da69bc1a800b348b546f7b9bc4c763911a48 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/firewall.nix b/nixos/modules/services/networking/firewall.nix
index 5b3aa19af3bb7715caa3e7d54cc357bc09d48268..5919962837a218f3cd27417ad41ecb017533d1d4 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 0000000000000000000000000000000000000000..afbd7ea27c65c82c513b1e1fb3b463e01716eca2
--- /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 20e57e4626efa5e64ef9e3064fb022d33d7d620e..4f60300f5ff41b27757c05cc8df1198882c55941 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 0438d0bf8d86061e0c627741b5cae849b546b036..aff71e5e97daff7295f749dc4984e84704918cce 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 85e804d6cf25ed07642207a757be9aa9b0fc040b..0000000000000000000000000000000000000000
--- 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 1fd63348c16c187cd00aca85688dd18cc7f0c880..682eaa6eb297bf5ace9c531e07ea6ad0e2febbb6 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 0947471adbc943d66d14fdaf74141a70f0ee0857..3ddea3c9757b30acf90eaa69eacc8b355f09f582 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 1b3084fe9abbc81d2c81c91f2bee65c610f23ca2..e3a6444c11635f8077b0a209c5a63cbeb58c5a7d 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 02e89f441b3455cd41ac13dec9c42cf876736201..a3d61922e578593179614f0b4893da871978b23e 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 89d8590093dd5a3a12bf0d438bc20f5392ca1a64..5681bda51cb44e50df98d99490c55b832e05fe42 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 2061c02fffbdbe8026dddae074d5b7581f4ff25d..90d1032c41b4384184da638a79ffd3d6577d8de8 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 != {};
-
- # /var/lib/misc is for dnsmasq.leases.
- stateDirs = "/var/lib/NetworkManager /var/lib/dhclient /var/lib/misc";
+ basePackages = with pkgs; [
+ crda
+ modemmanager
+ networkmanager
+ networkmanager-fortisslvpn
+ networkmanager-iodine
+ networkmanager-l2tp
+ networkmanager-openconnect
+ networkmanager-openvpn
+ networkmanager-vpnc
+ ] ++ optional (!delegateWireless && !enableIwd) wpa_supplicant;
+
+ 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;
+ })
- security.polkit.extraConfig = polkitConf;
+ (mkIf cfg.enableStrongSwan {
+ networkmanager.packages = [ pkgs.networkmanager_strongswan ];
+ })
+
+ (mkIf enableIwd {
+ wireless.iwd.enable = true;
+ })
+ ];
- networking.networkmanager.packages =
- mkIf cfg.enableStrongSwan [ pkgs.networkmanager_strongswan ];
+ security.polkit.extraConfig = polkitConf;
- 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 d6e1906e388164ddd3ef852ec2806854298916e3..881a2670f5db0c382651ea4c66e3000464d2f15f 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 77f7025770005342061b6681ce4d8cc0ea971524..c74476c7a155837deebf5ceaf2de40373b598a47 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 588d1c6edb0732979d2a9ce3cf5699121e39035e..1197c84f0459f3106a9e173acbfaeb6c64091f6d 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 f3920aa8064603eb2eb0235ecbb3acbbb5f586aa..471d15b1687bd856fed18b398b951b93d6a91a85 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 821a0258f4bece79ca3adf769c7bade2f201045b..dbb2e3b4c40923fe936e2a15a5157a17ba3a90c7 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 0000000000000000000000000000000000000000..e96c27bd84b4a3fc45b1382c13839fdb959a4cc3
--- /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 1ae063aa6bb52d3b11e48ee73b8a295eaa5e23fa..7a503e7116658d16a326c8cdf819984148507a4f 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 d4d0594a9cdd3e1bed4c15eb751b5cbfe21f7418..b48b0b3a9d6bb71930f50c437476c2b875bc5408 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 cbc899f2b4d7354472dd6f042cc0740ec4920f02..ab51bba2f6acf7245a19a9ff65e948a45c03aa20 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/thelounge.nix b/nixos/modules/services/networking/thelounge.nix
index b1d23372955ed9d1dcfff2e505f1e71421b99988..875d8f6616978c1eb603feeba3064e29b7cdb895 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 7d5db71601ef572675c4301c60a594adba7de6b7..79507b2ebcddbc87d3d3c8f97c27b99c2ee1f2d9 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 7daacba185fe738d5131c59cf30a81562975f63f..9e97faeebc1e8728fa6acf12848c0d426c09778d 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 0000000000000000000000000000000000000000..8760dd5a93827d8578b1d18a315bfba4d61abe78
--- /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 67be60da567398f75251408a84ba95b3b1b92cad..90093d9a78d9e0ac8bf4400391e3b16e99b4e4c2 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 4176da2c8cb8fd8a8a21c25bfaa0e143cefedf03..980961225c9e0944064b5a0569446f117327bfe2 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 63e59e7c8fac3df7983cd7900fc40dfc7b2910b7..294c0d70edeacd92d22e421b8369ebc2cdec04ef 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 0000000000000000000000000000000000000000..0da50ccc344b0906013b0c1c3846581ffe098e28
--- /dev/null
+++ b/nixos/modules/services/networking/yggdrasil.nix
@@ -0,0 +1,193 @@
+{ 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";
+ }
+ ];
+
+ environment.etc."yggdrasil.conf" = {
+ enable = true;
+ mode = "symlink";
+ source = "/run/yggdrasil/yggdrasil.conf";
+ };
+
+ 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 /etc/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 f4988a90268502210dc07cde6d68d3d064987c44..f354a9d42c79717717755eabbcc9136e314401f3 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;
-
- 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;
+ dataDir = "/var/lib/zeronet";
+ configFile = pkgs.writeText "zeronet.conf" (generators.toINI {} (recursiveUpdate defaultSettings cfg.settings));
+
+ 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 3fcae611dc793079ce8634f6f3c4263c6317ac77..1071c05d514effdd5cec022eee6f29142e01349d 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 0961a67770e1b72de15b964312ed5f03e305592a..2e0d20c64b23a0f30cd59fa90de73821baeda0ae 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 80fd65891ff8fa8a04738eab322d0425053846c7..d1817db0755501081ae3038bc4cf9045111f385b 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 5662ebc61d20c9c4b603436106c597a722e67391..8ece1ca19013024ca856da3b7841309b649ca7e4 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 bb03f7fc9e43cb95fb838fb85e390b5936d6a427..2abb9ec32acaa5db9b38827d037f84b7eb72de04 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 d5962ba9af9009a3b821593e4b1be95c97be5da3..b0ab8fadcbec9a8c442dc5185d5c3fcd599ada82 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 02fa2ac0750a5739bb4b50a33c1feb9700a21905..a7acdb78b3164a8db927594ea005ab439f3fb619 100644
--- a/nixos/modules/services/torrent/magnetico.nix
+++ b/nixos/modules/services/torrent/magnetico.nix
@@ -171,6 +171,7 @@ in {
users.users.magnetico = {
description = "Magnetico daemons user";
+ isSystemUser = true;
};
systemd.services.magneticod = {
diff --git a/nixos/modules/services/web-apps/codimd.nix b/nixos/modules/services/web-apps/codimd.nix
index 7ae7cd9c52d8cf09e2b9be7111080805f0ce11dc..5f56f8ed5a09175499c1986d0aaf4215fe5f780c 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 37359869cb64623f88df9c79070e1becd15e4e67..1b90299aa23c83f366842e4301c5e7ad2d0e56e1 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 7914e5cc0ee19b17ddeeb8d872a0c18263eee764..a9a30b409220f036b2813080e575bf1e42af49d4 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 0000000000000000000000000000000000000000..03e01f46a94413d77483132e4598d405e8d6396b
--- /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 68b57a9b90ddfc8b0854caf2df6dfdceb90ea52c..bd524524130d61f3c264fedef071d93bdf26d1a9 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 8485492c51c78b373515795b442231e0a3dd1176..79cece551d34c6abc494d8ae0118f4c8b93a65bc 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 d9f840408cc82f8b221cbf26dc2bc60bdcb1a4d0..352cc4c647bce887ab1b9ed5e898389f4b0c5bf8 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 ec2568bf952d3670eaf1c23cbf9dba331bb11c00..43edc04e1a49241f98d3b6a854616814e46a548d 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 0000000000000000000000000000000000000000..0fee64be0bb2ffd2b505891eba40e193856a8aed
--- /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 7f71b86a6fe62230cd5f3f390443ffd68a001c08..ac59f9e0012a8d70004a3e14cefa7026f318d2cc 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 5f5469e485077bf396ad7d450eee550d120952b8..b9186a1dc07f74372aaf9ed9455e515274550f7c 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 = {
@@ -423,7 +436,7 @@ in {
settings = mapAttrs (name: mkDefault) {
"listen.owner" = "nginx";
"listen.group" = "nginx";
- };
+ } // cfg.poolSettings;
extraConfig = cfg.poolConfig;
};
};
@@ -454,7 +467,7 @@ in {
};
"/" = {
priority = 200;
- extraConfig = "rewrite ^ /index.php$request_uri;";
+ extraConfig = "rewrite ^ /index.php;";
};
"~ ^/store-apps" = {
priority = 201;
@@ -481,6 +494,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 +532,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 3af97e146d0aa72eaf098d8801aeb12d64dfeb7a..d4d507362c97b7ff1b3938d6f6d451bb5d58d36d 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 f220669c9108b53ea3ed103cc747575a5fa56b3c..2c2f36ac598ab6356959c711032e81abfd19e0b8 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 0000000000000000000000000000000000000000..1817a2039352dcbb980094076677c34e7ef2e26a
--- /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 0000000000000000000000000000000000000000..207fb857438a4f70f12d37bf3d52681f839c5221
--- /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 abe4748591e963f591e2a490c9ee19068541f9e9..b92e344989491762f8c09172f14007eda0c1061d 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 e5c0bff2168ae31e657228269e7a856011b36e39..37bdbb0e3b42b76d3902a9946c36603f62f8e2ff 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 8847543705875b0875afc207a63e10c4aa495945..f1370c2854b8dbffee61fa186186d0465fd39db5 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 dac243b20e97ae3ac20e3a89d8a0a246b007b6dc..09538726b7cd82be0fe2e09020e805730083ca5a 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 098160ee36929c169f7ef8716054090941bf464a..f5a6051b4b5f50f4f9659b936bb4b777d743153f 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 9d747549c274412acb87b8b8032e2c1886d4e605..c36207d54607fef4052b9d6762a914d1cfc33c76 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 a6c4cbea12259268a7cb773bb7c43114d81d6ab8..1812f225b74d7b6e95d33f2a168d07d519fde673 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 b94b338fd4a60d0d5fa422d857f7f8bc907b2b80..eb90dae94dfe6dc316b62d7fc04768b0fd183d34 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/phpfpm/default.nix b/nixos/modules/services/web-servers/phpfpm/default.nix
index 4ab7e3f0c0a9cad51c720e8748cb6c41f73fd348..095de64dfb1471124c55e448f17bc9990c15f512 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;
diff --git a/nixos/modules/services/web-servers/traefik.nix b/nixos/modules/services/web-servers/traefik.nix
index 8de7df0d446c9d1c0b14ef052c427178a38360d4..5b0fc467ea4694d9548284c4d69d3dccc4c9c74c 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 0000000000000000000000000000000000000000..01a01d97a234f630b33380bb3bdc05bfc4b4a836
--- /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 a4a9d370d6448b277a016b3f83b479a88de9ba48..32f6d475b34ef44d6a8d6295082eba310f587d33 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 63f967185c2d221d802f51e536fb08eb1d5b0e35..01fe3d12917a7b78a4f0833d17f1d13f4f847212 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/enlightenment.nix b/nixos/modules/services/x11/desktop-managers/enlightenment.nix
index 9914b6687090033528d0cadd4928c7ee0b0a42ad..3745069f6eaf987837d4cadd873f23f495c73d39 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 71df4e8f0a4d74a7f738979ec3021e19182862de..0135ac19cbf790568c8f69bfcddb1c47e081bd50 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
@@ -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 d7a871c9c704324f5aa3c901970d766dd6cab4b3..fe63f36cf96a21d2c4fcc3aa5f56350e8987ab26 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 e313a194c34568ec36b4d95cfb5deeb65a984f5b..80dab135ee2639a01c2989d687fb4d98887bf42e 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.sessionVariables.GNOME_SESSION_DEBUG = optionalString cfg.debug "1";
- environment.variables.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 b10755df4dc26a1c51f67a74a6b61979c56c82c3..b48ca3fad939088d23a349f388e81ed051736a94 100644
--- a/nixos/modules/services/x11/desktop-managers/plasma5.nix
+++ b/nixos/modules/services/x11/desktop-managers/plasma5.nix
@@ -183,7 +183,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 +232,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 e3249aef50c794519da8adc45598ff1ea5aa86d8..6965c6d26467a22329df9e61540640ddcbfe81a5 100644
--- a/nixos/modules/services/x11/desktop-managers/xfce.nix
+++ b/nixos/modules/services/x11/desktop-managers/xfce.nix
@@ -107,12 +107,6 @@ in
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} &
waitPID=$!
'';
diff --git a/nixos/modules/services/x11/desktop-managers/xfce4-14.nix b/nixos/modules/services/x11/desktop-managers/xfce4-14.nix
index 57d1268d655a3ea37cc4d0728df9228e0b842cc0..ffc99172e7959bb42f7289e14eea15c7ab8fab89 100644
--- a/nixos/modules/services/x11/desktop-managers/xfce4-14.nix
+++ b/nixos/modules/services/x11/desktop-managers/xfce4-14.nix
@@ -53,6 +53,7 @@ in
glib # for gsettings
gtk3.out # gtk-update-icon-cache
+ gnome3.gnome-themes-extra
gnome3.adwaita-icon-theme
hicolor-icon-theme
tango-icon-theme
@@ -69,16 +70,17 @@ in
exo
garcon
- gtk-xfce-engine
libxfce4ui
xfconf
mousepad
+ parole
ristretto
xfce4-appfinder
xfce4-screenshooter
xfce4-session
xfce4-settings
+ xfce4-taskmanager
xfce4-terminal
# TODO: resync patch for plugins
@@ -86,12 +88,20 @@ in
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
+ ++ 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
];
@@ -102,24 +112,10 @@ in
"/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=$!
'';
diff --git a/nixos/modules/services/x11/desktop-managers/xterm.nix b/nixos/modules/services/x11/desktop-managers/xterm.nix
index 93987bd1dfc517a8f729075847bdb7261a1dae19..f76db278a927ddce842a865796394b8ccf66ba3a 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 bf6b048654b397c0baa872c6b44854a9ec17d6ad..b66856fd4d44e9d4986b51307571e37a73a402f1 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 3f1669d08516f756db8956076a6009add2ed88e8..e5990aec4b9cf7e977662a353382aa21f54dcf64 100644
--- a/nixos/modules/services/x11/display-managers/gdm.nix
+++ b/nixos/modules/services/x11/display-managers/gdm.nix
@@ -42,10 +42,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 +139,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 +150,12 @@ 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
'';
};
@@ -164,6 +165,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 +185,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 +277,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 de128809ce307905da9624ac6ef4d9e97a1571f0..129df139c61abdc1b5850d68a75a3ad5c03a69a1 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 5b280b02423343cbd959642a699fa39fe5dfab7e..de932e6e840ae39b4ca5eed503959fc64690604b 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 ba8151a60f201f435d83018d05d9bdbb727ba77f..fa9445af32e70b6e9ce347cf4a75bb045211709f 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 bfba174144a1712217cab9d01d0f9b7bc94ef818..29cb6ccbc06bdc7b1e8dbbacfed33818c412a908 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 c26a5b61535357ef98907cec6264386b47518e6f..cf4c05acbccd29541144b70e81fd7b13d1ae8d27 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 c6cb281c2cc2e5434ef602d165cb261e2c2aff44..899dd8665a25dd7bcaad95b1c450f3a6c86b8f53 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/slim.nix b/nixos/modules/services/x11/display-managers/slim.nix
index 124660a43f076050a6c273228105ce613a33606d..4b0948a5b7a5407e127abb40d3bf82b617d8796b 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 95353e92098e41340acf9d454f468a8e30c10aa0..5ac824c5e4199668ec43b6cafd51c78c1b2cb28b 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 0000000000000000000000000000000000000000..a9f5640905aaa61787046fe6a9569c9d1f23023c
--- /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 bd289976532bdc2ebbed720d34998a800ccfaa87..4a25232383d3af2e43f1a549071efe4203cfaf14 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
'';
};
diff --git a/nixos/modules/services/x11/redshift.nix b/nixos/modules/services/x11/redshift.nix
index 6ddb4c83764a2016de0fd453aabfd5d20602e9f9..21b0b33553acc02f5183c44b35ac1aedfb52e316 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 0000000000000000000000000000000000000000..03375a226bb6be6242304454aa4ca03cd1a2687c
--- /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 2a1f22fa9a4cd448544ed90c21c15f6faeab7b91..c17f3830d0e9a0033a7d0b74385e7d77f420a036 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 0e1314122767101e2472006d405d7c2cc7a0ad4d..30c59b88f82f901dd6cb9d6205981012d2e10e66 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 a8406544a72f57dab2400439e0a23eab963e259c..70f01dbdbf5972b910a832f729ff4085f182a381 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 74c150a848d13f9812a788e330514ed1675fe0f2..ddfd1af4a3190cacfabe051fc3b2b7ee6c43e444 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 8ff00fa11dc75a6500379e2a415d20328ba3abba..641cf9faadc9794414a0374bc743aa89e6023e7d 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 50dbf2f83651ba68ae0d323d664959540b93c4a7..8a309f3bc5fe130d5d1803b44efd63f8fbf301a9 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 0fb07de10c04416a8106d70b80e855166a79e8c8..c8b5bf2e61af88f8d78b4e94cf02385a52dd5876 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 1c8354e52696d746530fc96dded31a829126503d..337afe9ef628d5b2708c9c898a1118fc3802b567 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 9d4f8a93d282c5eca45dab74b4c30aa0fcfc841f..1dc397e521b4e1eafb8b98b0ebc5d89fec9ea7c6 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 f2060e21509c9f6ccd605c30254b14844a89bff4..85a106527fe085245b0b41a0ad000dae7671d108 100644
--- a/nixos/modules/system/boot/networkd.nix
+++ b/nixos/modules/system/boot/networkd.nix
@@ -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"])
diff --git a/nixos/modules/system/boot/plymouth.nix b/nixos/modules/system/boot/plymouth.nix
index e4223bae7d32f9b8ddc49e78ff8f4d213a9609a4..23fce22366d8e0736e1e506b43dfa6bb766d4fbb 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 b817a45deba35e207e1a98a75e12cfcd3657d144..f520bf54ad1bd743c38bdb7b6ce3e89874b0634d 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 03daafa1ce4fbf1d8819d8f7f32b24f65fdc7799..d1de7920df987cdbd549dfcf89fcccb3bb31fd37 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 db6e06b41072fd6089607bbe5327392222a598b9..3ddd45b1348201d3252605df0b01214891fe7249 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 c1f2c98afcd8cbfebe5aa0c5995faa42c7319177..bee21f1a8f36321fa745c4c52d633f28fe947c41 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 2287a82418fec40e141f61c20ed2a3db8dc118e9..33b350902a1a373b839dcf3c5f145f54497d605f 100644
--- a/nixos/modules/system/boot/systemd.nix
+++ b/nixos/modules/system/boot/systemd.nix
@@ -546,6 +546,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 +868,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 +993,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/tasks/auto-upgrade.nix b/nixos/modules/tasks/auto-upgrade.nix
index 18753ae0c1ae101cec9a7035d185905aab4a0686..7fe066991918792a74b11d5cf8c53373537d1931 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 2ed8c5aa2927dd3f77b286d5010a890e734df5b4..fe11917c609cc56aae71e0cbe37ea8d08bc6a810 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 34e27066715152c8d207c67d44208f34b0b6ad63..9ffa1089ee6974a5c3e5922b762ec399046d8955 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 5bf7b0d227f02346cbec2ac6bf69630bd05dc69e..31e2ed1cd1eaed569b76a73c97e94af92ce4b028 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/virtualisation/amazon-image.nix b/nixos/modules/virtualisation/amazon-image.nix
index aadfc5add35073ab3acabb49dc634a5d0b3a5384..20d48add71293e7bddf1b29eed214e963383fa59 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 604fb8a7593260810dc40d631dd695b56552c22f..f7a37d8c9f3b42129975bfe832d937200f0edb8a 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 9c9f8fc0c215423e4653e22a0bca026c70053449..691ee2c136ecbec044061866b04c4be12025abfb 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 0000000000000000000000000000000000000000..14a435f6c8bb90d93cefeb77d7d6f2f86587ebfc
--- /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/ec2-amis.nix b/nixos/modules/virtualisation/ec2-amis.nix
index f640bb21b1331304549dce7afb11167e5f13002c..3b4e55d39d7ba723dbe78346aeaf0fbf98c01941 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 16b79d8691936962624c1cf98126bafcb4e2d622..9bdea78296f269fead518ac432d4beb5489fecd5 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/qemu-vm.nix b/nixos/modules/virtualisation/qemu-vm.nix
index ed3431554be452d5566e711767cd3d7ead50f2fb..e313d2b411bb4a63b2905f146c93edd661c5f6e7 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
diff --git a/nixos/modules/virtualisation/virtualbox-host.nix b/nixos/modules/virtualisation/virtualbox-host.nix
index 6081d4153a6c0be965b8b2b4f603e6e04cdb09df..ddb0a7bda4f3431c516100782ca463593fc5f1bf 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 9e2109d88b5fc3d78352ed4430f2fa17987c92ce..1bcab5cab098f18d90d1859ac3b2f0a191d1135d 100644
--- a/nixos/release-combined.nix
+++ b/nixos/release-combined.nix
@@ -133,7 +133,6 @@ 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)
diff --git a/nixos/release.nix b/nixos/release.nix
index c7c6096589096410a18c5b1c95bfedeb9d5f3c3b..f40b5fa9bd7f70aacc7848341547059eedcafb8c 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 8cfdea4a16ef6e96ae025a82f619e22ba26bdf56..6bd315ff1eaa427b9477384bb4ff84ef66516041 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");
-
- 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");
- };
+ client.start()
+ letsencrypt.start()
+ acmeStandalone.start()
- 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"');
- };
+ letsencrypt.wait_for_unit("default.target")
+ letsencrypt.wait_for_unit("pebble.service")
- 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"');
- };
+ 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")
+
+ 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 60762de76d338a965e571f94eb90255933dd87fd..a92a3ccd0d1852025bee0afa8b2a3be66bf5ed51 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -25,6 +25,7 @@ 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
@@ -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,16 @@ 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 {};
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 +158,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 +196,17 @@ 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 {};
+ orangefs = handleTest ./orangefs.nix {};
+ os-prober = handleTestOn ["x86_64-linux"] ./os-prober.nix {};
osquery = handleTest ./osquery.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 {};
@@ -269,7 +269,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 +279,15 @@ 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 fedfde233e8de3197baf09876dd349783dc905c8..1955e42be5f028758bda2390fce0cea8c2a5d56b 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 25db72799241fecfe4e2a0180889f14c954392df..c3abe5c253df65b31c2fcb375b49ec44c2870fa3 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 ada104a34de32f0899e4690d583b997c2b3da9f4..224b93862fbd1bed4aafe658fbad20e37b806670 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");
-
- # 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");
-
- # Do a backup and wait for it to start
- $machine->startJob("automysqlbackup.service");
- $machine->waitForJob("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");
+ machine.wait_for_unit("mysql.service")
+
+ 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"
+ )
+
+ with subtest("Do a backup and wait for it to start"):
+ machine.start_job("automysqlbackup.service")
+ machine.wait_for_job("automysqlbackup.service")
+
+ 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 ae4f54d5266a422af19f80769f791babcaabbdc6..fe027c14d5a89a9bfd7a1faa2f1173c17eba198f 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 0000000000000000000000000000000000000000..fafa788ba57bb081b78c27cc8c19d8f0d1fc6a37
--- /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 658676ef0ab9988d52c65ab6ec7469570cbc04eb..0541e5803225a9309bc9c9778438dfca360b18ba 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 fa2fbc2c92abce67ae080efc716caff748e52291..4f4a454fb47f92261b943636afaf2228d1a1e560 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/bind.nix b/nixos/tests/bind.nix
index 1f8c1dc7be40904fd576f26eeab4294f15641717..09917b15a8e0671aff85f898e2915792e90dca4b 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 3b1169a1b7f27a09e48f1a14b2db7c2cd1c44fd7..e5be652c711248378342be5806155acc79658408 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 b2e74bff6fcdcb2d3d58219585d43e38f8f36036..cfb2ccb8285631d887bf5c3df92f4d3227038202 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 57d8006d7ac33a0bdf364f112712747cb760b0ed..c5040f3b31fbbf0b891953dad0d7f6bb494b1b60 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 165f64b0d6dcbd409c86e7b78be782ea37e5edc3..d97471e293e836541f8f7fe01a52a5797e73988d 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;
-
- $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("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}" ]]');
- };
-
- 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");
-
- # 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 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");
-
- # 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
- };
-
+ start_all()
+
+ 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("mkdir -p ${dataDir}")
+ client.succeed("touch ${dataDir}/${excludeFile}")
+ client.succeed("echo '${keepFileData}' > ${dataDir}/${keepFile}")
+
+ 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}"
+ )
+
+ 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("{} list borg\@server:wrong".format(borg))
+
+ # TODO: Make sure that data is actually deleted
+
+ 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("{} 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 0000000000000000000000000000000000000000..fc10df0c79b549e90a38e7c97cc667832ee6685c
--- /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 e60bae4b7003382fc6d63d81c4cc7256d2b79839..60c04f14780034f346dc77579c5a6ac15345f86c 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 c55733c9be7b9d9f06fac4663ae5c1d0d52777b7..05607956a9d66a73e997cff9aae81dbf432c25c7 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 0000000000000000000000000000000000000000..ed493d6a1b3493af2b573709b9682f60531abace
--- /dev/null
+++ b/nixos/tests/ceph-multi-node.nix
@@ -0,0 +1,225 @@
+import ./make-test.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 = { ... }: ''
+ startAll;
+
+ $monA->waitForUnit("network.target");
+ $osd0->waitForUnit("network.target");
+ $osd1->waitForUnit("network.target");
+
+ # Bootstrap ceph-mon daemon
+ $monA->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 ${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->waitForUnit("ceph-mon-${cfg.monA.name}");
+ $monA->mustSucceed("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->mustSucceed(
+ "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->waitForUnit("ceph-mgr-a");
+ $monA->waitUntilSucceeds("ceph -s | grep 'quorum ${cfg.monA.name}'");
+ $monA->waitUntilSucceeds("ceph -s | grep 'mgr: ${cfg.monA.name}(active,'");
+
+ # Send the admin keyring to the OSD machines
+ $monA->mustSucceed("cp /etc/ceph/ceph.client.admin.keyring /tmp/shared");
+ $osd0->mustSucceed("cp /tmp/shared/ceph.client.admin.keyring /etc/ceph");
+ $osd1->mustSucceed("cp /tmp/shared/ceph.client.admin.keyring /etc/ceph");
+
+ # Bootstrap both OSDs
+ $osd0->mustSucceed(
+ "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->mustSucceed(
+ "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->mustSucceed(
+ "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->mustSucceed(
+ "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->waitUntilSucceeds("ceph osd stat | grep -e '2 osds: 2 up[^,]*, 2 in'");
+ $monA->waitUntilSucceeds("ceph -s | grep 'mgr: ${cfg.monA.name}(active,'");
+ $monA->waitUntilSucceeds("ceph -s | grep 'HEALTH_OK'");
+
+ $monA->mustSucceed(
+ "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->waitUntilSucceeds("ceph -s | grep '1 pools, 100 pgs'");
+ $monA->mustSucceed("ceph osd pool set multi-node-other-test size 2");
+ $monA->waitUntilSucceeds("ceph -s | grep 'HEALTH_OK'");
+ $monA->waitUntilSucceeds("ceph -s | grep '100 active+clean'");
+ $monA->mustFail(
+ "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->waitUntilSucceeds("ceph -s | grep 'quorum ${cfg.monA.name}'");
+ $monA->waitUntilSucceeds("ceph osd stat | grep -e '2 osds: 2 up[^,]*, 2 in'");
+ $monA->waitUntilSucceeds("ceph -s | grep 'mgr: ${cfg.monA.name}(active,'");
+ $monA->waitUntilSucceeds("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 0000000000000000000000000000000000000000..041fbd7e8e642c1813a5d07cc9abdad90b1967b0
--- /dev/null
+++ b/nixos/tests/ceph-single-node.nix
@@ -0,0 +1,183 @@
+import ./make-test.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 = { ... }: ''
+ startAll;
+
+ $monA->waitForUnit("network.target");
+
+ # Bootstrap ceph-mon daemon
+ $monA->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 ${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->waitForUnit("ceph-mon-${cfg.monA.name}");
+ $monA->mustSucceed("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->mustSucceed(
+ "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->waitForUnit("ceph-mgr-a");
+ $monA->waitUntilSucceeds("ceph -s | grep 'quorum ${cfg.monA.name}'");
+ $monA->waitUntilSucceeds("ceph -s | grep 'mgr: ${cfg.monA.name}(active,'");
+
+ # Bootstrap both OSDs
+ $monA->mustSucceed(
+ "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->mustSucceed(
+ "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->waitUntilSucceeds("ceph osd stat | grep -e '2 osds: 2 up[^,]*, 2 in'");
+ $monA->waitUntilSucceeds("ceph -s | grep 'mgr: ${cfg.monA.name}(active,'");
+ $monA->waitUntilSucceeds("ceph -s | grep 'HEALTH_OK'");
+
+ $monA->mustSucceed(
+ "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->waitUntilSucceeds("ceph -s | grep '1 pools, 100 pgs'");
+ $monA->mustSucceed(
+ "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->waitUntilSucceeds("ceph -s | grep 'HEALTH_OK'");
+ $monA->waitUntilSucceeds("ceph -s | grep '100 active+clean'");
+ $monA->mustFail(
+ "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->mustSucceed("systemctl stop ceph.target");
+
+ # Start it up
+ $monA->succeed("systemctl start ceph.target");
+ $monA->waitForUnit("ceph-mon-${cfg.monA.name}");
+ $monA->waitForUnit("ceph-mgr-${cfg.monA.name}");
+ $monA->waitForUnit("ceph-osd-${cfg.osd0.name}");
+ $monA->waitForUnit("ceph-osd-${cfg.osd1.name}");
+
+ # Ensure the cluster comes back up again
+ $monA->succeed("ceph -s | grep 'mon: 1 daemons'");
+ $monA->waitUntilSucceeds("ceph -s | grep 'quorum ${cfg.monA.name}'");
+ $monA->waitUntilSucceeds("ceph osd stat | grep -e '2 osds: 2 up[^,]*, 2 in'");
+ $monA->waitUntilSucceeds("ceph -s | grep 'mgr: ${cfg.monA.name}(active,'");
+ $monA->waitUntilSucceeds("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 57120ff978f7d480666ee7c442063c733b674ba0..0000000000000000000000000000000000000000
--- 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 fe67833808ce4acbbbc160692a45340cb3bea4e3..cb69f35e862f8eae32d70878640fb278a719caec 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 513ed8c457418d226917f2fce9a2cf80bd51455f..e291fc285fba42982068f973e95bb89279f4cda5 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 6660eecf05b995030ac702494c9905c3d0ec5105..d72236d415d4dc9538d0c5acd4529fa8acd8f0e7 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/cloud-init.nix b/nixos/tests/cloud-init.nix
index 516d29c9036be53cc1675b5f09daa630d15e4a27..aafa6e24e84a323bf5c85fea241973db9b9890a2 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/colord.nix b/nixos/tests/colord.nix
deleted file mode 100644
index ce38aaca4bf26b43bf5c2b9b828fccee0625d54b..0000000000000000000000000000000000000000
--- 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 798a749f7f9b7c40fac0af127d8f2cfaa56f92bb..c530de817bf2d9e97679365be1d03ec59a26e732 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 58d87c64e34456bd5592f2a664e7caef328d3dd3..110a2520971d0b588352b3eb30dea2c292f1094e 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
- '';
+let
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\"";
- };
-
- 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}";
+ 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";
};
- 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;
+ pebble = {
+ enable = true;
+ description = "Pebble ACME server";
+ requires = [ ];
+ wantedBy = [ "network.target" ];
+ preStart = ''
+ mkdir ${pebbleDataDir}
+ '';
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
+ 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 3b4a589e41427d8542362040e6a0f31e7193518a..e7ac2bae46bd2537076bdf112adb62a9ffff3937 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 c3d29ab8f16333e7e0e3d71d044f86b78d077cb5..ca4f71ae688a49dc5d81dc890dcb74fd47edf435 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 48ea48eebbb31cc777b1662c9b72fef0914f160d..10e95701acdbe283261377230a4e56668c78fa57 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;
-
- $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"}");
-
- $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"}");
+ start_all()
+
+ 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.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/dnscrypt-proxy.nix b/nixos/tests/dnscrypt-proxy.nix
index 13bc9d3d9168d26cf7c6e7ffd95a76c6119b3b92..98153d5c9047051d7f24fb31d38dd6fc0342d6a1 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 b306c149be91a48b09291e7d07ef215ebbc09b57..96de885a554ab04cac7ac65330cea6ec8762dada 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.nix b/nixos/tests/docker.nix
index d67b2f8743d80644e38bcbd661da77bb0f7d9715..8fda7c1395ef3ce14698b9194ce21aa32d82a2dd 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 8b852a4f779559e2cbf2c6e002b8611ddda11fcc..3be20a780d3186b45efaa5ab6121300170288aa5 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;
-
- $machine->waitForUnit("documize-server.service");
- $machine->waitForOpenPort(3000);
-
- my $dbhash = $machine->succeed("curl -f localhost:3000 "
- . " | grep 'property=\"dbhash' "
- . " | grep -Po 'content=\"\\K[^\"]*'"
- );
-
- chomp($dbhash);
-
- $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('test "$(curl -f localhost:3000/api/public/meta | jq ".title" | xargs echo)" = "NixOS"');
+ start_all()
+
+ machine.wait_for_unit("documize-server.service")
+ machine.wait_for_open_port(3000)
+
+ dbhash = machine.succeed(
+ "curl -f localhost:3000 | grep 'property=\"dbhash' | grep -Po 'content=\"\\K[^\"]*'"
+ )
+
+ dbhash = dbhash.strip()
+
+ 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"'
+ )
'';
})
diff --git a/nixos/tests/emacs-daemon.nix b/nixos/tests/emacs-daemon.nix
index 3594e35e343c5f0261093206e75bb704c939cdf5..b89d9b1bde69149f907bf87e1be34f475836d5bd 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/fancontrol.nix b/nixos/tests/fancontrol.nix
new file mode 100644
index 0000000000000000000000000000000000000000..83ddbb54c5bb74216ad78886ef8680ea66475cd4
--- /dev/null
+++ b/nixos/tests/fancontrol.nix
@@ -0,0 +1,25 @@
+import ./make-test.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 = ''
+ $machine->waitForUnit("fancontrol.service");
+ $machine->waitUntilSucceeds("journalctl -eu fancontrol | grep 'Configuration appears to be outdated'");
+ '';
+})
diff --git a/nixos/tests/ferm.nix b/nixos/tests/ferm.nix
index b8e8663e3ad2b28e6f2b678123774b8c325b1631..edf9c8036aca4f33a14cf628bf9f20a64db6a587 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 f5b946a0881036be27eca2d36c2e3519e041d506..56ddabbae7714dbc38379939a6013f8f7484d351 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/flatpak-builder.nix b/nixos/tests/flatpak-builder.nix
deleted file mode 100644
index 49b97e8ca99e355b799c9ae4b36982ee7207b322..0000000000000000000000000000000000000000
--- 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 b0c61830d05aff561f190898c3d2345166768746..0000000000000000000000000000000000000000
--- 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/fontconfig-default-fonts.nix b/nixos/tests/fontconfig-default-fonts.nix
index 1991cec92189ffeeec22a5f3196e218361c9d8a8..68c6ac9e9c8337154fb0b29338b0117d30807175 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 f943bb7f235008f475d52358968a398187011a5b..e522419fde2b9e7cd6eec5ebd864fdd45afd729a 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 88dac8ccbcdb630ffbae5c6b3d5e91c0cbee78da..0000000000000000000000000000000000000000
--- 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 9a62b593f46d81e34a93c997d3a1d3fb580171f3..0000000000000000000000000000000000000000
--- 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 b8ab6dabc8c1f20678fa04608c25c6b7a9c9b568..ffbc07cfbb21f40d588f84d8db5dfe73d3a6721f 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/gjs.nix b/nixos/tests/gjs.nix
deleted file mode 100644
index e6002ef98dd0c896f497c496d6fff75c83a1c3eb..0000000000000000000000000000000000000000
--- 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 c0bbb2b3554b0f206b4133420003cf6dfc98f694..0000000000000000000000000000000000000000
--- 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/gnome-photos.nix b/nixos/tests/gnome-photos.nix
deleted file mode 100644
index 2ecda1d68ce3440c460cce8294520a3086b58b86..0000000000000000000000000000000000000000
--- 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 f12361da037206c8393d1079591da8157d7a3d07..eb4c376319be2d27d24f7d94f7a42d07383910ff 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 b6fe602a7327fa7d1343da25827ffa6406ef9aa6..ab363efb6a197b37486d60d04e97f10e0ac27b12 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/gotify-server.nix b/nixos/tests/gotify-server.nix
new file mode 100644
index 0000000000000000000000000000000000000000..0ffc3138d5a1dcb3510a0092cedd127df681a06b
--- /dev/null
+++ b/nixos/tests/gotify-server.nix
@@ -0,0 +1,45 @@
+import ./make-test.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 = ''
+ startAll;
+
+ $machine->waitForUnit("gotify-server");
+ $machine->waitForOpenPort(3000);
+
+ my $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'
+ );
+
+ my $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(
+ "curl --fail -sS -X POST 'localhost:3000/message?token=$token' -H 'Accept: application/json' " .
+ '-F title=Gotify -F message=Works'
+ );
+
+ my $title = $machine->succeed(
+ "curl --fail -sS 'localhost:3000/message?since=0&token=$usertoken' | jq '.messages|.[0]|.title' | xargs echo -n"
+ );
+
+ $title eq "Gotify" or die "Wrong title ($title), expected 'Gotify'!";
+ '';
+})
diff --git a/nixos/tests/grafana.nix b/nixos/tests/grafana.nix
index 7a1b4c8ffbbc858050a660d362813a2a6007f702..4b453ece7f1ef646772d896402819374422d103c 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 5591bcc30c07e18b1df991c384c730a15a50bcaf..0000000000000000000000000000000000000000
--- 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/haproxy.nix b/nixos/tests/haproxy.nix
index 22a83e9d1eabf113b5f18bd3205d7a4c1ebc3ef9..72e77a68193e39f3e06d40b0aca382481d6fdd37 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 90f9793b370c437a5fc91b9e890fdfd58d611dde..cbf76f9e558774638fba800b48bd69f8950164ca 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/hydra/create-trivial-project.sh b/nixos/tests/hydra/create-trivial-project.sh
index 39122c9b473a1a865d3c31ffb48a23e9173a7d7a..5aae2d5bf90d635ffe7938f01bad22d025fffc11 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/initrd-network-ssh/default.nix b/nixos/tests/initrd-network-ssh/default.nix
index 796c50c610e351c08b59cf77cc155db3caf366c6..73d9f938e226c9a74a178f962a7f2f04d7788f5a 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 0000000000000000000000000000000000000000..77e6b917fe689cb863c9db9aa90d310bc1f35e5f
--- /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 0000000000000000000000000000000000000000..f4780bdcfc9757e2429cbfa4c0b3d67066ec79ee
--- /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 0000000000000000000000000000000000000000..31b9f2b258fdff5a64615f9f61bf565cb63b585a
--- /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 0000000000000000000000000000000000000000..091c993266296eef0255c7213739e1686358b6f8
--- /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 0000000000000000000000000000000000000000..b9f761e99582e5b9388fe362ed6b0762216408d0
--- /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 0000000000000000000000000000000000000000..b24cc2e0126729f997b1f8457caa894dd234ae0d
--- /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 0000000000000000000000000000000000000000..3d0011a427a44ceb5c0e508042200f1d6eac9e27
--- /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 0000000000000000000000000000000000000000..1656e9de171b77f2d637e80c3375483831561141
--- /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 0000000000000000000000000000000000000000..b58d4df21fca6f2283535ce8a3711ad13668a465
--- /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 0000000000000000000000000000000000000000..05e7ccb65ad525f56bc9cdad933866978df49cf9
--- /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 0000000000000000000000000000000000000000..e43339abd88c8ca9c9d5b259249a841bc2e9f050
--- /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 0000000000000000000000000000000000000000..f11a7bc1bc5111256b69e64aa6ae0f70591a28c4
--- /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 0000000000000000000000000000000000000000..af2bbe9c35e2bf1831dffd934ebd6a6a49837171
--- /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 0000000000000000000000000000000000000000..eef7cace54cc1ec5502c318545c6cbea999e492d
--- /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 0000000000000000000000000000000000000000..b16008ff4addb4a64f6aa2ef17bfc8d48dd4b938
--- /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 a136678c6eff07c359b33f67444ac8f4327cd775..eb1f4f192dd11db946b94a3bab634cd092c0aab3 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/jellyfin.nix b/nixos/tests/jellyfin.nix
index b60c6eb94f4680aa0143e39e6bf55a3d335d352f..65360624d4875f5b5d34d350fe03b95b353a40ab 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/jormungandr.nix b/nixos/tests/jormungandr.nix
deleted file mode 100644
index 2abafc53ce5178d8693614f9fa195153c7b29b5b..0000000000000000000000000000000000000000
--- 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 f526d18befee98b9c53aa22b9e950e7b3ae31059..48ca98da8fa1fbe6abfaf2636f9065253009957f 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/knot.nix b/nixos/tests/knot.nix
index e46159836ccc0d354fcf9393518edfb49a62102d..0588cf86ac09e50178087be26f760929ddcbe51d 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;
-
- $client->waitForUnit("network.target");
- $master->waitForUnit("knot.service");
- $slave->waitForUnit("knot.service");
-
- 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);
- }
-
- 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$/);
-
- 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/);
- };
- }
+ import re
+
+ start_all()
+
+ client.wait_for_unit("network.target")
+ master.wait_for_unit("knot.service")
+ slave.wait_for_unit("knot.service")
+
+
+ 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}"'
+
+
+ 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 f21634c4ffbf778e8b1848effa5a3e7e4bf3bcc6..adb736506895ba03ba90ec482f5e5faf037bad38 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 10a3ca97dd224a904f7c2264e387738663377694..0000000000000000000000000000000000000000
--- 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 3bee568ac5a20a50fc878d96c7a06b5f2854362e..0000000000000000000000000000000000000000
--- 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 c805f1ed9f3c180264a22fc8e74588ede0e0dde7..ef30f7741e234202c4673ea1b4b5b52cb45c1fce 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 2a7c063d30333b92494e4894dffa595e639d0f81..d36c1a91be43219bc54339d598a961d8c04efb77 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");
-
- subtest "create user", sub {
- $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'");
- };
-
- # 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");
- };
-
- # 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");
- };
-
- # 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;
- };
- '';
-
+ testScript = ''
+ machine.wait_for_unit("multi-user.target")
+ machine.wait_until_succeeds("pgrep -f 'agetty.*tty1'")
+ machine.screenshot("postboot")
+
+ with subtest("create user"):
+ machine.succeed("useradd -m alice")
+ machine.succeed("(echo foobar; echo foobar) | passwd alice")
+
+ 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'")
+
+ 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")
+
+ 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")
+
+ 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 9c3058d02f84bd2184ac5da60d8b0b17a0ba4220..dbf1e8a650f5d2ccd3526195a3c49f214bec9d75 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 0000000000000000000000000000000000000000..b586b2bf79859c33554385ad7641ef8f7af56e5a
--- /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 0000000000000000000000000000000000000000..53074385a652d35ecf95899eb28dba70d336e6e6
--- /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 0000000000000000000000000000000000000000..9de9d247e54243a3e099525c437d508a5a7135d3
--- /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/make-test-python.nix b/nixos/tests/make-test-python.nix
new file mode 100644
index 0000000000000000000000000000000000000000..89897fe7e61b2ba12bcd1a596a0e2a84ea9a730a
--- /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 0000000000000000000000000000000000000000..4efa65a7b6deafbb89a952adcb1f3808a0dadff3
--- /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 882e4b75814bff9147b06212fa20119d133aa99c..fca53009083a4128df8eb20fc9ed10311e726109 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 be9e5ed5b1e8f3473222f0cad39510d8b0ccf4af..1450a4e9086f10f12f9fa8aa7f480029830be9d1 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 0000000000000000000000000000000000000000..7bf1bed69d060ec61e6d24280048ce302ef76d27
--- /dev/null
+++ b/nixos/tests/minidlna.nix
@@ -0,0 +1,39 @@
+import ./make-test.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 =
+ ''
+ startAll;
+ $server->succeed("mkdir -p /tmp/stuff && chown minidlna: /tmp/stuff");
+ $server->waitForUnit("minidlna");
+ $server->waitForOpenPort("8200");
+ $server->succeed("curl --fail http://localhost:8200/");
+ $client->succeed("curl --fail http://server:8200/");
+ '';
+})
diff --git a/nixos/tests/moinmoin.nix b/nixos/tests/moinmoin.nix
new file mode 100644
index 0000000000000000000000000000000000000000..2662b79aa0995e97753adf5997e3729831da7203
--- /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/moodle.nix b/nixos/tests/moodle.nix
index 565a6b6369494f92ea142dd9a0933dde15485baf..56aa62596c078e0af2ba59400ffa41dfdda71d71 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 eab123bd50f8697a8f0ccfb53f805847a66dd71e..64c5a27665d6c9bd406ff4231bfce0cc6e9d5b82 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/mpd.nix b/nixos/tests/mpd.nix
index ac2b810defe36b06c788ea479e7b6a6654159352..a992576808dc92009fed12050356761decc78b61 100644
--- a/nixos/tests/mpd.nix
+++ b/nixos/tests/mpd.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ... }:
+import ./make-test.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,38 +46,51 @@ 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"
- }
- '';
- };
-
- musicService = with defaultCfg; musicService { inherit user group musicDirectory; };
- }) // { hardware.pulseaudio.enable = true; };
+ { ... }: 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;
+ systemWide = true;
+ tcp.enable = true;
+ tcp.anonymousClients.allowAll = true;
+ };
+ systemd.services.mpd.environment.PULSE_SERVER = "localhost";
+ }
+ ];
};
testScript = ''
@@ -110,6 +123,7 @@ import ./make-test.nix ({ pkgs, ... }:
play_some_music($serverALSA);
play_some_music($serverPulseAudio);
+ $client->waitForUnit("multi-user.target");
$client->succeed("$mpc -h serverALSA status");
# The PulseAudio-based server is configured not to accept external client connections
diff --git a/nixos/tests/mumble.nix b/nixos/tests/mumble.nix
index dadd16fd9a0c26e8ba9ca4f8b94a4496601b1758..652d49a24b1cad89806bad15a468ca68a7de3324 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 3d03a5a53e38e8b63e5869f9a8c5906981f3419e..0039256f5861642304d723b9d2845c0030ec7e0e 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/networking.nix b/nixos/tests/networking.nix
index 7452768033abb9901179474954860276404037e0..e0585d8f1bb48ed0ea3b0e57c305013f7a09a548 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 81c269c23788c7a8de5edc1f251239fb88e30cdf..f655aba9d45e46b8e40ba5fe5898362e95355ee6 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/nixos-generate-config.nix b/nixos/tests/nixos-generate-config.nix
index 15a173e024b4b2100a87148f13a09d1aa7e324dd..6c83ccecc70a0a9a9f00226825782e4aa5112319 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 0000000000000000000000000000000000000000..4cc4db229637da270bb868d546a2824692f4628d
--- /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 883ad760494127c73b6d45f7ec716fbeb328d1aa..e6f52db1d9843c339b9c9e330eb4047982c12ddc 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 8b9e2170f15024e2cc28e67fc2c0c49288e45020..e9692b5032721eeaf473c5f0c44713eea895e847 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;
-
- my $key=`${pkgs.openssh}/bin/ssh-keygen -t ed25519 -f key -N ""`;
-
- $server->waitForUnit("sshd");
-
- 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");
-
- $client->succeed("mkdir -m 700 /root/.ssh");
- $client->copyFileFromHost("key", "/root/.ssh/id_ed25519");
- $client->succeed("chmod 600 /root/.ssh/id_ed25519");
-
- $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");
-
- };
-
- 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'");
- }
+ start_all()
+
+ server.wait_for_unit("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")
+
+ 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.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.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"
+ )
+
+ 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 0000000000000000000000000000000000000000..bdf4fc10c4475d68227aef7b5732a8bdc0b51ba3
--- /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 0000000000000000000000000000000000000000..5407a62339fe614e44c74afb5b983ffbe0b3bc98
--- /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/ostree.nix b/nixos/tests/ostree.nix
deleted file mode 100644
index d7ad84a1a5f005966123f810643daf975fc2ecb0..0000000000000000000000000000000000000000
--- 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 e2d68af661f8ef9d0065f2ae7a95f4c1f53be03a..7e93ad35e80a84d34772e538fbfc960249b9a010 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 c50f77f861732030c7d4d27dd5f1e4f31ed64c08..9888887ee8b54e6931d11fb61271047929b6cdb7 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 a2d81288c812207e102d0be75f2301b40162d25a..4793a3e3150313fcc931a8f92a5cecee2be398ca 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 788c8719c8d2ffbfe4256164ba608dbf33dfc8e2..614fc9bf316ec7a1b8e6d886ed7b3d2043b084b4 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 ae5d6d095ea261c6e343f73e5ff78c8c47d3377f..e71c38882881f414488ad2258e96189df261cb85 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 8addcc784012d0fc75267d20d9b239944fb7c546..75d71315e644d253a4fbba4796736a314d99e48d 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 0000000000000000000000000000000000000000..bda0aa75bb502641542cb81c4a1266bb5fcfa426
--- /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 85047f66f23c90480ccddb03653d24ca6c992e94..194b4dafa772ec5877693f45bcdffa2ec2d563b7 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 02d83f82f338a4b37b32b2747f4547b481056fa0..563f24726477569dae27a8f97deb91ea681692dc 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/quake3.nix b/nixos/tests/quake3.nix
deleted file mode 100644
index 4253ce4a86726c1228767d6066365eb20bddb96a..0000000000000000000000000000000000000000
--- 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 9bc5607ccd5a301af24d57aaebe09bad1c01c87d..ed90025ac42056f9ed6caf686672a79f17c9f4d5 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 325d93424dd7d9f889bba1abb862dc22c10bde48..529965d7acdeeda0e051977e085f10ba07815f9d 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 2d4df288b055523163bcac70e2c5bff847ad553b..f0f4cbf6a21ce652e0928e4d5b0792df9c1b6ea4 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 ed0ebd7dd19dc4a0e91e9c0564565e21efe40dfa..3206144ce806006e1032eb6c3b1a693d5b119a08 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 ];
@@ -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 -sSL http://roundcube/ | grep 'Keep me logged in'")
'';
})
diff --git a/nixos/tests/rss2email.nix b/nixos/tests/rss2email.nix
index 492d47da9f56e7c9ad9ed9f0c7d25c0693ddc6f6..d62207a417b83a2672eb012c55820290b4080891 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/samba.nix b/nixos/tests/samba.nix
index 2802e00a5b1a2cc5c293c0e206a0d33b78a6cc67..142269752b34f6b1faec8733801b525a7f2c31d3 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 678bcbeab20aed71de3ff431feb54bc1a596f003..4bdcd701dcf16e74aa12943372d77b37921a3044 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 0000000000000000000000000000000000000000..a5771262c6f27226f5e9f1032919d814e7a73443
--- /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 605b9c3e1301be3c8492037f40fd38b9540091a2..c746d46dc5505bedabd69de8a2abef6e20196917 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 84c5621d962fbf5b1e9829049565bb01e8a38d6d..3810a2cd3a58282ee1f7ffcc0dfc7a979bb25c1e 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 42c87dfa039d240b10bb68fccc5374573ab35075..0000000000000000000000000000000000000000
--- 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 4c2cd3c3d264292922c417223b5a69ce5b5404d0..17527378cf0a57b6842286baa666f33ec488e82f 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 07d22805112787f0cd2275db0520b2da1db3d51a..4f8f0fcc9fe2e8a8baa5c7da6f1ceb692ffea414 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 74ec22fd3499cffa7ea68af6525334d7a2dcf24b..018102d7f6409988a3e42212e839df241ad743fd 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/strongswan-swanctl.nix b/nixos/tests/strongswan-swanctl.nix
index 9bab9349ea73632737f67e5c8c632f3c5ab0656f..152c0d61c54340eee8cf15664c904df2964b36c6 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/systemd-networkd-wireguard.nix b/nixos/tests/systemd-networkd-wireguard.nix
index f1ce1e791ce3ad2eb60574cac2be628667b60eba..aa0ac54e79696a3efb7c42daa5ef4c953d0c1e1c 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 ];
diff --git a/nixos/tests/telegraf.nix b/nixos/tests/telegraf.nix
index 6776f8d8c37f093c1a0203c45d400ba4cb1d0872..73f741b11357439bf1380c6c542a5c03220e6b7a 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 cb7ee0c5fb5e5b6a47523408e6f9c88155dbd40e..c7740d5ade35327105ef9ce00af4178c7682f362 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 0cb44ddff248591af99e32591912b73cf3355f6d..ad07231557c3cfaf17a3a8442ebeed8642674090 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 0000000000000000000000000000000000000000..7953f8d41f7719e2cd0e39ff999029da6c83f88a
--- /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 f1c238730ebb81aa8041d6ac7369c7136c77588e..f4f2186be1fffe2e575ada3b67963b5ca6cd18f0 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 1c85bf539345ddf6a5fe33e43fa27f5df7e14f4f..8d908a522492344ba0d187deb3d8aa70e2f45b20 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 0000000000000000000000000000000000000000..e2ca00980d539f8a291513490b0e112304bfd4e3
--- /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 dcf869908d8211e0a3dcc1e7ea6b9bebc76e1ffd..0cbfa0c4c7beeceadfb70cc80d6ae8d3722a166d 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 98344aee3efacf30f52c3c4fc442264ffb33d7c4..d2e7fdd4fbeb713f4eb26a6e0eff76167c6ea019 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/vault.nix b/nixos/tests/vault.nix
index caf0cbb2abfe0bc3faaac8a5e7c94f0c4d299436..ac8cf0703da5db92c69a01c44e2c87a6da690ac7 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 b0797b963235be659e365e96267b9116483b9c33..8206823a9181d6cfcc731e4a021b0ad5f69b597c 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 897feafe3ff2455f45017d986f26b4686c0df9a7..a29afd2d4666bdcead09a644770ace0ebf02adda 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;
-
- $peer1->waitForUnit("wireguard-wg0.service");
- $peer2->waitForUnit("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";
- }
-
- my ($retcode, $peer2pubkey) = $peer2->execute("wg pubkey < /etc/wireguard/private");
- $peer2pubkey =~ s/\s+$//;
- if ($retcode != 0) {
- die "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");
-
- $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");
-
- $peer1->succeed("ping -c1 10.10.10.2");
- $peer2->succeed("ping -c1 10.10.10.1");
+ start_all()
+
+ peer1.wait_for_unit("wireguard-wg0.service")
+ peer2.wait_for_unit("wireguard-wg0.service")
+
+ retcode, peer1pubkey = peer1.execute("wg pubkey < /etc/wireguard/private")
+ if retcode != 0:
+ raise Exception("Could not read public key from peer1")
+
+ 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 {} 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 {} 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")
'';
})
diff --git a/nixos/tests/wireguard/namespaces.nix b/nixos/tests/wireguard/namespaces.nix
new file mode 100644
index 0000000000000000000000000000000000000000..94f993d9475dd7b62596f113a9337d72c918a1d8
--- /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 774ef6293b51d0526955fec5fe162eb73c69af1a..c6acfa6c1f3d51f61df6b71ffba96063475b93a3 100644
--- a/nixos/tests/wordpress.nix
+++ b/nixos/tests/wordpress.nix
@@ -20,12 +20,6 @@ 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 = ''
@@ -37,6 +31,11 @@ import ./make-test.nix ({ pkgs, ... }:
$machine->succeed("curl -L site1.local | grep 'Welcome to the famous'");
$machine->succeed("curl -L site2.local | grep 'Welcome to the famous'");
+
+ $machine->succeed("systemctl --no-pager show wordpress-init-site1.local.service | grep 'ExecStart=.*status=0'");
+ $machine->succeed("systemctl --no-pager show wordpress-init-site2.local.service | grep 'ExecStart=.*status=0'");
+ $machine->succeed("grep -E '^define.*NONCE_SALT.{64,};\$' /var/lib/wordpress/site1.local/secret-keys.php");
+ $machine->succeed("grep -E '^define.*NONCE_SALT.{64,};\$' /var/lib/wordpress/site2.local/secret-keys.php");
'';
})
diff --git a/nixos/tests/xautolock.nix b/nixos/tests/xautolock.nix
index ee46d9e05b068a5bc70574675dad5fd48e79aa45..10e92b40e9562f065d63cdd4a937a84afd8ca740 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 79ebb83c49a59860d11e17d69f55bc09684c9481..0000000000000000000000000000000000000000
--- 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 12d8a050d47bc0ada16a5262607449642cb85255..7ff623062d93c9f1d7b75fa4ce23a4d6ad39fb31 100644
--- a/nixos/tests/xfce.nix
+++ b/nixos/tests/xfce.nix
@@ -17,6 +17,10 @@ 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 =
@@ -28,7 +32,7 @@ import ./make-test.nix ({ pkgs, ...} : {
$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 alice");
$machine->succeed("su - alice -c 'DISPLAY=:0.0 xfce4-terminal &'");
$machine->waitForWindow(qr/Terminal/);
diff --git a/nixos/tests/xfce4-14.nix b/nixos/tests/xfce4-14.nix
index d9b10aabaa1f6d2aedbc169d9b25b7e06183bd63..d9b87b08437694e2746f15849bcd13f7f8dcbe8c 100644
--- a/nixos/tests/xfce4-14.nix
+++ b/nixos/tests/xfce4-14.nix
@@ -12,6 +12,10 @@ import ./make-test.nix ({ pkgs, ...} : {
services.xserver.displayManager.auto.user = "alice";
services.xserver.desktopManager.xfce4-14.enable = true;
+
+ hardware.pulseaudio.enable = true; # needed for the factl test, /dev/snd/* exists without them but udev doesn't care then
+
+ virtualisation.memorySize = 1024;
};
testScript =
@@ -23,7 +27,7 @@ import ./make-test.nix ({ pkgs, ...} : {
$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 alice");
$machine->succeed("su - alice -c 'DISPLAY=:0.0 xfce4-terminal &'");
$machine->waitForWindow(qr/Terminal/);
diff --git a/nixos/tests/xmonad.nix b/nixos/tests/xmonad.nix
index 4d3bc28cd349fa9620c97c6d507975566acdbc2a..c2e5ba60d7bc5b2e42613fcdb663f55012270d0e 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/yabar.nix b/nixos/tests/yabar.nix
index bbc0cf4c7dd7875e50d7e4b5adc86a5b9373b6c3..9108004d4df9d42408de58b8f467e36b2236d0ed 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 0000000000000000000000000000000000000000..ddff35cce3a10dd40dfe4e5242e0adf5255b6033
--- /dev/null
+++ b/nixos/tests/yggdrasil.nix
@@ -0,0 +1,123 @@
+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.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 =
+ ''
+ # Give Alice a head start so she is ready when Bob calls.
+ $alice->start;
+ $alice->waitForUnit("yggdrasil.service");
+
+ $bob->start;
+ $carol->start;
+ $bob->waitForUnit("yggdrasil.service");
+ $carol->waitForUnit("yggdrasil.service");
+
+ $carol->waitUntilSucceeds("[ `ip -o -6 addr show dev ygg0 scope global | grep -v tentative | wc -l` -ge 1 ]");
+ my $carolIp6 = (split /[ \/]+/, $carol->succeed("ip -o -6 addr show dev ygg0 scope global"))[3];
+
+ # If Alice can talk to Carol, then Bob's outbound peering and Carol's
+ # local peering have succeeded and everybody is connected.
+ $alice->waitUntilSucceeds("ping -c 1 $carolIp6");
+ $alice->succeed("ping -c 1 ${bobIp6}");
+
+ $bob->succeed("ping -c 1 ${aliceIp6}");
+ $bob->succeed("ping -c 1 $carolIp6");
+
+ $carol->succeed("ping -c 1 ${aliceIp6}");
+ $carol->succeed("ping -c 1 ${bobIp6}");
+
+ $carol->fail("journalctl -u dhcpcd | grep ygg0");
+
+ $alice->waitForUnit("httpd.service");
+ $carol->succeed("curl --fail -g http://[${aliceIp6}]");
+
+ '';
+})
diff --git a/nixos/tests/zfs.nix b/nixos/tests/zfs.nix
index d7a08268e984b6fc589b81fb48c27fddc14864de..8f844aca416051fbb4b478ff7cbfca2be7a687fd 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 f343ebd39e4423ef6e6319574fe0a395d7b04ba7..42cf20b39c5222cc4e4bc30dcb366e15e3cf9d9c 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 0000000000000000000000000000000000000000..3e03cf2da730162a70e534464cba561f80903692
--- /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 c72815d5ca257291f0b6ef40f5ed424426561ccb..cd951701e7714c643e679ebaa3fbab8b87293c5d 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 e4c145b35c758bbacb9d58ed90fc4f2621c2f34f..5a0b6797a241793b0bcd2d881e3dab686b22d0d1 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 6be40a7b93aa18c2d742489f26b9fbcad6f4f75f..11434c0b3498898b3226a3373253dd1ce727eba0 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/bitwig-studio/bitwig-studio3.nix b/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
index 3e9a2d380e2714034396f6f51eae49b5989da8fc..dd59ac5080ffa250a9f599312e66ea0821092106 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 0000000000000000000000000000000000000000..e4ac2fbbcdc2a9f0b67b515281b7f2fc8f344b66
--- /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 0000000000000000000000000000000000000000..1d49ca1fa4fedde49cdb1d204e5ded406db9fa04
--- /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 0000000000000000000000000000000000000000..8fbac6daf46639b94b4900409372ec63991b3e81
--- /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 87efa6fb6b66e9bd23c9cea5b5884808fb1d19ae..4a757ed434a7a3ab284d1ac78b5e4e3ec4a7d434 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 f48a429b389675af44e5e950d5bd84bcdc83cdd9..0a374c26142a1f345b15f21812e4f7ce6ae33c14 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 331e3fb96989d4e45cbbe9e8b3de540d1a6b3073..f3adec4fece222eee36597f09bd89d6adcb98bbb 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 11b214f6bb3820dff147b938d41c1cbe7e217e02..2581f223c91d7f74d969155158501ae46f29acee 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 8f1f79169d7be8ee1c9db0a0dbd0587481787c40..b926ff09d22bf6cdba3faf4773309073c94cdc85 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/flacon/default.nix b/pkgs/applications/audio/flacon/default.nix
index 02317fee15f144cf1992b476e0b12a8301011467..9dd5da4c1a902f1ffdd2c19633560a51bc604ec3 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 bb86787a3cf0339e38d631b5c1a25ae3210de43e..8e2895bf84780c3c518d58ae43c35dc8d7c2c660 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 680694aa403de8fe8672728216c7adced42aabe0..ee45217e490917fbf99b21a07d2607a5245657d0 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 5e95d71796894a1a9ed91bbd2dd131d606a84300..248967e06e6f33c81afe47f0b551bba2c418fb55 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 0000000000000000000000000000000000000000..eae4b6516858c7adf406916a1738ce1b993f660c
--- /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 0000000000000000000000000000000000000000..de053802932dc6bd3ea8b8b1890d5b4355d7d49b
--- /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/gigedit/default.nix b/pkgs/applications/audio/gigedit/default.nix
index d8fada45eb167440a24458630c6d238ed2c521d6..b8ec2d7116f5d210062dc5816544e56a0e6c1b47 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 eb00fcc87a24e59b7d81e6e9a3f5deb130dce97b..0000000000000000000000000000000000000000
--- 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/gpodder/default.nix b/pkgs/applications/audio/gpodder/default.nix
index 656018907a5f75570e2b7d8eccde77ee9491b69f..246cba590f45b0f0a8636675b0c7fc63f050d662 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 c4a8f2fce02654091832230761b1c6b3a327a6b5..487b0a730d83b4378d8f188d882321651533cde5 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/kid3/default.nix b/pkgs/applications/audio/kid3/default.nix
index dfb07c4f456877757e8a9598d9f9608005fa6051..75ffd083a5a488d5dd6843bcb26f16252089add8 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 26fc2408d8ac0a0efc27aa31c97cffba990b7233..f13f10d15e82037e18378e33ee6787c7fa78f86f 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/lollypop/default.nix b/pkgs/applications/audio/lollypop/default.nix
index e4d508b2a1f51227521600d86289301ededece06..8bdf45a968a512845168b5d04c76574949c8b20a 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 f3abfbca145d195a9b8049c96709660988ee56fa..47d8f165ad05780816df4487ce6fd7f10a8ab41f 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 c574c862f52157900a6aa4daa9806a53755705ab..2df54fa7fb46c17a4088787a91df0f019089a65d 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 3a663fd33c8110396d0b198912a2594d064438fc..37e233b5e9ec86d7d362c5f22838e4c7aaad746b 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 907d4b8be16843e47b1135cb962c975ae0598013..233aebfa1470ffc75e7f627baffac19d3a402e96 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 b13e1cc037a0f93297a27b712ccc3aa4b916dedb..9a273299297efbcdebc5e4ee338ca944179a261d 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 b201bd65caefa1358e401d3acd8f730b8ea22ae8..0d5445650a0a5927f624374b93791306fa9f4a03 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.12";
src = fetchurl {
url = "mirror://sourceforge/mpg123/${name}.tar.bz2";
- sha256 = "1cpal2zsm3zgi6f48vvwpg6wgkv42ndi7lk3zsg7sz52z83k61nz";
+ sha256 = "1l9iwwgqzw6yg5zk9pqmlbfyq6d8dqysbmj0j3m8dyrxd34wgzhz";
};
buildInputs = stdenv.lib.optional (!stdenv.isDarwin) alsaLib;
diff --git a/pkgs/applications/audio/ncmpc/default.nix b/pkgs/applications/audio/ncmpc/default.nix
index d89b61aa21f44d3592a3cdb5c85df268aaca629c..db788dcc9eb2312141b0508c9f08c9132ae9779f 100644
--- a/pkgs/applications/audio/ncmpc/default.nix
+++ b/pkgs/applications/audio/ncmpc/default.nix
@@ -3,13 +3,13 @@
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 ];
diff --git a/pkgs/applications/audio/ncspot/default.nix b/pkgs/applications/audio/ncspot/default.nix
new file mode 100644
index 0000000000000000000000000000000000000000..63ae9278c5d33b3082a499bd0e193237fc9594b7
--- /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 c9d69b5c7f23289c747177a793eef62e7ca59ec3..08c5c1a5c361c1ee50085a7ab58f14c6f605059b 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 0000000000000000000000000000000000000000..7e49b872a6a57650ef237d6a89cb63893ff6a027
--- /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 b424bce2433bb72618c0b1c0225d126ea2ac7af7..6d97a2da739f18538c335f6d65d20f7b04233c58 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 1eb8b416a9aafef530d7330bee7b9aebe243cab1..fb5fe47f4f2d0bd1fa2b4326c3bb315bfd62d299 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 b2c049c9eeebdb050821f6e5769004d924aeca14..b9a3f39affb1791349c702642ba320972be35cef 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 40e45a76b4bf9c66906ba6d86ee0255dd8b9029e..26b94f306bc6ad916368a8e42d72faa2cced509c 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 04a62b5d159ceb28b48ea1274e2f996fb9c23594..dc1118f47e044ddc62b35df856abe13808cdd7d8 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 5d86e37dec8a1f74cafc05672bc1afd625bd601c..20a6e928cefbd7bbe3d173286a36964b0a550323 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 1ad57efda7a07c253455b3afac9554f4db6be0ae..6b7d242e1f6d0b5cbf5cab8db4e3e98f895fadcd 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 83fb17189e1d08ead3b039e61d151e6e64ca9b60..302dd5c8e69798b40a87cf05451b23a3a4a86a99 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 0b50d3098aa2302c0b04c11b2bfe7a20d07f0dcb..84cc11b8bf3456414107b4c5de9fa16eeebcd347 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 d627f352e734b28aa2aba1941d201e99bf544e7e..01a33db5293ae24f6c0988cf82cec8d448a236d6 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 ef52c65b10510f3cb8eac4d14c58cbdd75ecc244..aee373329ce0543d21d9d7ed34e6d9c42a5da10b 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 a878f4edad8ffade5d2999a88c70fa75d338f2cc..69cc5e6e89f20cecad776a5451265a5b69d295ab 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 81b7e35b6309149bd07c89027747de8150f7a94c..aab854d24adca51d830205335e72155974e4fbca 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 2e504a3c9ec2984f1716ec76e06de2dd67bd5416..dee9b8f20c89a34c0bf806747e58799345ded57e 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 c874bdd40d24f88661bcb01ac8735bb19166b195..573dca518e3a972607a4fa546bb1855dd56781e6 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 c0186a146beee8740ce5f4465909afdb8f06d36a..a64e407b39b8806496a25661f46193682d0572ac 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 9cff98f61372ac606317e39ccddd0b2a440344b1..3b780ee2b36225f281dde872e8d90f72430e54cd 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 0000000000000000000000000000000000000000..9def4a292f618e416ac25b295d2e7fc92cc674db
--- /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 5a62a8a4292d3ec8bccd7bdab0f05a7faa3e862b..4874969b633245931e4747a587e368e6741f0d45 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 9502cb7b7e7e8168e13cb9270fb3fd5d70a26f82..6d5944b7aff2cfb9760bc2272df2ffa1bf1eac5d 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 706d0faa3bc1a0caebeca71056b1ab58fa99ba44..615a8a8c660444337d37f100e7dcf0411803ec63 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 32e241cf557be0fb4c659e939cff1a013e9b6e48..b4a503954643c3cf7bc329a150b75cfcad67edb9 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 0000000000000000000000000000000000000000..ecdafdaeadddc433156975a0b714302905b0be72
--- /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 0000000000000000000000000000000000000000..b2f1d37da6bec13b2529f36420ef30bb210abe8e
--- /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 7934af8aad8e2bca9cc97ecc9309d9bfd97140c0..ac72a26b0eecf4609c9bed3e45f9ec6435e33233 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 \
+ 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"
-
- runHook postInstall
'';
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 0000000000000000000000000000000000000000..a73a46a7cb07140bc84dbf55079e893931dc4cbe
--- /dev/null
+++ b/pkgs/applications/audio/spotify-tui/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, rustPlatform, pkgconfig, openssl, Security }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "spotify-tui";
+ version = "0.8.0";
+
+ src = fetchFromGitHub {
+ owner = "Rigellute";
+ repo = "spotify-tui";
+ rev = "v${version}";
+ sha256 = "0pgmcld48sd34jpsc4lr8dbqs8iwk0xp9aa3b15m61mv3lf04qc6";
+ };
+
+ cargoSha256 = "1rb4dl9zn3xx2yrapx5cfsli93ggmdq8w9fqi8cy8giyja1mnqfl";
+
+ cargoPatches = [ ./fix-cargo-lock-version.patch ];
+
+ 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-tui/fix-cargo-lock-version.patch b/pkgs/applications/audio/spotify-tui/fix-cargo-lock-version.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d38c6890033baceddc7c8e02e9380fad3ae4f47a
--- /dev/null
+++ b/pkgs/applications/audio/spotify-tui/fix-cargo-lock-version.patch
@@ -0,0 +1,13 @@
+diff --git i/Cargo.lock w/Cargo.lock
+index e1eae72..e004898 100644
+--- i/Cargo.lock
++++ w/Cargo.lock
+@@ -1310,7 +1310,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+
+ [[package]]
+ name = "spotify-tui"
+-version = "0.7.5"
++version = "0.8.0"
+ dependencies = [
+ "backtrace 0.3.40 (registry+https://github.com/rust-lang/crates.io-index)",
+ "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
diff --git a/pkgs/applications/audio/spotify/default.nix b/pkgs/applications/audio/spotify/default.nix
index 3f99e22a4cbdb046564af06b06ef86d54faa2126..bc95ec625bbbd6e67106b1bb7639a231e7afff29 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 9035a2a73c57f0e72b91adc1bb505e9fd231366b..d420d1a67095269ccbe4497c995aefc438c802d3 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.19";
src = fetchFromGitHub {
owner = "Spotifyd";
repo = "spotifyd";
- rev = version;
- sha256 = "1iybk9xrrvhrcl2xl5r2xhyn1ydhrgwnnb8ldhsw5c16b32z03q1";
+ rev = "v${version}";
+ sha256 = "063b28ysj224m6ngns9i574i7vnp1x4g07cqjw908ch04yngcg1c";
};
- cargoSha256 = "1dzg4sb95ixjfhx6n4w2rgrq4481vw01nsdrbm746mz7nm71csk3";
+ cargoSha256 = "0pqxqd5dyw9mjclrqkxzfnzsz74xl4bg0b86v5q6kc0a91zd49b9";
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 = [ maintainers.anderslundstedt maintainers.marsam ];
platforms = platforms.unix;
};
}
diff --git a/pkgs/applications/audio/strawberry/default.nix b/pkgs/applications/audio/strawberry/default.nix
index 83455460123cb5e0f0399a20cffbcff59e9ef361..c62eba99845271fc6360d647024cc718ec13eecd 100644
--- a/pkgs/applications/audio/strawberry/default.nix
+++ b/pkgs/applications/audio/strawberry/default.nix
@@ -35,13 +35,13 @@
mkDerivation rec {
pname = "strawberry";
- version = "0.6.3";
+ version = "0.6.5";
src = fetchFromGitHub {
owner = "jonaski";
repo = pname;
rev = version;
- sha256 = "01j5jzzicy895kg9sjy46lbcm5kvf3642d3q5wwb2fyvyq1fbcv0";
+ sha256 = "1kqx0q99n1p5pm6skvqjihz11byhxdid1qw6gqp67dh2na62z1lm";
};
buildInputs = [
@@ -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 1c373aefb4f6f9b35b847df8d17cffc555f7fc6a..349c7acc3db37ced5e59ea1b1655d057e918bbc4 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 c983123ca3830e2c647b31d45e83e4cb952a1f78..0000000000000000000000000000000000000000
--- 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 234b98a893c853845279b144878b7eb422504dfe..1beb68a3af30adf45c42e6cc60f3a03037756a75 100644
--- a/pkgs/applications/audio/vcv-rack/default.nix
+++ b/pkgs/applications/audio/vcv-rack/default.nix
@@ -1,22 +1,17 @@
{ 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";
+ owner = "glfw";
repo = "glfw";
- rev = "d9ab59efc781c392128a449361a381fcc93cf6f3";
- sha256 = "1ykkq6qq8y6j5hlfj2zp1p87kr33vwhywziprz20v5avx1q7rjm8";
+ rev = "d25248343e248337284dfbe5ecd1eddbd37ae66d";
+ sha256 = "0gbz353bfmqbpm0af2nqf5draz3k4f3lqwiqj68s8nwn7878aqm3";
};
- # 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 ];
});
pfft-source = fetchFromBitbucket {
@@ -25,26 +20,59 @@ let
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.5";
src = fetchFromGitHub {
owner = "VCVRack";
repo = "Rack";
rev = "v${version}";
- sha256 = "04kg0nm7w19s2zfrsxjfl3bs4sy3bzf28kzl4hayzwv480667ybx";
- fetchSubmodules = true;
+ sha256 = "1g3mkghgiycbxyvzjhanc1b10jynkfkw03bpnha06qgd6gd9wv7k";
};
- patches = [ ./rack-minimize-vendoring.patch ];
+ patches = [
+ ./rack-minimize-vendoring.patch
+ # We patch out a call to a custom function, that is not needed on Linux.
+ # This avoids needing a patched version of glfw. The version we previously used disappeared
+ # on GitHub. See https://github.com/NixOS/nixpkgs/issues/71189
+ ./remove-custom-glfw-function.patch
+ ];
prePatch = ''
- cp -r ${pfft-source} dep/jpommier-pffft-source
-
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 +86,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 = [ glfw-git alsaLib curl glew gtk2-x11 jansson libjack2 libzip rtaudio rtmidi speex libsamplerate ];
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 77875415160ca93116773ca76f005d50718a768e..0000000000000000000000000000000000000000
--- 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 eca9c2f13c06268ff33453e2268f46e1918cfd69..d310d57835e4232b70a87e98fa03d0f2f813e83d 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/vcv-rack/remove-custom-glfw-function.patch b/pkgs/applications/audio/vcv-rack/remove-custom-glfw-function.patch
new file mode 100644
index 0000000000000000000000000000000000000000..ceb273b81af062f27f6cd1459c11d19e02256219
--- /dev/null
+++ b/pkgs/applications/audio/vcv-rack/remove-custom-glfw-function.patch
@@ -0,0 +1,16 @@
+diff --git a/src/main.cpp b/src/main.cpp
+index 0954ae6..a8299f7 100644
+--- a/src/main.cpp
++++ b/src/main.cpp
+@@ -162,11 +162,6 @@ int main(int argc, char* argv[]) {
+ INFO("Initializing app");
+ appInit();
+
+- const char* openedFilename = glfwGetOpenedFilename();
+- if (openedFilename) {
+- patchPath = openedFilename;
+- }
+-
+ if (!settings::headless) {
+ APP->patch->init(patchPath);
+ }
diff --git a/pkgs/applications/audio/vocal/default.nix b/pkgs/applications/audio/vocal/default.nix
index c4333b09f18f5385b0d6aef05cc84cad8321e08e..c26d8b6d3607a68a1ca863e78d207e83572d2297 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 0000000000000000000000000000000000000000..b27fdbffb7d68df846c0769ff663a6382b8b4cd4
--- /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 22594d3ec85ddeb52980535000d46268bafddbc9..967f3f4f92baac7a3a9d1ea26cbf54d7a24b43e8 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 0936fe5a8ed76b83a85fa81954a7ef442a3659e7..b8acaa5a7e49734ad9de2118d01abe40eb5cf31f 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/blockchains/bitcoin-abc.nix b/pkgs/applications/blockchains/bitcoin-abc.nix
index 479d175020b7de5c7f6ecd5ab02df97409e6324d..0c806a8901569c30974d3ee7103af69119de3e55 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 b20a6b3e8aa866c3f3ae5cb0a89428e041078480..61c2acab563a711e1a5f186ad830db4ec14753f6 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 5f347fe91e9c97f12e1256eae508f142f99e848f..fe7a5f991dd25a61ed6c1a081552ee8c0cca976d 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 8c276d6bb805889b785079ec5a5c15f20a7db494..0000000000000000000000000000000000000000
--- 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 0417d2913de58278e59917e3b4c405acee8e2654..09cb3c329b91d031cd99bc682622b698017f2a4e 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.15.0";
+ name = "${pname}-${version}";
src = fetchurl {
url = "https://github.com/LedgerHQ/${pname}/releases/download/v${version}/${pname}-${version}-linux-x86_64.AppImage";
- sha256 = "0sn0ri8kqvy36d6vjwsb0mh54nwic58416m6q5drl1schsn6wyvj";
+ sha256 = "0r7gm7q7gj39v36jd5xz20931za94nf2fpf3clbghkhlbrm0kbnq";
};
- nativeBuildInputs = [ makeWrapper ];
- buildInputs = [ appimage-run ];
-
- desktopIcon = fetchurl {
- url = "https://raw.githubusercontent.com/LedgerHQ/${pname}/v${version}/build/icon.png";
- sha256 = "1mmfaf0yk7xf1kgbs3ka8wsbz1qgh60xj6z91ica1i7lw2qbdd5h";
- };
-
- desktopItem = makeDesktopItem {
- name = pname;
- exec = "${placeholder "out"}/bin/${pname}";
- icon = pname;
- desktopName = "Ledger Live";
- categories = "Utility;";
+ appimageContents = appimageTools.extractType2 {
+ inherit name src;
};
-
- 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
+in appimageTools.wrapType2 rec {
+ inherit name src;
+
+ 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/monero-gui/default.nix b/pkgs/applications/blockchains/monero-gui/default.nix
index 92f6f00802193563f90d1bf7781b64e036748100..dde324b39e1305a382c21e29dfeaefa7d9c4f152 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 b6f0745286169d780e5ee856a6be915b383dc259..b526fb61a62e0d2786be13f2c3f911ad8d109e97 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";
-
- src = fetchgit {
- url = "https://github.com/monero-project/monero.git";
- rev = "v${version}";
- sha256 = "1asa197fad81jfv12qgaa7y7pdr1r1pda96m9pvivkh4v30cx0nh";
+ version = "0.15.0.0";
+
+ 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";
-
- hardeningDisable = [ "fortify" ];
+ ] ++ stdenv.lib.optional stdenv.isDarwin "-DBoost_USE_MULTITHREADED=OFF";
- 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 a6d4660dff11c59acd5fff274371f0f4c1d2c4e8..a26a1b7cc7717d37a952485e5399fd0208522c59 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.4";
+ sha256 = "11l93w97961zig4gqf345j9l20g0mjp7fayl1mdwdp14hhd5zk5g";
+ cargoSha256 = "1q6cbms7j1h726bvq38npxkjkmz14b5ir9c4z7pb0jcy7gkplyxx";
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 88d24a87e135b271b49f9ca797c988a2293906a1..299bb0639b6cb3b3a4068fb4bfc3e21bd1ccf9bc 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.9";
+ sha256 = "06gmfw5l8n5i35dimsmj6dn0fxhbp53zjrdvbkff63r5kfqnwnx2";
+ cargoSha256 = "1kdy0bnmyqx4rhpq0a8gliy6mws68n035kfkxrfa6cxr2cn53dyb";
in
import ./parity.nix { inherit version sha256 cargoSha256; }
diff --git a/pkgs/applications/blockchains/pivx.nix b/pkgs/applications/blockchains/pivx.nix
index c0833de7dbf36951060c47f17cee67a44519933c..22fdc7f51c5c4b5dc09b214423c89531265a63c9 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 100c0f8ba41f78c8dcd8cce8ffc2a47bf3271f48..681268b4f3272e34437157abad8e8450bafebcf6 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 933e5773edad2e50f7161f1fafe32eb5a0eb3d64..6a5532f92c95c7d353d33482c58b513f3e20b14d 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";
src = fetchurl {
url = "https://github.com/zkSNACKs/WalletWasabi/releases/download/v${version}/WasabiLinux-${version}.tar.gz";
- sha256 = "1i7fhaj9chjlm7qg0h3azy4djnm9rxskbr3dzjj0n9rw8cjdqyq6";
+ sha256 = "1dz05ivhadfjfp4yfpz492401yznm3rlnx7g4nqzxwh4cmqzisrm";
};
dontBuild = true;
diff --git a/pkgs/applications/blockchains/wownero.nix b/pkgs/applications/blockchains/wownero.nix
index 365afb5a24119cc8e4dd3508e5cdefc35f4e2514..8b25e098b2fe2b1e352de1bbca699157a26926a7 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 6a8fba3c2bb70c8d5dd35307e67985acc99d2c90..1852d72d326f7b77a447118b2521581ac9d59319 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 accdea3ae2d309fc5deafdd7d1284edfc3f9cc93..3128f125cd9ebabcf869d6511e8a76589b3f643f 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 0000000000000000000000000000000000000000..ab3ad2b10e4117f0428e206591f333d659096afb
--- /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 69635718e3ba517e04e7de6d1595e830359a17f2..b5b26d7cc4305a930e1a183dd7ec4aefb4b21ffb 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 1df67578b3ac3d2b71e73a44f004efc991b59b62..4d221e97099765aca5a567ba839c62d37266e37f 100644
--- a/pkgs/applications/display-managers/lightdm/default.nix
+++ b/pkgs/applications/display-managers/lightdm/default.nix
@@ -1,8 +1,32 @@
-{ 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
}:
with stdenv.lib;
@@ -53,6 +77,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 +116,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 0000000000000000000000000000000000000000..4498bc4d1a3e9e2882b23255cd44a7cf00bb89b1
--- /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 f892a9da50b985b3f39718f89f5dc6cc2a1b1f16..5b1490a6b3be58897d060e1516bbec66c059e3de 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 526041124bccf258f0c627904eb8f97da73ff006..735e83a0842a6327af09d59dd22c8e705f6b4fe9 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 e504c09e43e6b8b1c611d59d4464ef42aa06d0db..0000000000000000000000000000000000000000
--- 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 f2f5f1549930757913f4b0a6d4053a9c069bec6d..0000000000000000000000000000000000000000
--- 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 78f1454a883e0bf871bf197863b7dcd0a14eb8d3..0000000000000000000000000000000000000000
--- 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 5a8e07bfbf07e3d137661bf9c10925997416c3c8..0000000000000000000000000000000000000000
--- 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 cab5610f44fb6b4572850a90880893cd75198ed0..0000000000000000000000000000000000000000
--- 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 b1be24f3e1d6fb3a6e9ec29e4c87958be0525a7e..0000000000000000000000000000000000000000
--- 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 98692de431703a282a424ee6335bea97d3845072..31d0806df8a52e75542cf6a259ae434354447544 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 0d406ad2d36025bf222e15bf7cdf00df21191275..05a997c62ffa1044ac74bad4273a6c1f88f9a562 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 b5381983240a685661271fe6a769491c8fa3f431..c9bd1d089ca2bbb5ebf5d7c20500d162da95a9f4 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 3237c543ee69dc7b96647f7fb51d95eaaeb6563a..2e79b80d6105f347fc226cbe55dcbedaac255ffb 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 972a9daded411acb8d7e0cc7db3c5db44c7c1524..13db2d13567da8baada69d693da60ac2f1007490 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 cf7980582ff7792d9fdabafeba6302ead7815596..b2fdeafd37c3534d9f6fa653d782684b48a137d8 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/elpa-generated.nix b/pkgs/applications/editors/emacs-modes/elpa-generated.nix
index 7737034973af595b452ecf0f4cbf439b179691e7..a8d9a38729f4cc0a1a5e9393b49e69ce69bd71b0 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 fd62ea18b7135e43ee8a5ba61c302cfb639590a7..df94a7a650a50deffb760b963c41a1d375fcfde2 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 { };
diff --git a/pkgs/applications/editors/emacs-modes/melpa-packages.nix b/pkgs/applications/editors/emacs-modes/melpa-packages.nix
index fe440c146ae8eb65228e08b0eda6a1170a9f6865..e15da80b3b1bc78bbbce560f0ddba06424d38bb3 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 c1fad2dc86517ff439a4c2c9ff1ead68c401af99..f1833225013bf5285761e9d13e0866fdb54b0536 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 def54a99e68dfff9350fd97191f006c5ce7497cf..7a29ea7cd1dd12a76b42ac1b45f523312a7324a9 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": [
@@ -2326,12 +2343,36 @@
"sha256": "034k32xkr5ma415hlkbl35z0jxc4sa1inf87hg3y6lrlfl83fyjh"
}
},
+ {
+ "ename": "alsamixer",
+ "commit": "61a07f01ee94173fa59716d30b14a34ec967578e",
+ "sha256": "1kil28lpxaqnwgyw2h69dmx78q5lpn5k0l6y0fwyz2n6vayxw4yj",
+ "fetcher": "github",
+ "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": "693e11e8a99697ff8da1fe7cd9209af4e415fecb",
- "sha256": "0kh6fz38bzvqh78b17qa6riwnz6xvkw5w8rrlj413j4ypm464zxq",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "1h1hs0vxzmmrkf7mkm44lqb9d41jg02sk7iwb54s9g92rc7c10rg",
"fetcher": "github",
- "repo": "elpa-host/alt-codes",
+ "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": "17d5fda0b912813eb754f23547ad019e55a679da",
+ "sha256": "1p7y91hdd4qn0w09k8p1xna9c9lhqxsl4vlgmm214ybbvacrgm1n"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
],
"deps": [
"ewal"
],
- "commit": "62d0789cdcddd5bfcc85b37cf7398d616eecb8f5",
- "sha256": "1b6sdz6y7iaah1nnbv5qwwkz9dgc6prp4y5gmgz4fw9w27b3lbgd"
+ "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": [
@@ -41392,22 +41741,52 @@
"sha256": "11fyqk3h9cqynifc2zzqn0czrcj082wkdg1qhbj97nl4gcj787rl"
}
},
+ {
+ "ename": "helm-fd",
+ "commit": "ea8d504faa73bc0a649b13738ed7c6a76e2fad88",
+ "sha256": "1hlq0xxi616flykay9jr96rqgvs53dmlk50h25982jpl6xb63g9y",
+ "fetcher": "github",
+ "repo": "lerouxrgd/helm-fd",
+ "unstable": {
+ "version": [
+ 20190923,
+ 48
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "84a2aa656473f2921e35abad62b158b3813ee944",
+ "sha256": "14bdcr4db500sqv5p47jdkjp06hys35bpb07fp40v39r9pbzfdla"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "2891ca941b5a70facf35d5a8bbc791fc41ab0284",
+ "sha256": "16szlby36g393mwnywl59iyngrinnsd9xilsgadr6l9hngas4anm"
+ }
+ },
{
"ename": "helm-file-preview",
- "commit": "bf60b4c17c866cd89ff68b99aeb2941c6bc6d940",
- "sha256": "0y3wkj98nj5nnf5v5iqaihipyx9p902i152gbcrsqcjbpgw3wlhz",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "0rvwf54xz3wb640z0r8gsdv9frf650r7llviicvy5gmfddrlpjh4",
"fetcher": "github",
- "repo": "elpa-host/helm-file-preview",
+ "repo": "jcs-elpa/helm-file-preview",
"unstable": {
"version": [
- 20190825,
- 247
+ 20190903,
+ 331
],
"deps": [
"helm"
],
- "commit": "7b332fc3ceb730d054bac464b78e4d6e009ff432",
- "sha256": "0klcgqqyx4zkxy0vnqfkbydjv59za8g247x0rgk64iq62fsmm3k8"
+ "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": "7de4f54a959de3254a98662777269ec7a08adbc9",
+ "sha256": "06p12hxnrbcjdwr8b1rmbm7b4hwkhp7lsrw4j6fnnf1hi27hngsq"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
],
- "commit": "7424e71062f2cb969c3e9951203022414dea37fb",
- "sha256": "02rr81ddpand0hb3yaskklhpknnqfjkcqaa2w77xi4xlzjdima01"
+ "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": "1376d50f1fc91f9345351aeb4960b54bf83be59e",
+ "sha256": "06zp5kshcsxf91d4as0nw1ncxx1a8ii6npzvk485sjrghnldsccm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
],
"deps": [
"cider",
"parseedn",
"s"
],
- "commit": "5973bf9619d8c8b8f69824246210f31ea644127b",
- "sha256": "1sr7zbdbg3hkcbmpr7fwpw26d6j4vk0a3cxnlr2pq2f5zy9n0hax"
+ "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": "75bf6d3310eae24889589a09e96a4a855e1a11c4",
+ "sha256": "0dy2p6wyp5xqx4jnh1sf3v47dv09k7vv3c9mhjapcr1jpbpqj87w"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 0
],
"deps": [
"dash",
"magit"
],
- "commit": "5ff5648158413aec01ba178f349c33862e6e140a",
- "sha256": "1g1hawsmx2j69n25n2ip1lb8x3lshcyrn7f5w83dw56i5ywmyr0v"
+ "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
- ],
- "deps": [
- "xml-rpc"
+ 20191018,
+ 242
],
- "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": "c9f0f91437131dbace3299ff5912e85f07bf2b21",
+ "sha256": "0w51jv9jlkl35296g5v2q81mdrncsj2arnrnj8w3hv18dyrx2db2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 6
],
"deps": [
"dash",
"dash-functional"
],
- "commit": "114cbaf359b5f08a23fbe5c199cf9df35d39d4ae",
- "sha256": "1nmgbyv9lg1p9frs5mbfqnyblwb4f47kp972bavhni69qc6l33f1"
+ "commit": "7ea72ec530a340af61da215327a7fbb66a07ad2a",
+ "sha256": "0y1i4zpgmk6i2nj5l6dvdvqkp5a8cww8y4vcpps85blj586xgby3"
}
},
{
@@ -66788,15 +67518,28 @@
"repo": "akirak/org-starter",
"unstable": {
"version": [
- 20190817,
- 1823
+ 20190929,
+ 646
+ ],
+ "deps": [
+ "org-starter",
+ "swiper"
+ ],
+ "commit": "c9f0f91437131dbace3299ff5912e85f07bf2b21",
+ "sha256": "0w51jv9jlkl35296g5v2q81mdrncsj2arnrnj8w3hv18dyrx2db2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 6
],
"deps": [
"org-starter",
"swiper"
],
- "commit": "114cbaf359b5f08a23fbe5c199cf9df35d39d4ae",
- "sha256": "1nmgbyv9lg1p9frs5mbfqnyblwb4f47kp972bavhni69qc6l33f1"
+ "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
- ],
- "deps": [
- "cl-lib"
+ 20190930,
+ 111
],
- "commit": "5a5b9073585b7afb679e32f1d61086d9122c8b3f",
- "sha256": "1595ncllpfzgjwq8lwcpk8wxgjvcsigpppf6y5s8gj5g7rz4d45c"
+ "commit": "5ba2a16e1751446502652021942f59f2e36aea41",
+ "sha256": "1zgqg6i114g8nylyizrcdf68f35klc140x829cbjrkbssj8vck8z"
},
"stable": {
"version": [
1,
- 21,
- 4
- ],
- "deps": [
- "cl-lib"
+ 22,
+ 0
],
- "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": "3a0a717f2a24827667f34bc53830a3b81cd57460",
+ "sha256": "1r12r21882bq22w6cawf28ndf70nz2nd0f2wagdfr5a9ir9wchfy"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 3
],
"deps": [
"cl-lib"
],
- "commit": "0dab75b9f75dc2d0cf28f876cc9e2d127e6dca15",
- "sha256": "03jp4nhca78k8kl6r5g8c2spjxsamhmqq5p3fqhiniqm3sz5v6cf"
+ "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 29a6a8773eff83c9ad2012a7f281881da42da508..2862ba7184fa838f07c2d1f0ce09e2262ecec4a0 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 a30a8f702242de87415646d58a82a2c7e5659ccf..1e1a817f092db8af5e12a5264165f12c0ed42349 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 740d65838c3f2cd05195c2bb868cef6cd4fbcdf5..6ac2c6d4964cbba33b491f15700305ce09b0e860 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/jetbrains/common.nix b/pkgs/applications/editors/jetbrains/common.nix
index be20800cde295739088f20e948a0cd73439e5bf3..bca85c01016ad03fe09366544b7d5a568b77fb1d 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 a33b9531730f8579d1845a049d171bf012d4e0cf..48af3c9b014f4723afb6f99caaea36ca04578af8 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 f53d345d49ed49f539d26e12d75f3c4caa2a6eb7..4e92887bccb3ba0ff92cf5f88d27111f0a0e3198 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 0000000000000000000000000000000000000000..408cba45fbe644d8bcbde70d887dad84a37dfa6c
--- /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 48dc7106b6264bc3292d0d74c970cf5ca760f0c0..512f1f09207baac9c5fc7ab11ca815df0ef236e5 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 8a2474f0762242c4d08a1757f4a19a6483d519c6..eaf20aeadf8e80eb15c9adee819fc72e98b21a8b 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 9877c72252be8e338afae182f2a0a77bb397579f..dd0faf63453ba9b4d6680d0d98e2458ae5d6d178 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 0000000000000000000000000000000000000000..7abef93053109b5d5f33be6a34ad41432ed92af3
--- /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 76af06504ea3611e7002d55d6fa0a442f368e1cf..d328e47f7e1bb6d00262cd8a113744baa917828f 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 280fb664b8f4d52c6d8dec31f34ef883394b7af7..7658ba0f7adafaf52a64dde8ecbdb040f3c3d135 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 e367b586f307231751c0dfe1b2dacf8184b2d72a..7805234a70c09f7a81a494b07d93ff5d4eecbb98 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.3";
src = fetchurl {
url = "https://github.com/KDE/${pname}/archive/v${version}.tar.gz";
- sha256 = "1ilazq2y671wifcrh7pa0zf9yqymqxwj1m2kd389ik2p6wm68jx8";
+ sha256 = "0nf9nlykdq40yxdda0as16pd0c5rahwba1fbwni8g19w8mf2y3h5";
};
nativeBuildInputs = [ cmake extra-cmake-modules ];
diff --git a/pkgs/applications/editors/kdevelop5/kdev-python.nix b/pkgs/applications/editors/kdevelop5/kdev-python.nix
index 1052c5e1ba34244c7c7bd8ef3abe84e62bb8ed92..50740e24acad6fe1ec9c8ed1885f11b4ca582446 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.3";
src = fetchurl {
url = "https://github.com/KDE/${pname}/archive/v${version}.tar.gz";
- sha256 = "1nnspa1mixdb5z0a8m4nbpsk6c4s81iwrirhrl7091hsw02bsx3f";
+ sha256 = "16928a0p5m5mm38j39sxzfqy6rx9pv01aihk2kscdd93z7001b81";
};
cmakeFlags = [
diff --git a/pkgs/applications/editors/kdevelop5/kdevelop.nix b/pkgs/applications/editors/kdevelop5/kdevelop.nix
index 4c2011b5b035640f310343f6925318cf29cf7a2c..1f28c2a4af2a6cbcaa5d3eeae47b068759ec20a6 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.3";
src = fetchurl {
url = "mirror://kde/stable/${pname}/${version}/src/${pname}-${version}.tar.xz";
- sha256 = "1i665m4jd1r5bl77pcfybpn9szxzccrajs4m0prqwhlj93d57qjj";
+ sha256 = "0h07gdmg24d517im40b9kl1kzkkzwc9ig4crbl3y9iy0mbpm0hv8";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/editors/manuskript/default.nix b/pkgs/applications/editors/manuskript/default.nix
index ecbe7e8b719482a59abdfb0cd60939f934b22923..811284491dd74fe060c572d0ca2516355eee00b1 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 0000000000000000000000000000000000000000..f91d1d8fde61bcd26df137c6f70300a4264705c5
--- /dev/null
+++ b/pkgs/applications/editors/mle/default.nix
@@ -0,0 +1,33 @@
+{ 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 0000000000000000000000000000000000000000..e16fe8a8adc788c168533758919d050104b1a5b3
--- /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 92ff745d1a6ad7c0ec1e8ca7ef911b629d0a10d7..18f458fd85c74aaa1331ddf1df735f8f9491385e 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 83b14b4ea37dd4283903bcee89b7c1b1c3017cd7..3a46f68e77550e009951ca995d090f065d0d49cb 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 ec799c0fa49cca6a1561a509dc151d4c996d89c3..ffe597b00db8e833f8737a93b26e7f43744994cc 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 ba01304f723a9febba1c9cff8cddb404c9c4326c..38b92151b29f5a8f1d7b7e4a850615258c555cad 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 287758e0fd83477df675ca64a895ba6a613a2b96..5c7ddfb34d46fbbebb8ea2f625cbda600ff7a269 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 49ebe579ed4a7f79dd9cf428b6a05c3450608c3c..d9c3bd0825dec1baad620c2f3ec82f4353433a9a 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/rstudio/default.nix b/pkgs/applications/editors/rstudio/default.nix
index 74e5460f529fee7ae91b3b8bb0663190f70ff522..933644cc471763fe21346fe055c6a1e642be46fc 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 82d92ba2fe1185ef0d5b593807fa8c3c4a794d74..d72966e04401de7a817a2693573c1f5a179c7e4d 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 2c391cae517ba2d0f322d7abb7178e4f9438bbfb..8ca3f8cb2a9d3373cdf2ce630d7b0fb03867799c 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 2a4459ddc3ed42fd54ae6ba33d7cf4acfe499c2c..71043cb78fe13d69173bd0966e7856ecab76124a 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 04e2cb45e283bcd1c6f0874197a23525daade5bb..f986d79ec50b4dfbb64064d3d1c87979ae24face 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,
+ 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 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/tiled/default.nix b/pkgs/applications/editors/tiled/default.nix
index b0b80a4ec001d73093e7853b736d9f97fb841fe0..fa9cc155f36a8e9b18c5a2d70467660c37bfe554 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 7273b7252ca7c26484b55c1b66d9821a49273f9b..09baf383f97257fe84a4b6876e21ed6a2a86faeb 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 567da2a08f2063d568788c79f6a3526d58c44783..9d22cdbf4a862c8e27d9639722934c4ed2cd9a69 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.2188";
src = fetchFromGitHub {
owner = "vim";
repo = "vim";
rev = "v${version}";
- sha256 = "0cdfi67jwv8j982i1jxdfqv4aqglig8f0hzadgygk69i0wwkymwk";
+ sha256 = "0ixq96l991b84sj66v63ds61yr75gx5zz411213yn6bz3s2fvlcv";
};
enableParallelBuilding = true;
diff --git a/pkgs/applications/editors/vim/macvim.nix b/pkgs/applications/editors/vim/macvim.nix
index 6081bbc8b0ca28bb254976eaa082e4278d992855..043948df7b43c61d444878d3298f6ff1e299ce03 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 1b51732b918c491988a9ca4d685c94a04e605bfc..c08bbbea7668e27574251ee9e41e2bf44d3be048 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/openimageio/2.x.nix b/pkgs/applications/graphics/openimageio/2.x.nix
index 4e61fccaa372c8767957265e780344f5577a6f6f..69cc323b40f4c4613dac8f1a05fd06999e8b65a5 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 13a00991265f43c6648389d580f6fda2dc90e2a6..fdda8062a4334927750ebea200ec9b71b9c2c207 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 7b1077d18a9dfedafcfc1a43b23c6bc63545851c..3d6d04db553961f2aee9a96a8fe3c8c28c580553 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 db41ee0566feae5e6843401a8f14d3bf32e7e3de..78d16e692261187f60ba4f1df4922f065b4cfd42 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 f50af2925a3a65a1d2a0ee3fdd2146213cc5431d..35ab27bcbf63826a26f2f3b43cbaf79791da85d3 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 28d05480dae15dd659a0889e7571c0f17ddedbce..4279af4cb78b8915fe09c8053c24a570cc476884 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/renderdoc/default.nix b/pkgs/applications/graphics/renderdoc/default.nix
index 594429503a35009802f362205a6e529478787a7a..426985d312c7a279f5edead58e1c5836e4d47fab 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 0000000000000000000000000000000000000000..4e8519d17b6719257764e33b4ff62b7079c01708
--- /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/generic.nix b/pkgs/applications/graphics/sane/backends/generic.nix
index 0f47c82f0325324c5871c31b5b570750fe4838e9..92cec3ca82c220201a49dd6e37c3e0b856fe75a1 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/tev/default.nix b/pkgs/applications/graphics/tev/default.nix
new file mode 100644
index 0000000000000000000000000000000000000000..47da0b749df36732b043374d98c8c06cf43cd0c5
--- /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 4f5fb12faa62f01310b4b455c2e30acb560a2b66..a80e89e72bcda78e3cd1e2f05b95507535650203 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 5fc7e309f4df91952ddb082774bfe4d0d564a23b..fab85052df3b9286ace5b4609762a7f908ebc831 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 232eeeb01153c44c7e610dbeba70f68929760437..0f1020b0b07846f0b1cee847f4d9a0c6f6265e3d 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 41539f32b071e8052d5d5754b4e9c324f9ed04a6..3597b97fae6386b0543c72867acb274549bd6274 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 e545dd5a72307bc344c078ca632fd4859ffa0f54..9162e0bdef1385609180ce5ae9e027c144f81e3a 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 0038d41475fbdf80afc02642fa61241ed3e588c7..96515a137246c0056c9fb2a9a580fd486ca6e0d8 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 9b146aa50364713bf7feab66c4f089796c915853..70a716a760c68d73bc020d09c0ae30eb755c9ee0 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 241bb71983a06a8a9cdd7ec4b73f920b6fea7a96..76d4e989e8c31f147b09fa64fe969a85a1ccd035 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 ee19f5cebfe2fcffe72efc99974c54fcb30361cf..083debb1c99d6f0613a891d94d4b3801b39f16d8 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 95ff6cf198b2538eb2001bee855819586d1bab86..f01a57a55d4dd8310299581ba3b0d48121c46b97 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/kdenlive.nix b/pkgs/applications/kde/kdenlive.nix
index fa75dd1eb97a297495a131ee7391835b6fd19da0..b7c691e9594bd1b2619d4062ecbe0561104d8fa3 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 75c1bf5be8bf569e8ec314adcc0ae5e69bcf7333..0fe33ea017dacbe56470c17661792a3424c8e7c7 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 a58b3b8c45d888e6573f3e8a94bbf2f41f887a2e..ab24f15a14bc91d6de0331ded9b95dd18e7e24c8 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 004fc1c37ae267a0d0d0f3e6947ce6df050c158b..1be5b0b4a8945b61129606432c3cb6dbb2ce1a64 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 0000000000000000000000000000000000000000..9bfb66c1a839517a860366ac9070e0b637bf91bf
--- /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 d17ffb3c044460dced77372295bed4d7d114cccb..9f2117b41fb4dc4254dc0145d313ec4603971e0c 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 8ace4562cbd7123106845314b44e7b6861b0e5f7..f869f984e001870528435fee2444bb729f5830ee 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 0000000000000000000000000000000000000000..feae7ca81dec976b1c1a3c8d44e1288a6d81679b
--- /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 58eb288f6cc25917502089e55e256bd06afdcee7..2d46b3cdaab375f4c3647ffa5907b48bac5bc291 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 9e5346be9cd567df4d9049eb304e8c73fb0dd1b0..400dfcd7cec1d192c1c73e69b517ef20487812db 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 edcd08f2499976f2cb9bc5c6260969360f2e9146..1c409c232a82dfb1334be6aa0c67a32c67a51dc2 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 dddf8d93412dd9e46f5e8a6e618c566de3a901bb..24f788ef4687a30e19cdd9bdecccd167f62268e9 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 4997a9c7f2acbe455de750405cec7b441bdf97c0..06321d9d6218e0eb4ec8b514506581693348481c 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 e78ba2df9993d0a6914e917ad6bbacc8adfb4cf6..0d8ebccb3d025a3546724d3876bd14107cd3321c 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 0530ec9c1b80496f295ee5d3f532062b3cdf8552..68cd91c1676a4088ba80c47eae439b78f1bfb4e3 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 0000000000000000000000000000000000000000..f6c0b4cfd2879c52d43ca083035b645467594168
--- /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 e401a7c0b8e00a6e6152711e026101eda4be239e..d8325e19e26643e1f474407bacd166e65602ebfb 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/bleachbit/default.nix b/pkgs/applications/misc/bleachbit/default.nix
index 3f13972de9bb39fc55358d1a00807ac5d181fcae..01eb69baadd8b59f5965fc8a70bcc4a825c0cb61 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/buku/default.nix b/pkgs/applications/misc/buku/default.nix
index 60ade661cffd1c1e1ae0449ea447c572786c13c8..ac65341d4988d86337550387333c226163c810fd 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 402198a97322d781beb9721908a99e05d0478585..8f8934cb084bd22ca67deb845ef89d7f51226c3f 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 dd85156b3ef0a8dee83bede681c4798885b6018c..22ae573353ea7e159772b5f6aaa91ebea4d15810 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 5f4e24f4d3cca4d97cba1006242e3da65a097c63..1c33a92987c153396fb7faddc8f3770aedcc9c98 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 44612644359cca7c32e779feedff2522076bd388..e506829b575e25e6676543099435bae20d646ac1 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 f4a541210880bbbdafcb8efd2f14f970c760ebd3..0000000000000000000000000000000000000000
--- 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 357dd9bcb8a74b47e210ee468e8447001d9ccd89..a86c1e8bc055594f53f58ad10d16a3aa0ce606a8 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 856853e3b1cb8705ca43d6fd56fa43803a0025d4..d760cee6374d0544b28dba1d0def30571c9aa2ea 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 0000000000000000000000000000000000000000..ef47e3e035869060d7eaa85152d7d04121fd3e7d
--- /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 7a4e25560c7b710ad603336041cf97af23eba3c1..129516a44982092e5090b3efe32a1902df94db6b 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 9a008a886facd92db01d795197a13ba09a443b50..cc57e58c56a43ba0c62c48c65d1e1d9babfefdf8 100644
--- a/pkgs/applications/misc/cmatrix/default.nix
+++ b/pkgs/applications/misc/cmatrix/default.nix
@@ -16,6 +16,7 @@ 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.
diff --git a/pkgs/applications/misc/cointop/default.nix b/pkgs/applications/misc/cointop/default.nix
index c29d8684c9029a88ecc41df6886578f6ea66af9b..cba9c1d4227bc76e051eb1a8f8cc8e6024571f53 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.3.6";
src = fetchFromGitHub {
owner = "miguelmota";
repo = pname;
rev = version;
- sha256 = "0nw6vzp0c5r8bwnlvgzj4hzdah44p5pp03d2bcr1lkw8np8fy65n";
+ sha256 = "0xm616yjqf6qq98yjbdj6lihib2p4fh6jd91dcb59arkbs2l1nbg";
};
- 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 2aad4d352c97eaec0e9a9bdd3efbbfc274fbe072..825053483a4bda43dc99a64332c53d62559ff6c2 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 084881f75d977c595c54acf33e0a8dadfab64ba6..702a9c585a31289ade3a2db08add166decdd70b0 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 90f5f307d85372552aa727ecdc64a3bf35a3fa25..aad9b9bee89f4d4d0657ba52fcaf9a9ffb32091f 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 2d32d1895f9b6e9d17c3e26e50c103bd5fa278f0..c67fcb74047da054c8cf3a7e1a06d0b9c840e26b 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 4d32328af8b2b11c480238282a9df5337253e532..733aa27da854d5bac2506b26be3f221e0376c1f1 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 f8ffbf041bda7f6c03068846ee9e3fb893c28051..e6c277959e03f806433accb6a09ad9656b091116 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 2c666a98c8f746d7841a8110e77b026f37dc94ba..0000000000000000000000000000000000000000
--- 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 1ad755cdfbdd392f99d2792b385ffd7026c8f8b6..acffc741d57812b5957891cdce048826d151555b 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 bdbf8f24136e5b74f370c65ca6ab8a5185e3fecd..20c58ddfb1db79c15b522eb3183d65a471f9fc83 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 3e4c77aafc6a05e181d0c9e809d9c6b11dc5becd..06c5d158565243c782922ad02fcd0571c76fb0c6 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 2e82170121609abfd34f6d919b7e55ddfd960ba2..1549ab00a4f77280a11b978cbe3d7554c9c87e7c 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.4";
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 = "1k3aan290kfy2b53gl8r4yxvb8jas6sms1r052m3jld3i8frqgva";
};
installPhase = ''
diff --git a/pkgs/applications/misc/ddgr/default.nix b/pkgs/applications/misc/ddgr/default.nix
index 3cbb091a4e215d077dd4c5a66ab704a3c2bcb046..9b877c2594b3ef059448357f77fdaf90cf59c320 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 0016f89746d63a64369684b2b459406a48df65af..af47afcc601d1d326b909401605bafa2b9b8b70d 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 a4f6b1ce9881bd1829923ccd7060a45e6af4a2c0..a6ae45306552c673c64237577b91d4e298902edc 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 0b685e04a6fca138a6cf9c3a5d3ee29f527841f8..182ab51dbc2c68021846003b77833027dfcdb030 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 ae83802a7b4433a0938915a73e06edc8a231adda..5d99cbaa988cd6e06521d7e4bd00546750a9fdd8 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 9607f428ab9ee25bfbe973fb0dd3be9e12c77559..d0429d135d7550f7401ba4476b09bfce41a35c9e 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/default.nix b/pkgs/applications/misc/electrum/default.nix
index c48d458567dc1743fcd9a455df65e6f637ac8793..0ebeb1beffa1878b239dcd040918eff958d97ecd 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 a5e4bd74a6eb8d674414e6be5294eef204c525d5..88f44c6cc8531850c7e16ae2453b31dfa6c68d12 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 0000000000000000000000000000000000000000..acfbc7ec917f74e93d90ae7476310e4a61099ddb
--- /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 = "239.5";
+
+ src = fetchFromGitHub {
+ owner = "elogind";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1gdiy4vbx4gs2hnb79x14zi530mlq26glxpzp3c95w8l058wj4ba";
+ };
+
+ 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 0000000000000000000000000000000000000000..f67c15f0a994f183715c58a120b5c2e3386b5b5a
--- /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/exercism/default.nix b/pkgs/applications/misc/exercism/default.nix
index 6d04cef76ce7e2fadbb4e3098af4e0d72228e5e2..a071761599a31b6250ca85d7cf1c7b5a1ba2c4ad 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 10a6baa2241bf1cb468f7bc6b5389e6773989a7c..0000000000000000000000000000000000000000
--- 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/firestarter/default.nix b/pkgs/applications/misc/firestarter/default.nix
index e93d0ab69a7b87527f9a7bbb4bd726517b7fee83..82bcf5a4aa07b0de322cfb1ab513eec1767581d6 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 5df34c84f096e5e8c7c5009d1c98b17d7a8732d1..dad954900124de7fdb59f1c14990fe57b4531d92 100644
--- a/pkgs/applications/misc/font-manager/default.nix
+++ b/pkgs/applications/misc/font-manager/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, meson, ninja, gettext, python3,
+{ stdenv, fetchFromGitHub, meson, ninja, gettext, python3, fetchpatch,
pkgconfig, libxml2, json-glib , sqlite, itstool, librsvg,
vala, gtk3, gnome3, desktop-file-utils, wrapGAppsHook, 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 0000000000000000000000000000000000000000..d81e21f73ed92aca226fba19c2ba6adc8479a3ca
--- /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.0";
+
+ src = fetchFromGitHub {
+ owner = "Djaler";
+ repo = "Formatter";
+ rev = version;
+ sha256 = "145742dk16736zxj30rzn61h4k0xpggfsbqkxllxd302mgbmxlzq";
+ };
+
+ 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 0000000000000000000000000000000000000000..67c1d2b43cccb085482295e1e6e24f8ff0188b66
--- /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 169c5c11b8ce6fa4b847bbce0a6d7d899c6bc2a4..b1cd6a36e08551e4baa282568a09afa5b3551b92 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 6f380114a276690fd0c2885e3ec893e9946ea18b..8381f182e5d33f0ee92d4e5c22d72466df66830c 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/girara/default.nix b/pkgs/applications/misc/girara/default.nix
index c2b7487cd72f935f8cdba8d76015c887c728bb53..6bfb4907807a0bf7fde2b33c5666e015dc557606 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/gnome-firmware-updater/default.nix b/pkgs/applications/misc/gnome-firmware-updater/default.nix
new file mode 100644
index 0000000000000000000000000000000000000000..f05c5fd210c4f79e21f0c08dba1120c35ea3b875
--- /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 0000000000000000000000000000000000000000..11bfbaaacd078909661c8fc44b1fdc1835b0aef9
--- /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 eecf9bbd88f77ac3bd2c2e9917b39dd845af32cd..7484998ab2053ad49c0d01e25313443f69d43aad 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 7a918d961f63b0891d455b364a5f982f1ed41eee..41d535b35106058eb1257192e996092e1da3b759 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/gpscorrelate/default.nix b/pkgs/applications/misc/gpscorrelate/default.nix
index d10507b104497664f595513546a4fbbf6e1d54f6..bf7bec38afb50e444085cf5e9f69cc7592ee236d 100644
--- a/pkgs/applications/misc/gpscorrelate/default.nix
+++ b/pkgs/applications/misc/gpscorrelate/default.nix
@@ -3,15 +3,17 @@
stdenv.mkDerivation rec {
pname = "gpscorrelate";
- version = "unstable-2019-06-05";
+ version = "unstable-2019-09-03";
src = fetchFromGitHub {
owner = "dfandrich";
repo = pname;
- rev = "80b14fe7c10c1cc8f62c13f517c062577ce88c85";
- sha256 = "1gaan0nd7ai0bwilfnkza7lg5mz87804mvlygj0gjc672izr37r6";
+ rev = "e1dd44a34f67b1ab7201440e60a840258ee448d2";
+ sha256 = "0gjwwdqh9dprzylmmnk3gm41khka9arkij3i9amd8y7d49pm9rlv";
};
+ patches = [ ./fix-localedir.diff ];
+
nativeBuildInputs = [
desktop-file-utils
docbook_xml_dtd_42
@@ -31,11 +33,12 @@ stdenv.mkDerivation rec {
"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";
@@ -59,5 +62,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl2Plus;
homepage = "https://github.com/dfandrich/gpscorrelate";
platforms = platforms.linux;
+ maintainers = with maintainers; [ sikmir ];
};
}
diff --git a/pkgs/applications/misc/gpscorrelate/fix-localedir.diff b/pkgs/applications/misc/gpscorrelate/fix-localedir.diff
new file mode 100644
index 0000000000000000000000000000000000000000..5f9cb296ecd51ffeacb2dc50beae067a7e3f9fd1
--- /dev/null
+++ b/pkgs/applications/misc/gpscorrelate/fix-localedir.diff
@@ -0,0 +1,27 @@
+diff --git i/Makefile w/Makefile
+index 47919ca..408fd68 100644
+--- i/Makefile
++++ w/Makefile
+@@ -33,8 +33,9 @@ datadir = $(prefix)/share
+ mandir = $(datadir)/man
+ docdir = $(datadir)/doc/gpscorrelate
+ applicationsdir = $(datadir)/applications
++localedir = ${datadir}/locale
+
+-DEFS = -DPACKAGE_VERSION=\"$(PACKAGE_VERSION)\"
++DEFS = -DPACKAGE_VERSION=\"$(PACKAGE_VERSION)\" -DPACKAGE_LOCALE_DIR=\"$(localedir)\"
+
+ TARGETS = gpscorrelate-gui$(EXEEXT) gpscorrelate$(EXEEXT) doc/gpscorrelate.1 doc/gpscorrelate.html
+
+diff --git i/main-gui.c w/main-gui.c
+index fdace6f..8a6197b 100644
+--- i/main-gui.c
++++ w/main-gui.c
+@@ -40,6 +40,7 @@
+ int main(int argc, char* argv[])
+ {
+ /* Initialize gettext (gtk_init initializes the locale) */
++ (void) bindtextdomain(TEXTDOMAIN, PACKAGE_LOCALE_DIR);
+ (void) textdomain(TEXTDOMAIN);
+ (void) bind_textdomain_codeset(TEXTDOMAIN, "UTF-8");
+
diff --git a/pkgs/applications/misc/gpxsee/default.nix b/pkgs/applications/misc/gpxsee/default.nix
index 6e9296da267b40c4da0606ac1d2663ccfa60b1a1..674b0061d6da3c7079fc3cfd88e9112e21130990 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.16";
src = fetchFromGitHub {
owner = "tumic0";
repo = "GPXSee";
rev = version;
- sha256 = "0c3axs3mm6xzabwbvy9vgq1sryjpi4h91nwzy9iyv9zjxz7phgzc";
+ sha256 = "1mkfhb2c9qafjpva600nyn6yik49l4q1k6id1xvrci37wsn6ijav";
};
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 7f2057b2947ad4fe228746ac3331ec386c12f08e..68d373d7a9a128cebd5026efba5016a16c059b57 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 97303c43fb1a53c1da9c72deec76db60537c42cb..d403ddc8b26ca56a912f4969b989bb831b0079d6 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 ];
-
- buildInputs = [ gtk3 keybinder3 libnotify python3 vte ];
+ nativeBuildInputs = [
+ gettext
+ gobject-introspection
+ wrapGAppsHook
+ python3.pkgs.pip
+ ];
- propagatedBuildInputs = with python3.pkgs; [ dbus-python pbr pycairo pygobject3 libwnck3 ];
+ buildInputs = [
+ gtk3
+ keybinder3
+ libnotify
+ libwnck3
+ python3
+ vte
+ ];
- 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 a7313e7c969b37738bbc4c0fcee2468f7d71cada..ce0a6963ea99758d7323459a9c30e03e58e6ddd9 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 7d19a9cb1108a82eb34130e415930aad570c0f69..6e6145e790863abe10e14b3d0eb07254c76b6f7f 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/hubstaff/revision.json b/pkgs/applications/misc/hubstaff/revision.json
index 3170a63379cf0e039e40e7e6de411e8048eb1b7f..2fd29444dade5309b7e10c4dd419c0dde0bd1c7f 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 720445be9bea6292f5fc06ad071a20a641dda1c8..840f4c32e52a4b7ab01e6499a1388558c44b4d31 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 64e0f0d325b5f3c20fdec93e58db350f891fe9a0..e46df5d59e0e37ff7a1ee826ba4952e433f016bb 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/
- 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"
- '';
+ ln -s ${desktopItem}/share $out/share
- meta = with stdenv.lib; {
+ # 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/jgmenu/default.nix b/pkgs/applications/misc/jgmenu/default.nix
index 879f344a5afb344dedbcfd45e13cd3ba3a07110d..31568c7b0fd636f7e511500e168247bf759df72c 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 410b04d5dcbdece1854ff3acfb7db431b55e7e8d..ff0332e1e5ff4f3a7a875cf6020b7c7cba1695a4 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 4b70530987f157c5a4757bea5a7972eba76d25e9..857cc6c74560e5f12bd45710725b3436da1b5da4 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 0000000000000000000000000000000000000000..a5196811a6a51b552b0bf814dfe3311d42dd3636
--- /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 9391fe88c5eaaee8d3da23ef4eb043e676101d16..a2eba8e08c2730eed7b629baf5ae7fdd65c880bb 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 0000000000000000000000000000000000000000..3a9eca30e751ace88b6776867d5c07a85693ee75
--- /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 f1b4170fbaae9368fe26fb45f2f80a1c2e2b0c84..0000000000000000000000000000000000000000
--- 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 0000000000000000000000000000000000000000..dfab99fd0130deaf3323586d1fc49dd0e86e3387
--- /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 0000000000000000000000000000000000000000..0c59a1d201630bce61819e5cbd66607e9277f2b8
--- /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 b882f5b949c38871111a40f007b33d4004cd2873..adfee9ae282f369604fca8d32f3d86140b11b0da 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 0a42d5e4f289c3312ab09ddbd4938aa908833578..0bdf8e49d969f9f8c3c38addd47a3e8218210ebb 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 2af091b0df38768d6ba6e53b1c899fac41581beb..4c4b461303fbaf9fae16f2a4cdac0a3ac47512d3 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/keepass-plugins/otpkeyprov/default.nix b/pkgs/applications/misc/keepass-plugins/otpkeyprov/default.nix
new file mode 100644
index 0000000000000000000000000000000000000000..e2b26eaee9014476a7a7d933a8ec5684d744f8a9
--- /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 22e6cd2f6667b521c3309f658711d8ad96069a25..6701c910a1fccd0f21f558807a2ef2885f1209c6 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 6aa94b2fecb8153b53206e9e322bef7a145904e1..756c8e2597180c4a30a14b47c42d5f1eb3d2a7f1 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 99b9c38d53f87c8cb2a60327cac1ec33e4c2e9b6..1c6708c51c97183330d796062a0ee78b4f7e999d 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 3b7e9e9d139d72d826c17e2838442fa07a03b8b9..e87d09b50ccf3fcfdc80163c1333dbce60e6589c 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 cf81d572c61120a68ed184652b1d4a0fbda1c45d..15979def34b03c0352fef27dfecfd74b83a2e0b4 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 81cba3f56378da1e9d63c8ca011eaa73111c5a3a..c7f54990107f968fb2462f15d481f6fce7eef7bc 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 09089a072b3c1a03c41f98fd41fdba621205369d..142dafe38eb16948b90360f07b6c9365286580a5 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 0000000000000000000000000000000000000000..04701e5ab1eedd831745a675102382ecf08a1c78
--- /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 c66ef21416be256c4b0bf4b1d84e25cb7f0c8d88..2c2acb6a74344de70442ee23e6038c7a40403d13 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 25d503290ce8c01689bef0b3162ae0e512e95a54..13dbdb926c8fcc0bcdcfaf6611a441093060f636 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 0000000000000000000000000000000000000000..5dd5fa0f5122fd26f05ac81426cadb4e84dbfeed
--- /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 ab40dfc8131b81045ea42f30a3c9ccf186e2c16e..16bf65262cc319464437fab286dc43df3df6b831 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 744d124f84d58452a3fae8d12d1a9c9aadaf8e4f..f7964e4e5c6df01356db0c0a84d14a6fab657d30 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/mediainfo-gui/default.nix b/pkgs/applications/misc/mediainfo-gui/default.nix
index 9eb4a0897d4fc061e7505f7dfd40d5abc0e276b5..b84bc08ddb374fae75fb99619fd2230cc34f1ebe 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 98d5ef72b224718f46471e40274c77674d95ef42..f084d17e3896a7d96442fe96f49baffcda20dbad 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 bc753c5a7a9acee1704f399df719fc652f8b49eb..6e51e3cda762b3d1334da79689e1e3e9bb3749d8 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 0000000000000000000000000000000000000000..4b92a43451a3cadaa6ae16d757614d9903be0ed0
--- /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 0000000000000000000000000000000000000000..ddee1939b02a55f456fae5770e041b27a50e4a4d
--- /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 d6153d2268b6cf6500f6fc39feb4e2e7cc1b29de..12a0720e44730aa0ef92da4b7f01b370056c9059 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/mupdf/default.nix b/pkgs/applications/misc/mupdf/default.nix
index 9219c4e2e4238f563e229c555412482f1efd71af..32c117c01738bb348f5df8256366380deafaecf5 100644
--- a/pkgs/applications/misc/mupdf/default.nix
+++ b/pkgs/applications/misc/mupdf/default.nix
@@ -9,29 +9,21 @@ let
# OpenJPEG version is hardcoded in package source
openJpegVersion = with stdenv;
- lib.concatStringsSep "." (lib.lists.take 2
- (lib.splitString "." (lib.getVersion openjpeg)));
+ lib.versions.majorMinor (lib.getVersion openjpeg);
in stdenv.mkDerivation rec {
- version = "1.14.0";
+ version = "1.16.1";
pname = "mupdf";
src = fetchurl {
url = "https://mupdf.com/downloads/archive/${pname}-${version}-source.tar.gz";
- sha256 = "093p7lv6pgyymagn28n58fs0np928r0i5p2az9cc4gwccwx4hhy4";
+ sha256 = "0iz4ickj52fxjp8crg573kjrl4viq279g589isdpgpckslysf7g7";
};
patches =
# Use shared libraries to decrease size
- [( fetchpatch
- {
- name = "CVE-2018-18662";
- url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=164ddc22ee0d5b63a81d5148f44c37dd132a9356";
- sha256 = "1jkzh20n3b854871h86cy5y7fvy0d5wyqy51b3fg6gj3a0jqpzzd";
- }
- )]
- ++ stdenv.lib.optional (!stdenv.isDarwin) ./mupdf-1.14-shared_libs.patch
+ stdenv.lib.optional (!stdenv.isDarwin) ./mupdf-1.14-shared_libs.patch
++ stdenv.lib.optional stdenv.isDarwin ./darwin.patch
;
@@ -72,6 +64,7 @@ in stdenv.mkDerivation rec {
EOF
moveToOutput "bin" "$bin"
+ ln -s "$bin/bin/mupdf-x11" "$bin/bin/mupdf"
mkdir -p $bin/share/applications
cat > $bin/share/applications/mupdf.desktop <|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 1ed54b05ec8c08be212c17ecab95c06a19658c7e..b1f4e5f9e42bb1f504673b03a0288f94a20ea9d9 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/applications/misc/pytrainer/default.nix b/pkgs/applications/misc/pytrainer/default.nix
index 7c560cacda121be1ad4780ad0a2cb6cb8092b652..0375b99af483e3ccb689d9bb492104c47faeb9e3 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/qlcplus/default.nix b/pkgs/applications/misc/qlcplus/default.nix
index 8fc890f42439d100100c6510f87d2bc77eb26f82..c0b844d121af9e0f5031b6d86ec72e0df50e4a68 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 335c583998fc901913ced3e765bb226cb3d75062..21fbbf3253f79b5c91e01c3e0d0ecbdcfcf5ce30 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 ab15855b910b7f276982a37800f156e444160a7f..b7c137258fd97d501bccdd149c368aeec71fb30a 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 81aa18c9f2404b6859de202b4a3c3c85739ae29d..4100ab3536b7c489c417b0ca4ae631718703fd5e 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 d942f999f69719aecea7c6907d9ab509c87dfad0..21d51f172582d37d088489aed27195a08cedb50b 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 1fccada4200376d89c8bf5e4ecec6c64d5bfd1a5..1256bb96608febc65a1514c80693b424f8d2a381 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 ad27c9b13a616195312553b7be005f2ede27c08a..b751560b301af1626594b8a5362522c1bcf238ab 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
@@ -50,7 +50,6 @@ stdenv.mkDerivation rec {
gobject-introspection
gtk3
python
- hicolor-icon-theme
] ++ stdenv.lib.optional withRandr libxcb
++ stdenv.lib.optional withGeoclue geoclue
++ stdenv.lib.optional withDrm libdrm
diff --git a/pkgs/applications/misc/regextester/default.nix b/pkgs/applications/misc/regextester/default.nix
index ca362bab2ec9f7322c6ecf0392913b8014c54de5..816a158c0319b6020903e4b88d45ad7aba56506e 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 cd232088b5bb81deaa7e3ee15ab7e507311e4f95..13ae1f1ba7d352b2c5cf29bef48909def51ae197 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 3dbe7790d185fb06264154f5eb5c566bef5cc4ba..d02296f0e16d1a8acf9d6876a65c47eaaa2bc6e8 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 0000000000000000000000000000000000000000..3e67e4ec085f5e2350db04ba632ee6f6e0bbcf2a
--- /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 8510d50194249f2c5007819ab5a689d8cbf747d6..f646b4739154ecb997232d206f171eac835c0a35 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 e3edb539928977ad109b2e082d5dec1745e2e2de..4f8315f060a74ab443e88d6d75f693fda06fccf7 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 1ec2665c6769bc0cdf97ec0ba7b047fbb4dd0a44..c403f47516858ba823a1818f070ed2fd40517eb7 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.5";
+
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 = "1a77slpm7yga5vh3j1y440dq2xgv4pa6h8xg29rdcs6zig55pa97";
};
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 6a16741a06b5a4c113f1860270eb218caf2b12b3..be8e210540101d5be043d726781d59c16db8f25f 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 cf5c4625c952ac31e682c1d092897911f8d0bfdd..a32709294175b4ce5f3fd369796c3dad43a99aea 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 f2e1aa6bdb6864191f0e42c61ea79f793e6bc43e..722b0bc5077e7d985eafd8c71c449c9c473af7eb 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 ecaf9d5a34a2d8259da6e44f2044fb3b2c9e8800..a3247b29fb8e181df9f6a55b50b2346d25746cea 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 c314e8ffe5acdecf5598f6103574a0d1251d7627..c12f5b176790d6e4ddcff45a503ea99de2bfe1ac 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 0dc8f3bf38e48dee21607469f2c4f9419f8a9023..816ae664f8e8ce012435e8f53d5f4f7565e9b704 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/termite/default.nix b/pkgs/applications/misc/termite/default.nix
index 6a9de3644469ab43953a2dc2f248bdec521442d5..2a610edde0346f9bed6863d0117cca8c7aa863b4 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 aae17905cb715d788d71e1bfabad25d956a219c2..922b3fd202865556e8c520584322a6f27275d9ea 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/tint2/default.nix b/pkgs/applications/misc/tint2/default.nix
index e612fb10ff8c291c4a3773607cd4b0105360a56f..c85feff43603aee1a7c6a5d66631093133ac69dd 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 0000000000000000000000000000000000000000..8d84ab59d479e90faa50f0431c1cca67deea4304
--- /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 3ef0eac2417a4a2092eb15ddca91492b204527a8..ead8d7298e66a641da6916577753888f6ffb2049 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/todoist/default.nix b/pkgs/applications/misc/todoist/default.nix
index d9dcee762cf385710d6f9d3fad8857fbccfff40d..eaedad167489e623a002d20f98c8a20e90be22f3 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 425ea8d237b337b0f1d59990bfcd3356178db9bc..13e0cdfb26072b519615484af8bf7feea84e62d6 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 4ccf204357ca08a23fde2ea8e7bcfe14e6bf935a..15c675c902fbbaf9cfb2fa862a97f7993ba5b8b5 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 2aef45748cac912dff1b8d7ef811828fca158ef7..cd58219721c97269bd6a64c206130359b8e1e8a0 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 459104aba6387d69fa542619a2b48489930164ba..63892439fa03c1fdc78dd2452bde5bffc98006bb 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 3db6f6ae565d0db3d895ef0a1548c65eee54578c..9fa284aba434f157f33f159ac3b9cb0f0144a3b2 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 87800cf90d6de3f67fec57bd18fdddc04709b630..791075e4dd9b74f5d430f349d58339a08db67a0f 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 0000000000000000000000000000000000000000..6d8da4a1007a3ae389d30502d06059ddc561790b
--- /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 9639cee2d8c752f4b50e023a91d0a6a625028942..fe1de349cff92385aca1916aa8a74400d5764aa7 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 b6a8b567a5032cbfcf2a7a76a621700f61d52a3d..680573fd304d121355d044ecbae7c9bff209d3e4 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 cda3b1a6f8503f7b9411a08888ade6704a2fbdc2..c5ba35d974755c761f8bc2d3183ecea3d2584de6 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 3eb797f182e7d0346845c95f9d11629edb0c4926..9953af19d90d5eec775c26323840e648de8bac6d 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
+ ];
- postInstall = ''
- wrapProgram $out/bin/vit --prefix PERL5LIB : $PERL5LIB
- '';
+ makeWrapperArgs = [ "--suffix" "PATH" ":" "${taskwarrior}/bin" ];
- nativeBuildInputs = [ makeWrapper which ];
- buildInputs = [ taskwarrior ncurses ]
- ++ (with perlPackages; [ perl Curses TryTiny TextCharWidth ]);
+ preCheck = ''
+ export TERM=''${TERM-linux}
+ '';
- 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 e381af4f403e4b2f8b2fa02ff8a530fb617697cd..b2a3394f8aecb2b87b548003bdbec2e6df2169fd 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 03f3caa4c1515fe3ac7e3f318a632da08d8b1571..567d299fd3a6e2cc2df6aee699d4202517027a00 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 0000000000000000000000000000000000000000..4cf4792696d4ce9ae9913a685a876a9e699de016
--- /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 e5b89ff43b5bf778b5f2a0f737d376af897e1eca..6ff09a5b4b0e31214dec2845a5436fbb4cd622a4 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 a3c9d735ff8d6ec54b3adf58069c7acc34197905..9ad010deb16da187ce6a51bd5cf4c69730471c4a 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 60ff84ffe59332998ebd44fbf5d12842042882a0..f20c4aff1697eb5e460449997e2be8df740394c6 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 a7a6500fd22afea7afdfe74630db53eb0f52cd27..6a5e62f54e1e5edfaaf6a4d062c7332a2588a839 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 c673002fb511040f5809e55d4cf900777158d950..f65f5bc26e8ba664d461ab3905f41762abe64553 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 8a46336c9de28deb37fe885511b972288127524e..8bd45e2f6138cac017dd54fd9f65c8eb278243dd 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 = "3.2.0";
src = fetchFromGitHub {
owner = "xmrig";
repo = "xmrig";
rev = "v${version}";
- sha256 = "1m0rsjb7y1j77mzg5cqb3fdvzgvjkrwgmkjn9nv1xl2757z8hcl4";
+ sha256 = "1qb20v3wvd6scx0dnlcqvj947ng4h0lxlvl9kpz0a2a3l5425rjf";
};
nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/misc/xmrig/proxy.nix b/pkgs/applications/misc/xmrig/proxy.nix
index 7d9ebca0086c4b88e4b9cc47a6558e4e299a5cda..54fdbdb7cc19a527bd1dfdf64a322878770cec1e 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 bc91083892dbf805737c57d2c461c23acc854166..40f7ef9da08e14f45b2d0229326bc803a8dd2a45 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/xterm/default.nix b/pkgs/applications/misc/xterm/default.nix
index 60231350edbc9ad62a105c793d7d1bf774478e1f..83ba28bfce37d0736606a49f7aa2754ff4678b5a 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 8afba9353ce1fe40b6a16f357233863927b71ebe..99729125b63180e5ca6eb64e9ab1a5517c2a9ae2 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 2ebc640d683da3119c043dc8f09c51a62bb96a90..d8c1364d3957339263e0fb0034ed7a5e7b83a850 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 88e4a90439317e43794b0b732dff7168af4e5a5c..6c8ad97d3556a5fe5b1977b83c68b1f6585a5028 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/default.nix b/pkgs/applications/misc/zola/default.nix
index 7418640e072b0b64de0c8c321ee8cb0c38e8c813..b9231f8f0935f08a6edd8b4e9ee0d6deb45122b0 100644
--- a/pkgs/applications/misc/zola/default.nix
+++ b/pkgs/applications/misc/zola/default.nix
@@ -2,16 +2,16 @@
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 = "0dbj2rkn4k5glnwdazsvjhah5pj9cbdb8hwlvm5q4njsmrgpyaw5";
};
- cargoSha256 = "1brmlg6nqyls1v62z0fg0km150q9m7h71wy67lidcnw76icmqr24";
+ cargoSha256 = "0i0xqbpbv3md42d2853cfzkhfwlkvxahhz5dldla5x96rm1i2hr8";
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 ce5c7fb41f1f79ad28f24d7358a78aab8dc8527e..0c8136724ffc15e48d0366963e0ff79c75ce9de1 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 45fb820a076ca75ff3259a227aa99fbf82ab1de3..a19e07d8d933346c90691060f59c64d912ca8ed6 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 8bdb33ed5d22a3361de268db6e6fb817586b7468..ad7fa78527cd3dca19acf76fe44bc53ba0fa356f 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 a3645e97e255fc4f83578d18413b80969ddd7373..3f7782bb9192456dd1b22c13a3ee3b807273470d 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,6 +147,7 @@ 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
@@ -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 3178e2595fc5852f4ebc9907bcb6211b20bfb48a..8329bf3ef55068b2ce0007363fec39162e58b67c 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/jumbo-sorted.patch b/pkgs/applications/networking/browsers/chromium/patches/jumbo-sorted.patch
deleted file mode 100644
index cdf0f695f7612601ee35597004d3e6463c83dec4..0000000000000000000000000000000000000000
--- 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/widevine-79.patch b/pkgs/applications/networking/browsers/chromium/patches/widevine-79.patch
new file mode 100644
index 0000000000000000000000000000000000000000..1a3ab33e36f102e9d8cfa57ea46ac36c382f8331
--- /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 90a13928e3bd8ee45dc94fc00ee1ebf75ca21dde..2de6024141d7f321a7aaf2d4c53e4b13e347f61a 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 a0ea67133c6fc9c1f421f5254be9f80f4ef885f9..0571185674394197fcdba2f8ee3a8535b4fb2653 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.270";
src = fetchzip {
url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz";
- sha256 = "0jqx68lfqjpy6wbxdi0giclvh9mc9rha92hqdj1nx42v95k3gc65";
+ sha256 = "1z8nfw7b3dsy79gb50bmmdjz66j5gx6m0hkw1abp35xdgh2sz2ak";
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 14799e9f96cc35ed421fb502fc7b0782d27597fa..2e7fcb09560ae23e04e65ba4417ef8e241cced79 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 = "1n45pfpjqrpzmy7k2ps498mm273bpzfda58dz78lbdm6r7z3s7av";
+ sha256bin64 = "1rf31v1ipix8c6q4blqjrn2ap3pxnlrpfx7037qjpg84zhip0zpc";
+ version = "79.0.3945.29";
};
dev = {
- sha256 = "0x5r6xqwiggwyzbinm252xc1n3f9r7cmmzj6assi4v1nsispdh2k";
- sha256bin64 = "03yymhbpd1snycmcv7wkg5j6zbydvyc365gy5myp7wgas7cd0mb6";
- version = "78.0.3887.7";
+ sha256 = "1zj0nmj1687xsyzlh1hy2wblxv1qgdy2kj9h8bmqhld16laxwqw5";
+ sha256bin64 = "1x8wpdz18cflvj2ambqwyhzq206dil4szh1s8paqw1jwncaw7gjf";
+ version = "80.0.3962.2";
};
stable = {
- sha256 = "0hajwjf7swlgh1flpf8ljfrb2zhmcpzvrigvvxqd36g3nm04cknm";
- sha256bin64 = "0hdsla8i3q0zbczia64ghqsf420alcc31xdishx1sv48x3rlrxkk";
- version = "76.0.3809.132";
+ sha256 = "01wx5bi397d80za0sdfwgfbjj6n2ad2i31zmcrhm6wzryjwrmx6i";
+ sha256bin64 = "1nwhyasqxkxkx5pn2j9dx95mblj5w7fkh2zwvjz763b331w65ivp";
+ version = "78.0.3904.97";
};
}
diff --git a/pkgs/applications/networking/browsers/eolie/default.nix b/pkgs/applications/networking/browsers/eolie/default.nix
index e067f3f15eb5ea329ff1a5d98c6ce2b973f0ff4a..b9b183a03ff355452d07852260749ef96c025e6a 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 369689520d8ad33f270d736dbecf24d924e163bf..f3fc9ab6ecb6b0645ed71317e968bdeb6065cf71 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.0.0";
src = fetchFromGitHub {
owner = "cassidyjames";
repo = "ephemeral";
rev = version;
- sha256 = "1xglhv4rpl6vqryvliyvr9y8mqli4x4bjcfjsl1v8gdxkzkwfy39";
+ sha256 = "0g9rrx41grmgf4nn2pp17yhjxxayk826gs6nmkfdnimd4gmlf3nk";
};
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 50b7153533dc6ab9aeb64580d4f27296c976cf9c..d70490f82184451abd43196264a96116983aded3 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/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/69.0b16/linux-x86_64/tr/firefox-69.0b16.tar.bz2";
+ { 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/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/69.0b16/linux-x86_64/uk/firefox-69.0b16.tar.bz2";
+ { 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/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/69.0b16/linux-i686/tr/firefox-69.0b16.tar.bz2";
+ { 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/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/69.0b16/linux-i686/uk/firefox-69.0b16.tar.bz2";
+ { 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 a9ca0a5fe06b51fa426d63fd22c91f9086d52fbb..353b350f5fb69be9b93b45dd1ef5a173af4824f0 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/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/70.0b2/linux-x86_64/tr/firefox-70.0b2.tar.bz2";
+ { 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/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/70.0b2/linux-x86_64/uk/firefox-70.0b2.tar.bz2";
+ { 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/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/70.0b2/linux-i686/tr/firefox-70.0b2.tar.bz2";
+ { 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/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/70.0b2/linux-i686/uk/firefox-70.0b2.tar.bz2";
+ { 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 386707351108688b62946ced8f03cb25241f0b23..7b74a1094c7d4af68f26e73e32f03ff2a7f82506 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 e1d4014c83bb5aead6f0269c425df20c87aa7dae..b60d1a8e8f32954512f40c0b438ac4992cd130ff 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/links2/default.nix b/pkgs/applications/networking/browsers/links2/default.nix
index 7bb443e22c333868835e8a34382a8735b8b16f36..b09be81cc418fa0d4e7bc904640ee3c560552ff6 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/midori/default.nix b/pkgs/applications/networking/browsers/midori/default.nix
index a0bc0c743e4694a6e6e79a859a17775e877dee7d..1d1928d168b6bf8a4b639a50dfbcd651f2981097 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 772ca926cd7565bbb3cfba6663f1105d05c94ed2..29954e4129e0332677cc6d110e1f89a67d99617b 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.270";
src = fetchurl {
url =
@@ -85,14 +85,14 @@ stdenv.mkDerivation rec {
sha256 =
if debug then
if arch == "x86_64" then
- "1f5i64nzkvxy20vi7kldaamwp6pi2zgmjiw061cgqrwf7hj45wkg"
+ "1c3dn4gkl40i5sjkvpbkn9fl82vjhy1v7dhrayk3ncfsxcyvbcm0"
else
- "09jvxqp83hpk89ak8flq14s3s3nhy3ary91jc6k47v325axh1cl9"
+ "1g7i9mihn5g9i71xyf805k19yk41vsr85gzk87gm426m0hcgg89i"
else
if arch == "x86_64" then
- "05gvssjdz43pvgivdngrf8qr5b30p45hr2sr97cyl6b87581qw9s"
+ "16lxgkbr2hg49vhc7414zkh1kblhysf779854faay308ml3i5kdw"
else
- "06l7zhgh5rfxxw46b500zdgcqsk2h7kivng5b0b74s3vy7f0g270";
+ "0jrdzm8pw7aq32w7m4rvkhj7mmqyddh5yxpj7q3d9hxrwshkikvj";
};
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 c603dc6cf9f01fe55a6ba48c8de7012fabb93669..27ec18aa6c88f91abe616fdd4dd1ef36b22ccc48 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.270";
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"
+ "0k5azrl92hkbn7adjz7s2lv8h59n7gsjrcprqdc485i4f7sjmkwj"
else
- "0am95xi2jasvxj5b2i12wzpvl3bvxli537k1i04698cg0na6x0y0";
+ "1la5s4wxchfpl8in576xj675yrg84pify22pwf063h0jg3rdgi68";
};
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 0000000000000000000000000000000000000000..6ab5337631099d7609df6706c048e6a37a7206b4
--- /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 0000000000000000000000000000000000000000..9b537c55337674a1a262c7f1f794e11844bf76ae
--- /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 062d2e6582b116e8be7d70524ca9afa45c54d6d2..f68f34c68e5db4dbe52a42f4777ef7d09214df86 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 {
+
+ 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 .";
- # These provide shared libraries loaded when starting. If one is missing,
- # an error is shown in stderr.
- alsaLib.out
- atk.out
- cairo.out
+ 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 66b947946cdcc51cbfb39c6a57da8607a5e51cfc..07234f59a8eda2488a8616b9756742e332d3b25e 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 05eafb48e721c33fd88bc7dae20c73e86c329795..7b13d748fe05425f245fbcd4f1c438cac45808de 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 d9d4fda1aeddbfa2e47124bfc3ae4e9f23f4e0ed..0437ab933bd75081d1ad77fc3adc33bcad716be0 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 c0cb85eb17770a1bb35085bc63d4f9c6303a2766..0494de8370840b70ee53b03d635358af4bb0d72a 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 6483b6d03e302502604b1692f82d321201b73406..a8e7bed5ede3b4d0fa90f414fcde9e031c6f29f2 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 0000000000000000000000000000000000000000..0f36177278b92121b5d97296ac5802654935e1fa
--- /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 0000000000000000000000000000000000000000..065f264f15295b8aeff70891ec58c6b169d5ab89
--- /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 73c0e234945ea9e3985fc0c439dcfadc84692f51..02368990a015c146617f13f7fb981255d64a7fa3 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 92db34417f47fc55840239e56d5f7cb4c3568238..2c0d039721fa82ff136196c775fcd4bcf379622d 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 ace7ecd21b3342ad8f8d2f4db9b4c5211b70b2a6..b275cd21cf48742a76a43e29a912532aa5a6e14e 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,26 +203,26 @@
fetch = {
type = "git";
url = "https://github.com/go-openapi/swag";
- rev = "2b0bd4f193d011c203529df626a65d63cb8a79e8";
- sha256 = "14c998wkycmy69jhjqkrah8acrr9xfam1dxbzl0lf4s2ghwn7bdn";
+ rev = "c3d0f7896d589f3babb99eea24bbc7de98108e72";
+ sha256 = "1z34vqc5yz6rzvarrvlhkimxx33p74iaxb28l1mv716njvlsmjhg";
};
}
{
- goPackagePath = "github.com/gogo/protobuf";
+ goPackagePath = "github.com/go-sql-driver/mysql";
fetch = {
type = "git";
- url = "https://github.com/gogo/protobuf";
- rev = "636bf0302bc95575d69441b25a2603156ffdddf1";
- sha256 = "1525pq7r6h3s8dncvq8gxi893p2nq8dxpzvq0nfl5b4p6mq0v1c2";
+ url = "https://github.com/go-sql-driver/mysql";
+ rev = "72cd26f257d44c1114970e19afddcd812016007e";
+ sha256 = "1fvsvwc1v2i0gqn01mynvi1shp5xm0xaym6xng09fcbqb56lbjx1";
};
}
{
- goPackagePath = "github.com/golang/glog";
+ goPackagePath = "github.com/gogo/protobuf";
fetch = {
type = "git";
- url = "https://github.com/golang/glog";
- rev = "23def4e6c14b4da8ac2ed8007337bc5eb5007998";
- sha256 = "0jb2834rw5sykfr937fxi8hxi2zy80sj2bdn9b3jb4b26ksqng30";
+ url = "https://github.com/gogo/protobuf";
+ 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,26 +257,35 @@
fetch = {
type = "git";
url = "https://github.com/gorilla/websocket";
- rev = "ea4d1f681babbce9545c9c5f3d5194a789c89f5b";
- sha256 = "1bhgs2542qs49p1dafybqxfs2qc072xv41w5nswyrknwyjxxs2a1";
+ rev = "c3e18be99d19e6b3e8f1559eea2c161a665c4b6b";
+ sha256 = "03n1n0nwz3k9qshmriycqznnnvd3dkzsfwpnfjzzvafjxk9kyapv";
};
}
{
- goPackagePath = "github.com/hashicorp/golang-lru";
+ goPackagePath = "github.com/grpc-ecosystem/grpc-gateway";
fetch = {
type = "git";
- url = "https://github.com/hashicorp/golang-lru";
- rev = "0fb14efe8c47ae851c0034ed7a448854d3d34cf3";
- sha256 = "0vg4yn3088ym4sj1d34kr13lp4v5gya7r2nxshp2bz70n46fsqn2";
+ 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";
};
}
{
- goPackagePath = "github.com/howeyc/gopass";
+ goPackagePath = "github.com/hashicorp/golang-lru";
fetch = {
type = "git";
- url = "https://github.com/howeyc/gopass";
- rev = "bf9dde6d0d2c004a008c27aaee91170c786f6db8";
- sha256 = "1jxzyfnqi0h1fzlsvlkn10bncic803bfhslyijcxk55mgh297g45";
+ url = "https://github.com/hashicorp/golang-lru";
+ 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 0000000000000000000000000000000000000000..67e91870f1a135b624e5d8fb262b8394119fe4c8
--- /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 0000000000000000000000000000000000000000..a6bbd333be43e07b46839c26cf38392201ccef52
--- /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 b5276818f79fab096224886a19821e8a4e7b24ab..d0186fb9b4c03313af10a1f2d0542b8c65ad3c10 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 424b2ddca910d981b13473fa4f6c6fe7650c6c3d..f8c73c65991ca30bf6133db83c378d1cbb3e4de2 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 b0f679322659618352415efe7ccb90b22d374640..abd1abdc89ae7a76f51172cbb4e872cf81338f8e 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 f0edbdf3ed68dffc62e615ca46c6b15cc27ba758..87500ababa25f7de936b68eb2cdc421c2ef6da4c 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 2fdda0ca28006cc3ddcbdcdfc77dbbd0b95d1daf..0000000000000000000000000000000000000000
--- 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 1faa0988a66d74023a136ca38579e417ce89cea3..6decad2f9fbe4117963f7baac2a9f1da7cba1b78 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 5c0adbdc548a6f1b4e4c7ebb01179f04bb38baf9..73d82207daf50c24c481dbe833ec5eb739238207 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 e38dc355d2464660502e57d9a3a096ed4ebbb6d2..359b289dbbcdf6a3800efa93a44e815b71a955f4 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 f0a52f5266ef9f7c987c276cb7331fc2b7a32a64..7693968bd550b002f28034450b3365bac62d721f 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/semver";
+ goPackagePath = "github.com/Masterminds/goutils";
fetch = {
- type = "git";
- url = "https://github.com/Masterminds/semver";
- rev = "c84ddcca87bf5a941b138dde832a7e20b0159ad8";
- sha256 = "1dcfdr018a0yszjpvr3wshvq9cc3kvy95l55si556p617wsn1wan";
+ type = "git";
+ url = "https://github.com/Masterminds/goutils";
+ rev = "41ac8693c5c10a92ea1ff5ac3a7f95646f6123b0";
+ sha256 = "180px47gj936qyk5bkv5mbbgiil9abdjq6kwkf7sq70vyi9mcfiq";
};
}
{
- goPackagePath = "github.com/Masterminds/sprig";
+ goPackagePath = "github.com/Masterminds/semver";
fetch = {
- type = "git";
- url = "https://github.com/Masterminds/sprig";
- rev = "77bb58b7f5e10889a1195c21b9e7a96ee166f199";
- sha256 = "0q4g12f3nvda1skz33qzbbdd2vj3gjfwf361hyzlx20s71brk3bk";
+ type = "git";
+ url = "https://github.com/Masterminds/semver";
+ rev = "5bc3b9184d48f1412b300b87a200cf020d9254cf";
+ sha256 = "1vdfm653v50jf63cw0kg2hslx50cn4mk6lj3p51bi11jrg48kfng";
};
}
{
- goPackagePath = "github.com/alecthomas/template";
+ goPackagePath = "github.com/Masterminds/sprig";
fetch = {
- type = "git";
- url = "https://github.com/alecthomas/template";
- rev = "a0175ee3bccc567396460bf5acd36800cb10c49c";
- sha256 = "0qjgvvh26vk1cyfq9fadyhfgdj36f1iapbmr5xp6zqipldz8ffxj";
+ type = "git";
+ url = "https://github.com/Masterminds/sprig";
+ rev = "6f509977777c33eae63b2136d97f7b976cb971cc";
+ sha256 = "05h9k6fhjxnpwlihj3z02q9kvqvnq53jix0ab84sx0666bci3cdh";
};
}
{
- goPackagePath = "github.com/alecthomas/units";
+ goPackagePath = "github.com/alecthomas/template";
fetch = {
- type = "git";
- url = "https://github.com/alecthomas/units";
- rev = "2efee857e7cfd4f3d0138cc3cbb1b4966962b93a";
- sha256 = "1j65b91qb9sbrml9cpabfrcf07wmgzzghrl7809hjjhrmbzri5bl";
+ type = "git";
+ url = "https://github.com/alecthomas/template";
+ rev = "fb15b899a75114aa79cc930e33c46b577cc664b1";
+ sha256 = "1vlasv4dgycydh5wx6jdcvz40zdv90zz1h7836z7lhsi2ymvii26";
};
}
{
- goPackagePath = "github.com/aokoli/goutils";
+ goPackagePath = "github.com/alecthomas/units";
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 c8b95baf2f39562e5b3f2bc4dda01848b7efc34b..7e513edf612d787316bb2b1ebae8246282c5822d 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 c549efa7b40b64c50db22239b358caf93134a977..7058c009f2dd44cabc4d98ff1c35964789ae2951 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 4fb2936a40b05a898896c2715a0d6296c8e897e7..0000000000000000000000000000000000000000
--- 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 e1b5a4425d517a6de6b3c0aaf77fbd80223cd62e..69d013e3f0340e659962bcef3e2244f9365d4746 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 a69dc8890a7baf3b132c3393a9ec24e5e66570ef..aaf183ad6667c7b1a4e955e17d5cd4a7c2f0a9b4 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 cbe32e57f20db8fbf09a11e9032afc17c82038af..c2751ac270a7acc6438230f8c05e6f4f3f7389e7 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/kubetail/default.nix b/pkgs/applications/networking/cluster/kubetail/default.nix
index dcda18f18be682e1986f62c017c985f9565e817e..779edad8de34041c035cd0afa85db1416f921f75 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 a4236a9408cca3318f43fbe7c72bc68eebe5d134..e60586437893392040fb0557869f68b0e09b9435 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 758786f586a6fb0735d4bbd3f8797c8a8777e6ee..3b96ef4ea45e10560151671da22159697b0dc9f7 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 0000000000000000000000000000000000000000..9e578b9b333a5517aaafd62e5c746cbe62c7e439
--- /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/spark/default.nix b/pkgs/applications/networking/cluster/spark/default.nix
index e675d17491afb6ebab1ec7d567488434bdd8ceff..b8d4b947e324909cd853f7bdb64050f7bdc4252b 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 6973938b60de22604657ea09ea3152adcc818e99..32f6680b2f8bd59233f2e0924148257810f331da 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 16056d9185b5cd6b151e695768e39e0e47a25a40..6be9a5092baa78096792961eb107ead54cb9d1a9 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 fc6b71313856544a432fb56090c1a19789659cb9..6298c25ba2540b45fbc4aeb7b7a193b94e68097f 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 286e3d6efe0413db78d5a2c9649d91345b65fa1c..bdde66006787fed6aaaf023d248df294437e49a2 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
+# include providers from individual repos
+ajbosco/terraform-provider-segment
+camptocamp/terraform-provider-pass
poseidon/terraform-provider-matchbox
-
-# include terraform-provider-nixos
+spaceapegames/terraform-provider-wavefront
tweag/terraform-provider-nixos
-
-# include terraform-provider-secret
tweag/terraform-provider-secret
-
-# include terraform-provider-segment
-ajbosco/terraform-provider-segment
diff --git a/pkgs/applications/networking/cluster/terraform-providers/update-all b/pkgs/applications/networking/cluster/terraform-providers/update-all
index 2009d474db7b24af10ee72c06668a1d91bef0b79..893a6b1c7d7df9d859f8291bded2ed0914c39cc7 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.309708.1027";
srcs = {
x86_64-linux = fetchurl {
url = "https://zoom.us/client/${version}/zoom_x86_64.tar.xz";
- sha256 = "0k4h43wydbcyx7b7gwxkmvbph8qc6kjpcypd7vwz8rph1l7kl1y1";
+ sha256 = "0g0nmlbcps331vdnfj571lzhcw8cb2gxbll09jananxdpnmwv5l6";
};
};
diff --git a/pkgs/applications/networking/ipfs-cluster/default.nix b/pkgs/applications/networking/ipfs-cluster/default.nix
index 426619908d65e889223fd9704a87ee0ec072a602..76cc393f26a30b599a66b96ccb132ef87819422f 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 54943533b85fc3762dadf3d1ac7a6c5cc43b7057..db325cf1387737ae41369c40618a6d2a8c8e19b8 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/hexchat/default.nix b/pkgs/applications/networking/irc/hexchat/default.nix
index 331be19abc4cb9c1031b42e8141f1bedbdc391d4..f537627f976fa3e7e145577e3687118c2f152637 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 bd38855109a19190966522b6080fdf7abee672d9..6fd66096b5b2b4fc531019f8a484f6a244b4b301 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 6aacdde544bca31ee46ba25498489e03ed97b155..d1b950a7757c3a1db3133d06cf0c67ad17edda24 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/wee-slack/default.nix b/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix
index 6811cb164e0eb609693438918d912006d6f5a066..f3d96a1b5c6b1d68e6b31dcc45cf8f69c4b128cc 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/maestral/default.nix b/pkgs/applications/networking/maestral/default.nix
index bfacac2eaf4d05134c35b739f6064905611360d6..708957bdf015caa4cdd0acf08d0188173dc05225 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 b94ce269566240210c499149e98fef23b4a403ff..98ab5f5635215070d455548694a80cc893de14e3 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 0000000000000000000000000000000000000000..4ff1283b5e3d1bcd3652811f51b5b42d7c287683
--- /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 cd512e776130bb653050f549dcacc54d5f5dfd7e..54b3e10b5e2974a9f8f078860772e15b63cf181d 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 15f707e06a2d8e065eab797c7f03546f61f0140b..ff6599598760c9e0470eaeeebc3b9c0df224d6f3 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 d7df94f7e6732b56061d3ff78314c89f9038590b..9fcf72ce4bc05d811f2d17f10262c6665cccf248 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 0000000000000000000000000000000000000000..49f0ac5336594a7e85d29d245655c27fd74e76b7
--- /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 78b1aad03fbf05f49c09191be49597b761653627..9f05020f2c3ffc314b34135edb8c510697217f48 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 7019c309feb957ddb83e6c3455940eccd89c894b..2fb30e5ae6adaecf80fe41a1234b0ffbdc4c0b24 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 c694398bd7d257af0a662a9d0ebbf31a3cf0017b..3af4c7f5e15f0b73fbd7e4810d19b9f08843089c 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 615b810d00293bd4ca1aac5dc45099c63285abde..4305294297aac599cf3883e3c98b911d53ae6091 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 fcf1464ba239dc33a20d87d9c099d4b506aacd61..370c4f8388704cb60999145e6da0b8bd2c1d5b74 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 01081ebfb3e247d6e6f4ccf8668ac9a62d4cfff7..64faee641f0868a622b982f87c1f24cb185c8c1a 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 5894e96022c8209e4956ad5195b7d3a474b8ad0c..0000000000000000000000000000000000000000
--- 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 bc37456ae58e60f7a05993d64a0acdfbed57c457..0000000000000000000000000000000000000000
--- 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 bd0f051c104d1bd421a19569fe968ca5dfe2f801..0000000000000000000000000000000000000000
--- 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 ccd092ba63cc4352dd9b63c31e98b83e715b82f7..0000000000000000000000000000000000000000
--- 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 023374932cb258aa46798ba53357e99a33ae1417..0000000000000000000000000000000000000000
--- 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 680d7652b5a0119ea950fd674022603dfa1820c0..ad98cd660d9cfda8b5f80defb930da8c005ac292 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 d8f5e58d9fe592dbe99794ec45ae756cff2f7dc0..3cc7203401bb297f85d4f76a8d100d70b52752e0 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 f2b4cfb4befc12370e8042a67a6e7650b7bf2cf5..a4edc76caca04f3337681185a0a799ba5fbab4a8 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 65eba3a2fc28983a54175d4a94715718593b64fc..fe3a93ebda7be5eb2f346c725be9121ceef9b6b9 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 7f7296cd70064d5c123db1aed2182b812cc3ff6b..9829ca883f3748c92999e8add9a1644250b28e93 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 7d311d4bc707ef6ec271010729b3c60f4e90946d..2cdfd19067f2f828b7aa076044c197acfdb9b78e 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 fc720a047b5b76f63d1ba438e15c20bbbcab7c5e..6ebc3e66491460c3dc3295df10645891e25c01aa 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 b0786d742db788aaaffcd91c0a4728ac696e9c8c..5f8844969b256f224c534fd47279c45b3eb9d276 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 6439991920d915fd421bf2bfdc475d1b16efd032..fe4c9f32b2106c7af8c13532d2565b0826c4fd3c 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 0cfcf6408ba973fac5459c4ec0c0e7e16875afe2..6352922e33e967b48ae8b92e304dfad5b5206b42 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 3a72ae8ce5f9e8f5d2d47a9f40aca39c988e8cda..28eccf6f37d218462195cfa887729ebbcf5a2295 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.0";
src = fetchFromGitHub {
owner = "QuiteRSS";
repo = "quiterss";
rev = version;
- sha256 = "0xav9qr8n6310636nfbgx4iix65fs3ya5rz2isxsf38bkjm7r3pa";
+ sha256 = "1czz8n21f4iaazvkq37m867bqy40sdkj44bqggfjcw49pl60kvjn";
};
nativeBuildInputs = [ qmake pkgconfig wrapQtAppsHook ];
diff --git a/pkgs/applications/networking/nextcloud-client/default.nix b/pkgs/applications/networking/nextcloud-client/default.nix
index 6f7f47bdcfa0997dc94da3c468f18821e5cb1e0c..974d1e5a07786f9c493e5e06acc018cf486d3e48 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 7907365a6a39ad07b1261e691f8497d84764287a..c674956066ac5ff94eab7690f77f0c8b920d4d02 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 6e3b8a7293e094bf8445e00a4ce35d02184f95aa..63218f1c2ffc8ac54bfe8cfcc09c26cc2e1cf8bc 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 6dd2fc3435501a60b5793ec35156403a62159127..e38378d09b32cd78c44832005c56fda75d5524d0 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 a579ae15181d14601b9ec85f4c818dc4d1d6aefb..aebdeda61084bfcf2b1a83313b2f530bb4f8cf35 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 704c439bb27d7ecaed275e527c1f2b9f000a2243..b52320c96814282135ef19a48de974ddae778673 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 850fc488bf3c6ddf5818a59e0d26e083958b2205..f11aaa2737016521f4bf01dee1d311397ab4a1b1 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 999f80a7bbd0660da3affe133471379dd40c215d..0ca5402d6dae1f20a6ae82c2f0a408ae0164960d 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 7c720cf35a020329e369373e86dce1a814c625a9..51d591995b768bec8b9679de412a50d888f9b117 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 bec0507e4a5894de76585274d1e9df921827c18d..55bdced74b52bd11a7aea80c15837c3be4eafe16 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 8af94b2609ffa246a45e8f175b50821570ce752b..25996953e11aca17bd5a54aba7793921beb9259b 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 647b708e1021d783b7fc110ecb4d24f5c487cb48..30491470392ac9de4c9b8fcacbbfb49e190d8f11 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 88f07f0a8a508a7ded54871c5597da9471456593..ce5a99b1e5fc5f29b010fab2c26e6e1bdae58807 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 d20b07a8d3b1bc403392e91afd3adfbffa5e01dc..4d1d39a05c251c2eaf5b669490c4e08fa7c5a060 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 7fdb062ef805438b96eb7946da2cda1118302068..8785d2449b3e8e965f47083c16bb9d61b0a7a9f2 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 60ea01ae451248794c17a7814d4e9ad164f757bf..a585e7f948bbd0945d00764f2329c9feed7e4349 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 e79ca515b518271092aff937d77167bbb1467d26..f426a7c3a581df1bb21f921accef6e171fd05fc2 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 30130f60028ca9b627ea0ce6ebdf076c7b5355fd..e9dd022c3139fbd3dfa963338495419a5ce0666b 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 8d21f64765dc672a3b05200f87c15e3e59212a1a..0000000000000000000000000000000000000000
--- 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 63587030b38e5593e16f19370f922f90249a6972..0000000000000000000000000000000000000000
--- 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 4936b0ce0b503c6efd7c56e7a8a7b24bf299bba0..26e8cf59a9e948454e8856d100dc56cf85354962 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 3b7db7075bb59fa1b4aaa27d4653225336a51a18..8c2d9ac36e9e90789958a214dff027cda53c6c98 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 f60d43f361668b1c900767f05d553c53c88d219a..adb70c3916f4a349a03ab80bb4dce775fe75e6b0 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 f9b17b42bdee1c030cbbb1ca3bfe3071a002760d..2cadf7f263705d8273d92651d1fb46685f7cdfa0 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 aa965a0c868395f373d993dcd8a99b15d4369dbf..ef1e07ca9763cd054549824d3d9f6ffdc01bf900 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 0000000000000000000000000000000000000000..afc89fe78024a855392dfe52bd09f4a83759116f
--- /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 0000000000000000000000000000000000000000..0767ce2f29467944f09c192344025d256ddf59aa
--- /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 52527f79303f40e7fe2d8929b9a73db809b3fcb3..7475692b962c254fad7ef2f663a4c45c9b7423ea 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.49.5";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
- sha256 = "0mjwp1j70dqa8k3zxhcnw85ddhagkpr7c59mv8kradv6mqqzmq9c";
+ sha256 = "0firfb2300grfp5fnqaifhp346m4d0x8r1xshs9d8r6jxb160n03";
};
- 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 19e2eaa5fa235c7c75984effc763b0afcb08b152..19be478b0f1e1b7bcb39d1fa4c6b17f2216661be 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 7bfe697105ebb43a88b3920917f08142e46cacc9..555550d4d9e714a232316d474fefb3304e09c6ad 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 a3cde14f34c0ed59e7e4c8b8bbee290330745837..0000000000000000000000000000000000000000
--- 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 0000000000000000000000000000000000000000..1b049ff2dc7f0d1b47480e2483770c7468feea2e
--- /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 88d33a9a9f3c8477458a19b01e74ff1bdf407542..5fe52d5f33dbef38a95ec43d5745cdfaab11b3e8 100644
--- a/pkgs/applications/networking/weather/meteo/default.nix
+++ b/pkgs/applications/networking/weather/meteo/default.nix
@@ -1,7 +1,6 @@
{ 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";
@@ -28,7 +27,6 @@ stdenv.mkDerivation rec {
buildInputs = [
geocode-glib
gtk3
- hicolor-icon-theme
json-glib
libappindicator
libsoup
diff --git a/pkgs/applications/networking/znc/default.nix b/pkgs/applications/networking/znc/default.nix
index 238864311ef079c1bf3c866f5c599d9dd176598d..bf36a6f2bbbde325f1b0649abcef2f2c51d27930 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 54e148f0833e69140df49e1bde7200a1b56fd292..5e7bdd09b036c32deac32da50020b147963f992a 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 b71334a6a7266b8258c81af09134222729f12e50..603f80189931816b360eb1e5dd6d222c02ce4506 100644
--- a/pkgs/applications/office/aesop/default.nix
+++ b/pkgs/applications/office/aesop/default.nix
@@ -1,4 +1,4 @@
-{ 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 {
@@ -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 6ef6e51527e254fd48296b0de0281a7c1993a077..6894f1ca635a6650b3cbcdb8851a2cf1efd89800 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 fe81340a7fb40bc63249a07c64b7a42ade581b84..d839f4c81f2116c289ff7ce4c6e2d0cdf725c168 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 0000000000000000000000000000000000000000..9142fff9a2c2e5384d342fc79e4b00f796038cb1
--- /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 a5de74a6f1650263525aa2c247447fa9b28fd9da..6b26870ee44e9d9ccbb7b6c089a381cf23234712 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 284fdf7a124d6aa3a3b79cb5060ced0995bf0b37..831d8cbcf2a015a0c91f847d639eae1507a9ba23 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 3abc447f6e9f4e80d9e9d3bc4797b3e6a884e25d..d8fbd4392bdbc9420727b27a0254c510af36bb45 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 70d1e3d79ba5997872bcd60c04db9eed6e7eaa94..979c960f7a81accbbe35dacd4a07eece436bd87d 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 752ad70cd094caf39262171931390a3e95c620b2..cb8cf76b99886127c02e9a7f1748c7624d922fae 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 727a68c440a2ac8e8364d566cb466d535cc4b36a..f72f820fd23db2bf03ed5a6fae2976810a4d4826 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 5065a1cb9bc94d11f7a3eff99f31aad1efffd12a..a8c318d690a92458cf6f5aee6986c35da72d3be1 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 adad5c8680fceee5dc2651e840e44941e7fad5f3..8db7068f7cfa656dd2c681c4c0a45b44c90c41d4 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 0cb23abea66ae6a07ad0058545fc52ac6bc16610..966c36f18233e35feb5811f2cb0399e1e17e69ca 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 4c126fc2f919002c117c3087de93d189be8723b3..62ac6a803824c06009a1c01f0d98c5dba1a71db7 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 f5f53e10496b1907bb2dfed7d7821c8f774e4c23..2f220fa2fb60b8f4860edfe4e0acbb3b30045d46 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
@@ -361,9 +361,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 eb774a309416c88ef9c2d31d3b5f2c46745e3582..be87a8bb67212da380be59b26211735a1c83926d 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
@@ -358,9 +358,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 655a10d3a942624156e30fc204d692046e47e2c6..9fdeecfee368585e99990b8d17ef277f388120ef 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 f8729583ddce81c5b0c9810f25a865cef7523332..e7db27bdedc7d5dbde09a3bad6bae7ccb1a9825f 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 af2fd82ddb03a0c52368dcc312f82ed8610bfd7a..97088f360417f382a33ae5a582bfd948801b6ca5 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 c1e0f7da30f6ef510dbee74697694915a7bc3cbc..465da3862471754a95bbfa5a1c5d014269bf8857 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 adbd4c30a393cfdbb8b0fe7751cd3d3e0735c111..3506ea8b55151e6b29762e43a40c10e2428ce1df 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 687b83948cd18405e00c8dcea1bd1371b2885f66..f454d8830cba03cc4e4a9149cda45415830247bc 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 0000000000000000000000000000000000000000..5cb20e4d6138b7b7ab1668bc1d5ebd3c5188dc4a
--- /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 ab32ebc67a7fd6000e9a023fec58ef507bff7431..4152c08ebaf63b1c0d5f0b228897c04263819f20 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.10.10";
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 = "1zhszlrcmi8l96wq6hp48d8qv16jlyni02wf41dvh5r9ccfwlq42";
};
nativeBuildInputs = [ qmake qttools ];
diff --git a/pkgs/applications/office/scribus/unstable.nix b/pkgs/applications/office/scribus/unstable.nix
index 2cd441794a46fb4e6ae49904aed030f39e7cdbfb..3c5ae4c4b0aafa994851e24e35e90b19b7832a95 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 42fddb972c9f9871579ab9d2c63996e4a6cbfa03..fd68896ca67351930be4168738ac5b2ac5753218 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 0000000000000000000000000000000000000000..6975da06456689900fad6bc22cb41272d40e197c
--- /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 0000000000000000000000000000000000000000..8c862cb6ea4f18dabfa07004768b1fec41e1045f
--- /dev/null
+++ b/pkgs/applications/office/softmaker/freeoffice.nix
@@ -0,0 +1,15 @@
+{ callPackage, fetchurl, ... } @ args:
+
+callPackage ./generic.nix (args // rec {
+ pname = "freeoffice";
+ version = "971";
+ edition = "2018";
+ suiteName = "FreeOffice";
+
+ src = fetchurl {
+ url = "https://www.softmaker.net/down/softmaker-freeoffice-${version}-amd64.tgz";
+ sha256 = "1h36pjbpbiy4cw383cbrwh1jx2kp1ay29734zailmhifz53gj44f";
+ };
+
+ 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 0000000000000000000000000000000000000000..56dc6a5e4f7fdf8465ea0873ada36111202b18b2
--- /dev/null
+++ b/pkgs/applications/office/softmaker/generic.nix
@@ -0,0 +1,117 @@
+{ 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
+
+ # 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 0000000000000000000000000000000000000000..73a7d9bd35bcf3324f6fc27837da8650a7ccafd5
--- /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 2c3dfa82c8c266f30f2db52c9e410f92a646023f..6c09cc1de4722a4a7bce0233272f86c2e0202c75 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 fa2d59392180c055900e9cc14f6dced15c69e641..bb13cae08f2fe8dc06df5962c88247b20eb73403 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 450ee34262b9b8bc0e97bd6cd80d090f8516d430..bfa162a54a286ab596fb2d32b0e89012a35a8367 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 fbb8436f44c08ebaa94ca585c082ae07d4cf4319..6142042e7cb31ec90e84b8787839ab58a60ff15e 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 16df0b294c163fb0c364f966d9e99cbf128edfb5..7d79d79072a96ac5bb1947a03646e072cb0016d5 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 a41064666d5887903e5e39982671ddf2d500f1c6..5afc03a3bd6d95c822ed823e364178569e2736e1 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/qubes/qubes-core-vchan-xen/default.nix b/pkgs/applications/qubes/qubes-core-vchan-xen/default.nix
new file mode 100644
index 0000000000000000000000000000000000000000..e8241ede96cd9cd75a86defc580dac457dc35213
--- /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 aeadf49f8989387b2c3336e9d558290afdf775a8..c088cefd8618e1a0f378f22ebcd8230adb8d22a6 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 ae602b752e0d1cd0c1914bdf5184a38cce12fec5..39fbb0de06c0ed93bd78269d8e0d4466d3016ec2 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 5bb561f142605776ee45fb15c2a2d9a8f00fc988..242536a89655a9c1436a775d790ce3a1afbacf70 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 3d519255ab48e3463d5b18ef0563c3c1c721420a..148ad35a1f05106d2b9d71450a076aa2c6eddb35 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 346c6aeed8e312e1a78db6c585e809072dc33f88..7cb64f92f3f4ddedd214b686585171fc9f33b791 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 92183306038bbcbb63cf8c374c741f69ffe18c48..f45e695486d884f9894b4b49c15b34bf331b2215 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 ce0fbf0e16dc19ad96c786ee4a48470d06140cc6..343b0bf8cba2c915587153c87589d4a4c09c4d4e 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 4b5c2c6834441a96a5546980add5db613048bd4c..76519062f59043ac19501c6183ae391dfe5e8f4c 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 a1b92e7e4e181e79eae788efee810ec4d0a76b95..d4056dca7bf70412425781bf98383e71e230692b 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 c6b09595c20292bcce6a7bc1aea6f9409436836f..229200f23528d999fe18c672f8bea834e9d94cbf 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 7b9cf0a4ee55265a4a439d21df6e20df3b5fef4b..3434c0624ed576fa2a9e63a03083dc167df9159c 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 a21c9f328f4036bffef8684df9d3fa5b2ff5f483..9584c2f41a829533d09f88c55f3b2bb7d275d805 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 ecca9141d9fba328819e19637e2db751c61a7970..59c6a02d3494fca9af4cf3c41fc143d79e63e331 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 dbcfead6b1ea26af44d6cbb0b4657a2d0b377eec..978615fa4592c81cd59fd60f27e696915351f1e6 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 834d2497e8df350ce95846b7c0efb703df44eb1c..6e1a2a3407ee1e2c2d5ac23f53fc82afebe246a6 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 d8ffbb74e6b02eae9944e6842f8774314ceeb952..33e4de0d95aa0a7d489452794d6f8a5a055e02b0 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 63d51de9930fe9ad71f483412fafb80fd547991b..7c328034a3062fe3885b9fa54eccf4c2b01e0efe 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 0000000000000000000000000000000000000000..78a6f483337fe903e541bbe874adbc0689cd57b8
--- /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 0000000000000000000000000000000000000000..bfdf5a1bb17e1ead38461418f29645323f6748f5
--- /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/igv/default.nix b/pkgs/applications/science/biology/igv/default.nix
index 412b55f5916349dad0ce2dc68113b9f9cac34888..04699a84b692dcc8a23c7eac48537c704409eb76 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 0000000000000000000000000000000000000000..59938addbe8256fed25af82db3d639bdbf747dcc
--- /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 689d3e42c979355b7d703a2d4b909d56e717a538..f70054e97716b3e8a879ad52c47bf93baaeca90a 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 161188f7ef169b5965f123e61d1ba903271a56d7..fe6919656d9d9141cc49e81fbae08f3a8400cc0a 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 2a57febe8f5db1b68ab26e8cc26e2deb595176bb..5a9cb5de528e866409e0a0c23ce30d008c8fd657 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 dd1a53472dbc9e860f4a8d0718ba0501d59d399f..daa2925de7c42ad7a25826fcced3abe1b01d9b2e 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 0000000000000000000000000000000000000000..a195f79010a7afcc76749395fe29bfbcbf50d872
--- /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 f32dca86bdf5d07ca18e2d094e51ae9cb53c9604..6f4211d0c0d972a90cbd1030055eb84cc84ed6f1 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 84c90d895566c556e0ed446d2004f1a0ad4cfd44..c791e8ef89bbcc3d4ea0dc24394ebec91cc991ea 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 0000000000000000000000000000000000000000..bee43da6719d9b37cb0c663e7942b8d3dc4f567b
--- /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 00231113d2cf3bf3829c7411e46c6bede4492a82..e32900ed720f953848636522ad9d3c0c7dd5b216 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/pymol/default.nix b/pkgs/applications/science/chemistry/pymol/default.nix
index 1fc387fcc66dcb711e32dfe490720d092bb36b3a..b1bd01fb2f7fed1d0f49b87fa7cad2e0a11dbafe 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 2b28f2c06db54e90d864d4346775973cb7673ed2..7cc71e4978a9017b6721ef90ac2e02d0dd3858da 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 8dffe580cc65ca9a5c0ff3d950aec7dd14737858..64c1c3daba82c03de0c360e2de47d962ebde5e5c 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 3d169f501043f661b142cb0fdfd74ce9bebba768..5d069c5a219fde2e05d3aa648f5468a5ba8ed36f 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 7475170d6a72c1a0da9a3cb07e7243e4c6730062..5310da0699e2ee242d533c3e7435809bd73e950c 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 fb931ec916223e31e5caad35dff4757305b69099..da10ca34b87954b10a97298112c6b85035c67093 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 9a989919250556d517dc8c9d82e276708c14580d..b59f628dfe9f082761ab8f7481c14d6dc4f0565a 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 f850a1bf94dfcb6bbcf708257a63046bfb9d55a9..b707db14160233b084b1a8e1740920b46e6d8426 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/coq/default.nix b/pkgs/applications/science/logic/coq/default.nix
index a04ec0bb16ce07d07132d9cd4ca65a2a18eea18e..a463a2c5f3a20cd86009447bf2fd56763c4228bc 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 1f6fced223351d24af71c91b932a4eff8456b5d7..1b021f7160787fc960cd7156bf202b78bf5006cc 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 40b0115dc1b72aeddb09a201e783ad42867fcecc..d799b52d115e8bb47171b75efa458b433cc5e5f3 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 61ca78d85ed1bacf1e45901489efcf154d3b0f9d..e503836098f19247ccc0d6ef5c20488d09350f6b 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 8cc50bb5e29574080adc211d30c6dd8caa5f5d68..612c9d6f92a2cfad0822e5441b7ab0587d0b87ed 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 30d47687a3eb76f11aa7e755901da71f3c1720c2..c0512b74488484324e54271ae833b183db305c50 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 40c66dd699d87df41041a5512800413a49c3108a..854a62a5538d19621ea8f42d76ffeb41602618b9 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 2b368a0e673052dd8e73744a0da0dc5868f08e8d..7c1ee8099e2c51050b69f81525c87a21dba648d5 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 d357bef2c7a03a66829ad472e91a888b56ab8263..c4041281054f587201ac7d4463255a2ce1ce55e7 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 ed66c77dcabf0466b997994a672ebbcfbb6398e1..8e100716c87448717f6c05a9ec28d375b52614ba 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 40378f8c04d5df54f1001942471545cec7672730..9b87b8c899e527bb56638a2c11065eacef71542b 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 6f338f2147839433215bc27c62a81be98e55a0d4..eeb3a6b6d361f44f095a3d1ff4215c2ab825b380 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 76ed934fb39e3788231210227f40e1bd97048dae..b8dd528a11c1e4f8c527f4a593192b9f2d871141 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 0000000000000000000000000000000000000000..f3d142739b8f954a1ed7ca8ae6df55a7ea37b7a2
--- /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.49.0";
+ format = "wheel"; # the only distribution available
+
+ src = fetchPypi {
+ inherit pname version format;
+ sha256 = "1g12z93yh85vcgf3g9banshllr5fhz8i4f9llymcnk6mafvcsiv7";
+ };
+
+ 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 a791f9a57727e7a677da168c9a77f937513a773d..a66cd3e8d7e163c49dacc3042d9cea56a0d09b89 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 d0857e2a517c30ca6c6a9f43875530c831d39ce0..e68ceb379b04933ace922108552055111429214f 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 0eb57c7569279a78180e2ea19cfba7bb387bbe29..f91b091439fefc135d62e18d23ff69e5c1856420 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 c20a6954c3cbcbb31973afb372e04c5069720ad4..ceb87b25ba85c2df98eab8236b039d20ea1e766b 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 8f38a24f40d119999b1b284b67eb0e75d433f7b4..0ab4c1699449ad6303b957dcbe92e09066b7d4f9 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 ad82d7572e34549a6a7af3b55bc880c01d7d2c52..90b1b367a7c4d8c3aa1b404d99537aceff68bbd1 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 197845bfa3c1732c872d446c5134c06c7fadb18d..79f20f06b295529831d9378ab82ee3e8edbba561 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 4de683cdce906979e5877331b15f3349879a3f5d..1cd5e364208a85c85d4e6b9370073aa617e925b0 100644
--- a/pkgs/applications/science/math/glsurf/default.nix
+++ b/pkgs/applications/science/math/glsurf/default.nix
@@ -1,5 +1,5 @@
{ stdenv, fetchurl, ocamlPackages, libGLU_combined, freeglut
-, mysql, mpfr, gmp, libtiff, libjpeg, libpng, giflib
+, libmysqlclient, mpfr, gmp, libtiff, libjpeg, libpng, giflib
}:
stdenv.mkDerivation {
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
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
diff --git a/pkgs/applications/science/math/lrcalc/default.nix b/pkgs/applications/science/math/lrcalc/default.nix
index eecb37dd743f63589f956e82a83d1ad72b02c6b0..f407358d8f266c22f5f6a101b01ecceb9e93cdaa 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 ca9a87abe13b65d81dec78b06966031150139470..7cd1b2eb99fa4bfda1ef99ca5626ae8b2a349f5a 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 c2f8ba1d55ec802eeb0d2ca2a429a131e4b22644..a4921785956812fd08310f20d241894e7d69d35e 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 bd116b02e29e683c9d00e874db2017d827fd6e54..986610eea60d785e5cc3aadc49fd077b61e97e78 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 75a46bb182aef2fd13cd9dfdd35dc3e09a7b3b30..4022383dbc7db73230b399d2f03e5496dc9f653f 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 b4d82b9583c414e414c960d627c505d376a32231..fccd83aa86fad330f17e3c4b2092e52cc071faed 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 0000000000000000000000000000000000000000..11ca74819615b20f518de2a2af72ed22d986b835
--- /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 0000000000000000000000000000000000000000..c5f95b498d536d2d245b96be8c7dfea653cbfe65
--- /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 0000000000000000000000000000000000000000..9f502a6695173327e57c61b36658563b7fd6b57a
--- /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 933344aa559102fe0868d1e620ee8da0af98369e..56f092796229ac36d0c5ba300b0bcf99f7641ffd 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 62b2f114bd62c7ff5a89c671d4f7f3cdf4a9e88a..0000000000000000000000000000000000000000
--- 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 8fd69f62171a0637d0db035b004e3a0ad2a03108..00397239876b399fec16463c4b009563f9b655b0 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 57d6c852be8da3fbde209d55a5b533a2b74102e1..dc8ba48e45e88ad453e7bc18403f89d232a40bcb 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 6eac84aaa8658ddf4414b25c4256f9c1cbb671de..69f7624078eae023ff1aabb45eb4ebf01a61ca1e 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 03b5b7a3bbf92237d711631c3086f30251008589..77b2168ad974737f7e1a34531c71b6840b79a1f3 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 ccb139203acb72f6dd5207caf65163827d154899..fccd1489e11caf063fa2b74003e7d84e49f215ac 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 90278a744f1514f29a572b96007f4c07c974ab59..ec9ea0b85331aa5c5fce1b580def74b15149f7e1 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 bae0d9a18c67cd73aa93dd4763c620d2be6b7126..ed680b1b4cde1b396c96fbf0d2af06e7d7a7d69c 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/dcmtk/default.nix b/pkgs/applications/science/medicine/dcmtk/default.nix
new file mode 100644
index 0000000000000000000000000000000000000000..817ab578a82da5a2b7dc6cb42d096ab6506a914c
--- /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 2e19012af874647f96469e5a453be66381b00714..8ed3deed804c997795fd46c8a200e570fb3b60d1 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 74fa4cc02ed54f94928cd73b8f7a0d14c3726301..4af233a6d55fa752067c1cf44b24bf9bcd65a1d3 100644
--- a/pkgs/applications/science/misc/golly/default.nix
+++ b/pkgs/applications/science/misc/golly/default.nix
@@ -1,10 +1,10 @@
{stdenv, fetchurl, wxGTK, perl, python2, zlib, libGLU_combined, 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";
};
diff --git a/pkgs/applications/science/misc/simgrid/default.nix b/pkgs/applications/science/misc/simgrid/default.nix
index 610d7494ed80548db25c6edf6b2e1c5196345044..58f464575b0ccba832521a67dc91d170b7c0919c 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 751f3c3aebe3d9f1812e72a1327e5728bfd01cf1..ed4e82f766c5a42b1ee6cfe4bd3510658bf072dc 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 d00b59307c522897a8d1482087d373899862ebba..d720f5ea0787ff89c1c72a51fa4ed0fca716e6f5 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 3bfb70f5ce8ecd0a895b63b00c578c9c331bcf95..2c0bb84c801f49df41f72064942e198d7bad0f8b 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 6449e966959b8dcc93ca906423a7117173c7524c..31295114375df293dc2c8fe2d861a4ca5c3da3ad 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 1863757adbcf819fd328a03cdefae4225f4c5497..cbf7f4db8c416c91dd5422225956899a889c90f1 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 983a5153ee2f435b44ca802db3ddb25a0efa2222..bce5795a9c7e95d6df106669cf64e818460c40e2 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 3dc7792de2ae8b44133ed91367aaffdc3b03a5b4..8f862af0a282edc940bb24670a5e955c3c8dfff2 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 0000000000000000000000000000000000000000..fe10551771cfedc7367a4c83da772f45af41c4ba
--- /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 0000000000000000000000000000000000000000..5c2d363b17f107e9ff96113bf2d201db2fe8e6aa
--- /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 cc02988113331de2957afe7a07306198a5fa5d0c..8a41221a2671e4b788956d61150e82b3fab7c818 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 e64254ed29f15df26ee1f7eb768792a5015c9eba..db82cc5413516e3a52c435877f3cb5839c0ca4ad 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
@@ -147,6 +151,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 0000000000000000000000000000000000000000..023b9f6d96710f5337887989295efd98fac87f42
--- /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 1bbbbe22d9a808c3789de590e6a750418e072b6a..96216e76fd315206a34c7616df7ab393d3ccf15f 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 b73825737dffad0214b4aa288e60c6049d703afa..477b628c4d7b1708cc84b2c3a5516541a07cfa5f 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 dde1b19b4c3b2e31ac490e823eeb7a03c1f3654b..0000000000000000000000000000000000000000
--- 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 0000000000000000000000000000000000000000..081341957035e22239442ab02caa1b6619a94d16
--- /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 545fc77168e938d2a22772f5ff4a0e513f0b1075..5d1a06e0397465d4417cbd5ef92d732cab52c649 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 09c9169e434e45a35a85f194a7c1d25e03fc9daf..64ef6db980b2f5debd5c79dd43f58f595f1c2feb 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-remote-hg/default.nix b/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix
index 7d6b620e2239779dfaf5184736a6c76c0b5172c2..6df3a97dbbb2f401b3d95473b08cdd4109da7b43 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 62fbab02292dddbff8c7c882dda4b52211479f56..8477dfac5856a9d2dbd9a2456e5401dc73bbd699 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/default.nix b/pkgs/applications/version-management/git-and-tools/git/default.nix
index 47da7f7a1d7f10e2d8909e30b6af5e2ebd8e5a04..46bbc72fb3bd148e1d32acb946de409412641f83 100644
--- a/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -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
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 6ecf81779f208cbce976482259af0a80ee1aa9c1..22bd0e66c151bc5682f11e4a78f68e60a06546b7 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 cd38be2b977aa37dd3a03c20885d46642bf98437..ee21a2158ac698bad3a58e12b188f44bf765ba89 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 0000000000000000000000000000000000000000..04ba4c7c48fd7340643f6c044d020bd334a1bc54
--- /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 4f9a1c4e54423f10e88e1a16f5adf070e5db7f1f..660c391c0d5ef07e714100e95c5be51973d432d5 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 6866418f3e3e193b1e475bd491739c1e0c753ea7..03933788551cac28b12562b99ae0dc23d8b6f923 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 0000000000000000000000000000000000000000..9d05fb830313e024eba5ad64be6e4a81bacabe5d
--- /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 d9b5e17049766800a2ebf36f07e2f03d35aa1940..f2d87fd69ddea700d0fbf408c7a02115d1be6233 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";
};
+ goPackagePath = "github.com/git-lfs/git-lfs";
+
+ subPackages = [ "." ];
+
preBuild = ''
- pushd go/src/github.com/git-lfs/git-lfs
+ cd go/src/${goPackagePath}
go generate ./commands
- popd
- '';
-
- postInstall = ''
- rm -v $bin/bin/{man,script,cmd}
'';
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 b26548ebe99197949ca721708bd877dc1be4cb0b..b4fee1c90facfbca006a1eaeda679e0120e0b9c9 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.7.1";
src = fetchFromGitHub {
owner = "android";
repo = "tools_repo";
rev = "v${version}";
- sha256 = "13rp0fq76a6qlw60pnipkgfng25i0ygyk66y30jv7hy8ip4aa92n";
+ sha256 = "0acsvrc45kdwpj5mi5i61mibr1fdx4g4835c3b8x0fdgrya4n37c";
};
nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/version-management/git-sizer/default.nix b/pkgs/applications/version-management/git-sizer/default.nix
index 7a92679583b6047fc10830b63b31efb65ef54147..6d41098ee1aad8fb11b25c3b857bd5ca66ca8ea1 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 ba0625c433de9fe0ac0de5e423adc61ed5fb348e..5812ff8c1d1d552ed4bcbe993d719669d15b2ece 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 9c7d83a05fd99b304f12a47ac00769238ea67b98..4ee67a6a1ef36d95f50081c97828b4340c4290bb 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.9.6";
src = fetchFromGitHub {
owner = "go-gitea";
repo = "gitea";
rev = "v${version}";
- sha256 = "0g6ch85dq4vazxnr6g78wgqrnfa955395y1zws0a50h0wfxpdjis";
+ sha256 = "0ql6hrrc339hrik4yk26bjn5x167c5q4s10kjld5fsgmn2k1nhdb";
# 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 fa93ff41a4ae0b87d10900c5b885cbbfaf974358..acd2da71219797653e185caade5b0708f6ae39ae 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 d20236e9f5bf6410ce1881a8fc88007e351e6021..42cc127e40d020cf69e8f19c26b0318bf39fe94b 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 fb18fb7941e6429efa26e738b1cdd79e501f6f37..0075f91ae2d8557ba140084bdec7264f51d8fdca 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
+, yarn2nix-moretea, 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
+ ${yarn2nix-moretea.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 1a6eb99b678d20ada8e8c10d085432d899c26d36..9478dc9a84b48f765b196f364f35b27a6ae13b0a 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 0a86273f7cb149f057a396a5661d9191dee9e099..cb292af8cc3ff550a5afc3d1850e812c011b00a1 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 873d9f390905300ed4dbcc5b8877f1d3c8328c7a..dd17618dc7482ad671eb2267797797866d75bc16 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 5522185783d3401ce23d44c2e9756d816b8abaeb..34c30f710540e252b82e15574db04e3316a144b4 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 fd1af22dd78e16fa2dade2156c85a3c666498882..a5140972ef0fadfbe0638164e2d7984abf5560ee 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 cd4784b36c8e743ff3b8e1d7c38fc75658c096ee..2a83cbe5f3cb650f57eb8a8b107ecd628665ec81 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"
-
- 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
- '';
+ goPackagePath = "gitlab.com/gitlab-org/gitlab-shell";
+ goDeps = ./deps.nix;
- # 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 0000000000000000000000000000000000000000..5b5d0b99bcfeb3d43210b11fa4aeb774dd9b3aba
--- /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 d8337ebb9ea4f920a6f3aaad3cd47f57ef7bd99c..515a41ad34eb1dbe77c623d5a376333147b77428 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
-
- def self.command(whatever)
-- "#{ROOT_PATH}/bin/gitlab-shell #{whatever}"
-+ "/run/current-system/sw/bin/gitlab-shell #{whatever}"
- end
+ 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_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
+ 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)
- 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)
+ 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 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 12f354bc2fb965db568daea335030f5736ae23a6..aa8cf7c164c503c1bf1b312810added14a1bc2b8 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 0000000000000000000000000000000000000000..9db1c002f8fdea28259671b76bc2bbf3eb4592b1
--- /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 7a2bfea0c109c180503b75b5347d77b0ae81c83e..846bdeff48d3ebd7896f6eb309a7c5c21a1c8057 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 8bffc2a973d91062b2cc5f5b2a8db0ca90d132ed..0000000000000000000000000000000000000000
--- 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 60939ae918c8c055b7c2f07bf76c36702a062fef..0000000000000000000000000000000000000000
--- 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 8da7a3262c1202f1fc3a9c3d44b7967d0fdbac1a..0000000000000000000000000000000000000000
--- 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 62ee2990dfa63bb6f96f5dc57faad97a92cd533c..920f778c053f1ad4129766047c6bc460ecdfafa5 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 0a6d7fe1370bc3a2ba5d2561e0cccb5a5f631fbd..18160932c56f2fcbc8db903d21219bbb17d0aa9a 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 8050743ab258a64ad2bde9e7d1a49c5ee7bdd7e6..84a984ea2b355b2329fbc24669155a509fae58ee 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.8.0";
+ };
+ gitlab_chronic_duration = {
+ dependencies = ["numerizer"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rajna3aijqj8ap55xggawyh2xzh1vkrmzkjh3ja5x05qsf9csgs";
type = "gem";
};
- version = "2.7.0";
+ 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";
};
+ no_proxy_fix = {
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "006dmdb640v1kq0sll3dnlwj1b0kpf3i1p27ygyffv8lpcqlr6sf";
+ type = "gem";
+ };
+ version = "0.1.2";
+ };
nokogiri = {
dependencies = ["mini_portile2"];
- groups = ["default" "development" "mysql" "postgres" "test"];
+ groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "02bjydih0j515szfv9mls195cvpyidh6ixm7dwbl3s2sbaxxk5s4";
+ sha256 = "0nmdrqqz1gs0fwkgzxjl4wr554gr8dc1fkrqjc2jpsvwgm41rygv";
type = "gem";
};
- version = "1.10.3";
+ 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";
};
+ terminal-table = {
+ dependencies = ["unicode-display_width"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1512cngw35hsmhvw4c05rscihc59mnj09m249sm9p3pik831ydqk";
+ type = "gem";
+ };
+ version = "1.8.0";
+ };
test-prof = {
+ groups = ["test"];
+ platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "08nvn3c1mzgcjgk9lr3py0zjd8fjjrm3ncn9rpqkfbx429mgw2l3";
+ sha256 = "0ag33hv8ky8nxpsra9jkam9npi1jjwb7f7zmvi2najci5mdr10nr";
type = "gem";
};
- version = "0.2.5";
+ 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 650bd73aa845cd02c50f18b4657d28bcb26bc607..1aeb459f64c9e770732e12658cc5cafabfa468de 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-moretea.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}"
+@cli.command('update-rubyenv')
+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 0000000000000000000000000000000000000000..cff2603129d52c4cc8fe14970b25fcf2cf89eb01
--- /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 168827c3548f5f700ce85a8ea9d12cdb6d7dbec8..5342a0697ab2256a1e63bd9d5b3b61f25c891696 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 bee1c82e11b6790ef82cbd2278683699792d4b80..c23feec6f4362c5b3fb25ebb4613e024d86d5f65 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 0020c8c2189e47db153d8e858af6fad790d8892b..317cbfde85b0379560cab89bd890df82c3555b25 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/redmine/4.x/Gemfile b/pkgs/applications/version-management/redmine/4.x/Gemfile
deleted file mode 100644
index 343c7b3a5470c73852aa7df2a8475b2750b92a93..0000000000000000000000000000000000000000
--- 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 671d2bb4ac1f7b882afd0a32b8363c56ce53d09d..0000000000000000000000000000000000000000
--- 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 a3ba418a1463da4cd81bbbac01de8ab076a13afd..0000000000000000000000000000000000000000
--- 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 34e459111f8aa09ae9ef53ebbb1521dea16ec47b..0000000000000000000000000000000000000000
--- 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 5a0283e20ed5c36bc87be82ee7517c8794df180f..b51096d16f3be3774bf034be897b532905fb6190 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 21296d343b44f16d00c595b67d660a35d12f11f6..aa434465b0280fe7d4e1b92b5a634834b6bab08b 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 0b1f64b58a1746d3b151eaeae12ebf69c73fce40..e70850e882195dfea51a1b5813b3963a2f119848 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 4ef4bd404270774762cb8a2fcee3c3e859e7c7c2..e969d2bfee0784d2a90bb44581046da16ce00bbb 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";
+ };
+ activestorage = {
+ dependencies = ["actionpack" "activerecord" "marcel"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "04is6ipjqw1f337i8pm8w5bd99rpygqfd0fzzxkr7jd308ggmsjk";
+ type = "gem";
+ };
+ version = "5.2.3";
};
activesupport = {
- dependencies = ["i18n" "minitest" "thread_safe" "tzinfo"];
+ dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1vbq7a805bfvyik2q3kl9s3r418f5qzvysqbz2cwy4hr7m2q4ir6";
+ sha256 = "110vp4frgkw3mpzlmshg2f2ig09cknls2w68ym1r1s39d01v0mi8";
type = "gem";
};
- version = "4.2.11.1";
+ 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,29 +156,29 @@
};
version = "1.7.0";
};
- docile = {
+ csv = {
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0m8j31whq7bm5ljgmsrlfkiqvacrw6iz9wq10r3gwrv5785y8gjx";
+ sha256 = "097rl10ivzlya5640530ayls2f1vid2mfgjy9ngd789qmp0j6x4b";
type = "gem";
};
- version = "1.1.5";
+ version = "3.0.9";
};
- erubis = {
+ docile = {
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1fj827xqjs91yqsydf0zmfyw9p4l2jz5yikg3mppz6d7fi8kyrb3";
+ sha256 = "0m8j31whq7bm5ljgmsrlfkiqvacrw6iz9wq10r3gwrv5785y8gjx";
type = "gem";
};
- version = "2.7.0";
+ version = "1.1.5";
};
- ffi = {
+ erubi = {
source = {
remotes = ["https://rubygems.org"];
- sha256 = "06mvxpjply8qh4j3fj9wh08kdzwkbnvsiysh0vrhlk5cwxzjmblh";
+ sha256 = "1nwzxnqhr31fn7nbqmffcysvxjdfl3bhxi0bld5qqhcnfc1xd13x";
type = "gem";
};
- version = "1.11.1";
+ version = "1.9.0";
};
globalid = {
dependencies = ["activesupport"];
@@ -196,57 +205,56 @@
};
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";
};
- metaclass = {
+ marcel = {
+ dependencies = ["mimemagic"];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0hp99y2b1nh0nr8pc398n3f8lakgci6pkrg4bf2b2211j1f6hsc5";
+ sha256 = "1nxbjmcyg8vlw6zwagf17l9y2mwkagmmkg95xybpn4bmf3rfnksx";
type = "gem";
};
- version = "0.0.4";
+ version = "0.3.3";
};
- mime-types = {
- dependencies = ["mime-types-data"];
+ metaclass = {
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0fjxy1jm52ixpnv3vg9ld9pr9f35gy0jp66i1njhqjvmnvq0iwwk";
+ sha256 = "0hp99y2b1nh0nr8pc398n3f8lakgci6pkrg4bf2b2211j1f6hsc5";
type = "gem";
};
- version = "3.2.2";
+ version = "0.0.4";
};
- mime-types-data = {
+ method_source = {
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1m00pg19cm47n1qlcxgl91ajh2yq0fszvn1vy8fy0s1jkrp9fw4a";
+ sha256 = "1pviwzvdqd90gn6y7illcdd9adapw8fczml933p5vl739dkvl3lq";
type = "gem";
};
- version = "3.2019.0331";
+ version = "0.9.2";
};
mimemagic = {
source = {
@@ -259,101 +267,100 @@
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";
+ version = "1.9.0";
};
- multi_json = {
+ mysql2 = {
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
+ sha256 = "1a2kdjgzwh1p2rkcmxaawy6ibi32b04wbdd5d4wr8i342pq76di4";
type = "gem";
};
- version = "1.13.1";
+ version = "0.5.2";
};
- mysql2 = {
+ net-ldap = {
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0qjd97w6a0w9aldsrhb2y6jrc4wnnlbj5j8kcl7pp7vviwa0r5iq";
+ sha256 = "016igqz81a8zcwqzp5bbhryqmb2skmyf57ij3nb5z8sxwhw22jgh";
type = "gem";
};
- version = "0.4.10";
+ version = "0.16.1";
};
- net-ldap = {
+ nio4r = {
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0z1j0zklbbx3vi91zcd2v0fnkfgkvq3plisa6hxaid8sqndyak46";
+ sha256 = "0gnmvbryr521r135yz5bv8354m7xn6miiapfgpg1bnwsvxz8xj6c";
type = "gem";
};
- version = "0.12.1";
+ 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";
+ sha256 = "0fmnyxcyrvgdbgq7m09whgn9i8rwfybk0w8aii1nc4g5kqw0k2jy";
type = "gem";
};
- version = "0.18.4";
+ version = "1.1.4";
};
- protected_attributes = {
- dependencies = ["activemodel"];
+ public_suffix = {
source = {
remotes = ["https://rubygems.org"];
- sha256 = "18lvrvmcwjvjr2mrn20vaf68a0q6mg4cy9f0m1i7x83p0ljhhyar";
+ sha256 = "0xnfv2j2bqgdpg2yq9i2rxby0w2sc9h5iyjkpaas2xknwrgmhdb0";
type = "gem";
};
- version = "1.1.4";
+ version = "4.0.1";
};
- public_suffix = {
+ puma = {
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1c7c5xxkx91hwj4572hbnyvxmydb90q69wlpr2l0dxrmwx2p365l";
+ sha256 = "1pkrbvak6rlf147qpd4zss031qrwwh53g8s6017037iwg0436kv3";
type = "gem";
};
- version = "3.1.0";
+ 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 = "1bxamwqldmy98hxs5pqby3andws14hl36ch78g0s81gaz9b91nj2";
+ type = "gem";
+ };
+ version = "0.7.1";
+ };
+ websocket-extensions = {
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0f11rcn4qgffb1rq4kjfwi7di79w8840x9l74pkyif5arp0mb08x";
+ sha256 = "00i624ng1nvkz1yckj3f8yxxp6hi7xaqf40qh9q3hj2n1l9i8g6m";
type = "gem";
};
- version = "1.2.8";
+ 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 343d88554d632dd904edbdfe0e3e03f4afa16b4b..554dbae3882e2f837ee64f05605899a7f0752fd2 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 e554afe4a92e07ce818a31f71957b61afc5b0930..76edc1b3e6465eeceb0e941b3a6068a28dbb2d38 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 ca054c5cfde914ed71f98bea3a208fb75661be22..67486bd28f3a0f137eb8f2c9063c044c0aea0129 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 00a3cf27111302a6f43fe1b867236049ddeb347c..3fa5399c2b56bd00cb9b6a45c1fd61cb271d0547 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 c77fc902277113ed69e0ad7d979895f4b8ca1784..a61f35b9ee1c89cec53599279d9e30e4b5011795 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 996663761a7db26f92f54e180f06f1661c4a68da..b580e89c747ed91a4615a81771cd6a96faa9f67a 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 9381764846864fe3714683c09b5e5ad4c98559c0..fd5c3145db0a787e1ea70c909707c14d269e6b3e 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 ac36a219a9123a82152111ad18e1920ecbf23b24..8aa6128819f1bfb53a2e6d50874132940850b8f9 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 a0198cb52cf50f228d9e4091047713395cfec844..df4e62a7ac26f1a286fe0a14eb5a554fc2328926 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 af3685c472cf77b4e380481a90018b0cecd32ab0..a5458b0b8641030356d0cb0c38f70e123ccdea0a 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 47153d9f204eccb675a9a5bd4fb7ef67de4fb911..4e397c649f902fc4db2bfbf2f08d4e3a0304f289 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 ef6ed3a744b6822cca3f6a61f480cfbad21050d8..c5209cee46bcae9a915198a6244e5bd406631822 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 6b67478aa674d248d40e267e7eae8f2b4e760fa3..a7703bd07292ab5b08f47987bbfbaf148463f495 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 a3fcd209efc0f046bede34119fc88bce681dd4ce..8ff384d84b7fd173f7882abf0d866fc67e27787f 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 0000000000000000000000000000000000000000..1f2b2535931938f30319d981d1bd8a5253e6e6f3
--- /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 47a82470137e707d3fda037b0d6d94951cbc239b..22fac11b0182ab09cb3742f8e40249889ad96b17 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 eb3946b9ed03f6a9ec065fd8fd15f1b25284b734..36ad39bd37c186fc5c5512c1c8de7175ad33238f 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 1872750deb003bb7be66d236696b283065f254f1..145b7cc06c2d11b8c4411cf2e622524004776389 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 a15a4cd5999a9be587245130a0f5cde31d6c4a54..e8a81a192b5ad7ce7ff70e6e8a462d81a4c85ce0 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 9d549c2aecc3451e3b4d28aac0959b9938d0ec6c..f38046cf8e1a22fd89c4d3b38b829b954e2485b5 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 4ddd84433e88f3af6a10af40b9db5c75928ea735..1b9f0d0997a00e2569d263d03b98e086bd0a18b5 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 773c63b0036d12f66fcedf0e41ea5f736174081e..7953cde2413987c730deaaa37cf1701588ce98bb 100644
--- a/pkgs/applications/video/kodi/default.nix
+++ b/pkgs/applications/video/kodi/default.nix
@@ -13,7 +13,7 @@
, 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
@@ -161,7 +161,7 @@ in stdenv.mkDerivation {
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/minitube/default.nix b/pkgs/applications/video/minitube/default.nix
index a9876da234f7a4d0cacb22413cc99d21aa7e73c1..f1f757d588fd766d1446295a5248ca4e38487751 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 04ddbbb8c06a8bae28a3feea8156aeb10fbe4cc4..153d0a20b6e621895c79d9e92160f0c181132a1d 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 bb0b92eee030da5fe841a1c807260b59990605e8..f3c7d3761004fafb5e62ed333151db21d5cc9851 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 d5c46491cf415dafe654c50951011b62efea8924..7914bb84c428c44abb3717fdf159290c474e9552 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 0000000000000000000000000000000000000000..5a35dc2d1ddf4bb93811fa38e842b338a24f053b
--- /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 0000000000000000000000000000000000000000..29bf1f5967bbd50d47515f2f54efdc06d45357e0
--- /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 5e7cf9353b2572e3929aeaaf2fbda52e7a6f47da..e5022242ef883ad3ae3aa79fdbcd1dec47e619ba 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 0000000000000000000000000000000000000000..4503447ff5dc7faa26cd80637e35214cee2e4b54
--- /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/linuxbrowser.nix b/pkgs/applications/video/obs-studio/linuxbrowser.nix
index 52aa57bf19861e48d84d5052a87447e1aadbd3c5..134e0cb8a9e32c4e465f93bb93e1bb195c199747 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 0000000000000000000000000000000000000000..450ebf4ac20d0dfe66ee9e9d7ad48763f61580a4
--- /dev/null
+++ b/pkgs/applications/video/obs-studio/obs-ndi.nix
@@ -0,0 +1,39 @@
+# 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
+# ln -s ~/.nix-profile/share/obs/obs-plugins/obs-ndi ~/.config/obs-studio/plugins/
+
+{ stdenv, fetchFromGitHub, obs-studio, cmake, qt5 }:
+
+stdenv.mkDerivation rec {
+ pname = "obs-ndi";
+ version = "4.7.1";
+
+ src = fetchFromGitHub {
+ owner = "Palakis";
+ repo = "obs-ndi";
+ rev = version;
+ sha256 = "040fkbf3f3qgqcrd3072y3zrjb4fwga8zr10jym744xd7bgyylqh";
+ };
+
+ patches = [ ./fix-search-path.patch ];
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ obs-studio qt5.qtbase ];
+
+ 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 0000000000000000000000000000000000000000..13a53f94590a735ea8733ecbc0f5923dbd97552f
--- /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 efa06f4794efafa2741a8a598bfbbacbf3bf7342..1285422a2f927152c15fa03bc6f980942a43ac96 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 374ea08816f7996e10ef3e5a8356f809f197f639..4872b5ec2eb6ed00b0056d2440be7cffb6a5bbc4 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 f0c3776a43361ed333ca8582ca762662be7ece37..cd6416032da2fcb7b5c4a43a47e33a37d16eb688 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 1671c3f14d00b78a4e6f98be95dc085afd498ada..56b1134b2b8af7a13fd777480a8a03fea45139dc 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 176c4be4946d3e7871003c80675635ef6e42aa9a..4636ce48b1a5b1516b360d2e251eb5689fa8d392 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 495fc6f674525d186d9ac5be2b671f8be1b6221e..facb8fabe2654334a3c1f7c5c2c6721e137bc6cb 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 e33610ac4163399b9c22f891411366f4fd748700..b5ffdb018ffecf40675b8502ec9e9848a39b7924 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 a38076ca42b61ba1ed381fd290ad5bed5de33180..2396a224d451f4dcae36f8278e6895065db8b967 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 ecf6f1c54218ecf6d19c3eb123a5d29e51705e74..c0080329487fd9a898a6a534b121798a4a441c2e 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 0000000000000000000000000000000000000000..f144ec976779eb0bec602b840284b276f5ef727f
--- /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 c55eb342e06947b45bf70b817292136e4ae3c48b..35c78dfd50a40d7e5c4aa7473ac48c958f3eeaa0 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 0b523d7b88d778e35707d142a7669b04e384770c..a3576557f34cf0a2c116ad77c771e24547379c9c 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 b770c6ed0a5995f2b7f545302805bcf9e162c644..70865ea848b349d9762f4965a58760e181d74d53 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 0d2d0278cc3baa68689af9cc85d9849296d86fd5..fddf1741720ca88ada178af5a0387d5cf4558a49 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 0000000000000000000000000000000000000000..7dddc3b533b4d08535a330e0b11c8bbb0bac0154
--- /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 027404439cd56fdb6984a7161bf47c94d4c585e4..7b4e7787985f180a5ac2be8c6150de8ae3c57283 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 0000000000000000000000000000000000000000..c7be90222c2eb230c501f0cb37e0c54e8e930e68
--- /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 45ec7383fc8776bd9c049633a405c12a1a815f56..9fa06f5bf0b911675597113aedc008873b0a8c4a 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 0000000000000000000000000000000000000000..1f74318f2ddefe388ac48897d2ed359c8bb225a0
--- /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 318929eb2253c26a58f98a8bc3f064269374b941..cd6600387cde9bee1d489e7f94e515b100768561 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 ee241abda7f87efb22653323d45c2da9c5621c53..49e77a5ec9d80f6b56b1730bda1205bc5ad83a1b 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 ff768cb7878c07ae70cc979a2f833564fa0d411b..9d94ced0bf2170e1f229878d5ca3636bcbe88c40 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 d64baca2cc7ef51831951a098cbb2793a1ba0527..f90873c6e33676b909822fcf3917647827639be2 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 37c12ddbfeb7b3330e94f609cd796e1fc4723f89..57e190f5ae79215610b25648bcfcbef73f71013e 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 0000000000000000000000000000000000000000..430d712217978696055b54fdbf6cb6a7d1ec9e0d
--- /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 6357f9fadff9985a088eb7f9ec26baa9cea2a9ea..c850a18c867fda91ab79620c741eba7c9583012a 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/umoci/default.nix b/pkgs/applications/virtualization/umoci/default.nix
new file mode 100644
index 0000000000000000000000000000000000000000..245bb841af63edeb11bb0977fbfc2122b66f8d57
--- /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 9fc167f5e9de41102330eec3ca05b3e85ec4d280..f32a2a6ce1c0b739717e2e036333792318589dfd 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 7ea83b015592130356d9384e9a4aacecc414eb22..f3004267ed79824d9638bab75e1f4e2cbfc33213 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 ac52b83e43d2a2521f2c0598163ce59490e4c94a..addcf125e27e092bb646432a8527d8305a673975 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 8c9f1aea7baa9e586b7b8fe933080fa4582ad31f..56400a75945794263135f96fc1ebbf57e53009cc 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 e7f6fad79f90e145fe5bdb57dbd0aee1fe59d1ad..af247af0051e367011abed85c141414242583127 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 0000000000000000000000000000000000000000..0bdd9ec105635093421f2feb3bb9ae3288b287c0
--- /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 0000000000000000000000000000000000000000..ba9c7c941db956cb81b2a53afec0fa52f38296bd
--- /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 ea8a24e57a3435fdc1fcd91b92c3d3794a903151..c57a7f6e7714f8f808ab14017a1f32216bd56f73 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 042b01e86780fe98630174a56b020d159f1828d5..d3c2ed9060c7a9c8f052e5c9d1df54c25234f16c 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 1608fabf4b299731d0ef1dd68e09afaa68f9f2ca..c7568d990626660f0f69b5e4fd7a492652c31f9d 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 de692820d8f74be88cad98271e3eb95ad9886120..26cdbc1f65f7f48c6ff7dda9395def06222df63d 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 26b55b364f17e989a36bc3a2099fc21be6aba0db..e39877df829148121f5fabbfe322cdf4e5c1e7d1 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 4b61fe3d7e6c49e6bf924a5a730e2c05f435462c..cd1a3a4baf7a4bfaed99d3dbe7adcb42d3ec2c5e 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 2551ea80550efa7002c7887f9cc24cd4e73180fe..b8f31e5b512a9ee68302f10b5817d3c6ed1e3e39 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/cwm/default.nix b/pkgs/applications/window-managers/cwm/default.nix
index 1354171dcfacd6c1aba553a183a0dcffb363c2ec..c109cd5cb68a1d9e29e69712888c46495a530849 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 1787e40eb96c768646ffe380b6b5b47af3bc9ffe..ecd792f74e785aa4caa51a76304017a2ea59f0bd 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 27657c10a7e3c498574d896c6f5fcb076ea0d3be..cc503b2db4f40efd98255262fcf14dfa3524d261 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 ef03216d499bc027e21d77070c7f2910d9f6a5f6..15bd5e74cdc81895ea43f3ba1d0be751e110926e 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 4d4ab6d96cc508c56417ee31c41c131f750190a5..e5c478987df41e91c1896cf3333711eb749b9087 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 60edf05892de2a16d06a7f38309f6a3f50f6667d..c87314089515e3a3bc2e307c5d1c690cd380753a 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 92588eb2fdb9e5b91a3b43d6fbf3184b556ac39a..54b7e47cc075e3fce4422a4bc7f0d173e7fe407d 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 661ca013e240cb2de0f9dc58cde895b85e328822..29e33bca91431f64f266a4c57ced672eff2065e4 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 dc78702b03c5addb1e608eb1b4f0b65fc814c991..6d0e6bdac45e0e5f3ff8934666d3d03fb1102d3f 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 1f84403c10fc7ed4b732dae159b42505e94ce870..7e2b2b347d900e07d93f1bba3775772dbb128a9a 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/setup-hook.sh b/pkgs/build-support/bintools-wrapper/setup-hook.sh
index f65b792485a095c69b34f537fa8a8d60a6d7938e..2e15fa95c7941fed76af7642f03b1b1066220df7 100644
--- a/pkgs/build-support/bintools-wrapper/setup-hook.sh
+++ b/pkgs/build-support/bintools-wrapper/setup-hook.sh
@@ -24,7 +24,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 +62,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
diff --git a/pkgs/build-support/build-bazel-package/default.nix b/pkgs/build-support/build-bazel-package/default.nix
index d4318b715ba369552b723f5ddd6d1b26ec607311..a1a38484386d42edd491b3cb1afbe60ba8143cad 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/buildenv/builder.pl b/pkgs/build-support/buildenv/builder.pl
index b699d762d29c5ae23ee772d6a2cbe4f2083ac1aa..fc6ffce735cc39cd9d7a96cc0740d43dd70f95fd 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 bb7890100087f0159bea03dce2ba3a9cb485d28c..ba3dfc96f5c4ab5a4a9255c5303f214db0f38c75 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/docker/default.nix b/pkgs/build-support/docker/default.nix
index 83e21c8945dc514f36ab832e9f369da24f5a59e5..37b25232b9619ddef4f610e81e4eda47b7eb8b79 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/wrapper.nix b/pkgs/build-support/emacs/wrapper.nix
index b242672df10b710146e4a78505801d447dfad8b5..25f068cd3fa08d04f9c7e082561da431315dd278 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;
-
- # 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=("$@")
-
- # 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
-
- eval "$var"'+=("$pkg")'
-
- if ! [ -e "$pkg" ]; then
- echo "build input $pkg does not exist" >&2
- exit 1
- fi
-
- local file
- for file in "''${propagatedBuildInputsFiles[@]}"; do
- file="$pkg/nix-support/$file"
- [[ -f "$file" ]] || continue
-
- 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 requires
- for pkg in $explicitRequires; do
- findInputsOld $pkg requires propagated-user-env-packages
- done
- # requires now holds all requested packages and their transitive dependencies
-
- linkPath() {
- local pkg=$1
- local origin_path=$2
- local dest_path=$3
-
- # 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
- }
-
- linkEmacsPackage() {
- linkPath "$1" "bin" "bin"
- linkPath "$1" "share/emacs/site-lisp" "share/emacs/site-lisp"
- }
-
- # Iterate over the array of inputs (avoiding nix's own interpolation)
- for pkg in "''${requires[@]}"; do
- linkEmacsPackage $pkg
- done
-
- siteStart="$out/share/emacs/site-lisp/site-start.el"
- siteStartByteCompiled="$siteStart"c
- subdirs="$out/share/emacs/site-lisp/subdirs.el"
- subdirsByteCompiled="$subdirs"c
-
- # 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" <&2
+ exit 1
+ fi
+
+ local file
+ for file in "''${propagatedBuildInputsFiles[@]}"; do
+ file="$pkg/nix-support/$file"
+ [[ -f "$file" ]] || continue
+
+ 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 requires
+ for pkg in $explicitRequires; do
+ findInputsOld $pkg requires propagated-user-env-packages
+ done
+ # requires now holds all requested packages and their transitive dependencies
+
+ linkPath() {
+ local pkg=$1
+ local origin_path=$2
+ local dest_path=$3
+
+ # 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
+ }
+
+ linkEmacsPackage() {
+ linkPath "$1" "bin" "bin"
+ linkPath "$1" "share/emacs/site-lisp" "share/emacs/site-lisp"
+ }
+
+ # Iterate over the array of inputs (avoiding nix's own interpolation)
+ for pkg in "''${requires[@]}"; do
+ linkEmacsPackage $pkg
+ done
+
+ siteStart="$out/share/emacs/site-lisp/site-start.el"
+ siteStartByteCompiled="$siteStart"c
+ subdirs="$out/share/emacs/site-lisp/subdirs.el"
+ subdirsByteCompiled="$subdirs"c
+
+ # 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" <).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 7a5642e565de1355bb6be62dc561560dae928327..ed5dbdaee1714d944377a96b7eb7fb2f85087443 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 10a6daaf53f777b5f797767242e7fb4b0f72d55a..0000000000000000000000000000000000000000
--- 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 8f976ad462cce1cd6ffd4270c29b0c4ef50d7000..d894b56d366aff19f2a70e4f392bf38b65e3e623 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/rust/build-rust-crate/build-crate.nix b/pkgs/build-support/rust/build-rust-crate/build-crate.nix
index 2999c3d4c1d9af8bcc3cd142fdca75327835b473..e0a52e62561b7b560936238dd95bb139d5b3a10a 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 169adcf2d43a23cd89f13aa81f1e0ec19a653485..2c7226b0962244e819830a231d6a446f2f7abc9d 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 acb2ee63cce47ea6f6f4cade97cb1331bd58f394..6534e21c0f0c1b4bf221b99887105a9dba1d7c9b 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 f3f9ef377c8c906a28c2a9833639220a9fa7cab9..4a90cf442a4d93c50a79493790c4f6b4536fd9b8 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 9af5cbe652c3db7250beff6701deabfe2fe968a6..0000000000000000000000000000000000000000
--- 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 f252c6a6cb1f034079885a28ccd3ba25f0b2c268..0000000000000000000000000000000000000000
--- 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 b3ab9f5ba780a5f2012f889151a4472a70c6d8d3..1c4fe9daeada7bb0e832d6d87f8be1a18089568c 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 ce1bf8002767e8c18d661d482746c89937ff1af5..f0f949b220560feb264782325dacadc645df1949 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 4e6058383d48ab20295bb83ae6eca18f2bbf5a80..a515ce9c6eb598af6776d3a104dbcc847c2513f2 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/make-wrapper.sh b/pkgs/build-support/setup-hooks/make-wrapper.sh
index 06891893e8c174544de869ade2811fa37dd7c840..8b7012677cd58f1b4ff8a2bbda7a2c3b666929ba 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/wrap-gapps-hook.sh b/pkgs/build-support/setup-hooks/wrap-gapps-hook.sh
index 906b1db9d10ee751643f70e6fd2bce116256461f..717740f1f20f06c6107c4a636524d316a8557f7a 100644
--- a/pkgs/build-support/setup-hooks/wrap-gapps-hook.sh
+++ b/pkgs/build-support/setup-hooks/wrap-gapps-hook.sh
@@ -1,12 +1,19 @@
+# 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
+
+wrapGApp() {
+ local program="$1"
+ shift 1
+ wrapProgram "$program" "${gappsWrapperArgs[@]}" "$@"
+}
# Note: $gappsWrapperArgs still gets defined even if $dontWrapGApps is set.
wrapGAppsHook() {
@@ -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 ce32279710e2bb548dd9aeb21f42db9863017d94..9b159a994c8033250b50dcb49aac87d506894d32 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 371ab13c528196aa1d14671c0b33d8369a179506..335cab7c45e16dac6f4430ca8f45713d3aed4d0d 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 8dbe0dbdbd03365c0d4e19d4e5df9bfaf9620b9e..2cd4f1af022bd594cf6b2f8bb1ed8bc74ef8a1a3 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 d7c347a559ef4c70aa2f3d9304d4dbde372647d7..3cd0a080ae8f9d8d1a41baf43f5deec8d2b33cc8 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/man-pages/default.nix b/pkgs/data/documentation/man-pages/default.nix
index 8b0696408e63cf635d6dcd3d2a8bb804b2c554db..a266a597e0b025d4651ebefb5e6df36a51a099f5 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 e9f4fbd48678da054cb2072ee40c62d72a9d1a0d..1fffbd9dcb168efe11ae76e30c005edca057f675 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 5408e7b1b1d11c00240b76d16371b47588b7c015..113ee5b920415f6922ab1e7570d7030e6bcaa659 100644
--- a/pkgs/data/fonts/babelstone-han/default.nix
+++ b/pkgs/data/fonts/babelstone-han/default.nix
@@ -1,7 +1,7 @@
{ lib, fetchzip }:
let
- version = "12.1.4";
+ version = "12.1.7";
in fetchzip {
name = "babelstone-han-${version}";
@@ -10,7 +10,7 @@ in fetchzip {
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";
diff --git a/pkgs/data/fonts/cascadia-code/default.nix b/pkgs/data/fonts/cascadia-code/default.nix
new file mode 100644
index 0000000000000000000000000000000000000000..d2d2ad342561edb0095a72e47230a2ddd24b9cf5
--- /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 6d1c4b10c91a703a146dc84746f4827cc01e5522..00a8a2f61fcc9f31cb7de9ac2cfe1acb33f0aa3e 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 2615d0260f0dc1060a4ab1d5de74a30a7b51c61b..6dcefe9005565c16ee1aa107b38263938c6d2f6f 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/fira-code/default.nix b/pkgs/data/fonts/fira-code/default.nix
index 09bae8cbea53c0a5f46788bfd6c6c33756dd899d..46149b0781b533e4bc77f73db4f44149aacc142c 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 1f861afcf83f8c11e65fe8d5995ff81558e51214..29b4241be92c51c1c7cb322cb3ba65e7537ef3d9 100644
--- a/pkgs/data/fonts/gohufont/default.nix
+++ b/pkgs/data/fonts/gohufont/default.nix
@@ -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 \
diff --git a/pkgs/data/fonts/ibm-plex/default.nix b/pkgs/data/fonts/ibm-plex/default.nix
index 7401c5694624a29b7f53d8d9109d04f6e55ea462..d4a673533af7bac70f03576ee0575b0d5265aa0f 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 = "3.0.0";
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 = "1vv0lf2fn0y0ln14s4my8x2mykq1lwqpmkjkhs6cm48mzf740nhs";
meta = with lib; {
description = "IBM Plex Typeface";
diff --git a/pkgs/data/fonts/inter/default.nix b/pkgs/data/fonts/inter/default.nix
index 589acbcee5ccbed0f4b5d537f05b0feb05afb592..83779e7618eb2e073d4da4928a3a3fc55f038c24 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 962769b81445ddcaf499f494ca12d2ccd051e946..d6d986c699ad2195ae2e557042c9714ca32113eb 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 f7fce315e8c1391bf66d32aa8e0364abc76aee04..fb00fff130f9bf1e95bd997bd71f48d4a6abb3ee 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,
-
- # Custom font set options.
- # See https://github.com/be5invis/Iosevka#build-your-own-style
- design ? [], upright ? [], italic ? [], oblique ? [],
- family ? null, weights ? [],
+{ stdenv, lib, pkgs, fetchFromGitHub, nodejs, nodePackages, remarshal
+, ttfautohint-nox, otfcc
+
+# 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
-
-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
+ nodePackages."iosevka-build-deps-../../data/fonts/iosevka"
+ remarshal
+ otfcc
+ ttfautohint-nox
+ ];
- 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 54de11a1f42256f332769daf7aa5a7db30144f94..0000000000000000000000000000000000000000
--- 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 546482cc0d26261437b1bc259e6f1d05f60b17a3..0000000000000000000000000000000000000000
--- 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 0000000000000000000000000000000000000000..e6221b283927e3d6a27850a3091506104461df70
--- /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 4a14e095cf05c3ddd9623b861b19356c007e5f79..51af6a20baea10139632072722e52e15c3cdb454 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 59b0f89e45ed02bfbbb3b68d86f357e4a69a87b6..454cbc0928100c6f1a1c23a220dd29625e050e7c 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 bd0d39c7f29e304f1f2a1b9081ae56d572dedbb4..04e8e581b63427682bfbc0debdd9212bce4df1c8 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 f4c36f34074c71d5d5cac17ec6a8492cb9ce941f..d91ace35e2c8fba7c328f9a673055f34d06306c7 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 46ebe4dd4b271910e074f262625a9a98e0043f94..cb4c5523a70e08a00f65eeb5be83f99fc5255b0a 100644
--- a/pkgs/data/fonts/public-sans/default.nix
+++ b/pkgs/data/fonts/public-sans/default.nix
@@ -1,7 +1,7 @@
{ lib, fetchzip }:
let
- version = "1.005";
+ version = "1.006";
in fetchzip {
name = "public-sans-${version}";
@@ -12,7 +12,7 @@ in fetchzip {
unzip $downloadedFile fonts/{otf,variable}/\*.\[ot\]tf -d $out/share/
'';
- sha256 = "0s0zgszpi12wanl031gi3j24ci9pkbkhvsxc30skx8s1mj99cd7i";
+ sha256 = "1x04mpynfhcgiwx68w5sawgn69xld7k65mbq7n5vcgbfzh2sjwhq";
meta = with lib; {
description = "A strong, neutral, principles-driven, open source typeface for text or display";
diff --git a/pkgs/data/fonts/ricty/default.nix b/pkgs/data/fonts/ricty/default.nix
index ab794992e45fd8e9e3d0965f3a4bfc633b5bfe98..a248bb9d4949d097f2d91057533a4e72f87b277c 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 2e83d5b12d4cdf4bab28d9535dfa2bf632665818..8b6c3749962ac6b08640a7ef95e71793b3ffff32 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 2d9fbfdae0508df588e117b97701a8425c8caf9f..7e073bf56d34d3ac91e19288ae30882ff8e77630 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 bea5fea0f9d31d94d9b2893a7c1340d18ac52dc6..5186b9fe4a5e6de2fbcc833c4d5b0616a80026ed 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 2964b8692dcc016d0129df5951b1772f7fe9e852..c5dfc1e156f9657ad9ea071ff008102c3506b138 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/twitter-color-emoji/default.nix b/pkgs/data/fonts/twitter-color-emoji/default.nix
index 5c01283d3e9c0aade1752ded5e7197e48fa606dc..4e464f370229b6a82f83ce04a4e87023660667fd 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 e886ad7578e3af478f52de02e07db7ada3d6212a..74f851d77b536b56577ace92ba9119909fe296ba 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 e8784d90e7fd67c21a7b468a5522346845749d93..59cff1b0f470abce264e90eba125606392ed46a5 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 0000000000000000000000000000000000000000..16a0e9ac021afeefc2c6d2755d3f606251c06237
--- /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 24e9f2a393571141798b895fd20b215826a73a90..db0ed425dee2eb4a64eb99a1c4269c2f2126c523 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 6529e5c571c21aaea88db22e265c7978dbf7257e..b0a8a05fc68dc69082d6cf6a7d472b3f7aa21a47 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 2e99c3d9232763b7f742c9d89b79411ed6a76608..a7a403726fa7c0677add4776a50bf156aaf0ba89 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 0000000000000000000000000000000000000000..dc0ead649744a7b5ffd8335da010efe073a1f5cc
--- /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 0000000000000000000000000000000000000000..d5b541317b5e30e1571909259453718f777997f1
--- /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 5a566bef6ef9bfcdbf9f5effd0ff21f6ba829d58..221974c79419921366aa9e545bed2f1613b5551e 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 c15e0f4e551059b54f9ae0f1d5012de1b39b2c2f..efce0a16e1308f3673f387434ed9e9fff1f38277 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 99488a26f2b6f8054e7618421aeac27cc91382e0..96bd4031150379e01e74e27b153a9d2ed4d98beb 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 29306cb316af1d7208edb6e4bad89054947e9617..f07bab4b269ff3911488f9af2cdd8b082ccb3a67 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 f7015621853c8dd9633095d11b1684daacd56dbd..64a982f60375dd105503a8b532535ad3d518ea79 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 a623af206048a4c61016a373db275b2d1babbc62..20bc8dc0a58937509c55b608ef6f5e405eb3aed1 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 83c4b19472a3238dba31cc981035bff5146c3a8b..539dfaa2d109938adf90e4fdfca100879e7ff26c 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 b545856f703ff026cbf6bc0166d659c4905e363b..5658f20c7446018f1e61bdc89aaede89770d8f4e 100644
--- a/pkgs/data/icons/numix-icon-theme-circle/default.nix
+++ b/pkgs/data/icons/numix-icon-theme-circle/default.nix
@@ -1,18 +1,24 @@
-{ 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/
@@ -30,6 +36,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 ddec15e5f3182d0d4545487a3f9bfd5b2fd0cee2..76176f9ad04b8acbb9c9df0a0868ba7e0a406dca 100644
--- a/pkgs/data/icons/numix-icon-theme-square/default.nix
+++ b/pkgs/data/icons/numix-icon-theme-square/default.nix
@@ -1,18 +1,24 @@
-{ 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/
diff --git a/pkgs/data/icons/numix-icon-theme/default.nix b/pkgs/data/icons/numix-icon-theme/default.nix
index e41373f536ffec1dae2688d7f9f063fd363f6785..d3bcdb12d3dcc88ad4594f42838e2e827bf773ec 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 5359b2229f3926e27886dc42eb0a0a14d61af4fd..477960972a7597cdc5e9891f50ee657610c0475d 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 3f9cff62ee4f262193e9e5331b77fb0f34d52821..88611faa3082c48626d53afe0116e121ab707aae 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 0000000000000000000000000000000000000000..e15e64c2101f3235da234439a3f9fd8c1fe8197b
--- /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 0000000000000000000000000000000000000000..b7ae27aac68988a01c918371a8d11d6be57f03c2
--- /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 d38f6485f135b6a0bd86eb7b2cfc1b90c4a77b74..a4a7237f9740382640292e6c13bc07cba826a275 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 c4a8fd44a6100fb7e2feea7fa4ef8c723e5179a7..f271d7a44e65da6051408a7ce73caf23e9731e16 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 942f79ca6e45cd860fdeee2697158214027cfb5a..0b28a02ba4d96a378e71fe0bb412f9f08bb5fbbb 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 e969596752f3185be1c01edd9cfa862050fba15f..77b68a5c251cb5625ba6ffbd5b00f13930b9e08d 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 3500eaa63265fd26e1aef42b3eb103376592df78..0537a5d53737c88ded5431c64cd9eb8d3722bebe 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 d27e1d2dfd2eac053dc6a523b7cbcec4476bf7f3..725d4ded0eba4d4d5409c264eb6bcace89d464f4 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 b41c4a4c5aa9b6a03857cad9651191565f1f9cd3..8af161e8707c5324435b8486b378ddb3f60e4557 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 6952d2da6bad1a85d7cd983c693d6edd73848923..4594ffc239216bc1d6e5dba9e60383ddfa264e40 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 0000000000000000000000000000000000000000..5299f073ae9ee7146d094739d06a70407510e627
--- /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 da12255e91ee1acd756ad7fca0ac3e4fd5abf412..8dcfacadb497cccf155020640004990e010657de 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 ebeb7f2d8665373081d18e1bc9c2ecf6ad6f4287..01221d45014237f4559d0ab59e54d0488ee6216d 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 0000000000000000000000000000000000000000..15ec68b07570c760045877d3b37faab162399b14
--- /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 db0b4ec661047e4c81f189baeefea12804bec013..8ab868891b55d75bc353fd67d41576ac5d0373db 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 02c1b91a3ebd620c21bc16a41c59d2b9173d4531..4a1458ee7a5cc289fdd3d0090bd3eb6dee4f3562 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 1fc82e8aca2b66bbd4eca58ed34209bec57a87cd..714e026d32c13a3bae19ff6516e99e2077a13fa3 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 b009bd2780c0fc63ecfe65474c4487ee2f8cf085..a76a7e400204f19f53707781bb1fa6a3a13dcba7 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 d026e06e39d388b8ba4877efeb1ca11a02ea96a0..d1d7228183c55ecd717d712696bcc6b773eac3e7 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 6461697b04f21996c5e2a16b1b40bc870fa500b2..44993c7e2eca4b928a6d5765da81f545a8268d95 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 5d335905273d747a69b4c8ef41cd7f157be7fbd5..84df6175ba4e3d3f43875c6b03ea96fca6718c51 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 61ec697d841a6aa5dce8d8e2589e65b87f065828..65c0f309fbdd7e0097c0fbe0e5cb127d9a4245f0 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 0000000000000000000000000000000000000000..f83dbc3ebcc924aae397f31141157039d884b151
--- /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 59099bf522789d984cfb005c0cc908394b3ac3db..1d24fb010f2d3554c0ffd61a77a39d2f37dbccf4 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 b052a1042403b12d47ea561a1a0f8086f1cc97f6..36a1d050cb859d60399572f55d1a017c3e21f3a1 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 a3b5e20effc76aaa34a3aa0a0478102939a29e0a..5ebe1f6af952fbfcbbf1ce4b5007c60637e39540 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 427cb1249c907fdf52ca515e8a4d2269dca624d0..3d4800a7510106e4c1e75eb7ac026a46c957d36d 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 0871e004e5f984260899550195ee7ae80d89b361..0aaacee2ba43fc96a140da973ade163e3b47a390 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 19089a6b050e5a6ddeba7110363db29d984a4065..31451dca91a615e5359fa063ccbdc465d0e07fd2 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 c9a15ad88d4a2801d1b982fe245c8edcf49f12b4..bcc5ab81808f406eba729ff941c8a3ff2d2ad95d 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 fc25d007f2007f1372da043868ba35c4991ef9e2..afa245eefe9364c2513b05891406d1cd86880ad5 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 081c93a65c868d098d72f89f7aa87712c0bc2f19..ba7505b5b2feda0f516d171f522c25bfc74add69 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 0000000000000000000000000000000000000000..707eb20740953a3220e262b3d97affa7afa1c37e
--- /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 0000000000000000000000000000000000000000..850186953f635c81a458d1a727d3d17dc6a4dc63
--- /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 0000000000000000000000000000000000000000..1bf576e5c1a5556c98ba4fef6f45ba70192ce381
--- /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 b36d87604e74f638305926c6dd3c7e1a96acfa30..ca5fa6d0906f587c6f9e99024b62319b09cd81e5 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 5397439949b3fedafd972fe237a69b7bb30e3207..0c8e7e8d137507e534b5f689439294a1246f46c1 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 9d181c188d4d22f2e76bc56eb356e31d4aeeb814..533b0a0fdea4e7be8a02ccc481afcd4642e1ed66 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 a0e1e35ad85973a0deb89f116ba6ba4c905d8159..cdbefb406ad2b2e71e60a012766df97825e5a27e 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 d6713fb3688e6a883bec90ef4d0370b45e0b3f4d..e71262cc8e931a4046cbec15a918bcc99f33fe2c 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 7c88102c5f3a044e056578b7db988752e2878ea4..38ebe664b857362bcdc435346c4d84abd777593d 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 97d2b53da70a2b68a89f5e54ddc6dd115137ffa6..201316638a8de121a48048812b1fc5e7e246d879 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 ba826eb9063f67a4570459d4dad31a6405980abe..7ffba88d1533f40a8894fdd32a864fe8be8cdeb8 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 4f2427e8237a97378ca45e140b94391a0115298c..fe2062a3d96504246fd73981eb297a25f0d031f9 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-icon-theme/default.nix b/pkgs/desktops/deepin/deepin-icon-theme/default.nix
index e63a228d0cbe36352da4c445b10551de15d010df..51b67e055541b58da00241f219b934756942bc2d 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 733f4846f5cf8caaf043120773592a4f05ef95a0..bf9d1db212086c4ec3cef189a250b271e6f50dcb 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 18f5422330196f588c4116092333d04401b76e6f..0000000000000000000000000000000000000000
--- 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 046f589263bd73b57b960f89832079c08658bb09..0c14ddff178f1a8e3e01946be0eaf80704788147 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 4a57b501e01e26d56f8d2c13048875a429b3c5d6..0000000000000000000000000000000000000000
--- 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 9f2e8068d555b36956239cae202e19f915b2fbf4..0000000000000000000000000000000000000000
--- 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 e77aa5e68c63ba6d532188a20edf0f9843b3b323..0e0db458acaffad42557cc17c51f64fcebc8dee7 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 62c6c7ed9259d015d3dc19f221b95189799262e8..217dbc2b0dbab80d0b5981651610e9a3f9d28599 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 59789bd84bbeb94dfa6a6e0f95899e5d436b7e0e..7a4d0662bbb8c790774457eb769d79f5aa944af4 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 13b115e7042fbf25da46d4375b6c366e73e2f9f3..0000000000000000000000000000000000000000
--- 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 5d68396a49804375fc3de5acb15f6581e0d05b12..a2bb4ed19d94862bfdc0a2edd2bb69c85fe853b6 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 { };
@@ -27,9 +28,7 @@ let
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 +37,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 0000000000000000000000000000000000000000..37140d84191c905eacf6f5e37ee26378c4488f1f
--- /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 f645be0f4d9bc8f04f5ba4bbec68e40b2202b28a..394bdd52b3d154a58c3f0467ebd5e786e71b2337 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 2ed10f9936812bd34bdc251a00c5102304300cb2..3d9dd33772b9d02d8ccefe67e259c7a983d9ca6a 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 54c4163fcd1df6a11eb166f0960a9f2d14a5ba4f..2e0cfef036acddbfc4b3b1cd35ebd26d870be6a3 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 4807c3d312b5f3e2f8887bf9665de05d75589e5d..0251f8097d5e3182ddf90312c4f655a4780fe650 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 1256297649025dcd7691a5f7c6371980605af9c8..d564f2c887589c770f0da1a356c4c94790280475 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 fff92b595f8b17c985bb154f544d91ff4ccf6dfb..f5ed22f2f8eec28cbe333c44f7feef1399b9c0d2 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 ffbc230d2e2a132c2919fa91f2402e588851a030..b43d74d15c7c68dcb3c5fe56e0881146c0ba888f 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 4d0240c426ba0d98961a2862cc9bf5791d3de787..f382e605bac34826602eef89f945d54abcaa324f 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";
+
+ srcs = [
+ (fetchFromGitHub {
+ owner = "linuxdeepin";
+ repo = pname;
+ rev = version;
+ sha256 = "1pkhbx4hzjv7n4mscv7dng9ymjcc1csdc82iy62yxshhq32bcfja";
+ })
+ qtbase.src
+ ];
- src = fetchFromGitHub {
- owner = "linuxdeepin";
- repo = pname;
- rev = version;
- sha256 = "1zvab6qxdr49pmk6mbk7s0md7bx585p32lca0xbg8mrkajz7g8rq";
- };
+ 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 97e60be6d6781faef1369bf886998d4eb3426eb8..0ffa3d006bca2a45b35158968752e9d00f8ee371 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 51c38f6d3474130bca079c85de4d11b567c964e9..1809f19183899855d7b5d792d4b559ecd10425e6 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 93b0cb59650b8ca442b35a7f0763eb8d727a68fa..9aca09a510a3b8659c7402d193ed9f39b9ee221f 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 1876cce6c8a9c595ad14908da2f824f842d8fe20..976c6b1f32b39067c72379c63f49cb7dd29ba5a0 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 ];
-
- 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 ];
-
- 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 ];
-
- # 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"
+ nativeBuildInputs = [
+ meson
+ ninja
+ gtk3
+ pkgconfig
+ check
+ ];
+
+ 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 = [
+ 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
+ ];
+
+ 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 b2a9d39870970add28b09a98ac0329e398aba8f1..0fb249135a24eb5fe6223c04e27259c1345d82dc 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 f1455f68338f2ddb11b5ef419e04423ee22a392e..3563b9aabc1ca8099c00c344c9e8e2deba6ae2ee 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
];
diff --git a/pkgs/desktops/enlightenment/rage.nix b/pkgs/desktops/enlightenment/rage.nix
index 8d99ce6e8e0ee4bd631b6693a0842a673dca1d8a..f0a9799e5b4994b92e8f13f1556614c9c02f1f2d 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 52f0ff15e235c02054be36a46facb307b1e3fbf9..672e1b3da73c35d10ee02571db0e6ecb8cfd3218 100644
--- a/pkgs/desktops/enlightenment/terminology.nix
+++ b/pkgs/desktops/enlightenment/terminology.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
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 9a70319952cfc675ce25f40ab9b3752aa44f8f1d..c801657f74bf5ce2f5047e0522e30de25723118f 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 b18e58f6f56ffdda976e650584167c6f69456d89..b3bb1e1093c9c93d3d1d4e28a633b5532d852a1b 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 2061fc26607e887b9da6abc11aa51297af06da7a..701f894939e11e6c8111288eef9fdf916eb89a8b 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 267a7f2f7d203bbb049f61e3cd37b9dee1c21352..36b89a310522817ea15af6fabf5c264e1237acdf 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 35d97a87a86f13ca79eff303e30393e31d1bc99d..5115c2d8fb4f40e2b44732a7f24d3f77a6472cc8 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 f776f4dbe5a24ea3c28cd549dd9d6a38a38702a0..0998dbd069db387c051e01c996547ca315e4c11c 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 25ee957224c78aae938b5a99224d9c8d28d2ba6a..628442c307531983ef665cf53fe50cc4bf7a7836 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 27ce5d0f078b6ffeb62f59bc22115bf25a9fe400..ce8215d6391789c3648ade8fcd4920b7c49bab9c 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 03619f38c9ba8babd0bb2a7c209f4ea30bde26cb..b00045cf9e9e4293ed7ede3b661debd01173b6de 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 ac1e9ee85c01560db19eab8a2a4f69d425b3cb77..9e44573d2e387ebfac41e8ba6066c0d81facdf82 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 38182f1f994f91c28f36ba49782b822bb3c45d31..a99e775b26b5d7fd4ece723591d705848395ba82 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 1301381e5aaf07d8b55fccf8dce657e5f2f08454..3a7e1473332c43e2aedd916e9b88ef5259dfed8d 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix
@@ -8,11 +8,11 @@
stdenv.mkDerivation rec {
pname = "gnome-documents";
- version = "3.32.0";
+ version = "3.33.90";
src = fetchurl {
url = "mirror://gnome/sources/gnome-documents/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "1gqddzbr4d8s0asmrhy0sfmwggzhbmpm61mqf8rxpdjk7s26086c";
+ sha256 = "0l9g10i380bnjp1y3pslsy8ph1hd5x1d57dadvq70p5ki4r3qjaw";
};
doCheck = true;
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 655e9e9fe34d73538bf640c386a6003b00b069f8..f5261011d113125fabc0e6d80caaa61af701bef6 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 8681a3c866ce9f468072b9f9bb30b587bcbff2f6..c80238740e543b83e846e0bf3f287cd948839aa0 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 6011092c0e0e6207cdaddd2be29ce200e0c57a0e..49b44f5f283834f123a3843edbe4cc1be48b3036 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 9b8c96729ad78e8e1a0fb2dc16fa5964746a5b6a..204d0a8982e2ca4ebb876530549a72869d3ef694 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
@@ -6,13 +6,13 @@
python3.pkgs.buildPythonApplication rec {
pname = "gnome-music";
- version = "3.32.2";
+ version = "3.34.0";
format = "other";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0cn7l1d3ayima1w3bxpshijabd7ibhnvqxv2mpvffzizk04ln6hk";
+ sha256 = "1a566ifx08clfm22qzdh1i6w8cr2kv7avqzkk6zgc5adba0vmzx4";
};
nativeBuildInputs = [ meson ninja gettext itstool pkgconfig libxml2 wrapGAppsHook desktop-file-utils appstream-glib gobject-introspection ];
diff --git a/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix b/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix
index 920343a60241c965ce3c3d27ecb22d749cd33838..434a72341f6646bc1305c69ea4d783046533609f 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 907c0424454a1c005f06c527a8b80384b057fe13..3996a2e7564a88d6b801386a0f1da1fb2269d69b 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 dbbbb43659ba3924ab9be7edbb6c16288320190a..f5c4eedc48d57d4b675f457396b5cb71449b4a17 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 1e5a641f08fd3578f38957f4b258e260e2114c6d..c71baa146d1a4bf2e8cc996e9d9f120fb07abdaf 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 7ac8b4dfe1165188cb80a5299b4ab7efca709c6b..0000000000000000000000000000000000000000
--- 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 51fea63b7142c88965b74d470e6db1dd878ffeb4..0202821f7d5549aae6a59b2d73e792df725651f7 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 a1bcb406eb3a00cf64ca16b312802256d1702d8a..c6d5b22f9348106ce75b5d08f7ca9d8843bb860d 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 a7f4a637b1785326c66143163e516ee7d4a122cf..d2f161f23b4f90ec3cd2b681f4062f2b1b548adc 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 4734a0e96b8ce25582f5063a950c24f70327625f..5817d8ff942a01cca2041c96a987d715afdee956 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 7f4f84fa5fe1465f0e9279618fc2a4e8f4d2c632..c7a126034f2be5e13b8781a2c1b28f6913447e2d 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 43f8dd08dbffeb5f02c384b7bbfe7c0a7f0916ba..7ce498da9f30cf5f9e65c296dab0d6b8dfe6d454 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 5e4bbf8cce17f5de225e8caac7519aa76a2b1607..0677725246228ce3574db805042afc79d613c825 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
+ folks
+ telepathy-logger
+ evolution-data-server
+ telepathy-mission-control
];
+
nativeBuildInputs = [
- pkgconfig libtool intltool itstool file wrapGAppsHook
- libxml2 libxslt yelp-xsl python3 glibcLocales
+ 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
+ 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
+ enchant
+ isocodes
+
# Display maps, location awareness, geocode support
- libchamplain geoclue2 geocode-glib
+ libchamplain
+ geoclue2
+ geocode-glib
+
# Cheese webcam support, camera monitoring
- cheese libgudev
+ cheese
+ libgudev
];
- LC_ALL = "en_US.UTF-8";
+ 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 8bb727a6fc53655430756d2fcca2fa9a02eaaec8..e8f4663ad30d9eb05366dc1168f146aee836f81e 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 85f31bfdce5dd94e9c98f036b3ec0ff9f854f86c..bfcf01591e5630f2413c1e1c0a4188c7ce9b5af1 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 9313ca8990c9ffaa22f92be8db1e4e5862acd432..61f27f10ae108f710bce4935affb1d90e2cf7e73 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,24 +43,14 @@
stdenv.mkDerivation rec {
pname = "evince";
- version = "3.32.0";
-
- src = fetchFromGitLab {
- domain = "gitlab.gnome.org";
- owner = "GNOME";
- repo = pname;
- rev = version;
- sha256 = "1klq8j70q8r8hyqv1wi6jcx8g76yh46bh8614y82zzggn4cx6y3r";
- };
+ version = "3.34.1";
+ outputs = [ "out" "dev" "devdoc" ];
- patches = [
- (fetchpatch {
- name = "CVE-2019-11459.patch";
- url = "https://gitlab.gnome.org/GNOME/evince/commit/3e38d5ad724a042eebadcba8c2d57b0f48b7a8c7.patch";
- sha256 = "1ds6iwr2r9i86nwrly8cx7p1kbvf1gljjplcffa67znxqmwx4n74";
- })
- ];
+ src = fetchurl {
+ url = "mirror://gnome/sources/evince/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "1pr6fvbaam1mzxjwyqd53hcxzdjzf73idn10j4j7n54nwg6hgr45";
+ };
postPatch = ''
chmod +x meson_post_install.py
@@ -66,39 +58,42 @@ stdenv.mkDerivation rec {
'';
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
+ adwaita-icon-theme
atk
+ dbus # only needed to find the service directory
+ djvulibre
gdk-pixbuf
- libxml2
- gsettings-desktop-schemas
- poppler
ghostscriptX
- djvulibre
- libspectre
+ glib
+ gnome-desktop
+ gsettings-desktop-schemas
+ gspell
+ gtk3
libarchive
- libsecret
librsvg
- adwaita-icon-theme
- gspell
- gnome-desktop
- dbus # only needed to find the service directory
- texlive.bin.core # kpathsea for DVI support
+ 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 0048b02581a77ec2cb4d51054258eb06ae9b5e63..fa70ecea264aefdf6f776f98f0b8847e0963aff8 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 a4d2fd2be5a51c79251561877857227676265673..9d1602dfccd3a81306b3e2c2eff771ab9e558645 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 0000000000000000000000000000000000000000..8c17f494b0f2a582e52c4b0c83dd6ba4ed38e34c
--- /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 e4c772cb1d40769f6c90064710d21f525ec6ee9c..4b91b3219bede5fe0758ea75f01bbaefc7faa381 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 817c8324c6b2c670267d52ffc39e313790800468..b52161f90ae10c4279bd4a1b9d7e09c5d0c7c5f0 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 df43371a4971870249d49c83d1412a9c2df50361..cabe7c9ca74b7769003cadbcb2688f8a1e22acf8 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 bcc8871bcf1434bde2e6dda3c01ca7b82a8dd339..200d038d0fbf92cd3f83e2cbf90cfb3cfe8ad8b0 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 75a15a41f97b138dd288579a4d108fb703e21dcf..01127853a86f012a607b683a6064a337b5418e09 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 04730f2370f5cba56f5d0ef3ee1dfb275e315cbb..f94725eb3a69bd28ab9079ef7b663fffbddc0b2c 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 9d798c2811bdad0f7368044be933b6748c504e63..6770f3df850001980ac1da857a5663af7aad652b 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 d6d9f927252865da4dc1174215535b8ec4750b49..86739bb0f45a80570516ce950c5ebcd913e77a33 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 976829acd4c637de5dd6a7a92baece88f2eb25f5..0589dfe728540857bc017cec341eb26bc140ea1a 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 0000000000000000000000000000000000000000..c6fd8658cde72c15e7a26b268a7eda176fe57c84
--- /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 0000000000000000000000000000000000000000..94e14f688b3cadb01e2d79884681e8e78820e3f3
--- /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 0000000000000000000000000000000000000000..a06b37e100edcfaffb6ff477dacbb9922e96421b
--- /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 7817936bfda6e482a985c128dd2914a183d656b1..fa960087f9bd51951a86eee2fdf0e86481c84412 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 93da1f8abec92de3ea93dd2ae1df025ab44c9e63..b21e3f6f68a7c918f87652216926eb6d84f0e040 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 33acfd245cf55d68ed0d6eca6722a2bc577f4fb7..34ff879322471ebea37d2628191e8eaa640cde85 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 f13ad9f47aa6df7da0599295698231461da3e7b9..8aaf68ea1e365a9684b3527c7af4186ccc74983c 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 fe4feaf708577339be8c0f9a3fa8d0197660671c..2399c656016a1309605c4609b758812a8a568d20 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 b9f33ce73a8aa1b9258f72b6b6cffe7517c7a62b..3d9f901b66b4ad32f0b70ed7a6f9294768786a49 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 272656fae78c3b1b1f4af5e72a9db05fe03fb32b..2229302cab7c0cbcf5e86aa30bf5d357fa84b06b 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 3d37040828c5d220cbf5caf4a9261261129d48fc..92c9600168234068d0814709593f2264b54bfef8 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 a1d8f2c599a8da738eb325b6dfed88fbe5ffcabe..e8d5b7dbffddd2c70fb7c5090973c599084de90e 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 3207af110885a96b2c6bd80df23d709276a05d25..7b93475619b2c260a595b19a5e037f7e15d8c4df 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 12081bbae5b0f56f3e281c8fd4ab069e9b95f0bc..fb4114a524a41c1d66f3714b7534a3a0686b446b 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 75d4b117e778425c720119083ec3d72b6f6f3d3b..31f125e9720e805d89c09a1e1d602c45a8346a77 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
index 7915e71a73c005e07c3174938cb69181dcff5a01..cb0c1494b94677869e3e28492ce82f7856cc814a 100644
--- a/pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "gnome-user-docs";
- version = "3.32.3";
+ version = "3.34.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-user-docs/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig";
+ sha256 = "1v94mz8zwzx67db2avbi9p2klw36cz45qr6fbskpvygz2pzhg6cg";
};
passthru = {
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 2a425acb067d1e60d97b45834e8b94205c24fad4..6207dd42a61a675d0d4673c8c434c25f4063dd02 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 0000000000000000000000000000000000000000..0e1c33773b0e6b0d21a52615a2f0e1c7eb7b18d6
--- /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 0000000000000000000000000000000000000000..2df70ff9646a1e486c681822dbfef20b8191e764
--- /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 41527298ffbe2f19f21292760b006fa6592812df..cc00fc5ece4483e62d2edf663bc25e42c0993fa9 100644
--- a/pkgs/desktops/gnome-3/core/mutter/3.28.nix
+++ b/pkgs/desktops/gnome-3/core/mutter/3.28.nix
@@ -54,6 +54,8 @@ 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
];
configureFlags = [
diff --git a/pkgs/desktops/gnome-3/core/mutter/default.nix b/pkgs/desktops/gnome-3/core/mutter/default.nix
index eab0b131ea936df50710f0b6d8b1ab48148b1b2e..d2745c2a90d5fe8b36eea347a382c80e1fd9e14f 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,29 +44,28 @@ 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.
- (fetchpatch {
- url = "https://gitlab.gnome.org/GNOME/mutter/commit/8307c0f7ab60760de53f764e6636893733543be8.diff";
- sha256 = "1hzfva71xdqvvnx5smjsrjlgyrmc7dj94mpylkak0gwda5si0h2n";
- })
];
postPatch = ''
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 0000000000000000000000000000000000000000..574ed5725612e191640aeb51c806428f084ef0c2
--- /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
+ #endif /* HAVE_WAYLAND && HAVE_NATIVE_BACKEND */
+@@ -673,6 +677,12 @@ meta_run (void)
+ if (!meta_display_open ())
+ meta_exit (META_EXIT_ERROR);
+
++#ifdef HAVE_LIBCAPNG
++ capng_clear(CAPNG_SELECT_BOTH);
++ capng_update(CAPNG_ADD, CAPNG_EFFECTIVE|CAPNG_PERMITTED, CAP_SYS_NICE);
++ capng_apply(CAPNG_SELECT_BOTH);
++#endif
++
+ g_main_loop_run (meta_main_loop);
+
+ meta_finalize ();
+diff --git a/src/meson.build b/src/meson.build
+index 90d80734f..a9fffa2c2 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -18,6 +18,7 @@ mutter_pkg_deps = [
+ glib_dep,
+ gsettings_desktop_schemas_dep,
+ gtk3_dep,
++ libcapng_dep,
+ pango_dep,
+ ]
+
+--
+2.23.0
+
diff --git a/pkgs/desktops/gnome-3/core/nautilus/bubblewrap-paths.patch b/pkgs/desktops/gnome-3/core/nautilus/bubblewrap-paths.patch
deleted file mode 100644
index 37358c8432c53bc056f2f015d19038139d453ee5..0000000000000000000000000000000000000000
--- a/pkgs/desktops/gnome-3/core/nautilus/bubblewrap-paths.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/src/gnome-desktop/gnome-desktop-thumbnail-script.c
-+++ a/src/gnome-desktop/gnome-desktop-thumbnail-script.c
-@@ -536,9 +536,9 @@ add_bwrap (GPtrArray *array,
- g_return_val_if_fail (script->s_infile != NULL, FALSE);
-
- add_args (array,
-- "bwrap",
-- "--ro-bind", "/usr", "/usr",
-- "--ro-bind", "/etc/ld.so.cache", "/etc/ld.so.cache",
-+ "@bubblewrap_bin@",
-+ "--ro-bind", "@storeDir@", "@storeDir@",
-+ "--ro-bind", "/run/current-system", "/run/current-system",
- NULL);
-
- /* These directories might be symlinks into /usr/... */
diff --git a/pkgs/desktops/gnome-3/core/nautilus/default.nix b/pkgs/desktops/gnome-3/core/nautilus/default.nix
index 14551fb7d0c3e274b40d654573f45228a4ed6c9b..48f47be04bc180fca4447802556dee1c34bd827f 100644
--- a/pkgs/desktops/gnome-3/core/nautilus/default.nix
+++ b/pkgs/desktops/gnome-3/core/nautilus/default.nix
@@ -1,33 +1,77 @@
-{ stdenv, fetchurl, meson, ninja, pkgconfig, gettext, libxml2
-, desktop-file-utils, python3, wrapGAppsHook , gtk3, gnome3, gnome-autoar
-, glib-networking, shared-mime-info, libnotify, libexif, libseccomp , exempi
-, librsvg, tracker, tracker-miners, gexiv2, libselinux, gdk-pixbuf
-, substituteAll, bubblewrap, gst_all_1, gsettings-desktop-schemas
+{ stdenv
+, fetchurl
+, meson
+, ninja
+, pkgconfig
+, gettext
+, libxml2
+, desktop-file-utils
+, python3
+, wrapGAppsHook
+, gtk3
+, gnome3
+, gnome-autoar
+, glib-networking
+, shared-mime-info
+, libnotify
+, libexif
+, libseccomp
+, exempi
+, librsvg
+, tracker
+, tracker-miners
+, gexiv2
+, libselinux
+, gdk-pixbuf
+, substituteAll
+, gnome-desktop
+, gst_all_1
+, gsettings-desktop-schemas
+, gobject-introspection
}:
-let
+stdenv.mkDerivation rec {
pname = "nautilus";
- version = "3.32.3";
-in stdenv.mkDerivation rec {
- name = "${pname}-${version}";
+ version = "3.34.1";
src = fetchurl {
- url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
- sha256 = "1x9crzbj6rrrf8w5dkcx0c14j40byr4ijpzkwd5dcrbfvvdy1r01";
+ url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "1wvp0272wky2v1pcx6z27275crb48j9903v6qzf8ki8hlqb2rkip";
};
nativeBuildInputs = [
- meson ninja pkgconfig libxml2 gettext python3 wrapGAppsHook
desktop-file-utils
+ gettext
+ gobject-introspection
+ libxml2
+ meson
+ ninja
+ pkgconfig
+ python3
+ wrapGAppsHook
];
buildInputs = [
- glib-networking shared-mime-info libexif gtk3 exempi libnotify libselinux
- tracker tracker-miners gexiv2 libseccomp bubblewrap gst_all_1.gst-plugins-base
- gnome3.adwaita-icon-theme gsettings-desktop-schemas
+ exempi
+ gexiv2
+ glib-networking
+ gnome-desktop
+ gnome3.adwaita-icon-theme
+ gsettings-desktop-schemas
+ gst_all_1.gst-plugins-base
+ gtk3
+ libexif
+ libnotify
+ libseccomp
+ libselinux
+ shared-mime-info
+ tracker
+ tracker-miners
];
- propagatedBuildInputs = [ gnome-autoar ];
+ propagatedBuildInputs = [
+ gnome-autoar
+ ];
preFixup = ''
gappsWrapperArgs+=(
@@ -44,13 +88,6 @@ in stdenv.mkDerivation rec {
patches = [
./extension_dir.patch
- # 3.30 now generates it's own thummbnails,
- # and no longer depends on `gnome-desktop`
- (substituteAll {
- src = ./bubblewrap-paths.patch;
- bubblewrap_bin = "${bubblewrap}/bin/bwrap";
- inherit (builtins) storeDir;
- })
];
passthru = {
diff --git a/pkgs/desktops/gnome-3/core/simple-scan/default.nix b/pkgs/desktops/gnome-3/core/simple-scan/default.nix
index de56b14d46fd830f5f2945fbcbaef9d8bb3cabf9..21e198a867f14987b8181a09ff22949be543ad86 100644
--- a/pkgs/desktops/gnome-3/core/simple-scan/default.nix
+++ b/pkgs/desktops/gnome-3/core/simple-scan/default.nix
@@ -4,11 +4,11 @@
stdenv.mkDerivation rec {
pname = "simple-scan";
- version = "3.32.2.1";
+ version = "3.34.1";
src = fetchurl {
url = "mirror://gnome/sources/simple-scan/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0xqb642bsd2hddsm4bd199vyq8jcipdlxm0br3mjlc5vjcxgkxyp";
+ sha256 = "0glzskxdc7p9z7nwcakqc7qzij4l79adlvvb2cj5fmis731zw9yq";
};
buildInputs = [
diff --git a/pkgs/desktops/gnome-3/core/sushi/default.nix b/pkgs/desktops/gnome-3/core/sushi/default.nix
index 86675f21f06a9a82f6bf5d3877270e5d7da529fe..2d6d398fb45975d423532fc5592634daff0b517e 100644
--- a/pkgs/desktops/gnome-3/core/sushi/default.nix
+++ b/pkgs/desktops/gnome-3/core/sushi/default.nix
@@ -1,27 +1,74 @@
-{ stdenv, fetchurl, pkgconfig, meson, gettext, gobject-introspection, glib
-, clutter-gtk, clutter-gst, gnome3, gtksourceview, gjs
-, webkitgtk, libmusicbrainz5, icu, wrapGAppsHook, gst_all_1
-, gdk-pixbuf, librsvg, gtk3, harfbuzz, ninja }:
+{ stdenv
+, fetchurl
+, pkgconfig
+, meson
+, gettext
+, gobject-introspection
+, glib
+, clutter-gtk
+, clutter-gst
+, gnome3
+, gtksourceview4
+, gjs
+, webkitgtk
+, libmusicbrainz5
+, icu
+, wrapGAppsHook
+, gst_all_1
+, gdk-pixbuf
+, librsvg
+, gtk3
+, harfbuzz
+, ninja
+, epoxy
+}:
stdenv.mkDerivation rec {
pname = "sushi";
- version = "3.32.1";
+ version = "3.34.0";
src = fetchurl {
url = "mirror://gnome/sources/sushi/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj";
+ sha256 = "1zcr8wi5bgvvpb5ha1v96aiaz4vqqrsn6cvvalwzah6am85k78m8";
};
nativeBuildInputs = [
- pkgconfig meson ninja gettext gobject-introspection wrapGAppsHook
+ pkgconfig
+ meson
+ ninja
+ gettext
+ gobject-introspection
+ wrapGAppsHook
];
buildInputs = [
- glib gtk3 gnome3.evince icu harfbuzz
- clutter-gtk clutter-gst gjs gtksourceview gdk-pixbuf
- librsvg libmusicbrainz5 webkitgtk
- gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
+ glib
+ gtk3
+ gnome3.evince
+ icu
+ harfbuzz
+ clutter-gtk
+ clutter-gst
+ gjs
+ gtksourceview4
+ gdk-pixbuf
+ librsvg
+ libmusicbrainz5
+ webkitgtk
+ epoxy
+ gst_all_1.gstreamer
+ gst_all_1.gst-plugins-base
+ gst_all_1.gst-plugins-good
];
+ # See https://github.com/NixOS/nixpkgs/issues/31168
+ postInstall = ''
+ for file in $out/libexec/org.gnome.NautilusPreviewer
+ do
+ sed -e $"2iimports.package._findEffectiveEntryPointName = () => \'$(basename $file)\' " \
+ -i $file
+ done
+ '';
+
passthru = {
updateScript = gnome3.updateScript {
packageName = "sushi";
diff --git a/pkgs/desktops/gnome-3/core/totem/default.nix b/pkgs/desktops/gnome-3/core/totem/default.nix
index a5388f2eae19df02abb44660cc7971af7a936069..50e30d2717eed878ff41629d35128f656b2248e4 100644
--- a/pkgs/desktops/gnome-3/core/totem/default.nix
+++ b/pkgs/desktops/gnome-3/core/totem/default.nix
@@ -7,11 +7,11 @@
stdenv.mkDerivation rec {
pname = "totem";
- version = "3.32.1";
+ version = "3.34.1";
src = fetchurl {
url = "mirror://gnome/sources/totem/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0yra8apc7smpwf7d1k8crhrm8d4wix24ds6i9yxbch1v11jnhr3v";
+ sha256 = "028sc6xbyi7rs884862d8f3di6zhcm0lhvlpc3r69ifzjsq9my3b";
};
doCheck = true;
@@ -31,14 +31,6 @@ stdenv.mkDerivation rec {
patchShebangs .
'';
- mesonFlags = [
- "-Dwith-nautilusdir=${placeholder "out"}/lib/nautilus/extensions-3.0"
- # https://bugs.launchpad.net/ubuntu/+source/totem/+bug/1712021
- # https://bugzilla.gnome.org/show_bug.cgi?id=784236
- # https://github.com/mesonbuild/meson/issues/1994
- "-Denable-vala=no"
- ];
-
checkInputs = [ xvfb_run ];
checkPhase = ''
diff --git a/pkgs/desktops/gnome-3/core/vino/default.nix b/pkgs/desktops/gnome-3/core/vino/default.nix
index e18f4de68d6c4ad6a5d583b87977632bf55d3e42..abfe8b2e03922833c488b1a8272cf2551cfc6d8c 100644
--- a/pkgs/desktops/gnome-3/core/vino/default.nix
+++ b/pkgs/desktops/gnome-3/core/vino/default.nix
@@ -82,10 +82,10 @@ stdenv.mkDerivation {
'';
passthru = {
- updateScript = gnome3.updateScript {
- packageName = "vino";
- attrPath = "gnome3.vino";
- };
+ # updateScript = gnome3.updateScript {
+ # packageName = "vino";
+ # attrPath = "gnome3.vino";
+ # };
};
meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix b/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix
index fc5b0268df707f804a5102ee4137fd96fad0cf37..7cb63b8df797ec0d5e37324873fcf5962eb16b6f 100644
--- a/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix
+++ b/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix
@@ -1,23 +1,38 @@
-{ stdenv, intltool, fetchurl, pkgconfig
-, itstool, libxml2, libxslt, gnome3 }:
+{ stdenv
+, gettext
+, fetchurl
+, pkgconfig
+, itstool
+, libxml2
+, libxslt
+, gnome3
+}:
stdenv.mkDerivation rec {
pname = "yelp-xsl";
- version = "3.32.1";
+ version = "3.34.0";
src = fetchurl {
url = "mirror://gnome/sources/yelp-xsl/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "013z2ixx9kfrs6hq79qpil093xfbc12y1p0mvsh6lpala30iphya";
+ sha256 = "1qjfw4s8yf4hmyqrcqy6q2rsnb8b2cl1qbq67m7n7pyiczp3l1p8";
};
- passthru = {
- updateScript = gnome3.updateScript { packageName = "yelp-xsl"; attrPath = "gnome3.yelp-xsl"; };
- };
+ nativeBuildInputs = [
+ pkgconfig
+ gettext
+ itstool
+ libxml2
+ libxslt
+ ];
doCheck = true;
- nativeBuildInputs = [ pkgconfig ];
- buildInputs = [ intltool itstool libxml2 libxslt ];
+ passthru = {
+ updateScript = gnome3.updateScript {
+ packageName = pname;
+ attrPath = "gnome3.${pname}";
+ };
+ };
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Apps/Yelp;
diff --git a/pkgs/desktops/gnome-3/core/yelp/default.nix b/pkgs/desktops/gnome-3/core/yelp/default.nix
index 7e326dd1657d388d8b6121bdd5429b443d0fef1f..438c71c4ad30749a52c8607b041851aba2e328a7 100644
--- a/pkgs/desktops/gnome-3/core/yelp/default.nix
+++ b/pkgs/desktops/gnome-3/core/yelp/default.nix
@@ -5,11 +5,11 @@
stdenv.mkDerivation rec {
pname = "yelp";
- version = "3.32.2";
+ version = "3.34.0";
src = fetchurl {
url = "mirror://gnome/sources/yelp/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f";
+ sha256 = "0ifhgdxff2xx2damaj72gpjln5k36grg2chvi4335mv3b5y55mp3";
};
nativeBuildInputs = [ pkgconfig gettext itstool wrapGAppsHook ];
diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix
index 370733798affccac5592c4879c00dfec2aa7b68e..6d2ae92ac8061efd752aaafc975659881397a7c1 100644
--- a/pkgs/desktops/gnome-3/default.nix
+++ b/pkgs/desktops/gnome-3/default.nix
@@ -24,8 +24,6 @@ lib.makeScope pkgs.newScope (self: with self; {
libsoup = pkgs.libsoup.override { gnomeSupport = true; };
libchamplain = pkgs.libchamplain.override { libsoup = libsoup; };
gnome3 = self // { recurseForDerivations = false; };
- vala = pkgs.vala_0_44;
- gegl_0_4 = pkgs.gegl_0_4.override { gtk = pkgs.gtk3; };
# ISO installer
# installerIso = callPackage ./installer.nix {};
@@ -51,8 +49,6 @@ lib.makeScope pkgs.newScope (self: with self; {
gdm = callPackage ./core/gdm { };
- gjs = callPackage ./core/gjs { };
-
gnome-backgrounds = callPackage ./core/gnome-backgrounds { };
gnome-bluetooth = callPackage ./core/gnome-bluetooth { };
@@ -79,6 +75,8 @@ lib.makeScope pkgs.newScope (self: with self; {
libgnome-keyring = callPackage ./core/libgnome-keyring { };
+ gnome-initial-setup = callPackage ./core/gnome-initial-setup { };
+
gnome-online-miners = callPackage ./core/gnome-online-miners { };
gnome-remote-desktop = callPackage ./core/gnome-remote-desktop { };
@@ -215,8 +213,6 @@ lib.makeScope pkgs.newScope (self: with self; {
gnome-weather = callPackage ./apps/gnome-weather { };
- nautilus-sendto = callPackage ./apps/nautilus-sendto { };
-
polari = callPackage ./apps/polari { };
seahorse = callPackage ./apps/seahorse { };
@@ -338,7 +334,7 @@ lib.makeScope pkgs.newScope (self: with self; {
inherit (pkgs) atk glib gobject-introspection gspell webkitgtk gtk3 gtkmm3
libgtop libgudev libhttpseverywhere librsvg libsecret gdk_pixbuf gtksourceview gtksourceviewmm gtksourceview4
easytag meld orca rhythmbox shotwell gnome-usage
- clutter clutter-gst clutter-gtk cogl gtk-vnc libdazzle libgda libgit2-glib libgxps libgdata libgepub libcroco libpeas libgee geocode-glib libgweather librest libzapojit libmediaart gfbgraph gexiv2 folks totem-pl-parser gcr gsound libgnomekbd vte vte_290 vte-ng gnome-menus gdl;
+ clutter clutter-gst clutter-gtk cogl gtk-vnc libdazzle libgda libgit2-glib libgxps libgdata libgepub libcroco libpeas libgee geocode-glib libgweather librest libzapojit libmediaart gfbgraph gexiv2 folks totem-pl-parser gcr gsound libgnomekbd vte vte_290 gnome-menus gdl;
inherit (pkgs) gsettings-desktop-schemas; # added 2019-04-16
inherit (pkgs) gnome-video-effects; # added 2019-08-19
inherit (pkgs) gnome-online-accounts grilo grilo-plugins tracker tracker-miners gnome-photos; # added 2019-08-23
@@ -356,4 +352,12 @@ lib.makeScope pkgs.newScope (self: with self; {
corePackages = throw "deprecated 2019-08-25: please use `services.gnome3.core-shell.enable`";
optionalPackages = throw "deprecated 2019-08-25: please use `services.gnome3.core-utilities.enable`";
gamesPackages = throw "deprecated 2019-08-25: please use `services.gnome3.games.enable`";
+
+ nautilus-sendto = throw "deprecated 2019-09-17: abandoned";
+
+ inherit (pkgs) vala; # added 2019-10-10
+
+ inherit (pkgs) gegl_0_4; # added 2019-10-31
+
+ inherit (pkgs) gjs; # added 2019-01-05
})
diff --git a/pkgs/desktops/gnome-3/devtools/anjuta/default.nix b/pkgs/desktops/gnome-3/devtools/anjuta/default.nix
index 573259b7e7d0978d29b839bd1e331367f298d39a..4f5562bbffa5052d9f9ddce8c1d3c3c88227d0c8 100644
--- a/pkgs/desktops/gnome-3/devtools/anjuta/default.nix
+++ b/pkgs/desktops/gnome-3/devtools/anjuta/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, flex, bison, libxml2, intltool,
+{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, gjs, flex, bison, libxml2, intltool,
gdl, libgda, gtksourceview, gsettings-desktop-schemas,
itstool, python3, ncurses, makeWrapper }:
stdenv.mkDerivation rec {
pname = "anjuta";
- version = "3.28.0";
+ version = "3.34.0";
src = fetchurl {
url = "mirror://gnome/sources/anjuta/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0ya7ajai9rx9g597sr5wawr6l5pb2s34bbjdsbnx0lkrhnjv11xh";
+ sha256 = "13ql7axw6zz387s7pa1m7wmh7qps3x7fk53h9832vq1yxlq33aa2";
};
passthru = {
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
ncurses
];
buildInputs = [
- flex bison gtk3 libxml2 gnome3.gjs gdl
+ flex bison gtk3 libxml2 gjs gdl
libgda gtksourceview
gsettings-desktop-schemas
];
diff --git a/pkgs/desktops/gnome-3/devtools/devhelp/default.nix b/pkgs/desktops/gnome-3/devtools/devhelp/default.nix
index 23a58011e027666ad9ac21842576ad9fd32d296b..080a332d7df6739281320a4a79d5bba2e7fd331f 100644
--- a/pkgs/desktops/gnome-3/devtools/devhelp/default.nix
+++ b/pkgs/desktops/gnome-3/devtools/devhelp/default.nix
@@ -1,20 +1,51 @@
-{ stdenv, fetchurl, meson, ninja, pkgconfig, gnome3, gtk3, wrapGAppsHook
-, glib, amtk, appstream-glib, gobject-introspection, python3
-, webkitgtk, gettext, itstool, gsettings-desktop-schemas }:
+{ stdenv
+, fetchurl
+, meson
+, ninja
+, pkgconfig
+, gnome3
+, gtk3
+, wrapGAppsHook
+, glib
+, amtk
+, appstream-glib
+, gobject-introspection
+, python3
+, webkitgtk
+, gettext
+, itstool
+, gsettings-desktop-schemas
+, shared-mime-info
+}:
stdenv.mkDerivation rec {
pname = "devhelp";
- version = "3.32.0";
+ version = "3.34.0";
src = fetchurl {
url = "mirror://gnome/sources/devhelp/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "06sa83zggk29wcg75fl3gqh0rmi7cd3gsbk09a2z23r7vpy7xanq";
+ sha256 = "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg";
};
- nativeBuildInputs = [ meson ninja pkgconfig gettext itstool wrapGAppsHook appstream-glib gobject-introspection python3 ];
+ nativeBuildInputs = [
+ meson
+ ninja
+ pkgconfig
+ gettext
+ itstool
+ wrapGAppsHook
+ appstream-glib
+ gobject-introspection
+ python3
+ ];
+
buildInputs = [
- glib gtk3 webkitgtk amtk
- gnome3.adwaita-icon-theme gsettings-desktop-schemas
+ glib
+ gtk3
+ webkitgtk
+ amtk
+ gnome3.adwaita-icon-theme
+ gsettings-desktop-schemas
];
doCheck = true;
@@ -24,6 +55,14 @@ stdenv.mkDerivation rec {
patchShebangs meson_post_install.py
'';
+ preFixup = ''
+ gappsWrapperArgs+=(
+ # Fix pages being blank
+ # https://gitlab.gnome.org/GNOME/devhelp/issues/14
+ --prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
+ )
+ '';
+
passthru = {
updateScript = gnome3.updateScript {
packageName = "devhelp";
@@ -33,8 +72,8 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "API documentation browser for GNOME";
- homepage = https://wiki.gnome.org/Apps/Devhelp;
- license = licenses.gpl2;
+ homepage = "https://wiki.gnome.org/Apps/Devhelp";
+ license = licenses.gpl3Plus;
maintainers = gnome3.maintainers;
platforms = platforms.linux;
};
diff --git a/pkgs/desktops/gnome-3/extensions/appindicator/default.nix b/pkgs/desktops/gnome-3/extensions/appindicator/default.nix
index 6f289fd74d9f766eb7fc6d4c67993efe00aeb8d6..910007bc05b436a181129572ec074de85dc043e0 100644
--- a/pkgs/desktops/gnome-3/extensions/appindicator/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/appindicator/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "gnome-shell-extension-appindicator";
- version = "29";
+ version = "30";
src = fetchFromGitHub {
owner = "Ubuntu";
repo = "gnome-shell-extension-appindicator";
rev = "v${version}";
- sha256 = "02cr6rhi3dfk49jcjm6vh7yx117bv5wqyvd34cyv1kzwzsla8v2i";
+ sha256 = "1fjhx23jqwv3d0smwhnjvc35gqhwk9p5f96ic22pfax653cn5vh8";
};
# This package has a Makefile, but it's used for building a zip for
diff --git a/pkgs/desktops/gnome-3/extensions/arc-menu/default.nix b/pkgs/desktops/gnome-3/extensions/arc-menu/default.nix
index b38f0aeba9195b9b25b42d81ce2ae56fcb388734..f85b91d354d4ccf83a382b652f4d17efa9af4c6e 100644
--- a/pkgs/desktops/gnome-3/extensions/arc-menu/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/arc-menu/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "gnome-shell-arc-menu";
- version = "31";
+ version = "33";
src = fetchFromGitLab {
owner = "LinxGem33";
repo = "Arc-Menu";
- rev = "v${version}-stable";
- sha256 = "124jgdy6mw76nrkq3f0y7qkhdm39wg273zifdvwbgpvirwzxbia1";
+ rev = "v${version}-Stable";
+ sha256 = "0ncb19jlwy2y9jcj8g6cdbasdv6n7hm96qv9l251z6qgrmg28x4z";
};
patches = [
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
glib gettext
];
- makeFlags = [ "INSTALL_BASE=$(out)/share/gnome-shell/extensions" ];
+ makeFlags = [ "INSTALL_BASE=${placeholder "out"}/share/gnome-shell/extensions" ];
meta = with stdenv.lib; {
description = "Gnome shell extension designed to replace the standard menu found in Gnome 3";
diff --git a/pkgs/desktops/gnome-3/extensions/caffeine/default.nix b/pkgs/desktops/gnome-3/extensions/caffeine/default.nix
index 95a68505c7c8a275d27ef60b502cbaaa8b14acad..8cf9fb9f0e632c5a168e8cbc9b9c4586443c00f5 100644
--- a/pkgs/desktops/gnome-3/extensions/caffeine/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/caffeine/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, glib, gettext, bash }:
+{ stdenv, fetchFromGitHub, glib, gettext, bash, gnome3 }:
stdenv.mkDerivation rec {
pname = "gnome-shell-extension-caffeine";
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl2;
maintainers = with maintainers; [ eperuffo ];
homepage = https://github.com/eonpatapon/gnome-shell-extension-caffeine;
+ broken = versionAtLeast gnome3.gnome-shell.version "3.32"; # Doesn't support 3.34
};
}
diff --git a/pkgs/desktops/gnome-3/extensions/clipboard-indicator/default.nix b/pkgs/desktops/gnome-3/extensions/clipboard-indicator/default.nix
index 0faadbcd2b68838f313e1d44673506831574645e..5277cb08cbb5bcaa5bb3ccd966771e654517c0ea 100644
--- a/pkgs/desktops/gnome-3/extensions/clipboard-indicator/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/clipboard-indicator/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, fetchFromGitHub, gnome3 }:
stdenv.mkDerivation rec {
pname = "gnome-shell-extension-clipboard-indicator";
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ jonafato ];
platforms = platforms.linux;
homepage = https://github.com/Tudmotu/gnome-shell-extension-clipboard-indicator;
+ broken = versionAtLeast gnome3.gnome-shell.version "3.26";
};
}
diff --git a/pkgs/desktops/gnome-3/extensions/dash-to-dock/default.nix b/pkgs/desktops/gnome-3/extensions/dash-to-dock/default.nix
index e80149e500531ff2fec15daaf5d0642a7a968c06..6ac82c539a2ec8d7215689aa2fea8e2701e231e0 100644
--- a/pkgs/desktops/gnome-3/extensions/dash-to-dock/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/dash-to-dock/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "gnome-shell-dash-to-dock";
- version = "66";
+ version = "67";
src = fetchFromGitHub {
owner = "micheleg";
repo = "dash-to-dock";
rev = "extensions.gnome.org-v" + version;
- sha256 = "04krl6rxlp1qc97psraf2kwin7h0mx4c7pnfpi7vhplmvasrwkfh";
+ sha256 = "1746xm0iyvyzj6m3pvjx11smh9w1s7naz426ki0dlr5l7jh3mpy5";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/extensions/drop-down-terminal/default.nix b/pkgs/desktops/gnome-3/extensions/drop-down-terminal/default.nix
new file mode 100644
index 0000000000000000000000000000000000000000..4e7fa17d495cc0b37ca5db324c2e1e234094ae27
--- /dev/null
+++ b/pkgs/desktops/gnome-3/extensions/drop-down-terminal/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, substituteAll, gjs, vte }:
+
+stdenv.mkDerivation rec {
+ pname = "gnome-shell-extension-drop-down-terminal";
+ version = "24";
+
+ src = fetchFromGitHub {
+ owner = "zzrough";
+ repo = "gs-extensions-drop-down-terminal";
+ rev = "v${version}";
+ sha256 = "1gda56xzwsa5pgmgpb7lhb3i3gqishvn84282inwvqm86afks73r";
+ };
+
+ uuid = "drop-down-terminal@gs-extensions.zzrough.org";
+
+ patches = [
+ (substituteAll {
+ src = ./fix_vte_and_gjs.patch;
+ inherit gjs vte;
+ })
+ ];
+
+ installPhase = ''
+ mkdir -p $out/share/gnome-shell/extensions
+ cp -r ${uuid} $out/share/gnome-shell/extensions/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Configurable drop down terminal shell";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ ericdallo ];
+ homepage = https://github.com/zzrough/gs-extensions-drop-down-terminal;
+ };
+}
diff --git a/pkgs/desktops/gnome-3/extensions/drop-down-terminal/fix_vte_and_gjs.patch b/pkgs/desktops/gnome-3/extensions/drop-down-terminal/fix_vte_and_gjs.patch
new file mode 100644
index 0000000000000000000000000000000000000000..3544c91ee8958cf7ae332b02bda80f91b0542ba0
--- /dev/null
+++ b/pkgs/desktops/gnome-3/extensions/drop-down-terminal/fix_vte_and_gjs.patch
@@ -0,0 +1,32 @@
+--- a/drop-down-terminal@gs-extensions.zzrough.org/extension.js
++++ b/drop-down-terminal@gs-extensions.zzrough.org/extension.js
+@@ -15,6 +15,8 @@
+
+ // Author: Stéphane Démurget
+
++imports.gi.GIRepository.Repository.prepend_search_path('@vte@/lib/girepository-1.0')
++
+ const Lang = imports.lang;
+ const Gettext = imports.gettext.domain("drop-down-terminal");
+ const Mainloop = imports.mainloop;
+@@ -653,7 +655,7 @@ const DropDownTerminalExtension = new Lang.Class({
+ this._killingChild = false;
+
+ // finds the forking arguments
+- let args = ["gjs", GLib.build_filenamev([Me.path, "terminal.js"]), Me.path];
++ let args = ["@gjs@/bin/gjs", GLib.build_filenamev([Me.path, "terminal.js"]), Me.path];
+
+ // forks the process
+ debug("forking '" + args.join(" ") + "'");
+--- a/drop-down-terminal@gs-extensions.zzrough.org/terminal.js
++++ b/drop-down-terminal@gs-extensions.zzrough.org/terminal.js
+@@ -14,6 +14,9 @@
+ // along with this program. If not, see .
+
+ // Author: Stéphane Démurget
++
++imports.gi.GIRepository.Repository.prepend_search_path('@vte@/lib/girepository-1.0')
++
+ const Lang = imports.lang;
+
+ const Pango = imports.gi.Pango;
diff --git a/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix b/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix
index cff0db665bbae3353d5937495852d33126b7d369..ca232d090a872198263c369413f1f05dd39b6547 100644
--- a/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix
@@ -1,16 +1,16 @@
{ stdenv, fetchFromGitHub, substituteAll, python3, openssl, folks, gsound
, meson, ninja, libxml2, pkgconfig, gobject-introspection, wrapGAppsHook
-, glib, gtk3, at-spi2-core, upower, openssh, gnome3 }:
+, glib, gtk3, at-spi2-core, upower, openssh, gnome3, gjs }:
stdenv.mkDerivation rec {
pname = "gnome-shell-gsconnect";
- version = "23";
+ version = "27";
src = fetchFromGitHub {
owner = "andyholmes";
repo = "gnome-shell-extension-gsconnect";
rev = "v${version}";
- sha256 = "011asrhkly9zhvnng2mh9v06yw39fx244pmqz5yk9rd9m4c32xid";
+ sha256 = "0bpg7hl81wir3c15ri8kbvr6xhalpkfmcyazwmmwyj5lxpn40ykk";
};
patches = [
@@ -18,7 +18,6 @@ stdenv.mkDerivation rec {
(substituteAll {
src = ./fix-paths.patch;
gapplication = "${glib.bin}/bin/gapplication";
- mutter_gsettings_path = glib.getSchemaPath gnome3.mutter;
})
];
@@ -40,8 +39,8 @@ stdenv.mkDerivation rec {
gsound
upower
gnome3.caribou
- gnome3.gjs # for running daemon
- gnome3.evolution-data-server # folks.py requires org.gnome.Evolution.DefaultSources gsettings; TODO: hardcode the schema path to the library (similarly to https://github.com/NixOS/nixpkgs/issues/47226)
+ gjs # for running daemon
+ gnome3.evolution-data-server # for libebook-contacts typelib
];
mesonFlags = [
@@ -76,8 +75,8 @@ stdenv.mkDerivation rec {
postFixup = ''
# Let’s wrap the daemons
for file in $out/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/{{daemon,nativeMessagingHost}.js,components/folks.py}; do
- echo "Wrapping program ''${file}"
- wrapProgram "''${file}" "''${gappsWrapperArgs[@]}"
+ echo "Wrapping program $file"
+ wrapGApp "$file"
done
'';
diff --git a/pkgs/desktops/gnome-3/extensions/gsconnect/fix-paths.patch b/pkgs/desktops/gnome-3/extensions/gsconnect/fix-paths.patch
index b32d0af32721613d1005735b3621bef1603a1c33..629d34b6f68a53ab2ec4e60540c232b1840ab9c6 100644
--- a/pkgs/desktops/gnome-3/extensions/gsconnect/fix-paths.patch
+++ b/pkgs/desktops/gnome-3/extensions/gsconnect/fix-paths.patch
@@ -29,16 +29,3 @@
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const Gtk = imports.gi.Gtk;
---- a/src/service/__init__.js
-+++ b/src/service/__init__.js
-@@ -600,7 +600,9 @@
- /**
- * Convenience functions for saving/restoring window geometry
- */
--const _mutter = new Gio.Settings({schema_id: 'org.gnome.mutter'});
-+const _schema_source = Gio.SettingsSchemaSource.new_from_directory('@mutter_gsettings_path@', Gio.SettingsSchemaSource.get_default(), true);
-+const _schema = _schema_source.lookup('org.gnome.mutter', false);
-+const _mutter = new Gio.Settings({settings_schema: _schema});
-
- Gtk.Window.prototype.restore_geometry = function() {
- let [width, height] = this.settings.get_value('window-size').deep_unpack();
diff --git a/pkgs/desktops/gnome-3/extensions/icon-hider/default.nix b/pkgs/desktops/gnome-3/extensions/icon-hider/default.nix
index 8214300a5311f12c4dcc043d073e6a19f0957c54..8bfd681625f29f9398dffa828defb81ec8c2c7f4 100644
--- a/pkgs/desktops/gnome-3/extensions/icon-hider/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/icon-hider/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ jonafato ];
platforms = gnome3.gnome-shell.meta.platforms;
homepage = https://github.com/ikalnytskyi/gnome-shell-extension-icon-hider;
+ broken = versionAtLeast gnome3.gnome-shell.version "3.32"; # Doesn't support 3.34
};
}
diff --git a/pkgs/desktops/gnome-3/extensions/mediaplayer/default.nix b/pkgs/desktops/gnome-3/extensions/mediaplayer/default.nix
deleted file mode 100644
index 10175719e46c01679789bdcd5c42eaecf90768e8..0000000000000000000000000000000000000000
--- a/pkgs/desktops/gnome-3/extensions/mediaplayer/default.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ stdenv, fetchFromGitHub, glib, meson, gettext, ninja, python3 }:
-
-stdenv.mkDerivation {
- pname = "gnome-shell-extensions-mediaplayer";
- version = "unstable-2019-03-21";
-
- src = fetchFromGitHub {
- owner = "JasonLG1979";
- repo = "gnome-shell-extensions-mediaplayer";
- rev = "b382c98481fa421501684e2ff3eafc53971ef22b";
- sha256 = "01z2dml8dvl5sljw62g7x19mz02dz1g4gkmyp0h5bx49djcw1nnh";
- };
-
- nativeBuildInputs = [
- meson
- ninja
- python3
- ];
- buildInputs = [
- glib
- gettext
- ];
-
- postPatch = ''
- rm build
- chmod +x meson_post_install.py
- patchShebangs meson_post_install.py
- '';
-
- meta = with stdenv.lib; {
- description = "Control MPRIS Version 2 Capable Media Players";
- license = licenses.gpl2Plus;
- homepage = https://github.com/JasonLG1979/gnome-shell-extensions-mediaplayer/;
- maintainers = with maintainers; [ tiramiseb ];
- };
-}
-
diff --git a/pkgs/desktops/gnome-3/extensions/mpris-indicator-button/default.nix b/pkgs/desktops/gnome-3/extensions/mpris-indicator-button/default.nix
new file mode 100644
index 0000000000000000000000000000000000000000..dca346c6cce450a3b96e7d2639978b1b8d9aa214
--- /dev/null
+++ b/pkgs/desktops/gnome-3/extensions/mpris-indicator-button/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, fetchFromGitHub
+, gnome3
+}:
+
+stdenv.mkDerivation rec {
+ pname = "gnome-shell-extension-mpris-indicator-button-unstable";
+ version = "2019-09-29";
+
+ src = fetchFromGitHub {
+ owner = "JasonLG1979";
+ repo = "gnome-shell-extension-mpris-indicator-button";
+ rev = "6cdc28a8bde98f25618b27ee48280996e2b4a0f8";
+ sha256 = "1n3sh3phpa75y3vpc09wnzhis0m92zli1m46amzsdbvmk6gkifif";
+ };
+
+ uuid = "mprisindicatorbutton@JasonLG1979.github.io";
+
+ installPhase = ''
+ mkdir -p $out/share/gnome-shell/extensions
+ cp -r ${uuid} $out/share/gnome-shell/extensions
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A simple MPRIS indicator button for GNOME Shell";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ worldofpeace ];
+ platforms = gnome3.gnome-shell.meta.platforms;
+ homepage = "https://github.com/JasonLG1979/gnome-shell-extension-mpris-indicator-button";
+ broken = versionOlder gnome3.gnome-shell.version "3.34";
+ };
+}
diff --git a/pkgs/desktops/gnome-3/extensions/night-theme-switcher/default.nix b/pkgs/desktops/gnome-3/extensions/night-theme-switcher/default.nix
new file mode 100644
index 0000000000000000000000000000000000000000..8d3a775e949e2affc7e632600467243881b1e489
--- /dev/null
+++ b/pkgs/desktops/gnome-3/extensions/night-theme-switcher/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchgit }:
+
+stdenv.mkDerivation rec {
+ pname = "gnome-shell-extension-night-theme-switcher";
+ version = "2.1";
+
+ src = fetchgit {
+ url = "https://git.romainvigier.fr/Romain/nightthemeswitcher-gnome-shell-extension";
+ rev = "v${version}";
+ sha256 = "1md44vmc83cp35riszhdvysnvl8pmkcpf5j6n4i2b3wwcjwxqwfy";
+ };
+
+ makeFlags = [ "GSEXT_DIR_LOCAL=${placeholder "out"}/share/gnome-shell/extensions" ];
+
+ meta = with stdenv.lib; {
+ description = "Automatically change the GTK theme to dark variant when Night Light activates";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ jonafato ];
+ homepage = https://git.romainvigier.fr/Romain/nightthemeswitcher-gnome-shell-extension;
+ };
+}
diff --git a/pkgs/desktops/gnome-3/extensions/nohotcorner/default.nix b/pkgs/desktops/gnome-3/extensions/nohotcorner/default.nix
deleted file mode 100644
index e2b5288e8869d2209d73ea5e43a6c5d6f8cc187b..0000000000000000000000000000000000000000
--- a/pkgs/desktops/gnome-3/extensions/nohotcorner/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ stdenv, fetchFromGitHub }:
-
-stdenv.mkDerivation rec {
- pname = "gnome-shell-extension-nohotcorner";
- version = "19.0";
-
- src = fetchFromGitHub {
- owner = "HROMANO";
- repo = "nohotcorner";
- rev = "v${version}";
- sha256 = "059n4gyz7d686hknaifyjax8gygrda1xab5m15a09p98jdrdfdhi";
- };
-
- # Taken from the extension download link at
- # https://extensions.gnome.org/extension/118/no-topleft-hot-corner/
- uuid = "nohotcorner@azuri.free.fr";
-
- installPhase = ''
- mkdir -p $out/share/gnome-shell/extensions/${uuid}
- cp extension.js $out/share/gnome-shell/extensions/${uuid}
- cp metadata.json $out/share/gnome-shell/extensions/${uuid}
- '';
-
- meta = with stdenv.lib; {
- description = "Disables the top left hot corner";
- license = licenses.gpl2;
- maintainers = with maintainers; [ jonafato ];
- homepage = https://github.com/HROMANO/nohotcorner;
- };
-}
diff --git a/pkgs/desktops/gnome-3/extensions/pidgin-im-integration/default.nix b/pkgs/desktops/gnome-3/extensions/pidgin-im-integration/default.nix
index 6f1cc3df409a070cac06b7ee119834b901c82e00..cffe96894cc7f3d331cfc5d422032757b52d3bb5 100644
--- a/pkgs/desktops/gnome-3/extensions/pidgin-im-integration/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/pidgin-im-integration/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, glib }:
+{ stdenv, fetchFromGitHub, glib, gnome3 }:
stdenv.mkDerivation rec {
pname = "gnome-shell-extension-pidgin-im-integration";
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = with maintainers; [ ];
+ broken = versionAtLeast gnome3.gnome-shell.version "3.32"; # Doesn't support 3.34
};
}
diff --git a/pkgs/desktops/gnome-3/extensions/remove-dropdown-arrows/default.nix b/pkgs/desktops/gnome-3/extensions/remove-dropdown-arrows/default.nix
index d9ea670db09e8f8777c0053508e262f120614c6b..fbbd56f1c0f9f227471354508c40609501375ad3 100644
--- a/pkgs/desktops/gnome-3/extensions/remove-dropdown-arrows/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/remove-dropdown-arrows/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "gnome-shell-extension-remove-dropdown-arrows";
- version = "11";
+ version = "13";
src = fetchFromGitHub {
owner = "mpdeimos";
repo = "gnome-shell-remove-dropdown-arrows";
rev = "version/${version}";
- sha256 = "1g99r9bpjdhab3xj74wkl40gdnaf2w51kswcr8mi6bq72n4wjxwh";
+ sha256 = "09b2hnfbqym20pb1sfc8xiz7gs2kbs6b1s7xl8swc8dydhsbambk";
};
# This package has a Makefile, but it's used for publishing and linting, not
diff --git a/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/default.nix b/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/default.nix
index 33c127f449b8f46173bf846f4917e72a53aa9e1a..a5f94288ae57e4bab253a3f51a5c99af73d6cfb7 100644
--- a/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "gnome-shell-extension-sound-output-device-chooser";
- version = "unstable-2019-04-01";
+ version = "24";
src = fetchFromGitHub {
owner = "kgshank";
repo = "gse-sound-output-device-chooser";
- rev = "37098909a50bafe2f2538819f988cb2327ed7c60";
- sha256 = "09sbby8zi9xn21lbdry57bp1vwgd5c73anvqpw9css3x2ryda5li";
+ rev = version;
+ sha256 = "0n1rf4pdf0b78ivmz89x223sqlzv30qydkvlnvn7hwx0j32kyr0x";
};
dontBuild = true;
diff --git a/pkgs/desktops/gnome-3/extensions/system-monitor/default.nix b/pkgs/desktops/gnome-3/extensions/system-monitor/default.nix
index 13b2d6a1db4f009343708a98e8d8a62c7904a3e4..921991a33aea8abd4d5982f3105b8bed8320349a 100644
--- a/pkgs/desktops/gnome-3/extensions/system-monitor/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/system-monitor/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, substituteAll, fetchFromGitHub, glib, glib-networking, libgtop }:
+{ stdenv, substituteAll, fetchFromGitHub, glib, glib-networking, libgtop, gnome3 }:
stdenv.mkDerivation rec {
pname = "gnome-shell-system-monitor";
@@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
maintainers = with maintainers; [ aneeshusa tiramiseb ];
homepage = https://github.com/paradoxxxzero/gnome-shell-system-monitor-applet;
+ broken = versionAtLeast gnome3.gnome-shell.version "3.32";
};
}
diff --git a/pkgs/desktops/gnome-3/extensions/taskwhisperer/default.nix b/pkgs/desktops/gnome-3/extensions/taskwhisperer/default.nix
index 90be6aed1d7984e83743e60f414af7a6f32a88e7..1e44cd4de5c2e185c2e738be8f372cf64a5fed43 100644
--- a/pkgs/desktops/gnome-3/extensions/taskwhisperer/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/taskwhisperer/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, substituteAll, fetchFromGitHub, taskwarrior, gettext, runtimeShell }:
+{ stdenv, substituteAll, fetchFromGitHub, taskwarrior, gettext, runtimeShell, gnome3 }:
stdenv.mkDerivation rec {
pname = "gnome-shell-extension-taskwhisperer";
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
maintainers = with maintainers; [ jonafato ];
homepage = https://github.com/cinatic/taskwhisperer;
+ broken = versionAtLeast gnome3.gnome-shell.version "3.32"; # Doesnt't support 3.34
};
}
diff --git a/pkgs/desktops/gnome-3/extensions/tilingnome/default.nix b/pkgs/desktops/gnome-3/extensions/tilingnome/default.nix
index 293918bd2b1188068ffd76d546031263e53f13c8..22f857a7809d7344e30b5a26208d1eb0eeeaa902 100644
--- a/pkgs/desktops/gnome-3/extensions/tilingnome/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/tilingnome/default.nix
@@ -1,14 +1,14 @@
{ stdenv, lib, fetchFromGitHub, glib, gnome3 }:
stdenv.mkDerivation rec {
- pname = "gnome-shell-extension-tilingnome";
- version = "unstable-2019-01-18";
+ pname = "gnome-shell-extension-tilingnome-unstable";
+ version = "unstable-2019-09-19";
src = fetchFromGitHub {
owner = "rliang";
- repo = pname;
- rev = "bd4fb8c19f7a6282b38724b30e62645143390226";
- sha256 = "1y4s4n88gdkpvgd3v3dg0181ccyhlixbvkx3bwyvdxyyyxbqibid";
+ repo = "gnome-shell-extension-tilingnome";
+ rev = "f401c20c9721d85e6b3e30d1e822a200db370407";
+ sha256 = "1hq9g9bxqpzqrdj9zm0irld8r6q4w1m4b00jya7wsny8rzb1s0y2";
};
nativeBuildInputs = [ glib ];
@@ -30,6 +30,5 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ benley ];
homepage = https://github.com/rliang/gnome-shell-extension-tilingnome;
platforms = gnome3.gnome-shell.meta.platforms;
- broken = lib.versionAtLeast gnome3.gnome-shell.version "3.31";
};
}
diff --git a/pkgs/desktops/gnome-3/extensions/timepp/default.nix b/pkgs/desktops/gnome-3/extensions/timepp/default.nix
index f841ef2403dce96f0d4a9a69d710ac78071da29f..04e98d51b0c4cc052f40f9d4094093d8239d06f5 100644
--- a/pkgs/desktops/gnome-3/extensions/timepp/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/timepp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, fetchFromGitHub, gnome3 }:
stdenv.mkDerivation rec {
pname = "gnome-shell-extension-timepp";
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
homepage = https://github.com/zagortenay333/timepp__gnome;
license = licenses.gpl3;
maintainers = with maintainers; [ svsdep ];
+ broken = versionAtLeast gnome3.gnome-shell.version "3.32"; # Dosen't support 3.34 https://github.com/zagortenay333/timepp__gnome/issues/113
};
}
diff --git a/pkgs/desktops/gnome-3/games/aisleriot/default.nix b/pkgs/desktops/gnome-3/games/aisleriot/default.nix
index 3e274c35cdd99c6dff1431771b7e624455bc34e9..474c49fb58411a6ac0479e1c632a6d0c4e250fee 100644
--- a/pkgs/desktops/gnome-3/games/aisleriot/default.nix
+++ b/pkgs/desktops/gnome-3/games/aisleriot/default.nix
@@ -4,11 +4,11 @@
stdenv.mkDerivation rec {
pname = "aisleriot";
- version = "3.22.8";
+ version = "3.22.9";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "15pm39679ymxki07sb5nvhycz4z53zwbvascyp5wm4864bn98815";
+ sha256 = "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji";
};
configureFlags = [
diff --git a/pkgs/desktops/gnome-3/games/atomix/default.nix b/pkgs/desktops/gnome-3/games/atomix/default.nix
index c9395166c521d2b140da91fc5d8d013caac057e5..ec9895b3bf55684987e5d96dff1d46351e4d80b1 100644
--- a/pkgs/desktops/gnome-3/games/atomix/default.nix
+++ b/pkgs/desktops/gnome-3/games/atomix/default.nix
@@ -3,13 +3,13 @@
let
pname = "atomix";
- version = "3.32.1";
+ 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 = "19wpm7mn6r7x6jz1r0kkqg3xa69iycvgb7g7i8wi0d3cx0rsgjkl";
+ sha256 = "0h909a4mccf160hi0aimyicqhq2b0gk1dmqp7qwf87qghfrw6m00";
};
nativeBuildInputs = [ meson ninja pkgconfig gettext wrapGAppsHook python3 ];
diff --git a/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix b/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix
index 5b233c48385d6baae8e800a0ab31e3e54ab6bc7d..5f6cb92cde248434a619758ee3aa75b882d102c5 100644
--- a/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix
+++ b/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix
@@ -1,21 +1,21 @@
{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook
-, gettext, meson, libcanberra-gtk3, librsvg, itstool, vala
+, gettext, meson, gsound, librsvg, itstool, vala
, python3, ninja, desktop-file-utils }:
stdenv.mkDerivation rec {
pname = "four-in-a-row";
- version = "3.32.0";
+ version = "3.34.1";
src = fetchurl {
url = "mirror://gnome/sources/four-in-a-row/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0h4wmbkdp7x3gp9sbxmvla316m8n6iy4f5sq0ksldj0z7ghlx9zl";
+ sha256 = "112pyrh2yvwy5b2a0b5crjpwp2vqqg4zgx6csll1bic6ccayv713";
};
nativeBuildInputs = [
pkgconfig wrapGAppsHook gettext meson itstool vala
ninja python3 desktop-file-utils
];
- buildInputs = [ gtk3 libcanberra-gtk3 librsvg gnome3.adwaita-icon-theme ];
+ buildInputs = [ gtk3 gsound librsvg gnome3.adwaita-icon-theme ];
postPatch = ''
chmod +x build-aux/meson_post_install.py
diff --git a/pkgs/desktops/gnome-3/games/gnome-chess/default.nix b/pkgs/desktops/gnome-3/games/gnome-chess/default.nix
index d7001e1c52791656782889328c5713a3405a50f5..72c4bdf1d297a5ffc3fa4ab59e10f2207e82b63e 100644
--- a/pkgs/desktops/gnome-3/games/gnome-chess/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-chess/default.nix
@@ -3,11 +3,11 @@
stdenv.mkDerivation rec {
pname = "gnome-chess";
- version = "3.32.0";
+ version = "3.34.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-chess/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0hzb6s4wmfy1fysagc5hmn1ijvrwyd2cg7iz41mpn7gfdjyak639";
+ sha256 = "1n1vjg6xhwppmddrmqmkk6b3jkgphshp06rjbv5h3270k520a135";
};
nativeBuildInputs = [ meson ninja vala pkgconfig gettext itstool libxml2 python3 wrapGAppsHook gobject-introspection ];
diff --git a/pkgs/desktops/gnome-3/games/gnome-klotski/default.nix b/pkgs/desktops/gnome-3/games/gnome-klotski/default.nix
index 904edd7e51a70a5aca32c5e6304a40ce6b12e2b9..137357e0a399b97947247d67bb19c4535978a417 100644
--- a/pkgs/desktops/gnome-3/games/gnome-klotski/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-klotski/default.nix
@@ -5,13 +5,13 @@
let
pname = "gnome-klotski";
- 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 = "1p4s15gxj6gasix22z9vlx2yrx196fvcxr6v6qrl569idfgjbi72";
+ sha256 = "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/games/gnome-mahjongg/default.nix b/pkgs/desktops/gnome-3/games/gnome-mahjongg/default.nix
index 9d173945cdd8cd86b0b24be9352495769124bc87..aa7824a031798b8407cb2fc7dee048f93dc72fc2 100644
--- a/pkgs/desktops/gnome-3/games/gnome-mahjongg/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-mahjongg/default.nix
@@ -5,11 +5,11 @@
stdenv.mkDerivation rec {
pname = "gnome-mahjongg";
- version = "3.32.0";
+ version = "3.34.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-mahjongg/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "12kamxnxbh26k4iykhbs873mx25a2wrjnhr013lfkwbyl52kg12j";
+ sha256 = "0qyi3jkg112jysrsy5p330b7b92sl09mr8zsimq06q68kj1wzkz5";
};
passthru = {
diff --git a/pkgs/desktops/gnome-3/games/gnome-mines/default.nix b/pkgs/desktops/gnome-3/games/gnome-mines/default.nix
index 1ac7e51357eb44838ec448978767d3b2a5eea641..8c620fdd0d153e56b3207d1a6d4522072abe66b7 100644
--- a/pkgs/desktops/gnome-3/games/gnome-mines/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-mines/default.nix
@@ -3,11 +3,11 @@
stdenv.mkDerivation rec {
pname = "gnome-mines";
- version = "3.32.2";
+ version = "3.34.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-mines/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "1nv966wkp2rqxzcdb76bwlbzpjqadcaqzrnkxpzwnvjjr167yx8g";
+ sha256 = "1spxa6qr1y8s5rrsvpciywpvhk812ngn95s1apaxaigwy2g1iw54";
};
# gobject-introspection for finding vapi files
diff --git a/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix b/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix
index 7b069922169685a7a88b7d786b6e1d0743d0f880..59b92a8b61ce8b734410da32fa724612825157b4 100644
--- a/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix
@@ -1,19 +1,24 @@
{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook
-, librsvg, libcanberra-gtk3, clutter-gtk, intltool, itstool
-, libxml2, libgee, libgnome-games-support }:
+, librsvg, gsound, clutter-gtk, gettext, itstool, vala, python3
+, libxml2, libgee, libgnome-games-support, meson, ninja
+, desktop-file-utils, hicolor-icon-theme}:
stdenv.mkDerivation rec {
pname = "gnome-nibbles";
- version = "3.32.0";
+ version = "3.34.1";
src = fetchurl {
url = "mirror://gnome/sources/gnome-nibbles/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0g627pzbfywiy2rsh4aidgbln9s4j5m8pryw4cgr5ygc4z8l6l9p";
+ sha256 = "0nfy1wvxsyrpdinfn5v86gvq3ma487njz607biwwhji9z050gw3p";
};
- nativeBuildInputs = [ pkgconfig wrapGAppsHook intltool itstool libxml2 ];
+ nativeBuildInputs = [
+ meson ninja vala python3
+ pkgconfig wrapGAppsHook gettext itstool libxml2
+ desktop-file-utils hicolor-icon-theme
+ ];
buildInputs = [
- gtk3 librsvg libcanberra-gtk3 clutter-gtk gnome3.adwaita-icon-theme
+ gtk3 librsvg gsound clutter-gtk gnome3.adwaita-icon-theme
libgee libgnome-games-support
];
diff --git a/pkgs/desktops/gnome-3/games/gnome-robots/default.nix b/pkgs/desktops/gnome-3/games/gnome-robots/default.nix
index 46723867f8ad3145f37d7cbec9690f6f25cae27b..c8cc9f121f53bc05993a4a85f753e97a71f0634d 100644
--- a/pkgs/desktops/gnome-3/games/gnome-robots/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-robots/default.nix
@@ -1,14 +1,14 @@
{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook
-, librsvg, libcanberra-gtk3, gettext, itstool, libxml2, libgnome-games-support
-, libgee, meson, ninja, python3, desktop-file-utils , hicolor-icon-theme, adwaita-icon-theme }:
+, librsvg, gsound, gettext, itstool, libxml2, libgnome-games-support
+, libgee, meson, ninja, python3, desktop-file-utils, adwaita-icon-theme }:
stdenv.mkDerivation rec {
pname = "gnome-robots";
- version = "3.32.0";
+ version = "3.34.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-robots/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "1xp1sijl5k7wmnbb0hdgh4ajxgp74k7fcnmd5c6rw6lf51wpinyh";
+ sha256 = "18vnx5096d3mc2i7w4ma9hflsqfnvahl29aifjnvhdm5ji8qi0mb";
};
passthru = {
@@ -18,10 +18,9 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [
pkgconfig meson ninja python3
libxml2 wrapGAppsHook gettext itstool desktop-file-utils
- hicolor-icon-theme # For setup-hook
];
buildInputs = [
- gtk3 librsvg libcanberra-gtk3 libgnome-games-support libgee adwaita-icon-theme
+ gtk3 librsvg gsound libgnome-games-support libgee adwaita-icon-theme
];
postPatch = ''
diff --git a/pkgs/desktops/gnome-3/games/gnome-sudoku/default.nix b/pkgs/desktops/gnome-3/games/gnome-sudoku/default.nix
index a555ee31cf378327d0a827fa7e8ed202cecd4e3c..53cd073af348538c88039e55a219c4de2b40e4ec 100644
--- a/pkgs/desktops/gnome-3/games/gnome-sudoku/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-sudoku/default.nix
@@ -3,11 +3,11 @@
stdenv.mkDerivation rec {
pname = "gnome-sudoku";
- version = "3.32.0";
+ version = "3.34.1";
src = fetchurl {
url = "mirror://gnome/sources/gnome-sudoku/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "1wwdjflw1lbx3cv6gvqcgp5jnjkrq37ld6mjbjj03g3vr90qaf0l";
+ sha256 = "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b";
};
nativeBuildInputs = [ meson ninja vala pkgconfig gobject-introspection gettext itstool libxml2 python3 desktop-file-utils wrapGAppsHook ];
diff --git a/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix b/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix
index b6c60362265d0f08990dc6a6c45c09934944d929..dd7908ba726eef897c3f0d7df8c8a9948d28ab16 100644
--- a/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix
@@ -1,15 +1,15 @@
{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook
-, librsvg, libcanberra-gtk3, gettext, itstool, libxml2
+, librsvg, gsound, gettext, itstool, libxml2
, meson, ninja, vala, python3, desktop-file-utils
}:
stdenv.mkDerivation rec {
pname = "gnome-taquin";
- version = "3.32.0";
+ version = "3.34.1";
src = fetchurl {
url = "mirror://gnome/sources/gnome-taquin/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "1kyxh68gg7clxg22ls4sliisxb2sydwccbxqgfvxjg2fklr6r1lm";
+ sha256 = "0vyrfhkfpx83n9p70jssykbndvb3sxwdihqvvvb94rbw7n6c4q4r";
};
passthru = {
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
gettext itstool libxml2 vala desktop-file-utils
];
buildInputs = [
- gtk3 librsvg libcanberra-gtk3
+ gtk3 librsvg gsound
gnome3.adwaita-icon-theme
];
diff --git a/pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix b/pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix
index 291415302116603645e597eee237ea80230128a2..1337a810807244372352712a9105da4b68c1f833 100644
--- a/pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix
@@ -5,11 +5,11 @@
stdenv.mkDerivation rec {
pname = "gnome-tetravex";
- version = "3.32.0";
+ version = "3.34.1";
src = fetchurl {
url = "mirror://gnome/sources/gnome-tetravex/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "18drxp43j2jnywxl6qa7mn1iv33jxr0dpc1l9xza3lnrb0jp0kjl";
+ sha256 = "05i9y6x9ai7fay0khr4zb4ji92qs49v88p3lqx9lac8hz04dnvg0";
};
passthru = {
diff --git a/pkgs/desktops/gnome-3/games/hitori/default.nix b/pkgs/desktops/gnome-3/games/hitori/default.nix
index 8e53a937a5e916755d27ec41e267dfff97ac0041..cf83527432f5ecb4b6f13b0ea053187a271e48c9 100644
--- a/pkgs/desktops/gnome-3/games/hitori/default.nix
+++ b/pkgs/desktops/gnome-3/games/hitori/default.nix
@@ -18,11 +18,11 @@
stdenv.mkDerivation rec {
pname = "hitori";
- version = "3.32.0";
+ version = "3.34.0";
src = fetchurl {
url = "mirror://gnome/sources/hitori/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "15s20db2fq4cy031sw20pmf53hxiak44fgyjy5njqnp2h2sg3806";
+ sha256 = "1612hq6d2mnggppy949dkb8lz9886n0rlg68z7qmjjizz1l41lb5";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/games/iagno/default.nix b/pkgs/desktops/gnome-3/games/iagno/default.nix
index 114551ed4ee1ab10ae600b81ed324536553dbb9a..c679f3f74b8f03f233bb946e174ffe68ff54298a 100644
--- a/pkgs/desktops/gnome-3/games/iagno/default.nix
+++ b/pkgs/desktops/gnome-3/games/iagno/default.nix
@@ -1,22 +1,22 @@
{ stdenv, fetchurl, pkgconfig, gtk3, gnome3, gdk-pixbuf, librsvg, wrapGAppsHook
-, itstool, libcanberra-gtk3, libxml2
+, itstool, gsound, libxml2
, meson, ninja, python3, vala, desktop-file-utils
}:
stdenv.mkDerivation rec {
pname = "iagno";
- version = "3.32.0";
+ version = "3.34.2";
src = fetchurl {
url = "mirror://gnome/sources/iagno/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "1rcqb4gpam16xw87n4q2akkrg94ksrn16ry21pr6bsd7qs7hw17d";
+ sha256 = "0r31k6b8mqgn5c55hi94gpdr776ykq7ww55vq6pmp5irhdwb3gn9";
};
nativeBuildInputs = [
meson ninja python3 vala desktop-file-utils
pkgconfig wrapGAppsHook itstool libxml2
];
- buildInputs = [ gtk3 gnome3.adwaita-icon-theme gdk-pixbuf librsvg libcanberra-gtk3 ];
+ buildInputs = [ gtk3 gnome3.adwaita-icon-theme gdk-pixbuf librsvg gsound ];
enableParallelBuilding = true;
diff --git a/pkgs/desktops/gnome-3/games/lightsoff/default.nix b/pkgs/desktops/gnome-3/games/lightsoff/default.nix
index 9c582f037a25eb7c6a27467a320a082cce65a300..0a236d0425a0fb32094e2306bb2a22617a1d49a3 100644
--- a/pkgs/desktops/gnome-3/games/lightsoff/default.nix
+++ b/pkgs/desktops/gnome-3/games/lightsoff/default.nix
@@ -4,11 +4,11 @@
stdenv.mkDerivation rec {
pname = "lightsoff";
- version = "3.32.0";
+ version = "3.34.0";
src = fetchurl {
url = "mirror://gnome/sources/lightsoff/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0vc3ibjs9ynnm0gxlhhin7jpnsx22vnn4ygaybxwmv9w2q49cs9f";
+ sha256 = "1yyq0962fv16rab3alq5saf4gpii9xvcfy5vbq85hhhgjpbqrfns";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/games/quadrapassel/default.nix b/pkgs/desktops/gnome-3/games/quadrapassel/default.nix
index 78ed0d9fa68aa5ab312dfddb6b6ad995b9552ed1..2ac4c4c96f78ae64c4f52d96c153f414e57f274f 100644
--- a/pkgs/desktops/gnome-3/games/quadrapassel/default.nix
+++ b/pkgs/desktops/gnome-3/games/quadrapassel/default.nix
@@ -1,18 +1,16 @@
{ stdenv, fetchurl, pkgconfig, gtk3, gnome3, gdk-pixbuf
-, librsvg, libcanberra-gtk3, libmanette
+, librsvg, gsound, libmanette
, gettext, itstool, libxml2, clutter, clutter-gtk, wrapGAppsHook
, meson, ninja, python3, vala, desktop-file-utils
}:
-let
+stdenv.mkDerivation rec {
pname = "quadrapassel";
-in stdenv.mkDerivation rec {
- name = "${pname}-${version}";
- version = "3.32.0";
+ version = "3.34.1";
src = fetchurl {
- url = "mirror://gnome/sources/quadrapassel/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
- sha256 = "1zhi1957knz9dm98drn2dh95mr33sdch590yddh1f8r6bzsfjvpy";
+ url = "mirror://gnome/sources/quadrapassel/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "1qh6hx90lqag2hby94jc68xnz4i6b2a253x4yp6xz025fpacv6mk";
};
nativeBuildInputs = [
@@ -22,11 +20,9 @@ in stdenv.mkDerivation rec {
];
buildInputs = [
gtk3 gdk-pixbuf librsvg libmanette
- libcanberra-gtk3 clutter libxml2 clutter-gtk
+ gsound clutter libxml2 clutter-gtk
];
- enableParallelBuilding = true;
-
passthru = {
updateScript = gnome3.updateScript {
packageName = pname;
diff --git a/pkgs/desktops/gnome-3/games/swell-foop/default.nix b/pkgs/desktops/gnome-3/games/swell-foop/default.nix
index a944e0c568a23b99b4cf0bf95d68e52e3c5aeaf7..02a61d46c73d17e12fd5605687fd0ee64910d2a4 100644
--- a/pkgs/desktops/gnome-3/games/swell-foop/default.nix
+++ b/pkgs/desktops/gnome-3/games/swell-foop/default.nix
@@ -3,13 +3,13 @@
let
pname = "swell-foop";
- version = "3.32.0";
+ 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 = "0jpci3c1wyzbvsq86j30rcl166skhi2wf12001amfgh0dmmwipci";
+ sha256 = "1032psxm59nissi268bh3j964m4a0n0ah4dy1pf0ph27j3zvdik1";
};
passthru = {
diff --git a/pkgs/desktops/gnome-3/misc/geary/default.nix b/pkgs/desktops/gnome-3/misc/geary/default.nix
index 8babe77e4121a1e715eec42eb841e65d7bb33276..07319337a9a016f27740e45c958530be10f93189 100644
--- a/pkgs/desktops/gnome-3/misc/geary/default.nix
+++ b/pkgs/desktops/gnome-3/misc/geary/default.nix
@@ -1,28 +1,30 @@
{ stdenv, fetchurl, pkgconfig, gtk3, vala, enchant2, wrapGAppsHook, meson, ninja
, desktop-file-utils, gnome-online-accounts, gsettings-desktop-schemas, adwaita-icon-theme
-, libnotify, libcanberra-gtk3, libsecret, gmime, isocodes, libxml2, gettext
+, libcanberra-gtk3, libsecret, gmime, isocodes, libxml2, gettext, fetchpatch
, sqlite, gcr, json-glib, itstool, libgee, gnome3, webkitgtk, python3
-, xvfb_run, dbus, shared-mime-info, libunwind, libunity, folks, glib-networking }:
+, xvfb_run, dbus, shared-mime-info, libunwind, libunity, folks, glib-networking
+, gobject-introspection, gspell, appstream-glib, libytnef, libhandy }:
stdenv.mkDerivation rec {
pname = "geary";
- 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 = "0sg53zq81v28hdqiy5d048skwfgsa8ck0z7ywsagdh7iaqin68gq";
+ sha256 = "1bx57g8199pcqh1p90dlnca2g1kpyrifr6g8m1rdjmpm2a1r993v";
};
nativeBuildInputs = [
desktop-file-utils gettext itstool libxml2 meson ninja
- pkgconfig vala wrapGAppsHook python3
+ pkgconfig vala wrapGAppsHook python3 appstream-glib
+ gobject-introspection
];
buildInputs = [
adwaita-icon-theme enchant2 gcr gmime gnome-online-accounts
gsettings-desktop-schemas gtk3 isocodes json-glib libcanberra-gtk3
- libgee libnotify libsecret sqlite webkitgtk glib-networking
- libunwind libunity folks
+ libgee libsecret sqlite webkitgtk glib-networking
+ libunwind libunity folks gspell libytnef libhandy
];
checkInputs = [ xvfb_run dbus ];
@@ -31,9 +33,17 @@ stdenv.mkDerivation rec {
"-Dcontractor=true" # install the contractor file (Pantheon specific)
];
+ patches = [
+ # Longer timeout for client test.
+ (fetchpatch {
+ url = "https://salsa.debian.org/gnome-team/geary/raw/04be1e058a2e65075dd8cf8843d469ee45a9e09a/debian/patches/Bump-client-test-timeout-to-300s.patch";
+ sha256 = "1zvnq8bgla160531bjdra8hcg15mp8r1j1n53m1xfgm0ssnj5knx";
+ })
+ ];
+
postPatch = ''
- chmod +x build-aux/post_install.py
- patchShebangs build-aux/post_install.py
+ chmod +x build-aux/post_install.py build-aux/git_version.py
+ patchShebangs build-aux/post_install.py build-aux/git_version.py
chmod +x desktop/geary-attach
'';
diff --git a/pkgs/desktops/gnome-3/misc/gitg/default.nix b/pkgs/desktops/gnome-3/misc/gitg/default.nix
index 94418849b9873a32975fa92941f6c953b42f8e3c..d5617ee493d3e860d83e89afd7e679c636cf2dee 100644
--- a/pkgs/desktops/gnome-3/misc/gitg/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gitg/default.nix
@@ -24,7 +24,6 @@
, meson
, ninja
, python3
-, hicolor-icon-theme
, libdazzle
}:
@@ -66,7 +65,6 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [
gobject-introspection
- hicolor-icon-theme
gettext
meson
ninja
diff --git a/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix b/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix
index 25e1347f1c928cfd1de2a3488c86c73484478034..fff328c608d6fce3fefe7ae6ab2aa2ee769154b8 100644
--- a/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix
@@ -18,7 +18,6 @@
, adwaita-icon-theme
, libgweather
, gucharmap
-, gnome-settings-daemon
, tracker
, polkit
, gnome3
@@ -26,13 +25,13 @@
let
pname = "gnome-applets";
- 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 = "10kd19ymxl2z65121g90mx96m6vcn2a8a50g6a56prrdjsgbgia1";
+ sha256 = "1mbhykqwzq18zpvfkdcdkbb4zhijmxqa2i6502an78yap87vq74i";
};
nativeBuildInputs = [
@@ -56,7 +55,6 @@ in stdenv.mkDerivation rec {
adwaita-icon-theme
libgweather
gucharmap
- gnome-settings-daemon
tracker
polkit
wirelesstools
diff --git a/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix b/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix
index c8d26988391db4a5c576fa4153994df49941b6fd..8ccf5107046b1b4eaa387ab3f7ac1e248d071829 100644
--- a/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix
@@ -1,11 +1,20 @@
-{ stdenv, fetchurl, pkgconfig, gnome3
-, gtk3, glib, gobject-introspection, libarchive
+{ stdenv
+, fetchurl
+, pkgconfig
+, gnome3
+, gtk3
+, glib
+, gobject-introspection
+, libarchive
+, vala
}:
stdenv.mkDerivation rec {
pname = "gnome-autoar";
version = "0.2.3";
+ outputs = [ "out" "dev" ];
+
src = fetchurl {
url = "mirror://gnome/sources/gnome-autoar/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "02i4zgqqqj56h7bcys6dz7n78m4nj2x4dv1ggjmnrk98n06xpsax";
@@ -15,9 +24,20 @@ stdenv.mkDerivation rec {
updateScript = gnome3.updateScript { packageName = "gnome-autoar"; attrPath = "gnome3.gnome-autoar"; };
};
- nativeBuildInputs = [ pkgconfig ];
- buildInputs = [ gtk3 glib ];
- propagatedBuildInputs = [ libarchive gobject-introspection ];
+ nativeBuildInputs = [
+ gobject-introspection
+ pkgconfig
+ vala
+ ];
+
+ buildInputs = [
+ gtk3
+ ];
+
+ propagatedBuildInputs = [
+ libarchive
+ glib
+ ];
meta = with stdenv.lib; {
platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix b/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix
index 3cade7ccdf8b7bdb74556596c226258ca2302dde..dc7e0ed222f070961482bef5c2d13a69aa45f95c 100644
--- a/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix
@@ -22,28 +22,25 @@
, writeTextFile
, writeShellScriptBin
, xkeyboard_config
+, runCommand
}:
let
pname = "gnome-flashback";
- version = "3.32.0";
- requiredComponents = wmName: "RequiredComponents=${wmName};gnome-flashback-init;gnome-flashback;gnome-panel;org.gnome.SettingsDaemon.A11ySettings;org.gnome.SettingsDaemon.Clipboard;org.gnome.SettingsDaemon.Color;org.gnome.SettingsDaemon.Datetime;org.gnome.SettingsDaemon.Housekeeping;org.gnome.SettingsDaemon.Keyboard;org.gnome.SettingsDaemon.MediaKeys;org.gnome.SettingsDaemon.Mouse;org.gnome.SettingsDaemon.Power;org.gnome.SettingsDaemon.PrintNotifications;org.gnome.SettingsDaemon.Rfkill;org.gnome.SettingsDaemon.ScreensaverProxy;org.gnome.SettingsDaemon.Sharing;org.gnome.SettingsDaemon.Smartcard;org.gnome.SettingsDaemon.Sound;org.gnome.SettingsDaemon.Wacom;org.gnome.SettingsDaemon.XSettings;";
+ version = "3.34.1";
+ requiredComponents = wmName: "RequiredComponents=${wmName};gnome-flashback;gnome-panel;org.gnome.SettingsDaemon.A11ySettings;org.gnome.SettingsDaemon.Color;org.gnome.SettingsDaemon.Datetime;org.gnome.SettingsDaemon.Housekeeping;org.gnome.SettingsDaemon.Keyboard;org.gnome.SettingsDaemon.MediaKeys;org.gnome.SettingsDaemon.Power;org.gnome.SettingsDaemon.PrintNotifications;org.gnome.SettingsDaemon.Rfkill;org.gnome.SettingsDaemon.ScreensaverProxy;org.gnome.SettingsDaemon.Sharing;org.gnome.SettingsDaemon.Smartcard;org.gnome.SettingsDaemon.Sound;org.gnome.SettingsDaemon.Wacom;org.gnome.SettingsDaemon.XSettings;";
gnome-flashback = stdenv.mkDerivation rec {
name = "${pname}-${version}";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
- sha256 = "0jfzr7vdmnxpxqqa38ni1p3c508xhlnxqpmmqshk3rvrf0afqn62";
+ sha256 = "0xxw5w66gx04amyxhf4xbz0s4bf0rdp7y9nyrf6bb4xdc6b0rfnx";
};
# make .desktop Execs absolute
postPatch = ''
patch -p0 < {
+- var appinfo = new GLib.DesktopAppInfo ("io.elementary.feedback.desktop");
++ var appinfo = new GLib.DesktopAppInfo ("@elementary_feedback@/bin/io.elementary.feedback.desktop");
+ if (appinfo != null) {
+ try {
+ appinfo.launch (null, null);
+diff --git a/src/Views/HardwareView.vala b/src/Views/HardwareView.vala
+index f8113634..3794bad8 100644
+--- a/src/Views/HardwareView.vala
++++ b/src/Views/HardwareView.vala
+@@ -179,7 +179,7 @@ public class About.HardwareView : Gtk.Grid {
+
+ // Graphics
+ try {
+- Process.spawn_command_line_sync ("lspci", out graphics);
++ Process.spawn_command_line_sync ("@pciutils@/bin/lspci", out graphics);
+
+ if ("VGA" in graphics) { //VGA-keyword indicates graphics-line
+ string[] lines = graphics.split("\n");
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/lspci-path.patch b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/lspci-path.patch
deleted file mode 100644
index 352d84c42624bd244b8ead8ebd87313b107a1ce7..0000000000000000000000000000000000000000
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/lspci-path.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/Views/HardwareView.vala b/src/Views/HardwareView.vala
-index a3e449c..a95fe93 100644
---- a/src/Views/HardwareView.vala
-+++ b/src/Views/HardwareView.vala
-@@ -179,7 +179,7 @@ public class About.HardwareView : Gtk.Grid {
-
- // Graphics
- try {
-- Process.spawn_command_line_sync ("lspci", out graphics);
-+ Process.spawn_command_line_sync ("@pciutils@/bin/lspci", out graphics);
-
- if ("VGA" in graphics) { //VGA-keyword indicates graphics-line
- string[] lines = graphics.split("\n");
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/remove-update-button.patch b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/remove-update-button.patch
deleted file mode 100644
index 41433f9a76b0784a05705b1846291a2100f7193d..0000000000000000000000000000000000000000
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/remove-update-button.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-diff --git a/src/Plug.vala b/src/Plug.vala
-index 76fca34..3e79c1f 100644
---- a/src/Plug.vala
-+++ b/src/Plug.vala
-@@ -65,7 +65,6 @@ public class About.Plug : Switchboard.Plug {
- search_results.set ("%s → %s".printf (display_name, _("Restore Default Settings")), "");
- search_results.set ("%s → %s".printf (display_name, _("Suggest Translation")), "");
- search_results.set ("%s → %s".printf (display_name, _("Report Problems")), "");
-- search_results.set ("%s → %s".printf (display_name, _("Updates")), "");
- return search_results;
- }
-
-@@ -161,7 +160,7 @@ public class About.Plug : Switchboard.Plug {
- var kernel_version_label = new Gtk.Label (kernel_version);
- kernel_version_label.set_selectable (true);
-
-- var gtk_version_label = new Gtk.Label (_("GTK+ %s").printf (gtk_version));
-+ var gtk_version_label = new Gtk.Label (_("GTK+ %s").printf (gtk_version));
- gtk_version_label.set_selectable (true);
-
- var website_label = new Gtk.LinkButton.with_label (website_url, _("Website"));
-@@ -202,16 +201,6 @@ public class About.Plug : Switchboard.Plug {
- issue_dialog.run ();
- });
-
-- // Update button
-- var update_button = new Gtk.Button.with_label (_("Check for Updates"));
-- update_button.clicked.connect (() => {
-- try {
-- Process.spawn_command_line_async ("io.elementary.appcenter --show-updates");
-- } catch (Error e) {
-- warning (e.message);
-- }
-- });
--
- // Restore settings button
- var settings_restore_button = new Gtk.Button.with_label (_("Restore Default Settings"));
- settings_restore_button.clicked.connect (settings_restore_clicked);
-@@ -224,7 +213,6 @@ public class About.Plug : Switchboard.Plug {
- button_grid.add (settings_restore_button);
- button_grid.add (translate_button);
- button_grid.add (bug_button);
-- button_grid.add (update_button);
- button_grid.set_child_non_homogeneous (help_button, true);
-
- var software_grid = new Gtk.Grid ();
-@@ -238,7 +226,7 @@ public class About.Plug : Switchboard.Plug {
- software_grid.attach (based_off, 0, 2, 2, 1);
- }
-
-- software_grid.attach (kernel_version_label, 0, 3, 2, 1);
-+ software_grid.attach (kernel_version_label, 0, 3, 2, 1);
- software_grid.attach (gtk_version_label, 0, 4, 2, 1);
- software_grid.attach (website_label, 0, 5, 2, 1);
-
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
index 9f1c75b7b438dad34d8a84a5ae288ec54f3ccb66..ca29ab65afcbbf9b472085fcda51b781f292db07 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
@@ -14,13 +14,13 @@
stdenv.mkDerivation rec {
pname = "switchboard-plug-bluetooth";
- version = "2.2.2";
+ version = "2.3.0";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "0rp9wa0yilc3wgwnybc6cryxphja7imixn45zhj475a4nb3afd0q";
+ sha256 = "1m8nzav976xs3sash2nbyrfn2sk7aah352ypihbp7bacid5wnhr7";
};
passthru = {
@@ -44,8 +44,6 @@ stdenv.mkDerivation rec {
switchboard
];
- PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard";
-
meta = with stdenv.lib; {
description = "Switchboard Bluetooth Plug";
homepage = https://github.com/elementary/switchboard-plug-bluetooth;
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/clock-format.patch b/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/clock-format.patch
deleted file mode 100644
index 0fe0ac8b10c88447ea8a3f4fc63571b0d4951ee9..0000000000000000000000000000000000000000
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/clock-format.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/src/DateTime1.vala b/src/DateTime1.vala
-index 5a80fbd..2e1f948 100644
---- a/src/DateTime1.vala
-+++ b/src/DateTime1.vala
-@@ -38,6 +38,6 @@ public class DateTime.Settings : Granite.Services.Settings {
- public string clock_format { get; set; }
-
- public Settings () {
-- base ("io.elementary.desktop.wingpanel.datetime");
-+ base ("io.elementary.granite");
- }
- }
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
index c0c7bbdec2e5a9445b432efd98c48c3c2e62fc8b..cafb40144078929b8d1760c2a7456c92473b52d8 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
@@ -16,13 +16,13 @@
stdenv.mkDerivation rec {
pname = "switchboard-plug-datetime";
- version = "2.1.5";
+ version = "2.1.6";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "1iz8skf5dw76a07ljc8v8lw2x2nrmq8j6sggm227cmxy60gadsdv";
+ sha256 = "09734c3qc0296zf14rdhl4p6ppga015rz9hhsvlcc3nvyw7kdqkc";
};
passthru = {
@@ -51,8 +51,6 @@ stdenv.mkDerivation rec {
src = ./timezone.patch;
tzdata = "${tzdata}/share/zoneinfo/zone.tab";
})
- # Use "clock-format" GSettings key that's been moved to granite
- ./clock-format.patch
];
PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
index 76cfe61fc777b9378477e6bbe0b0b63034c3d338..00524786f4bb39bfd25d5e24fa27e9792c236b47 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
@@ -13,13 +13,13 @@
stdenv.mkDerivation rec {
pname = "switchboard-plug-display";
- version = "2.1.8";
+ version = "2.1.9";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "1xpgkvcv3bylpaj7c80727vr55vilkgjvnlbw7d5pr56v6mv7n9j";
+ sha256 = "0g9apywxgkan82h933rjjdm9fhd8vak8mziwsbqlprdz310b2jb2";
};
passthru = {
@@ -42,8 +42,6 @@ stdenv.mkDerivation rec {
switchboard
];
- PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard";
-
meta = with stdenv.lib; {
description = "Switchboard Displays Plug";
homepage = https://github.com/elementary/switchboard-plug-display;
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
index 8b82543a0e5fea6e86a96fd28ab783735abc5ebc..e31355b7b7ed757952c8456b1cf998aeb63dda40 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
@@ -1,6 +1,7 @@
{ stdenv
, fetchFromGitHub
, pantheon
+, fetchpatch
, substituteAll
, meson
, ninja
@@ -55,6 +56,11 @@ stdenv.mkDerivation rec {
src = ./xkb.patch;
config = "${xorg.xkeyboardconfig}/share/X11/xkb/rules/evdev.xml";
})
+ # Fix build with latest vala.
+ (fetchpatch {
+ url = "https://github.com/elementary/switchboard-plug-keyboard/commit/28fa960f607f0b1d67f2864965a079bdfc23e3a8.patch";
+ sha256 = "0121qcg8n7gkz7gpwrxc1cx0nnypj02zy2jmp3cks5r9sc0yi0hw";
+ })
];
PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
index aa9cdfa0ddde93383c4a19f02645c4ce7fb3dd4c..fd1719814b826e69dccd933c3c811cbb865e9115 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
@@ -1,5 +1,6 @@
{ stdenv
, fetchFromGitHub
+, fetchpatch
, pantheon
, meson
, ninja
@@ -54,6 +55,14 @@ stdenv.mkDerivation rec {
webkitgtk
];
+ patches = [
+ # Fix build with latest vala
+ (fetchpatch {
+ url = "https://github.com/elementary/switchboard-plug-onlineaccounts/commit/5fa2882f765076d20c6ef4886198a34a05159f8a.patch";
+ sha256 = "1szryyy7shdmbvx9yhpi0bhzaayg7hl6pq2c456j1qf9kfv0m4hf";
+ })
+ ];
+
PKG_CONFIG_LIBACCOUNTS_GLIB_PROVIDERFILESDIR = "${placeholder "out"}/share/accounts/providers";
PKG_CONFIG_LIBACCOUNTS_GLIB_SERVICEFILESDIR = "${placeholder "out"}/share/accounts/services";
PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
index d1feaaf0ea4ff5c5622dff749c3c5c76443f5509..aa65934acdb2df2cbe78d59aa699df6c4df082f6 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
@@ -1,5 +1,6 @@
{ stdenv
, fetchFromGitHub
+, fetchpatch
, pantheon
, meson
, ninja
@@ -44,6 +45,14 @@ stdenv.mkDerivation rec {
switchboard
];
+ patches = [
+ # Fix build with latest vala.
+ (fetchpatch {
+ url = "https://github.com/elementary/switchboard-plug-printers/commit/3175c2ebf106145a95355d2571e0a2aa4834e884.patch";
+ sha256 = "1b2q48a1284037nz79vjcrz8g2qpsyg7s5rag6bfp03a1ijb7gw3";
+ })
+ ];
+
PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard";
meta = with stdenv.lib; {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
index fd67440a43c2fd395e3f7ebc6416352f37c7b117..5c72af923975c570e756bc663807d0eed5655029 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
@@ -18,13 +18,13 @@
stdenv.mkDerivation rec {
pname = "switchboard-plug-security-privacy";
- version = "2.2.1";
+ version = "2.2.2";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "0k2bq7l0m7qfpy1mkb3qvsinqd8n4lp0vwz3x64wlgfn2qipm1fn";
+ sha256 = "1dwq9rqswgnnglhrgcpvrp6shn3pb4x8f8f23x84sqakb430idp7";
};
passthru = {
@@ -51,8 +51,6 @@ stdenv.mkDerivation rec {
zeitgeist
];
- PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard";
-
patches = [
./hardcode-gsettings.patch
];
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/hardcode-gsettings.patch b/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/hardcode-gsettings.patch
index ffaf1ecf5db122855ee5f17f439dbc8302b2186f..24a104248f82b0407bb9e9c532b008148fe91314 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/hardcode-gsettings.patch
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/hardcode-gsettings.patch
@@ -1,25 +1,22 @@
diff --git a/src/Views/FirewallPanel.vala b/src/Views/FirewallPanel.vala
-index 994c4d1..5702de2 100644
+index 0335c29..481b1c8 100644
--- a/src/Views/FirewallPanel.vala
+++ b/src/Views/FirewallPanel.vala
-@@ -49,10 +49,13 @@ public class SecurityPrivacy.FirewallPanel : Granite.SimpleSettingsPage {
+@@ -49,7 +49,11 @@ public class SecurityPrivacy.FirewallPanel : Granite.SimpleSettingsPage {
}
construct {
- settings = new Settings ("io.elementary.switchboard.security-privacy");
+ SettingsSchemaSource sss = new SettingsSchemaSource.from_directory ("@SWITCHBOARD_SEC_PRIV_GSETTINGS_PATH@", SettingsSchemaSource.get_default (), true);
+ SettingsSchema security_privacy_schema = sss.lookup ("io.elementary.switchboard.security-privacy", false);
++
+ settings = new Settings.full (security_privacy_schema, null, null);
+
disabled_rules = new Gee.HashMap ();
load_disabled_rules ();
--
-+
- status_switch.notify["active"].connect (() => {
- if (loading == false) {
- view.sensitive = status_switch.active;
+
diff --git a/src/Views/LockPanel.vala b/src/Views/LockPanel.vala
-index 081cf10..42f6118 100644
+index 4f523f9..7135a83 100644
--- a/src/Views/LockPanel.vala
+++ b/src/Views/LockPanel.vala
@@ -30,7 +30,10 @@ public class SecurityPrivacy.LockPanel : Granite.SimpleSettingsPage {
@@ -32,5 +29,5 @@ index 081cf10..42f6118 100644
+
+ locker = new Settings.full (locker_schema, null, null);
- var lock_suspend_label = new Gtk.Label (_("Lock on sleep:"));
+ var lock_suspend_label = new Gtk.Label (_("Lock on suspend:"));
var lock_suspend_switch = new Gtk.Switch ();
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
index 87ae233916d8dfec64af9f87a4b1bc2826d080bf..57e7fe6af4412e17da9e8eb19e6ce5110c406a74 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
@@ -1,5 +1,6 @@
{ stdenv
, fetchFromGitHub
+, fetchpatch
, pantheon
, meson
, ninja
@@ -42,6 +43,14 @@ stdenv.mkDerivation rec {
switchboard
];
+ patches = [
+ # Fix build with latest vala
+ (fetchpatch {
+ url = "https://github.com/elementary/switchboard-plug-sharing/commit/22c9d52577a2e8c36c840a99009420266a39e1fe.patch";
+ sha256 = "0rbf1yxhc7k44cwikd45mv2g6slzw0rkwn5s38q3yxai9jnpvqch";
+ })
+ ];
+
PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard";
meta = with stdenv.lib; {
diff --git a/pkgs/desktops/pantheon/apps/switchboard/default.nix b/pkgs/desktops/pantheon/apps/switchboard/default.nix
index 5c10cc0e9e4b26c0a9ac832bd3f849b234bab4bf..30f870671eee653c2c438abf11e30daec54f3f76 100644
--- a/pkgs/desktops/pantheon/apps/switchboard/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard/default.nix
@@ -11,20 +11,19 @@
, granite
, gettext
, clutter-gtk
-, libunity
, elementary-icon-theme
, wrapGAppsHook
}:
stdenv.mkDerivation rec {
pname = "switchboard";
- version = "2.3.6";
+ version = "2.3.7";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "0lsrn636b0f9a58jbid6mlhgrf8ajnh7phwmhgxz55sz7k7qa58g";
+ sha256 = "160aar5dqd019vn28cm0d0ijj1i6mwpqkl7a1l4lpasw12drxwxz";
};
passthru = {
@@ -49,7 +48,6 @@ stdenv.mkDerivation rec {
granite
gtk3
libgee
- libunity
];
patches = [
diff --git a/pkgs/desktops/pantheon/apps/switchboard/plugs-path-env.patch b/pkgs/desktops/pantheon/apps/switchboard/plugs-path-env.patch
index f5d8567bffed69f45929a1b8faf105e463f65182..d5931d59ec9a196dd2a58a010d467dacde5857e9 100644
--- a/pkgs/desktops/pantheon/apps/switchboard/plugs-path-env.patch
+++ b/pkgs/desktops/pantheon/apps/switchboard/plugs-path-env.patch
@@ -1,13 +1,9 @@
diff --git a/lib/PlugsManager.vala b/lib/PlugsManager.vala
-index 75d0eaf..c227908 100644
+index 8b21e7b..bc36321 100644
--- a/lib/PlugsManager.vala
+++ b/lib/PlugsManager.vala
-@@ -34,10 +34,18 @@ public class Switchboard.PlugsManager : GLib.Object {
- private Gee.LinkedList plugs;
-
- public signal void plug_added (Switchboard.Plug plug);
--
-+
+@@ -36,7 +36,15 @@ public class Switchboard.PlugsManager : GLib.Object {
+
private PlugsManager () {
plugs = new Gee.LinkedList ();
- var base_folder = File.new_for_path (Build.PLUGS_DIR);
diff --git a/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
index fe9db999bb6ccb214433cc4b61ab83e975b74cd9..34a87a6cb167a5e75d5c5755591bbe2b454215f2 100644
--- a/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
+++ b/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
@@ -3,11 +3,12 @@
, pantheon
, meson
, ninja
+, gettext
}:
stdenv.mkDerivation rec {
pname = "elementary-gtk-theme";
- version = "5.2.5";
+ version = "5.3.0";
repoName = "stylesheet";
@@ -15,7 +16,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "0934rfdwkn4315mhayzba8a3b6i1xczp66gl6n45hh5c81gb2p65";
+ sha256 = "0kxzgqgzbkwi0h4r7zc5yl57k8cm165d1ki1nzmb442wp42q438y";
};
passthru = {
@@ -26,6 +27,7 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs = [
+ gettext
meson
ninja
];
diff --git a/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
index bdf42b1c1ef0a3814d1f8cb68b011670726789d0..1fba6a949d6bba60e33ad2de3a8a04038fb346d3 100644
--- a/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
+++ b/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
@@ -10,7 +10,7 @@
stdenv.mkDerivation rec {
pname = "elementary-icon-theme";
- version = "5.0.4";
+ version = "5.1.0";
repoName = "icons";
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "0ha7biqvmkv68x1gi9bfcn5z0ld067pa5czx0pyf053pa86lg3hx";
+ sha256 = "1yrf92ysjh1yfm42wznlw0lh9zsm5whghwzx3b3wcdkwdhkdg24z";
};
passthru = {
@@ -39,6 +39,8 @@ stdenv.mkDerivation rec {
hicolor-icon-theme
];
+ dontDropIconThemeCache = true;
+
mesonFlags = [
"-Dvolume_icons=false" # Tries to install some icons to /
"-Dpalettes=false" # Don't install gimp and inkscape palette files
diff --git a/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix b/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix
index 30145541750f896b815ab1726368d7a8e9392484..c48dd761e0815c05eb06d0a29bf5ec56a3969f94 100644
--- a/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix
+++ b/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix
@@ -5,7 +5,7 @@
stdenv.mkDerivation rec {
pname = "elementary-wallpapers";
- version = "5.3";
+ version = "5.4";
repoName = "wallpapers";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "1i0zf9gzhwm8hgq5cp1xnxipqjvgzd9wfiicz612hgp6ivc0z0ag";
+ sha256 = "1ihvv9v8m5f2n2v3bgg769l52wbg241zgp3d45q6phk7p8s1gz3s";
};
passthru = {
diff --git a/pkgs/desktops/pantheon/default.nix b/pkgs/desktops/pantheon/default.nix
index 039d75beb4f2efa8eefbc0fb6dcec58685f49136..9e5391243bd1babc0aee9e8f48b9c9dab3e641c3 100644
--- a/pkgs/desktops/pantheon/default.nix
+++ b/pkgs/desktops/pantheon/default.nix
@@ -1,4 +1,4 @@
-{ pkgs, lib, gnome3 }:
+{ config, pkgs, lib, gnome3 }:
lib.makeScope pkgs.newScope (self: with self; {
@@ -18,6 +18,7 @@ lib.makeScope pkgs.newScope (self: with self; {
];
desktop = [
+ elementary-default-settings
elementary-session-settings
elementary-shortcut-overlay
gala
@@ -58,7 +59,6 @@ lib.makeScope pkgs.newScope (self: with self; {
maintainers = with pkgs.stdenv.lib.maintainers; [ worldofpeace ];
mutter = pkgs.gnome3.mutter328;
- vala = pkgs.vala_0_40;
elementary-gsettings-schemas = callPackage ./desktop/elementary-gsettings-schemas { };
@@ -66,6 +66,8 @@ lib.makeScope pkgs.newScope (self: with self; {
#### APPS
+ appcenter = callPackage ./apps/appcenter { };
+
elementary-calculator = callPackage ./apps/elementary-calculator { };
elementary-calendar = callPackage ./apps/elementary-calendar { };
@@ -76,6 +78,8 @@ lib.makeScope pkgs.newScope (self: with self; {
elementary-files = callPackage ./apps/elementary-files { };
+ elementary-feedback = callPackage ./apps/elementary-feedback { };
+
elementary-music = callPackage ./apps/elementary-music { };
elementary-photos = callPackage ./apps/elementary-photos { };
@@ -86,13 +90,15 @@ lib.makeScope pkgs.newScope (self: with self; {
elementary-videos = callPackage ./apps/elementary-videos { };
+ sideload = callPackage ./apps/sideload { };
+
#### DESKTOP
elementary-default-settings = callPackage ./desktop/elementary-default-settings { };
- elementary-greeter = callPackage ./desktop/elementary-greeter {
- inherit (gnome3) gnome-desktop;
- };
+ elementary-greeter = callPackage ./desktop/elementary-greeter { };
+
+ elementary-onboarding = callPackage ./desktop/elementary-onboarding { };
elementary-print-shim = callPackage ./desktop/elementary-print-shim { };
@@ -221,4 +227,10 @@ lib.makeScope pkgs.newScope (self: with self; {
elementary-wallpapers = callPackage ./artwork/elementary-wallpapers { };
+} // lib.optionalAttrs (config.allowAliases or true) {
+
+ ### ALIASES
+
+ inherit (pkgs) vala; # added 2019-10-10
+
})
diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/0001-Build-with-Meson.patch b/pkgs/desktops/pantheon/desktop/elementary-default-settings/0001-Build-with-Meson.patch
new file mode 100644
index 0000000000000000000000000000000000000000..3a0b3812450c82c3b41d3583071f0938f392fff0
--- /dev/null
+++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/0001-Build-with-Meson.patch
@@ -0,0 +1,309 @@
+From f728ac670d8f6bb7600a007d92034b711471fab6 Mon Sep 17 00:00:00 2001
+From: worldofpeace
+Date: Sat, 13 Jul 2019 19:06:20 -0400
+Subject: [PATCH 1/2] Build with Meson
+
+Has the following meson build options:
+* default-wallpaper
+* plank-dockitems
+* default-gsettings-overrides
+
+All default to true.
+
+We also split the default-settings gsettings override into another that
+only sets plank's default dockitems. This is installed when plank-dockitems
+is true. We need to have this because those settings are dependent on
+those dockitems actually being installed and we have it optional.
+---
+ accountsservice/create-symlink.py | 24 ++++++
+ accountsservice/meson.build | 25 ++++++
+ .../appcenter.blacklist | 0
+ .../default-testpage.pdf | Bin
+ settings.ini => gtk/settings.ini | 0
+ .inputrc => inputrc/.inputrc | 0
+ meson.build | 79 ++++++++++++++++++
+ meson/post_install.py | 12 +++
+ meson_options.txt | 14 ++++
+ ...e => default-settings.gschema.override.in} | 3 +-
+ overrides/meson.build | 21 +++++
+ overrides/plank-dockitems.gschema.override | 2 +
+ .../sessioninstaller.desktop | 0
+ 13 files changed, 178 insertions(+), 2 deletions(-)
+ create mode 100644 accountsservice/create-symlink.py
+ create mode 100644 accountsservice/meson.build
+ rename appcenter.blacklist => appcenter/appcenter.blacklist (100%)
+ rename default-testpage.pdf => cups/default-testpage.pdf (100%)
+ rename settings.ini => gtk/settings.ini (100%)
+ rename .inputrc => inputrc/.inputrc (100%)
+ create mode 100644 meson.build
+ create mode 100755 meson/post_install.py
+ create mode 100644 meson_options.txt
+ rename overrides/{default-settings.gschema.override => default-settings.gschema.override.in} (92%)
+ create mode 100644 overrides/meson.build
+ create mode 100644 overrides/plank-dockitems.gschema.override
+ rename sessioninstaller.desktop => sessioninstaller/sessioninstaller.desktop (100%)
+
+diff --git a/accountsservice/create-symlink.py b/accountsservice/create-symlink.py
+new file mode 100644
+index 0000000..e502134
+--- /dev/null
++++ b/accountsservice/create-symlink.py
+@@ -0,0 +1,24 @@
++#!/usr/bin/env python3
++
++import os
++import sys
++
++if len(sys.argv) < 3:
++ print('Usage: create-symlink.py SOURCE DESTINATION')
++ sys.exit(1)
++
++src = sys.argv[1]
++dest = sys.argv[2]
++
++if 'MESON_INSTALL_DESTDIR_PREFIX' in os.environ:
++ src = os.path.join(os.environ['MESON_INSTALL_DESTDIR_PREFIX'], src)
++ dest = os.path.join(os.environ['MESON_INSTALL_DESTDIR_PREFIX'], dest)
++
++if os.path.isabs(src):
++ src = os.path.relpath(src, os.path.dirname(os.path.realpath(dest)))
++
++if not os.path.exists(dest):
++ print('Creating symbolic link: ' + dest + ' -> ' + src)
++ if not os.path.exists(os.path.dirname(dest)):
++ os.makedirs(os.path.dirname(dest))
++ os.symlink(src, dest)
+diff --git a/accountsservice/meson.build b/accountsservice/meson.build
+new file mode 100644
+index 0000000..6d18459
+--- /dev/null
++++ b/accountsservice/meson.build
+@@ -0,0 +1,25 @@
++dbus_dep = dependency('dbus-1')
++dbus_interfaces_dir = dbus_dep.get_pkgconfig_variable('interfaces_dir', define_variable: ['datadir', datadir])
++
++install_data(
++ 'io.elementary.pantheon.AccountsService.xml',
++ install_dir: dbus_interfaces_dir
++)
++
++
++polkit_dep = dependency('polkit-gobject-1')
++polkit_actiondir = polkit_dep.get_pkgconfig_variable('actiondir', define_variable: ['prefix', prefix])
++
++install_data(
++ 'io.elementary.pantheon.AccountsService.policy',
++ install_dir: polkit_actiondir
++)
++
++act_dep = dependency('accountsservice')
++act_interfacesdir = act_dep.get_pkgconfig_variable('interfacesdir', define_variable: ['datadir', datadir])
++
++meson.add_install_script(
++ 'create-symlink.py',
++ join_paths(dbus_interfaces_dir, 'io.elementary.pantheon.AccountsService.xml'),
++ join_paths(act_interfacesdir, 'io.elementary.pantheon.AccountsService.xml'),
++)
+diff --git a/appcenter.blacklist b/appcenter/appcenter.blacklist
+similarity index 100%
+rename from appcenter.blacklist
+rename to appcenter/appcenter.blacklist
+diff --git a/default-testpage.pdf b/cups/default-testpage.pdf
+similarity index 100%
+rename from default-testpage.pdf
+rename to cups/default-testpage.pdf
+diff --git a/settings.ini b/gtk/settings.ini
+similarity index 100%
+rename from settings.ini
+rename to gtk/settings.ini
+diff --git a/.inputrc b/inputrc/.inputrc
+similarity index 100%
+rename from .inputrc
+rename to inputrc/.inputrc
+diff --git a/meson.build b/meson.build
+new file mode 100644
+index 0000000..7740a34
+--- /dev/null
++++ b/meson.build
+@@ -0,0 +1,79 @@
++project(
++ 'elementary-default-settings',
++ version: '5.1.0',
++ default_options: 'sysconfdir=/etc',
++)
++
++prefix = get_option('prefix')
++datadir = join_paths(prefix, get_option('datadir'))
++sysconfdir = get_option('sysconfdir')
++
++meson.add_install_script('meson/post_install.py', datadir)
++
++# Planks Default DockItems
++if get_option('plank-dockitems')
++ install_subdir(
++ 'plank',
++ install_dir: join_paths(sysconfdir, 'skel', '.config')
++ )
++endif
++
++# Setup system wide global environment for applications
++install_subdir(
++ 'profile.d',
++ install_dir: join_paths(sysconfdir, 'profile.d'),
++ strip_directory : true
++)
++
++# elementary Plymouth Theme
++install_subdir(
++ 'plymouth/elementary',
++ install_dir: join_paths(datadir, 'plymouth', 'themes')
++)
++
++install_data(
++ 'plymouth/ubuntu-text.plymouth',
++ install_dir: join_paths(datadir, 'plymouth', 'themes')
++)
++
++# Sudo password feedback in terminals
++install_data(
++ 'sudoers.d/pwfeedback',
++ install_dir: join_paths(sysconfdir, 'sudoers.d')
++)
++
++# CUPS Printing testpage
++install_data(
++ 'cups/default-testpage.pdf',
++ install_dir: join_paths(datadir, 'cups', 'data')
++)
++
++# GTK3 Settings
++install_data(
++ 'gtk/settings.ini',
++ install_dir: join_paths(sysconfdir, 'gtk-3.0')
++)
++
++# So SessionInstaller can have an Icon
++install_data(
++ 'sessioninstaller/sessioninstaller.desktop',
++ install_dir: join_paths(datadir, 'applications')
++)
++
++# Default Appcenter Blacklist
++install_data(
++ 'appcenter/appcenter.blacklist',
++ install_dir: join_paths(sysconfdir, 'appcenter')
++)
++
++# Configuration file of GNU readline
++install_data(
++ 'inputrc/.inputrc',
++ install_dir: join_paths(sysconfdir, 'skel')
++)
++
++# Default gsettings overrides
++subdir('overrides')
++
++# AccountsService extension for Greeter.
++subdir('accountsservice')
+diff --git a/meson/post_install.py b/meson/post_install.py
+new file mode 100755
+index 0000000..c6b5617
+--- /dev/null
++++ b/meson/post_install.py
+@@ -0,0 +1,12 @@
++#!/usr/bin/env python3
++
++import os
++import sys
++import subprocess
++
++if 'DESTDIR' not in os.environ:
++ default_settings_datadir = sys.argv[1]
++
++ print('Compiling GSettings schemas...')
++ subprocess.call(['glib-compile-schemas',
++ os.path.join(default_settings_datadir, 'glib-2.0', 'schemas')])
+diff --git a/meson_options.txt b/meson_options.txt
+new file mode 100644
+index 0000000..8fd19ba
+--- /dev/null
++++ b/meson_options.txt
+@@ -0,0 +1,14 @@
++option('default-wallpaper',
++ type: 'string',
++ value: '/usr/share/backgrounds/elementaryos-default',
++ description: 'Path to default wallpaper to use in Pantheon.')
++
++option('plank-dockitems',
++ type: 'boolean',
++ value: true,
++ description: 'Install default Pantheon Plank dockitems')
++
++option('default-gsettings-overrides',
++ type: 'boolean',
++ value: true,
++ description: 'Install default Pantheon GSettings Overrides')
+diff --git a/overrides/default-settings.gschema.override b/overrides/default-settings.gschema.override.in
+similarity index 92%
+rename from overrides/default-settings.gschema.override
+rename to overrides/default-settings.gschema.override.in
+index 1aef29c..69d272b 100644
+--- a/overrides/default-settings.gschema.override
++++ b/overrides/default-settings.gschema.override.in
+@@ -1,5 +1,4 @@
+ [net.launchpad.plank.dock.settings]
+-dock-items=['gala-multitaskingview.dockitem','org.gnome.Epiphany.dockitem','org.pantheon.mail.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.switchboard.dockitem','io.elementary.appcenter.dockitem']
+ hide-delay=250
+ hide-mode='window-dodge'
+ show-dock-item=false
+@@ -11,7 +10,7 @@ triggers=['space']
+ [org.gnome.desktop.background]
+ draw-background=true
+ picture-options='zoom'
+-picture-uri='file:///usr/share/backgrounds/elementaryos-default'
++picture-uri='file://@DEFAULT_WALLPAPER@'
+ primary-color='#000000'
+ show-desktop-icons=false
+
+diff --git a/overrides/meson.build b/overrides/meson.build
+new file mode 100644
+index 0000000..ad80644
+--- /dev/null
++++ b/overrides/meson.build
+@@ -0,0 +1,21 @@
++if get_option('default-gsettings-overrides')
++ default_wallpaper = get_option('default-wallpaper')
++
++ wallpaper_configuration = configuration_data()
++ wallpaper_configuration.set('DEFAULT_WALLPAPER', default_wallpaper)
++
++ settings_override = configure_file(
++ input: 'default-settings.gschema.override.in',
++ output: '@BASENAME@',
++ configuration: wallpaper_configuration,
++ install_dir: join_paths(datadir, 'glib-2.0', 'schemas')
++ )
++endif
++
++# Install conditionally because it's dependent on our dockitems being installed
++if get_option('plank-dockitems')
++ install_data(
++ 'plank-dockitems.gschema.override',
++ install_dir: join_paths(datadir, 'glib-2.0', 'schemas')
++ )
++endif
+diff --git a/overrides/plank-dockitems.gschema.override b/overrides/plank-dockitems.gschema.override
+new file mode 100644
+index 0000000..72b38d4
+--- /dev/null
++++ b/overrides/plank-dockitems.gschema.override
+@@ -0,0 +1,2 @@
++[net.launchpad.plank.dock.settings]
++dock-items=['gala-multitaskingview.dockitem','org.gnome.Epiphany.dockitem','org.pantheon.mail.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.switchboard.dockitem','io.elementary.appcenter.dockitem']
+diff --git a/sessioninstaller.desktop b/sessioninstaller/sessioninstaller.desktop
+similarity index 100%
+rename from sessioninstaller.desktop
+rename to sessioninstaller/sessioninstaller.desktop
+--
+2.23.0
+
diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/correct-override.patch b/pkgs/desktops/pantheon/desktop/elementary-default-settings/correct-override.patch
deleted file mode 100644
index 1b2dc835706da60b17dbdb10ebcb1ea0e6bb59f9..0000000000000000000000000000000000000000
--- a/pkgs/desktops/pantheon/desktop/elementary-default-settings/correct-override.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff --git a/overrides/default-settings.gschema.override b/overrides/default-settings.gschema.override
-index 1aef29c..08de164 100644
---- a/overrides/default-settings.gschema.override
-+++ b/overrides/default-settings.gschema.override
-@@ -1,5 +1,5 @@
- [net.launchpad.plank.dock.settings]
--dock-items=['gala-multitaskingview.dockitem','org.gnome.Epiphany.dockitem','org.pantheon.mail.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.switchboard.dockitem','io.elementary.appcenter.dockitem']
-+dock-items=['gala-multitaskingview.dockitem','org.gnome.Epiphany.dockitem','org.gnome.Geary.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.switchboard.dockitem']
- hide-delay=250
- hide-mode='window-dodge'
- show-dock-item=false
-@@ -8,13 +8,6 @@ theme='Gtk+'
- [org.freedesktop.ibus.general.hotkey]
- triggers=['space']
-
--[org.gnome.desktop.background]
--draw-background=true
--picture-options='zoom'
--picture-uri='file:///usr/share/backgrounds/elementaryos-default'
--primary-color='#000000'
--show-desktop-icons=false
--
- [org.gnome.desktop.datetime]
- automatic-timezone=true
-
diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix b/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
index a1a69ee303fe05bd078acb60f840562f1ba8b9cc..f20f119749931a923076ad5e6e6986eb4301830a 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
@@ -1,11 +1,20 @@
{ stdenv
, fetchFromGitHub
, pantheon
+, meson
+, ninja
+, nixos-artwork
+, glib
+, pkgconfig
+, dbus
+, polkit
+, accountsservice
+, python3
}:
stdenv.mkDerivation rec {
pname = "elementary-default-settings";
- version = "5.1.0";
+ version = "5.1.1";
repoName = "default-settings";
@@ -13,7 +22,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "0l73py4rr56i4dalb2wh1c6qiwmcjkm0l1j75jp5agcnxldh5wym";
+ sha256 = "10sdy8v34y6bgb3mabwy7k3b5dbqrnab504dvhashpfxr9n9xncy";
};
passthru = {
@@ -24,24 +33,54 @@ stdenv.mkDerivation rec {
};
patches = [
- ./correct-override.patch
+ # https://github.com/elementary/default-settings/pull/119
+ ./0001-Build-with-Meson.patch
];
- dontBuild = true;
- dontConfigure = true;
+ nativeBuildInputs = [
+ accountsservice
+ dbus
+ glib # polkit requires
+ meson
+ ninja
+ pkgconfig
+ polkit
+ python3
+ ];
+
+ mesonFlags = [
+ "--sysconfdir=${placeholder "out"}/etc"
+ "-Ddefault-wallpaper=${nixos-artwork.wallpapers.simple-dark-gray}/share/artwork/gnome/nix-wallpaper-simple-dark-gray.png"
+ "-Dplank-dockitems=false"
+ ];
- installPhase = ''
- mkdir -p $out/etc/gtk-3.0
- cp -av settings.ini $out/etc/gtk-3.0
+ postPatch = ''
+ chmod +x meson/post_install.py
+ patchShebangs meson/post_install.py
+ '';
- mkdir -p $out/share/glib-2.0/schemas
- cp -av overrides/default-settings.gschema.override $out/share/glib-2.0/schemas/20-io.elementary.desktop.gschema.override
+ preInstall = ''
+ # Install our override for plank dockitems.
+ # This is because we don't have Pantheon's mail or Appcenter.
+ # See: https://github.com/NixOS/nixpkgs/issues/58161
+ schema_dir=$out/share/glib-2.0/schemas
+ install -D ${./overrides/plank-dockitems.gschema.override} $schema_dir/plank-dockitems.gschema.override
+
+ # Our launchers that use paths at /run/current-system/sw/bin
+ mkdir -p $out/etc/skel/.config/plank/dock1
+ cp -avr ${./launchers} $out/etc/skel/.config/plank/dock1/launchers
+
+ # Whitelist wingpanel indicators to be used in the greeter
+ # TODO: is this needed or installed upstream?
+ install -D ${./io.elementary.greeter.whitelist} $out/etc/wingpanel.d/io.elementary.greeter.whitelist
+ '';
- mkdir $out/etc/wingpanel.d
- cp -avr ${./io.elementary.greeter.whitelist} $out/etc/wingpanel.d/io.elementary.greeter.whitelist
+ postFixup = ''
+ # https://github.com/elementary/default-settings/issues/55
+ rm -rf $out/share/plymouth
+ rm -rf $out/share/cups
- mkdir -p $out/share/elementary/config/plank/dock1
- cp -avr ${./launchers} $out/share/elementary/config/plank/dock1/launchers
+ rm -rf $out/share/applications
'';
meta = with stdenv.lib; {
diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override b/pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override
new file mode 100644
index 0000000000000000000000000000000000000000..671448745c5064716c7abebb13b3ac875a4c8c76
--- /dev/null
+++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override
@@ -0,0 +1,2 @@
+[net.launchpad.plank.dock.settings]
+dock-items=['gala-multitaskingview.dockitem','org.gnome.Epiphany.dockitem','org.gnome.Geary.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.switchboard.dockitem']
diff --git a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
index 8ef85b90a3b1ae4893411405224354bbcd566fb3..440893935f8181b7b92ab9b78ae10ea1ada6226b 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
@@ -1,12 +1,34 @@
-{ stdenv, fetchFromGitHub, pantheon, pkgconfig, substituteAll, meson
-, ninja, vala, desktop-file-utils, gtk3, granite, libgee, elementary-settings-daemon
-, gnome-desktop, mutter, elementary-icon-theme, wingpanel-with-indicators
-, elementary-gtk-theme, nixos-artwork, lightdm, numlockx
-, clutter-gtk, libGL, dbus, wrapGAppsHook }:
+{ stdenv
+, fetchFromGitHub
+, linkFarm
+, substituteAll
+, elementary-greeter
+, pantheon
+, pkgconfig
+, meson
+, ninja
+, vala
+, desktop-file-utils
+, gtk3
+, granite
+, libgee
+, elementary-settings-daemon
+, mutter
+, elementary-icon-theme
+, wingpanel-with-indicators
+, elementary-gtk-theme
+, nixos-artwork
+, lightdm
+, gdk-pixbuf
+, clutter-gtk
+, dbus
+, accountsservice
+, wrapGAppsHook
+}:
stdenv.mkDerivation rec {
pname = "elementary-greeter";
- version = "3.3.1";
+ version = "5.0.1";
repoName = "greeter";
@@ -14,7 +36,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "1vkq4z0hrmvzv4sh2qkxjajdxcycd1zj97a3pc8n4yb858pqfyzc";
+ sha256 = "0qy6iw71p8hv6fpcr7p3hqbzlcpxrz18qdm1inannq68d0pxfx76";
};
passthru = {
@@ -22,6 +44,11 @@ stdenv.mkDerivation rec {
inherit repoName;
attrPath = pname;
};
+
+ xgreeters = linkFarm "pantheon-greeter-xgreeters" [{
+ path = "${elementary-greeter}/share/xgreeters/io.elementary.greeter.desktop";
+ name = "io.elementary.greeter.desktop";
+ }];
};
nativeBuildInputs = [
@@ -34,38 +61,37 @@ stdenv.mkDerivation rec {
];
buildInputs = [
- clutter-gtk
- elementary-icon-theme
+ accountsservice
+ clutter-gtk # else we get could not generate cargs for mutter-clutter-2
elementary-gtk-theme
+ elementary-icon-theme
elementary-settings-daemon
- gnome-desktop
+ gdk-pixbuf
granite
gtk3
libgee
- libGL
lightdm
mutter
wingpanel-with-indicators
];
- patches = [
- (substituteAll {
- src = ./gsd.patch;
- elementary_settings_daemon = "${elementary-settings-daemon}/libexec/";
- })
- (substituteAll {
- src = ./numlockx.patch;
- inherit numlockx;
- })
- ./01-sysconfdir-install.patch
- ./hardcode-theme.patch
- ];
-
mesonFlags = [
# A hook does this but after wrapGAppsHook so the files never get wrapped.
"--sbindir=${placeholder "out"}/bin"
# baked into the program for discovery of the greeter configuration
"--sysconfdir=/etc"
+ # We use the patched gnome-settings-daemon
+ "-Dubuntu-patched-gsd=true"
+ "-Dgsd-dir=${elementary-settings-daemon}/libexec/" # trailing slash is needed
+ ];
+
+ patches = [
+ ./sysconfdir-install.patch
+ # Needed until https://github.com/elementary/greeter/issues/360 is fixed
+ (substituteAll {
+ src = ./hardcode-fallback-background.patch;
+ default_wallpaper = "${nixos-artwork.wallpapers.simple-dark-gray}/share/artwork/gnome/nix-wallpaper-simple-dark-gray.png";
+ })
];
preFixup = ''
@@ -76,18 +102,19 @@ stdenv.mkDerivation rec {
# for `wingpanel -g`
--prefix PATH : "${wingpanel-with-indicators}/bin"
- # TODO: they should be using meson for this
- # See: https://github.com/elementary/greeter/blob/19c0730fded4e9ddec5a491f0e78f83c7c04eb59/src/PantheonGreeter.vala#L451
+ # for the compositor
--prefix PATH : "$out/bin"
)
'';
postFixup = ''
- substituteInPlace $out/share/xgreeters/io.elementary.greeter.desktop \
- --replace "Exec=io.elementary.greeter" "Exec=$out/bin/io.elementary.greeter"
-
+ # Use NixOS default wallpaper
substituteInPlace $out/etc/lightdm/io.elementary.greeter.conf \
- --replace "#default-wallpaper=/usr/share/backgrounds/elementaryos-default" "default-wallpaper=${nixos-artwork.wallpapers.simple-dark-gray}/share/artwork/gnome/nix-wallpaper-simple-dark-gray.png"
+ --replace "#default-wallpaper=/usr/share/backgrounds/elementaryos-default" \
+ "default-wallpaper=${nixos-artwork.wallpapers.simple-dark-gray}/share/artwork/gnome/nix-wallpaper-simple-dark-gray.png"
+
+ substituteInPlace $out/share/xgreeters/io.elementary.greeter.desktop \
+ --replace "Exec=io.elementary.greeter" "Exec=$out/bin/io.elementary.greeter"
'';
meta = with stdenv.lib; {
diff --git a/pkgs/desktops/pantheon/desktop/elementary-greeter/gsd.patch b/pkgs/desktops/pantheon/desktop/elementary-greeter/gsd.patch
deleted file mode 100644
index bcbf604c6a2ec2c0eed17fe2ab20ede8ca82413f..0000000000000000000000000000000000000000
--- a/pkgs/desktops/pantheon/desktop/elementary-greeter/gsd.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/meson.build b/src/meson.build
-index 2450c1a..a908d11 100644
---- a/src/meson.build
-+++ b/src/meson.build
-@@ -1,7 +1,7 @@
- conf_data = configuration_data()
- conf_data.set('CONF_DIR', join_paths(get_option('sysconfdir'), 'lightdm'))
- conf_data.set('GETTEXT_PACKAGE', meson.project_name())
--conf_data.set('GSD_DIR', '/usr/lib/gnome-settings-daemon/')
-+conf_data.set('GSD_DIR', '@elementary_settings_daemon@')
- conf_data.set('VERSION', meson.project_version())
- config_header = configure_file (
- input: 'config.vala.in',
diff --git a/pkgs/desktops/pantheon/desktop/elementary-greeter/hardcode-fallback-background.patch b/pkgs/desktops/pantheon/desktop/elementary-greeter/hardcode-fallback-background.patch
new file mode 100644
index 0000000000000000000000000000000000000000..7d2afe7b16c3d659ccc722485e6aeffa59bc4021
--- /dev/null
+++ b/pkgs/desktops/pantheon/desktop/elementary-greeter/hardcode-fallback-background.patch
@@ -0,0 +1,22 @@
+diff --git a/src/Widgets/BackgroundImage.vala b/src/Widgets/BackgroundImage.vala
+index ae9431c..f0f2a49 100644
+--- a/src/Widgets/BackgroundImage.vala
++++ b/src/Widgets/BackgroundImage.vala
+@@ -9,7 +9,7 @@ public class Greeter.BackgroundImage : Gtk.EventBox {
+
+ public BackgroundImage (string? path) {
+ if (path == null) {
+- path = "/usr/share/backgrounds/elementaryos-default";
++ path = "@default_wallpaper@";
+ }
+
+ try {
+@@ -19,7 +19,7 @@ public class Greeter.BackgroundImage : Gtk.EventBox {
+ critical ("Fallback to default wallpaper");
+
+ try {
+- full_pixbuf = new Gdk.Pixbuf.from_file ("/usr/share/backgrounds/elementaryos-default");
++ full_pixbuf = new Gdk.Pixbuf.from_file ("@default_wallpaper@");
+ } catch (GLib.Error e) {
+ critical (e.message);
+ }
diff --git a/pkgs/desktops/pantheon/desktop/elementary-greeter/hardcode-theme.patch b/pkgs/desktops/pantheon/desktop/elementary-greeter/hardcode-theme.patch
deleted file mode 100644
index e9263aab736e880784de220d20d5d095c5cc2c30..0000000000000000000000000000000000000000
--- a/pkgs/desktops/pantheon/desktop/elementary-greeter/hardcode-theme.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/src/PantheonGreeter.vala b/src/PantheonGreeter.vala
-index 11aa4c0..daf4a8a 100644
---- a/src/PantheonGreeter.vala
-+++ b/src/PantheonGreeter.vala
-@@ -474,6 +474,10 @@ public static int main (string [] args) {
- Gdk.CursorType.LEFT_PTR);
- Gdk.get_default_root_window ().set_cursor (cursor);
-
-+ var settings = Gtk.Settings.get_default ();
-+ settings.gtk_icon_theme_name = "elementary";
-+ settings.gtk_theme_name = "elementary";
-+
- var icon_theme = Gtk.IconTheme.get_default ();
- icon_theme.add_resource_path ("/io/elementary/greeter/icons");
-
diff --git a/pkgs/desktops/pantheon/desktop/elementary-greeter/numlockx.patch b/pkgs/desktops/pantheon/desktop/elementary-greeter/numlockx.patch
deleted file mode 100644
index 2c7766b4284c909a7c565bd70c66647f6ca3abb7..0000000000000000000000000000000000000000
--- a/pkgs/desktops/pantheon/desktop/elementary-greeter/numlockx.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/PantheonGreeter.vala b/src/PantheonGreeter.vala
-index 11aa4c0..ae7bf7e 100644
---- a/src/PantheonGreeter.vala
-+++ b/src/PantheonGreeter.vala
-@@ -163,7 +163,7 @@ public class PantheonGreeter : Gtk.Window {
- warning (e.message);
- }
- if (activate_numlock) {
-- Granite.Services.System.execute_command ("/usr/bin/numlockx on");
-+ Granite.Services.System.execute_command ("@numlockx@/bin/numlockx on");
- }
-
- var screensaver_timeout = 60;
diff --git a/pkgs/desktops/pantheon/desktop/elementary-greeter/01-sysconfdir-install.patch b/pkgs/desktops/pantheon/desktop/elementary-greeter/sysconfdir-install.patch
similarity index 68%
rename from pkgs/desktops/pantheon/desktop/elementary-greeter/01-sysconfdir-install.patch
rename to pkgs/desktops/pantheon/desktop/elementary-greeter/sysconfdir-install.patch
index 626e56ce59608e961ac21e8e6afbe4a8ee4f1dbb..9bacbcf4f98b7d183cfd3be0f463bd5f3b12cc2c 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-greeter/01-sysconfdir-install.patch
+++ b/pkgs/desktops/pantheon/desktop/elementary-greeter/sysconfdir-install.patch
@@ -1,14 +1,14 @@
-From 2384bee55a46eac44eb9d329be4c2a097e053ae1 Mon Sep 17 00:00:00 2001
+From 7bb0d507cbb0122f167127b9f6460bd53d8234de Mon Sep 17 00:00:00 2001
From: worldofpeace
-Date: Tue, 17 Jul 2018 07:04:18 -0400
-Subject: [PATCH 1/1] 'sysconfdir' will be etc not /etc for install
+Date: Sat, 16 Mar 2019 16:07:24 -0400
+Subject: [PATCH] 'sysconfdir' will be etc not /etc for install
---
data/meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/data/meson.build b/data/meson.build
-index 7621b03..7c08eaf 100644
+index fd54b75..b1120ae 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -20,7 +20,7 @@ i18n.merge_file (
@@ -19,7 +19,7 @@ index 7621b03..7c08eaf 100644
+ install_dir: join_paths(get_option('prefix'), 'etc', 'lightdm')
)
- install_data(
+ test (
--
-2.17.1
+2.19.2
diff --git a/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix b/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix
index 9fc4418e7ca12326e771a3d1dc96b5aa7e983e1b..38e57539de42c574dfe4df27deb50da5a97cdfb8 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix
@@ -41,13 +41,9 @@ runCommand "elementary-gsettings-desktop-schemas" {}
${concatMapStrings (pkg: "cp -rf ${glib.getSchemaPath pkg}/*.xml $schema_dir\n") gsettingsOverridePackages}
chmod -R a+w $out/share/gsettings-schemas/nixos-gsettings-overrides
- cp ${elementary-default-settings}/share/glib-2.0/schemas/20-io.elementary.desktop.gschema.override $schema_dir
+ cp ${glib.getSchemaPath elementary-default-settings}/* $schema_dir
cat - > $schema_dir/nixos-defaults.gschema.override <<- EOF
- [org.gnome.desktop.background]
- picture-uri='file://${nixos-artwork.wallpapers.simple-dark-gray}/share/artwork/gnome/nix-wallpaper-simple-dark-gray.png'
- primary-color='#000000'
-
${extraGSettingsOverrides}
EOF
diff --git a/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix b/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix
new file mode 100644
index 0000000000000000000000000000000000000000..3ee55a141b82976b27ed4154191785020c8e03ce
--- /dev/null
+++ b/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix
@@ -0,0 +1,79 @@
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, fetchpatch
+, pkgconfig
+, meson
+, ninja
+, vala
+, python3
+, gtk3
+, glib
+, granite
+, libgee
+, elementary-icon-theme
+, elementary-gtk-theme
+, gettext
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "elementary-onboarding";
+ version = "1.0.1";
+
+ repoName = "onboarding";
+
+ src = fetchFromGitHub {
+ owner = "elementary";
+ repo = repoName;
+ rev = version;
+ sha256 = "025i9av4waqwp1gn8d6sjp8qdwg2j3jskxhmyf9qxbzwfc5msysg";
+ };
+
+ passthru = {
+ updateScript = pantheon.updateScript {
+ inherit repoName;
+ attrPath = pname;
+ };
+ };
+
+ nativeBuildInputs = [
+ gettext
+ meson
+ ninja
+ pkgconfig
+ python3
+ vala
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ elementary-icon-theme
+ granite
+ gtk3
+ elementary-gtk-theme
+ libgee
+ glib
+ ];
+
+ patches = [
+ # Make sure we use our logo from /etc/os-release
+ (fetchpatch {
+ url = "https://github.com/elementary/onboarding/commit/03975bacb75741d3dd391a126217e415f43c6059.patch";
+ sha256 = "1yw7dysav90abxnmkv86bc60dyl8nvi0sgaiz8v39cc2x00rqsg1";
+ })
+ ];
+
+ postPatch = ''
+ chmod +x meson/post_install.py
+ patchShebangs meson/post_install.py
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Onboarding app for new users designed for elementary OS";
+ homepage = https://github.com/elementary/onboarding;
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ maintainers = pantheon.maintainers;
+ };
+}
diff --git a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default-elementary-dockitems.desktop b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default-elementary-dockitems.desktop
deleted file mode 100644
index 517a9457ae10afcc7c54cfaf81229dd8093ef18d..0000000000000000000000000000000000000000
--- a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default-elementary-dockitems.desktop
+++ /dev/null
@@ -1,8 +0,0 @@
-[Desktop Entry]
-Type=Application
-Name=Instantiate Default elementary dockitems
-Exec=@script@
-StartupNotify=false
-NoDisplay=true
-OnlyShowIn=Pantheon;
-X-GNOME-Autostart-Phase=EarlyInitialization
diff --git a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
index 7b0657bcd80b1287cdded371edd8ead0b38b0a9f..ab7333212a05c064c340ff9c1e64f22d0a7d11c8 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
@@ -10,9 +10,12 @@
, onboard
, at-spi2-core
, elementary-default-settings
-, writeShellScriptBin
, elementary-settings-daemon
, runtimeShell
+, writeText
+, meson
+, ninja
+, git
}:
let
@@ -33,26 +36,32 @@ let
#!${runtimeShell}
elementary_default_settings="${elementary-default-settings}"
- dock_items="$elementary_default_settings/share/elementary/config/plank/dock1/launchers"/*
+ dock_items="$elementary_default_settings/etc/skel/.config/plank/dock1/launchers"/*
if [ ! -d "$HOME/.config/plank/dock1" ]; then
echo "Instantiating default Plank Dockitems..."
- mkdir -p $HOME/.config/plank/dock1/launchers
- cp -r --no-preserve=mode,ownership $dock_items $HOME/.config/plank/dock1/launchers/
+ mkdir -p "$HOME/.config/plank/dock1/launchers"
+ cp -r --no-preserve=mode,ownership $dock_items "$HOME/.config/plank/dock1/launchers/"
else
echo "Plank Dockitems already instantiated"
fi
'';
- dockitemAutostart = substituteAll {
- src = ./default-elementary-dockitems.desktop;
- script = dockitems-script;
- };
+ dockitemAutostart = writeText "default-elementary-dockitems.desktop" ''
+ [Desktop Entry]
+ Type=Application
+ Name=Instantiate Default elementary dockitems
+ Exec=${dockitems-script}
+ StartupNotify=false
+ NoDisplay=true
+ OnlyShowIn=Pantheon;
+ X-GNOME-Autostart-Phase=EarlyInitialization
+ '';
- executable = writeShellScriptBin "pantheon" ''
- export XDG_CONFIG_DIRS=${elementary-settings-daemon}/etc/xdg:$XDG_CONFIG_DIRS
- export XDG_DATA_DIRS=${placeholder "out"}/share:$XDG_DATA_DIRS
+ executable = writeScript "pantheon" ''
+ export XDG_CONFIG_DIRS=${elementary-settings-daemon}/etc/xdg:${elementary-default-settings}/etc:$XDG_CONFIG_DIRS
+ export XDG_DATA_DIRS=@out@/share:$XDG_DATA_DIRS
exec ${gnome-session}/bin/gnome-session --session=pantheon "$@"
'';
@@ -71,17 +80,23 @@ stdenv.mkDerivation rec {
sha256 = "1vrjm7bklkfv0dyafm312v4hxzy6lb7p1ny4ijkn48kr719gc71k";
};
- passthru = {
- updateScript = pantheon.updateScript {
- inherit repoName;
- attrPath = pname;
- };
- };
+ postPatch = ''
+ ${git}/bin/git apply --verbose ${./meson.patch}
+ '';
- dontBuild = true;
- dontConfigure = true;
+ nativeBuildInputs = [
+ meson
+ ninja
+ ];
- installPhase = ''
+ mesonFlags = [
+ "-Ddefaults-list=false"
+ "-Dpatched-gsd-autostarts=false"
+ "-Dpatched-ubuntu-autostarts=false"
+ "-Dfallback-session=GNOME"
+ ];
+
+ postInstall = ''
mkdir -p $out/share/applications
cp -av ${./pantheon-mimeapps.list} $out/share/applications/pantheon-mimeapps.list
@@ -92,16 +107,14 @@ stdenv.mkDerivation rec {
cp "${dockitemAutostart}" $out/etc/xdg/autostart/default-elementary-dockitems.desktop
- mkdir -p $out/share/gnome-session/sessions
- cp -av gnome-session/pantheon.session $out/share/gnome-session/sessions
-
- mkdir -p $out/share/xsessions
- cp -av xsessions/pantheon.desktop $out/share/xsessions
+ mkdir -p $out/libexec
+ substitute ${executable} $out/libexec/pantheon --subst-var out
+ chmod +x $out/libexec/pantheon
'';
postFixup = ''
substituteInPlace $out/share/xsessions/pantheon.desktop \
- --replace "gnome-session --session=pantheon" "${executable}/bin/pantheon" \
+ --replace "gnome-session --session=pantheon" "$out/libexec/pantheon" \
--replace "wingpanel" "${wingpanel}/bin/wingpanel"
for f in $out/etc/xdg/autostart/*; do mv "$f" "''${f%.desktop}-pantheon.desktop"; done
@@ -113,6 +126,13 @@ stdenv.mkDerivation rec {
done
'';
+ passthru = {
+ updateScript = pantheon.updateScript {
+ inherit repoName;
+ attrPath = pname;
+ };
+ };
+
meta = with stdenv.lib; {
description = "Session settings for elementary";
homepage = https://github.com/elementary/session-settings;
diff --git a/pkgs/desktops/pantheon/desktop/elementary-session-settings/meson.patch b/pkgs/desktops/pantheon/desktop/elementary-session-settings/meson.patch
new file mode 100644
index 0000000000000000000000000000000000000000..39d155656612d7f02cf06bf11f7e7c7cae9346da
--- /dev/null
+++ b/pkgs/desktops/pantheon/desktop/elementary-session-settings/meson.patch
@@ -0,0 +1,272 @@
+From 0a20ad6a31c74f4f96e9ed3613ec6c16a94ede39 Mon Sep 17 00:00:00 2001
+From: worldofpeace
+Date: Thu, 8 Aug 2019 11:25:37 -0400
+Subject: [PATCH] Build with Meson (#13)
+
+---
+ applications/meson.build | 4 ++++
+ ...ettingsDaemon.A11ySettings-pantheon.desktop | 0
+ ...e.SettingsDaemon.Clipboard-pantheon.desktop | 0
+ ...gnome.SettingsDaemon.Color-pantheon.desktop | 0
+ ...me.SettingsDaemon.Datetime-pantheon.desktop | 0
+ ...ettingsDaemon.Housekeeping-pantheon.desktop | 0
+ ...me.SettingsDaemon.Keyboard-pantheon.desktop | 0
+ ...e.SettingsDaemon.MediaKeys-pantheon.desktop | 0
+ ...gnome.SettingsDaemon.Mouse-pantheon.desktop | 0
+ ...gnome.SettingsDaemon.Power-pantheon.desktop | 0
+ ...sDaemon.PrintNotifications-pantheon.desktop | 0
+ ...nome.SettingsDaemon.Rfkill-pantheon.desktop | 0
+ ...ome.SettingsDaemon.Sharing-pantheon.desktop | 0
+ ...e.SettingsDaemon.Smartcard-pantheon.desktop | 0
+ ...gnome.SettingsDaemon.Sound-pantheon.desktop | 0
+ ...gnome.SettingsDaemon.Wacom-pantheon.desktop | 0
+ ...e.SettingsDaemon.XSettings-pantheon.desktop | 0
+ autostart/meson.build | 18 ++++++++++++++++++
+ .../gnome-keyring-gpg-pantheon.desktop | 0
+ .../gnome-keyring-pkcs11-pantheon.desktop | 0
+ .../gnome-keyring-secrets-pantheon.desktop | 0
+ .../gnome-keyring-ssh-pantheon.desktop | 0
+ .../onboard-autostart-pantheon.desktop | 0
+ .../orca-autostart-pantheon.desktop | 0
+ .../user-dirs-update-gtk-pantheon.desktop | 0
+ gnome-session/meson.build | 11 +++++++++++
+ .../{pantheon.session => pantheon.session.in} | 2 +-
+ meson.build | 14 ++++++++++++++
+ meson_options.txt | 11 +++++++++++
+ xsessions/meson.build | 4 ++++
+ 30 files changed, 63 insertions(+), 1 deletion(-)
+ create mode 100644 applications/meson.build
+ rename autostart/{ => gsd}/org.gnome.SettingsDaemon.A11ySettings-pantheon.desktop (100%)
+ rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Clipboard-pantheon.desktop (100%)
+ rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Color-pantheon.desktop (100%)
+ rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Datetime-pantheon.desktop (100%)
+ rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Housekeeping-pantheon.desktop (100%)
+ rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Keyboard-pantheon.desktop (100%)
+ rename autostart/{ => gsd}/org.gnome.SettingsDaemon.MediaKeys-pantheon.desktop (100%)
+ rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Mouse-pantheon.desktop (100%)
+ rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Power-pantheon.desktop (100%)
+ rename autostart/{ => gsd}/org.gnome.SettingsDaemon.PrintNotifications-pantheon.desktop (100%)
+ rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Rfkill-pantheon.desktop (100%)
+ rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Sharing-pantheon.desktop (100%)
+ rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Smartcard-pantheon.desktop (100%)
+ rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Sound-pantheon.desktop (100%)
+ rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Wacom-pantheon.desktop (100%)
+ rename autostart/{ => gsd}/org.gnome.SettingsDaemon.XSettings-pantheon.desktop (100%)
+ create mode 100644 autostart/meson.build
+ rename autostart/{ => ubuntu}/gnome-keyring-gpg-pantheon.desktop (100%)
+ rename autostart/{ => ubuntu}/gnome-keyring-pkcs11-pantheon.desktop (100%)
+ rename autostart/{ => ubuntu}/gnome-keyring-secrets-pantheon.desktop (100%)
+ rename autostart/{ => ubuntu}/gnome-keyring-ssh-pantheon.desktop (100%)
+ rename autostart/{ => ubuntu}/onboard-autostart-pantheon.desktop (100%)
+ rename autostart/{ => ubuntu}/orca-autostart-pantheon.desktop (100%)
+ rename autostart/{ => ubuntu}/user-dirs-update-gtk-pantheon.desktop (100%)
+ create mode 100644 gnome-session/meson.build
+ rename gnome-session/{pantheon.session => pantheon.session.in} (94%)
+ create mode 100644 meson.build
+ create mode 100644 meson_options.txt
+ create mode 100644 xsessions/meson.build
+
+diff --git a/applications/meson.build b/applications/meson.build
+new file mode 100644
+index 0000000..d03b92b
+--- /dev/null
++++ b/applications/meson.build
+@@ -0,0 +1,4 @@
++install_data(
++ 'defaults.list',
++ install_dir: join_paths(datadir, 'applications')
++)
+diff --git a/autostart/org.gnome.SettingsDaemon.A11ySettings-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.A11ySettings-pantheon.desktop
+similarity index 100%
+rename from autostart/org.gnome.SettingsDaemon.A11ySettings-pantheon.desktop
+rename to autostart/gsd/org.gnome.SettingsDaemon.A11ySettings-pantheon.desktop
+diff --git a/autostart/org.gnome.SettingsDaemon.Clipboard-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Clipboard-pantheon.desktop
+similarity index 100%
+rename from autostart/org.gnome.SettingsDaemon.Clipboard-pantheon.desktop
+rename to autostart/gsd/org.gnome.SettingsDaemon.Clipboard-pantheon.desktop
+diff --git a/autostart/org.gnome.SettingsDaemon.Color-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Color-pantheon.desktop
+similarity index 100%
+rename from autostart/org.gnome.SettingsDaemon.Color-pantheon.desktop
+rename to autostart/gsd/org.gnome.SettingsDaemon.Color-pantheon.desktop
+diff --git a/autostart/org.gnome.SettingsDaemon.Datetime-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Datetime-pantheon.desktop
+similarity index 100%
+rename from autostart/org.gnome.SettingsDaemon.Datetime-pantheon.desktop
+rename to autostart/gsd/org.gnome.SettingsDaemon.Datetime-pantheon.desktop
+diff --git a/autostart/org.gnome.SettingsDaemon.Housekeeping-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Housekeeping-pantheon.desktop
+similarity index 100%
+rename from autostart/org.gnome.SettingsDaemon.Housekeeping-pantheon.desktop
+rename to autostart/gsd/org.gnome.SettingsDaemon.Housekeeping-pantheon.desktop
+diff --git a/autostart/org.gnome.SettingsDaemon.Keyboard-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Keyboard-pantheon.desktop
+similarity index 100%
+rename from autostart/org.gnome.SettingsDaemon.Keyboard-pantheon.desktop
+rename to autostart/gsd/org.gnome.SettingsDaemon.Keyboard-pantheon.desktop
+diff --git a/autostart/org.gnome.SettingsDaemon.MediaKeys-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.MediaKeys-pantheon.desktop
+similarity index 100%
+rename from autostart/org.gnome.SettingsDaemon.MediaKeys-pantheon.desktop
+rename to autostart/gsd/org.gnome.SettingsDaemon.MediaKeys-pantheon.desktop
+diff --git a/autostart/org.gnome.SettingsDaemon.Mouse-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Mouse-pantheon.desktop
+similarity index 100%
+rename from autostart/org.gnome.SettingsDaemon.Mouse-pantheon.desktop
+rename to autostart/gsd/org.gnome.SettingsDaemon.Mouse-pantheon.desktop
+diff --git a/autostart/org.gnome.SettingsDaemon.Power-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Power-pantheon.desktop
+similarity index 100%
+rename from autostart/org.gnome.SettingsDaemon.Power-pantheon.desktop
+rename to autostart/gsd/org.gnome.SettingsDaemon.Power-pantheon.desktop
+diff --git a/autostart/org.gnome.SettingsDaemon.PrintNotifications-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.PrintNotifications-pantheon.desktop
+similarity index 100%
+rename from autostart/org.gnome.SettingsDaemon.PrintNotifications-pantheon.desktop
+rename to autostart/gsd/org.gnome.SettingsDaemon.PrintNotifications-pantheon.desktop
+diff --git a/autostart/org.gnome.SettingsDaemon.Rfkill-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Rfkill-pantheon.desktop
+similarity index 100%
+rename from autostart/org.gnome.SettingsDaemon.Rfkill-pantheon.desktop
+rename to autostart/gsd/org.gnome.SettingsDaemon.Rfkill-pantheon.desktop
+diff --git a/autostart/org.gnome.SettingsDaemon.Sharing-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Sharing-pantheon.desktop
+similarity index 100%
+rename from autostart/org.gnome.SettingsDaemon.Sharing-pantheon.desktop
+rename to autostart/gsd/org.gnome.SettingsDaemon.Sharing-pantheon.desktop
+diff --git a/autostart/org.gnome.SettingsDaemon.Smartcard-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Smartcard-pantheon.desktop
+similarity index 100%
+rename from autostart/org.gnome.SettingsDaemon.Smartcard-pantheon.desktop
+rename to autostart/gsd/org.gnome.SettingsDaemon.Smartcard-pantheon.desktop
+diff --git a/autostart/org.gnome.SettingsDaemon.Sound-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Sound-pantheon.desktop
+similarity index 100%
+rename from autostart/org.gnome.SettingsDaemon.Sound-pantheon.desktop
+rename to autostart/gsd/org.gnome.SettingsDaemon.Sound-pantheon.desktop
+diff --git a/autostart/org.gnome.SettingsDaemon.Wacom-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Wacom-pantheon.desktop
+similarity index 100%
+rename from autostart/org.gnome.SettingsDaemon.Wacom-pantheon.desktop
+rename to autostart/gsd/org.gnome.SettingsDaemon.Wacom-pantheon.desktop
+diff --git a/autostart/org.gnome.SettingsDaemon.XSettings-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.XSettings-pantheon.desktop
+similarity index 100%
+rename from autostart/org.gnome.SettingsDaemon.XSettings-pantheon.desktop
+rename to autostart/gsd/org.gnome.SettingsDaemon.XSettings-pantheon.desktop
+diff --git a/autostart/meson.build b/autostart/meson.build
+new file mode 100644
+index 0000000..265088b
+--- /dev/null
++++ b/autostart/meson.build
+@@ -0,0 +1,18 @@
++autostartdir = join_paths(get_option('sysconfdir'), 'xdg', 'autostart')
++
++if get_option('patched-gsd-autostarts')
++ install_subdir(
++ 'gsd',
++ install_dir: autostartdir,
++ strip_directory: true
++ )
++endif
++
++
++if get_option('patched-ubuntu-autostarts')
++ install_subdir(
++ 'ubuntu',
++ install_dir: autostartdir,
++ strip_directory: true
++ )
++endif
+diff --git a/autostart/gnome-keyring-gpg-pantheon.desktop b/autostart/ubuntu/gnome-keyring-gpg-pantheon.desktop
+similarity index 100%
+rename from autostart/gnome-keyring-gpg-pantheon.desktop
+rename to autostart/ubuntu/gnome-keyring-gpg-pantheon.desktop
+diff --git a/autostart/gnome-keyring-pkcs11-pantheon.desktop b/autostart/ubuntu/gnome-keyring-pkcs11-pantheon.desktop
+similarity index 100%
+rename from autostart/gnome-keyring-pkcs11-pantheon.desktop
+rename to autostart/ubuntu/gnome-keyring-pkcs11-pantheon.desktop
+diff --git a/autostart/gnome-keyring-secrets-pantheon.desktop b/autostart/ubuntu/gnome-keyring-secrets-pantheon.desktop
+similarity index 100%
+rename from autostart/gnome-keyring-secrets-pantheon.desktop
+rename to autostart/ubuntu/gnome-keyring-secrets-pantheon.desktop
+diff --git a/autostart/gnome-keyring-ssh-pantheon.desktop b/autostart/ubuntu/gnome-keyring-ssh-pantheon.desktop
+similarity index 100%
+rename from autostart/gnome-keyring-ssh-pantheon.desktop
+rename to autostart/ubuntu/gnome-keyring-ssh-pantheon.desktop
+diff --git a/autostart/onboard-autostart-pantheon.desktop b/autostart/ubuntu/onboard-autostart-pantheon.desktop
+similarity index 100%
+rename from autostart/onboard-autostart-pantheon.desktop
+rename to autostart/ubuntu/onboard-autostart-pantheon.desktop
+diff --git a/autostart/orca-autostart-pantheon.desktop b/autostart/ubuntu/orca-autostart-pantheon.desktop
+similarity index 100%
+rename from autostart/orca-autostart-pantheon.desktop
+rename to autostart/ubuntu/orca-autostart-pantheon.desktop
+diff --git a/autostart/user-dirs-update-gtk-pantheon.desktop b/autostart/ubuntu/user-dirs-update-gtk-pantheon.desktop
+similarity index 100%
+rename from autostart/user-dirs-update-gtk-pantheon.desktop
+rename to autostart/ubuntu/user-dirs-update-gtk-pantheon.desktop
+diff --git a/gnome-session/meson.build b/gnome-session/meson.build
+new file mode 100644
+index 0000000..b9245a1
+--- /dev/null
++++ b/gnome-session/meson.build
+@@ -0,0 +1,11 @@
++fallback_session = get_option('fallback-session')
++
++session_configuration = configuration_data()
++session_configuration.set('FALLBACK_SESSION', fallback_session)
++
++pantheon_session = configure_file(
++ input: 'pantheon.session.in',
++ output: '@BASENAME@',
++ configuration: session_configuration,
++ install_dir: join_paths(datadir, 'gnome-session', 'sessions')
++)
+diff --git a/gnome-session/pantheon.session b/gnome-session/pantheon.session.in
+similarity index 94%
+rename from gnome-session/pantheon.session
+rename to gnome-session/pantheon.session.in
+index 1626393..7bc1814 100644
+--- a/gnome-session/pantheon.session
++++ b/gnome-session/pantheon.session.in
+@@ -1,5 +1,5 @@
+ [GNOME Session]
+ Name=Pantheon
+ RequiredComponents=gala;gala-daemon;org.gnome.SettingsDaemon.A11ySettings;org.gnome.SettingsDaemon.Clipboard;org.gnome.SettingsDaemon.Color;org.gnome.SettingsDaemon.Datetime;org.gnome.SettingsDaemon.Housekeeping;org.gnome.SettingsDaemon.Keyboard;org.gnome.SettingsDaemon.MediaKeys;org.gnome.SettingsDaemon.Mouse;org.gnome.SettingsDaemon.Power;org.gnome.SettingsDaemon.PrintNotifications;org.gnome.SettingsDaemon.Rfkill;org.gnome.SettingsDaemon.Sharing;org.gnome.SettingsDaemon.Smartcard;org.gnome.SettingsDaemon.Sound;org.gnome.SettingsDaemon.Wacom;org.gnome.SettingsDaemon.XSettings;
+-FallbackSession=ubuntu
++FallbackSession=@FALLBACK_SESSION@
+ DesktopName=Pantheon
+diff --git a/meson.build b/meson.build
+new file mode 100644
+index 0000000..a7d3195
+--- /dev/null
++++ b/meson.build
+@@ -0,0 +1,14 @@
++project('elementary-session-settings',
++ version: '5.0.3',
++ default_options: 'sysconfdir=/etc')
++
++prefix = get_option('prefix')
++datadir = join_paths(prefix, get_option('datadir'))
++
++if get_option('defaults-list')
++ subdir('applications')
++endif
++
++subdir('autostart')
++subdir('gnome-session')
++subdir('xsessions')
+diff --git a/meson_options.txt b/meson_options.txt
+new file mode 100644
+index 0000000..4c5ac2d
+--- /dev/null
++++ b/meson_options.txt
+@@ -0,0 +1,11 @@
++option('defaults-list', type : 'boolean', value: true,
++ description : 'Install defaults.list')
++
++option('patched-gsd-autostarts', type : 'boolean', value: true,
++ description : 'Install patched GNOME Settings Daemon autostarts')
++
++option('patched-ubuntu-autostarts', type : 'boolean', value: true,
++ description : 'Install patched Ubuntu autostarts')
++
++option('fallback-session', type : 'string', value: 'ubuntu',
++ description : 'Fallback session to use for Pantheon')
+diff --git a/xsessions/meson.build b/xsessions/meson.build
+new file mode 100644
+index 0000000..d144291
+--- /dev/null
++++ b/xsessions/meson.build
+@@ -0,0 +1,4 @@
++install_data(
++ 'pantheon.desktop',
++ install_dir: join_paths(datadir, 'xsessions')
++)
diff --git a/pkgs/desktops/pantheon/desktop/gala/default.nix b/pkgs/desktops/pantheon/desktop/gala/default.nix
index b80e93279c8f91b70170230e21b9834f5ab513b7..4b75b3bff56bd7829c35aa4c0619048d4a01c074 100644
--- a/pkgs/desktops/pantheon/desktop/gala/default.nix
+++ b/pkgs/desktops/pantheon/desktop/gala/default.nix
@@ -26,13 +26,13 @@
stdenv.mkDerivation rec {
pname = "gala";
- version = "unstable-2019-07-21"; # Is tracking https://github.com/elementary/gala/commits/stable/juno
+ version = "unstable-2019-10-31"; # Is tracking https://github.com/elementary/gala/commits/stable/juno
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
- rev = "50694796d4c8f0ca92517d5a628b0efdf748279c";
- sha256 = "17d0hd2145mrf8y5ws3xypdbwj72qv7hrrp6p6lm4k16xd96yznr";
+ rev = "0f0724c97ad49f470f41c4a25c63103f51122997";
+ sha256 = "09cl3k2am878iiy76bijb0ykrcafh944kz027jgi1y5yk4bwfjc4";
};
passthru = {
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
index ae138c9215c1f1c897b3a7669be6c432b37f3f11..a266223eced8fd396e807b9d85f476946b14facb 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
@@ -26,7 +26,7 @@
stdenv.mkDerivation rec {
pname = "wingpanel-applications-menu";
- version = "2.4.3";
+ version = "2.4.4";
repoName = "applications-menu";
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "15mwfynaa57jii43x77iaz5gqjlylh5zxc70am8zgp8vhgzflvyd";
+ sha256 = "09ssxn264v6nzrxgk529kpdxq5j3b14z8mbwq0gni1bgjcla773d";
};
passthru = {
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
index 36d1cf0e77a315fe256c4a36d7c7756b723bf183..3a462219f1e630cee2acd3e31ac90bfdab0fa291 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
@@ -12,8 +12,6 @@
, wingpanel
, libgee
, libxml2
-, elementary-icon-theme
-, wrapGAppsHook
}:
stdenv.mkDerivation rec {
@@ -40,11 +38,9 @@ stdenv.mkDerivation rec {
pkgconfig
python3
vala
- wrapGAppsHook
];
buildInputs = [
- elementary-icon-theme
granite
gtk3
libgee
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
index 74408a4ed6d4940caf55b516e182176456d582a8..91549342052cd7fcaf1f3146963478c5de58b6f3 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
@@ -16,19 +16,32 @@
, libxml2
, libsoup
, elementary-calendar
-, elementary-icon-theme
-, wrapGAppsHook
+, fetchurl
}:
+let
+
+ # Terrible workaround https://github.com/elementary/wingpanel-indicator-datetime/issues/122
+ # Evolution Data Server functionality will be broken (events from calendar in indicator)
+ # but at least we don't fail to build.
+ old-evolution-data-server = evolution-data-server.overrideAttrs(old: {
+ src = fetchurl {
+ url = "mirror://gnome/sources/evolution-data-server/${stdenv.lib.versions.majorMinor "3.32.4"}/${old.pname}-3.32.4.tar.xz";
+ sha256 = "0zsc9xwy6ixk3x0dx69ax5isrdw8qxjdxg2i5fr95s40nss7rxl3";
+ };
+ });
+
+in
+
stdenv.mkDerivation rec {
pname = "wingpanel-indicator-datetime";
- version = "2.1.3";
+ version = "2.2.0";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "1y7a4xjwl3bpls56ys6g3s6mh5b3qbjm2vw7b6n2i4x7a63c4cbh";
+ sha256 = "1whdx0vgm0qbbzsw8dg2liz3cbh3ad5ybkriy4lmx5ynyhpbz0sx";
};
passthru = {
@@ -44,12 +57,10 @@ stdenv.mkDerivation rec {
pkgconfig
python3
vala
- wrapGAppsHook
];
buildInputs = [
- elementary-icon-theme
- evolution-data-server
+ old-evolution-data-server
granite
gtk3
libgee
@@ -58,31 +69,11 @@ stdenv.mkDerivation rec {
wingpanel
];
- patches = [
- # Use "clock-format" GSettings key that's been moved to granite
- (fetchpatch {
- url = "https://src.fedoraproject.org/rpms/wingpanel-indicator-datetime/raw/c8d515b76aa812c141212d5515621a6febd781a3/f/00-move-clock-format-settings-to-granite.patch";
- sha256 = "1sq3aw9ckkm057rnrclnw9lyrxbpl37fyzfnbixi2q3ypr70n880";
- })
- # See: https://github.com/elementary/wingpanel-indicator-datetime/pull/117
- (fetchpatch {
- url = "https://github.com/elementary/wingpanel-indicator-datetime/commit/4859e72a52d8dac5cad87b192fc912fb013b0ecd.patch";
- sha256 = "0jfhb5sax4sivdfx7il1rc1dvhy0yfv27qhvwbdy0hza9wf8q9k0";
- })
- ];
-
- PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder "out"}/lib/wingpanel";
-
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
- # launches elementary-calendar on selection
- preFixup = ''
- gappsWrapperArgs+=( --prefix PATH : "${elementary-calendar}/bin" )
- '';
-
meta = with stdenv.lib; {
description = "Date & Time Indicator for Wingpanel";
homepage = https://github.com/elementary/wingpanel-indicator-datetime;
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
index 5431b982f5400b07ad1664b5f6bf521611364cc8..02421f281646cc10e7bd9ce4b77204a78d8ad925 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
@@ -13,19 +13,17 @@
, libgee
, xorg
, libgnomekbd
-, elementary-icon-theme
-, wrapGAppsHook
}:
stdenv.mkDerivation rec {
pname = "wingpanel-indicator-keyboard";
- version = "2.1.2";
+ version = "2.2.0";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "0lrd474m6p8di73hqjilqnnl7qg72ky5narkgcvm4lk8dyi78mz0";
+ sha256 = "0jc12xfaj3micpjssxc7m6hzssvyq26ln5az05x5f1j6v8lccbyn";
};
passthru = {
@@ -40,11 +38,9 @@ stdenv.mkDerivation rec {
libxml2
pkgconfig
vala
- wrapGAppsHook
];
buildInputs = [
- elementary-icon-theme
granite
gtk3
libgee
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
index 6ba19ebf77ee85695a2e5a316368fd98d06a21ef..01a815404a648366e26ab31bc4c034d802ffaf09 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
@@ -11,8 +11,6 @@
, networkmanagerapplet
, wingpanel
, libgee
-, elementary-icon-theme
-, wrapGAppsHook
}:
stdenv.mkDerivation rec {
@@ -37,11 +35,9 @@ stdenv.mkDerivation rec {
ninja
pkgconfig
vala
- wrapGAppsHook
];
buildInputs = [
- elementary-icon-theme
granite
gtk3
libgee
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
index 0327d5e78e2cec60a57d708bac7fc5a28b6e5f51..3b50866c0ed9e0e1571b03dae6b2712a07268f1f 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
@@ -10,8 +10,6 @@
, wingpanel
, libgee
, libxml2
-, elementary-icon-theme
-, wrapGAppsHook
}:
stdenv.mkDerivation rec {
@@ -37,11 +35,9 @@ stdenv.mkDerivation rec {
ninja
pkgconfig
vala
- wrapGAppsHook
];
buildInputs = [
- elementary-icon-theme
granite
gtk3
libgee
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
index a4266a6f45957d6756429f97f6b1ab7707fba3ce..4dbf6528c70b734a39b67fa415224755c2c9a081 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
@@ -10,8 +10,6 @@
, wingpanel
, libgee
, libwnck3
-, elementary-icon-theme
-, wrapGAppsHook
}:
stdenv.mkDerivation rec {
@@ -36,11 +34,9 @@ stdenv.mkDerivation rec {
ninja
pkgconfig
vala
- wrapGAppsHook
];
buildInputs = [
- elementary-icon-theme
granite
gtk3
libgee
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
index 9f9d47030600379361de1c7f1120bfe171d7acf6..b989bada5711e1e48bb6c592a1801ff4a5d60b51 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
@@ -13,8 +13,6 @@
, udev
, wingpanel
, libgee
-, elementary-icon-theme
-, wrapGAppsHook
}:
stdenv.mkDerivation rec {
@@ -40,12 +38,10 @@ stdenv.mkDerivation rec {
pkgconfig
python3
vala
- wrapGAppsHook
];
buildInputs = [
bamf
- elementary-icon-theme
granite
gtk3
libgee
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
index f48638ff2b16c402b379efdc9699ada7126d8e2f..7efb03f9d665fbdd45598d8e4431967bf09014c8 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
@@ -10,8 +10,6 @@
, wingpanel
, accountsservice
, libgee
-, elementary-icon-theme
-, wrapGAppsHook
}:
stdenv.mkDerivation rec {
@@ -36,12 +34,10 @@ stdenv.mkDerivation rec {
ninja
pkgconfig
vala
- wrapGAppsHook
];
buildInputs = [
accountsservice
- elementary-icon-theme
granite
gtk3
libgee
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
index 038ab75094cd248c5548ecbeb91a2fc92ecf4915..fa89cca68c0eebedf235028fcb40f4c21b9a6174 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
@@ -14,8 +14,6 @@
, libcanberra-gtk3
, libgee
, libxml2
-, wrapGAppsHook
-, elementary-icon-theme
}:
stdenv.mkDerivation rec {
@@ -42,11 +40,9 @@ stdenv.mkDerivation rec {
pkgconfig
python3
vala
- wrapGAppsHook
];
buildInputs = [
- elementary-icon-theme
granite
gtk3
libcanberra-gtk3
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
index b98c205d49150560ad3de6ecf8df288366c2d59a..1fc7304feb2d669ac4f5540993500888982eb82c 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
@@ -14,17 +14,19 @@
, mutter
, json-glib
, python3
+, elementary-gtk-theme
+, elementary-icon-theme
}:
stdenv.mkDerivation rec {
pname = "wingpanel";
- version = "2.2.5";
+ version = "2.2.6";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "15pl3km8jfmlgrrb2fcabdd0rkc849arz6sc3vz6azzpln7gxbq7";
+ sha256 = "0q5jhg3gpcjfzfi7g33fv8pb916cqsgk6543b82yy97c20902ap9";
};
passthru = {
@@ -44,6 +46,8 @@ stdenv.mkDerivation rec {
];
buildInputs = [
+ elementary-gtk-theme
+ elementary-icon-theme
gala
granite
gtk3
diff --git a/pkgs/desktops/pantheon/granite/default.nix b/pkgs/desktops/pantheon/granite/default.nix
index 521d22d2335311b2d5ecb4b0291b04ed4657306b..ab673832857d40a58b74de243ff7f6e4feb22de8 100644
--- a/pkgs/desktops/pantheon/granite/default.nix
+++ b/pkgs/desktops/pantheon/granite/default.nix
@@ -1,6 +1,5 @@
{ stdenv
, fetchFromGitHub
-, fetchpatch
, python3
, meson
, ninja
@@ -11,31 +10,21 @@
, gtk3
, glib
, gettext
-, hicolor-icon-theme
, gobject-introspection
, wrapGAppsHook
}:
stdenv.mkDerivation rec {
pname = "granite";
- version = "5.2.3";
+ version = "5.2.5";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "10ddq1s2w4jvpzq813cylmqhh8pggzaz890fy3kzg07275i98gah";
+ sha256 = "0z40vhcp2w8s8rnc56pzvjc4s77bln8k84rwwypivjmk3lhpw1vi";
};
- patches = [
- # Resolve the circular dependency between granite and the datetime wingpanel indicator
- # See: https://github.com/elementary/granite/pull/242
- (fetchpatch {
- url = "https://src.fedoraproject.org/rpms/granite/raw/0550b44ed6400c9b1ff7e70871913747df2ff323/f/00-datetime-clock-format-gsettings.patch";
- sha256 = "0i9yvdmn77x5fjdwd1raw6ym8js8yxa7w6ydc7syx7hcyls00dmq";
- })
- ];
-
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
@@ -56,7 +45,6 @@ stdenv.mkDerivation rec {
buildInputs = [
glib
gtk3
- hicolor-icon-theme
libgee
];
diff --git a/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix b/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
index 67a67dd4b3d2c7c899123242f74239369f401818..d29178b220d87fb6ba2688373418396f89985c38 100644
--- a/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
+++ b/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
@@ -90,8 +90,6 @@ stdenv.mkDerivation rec {
'';
postFixup = ''
- for f in $out/etc/xdg/autostart/*; do mv "$f" "''${f%.desktop}-pantheon.desktop"; done
-
for autostart in $(grep -rl "OnlyShowIn=GNOME;" $out/etc/xdg/autostart)
do
echo "Patching OnlyShowIn to Pantheon in: $autostart"
@@ -100,7 +98,7 @@ stdenv.mkDerivation rec {
# This breaks lightlocker https://github.com/elementary/session-settings/commit/b0e7a2867608c3a3916f9e4e21a68264a20e44f8
# TODO: shouldn't be neeed for the 5.1 greeter (awaiting release)
- rm $out/etc/xdg/autostart/org.gnome.SettingsDaemon.ScreensaverProxy-pantheon.desktop
+ rm $out/etc/xdg/autostart/org.gnome.SettingsDaemon.ScreensaverProxy.desktop
# So the polkit policy can reference /run/current-system/sw/bin/elementary-settings-daemon/gsd-backlight-helper
mkdir -p $out/bin/elementary-settings-daemon
diff --git a/pkgs/desktops/pantheon/update.sh b/pkgs/desktops/pantheon/update.sh
index 9bbbe26003448e12fa1be873b1e74501de421255..8d002fe47c27e6269699712b53281310f791033b 100755
--- a/pkgs/desktops/pantheon/update.sh
+++ b/pkgs/desktops/pantheon/update.sh
@@ -114,13 +114,7 @@ EOF
function get_latest_tag ( ) {
repo_name="$1"
- # Using github release api because sorting this repo just doesn't work because of old git sillyness
- # Also too lazy to care to adapt `git ls-remote` command to work with it
- if [ $repo_name == "switchboard-plug-pantheon-shell" ]; then
- curl --silent --show-error --fail -X GET "https://api.github.com/repos/elementary/$repo_name/releases/latest" | jq -r '.tag_name'
- else
- git ls-remote --tags --sort="v:refname" "https://github.com/elementary/$repo_name" | tail -n1 | sed 's/.*\///; s/\^{}//'
- fi
+ curl --silent --show-error --fail -X GET "https://api.github.com/repos/elementary/$repo_name/releases/latest" | jq -r '.tag_name'
}
#
diff --git a/pkgs/desktops/plasma-5/breeze-plymouth/default.nix b/pkgs/desktops/plasma-5/breeze-plymouth/default.nix
index 48b038325fece8c13db59086d391380155b2830e..5b6abddbcda32aa5567257d63a6e827fa1ba0f82 100644
--- a/pkgs/desktops/plasma-5/breeze-plymouth/default.nix
+++ b/pkgs/desktops/plasma-5/breeze-plymouth/default.nix
@@ -8,37 +8,42 @@
imagemagick,
netpbm,
perl,
- # these will typically need to be set via an override
- # in a NixOS context
- nixosBranding ? false,
- nixosName ? "NixOS",
- nixosVersion ? "",
+ logoName ? null,
+ logoFile ? null,
+ osName ? null,
+ osVersion ? null,
topColor ? "black",
bottomColor ? "black"
}:
-let
- logoName = "nixos";
+let
+ validColors = [ "black" "cardboard_grey" "charcoal_grey" "icon_blue" "paper_white" "plasma_blue" "neon_blue" "neon_green" ];
+ resolvedLogoName = if (logoFile != null && logoName == null) then lib.strings.removeSuffix ".png" (baseNameOf(toString logoFile)) else logoName;
in
+ assert lib.asserts.assertOneOf "topColor" topColor validColors;
+ assert lib.asserts.assertOneOf "bottomColor" bottomColor validColors;
+
+
mkDerivation {
name = "breeze-plymouth";
nativeBuildInputs = [ extra-cmake-modules ];
- buildInputs = [ plymouth ] ++ lib.optionals nixosBranding [ imagemagick netpbm perl ];
+ buildInputs = [ plymouth ] ++ lib.optionals (logoFile != null) [ imagemagick netpbm perl ];
patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
- cmakeFlags = lib.optionals nixosBranding [
- "-DDISTRO_NAME=${nixosName}"
- "-DDISTRO_VERSION=${nixosVersion}"
- "-DDISTRO_LOGO=${logoName}"
- "-DBACKGROUND_TOP_COLOR=${topColor}"
- "-DBACKGROUND_BOTTOM_COLOR=${bottomColor}"
- ];
+ cmakeFlags = []
+ ++ lib.optional (osName != null) "-DDISTRO_NAME=${osName}"
+ ++ lib.optional (osVersion != null) "-DDISTRO_VERSION=${osVersion}"
+ ++ lib.optional (logoName != null) "-DDISTRO_LOGO=${logoName}"
+ ++ lib.optional (topColor != null) "-DBACKGROUND_TOP_COLOR=${topColor}"
+ ++ lib.optional (bottomColor != null) "-DBACKGROUND_BOTTOM_COLOR=${bottomColor}"
+ ;
+
postPatch = ''
substituteInPlace cmake/FindPlymouth.cmake --subst-var out
- '' + lib.optionalString nixosBranding ''
- cp ${nixos-icons}/share/icons/hicolor/128x128/apps/nix-snowflake.png breeze/images/${logoName}.logo.png
+ '' + lib.optionalString (logoFile != null) ''
+ cp ${logoFile} breeze/images/${resolvedLogoName}.logo.png
# conversion for 16bit taken from the breeze-plymouth readme
- convert ${nixos-icons}/share/icons/hicolor/128x128/apps/nix-snowflake.png -alpha Background -background "#000000" -fill "#000000" -flatten tmp.png
- pngtopnm tmp.png | pnmquant 16 | pnmtopng > breeze/images/16bit/${logoName}.logo.png
+ convert ${logoFile} -alpha Background -background "#000000" -fill "#000000" -flatten tmp.png
+ pngtopnm tmp.png | pnmquant 16 | pnmtopng > breeze/images/16bit/${resolvedLogoName}.logo.png
'';
}
diff --git a/pkgs/desktops/plasma-5/kdecoration.nix b/pkgs/desktops/plasma-5/kdecoration.nix
index 569da3c703499766f243fcae9274e7e8b1087380..3f2e9be462d826503c76fb2bd7b16aaefba8de66 100644
--- a/pkgs/desktops/plasma-5/kdecoration.nix
+++ b/pkgs/desktops/plasma-5/kdecoration.nix
@@ -2,7 +2,11 @@
mkDerivation {
name = "kdecoration";
+ meta = {
+ broken = builtins.compareVersions qtbase.version "5.12.0" < 0;
+ };
nativeBuildInputs = [ extra-cmake-modules ];
buildInputs = [ qtbase ki18n ];
outputs = [ "out" "dev" ];
+ broken = true;
}
diff --git a/pkgs/desktops/plasma-5/kwallet-pam.nix b/pkgs/desktops/plasma-5/kwallet-pam.nix
index b4fd032cf1f794a2e4b48c7c382471f8679ab493..7ddd6e2abb7793d5b9c6feea68821a3594c4db3f 100644
--- a/pkgs/desktops/plasma-5/kwallet-pam.nix
+++ b/pkgs/desktops/plasma-5/kwallet-pam.nix
@@ -7,4 +7,8 @@ mkDerivation {
postPatch = ''
sed -i pam_kwallet_init -e "s|socat|${lib.getBin socat}/bin/socat|"
'';
+ postFixup = ''
+ wrapQtApp $out/libexec/pam_kwallet_init
+ '';
+ dontWrapQtApps = true;
}
diff --git a/pkgs/desktops/plasma-5/kwin/scripts/tiling.nix b/pkgs/desktops/plasma-5/kwin/scripts/tiling.nix
new file mode 100644
index 0000000000000000000000000000000000000000..d2c68d3cb7b2c4fcac0e6b0428b32829b2fd4a19
--- /dev/null
+++ b/pkgs/desktops/plasma-5/kwin/scripts/tiling.nix
@@ -0,0 +1,44 @@
+{ lib, mkDerivation, fetchFromGitHub
+, kcoreaddons, kwindowsystem, plasma-framework, systemsettings }:
+
+mkDerivation rec {
+ pname = "kwin-tiling";
+ version = "2.2";
+
+ src = fetchFromGitHub {
+ owner = "kwin-scripts";
+ repo = "kwin-tiling";
+ rev = "v${version}";
+ sha256 = "1sx64xv7g9yh3j26zxxrbndv79xam9jq0vs00fczgfv2n0m7j7bl";
+ };
+
+ # This is technically not needed, but we might as well clean up
+ postPatch = ''
+ rm release.sh
+ '';
+
+ buildInputs = [
+ kcoreaddons kwindowsystem plasma-framework systemsettings
+ ];
+
+ dontBuild = true;
+
+ # 1. --global still installs to $HOME/.local/share so we use --packageroot
+ # 2. plasmapkg2 doesn't copy metadata.desktop into place, so we do that manually
+ installPhase = ''
+ runHook preInstall
+
+ plasmapkg2 --type kwinscript --install ${src} --packageroot $out/share/kwin/scripts
+ install -Dm644 ${src}/metadata.desktop $out/share/kservices5/kwin-script-tiling.desktop
+
+ runHook postInstalll
+ '';
+
+ meta = with lib; {
+ description = "Tiling script for kwin";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ peterhoeg ];
+ inherit (src.meta) homepage;
+ inherit (kwindowsystem.meta) platforms;
+ };
+}
diff --git a/pkgs/desktops/plasma-5/libkscreen/default.nix b/pkgs/desktops/plasma-5/libkscreen/default.nix
index 5625aa656ceb4e831e0746e66ab9496a12b3a823..cf9d70844014772ae121aa0cc020c2b48311312a 100644
--- a/pkgs/desktops/plasma-5/libkscreen/default.nix
+++ b/pkgs/desktops/plasma-5/libkscreen/default.nix
@@ -1,11 +1,14 @@
{
mkDerivation, lib, copyPathsToStore, propagate,
extra-cmake-modules,
- kwayland, libXrandr, qtx11extras
+ kwayland, libXrandr, qtbase, qtx11extras
}:
mkDerivation {
name = "libkscreen";
+ meta = {
+ broken = builtins.compareVersions qtbase.version "5.12.0" < 0;
+ };
nativeBuildInputs = [ extra-cmake-modules ];
buildInputs = [ kwayland libXrandr qtx11extras ];
outputs = [ "out" "dev" ];
diff --git a/pkgs/desktops/rox/rox-filer/default.nix b/pkgs/desktops/rox/rox-filer/default.nix
index 543e3ca897f140b7be75b7014535aa425166a0ae..05f5936a6cb0f610f9cce9feef168b42761e59c4 100644
--- a/pkgs/desktops/rox/rox-filer/default.nix
+++ b/pkgs/desktops/rox/rox-filer/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, libxml2, gtk, libSM, shared-mime-info, hicolor-icon-theme }:
+{ stdenv, fetchurl, pkgconfig, libxml2, gtk, libSM, shared-mime-info }:
let
version = "2.11";
@@ -12,7 +12,7 @@ in stdenv.mkDerivation {
};
nativeBuildInputs = [ pkgconfig ];
- buildInputs = [ libxml2 gtk shared-mime-info hicolor-icon-theme libSM ];
+ buildInputs = [ libxml2 gtk shared-mime-info libSM ];
NIX_LDFLAGS = [ "-ldl" "-lm" ];
patches = [
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/default.nix
index 144291da86d723dafd81918cf5785e64512eae5b..43e943f194acdda9ffe4291a6973b08257a96570 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation rec {
description = "Global Menu applet for XFCE4";
license = licenses.lgpl3;
maintainers = with maintainers; [ jD91mZM2 ];
+ broken = true;
};
}
diff --git a/pkgs/desktops/xfce4-14/default.nix b/pkgs/desktops/xfce4-14/default.nix
index 294dfa92c7980533f29f5a48db371be6385b2b26..0e2c8c1696b270b8f36d48ed63dc99cb9bfe80ef 100644
--- a/pkgs/desktops/xfce4-14/default.nix
+++ b/pkgs/desktops/xfce4-14/default.nix
@@ -93,8 +93,6 @@ makeScope newScope (self: with self; {
## COMMON PARTS WITH XFCE 4.12
- gtk-xfce-engine = callPackage ../xfce/core/gtk-xfce-engine.nix { withGtk3 = false; };
-
xfce4-icon-theme = callPackage ../xfce/art/xfce4-icon-theme.nix { };
xfwm4-themes = callPackage ../xfce/art/xfwm4-themes.nix { };
@@ -113,7 +111,6 @@ makeScope newScope (self: with self; {
## ALIASES
-
- # added 2019-08-18
- xfce4-mixer = throw "deprecated 2019-08-18: obsoleted by xfce4-pulseaudio-plugin";
+ xfce4-mixer = throw "deprecated 2019-08-18: obsoleted by xfce4-pulseaudio-plugin"; # added 2019-08-18
+ gtk-xfce-engine = throw "deprecated 2019-09-17: Xfce 4.14 deprecated gtk-xfce-engine"; # added 2019-09-17
})
diff --git a/pkgs/desktops/xfce4-14/tumbler/default.nix b/pkgs/desktops/xfce4-14/tumbler/default.nix
index ecbc62d8ffbf62293a9d3d5b5746675988f4b9b8..e99551bd8d26c6079165e51024ce1c963c8bc77b 100644
--- a/pkgs/desktops/xfce4-14/tumbler/default.nix
+++ b/pkgs/desktops/xfce4-14/tumbler/default.nix
@@ -27,4 +27,9 @@ mkXfceDerivation {
libgsf
poppler # technically the glib binding
];
+
+ # WrapGAppsHook won't touch this binary automatically, so we wrap manually.
+ postFixup = ''
+ wrapProgram $out/lib/tumbler-1/tumblerd "''${gappsWrapperArgs[@]}"
+ '';
}
diff --git a/pkgs/desktops/xfce4-14/xfburn/default.nix b/pkgs/desktops/xfce4-14/xfburn/default.nix
index 27fae12981ca23fc1b0be6ea880536d8dff54747..dd3a9af168049cdd96c889590e9fd5add9e42a77 100644
--- a/pkgs/desktops/xfce4-14/xfburn/default.nix
+++ b/pkgs/desktops/xfce4-14/xfburn/default.nix
@@ -9,4 +9,5 @@ mkXfceDerivation {
nativeBuildInputs = [ libxslt docbook_xsl ];
buildInputs = [ exo gtk2 libburn libisofs libxfce4ui ];
+ meta.broken = true;
}
diff --git a/pkgs/desktops/xfce4-14/xfce4-terminal/default.nix b/pkgs/desktops/xfce4-14/xfce4-terminal/default.nix
index 78e98e9ea7de31e4c018f483660d936743ae9811..3b9cd268d55ae03304ebc7340b9a9787bdab8817 100644
--- a/pkgs/desktops/xfce4-14/xfce4-terminal/default.nix
+++ b/pkgs/desktops/xfce4-14/xfce4-terminal/default.nix
@@ -1,4 +1,4 @@
-{ mkXfceDerivation, gtk3, libxfce4ui, vte, xfconf }:
+{ mkXfceDerivation, gtk3, libxfce4ui, vte, xfconf, pcre2 }:
mkXfceDerivation {
category = "apps";
@@ -7,7 +7,7 @@ mkXfceDerivation {
sha256 = "0sg9vwyvhh7pjp83biv7gvf42423a7ly4dc7q2gn28kp6bds2qcp";
- buildInputs = [ gtk3 libxfce4ui vte xfconf ];
+ buildInputs = [ gtk3 libxfce4ui vte xfconf pcre2 ];
meta = {
description = "A modern terminal emulator";
diff --git a/pkgs/development/androidndk-pkgs/androidndk-pkgs.nix b/pkgs/development/androidndk-pkgs/androidndk-pkgs.nix
index 02aa6567c1a97cbdf98c3030cc90b297f1b0c38b..6bcfcfc30235744fc0125f6fc16c87f567781956 100644
--- a/pkgs/development/androidndk-pkgs/androidndk-pkgs.nix
+++ b/pkgs/development/androidndk-pkgs/androidndk-pkgs.nix
@@ -103,6 +103,6 @@ rec {
cp -r ${buildAndroidndk}/libexec/android-sdk/ndk-bundle/sysroot/usr/include $out/include
chmod +w $out/include
cp -r ${buildAndroidndk}/libexec/android-sdk/ndk-bundle/sysroot/usr/include/${targetInfo.triple}/* $out/include
- ln -s ${buildAndroidndk}/libexec/android-sdk/ndk-bundle/platforms/android-${stdenv.hostPlatform.sdkVer}/arch-${hostInfo.arch}/usr/lib $out/lib
+ ln -s ${buildAndroidndk}/libexec/android-sdk/ndk-bundle/platforms/android-${stdenv.hostPlatform.sdkVer}/arch-${hostInfo.arch}/usr/${if hostInfo.arch == "x86_64" then "lib64" else "lib"} $out/lib
'';
}
diff --git a/pkgs/development/arduino/arduino-core/default.nix b/pkgs/development/arduino/arduino-core/default.nix
index 2897bac06144435159590047ec2df02fbaaa4851..840fbff60ebdbd8f7c9f5c7926e3663c07a1d1ae 100644
--- a/pkgs/development/arduino/arduino-core/default.nix
+++ b/pkgs/development/arduino/arduino-core/default.nix
@@ -200,7 +200,7 @@ stdenv.mkDerivation rec {
# avrdude_bin is linked against libtinfo.so.5
mkdir $out/lib/
- ln -s ${lib.makeLibraryPath [ncurses5]}/libncursesw.so.5 $out/lib/libtinfo.so.5
+ ln -s ${lib.makeLibraryPath [ncurses5]}/libtinfo.so.5 $out/lib/libtinfo.so.5
${stdenv.lib.optionalString withTeensyduino ''
# Patch the Teensy loader binary
diff --git a/pkgs/development/chez-modules/chez-mit/default.nix b/pkgs/development/chez-modules/chez-mit/default.nix
new file mode 100644
index 0000000000000000000000000000000000000000..3614e97d9eac3351c3642e5b7f9a6d09ec2cf156
--- /dev/null
+++ b/pkgs/development/chez-modules/chez-mit/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchgit, chez, chez-srfi }:
+
+stdenv.mkDerivation {
+ pname = "chez-mit";
+ version = "1.0";
+
+ src = fetchgit {
+ url = "https://github.com/fedeinthemix/chez-mit.git";
+ rev = "68f3d7562e77f694847dc74dabb5ecbd106cd6be";
+ sha256 = "0c7i3b6i90xk96nmxn1pc9272a4yal4v40dm1a4ybdi87x53zkk0";
+ };
+
+ buildInputs = [ chez chez-srfi ];
+
+ buildPhase = ''
+ export CHEZSCHEMELIBDIRS=${chez-srfi}/lib/csv9.5-site
+ make PREFIX=$out CHEZ=${chez}/bin/scheme
+ '';
+
+ installPhase = ''
+ make install PREFIX=$out CHEZ=${chez}/bin/scheme
+ '';
+
+ doCheck = false;
+
+ meta = {
+ description = "This is a MIT/GNU Scheme compatibility library for Chez Scheme";
+ homepage = https://github.com/fedeinthemix/chez-mit/;
+ maintainers = [ stdenv.lib.maintainers.jitwit ];
+ license = stdenv.lib.licenses.free;
+ };
+
+}
diff --git a/pkgs/development/chez-modules/chez-scmutils/default.nix b/pkgs/development/chez-modules/chez-scmutils/default.nix
new file mode 100644
index 0000000000000000000000000000000000000000..ceebef11363e6841e2ea192f0d8399ecef946138
--- /dev/null
+++ b/pkgs/development/chez-modules/chez-scmutils/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchgit, chez, chez-srfi, chez-mit }:
+
+stdenv.mkDerivation {
+ pname = "chez-scmutils";
+ version = "1.0";
+
+ src = fetchgit {
+ url = "https://github.com/fedeinthemix/chez-scmutils.git";
+ rev = "5eaeea6289fd239358d7eed99cc9588528fb52b2";
+ sha256 = "0lb05wlf8qpgg8y0gdsyaxg1nbfx1qbaqdjvygrp64ndn8fnhq7l";
+ };
+
+ buildInputs = [ chez chez-srfi chez-mit ];
+
+ buildPhase = ''
+ export CHEZSCHEMELIBDIRS=${chez-srfi}/lib/csv9.5-site:${chez-mit}/lib/csv9.5-site
+ make PREFIX=$out CHEZ=${chez}/bin/scheme
+ '';
+
+ installPhase = ''
+ make install PREFIX=$out CHEZ=${chez}/bin/scheme
+ '';
+
+ doCheck = false;
+
+ meta = {
+ description = "This is a port of the ‘MIT Scmutils’ library to Chez Scheme";
+ homepage = https://github.com/fedeinthemix/chez-scmutils/;
+ maintainers = [ stdenv.lib.maintainers.jitwit ];
+ license = stdenv.lib.licenses.gpl3;
+ };
+
+}
diff --git a/pkgs/development/chez-modules/chez-srfi/default.nix b/pkgs/development/chez-modules/chez-srfi/default.nix
new file mode 100644
index 0000000000000000000000000000000000000000..7f88b8fe7b0b9c545e38a52e5ee7cec4dfb7440e
--- /dev/null
+++ b/pkgs/development/chez-modules/chez-srfi/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchgit, chez }:
+
+stdenv.mkDerivation {
+ pname = "chez-srfi";
+ version = "1.0";
+
+ src = fetchgit {
+ url = "https://github.com/fedeinthemix/chez-srfi.git";
+ rev = "5770486c2a85d0e3dd4ac62a97918e7c394ea507";
+ sha256 = "1s47v7b7w0ycd2g6gyv8qbzmh4jjln5iday8n9l3m996ns8is9zj";
+ };
+
+ buildInputs = [ chez ];
+
+ buildPhase = ''
+ make PREFIX=$out CHEZ=${chez}/bin/scheme
+ '';
+
+ installPhase = ''
+ make install PREFIX=$out CHEZ=${chez}/bin/scheme
+ '';
+
+ doCheck = false;
+
+ meta = {
+ description = "This package provides a collection of SRFI libraries for Chez Scheme";
+ homepage = https://github.com/fedeinthemix/chez-srfi/;
+ maintainers = [ stdenv.lib.maintainers.jitwit ];
+ license = stdenv.lib.licenses.free;
+ };
+
+}
diff --git a/pkgs/development/compilers/adoptopenjdk-icedtea-web/default.nix b/pkgs/development/compilers/adoptopenjdk-icedtea-web/default.nix
index 305e0f202bf13410353a707ded5d2b8f90f616cf..dd03ce0171fedd22277f8918aba3674904c07cea 100644
--- a/pkgs/development/compilers/adoptopenjdk-icedtea-web/default.nix
+++ b/pkgs/development/compilers/adoptopenjdk-icedtea-web/default.nix
@@ -58,7 +58,6 @@ stdenv.mkDerivation rec {
based on the NetX project.
'';
homepage = https://github.com/adoptopenjdk/icedtea-web;
- maintainers = with stdenv.lib.maintainers; [ wizeman ];
platforms = stdenv.lib.platforms.linux;
};
}
diff --git a/pkgs/development/compilers/chez/default.nix b/pkgs/development/compilers/chez/default.nix
index 12d68f0265c45028896893b029d4784d6d769d4b..a0fc30c858684033c28aebcd6eff13955f9be1df 100644
--- a/pkgs/development/compilers/chez/default.nix
+++ b/pkgs/development/compilers/chez/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
- NIX_CFLAGS_COMPILE = "-Wno-error=format-truncation";
+ NIX_CFLAGS_COMPILE = stdenv.lib.optional stdenv.cc.isGNU "-Wno-error=format-truncation";
/*
** We patch out a very annoying 'feature' in ./configure, which
diff --git a/pkgs/development/compilers/closure/default.nix b/pkgs/development/compilers/closure/default.nix
index d9f2a588d8f6f8ade2a3eafd83dc0413fdd9785a..682a8aa4eed9b77debde996ebe10d88fcae9969b 100644
--- a/pkgs/development/compilers/closure/default.nix
+++ b/pkgs/development/compilers/closure/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "closure-compiler";
- version = "20190215";
+ version = "20190909";
src = fetchurl {
url = "https://dl.google.com/closure-compiler/compiler-${version}.tar.gz";
- sha256 = "16rpl7x90ganpxlz6v9292cwx7dnkhklqx1nn161yj7ypf9bzd4k";
+ sha256 = "0km45pz19dz1hi8vjj290hyxdhr379iixmml0rs8crr4gvs3685w";
};
sourceRoot = ".";
diff --git a/pkgs/development/compilers/compcert/default.nix b/pkgs/development/compilers/compcert/default.nix
index 940eb851fe619faee1ec39073e450a507c3896ce..3a6c5e9c2c7ea38aa9bf5566ac854194436f6dd1 100644
--- a/pkgs/development/compilers/compcert/default.nix
+++ b/pkgs/development/compilers/compcert/default.nix
@@ -4,7 +4,7 @@
}:
assert lib.versionAtLeast ocamlPackages.ocaml.version "4.02";
-assert lib.versionAtLeast coq.coq-version "8.6.1";
+assert lib.versionAtLeast coq.coq-version "8.8.0";
let
ocaml-pkgs = with ocamlPackages; [ ocaml findlib menhir ];
@@ -12,13 +12,13 @@ let
in
stdenv.mkDerivation rec {
pname = "compcert";
- version = "3.5";
+ version = "3.6";
src = fetchFromGitHub {
owner = "AbsInt";
repo = "CompCert";
rev = "v${version}";
- sha256 = "1g8067a5x3vd0l47d04gjvy5yx49nghh55am5d1fbrjirfsnsz8j";
+ sha256 = "1k9xhj7fgllhf7bn7rp3w6zfvs4clglnc4w39zp4678hrwvdcpha";
};
nativeBuildInputs = [ makeWrapper ];
@@ -27,7 +27,6 @@ stdenv.mkDerivation rec {
patchPhase = ''
substituteInPlace ./configure \
- --replace '|8.9.0' '|8.9.0|8.9.1' \
--replace '{toolprefix}gcc' '{toolprefix}cc'
'';
diff --git a/pkgs/development/compilers/crystal/default.nix b/pkgs/development/compilers/crystal/default.nix
index 409ac03d92f71a36e7ab0bbe1e2aa209087c4910..4032f0b5e927ceb788c0afea85f34039eaa1de8b 100644
--- a/pkgs/development/compilers/crystal/default.nix
+++ b/pkgs/development/compilers/crystal/default.nix
@@ -212,7 +212,14 @@ in rec {
binary = binaryCrystal_0_29;
};
- crystal = crystal_0_30;
+ crystal_0_31 = generic {
+ version = "0.31.1";
+ sha256 = "1dswxa32w16gnc6yjym12xj7ibg0g6zk3ngvl76lwdjqb1h6lwz8";
+ doCheck = false; # 5 checks are failing now
+ binary = crystal_0_30;
+ };
+
+ crystal = crystal_0_31;
crystal2nix = callPackage ./crystal2nix.nix {};
}
diff --git a/pkgs/development/compilers/cudatoolkit/default.nix b/pkgs/development/compilers/cudatoolkit/default.nix
index 8aab9580232bd5208f0e807d44eb21fd7f474900..98c0381216a715ba99b8fb57a3aab7e1c26c26fc 100644
--- a/pkgs/development/compilers/cudatoolkit/default.nix
+++ b/pkgs/development/compilers/cudatoolkit/default.nix
@@ -53,22 +53,25 @@ let
unpackPhase = ''
sh $src --keep --noexec
- cd pkg/run_files
- sh cuda-linux*.run --keep --noexec
- sh cuda-samples*.run --keep --noexec
- mv pkg ../../$(basename $src)
- cd ../..
- rm -rf pkg
-
- for patch in $runPatches; do
- sh $patch --keep --noexec
- mv pkg $(basename $patch)
- done
+ ${lib.optionalString (lib.versionOlder version "10.1") ''
+ cd pkg/run_files
+ sh cuda-linux*.run --keep --noexec
+ sh cuda-samples*.run --keep --noexec
+ mv pkg ../../$(basename $src)
+ cd ../..
+ rm -rf pkg
+
+ for patch in $runPatches; do
+ sh $patch --keep --noexec
+ mv pkg $(basename $patch)
+ done
+ ''}
'';
installPhase = ''
runHook preInstall
mkdir $out
+ ${lib.optionalString (lib.versionOlder version "10.1") ''
cd $(basename $src)
export PERL5LIB=.
perl ./install-linux.pl --prefix="$out"
@@ -78,14 +81,22 @@ let
perl ./install_patch.pl --silent --accept-eula --installdir="$out"
cd ..
done
+ ''}
+ ${lib.optionalString (lib.versionAtLeast version "10.1") ''
+ cd pkg/builds/cuda-toolkit
+ mv * $out/
+ ''}
rm $out/tools/CUDA_Occupancy_Calculator.xls # FIXME: why?
+ ${lib.optionalString (lib.versionOlder version "10.1") ''
# let's remove the 32-bit libraries, they confuse the lib64->lib mover
rm -rf $out/lib
+ ''}
# Remove some cruft.
- ${lib.optionalString (lib.versionAtLeast version "7.0") "rm $out/bin/uninstall*"}
+ ${lib.optionalString ((lib.versionAtLeast version "7.0") && (lib.versionOlder version "10.1"))
+ "rm $out/bin/uninstall*"}
# Fixup path to samples (needed for cuda 6.5 or else nsight will not find them)
if [ -d "$out"/cuda-samples ]; then
@@ -109,6 +120,9 @@ let
# Remove OpenCL libraries as they are provided by ocl-icd and driver.
rm -f $out/lib64/libOpenCL*
+ ${lib.optionalString (lib.versionAtLeast version "10.1") ''
+ mv $out/lib64 $out/lib
+ ''}
# Set compiler for NVCC.
wrapProgram $out/bin/nvcc \
@@ -180,9 +194,7 @@ let
'';
passthru = {
cc = gcc;
- majorVersion =
- let versionParts = lib.splitString "." version;
- in "${lib.elemAt versionParts 0}.${lib.elemAt versionParts 1}";
+ majorVersion = lib.versions.majorMinor version;
};
meta = with stdenv.lib; {
@@ -304,5 +316,13 @@ in rec {
gcc = gcc7;
};
- cudatoolkit_10 = cudatoolkit_10_0;
+ cudatoolkit_10_1 = common {
+ version = "10.1.243";
+ url = "https://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux.run";
+ sha256 = "0caxhlv2bdq863dfp6wj7nad66ml81vasq2ayf11psvq2b12vhp7";
+
+ gcc = gcc7;
+ };
+
+ cudatoolkit_10 = cudatoolkit_10_1;
}
diff --git a/pkgs/development/compilers/dtc/default.nix b/pkgs/development/compilers/dtc/default.nix
index ea305cc5c84c6b5a1ad533bb7cbca68fada27aa5..eea75c5ace1f960f8c9f0c1d3fe7f4e7402ac560 100644
--- a/pkgs/development/compilers/dtc/default.nix
+++ b/pkgs/development/compilers/dtc/default.nix
@@ -1,25 +1,28 @@
-{ stdenv, fetchgit, flex, bison, pkgconfig, python2, swig, which }:
+{ stdenv, lib, fetchgit, flex, bison, pkgconfig, which
+, pythonSupport ? stdenv.buildPlatform == stdenv.hostPlatform, python, swig
+}:
stdenv.mkDerivation rec {
pname = "dtc";
- version = "1.5.0";
+ version = "1.5.1";
src = fetchgit {
url = "https://git.kernel.org/pub/scm/utils/dtc/dtc.git";
rev = "refs/tags/v${version}";
- sha256 = "075gj8bbahfdb8dlif3d2dpzjrkyf3bwbcmx96zpwhlgs0da8jxh";
+ sha256 = "1jhhfrg22h53lvm2lqhd66pyk20pil08ry03wcwyx1c3ln27k73z";
};
- nativeBuildInputs = [ flex bison pkgconfig swig which ];
- buildInputs = [ python2 ];
+ nativeBuildInputs = [ flex bison pkgconfig which ] ++ lib.optionals pythonSupport [ python swig ];
+ buildInputs = lib.optionals pythonSupport [ python ];
postPatch = ''
patchShebangs pylibfdt/
'';
+ makeFlags = [ "PYTHON=python" ];
installFlags = [ "INSTALL=install" "PREFIX=$(out)" "SETUP_PREFIX=$(out)" ];
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "Device Tree Compiler";
homepage = https://git.kernel.org/cgit/utils/dtc/dtc.git;
license = licenses.gpl2; # dtc itself is GPLv2, libfdt is dual GPL/BSD
diff --git a/pkgs/development/compilers/ecl/16.1.2.nix b/pkgs/development/compilers/ecl/16.1.2.nix
index c27f2a22670519a4c3ecb622fba47048f420b47a..bede9fa4aa68725113b7c04cd783c5bce574aff9 100644
--- a/pkgs/development/compilers/ecl/16.1.2.nix
+++ b/pkgs/development/compilers/ecl/16.1.2.nix
@@ -78,6 +78,6 @@ stdenv.mkDerivation {
description = "Lisp implementation aiming to be small, fast and easy to embed";
license = stdenv.lib.licenses.mit ;
maintainers = [stdenv.lib.maintainers.raskin];
- platforms = stdenv.lib.platforms.linux;
+ platforms = stdenv.lib.platforms.unix;
};
}
diff --git a/pkgs/development/compilers/elm/default.nix b/pkgs/development/compilers/elm/default.nix
index c8bef546b6d9a3b15e44275b29dc09aecce8e1d8..1d61b83314936fe00c1cfffaf0ec321a5c59d429 100644
--- a/pkgs/development/compilers/elm/default.nix
+++ b/pkgs/development/compilers/elm/default.nix
@@ -4,31 +4,17 @@
let
fetchElmDeps = import ./fetchElmDeps.nix { inherit stdenv lib fetchurl; };
- patchBinwrap = import ./packages/patch-binwrap.nix { inherit lib writeScriptBin stdenv; };
-
- elmNodePackages =
- import ./packages/node-composition.nix {
- inherit nodejs pkgs;
- inherit (stdenv.hostPlatform) system;
- };
-
- hsPkgs = haskell.packages.ghc864.override {
+ hsPkgs = haskell.packages.ghc881.override {
overrides = self: super: with haskell.lib;
let elmPkgs = rec {
elm = overrideCabal (self.callPackage ./packages/elm.nix { }) (drv: {
# sadly with parallelism most of the time breaks compilation
- # also compilation is slower with increasing number of cores anyway (Tested on Ryzen 7 and i7)
enableParallelBuilding = false;
preConfigure = self.fetchElmDeps {
elmPackages = (import ./packages/elm-srcs.nix);
- versionsDat = ./versions.dat;
+ elmVersion = drv.version;
+ registryDat = ./registry.dat;
};
- patches = [
- (fetchpatch {
- url = "https://github.com/elm/compiler/pull/1886/commits/39d86a735e28da514be185d4c3256142c37c2a8a.patch";
- sha256 = "0nni5qx1523rjz1ja42z6z9pijxvi3fgbw1dhq5qi11mh1nb9ay7";
- })
- ];
buildTools = drv.buildTools or [] ++ [ makeWrapper ];
jailbreak = true;
postInstall = ''
@@ -41,24 +27,31 @@ let
The elm-format expression is updated via a script in the https://github.com/avh4/elm-format repo:
`package/nix/build.sh`
*/
- elm-format = justStaticExecutables (doJailbreak (self.callPackage ./packages/elm-format.nix {}));
-
- elmi-to-json = justStaticExecutables (self.callPackage ./packages/elmi-to-json.nix {});
+ elm-format = justStaticExecutables (overrideCabal (self.callPackage ./packages/elm-format.nix {}) (drv: {
+ # GHC 8.8.1 support
+ # https://github.com/avh4/elm-format/pull/640
+ patches = [(
+ fetchpatch {
+ url = "https://github.com/turboMaCk/elm-format/commit/4f4abdc7117ed6ce3335f6cf39b6495b48067b7c.patch";
+ sha256 = "1zqk6q6w0ph12mnwffgwzf4h1hcgqg0v09ws9q2g5bg2riq4rvd9";
+ }
+ )];
+ # Tests are failing after upgrade to ghc881.
+ # Cause is probably just a minor change in stdout output
+ # see https://github.com/avh4/elm-format/pull/640
+ doCheck = false;
+ jailbreak = true;
+ }));
+ elmi-to-json = justStaticExecutables (overrideCabal (self.callPackage ./packages/elmi-to-json.nix {}) (drv: {
+ prePatch = ''
+ substituteInPlace package.yaml --replace "- -Werror" ""
+ hpack
+ '';
+ jailbreak = true;
+ }));
inherit fetchElmDeps;
elmVersion = elmPkgs.elm.version;
-
- /*
- Node/NPM based dependecies can be upgraded using script
- `packages/generate-node-packages.sh`.
- Packages which rely on `bin-wrap` will fail by default
- and can be patched using `patchBinwrap` function defined in `packages/patch-binwrap.nix`.
- */
- elm-test = patchBinwrap [elmi-to-json] elmNodePackages.elm-test;
- elm-verify-examples = patchBinwrap [elmi-to-json] elmNodePackages.elm-verify-examples;
- # elm-analyse@0.16.4 build is not working
- elm-analyse = elmNodePackages."elm-analyse-0.16.3";
- inherit (elmNodePackages) elm-doc-preview elm-live elm-upgrade elm-xref;
};
in elmPkgs // {
inherit elmPkgs;
@@ -67,4 +60,29 @@ let
indents = self.callPackage ./packages/indents.nix {};
};
};
-in hsPkgs.elmPkgs
+
+ /*
+ Node/NPM based dependecies can be upgraded using script
+ `packages/generate-node-packages.sh`.
+ Packages which rely on `bin-wrap` will fail by default
+ and can be patched using `patchBinwrap` function defined in `packages/patch-binwrap.nix`.
+ */
+ elmNodePackages =
+ let
+ nodePkgs = import ./packages/node-composition.nix {
+ inherit nodejs pkgs;
+ inherit (stdenv.hostPlatform) system;
+ };
+ in with hsPkgs.elmPkgs; {
+ elm-test = patchBinwrap [elmi-to-json] nodePkgs.elm-test;
+ elm-verify-examples = patchBinwrap [elmi-to-json] nodePkgs.elm-verify-examples;
+ elm-language-server = nodePkgs."@elm-tooling/elm-language-server";
+
+ inherit (nodePkgs) elm-doc-preview elm-live elm-upgrade elm-xref elm-analyse;
+ };
+
+ patchBinwrap = import ./packages/patch-binwrap.nix { inherit lib writeScriptBin stdenv; };
+
+in hsPkgs.elmPkgs // elmNodePackages // {
+ lib = { inherit patchBinwrap; };
+}
diff --git a/pkgs/development/compilers/elm/fetchElmDeps.nix b/pkgs/development/compilers/elm/fetchElmDeps.nix
index 3da2445e0c524a49ec8f6d1f0eae322d273f7620..05dffaa9e2ebba9ede89bf2501d66c5db2a3ade5 100644
--- a/pkgs/development/compilers/elm/fetchElmDeps.nix
+++ b/pkgs/development/compilers/elm/fetchElmDeps.nix
@@ -1,11 +1,11 @@
{stdenv, lib, fetchurl}:
-{elmPackages, versionsDat}:
+{elmPackages, registryDat, elmVersion}:
let
- makeDotElm = import ./makeDotElm.nix {inherit stdenv lib fetchurl versionsDat;};
+ makeDotElm = import ./makeDotElm.nix {inherit stdenv lib fetchurl registryDat;};
in
''
export ELM_HOME=`pwd`/.elm
-'' + (makeDotElm "0.19.0" elmPackages)
+'' + (makeDotElm elmVersion elmPackages)
diff --git a/pkgs/development/compilers/elm/makeDotElm.nix b/pkgs/development/compilers/elm/makeDotElm.nix
index 1bc8e61d27ca1f682c8ca9603981547eae4ddec5..3ceaae450f0173599d54173a6312b4995575aeb0 100644
--- a/pkgs/development/compilers/elm/makeDotElm.nix
+++ b/pkgs/development/compilers/elm/makeDotElm.nix
@@ -1,4 +1,4 @@
-{stdenv, lib, fetchurl, versionsDat}:
+{stdenv, lib, fetchurl, registryDat}:
ver: deps:
let cmds = lib.mapAttrsToList (name: info: let
@@ -20,11 +20,11 @@ ver: deps:
};
in ''
- mkdir -p .elm/${ver}/package/${name}
- cp -R ${pkg} .elm/${ver}/package/${name}/${info.version}
+ mkdir -p .elm/${ver}/packages/${name}
+ cp -R ${pkg} .elm/${ver}/packages/${name}/${info.version}
'') deps;
in (lib.concatStrings cmds) + ''
- mkdir -p .elm/${ver}/package;
- cp ${versionsDat} .elm/${ver}/package/versions.dat;
+ mkdir -p .elm/${ver}/packages;
+ cp ${registryDat} .elm/${ver}/packages/registry.dat;
chmod -R +w .elm
''
diff --git a/pkgs/development/compilers/elm/packages/elm-srcs.nix b/pkgs/development/compilers/elm/packages/elm-srcs.nix
index e1f941626dd7c0b700aefe224a89b6218aac38fe..0d4523b8b098264103217d697e32d1f586f43465 100644
--- a/pkgs/development/compilers/elm/packages/elm-srcs.nix
+++ b/pkgs/development/compilers/elm/packages/elm-srcs.nix
@@ -6,8 +6,8 @@
};
"elm/json" = {
- sha256 = "1g0hafkqf2q633r7ir9wxpb1lnlzskhpsyi0h5bkzj0gl072zfnb";
- version = "1.0.0";
+ sha256 = "1a107nmm905dih4w4mjjkkpdcjbgaf5qjvr7fl30kkpkckfjjnrw";
+ version = "1.1.2";
};
"elm/html" = {
@@ -16,8 +16,8 @@
};
"elm/svg" = {
- sha256 = "08x0v8p9wm699jjmsnbq69pxv3jh60j4f6fg7y6hyr7xxj85y390";
- version = "1.0.0";
+ sha256 = "1cwcj73p61q45wqwgqvrvz3aypjyy3fw732xyxdyj6s256hwkn0k";
+ version = "1.0.1";
};
"elm/project-metadata-utils" = {
@@ -26,23 +26,33 @@
};
"elm/browser" = {
- sha256 = "1apmvyax93nvmagwj00y16zx10kfv640cxpi64xgqbgy7d2wphy4";
- version = "1.0.0";
+ sha256 = "1zlmx672glg7fdgkvh5jm47y85pv7pdfr5mkhg6x7ar6k000vyka";
+ version = "1.0.1";
};
"elm/core" = {
- sha256 = "10kr86h4v5h4p0586q406a5wbl8xvr1jyrf6097zp2wb8sv21ylw";
- version = "1.0.0";
+ sha256 = "1l0qdbczw91kzz8sx5d5zwz9x662bspy7p21dsr3f2rigxiix2as";
+ version = "1.0.2";
};
"elm/http" = {
- sha256 = "1igmm89ialzrjib1j8xagkxalq1x2gj4l0hfxcd66mpwmvg7psl8";
- version = "1.0.0";
+ sha256 = "008bs76mnp48b4dw8qwjj4fyvzbxvlrl4xpa2qh1gg2kfwyw56v1";
+ version = "2.0.0";
+ };
+
+ "elm/bytes" = {
+ sha256 = "040d7irrawcbnq9jxhzx8p9qacdlw5bncy6lgndd6inm53rvvwbp";
+ version = "1.0.7";
+ };
+
+ "elm/file" = {
+ sha256 = "15vw1ilbg0msimq2k9magwigp8lwqrgvz3vk6qia6b3ldahvw8jr";
+ version = "1.0.1";
};
"elm/parser" = {
- sha256 = "0k4zlq30lrvawqvzwbvsl0hrmwf9s832mb41z7fdspm4549dj7wc";
- version = "1.0.0";
+ sha256 = "0a3cxrvbm7mwg9ykynhp7vjid58zsw03r63qxipxp3z09qks7512";
+ version = "1.1.0";
};
"elm/url" = {
@@ -56,7 +66,7 @@
};
"elm/virtual-dom" = {
- sha256 = "0hm8g92h7z39km325dlnhk8n00nlyjkqp3r3jppr37k2k13md6aq";
- version = "1.0.0";
+ sha256 = "0q1v5gi4g336bzz1lgwpn5b1639lrn63d8y6k6pimcyismp2i1yg";
+ version = "1.0.2";
};
}
diff --git a/pkgs/development/compilers/elm/packages/elm.nix b/pkgs/development/compilers/elm/packages/elm.nix
index 4edd9bebbc6ba7a5baaafe7b1d1e008c13d8eaa4..644a53fd619035f2f9761830699ce7708b3d3f69 100644
--- a/pkgs/development/compilers/elm/packages/elm.nix
+++ b/pkgs/development/compilers/elm/packages/elm.nix
@@ -1,29 +1,29 @@
{ mkDerivation, ansi-terminal, ansi-wl-pprint, base, binary
, bytestring, containers, directory, edit-distance, fetchgit
-, file-embed, filepath, ghc-prim, haskeline, HTTP, http-client
-, http-client-tls, http-types, language-glsl, logict, mtl, network
-, parsec, process, raw-strings-qq, scientific, SHA, snap-core
-, snap-server, stdenv, template-haskell, text, time
+, file-embed, filelock, filepath, ghc-prim, haskeline, HTTP
+, http-client, http-client-tls, http-types, language-glsl, mtl
+, network, parsec, process, raw-strings-qq, scientific, SHA
+, snap-core, snap-server, stdenv, template-haskell, time
, unordered-containers, utf8-string, vector, zip-archive
}:
mkDerivation {
pname = "elm";
- version = "0.19.0";
+ version = "0.19.1";
src = fetchgit {
url = "https://github.com/elm/compiler";
- sha256 = "13jks6c6i80z71mjjfg46ri570g5ini0k3xw3857v6z66zcl56x4";
- rev = "d5cbc41aac23da463236bbc250933d037da4055a";
+ sha256 = "1rdg3xp3js9xadclk3cdypkscm5wahgsfmm4ldcw3xswzhw6ri8w";
+ rev = "c9aefb6230f5e0bda03205ab0499f6e4af924495";
fetchSubmodules = true;
};
isLibrary = false;
isExecutable = true;
executableHaskellDepends = [
ansi-terminal ansi-wl-pprint base binary bytestring containers
- directory edit-distance file-embed filepath ghc-prim haskeline HTTP
- http-client http-client-tls http-types language-glsl logict mtl
- network parsec process raw-strings-qq scientific SHA snap-core
- snap-server template-haskell text time unordered-containers
- utf8-string vector zip-archive
+ directory edit-distance file-embed filelock filepath ghc-prim
+ haskeline HTTP http-client http-client-tls http-types language-glsl
+ mtl network parsec process raw-strings-qq scientific SHA snap-core
+ snap-server template-haskell time unordered-containers utf8-string
+ vector zip-archive
];
homepage = "https://elm-lang.org";
description = "The `elm` command line interface";
diff --git a/pkgs/development/compilers/elm/packages/elmi-to-json.nix b/pkgs/development/compilers/elm/packages/elmi-to-json.nix
index f6a0b9e24263ddc463e86cef0032724caea1c98a..87b02f013f851973704a387c5177853cd89b353a 100644
--- a/pkgs/development/compilers/elm/packages/elmi-to-json.nix
+++ b/pkgs/development/compilers/elm/packages/elmi-to-json.nix
@@ -1,27 +1,27 @@
-{ mkDerivation, aeson, async, base, binary, bytestring, containers
-, directory, filepath, hpack, optparse-applicative, safe-exceptions
-, stdenv, text, fetchgit
+{ mkDerivation, aeson, base, binary, bytestring, containers
+, directory, fetchgit, filepath, ghc-prim, hpack
+, optparse-applicative, stdenv, text, unliftio
+, unordered-containers
}:
mkDerivation {
pname = "elmi-to-json";
- version = "0.19.4";
+ version = "1.2.0";
src = fetchgit {
url = "https://github.com/stoeffel/elmi-to-json.git";
- rev = "357ad96f05e4c68023b036f27f6f65c4377c7427";
- sha256 = "0vj9fdqgg2zd1nxpll6v02fk6bcyhx00xhp3s8sd7ycvirwsim9n";
+ sha256 = "1kxai87h2g0749yq0fkxwk3xaavydraaivhnavbwr62q2hw4wrj7";
+ rev = "af08ceafe742a252f1f1f3c229b0ce3b3e00084d";
+ fetchSubmodules = true;
};
isLibrary = true;
isExecutable = true;
libraryHaskellDepends = [
- aeson async base binary bytestring containers directory filepath
- optparse-applicative safe-exceptions text
+ aeson base binary bytestring containers directory filepath ghc-prim
+ optparse-applicative text unliftio unordered-containers
];
libraryToolDepends = [ hpack ];
executableHaskellDepends = [ base ];
testHaskellDepends = [ base ];
- preConfigure = "hpack";
+ prePatch = "hpack";
homepage = "https://github.com/stoeffel/elmi-to-json#readme";
- description = "Translates elmi binary files to JSON representation";
license = stdenv.lib.licenses.bsd3;
- maintainers = with stdenv.lib.maintainers; [ turbomack ];
}
diff --git a/pkgs/development/compilers/elm/packages/node-composition.nix b/pkgs/development/compilers/elm/packages/node-composition.nix
index 870ad900210a268c9f0d3d7b05d9e0137d24a13a..1ffd758ac82ee5ecf28a708f4d81e8da4dabcd47 100644
--- a/pkgs/development/compilers/elm/packages/node-composition.nix
+++ b/pkgs/development/compilers/elm/packages/node-composition.nix
@@ -2,7 +2,7 @@
{pkgs ? import {
inherit system;
- }, system ? builtins.currentSystem, nodejs ? pkgs.nodejs-10_x}:
+ }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-10_x"}:
let
nodeEnv = import ../../../node-packages/node-env.nix {
diff --git a/pkgs/development/compilers/elm/packages/node-packages.json b/pkgs/development/compilers/elm/packages/node-packages.json
index 5ba7e49bfa620ecf081f2d4555a53465147fa0ed..e129a0ffaec4b975bc0a25594c79e6c78044761f 100644
--- a/pkgs/development/compilers/elm/packages/node-packages.json
+++ b/pkgs/development/compilers/elm/packages/node-packages.json
@@ -3,7 +3,8 @@
"elm-verify-examples",
"elm-doc-preview",
"elm-upgrade",
- { "elm-analyse": "0.16.3" },
+ "elm-analyse",
"elm-live",
- "elm-xref"
+ "elm-xref",
+ "@elm-tooling/elm-language-server"
]
diff --git a/pkgs/development/compilers/elm/packages/node-packages.nix b/pkgs/development/compilers/elm/packages/node-packages.nix
index 7605c377057fda4d00584e91562d4b8b78ad7cff..770e7c3529a17f6be45eb2d59bb58300c5a75420 100644
--- a/pkgs/development/compilers/elm/packages/node-packages.nix
+++ b/pkgs/development/compilers/elm/packages/node-packages.nix
@@ -13,6 +13,33 @@ let
sha512 = "r5160ogAvGyHsal38Kux7YYtodEKOj89RGb28ht1jh3SJb08VwRwAKKJL0bGb04Zd/3r9FL3BFIc3bBidYffCA==";
};
};
+ "@nodelib/fs.scandir-2.1.3" = {
+ name = "_at_nodelib_slash_fs.scandir";
+ packageName = "@nodelib/fs.scandir";
+ version = "2.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz";
+ sha512 = "eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==";
+ };
+ };
+ "@nodelib/fs.stat-2.0.3" = {
+ name = "_at_nodelib_slash_fs.stat";
+ packageName = "@nodelib/fs.stat";
+ version = "2.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz";
+ sha512 = "bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==";
+ };
+ };
+ "@nodelib/fs.walk-1.2.4" = {
+ name = "_at_nodelib_slash_fs.walk";
+ packageName = "@nodelib/fs.walk";
+ version = "1.2.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz";
+ sha512 = "1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==";
+ };
+ };
"@sindresorhus/is-0.7.0" = {
name = "_at_sindresorhus_slash_is";
packageName = "@sindresorhus/is";
@@ -22,6 +49,42 @@ let
sha512 = "ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==";
};
};
+ "@types/events-3.0.0" = {
+ name = "_at_types_slash_events";
+ packageName = "@types/events";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz";
+ sha512 = "EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==";
+ };
+ };
+ "@types/glob-7.1.1" = {
+ name = "_at_types_slash_glob";
+ packageName = "@types/glob";
+ version = "7.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz";
+ sha512 = "1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==";
+ };
+ };
+ "@types/minimatch-3.0.3" = {
+ name = "_at_types_slash_minimatch";
+ packageName = "@types/minimatch";
+ version = "3.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz";
+ sha512 = "tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==";
+ };
+ };
+ "@types/node-12.12.3" = {
+ name = "_at_types_slash_node";
+ packageName = "@types/node";
+ version = "12.12.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/node/-/node-12.12.3.tgz";
+ sha512 = "opgSsy+cEF9N8MgaVPnWVtdJ3o4mV2aMHvDq7thkQUFt0EuOHJon4rQpJfhjmNHB+ikl0Cd6WhWIErOyQ+f7tw==";
+ };
+ };
"accepts-1.3.7" = {
name = "accepts";
packageName = "accepts";
@@ -85,13 +148,13 @@ let
sha512 = "5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==";
};
};
- "anymatch-3.0.3" = {
+ "anymatch-3.1.1" = {
name = "anymatch";
packageName = "anymatch";
- version = "3.0.3";
+ version = "3.1.1";
src = fetchurl {
- url = "https://registry.npmjs.org/anymatch/-/anymatch-3.0.3.tgz";
- sha512 = "c6IvoeBECQlMVuYUjSwimnhmztImpErfxJzWZhIQinIvQWoGOnB0dLIgifbPHQt5heS6mNlaZG16f06H3C8t1g==";
+ url = "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz";
+ sha512 = "mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==";
};
};
"arr-diff-4.0.0" = {
@@ -130,6 +193,15 @@ let
sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2";
};
};
+ "array-union-2.1.0" = {
+ name = "array-union";
+ packageName = "array-union";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz";
+ sha512 = "HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==";
+ };
+ };
"array-unique-0.3.2" = {
name = "array-unique";
packageName = "array-unique";
@@ -166,15 +238,6 @@ let
sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367";
};
};
- "async-each-1.0.3" = {
- name = "async-each";
- packageName = "async-each";
- version = "1.0.3";
- src = fetchurl {
- url = "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz";
- sha512 = "z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==";
- };
- };
"async-limiter-1.0.1" = {
name = "async-limiter";
packageName = "async-limiter";
@@ -274,15 +337,6 @@ let
sha1 = "9f60553bc5ce8c3386f3b553cff47462adecaa79";
};
};
- "binary-extensions-1.13.1" = {
- name = "binary-extensions";
- packageName = "binary-extensions";
- version = "1.13.1";
- src = fetchurl {
- url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz";
- sha512 = "Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==";
- };
- };
"binary-extensions-2.0.0" = {
name = "binary-extensions";
packageName = "binary-extensions";
@@ -310,13 +364,13 @@ let
sha512 = "Y+Wvypk3JhH5GPZAvlwJAWOVH/OsOhQMSj37vySuWHwQivoALplPxfBA8b973rFJI7OS+O+1YmmYXIiEXVMAcw==";
};
};
- "bluebird-3.5.5" = {
+ "bluebird-3.7.1" = {
name = "bluebird";
packageName = "bluebird";
- version = "3.5.5";
+ version = "3.7.1";
src = fetchurl {
- url = "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz";
- sha512 = "5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==";
+ url = "https://registry.npmjs.org/bluebird/-/bluebird-3.7.1.tgz";
+ sha512 = "DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg==";
};
};
"body-parser-1.18.2" = {
@@ -364,13 +418,13 @@ let
sha512 = "b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==";
};
};
- "bser-2.1.0" = {
+ "bser-2.1.1" = {
name = "bser";
packageName = "bser";
- version = "2.1.0";
+ version = "2.1.1";
src = fetchurl {
- url = "https://registry.npmjs.org/bser/-/bser-2.1.0.tgz";
- sha512 = "8zsjWrQkkBoLK6uxASk1nJ2SKv97ltiGDo6A3wA0/yRPz+CwmEyDo0hUrhIuukG2JHpAl3bvFIixw2/3Hi0DOg==";
+ url = "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz";
+ sha512 = "gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==";
};
};
"buffers-0.1.1" = {
@@ -481,15 +535,6 @@ let
sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98";
};
};
- "chalk-2.1.0" = {
- name = "chalk";
- packageName = "chalk";
- version = "2.1.0";
- src = fetchurl {
- url = "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz";
- sha512 = "LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==";
- };
- };
"chalk-2.4.2" = {
name = "chalk";
packageName = "chalk";
@@ -508,31 +553,31 @@ let
sha1 = "c0a1d2f3a7092e03774bfa83f14c0fc5790a8667";
};
};
- "chokidar-2.1.2" = {
+ "chokidar-3.0.2" = {
name = "chokidar";
packageName = "chokidar";
- version = "2.1.2";
+ version = "3.0.2";
src = fetchurl {
- url = "https://registry.npmjs.org/chokidar/-/chokidar-2.1.2.tgz";
- sha512 = "IwXUx0FXc5ibYmPC2XeEj5mpXoV66sR+t3jqu2NS2GYwCktt3KF1/Qqjws/NkegajBA4RbZ5+DDwlOiJsxDHEg==";
+ url = "https://registry.npmjs.org/chokidar/-/chokidar-3.0.2.tgz";
+ sha512 = "c4PR2egjNjI1um6bamCQ6bUNPDiyofNQruHvKgHQ4gDUP/ITSVSzNsiI5OWtHOsX323i5ha/kk4YmOZ1Ktg7KA==";
};
};
- "chokidar-3.0.0" = {
+ "chokidar-3.2.1" = {
name = "chokidar";
packageName = "chokidar";
- version = "3.0.0";
+ version = "3.2.1";
src = fetchurl {
- url = "https://registry.npmjs.org/chokidar/-/chokidar-3.0.0.tgz";
- sha512 = "ebzWopcacB2J19Jsb5RPtMrzmjUZ5VAQnsL0Ztrix3lswozHbiDp+1Lg3AWSKHdwsps/W2vtshA/x3I827F78g==";
+ url = "https://registry.npmjs.org/chokidar/-/chokidar-3.2.1.tgz";
+ sha512 = "/j5PPkb5Feyps9e+jo07jUZGvkB5Aj953NrI4s8xSVScrAo/RHeILrtdb4uzR7N6aaFFxxJ+gt8mA8HfNpw76w==";
};
};
- "chownr-1.1.2" = {
+ "chownr-1.1.3" = {
name = "chownr";
packageName = "chownr";
- version = "1.1.2";
+ version = "1.1.3";
src = fetchurl {
- url = "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz";
- sha512 = "GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A==";
+ url = "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz";
+ sha512 = "i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==";
};
};
"class-utils-0.3.6" = {
@@ -544,15 +589,6 @@ let
sha512 = "qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==";
};
};
- "cli-color-1.2.0" = {
- name = "cli-color";
- packageName = "cli-color";
- version = "1.2.0";
- src = fetchurl {
- url = "https://registry.npmjs.org/cli-color/-/cli-color-1.2.0.tgz";
- sha1 = "3a5ae74fd76b6267af666e69e2afbbd01def34d1";
- };
- };
"cliui-5.0.0" = {
name = "cliui";
packageName = "cliui";
@@ -616,22 +652,13 @@ let
sha512 = "wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==";
};
};
- "commander-2.9.0" = {
- name = "commander";
- packageName = "commander";
- version = "2.9.0";
- src = fetchurl {
- url = "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz";
- sha1 = "9c99094176e12240cb22d6c5146098400fe0f7d4";
- };
- };
- "commander-3.0.0" = {
+ "commander-3.0.2" = {
name = "commander";
packageName = "commander";
- version = "3.0.0";
+ version = "3.0.2";
src = fetchurl {
- url = "https://registry.npmjs.org/commander/-/commander-3.0.0.tgz";
- sha512 = "pl3QrGOBa9RZaslQiqnnKX2J068wcQw7j9AIaBQ9/JEp5RY6je4jKTImg0Bd+rpoONSe7GUFSgkxLeo17m3Pow==";
+ url = "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz";
+ sha512 = "Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==";
};
};
"component-emitter-1.3.0" = {
@@ -670,15 +697,6 @@ let
sha512 = "a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==";
};
};
- "connect-pushstate-1.1.0" = {
- name = "connect-pushstate";
- packageName = "connect-pushstate";
- version = "1.1.0";
- src = fetchurl {
- url = "https://registry.npmjs.org/connect-pushstate/-/connect-pushstate-1.1.0.tgz";
- sha1 = "bcab224271c439604a0fb0f614c0a5f563e88e24";
- };
- };
"content-disposition-0.5.2" = {
name = "content-disposition";
packageName = "content-disposition";
@@ -742,22 +760,22 @@ let
sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d";
};
};
- "core-js-2.6.9" = {
+ "core-js-2.6.10" = {
name = "core-js";
packageName = "core-js";
- version = "2.6.9";
+ version = "2.6.10";
src = fetchurl {
- url = "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz";
- sha512 = "HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==";
+ url = "https://registry.npmjs.org/core-js/-/core-js-2.6.10.tgz";
+ sha512 = "I39t74+4t+zau64EN1fE5v2W31Adtc/REhzWN+gWRRXg6WH5qAsZm62DHpQ1+Yhe4047T55jvzz7MUqF/dBBlA==";
};
};
- "core-js-3.2.1" = {
+ "core-js-3.3.5" = {
name = "core-js";
packageName = "core-js";
- version = "3.2.1";
+ version = "3.3.5";
src = fetchurl {
- url = "https://registry.npmjs.org/core-js/-/core-js-3.2.1.tgz";
- sha512 = "Qa5XSVefSVPRxy2XfUC13WbvqkxhkwB3ve+pgCQveNgYzbM/UxZeu1dcOX/xr4UmfUd+muuvsaxilQzCyUurMw==";
+ url = "https://registry.npmjs.org/core-js/-/core-js-3.3.5.tgz";
+ sha512 = "0J3K+Par/ZydhKg8pEiTcK/9d65/nqJOzY62uMkjeBmt05fDOt/khUVjDdh8TpeIuGQDy1yLDDCjiWN/8pFIuw==";
};
};
"core-util-is-1.0.2" = {
@@ -778,13 +796,13 @@ let
sha1 = "06be7abef947a3f14a30fd610671d401bca8b7b6";
};
};
- "cross-spawn-4.0.0" = {
- name = "cross-spawn";
- packageName = "cross-spawn";
- version = "4.0.0";
+ "crocks-0.12.1" = {
+ name = "crocks";
+ packageName = "crocks";
+ version = "0.12.1";
src = fetchurl {
- url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.0.tgz";
- sha1 = "8254774ab4786b8c5b3cf4dfba66ce563932c252";
+ url = "https://registry.npmjs.org/crocks/-/crocks-0.12.1.tgz";
+ sha512 = "2qCRJwBmPlRQXzd50k9gt9PaItultOP8lj/cKSH2Eai9aeBuNqAnDuyolAm9TGn6Pw/4BgbxtPJLU1S+tQ4WMQ==";
};
};
"cross-spawn-5.0.1" = {
@@ -805,6 +823,24 @@ let
sha512 = "eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==";
};
};
+ "cross-spawn-7.0.0" = {
+ name = "cross-spawn";
+ packageName = "cross-spawn";
+ version = "7.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.0.tgz";
+ sha512 = "6U/8SMK2FBNnB21oQ4+6Nsodxanw1gTkntYA2zBdkFYFu3ZDx65P2ONEXGSvob/QS6REjVHQ9zxzdOafwFdstw==";
+ };
+ };
+ "cross-spawn-7.0.1" = {
+ name = "cross-spawn";
+ packageName = "cross-spawn";
+ version = "7.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz";
+ sha512 = "u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==";
+ };
+ };
"crypt-0.0.2" = {
name = "crypt";
packageName = "crypt";
@@ -814,15 +850,6 @@ let
sha1 = "88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b";
};
};
- "d-1.0.1" = {
- name = "d";
- packageName = "d";
- version = "1.0.1";
- src = fetchurl {
- url = "https://registry.npmjs.org/d/-/d-1.0.1.tgz";
- sha512 = "m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==";
- };
- };
"dashdash-1.14.1" = {
name = "dashdash";
packageName = "dashdash";
@@ -886,13 +913,13 @@ let
sha512 = "LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==";
};
};
- "default-gateway-2.7.2" = {
+ "default-gateway-4.2.0" = {
name = "default-gateway";
packageName = "default-gateway";
- version = "2.7.2";
+ version = "4.2.0";
src = fetchurl {
- url = "https://registry.npmjs.org/default-gateway/-/default-gateway-2.7.2.tgz";
- sha512 = "lAc4i9QJR0YHSDFdzeBQKfZ1SRDG3hsJNEkrpcZa8QhBfidLAilT60BDEIVUUGqosFp425KOgB3uYqcnQrWafQ==";
+ url = "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz";
+ sha512 = "h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==";
};
};
"define-properties-1.1.3" = {
@@ -967,6 +994,15 @@ let
sha1 = "978857442c44749e4206613e37946205826abd80";
};
};
+ "dir-glob-3.0.1" = {
+ name = "dir-glob";
+ packageName = "dir-glob";
+ version = "3.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz";
+ sha512 = "WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==";
+ };
+ };
"duplexer3-0.1.4" = {
name = "duplexer3";
packageName = "duplexer3";
@@ -994,31 +1030,41 @@ let
sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
};
};
- "elm-serve-0.4.0" = {
- name = "elm-serve";
- packageName = "elm-serve";
- version = "0.4.0";
+ "elm-analyse-git://github.com/elm-tooling/elm-analyse#f2a983fc7bab262a3e44b46732735d8510d18876" = {
+ name = "elm-analyse";
+ packageName = "elm-analyse";
+ version = "0.16.4";
+ src = fetchgit {
+ url = "git://github.com/elm-tooling/elm-analyse";
+ rev = "f2a983fc7bab262a3e44b46732735d8510d18876";
+ sha256 = "ce2770330503a0b8fe56eb369a95e9bad13b46676ff76f5303570d731cea4de2";
+ };
+ };
+ "elm-hot-1.1.1" = {
+ name = "elm-hot";
+ packageName = "elm-hot";
+ version = "1.1.1";
src = fetchurl {
- url = "https://registry.npmjs.org/elm-serve/-/elm-serve-0.4.0.tgz";
- sha512 = "NYXzzaJT/zw8v7jzDWGXuvX3/soj+5NTLHxX0n/T6DICbmyDj8kO7rlI2wSKs9UTNjXhZ7quFQEKcgcf/SZksw==";
+ url = "https://registry.npmjs.org/elm-hot/-/elm-hot-1.1.1.tgz";
+ sha512 = "ZHjoHd2Ev6riNXNQirj3J+GKKXXwedAUikfFBYzlVL/+3CdGs96cpZ7nhAk4c5l//Qa9ymltrqX36mOlr0pPFA==";
};
};
- "elm-test-0.19.0-rev6" = {
+ "elm-test-0.19.1" = {
name = "elm-test";
packageName = "elm-test";
- version = "0.19.0-rev6";
+ version = "0.19.1";
src = fetchurl {
- url = "https://registry.npmjs.org/elm-test/-/elm-test-0.19.0-rev6.tgz";
- sha512 = "Qdy9QusZF+eT0203XBiT1Y/UhFeUjcSuyyzf3iyp32dsYpAfcoDTWHjlBVjia1CyvFauESQ4pc81nKaq6snClg==";
+ url = "https://registry.npmjs.org/elm-test/-/elm-test-0.19.1.tgz";
+ sha512 = "SyZgZ/hxq62budS3k0M1Qj1E8fIRvldSxFSm4XfzE6qRRuHAT2a82fxprZRZl1yG2GwnImGmhuKH5hSyjPpzjA==";
};
};
- "elmi-to-json-0.19.1" = {
+ "elmi-to-json-1.2.0" = {
name = "elmi-to-json";
packageName = "elmi-to-json";
- version = "0.19.1";
+ version = "1.2.0";
src = fetchurl {
- url = "https://registry.npmjs.org/elmi-to-json/-/elmi-to-json-0.19.1.tgz";
- sha512 = "O0Z3YsYU9OTb1hTDGORWxi69QjQFEIPfZVq/oc1D5lhL3swduHKY8vdKGuo+WlKVdTas99oNIsgL7yojWdYcsQ==";
+ url = "https://registry.npmjs.org/elmi-to-json/-/elmi-to-json-1.2.0.tgz";
+ sha512 = "zNinzt6/YMr11HgeBlC9Z0UM3qHkYrGsWJTjrCmgBkKnaOLUzTP5K9N3z1RltyunItXtHAxb8DFPvMxlYRPv/Q==";
};
};
"emoji-regex-7.0.3" = {
@@ -1039,22 +1085,22 @@ let
sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
};
};
- "end-of-stream-1.4.1" = {
+ "end-of-stream-1.4.4" = {
name = "end-of-stream";
packageName = "end-of-stream";
- version = "1.4.1";
+ version = "1.4.4";
src = fetchurl {
- url = "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz";
- sha512 = "1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==";
+ url = "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz";
+ sha512 = "+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==";
};
};
- "es-abstract-1.13.0" = {
+ "es-abstract-1.16.0" = {
name = "es-abstract";
packageName = "es-abstract";
- version = "1.13.0";
+ version = "1.16.0";
src = fetchurl {
- url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz";
- sha512 = "vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==";
+ url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.0.tgz";
+ sha512 = "xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg==";
};
};
"es-to-primitive-1.2.0" = {
@@ -1066,24 +1112,6 @@ let
sha512 = "qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==";
};
};
- "es5-ext-0.10.50" = {
- name = "es5-ext";
- packageName = "es5-ext";
- version = "0.10.50";
- src = fetchurl {
- url = "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.50.tgz";
- sha512 = "KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw==";
- };
- };
- "es6-iterator-2.0.3" = {
- name = "es6-iterator";
- packageName = "es6-iterator";
- version = "2.0.3";
- src = fetchurl {
- url = "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz";
- sha1 = "a7de889141a05a94b0854403b2d0a0fbfa98f3b7";
- };
- };
"es6-promisify-6.0.2" = {
name = "es6-promisify";
packageName = "es6-promisify";
@@ -1093,24 +1121,6 @@ let
sha512 = "eO6vFm0JvqGzjWIQA6QVKjxpmELfhWbDUWHm1rPfIbn55mhKPiAa5xpLmQWJrNa629ZIeQ8ZvMAi13kvrjK6Mg==";
};
};
- "es6-symbol-3.1.1" = {
- name = "es6-symbol";
- packageName = "es6-symbol";
- version = "3.1.1";
- src = fetchurl {
- url = "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz";
- sha1 = "bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77";
- };
- };
- "es6-weak-map-2.0.3" = {
- name = "es6-weak-map";
- packageName = "es6-weak-map";
- version = "2.0.3";
- src = fetchurl {
- url = "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz";
- sha512 = "p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==";
- };
- };
"escape-html-1.0.3" = {
name = "escape-html";
packageName = "escape-html";
@@ -1138,15 +1148,6 @@ let
sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
};
};
- "event-emitter-0.3.5" = {
- name = "event-emitter";
- packageName = "event-emitter";
- version = "0.3.5";
- src = fetchurl {
- url = "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz";
- sha1 = "df8c69eef1647923c7157b9ce83840610b02cc39";
- };
- };
"eventemitter3-3.1.2" = {
name = "eventemitter3";
packageName = "eventemitter3";
@@ -1165,22 +1166,22 @@ let
sha512 = "9sLAvzhI5nc8TpuQUh4ahMdCrWT00wPWz7j47/emR5+2qEfoZP5zzUXvx+vdx+H6ohhnsYC31iX04QLYJK8zTg==";
};
};
- "execa-0.10.0" = {
+ "execa-1.0.0" = {
name = "execa";
packageName = "execa";
- version = "0.10.0";
+ version = "1.0.0";
src = fetchurl {
- url = "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz";
- sha512 = "7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==";
+ url = "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz";
+ sha512 = "adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==";
};
};
- "execa-1.0.0" = {
+ "execa-3.2.0" = {
name = "execa";
packageName = "execa";
- version = "1.0.0";
+ version = "3.2.0";
src = fetchurl {
- url = "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz";
- sha512 = "adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==";
+ url = "https://registry.npmjs.org/execa/-/execa-3.2.0.tgz";
+ sha512 = "kJJfVbI/lZE1PZYDI5VPxp8zXPO9rtxOkhpZ0jMKha56AI9y2gGVC6bkukStQf0ka5Rh15BA5m7cCCH4jmHqkw==";
};
};
"expand-brackets-2.1.4" = {
@@ -1282,6 +1283,24 @@ let
sha1 = "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49";
};
};
+ "fast-diff-1.2.0" = {
+ name = "fast-diff";
+ packageName = "fast-diff";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz";
+ sha512 = "xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==";
+ };
+ };
+ "fast-glob-3.1.0" = {
+ name = "fast-glob";
+ packageName = "fast-glob";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fast-glob/-/fast-glob-3.1.0.tgz";
+ sha512 = "TrUz3THiq2Vy3bjfQUB2wNyPdGBeGmdjbzzBLhfHN4YFurYptCKwGq/TfiRavbGywFRzY6U2CdmQ1zmsY5yYaw==";
+ };
+ };
"fast-json-stable-stringify-2.0.0" = {
name = "fast-json-stable-stringify";
packageName = "fast-json-stable-stringify";
@@ -1291,6 +1310,15 @@ let
sha1 = "d5142c0caee6b1189f87d3a76111064f86c8bbf2";
};
};
+ "fastq-1.6.0" = {
+ name = "fastq";
+ packageName = "fastq";
+ version = "1.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fastq/-/fastq-1.6.0.tgz";
+ sha512 = "jmxqQ3Z/nXoeyDmWAzF9kH1aGZSis6e/SbfPmJpUnyZ0ogr6iscHQaml4wsEepEWSdtmpy+eVXmCRIMpxaXqOA==";
+ };
+ };
"fb-watchman-2.0.0" = {
name = "fb-watchman";
packageName = "fb-watchman";
@@ -1354,13 +1382,13 @@ let
sha1 = "7afbd00f8f08c5b622f97cda6f714173d547bb3f";
};
};
- "find-elm-dependencies-2.0.1" = {
+ "find-elm-dependencies-2.0.2" = {
name = "find-elm-dependencies";
packageName = "find-elm-dependencies";
- version = "2.0.1";
+ version = "2.0.2";
src = fetchurl {
- url = "https://registry.npmjs.org/find-elm-dependencies/-/find-elm-dependencies-2.0.1.tgz";
- sha512 = "KBxPjc7J1CLw90jVateMKvMYMROZRTR7/QT2I3MxT+7I6KuUQUMNUFuS/eQXQnMnyElGKQ1iyPbe7GnEuYnFXw==";
+ url = "https://registry.npmjs.org/find-elm-dependencies/-/find-elm-dependencies-2.0.2.tgz";
+ sha512 = "nM5UCbccD1G8CGK2GsM7ykG3ksOAl9E+34jiDfl07CAl2OPnLpBVWY2hlxEmIkSBfdJjSopEowWHrO0cI8RhxQ==";
};
};
"find-parent-dir-0.3.0" = {
@@ -1390,22 +1418,22 @@ let
sha1 = "c9f4886e7f7fbf0afc12d71941dce06b192aea05";
};
};
- "firstline-1.2.1" = {
+ "firstline-2.0.2" = {
name = "firstline";
packageName = "firstline";
- version = "1.2.1";
+ version = "2.0.2";
src = fetchurl {
- url = "https://registry.npmjs.org/firstline/-/firstline-1.2.1.tgz";
- sha1 = "b88673c42009f8821fac2926e99720acee924fae";
+ url = "https://registry.npmjs.org/firstline/-/firstline-2.0.2.tgz";
+ sha512 = "8KcmfI0jgSECnzdhucm0i7vrwef3BWwgjimW2YkRC5eSFwjb5DibVoA0YvgkYwwxuJi9c+7M7X3b3lX8o9B6wg==";
};
};
- "follow-redirects-1.8.1" = {
+ "follow-redirects-1.9.0" = {
name = "follow-redirects";
packageName = "follow-redirects";
- version = "1.8.1";
+ version = "1.9.0";
src = fetchurl {
- url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.8.1.tgz";
- sha512 = "micCIbldHioIegeKs41DoH0KS3AXfFzgS30qVkM6z/XOE/GJgvmsoc839NUqa1B9udYe9dQxgv7KFwng6+p/dw==";
+ url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.9.0.tgz";
+ sha512 = "CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A==";
};
};
"for-in-1.0.2" = {
@@ -1507,13 +1535,22 @@ let
sha512 = "GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==";
};
};
- "fs-minipass-1.2.6" = {
+ "fs-extra-8.1.0" = {
+ name = "fs-extra";
+ packageName = "fs-extra";
+ version = "8.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz";
+ sha512 = "yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==";
+ };
+ };
+ "fs-minipass-1.2.7" = {
name = "fs-minipass";
packageName = "fs-minipass";
- version = "1.2.6";
+ version = "1.2.7";
src = fetchurl {
- url = "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.6.tgz";
- sha512 = "crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ==";
+ url = "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz";
+ sha512 = "GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==";
};
};
"fs.realpath-1.0.0" = {
@@ -1525,31 +1562,13 @@ let
sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
};
};
- "fsevents-1.2.4" = {
- name = "fsevents";
- packageName = "fsevents";
- version = "1.2.4";
- src = fetchurl {
- url = "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz";
- sha512 = "z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==";
- };
- };
- "fsevents-1.2.9" = {
+ "fsevents-2.1.1" = {
name = "fsevents";
packageName = "fsevents";
- version = "1.2.9";
- src = fetchurl {
- url = "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz";
- sha512 = "oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==";
- };
- };
- "fsevents-2.0.7" = {
- name = "fsevents";
- packageName = "fsevents";
- version = "2.0.7";
+ version = "2.1.1";
src = fetchurl {
- url = "https://registry.npmjs.org/fsevents/-/fsevents-2.0.7.tgz";
- sha512 = "a7YT0SV3RB+DjYcppwVDLtn13UQnmg0SWZS7ezZD0UjnLwXmy8Zm21GMVGLaFGimIqcvyMQaOJBrop8MyOp1kQ==";
+ url = "https://registry.npmjs.org/fsevents/-/fsevents-2.1.1.tgz";
+ sha512 = "4FRPXWETxtigtJW/gxzEDsX1LVbPAM93VleB83kZB+ellqbHMkyt2aJfuzNLRvFPnGi6bcE5SvfxgbXPeKteJw==";
};
};
"function-bind-1.1.1" = {
@@ -1597,6 +1616,15 @@ let
sha512 = "GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==";
};
};
+ "get-stream-5.1.0" = {
+ name = "get-stream";
+ packageName = "get-stream";
+ version = "5.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz";
+ sha512 = "EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==";
+ };
+ };
"get-value-2.0.6" = {
name = "get-value";
packageName = "get-value";
@@ -1615,40 +1643,40 @@ let
sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
};
};
- "glob-7.1.1" = {
+ "glob-7.1.4" = {
name = "glob";
packageName = "glob";
- version = "7.1.1";
+ version = "7.1.4";
src = fetchurl {
- url = "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz";
- sha1 = "805211df04faaf1c63a3600306cdf5ade50b2ec8";
+ url = "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz";
+ sha512 = "hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==";
};
};
- "glob-7.1.4" = {
+ "glob-7.1.5" = {
name = "glob";
packageName = "glob";
- version = "7.1.4";
+ version = "7.1.5";
src = fetchurl {
- url = "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz";
- sha512 = "hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==";
+ url = "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz";
+ sha512 = "J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==";
};
};
- "glob-parent-3.1.0" = {
+ "glob-parent-5.1.0" = {
name = "glob-parent";
packageName = "glob-parent";
- version = "3.1.0";
+ version = "5.1.0";
src = fetchurl {
- url = "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz";
- sha1 = "9e6af6299d8d3bd2bd40430832bd113df906c5ae";
+ url = "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz";
+ sha512 = "qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==";
};
};
- "glob-parent-5.0.0" = {
- name = "glob-parent";
- packageName = "glob-parent";
- version = "5.0.0";
+ "globby-10.0.1" = {
+ name = "globby";
+ packageName = "globby";
+ version = "10.0.1";
src = fetchurl {
- url = "https://registry.npmjs.org/glob-parent/-/glob-parent-5.0.0.tgz";
- sha512 = "Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg==";
+ url = "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz";
+ sha512 = "sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==";
};
};
"got-6.7.1" = {
@@ -1669,22 +1697,13 @@ let
sha512 = "qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==";
};
};
- "graceful-fs-4.2.2" = {
+ "graceful-fs-4.2.3" = {
name = "graceful-fs";
packageName = "graceful-fs";
- version = "4.2.2";
- src = fetchurl {
- url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz";
- sha512 = "IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==";
- };
- };
- "graceful-readlink-1.0.1" = {
- name = "graceful-readlink";
- packageName = "graceful-readlink";
- version = "1.0.1";
+ version = "4.2.3";
src = fetchurl {
- url = "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz";
- sha1 = "4cafad76bc62f02fa039b2f94e9a3dd3a391a725";
+ url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz";
+ sha512 = "a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==";
};
};
"har-schema-2.0.0" = {
@@ -1723,22 +1742,22 @@ let
sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91";
};
};
- "has-flag-2.0.0" = {
+ "has-flag-3.0.0" = {
name = "has-flag";
packageName = "has-flag";
- version = "2.0.0";
+ version = "3.0.0";
src = fetchurl {
- url = "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz";
- sha1 = "e8207af1cc7b30d446cc70b734b5e8be18f88d51";
+ url = "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz";
+ sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
};
};
- "has-flag-3.0.0" = {
+ "has-flag-4.0.0" = {
name = "has-flag";
packageName = "has-flag";
- version = "3.0.0";
+ version = "4.0.0";
src = fetchurl {
- url = "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz";
- sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
+ url = "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz";
+ sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==";
};
};
"has-symbol-support-x-1.4.2" = {
@@ -1840,6 +1859,15 @@ let
sha512 = "uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==";
};
};
+ "http-errors-1.7.3" = {
+ name = "http-errors";
+ packageName = "http-errors";
+ version = "1.7.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz";
+ sha512 = "ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==";
+ };
+ };
"http-proxy-1.17.0" = {
name = "http-proxy";
packageName = "http-proxy";
@@ -1858,6 +1886,15 @@ let
sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
};
};
+ "human-signals-1.1.1" = {
+ name = "human-signals";
+ packageName = "human-signals";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz";
+ sha512 = "SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==";
+ };
+ };
"iconv-lite-0.4.19" = {
name = "iconv-lite";
packageName = "iconv-lite";
@@ -1876,6 +1913,15 @@ let
sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==";
};
};
+ "ignore-5.1.4" = {
+ name = "ignore";
+ packageName = "ignore";
+ version = "5.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz";
+ sha512 = "MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==";
+ };
+ };
"inflight-1.0.6" = {
name = "inflight";
packageName = "inflight";
@@ -1912,13 +1958,13 @@ let
sha512 = "RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==";
};
};
- "internal-ip-3.0.1" = {
+ "internal-ip-4.3.0" = {
name = "internal-ip";
packageName = "internal-ip";
- version = "3.0.1";
+ version = "4.3.0";
src = fetchurl {
- url = "https://registry.npmjs.org/internal-ip/-/internal-ip-3.0.1.tgz";
- sha512 = "NXXgESC2nNVtU+pqmC9e6R8B1GpKxzsAQhffvh5AL79qKnodd+L7tnEQmTiUAVngqLalPbSqRA7XGIEL5nCd0Q==";
+ url = "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz";
+ sha512 = "S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==";
};
};
"into-stream-3.1.0" = {
@@ -1975,15 +2021,6 @@ let
sha512 = "m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==";
};
};
- "is-binary-path-1.0.1" = {
- name = "is-binary-path";
- packageName = "is-binary-path";
- version = "1.0.1";
- src = fetchurl {
- url = "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz";
- sha1 = "75f16642b480f187a711c814161fd3a4a7655898";
- };
- };
"is-binary-path-2.1.0" = {
name = "is-binary-path";
packageName = "is-binary-path";
@@ -2092,15 +2129,6 @@ let
sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
};
};
- "is-glob-3.1.0" = {
- name = "is-glob";
- packageName = "is-glob";
- version = "3.1.0";
- src = fetchurl {
- url = "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz";
- sha1 = "7ba5ae24217804ac70707b96922567486cc3e84a";
- };
- };
"is-glob-4.0.1" = {
name = "is-glob";
packageName = "is-glob";
@@ -2155,15 +2183,6 @@ let
sha512 = "h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==";
};
};
- "is-promise-2.1.0" = {
- name = "is-promise";
- packageName = "is-promise";
- version = "2.1.0";
- src = fetchurl {
- url = "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz";
- sha1 = "79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa";
- };
- };
"is-redirect-1.0.0" = {
name = "is-redirect";
packageName = "is-redirect";
@@ -2182,13 +2201,13 @@ let
sha1 = "5517489b547091b0930e095654ced25ee97e9491";
};
};
- "is-retry-allowed-1.1.0" = {
+ "is-retry-allowed-1.2.0" = {
name = "is-retry-allowed";
packageName = "is-retry-allowed";
- version = "1.1.0";
+ version = "1.2.0";
src = fetchurl {
- url = "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz";
- sha1 = "11a060568b67339444033d0125a61a20d564fb34";
+ url = "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz";
+ sha512 = "RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==";
};
};
"is-stream-1.1.0" = {
@@ -2200,6 +2219,15 @@ let
sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44";
};
};
+ "is-stream-2.0.0" = {
+ name = "is-stream";
+ packageName = "is-stream";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz";
+ sha512 = "XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==";
+ };
+ };
"is-symbol-1.0.2" = {
name = "is-symbol";
packageName = "is-symbol";
@@ -2443,13 +2471,13 @@ let
sha512 = "7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==";
};
};
- "lodash-4.17.11" = {
+ "lodash-4.17.15" = {
name = "lodash";
packageName = "lodash";
- version = "4.17.11";
+ version = "4.17.15";
src = fetchurl {
- url = "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz";
- sha512 = "cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==";
+ url = "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz";
+ sha512 = "8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==";
};
};
"lowercase-keys-1.0.0" = {
@@ -2479,15 +2507,6 @@ let
sha512 = "sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==";
};
};
- "lru-queue-0.1.0" = {
- name = "lru-queue";
- packageName = "lru-queue";
- version = "0.1.0";
- src = fetchurl {
- url = "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz";
- sha1 = "2738bd9f0d3cf4f84490c5736c48699ac632cda3";
- };
- };
"makeerror-1.0.11" = {
name = "makeerror";
packageName = "makeerror";
@@ -2533,15 +2552,6 @@ let
sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
};
};
- "memoizee-0.4.14" = {
- name = "memoizee";
- packageName = "memoizee";
- version = "0.4.14";
- src = fetchurl {
- url = "https://registry.npmjs.org/memoizee/-/memoizee-0.4.14.tgz";
- sha512 = "/SWFvWegAIYAO4NQMpcX+gcra0yEZu4OntmUdrBaWrJncxOqAziGFlHxc7yjKVK2uu3lpPW27P27wkR82wA8mg==";
- };
- };
"merge-descriptors-1.0.1" = {
name = "merge-descriptors";
packageName = "merge-descriptors";
@@ -2551,6 +2561,24 @@ let
sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61";
};
};
+ "merge-stream-2.0.0" = {
+ name = "merge-stream";
+ packageName = "merge-stream";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz";
+ sha512 = "abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==";
+ };
+ };
+ "merge2-1.3.0" = {
+ name = "merge2";
+ packageName = "merge2";
+ version = "1.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz";
+ sha512 = "2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==";
+ };
+ };
"methods-1.1.2" = {
name = "methods";
packageName = "methods";
@@ -2569,9 +2597,18 @@ let
sha512 = "MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==";
};
};
- "mime-1.4.1" = {
- name = "mime";
- packageName = "mime";
+ "micromatch-4.0.2" = {
+ name = "micromatch";
+ packageName = "micromatch";
+ version = "4.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz";
+ sha512 = "y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==";
+ };
+ };
+ "mime-1.4.1" = {
+ name = "mime";
+ packageName = "mime";
version = "1.4.1";
src = fetchurl {
url = "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz";
@@ -2587,6 +2624,15 @@ let
sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==";
};
};
+ "mime-2.4.3" = {
+ name = "mime";
+ packageName = "mime";
+ version = "2.4.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mime/-/mime-2.4.3.tgz";
+ sha512 = "QgrPRJfE+riq5TPZMcHZOtm8c6K/yYrMbKIoRfapfiGLxS8OTeIfRhUGW5LU7MlRa52KOAGCfUNruqLrIBvWZw==";
+ };
+ };
"mime-db-1.40.0" = {
name = "mime-db";
packageName = "mime-db";
@@ -2605,6 +2651,15 @@ let
sha512 = "WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==";
};
};
+ "mimic-fn-2.1.0" = {
+ name = "mimic-fn";
+ packageName = "mimic-fn";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz";
+ sha512 = "OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==";
+ };
+ };
"mimic-response-1.0.1" = {
name = "mimic-response";
packageName = "mimic-response";
@@ -2641,22 +2696,22 @@ let
sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284";
};
};
- "minipass-2.4.0" = {
+ "minipass-2.9.0" = {
name = "minipass";
packageName = "minipass";
- version = "2.4.0";
+ version = "2.9.0";
src = fetchurl {
- url = "https://registry.npmjs.org/minipass/-/minipass-2.4.0.tgz";
- sha512 = "6PmOuSP4NnZXzs2z6rbwzLJu/c5gdzYg1mRI/WIYdx45iiX7T+a4esOzavD6V/KmBzAaopFSTZPZcUx73bqKWA==";
+ url = "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz";
+ sha512 = "wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==";
};
};
- "minizlib-1.2.1" = {
+ "minizlib-1.3.3" = {
name = "minizlib";
packageName = "minizlib";
- version = "1.2.1";
+ version = "1.3.3";
src = fetchurl {
- url = "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz";
- sha512 = "7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==";
+ url = "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz";
+ sha512 = "6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==";
};
};
"mixin-deep-1.3.2" = {
@@ -2713,13 +2768,13 @@ let
sha1 = "5041049269c96633c866386960b2f4289e75e5b0";
};
};
- "mustache-3.0.3" = {
+ "mustache-3.1.0" = {
name = "mustache";
packageName = "mustache";
- version = "3.0.3";
+ version = "3.1.0";
src = fetchurl {
- url = "https://registry.npmjs.org/mustache/-/mustache-3.0.3.tgz";
- sha512 = "vM5FkMHamTYmVYeAujypihuPrJQDtaUIlKeeVb1AMJ73OZLtWiF7GprqrjxD0gJWT53W9JfqXxf97nXQjMQkqA==";
+ url = "https://registry.npmjs.org/mustache/-/mustache-3.1.0.tgz";
+ sha512 = "3Bxq1R5LBZp7fbFPZzFe5WN4s0q3+gxZaZuZVY+QctYJiCiVgXHOTIC0/HgZuOPFt/6BQcx5u0H2CUOxT/RoGQ==";
};
};
"nan-2.14.0" = {
@@ -2749,15 +2804,6 @@ let
sha512 = "hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==";
};
};
- "next-tick-1.0.0" = {
- name = "next-tick";
- packageName = "next-tick";
- version = "1.0.0";
- src = fetchurl {
- url = "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz";
- sha1 = "ca86d1fe8828169b0120208e3dc8424b9db8342c";
- };
- };
"nice-try-1.0.5" = {
name = "nice-try";
packageName = "nice-try";
@@ -2767,13 +2813,13 @@ let
sha512 = "1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==";
};
};
- "node-elm-compiler-5.0.3" = {
+ "node-elm-compiler-5.0.4" = {
name = "node-elm-compiler";
packageName = "node-elm-compiler";
- version = "5.0.3";
+ version = "5.0.4";
src = fetchurl {
- url = "https://registry.npmjs.org/node-elm-compiler/-/node-elm-compiler-5.0.3.tgz";
- sha512 = "I3CWm/ExYYQ/a9bjB0OL9VsGa3Lmgbb8QOs4y2kEiB/DTkTqkcTaCr/lVyOYjRpgR25TsmOBATscsg6H6aC9Hg==";
+ url = "https://registry.npmjs.org/node-elm-compiler/-/node-elm-compiler-5.0.4.tgz";
+ sha512 = "VQsT8QSierYGkHzRed+b4MnccQVF1+qPHunE8jBoU7jD6YpuRqCDPzEoC2zfyEJS80qVnlMZrqobLnyjzX9lJg==";
};
};
"node-int64-0.4.0" = {
@@ -2839,13 +2885,13 @@ let
sha1 = "35a9232dfa35d7067b4cb2ddf2357b1871536c5f";
};
};
- "npx-10.2.0" = {
- name = "npx";
- packageName = "npx";
- version = "10.2.0";
+ "npm-run-path-4.0.0" = {
+ name = "npm-run-path";
+ packageName = "npm-run-path";
+ version = "4.0.0";
src = fetchurl {
- url = "https://registry.npmjs.org/npx/-/npx-10.2.0.tgz";
- sha512 = "DqjFkzET0DeaXYXNJnirnvEovwk4lBa33ZQCw1jxMuas4yH9jdU8q2U8L3cLaB2UqzgmW2Ssqk8lcGiPRL8pRg==";
+ url = "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.0.tgz";
+ sha512 = "8eyAOAH+bYXFPSnNnKr3J+yoybe8O87Is5rtAQ8qRczJz1ajcsjg8l2oZqP+Ppx15Ii3S1vUTjQN2h4YO2tWWQ==";
};
};
"oauth-sign-0.9.0" = {
@@ -2875,6 +2921,15 @@ let
sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c";
};
};
+ "object-inspect-1.6.0" = {
+ name = "object-inspect";
+ packageName = "object-inspect";
+ version = "1.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz";
+ sha512 = "GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==";
+ };
+ };
"object-keys-1.1.1" = {
name = "object-keys";
packageName = "object-keys";
@@ -2929,13 +2984,22 @@ let
sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
};
};
- "opn-5.3.0" = {
- name = "opn";
- packageName = "opn";
- version = "5.3.0";
+ "onetime-5.1.0" = {
+ name = "onetime";
+ packageName = "onetime";
+ version = "5.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz";
+ sha512 = "5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==";
+ };
+ };
+ "open-6.4.0" = {
+ name = "open";
+ packageName = "open";
+ version = "6.4.0";
src = fetchurl {
- url = "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz";
- sha512 = "bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==";
+ url = "https://registry.npmjs.org/open/-/open-6.4.0.tgz";
+ sha512 = "IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==";
};
};
"opn-5.4.0" = {
@@ -3001,6 +3065,15 @@ let
sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae";
};
};
+ "p-finally-2.0.1" = {
+ name = "p-finally";
+ packageName = "p-finally";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz";
+ sha512 = "vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==";
+ };
+ };
"p-is-promise-1.1.0" = {
name = "p-is-promise";
packageName = "p-is-promise";
@@ -3073,15 +3146,6 @@ let
sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14";
};
};
- "path-dirname-1.0.2" = {
- name = "path-dirname";
- packageName = "path-dirname";
- version = "1.0.2";
- src = fetchurl {
- url = "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz";
- sha1 = "cc33d24d525e099a5388c0336c6e32b9160609e0";
- };
- };
"path-exists-3.0.0" = {
name = "path-exists";
packageName = "path-exists";
@@ -3109,6 +3173,15 @@ let
sha1 = "411cadb574c5a140d3a4b1910d40d80cc9f40b40";
};
};
+ "path-key-3.1.0" = {
+ name = "path-key";
+ packageName = "path-key";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-key/-/path-key-3.1.0.tgz";
+ sha512 = "8cChqz0RP6SHJkMt48FW0A7+qUOn+OsnOsVtzI59tZ8m+5bCSk7hzwET0pulwOM2YMn9J1efb07KB9l9f30SGg==";
+ };
+ };
"path-to-regexp-0.1.7" = {
name = "path-to-regexp";
packageName = "path-to-regexp";
@@ -3118,13 +3191,22 @@ let
sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c";
};
};
- "pem-1.13.2" = {
+ "path-type-4.0.0" = {
+ name = "path-type";
+ packageName = "path-type";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz";
+ sha512 = "gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==";
+ };
+ };
+ "pem-1.14.2" = {
name = "pem";
packageName = "pem";
- version = "1.13.2";
+ version = "1.14.2";
src = fetchurl {
- url = "https://registry.npmjs.org/pem/-/pem-1.13.2.tgz";
- sha512 = "MPJWuEb/r6AG+GpZi2JnfNtGAZDeL/8+ERKwXEWRuST5i+4lq/Uy36B352OWIUSPQGH+HR1HEDcIDi+8cKxXNg==";
+ url = "https://registry.npmjs.org/pem/-/pem-1.14.2.tgz";
+ sha512 = "TOnPtq3ZFnCniOZ+rka4pk8UIze9xG1qI+wNE7EmkiR/cg+53uVvk5QbkWZ7M6RsuOxzz62FW1hlAobJr/lTOA==";
};
};
"performance-now-2.1.0" = {
@@ -3136,13 +3218,13 @@ let
sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
};
};
- "picomatch-2.0.7" = {
+ "picomatch-2.1.0" = {
name = "picomatch";
packageName = "picomatch";
- version = "2.0.7";
+ version = "2.1.0";
src = fetchurl {
- url = "https://registry.npmjs.org/picomatch/-/picomatch-2.0.7.tgz";
- sha512 = "oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA==";
+ url = "https://registry.npmjs.org/picomatch/-/picomatch-2.1.0.tgz";
+ sha512 = "uhnEDzAbrcJ8R3g2fANnSuXZMBtkpSjxTTgn2LeSiQlfmq72enQJWdQllXW24MBLYnA1SBD2vfvx2o0Zw3Ielw==";
};
};
"pify-3.0.0" = {
@@ -3154,6 +3236,15 @@ let
sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176";
};
};
+ "pjson-1.0.9" = {
+ name = "pjson";
+ packageName = "pjson";
+ version = "1.0.9";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pjson/-/pjson-1.0.9.tgz";
+ sha512 = "4hRJH3YzkUpOlShRzhyxAmThSNnAaIlWZCAb27hd0pVUAXNUAHAO7XZbsPPvsCYwBFEScTmCCL6DGE8NyZ8BdQ==";
+ };
+ };
"posix-character-classes-0.1.1" = {
name = "posix-character-classes";
packageName = "posix-character-classes";
@@ -3226,13 +3317,13 @@ let
sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3";
};
};
- "psl-1.3.0" = {
+ "psl-1.4.0" = {
name = "psl";
packageName = "psl";
- version = "1.3.0";
+ version = "1.4.0";
src = fetchurl {
- url = "https://registry.npmjs.org/psl/-/psl-1.3.0.tgz";
- sha512 = "avHdspHO+9rQTLbv1RO+MPYeP/SzsCoxofjVnHanETfQhTJrmB0HlDoW+EiN/R+C0BZ+gERab9NY0lPN2TxNag==";
+ url = "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz";
+ sha512 = "HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw==";
};
};
"pump-3.0.0" = {
@@ -3298,15 +3389,6 @@ let
sha512 = "gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==";
};
};
- "querystringify-2.1.1" = {
- name = "querystringify";
- packageName = "querystringify";
- version = "2.1.1";
- src = fetchurl {
- url = "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz";
- sha512 = "w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==";
- };
- };
"range-parser-1.2.1" = {
name = "range-parser";
packageName = "range-parser";
@@ -3361,22 +3443,22 @@ let
sha512 = "tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==";
};
};
- "readdirp-2.2.1" = {
+ "readdirp-3.1.3" = {
name = "readdirp";
packageName = "readdirp";
- version = "2.2.1";
+ version = "3.1.3";
src = fetchurl {
- url = "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz";
- sha512 = "1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==";
+ url = "https://registry.npmjs.org/readdirp/-/readdirp-3.1.3.tgz";
+ sha512 = "ZOsfTGkjO2kqeR5Mzr5RYDbTGYneSkdNKX2fOX2P5jF7vMrd/GNnIAUtDldeHHumHUCQ3V05YfWUdxMPAsRu9Q==";
};
};
- "readdirp-3.1.2" = {
+ "readdirp-3.2.0" = {
name = "readdirp";
packageName = "readdirp";
- version = "3.1.2";
+ version = "3.2.0";
src = fetchurl {
- url = "https://registry.npmjs.org/readdirp/-/readdirp-3.1.2.tgz";
- sha512 = "8rhl0xs2cxfVsqzreYCvs8EwBfn/DhVdqtoLmw19uI3SC5avYX9teCurlErfpPXGmYtMHReGaP2RsLnFvz/lnw==";
+ url = "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz";
+ sha512 = "crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==";
};
};
"regenerator-runtime-0.9.6" = {
@@ -3523,13 +3605,22 @@ let
sha512 = "TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==";
};
};
- "rimraf-2.2.8" = {
+ "reusify-1.0.4" = {
+ name = "reusify";
+ packageName = "reusify";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz";
+ sha512 = "U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==";
+ };
+ };
+ "rimraf-2.6.3" = {
name = "rimraf";
packageName = "rimraf";
- version = "2.2.8";
+ version = "2.6.3";
src = fetchurl {
- url = "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz";
- sha1 = "e439be2aaee327321952730f99a8929e4fc50582";
+ url = "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz";
+ sha512 = "mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==";
};
};
"rimraf-2.7.1" = {
@@ -3550,6 +3641,24 @@ let
sha512 = "nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==";
};
};
+ "run-parallel-1.1.9" = {
+ name = "run-parallel";
+ packageName = "run-parallel";
+ version = "1.1.9";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz";
+ sha512 = "DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==";
+ };
+ };
+ "rxjs-6.5.3" = {
+ name = "rxjs";
+ packageName = "rxjs";
+ version = "6.5.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz";
+ sha512 = "wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==";
+ };
+ };
"safe-buffer-5.1.1" = {
name = "safe-buffer";
packageName = "safe-buffer";
@@ -3739,6 +3848,15 @@ let
sha1 = "44aac65b695b03398968c39f363fee5deafdf1ea";
};
};
+ "shebang-command-2.0.0" = {
+ name = "shebang-command";
+ packageName = "shebang-command";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz";
+ sha512 = "kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==";
+ };
+ };
"shebang-regex-1.0.0" = {
name = "shebang-regex";
packageName = "shebang-regex";
@@ -3748,6 +3866,15 @@ let
sha1 = "da42f49740c0b42db2ca9728571cb190c98efea3";
};
};
+ "shebang-regex-3.0.0" = {
+ name = "shebang-regex";
+ packageName = "shebang-regex";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz";
+ sha512 = "7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==";
+ };
+ };
"signal-exit-3.0.2" = {
name = "signal-exit";
packageName = "signal-exit";
@@ -3757,6 +3884,15 @@ let
sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d";
};
};
+ "slash-3.0.0" = {
+ name = "slash";
+ packageName = "slash";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz";
+ sha512 = "g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==";
+ };
+ };
"snapdragon-0.8.2" = {
name = "snapdragon";
packageName = "snapdragon";
@@ -3901,6 +4037,24 @@ let
sha512 = "vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==";
};
};
+ "string.prototype.trimleft-2.1.0" = {
+ name = "string.prototype.trimleft";
+ packageName = "string.prototype.trimleft";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz";
+ sha512 = "FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==";
+ };
+ };
+ "string.prototype.trimright-2.1.0" = {
+ name = "string.prototype.trimright";
+ packageName = "string.prototype.trimright";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz";
+ sha512 = "fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==";
+ };
+ };
"string_decoder-0.10.31" = {
name = "string_decoder";
packageName = "string_decoder";
@@ -3946,6 +4100,15 @@ let
sha1 = "bb43ff5598a6eb05d89b59fcd129c983313606bf";
};
};
+ "strip-final-newline-2.0.0" = {
+ name = "strip-final-newline";
+ packageName = "strip-final-newline";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz";
+ sha512 = "BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==";
+ };
+ };
"strip-json-comments-2.0.1" = {
name = "strip-json-comments";
packageName = "strip-json-comments";
@@ -3964,15 +4127,6 @@ let
sha1 = "d78c14398297d604fe6588dc3b03deca7b91ba93";
};
};
- "supervisor-0.12.0" = {
- name = "supervisor";
- packageName = "supervisor";
- version = "0.12.0";
- src = fetchurl {
- url = "https://registry.npmjs.org/supervisor/-/supervisor-0.12.0.tgz";
- sha1 = "de7e6337015b291851c10f3538c4a7f04917ecc1";
- };
- };
"supports-color-2.0.0" = {
name = "supports-color";
packageName = "supports-color";
@@ -3982,22 +4136,22 @@ let
sha1 = "535d045ce6b6363fa40117084629995e9df324c7";
};
};
- "supports-color-4.2.0" = {
+ "supports-color-5.5.0" = {
name = "supports-color";
packageName = "supports-color";
- version = "4.2.0";
+ version = "5.5.0";
src = fetchurl {
- url = "https://registry.npmjs.org/supports-color/-/supports-color-4.2.0.tgz";
- sha512 = "Ts0Mu/A1S1aZxEJNG88I4Oc9rcZSBFNac5e27yh4j2mqbhZSSzR1Ah79EYwSn9Zuh7lrlGD2cVGzw1RKGzyLSg==";
+ url = "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz";
+ sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==";
};
};
- "supports-color-5.5.0" = {
+ "supports-color-7.1.0" = {
name = "supports-color";
packageName = "supports-color";
- version = "5.5.0";
+ version = "7.1.0";
src = fetchurl {
- url = "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz";
- sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==";
+ url = "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz";
+ sha512 = "oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==";
};
};
"syncprompt-2.0.0" = {
@@ -4009,22 +4163,22 @@ let
sha512 = "tPYCsLGWTDRlET7cen2iAwbmO+lSwfIdKoLkUPC41t/54UhqbzpwXL4RhODu5fQnmZdQZlEFKeD0W/BysU5WEg==";
};
};
- "tar-4.4.10" = {
+ "tar-4.4.13" = {
name = "tar";
packageName = "tar";
- version = "4.4.10";
+ version = "4.4.13";
src = fetchurl {
- url = "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz";
- sha512 = "g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==";
+ url = "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz";
+ sha512 = "w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==";
};
};
- "temp-0.8.3" = {
+ "temp-0.9.0" = {
name = "temp";
packageName = "temp";
- version = "0.8.3";
+ version = "0.9.0";
src = fetchurl {
- url = "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz";
- sha1 = "e0c6bc4d26b903124410e4fed81103014dfc1f59";
+ url = "https://registry.npmjs.org/temp/-/temp-0.9.0.tgz";
+ sha512 = "YfUhPQCJoNQE5N+FJQcdPz63O3x3sdT4Xju69Gj4iZe0lBKOtnAMi0SLj9xKhGkcGhsxThvTJ/usxtFPo438zQ==";
};
};
"through-2.3.8" = {
@@ -4063,15 +4217,6 @@ let
sha1 = "f32eacac5a175bea25d7fab565ab3ed8741ef56f";
};
};
- "timers-ext-0.1.7" = {
- name = "timers-ext";
- packageName = "timers-ext";
- version = "0.1.7";
- src = fetchurl {
- url = "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz";
- sha512 = "b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==";
- };
- };
"tmp-0.0.31" = {
name = "tmp";
packageName = "tmp";
@@ -4171,6 +4316,15 @@ let
sha1 = "61dbc2d53b69ff6091a12a168fd7d433107e40f1";
};
};
+ "tslib-1.10.0" = {
+ name = "tslib";
+ packageName = "tslib";
+ version = "1.10.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz";
+ sha512 = "qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==";
+ };
+ };
"tunnel-agent-0.6.0" = {
name = "tunnel-agent";
packageName = "tunnel-agent";
@@ -4189,15 +4343,6 @@ let
sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
};
};
- "type-1.0.3" = {
- name = "type";
- packageName = "type";
- version = "1.0.3";
- src = fetchurl {
- url = "https://registry.npmjs.org/type/-/type-1.0.3.tgz";
- sha512 = "51IMtNfVcee8+9GJvj0spSuFcZHe9vSib6Xtgsny1Km9ugyz2mbS08I3rsUIRYgJohFRFU1160sgRodYz378Hg==";
- };
- };
"type-is-1.6.18" = {
name = "type-is";
packageName = "type-is";
@@ -4288,15 +4433,6 @@ let
sha512 = "NG1h/MdGIX3HzyqMjyj1laBCmlPYhcO4xEy7gEqqzGiSLw7XqDQCnY4nYSn5XSaH8mQ6TFkaujrO8d/PIZN85A==";
};
};
- "upath-1.1.2" = {
- name = "upath";
- packageName = "upath";
- version = "1.1.2";
- src = fetchurl {
- url = "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz";
- sha512 = "kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==";
- };
- };
"uri-js-4.2.2" = {
name = "uri-js";
packageName = "uri-js";
@@ -4315,15 +4451,6 @@ let
sha1 = "da937f7a62e21fec1fd18d49b35c2935067a6c72";
};
};
- "url-parse-1.4.3" = {
- name = "url-parse";
- packageName = "url-parse";
- version = "1.4.3";
- src = fetchurl {
- url = "https://registry.npmjs.org/url-parse/-/url-parse-1.4.3.tgz";
- sha512 = "rh+KuAW36YKo0vClhQzLLveoj8FwPJNu65xLb7Mrt+eZht0IPT0IXgSv8gcMegZ6NvjJUALf6Mf25POlMwD1Fw==";
- };
- };
"url-parse-lax-1.0.0" = {
name = "url-parse-lax";
packageName = "url-parse-lax";
@@ -4414,6 +4541,60 @@ let
sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
};
};
+ "vscode-jsonrpc-4.0.0" = {
+ name = "vscode-jsonrpc";
+ packageName = "vscode-jsonrpc";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-4.0.0.tgz";
+ sha512 = "perEnXQdQOJMTDFNv+UF3h1Y0z4iSiaN9jIlb0OqIYgosPCZGYh/MCUlkFtV2668PL69lRDO32hmvL2yiidUYg==";
+ };
+ };
+ "vscode-languageserver-5.2.1" = {
+ name = "vscode-languageserver";
+ packageName = "vscode-languageserver";
+ version = "5.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-5.2.1.tgz";
+ sha512 = "GuayqdKZqAwwaCUjDvMTAVRPJOp/SLON3mJ07eGsx/Iq9HjRymhKWztX41rISqDKhHVVyFM+IywICyZDla6U3A==";
+ };
+ };
+ "vscode-languageserver-protocol-3.14.1" = {
+ name = "vscode-languageserver-protocol";
+ packageName = "vscode-languageserver-protocol";
+ version = "3.14.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.14.1.tgz";
+ sha512 = "IL66BLb2g20uIKog5Y2dQ0IiigW0XKrvmWiOvc0yXw80z3tMEzEnHjaGAb3ENuU7MnQqgnYJ1Cl2l9RvNgDi4g==";
+ };
+ };
+ "vscode-languageserver-types-3.14.0" = {
+ name = "vscode-languageserver-types";
+ packageName = "vscode-languageserver-types";
+ version = "3.14.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.14.0.tgz";
+ sha512 = "lTmS6AlAlMHOvPQemVwo3CezxBp0sNB95KNPkqp3Nxd5VFEnuG1ByM0zlRWos0zjO3ZWtkvhal0COgiV1xIA4A==";
+ };
+ };
+ "vscode-uri-1.0.8" = {
+ name = "vscode-uri";
+ packageName = "vscode-uri";
+ version = "1.0.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.8.tgz";
+ sha512 = "obtSWTlbJ+a+TFRYGaUumtVwb+InIUVI0Lu0VBUAPmj2cU5JutEXg3xUE0c2J5Tcy7h2DEKVJBFi+Y9ZSFzzPQ==";
+ };
+ };
+ "vscode-uri-2.1.1" = {
+ name = "vscode-uri";
+ packageName = "vscode-uri";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/vscode-uri/-/vscode-uri-2.1.1.tgz";
+ sha512 = "eY9jmGoEnVf8VE8xr5znSah7Qt1P/xsCdErz+g8HYZtJ7bZqKH5E3d+6oVNm1AC/c6IHUDokbmVXKOi4qPAC9A==";
+ };
+ };
"walker-1.0.7" = {
name = "walker";
packageName = "walker";
@@ -4423,6 +4604,15 @@ let
sha1 = "2f7f9b8fd10d677262b18a884e28d19618e028fb";
};
};
+ "web-tree-sitter-0.15.10" = {
+ name = "web-tree-sitter";
+ packageName = "web-tree-sitter";
+ version = "0.15.10";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/web-tree-sitter/-/web-tree-sitter-0.15.10.tgz";
+ sha512 = "8utowZB5h5djbotf1umt4na9Vt6Q18ZICUeC9jW4qWWjUrtQ2xvxDuAJ+EibmqUJBAKATrDMXnY2xYaskGg8wg==";
+ };
+ };
"which-1.3.1" = {
name = "which";
packageName = "which";
@@ -4432,6 +4622,15 @@ let
sha512 = "HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==";
};
};
+ "which-2.0.1" = {
+ name = "which";
+ packageName = "which";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/which/-/which-2.0.1.tgz";
+ sha512 = "N7GBZOTswtB9lkQBZA4+zAXrjEIWAUOB93AvzUiudRzRxhUdLURQ7D/gAIMY1gatT/LTbmbcv8SiYazy3eYB7w==";
+ };
+ };
"which-module-2.0.0" = {
name = "which-module";
packageName = "which-module";
@@ -4477,15 +4676,6 @@ let
sha512 = "8A/uRMnQy8KCQsmep1m7Bk+z/+LIkeF7w+TDMLtX1iZm5Hq9HsUDmgFGaW1ACW5Cj0b2Qo7wCvRhYN2ErUVp/A==";
};
};
- "ws-5.2.0" = {
- name = "ws";
- packageName = "ws";
- version = "5.2.0";
- src = fetchurl {
- url = "https://registry.npmjs.org/ws/-/ws-5.2.0.tgz";
- sha512 = "c18dMeW+PEQdDFzkhDsnBAlS4Z8KGStBQQUcQ5mf7Nf689jyGk0594L+i9RaQuf4gog6SvWLJorz2NfSaqxZ7w==";
- };
- };
"ws-5.2.2" = {
name = "ws";
packageName = "ws";
@@ -4504,13 +4694,31 @@ let
sha512 = "GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==";
};
};
- "xmlbuilder-8.2.2" = {
+ "ws-7.1.1" = {
+ name = "ws";
+ packageName = "ws";
+ version = "7.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ws/-/ws-7.1.1.tgz";
+ sha512 = "o41D/WmDeca0BqYhsr3nJzQyg9NF5X8l/UdnFNux9cS3lwB+swm8qGWX5rn+aD6xfBU3rGmtHij7g7x6LxFU3A==";
+ };
+ };
+ "ws-7.2.0" = {
+ name = "ws";
+ packageName = "ws";
+ version = "7.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ws/-/ws-7.2.0.tgz";
+ sha512 = "+SqNqFbwTm/0DC18KYzIsMTnEWpLwJsiasW/O17la4iDRRIO9uaHbvKiAS3AHgTiuuWerK/brj4O6MYZkei9xg==";
+ };
+ };
+ "xmlbuilder-13.0.2" = {
name = "xmlbuilder";
packageName = "xmlbuilder";
- version = "8.2.2";
+ version = "13.0.2";
src = fetchurl {
- url = "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz";
- sha1 = "69248673410b4ba42e1a6136551d2922335aa773";
+ url = "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-13.0.2.tgz";
+ sha512 = "Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ==";
};
};
"xtend-4.0.2" = {
@@ -4540,13 +4748,13 @@ let
sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52";
};
};
- "yallist-3.0.3" = {
+ "yallist-3.1.1" = {
name = "yallist";
packageName = "yallist";
- version = "3.0.3";
+ version = "3.1.1";
src = fetchurl {
- url = "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz";
- sha512 = "S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==";
+ url = "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz";
+ sha512 = "a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==";
};
};
"yargs-13.3.0" = {
@@ -4582,349 +4790,148 @@ in
elm-test = nodeEnv.buildNodePackage {
name = "elm-test";
packageName = "elm-test";
- version = "0.19.0-rev6";
+ version = "0.19.1";
src = fetchurl {
- url = "https://registry.npmjs.org/elm-test/-/elm-test-0.19.0-rev6.tgz";
- sha512 = "Qdy9QusZF+eT0203XBiT1Y/UhFeUjcSuyyzf3iyp32dsYpAfcoDTWHjlBVjia1CyvFauESQ4pc81nKaq6snClg==";
+ url = "https://registry.npmjs.org/elm-test/-/elm-test-0.19.1.tgz";
+ sha512 = "SyZgZ/hxq62budS3k0M1Qj1E8fIRvldSxFSm4XfzE6qRRuHAT2a82fxprZRZl1yG2GwnImGmhuKH5hSyjPpzjA==";
};
dependencies = [
sources."ajv-6.10.2"
sources."ansi-styles-3.2.1"
- (sources."anymatch-2.0.0" // {
- dependencies = [
- sources."normalize-path-2.1.1"
- ];
- })
- sources."arr-diff-4.0.0"
- sources."arr-flatten-1.1.0"
- sources."arr-union-3.1.0"
- sources."array-unique-0.3.2"
+ sources."anymatch-3.1.1"
sources."asn1-0.2.4"
sources."assert-plus-1.0.0"
- sources."assign-symbols-1.0.0"
- sources."async-each-1.0.3"
sources."asynckit-0.4.0"
- sources."atob-2.1.2"
sources."aws-sign2-0.7.0"
sources."aws4-1.8.0"
sources."balanced-match-1.0.0"
- (sources."base-0.11.2" // {
- dependencies = [
- sources."define-property-1.0.0"
- ];
- })
sources."bcrypt-pbkdf-1.0.2"
sources."binary-0.3.0"
- sources."binary-extensions-1.13.1"
+ sources."binary-extensions-2.0.0"
sources."binwrap-0.2.2"
- sources."bluebird-3.5.5"
+ sources."bluebird-3.7.1"
sources."brace-expansion-1.1.11"
- (sources."braces-2.3.2" // {
- dependencies = [
- sources."extend-shallow-2.0.1"
- sources."is-extendable-0.1.1"
- ];
- })
+ sources."braces-3.0.2"
sources."buffers-0.1.1"
- sources."cache-base-1.0.1"
sources."caseless-0.12.0"
sources."chainsaw-0.1.0"
- sources."chalk-2.1.0"
- (sources."chokidar-2.1.2" // {
- dependencies = [
- sources."fsevents-1.2.9"
- ];
- })
- sources."chownr-1.1.2"
- (sources."class-utils-0.3.6" // {
+ (sources."chalk-2.4.2" // {
dependencies = [
- sources."define-property-0.2.5"
- (sources."is-accessor-descriptor-0.1.6" // {
- dependencies = [
- sources."kind-of-3.2.2"
- ];
- })
- (sources."is-data-descriptor-0.1.4" // {
- dependencies = [
- sources."kind-of-3.2.2"
- ];
- })
- sources."is-descriptor-0.1.6"
- sources."kind-of-5.1.0"
+ sources."supports-color-5.5.0"
];
})
- sources."collection-visit-1.0.0"
+ sources."chokidar-3.2.1"
+ sources."chownr-1.1.3"
sources."color-convert-1.9.3"
sources."color-name-1.1.3"
sources."combined-stream-1.0.8"
- sources."component-emitter-1.3.0"
sources."concat-map-0.0.1"
- sources."copy-descriptor-0.1.1"
sources."core-util-is-1.0.2"
- sources."cross-spawn-4.0.0"
+ (sources."cross-spawn-7.0.0" // {
+ dependencies = [
+ sources."which-1.3.1"
+ ];
+ })
sources."dashdash-1.14.1"
- sources."debug-2.6.9"
- sources."decode-uri-component-0.2.0"
- sources."define-property-2.0.2"
sources."delayed-stream-1.0.0"
sources."ecc-jsbn-0.1.2"
- sources."elmi-to-json-0.19.1"
+ sources."elmi-to-json-1.2.0"
sources."escape-string-regexp-1.0.5"
- (sources."expand-brackets-2.1.4" // {
- dependencies = [
- sources."define-property-0.2.5"
- sources."extend-shallow-2.0.1"
- (sources."is-accessor-descriptor-0.1.6" // {
- dependencies = [
- sources."kind-of-3.2.2"
- ];
- })
- (sources."is-data-descriptor-0.1.4" // {
- dependencies = [
- sources."kind-of-3.2.2"
- ];
- })
- sources."is-descriptor-0.1.6"
- sources."is-extendable-0.1.1"
- sources."kind-of-5.1.0"
- ];
- })
- sources."extend-3.0.2"
- sources."extend-shallow-3.0.2"
- (sources."extglob-2.0.4" // {
- dependencies = [
- sources."define-property-1.0.0"
- sources."extend-shallow-2.0.1"
- sources."is-extendable-0.1.1"
- ];
- })
- sources."extsprintf-1.3.0"
- sources."fast-deep-equal-2.0.1"
- sources."fast-json-stable-stringify-2.0.0"
- (sources."fill-range-4.0.0" // {
- dependencies = [
- sources."extend-shallow-2.0.1"
- sources."is-extendable-0.1.1"
- ];
- })
- (sources."find-elm-dependencies-2.0.1" // {
+ sources."extend-3.0.2"
+ sources."extsprintf-1.3.0"
+ sources."fast-deep-equal-2.0.1"
+ sources."fast-json-stable-stringify-2.0.0"
+ sources."fill-range-7.0.1"
+ (sources."find-elm-dependencies-2.0.2" // {
dependencies = [
sources."firstline-1.2.0"
];
})
sources."find-parent-dir-0.3.0"
- sources."firstline-1.2.1"
- sources."for-in-1.0.2"
+ sources."firstline-2.0.2"
sources."forever-agent-0.6.1"
sources."form-data-2.3.3"
- sources."fragment-cache-0.2.1"
- sources."fs-extra-0.30.0"
- sources."fs-minipass-1.2.6"
+ sources."fs-extra-8.1.0"
+ sources."fs-minipass-1.2.7"
sources."fs.realpath-1.0.0"
- sources."fsevents-1.2.4"
- sources."get-value-2.0.6"
+ sources."fsevents-2.1.1"
sources."getpass-0.1.7"
- sources."glob-7.1.1"
- (sources."glob-parent-3.1.0" // {
- dependencies = [
- sources."is-glob-3.1.0"
- ];
- })
- sources."graceful-fs-4.2.2"
+ sources."glob-7.1.4"
+ sources."glob-parent-5.1.0"
+ sources."graceful-fs-4.2.3"
sources."har-schema-2.0.0"
sources."har-validator-5.1.3"
- sources."has-flag-2.0.0"
- sources."has-value-1.0.0"
- (sources."has-values-1.0.0" // {
- dependencies = [
- sources."kind-of-4.0.0"
- ];
- })
+ sources."has-flag-3.0.0"
sources."http-signature-1.2.0"
sources."inflight-1.0.6"
sources."inherits-2.0.4"
- sources."is-accessor-descriptor-1.0.0"
- sources."is-binary-path-1.0.1"
- sources."is-buffer-1.1.6"
- sources."is-data-descriptor-1.0.0"
- sources."is-descriptor-1.0.2"
- sources."is-extendable-1.0.1"
+ sources."is-binary-path-2.1.0"
sources."is-extglob-2.1.1"
sources."is-glob-4.0.1"
- (sources."is-number-3.0.0" // {
- dependencies = [
- sources."kind-of-3.2.2"
- ];
- })
- sources."is-plain-object-2.0.4"
+ sources."is-number-7.0.0"
sources."is-typedarray-1.0.0"
- sources."is-windows-1.0.2"
- sources."isarray-1.0.0"
sources."isexe-2.0.0"
- sources."isobject-3.0.1"
sources."isstream-0.1.2"
sources."jsbn-0.1.1"
sources."json-schema-0.2.3"
sources."json-schema-traverse-0.4.1"
sources."json-stringify-safe-5.0.1"
- sources."jsonfile-2.4.0"
+ sources."jsonfile-4.0.0"
sources."jsprim-1.4.1"
- sources."kind-of-6.0.2"
- sources."klaw-1.3.1"
- sources."lodash-4.17.11"
- sources."lru-cache-4.1.5"
- sources."map-cache-0.2.2"
- sources."map-visit-1.0.0"
- sources."micromatch-3.1.10"
+ sources."lodash-4.17.15"
sources."mime-db-1.40.0"
sources."mime-types-2.1.24"
sources."minimatch-3.0.4"
sources."minimist-1.2.0"
- (sources."minipass-2.4.0" // {
- dependencies = [
- sources."yallist-3.0.3"
- ];
- })
- sources."minizlib-1.2.1"
- sources."mixin-deep-1.3.2"
+ sources."minipass-2.9.0"
+ sources."minizlib-1.3.3"
(sources."mkdirp-0.5.1" // {
dependencies = [
sources."minimist-0.0.8"
];
})
- sources."ms-2.0.0"
sources."murmur-hash-js-1.0.0"
- sources."mustache-3.0.3"
- sources."nan-2.14.0"
- sources."nanomatch-1.2.13"
- sources."node-elm-compiler-5.0.3"
- sources."normalize-path-3.0.0"
- sources."oauth-sign-0.9.0"
- (sources."object-copy-0.1.0" // {
+ sources."mustache-3.1.0"
+ sources."nice-try-1.0.5"
+ (sources."node-elm-compiler-5.0.4" // {
dependencies = [
- sources."define-property-0.2.5"
- sources."is-accessor-descriptor-0.1.6"
- sources."is-data-descriptor-0.1.4"
- (sources."is-descriptor-0.1.6" // {
- dependencies = [
- sources."kind-of-5.1.0"
- ];
- })
- sources."kind-of-3.2.2"
+ sources."cross-spawn-6.0.5"
+ sources."path-key-2.0.1"
+ sources."which-1.3.1"
];
})
- sources."object-visit-1.0.1"
- sources."object.pick-1.3.0"
+ sources."normalize-path-3.0.0"
+ sources."oauth-sign-0.9.0"
sources."once-1.4.0"
- sources."os-tmpdir-1.0.2"
- sources."pascalcase-0.1.1"
- sources."path-dirname-1.0.2"
sources."path-is-absolute-1.0.1"
+ sources."path-key-3.1.0"
sources."performance-now-2.1.0"
- sources."posix-character-classes-0.1.1"
- sources."process-nextick-args-2.0.1"
- sources."pseudomap-1.0.2"
- sources."psl-1.3.0"
+ sources."picomatch-2.1.0"
+ sources."psl-1.4.0"
sources."punycode-2.1.1"
sources."qs-6.5.2"
- sources."readable-stream-2.3.6"
- sources."readdirp-2.2.1"
- sources."regex-not-1.0.2"
- sources."remove-trailing-separator-1.1.0"
- sources."repeat-element-1.1.3"
- sources."repeat-string-1.6.1"
+ sources."readdirp-3.1.3"
sources."request-2.88.0"
sources."request-promise-4.2.4"
sources."request-promise-core-1.1.2"
- sources."resolve-url-0.2.1"
- sources."ret-0.1.15"
- (sources."rimraf-2.7.1" // {
- dependencies = [
- sources."glob-7.1.4"
- ];
- })
- sources."safe-buffer-5.1.2"
- sources."safe-regex-1.1.0"
+ sources."rimraf-2.6.3"
+ sources."safe-buffer-5.2.0"
sources."safer-buffer-2.1.2"
- (sources."set-value-2.0.1" // {
- dependencies = [
- sources."extend-shallow-2.0.1"
- sources."is-extendable-0.1.1"
- ];
- })
- (sources."snapdragon-0.8.2" // {
- dependencies = [
- sources."define-property-0.2.5"
- sources."extend-shallow-2.0.1"
- (sources."is-accessor-descriptor-0.1.6" // {
- dependencies = [
- sources."kind-of-3.2.2"
- ];
- })
- (sources."is-data-descriptor-0.1.4" // {
- dependencies = [
- sources."kind-of-3.2.2"
- ];
- })
- sources."is-descriptor-0.1.6"
- sources."is-extendable-0.1.1"
- sources."kind-of-5.1.0"
- ];
- })
- (sources."snapdragon-node-2.1.1" // {
- dependencies = [
- sources."define-property-1.0.0"
- ];
- })
- (sources."snapdragon-util-3.0.1" // {
- dependencies = [
- sources."kind-of-3.2.2"
- ];
- })
- sources."source-map-0.5.7"
- sources."source-map-resolve-0.5.2"
- sources."source-map-url-0.4.0"
+ sources."semver-5.7.1"
+ sources."shebang-command-1.2.0"
+ sources."shebang-regex-1.0.0"
sources."split-1.0.1"
- sources."split-string-3.1.0"
sources."sshpk-1.16.1"
- (sources."static-extend-0.1.2" // {
- dependencies = [
- sources."define-property-0.2.5"
- (sources."is-accessor-descriptor-0.1.6" // {
- dependencies = [
- sources."kind-of-3.2.2"
- ];
- })
- (sources."is-data-descriptor-0.1.4" // {
- dependencies = [
- sources."kind-of-3.2.2"
- ];
- })
- sources."is-descriptor-0.1.6"
- sources."kind-of-5.1.0"
- ];
- })
sources."stealthy-require-1.1.1"
- sources."string_decoder-1.1.1"
- sources."supports-color-4.2.0"
- (sources."tar-4.4.10" // {
- dependencies = [
- sources."yallist-3.0.3"
- ];
- })
- (sources."temp-0.8.3" // {
+ (sources."supports-color-7.1.0" // {
dependencies = [
- sources."rimraf-2.2.8"
+ sources."has-flag-4.0.0"
];
})
+ sources."tar-4.4.13"
+ sources."temp-0.9.0"
sources."through-2.3.8"
- (sources."to-object-path-0.3.0" // {
- dependencies = [
- sources."kind-of-3.2.2"
- ];
- })
- sources."to-regex-3.0.2"
- sources."to-regex-range-2.1.1"
+ sources."to-regex-range-5.0.1"
(sources."tough-cookie-2.4.3" // {
dependencies = [
sources."punycode-1.4.1"
@@ -4933,33 +4940,15 @@ in
sources."traverse-0.3.9"
sources."tunnel-agent-0.6.0"
sources."tweetnacl-0.14.5"
- (sources."union-value-1.0.1" // {
- dependencies = [
- sources."is-extendable-0.1.1"
- ];
- })
- (sources."unset-value-1.0.0" // {
- dependencies = [
- (sources."has-value-0.3.1" // {
- dependencies = [
- sources."isobject-2.1.0"
- ];
- })
- sources."has-values-0.1.4"
- ];
- })
+ sources."universalify-0.1.2"
sources."unzip-stream-0.3.0"
- sources."upath-1.1.2"
sources."uri-js-4.2.2"
- sources."urix-0.1.0"
- sources."use-3.1.1"
- sources."util-deprecate-1.0.2"
sources."uuid-3.3.3"
sources."verror-1.10.0"
- sources."which-1.3.1"
+ sources."which-2.0.1"
sources."wrappy-1.0.2"
- sources."xmlbuilder-8.2.2"
- sources."yallist-2.1.2"
+ sources."xmlbuilder-13.0.2"
+ sources."yallist-3.1.1"
];
buildInputs = globalBuildInputs;
meta = {
@@ -4974,379 +4963,169 @@ in
elm-verify-examples = nodeEnv.buildNodePackage {
name = "elm-verify-examples";
packageName = "elm-verify-examples";
- version = "4.0.1";
+ version = "5.0.0";
src = fetchurl {
- url = "https://registry.npmjs.org/elm-verify-examples/-/elm-verify-examples-4.0.1.tgz";
- sha512 = "YlkOLWIDnlgkKG8gnxQkKKJHkkx4MqyIXqjmYqvGPwatrPmLo46BJ2drOPHNIh43T7mh7c1K8vxrzV4seQtFUA==";
+ url = "https://registry.npmjs.org/elm-verify-examples/-/elm-verify-examples-5.0.0.tgz";
+ sha512 = "dAOv+U9hXZ0IRGx19mkpCAdf5rUwoJWlzFmcR2gvOzE/QjZUSlPh3e0IIDAfGUuEF8DjfE5CTe31fNtIkkd2rQ==";
};
dependencies = [
sources."ajv-6.10.2"
sources."ansi-regex-4.1.0"
sources."ansi-styles-3.2.1"
- (sources."anymatch-2.0.0" // {
- dependencies = [
- sources."normalize-path-2.1.1"
- ];
- })
- sources."arr-diff-4.0.0"
- sources."arr-flatten-1.1.0"
- sources."arr-union-3.1.0"
- sources."array-unique-0.3.2"
+ sources."anymatch-3.1.1"
sources."asn1-0.2.4"
sources."assert-plus-1.0.0"
- sources."assign-symbols-1.0.0"
- sources."async-each-1.0.3"
sources."asynckit-0.4.0"
- sources."atob-2.1.2"
sources."aws-sign2-0.7.0"
sources."aws4-1.8.0"
sources."balanced-match-1.0.0"
- (sources."base-0.11.2" // {
- dependencies = [
- sources."define-property-1.0.0"
- ];
- })
sources."bcrypt-pbkdf-1.0.2"
sources."binary-0.3.0"
- sources."binary-extensions-1.13.1"
+ sources."binary-extensions-2.0.0"
sources."binwrap-0.2.2"
- sources."bluebird-3.5.5"
+ sources."bluebird-3.7.1"
sources."brace-expansion-1.1.11"
- (sources."braces-2.3.2" // {
- dependencies = [
- sources."extend-shallow-2.0.1"
- sources."is-extendable-0.1.1"
- ];
- })
+ sources."braces-3.0.2"
sources."buffers-0.1.1"
- sources."cache-base-1.0.1"
sources."camelcase-5.3.1"
sources."caseless-0.12.0"
sources."chainsaw-0.1.0"
sources."chalk-2.4.2"
- (sources."chokidar-2.1.2" // {
- dependencies = [
- sources."fsevents-1.2.9"
- ];
- })
- sources."chownr-1.1.2"
- (sources."class-utils-0.3.6" // {
- dependencies = [
- sources."define-property-0.2.5"
- (sources."is-accessor-descriptor-0.1.6" // {
- dependencies = [
- sources."kind-of-3.2.2"
- ];
- })
- (sources."is-data-descriptor-0.1.4" // {
- dependencies = [
- sources."kind-of-3.2.2"
- ];
- })
- sources."is-descriptor-0.1.6"
- sources."kind-of-5.1.0"
- ];
- })
+ sources."chokidar-3.2.1"
+ sources."chownr-1.1.3"
sources."cliui-5.0.0"
- sources."collection-visit-1.0.0"
sources."color-convert-1.9.3"
sources."color-name-1.1.3"
sources."combined-stream-1.0.8"
- sources."component-emitter-1.3.0"
sources."concat-map-0.0.1"
- sources."copy-descriptor-0.1.1"
sources."core-util-is-1.0.2"
- sources."cross-spawn-4.0.0"
+ (sources."cross-spawn-7.0.0" // {
+ dependencies = [
+ sources."which-1.3.1"
+ ];
+ })
sources."dashdash-1.14.1"
- sources."debug-2.6.9"
sources."decamelize-1.2.0"
- sources."decode-uri-component-0.2.0"
- sources."define-property-2.0.2"
sources."delayed-stream-1.0.0"
sources."ecc-jsbn-0.1.2"
- (sources."elm-test-0.19.0-rev6" // {
+ (sources."elm-test-0.19.1" // {
dependencies = [
- sources."chalk-2.1.0"
- sources."fs-extra-0.30.0"
- sources."has-flag-2.0.0"
- sources."supports-color-4.2.0"
+ sources."fs-extra-8.1.0"
+ sources."has-flag-4.0.0"
+ sources."supports-color-7.1.0"
];
})
- sources."elmi-to-json-0.19.1"
+ sources."elmi-to-json-1.2.0"
sources."emoji-regex-7.0.3"
sources."escape-string-regexp-1.0.5"
- (sources."expand-brackets-2.1.4" // {
- dependencies = [
- sources."define-property-0.2.5"
- sources."extend-shallow-2.0.1"
- (sources."is-accessor-descriptor-0.1.6" // {
- dependencies = [
- sources."kind-of-3.2.2"
- ];
- })
- (sources."is-data-descriptor-0.1.4" // {
- dependencies = [
- sources."kind-of-3.2.2"
- ];
- })
- sources."is-descriptor-0.1.6"
- sources."is-extendable-0.1.1"
- sources."kind-of-5.1.0"
- ];
- })
sources."extend-3.0.2"
- sources."extend-shallow-3.0.2"
- (sources."extglob-2.0.4" // {
- dependencies = [
- sources."define-property-1.0.0"
- sources."extend-shallow-2.0.1"
- sources."is-extendable-0.1.1"
- ];
- })
sources."extsprintf-1.3.0"
sources."fast-deep-equal-2.0.1"
sources."fast-json-stable-stringify-2.0.0"
- (sources."fill-range-4.0.0" // {
- dependencies = [
- sources."extend-shallow-2.0.1"
- sources."is-extendable-0.1.1"
- ];
- })
- (sources."find-elm-dependencies-2.0.1" // {
+ sources."fill-range-7.0.1"
+ (sources."find-elm-dependencies-2.0.2" // {
dependencies = [
sources."firstline-1.2.0"
];
})
sources."find-parent-dir-0.3.0"
sources."find-up-3.0.0"
- sources."firstline-1.2.1"
- sources."for-in-1.0.2"
+ sources."firstline-2.0.2"
sources."forever-agent-0.6.1"
sources."form-data-2.3.3"
- sources."fragment-cache-0.2.1"
- (sources."fs-extra-5.0.0" // {
- dependencies = [
- sources."jsonfile-4.0.0"
- ];
- })
- sources."fs-minipass-1.2.6"
+ sources."fs-extra-5.0.0"
+ sources."fs-minipass-1.2.7"
sources."fs.realpath-1.0.0"
- sources."fsevents-1.2.4"
+ sources."fsevents-2.1.1"
sources."get-caller-file-2.0.5"
- sources."get-value-2.0.6"
sources."getpass-0.1.7"
- sources."glob-7.1.1"
- (sources."glob-parent-3.1.0" // {
- dependencies = [
- sources."is-glob-3.1.0"
- ];
- })
- sources."graceful-fs-4.2.2"
+ sources."glob-7.1.4"
+ sources."glob-parent-5.1.0"
+ sources."graceful-fs-4.2.3"
sources."har-schema-2.0.0"
sources."har-validator-5.1.3"
sources."has-flag-3.0.0"
- sources."has-value-1.0.0"
- (sources."has-values-1.0.0" // {
- dependencies = [
- sources."kind-of-4.0.0"
- ];
- })
sources."http-signature-1.2.0"
sources."inflight-1.0.6"
sources."inherits-2.0.4"
- sources."is-accessor-descriptor-1.0.0"
- sources."is-binary-path-1.0.1"
- sources."is-buffer-1.1.6"
- sources."is-data-descriptor-1.0.0"
- sources."is-descriptor-1.0.2"
- sources."is-extendable-1.0.1"
+ sources."is-binary-path-2.1.0"
sources."is-extglob-2.1.1"
sources."is-fullwidth-code-point-2.0.0"
sources."is-glob-4.0.1"
- (sources."is-number-3.0.0" // {
- dependencies = [
- sources."kind-of-3.2.2"
- ];
- })
- sources."is-plain-object-2.0.4"
+ sources."is-number-7.0.0"
sources."is-typedarray-1.0.0"
- sources."is-windows-1.0.2"
- sources."isarray-1.0.0"
sources."isexe-2.0.0"
- sources."isobject-3.0.1"
sources."isstream-0.1.2"
sources."jsbn-0.1.1"
sources."json-schema-0.2.3"
sources."json-schema-traverse-0.4.1"
sources."json-stringify-safe-5.0.1"
- sources."jsonfile-2.4.0"
+ sources."jsonfile-4.0.0"
sources."jsprim-1.4.1"
- sources."kind-of-6.0.2"
- sources."klaw-1.3.1"
sources."locate-path-3.0.0"
- sources."lodash-4.17.11"
- sources."lru-cache-4.1.5"
- sources."map-cache-0.2.2"
- sources."map-visit-1.0.0"
- sources."micromatch-3.1.10"
+ sources."lodash-4.17.15"
sources."mime-db-1.40.0"
sources."mime-types-2.1.24"
sources."minimatch-3.0.4"
sources."minimist-1.2.0"
- (sources."minipass-2.4.0" // {
- dependencies = [
- sources."yallist-3.0.3"
- ];
- })
- sources."minizlib-1.2.1"
- sources."mixin-deep-1.3.2"
+ sources."minipass-2.9.0"
+ sources."minizlib-1.3.3"
(sources."mkdirp-0.5.1" // {
dependencies = [
sources."minimist-0.0.8"
];
})
- sources."ms-2.0.0"
sources."murmur-hash-js-1.0.0"
- sources."mustache-3.0.3"
- sources."nan-2.14.0"
- sources."nanomatch-1.2.13"
- sources."node-elm-compiler-5.0.3"
- sources."normalize-path-3.0.0"
- sources."oauth-sign-0.9.0"
- (sources."object-copy-0.1.0" // {
+ sources."mustache-3.1.0"
+ sources."nice-try-1.0.5"
+ (sources."node-elm-compiler-5.0.4" // {
dependencies = [
- sources."define-property-0.2.5"
- sources."is-accessor-descriptor-0.1.6"
- sources."is-data-descriptor-0.1.4"
- (sources."is-descriptor-0.1.6" // {
- dependencies = [
- sources."kind-of-5.1.0"
- ];
- })
- sources."kind-of-3.2.2"
+ sources."cross-spawn-6.0.5"
+ sources."path-key-2.0.1"
+ sources."which-1.3.1"
];
})
- sources."object-visit-1.0.1"
- sources."object.pick-1.3.0"
+ sources."normalize-path-3.0.0"
+ sources."oauth-sign-0.9.0"
sources."once-1.4.0"
- sources."os-tmpdir-1.0.2"
sources."p-limit-2.2.1"
sources."p-locate-3.0.0"
sources."p-try-2.2.0"
- sources."pascalcase-0.1.1"
- sources."path-dirname-1.0.2"
sources."path-exists-3.0.0"
sources."path-is-absolute-1.0.1"
+ sources."path-key-3.1.0"
sources."performance-now-2.1.0"
- sources."posix-character-classes-0.1.1"
- sources."process-nextick-args-2.0.1"
- sources."pseudomap-1.0.2"
- sources."psl-1.3.0"
+ sources."picomatch-2.1.0"
+ sources."psl-1.4.0"
sources."punycode-2.1.1"
sources."qs-6.5.2"
- sources."readable-stream-2.3.6"
- sources."readdirp-2.2.1"
- sources."regex-not-1.0.2"
- sources."remove-trailing-separator-1.1.0"
- sources."repeat-element-1.1.3"
- sources."repeat-string-1.6.1"
+ sources."readdirp-3.1.3"
sources."request-2.88.0"
sources."request-promise-4.2.4"
sources."request-promise-core-1.1.2"
sources."require-directory-2.1.1"
sources."require-main-filename-2.0.0"
- sources."resolve-url-0.2.1"
- sources."ret-0.1.15"
- (sources."rimraf-2.7.1" // {
- dependencies = [
- sources."glob-7.1.4"
- ];
- })
- sources."safe-buffer-5.1.2"
- sources."safe-regex-1.1.0"
+ sources."rimraf-2.7.1"
+ sources."safe-buffer-5.2.0"
sources."safer-buffer-2.1.2"
+ sources."semver-5.7.1"
sources."set-blocking-2.0.0"
- (sources."set-value-2.0.1" // {
- dependencies = [
- sources."extend-shallow-2.0.1"
- sources."is-extendable-0.1.1"
- ];
- })
- (sources."snapdragon-0.8.2" // {
- dependencies = [
- sources."define-property-0.2.5"
- sources."extend-shallow-2.0.1"
- (sources."is-accessor-descriptor-0.1.6" // {
- dependencies = [
- sources."kind-of-3.2.2"
- ];
- })
- (sources."is-data-descriptor-0.1.4" // {
- dependencies = [
- sources."kind-of-3.2.2"
- ];
- })
- sources."is-descriptor-0.1.6"
- sources."is-extendable-0.1.1"
- sources."kind-of-5.1.0"
- ];
- })
- (sources."snapdragon-node-2.1.1" // {
- dependencies = [
- sources."define-property-1.0.0"
- ];
- })
- (sources."snapdragon-util-3.0.1" // {
- dependencies = [
- sources."kind-of-3.2.2"
- ];
- })
- sources."source-map-0.5.7"
- sources."source-map-resolve-0.5.2"
- sources."source-map-url-0.4.0"
+ sources."shebang-command-1.2.0"
+ sources."shebang-regex-1.0.0"
sources."split-1.0.1"
- sources."split-string-3.1.0"
sources."sshpk-1.16.1"
- (sources."static-extend-0.1.2" // {
- dependencies = [
- sources."define-property-0.2.5"
- (sources."is-accessor-descriptor-0.1.6" // {
- dependencies = [
- sources."kind-of-3.2.2"
- ];
- })
- (sources."is-data-descriptor-0.1.4" // {
- dependencies = [
- sources."kind-of-3.2.2"
- ];
- })
- sources."is-descriptor-0.1.6"
- sources."kind-of-5.1.0"
- ];
- })
sources."stealthy-require-1.1.1"
sources."string-width-3.1.0"
- sources."string_decoder-1.1.1"
sources."strip-ansi-5.2.0"
sources."supports-color-5.5.0"
- (sources."tar-4.4.10" // {
- dependencies = [
- sources."yallist-3.0.3"
- ];
- })
- (sources."temp-0.8.3" // {
+ sources."tar-4.4.13"
+ (sources."temp-0.9.0" // {
dependencies = [
- sources."rimraf-2.2.8"
+ sources."rimraf-2.6.3"
];
})
sources."through-2.3.8"
- (sources."to-object-path-0.3.0" // {
- dependencies = [
- sources."kind-of-3.2.2"
- ];
- })
- sources."to-regex-3.0.2"
- sources."to-regex-range-2.1.1"
+ sources."to-regex-range-5.0.1"
(sources."tough-cookie-2.4.3" // {
dependencies = [
sources."punycode-1.4.1"
@@ -5354,38 +5133,19 @@ in
})
sources."traverse-0.3.9"
sources."tunnel-agent-0.6.0"
- sources."tweetnacl-0.14.5"
- (sources."union-value-1.0.1" // {
- dependencies = [
- sources."is-extendable-0.1.1"
- ];
- })
- sources."universalify-0.1.2"
- (sources."unset-value-1.0.0" // {
- dependencies = [
- (sources."has-value-0.3.1" // {
- dependencies = [
- sources."isobject-2.1.0"
- ];
- })
- sources."has-values-0.1.4"
- ];
- })
+ sources."tweetnacl-0.14.5"
+ sources."universalify-0.1.2"
sources."unzip-stream-0.3.0"
- sources."upath-1.1.2"
sources."uri-js-4.2.2"
- sources."urix-0.1.0"
- sources."use-3.1.1"
- sources."util-deprecate-1.0.2"
sources."uuid-3.3.3"
sources."verror-1.10.0"
- sources."which-1.3.1"
+ sources."which-2.0.1"
sources."which-module-2.0.0"
sources."wrap-ansi-5.1.0"
sources."wrappy-1.0.2"
- sources."xmlbuilder-8.2.2"
+ sources."xmlbuilder-13.0.2"
sources."y18n-4.0.0"
- sources."yallist-2.1.2"
+ sources."yallist-3.1.1"
sources."yargs-13.3.0"
sources."yargs-parser-13.1.1"
];
@@ -5401,10 +5161,10 @@ in
elm-doc-preview = nodeEnv.buildNodePackage {
name = "elm-doc-preview";
packageName = "elm-doc-preview";
- version = "3.0.1";
+ version = "3.0.4";
src = fetchurl {
- url = "https://registry.npmjs.org/elm-doc-preview/-/elm-doc-preview-3.0.1.tgz";
- sha512 = "NpAgEKNiYkQE932gMjFGC/BpcmUD9ohhrbSnGSoQBsC+VPRKCiGdmLJUiql/aPC2eXYIlWQJ5YJ5rFWI0iovbw==";
+ url = "https://registry.npmjs.org/elm-doc-preview/-/elm-doc-preview-3.0.4.tgz";
+ sha512 = "tLobB4Kv4X/T+mkL4Tc5G1fqnBzvCqV7Pqx/f2sJIQtSTsJcktwI01U8poiBPoo8VwE7ZRuBmApSkl6XTzrymA==";
};
dependencies = [
sources."@cnakazawa/watch-1.0.3"
@@ -5434,7 +5194,7 @@ in
sources."extend-shallow-2.0.1"
];
})
- sources."bser-2.1.0"
+ sources."bser-2.1.1"
sources."bytes-3.1.0"
sources."cache-base-1.0.1"
(sources."cacheable-request-2.1.4" // {
@@ -5465,7 +5225,7 @@ in
sources."collection-visit-1.0.0"
sources."color-convert-1.9.3"
sources."color-name-1.1.3"
- sources."commander-3.0.0"
+ sources."commander-3.0.2"
sources."component-emitter-1.3.0"
sources."concat-map-0.0.1"
sources."content-disposition-0.5.3"
@@ -5473,7 +5233,7 @@ in
sources."cookie-0.4.0"
sources."cookie-signature-1.0.6"
sources."copy-descriptor-0.1.1"
- sources."core-js-3.2.1"
+ sources."core-js-3.3.5"
sources."core-util-is-1.0.2"
sources."cross-spawn-6.0.5"
sources."debug-2.6.9"
@@ -5487,8 +5247,8 @@ in
sources."duplexer3-0.1.4"
sources."ee-first-1.1.1"
sources."encodeurl-1.0.2"
- sources."end-of-stream-1.4.1"
- sources."es-abstract-1.13.0"
+ sources."end-of-stream-1.4.4"
+ sources."es-abstract-1.16.0"
sources."es-to-primitive-1.2.0"
sources."escape-html-1.0.3"
sources."escape-string-regexp-1.0.5"
@@ -5550,7 +5310,7 @@ in
sources."function-bind-1.1.1"
sources."get-stream-3.0.0"
sources."get-value-2.0.6"
- sources."glob-7.1.4"
+ sources."glob-7.1.5"
sources."got-8.3.2"
sources."has-1.0.3"
sources."has-flag-3.0.0"
@@ -5587,7 +5347,7 @@ in
sources."is-plain-obj-1.1.0"
sources."is-plain-object-2.0.4"
sources."is-regex-1.0.4"
- sources."is-retry-allowed-1.1.0"
+ sources."is-retry-allowed-1.2.0"
sources."is-stream-1.1.0"
sources."is-symbol-1.0.2"
sources."is-windows-1.0.2"
@@ -5627,7 +5387,6 @@ in
sources."normalize-path-2.1.1"
sources."normalize-url-2.0.1"
sources."npm-run-path-2.0.2"
- sources."npx-10.2.0"
sources."object-assign-4.1.1"
(sources."object-copy-0.1.0" // {
dependencies = [
@@ -5642,6 +5401,7 @@ in
sources."kind-of-3.2.2"
];
})
+ sources."object-inspect-1.6.0"
sources."object-keys-1.1.1"
sources."object-visit-1.0.1"
sources."object.getownpropertydescriptors-2.0.3"
@@ -5760,6 +5520,8 @@ in
})
sources."statuses-1.5.0"
sources."strict-uri-encode-1.1.0"
+ sources."string.prototype.trimleft-2.1.0"
+ sources."string.prototype.trimright-2.1.0"
sources."string_decoder-1.1.1"
sources."strip-eof-1.0.0"
sources."strip-json-comments-2.0.1"
@@ -5834,9 +5596,9 @@ in
sources."fs.realpath-1.0.0"
sources."get-proxy-2.1.0"
sources."get-stream-3.0.0"
- sources."glob-7.1.4"
+ sources."glob-7.1.5"
sources."got-6.7.1"
- sources."graceful-fs-4.2.2"
+ sources."graceful-fs-4.2.3"
sources."has-symbol-support-x-1.4.2"
sources."has-to-string-tag-x-1.4.1"
sources."inflight-1.0.6"
@@ -5844,7 +5606,7 @@ in
sources."ini-1.3.5"
sources."is-object-1.0.1"
sources."is-redirect-1.0.0"
- sources."is-retry-allowed-1.1.0"
+ sources."is-retry-allowed-1.2.0"
sources."is-stream-1.1.0"
sources."isexe-2.0.0"
sources."isurl-1.0.0"
@@ -5883,13 +5645,13 @@ in
bypassCache = true;
reconstructLock = true;
};
- "elm-analyse-0.16.3" = nodeEnv.buildNodePackage {
+ elm-analyse = nodeEnv.buildNodePackage {
name = "elm-analyse";
packageName = "elm-analyse";
- version = "0.16.3";
+ version = "0.16.5";
src = fetchurl {
- url = "https://registry.npmjs.org/elm-analyse/-/elm-analyse-0.16.3.tgz";
- sha512 = "JFlGT0d6v3EPk1UnB5xb6VYWrKzwGD76wBwr2R0xwA3T6Rju7zEnzfs8LiBo+b3gSH5cmRDfnK9BLRFiosWEfQ==";
+ url = "https://registry.npmjs.org/elm-analyse/-/elm-analyse-0.16.5.tgz";
+ sha512 = "I7dgGFOc+mYDcDuyo1/HcIn3E5MiMbocStNzivsPSjCUviuEieHdDKZmJJ9uM3IdCu0fdBmRNWQBSOXtXrgzKg==";
};
dependencies = [
sources."accepts-1.3.7"
@@ -5903,8 +5665,8 @@ in
sources."aws4-1.8.0"
sources."babel-runtime-6.18.0"
sources."bcrypt-pbkdf-1.0.2"
- sources."body-parser-1.18.2"
- sources."bytes-3.0.0"
+ sources."body-parser-1.19.0"
+ sources."bytes-3.1.0"
sources."caseless-0.12.0"
sources."combined-stream-1.0.8"
sources."concat-stream-1.5.2"
@@ -5912,7 +5674,7 @@ in
sources."content-type-1.0.4"
sources."cookie-0.3.1"
sources."cookie-signature-1.0.6"
- sources."core-js-2.6.9"
+ sources."core-js-2.6.10"
sources."core-util-is-1.0.2"
sources."dashdash-1.14.1"
sources."debug-2.6.9"
@@ -5924,7 +5686,24 @@ in
sources."encodeurl-1.0.2"
sources."escape-html-1.0.3"
sources."etag-1.8.1"
- sources."express-4.16.3"
+ (sources."express-4.16.3" // {
+ dependencies = [
+ sources."body-parser-1.18.2"
+ sources."bytes-3.0.0"
+ sources."http-errors-1.6.3"
+ sources."iconv-lite-0.4.19"
+ sources."qs-6.5.1"
+ (sources."raw-body-2.3.2" // {
+ dependencies = [
+ sources."depd-1.1.1"
+ sources."http-errors-1.6.2"
+ sources."setprototypeof-1.0.3"
+ ];
+ })
+ sources."setprototypeof-1.1.0"
+ sources."statuses-1.4.0"
+ ];
+ })
(sources."express-ws-2.0.0" // {
dependencies = [
sources."ws-1.1.5"
@@ -5934,7 +5713,11 @@ in
sources."extsprintf-1.3.0"
sources."fast-deep-equal-2.0.1"
sources."fast-json-stable-stringify-2.0.0"
- sources."finalhandler-1.1.1"
+ (sources."finalhandler-1.1.1" // {
+ dependencies = [
+ sources."statuses-1.4.0"
+ ];
+ })
sources."find-0.2.7"
sources."forever-agent-0.6.1"
sources."form-data-2.3.3"
@@ -5942,12 +5725,12 @@ in
sources."fresh-0.5.2"
sources."fs-extra-2.0.0"
sources."getpass-0.1.7"
- sources."graceful-fs-4.2.2"
+ sources."graceful-fs-4.2.3"
sources."har-schema-2.0.0"
sources."har-validator-5.1.3"
- sources."http-errors-1.6.3"
+ sources."http-errors-1.7.2"
sources."http-signature-1.2.0"
- sources."iconv-lite-0.4.19"
+ sources."iconv-lite-0.4.24"
sources."inherits-2.0.3"
sources."ipaddr.js-1.9.0"
sources."is-stream-1.1.0"
@@ -5961,7 +5744,7 @@ in
sources."json-stringify-safe-5.0.1"
sources."jsonfile-2.4.0"
sources."jsprim-1.4.1"
- sources."lodash-4.17.11"
+ sources."lodash-4.17.15"
sources."media-typer-0.3.0"
sources."merge-descriptors-1.0.1"
sources."methods-1.1.2"
@@ -5983,17 +5766,11 @@ in
sources."performance-now-2.1.0"
sources."process-nextick-args-1.0.7"
sources."proxy-addr-2.0.5"
- sources."psl-1.3.0"
+ sources."psl-1.4.0"
sources."punycode-2.1.1"
- sources."qs-6.5.1"
+ sources."qs-6.7.0"
sources."range-parser-1.2.1"
- (sources."raw-body-2.3.2" // {
- dependencies = [
- sources."depd-1.1.1"
- sources."http-errors-1.6.2"
- sources."setprototypeof-1.0.3"
- ];
- })
+ sources."raw-body-2.4.0"
sources."readable-stream-2.0.6"
sources."regenerator-runtime-0.9.6"
(sources."request-2.88.0" // {
@@ -6004,15 +5781,22 @@ in
})
sources."safe-buffer-5.1.1"
sources."safer-buffer-2.1.2"
- sources."send-0.16.2"
+ (sources."send-0.16.2" // {
+ dependencies = [
+ sources."http-errors-1.6.3"
+ sources."setprototypeof-1.1.0"
+ sources."statuses-1.4.0"
+ ];
+ })
sources."serve-static-1.13.2"
- sources."setprototypeof-1.1.0"
+ sources."setprototypeof-1.1.1"
sources."sshpk-1.16.1"
- sources."statuses-1.4.0"
+ sources."statuses-1.5.0"
sources."string_decoder-0.10.31"
sources."sums-0.2.4"
sources."through2-2.0.1"
sources."tmp-0.0.31"
+ sources."toidentifier-1.0.0"
(sources."tough-cookie-2.4.3" // {
dependencies = [
sources."punycode-1.4.1"
@@ -6050,72 +5834,60 @@ in
elm-live = nodeEnv.buildNodePackage {
name = "elm-live";
packageName = "elm-live";
- version = "3.4.1";
+ version = "4.0.1";
src = fetchurl {
- url = "https://registry.npmjs.org/elm-live/-/elm-live-3.4.1.tgz";
- sha512 = "7J4MCV0uyzfnGznSdVzz9o2vgHQwHSVKgEW/NG7dG7nsDWWxqPudQ/FkHYJFWjkylnRtBZUAtB27ZwnLIsgRUw==";
+ url = "https://registry.npmjs.org/elm-live/-/elm-live-4.0.1.tgz";
+ sha512 = "IlonaC1pO/QoXlOrwwrJaxyvpJAT8QDSfzenkChbhU1PC1fJetkj2TwZfki+y1ZxpSMTnMSomMraOdWA6DO3VQ==";
};
dependencies = [
sources."ansi-regex-2.1.1"
sources."ansi-styles-2.2.1"
- sources."anymatch-3.0.3"
- sources."async-each-1.0.3"
+ sources."anymatch-3.1.1"
sources."async-limiter-1.0.1"
sources."binary-extensions-2.0.0"
sources."braces-3.0.2"
sources."chalk-1.1.3"
sources."charenc-0.0.2"
- sources."chokidar-3.0.0"
- sources."cli-color-1.2.0"
+ sources."chokidar-3.0.2"
sources."commander-2.17.1"
- sources."connect-pushstate-1.1.0"
+ sources."crocks-0.12.1"
sources."cross-spawn-5.0.1"
sources."crypt-0.0.2"
- sources."d-1.0.1"
sources."debug-2.6.9"
- sources."default-gateway-2.7.2"
+ sources."default-gateway-4.2.0"
sources."depd-1.1.2"
sources."destroy-1.0.4"
sources."ee-first-1.1.1"
- (sources."elm-serve-0.4.0" // {
- dependencies = [
- sources."commander-2.9.0"
- ];
- })
+ sources."elm-hot-1.1.1"
sources."encodeurl-1.0.2"
- sources."es5-ext-0.10.50"
- sources."es6-iterator-2.0.3"
+ sources."end-of-stream-1.4.4"
sources."es6-promisify-6.0.2"
- sources."es6-symbol-3.1.1"
- sources."es6-weak-map-2.0.3"
sources."escape-html-1.0.3"
sources."escape-string-regexp-1.0.5"
sources."etag-1.8.1"
- sources."event-emitter-0.3.5"
sources."eventemitter3-3.1.2"
- (sources."execa-0.10.0" // {
+ (sources."execa-1.0.0" // {
dependencies = [
sources."cross-spawn-6.0.5"
];
})
sources."fill-range-7.0.1"
- sources."finalhandler-1.1.1"
- (sources."follow-redirects-1.8.1" // {
+ sources."finalhandler-1.1.2"
+ (sources."follow-redirects-1.9.0" // {
dependencies = [
sources."debug-3.2.6"
sources."ms-2.1.2"
];
})
sources."fresh-0.5.2"
- sources."fsevents-2.0.7"
- sources."get-stream-3.0.0"
- sources."glob-parent-5.0.0"
- sources."graceful-readlink-1.0.1"
+ sources."fsevents-2.1.1"
+ sources."get-stream-4.1.0"
+ sources."glob-parent-5.1.0"
sources."has-ansi-2.0.0"
- sources."http-errors-1.6.3"
+ sources."http-errors-1.7.3"
sources."http-proxy-1.17.0"
- sources."inherits-2.0.3"
- sources."internal-ip-3.0.1"
+ sources."inherits-2.0.4"
+ sources."internal-ip-4.3.0"
sources."ip-regex-2.1.0"
sources."ipaddr.js-1.9.1"
sources."is-binary-path-2.1.0"
@@ -6123,53 +5895,52 @@ in
sources."is-extglob-2.1.1"
sources."is-glob-4.0.1"
sources."is-number-7.0.0"
- sources."is-promise-2.1.0"
sources."is-stream-1.1.0"
sources."is-wsl-1.1.0"
sources."isexe-2.0.0"
sources."lru-cache-4.1.5"
- sources."lru-queue-0.1.0"
sources."md5-2.2.1"
- sources."memoizee-0.4.14"
- sources."mime-1.4.1"
- sources."minimist-1.2.0"
+ sources."mime-2.4.3"
sources."ms-2.0.0"
- sources."next-tick-1.0.0"
sources."nice-try-1.0.5"
sources."normalize-path-3.0.0"
sources."npm-run-path-2.0.2"
sources."on-finished-2.3.0"
- sources."opn-5.3.0"
+ sources."once-1.4.0"
+ sources."open-6.4.0"
sources."os-tmpdir-1.0.2"
sources."p-finally-1.0.0"
sources."parseurl-1.3.3"
sources."path-key-2.0.1"
- sources."pem-1.13.2"
- sources."picomatch-2.0.7"
+ sources."pem-1.14.2"
+ sources."picomatch-2.1.0"
sources."pseudomap-1.0.2"
- sources."querystringify-2.1.1"
+ sources."pump-3.0.0"
sources."range-parser-1.2.1"
- sources."readdirp-3.1.2"
+ sources."readdirp-3.2.0"
sources."requires-port-1.0.0"
sources."semver-5.7.1"
- sources."send-0.16.2"
- sources."serve-static-1.13.2"
- sources."setprototypeof-1.1.0"
+ (sources."send-0.17.1" // {
+ dependencies = [
+ sources."mime-1.6.0"
+ sources."ms-2.1.1"
+ ];
+ })
+ sources."serve-static-1.14.1"
+ sources."setprototypeof-1.1.1"
sources."shebang-command-1.2.0"
sources."shebang-regex-1.0.0"
sources."signal-exit-3.0.2"
- sources."statuses-1.4.0"
+ sources."statuses-1.5.0"
sources."strip-ansi-3.0.1"
sources."strip-eof-1.0.0"
- sources."supervisor-0.12.0"
sources."supports-color-2.0.0"
- sources."timers-ext-0.1.7"
sources."to-regex-range-5.0.1"
- sources."type-1.0.3"
+ sources."toidentifier-1.0.0"
sources."unpipe-1.0.0"
- sources."url-parse-1.4.3"
sources."which-1.3.1"
- sources."ws-5.2.0"
+ sources."wrappy-1.0.2"
+ sources."ws-7.1.1"
sources."yallist-2.1.2"
];
buildInputs = globalBuildInputs;
@@ -6191,10 +5962,10 @@ in
sha512 = "9AjXLkznJBVLHHO+KErcgFMKeXe3tcudjj3PYIH6gWXG6W3PT+HF+t2zCflvgFPlhJO5H/wQCCo4rfCApltBzg==";
};
dependencies = [
- sources."bluebird-3.5.5"
+ sources."bluebird-3.7.1"
sources."core-util-is-1.0.2"
sources."fs-extra-6.0.1"
- sources."graceful-fs-4.2.2"
+ sources."graceful-fs-4.2.3"
sources."inherits-2.0.4"
sources."isarray-1.0.0"
sources."jsonfile-4.0.0"
@@ -6222,4 +5993,244 @@ in
bypassCache = true;
reconstructLock = true;
};
+ "@elm-tooling/elm-language-server" = nodeEnv.buildNodePackage {
+ name = "_at_elm-tooling_slash_elm-language-server";
+ packageName = "@elm-tooling/elm-language-server";
+ version = "1.4.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@elm-tooling/elm-language-server/-/elm-language-server-1.4.4.tgz";
+ sha512 = "vhiQZHael3isY254nS/iiW5zFiTwXmyaj+IOO9q1PQ6URP8PKzQla74o7UuURRlkF5B/OuwB+u/hncmEbwyy+w==";
+ };
+ dependencies = [
+ sources."@nodelib/fs.scandir-2.1.3"
+ sources."@nodelib/fs.stat-2.0.3"
+ sources."@nodelib/fs.walk-1.2.4"
+ sources."@types/events-3.0.0"
+ sources."@types/glob-7.1.1"
+ sources."@types/minimatch-3.0.3"
+ sources."@types/node-12.12.3"
+ sources."accepts-1.3.7"
+ sources."ajv-6.10.2"
+ sources."array-flatten-1.1.1"
+ sources."array-union-2.1.0"
+ sources."asn1-0.2.4"
+ sources."assert-plus-1.0.0"
+ sources."async-limiter-1.0.1"
+ sources."asynckit-0.4.0"
+ sources."aws-sign2-0.7.0"
+ sources."aws4-1.8.0"
+ sources."babel-runtime-6.18.0"
+ sources."balanced-match-1.0.0"
+ sources."bcrypt-pbkdf-1.0.2"
+ sources."body-parser-1.18.2"
+ sources."brace-expansion-1.1.11"
+ sources."braces-3.0.2"
+ sources."bytes-3.0.0"
+ sources."caseless-0.12.0"
+ sources."combined-stream-1.0.8"
+ sources."concat-map-0.0.1"
+ sources."concat-stream-1.5.2"
+ sources."content-disposition-0.5.2"
+ sources."content-type-1.0.4"
+ sources."cookie-0.3.1"
+ sources."cookie-signature-1.0.6"
+ sources."core-js-2.6.10"
+ sources."core-util-is-1.0.2"
+ sources."cross-spawn-7.0.1"
+ sources."dashdash-1.14.1"
+ sources."debug-2.6.9"
+ sources."delayed-stream-1.0.0"
+ sources."depd-1.1.2"
+ sources."destroy-1.0.4"
+ sources."dir-glob-3.0.1"
+ sources."ecc-jsbn-0.1.2"
+ sources."ee-first-1.1.1"
+ (sources."elm-analyse-git://github.com/elm-tooling/elm-analyse#f2a983fc7bab262a3e44b46732735d8510d18876" // {
+ dependencies = [
+ sources."ultron-1.1.1"
+ sources."ws-3.3.1"
+ ];
+ })
+ sources."encodeurl-1.0.2"
+ sources."end-of-stream-1.4.4"
+ sources."escape-html-1.0.3"
+ sources."etag-1.8.1"
+ (sources."execa-3.2.0" // {
+ dependencies = [
+ sources."is-stream-2.0.0"
+ ];
+ })
+ sources."express-4.16.3"
+ (sources."express-ws-2.0.0" // {
+ dependencies = [
+ sources."ws-1.1.5"
+ ];
+ })
+ sources."extend-3.0.2"
+ sources."extsprintf-1.3.0"
+ sources."fast-deep-equal-2.0.1"
+ sources."fast-diff-1.2.0"
+ sources."fast-glob-3.1.0"
+ sources."fast-json-stable-stringify-2.0.0"
+ sources."fastq-1.6.0"
+ sources."fill-range-7.0.1"
+ sources."finalhandler-1.1.1"
+ sources."find-0.2.7"
+ sources."forever-agent-0.6.1"
+ sources."form-data-2.3.3"
+ sources."forwarded-0.1.2"
+ sources."fresh-0.5.2"
+ sources."fs-extra-2.0.0"
+ sources."fs.realpath-1.0.0"
+ sources."get-stream-5.1.0"
+ sources."getpass-0.1.7"
+ sources."glob-7.1.5"
+ sources."glob-parent-5.1.0"
+ sources."globby-10.0.1"
+ sources."graceful-fs-4.2.3"
+ sources."har-schema-2.0.0"
+ sources."har-validator-5.1.3"
+ sources."http-errors-1.6.3"
+ sources."http-signature-1.2.0"
+ sources."human-signals-1.1.1"
+ sources."iconv-lite-0.4.19"
+ sources."ignore-5.1.4"
+ sources."inflight-1.0.6"
+ sources."inherits-2.0.3"
+ sources."ipaddr.js-1.9.0"
+ sources."is-extglob-2.1.1"
+ sources."is-glob-4.0.1"
+ sources."is-number-7.0.0"
+ sources."is-stream-1.1.0"
+ sources."is-typedarray-1.0.0"
+ sources."is-wsl-1.1.0"
+ sources."isarray-1.0.0"
+ sources."isexe-2.0.0"
+ sources."isstream-0.1.2"
+ sources."jsbn-0.1.1"
+ sources."json-schema-0.2.3"
+ sources."json-schema-traverse-0.4.1"
+ sources."json-stringify-safe-5.0.1"
+ sources."jsonfile-2.4.0"
+ sources."jsprim-1.4.1"
+ sources."lodash-4.17.15"
+ sources."media-typer-0.3.0"
+ sources."merge-descriptors-1.0.1"
+ sources."merge-stream-2.0.0"
+ sources."merge2-1.3.0"
+ sources."methods-1.1.2"
+ sources."micromatch-4.0.2"
+ sources."mime-1.4.1"
+ sources."mime-db-1.40.0"
+ sources."mime-types-2.1.24"
+ sources."mimic-fn-2.1.0"
+ sources."minimatch-3.0.4"
+ sources."minimist-1.2.0"
+ sources."ms-2.0.0"
+ sources."negotiator-0.6.2"
+ sources."node-watch-0.5.5"
+ sources."npm-run-path-4.0.0"
+ sources."oauth-sign-0.9.0"
+ sources."on-finished-2.3.0"
+ sources."once-1.4.0"
+ sources."onetime-5.1.0"
+ sources."opn-5.4.0"
+ sources."options-0.0.6"
+ sources."os-homedir-1.0.2"
+ sources."os-tmpdir-1.0.2"
+ sources."p-finally-2.0.1"
+ sources."parseurl-1.3.3"
+ sources."path-is-absolute-1.0.1"
+ sources."path-key-3.1.0"
+ sources."path-to-regexp-0.1.7"
+ sources."path-type-4.0.0"
+ sources."performance-now-2.1.0"
+ sources."picomatch-2.1.0"
+ sources."pjson-1.0.9"
+ sources."process-nextick-args-1.0.7"
+ sources."proxy-addr-2.0.5"
+ sources."psl-1.4.0"
+ sources."pump-3.0.0"
+ sources."punycode-2.1.1"
+ sources."qs-6.5.1"
+ sources."range-parser-1.2.1"
+ (sources."raw-body-2.3.2" // {
+ dependencies = [
+ sources."depd-1.1.1"
+ sources."http-errors-1.6.2"
+ sources."setprototypeof-1.0.3"
+ ];
+ })
+ sources."readable-stream-2.0.6"
+ sources."regenerator-runtime-0.9.6"
+ (sources."request-2.88.0" // {
+ dependencies = [
+ sources."qs-6.5.2"
+ sources."safe-buffer-5.2.0"
+ ];
+ })
+ sources."reusify-1.0.4"
+ sources."run-parallel-1.1.9"
+ sources."rxjs-6.5.3"
+ sources."safe-buffer-5.1.1"
+ sources."safer-buffer-2.1.2"
+ sources."send-0.16.2"
+ sources."serve-static-1.13.2"
+ sources."setprototypeof-1.1.0"
+ sources."shebang-command-2.0.0"
+ sources."shebang-regex-3.0.0"
+ sources."signal-exit-3.0.2"
+ sources."slash-3.0.0"
+ sources."sshpk-1.16.1"
+ sources."statuses-1.4.0"
+ sources."string_decoder-0.10.31"
+ sources."strip-final-newline-2.0.0"
+ sources."sums-0.2.4"
+ sources."through2-2.0.1"
+ sources."tmp-0.0.31"
+ sources."to-regex-range-5.0.1"
+ (sources."tough-cookie-2.4.3" // {
+ dependencies = [
+ sources."punycode-1.4.1"
+ ];
+ })
+ sources."traverse-chain-0.1.0"
+ sources."tslib-1.10.0"
+ sources."tunnel-agent-0.6.0"
+ sources."tweetnacl-0.14.5"
+ sources."type-is-1.6.18"
+ sources."typedarray-0.0.6"
+ sources."ultron-1.0.2"
+ sources."unpipe-1.0.0"
+ sources."uri-js-4.2.2"
+ sources."util-deprecate-1.0.2"
+ sources."utils-merge-1.0.1"
+ sources."uuid-3.3.3"
+ sources."vary-1.1.2"
+ sources."verror-1.10.0"
+ sources."vscode-jsonrpc-4.0.0"
+ (sources."vscode-languageserver-5.2.1" // {
+ dependencies = [
+ sources."vscode-uri-1.0.8"
+ ];
+ })
+ sources."vscode-languageserver-protocol-3.14.1"
+ sources."vscode-languageserver-types-3.14.0"
+ sources."vscode-uri-2.1.1"
+ sources."web-tree-sitter-0.15.10"
+ sources."which-2.0.1"
+ sources."wrappy-1.0.2"
+ sources."ws-7.2.0"
+ sources."xtend-4.0.2"
+ ];
+ buildInputs = globalBuildInputs;
+ meta = {
+ description = "Implementation of an elm language server in node.";
+ homepage = "https://github.com/elm-tooling/elm-language-server#readme";
+ license = "MIT";
+ };
+ production = true;
+ bypassCache = true;
+ reconstructLock = true;
+ };
}
\ No newline at end of file
diff --git a/pkgs/development/compilers/elm/registry.dat b/pkgs/development/compilers/elm/registry.dat
new file mode 100644
index 0000000000000000000000000000000000000000..14fcb12a74600af0db57c591206c9d18b3bf2207
Binary files /dev/null and b/pkgs/development/compilers/elm/registry.dat differ
diff --git a/pkgs/development/compilers/elm/update.sh b/pkgs/development/compilers/elm/update.sh
index 920b95e5ad954cd4931ca90b36adb48cd7a99c63..c2500b462adf5486bf527a759c464eba04cd2ca2 100755
--- a/pkgs/development/compilers/elm/update.sh
+++ b/pkgs/development/compilers/elm/update.sh
@@ -1,8 +1,9 @@
#!/usr/bin/env nix-shell
#!nix-shell -p cabal2nix elm2nix -i bash ../../..
-cabal2nix https://github.com/elm/compiler --revision d5cbc41aac23da463236bbc250933d037da4055a > packages/elm.nix
-elm2nix snapshot > versions.dat
-pushd "$(nix-build -A elmPackages.elm.src --no-out-link ../../../..)/ui/browser"
+cabal2nix https://github.com/elm/compiler --revision c9aefb6230f5e0bda03205ab0499f6e4af924495 > packages/elm.nix
+echo "need to manually copy registry.dat from an existing elm project"
+#elm2nix snapshot > registry.dat
+pushd "$(nix-build -A elmPackages.elm.src --no-out-link ../../../..)/reactor"
elm2nix convert > $OLDPWD/packages/elm-srcs.nix
popd
diff --git a/pkgs/development/compilers/elm/versions.dat b/pkgs/development/compilers/elm/versions.dat
deleted file mode 100644
index 9dcfd8a2808f666b0cff1a54b79a6543e46451d9..0000000000000000000000000000000000000000
Binary files a/pkgs/development/compilers/elm/versions.dat and /dev/null differ
diff --git a/pkgs/development/compilers/gcc/4.8/default.nix b/pkgs/development/compilers/gcc/4.8/default.nix
index eee2c1a97a8ce42446db85b01c7af4e7eaa41771..c047d9e50ee1a946f0a254d0ace7d819d5528879 100644
--- a/pkgs/development/compilers/gcc/4.8/default.nix
+++ b/pkgs/development/compilers/gcc/4.8/default.nix
@@ -7,6 +7,7 @@
, profiledCompiler ? false
, staticCompiler ? false
, enableShared ? true
+, enableLTO ? true
, texinfo ? null
, perl ? null # optional, for texi2pod (then pod2man); required for Java
, gmp, mpfr, libmpc, gettext, which
@@ -198,8 +199,9 @@ stdenv.mkDerivation ({
gmp mpfr libmpc libelf isl
cloog
- enablePlugin
+ enableLTO
enableMultilib
+ enablePlugin
enableShared
langC
diff --git a/pkgs/development/compilers/gcc/4.9/default.nix b/pkgs/development/compilers/gcc/4.9/default.nix
index b4ac68be1a33d42bb2f9b078d69e1e9fbd61e010..78027bcdac456de5c1ce80ad311eb66305fd4c14 100644
--- a/pkgs/development/compilers/gcc/4.9/default.nix
+++ b/pkgs/development/compilers/gcc/4.9/default.nix
@@ -7,6 +7,7 @@
, profiledCompiler ? false
, staticCompiler ? false
, enableShared ? true
+, enableLTO ? true
, texinfo ? null
, perl ? null # optional, for texi2pod (then pod2man); required for Java
, gmp, mpfr, libmpc, gettext, which
@@ -204,8 +205,9 @@ stdenv.mkDerivation ({
gmp mpfr libmpc libelf isl
cloog
- enablePlugin
+ enableLTO
enableMultilib
+ enablePlugin
enableShared
langC
diff --git a/pkgs/development/compilers/gcc/5/default.nix b/pkgs/development/compilers/gcc/5/default.nix
index cb327864f6e47152d161d49b044f670b34787bea..a6aab5c26d4384eb5be864b0d64b4d76d8228e00 100644
--- a/pkgs/development/compilers/gcc/5/default.nix
+++ b/pkgs/development/compilers/gcc/5/default.nix
@@ -7,6 +7,7 @@
, profiledCompiler ? false
, staticCompiler ? false
, enableShared ? true
+, enableLTO ? true
, texinfo ? null
, perl ? null # optional, for texi2pod (then pod2man); required for Java
, gmp, mpfr, libmpc, gettext, which
@@ -215,8 +216,9 @@ stdenv.mkDerivation ({
gmp mpfr libmpc libelf isl
- enablePlugin
+ enableLTO
enableMultilib
+ enablePlugin
enableShared
langC
diff --git a/pkgs/development/compilers/gcc/6/default.nix b/pkgs/development/compilers/gcc/6/default.nix
index 2cecc5bbaa05553f744e1d8937a5c800bf273e41..4ec24dbe88e795d963b2183a7cc32b2de71cae1e 100644
--- a/pkgs/development/compilers/gcc/6/default.nix
+++ b/pkgs/development/compilers/gcc/6/default.nix
@@ -7,6 +7,7 @@
, profiledCompiler ? false
, staticCompiler ? false
, enableShared ? true
+, enableLTO ? true
, texinfo ? null
, perl ? null # optional, for texi2pod (then pod2man); required for Java
, gmp, mpfr, libmpc, gettext, which
@@ -216,8 +217,9 @@ stdenv.mkDerivation ({
gmp mpfr libmpc libelf isl
- enablePlugin
+ enableLTO
enableMultilib
+ enablePlugin
enableShared
langC
diff --git a/pkgs/development/compilers/gcc/7/default.nix b/pkgs/development/compilers/gcc/7/default.nix
index c1592dbcb9b09f408a05a4fad825497fef37f1c8..aa46a5263898a952ddf8342acdd020f150163eb8 100644
--- a/pkgs/development/compilers/gcc/7/default.nix
+++ b/pkgs/development/compilers/gcc/7/default.nix
@@ -6,6 +6,7 @@
, profiledCompiler ? false
, staticCompiler ? false
, enableShared ? true
+, enableLTO ? true
, texinfo ? null
, perl ? null # optional, for texi2pod (then pod2man)
, gmp, mpfr, libmpc, gettext, which
@@ -193,8 +194,9 @@ stdenv.mkDerivation ({
gmp mpfr libmpc libelf isl
- enablePlugin
+ enableLTO
enableMultilib
+ enablePlugin
enableShared
langC
diff --git a/pkgs/development/compilers/gcc/8/default.nix b/pkgs/development/compilers/gcc/8/default.nix
index 2f222a8bc9432b73f7ebf4719f2d4f733b1f4ed7..0874d4d085ad45d0c6942ee31c96eaacd1606034 100644
--- a/pkgs/development/compilers/gcc/8/default.nix
+++ b/pkgs/development/compilers/gcc/8/default.nix
@@ -6,6 +6,7 @@
, profiledCompiler ? false
, staticCompiler ? false
, enableShared ? true
+, enableLTO ? true
, texinfo ? null
, perl ? null # optional, for texi2pod (then pod2man)
, gmp, mpfr, libmpc, gettext, which
@@ -129,7 +130,12 @@ stdenv.mkDerivation ({
sed -i gcc/config/linux.h -e '1i#undef LOCAL_INCLUDE_DIR'
''
)
- else "");
+ else "")
+ + stdenv.lib.optionalString targetPlatform.isAvr ''
+ makeFlagsArray+=(
+ 'LIMITS_H_TEST=false'
+ )
+ '';
inherit noSysDirs staticCompiler crossStageStatic
libcCross crossMingw;
@@ -179,8 +185,9 @@ stdenv.mkDerivation ({
gmp mpfr libmpc libelf isl
- enablePlugin
+ enableLTO
enableMultilib
+ enablePlugin
enableShared
langC
@@ -263,9 +270,6 @@ stdenv.mkDerivation ({
stdenv.lib.platforms.freebsd ++
stdenv.lib.platforms.illumos ++
stdenv.lib.platforms.darwin;
-
- # See #40038
- broken = stdenv.isDarwin;
};
}
diff --git a/pkgs/development/compilers/gcc/9/default.nix b/pkgs/development/compilers/gcc/9/default.nix
index 1fdba1baa29917782109b51668b536d4dab4800a..f16dcb59b4696d4c56946decafde9e398f70ce57 100644
--- a/pkgs/development/compilers/gcc/9/default.nix
+++ b/pkgs/development/compilers/gcc/9/default.nix
@@ -6,6 +6,7 @@
, profiledCompiler ? false
, staticCompiler ? false
, enableShared ? true
+, enableLTO ? true
, texinfo ? null
, perl ? null # optional, for texi2pod (then pod2man)
, gmp, mpfr, libmpc, gettext, which
@@ -128,7 +129,12 @@ stdenv.mkDerivation ({
sed -i gcc/config/linux.h -e '1i#undef LOCAL_INCLUDE_DIR'
''
)
- else "");
+ else "")
+ + stdenv.lib.optionalString targetPlatform.isAvr ''
+ makeFlagsArray+=(
+ 'LIMITS_H_TEST=false'
+ )
+ '';
inherit noSysDirs staticCompiler crossStageStatic
libcCross crossMingw;
@@ -178,8 +184,9 @@ stdenv.mkDerivation ({
gmp mpfr libmpc libelf isl
- enablePlugin
+ enableLTO
enableMultilib
+ enablePlugin
enableShared
langC
diff --git a/pkgs/development/compilers/gcc/common/configure-flags.nix b/pkgs/development/compilers/gcc/common/configure-flags.nix
index 115b018074c7c8f8a3947330e4de6c64b13772aa..3b96f432e96c093e66b9e7db4a0f65abb30e1a52 100644
--- a/pkgs/development/compilers/gcc/common/configure-flags.nix
+++ b/pkgs/development/compilers/gcc/common/configure-flags.nix
@@ -7,8 +7,9 @@
, gmp, mpfr, libmpc, libelf, isl
, cloog ? null
-, enablePlugin
+, enableLTO
, enableMultilib
+, enablePlugin
, enableShared
, langC
@@ -103,7 +104,7 @@ let
# Basic configuration
++ [
- "--enable-lto"
+ (lib.enableFeature enableLTO "lto")
"--disable-libstdcxx-pch"
"--without-included-gettext"
"--with-system-zlib"
diff --git a/pkgs/development/compilers/gcc/snapshot/default.nix b/pkgs/development/compilers/gcc/snapshot/default.nix
index 0519f04629ea81348adaea7818c80f761798b496..5344b6591696ad5c3fa5740dc19302f21dab4447 100644
--- a/pkgs/development/compilers/gcc/snapshot/default.nix
+++ b/pkgs/development/compilers/gcc/snapshot/default.nix
@@ -6,6 +6,7 @@
, profiledCompiler ? false
, staticCompiler ? false
, enableShared ? true
+, enableLTO ? true
, texinfo ? null
, perl ? null # optional, for texi2pod (then pod2man)
, gmp, mpfr, libmpc, gettext, which
@@ -150,8 +151,9 @@ stdenv.mkDerivation ({
gmp mpfr libmpc libelf isl
- enablePlugin
+ enableLTO
enableMultilib
+ enablePlugin
enableShared
langC
diff --git a/pkgs/development/compilers/gerbil/build.nix b/pkgs/development/compilers/gerbil/build.nix
index 9ef650c330fab88dd36dd4bb57fa7780835908d7..b5ccbca6f7e64bce8e1ab6ebd70823c7af27a353 100644
--- a/pkgs/development/compilers/gerbil/build.nix
+++ b/pkgs/development/compilers/gerbil/build.nix
@@ -1,6 +1,6 @@
{ stdenv, makeStaticLibraries,
coreutils, rsync, bash,
- openssl, zlib, sqlite, libxml2, libyaml, mysql, lmdb, leveldb, postgresql,
+ openssl, zlib, sqlite, libxml2, libyaml, libmysqlclient, lmdb, leveldb, postgresql,
version, git-version, gambit, src }:
# TODO: distinct packages for gerbil-release and gerbil-devel
@@ -12,13 +12,13 @@ stdenv.mkDerivation rec {
inherit src;
# Use makeStaticLibraries to enable creation of statically linked binaries
- buildInputs_libraries = [ openssl zlib sqlite libxml2 libyaml mysql.connector-c lmdb leveldb postgresql ];
+ buildInputs_libraries = [ openssl zlib sqlite libxml2 libyaml libmysqlclient lmdb leveldb postgresql ];
buildInputs_staticLibraries = map makeStaticLibraries buildInputs_libraries;
buildInputs = [ gambit rsync bash ]
++ buildInputs_libraries ++ buildInputs_staticLibraries;
- NIX_CFLAGS_COMPILE = [ "-I${mysql.connector-c}/include/mysql" "-L${mysql.connector-c}/lib/mysql" ];
+ NIX_CFLAGS_COMPILE = [ "-I${libmysqlclient}/include/mysql" "-L${libmysqlclient}/lib/mysql" ];
postPatch = ''
echo '(define (gerbil-version-string) "v${git-version}")' > src/gerbil/runtime/gx-version.scm
@@ -40,7 +40,7 @@ ZLIB=${makeStaticLibraries zlib}/lib/libz.a
# SQLITE=${makeStaticLibraries sqlite}/lib/sqlite.a # MISSING!
# LIBXML2=${makeStaticLibraries libxml2}/lib/libxml2.a # MISSING!
# YAML=${makeStaticLibraries libyaml}/lib/libyaml.a # MISSING!
-MYSQL=${makeStaticLibraries mysql.connector-c}/lib/mariadb/libmariadb.a
+MYSQL=${makeStaticLibraries libmysqlclient}/lib/mariadb/libmariadb.a
# LMDB=${makeStaticLibraries lmdb}/lib/mysql/libmysqlclient_r.a # MISSING!
LEVELDB=${makeStaticLibraries lmdb}/lib/libleveldb.a
EOF
diff --git a/pkgs/development/compilers/ghc/8.2.2.nix b/pkgs/development/compilers/ghc/8.2.2.nix
deleted file mode 100644
index a034e4ec8dd8daa88ae8ec10b83bf0298e2e2367..0000000000000000000000000000000000000000
--- a/pkgs/development/compilers/ghc/8.2.2.nix
+++ /dev/null
@@ -1,276 +0,0 @@
-{ stdenv, pkgsBuildTarget, targetPackages
-
-# build-tools
-, bootPkgs
-, autoconf, autoreconfHook, automake, coreutils, fetchurl, fetchpatch, perl, python3, sphinx
-, bash
-, runCommand
-
-, libiconv ? null, ncurses
-
-, useLLVM ? !stdenv.targetPlatform.isx86 || (stdenv.targetPlatform.isMusl && stdenv.hostPlatform != stdenv.targetPlatform)
-, # LLVM is conceptually a run-time-only depedendency, but for
- # non-x86, we need LLVM to bootstrap later stages, so it becomes a
- # build-time dependency too.
- buildLlvmPackages, llvmPackages
-
-, # If enabled, GHC will be built with the GPL-free but slower integer-simple
- # library instead of the faster but GPLed integer-gmp library.
- enableIntegerSimple ? !(stdenv.lib.any (stdenv.lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp
-
-, # If enabled, use -fPIC when compiling static libs.
- enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
-
-, # Whether to build dynamic libs for the standard library (on the target
- # platform). Static libs are always built.
- enableShared ? !stdenv.targetPlatform.useiOSPrebuilt
-
-, # What flavour to build. An empty string indicates no
- # specific flavour and falls back to ghc default values.
- ghcFlavour ? stdenv.lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform) "perf-cross"
-, # Whether to backport https://phabricator.haskell.org/D4388 for
- # deterministic profiling symbol names, at the cost of a slightly
- # non-standard GHC API
- deterministicProfiling ? false
-}:
-
-assert !enableIntegerSimple -> gmp != null;
-
-let
- inherit (stdenv) buildPlatform hostPlatform targetPlatform;
-
- inherit (bootPkgs) ghc;
-
- # TODO(@Ericson2314) Make unconditional
- targetPrefix = stdenv.lib.optionalString
- (targetPlatform != hostPlatform)
- "${targetPlatform.config}-";
-
- buildMK = ''
- BuildFlavour = ${ghcFlavour}
- ifneq \"\$(BuildFlavour)\" \"\"
- include mk/flavours/\$(BuildFlavour).mk
- endif
- DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
- INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
- '' + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
- Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
- CrossCompilePrefix = ${targetPrefix}
- HADDOCK_DOCS = NO
- BUILD_SPHINX_HTML = NO
- BUILD_SPHINX_PDF = NO
- '' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
- GhcLibHcOpts += -fPIC
- GhcRtsHcOpts += -fPIC
- '' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt ''
- EXTRA_CC_OPTS += -std=gnu99
- '';
-
- # Splicer will pull out correct variations
- libDeps = platform: [ ncurses ]
- ++ stdenv.lib.optional (!enableIntegerSimple) gmp
- ++ stdenv.lib.optional (platform.libc != "glibc") libiconv;
-
- toolsForTarget = [
- pkgsBuildTarget.targetPackages.stdenv.cc
- ] ++ stdenv.lib.optional useLLVM buildLlvmPackages.llvm;
-
- targetCC = builtins.head toolsForTarget;
-
-in
-stdenv.mkDerivation (rec {
- version = "8.2.2";
- name = "${targetPrefix}ghc-${version}";
-
- src = fetchurl {
- url = "https://downloads.haskell.org/~ghc/${version}/ghc-${version}-src.tar.xz";
- sha256 = "1z05vkpaj54xdypmaml50hgsdpw29dhbs2r7magx0cm199iw73mv";
- };
-
- enableParallelBuilding = true;
-
- outputs = [ "out" "doc" ];
-
- patches = [
- (fetchpatch { # Fix STRIP to be substituted from configure
- url = "https://git.haskell.org/ghc.git/commitdiff_plain/2fc8ce5f0c8c81771c26266ac0b150ca9b75c5f3";
- sha256 = "03253ci40np1v6k0wmi4aypj3nmj3rdyvb1k6rwqipb30nfc719f";
- })
- (import ./abi-depends-determinism.nix { inherit fetchpatch runCommand; })
- ] ++ stdenv.lib.optionals (hostPlatform != targetPlatform) [
- # Cherry-pick a few commits from newer hsc2hs so that proper binary is
- # installed -- stage 2 normally but stage 1 with cross.
- #
- # TODO make unconditional next mass rebuild.
- (fetchpatch {
- url = "https://git.haskell.org/hsc2hs.git/patch/ecdac062b5cf1d284906487849c56f4e149b3c8e";
- sha256 = "1gagswi26j50z44sdx0mk1sb3wr0nrqyaph9j724zp6iwqslxyzm";
- extraPrefix = "utils/hsc2hs/";
- stripLen = 1;
- })
- (fetchpatch {
- url = "https://git.haskell.org/hsc2hs.git/patch/598303cbffcd230635fbce28ce4105d177fdf76a";
- sha256 = "0hqcg434qbh1bz1pk85cap2q4v9i8bs6x65yzq4spz6xk3zq6af7";
- extraPrefix = "utils/hsc2hs/";
- stripLen = 1;
- })
- (fetchpatch {
- url = "https://git.haskell.org/hsc2hs.git/patch/9483ad10064fbbb97ab525280623826b1ef63959";
- sha256 = "1cpfdhfc0cz9xkjzkcgwx4fbyj96dkmd04wpwi1vji7fahw8kmf3";
- extraPrefix = "utils/hsc2hs/";
- stripLen = 1;
- })
- (fetchpatch {
- url = "https://git.haskell.org/hsc2hs.git/patch/738f3666c878ee9e79c3d5e819ef8b3460288edf";
- sha256 = "0plzsbfaq6vb1023lsarrjglwgr9chld4q3m99rcfzx0yx5mibp3";
- extraPrefix = "utils/hsc2hs/";
- stripLen = 1;
- })
- ] ++ stdenv.lib.optionals (hostPlatform != targetPlatform && targetPlatform.system == hostPlatform.system) [
- (fetchpatch {
- url = "https://raw.githubusercontent.com/gentoo/gentoo/08a41d2dff99645af6ac5a7bb4774f5f193b6f20/dev-lang/ghc/files/ghc-8.2.1_rc1-unphased-cross.patch";
- sha256 = "1hxj80bjx0x3w0f35cj3k2wipppr1ald03jwfy5q0xlxygdha17w";
- })
- (fetchpatch {
- url = "https://raw.githubusercontent.com/gentoo/gentoo/08a41d2dff99645af6ac5a7bb4774f5f193b6f20/dev-lang/ghc/files/ghc-8.2.1_rc1-staged-cross.patch";
- sha256 = "12xsln3zyfpvml8bwdpbc003h6zl1qh2qcq1rhdrw02n45dz8lvc";
- })
- (fetchpatch {
- url = "https://raw.githubusercontent.com/gentoo/gentoo/08a41d2dff99645af6ac5a7bb4774f5f193b6f20/dev-lang/ghc/files/ghc-8.2.1_rc1-ghci-cross.patch";
- sha256 = "03dcqf5af3vjhrky3f2z26j4d9h8qd9nkv76xp0l97h4cqk7vfqb";
- })
- (fetchpatch {
- url = "https://raw.githubusercontent.com/gentoo/gentoo/08a41d2dff99645af6ac5a7bb4774f5f193b6f20/dev-lang/ghc/files/ghc-8.2.1_rc1-stage2-cross.patch";
- sha256 = "0pi2m85wjxaaablq6n4q5vyn9qxvry5d7nmja4b28i68yb4ly9g1";
- })
- (fetchpatch {
- url = "https://raw.githubusercontent.com/gentoo/gentoo/08a41d2dff99645af6ac5a7bb4774f5f193b6f20/dev-lang/ghc/files/ghc-8.2.1_rc1-hp2ps-cross.patch";
- sha256 = "1fszfavf1cvrf02x500mi7jykcpvpl2i7i4qzr2qz9sbmyq063f0";
- })
- ] ++ stdenv.lib.optional deterministicProfiling
- (fetchpatch { # Backport of https://phabricator.haskell.org/D4388 for more determinism
- url = "https://github.com/shlevy/ghc/commit/fec1b8d3555c447c0d8da0e96b659be67c8bb4bc.patch";
- sha256 = "1lyysz6hfd1njcigpm8xppbnkadqfs0kvrp7s8vqgb38pjswj5hg";
- })
- ++ stdenv.lib.optional stdenv.isDarwin ./backport-dylib-command-size-limit.patch;
-
- postPatch = "patchShebangs .";
-
- # GHC is a bit confused on its cross terminology.
- preConfigure = ''
- for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
- export "''${env#TARGET_}=''${!env}"
- done
- # GHC is a bit confused on its cross terminology, as these would normally be
- # the *host* tools.
- export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
- export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
- # Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
- export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${stdenv.lib.optionalString targetPlatform.isLinux ".gold"}"
- export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
- export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
- export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
- export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
- export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
- export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
-
- echo -n "${buildMK}" > mk/build.mk
- sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
- '' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
- export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
- '' + stdenv.lib.optionalString stdenv.isDarwin ''
- export NIX_LDFLAGS+=" -no_dtrace_dof"
- '';
-
- # TODO(@Ericson2314): Always pass "--target" and always prefix.
- configurePlatforms = [ "build" "host" ]
- ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
- # `--with` flags for libraries needed for RTS linker
- configureFlags = [
- "--datadir=$doc/share/doc/ghc"
- ] ++ stdenv.lib.optional (targetPlatform == hostPlatform) [
- "--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
- ] ++ stdenv.lib.optional (targetPlatform == hostPlatform && !enableIntegerSimple) [
- "--with-gmp-includes=${targetPackages.gmp.dev}/include" "--with-gmp-libraries=${targetPackages.gmp.out}/lib"
- ] ++ stdenv.lib.optional (targetPlatform == hostPlatform && hostPlatform.libc != "glibc") [
- "--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib"
- ] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [
- "--enable-bootstrap-with-devel-snapshot"
- ] ++ stdenv.lib.optionals (targetPlatform.isAarch32) [
- "CFLAGS=-fuse-ld=gold"
- "CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
- "CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
- ] ++ stdenv.lib.optionals (targetPlatform.isDarwin && targetPlatform.isAarch64) [
- # fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
- "--disable-large-address-space"
- ];
-
- # Don’t add -liconv to LDFLAGS automatically so that GHC will add it itself.
- dontAddExtraLibs = true;
-
- # Make sure we never relax`$PATH` and hooks support for compatability.
- strictDeps = true;
-
- nativeBuildInputs = [
- autoconf autoreconfHook automake perl python3 sphinx
- ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
- ];
-
- # For building runtime libs
- depsBuildTarget = toolsForTarget;
-
- buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
-
- propagatedBuildInputs = [ targetPackages.stdenv.cc ]
- ++ stdenv.lib.optional useLLVM llvmPackages.llvm;
-
- depsTargetTarget = map stdenv.lib.getDev (libDeps targetPlatform);
- depsTargetTargetPropagated = map (stdenv.lib.getOutput "out") (libDeps targetPlatform);
-
- # required, because otherwise all symbols from HSffi.o are stripped, and
- # that in turn causes GHCi to abort
- stripDebugFlags = [ "-S" ] ++ stdenv.lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
-
- # See #63511 - the only unstripped file is the debug rts which isn't meant to
- # be stripped.
- dontStrip = true;
-
- checkTarget = "test";
- doCheck = false; # fails with "testsuite/tests: No such file or directory. Stop."
-
- hardeningDisable = [ "format" ] ++ stdenv.lib.optional stdenv.targetPlatform.isMusl "pie";
-
- postInstall = ''
- # Install the bash completion file.
- install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
-
- # Patch scripts to include "readelf" and "cat" in $PATH.
- for i in "$out/bin/"*; do
- test ! -h $i || continue
- egrep --quiet '^#!' <(head -n 1 $i) || continue
- sed -i -e '2i export PATH="$PATH:${stdenv.lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
- done
- '';
-
- passthru = {
- inherit bootPkgs targetPrefix;
-
- inherit llvmPackages;
- inherit enableShared;
-
- # Our Cabal compiler name
- haskellCompilerName = "ghc-8.2.2";
- };
-
- meta = {
- homepage = http://haskell.org/ghc;
- description = "The Glasgow Haskell Compiler";
- maintainers = with stdenv.lib.maintainers; [ marcweber andres peti ];
- inherit (ghc.meta) license platforms;
- };
-
-} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
- dontStrip = true;
- dontPatchELF = true;
- noAuditTmpdir = true;
-})
diff --git a/pkgs/development/compilers/ghc/8.6.4.nix b/pkgs/development/compilers/ghc/8.6.4.nix
deleted file mode 100644
index 18b2407a90bafbaab03e84a87b58e78834df5559..0000000000000000000000000000000000000000
--- a/pkgs/development/compilers/ghc/8.6.4.nix
+++ /dev/null
@@ -1,251 +0,0 @@
-{ stdenv, pkgsBuildTarget, targetPackages
-
-# build-tools
-, bootPkgs
-, autoconf, automake, coreutils, fetchurl, fetchpatch, perl, python3, m4, sphinx
-, bash
-
-, libiconv ? null, ncurses
-
-, # GHC can be built with system libffi or a bundled one.
- libffi ? null
-
-, useLLVM ? !stdenv.targetPlatform.isx86
-, # LLVM is conceptually a run-time-only depedendency, but for
- # non-x86, we need LLVM to bootstrap later stages, so it becomes a
- # build-time dependency too.
- buildLlvmPackages, llvmPackages
-
-, # If enabled, GHC will be built with the GPL-free but slower integer-simple
- # library instead of the faster but GPLed integer-gmp library.
- enableIntegerSimple ? !(stdenv.lib.any (stdenv.lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp
-
-, # If enabled, use -fPIC when compiling static libs.
- enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
-
-, # Whether to build dynamic libs for the standard library (on the target
- # platform). Static libs are always built.
- enableShared ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt
-
-, # Whetherto build terminfo.
- enableTerminfo ? !stdenv.targetPlatform.isWindows
-
-, # What flavour to build. An empty string indicates no
- # specific flavour and falls back to ghc default values.
- ghcFlavour ? stdenv.lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
- (if useLLVM then "perf-cross" else "perf-cross-ncg")
-
-, # Whether to disable the large address space allocator
- # necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
- disableLargeAddressSpace ? stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64
-}:
-
-assert !enableIntegerSimple -> gmp != null;
-
-let
- inherit (stdenv) buildPlatform hostPlatform targetPlatform;
-
- inherit (bootPkgs) ghc;
-
- # TODO(@Ericson2314) Make unconditional
- targetPrefix = stdenv.lib.optionalString
- (targetPlatform != hostPlatform)
- "${targetPlatform.config}-";
-
- buildMK = ''
- BuildFlavour = ${ghcFlavour}
- ifneq \"\$(BuildFlavour)\" \"\"
- include mk/flavours/\$(BuildFlavour).mk
- endif
- DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
- INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
- '' + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
- Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
- CrossCompilePrefix = ${targetPrefix}
- HADDOCK_DOCS = NO
- BUILD_SPHINX_HTML = NO
- BUILD_SPHINX_PDF = NO
- '' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
- GhcLibHcOpts += -fPIC
- GhcRtsHcOpts += -fPIC
- '' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt ''
- EXTRA_CC_OPTS += -std=gnu99
- '';
-
- # Splicer will pull out correct variations
- libDeps = platform: stdenv.lib.optional enableTerminfo [ ncurses ]
- ++ [libffi]
- ++ stdenv.lib.optional (!enableIntegerSimple) gmp
- ++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
-
- toolsForTarget = [
- pkgsBuildTarget.targetPackages.stdenv.cc
- ] ++ stdenv.lib.optional useLLVM buildLlvmPackages.llvm;
-
- targetCC = builtins.head toolsForTarget;
-
-in
-stdenv.mkDerivation (rec {
- version = "8.6.4";
- name = "${targetPrefix}ghc-${version}";
-
- src = fetchurl {
- url = "https://downloads.haskell.org/~ghc/${version}/ghc-${version}-src.tar.xz";
- sha256 = "0fihs1sr0hpk67dn9cmrsav13kkcp9hz8ggdqcrs80rj8vj0fpav";
- };
-
- enableParallelBuilding = true;
-
- outputs = [ "out" "doc" ];
-
- patches = [
- (fetchpatch rec { # https://phabricator.haskell.org/D5123
- url = "http://tarballs.nixos.org/sha256/${sha256}";
- name = "D5123.diff";
- sha256 = "0nhqwdamf2y4gbwqxcgjxs0kqx23w9gv5kj0zv6450dq19rji82n";
- })
- (fetchpatch { # https://github.com/haskell/haddock/issues/900
- url = "https://patch-diff.githubusercontent.com/raw/haskell/haddock/pull/983.diff";
- name = "loadpluginsinmodules.diff";
- sha256 = "0bvvv0zsfq2581zsir97zfkggc1kkircbbajc2fz3b169ycpbha1";
- extraPrefix = "utils/haddock/";
- stripLen = 1;
- })
- ];
-
- postPatch = "patchShebangs .";
-
- # GHC is a bit confused on its cross terminology.
- preConfigure = ''
- for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
- export "''${env#TARGET_}=''${!env}"
- done
- # GHC is a bit confused on its cross terminology, as these would normally be
- # the *host* tools.
- export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
- export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
- # Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
- export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${stdenv.lib.optionalString targetPlatform.isLinux ".gold"}"
- export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
- export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
- export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
- export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
- export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
- export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
-
- echo -n "${buildMK}" > mk/build.mk
- sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
- '' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
- export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
- '' + stdenv.lib.optionalString stdenv.isDarwin ''
- export NIX_LDFLAGS+=" -no_dtrace_dof"
- '' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt ''
- sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
- '' + stdenv.lib.optionalString targetPlatform.isMusl ''
- echo "patching llvm-targets for musl targets..."
- echo "Cloning these existing '*-linux-gnu*' targets:"
- grep linux-gnu llvm-targets | sed 's/^/ /'
- echo "(go go gadget sed)"
- sed -i 's,\(^.*linux-\)gnu\(.*\)$,\0\n\1musl\2,' llvm-targets
- echo "llvm-targets now contains these '*-linux-musl*' targets:"
- grep linux-musl llvm-targets | sed 's/^/ /'
-
- echo "And now patching to preserve '-musleabi' as done with '-gnueabi'"
- # (aclocal.m4 is actual source, but patch configure as well since we don't re-gen)
- for x in configure aclocal.m4; do
- substituteInPlace $x \
- --replace '*-android*|*-gnueabi*)' \
- '*-android*|*-gnueabi*|*-musleabi*)'
- done
- '';
-
- # TODO(@Ericson2314): Always pass "--target" and always prefix.
- configurePlatforms = [ "build" "host" ]
- ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
- # `--with` flags for libraries needed for RTS linker
- configureFlags = [
- "--datadir=$doc/share/doc/ghc"
- "--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
- ] ++ stdenv.lib.optionals (libffi != null) ["--with-system-libffi" "--with-ffi-includes=${targetPackages.libffi.dev}/include" "--with-ffi-libraries=${targetPackages.libffi.out}/lib"
- ] ++ stdenv.lib.optional (targetPlatform == hostPlatform && !enableIntegerSimple) [
- "--with-gmp-includes=${targetPackages.gmp.dev}/include" "--with-gmp-libraries=${targetPackages.gmp.out}/lib"
- ] ++ stdenv.lib.optional (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
- "--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib"
- ] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [
- "--enable-bootstrap-with-devel-snapshot"
- ] ++ stdenv.lib.optionals (targetPlatform.isAarch32) [
- "CFLAGS=-fuse-ld=gold"
- "CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
- "CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
- ] ++ stdenv.lib.optionals (disableLargeAddressSpace) [
- "--disable-large-address-space"
- ];
-
- # Make sure we never relax`$PATH` and hooks support for compatability.
- strictDeps = true;
-
- # Don’t add -liconv to LDFLAGS automatically so that GHC will add it itself.
- dontAddExtraLibs = true;
-
- nativeBuildInputs = [
- perl autoconf automake m4 python3 sphinx
- ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
- ];
-
- # For building runtime libs
- depsBuildTarget = toolsForTarget;
-
- buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
-
- propagatedBuildInputs = [ targetPackages.stdenv.cc ]
- ++ stdenv.lib.optional useLLVM llvmPackages.llvm;
-
- depsTargetTarget = map stdenv.lib.getDev (libDeps targetPlatform);
- depsTargetTargetPropagated = map (stdenv.lib.getOutput "out") (libDeps targetPlatform);
-
- # required, because otherwise all symbols from HSffi.o are stripped, and
- # that in turn causes GHCi to abort
- stripDebugFlags = [ "-S" ] ++ stdenv.lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
-
- # See #63511 - the only unstripped file is the debug rts which isn't meant to
- # be stripped.
- dontStrip = true;
-
- checkTarget = "test";
-
- hardeningDisable = [ "format" ] ++ stdenv.lib.optional stdenv.targetPlatform.isMusl "pie";
-
- postInstall = ''
- # Install the bash completion file.
- install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
-
- # Patch scripts to include "readelf" and "cat" in $PATH.
- for i in "$out/bin/"*; do
- test ! -h $i || continue
- egrep --quiet '^#!' <(head -n 1 $i) || continue
- sed -i -e '2i export PATH="$PATH:${stdenv.lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
- done
- '';
-
- passthru = {
- inherit bootPkgs targetPrefix;
-
- inherit llvmPackages;
- inherit enableShared;
-
- # Our Cabal compiler name
- haskellCompilerName = "ghc-8.6.4";
- };
-
- meta = {
- homepage = http://haskell.org/ghc;
- description = "The Glasgow Haskell Compiler";
- maintainers = with stdenv.lib.maintainers; [ marcweber andres peti ];
- inherit (ghc.meta) license platforms;
- };
-
-} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
- dontStrip = true;
- dontPatchELF = true;
- noAuditTmpdir = true;
-})
diff --git a/pkgs/development/compilers/ghc/abi-depends-determinism.nix b/pkgs/development/compilers/ghc/abi-depends-determinism.nix
deleted file mode 100644
index bc803b74617f906b143f9f269ffb5f7780b3080a..0000000000000000000000000000000000000000
--- a/pkgs/development/compilers/ghc/abi-depends-determinism.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-# https://phabricator.haskell.org/D4159 to fix non-determinism in
-# cached abi-depends fields in package databases, modified to only
-# contain hunks that exist in distribution tarballs.
-{ fetchpatch, runCommand }: let
- base = fetchpatch rec { # Non-determinism in cached abi-depends fields
- # Originally https://phabricator-files.haskell.org/file/data/4pqrbo5b62sifktfbrls/PHID-FILE-4g4zjiqlfxmmlaos7lz7/D4159.diff
- url = "http://tarballs.nixos.org/sha256/${sha256}";
- name = "D4159.diff";
- sha256 = "0b8a08sisf1swmarm6nh9rgw7cpzi2rwdzvrd6ny49c7wk0f7x4b";
- };
-in runCommand base.name {}
- "sed -n '/utils\\/ghc-pkg/,$p' ${base} >$out"
diff --git a/pkgs/development/compilers/ghc/head.nix b/pkgs/development/compilers/ghc/head.nix
index b78f5bc2204cd0f17946a12fa1b760072b45d81d..565c545e48c34cdf4b84b61752f203fb71e0711c 100644
--- a/pkgs/development/compilers/ghc/head.nix
+++ b/pkgs/development/compilers/ghc/head.nix
@@ -27,7 +27,7 @@
, # Whetherto build terminfo.
enableTerminfo ? !stdenv.targetPlatform.isWindows
-, version ? "8.9.20190601"
+, version ? "8.9.20190924"
, # What flavour to build. An empty string indicates no
# specific flavour and falls back to ghc default values.
ghcFlavour ? stdenv.lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
@@ -89,8 +89,8 @@ stdenv.mkDerivation (rec {
src = fetchgit {
url = "https://gitlab.haskell.org/ghc/ghc.git/";
- rev = "9bc10993bb300d3712b0f13ec6e28621d75d4204";
- sha256 = "1s7vbinywx8ffj09nxr0h32nggjiqpssrvgmj7820k32w2yi7i8v";
+ rev = "795986aaf33e2ffc233836b86a92a77366c91db2";
+ sha256 = "0a111x6c53r07q5qdg6c8mnydqp0wh4mpxmw7ga4x5wlap8i0bji";
};
enableParallelBuilding = true;
@@ -183,7 +183,7 @@ stdenv.mkDerivation (rec {
nativeBuildInputs = [
perl autoconf automake m4 python3 sphinx
- bootPkgs.ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
+ ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
];
# For building runtime libs
@@ -224,14 +224,14 @@ stdenv.mkDerivation (rec {
inherit enableShared;
# Our Cabal compiler name
- haskellCompilerName = "ghc-8.7";
+ haskellCompilerName = "ghc-${version}";
};
meta = {
homepage = http://haskell.org/ghc;
description = "The Glasgow Haskell Compiler";
maintainers = with stdenv.lib.maintainers; [ marcweber andres peti ];
- inherit (bootPkgs.ghc.meta) license platforms;
+ inherit (ghc.meta) license platforms;
};
} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
diff --git a/pkgs/development/compilers/ghcjs-ng/8.4/dep-overrides.nix b/pkgs/development/compilers/ghcjs-ng/8.4/dep-overrides.nix
deleted file mode 100644
index efba0dc8634fb05a0089e2607e409a853911c5e1..0000000000000000000000000000000000000000
--- a/pkgs/development/compilers/ghcjs-ng/8.4/dep-overrides.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ haskellLib }:
-
-let inherit (haskellLib) dontCheck doJailbreak;
-in self: super: {
- haddock-library-ghcjs = doJailbreak (dontCheck super.haddock-library-ghcjs);
- haddock-api-ghcjs = doJailbreak super.haddock-api-ghcjs;
-
- template-haskell-ghcjs = doJailbreak super.template-haskell-ghcjs;
-}
diff --git a/pkgs/development/compilers/ghcjs-ng/8.4/git.json b/pkgs/development/compilers/ghcjs-ng/8.4/git.json
deleted file mode 100644
index cfa6cf1d7d264f73aebb0877e27728fad0845560..0000000000000000000000000000000000000000
--- a/pkgs/development/compilers/ghcjs-ng/8.4/git.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "url": "https://github.com/ghcjs/ghcjs",
- "rev": "81bf5f31dabaa711aab234cb119eb9c998ccb129",
- "sha256": "1bgnc71kjqicqv2xq8p70nck600yi2p7g4k9r1jclv21ib7i5hmx",
- "fetchSubmodules": true
-}
diff --git a/pkgs/development/compilers/ghcjs-ng/8.4/stage0.nix b/pkgs/development/compilers/ghcjs-ng/8.4/stage0.nix
deleted file mode 100644
index 3b89db144979da3bf6097da9c966a52a7907ccd9..0000000000000000000000000000000000000000
--- a/pkgs/development/compilers/ghcjs-ng/8.4/stage0.nix
+++ /dev/null
@@ -1,176 +0,0 @@
-{ callPackage, configuredSrc }:
-
-{
-
- ghcjs = callPackage
- ({ mkDerivation, aeson, array, attoparsec, base, base16-bytestring
- , base64-bytestring, binary, bytestring, Cabal, containers
- , cryptohash, data-default, deepseq, directory, executable-path
- , filepath, ghc-api-ghcjs, ghc-boot, ghc-paths, ghci-ghcjs
- , ghcjs-th, haddock-api-ghcjs, hashable, haskell-src-exts
- , haskell-src-meta, http-types, HUnit, lens, lifted-base, mtl
- , network, optparse-applicative, parallel, parsec, process, random
- , regex-posix, safe, shelly, split, stdenv, stringsearch, syb
- , system-fileio, system-filepath, tar, template-haskell
- , template-haskell-ghcjs, terminfo, test-framework
- , test-framework-hunit, text, time, transformers
- , transformers-compat, unix, unix-compat, unordered-containers
- , vector, wai, wai-app-static, wai-extra, wai-websockets, warp
- , webdriver, websockets, wl-pprint-text, yaml
- }:
- mkDerivation {
- pname = "ghcjs";
- version = "8.4.0.1";
- src = configuredSrc + /.;
- isLibrary = true;
- isExecutable = true;
- enableSeparateDataOutput = true;
- setupHaskellDepends = [
- base Cabal containers directory filepath process template-haskell
- transformers
- ];
- libraryHaskellDepends = [
- aeson array attoparsec base base16-bytestring base64-bytestring
- binary bytestring Cabal containers cryptohash data-default deepseq
- directory filepath ghc-api-ghcjs ghc-boot ghc-paths ghci-ghcjs
- ghcjs-th hashable haskell-src-exts haskell-src-meta lens mtl
- optparse-applicative parallel parsec process regex-posix safe split
- stringsearch syb template-haskell template-haskell-ghcjs text time
- transformers unordered-containers vector wl-pprint-text yaml
- ];
- executableHaskellDepends = [
- aeson base binary bytestring Cabal containers directory
- executable-path filepath ghc-api-ghcjs ghc-boot haddock-api-ghcjs
- lens mtl optparse-applicative process shelly system-fileio
- system-filepath tar terminfo text time transformers
- transformers-compat unix unix-compat unordered-containers vector
- yaml
- ];
- testHaskellDepends = [
- aeson base bytestring data-default deepseq directory http-types
- HUnit lens lifted-base network optparse-applicative process random
- shelly system-fileio system-filepath test-framework
- test-framework-hunit text time transformers unordered-containers
- wai wai-app-static wai-extra wai-websockets warp webdriver
- websockets yaml
- ];
- description = "Haskell to JavaScript compiler";
- license = stdenv.lib.licenses.mit;
- }) {};
-
- ghc-api-ghcjs = callPackage
- ({ mkDerivation, array, base, binary, bytestring, containers
- , deepseq, directory, filepath, ghc-boot, ghc-boot-th, ghci-ghcjs
- , hpc, process, stdenv, template-haskell-ghcjs, terminfo, time
- , transformers, unix
- }:
- mkDerivation {
- pname = "ghc-api-ghcjs";
- version = "8.4.0";
- src = configuredSrc + /lib/ghc-api-ghcjs;
- libraryHaskellDepends = [
- array base binary bytestring containers deepseq directory filepath
- ghc-boot ghc-boot-th ghci-ghcjs hpc process template-haskell-ghcjs
- terminfo time transformers unix
- ];
- homepage = "http://www.haskell.org/ghc/";
- description = "The GHC API (customized for GHCJS)";
- license = stdenv.lib.licenses.bsd3;
- }) {};
-
- ghci-ghcjs = callPackage
- ({ mkDerivation, array, base, binary, bytestring, containers
- , deepseq, filepath, ghc-boot, ghc-boot-th, stdenv
- , template-haskell-ghcjs, transformers, unix
- }:
- mkDerivation {
- pname = "ghci-ghcjs";
- version = "8.4.0";
- src = configuredSrc + /lib/ghci-ghcjs;
- libraryHaskellDepends = [
- array base binary bytestring containers deepseq filepath ghc-boot
- ghc-boot-th template-haskell-ghcjs transformers unix
- ];
- description = "The library supporting GHC's interactive interpreter (customized for GHCJS)";
- license = stdenv.lib.licenses.bsd3;
- }) {};
-
- ghcjs-th = callPackage
- ({ mkDerivation, base, binary, bytestring, containers, ghc-prim
- , ghci-ghcjs, stdenv, template-haskell-ghcjs
- }:
- mkDerivation {
- pname = "ghcjs-th";
- version = "0.1.0.0";
- src = configuredSrc + /lib/ghcjs-th;
- libraryHaskellDepends = [
- base binary bytestring containers ghc-prim ghci-ghcjs
- template-haskell-ghcjs
- ];
- homepage = "https://github.com/ghcjs";
- license = stdenv.lib.licenses.mit;
- }) {};
-
- haddock-api-ghcjs = callPackage
- ({ mkDerivation, array, base, bytestring, Cabal, containers, deepseq
- , directory, filepath, ghc-api-ghcjs, ghc-boot, ghc-paths
- , haddock-library-ghcjs, hspec, hspec-discover, QuickCheck, stdenv
- , transformers, xhtml
- }:
- mkDerivation {
- pname = "haddock-api-ghcjs";
- version = "2.20.0";
- src = configuredSrc + /lib/haddock-api-ghcjs;
- enableSeparateDataOutput = true;
- libraryHaskellDepends = [
- array base bytestring Cabal containers deepseq directory filepath
- ghc-api-ghcjs ghc-boot ghc-paths haddock-library-ghcjs transformers
- xhtml
- ];
- testHaskellDepends = [
- array base bytestring Cabal containers deepseq directory filepath
- ghc-api-ghcjs ghc-boot ghc-paths haddock-library-ghcjs hspec
- QuickCheck transformers xhtml
- ];
- testToolDepends = [ hspec-discover ];
- homepage = "http://www.haskell.org/haddock/";
- description = "A documentation-generation tool for Haskell libraries";
- license = stdenv.lib.licenses.bsd3;
- }) {};
-
- haddock-library-ghcjs = callPackage
- ({ mkDerivation, base, base-compat, bytestring, containers, deepseq
- , directory, filepath, haddock-library, hspec, hspec-discover
- , optparse-applicative, QuickCheck, stdenv, transformers, tree-diff
- }:
- mkDerivation {
- pname = "haddock-library-ghcjs";
- version = "1.6.0";
- src = configuredSrc + /lib/haddock-library-ghcjs;
- libraryHaskellDepends = [
- base bytestring containers deepseq transformers
- ];
- testHaskellDepends = [
- base base-compat bytestring containers deepseq directory filepath
- haddock-library hspec optparse-applicative QuickCheck transformers
- tree-diff
- ];
- testToolDepends = [ hspec-discover ];
- doHaddock = false;
- homepage = "http://www.haskell.org/haddock/";
- description = "Library exposing some functionality of Haddock";
- license = stdenv.lib.licenses.bsd3;
- }) {};
-
- template-haskell-ghcjs = callPackage
- ({ mkDerivation, base, ghc-boot-th, pretty, stdenv }:
- mkDerivation {
- pname = "template-haskell-ghcjs";
- version = "2.13.0.0";
- src = configuredSrc + /lib/template-haskell-ghcjs;
- libraryHaskellDepends = [ base ghc-boot-th pretty ];
- description = "Support library for Template Haskell (customized for GHCJS)";
- license = stdenv.lib.licenses.bsd3;
- }) {};
-
-}
diff --git a/pkgs/development/compilers/ghcjs-ng/8.6/dep-overrides.nix b/pkgs/development/compilers/ghcjs-ng/8.6/dep-overrides.nix
index 53b6dd4313426899708379ac6c90c33b15b5c841..c54c782fafa673ff2e2eb1a512995a8d37694ada 100644
--- a/pkgs/development/compilers/ghcjs-ng/8.6/dep-overrides.nix
+++ b/pkgs/development/compilers/ghcjs-ng/8.6/dep-overrides.nix
@@ -2,6 +2,10 @@
let inherit (haskellLib) doJailbreak dontHaddock;
in self: super: {
+ ghc-api-ghcjs = super.ghc-api-ghcjs.override
+ {
+ happy = self.happy_1_19_5;
+ };
haddock-library-ghcjs = doJailbreak super.haddock-library-ghcjs;
haddock-api-ghcjs = doJailbreak (dontHaddock super.haddock-api-ghcjs);
}
diff --git a/pkgs/development/compilers/ghcjs-ng/8.6/git.json b/pkgs/development/compilers/ghcjs-ng/8.6/git.json
index 37861b96e7aad4b3695020a165c448dbed5d8f61..1114e1a1290520b08901eb05dadf83ea1f5ce55c 100644
--- a/pkgs/development/compilers/ghcjs-ng/8.6/git.json
+++ b/pkgs/development/compilers/ghcjs-ng/8.6/git.json
@@ -1,6 +1,6 @@
{
"url": "https://github.com/ghcjs/ghcjs",
- "rev": "75c61af32d73def4409d1fe7b64659c1d28cd075",
- "sha256": "18pixn6xdz6qp941yhxfnmwi463jnpskmg473lv07vvgy4hpgjhj",
+ "rev": "e87195eaa2bc7e320e18cf10386802bc90b7c874",
+ "sha256": "02mwkf7aagxqi142gcmq048244apslrr72p568akcab9s0fn2gvy",
"fetchSubmodules": true
}
diff --git a/pkgs/development/compilers/ghcjs-ng/8.6/stage0.nix b/pkgs/development/compilers/ghcjs-ng/8.6/stage0.nix
index a89ab15c55fd3a44c939217e60b78c47544b552a..b957a6aa9e10ad600462a19cb077ba2547dc8278 100644
--- a/pkgs/development/compilers/ghcjs-ng/8.6/stage0.nix
+++ b/pkgs/development/compilers/ghcjs-ng/8.6/stage0.nix
@@ -59,20 +59,21 @@
}) {};
ghc-api-ghcjs = callPackage
- ({ mkDerivation, array, base, binary, bytestring, containers
+ ({ mkDerivation, alex, array, base, binary, bytestring, containers
, deepseq, directory, filepath, ghc-boot, ghc-boot-th, ghc-heap
- , ghci-ghcjs, hpc, process, stdenv, template-haskell-ghcjs
+ , ghci-ghcjs, happy, hpc, process, stdenv, template-haskell-ghcjs
, terminfo, time, transformers, unix
}:
mkDerivation {
pname = "ghc-api-ghcjs";
- version = "8.6.2";
+ version = "8.6.5";
src = configuredSrc + /lib/ghc-api-ghcjs;
libraryHaskellDepends = [
array base binary bytestring containers deepseq directory filepath
ghc-boot ghc-boot-th ghc-heap ghci-ghcjs hpc process
template-haskell-ghcjs terminfo time transformers unix
];
+ libraryToolDepends = [ alex happy ];
homepage = "http://www.haskell.org/ghc/";
description = "The GHC API (customized for GHCJS)";
license = stdenv.lib.licenses.bsd3;
@@ -107,7 +108,7 @@
base binary bytestring containers ghc-prim ghci-ghcjs
template-haskell-ghcjs
];
- homepage = "https://github.com/ghcjs";
+ homepage = "http://github.com/ghcjs";
license = stdenv.lib.licenses.mit;
}) {};
diff --git a/pkgs/development/compilers/ghcjs-ng/common-overrides.nix b/pkgs/development/compilers/ghcjs-ng/common-overrides.nix
index 52f3ad497ad616cc46d060fb9d4ff12a2c22ae36..00a071651edae5296d9ec4f0b8e0afef8bdeaa31 100644
--- a/pkgs/development/compilers/ghcjs-ng/common-overrides.nix
+++ b/pkgs/development/compilers/ghcjs-ng/common-overrides.nix
@@ -1,8 +1,7 @@
-{ haskellLib, alex, happy }:
+{ haskellLib }:
let inherit (haskellLib) addBuildTools appendConfigureFlag dontHaddock doJailbreak;
in self: super: {
- ghc-api-ghcjs = addBuildTools super.ghc-api-ghcjs [alex happy];
ghcjs = dontHaddock (appendConfigureFlag (doJailbreak super.ghcjs) "-fno-wrapper-install");
haddock-library-ghcjs = dontHaddock super.haddock-library-ghcjs;
system-fileio = doJailbreak super.system-fileio;
diff --git a/pkgs/development/compilers/ghcjs-ng/default.nix b/pkgs/development/compilers/ghcjs-ng/default.nix
index 068d7b578dfe41d8e1c2e2fb9746a4216bf459ac..747ea5cf77f493567e9d0e0ef5acbe83da5d440b 100644
--- a/pkgs/development/compilers/ghcjs-ng/default.nix
+++ b/pkgs/development/compilers/ghcjs-ng/default.nix
@@ -34,7 +34,6 @@ let
(callPackage ./common-overrides.nix {
inherit haskellLib;
- inherit (bootPkgs) alex happy;
})
ghcjsDepOverrides
]);
@@ -105,5 +104,4 @@ in stdenv.mkDerivation {
meta.platforms = passthru.bootPkgs.ghc.meta.platforms;
meta.maintainers = [lib.maintainers.elvishjerricco];
- meta.hydraPlatforms = [];
}
diff --git a/pkgs/development/compilers/ghcjs/base.nix b/pkgs/development/compilers/ghcjs/base.nix
deleted file mode 100644
index ba0bbb1962b812cbd30a5b28a25331b6215a846a..0000000000000000000000000000000000000000
--- a/pkgs/development/compilers/ghcjs/base.nix
+++ /dev/null
@@ -1,161 +0,0 @@
-{ mkDerivation
-, lib
-, broken ? false
-, test-framework
-, test-framework-hunit
-, data-default
-, ghc-paths
-, haskell-src-exts
-, haskell-src-meta
-, optparse-applicative
-, system-fileio
-, system-filepath
-, text-binary
-, unordered-containers
-, cabal-install
-, wl-pprint-text
-, base16-bytestring
-, executable-path
-, transformers-compat
-, haddock-api
-, regex-posix
-
-, bootPkgs, gmp
-
-, runCommand
-, nodejs, stdenv, filepath, HTTP, HUnit, mtl, network, QuickCheck, random, stm
-, time
-, zlib, aeson, attoparsec, bzlib, hashable
-, lens
-, parallel, safe, shelly, split, stringsearch, syb
-, tar, terminfo
-, vector, yaml
-, alex, happy, git, gnumake, autoconf, patch
-, automake, libtool
-, cryptohash
-, haddock, hspec, xhtml, pkgs
-, coreutils
-, libiconv
-
-, version
-, ghcjsSrc
-, ghcjsBootSrc
-, ghcjsBoot ? import ./ghcjs-boot.nix {
- inherit runCommand;
- src = ghcjsBootSrc;
- }
-, shims
-
-# This is the list of the Stage 1 packages that are built into a booted ghcjs installation
-# It can be generated with the command:
-# nix-shell -p haskell.packages.ghcjs.ghc --command "ghcjs-pkg list | sed -n 's/^ \(.*\)-\([0-9.]*\)$/\1_\2/ p' | sed 's/\./_/g' | sed 's/^\([^_]*\)\(.*\)$/ \"\1\"/'"
-, stage1Packages
-
-, stage2 ? import ./stage2.nix
-
-, patches
-
-# used for resolving compiler plugins
-, ghcLibdir ? null
-}:
-let
- inherit (bootPkgs) ghc;
-
-in mkDerivation ({
- pname = "ghcjs";
- inherit version;
- src = ghcjsSrc;
- isLibrary = true;
- isExecutable = true;
- jailbreak = true;
- doHaddock = false;
- doCheck = false;
- buildDepends = [
- filepath HTTP mtl network random stm time zlib aeson attoparsec
- bzlib data-default ghc-paths hashable haskell-src-exts haskell-src-meta
- lens optparse-applicative parallel safe shelly split
- stringsearch syb system-fileio system-filepath tar terminfo text-binary
- unordered-containers vector wl-pprint-text yaml
- alex happy git gnumake autoconf automake libtool patch gmp
- base16-bytestring cryptohash executable-path haddock-api
- transformers-compat QuickCheck haddock hspec xhtml
- regex-posix libiconv
- ];
- buildTools = [ nodejs git ];
- testDepends = [
- HUnit test-framework test-framework-hunit
- ];
- inherit patches;
- postPatch = ''
- substituteInPlace Setup.hs \
- --replace "/usr/bin/env" "${coreutils}/bin/env"
-
- substituteInPlace src/Compiler/Info.hs \
- --replace "@PREFIX@" "$out" \
- --replace "@VERSION@" "${version}"
-
- substituteInPlace src-bin/Boot.hs \
- --replace "@PREFIX@" "$out" \
- --replace "@CC@" "${stdenv.cc}/bin/cc"
- '';
- preBuild = ''
- export HOME="$TMP"
-
- local topDir=$out/lib/ghcjs-${version}
- mkdir -p $topDir
-
- cp -r ${ghcjsBoot} $topDir/ghcjs-boot
- chmod -R u+w $topDir/ghcjs-boot
-
- cp -r ${shims} $topDir/shims
- chmod -R u+w $topDir/shims
-
- # Make the patches be relative their corresponding package's directory.
- # See: https://github.com/ghcjs/ghcjs-boot/pull/12
- for patch in "$topDir/ghcjs-boot/patches/"*.patch; do
- echo "fixing patch: $patch"
- sed -i -e 's@ \(a\|b\)/boot/[^/]\+@ \1@g' $patch
- done
- '';
- # We build with --quick so we can build stage 2 packages separately.
- # This is necessary due to: https://github.com/haskell/cabal/commit/af19fb2c2d231d8deff1cb24164a2bf7efb8905a
- # Cabal otherwise fails to build: http://hydra.nixos.org/build/31824079/nixlog/1/raw
- postInstall = ''
- PATH=$out/bin:$PATH LD_LIBRARY_PATH=${gmp.out}/lib:${stdenv.cc}/lib64:$LD_LIBRARY_PATH \
- env -u GHC_PACKAGE_PATH $out/bin/ghcjs-boot \
- --dev \
- --quick \
- --with-cabal ${cabal-install}/bin/cabal \
- --with-gmp-includes ${gmp.dev}/include \
- --with-gmp-libraries ${gmp.out}/lib
- '' + lib.optionalString (ghcLibdir != null) ''
- printf '%s' '${ghcLibdir}' > "$out/lib/ghcjs-${version}/ghc_libdir"
- '';
- passthru = {
- inherit bootPkgs;
- ghcVersion = ghc.version;
- isCross = true;
- isGhcjs = true;
- inherit nodejs ghcjsBoot;
- socket-io = pkgs.nodePackages."socket.io";
- haskellCompilerName = "ghcjs-${version}";
-
- # let us assume ghcjs is never actually cross compiled
- targetPrefix = "";
-
- enableShared = true;
-
- inherit stage1Packages;
- mkStage2 = stage2 {
- inherit ghcjsBoot;
- };
- };
-
- homepage = https://github.com/ghcjs/ghcjs;
- description = "A Haskell to JavaScript compiler that uses the GHC API";
- license = stdenv.lib.licenses.bsd3;
- platforms = ghc.meta.platforms;
- maintainers = with stdenv.lib.maintainers; [ jwiegley cstrahan dmjio elvishjerricco ];
- hydraPlatforms = if broken then [] else ghc.meta.platforms;
- inherit broken;
-})
diff --git a/pkgs/development/compilers/ghcjs/gen-stage2.rb b/pkgs/development/compilers/ghcjs/gen-stage2.rb
deleted file mode 100755
index 709e635db55cb6aa2584ce2d92c144a5a7425a4b..0000000000000000000000000000000000000000
--- a/pkgs/development/compilers/ghcjs/gen-stage2.rb
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/usr/bin/env ruby
-
-require 'pathname'
-
-# from boot.yaml in ghcjs/ghcjs
-stage2_packages = [
- "boot/async",
- "boot/aeson",
- "boot/attoparsec",
- "boot/case-insensitive",
- "boot/dlist",
- "boot/extensible-exceptions",
- "boot/hashable",
- "boot/mtl",
- "boot/old-time",
- "boot/parallel",
- "boot/scientific",
- "boot/stm",
- "boot/syb",
- "boot/text",
- "boot/unordered-containers",
- "boot/vector",
- "ghcjs/ghcjs-base",
- # not listed under stage2, but needed when "quick booting".
- "boot/cabal/Cabal"
-]
-
-nixpkgs = File.expand_path("../../../../..", __FILE__)
-boot = ARGV[0] || `nix-build #{nixpkgs} -A haskell.packages.ghcjs.ghc.ghcjsBoot`.chomp
-
-out = "".dup
-out << "{ ghcjsBoot }: { callPackage }:\n"
-out << "\n"
-out << "{\n"
-
-stage2_packages.each do |package|
- name = Pathname.new(package).basename
- nix = `cabal2nix file://#{boot}/#{package} --jailbreak`
- nix.sub!(/src =.*?$/, "src = \"${ghcjsBoot}/#{package}\";")
- nix.sub!(" doCheck = false;\n", "")
- nix.sub!("libraryHaskellDepends", "doCheck = false;\n libraryHaskellDepends")
- # cabal2nix somehow generates the deps for 'text' as if it had selected flag
- # 'integer-simple' (despite not passing the flag within the generated
- # expression). We want integer-gmp instead.
- nix.gsub!(/integer-simple/, "integer-gmp")
- nix = nix.split("\n").join("\n ")
-
- out << " #{name} = callPackage\n"
- out << " (#{nix}) {};\n"
-end
-
-out << "}"
-
-puts out
diff --git a/pkgs/development/compilers/ghcjs/ghcjs-boot.nix b/pkgs/development/compilers/ghcjs/ghcjs-boot.nix
deleted file mode 100644
index c00e13a9240490b3c89bf554db032d4a5e810c2a..0000000000000000000000000000000000000000
--- a/pkgs/development/compilers/ghcjs/ghcjs-boot.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ runCommand, src }:
-
-# we remove the patches so ghcjs-boot doesn't try to apply them again.
-runCommand "${src.name}-patched" {} ''
- cp -r ${src} $out
- chmod -R +w $out
-
- # Make the patches be relative their corresponding package's directory.
- # See: https://github.com/ghcjs/ghcjs-boot/pull/12
- for patch in $out/patches/*.patch; do
- echo ">> fixing patch: $patch"
- sed -i -e 's@ \(a\|b\)/boot/[^/]\+@ \1@g' $patch
- done
-
- for package in $(cd $out/boot; echo *); do
- patch=$out/patches/$package.patch
- if [[ -e $patch ]]; then
- echo ">> patching package: $package"
- pushd $out/boot/$package
- patch -p1 < $patch
- rm $patch
- popd
- fi
- done
-''
diff --git a/pkgs/development/compilers/go/1.12.nix b/pkgs/development/compilers/go/1.12.nix
index 817f3ab324d60fbb22fa2c4bed981c9b4880c4f1..b3b66fde2a15337c983e260908f4be63dffd9018 100644
--- a/pkgs/development/compilers/go/1.12.nix
+++ b/pkgs/development/compilers/go/1.12.nix
@@ -30,11 +30,11 @@ in
stdenv.mkDerivation rec {
pname = "go";
- version = "1.12.9";
+ version = "1.12.10";
src = fetchurl {
url = "https://dl.google.com/go/go${version}.src.tar.gz";
- sha256 = "1z32imbwmpkzgyh5c3vi7rbvzbq94xjk5qi2xm9sccj7kknmc3mb";
+ sha256 = "0m1rvawvpdl7kd0asw10m50xbxlhykix6dng9p4x6ih6x3y4hvpm";
};
# perl is used for testing go vet
@@ -96,6 +96,12 @@ stdenv.mkDerivation rec {
# Disable cgo lookup tests not works, they depend on resolver
rm src/net/cgo_unix_test.go
+ # Disable TestGcSys because it's flakey in our tests, but the failure is not
+ # reproducible by multiple people in other environments.
+ # See https://github.com/NixOS/nixpkgs/issues/68361#issuecomment-537849272 and following
+ # NOTE: Try re-enabling for releases newer than 1.12.9
+ sed -i '/TestGcSys/areturn' src/runtime/gc_test.go
+
'' + optionalString stdenv.isLinux ''
sed -i 's,/usr/share/zoneinfo/,${tzdata}/share/zoneinfo/,' src/time/zoneinfo_unix.go
'' + optionalString stdenv.isAarch32 ''
diff --git a/pkgs/development/compilers/go/1.11.nix b/pkgs/development/compilers/go/1.13.nix
similarity index 76%
rename from pkgs/development/compilers/go/1.11.nix
rename to pkgs/development/compilers/go/1.13.nix
index 32847a2671c537c346bdfc908322a098f58039cb..9e8a6601724b6cb430abad1c9b84068c623096f3 100644
--- a/pkgs/development/compilers/go/1.11.nix
+++ b/pkgs/development/compilers/go/1.13.nix
@@ -17,24 +17,24 @@ let
'';
goarch = platform: {
- i686 = "386";
- x86_64 = "amd64";
- aarch64 = "arm64";
- arm = "arm";
- armv5tel = "arm";
- armv6l = "arm";
- armv7l = "arm";
+ "i686" = "386";
+ "x86_64" = "amd64";
+ "aarch64" = "arm64";
+ "arm" = "arm";
+ "armv5tel" = "arm";
+ "armv6l" = "arm";
+ "armv7l" = "arm";
}.${platform.parsed.cpu.name} or (throw "Unsupported system");
in
stdenv.mkDerivation rec {
pname = "go";
- version = "1.11.13";
+ version = "1.13.4";
src = fetchurl {
url = "https://dl.google.com/go/go${version}.src.tar.gz";
- sha256 = "0xj0pbviikdf8g0sfz5hwxf7hwz8b8g5akqnrvyclhgnsdghjcjh";
+ sha256 = "093n5v0bipaan0qqc02wash18r625y74r4zhmjwlc9zf8asfmnwm";
};
# perl is used for testing go vet
@@ -70,25 +70,25 @@ stdenv.mkDerivation rec {
sed -i 's,/usr/bin,'"`pwd`", src/os/os_test.go
sed -i 's,/bin/pwd,'"`type -P pwd`", src/os/os_test.go
# Disable the unix socket test
- sed -i '/TestShutdownUnix/areturn' src/net/net_test.go
+ sed -i '/TestShutdownUnix/aif true \{ return\; \}' src/net/net_test.go
# Disable the hostname test
- sed -i '/TestHostname/areturn' src/os/os_test.go
+ sed -i '/TestHostname/aif true \{ return\; \}' src/os/os_test.go
# ParseInLocation fails the test
- sed -i '/TestParseInSydney/areturn' src/time/format_test.go
+ sed -i '/TestParseInSydney/aif true \{ return\; \}' src/time/format_test.go
# Remove the api check as it never worked
sed -i '/src\/cmd\/api\/run.go/ireturn nil' src/cmd/dist/test.go
# Remove the coverage test as we have removed this utility
- sed -i '/TestCoverageWithCgo/areturn' src/cmd/go/go_test.go
+ sed -i '/TestCoverageWithCgo/aif true \{ return\; \}' src/cmd/go/go_test.go
# Remove the timezone naming test
- sed -i '/TestLoadFixed/areturn' src/time/time_test.go
+ sed -i '/TestLoadFixed/aif true \{ return\; \}' src/time/time_test.go
# Remove disable setgid test
- sed -i '/TestRespectSetgidDir/areturn' src/cmd/go/internal/work/build_test.go
+ sed -i '/TestRespectSetgidDir/aif true \{ return\; \}' src/cmd/go/internal/work/build_test.go
# Remove cert tests that conflict with NixOS's cert resolution
- sed -i '/TestEnvVars/areturn' src/crypto/x509/root_unix_test.go
+ sed -i '/TestEnvVars/aif true \{ return\; \}' src/crypto/x509/root_unix_test.go
# TestWritevError hangs sometimes
- sed -i '/TestWritevError/areturn' src/net/writev_test.go
+ sed -i '/TestWritevError/aif true \{ return\; \}' src/net/writev_test.go
# TestVariousDeadlines fails sometimes
- sed -i '/TestVariousDeadlines/areturn' src/net/timeout_test.go
+ sed -i '/TestVariousDeadlines/aif true \{ return\; \}' src/net/timeout_test.go
sed -i 's,/etc/protocols,${iana-etc}/etc/protocols,' src/net/lookup_unix.go
sed -i 's,/etc/services,${iana-etc}/etc/services,' src/net/port_unix.go
@@ -107,35 +107,42 @@ stdenv.mkDerivation rec {
sed -i 's,"/etc","'"$TMPDIR"'",' src/os/os_test.go
sed -i 's,/_go_os_test,'"$TMPDIR"'/_go_os_test,' src/os/path_test.go
- sed -i '/TestChdirAndGetwd/areturn' src/os/os_test.go
- sed -i '/TestCredentialNoSetGroups/areturn' src/os/exec/exec_posix_test.go
- sed -i '/TestRead0/areturn' src/os/os_test.go
- sed -i '/TestSystemRoots/areturn' src/crypto/x509/root_darwin_test.go
+ sed -i '/TestChdirAndGetwd/aif true \{ return\; \}' src/os/os_test.go
+ sed -i '/TestCredentialNoSetGroups/aif true \{ return\; \}' src/os/exec/exec_posix_test.go
+ sed -i '/TestRead0/aif true \{ return\; \}' src/os/os_test.go
+ sed -i '/TestSystemRoots/aif true \{ return\; \}' src/crypto/x509/root_darwin_test.go
- sed -i '/TestGoInstallRebuildsStalePackagesInOtherGOPATH/areturn' src/cmd/go/go_test.go
- sed -i '/TestBuildDashIInstallsDependencies/areturn' src/cmd/go/go_test.go
+ sed -i '/TestGoInstallRebuildsStalePackagesInOtherGOPATH/aif true \{ return\; \}' src/cmd/go/go_test.go
+ sed -i '/TestBuildDashIInstallsDependencies/aif true \{ return\; \}' src/cmd/go/go_test.go
- sed -i '/TestDisasmExtld/areturn' src/cmd/objdump/objdump_test.go
+ sed -i '/TestDisasmExtld/aif true \{ return\; \}' src/cmd/objdump/objdump_test.go
sed -i 's/unrecognized/unknown/' src/cmd/link/internal/ld/lib.go
+ # TestCurrent fails because Current is not implemented on Darwin
+ sed -i 's/TestCurrent/testCurrent/g' src/os/user/user_test.go
+ sed -i 's/TestLookup/testLookup/g' src/os/user/user_test.go
+
touch $TMPDIR/group $TMPDIR/hosts $TMPDIR/passwd
'';
patches = [
./remove-tools-1.11.patch
- ./ssl-cert-file-1.12.1.patch
- ./remove-test-pie.patch
+ ./ssl-cert-file-1.13.patch
+ ./remove-test-pie-1.13.patch
./creds-test.patch
./go-1.9-skip-flaky-19608.patch
./go-1.9-skip-flaky-20072.patch
- ./remove-fhs-test-references.patch
./skip-external-network-tests.patch
./skip-nohup-tests.patch
# breaks under load: https://github.com/golang/go/issues/25628
./skip-test-extra-files-on-386.patch
];
+ postPatch = ''
+ find . -name '*.orig' -exec rm {} ';'
+ '';
+
GOOS = stdenv.targetPlatform.parsed.kernel.name;
GOARCH = goarch stdenv.targetPlatform;
# GOHOSTOS/GOHOSTARCH must match the building system, not the host system.
@@ -187,12 +194,12 @@ stdenv.mkDerivation rec {
checkPhase = ''
runHook preCheck
- (cd src && ./run.bash --no-rebuild)
+ (cd src && HOME=$TMPDIR GOCACHE=$TMPDIR/go-cache ./run.bash --no-rebuild)
runHook postCheck
'';
preInstall = ''
- rm -r pkg/{bootstrap,obj}
+ rm -r pkg/obj
# Contains the wrong perl shebang when cross compiling,
# since it is not used for anything we can deleted as well.
rm src/regexp/syntax/make_perl_groups.pl
@@ -222,11 +229,11 @@ stdenv.mkDerivation rec {
disallowedReferences = [ goBootstrap ];
meta = with stdenv.lib; {
- branch = "1.11";
+ branch = "1.13";
homepage = http://golang.org/;
description = "The Go Programming language";
license = licenses.bsd3;
- maintainers = with maintainers; [ cstrahan orivej velovix mic92 rvolosatovs ];
+ maintainers = with maintainers; [ cstrahan orivej velovix mic92 rvolosatovs kalbasit ];
platforms = platforms.linux ++ platforms.darwin;
};
}
diff --git a/pkgs/development/compilers/go/remove-test-pie-1.13.patch b/pkgs/development/compilers/go/remove-test-pie-1.13.patch
new file mode 100644
index 0000000000000000000000000000000000000000..05f18b813f91b323cd4cf9c7963beff4805a57b8
--- /dev/null
+++ b/pkgs/development/compilers/go/remove-test-pie-1.13.patch
@@ -0,0 +1,34 @@
+diff --git a/src/cmd/dist/test.go b/src/cmd/dist/test.go
+index f63c94697c..f02eff7064 100644
+--- a/src/cmd/dist/test.go
++++ b/src/cmd/dist/test.go
+@@ -574,29 +574,6 @@ func (t *tester) registerTests() {
+ })
+ }
+
+- // Test internal linking of PIE binaries where it is supported.
+- if goos == "linux" && (goarch == "amd64" || goarch == "arm64") {
+- t.tests = append(t.tests, distTest{
+- name: "pie_internal",
+- heading: "internal linking of -buildmode=pie",
+- fn: func(dt *distTest) error {
+- t.addCmd(dt, "src", t.goTest(), "reflect", "-buildmode=pie", "-ldflags=-linkmode=internal", t.timeout(60))
+- return nil
+- },
+- })
+- // Also test a cgo package.
+- if t.cgoEnabled {
+- t.tests = append(t.tests, distTest{
+- name: "pie_internal_cgo",
+- heading: "internal linking of -buildmode=pie",
+- fn: func(dt *distTest) error {
+- t.addCmd(dt, "src", t.goTest(), "os/user", "-buildmode=pie", "-ldflags=-linkmode=internal", t.timeout(60))
+- return nil
+- },
+- })
+- }
+- }
+-
+ // sync tests
+ if goos != "js" { // js doesn't support -cpu=10
+ t.tests = append(t.tests, distTest{
diff --git a/pkgs/development/compilers/go/ssl-cert-file-1.13.patch b/pkgs/development/compilers/go/ssl-cert-file-1.13.patch
new file mode 100644
index 0000000000000000000000000000000000000000..02a50d9c72f3e3dca2c949e243f5016aff059702
--- /dev/null
+++ b/pkgs/development/compilers/go/ssl-cert-file-1.13.patch
@@ -0,0 +1,64 @@
+diff --git a/src/crypto/x509/root_cgo_darwin.go b/src/crypto/x509/root_cgo_darwin.go
+index 255a8d3525..a467255a54 100644
+--- a/src/crypto/x509/root_cgo_darwin.go
++++ b/src/crypto/x509/root_cgo_darwin.go
+@@ -280,6 +280,8 @@ int CopyPEMRoots(CFDataRef *pemRoots, CFDataRef *untrustedPemRoots, bool debugDa
+ import "C"
+ import (
+ "errors"
++ "io/ioutil"
++ "os"
+ "unsafe"
+ )
+
+@@ -295,6 +297,13 @@ func loadSystemRoots() (*CertPool, error) {
+ buf := C.GoBytes(unsafe.Pointer(C.CFDataGetBytePtr(data)), C.int(C.CFDataGetLength(data)))
+ roots := NewCertPool()
+ roots.AppendCertsFromPEM(buf)
++ if file := os.Getenv("NIX_SSL_CERT_FILE"); file != "" {
++ data, err := ioutil.ReadFile(file)
++ if err == nil {
++ roots.AppendCertsFromPEM(data)
++ return roots, nil
++ }
++ }
+
+ if C.CFDataGetLength(untrustedData) == 0 {
+ return roots, nil
+diff --git a/src/crypto/x509/root_darwin.go b/src/crypto/x509/root_darwin.go
+index 2f6a8b8d60..b81889fe69 100644
+--- a/src/crypto/x509/root_darwin.go
++++ b/src/crypto/x509/root_darwin.go
+@@ -92,6 +92,14 @@ func execSecurityRoots() (*CertPool, error) {
+ verifyCh = make(chan rootCandidate)
+ )
+
++ if file := os.Getenv("NIX_SSL_CERT_FILE"); file != "" {
++ data, err := ioutil.ReadFile(file)
++ if err == nil {
++ roots.AppendCertsFromPEM(data)
++ return roots, nil
++ }
++ }
++
+ // Using 4 goroutines to pipe into verify-cert seems to be
+ // about the best we can do. The verify-cert binary seems to
+ // just RPC to another server with coarse locking anyway, so
+diff --git a/src/crypto/x509/root_unix.go b/src/crypto/x509/root_unix.go
+index 48de50b4ea..750e12c6b4 100644
+--- a/src/crypto/x509/root_unix.go
++++ b/src/crypto/x509/root_unix.go
+@@ -38,6 +38,13 @@ func (c *Certificate) systemVerify(opts *VerifyOptions) (chains [][]*Certificate
+
+ func loadSystemRoots() (*CertPool, error) {
+ roots := NewCertPool()
++ if file := os.Getenv("NIX_SSL_CERT_FILE"); file != "" {
++ data, err := ioutil.ReadFile(file)
++ if err == nil {
++ roots.AppendCertsFromPEM(data)
++ return roots, nil
++ }
++ }
+
+ files := certFiles
+ if f := os.Getenv(certFileEnv); f != "" {
diff --git a/pkgs/development/compilers/graalvm/default.nix b/pkgs/development/compilers/graalvm/default.nix
index 61e3b6c16aee737c899281cb5554057dbe3ef0cf..41cf956cd9f93e3e5c75b62e2bff7b81ebc42855 100644
--- a/pkgs/development/compilers/graalvm/default.nix
+++ b/pkgs/development/compilers/graalvm/default.nix
@@ -293,7 +293,7 @@ in rec {
# gfortran readline bzip2 lzma pcre.dev curl ed ## WIP: fastr dependencies
];
postUnpack = ''
- cp ${stdenv.cc.cc}/include/c++/${stdenv.cc.cc.version}/stdlib.h \
+ cp ${stdenv.cc.cc}/include/c++/${lib.getVersion stdenv.cc.cc}/stdlib.h \
$sourceRoot/sulong/projects/com.oracle.truffle.llvm.libraries.bitcode/include
cp ${truffleMake} $TMP && mv *truffle.make truffle.make
rm $sourceRoot/truffle/src/libffi/patches/others/0001-Add-mx-bootstrap-Makefile.patch
@@ -318,7 +318,7 @@ in rec {
--replace 'protected String compilerCommand = "cc";' 'protected String compilerCommand = "${stdenv.cc}/bin/cc";'
# prevent cyclical imports caused by identical names
substituteInPlace sulong/projects/com.oracle.truffle.llvm.libraries.bitcode/include/stdlib.h \
- --replace '# include ' '# include "${stdenv.cc.cc}/include/c++/${stdenv.cc.cc.version}/cstdlib"'
+ --replace '# include ' '# include "${stdenv.cc.cc}/include/c++/${lib.getVersion stdenv.cc.cc}/cstdlib"'
# dragonegg can't seem to compile on nix, so let's not require it
substituteInPlace sulong/mx.sulong/suite.py \
--replace '"requireDragonegg" : True,' '"requireDragonegg" : False,'
diff --git a/pkgs/development/compilers/halide/default.nix b/pkgs/development/compilers/halide/default.nix
index 683f8d7ace09d14fbdaf535f43ec67cc977caf4c..0b28b61a27b2103d1324e3540bcd34e73466a3ee 100644
--- a/pkgs/development/compilers/halide/default.nix
+++ b/pkgs/development/compilers/halide/default.nix
@@ -3,7 +3,7 @@
}:
let
- version = "2018_02_15";
+ version = "2019_08_27";
in llvmPackages.stdenv.mkDerivation {
@@ -13,7 +13,7 @@ in llvmPackages.stdenv.mkDerivation {
owner = "halide";
repo = "Halide";
rev = "release_${version}";
- sha256 = "14lmpbxydx7ii0pxds6rgq5vw4i6yfjsq0bai1l5wwpv1rnwmbxd";
+ sha256 = "09xf8v9zyxx2fn6s1yzjkyzcf9zyzrg3x5vivgd2ljzbfhm8wh7n";
};
patches = [ ./nix.patch ];
@@ -58,7 +58,7 @@ in llvmPackages.stdenv.mkDerivation {
description = "C++ based language for image processing and computational photography";
homepage = "https://halide-lang.org";
license = licenses.mit;
- platforms = platforms.linux;
+ platforms = [ "i686-linux" "x86_64-linux" ];
maintainers = [ maintainers.ck3d ];
};
}
diff --git a/pkgs/development/compilers/halide/nix.patch b/pkgs/development/compilers/halide/nix.patch
index 2ab1e31adeb4e8ae10b072227299e72a422f021c..fb9bbf1a4cf7f5f0a769cf5f821aa4f78bcf609a 100644
--- a/pkgs/development/compilers/halide/nix.patch
+++ b/pkgs/development/compilers/halide/nix.patch
@@ -1,11 +1,11 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 40a685b7e..c452efd09 100644
+index 4ba384324..7e23038f7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -49,10 +49,10 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
-
+@@ -75,10 +75,10 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
+
set(LLVM_VERSION "${LLVM_VERSION_MAJOR}${LLVM_VERSION_MINOR}")
-
+
-file(TO_NATIVE_PATH "${LLVM_TOOLS_BINARY_DIR}/llvm-as${CMAKE_EXECUTABLE_SUFFIX}" LLVM_AS)
-file(TO_NATIVE_PATH "${LLVM_TOOLS_BINARY_DIR}/llvm-nm${CMAKE_EXECUTABLE_SUFFIX}" LLVM_NM)
-file(TO_NATIVE_PATH "${LLVM_TOOLS_BINARY_DIR}/clang${CMAKE_EXECUTABLE_SUFFIX}" CLANG)
@@ -14,7 +14,7 @@ index 40a685b7e..c452efd09 100644
+find_program(LLVM_NM llvm-nm HINTS ${LLVM_TOOLS_BINARY_DIR})
+find_program(CLANG clang HINTS ${LLVM_TOOLS_BINARY_DIR})
+find_program(LLVM_CONFIG llvm-config HINTS ${LLVM_TOOLS_BINARY_DIR})
-
+
# LLVM doesn't appear to expose --system-libs via its CMake interface,
# so we must shell out to llvm-config to find this info
diff --git a/apps/linear_algebra/CMakeLists.txt b/apps/linear_algebra/CMakeLists.txt
@@ -27,7 +27,7 @@ index 132c80e6a..36ce865f2 100644
set(OpenBLAS_EXTRA_LIBS)
- set(BLAS_VENDORS OpenBLAS ATLAS)
+ set(BLAS_VENDORS OpenBLAS)
-
+
# TODO
# there are more vendors we could add here that support the cblas interface
@@ -41,6 +41,7 @@ if (CBLAS_FOUND)
@@ -39,17 +39,18 @@ index 132c80e6a..36ce865f2 100644
endif()
endforeach()
diff --git a/apps/linear_algebra/tests/CMakeLists.txt b/apps/linear_algebra/tests/CMakeLists.txt
-index 4b95eb3bb..1daa97437 100644
+index cc02eb0a4..c20419a0d 100644
--- a/apps/linear_algebra/tests/CMakeLists.txt
+++ b/apps/linear_algebra/tests/CMakeLists.txt
-@@ -19,6 +19,6 @@ target_compile_options(test_halide_blas PRIVATE -Wno-unused-variable)
+@@ -19,7 +19,7 @@ target_compile_options(test_halide_blas PRIVATE -Wno-unused-variable)
target_link_libraries(test_halide_blas
PRIVATE
halide_blas
- cblas # XXX fragile
+ ${BLAS_LIBRARIES}
- Halide
+ ${HALIDE_COMPILER_LIB}
)
---
-2.15.0
+
+--
+2.23.0
diff --git a/pkgs/development/compilers/haxe/default.nix b/pkgs/development/compilers/haxe/default.nix
index 0ae038d4713888cac99df86d663ca0436de583e6..5329cf59aa373cb9ca1888fb65c70e3279355e55 100644
--- a/pkgs/development/compilers/haxe/default.nix
+++ b/pkgs/development/compilers/haxe/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, fetchgit, coreutils, ocaml, zlib, pcre, neko, camlp4 }:
+{ stdenv, fetchgit, coreutils, ocamlPackages, zlib, pcre, neko }:
+
+let inherit (ocamlPackages) ocaml camlp4; in
let
generic = { version, sha256, prePatch }:
diff --git a/pkgs/development/compilers/hhvm/default.nix b/pkgs/development/compilers/hhvm/default.nix
index 24e88f9ee2e2cb5dfbd469e3fb44f6a7e594db67..7066744bb54ddf1e9050f599c321422b0bc70eee 100644
--- a/pkgs/development/compilers/hhvm/default.nix
+++ b/pkgs/development/compilers/hhvm/default.nix
@@ -2,7 +2,7 @@
, pcre, libevent, gd, curl, libxml2, icu, flex, bison, openssl, zlib, php
, expat, libcap, oniguruma, libdwarf, libmcrypt, tbb, gperftools, glog, libkrb5
, bzip2, openldap, readline, libelf, uwimap, binutils, cyrus_sasl, pam, libpng
-, libxslt, freetype, gdb, git, perl, mysql, gmp, libyaml, libedit
+, libxslt, freetype, gdb, git, perl, libmysqlclient, gmp, libyaml, libedit
, libvpx, imagemagick, fribidi, gperf, which, ocamlPackages
}:
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
};
buildInputs =
- [ cmake pkgconfig boost libunwind mysql.connector-c libmemcached pcre gdb git perl
+ [ cmake pkgconfig boost libunwind libmysqlclient libmemcached pcre gdb git perl
libevent gd curl libxml2 icu flex bison openssl zlib php expat libcap
oniguruma libdwarf libmcrypt tbb gperftools bzip2 openldap readline
libelf uwimap binutils cyrus_sasl pam glog libpng libxslt libkrb5
diff --git a/pkgs/development/compilers/iasl/default.nix b/pkgs/development/compilers/iasl/default.nix
index 1bcf4106a34d73480e89e2f0da0c26c0970fa605..fccdf7a978d406ccbee457450a2502aeae966cff 100644
--- a/pkgs/development/compilers/iasl/default.nix
+++ b/pkgs/development/compilers/iasl/default.nix
@@ -17,12 +17,6 @@ stdenv.mkDerivation rec {
buildInputs = [ bison flex ];
- patches = fetchpatch {
- /* https://github.com/acpica/acpica/pull/389 */
- url = "https://github.com/acpica/acpica/commit/935ca65f7806a3ef9bd02a947e50f3a1f586ac67.patch";
- sha256 = "0jz4bakifphm425shbd1j99hldgy71m7scl8mwibm441d56l3ydf";
- };
-
installPhase =
''
install -d $out/bin
diff --git a/pkgs/development/compilers/intel-graphics-compiler/default.nix b/pkgs/development/compilers/intel-graphics-compiler/default.nix
new file mode 100644
index 0000000000000000000000000000000000000000..183e1f2a0850fddb7333f67c4dc70d6fffd846f3
--- /dev/null
+++ b/pkgs/development/compilers/intel-graphics-compiler/default.nix
@@ -0,0 +1,73 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, pkgconfig
+
+, bison
+, flex
+, llvmPackages_8
+, opencl-clang
+, python
+, spirv-llvm-translator
+
+, buildWithPatches ? true
+}:
+
+let
+ llvmPkgs = llvmPackages_8 // {
+ inherit spirv-llvm-translator;
+ };
+ inherit (llvmPkgs) llvm;
+ inherit (if buildWithPatches then opencl-clang else llvmPkgs) clang clang-unwrapped spirv-llvm-translator;
+ inherit (stdenv.lib) getVersion optional optionals versionOlder versions;
+in
+
+stdenv.mkDerivation rec {
+ pname = "intel-graphics-compiler";
+ version = "1.0.2714.1";
+
+ src = fetchFromGitHub {
+ owner = "intel";
+ repo = "intel-graphics-compiler";
+ rev = "igc-${version}";
+ sha256 = "0ys03sv08fg8q06lb6k5088xirnwms4nzazxp3kbdjm973n7imxc";
+ };
+
+ nativeBuildInputs = [ clang cmake bison flex llvm python ];
+
+ buildInputs = [ clang opencl-clang spirv-llvm-translator ];
+
+ # checkInputs = [ lit pythonPackages.nose ];
+
+ # FIXME: How do we run the test suite?
+ # https://github.com/intel/intel-graphics-compiler/issues/98
+ doCheck = false;
+
+ # Handholding the braindead build script
+ # We put this in a derivation because the cmake requires an absolute path
+ prebuilds = stdenv.mkDerivation {
+ name = "igc-cclang-prebuilds";
+ phases = [ "installPhase" ];
+ installPhase = ''
+ mkdir $out
+ ln -s ${clang}/bin/clang $out/
+ ln -s clang $out/clang-${versions.major (getVersion clang)}
+ ln -s ${opencl-clang}/lib/* $out/
+ ln -s ${clang-unwrapped}/lib/clang/${getVersion clang}/include/opencl-c.h $out/
+ '';
+ };
+
+ cmakeFlags = [
+ "-DCCLANG_BUILD_PREBUILDS=ON"
+ "-DCCLANG_BUILD_PREBUILDS_DIR=${prebuilds}"
+ "-DIGC_PREFERRED_LLVM_VERSION=${getVersion llvm}"
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = https://github.com/intel/intel-graphics-compiler;
+ description = "LLVM-based compiler for OpenCL targeting Intel Gen graphics hardware";
+ license = licenses.mit;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ gloaming ];
+ };
+}
diff --git a/pkgs/development/compilers/intercal/default.nix b/pkgs/development/compilers/intercal/default.nix
index 6640c4aa89abb4c585dc300ef26cb7d203815909..d890dc0fdfad444c6d1a1c94bc1beaa4f0c5a65d 100644
--- a/pkgs/development/compilers/intercal/default.nix
+++ b/pkgs/development/compilers/intercal/default.nix
@@ -7,11 +7,11 @@ with stdenv.lib;
stdenv.mkDerivation rec {
pname = "intercal";
- version = "0.30";
+ version = "0.31";
src = fetchurl {
url = "http://catb.org/esr/intercal/${pname}-${version}.tar.gz";
- sha256 = "058ppvvgz9r5603ia9jkknbrciypgg4hjbczrv9v1d9w3ak652xk";
+ sha256 = "1z2gpa5rbqb7jscqlf258k0b0jc7d2zkyipb5csjpj6d3sw45n4k";
};
buildInputs =
diff --git a/pkgs/development/compilers/ispc/default.nix b/pkgs/development/compilers/ispc/default.nix
index f240deda0bf9331916f5a85bc722ecd775cea8ce..0c44595b24bc04731af60bac2ba2598d85de8cb2 100644
--- a/pkgs/development/compilers/ispc/default.nix
+++ b/pkgs/development/compilers/ispc/default.nix
@@ -1,5 +1,5 @@
{stdenv, fetchFromGitHub, which, m4, python, bison, flex, llvmPackages,
-testedTargets ? ["sse2" "host"] # the default test target is sse4, but that is not supported by all Hydra agents
+testedTargets ? ["sse2"] # the default test target is sse4, but that is not supported by all Hydra agents
}:
stdenv.mkDerivation rec {
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
# there are missing dependencies in the Makefile, causing sporadic build failures
enableParallelBuilding = false;
- doCheck = true;
+ doCheck = stdenv.isLinux;
buildInputs = with llvmPackages; [
which
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
homepage = https://ispc.github.io/ ;
description = "Intel 'Single Program, Multiple Data' Compiler, a vectorised language";
license = licenses.bsd3;
- platforms = ["x86_64-linux"]; # TODO: buildable on more platforms?
+ platforms = ["x86_64-linux" "x86_64-darwin"]; # TODO: buildable on more platforms?
maintainers = [ maintainers.aristid ];
};
}
diff --git a/pkgs/development/compilers/jasmin/default.nix b/pkgs/development/compilers/jasmin/default.nix
new file mode 100644
index 0000000000000000000000000000000000000000..ef1b3055190ed32c6f83e1c5f7b68acbcc97eb6d
--- /dev/null
+++ b/pkgs/development/compilers/jasmin/default.nix
@@ -0,0 +1,44 @@
+{ stdenv
+, fetchurl
+, unzip
+, jdk
+, ant
+, makeWrapper
+, jre
+, callPackage
+}:
+
+stdenv.mkDerivation rec {
+ pname = "jasmin";
+ version = "2.4";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/jasmin/jasmin-${version}/jasmin-${version}.zip";
+ sha256 = "17a41vr96glcdrdbk88805wwvv1r6w8wg7if23yhd0n6rrl0r8ga";
+ };
+
+ nativeBuildInputs = [ unzip jdk ant makeWrapper ];
+
+ buildPhase = "ant all";
+ installPhase =
+ ''
+ install -Dm644 jasmin.jar $out/share/java/jasmin.jar
+ mkdir -p $out/bin
+ makeWrapper ${jre}/bin/java $out/bin/jasmin \
+ --add-flags "-jar $out/share/java/jasmin.jar"
+ '';
+
+ passthru.tests = {
+ minimal-module = callPackage ./test-assemble-hello-world {};
+ };
+
+ meta = with stdenv.lib; {
+ description = "An assembler for the Java Virtual Machine";
+ homepage = "http://jasmin.sourceforge.net/";
+ downloadPage = "https://sourceforge.net/projects/jasmin/files/latest/download";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ fgaz ];
+ platforms = platforms.all;
+ };
+}
+
diff --git a/pkgs/development/compilers/jasmin/test-assemble-hello-world/HelloWorld.j b/pkgs/development/compilers/jasmin/test-assemble-hello-world/HelloWorld.j
new file mode 100644
index 0000000000000000000000000000000000000000..564e6c8a9aa293a665dacde45ff0e4f08a8c0452
--- /dev/null
+++ b/pkgs/development/compilers/jasmin/test-assemble-hello-world/HelloWorld.j
@@ -0,0 +1,31 @@
+.class public HelloWorld
+.super java/lang/Object
+
+;
+; standard initializer (calls java.lang.Object's initializer)
+;
+.method public ()V
+ aload_0
+ invokenonvirtual java/lang/Object/()V
+ return
+.end method
+
+;
+; main() - prints out Hello World
+;
+.method public static main([Ljava/lang/String;)V
+ .limit stack 2 ; up to two items can be pushed
+
+ ; push System.out onto the stack
+ getstatic java/lang/System/out Ljava/io/PrintStream;
+
+ ; push a string onto the stack
+ ldc "Hello World!"
+
+ ; call the PrintStream.println() method.
+ invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V
+
+ ; done
+ return
+.end method
+
diff --git a/pkgs/development/compilers/jasmin/test-assemble-hello-world/default.nix b/pkgs/development/compilers/jasmin/test-assemble-hello-world/default.nix
new file mode 100644
index 0000000000000000000000000000000000000000..1840edffa779f483e536b8c71044a8bfedbbd62f
--- /dev/null
+++ b/pkgs/development/compilers/jasmin/test-assemble-hello-world/default.nix
@@ -0,0 +1,12 @@
+{ stdenv, jasmin, jre }:
+
+stdenv.mkDerivation {
+ name = "jasmin-test-assemble-hello-world";
+ meta.timeout = 60;
+ buildCommand = ''
+ ${jasmin}/bin/jasmin ${./HelloWorld.j}
+ ${jre}/bin/java HelloWorld | grep "Hello World"
+ touch $out
+ '';
+}
+
diff --git a/pkgs/development/compilers/jetbrains-jdk/default.nix b/pkgs/development/compilers/jetbrains-jdk/default.nix
index 1349b7f0dddca4d29fa03cb23b67969f47a8c3d5..276b9ae150a0a7b37fb928736326edf51c0becf5 100644
--- a/pkgs/development/compilers/jetbrains-jdk/default.nix
+++ b/pkgs/development/compilers/jetbrains-jdk/default.nix
@@ -7,12 +7,17 @@
let drv = stdenv.mkDerivation rec {
pname = "jetbrainsjdk";
- version = "164";
+ version = "485.1";
src = if stdenv.hostPlatform.system == "x86_64-linux" then
fetchurl {
- url = "https://bintray.com/jetbrains/intellij-jdk/download_file?file_path=jbrsdk-11_0_2-linux-x64-b${version}.tar.gz";
- sha256 = "121yzgvkfx7lq0k9s8wjnhz09a564br5y7zlkxgh191sbm2i7zdi";
+ url = "https://bintray.com/jetbrains/intellij-jbr/download_file?file_path=jbrsdk-11_0_4-linux-x64-b${version}.tar.gz";
+ sha256 = "18jnn0dra9nsnyllwq0ljxzr58k2pg8d0kg10y39vnxwccic4f76";
+ }
+ else if stdenv.hostPlatform.system == "x86_64-darwin" then
+ fetchurl {
+ url = "https://bintray.com/jetbrains/intellij-jdk/download_file?file_path=jbrsdk-11_0_2-osx-x64-b${version}.tar.gz";
+ sha256 = "1ly6kf59knvzbr2pjkc9fqyzfs28pdvnqg5pfffr8zp14xm44zmd";
}
else
throw "unsupported system: ${stdenv.hostPlatform.system}";
@@ -24,24 +29,23 @@ let drv = stdenv.mkDerivation rec {
installPhase = ''
cd ..
- mv $sourceRoot $out
- jrePath=$out/jre
+ mv $sourceRoot/jbrsdk $out
'';
- postFixup = ''
+ postFixup = lib.optionalString (!stdenv.isDarwin) ''
find $out -type f -perm -0100 \
-exec patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "$rpath" {} \;
find $out -name "*.so" -exec patchelf --set-rpath "$rpath" {} \;
'';
- rpath = lib.makeLibraryPath ([
+ rpath = lib.optionalString (!stdenv.isDarwin) (lib.makeLibraryPath ([
stdenv.cc.cc stdenv.cc.libc glib libxml2 libav_0_8 ffmpeg libxslt libGL
alsaLib fontconfig freetype pango gtk2 cairo gdk-pixbuf atk zlib
(placeholder "out")
] ++ (with xorg; [
libX11 libXext libXtst libXi libXp libXt libXrender libXxf86vm
- ])) + ":${placeholder "out"}/lib/jli";
+ ])) + ":${placeholder "out"}/lib/jli");
passthru.home = drv;
@@ -61,6 +65,6 @@ let drv = stdenv.mkDerivation rec {
homepage = "https://bintray.com/jetbrains/intellij-jdk/";
license = licenses.gpl2;
maintainers = with maintainers; [ edwtjo ];
- platforms = with platforms; [ "x86_64-linux" ];
+ platforms = with platforms; [ "x86_64-linux" "x86_64-darwin" ];
};
}; in drv
diff --git a/pkgs/development/compilers/jikes/default.nix b/pkgs/development/compilers/jikes/default.nix
deleted file mode 100644
index 1247f369c5c984108c59508b21746305ad043d21..0000000000000000000000000000000000000000
--- a/pkgs/development/compilers/jikes/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{stdenv, fetchurl}:
-
-stdenv.mkDerivation {
- name = "jikes-1.22";
- src = fetchurl {
- url = mirror://sourceforge/jikes/jikes-1.22.tar.bz2;
- sha256 = "1qqldrp74pzpy5ly421srqn30qppmm9cvjiqdngk8hf47dv2rc0c";
- };
-
- meta = {
- platforms = stdenv.lib.platforms.unix;
- license = stdenv.lib.licenses.epl10;
- };
-}
diff --git a/pkgs/development/compilers/jsonnet/default.nix b/pkgs/development/compilers/jsonnet/default.nix
index 460ff405b94e5230a0fce945d883a8b3db21bcf1..d7c05331991d665ecd55e11ac316095e3930f87c 100644
--- a/pkgs/development/compilers/jsonnet/default.nix
+++ b/pkgs/development/compilers/jsonnet/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "jsonnet";
- version = "0.13.0";
+ version = "0.14.0";
src = fetchFromGitHub {
rev = "v${version}";
owner = "google";
repo = "jsonnet";
- sha256 = "1fibr1kysbxcf8jp2a4xvs3n7i8d9k2430agxzc9mdyqrh79zlxk";
+ sha256 = "012zapx0xvlkl2y7dljpdn18gymnmzc4mma2yagf9pxnr286lwrf";
};
enableParallelBuilding = true;
diff --git a/pkgs/development/compilers/kotlin/default.nix b/pkgs/development/compilers/kotlin/default.nix
index 90dc20fcd3ea917b99731b8ac38f4d2c5120d35b..12a75eb8f1438b22adc8e32d3f46a95b2fbefe47 100644
--- a/pkgs/development/compilers/kotlin/default.nix
+++ b/pkgs/development/compilers/kotlin/default.nix
@@ -1,14 +1,14 @@
{ stdenv, fetchurl, makeWrapper, jre, unzip }:
let
- version = "1.3.41";
+ version = "1.3.50";
in stdenv.mkDerivation {
inherit version;
pname = "kotlin";
src = fetchurl {
url = "https://github.com/JetBrains/kotlin/releases/download/v${version}/kotlin-compiler-${version}.zip";
- sha256 = "0ch1fynqjfsb7jklw3pa6fygrgnl8nz4x4v0id06wq4md23bcjn4";
+ sha256 = "1v66pnk810agf26khwdv7l8jpc11x6na5fyqxs9jvxdpls8l0hk9";
};
propagatedBuildInputs = [ jre ] ;
diff --git a/pkgs/development/compilers/ldc/default.nix b/pkgs/development/compilers/ldc/default.nix
index 787a9352e2259652abaf0306cabfcd15e440a25b..03e6fa82b9d0ac17543c5f08c83ee6019304cb27 100644
--- a/pkgs/development/compilers/ldc/default.nix
+++ b/pkgs/development/compilers/ldc/default.nix
@@ -2,8 +2,8 @@
, python, libconfig, lit, gdb, unzip, darwin, bash
, callPackage, makeWrapper, targetPackages
, bootstrapVersion ? false
-, version ? "1.16.0"
-, ldcSha256 ? "00kk6pijn1ay2kkrp6b5ismawxr10azwij89k1rkszavqq6rsva2"
+, version ? "1.17.0"
+, ldcSha256 ? "1aag5jfrng6p4ms0fs90hjbv9bcj3hj8h52r68c3cm6racdajbva"
}:
let
diff --git a/pkgs/development/compilers/llvm/3.9/llvm.nix b/pkgs/development/compilers/llvm/3.9/llvm.nix
index 4dde3be277abd92e8f86d88ad281f79a64b35cd7..474cfcde9c0b05fb1aab280a48402cb2f764d6d1 100644
--- a/pkgs/development/compilers/llvm/3.9/llvm.nix
+++ b/pkgs/development/compilers/llvm/3.9/llvm.nix
@@ -22,7 +22,7 @@ assert (stdenv.hostPlatform != stdenv.buildPlatform) -> !enableSharedLibraries;
let
# Used when creating a versioned symlinks of libLLVM.dylib
versionSuffixes = with stdenv.lib;
- let parts = splitString "." version; in
+ let parts = splitVersion version; in
imap (i: _: concatStringsSep "." (take i parts)) parts;
in
diff --git a/pkgs/development/compilers/llvm/4/llvm.nix b/pkgs/development/compilers/llvm/4/llvm.nix
index 7e85599535247cf71dc66b1072ac3158abe809ae..ac5dcbe6b942889f8ca80177d02e86f0c4389c37 100644
--- a/pkgs/development/compilers/llvm/4/llvm.nix
+++ b/pkgs/development/compilers/llvm/4/llvm.nix
@@ -19,7 +19,7 @@
let
# Used when creating a versioned symlinks of libLLVM.dylib
versionSuffixes = with stdenv.lib;
- let parts = splitString "." release_version; in
+ let parts = splitVersion release_version; in
imap (i: _: concatStringsSep "." (take i parts)) parts;
in
diff --git a/pkgs/development/compilers/llvm/5/llvm.nix b/pkgs/development/compilers/llvm/5/llvm.nix
index 02db395db57162332998992586de4818b0049cc6..2fe7df7695b8fb9e6a818134525e7341f964850b 100644
--- a/pkgs/development/compilers/llvm/5/llvm.nix
+++ b/pkgs/development/compilers/llvm/5/llvm.nix
@@ -18,7 +18,7 @@
let
# Used when creating a versioned symlinks of libLLVM.dylib
versionSuffixes = with stdenv.lib;
- let parts = splitString "." release_version; in
+ let parts = splitVersion release_version; in
imap (i: _: concatStringsSep "." (take i parts)) parts;
in
diff --git a/pkgs/development/compilers/llvm/6/llvm.nix b/pkgs/development/compilers/llvm/6/llvm.nix
index 2586602d7378492fe2904adafcda537cfc16de71..a250c9fefac718643f95c58214904df54bb71fe8 100644
--- a/pkgs/development/compilers/llvm/6/llvm.nix
+++ b/pkgs/development/compilers/llvm/6/llvm.nix
@@ -21,7 +21,7 @@ let
# Used when creating a versioned symlinks of libLLVM.dylib
versionSuffixes = with stdenv.lib;
- let parts = splitString "." release_version; in
+ let parts = splitVersion release_version; in
imap (i: _: concatStringsSep "." (take i parts)) parts;
in
diff --git a/pkgs/development/compilers/llvm/7/compiler-rt.nix b/pkgs/development/compilers/llvm/7/compiler-rt.nix
index 0912435327cef00cbed8a4d48ea22b2fe64538a6..5d7266f39ecdf35d8a090af7cb36c842adc13c63 100644
--- a/pkgs/development/compilers/llvm/7/compiler-rt.nix
+++ b/pkgs/development/compilers/llvm/7/compiler-rt.nix
@@ -7,11 +7,11 @@ stdenv.mkDerivation {
nativeBuildInputs = [ cmake python llvm ];
buildInputs = stdenv.lib.optional stdenv.hostPlatform.isDarwin libcxxabi;
- cmakeFlags = [
+ cmakeFlags = stdenv.lib.optionals (stdenv.hostPlatform.useLLVM or false || stdenv.isDarwin) [
"-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON"
"-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}"
"-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}"
- ] ++ stdenv.lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) [
+ ] ++ stdenv.lib.optionals (stdenv.hostPlatform.useLLVM or false) [
"-DCMAKE_C_FLAGS=-nodefaultlibs"
"-DCMAKE_CXX_COMPILER_WORKS=ON"
"-DCOMPILER_RT_BUILD_BUILTINS=ON"
@@ -26,7 +26,7 @@ stdenv.mkDerivation {
patches = [
./compiler-rt-codesign.patch # Revert compiler-rt commit that makes codesign mandatory
- ] ++ stdenv.lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) ./crtbegin-and-end.patch
+ ] ++ stdenv.lib.optional (stdenv.hostPlatform.useLLVM or false) ./crtbegin-and-end.patch
++ stdenv.lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch;
# TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks
@@ -37,7 +37,7 @@ stdenv.mkDerivation {
postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
substituteInPlace cmake/config-ix.cmake \
--replace 'set(COMPILER_RT_HAS_TSAN TRUE)' 'set(COMPILER_RT_HAS_TSAN FALSE)'
- '' + stdenv.lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
+ '' + stdenv.lib.optionalString (stdenv.hostPlatform.useLLVM or false) ''
substituteInPlace lib/builtins/int_util.c \
--replace "#include " ""
substituteInPlace lib/builtins/clear_cache.c \
@@ -49,7 +49,7 @@ stdenv.mkDerivation {
# Hack around weird upsream RPATH bug
postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
ln -s "$out/lib"/*/* "$out/lib"
- '' + stdenv.lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
+ '' + stdenv.lib.optionalString (stdenv.hostPlatform.useLLVM or false) ''
ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/linux/crtbegin.o
ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/linux/crtend.o
ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/linux/crtbeginS.o
diff --git a/pkgs/development/compilers/llvm/7/libc++abi.nix b/pkgs/development/compilers/llvm/7/libc++abi.nix
index b5e6e0e704804cc5a52a37a015ae3153397b2cfc..522c8d1a163b6e04dd85d04a27a8e9141a84b420 100644
--- a/pkgs/development/compilers/llvm/7/libc++abi.nix
+++ b/pkgs/development/compilers/llvm/7/libc++abi.nix
@@ -1,4 +1,4 @@
-{ stdenv, cmake, fetch, libcxx, libunwind, llvm, version }:
+{ stdenv, cmake, fetch, libcxx, llvm, version }:
stdenv.mkDerivation {
pname = "libc++abi";
@@ -7,7 +7,6 @@ stdenv.mkDerivation {
src = fetch "libcxxabi" "1zcqxsdjhawgz1cvpk07y3jl6fg9p3ay4nl69zsirqb2ghgyhhb2";
nativeBuildInputs = [ cmake ];
- buildInputs = stdenv.lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD) libunwind;
postUnpack = ''
unpackFile ${libcxx.src}
diff --git a/pkgs/development/compilers/llvm/7/llvm.nix b/pkgs/development/compilers/llvm/7/llvm.nix
index cfcda02b41319398f57e75a30cfb14a3d614c22a..3e966f1ea44bba72150dd8494a994b351e2eccc0 100644
--- a/pkgs/development/compilers/llvm/7/llvm.nix
+++ b/pkgs/development/compilers/llvm/7/llvm.nix
@@ -26,7 +26,7 @@ let
# Used when creating a versioned symlinks of libLLVM.dylib
versionSuffixes = with stdenv.lib;
- let parts = splitString "." release_version; in
+ let parts = splitVersion release_version; in
imap (i: _: concatStringsSep "." (take i parts)) parts;
in stdenv.mkDerivation ({
@@ -94,6 +94,9 @@ in stdenv.mkDerivation ({
rm test/tools/llvm-dwarfdump/X86/debug_addr_dwarf4.s
rm test/tools/llvm-dwarfdump/X86/debug_addr_unsupported_version.s
rm test/tools/llvm-dwarfdump/X86/debug_addr_version_mismatch.s
+ '' + optionalString (stdenv.hostPlatform.system == "armv6l-linux") ''
+ # Seems to require certain floating point hardware (NEON?)
+ rm test/ExecutionEngine/frem.ll
'' + ''
patchShebangs test/BugPoint/compile-custom.ll.py
'';
diff --git a/pkgs/development/compilers/llvm/8/compiler-rt.nix b/pkgs/development/compilers/llvm/8/compiler-rt.nix
index 936c877d58c9b320c80e3c5e866b2d674d86bbfd..88788852862fb6918b2a192027e7b49bf6e8a1f2 100644
--- a/pkgs/development/compilers/llvm/8/compiler-rt.nix
+++ b/pkgs/development/compilers/llvm/8/compiler-rt.nix
@@ -7,11 +7,10 @@ stdenv.mkDerivation {
nativeBuildInputs = [ cmake python llvm ];
buildInputs = stdenv.lib.optional stdenv.hostPlatform.isDarwin libcxxabi;
- cmakeFlags = [
+ cmakeFlags = stdenv.lib.optionals (stdenv.hostPlatform.useLLVM or false) [
"-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON"
"-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}"
"-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}"
- ] ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
"-DCMAKE_C_FLAGS=-nodefaultlibs"
"-DCMAKE_CXX_COMPILER_WORKS=ON"
"-DCOMPILER_RT_BUILD_SANITIZERS=OFF"
@@ -37,7 +36,7 @@ stdenv.mkDerivation {
patches = [
./compiler-rt-codesign.patch # Revert compiler-rt commit that makes codesign mandatory
]# ++ stdenv.lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch
- ++ stdenv.lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) ./crtbegin-and-end.patch;
+ ++ stdenv.lib.optional (stdenv.hostPlatform.useLLVM or false) ./crtbegin-and-end.patch;
# TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks
# to get it, but they're unfree. Since LLVM is rather central to the stdenv, we patch out TSAN support so that Hydra
@@ -47,7 +46,7 @@ stdenv.mkDerivation {
postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
substituteInPlace cmake/config-ix.cmake \
--replace 'set(COMPILER_RT_HAS_TSAN TRUE)' 'set(COMPILER_RT_HAS_TSAN FALSE)'
- '' + stdenv.lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
+ '' + stdenv.lib.optionalString (stdenv.hostPlatform.useLLVM or false) ''
substituteInPlace lib/builtins/int_util.c \
--replace "#include " ""
substituteInPlace lib/builtins/clear_cache.c \
diff --git a/pkgs/development/compilers/llvm/8/llvm.nix b/pkgs/development/compilers/llvm/8/llvm.nix
index 70e666ba27decce6d7a4fa73046d7d909d6ee2f0..160e2a723666b5419360fd1f65a07a4a728fde37 100644
--- a/pkgs/development/compilers/llvm/8/llvm.nix
+++ b/pkgs/development/compilers/llvm/8/llvm.nix
@@ -25,7 +25,7 @@ let
# Used when creating a version-suffixed symlink of libLLVM.dylib
shortVersion = with stdenv.lib;
- concatStringsSep "." (take 1 (splitString "." release_version));
+ concatStringsSep "." (take 1 (splitVersion release_version));
in stdenv.mkDerivation ({
name = "llvm-${version}";
diff --git a/pkgs/development/compilers/llvm/9/bintools.nix b/pkgs/development/compilers/llvm/9/bintools.nix
new file mode 100644
index 0000000000000000000000000000000000000000..72a2a73319304b92b2c758af6eb77ea192b350a7
--- /dev/null
+++ b/pkgs/development/compilers/llvm/9/bintools.nix
@@ -0,0 +1,19 @@
+{ runCommand, stdenv, llvm, lld, version }:
+
+let
+ prefix =
+ if stdenv.hostPlatform != stdenv.targetPlatform
+ then "${stdenv.targetPlatform.config}-"
+ else "";
+in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } ''
+ mkdir -p $out/bin
+ for prog in ${lld}/bin/*; do
+ ln -s $prog $out/bin/${prefix}$(basename $prog)
+ done
+ for prog in ${llvm}/bin/*; do
+ ln -s $prog $out/bin/${prefix}$(echo $(basename $prog) | sed -e "s|llvm-||")
+ ln -sf $prog $out/bin/${prefix}$(basename $prog)
+ done
+ rm -f $out/bin/${prefix}cat
+ ln -s ${lld}/bin/lld $out/bin/${prefix}ld
+''
diff --git a/pkgs/development/compilers/llvm/9/clang/compiler-rt-baremetal.patch b/pkgs/development/compilers/llvm/9/clang/compiler-rt-baremetal.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a4a0f21b0fcd6a230bc581549b27f42b1f039f4a
--- /dev/null
+++ b/pkgs/development/compilers/llvm/9/clang/compiler-rt-baremetal.patch
@@ -0,0 +1,53 @@
+Index: lib/Driver/ToolChains/BareMetal.cpp
+===================================================================
+--- a/lib/Driver/ToolChains/BareMetal.cpp
++++ b/lib/Driver/ToolChains/BareMetal.cpp
+@@ -157,7 +157,7 @@
+ void BareMetal::AddLinkRuntimeLib(const ArgList &Args,
+ ArgStringList &CmdArgs) const {
+ CmdArgs.push_back(Args.MakeArgString("-lclang_rt.builtins-" +
+- getTriple().getArchName() + ".a"));
++ getTriple().getArchName()));
+ }
+
+ void baremetal::Linker::ConstructJob(Compilation &C, const JobAction &JA,
+Index: test/Driver/baremetal.cpp
+===================================================================
+--- a/test/Driver/baremetal.cpp
++++ b/test/Driver/baremetal.cpp
+@@ -13,7 +13,7 @@
+ // CHECK-V6M-C-NEXT: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic"
+ // CHECK-V6M-C-SAME: "-L[[RESOURCE_DIR:[^"]+]]{{[/\\]+}}lib{{[/\\]+}}baremetal"
+ // CHECK-V6M-C-SAME: "-T" "semihosted.lds" "-Lsome{{[/\\]+}}directory{{[/\\]+}}user{{[/\\]+}}asked{{[/\\]+}}for"
+-// CHECK-V6M-C-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m.a"
++// CHECK-V6M-C-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m"
+ // CHECK-V6M-C-SAME: "-o" "{{.*}}.o"
+
+ // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
+@@ -35,7 +35,7 @@
+ // CHECK-V6M-DEFAULTCXX: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic"
+ // CHECK-V6M-DEFAULTCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}lib{{(64)?}}{{[/\\]+}}clang{{[/\\]+}}{{.*}}{{[/\\]+}}lib{{[/\\]+}}baremetal"
+ // CHECK-V6M-DEFAULTCXX-SAME: "-lc++" "-lc++abi" "-lunwind"
+-// CHECK-V6M-DEFAULTCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m.a"
++// CHECK-V6M-DEFAULTCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m"
+ // CHECK-V6M-DEFAULTCXX-SAME: "-o" "{{.*}}.o"
+
+ // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \
+@@ -48,7 +48,7 @@
+ // CHECK-V6M-LIBCXX: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic"
+ // CHECK-V6M-LIBCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}lib{{(64)?}}{{[/\\]+}}clang{{[/\\]+}}{{.*}}{{[/\\]+}}lib{{[/\\]+}}baremetal"
+ // CHECK-V6M-LIBCXX-SAME: "-lc++" "-lc++abi" "-lunwind"
+-// CHECK-V6M-LIBCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m.a"
++// CHECK-V6M-LIBCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m"
+ // CHECK-V6M-LIBCXX-SAME: "-o" "{{.*}}.o"
+
+ // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \
+@@ -61,7 +61,7 @@
+ // CHECK-V6M-LIBSTDCXX: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic"
+ // CHECK-V6M-LIBSTDCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}lib{{(64)?}}{{[/\\]+}}clang{{[/\\]+}}{{.*}}{{[/\\]+}}lib{{[/\\]+}}baremetal"
+ // CHECK-V6M-LIBSTDCXX-SAME: "-lstdc++" "-lsupc++" "-lunwind"
+-// CHECK-V6M-LIBSTDCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m.a"
++// CHECK-V6M-LIBSTDCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m"
+ // CHECK-V6M-LIBSTDCXX-SAME: "-o" "{{.*}}.o"
+
+ // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \
diff --git a/pkgs/development/compilers/llvm/9/clang/default.nix b/pkgs/development/compilers/llvm/9/clang/default.nix
new file mode 100644
index 0000000000000000000000000000000000000000..bf9b1a32a834043041e3cfb95e0e06fe65aff027
--- /dev/null
+++ b/pkgs/development/compilers/llvm/9/clang/default.nix
@@ -0,0 +1,121 @@
+{ stdenv, fetch, cmake, libxml2, llvm, version, clang-tools-extra_src, python
+, fixDarwinDylibNames
+, enableManpages ? false
+, enablePolly ? false # TODO: get this info from llvm (passthru?)
+}:
+
+let
+ self = stdenv.mkDerivation ({
+ pname = "clang";
+ inherit version;
+
+ src = fetch "cfe" "0426ma80i41qsgzm1qdz81mjskck426diygxi2k5vji2gkpixa3v";
+
+ unpackPhase = ''
+ unpackFile $src
+ mv cfe-${version}* clang
+ sourceRoot=$PWD/clang
+ unpackFile ${clang-tools-extra_src}
+ mv clang-tools-extra-* $sourceRoot/tools/extra
+ '';
+
+ nativeBuildInputs = [ cmake python ]
+ ++ stdenv.lib.optional enableManpages python.pkgs.sphinx;
+
+ buildInputs = [ libxml2 llvm ]
+ ++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames;
+
+ cmakeFlags = [
+ "-DCMAKE_CXX_FLAGS=-std=c++11"
+ "-DCLANGD_BUILD_XPC=OFF"
+ ] ++ stdenv.lib.optionals enableManpages [
+ "-DCLANG_INCLUDE_DOCS=ON"
+ "-DLLVM_ENABLE_SPHINX=ON"
+ "-DSPHINX_OUTPUT_MAN=ON"
+ "-DSPHINX_OUTPUT_HTML=OFF"
+ "-DSPHINX_WARNINGS_AS_ERRORS=OFF"
+ ] ++ stdenv.lib.optionals enablePolly [
+ "-DWITH_POLLY=ON"
+ "-DLINK_POLLY_INTO_TOOLS=ON"
+ ];
+
+ patches = [
+ ./purity.patch
+ # https://reviews.llvm.org/D51899
+ ./compiler-rt-baremetal.patch
+ ];
+
+ postPatch = ''
+ sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' \
+ -e 's/Args.hasArg(options::OPT_nostdlibinc)/true/' \
+ lib/Driver/ToolChains/*.cpp
+
+ # Patch for standalone doc building
+ sed -i '1s,^,find_package(Sphinx REQUIRED)\n,' docs/CMakeLists.txt
+ '' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl ''
+ sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/ToolChains/*.cpp
+ '' + stdenv.lib.optionalString stdenv.hostPlatform.isDarwin ''
+ substituteInPlace tools/extra/clangd/CMakeLists.txt \
+ --replace "NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB" FALSE
+ '';
+
+ outputs = [ "out" "lib" "python" ];
+
+ # Clang expects to find LLVMgold in its own prefix
+ postInstall = ''
+ if [ -e ${llvm}/lib/LLVMgold.so ]; then
+ ln -sv ${llvm}/lib/LLVMgold.so $out/lib
+ fi
+
+ ln -sv $out/bin/clang $out/bin/cpp
+
+ # Move libclang to 'lib' output
+ moveToOutput "lib/libclang.*" "$lib"
+ moveToOutput "lib/libclang-cpp.*" "$lib"
+ substituteInPlace $out/lib/cmake/clang/ClangTargets-release.cmake \
+ --replace "\''${_IMPORT_PREFIX}/lib/libclang." "$lib/lib/libclang."
+
+ mkdir -p $python/bin $python/share/clang/
+ mv $out/bin/{git-clang-format,scan-view} $python/bin
+ if [ -e $out/bin/set-xcode-analyzer ]; then
+ mv $out/bin/set-xcode-analyzer $python/bin
+ fi
+ mv $out/share/clang/*.py $python/share/clang
+ rm $out/bin/c-index-test
+ '';
+
+ enableParallelBuilding = true;
+
+ passthru = {
+ isClang = true;
+ inherit llvm;
+ } // stdenv.lib.optionalAttrs (stdenv.targetPlatform.isLinux || (stdenv.cc.isGNU && stdenv.cc.cc ? gcc)) {
+ gcc = if stdenv.cc.isGNU then stdenv.cc.cc else stdenv.cc.cc.gcc;
+ };
+
+ meta = {
+ description = "A c, c++, objective-c, and objective-c++ frontend for the llvm compiler";
+ homepage = http://llvm.org/;
+ license = stdenv.lib.licenses.ncsa;
+ platforms = stdenv.lib.platforms.all;
+ };
+ } // stdenv.lib.optionalAttrs enableManpages {
+ pname = "clang-manpages";
+
+ buildPhase = ''
+ make docs-clang-man
+ '';
+
+ installPhase = ''
+ mkdir -p $out/share/man/man1
+ # Manually install clang manpage
+ cp docs/man/*.1 $out/share/man/man1/
+ '';
+
+ outputs = [ "out" ];
+
+ doCheck = false;
+
+ meta.description = "man page for Clang ${version}";
+ });
+in self
diff --git a/pkgs/development/compilers/llvm/9/clang/purity.patch b/pkgs/development/compilers/llvm/9/clang/purity.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a6729a9b004e01d9ab4d550d5f403c41507693ad
--- /dev/null
+++ b/pkgs/development/compilers/llvm/9/clang/purity.patch
@@ -0,0 +1,30 @@
+From 4add81bba40dcec62c4ea4481be8e35ac53e89d8 Mon Sep 17 00:00:00 2001
+From: Will Dietz
+Date: Thu, 18 May 2017 11:56:12 -0500
+Subject: [PATCH] "purity" patch for 5.0
+
+---
+ lib/Driver/ToolChains/Gnu.cpp | 7 -------
+ 1 file changed, 7 deletions(-)
+
+diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp
+index fe3c0191bb..c6a482bece 100644
+--- a/lib/Driver/ToolChains/Gnu.cpp
++++ b/lib/Driver/ToolChains/Gnu.cpp
+@@ -494,13 +494,6 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
+ if (!IsStatic) {
+ if (Args.hasArg(options::OPT_rdynamic))
+ CmdArgs.push_back("-export-dynamic");
+-
+- if (!Args.hasArg(options::OPT_shared) && !IsStaticPIE) {
+- const std::string Loader =
+- D.DyldPrefix + ToolChain.getDynamicLinker(Args);
+- CmdArgs.push_back("-dynamic-linker");
+- CmdArgs.push_back(Args.MakeArgString(Loader));
+- }
+ }
+
+ CmdArgs.push_back("-o");
+--
+2.11.0
+
diff --git a/pkgs/development/compilers/llvm/9/compiler-rt-codesign.patch b/pkgs/development/compilers/llvm/9/compiler-rt-codesign.patch
new file mode 100644
index 0000000000000000000000000000000000000000..3cc12b94b2005b1e0e8e2d44d6dc1a228a39e391
--- /dev/null
+++ b/pkgs/development/compilers/llvm/9/compiler-rt-codesign.patch
@@ -0,0 +1,33 @@
+From 3dec5f3475a26aeb4678627795c4b67c6b7b4785 Mon Sep 17 00:00:00 2001
+From: Will Dietz
+Date: Tue, 19 Sep 2017 13:13:06 -0500
+Subject: [PATCH] remove codesign use on Apple, disable ios sim testing that
+ needs it
+
+---
+ cmake/Modules/AddCompilerRT.cmake | 8 ------
+ test/asan/CMakeLists.txt | 52 ---------------------------------------
+ test/tsan/CMakeLists.txt | 47 -----------------------------------
+ 3 files changed, 107 deletions(-)
+
+diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake
+index bc5fb9ff7..b64eb4246 100644
+--- a/cmake/Modules/AddCompilerRT.cmake
++++ b/cmake/Modules/AddCompilerRT.cmake
+@@ -210,14 +210,6 @@ function(add_compiler_rt_runtime name type)
+ set_target_properties(${libname} PROPERTIES IMPORT_PREFIX "")
+ set_target_properties(${libname} PROPERTIES IMPORT_SUFFIX ".lib")
+ endif()
+- if(APPLE)
+- # Ad-hoc sign the dylibs
+- add_custom_command(TARGET ${libname}
+- POST_BUILD
+- COMMAND codesign --sign - $
+- WORKING_DIRECTORY ${COMPILER_RT_LIBRARY_OUTPUT_DIR}
+- )
+- endif()
+ endif()
+ install(TARGETS ${libname}
+ ARCHIVE DESTINATION ${COMPILER_RT_LIBRARY_INSTALL_DIR}
+2.14.1
+
diff --git a/pkgs/development/compilers/llvm/9/compiler-rt.nix b/pkgs/development/compilers/llvm/9/compiler-rt.nix
new file mode 100644
index 0000000000000000000000000000000000000000..9a333ad7c115d327c0f8c6f6552382efefb14b4f
--- /dev/null
+++ b/pkgs/development/compilers/llvm/9/compiler-rt.nix
@@ -0,0 +1,68 @@
+{ stdenv, version, fetch, cmake, python, llvm, libcxxabi }:
+stdenv.mkDerivation rec {
+ pname = "compiler-rt";
+ inherit version;
+ src = fetch pname "03ni43lbkp63lr3p6sc94dphqmvnz5av5mml0xmk930xvnbcvr2n";
+
+ nativeBuildInputs = [ cmake python llvm ];
+ buildInputs = stdenv.lib.optional stdenv.hostPlatform.isDarwin libcxxabi;
+
+ cmakeFlags = stdenv.lib.optionals (stdenv.hostPlatform.useLLVM or false) [
+ "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON"
+ "-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}"
+ "-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}"
+ "-DCMAKE_C_FLAGS=-nodefaultlibs"
+ "-DCMAKE_CXX_COMPILER_WORKS=ON"
+ "-DCOMPILER_RT_BUILD_SANITIZERS=OFF"
+ "-DCOMPILER_RT_BUILD_XRAY=OFF"
+ "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF"
+ "-DCOMPILER_RT_BUILD_PROFILE=OFF"
+ "-DCOMPILER_RT_BAREMETAL_BUILD=ON"
+ #https://stackoverflow.com/questions/53633705/cmake-the-c-compiler-is-not-able-to-compile-a-simple-test-program
+ "-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY"
+ "-DCMAKE_SIZEOF_VOID_P=${toString (stdenv.hostPlatform.parsed.cpu.bits / 8)}"
+ ] ++ stdenv.lib.optionals stdenv.hostPlatform.isMusl [
+ "-DCOMPILER_RT_BUILD_SANITIZERS=OFF"
+ "-DCOMPILER_RT_BUILD_XRAY=OFF"
+ "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF"
+ "-DCOMPILER_RT_BUILD_PROFILE=OFF"
+ ] ++ stdenv.lib.optionals (stdenv.hostPlatform.parsed.kernel.name == "none") [
+ "-DCOMPILER_RT_BAREMETAL_BUILD=ON"
+ "-DCOMPILER_RT_OS_DIR=baremetal"
+ ];
+
+ outputs = [ "out" "dev" ];
+
+ patches = [
+ ./compiler-rt-codesign.patch # Revert compiler-rt commit that makes codesign mandatory
+ ];# ++ stdenv.lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch
+
+ # TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks
+ # to get it, but they're unfree. Since LLVM is rather central to the stdenv, we patch out TSAN support so that Hydra
+ # can build this. If we didn't do it, basically the entire nixpkgs on Darwin would have an unfree dependency and we'd
+ # get no binary cache for the entire platform. If you really find yourself wanting the TSAN, make this controllable by
+ # a flag and turn the flag off during the stdenv build.
+ postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
+ substituteInPlace cmake/config-ix.cmake \
+ --replace 'set(COMPILER_RT_HAS_TSAN TRUE)' 'set(COMPILER_RT_HAS_TSAN FALSE)'
+ '' + stdenv.lib.optionalString (stdenv.hostPlatform.useLLVM or false) ''
+ substituteInPlace lib/builtins/int_util.c \
+ --replace "#include " ""
+ substituteInPlace lib/builtins/clear_cache.c \
+ --replace "#include " ""
+ substituteInPlace lib/builtins/cpu_model.c \
+ --replace "#include " ""
+ '';
+
+ # Hack around weird upsream RPATH bug
+ postInstall = stdenv.lib.optionalString (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isWasm) ''
+ ln -s "$out/lib"/*/* "$out/lib"
+ '' + stdenv.lib.optionalString (stdenv.hostPlatform.useLLVM or false) ''
+ ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/crtbegin.o
+ ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/crtend.o
+ ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/crtbeginS.o
+ ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/crtendS.o
+ '';
+
+ enableParallelBuilding = true;
+}
diff --git a/pkgs/development/compilers/llvm/9/default.nix b/pkgs/development/compilers/llvm/9/default.nix
new file mode 100644
index 0000000000000000000000000000000000000000..1590d180c3fd8754455f648240c43f3b2a31108a
--- /dev/null
+++ b/pkgs/development/compilers/llvm/9/default.nix
@@ -0,0 +1,197 @@
+{ lowPrio, newScope, pkgs, stdenv, cmake, libstdcxxHook
+, libxml2, python, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith
+, buildLlvmTools # tools, but from the previous stage, for cross
+, targetLlvmLibraries # libraries, but from the next stage, for cross
+}:
+
+let
+ release_version = "9.0.0";
+ version = release_version; # differentiating these is important for rc's
+
+ fetch = name: sha256: fetchurl {
+ url = "https://releases.llvm.org/${release_version}/${name}-${version}.src.tar.xz";
+ inherit sha256;
+ };
+
+ clang-tools-extra_src = fetch "clang-tools-extra" "045cldmcfd8s33wyjlviifgpnw52yqicd6v4ysvdg4i96p78c77a";
+
+ tools = stdenv.lib.makeExtensible (tools: let
+ callPackage = newScope (tools // { inherit stdenv cmake libxml2 python isl release_version version fetch; });
+ mkExtraBuildCommands = cc: ''
+ rsrc="$out/resource-root"
+ mkdir "$rsrc"
+ ln -s "${cc}/lib/clang/${release_version}/include" "$rsrc"
+ ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
+ echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
+ '' + stdenv.lib.optionalString (stdenv.targetPlatform.isLinux && tools.clang-unwrapped ? gcc && !(stdenv.targetPlatform.useLLVM or false)) ''
+ echo "--gcc-toolchain=${tools.clang-unwrapped.gcc}" >> $out/nix-support/cc-cflags
+ '';
+ in {
+
+ llvm = callPackage ./llvm.nix { };
+ llvm-polly = callPackage ./llvm.nix { enablePolly = true; };
+
+ clang-unwrapped = callPackage ./clang {
+ inherit clang-tools-extra_src;
+ };
+ clang-polly-unwrapped = callPackage ./clang {
+ inherit clang-tools-extra_src;
+ llvm = tools.llvm-polly;
+ enablePolly = true;
+ };
+
+ llvm-manpages = lowPrio (tools.llvm.override {
+ enableManpages = true;
+ python = pkgs.python; # don't use python-boot
+ });
+
+ clang-manpages = lowPrio (tools.clang-unwrapped.override {
+ enableManpages = true;
+ python = pkgs.python; # don't use python-boot
+ });
+
+ libclang = tools.clang-unwrapped.lib;
+
+ clang = if stdenv.cc.isGNU then tools.libstdcxxClang else tools.libcxxClang;
+
+ libstdcxxClang = wrapCCWith rec {
+ cc = tools.clang-unwrapped;
+ extraPackages = [
+ libstdcxxHook
+ targetLlvmLibraries.compiler-rt
+ ];
+ extraBuildCommands = mkExtraBuildCommands cc;
+ };
+
+ libcxxClang = wrapCCWith rec {
+ cc = tools.clang-unwrapped;
+ libcxx = targetLlvmLibraries.libcxx;
+ extraPackages = [
+ targetLlvmLibraries.libcxx
+ targetLlvmLibraries.libcxxabi
+ targetLlvmLibraries.compiler-rt
+ ];
+ extraBuildCommands = mkExtraBuildCommands cc;
+ };
+
+ lld = callPackage ./lld.nix {};
+
+ lldb = callPackage ./lldb.nix {};
+
+ # Below, is the LLVM bootstrapping logic. It handles building a
+ # fully LLVM toolchain from scratch. No GCC toolchain should be
+ # pulled in. As a consequence, it is very quick to build different
+ # targets provided by LLVM and we can also build for what GCC
+ # doesn’t support like LLVM. Probably we should move to some other
+ # file.
+
+ bintools = callPackage ./bintools.nix {};
+
+ lldClang = wrapCCWith rec {
+ cc = tools.clang-unwrapped;
+ libcxx = targetLlvmLibraries.libcxx;
+ bintools = wrapBintoolsWith {
+ inherit (tools) bintools;
+ };
+ extraPackages = [
+ targetLlvmLibraries.libcxx
+ targetLlvmLibraries.libcxxabi
+ targetLlvmLibraries.compiler-rt
+ ] ++ stdenv.lib.optionals (!stdenv.targetPlatform.isWasm) [
+ targetLlvmLibraries.libunwind
+ ];
+ extraBuildCommands = ''
+ echo "-target ${stdenv.targetPlatform.config}" >> $out/nix-support/cc-cflags
+ echo "-rtlib=compiler-rt -Wno-unused-command-line-argument" >> $out/nix-support/cc-cflags
+ echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
+ '' + stdenv.lib.optionalString (!stdenv.targetPlatform.isWasm) ''
+ echo "--unwindlib=libunwind" >> $out/nix-support/cc-cflags
+ '' + stdenv.lib.optionalString stdenv.targetPlatform.isWasm ''
+ echo "-fno-exceptions" >> $out/nix-support/cc-cflags
+ '' + mkExtraBuildCommands cc;
+ };
+
+ lldClangNoLibcxx = wrapCCWith rec {
+ cc = tools.clang-unwrapped;
+ libcxx = null;
+ bintools = wrapBintoolsWith {
+ inherit (tools) bintools;
+ };
+ extraPackages = [
+ targetLlvmLibraries.compiler-rt
+ ];
+ extraBuildCommands = ''
+ echo "-target ${stdenv.targetPlatform.config}" >> $out/nix-support/cc-cflags
+ echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags
+ echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
+ echo "-nostdlib++" >> $out/nix-support/cc-cflags
+ '' + mkExtraBuildCommands cc;
+ };
+
+ lldClangNoLibc = wrapCCWith rec {
+ cc = tools.clang-unwrapped;
+ libcxx = null;
+ bintools = wrapBintoolsWith {
+ inherit (tools) bintools;
+ libc = null;
+ };
+ extraPackages = [
+ targetLlvmLibraries.compiler-rt
+ ];
+ extraBuildCommands = ''
+ echo "-target ${stdenv.targetPlatform.config}" >> $out/nix-support/cc-cflags
+ echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags
+ echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
+ '' + mkExtraBuildCommands cc;
+ };
+
+ lldClangNoCompilerRt = wrapCCWith {
+ cc = tools.clang-unwrapped;
+ libcxx = null;
+ bintools = wrapBintoolsWith {
+ inherit (tools) bintools;
+ libc = null;
+ };
+ extraPackages = [ ];
+ extraBuildCommands = ''
+ echo "-nostartfiles" >> $out/nix-support/cc-cflags
+ echo "-target ${stdenv.targetPlatform.config}" >> $out/nix-support/cc-cflags
+ '';
+ };
+
+ });
+
+ libraries = stdenv.lib.makeExtensible (libraries: let
+ callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python isl release_version version fetch; });
+ in {
+
+ compiler-rt = callPackage ./compiler-rt.nix ({} //
+ (stdenv.lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
+ stdenv = overrideCC stdenv buildLlvmTools.lldClangNoCompilerRt;
+ }));
+
+ stdenv = overrideCC stdenv buildLlvmTools.clang;
+
+ libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang;
+
+ libcxx = callPackage ./libc++ ({} //
+ (stdenv.lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
+ stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
+ }));
+
+ libcxxabi = callPackage ./libc++abi.nix ({} //
+ (stdenv.lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
+ stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
+ libunwind = libraries.libunwind;
+ }));
+
+ openmp = callPackage ./openmp.nix {};
+
+ libunwind = callPackage ./libunwind.nix ({} //
+ (stdenv.lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
+ stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
+ }));
+
+ });
+
+in { inherit tools libraries; } // libraries // tools
diff --git a/pkgs/development/compilers/llvm/9/fix-test-on-non-x86-like-others.patch b/pkgs/development/compilers/llvm/9/fix-test-on-non-x86-like-others.patch
new file mode 100644
index 0000000000000000000000000000000000000000..e6c2f0406844d5d6659f3f91c0ca107b68b0394e
--- /dev/null
+++ b/pkgs/development/compilers/llvm/9/fix-test-on-non-x86-like-others.patch
@@ -0,0 +1,23 @@
+Index: test/tools/gold/X86/linkonce_odr_unnamed_addr.ll
+===================================================================
+diff --git a/test/tools/gold/X86/linkonce_odr_unnamed_addr.ll b/llvm/trunk/test/tools/gold/X86/linkonce_odr_unnamed_addr.ll
+--- a/test/tools/gold/X86/linkonce_odr_unnamed_addr.ll (revision 372333)
++++ b/test/tools/gold/X86/linkonce_odr_unnamed_addr.ll (working copy)
+@@ -3,7 +3,7 @@
+
+ ; RUN: opt -module-summary %s -o %t.o
+ ; RUN: opt -module-summary %p/Inputs/linkonce_odr_unnamed_addr.ll -o %t2.o
+-; RUN: %gold -plugin %llvmshlibdir/LLVMgold%shlibext \
++; RUN: %gold -m elf_x86_64 -plugin %llvmshlibdir/LLVMgold%shlibext \
+ ; RUN: --plugin-opt=save-temps \
+ ; RUN: %t.o %t2.o -o %t3.o
+ ; RUN: llvm-dis %t.o.1.promote.bc -o - | FileCheck %s
+@@ -11,7 +11,7 @@
+ ; Now test when one module is a native object. In that case we must be
+ ; conservative and not auto hide.
+ ; RUN: llc %p/Inputs/linkonce_odr_unnamed_addr.ll -o %t2native.o -filetype=obj
+-; RUN: %gold -plugin %llvmshlibdir/LLVMgold%shlibext \
++; RUN: %gold -m elf_x86_64 -plugin %llvmshlibdir/LLVMgold%shlibext \
+ ; RUN: --plugin-opt=save-temps \
+ ; RUN: %t.o %t2native.o -o %t3.o
+ ; RUN: llvm-dis %t.o.1.promote.bc -o - | FileCheck %s --check-prefix=NOSUMMARY
diff --git a/pkgs/development/compilers/llvm/9/libc++/default.nix b/pkgs/development/compilers/llvm/9/libc++/default.nix
new file mode 100644
index 0000000000000000000000000000000000000000..daf8ed5a9ae53c458c98686b766b454b004dac30
--- /dev/null
+++ b/pkgs/development/compilers/llvm/9/libc++/default.nix
@@ -0,0 +1,55 @@
+{ lib, stdenv, fetch, cmake, python, libcxxabi, fixDarwinDylibNames, version
+, enableShared ? true }:
+
+stdenv.mkDerivation {
+ pname = "libc++";
+ inherit version;
+
+ src = fetch "libcxx" "136j3v7il9aq8wyp48klx6sifnl5asj4lf5c8yx08cjx5fbn4h9w";
+
+ postUnpack = ''
+ unpackFile ${libcxxabi.src}
+ export LIBCXXABI_INCLUDE_DIR="$PWD/$(ls -d libcxxabi-${version}*)/include"
+ '';
+
+ patches = stdenv.lib.optional stdenv.hostPlatform.isMusl ../../libcxx-0001-musl-hacks.patch;
+
+ preConfigure = ''
+ # Get headers from the cxxabi source so we can see private headers not installed by the cxxabi package
+ cmakeFlagsArray=($cmakeFlagsArray -DLIBCXX_CXX_ABI_INCLUDE_PATHS="$LIBCXXABI_INCLUDE_DIR")
+ '' + lib.optionalString stdenv.hostPlatform.isMusl ''
+ patchShebangs utils/cat_files.py
+ '';
+ nativeBuildInputs = [ cmake ]
+ ++ stdenv.lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) python;
+
+ buildInputs = [ libcxxabi ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
+
+ cmakeFlags = [
+ "-DLIBCXX_LIBCXXABI_LIB_PATH=${libcxxabi}/lib"
+ "-DLIBCXX_LIBCPPABI_VERSION=2"
+ "-DLIBCXX_CXX_ABI=libcxxabi"
+ ] ++ stdenv.lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1"
+ ++ stdenv.lib.optional (stdenv.hostPlatform.useLLVM or false) "-DLIBCXX_USE_COMPILER_RT=ON"
+ ++ stdenv.lib.optional stdenv.hostPlatform.isWasm [
+ "-DLIBCXX_ENABLE_THREADS=OFF"
+ "-DLIBCXX_ENABLE_FILESYSTEM=OFF"
+ "-DLIBCXX_ENABLE_EXCEPTIONS=OFF"
+ ] ++ stdenv.lib.optional (!enableShared) "-DLIBCXX_ENABLE_SHARED=OFF";
+
+ enableParallelBuilding = true;
+
+ linkCxxAbi = stdenv.isLinux;
+
+ setupHooks = [
+ ../../../../../build-support/setup-hooks/role.bash
+ ./setup-hook.sh
+ ];
+
+ meta = {
+ homepage = http://libcxx.llvm.org/;
+ description = "A new implementation of the C++ standard library, targeting C++11";
+ license = with stdenv.lib.licenses; [ ncsa mit ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/pkgs/development/compilers/llvm/9/libc++/setup-hook.sh b/pkgs/development/compilers/llvm/9/libc++/setup-hook.sh
new file mode 100644
index 0000000000000000000000000000000000000000..6611259165ae2547d92a1bc04a5b83ae4fc595e1
--- /dev/null
+++ b/pkgs/development/compilers/llvm/9/libc++/setup-hook.sh
@@ -0,0 +1,6 @@
+# See pkgs/build-support/setup-hooks/role.bash
+getHostRole
+
+linkCxxAbi="@linkCxxAbi@"
+export NIX_${role_pre}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1"
+export NIX_${role_pre}CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}"
diff --git a/pkgs/development/compilers/llvm/9/libc++abi.nix b/pkgs/development/compilers/llvm/9/libc++abi.nix
new file mode 100644
index 0000000000000000000000000000000000000000..7afff991e75d4c3aa7a79e29e31ab8a13840a91e
--- /dev/null
+++ b/pkgs/development/compilers/llvm/9/libc++abi.nix
@@ -0,0 +1,67 @@
+{ stdenv, cmake, fetch, libcxx, libunwind, llvm, version
+, enableShared ? true }:
+
+stdenv.mkDerivation {
+ pname = "libc++abi";
+ inherit version;
+
+ src = fetch "libcxxabi" "1s9haplqv8ashlsdx2psxiqxh50gqk2jp2vz5yn0djb56mw42l37";
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = stdenv.lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind;
+
+ cmakeFlags = stdenv.lib.optionals (stdenv.hostPlatform.useLLVM or false) [
+ "-DLLVM_ENABLE_LIBCXX=ON"
+ "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
+ ] ++ stdenv.lib.optionals stdenv.hostPlatform.isWasm [
+ "-DLIBCXXABI_ENABLE_THREADS=OFF"
+ "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
+ ] ++ stdenv.lib.optionals (!enableShared) [
+ "-DLIBCXXABI_ENABLE_SHARED=OFF"
+ ];
+
+ patches = [ ./libcxxabi-no-threads.patch ];
+
+ postUnpack = ''
+ unpackFile ${libcxx.src}
+ unpackFile ${llvm.src}
+ cmakeFlags+=" -DLLVM_PATH=$PWD/$(ls -d llvm-*) -DLIBCXXABI_LIBCXX_PATH=$PWD/$(ls -d libcxx-*)"
+ '' + stdenv.lib.optionalString stdenv.isDarwin ''
+ export TRIPLE=x86_64-apple-darwin
+ '' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl ''
+ patch -p1 -d $(ls -d libcxx-*) -i ${../libcxx-0001-musl-hacks.patch}
+ '' + stdenv.lib.optionalString stdenv.hostPlatform.isWasm ''
+ patch -p1 -d $(ls -d llvm-*) -i ${./libcxxabi-wasm.patch}
+ '';
+
+ installPhase = if stdenv.isDarwin
+ then ''
+ for file in lib/*.dylib; do
+ # this should be done in CMake, but having trouble figuring out
+ # the magic combination of necessary CMake variables
+ # if you fancy a try, take a look at
+ # http://www.cmake.org/Wiki/CMake_RPATH_handling
+ install_name_tool -id $out/$file $file
+ done
+ make install
+ install -d 755 $out/include
+ install -m 644 ../include/*.h $out/include
+ ''
+ else ''
+ install -d -m 755 $out/include $out/lib
+ install -m 644 lib/libc++abi.a $out/lib
+ install -m 644 ../include/cxxabi.h $out/include
+ '' + stdenv.lib.optionalString enableShared ''
+ install -m 644 lib/libc++abi.so.1.0 $out/lib
+ ln -s libc++abi.so.1.0 $out/lib/libc++abi.so
+ ln -s libc++abi.so.1.0 $out/lib/libc++abi.so.1
+ '';
+
+ meta = {
+ homepage = http://libcxxabi.llvm.org/;
+ description = "A new implementation of low level support for a standard C++ library";
+ license = with stdenv.lib.licenses; [ ncsa mit ];
+ maintainers = with stdenv.lib.maintainers; [ vlstill ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/pkgs/development/compilers/llvm/9/libcxxabi-no-threads.patch b/pkgs/development/compilers/llvm/9/libcxxabi-no-threads.patch
new file mode 100644
index 0000000000000000000000000000000000000000..787f3e16500e214f82d07223a8e9f53584a479c7
--- /dev/null
+++ b/pkgs/development/compilers/llvm/9/libcxxabi-no-threads.patch
@@ -0,0 +1,12 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 4138acf..41b4763 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -362,6 +362,7 @@ if (NOT LIBCXXABI_ENABLE_THREADS)
+ " is also set to ON.")
+ endif()
+ add_definitions(-D_LIBCXXABI_HAS_NO_THREADS)
++ add_definitions(-D_LIBCPP_HAS_NO_THREADS)
+ endif()
+
+ if (LIBCXXABI_HAS_EXTERNAL_THREAD_API)
diff --git a/pkgs/development/compilers/llvm/9/libcxxabi-wasm.patch b/pkgs/development/compilers/llvm/9/libcxxabi-wasm.patch
new file mode 100644
index 0000000000000000000000000000000000000000..4ebfe46aa813ddf3ef670cc7b46832fe25d7853d
--- /dev/null
+++ b/pkgs/development/compilers/llvm/9/libcxxabi-wasm.patch
@@ -0,0 +1,16 @@
+diff --git a/cmake/modules/HandleLLVMOptions.cmake b/cmake/modules/HandleLLVMOptions.cmake
+index 15497d405e0..33f7f18193a 100644
+--- a/cmake/modules/HandleLLVMOptions.cmake
++++ b/cmake/modules/HandleLLVMOptions.cmake
+@@ -127,7 +127,10 @@ else(WIN32)
+ set(LLVM_HAVE_LINK_VERSION_SCRIPT 1)
+ endif()
+ else(FUCHSIA OR UNIX)
+- MESSAGE(SEND_ERROR "Unable to determine platform")
++ if(${CMAKE_SYSTEM_NAME} MATCHES "Wasi")
++ else()
++ MESSAGE(SEND_ERROR "Unable to determine platform")
++ endif()
+ endif(FUCHSIA OR UNIX)
+ endif(WIN32)
+
diff --git a/pkgs/development/compilers/llvm/9/libunwind.nix b/pkgs/development/compilers/llvm/9/libunwind.nix
new file mode 100644
index 0000000000000000000000000000000000000000..5eba9e03c782e9ec806ce14b9df5fd50cd9683a7
--- /dev/null
+++ b/pkgs/development/compilers/llvm/9/libunwind.nix
@@ -0,0 +1,14 @@
+{ stdenv, version, fetch, cmake, fetchpatch, enableShared ? true }:
+
+stdenv.mkDerivation rec {
+ pname = "libunwind";
+ inherit version;
+
+ src = fetch pname "1chd1nz4bscrs6qa7p8sqgk5df86ll0frv0f451vhks2w44qsslp";
+
+ nativeBuildInputs = [ cmake ];
+
+ enableParallelBuilding = true;
+
+ cmakeFlags = stdenv.lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF";
+}
diff --git a/pkgs/development/compilers/llvm/9/lld.nix b/pkgs/development/compilers/llvm/9/lld.nix
new file mode 100644
index 0000000000000000000000000000000000000000..c5baef4357ecc28d1f0d516af8dd7dc7a87f2f8d
--- /dev/null
+++ b/pkgs/development/compilers/llvm/9/lld.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, fetch
+, cmake
+, libxml2
+, llvm
+, version
+}:
+
+stdenv.mkDerivation rec {
+ pname = "lld";
+ inherit version;
+
+ src = fetch pname "14cgd34gr826qpxzhrkbz6qgm8ymds0hrsiznwzp42ax4f5p9iii";
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ llvm libxml2 ];
+
+ outputs = [ "out" "dev" ];
+
+ enableParallelBuilding = true;
+
+ postInstall = ''
+ moveToOutput include "$dev"
+ moveToOutput lib "$dev"
+ '';
+
+ meta = {
+ description = "The LLVM Linker";
+ homepage = http://lld.llvm.org/;
+ license = stdenv.lib.licenses.ncsa;
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/pkgs/development/compilers/llvm/9/lldb-procfs.patch b/pkgs/development/compilers/llvm/9/lldb-procfs.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b075dbaeee0ad0a6ceb85b4a7620e441ef80c2eb
--- /dev/null
+++ b/pkgs/development/compilers/llvm/9/lldb-procfs.patch
@@ -0,0 +1,31 @@
+--- a/source/Plugins/Process/Linux/Procfs.h
++++ b/source/Plugins/Process/Linux/Procfs.h
+@@ -11,21 +11,12 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include
++#include
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include
++#undef pt_regs
++#else
+ #include
+-#endif // __ANDROID__
++#endif
diff --git a/pkgs/development/compilers/llvm/9/lldb.nix b/pkgs/development/compilers/llvm/9/lldb.nix
new file mode 100644
index 0000000000000000000000000000000000000000..ee281384c403122a5377b99444000367e3b01ae7
--- /dev/null
+++ b/pkgs/development/compilers/llvm/9/lldb.nix
@@ -0,0 +1,72 @@
+{ stdenv
+, fetch
+, cmake
+, zlib
+, ncurses
+, swig
+, which
+, libedit
+, libxml2
+, llvm
+, clang-unwrapped
+, python
+, version
+, darwin
+, lit
+}:
+
+stdenv.mkDerivation rec {
+ pname = "lldb";
+ inherit version;
+
+ src = fetch pname "1507dl0xw03nppxpz2xsq4s30jdbkplx4w14za54ngqm3xm2yk0y";
+
+ patches = [ ./lldb-procfs.patch ];
+
+ nativeBuildInputs = [ cmake python which swig lit ];
+ buildInputs = [
+ ncurses
+ zlib
+ libedit
+ libxml2
+ llvm
+ ]
+ ++ stdenv.lib.optionals stdenv.isDarwin [
+ darwin.libobjc
+ darwin.apple_sdk.libs.xpc
+ darwin.apple_sdk.frameworks.Foundation
+ darwin.bootstrap_cmds
+ darwin.apple_sdk.frameworks.Carbon
+ darwin.apple_sdk.frameworks.Cocoa
+ ];
+
+ CXXFLAGS = "-fno-rtti";
+ hardeningDisable = [ "format" ];
+
+ cmakeFlags = [
+ "-DLLDB_CODESIGN_IDENTITY=" # codesigning makes nondeterministic
+ "-DClang_DIR=${clang-unwrapped}/lib/cmake"
+ "-DLLVM_EXTERNAL_LIT=${lit}/bin/lit"
+ ];
+
+ enableParallelBuilding = true;
+
+ postInstall = ''
+ # man page
+ mkdir -p $out/share/man/man1
+ install ../docs/lldb.1 -t $out/share/man/man1/
+
+ # Editor support
+ # vscode:
+ install -D ../tools/lldb-vscode/package.json $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/package.json
+ mkdir -p $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin
+ ln -s $out/bin/lldb-vscode $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A next-generation high-performance debugger";
+ homepage = http://llvm.org/;
+ license = licenses.ncsa;
+ platforms = platforms.all;
+ };
+}
diff --git a/pkgs/development/compilers/llvm/9/llvm-outputs.patch b/pkgs/development/compilers/llvm/9/llvm-outputs.patch
new file mode 100644
index 0000000000000000000000000000000000000000..40096fa3497fd3b4300953ae9899e4709152228b
--- /dev/null
+++ b/pkgs/development/compilers/llvm/9/llvm-outputs.patch
@@ -0,0 +1,26 @@
+diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
+index 94d426b..37f7794 100644
+--- a/tools/llvm-config/llvm-config.cpp
++++ b/tools/llvm-config/llvm-config.cpp
+@@ -333,6 +333,21 @@ int main(int argc, char **argv) {
+ ActiveIncludeOption = "-I" + ActiveIncludeDir;
+ }
+
++ /// Nix-specific multiple-output handling: override ActiveLibDir if --link-shared
++ if (!IsInDevelopmentTree) {
++ bool WantShared = true;
++ for (int i = 1; i < argc; ++i) {
++ StringRef Arg = argv[i];
++ if (Arg == "--link-shared")
++ WantShared = true;
++ else if (Arg == "--link-static")
++ WantShared = false; // the last one wins
++ }
++
++ if (WantShared)
++ ActiveLibDir = std::string("@lib@") + "/lib" + LLVM_LIBDIR_SUFFIX;
++ }
++
+ /// We only use `shared library` mode in cases where the static library form
+ /// of the components provided are not available; note however that this is
+ /// skipped if we're run from within the build dir. However, once installed,
diff --git a/pkgs/development/compilers/llvm/9/llvm.nix b/pkgs/development/compilers/llvm/9/llvm.nix
new file mode 100644
index 0000000000000000000000000000000000000000..c8f78f5f7f21c36fdb18f3b215a1ea0d4d8b64f9
--- /dev/null
+++ b/pkgs/development/compilers/llvm/9/llvm.nix
@@ -0,0 +1,191 @@
+{ stdenv
+, fetch
+, cmake
+, python
+, libffi
+, libbfd
+, libpfm
+, libxml2
+, ncurses
+, version
+, release_version
+, zlib
+, buildPackages
+, debugVersion ? false
+, enableManpages ? false
+, enableSharedLibraries ? true
+, enablePFM ? !(stdenv.isDarwin
+ || stdenv.isAarch64 # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245
+)
+, enablePolly ? false
+}:
+
+let
+ inherit (stdenv.lib) optional optionals optionalString;
+
+ # Used when creating a version-suffixed symlink of libLLVM.dylib
+ shortVersion = with stdenv.lib;
+ concatStringsSep "." (take 1 (splitString "." release_version));
+
+in stdenv.mkDerivation (rec {
+ pname = "llvm";
+ inherit version;
+
+ src = fetch pname "117ymdz1by2nkfq1c2p9m4050dp848kbjbiv6nsfj8hzy9f5d86n";
+ polly_src = fetch "polly" "0cyl2gsibf1dhqvkyw1qb0f8q58ib6cihzyh4f9kj9g77ll95ym4";
+
+ unpackPhase = ''
+ unpackFile $src
+ mv llvm-${version}* llvm
+ sourceRoot=$PWD/llvm
+ '' + optionalString enablePolly ''
+ unpackFile $polly_src
+ mv polly-* $sourceRoot/tools/polly
+ '';
+
+ outputs = [ "out" "python" ]
+ ++ optional enableSharedLibraries "lib";
+
+ nativeBuildInputs = [ cmake python ]
+ ++ optionals enableManpages [ python.pkgs.sphinx python.pkgs.recommonmark ];
+
+ buildInputs = [ libxml2 libffi ]
+ ++ optional enablePFM libpfm; # exegesis
+
+ propagatedBuildInputs = [ ncurses zlib ];
+
+ postPatch = optionalString stdenv.isDarwin ''
+ substituteInPlace cmake/modules/AddLLVM.cmake \
+ --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \
+ --replace 'set(_install_rpath "@loader_path/../lib" ''${extra_libdir})' ""
+ ''
+ # Patch llvm-config to return correct library path based on --link-{shared,static}.
+ + optionalString (enableSharedLibraries) ''
+ substitute '${./llvm-outputs.patch}' ./llvm-outputs.patch --subst-var lib
+ patch -p1 < ./llvm-outputs.patch
+ '' + ''
+ # FileSystem permissions tests fail with various special bits
+ substituteInPlace unittests/Support/CMakeLists.txt \
+ --replace "Path.cpp" ""
+ rm unittests/Support/Path.cpp
+ '' + optionalString stdenv.hostPlatform.isMusl ''
+ patch -p1 -i ${../TLI-musl.patch}
+ substituteInPlace unittests/Support/CMakeLists.txt \
+ --replace "add_subdirectory(DynamicLibrary)" ""
+ rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp
+ # valgrind unhappy with musl or glibc, but fails w/musl only
+ rm test/CodeGen/AArch64/wineh4.mir
+ '' + optionalString stdenv.hostPlatform.isAarch32 ''
+ # skip failing X86 test cases on 32-bit ARM
+ rm test/DebugInfo/X86/convert-debugloc.ll
+ rm test/DebugInfo/X86/convert-inlined.ll
+ rm test/DebugInfo/X86/convert-linked.ll
+ rm test/tools/dsymutil/X86/op-convert.test
+ '' + optionalString (stdenv.hostPlatform.system == "armv6l-linux") ''
+ # Seems to require certain floating point hardware (NEON?)
+ rm test/ExecutionEngine/frem.ll
+ '' + ''
+ patchShebangs test/BugPoint/compile-custom.ll.py
+
+ # Fix test so that no extra locale files are needed
+ substituteInPlace test/tools/llvm-ar/mri-utf8.test \
+ --replace en_US.UTF-8 C.UTF-8
+
+ # Fix x86 gold test on non-x86 platforms
+ # (similar fix made to others in this directory previously, FWIW)
+ patch -p1 -i ${./fix-test-on-non-x86-like-others.patch}
+ '';
+
+ # hacky fix: created binaries need to be run before installation
+ preBuild = ''
+ mkdir -p $out/
+ ln -sv $PWD/lib $out
+ '';
+
+ cmakeFlags = with stdenv; [
+ "-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}"
+ "-DLLVM_INSTALL_UTILS=ON" # Needed by rustc
+ "-DLLVM_BUILD_TESTS=ON"
+ "-DLLVM_ENABLE_FFI=ON"
+ "-DLLVM_ENABLE_RTTI=ON"
+ "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
+ "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}"
+ "-DLLVM_ENABLE_DUMP=ON"
+ ] ++ optionals enableSharedLibraries [
+ "-DLLVM_LINK_LLVM_DYLIB=ON"
+ ] ++ optionals enableManpages [
+ "-DLLVM_BUILD_DOCS=ON"
+ "-DLLVM_ENABLE_SPHINX=ON"
+ "-DSPHINX_OUTPUT_MAN=ON"
+ "-DSPHINX_OUTPUT_HTML=OFF"
+ "-DSPHINX_WARNINGS_AS_ERRORS=OFF"
+ ] ++ optionals (!isDarwin) [
+ "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include"
+ ] ++ optionals (isDarwin) [
+ "-DLLVM_ENABLE_LIBCXX=ON"
+ "-DCAN_TARGET_i386=false"
+ ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+ "-DCMAKE_CROSSCOMPILING=True"
+ "-DLLVM_TABLEGEN=${buildPackages.llvm_7}/bin/llvm-tblgen"
+ ];
+
+ postBuild = ''
+ rm -fR $out
+ '';
+
+ preCheck = ''
+ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/lib
+ '';
+
+ postInstall = ''
+ mkdir -p $python/share
+ mv $out/share/opt-viewer $python/share/opt-viewer
+ ''
+ + optionalString enableSharedLibraries ''
+ moveToOutput "lib/libLLVM-*" "$lib"
+ moveToOutput "lib/libLLVM${stdenv.hostPlatform.extensions.sharedLibrary}" "$lib"
+ substituteInPlace "$out/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
+ --replace "\''${_IMPORT_PREFIX}/lib/libLLVM-" "$lib/lib/libLLVM-"
+ ''
+ + optionalString (stdenv.isDarwin && enableSharedLibraries) ''
+ substituteInPlace "$out/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
+ --replace "\''${_IMPORT_PREFIX}/lib/libLLVM.dylib" "$lib/lib/libLLVM.dylib"
+ ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib
+ ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib
+ '';
+
+ doCheck = stdenv.isLinux && (!stdenv.isx86_32);
+
+ checkTarget = "check-all";
+
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "Collection of modular and reusable compiler and toolchain technologies";
+ homepage = http://llvm.org/;
+ license = stdenv.lib.licenses.ncsa;
+ maintainers = with stdenv.lib.maintainers; [ lovek323 raskin dtzWill ];
+ platforms = stdenv.lib.platforms.all;
+ };
+} // stdenv.lib.optionalAttrs enableManpages {
+ pname = "llvm-manpages";
+
+ buildPhase = ''
+ make docs-llvm-man
+ '';
+
+ propagatedBuildInputs = [];
+
+ installPhase = ''
+ make -C docs install
+ '';
+
+ postPatch = null;
+ postInstall = null;
+
+ outputs = [ "out" ];
+
+ doCheck = false;
+
+ meta.description = "man pages for LLVM ${version}";
+})
diff --git a/pkgs/development/compilers/llvm/9/openmp.nix b/pkgs/development/compilers/llvm/9/openmp.nix
new file mode 100644
index 0000000000000000000000000000000000000000..a511aed2eb8c74638b6cb7a7a58e1f33f8f58471
--- /dev/null
+++ b/pkgs/development/compilers/llvm/9/openmp.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, fetch
+, cmake
+, llvm
+, perl
+, version
+}:
+
+stdenv.mkDerivation rec {
+ pname = "openmp";
+ inherit version;
+
+ src = fetch pname "0nrv9np134b7c483jnq786spy3hbpj11d7g21g67cqq66c8ynycr";
+
+ nativeBuildInputs = [ cmake perl ];
+ buildInputs = [ llvm ];
+
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "Components required to build an executable OpenMP program";
+ homepage = http://openmp.llvm.org/;
+ license = stdenv.lib.licenses.mit;
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/pkgs/development/compilers/llvm/9/sanitizers-nongnu.patch b/pkgs/development/compilers/llvm/9/sanitizers-nongnu.patch
new file mode 100644
index 0000000000000000000000000000000000000000..1f2ac97818ebae2d564bcf3c7818b6dbca70542c
--- /dev/null
+++ b/pkgs/development/compilers/llvm/9/sanitizers-nongnu.patch
@@ -0,0 +1,412 @@
+From f7a253f8f85d0f49df6b73996737a3e84ac64236 Mon Sep 17 00:00:00 2001
+From: Will Dietz
+Date: Mon, 24 Sep 2018 11:17:25 -0500
+Subject: [PATCH] Ported to 7.0, taken from gentoo-musl project.
+
+------
+Ported to compiler-rt-sanitizers-5.0.0. Taken from
+
+https://gist.githubusercontent.com/pwaller/2337f3290f12634cad3e3730cff0a6c1/raw/83c87a8585e2f9662494db5662e5361beb093c26/nongnu.patch
+Signed-off-by: Jory A. Pratt
+
+Taken from gentoo-musl project, with a few additional minor fixes.
+---
+ lib/asan/asan_linux.cc | 4 +-
+ lib/interception/interception_linux.cc | 2 +-
+ lib/interception/interception_linux.h | 2 +-
+ lib/msan/msan_linux.cc | 2 +-
+ lib/sanitizer_common/sanitizer_allocator.cc | 2 +-
+ .../sanitizer_common_interceptors_ioctl.inc | 4 +-
+ .../sanitizer_common_syscalls.inc | 2 +-
+ lib/sanitizer_common/sanitizer_linux.cc | 8 +++-
+ .../sanitizer_linux_libcdep.cc | 10 ++---
+ lib/sanitizer_common/sanitizer_platform.h | 6 +++
+ .../sanitizer_platform_interceptors.h | 4 +-
+ .../sanitizer_platform_limits_posix.cc | 37 +++++++++++--------
+ lib/tsan/rtl/tsan_platform_linux.cc | 2 +-
+ 13 files changed, 51 insertions(+), 34 deletions(-)
+
+diff --git a/lib/asan/asan_linux.cc b/lib/asan/asan_linux.cc
+index 625f32d40..73cf77aca 100644
+--- a/lib/asan/asan_linux.cc
++++ b/lib/asan/asan_linux.cc
+@@ -46,7 +46,7 @@
+ #include
+ #endif
+
+-#if SANITIZER_ANDROID || SANITIZER_FREEBSD || SANITIZER_SOLARIS
++#if SANITIZER_ANDROID || SANITIZER_FREEBSD || SANITIZER_SOLARIS || SANITIZER_NONGNU
+ #include
+ extern "C" void* _DYNAMIC;
+ #elif SANITIZER_NETBSD
+@@ -139,7 +139,7 @@ void AsanApplyToGlobals(globals_op_fptr op, const void *needle) {
+ UNIMPLEMENTED();
+ }
+
+-#if SANITIZER_ANDROID
++#if SANITIZER_ANDROID || SANITIZER_NONGNU
+ // FIXME: should we do anything for Android?
+ void AsanCheckDynamicRTPrereqs() {}
+ void AsanCheckIncompatibleRT() {}
+diff --git a/lib/interception/interception_linux.cc b/lib/interception/interception_linux.cc
+index 26bfcd8f6..529b234f7 100644
+--- a/lib/interception/interception_linux.cc
++++ b/lib/interception/interception_linux.cc
+@@ -43,7 +43,7 @@ bool GetRealFunctionAddress(const char *func_name, uptr *func_addr,
+ }
+
+ // Android and Solaris do not have dlvsym
+-#if !SANITIZER_ANDROID && !SANITIZER_SOLARIS && !SANITIZER_OPENBSD
++#if !SANITIZER_ANDROID && !SANITIZER_SOLARIS && !SANITIZER_OPENBSD && !SANITIZER_NONGNU
+ void *GetFuncAddrVer(const char *func_name, const char *ver) {
+ return dlvsym(RTLD_NEXT, func_name, ver);
+ }
+diff --git a/lib/interception/interception_linux.h b/lib/interception/interception_linux.h
+index 942c25609..24a4d5080 100644
+--- a/lib/interception/interception_linux.h
++++ b/lib/interception/interception_linux.h
+@@ -36,7 +36,7 @@ void *GetFuncAddrVer(const char *func_name, const char *ver);
+ (::__interception::uptr) & WRAP(func))
+
+ // Android, Solaris and OpenBSD do not have dlvsym
+-#if !SANITIZER_ANDROID && !SANITIZER_SOLARIS && !SANITIZER_OPENBSD
++#if !SANITIZER_ANDROID && !SANITIZER_SOLARIS && !SANITIZER_OPENBSD && !SANITIZER_NONGNU
+ #define INTERCEPT_FUNCTION_VER_LINUX_OR_FREEBSD(func, symver) \
+ (::__interception::real_##func = (func##_f)( \
+ unsigned long)::__interception::GetFuncAddrVer(#func, symver))
+diff --git a/lib/msan/msan_linux.cc b/lib/msan/msan_linux.cc
+index 385a650c4..6e30a8ce9 100644
+--- a/lib/msan/msan_linux.cc
++++ b/lib/msan/msan_linux.cc
+@@ -13,7 +13,7 @@
+ //===----------------------------------------------------------------------===//
+
+ #include "sanitizer_common/sanitizer_platform.h"
+-#if SANITIZER_FREEBSD || SANITIZER_LINUX || SANITIZER_NETBSD
++#if SANITIZER_FREEBSD || (SANITIZER_LINUX && !SANITIZER_NONGNU) || SANITIZER_NETBSD
+
+ #include "msan.h"
+ #include "msan_report.h"
+diff --git a/lib/sanitizer_common/sanitizer_allocator.cc b/lib/sanitizer_common/sanitizer_allocator.cc
+index 6bfd5e5ee..048f6154f 100644
+--- a/lib/sanitizer_common/sanitizer_allocator.cc
++++ b/lib/sanitizer_common/sanitizer_allocator.cc
+@@ -27,7 +27,7 @@ const char *SecondaryAllocatorName = "LargeMmapAllocator";
+
+ // ThreadSanitizer for Go uses libc malloc/free.
+ #if SANITIZER_GO || defined(SANITIZER_USE_MALLOC)
+-# if SANITIZER_LINUX && !SANITIZER_ANDROID
++# if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+ extern "C" void *__libc_malloc(uptr size);
+ # if !SANITIZER_GO
+ extern "C" void *__libc_memalign(uptr alignment, uptr size);
+diff --git a/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc b/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
+index 2d633c173..b6eb23116 100644
+--- a/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
++++ b/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
+@@ -104,7 +104,7 @@ static void ioctl_table_fill() {
+ _(SIOCGETVIFCNT, WRITE, struct_sioc_vif_req_sz);
+ #endif
+
+-#if SANITIZER_LINUX
++#if SANITIZER_LINUX && !SANITIZER_NONGNU
+ // Conflicting request ids.
+ // _(CDROMAUDIOBUFSIZ, NONE, 0);
+ // _(SNDCTL_TMR_CONTINUE, NONE, 0);
+@@ -365,7 +365,7 @@ static void ioctl_table_fill() {
+ _(VT_WAITACTIVE, NONE, 0);
+ #endif
+
+-#if SANITIZER_LINUX && !SANITIZER_ANDROID
++#if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+ // _(SIOCDEVPLIP, WRITE, struct_ifreq_sz); // the same as EQL_ENSLAVE
+ _(CYGETDEFTHRESH, WRITE, sizeof(int));
+ _(CYGETDEFTIMEOUT, WRITE, sizeof(int));
+diff --git a/lib/sanitizer_common/sanitizer_common_syscalls.inc b/lib/sanitizer_common/sanitizer_common_syscalls.inc
+index 469c8eb7e..24f87867d 100644
+--- a/lib/sanitizer_common/sanitizer_common_syscalls.inc
++++ b/lib/sanitizer_common/sanitizer_common_syscalls.inc
+@@ -2038,7 +2038,7 @@ POST_SYSCALL(setrlimit)(long res, long resource, void *rlim) {
+ }
+ }
+
+-#if !SANITIZER_ANDROID
++#if !SANITIZER_ANDROID && !SANITIZER_NONGNU
+ PRE_SYSCALL(prlimit64)(long pid, long resource, const void *new_rlim,
+ void *old_rlim) {
+ if (new_rlim) PRE_READ(new_rlim, struct_rlimit64_sz);
+diff --git a/lib/sanitizer_common/sanitizer_linux.cc b/lib/sanitizer_common/sanitizer_linux.cc
+index 96d6c1eff..9e2b7fb9d 100644
+--- a/lib/sanitizer_common/sanitizer_linux.cc
++++ b/lib/sanitizer_common/sanitizer_linux.cc
+@@ -541,13 +541,13 @@ const char *GetEnv(const char *name) {
+ #endif
+ }
+
+-#if !SANITIZER_FREEBSD && !SANITIZER_NETBSD && !SANITIZER_OPENBSD
++#if !SANITIZER_FREEBSD && !SANITIZER_NETBSD && !SANITIZER_OPENBSD && !SANITIZER_NONGNU
+ extern "C" {
+ SANITIZER_WEAK_ATTRIBUTE extern void *__libc_stack_end;
+ }
+ #endif
+
+-#if !SANITIZER_GO && !SANITIZER_FREEBSD && !SANITIZER_NETBSD && \
++#if (!SANITIZER_GO || SANITIZER_NONGNU) && !SANITIZER_FREEBSD && !SANITIZER_NETBSD && \
+ !SANITIZER_OPENBSD
+ static void ReadNullSepFileToArray(const char *path, char ***arr,
+ int arr_size) {
+@@ -590,6 +590,10 @@ static void GetArgsAndEnv(char ***argv, char ***envp) {
+ #elif SANITIZER_NETBSD
+ *argv = __ps_strings->ps_argvstr;
+ *envp = __ps_strings->ps_envstr;
++#elif SANITIZER_NONGNU
++ static const int kMaxArgv = 2000, kMaxEnvp = 2000;
++ ReadNullSepFileToArray("/proc/self/cmdline", argv, kMaxArgv);
++ ReadNullSepFileToArray("/proc/self/environ", envp, kMaxEnvp);
+ #else // SANITIZER_FREEBSD
+ #if !SANITIZER_GO
+ if (&__libc_stack_end) {
+diff --git a/lib/sanitizer_common/sanitizer_linux_libcdep.cc b/lib/sanitizer_common/sanitizer_linux_libcdep.cc
+index 4962ff832..438f94dbe 100644
+--- a/lib/sanitizer_common/sanitizer_linux_libcdep.cc
++++ b/lib/sanitizer_common/sanitizer_linux_libcdep.cc
+@@ -179,7 +179,7 @@ __attribute__((unused)) static bool GetLibcVersion(int *major, int *minor,
+ }
+
+ #if !SANITIZER_FREEBSD && !SANITIZER_ANDROID && !SANITIZER_GO && \
+- !SANITIZER_NETBSD && !SANITIZER_OPENBSD && !SANITIZER_SOLARIS
++ !SANITIZER_NETBSD && !SANITIZER_OPENBSD && !SANITIZER_SOLARIS && !SANITIZER_NONGNU
+ static uptr g_tls_size;
+
+ #ifdef __i386__
+@@ -261,7 +261,7 @@ void InitTlsSize() { }
+ #if (defined(__x86_64__) || defined(__i386__) || defined(__mips__) || \
+ defined(__aarch64__) || defined(__powerpc64__) || defined(__s390__) || \
+ defined(__arm__)) && \
+- SANITIZER_LINUX && !SANITIZER_ANDROID
++ SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+ // sizeof(struct pthread) from glibc.
+ static atomic_uintptr_t thread_descriptor_size;
+
+@@ -426,7 +426,7 @@ int GetSizeFromHdr(struct dl_phdr_info *info, size_t size, void *data) {
+
+ #if !SANITIZER_GO
+ static void GetTls(uptr *addr, uptr *size) {
+-#if SANITIZER_LINUX && !SANITIZER_ANDROID
++#if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+ # if defined(__x86_64__) || defined(__i386__) || defined(__s390__)
+ *addr = ThreadSelf();
+ *size = GetTlsSize();
+@@ -470,7 +470,7 @@ static void GetTls(uptr *addr, uptr *size) {
+ #elif SANITIZER_OPENBSD
+ *addr = 0;
+ *size = 0;
+-#elif SANITIZER_ANDROID
++#elif SANITIZER_ANDROID || SANITIZER_NONGNU
+ *addr = 0;
+ *size = 0;
+ #elif SANITIZER_SOLARIS
+@@ -486,7 +486,7 @@ static void GetTls(uptr *addr, uptr *size) {
+ #if !SANITIZER_GO
+ uptr GetTlsSize() {
+ #if SANITIZER_FREEBSD || SANITIZER_ANDROID || SANITIZER_NETBSD || \
+- SANITIZER_OPENBSD || SANITIZER_SOLARIS
++ SANITIZER_OPENBSD || SANITIZER_SOLARIS || SANITIZER_NONGNU
+ uptr addr, size;
+ GetTls(&addr, &size);
+ return size;
+diff --git a/lib/sanitizer_common/sanitizer_platform.h b/lib/sanitizer_common/sanitizer_platform.h
+index d81e25580..e10680ac8 100644
+--- a/lib/sanitizer_common/sanitizer_platform.h
++++ b/lib/sanitizer_common/sanitizer_platform.h
+@@ -208,6 +208,12 @@
+ # define SANITIZER_SOLARIS32 0
+ #endif
+
++#if defined(__linux__) && !defined(__GLIBC__)
++# define SANITIZER_NONGNU 1
++#else
++# define SANITIZER_NONGNU 0
++#endif
++
+ #if defined(__myriad2__)
+ # define SANITIZER_MYRIAD2 1
+ #else
+diff --git a/lib/sanitizer_common/sanitizer_platform_interceptors.h b/lib/sanitizer_common/sanitizer_platform_interceptors.h
+index f95539a73..6c53b3415 100644
+--- a/lib/sanitizer_common/sanitizer_platform_interceptors.h
++++ b/lib/sanitizer_common/sanitizer_platform_interceptors.h
+@@ -39,7 +39,7 @@
+ # include "sanitizer_platform_limits_solaris.h"
+ #endif
+
+-#if SANITIZER_LINUX && !SANITIZER_ANDROID
++#if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+ # define SI_LINUX_NOT_ANDROID 1
+ #else
+ # define SI_LINUX_NOT_ANDROID 0
+@@ -322,7 +322,7 @@
+ #define SANITIZER_INTERCEPT_ETHER_R (SI_FREEBSD || SI_LINUX_NOT_ANDROID)
+ #define SANITIZER_INTERCEPT_SHMCTL \
+ (SI_NETBSD || SI_OPENBSD || SI_SOLARIS || \
+- ((SI_FREEBSD || SI_LINUX_NOT_ANDROID) && \
++ ((SI_FREEBSD || SI_LINUX_NOT_ANDROID || SANITIZER_NONGNU) && \
+ SANITIZER_WORDSIZE == 64)) // NOLINT
+ #define SANITIZER_INTERCEPT_RANDOM_R SI_LINUX_NOT_ANDROID
+ #define SANITIZER_INTERCEPT_PTHREAD_ATTR_GET SI_POSIX
+diff --git a/lib/sanitizer_common/sanitizer_platform_limits_posix.cc b/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
+index 54da635d7..2f6ff69c3 100644
+--- a/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
++++ b/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
+@@ -14,6 +14,9 @@
+
+ #include "sanitizer_platform.h"
+
++// Workaround musl <--> linux conflicting definition of 'struct sysinfo'
++#define _LINUX_SYSINFO_H
++
+ #if SANITIZER_LINUX || SANITIZER_FREEBSD || SANITIZER_MAC
+ // Tests in this file assume that off_t-dependent data structures match the
+ // libc ABI. For example, struct dirent here is what readdir() function (as
+@@ -138,12 +141,14 @@ typedef struct user_fpregs elf_fpregset_t;
+
+ #if SANITIZER_LINUX && !SANITIZER_ANDROID
+ #include
+-#include