Skip to content
This repository was archived by the owner on Apr 12, 2021. It is now read-only.
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: NixOS/nixpkgs-channels
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: aa2552c6ced6
Choose a base ref
...
head repository: NixOS/nixpkgs-channels
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 42d03aabbd34
Choose a head ref

Commits on Mar 20, 2020

  1. Copy the full SHA
    f028498 View commit details

Commits on Mar 27, 2020

  1. keycloak: 9.0.0 -> 9.0.2

    r-ryantm committed Mar 27, 2020
    Copy the full SHA
    b260826 View commit details
  2. go: propagate target build dependencies correctly

    When using strict deps we have to use depsTargetTargetPropagated
    as go is added as a nativeBuildInputs to our build.
    Mic92 committed Mar 27, 2020
    Copy the full SHA
    0bba747 View commit details
  3. Revert "Merge pull request #83099 from marsam/fix-buildGoModule-packa…

    …ges-darwin"
    
    This reverts commit 4e6bf03, reversing
    changes made to afd997a.
    
    Instead we propagate those frameworks from the compiler again
    Mic92 committed Mar 27, 2020
    Copy the full SHA
    066db11 View commit details
  4. Copy the full SHA
    8a774b7 View commit details
  5. nixos/quorum: init

    mmahut committed Mar 27, 2020
    Copy the full SHA
    870a6e2 View commit details
  6. Copy the full SHA
    9a5c27a View commit details
  7. Copy the full SHA
    2a491a5 View commit details
  8. Copy the full SHA
    181ab9e View commit details
  9. ion: 1.0.5 -> unstable-2020-03-22

    The app is still maintained upstream, but they aren't cutting releases on
    crates.io anymore:
    https://crates.io/crates/ion-shell
    
    This fixes the build with the latest Rust toolchain by upgrading to the current
    commit off the project's `master`.
    
    ZHF: #80379
    bhipple committed Mar 27, 2020
    Copy the full SHA
    16cdff0 View commit details
  10. Copy the full SHA
    f76890f View commit details
  11. x42-autotune: remove

    It is a part of x42-plugins (under the name of x42-fat1).
    orivej committed Mar 27, 2020
    Copy the full SHA
    1475300 View commit details
  12. x42-avldrums: init at 0.4.1

    orivej committed Mar 27, 2020
    Copy the full SHA
    8a43a28 View commit details
  13. x42-gmsynth: init at 0.4.1

    orivej committed Mar 27, 2020
    Copy the full SHA
    0dae508 View commit details

