From b88bf9ea14181691acff051a69ddafdedfcc544f Mon Sep 17 00:00:00 2001 From: Bryan Richter Date: Thu, 12 Feb 2026 12:16:03 +0200 Subject: [PATCH] Update lts and amazonka, jailbreak barrier --- flake.lock | 6 +- nix/barrier.nix | 24 ++++++++ nix/gen-packages.sh | 6 +- nix/stackage-server.nix | 112 +++++++++++++++++----------------- package.nix | 7 ++- package.yaml | 1 + src/Stackage/Database/Cron.hs | 1 + stack.yaml | 8 +-- stack.yaml.lock | 20 +++--- 9 files changed, 108 insertions(+), 77 deletions(-) create mode 100644 nix/barrier.nix diff --git a/flake.lock b/flake.lock index 16d4c44..5e3f45e 100644 --- a/flake.lock +++ b/flake.lock @@ -20,11 +20,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1738136902, - "narHash": "sha256-pUvLijVGARw4u793APze3j6mU1Zwdtz7hGkGGkD87qw=", + "lastModified": 1770843696, + "narHash": "sha256-LovWTGDwXhkfCOmbgLVA10bvsi/P8eDDpRudgk68HA8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "9a5db3142ce450045840cc8d832b13b8a2018e0c", + "rev": "2343bbb58f99267223bc2aac4fc9ea301a155a16", "type": "github" }, "original": { diff --git a/nix/barrier.nix b/nix/barrier.nix new file mode 100644 index 0000000..08d25f2 --- /dev/null +++ b/nix/barrier.nix @@ -0,0 +1,24 @@ +# Generated by ./gen-packages.sh +{ mkDerivation, base, blaze-svg, bytestring, lens-family-core, lib +, tasty, tasty-golden, template-haskell, text, unordered-containers +}: +mkDerivation { + pname = "barrier"; + version = "0.1.1"; + sha256 = "6395da01eea1984c7bcc85c624b1b5dfbe0b6b764adeed7b04c9fa4d8de91ed9"; + revision = "2"; + editedCabalFile = "0b0va208hc9blny6pbzk2a7mc834xkafaza07a5liaccniach3m3"; + isLibrary = true; + isExecutable = true; + enableSeparateDataOutput = true; + libraryHaskellDepends = [ + base blaze-svg bytestring template-haskell text + unordered-containers + ]; + testHaskellDepends = [ + base bytestring lens-family-core tasty tasty-golden + ]; + homepage = "https://github.com/philopon/barrier"; + description = "Shields.io style badge generator"; + license = lib.licenses.mit; +} diff --git a/nix/gen-packages.sh b/nix/gen-packages.sh index 3a77491..e56edd9 100755 --- a/nix/gen-packages.sh +++ b/nix/gen-packages.sh @@ -23,8 +23,10 @@ cd "$(dirname "$0")" gen stackage-server --hpack ../. # Has my R2 patch, which is still unreleased on 2025-01-24 -#echo "...please ignore useless error below..." -2>/dev/null gen amazonka-core https://github.com/brendanhay/amazonka/archive/85e0289f8dc23c54b00f7f1a09845be7e032a1eb.zip --subpath lib/amazonka-core +amazonka_version=a7d699be1076e2aad05a1930ca3937ffea954ad8 + +2>/dev/null gen amazonka-core "https://github.com/brendanhay/amazonka/archive/${amazonka_version}.zip" --subpath lib/amazonka-core +gen amazonka-s3 "https://github.com/brendanhay/amazonka/archive/${amazonka_version}.zip" --subpath lib/services/amazonka-s3 # Pinned to 5.0.18.4 to avoid accidentally regenerating hoogle files. See # warning in stack.yaml! diff --git a/nix/stackage-server.nix b/nix/stackage-server.nix index 860f420..372903d 100644 --- a/nix/stackage-server.nix +++ b/nix/stackage-server.nix @@ -1,21 +1,21 @@ # Generated by ./gen-packages.sh { mkDerivation, aeson, amazonka, amazonka-core, amazonka-s3 -, auto-update, barrier, base, blaze-html, blaze-markup, bytestring -, Cabal, casa-client, classy-prelude, classy-prelude-conduit -, classy-prelude-yesod, cmark-gfm, conduit, conduit-extra -, containers, deepseq, directory, email-validate, esqueleto -, exceptions, fast-logger, file-embed, filepath, formatting, gauge -, ghc-prim, haddock-library, hashable, hoogle, hpack, html-conduit -, http-client, http-conduit, http-types, lens, lib, monad-logger -, mono-traversable, mtl, optparse-applicative, pantry, path -, path-io, path-pieces, persistent, persistent-postgresql -, persistent-sqlite, persistent-template, process, resource-pool -, resourcet, retry, rio, shakespeare, streaming-commons -, tar-conduit, template-haskell, text, these, transformers -, unliftio, unordered-containers, wai, wai-extra, wai-logger, warp -, xml-conduit, xml-types, yaml, yesod, yesod-auth, yesod-core -, yesod-form, yesod-gitrepo, yesod-gitrev, yesod-newsfeed -, yesod-sitemap, yesod-static, zlib +, attoparsec-aeson, auto-update, barrier, base, blaze-html +, blaze-markup, bytestring, Cabal, casa-client, classy-prelude +, classy-prelude-conduit, classy-prelude-yesod, cmark-gfm, conduit +, conduit-extra, containers, deepseq, directory, email-validate +, esqueleto, exceptions, fast-logger, file-embed, filepath +, formatting, gauge, ghc-prim, haddock-library, hashable, hoogle +, hpack, html-conduit, http-client, http-conduit, http-types, lens +, lib, monad-logger, mono-traversable, mtl, optparse-applicative +, pantry, path, path-io, path-pieces, persistent +, persistent-postgresql, persistent-sqlite, persistent-template +, process, resource-pool, resourcet, retry, rio, shakespeare +, streaming-commons, tar-conduit, template-haskell, text, these +, transformers, unliftio, unordered-containers, wai, wai-extra +, wai-logger, warp, xml-conduit, xml-types, yaml, yesod, yesod-auth +, yesod-core, yesod-form, yesod-gitrepo, yesod-gitrev +, yesod-newsfeed, yesod-sitemap, yesod-static, zlib }: mkDerivation { pname = "stackage-server"; @@ -24,31 +24,14 @@ mkDerivation { isLibrary = true; isExecutable = true; libraryHaskellDepends = [ - aeson amazonka amazonka-core amazonka-s3 auto-update barrier base - blaze-html blaze-markup bytestring Cabal classy-prelude - classy-prelude-conduit classy-prelude-yesod cmark-gfm conduit - conduit-extra containers deepseq directory email-validate esqueleto - exceptions fast-logger file-embed filepath formatting ghc-prim - haddock-library hashable hoogle html-conduit http-client - http-conduit http-types lens monad-logger mono-traversable mtl - pantry path path-pieces persistent persistent-postgresql - persistent-sqlite persistent-template process resource-pool - resourcet retry rio shakespeare streaming-commons tar-conduit - template-haskell text these transformers unliftio - unordered-containers wai wai-extra wai-logger warp xml-conduit - xml-types yaml yesod yesod-auth yesod-core yesod-form yesod-gitrepo - yesod-gitrev yesod-newsfeed yesod-sitemap yesod-static zlib - ]; - libraryToolDepends = [ hpack ]; - executableHaskellDepends = [ - aeson amazonka amazonka-core amazonka-s3 auto-update barrier base - blaze-html blaze-markup bytestring Cabal classy-prelude - classy-prelude-conduit classy-prelude-yesod cmark-gfm conduit - conduit-extra containers deepseq directory email-validate esqueleto - exceptions fast-logger file-embed filepath formatting ghc-prim - haddock-library hashable hoogle html-conduit http-client - http-conduit http-types lens monad-logger mono-traversable mtl - optparse-applicative pantry path path-pieces persistent + aeson amazonka amazonka-core amazonka-s3 attoparsec-aeson + auto-update barrier base blaze-html blaze-markup bytestring Cabal + classy-prelude classy-prelude-conduit classy-prelude-yesod + cmark-gfm conduit conduit-extra containers deepseq directory + email-validate esqueleto exceptions fast-logger file-embed filepath + formatting ghc-prim haddock-library hashable hoogle html-conduit + http-client http-conduit http-types lens monad-logger + mono-traversable mtl pantry path path-pieces persistent persistent-postgresql persistent-sqlite persistent-template process resource-pool resourcet retry rio shakespeare streaming-commons tar-conduit template-haskell text these transformers unliftio @@ -56,21 +39,40 @@ mkDerivation { xml-types yaml yesod yesod-auth yesod-core yesod-form yesod-gitrepo yesod-gitrev yesod-newsfeed yesod-sitemap yesod-static zlib ]; + libraryToolDepends = [ hpack ]; + executableHaskellDepends = [ + aeson amazonka amazonka-core amazonka-s3 attoparsec-aeson + auto-update barrier base blaze-html blaze-markup bytestring Cabal + classy-prelude classy-prelude-conduit classy-prelude-yesod + cmark-gfm conduit conduit-extra containers deepseq directory + email-validate esqueleto exceptions fast-logger file-embed filepath + formatting ghc-prim haddock-library hashable hoogle html-conduit + http-client http-conduit http-types lens monad-logger + mono-traversable mtl optparse-applicative pantry path path-pieces + persistent persistent-postgresql persistent-sqlite + persistent-template process resource-pool resourcet retry rio + shakespeare streaming-commons tar-conduit template-haskell text + these transformers unliftio unordered-containers wai wai-extra + wai-logger warp xml-conduit xml-types yaml yesod yesod-auth + yesod-core yesod-form yesod-gitrepo yesod-gitrev yesod-newsfeed + yesod-sitemap yesod-static zlib + ]; benchmarkHaskellDepends = [ - aeson amazonka amazonka-core amazonka-s3 auto-update barrier base - blaze-html blaze-markup bytestring Cabal casa-client classy-prelude - classy-prelude-conduit classy-prelude-yesod cmark-gfm conduit - conduit-extra containers deepseq directory email-validate esqueleto - exceptions fast-logger file-embed filepath formatting gauge - ghc-prim haddock-library hashable hoogle html-conduit http-client - http-conduit http-types lens monad-logger mono-traversable mtl - pantry path path-io path-pieces persistent persistent-postgresql - persistent-sqlite persistent-template process resource-pool - resourcet retry rio shakespeare streaming-commons tar-conduit - template-haskell text these transformers unliftio - unordered-containers wai wai-extra wai-logger warp xml-conduit - xml-types yaml yesod yesod-auth yesod-core yesod-form yesod-gitrepo - yesod-gitrev yesod-newsfeed yesod-sitemap yesod-static zlib + aeson amazonka amazonka-core amazonka-s3 attoparsec-aeson + auto-update barrier base blaze-html blaze-markup bytestring Cabal + casa-client classy-prelude classy-prelude-conduit + classy-prelude-yesod cmark-gfm conduit conduit-extra containers + deepseq directory email-validate esqueleto exceptions fast-logger + file-embed filepath formatting gauge ghc-prim haddock-library + hashable hoogle html-conduit http-client http-conduit http-types + lens monad-logger mono-traversable mtl pantry path path-io + path-pieces persistent persistent-postgresql persistent-sqlite + persistent-template process resource-pool resourcet retry rio + shakespeare streaming-commons tar-conduit template-haskell text + these transformers unliftio unordered-containers wai wai-extra + wai-logger warp xml-conduit xml-types yaml yesod yesod-auth + yesod-core yesod-form yesod-gitrepo yesod-gitrev yesod-newsfeed + yesod-sitemap yesod-static zlib ]; prePatch = "hpack"; license = lib.licenses.mit; diff --git a/package.nix b/package.nix index d00005d..ab7fbba 100644 --- a/package.nix +++ b/package.nix @@ -19,17 +19,18 @@ let }); # patched, see gen-package-nix.sh - amazonka-core = self.callPackage nix/amazonka-core.nix { }; + amazonka-core = hlib.doJailbreak (self.callPackage nix/amazonka-core.nix { }); + amazonka-s3 = hlib.doJailbreak (self.callPackage nix/amazonka-s3.nix { }); # We have this old dependency for unexplored reasons. # Tests fail from attempted network access. pantry = pkgs.lib.pipe (self.callPackage nix/pantry.nix { }) [hlib.dontCheck hlib.doJailbreak]; # Changing this has operational impacts. - hoogle = self.callPackage nix/hoogle.nix { }; + hoogle = hlib.doJailbreak (self.callPackage nix/hoogle.nix { }); # Outdated breakage? (TODO: upstream) - barrier = hlib.markUnbroken super.barrier; + barrier = pkgs.lib.pipe super.barrier [hlib.doJailbreak hlib.markUnbroken]; # Tests fail from attempted network access (TODO: upstream) yesod-gitrev = hlib.markUnbroken (hlib.dontCheck super.yesod-gitrev); diff --git a/package.yaml b/package.yaml index 8c919dc..ca901ca 100644 --- a/package.yaml +++ b/package.yaml @@ -11,6 +11,7 @@ flags: default: false dependencies: +- attoparsec-aeson - base - yesod - aeson diff --git a/src/Stackage/Database/Cron.hs b/src/Stackage/Database/Cron.hs index cf549dc..95f90e3 100644 --- a/src/Stackage/Database/Cron.hs +++ b/src/Stackage/Database/Cron.hs @@ -19,6 +19,7 @@ import Conduit import Control.DeepSeq import Control.SingleRun import Control.Lens ((?~)) +import Control.Exception.Lens (trying) import qualified Data.ByteString.Char8 as BS8 import qualified Data.Conduit.Binary as CB import Data.Conduit.Tar (FileInfo(..), FileType(..), untar) diff --git a/stack.yaml b/stack.yaml index fff6c83..bbbf27b 100644 --- a/stack.yaml +++ b/stack.yaml @@ -1,8 +1,7 @@ # As this is built on NixOS stable, it has to stay on a GHC that exists on the # OS. -# I.e. changes here need to be synced with changes to -# https://github.com/haskellfoundation/hf-infrastructure -resolver: lts-22.43 +# I.e. changes here need to be synced with changes to flake.nix and package.nix. +resolver: lts-24.26 extra-deps: # WARNING: Changing the hoogle version causes stackage-server-cron to regenerate # Hoogle databases FOR EVERY SNAPSHOT, EVER. Usually, that's ok! But don't @@ -17,12 +16,13 @@ extra-deps: # waste. (4) Stackage's Hoogle search will be unavailable until the new # databases have been generated. - hoogle-5.0.18.4@sha256:1372458e97dff541fcda099236af7936bf93ee6b8c5d15695ee6d9426dff5eed,3171 +# FIXME: This version of pantry differs from upstream in a way that has not been explored yet. - git: https://github.com/commercialhaskell/pantry.git commit: 5df643cc1deb561d9c52a9cb6f593aba2bc4c08e # This amazonka includes the unreleased patch to support Cloudflare, which kinda # has a bug. See https://github.com/brendanhay/amazonka/issues/975 for details. - github: brendanhay/amazonka - commit: '85e0289f8dc23c54b00f7f1a09845be7e032a1eb' + commit: 'a7d699be1076e2aad05a1930ca3937ffea954ad8' subdirs: [lib/amazonka-core] allow-newer: true diff --git a/stack.yaml.lock b/stack.yaml.lock index 115b33f..3ed9745 100644 --- a/stack.yaml.lock +++ b/stack.yaml.lock @@ -1,7 +1,7 @@ # This file was autogenerated by Stack. # You should not edit this file by hand. # For more information, please see the documentation at: -# https://docs.haskellstack.org/en/stable/lock_files +# https://docs.haskellstack.org/en/stable/topics/lock_files packages: - completed: @@ -25,19 +25,19 @@ packages: - completed: name: amazonka-core pantry-tree: - sha256: 236fcc48e8d6cdedc31800c40c853aa6cb8c640ae3d93686a584d513679a5181 + sha256: 37df1b595ccff0c36abdf11635320dc7feb481872197cd2984c7b9176c3bd9d4 size: 3222 - sha256: 39038d8934ad8ba164e3d21aa227a80a12fbdd4cf371a6311ea8cc95a6265385 - size: 34733906 + sha256: 1ee25eb283c2d95fe89c5f559abe0049f6cd0a3b36d768947b85d64ca74d87e0 + size: 34859547 subdir: lib/amazonka-core - url: https://github.com/brendanhay/amazonka/archive/85e0289f8dc23c54b00f7f1a09845be7e032a1eb.tar.gz + url: https://github.com/brendanhay/amazonka/archive/a7d699be1076e2aad05a1930ca3937ffea954ad8.tar.gz version: '2.0' original: subdir: lib/amazonka-core - url: https://github.com/brendanhay/amazonka/archive/85e0289f8dc23c54b00f7f1a09845be7e032a1eb.tar.gz + url: https://github.com/brendanhay/amazonka/archive/a7d699be1076e2aad05a1930ca3937ffea954ad8.tar.gz snapshots: - completed: - sha256: 08bd13ce621b41a8f5e51456b38d5b46d7783ce114a50ab604d6bbab0d002146 - size: 720271 - url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/22/43.yaml - original: lts-22.43 + sha256: d90eb1418667a225998b173817300e5ae2e1500ed03c0a9457cc2a0e78a0122a + size: 726337 + url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/24/26.yaml + original: lts-24.26