From dd9883b2fbd2b9ea01d53654d383b29b4d68d05a Mon Sep 17 00:00:00 2001 From: rnhmjoj Date: Wed, 29 Sep 2021 12:09:20 +0200 Subject: [PATCH 01/87] nixos/dhcpd: switch to DynamicUser The service can run unprivileged -- by using capabilities -- and the uid/gid can be dynamically allocated since there are only a handful of state files. This change improves the overall security of the service by leveraging systemd's hardening and getting rids of `nogroup` and the initial root permissions (before the daemon drop privileges). --- nixos/modules/services/networking/dhcpd.nix | 93 ++++++++++----------- 1 file changed, 44 insertions(+), 49 deletions(-) diff --git a/nixos/modules/services/networking/dhcpd.nix b/nixos/modules/services/networking/dhcpd.nix index 54e4f9002859..3c4c0069dfd0 100644 --- a/nixos/modules/services/networking/dhcpd.nix +++ b/nixos/modules/services/networking/dhcpd.nix @@ -28,38 +28,45 @@ let } ''; - dhcpdService = postfix: cfg: optionalAttrs cfg.enable { - "dhcpd${postfix}" = { - description = "DHCPv${postfix} server"; - wantedBy = [ "multi-user.target" ]; - after = [ "network.target" ]; + dhcpdService = postfix: cfg: + let + configFile = + if cfg.configFile != null + then cfg.configFile + else writeConfig cfg; + leaseFile = "/var/lib/dhcpd${postfix}/dhcpd.leases"; + args = [ + "@${pkgs.dhcp}/sbin/dhcpd" "dhcpd${postfix}" "-${postfix}" + "-pf" "/run/dhcpd${postfix}/dhcpd.pid" + "-cf" configFile + "-lf" leaseFile + ] ++ cfg.extraFlags + ++ cfg.interfaces; + in + optionalAttrs cfg.enable { + "dhcpd${postfix}" = { + description = "DHCPv${postfix} server"; + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; - preStart = '' - mkdir -m 755 -p ${cfg.stateDir} - chown dhcpd:nogroup ${cfg.stateDir} - touch ${cfg.stateDir}/dhcpd.leases - ''; - - serviceConfig = - let - configFile = if cfg.configFile != null then cfg.configFile else writeConfig cfg; - args = [ "@${pkgs.dhcp}/sbin/dhcpd" "dhcpd${postfix}" "-${postfix}" - "-pf" "/run/dhcpd${postfix}/dhcpd.pid" - "-cf" "${configFile}" - "-lf" "${cfg.stateDir}/dhcpd.leases" - "-user" "dhcpd" "-group" "nogroup" - ] ++ cfg.extraFlags - ++ cfg.interfaces; - - in { - ExecStart = concatMapStringsSep " " escapeShellArg args; - Type = "forking"; - Restart = "always"; - RuntimeDirectory = [ "dhcpd${postfix}" ]; - PIDFile = "/run/dhcpd${postfix}/dhcpd.pid"; + preStart = "touch ${leaseFile}"; + serviceConfig = { + ExecStart = concatMapStringsSep " " escapeShellArg args; + Type = "forking"; + Restart = "always"; + DynamicUser = true; + User = "dhcpd"; + Group = "dhcpd"; + AmbientCapabilities = [ + "CAP_NET_RAW" # to send ICMP messages + "CAP_NET_BIND_SERVICE" # to bind on DHCP port (67) + ]; + StateDirectory = "dhcpd${postfix}"; + RuntimeDirectory = "dhcpd${postfix}"; + PIDFile = "/run/dhcpd${postfix}/dhcpd.pid"; + }; }; - }; - }; + }; machineOpts = { ... }: { @@ -102,15 +109,6 @@ let ''; }; - stateDir = mkOption { - type = types.path; - # We use /var/lib/dhcp for DHCPv4 to save backwards compatibility. - default = "/var/lib/dhcp${if postfix == "4" then "" else postfix}"; - description = '' - State directory for the DHCP server. - ''; - }; - extraConfig = mkOption { type = types.lines; default = ""; @@ -194,7 +192,13 @@ in imports = [ (mkRenamedOptionModule [ "services" "dhcpd" ] [ "services" "dhcpd4" ]) - ]; + ] ++ flip map [ "4" "6" ] (postfix: + mkRemovedOptionModule [ "services" "dhcpd${postfix}" "stateDir" ] '' + The DHCP server state directory is now managed with the systemd's DynamicUser mechanism. + This means the directory is named after the service (dhcpd${postfix}), created under + /var/lib/private/ and symlinked to /var/lib/. + '' + ); ###### interface @@ -210,15 +214,6 @@ in config = mkIf (cfg4.enable || cfg6.enable) { - users = { - users.dhcpd = { - isSystemUser = true; - group = "dhcpd"; - description = "DHCP daemon user"; - }; - groups.dhcpd = {}; - }; - systemd.services = dhcpdService "4" cfg4 // dhcpdService "6" cfg6; }; From 9cbc9e9855434299333bbc14475b89cf601d1189 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 3 Nov 2021 22:47:42 +0000 Subject: [PATCH 02/87] qtstyleplugin-kvantum-qt4: 0.20.1 -> 0.20.2 --- .../libraries/qtstyleplugin-kvantum-qt4/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/qtstyleplugin-kvantum-qt4/default.nix b/pkgs/development/libraries/qtstyleplugin-kvantum-qt4/default.nix index c7a8a400a981..72413b372f00 100644 --- a/pkgs/development/libraries/qtstyleplugin-kvantum-qt4/default.nix +++ b/pkgs/development/libraries/qtstyleplugin-kvantum-qt4/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "qtstyleplugin-kvantum-qt4"; - version = "0.20.1"; + version = "0.20.2"; src = fetchFromGitHub { owner = "tsujan"; repo = "Kvantum"; rev = "V${version}"; - sha256 = "sha256-sY2slI9ZVuEurBIEaJMxUiKiUNXx+h7UEwEZKKr7R2Y="; + sha256 = "sha256-aIhLrGKb8iPl8N483+EOaCrTua96Qvl2lc2UXRiqvJA="; }; nativeBuildInputs = [ qmake4Hook ]; From 5ca3d755e171a11c8bced8f3721bca949dc27885 Mon Sep 17 00:00:00 2001 From: Lux Date: Tue, 14 Dec 2021 21:21:22 +0100 Subject: [PATCH 03/87] maintainers: add lux --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 22dc8578b26f..08b38c67ba93 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -7054,6 +7054,12 @@ fingerprint = "BA3A 5886 AE6D 526E 20B4 57D6 6A37 DF94 8318 8492"; }]; }; + lux = { + email = "lux@lux.name"; + githubId = 1208273; + matrix = "@lux:ontheblueplanet.com"; + name = "Lux"; + }; luz = { email = "luz666@daum.net"; github = "Luz"; From 98f026b5d12c3faae9959c0e9ab0bc179243ec93 Mon Sep 17 00:00:00 2001 From: Lux Date: Tue, 14 Dec 2021 19:50:33 +0100 Subject: [PATCH 04/87] nanosaur: init at unstable-2021-12-03 Co-authored-by: legendofmiracles <30902201+legendofmiracles@users.noreply.github.com> --- pkgs/games/nanosaur/default.nix | 48 +++++++++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 50 insertions(+) create mode 100644 pkgs/games/nanosaur/default.nix diff --git a/pkgs/games/nanosaur/default.nix b/pkgs/games/nanosaur/default.nix new file mode 100644 index 000000000000..d5ebee755da6 --- /dev/null +++ b/pkgs/games/nanosaur/default.nix @@ -0,0 +1,48 @@ +{ lib, stdenv, fetchFromGitHub, SDL2, cmake, makeWrapper }: + +stdenv.mkDerivation rec { + pname = "nanosaur"; + version = "unstable-2021-12-03"; + + src = fetchFromGitHub { + owner = "jorio"; + repo = pname; + rev = "b567a3e6d7fd1cbc43800cfaa1bd82f31c6d9fae"; + sha256 = "sha256-P/o6uSwUV6O8u8XNXN9YyA8XlgEUkqGj3SC+oD2/GKQ="; + fetchSubmodules = true; + }; + + buildInputs = [ + SDL2 + cmake + makeWrapper + ]; + + configurePhase = '' + cmake -S . -B build -DCMAKE_BUILD_TYPE=Release + ''; + + buildPhase = '' + cmake --build build + ''; + + installPhase = '' + mv build $out + makeWrapper $out/Nanosaur $out/bin/Nanosaur --run "cd $out" + ''; + + meta = with lib; { + description = "A port of Nanosaur, a 1998 Macintosh game by Pangea Software, for modern operating systems"; + longDescription = '' + Nanosaur is a 1998 Macintosh game by Pangea Software. + In it, you’re a cybernetic dinosaur from the future who’s sent back in time 20 minutes before a giant asteroid hits the Earth. + And you get to shoot at T-Rexes with nukes. + ''; + homepage = "https://github.com/jorio/Nanosaur"; + license = with licenses; [ + cc-by-sa-40 + ]; + maintainers = with maintainers; [ lux ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 36a2f96455fc..3162a103a64d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -30492,6 +30492,8 @@ with pkgs; naev = callPackage ../games/naev { }; + nanosaur = callPackage ../games/nanosaur { }; + nethack = callPackage ../games/nethack { }; nethack-qt = callPackage ../games/nethack { From d72755142321ef09125eceb65bfe0264adbd901d Mon Sep 17 00:00:00 2001 From: "Andy Chun @noneucat" Date: Mon, 8 Nov 2021 01:29:36 -0800 Subject: [PATCH 05/87] weylus: add pipewire gst plugins to GST_PLUGIN_PATH Weylus was not picking up the PipeWire GStreamer plugins required for PipeWire functionality. This commit adds the appropriate path to GST_PLUGIN_PATH for the binary. --- pkgs/applications/graphics/weylus/default.nix | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/graphics/weylus/default.nix b/pkgs/applications/graphics/weylus/default.nix index 3c408ff5fc81..a06e99fc30a8 100644 --- a/pkgs/applications/graphics/weylus/default.nix +++ b/pkgs/applications/graphics/weylus/default.nix @@ -9,6 +9,8 @@ , copyDesktopItems , fontconfig , libpng +, pipewire +, makeWrapper , autoPatchelfHook }: @@ -38,6 +40,7 @@ stdenv.mkDerivation rec { fontconfig libva gst_all_1.gst-plugins-base + pipewire # autoPatchelfHook complains if these are missing, even on wayland xorg.libXft xorg.libXinerama @@ -47,7 +50,16 @@ stdenv.mkDerivation rec { xorg.libXtst ]; - nativeBuildInputs = [ copyDesktopItems autoPatchelfHook ]; + nativeBuildInputs = [ copyDesktopItems autoPatchelfHook makeWrapper ]; + + postFixup = let + GST_PLUGIN_PATH = lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0" [ + gst_all_1.gst-plugins-base + pipewire + ]; + in '' + wrapProgram $out/bin/weylus --prefix GST_PLUGIN_PATH : ${GST_PLUGIN_PATH} + ''; meta = with lib; { description = "Use your tablet as graphic tablet/touch screen on your computer"; From 45db1b5f38d06607fde4fa006cbc870db2f2ea43 Mon Sep 17 00:00:00 2001 From: "Andy Chun @noneucat" Date: Tue, 30 Nov 2021 13:21:32 -0800 Subject: [PATCH 06/87] weylus: add meta.platforms --- pkgs/applications/graphics/weylus/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/applications/graphics/weylus/default.nix b/pkgs/applications/graphics/weylus/default.nix index a06e99fc30a8..092366652d4f 100644 --- a/pkgs/applications/graphics/weylus/default.nix +++ b/pkgs/applications/graphics/weylus/default.nix @@ -66,5 +66,6 @@ stdenv.mkDerivation rec { homepage = "https://github.com/H-M-H/Weylus"; license = with licenses; [ agpl3Only ]; maintainers = with maintainers; [ lom ]; + platforms = [ "x86_64-linux" ]; }; } From a81a917e67fac37c9e5f0587233d9b814009edc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Sun, 19 Dec 2021 11:07:17 +0000 Subject: [PATCH 07/87] pipewire: fix cross compiling --- .../development/libraries/pipewire/default.nix | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/pkgs/development/libraries/pipewire/default.nix b/pkgs/development/libraries/pipewire/default.nix index 54680152248d..03125f225b85 100644 --- a/pkgs/development/libraries/pipewire/default.nix +++ b/pkgs/development/libraries/pipewire/default.nix @@ -1,5 +1,6 @@ { stdenv , lib +, buildPackages , fetchFromGitLab , removeReferencesTo , python3 @@ -171,12 +172,17 @@ let postInstall = '' mkdir $out/nix-support - pushd $lib/share/pipewire - for f in *.conf; do - echo "Generating JSON from $f" - $out/bin/spa-json-dump "$f" > "$out/nix-support/$f.json" - done - popd + ${if (stdenv.hostPlatform == stdenv.buildPlatform) then '' + pushd $lib/share/pipewire + for f in *.conf; do + echo "Generating JSON from $f" + + $out/bin/spa-json-dump "$f" > "$out/nix-support/$f.json" + done + popd + '' else '' + cp ${buildPackages.pipewire}/nix-support/*.json "$out/nix-support" + ''} moveToOutput "share/systemd/user/pipewire-pulse.*" "$pulse" moveToOutput "lib/systemd/user/pipewire-pulse.*" "$pulse" From 5f6a771d30bde115672b75552f0c2f0d1c80b0a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Sun, 19 Dec 2021 11:07:33 +0000 Subject: [PATCH 08/87] replace: fix cross compilation --- pkgs/tools/text/replace/default.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkgs/tools/text/replace/default.nix b/pkgs/tools/text/replace/default.nix index a0873d1c8d2b..058c2ba3daa5 100644 --- a/pkgs/tools/text/replace/default.nix +++ b/pkgs/tools/text/replace/default.nix @@ -11,7 +11,11 @@ stdenv.mkDerivation rec { outputs = [ "out" "man" ]; - makeFlags = [ "TREE=\$(out)" "MANTREE=\$(TREE)/share/man" ]; + makeFlags = [ + "TREE=\$(out)" + "MANTREE=\$(TREE)/share/man" + "CC=${stdenv.cc.targetPrefix}cc" + ]; preBuild = '' sed -e "s@/bin/mv@$(type -P mv)@" -i replace.h From 2f109b605e4820ff1579e8c7612d48f610d85d17 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Tue, 21 Dec 2021 15:08:01 +0100 Subject: [PATCH 09/87] haskellPackages: stackage-lts 18.18 -> 18.19 This commit has been generated by maintainers/scripts/haskell/update-stackage.sh --- .../configuration-hackage2nix/stackage.yaml | 159 +++++++++--------- 1 file changed, 79 insertions(+), 80 deletions(-) diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml index 9a0d778548c4..1c22787d28a6 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml @@ -1,4 +1,4 @@ -# Stackage LTS 18.18 +# Stackage LTS 18.19 # This file is auto-generated by # maintainers/scripts/haskell/update-stackage.sh default-package-overrides: @@ -33,7 +33,7 @@ default-package-overrides: - aeson-with ==0.1.2.0 - aeson-yak ==0.1.1.3 - aeson-yaml ==1.1.0.1 - - Agda ==2.6.2 + - Agda ==2.6.2.1 - agda2lagda ==0.2021.6.1 - al ==0.1.4.2 - alarmclock ==0.7.0.5 @@ -142,10 +142,10 @@ default-package-overrides: - amqp ==0.22.0 - amqp-utils ==0.6.3.2 - annotated-wl-pprint ==0.7.0 - - ansi-terminal ==0.11 + - ansi-terminal ==0.11.1 - ansi-wl-pprint ==0.6.9 - ANum ==0.2.0.2 - - apecs ==0.9.3 + - apecs ==0.9.4 - apecs-gloss ==0.2.4 - apecs-physics ==0.4.5 - api-field-json-th ==0.1.0.2 @@ -263,7 +263,7 @@ default-package-overrides: - bits ==0.5.3 - bitset-word8 ==0.1.1.2 - bits-extra ==0.0.2.0 - - bitvec ==1.1.1.0 + - bitvec ==1.1.2.0 - bitwise-enum ==1.0.1.0 - blake2 ==0.3.0 - blanks ==0.5.0 @@ -301,10 +301,10 @@ default-package-overrides: - btrfs ==0.2.0.0 - buffer-builder ==0.2.4.7 - buffer-pipe ==0.0 - - bugsnag-haskell ==0.0.4.1 + - bugsnag-haskell ==0.0.4.2 - bugsnag-hs ==0.2.0.7 - bugzilla-redhat ==0.3.3 - - burrito ==1.2.0.3 + - burrito ==1.2.0.4 - butcher ==1.3.3.2 - buttplug-hs-core ==0.1.0.1 - bv ==0.5 @@ -320,7 +320,7 @@ default-package-overrides: - bytestring-conversion ==0.3.1 - bytestring-lexing ==0.5.0.8 - bytestring-mmap ==0.2.2 - - bytestring-strict-builder ==0.4.5.4 + - bytestring-strict-builder ==0.4.5.5 - bytestring-to-vector ==0.3.0.1 - bytestring-tree-builder ==0.2.7.9 - bz2 ==1.0.1.0 @@ -358,7 +358,7 @@ default-package-overrides: - cassava-megaparsec ==2.0.4 - cast ==0.1.0.2 - category ==0.2.5.0 - - cayley-client ==0.4.16 + - cayley-client ==0.4.17 - cborg ==0.2.6.0 - cborg-json ==0.2.3.0 - cdar-mBound ==0.1.0.4 @@ -399,7 +399,7 @@ default-package-overrides: - clash-ghc ==1.4.6 - clash-lib ==1.4.6 - clash-prelude ==1.4.6 - - classy-prelude ==1.5.0 + - classy-prelude ==1.5.0.2 - classy-prelude-conduit ==1.5.0 - clay ==0.13.3 - clientsession ==0.9.1.2 @@ -442,7 +442,7 @@ default-package-overrides: - concise ==0.1.0.1 - concurrency ==1.11.0.2 - concurrent-extra ==0.7.0.12 - - concurrent-output ==1.10.12 + - concurrent-output ==1.10.14 - concurrent-split ==0.0.1.1 - concurrent-supply ==0.1.8 - cond ==0.4.1.1 @@ -455,7 +455,7 @@ default-package-overrides: - conduit-parse ==0.2.1.0 - conduit-zstd ==0.0.2.0 - conferer ==1.1.0.0 - - conferer-aeson ==1.1.0.1 + - conferer-aeson ==1.1.0.2 - conferer-hspec ==1.1.0.0 - conferer-warp ==1.1.0.0 - config-ini ==0.2.4.0 @@ -490,7 +490,7 @@ default-package-overrides: - crackNum ==3.1 - crc32c ==0.0.0 - credential-store ==0.1.2 - - criterion ==1.5.11.0 + - criterion ==1.5.12.0 - criterion-measurement ==0.1.3.0 - cron ==0.7.0 - crypto-api ==0.13.3 @@ -523,8 +523,8 @@ default-package-overrides: - curl ==1.3.8 - currencies ==0.2.0.0 - currency ==0.2.0.0 - - cursor ==0.3.0.0 - - cursor-brick ==0.1.0.0 + - cursor ==0.3.2.0 + - cursor-brick ==0.1.0.1 - cursor-fuzzy-time ==0.0.0.0 - cursor-gen ==0.3.0.0 - cutter ==0.0 @@ -548,7 +548,7 @@ default-package-overrides: - data-default-instances-old-locale ==0.0.1 - data-diverse ==4.7.0.0 - datadog ==0.2.5.0 - - data-dword ==0.3.2 + - data-dword ==0.3.2.1 - data-endian ==0.1.1 - data-fix ==0.3.2 - data-forest ==0.1.0.9 @@ -584,7 +584,7 @@ default-package-overrides: - dense-linear-algebra ==0.1.0.0 - dependent-map ==0.4.0.0 - dependent-sum ==0.7.1.0 - - dependent-sum-template ==0.1.0.3 + - dependent-sum-template ==0.1.1.1 - depq ==0.4.2 - deque ==0.4.4 - deriveJsonNoPrefix ==0.1.0.1 @@ -595,7 +595,7 @@ default-package-overrides: - dhall ==1.39.0 - dhall-bash ==1.0.37 - dhall-json ==1.7.7 - - dhall-lsp-server ==1.0.16 + - dhall-lsp-server ==1.0.17 - dhall-yaml ==1.2.7 - diagrams-solve ==0.1.3 - dialogflow-fulfillment ==0.1.1.4 @@ -614,7 +614,6 @@ default-package-overrides: - distributed-closure ==0.4.2.0 - distribution-opensuse ==1.1.1 - distributive ==0.6.2.1 - - dl-fedora ==0.9.2 - dlist ==1.0 - dlist-instances ==0.1.1.1 - dlist-nonempty ==0.1.1 @@ -658,7 +657,7 @@ default-package-overrides: - edit-distance ==0.2.2.1 - edit-distance-vector ==1.0.0.4 - editor-open ==0.6.0.0 - - egison ==4.1.2 + - egison ==4.1.3 - egison-pattern-src ==0.2.1.2 - egison-pattern-src-th-mode ==0.2.1.2 - either ==5.0.1.1 @@ -721,7 +720,7 @@ default-package-overrides: - exception-hierarchy ==0.1.0.4 - exception-mtl ==0.4.0.1 - exceptions ==0.10.4 - - exception-transformers ==0.4.0.10 + - exception-transformers ==0.4.0.11 - exception-via ==0.1.0.0 - executable-path ==0.0.3.1 - exit-codes ==1.0.0 @@ -760,7 +759,7 @@ default-package-overrides: - file-embed-lzma ==0 - filelock ==0.1.1.5 - filemanip ==0.3.6.3 - - filepath-bytestring ==1.4.2.1.8 + - filepath-bytestring ==1.4.2.1.9 - file-path-th ==0.1.0.0 - filepattern ==0.1.2 - fileplow ==0.1.0.0 @@ -785,7 +784,7 @@ default-package-overrides: - flexible-defaults ==0.0.3 - FloatingHex ==0.5 - floatshow ==0.2.4 - - flow ==1.0.22 + - flow ==1.0.23 - flush-queue ==1.0.0 - fmlist ==0.9.4 - fmt ==0.6.3.0 @@ -886,7 +885,7 @@ default-package-overrides: - ghc-byteorder ==4.11.0.0.10 - ghc-check ==0.5.0.6 - ghc-core ==0.5.6 - - ghc-events ==0.17.0 + - ghc-events ==0.17.0.1 - ghc-exactprint ==0.6.4 - ghcid ==0.8.7 - ghci-hexcalc ==0.1.1.0 @@ -900,11 +899,11 @@ default-package-overrides: - ghc-source-gen ==0.4.2.0 - ghc-syntax-highlighter ==0.0.6.0 - ghc-tcplugins-extra ==0.4.2 - - ghc-trace-events ==0.1.2.3 + - ghc-trace-events ==0.1.2.4 - ghc-typelits-extra ==0.4.3 - ghc-typelits-knownnat ==0.7.6 - ghc-typelits-natnormalise ==0.7.6 - - ghc-typelits-presburger ==0.6.1.0 + - ghc-typelits-presburger ==0.6.2.0 - ghost-buster ==0.1.1.0 - gi-atk ==2.0.23 - gi-cairo ==1.0.25 @@ -919,7 +918,7 @@ default-package-overrides: - gi-gobject ==2.0.26 - gi-graphene ==1.0.3 - gi-gtk ==3.0.37 - - gi-gtk-hs ==0.3.11 + - gi-gtk-hs ==0.3.12 - gi-harfbuzz ==0.0.4 - ginger ==0.10.1.0 - gingersnap ==0.3.1.0 @@ -945,7 +944,7 @@ default-package-overrides: - goldplate ==0.2.0 - google-isbn ==1.0.3 - gopher-proxy ==0.1.1.2 - - gothic ==0.1.7 + - gothic ==0.1.8 - gpolyline ==0.1.0.1 - graph-core ==0.3.0.0 - graphite ==0.10.0.1 @@ -1011,7 +1010,7 @@ default-package-overrides: - hasql-transaction ==1.0.1 - hasty-hamiltonian ==1.3.4 - HaTeX ==3.22.3.0 - - HaXml ==1.25.7 + - HaXml ==1.25.8 - haxr ==3000.11.4.1 - HCodecs ==0.5.2 - hdaemonize ==0.5.6 @@ -1046,7 +1045,7 @@ default-package-overrides: - highlighting-kate ==0.6.4 - hinfo ==0.0.3.0 - hinotify ==0.4.1 - - hint ==0.9.0.4 + - hint ==0.9.0.5 - hjsmin ==0.2.0.4 - hkd-default ==1.1.0.0 - hkgr ==0.3 @@ -1072,7 +1071,7 @@ default-package-overrides: - hnock ==0.4.0 - hoauth2 ==1.16.0 - hoogle ==5.0.18.2 - - hOpenPGP ==2.9.5 + - hOpenPGP ==2.9.7 - hopenpgp-tools ==0.23.6 - hopenssl ==2.2.4 - hopfli ==0.2.2.1 @@ -1082,7 +1081,7 @@ default-package-overrides: - hourglass ==0.2.12 - hourglass-orphans ==0.1.0.0 - hp2pretty ==0.10 - - hpack ==0.34.5 + - hpack ==0.34.6 - hpack-dhall ==0.5.3 - hpc-codecov ==0.3.0.0 - hpc-lcov ==1.0.1 @@ -1158,12 +1157,12 @@ default-package-overrides: - http-common ==0.8.3.4 - http-conduit ==2.3.8 - http-date ==0.0.11 - - http-directory ==0.1.8 + - http-directory ==0.1.9 - http-download ==0.2.0.0 - httpd-shed ==0.4.1.1 - http-link-header ==1.2.1 - http-media ==0.8.0.0 - - http-query ==0.1.0.1 + - http-query ==0.1.1 - http-reverse-proxy ==0.6.0 - http-streams ==0.8.9.4 - http-types ==0.12.3 @@ -1214,7 +1213,7 @@ default-package-overrides: - ieee754 ==0.8.0 - if ==0.1.0.0 - iff ==0.0.6 - - ihaskell ==0.10.2.1 + - ihaskell ==0.10.2.2 - ihs ==0.1.0.3 - ilist ==0.4.0.1 - imagesize-conduit ==1.1 @@ -1233,7 +1232,7 @@ default-package-overrides: - indexed-traversable-instances ==0.1 - infer-license ==0.2.0 - inflections ==0.4.0.6 - - influxdb ==1.9.2.1 + - influxdb ==1.9.2.2 - ini ==0.4.1 - inj ==1.0 - inline-c ==0.9.1.5 @@ -1246,7 +1245,7 @@ default-package-overrides: - instance-control ==0.1.2.0 - int-cast ==0.2.0.0 - integer-logarithms ==1.0.3.1 - - integer-roots ==1.0.1.0 + - integer-roots ==1.0.2.0 - integration ==0.2.1 - intern ==0.9.4 - interpolate ==0.2.1 @@ -1272,7 +1271,7 @@ default-package-overrides: - iproute ==1.7.12 - IPv6Addr ==2.0.3 - ipynb ==0.1.0.2 - - ipython-kernel ==0.10.2.1 + - ipython-kernel ==0.10.2.2 - irc ==0.6.1.0 - irc-client ==1.1.2.2 - irc-conduit ==0.3.0.5 @@ -1310,11 +1309,11 @@ default-package-overrides: - JuicyPixels-scale-dct ==0.1.2 - junit-xml ==0.1.0.2 - justified-containers ==0.3.0.0 - - jwt ==0.10.0 + - jwt ==0.10.1 - kan-extensions ==5.2.3 - kanji ==3.4.1 - katip ==0.8.7.0 - - katip-logstash ==0.1.0.0 + - katip-logstash ==0.1.0.2 - kawhi ==0.3.0 - kazura-queue ==0.1.0.4 - kdt ==0.2.4 @@ -1345,7 +1344,7 @@ default-package-overrides: - language-javascript ==0.7.1.0 - language-protobuf ==1.0.1 - language-python ==0.5.8 - - language-thrift ==0.12.0.0 + - language-thrift ==0.12.0.1 - lapack ==0.3.2 - lapack-carray ==0.0.3 - lapack-comfort-array ==0.0.1 @@ -1378,7 +1377,7 @@ default-package-overrides: - lens-regex-pcre ==1.1.0.0 - lenz ==0.4.2.0 - leveldb-haskell ==0.6.5 - - libBF ==0.6.2 + - libBF ==0.6.3 - libffi ==0.1 - libgit ==0.3.1 - libgraph ==1.14 @@ -1404,7 +1403,7 @@ default-package-overrides: - list-predicate ==0.1.0.1 - listsafe ==0.1.0.1 - list-singleton ==1.0.0.5 - - list-t ==1.0.5 + - list-t ==1.0.5.1 - list-transformer ==1.0.7 - ListTree ==0.2.3 - literatex ==0.1.0.2 @@ -1423,7 +1422,7 @@ default-package-overrides: - logging-facade ==0.3.1 - logging-facade-syslog ==1 - logict ==0.7.1.0 - - logstash ==0.1.0.1 + - logstash ==0.1.0.3 - loop ==0.3.0 - lrucache ==1.2.0.1 - lrucaching ==0.3.3 @@ -1445,7 +1444,7 @@ default-package-overrides: - mainland-pretty ==0.7.1 - main-tester ==0.2.0.1 - makefile ==1.1.0.0 - - managed ==1.0.8 + - managed ==1.0.9 - MapWith ==0.2.0.0 - markdown ==0.1.17.5 - markdown-unlit ==0.5.1 @@ -1582,7 +1581,7 @@ default-package-overrides: - murmur3 ==1.0.5 - murmur-hash ==0.1.0.10 - MusicBrainz ==0.4.1 - - mustache ==2.3.1 + - mustache ==2.3.2 - mutable-containers ==0.3.4 - mwc-probability ==2.3.1 - mwc-random ==0.15.0.2 @@ -1664,7 +1663,7 @@ default-package-overrides: - ObjectName ==1.1.0.2 - o-clock ==1.2.1 - odbc ==0.2.5 - - oeis2 ==1.0.5 + - oeis2 ==1.0.6 - ofx ==0.4.4.0 - old-locale ==1.0.0.7 - old-time ==1.1.0.3 @@ -1779,7 +1778,7 @@ default-package-overrides: - pipes-attoparsec ==0.5.1.5 - pipes-binary ==0.4.3 - pipes-bytestring ==2.1.7 - - pipes-concurrency ==2.0.12 + - pipes-concurrency ==2.0.14 - pipes-csv ==1.4.3 - pipes-extras ==1.0.15 - pipes-fastx ==0.3.0.0 @@ -1823,7 +1822,7 @@ default-package-overrides: - postgrest ==7.0.1 - post-mess-age ==0.2.1.0 - pptable ==0.3.0.0 - - pqueue ==1.4.1.3 + - pqueue ==1.4.1.4 - prairie ==0.0.1.0 - prefix-units ==0.2.0 - prelude-compat ==0.0.0.2 @@ -1854,7 +1853,7 @@ default-package-overrides: - probability ==0.2.7 - process-extras ==0.7.4 - product-isomorphic ==0.0.3.3 - - product-profunctors ==0.11.0.2 + - product-profunctors ==0.11.0.3 - profiterole ==0.1 - profunctors ==5.6.2 - projectroot ==0.2.0.1 @@ -1876,7 +1875,7 @@ default-package-overrides: - protolude ==0.3.0 - proxied ==0.3.1 - psqueues ==0.2.7.3 - - ptr-poker ==0.1.1.4 + - ptr-poker ==0.1.2.3 - publicsuffix ==0.20200526 - pulse-simple ==0.1.14 - pureMD5 ==2.1.4 @@ -1945,7 +1944,7 @@ default-package-overrides: - read-env-var ==1.0.0.0 - reanimate ==1.1.4.0 - reanimate-svg ==0.13.0.1 - - rebase ==1.13.1 + - rebase ==1.13.2 - record-dot-preprocessor ==0.2.13 - record-hasfield ==1.0 - records-sop ==0.1.1.0 @@ -1961,8 +1960,8 @@ default-package-overrides: - reform-hamlet ==0.0.5.3 - reform-happstack ==0.2.5.4 - RefSerialize ==0.4.0 - - ref-tf ==0.5 - - regex ==1.1.0.0 + - ref-tf ==0.5.0.1 + - regex ==1.1.0.1 - regex-applicative ==0.3.4 - regex-applicative-text ==0.1.0.1 - regex-base ==0.94.0.2 @@ -1973,15 +1972,15 @@ default-package-overrides: - regex-posix ==0.96.0.1 - regex-posix-clib ==2.7 - regex-tdfa ==1.3.1.1 - - regex-with-pcre ==1.1.0.0 - - registry ==0.2.0.3 + - regex-with-pcre ==1.1.0.1 + - registry ==0.2.1.0 - reinterpret-cast ==0.1.0 - relapse ==1.0.0.0 - relational-query ==0.12.3.0 - relational-query-HDBC ==0.7.2.0 - relational-record ==0.2.2.0 - relational-schemas ==0.1.8.0 - - reliable-io ==0.0.1 + - reliable-io ==0.0.2 - relude ==0.7.0.0 - renderable ==0.2.0.1 - replace-attoparsec ==1.4.5.0 @@ -1989,7 +1988,7 @@ default-package-overrides: - repline ==0.4.0.0 - req ==3.9.0 - req-conduit ==1.0.1 - - rerebase ==1.13.1 + - rerebase ==1.13.2 - rescue ==0.4.2.1 - resistor-cube ==0.0.1.2 - resolv ==0.1.2.0 @@ -2030,7 +2029,7 @@ default-package-overrides: - safe-exceptions ==0.1.7.2 - safe-foldable ==0.1.0.0 - safeio ==0.0.5.0 - - safe-json ==1.1.1.1 + - safe-json ==1.1.2.0 - safe-money ==0.9.1 - SafeSemaphore ==0.10.1 - safe-tensor ==0.2.1.1 @@ -2107,7 +2106,7 @@ default-package-overrides: - servant-machines ==0.15.1 - servant-multipart ==0.12.1 - servant-multipart-api ==0.12.1 - - servant-openapi3 ==2.0.1.2 + - servant-openapi3 ==2.0.1.3 - servant-pipes ==0.15.3 - servant-rawm ==1.0.0.0 - servant-server ==0.18.3 @@ -2195,7 +2194,7 @@ default-package-overrides: - sourcemap ==0.1.6.1 - sox ==0.2.3.1 - soxlib ==0.0.3.1 - - spacecookie ==1.0.0.0 + - spacecookie ==1.0.0.1 - sparse-linear-algebra ==0.3.1 - sparse-tensor ==0.2.1.5 - spatial-math ==0.5.0.1 @@ -2237,7 +2236,7 @@ default-package-overrides: - stm-split ==0.0.2.1 - stopwatch ==0.1.0.6 - storable-complex ==0.2.3.0 - - storable-endian ==0.2.6 + - storable-endian ==0.2.6.1 - storable-record ==0.0.5 - storable-tuple ==0.0.3.3 - storablevector ==0.2.13.1 @@ -2249,7 +2248,7 @@ default-package-overrides: - streaming ==0.2.3.0 - streaming-attoparsec ==1.0.0.1 - streaming-bytestring ==0.2.1 - - streaming-commons ==0.2.2.2 + - streaming-commons ==0.2.2.3 - streamly ==0.7.3 - streams ==3.3 - streamt ==0.5.0.0 @@ -2314,7 +2313,7 @@ default-package-overrides: - tar ==0.5.1.1 - tar-conduit ==0.3.2 - tardis ==0.4.3.0 - - tasty ==1.4.2 + - tasty ==1.4.2.1 - tasty-ant-xml ==1.1.8 - tasty-bench ==0.2.5 - tasty-dejafu ==2.0.0.8 @@ -2331,7 +2330,7 @@ default-package-overrides: - tasty-leancheck ==0.0.2 - tasty-lua ==0.2.3.2 - tasty-program ==1.0.5 - - tasty-quickcheck ==0.10.1.2 + - tasty-quickcheck ==0.10.2 - tasty-rerun ==1.1.18 - tasty-silver ==3.2.3 - tasty-smallcheck ==0.8.2 @@ -2358,7 +2357,7 @@ default-package-overrides: - test-framework-smallcheck ==0.2 - test-fun ==0.1.0.0 - testing-type-modifiers ==0.1.0.1 - - texmath ==0.12.3.2 + - texmath ==0.12.3.3 - text-ansi ==0.1.1 - text-binary ==0.2.1.1 - text-builder ==0.6.6.3 @@ -2394,7 +2393,7 @@ default-package-overrides: - th-expand-syns ==0.4.8.0 - th-extras ==0.0.0.5 - th-lift ==0.8.2 - - th-lift-instances ==0.1.18 + - th-lift-instances ==0.1.19 - th-nowq ==0.1.0.5 - th-orphans ==0.13.12 - th-printf ==0.7 @@ -2430,7 +2429,7 @@ default-package-overrides: - tinylog ==0.15.0 - titlecase ==1.0.1 - tldr ==0.9.2 - - tls ==1.5.5 + - tls ==1.5.6 - tls-debug ==0.4.8 - tls-session-manager ==0.0.4 - tlynx ==0.5.1.1 @@ -2465,7 +2464,7 @@ default-package-overrides: - turtle ==1.5.23 - typecheck-plugin-nat-simple ==0.1.0.2 - TypeCompose ==0.9.14 - - typed-process ==0.2.7.0 + - typed-process ==0.2.8.0 - typed-uuid ==0.1.0.0 - type-equality ==1 - type-errors ==0.2.0.0 @@ -2477,7 +2476,7 @@ default-package-overrides: - type-level-numbers ==0.1.1.1 - typelits-witnesses ==0.4.0.0 - type-map ==0.1.6.0 - - type-natural ==1.1.0.0 + - type-natural ==1.1.0.1 - typenums ==0.1.4 - type-of-html ==1.6.2.0 - type-of-html-static ==0.1.0.2 @@ -2487,7 +2486,7 @@ default-package-overrides: - tzdata ==0.2.20201021.0 - ua-parser ==0.7.6.0 - uglymemo ==0.1.0.1 - - unagi-chan ==0.4.1.3 + - unagi-chan ==0.4.1.4 - unbounded-delays ==0.1.1.1 - unboxed-ref ==0.4.0.0 - unboxing-vector ==0.2.0.0 @@ -2528,7 +2527,7 @@ default-package-overrides: - unliftio-pool ==0.2.1.1 - unliftio-streams ==0.1.1.1 - unlit ==0.4.0.0 - - unordered-containers ==0.2.15.0 + - unordered-containers ==0.2.16.0 - unsafe ==0.0 - urbit-hob ==0.3.3 - uri-bytestring ==0.3.3.1 @@ -2553,7 +2552,7 @@ default-package-overrides: - validity-persistent ==0.0.0.0 - validity-primitive ==0.0.0.1 - validity-scientific ==0.2.0.3 - - validity-text ==0.3.1.1 + - validity-text ==0.3.1.2 - validity-time ==0.4.0.0 - validity-unordered-containers ==0.2.0.3 - validity-uuid ==0.1.0.3 @@ -2577,7 +2576,7 @@ default-package-overrides: - vector-split ==1.0.0.2 - vector-th-unbox ==0.2.2 - verbosity ==0.4.0.0 - - versions ==5.0.0 + - versions ==5.0.1 - vformat ==0.14.1.0 - vformat-aeson ==0.1.0.1 - vformat-time ==0.1.0.0 @@ -2594,7 +2593,7 @@ default-package-overrides: - wai-extra ==3.1.7 - wai-feature-flags ==0.1.0.2 - wai-handler-launch ==3.0.3.1 - - wai-logger ==2.3.6 + - wai-logger ==2.3.7 - wai-middleware-auth ==0.2.5.1 - wai-middleware-caching ==0.1.0.2 - wai-middleware-clacks ==0.1.0.1 @@ -2624,12 +2623,12 @@ default-package-overrides: - weigh ==0.0.16 - wide-word ==0.1.1.2 - wikicfp-scraper ==0.1.0.12 - - wild-bind ==0.1.2.7 - - wild-bind-x11 ==0.2.0.13 + - wild-bind ==0.1.2.8 + - wild-bind-x11 ==0.2.0.14 - Win32 ==2.6.2.1 - Win32-notify ==0.3.0.3 - windns ==0.1.0.1 - - witch ==0.3.4.0 + - witch ==0.3.4.1 - witherable ==0.4.2 - within ==0.2.0.1 - with-location ==0.1.0 @@ -2650,9 +2649,9 @@ default-package-overrides: - writer-cps-mtl ==0.1.1.6 - writer-cps-transformers ==0.5.6.1 - wss-client ==0.3.0.0 - - wuss ==1.1.18 + - wuss ==1.1.19 - X11 ==1.10.2 - - X11-xft ==0.3.1 + - X11-xft ==0.3.4 - x11-xim ==0.0.9.0 - x509 ==1.7.5 - x509-store ==1.6.7 From a845bdf341cf8b767c51445da522a99f048f46f7 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Tue, 21 Dec 2021 15:08:21 +0100 Subject: [PATCH 10/87] all-cabal-hashes: 2021-12-09T20:50:23Z -> 2021-12-21T13:58:08Z This commit has been generated by maintainers/scripts/haskell/update-hackage.sh --- pkgs/data/misc/hackage/pin.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/data/misc/hackage/pin.json b/pkgs/data/misc/hackage/pin.json index b5d5b4f42902..c6226691d75f 100644 --- a/pkgs/data/misc/hackage/pin.json +++ b/pkgs/data/misc/hackage/pin.json @@ -1,6 +1,6 @@ { - "commit": "45e72928a9053df2938492a535a1b4351251d82f", - "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/45e72928a9053df2938492a535a1b4351251d82f.tar.gz", - "sha256": "1a87yf9bly5ayldgrkakyipxfkk7h9ifqb4dpd8l1f9zb1csdg1x", - "msg": "Update from Hackage at 2021-12-09T20:50:23Z" + "commit": "01a23b49c333c95167338433cd375e24fc60d66d", + "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/01a23b49c333c95167338433cd375e24fc60d66d.tar.gz", + "sha256": "0mf1pqlg5cj0p0si1vgf5mp5an89yhq0il6v7n58smcqbfdynds5", + "msg": "Update from Hackage at 2021-12-21T13:58:08Z" } From 183bfc25eaefe66b9387e891316f73be42c3be0d Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Tue, 21 Dec 2021 15:09:37 +0100 Subject: [PATCH 11/87] haskellPackages: regenerate package set based on current config This commit has been generated by maintainers/scripts/haskell/regenerate-hackage-packages.sh --- .../haskell-modules/hackage-packages.nix | 2910 +++++++---------- 1 file changed, 1098 insertions(+), 1812 deletions(-) diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix index 54c21370d927..6aa73457c2ed 100644 --- a/pkgs/development/haskell-modules/hackage-packages.nix +++ b/pkgs/development/haskell-modules/hackage-packages.nix @@ -798,41 +798,6 @@ self: { }) {}; "Agda" = callPackage - ({ mkDerivation, aeson, alex, array, async, base, binary - , blaze-html, boxes, bytestring, Cabal, case-insensitive - , containers, data-hash, deepseq, directory, edit-distance, emacs - , equivalence, exceptions, filepath, ghc-compact, gitrev, happy - , hashable, hashtables, haskeline, monad-control, mtl, murmur-hash - , parallel, pretty, process, regex-tdfa, split, stm, strict - , template-haskell, text, time, transformers, unordered-containers - , uri-encode, zlib - }: - mkDerivation { - pname = "Agda"; - version = "2.6.2"; - sha256 = "159hznnsxg7hlp80r1wqizyd7gwgnq0j13cm4d27cns0ganslb07"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - setupHaskellDepends = [ base Cabal directory filepath process ]; - libraryHaskellDepends = [ - aeson array async base binary blaze-html boxes bytestring - case-insensitive containers data-hash deepseq directory - edit-distance equivalence exceptions filepath ghc-compact gitrev - hashable hashtables haskeline monad-control mtl murmur-hash - parallel pretty process regex-tdfa split stm strict - template-haskell text time transformers unordered-containers - uri-encode zlib - ]; - libraryToolDepends = [ alex happy ]; - executableHaskellDepends = [ base directory filepath process ]; - executableToolDepends = [ emacs ]; - description = "A dependently typed functional programming language and proof assistant"; - license = "unknown"; - maintainers = with lib.maintainers; [ abbradar turion ]; - }) {inherit (pkgs) emacs;}; - - "Agda_2_6_2_1" = callPackage ({ mkDerivation, aeson, alex, array, async, base, binary , blaze-html, boxes, bytestring, Cabal, case-insensitive , containers, data-hash, deepseq, directory, edit-distance, emacs @@ -864,7 +829,6 @@ self: { executableToolDepends = [ emacs ]; description = "A dependently typed functional programming language and proof assistant"; license = "unknown"; - hydraPlatforms = lib.platforms.none; maintainers = with lib.maintainers; [ abbradar turion ]; }) {inherit (pkgs) emacs;}; @@ -1013,6 +977,37 @@ self: { ]; }) {}; + "Allure_0_11_0_0" = callPackage + ({ mkDerivation, async, base, enummapset, file-embed, filepath + , ghc-compact, hsini, LambdaHack, optparse-applicative, primitive + , splitmix, tasty, tasty-hunit, template-haskell, text + , th-lift-instances, transformers + }: + mkDerivation { + pname = "Allure"; + version = "0.11.0.0"; + sha256 = "1mmnn86azcpig1j61mwks2z227sw70lc7hsmi342hprabrccq9b1"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + async base enummapset file-embed filepath ghc-compact hsini + LambdaHack optparse-applicative primitive splitmix template-haskell + text th-lift-instances transformers + ]; + executableHaskellDepends = [ + async base filepath LambdaHack optparse-applicative + ]; + testHaskellDepends = [ + base LambdaHack optparse-applicative tasty tasty-hunit text + ]; + description = "Near-future Sci-Fi roguelike and tactical squad combat game"; + license = lib.licenses.agpl3Plus; + platforms = [ + "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux" + ]; + hydraPlatforms = lib.platforms.none; + }) {}; + "AndroidViewHierarchyImporter" = callPackage ({ mkDerivation, base, bytestring, cmdtheline, containers, mtl , network, opml, pretty, process, QuickCheck, split, transformers @@ -8863,8 +8858,8 @@ self: { }: mkDerivation { pname = "HMock"; - version = "0.5.0.0"; - sha256 = "0ib5cqwqqpyc58vg5h57410pq8ycr0y3ayck1pc6vq958m879v0r"; + version = "0.5.1.0"; + sha256 = "1nbdgndk5bmd45wabfnndzmava9d8cf24li0w1093yl6099gmwas"; libraryHaskellDepends = [ base constraints containers data-default exceptions explainable-predicates extra monad-control mtl stm syb @@ -9792,24 +9787,6 @@ self: { }) {}; "HaXml" = callPackage - ({ mkDerivation, base, bytestring, containers, directory, filepath - , polyparse, pretty, random - }: - mkDerivation { - pname = "HaXml"; - version = "1.25.7"; - sha256 = "111cmrviw8d4cywyka4l0ni5ldi7y6m1nl8fcyjxh54b859c3bsn"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base bytestring containers filepath polyparse pretty random - ]; - executableHaskellDepends = [ base directory polyparse pretty ]; - description = "Utilities for manipulating XML documents"; - license = "LGPL"; - }) {}; - - "HaXml_1_25_8" = callPackage ({ mkDerivation, base, bytestring, containers, directory, filepath , polyparse, pretty, random }: @@ -9825,7 +9802,6 @@ self: { executableHaskellDepends = [ base directory polyparse pretty ]; description = "Utilities for manipulating XML documents"; license = lib.licenses.lgpl21Only; - hydraPlatforms = lib.platforms.none; }) {}; "Hach" = callPackage @@ -12424,6 +12400,46 @@ self: { ]; }) {}; + "LambdaHack_0_11_0_0" = callPackage + ({ mkDerivation, ansi-terminal, assert-failure, async, base + , base-compat, binary, bytestring, containers, deepseq, directory + , enummapset, file-embed, filepath, ghc-compact, hashable, hsini + , keys, miniutter, open-browser, optparse-applicative, pretty-show + , primitive, QuickCheck, sdl2, sdl2-ttf, splitmix, stm, tasty + , tasty-hunit, tasty-quickcheck, template-haskell, text + , th-lift-instances, time, transformers, unordered-containers + , vector, vector-binary-instances, witch, zlib + }: + mkDerivation { + pname = "LambdaHack"; + version = "0.11.0.0"; + sha256 = "19dmcbx0clzmblk3kh367dx3bbvmargjq1zkjhy2i1ixfpfcs9jm"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + ansi-terminal assert-failure async base base-compat binary + bytestring containers deepseq directory enummapset file-embed + filepath ghc-compact hashable hsini keys miniutter open-browser + optparse-applicative pretty-show primitive QuickCheck sdl2 sdl2-ttf + splitmix stm template-haskell text th-lift-instances time + transformers unordered-containers vector vector-binary-instances + witch zlib + ]; + executableHaskellDepends = [ + async base filepath optparse-applicative + ]; + testHaskellDepends = [ + base containers enummapset optparse-applicative splitmix tasty + tasty-hunit tasty-quickcheck text transformers vector + ]; + description = "A game engine library for tactical squad ASCII roguelike dungeon crawlers"; + license = lib.licenses.bsd3; + platforms = [ + "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux" + ]; + hydraPlatforms = lib.platforms.none; + }) {}; + "LambdaINet" = callPackage ({ mkDerivation, base, containers, GLFW, GLFW-task, monad-task, mtl , OpenGL, transformers, vector @@ -12635,6 +12651,17 @@ self: { broken = true; }) {}; + "LetsBeRational" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "LetsBeRational"; + version = "1.0.0.0"; + sha256 = "1rj5n931370nxrnqj1728p38mcqbpswmxc73c5g1mlh66k0gqqk4"; + libraryHaskellDepends = [ base ]; + description = "European option implied vol calculation"; + license = lib.licenses.mit; + }) {}; + "Level0" = callPackage ({ mkDerivation, base, directory, random, SDL, SDL-ttf }: mkDerivation { @@ -14998,6 +15025,8 @@ self: { pname = "OddWord"; version = "1.0.2.0"; sha256 = "14hd7dd3dyfd9cs9kgxjippi2awpambn2ia7s3kxcvinnfbigj3r"; + revision = "1"; + editedCabalFile = "0sam69p0j3a61cp3z19gla2bwbq3qyqda3xm5jx3k5skvsr4cz0x"; libraryHaskellDepends = [ base ]; testHaskellDepends = [ base hspec QuickCheck ]; benchmarkHaskellDepends = [ base criterion ]; @@ -16444,15 +16473,15 @@ self: { license = lib.licenses.bsd3; }) {}; - "PyF_0_10_1_0" = callPackage + "PyF_0_10_2_0" = callPackage ({ mkDerivation, base, bytestring, deepseq, filepath, ghc, ghc-boot , hspec, HUnit, mtl, parsec, process, template-haskell, temporary , text, time }: mkDerivation { pname = "PyF"; - version = "0.10.1.0"; - sha256 = "00r2anf2401dvj0ykpr8i1pg9bxaq65wz583kgl1bq2xwqp0n072"; + version = "0.10.2.0"; + sha256 = "0a1bq7c3vx6yp7745xr2vlxjsqgqa0s1f7yzqnfsybqwff03zbcw"; libraryHaskellDepends = [ base bytestring ghc ghc-boot mtl parsec template-haskell text time ]; @@ -21747,25 +21776,12 @@ self: { ({ mkDerivation, base, libXft, utf8-string, X11 }: mkDerivation { pname = "X11-xft"; - version = "0.3.1"; - sha256 = "1lgqb0s2qfwwgbvwxhjbi23rbwamzdi0l0slfr20c3jpcbp3zfjf"; - libraryHaskellDepends = [ base utf8-string X11 ]; - libraryPkgconfigDepends = [ libXft ]; - description = "Bindings to the Xft, X Free Type interface library, and some Xrender parts"; - license = "LGPL"; - }) {inherit (pkgs.xorg) libXft;}; - - "X11-xft_0_3_3" = callPackage - ({ mkDerivation, base, libXft, utf8-string, X11 }: - mkDerivation { - pname = "X11-xft"; - version = "0.3.3"; - sha256 = "08m6rm27d33axh695dhqwirkzhcdn32dimb5sqkqnwkds8pagjc8"; + version = "0.3.4"; + sha256 = "05m988r45jiqpxqsw3vafz158whlwfcl7v8z9nnqnqz9mggd4032"; libraryHaskellDepends = [ base utf8-string X11 ]; libraryPkgconfigDepends = [ libXft ]; description = "Bindings to the Xft and some Xrender parts"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {inherit (pkgs.xorg) libXft;}; "X11-xshape" = callPackage @@ -24285,8 +24301,8 @@ self: { }: mkDerivation { pname = "adblock2privoxy"; - version = "2.0.2"; - sha256 = "0klw0rbxp5g240igrv10808inqmlh3wr3d46zphy5xjxjih07yf3"; + version = "2.1.0"; + sha256 = "0w4yhpsl92wbijfkm37y3wl17vpsrf50mrgcllvd77ycak5w4nhw"; isLibrary = false; isExecutable = true; enableSeparateDataOutput = true; @@ -24616,8 +24632,8 @@ self: { pname = "aeson"; version = "1.5.6.0"; sha256 = "1s5z4bgb5150h6a4cjf5vh8dmyrn6ilh29gh05999v6jwd5w6q83"; - revision = "4"; - editedCabalFile = "1sgn62rdcfxcc9axiaixw2g2zr5zy4prm9zcpd6fngmvjfqagqln"; + revision = "5"; + editedCabalFile = "01mbxj0cqbf20pwgx2021r79xwp8r3sjpvhxlpay5lk0s9pvn0sh"; libraryHaskellDepends = [ attoparsec base base-compat-batteries bytestring containers data-fix deepseq dlist ghc-prim hashable primitive scientific @@ -24651,6 +24667,8 @@ self: { pname = "aeson"; version = "2.0.2.0"; sha256 = "0dw041ha28r55ss5hjv6gc3rc5ins4a4vw36w6hd6mdbgzfmbjnm"; + revision = "1"; + editedCabalFile = "0xhchqq056fmdz01w73zdq1hhwc1inl0zklp211mbxyncabz6hdv"; libraryHaskellDepends = [ attoparsec base base-compat-batteries bytestring containers data-fix deepseq dlist ghc-prim hashable indexed-traversable @@ -25582,8 +25600,8 @@ self: { }: mkDerivation { pname = "aeson-value-parser"; - version = "0.19.5"; - sha256 = "0jigygl5vmprs8ngjiz2sz9xyqn7x6nqdljgazy0x1hhs33mdskp"; + version = "0.19.6"; + sha256 = "0nx0f46vrx94i6jnzh063fxjfwjm1snb9p41q18rlsj5hwgva0xs"; libraryHaskellDepends = [ aeson attoparsec base bytestring hashable megaparsec mtl scientific text transformers unordered-containers vector @@ -26702,6 +26720,28 @@ self: { license = lib.licenses.mit; }) {}; + "algebraic-graphs_0_6" = callPackage + ({ mkDerivation, array, base, containers, deepseq, extra + , inspection-testing, mtl, QuickCheck, transformers + }: + mkDerivation { + pname = "algebraic-graphs"; + version = "0.6"; + sha256 = "1d3gwyimrzcc7i2qj3iimab3wz6vicgwybhq7ac3da86b8pjlgim"; + revision = "1"; + editedCabalFile = "0f7ih4d0jls7399slxc3zkg38z32jm80jv74iyy42l8s6m5ya1cv"; + libraryHaskellDepends = [ + array base containers deepseq mtl transformers + ]; + testHaskellDepends = [ + array base containers deepseq extra inspection-testing mtl + QuickCheck transformers + ]; + description = "A library for algebraic graph construction and transformation"; + license = lib.licenses.mit; + hydraPlatforms = lib.platforms.none; + }) {}; + "algebraic-graphs-io" = callPackage ({ mkDerivation, algebraic-graphs, attoparsec, base, binary , binary-conduit, bytestring, conduit, conduit-extra, containers @@ -28146,8 +28186,8 @@ self: { }: mkDerivation { pname = "amazonka-contrib-rds-utils"; - version = "1.6.1.0"; - sha256 = "1j43kn2ia8q6689p8g1b5q8pd8zcmhfjny8kydh3g5zf5360hnaz"; + version = "1.6.1.1"; + sha256 = "16wjgsv0pd7lkpg4qwixlm8fkf6qzbspjb1xhyjh507lfgg2s1yl"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -30689,19 +30729,6 @@ self: { }) {}; "ansi-terminal" = callPackage - ({ mkDerivation, base, colour }: - mkDerivation { - pname = "ansi-terminal"; - version = "0.11"; - sha256 = "14rp62c7y79n9dmmi7m0l9n3mcq6dh331b4yyyrivm5da6g1nqf6"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base colour ]; - description = "Simple ANSI terminal support, with Windows compatibility"; - license = lib.licenses.bsd3; - }) {}; - - "ansi-terminal_0_11_1" = callPackage ({ mkDerivation, base, colour }: mkDerivation { pname = "ansi-terminal"; @@ -30712,7 +30739,6 @@ self: { libraryHaskellDepends = [ base colour ]; description = "Simple ANSI terminal support, with Windows compatibility"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "ansi-terminal-game" = callPackage @@ -31391,25 +31417,6 @@ self: { }) {}; "apecs" = callPackage - ({ mkDerivation, array, base, containers, criterion, exceptions - , linear, mtl, QuickCheck, template-haskell, vector - }: - mkDerivation { - pname = "apecs"; - version = "0.9.3"; - sha256 = "02qi63bj0prvmxi6ksw2cq0b7fvhcdv8fgbsjbv7vf51p4c6rbh7"; - revision = "1"; - editedCabalFile = "0drlyxnbl6zlnd5gc9h023ppbfmqsivbwcxqdy5xdkx3ib9shq6l"; - libraryHaskellDepends = [ - array base containers exceptions mtl template-haskell vector - ]; - testHaskellDepends = [ base containers linear QuickCheck vector ]; - benchmarkHaskellDepends = [ base criterion linear ]; - description = "Fast Entity-Component-System library for game programming"; - license = lib.licenses.bsd3; - }) {}; - - "apecs_0_9_4" = callPackage ({ mkDerivation, array, base, containers, criterion, exceptions , linear, mtl, QuickCheck, template-haskell, vector }: @@ -31424,7 +31431,6 @@ self: { benchmarkHaskellDepends = [ base criterion linear ]; description = "Fast Entity-Component-System library for game programming"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "apecs-gloss" = callPackage @@ -33083,8 +33089,8 @@ self: { pname = "argon2"; version = "1.3.0.1"; sha256 = "1v0clf78hykdyhv81z8v3kwp86hjgqh6b8a7wfbjv0fyy55bwxry"; - revision = "2"; - editedCabalFile = "0y1dg4dp3f40ghh2zcn1s4l19i8pjs0d1zpbghy4aaar4npiqxz7"; + revision = "3"; + editedCabalFile = "1ykclhdr8jq1my18mcz3yx3vf30kvab0bxl0lgwx5nqf4dk3m5mp"; libraryHaskellDepends = [ base bytestring deepseq text-short ]; testHaskellDepends = [ base bytestring QuickCheck tasty tasty-hunit tasty-quickcheck @@ -35000,8 +35006,8 @@ self: { }: mkDerivation { pname = "atlassian-connect-core"; - version = "0.10.0.1"; - sha256 = "1cx3lzfblh5sq5q174bgjpcg42c2359870bbzws6br9sflwmcy23"; + version = "0.10.0.2"; + sha256 = "0nwsl8cvbqjjrvphc589dvld4yv5xnv9p2y80glxmzv32rwcnj36"; enableSeparateDataOutput = true; libraryHaskellDepends = [ aeson atlassian-connect-descriptor base base64-bytestring @@ -35582,6 +35588,8 @@ self: { pname = "attoparsec"; version = "0.14.3"; sha256 = "1j7sy24d7kf9qb99cr36zchb4gsj3gcy4yflawxqnng31lqdxjal"; + revision = "1"; + editedCabalFile = "1i3dwcq8970d7i7via7y0384hv7xqlajjlr9dlwlx1f29bx98pdn"; libraryHaskellDepends = [ array base bytestring containers deepseq ghc-prim scientific text transformers @@ -35813,8 +35821,8 @@ self: { ({ mkDerivation, attoparsec, base, bytestring, text, time }: mkDerivation { pname = "attoparsec-time"; - version = "1.0.2"; - sha256 = "074hbgwv5f0fnrrnak07wd572b3kjwqn4x4w8wsh7a515ndmhick"; + version = "1.0.3"; + sha256 = "1zjr27ajqigl9nlmfrh7ypry36simcbxw61is73157pg0wjb7qyr"; libraryHaskellDepends = [ attoparsec base bytestring text time ]; description = "Attoparsec parsers of time"; license = lib.licenses.mit; @@ -36982,8 +36990,8 @@ self: { pname = "aws"; version = "0.22"; sha256 = "1l3f94mpih7slz37ikyjkyrwvlf110w87997d8sbnbd8glwlcb8r"; - revision = "2"; - editedCabalFile = "02dn1wzcnsa9m6ycwnmfrrmsmlp9fl5x96xv95ifflfklnvy7ypl"; + revision = "3"; + editedCabalFile = "0k9xk07mviyvh5cxri7z923f5wfylmbrg63l1hqrnkd8hxk9w14y"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -37011,10 +37019,8 @@ self: { }: mkDerivation { pname = "aws-arn"; - version = "0.1.0.0"; - sha256 = "0wwmrpmcw01wifcpfsb81fx54c49zgg80h2y11cjpr7qkwdhiqwd"; - revision = "2"; - editedCabalFile = "17yvsm3rqvr8vy8qs7l4xvp3bnlmyvwq8bmb6gjacgz46k30dq0f"; + version = "0.1.0.1"; + sha256 = "0ml27685rjycrhc84sq41yniy15s2ak59cq5j1ybf9mxkwl52qcn"; libraryHaskellDepends = [ base deriving-compat hashable lens text ]; @@ -39375,6 +39381,17 @@ self: { license = lib.licenses.bsd3; }) {}; + "basement-cd" = callPackage + ({ mkDerivation, base, ghc-prim }: + mkDerivation { + pname = "basement-cd"; + version = "0.0.12.1"; + sha256 = "18w1rzn6p3a25y075rr1lmln74mfiv9dzgf01mipwjqfsirki15b"; + libraryHaskellDepends = [ base ghc-prim ]; + description = "Foundation scrap box of array & string"; + license = lib.licenses.bsd3; + }) {}; + "basen" = callPackage ({ mkDerivation, base, bytestring, quickcheck-instances, tasty , tasty-discover, tasty-hspec, tasty-quickcheck, text @@ -41417,8 +41434,8 @@ self: { }: mkDerivation { pname = "binary-generic-combinators"; - version = "0.4.3.0"; - sha256 = "1ng2jg3qpwplx9yjpmkj232rflyjnc3fymzjifqdwmvvzsdf9v4v"; + version = "0.4.4.0"; + sha256 = "0kdgfhkfxsz7315jbf0a5vm15nwmd5gpgwk9hw2kwkfzl1k6iv7x"; libraryHaskellDepends = [ base binary QuickCheck ]; testHaskellDepends = [ base binary byte-order generic-arbitrary hspec QuickCheck @@ -41754,6 +41771,8 @@ self: { pname = "binary-tagged"; version = "0.3.1"; sha256 = "01d1wb8h5mz76l09r2azphvhm1y3nar8pqrh2waxn797bd2dh6fp"; + revision = "1"; + editedCabalFile = "08s4ryp28j0vg94rfp9gnlb8mfyfcnrqnvq59k88l7hh1s4af0r5"; libraryHaskellDepends = [ array base base16-bytestring binary bytestring containers structured tagged @@ -44054,20 +44073,20 @@ self: { }) {}; "bitvec" = callPackage - ({ mkDerivation, base, bytestring, containers, deepseq, ghc-prim - , integer-gmp, primitive, quickcheck-classes, random, tasty - , tasty-bench, tasty-hunit, tasty-quickcheck, vector + ({ mkDerivation, base, bytestring, containers, deepseq, integer-gmp + , primitive, quickcheck-classes, quickcheck-classes-base, random + , tasty, tasty-bench, tasty-hunit, tasty-quickcheck, vector }: mkDerivation { pname = "bitvec"; - version = "1.1.1.0"; - sha256 = "0652dxx19g26jlx945qas09jhbcy17yw4visk9qhi9fbjl53v3yv"; + version = "1.1.2.0"; + sha256 = "0h7c5kpx43bm6qqnkpbzma9n201987cnq1231zg33p3xp7qc1hm2"; libraryHaskellDepends = [ - base bytestring deepseq ghc-prim integer-gmp primitive vector + base bytestring deepseq integer-gmp primitive vector ]; testHaskellDepends = [ - base integer-gmp primitive quickcheck-classes tasty tasty-hunit - tasty-quickcheck vector + base integer-gmp primitive quickcheck-classes + quickcheck-classes-base tasty tasty-hunit tasty-quickcheck vector ]; benchmarkHaskellDepends = [ base containers integer-gmp random tasty-bench vector @@ -46166,6 +46185,8 @@ self: { pname = "boring"; version = "0.2"; sha256 = "0d2cm9ra69cvaxs5x3lr2rfv7xx6xrbpb3dbcpyd8m77cqxm7b0b"; + revision = "1"; + editedCabalFile = "116sbp55pp6b4z9c1iyxaafxwd3mzra5ha2g65sfdla28rabwxj0"; libraryHaskellDepends = [ base tagged transformers ]; description = "Boring and Absurd types"; license = lib.licenses.bsd3; @@ -47704,33 +47725,6 @@ self: { }) {}; "bugsnag-haskell" = callPackage - ({ mkDerivation, aeson, aeson-qq, base, bytestring - , case-insensitive, containers, doctest, Glob, hspec, http-client - , http-client-tls, http-conduit, http-types, iproute, network - , parsec, template-haskell, text, th-lift-instances, time - , ua-parser, unliftio, wai, yaml - }: - mkDerivation { - pname = "bugsnag-haskell"; - version = "0.0.4.1"; - sha256 = "0msr61bh2h9ncbar4kwsdpncvaasy3qa3n3vjgqvnsymvs257vaf"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base bytestring case-insensitive containers Glob http-client - http-client-tls http-conduit http-types iproute network parsec - template-haskell text th-lift-instances time ua-parser wai - ]; - testHaskellDepends = [ - aeson aeson-qq base doctest hspec text time unliftio yaml - ]; - description = "Bugsnag error reporter for Haskell"; - license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; - broken = true; - }) {}; - - "bugsnag-haskell_0_0_4_2" = callPackage ({ mkDerivation, aeson, aeson-qq, base, bytestring , case-insensitive, containers, doctest, Glob, hspec, http-client , http-client-tls, http-conduit, http-types, iproute, network @@ -48070,23 +48064,6 @@ self: { }) {}; "burrito" = callPackage - ({ mkDerivation, base, bytestring, containers, hspec, parsec - , QuickCheck, template-haskell, text, transformers - }: - mkDerivation { - pname = "burrito"; - version = "1.2.0.3"; - sha256 = "1qkzk6spmv0j6dbxryan3m8s4f5nsqsja18w0w3nivjbbgdccdf1"; - libraryHaskellDepends = [ - base bytestring containers parsec template-haskell text - transformers - ]; - testHaskellDepends = [ base containers hspec QuickCheck text ]; - description = "Parse and render URI templates"; - license = lib.licenses.isc; - }) {}; - - "burrito_1_2_0_4" = callPackage ({ mkDerivation, base, bytestring, containers, hspec, parsec , QuickCheck, template-haskell, text, transformers }: @@ -48101,7 +48078,6 @@ self: { testHaskellDepends = [ base containers hspec QuickCheck text ]; description = "Parse and render URI templates"; license = lib.licenses.isc; - hydraPlatforms = lib.platforms.none; }) {}; "burst-detection" = callPackage @@ -48597,26 +48573,27 @@ self: { }) {}; "bytepatch" = callPackage - ({ mkDerivation, aeson, base, bytestring, generic-optics, hspec - , hspec-discover, megaparsec, mtl, optics, optparse-applicative - , text, yaml + ({ mkDerivation, aeson, base, bytestring, either, generic-optics + , hspec, hspec-discover, megaparsec, mtl, optics + , optparse-applicative, QuickCheck, text, vinyl, yaml }: mkDerivation { pname = "bytepatch"; - version = "0.2.1"; - sha256 = "17hi3nlkfiji1s1cfkic1w5m4hz1dv75rf94z4jlyw1ky51vh3b2"; + version = "0.3.0"; + sha256 = "13hy2107nlhglafc6qk4q8f8ds2ypd1cmjw2x1ma08yznapljsy4"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ - aeson base bytestring generic-optics megaparsec mtl optics text + aeson base bytestring either generic-optics megaparsec mtl optics + text vinyl ]; executableHaskellDepends = [ - aeson base bytestring generic-optics megaparsec mtl optics - optparse-applicative text yaml + aeson base bytestring either generic-optics megaparsec mtl optics + optparse-applicative text vinyl yaml ]; testHaskellDepends = [ - aeson base bytestring generic-optics hspec megaparsec mtl optics - text + aeson base bytestring either generic-optics hspec megaparsec mtl + optics QuickCheck text vinyl ]; testToolDepends = [ hspec-discover ]; description = "Patch byte-representable data in a bytestream"; @@ -49060,25 +49037,6 @@ self: { }) {}; "bytestring-strict-builder" = callPackage - ({ mkDerivation, base, bytestring, criterion, QuickCheck - , quickcheck-instances, rerebase, tasty, tasty-hunit - , tasty-quickcheck - }: - mkDerivation { - pname = "bytestring-strict-builder"; - version = "0.4.5.4"; - sha256 = "1yjhxqsb96gi8ll70wf1p6islx0959f62fd6ypap4wyp4v2dr8c4"; - libraryHaskellDepends = [ base bytestring ]; - testHaskellDepends = [ - QuickCheck quickcheck-instances rerebase tasty tasty-hunit - tasty-quickcheck - ]; - benchmarkHaskellDepends = [ criterion rerebase ]; - description = "An efficient strict bytestring builder"; - license = lib.licenses.mit; - }) {}; - - "bytestring-strict-builder_0_4_5_5" = callPackage ({ mkDerivation, base, bytestring, criterion, QuickCheck , quickcheck-instances, rerebase, tasty, tasty-hunit , tasty-quickcheck @@ -49095,7 +49053,6 @@ self: { benchmarkHaskellDepends = [ criterion rerebase ]; description = "An efficient strict bytestring builder"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; }) {}; "bytestring-substring" = callPackage @@ -49826,6 +49783,8 @@ self: { pname = "cabal-db"; version = "0.1.12"; sha256 = "1phksjb1ahg0dbgsxsckgmqvvhrzvpn02c3w26gbiq9diindx267"; + revision = "1"; + editedCabalFile = "10j6rc02wrxw72vy4d9pyr7gl5xkvkf9w5jb8x42scrvdyk6sd7a"; isLibrary = false; isExecutable = true; executableHaskellDepends = [ @@ -53588,27 +53547,6 @@ self: { }) {}; "cayley-client" = callPackage - ({ mkDerivation, aeson, attoparsec, base, binary, bytestring - , exceptions, hspec, http-client, http-conduit, lens, lens-aeson - , mtl, text, transformers, unordered-containers, vector - }: - mkDerivation { - pname = "cayley-client"; - version = "0.4.16"; - sha256 = "1h199fmjchfnfi80mwzhhaw3hi8zmw014w1dla2xkq7bw4cx69d9"; - libraryHaskellDepends = [ - aeson attoparsec base binary bytestring exceptions http-client - http-conduit lens lens-aeson mtl text transformers - unordered-containers vector - ]; - testHaskellDepends = [ aeson base hspec unordered-containers ]; - description = "A Haskell client for the Cayley graph database"; - license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; - broken = true; - }) {}; - - "cayley-client_0_4_17" = callPackage ({ mkDerivation, aeson, attoparsec, base, binary, bytestring , exceptions, hspec, http-client, http-conduit, lens, lens-aeson , mtl, text, transformers, unordered-containers, vector @@ -56086,21 +56024,24 @@ self: { }) {}; "cimple" = callPackage - ({ mkDerivation, aeson, alex, array, base, bytestring, compact - , containers, groom, happy, hspec, mtl, text + ({ mkDerivation, aeson, alex, ansi-wl-pprint, array, base + , bytestring, containers, filepath, groom, happy, hspec + , hspec-discover, mtl, text }: mkDerivation { pname = "cimple"; - version = "0.0.1"; - sha256 = "06sqdyqmvkaf4nsh1cq287pmki0dbzvh4yzlbcm5l7c2clxc7yg5"; + version = "0.0.2"; + sha256 = "0ija5g7myn50pyr4zyfya2p3vhgflfyf3pzjp8mg9i5ny9d8cqa4"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ - aeson array base bytestring compact containers mtl text + aeson ansi-wl-pprint array base bytestring containers filepath + groom mtl text ]; libraryToolDepends = [ alex happy ]; executableHaskellDepends = [ base bytestring groom text ]; - testHaskellDepends = [ base hspec ]; + testHaskellDepends = [ ansi-wl-pprint base hspec text ]; + testToolDepends = [ hspec-discover ]; description = "Simple C-like programming language"; license = lib.licenses.gpl3Only; }) {}; @@ -57016,6 +56957,8 @@ self: { pname = "clash-shake"; version = "0.2.1"; sha256 = "0lxv3ihlhnibi7vmfa4pqmf04524vlr3ksmdzgrlcarximi122kd"; + revision = "1"; + editedCabalFile = "07yb41fg6s5r8cs4xvax8nk3mly33shbbclql0q24wz5g7h4w06d"; libraryHaskellDepends = [ aeson base bytestring clash-ghc clash-lib clash-prelude directory shake split stache text unordered-containers @@ -57086,8 +57029,8 @@ self: { }: mkDerivation { pname = "clashilator"; - version = "0.1.0"; - sha256 = "0nlyjhf4vy5ypimdv3ac9qw9aljm2k99y42b2pkhhw84iblv4qgy"; + version = "0.1.1"; + sha256 = "0d95h9dflclzgfph4as4bzz0442z0a9w59d97snzih9wc1cg4vbp"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -57203,34 +57146,6 @@ self: { }) {}; "classy-prelude" = callPackage - ({ mkDerivation, async, base, basic-prelude, bifunctors, bytestring - , chunked-data, containers, deepseq, dlist, ghc-prim, hashable - , hspec, mono-traversable, mono-traversable-instances, mtl - , mutable-containers, primitive, QuickCheck, say, semigroups, stm - , stm-chans, text, time, transformers, unliftio - , unordered-containers, vector, vector-instances - }: - mkDerivation { - pname = "classy-prelude"; - version = "1.5.0"; - sha256 = "1nm4lygxqb1wq503maki6dsah2gpn5rd22jmbwjxfwyzgyqy9fnk"; - revision = "1"; - editedCabalFile = "1jivh1bmcvqn6bhh5z8x69v93zjcriklljm7gx342d8k5d5rsf4s"; - libraryHaskellDepends = [ - async base basic-prelude bifunctors bytestring chunked-data - containers deepseq dlist ghc-prim hashable mono-traversable - mono-traversable-instances mtl mutable-containers primitive say - semigroups stm stm-chans text time transformers unliftio - unordered-containers vector vector-instances - ]; - testHaskellDepends = [ - base containers hspec QuickCheck transformers unordered-containers - ]; - description = "A typeclass-based Prelude"; - license = lib.licenses.mit; - }) {}; - - "classy-prelude_1_5_0_2" = callPackage ({ mkDerivation, async, base, basic-prelude, bifunctors, bytestring , chunked-data, containers, deepseq, dlist, ghc-prim, hashable , hspec, mono-traversable, mono-traversable-instances, mtl @@ -57254,7 +57169,6 @@ self: { ]; description = "A typeclass-based Prelude"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; }) {}; "classy-prelude-conduit" = callPackage @@ -62535,22 +62449,6 @@ self: { }) {}; "concurrent-output" = callPackage - ({ mkDerivation, ansi-terminal, async, base, directory, exceptions - , process, stm, terminal-size, text, transformers, unix - }: - mkDerivation { - pname = "concurrent-output"; - version = "1.10.12"; - sha256 = "081wpag1d5znr0ynrjvkc14xl816m88vz9hgfm3g3sp6ak7s3y47"; - libraryHaskellDepends = [ - ansi-terminal async base directory exceptions process stm - terminal-size text transformers unix - ]; - description = "Ungarble output from several threads or commands"; - license = lib.licenses.bsd2; - }) {}; - - "concurrent-output_1_10_14" = callPackage ({ mkDerivation, ansi-terminal, async, base, directory, exceptions , process, stm, terminal-size, text, transformers, unix }: @@ -62564,7 +62462,6 @@ self: { ]; description = "Ungarble output from several threads or commands"; license = lib.licenses.bsd2; - hydraPlatforms = lib.platforms.none; }) {}; "concurrent-resource-map" = callPackage @@ -63336,26 +63233,6 @@ self: { }) {}; "conferer-aeson" = callPackage - ({ mkDerivation, aeson, aeson-qq, base, bytestring, conferer - , directory, hspec, text, unordered-containers, vector - }: - mkDerivation { - pname = "conferer-aeson"; - version = "1.1.0.1"; - sha256 = "1slz2gbnaca8ydl91rjhpjair90qnybcg6zkxdjrwr9jnxsp95s7"; - libraryHaskellDepends = [ - aeson base bytestring conferer directory text unordered-containers - vector - ]; - testHaskellDepends = [ - aeson aeson-qq base bytestring conferer directory hspec text - unordered-containers vector - ]; - description = "conferer's source for reading json files"; - license = lib.licenses.mpl20; - }) {}; - - "conferer-aeson_1_1_0_2" = callPackage ({ mkDerivation, aeson, aeson-qq, base, bytestring, conferer , directory, hspec, text, unordered-containers, vector }: @@ -63373,7 +63250,6 @@ self: { ]; description = "conferer's source for reading json files"; license = lib.licenses.mpl20; - hydraPlatforms = lib.platforms.none; }) {}; "conferer-dhall" = callPackage @@ -64470,6 +64346,21 @@ self: { license = lib.licenses.bsd3; }) {}; + "constraints-extras_0_3_2_1" = callPackage + ({ mkDerivation, aeson, base, constraints, template-haskell }: + mkDerivation { + pname = "constraints-extras"; + version = "0.3.2.1"; + sha256 = "0w2wwqsgxqkn8byivrgcsi6fh1kxbivqarmdnpxyh1a1cg373xfp"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ base constraints template-haskell ]; + executableHaskellDepends = [ aeson base constraints ]; + description = "Utility package for constraints"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + }) {}; + "constrictor" = callPackage ({ mkDerivation, base, ghc-prim, transformers }: mkDerivation { @@ -67372,43 +67263,6 @@ self: { }) {}; "criterion" = callPackage - ({ mkDerivation, aeson, ansi-wl-pprint, base, base-compat - , base-compat-batteries, binary, binary-orphans, bytestring - , cassava, code-page, containers, criterion-measurement, deepseq - , directory, exceptions, filepath, Glob, HUnit, js-chart - , microstache, mtl, mwc-random, optparse-applicative, parsec - , QuickCheck, statistics, tasty, tasty-hunit, tasty-quickcheck - , text, time, transformers, transformers-compat, vector - , vector-algorithms - }: - mkDerivation { - pname = "criterion"; - version = "1.5.11.0"; - sha256 = "1lwawng4rmhmqqn8gsalfn4xj2n19gwz7pl4wjssicl5qgmnvp8s"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - aeson ansi-wl-pprint base base-compat-batteries binary - binary-orphans bytestring cassava code-page containers - criterion-measurement deepseq directory exceptions filepath Glob - js-chart microstache mtl mwc-random optparse-applicative parsec - statistics text time transformers transformers-compat vector - vector-algorithms - ]; - executableHaskellDepends = [ - base base-compat-batteries optparse-applicative - ]; - testHaskellDepends = [ - aeson base base-compat base-compat-batteries bytestring deepseq - directory HUnit QuickCheck statistics tasty tasty-hunit - tasty-quickcheck vector - ]; - description = "Robust, reliable performance measurement and analysis"; - license = lib.licenses.bsd3; - }) {}; - - "criterion_1_5_12_0" = callPackage ({ mkDerivation, aeson, ansi-wl-pprint, base, base-compat , base-compat-batteries, binary, binary-orphans, bytestring , cassava, code-page, containers, criterion-measurement, deepseq @@ -67443,7 +67297,6 @@ self: { ]; description = "Robust, reliable performance measurement and analysis"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "criterion-cmp" = callPackage @@ -68462,6 +68315,31 @@ self: { license = lib.licenses.bsd3; }) {}; + "cryptonite-cd" = callPackage + ({ mkDerivation, base, basement-cd, bytestring, deepseq, gauge + , ghc-prim, integer-gmp, memory-cd, random, tasty, tasty-hunit + , tasty-kat, tasty-quickcheck + }: + mkDerivation { + pname = "cryptonite-cd"; + version = "0.29.1"; + sha256 = "053zfjxwnpaiw0kkky0fdbdqqyarygqnvmlm4vziqqrlkm4nba0c"; + revision = "1"; + editedCabalFile = "1y97mmslygswj5aydkvlj5vvf5xzkjxxjrblp3h9mx6wr9k63iyi"; + libraryHaskellDepends = [ + base basement-cd bytestring deepseq ghc-prim integer-gmp memory-cd + ]; + testHaskellDepends = [ + base bytestring memory-cd tasty tasty-hunit tasty-kat + tasty-quickcheck + ]; + benchmarkHaskellDepends = [ + base bytestring deepseq gauge memory-cd random + ]; + description = "Cryptography Primitives sink"; + license = lib.licenses.bsd3; + }) {}; + "cryptonite-conduit" = callPackage ({ mkDerivation, base, bytestring, conduit, conduit-combinators , conduit-extra, cryptonite, exceptions, memory, resourcet, tasty @@ -69520,8 +69398,8 @@ self: { }: mkDerivation { pname = "curryer-rpc"; - version = "0.1"; - sha256 = "13xgmhdgnn3nw2knlr60ah51hbf34fiiiz7z6230976n78aa6vkh"; + version = "0.2"; + sha256 = "0vr4b2k688imxfgkh85i9k96djklp1pp75qzi9f8fl5c46flknrg"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -69580,22 +69458,6 @@ self: { }) {}; "cursor" = callPackage - ({ mkDerivation, base, containers, deepseq, microlens, text - , validity, validity-containers, validity-text - }: - mkDerivation { - pname = "cursor"; - version = "0.3.0.0"; - sha256 = "1k9x1pv8l8f1sfilwn3i4hrc643n6svjahl4gpd47jhjw8akval7"; - libraryHaskellDepends = [ - base containers deepseq microlens text validity validity-containers - validity-text - ]; - description = "Purely Functional Cursors"; - license = lib.licenses.mit; - }) {}; - - "cursor_0_3_2_0" = callPackage ({ mkDerivation, base, containers, deepseq, microlens, text , validity, validity-containers, validity-text }: @@ -69609,20 +69471,9 @@ self: { ]; description = "Purely Functional Cursors"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; }) {}; "cursor-brick" = callPackage - ({ mkDerivation, base, brick, cursor, text }: - mkDerivation { - pname = "cursor-brick"; - version = "0.1.0.0"; - sha256 = "018i8yrdcj69qf00vz1sx7is5cx1a7vn5b8kr9b226n7vxlr3nzd"; - libraryHaskellDepends = [ base brick cursor text ]; - license = lib.licenses.mit; - }) {}; - - "cursor-brick_0_1_0_1" = callPackage ({ mkDerivation, base, brick, cursor, text }: mkDerivation { pname = "cursor-brick"; @@ -69630,7 +69481,6 @@ self: { sha256 = "108pmv6f8y3szrh3n96dyl7hsfr6qim8axikf82dgs1fd2nx61vw"; libraryHaskellDepends = [ base brick cursor text ]; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; }) {}; "cursor-fuzzy-time" = callPackage @@ -71196,22 +71046,6 @@ self: { }) {}; "data-dword" = callPackage - ({ mkDerivation, base, data-bword, ghc-prim, hashable, tasty - , tasty-quickcheck, template-haskell - }: - mkDerivation { - pname = "data-dword"; - version = "0.3.2"; - sha256 = "1avpf18pqpa9a53l1isk2par3jdk3yb84kfkrvl14ry57hikkjys"; - libraryHaskellDepends = [ - base data-bword ghc-prim hashable template-haskell - ]; - testHaskellDepends = [ base tasty tasty-quickcheck ]; - description = "Stick two binary words together to get a bigger one"; - license = lib.licenses.bsd3; - }) {}; - - "data-dword_0_3_2_1" = callPackage ({ mkDerivation, base, data-bword, ghc-prim, hashable, tasty , tasty-quickcheck, template-haskell }: @@ -71225,7 +71059,6 @@ self: { testHaskellDepends = [ base tasty tasty-quickcheck ]; description = "Stick two binary words together to get a bigger one"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "data-easy" = callPackage @@ -73127,7 +72960,7 @@ self: { license = lib.licenses.asl20; }) {}; - "dbus_1_2_21" = callPackage + "dbus_1_2_23" = callPackage ({ mkDerivation, base, bytestring, cereal, conduit, containers , criterion, deepseq, directory, exceptions, extra, filepath, lens , network, parsec, process, QuickCheck, random, resourcet, split @@ -73136,8 +72969,8 @@ self: { }: mkDerivation { pname = "dbus"; - version = "1.2.21"; - sha256 = "023lfywmxc5qqb31jaxpcf319az8ma9k9b0lkgriklskacq9sadi"; + version = "1.2.23"; + sha256 = "10dzqab23i4a2k7fjrbhy0gq6daf865d32mw75vqrgkmywqajp99"; libraryHaskellDepends = [ base bytestring cereal conduit containers deepseq exceptions filepath lens network parsec random split template-haskell text @@ -73915,6 +73748,19 @@ self: { broken = true; }) {}; + "debugger-hs" = callPackage + ({ mkDerivation, base, dlist, hspec, mtl, neat-interpolation, text + }: + mkDerivation { + pname = "debugger-hs"; + version = "0.1.1.0"; + sha256 = "1can59y3vcwms3y1bn3wm9cgya3r8f8b6ziv1g89dpav2lbrf70q"; + libraryHaskellDepends = [ base dlist mtl text ]; + testHaskellDepends = [ base hspec mtl neat-interpolation text ]; + description = "Write your GDB scripts in Haskell"; + license = lib.licenses.bsd3; + }) {}; + "deburr" = callPackage ({ mkDerivation, base, hspec, QuickCheck }: mkDerivation { @@ -73933,6 +73779,8 @@ self: { pname = "dec"; version = "0.0.4"; sha256 = "0yslffafmqfkvhcw2arpc53hfmn1788z85ss9lxnbclr29lbvzgc"; + revision = "1"; + editedCabalFile = "01xin7sn8j2aq4yq61qjxsggakl0igwhaqpsv6jcjraqgj7vwrq3"; libraryHaskellDepends = [ base ]; description = "Decidable propositions"; license = lib.licenses.bsd3; @@ -74765,8 +74613,8 @@ self: { }: mkDerivation { pname = "dep-t"; - version = "0.5.1.0"; - sha256 = "1rj12an1dbppci4j8psffw5j28a6brqbpnwklv7k8y9iwmmyhiaz"; + version = "0.6.1.0"; + sha256 = "093zic45a0q3lr0shhc0yjp5gclskyk7ipva0khsqgk2wrqgwqx6"; libraryHaskellDepends = [ base mtl transformers unliftio-core ]; testHaskellDepends = [ aeson barbies base bytestring containers doctest mtl rank2classes @@ -74786,8 +74634,8 @@ self: { }: mkDerivation { pname = "dep-t-advice"; - version = "0.5.1.0"; - sha256 = "0bpxqb8nzf7sl0h7g0dzf30pvcf3z6kqf57aczy925x1spw58bpx"; + version = "0.6.1.0"; + sha256 = "1l3zphhyb55da4jrkbhgynwb72s1lm63iyi4p35np1jffwfcc9mg"; libraryHaskellDepends = [ base dep-t mtl sop-core transformers unliftio-core ]; @@ -74805,6 +74653,30 @@ self: { hydraPlatforms = lib.platforms.none; }) {}; + "dep-t-dynamic" = callPackage + ({ mkDerivation, aeson, algebraic-graphs, base, bytestring + , containers, dep-t, dep-t-advice, doctest, hashable, microlens + , mtl, sop-core, tasty, tasty-hunit, template-haskell, text + , transformers, unliftio-core, unordered-containers + }: + mkDerivation { + pname = "dep-t-dynamic"; + version = "0.1.0.0"; + sha256 = "0z0dhq5s4cn8y2r60d0ws44z7sq104ghfzic5yn1cicy0nlwddhk"; + libraryHaskellDepends = [ + algebraic-graphs base dep-t hashable sop-core transformers + unordered-containers + ]; + testHaskellDepends = [ + aeson algebraic-graphs base bytestring containers dep-t + dep-t-advice doctest hashable microlens mtl sop-core tasty + tasty-hunit template-haskell text transformers unliftio-core + unordered-containers + ]; + description = "A dynamic environment for dependency injection"; + license = lib.licenses.bsd3; + }) {}; + "dependency" = callPackage ({ mkDerivation, ansi-wl-pprint, base, binary, containers , criterion, deepseq, hspec, microlens @@ -74977,22 +74849,6 @@ self: { }) {}; "dependent-sum-template" = callPackage - ({ mkDerivation, base, constraints-extras, dependent-sum - , template-haskell, th-extras - }: - mkDerivation { - pname = "dependent-sum-template"; - version = "0.1.0.3"; - sha256 = "1px4dj0czdsg4lx4c09v1pil4zifrvpsndhq0hp1hrlrzb9igsy8"; - libraryHaskellDepends = [ - base dependent-sum template-haskell th-extras - ]; - testHaskellDepends = [ base constraints-extras dependent-sum ]; - description = "Template Haskell code to generate instances of classes in dependent-sum package"; - license = lib.licenses.publicDomain; - }) {}; - - "dependent-sum-template_0_1_1_1" = callPackage ({ mkDerivation, base, constraints-extras, dependent-sum , template-haskell, th-abstraction, th-extras }: @@ -75006,7 +74862,6 @@ self: { testHaskellDepends = [ base constraints-extras dependent-sum ]; description = "Template Haskell code to generate instances of classes in dependent-sum package"; license = lib.licenses.publicDomain; - hydraPlatforms = lib.platforms.none; }) {}; "depends" = callPackage @@ -76342,38 +76197,6 @@ self: { }) {}; "dhall-lsp-server" = callPackage - ({ mkDerivation, aeson, aeson-pretty, base, bytestring, containers - , data-default, dhall, dhall-json, directory, doctest, filepath - , haskell-lsp, haskell-lsp-types, hslogger, hspec, lens, lsp-test - , megaparsec, mtl, network-uri, optparse-applicative, prettyprinter - , QuickCheck, rope-utf16-splay, tasty, tasty-hspec, text - , transformers, unordered-containers, uri-encode - }: - mkDerivation { - pname = "dhall-lsp-server"; - version = "1.0.16"; - sha256 = "04s4kvbjp4ai17l64syram0br3qc4fpz669ps24r8fkcbbaczckq"; - revision = "1"; - editedCabalFile = "1xhi855rcfm38p5wb8zk51m10m4afpxaglmhrinm4h2awawfvzpz"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson aeson-pretty base bytestring containers data-default dhall - dhall-json directory filepath haskell-lsp hslogger lens megaparsec - mtl network-uri prettyprinter rope-utf16-splay text transformers - unordered-containers uri-encode - ]; - executableHaskellDepends = [ base optparse-applicative ]; - testHaskellDepends = [ - base directory doctest filepath haskell-lsp-types hspec lsp-test - QuickCheck tasty tasty-hspec text - ]; - description = "Language Server Protocol (LSP) server for Dhall"; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ Gabriel439 ]; - }) {}; - - "dhall-lsp-server_1_0_17" = callPackage ({ mkDerivation, aeson, aeson-pretty, base, bytestring, containers , data-default, dhall, dhall-json, directory, doctest, filepath , haskell-lsp, haskell-lsp-types, hslogger, hspec, lens, lsp-test @@ -76400,7 +76223,6 @@ self: { ]; description = "Language Server Protocol (LSP) server for Dhall"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; @@ -77005,8 +76827,8 @@ self: { pname = "diagrams-core"; version = "1.5.0"; sha256 = "0y3smp3hiyfdirdak3j4048cgqv7a5q9p2jb6z8na2llys5mrmdn"; - revision = "2"; - editedCabalFile = "1wbvmarr8vaki80x19lwahsvyknw2047l1kmk3ybppg5s8mfiqpa"; + revision = "3"; + editedCabalFile = "16ylnccw5ddb856yn6araril0ppfmjla6prfqm0rnc6fjzmj9zcg"; libraryHaskellDepends = [ adjunctions base containers distributive dual-tree lens linear monoid-extras mtl profunctors semigroups unordered-containers @@ -77130,10 +76952,8 @@ self: { }: mkDerivation { pname = "diagrams-lib"; - version = "1.4.4"; - sha256 = "09np7kj8si8kcb854f95a0cq392mgbxif8lnazbpfsa1k87d9vzy"; - revision = "1"; - editedCabalFile = "1c7kpnbvxwdcmk5znqyig3l6s986ppj168ck5v72dfbp8cjvwa8i"; + version = "1.4.5.1"; + sha256 = "1hkxp549i99s45qk8zmhjvz1xyyv3i0ffl8155bifkic6fd8y2gz"; libraryHaskellDepends = [ active adjunctions array base bytestring cereal colour containers data-default-class diagrams-core diagrams-solve directory @@ -78744,8 +78564,8 @@ self: { }: mkDerivation { pname = "discord-haskell"; - version = "1.9.2"; - sha256 = "1dqnhnd55qkrs33gbq1kpcq2hyp2ni33qp4xq9cwjlplgzpc32w6"; + version = "1.10.0"; + sha256 = "1im1yjlnk8b8fcwyhlza1iggmry5r96sdibq2whcsyxqnpg24fr0"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -80978,21 +80798,20 @@ self: { }) {}; "doctest-parallel" = callPackage - ({ mkDerivation, base, base-compat, Cabal, cabal-install-parsers - , code-page, containers, deepseq, directory, exceptions, filepath - , ghc, ghc-paths, Glob, hspec, hspec-core, hspec-discover, HUnit - , mockery, pretty, process, QuickCheck, setenv, silently - , stringbuilder, syb, template-haskell, transformers - , unordered-containers + ({ mkDerivation, base, base-compat, Cabal, code-page, containers + , deepseq, directory, exceptions, filepath, ghc, ghc-paths, Glob + , hspec, hspec-core, hspec-discover, HUnit, mockery, pretty + , process, QuickCheck, setenv, silently, stringbuilder, syb + , template-haskell, transformers, unordered-containers }: mkDerivation { pname = "doctest-parallel"; - version = "0.1"; - sha256 = "0hc5zg94idc62kgfsinbd5cd6xcy9cjvcpav38x4b0slr7i69b4v"; + version = "0.2"; + sha256 = "1p8mz36c9v0cql7hrw8f9m08x9ks31vwqv283dpr1h0s9m8pib6c"; libraryHaskellDepends = [ - base base-compat Cabal cabal-install-parsers code-page containers - deepseq directory exceptions filepath ghc ghc-paths Glob pretty - process syb template-haskell transformers unordered-containers + base base-compat Cabal code-page containers deepseq directory + exceptions filepath ghc ghc-paths Glob pretty process syb + template-haskell transformers unordered-containers ]; testHaskellDepends = [ base base-compat code-page deepseq directory exceptions filepath @@ -81756,6 +81575,24 @@ self: { hydraPlatforms = lib.platforms.none; }) {}; + "downhill" = callPackage + ({ mkDerivation, base, containers, reflection, tasty, tasty-hunit + , template-haskell, th-abstraction, transformers + , unordered-containers, vector-space + }: + mkDerivation { + pname = "downhill"; + version = "0.1.0.0"; + sha256 = "1q99aviwssd4k5kfmp9ik3lxsdqjjfk3d2mdbd0p5zrw36kcamhl"; + libraryHaskellDepends = [ + base containers reflection template-haskell th-abstraction + transformers unordered-containers vector-space + ]; + testHaskellDepends = [ base tasty tasty-hunit vector-space ]; + description = "Reverse mode automatic differentiation"; + license = lib.licenses.mit; + }) {}; + "download" = callPackage ({ mkDerivation, base, bytestring, feed, hspec, tagsoup, xml }: mkDerivation { @@ -82688,8 +82525,8 @@ self: { pname = "dual-tree"; version = "0.2.3.0"; sha256 = "0qyn7kb42wvlcvb1wbf1qx3isc2y6k3hzp5iq6ab0r0llw9g6qlg"; - revision = "1"; - editedCabalFile = "1babd7ybsgk73x57yl35q0n1i7mbbqmv4am710kq1hzg3in4g9dv"; + revision = "2"; + editedCabalFile = "0cv2pkq85d7wgk6jjcq8vpv3577iyd1x0sg5ivw9ixyf5v5qwjxy"; libraryHaskellDepends = [ base monoid-extras newtype-generics semigroups ]; @@ -84643,30 +84480,29 @@ self: { }) {}; "egison" = callPackage - ({ mkDerivation, array, base, containers, criterion, directory - , exceptions, filepath, ghc, ghc-paths, Glob, hashable, haskeline - , HUnit, megaparsec, mtl, optparse-applicative, parsec - , parser-combinators, prettyprinter, process, random, regex-tdfa - , split, sweet-egison, test-framework, test-framework-hunit, text - , transformers, unicode-show, unordered-containers, vector + ({ mkDerivation, base, containers, criterion, directory, exceptions + , filepath, Glob, hashable, haskeline, HUnit, megaparsec, mtl + , optparse-applicative, parsec, parser-combinators, prettyprinter + , process, random, regex-tdfa, sweet-egison, test-framework + , test-framework-hunit, text, transformers, unicode-show + , unordered-containers, vector }: mkDerivation { pname = "egison"; - version = "4.1.2"; - sha256 = "1h388s7pagjipzgxyy1l3w3f03vl17bg9vl0afidjdmqm294mp8m"; + version = "4.1.3"; + sha256 = "1azi22pbrc3v14zbrkdblx3sdc5qyn7agf0gvkaxxk98587kidrq"; isLibrary = true; isExecutable = true; enableSeparateDataOutput = true; libraryHaskellDepends = [ - array base containers directory ghc ghc-paths hashable haskeline - megaparsec mtl optparse-applicative parsec parser-combinators - prettyprinter process random regex-tdfa split sweet-egison text - transformers unicode-show unordered-containers vector + base containers directory hashable haskeline megaparsec mtl + optparse-applicative parsec parser-combinators prettyprinter + process random regex-tdfa sweet-egison text transformers + unicode-show unordered-containers vector ]; executableHaskellDepends = [ - array base containers directory exceptions filepath ghc ghc-paths - haskeline mtl optparse-applicative parsec prettyprinter process - regex-tdfa split text transformers unordered-containers vector + base directory exceptions filepath haskeline mtl + optparse-applicative prettyprinter regex-tdfa text ]; testHaskellDepends = [ base filepath Glob HUnit mtl process test-framework @@ -84759,17 +84595,17 @@ self: { }) {}; "egison-tutorial" = callPackage - ({ mkDerivation, base, directory, egison, filepath, haskeline, mtl - , regex-posix, transformers + ({ mkDerivation, base, directory, egison, exceptions, filepath + , haskeline, mtl, regex-posix, transformers }: mkDerivation { pname = "egison-tutorial"; - version = "4.0.1"; - sha256 = "1g5vhf04b7r2g5kx0f5z9cci0nv55qbnjkvm81cg5yjh41bhffwn"; + version = "4.1.3"; + sha256 = "0qlkymw5vhclbgfcdpjh582nl1knrxb3j2xj6k4qp2yz6ljhjgrx"; isLibrary = false; isExecutable = true; executableHaskellDepends = [ - base directory egison filepath haskeline mtl regex-posix + base directory egison exceptions filepath haskeline mtl regex-posix transformers ]; description = "A tutorial program for the Egison programming language"; @@ -89705,8 +89541,8 @@ self: { }: mkDerivation { pname = "exact-real"; - version = "0.12.5"; - sha256 = "1xjj17h8a4sbja7f29xvasgzxzn58i2276ysqqkw8d5dsd5913lb"; + version = "0.12.5.1"; + sha256 = "0zm2rb2zhpf7ipiq4k06ix66ps026y0v83qqh83x5yfqv9hz22c7"; setupHaskellDepends = [ base Cabal cabal-doctest ]; libraryHaskellDepends = [ base integer-gmp random ]; testHaskellDepends = [ @@ -89828,25 +89664,6 @@ self: { }) {}; "exception-transformers" = callPackage - ({ mkDerivation, base, HUnit, test-framework, test-framework-hunit - , transformers, transformers-compat - }: - mkDerivation { - pname = "exception-transformers"; - version = "0.4.0.10"; - sha256 = "11ghvxm32q3kzccbngz4068j2rrrhs03amlaq5i5r1vankrbxg0n"; - revision = "1"; - editedCabalFile = "03f69b8i1gavjk94zj6krkzqk0360sngq0hzi291pmhghscsqcn0"; - libraryHaskellDepends = [ base transformers transformers-compat ]; - testHaskellDepends = [ - base HUnit test-framework test-framework-hunit transformers - transformers-compat - ]; - description = "Type classes and monads for unchecked extensible exceptions"; - license = lib.licenses.bsd3; - }) {}; - - "exception-transformers_0_4_0_11" = callPackage ({ mkDerivation, base, fail, HUnit, test-framework , test-framework-hunit, transformers, transformers-compat }: @@ -89863,7 +89680,6 @@ self: { ]; description = "Type classes and monads for unchecked extensible exceptions"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "exception-via" = callPackage @@ -89916,8 +89732,8 @@ self: { pname = "exceptions"; version = "0.10.4"; sha256 = "1kw4pmx7j7zwbdwm0dyn9rcs6kp4byfxy48861yxdz6gam1zn2sd"; - revision = "2"; - editedCabalFile = "1154g0dqil2xf4wc1v6gndzhnbf5saf2dzf77c6lcjxssx360m6j"; + revision = "3"; + editedCabalFile = "0b9bml5j46zz62ik2827ndsd5293dh8630086x1mngb80gnrml3y"; libraryHaskellDepends = [ base mtl stm template-haskell transformers ]; @@ -90652,8 +90468,8 @@ self: { }: mkDerivation { pname = "explainable-predicates"; - version = "0.1.2.0"; - sha256 = "02gcbg3fas0kk13hm8g79dj62nxs1gdxsf58kx35vm58c5i8jay2"; + version = "0.1.2.1"; + sha256 = "0hx11fp430lf60cwwas3x5jv5yg966fh9qrgxz2q65md6lx3yaga"; libraryHaskellDepends = [ array base HUnit mono-traversable QuickCheck regex-tdfa syb template-haskell @@ -91990,6 +91806,28 @@ self: { license = lib.licenses.bsd3; }) {}; + "fast-bech32" = callPackage + ({ mkDerivation, base, base16, bech32, bytestring, criterion, hspec + , hspec-discover, QuickCheck, random-bytestring, relude, text + }: + mkDerivation { + pname = "fast-bech32"; + version = "1.0.0"; + sha256 = "1kvf9mk0dgrnm3wrb6pvgrjb3z35wk4bzc9kdilpiv3z4jvkacy9"; + revision = "1"; + editedCabalFile = "106qlfgkvsmz025f4k5ql10df9b20yraid3za93fl8c1bl3sx4ix"; + libraryHaskellDepends = [ base bytestring relude text ]; + testHaskellDepends = [ + base base16 bech32 bytestring hspec QuickCheck text + ]; + testToolDepends = [ hspec-discover ]; + benchmarkHaskellDepends = [ + base bech32 bytestring criterion random-bytestring + ]; + description = "Fast implementation of the Bech32 encoding format"; + license = lib.licenses.mpl20; + }) {}; + "fast-builder" = callPackage ({ mkDerivation, aeson, base, bytestring, containers, criterion , deepseq, ghc-prim, process, QuickCheck, scientific, stm @@ -92813,6 +92651,8 @@ self: { pname = "fclabels"; version = "2.0.5.1"; sha256 = "0g4ca5pm2bafsnpari7wqhy79i5qs8njb3kdknk0xsrazdsl174k"; + revision = "1"; + editedCabalFile = "03df1mvfsnm4zbppvig7y49y935qxvkz4b5y24b17hsdj4l1nnyk"; libraryHaskellDepends = [ base base-orphans mtl template-haskell transformers ]; @@ -94214,8 +94054,8 @@ self: { }: mkDerivation { pname = "filepath-bytestring"; - version = "1.4.2.1.8"; - sha256 = "0qrrvbjpjsk75ghqrdqzwqg7wjgm3rr9kk7p04ax98ilv90pm0ip"; + version = "1.4.2.1.9"; + sha256 = "1djbx4mxkzmbi6l44r4ag482r71hwd5s22fj2myz6c128lfrvlk7"; libraryHaskellDepends = [ base bytestring unix ]; testHaskellDepends = [ base bytestring filepath QuickCheck ]; benchmarkHaskellDepends = [ base criterion filepath ]; @@ -96263,8 +96103,8 @@ self: { }: mkDerivation { pname = "floskell"; - version = "0.10.5"; - sha256 = "0cm12krcri332yw0zb3k4kakpq30xlfxkyc8i67bniwm7h973hnh"; + version = "0.10.6"; + sha256 = "0r7djm85lc7qmcfc6fi8kdshg22zc6xhwqg09ipimdbwhlwlpv7f"; isLibrary = true; isExecutable = true; enableSeparateDataOutput = true; @@ -96290,18 +96130,6 @@ self: { }) {}; "flow" = callPackage - ({ mkDerivation, base, HUnit }: - mkDerivation { - pname = "flow"; - version = "1.0.22"; - sha256 = "1xsifahlma8x130d8hc1k5hzcf1kr8qg8xxh67lshbvarrg19air"; - libraryHaskellDepends = [ base ]; - testHaskellDepends = [ base HUnit ]; - description = "Write more understandable Haskell"; - license = lib.licenses.mit; - }) {}; - - "flow_1_0_23" = callPackage ({ mkDerivation, base, HUnit }: mkDerivation { pname = "flow"; @@ -96311,7 +96139,6 @@ self: { testHaskellDepends = [ base HUnit ]; description = "Write more understandable Haskell"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; }) {}; "flow-er" = callPackage @@ -98455,8 +98282,8 @@ self: { }: mkDerivation { pname = "franz"; - version = "0.5"; - sha256 = "1fhh27sjv46yk2kqw6kgn1wn6m1acl8vp1j9r7ag3pd93y0w3d1s"; + version = "0.5.1"; + sha256 = "0y65ywk8k6by8k8wf71pfk8dsaq47sqjnw0ina09jgq66by4vgwq"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -98468,6 +98295,7 @@ self: { executableHaskellDepends = [ base bytestring network optparse-applicative stm vector ]; + testHaskellDepends = [ base fast-builder temporary ]; description = "Append-only database"; license = lib.licenses.bsd3; }) {}; @@ -98562,6 +98390,8 @@ self: { pname = "free"; version = "5.1.7"; sha256 = "121b81wxjk30nc27ivwzxjxi1dcwc30y0gy8l6wac3dxwvkx2c5j"; + revision = "1"; + editedCabalFile = "0x3d7jp17m65f25838ic26kvnpjfb99iw3d60ga57n8505shxywb"; libraryHaskellDepends = [ base comonad containers distributive exceptions indexed-traversable mtl profunctors semigroupoids template-haskell th-abstraction @@ -99796,6 +99626,8 @@ self: { pname = "ftp-client"; version = "0.5.1.4"; sha256 = "0c2xn2q24imrfgsx4zxzi24ciwkrly6n47lc5k5406j5b4znn5lf"; + revision = "2"; + editedCabalFile = "128c6lalfyjqsrycgk0773fwww3a914qd4w62vv3hx4vpmy75gq4"; libraryHaskellDepends = [ attoparsec base bytestring connection containers exceptions network transformers @@ -100250,12 +100082,12 @@ self: { license = lib.licenses.bsd3; }) {}; - "functor-classes-compat_2_0_0_1" = callPackage + "functor-classes-compat_2_0_0_2" = callPackage ({ mkDerivation, base, containers }: mkDerivation { pname = "functor-classes-compat"; - version = "2.0.0.1"; - sha256 = "0x5hnydm07vmnvmiy3l34irx23fak29jby439avi5v7z5wqymm14"; + version = "2.0.0.2"; + sha256 = "02jamibwyr8hvf432m761v94xmwhbflrp6hd01jyv7fm95f5ki6h"; libraryHaskellDepends = [ base containers ]; description = "Data.Functor.Classes instances for core packages"; license = lib.licenses.bsd3; @@ -100829,7 +100661,7 @@ self: { license = lib.licenses.isc; }) {}; - "futhark_0_20_8" = callPackage + "futhark_0_21_1" = callPackage ({ mkDerivation, aeson, alex, ansi-terminal, array, base , base16-bytestring, binary, blaze-html, bmp, bytestring , bytestring-to-vector, cmark-gfm, containers, cryptohash-md5 @@ -100844,8 +100676,8 @@ self: { }: mkDerivation { pname = "futhark"; - version = "0.20.8"; - sha256 = "1a8sr934yf27n7hfa06239qxcpmaj7xqc47y4hpl7wa86bpvld1g"; + version = "0.21.1"; + sha256 = "0ba87d670i2hwa3hma46yx149f0f3q0blpl5v72434dzid575kx5"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -100891,6 +100723,23 @@ self: { license = lib.licenses.isc; }) {}; + "futhark-manifest" = callPackage + ({ mkDerivation, aeson, base, bytestring, containers, QuickCheck + , quickcheck-instances, tasty, tasty-hunit, tasty-quickcheck, text + }: + mkDerivation { + pname = "futhark-manifest"; + version = "1.0.0.1"; + sha256 = "0zm6c907a9ywl9isslmqrl7k42076azzrrx16z0dj8w1pns69nw5"; + libraryHaskellDepends = [ aeson base bytestring containers text ]; + testHaskellDepends = [ + base QuickCheck quickcheck-instances tasty tasty-hunit + tasty-quickcheck text + ]; + description = "Definition and serialisation instances for Futhark manifests"; + license = lib.licenses.isc; + }) {}; + "futhark-server" = callPackage ({ mkDerivation, base, binary, bytestring, directory, futhark-data , mtl, process, temporary, text @@ -102445,6 +102294,8 @@ self: { pname = "generic-aeson"; version = "0.2.0.13"; sha256 = "0w5xp1rfg3r90ja1f0s48i4x7yyynfv52p6b9ncsdqyrq3y9qvl0"; + revision = "1"; + editedCabalFile = "07kg0bc2jvfww9a9n5rzffsi23k2i3py7h7dq7qcj7817kkh0ig0"; libraryHaskellDepends = [ aeson attoparsec base generic-deriving mtl tagged text unordered-containers vector @@ -105439,25 +105290,6 @@ self: { }) {}; "ghc-events" = callPackage - ({ mkDerivation, array, base, binary, bytestring, containers, text - , vector - }: - mkDerivation { - pname = "ghc-events"; - version = "0.17.0"; - sha256 = "059csl9j391iqbxaia9kawsksgbiy3ffdk9pqabb68gqrn0b7icc"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - array base binary bytestring containers text vector - ]; - executableHaskellDepends = [ base containers ]; - testHaskellDepends = [ base ]; - description = "Library and tool for parsing .eventlog files from GHC"; - license = lib.licenses.bsd3; - }) {}; - - "ghc-events_0_17_0_1" = callPackage ({ mkDerivation, array, base, binary, bytestring, containers, text , vector }: @@ -105474,7 +105306,6 @@ self: { testHaskellDepends = [ base ]; description = "Library and tool for parsing .eventlog files from GHC"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "ghc-events-analyze" = callPackage @@ -106422,8 +106253,8 @@ self: { ({ mkDerivation, base, ghc, transformers }: mkDerivation { pname = "ghc-tcplugin-api"; - version = "0.5.1.0"; - sha256 = "1rwdq81k0f85idg3fypac127iq6r3da5jrkq4ynixvpahj1w6m87"; + version = "0.6.1.0"; + sha256 = "1ic243jdvmm8sqzksx6hady2p7ca07as04hxvsxa3vh6b9nwwkk2"; libraryHaskellDepends = [ base ghc transformers ]; description = "An API for type-checker plugins"; license = lib.licenses.bsd3; @@ -106487,18 +106318,6 @@ self: { }) {}; "ghc-trace-events" = callPackage - ({ mkDerivation, base, bytestring, tasty-bench, text }: - mkDerivation { - pname = "ghc-trace-events"; - version = "0.1.2.3"; - sha256 = "11m2ihzlncvxp8x2zgbnzbyybz2lbpdl5flk4gzmq0qz0957j7qd"; - libraryHaskellDepends = [ base bytestring text ]; - benchmarkHaskellDepends = [ base bytestring tasty-bench ]; - description = "Faster traceEvent and traceMarker, and binary object logging for eventlog"; - license = lib.licenses.bsd3; - }) {}; - - "ghc-trace-events_0_1_2_4" = callPackage ({ mkDerivation, base, bytestring, tasty-bench, text }: mkDerivation { pname = "ghc-trace-events"; @@ -106508,7 +106327,6 @@ self: { benchmarkHaskellDepends = [ base bytestring tasty-bench ]; description = "Faster traceEvent and traceMarker, and binary object logging for eventlog"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "ghc-typelits-extra" = callPackage @@ -106578,8 +106396,8 @@ self: { }: mkDerivation { pname = "ghc-typelits-presburger"; - version = "0.6.1.0"; - sha256 = "1k9mh0w1xaz85jkdvwm5pxkqzwzrjmhzn1sj2nmilhbnhgfwm9vd"; + version = "0.6.2.0"; + sha256 = "11rzfvs2kvknz8892bii2ljh6hbaa1zy0hnwi6pi1xghvwp1fckq"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -106962,8 +106780,8 @@ self: { }: mkDerivation { pname = "ghcjs-dom"; - version = "0.9.4.0"; - sha256 = "0vw3b45shbj1xvx729rrzjanb2wy49l182j11kv8hid1jcb9mwnl"; + version = "0.9.5.0"; + sha256 = "1ya4ns81xwri8knbhmkbxpvm48q4ygyn1sqq873sbpsawknqcn65"; libraryHaskellDepends = [ base containers ghcjs-dom-jsaddle text transformers ]; @@ -106999,8 +106817,8 @@ self: { ({ mkDerivation, jsaddle-dom }: mkDerivation { pname = "ghcjs-dom-jsaddle"; - version = "0.9.4.0"; - sha256 = "059qhv1y0q5cgk72fl9spc2l2mxwyw8wzkbmhyliwr6869az48f7"; + version = "0.9.5.0"; + sha256 = "12y95c10f16ysbbsfhwmw3pyyp339rm1hnzsb7hbbiwh6g2kx8vd"; libraryHaskellDepends = [ jsaddle-dom ]; doHaddock = false; description = "DOM library that supports both GHCJS and GHC using jsaddle"; @@ -107011,8 +106829,8 @@ self: { ({ mkDerivation }: mkDerivation { pname = "ghcjs-dom-jsffi"; - version = "0.9.4.0"; - sha256 = "02m0qszdl3kxyhjrzj1ph9gwbr9jkzak2v1b47v6ywsm7hmjgn7w"; + version = "0.9.5.0"; + sha256 = "1pmxrhpdh4630q0z8a8pqg5m7323a1w1z8ny2fvb1acr12x6l1f0"; description = "DOM library using JSFFI and GHCJS"; license = lib.licenses.mit; hydraPlatforms = lib.platforms.none; @@ -107665,15 +107483,15 @@ self: { license = lib.licenses.lgpl21Only; }) {inherit (pkgs) gdk-pixbuf;}; - "gi-gdkpixbuf_2_0_27" = callPackage + "gi-gdkpixbuf_2_0_28" = callPackage ({ mkDerivation, base, bytestring, Cabal, containers, gdk-pixbuf , gi-gio, gi-glib, gi-gmodule, gi-gobject, haskell-gi , haskell-gi-base, haskell-gi-overloading, text, transformers }: mkDerivation { pname = "gi-gdkpixbuf"; - version = "2.0.27"; - sha256 = "0p2b4yvfwcj3bpn9r85v6xjlw6rr50kdca0kan45mv0aia0nyg33"; + version = "2.0.28"; + sha256 = "01fjx8nwy27mlhhh3p8qi1z8xcbzi7cs07x01hk8kxrmvd71a2pf"; setupHaskellDepends = [ base Cabal gi-gio gi-glib gi-gmodule gi-gobject haskell-gi ]; @@ -108369,23 +108187,6 @@ self: { }) {}; "gi-gtk-hs" = callPackage - ({ mkDerivation, base, base-compat, containers, gi-gdk - , gi-gdkpixbuf, gi-glib, gi-gobject, gi-gtk, haskell-gi-base, mtl - , text, transformers - }: - mkDerivation { - pname = "gi-gtk-hs"; - version = "0.3.11"; - sha256 = "0scbipy7086pv1xc57vmq48wcx3p7wbznwjcn99dqw4gf9yrqwwz"; - libraryHaskellDepends = [ - base base-compat containers gi-gdk gi-gdkpixbuf gi-glib gi-gobject - gi-gtk haskell-gi-base mtl text transformers - ]; - description = "A wrapper for gi-gtk, adding a few more idiomatic API parts on top"; - license = lib.licenses.lgpl21Only; - }) {}; - - "gi-gtk-hs_0_3_12" = callPackage ({ mkDerivation, base, base-compat, containers, gi-gdk , gi-gdkpixbuf, gi-glib, gi-gobject, gi-gtk, haskell-gi-base, mtl , text, transformers @@ -108400,7 +108201,6 @@ self: { ]; description = "A wrapper for gi-gtk, adding a few more idiomatic API parts on top"; license = lib.licenses.lgpl21Only; - hydraPlatforms = lib.platforms.none; }) {}; "gi-gtk-layer-shell" = callPackage @@ -110335,7 +110135,7 @@ self: { license = lib.licenses.bsd3; }) {}; - "github-rest_1_1_1" = callPackage + "github-rest_1_1_2" = callPackage ({ mkDerivation, aeson, aeson-qq, base, bytestring, http-client , http-client-tls, http-types, jwt, mtl, scientific, tasty , tasty-golden, tasty-hunit, tasty-quickcheck, text, time @@ -110343,10 +110143,8 @@ self: { }: mkDerivation { pname = "github-rest"; - version = "1.1.1"; - sha256 = "1wf4gs3324h4pfal5qcpb65lfpm4kpmxmv4fiv6asrvhas9cwglm"; - revision = "1"; - editedCabalFile = "0xk5xkl4zcymcms6fybngkj9xj6pwi01vz4yklpjs21f9iyccljv"; + version = "1.1.2"; + sha256 = "139ysq1m1ndy6z1znfd1np25ynxankkfm6xmwabhdr7yiqzi2v1b"; libraryHaskellDepends = [ aeson base bytestring http-client http-client-tls http-types jwt mtl scientific text time transformers unliftio unliftio-core @@ -110530,8 +110328,8 @@ self: { }: mkDerivation { pname = "gitit"; - version = "0.15.0.0"; - sha256 = "05kz7dxmiabp0gkivn5ngmn3xah3h7a14a421qw6nx2ld1cr9vgf"; + version = "0.15.1.0"; + sha256 = "1mnyk7gpi6hxvyh9cmc7mzlvx5m0kj102b0fq5xzljzb0bvh7wp2"; isLibrary = true; isExecutable = true; enableSeparateDataOutput = true; @@ -115036,25 +114834,6 @@ self: { }) {}; "gothic" = callPackage - ({ mkDerivation, aeson, base, binary, bytestring, connection - , exceptions, hashable, http-client, http-client-tls, http-conduit - , http-types, lens, lens-aeson, scientific, text, unix - , unordered-containers, vector - }: - mkDerivation { - pname = "gothic"; - version = "0.1.7"; - sha256 = "042kfadc9gvbdrcbh8z6hfb97jy2nrgspl88ii1lwfxzfy26j1vd"; - libraryHaskellDepends = [ - aeson base binary bytestring connection exceptions hashable - http-client http-client-tls http-conduit http-types lens lens-aeson - scientific text unix unordered-containers vector - ]; - description = "A Haskell Vault KVv2 secret engine client"; - license = lib.licenses.bsd3; - }) {}; - - "gothic_0_1_8" = callPackage ({ mkDerivation, aeson, base, binary, bytestring, connection , exceptions, hashable, http-client, http-client-tls, http-conduit , http-types, lens, lens-aeson, scientific, text, unix @@ -115071,7 +114850,6 @@ self: { ]; description = "A Haskell Vault KVv2 secret engine client"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "gotta-go-fast" = callPackage @@ -118343,55 +118121,6 @@ self: { }) {}; "hOpenPGP" = callPackage - ({ mkDerivation, aeson, asn1-encoding, attoparsec, base - , base16-bytestring, bifunctors, binary, binary-conduit, bytestring - , bz2, conduit, conduit-extra, containers, criterion - , crypto-cipher-types, cryptonite, errors, hashable - , incremental-parser, ixset-typed, lens, memory, monad-loops - , nettle, network, network-uri, openpgp-asciiarmor, prettyprinter - , QuickCheck, quickcheck-instances, resourcet, split, tasty - , tasty-hunit, tasty-quickcheck, text, time, time-locale-compat - , transformers, unliftio-core, unordered-containers, zlib - }: - mkDerivation { - pname = "hOpenPGP"; - version = "2.9.5"; - sha256 = "1wzvlk7my7a8rwmsw1glw2dlph3b2hwyz2jkcjr0hd1jj8ywksnx"; - revision = "1"; - editedCabalFile = "0zislyrgjdnxzrk8hnlby19cb7v14rcr1xk9jj6hpi1b7vrks8q9"; - libraryHaskellDepends = [ - aeson asn1-encoding attoparsec base base16-bytestring bifunctors - binary binary-conduit bytestring bz2 conduit conduit-extra - containers crypto-cipher-types cryptonite errors hashable - incremental-parser ixset-typed lens memory monad-loops nettle - network-uri openpgp-asciiarmor prettyprinter resourcet split text - time time-locale-compat transformers unliftio-core - unordered-containers zlib - ]; - testHaskellDepends = [ - aeson asn1-encoding attoparsec base base16-bytestring bifunctors - binary binary-conduit bytestring bz2 conduit conduit-extra - containers crypto-cipher-types cryptonite errors hashable - incremental-parser ixset-typed lens memory monad-loops nettle - network network-uri prettyprinter QuickCheck quickcheck-instances - resourcet split tasty tasty-hunit tasty-quickcheck text time - time-locale-compat transformers unliftio-core unordered-containers - zlib - ]; - benchmarkHaskellDepends = [ - aeson base base16-bytestring bifunctors binary binary-conduit - bytestring bz2 conduit conduit-extra containers criterion - crypto-cipher-types cryptonite errors hashable incremental-parser - ixset-typed lens memory monad-loops nettle network network-uri - openpgp-asciiarmor prettyprinter resourcet split text time - time-locale-compat transformers unliftio-core unordered-containers - zlib - ]; - description = "native Haskell implementation of OpenPGP (RFC4880)"; - license = lib.licenses.mit; - }) {}; - - "hOpenPGP_2_9_7" = callPackage ({ mkDerivation, aeson, asn1-encoding, attoparsec, base , base16-bytestring, bifunctors, binary, binary-conduit, bytestring , bz2, conduit, conduit-extra, containers, criterion @@ -118435,7 +118164,6 @@ self: { ]; description = "native Haskell implementation of OpenPGP (RFC4880)"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; }) {}; "hPDB" = callPackage @@ -119787,8 +119515,8 @@ self: { pname = "haddock-library"; version = "1.10.0"; sha256 = "15ak06q8yp11xz1hwr0sg2jqi3r78p1n89ik05hicqvxl3awf1pq"; - revision = "1"; - editedCabalFile = "1r2mz68415wq3l194ryki8r8p7n7h21033m1ixrpd259s4yq6zdp"; + revision = "2"; + editedCabalFile = "12kw6y105fyilp2aby2vwzwgmnr3h2yrahhm1v34anfv8psjq1r0"; libraryHaskellDepends = [ base bytestring containers parsec text transformers ]; @@ -120840,8 +120568,8 @@ self: { pname = "hal"; version = "0.4.8"; sha256 = "1j3prf81ni5v003byl992dxvvkv8prgmsqmnpkwpd0365ilxyv2y"; - revision = "1"; - editedCabalFile = "0jz54lz3wd05b2vabwlid31pyhvjrwbdr35nbqb9kdf13jfdgahr"; + revision = "2"; + editedCabalFile = "13cxps4cxwralwvn1fvg5jwdf4j0lkza147h97dmsxl56lz1ar0q"; libraryHaskellDepends = [ aeson base base64-bytestring bytestring case-insensitive conduit conduit-extra containers envy exceptions hashable http-client @@ -123078,6 +122806,8 @@ self: { pname = "hashable"; version = "1.4.0.1"; sha256 = "04v61w87hvm6lg9a7p5mz177iab3rvb86pzcclcdw0w314dsxpaw"; + revision = "1"; + editedCabalFile = "1rcvw4fjm3v29phg0q54x8358c4qvg1y8cwy6lqzmg1kvhd9qp63"; libraryHaskellDepends = [ base base-orphans bytestring containers deepseq ghc-prim integer-gmp text @@ -126571,8 +126301,8 @@ self: { }: mkDerivation { pname = "haskoin-core"; - version = "0.21.0"; - sha256 = "13jc15jdk2331j0rbqjqbi041rz9dl04f60xbxyjiq76hlqpaphw"; + version = "0.21.1"; + sha256 = "0ld1a0pn5llnzdnffvcwh8zzh8143vkx3f5y1ixgb7qx6gpqnzrs"; libraryHaskellDepends = [ aeson array base base16 binary bytes bytestring cereal conduit containers cryptonite deepseq entropy hashable hspec memory mtl @@ -126709,8 +126439,8 @@ self: { }: mkDerivation { pname = "haskoin-store"; - version = "0.61.0"; - sha256 = "0br8xni0qi7c4zy27f3ajrpg4g6fxa9siy0hglwz8ahbhw852ylg"; + version = "0.62.1"; + sha256 = "12s8qwhxm8llz4asyapvd3mi8g9iv3yw65vyi55960cncvnha8a0"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -126757,8 +126487,8 @@ self: { }: mkDerivation { pname = "haskoin-store-data"; - version = "0.61.0"; - sha256 = "06skq0syh1wfrm36kqvp2n77i6b0cmkhijff1mclabqnhkpzdk3d"; + version = "0.62.1"; + sha256 = "1v66d369fda1prcb8knmszi8kgp2x321pmdk8mwdd3059vcvsw84"; libraryHaskellDepends = [ aeson base binary bytes bytestring cereal containers data-default deepseq hashable haskoin-core http-client http-types lens mtl @@ -130288,10 +130018,8 @@ self: { }: mkDerivation { pname = "hedgehog-classes"; - version = "0.2.5.2"; - sha256 = "0h9givw1l83l8z59w6y1rjcnply297b2iag3qhy1rmcjyq3d6m0m"; - revision = "1"; - editedCabalFile = "1z8b4mn4y0lnna5acp7fryqpq2355bgi7rzivg34fgfnf3fmwa0a"; + version = "0.2.5.3"; + sha256 = "1qanfnvciykm5hmiqyf0icn4xn16v6zvlfal98lphhcmym26m9x1"; libraryHaskellDepends = [ aeson base binary comonad containers hedgehog pretty-show primitive semirings silently transformers vector wl-pprint-annotated @@ -130825,6 +130553,43 @@ self: { license = lib.licenses.mit; }) {}; + "helic" = callPackage + ({ mkDerivation, aeson, base, chronos, containers, data-default + , either, exon, gi-gdk, gi-glib, gi-gtk, hostname, http-client + , http-client-tls, optparse-applicative, path, path-io, polysemy + , polysemy-chronos, polysemy-conc, polysemy-http, polysemy-log + , polysemy-plugin, polysemy-process, polysemy-resume, polysemy-test + , polysemy-time, relude, servant, servant-client + , servant-client-core, servant-server, table-layout, tasty + , template-haskell, terminal-size, text, torsor, typed-process + , unix, wai-extra, warp, yaml + }: + mkDerivation { + pname = "helic"; + version = "0.3.1.0"; + sha256 = "1bshhddy04w5p6546fxdvk11g6pq781dp4mf4r84qqi7avfjp0xk"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + aeson base chronos containers data-default either exon gi-gdk + gi-glib gi-gtk hostname http-client http-client-tls + optparse-applicative path path-io polysemy polysemy-chronos + polysemy-conc polysemy-http polysemy-log polysemy-plugin + polysemy-process polysemy-resume polysemy-time relude servant + servant-client servant-client-core servant-server table-layout + template-haskell terminal-size text typed-process unix wai-extra + warp yaml + ]; + executableHaskellDepends = [ base polysemy polysemy-plugin ]; + testHaskellDepends = [ + base chronos containers path polysemy polysemy-chronos + polysemy-conc polysemy-log polysemy-plugin polysemy-test + polysemy-time tasty torsor + ]; + description = "Clipboard Manager"; + license = "BSD-2-Clause-Patent"; + }) {}; + "helics" = callPackage ({ mkDerivation, base, bytestring, bytestring-show , data-default-class, newrelic-collector-client, newrelic-common @@ -134303,26 +134068,6 @@ self: { }) {}; "hint" = callPackage - ({ mkDerivation, base, containers, directory, exceptions, filepath - , ghc, ghc-boot, ghc-paths, HUnit, random, stm, temporary - , transformers, unix - }: - mkDerivation { - pname = "hint"; - version = "0.9.0.4"; - sha256 = "0hdhnkldscq3hp5xn5ns79f6cd6bw6ih6k550d5c38sdqypx73ns"; - libraryHaskellDepends = [ - base directory exceptions filepath ghc ghc-boot ghc-paths random - temporary transformers unix - ]; - testHaskellDepends = [ - base containers directory exceptions filepath HUnit stm unix - ]; - description = "Runtime Haskell interpreter (GHC API wrapper)"; - license = lib.licenses.bsd3; - }) {}; - - "hint_0_9_0_5" = callPackage ({ mkDerivation, base, containers, directory, exceptions, filepath , ghc, ghc-boot, ghc-paths, HUnit, random, stm, temporary , transformers, unix @@ -134340,7 +134085,6 @@ self: { ]; description = "Runtime Haskell interpreter (GHC API wrapper)"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "hint-server" = callPackage @@ -135354,7 +135098,7 @@ self: { maintainers = with lib.maintainers; [ peti ]; }) {}; - "hledger_1_24" = callPackage + "hledger_1_24_1" = callPackage ({ mkDerivation, aeson, ansi-terminal, base, bytestring, cmdargs , containers, data-default, Decimal, Diff, directory, extra , filepath, githash, hashable, haskeline, hledger-lib, lucid @@ -135365,8 +135109,8 @@ self: { }: mkDerivation { pname = "hledger"; - version = "1.24"; - sha256 = "19aw0q5i4i114wms063z4id08vfknz2zn1ydzbv53kykqc8h26n0"; + version = "1.24.1"; + sha256 = "01y9i7xrw22nx8qq8iq6xy0f84jf8khfk0h0r2y21cg96s65fyjy"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -135643,7 +135387,7 @@ self: { license = lib.licenses.gpl3Only; }) {}; - "hledger-lib_1_24" = callPackage + "hledger-lib_1_24_1" = callPackage ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, array, base , blaze-markup, bytestring, call-stack, cassava, cassava-megaparsec , cmdargs, containers, data-default, Decimal, directory, doclayout @@ -135655,8 +135399,8 @@ self: { }: mkDerivation { pname = "hledger-lib"; - version = "1.24"; - sha256 = "1gjqcjvcmkhwm8z0aanv93n0zglh699mnbh9a7symw06ii4yv5ll"; + version = "1.24.1"; + sha256 = "13lq518v6nmv89pbsw4qa1rvplwpnyz8sz5wd1y2wa1066rh0qli"; libraryHaskellDepends = [ aeson aeson-pretty ansi-terminal array base blaze-markup bytestring call-stack cassava cassava-megaparsec cmdargs containers @@ -135754,7 +135498,7 @@ self: { maintainers = with lib.maintainers; [ peti ]; }) {}; - "hledger-ui_1_24" = callPackage + "hledger-ui_1_24_1" = callPackage ({ mkDerivation, ansi-terminal, async, base, brick, cmdargs , containers, data-default, directory, doclayout, extra, filepath , fsnotify, hledger, hledger-lib, megaparsec, microlens @@ -135763,8 +135507,8 @@ self: { }: mkDerivation { pname = "hledger-ui"; - version = "1.24"; - sha256 = "0a0n677f8s3397yzmfvj2686nsc90zz289lgb41qclbnz4ppcr9c"; + version = "1.24.1"; + sha256 = "1afxvj8x8wq3rvbmzhrls4688gdkqsjm4kaa9zarkrrgf585q22q"; isLibrary = false; isExecutable = true; executableHaskellDepends = [ @@ -135836,7 +135580,7 @@ self: { maintainers = with lib.maintainers; [ peti ]; }) {}; - "hledger-web_1_24" = callPackage + "hledger-web_1_24_1" = callPackage ({ mkDerivation, aeson, base, base64, blaze-html, blaze-markup , bytestring, case-insensitive, clientsession, cmdargs, conduit , conduit-extra, containers, data-default, Decimal, directory @@ -135849,8 +135593,8 @@ self: { }: mkDerivation { pname = "hledger-web"; - version = "1.24"; - sha256 = "0xpj6v1ks4d0m9pk6sljyx9f2vxq440bl59qn7gz0hv1lzm6zrbi"; + version = "1.24.1"; + sha256 = "1nms55xb1hmiz3l307r690qwa7avj4racir1pg74xxwymldsafs8"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -135989,7 +135733,7 @@ self: { maintainers = with lib.maintainers; [ maralorn ]; }) {}; - "hlint_3_3_4" = callPackage + "hlint_3_3_5" = callPackage ({ mkDerivation, aeson, ansi-terminal, base, bytestring, cmdargs , containers, cpphs, data-default, directory, extra, file-embed , filepath, filepattern, ghc-lib-parser, ghc-lib-parser-ex @@ -135998,10 +135742,8 @@ self: { }: mkDerivation { pname = "hlint"; - version = "3.3.4"; - sha256 = "030hvf0hmnf5pamrcqvr97zmm185b1vs0y28nq6vzlyyg15ap6qq"; - revision = "1"; - editedCabalFile = "10h1asqbk2qqmxac34amwjz9ybz2vahpa0dsrdljg3zw1r1yzkb8"; + version = "3.3.5"; + sha256 = "1pry95jik5bl49v1mj5g7lbax0937ra6g5wcpblypkpfwgh1h8l1"; isLibrary = true; isExecutable = true; enableSeparateDataOutput = true; @@ -139309,44 +139051,6 @@ self: { }) {}; "hpack" = callPackage - ({ mkDerivation, aeson, base, bifunctors, bytestring, Cabal - , containers, cryptonite, deepseq, directory, filepath, Glob, hspec - , hspec-discover, http-client, http-client-tls, http-types, HUnit - , infer-license, interpolate, mockery, pretty, QuickCheck - , scientific, template-haskell, temporary, text, transformers - , unordered-containers, vector, yaml - }: - mkDerivation { - pname = "hpack"; - version = "0.34.5"; - sha256 = "0gmm6jgi1sgyilphww6apq1x04grqznm7xhyb7g1rj5j7my40ws2"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base bifunctors bytestring Cabal containers cryptonite - deepseq directory filepath Glob http-client http-client-tls - http-types infer-license pretty scientific text transformers - unordered-containers vector yaml - ]; - executableHaskellDepends = [ - aeson base bifunctors bytestring Cabal containers cryptonite - deepseq directory filepath Glob http-client http-client-tls - http-types infer-license pretty scientific text transformers - unordered-containers vector yaml - ]; - testHaskellDepends = [ - aeson base bifunctors bytestring Cabal containers cryptonite - deepseq directory filepath Glob hspec http-client http-client-tls - http-types HUnit infer-license interpolate mockery pretty - QuickCheck scientific template-haskell temporary text transformers - unordered-containers vector yaml - ]; - testToolDepends = [ hspec-discover ]; - description = "A modern format for Haskell packages"; - license = lib.licenses.mit; - }) {}; - - "hpack_0_34_6" = callPackage ({ mkDerivation, aeson, base, bifunctors, bytestring, Cabal , containers, cryptonite, deepseq, directory, filepath, Glob, hspec , hspec-discover, http-client, http-client-tls, http-types, HUnit @@ -139382,7 +139086,6 @@ self: { testToolDepends = [ hspec-discover ]; description = "A modern format for Haskell packages"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; }) {}; "hpack-convert" = callPackage @@ -139448,6 +139151,37 @@ self: { license = lib.licenses.bsd3; }) {}; + "hpack-dhall_0_5_4" = callPackage + ({ mkDerivation, aeson, aeson-pretty, base, bytestring, Cabal + , dhall, dhall-json, Diff, directory, filepath, hlint, hpack + , megaparsec, microlens, optparse-applicative, prettyprinter, tasty + , tasty-golden, text, transformers, utf8-string, yaml + }: + mkDerivation { + pname = "hpack-dhall"; + version = "0.5.4"; + sha256 = "0yhf9b1nadcz98bq84jzb80mc1w4a6sph5d6c4pnf2xj2akdxcxf"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + aeson aeson-pretty base bytestring dhall dhall-json filepath hpack + megaparsec microlens prettyprinter text transformers yaml + ]; + executableHaskellDepends = [ + aeson aeson-pretty base bytestring dhall dhall-json filepath hpack + megaparsec microlens optparse-applicative prettyprinter text + transformers yaml + ]; + testHaskellDepends = [ + aeson aeson-pretty base bytestring Cabal dhall dhall-json Diff + directory filepath hlint hpack megaparsec microlens prettyprinter + tasty tasty-golden text transformers utf8-string yaml + ]; + description = "hpack's dhalling"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + }) {}; + "hpaco" = callPackage ({ mkDerivation, aeson, base, cmdargs, filepath, hpaco-lib, strict , utf8-string, yaml @@ -139971,8 +139705,8 @@ self: { }: mkDerivation { pname = "hpqtypes-extras"; - version = "1.13.1.0"; - sha256 = "19d55ivy39pipal8v3anymnh5fpzms4skcxd2mgv1chpdw60n09w"; + version = "1.14.0.0"; + sha256 = "143ghr188d9kp0cz421pr87sdvf2nzabp76b3py716xmrz9jckq5"; libraryHaskellDepends = [ base base16-bytestring bytestring containers cryptohash exceptions extra fields-json hpqtypes lifted-base log-base monad-control mtl @@ -143534,6 +143268,31 @@ self: { license = lib.licenses.mit; }) {}; + "hslua-aeson_2_0_0" = callPackage + ({ mkDerivation, aeson, base, bytestring, containers, hashable + , hslua-core, hslua-marshalling, ieee754, mtl, QuickCheck + , quickcheck-instances, scientific, tasty, tasty-hunit + , tasty-quickcheck, text, unordered-containers, vector + }: + mkDerivation { + pname = "hslua-aeson"; + version = "2.0.0"; + sha256 = "0djxr6f93n8dmaq4s8dfx0msx8vsg4mdszn407p48vlykxlgzpvd"; + libraryHaskellDepends = [ + aeson base bytestring containers hashable hslua-core + hslua-marshalling mtl scientific text unordered-containers vector + ]; + testHaskellDepends = [ + aeson base bytestring containers hashable hslua-core + hslua-marshalling ieee754 mtl QuickCheck quickcheck-instances + scientific tasty tasty-hunit tasty-quickcheck text + unordered-containers vector + ]; + description = "Allow aeson data types to be used with lua"; + license = lib.licenses.mit; + hydraPlatforms = lib.platforms.none; + }) {}; + "hslua-classes" = callPackage ({ mkDerivation, base, bytestring, containers, exceptions , hslua-core, hslua-marshalling, lua-arbitrary, QuickCheck @@ -146808,6 +146567,26 @@ self: { hydraPlatforms = lib.platforms.none; }) {}; + "http-api-data-qq" = callPackage + ({ mkDerivation, aeson, base, bytestring, containers, http-api-data + , http-client, tasty, tasty-hunit, tasty-quickcheck + , template-haskell, text + }: + mkDerivation { + pname = "http-api-data-qq"; + version = "0.1.0.0"; + sha256 = "1lvfdbprdwq09k1wkjfvvkpi79053dc4kzkv4g1cx94qb1flbd7a"; + libraryHaskellDepends = [ + base http-api-data template-haskell text + ]; + testHaskellDepends = [ + aeson base bytestring containers http-api-data http-client tasty + tasty-hunit tasty-quickcheck text + ]; + description = "Quasiquoter for building URLs with ToHttpApiData types"; + license = lib.licenses.bsd3; + }) {}; + "http-attoparsec" = callPackage ({ mkDerivation, attoparsec, base, bytestring, http-types }: mkDerivation { @@ -147241,26 +147020,6 @@ self: { }) {}; "http-directory" = callPackage - ({ mkDerivation, base, bytestring, hspec, html-conduit, http-client - , http-client-tls, http-date, http-types, network-uri, text, time - , xml-conduit - }: - mkDerivation { - pname = "http-directory"; - version = "0.1.8"; - sha256 = "0sav7z5vdda6zq1xyhvrqwh3kdn1bnpmwlhiaxr3sb1npz3hjgcn"; - libraryHaskellDepends = [ - base bytestring html-conduit http-client http-client-tls http-date - http-types network-uri text time xml-conduit - ]; - testHaskellDepends = [ base hspec text ]; - description = "http directory listing library"; - license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; - broken = true; - }) {}; - - "http-directory_0_1_9" = callPackage ({ mkDerivation, base, bytestring, hspec, html-conduit, http-client , http-client-tls, http-conduit, http-date, http-types, network-uri , text, time, xml-conduit @@ -147658,23 +147417,6 @@ self: { }) {}; "http-query" = callPackage - ({ mkDerivation, aeson, base, bytestring, http-conduit, network-uri - , text - }: - mkDerivation { - pname = "http-query"; - version = "0.1.0.1"; - sha256 = "11l3bxbaxkd0mrarp5l3s3c4xhvdiq8lj739hxspi6cgk0ywjwxw"; - revision = "1"; - editedCabalFile = "1c1xxzsdwclzmrgflaj1nz4k2ll5h53swpfimzxs37kjdxsxkr2b"; - libraryHaskellDepends = [ - aeson base bytestring http-conduit network-uri text - ]; - description = "Simple http queries"; - license = lib.licenses.bsd3; - }) {}; - - "http-query_0_1_1" = callPackage ({ mkDerivation, aeson, base, bytestring, http-conduit, network-uri , text }: @@ -147687,7 +147429,6 @@ self: { ]; description = "Simple http queries"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "http-querystring" = callPackage @@ -148905,14 +148646,14 @@ self: { license = lib.licenses.bsd3; }) {}; - "hvega_0_12_0_1" = callPackage + "hvega_0_12_0_2" = callPackage ({ mkDerivation, aeson, aeson-pretty, base, bytestring, containers , filepath, tasty, tasty-golden, text, unordered-containers }: mkDerivation { pname = "hvega"; - version = "0.12.0.1"; - sha256 = "078q38v39n7gcn0br598d9sfdk256jg8m1k5pi6w0asg0yd1bdyh"; + version = "0.12.0.2"; + sha256 = "0m78j7w7sf09yvvs995pvk66ifli7q1bl7r739mgm9dgxaw7wqhm"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ aeson base text unordered-containers ]; @@ -152388,43 +152129,6 @@ self: { }) {}; "ihaskell" = callPackage - ({ mkDerivation, aeson, base, base64-bytestring, bytestring, cereal - , cmdargs, containers, directory, exceptions, filepath, ghc - , ghc-boot, ghc-parser, ghc-paths, haskeline, here, hlint, hspec - , hspec-contrib, http-client, http-client-tls, HUnit - , ipython-kernel, mtl, parsec, process, random, raw-strings-qq - , setenv, shelly, split, stm, strict, text, time, transformers - , unix, unordered-containers, utf8-string, vector - }: - mkDerivation { - pname = "ihaskell"; - version = "0.10.2.1"; - sha256 = "1bpxm51c8f0cl7cvg7d2f39fnar7a811s3fgxvxmvsb7yw3v92vc"; - revision = "1"; - editedCabalFile = "0qw3zi7fs82k5kk08s6qmpnb6zhfjp77fpqylq9j2ip04sgdcdrp"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - aeson base base64-bytestring bytestring cereal cmdargs containers - directory exceptions filepath ghc ghc-boot ghc-parser ghc-paths - haskeline hlint http-client http-client-tls ipython-kernel mtl - parsec process random shelly split stm strict text time - transformers unix unordered-containers utf8-string vector - ]; - executableHaskellDepends = [ - aeson base bytestring containers directory ghc ipython-kernel - process strict text transformers unix unordered-containers - ]; - testHaskellDepends = [ - base directory ghc ghc-paths here hspec hspec-contrib HUnit - raw-strings-qq setenv shelly text transformers - ]; - description = "A Haskell backend kernel for the IPython project"; - license = lib.licenses.mit; - }) {}; - - "ihaskell_0_10_2_2" = callPackage ({ mkDerivation, aeson, base, base64-bytestring, binary, bytestring , cmdargs, containers, directory, exceptions, filepath, ghc , ghc-boot, ghc-parser, ghc-paths, haskeline, here, hlint, hspec @@ -152457,7 +152161,6 @@ self: { ]; description = "A Haskell backend kernel for the IPython project"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; }) {}; "ihaskell-aeson" = callPackage @@ -152577,8 +152280,8 @@ self: { ({ mkDerivation, aeson, base, hvega, ihaskell, text }: mkDerivation { pname = "ihaskell-hvega"; - version = "0.5.0.0"; - sha256 = "0nk38bz8rxj42gqchffdh25cr94fadlid7azzp7i9lxi63gq67wx"; + version = "0.5.0.2"; + sha256 = "0r0q4hfjcm2p229k2xwyh9xrxbm6i3vpy13rjpsv4x5n30rsv56s"; libraryHaskellDepends = [ aeson base hvega ihaskell text ]; description = "IHaskell display instance for hvega types"; license = lib.licenses.bsd3; @@ -154314,33 +154017,6 @@ self: { }) {}; "influxdb" = callPackage - ({ mkDerivation, aeson, attoparsec, base, bytestring, Cabal - , cabal-doctest, clock, containers, doctest, foldl, http-client - , http-types, lens, network, optional-args, raw-strings-qq - , scientific, tagged, tasty, tasty-hunit, template-haskell, text - , time, unordered-containers, vector - }: - mkDerivation { - pname = "influxdb"; - version = "1.9.2.1"; - sha256 = "1w47wfzrl6bqac251qfpq7mja9n08kf9cgp76mmyfq3yfzcxn1wl"; - isLibrary = true; - isExecutable = true; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - aeson attoparsec base bytestring clock containers foldl http-client - http-types lens network optional-args scientific tagged text time - unordered-containers vector - ]; - testHaskellDepends = [ - base containers doctest lens raw-strings-qq tasty tasty-hunit - template-haskell time vector - ]; - description = "InfluxDB client library for Haskell"; - license = lib.licenses.bsd3; - }) {}; - - "influxdb_1_9_2_2" = callPackage ({ mkDerivation, aeson, attoparsec, base, bytestring, Cabal , cabal-doctest, clock, containers, doctest, foldl, http-client , http-types, lens, network, optional-args, raw-strings-qq @@ -154365,7 +154041,6 @@ self: { ]; description = "InfluxDB client library for Haskell"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "informative" = callPackage @@ -155153,23 +154828,6 @@ self: { }) {}; "integer-roots" = callPackage - ({ mkDerivation, base, doctest, integer-gmp, smallcheck, tasty - , tasty-hunit, tasty-quickcheck, tasty-smallcheck - }: - mkDerivation { - pname = "integer-roots"; - version = "1.0.1.0"; - sha256 = "13x74gdh5wh9cr1yfx5l57p06aslcb3pncf8rhn6ihsfk2ni1sm4"; - libraryHaskellDepends = [ base integer-gmp ]; - testHaskellDepends = [ - base doctest smallcheck tasty tasty-hunit tasty-quickcheck - tasty-smallcheck - ]; - description = "Integer roots and perfect powers"; - license = lib.licenses.mit; - }) {}; - - "integer-roots_1_0_2_0" = callPackage ({ mkDerivation, base, doctest, integer-gmp, smallcheck, tasty , tasty-hunit, tasty-quickcheck, tasty-smallcheck }: @@ -155184,7 +154842,6 @@ self: { ]; description = "Integer roots and perfect powers"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; }) {}; "integer-simple" = callPackage @@ -155709,8 +155366,8 @@ self: { }: mkDerivation { pname = "interval-algebra"; - version = "1.1.1"; - sha256 = "1nqp0sj89vaq4cyfnpfj94xa4yvs6k2hsihw4gypwbmpmbsflwd7"; + version = "1.1.2"; + sha256 = "0cnzlsmqg6snvggq7fh2c6hmjaijxqz8ng0lnzfyz8p3lk4p42zi"; libraryHaskellDepends = [ base containers foldl QuickCheck safe time witherable ]; @@ -156711,30 +156368,6 @@ self: { }) {}; "ipython-kernel" = callPackage - ({ mkDerivation, aeson, base, bytestring, cereal, cereal-text - , containers, cryptonite, directory, filepath, memory, mtl, parsec - , process, temporary, text, transformers, unordered-containers - , uuid, zeromq4-haskell - }: - mkDerivation { - pname = "ipython-kernel"; - version = "0.10.2.1"; - sha256 = "016w7bmji3k1cnnl3vq35zq6fnqdvc2x762zfzv4ync2jz63rq38"; - revision = "1"; - editedCabalFile = "12h7nm3z53g7q0c8ckq3dqp7gdgcm6paln577c4pyhvh218iqycl"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - aeson base bytestring cereal cereal-text containers cryptonite - directory filepath memory mtl parsec process temporary text - transformers unordered-containers uuid zeromq4-haskell - ]; - description = "A library for creating kernels for IPython frontends"; - license = lib.licenses.mit; - }) {}; - - "ipython-kernel_0_10_2_2" = callPackage ({ mkDerivation, aeson, base, binary, bytestring, containers , cryptonite, directory, filepath, memory, parsec, process , temporary, text, transformers, unordered-containers, uuid @@ -156754,7 +156387,6 @@ self: { ]; description = "A library for creating kernels for IPython frontends"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; }) {}; "irc" = callPackage @@ -158216,8 +157848,8 @@ self: { }: mkDerivation { pname = "j"; - version = "0.3.0.0"; - sha256 = "15vzhvb0vhahyl0wxcqqf19si6r00y6l6nirmimjriznbzqccjz9"; + version = "0.3.0.1"; + sha256 = "1v4hp7skddbjw6d2ggyfspijmsxh346c97nxwh2anp05aykmzk7b"; libraryHaskellDepends = [ base bytestring repa unix vector ]; testHaskellDepends = [ base bytestring repa tasty tasty-hunit ]; description = "J in Haskell"; @@ -159497,8 +159129,8 @@ self: { }: mkDerivation { pname = "jsaddle"; - version = "0.9.8.0"; - sha256 = "0g3jdh4x80fsbrcj5kd81inv8hcx662v5dsn9d6q1dla0cz8w8i9"; + version = "0.9.8.1"; + sha256 = "19jszi6b2fhgz8cb0a4p6ixjg78c28cr78abwjcffbx173jp981h"; libraryHaskellDepends = [ aeson attoparsec base base-compat base64-bytestring bytestring containers deepseq exceptions filepath ghc-prim http-types lens @@ -159530,8 +159162,8 @@ self: { }: mkDerivation { pname = "jsaddle-dom"; - version = "0.9.4.1"; - sha256 = "190r17hfwkkwycj9ikdfvhvfpga30k5rnspib9hi8dygwxgifc6j"; + version = "0.9.5.0"; + sha256 = "1abl7rwh8yc7852vphv5g5k3jv6454cdrqd2dzmhxxhxqkgxv88p"; setupHaskellDepends = [ base Cabal ]; libraryHaskellDepends = [ base base-compat exceptions jsaddle lens text transformers @@ -159595,8 +159227,8 @@ self: { }: mkDerivation { pname = "jsaddle-webkit2gtk"; - version = "0.9.8.0"; - sha256 = "01iav691d3h6l9x7vw0spb68n4y5m9pb8d02iyp5lvkqr2y4h9kv"; + version = "0.9.8.1"; + sha256 = "1q4hyjlvw3m2139s1rp658hkqhnayk00nijdymjr8606d7cfyp7p"; libraryHaskellDepends = [ aeson base bytestring directory gi-gio gi-glib gi-gtk gi-javascriptcore gi-webkit2 haskell-gi-base haskell-gi-overloading @@ -160653,15 +160285,15 @@ self: { license = lib.licenses.mit; }) {}; - "jsonifier_0_1_2" = callPackage + "jsonifier_0_2" = callPackage ({ mkDerivation, aeson, base, buffer-builder, bytestring, gauge , hedgehog, numeric-limits, ptr-poker, rerebase, scientific, text , text-builder }: mkDerivation { pname = "jsonifier"; - version = "0.1.2"; - sha256 = "14cgk8h7lasnm0z9qlddkn166vk557msnkrpahdzqpl7arwdddid"; + version = "0.2"; + sha256 = "1bxcm4kzsscgc2kh17arq5556yyzhjl8pqc8m5i5jcqbs9ia0jh5"; libraryHaskellDepends = [ base bytestring ptr-poker scientific text ]; @@ -161296,10 +160928,8 @@ self: { }: mkDerivation { pname = "jwt"; - version = "0.10.0"; - sha256 = "1a1fqmqfm2ajq75mq2x6la8jb2g5hzl4dk8cgx9xsrikp8c7n75w"; - revision = "2"; - editedCabalFile = "1ld5dh4x3sb28416bk3k39k46vmx1s7agk17v7cb5cxam4hj3c1c"; + version = "0.10.1"; + sha256 = "02nymdz8yrvq4vw41ah5qmb4rn01xf300d7vz18j4nif55viag4z"; libraryHaskellDepends = [ aeson base bytestring containers cryptonite http-types memory network-uri scientific semigroups text time unordered-containers @@ -161315,27 +160945,27 @@ self: { license = lib.licenses.mit; }) {}; - "jwt_0_10_1" = callPackage + "jwt_0_11_0" = callPackage ({ mkDerivation, aeson, base, bytestring, containers, cryptonite - , doctest, http-types, HUnit, lens, lens-aeson, memory, network-uri - , QuickCheck, scientific, semigroups, tasty, tasty-hunit - , tasty-quickcheck, tasty-th, text, time, unordered-containers - , vector, x509, x509-store + , cryptostore, doctest, http-types, HUnit, lens, lens-aeson, memory + , network-uri, QuickCheck, scientific, semigroups, tasty + , tasty-hunit, tasty-quickcheck, tasty-th, text, time + , unordered-containers, vector, x509, x509-store }: mkDerivation { pname = "jwt"; - version = "0.10.1"; - sha256 = "02nymdz8yrvq4vw41ah5qmb4rn01xf300d7vz18j4nif55viag4z"; + version = "0.11.0"; + sha256 = "1l9qblq11kbrrmcfnh0hcjqnhmi3qm6va3z4pmi4i32wqh3bwjnx"; libraryHaskellDepends = [ - aeson base bytestring containers cryptonite http-types memory - network-uri scientific semigroups text time unordered-containers - vector x509 x509-store + aeson base bytestring containers cryptonite cryptostore http-types + memory network-uri scientific semigroups text time + unordered-containers vector x509 x509-store ]; testHaskellDepends = [ - aeson base bytestring containers cryptonite doctest http-types - HUnit lens lens-aeson memory network-uri QuickCheck scientific - semigroups tasty tasty-hunit tasty-quickcheck tasty-th text time - unordered-containers vector x509 x509-store + aeson base bytestring containers cryptonite cryptostore doctest + http-types HUnit lens lens-aeson memory network-uri QuickCheck + scientific semigroups tasty tasty-hunit tasty-quickcheck tasty-th + text time unordered-containers vector x509 x509-store ]; description = "JSON Web Token (JWT) decoding and encoding"; license = lib.licenses.mit; @@ -161931,22 +161561,6 @@ self: { }) {}; "katip-logstash" = callPackage - ({ mkDerivation, aeson, base, katip, logstash, retry, stm - , stm-chans, text, transformers, unliftio - }: - mkDerivation { - pname = "katip-logstash"; - version = "0.1.0.0"; - sha256 = "16rw2bxbi5kklz6pz8zj7dq7as58v4yfjq7npnlyyx658nvhia6l"; - libraryHaskellDepends = [ - aeson base katip logstash retry stm stm-chans text transformers - unliftio - ]; - description = "Logstash backend for katip"; - license = lib.licenses.mit; - }) {}; - - "katip-logstash_0_1_0_2" = callPackage ({ mkDerivation, aeson, base, katip, logstash, retry, stm , stm-chans, text, transformers, unliftio }: @@ -161960,7 +161574,6 @@ self: { ]; description = "Logstash backend for katip"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; }) {}; "katip-logzio" = callPackage @@ -162878,8 +162491,8 @@ self: { }: mkDerivation { pname = "kempe"; - version = "0.2.0.9"; - sha256 = "0jjm31zngnyg9k0i033zwikkjk6n490j1jjrkvnzhcvm0rjvh5vj"; + version = "0.2.0.11"; + sha256 = "1w8gkw64f68xalcags3lqaa07jcmh1y5z43c64xprqplgnh5fs98"; isLibrary = false; isExecutable = true; enableSeparateDataOutput = true; @@ -163526,6 +163139,23 @@ self: { hydraPlatforms = lib.platforms.none; }) {}; + "kmn-programming" = callPackage + ({ mkDerivation, base, optparse-applicative, random, random-shuffle + , time, x86-64bit + }: + mkDerivation { + pname = "kmn-programming"; + version = "0.9.2"; + sha256 = "0frvinckcw90y75qmnm8ns0c9ydcpmdakdk53hwga7i4sqrjdwma"; + isLibrary = false; + isExecutable = true; + executableHaskellDepends = [ + base optparse-applicative random random-shuffle time x86-64bit + ]; + description = "K_M,N quadratic programming"; + license = lib.licenses.bsd3; + }) {}; + "kmonad" = callPackage ({ mkDerivation, base, cereal, lens, megaparsec, mtl , optparse-applicative, resourcet, rio, time, unix, unliftio @@ -163706,18 +163336,19 @@ self: { }) {}; "koji-install" = callPackage - ({ mkDerivation, base, directory, extra, filepath, koji, rpm-nvr - , simple-cmd, simple-cmd-args, xdg-userdirs + ({ mkDerivation, base, directory, extra, filepath, Glob + , http-directory, koji, rpm-nvr, simple-cmd, simple-cmd-args + , xdg-userdirs }: mkDerivation { pname = "koji-install"; - version = "0.3"; - sha256 = "1a2smdx0z172ajszrr0f4zgz00hxbdp8z923qakh969x48v9259b"; + version = "0.4"; + sha256 = "1qsrg57ak7zxmx6c6q83da0dzfhvdcj4ycnz4026xp25ijhl5frd"; isLibrary = false; isExecutable = true; executableHaskellDepends = [ - base directory extra filepath koji rpm-nvr simple-cmd - simple-cmd-args xdg-userdirs + base directory extra filepath Glob http-directory koji rpm-nvr + simple-cmd simple-cmd-args xdg-userdirs ]; testHaskellDepends = [ base simple-cmd ]; description = "CLI tool for installing rpms directly from Fedora Koji"; @@ -166583,28 +166214,6 @@ self: { }) {}; "language-thrift" = callPackage - ({ mkDerivation, ansi-wl-pprint, base, containers, hspec - , hspec-discover, megaparsec, QuickCheck, scientific, semigroups - , text, transformers - }: - mkDerivation { - pname = "language-thrift"; - version = "0.12.0.0"; - sha256 = "1a7v0337zvfc3x6665grzngs9m9ya3jk27h3blcz9p33m8rladhl"; - libraryHaskellDepends = [ - ansi-wl-pprint base containers megaparsec scientific semigroups - text transformers - ]; - testHaskellDepends = [ - ansi-wl-pprint base containers hspec megaparsec QuickCheck - scientific semigroups text transformers - ]; - testToolDepends = [ hspec-discover ]; - description = "Parser and pretty printer for the Thrift IDL format"; - license = lib.licenses.bsd3; - }) {}; - - "language-thrift_0_12_0_1" = callPackage ({ mkDerivation, ansi-wl-pprint, base, containers, hspec , hspec-discover, megaparsec, QuickCheck, scientific, semigroups , text, transformers @@ -166624,7 +166233,6 @@ self: { testToolDepends = [ hspec-discover ]; description = "Parser and pretty printer for the Thrift IDL format"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "language-tl" = callPackage @@ -169330,8 +168938,8 @@ self: { ({ mkDerivation, base, deepseq, hashable }: mkDerivation { pname = "libBF"; - version = "0.6.2"; - sha256 = "00axpwgwzqchma89fdp1dxk97palvgv4j1ag8dq1w4gl9yh5q0vx"; + version = "0.6.3"; + sha256 = "1zfnyxplfffs8739b3p6yxy706nkm0qsnxn4yxyrrris637ync3f"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ base deepseq hashable ]; @@ -170718,10 +170326,8 @@ self: { }: mkDerivation { pname = "lifx-lan"; - version = "0.5.0.1"; - sha256 = "0rww31gcp5asbc0zb6fz7ddgw3dih6l2mc0rln7nf3qd04hplk6v"; - revision = "2"; - editedCabalFile = "0k4lm2qbqq4xb5rxb0nik5sc898g4w7k050j4gs1ri4xbz32z7cn"; + version = "0.5.1.1"; + sha256 = "1rk1ln19hlcvs3g25pq4p136zxbd1lxi4pjfflngb691mvvb7ih6"; libraryHaskellDepends = [ base binary bytestring composition containers extra monad-loops mtl network random safe text time transformers @@ -172544,24 +172150,6 @@ self: { }) {}; "list-t" = callPackage - ({ mkDerivation, base, base-prelude, foldl, HTF, logict, mmorph - , monad-control, mtl, mtl-prelude, semigroups, transformers - , transformers-base - }: - mkDerivation { - pname = "list-t"; - version = "1.0.5"; - sha256 = "1gyn25ra5y8bv1hxlsjg6l1dmzp6wj9g81v1nxz1p545cbl3g9my"; - libraryHaskellDepends = [ - base foldl logict mmorph monad-control mtl semigroups transformers - transformers-base - ]; - testHaskellDepends = [ base-prelude HTF mmorph mtl-prelude ]; - description = "ListT done right"; - license = lib.licenses.mit; - }) {}; - - "list-t_1_0_5_1" = callPackage ({ mkDerivation, base, base-prelude, foldl, HTF, logict, mmorph , monad-control, mtl, mtl-prelude, semigroups, transformers , transformers-base @@ -172577,7 +172165,6 @@ self: { testHaskellDepends = [ base-prelude HTF mmorph mtl-prelude ]; description = "ListT done right"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; }) {}; "list-t-attoparsec" = callPackage @@ -174690,24 +174277,6 @@ self: { }) {}; "logstash" = callPackage - ({ mkDerivation, aeson, async, base, bytestring, data-default-class - , exceptions, monad-control, mtl, network, resource-pool, resourcet - , retry, stm, stm-chans, time, tls, unbounded-delays, unliftio - }: - mkDerivation { - pname = "logstash"; - version = "0.1.0.1"; - sha256 = "1hi77m4iijrkyg3v2g6m0yqh1vga35sbh9nq22g9mdflsv353ffi"; - libraryHaskellDepends = [ - aeson async base bytestring data-default-class exceptions - monad-control mtl network resource-pool resourcet retry stm - stm-chans time tls unbounded-delays unliftio - ]; - description = "Logstash client library for Haskell"; - license = lib.licenses.mit; - }) {}; - - "logstash_0_1_0_3" = callPackage ({ mkDerivation, aeson, async, base, bytestring, data-default-class , exceptions, monad-control, mtl, network, resource-pool, resourcet , retry, stm, stm-chans, time, tls, unbounded-delays, unliftio @@ -174723,7 +174292,6 @@ self: { ]; description = "Logstash client library for Haskell"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; }) {}; "lojban" = callPackage @@ -175023,8 +174591,8 @@ self: { }: mkDerivation { pname = "longshot"; - version = "0.1.0.5"; - sha256 = "1xgdkfykiwzscq91z7xg1dgsh9ma6bg03d82f58r297c7fzivvak"; + version = "0.1.0.6"; + sha256 = "0wwlc78yhks2wwjawvf43d57kfq8cwghvx5ha54f1zkn2xds16zf"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -177752,20 +177320,6 @@ self: { }) {}; "managed" = callPackage - ({ mkDerivation, base, transformers }: - mkDerivation { - pname = "managed"; - version = "1.0.8"; - sha256 = "00wzfy9facwgimrilz7bxaigr79w10733h8zfgyhll644p2rnz38"; - revision = "1"; - editedCabalFile = "1b95c8lfc45lqjmykbyrls7lpnyjsv770zsdyg5fw9x65r83mdw2"; - libraryHaskellDepends = [ base transformers ]; - description = "A monad for managed values"; - license = lib.licenses.bsd3; - maintainers = with lib.maintainers; [ Gabriel439 ]; - }) {}; - - "managed_1_0_9" = callPackage ({ mkDerivation, base, transformers }: mkDerivation { pname = "managed"; @@ -177776,7 +177330,6 @@ self: { libraryHaskellDepends = [ base transformers ]; description = "A monad for managed values"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; @@ -179820,8 +179373,8 @@ self: { }: mkDerivation { pname = "matterhorn"; - version = "50200.14.1"; - sha256 = "0bxz54881pypwwr2acxarsk362708vwii2krq1ya0kg2ybhcxh72"; + version = "50200.15.0"; + sha256 = "0hn3d1fifzls714a0hsvhbf7wxhg0q60igpr2jcd76yqnzax1mda"; isLibrary = true; isExecutable = true; enableSeparateDataOutput = true; @@ -180897,10 +180450,11 @@ self: { }: mkDerivation { pname = "melf"; - version = "1.0.0"; - sha256 = "0mh7nij7cr7305gnz5an2g8f3v5dgd4nck4czhfnw0qx88zilzd7"; + version = "1.0.1"; + sha256 = "1k4174ssrj5d6qjj9fcxd8q586c96jpwzf4f19kqhv8w4mbpvfl0"; isLibrary = true; isExecutable = true; + enableSeparateDataOutput = true; libraryHaskellDepends = [ base binary bytestring exceptions mtl prettyprinter singletons template-haskell @@ -181337,6 +180891,24 @@ self: { hydraPlatforms = lib.platforms.none; }) {}; + "memory-cd" = callPackage + ({ mkDerivation, base, basement-cd, bytestring, deepseq, foundation + , ghc-prim, memory + }: + mkDerivation { + pname = "memory-cd"; + version = "0.16.0.1"; + sha256 = "05dkgkms159k4mk4l1ngcnxqs2hbnzmh9zv3gks0cx7wba6qyrf1"; + libraryHaskellDepends = [ + base basement-cd bytestring deepseq ghc-prim + ]; + testHaskellDepends = [ + base basement-cd bytestring foundation memory + ]; + description = "memory and related abstraction stuff"; + license = lib.licenses.bsd3; + }) {}; + "memorypool" = callPackage ({ mkDerivation, base, containers, transformers, unsafe, vector }: mkDerivation { @@ -183753,18 +183325,18 @@ self: { "miso" = callPackage ({ mkDerivation, aeson, base, bytestring, containers, file-embed , http-api-data, http-types, jsaddle, lucid, network-uri, servant - , servant-lucid, tagsoup, text, transformers, vector + , servant-lucid, tagsoup, text, transformers }: mkDerivation { pname = "miso"; - version = "1.8.0.0"; - sha256 = "02j6z7l8016cccm9i699b0ggp3l6hxhk0j7m8kiw5d7ik4wciphv"; + version = "1.8.1.0"; + sha256 = "0p7gh5ibz84fckc7pkh789jwl0ffxz0ixygbxx1w0r0hs22pn4ia"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ aeson base bytestring containers file-embed http-api-data http-types jsaddle lucid network-uri servant servant-lucid tagsoup - text transformers vector + text transformers ]; description = "A tasty Haskell front-end framework"; license = lib.licenses.bsd3; @@ -183787,8 +183359,8 @@ self: { ({ mkDerivation }: mkDerivation { pname = "miso-examples"; - version = "1.8.0.0"; - sha256 = "1dr967y1ffp1lw6jiclrgqvfvfi68d88l5qbsyl8bidfzvm7sbk1"; + version = "1.8.1.0"; + sha256 = "1l9984zzfb6dkrid342p6y0v36xx0jki54mlhq3w7j4x4ppjxj0k"; isLibrary = false; isExecutable = true; description = "A tasty Haskell front-end framework"; @@ -186156,6 +185728,8 @@ self: { pname = "monad-st"; version = "0.2.4.1"; sha256 = "025zi9xzliwgyasq5hrfxwzg4ksj3kj0ys2kp62fi1n4ddbih64f"; + revision = "1"; + editedCabalFile = "01bb0a8h51inkn0hyvgw5iw662q6853j47bvjdha8a2z3fwapfya"; libraryHaskellDepends = [ base transformers ]; description = "Provides a MonadST class"; license = lib.licenses.bsd3; @@ -186272,6 +185846,21 @@ self: { broken = true; }) {}; + "monad-throw-exit" = callPackage + ({ mkDerivation, base, exceptions, hspec, QuickCheck, typed-process + }: + mkDerivation { + pname = "monad-throw-exit"; + version = "0.1.0.0"; + sha256 = "06f5z978gjmqpclqzyvy7yp9jdwifl0dnmkvid73hvndj05g89xf"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ base exceptions ]; + testHaskellDepends = [ base hspec QuickCheck typed-process ]; + description = "Functions to exit the program anywhere in MonadThrow monads"; + license = lib.licenses.asl20; + }) {}; + "monad-time" = callPackage ({ mkDerivation, base, mtl, time }: mkDerivation { @@ -187130,8 +186719,8 @@ self: { }: mkDerivation { pname = "monoidal-containers"; - version = "0.6.1.0"; - sha256 = "1pc9yrdm7bi6bibr46a03w3sykm8v7lhf0hdx2igv0c9rxsak2q1"; + version = "0.6.2.0"; + sha256 = "0rnhlm77zrql42z3zsn3ag279q0vrz2idygc0x4p50q3780670p3"; libraryHaskellDepends = [ aeson base containers deepseq hashable lens newtype semialign these unordered-containers witherable @@ -187146,12 +186735,13 @@ self: { }: mkDerivation { pname = "monoidal-functors"; - version = "0.1.0.0"; - sha256 = "0k590a0hmdzg9zwq697v73xdr0xh03yalr5pzxqkbx59grg31dw3"; + version = "0.1.1.0"; + sha256 = "11qac7z7xy8rwdzmp3x1i7bd28xvpd13yyfi27rsn56pyq6a4rqf"; libraryHaskellDepends = [ base bifunctors comonad contravariant profunctors semigroupoids tagged these ]; + description = "Monoidal Functors Library"; license = lib.licenses.mit; }) {}; @@ -188927,13 +188517,13 @@ self: { "msgpack-types" = callPackage ({ mkDerivation, base, bytestring, containers, deepseq - , generic-arbitrary, hashable, hspec, QuickCheck, text - , unordered-containers, vector + , generic-arbitrary, hashable, hspec, hspec-discover, QuickCheck + , text, unordered-containers, vector }: mkDerivation { pname = "msgpack-types"; - version = "0.0.4"; - sha256 = "076szvjs80a765c72prjp73416gyq70b4k1319qfl339sa8lz1ky"; + version = "0.1.0"; + sha256 = "1q28xxv6093h6xp6mih515cid5dm08dz5ak2y1jvcb1b2lf29s01"; libraryHaskellDepends = [ base bytestring containers deepseq hashable QuickCheck text unordered-containers vector @@ -188942,6 +188532,7 @@ self: { base bytestring containers deepseq generic-arbitrary hashable hspec QuickCheck text unordered-containers vector ]; + testToolDepends = [ hspec-discover ]; description = "A Haskell implementation of MessagePack"; license = lib.licenses.bsd3; }) {}; @@ -190851,37 +190442,6 @@ self: { }) {}; "mustache" = callPackage - ({ mkDerivation, aeson, base, base-unicode-symbols, bytestring - , cmdargs, containers, directory, either, filepath, hspec, lens - , mtl, parsec, process, scientific, tar, template-haskell - , temporary, text, th-lift, unordered-containers, vector, wreq - , yaml, zlib - }: - mkDerivation { - pname = "mustache"; - version = "2.3.1"; - sha256 = "0j5kzlirirnj2lscxgc6r9j0if8s3pvxswjblma6yxpw6qyzk2xc"; - revision = "1"; - editedCabalFile = "05qsxxpbqacfbvdzmz2y2yh3rpf2f0n2rvhvmhn33gsvydxvadbv"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base bytestring containers directory either filepath mtl - parsec scientific template-haskell text th-lift - unordered-containers vector - ]; - executableHaskellDepends = [ - aeson base bytestring cmdargs filepath text yaml - ]; - testHaskellDepends = [ - aeson base base-unicode-symbols bytestring directory filepath hspec - lens process tar temporary text unordered-containers wreq yaml zlib - ]; - description = "A mustache template parser library"; - license = lib.licenses.bsd3; - }) {}; - - "mustache_2_3_2" = callPackage ({ mkDerivation, aeson, base, base-unicode-symbols, bytestring , cmdargs, containers, directory, filepath, hspec, lens, mtl , parsec, process, scientific, tar, template-haskell, temporary @@ -190891,6 +190451,8 @@ self: { pname = "mustache"; version = "2.3.2"; sha256 = "0pnvnqrm7sd1iglh298yl91mv69p3ra25s5xrlk73kb56albdbaq"; + revision = "1"; + editedCabalFile = "11y1mdb9p5b86ld8giy5n5idylnmyafp170rhp45vmdjhyfjivjv"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -190907,7 +190469,6 @@ self: { ]; description = "A mustache template parser library"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "mustache-haskell" = callPackage @@ -194499,15 +194060,16 @@ self: { "network-protocol-xmpp" = callPackage ({ mkDerivation, base, bytestring, gnuidn, gnutls, gsasl - , libxml-sax, monads-tf, network, text, transformers, xml-types + , libxml-sax, monads-tf, network, network-simple, text + , transformers, xml-types }: mkDerivation { pname = "network-protocol-xmpp"; - version = "0.4.9"; - sha256 = "1qjm22qvsmfsf9kmg0ha117yidys0yp80mawvnzs8ym5a6j80x42"; + version = "0.4.10"; + sha256 = "03xlw8337lzwp7f5jvbvgirf546pfmfsfjvnik08qjjy1rfn5jji"; libraryHaskellDepends = [ base bytestring gnuidn gnutls gsasl libxml-sax monads-tf network - text transformers xml-types + network-simple text transformers xml-types ]; description = "Client library for the XMPP protocol"; license = lib.licenses.gpl3Only; @@ -195537,8 +195099,8 @@ self: { }: mkDerivation { pname = "ngx-export-tools-extra"; - version = "0.8.2.0"; - sha256 = "1dkjfjgizi3sqnz894im70hgpabrngz6fqgzzizilg2hj0250xhm"; + version = "1.0"; + sha256 = "1p77wanci0bs5bvhxd8fjfqpm5aasvwxgxhpazkcvhb0s8lr67am"; libraryHaskellDepends = [ aeson array base base64 binary bytestring case-insensitive containers ede enclosed-exceptions http-client http-types network @@ -198620,6 +198182,23 @@ self: { broken = true; }) {}; + "oath" = callPackage + ({ mkDerivation, async, base, futures, promise, stm, stm-delay + , streamly, tasty-bench, unsafe-promises + }: + mkDerivation { + pname = "oath"; + version = "0.0"; + sha256 = "1vrspqs9inhdwavz39z0fy05kjpbklz07qm4irx6h9w1552xwb77"; + libraryHaskellDepends = [ base stm stm-delay ]; + testHaskellDepends = [ + async base futures promise streamly unsafe-promises + ]; + benchmarkHaskellDepends = [ async base streamly tasty-bench ]; + description = "Composable concurrent computation done right"; + license = lib.licenses.bsd3; + }) {}; + "oauth10a" = callPackage ({ mkDerivation, aeson, base, base64-bytestring, bytestring , cryptohash, entropy, http-types, time, transformers @@ -199171,27 +198750,6 @@ self: { }) {}; "oeis2" = callPackage - ({ mkDerivation, aeson, base, containers, hspec, http-conduit, lens - , lens-aeson, QuickCheck, text, vector - }: - mkDerivation { - pname = "oeis2"; - version = "1.0.5"; - sha256 = "1incjy5si6lwsvh2hfdw61m3jq9qad06nrrylj5b8n5yj54wzna8"; - libraryHaskellDepends = [ - aeson base containers http-conduit lens lens-aeson text vector - ]; - testHaskellDepends = [ - aeson base containers hspec http-conduit lens lens-aeson QuickCheck - text vector - ]; - description = "Interface for Online Encyclopedia of Integer Sequences (OEIS)"; - license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; - broken = true; - }) {}; - - "oeis2_1_0_6" = callPackage ({ mkDerivation, aeson, base, containers, hspec, http-conduit, lens , lens-aeson, QuickCheck, text, vector }: @@ -200327,37 +199885,78 @@ self: { license = lib.licenses.bsd3; }) {}; + "openapi3_3_2_0" = callPackage + ({ mkDerivation, aeson, aeson-pretty, base, base-compat-batteries + , bytestring, Cabal, cabal-doctest, containers, cookie, doctest + , generics-sop, Glob, hashable, hspec, hspec-discover, http-media + , HUnit, insert-ordered-containers, lens, mtl, network, optics-core + , optics-th, QuickCheck, quickcheck-instances, scientific + , template-haskell, text, time, transformers, unordered-containers + , utf8-string, uuid-types, vector + }: + mkDerivation { + pname = "openapi3"; + version = "3.2.0"; + sha256 = "0xlfjpcl8l7xf8g65hqbiynhqh9yzsm11gm0qaax8mn7hc8k7jji"; + revision = "1"; + editedCabalFile = "0mhfsg1mgkanxy9rzhvsn3zibqhbqwsvqj6pawhsnbfn9fcyjmgb"; + isLibrary = true; + isExecutable = true; + setupHaskellDepends = [ base Cabal cabal-doctest ]; + libraryHaskellDepends = [ + aeson aeson-pretty base base-compat-batteries bytestring containers + cookie generics-sop hashable http-media insert-ordered-containers + lens mtl network optics-core optics-th QuickCheck scientific + template-haskell text time transformers unordered-containers + uuid-types vector + ]; + executableHaskellDepends = [ aeson base lens text ]; + testHaskellDepends = [ + aeson base base-compat-batteries bytestring containers doctest Glob + hashable hspec HUnit insert-ordered-containers lens mtl QuickCheck + quickcheck-instances template-haskell text time + unordered-containers utf8-string vector + ]; + testToolDepends = [ hspec-discover ]; + description = "OpenAPI 3.0 data model"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + }) {}; + "openapi3-code-generator" = callPackage - ({ mkDerivation, aeson, base, bytestring, containers, directory - , filepath, genvalidity, genvalidity-hspec, genvalidity-text - , hashmap, hspec, http-client, http-conduit, http-types, mtl - , options, QuickCheck, scientific, split, template-haskell, text + ({ mkDerivation, aeson, autodocodec, autodocodec-yaml, base + , bytestring, containers, directory, filepath, genvalidity + , genvalidity-hspec, genvalidity-text, hashmap, hspec, http-client + , http-conduit, http-types, mtl, optparse-applicative, path + , path-io, QuickCheck, scientific, split, template-haskell, text , time, transformers, unordered-containers, validity, validity-text , vector, yaml }: mkDerivation { pname = "openapi3-code-generator"; - version = "0.1.0.6"; - sha256 = "1nf7m27m5l56ms45lldbbqcwz3rcdw5jr3kk7si280h3153yhayc"; + version = "0.1.0.7"; + sha256 = "18g7xca0q4l4zn5k1wvx3zvnvidagab7vjwb4g68xy18rxh3q2ap"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ - aeson base bytestring containers hashmap http-client http-conduit - http-types mtl options scientific split template-haskell text time - transformers unordered-containers vector yaml + aeson autodocodec autodocodec-yaml base bytestring containers + directory filepath hashmap http-client http-conduit http-types mtl + optparse-applicative path path-io scientific split template-haskell + text time transformers unordered-containers vector yaml ]; executableHaskellDepends = [ - aeson base bytestring containers directory filepath hashmap - http-client http-conduit http-types mtl options scientific split - template-haskell text time transformers unordered-containers vector - yaml + aeson autodocodec autodocodec-yaml base bytestring containers + directory filepath hashmap http-client http-conduit http-types mtl + optparse-applicative path path-io scientific split template-haskell + text time transformers unordered-containers vector yaml ]; testHaskellDepends = [ - aeson base bytestring containers genvalidity genvalidity-hspec - genvalidity-text hashmap hspec http-client http-conduit http-types - mtl options QuickCheck scientific split template-haskell text time - transformers unordered-containers validity validity-text vector - yaml + aeson autodocodec autodocodec-yaml base bytestring containers + directory filepath genvalidity genvalidity-hspec genvalidity-text + hashmap hspec http-client http-conduit http-types mtl + optparse-applicative path path-io QuickCheck scientific split + template-haskell text time transformers unordered-containers + validity validity-text vector yaml ]; description = "OpenAPI3 Haskell Client Code Generator"; license = lib.licenses.mit; @@ -201587,8 +201186,8 @@ self: { pname = "optics-extra"; version = "0.3"; sha256 = "15vnznmi4h9xrrp7dk6fqgz9cwlqlmdr2h4nx1n5q6hi2ic1bmm4"; - revision = "2"; - editedCabalFile = "13x3mavf2bi25ns03b93b5ghhkyivwxf6idn0wqs9fdiih1xvhv8"; + revision = "3"; + editedCabalFile = "1mfxbi2a0hbdzd5blps2s6ik0phia5w8nh9fs3wfa990m63nsscr"; libraryHaskellDepends = [ array base bytestring containers hashable indexed-profunctors mtl optics-core text transformers unordered-containers vector @@ -203042,6 +202641,8 @@ self: { pname = "package-description-remote"; version = "0.2.0.0"; sha256 = "0i47yvjcfc6fyxvz39bambvfsnpix5r25cbm12b4sp968qinv4sa"; + revision = "1"; + editedCabalFile = "0kl6g6yqznzrp5r48xwy5hbmi3hx3vhvln8699zdb7nymsiympis"; libraryHaskellDepends = [ base bytestring Cabal lens lens-aeson wreq ]; @@ -203072,6 +202673,26 @@ self: { broken = true; }) {}; + "package-version" = callPackage + ({ mkDerivation, base, deepseq, doctest, hedgehog, prettyprinter + , safe-exceptions, tagged, tasty, tasty-hedgehog, tasty-hunit + , template-haskell, text + }: + mkDerivation { + pname = "package-version"; + version = "0.1.0.0"; + sha256 = "1r1rw412f40ylnyhxjb04f2ch52wqqblm8979x92n8fd9jj3lr84"; + libraryHaskellDepends = [ + base deepseq prettyprinter safe-exceptions template-haskell text + ]; + testHaskellDepends = [ + base doctest hedgehog safe-exceptions tagged tasty tasty-hedgehog + tasty-hunit text + ]; + description = "A package for retrieving a package's version number"; + license = lib.licenses.bsd3; + }) {}; + "package-vt" = callPackage ({ mkDerivation, base, Cabal, Diff, filepath, haskell-src-exts }: mkDerivation { @@ -204097,21 +203718,22 @@ self: { }) {}; "pandoc-lua-marshal" = callPackage - ({ mkDerivation, base, bytestring, exceptions, hslua + ({ mkDerivation, base, bytestring, containers, exceptions, hslua , hslua-marshalling, lua, pandoc-types, QuickCheck, safe, tasty , tasty-hunit, tasty-lua, tasty-quickcheck, text }: mkDerivation { pname = "pandoc-lua-marshal"; - version = "0.1.0.1"; - sha256 = "091aliy9ys5sq4bp69fa6ypynqvbkkr9xx8xzxq0dd4lmdy36a7q"; + version = "0.1.2"; + sha256 = "13w9wp5gq0mici6faf2shpwbm7a7akh4h4gvkhki88kj4sbfvikp"; libraryHaskellDepends = [ - base bytestring exceptions hslua hslua-marshalling lua pandoc-types - safe text + base bytestring containers exceptions hslua hslua-marshalling lua + pandoc-types safe text ]; testHaskellDepends = [ - base bytestring exceptions hslua hslua-marshalling lua pandoc-types - QuickCheck safe tasty tasty-hunit tasty-lua tasty-quickcheck text + base bytestring containers exceptions hslua hslua-marshalling lua + pandoc-types QuickCheck safe tasty tasty-hunit tasty-lua + tasty-quickcheck text ]; description = "Use pandoc types in Lua"; license = lib.licenses.mit; @@ -204414,8 +204036,8 @@ self: { ({ mkDerivation }: mkDerivation { pname = "pandora"; - version = "0.4.7"; - sha256 = "1kda661i18kzrfj38si48n1shbqxh30p1sz97cb871ni2hlqsarj"; + version = "0.4.8"; + sha256 = "0ifhigbvx24j8xg4h90xc2lfpzlb04ndlqyvym2gbmh8rmg87bjd"; description = "A box of patterns and paradigms"; license = lib.licenses.mit; }) {}; @@ -205491,6 +205113,17 @@ self: { license = lib.licenses.mit; }) {}; + "park-bench" = callPackage + ({ mkDerivation, base, bytestring, text }: + mkDerivation { + pname = "park-bench"; + version = "0.1.0"; + sha256 = "0ygj4x3s0s53pwp256ypwarfiwccg3mr7drgjxp41bpc8hs66v4y"; + libraryHaskellDepends = [ base bytestring text ]; + description = "A quick-and-dirty, low-friction benchmark tool with immediate feedback"; + license = lib.licenses.bsd3; + }) {}; + "parochial" = callPackage ({ mkDerivation, base, blaze-html, blaze-markup, Cabal, directory , filepath, filepattern, hackage-db, hoogle, optparse-generic @@ -205556,6 +205189,19 @@ self: { hydraPlatforms = lib.platforms.none; }) {}; + "parse" = callPackage + ({ mkDerivation, base, split, tasty, tasty-hunit, template-haskell + }: + mkDerivation { + pname = "parse"; + version = "0.1.0.0"; + sha256 = "0jnj2q99z2q4l4iclkissq6328dr51pv9g225nrbqanihwai6pl3"; + libraryHaskellDepends = [ base split template-haskell ]; + testHaskellDepends = [ base tasty tasty-hunit ]; + description = "Simple way to parse strings with Python-like format strings"; + license = lib.licenses.bsd3; + }) {}; + "parse-dimacs" = callPackage ({ mkDerivation, array, base, bytestring, parsec }: mkDerivation { @@ -209118,24 +208764,25 @@ self: { license = lib.licenses.bsd3; }) {}; - "persistent-mtl_0_3_0_0" = callPackage + "persistent-mtl_0_4_0_0" = callPackage ({ mkDerivation, base, bytestring, conduit, containers, esqueleto - , monad-logger, mtl, persistent, persistent-postgresql - , persistent-sqlite, persistent-template, resource-pool, resourcet - , tasty, tasty-golden, tasty-hunit, text, transformers, unliftio - , unliftio-core, unliftio-pool + , exceptions, explainable-predicates, monad-logger, mtl, persistent + , persistent-postgresql, persistent-sqlite, persistent-template + , resource-pool, resourcet, tasty, tasty-golden, tasty-hunit, text + , transformers, unliftio, unliftio-core, unliftio-pool }: mkDerivation { pname = "persistent-mtl"; - version = "0.3.0.0"; - sha256 = "1srahd7n5xcl6sai2p3y1vmin9sbyf30xxqcjhqsj3bl5hjab5hz"; + version = "0.4.0.0"; + sha256 = "1i8azgcgj245dw59wnsh1cpn8n3l6b8s8gh5rim8jl315rxbsn5w"; libraryHaskellDepends = [ - base conduit containers mtl persistent resource-pool resourcet text - transformers unliftio unliftio-core unliftio-pool + base conduit containers exceptions monad-logger mtl persistent + resource-pool resourcet text transformers unliftio unliftio-core + unliftio-pool ]; testHaskellDepends = [ - base bytestring conduit containers esqueleto monad-logger - persistent persistent-postgresql persistent-sqlite + base bytestring conduit containers esqueleto explainable-predicates + monad-logger persistent persistent-postgresql persistent-sqlite persistent-template resource-pool resourcet tasty tasty-golden tasty-hunit text unliftio ]; @@ -210447,8 +210094,8 @@ self: { }: mkDerivation { pname = "phonetic-languages-simplified-examples-array"; - version = "0.15.1.0"; - sha256 = "1y9i8278737dqil8gx8m27c8fwlzi949wb86z31r9v8k8irsx3p1"; + version = "0.15.2.1"; + sha256 = "0ag3nnmfipngc9xf70s5dla84ynab9r9ipswrxcxyga5mx5zw1da"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -211225,8 +210872,8 @@ self: { }: mkDerivation { pname = "pinch"; - version = "0.4.1.1"; - sha256 = "0k1wsyypyr87y788krbmf5w288n6gmsf57fncghn78j2mjaly1hn"; + version = "0.4.1.2"; + sha256 = "0khgx08mpj16lzqkk3xmxf5a6a68fc6x1vfg1r0lgj5lx2dgl89j"; libraryHaskellDepends = [ array base bytestring cereal containers deepseq ghc-prim hashable network semigroups text unordered-containers vector @@ -211820,25 +211467,6 @@ self: { }) {}; "pipes-concurrency" = callPackage - ({ mkDerivation, async, base, contravariant, pipes, semigroups, stm - , void - }: - mkDerivation { - pname = "pipes-concurrency"; - version = "2.0.12"; - sha256 = "17aqh6p1az09n6b6vs06pxcha5aq6dvqjwskgjcdiz7221vwchs3"; - revision = "2"; - editedCabalFile = "1c06nypirrd76jg5y508517smxh3izy98y6kj89k79kbpi5rncbj"; - libraryHaskellDepends = [ - async base contravariant pipes semigroups stm void - ]; - testHaskellDepends = [ async base pipes stm ]; - description = "Concurrency for the pipes ecosystem"; - license = lib.licenses.bsd3; - maintainers = with lib.maintainers; [ Gabriel439 ]; - }) {}; - - "pipes-concurrency_2_0_14" = callPackage ({ mkDerivation, async, base, contravariant, pipes, stm, void }: mkDerivation { pname = "pipes-concurrency"; @@ -211850,7 +211478,6 @@ self: { testHaskellDepends = [ async base pipes stm ]; description = "Concurrency for the pipes ecosystem"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; @@ -214616,20 +214243,16 @@ self: { }) {}; "polysemy-chronos" = callPackage - ({ mkDerivation, aeson, base, chronos, containers, hedgehog - , polysemy, polysemy-test, polysemy-time, relude, tasty - , tasty-hedgehog, text + ({ mkDerivation, base, chronos, polysemy, polysemy-test + , polysemy-time, tasty }: mkDerivation { pname = "polysemy-chronos"; - version = "0.1.4.0"; - sha256 = "1rkk87rnvs58hlcm46l8hqd8zf27madk8yr5p8zs0iliy0j1zsi0"; - libraryHaskellDepends = [ - aeson base chronos containers polysemy polysemy-time relude text - ]; + version = "0.2.0.1"; + sha256 = "1i33hr807kk4cvhk0gzm1b96zjp3zbbhg3dc7585i2hj9jmf6858"; + libraryHaskellDepends = [ base chronos polysemy polysemy-time ]; testHaskellDepends = [ - aeson base chronos containers hedgehog polysemy polysemy-test - polysemy-time relude tasty tasty-hedgehog text + base chronos polysemy-test polysemy-time tasty ]; description = "Polysemy-time Interpreters for Chronos"; license = "BSD-2-Clause-Patent"; @@ -214638,17 +214261,16 @@ self: { "polysemy-conc" = callPackage ({ mkDerivation, async, base, containers, data-default, polysemy , polysemy-plugin, polysemy-test, polysemy-time, relude, stm - , stm-chans, string-interpolate, tasty, template-haskell, text - , time, torsor, unagi-chan, unix + , stm-chans, tasty, template-haskell, text, time, torsor + , unagi-chan, unix }: mkDerivation { pname = "polysemy-conc"; - version = "0.5.0.0"; - sha256 = "17p85didiy1h240mcy04pb4jz70dh7wxk1lj5pgm385z9gmsc5p3"; + version = "0.5.1.1"; + sha256 = "0ix59hjrlhk04pwif6kszk7xpkkapxx7hr1vpm7nrggjgfk1015i"; libraryHaskellDepends = [ async base containers data-default polysemy polysemy-time relude - stm stm-chans string-interpolate template-haskell text time torsor - unagi-chan unix + stm stm-chans template-haskell text time torsor unagi-chan unix ]; testHaskellDepends = [ async base polysemy polysemy-plugin polysemy-test polysemy-time stm @@ -214787,16 +214409,16 @@ self: { "polysemy-log" = callPackage ({ mkDerivation, ansi-terminal, base, polysemy, polysemy-conc - , polysemy-test, polysemy-time, relude, string-interpolate, tasty - , template-haskell, text, time + , polysemy-test, polysemy-time, relude, tasty, template-haskell + , text, time }: mkDerivation { pname = "polysemy-log"; - version = "0.3.0.2"; - sha256 = "0wn2jmf1mypxngkm62xzrcsb3n36clfqwmdbkbjn06ynfiyg9xmk"; + version = "0.4.0.0"; + sha256 = "0jizgwd1vjhdn2m4d2xdhzawmdblvhk12v6blcnyxm94nab215li"; libraryHaskellDepends = [ ansi-terminal base polysemy polysemy-conc polysemy-time relude - string-interpolate template-haskell text time + template-haskell text time ]; testHaskellDepends = [ base polysemy polysemy-conc polysemy-test polysemy-time tasty time @@ -214813,8 +214435,8 @@ self: { }: mkDerivation { pname = "polysemy-log-co"; - version = "0.3.0.2"; - sha256 = "0xxzfi5ad9qblx7fp2nb1s9i48612077v5c4v8md9kwl06331bsz"; + version = "0.4.0.0"; + sha256 = "0c778m2ibs09aw9lv2a7xs3ywj0c8agnpx3vg114dh1ndbvcyhl5"; libraryHaskellDepends = [ base co-log co-log-core co-log-polysemy polysemy polysemy-conc polysemy-log polysemy-time @@ -214834,8 +214456,8 @@ self: { }: mkDerivation { pname = "polysemy-log-di"; - version = "0.3.0.2"; - sha256 = "0r961rw924q01fzwg722y95bj3b2vj2gqp8bcsdagfbmvwlqng1q"; + version = "0.4.0.0"; + sha256 = "0dnprxjafy2jy7mlj4h6jh456mys4af467kagdvbv8kllc66rrsc"; libraryHaskellDepends = [ base di-polysemy polysemy polysemy-conc polysemy-log polysemy-time ]; @@ -214996,17 +214618,17 @@ self: { "polysemy-process" = callPackage ({ mkDerivation, async, base, bytestring, containers, polysemy , polysemy-conc, polysemy-plugin, polysemy-resume, polysemy-test - , polysemy-time, relude, stm, stm-chans, string-interpolate, tasty - , template-haskell, text, time, typed-process + , polysemy-time, relude, stm, stm-chans, tasty, template-haskell + , text, time, typed-process }: mkDerivation { pname = "polysemy-process"; - version = "0.5.0.0"; - sha256 = "1ipw5xyn0z623vj4dsp1xgdzxf1hlyp892sf9zdvf4jyzxg8m400"; + version = "0.5.1.1"; + sha256 = "1231d7nwmn4krs9rj5yivfnfqdhpc3dlj17a1lhih3dzxwzlizyi"; libraryHaskellDepends = [ async base bytestring containers polysemy polysemy-conc - polysemy-resume polysemy-time relude stm stm-chans - string-interpolate template-haskell text time typed-process + polysemy-resume polysemy-time relude stm stm-chans template-haskell + text time typed-process ]; testHaskellDepends = [ base bytestring polysemy polysemy-conc polysemy-plugin @@ -215121,24 +214743,18 @@ self: { }) {}; "polysemy-time" = callPackage - ({ mkDerivation, aeson, base, composition, containers, data-default - , either, hedgehog, polysemy, polysemy-test, relude - , string-interpolate, tasty, tasty-hedgehog, template-haskell, text - , time, torsor + ({ mkDerivation, aeson, base, polysemy, polysemy-test, relude + , string-interpolate, tasty, template-haskell, text, time, torsor }: mkDerivation { pname = "polysemy-time"; - version = "0.1.4.0"; - sha256 = "1j6qm8nribp876z4h8jgms0790qmm37f32k5aw883c8716nfavjq"; + version = "0.2.0.1"; + sha256 = "1scq1lvjmhh5qilbq1dl5pkywnyhdrzwgd9i27hyfwijzldac31m"; libraryHaskellDepends = [ - aeson base composition containers data-default either polysemy - relude string-interpolate template-haskell text time torsor - ]; - testHaskellDepends = [ - aeson base composition containers data-default either hedgehog - polysemy polysemy-test relude string-interpolate tasty - tasty-hedgehog template-haskell text time torsor + aeson base polysemy relude string-interpolate template-haskell text + time torsor ]; + testHaskellDepends = [ base polysemy polysemy-test tasty time ]; description = "Polysemy Effect for Time"; license = "BSD-2-Clause-Patent"; }) {}; @@ -217774,18 +217390,6 @@ self: { }) {}; "pqueue" = callPackage - ({ mkDerivation, base, deepseq, QuickCheck }: - mkDerivation { - pname = "pqueue"; - version = "1.4.1.3"; - sha256 = "1sz7hlnfd86hbwrgqxczmsjsl1ki0ryi9dgzscxlsgjkdgcdia2p"; - libraryHaskellDepends = [ base deepseq ]; - testHaskellDepends = [ base deepseq QuickCheck ]; - description = "Reliable, persistent, fast priority queues"; - license = lib.licenses.bsd3; - }) {}; - - "pqueue_1_4_1_4" = callPackage ({ mkDerivation, base, deepseq, QuickCheck }: mkDerivation { pname = "pqueue"; @@ -217795,7 +217399,6 @@ self: { testHaskellDepends = [ base deepseq QuickCheck ]; description = "Reliable, persistent, fast priority queues"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "pqueue-mtl" = callPackage @@ -220119,24 +219722,6 @@ self: { }) {}; "product-profunctors" = callPackage - ({ mkDerivation, base, bifunctors, contravariant, criterion - , deepseq, profunctors, tagged, template-haskell, th-abstraction - }: - mkDerivation { - pname = "product-profunctors"; - version = "0.11.0.2"; - sha256 = "13q1zq5gli21khsxrgiwqilqfasb16hks5w0ikkm1i735z0pf97l"; - libraryHaskellDepends = [ - base bifunctors contravariant profunctors tagged template-haskell - th-abstraction - ]; - testHaskellDepends = [ base profunctors ]; - benchmarkHaskellDepends = [ base criterion deepseq ]; - description = "product-profunctors"; - license = lib.licenses.bsd3; - }) {}; - - "product-profunctors_0_11_0_3" = callPackage ({ mkDerivation, base, bifunctors, contravariant, criterion , deepseq, profunctors, tagged, template-haskell, th-abstraction }: @@ -220152,7 +219737,6 @@ self: { benchmarkHaskellDepends = [ base criterion deepseq ]; description = "product-profunctors"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "prof-flamegraph" = callPackage @@ -221481,6 +221065,33 @@ self: { license = lib.licenses.bsd3; }) {}; + "protobuf_0_2_1_4" = callPackage + ({ mkDerivation, base, base-orphans, binary, bytestring, containers + , criterion, data-binary-ieee754, deepseq, hex, HUnit, mtl + , QuickCheck, semigroups, tagged, tasty, tasty-hunit + , tasty-quickcheck, text, unordered-containers + }: + mkDerivation { + pname = "protobuf"; + version = "0.2.1.4"; + sha256 = "0qcnhj0ryaz4naqkqc7gankgwb6r7psl3njk7f6vi3l2y88ssa4v"; + libraryHaskellDepends = [ + base base-orphans binary bytestring data-binary-ieee754 deepseq mtl + semigroups text unordered-containers + ]; + testHaskellDepends = [ + base binary bytestring containers hex HUnit mtl QuickCheck tagged + tasty tasty-hunit tasty-quickcheck text unordered-containers + ]; + benchmarkHaskellDepends = [ + base binary bytestring containers criterion deepseq hex mtl tagged + text unordered-containers + ]; + description = "Google Protocol Buffers via GHC.Generics"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + }) {}; + "protobuf-native" = callPackage ({ mkDerivation, base, bytestring, cereal, cplusplus-th, criterion , hprotoc-fork, protobuf, protocol-buffers-fork, QuickCheck @@ -221894,8 +221505,8 @@ self: { pname = "pseudo-boolean"; version = "0.1.10.0"; sha256 = "1p9w1d80d2kp7wp7wp6xf9dz1iv9knhy8b75mklz7zq3cf5gvnrh"; - revision = "1"; - editedCabalFile = "05jvm2bhvzsxwiazsvgk6xwzjg1isabqnx8grx1v9hrxr6hjhlap"; + revision = "2"; + editedCabalFile = "0i5f3p9rhb3pvrrcw5x83h5vhkg5pmakfs1prg7fik447k1bda66"; libraryHaskellDepends = [ attoparsec base bytestring bytestring-builder containers deepseq dlist hashable megaparsec parsec void @@ -222049,8 +221660,8 @@ self: { }: mkDerivation { pname = "ptr-poker"; - version = "0.1.1.4"; - sha256 = "1g9b3dixrgi1k8vg85mgdpnph1dz02xggwp61naak6j392kg6rkf"; + version = "0.1.2.3"; + sha256 = "0930yrqvp9m28ypc3l4fgxbclp3a9b8r8drylws2s7jflss778bn"; libraryHaskellDepends = [ base bytestring scientific text ]; testHaskellDepends = [ hedgehog numeric-limits rerebase ]; benchmarkHaskellDepends = [ gauge rerebase ]; @@ -222058,22 +221669,6 @@ self: { license = lib.licenses.mit; }) {}; - "ptr-poker_0_1_2" = callPackage - ({ mkDerivation, base, bytestring, gauge, hedgehog, numeric-limits - , rerebase, scientific, text - }: - mkDerivation { - pname = "ptr-poker"; - version = "0.1.2"; - sha256 = "0dvdf609d78kna03614bzlxsszpfzfhrsqx84h2fvr7wk9gf93a9"; - libraryHaskellDepends = [ base bytestring scientific text ]; - testHaskellDepends = [ hedgehog numeric-limits rerebase ]; - benchmarkHaskellDepends = [ gauge rerebase ]; - description = "Pointer poking action construction and composition toolkit"; - license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; - }) {}; - "ptrdiff" = callPackage ({ mkDerivation, base }: mkDerivation { @@ -226464,8 +226059,8 @@ self: { pname = "range-set-list"; version = "0.1.3.1"; sha256 = "0m8c8qhpk9vaykqfy6gsv1csmvdclm27zv9l56ipv152k75xks0j"; - revision = "2"; - editedCabalFile = "08b5zlc2q3nyxxjzzigjbjygvd2001i2w3vslacib3kxm4569n8v"; + revision = "3"; + editedCabalFile = "0r6ilczzhzhkndg56bih8na4jf62nrwwpkc5n16sbm61yr49hsha"; libraryHaskellDepends = [ base containers deepseq hashable ]; testHaskellDepends = [ base containers deepseq hashable tasty tasty-quickcheck @@ -228308,20 +227903,21 @@ self: { "rebase" = callPackage ({ mkDerivation, base, bifunctors, bytestring, comonad, containers - , contravariant, deepseq, dlist, either, hashable, hashable-time - , mtl, profunctors, scientific, selective, semigroupoids, stm, text - , time, transformers, unordered-containers, uuid-types, vector - , vector-instances, void + , contravariant, deepseq, dlist, either, groups, hashable + , hashable-time, invariant, mtl, profunctors, scientific, selective + , semigroupoids, stm, text, time, transformers + , unordered-containers, uuid-types, vector, vector-instances, void }: mkDerivation { pname = "rebase"; - version = "1.13.1"; - sha256 = "1ffl4lxan27g6fkhyddbgf7n0b57l4zbzngrz0fajdfp96xklsn4"; + version = "1.13.2"; + sha256 = "0lvz4cx9bgny4s5az75clza90nb573vqr8c2ls0bmrsb7sx4p3jh"; libraryHaskellDepends = [ base bifunctors bytestring comonad containers contravariant deepseq - dlist either hashable hashable-time mtl profunctors scientific - selective semigroupoids stm text time transformers - unordered-containers uuid-types vector vector-instances void + dlist either groups hashable hashable-time invariant mtl + profunctors scientific selective semigroupoids stm text time + transformers unordered-containers uuid-types vector + vector-instances void ]; description = "A more progressive alternative to the \"base\" package"; license = lib.licenses.mit; @@ -229138,17 +228734,6 @@ self: { }) {}; "ref-tf" = callPackage - ({ mkDerivation, base, stm, transformers }: - mkDerivation { - pname = "ref-tf"; - version = "0.5"; - sha256 = "06lf3267b68syiqcwvgw8a7yi0ki3khnh4i9s8z7zjrjnj6h9r4v"; - libraryHaskellDepends = [ base stm transformers ]; - description = "A type class for monads with references using type families"; - license = lib.licenses.bsd3; - }) {}; - - "ref-tf_0_5_0_1" = callPackage ({ mkDerivation, base, stm, transformers }: mkDerivation { pname = "ref-tf"; @@ -229157,7 +228742,6 @@ self: { libraryHaskellDepends = [ base stm transformers ]; description = "A type class for monads with references using type families"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "refact" = callPackage @@ -230311,8 +229895,8 @@ self: { }: mkDerivation { pname = "regex"; - version = "1.1.0.0"; - sha256 = "02hxgy5ck3h5pwd5gzs4565qbql8457cjdbbc2yrk236qzc1qa8x"; + version = "1.1.0.1"; + sha256 = "0gjascxc2x4mxq570wv1q5fn6qfkk9lc4x0xdkhqrd84aw4pc3qm"; libraryHaskellDepends = [ array base base-compat bytestring containers hashable regex-base regex-pcre-builtin regex-tdfa template-haskell text time @@ -230464,32 +230048,32 @@ self: { "regex-examples" = callPackage ({ mkDerivation, array, base, base-compat, blaze-html, bytestring , containers, data-default, directory, filepath, hashable, heredoc - , http-conduit, regex, regex-base, regex-pcre-builtin, regex-tdfa - , regex-with-pcre, shelly, smallcheck, tasty, tasty-hunit + , regex, regex-base, regex-pcre-builtin, regex-tdfa + , regex-with-pcre, shelly, smallcheck, stm, tasty, tasty-hunit , tasty-smallcheck, template-haskell, text, time - , time-locale-compat, transformers, unordered-containers - , utf8-string + , time-locale-compat, transformers, typed-process + , unordered-containers, utf8-string }: mkDerivation { pname = "regex-examples"; - version = "1.1.0.0"; - sha256 = "02lpkr6y6q8mz30ily0gj6haqzma9a5x002jc08s5lx3s5h60b63"; + version = "1.1.0.1"; + sha256 = "1x8611bnvzj8pcc2g934gif4m6sssi08rxyqamn1b2i28ixzfh0c"; isLibrary = false; isExecutable = true; executableHaskellDepends = [ array base base-compat blaze-html bytestring containers - data-default directory filepath hashable heredoc http-conduit regex - regex-base regex-pcre-builtin regex-tdfa regex-with-pcre shelly - smallcheck tasty tasty-hunit tasty-smallcheck template-haskell text - time time-locale-compat transformers unordered-containers + data-default directory filepath hashable heredoc regex regex-base + regex-pcre-builtin regex-tdfa regex-with-pcre shelly smallcheck stm + tasty tasty-hunit tasty-smallcheck template-haskell text time + time-locale-compat transformers typed-process unordered-containers utf8-string ]; testHaskellDepends = [ array base base-compat blaze-html bytestring containers - data-default directory filepath hashable heredoc http-conduit regex - regex-base regex-pcre-builtin regex-tdfa regex-with-pcre shelly - smallcheck tasty tasty-hunit tasty-smallcheck template-haskell text - time time-locale-compat transformers unordered-containers + data-default directory filepath hashable heredoc regex regex-base + regex-pcre-builtin regex-tdfa regex-with-pcre shelly smallcheck stm + tasty tasty-hunit tasty-smallcheck template-haskell text time + time-locale-compat transformers typed-process unordered-containers utf8-string ]; description = "Tutorial, tests and example programs for regex"; @@ -230821,8 +230405,8 @@ self: { }: mkDerivation { pname = "regex-with-pcre"; - version = "1.1.0.0"; - sha256 = "18wq136snwk0i8l1fv878lmwh3rlvz6k68skrda70xr0i132wpax"; + version = "1.1.0.1"; + sha256 = "1dypklwhjcsq1y7nfpn6z6gj9c4j1wg3x55yvfczlnk97jl6dk1m"; libraryHaskellDepends = [ base base-compat bytestring containers regex regex-base regex-pcre-builtin regex-tdfa template-haskell text transformers @@ -231048,35 +230632,6 @@ self: { }) {}; "registry" = callPackage - ({ mkDerivation, async, base, bytestring, containers, directory - , exceptions, generic-lens, hashable, hedgehog, io-memoize, mmorph - , MonadRandom, mtl, multimap, protolude, random, resourcet - , semigroupoids, semigroups, tasty, tasty-discover, tasty-hedgehog - , tasty-th, template-haskell, text, transformers-base, universum - }: - mkDerivation { - pname = "registry"; - version = "0.2.0.3"; - sha256 = "1fhqcpbvz16yj93mhf7lx40i8a00mizj51m3nyazg785xhil9xbs"; - libraryHaskellDepends = [ - base containers exceptions hashable mmorph mtl protolude resourcet - semigroupoids semigroups template-haskell text transformers-base - ]; - testHaskellDepends = [ - async base bytestring containers directory exceptions generic-lens - hashable hedgehog io-memoize mmorph MonadRandom mtl multimap - protolude random resourcet semigroupoids semigroups tasty - tasty-discover tasty-hedgehog tasty-th template-haskell text - transformers-base universum - ]; - testToolDepends = [ tasty-discover ]; - description = "data structure for assembling components"; - license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; - broken = true; - }) {}; - - "registry_0_2_1_0" = callPackage ({ mkDerivation, async, base, bytestring, containers, directory , exceptions, generic-lens, hashable, hedgehog, io-memoize, mmorph , MonadRandom, mtl, multimap, protolude, random, resourcet @@ -231618,19 +231173,6 @@ self: { }) {}; "reliable-io" = callPackage - ({ mkDerivation, base, bindings-DSL }: - mkDerivation { - pname = "reliable-io"; - version = "0.0.1"; - sha256 = "0dbp5s8acn6fzcvlplkn4dbcn06l6jsvwilcz45kchss7p4j3gvx"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base bindings-DSL ]; - description = "Bindings to the low-level reliable.io library."; - license = lib.licenses.bsd3; - }) {}; - - "reliable-io_0_0_2" = callPackage ({ mkDerivation, base, bindings-DSL }: mkDerivation { pname = "reliable-io"; @@ -231641,7 +231183,6 @@ self: { libraryHaskellDepends = [ base bindings-DSL ]; description = "Bindings to the low-level reliable.io library."; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "relit" = callPackage @@ -232853,8 +232394,8 @@ self: { ({ mkDerivation, rebase }: mkDerivation { pname = "rerebase"; - version = "1.13.1"; - sha256 = "1g3lwnkykl4np2fzylhi7469y10a3vpxxn1i5mqhm0mmx5lwrhw3"; + version = "1.13.2"; + sha256 = "04bzdyz17azwx6afdys3vh8iydrq6z58j77ib4pwvmz54v2jfcaa"; libraryHaskellDepends = [ rebase ]; description = "Reexports from \"base\" with a bunch of other standard libraries"; license = lib.licenses.mit; @@ -233152,6 +232693,22 @@ self: { hydraPlatforms = lib.platforms.none; }) {}; + "resource-pool-fork-avanov" = callPackage + ({ mkDerivation, base, hashable, stm, time, transformers + , transformers-base, unliftio, vector + }: + mkDerivation { + pname = "resource-pool-fork-avanov"; + version = "0.2.4.0"; + sha256 = "19jdi2rm9l68465y9l6gnywg7pizzvlyr48jyypp0aqhvjycmk3x"; + libraryHaskellDepends = [ + base hashable stm time transformers transformers-base unliftio + vector + ]; + description = "A high-performance striped resource pooling implementation"; + license = lib.licenses.bsd3; + }) {}; + "resource-pool-monad" = callPackage ({ mkDerivation, base, free, kan-extensions, monad-control , resource-pool, transformers @@ -233667,15 +233224,15 @@ self: { "retrie" = callPackage ({ mkDerivation, ansi-terminal, async, base, bytestring, containers - , data-default, deepseq, directory, filepath, ghc, ghc-exactprint - , ghc-paths, haskell-src-exts, HUnit, list-t, mtl + , data-default, deepseq, directory, exceptions, filepath, ghc + , ghc-exactprint, ghc-paths, haskell-src-exts, HUnit, list-t, mtl , optparse-applicative, process, random-shuffle, syb, tasty , tasty-hunit, temporary, text, transformers, unordered-containers }: mkDerivation { pname = "retrie"; - version = "1.1.0.0"; - sha256 = "148d1pl52mac4mz4pl9qmmynjjbzygg4x6vlsyblb268drcjn3f8"; + version = "1.2.0.0"; + sha256 = "0l4n1yhq388x774w2qyzsi4q1xsj121ccd60q21b5fz0hdzrxy26"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -233684,11 +233241,12 @@ self: { optparse-applicative process random-shuffle syb text transformers unordered-containers ]; - executableHaskellDepends = [ base haskell-src-exts ]; + executableHaskellDepends = [ base ghc-paths haskell-src-exts ]; testHaskellDepends = [ - base containers data-default deepseq directory filepath ghc - ghc-paths haskell-src-exts HUnit mtl optparse-applicative process - syb tasty tasty-hunit temporary text unordered-containers + base containers data-default deepseq directory exceptions filepath + ghc ghc-exactprint ghc-paths haskell-src-exts HUnit mtl + optparse-applicative process syb tasty tasty-hunit temporary text + unordered-containers ]; description = "A powerful, easy-to-use codemodding tool for Haskell"; license = lib.licenses.mit; @@ -237499,32 +237057,6 @@ self: { }) {}; "safe-json" = callPackage - ({ mkDerivation, aeson, base, bytestring, containers, dlist - , generic-arbitrary, hashable, quickcheck-instances, scientific - , tasty, tasty-hunit, tasty-quickcheck, temporary, text, time - , unordered-containers, uuid, uuid-types, vector - }: - mkDerivation { - pname = "safe-json"; - version = "1.1.1.1"; - sha256 = "0wp955ak673jjcjwqmliwv3dk723kf0nl4rwvzqmlgfg9c57n2j3"; - revision = "1"; - editedCabalFile = "0bwdim4vslpgnh77b5lgxmfrh2xaza1rgqgnh2xz73b4jb8lg2p4"; - libraryHaskellDepends = [ - aeson base bytestring containers dlist hashable scientific tasty - tasty-hunit tasty-quickcheck text time unordered-containers - uuid-types vector - ]; - testHaskellDepends = [ - aeson base bytestring containers dlist generic-arbitrary hashable - quickcheck-instances scientific tasty tasty-hunit tasty-quickcheck - temporary text time unordered-containers uuid uuid-types vector - ]; - description = "Automatic JSON format versioning"; - license = lib.licenses.mit; - }) {}; - - "safe-json_1_1_2_0" = callPackage ({ mkDerivation, aeson, base, bytestring, containers, dlist , generic-arbitrary, hashable, quickcheck-instances, scientific , tasty, tasty-hunit, tasty-quickcheck, temporary, text, time @@ -237546,7 +237078,6 @@ self: { ]; description = "Automatic JSON format versioning"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; }) {}; "safe-lazy-io" = callPackage @@ -237777,6 +237308,8 @@ self: { pname = "safecopy"; version = "0.10.4.2"; sha256 = "0r2mf0p82gf8vnldx477b5ykrj1x7hyg13nqfn6gzb50japs6h3i"; + revision = "1"; + editedCabalFile = "1lah4m6rjq08bj5sfwh6azw2srrz2n68zmmp7vimxrhakvf3fpm4"; libraryHaskellDepends = [ array base bytestring cereal containers generic-data old-time template-haskell text time transformers vector @@ -238907,7 +238440,7 @@ self: { license = lib.licenses.lgpl3Only; }) {}; - "sbp_4_0_3" = callPackage + "sbp_4_1_1" = callPackage ({ mkDerivation, aeson, aeson-pretty, array, base , base64-bytestring, basic-prelude, binary, binary-conduit , bytestring, cmdargs, conduit, conduit-extra, data-binary-ieee754 @@ -238916,8 +238449,8 @@ self: { }: mkDerivation { pname = "sbp"; - version = "4.0.3"; - sha256 = "1pcrpykf6wzpkrgxi08niwadvdk5rab3ddcba28j84d3agzv7192"; + version = "4.1.1"; + sha256 = "18nhbxq2d07a0hnrb3acm1yi8hlyi84wnia2fc6p1lw9nmlrkzbv"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -241027,12 +240560,13 @@ self: { }) {}; "sdp" = callPackage - ({ mkDerivation, base, data-default-class, fmr, ghc-prim }: + ({ mkDerivation, base, cpphs, data-default-class, fmr, ghc-prim }: mkDerivation { pname = "sdp"; - version = "0.2.1"; - sha256 = "1hz6b1fr47dwi3pml627f280ac6j8yp2hmjm1kvlzicsk0hj12hf"; + version = "0.2.1.1"; + sha256 = "19s78i5aaj24wbbqkfa6xjkj95fgl23gyqan57pkdjcnknwpymqq"; libraryHaskellDepends = [ base data-default-class fmr ghc-prim ]; + libraryToolDepends = [ cpphs ]; description = "Simple Data Processing"; license = lib.licenses.bsd3; }) {}; @@ -244593,10 +244127,10 @@ self: { }: mkDerivation { pname = "servant-openapi3"; - version = "2.0.1.2"; - sha256 = "1lqvycbv49x0i3adbsdlcl49n65wxfjzhiz9pj11hg4k0j952q5p"; - revision = "5"; - editedCabalFile = "0sgwk429lxb8l5abl17kfnvk79bnmn33x77wsd20r6w4425m9nqi"; + version = "2.0.1.3"; + sha256 = "1nvxaskizv5qgznvxdg4crdh4dra5rj7abiky5bd927gnwvbir6s"; + revision = "1"; + editedCabalFile = "08ajlbydnklqdv8gyrqihdn27h5hjvlvjv628xg05w7waa2c15vy"; setupHaskellDepends = [ base Cabal cabal-doctest ]; libraryHaskellDepends = [ aeson aeson-pretty base base-compat bytestring hspec http-media @@ -244634,8 +244168,8 @@ self: { }: mkDerivation { pname = "servant-pagination"; - version = "2.4.1"; - sha256 = "181an5p0qfzbv3cirnaq8bw778iib4qhv53y60z1ssn16v2vxhq5"; + version = "2.4.2"; + sha256 = "050ixkfqrfjvgz293q91iw0v6a4xfan0n0gn7pq3yh2dndz4if3a"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -245525,25 +245059,19 @@ self: { "servant-tracing" = callPackage ({ mkDerivation, aeson, async, base, bytestring, bytestring-lexing - , containers, hashable, http-api-data, http-client, HUnit - , lifted-base, monad-control, mtl, QuickCheck, random, servant - , servant-server, tasty, tasty-hunit, tasty-quickcheck, text, time - , transformers, unordered-containers, wai, warp + , containers, hashable, http-api-data, http-client, http-types + , HUnit, lifted-base, monad-control, mtl, QuickCheck, random + , servant, tasty, tasty-hunit, tasty-quickcheck, text, time + , transformers, unordered-containers, wai }: mkDerivation { pname = "servant-tracing"; - version = "0.1.0.2"; - sha256 = "0qpamaf3ydfb8197iz2prjh9nxwxi03cdfsp3jl28rhbqrc2xpry"; - isLibrary = true; - isExecutable = true; + version = "0.2.0.0"; + sha256 = "1wlk7nbfhwrz233ld2lpkjgrbhc999gq5x880s41x089kaixf4jb"; libraryHaskellDepends = [ aeson async base bytestring bytestring-lexing containers hashable - http-api-data http-client lifted-base monad-control mtl random - servant servant-server text time unordered-containers wai - ]; - executableHaskellDepends = [ - async base bytestring containers http-client lifted-base - monad-control mtl servant servant-server text transformers wai warp + http-api-data http-client http-types lifted-base monad-control mtl + random servant text time unordered-containers wai ]; testHaskellDepends = [ aeson base containers http-api-data HUnit monad-control mtl @@ -248622,8 +248150,8 @@ self: { pname = "sign"; version = "0.4.4"; sha256 = "1z9csfbl5h4cprvykszn81xncsry7fama2y3gbgnqr7mq15qziq7"; - revision = "1"; - editedCabalFile = "1zjwcfvdnwcz9qynalyryavh7x99k3g66zmrlzv8bccvhgihg08j"; + revision = "2"; + editedCabalFile = "1si2x4ip4lqh9zj249f1rsslzxxj94arww63bqaha2zkg25sfykz"; libraryHaskellDepends = [ base containers deepseq hashable lattices universe-base ]; @@ -250057,6 +249585,22 @@ self: { license = lib.licenses.bsd3; }) {}; + "simpoole" = callPackage + ({ mkDerivation, base, concurrency, containers, exceptions, hspec + , time + }: + mkDerivation { + pname = "simpoole"; + version = "0.0.1"; + sha256 = "0wzmr1gj01vl37hwnwy03mq3ywhqxn0y25y2f0q1yky698yq87lw"; + libraryHaskellDepends = [ + base concurrency containers exceptions time + ]; + testHaskellDepends = [ base concurrency hspec ]; + description = "Simple pool"; + license = lib.licenses.bsd3; + }) {}; + "simseq" = callPackage ({ mkDerivation, base, bio, bytestring, random }: mkDerivation { @@ -250167,6 +249711,8 @@ self: { pname = "singleton-bool"; version = "0.1.6"; sha256 = "1pc34dbzx5g3vw5w03zifvqva3whyvxzfy3yh78qkpd05f0g98sw"; + revision = "1"; + editedCabalFile = "0wg0js2fn7xpvaxz5jmghhc1al3lpwmhjb43mn731ffrbmfryihx"; libraryHaskellDepends = [ base boring dec deepseq some ]; description = "Type level booleans"; license = lib.licenses.bsd3; @@ -250395,8 +249941,8 @@ self: { pname = "siphash"; version = "1.0.3"; sha256 = "1wq5dan30ggjgmravy92ylqjvjv1q7mxrmddr7zc8h6aqr0wx0fg"; - revision = "1"; - editedCabalFile = "1q2dy0ywngm9iv7k6d9gnf860m9hpf62q5qvdzmxw5s629gk4afn"; + revision = "2"; + editedCabalFile = "14l9ndv8l2vysb3fp00gfh2g6j5bwhkh67kwbx9ish74ncmqkznv"; enableSeparateDataOutput = true; libraryHaskellDepends = [ base bytestring cpu ]; testHaskellDepends = [ @@ -255041,39 +254587,6 @@ self: { }) {}; "spacecookie" = callPackage - ({ mkDerivation, aeson, async, attoparsec, base, bytestring - , containers, directory, download-curl, fast-logger - , filepath-bytestring, hxt-unicode, mtl, process, socket, systemd - , tasty, tasty-expected-failure, tasty-hunit, text, transformers - , unix - }: - mkDerivation { - pname = "spacecookie"; - version = "1.0.0.0"; - sha256 = "0v61n5afcrfmj7dd51h4wi7d5hzl4r86wvaymhsi3h4jday58ln0"; - revision = "1"; - editedCabalFile = "108pigixhnfgawqhsb6781dhvi4pyv7f5dyww1s4jahi7ix22d44"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - async attoparsec base bytestring containers directory - filepath-bytestring hxt-unicode mtl socket text transformers unix - ]; - executableHaskellDepends = [ - aeson attoparsec base bytestring containers directory fast-logger - filepath-bytestring mtl socket systemd text transformers unix - ]; - testHaskellDepends = [ - attoparsec base bytestring containers directory download-curl - filepath-bytestring process tasty tasty-expected-failure - tasty-hunit - ]; - description = "Gopher server library and daemon"; - license = lib.licenses.gpl3Only; - maintainers = with lib.maintainers; [ sternenseemann ]; - }) {}; - - "spacecookie_1_0_0_1" = callPackage ({ mkDerivation, aeson, async, attoparsec, base, bytestring , containers, directory, download-curl, fast-logger , filepath-bytestring, hxt-unicode, mtl, process, socket, systemd @@ -255101,7 +254614,6 @@ self: { ]; description = "Gopher server library and daemon"; license = lib.licenses.gpl3Only; - hydraPlatforms = lib.platforms.none; maintainers = with lib.maintainers; [ sternenseemann ]; }) {}; @@ -256203,6 +255715,19 @@ self: { license = lib.licenses.bsd3; }) {}; + "spooky" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "spooky"; + version = "0.1.0.0"; + sha256 = "0c1hvbj7d7mgpvba43yb33jvm1fzaqgzijljh3flb14k99pi5x39"; + revision = "1"; + editedCabalFile = "0j9jsbn4f73fb1a5rp1qzw4jdh6n3mmlky16pvxw2gnz8kcficng"; + libraryHaskellDepends = [ base ]; + description = "Unified API for phantom typed newtypes and type aliases"; + license = lib.licenses.bsd3; + }) {}; + "spool" = callPackage ({ mkDerivation, base, bytestring, vector }: mkDerivation { @@ -257383,6 +256908,8 @@ self: { pname = "stache"; version = "2.3.1"; sha256 = "1a26pwg6y90588yf9sp18w4b2ahr64fxdhy1c3zv0c9pw7bv6k6q"; + revision = "1"; + editedCabalFile = "0yfy56ax3zbikvmdyplx5l3rzq50fjwz6rcb9l8iwz167h7gzjpr"; isLibrary = true; isExecutable = true; enableSeparateDataOutput = true; @@ -259461,6 +258988,8 @@ self: { pname = "stm"; version = "2.5.0.2"; sha256 = "1x5kj5jn6c3jc5asipiai9zp6fzkqcqrh8j2imclyls1nybccjm0"; + revision = "1"; + editedCabalFile = "0m8sfzgcqldpp3q6x5291sxpa7b53ppf7d6axkbznxdaz9rn9p74"; libraryHaskellDepends = [ array base ]; description = "Software Transactional Memory"; license = lib.licenses.bsd3; @@ -259942,10 +259471,8 @@ self: { ({ mkDerivation, base, byteorder }: mkDerivation { pname = "storable-endian"; - version = "0.2.6"; - sha256 = "12allvahkgx1nr10z4gp07gwaxqf52n4yyzihdxiilsf127sqhrp"; - revision = "1"; - editedCabalFile = "12f8sscsvsarlwz3p6kk9vbvqsbyhs8lhafgn9h7c0z6pz1amrya"; + version = "0.2.6.1"; + sha256 = "0icyf3w9hw2k5naxjsfvmykj98l94bz626qadz37r0wv22lsicff"; libraryHaskellDepends = [ base byteorder ]; description = "Storable instances with endianness"; license = lib.licenses.bsd3; @@ -260425,6 +259952,23 @@ self: { license = lib.licenses.bsd3; }) {}; + "streaming_0_2_3_1" = callPackage + ({ mkDerivation, base, containers, ghc-prim, hspec, mmorph, mtl + , QuickCheck, transformers, transformers-base + }: + mkDerivation { + pname = "streaming"; + version = "0.2.3.1"; + sha256 = "127azyczj0ab2wv7d4mb86zsbffkvjg9fpjwrqlrf2vmjgizlppw"; + libraryHaskellDepends = [ + base containers ghc-prim mmorph mtl transformers transformers-base + ]; + testHaskellDepends = [ base hspec QuickCheck ]; + description = "an elementary streaming prelude and general stream type"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + }) {}; + "streaming-attoparsec" = callPackage ({ mkDerivation, attoparsec, base, bytestring, streaming , streaming-bytestring, tasty, tasty-hunit @@ -260587,28 +260131,6 @@ self: { }) {}; "streaming-commons" = callPackage - ({ mkDerivation, array, async, base, bytestring, deepseq, directory - , gauge, hspec, network, process, QuickCheck, random, stm, text - , transformers, unix, zlib - }: - mkDerivation { - pname = "streaming-commons"; - version = "0.2.2.2"; - sha256 = "0j1hwqadczg4rw9pmiv21qs9kvqxarxqg4dv4cpcrxx72b4xssvq"; - libraryHaskellDepends = [ - array async base bytestring directory network process random stm - text transformers unix zlib - ]; - testHaskellDepends = [ - array async base bytestring deepseq hspec network QuickCheck text - unix zlib - ]; - benchmarkHaskellDepends = [ base bytestring deepseq gauge text ]; - description = "Common lower-level functions needed by various streaming data libraries"; - license = lib.licenses.mit; - }) {}; - - "streaming-commons_0_2_2_3" = callPackage ({ mkDerivation, array, async, base, bytestring, deepseq, directory , gauge, hspec, network, process, QuickCheck, random, stm, text , transformers, unix, zlib @@ -260628,7 +260150,6 @@ self: { benchmarkHaskellDepends = [ base bytestring deepseq gauge text ]; description = "Common lower-level functions needed by various streaming data libraries"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; }) {}; "streaming-concurrency" = callPackage @@ -261728,6 +261249,8 @@ self: { pname = "string-class"; version = "0.1.7.0"; sha256 = "1s0bj0wvwriw4516za6ar7w7zsz5mmnf1dba0ch239n27rb00nwf"; + revision = "1"; + editedCabalFile = "1z3cq57j6gjkz8q0wn9y222qw8lg560372na0nn7fcbf54yc749r"; libraryHaskellDepends = [ base bytestring tagged text ]; description = "String class library"; license = lib.licenses.bsd3; @@ -262310,8 +261833,8 @@ self: { }: mkDerivation { pname = "stripeapi"; - version = "1.0.0.0"; - sha256 = "0wg3b08gvkcqinc5r9jcrcfrgw0c3mh57ca5hzcrknddwd23flbj"; + version = "2.0.0.1"; + sha256 = "1kqmdw0f9cppbvirizmyfcsc26iczwrn6hrhmi9y6fhhxiy4wd1z"; libraryHaskellDepends = [ aeson base bytestring ghc-prim http-client http-conduit http-types mtl scientific text time transformers unordered-containers vector @@ -262485,6 +262008,8 @@ self: { pname = "structured"; version = "0.1.1"; sha256 = "1mz02ys85z79nj24ylsmgh8v2m7zv2rixf7w0iqnwc49lax52w4q"; + revision = "1"; + editedCabalFile = "0ijyzfr55xyp692aj9jch81lwqx3pavg4ci8hzbc230zjs5idc50"; libraryHaskellDepends = [ aeson array base base16-bytestring binary bytestring containers hashable scientific tagged text time-compat transformers @@ -262741,10 +262266,8 @@ self: { }: mkDerivation { pname = "stylist"; - version = "2.4.0.0"; - sha256 = "0nkz6jnfx7si473lz0b907lq6zjpw2apbcph61s2aw44j5zgdg96"; - revision = "2"; - editedCabalFile = "104rdqv33v54sj6yf8438sk7d0x0964b3gr1cj42qlxa8wl2idx0"; + version = "2.4.0.2"; + sha256 = "02p1xm9m1l9qgn6dyi2kc2zlb7iixx7ikwg3vwq4pgszjmhisbi6"; libraryHaskellDepends = [ async base css-syntax hashable network-uri regex-tdfa text unordered-containers @@ -264446,7 +263969,7 @@ self: { license = "unknown"; }) {}; - "sydtest_0_6_0_0" = callPackage + "sydtest_0_7_0_0" = callPackage ({ mkDerivation, async, autodocodec, autodocodec-yaml, base , bytestring, containers, Diff, dlist, envparse, filepath , MonadRandom, mtl, optparse-applicative, path, path-io @@ -264456,8 +263979,8 @@ self: { }: mkDerivation { pname = "sydtest"; - version = "0.6.0.0"; - sha256 = "1vbdh01a264kwhz04f3a1d9rdvlas8wshb4v1rlwnpby2pcsqf0y"; + version = "0.7.0.0"; + sha256 = "16lgys2l3ywai85mf80r212l3m15mbd4a2zgg8wpmn98d798qjr1"; libraryHaskellDepends = [ async autodocodec autodocodec-yaml base bytestring containers Diff dlist envparse filepath MonadRandom mtl optparse-applicative path @@ -264560,8 +264083,8 @@ self: { }: mkDerivation { pname = "sydtest-hspec"; - version = "0.0.0.0"; - sha256 = "1fjj6v1f6rilzjcjgg0yqmhhmj067g45sw7q2xr8q9p7qiqnpkh1"; + version = "0.0.0.1"; + sha256 = "14z15z0yihssy2s0cn570q61md3zbagf329gj26i5r7rfwr9mm7m"; libraryHaskellDepends = [ base hspec-core mtl sydtest ]; testHaskellDepends = [ base hspec sydtest ]; testToolDepends = [ sydtest-discover ]; @@ -267747,23 +267270,6 @@ self: { }) {}; "tasty" = callPackage - ({ mkDerivation, ansi-terminal, base, clock, containers, mtl - , optparse-applicative, stm, tagged, unbounded-delays, unix - , wcwidth - }: - mkDerivation { - pname = "tasty"; - version = "1.4.2"; - sha256 = "0574hbqzxzyv6vsk5kzbf04kz58y0iy8x9ydcj4b8fpncgmgy63g"; - libraryHaskellDepends = [ - ansi-terminal base clock containers mtl optparse-applicative stm - tagged unbounded-delays unix wcwidth - ]; - description = "Modern and extensible testing framework"; - license = lib.licenses.mit; - }) {}; - - "tasty_1_4_2_1" = callPackage ({ mkDerivation, ansi-terminal, base, clock, containers, mtl , optparse-applicative, stm, tagged, unbounded-delays, unix , wcwidth @@ -267780,7 +267286,6 @@ self: { ]; description = "Modern and extensible testing framework"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; }) {}; "tasty-ant-xml" = callPackage @@ -268126,8 +267631,8 @@ self: { pname = "tasty-hspec"; version = "1.2"; sha256 = "0hnq6q4mk2avirb8cgibaxj5m2c4rf5xsqry04zx4nc15la5xniw"; - revision = "1"; - editedCabalFile = "0h5kp8h8cz9g02cx5m2sr714qrkqcg4agn9ymwq5s9annbnkdyri"; + revision = "2"; + editedCabalFile = "0a97zm7lxc7m0qw3i3grwzdmbpar5bf2cj31ip37mh9w1x2nzqvx"; libraryHaskellDepends = [ base hspec hspec-core QuickCheck tasty tasty-quickcheck tasty-smallcheck @@ -268430,22 +267935,6 @@ self: { }) {}; "tasty-quickcheck" = callPackage - ({ mkDerivation, base, optparse-applicative, pcre-light, QuickCheck - , random, tagged, tasty, tasty-hunit - }: - mkDerivation { - pname = "tasty-quickcheck"; - version = "0.10.1.2"; - sha256 = "0i1i78587znqzwps49milyr5n2k388ld2kr9ysz1vw8gcw51qq49"; - libraryHaskellDepends = [ - base optparse-applicative QuickCheck random tagged tasty - ]; - testHaskellDepends = [ base pcre-light tasty tasty-hunit ]; - description = "QuickCheck support for the Tasty test framework"; - license = lib.licenses.mit; - }) {}; - - "tasty-quickcheck_0_10_2" = callPackage ({ mkDerivation, base, optparse-applicative, pcre-light, QuickCheck , random, tagged, tasty, tasty-hunit }: @@ -268459,7 +267948,6 @@ self: { testHaskellDepends = [ base pcre-light tasty tasty-hunit ]; description = "QuickCheck support for the Tasty test framework"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; }) {}; "tasty-quickcheck-laws" = callPackage @@ -269313,8 +268801,8 @@ self: { }: mkDerivation { pname = "telegram-bot-simple"; - version = "0.3.7"; - sha256 = "09bi2rbajiv3p2anky9zjnbvxxd79d70p3im94zrp14db0zjhnp7"; + version = "0.3.8"; + sha256 = "0nqzghd3apfic1idrx03g5a6xihghi35ha28mcksgji9zp42595q"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -271335,28 +270823,6 @@ self: { }) {}; "texmath" = callPackage - ({ mkDerivation, base, bytestring, containers, directory, filepath - , mtl, pandoc-types, parsec, process, split, syb, temporary, text - , utf8-string, xml - }: - mkDerivation { - pname = "texmath"; - version = "0.12.3.2"; - sha256 = "1d9r3na7hmkgr0j63fs50ssll506l1wyqhw0dpap7jk0rdz8pv6n"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base containers mtl pandoc-types parsec split syb text xml - ]; - testHaskellDepends = [ - base bytestring directory filepath process temporary text - utf8-string xml - ]; - description = "Conversion between formats used to represent mathematics"; - license = lib.licenses.gpl2Only; - }) {}; - - "texmath_0_12_3_3" = callPackage ({ mkDerivation, base, bytestring, containers, directory, filepath , mtl, pandoc-types, parsec, process, split, syb, temporary, text , utf8-string, xml @@ -271376,7 +270842,6 @@ self: { ]; description = "Conversion between formats used to represent mathematics"; license = lib.licenses.gpl2Only; - hydraPlatforms = lib.platforms.none; }) {}; "texrunner" = callPackage @@ -273027,8 +272492,8 @@ self: { }: mkDerivation { pname = "th-lift-instances"; - version = "0.1.18"; - sha256 = "09nv1zsffvv6zfz1fjzcqrla3lc350qr4i4xf7wgvzp049sprrdy"; + version = "0.1.19"; + sha256 = "0rk0q609q8pha4wqxxhrr221nc9lc9wanif3qm1g8lav51500pd8"; libraryHaskellDepends = [ base bytestring containers template-haskell text th-lift transformers vector @@ -275840,8 +275305,8 @@ self: { }: mkDerivation { pname = "tls"; - version = "1.5.5"; - sha256 = "0j1rxxq5lzs584nk19610mk7mmsqqkgfxw2qj74ibb1zsk7baj4a"; + version = "1.5.6"; + sha256 = "0mr5p1h161bdhnkfx4mvlk1hqq89z0fh7z37jgrbx4i8aa61cs96"; libraryHaskellDepends = [ asn1-encoding asn1-types async base bytestring cereal cryptonite data-default-class hourglass memory mtl network transformers x509 @@ -277240,8 +276705,8 @@ self: { pname = "toysolver"; version = "0.7.0"; sha256 = "1r8z8fg3iyz5cc7cmwv29i7gwdcb789s7p6yklfgmz8w314m83gj"; - revision = "3"; - editedCabalFile = "0bc45b05svxlz6b9cpydnr1c2q6plkss8fsaylsyazl6dpcnq3yf"; + revision = "4"; + editedCabalFile = "10fq2a4bllhgf566hxv7qhldq7xmmqc19kk968s096ac5myhzc0x"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -277348,8 +276813,8 @@ self: { }: mkDerivation { pname = "tpdb"; - version = "2.2.0"; - sha256 = "1hrnfvp49rny9rznnhlhvgw4ffmn9nbbdiknsbwxgjfh1ixir1vf"; + version = "2.2.2"; + sha256 = "0061140xvd06nki4r6xh59cqw9v8kl12dqgd8qx7d2kkjw2qvpn8"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -277359,7 +276824,7 @@ self: { executableHaskellDepends = [ base bytestring ]; testHaskellDepends = [ base pretty text ]; description = "Data Type for Rewriting Systems"; - license = "GPL"; + license = lib.licenses.gpl3Only; }) {}; "tptp" = callPackage @@ -281233,8 +280698,8 @@ self: { }: mkDerivation { pname = "type-natural"; - version = "1.1.0.0"; - sha256 = "0asyjp426931j4ym2qvx5xy9fjyf734sy02gscpd1d0fa8d1xbjm"; + version = "1.1.0.1"; + sha256 = "1dzmaia5w59cmq6aivsamklq6ydd72l9y44az1plycmscm0kchiz"; libraryHaskellDepends = [ base constraints equational-reasoning ghc ghc-typelits-knownnat ghc-typelits-natnormalise ghc-typelits-presburger @@ -281633,25 +281098,6 @@ self: { }) {}; "typed-process" = callPackage - ({ mkDerivation, async, base, base64-bytestring, bytestring, hspec - , process, stm, temporary, transformers, unliftio-core - }: - mkDerivation { - pname = "typed-process"; - version = "0.2.7.0"; - sha256 = "07iwas0awr9kcfkgd8fqdhaamyrppc1zpa01q3qix3afz0lwwy47"; - libraryHaskellDepends = [ - async base bytestring process stm transformers unliftio-core - ]; - testHaskellDepends = [ - async base base64-bytestring bytestring hspec process stm temporary - transformers unliftio-core - ]; - description = "Run external processes, with strong typing of streams"; - license = lib.licenses.mit; - }) {}; - - "typed-process_0_2_8_0" = callPackage ({ mkDerivation, async, base, base64-bytestring, bytestring, hspec , process, stm, temporary, transformers, unliftio-core }: @@ -281668,7 +281114,6 @@ self: { ]; description = "Run external processes, with strong typing of streams"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; }) {}; "typed-spreadsheet" = callPackage @@ -281851,6 +281296,23 @@ self: { broken = true; }) {}; + "typelet" = callPackage + ({ mkDerivation, base, cabal-doctest, containers, ghc + , ghc-tcplugin-api, tasty, tasty-hunit, tasty-quickcheck + }: + mkDerivation { + pname = "typelet"; + version = "0.1.0.0"; + sha256 = "0kmidkbdq40bhfz4kqcb81kn2h67vcrl5lrpv3hg3ca79wxnxk2s"; + isLibrary = true; + isExecutable = true; + setupHaskellDepends = [ base cabal-doctest ]; + libraryHaskellDepends = [ base containers ghc ghc-tcplugin-api ]; + testHaskellDepends = [ base tasty tasty-hunit tasty-quickcheck ]; + description = "Plugin to faciliate type-level let"; + license = lib.licenses.bsd3; + }) {}; + "typelevel" = callPackage ({ mkDerivation, base, constraints, convert, exceptions, lens, mtl , pretty, pretty-show, primitive, transformers @@ -282820,23 +282282,6 @@ self: { }) {}; "unagi-chan" = callPackage - ({ mkDerivation, async, atomic-primops, base, containers, criterion - , ghc-prim, primitive - }: - mkDerivation { - pname = "unagi-chan"; - version = "0.4.1.3"; - sha256 = "15fnk9x4fd2ryp31fjfrwm8k61m3a0qyb95m4065zc0yi0jyacp2"; - libraryHaskellDepends = [ atomic-primops base ghc-prim primitive ]; - testHaskellDepends = [ - atomic-primops base containers ghc-prim primitive - ]; - benchmarkHaskellDepends = [ async base criterion ]; - description = "Fast concurrent queues with a Chan-like API, and more"; - license = lib.licenses.bsd3; - }) {}; - - "unagi-chan_0_4_1_4" = callPackage ({ mkDerivation, async, atomic-primops, base, containers, criterion , ghc-prim, primitive }: @@ -282851,7 +282296,6 @@ self: { benchmarkHaskellDepends = [ async base criterion ]; description = "Fast concurrent queues with a Chan-like API, and more"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "unagi-streams" = callPackage @@ -284933,28 +284377,6 @@ self: { }) {}; "unordered-containers" = callPackage - ({ mkDerivation, base, bytestring, ChasingBottoms, containers - , deepseq, gauge, hashable, hashmap, HUnit, mtl, QuickCheck, random - , test-framework, test-framework-hunit, test-framework-quickcheck2 - }: - mkDerivation { - pname = "unordered-containers"; - version = "0.2.15.0"; - sha256 = "0s6kmkz0p5iw5bkmbv4fhgd6cb7v8a75wkv7h5acxp52h3qfm4kc"; - libraryHaskellDepends = [ base deepseq hashable ]; - testHaskellDepends = [ - base ChasingBottoms containers hashable HUnit QuickCheck random - test-framework test-framework-hunit test-framework-quickcheck2 - ]; - benchmarkHaskellDepends = [ - base bytestring containers deepseq gauge hashable hashmap mtl - random - ]; - description = "Efficient hashing-based container types"; - license = lib.licenses.bsd3; - }) {}; - - "unordered-containers_0_2_16_0" = callPackage ({ mkDerivation, base, bytestring, ChasingBottoms, containers , deepseq, gauge, hashable, hashmap, HUnit, mtl, QuickCheck, random , test-framework, test-framework-hunit, test-framework-quickcheck2 @@ -284974,7 +284396,6 @@ self: { ]; description = "Efficient hashing-based container types"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "unordered-containers-rematch" = callPackage @@ -287378,17 +286799,6 @@ self: { }) {}; "validity-text" = callPackage - ({ mkDerivation, base, bytestring, text, validity }: - mkDerivation { - pname = "validity-text"; - version = "0.3.1.1"; - sha256 = "1sdcivm7mbvi71zkm36g95wrb0y8fzhrnryp01m2wpmhffk1z5cf"; - libraryHaskellDepends = [ base bytestring text validity ]; - description = "Validity instances for text"; - license = lib.licenses.mit; - }) {}; - - "validity-text_0_3_1_2" = callPackage ({ mkDerivation, base, bytestring, text, validity }: mkDerivation { pname = "validity-text"; @@ -287397,7 +286807,6 @@ self: { libraryHaskellDepends = [ base bytestring text validity ]; description = "Validity instances for text"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; }) {}; "validity-time" = callPackage @@ -288932,26 +288341,6 @@ self: { }) {}; "versions" = callPackage - ({ mkDerivation, base, deepseq, hashable, megaparsec, microlens - , parser-combinators, QuickCheck, tasty, tasty-hunit - , tasty-quickcheck, text - }: - mkDerivation { - pname = "versions"; - version = "5.0.0"; - sha256 = "1rfxjivdsaqc6w7dfqdycy3a81rsajvpfyi5si9ssc0w3ljfsbzr"; - libraryHaskellDepends = [ - base deepseq hashable megaparsec parser-combinators text - ]; - testHaskellDepends = [ - base megaparsec microlens QuickCheck tasty tasty-hunit - tasty-quickcheck text - ]; - description = "Types and parsers for software version numbers"; - license = lib.licenses.bsd3; - }) {}; - - "versions_5_0_1" = callPackage ({ mkDerivation, base, deepseq, hashable, megaparsec, microlens , parser-combinators, QuickCheck, tasty, tasty-hunit , tasty-quickcheck, text @@ -288969,7 +288358,6 @@ self: { ]; description = "Types and parsers for software version numbers"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "vessel" = callPackage @@ -290934,23 +290322,6 @@ self: { }) {}; "wai-logger" = callPackage - ({ mkDerivation, base, byteorder, bytestring, Cabal, cabal-doctest - , doctest, fast-logger, http-types, network, wai - }: - mkDerivation { - pname = "wai-logger"; - version = "2.3.6"; - sha256 = "0hbm7if28p6qa36cgpyq6i569275si53z9gsl2g1z8x09z3xiyz2"; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - base byteorder bytestring fast-logger http-types network wai - ]; - testHaskellDepends = [ base doctest ]; - description = "A logging system for WAI"; - license = lib.licenses.bsd3; - }) {}; - - "wai-logger_2_3_7" = callPackage ({ mkDerivation, base, byteorder, bytestring, Cabal, cabal-doctest , doctest, fast-logger, http-types, network, wai }: @@ -290965,7 +290336,6 @@ self: { testHaskellDepends = [ base doctest ]; description = "A logging system for WAI"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "wai-logger-buffered" = callPackage @@ -292558,29 +291928,22 @@ self: { }) {}; "wasm" = callPackage - ({ mkDerivation, alex, array, base, base64-bytestring, bytestring - , cereal, containers, deepseq, directory, filepath, happy, ieee754 - , mtl, optparse-applicative, tasty, tasty-hunit, text, transformers - , utf8-string, vector + ({ mkDerivation, alex, array, base, bytestring, cereal, containers + , deepseq, directory, filepath, happy, ieee754, mtl, primitive + , tasty, tasty-hunit, text, transformers, utf8-string, vector }: mkDerivation { pname = "wasm"; - version = "1.0.0"; - sha256 = "0l5llqc05fr7zkva3ll8hy0qxx19r17qs6zcp098yz6vsnkavzx6"; - isLibrary = true; - isExecutable = true; + version = "1.1.1"; + sha256 = "004vv18wikxwjdx647grn95hj77h9l5dvsz6iprfy2pbycd40wij"; libraryHaskellDepends = [ - array base bytestring cereal containers deepseq ieee754 mtl text - transformers utf8-string vector + array base bytestring cereal containers deepseq ieee754 mtl + primitive text transformers utf8-string vector ]; libraryToolDepends = [ alex happy ]; - executableHaskellDepends = [ - base base64-bytestring bytestring optparse-applicative - ]; testHaskellDepends = [ base bytestring directory filepath mtl tasty tasty-hunit text ]; - testToolDepends = [ alex happy ]; description = "WebAssembly Language Toolkit and Interpreter"; license = lib.licenses.mit; hydraPlatforms = lib.platforms.none; @@ -294525,8 +293888,8 @@ self: { pname = "wide-word"; version = "0.1.1.2"; sha256 = "10sj7nca2sba74bkiicnp95xrfq2j1al93ggw3z24982nm9x3j8r"; - revision = "2"; - editedCabalFile = "09nr9ni9vs38ldzrx3vmlm6dr2avmwx6p9wlaml0nhr6sh4lbjsr"; + revision = "3"; + editedCabalFile = "15k9saqnib9vc9s4dsvamvnb3m6cjmnlwsy1brwfnd90vzzxmwjz"; libraryHaskellDepends = [ base deepseq primitive ]; testHaskellDepends = [ base bytestring ghc-prim hedgehog primitive QuickCheck @@ -294616,25 +293979,6 @@ self: { }) {}; "wild-bind" = callPackage - ({ mkDerivation, base, containers, hspec, hspec-discover, microlens - , QuickCheck, semigroups, stm, text, transformers - }: - mkDerivation { - pname = "wild-bind"; - version = "0.1.2.7"; - sha256 = "1vp88124shp9f79wfrdkp964pfmyzhsg3j718bkqrpgw5wbnwds0"; - libraryHaskellDepends = [ - base containers semigroups text transformers - ]; - testHaskellDepends = [ - base hspec microlens QuickCheck stm transformers - ]; - testToolDepends = [ hspec-discover ]; - description = "Dynamic key binding framework"; - license = lib.licenses.bsd3; - }) {}; - - "wild-bind_0_1_2_8" = callPackage ({ mkDerivation, base, containers, hspec, hspec-discover, microlens , QuickCheck, semigroups, stm, text, transformers }: @@ -294651,7 +293995,6 @@ self: { testToolDepends = [ hspec-discover ]; description = "Dynamic key binding framework"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "wild-bind-indicator" = callPackage @@ -294688,27 +294031,6 @@ self: { }) {}; "wild-bind-x11" = callPackage - ({ mkDerivation, async, base, containers, fold-debounce, hspec - , hspec-discover, mtl, semigroups, stm, text, time, transformers - , wild-bind, X11 - }: - mkDerivation { - pname = "wild-bind-x11"; - version = "0.2.0.13"; - sha256 = "0fs8k2kfzm6qq9xy35278xprgq7vf0v4qz7q0gz8qv480hffccc5"; - libraryHaskellDepends = [ - base containers fold-debounce mtl semigroups stm text transformers - wild-bind X11 - ]; - testHaskellDepends = [ - async base hspec text time transformers wild-bind X11 - ]; - testToolDepends = [ hspec-discover ]; - description = "X11-specific implementation for WildBind"; - license = lib.licenses.bsd3; - }) {}; - - "wild-bind-x11_0_2_0_14" = callPackage ({ mkDerivation, async, base, containers, fold-debounce, hspec , hspec-discover, mtl, semigroups, stm, text, time, transformers , wild-bind, X11 @@ -294727,7 +294049,6 @@ self: { testToolDepends = [ hspec-discover ]; description = "X11-specific implementation for WildBind"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "willow" = callPackage @@ -294958,25 +294279,6 @@ self: { }) {}; "witch" = callPackage - ({ mkDerivation, base, bytestring, containers, HUnit - , template-haskell, text, time - }: - mkDerivation { - pname = "witch"; - version = "0.3.4.0"; - sha256 = "0ykdd47kfan9zr656l6q3cmp3npxq44ykjci2q51bphlawiwh496"; - libraryHaskellDepends = [ - base bytestring containers template-haskell text time - ]; - testHaskellDepends = [ - base bytestring containers HUnit text time - ]; - description = "Convert values from one type into another"; - license = lib.licenses.isc; - maintainers = with lib.maintainers; [ maralorn ]; - }) {}; - - "witch_0_3_4_1" = callPackage ({ mkDerivation, base, bytestring, containers, HUnit , template-haskell, text, time }: @@ -294992,7 +294294,6 @@ self: { ]; description = "Convert values from one type into another"; license = lib.licenses.isc; - hydraPlatforms = lib.platforms.none; maintainers = with lib.maintainers; [ maralorn ]; }) {}; @@ -296768,20 +296069,6 @@ self: { }) {}; "wuss" = callPackage - ({ mkDerivation, base, bytestring, connection, network, websockets - }: - mkDerivation { - pname = "wuss"; - version = "1.1.18"; - sha256 = "0idxk1q0gsh1hq56w8jxnsb58p8z8d45qgj6zqzsszlccwzgr24f"; - libraryHaskellDepends = [ - base bytestring connection network websockets - ]; - description = "Secure WebSocket (WSS) clients"; - license = lib.licenses.mit; - }) {}; - - "wuss_1_1_19" = callPackage ({ mkDerivation, base, bytestring, connection, network, websockets }: mkDerivation { @@ -296793,7 +296080,6 @@ self: { ]; description = "Secure WebSocket (WSS) clients"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; }) {}; "wx" = callPackage @@ -297136,8 +296422,8 @@ self: { }: mkDerivation { pname = "x86-64bit"; - version = "0.4.6.1"; - sha256 = "155ii89a3qjjb1crbps8h41sd9wm5b2qamhw8gpbmywshk9pnd87"; + version = "0.4.6.2"; + sha256 = "117r80i4xgjn9naxffgz871i7cclxjr7m0llfjkgwgqd01sqjdqi"; libraryHaskellDepends = [ base deepseq monads-tf tardis vector ]; testHaskellDepends = [ base deepseq monads-tf QuickCheck tardis vector @@ -304244,8 +303530,8 @@ self: { }: mkDerivation { pname = "zeolite-lang"; - version = "0.21.0.0"; - sha256 = "1vavvyn2p7q02gflxhnppxqqwhlzj36plcpybnm8yf9wgrpxrlqg"; + version = "0.22.0.0"; + sha256 = "1569qdpy2llvi4cvbmya89ll21rjjwbzxhm0f639aaaxal21szj5"; isLibrary = false; isExecutable = true; enableSeparateDataOutput = true; From 9beb15dd66ec0fe87db843b87772622981721c8b Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Tue, 21 Dec 2021 15:14:12 +0100 Subject: [PATCH 12/87] haskellPackages.Agda: drop now unnecessary upgrade override Stackage LTS now distributes 2.6.2.1 by default. --- pkgs/development/haskell-modules/configuration-common.nix | 3 --- 1 file changed, 3 deletions(-) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 4ad099ff93a2..43c133992a2d 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -2137,7 +2137,4 @@ self: super: { # https://github.com/ChrisPenner/jet/issues/1 jet = doJailbreak super.jet; - # Use latest version until next Stackage LTS snapshot - Agda = doDistribute self.Agda_2_6_2_1; - } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super From a7e1fcdeca1fc06616d8970a381fa770a2a6f915 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Tue, 21 Dec 2021 15:22:46 +0100 Subject: [PATCH 13/87] haskell.packages.ghc901.hlint: 3.3.4 -> 3.3.5 haskell.packages.ghc921.hlint: adjust override --- .../development/haskell-modules/configuration-ghc-9.0.x.nix | 2 +- .../development/haskell-modules/configuration-ghc-9.2.x.nix | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix index 8a42854be785..2b4a1ef2171a 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix @@ -117,7 +117,7 @@ self: super: { retry = dontCheck super.retry; # Hlint needs >= 3.3.4 for ghc 9 support. - hlint = super.hlint_3_3_4; + hlint = super.hlint_3_3_5; # 2021-09-18: ghc-api-compat and ghc-lib-* need >= 9.0.x versions for hls and hlint ghc-api-compat = doDistribute super.ghc-api-compat_9_0_1; diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix index 30cc6fb9efe3..e775319c1c61 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix @@ -210,7 +210,7 @@ self: super: { text-short = dontCheck super.text-short_0_1_4; # Use hlint from git for GHC 9.2.1 support - hlint = overrideCabal { + hlint = overrideSrc { version = "unstable-2021-12-12"; src = pkgs.fetchFromGitHub { owner = "ndmitchell"; @@ -218,9 +218,7 @@ self: super: { rev = "77a9702e10b772a7695c08682cd4f450fd0e9e46"; sha256 = "0hpp3iw7m7w2abr8vb86gdz3x6c8lj119zxln933k90ia7bmk8jc"; }; - revision = null; - editedCabalFile = null; - } (super.hlint_3_3_4.overrideScope (self: super: { + } (super.hlint_3_3_5.overrideScope (self: super: { ghc-lib-parser = self.ghc-lib-parser_9_2_1_20211101; ghc-lib-parser-ex = self.ghc-lib-parser-ex_9_2_0_1; })); From c9763c1519a21fdf6154b78d81ed6dc060d99905 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Tue, 21 Dec 2021 15:23:32 +0100 Subject: [PATCH 14/87] haskellPackages.hledger_1_24_1: init at 1.24.1 haskellPackages.hledger-lib_1_24_1: init at 1.24.1 haskellPackages.hledger_1_24: remove at 1.24 haskellPackages.hledger-lib_1_24: remove at 1.24 hledger-check-fancyassertions: build using hledger-lib 1.24.1 --- .../office/hledger-check-fancyassertions/default.nix | 2 +- pkgs/development/haskell-modules/configuration-common.nix | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/office/hledger-check-fancyassertions/default.nix b/pkgs/applications/office/hledger-check-fancyassertions/default.nix index 3b0b1df16450..07ec94181293 100644 --- a/pkgs/applications/office/hledger-check-fancyassertions/default.nix +++ b/pkgs/applications/office/hledger-check-fancyassertions/default.nix @@ -16,7 +16,7 @@ stdenvNoCC.mkDerivation rec { "hledger-check-fancyassertions" { libraries = with haskellPackages; [ - base base-compat base-compat-batteries filepath hledger-lib_1_24 + base base-compat base-compat-batteries filepath hledger-lib_1_24_1 megaparsec microlens optparse-applicative string-qq text time transformers ]; diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 43c133992a2d..2b2b0a08c2ca 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -863,7 +863,7 @@ self: super: { super.hledger-lib; # hledger-lib 1.24 depends on doctest >= 0.18 - hledger-lib_1_24 = super.hledger-lib_1_24.override { + hledger-lib_1_24_1 = super.hledger-lib_1_24_1.override { doctest = self.doctest_0_18_2; }; @@ -2118,8 +2118,8 @@ self: super: { }); # These should be updated in lockstep - hledger_1_24 = super.hledger_1_24.override { - hledger-lib = self.hledger-lib_1_24; + hledger_1_24_1 = super.hledger_1_24_1.override { + hledger-lib = self.hledger-lib_1_24_1; }; # Needs brick > 0.64 From df9411eed496f9d68be0137901834d11773d4219 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Tue, 21 Dec 2021 16:00:52 +0100 Subject: [PATCH 15/87] hledger-check-fancyassertions: tie version to hledger-lib This means that updating hledger-lib will automatically force us to update hledger-check-fancyassertions. Any new hash mismatch will be caught by src.name changing, forcing a rebuild of the derivation. --- .../hledger-check-fancyassertions/default.nix | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/pkgs/applications/office/hledger-check-fancyassertions/default.nix b/pkgs/applications/office/hledger-check-fancyassertions/default.nix index 07ec94181293..df3752eac3e0 100644 --- a/pkgs/applications/office/hledger-check-fancyassertions/default.nix +++ b/pkgs/applications/office/hledger-check-fancyassertions/default.nix @@ -1,12 +1,17 @@ {lib, stdenvNoCC, haskellPackages, fetchurl, writers}: +let + hledger-lib = haskellPackages.hledger-lib_1_24_1; +in + stdenvNoCC.mkDerivation rec { pname = "hledger-check-fancyassertions"; - version = "1.23"; + inherit (hledger-lib) version; src = fetchurl { + name = "hledger-check-fancyassertion-${version}.hs"; url = "https://raw.githubusercontent.com/simonmichael/hledger/hledger-lib-${version}/bin/hledger-check-fancyassertions.hs"; - sha256 = "08p2din1j7l4c29ipn68k8vvs3ys004iy8a3zf318lzby4h04h0n"; + sha256 = "0naggvivc6szsc8haa52a6lm079ikz5qfva0ljnqx0f1zlkxv984"; }; dontUnpack = true; @@ -15,11 +20,13 @@ stdenvNoCC.mkDerivation rec { executable = writers.writeHaskell "hledger-check-fancyassertions" { - libraries = with haskellPackages; [ - base base-compat base-compat-batteries filepath hledger-lib_1_24_1 + libraries = [ + hledger-lib + ] ++ (with haskellPackages; [ + base base-compat base-compat-batteries filepath megaparsec microlens optparse-applicative string-qq text time transformers - ]; + ]); inherit (haskellPackages) ghc; } src; From 9a7068759c870b1855ef9b8b617520e0e943c4eb Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Tue, 21 Dec 2021 15:31:51 +0100 Subject: [PATCH 16/87] release-haskell.nix: GHC 9.2.1 is a released compiler GHC 9.2.1 has grown beyond being a release candidate for quite some time now, so let's also adjust the released shortcut in the jobset definition. ghc-api-compat and haskell-language-server still don't support 9.2.1, however. --- pkgs/top-level/release-haskell.nix | 37 +++++++++++++++++++----------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/pkgs/top-level/release-haskell.nix b/pkgs/top-level/release-haskell.nix index 72f981b7845a..a9e4ea32ccdc 100644 --- a/pkgs/top-level/release-haskell.nix +++ b/pkgs/top-level/release-haskell.nix @@ -52,6 +52,7 @@ let ghc884 ghc8107 ghc901 + ghc921 ]; # packagePlatforms applied to `haskell.packages.*` @@ -304,20 +305,28 @@ let # and to confirm that critical packages for the # package sets (like Cabal, jailbreak-cabal) are # working as expected. - cabal-install = released ++ [ compilerNames.ghc921 ]; - Cabal_3_6_2_0 = released ++ [ compilerNames.ghc921 ]; - cabal2nix = released ++ [ compilerNames.ghc921 ]; - cabal2nix-unstable = released ++ [ compilerNames.ghc921 ]; - funcmp = released ++ [ compilerNames.ghc921 ]; - haskell-language-server = released; - hoogle = released ++ [ compilerNames.ghc921 ]; - hlint = released ++ [ compilerNames.ghc921 ]; - hsdns = released ++ [ compilerNames.ghc921 ]; - jailbreak-cabal = released ++ [ compilerNames.ghc921 ]; - language-nix = released ++ [ compilerNames.ghc921 ]; - nix-paths = released ++ [ compilerNames.ghc921 ]; - titlecase = released ++ [ compilerNames.ghc921 ]; - ghc-api-compat = released; + cabal-install = released; + Cabal_3_6_2_0 = released; + cabal2nix = released; + cabal2nix-unstable = released; + funcmp = released; + haskell-language-server = [ + compilerNames.ghc884 + compilerNames.ghc8107 + compilerNames.ghc901 + ]; + hoogle = released; + hlint = released; + hsdns = released; + jailbreak-cabal = released; + language-nix = released; + nix-paths = released; + titlecase = released; + ghc-api-compat = [ + compilerNames.ghc884 + compilerNames.ghc8107 + compilerNames.ghc901 + ]; }) { mergeable = pkgs.releaseTools.aggregate { From 7a6878a95673271aaf46aa53a06844cc0d1739e9 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Tue, 21 Dec 2021 16:08:13 +0100 Subject: [PATCH 17/87] haskell.compiler.*.hlint: make hlint is built on Hydra for GHC >= 9 --- .../configuration-ghc-9.0.x.nix | 2 +- .../configuration-ghc-9.2.x.nix | 26 ++++++++++--------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix index 2b4a1ef2171a..2915645689be 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix @@ -117,7 +117,7 @@ self: super: { retry = dontCheck super.retry; # Hlint needs >= 3.3.4 for ghc 9 support. - hlint = super.hlint_3_3_5; + hlint = doDistribute super.hlint_3_3_5; # 2021-09-18: ghc-api-compat and ghc-lib-* need >= 9.0.x versions for hls and hlint ghc-api-compat = doDistribute super.ghc-api-compat_9_0_1; diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix index e775319c1c61..e23764e349f5 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix @@ -210,18 +210,20 @@ self: super: { text-short = dontCheck super.text-short_0_1_4; # Use hlint from git for GHC 9.2.1 support - hlint = overrideSrc { - version = "unstable-2021-12-12"; - src = pkgs.fetchFromGitHub { - owner = "ndmitchell"; - repo = "hlint"; - rev = "77a9702e10b772a7695c08682cd4f450fd0e9e46"; - sha256 = "0hpp3iw7m7w2abr8vb86gdz3x6c8lj119zxln933k90ia7bmk8jc"; - }; - } (super.hlint_3_3_5.overrideScope (self: super: { - ghc-lib-parser = self.ghc-lib-parser_9_2_1_20211101; - ghc-lib-parser-ex = self.ghc-lib-parser-ex_9_2_0_1; - })); + hlint = doDistribute ( + overrideSrc { + version = "unstable-2021-12-12"; + src = pkgs.fetchFromGitHub { + owner = "ndmitchell"; + repo = "hlint"; + rev = "77a9702e10b772a7695c08682cd4f450fd0e9e46"; + sha256 = "0hpp3iw7m7w2abr8vb86gdz3x6c8lj119zxln933k90ia7bmk8jc"; + }; + } (super.hlint_3_3_5.overrideScope (self: super: { + ghc-lib-parser = self.ghc-lib-parser_9_2_1_20211101; + ghc-lib-parser-ex = self.ghc-lib-parser-ex_9_2_0_1; + })) + ); # https://github.com/sjakobi/bsb-http-chunked/issues/38 bsb-http-chunked = dontCheck super.bsb-http-chunked; From 631277883ba82cacf4593bc04112bc34e11ca632 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Tue, 21 Dec 2021 19:53:27 +0100 Subject: [PATCH 18/87] haskellPackages.lucid: disable failing test case The test in question seems to fail because it depended on the ordering of things returned from /unordered/-containers of all things. This seems to have changed in the recent upgrade 0.2.15.0 -> 0.2.16.0 in LTS 18. --- .../development/haskell-modules/configuration-common.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 2b2b0a08c2ca..2b619ac1c3b7 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -2137,4 +2137,13 @@ self: super: { # https://github.com/ChrisPenner/jet/issues/1 jet = doJailbreak super.jet; + # Upgrade of unordered-containers in Stackage causes ordering-sensitive test to fail + # https://github.com/chrisdone/lucid/issues/123 + # https://github.com/commercialhaskell/stackage/issues/6366 + lucid = assert super.lucid == "2.9.12.1"; overrideCabal (drv: { + testFlags = [ + "--skip" "/attributes-with/mixed/" + ] ++ drv.testFlags or []; + }) super.lucid; + } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super From 6198eac9ba6fed868d8cc98e9410e31638a566ae Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Tue, 21 Dec 2021 21:57:16 +0100 Subject: [PATCH 19/87] haskellPackages.lucid: fix eval --- pkgs/development/haskell-modules/configuration-common.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 2b619ac1c3b7..60efe5720608 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -2140,7 +2140,7 @@ self: super: { # Upgrade of unordered-containers in Stackage causes ordering-sensitive test to fail # https://github.com/chrisdone/lucid/issues/123 # https://github.com/commercialhaskell/stackage/issues/6366 - lucid = assert super.lucid == "2.9.12.1"; overrideCabal (drv: { + lucid = assert super.lucid.version == "2.9.12.1"; overrideCabal (drv: { testFlags = [ "--skip" "/attributes-with/mixed/" ] ++ drv.testFlags or []; From d6f265f1820b3cbbe5ee53eb52612cc1df31728f Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Tue, 21 Dec 2021 23:00:15 +0100 Subject: [PATCH 20/87] haskellPackages.swagger2: don't run ordering dependant doctests Changes in unordered-containers cause swagger2's doctests, because they check precise ordering of thing returned from unordered-containers. --- pkgs/development/haskell-modules/configuration-common.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 60efe5720608..f83e14d87072 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -2145,5 +2145,9 @@ self: super: { "--skip" "/attributes-with/mixed/" ] ++ drv.testFlags or []; }) super.lucid; + # Basically the entire doctest suite of swagger2 fails for the same reason + swagger2 = assert super.swagger2.version == "2.6"; overrideCabal (drv: { + testTarget = "spec"; + }) super.swagger2; } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super From 6a525a1ce6b5ec10c2e680b09c1e3a6498af18a7 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Tue, 21 Dec 2021 23:01:36 +0100 Subject: [PATCH 21/87] haskellPackages.retrie: downgrade to 1.1.0.0 for GHC < 9.2 retrie 1.2.0.0 adds support for 9.2, but drops it for all prior versions. haskell.packages.ghc921.retrie stays at 1.2.0.0. haskell.packages.ghc921.ghc-exactprint: 0.6.4 -> 1.3.0 --- .../configuration-ghc-9.2.x.nix | 14 +++++++++ .../configuration-hackage2nix/main.yaml | 2 ++ .../haskell-modules/configuration-nix.nix | 6 +++- .../haskell-modules/hackage-packages.nix | 30 +++++++++++++++++++ 4 files changed, 51 insertions(+), 1 deletion(-) diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix index e23764e349f5..3b73361d2399 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix @@ -101,6 +101,19 @@ self: super: { genvalidity-property = self.genvalidity-property_1_0_0_0; genvalidity-hspec = self.genvalidity-hspec_1_0_0_0; ghc-byteorder = doJailbreak super.ghc-byteorder; + ghc-exactprint = overrideCabal (drv: { + # HACK: ghc-exactprint 1.3.0 is not buildable for GHC < 9.2, + # but hackage2nix evaluates the cabal file with GHC 8.10.*, + # causing the build-depends to be skipped. Since the dependency + # list hasn't changed much since 0.6.4, we can just reuse the + # normal expression. + inherit (self.ghc-exactprint_1_3_0) src version; + revision = null; editedCabalFile = null; + libraryHaskellDepends = [ + self.fail + self.ordered-containers + ] ++ drv.libraryHaskellDepends or []; + }) super.ghc-exactprint; ghc-lib = self.ghc-lib_9_2_1_20211101; ghc-lib-parser = self.ghc-lib-parser_9_2_1_20211101; ghc-lib-parser-ex = self.ghc-lib-parser-ex_9_2_0_1; @@ -124,6 +137,7 @@ self: super: { quickcheck-instances = super.quickcheck-instances_0_3_27; regex-posix = doJailbreak super.regex-posix; resolv = doJailbreak super.resolv; + retrie = doDistribute self.retrie_1_2_0_0; semialign = super.semialign_1_2_0_1; singleton-bool = doJailbreak super.singleton-bool; scientific = doJailbreak super.scientific; diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml index 8bc39a2564be..e7ff902ecb9d 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml @@ -126,6 +126,8 @@ default-package-overrides: - rel8 < 1.2.1.0 # 0.14.0.0 drops support for every GHC < 9.0.1 - brittany < 0.14 + # 1.2.0.0: “Dropped support for GHC <9.2 (might readd it later)” + - retrie < 1.2.0.0 extra-packages: - base16-bytestring < 1 # required for cabal-install etc. diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix index 19ceea978743..239382fe83ad 100644 --- a/pkgs/development/haskell-modules/configuration-nix.nix +++ b/pkgs/development/haskell-modules/configuration-nix.nix @@ -718,9 +718,13 @@ self: super: builtins.intersectAttrs super { postgresql-pure = dontCheck super.postgresql-pure; retrie = overrideCabal (drv: { - testToolDepends = [ pkgs.git pkgs.mercurial ]; + testToolDepends = [ pkgs.git pkgs.mercurial ] ++ drv.testToolDepends or []; }) super.retrie; + retrie_1_2_0_0 = overrideCabal (drv: { + testToolDepends = [ pkgs.git pkgs.mercurial ] ++ drv.testToolDepends or []; + }) super.retrie_1_2_0_0; + nix-output-monitor = overrideCabal { # Can't ran the golden-tests with nix, because they call nix testTarget = "unit-tests"; diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix index 6aa73457c2ed..607f9af93e32 100644 --- a/pkgs/development/haskell-modules/hackage-packages.nix +++ b/pkgs/development/haskell-modules/hackage-packages.nix @@ -233223,6 +233223,35 @@ self: { }) {}; "retrie" = callPackage + ({ mkDerivation, ansi-terminal, async, base, bytestring, containers + , data-default, deepseq, directory, filepath, ghc, ghc-exactprint + , ghc-paths, haskell-src-exts, HUnit, list-t, mtl + , optparse-applicative, process, random-shuffle, syb, tasty + , tasty-hunit, temporary, text, transformers, unordered-containers + }: + mkDerivation { + pname = "retrie"; + version = "1.1.0.0"; + sha256 = "148d1pl52mac4mz4pl9qmmynjjbzygg4x6vlsyblb268drcjn3f8"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + ansi-terminal async base bytestring containers data-default + directory filepath ghc ghc-exactprint list-t mtl + optparse-applicative process random-shuffle syb text transformers + unordered-containers + ]; + executableHaskellDepends = [ base haskell-src-exts ]; + testHaskellDepends = [ + base containers data-default deepseq directory filepath ghc + ghc-paths haskell-src-exts HUnit mtl optparse-applicative process + syb tasty tasty-hunit temporary text unordered-containers + ]; + description = "A powerful, easy-to-use codemodding tool for Haskell"; + license = lib.licenses.mit; + }) {}; + + "retrie_1_2_0_0" = callPackage ({ mkDerivation, ansi-terminal, async, base, bytestring, containers , data-default, deepseq, directory, exceptions, filepath, ghc , ghc-exactprint, ghc-paths, haskell-src-exts, HUnit, list-t, mtl @@ -233250,6 +233279,7 @@ self: { ]; description = "A powerful, easy-to-use codemodding tool for Haskell"; license = lib.licenses.mit; + hydraPlatforms = lib.platforms.none; }) {}; "retroclash-lib" = callPackage From 8bb3941679260f1763b8935eab5aaed6bc719537 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Tue, 21 Dec 2021 23:33:31 +0100 Subject: [PATCH 22/87] haskellPackages.hadolint: skip order-dependant test case --- .../haskell-modules/configuration-common.nix | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index f83e14d87072..daca1436d3a3 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -2109,13 +2109,20 @@ self: super: { gogol-core = appendPatch ./patches/gogol-core-144.patch super.gogol-core; # Jailbreak isn't sufficient, but this is ok as it's a leaf package. - hadolint = super.hadolint.overrideScope (self: super: { + hadolint = overrideCabal (drv: { + # Test suite depends on ordering of unordered-containers returned values + # which was upgraded in LTS 18.19 + # https://github.com/hadolint/hadolint/issues/753 + testFlags = [ + "--skip" "/Hadolint.Formatter.Sarif/Formatter: Sarif/print empty results/" + ] ++ drv.testFlags or []; + }) (super.hadolint.overrideScope (self: super: { language-docker = self.language-docker_10_4_0; hspec = dontCheck self.hspec_2_9_4; hspec-core = dontCheck self.hspec-core_2_9_4; hspec-discover = dontCheck self.hspec-discover_2_9_4; colourista = doJailbreak super.colourista; - }); + })); # These should be updated in lockstep hledger_1_24_1 = super.hledger_1_24_1.override { From 132b8eb18308b9d2e7290b12f055d6c9d0331420 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Wed, 22 Dec 2021 10:49:00 +0100 Subject: [PATCH 23/87] haskell.packages.ghc901.dependent-sum-template: drop released patch --- .../haskell-modules/configuration-ghc-9.0.x.nix | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix index 2915645689be..71b74f6db703 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix @@ -128,16 +128,6 @@ self: super: { # 2021-09-18: Need semialign >= 1.2 for correct bounds semialign = super.semialign_1_2_0_1; - # 2021-09-18: GHC 9 compat release is missing - # Issue: https://github.com/obsidiansystems/dependent-sum/issues/65 - dependent-sum-template = dontCheck (appendPatch - (pkgs.fetchpatch { - url = "https://github.com/obsidiansystems/dependent-sum/commit/8cf4c7fbc3bfa2be475a17bb7c94a1e1e9a830b5.patch"; - sha256 = "02wyy0ciicq2x8lw4xxz3x5i4a550mxfidhm2ihh60ni6am498ff"; - stripLen = 2; - extraPrefix = ""; - }) super.dependent-sum-template); - # 2021-09-18: cabal2nix does not detect the need for ghc-api-compat. hiedb = overrideCabal (old: { libraryHaskellDepends = old.libraryHaskellDepends ++ [self.ghc-api-compat]; From 8c9dc408ad496cfb6a9e9a15b8938aac98d98352 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Wed, 22 Dec 2021 10:49:30 +0100 Subject: [PATCH 24/87] haskellPackages.Unique: disable ordering-dependent test Data.List.UniqueUnsorted's test suite has some tests that check the precise ordering of the return value, but the module does not make any guarantees about ordering of return values as far as I can tell, so these tests should be safe to ignore. --- pkgs/development/haskell-modules/configuration-common.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index daca1436d3a3..c0f28cb21a2e 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -2156,5 +2156,13 @@ self: super: { swagger2 = assert super.swagger2.version == "2.6"; overrideCabal (drv: { testTarget = "spec"; }) super.swagger2; + # https://github.com/kapralVV/Unique/issues/9 + Unique = assert super.Unique.version == "0.4.7.9"; overrideCabal (drv: { + testFlags = [ + "--skip" "/Data.List.UniqueUnsorted.removeDuplicates/removeDuplicates: simple test/" + "--skip" "/Data.List.UniqueUnsorted.repeatedBy,repeated,unique/unique: simple test/" + "--skip" "/Data.List.UniqueUnsorted.repeatedBy,repeated,unique/repeatedBy: simple test/" + ] ++ drv.testFlags or []; + }) super.Unique; } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super From 721fde93ffcc941b7486e3ec77121d9a8ddbd64f Mon Sep 17 00:00:00 2001 From: Nikolay Amiantov Date: Wed, 15 Dec 2021 01:07:47 +0300 Subject: [PATCH 25/87] docker: add rootless daemon script --- pkgs/applications/virtualization/docker/default.nix | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/virtualization/docker/default.nix b/pkgs/applications/virtualization/docker/default.nix index 8345b2b42d76..3bea9f447668 100644 --- a/pkgs/applications/virtualization/docker/default.nix +++ b/pkgs/applications/virtualization/docker/default.nix @@ -15,7 +15,7 @@ rec { , go-md2man, go, containerd_1_4, runc, docker-proxy, tini, libtool , sqlite, iproute2, lvm2, systemd, docker-buildx, docker-compose_2 , btrfs-progs, iptables, e2fsprogs, xz, util-linux, xfsprogs, git - , procps, libseccomp + , procps, libseccomp, rootlesskit, slirp4netns, fuse-overlayfs , nixosTests , clientOnly ? !stdenv.isLinux, symlinkJoin }: @@ -77,6 +77,8 @@ rec { extraPath = optionals (stdenv.isLinux) (makeBinPath [ iproute2 iptables e2fsprogs xz xfsprogs procps util-linux git ]); + extraUserPath = optionals (stdenv.isLinux) (makeBinPath [ rootlesskit slirp4netns fuse-overlayfs ]); + postPatch = '' patchShebangs hack/make.sh hack/make/ ''; @@ -109,6 +111,11 @@ rec { install -Dm644 ./contrib/init/systemd/docker.service $out/etc/systemd/system/docker.service substituteInPlace $out/etc/systemd/system/docker.service --replace /usr/bin/dockerd $out/bin/dockerd install -Dm644 ./contrib/init/systemd/docker.socket $out/etc/systemd/system/docker.socket + + # rootless Docker + install -Dm755 ./contrib/dockerd-rootless.sh $out/libexec/docker/dockerd-rootless.sh + makeWrapper $out/libexec/docker/dockerd-rootless.sh $out/bin/dockerd-rootless \ + --prefix PATH : "$out/libexec/docker:$extraPath:$extraUserPath" ''; DOCKER_BUILDTAGS = [] @@ -184,6 +191,7 @@ rec { '' + optionalString (!clientOnly) '' # symlink docker daemon to docker cli derivation ln -s ${moby}/bin/dockerd $out/bin/dockerd + ln -s ${moby}/bin/dockerd-rootless $out/bin/dockerd-rootless # systemd mkdir -p $out/etc/systemd/system From ab64310a5e5534a8c96d6523ba5a765d27beceaf Mon Sep 17 00:00:00 2001 From: Nikolay Amiantov Date: Wed, 15 Dec 2021 01:07:58 +0300 Subject: [PATCH 26/87] docker-rootless service: init --- .../from_md/release-notes/rl-2205.section.xml | 8 ++ .../manual/release-notes/rl-2205.section.md | 1 + nixos/modules/module-list.nix | 1 + .../virtualisation/docker-rootless.nix | 98 +++++++++++++++++++ nixos/tests/all-tests.nix | 1 + nixos/tests/docker-rootless.nix | 41 ++++++++ 6 files changed, 150 insertions(+) create mode 100644 nixos/modules/virtualisation/docker-rootless.nix create mode 100644 nixos/tests/docker-rootless.nix diff --git a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml index ae6ff9d434ae..d11b29a6334d 100644 --- a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml +++ b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml @@ -33,6 +33,14 @@ services.aesmd. + + + rootless + Docker, a systemd --user Docker + service which runs without root permissions. Available as + virtualisation.docker.rootless.enable. + + filebeat, diff --git a/nixos/doc/manual/release-notes/rl-2205.section.md b/nixos/doc/manual/release-notes/rl-2205.section.md index 3e7f8d451b26..3990a3359b65 100644 --- a/nixos/doc/manual/release-notes/rl-2205.section.md +++ b/nixos/doc/manual/release-notes/rl-2205.section.md @@ -11,6 +11,7 @@ In addition to numerous new and upgraded packages, this release has the followin ## New Services {#sec-release-22.05-new-services} - [aesmd](https://github.com/intel/linux-sgx#install-the-intelr-sgx-psw), the Intel SGX Architectural Enclave Service Manager. Available as [services.aesmd](#opt-services.aesmd.enable). +- [rootless Docker](https://docs.docker.com/engine/security/rootless/), a `systemd --user` Docker service which runs without root permissions. Available as [virtualisation.docker.rootless.enable](options.html#opt-virtualisation.docker.rootless.enable). - [filebeat](https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-overview.html), a lightweight shipper for forwarding and centralizing log data. Available as [services.filebeat](#opt-services.filebeat.enable). diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 30ad0db459ef..55de01735024 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -1187,6 +1187,7 @@ ./virtualisation/oci-containers.nix ./virtualisation/cri-o.nix ./virtualisation/docker.nix + ./virtualisation/docker-rootless.nix ./virtualisation/ecs-agent.nix ./virtualisation/libvirtd.nix ./virtualisation/lxc.nix diff --git a/nixos/modules/virtualisation/docker-rootless.nix b/nixos/modules/virtualisation/docker-rootless.nix new file mode 100644 index 000000000000..0e7f05031420 --- /dev/null +++ b/nixos/modules/virtualisation/docker-rootless.nix @@ -0,0 +1,98 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + cfg = config.virtualisation.docker.rootless; + proxy_env = config.networking.proxy.envVars; + settingsFormat = pkgs.formats.json {}; + daemonSettingsFile = settingsFormat.generate "daemon.json" cfg.daemon.settings; + +in + +{ + ###### interface + + options.virtualisation.docker.rootless = { + enable = mkOption { + type = types.bool; + default = false; + description = '' + This option enables docker in a rootless mode, a daemon that manages + linux containers. To interact with the daemon, one needs to set + DOCKER_HOST=unix://$XDG_RUNTIME_DIR/docker.sock. + ''; + }; + + setSocketVariable = mkOption { + type = types.bool; + default = false; + description = '' + Point DOCKER_HOST to rootless Docker instance for + normal users by default. + ''; + }; + + daemon.settings = mkOption { + type = settingsFormat.type; + default = { }; + example = { + ipv6 = true; + "fixed-cidr-v6" = "fd00::/80"; + }; + description = '' + Configuration for docker daemon. The attributes are serialized to JSON used as daemon.conf. + See https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file + ''; + }; + + package = mkOption { + default = pkgs.docker; + defaultText = literalExpression "pkgs.docker"; + type = types.package; + example = literalExpression "pkgs.docker-edge"; + description = '' + Docker package to be used in the module. + ''; + }; + }; + + ###### implementation + + config = mkIf cfg.enable { + environment.systemPackages = [ cfg.package ]; + + environment.extraInit = optionalString cfg.setSocketVariable '' + if [ -z "$DOCKER_HOST" -a -n "$XDG_RUNTIME_DIR" ]; then + export DOCKER_HOST="unix://$XDG_RUNTIME_DIR/docker.sock" + fi + ''; + + # Taken from https://github.com/moby/moby/blob/master/contrib/dockerd-rootless-setuptool.sh + systemd.user.services.docker = { + wantedBy = [ "default.target" ]; + description = "Docker Application Container Engine (Rootless)"; + # needs newuidmap from pkgs.shadow + path = [ "/run/wrappers" ]; + environment = proxy_env; + unitConfig.StartLimitInterval = "60s"; + serviceConfig = { + Type = "notify"; + ExecStart = "${cfg.package}/bin/dockerd-rootless --config-file=${daemonSettingsFile}"; + ExecReload = "${pkgs.procps}/bin/kill -s HUP $MAINPID"; + TimeoutSec = 0; + RestartSec = 2; + Restart = "always"; + StartLimitBurst = 3; + LimitNOFILE = "infinity"; + LimitNPROC = "infinity"; + LimitCORE = "infinity"; + Delegate = true; + NotifyAccess = "all"; + KillMode = "mixed"; + }; + }; + }; + +} diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 8f4d800abbfd..779519b965db 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -104,6 +104,7 @@ in dnscrypt-wrapper = handleTestOn ["x86_64-linux"] ./dnscrypt-wrapper {}; doas = handleTest ./doas.nix {}; docker = handleTestOn ["x86_64-linux"] ./docker.nix {}; + docker-rootless = handleTestOn ["x86_64-linux"] ./docker-rootless.nix {}; docker-edge = handleTestOn ["x86_64-linux"] ./docker-edge.nix {}; docker-registry = handleTest ./docker-registry.nix {}; docker-tools = handleTestOn ["x86_64-linux"] ./docker-tools.nix {}; diff --git a/nixos/tests/docker-rootless.nix b/nixos/tests/docker-rootless.nix new file mode 100644 index 000000000000..e2a926eb3cb0 --- /dev/null +++ b/nixos/tests/docker-rootless.nix @@ -0,0 +1,41 @@ +# This test runs docker and checks if simple container starts + +import ./make-test-python.nix ({ lib, pkgs, ...} : { + name = "docker-rootless"; + meta = with pkgs.lib.maintainers; { + maintainers = [ abbradar ]; + }; + + nodes = { + machine = { pkgs, ... }: { + virtualisation.docker.rootless.enable = true; + + users.users.alice = { + uid = 1000; + isNormalUser = true; + }; + }; + }; + + testScript = { nodes, ... }: + let + user = nodes.machine.config.users.users.alice; + sudo = lib.concatStringsSep " " [ + "XDG_RUNTIME_DIR=/run/user/${toString user.uid}" + "DOCKER_HOST=unix:///run/user/${toString user.uid}/docker.sock" + "sudo" "--preserve-env=XDG_RUNTIME_DIR,DOCKER_HOST" "-u" "alice" + ]; + in '' + machine.wait_for_unit("multi-user.target") + + machine.succeed("loginctl enable-linger alice") + machine.wait_until_succeeds("${sudo} systemctl --user is-active docker.service") + + machine.succeed("tar cv --files-from /dev/null | ${sudo} docker import - scratchimg") + machine.succeed( + "${sudo} docker run -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10" + ) + machine.succeed("${sudo} docker ps | grep sleeping") + machine.succeed("${sudo} docker stop sleeping") + ''; +}) From b4703e11afbc188397e2f49e3fad96b5b1502957 Mon Sep 17 00:00:00 2001 From: Nikolay Amiantov Date: Fri, 17 Dec 2021 02:40:41 +0300 Subject: [PATCH 27/87] docker: only add rootless dependencies for the server Co-authored-by: Robert Hensing --- pkgs/applications/virtualization/docker/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/virtualization/docker/default.nix b/pkgs/applications/virtualization/docker/default.nix index 3bea9f447668..a6c94bf89144 100644 --- a/pkgs/applications/virtualization/docker/default.nix +++ b/pkgs/applications/virtualization/docker/default.nix @@ -77,7 +77,7 @@ rec { extraPath = optionals (stdenv.isLinux) (makeBinPath [ iproute2 iptables e2fsprogs xz xfsprogs procps util-linux git ]); - extraUserPath = optionals (stdenv.isLinux) (makeBinPath [ rootlesskit slirp4netns fuse-overlayfs ]); + extraUserPath = optionals (stdenv.isLinux && !clientOnly) (makeBinPath [ rootlesskit slirp4netns fuse-overlayfs ]); postPatch = '' patchShebangs hack/make.sh hack/make/ From a658534a3bc3695eab5c000b1196f2cb87771f33 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Wed, 22 Dec 2021 12:48:33 +0100 Subject: [PATCH 28/87] haskellPackages.aeson-casing: skip order dependent test --- pkgs/development/haskell-modules/configuration-common.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index c0f28cb21a2e..5f0b3b646be7 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -2164,5 +2164,11 @@ self: super: { "--skip" "/Data.List.UniqueUnsorted.repeatedBy,repeated,unique/repeatedBy: simple test/" ] ++ drv.testFlags or []; }) super.Unique; + # https://github.com/AndrewRademacher/aeson-casing/issues/8 + aeson-casing = assert super.aeson-casing.version == "0.2.0.0"; overrideCabal (drv: { + testFlags = [ + "-p" "! /encode train/" + ] ++ drv.testFlags or []; + }) super.aeson-casing; } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super From 7d4d966e0e3b7bb28e2ec8e5bd2336147e507a69 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Wed, 22 Dec 2021 12:48:52 +0100 Subject: [PATCH 29/87] haskellPackages.katip: skip order dependent tests --- pkgs/development/haskell-modules/configuration-common.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 5f0b3b646be7..2f6decd3da71 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -2170,5 +2170,11 @@ self: super: { "-p" "! /encode train/" ] ++ drv.testFlags or []; }) super.aeson-casing; + # https://github.com/Soostone/katip/issues/134 + katip = assert super.katip.version == "0.8.7.0"; overrideCabal (drv: { + testFlags = [ + "-p" "!/Text-golden/&&!/respects payloadKeys for each constituent payload/" + ] ++ drv.testFlags or []; + }) super.katip; } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super From bf782d932a5f852cbeec6123eb5725d09711ae28 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Wed, 22 Dec 2021 12:49:07 +0100 Subject: [PATCH 30/87] haskellPackages.heist: skip order dependent tests --- .../haskell-modules/configuration-common.nix | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 2f6decd3da71..26f59e079305 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -1517,9 +1517,6 @@ self: super: { # Due to tests restricting base in 0.8.0.0 release http-media = doJailbreak super.http-media; - # 2020-11-19: Jailbreaking until: https://github.com/snapframework/heist/pull/124 - heist = doJailbreak super.heist; - hinit = generateOptparseApplicativeCompletion "hi" (super.hinit.override { haskeline = self.haskeline_0_8_2; }); # 2020-11-19: Jailbreaking until: https://github.com/snapframework/snap/pull/219 @@ -2176,5 +2173,12 @@ self: super: { "-p" "!/Text-golden/&&!/respects payloadKeys for each constituent payload/" ] ++ drv.testFlags or []; }) super.katip; + # 2020-11-19: Jailbreaking until: https://github.com/snapframework/heist/pull/124 + # 2021-12-22: https://github.com/snapframework/heist/issues/131 + heist = assert super.heist.version == "1.1.0.1"; overrideCabal (drv: { + testFlags = [ + "-t" "!*/compiled/ns*" + ] ++ drv.testFlags or []; + }) (doJailbreak super.heist); } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super From 88be19b8a057f1eb2e78a6d7e61b5f01dd99d993 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Wed, 22 Dec 2021 14:42:49 +0100 Subject: [PATCH 31/87] haskellPackages.melf: test suite can be executed from sdist now --- pkgs/development/haskell-modules/configuration-common.nix | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 26f59e079305..fc7ed8cb4155 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -124,10 +124,6 @@ self: super: { buildDepends = [ pkgs.qt5.wrapQtAppsHook ]; }) super.qtah-cpp-qt5; - # Missing test data - # https://github.com/aleksey-makarov/melf/issues/1 - melf = dontCheck super.melf; - # The Haddock phase fails for one reason or another. deepseq-magic = dontHaddock super.deepseq-magic; feldspar-signal = dontHaddock super.feldspar-signal; # https://github.com/markus-git/feldspar-signal/issues/1 From 999c924b8c64bdcbb31fc2509367f6f8f93275d1 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Wed, 22 Dec 2021 15:12:11 +0100 Subject: [PATCH 32/87] haskellPackages.jet: drop now unnecessary override --- pkgs/development/haskell-modules/configuration-common.nix | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index fc7ed8cb4155..3c3e480c2b16 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -2133,10 +2133,6 @@ self: super: { # test suite requires stack to run, https://github.com/dino-/photoname/issues/24 photoname = dontCheck super.photoname; - # Too strict bounds on recursive-zipper - # https://github.com/ChrisPenner/jet/issues/1 - jet = doJailbreak super.jet; - # Upgrade of unordered-containers in Stackage causes ordering-sensitive test to fail # https://github.com/chrisdone/lucid/issues/123 # https://github.com/commercialhaskell/stackage/issues/6366 From 2654041a669647257915c96cbe08b4b19fe7e0b6 Mon Sep 17 00:00:00 2001 From: Joerie de Gram Date: Wed, 22 Dec 2021 15:58:26 +0100 Subject: [PATCH 33/87] ghidra: 10.1 -> 10.1.1 Fixes CVE-2021-45105 (#150288) --- pkgs/tools/security/ghidra/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/security/ghidra/default.nix b/pkgs/tools/security/ghidra/default.nix index 0f4eb9d3a3fc..3aaa3ca44c5d 100644 --- a/pkgs/tools/security/ghidra/default.nix +++ b/pkgs/tools/security/ghidra/default.nix @@ -24,12 +24,12 @@ let in stdenv.mkDerivation rec { pname = "ghidra"; - version = "10.1"; - versiondate = "20211210"; + version = "10.1.1"; + versiondate = "20211221"; src = fetchzip { url = "https://github.com/NationalSecurityAgency/ghidra/releases/download/Ghidra_${version}_build/ghidra_${version}_PUBLIC_${versiondate}.zip"; - sha256 = "0b4wn2nwxp96dpg3xpabqh74xxv0fhwmqq04wgfjgdh6bavqk86b"; + sha256 = "1aib24hjfavy31vq0pasbzix9lpqrb90m3hp4n0iakg6ck8jcl5r"; }; nativeBuildInputs = [ From 39a494bfe14c7b058e243912bafd6890bfeb60eb Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Wed, 22 Dec 2021 21:55:01 +0100 Subject: [PATCH 34/87] haskellPackages.hercules-ci-api-agent: skip order dependent test --- pkgs/development/haskell-modules/configuration-common.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 3c3e480c2b16..43256e708bd1 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -2172,5 +2172,11 @@ self: super: { "-t" "!*/compiled/ns*" ] ++ drv.testFlags or []; }) (doJailbreak super.heist); + # https://github.com/hercules-ci/hercules-ci-agent/issues/352 + hercules-ci-api-agent = assert super.hercules-ci-api-agent.version == "0.4.1.0"; overrideCabal (drv: { + testFlags = [ + "--skip" "/hercules-ci-api/Hercules.API.Agent.Evaluate.EvaluateEvent.DerivationInfo/DerivationInfo/ToJSON/encodes v2 correctly/" + ] ++ drv.testFlags or []; + }) (doJailbreak super.hercules-ci-api-agent); } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super From 7782b76df6c205abfaf2a224db035b4cc093bca4 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Thu, 23 Dec 2021 14:33:21 +0100 Subject: [PATCH 35/87] haskellPackages.HUnit-Plus: test are broken by unordered-containers Most likely order-dependent test suite, probably no harm in ignoring the failure for now. --- pkgs/development/haskell-modules/configuration-common.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 43256e708bd1..cc5a8b8e8808 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -2178,5 +2178,7 @@ self: super: { "--skip" "/hercules-ci-api/Hercules.API.Agent.Evaluate.EvaluateEvent.DerivationInfo/DerivationInfo/ToJSON/encodes v2 correctly/" ] ++ drv.testFlags or []; }) (doJailbreak super.hercules-ci-api-agent); + # https://github.com/emc2/HUnit-Plus/issues/26 + HUnit-Plus = dontCheck super.HUnit-Plus; } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super From 8c6b19e137e2ad1902c2ce2807406f081f31a30c Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Thu, 23 Dec 2021 14:34:29 +0100 Subject: [PATCH 36/87] haskellPackages.MissingH: 1.4.2.0 -> 1.4.3.0 The pin was intended to prevent an upgrade to 1.4.2.1, a compatibility release for GHC 7.0. Since 1.4.3.0 has been released quite a while ago, it's time to upgrade finally. --- .../configuration-hackage2nix/main.yaml | 2 -- .../haskell-modules/hackage-packages.nix | 24 ------------------- 2 files changed, 26 deletions(-) diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml index e7ff902ecb9d..d898becb0c23 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml @@ -67,8 +67,6 @@ core-packages: # tracked in stackage.yaml. Adding conflicting overrides with stackage here will # not work. default-package-overrides: - # This was only intended for ghc-7.0.4, and has very old deps, one hidden behind a flag - - MissingH ==1.4.2.0 # gi-gdkx11-4.x requires gtk-4.x, which is still under development and # not yet available in Nixpkgs - gi-gdkx11 < 4 diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix index 607f9af93e32..b5f1fd2a0978 100644 --- a/pkgs/development/haskell-modules/hackage-packages.nix +++ b/pkgs/development/haskell-modules/hackage-packages.nix @@ -13612,29 +13612,6 @@ self: { }) {}; "MissingH" = callPackage - ({ mkDerivation, array, base, containers, directory - , errorcall-eq-instance, filepath, hslogger, HUnit, mtl, network - , network-bsd, old-locale, old-time, parsec, process, random - , regex-compat, time, unix - }: - mkDerivation { - pname = "MissingH"; - version = "1.4.2.0"; - sha256 = "1wfhpb351nrqjryf9si9j13nkvrqybhkkyc9643wqq8ywkdd59b9"; - libraryHaskellDepends = [ - array base containers directory filepath hslogger mtl network - network-bsd old-locale old-time parsec process random regex-compat - time unix - ]; - testHaskellDepends = [ - base containers directory errorcall-eq-instance filepath HUnit - old-time parsec regex-compat time unix - ]; - description = "Large utility library"; - license = lib.licenses.bsd3; - }) {}; - - "MissingH_1_4_3_0" = callPackage ({ mkDerivation, array, base, containers, directory , errorcall-eq-instance, filepath, hslogger, HUnit, mtl, network , network-bsd, old-locale, old-time, parsec, process, random @@ -13657,7 +13634,6 @@ self: { ]; description = "Large utility library"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "MissingK" = callPackage From 29567ef166df47f5191a0a0a0eefb184f5b6760f Mon Sep 17 00:00:00 2001 From: Malte Brandy Date: Thu, 23 Dec 2021 18:54:31 +0100 Subject: [PATCH 37/87] Add maralorn as mantainer for ema --- .../haskell-modules/configuration-hackage2nix/main.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml index d898becb0c23..95032b8749a0 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml @@ -279,6 +279,7 @@ package-maintainers: - Unique maralorn: - cabal-fmt + - ema - generic-optics - ghcup - ghcid From 5b78bf55f8a56f41bc43dff16b720b3acc9407ac Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 24 Dec 2021 02:55:16 +0000 Subject: [PATCH 38/87] vkquake: 1.12.1 -> 1.12.2 --- pkgs/games/quakespasm/vulkan.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/games/quakespasm/vulkan.nix b/pkgs/games/quakespasm/vulkan.nix index 2dc84155324d..f3a5c67ba13d 100644 --- a/pkgs/games/quakespasm/vulkan.nix +++ b/pkgs/games/quakespasm/vulkan.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "vkquake"; - version = "1.12.1"; + version = "1.12.2"; src = fetchFromGitHub { owner = "Novum"; repo = "vkQuake"; rev = version; - sha256 = "sha256-D6JtYhR+bkYYm4yuipNrsonziDGiDWICEohy4Mgdr+0="; + sha256 = "sha256-+AUSsqarDW40JKgDUIF3G9RNOKqQLuQHOGF23L8anPQ="; }; sourceRoot = "source/Quake"; From 630ac9b73caf88078e17c1b28f9701c1b2ccd241 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Sun, 26 Dec 2021 12:43:22 +0100 Subject: [PATCH 39/87] haskellPackages.ema: reflect maintainer configuration update --- pkgs/development/haskell-modules/hackage-packages.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix index b5f1fd2a0978..339f2a745da1 100644 --- a/pkgs/development/haskell-modules/hackage-packages.nix +++ b/pkgs/development/haskell-modules/hackage-packages.nix @@ -86063,6 +86063,7 @@ self: { ]; description = "Static site generator library with hot reload"; license = lib.licenses.agpl3Only; + maintainers = with lib.maintainers; [ maralorn ]; }) {}; "emacs-keys" = callPackage From 755fb7d17ee438ed8efb73eb7265aa0a9aea81fa Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Sun, 26 Dec 2021 11:18:26 +0100 Subject: [PATCH 40/87] haskellPackages.haskell-postgis: skip ordering dependent test case --- pkgs/development/haskell-modules/configuration-common.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index cc5a8b8e8808..4d0c43c81ff8 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -2180,5 +2180,11 @@ self: super: { }) (doJailbreak super.hercules-ci-api-agent); # https://github.com/emc2/HUnit-Plus/issues/26 HUnit-Plus = dontCheck super.HUnit-Plus; + # https://github.com/ewestern/haskell-postgis/issues/7 + haskell-postgis = overrideCabal (drv: { + testFlags = [ + "--skip" "/Geo/Hexable/Encodes a linestring/" + ] ++ drv.testFlags or []; + }) super.haskell-postgis; } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super From 4821b61a701bfeda777a0372ea7a9fac4aea71d1 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Sun, 26 Dec 2021 11:23:49 +0100 Subject: [PATCH 41/87] haskellPackages.json-to-haskell: skip ordering dependent tests --- pkgs/development/haskell-modules/configuration-common.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 4d0c43c81ff8..241f5b9cf0f7 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -2186,5 +2186,11 @@ self: super: { "--skip" "/Geo/Hexable/Encodes a linestring/" ] ++ drv.testFlags or []; }) super.haskell-postgis; + # https://github.com/ChrisPenner/json-to-haskell/issues/5 + json-to-haskell = overrideCabal (drv: { + testFlags = [ + "--match" "/should sanitize weird field and record names/" + ] ++ drv.testFlags or []; + }) super.json-to-haskell; } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super From 71e3d4dbb1e6369c5378c7ee370162d3690d79fc Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Sun, 26 Dec 2021 12:06:21 +0100 Subject: [PATCH 42/87] haskellPackages.aeson-deriving: disable ordering dependent tests --- pkgs/development/haskell-modules/configuration-common.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 241f5b9cf0f7..5845387a4251 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -2192,5 +2192,7 @@ self: super: { "--match" "/should sanitize weird field and record names/" ] ++ drv.testFlags or []; }) super.json-to-haskell; + # https://github.com/fieldstrength/aeson-deriving/issues/5 + aeson-deriving = dontCheck super.aeson-deriving; } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super From 2725f265741df09256a246c9bd46cf59f75ab813 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Sun, 26 Dec 2021 12:06:43 +0100 Subject: [PATCH 43/87] haskellPackages.morpheus-graphql-core: skip ordering dependent tests --- pkgs/development/haskell-modules/configuration-common.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 5845387a4251..99f58342109b 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -2194,5 +2194,11 @@ self: super: { }) super.json-to-haskell; # https://github.com/fieldstrength/aeson-deriving/issues/5 aeson-deriving = dontCheck super.aeson-deriving; + # https://github.com/morpheusgraphql/morpheus-graphql/issues/660 + morpheus-graphql-core = overrideCabal (drv: { + testFlags = [ + "-p" "!/field.unexpected-value/&&!/field.missing-field/&&!/argument.unexpected-value/&&!/argument.missing-field/" + ] ++ drv.testFlags or []; + }) super.morpheus-graphql-core; } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super From ecb3268d04045cd06d9a9389e1cba2fa2d598931 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Sun, 26 Dec 2021 12:07:03 +0100 Subject: [PATCH 44/87] haskellPackages.dropbox: skip ordering dependent tests --- pkgs/development/haskell-modules/configuration-common.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 99f58342109b..c25126f8b070 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -2200,5 +2200,11 @@ self: super: { "-p" "!/field.unexpected-value/&&!/field.missing-field/&&!/argument.unexpected-value/&&!/argument.missing-field/" ] ++ drv.testFlags or []; }) super.morpheus-graphql-core; + # https://github.com/SupercedeTech/dropbox-client/issues/1 + dropbox = overrideCabal (drv: { + testFlags = [ + "--skip" "/Dropbox/Dropbox aeson aeson/encodes list folder correctly/" + ] ++ drv.testFlags or []; + }) super.dropbox; } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super From b51b7162b18bb069a19dcb79bf39251b4295689f Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Sun, 26 Dec 2021 12:07:18 +0100 Subject: [PATCH 45/87] haskellPackages.hschema-aeson: skip ordering dependent tests --- pkgs/development/haskell-modules/configuration-common.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index c25126f8b070..b330c3e19f61 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -2206,5 +2206,11 @@ self: super: { "--skip" "/Dropbox/Dropbox aeson aeson/encodes list folder correctly/" ] ++ drv.testFlags or []; }) super.dropbox; + # https://github.com/alonsodomin/haskell-schema/issues/11 + hschema-aeson = overrideCabal (drv: { + testFlags = [ + "--skip" "/toJsonSerializer/should generate valid JSON/" + ] ++ drv.testFlags or []; + }) super.hschema-aeson; } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super From 64a14527a9099ce7ea3b1cc743bc66a06d1bd596 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Sun, 26 Dec 2021 12:07:34 +0100 Subject: [PATCH 46/87] haskellPackages.xmlbf: skip ordering dependent tests --- pkgs/development/haskell-modules/configuration-common.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index b330c3e19f61..d1eb2c085481 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -2212,5 +2212,11 @@ self: super: { "--skip" "/toJsonSerializer/should generate valid JSON/" ] ++ drv.testFlags or []; }) super.hschema-aeson; + # https://gitlab.com/k0001/xmlbf/-/issues/32 + xmlbf = overrideCabal (drv: { + testFlags = [ + "-p" "!/xml: <\\/x>/&&!/xml: <\\/x>/" + ] ++ drv.testFlags or []; + }) super.xmlbf; } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super From f4b07c3549194df4885e4c5254e84d11d10ad685 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Sun, 26 Dec 2021 12:07:47 +0100 Subject: [PATCH 47/87] haskellPackages.aeson-quick: skip ordering dependent tests --- pkgs/development/haskell-modules/configuration-common.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index d1eb2c085481..3cae425965a6 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -2218,5 +2218,11 @@ self: super: { "-p" "!/xml: <\\/x>/&&!/xml: <\\/x>/" ] ++ drv.testFlags or []; }) super.xmlbf; + # https://github.com/ssadler/aeson-quick/issues/3 + aeson-quick = overrideCabal (drv: { + testFlags = [ + "-p" "!/asLens.set/&&!/complex.set/&&!/multipleKeys.set/" + ] ++ drv.testFlags or []; + }) super.aeson-quick; } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super From 73d9158d70fc895504c8b99e9bb79378cf19ca6e Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Sun, 26 Dec 2021 12:28:33 +0100 Subject: [PATCH 48/87] haskellPackages.hpack-dhall: disable tests due to outdated test data --- pkgs/development/haskell-modules/configuration-common.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 3cae425965a6..e79f3d3902f2 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -2225,4 +2225,9 @@ self: super: { ] ++ drv.testFlags or []; }) super.aeson-quick; + # golden files expect an old version of hpack, so tests fail intermittently + # TODO: maybe disable golden test suite altogether? this will happen again as + # hpack emits its version into the generated files… + hpack-dhall = assert super.hpack-dhall.version == "0.5.3"; dontCheck super.hpack-dhall; + } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super From bcf8a276d5d346444a8182381721a2b9c936d146 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Sun, 26 Dec 2021 12:37:21 +0100 Subject: [PATCH 49/87] haskellPackages.polysemy-plugin: unbreak polysemy-plugin has reentered Stackage LTS, so the old workaround is no longer necessary. We do need to jailbreak it, ironically, since Stackage LTS ignores tests (?) and polysemy-plugin's bound on doctest is too strict. --- .../haskell-modules/configuration-common.nix | 8 ++---- .../configuration-hackage2nix/broken.yaml | 1 - .../configuration-hackage2nix/main.yaml | 1 - .../transitive-broken.yaml | 10 -------- .../haskell-modules/hackage-packages.nix | 25 ------------------- 5 files changed, 2 insertions(+), 43 deletions(-) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index e79f3d3902f2..498d09c9a90d 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -1228,12 +1228,8 @@ self: super: { }) ] super.polysemy; - # polysemy-plugin 0.2.5.0 has constraint ghc-tcplugins-extra (==0.3.*) - # This upstream issue is relevant: - # https://github.com/polysemy-research/polysemy/issues/322 - polysemy-plugin = super.polysemy-plugin.override { - ghc-tcplugins-extra = self.ghc-tcplugins-extra_0_3_2; - }; + # 2021-12-26: Too strict bounds on doctest + polysemy-plugin = doJailbreak super.polysemy-plugin; # Test suite requires running a database server. Testing is done upstream. hasql-notifications = dontCheck super.hasql-notifications; diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml index 1f7f15924a37..e6c50d359ebe 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml @@ -3792,7 +3792,6 @@ broken-packages: - polynom - polynomial - polysemy-mocks - - polysemy-plugin - polysemy-zoo - polytypeable - pomaps diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml index 95032b8749a0..35858999a920 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml @@ -138,7 +138,6 @@ extra-packages: - dhall == 1.29.0 # required for ats-pkg - dhall == 1.38.1 # required for spago - Diff < 0.4 # required by liquidhaskell-0.8.10.2: https://github.com/ucsd-progsys/liquidhaskell/issues/1729 - - ghc-tcplugins-extra ==0.3.2 # required for polysemy-plugin 0.2.5.0 - haddock == 2.23.* # required on GHC < 8.10.x - haddock-api == 2.23.* # required on GHC < 8.10.x - haddock-library ==1.7.* # required by stylish-cabal-0.5.0.0 diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml index 059803b3b950..185aca726adc 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml @@ -650,7 +650,6 @@ dont-distribute-packages: - cakyrespa - cal3d-examples - cal3d-opengl - - calamity-commands - calc - calculator - caldims @@ -2375,18 +2374,9 @@ dont-distribute-packages: - polh-lexicon - polydata - polysemy-RandomFu - - polysemy-check - - polysemy-conc - - polysemy-http - - polysemy-log - polysemy-log-co - - polysemy-log-di - polysemy-methodology-co-log - polysemy-optics - - polysemy-process - - polysemy-readline - - polysemy-resume - - polysemy-webserver - polyseq - polytypeable-utils - pomodoro diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix index 339f2a745da1..431c9ee69e80 100644 --- a/pkgs/development/haskell-modules/hackage-packages.nix +++ b/pkgs/development/haskell-modules/hackage-packages.nix @@ -51492,7 +51492,6 @@ self: { ]; description = "A library for declaring, parsing, and invoking text-input based commands"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; }) {}; "calc" = callPackage @@ -106239,18 +106238,6 @@ self: { broken = true; }) {}; - "ghc-tcplugins-extra_0_3_2" = callPackage - ({ mkDerivation, base, ghc }: - mkDerivation { - pname = "ghc-tcplugins-extra"; - version = "0.3.2"; - sha256 = "13qhwjbhyi3nrjdvc0fdgxf4kz55my541mz2j3sndpxsmbymqs3m"; - libraryHaskellDepends = [ base ghc ]; - description = "Utilities for writing GHC type-checker plugins"; - license = lib.licenses.bsd2; - hydraPlatforms = lib.platforms.none; - }) {}; - "ghc-tcplugins-extra" = callPackage ({ mkDerivation, base, ghc }: mkDerivation { @@ -214216,7 +214203,6 @@ self: { testToolDepends = [ hspec-discover ]; description = "QuickCheck for Polysemy"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "polysemy-chronos" = callPackage @@ -214255,7 +214241,6 @@ self: { ]; description = "Polysemy Effects for Concurrency"; license = "BSD-2-Clause-Patent"; - hydraPlatforms = lib.platforms.none; }) {}; "polysemy-extra" = callPackage @@ -214332,7 +214317,6 @@ self: { ]; description = "Polysemy Effects for HTTP clients"; license = "BSD-2-Clause-Patent"; - hydraPlatforms = lib.platforms.none; }) {}; "polysemy-keyed-state" = callPackage @@ -214402,7 +214386,6 @@ self: { ]; description = "Polysemy Effects for Logging"; license = "BSD-2-Clause-Patent"; - hydraPlatforms = lib.platforms.none; }) {}; "polysemy-log-co" = callPackage @@ -214443,7 +214426,6 @@ self: { ]; description = "Di Adapters for Polysemy-Log"; license = "BSD-2-Clause-Patent"; - hydraPlatforms = lib.platforms.none; }) {}; "polysemy-methodology" = callPackage @@ -214563,8 +214545,6 @@ self: { testToolDepends = [ hspec-discover ]; description = "Disambiguate obvious uses of effects"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; - broken = true; }) {}; "polysemy-plugin_0_4_3_0" = callPackage @@ -214589,7 +214569,6 @@ self: { description = "Disambiguate obvious uses of effects"; license = lib.licenses.bsd3; hydraPlatforms = lib.platforms.none; - broken = true; }) {}; "polysemy-process" = callPackage @@ -214613,7 +214592,6 @@ self: { ]; description = "Polysemy Effects for System Processes"; license = "BSD-2-Clause-Patent"; - hydraPlatforms = lib.platforms.none; }) {}; "polysemy-readline" = callPackage @@ -214637,7 +214615,6 @@ self: { ]; description = "Readline effect for polysemy"; license = lib.licenses.bsd2; - hydraPlatforms = lib.platforms.none; }) {}; "polysemy-req" = callPackage @@ -214666,7 +214643,6 @@ self: { ]; description = "Polysemy error tracking"; license = "BSD-2-Clause-Patent"; - hydraPlatforms = lib.platforms.none; }) {}; "polysemy-several" = callPackage @@ -214805,7 +214781,6 @@ self: { ]; description = "Start web servers from within a Polysemy effect stack"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "polysemy-zoo" = callPackage From 803aea3d3c36d0bc601ca13e9cbc084d63c6a1fa Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Sun, 26 Dec 2021 12:41:04 +0100 Subject: [PATCH 50/87] haskellPackages.polysemy-{resume,conc,mocks}: downgrade to unbreak These packages are not in Stackage LTS, but depend on package in Stackage LTS, so we need to downgrade them to keep them working. --- .../configuration-hackage2nix/broken.yaml | 1 - .../configuration-hackage2nix/main.yaml | 4 ++ .../haskell-modules/hackage-packages.nix | 58 ++++++++++++++++++- 3 files changed, 61 insertions(+), 2 deletions(-) diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml index e6c50d359ebe..e873fff6dd97 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml @@ -3791,7 +3791,6 @@ broken-packages: - polydata-core - polynom - polynomial - - polysemy-mocks - polysemy-zoo - polytypeable - pomaps diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml index 35858999a920..bca6360dca2c 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml @@ -126,6 +126,10 @@ default-package-overrides: - brittany < 0.14 # 1.2.0.0: “Dropped support for GHC <9.2 (might readd it later)” - retrie < 1.2.0.0 + # Compat with polysemy in Stackage LTS 18 + - polysemy-resume < 0.1.0.2 + - polysemy-conc < 0.5 + - polysemy-mocks < 0.2 extra-packages: - base16-bytestring < 1 # required for cabal-install etc. diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix index 431c9ee69e80..93fad526d33d 100644 --- a/pkgs/development/haskell-modules/hackage-packages.nix +++ b/pkgs/development/haskell-modules/hackage-packages.nix @@ -214222,6 +214222,28 @@ self: { }) {}; "polysemy-conc" = callPackage + ({ mkDerivation, async, base, containers, polysemy, polysemy-test + , polysemy-time, relude, stm, stm-chans, string-interpolate, tasty + , template-haskell, text, time, unagi-chan, unix + }: + mkDerivation { + pname = "polysemy-conc"; + version = "0.4.0.1"; + sha256 = "1wf24837p5bk6p6p2d3bqwyrj93ls7kndvzr9qa8w8g46fv1ryp4"; + libraryHaskellDepends = [ + async base containers polysemy polysemy-time relude stm stm-chans + string-interpolate template-haskell text time unagi-chan unix + ]; + testHaskellDepends = [ + base polysemy polysemy-test polysemy-time stm tasty time unagi-chan + unix + ]; + description = "Polysemy Effects for Concurrency"; + license = "BSD-2-Clause-Patent"; + hydraPlatforms = lib.platforms.none; + }) {}; + + "polysemy-conc_0_5_1_1" = callPackage ({ mkDerivation, async, base, containers, data-default, polysemy , polysemy-plugin, polysemy-test, polysemy-time, relude, stm , stm-chans, tasty, template-haskell, text, time, torsor @@ -214481,6 +214503,21 @@ self: { }) {}; "polysemy-mocks" = callPackage + ({ mkDerivation, base, hspec, hspec-discover, polysemy + , template-haskell + }: + mkDerivation { + pname = "polysemy-mocks"; + version = "0.1.0.1"; + sha256 = "0jd8x47mdx9fyn65ra0y1m05myf2m2bhz3ykg1i3818ixwd93xvl"; + libraryHaskellDepends = [ base polysemy template-haskell ]; + testHaskellDepends = [ base hspec polysemy ]; + testToolDepends = [ hspec-discover ]; + description = "Mocking framework for polysemy effects"; + license = lib.licenses.bsd3; + }) {}; + + "polysemy-mocks_0_2_0_0" = callPackage ({ mkDerivation, base, hspec, hspec-discover, polysemy , template-haskell }: @@ -214494,7 +214531,6 @@ self: { description = "Mocking framework for polysemy effects"; license = lib.licenses.bsd3; hydraPlatforms = lib.platforms.none; - broken = true; }) {}; "polysemy-optics" = callPackage @@ -214629,6 +214665,26 @@ self: { }) {}; "polysemy-resume" = callPackage + ({ mkDerivation, base, hedgehog, polysemy, polysemy-plugin + , polysemy-test, relude, tasty, tasty-hedgehog, text, transformers + }: + mkDerivation { + pname = "polysemy-resume"; + version = "0.1.0.1"; + sha256 = "1pgirh7sz1lx45pkss1a4w7xgy7gcxmm7i2vz9hf0z7qdj9wfn8i"; + libraryHaskellDepends = [ + base polysemy polysemy-plugin relude transformers + ]; + testHaskellDepends = [ + base hedgehog polysemy polysemy-plugin polysemy-test relude tasty + tasty-hedgehog text transformers + ]; + description = "Polysemy error tracking"; + license = "BSD-2-Clause-Patent"; + hydraPlatforms = lib.platforms.none; + }) {}; + + "polysemy-resume_0_2_0_0" = callPackage ({ mkDerivation, base, hedgehog, polysemy, polysemy-plugin , polysemy-test, relude, tasty, tasty-hedgehog, text, transformers }: From b07e9851b7b3ab0f4c36c8f4867223522dc20c00 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Sun, 26 Dec 2021 14:02:27 +0100 Subject: [PATCH 51/87] haskellPackages.memory-cd: work around compilation failure in tests --- pkgs/development/haskell-modules/configuration-common.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 498d09c9a90d..dd141625bbd0 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -2226,4 +2226,7 @@ self: super: { # hpack emits its version into the generated files… hpack-dhall = assert super.hpack-dhall.version == "0.5.3"; dontCheck super.hpack-dhall; + # Invalid CPP in test suite: https://github.com/cdornan/memory-cd/issues/1 + memory-cd = dontCheck super.memory-cd; + } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super From a808b2d9320fbd270aa720646272c53f59d92bfc Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Sun, 26 Dec 2021 14:02:41 +0100 Subject: [PATCH 52/87] haskellPackages.sdp: disable library profiling breaking the build --- pkgs/development/haskell-modules/configuration-common.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index dd141625bbd0..e6c10f725116 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -2229,4 +2229,7 @@ self: super: { # Invalid CPP in test suite: https://github.com/cdornan/memory-cd/issues/1 memory-cd = dontCheck super.memory-cd; + # https://github.com/andreymulik/sdp/issues/3 + sdp = disableLibraryProfiling super.sdp; + } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super From f9b337d15ef8ef58d3b36f29dfbec6a2afaa0fd6 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Sun, 26 Dec 2021 14:46:00 +0100 Subject: [PATCH 53/87] haskellPackages.minio-hs: disable ordering dependent test case --- pkgs/development/haskell-modules/configuration-common.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index e6c10f725116..380ff1f9fff3 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -2220,6 +2220,12 @@ self: super: { "-p" "!/asLens.set/&&!/complex.set/&&!/multipleKeys.set/" ] ++ drv.testFlags or []; }) super.aeson-quick; + # https://github.com/minio/minio-hs/issues/165 + minio-hs = overrideCabal (drv: { + testFlags = [ + "-p" "!/Test mkSelectRequest/" + ] ++ drv.testFlags or []; + }) super.minio-hs; # golden files expect an old version of hpack, so tests fail intermittently # TODO: maybe disable golden test suite altogether? this will happen again as From 5df2206a4d2d9c3e42233d7b2ff7f7b476ec7fb3 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 26 Dec 2021 15:07:19 +0000 Subject: [PATCH 54/87] sof-firmware: 1.9.3 -> 2.0 --- pkgs/os-specific/linux/firmware/sof-firmware/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/firmware/sof-firmware/default.nix b/pkgs/os-specific/linux/firmware/sof-firmware/default.nix index a5910a21005a..841e73cfc8ba 100644 --- a/pkgs/os-specific/linux/firmware/sof-firmware/default.nix +++ b/pkgs/os-specific/linux/firmware/sof-firmware/default.nix @@ -5,13 +5,13 @@ stdenvNoCC.mkDerivation rec { pname = "sof-firmware"; - version = "1.9.3"; + version = "2.0"; src = fetchFromGitHub { owner = "thesofproject"; repo = "sof-bin"; rev = "v${version}"; - sha256 = "sha256-mQGwc0nwjku9ZxcFy8H4QiBLETkAeyqYvFzBHtK8/DY="; + sha256 = "sha256-pDxNcDe/l1foFYuHB0w3YZidKIeH6h0IuwRmMzeMteE="; }; dontFixup = true; # binaries must not be stripped or patchelfed From a88d846b91dc3c75b825187998debd8e08c7794b Mon Sep 17 00:00:00 2001 From: Lucas Savva Date: Fri, 26 Nov 2021 21:39:06 +0000 Subject: [PATCH 55/87] nixos/acme: Remove selfsignedDeps from finished targets selfsignedDeps is already appended to the after and wants of a cert's renewal service, making these redundant. You can see this if you run the following command: systemctl list-dependencies --all --reverse acme-selfsigned-mydomain.com.service --- nixos/modules/security/acme.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nixos/modules/security/acme.nix b/nixos/modules/security/acme.nix index dcadbce68aa4..dcea137b52e9 100644 --- a/nixos/modules/security/acme.nix +++ b/nixos/modules/security/acme.nix @@ -842,8 +842,8 @@ in { # Create some targets which can be depended on to be "active" after cert renewals finishedTargets = mapAttrs' (cert: conf: nameValuePair "acme-finished-${cert}" { wantedBy = [ "default.target" ]; - requires = [ "acme-${cert}.service" ] ++ conf.selfsignedDeps; - after = [ "acme-${cert}.service" ] ++ conf.selfsignedDeps; + requires = [ "acme-${cert}.service" ]; + after = [ "acme-${cert}.service" ]; }) certConfigs; # Create targets to limit the number of simultaneous account creations From 87403a0b078d62245de7d619f2b71d2a0c78675a Mon Sep 17 00:00:00 2001 From: Lucas Savva Date: Fri, 26 Nov 2021 21:57:31 +0000 Subject: [PATCH 56/87] nixos/acme: Add a human readable error on run failure Closes NixOS/nixpkgs#108237 When a user first adds an ACME cert to their configuration, it's likely to fail to renew due to DNS misconfig. This is non-fatal for other services since selfsigned certs are (usually) put in place to let dependant services start. Tell the user about this in the logs, and exit 2 for differentiation purposes. --- nixos/modules/security/acme.nix | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/nixos/modules/security/acme.nix b/nixos/modules/security/acme.nix index dcea137b52e9..be4762da8d13 100644 --- a/nixos/modules/security/acme.nix +++ b/nixos/modules/security/acme.nix @@ -391,8 +391,13 @@ let fi # Otherwise do a full run - else - lego ${runOpts} + elif ! lego ${runOpts}; then + # Produce a nice error for those doing their first nixos-rebuild with these certs + echo Failed to fetch certificates. \ + This may mean your DNS records are set up incorrectly. \ + ${optionalString (cfg.preliminarySelfsigned) "Selfsigned certs are in place and dependant services will still start."} + # Exit 2 so that users can potentially amend SuccessExitStatus to ignore this error. + exit 2 fi mv domainhash.txt certificates/ From a7f00013280416ce889d841e675526b8cb96a0ee Mon Sep 17 00:00:00 2001 From: Lucas Savva Date: Sat, 27 Nov 2021 00:03:35 +0000 Subject: [PATCH 57/87] nixos/acme: Check for revoked certificates Closes #129838 It is possible for the CA to revoke a cert that has not yet expired. We must run lego to validate this before expiration, but we must still ignore failures on unexpired certs to retain compatibility with #85794 Also changed domainHash logic such that a renewal will only be attempted at all if domains are unchanged, and do a full run otherwises. Resolves #147540 but will be partially reverted when go-acme/lego#1532 is resolved + available. --- nixos/modules/security/acme.nix | 25 +++++++++++-------------- nixos/tests/acme.nix | 22 +++++++++++++++++++++- 2 files changed, 32 insertions(+), 15 deletions(-) diff --git a/nixos/modules/security/acme.nix b/nixos/modules/security/acme.nix index be4762da8d13..9242a12fd35f 100644 --- a/nixos/modules/security/acme.nix +++ b/nixos/modules/security/acme.nix @@ -156,6 +156,7 @@ let ${toString data.ocspMustStaple} ${data.keyType} ''; certDir = mkHash hashData; + # TODO remove domainHash usage entirely. Waiting on go-acme/lego#1532 domainHash = mkHash "${concatStringsSep " " extraDomains} ${data.domain}"; accountHash = (mkAccountHash acmeServer data); accountDir = accountDirRoot + accountHash; @@ -372,22 +373,19 @@ let echo '${domainHash}' > domainhash.txt - # Check if we can renew - if [ -e 'certificates/${keyName}.key' -a -e 'certificates/${keyName}.crt' -a -n "$(ls -1 accounts)" ]; then + # Check if we can renew. + # We can only renew if the list of domains has not changed. + if cmp -s domainhash.txt certificates/domainhash.txt && [ -e 'certificates/${keyName}.key' -a -e 'certificates/${keyName}.crt' -a -n "$(ls -1 accounts)" ]; then - # When domains are updated, there's no need to do a full - # Lego run, but it's likely renew won't work if days is too low. - if [ -e certificates/domainhash.txt ] && cmp -s domainhash.txt certificates/domainhash.txt; then + # Even if a cert is not expired, it may be revoked by the CA. + # Try to renew, and silently fail if the cert is not expired. + # Avoids #85794 and resolves #129838 + if ! lego ${renewOpts} --days ${toString cfg.validMinDays}; then if is_expiration_skippable out/full.pem; then - echo 1>&2 "nixos-acme: skipping renewal because expiration isn't within the coming ${toString cfg.validMinDays} days" + echo 1>&2 "nixos-acme: Ignoring failed renewal because expiration isn't within the coming ${toString cfg.validMinDays} days" else - echo 1>&2 "nixos-acme: renewing now, because certificate expires within the configured ${toString cfg.validMinDays} days" - lego ${renewOpts} --days ${toString cfg.validMinDays} + exit 3 fi - else - echo 1>&2 "certificate domain(s) have changed; will renew now" - # Any number > 90 works, but this one is over 9000 ;-) - lego ${renewOpts} --days 9001 fi # Otherwise do a full run @@ -406,8 +404,7 @@ let chown 'acme:${data.group}' certificates/* # Copy all certs to the "real" certs directory - CERT='certificates/${keyName}.crt' - if [ -e "$CERT" ] && ! cmp -s "$CERT" out/fullchain.pem; then + if ! cmp -s 'certificates/${keyName}.crt' out/fullchain.pem; then touch out/renewed echo Installing new certificate cp -vp 'certificates/${keyName}.crt' out/fullchain.pem diff --git a/nixos/tests/acme.nix b/nixos/tests/acme.nix index 72b7bb8a396a..80b85502d4e8 100644 --- a/nixos/tests/acme.nix +++ b/nixos/tests/acme.nix @@ -113,11 +113,19 @@ in import ./make-test-python.nix ({ lib, ... }: { # Now adding an alias to ensure that the certs are updated specialisation.nginx-aliases.configuration = { pkgs, ... }: { - services.nginx.virtualHosts."a.example.test" = { + services.nginx.virtualHosts."a.example.test" = (vhostBase pkgs) // { serverAliases = [ "b.example.test" ]; }; }; + # Must be run after nginx-aliases + specialisation.remove-extra-domain.configuration = { pkgs, ... } : { + # This also validates that useACMEHost doesn't unexpectedly add the domain. + services.nginx.virtualHosts."b.example.test" = (vhostBase pkgs) // { + useACMEHost = "a.example.test"; + }; + }; + # Test OCSP Stapling specialisation.ocsp-stapling.configuration = { pkgs, ... }: { security.acme.certs."a.example.test" = { @@ -408,6 +416,18 @@ in import ./make-test-python.nix ({ lib, ... }: { check_connection(client, "a.example.test") check_connection(client, "b.example.test") + with subtest("Can remove extra domains from a cert"): + switch_to(webserver, "remove-extra-domain") + webserver.wait_for_unit("acme-finished-a.example.test.target") + webserver.wait_for_unit("nginx.service") + check_connection(client, "a.example.test") + rc, _ = client.execute( + "openssl s_client -CAfile /tmp/ca.crt -connect b.example.test:443" + " /dev/null | openssl x509 -noout -text" + " | grep DNS: | grep b.example.test" + ) + assert rc > 0, "Removed extraDomainName was not removed from the cert" + with subtest("Can request certificates for vhost + aliases (apache-httpd)"): try: switch_to(webserver, "httpd-aliases") From 377c6bcefce8e8ccd471892a1b24621d5a909457 Mon Sep 17 00:00:00 2001 From: Lucas Savva Date: Sun, 28 Nov 2021 17:03:31 +0000 Subject: [PATCH 58/87] nixos/acme: Add defaults and inheritDefaults option Allows configuring many default settings for certificates, all of which can still be overridden on a per-cert basis. Some options have been moved into .defaults from security.acme, namely email, server, validMinDays and renewInterval. These changes will not break existing configurations thanks to mkChangedOptionModule. With this, it is also now possible to configure DNS-01 with web servers whose virtualHosts utilise enableACME. The only requirement is you set `acmeRoot = null` for each vhost. The test suite has been revamped to cover these additions and also to generally make it easier to maintain. Test config for apache and nginx has been fully standardised, and it is now much easier to add a new web server if it follows the same configuration patterns as those two. I have also optimised the use of switch-to-configuration which should speed up testing. --- nixos/modules/security/acme.nix | 420 ++++++++------- .../web-servers/apache-httpd/default.nix | 13 +- .../apache-httpd/vhost-options.nix | 7 +- .../services/web-servers/nginx/default.nix | 13 +- .../web-servers/nginx/vhost-options.nix | 9 +- nixos/tests/acme.nix | 499 ++++++++++-------- nixos/tests/common/acme/client/default.nix | 6 +- nixos/tests/common/acme/server/default.nix | 5 + 8 files changed, 536 insertions(+), 436 deletions(-) diff --git a/nixos/modules/security/acme.nix b/nixos/modules/security/acme.nix index 9242a12fd35f..c39653d174e5 100644 --- a/nixos/modules/security/acme.nix +++ b/nixos/modules/security/acme.nix @@ -128,7 +128,7 @@ let }; certToConfig = cert: data: let - acmeServer = if data.server != null then data.server else cfg.server; + acmeServer = data.server; useDns = data.dnsProvider != null; destPath = "/var/lib/acme/${cert}"; selfsignedDeps = optionals (cfg.preliminarySelfsigned) [ "acme-selfsigned-${cert}.service" ]; @@ -211,7 +211,7 @@ let description = "Renew ACME Certificate for ${cert}"; wantedBy = [ "timers.target" ]; timerConfig = { - OnCalendar = cfg.renewInterval; + OnCalendar = data.renewInterval; Unit = "acme-${cert}.service"; Persistent = "yes"; @@ -356,7 +356,7 @@ let expiration_s=$[expiration_date - now] expiration_days=$[expiration_s / (3600 * 24)] # rounds down - [[ $expiration_days -gt ${toString cfg.validMinDays} ]] + [[ $expiration_days -gt ${toString data.validMinDays} ]] } ${optionalString (data.webroot != null) '' @@ -380,11 +380,12 @@ let # Even if a cert is not expired, it may be revoked by the CA. # Try to renew, and silently fail if the cert is not expired. # Avoids #85794 and resolves #129838 - if ! lego ${renewOpts} --days ${toString cfg.validMinDays}; then + if ! lego ${renewOpts} --days ${toString data.validMinDays}; then if is_expiration_skippable out/full.pem; then - echo 1>&2 "nixos-acme: Ignoring failed renewal because expiration isn't within the coming ${toString cfg.validMinDays} days" + echo 1>&2 "nixos-acme: Ignoring failed renewal because expiration isn't within the coming ${toString data.validMinDays} days" else - exit 3 + # High number to avoid Systemd reserved codes. + exit 11 fi fi @@ -394,8 +395,9 @@ let echo Failed to fetch certificates. \ This may mean your DNS records are set up incorrectly. \ ${optionalString (cfg.preliminarySelfsigned) "Selfsigned certs are in place and dependant services will still start."} - # Exit 2 so that users can potentially amend SuccessExitStatus to ignore this error. - exit 2 + # Exit 10 so that users can potentially amend SuccessExitStatus to ignore this error. + # High number to avoid Systemd reserved codes. + exit 10 fi mv domainhash.txt certificates/ @@ -423,8 +425,182 @@ let certConfigs = mapAttrs certToConfig cfg.certs; + # These options can be specified within + # security.acme or security.acme.certs. + inheritableOpts = + { inheritDefaults ? false, defaults ? null }: { + validMinDays = mkOption { + type = types.int; + default = if inheritDefaults then defaults.validMinDays else 30; + description = "Minimum remaining validity before renewal in days."; + }; + + renewInterval = mkOption { + type = types.str; + default = if inheritDefaults then defaults.renewInterval else "daily"; + description = '' + Systemd calendar expression when to check for renewal. See + systemd.time + 7. + ''; + }; + + enableDebugLogs = mkEnableOption "debug logging for this certificate" // { + default = if inheritDefaults then defaults.enableDebugLogs else true; + }; + + webroot = mkOption { + type = types.nullOr types.str; + default = if inheritDefaults then defaults.webroot else null; + example = "/var/lib/acme/acme-challenge"; + description = '' + Where the webroot of the HTTP vhost is located. + .well-known/acme-challenge/ directory + will be created below the webroot if it doesn't exist. + http://example.org/.well-known/acme-challenge/ must also + be available (notice unencrypted HTTP). + ''; + }; + + server = mkOption { + type = types.nullOr types.str; + default = if inheritDefaults then defaults.server else null; + description = '' + ACME Directory Resource URI. Defaults to Let's Encrypt's + production endpoint, + , if unset. + ''; + }; + + email = mkOption { + type = types.str; + default = if inheritDefaults then defaults.email else null; + description = '' + Email address for account creation and correspondence from the CA. + It is recommended to use the same email for all certs to avoid account + creation limits. + ''; + }; + + group = mkOption { + type = types.str; + default = if inheritDefaults then defaults.group else "acme"; + description = "Group running the ACME client."; + }; + + reloadServices = mkOption { + type = types.listOf types.str; + default = if inheritDefaults then defaults.reloadServices else []; + description = '' + The list of systemd services to call systemctl try-reload-or-restart + on. + ''; + }; + + postRun = mkOption { + type = types.lines; + default = if inheritDefaults then defaults.postRun else ""; + example = "cp full.pem backup.pem"; + description = '' + Commands to run after new certificates go live. Note that + these commands run as the root user. + + Executed in the same directory with the new certificate. + ''; + }; + + keyType = mkOption { + type = types.str; + default = if inheritDefaults then defaults.keyType else "ec256"; + description = '' + Key type to use for private keys. + For an up to date list of supported values check the --key-type option + at . + ''; + }; + + dnsProvider = mkOption { + type = types.nullOr types.str; + default = if inheritDefaults then defaults.dnsProvider else null; + example = "route53"; + description = '' + DNS Challenge provider. For a list of supported providers, see the "code" + field of the DNS providers listed at . + ''; + }; + + dnsResolver = mkOption { + type = types.nullOr types.str; + default = if inheritDefaults then defaults.dnsResolver else null; + example = "1.1.1.1:53"; + description = '' + Set the resolver to use for performing recursive DNS queries. Supported: + host:port. The default is to use the system resolvers, or Google's DNS + resolvers if the system's cannot be determined. + ''; + }; + + credentialsFile = mkOption { + type = types.path; + default = if inheritDefaults then defaults.credentialsFile else null; + description = '' + Path to an EnvironmentFile for the cert's service containing any required and + optional environment variables for your selected dnsProvider. + To find out what values you need to set, consult the documentation at + for the corresponding dnsProvider. + ''; + example = "/var/src/secrets/example.org-route53-api-token"; + }; + + dnsPropagationCheck = mkOption { + type = types.bool; + default = if inheritDefaults then defaults.dnsPropagationCheck else true; + description = '' + Toggles lego DNS propagation check, which is used alongside DNS-01 + challenge to ensure the DNS entries required are available. + ''; + }; + + ocspMustStaple = mkOption { + type = types.bool; + default = if inheritDefaults then defaults.ocspMustStaple else false; + description = '' + Turns on the OCSP Must-Staple TLS extension. + Make sure you know what you're doing! See: + + + + + ''; + }; + + extraLegoFlags = mkOption { + type = types.listOf types.str; + default = if inheritDefaults then defaults.extraLegoFlags else []; + description = '' + Additional global flags to pass to all lego commands. + ''; + }; + + extraLegoRenewFlags = mkOption { + type = types.listOf types.str; + default = if inheritDefaults then defaults.extraLegoRenewFlags else []; + description = '' + Additional flags to pass to lego renew. + ''; + }; + + extraLegoRunFlags = mkOption { + type = types.listOf types.str; + default = if inheritDefaults then defaults.extraLegoRunFlags else []; + description = '' + Additional flags to pass to lego run. + ''; + }; + }; + certOpts = { name, ... }: { - options = { + options = (inheritableOpts { inherit (cfg) defaults; inheritDefaults = cfg.certs."${name}".inheritDefaults; }) // { # user option has been removed user = mkOption { visible = false; @@ -443,40 +619,11 @@ let default = "_mkMergedOptionModule"; }; - enableDebugLogs = mkEnableOption "debug logging for this certificate" // { default = cfg.enableDebugLogs; }; - - webroot = mkOption { - type = types.nullOr types.str; - default = null; - example = "/var/lib/acme/acme-challenge"; - description = '' - Where the webroot of the HTTP vhost is located. - .well-known/acme-challenge/ directory - will be created below the webroot if it doesn't exist. - http://example.org/.well-known/acme-challenge/ must also - be available (notice unencrypted HTTP). - ''; - }; - - listenHTTP = mkOption { - type = types.nullOr types.str; - default = null; - example = ":1360"; - description = '' - Interface and port to listen on to solve HTTP challenges - in the form [INTERFACE]:PORT. - If you use a port other than 80, you must proxy port 80 to this port. - ''; - }; - - server = mkOption { - type = types.nullOr types.str; - default = null; - description = '' - ACME Directory Resource URI. Defaults to Let's Encrypt's - production endpoint, - , if unset. - ''; + directory = mkOption { + type = types.str; + readOnly = true; + default = "/var/lib/acme/${name}"; + description = "Directory where certificate and other state is stored."; }; domain = mkOption { @@ -485,47 +632,6 @@ let description = "Domain to fetch certificate for (defaults to the entry name)."; }; - email = mkOption { - type = types.nullOr types.str; - default = cfg.email; - defaultText = literalExpression "config.${opt.email}"; - description = "Contact email address for the CA to be able to reach you."; - }; - - group = mkOption { - type = types.str; - default = "acme"; - description = "Group running the ACME client."; - }; - - reloadServices = mkOption { - type = types.listOf types.str; - default = []; - description = '' - The list of systemd services to call systemctl try-reload-or-restart - on. - ''; - }; - - postRun = mkOption { - type = types.lines; - default = ""; - example = "cp full.pem backup.pem"; - description = '' - Commands to run after new certificates go live. Note that - these commands run as the root user. - - Executed in the same directory with the new certificate. - ''; - }; - - directory = mkOption { - type = types.str; - readOnly = true; - default = "/var/lib/acme/${name}"; - description = "Directory where certificate and other state is stored."; - }; - extraDomainNames = mkOption { type = types.listOf types.str; default = []; @@ -540,92 +646,25 @@ let ''; }; - keyType = mkOption { - type = types.str; - default = "ec256"; - description = '' - Key type to use for private keys. - For an up to date list of supported values check the --key-type option - at . - ''; - }; - - dnsProvider = mkOption { + # This setting must be different for each configured certificate, otherwise + # two or more renewals may fail to bind to the address. Hence, it is not in + # the inheritableOpts. + listenHTTP = mkOption { type = types.nullOr types.str; default = null; - example = "route53"; + example = ":1360"; description = '' - DNS Challenge provider. For a list of supported providers, see the "code" - field of the DNS providers listed at . + Interface and port to listen on to solve HTTP challenges + in the form [INTERFACE]:PORT. + If you use a port other than 80, you must proxy port 80 to this port. ''; }; - dnsResolver = mkOption { - type = types.nullOr types.str; - default = null; - example = "1.1.1.1:53"; - description = '' - Set the resolver to use for performing recursive DNS queries. Supported: - host:port. The default is to use the system resolvers, or Google's DNS - resolvers if the system's cannot be determined. - ''; - }; - - credentialsFile = mkOption { - type = types.path; - description = '' - Path to an EnvironmentFile for the cert's service containing any required and - optional environment variables for your selected dnsProvider. - To find out what values you need to set, consult the documentation at - for the corresponding dnsProvider. - ''; - example = "/var/src/secrets/example.org-route53-api-token"; - }; - - dnsPropagationCheck = mkOption { - type = types.bool; + inheritDefaults = mkOption { default = true; - description = '' - Toggles lego DNS propagation check, which is used alongside DNS-01 - challenge to ensure the DNS entries required are available. - ''; - }; - - ocspMustStaple = mkOption { - type = types.bool; - default = false; - description = '' - Turns on the OCSP Must-Staple TLS extension. - Make sure you know what you're doing! See: - - - - - ''; - }; - - extraLegoFlags = mkOption { - type = types.listOf types.str; - default = []; - description = '' - Additional global flags to pass to all lego commands. - ''; - }; - - extraLegoRenewFlags = mkOption { - type = types.listOf types.str; - default = []; - description = '' - Additional flags to pass to lego renew. - ''; - }; - - extraLegoRunFlags = mkOption { - type = types.listOf types.str; - default = []; - description = '' - Additional flags to pass to lego run. - ''; + example = true; + description = "Whether to inherit values set in `security.acme.defaults` or not."; + type = lib.types.bool; }; }; }; @@ -634,41 +673,6 @@ in { options = { security.acme = { - - enableDebugLogs = mkEnableOption "debug logging for all certificates by default" // { default = true; }; - - validMinDays = mkOption { - type = types.int; - default = 30; - description = "Minimum remaining validity before renewal in days."; - }; - - email = mkOption { - type = types.nullOr types.str; - default = null; - description = "Contact email address for the CA to be able to reach you."; - }; - - renewInterval = mkOption { - type = types.str; - default = "daily"; - description = '' - Systemd calendar expression when to check for renewal. See - systemd.time - 7. - ''; - }; - - server = mkOption { - type = types.nullOr types.str; - default = null; - description = '' - ACME Directory Resource URI. Defaults to Let's Encrypt's - production endpoint, - , if unset. - ''; - }; - preliminarySelfsigned = mkOption { type = types.bool; default = true; @@ -691,6 +695,16 @@ in { ''; }; + defaults = mkOption { + type = types.submodule ({ ... }: { options = inheritableOpts {}; }); + description = '' + Default values inheritable by all configured certs. You can + use this to define options shared by all your certs. These defaults + can also be ignored on a per-cert basis using the + `security.acme.certs.''${cert}.inheritDefaults' option. + ''; + }; + certs = mkOption { default = { }; type = with types; attrsOf (submodule certOpts); @@ -724,12 +738,16 @@ in { To use the let's encrypt staging server, use security.acme.server = "https://acme-staging-v02.api.letsencrypt.org/directory". - '' - ) + '') (mkRemovedOptionModule [ "security" "acme" "directory" ] "ACME Directory is now hardcoded to /var/lib/acme and its permisisons are managed by systemd. See https://github.com/NixOS/nixpkgs/issues/53852 for more info.") (mkRemovedOptionModule [ "security" "acme" "preDelay" ] "This option has been removed. If you want to make sure that something executes before certificates are provisioned, add a RequiredBy=acme-\${cert}.service to the service you want to execute before the cert renewal") (mkRemovedOptionModule [ "security" "acme" "activationDelay" ] "This option has been removed. If you want to make sure that something executes before certificates are provisioned, add a RequiredBy=acme-\${cert}.service to the service you want to execute before the cert renewal") - (mkChangedOptionModule [ "security" "acme" "validMin" ] [ "security" "acme" "validMinDays" ] (config: config.security.acme.validMin / (24 * 3600))) + (mkChangedOptionModule [ "security" "acme" "validMin" ] [ "security" "acme" "defaults" "validMinDays" ] (config: config.security.acme.validMin / (24 * 3600))) + (mkChangedOptionModule [ "security" "acme" "validMinDays" ] [ "security" "acme" "defaults" "validMinDays" ] (config: config.security.acme.validMinDays)) + (mkChangedOptionModule [ "security" "acme" "renewInterval" ] [ "security" "acme" "defaults" "renewInterval" ] (config: config.security.acme.renewInterval)) + (mkChangedOptionModule [ "security" "acme" "email" ] [ "security" "acme" "defaults" "email" ] (config: config.security.acme.email)) + (mkChangedOptionModule [ "security" "acme" "server" ] [ "security" "acme" "defaults" "server" ] (config: config.security.acme.server)) + (mkChangedOptionModule [ "security" "acme" "enableDebugLogs" ] [ "security" "acme" "defaults" "enableDebugLogs" ] (config: config.security.acme.enableDebugLogs)) ]; config = mkMerge [ diff --git a/nixos/modules/services/web-servers/apache-httpd/default.nix b/nixos/modules/services/web-servers/apache-httpd/default.nix index 992a58875e43..1a49b4ca15c7 100644 --- a/nixos/modules/services/web-servers/apache-httpd/default.nix +++ b/nixos/modules/services/web-servers/apache-httpd/default.nix @@ -154,7 +154,7 @@ let sslServerKey = if useACME then "${sslCertDir}/key.pem" else hostOpts.sslServerKey; sslServerChain = if useACME then "${sslCertDir}/chain.pem" else hostOpts.sslServerChain; - acmeChallenge = optionalString useACME '' + acmeChallenge = optionalString (useACME && hostOpts.acmeRoot != null) '' Alias /.well-known/acme-challenge/ "${hostOpts.acmeRoot}/.well-known/acme-challenge/" AllowOverride None @@ -677,9 +677,16 @@ in }; security.acme.certs = let - acmePairs = map (hostOpts: nameValuePair hostOpts.hostName { + acmePairs = map (hostOpts: let + hasRoot = hostOpts.acmeRoot != null; + in nameValuePair hostOpts.hostName { group = mkDefault cfg.group; - webroot = hostOpts.acmeRoot; + # if acmeRoot is null inherit config.security.acme + # Since config.security.acme.certs..webroot's own default value + # should take precedence set priority higher than mkOptionDefault + webroot = mkOverride (if hasRoot then 1000 else 2000) hostOpts.acmeRoot; + # Also nudge dnsProvider to null in case it is inherited + dnsProvider = mkOverride (if hasRoot then 1000 else 2000) null; extraDomainNames = hostOpts.serverAliases; # Use the vhost-specific email address if provided, otherwise let # security.acme.email or security.acme.certs..email be used. diff --git a/nixos/modules/services/web-servers/apache-httpd/vhost-options.nix b/nixos/modules/services/web-servers/apache-httpd/vhost-options.nix index 8bb7e91ec9cd..c52ab2c596e0 100644 --- a/nixos/modules/services/web-servers/apache-httpd/vhost-options.nix +++ b/nixos/modules/services/web-servers/apache-httpd/vhost-options.nix @@ -128,9 +128,12 @@ in }; acmeRoot = mkOption { - type = types.str; + type = types.nullOr types.str; default = "/var/lib/acme/acme-challenge"; - description = "Directory for the acme challenge which is PUBLIC, don't put certs or keys in here"; + description = '' + Directory for the acme challenge which is PUBLIC, don't put certs or keys in here. + Set to null to inherit from config.security.acme. + ''; }; sslServerCert = mkOption { diff --git a/nixos/modules/services/web-servers/nginx/default.nix b/nixos/modules/services/web-servers/nginx/default.nix index ba8e874f2ded..05b7870fc3a1 100644 --- a/nixos/modules/services/web-servers/nginx/default.nix +++ b/nixos/modules/services/web-servers/nginx/default.nix @@ -278,7 +278,7 @@ let acmeLocation = optionalString (vhost.enableACME || vhost.useACMEHost != null) '' location /.well-known/acme-challenge { ${optionalString (vhost.acmeFallbackHost != null) "try_files $uri @acme-fallback;"} - root ${vhost.acmeRoot}; + ${optionalString (vhost.acmeRoot != null) "root ${vhost.acmeRoot};"} auth_basic off; } ${optionalString (vhost.acmeFallbackHost != null) '' @@ -948,9 +948,16 @@ in }; security.acme.certs = let - acmePairs = map (vhostConfig: nameValuePair vhostConfig.serverName { + acmePairs = map (vhostConfig: let + hasRoot = vhostConfig.acmeRoot != null; + in nameValuePair vhostConfig.serverName { group = mkDefault cfg.group; - webroot = vhostConfig.acmeRoot; + # if acmeRoot is null inherit config.security.acme + # Since config.security.acme.certs..webroot's own default value + # should take precedence set priority higher than mkOptionDefault + webroot = mkOverride (if hasRoot then 1000 else 2000) vhostConfig.acmeRoot; + # Also nudge dnsProvider to null in case it is inherited + dnsProvider = mkOverride (if hasRoot then 1000 else 2000) null; extraDomainNames = vhostConfig.serverAliases; # Filter for enableACME-only vhosts. Don't want to create dud certs }) (filter (vhostConfig: vhostConfig.useACMEHost == null) acmeEnabledVhosts); diff --git a/nixos/modules/services/web-servers/nginx/vhost-options.nix b/nixos/modules/services/web-servers/nginx/vhost-options.nix index 7f49ce9586ca..c4e8285dc48b 100644 --- a/nixos/modules/services/web-servers/nginx/vhost-options.nix +++ b/nixos/modules/services/web-servers/nginx/vhost-options.nix @@ -3,7 +3,7 @@ # has additional options that affect the web server as a whole, like # the user/group to run under.) -{ lib, ... }: +{ config, lib, ... }: with lib; { @@ -85,9 +85,12 @@ with lib; }; acmeRoot = mkOption { - type = types.str; + type = types.nullOr types.str; default = "/var/lib/acme/acme-challenge"; - description = "Directory for the acme challenge which is PUBLIC, don't put certs or keys in here"; + description = '' + Directory for the acme challenge which is PUBLIC, don't put certs or keys in here. + Set to null to inherit from config.security.acme. + ''; }; acmeFallbackHost = mkOption { diff --git a/nixos/tests/acme.nix b/nixos/tests/acme.nix index 80b85502d4e8..549fa9e64eea 100644 --- a/nixos/tests/acme.nix +++ b/nixos/tests/acme.nix @@ -1,9 +1,9 @@ -let +import ./make-test-python.nix ({ pkgs, lib, ... }: let commonConfig = ./common/acme/client; dnsServerIP = nodes: nodes.dnsserver.config.networking.primaryIPAddress; - dnsScript = {pkgs, nodes}: let + dnsScript = nodes: let dnsAddress = dnsServerIP nodes; in pkgs.writeShellScript "dns-hook.sh" '' set -euo pipefail @@ -15,30 +15,137 @@ let fi ''; - documentRoot = pkgs: pkgs.runCommand "docroot" {} '' + dnsConfig = nodes: { + dnsProvider = "exec"; + dnsPropagationCheck = false; + credentialsFile = pkgs.writeText "wildcard.env" '' + EXEC_PATH=${dnsScript nodes} + EXEC_POLLING_INTERVAL=1 + EXEC_PROPAGATION_TIMEOUT=1 + EXEC_SEQUENCE_INTERVAL=1 + ''; + }; + + documentRoot = pkgs.runCommand "docroot" {} '' mkdir -p "$out" echo hello world > "$out/index.html" ''; - vhostBase = pkgs: { + vhostBase = { forceSSL = true; - locations."/".root = documentRoot pkgs; + locations."/".root = documentRoot; }; -in import ./make-test-python.nix ({ lib, ... }: { + vhostBaseHttpd = { + forceSSL = true; + inherit documentRoot; + }; + + # Base specialisation config for testing general ACME features + webserverBasicConfig = { + services.nginx.enable = true; + services.nginx.virtualHosts."a.example.test" = vhostBase // { + enableACME = true; + }; + }; + + # Generate specialisations for testing a web server + mkServerConfigs = { server, group, vhostBaseData, extraConfig ? {} }: let + baseConfig = { nodes, config, specialConfig ? {} }: lib.mkMerge [ + { + security.acme = { + defaults = (dnsConfig nodes) // { + inherit group; + }; + # One manual wildcard cert + certs."example.test" = { + domain = "*.example.test"; + }; + }; + + services."${server}" = { + enable = true; + virtualHosts = { + # Run-of-the-mill vhost using HTTP-01 validation + "${server}-http.example.test" = vhostBaseData // { + serverAliases = [ "${server}-http-alias.example.test" ]; + enableACME = true; + }; + + # Another which inherits the DNS-01 config + "${server}-dns.example.test" = vhostBaseData // { + serverAliases = [ "${server}-dns-alias.example.test" ]; + enableACME = true; + # Set acmeRoot to null instead of using the default of "/var/lib/acme/acme-challenge" + # webroot + dnsProvider are mutually exclusive. + acmeRoot = null; + }; + + # One using the wildcard certificate + "${server}-wildcard.example.test" = vhostBaseData // { + serverAliases = [ "${server}-wildcard-alias.example.test" ]; + useACMEHost = "example.test"; + }; + }; + }; + + # Used to determine if service reload was triggered + systemd.targets."test-renew-${server}" = { + wants = [ "acme-${server}-http.example.test.service" ]; + after = [ "acme-${server}-http.example.test.service" "${server}-config-reload.service" ]; + }; + } + specialConfig + extraConfig + ]; + in { + "${server}".configuration = { nodes, config, ... }: baseConfig { + inherit nodes config; + }; + + # Test that server reloads when an alias is removed (and subsequently test removal works in acme) + "${server}-remove-alias".configuration = { nodes, config, ... }: baseConfig { + inherit nodes config; + specialConfig = { + # Remove an alias, but create a standalone vhost in its place for testing. + # This configuration results in certificate errors as useACMEHost does not imply + # append extraDomains, and thus we can validate the SAN is removed. + services."${server}" = { + virtualHosts."${server}-http.example.test".serverAliases = lib.mkForce []; + virtualHosts."${server}-http-alias.example.test" = vhostBaseData // { + useACMEHost = "${server}-http.example.test"; + }; + }; + }; + }; + + # Test that the server reloads when only the acme configuration is changed. + "${server}-change-acme-conf".configuration = { nodes, config, ... }: baseConfig { + inherit nodes config; + specialConfig = { + security.acme.certs."${server}-http.example.test" = { + keyType = "ec384"; + # Also test that postRun is exec'd as root + postRun = "id | grep root"; + }; + }; + }; + }; + +in { name = "acme"; meta.maintainers = lib.teams.acme.members; nodes = { # The fake ACME server which will respond to client requests - acme = { nodes, lib, ... }: { + acme = { nodes, ... }: { imports = [ ./common/acme/server ]; networking.nameservers = lib.mkForce [ (dnsServerIP nodes) ]; }; # A fake DNS server which can be configured with records as desired # Used to test DNS-01 challenge - dnsserver = { nodes, pkgs, ... }: { + dnsserver = { nodes, ... }: { networking.firewall.allowedTCPPorts = [ 8055 53 ]; networking.firewall.allowedUDPPorts = [ 53 ]; systemd.services.pebble-challtestsrv = { @@ -54,7 +161,7 @@ in import ./make-test-python.nix ({ lib, ... }: { }; # A web server which will be the node requesting certs - webserver = { pkgs, nodes, lib, config, ... }: { + webserver = { nodes, config, ... }: { imports = [ commonConfig ]; networking.nameservers = lib.mkForce [ (dnsServerIP nodes) ]; networking.firewall.allowedTCPPorts = [ 80 443 ]; @@ -63,138 +170,88 @@ in import ./make-test-python.nix ({ lib, ... }: { environment.systemPackages = [ pkgs.openssl ]; # Set log level to info so that we can see when the service is reloaded - services.nginx.enable = true; services.nginx.logError = "stderr info"; - # First tests configure a basic cert and run a bunch of openssl checks - services.nginx.virtualHosts."a.example.test" = (vhostBase pkgs) // { - enableACME = true; - }; - - # Used to determine if service reload was triggered - systemd.targets.test-renew-nginx = { - wants = [ "acme-a.example.test.service" ]; - after = [ "acme-a.example.test.service" "nginx-config-reload.service" ]; - }; - - # Test that account creation is collated into one service - specialisation.account-creation.configuration = { nodes, pkgs, lib, ... }: let - email = "newhostmaster@example.test"; - caDomain = nodes.acme.config.test-support.acme.caDomain; - # Exit 99 to make it easier to track if this is the reason a renew failed - testScript = '' - test -e accounts/${caDomain}/${email}/account.json || exit 99 - ''; - in { - security.acme.email = lib.mkForce email; - systemd.services."b.example.test".preStart = testScript; - systemd.services."c.example.test".preStart = testScript; - - services.nginx.virtualHosts."b.example.test" = (vhostBase pkgs) // { - enableACME = true; - }; - services.nginx.virtualHosts."c.example.test" = (vhostBase pkgs) // { - enableACME = true; - }; - }; - - # Cert config changes will not cause the nginx configuration to change. - # This tests that the reload service is correctly triggered. - # It also tests that postRun is exec'd as root - specialisation.cert-change.configuration = { pkgs, ... }: { - security.acme.certs."a.example.test".keyType = "ec384"; - security.acme.certs."a.example.test".postRun = '' - set -euo pipefail - touch /home/test - chown root:root /home/test - echo testing > /home/test - ''; - }; - - # Now adding an alias to ensure that the certs are updated - specialisation.nginx-aliases.configuration = { pkgs, ... }: { - services.nginx.virtualHosts."a.example.test" = (vhostBase pkgs) // { - serverAliases = [ "b.example.test" ]; - }; - }; - - # Must be run after nginx-aliases - specialisation.remove-extra-domain.configuration = { pkgs, ... } : { - # This also validates that useACMEHost doesn't unexpectedly add the domain. - services.nginx.virtualHosts."b.example.test" = (vhostBase pkgs) // { - useACMEHost = "a.example.test"; - }; - }; - - # Test OCSP Stapling - specialisation.ocsp-stapling.configuration = { pkgs, ... }: { - security.acme.certs."a.example.test" = { - ocspMustStaple = true; - }; - services.nginx.virtualHosts."a.example.com" = { - extraConfig = '' - ssl_stapling on; - ssl_stapling_verify on; + specialisation = { + # First derivation used to test general ACME features + general.configuration = { ... }: let + caDomain = nodes.acme.config.test-support.acme.caDomain; + email = config.security.acme.defaults.email; + # Exit 99 to make it easier to track if this is the reason a renew failed + accountCreateTester = '' + test -e accounts/${caDomain}/${email}/account.json || exit 99 ''; - }; - }; + in lib.mkMerge [ + webserverBasicConfig + { + # Used to test that account creation is collated into one service. + # These should not run until after acme-finished-a.example.test.target + systemd.services."b.example.test".preStart = accountCreateTester; + systemd.services."c.example.test".preStart = accountCreateTester; - # Test using Apache HTTPD - specialisation.httpd-aliases.configuration = { pkgs, config, lib, ... }: { - services.nginx.enable = lib.mkForce false; - services.httpd.enable = true; - services.httpd.adminAddr = config.security.acme.email; - services.httpd.virtualHosts."c.example.test" = { - serverAliases = [ "d.example.test" ]; - forceSSL = true; - enableACME = true; - documentRoot = documentRoot pkgs; - }; + services.nginx.virtualHosts."b.example.test" = vhostBase // { + enableACME = true; + }; + services.nginx.virtualHosts."c.example.test" = vhostBase // { + enableACME = true; + }; + } + ]; - # Used to determine if service reload was triggered - systemd.targets.test-renew-httpd = { - wants = [ "acme-c.example.test.service" ]; - after = [ "acme-c.example.test.service" "httpd-config-reload.service" ]; - }; - }; + # Test OCSP Stapling + ocsp-stapling.configuration = { ... }: lib.mkMerge [ + webserverBasicConfig + { + security.acme.certs."a.example.test".ocspMustStaple = true; + services.nginx.virtualHosts."a.example.com" = { + extraConfig = '' + ssl_stapling on; + ssl_stapling_verify on; + ''; + }; + } + ]; - # Validation via DNS-01 challenge - specialisation.dns-01.configuration = { pkgs, config, nodes, ... }: { - security.acme.certs."example.test" = { - domain = "*.example.test"; - group = config.services.nginx.group; - dnsProvider = "exec"; - dnsPropagationCheck = false; - credentialsFile = pkgs.writeText "wildcard.env" '' - EXEC_PATH=${dnsScript { inherit pkgs nodes; }} - ''; - }; + # Validate service relationships by adding a slow start service to nginx' wants. + # Reproducer for https://github.com/NixOS/nixpkgs/issues/81842 + slow-startup.configuration = { ... }: lib.mkMerge [ + webserverBasicConfig + { + systemd.services.my-slow-service = { + wantedBy = [ "multi-user.target" "nginx.service" ]; + before = [ "nginx.service" ]; + preStart = "sleep 5"; + script = "${pkgs.python3}/bin/python -m http.server"; + }; - services.nginx.virtualHosts."dns.example.test" = (vhostBase pkgs) // { - useACMEHost = "example.test"; - }; - }; + services.nginx.virtualHosts."slow.example.com" = { + forceSSL = true; + enableACME = true; + locations."/".proxyPass = "http://localhost:8000"; + }; + } + ]; - # Validate service relationships by adding a slow start service to nginx' wants. - # Reproducer for https://github.com/NixOS/nixpkgs/issues/81842 - specialisation.slow-startup.configuration = { pkgs, config, nodes, lib, ... }: { - systemd.services.my-slow-service = { - wantedBy = [ "multi-user.target" "nginx.service" ]; - before = [ "nginx.service" ]; - preStart = "sleep 5"; - script = "${pkgs.python3}/bin/python -m http.server"; - }; + # Test compatibility with Nginx + } // (mkServerConfigs { + server = "nginx"; + group = "nginx"; + vhostBaseData = vhostBase; + }) - services.nginx.virtualHosts."slow.example.com" = { - forceSSL = true; - enableACME = true; - locations."/".proxyPass = "http://localhost:8000"; - }; - }; + # Test compatibility with Apache HTTPD + // (mkServerConfigs { + server = "httpd"; + group = "wwwrun"; + vhostBaseData = vhostBaseHttpd; + extraConfig = { + services.httpd.adminAddr = config.security.acme.defaults.email; + }; + }); }; # The client will be used to curl the webserver to validate configuration - client = {nodes, lib, pkgs, ...}: { + client = { nodes, ... }: { imports = [ commonConfig ]; networking.nameservers = lib.mkForce [ (dnsServerIP nodes) ]; @@ -203,7 +260,7 @@ in import ./make-test-python.nix ({ lib, ... }: { }; }; - testScript = {nodes, ...}: + testScript = { nodes, ... }: let caDomain = nodes.acme.config.test-support.acme.caDomain; newServerSystem = nodes.webserver.config.system.build.toplevel; @@ -212,23 +269,26 @@ in import ./make-test-python.nix ({ lib, ... }: { # 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. Targets do not have this issue. - '' import time - has_switched = False - - def switch_to(node, name): - global has_switched - if has_switched: - node.succeed( - "${switchToNewServer}" - ) - has_switched = True + # On first switch, this will create a symlink to the current system so that we can + # quickly switch between derivations + root_specs = "/tmp/specialisation" + node.execute( + f"test -e {root_specs}" + f" || ln -s $(readlink /run/current-system)/specialisation {root_specs}" + ) + + switcher_path = f"/run/current-system/specialisation/{name}/bin/switch-to-configuration" + rc, _ = node.execute(f"test -e '{switcher_path}'") + if rc > 0: + switcher_path = f"/tmp/specialisation/{name}/bin/switch-to-configuration" + node.succeed( - f"/run/current-system/specialisation/{name}/bin/switch-to-configuration test" + f"{switcher_path} test" ) @@ -318,8 +378,7 @@ in import ./make-test-python.nix ({ lib, ... }: { return download_ca_certs(node, retries - 1) - client.start() - dnsserver.start() + start_all() dnsserver.wait_for_unit("pebble-challtestsrv.service") client.wait_for_unit("default.target") @@ -328,19 +387,30 @@ in import ./make-test-python.nix ({ lib, ... }: { 'curl --data \'{"host": "${caDomain}", "addresses": ["${nodes.acme.config.networking.primaryIPAddress}"]}\' http://${dnsServerIP nodes}:8055/add-a' ) - acme.start() - webserver.start() - acme.wait_for_unit("network-online.target") acme.wait_for_unit("pebble.service") download_ca_certs(client) + # Perform general tests first + switch_to(webserver, "general") + with subtest("Can request certificate with HTTPS-01 challenge"): webserver.wait_for_unit("acme-finished-a.example.test.target") + check_fullchain(webserver, "a.example.test") + check_issuer(webserver, "a.example.test", "pebble") + webserver.wait_for_unit("nginx.service") + check_connection(client, "a.example.test") + + with subtest("Runs 1 cert for account creation before others"): + webserver.wait_for_unit("acme-finished-b.example.test.target") + webserver.wait_for_unit("acme-finished-c.example.test.target") + check_connection(client, "b.example.test") + check_connection(client, "c.example.test") with subtest("Certificates and accounts have safe + valid permissions"): - group = "${nodes.webserver.config.security.acme.certs."a.example.test".group}" + # Nginx will set the group appropriately when enableACME is used + group = "nginx" webserver.succeed( f"test $(stat -L -c '%a %U %G' /var/lib/acme/a.example.test/*.pem | tee /dev/stderr | grep '640 acme {group}' | wc -l) -eq 5" ) @@ -354,12 +424,6 @@ in import ./make-test-python.nix ({ lib, ... }: { f"test $(find /var/lib/acme/accounts -type f -exec stat -L -c '%a %U %G' {{}} \\; | tee /dev/stderr | grep -v '600 acme {group}' | wc -l) -eq 0" ) - with subtest("Certs are accepted by web server"): - webserver.succeed("systemctl start nginx.service") - check_fullchain(webserver, "a.example.test") - check_issuer(webserver, "a.example.test", "pebble") - check_connection(client, "a.example.test") - # Selfsigned certs tests happen late so we aren't fighting the system init triggering cert renewal with subtest("Can generate valid selfsigned certs"): webserver.succeed("systemctl clean acme-a.example.test.service --what=state") @@ -373,89 +437,80 @@ in import ./make-test-python.nix ({ lib, ... }: { # Will succeed if nginx can load the certs webserver.succeed("systemctl start nginx-config-reload.service") - with subtest("Can reload nginx when timer triggers renewal"): - webserver.succeed("systemctl start test-renew-nginx.target") - check_issuer(webserver, "a.example.test", "pebble") - check_connection(client, "a.example.test") - - with subtest("Runs 1 cert for account creation before others"): - switch_to(webserver, "account-creation") - webserver.wait_for_unit("acme-finished-a.example.test.target") - check_connection(client, "a.example.test") - webserver.wait_for_unit("acme-finished-b.example.test.target") - webserver.wait_for_unit("acme-finished-c.example.test.target") - check_connection(client, "b.example.test") - check_connection(client, "c.example.test") - - with subtest("Can reload web server when cert configuration changes"): - switch_to(webserver, "cert-change") - webserver.wait_for_unit("acme-finished-a.example.test.target") - check_connection_key_bits(client, "a.example.test", "384") - webserver.succeed("grep testing /home/test") - # Clean to remove the testing file (and anything else messy we did) - webserver.succeed("systemctl clean acme-a.example.test.service --what=state") - with subtest("Correctly implements OCSP stapling"): switch_to(webserver, "ocsp-stapling") webserver.wait_for_unit("acme-finished-a.example.test.target") check_stapling(client, "a.example.test") with subtest("Can request certificate with HTTPS-01 when nginx startup is delayed"): + webserver.execute("systemctl stop nginx") switch_to(webserver, "slow-startup") webserver.wait_for_unit("acme-finished-slow.example.com.target") check_issuer(webserver, "slow.example.com", "pebble") + webserver.wait_for_unit("nginx.service") check_connection(client, "slow.example.com") - with subtest("Can request certificate for vhost + aliases (nginx)"): - # Check the key hash before and after adding an alias. It should not change. - # The previous test reverts the ed384 change - webserver.wait_for_unit("acme-finished-a.example.test.target") - switch_to(webserver, "nginx-aliases") - webserver.wait_for_unit("acme-finished-a.example.test.target") - check_issuer(webserver, "a.example.test", "pebble") - check_connection(client, "a.example.test") - check_connection(client, "b.example.test") + domains = ["http", "dns", "wildcard"] + for server, logsrc in [ + ("nginx", "journalctl -n 30 -u nginx.service"), + ("httpd", "tail -n 30 /var/log/httpd/*.log"), + ]: + wait_for_server = lambda: webserver.wait_for_unit(f"{server}.service") + with subtest(f"Works with {server}"): + try: + switch_to(webserver, server) + # Skip wildcard domain for this check ([:-1]) + for domain in domains[:-1]: + webserver.wait_for_unit( + f"acme-finished-{server}-{domain}.example.test.target" + ) + except Exception as err: + _, output = webserver.execute( + f"{logsrc} && ls -al /var/lib/acme/acme-challenge" + ) + print(output) + raise err - with subtest("Can remove extra domains from a cert"): - switch_to(webserver, "remove-extra-domain") - webserver.wait_for_unit("acme-finished-a.example.test.target") - webserver.wait_for_unit("nginx.service") - check_connection(client, "a.example.test") - rc, _ = client.execute( - "openssl s_client -CAfile /tmp/ca.crt -connect b.example.test:443" - " /dev/null | openssl x509 -noout -text" - " | grep DNS: | grep b.example.test" - ) - assert rc > 0, "Removed extraDomainName was not removed from the cert" + wait_for_server() - with subtest("Can request certificates for vhost + aliases (apache-httpd)"): - try: - switch_to(webserver, "httpd-aliases") - webserver.wait_for_unit("acme-finished-c.example.test.target") - except Exception as err: - _, output = webserver.execute( - "cat /var/log/httpd/*.log && ls -al /var/lib/acme/acme-challenge" + for domain in domains[:-1]: + check_issuer(webserver, f"{server}-{domain}.example.test", "pebble") + for domain in domains: + check_connection(client, f"{server}-{domain}.example.test") + check_connection(client, f"{server}-{domain}-alias.example.test") + + test_domain = f"{server}-{domains[0]}.example.test" + + with subtest(f"Can reload {server} when timer triggers renewal"): + # Switch to selfsigned first + webserver.succeed(f"systemctl clean acme-{test_domain}.service --what=state") + webserver.succeed(f"systemctl start acme-selfsigned-{test_domain}.service") + check_issuer(webserver, test_domain, "minica") + webserver.succeed(f"systemctl start {server}-config-reload.service") + webserver.succeed(f"systemctl start test-renew-{server}.target") + check_issuer(webserver, test_domain, "pebble") + check_connection(client, test_domain) + + with subtest("Can remove an alias from a domain + cert is updated"): + test_alias = f"{server}-{domains[0]}-alias.example.test" + switch_to(webserver, f"{server}-remove-alias") + webserver.wait_for_unit(f"acme-finished-{test_domain}.target") + wait_for_server() + check_connection(client, test_domain) + rc, _ = client.execute( + f"openssl s_client -CAfile /tmp/ca.crt -connect {test_alias}:443" + " /dev/null | openssl x509 -noout -text" + f" | grep DNS: | grep {test_alias}" ) - print(output) - raise err - check_issuer(webserver, "c.example.test", "pebble") - check_connection(client, "c.example.test") - check_connection(client, "d.example.test") + assert rc > 0, "Removed extraDomainName was not removed from the cert" - with subtest("Can reload httpd when timer triggers renewal"): - # Switch to selfsigned first - webserver.succeed("systemctl clean acme-c.example.test.service --what=state") - webserver.succeed("systemctl start acme-selfsigned-c.example.test.service") - check_issuer(webserver, "c.example.test", "minica") - webserver.succeed("systemctl start httpd-config-reload.service") - webserver.succeed("systemctl start test-renew-httpd.target") - check_issuer(webserver, "c.example.test", "pebble") - check_connection(client, "c.example.test") - - with subtest("Can request wildcard certificates using DNS-01 challenge"): - switch_to(webserver, "dns-01") - webserver.wait_for_unit("acme-finished-example.test.target") - check_issuer(webserver, "example.test", "pebble") - check_connection(client, "dns.example.test") + with subtest("security.acme changes reflect on web server"): + # Switch back to normal server config first, reset everything. + switch_to(webserver, server) + wait_for_server() + switch_to(webserver, f"{server}-change-acme-conf") + webserver.wait_for_unit(f"acme-finished-{test_domain}.target") + wait_for_server() + check_connection_key_bits(client, test_domain, "384") ''; }) diff --git a/nixos/tests/common/acme/client/default.nix b/nixos/tests/common/acme/client/default.nix index 1e9885e375c7..9dbe345e7a01 100644 --- a/nixos/tests/common/acme/client/default.nix +++ b/nixos/tests/common/acme/client/default.nix @@ -5,9 +5,11 @@ let in { security.acme = { - server = "https://${caDomain}/dir"; - email = "hostmaster@example.test"; acceptTerms = true; + defaults = { + server = "https://${caDomain}/dir"; + email = "hostmaster@example.test"; + }; }; security.pki.certificateFiles = [ caCert ]; diff --git a/nixos/tests/common/acme/server/default.nix b/nixos/tests/common/acme/server/default.nix index 1c3bfdf76b7e..450d49e60399 100644 --- a/nixos/tests/common/acme/server/default.nix +++ b/nixos/tests/common/acme/server/default.nix @@ -120,6 +120,11 @@ in { enable = true; description = "Pebble ACME server"; wantedBy = [ "network.target" ]; + environment = { + # We're not testing lego, we're just testing our configuration. + # No need to sleep. + PEBBLE_VA_NOSLEEP = "1"; + }; serviceConfig = { RuntimeDirectory = "pebble"; From 07c15833093b9db5dacb3829afda03d7c71cc077 Mon Sep 17 00:00:00 2001 From: Lucas Savva Date: Sat, 4 Dec 2021 17:32:17 +0000 Subject: [PATCH 59/87] nixos/acme: Update release notes --- .../from_md/release-notes/rl-2205.section.xml | 26 ++++++++++++++++++- .../manual/release-notes/rl-2205.section.md | 11 ++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml index d5e3190bf288..acafdcafa1b6 100644 --- a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml +++ b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml @@ -14,7 +14,17 @@
Highlights - + + + + security.acme.defaults has been added to + simplify configuring settings for many certificates at once. + This also opens up the the option to use DNS-01 validation + when using enableACME on web server virtual + hosts (e.g. + services.nginx.virtualHosts.*.enableACME). + + PHP 8.1 is now available @@ -180,6 +190,20 @@ using this default will print a warning when rebuilt. + + + security.acme certificates will now + correctly check for CA revokation before reaching their + minimum age. + + + + + Removing domains from + security.acme.certs._name_.extraDomainNames + will now correctly remove those domains during rebuild/renew. + + The option diff --git a/nixos/doc/manual/release-notes/rl-2205.section.md b/nixos/doc/manual/release-notes/rl-2205.section.md index 98709455ae74..7258d90bdb2a 100644 --- a/nixos/doc/manual/release-notes/rl-2205.section.md +++ b/nixos/doc/manual/release-notes/rl-2205.section.md @@ -6,6 +6,11 @@ In addition to numerous new and upgraded packages, this release has the followin ## Highlights {#sec-release-22.05-highlights} +- `security.acme.defaults` has been added to simplify configuring + settings for many certificates at once. This also opens up the + the option to use DNS-01 validation when using `enableACME` on + web server virtual hosts (e.g. `services.nginx.virtualHosts.*.enableACME`). + - PHP 8.1 is now available ## New Services {#sec-release-22.05-new-services} @@ -73,6 +78,12 @@ In addition to numerous new and upgraded packages, this release has the followin - The `services.unifi.openPorts` option default value of `true` is now deprecated and will be changed to `false` in 22.11. Configurations using this default will print a warning when rebuilt. +- `security.acme` certificates will now correctly check for CA + revokation before reaching their minimum age. + +- Removing domains from `security.acme.certs._name_.extraDomainNames` + will now correctly remove those domains during rebuild/renew. + - The option [services.ssh.enableAskPassword](#opt-services.ssh.enableAskPassword) was added, decoupling the setting of `SSH_ASKPASS` from From 8d01b0862d3d52d72539cff65a405c09d864f82f Mon Sep 17 00:00:00 2001 From: Lucas Savva Date: Sat, 4 Dec 2021 18:09:43 +0000 Subject: [PATCH 60/87] nixos/acme: Update documentation - Added defaultText for all inheritable options. - Add docs on using new defaults option to configure DNS validation for all domains. - Update DNS docs to show using a service to configure rfc2136 instead of manual steps. --- nixos/modules/security/acme.nix | 34 +++- nixos/modules/security/acme.xml | 159 +++++++++++++++--- nixos/modules/services/networking/prosody.xml | 2 +- nixos/modules/services/web-apps/discourse.xml | 2 +- .../modules/services/web-apps/jitsi-meet.xml | 4 +- 5 files changed, 172 insertions(+), 29 deletions(-) diff --git a/nixos/modules/security/acme.nix b/nixos/modules/security/acme.nix index c39653d174e5..1b116482caeb 100644 --- a/nixos/modules/security/acme.nix +++ b/nixos/modules/security/acme.nix @@ -425,6 +425,8 @@ let certConfigs = mapAttrs certToConfig cfg.certs; + mkDefaultText = val: "Inherit from security.acme.defaults, otherwise ${val}" ; + # These options can be specified within # security.acme or security.acme.certs. inheritableOpts = @@ -432,12 +434,14 @@ let validMinDays = mkOption { type = types.int; default = if inheritDefaults then defaults.validMinDays else 30; + defaultText = mkDefaultText "30"; description = "Minimum remaining validity before renewal in days."; }; renewInterval = mkOption { type = types.str; default = if inheritDefaults then defaults.renewInterval else "daily"; + defaultText = mkDefaultText "'daily'"; description = '' Systemd calendar expression when to check for renewal. See systemd.time @@ -452,6 +456,7 @@ let webroot = mkOption { type = types.nullOr types.str; default = if inheritDefaults then defaults.webroot else null; + defaultText = mkDefaultText "null"; example = "/var/lib/acme/acme-challenge"; description = '' Where the webroot of the HTTP vhost is located. @@ -465,6 +470,7 @@ let server = mkOption { type = types.nullOr types.str; default = if inheritDefaults then defaults.server else null; + defaultText = mkDefaultText "null"; description = '' ACME Directory Resource URI. Defaults to Let's Encrypt's production endpoint, @@ -475,6 +481,7 @@ let email = mkOption { type = types.str; default = if inheritDefaults then defaults.email else null; + defaultText = mkDefaultText "null"; description = '' Email address for account creation and correspondence from the CA. It is recommended to use the same email for all certs to avoid account @@ -485,12 +492,14 @@ let group = mkOption { type = types.str; default = if inheritDefaults then defaults.group else "acme"; + defaultText = mkDefaultText "'acme'"; description = "Group running the ACME client."; }; reloadServices = mkOption { type = types.listOf types.str; default = if inheritDefaults then defaults.reloadServices else []; + defaultText = mkDefaultText "[]"; description = '' The list of systemd services to call systemctl try-reload-or-restart on. @@ -500,6 +509,7 @@ let postRun = mkOption { type = types.lines; default = if inheritDefaults then defaults.postRun else ""; + defaultText = mkDefaultText "''"; example = "cp full.pem backup.pem"; description = '' Commands to run after new certificates go live. Note that @@ -512,6 +522,7 @@ let keyType = mkOption { type = types.str; default = if inheritDefaults then defaults.keyType else "ec256"; + defaultText = mkDefaultText "'ec256'"; description = '' Key type to use for private keys. For an up to date list of supported values check the --key-type option @@ -522,6 +533,7 @@ let dnsProvider = mkOption { type = types.nullOr types.str; default = if inheritDefaults then defaults.dnsProvider else null; + defaultText = mkDefaultText "null"; example = "route53"; description = '' DNS Challenge provider. For a list of supported providers, see the "code" @@ -532,6 +544,7 @@ let dnsResolver = mkOption { type = types.nullOr types.str; default = if inheritDefaults then defaults.dnsResolver else null; + defaultText = mkDefaultText "null"; example = "1.1.1.1:53"; description = '' Set the resolver to use for performing recursive DNS queries. Supported: @@ -543,6 +556,7 @@ let credentialsFile = mkOption { type = types.path; default = if inheritDefaults then defaults.credentialsFile else null; + defaultText = mkDefaultText "null"; description = '' Path to an EnvironmentFile for the cert's service containing any required and optional environment variables for your selected dnsProvider. @@ -555,6 +569,7 @@ let dnsPropagationCheck = mkOption { type = types.bool; default = if inheritDefaults then defaults.dnsPropagationCheck else true; + defaultText = mkDefaultText "true"; description = '' Toggles lego DNS propagation check, which is used alongside DNS-01 challenge to ensure the DNS entries required are available. @@ -564,6 +579,7 @@ let ocspMustStaple = mkOption { type = types.bool; default = if inheritDefaults then defaults.ocspMustStaple else false; + defaultText = mkDefaultText "false"; description = '' Turns on the OCSP Must-Staple TLS extension. Make sure you know what you're doing! See: @@ -577,6 +593,7 @@ let extraLegoFlags = mkOption { type = types.listOf types.str; default = if inheritDefaults then defaults.extraLegoFlags else []; + defaultText = mkDefaultText "[]"; description = '' Additional global flags to pass to all lego commands. ''; @@ -585,6 +602,7 @@ let extraLegoRenewFlags = mkOption { type = types.listOf types.str; default = if inheritDefaults then defaults.extraLegoRenewFlags else []; + defaultText = mkDefaultText "[]"; description = '' Additional flags to pass to lego renew. ''; @@ -593,14 +611,24 @@ let extraLegoRunFlags = mkOption { type = types.listOf types.str; default = if inheritDefaults then defaults.extraLegoRunFlags else []; + defaultText = mkDefaultText "[]"; description = '' Additional flags to pass to lego run. ''; }; }; - certOpts = { name, ... }: { - options = (inheritableOpts { inherit (cfg) defaults; inheritDefaults = cfg.certs."${name}".inheritDefaults; }) // { + certOpts = { name, config, ... }: { + options = (inheritableOpts { + inherit (cfg) defaults; + # During doc generation, name = "" and doesn't really + # exist as a cert. As such, handle undfined certs. + inheritDefaults = (lib.attrByPath + [name] + { inheritDefaults = false; } + cfg.certs + ).inheritDefaults; + }) // { # user option has been removed user = mkOption { visible = false; @@ -696,7 +724,7 @@ in { }; defaults = mkOption { - type = types.submodule ({ ... }: { options = inheritableOpts {}; }); + type = types.submodule { options = inheritableOpts {}; }; description = '' Default values inheritable by all configured certs. You can use this to define options shared by all your certs. These defaults diff --git a/nixos/modules/security/acme.xml b/nixos/modules/security/acme.xml index bf93800a0af4..f623cc509be6 100644 --- a/nixos/modules/security/acme.xml +++ b/nixos/modules/security/acme.xml @@ -7,8 +7,9 @@ NixOS supports automatic domain validation & certificate retrieval and renewal using the ACME protocol. Any provider can be used, but by default - NixOS uses Let's Encrypt. The alternative ACME client lego - is used under the hood. + NixOS uses Let's Encrypt. The alternative ACME client + lego is used under + the hood. Automatic cert validation and configuration for Apache and Nginx virtual @@ -29,7 +30,7 @@ You must also set an email address to be used when creating accounts with Let's Encrypt. You can set this for all certs with - + and/or on a per-cert basis with . This address is only used for registration and renewal reminders, @@ -38,7 +39,7 @@ Alternatively, you can use a different ACME server by changing the - option + option to a provider of your choosing, or just change the server for one cert with . @@ -60,12 +61,12 @@ = true; in a virtualHost config. We first create self-signed placeholder certificates in place of the real ACME certs. The placeholder certs are overwritten when the ACME certs arrive. For - foo.example.com the config would look like. + foo.example.com the config would look like this: = true; - = "admin+acme@example.com"; + = "admin+acme@example.com"; services.nginx = { enable = true; virtualHosts = { @@ -114,7 +115,7 @@ services.nginx = { = true; - = "admin+acme@example.com"; + = "admin+acme@example.com"; # /var/lib/acme/.challenges must be writable by the ACME user # and readable by the Nginx user. The easiest way to achieve @@ -218,7 +219,7 @@ services.bind = { # Now we can configure ACME = true; - = "admin+acme@example.com"; + = "admin+acme@example.com"; ."example.com" = { domain = "*.example.com"; dnsProvider = "rfc2136"; @@ -231,25 +232,39 @@ services.bind = { The dnskeys.conf and certs.secret must be kept secure and thus you should not keep their contents in your - Nix config. Instead, generate them one time with these commands: + Nix config. Instead, generate them one time with a systemd service: -mkdir -p /var/lib/secrets -tsig-keygen rfc2136key.example.com > /var/lib/secrets/dnskeys.conf -chown named:root /var/lib/secrets/dnskeys.conf -chmod 400 /var/lib/secrets/dnskeys.conf +systemd.services.dns-rfc2136-conf = { + requiredBy = ["acme-example.com.service", "bind.service"]; + before = ["acme-example.com.service", "bind.service"]; + unitConfig = { + ConditionPathExists = "!/var/lib/secrets/dnskeys.conf"; + }; + serviceConfig = { + Type = "oneshot"; + UMask = 0077; + }; + path = [ pkgs.bind ]; + script = '' + mkdir -p /var/lib/secrets + tsig-keygen rfc2136key.example.com > /var/lib/secrets/dnskeys.conf + chown named:root /var/lib/secrets/dnskeys.conf + chmod 400 /var/lib/secrets/dnskeys.conf -# Copy the secret value from the dnskeys.conf, and put it in -# RFC2136_TSIG_SECRET below + # Copy the secret value from the dnskeys.conf, and put it in + # RFC2136_TSIG_SECRET below -cat > /var/lib/secrets/certs.secret << EOF -RFC2136_NAMESERVER='127.0.0.1:53' -RFC2136_TSIG_ALGORITHM='hmac-sha256.' -RFC2136_TSIG_KEY='rfc2136key.example.com' -RFC2136_TSIG_SECRET='your secret key' -EOF -chmod 400 /var/lib/secrets/certs.secret + cat > /var/lib/secrets/certs.secret << EOF + RFC2136_NAMESERVER='127.0.0.1:53' + RFC2136_TSIG_ALGORITHM='hmac-sha256.' + RFC2136_TSIG_KEY='rfc2136key.example.com' + RFC2136_TSIG_SECRET='your secret key' + EOF + chmod 400 /var/lib/secrets/certs.secret + ''; +}; @@ -258,6 +273,106 @@ chmod 400 /var/lib/secrets/certs.secret journalctl -fu acme-example.com.service and watching its log output.
+ +
+ Using DNS validation with web server virtual hosts + + + It is possible to use DNS-01 validation with all certificates, + including those automatically configured via the Nginx/Apache + enableACME + option. This configuration pattern is fully + supported and part of the module's test suite for Nginx + Apache. + + + + You must follow the guide above on configuring DNS-01 validation + first, however instead of setting the options for one certificate + (e.g. ) + you will set them as defaults + (e.g. ). + + + +# Configure ACME appropriately + = true; + = "admin+acme@example.com"; + = { + dnsProvider = "rfc2136"; + credentialsFile = "/var/lib/secrets/certs.secret"; + # We don't need to wait for propagation since this is a local DNS server + dnsPropagationCheck = false; +}; + +# For each virtual host you would like to use DNS-01 validation with, +# set acmeRoot = null +services.nginx = { + enable = true; + virtualHosts = { + "foo.example.com" = { + enableACME = true; + acmeRoot = null; + }; + }; +} + + + + And that's it! Next time your configuration is rebuilt, or when + you add a new virtualHost, it will be DNS-01 validated. + +
+ +
+ Using ACME with services demanding root owned certificates + + + Some services refuse to start if the configured certificate files + are not owned by root. PostgreSQL and OpenSMTPD are examples of these. + There is no way to change the user the ACME module uses (it will always be + acme), however you can use systemd's + LoadCredential feature to resolve this elegantly. + Below is an example configuration for OpenSMTPD, but this pattern + can be applied to any service. + + + +# Configure ACME however you like (DNS or HTTP validation), adding +# the following configuration for the relevant certificate. +# Note: You cannot use `systemctl reload` here as that would mean +# the LoadCredential configuration below would be skipped and +# the service would continue to use old certificates. +security.acme.certs."mail.example.com".postRun = '' + systemctl restart opensmtpd +''; + +# Now you must augment OpenSMTPD's systemd service to load +# the certificate files. +systemd.services.opensmtpd.requires = ["acme-finished-mail.example.com.target"]; +systemd.services.opensmtpd.serviceConfig.LoadCredential = let + certDir = config.security.acme.certs."mail.example.com".directory; +in [ + "cert.pem:${certDir}/cert.pem" + "key.pem:${certDir}/key.pem" +]; + +# Finally, configure OpenSMTPD to use these certs. +services.opensmtpd = let + credsDir = "/run/credentials/opensmtpd.service"; +in { + enable = true; + setSendmail = false; + serverConfiguration = '' + pki mail.example.com cert "${credsDir}/cert.pem" + pki mail.example.com key "${credsDir}/key.pem" + listen on localhost tls pki mail.example.com + action act1 relay host smtp://127.0.0.1:10027 + match for local action act1 + ''; +}; + +
+
Regenerating certificates diff --git a/nixos/modules/services/networking/prosody.xml b/nixos/modules/services/networking/prosody.xml index 471240cd1475..6358d744ff78 100644 --- a/nixos/modules/services/networking/prosody.xml +++ b/nixos/modules/services/networking/prosody.xml @@ -72,7 +72,7 @@ services.prosody = { a TLS certificate for the three endponits: security.acme = { - email = "root@example.org"; + email = "root@example.org"; acceptTerms = true; certs = { "example.org" = { diff --git a/nixos/modules/services/web-apps/discourse.xml b/nixos/modules/services/web-apps/discourse.xml index e91d3eac422d..ad9b65abf51e 100644 --- a/nixos/modules/services/web-apps/discourse.xml +++ b/nixos/modules/services/web-apps/discourse.xml @@ -25,7 +25,7 @@ services.discourse = { }; secretKeyBaseFile = "/path/to/secret_key_base_file"; }; -security.acme.email = "me@example.com"; +security.acme.email = "me@example.com"; security.acme.acceptTerms = true; diff --git a/nixos/modules/services/web-apps/jitsi-meet.xml b/nixos/modules/services/web-apps/jitsi-meet.xml index 97373bc6d9a8..ff44c724adf4 100644 --- a/nixos/modules/services/web-apps/jitsi-meet.xml +++ b/nixos/modules/services/web-apps/jitsi-meet.xml @@ -20,7 +20,7 @@ }; services.jitsi-videobridge.openFirewall = true; networking.firewall.allowedTCPPorts = [ 80 443 ]; - security.acme.email = "me@example.com"; + security.acme.email = "me@example.com"; security.acme.acceptTerms = true; } @@ -46,7 +46,7 @@ }; services.jitsi-videobridge.openFirewall = true; networking.firewall.allowedTCPPorts = [ 80 443 ]; - security.acme.email = "me@example.com"; + security.acme.email = "me@example.com"; security.acme.acceptTerms = true; } From 41fb8d71ab5d92118eec5f056d3ce7e8f370a652 Mon Sep 17 00:00:00 2001 From: Lucas Savva Date: Sat, 4 Dec 2021 19:01:18 +0000 Subject: [PATCH 61/87] nixos/acme: Add useRoot option --- nixos/modules/security/acme.nix | 23 ++++++++++++++++++----- nixos/tests/acme.nix | 13 +++++++++++++ 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/nixos/modules/security/acme.nix b/nixos/modules/security/acme.nix index 1b116482caeb..57e83a4a27b7 100644 --- a/nixos/modules/security/acme.nix +++ b/nixos/modules/security/acme.nix @@ -3,6 +3,7 @@ with lib; let cfg = config.security.acme; opt = options.security.acme; + user = if cfg.useRoot then "root" else "acme"; # Used to calculate timer accuracy for coalescing numCerts = length (builtins.attrNames cfg.certs); @@ -23,7 +24,7 @@ let # security.acme.certs..group on some of the services. commonServiceConfig = { Type = "oneshot"; - User = "acme"; + User = user; Group = mkDefault "acme"; UMask = 0022; StateDirectoryMode = 750; @@ -101,12 +102,12 @@ let # is configurable on a per-cert basis. userMigrationService = let script = with builtins; '' - chown -R acme .lego/accounts + chown -R ${user} .lego/accounts '' + (concatStringsSep "\n" (mapAttrsToList (cert: data: '' for fixpath in ${escapeShellArg cert} .lego/${escapeShellArg cert}; do if [ -d "$fixpath" ]; then chmod -R u=rwX,g=rX,o= "$fixpath" - chown -R acme:${data.group} "$fixpath" + chown -R ${user}:${data.group} "$fixpath" fi done '') certConfigs)); @@ -268,7 +269,7 @@ let cat key.pem fullchain.pem > full.pem # Group might change between runs, re-apply it - chown 'acme:${data.group}' * + chown '${user}:${data.group}' * # Default permissions make the files unreadable by group + anon # Need to be readable by group @@ -403,7 +404,7 @@ let mv domainhash.txt certificates/ # Group might change between runs, re-apply it - chown 'acme:${data.group}' certificates/* + chown '${user}:${data.group}' certificates/* # Copy all certs to the "real" certs directory if ! cmp -s 'certificates/${keyName}.crt' out/fullchain.pem; then @@ -723,6 +724,18 @@ in { ''; }; + useRoot = mkOption { + type = types.bool; + default = false; + description = '' + Whether to use the root user when generating certs. This is not recommended + for security + compatiblity reasons. If a service requires root owned certificates + consider following the guide on "Using ACME with services demanding root + owned certificates" in the NixOS manual, and only using this as a fallback + or for testing. + ''; + }; + defaults = mkOption { type = types.submodule { options = inheritableOpts {}; }; description = '' diff --git a/nixos/tests/acme.nix b/nixos/tests/acme.nix index 549fa9e64eea..a4ed8fa67bfe 100644 --- a/nixos/tests/acme.nix +++ b/nixos/tests/acme.nix @@ -232,6 +232,13 @@ in { } ]; + use-root.configuration = { ... }: lib.mkMerge [ + webserverBasicConfig + { + security.acme.useRoot = true; + } + ]; + # Test compatibility with Nginx } // (mkServerConfigs { server = "nginx"; @@ -450,6 +457,12 @@ in { webserver.wait_for_unit("nginx.service") check_connection(client, "slow.example.com") + with subtest("Can set useRoot to true and still use certs normally"): + switch_to(webserver, "use-root") + webserver.wait_for_unit("nginx.service") + webserver.succeed("test \"$(stat -c '%U' /var/lib/acme/* | uniq)\" = \"root\"") + check_connection(client, "a.example.com") + domains = ["http", "dns", "wildcard"] for server, logsrc in [ ("nginx", "journalctl -n 30 -u nginx.service"), From 2dcc3daadf3718b3b0216d4cfbaab9040a9beffd Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Thu, 9 Dec 2021 22:43:54 +0100 Subject: [PATCH 62/87] nixos/acme: Clean up default handling --- nixos/modules/security/acme.nix | 89 ++++++++++++++------------------- 1 file changed, 37 insertions(+), 52 deletions(-) diff --git a/nixos/modules/security/acme.nix b/nixos/modules/security/acme.nix index 57e83a4a27b7..2b3a86f96fc7 100644 --- a/nixos/modules/security/acme.nix +++ b/nixos/modules/security/acme.nix @@ -426,23 +426,31 @@ let certConfigs = mapAttrs certToConfig cfg.certs; - mkDefaultText = val: "Inherit from security.acme.defaults, otherwise ${val}" ; - # These options can be specified within - # security.acme or security.acme.certs. - inheritableOpts = - { inheritDefaults ? false, defaults ? null }: { + # security.acme.defaults or security.acme.certs. + inheritableModule = isDefaults: { config, ... }: let + defaultAndText = name: default: { + # When ! isDefaults then this is the option declaration for the + # security.acme.certs. path, which has the extra inheritDefaults + # option, which if disabled means that we can't inherit it + default = if isDefaults || ! config.inheritDefaults then default else cfg.defaults.${name}; + # The docs however don't need to depend on inheritDefaults, they should + # stay constant. Though notably it wouldn't matter much, because to get + # the option information, a submodule with name `` is evaluated + # without any definitions. + defaultText = if isDefaults then default else literalExpression "config.security.acme.defaults.${name}"; + }; + in { + options = { validMinDays = mkOption { type = types.int; - default = if inheritDefaults then defaults.validMinDays else 30; - defaultText = mkDefaultText "30"; + inherit (defaultAndText "validMinDays" 30) default defaultText; description = "Minimum remaining validity before renewal in days."; }; renewInterval = mkOption { type = types.str; - default = if inheritDefaults then defaults.renewInterval else "daily"; - defaultText = mkDefaultText "'daily'"; + inherit (defaultAndText "renewInterval" "daily") default defaultText; description = '' Systemd calendar expression when to check for renewal. See systemd.time @@ -451,13 +459,12 @@ let }; enableDebugLogs = mkEnableOption "debug logging for this certificate" // { - default = if inheritDefaults then defaults.enableDebugLogs else true; + inherit (defaultAndText "enableDebugLogs" true) default defaultText; }; webroot = mkOption { type = types.nullOr types.str; - default = if inheritDefaults then defaults.webroot else null; - defaultText = mkDefaultText "null"; + inherit (defaultAndText "webroot" null) default defaultText; example = "/var/lib/acme/acme-challenge"; description = '' Where the webroot of the HTTP vhost is located. @@ -470,8 +477,7 @@ let server = mkOption { type = types.nullOr types.str; - default = if inheritDefaults then defaults.server else null; - defaultText = mkDefaultText "null"; + inherit (defaultAndText "server" null) default defaultText; description = '' ACME Directory Resource URI. Defaults to Let's Encrypt's production endpoint, @@ -481,8 +487,7 @@ let email = mkOption { type = types.str; - default = if inheritDefaults then defaults.email else null; - defaultText = mkDefaultText "null"; + inherit (defaultAndText "email" null) default defaultText; description = '' Email address for account creation and correspondence from the CA. It is recommended to use the same email for all certs to avoid account @@ -492,15 +497,13 @@ let group = mkOption { type = types.str; - default = if inheritDefaults then defaults.group else "acme"; - defaultText = mkDefaultText "'acme'"; + inherit (defaultAndText "group" "acme") default defaultText; description = "Group running the ACME client."; }; reloadServices = mkOption { type = types.listOf types.str; - default = if inheritDefaults then defaults.reloadServices else []; - defaultText = mkDefaultText "[]"; + inherit (defaultAndText "reloadServices" []) default defaultText; description = '' The list of systemd services to call systemctl try-reload-or-restart on. @@ -509,8 +512,7 @@ let postRun = mkOption { type = types.lines; - default = if inheritDefaults then defaults.postRun else ""; - defaultText = mkDefaultText "''"; + inherit (defaultAndText "postRun" "") default defaultText; example = "cp full.pem backup.pem"; description = '' Commands to run after new certificates go live. Note that @@ -522,8 +524,7 @@ let keyType = mkOption { type = types.str; - default = if inheritDefaults then defaults.keyType else "ec256"; - defaultText = mkDefaultText "'ec256'"; + inherit (defaultAndText "keyType" "ec256") default defaultText; description = '' Key type to use for private keys. For an up to date list of supported values check the --key-type option @@ -533,8 +534,7 @@ let dnsProvider = mkOption { type = types.nullOr types.str; - default = if inheritDefaults then defaults.dnsProvider else null; - defaultText = mkDefaultText "null"; + inherit (defaultAndText "dnsProvider" null) default defaultText; example = "route53"; description = '' DNS Challenge provider. For a list of supported providers, see the "code" @@ -544,8 +544,7 @@ let dnsResolver = mkOption { type = types.nullOr types.str; - default = if inheritDefaults then defaults.dnsResolver else null; - defaultText = mkDefaultText "null"; + inherit (defaultAndText "dnsResolver" null) default defaultText; example = "1.1.1.1:53"; description = '' Set the resolver to use for performing recursive DNS queries. Supported: @@ -556,8 +555,7 @@ let credentialsFile = mkOption { type = types.path; - default = if inheritDefaults then defaults.credentialsFile else null; - defaultText = mkDefaultText "null"; + inherit (defaultAndText "credentialsFile" null) default defaultText; description = '' Path to an EnvironmentFile for the cert's service containing any required and optional environment variables for your selected dnsProvider. @@ -569,8 +567,7 @@ let dnsPropagationCheck = mkOption { type = types.bool; - default = if inheritDefaults then defaults.dnsPropagationCheck else true; - defaultText = mkDefaultText "true"; + inherit (defaultAndText "dnsPropagationCheck" true) default defaultText; description = '' Toggles lego DNS propagation check, which is used alongside DNS-01 challenge to ensure the DNS entries required are available. @@ -579,8 +576,7 @@ let ocspMustStaple = mkOption { type = types.bool; - default = if inheritDefaults then defaults.ocspMustStaple else false; - defaultText = mkDefaultText "false"; + inherit (defaultAndText "ocspMustStaple" false) default defaultText; description = '' Turns on the OCSP Must-Staple TLS extension. Make sure you know what you're doing! See: @@ -593,8 +589,7 @@ let extraLegoFlags = mkOption { type = types.listOf types.str; - default = if inheritDefaults then defaults.extraLegoFlags else []; - defaultText = mkDefaultText "[]"; + inherit (defaultAndText "extraLegoFlags" []) default defaultText; description = '' Additional global flags to pass to all lego commands. ''; @@ -602,8 +597,7 @@ let extraLegoRenewFlags = mkOption { type = types.listOf types.str; - default = if inheritDefaults then defaults.extraLegoRenewFlags else []; - defaultText = mkDefaultText "[]"; + inherit (defaultAndText "extraLegoRenewFlags" []) default defaultText; description = '' Additional flags to pass to lego renew. ''; @@ -611,25 +605,16 @@ let extraLegoRunFlags = mkOption { type = types.listOf types.str; - default = if inheritDefaults then defaults.extraLegoRunFlags else []; - defaultText = mkDefaultText "[]"; + inherit (defaultAndText "extraLegoRunFlags" []) default defaultText; description = '' Additional flags to pass to lego run. ''; }; }; + }; certOpts = { name, config, ... }: { - options = (inheritableOpts { - inherit (cfg) defaults; - # During doc generation, name = "" and doesn't really - # exist as a cert. As such, handle undfined certs. - inheritDefaults = (lib.attrByPath - [name] - { inheritDefaults = false; } - cfg.certs - ).inheritDefaults; - }) // { + options = { # user option has been removed user = mkOption { visible = false; @@ -737,7 +722,7 @@ in { }; defaults = mkOption { - type = types.submodule { options = inheritableOpts {}; }; + type = types.submodule (inheritableModule true); description = '' Default values inheritable by all configured certs. You can use this to define options shared by all your certs. These defaults @@ -748,7 +733,7 @@ in { certs = mkOption { default = { }; - type = with types; attrsOf (submodule certOpts); + type = with types; attrsOf (submodule [ (inheritableModule false) certOpts ]); description = '' Attribute set of certificates to get signed and renewed. Creates acme-''${cert}.{service,timer} systemd units for From 65f1b8c6ae2f2cf6a13d77b98b42eba31eef0424 Mon Sep 17 00:00:00 2001 From: Lucas Savva Date: Sat, 18 Dec 2021 14:52:32 +0000 Subject: [PATCH 63/87] nixos/acme: Add test for lego's built-in web server In the process I also found that the CapabilityBoundingSet was restricting the service from listening on port 80, and the AmbientCapabilities was ineffective. Fixed appropriately. --- nixos/modules/security/acme.nix | 2 +- nixos/tests/acme.nix | 45 +++++++++++++++++++++++---------- 2 files changed, 32 insertions(+), 15 deletions(-) diff --git a/nixos/modules/security/acme.nix b/nixos/modules/security/acme.nix index 2b3a86f96fc7..e244989d6408 100644 --- a/nixos/modules/security/acme.nix +++ b/nixos/modules/security/acme.nix @@ -324,7 +324,7 @@ let fi ''); } // optionalAttrs (data.listenHTTP != null && toInt (elemAt (splitString ":" data.listenHTTP) 1) < 1024) { - AmbientCapabilities = "CAP_NET_BIND_SERVICE"; + CapabilityBoundingSet = [ "CAP_NET_BIND_SERVICE" ]; }; # Working directory will be /tmp diff --git a/nixos/tests/acme.nix b/nixos/tests/acme.nix index a4ed8fa67bfe..4af2303ce832 100644 --- a/nixos/tests/acme.nix +++ b/nixos/tests/acme.nix @@ -203,7 +203,7 @@ in { webserverBasicConfig { security.acme.certs."a.example.test".ocspMustStaple = true; - services.nginx.virtualHosts."a.example.com" = { + services.nginx.virtualHosts."a.example.test" = { extraConfig = '' ssl_stapling on; ssl_stapling_verify on; @@ -224,7 +224,7 @@ in { script = "${pkgs.python3}/bin/python -m http.server"; }; - services.nginx.virtualHosts."slow.example.com" = { + services.nginx.virtualHosts."slow.example.test" = { forceSSL = true; enableACME = true; locations."/".proxyPass = "http://localhost:8000"; @@ -232,10 +232,24 @@ in { } ]; - use-root.configuration = { ... }: lib.mkMerge [ + # Test lego internal server (listenHTTP option) + # Also tests useRoot option + lego-server.configuration = { ... }: lib.mkMerge [ webserverBasicConfig { security.acme.useRoot = true; + security.acme.certs."lego.example.test" = { + listenHTTP = ":80"; + group = "nginx"; + }; + services.nginx.virtualHosts."a.example.test" = { + onlySSL = true; + forceSSL = lib.mkForce false; + }; + services.nginx.virtualHosts."lego.example.test" = { + useACMEHost = "lego.example.test"; + onlySSL = true; + }; } ]; @@ -402,7 +416,7 @@ in { # Perform general tests first switch_to(webserver, "general") - with subtest("Can request certificate with HTTPS-01 challenge"): + with subtest("Can request certificate with HTTP-01 challenge"): webserver.wait_for_unit("acme-finished-a.example.test.target") check_fullchain(webserver, "a.example.test") check_issuer(webserver, "a.example.test", "pebble") @@ -449,19 +463,22 @@ in { webserver.wait_for_unit("acme-finished-a.example.test.target") check_stapling(client, "a.example.test") - with subtest("Can request certificate with HTTPS-01 when nginx startup is delayed"): + with subtest("Can request certificate with HTTP-01 using lego's internal web server"): + switch_to(webserver, "lego-server") + webserver.wait_for_unit("acme-finished-lego.example.test.target") + webserver.wait_for_unit("nginx.service") + webserver.succeed("echo HENLO && systemctl cat nginx.service") + webserver.succeed("test \"$(stat -c '%U' /var/lib/acme/* | uniq)\" = \"root\"") + check_connection(client, "a.example.test") + check_connection(client, "lego.example.test") + + with subtest("Can request certificate with HTTP-01 when nginx startup is delayed"): webserver.execute("systemctl stop nginx") switch_to(webserver, "slow-startup") - webserver.wait_for_unit("acme-finished-slow.example.com.target") - check_issuer(webserver, "slow.example.com", "pebble") + webserver.wait_for_unit("acme-finished-slow.example.test.target") + check_issuer(webserver, "slow.example.test", "pebble") webserver.wait_for_unit("nginx.service") - check_connection(client, "slow.example.com") - - with subtest("Can set useRoot to true and still use certs normally"): - switch_to(webserver, "use-root") - webserver.wait_for_unit("nginx.service") - webserver.succeed("test \"$(stat -c '%U' /var/lib/acme/* | uniq)\" = \"root\"") - check_connection(client, "a.example.com") + check_connection(client, "slow.example.test") domains = ["http", "dns", "wildcard"] for server, logsrc in [ From 02c725db8508f1305eb44214f3e914a721a496ff Mon Sep 17 00:00:00 2001 From: cirno-999 Date: Sun, 26 Dec 2021 14:13:29 +0100 Subject: [PATCH 64/87] maintainers: add cirno-999 --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 4b33d3d10ef3..222448833df6 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -2134,6 +2134,12 @@ githubId = 3956062; name = "Simon Lackerbauer"; }; + cirno-999 = { + email = "reverene@protonmail.com"; + github = "cirno-999"; + githubId = 73712874; + name = "cirno-999"; + }; citadelcore = { email = "alex@arctarus.co.uk"; github = "citadelcore"; From 46cd06eb9d2763c0b7adaa362e2d03a945b2645f Mon Sep 17 00:00:00 2001 From: Lucas Savva Date: Sun, 26 Dec 2021 21:12:33 +0000 Subject: [PATCH 65/87] nixos/acme: Add test for caddy This test is technically broken since reloading caddy does not seem to load new certs. This needs to be fixed in caddy. --- nixos/tests/acme.nix | 81 ++++++++++++++++++++++++++++++++++++-------- 1 file changed, 66 insertions(+), 15 deletions(-) diff --git a/nixos/tests/acme.nix b/nixos/tests/acme.nix index 4af2303ce832..0dd7743c52b6 100644 --- a/nixos/tests/acme.nix +++ b/nixos/tests/acme.nix @@ -234,27 +234,60 @@ in { # Test lego internal server (listenHTTP option) # Also tests useRoot option - lego-server.configuration = { ... }: lib.mkMerge [ - webserverBasicConfig + lego-server.configuration = { ... }: { + security.acme.useRoot = true; + security.acme.certs."lego.example.test" = { + listenHTTP = ":80"; + group = "nginx"; + }; + services.nginx.enable = true; + services.nginx.virtualHosts."lego.example.test" = { + useACMEHost = "lego.example.test"; + onlySSL = true; + }; + }; + + # Test compatiblity with Caddy + # It only supports useACMEHost, hence not using mkServerConfigs + } // (let + baseCaddyConfig = { nodes, config, ... }: { + security.acme = { + defaults = (dnsConfig nodes) // { + group = config.services.caddy.group; + }; + # One manual wildcard cert + certs."example.test" = { + domain = "*.example.test"; + }; + }; + + services.caddy = { + enable = true; + virtualHosts."a.exmaple.test" = { + useACMEHost = "example.test"; + extraConfig = '' + root * ${documentRoot} + ''; + }; + }; + }; + in { + caddy.configuration = baseCaddyConfig; + + # Test that the server reloads when only the acme configuration is changed. + "caddy-change-acme-conf".configuration = { nodes, config, ... }: lib.mkMerge [ + (baseCaddyConfig { + inherit nodes config; + }) { - security.acme.useRoot = true; - security.acme.certs."lego.example.test" = { - listenHTTP = ":80"; - group = "nginx"; - }; - services.nginx.virtualHosts."a.example.test" = { - onlySSL = true; - forceSSL = lib.mkForce false; - }; - services.nginx.virtualHosts."lego.example.test" = { - useACMEHost = "lego.example.test"; - onlySSL = true; + security.acme.certs."example.test" = { + keyType = "ec384"; }; } ]; # Test compatibility with Nginx - } // (mkServerConfigs { + }) // (mkServerConfigs { server = "nginx"; group = "nginx"; vhostBaseData = vhostBase; @@ -480,6 +513,24 @@ in { webserver.wait_for_unit("nginx.service") check_connection(client, "slow.example.test") + with subtest("Works with caddy"): + switch_to(webserver, "caddy") + webserver.wait_for_unit("acme-finished-example.test.target") + webserver.wait_for_unit("caddy.service") + # FIXME reloading caddy is not sufficient to load new certs. + # Restart it manually until this is fixed. + webserver.succeed("systemctl restart caddy.service") + check_connection(client, "a.example.test") + + with subtest("security.acme changes reflect on caddy"): + switch_to(webserver, "caddy-change-acme-conf") + webserver.wait_for_unit("acme-finished-example.test.target") + webserver.wait_for_unit("caddy.service") + # FIXME reloading caddy is not sufficient to load new certs. + # Restart it manually until this is fixed. + webserver.succeed("systemctl restart caddy.service") + check_connection_key_bits(client, "a.example.test", "384") + domains = ["http", "dns", "wildcard"] for server, logsrc in [ ("nginx", "journalctl -n 30 -u nginx.service"), From c033826f3960ee40cb33f09ec3d1c414ab582939 Mon Sep 17 00:00:00 2001 From: cirno-999 Date: Sun, 26 Dec 2021 18:16:02 +0100 Subject: [PATCH 66/87] torrent7z: init at 1.3 torrent7z: apply suggestions from code review Co-authored-by: legendofmiracles <30902201+legendofmiracles@users.noreply.github.com> --- pkgs/tools/archivers/torrent7z/default.nix | 53 ++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 55 insertions(+) create mode 100644 pkgs/tools/archivers/torrent7z/default.nix diff --git a/pkgs/tools/archivers/torrent7z/default.nix b/pkgs/tools/archivers/torrent7z/default.nix new file mode 100644 index 000000000000..74eaa4409f75 --- /dev/null +++ b/pkgs/tools/archivers/torrent7z/default.nix @@ -0,0 +1,53 @@ +{ lib, stdenv, fetchFromGitHub, fetchpatch, ncurses }: + +stdenv.mkDerivation rec { + pname = "torrent7z"; + version = "1.3"; + + src = fetchFromGitHub { + owner = "BubblesInTheTub"; + repo = pname; + rev = version; + sha256 = "Y2tr0+z9uij4Ifi6FfWRN24BwcDXUZKVLkLtKUiVjU4="; + }; + + patches = [ + (fetchpatch { + name = "fix-gcc10-compilation.patch"; # Fix compilation on GCC 10. This patch is included on the latest commit + url = + "https://github.com/paulyc/torrent7z/commit/5958f42a364c430b3ed4ac68911bbbea1f967fc4.patch"; + sha256 = "vJOv1sG9XwTvvxQiWew0H5ALoUb9wIAouzTsTvKHuPI="; + }) + ]; + + buildInputs = [ ncurses ]; + + hardeningDisable = [ "format" ]; + + postPatch = '' + # Remove non-free RAR source code + # (see DOC/License.txt, https://fedoraproject.org/wiki/Licensing:Unrar) + rm -r linux_src/p7zip_4.65/CPP/7zip/Compress/Rar* + find . -name makefile'*' -exec sed -i '/Rar/d' {} + + ''; + + preConfigure = '' + mkdir linux_src/p7zip_4.65/bin + cd linux_src/p7zip_4.65/CPP/7zip/Bundles/Alone + ''; + + installPhase = '' + mkdir -p $out/bin + cp ../../../../bin/t7z $out/bin + ''; + + meta = with lib; { + homepage = "https://github.com/BubblesInTheTub/torrent7z"; + description = "A fork of torrent7z, viz a derivative of 7zip that produces invariant .7z archives for torrenting"; + platforms = platforms.linux; + maintainers = with maintainers; [ cirno-999 ]; + mainProgram = "t7z"; + # RAR code is under non-free UnRAR license, but we remove it + license = licenses.gpl3Only; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index aac5a40e98a9..1d95444c9d4c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10264,6 +10264,8 @@ with pkgs; touchegg = callPackage ../tools/inputmethods/touchegg { }; + torrent7z = callPackage ../tools/archivers/torrent7z { }; + torsocks = callPackage ../tools/security/tor/torsocks.nix { }; toss = callPackage ../tools/networking/toss { }; From e36c946fb3516e95264e047386bd29b5908dae3c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 27 Dec 2021 03:16:56 +0000 Subject: [PATCH 67/87] crowdin-cli: 3.7.2 -> 3.7.4 --- pkgs/tools/text/crowdin-cli/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/text/crowdin-cli/default.nix b/pkgs/tools/text/crowdin-cli/default.nix index 8151d1ece950..9b2726443f40 100644 --- a/pkgs/tools/text/crowdin-cli/default.nix +++ b/pkgs/tools/text/crowdin-cli/default.nix @@ -14,11 +14,11 @@ stdenv.mkDerivation rec { pname = "crowdin-cli"; - version = "3.7.2"; + version = "3.7.4"; src = fetchurl { url = "https://github.com/crowdin/${pname}/releases/download/${version}/${pname}.zip"; - sha256 = "sha256-7p+Di4GcztwzybJTcFXlun15NFYbJN8eGmJ0y9bify0="; + sha256 = "sha256-zsd95dkKzuhqtWFwc84tjZ05MnzE25UvfF459gfp+lA="; }; nativeBuildInputs = [ installShellFiles makeWrapper unzip ]; From bc0c1f4597490e88b273f018b2c921a2e6744224 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Mon, 27 Dec 2021 14:57:27 +0100 Subject: [PATCH 68/87] haskellPackages.sdp*: disable library profiling All reverse dependencies of sdp also need their profiling disabled in order to successfully compile. --- .../development/haskell-modules/configuration-common.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 244ce7935670..46f03cb5468b 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -2239,5 +2239,14 @@ self: super: { # https://github.com/andreymulik/sdp/issues/3 sdp = disableLibraryProfiling super.sdp; + sdp-binary = disableLibraryProfiling super.sdp-binary; + sdp-deepseq = disableLibraryProfiling super.sdp-deepseq; + sdp-hashable = disableLibraryProfiling super.sdp-hashable; + sdp-io = disableLibraryProfiling super.sdp-io; + sdp-quickcheck = disableLibraryProfiling super.sdp-quickcheck; + sdp4bytestring = disableLibraryProfiling super.sdp4bytestring; + sdp4text = disableLibraryProfiling super.sdp4text; + sdp4unordered = disableLibraryProfiling super.sdp4unordered; + sdp4vector = disableLibraryProfiling super.sdp4vector; } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super From 96b5f414fe6e7fe539c37af2bf0b74b6ae038e86 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Mon, 27 Dec 2021 14:58:16 +0100 Subject: [PATCH 69/87] haskellPackages.morpheus-graphql: disable ordering dependent test --- pkgs/development/haskell-modules/configuration-common.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 46f03cb5468b..e8ca545e6cd5 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -2198,6 +2198,11 @@ self: super: { "-p" "!/field.unexpected-value/&&!/field.missing-field/&&!/argument.unexpected-value/&&!/argument.missing-field/" ] ++ drv.testFlags or []; }) super.morpheus-graphql-core; + morpheus-graphql = overrideCabal (drv: { + testFlags = [ + "-p" "!/Test Rendering/" + ] ++ drv.testFlags or []; + }) super.morpheus-graphql; # https://github.com/SupercedeTech/dropbox-client/issues/1 dropbox = overrideCabal (drv: { testFlags = [ From f3a3ddb87b1c6f9a36e0bef25e4e84560ed596fe Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Mon, 27 Dec 2021 14:58:34 +0100 Subject: [PATCH 70/87] haskellPackages.http-api-data-qq: disable network dependent test --- pkgs/development/haskell-modules/configuration-nix.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix index 239382fe83ad..86a60fd9097a 100644 --- a/pkgs/development/haskell-modules/configuration-nix.nix +++ b/pkgs/development/haskell-modules/configuration-nix.nix @@ -1041,4 +1041,11 @@ self: super: builtins.intersectAttrs super { }) ] ++ (drv.patches or []); }) super.graphviz; + + # Test case tries to contact the network + http-api-data-qq = overrideCabal (drv: { + testFlags = [ + "-p" "!/Can be used with http-client/" + ] ++ drv.testFlags or []; + }) super.http-api-data-qq; } From 7ef0a91a4d6d1e7162857eecc7faea5fa65095fd Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Mon, 27 Dec 2021 15:31:36 +0100 Subject: [PATCH 71/87] haskellPackages: mark builds failing on hydra as broken This commit has been generated by maintainers/scripts/haskell/mark-broken.sh --- .../configuration-hackage2nix/broken.yaml | 15 +++++++ .../transitive-broken.yaml | 5 +++ .../haskell-modules/hackage-packages.nix | 39 ++++++++++++++++++- 3 files changed, 57 insertions(+), 2 deletions(-) diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml index e873fff6dd97..1a6eaaccd2ff 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml @@ -222,6 +222,7 @@ broken-packages: - assumpta - ast-monad - astrds + - astro - async-combinators - async-dejafu - asynchronous-exceptions @@ -1557,6 +1558,7 @@ broken-packages: - fused-effects-mwc-random - fused-effects-resumable - fusion + - futhark-manifest - futun - future - fuzzy-time-gen @@ -1675,6 +1677,7 @@ broken-packages: - gi-gtksheet - gi-handy - gi-json + - gingersnap - ginsu - gipeda - giphy-api @@ -3187,6 +3190,7 @@ broken-packages: - monad-ste - monad-stlike-io - monad-task + - monad-throw-exit - monad-timing - monad-tx - monad-unify @@ -3499,6 +3503,8 @@ broken-packages: - opentelemetry-http-client - opentheory-char - opentok + - opentracing-jaeger + - opentracing-zipkin-v1 - opentype - OpenVGRaw - Operads @@ -3540,6 +3546,7 @@ broken-packages: - overloaded - overloaded-records - overture + - owoify-hs - pack - package-description-remote - package-o-tron @@ -3570,6 +3577,7 @@ broken-packages: - pandoc-pyplot - pandoc-unlit - pandoc-utils + - pandora-io - pang-a-lambda - pangraph - pan-os-syslog @@ -3596,6 +3604,7 @@ broken-packages: - pareto - parochial - Parry + - parse - parseargs - parsec2 - parsec3 @@ -3791,6 +3800,9 @@ broken-packages: - polydata-core - polynom - polynomial + - polysemy-check + - polysemy-http + - polysemy-process - polysemy-zoo - polytypeable - pomaps @@ -3841,6 +3853,7 @@ broken-packages: - PPrinter - pqc - praglude + - prairie - preamble - precis - precursor @@ -4368,6 +4381,7 @@ broken-packages: - servant-static-th - servant-streaming - servant-to-elm + - servant-tracing - servant-yaml - servant-zeppelin - server-generic @@ -4780,6 +4794,7 @@ broken-packages: - syb-with-class-instances-text - sydtest-aeson - sydtest-hedis + - sydtest-hspec - sydtest-mongo - sydtest-persistent-postgresql - sydtest-rabbitmq diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml index 185aca726adc..7e374de267c5 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml @@ -929,6 +929,7 @@ dont-distribute-packages: - delta - delta-h - dep-t-advice + - dep-t-dynamic - dependent-literals-plugin - dependent-state - dephd @@ -1086,6 +1087,7 @@ dont-distribute-packages: - falling-turnip - fallingblocks - family-tree + - fast-bech32 - fastirc - fault-tree - fbrnch @@ -1513,6 +1515,7 @@ dont-distribute-packages: - hedgehog-gen-json - hedis-pile - heist-aeson + - helic - helics - helics-wai - helium @@ -2249,6 +2252,7 @@ dont-distribute-packages: - numhask-range - numhask-test - nymphaea + - oath - obd - obdd - oberon0 @@ -3070,6 +3074,7 @@ dont-distribute-packages: - typed-encoding-encoding - typed-spreadsheet - typed-streams + - typelet - typelevel - typelevel-rewrite-rules - typescript-docs diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix index 93fad526d33d..f19fd450bafa 100644 --- a/pkgs/development/haskell-modules/hackage-packages.nix +++ b/pkgs/development/haskell-modules/hackage-packages.nix @@ -34656,6 +34656,8 @@ self: { ]; description = "Amateur astronomical computations"; license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + broken = true; }) {}; "astview" = callPackage @@ -74650,6 +74652,7 @@ self: { ]; description = "A dynamic environment for dependency injection"; license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; }) {}; "dependency" = callPackage @@ -91802,6 +91805,7 @@ self: { ]; description = "Fast implementation of the Bech32 encoding format"; license = lib.licenses.mpl20; + hydraPlatforms = lib.platforms.none; }) {}; "fast-builder" = callPackage @@ -100714,6 +100718,8 @@ self: { ]; description = "Definition and serialisation instances for Futhark manifests"; license = lib.licenses.isc; + hydraPlatforms = lib.platforms.none; + broken = true; }) {}; "futhark-server" = callPackage @@ -109249,6 +109255,8 @@ self: { ]; description = "Consistent and safe JSON APIs with snap-core and (by default) postgresql-simple"; license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + broken = true; }) {}; "ginsu" = callPackage @@ -130552,6 +130560,7 @@ self: { ]; description = "Clipboard Manager"; license = "BSD-2-Clause-Patent"; + hydraPlatforms = lib.platforms.none; }) {}; "helics" = callPackage @@ -185823,6 +185832,8 @@ self: { testHaskellDepends = [ base hspec QuickCheck typed-process ]; description = "Functions to exit the program anywhere in MonadThrow monads"; license = lib.licenses.asl20; + hydraPlatforms = lib.platforms.none; + broken = true; }) {}; "monad-time" = callPackage @@ -198161,6 +198172,7 @@ self: { benchmarkHaskellDepends = [ async base streamly tasty-bench ]; description = "Composable concurrent computation done right"; license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; }) {}; "oauth10a" = callPackage @@ -200798,6 +200810,8 @@ self: { ]; description = "Jaeger backend for OpenTracing"; license = lib.licenses.asl20; + hydraPlatforms = lib.platforms.none; + broken = true; }) {}; "opentracing-wai" = callPackage @@ -200839,6 +200853,8 @@ self: { ]; description = "Zipkin V1 backend for OpenTracing"; license = lib.licenses.asl20; + hydraPlatforms = lib.platforms.none; + broken = true; }) {}; "opentracing-zipkin-v2" = callPackage @@ -202580,6 +202596,8 @@ self: { ]; description = "Turn any English text into nonsensical babyspeaks"; license = lib.licenses.mit; + hydraPlatforms = lib.platforms.none; + broken = true; }) {}; "pack" = callPackage @@ -204015,6 +204033,8 @@ self: { libraryHaskellDepends = [ ghc-prim pandora ]; description = "..."; license = lib.licenses.mit; + hydraPlatforms = lib.platforms.none; + broken = true; }) {}; "pang-a-lambda" = callPackage @@ -205164,6 +205184,8 @@ self: { testHaskellDepends = [ base tasty tasty-hunit ]; description = "Simple way to parse strings with Python-like format strings"; license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + broken = true; }) {}; "parse-dimacs" = callPackage @@ -214203,6 +214225,8 @@ self: { testToolDepends = [ hspec-discover ]; description = "QuickCheck for Polysemy"; license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + broken = true; }) {}; "polysemy-chronos" = callPackage @@ -214240,7 +214264,6 @@ self: { ]; description = "Polysemy Effects for Concurrency"; license = "BSD-2-Clause-Patent"; - hydraPlatforms = lib.platforms.none; }) {}; "polysemy-conc_0_5_1_1" = callPackage @@ -214263,6 +214286,7 @@ self: { ]; description = "Polysemy Effects for Concurrency"; license = "BSD-2-Clause-Patent"; + hydraPlatforms = lib.platforms.none; }) {}; "polysemy-extra" = callPackage @@ -214339,6 +214363,8 @@ self: { ]; description = "Polysemy Effects for HTTP clients"; license = "BSD-2-Clause-Patent"; + hydraPlatforms = lib.platforms.none; + broken = true; }) {}; "polysemy-keyed-state" = callPackage @@ -214628,6 +214654,8 @@ self: { ]; description = "Polysemy Effects for System Processes"; license = "BSD-2-Clause-Patent"; + hydraPlatforms = lib.platforms.none; + broken = true; }) {}; "polysemy-readline" = callPackage @@ -214681,7 +214709,6 @@ self: { ]; description = "Polysemy error tracking"; license = "BSD-2-Clause-Patent"; - hydraPlatforms = lib.platforms.none; }) {}; "polysemy-resume_0_2_0_0" = callPackage @@ -214699,6 +214726,7 @@ self: { ]; description = "Polysemy error tracking"; license = "BSD-2-Clause-Patent"; + hydraPlatforms = lib.platforms.none; }) {}; "polysemy-several" = callPackage @@ -217498,6 +217526,8 @@ self: { testHaskellDepends = [ aeson base ]; description = "A first class record field library"; license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + broken = true; }) {}; "preamble" = callPackage @@ -245117,6 +245147,8 @@ self: { transformers ]; license = lib.licenses.mit; + hydraPlatforms = lib.platforms.none; + broken = true; }) {}; "servant-util" = callPackage @@ -264128,6 +264160,8 @@ self: { testToolDepends = [ sydtest-discover ]; description = "An Hspec companion library for sydtest"; license = "unknown"; + hydraPlatforms = lib.platforms.none; + broken = true; }) {}; "sydtest-mongo" = callPackage @@ -281349,6 +281383,7 @@ self: { testHaskellDepends = [ base tasty tasty-hunit tasty-quickcheck ]; description = "Plugin to faciliate type-level let"; license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; }) {}; "typelevel" = callPackage From f427295e61b3d878b2dd9d30cb8d24df312ae9da Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Tue, 21 Dec 2021 12:58:21 +0100 Subject: [PATCH 72/87] python3Packages.pypandoc: 1.7.0 -> 1.7.2 --- pkgs/development/python-modules/pypandoc/default.nix | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/pkgs/development/python-modules/pypandoc/default.nix b/pkgs/development/python-modules/pypandoc/default.nix index a5d0ea849bb3..cd7a322a2aef 100644 --- a/pkgs/development/python-modules/pypandoc/default.nix +++ b/pkgs/development/python-modules/pypandoc/default.nix @@ -1,16 +1,14 @@ -{ lib, substituteAll, buildPythonPackage, fetchFromGitHub +{ lib, substituteAll, buildPythonPackage, fetchPypi , pandoc, texlive }: buildPythonPackage rec { pname = "pypandoc"; - version = "1.7.0"; + version = "1.7.2"; - src = fetchFromGitHub { - owner = "NicklasTegner"; - repo = pname; - rev = "v${version}"; - sha256 = "00r88qcvc9jpi8jvd6rpizz9gm33aq8hc3mf8lrarrjiq2fsxmk9"; + src = fetchPypi { + inherit pname version; + sha256 = "1wk8jxnysb7sa55zhxx5brylv00ivamqbk1b4lbzi58ziij08p03"; }; patches = [ From 0b55af0decfba13e484c859e57dfd102841529f0 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 26 Dec 2021 12:19:46 +0000 Subject: [PATCH 73/87] openai: 0.11.4 -> 0.11.5 --- pkgs/development/python-modules/openai/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/openai/default.nix b/pkgs/development/python-modules/openai/default.nix index 61b2e9ba7509..542112126b10 100644 --- a/pkgs/development/python-modules/openai/default.nix +++ b/pkgs/development/python-modules/openai/default.nix @@ -17,7 +17,7 @@ buildPythonPackage rec { pname = "openai"; - version = "0.11.4"; + version = "0.11.5"; disabled = pythonOlder "3.7.1"; @@ -26,7 +26,7 @@ buildPythonPackage rec { owner = "openai"; repo = "openai-python"; rev = "v${version}"; - sha256 = "O2O4+GkyMyAxJqMNgiyPKoSXeJk0HGAst02QV6c9mJs="; + sha256 = "sha256-6eL3/vDWyIOVjRQo4OO3OgyUG3t8dKPtxzMMTxPCglM="; }; propagatedBuildInputs = [ From 1d3a229018b3ec2adbc57401bce16ea32f696660 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 26 Dec 2021 11:43:04 +0000 Subject: [PATCH 74/87] python38Packages.jupyterlab: 3.2.4 -> 3.2.5 --- pkgs/development/python-modules/jupyterlab/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/jupyterlab/default.nix b/pkgs/development/python-modules/jupyterlab/default.nix index ab2900a2f88b..76b160eb97c3 100644 --- a/pkgs/development/python-modules/jupyterlab/default.nix +++ b/pkgs/development/python-modules/jupyterlab/default.nix @@ -10,12 +10,12 @@ buildPythonPackage rec { pname = "jupyterlab"; - version = "3.2.4"; + version = "3.2.5"; disabled = pythonOlder "3.5"; src = fetchPypi { inherit pname version; - sha256 = "f692e0d95338d60f72dde660f16f3955a087775c59ec541ddb25952e3f97e9b1"; + sha256 = "31b28f473b0f5826d2020583973c385526f0559b5b26efac6b8035ac1562874a"; }; nativeBuildInputs = [ jupyter-packaging ]; From e5daa25d079dae2af4d819e1259e6c98b0b5efcd Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sun, 26 Dec 2021 22:52:50 +0100 Subject: [PATCH 75/87] python3Packages.flux-led: 0.27.13 -> 0.27.17 --- pkgs/development/python-modules/flux-led/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/flux-led/default.nix b/pkgs/development/python-modules/flux-led/default.nix index f3c458d8d7c3..15a2651ff5c0 100644 --- a/pkgs/development/python-modules/flux-led/default.nix +++ b/pkgs/development/python-modules/flux-led/default.nix @@ -8,7 +8,7 @@ buildPythonPackage rec { pname = "flux-led"; - version = "0.27.13"; + version = "0.27.17"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -17,7 +17,7 @@ buildPythonPackage rec { owner = "Danielhiversen"; repo = "flux_led"; rev = version; - sha256 = "sha256-lOfEEMHuhTfti7NYeZpXc+jeYQMJd/EnvT1oHByaCbw="; + sha256 = "sha256-cb1QbGeOudxLOxU4aEVWYOzCrZ+xFl8F5qHVJdOhPlg="; }; propagatedBuildInputs = [ From fdae0317e1045dcc9a82d8f6f16261203d702b7b Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 27 Dec 2021 04:26:54 +0000 Subject: [PATCH 76/87] python38Packages.pycarwings2: 2.12 -> 2.13 --- pkgs/development/python-modules/pycarwings2/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/pycarwings2/default.nix b/pkgs/development/python-modules/pycarwings2/default.nix index 164a5b3f562f..c4f23f74d614 100644 --- a/pkgs/development/python-modules/pycarwings2/default.nix +++ b/pkgs/development/python-modules/pycarwings2/default.nix @@ -11,7 +11,7 @@ buildPythonPackage rec { pname = "pycarwings2"; - version = "2.12"; + version = "2.13"; format = "setuptools"; disabled = pythonOlder "3.5"; @@ -20,8 +20,8 @@ buildPythonPackage rec { owner = "filcole"; repo = pname; # release not tagged: https://github.com/filcole/pycarwings2/issues/33 - rev = "0dc9e7e74cb119614c72c7f955801a366f303c56"; - sha256 = "sha256-3lyAgLuaNrCDvRT2yYkgaDiLPKW9Hbg05cQlMIBUs6o="; + rev = "v${version}"; + sha256 = "04k1la7wix6sp668nqpwdhd3057b2bzcz7h2b9a57cxlifl8pjxf"; }; propagatedBuildInputs = [ From 51335e586b0e46c1d069c9d57ecd7b4fe981c960 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 26 Dec 2021 07:03:15 +0000 Subject: [PATCH 77/87] deep-translator: 1.5.5 -> 1.6.0 --- pkgs/development/python-modules/deep-translator/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/deep-translator/default.nix b/pkgs/development/python-modules/deep-translator/default.nix index a91c02a2bf3e..ae7bf52e1fe7 100644 --- a/pkgs/development/python-modules/deep-translator/default.nix +++ b/pkgs/development/python-modules/deep-translator/default.nix @@ -2,11 +2,11 @@ buildPythonPackage rec { pname = "deep-translator"; - version = "1.5.5"; + version = "1.6.0"; src = fetchPypi { inherit pname version; - sha256 = "sha256-XARhzRsquvKcdhPcooGIEmhGN7QJOCubcvOrZB0nhxU="; + sha256 = "sha256-B/SnLSaCRVhQvSU2hmdKPswM2N73nHAzQfVNBMgCofI="; }; propagatedBuildInputs = [ From 8cd81712b4100f400dd8801c2a83aeaf726a4b95 Mon Sep 17 00:00:00 2001 From: Nelson Jeppesen <50854675+NelsonJeppesen@users.noreply.github.com> Date: Sun, 26 Dec 2021 12:03:41 -0800 Subject: [PATCH 78/87] vim-plugins.kanagawa-nvim at init --- pkgs/misc/vim-plugins/generated.nix | 12 ++++++++++++ pkgs/misc/vim-plugins/vim-plugin-names | 1 + 2 files changed, 13 insertions(+) diff --git a/pkgs/misc/vim-plugins/generated.nix b/pkgs/misc/vim-plugins/generated.nix index 4060e2928f70..c217fddec5f3 100644 --- a/pkgs/misc/vim-plugins/generated.nix +++ b/pkgs/misc/vim-plugins/generated.nix @@ -2818,6 +2818,18 @@ final: prev: meta.homepage = "https://github.com/JuliaEditorSupport/julia-vim/"; }; + kanagawa-nvim = buildVimPluginFrom2Nix { + pname = "kanagawa.nvim"; + version = "2021-12-25"; + src = fetchFromGitHub { + owner = "rebelot"; + repo = "kanagawa.nvim"; + rev = "10bccb5e8e8530725c8059df2e6852fb01842d1c"; + sha256 = "15jji03qvpbyfk1bpc9b31rbkklfzdnhmnld4cr5ydjmz1fd5fzb"; + }; + meta.homepage = "https://github.com/rebelot/kanagawa.nvim/"; + }; + kommentary = buildVimPluginFrom2Nix { pname = "kommentary"; version = "2021-12-03"; diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names index 24ac08d76391..e83504f9e162 100644 --- a/pkgs/misc/vim-plugins/vim-plugin-names +++ b/pkgs/misc/vim-plugins/vim-plugin-names @@ -642,6 +642,7 @@ rbong/vim-flog rcarriga/nvim-dap-ui rcarriga/nvim-notify rcarriga/vim-ultest +rebelot/kanagawa.nvim rhysd/clever-f.vim rhysd/committia.vim rhysd/conflict-marker.vim From fa272718c8ad7486672e1542dd5da495c5e6f3a1 Mon Sep 17 00:00:00 2001 From: Michael Stone Date: Sun, 26 Dec 2021 17:25:13 -0500 Subject: [PATCH 79/87] vscode-extensions.matklad.rust-analyzer: fix #152285 on aarch64-darwin The rust-analyzer vscode extension depends on vsce which depends on keytar which needs the AppKit and Security frameworks on Darwin. --- pkgs/misc/vscode-extensions/rust-analyzer/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/misc/vscode-extensions/rust-analyzer/default.nix b/pkgs/misc/vscode-extensions/rust-analyzer/default.nix index 0580fc7d56ae..fa08acb84c60 100644 --- a/pkgs/misc/vscode-extensions/rust-analyzer/default.nix +++ b/pkgs/misc/vscode-extensions/rust-analyzer/default.nix @@ -8,6 +8,8 @@ , esbuild , pkg-config , libsecret +, stdenv +, darwin , setDefaultServerPath ? true }: @@ -40,6 +42,9 @@ let jq moreutils esbuild # Required by `keytar`, which is a dependency of `vsce`. pkg-config libsecret + ] ++ lib.optionals stdenv.isDarwin [ + darwin.apple_sdk.frameworks.AppKit + darwin.apple_sdk.frameworks.Security ]; # Follows https://github.com/rust-analyzer/rust-analyzer/blob/41949748a6123fd6061eb984a47f4fe780525e63/xtask/src/dist.rs#L39-L65 From f3cf953bbab8f9fd1e809dd6bf9439b683c36f4e Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 26 Dec 2021 13:52:36 +0000 Subject: [PATCH 80/87] python38Packages.django_compressor: 2.4.1 -> 3.1 --- pkgs/development/python-modules/django_compressor/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/django_compressor/default.nix b/pkgs/development/python-modules/django_compressor/default.nix index 61a32e2561a3..a8204eab5fad 100644 --- a/pkgs/development/python-modules/django_compressor/default.nix +++ b/pkgs/development/python-modules/django_compressor/default.nix @@ -3,11 +3,11 @@ buildPythonPackage rec { pname = "django_compressor"; - version = "2.4.1"; + version = "3.1"; src = fetchPypi { inherit pname version; - sha256 = "3358077605c146fdcca5f9eaffb50aa5dbe15f238f8854679115ebf31c0415e0"; + sha256 = "c4a87bf65f9a534cfaf1c321a000a229c24e50c6d62ba6ab089482db42e819d9"; }; postPatch = '' substituteInPlace setup.py \ From 9a98b3a7094019637fd6eaf451a310f3614b72e4 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 26 Dec 2021 16:48:17 +0000 Subject: [PATCH 81/87] python38Packages.phonenumbers: 8.12.39 -> 8.12.40 --- pkgs/development/python-modules/phonenumbers/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/phonenumbers/default.nix b/pkgs/development/python-modules/phonenumbers/default.nix index 43a684e10dfa..5a8cb430ae6f 100644 --- a/pkgs/development/python-modules/phonenumbers/default.nix +++ b/pkgs/development/python-modules/phonenumbers/default.nix @@ -6,12 +6,12 @@ buildPythonPackage rec { pname = "phonenumbers"; - version = "8.12.39"; + version = "8.12.40"; format = "setuptools"; src = fetchPypi { inherit pname version; - sha256 = "0f7745e1f108654db347d885e814cbb5f225b8c5f5ce336024b193c79291ddaa"; + sha256 = "00f2955a456b458f9b6ab0d24329049c3e7358c44dfc1979fe4908ced40f1eb8"; }; checkInputs = [ From cb8f864487100698fd9ab50d618f6c3d5425b117 Mon Sep 17 00:00:00 2001 From: Ben Darwin Date: Thu, 23 Dec 2021 13:51:50 -0500 Subject: [PATCH 82/87] python3Packages.nitransforms: init at 21.0.0 --- .../python-modules/nitransforms/default.nix | 45 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 47 insertions(+) create mode 100644 pkgs/development/python-modules/nitransforms/default.nix diff --git a/pkgs/development/python-modules/nitransforms/default.nix b/pkgs/development/python-modules/nitransforms/default.nix new file mode 100644 index 000000000000..79fd93d32123 --- /dev/null +++ b/pkgs/development/python-modules/nitransforms/default.nix @@ -0,0 +1,45 @@ +{ lib +, buildPythonPackage +, fetchPypi +, pythonOlder +, h5py +, nibabel +, numpy +, setuptools-scm +, toml +}: + +buildPythonPackage rec { + pname = "nitransforms"; + version = "21.0.0"; + disabled = pythonOlder "3.7"; + + src = fetchPypi { + inherit pname version; + sha256 = "njJqHqXVxldyGfmdM8GmgKdgIT4kMYLzcM5+ayR2EDo="; + }; + + buildInputs = [ setuptools-scm toml ]; + propagatedBuildInputs = [ h5py nibabel numpy ]; + + doCheck = false; + # relies on data repo (https://github.com/nipreps-data/nitransforms-tests); + # probably too heavy + pythonImportsCheck = [ + "nitransforms" + "nitransforms.base" + "nitransforms.io" + "nitransforms.io.base" + "nitransforms.linear" + "nitransforms.manip" + "nitransforms.nonlinear" + "nitransforms.patched" + ]; + + meta = with lib; { + homepage = "https://nitransforms.readthedocs.io"; + description = "Geometric transformations for images and surfaces"; + license = licenses.mit; + maintainers = with maintainers; [ bcdarwin ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index d35623b12c50..1faf86289bc3 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -5296,6 +5296,8 @@ in { nitpick = callPackage ../applications/version-management/nitpick { }; + nitransforms = callPackage ../development/python-modules/nitransforms { }; + nix-kernel = callPackage ../development/python-modules/nix-kernel { inherit (pkgs) nix; }; From aa450b6094d54995223e6885acf603b07f648985 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 26 Dec 2021 15:31:58 +0000 Subject: [PATCH 83/87] python38Packages.panel: 0.12.5 -> 0.12.6 --- pkgs/development/python-modules/panel/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/panel/default.nix b/pkgs/development/python-modules/panel/default.nix index cfb95b23f41c..8673c637eda6 100644 --- a/pkgs/development/python-modules/panel/default.nix +++ b/pkgs/development/python-modules/panel/default.nix @@ -17,7 +17,7 @@ let in buildPythonPackage rec { pname = "panel"; - version = "0.12.5"; + version = "0.12.6"; # Don't forget to also update the node packages # 1. retrieve the package.json file @@ -25,7 +25,7 @@ buildPythonPackage rec { # 3. node2nix src = fetchPypi { inherit pname version; - sha256 = "351481f2a2176359b28effa64c9d9fce487d6758514109cab96f9ed84787ae99"; + sha256 = "97e158e8eb941f88d71929407f9455c903b5e18d89969db8ce8af66036f46b53"; }; # Since 0.10.0 panel attempts to fetch from the web. From 0a38568ff75771a852c98aeefe7115ed5582d7eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Mon, 27 Dec 2021 17:23:28 +0000 Subject: [PATCH 84/87] perl5Packages.DBIxClass: fix build (#152207) --- pkgs/top-level/perl-packages.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix index e2d6c24d60c7..83207868d1dc 100644 --- a/pkgs/top-level/perl-packages.nix +++ b/pkgs/top-level/perl-packages.nix @@ -6312,6 +6312,13 @@ let url = "mirror://cpan/authors/id/R/RI/RIBASUSHI/DBIx-Class-0.082842.tar.gz"; sha256 = "1rh7idjjbibc1zmiaaarask434lh0lx7f2xyfwmy37k9fa0xcpmh"; }; + patches = [ + # https://github.com/Perl5/DBIx-Class/pull/141 + (fetchpatch { + url = "https://github.com/Perl5/DBIx-Class/commit/fb896701d23fa4da622b5b1b2afbbba3da2dd8f3.patch"; + sha256 = "sha256-MSbV9UfHu90NCdC5IFwuy/vpSDw4atfellYh7Ydvkm4="; + }) + ]; buildInputs = [ DBDSQLite TestDeep TestException TestWarn ]; propagatedBuildInputs = [ ClassAccessorGrouped ClassC3Componentised ConfigAny ContextPreserve DBI DataDumperConcise DataPage DevelGlobalDestruction ModuleFind PathClass SQLAbstractClassic ScopeGuard SubName namespaceclean ]; meta = { From dcbd0c941b0963e98bb63ac2d155978eee295c21 Mon Sep 17 00:00:00 2001 From: Philipp Date: Fri, 1 Oct 2021 10:20:47 +0200 Subject: [PATCH 85/87] mopidy-jellyfin: init at 1.0.2 Signed-off-by: Philipp --- pkgs/applications/audio/mopidy/default.nix | 2 ++ pkgs/applications/audio/mopidy/jellyfin.nix | 25 +++++++++++++++++++++ pkgs/top-level/all-packages.nix | 1 + 3 files changed, 28 insertions(+) create mode 100644 pkgs/applications/audio/mopidy/jellyfin.nix diff --git a/pkgs/applications/audio/mopidy/default.nix b/pkgs/applications/audio/mopidy/default.nix index 971b226bc81d..d1b43bc4489b 100644 --- a/pkgs/applications/audio/mopidy/default.nix +++ b/pkgs/applications/audio/mopidy/default.nix @@ -9,6 +9,8 @@ lib.makeScope newScope (self: with self; { mopidy-iris = callPackage ./iris.nix { }; + mopidy-jellyfin = callPackage ./jellyfin.nix { }; + mopidy-local = callPackage ./local.nix { }; mopidy-moped = callPackage ./moped.nix { }; diff --git a/pkgs/applications/audio/mopidy/jellyfin.nix b/pkgs/applications/audio/mopidy/jellyfin.nix new file mode 100644 index 000000000000..7790380f9b76 --- /dev/null +++ b/pkgs/applications/audio/mopidy/jellyfin.nix @@ -0,0 +1,25 @@ +{ lib, python3Packages, mopidy }: + +python3Packages.buildPythonApplication rec { + pname = "mopidy-jellyfin"; + version = "1.0.2"; + + src = python3Packages.fetchPypi { + inherit version; + pname = "Mopidy-Jellyfin"; + sha256 = "0j7v5xx3c401r5dw1sqm1n2263chjga1d3ml85rg79hjhhhacy75"; + }; + + propagatedBuildInputs = [ mopidy python3Packages.unidecode python3Packages.websocket-client ]; + + # no tests implemented + doCheck = false; + pythonImportsCheck = [ "mopidy_jellyfin" ]; + + meta = with lib; { + homepage = "https://github.com/jellyfin/mopidy-jellyfin"; + description = "Mopidy extension for playing audio files from Jellyfin"; + license = licenses.asl20; + maintainers = [ maintainers.pstn ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index bcf00c88b886..df2cfac8b717 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -27154,6 +27154,7 @@ with pkgs; inherit (mopidyPackages) mopidy mopidy-iris + mopidy-jellyfin mopidy-local mopidy-moped mopidy-mopify From 4d6b67b9685bc2232e08ecd65a1633cbdedef4f5 Mon Sep 17 00:00:00 2001 From: Martino Fontana Date: Tue, 23 Nov 2021 22:16:56 +0100 Subject: [PATCH 86/87] citra: add build options --- pkgs/misc/emulators/citra/default.nix | 66 +++++++++++++++------------ 1 file changed, 38 insertions(+), 28 deletions(-) diff --git a/pkgs/misc/emulators/citra/default.nix b/pkgs/misc/emulators/citra/default.nix index c1d4724cee9b..92d0f5b1d364 100644 --- a/pkgs/misc/emulators/citra/default.nix +++ b/pkgs/misc/emulators/citra/default.nix @@ -3,21 +3,23 @@ , fetchFromGitHub , cmake , wrapQtAppsHook -, SDL2 -, qtbase -, qtmultimedia , boost17x -, libpulseaudio , pkg-config , libusb1 , zstd , libressl -, alsa-lib -, rapidjson -, aacHleDecoding ? true -, fdk_aac -, ffmpeg-full +, enableSdl2 ? true, SDL2 +, enableQt ? true, qtbase, qtmultimedia +, enableQtTranslation ? enableQt, qttools +, enableWebService ? true +, enableCubeb ? true, libpulseaudio +, enableFfmpegAudioDecoder ? true +, enableFfmpegVideoDumper ? true +, ffmpeg +, useDiscordRichPresence ? true, rapidjson +, enableFdk ? false, fdk_aac }: +assert lib.assertMsg (!enableFfmpegAudioDecoder || !enableFdk) "Can't enable both enableFfmpegAudioDecoder and enableFdk"; stdenv.mkDerivation { pname = "citra"; @@ -31,36 +33,43 @@ stdenv.mkDerivation { fetchSubmodules = true; }; - nativeBuildInputs = [ cmake wrapQtAppsHook pkg-config ]; + nativeBuildInputs = [ + cmake + pkg-config + ] + ++ lib.optionals enableQt [ wrapQtAppsHook ]; + buildInputs = [ - SDL2 - qtbase - qtmultimedia - libpulseaudio boost17x libusb1 - alsa-lib - rapidjson # for discord-rpc - ] ++ lib.optional aacHleDecoding [ fdk_aac ffmpeg-full ]; + ] + ++ lib.optionals enableSdl2 [ SDL2 ] + ++ lib.optionals enableQt [ qtbase qtmultimedia ] + ++ lib.optionals enableQtTranslation [ qttools ] + ++ lib.optionals enableCubeb [ libpulseaudio ] + ++ lib.optionals (enableFfmpegAudioDecoder || enableFfmpegVideoDumper) [ ffmpeg ] + ++ lib.optionals useDiscordRichPresence [ rapidjson ] + ++ lib.optionals enableFdk [ fdk_aac ]; cmakeFlags = [ "-DUSE_SYSTEM_BOOST=ON" - "-DUSE_DISCORD_PRESENCE=ON" - ] ++ lib.optionals aacHleDecoding [ - "-DENABLE_FFMPEG_AUDIO_DECODER=ON" - "-DCITRA_USE_BUNDLED_FFMPEG=OFF" - ]; + ] + ++ lib.optionals (!enableSdl2) [ "-DENABLE_SDL2=OFF" ] + ++ lib.optionals (!enableQt) [ "-DENABLE_QT=OFF" ] + ++ lib.optionals enableQtTranslation [ "-DENABLE_QT_TRANSLATION=ON" ] + ++ lib.optionals (!enableWebService) [ "-DENABLE_WEB_SERVICE=OFF" ] + ++ lib.optionals (!enableCubeb) [ "-DENABLE_CUBEB=OFF" ] + ++ lib.optionals enableFfmpegAudioDecoder [ "-DENABLE_FFMPEG_AUDIO_DECODER=ON"] + ++ lib.optionals enableFfmpegVideoDumper [ "-DENABLE_FFMPEG_VIDEO_DUMPER=ON" ] + ++ lib.optionals useDiscordRichPresence [ "-DUSE_DISCORD_PRESENCE=ON" ] + ++ lib.optionals enableFdk [ "-DENABLE_FDK=ON" ]; postPatch = '' - # we already know the submodules are present + # We already know the submodules are present substituteInPlace CMakeLists.txt \ --replace "check_submodules_present()" "" - # Trick configure system. - sed -n 's,^ *path = \(.*\),\1,p' .gitmodules | while read path; do - mkdir "$path/.git" - done - + # Devendoring rm -rf externals/zstd externals/libressl cp -r ${zstd.src} externals/zstd tar xf ${libressl.src} -C externals/ @@ -69,6 +78,7 @@ stdenv.mkDerivation { ''; # Todo: cubeb audio backend (the default one) doesn't work on the SDL interface. + # This seems to be a problem with libpulseaudio, other applications have similar problems (e.g Duckstation). # Note that the two interfaces have two separate configuration files. meta = with lib; { From 9027a59f7a8b776377c2020bd1444fc9c6ac3627 Mon Sep 17 00:00:00 2001 From: Nikolay Amiantov Date: Tue, 21 Dec 2021 21:24:00 +0300 Subject: [PATCH 87/87] influxdb2 service: don't use dynamic user It breaks something inside of influxdb2, which results in flurry of errors like these: > ts=2021-12-21T18:19:35.513910Z lvl=info msg="Write failed" log_id=0YZYwvV0000 service=storage-engine service=write shard=50 error="[shard 50] unlinkat ./L1-00000055.tsi: read-only file system" I believe this is somehow caused by a mount namespace that systemd creates for the service, but I didn't investigate this deeper. --- nixos/modules/services/databases/influxdb2.nix | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/nixos/modules/services/databases/influxdb2.nix b/nixos/modules/services/databases/influxdb2.nix index a7aa5245d760..340c515bbb43 100644 --- a/nixos/modules/services/databases/influxdb2.nix +++ b/nixos/modules/services/databases/influxdb2.nix @@ -1,5 +1,7 @@ { config, lib, pkgs, ... }: + with lib; + let format = pkgs.formats.json { }; cfg = config.services.influxdb2; @@ -9,12 +11,14 @@ in options = { services.influxdb2 = { enable = mkEnableOption "the influxdb2 server"; + package = mkOption { default = pkgs.influxdb2-server; defaultText = literalExpression "pkgs.influxdb2"; description = "influxdb2 derivation to use."; type = types.package; }; + settings = mkOption { default = { }; description = ''configuration options for influxdb2, see for details.''; @@ -28,18 +32,20 @@ in assertion = !(builtins.hasAttr "bolt-path" cfg.settings) && !(builtins.hasAttr "engine-path" cfg.settings); message = "services.influxdb2.config: bolt-path and engine-path should not be set as they are managed by systemd"; }]; + systemd.services.influxdb2 = { description = "InfluxDB is an open-source, distributed, time series database"; documentation = [ "https://docs.influxdata.com/influxdb/" ]; wantedBy = [ "multi-user.target" ]; after = [ "network.target" ]; environment = { - INFLUXD_CONFIG_PATH = "${configFile}"; + INFLUXD_CONFIG_PATH = configFile; }; serviceConfig = { ExecStart = "${cfg.package}/bin/influxd --bolt-path \${STATE_DIRECTORY}/influxd.bolt --engine-path \${STATE_DIRECTORY}/engine"; StateDirectory = "influxdb2"; - DynamicUser = true; + User = "influxdb2"; + Group = "influxdb2"; CapabilityBoundingSet = ""; SystemCallFilter = "@system-service"; LimitNOFILE = 65536; @@ -47,6 +53,13 @@ in Restart = "on-failure"; }; }; + + users.extraUsers.influxdb2 = { + isSystemUser = true; + group = "influxdb2"; + }; + + users.extraGroups.influxdb2 = {}; }; meta.maintainers = with lib.maintainers; [ nickcao ];