Commits on Mar 28, 2020

  1. Merge pull request #83542 from bhipple/zhf/ion

    ion: 1.0.5 -> unstable-2020-03-22 and fix build
    worldofpeace authored Mar 28, 2020
    Copy the full SHA
    eddc4f3 View commit details
  2. pythonPackages.scikit-build: fix python3.8 bug

    Python3.8 removes ``platform.linux_distribution()`` call,
    must use ``pythonPackages.distro`` to get same information.
    Closes #83305
    Upstream PR: https://www.github.com/scikit-build/scikit-build/pull/458
    Also formatting.
    drewrisinger committed Mar 28, 2020
    Copy the full SHA
    c8dd834 View commit details
  3. Merge pull request #83526 from drewrisinger/dr-pr-python-scikit-build-38

    pythonPackages.scikit-build: fix test bug on python3.8
    bhipple authored Mar 28, 2020
    Copy the full SHA
    ae6bdcc View commit details
  4. python3Packages.apache-airflow: no-op cleanups to drv file

    Consistently indent with 2 spaces and cleanup the meta by quoting it for
    NixOS/rfcs#45
    bhipple committed Mar 28, 2020
    Copy the full SHA
    a4a00ca View commit details
  5. Merge pull request #82998 from OPNA2608/update-rpcs3

    rpcs3: 0.0.6-8187-790962425 -> 0.0.8-9300-341fdf7eb
    bhipple authored Mar 28, 2020
    Copy the full SHA
    b96cdee View commit details
  6. nginx: Fix ETag patch to ignore realpath(3) error

    While our ETag patch works pretty fine if it comes to serving data off
    store paths, it unfortunately broke something that might be a bit more
    common, namely when using regexes to extract path components of
    location directives for example.
    
    Recently, @devhell has reported a bug with a nginx location directive
    like this:
    
      location ~^/\~([a-z0-9_]+)(/.*)?$" {
        alias /home/$1/public_html$2;
      }
    
    While this might look harmless at first glance, it does however cause
    issues with our ETag patch. The alias directive gets broken up by nginx
    like this:
    
      *2 http script copy: "/home/"
      *2 http script capture: "foo"
      *2 http script copy: "/public_html/"
      *2 http script capture: "bar.txt"
    
    In our patch however, we use realpath(3) to get the canonicalised path
    from ngx_http_core_loc_conf_s.root, which returns the *configured* value
    from the root or alias directive. So in the example above, realpath(3)
    boils down to the following syscalls:
    
      lstat("/home", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
      lstat("/home/$1", 0x7ffd08da6f60) = -1 ENOENT (No such file or directory)
    
    During my review[1] of the initial patch, I didn't actually notice that
    what we're doing here is returning NGX_ERROR if the realpath(3) call
    fails, which in turn causes an HTTP 500 error.
    
    Since our patch actually made the canonicalisation (and thus additional
    syscalls) necessary, we really shouldn't introduce an additional error
    so let's - at least for now - silently skip return value if realpath(3)
    has failed.
    
    However since we're using the unaltered root from the config we have
    another issue, consider this root:
    
      /nix/store/...-abcde/$1
    
    Calling realpath(3) on this path will fail (except if there's a file
    called "$1" of course), so even this fix is not enough because it
    results in the ETag not being set to the store path hash.
    
    While this is very ugly and we should fix this very soon, it's not as
    serious as getting HTTP 500 errors for serving static files.
    
    I added a small NixOS VM test, which uses the example above as a
    regression test.
    
    It seems that my memory is failing these days, since apparently I *knew*
    about this issue since digging for existing issues in nixpkgs, I found
    this similar pull request which I even reviewed:
    
    NixOS/nixpkgs#66532
    
    However, since the comments weren't addressed and the author hasn't
    responded to the pull request, I decided to keep this very commit and do
    a follow-up pull request.
    
    [1]: NixOS/nixpkgs#48337
    
    Signed-off-by: aszlig <aszlig@nix.build>
    Reported-by: @devhell
    Acked-by: @7c6f434c
    Acked-by: @yorickvP
    Merges: NixOS/nixpkgs#80671
    Fixes: NixOS/nixpkgs#66532
    aszlig committed Mar 28, 2020
    Copy the full SHA
    e1d63ad View commit details
  7. Copy the full SHA
    49e252a View commit details
  8. Copy the full SHA
    f146d5f View commit details
  9. Copy the full SHA
    3c85ed2 View commit details
  10. Copy the full SHA
    63749d8 View commit details
  11. python-jose: 3.0.1 -> 3.1.0

    Mic92 committed Mar 28, 2020
    Copy the full SHA
    c646a56 View commit details
  12. Copy the full SHA
    0d0a977 View commit details
  13. hass-nabucasa: 0.31 -> 0.32.2

    Mic92 committed Mar 28, 2020
    Copy the full SHA
    808909d View commit details
  14. Copy the full SHA
    af2e41c View commit details
  15. treewide: remove torch and related packages

    See #71888 for details.
    bhipple committed Mar 28, 2020
    Copy the full SHA
    698ec44 View commit details
  16. Merge pull request #83536 from zowoq/buildah

    buildah: 1.14.4 -> 1.14.5
    marsam authored Mar 28, 2020
    Copy the full SHA
    2c76b8f View commit details
  17. acme: fix darwin build

    Jonathan Ringer committed Mar 28, 2020
    Copy the full SHA
    da41b78 View commit details
  18. python38Packages.zetup: fix build

    Currently fails to build on python 3.8 due to an overly restrictive version bound.
    
    ZHF: #80379
    
    CC @NixOS/nixos-release-managers
    bhipple committed Mar 28, 2020
    Copy the full SHA
    a65e052 View commit details
  19. onnxruntime: 1.1.2 -> 1.2.0

    Jonathan Ringer committed Mar 28, 2020
    Copy the full SHA
    d0f556a View commit details
  20. curaengine-lulzbot: fix build

    Mic92 committed Mar 28, 2020
    Copy the full SHA
    716aa1a View commit details
  21. Copy the full SHA
    3b7b98c View commit details
  22. Merge pull request #83463 from r-ryantm/auto-update/keycloak

    keycloak: 9.0.0 -> 9.0.2
    marsam authored Mar 28, 2020
    Copy the full SHA
    dccfefe View commit details
  23. Merge pull request #83547 from lopsided98/patch-1

    proj: use pname instead of name
    marsam authored Mar 28, 2020
    Copy the full SHA
    5dbb356 View commit details
  24. Merge pull request #83539 from r-ryantm/auto-update/python3.7-minidb

    python37Packages.minidb: 2.0.2 -> 2.0.3
    marsam authored Mar 28, 2020
    Copy the full SHA
    9b31568 View commit details
  25. Merge pull request #83538 from r-ryantm/auto-update/python2.7-fire

    python27Packages.fire: 0.2.1 -> 0.3.0
    marsam authored Mar 28, 2020
    Copy the full SHA
    f856191 View commit details
  26. jellyfin: 10.5.0 -> 10.5.2

    minijackson authored and Jon committed Mar 28, 2020
    Copy the full SHA
    3cff761 View commit details
  27. pianobooster: 0.6.4b -> 0.7.2b

    orivej committed Mar 28, 2020
    Copy the full SHA
    d80adaa View commit details
  28. zita-ajbridge: init at 0.8.2

    orivej committed Mar 28, 2020
    Copy the full SHA
    6cf0bc1 View commit details
  29. home-assistant: 0.107.0 -> 0.107.7

    colemickens authored and Mic92 committed Mar 28, 2020
    Copy the full SHA
    9cc44b7 View commit details
  30. Revert "zita-ajbridge: init at 0.8.2"

    This reverts commit 6cf0bc1.
    
    This breaks evaluation:
    cc @orivej
    Mic92 committed Mar 28, 2020
    Copy the full SHA
    5f8bf63 View commit details
  31. bluejeans: apply nixpkgs-fmt

    veprbl committed Mar 28, 2020
    Copy the full SHA
    d5e41b6 View commit details
  32. bluejeans: 1.36.9 -> 2.1.0

    veprbl committed Mar 28, 2020
    Copy the full SHA
    0df2d9f View commit details
  33. Merge pull request #83573 from bhipple/f/effect

    pythonPackages.effect: fix build by marking py3 only
    worldofpeace authored Mar 28, 2020
    Copy the full SHA
    702b89f View commit details
  34. Merge pull request #83555 from bhipple/clean/airflow

    python3Packages.apache-airflow: no-op cleanups to drv file
    worldofpeace authored Mar 28, 2020
    Copy the full SHA
    55c5aa5 View commit details
  35. Merge pull request #83568 from bhipple/rm/torch

    treewide: remove torch and related packages
    worldofpeace authored Mar 28, 2020
    Copy the full SHA
    2b1f4f3 View commit details
  36. Merge pull request #83570 from bhipple/fix/zetup

    python38Packages.zetup: fix build
    worldofpeace authored Mar 28, 2020
    Copy the full SHA
    1495eb3 View commit details
Showing with 1,271 additions and 1,445 deletions.
  1. +1 −0 nixos/modules/module-list.nix
  2. +229 −0 nixos/modules/services/networking/quorum.nix
  3. +2 −0 nixos/tests/all-tests.nix
  4. +20 −0 nixos/tests/nginx-pubhtml.nix
  5. +79 −0 nixos/tests/quorum.nix
  6. +18 −22 pkgs/applications/audio/pianobooster/default.nix
  7. +0 −11 pkgs/applications/audio/pianobooster/pianobooster-0.6.4b-cmake-gcc4.7.patch
  8. +0 −44 pkgs/applications/audio/pianobooster/pianobooster-0.6.4b-cmake.patch
  9. +0 −33 pkgs/applications/audio/x42-autotune/default.nix
  10. +31 −0 pkgs/applications/audio/x42-avldrums/default.nix
  11. +30 −0 pkgs/applications/audio/x42-gmsynth/default.nix
  12. +1 −3 pkgs/applications/blockchains/go-ethereum.nix
  13. +3 −5 pkgs/applications/blockchains/lnd.nix
  14. +2 −4 pkgs/applications/editors/glow/default.nix
  15. +2 −5 pkgs/applications/misc/archiver/default.nix
  16. +3 −4 pkgs/applications/misc/cura/lulzbot/curaengine.nix
  17. +1 −3 pkgs/applications/misc/exercism/default.nix
  18. +1 −3 pkgs/applications/misc/geoipupdate/default.nix
  19. +3 −3 pkgs/applications/misc/hugo/default.nix
  20. +4 −6 pkgs/applications/misc/todoist/default.nix
  21. +2 −5 pkgs/applications/misc/wtf/default.nix
  22. +2 −4 pkgs/applications/networking/cluster/argo/default.nix
  23. +2 −4 pkgs/applications/networking/cluster/argocd/default.nix
  24. +1 −3 pkgs/applications/networking/cluster/atlantis/default.nix
  25. +1 −3 pkgs/applications/networking/cluster/fluxctl/default.nix
  26. +1 −4 pkgs/applications/networking/cluster/helm/default.nix
  27. +12 −10 pkgs/applications/networking/cluster/helmfile/default.nix
  28. +5 −7 pkgs/applications/networking/cluster/hetzner-kube/default.nix
  29. +2 −4 pkgs/applications/networking/cluster/jx/default.nix
  30. +1 −3 pkgs/applications/networking/cluster/k9s/default.nix
  31. +2 −4 pkgs/applications/networking/cluster/kubeseal/default.nix
  32. +2 −4 pkgs/applications/networking/cluster/kubeval/default.nix
  33. +1 −3 pkgs/applications/networking/cluster/linkerd/default.nix
  34. +1 −5 pkgs/applications/networking/cluster/minikube/default.nix
  35. +2 −4 pkgs/applications/networking/cluster/prow/default.nix
  36. +2 −4 pkgs/applications/networking/cluster/qbec/default.nix
  37. +1 −4 pkgs/applications/networking/cluster/terraform-providers/default.nix
  38. +1 −3 pkgs/applications/networking/cluster/terraform-providers/elasticsearch/default.nix
  39. +2 −4 pkgs/applications/networking/hydroxide/default.nix
  40. +98 −25 pkgs/applications/networking/instant-messengers/bluejeans/default.nix
  41. +12 −0 pkgs/applications/networking/instant-messengers/bluejeans/localtime64_stub.c
  42. +1 −3 pkgs/applications/networking/instant-messengers/gomuks/default.nix
  43. +2 −3 pkgs/applications/networking/ipfs-cluster/default.nix
  44. +1 −3 pkgs/applications/networking/ipfs/default.nix
  45. +2 −3 pkgs/applications/networking/mailreaders/aerc/default.nix
  46. +1 −3 pkgs/applications/networking/syncthing/default.nix
  47. +2 −4 pkgs/applications/networking/websocketd/default.nix
  48. +5 −15 pkgs/applications/version-management/git-and-tools/default.nix
  49. +1 −3 pkgs/applications/version-management/git-and-tools/ghq/default.nix
  50. +1 −3 pkgs/applications/version-management/git-and-tools/git-bug/default.nix
  51. +2 −4 pkgs/applications/version-management/git-and-tools/git-subtrac/default.nix
  52. +1 −3 pkgs/applications/version-management/git-and-tools/lab/default.nix
  53. +1 −3 pkgs/applications/version-management/git-and-tools/lefthook/default.nix
  54. +5 −0 pkgs/development/compilers/acme/default.nix
  55. +1 −2 pkgs/development/compilers/go/1.12.nix
  56. +1 −2 pkgs/development/compilers/go/1.13.nix
  57. +1 −2 pkgs/development/compilers/go/1.14.nix
  58. +1 −1 pkgs/development/compilers/go/1.4.nix
  59. +1 −3 pkgs/development/interpreters/joker/default.nix
  60. +0 −19 pkgs/development/libraries/loadcaffe/default.nix
  61. +2 −2 pkgs/development/libraries/onnxruntime/default.nix
  62. +2 −5 pkgs/development/libraries/packr/default.nix
  63. +1 −1 pkgs/development/libraries/proj/default.nix
  64. +0 −19 pkgs/development/libraries/torch-hdf5/default.nix
  65. +0 −38 pkgs/development/libraries/torch/default.nix
  66. +3 −3 pkgs/development/node-packages/generate.sh
  67. +30 −31 pkgs/development/python-modules/apache-airflow/default.nix
  68. +30 −0 pkgs/development/python-modules/ciso8601/default.nix
  69. +8 −1 pkgs/development/python-modules/effect/default.nix
  70. +2 −2 pkgs/development/python-modules/fire/default.nix
  71. +8 −6 pkgs/development/python-modules/hass-nabucasa/default.nix
  72. +2 −2 pkgs/development/python-modules/minidb/default.nix
  73. +2 −2 pkgs/development/python-modules/prompt_toolkit/default.nix
  74. +5 −4 pkgs/development/python-modules/ptpython/default.nix
  75. +46 −0 pkgs/development/python-modules/pycognito/default.nix
  76. +2 −2 pkgs/development/python-modules/pyicloud/default.nix
  77. +2 −2 pkgs/development/python-modules/python-jose/default.nix
  78. +58 −11 pkgs/development/python-modules/scikit-build/default.nix
  79. +2 −2 pkgs/development/python-modules/zeroconf/default.nix
  80. +6 −9 pkgs/development/python-modules/zetup/default.nix
  81. +2 −4 pkgs/development/tools/analysis/tflint/default.nix
  82. +1 −3 pkgs/development/tools/azcopy/default.nix
  83. +1 −3 pkgs/development/tools/bazelisk/default.nix
  84. +2 −2 pkgs/development/tools/buildah/default.nix
  85. +2 −4 pkgs/development/tools/conftest/default.nix
  86. +7 −6 pkgs/development/tools/continuous-integration/drone-cli/default.nix
  87. +1 −3 pkgs/development/tools/continuous-integration/drone/default.nix
  88. +2 −4 pkgs/development/tools/continuous-integration/fly/default.nix
  89. +1 −3 pkgs/development/tools/cue/default.nix
  90. +1 −3 pkgs/development/tools/database/dbmate/default.nix
  91. +84 −0 pkgs/development/tools/database/dbmate/deps.nix
  92. +2 −3 pkgs/development/tools/dive/default.nix
  93. +2 −5 pkgs/development/tools/go-tools/default.nix
  94. +2 −4 pkgs/development/tools/golangci-lint/default.nix
  95. +1 −3 pkgs/development/tools/hcloud/default.nix
  96. +1 −3 pkgs/development/tools/kcli/default.nix
  97. +1 −3 pkgs/development/tools/kubeprompt/default.nix
  98. +2 −4 pkgs/development/tools/kustomize/default.nix
  99. +2 −4 pkgs/development/tools/misc/act/default.nix
  100. +1 −3 pkgs/development/tools/misc/circleci-cli/default.nix
  101. +2 −4 pkgs/development/tools/misc/editorconfig-checker/default.nix
  102. +2 −4 pkgs/development/tools/misc/go-license-detector/default.nix
  103. +2 −4 pkgs/development/tools/misc/mkcert/default.nix
  104. +2 −4 pkgs/development/tools/misc/reviewdog/default.nix
  105. +2 −4 pkgs/development/tools/misc/terracognita/default.nix
  106. +2 −4 pkgs/development/tools/mod/default.nix
  107. +2 −4 pkgs/development/tools/pet/default.nix
  108. +2 −4 pkgs/development/tools/proto-contrib/default.nix
  109. +2 −4 pkgs/development/tools/protoc-gen-doc/default.nix
  110. +2 −4 pkgs/development/tools/prototool/default.nix
  111. +2 −4 pkgs/development/web/flyctl/default.nix
  112. +2 −4 pkgs/development/web/minify/default.nix
  113. +9 −9 pkgs/misc/emulators/rpcs3/default.nix
  114. +2 −4 pkgs/os-specific/darwin/smimesign/default.nix
  115. +1 −3 pkgs/servers/caddy/default.nix
  116. +1 −3 pkgs/servers/caddy/v2.nix
  117. +1 −3 pkgs/servers/dns/coredns/default.nix
  118. +2 −4 pkgs/servers/documize-community/default.nix
  119. +2 −4 pkgs/servers/echoip/default.nix
  120. +3 −5 pkgs/servers/gobetween/default.nix
  121. +2 −4 pkgs/servers/gortr/default.nix
  122. +2 −3 pkgs/servers/gotify/default.nix
  123. +15 −10 pkgs/servers/home-assistant/component-packages.nix
  124. +11 −7 pkgs/servers/home-assistant/default.nix
  125. +2 −2 pkgs/servers/home-assistant/frontend.nix
  126. +13 −0 pkgs/servers/home-assistant/relax-deps.patch
  127. +0 −22 pkgs/servers/home-assistant/relax-importlib-metadata-pyaml.patch
  128. +15 −14 pkgs/servers/http/nginx/nix-etag-1.15.4.patch
  129. +3 −4 pkgs/servers/imgproxy/default.nix
  130. +2 −2 pkgs/servers/jellyfin/default.nix
  131. +3 −2 pkgs/servers/keycloak/default.nix
  132. +1 −3 pkgs/servers/matterbridge/default.nix
  133. +1 −3 pkgs/servers/mautrix-whatsapp/default.nix
  134. +1 −3 pkgs/servers/minio/default.nix
  135. +2 −4 pkgs/servers/monitoring/mtail/default.nix
  136. +1 −3 pkgs/servers/monitoring/prometheus/dnsmasq-exporter.nix
  137. +1 −3 pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix
  138. +4 −6 pkgs/servers/monitoring/prometheus/varnish-exporter.nix
  139. +4 −6 pkgs/servers/monitoring/sensu-go/default.nix
  140. +1 −3 pkgs/servers/monitoring/thanos/default.nix
  141. +2 −5 pkgs/servers/nosql/victoriametrics/default.nix
  142. +2 −4 pkgs/servers/sql/dolt/default.nix
  143. +1 −3 pkgs/servers/web-apps/shiori/default.nix
  144. +1 −3 pkgs/shells/elvish/default.nix
  145. +6 −11 pkgs/shells/ion/default.nix
  146. +2 −4 pkgs/shells/zsh/zsh-history/default.nix
  147. +2 −4 pkgs/tools/admin/aws-vault/default.nix
  148. +2 −4 pkgs/tools/admin/awsweeper/default.nix
  149. +1 −3 pkgs/tools/admin/berglas/default.nix
  150. +1 −3 pkgs/tools/admin/certigo/default.nix
  151. +3 −5 pkgs/tools/admin/clair/default.nix
  152. +2 −4 pkgs/tools/admin/eksctl/default.nix
  153. +3 −3 pkgs/tools/admin/iamy/default.nix
  154. +2 −4 pkgs/tools/admin/lego/default.nix
  155. +0 −63 pkgs/tools/graphics/fast-neural-doodle/default.nix
  156. +0 −28 pkgs/tools/graphics/fast-neural-doodle/fast-neural-doodle.sh
  157. +0 −5 pkgs/tools/graphics/fast-neural-doodle/get-mask-hdf5.sh
  158. +0 −58 pkgs/tools/graphics/neural-style/default.nix
  159. +0 −25 pkgs/tools/graphics/neural-style/neural-style.sh
  160. +1 −3 pkgs/tools/misc/chezmoi/default.nix
  161. +1 −3 pkgs/tools/misc/docui/default.nix
  162. +2 −4 pkgs/tools/misc/gotify-cli/default.nix
  163. +2 −4 pkgs/tools/misc/kepubify/default.nix
  164. +2 −4 pkgs/tools/misc/mutagen/default.nix
  165. +1 −3 pkgs/tools/misc/pgcenter/default.nix
  166. +1 −3 pkgs/tools/misc/pgmetrics/default.nix
  167. +2 −4 pkgs/tools/networking/cassowary/default.nix
  168. +1 −3 pkgs/tools/networking/clash/default.nix
  169. +1 −3 pkgs/tools/networking/corerad/default.nix
  170. +1 −3 pkgs/tools/networking/croc/default.nix
  171. +1 −3 pkgs/tools/networking/dnsproxy/default.nix
  172. +2 −4 pkgs/tools/networking/frp/default.nix
  173. +2 −4 pkgs/tools/networking/grpcui/default.nix
  174. +2 −4 pkgs/tools/networking/hey/default.nix
  175. +1 −3 pkgs/tools/networking/minio-client/default.nix
  176. +2 −4 pkgs/tools/networking/nebula/default.nix
  177. +2 −4 pkgs/tools/networking/obfs4/default.nix
  178. +3 −3 pkgs/tools/networking/shadowfox/default.nix
  179. +1 −3 pkgs/tools/networking/tendermint/default.nix
  180. +2 −3 pkgs/tools/networking/termshark/default.nix
  181. +2 −4 pkgs/tools/networking/yggdrasil/default.nix
  182. +1 −3 pkgs/tools/package-management/mynewt-newt/default.nix
  183. +2 −4 pkgs/tools/security/age/default.nix
  184. +2 −5 pkgs/tools/security/gobuster/default.nix
  185. +1 −3 pkgs/tools/security/saml2aws/default.nix
  186. +1 −3 pkgs/tools/security/sops/default.nix
  187. +2 −4 pkgs/tools/system/ctop/default.nix
  188. +122 −380 pkgs/top-level/all-packages.nix
  189. +4 −0 pkgs/top-level/python-packages.nix
1 change: 1 addition & 0 deletions nixos/modules/module-list.nix
Original file line number Diff line number Diff line change
@@ -690,6 +690,7 @@
./services/networking/prosody.nix
./services/networking/quagga.nix
./services/networking/quassel.nix
./services/networking/quorum.nix
./services/networking/quicktun.nix
./services/networking/racoon.nix
./services/networking/radicale.nix
229 changes: 229 additions & 0 deletions nixos/modules/services/networking/quorum.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,229 @@
{ config, pkgs, lib, ... }:
let

inherit (lib) mkEnableOption mkIf mkOption literalExample types optionalString;

cfg = config.services.quorum;
dataDir = "/var/lib/quorum";
genesisFile = pkgs.writeText "genesis.json" (builtins.toJSON cfg.genesis);
staticNodesFile = pkgs.writeText "static-nodes.json" (builtins.toJSON cfg.staticNodes);

in {
options = {

services.quorum = {
enable = mkEnableOption "Quorum blockchain daemon";

user = mkOption {
type = types.str;
default = "quorum";
description = "The user as which to run quorum.";
};

group = mkOption {
type = types.str;
default = cfg.user;
description = "The group as which to run quorum.";
};

port = mkOption {
type = types.port;
default = 21000;
description = "Override the default port on which to listen for connections.";
};

nodekeyFile = mkOption {
type = types.path;
default = "${dataDir}/nodekey";
description = "Path to the nodekey.";
};

staticNodes = mkOption {
type = types.listOf types.str;
default = [];
example = [ "enode://dd333ec28f0a8910c92eb4d336461eea1c20803eed9cf2c056557f986e720f8e693605bba2f4e8f289b1162e5ac7c80c914c7178130711e393ca76abc1d92f57@0.0.0.0:30303?discport=0" ];
description = "List of validator nodes.";
};

privateconfig = mkOption {
type = types.str;
default = "ignore";
description = "Configuration of privacy transaction manager.";
};

syncmode = mkOption {
type = types.enum [ "fast" "full" "light" ];
default = "full";
description = "Blockchain sync mode.";
};

blockperiod = mkOption {
type = types.int;
default = 5;
description = "Default minimum difference between two consecutive block's timestamps in seconds.";
};

permissioned = mkOption {
type = types.bool;
default = true;
description = "Allow only a defined list of nodes to connect.";
};

rpc = {
enable = mkOption {
type = types.bool;
default = true;
description = "Enable RPC interface.";
};

address = mkOption {
type = types.str;
default = "0.0.0.0";
description = "Listening address for RPC connections.";
};

port = mkOption {
type = types.port;
default = 22004;
description = "Override the default port on which to listen for RPC connections.";
};

api = mkOption {
type = types.str;
default = "admin,db,eth,debug,miner,net,shh,txpool,personal,web3,quorum,istanbul";
description = "API's offered over the HTTP-RPC interface.";
};
};

ws = {
enable = mkOption {
type = types.bool;
default = true;
description = "Enable WS-RPC interface.";
};

address = mkOption {
type = types.str;
default = "0.0.0.0";
description = "Listening address for WS-RPC connections.";
};

port = mkOption {
type = types.port;
default = 8546;
description = "Override the default port on which to listen for WS-RPC connections.";
};

api = mkOption {
type = types.str;
default = "admin,db,eth,debug,miner,net,shh,txpool,personal,web3,quorum,istanbul";
description = "API's offered over the WS-RPC interface.";
};

origins = mkOption {
type = types.str;
default = "*";
description = "Origins from which to accept websockets requests";
};
};

genesis = mkOption {
type = types.nullOr types.attrs;
default = null;
example = literalExample '' {
alloc = {
a47385db68718bdcbddc2d2bb7c54018066ec111 = {
balance = "1000000000000000000000000000";
};
};
coinbase = "0x0000000000000000000000000000000000000000";
config = {
byzantiumBlock = 4;
chainId = 494702925;
eip150Block = 2;
eip155Block = 3;
eip158Block = 3;
homesteadBlock = 1;
isQuorum = true;
istanbul = {
epoch = 30000;
policy = 0;
};
};
difficulty = "0x1";
extraData = "0x0000000000000000000000000000000000000000000000000000000000000000f85ad59438f0508111273d8e482f49410ca4078afc86a961b8410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0";
gasLimit = "0x2FEFD800";
mixHash = "0x63746963616c2062797a616e74696e65201111756c7420746f6c6572616e6365";
nonce = "0x0";
parentHash = "0x0000000000000000000000000000000000000000000000000000000000000000";
timestamp = "0x00";
}'';
description = "Blockchain genesis settings.";
};
};
};

config = mkIf cfg.enable {
environment.systemPackages = [ pkgs.quorum ];
systemd.tmpfiles.rules = [
"d '${dataDir}' 0770 '${cfg.user}' '${cfg.group}' - -"
];
systemd.services.quorum = {
description = "Quorum daemon";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
environment = {
PRIVATE_CONFIG = "${cfg.privateconfig}";
};
preStart = ''
if [ ! -d ${dataDir}/geth ]; then
if [ ! -d ${dataDir}/keystore ]; then
echo ERROR: You need to create a wallet before initializing your genesis file, run:
echo # su -s /bin/sh - quorum
echo $ geth --datadir ${dataDir} account new
echo and configure your genesis file accordingly.
exit 1;
fi
ln -s ${staticNodesFile} ${dataDir}/static-nodes.json
${pkgs.quorum}/bin/geth --datadir ${dataDir} init ${genesisFile}
fi
'';
serviceConfig = {
User = cfg.user;
Group = cfg.group;
ExecStart = ''${pkgs.quorum}/bin/geth \
--nodiscover \
--verbosity 5 \
--nodekey ${cfg.nodekeyFile} \
--istanbul.blockperiod ${toString cfg.blockperiod} \
--syncmode ${cfg.syncmode} \
${optionalString (cfg.permissioned)
"--permissioned"} \
--mine --minerthreads 1 \
${optionalString (cfg.rpc.enable)
"--rpc --rpcaddr ${cfg.rpc.address} --rpcport ${toString cfg.rpc.port} --rpcapi ${cfg.rpc.api}"} \
${optionalString (cfg.ws.enable)
"--ws --wsaddr ${cfg.ws.address} --wsport ${toString cfg.ws.port} --wsapi ${cfg.ws.api} --wsorigins ${cfg.ws.origins}"} \
--emitcheckpoints \
--datadir ${dataDir} \
--port ${toString cfg.port}'';
Restart = "on-failure";

# Hardening measures
PrivateTmp = "true";
ProtectSystem = "full";
NoNewPrivileges = "true";
PrivateDevices = "true";
MemoryDenyWriteExecute = "true";
};
};
users.users.${cfg.user} = {
name = cfg.user;
group = cfg.group;
description = "Quorum daemon user";
home = dataDir;
isSystemUser = true;
};
users.groups.${cfg.group} = {};
};
}
2 changes: 2 additions & 0 deletions nixos/tests/all-tests.nix
Original file line number Diff line number Diff line change
@@ -211,6 +211,7 @@ in
nghttpx = handleTest ./nghttpx.nix {};
nginx = handleTest ./nginx.nix {};
nginx-etag = handleTest ./nginx-etag.nix {};
nginx-pubhtml = handleTest ./nginx-pubhtml.nix {};
nginx-sso = handleTest ./nginx-sso.nix {};
nix-ssh-serve = handleTest ./nix-ssh-serve.nix {};
nixos-generate-config = handleTest ./nixos-generate-config.nix {};
@@ -251,6 +252,7 @@ in
prosodyMysql = handleTest ./xmpp/prosody-mysql.nix {};
proxy = handleTest ./proxy.nix {};
quagga = handleTest ./quagga.nix {};
quorum = handleTest ./quorum.nix {};
rabbitmq = handleTest ./rabbitmq.nix {};
radarr = handleTest ./radarr.nix {};
radicale = handleTest ./radicale.nix {};
20 changes: 20 additions & 0 deletions nixos/tests/nginx-pubhtml.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import ./make-test-python.nix {
name = "nginx-pubhtml";

machine = { pkgs, ... }: {
services.nginx.enable = true;
services.nginx.virtualHosts.localhost = {
locations."~ ^/\\~([a-z0-9_]+)(/.*)?$".alias = "/home/$1/public_html$2";
};
users.users.foo.isNormalUser = true;
};

testScript = ''
machine.wait_for_unit("nginx")
machine.wait_for_open_port(80)
machine.succeed("chmod 0711 /home/foo")
machine.succeed("su -c 'mkdir -p /home/foo/public_html' foo")
machine.succeed("su -c 'echo bar > /home/foo/public_html/bar.txt' foo")
machine.succeed('test "$(curl -fvvv http://localhost/~foo/bar.txt)" = bar')
'';
}
79 changes: 79 additions & 0 deletions nixos/tests/quorum.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
import ./make-test-python.nix ({ pkgs, ... }: {
name = "quorum";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ mmahut ];
};

nodes = {
machine = { ... }: {
services.quorum = {
enable = true;
permissioned = false;
staticNodes = [ "enode://dd333ec28f0a8910c92eb4d336461eea1c20803eed9cf2c056557f986e720f8e693605bba2f4e8f289b1162e5ac7c80c914c7178130711e393ca76abc1d92f57@0.0.0.0:30303?discport=0" ];
genesis = {
alloc = {
"189d23d201b03ae1cf9113672df29a5d672aefa3" = {
balance = "0x446c3b15f9926687d2c40534fdb564000000000000";
};
"44b07d2c28b8ed8f02b45bd84ac7d9051b3349e6" = {
balance = "0x446c3b15f9926687d2c40534fdb564000000000000";
};
"4c1ccd426833b9782729a212c857f2f03b7b4c0d" = {
balance = "0x446c3b15f9926687d2c40534fdb564000000000000";
};
"7ae555d0f6faad7930434abdaac2274fd86ab516" = {
balance = "0x446c3b15f9926687d2c40534fdb564000000000000";
};
c1056df7c02b6f1a353052eaf0533cc7cb743b52 = {
balance = "0x446c3b15f9926687d2c40534fdb564000000000000";
};
};
coinbase = "0x0000000000000000000000000000000000000000";
config = {
byzantiumBlock = 1;
chainId = 10;
eip150Block = 1;
eip150Hash =
"0x0000000000000000000000000000000000000000000000000000000000000000";
eip155Block = 1;
eip158Block = 1;
isQuorum = true;
istanbul = {
epoch = 30000;
policy = 0;
};
};
difficulty = "0x1";
extraData =
"0x0000000000000000000000000000000000000000000000000000000000000000f8aff869944c1ccd426833b9782729a212c857f2f03b7b4c0d94189d23d201b03ae1cf9113672df29a5d672aefa39444b07d2c28b8ed8f02b45bd84ac7d9051b3349e694c1056df7c02b6f1a353052eaf0533cc7cb743b52947ae555d0f6faad7930434abdaac2274fd86ab516b8410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0";
gasLimit = "0xe0000000";
gasUsed = "0x0";
mixHash =
"0x63746963616c2062797a616e74696e65206661756c7420746f6c6572616e6365";
nonce = "0x0";
number = "0x0";
parentHash =
"0x0000000000000000000000000000000000000000000000000000000000000000";
timestamp = "0x5cffc201";
};
};
};
};

testScript = ''
start_all()
machine.wait_until_succeeds("mkdir -p /var/lib/quorum/keystore")
machine.wait_until_succeeds(
'echo \{\\"address\\":\\"9377bc3936de934c497e22917b81aa8774ac3bb0\\",\\"crypto\\":\{\\"cipher\\":\\"aes-128-ctr\\",\\"ciphertext\\":\\"ad8341d8ef225650403fd366c955f41095e438dd966a3c84b3d406818c1e366c\\",\\"cipherparams\\":\{\\"iv\\":\\"2a09f7a72fd6dff7c43150ff437e6ac2\\"\},\\"kdf\\":\\"scrypt\\",\\"kdfparams\\":\{\\"dklen\\":32,\\"n\\":262144,\\"p\\":1,\\"r\\":8,\\"salt\\":\\"d1a153845bb80cd6274c87c5bac8ac09fdfac5ff131a6f41b5ed319667f12027\\"\},\\"mac\\":\\"a9621ad88fa1d042acca6fc2fcd711f7e05bfbadea3f30f379235570c8e270d3\\"\},\\"id\\":\\"89e847a3-1527-42f6-a321-77de0a14ce02\\",\\"version\\":3\}\\" > /var/lib/quorum/keystore/UTC--2020-03-23T11-08-34.144812212Z--9377bc3936de934c497e22917b81aa8774ac3bb0'
)
machine.wait_until_succeeds(
"echo fe2725c4e8f7617764b845e8d939a65c664e7956eb47ed7d934573f16488efc1 > /var/lib/quorum/nodekey"
)
machine.wait_until_succeeds("systemctl restart quorum")
machine.wait_for_unit("quorum.service")
machine.sleep(15)
machine.wait_until_succeeds(
'geth attach /var/lib/quorum/geth.ipc --exec "eth.accounts" | grep 0x9377bc3936de934c497e22917b81aa8774ac3bb0'
)
'';
})
Loading