Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] [WIP] [ci skip] GHC 9.2.5
@ 2022-12-27  9:58 slotThe
  2022-12-28  6:35 ` [PR PATCH] [Updated] " slotThe
                   ` (12 more replies)
  0 siblings, 13 replies; 14+ messages in thread
From: slotThe @ 2022-12-27  9:58 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1281 bytes --]

There is a new pull request by slotThe against master on the void-packages repository

https://github.com/slotThe/void-packages ghc-9.2.5
https://github.com/void-linux/void-packages/pull/41316

[WIP] [ci skip] GHC 9.2.5
Took much longer than anticipated, since I wanted to wait for stack 2.9.3 first.  Here's to hoping that opening a PR will motivate me to work more rapidly :)

### Core packages to bump

- [x] ghc
- [ ] ghc-bin
    - [ ] x86_64 (hash)
    - [ ] i686 (hash)
    - [ ] x86_64-musl
    Cc. @q66
    - [ ] ppc64le
    - [ ] ppc64le-musl
    - [ ] ppc64
    Cc. @ftrvxmtrx
    - [ ] aarch64
    - [ ] aarch64-musl
- [x] cabal-install
- [x] stack

#### Rebuild literally every single haskell package we have and see if anything's broken

- [ ] git-mediate
- [ ] kmonad
- [ ] cgrep
- [ ] debug-me
- [ ] hlint
- [ ] hoogle
- [ ] darcs
- [ ] shellcheck
- [ ] git-annex
- [ ] hledger
- [ ] pandoc
- [ ] xmobar
- [ ] haskell-language-server
- [ ] glirc

### Other things to do

- [ ] incorporate https://github.com/void-linux/void-packages/pull/27832 @astralchan
- [ ] incorporate https://github.com/void-linux/void-packages/pull/35624 @kwshi

A patch file from https://github.com/void-linux/void-packages/pull/41316.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-ghc-9.2.5-41316.patch --]
[-- Type: text/x-diff, Size: 42772 bytes --]

From 72eb2785d19f85f6719819475c9ae6076859e9e6 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Thu, 17 Nov 2022 12:47:46 +0100
Subject: [PATCH 1/3] ghc: update to 9.2.5

+ Adjust ppc64-be-elfv2.patch
  * The libraries/ghci/GHCi/InfoTable.hsc bit seems to have been
    merged, hence delete it.
  * Adjust for changes in fptools and configure.
  * Delete now out-of-date TOC.
---
 srcpkgs/ghc/patches/ppc64-be-elfv2.patch | 105 +++++------------------
 srcpkgs/ghc/template                     |   6 +-
 2 files changed, 23 insertions(+), 88 deletions(-)

diff --git a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
index df1a0bfe15ba..5fa356be700e 100644
--- a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
+++ b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
@@ -3,100 +3,36 @@ From: q66 <daniel@octaforge.org>
 Date: Thu, 28 Apr 2022 00:48:04 +0200
 Subject: [PATCH] fix up runtime for ppc64 BE ELFv2 + ensure it's used
 
----
- configure                         |  2 +-
- libraries/ghci/GHCi/InfoTable.hsc | 36 ++++++++++++-------------------
- m4/fptools.m4                     |  2 +-
- rts/AdjustorAsm.S                 |  2 +-
- rts/StgCRun.c                     |  4 ++--
- rts/StgCRunAsm.S                  |  2 +-
- rts/adjustor/NativeIA64.c         |  2 +-
- rts/adjustor/NativePowerPC.c      |  2 +-
- 8 files changed, 22 insertions(+), 30 deletions(-)
-
-diff --git a/configure b/configure
-index 8310e6f..eac1124 100755
 --- a/configure
 +++ b/configure
-@@ -10508,7 +10508,7 @@ printf "%s\n" "no" >&6; }
+@@ -10871,7 +10871,7 @@
              test -z "$2" || eval "$2=ArchPPC"
              ;;
          powerpc64)
--            test -z "$2" || eval "$2=\"ArchPPC_64 {ppc_64ABI = ELF_V1}\""
-+            test -z "$2" || eval "$2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
+-            test -z "$2" || eval "$2=\"ArchPPC_64 ELF_V1\""
++            test -z "$2" || eval "$2=\"ArchPPC_64 ELF_V2\""
              ;;
          powerpc64le)
-             test -z "$2" || eval "$2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
-diff --git a/libraries/ghci/GHCi/InfoTable.hsc b/libraries/ghci/GHCi/InfoTable.hsc
-index ad4eb4d..e4f1c0c 100644
---- a/libraries/ghci/GHCi/InfoTable.hsc
-+++ b/libraries/ghci/GHCi/InfoTable.hsc
-@@ -231,30 +231,22 @@ mkJumpToAddr' platform a = case platform of
-                 , fromIntegral w64
-                 , fromIntegral (w64 `shiftR` 32) ]
-     ArchPPC64 ->
--        -- We use the compiler's register r12 to read the function
--        -- descriptor and the linker's register r11 as a temporary
--        -- register to hold the function entry point.
--        -- In the medium code model the function descriptor
--        -- is located in the first two gigabytes, i.e. the address
--        -- of the function pointer is a non-negative 32 bit number.
--        -- 0x0EADBEEF stands for the address of the function pointer:
--        --    0:   3d 80 0e ad     lis     r12,0x0EAD
--        --    4:   61 8c be ef     ori     r12,r12,0xBEEF
--        --    8:   e9 6c 00 00     ld      r11,0(r12)
--        --    c:   e8 4c 00 08     ld      r2,8(r12)
--        --   10:   7d 69 03 a6     mtctr   r11
--        --   14:   e9 6c 00 10     ld      r11,16(r12)
--        --   18:   4e 80 04 20     bctr
--       let  w32 = fromIntegral (funPtrToInt a)
-+        -- The ABI requires r12 to point to the function's entry point.
-+        -- We use the medium code model where code resides in the first
-+        -- two gigabytes, so loading a non-negative32 bit address
-+        -- with lis followed by ori is fine.
-+        -- 0x0EADBEEF stands for the address:
-+        -- 3D800EAD lis r12,0x0EAD
-+        -- 618CBEEF ori r12,r12,0xBEEF
-+        -- 7D8903A6 mtctr r12
-+        -- 4E800420 bctr
-+
-+        let w32 = fromIntegral (funPtrToInt a)
-             hi16 x = (x `shiftR` 16) .&. 0xFFFF
-             lo16 x = x .&. 0xFFFF
--       in Right [ 0x3D800000 .|. hi16 w32,
--                  0x618C0000 .|. lo16 w32,
--                  0xE96C0000,
--                  0xE84C0008,
--                  0x7D6903A6,
--                  0xE96C0010,
--                  0x4E800420]
-+        in Right [ 0x3D800000 .|. hi16 w32,
-+                   0x618C0000 .|. lo16 w32,
-+                   0x7D8903A6, 0x4E800420 ]
- 
-     ArchPPC64LE ->
-         -- The ABI requires r12 to point to the function's entry point.
-diff --git a/m4/fptools.m4 b/m4/fptools.m4
-index 8c6c9b7..eb25c37 100644
---- a/m4/fptools.m4
-+++ b/m4/fptools.m4
-@@ -201,7 +201,7 @@ AC_DEFUN([FPTOOLS_SET_HASKELL_PLATFORM_VARS],
+             test -z "$2" || eval "$2=\"ArchPPC_64 ELF_V2\""
+--- a/m4/fptools_set_haskell_platform_vars.m4
++++ b/m4/fptools_set_haskell_platform_vars.m4
+@@ -15,7 +15,7 @@
              test -z "[$]2" || eval "[$]2=ArchPPC"
              ;;
          powerpc64)
--            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V1}\""
-+            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
+-            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 ELF_V1\""
++            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 ELF_V2\""
              ;;
          powerpc64le)
-             test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
+             test -z "[$]2" || eval "[$]2=\"ArchPPC_64 ELF_V2\""
 diff --git a/rts/AdjustorAsm.S b/rts/AdjustorAsm.S
 index 2795b83..63cfe91 100644
 --- a/rts/AdjustorAsm.S
 +++ b/rts/AdjustorAsm.S
 @@ -2,7 +2,7 @@
- 
+
  /* ******************************** PowerPC ******************************** */
- 
+
 -#if defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
 +#if defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
  #if !(defined(powerpc_HOST_ARCH) && defined(linux_HOST_OS))
@@ -109,21 +45,21 @@ index f43227a..927d44a 100644
 @@ -724,7 +724,7 @@ StgRunIsImplementedInAssembler(void)
     Everything is in assembler, so we don't have to deal with GCC...
     -------------------------------------------------------------------------- */
- 
+
 -#if defined(powerpc64_HOST_ARCH)
 +#if defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2)
  /* 64-bit PowerPC ELF ABI 1.9
   *
   * Stack frame organization (see Figure 3-17, ELF ABI 1.9, p 14)
 @@ -792,7 +792,7 @@ StgRunIsImplementedInAssembler(void)
- 
+
  #endif
- 
+
 -#if defined(powerpc64le_HOST_ARCH)
 +#if defined(powerpc64le_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF == 2))
  /* -----------------------------------------------------------------------------
     PowerPC 64 little endian architecture
- 
+
 diff --git a/rts/StgCRunAsm.S b/rts/StgCRunAsm.S
 index 60f1bf9..c6794d7 100644
 --- a/rts/StgCRunAsm.S
@@ -131,7 +67,7 @@ index 60f1bf9..c6794d7 100644
 @@ -5,7 +5,7 @@
   * then functions StgRun/StgReturn are implemented in file StgCRun.c */
  #if !defined(USE_MINIINTERPRETER)
- 
+
 -#if defined(powerpc64le_HOST_ARCH)
 +#if defined(powerpc64le_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF == 2))
  # if defined(linux_HOST_OS)
@@ -157,12 +93,11 @@ index 2e5d605..caef5d3 100644
 @@ -29,7 +29,7 @@ __asm__("obscure_ccall_ret_code:\n\t"
  extern void obscure_ccall_ret_code(void);
  #endif /* defined(linux_HOST_OS) */
- 
+
 -#if defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
 +#if defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
  #if !(defined(powerpc_HOST_ARCH) && defined(linux_HOST_OS))
- 
+
  /* !!! !!! WARNING: !!! !!!
--- 
+--
 2.35.1
-
diff --git a/srcpkgs/ghc/template b/srcpkgs/ghc/template
index bf76202f4098..c4808339cd29 100644
--- a/srcpkgs/ghc/template
+++ b/srcpkgs/ghc/template
@@ -1,7 +1,7 @@
 # Template file for 'ghc'
 pkgname=ghc
 # Keep this synchronized with http://www.stackage.org/lts
-version=9.0.2
+version=9.2.5
 revision=1
 build_style=gnu-configure
 hostmakedepends="automake docbook-xsl ghc-bin libxslt libnuma-devel
@@ -9,11 +9,11 @@ hostmakedepends="automake docbook-xsl ghc-bin libxslt libnuma-devel
 makedepends="libnuma-devel"
 depends="perl gcc libffi-devel gmp-devel libnuma-devel"
 short_desc="Glorious Haskell Compiler"
-maintainer="slotThe <soliditsallgood@mailbox.org>"
+maintainer="Tony Zorman <soliditsallgood@mailbox.org>"
 license="BSD-3-Clause"
 homepage="http://www.haskell.org/ghc/"
 distfiles="http://www.haskell.org/ghc/dist/${version%[!0-9]}/${pkgname}-${version%[!0-9]}-src.tar.xz"
-checksum=140e42b96346322d1a39eb17602bcdc76e292028ad4a69286b230bab188a9197
+checksum=0606797d1b38e2d88ee2243f38ec6b9a1aa93e9b578e95f0de9a9c0a4144021c
 nocross=yes # this is conditionally unset for cross bindist
 nodebug=yes # work around assembler error "Fatal error: duplicate .debug_line sections"
 _bindir="/usr/lib/${pkgname}-${version}/bin"

From 3d349a8a1192747ff14dd89e54fc0f7f19a991f5 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Fri, 18 Nov 2022 14:56:06 +0100
Subject: [PATCH 2/3] cabal-install: update to 3.8.1.0.

---
 srcpkgs/cabal-install/files/linux-9.0.2.json |  1 -
 srcpkgs/cabal-install/files/linux-9.2.5.json |  1 +
 srcpkgs/cabal-install/template               | 12 ++++++------
 3 files changed, 7 insertions(+), 7 deletions(-)
 delete mode 100644 srcpkgs/cabal-install/files/linux-9.0.2.json
 create mode 100644 srcpkgs/cabal-install/files/linux-9.2.5.json

diff --git a/srcpkgs/cabal-install/files/linux-9.0.2.json b/srcpkgs/cabal-install/files/linux-9.0.2.json
deleted file mode 100644
index f3cb6b4aeeb5..000000000000
--- a/srcpkgs/cabal-install/files/linux-9.0.2.json
+++ /dev/null
@@ -1 +0,0 @@
-{"builtin":[{"package":"rts","version":"1.0.2"},{"package":"ghc-prim","version":"0.7.0"},{"package":"ghc-bignum","version":"1.1"},{"package":"base","version":"4.15.1.0"},{"package":"array","version":"0.5.4.0"},{"package":"deepseq","version":"1.4.5.0"},{"package":"bytestring","version":"0.10.12.1"},{"package":"containers","version":"0.6.4.1"},{"package":"binary","version":"0.8.8.0"},{"package":"filepath","version":"1.4.2.1"},{"package":"time","version":"1.9.3"},{"package":"unix","version":"2.7.2.2"},{"package":"directory","version":"1.3.6.2"},{"package":"transformers","version":"0.5.6.2"},{"package":"mtl","version":"2.2.2"},{"package":"ghc-boot-th","version":"9.0.2"},{"package":"pretty","version":"1.1.3.6"},{"package":"template-haskell","version":"2.17.0.0"},{"package":"text","version":"1.2.5.0"},{"package":"parsec","version":"3.1.14.0"},{"package":"process","version":"1.6.13.2"},{"package":"stm","version":"2.5.0.0"}],"dependencies":[{"cabal_sha256":null,"flags":["-bundled-binary-generic"],"package":"Cabal","revision":null,"source":"local","src_sha256":null,"version":"3.6.3.0"},{"cabal_sha256":"714a55fd28d3e2533bd5b49e74f604ef8e5d7b06f249c8816f6c54aed431dcf1","flags":["-optimised-mixer"],"package":"splitmix","revision":0,"source":"hackage","src_sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","version":"0.1.0.4"},{"cabal_sha256":"8bee24dc0c985a90ee78d94c61f8aed21c49633686f0f1c14c5078d818ee43a2","flags":[],"package":"random","revision":0,"source":"hackage","src_sha256":"265c768fc5f2ca53cde6a87e706b4448cad474c3deece933c103f24453661457","version":"1.2.1"},{"cabal_sha256":"3a2beeafb220f9de706568a7e4a5b3c762cc4c9f25c94d7ef795b8c2d6a691d7","flags":["+integer-gmp","-random-initial-seed"],"package":"hashable","revision":1,"source":"hackage","src_sha256":"baaad82cd4271b197016bdbe76f22d5c3d3913fe38534cec7d817db9bae19886","version":"1.3.5.0"},{"cabal_sha256":"b83dec34a53520de84c6dd3dc7aae45d22409b46eb471c478b98108215a370f0","flags":["-bench"],"package":"async","revision":1,"source":"hackage","src_sha256":"484df85be0e76c4fed9376451e48e1d0c6e97952ce79735b72d54297e7e0a725","version":"2.2.4"},{"cabal_sha256":"037d70bb091c49f68726dde920f6a003b646835a86cdcb5b5ad58ad9af3207d9","flags":[],"package":"Cabal-syntax","revision":0,"source":"hackage","src_sha256":"ca25e5fc601397565fa857f1aa477740fac7f43d659e77c4d9b1485dca239251","version":"3.6.0.0"},{"cabal_sha256":"d8699f46b485f105eea9c7158f3d432ca578e6bbe5d68751184e9899a41d430d","flags":["-old-bytestring","-old-time"],"package":"tar","revision":4,"source":"hackage","src_sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","version":"0.5.1.1"},{"cabal_sha256":"e3d78b13db9512aeb106e44a334ab42b7aa48d26c097299084084cb8be5c5568","flags":["-devel"],"package":"network","revision":0,"source":"hackage","src_sha256":"7f7620fef1a1af3d3d6747f510e73223a5c600e7d7fd9ace073d1222bdc63d85","version":"3.1.2.7"},{"cabal_sha256":"a16dd922947a6877defe52c4c38d1ab48ed3f85a826930f5d1a568741d619993","flags":[],"package":"th-compat","revision":0,"source":"hackage","src_sha256":"6b5059caf6714f47da92953badf2f556119877e09708c14e206b3ae98b8681c6","version":"0.1.3"},{"cabal_sha256":"a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d","flags":[],"package":"network-uri","revision":0,"source":"hackage","src_sha256":"57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584","version":"2.6.4.1"},{"cabal_sha256":"6042643c15a0b43e522a6693f1e322f05000d519543a84149cb80aeffee34f71","flags":["-conduit10","-mtl1","+network-uri","-warn-as-error","-warp-tests"],"package":"HTTP","revision":1,"source":"hackage","src_sha256":"d6091c037871ac3d08d021c906206174567499d5a26a6cb804cf530cd590fe2d","version":"4000.3.16"},{"cabal_sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","flags":[],"package":"base16-bytestring","revision":0,"source":"hackage","src_sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","version":"1.0.2.0"},{"cabal_sha256":"50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8","flags":[],"package":"base64-bytestring","revision":0,"source":"hackage","src_sha256":"fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9","version":"1.2.1.0"},{"cabal_sha256":"188d0b5a0491e8b686b32d9b144c9287760ba333d2509bf3f17e3d846fbc2332","flags":["-exe","+use-cbits"],"package":"cryptohash-sha256","revision":0,"source":"hackage","src_sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","version":"0.11.102.1"},{"cabal_sha256":"ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42","flags":["-example"],"package":"echo","revision":0,"source":"hackage","src_sha256":"c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43","version":"0.1.4"},{"cabal_sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","flags":[],"package":"edit-distance","revision":1,"source":"hackage","src_sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","version":"0.2.2.1"},{"cabal_sha256":"24ac7b5f3d9fa3c2f70262b329f2a75f24e7fd829f88c189b388efa1bcd67eb2","flags":["+no-donna","+test-doctests","+test-hlint","+test-properties"],"package":"ed25519","revision":5,"source":"hackage","src_sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","version":"0.0.5.0"},{"cabal_sha256":"c084c043a40632d3cafcac50fb5eeff84d91edb070a54baa94945f1c976f97c0","flags":["+ofd-locking"],"package":"lukko","revision":2,"source":"hackage","src_sha256":"a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f","version":"0.1.1.3"},{"cabal_sha256":"262a93dbf370be59f4ee57f3b1a51b338bc2c309797daa37c14f2262ae61dae4","flags":["-bundled-c-zlib","-non-blocking-ffi","-pkg-config"],"package":"zlib","revision":1,"source":"hackage","src_sha256":"807f6bddf9cb3c517ce5757d991dde3c7e319953a22c86ee03d74534bd5abc88","version":"0.6.2.3"},{"cabal_sha256":"eb34c3e2fa39f9819293045c03e56148a7125573c1de265cdfe5d967f1d71c6e","flags":["+base48","-cabal-syntax","+lukko","-mtl21","-old-directory","+use-network-uri"],"package":"hackage-security","revision":1,"source":"hackage","src_sha256":"bf22cd16dde7d6b7130463f4d7324b64a2964d9ef3f523df97d7cb98544d64a8","version":"0.6.2.1"},{"cabal_sha256":"2561adac8ce373910948066debe090a22b336b129ba5af18c0332524d16e72ce","flags":[],"package":"regex-base","revision":0,"source":"hackage","src_sha256":"7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1","version":"0.94.0.2"},{"cabal_sha256":"b6421e5356766b0c0a78b6094ae2e3a6259b42c147b717283c03c1cb09163dca","flags":["-_regex-posix-clib"],"package":"regex-posix","revision":0,"source":"hackage","src_sha256":"c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c","version":"0.96.0.1"},{"cabal_sha256":"2088eb9368b920f80bbe4e3b03c3b8484090208f5c3b31645bd67a9ef7d26db4","flags":[],"package":"resolv","revision":4,"source":"hackage","src_sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","version":"0.1.2.0"},{"cabal_sha256":null,"flags":["-debug-conflict-sets","-debug-expensive-assertions","-debug-tracetree","+lukko","+native-dns"],"package":"cabal-install","revision":null,"source":"local","src_sha256":null,"version":"3.6.2.0"}]}
\ No newline at end of file
diff --git a/srcpkgs/cabal-install/files/linux-9.2.5.json b/srcpkgs/cabal-install/files/linux-9.2.5.json
new file mode 100644
index 000000000000..13fe257cbb30
--- /dev/null
+++ b/srcpkgs/cabal-install/files/linux-9.2.5.json
@@ -0,0 +1 @@
+{"builtin":[{"package":"rts","version":"1.0.2"},{"package":"ghc-prim","version":"0.8.0"},{"package":"ghc-bignum","version":"1.2"},{"package":"base","version":"4.16.4.0"},{"package":"array","version":"0.5.4.0"},{"package":"deepseq","version":"1.4.6.1"},{"package":"ghc-boot-th","version":"9.2.5"},{"package":"pretty","version":"1.1.3.6"},{"package":"template-haskell","version":"2.18.0.0"},{"package":"bytestring","version":"0.11.3.1"},{"package":"containers","version":"0.6.5.1"},{"package":"binary","version":"0.8.9.0"},{"package":"filepath","version":"1.4.2.2"},{"package":"time","version":"1.11.1.1"},{"package":"unix","version":"2.7.2.2"},{"package":"directory","version":"1.3.6.2"},{"package":"transformers","version":"0.5.6.2"},{"package":"mtl","version":"2.2.2"},{"package":"text","version":"1.2.5.0"},{"package":"parsec","version":"3.1.15.0"},{"package":"process","version":"1.6.16.0"},{"package":"stm","version":"2.5.0.2"},{"package":"exceptions","version":"0.10.4"}],"dependencies":[{"cabal_sha256":null,"flags":[],"package":"Cabal-syntax","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"},{"cabal_sha256":null,"flags":[],"package":"Cabal","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"},{"cabal_sha256":"804e2574bc7e32d08cbab91e47ee6287b4df7d50851d73f9e778f94a9a7814c7","flags":["-optimised-mixer"],"package":"splitmix","revision":1,"source":"hackage","src_sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","version":"0.1.0.4"},{"cabal_sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","flags":[],"package":"random","revision":0,"source":"hackage","src_sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","version":"1.2.1.1"},{"cabal_sha256":"50b2f002c68fe67730ee7a3cd8607486197dd99b084255005ad51ecd6970a41b","flags":["+containers","+integer-gmp","-random-initial-seed"],"package":"hashable","revision":0,"source":"hackage","src_sha256":"e1b305c280e66ad827edeaedd6933b9fc4174f626882877eab2a08344e665e87","version":"1.4.1.0"},{"cabal_sha256":"2b9409023536823233ce3134558565d01b3382e651fa54ac8cb8a99967e023c9","flags":["-bench"],"package":"async","revision":2,"source":"hackage","src_sha256":"484df85be0e76c4fed9376451e48e1d0c6e97952ce79735b72d54297e7e0a725","version":"2.2.4"},{"cabal_sha256":"bc14969ea4adfec6eee20264decf4a07c4002b38b2aa802d58d86b1a2cf7b895","flags":["-old-bytestring","-old-time"],"package":"tar","revision":5,"source":"hackage","src_sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","version":"0.5.1.1"},{"cabal_sha256":"e3d78b13db9512aeb106e44a334ab42b7aa48d26c097299084084cb8be5c5568","flags":["-devel"],"package":"network","revision":0,"source":"hackage","src_sha256":"7f7620fef1a1af3d3d6747f510e73223a5c600e7d7fd9ace073d1222bdc63d85","version":"3.1.2.7"},{"cabal_sha256":"6ca77c4e80b4e4109e30549c269631a9cc295c8fc2431ce4123972a5f80f7bfc","flags":[],"package":"th-compat","revision":0,"source":"hackage","src_sha256":"d8f97ac14ab47b6b8a7b0fdb4ff95426322ec56badd01652ac15da4a44d4bab8","version":"0.1.4"},{"cabal_sha256":"a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d","flags":[],"package":"network-uri","revision":0,"source":"hackage","src_sha256":"57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584","version":"2.6.4.1"},{"cabal_sha256":"b878d575c470bd1f72d37af6654d924ab2b9489d88de8a71bd74d9d5d726c013","flags":["-conduit10","+network-uri","-warn-as-error","-warp-tests"],"package":"HTTP","revision":1,"source":"hackage","src_sha256":"df31d8efec775124dab856d7177ddcba31be9f9e0836ebdab03d94392f2dd453","version":"4000.4.1"},{"cabal_sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","flags":[],"package":"base16-bytestring","revision":0,"source":"hackage","src_sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","version":"1.0.2.0"},{"cabal_sha256":"50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8","flags":[],"package":"base64-bytestring","revision":0,"source":"hackage","src_sha256":"fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9","version":"1.2.1.0"},{"cabal_sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","flags":[],"package":"edit-distance","revision":1,"source":"hackage","src_sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","version":"0.2.2.1"},{"cabal_sha256":null,"flags":["-debug-conflict-sets","-debug-expensive-assertions","-debug-tracetree"],"package":"cabal-install-solver","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"},{"cabal_sha256":"facd0c04925ef925ec05243471fd16055229fdf51f64db1a1049de0cc6c6dfc3","flags":["-exe","+use-cbits"],"package":"cryptohash-sha256","revision":1,"source":"hackage","src_sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","version":"0.11.102.1"},{"cabal_sha256":"ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42","flags":["-example"],"package":"echo","revision":0,"source":"hackage","src_sha256":"c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43","version":"0.1.4"},{"cabal_sha256":"885c9e2410e5d91a08b199897df0867fecedf818216d7329a2d43a512833dd63","flags":["+no-donna","+test-doctests","+test-hlint","+test-properties"],"package":"ed25519","revision":6,"source":"hackage","src_sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","version":"0.0.5.0"},{"cabal_sha256":"efd4c08c4df1ac3f423858a834c0e3b5b4909febda66a901d12a8e1d57bddaa8","flags":["+ofd-locking"],"package":"lukko","revision":3,"source":"hackage","src_sha256":"a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f","version":"0.1.1.3"},{"cabal_sha256":"8214a9d37580f17f8b675109578a5dbe6853559eef156e34dc2233f1123ace33","flags":["-bundled-c-zlib","-non-blocking-ffi","-pkg-config"],"package":"zlib","revision":0,"source":"hackage","src_sha256":"9eaa989ad4534438b5beb51c1d3a4c8f6a088fdff0b259a5394fbf39aaee04da","version":"0.6.3.0"},{"cabal_sha256":"1a6cf81a4871559ef5bc47b230278b9ad4bf44f1e4dbf77bdc8e07f6e7b8d005","flags":["+base48","+cabal-syntax","+lukko","-mtl21","-old-directory","+use-network-uri"],"package":"hackage-security","revision":1,"source":"hackage","src_sha256":"a833a31610220506557e96fb6e3e8b05a2e1db8e7ebc06e91bbb699ddde0b276","version":"0.6.2.2"},{"cabal_sha256":"4ff4425c710cddf440dfbac6cd52310bb6b23e17902390ff71c9fc7eaafc4fcc","flags":[],"package":"regex-base","revision":1,"source":"hackage","src_sha256":"7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1","version":"0.94.0.2"},{"cabal_sha256":"9dbba4b65a3bb6975d9740814be5593c6b2d2d6a0b3febc8ec940edb9a9bbdf4","flags":["-_regex-posix-clib"],"package":"regex-posix","revision":1,"source":"hackage","src_sha256":"c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c","version":"0.96.0.1"},{"cabal_sha256":"61e2d98ff634b8b4b3db467772420c0f9c79c2da9ddf3d2daeb2af2417f2c535","flags":[],"package":"resolv","revision":5,"source":"hackage","src_sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","version":"0.1.2.0"},{"cabal_sha256":"6e9b1b233af80cc0aa17ea858d2641ba146fb11cbcc5970a52649e89d77282e2","flags":[],"package":"safe-exceptions","revision":0,"source":"hackage","src_sha256":"91ce28d8f8a6efd31788d4827ed5cdcb9a546ad4053a86c56f7947c66a30b5bf","version":"0.1.7.3"},{"cabal_sha256":null,"flags":["+lukko","+native-dns"],"package":"cabal-install","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"}]}
\ No newline at end of file
diff --git a/srcpkgs/cabal-install/template b/srcpkgs/cabal-install/template
index b3ebc1bb15b9..9f9bd3afe8a2 100644
--- a/srcpkgs/cabal-install/template
+++ b/srcpkgs/cabal-install/template
@@ -1,7 +1,7 @@
 # Template file for 'cabal-install'
 pkgname=cabal-install
-version=3.6.3.0
-revision=2
+version=3.8.1.0
+revision=1
 hostmakedepends="ghc curl tar which"
 makedepends="gmp-devel libffi-devel zlib-devel python3"
 depends="ghc"
@@ -10,24 +10,24 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
 license="BSD-3-Clause"
 homepage="https://hackage.haskell.org/package/cabal-install"
 distfiles="https://github.com/haskell/cabal/archive/Cabal-v${version}.tar.gz"
-checksum=dea086acad6d9fe5fe22d838b95b4e988022e8519f38d41609119ea32bfb7466
+checksum=d4eff9c1fcc5212360afac8d97da83b3aff79365490a449e9c47d3988c14b6bc
 nopie_files="/usr/bin/cabal"
 nocross=yes
 
 post_extract() {
-	cp "${FILESDIR}/linux-9.0.2.json" bootstrap/
+	cp "${FILESDIR}/linux-9.2.5.json" bootstrap/
 }
 
 post_patch() {
 	case "${XBPS_TARGET_MACHINE}" in
 	i686*)
 		# https://github.com/haskell/cabal/issues/7313
-		vsed -i -e 's/+ofd-locking/-ofd-locking/' bootstrap/linux-9.0.2.json ;;
+		vsed -i -e 's/+ofd-locking/-ofd-locking/' bootstrap/linux-9.2.5.json ;;
 	esac
 }
 
 do_build() {
-	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-9.0.2.json
+	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-9.2.5.json
 }
 do_install() {
 	vbin _build/bin/cabal

From bfcde1a6bcb96b4aeb73a1b115d301425f323814 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Mon, 21 Nov 2022 18:38:18 +0100
Subject: [PATCH 3/3] stack: update to 2.9.3

+ Remove most outdated patches concerning version bounds and
  compatibility with GHC 9.0.2.
+ Adjust ppc patch.
+ New showStackVersion patch to build with GHC 9.2.5.
---
 srcpkgs/stack/patches/aeson.patch            |  46 ----
 srcpkgs/stack/patches/fsnotify.patch         |  16 --
 srcpkgs/stack/patches/ghc9.0.2.patch         | 212 -------------------
 srcpkgs/stack/patches/persistent.patch       |  46 ----
 srcpkgs/stack/patches/ppc.patch              |   3 +-
 srcpkgs/stack/patches/showStackVersion.patch |  10 +
 srcpkgs/stack/template                       |  10 +-
 7 files changed, 16 insertions(+), 327 deletions(-)
 delete mode 100644 srcpkgs/stack/patches/aeson.patch
 delete mode 100644 srcpkgs/stack/patches/fsnotify.patch
 delete mode 100644 srcpkgs/stack/patches/ghc9.0.2.patch
 delete mode 100644 srcpkgs/stack/patches/persistent.patch
 create mode 100644 srcpkgs/stack/patches/showStackVersion.patch

diff --git a/srcpkgs/stack/patches/aeson.patch b/srcpkgs/stack/patches/aeson.patch
deleted file mode 100644
index 68f267c30cc8..000000000000
--- a/srcpkgs/stack/patches/aeson.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-commit 09e233ed73aa3335642f97c080ef27e42047c527
-Author: q66 <daniel@octaforge.org>
-Date:   Fri Mar 11 04:37:15 2022 +0100
-
-    constrain aeson to prevent build failures
-
-diff --git a/stack.cabal b/stack.cabal
-index dba5bf0..0195f2c 100644
---- a/stack.cabal
-+++ b/stack.cabal
-@@ -231,7 +231,7 @@ library
- 
-     build-depends:
-         Cabal >=3.2.1.0,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
-@@ -357,7 +357,7 @@ executable stack
- 
-     build-depends:
-         Cabal >=3.2.1.0,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
-@@ -485,7 +485,7 @@ executable stack-integration-test
- 
-     build-depends:
-         Cabal >=3.2.1.0,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
-@@ -621,7 +621,7 @@ test-suite stack-test
-     build-depends:
-         Cabal >=3.2.1.0,
-         QuickCheck >=2.14.2,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
diff --git a/srcpkgs/stack/patches/fsnotify.patch b/srcpkgs/stack/patches/fsnotify.patch
deleted file mode 100644
index f82fd8f73004..000000000000
--- a/srcpkgs/stack/patches/fsnotify.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-src/Stack/FileWatch.hs:29:49: error: Not in scope: ‘confUsePolling’
-   |
-29 | fileWatchPoll = fileWatchConf $ defaultConfig { confUsePolling = True }
-   |                                                 ^^^^^^^^^^^^^^
-
---- a/stack.cabal
-+++ b/stack.cabal
-@@ -256,7 +256,7 @@ library
-         file-embed >=0.0.14.0,
-         filelock >=0.1.1.5,
-         filepath >=1.4.2.1,
--        fsnotify >=0.3.0.1,
-+        fsnotify >=0.3.0.1 && <0.4.0.0,
-         generic-deriving >=1.13.1,
-         hackage-security >=0.6.0.1,
-         hashable >=1.3.0.0,
diff --git a/srcpkgs/stack/patches/ghc9.0.2.patch b/srcpkgs/stack/patches/ghc9.0.2.patch
deleted file mode 100644
index bdd77de58c6b..000000000000
--- a/srcpkgs/stack/patches/ghc9.0.2.patch
+++ /dev/null
@@ -1,212 +0,0 @@
-From cb7e56842a25f93142545fad21306a7c1750fbbf Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:26:22 -0700
-Subject: [PATCH 1/6] Use Cabal 3.4.0.0
-
----
- stack.yaml | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/stack.yaml b/stack.yaml
-index 005bd19f4..9472509be 100644
---- a/stack.yaml
-+++ b/stack.yaml
-@@ -20,6 +20,9 @@ flags:
- ghc-options:
-    "$locals": -fhide-source-paths
-
-+extra-deps:
-+- Cabal-3.4.0.0
-+
- drop-packages:
- # See https://github.com/commercialhaskell/stack/pull/4712
- - cabal-install
-
-From 11e11ab0edeba033b40a7fc62434be58dea82ce2 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:40:56 -0700
-Subject: [PATCH 2/6] Fix Flag => PackageFlag
-
----
- src/Stack/BuildPlan.hs | 2 +-
- src/Stack/Package.hs   | 8 ++++----
- 2 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/src/Stack/BuildPlan.hs b/src/Stack/BuildPlan.hs
-index 36f82236e..c5c80efc6 100644
---- a/src/Stack/BuildPlan.hs
-+++ b/src/Stack/BuildPlan.hs
-@@ -224,7 +224,7 @@ selectPackageBuildPlan platform compiler pool gpd =
-     flagCombinations :: NonEmpty [(FlagName, Bool)]
-     flagCombinations = mapM getOptions (genPackageFlags gpd)
-       where
--        getOptions :: C.Flag -> NonEmpty (FlagName, Bool)
-+        getOptions :: C.PackageFlag -> NonEmpty (FlagName, Bool)
-         getOptions f
-             | flagManual f = (fname, flagDefault f) :| []
-             | flagDefault f = (fname, True) :| [(fname, False)]
-diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs
-index 4db50d2a4..d9bca7af5 100644
---- a/src/Stack/Package.hs
-+++ b/src/Stack/Package.hs
-@@ -128,7 +128,7 @@ resolvePackage packageConfig gpkg =
-         (resolvePackageDescription packageConfig gpkg)
-
- packageFromPackageDescription :: PackageConfig
--                              -> [D.Flag]
-+                              -> [PackageFlag]
-                               -> PackageDescriptionPair
-                               -> Package
- packageFromPackageDescription packageConfig pkgFlags (PackageDescriptionPair pkgNoMod pkg) =
-@@ -935,9 +935,9 @@ resolvePackageDescription packageConfig (GenericPackageDescription desc defaultF
- -- | Make a map from a list of flag specifications.
- --
- -- What is @flagManual@ for?
--flagMap :: [Flag] -> Map FlagName Bool
-+flagMap :: [PackageFlag] -> Map FlagName Bool
- flagMap = M.fromList . map pair
--  where pair :: Flag -> (FlagName, Bool)
-+  where pair :: PackageFlag -> (FlagName, Bool)
-         pair = flagName &&& flagDefault
-
- data ResolveConditions = ResolveConditions
-@@ -986,7 +986,7 @@ resolveConditions rc addDeps (CondNode lib deps cs) = basic <> children
-                   case v of
-                     OS os -> os == rcOS rc
-                     Arch arch -> arch == rcArch rc
--                    Flag flag ->
-+                    PackageFlag flag ->
-                       fromMaybe False $ M.lookup flag (rcFlags rc)
-                       -- NOTE:  ^^^^^ This should never happen, as all flags
-                       -- which are used must be declared. Defaulting to
-
-From 8facd731ec3f2bbc15a083750740929167b33bb2 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:55:30 -0700
-Subject: [PATCH 3/6] Fix CabalSpecVersion
-
----
- src/Stack/Package.hs | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs
-index d9bca7af5..fca039140 100644
---- a/src/Stack/Package.hs
-+++ b/src/Stack/Package.hs
-@@ -32,6 +32,7 @@ import           Data.List (find, isPrefixOf, unzip)
- import qualified Data.Map.Strict as M
- import qualified Data.Set as S
- import qualified Data.Text as T
-+import           Distribution.CabalSpecVersion (CabalSpecVersion, cabalSpecMinimumLibraryVersion)
- import           Distribution.Compiler
- import           Distribution.ModuleName (ModuleName)
- import qualified Distribution.ModuleName as Cabal
-@@ -190,7 +191,7 @@ packageFromPackageDescription packageConfig pkgFlags (PackageDescriptionPair pkg
-           (library pkg)
-     , packageBuildType = buildType pkg
-     , packageSetupDeps = msetupDeps
--    , packageCabalSpec = either orLaterVersion id $ specVersionRaw pkg
-+    , packageCabalSpec = orLaterVersion $ mkVersion $ cabalSpecMinimumLibraryVersion $ specVersion pkg
-     }
-   where
-     extraLibNames = S.union subLibNames foreignLibNames
-@@ -696,7 +697,7 @@ packageDescModulesAndFiles pkg = do
-
- -- | Resolve globbing of files (e.g. data files) to absolute paths.
- resolveGlobFiles
--  :: Version -- ^ cabal file version
-+  :: CabalSpecVersion -- ^ cabal file version
-   -> [String]
-   -> RIO Ctx (Set (Path Abs File))
- resolveGlobFiles cabalFileVersion =
-
-From 004f14652409b7d0645215d354b2e599eb7f76bc Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:55:40 -0700
-Subject: [PATCH 4/6] Fix GenericPackageDescription
-
----
- src/Stack/Build.hs   | 2 +-
- src/Stack/Package.hs | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/Stack/Build.hs b/src/Stack/Build.hs
-index 23b9a9719..856903bed 100644
---- a/src/Stack/Build.hs
-+++ b/src/Stack/Build.hs
-@@ -358,7 +358,7 @@ checkComponentsBuildable lps =
- checkSubLibraryDependencies :: HasLogFunc env => [ProjectPackage] -> RIO env ()
- checkSubLibraryDependencies proj = do
-   forM_ proj $ \p -> do
--    C.GenericPackageDescription _ _ lib subLibs foreignLibs exes tests benches <- liftIO $ cpGPD . ppCommon $ p
-+    C.GenericPackageDescription _ _ _ lib subLibs foreignLibs exes tests benches <- liftIO $ cpGPD . ppCommon $ p
-
-     let dependencies = concatMap getDeps subLibs <>
-                        concatMap getDeps foreignLibs <>
-diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs
-index fca039140..39aad4d2f 100644
---- a/src/Stack/Package.hs
-+++ b/src/Stack/Package.hs
-@@ -863,7 +863,7 @@ data PackageDescriptionPair = PackageDescriptionPair
- resolvePackageDescription :: PackageConfig
-                           -> GenericPackageDescription
-                           -> PackageDescriptionPair
--resolvePackageDescription packageConfig (GenericPackageDescription desc defaultFlags mlib subLibs foreignLibs' exes tests benches) =
-+resolvePackageDescription packageConfig (GenericPackageDescription desc _ defaultFlags mlib subLibs foreignLibs' exes tests benches) =
-     PackageDescriptionPair
-       { pdpOrigBuildable = go False
-       , pdpModifiedBuildable = go True
-
-From 820797b566ef981936907f4d19658259d4a635a8 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 17:01:01 -0700
-Subject: [PATCH 5/6] Fix generatePackageVersionMacros
-
----
- src/Stack/Build/Execute.hs | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/Stack/Build/Execute.hs b/src/Stack/Build/Execute.hs
-index 1e381dd21..aedd7fee5 100644
---- a/src/Stack/Build/Execute.hs
-+++ b/src/Stack/Build/Execute.hs
-@@ -1214,7 +1214,7 @@ withSingleContext ActionContext {..} ee@ExecuteEnv {..} task@Task {..} allDeps m
-                             let macroDeps = mapMaybe snd matchedDeps
-                                 cppMacrosFile = setupDir </> relFileSetupMacrosH
-                                 cppArgs = ["-optP-include", "-optP" ++ toFilePath cppMacrosFile]
--                            writeBinaryFileAtomic cppMacrosFile (encodeUtf8Builder (T.pack (C.generatePackageVersionMacros macroDeps)))
-+                            writeBinaryFileAtomic cppMacrosFile (encodeUtf8Builder (T.pack (C.generatePackageVersionMacros (packageVersion package) macroDeps)))
-                             return (packageDBArgs ++ depsArgs ++ cppArgs)
-
-                         -- This branch is usually taken for builds, and
-
-From 336ab515e30f03c274f89ebe1cbc6aa1e597c2a4 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 17:04:16 -0700
-Subject: [PATCH 6/6] Fix ModuleReexport
-
----
- src/Stack/Script.hs | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/Stack/Script.hs b/src/Stack/Script.hs
-index 6bb67c049..9ebd2173d 100644
---- a/src/Stack/Script.hs
-+++ b/src/Stack/Script.hs
-@@ -18,6 +18,7 @@ import           Distribution.Compiler      (CompilerFlavor (..))
- import           Distribution.ModuleName    (ModuleName)
- import qualified Distribution.PackageDescription as PD
- import qualified Distribution.Types.CondTree as C
-+import qualified Distribution.Types.ModuleReexport as ModuleReexport
- import           Distribution.Types.PackageName (mkPackageName)
- import           Distribution.Types.VersionRange (withinRange)
- import           Distribution.System        (Platform (..))
-@@ -280,7 +281,7 @@ allExposedModules gpd = do
-       mlibrary = snd . C.simplifyCondTree checkCond <$> PD.condLibrary gpd
-   pure $ case mlibrary  of
-     Just lib -> PD.exposedModules lib ++
--                map PD.moduleReexportName (PD.reexportedModules lib)
-+                map ModuleReexport.moduleReexportName (PD.reexportedModules lib)
-     Nothing  -> mempty
-
- -- | The Stackage project introduced the concept of hidden packages,
diff --git a/srcpkgs/stack/patches/persistent.patch b/srcpkgs/stack/patches/persistent.patch
deleted file mode 100644
index cf462d7b80c2..000000000000
--- a/srcpkgs/stack/patches/persistent.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-commit 188d7ece06ee06ed6ccaf0df0c46285bd43898f4
-Author: q66 <daniel@octaforge.org>
-Date:   Thu Apr 28 05:02:09 2022 +0200
-
-    constrain persistent to fix build
-
-diff --git a/stack.cabal b/stack.cabal
-index dba5bf0..e221321 100644
---- a/stack.cabal
-+++ b/stack.cabal
-@@ -281,7 +281,7 @@ library
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
-@@ -407,7 +407,7 @@ executable stack
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
-@@ -537,7 +537,7 @@ executable stack-integration-test
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
-@@ -672,7 +672,7 @@ test-suite stack-test
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
diff --git a/srcpkgs/stack/patches/ppc.patch b/srcpkgs/stack/patches/ppc.patch
index fc4c540f0f92..4ab025e7663c 100644
--- a/srcpkgs/stack/patches/ppc.patch
+++ b/srcpkgs/stack/patches/ppc.patch
@@ -22,11 +22,10 @@
 
 --- a/stack.cabal
 +++ b/stack.cabal
-@@ -246,6 +246,7 @@
+@@ -246,4 +246,5 @@
          conduit >=1.3.4.1,
          conduit-extra >=1.3.5,
          containers >=0.6.2.1,
 +        cpu >=0.1.2,
          cryptonite >=0.27,
          cryptonite-conduit >=0.2.2,
-         deepseq >=1.4.4.0,
diff --git a/srcpkgs/stack/patches/showStackVersion.patch b/srcpkgs/stack/patches/showStackVersion.patch
new file mode 100644
index 000000000000..454e0c6dfe53
--- /dev/null
+++ b/srcpkgs/stack/patches/showStackVersion.patch
@@ -0,0 +1,10 @@
+--- a/src/main/BuildInfo.hs
++++ b/src/main/BuildInfo.hs
+@@ -32,5 +32,6 @@
+ #endif
+ import           Stack.Prelude
+ import qualified Paths_stack as Meta
++import Stack.Types.Version (showStackVersion)
+
+ versionString' :: String
+ #ifdef USE_GIT_INFO
diff --git a/srcpkgs/stack/template b/srcpkgs/stack/template
index b6c1f1578ed9..c76f90ff89ed 100644
--- a/srcpkgs/stack/template
+++ b/srcpkgs/stack/template
@@ -1,8 +1,8 @@
 # Template file for 'stack'
 pkgname=stack
-version=2.7.5
-revision=2
-_stackage="lts-19.0"
+version=2.9.3
+revision=1
+_stackage="lts-20.0"
 hostmakedepends="cabal-install pkg-config unzip"
 makedepends="zlib-devel pcre-devel"
 depends="git gmp-devel iana-etc"
@@ -12,8 +12,8 @@ license="BSD-3-Clause"
 homepage="https://haskellstack.org"
 distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz
  https://www.stackage.org/${_stackage}/cabal.config>cabal.config-${_stackage}"
-checksum="9ddd44c2a62e9404194d69e7dc1c94e707910620316b66d6ac0b3201a8f37e80
- e1de952bb6f62573e5c211df99ce6bb684c4cae7845f16c347ce9aa503d6374f"
+checksum="c4700cb227dd624249db2e649445f3df3d558c8a5ab2c98b5c7bf8545901f2dc
+ addcb336500f35b565403e72b0b3793fee74313439eacfb79e0c2121d88bc8ea"
 skip_extraction="cabal.config-${_stackage}"
 nocross=yes
 nopie_files="/usr/bin/stack"

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PR PATCH] [Updated] [WIP] [ci skip] GHC 9.2.5
  2022-12-27  9:58 [PR PATCH] [WIP] [ci skip] GHC 9.2.5 slotThe
@ 2022-12-28  6:35 ` slotThe
  2022-12-28 11:58 ` q66
                   ` (11 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: slotThe @ 2022-12-28  6:35 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1286 bytes --]

There is an updated pull request by slotThe against master on the void-packages repository

https://github.com/slotThe/void-packages ghc-9.2.5
https://github.com/void-linux/void-packages/pull/41316

[WIP] [ci skip] GHC 9.2.5
Took much longer than anticipated, since I wanted to wait for stack 2.9.3 first.  Here's to hoping that opening a PR will motivate me to work more rapidly :)

### Core packages to bump

- [x] ghc
- [ ] ghc-bin
    - [ ] x86_64 (hash)
    - [ ] i686 (hash)
    - [ ] x86_64-musl
    Cc. @q66
    - [ ] ppc64le
    - [ ] ppc64le-musl
    - [ ] ppc64
    Cc. @ftrvxmtrx
    - [ ] aarch64
    - [ ] aarch64-musl
- [x] cabal-install
- [x] stack

#### Rebuild literally every single haskell package we have and see if anything's broken

- [ ] git-mediate
- [ ] kmonad
- [ ] cgrep
- [ ] debug-me
- [ ] hlint
- [ ] hoogle
- [ ] darcs
- [ ] shellcheck
- [ ] git-annex
- [ ] hledger
- [ ] pandoc
- [ ] xmobar
- [ ] haskell-language-server
- [ ] glirc

### Other things to do

- [ ] incorporate https://github.com/void-linux/void-packages/pull/27832 @astralchan
- [ ] incorporate https://github.com/void-linux/void-packages/pull/35624 @kwshi

A patch file from https://github.com/void-linux/void-packages/pull/41316.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-ghc-9.2.5-41316.patch --]
[-- Type: text/x-diff, Size: 54799 bytes --]

From 72eb2785d19f85f6719819475c9ae6076859e9e6 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Thu, 17 Nov 2022 12:47:46 +0100
Subject: [PATCH 1/6] ghc: update to 9.2.5

+ Adjust ppc64-be-elfv2.patch
  * The libraries/ghci/GHCi/InfoTable.hsc bit seems to have been
    merged, hence delete it.
  * Adjust for changes in fptools and configure.
  * Delete now out-of-date TOC.
---
 srcpkgs/ghc/patches/ppc64-be-elfv2.patch | 105 +++++------------------
 srcpkgs/ghc/template                     |   6 +-
 2 files changed, 23 insertions(+), 88 deletions(-)

diff --git a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
index df1a0bfe15ba..5fa356be700e 100644
--- a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
+++ b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
@@ -3,100 +3,36 @@ From: q66 <daniel@octaforge.org>
 Date: Thu, 28 Apr 2022 00:48:04 +0200
 Subject: [PATCH] fix up runtime for ppc64 BE ELFv2 + ensure it's used
 
----
- configure                         |  2 +-
- libraries/ghci/GHCi/InfoTable.hsc | 36 ++++++++++++-------------------
- m4/fptools.m4                     |  2 +-
- rts/AdjustorAsm.S                 |  2 +-
- rts/StgCRun.c                     |  4 ++--
- rts/StgCRunAsm.S                  |  2 +-
- rts/adjustor/NativeIA64.c         |  2 +-
- rts/adjustor/NativePowerPC.c      |  2 +-
- 8 files changed, 22 insertions(+), 30 deletions(-)
-
-diff --git a/configure b/configure
-index 8310e6f..eac1124 100755
 --- a/configure
 +++ b/configure
-@@ -10508,7 +10508,7 @@ printf "%s\n" "no" >&6; }
+@@ -10871,7 +10871,7 @@
              test -z "$2" || eval "$2=ArchPPC"
              ;;
          powerpc64)
--            test -z "$2" || eval "$2=\"ArchPPC_64 {ppc_64ABI = ELF_V1}\""
-+            test -z "$2" || eval "$2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
+-            test -z "$2" || eval "$2=\"ArchPPC_64 ELF_V1\""
++            test -z "$2" || eval "$2=\"ArchPPC_64 ELF_V2\""
              ;;
          powerpc64le)
-             test -z "$2" || eval "$2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
-diff --git a/libraries/ghci/GHCi/InfoTable.hsc b/libraries/ghci/GHCi/InfoTable.hsc
-index ad4eb4d..e4f1c0c 100644
---- a/libraries/ghci/GHCi/InfoTable.hsc
-+++ b/libraries/ghci/GHCi/InfoTable.hsc
-@@ -231,30 +231,22 @@ mkJumpToAddr' platform a = case platform of
-                 , fromIntegral w64
-                 , fromIntegral (w64 `shiftR` 32) ]
-     ArchPPC64 ->
--        -- We use the compiler's register r12 to read the function
--        -- descriptor and the linker's register r11 as a temporary
--        -- register to hold the function entry point.
--        -- In the medium code model the function descriptor
--        -- is located in the first two gigabytes, i.e. the address
--        -- of the function pointer is a non-negative 32 bit number.
--        -- 0x0EADBEEF stands for the address of the function pointer:
--        --    0:   3d 80 0e ad     lis     r12,0x0EAD
--        --    4:   61 8c be ef     ori     r12,r12,0xBEEF
--        --    8:   e9 6c 00 00     ld      r11,0(r12)
--        --    c:   e8 4c 00 08     ld      r2,8(r12)
--        --   10:   7d 69 03 a6     mtctr   r11
--        --   14:   e9 6c 00 10     ld      r11,16(r12)
--        --   18:   4e 80 04 20     bctr
--       let  w32 = fromIntegral (funPtrToInt a)
-+        -- The ABI requires r12 to point to the function's entry point.
-+        -- We use the medium code model where code resides in the first
-+        -- two gigabytes, so loading a non-negative32 bit address
-+        -- with lis followed by ori is fine.
-+        -- 0x0EADBEEF stands for the address:
-+        -- 3D800EAD lis r12,0x0EAD
-+        -- 618CBEEF ori r12,r12,0xBEEF
-+        -- 7D8903A6 mtctr r12
-+        -- 4E800420 bctr
-+
-+        let w32 = fromIntegral (funPtrToInt a)
-             hi16 x = (x `shiftR` 16) .&. 0xFFFF
-             lo16 x = x .&. 0xFFFF
--       in Right [ 0x3D800000 .|. hi16 w32,
--                  0x618C0000 .|. lo16 w32,
--                  0xE96C0000,
--                  0xE84C0008,
--                  0x7D6903A6,
--                  0xE96C0010,
--                  0x4E800420]
-+        in Right [ 0x3D800000 .|. hi16 w32,
-+                   0x618C0000 .|. lo16 w32,
-+                   0x7D8903A6, 0x4E800420 ]
- 
-     ArchPPC64LE ->
-         -- The ABI requires r12 to point to the function's entry point.
-diff --git a/m4/fptools.m4 b/m4/fptools.m4
-index 8c6c9b7..eb25c37 100644
---- a/m4/fptools.m4
-+++ b/m4/fptools.m4
-@@ -201,7 +201,7 @@ AC_DEFUN([FPTOOLS_SET_HASKELL_PLATFORM_VARS],
+             test -z "$2" || eval "$2=\"ArchPPC_64 ELF_V2\""
+--- a/m4/fptools_set_haskell_platform_vars.m4
++++ b/m4/fptools_set_haskell_platform_vars.m4
+@@ -15,7 +15,7 @@
              test -z "[$]2" || eval "[$]2=ArchPPC"
              ;;
          powerpc64)
--            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V1}\""
-+            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
+-            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 ELF_V1\""
++            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 ELF_V2\""
              ;;
          powerpc64le)
-             test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
+             test -z "[$]2" || eval "[$]2=\"ArchPPC_64 ELF_V2\""
 diff --git a/rts/AdjustorAsm.S b/rts/AdjustorAsm.S
 index 2795b83..63cfe91 100644
 --- a/rts/AdjustorAsm.S
 +++ b/rts/AdjustorAsm.S
 @@ -2,7 +2,7 @@
- 
+
  /* ******************************** PowerPC ******************************** */
- 
+
 -#if defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
 +#if defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
  #if !(defined(powerpc_HOST_ARCH) && defined(linux_HOST_OS))
@@ -109,21 +45,21 @@ index f43227a..927d44a 100644
 @@ -724,7 +724,7 @@ StgRunIsImplementedInAssembler(void)
     Everything is in assembler, so we don't have to deal with GCC...
     -------------------------------------------------------------------------- */
- 
+
 -#if defined(powerpc64_HOST_ARCH)
 +#if defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2)
  /* 64-bit PowerPC ELF ABI 1.9
   *
   * Stack frame organization (see Figure 3-17, ELF ABI 1.9, p 14)
 @@ -792,7 +792,7 @@ StgRunIsImplementedInAssembler(void)
- 
+
  #endif
- 
+
 -#if defined(powerpc64le_HOST_ARCH)
 +#if defined(powerpc64le_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF == 2))
  /* -----------------------------------------------------------------------------
     PowerPC 64 little endian architecture
- 
+
 diff --git a/rts/StgCRunAsm.S b/rts/StgCRunAsm.S
 index 60f1bf9..c6794d7 100644
 --- a/rts/StgCRunAsm.S
@@ -131,7 +67,7 @@ index 60f1bf9..c6794d7 100644
 @@ -5,7 +5,7 @@
   * then functions StgRun/StgReturn are implemented in file StgCRun.c */
  #if !defined(USE_MINIINTERPRETER)
- 
+
 -#if defined(powerpc64le_HOST_ARCH)
 +#if defined(powerpc64le_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF == 2))
  # if defined(linux_HOST_OS)
@@ -157,12 +93,11 @@ index 2e5d605..caef5d3 100644
 @@ -29,7 +29,7 @@ __asm__("obscure_ccall_ret_code:\n\t"
  extern void obscure_ccall_ret_code(void);
  #endif /* defined(linux_HOST_OS) */
- 
+
 -#if defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
 +#if defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
  #if !(defined(powerpc_HOST_ARCH) && defined(linux_HOST_OS))
- 
+
  /* !!! !!! WARNING: !!! !!!
--- 
+--
 2.35.1
-
diff --git a/srcpkgs/ghc/template b/srcpkgs/ghc/template
index bf76202f4098..c4808339cd29 100644
--- a/srcpkgs/ghc/template
+++ b/srcpkgs/ghc/template
@@ -1,7 +1,7 @@
 # Template file for 'ghc'
 pkgname=ghc
 # Keep this synchronized with http://www.stackage.org/lts
-version=9.0.2
+version=9.2.5
 revision=1
 build_style=gnu-configure
 hostmakedepends="automake docbook-xsl ghc-bin libxslt libnuma-devel
@@ -9,11 +9,11 @@ hostmakedepends="automake docbook-xsl ghc-bin libxslt libnuma-devel
 makedepends="libnuma-devel"
 depends="perl gcc libffi-devel gmp-devel libnuma-devel"
 short_desc="Glorious Haskell Compiler"
-maintainer="slotThe <soliditsallgood@mailbox.org>"
+maintainer="Tony Zorman <soliditsallgood@mailbox.org>"
 license="BSD-3-Clause"
 homepage="http://www.haskell.org/ghc/"
 distfiles="http://www.haskell.org/ghc/dist/${version%[!0-9]}/${pkgname}-${version%[!0-9]}-src.tar.xz"
-checksum=140e42b96346322d1a39eb17602bcdc76e292028ad4a69286b230bab188a9197
+checksum=0606797d1b38e2d88ee2243f38ec6b9a1aa93e9b578e95f0de9a9c0a4144021c
 nocross=yes # this is conditionally unset for cross bindist
 nodebug=yes # work around assembler error "Fatal error: duplicate .debug_line sections"
 _bindir="/usr/lib/${pkgname}-${version}/bin"

From 3d349a8a1192747ff14dd89e54fc0f7f19a991f5 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Fri, 18 Nov 2022 14:56:06 +0100
Subject: [PATCH 2/6] cabal-install: update to 3.8.1.0.

---
 srcpkgs/cabal-install/files/linux-9.0.2.json |  1 -
 srcpkgs/cabal-install/files/linux-9.2.5.json |  1 +
 srcpkgs/cabal-install/template               | 12 ++++++------
 3 files changed, 7 insertions(+), 7 deletions(-)
 delete mode 100644 srcpkgs/cabal-install/files/linux-9.0.2.json
 create mode 100644 srcpkgs/cabal-install/files/linux-9.2.5.json

diff --git a/srcpkgs/cabal-install/files/linux-9.0.2.json b/srcpkgs/cabal-install/files/linux-9.0.2.json
deleted file mode 100644
index f3cb6b4aeeb5..000000000000
--- a/srcpkgs/cabal-install/files/linux-9.0.2.json
+++ /dev/null
@@ -1 +0,0 @@
-{"builtin":[{"package":"rts","version":"1.0.2"},{"package":"ghc-prim","version":"0.7.0"},{"package":"ghc-bignum","version":"1.1"},{"package":"base","version":"4.15.1.0"},{"package":"array","version":"0.5.4.0"},{"package":"deepseq","version":"1.4.5.0"},{"package":"bytestring","version":"0.10.12.1"},{"package":"containers","version":"0.6.4.1"},{"package":"binary","version":"0.8.8.0"},{"package":"filepath","version":"1.4.2.1"},{"package":"time","version":"1.9.3"},{"package":"unix","version":"2.7.2.2"},{"package":"directory","version":"1.3.6.2"},{"package":"transformers","version":"0.5.6.2"},{"package":"mtl","version":"2.2.2"},{"package":"ghc-boot-th","version":"9.0.2"},{"package":"pretty","version":"1.1.3.6"},{"package":"template-haskell","version":"2.17.0.0"},{"package":"text","version":"1.2.5.0"},{"package":"parsec","version":"3.1.14.0"},{"package":"process","version":"1.6.13.2"},{"package":"stm","version":"2.5.0.0"}],"dependencies":[{"cabal_sha256":null,"flags":["-bundled-binary-generic"],"package":"Cabal","revision":null,"source":"local","src_sha256":null,"version":"3.6.3.0"},{"cabal_sha256":"714a55fd28d3e2533bd5b49e74f604ef8e5d7b06f249c8816f6c54aed431dcf1","flags":["-optimised-mixer"],"package":"splitmix","revision":0,"source":"hackage","src_sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","version":"0.1.0.4"},{"cabal_sha256":"8bee24dc0c985a90ee78d94c61f8aed21c49633686f0f1c14c5078d818ee43a2","flags":[],"package":"random","revision":0,"source":"hackage","src_sha256":"265c768fc5f2ca53cde6a87e706b4448cad474c3deece933c103f24453661457","version":"1.2.1"},{"cabal_sha256":"3a2beeafb220f9de706568a7e4a5b3c762cc4c9f25c94d7ef795b8c2d6a691d7","flags":["+integer-gmp","-random-initial-seed"],"package":"hashable","revision":1,"source":"hackage","src_sha256":"baaad82cd4271b197016bdbe76f22d5c3d3913fe38534cec7d817db9bae19886","version":"1.3.5.0"},{"cabal_sha256":"b83dec34a53520de84c6dd3dc7aae45d22409b46eb471c478b98108215a370f0","flags":["-bench"],"package":"async","revision":1,"source":"hackage","src_sha256":"484df85be0e76c4fed9376451e48e1d0c6e97952ce79735b72d54297e7e0a725","version":"2.2.4"},{"cabal_sha256":"037d70bb091c49f68726dde920f6a003b646835a86cdcb5b5ad58ad9af3207d9","flags":[],"package":"Cabal-syntax","revision":0,"source":"hackage","src_sha256":"ca25e5fc601397565fa857f1aa477740fac7f43d659e77c4d9b1485dca239251","version":"3.6.0.0"},{"cabal_sha256":"d8699f46b485f105eea9c7158f3d432ca578e6bbe5d68751184e9899a41d430d","flags":["-old-bytestring","-old-time"],"package":"tar","revision":4,"source":"hackage","src_sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","version":"0.5.1.1"},{"cabal_sha256":"e3d78b13db9512aeb106e44a334ab42b7aa48d26c097299084084cb8be5c5568","flags":["-devel"],"package":"network","revision":0,"source":"hackage","src_sha256":"7f7620fef1a1af3d3d6747f510e73223a5c600e7d7fd9ace073d1222bdc63d85","version":"3.1.2.7"},{"cabal_sha256":"a16dd922947a6877defe52c4c38d1ab48ed3f85a826930f5d1a568741d619993","flags":[],"package":"th-compat","revision":0,"source":"hackage","src_sha256":"6b5059caf6714f47da92953badf2f556119877e09708c14e206b3ae98b8681c6","version":"0.1.3"},{"cabal_sha256":"a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d","flags":[],"package":"network-uri","revision":0,"source":"hackage","src_sha256":"57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584","version":"2.6.4.1"},{"cabal_sha256":"6042643c15a0b43e522a6693f1e322f05000d519543a84149cb80aeffee34f71","flags":["-conduit10","-mtl1","+network-uri","-warn-as-error","-warp-tests"],"package":"HTTP","revision":1,"source":"hackage","src_sha256":"d6091c037871ac3d08d021c906206174567499d5a26a6cb804cf530cd590fe2d","version":"4000.3.16"},{"cabal_sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","flags":[],"package":"base16-bytestring","revision":0,"source":"hackage","src_sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","version":"1.0.2.0"},{"cabal_sha256":"50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8","flags":[],"package":"base64-bytestring","revision":0,"source":"hackage","src_sha256":"fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9","version":"1.2.1.0"},{"cabal_sha256":"188d0b5a0491e8b686b32d9b144c9287760ba333d2509bf3f17e3d846fbc2332","flags":["-exe","+use-cbits"],"package":"cryptohash-sha256","revision":0,"source":"hackage","src_sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","version":"0.11.102.1"},{"cabal_sha256":"ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42","flags":["-example"],"package":"echo","revision":0,"source":"hackage","src_sha256":"c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43","version":"0.1.4"},{"cabal_sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","flags":[],"package":"edit-distance","revision":1,"source":"hackage","src_sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","version":"0.2.2.1"},{"cabal_sha256":"24ac7b5f3d9fa3c2f70262b329f2a75f24e7fd829f88c189b388efa1bcd67eb2","flags":["+no-donna","+test-doctests","+test-hlint","+test-properties"],"package":"ed25519","revision":5,"source":"hackage","src_sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","version":"0.0.5.0"},{"cabal_sha256":"c084c043a40632d3cafcac50fb5eeff84d91edb070a54baa94945f1c976f97c0","flags":["+ofd-locking"],"package":"lukko","revision":2,"source":"hackage","src_sha256":"a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f","version":"0.1.1.3"},{"cabal_sha256":"262a93dbf370be59f4ee57f3b1a51b338bc2c309797daa37c14f2262ae61dae4","flags":["-bundled-c-zlib","-non-blocking-ffi","-pkg-config"],"package":"zlib","revision":1,"source":"hackage","src_sha256":"807f6bddf9cb3c517ce5757d991dde3c7e319953a22c86ee03d74534bd5abc88","version":"0.6.2.3"},{"cabal_sha256":"eb34c3e2fa39f9819293045c03e56148a7125573c1de265cdfe5d967f1d71c6e","flags":["+base48","-cabal-syntax","+lukko","-mtl21","-old-directory","+use-network-uri"],"package":"hackage-security","revision":1,"source":"hackage","src_sha256":"bf22cd16dde7d6b7130463f4d7324b64a2964d9ef3f523df97d7cb98544d64a8","version":"0.6.2.1"},{"cabal_sha256":"2561adac8ce373910948066debe090a22b336b129ba5af18c0332524d16e72ce","flags":[],"package":"regex-base","revision":0,"source":"hackage","src_sha256":"7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1","version":"0.94.0.2"},{"cabal_sha256":"b6421e5356766b0c0a78b6094ae2e3a6259b42c147b717283c03c1cb09163dca","flags":["-_regex-posix-clib"],"package":"regex-posix","revision":0,"source":"hackage","src_sha256":"c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c","version":"0.96.0.1"},{"cabal_sha256":"2088eb9368b920f80bbe4e3b03c3b8484090208f5c3b31645bd67a9ef7d26db4","flags":[],"package":"resolv","revision":4,"source":"hackage","src_sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","version":"0.1.2.0"},{"cabal_sha256":null,"flags":["-debug-conflict-sets","-debug-expensive-assertions","-debug-tracetree","+lukko","+native-dns"],"package":"cabal-install","revision":null,"source":"local","src_sha256":null,"version":"3.6.2.0"}]}
\ No newline at end of file
diff --git a/srcpkgs/cabal-install/files/linux-9.2.5.json b/srcpkgs/cabal-install/files/linux-9.2.5.json
new file mode 100644
index 000000000000..13fe257cbb30
--- /dev/null
+++ b/srcpkgs/cabal-install/files/linux-9.2.5.json
@@ -0,0 +1 @@
+{"builtin":[{"package":"rts","version":"1.0.2"},{"package":"ghc-prim","version":"0.8.0"},{"package":"ghc-bignum","version":"1.2"},{"package":"base","version":"4.16.4.0"},{"package":"array","version":"0.5.4.0"},{"package":"deepseq","version":"1.4.6.1"},{"package":"ghc-boot-th","version":"9.2.5"},{"package":"pretty","version":"1.1.3.6"},{"package":"template-haskell","version":"2.18.0.0"},{"package":"bytestring","version":"0.11.3.1"},{"package":"containers","version":"0.6.5.1"},{"package":"binary","version":"0.8.9.0"},{"package":"filepath","version":"1.4.2.2"},{"package":"time","version":"1.11.1.1"},{"package":"unix","version":"2.7.2.2"},{"package":"directory","version":"1.3.6.2"},{"package":"transformers","version":"0.5.6.2"},{"package":"mtl","version":"2.2.2"},{"package":"text","version":"1.2.5.0"},{"package":"parsec","version":"3.1.15.0"},{"package":"process","version":"1.6.16.0"},{"package":"stm","version":"2.5.0.2"},{"package":"exceptions","version":"0.10.4"}],"dependencies":[{"cabal_sha256":null,"flags":[],"package":"Cabal-syntax","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"},{"cabal_sha256":null,"flags":[],"package":"Cabal","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"},{"cabal_sha256":"804e2574bc7e32d08cbab91e47ee6287b4df7d50851d73f9e778f94a9a7814c7","flags":["-optimised-mixer"],"package":"splitmix","revision":1,"source":"hackage","src_sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","version":"0.1.0.4"},{"cabal_sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","flags":[],"package":"random","revision":0,"source":"hackage","src_sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","version":"1.2.1.1"},{"cabal_sha256":"50b2f002c68fe67730ee7a3cd8607486197dd99b084255005ad51ecd6970a41b","flags":["+containers","+integer-gmp","-random-initial-seed"],"package":"hashable","revision":0,"source":"hackage","src_sha256":"e1b305c280e66ad827edeaedd6933b9fc4174f626882877eab2a08344e665e87","version":"1.4.1.0"},{"cabal_sha256":"2b9409023536823233ce3134558565d01b3382e651fa54ac8cb8a99967e023c9","flags":["-bench"],"package":"async","revision":2,"source":"hackage","src_sha256":"484df85be0e76c4fed9376451e48e1d0c6e97952ce79735b72d54297e7e0a725","version":"2.2.4"},{"cabal_sha256":"bc14969ea4adfec6eee20264decf4a07c4002b38b2aa802d58d86b1a2cf7b895","flags":["-old-bytestring","-old-time"],"package":"tar","revision":5,"source":"hackage","src_sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","version":"0.5.1.1"},{"cabal_sha256":"e3d78b13db9512aeb106e44a334ab42b7aa48d26c097299084084cb8be5c5568","flags":["-devel"],"package":"network","revision":0,"source":"hackage","src_sha256":"7f7620fef1a1af3d3d6747f510e73223a5c600e7d7fd9ace073d1222bdc63d85","version":"3.1.2.7"},{"cabal_sha256":"6ca77c4e80b4e4109e30549c269631a9cc295c8fc2431ce4123972a5f80f7bfc","flags":[],"package":"th-compat","revision":0,"source":"hackage","src_sha256":"d8f97ac14ab47b6b8a7b0fdb4ff95426322ec56badd01652ac15da4a44d4bab8","version":"0.1.4"},{"cabal_sha256":"a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d","flags":[],"package":"network-uri","revision":0,"source":"hackage","src_sha256":"57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584","version":"2.6.4.1"},{"cabal_sha256":"b878d575c470bd1f72d37af6654d924ab2b9489d88de8a71bd74d9d5d726c013","flags":["-conduit10","+network-uri","-warn-as-error","-warp-tests"],"package":"HTTP","revision":1,"source":"hackage","src_sha256":"df31d8efec775124dab856d7177ddcba31be9f9e0836ebdab03d94392f2dd453","version":"4000.4.1"},{"cabal_sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","flags":[],"package":"base16-bytestring","revision":0,"source":"hackage","src_sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","version":"1.0.2.0"},{"cabal_sha256":"50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8","flags":[],"package":"base64-bytestring","revision":0,"source":"hackage","src_sha256":"fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9","version":"1.2.1.0"},{"cabal_sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","flags":[],"package":"edit-distance","revision":1,"source":"hackage","src_sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","version":"0.2.2.1"},{"cabal_sha256":null,"flags":["-debug-conflict-sets","-debug-expensive-assertions","-debug-tracetree"],"package":"cabal-install-solver","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"},{"cabal_sha256":"facd0c04925ef925ec05243471fd16055229fdf51f64db1a1049de0cc6c6dfc3","flags":["-exe","+use-cbits"],"package":"cryptohash-sha256","revision":1,"source":"hackage","src_sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","version":"0.11.102.1"},{"cabal_sha256":"ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42","flags":["-example"],"package":"echo","revision":0,"source":"hackage","src_sha256":"c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43","version":"0.1.4"},{"cabal_sha256":"885c9e2410e5d91a08b199897df0867fecedf818216d7329a2d43a512833dd63","flags":["+no-donna","+test-doctests","+test-hlint","+test-properties"],"package":"ed25519","revision":6,"source":"hackage","src_sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","version":"0.0.5.0"},{"cabal_sha256":"efd4c08c4df1ac3f423858a834c0e3b5b4909febda66a901d12a8e1d57bddaa8","flags":["+ofd-locking"],"package":"lukko","revision":3,"source":"hackage","src_sha256":"a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f","version":"0.1.1.3"},{"cabal_sha256":"8214a9d37580f17f8b675109578a5dbe6853559eef156e34dc2233f1123ace33","flags":["-bundled-c-zlib","-non-blocking-ffi","-pkg-config"],"package":"zlib","revision":0,"source":"hackage","src_sha256":"9eaa989ad4534438b5beb51c1d3a4c8f6a088fdff0b259a5394fbf39aaee04da","version":"0.6.3.0"},{"cabal_sha256":"1a6cf81a4871559ef5bc47b230278b9ad4bf44f1e4dbf77bdc8e07f6e7b8d005","flags":["+base48","+cabal-syntax","+lukko","-mtl21","-old-directory","+use-network-uri"],"package":"hackage-security","revision":1,"source":"hackage","src_sha256":"a833a31610220506557e96fb6e3e8b05a2e1db8e7ebc06e91bbb699ddde0b276","version":"0.6.2.2"},{"cabal_sha256":"4ff4425c710cddf440dfbac6cd52310bb6b23e17902390ff71c9fc7eaafc4fcc","flags":[],"package":"regex-base","revision":1,"source":"hackage","src_sha256":"7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1","version":"0.94.0.2"},{"cabal_sha256":"9dbba4b65a3bb6975d9740814be5593c6b2d2d6a0b3febc8ec940edb9a9bbdf4","flags":["-_regex-posix-clib"],"package":"regex-posix","revision":1,"source":"hackage","src_sha256":"c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c","version":"0.96.0.1"},{"cabal_sha256":"61e2d98ff634b8b4b3db467772420c0f9c79c2da9ddf3d2daeb2af2417f2c535","flags":[],"package":"resolv","revision":5,"source":"hackage","src_sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","version":"0.1.2.0"},{"cabal_sha256":"6e9b1b233af80cc0aa17ea858d2641ba146fb11cbcc5970a52649e89d77282e2","flags":[],"package":"safe-exceptions","revision":0,"source":"hackage","src_sha256":"91ce28d8f8a6efd31788d4827ed5cdcb9a546ad4053a86c56f7947c66a30b5bf","version":"0.1.7.3"},{"cabal_sha256":null,"flags":["+lukko","+native-dns"],"package":"cabal-install","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"}]}
\ No newline at end of file
diff --git a/srcpkgs/cabal-install/template b/srcpkgs/cabal-install/template
index b3ebc1bb15b9..9f9bd3afe8a2 100644
--- a/srcpkgs/cabal-install/template
+++ b/srcpkgs/cabal-install/template
@@ -1,7 +1,7 @@
 # Template file for 'cabal-install'
 pkgname=cabal-install
-version=3.6.3.0
-revision=2
+version=3.8.1.0
+revision=1
 hostmakedepends="ghc curl tar which"
 makedepends="gmp-devel libffi-devel zlib-devel python3"
 depends="ghc"
@@ -10,24 +10,24 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
 license="BSD-3-Clause"
 homepage="https://hackage.haskell.org/package/cabal-install"
 distfiles="https://github.com/haskell/cabal/archive/Cabal-v${version}.tar.gz"
-checksum=dea086acad6d9fe5fe22d838b95b4e988022e8519f38d41609119ea32bfb7466
+checksum=d4eff9c1fcc5212360afac8d97da83b3aff79365490a449e9c47d3988c14b6bc
 nopie_files="/usr/bin/cabal"
 nocross=yes
 
 post_extract() {
-	cp "${FILESDIR}/linux-9.0.2.json" bootstrap/
+	cp "${FILESDIR}/linux-9.2.5.json" bootstrap/
 }
 
 post_patch() {
 	case "${XBPS_TARGET_MACHINE}" in
 	i686*)
 		# https://github.com/haskell/cabal/issues/7313
-		vsed -i -e 's/+ofd-locking/-ofd-locking/' bootstrap/linux-9.0.2.json ;;
+		vsed -i -e 's/+ofd-locking/-ofd-locking/' bootstrap/linux-9.2.5.json ;;
 	esac
 }
 
 do_build() {
-	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-9.0.2.json
+	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-9.2.5.json
 }
 do_install() {
 	vbin _build/bin/cabal

From bfcde1a6bcb96b4aeb73a1b115d301425f323814 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Mon, 21 Nov 2022 18:38:18 +0100
Subject: [PATCH 3/6] stack: update to 2.9.3

+ Remove most outdated patches concerning version bounds and
  compatibility with GHC 9.0.2.
+ Adjust ppc patch.
+ New showStackVersion patch to build with GHC 9.2.5.
---
 srcpkgs/stack/patches/aeson.patch            |  46 ----
 srcpkgs/stack/patches/fsnotify.patch         |  16 --
 srcpkgs/stack/patches/ghc9.0.2.patch         | 212 -------------------
 srcpkgs/stack/patches/persistent.patch       |  46 ----
 srcpkgs/stack/patches/ppc.patch              |   3 +-
 srcpkgs/stack/patches/showStackVersion.patch |  10 +
 srcpkgs/stack/template                       |  10 +-
 7 files changed, 16 insertions(+), 327 deletions(-)
 delete mode 100644 srcpkgs/stack/patches/aeson.patch
 delete mode 100644 srcpkgs/stack/patches/fsnotify.patch
 delete mode 100644 srcpkgs/stack/patches/ghc9.0.2.patch
 delete mode 100644 srcpkgs/stack/patches/persistent.patch
 create mode 100644 srcpkgs/stack/patches/showStackVersion.patch

diff --git a/srcpkgs/stack/patches/aeson.patch b/srcpkgs/stack/patches/aeson.patch
deleted file mode 100644
index 68f267c30cc8..000000000000
--- a/srcpkgs/stack/patches/aeson.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-commit 09e233ed73aa3335642f97c080ef27e42047c527
-Author: q66 <daniel@octaforge.org>
-Date:   Fri Mar 11 04:37:15 2022 +0100
-
-    constrain aeson to prevent build failures
-
-diff --git a/stack.cabal b/stack.cabal
-index dba5bf0..0195f2c 100644
---- a/stack.cabal
-+++ b/stack.cabal
-@@ -231,7 +231,7 @@ library
- 
-     build-depends:
-         Cabal >=3.2.1.0,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
-@@ -357,7 +357,7 @@ executable stack
- 
-     build-depends:
-         Cabal >=3.2.1.0,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
-@@ -485,7 +485,7 @@ executable stack-integration-test
- 
-     build-depends:
-         Cabal >=3.2.1.0,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
-@@ -621,7 +621,7 @@ test-suite stack-test
-     build-depends:
-         Cabal >=3.2.1.0,
-         QuickCheck >=2.14.2,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
diff --git a/srcpkgs/stack/patches/fsnotify.patch b/srcpkgs/stack/patches/fsnotify.patch
deleted file mode 100644
index f82fd8f73004..000000000000
--- a/srcpkgs/stack/patches/fsnotify.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-src/Stack/FileWatch.hs:29:49: error: Not in scope: ‘confUsePolling’
-   |
-29 | fileWatchPoll = fileWatchConf $ defaultConfig { confUsePolling = True }
-   |                                                 ^^^^^^^^^^^^^^
-
---- a/stack.cabal
-+++ b/stack.cabal
-@@ -256,7 +256,7 @@ library
-         file-embed >=0.0.14.0,
-         filelock >=0.1.1.5,
-         filepath >=1.4.2.1,
--        fsnotify >=0.3.0.1,
-+        fsnotify >=0.3.0.1 && <0.4.0.0,
-         generic-deriving >=1.13.1,
-         hackage-security >=0.6.0.1,
-         hashable >=1.3.0.0,
diff --git a/srcpkgs/stack/patches/ghc9.0.2.patch b/srcpkgs/stack/patches/ghc9.0.2.patch
deleted file mode 100644
index bdd77de58c6b..000000000000
--- a/srcpkgs/stack/patches/ghc9.0.2.patch
+++ /dev/null
@@ -1,212 +0,0 @@
-From cb7e56842a25f93142545fad21306a7c1750fbbf Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:26:22 -0700
-Subject: [PATCH 1/6] Use Cabal 3.4.0.0
-
----
- stack.yaml | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/stack.yaml b/stack.yaml
-index 005bd19f4..9472509be 100644
---- a/stack.yaml
-+++ b/stack.yaml
-@@ -20,6 +20,9 @@ flags:
- ghc-options:
-    "$locals": -fhide-source-paths
-
-+extra-deps:
-+- Cabal-3.4.0.0
-+
- drop-packages:
- # See https://github.com/commercialhaskell/stack/pull/4712
- - cabal-install
-
-From 11e11ab0edeba033b40a7fc62434be58dea82ce2 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:40:56 -0700
-Subject: [PATCH 2/6] Fix Flag => PackageFlag
-
----
- src/Stack/BuildPlan.hs | 2 +-
- src/Stack/Package.hs   | 8 ++++----
- 2 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/src/Stack/BuildPlan.hs b/src/Stack/BuildPlan.hs
-index 36f82236e..c5c80efc6 100644
---- a/src/Stack/BuildPlan.hs
-+++ b/src/Stack/BuildPlan.hs
-@@ -224,7 +224,7 @@ selectPackageBuildPlan platform compiler pool gpd =
-     flagCombinations :: NonEmpty [(FlagName, Bool)]
-     flagCombinations = mapM getOptions (genPackageFlags gpd)
-       where
--        getOptions :: C.Flag -> NonEmpty (FlagName, Bool)
-+        getOptions :: C.PackageFlag -> NonEmpty (FlagName, Bool)
-         getOptions f
-             | flagManual f = (fname, flagDefault f) :| []
-             | flagDefault f = (fname, True) :| [(fname, False)]
-diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs
-index 4db50d2a4..d9bca7af5 100644
---- a/src/Stack/Package.hs
-+++ b/src/Stack/Package.hs
-@@ -128,7 +128,7 @@ resolvePackage packageConfig gpkg =
-         (resolvePackageDescription packageConfig gpkg)
-
- packageFromPackageDescription :: PackageConfig
--                              -> [D.Flag]
-+                              -> [PackageFlag]
-                               -> PackageDescriptionPair
-                               -> Package
- packageFromPackageDescription packageConfig pkgFlags (PackageDescriptionPair pkgNoMod pkg) =
-@@ -935,9 +935,9 @@ resolvePackageDescription packageConfig (GenericPackageDescription desc defaultF
- -- | Make a map from a list of flag specifications.
- --
- -- What is @flagManual@ for?
--flagMap :: [Flag] -> Map FlagName Bool
-+flagMap :: [PackageFlag] -> Map FlagName Bool
- flagMap = M.fromList . map pair
--  where pair :: Flag -> (FlagName, Bool)
-+  where pair :: PackageFlag -> (FlagName, Bool)
-         pair = flagName &&& flagDefault
-
- data ResolveConditions = ResolveConditions
-@@ -986,7 +986,7 @@ resolveConditions rc addDeps (CondNode lib deps cs) = basic <> children
-                   case v of
-                     OS os -> os == rcOS rc
-                     Arch arch -> arch == rcArch rc
--                    Flag flag ->
-+                    PackageFlag flag ->
-                       fromMaybe False $ M.lookup flag (rcFlags rc)
-                       -- NOTE:  ^^^^^ This should never happen, as all flags
-                       -- which are used must be declared. Defaulting to
-
-From 8facd731ec3f2bbc15a083750740929167b33bb2 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:55:30 -0700
-Subject: [PATCH 3/6] Fix CabalSpecVersion
-
----
- src/Stack/Package.hs | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs
-index d9bca7af5..fca039140 100644
---- a/src/Stack/Package.hs
-+++ b/src/Stack/Package.hs
-@@ -32,6 +32,7 @@ import           Data.List (find, isPrefixOf, unzip)
- import qualified Data.Map.Strict as M
- import qualified Data.Set as S
- import qualified Data.Text as T
-+import           Distribution.CabalSpecVersion (CabalSpecVersion, cabalSpecMinimumLibraryVersion)
- import           Distribution.Compiler
- import           Distribution.ModuleName (ModuleName)
- import qualified Distribution.ModuleName as Cabal
-@@ -190,7 +191,7 @@ packageFromPackageDescription packageConfig pkgFlags (PackageDescriptionPair pkg
-           (library pkg)
-     , packageBuildType = buildType pkg
-     , packageSetupDeps = msetupDeps
--    , packageCabalSpec = either orLaterVersion id $ specVersionRaw pkg
-+    , packageCabalSpec = orLaterVersion $ mkVersion $ cabalSpecMinimumLibraryVersion $ specVersion pkg
-     }
-   where
-     extraLibNames = S.union subLibNames foreignLibNames
-@@ -696,7 +697,7 @@ packageDescModulesAndFiles pkg = do
-
- -- | Resolve globbing of files (e.g. data files) to absolute paths.
- resolveGlobFiles
--  :: Version -- ^ cabal file version
-+  :: CabalSpecVersion -- ^ cabal file version
-   -> [String]
-   -> RIO Ctx (Set (Path Abs File))
- resolveGlobFiles cabalFileVersion =
-
-From 004f14652409b7d0645215d354b2e599eb7f76bc Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:55:40 -0700
-Subject: [PATCH 4/6] Fix GenericPackageDescription
-
----
- src/Stack/Build.hs   | 2 +-
- src/Stack/Package.hs | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/Stack/Build.hs b/src/Stack/Build.hs
-index 23b9a9719..856903bed 100644
---- a/src/Stack/Build.hs
-+++ b/src/Stack/Build.hs
-@@ -358,7 +358,7 @@ checkComponentsBuildable lps =
- checkSubLibraryDependencies :: HasLogFunc env => [ProjectPackage] -> RIO env ()
- checkSubLibraryDependencies proj = do
-   forM_ proj $ \p -> do
--    C.GenericPackageDescription _ _ lib subLibs foreignLibs exes tests benches <- liftIO $ cpGPD . ppCommon $ p
-+    C.GenericPackageDescription _ _ _ lib subLibs foreignLibs exes tests benches <- liftIO $ cpGPD . ppCommon $ p
-
-     let dependencies = concatMap getDeps subLibs <>
-                        concatMap getDeps foreignLibs <>
-diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs
-index fca039140..39aad4d2f 100644
---- a/src/Stack/Package.hs
-+++ b/src/Stack/Package.hs
-@@ -863,7 +863,7 @@ data PackageDescriptionPair = PackageDescriptionPair
- resolvePackageDescription :: PackageConfig
-                           -> GenericPackageDescription
-                           -> PackageDescriptionPair
--resolvePackageDescription packageConfig (GenericPackageDescription desc defaultFlags mlib subLibs foreignLibs' exes tests benches) =
-+resolvePackageDescription packageConfig (GenericPackageDescription desc _ defaultFlags mlib subLibs foreignLibs' exes tests benches) =
-     PackageDescriptionPair
-       { pdpOrigBuildable = go False
-       , pdpModifiedBuildable = go True
-
-From 820797b566ef981936907f4d19658259d4a635a8 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 17:01:01 -0700
-Subject: [PATCH 5/6] Fix generatePackageVersionMacros
-
----
- src/Stack/Build/Execute.hs | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/Stack/Build/Execute.hs b/src/Stack/Build/Execute.hs
-index 1e381dd21..aedd7fee5 100644
---- a/src/Stack/Build/Execute.hs
-+++ b/src/Stack/Build/Execute.hs
-@@ -1214,7 +1214,7 @@ withSingleContext ActionContext {..} ee@ExecuteEnv {..} task@Task {..} allDeps m
-                             let macroDeps = mapMaybe snd matchedDeps
-                                 cppMacrosFile = setupDir </> relFileSetupMacrosH
-                                 cppArgs = ["-optP-include", "-optP" ++ toFilePath cppMacrosFile]
--                            writeBinaryFileAtomic cppMacrosFile (encodeUtf8Builder (T.pack (C.generatePackageVersionMacros macroDeps)))
-+                            writeBinaryFileAtomic cppMacrosFile (encodeUtf8Builder (T.pack (C.generatePackageVersionMacros (packageVersion package) macroDeps)))
-                             return (packageDBArgs ++ depsArgs ++ cppArgs)
-
-                         -- This branch is usually taken for builds, and
-
-From 336ab515e30f03c274f89ebe1cbc6aa1e597c2a4 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 17:04:16 -0700
-Subject: [PATCH 6/6] Fix ModuleReexport
-
----
- src/Stack/Script.hs | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/Stack/Script.hs b/src/Stack/Script.hs
-index 6bb67c049..9ebd2173d 100644
---- a/src/Stack/Script.hs
-+++ b/src/Stack/Script.hs
-@@ -18,6 +18,7 @@ import           Distribution.Compiler      (CompilerFlavor (..))
- import           Distribution.ModuleName    (ModuleName)
- import qualified Distribution.PackageDescription as PD
- import qualified Distribution.Types.CondTree as C
-+import qualified Distribution.Types.ModuleReexport as ModuleReexport
- import           Distribution.Types.PackageName (mkPackageName)
- import           Distribution.Types.VersionRange (withinRange)
- import           Distribution.System        (Platform (..))
-@@ -280,7 +281,7 @@ allExposedModules gpd = do
-       mlibrary = snd . C.simplifyCondTree checkCond <$> PD.condLibrary gpd
-   pure $ case mlibrary  of
-     Just lib -> PD.exposedModules lib ++
--                map PD.moduleReexportName (PD.reexportedModules lib)
-+                map ModuleReexport.moduleReexportName (PD.reexportedModules lib)
-     Nothing  -> mempty
-
- -- | The Stackage project introduced the concept of hidden packages,
diff --git a/srcpkgs/stack/patches/persistent.patch b/srcpkgs/stack/patches/persistent.patch
deleted file mode 100644
index cf462d7b80c2..000000000000
--- a/srcpkgs/stack/patches/persistent.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-commit 188d7ece06ee06ed6ccaf0df0c46285bd43898f4
-Author: q66 <daniel@octaforge.org>
-Date:   Thu Apr 28 05:02:09 2022 +0200
-
-    constrain persistent to fix build
-
-diff --git a/stack.cabal b/stack.cabal
-index dba5bf0..e221321 100644
---- a/stack.cabal
-+++ b/stack.cabal
-@@ -281,7 +281,7 @@ library
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
-@@ -407,7 +407,7 @@ executable stack
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
-@@ -537,7 +537,7 @@ executable stack-integration-test
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
-@@ -672,7 +672,7 @@ test-suite stack-test
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
diff --git a/srcpkgs/stack/patches/ppc.patch b/srcpkgs/stack/patches/ppc.patch
index fc4c540f0f92..4ab025e7663c 100644
--- a/srcpkgs/stack/patches/ppc.patch
+++ b/srcpkgs/stack/patches/ppc.patch
@@ -22,11 +22,10 @@
 
 --- a/stack.cabal
 +++ b/stack.cabal
-@@ -246,6 +246,7 @@
+@@ -246,4 +246,5 @@
          conduit >=1.3.4.1,
          conduit-extra >=1.3.5,
          containers >=0.6.2.1,
 +        cpu >=0.1.2,
          cryptonite >=0.27,
          cryptonite-conduit >=0.2.2,
-         deepseq >=1.4.4.0,
diff --git a/srcpkgs/stack/patches/showStackVersion.patch b/srcpkgs/stack/patches/showStackVersion.patch
new file mode 100644
index 000000000000..454e0c6dfe53
--- /dev/null
+++ b/srcpkgs/stack/patches/showStackVersion.patch
@@ -0,0 +1,10 @@
+--- a/src/main/BuildInfo.hs
++++ b/src/main/BuildInfo.hs
+@@ -32,5 +32,6 @@
+ #endif
+ import           Stack.Prelude
+ import qualified Paths_stack as Meta
++import Stack.Types.Version (showStackVersion)
+
+ versionString' :: String
+ #ifdef USE_GIT_INFO
diff --git a/srcpkgs/stack/template b/srcpkgs/stack/template
index b6c1f1578ed9..c76f90ff89ed 100644
--- a/srcpkgs/stack/template
+++ b/srcpkgs/stack/template
@@ -1,8 +1,8 @@
 # Template file for 'stack'
 pkgname=stack
-version=2.7.5
-revision=2
-_stackage="lts-19.0"
+version=2.9.3
+revision=1
+_stackage="lts-20.0"
 hostmakedepends="cabal-install pkg-config unzip"
 makedepends="zlib-devel pcre-devel"
 depends="git gmp-devel iana-etc"
@@ -12,8 +12,8 @@ license="BSD-3-Clause"
 homepage="https://haskellstack.org"
 distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz
  https://www.stackage.org/${_stackage}/cabal.config>cabal.config-${_stackage}"
-checksum="9ddd44c2a62e9404194d69e7dc1c94e707910620316b66d6ac0b3201a8f37e80
- e1de952bb6f62573e5c211df99ce6bb684c4cae7845f16c347ce9aa503d6374f"
+checksum="c4700cb227dd624249db2e649445f3df3d558c8a5ab2c98b5c7bf8545901f2dc
+ addcb336500f35b565403e72b0b3793fee74313439eacfb79e0c2121d88bc8ea"
 skip_extraction="cabal.config-${_stackage}"
 nocross=yes
 nopie_files="/usr/bin/stack"

From 43c22912fcbee45621319d96abf8603e2d5f6339 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Tue, 27 Dec 2022 15:29:21 +0100
Subject: [PATCH 4/6] hlint: update to 3.4.1

---
 srcpkgs/hlint/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/hlint/template b/srcpkgs/hlint/template
index 0109be25805f..c5efc617393c 100644
--- a/srcpkgs/hlint/template
+++ b/srcpkgs/hlint/template
@@ -1,16 +1,16 @@
 # Template file for 'hlint'
 pkgname=hlint
-version=3.3.6
+version=3.4.1
 revision=1
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 makedepends="ncurses-devel"
 short_desc="Haskell source code suggestions"
 maintainer="Inokentiy Babushkin <twk@twki.de>"
 license="BSD-3-Clause"
 homepage="https://github.com/ndmitchell/hlint"
 distfiles="https://github.com/ndmitchell/${pkgname}/archive/v${version}.tar.gz"
-checksum=7d536c03f77a0c259efb2b00b525ef34578ca8a4a95ccb412708e8c7172e2e6a
+checksum=667b1ee82ce47706e8206c4994add2483b0bf21c67861d4652b2b5aa90299dc5
 nocross=yes # Can't yet cross compile Haskell
 nopie_files="/usr/bin/hlint"
 

From bef4ba87d4872f0785d1d546613599791b2fa456 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Tue, 27 Dec 2022 16:19:12 +0100
Subject: [PATCH 5/6] hoogle: bump for stackage lts-20.0

---
 srcpkgs/hoogle/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/hoogle/template b/srcpkgs/hoogle/template
index dc487cab4017..00de03e81eef 100644
--- a/srcpkgs/hoogle/template
+++ b/srcpkgs/hoogle/template
@@ -1,9 +1,9 @@
 # Template file for 'hoogle'
 pkgname=hoogle
 version=5.0.18.3
-revision=1
+revision=2
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 makedepends="zlib-devel"
 short_desc="Haskell API search engine"
 maintainer="Inokentiy Babushkin <twk@twki.de>"

From 0ff10d252f1074acd9450926e1bba8eded586310 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Tue, 27 Dec 2022 17:38:42 +0100
Subject: [PATCH 6/6] pandoc: update to 2.19.2

+ Update pandoc-crossref and it's associated cabal file.
+ Bump lua dependency.
+ Remove roman-numerals dependency, as pandoc-crossref now has its own
  implementation of this.
---
 srcpkgs/pandoc/files/pandoc-crossref.cabal | 139 +++++++++++++++++----
 srcpkgs/pandoc/template                    |  17 ++-
 2 files changed, 121 insertions(+), 35 deletions(-)

diff --git a/srcpkgs/pandoc/files/pandoc-crossref.cabal b/srcpkgs/pandoc/files/pandoc-crossref.cabal
index 7aacc47278f3..850405534565 100644
--- a/srcpkgs/pandoc/files/pandoc-crossref.cabal
+++ b/srcpkgs/pandoc/files/pandoc-crossref.cabal
@@ -1,13 +1,9 @@
-cabal-version: 2.0
-
--- This file has been generated from package.yaml by hpack version 0.34.6.
+-- This file has been generated from package.yaml by hpack version 0.34.4.
 --
 -- see: https://github.com/sol/hpack
---
--- hash: 20655cd6263e9fe7e5737ee81b093c8c6f5eae67e260ddd3a821ac6ef5e35e69
 
 name:           pandoc-crossref
-version:        0.3.13.0
+version:        0.3.14.0
 synopsis:       Pandoc filter for cross-references
 description:    pandoc-crossref is a pandoc filter for numbering figures, equations, tables and cross-references to them.
 category:       Text
@@ -18,6 +14,99 @@ maintainer:     root@livid.pp.ru
 license:        GPL-2
 license-file:   LICENSE
 build-type:     Simple
+extra-source-files:
+    test/demo-chapters.inc
+    test/demo.inc
+    CHANGELOG.md
+    licenses/LICENSE.roman-numerals
+data-files:
+    docs/demo/demo.md
+    docs/index.md
+    test/m2m/chapDelim/expect.md
+    test/m2m/chapDelim/expect.tex
+    test/m2m/chapDelim/input.md
+    test/m2m/delim/expect.md
+    test/m2m/delim/expect.tex
+    test/m2m/delim/input.md
+    test/m2m/emptyChapterLabels/expect.md
+    test/m2m/emptyChapterLabels/expect.tex
+    test/m2m/emptyChapterLabels/input.md
+    test/m2m/eqnBlockTemplate/expect.md
+    test/m2m/eqnBlockTemplate/expect.tex
+    test/m2m/eqnBlockTemplate/input.md
+    test/m2m/eqnInlineTemplate/expect.md
+    test/m2m/eqnInlineTemplate/expect.tex
+    test/m2m/eqnInlineTemplate/input.md
+    test/m2m/equationNumberLaTeX/expect.md
+    test/m2m/equationNumberLaTeX/expect.tex
+    test/m2m/equationNumberLaTeX/input.md
+    test/m2m/equations-auto/expect.md
+    test/m2m/equations-auto/expect.tex
+    test/m2m/equations-auto/input.md
+    test/m2m/equations-tables-auto/expect.md
+    test/m2m/equations-tables-auto/expect.tex
+    test/m2m/equations-tables-auto/input.md
+    test/m2m/equations-tables/expect.md
+    test/m2m/equations-tables/expect.tex
+    test/m2m/equations-tables/input.md
+    test/m2m/equations/expect.md
+    test/m2m/equations/expect.tex
+    test/m2m/equations/input.md
+    test/m2m/label-precedence/expect.md
+    test/m2m/label-precedence/expect.tex
+    test/m2m/label-precedence/input.md
+    test/m2m/links-names/expect.md
+    test/m2m/links-names/expect.tex
+    test/m2m/links-names/input.md
+    test/m2m/links/expect.md
+    test/m2m/links/expect.tex
+    test/m2m/links/input.md
+    test/m2m/listing-captions-ids/expect.md
+    test/m2m/listing-captions-ids/expect.tex
+    test/m2m/listing-captions-ids/input.md
+    test/m2m/listings-code-block-caption-278/expect.md
+    test/m2m/listings-code-block-caption-278/expect.tex
+    test/m2m/listings-code-block-caption-278/input.md
+    test/m2m/listOfTemplates-buillet-list/expect.md
+    test/m2m/listOfTemplates-buillet-list/expect.tex
+    test/m2m/listOfTemplates-buillet-list/input.md
+    test/m2m/listOfTemplates-ord-list/expect.md
+    test/m2m/listOfTemplates-ord-list/expect.tex
+    test/m2m/listOfTemplates-ord-list/input.md
+    test/m2m/listOfTemplates/expect.md
+    test/m2m/listOfTemplates/expect.tex
+    test/m2m/listOfTemplates/input.md
+    test/m2m/loxItemTitle/expect.md
+    test/m2m/loxItemTitle/expect.tex
+    test/m2m/loxItemTitle/input.md
+    test/m2m/multiple-eqn-same-para/expect.md
+    test/m2m/multiple-eqn-same-para/expect.tex
+    test/m2m/multiple-eqn-same-para/input.md
+    test/m2m/secLabels/expect.md
+    test/m2m/secLabels/expect.tex
+    test/m2m/secLabels/input.md
+    test/m2m/secLevelLabels/expect.md
+    test/m2m/secLevelLabels/expect.tex
+    test/m2m/secLevelLabels/input.md
+    test/m2m/section-template/expect.md
+    test/m2m/section-template/expect.tex
+    test/m2m/section-template/input.md
+    test/m2m/setLabelAttribute/expect.md
+    test/m2m/setLabelAttribute/expect.tex
+    test/m2m/setLabelAttribute/input.md
+    test/m2m/subfigures-ccsDelim/expect.md
+    test/m2m/subfigures-ccsDelim/expect.tex
+    test/m2m/subfigures-ccsDelim/input.md
+    test/m2m/subfigures-grid/expect.md
+    test/m2m/subfigures-grid/expect.tex
+    test/m2m/subfigures-grid/input.md
+    test/m2m/subfigures/expect.md
+    test/m2m/subfigures/expect.tex
+    test/m2m/subfigures/input.md
+    test/m2m/titlesInRefs/expect.md
+    test/m2m/titlesInRefs/expect.tex
+    test/m2m/titlesInRefs/input.md
+cabal-version: 1.12
 
 source-repository head
   type: git
@@ -32,6 +121,7 @@ library
   exposed-modules:
       Text.Pandoc.CrossRef
   other-modules:
+      Text.Numeral.Roman
       Text.Pandoc.CrossRef.References
       Text.Pandoc.CrossRef.References.Blocks
       Text.Pandoc.CrossRef.References.List
@@ -60,13 +150,12 @@ library
     , microlens >=0.4.12.0 && <0.5.0.0
     , microlens-mtl >=0.2.0.1 && <0.3.0.0
     , microlens-th >=0.4.3.10 && <0.5.0.0
-    , mtl >=1.1 && <2.3
-    , pandoc >=2.10 && <2.18
-    , pandoc-types >=1.21 && <1.23
-    , roman-numerals ==0.5.*
+    , mtl >=1.1 && <2.4
+    , pandoc >=2.18 && <2.20
+    , pandoc-types >=1.22.2 && <1.23
     , syb >=0.4 && <0.8
     , template-haskell >=2.7.0.0 && <3.0.0.0
-    , text >=1.2.2 && <1.3
+    , text >=1.2.2 && <2.1
     , utility-ht >=0.0.11 && <0.1.0
   default-language: Haskell2010
 
@@ -82,13 +171,13 @@ executable pandoc-crossref
     , deepseq ==1.4.*
     , gitrev >=1.3.1 && <1.4
     , open-browser ==0.2.*
-    , optparse-applicative >=0.13 && <0.17
-    , pandoc >=2.10 && <2.18
+    , optparse-applicative >=0.13 && <0.18
+    , pandoc >=2.18 && <2.20
     , pandoc-crossref
-    , pandoc-types >=1.21 && <1.23
+    , pandoc-types >=1.22.2 && <1.23
     , template-haskell >=2.7.0.0 && <3.0.0.0
     , temporary >=1.2 && <1.4
-    , text >=1.2.2 && <1.3
+    , text >=1.2.2 && <2.1
   default-language: Haskell2010
 
 test-suite test-integrative
@@ -102,10 +191,10 @@ test-suite test-integrative
     , directory >=1 && <1.4
     , filepath >=1.1 && <1.5
     , hspec >=2.4.4 && <3
-    , pandoc >=2.10 && <2.18
+    , pandoc >=2.18 && <2.20
     , pandoc-crossref
-    , pandoc-types >=1.21 && <1.23
-    , text >=1.2.2 && <1.3
+    , pandoc-types >=1.22.2 && <1.23
+    , text >=1.2.2 && <2.1
   if flag(enable_flaky_tests)
     cpp-options: -DFLAKY
   default-language: Haskell2010
@@ -128,10 +217,10 @@ test-suite test-pandoc-crossref
     , hspec >=2.4.4 && <3
     , microlens >=0.4.12.0 && <0.5.0.0
     , mtl >=1.1 && <2.3
-    , pandoc >=2.10 && <2.18
+    , pandoc >=2.18 && <2.20
     , pandoc-crossref
-    , pandoc-types >=1.21 && <1.23
-    , text >=1.2.2 && <1.3
+    , pandoc-types >=1.22.2 && <1.23
+    , text >=1.2.2 && <2.1
   if flag(enable_flaky_tests)
     cpp-options: -DFLAKY
   default-language: Haskell2010
@@ -146,9 +235,9 @@ benchmark simple
   ghc-options: -Wall -fno-warn-unused-do-bind -threaded
   build-depends:
       base >=4.11 && <5
-    , criterion >=1.5.9.0 && <1.6
-    , pandoc >=2.10 && <2.18
+    , criterion >=1.5.9.0 && <1.7
+    , pandoc >=2.18 && <2.20
     , pandoc-crossref
-    , pandoc-types >=1.21 && <1.23
-    , text >=1.2.2 && <1.3
+    , pandoc-types >=1.22.2 && <1.23
+    , text >=1.2.2 && <2.1
   default-language: Haskell2010
diff --git a/srcpkgs/pandoc/template b/srcpkgs/pandoc/template
index 9bdf32ef3c53..0ce941c6fcc5 100644
--- a/srcpkgs/pandoc/template
+++ b/srcpkgs/pandoc/template
@@ -1,20 +1,19 @@
 # Template file for 'pandoc'
 pkgname=pandoc
 # Keep in sync with http://www.stackage.org/lts
-version=2.17.1.1
+version=2.19.2
 revision=1
 _sidenote_version=0.22.1.0
 _monad_gen_version=0.3.0.1
-_crossref_version=0.3.12.2
-_roman_numerals_version=0.5.1.5
+_crossref_version=0.3.14.0
 create_wrksrc=yes
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 make_build_args="
  --flag pandoc:embed_data_files
  --flag=lua:pkg-config"
 hostmakedepends="pkg-config unzip wget"
-makedepends="zlib-devel lua53-devel tar"
+makedepends="zlib-devel lua54-devel tar"
 short_desc="Universal converter between markup formats"
 maintainer="slotThe <soliditsallgood@mailbox.org>"
 license="GPL-2.0-or-later, BSD-3-Clause"
@@ -22,13 +21,11 @@ homepage="http://johnmacfarlane.net/pandoc/"
 distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz
  https://hackage.haskell.org/package/${pkgname}-sidenote-${_sidenote_version}/${pkgname}-sidenote-${_sidenote_version}.tar.gz
  https://hackage.haskell.org/package/monad-gen-${_monad_gen_version}/monad-gen-${_monad_gen_version}.tar.gz
- https://hackage.haskell.org/package/${pkgname}-crossref-${_crossref_version}/${pkgname}-crossref-${_crossref_version}.tar.gz
- https://hackage.haskell.org/package/roman-numerals-${_roman_numerals_version}/roman-numerals-${_roman_numerals_version}.tar.gz"
-checksum="649ec528d1413130c5ce304b826ff473b3696269eea8834d908589e775bd1ad1
+ https://hackage.haskell.org/package/${pkgname}-crossref-${_crossref_version}/${pkgname}-crossref-${_crossref_version}.tar.gz"
+checksum="36e83694c36a5af35a4442c4d5abd4273289d9d309793466f59c1632e87d4245
  c39dd7343b9cb4dc5b1c91c9e47c3d357874e9e1a30b8d377bbea0b1d50323b2
  be8485023fce236b5b915f2f6074f7b0470a2040f84cdd137c5227f1b4c98465
- 94540325c9c98ae4d5199c634bf402ffa41e3c5b020d7207daef90fd9e224fb4
- b9c7195b69b1662a286d2c28a55fafdcb693c522ba5eb54a11b1d0a4e92eaa81"
+ 06d163e2cec3f285919295c41a0580f203bb157d05eb06a494dbc093cbefa5b8"
 subpackages="
  pandoc-sidenote
  pandoc-crossref"

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [WIP] [ci skip] GHC 9.2.5
  2022-12-27  9:58 [PR PATCH] [WIP] [ci skip] GHC 9.2.5 slotThe
  2022-12-28  6:35 ` [PR PATCH] [Updated] " slotThe
@ 2022-12-28 11:58 ` q66
  2022-12-28 13:55 ` [PR PATCH] [Updated] " slotThe
                   ` (10 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: q66 @ 2022-12-28 11:58 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 219 bytes --]

New comment by q66 on void-packages repository

https://github.com/void-linux/void-packages/pull/41316#issuecomment-1366597789

Comment:
i no longer work on void and i have discontinued the ppc port, so nothing from me

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PR PATCH] [Updated] [WIP] [ci skip] GHC 9.2.5
  2022-12-27  9:58 [PR PATCH] [WIP] [ci skip] GHC 9.2.5 slotThe
  2022-12-28  6:35 ` [PR PATCH] [Updated] " slotThe
  2022-12-28 11:58 ` q66
@ 2022-12-28 13:55 ` slotThe
  2022-12-28 15:51 ` slotThe
                   ` (9 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: slotThe @ 2022-12-28 13:55 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1286 bytes --]

There is an updated pull request by slotThe against master on the void-packages repository

https://github.com/slotThe/void-packages ghc-9.2.5
https://github.com/void-linux/void-packages/pull/41316

[WIP] [ci skip] GHC 9.2.5
Took much longer than anticipated, since I wanted to wait for stack 2.9.3 first.  Here's to hoping that opening a PR will motivate me to work more rapidly :)

### Core packages to bump

- [x] ghc
- [ ] ghc-bin
    - [ ] x86_64 (hash)
    - [ ] i686 (hash)
    - [ ] x86_64-musl
    Cc. @q66
    - [ ] ppc64le
    - [ ] ppc64le-musl
    - [ ] ppc64
    Cc. @ftrvxmtrx
    - [ ] aarch64
    - [ ] aarch64-musl
- [x] cabal-install
- [x] stack

#### Rebuild literally every single haskell package we have and see if anything's broken

- [ ] git-mediate
- [ ] kmonad
- [ ] cgrep
- [ ] debug-me
- [x] hlint
- [x] hoogle
- [ ] darcs
- [ ] shellcheck
- [ ] git-annex
- [ ] hledger
- [x] pandoc
- [ ] xmobar
- [ ] haskell-language-server
- [ ] glirc

### Other things to do

- [ ] incorporate https://github.com/void-linux/void-packages/pull/27832 @astralchan
- [ ] incorporate https://github.com/void-linux/void-packages/pull/35624 @kwshi

A patch file from https://github.com/void-linux/void-packages/pull/41316.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-ghc-9.2.5-41316.patch --]
[-- Type: text/x-diff, Size: 61209 bytes --]

From 72eb2785d19f85f6719819475c9ae6076859e9e6 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Thu, 17 Nov 2022 12:47:46 +0100
Subject: [PATCH 01/11] ghc: update to 9.2.5

+ Adjust ppc64-be-elfv2.patch
  * The libraries/ghci/GHCi/InfoTable.hsc bit seems to have been
    merged, hence delete it.
  * Adjust for changes in fptools and configure.
  * Delete now out-of-date TOC.
---
 srcpkgs/ghc/patches/ppc64-be-elfv2.patch | 105 +++++------------------
 srcpkgs/ghc/template                     |   6 +-
 2 files changed, 23 insertions(+), 88 deletions(-)

diff --git a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
index df1a0bfe15ba..5fa356be700e 100644
--- a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
+++ b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
@@ -3,100 +3,36 @@ From: q66 <daniel@octaforge.org>
 Date: Thu, 28 Apr 2022 00:48:04 +0200
 Subject: [PATCH] fix up runtime for ppc64 BE ELFv2 + ensure it's used
 
----
- configure                         |  2 +-
- libraries/ghci/GHCi/InfoTable.hsc | 36 ++++++++++++-------------------
- m4/fptools.m4                     |  2 +-
- rts/AdjustorAsm.S                 |  2 +-
- rts/StgCRun.c                     |  4 ++--
- rts/StgCRunAsm.S                  |  2 +-
- rts/adjustor/NativeIA64.c         |  2 +-
- rts/adjustor/NativePowerPC.c      |  2 +-
- 8 files changed, 22 insertions(+), 30 deletions(-)
-
-diff --git a/configure b/configure
-index 8310e6f..eac1124 100755
 --- a/configure
 +++ b/configure
-@@ -10508,7 +10508,7 @@ printf "%s\n" "no" >&6; }
+@@ -10871,7 +10871,7 @@
              test -z "$2" || eval "$2=ArchPPC"
              ;;
          powerpc64)
--            test -z "$2" || eval "$2=\"ArchPPC_64 {ppc_64ABI = ELF_V1}\""
-+            test -z "$2" || eval "$2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
+-            test -z "$2" || eval "$2=\"ArchPPC_64 ELF_V1\""
++            test -z "$2" || eval "$2=\"ArchPPC_64 ELF_V2\""
              ;;
          powerpc64le)
-             test -z "$2" || eval "$2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
-diff --git a/libraries/ghci/GHCi/InfoTable.hsc b/libraries/ghci/GHCi/InfoTable.hsc
-index ad4eb4d..e4f1c0c 100644
---- a/libraries/ghci/GHCi/InfoTable.hsc
-+++ b/libraries/ghci/GHCi/InfoTable.hsc
-@@ -231,30 +231,22 @@ mkJumpToAddr' platform a = case platform of
-                 , fromIntegral w64
-                 , fromIntegral (w64 `shiftR` 32) ]
-     ArchPPC64 ->
--        -- We use the compiler's register r12 to read the function
--        -- descriptor and the linker's register r11 as a temporary
--        -- register to hold the function entry point.
--        -- In the medium code model the function descriptor
--        -- is located in the first two gigabytes, i.e. the address
--        -- of the function pointer is a non-negative 32 bit number.
--        -- 0x0EADBEEF stands for the address of the function pointer:
--        --    0:   3d 80 0e ad     lis     r12,0x0EAD
--        --    4:   61 8c be ef     ori     r12,r12,0xBEEF
--        --    8:   e9 6c 00 00     ld      r11,0(r12)
--        --    c:   e8 4c 00 08     ld      r2,8(r12)
--        --   10:   7d 69 03 a6     mtctr   r11
--        --   14:   e9 6c 00 10     ld      r11,16(r12)
--        --   18:   4e 80 04 20     bctr
--       let  w32 = fromIntegral (funPtrToInt a)
-+        -- The ABI requires r12 to point to the function's entry point.
-+        -- We use the medium code model where code resides in the first
-+        -- two gigabytes, so loading a non-negative32 bit address
-+        -- with lis followed by ori is fine.
-+        -- 0x0EADBEEF stands for the address:
-+        -- 3D800EAD lis r12,0x0EAD
-+        -- 618CBEEF ori r12,r12,0xBEEF
-+        -- 7D8903A6 mtctr r12
-+        -- 4E800420 bctr
-+
-+        let w32 = fromIntegral (funPtrToInt a)
-             hi16 x = (x `shiftR` 16) .&. 0xFFFF
-             lo16 x = x .&. 0xFFFF
--       in Right [ 0x3D800000 .|. hi16 w32,
--                  0x618C0000 .|. lo16 w32,
--                  0xE96C0000,
--                  0xE84C0008,
--                  0x7D6903A6,
--                  0xE96C0010,
--                  0x4E800420]
-+        in Right [ 0x3D800000 .|. hi16 w32,
-+                   0x618C0000 .|. lo16 w32,
-+                   0x7D8903A6, 0x4E800420 ]
- 
-     ArchPPC64LE ->
-         -- The ABI requires r12 to point to the function's entry point.
-diff --git a/m4/fptools.m4 b/m4/fptools.m4
-index 8c6c9b7..eb25c37 100644
---- a/m4/fptools.m4
-+++ b/m4/fptools.m4
-@@ -201,7 +201,7 @@ AC_DEFUN([FPTOOLS_SET_HASKELL_PLATFORM_VARS],
+             test -z "$2" || eval "$2=\"ArchPPC_64 ELF_V2\""
+--- a/m4/fptools_set_haskell_platform_vars.m4
++++ b/m4/fptools_set_haskell_platform_vars.m4
+@@ -15,7 +15,7 @@
              test -z "[$]2" || eval "[$]2=ArchPPC"
              ;;
          powerpc64)
--            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V1}\""
-+            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
+-            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 ELF_V1\""
++            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 ELF_V2\""
              ;;
          powerpc64le)
-             test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
+             test -z "[$]2" || eval "[$]2=\"ArchPPC_64 ELF_V2\""
 diff --git a/rts/AdjustorAsm.S b/rts/AdjustorAsm.S
 index 2795b83..63cfe91 100644
 --- a/rts/AdjustorAsm.S
 +++ b/rts/AdjustorAsm.S
 @@ -2,7 +2,7 @@
- 
+
  /* ******************************** PowerPC ******************************** */
- 
+
 -#if defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
 +#if defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
  #if !(defined(powerpc_HOST_ARCH) && defined(linux_HOST_OS))
@@ -109,21 +45,21 @@ index f43227a..927d44a 100644
 @@ -724,7 +724,7 @@ StgRunIsImplementedInAssembler(void)
     Everything is in assembler, so we don't have to deal with GCC...
     -------------------------------------------------------------------------- */
- 
+
 -#if defined(powerpc64_HOST_ARCH)
 +#if defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2)
  /* 64-bit PowerPC ELF ABI 1.9
   *
   * Stack frame organization (see Figure 3-17, ELF ABI 1.9, p 14)
 @@ -792,7 +792,7 @@ StgRunIsImplementedInAssembler(void)
- 
+
  #endif
- 
+
 -#if defined(powerpc64le_HOST_ARCH)
 +#if defined(powerpc64le_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF == 2))
  /* -----------------------------------------------------------------------------
     PowerPC 64 little endian architecture
- 
+
 diff --git a/rts/StgCRunAsm.S b/rts/StgCRunAsm.S
 index 60f1bf9..c6794d7 100644
 --- a/rts/StgCRunAsm.S
@@ -131,7 +67,7 @@ index 60f1bf9..c6794d7 100644
 @@ -5,7 +5,7 @@
   * then functions StgRun/StgReturn are implemented in file StgCRun.c */
  #if !defined(USE_MINIINTERPRETER)
- 
+
 -#if defined(powerpc64le_HOST_ARCH)
 +#if defined(powerpc64le_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF == 2))
  # if defined(linux_HOST_OS)
@@ -157,12 +93,11 @@ index 2e5d605..caef5d3 100644
 @@ -29,7 +29,7 @@ __asm__("obscure_ccall_ret_code:\n\t"
  extern void obscure_ccall_ret_code(void);
  #endif /* defined(linux_HOST_OS) */
- 
+
 -#if defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
 +#if defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
  #if !(defined(powerpc_HOST_ARCH) && defined(linux_HOST_OS))
- 
+
  /* !!! !!! WARNING: !!! !!!
--- 
+--
 2.35.1
-
diff --git a/srcpkgs/ghc/template b/srcpkgs/ghc/template
index bf76202f4098..c4808339cd29 100644
--- a/srcpkgs/ghc/template
+++ b/srcpkgs/ghc/template
@@ -1,7 +1,7 @@
 # Template file for 'ghc'
 pkgname=ghc
 # Keep this synchronized with http://www.stackage.org/lts
-version=9.0.2
+version=9.2.5
 revision=1
 build_style=gnu-configure
 hostmakedepends="automake docbook-xsl ghc-bin libxslt libnuma-devel
@@ -9,11 +9,11 @@ hostmakedepends="automake docbook-xsl ghc-bin libxslt libnuma-devel
 makedepends="libnuma-devel"
 depends="perl gcc libffi-devel gmp-devel libnuma-devel"
 short_desc="Glorious Haskell Compiler"
-maintainer="slotThe <soliditsallgood@mailbox.org>"
+maintainer="Tony Zorman <soliditsallgood@mailbox.org>"
 license="BSD-3-Clause"
 homepage="http://www.haskell.org/ghc/"
 distfiles="http://www.haskell.org/ghc/dist/${version%[!0-9]}/${pkgname}-${version%[!0-9]}-src.tar.xz"
-checksum=140e42b96346322d1a39eb17602bcdc76e292028ad4a69286b230bab188a9197
+checksum=0606797d1b38e2d88ee2243f38ec6b9a1aa93e9b578e95f0de9a9c0a4144021c
 nocross=yes # this is conditionally unset for cross bindist
 nodebug=yes # work around assembler error "Fatal error: duplicate .debug_line sections"
 _bindir="/usr/lib/${pkgname}-${version}/bin"

From 3d349a8a1192747ff14dd89e54fc0f7f19a991f5 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Fri, 18 Nov 2022 14:56:06 +0100
Subject: [PATCH 02/11] cabal-install: update to 3.8.1.0.

---
 srcpkgs/cabal-install/files/linux-9.0.2.json |  1 -
 srcpkgs/cabal-install/files/linux-9.2.5.json |  1 +
 srcpkgs/cabal-install/template               | 12 ++++++------
 3 files changed, 7 insertions(+), 7 deletions(-)
 delete mode 100644 srcpkgs/cabal-install/files/linux-9.0.2.json
 create mode 100644 srcpkgs/cabal-install/files/linux-9.2.5.json

diff --git a/srcpkgs/cabal-install/files/linux-9.0.2.json b/srcpkgs/cabal-install/files/linux-9.0.2.json
deleted file mode 100644
index f3cb6b4aeeb5..000000000000
--- a/srcpkgs/cabal-install/files/linux-9.0.2.json
+++ /dev/null
@@ -1 +0,0 @@
-{"builtin":[{"package":"rts","version":"1.0.2"},{"package":"ghc-prim","version":"0.7.0"},{"package":"ghc-bignum","version":"1.1"},{"package":"base","version":"4.15.1.0"},{"package":"array","version":"0.5.4.0"},{"package":"deepseq","version":"1.4.5.0"},{"package":"bytestring","version":"0.10.12.1"},{"package":"containers","version":"0.6.4.1"},{"package":"binary","version":"0.8.8.0"},{"package":"filepath","version":"1.4.2.1"},{"package":"time","version":"1.9.3"},{"package":"unix","version":"2.7.2.2"},{"package":"directory","version":"1.3.6.2"},{"package":"transformers","version":"0.5.6.2"},{"package":"mtl","version":"2.2.2"},{"package":"ghc-boot-th","version":"9.0.2"},{"package":"pretty","version":"1.1.3.6"},{"package":"template-haskell","version":"2.17.0.0"},{"package":"text","version":"1.2.5.0"},{"package":"parsec","version":"3.1.14.0"},{"package":"process","version":"1.6.13.2"},{"package":"stm","version":"2.5.0.0"}],"dependencies":[{"cabal_sha256":null,"flags":["-bundled-binary-generic"],"package":"Cabal","revision":null,"source":"local","src_sha256":null,"version":"3.6.3.0"},{"cabal_sha256":"714a55fd28d3e2533bd5b49e74f604ef8e5d7b06f249c8816f6c54aed431dcf1","flags":["-optimised-mixer"],"package":"splitmix","revision":0,"source":"hackage","src_sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","version":"0.1.0.4"},{"cabal_sha256":"8bee24dc0c985a90ee78d94c61f8aed21c49633686f0f1c14c5078d818ee43a2","flags":[],"package":"random","revision":0,"source":"hackage","src_sha256":"265c768fc5f2ca53cde6a87e706b4448cad474c3deece933c103f24453661457","version":"1.2.1"},{"cabal_sha256":"3a2beeafb220f9de706568a7e4a5b3c762cc4c9f25c94d7ef795b8c2d6a691d7","flags":["+integer-gmp","-random-initial-seed"],"package":"hashable","revision":1,"source":"hackage","src_sha256":"baaad82cd4271b197016bdbe76f22d5c3d3913fe38534cec7d817db9bae19886","version":"1.3.5.0"},{"cabal_sha256":"b83dec34a53520de84c6dd3dc7aae45d22409b46eb471c478b98108215a370f0","flags":["-bench"],"package":"async","revision":1,"source":"hackage","src_sha256":"484df85be0e76c4fed9376451e48e1d0c6e97952ce79735b72d54297e7e0a725","version":"2.2.4"},{"cabal_sha256":"037d70bb091c49f68726dde920f6a003b646835a86cdcb5b5ad58ad9af3207d9","flags":[],"package":"Cabal-syntax","revision":0,"source":"hackage","src_sha256":"ca25e5fc601397565fa857f1aa477740fac7f43d659e77c4d9b1485dca239251","version":"3.6.0.0"},{"cabal_sha256":"d8699f46b485f105eea9c7158f3d432ca578e6bbe5d68751184e9899a41d430d","flags":["-old-bytestring","-old-time"],"package":"tar","revision":4,"source":"hackage","src_sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","version":"0.5.1.1"},{"cabal_sha256":"e3d78b13db9512aeb106e44a334ab42b7aa48d26c097299084084cb8be5c5568","flags":["-devel"],"package":"network","revision":0,"source":"hackage","src_sha256":"7f7620fef1a1af3d3d6747f510e73223a5c600e7d7fd9ace073d1222bdc63d85","version":"3.1.2.7"},{"cabal_sha256":"a16dd922947a6877defe52c4c38d1ab48ed3f85a826930f5d1a568741d619993","flags":[],"package":"th-compat","revision":0,"source":"hackage","src_sha256":"6b5059caf6714f47da92953badf2f556119877e09708c14e206b3ae98b8681c6","version":"0.1.3"},{"cabal_sha256":"a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d","flags":[],"package":"network-uri","revision":0,"source":"hackage","src_sha256":"57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584","version":"2.6.4.1"},{"cabal_sha256":"6042643c15a0b43e522a6693f1e322f05000d519543a84149cb80aeffee34f71","flags":["-conduit10","-mtl1","+network-uri","-warn-as-error","-warp-tests"],"package":"HTTP","revision":1,"source":"hackage","src_sha256":"d6091c037871ac3d08d021c906206174567499d5a26a6cb804cf530cd590fe2d","version":"4000.3.16"},{"cabal_sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","flags":[],"package":"base16-bytestring","revision":0,"source":"hackage","src_sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","version":"1.0.2.0"},{"cabal_sha256":"50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8","flags":[],"package":"base64-bytestring","revision":0,"source":"hackage","src_sha256":"fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9","version":"1.2.1.0"},{"cabal_sha256":"188d0b5a0491e8b686b32d9b144c9287760ba333d2509bf3f17e3d846fbc2332","flags":["-exe","+use-cbits"],"package":"cryptohash-sha256","revision":0,"source":"hackage","src_sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","version":"0.11.102.1"},{"cabal_sha256":"ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42","flags":["-example"],"package":"echo","revision":0,"source":"hackage","src_sha256":"c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43","version":"0.1.4"},{"cabal_sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","flags":[],"package":"edit-distance","revision":1,"source":"hackage","src_sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","version":"0.2.2.1"},{"cabal_sha256":"24ac7b5f3d9fa3c2f70262b329f2a75f24e7fd829f88c189b388efa1bcd67eb2","flags":["+no-donna","+test-doctests","+test-hlint","+test-properties"],"package":"ed25519","revision":5,"source":"hackage","src_sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","version":"0.0.5.0"},{"cabal_sha256":"c084c043a40632d3cafcac50fb5eeff84d91edb070a54baa94945f1c976f97c0","flags":["+ofd-locking"],"package":"lukko","revision":2,"source":"hackage","src_sha256":"a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f","version":"0.1.1.3"},{"cabal_sha256":"262a93dbf370be59f4ee57f3b1a51b338bc2c309797daa37c14f2262ae61dae4","flags":["-bundled-c-zlib","-non-blocking-ffi","-pkg-config"],"package":"zlib","revision":1,"source":"hackage","src_sha256":"807f6bddf9cb3c517ce5757d991dde3c7e319953a22c86ee03d74534bd5abc88","version":"0.6.2.3"},{"cabal_sha256":"eb34c3e2fa39f9819293045c03e56148a7125573c1de265cdfe5d967f1d71c6e","flags":["+base48","-cabal-syntax","+lukko","-mtl21","-old-directory","+use-network-uri"],"package":"hackage-security","revision":1,"source":"hackage","src_sha256":"bf22cd16dde7d6b7130463f4d7324b64a2964d9ef3f523df97d7cb98544d64a8","version":"0.6.2.1"},{"cabal_sha256":"2561adac8ce373910948066debe090a22b336b129ba5af18c0332524d16e72ce","flags":[],"package":"regex-base","revision":0,"source":"hackage","src_sha256":"7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1","version":"0.94.0.2"},{"cabal_sha256":"b6421e5356766b0c0a78b6094ae2e3a6259b42c147b717283c03c1cb09163dca","flags":["-_regex-posix-clib"],"package":"regex-posix","revision":0,"source":"hackage","src_sha256":"c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c","version":"0.96.0.1"},{"cabal_sha256":"2088eb9368b920f80bbe4e3b03c3b8484090208f5c3b31645bd67a9ef7d26db4","flags":[],"package":"resolv","revision":4,"source":"hackage","src_sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","version":"0.1.2.0"},{"cabal_sha256":null,"flags":["-debug-conflict-sets","-debug-expensive-assertions","-debug-tracetree","+lukko","+native-dns"],"package":"cabal-install","revision":null,"source":"local","src_sha256":null,"version":"3.6.2.0"}]}
\ No newline at end of file
diff --git a/srcpkgs/cabal-install/files/linux-9.2.5.json b/srcpkgs/cabal-install/files/linux-9.2.5.json
new file mode 100644
index 000000000000..13fe257cbb30
--- /dev/null
+++ b/srcpkgs/cabal-install/files/linux-9.2.5.json
@@ -0,0 +1 @@
+{"builtin":[{"package":"rts","version":"1.0.2"},{"package":"ghc-prim","version":"0.8.0"},{"package":"ghc-bignum","version":"1.2"},{"package":"base","version":"4.16.4.0"},{"package":"array","version":"0.5.4.0"},{"package":"deepseq","version":"1.4.6.1"},{"package":"ghc-boot-th","version":"9.2.5"},{"package":"pretty","version":"1.1.3.6"},{"package":"template-haskell","version":"2.18.0.0"},{"package":"bytestring","version":"0.11.3.1"},{"package":"containers","version":"0.6.5.1"},{"package":"binary","version":"0.8.9.0"},{"package":"filepath","version":"1.4.2.2"},{"package":"time","version":"1.11.1.1"},{"package":"unix","version":"2.7.2.2"},{"package":"directory","version":"1.3.6.2"},{"package":"transformers","version":"0.5.6.2"},{"package":"mtl","version":"2.2.2"},{"package":"text","version":"1.2.5.0"},{"package":"parsec","version":"3.1.15.0"},{"package":"process","version":"1.6.16.0"},{"package":"stm","version":"2.5.0.2"},{"package":"exceptions","version":"0.10.4"}],"dependencies":[{"cabal_sha256":null,"flags":[],"package":"Cabal-syntax","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"},{"cabal_sha256":null,"flags":[],"package":"Cabal","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"},{"cabal_sha256":"804e2574bc7e32d08cbab91e47ee6287b4df7d50851d73f9e778f94a9a7814c7","flags":["-optimised-mixer"],"package":"splitmix","revision":1,"source":"hackage","src_sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","version":"0.1.0.4"},{"cabal_sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","flags":[],"package":"random","revision":0,"source":"hackage","src_sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","version":"1.2.1.1"},{"cabal_sha256":"50b2f002c68fe67730ee7a3cd8607486197dd99b084255005ad51ecd6970a41b","flags":["+containers","+integer-gmp","-random-initial-seed"],"package":"hashable","revision":0,"source":"hackage","src_sha256":"e1b305c280e66ad827edeaedd6933b9fc4174f626882877eab2a08344e665e87","version":"1.4.1.0"},{"cabal_sha256":"2b9409023536823233ce3134558565d01b3382e651fa54ac8cb8a99967e023c9","flags":["-bench"],"package":"async","revision":2,"source":"hackage","src_sha256":"484df85be0e76c4fed9376451e48e1d0c6e97952ce79735b72d54297e7e0a725","version":"2.2.4"},{"cabal_sha256":"bc14969ea4adfec6eee20264decf4a07c4002b38b2aa802d58d86b1a2cf7b895","flags":["-old-bytestring","-old-time"],"package":"tar","revision":5,"source":"hackage","src_sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","version":"0.5.1.1"},{"cabal_sha256":"e3d78b13db9512aeb106e44a334ab42b7aa48d26c097299084084cb8be5c5568","flags":["-devel"],"package":"network","revision":0,"source":"hackage","src_sha256":"7f7620fef1a1af3d3d6747f510e73223a5c600e7d7fd9ace073d1222bdc63d85","version":"3.1.2.7"},{"cabal_sha256":"6ca77c4e80b4e4109e30549c269631a9cc295c8fc2431ce4123972a5f80f7bfc","flags":[],"package":"th-compat","revision":0,"source":"hackage","src_sha256":"d8f97ac14ab47b6b8a7b0fdb4ff95426322ec56badd01652ac15da4a44d4bab8","version":"0.1.4"},{"cabal_sha256":"a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d","flags":[],"package":"network-uri","revision":0,"source":"hackage","src_sha256":"57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584","version":"2.6.4.1"},{"cabal_sha256":"b878d575c470bd1f72d37af6654d924ab2b9489d88de8a71bd74d9d5d726c013","flags":["-conduit10","+network-uri","-warn-as-error","-warp-tests"],"package":"HTTP","revision":1,"source":"hackage","src_sha256":"df31d8efec775124dab856d7177ddcba31be9f9e0836ebdab03d94392f2dd453","version":"4000.4.1"},{"cabal_sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","flags":[],"package":"base16-bytestring","revision":0,"source":"hackage","src_sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","version":"1.0.2.0"},{"cabal_sha256":"50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8","flags":[],"package":"base64-bytestring","revision":0,"source":"hackage","src_sha256":"fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9","version":"1.2.1.0"},{"cabal_sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","flags":[],"package":"edit-distance","revision":1,"source":"hackage","src_sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","version":"0.2.2.1"},{"cabal_sha256":null,"flags":["-debug-conflict-sets","-debug-expensive-assertions","-debug-tracetree"],"package":"cabal-install-solver","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"},{"cabal_sha256":"facd0c04925ef925ec05243471fd16055229fdf51f64db1a1049de0cc6c6dfc3","flags":["-exe","+use-cbits"],"package":"cryptohash-sha256","revision":1,"source":"hackage","src_sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","version":"0.11.102.1"},{"cabal_sha256":"ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42","flags":["-example"],"package":"echo","revision":0,"source":"hackage","src_sha256":"c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43","version":"0.1.4"},{"cabal_sha256":"885c9e2410e5d91a08b199897df0867fecedf818216d7329a2d43a512833dd63","flags":["+no-donna","+test-doctests","+test-hlint","+test-properties"],"package":"ed25519","revision":6,"source":"hackage","src_sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","version":"0.0.5.0"},{"cabal_sha256":"efd4c08c4df1ac3f423858a834c0e3b5b4909febda66a901d12a8e1d57bddaa8","flags":["+ofd-locking"],"package":"lukko","revision":3,"source":"hackage","src_sha256":"a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f","version":"0.1.1.3"},{"cabal_sha256":"8214a9d37580f17f8b675109578a5dbe6853559eef156e34dc2233f1123ace33","flags":["-bundled-c-zlib","-non-blocking-ffi","-pkg-config"],"package":"zlib","revision":0,"source":"hackage","src_sha256":"9eaa989ad4534438b5beb51c1d3a4c8f6a088fdff0b259a5394fbf39aaee04da","version":"0.6.3.0"},{"cabal_sha256":"1a6cf81a4871559ef5bc47b230278b9ad4bf44f1e4dbf77bdc8e07f6e7b8d005","flags":["+base48","+cabal-syntax","+lukko","-mtl21","-old-directory","+use-network-uri"],"package":"hackage-security","revision":1,"source":"hackage","src_sha256":"a833a31610220506557e96fb6e3e8b05a2e1db8e7ebc06e91bbb699ddde0b276","version":"0.6.2.2"},{"cabal_sha256":"4ff4425c710cddf440dfbac6cd52310bb6b23e17902390ff71c9fc7eaafc4fcc","flags":[],"package":"regex-base","revision":1,"source":"hackage","src_sha256":"7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1","version":"0.94.0.2"},{"cabal_sha256":"9dbba4b65a3bb6975d9740814be5593c6b2d2d6a0b3febc8ec940edb9a9bbdf4","flags":["-_regex-posix-clib"],"package":"regex-posix","revision":1,"source":"hackage","src_sha256":"c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c","version":"0.96.0.1"},{"cabal_sha256":"61e2d98ff634b8b4b3db467772420c0f9c79c2da9ddf3d2daeb2af2417f2c535","flags":[],"package":"resolv","revision":5,"source":"hackage","src_sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","version":"0.1.2.0"},{"cabal_sha256":"6e9b1b233af80cc0aa17ea858d2641ba146fb11cbcc5970a52649e89d77282e2","flags":[],"package":"safe-exceptions","revision":0,"source":"hackage","src_sha256":"91ce28d8f8a6efd31788d4827ed5cdcb9a546ad4053a86c56f7947c66a30b5bf","version":"0.1.7.3"},{"cabal_sha256":null,"flags":["+lukko","+native-dns"],"package":"cabal-install","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"}]}
\ No newline at end of file
diff --git a/srcpkgs/cabal-install/template b/srcpkgs/cabal-install/template
index b3ebc1bb15b9..9f9bd3afe8a2 100644
--- a/srcpkgs/cabal-install/template
+++ b/srcpkgs/cabal-install/template
@@ -1,7 +1,7 @@
 # Template file for 'cabal-install'
 pkgname=cabal-install
-version=3.6.3.0
-revision=2
+version=3.8.1.0
+revision=1
 hostmakedepends="ghc curl tar which"
 makedepends="gmp-devel libffi-devel zlib-devel python3"
 depends="ghc"
@@ -10,24 +10,24 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
 license="BSD-3-Clause"
 homepage="https://hackage.haskell.org/package/cabal-install"
 distfiles="https://github.com/haskell/cabal/archive/Cabal-v${version}.tar.gz"
-checksum=dea086acad6d9fe5fe22d838b95b4e988022e8519f38d41609119ea32bfb7466
+checksum=d4eff9c1fcc5212360afac8d97da83b3aff79365490a449e9c47d3988c14b6bc
 nopie_files="/usr/bin/cabal"
 nocross=yes
 
 post_extract() {
-	cp "${FILESDIR}/linux-9.0.2.json" bootstrap/
+	cp "${FILESDIR}/linux-9.2.5.json" bootstrap/
 }
 
 post_patch() {
 	case "${XBPS_TARGET_MACHINE}" in
 	i686*)
 		# https://github.com/haskell/cabal/issues/7313
-		vsed -i -e 's/+ofd-locking/-ofd-locking/' bootstrap/linux-9.0.2.json ;;
+		vsed -i -e 's/+ofd-locking/-ofd-locking/' bootstrap/linux-9.2.5.json ;;
 	esac
 }
 
 do_build() {
-	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-9.0.2.json
+	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-9.2.5.json
 }
 do_install() {
 	vbin _build/bin/cabal

From bfcde1a6bcb96b4aeb73a1b115d301425f323814 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Mon, 21 Nov 2022 18:38:18 +0100
Subject: [PATCH 03/11] stack: update to 2.9.3

+ Remove most outdated patches concerning version bounds and
  compatibility with GHC 9.0.2.
+ Adjust ppc patch.
+ New showStackVersion patch to build with GHC 9.2.5.
---
 srcpkgs/stack/patches/aeson.patch            |  46 ----
 srcpkgs/stack/patches/fsnotify.patch         |  16 --
 srcpkgs/stack/patches/ghc9.0.2.patch         | 212 -------------------
 srcpkgs/stack/patches/persistent.patch       |  46 ----
 srcpkgs/stack/patches/ppc.patch              |   3 +-
 srcpkgs/stack/patches/showStackVersion.patch |  10 +
 srcpkgs/stack/template                       |  10 +-
 7 files changed, 16 insertions(+), 327 deletions(-)
 delete mode 100644 srcpkgs/stack/patches/aeson.patch
 delete mode 100644 srcpkgs/stack/patches/fsnotify.patch
 delete mode 100644 srcpkgs/stack/patches/ghc9.0.2.patch
 delete mode 100644 srcpkgs/stack/patches/persistent.patch
 create mode 100644 srcpkgs/stack/patches/showStackVersion.patch

diff --git a/srcpkgs/stack/patches/aeson.patch b/srcpkgs/stack/patches/aeson.patch
deleted file mode 100644
index 68f267c30cc8..000000000000
--- a/srcpkgs/stack/patches/aeson.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-commit 09e233ed73aa3335642f97c080ef27e42047c527
-Author: q66 <daniel@octaforge.org>
-Date:   Fri Mar 11 04:37:15 2022 +0100
-
-    constrain aeson to prevent build failures
-
-diff --git a/stack.cabal b/stack.cabal
-index dba5bf0..0195f2c 100644
---- a/stack.cabal
-+++ b/stack.cabal
-@@ -231,7 +231,7 @@ library
- 
-     build-depends:
-         Cabal >=3.2.1.0,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
-@@ -357,7 +357,7 @@ executable stack
- 
-     build-depends:
-         Cabal >=3.2.1.0,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
-@@ -485,7 +485,7 @@ executable stack-integration-test
- 
-     build-depends:
-         Cabal >=3.2.1.0,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
-@@ -621,7 +621,7 @@ test-suite stack-test
-     build-depends:
-         Cabal >=3.2.1.0,
-         QuickCheck >=2.14.2,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
diff --git a/srcpkgs/stack/patches/fsnotify.patch b/srcpkgs/stack/patches/fsnotify.patch
deleted file mode 100644
index f82fd8f73004..000000000000
--- a/srcpkgs/stack/patches/fsnotify.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-src/Stack/FileWatch.hs:29:49: error: Not in scope: ‘confUsePolling’
-   |
-29 | fileWatchPoll = fileWatchConf $ defaultConfig { confUsePolling = True }
-   |                                                 ^^^^^^^^^^^^^^
-
---- a/stack.cabal
-+++ b/stack.cabal
-@@ -256,7 +256,7 @@ library
-         file-embed >=0.0.14.0,
-         filelock >=0.1.1.5,
-         filepath >=1.4.2.1,
--        fsnotify >=0.3.0.1,
-+        fsnotify >=0.3.0.1 && <0.4.0.0,
-         generic-deriving >=1.13.1,
-         hackage-security >=0.6.0.1,
-         hashable >=1.3.0.0,
diff --git a/srcpkgs/stack/patches/ghc9.0.2.patch b/srcpkgs/stack/patches/ghc9.0.2.patch
deleted file mode 100644
index bdd77de58c6b..000000000000
--- a/srcpkgs/stack/patches/ghc9.0.2.patch
+++ /dev/null
@@ -1,212 +0,0 @@
-From cb7e56842a25f93142545fad21306a7c1750fbbf Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:26:22 -0700
-Subject: [PATCH 1/6] Use Cabal 3.4.0.0
-
----
- stack.yaml | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/stack.yaml b/stack.yaml
-index 005bd19f4..9472509be 100644
---- a/stack.yaml
-+++ b/stack.yaml
-@@ -20,6 +20,9 @@ flags:
- ghc-options:
-    "$locals": -fhide-source-paths
-
-+extra-deps:
-+- Cabal-3.4.0.0
-+
- drop-packages:
- # See https://github.com/commercialhaskell/stack/pull/4712
- - cabal-install
-
-From 11e11ab0edeba033b40a7fc62434be58dea82ce2 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:40:56 -0700
-Subject: [PATCH 2/6] Fix Flag => PackageFlag
-
----
- src/Stack/BuildPlan.hs | 2 +-
- src/Stack/Package.hs   | 8 ++++----
- 2 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/src/Stack/BuildPlan.hs b/src/Stack/BuildPlan.hs
-index 36f82236e..c5c80efc6 100644
---- a/src/Stack/BuildPlan.hs
-+++ b/src/Stack/BuildPlan.hs
-@@ -224,7 +224,7 @@ selectPackageBuildPlan platform compiler pool gpd =
-     flagCombinations :: NonEmpty [(FlagName, Bool)]
-     flagCombinations = mapM getOptions (genPackageFlags gpd)
-       where
--        getOptions :: C.Flag -> NonEmpty (FlagName, Bool)
-+        getOptions :: C.PackageFlag -> NonEmpty (FlagName, Bool)
-         getOptions f
-             | flagManual f = (fname, flagDefault f) :| []
-             | flagDefault f = (fname, True) :| [(fname, False)]
-diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs
-index 4db50d2a4..d9bca7af5 100644
---- a/src/Stack/Package.hs
-+++ b/src/Stack/Package.hs
-@@ -128,7 +128,7 @@ resolvePackage packageConfig gpkg =
-         (resolvePackageDescription packageConfig gpkg)
-
- packageFromPackageDescription :: PackageConfig
--                              -> [D.Flag]
-+                              -> [PackageFlag]
-                               -> PackageDescriptionPair
-                               -> Package
- packageFromPackageDescription packageConfig pkgFlags (PackageDescriptionPair pkgNoMod pkg) =
-@@ -935,9 +935,9 @@ resolvePackageDescription packageConfig (GenericPackageDescription desc defaultF
- -- | Make a map from a list of flag specifications.
- --
- -- What is @flagManual@ for?
--flagMap :: [Flag] -> Map FlagName Bool
-+flagMap :: [PackageFlag] -> Map FlagName Bool
- flagMap = M.fromList . map pair
--  where pair :: Flag -> (FlagName, Bool)
-+  where pair :: PackageFlag -> (FlagName, Bool)
-         pair = flagName &&& flagDefault
-
- data ResolveConditions = ResolveConditions
-@@ -986,7 +986,7 @@ resolveConditions rc addDeps (CondNode lib deps cs) = basic <> children
-                   case v of
-                     OS os -> os == rcOS rc
-                     Arch arch -> arch == rcArch rc
--                    Flag flag ->
-+                    PackageFlag flag ->
-                       fromMaybe False $ M.lookup flag (rcFlags rc)
-                       -- NOTE:  ^^^^^ This should never happen, as all flags
-                       -- which are used must be declared. Defaulting to
-
-From 8facd731ec3f2bbc15a083750740929167b33bb2 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:55:30 -0700
-Subject: [PATCH 3/6] Fix CabalSpecVersion
-
----
- src/Stack/Package.hs | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs
-index d9bca7af5..fca039140 100644
---- a/src/Stack/Package.hs
-+++ b/src/Stack/Package.hs
-@@ -32,6 +32,7 @@ import           Data.List (find, isPrefixOf, unzip)
- import qualified Data.Map.Strict as M
- import qualified Data.Set as S
- import qualified Data.Text as T
-+import           Distribution.CabalSpecVersion (CabalSpecVersion, cabalSpecMinimumLibraryVersion)
- import           Distribution.Compiler
- import           Distribution.ModuleName (ModuleName)
- import qualified Distribution.ModuleName as Cabal
-@@ -190,7 +191,7 @@ packageFromPackageDescription packageConfig pkgFlags (PackageDescriptionPair pkg
-           (library pkg)
-     , packageBuildType = buildType pkg
-     , packageSetupDeps = msetupDeps
--    , packageCabalSpec = either orLaterVersion id $ specVersionRaw pkg
-+    , packageCabalSpec = orLaterVersion $ mkVersion $ cabalSpecMinimumLibraryVersion $ specVersion pkg
-     }
-   where
-     extraLibNames = S.union subLibNames foreignLibNames
-@@ -696,7 +697,7 @@ packageDescModulesAndFiles pkg = do
-
- -- | Resolve globbing of files (e.g. data files) to absolute paths.
- resolveGlobFiles
--  :: Version -- ^ cabal file version
-+  :: CabalSpecVersion -- ^ cabal file version
-   -> [String]
-   -> RIO Ctx (Set (Path Abs File))
- resolveGlobFiles cabalFileVersion =
-
-From 004f14652409b7d0645215d354b2e599eb7f76bc Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:55:40 -0700
-Subject: [PATCH 4/6] Fix GenericPackageDescription
-
----
- src/Stack/Build.hs   | 2 +-
- src/Stack/Package.hs | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/Stack/Build.hs b/src/Stack/Build.hs
-index 23b9a9719..856903bed 100644
---- a/src/Stack/Build.hs
-+++ b/src/Stack/Build.hs
-@@ -358,7 +358,7 @@ checkComponentsBuildable lps =
- checkSubLibraryDependencies :: HasLogFunc env => [ProjectPackage] -> RIO env ()
- checkSubLibraryDependencies proj = do
-   forM_ proj $ \p -> do
--    C.GenericPackageDescription _ _ lib subLibs foreignLibs exes tests benches <- liftIO $ cpGPD . ppCommon $ p
-+    C.GenericPackageDescription _ _ _ lib subLibs foreignLibs exes tests benches <- liftIO $ cpGPD . ppCommon $ p
-
-     let dependencies = concatMap getDeps subLibs <>
-                        concatMap getDeps foreignLibs <>
-diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs
-index fca039140..39aad4d2f 100644
---- a/src/Stack/Package.hs
-+++ b/src/Stack/Package.hs
-@@ -863,7 +863,7 @@ data PackageDescriptionPair = PackageDescriptionPair
- resolvePackageDescription :: PackageConfig
-                           -> GenericPackageDescription
-                           -> PackageDescriptionPair
--resolvePackageDescription packageConfig (GenericPackageDescription desc defaultFlags mlib subLibs foreignLibs' exes tests benches) =
-+resolvePackageDescription packageConfig (GenericPackageDescription desc _ defaultFlags mlib subLibs foreignLibs' exes tests benches) =
-     PackageDescriptionPair
-       { pdpOrigBuildable = go False
-       , pdpModifiedBuildable = go True
-
-From 820797b566ef981936907f4d19658259d4a635a8 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 17:01:01 -0700
-Subject: [PATCH 5/6] Fix generatePackageVersionMacros
-
----
- src/Stack/Build/Execute.hs | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/Stack/Build/Execute.hs b/src/Stack/Build/Execute.hs
-index 1e381dd21..aedd7fee5 100644
---- a/src/Stack/Build/Execute.hs
-+++ b/src/Stack/Build/Execute.hs
-@@ -1214,7 +1214,7 @@ withSingleContext ActionContext {..} ee@ExecuteEnv {..} task@Task {..} allDeps m
-                             let macroDeps = mapMaybe snd matchedDeps
-                                 cppMacrosFile = setupDir </> relFileSetupMacrosH
-                                 cppArgs = ["-optP-include", "-optP" ++ toFilePath cppMacrosFile]
--                            writeBinaryFileAtomic cppMacrosFile (encodeUtf8Builder (T.pack (C.generatePackageVersionMacros macroDeps)))
-+                            writeBinaryFileAtomic cppMacrosFile (encodeUtf8Builder (T.pack (C.generatePackageVersionMacros (packageVersion package) macroDeps)))
-                             return (packageDBArgs ++ depsArgs ++ cppArgs)
-
-                         -- This branch is usually taken for builds, and
-
-From 336ab515e30f03c274f89ebe1cbc6aa1e597c2a4 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 17:04:16 -0700
-Subject: [PATCH 6/6] Fix ModuleReexport
-
----
- src/Stack/Script.hs | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/Stack/Script.hs b/src/Stack/Script.hs
-index 6bb67c049..9ebd2173d 100644
---- a/src/Stack/Script.hs
-+++ b/src/Stack/Script.hs
-@@ -18,6 +18,7 @@ import           Distribution.Compiler      (CompilerFlavor (..))
- import           Distribution.ModuleName    (ModuleName)
- import qualified Distribution.PackageDescription as PD
- import qualified Distribution.Types.CondTree as C
-+import qualified Distribution.Types.ModuleReexport as ModuleReexport
- import           Distribution.Types.PackageName (mkPackageName)
- import           Distribution.Types.VersionRange (withinRange)
- import           Distribution.System        (Platform (..))
-@@ -280,7 +281,7 @@ allExposedModules gpd = do
-       mlibrary = snd . C.simplifyCondTree checkCond <$> PD.condLibrary gpd
-   pure $ case mlibrary  of
-     Just lib -> PD.exposedModules lib ++
--                map PD.moduleReexportName (PD.reexportedModules lib)
-+                map ModuleReexport.moduleReexportName (PD.reexportedModules lib)
-     Nothing  -> mempty
-
- -- | The Stackage project introduced the concept of hidden packages,
diff --git a/srcpkgs/stack/patches/persistent.patch b/srcpkgs/stack/patches/persistent.patch
deleted file mode 100644
index cf462d7b80c2..000000000000
--- a/srcpkgs/stack/patches/persistent.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-commit 188d7ece06ee06ed6ccaf0df0c46285bd43898f4
-Author: q66 <daniel@octaforge.org>
-Date:   Thu Apr 28 05:02:09 2022 +0200
-
-    constrain persistent to fix build
-
-diff --git a/stack.cabal b/stack.cabal
-index dba5bf0..e221321 100644
---- a/stack.cabal
-+++ b/stack.cabal
-@@ -281,7 +281,7 @@ library
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
-@@ -407,7 +407,7 @@ executable stack
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
-@@ -537,7 +537,7 @@ executable stack-integration-test
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
-@@ -672,7 +672,7 @@ test-suite stack-test
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
diff --git a/srcpkgs/stack/patches/ppc.patch b/srcpkgs/stack/patches/ppc.patch
index fc4c540f0f92..4ab025e7663c 100644
--- a/srcpkgs/stack/patches/ppc.patch
+++ b/srcpkgs/stack/patches/ppc.patch
@@ -22,11 +22,10 @@
 
 --- a/stack.cabal
 +++ b/stack.cabal
-@@ -246,6 +246,7 @@
+@@ -246,4 +246,5 @@
          conduit >=1.3.4.1,
          conduit-extra >=1.3.5,
          containers >=0.6.2.1,
 +        cpu >=0.1.2,
          cryptonite >=0.27,
          cryptonite-conduit >=0.2.2,
-         deepseq >=1.4.4.0,
diff --git a/srcpkgs/stack/patches/showStackVersion.patch b/srcpkgs/stack/patches/showStackVersion.patch
new file mode 100644
index 000000000000..454e0c6dfe53
--- /dev/null
+++ b/srcpkgs/stack/patches/showStackVersion.patch
@@ -0,0 +1,10 @@
+--- a/src/main/BuildInfo.hs
++++ b/src/main/BuildInfo.hs
+@@ -32,5 +32,6 @@
+ #endif
+ import           Stack.Prelude
+ import qualified Paths_stack as Meta
++import Stack.Types.Version (showStackVersion)
+
+ versionString' :: String
+ #ifdef USE_GIT_INFO
diff --git a/srcpkgs/stack/template b/srcpkgs/stack/template
index b6c1f1578ed9..c76f90ff89ed 100644
--- a/srcpkgs/stack/template
+++ b/srcpkgs/stack/template
@@ -1,8 +1,8 @@
 # Template file for 'stack'
 pkgname=stack
-version=2.7.5
-revision=2
-_stackage="lts-19.0"
+version=2.9.3
+revision=1
+_stackage="lts-20.0"
 hostmakedepends="cabal-install pkg-config unzip"
 makedepends="zlib-devel pcre-devel"
 depends="git gmp-devel iana-etc"
@@ -12,8 +12,8 @@ license="BSD-3-Clause"
 homepage="https://haskellstack.org"
 distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz
  https://www.stackage.org/${_stackage}/cabal.config>cabal.config-${_stackage}"
-checksum="9ddd44c2a62e9404194d69e7dc1c94e707910620316b66d6ac0b3201a8f37e80
- e1de952bb6f62573e5c211df99ce6bb684c4cae7845f16c347ce9aa503d6374f"
+checksum="c4700cb227dd624249db2e649445f3df3d558c8a5ab2c98b5c7bf8545901f2dc
+ addcb336500f35b565403e72b0b3793fee74313439eacfb79e0c2121d88bc8ea"
 skip_extraction="cabal.config-${_stackage}"
 nocross=yes
 nopie_files="/usr/bin/stack"

From 43c22912fcbee45621319d96abf8603e2d5f6339 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Tue, 27 Dec 2022 15:29:21 +0100
Subject: [PATCH 04/11] hlint: update to 3.4.1

---
 srcpkgs/hlint/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/hlint/template b/srcpkgs/hlint/template
index 0109be25805f..c5efc617393c 100644
--- a/srcpkgs/hlint/template
+++ b/srcpkgs/hlint/template
@@ -1,16 +1,16 @@
 # Template file for 'hlint'
 pkgname=hlint
-version=3.3.6
+version=3.4.1
 revision=1
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 makedepends="ncurses-devel"
 short_desc="Haskell source code suggestions"
 maintainer="Inokentiy Babushkin <twk@twki.de>"
 license="BSD-3-Clause"
 homepage="https://github.com/ndmitchell/hlint"
 distfiles="https://github.com/ndmitchell/${pkgname}/archive/v${version}.tar.gz"
-checksum=7d536c03f77a0c259efb2b00b525ef34578ca8a4a95ccb412708e8c7172e2e6a
+checksum=667b1ee82ce47706e8206c4994add2483b0bf21c67861d4652b2b5aa90299dc5
 nocross=yes # Can't yet cross compile Haskell
 nopie_files="/usr/bin/hlint"
 

From bef4ba87d4872f0785d1d546613599791b2fa456 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Tue, 27 Dec 2022 16:19:12 +0100
Subject: [PATCH 05/11] hoogle: bump for stackage lts-20.0

---
 srcpkgs/hoogle/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/hoogle/template b/srcpkgs/hoogle/template
index dc487cab4017..00de03e81eef 100644
--- a/srcpkgs/hoogle/template
+++ b/srcpkgs/hoogle/template
@@ -1,9 +1,9 @@
 # Template file for 'hoogle'
 pkgname=hoogle
 version=5.0.18.3
-revision=1
+revision=2
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 makedepends="zlib-devel"
 short_desc="Haskell API search engine"
 maintainer="Inokentiy Babushkin <twk@twki.de>"

From 0ff10d252f1074acd9450926e1bba8eded586310 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Tue, 27 Dec 2022 17:38:42 +0100
Subject: [PATCH 06/11] pandoc: update to 2.19.2

+ Update pandoc-crossref and it's associated cabal file.
+ Bump lua dependency.
+ Remove roman-numerals dependency, as pandoc-crossref now has its own
  implementation of this.
---
 srcpkgs/pandoc/files/pandoc-crossref.cabal | 139 +++++++++++++++++----
 srcpkgs/pandoc/template                    |  17 ++-
 2 files changed, 121 insertions(+), 35 deletions(-)

diff --git a/srcpkgs/pandoc/files/pandoc-crossref.cabal b/srcpkgs/pandoc/files/pandoc-crossref.cabal
index 7aacc47278f3..850405534565 100644
--- a/srcpkgs/pandoc/files/pandoc-crossref.cabal
+++ b/srcpkgs/pandoc/files/pandoc-crossref.cabal
@@ -1,13 +1,9 @@
-cabal-version: 2.0
-
--- This file has been generated from package.yaml by hpack version 0.34.6.
+-- This file has been generated from package.yaml by hpack version 0.34.4.
 --
 -- see: https://github.com/sol/hpack
---
--- hash: 20655cd6263e9fe7e5737ee81b093c8c6f5eae67e260ddd3a821ac6ef5e35e69
 
 name:           pandoc-crossref
-version:        0.3.13.0
+version:        0.3.14.0
 synopsis:       Pandoc filter for cross-references
 description:    pandoc-crossref is a pandoc filter for numbering figures, equations, tables and cross-references to them.
 category:       Text
@@ -18,6 +14,99 @@ maintainer:     root@livid.pp.ru
 license:        GPL-2
 license-file:   LICENSE
 build-type:     Simple
+extra-source-files:
+    test/demo-chapters.inc
+    test/demo.inc
+    CHANGELOG.md
+    licenses/LICENSE.roman-numerals
+data-files:
+    docs/demo/demo.md
+    docs/index.md
+    test/m2m/chapDelim/expect.md
+    test/m2m/chapDelim/expect.tex
+    test/m2m/chapDelim/input.md
+    test/m2m/delim/expect.md
+    test/m2m/delim/expect.tex
+    test/m2m/delim/input.md
+    test/m2m/emptyChapterLabels/expect.md
+    test/m2m/emptyChapterLabels/expect.tex
+    test/m2m/emptyChapterLabels/input.md
+    test/m2m/eqnBlockTemplate/expect.md
+    test/m2m/eqnBlockTemplate/expect.tex
+    test/m2m/eqnBlockTemplate/input.md
+    test/m2m/eqnInlineTemplate/expect.md
+    test/m2m/eqnInlineTemplate/expect.tex
+    test/m2m/eqnInlineTemplate/input.md
+    test/m2m/equationNumberLaTeX/expect.md
+    test/m2m/equationNumberLaTeX/expect.tex
+    test/m2m/equationNumberLaTeX/input.md
+    test/m2m/equations-auto/expect.md
+    test/m2m/equations-auto/expect.tex
+    test/m2m/equations-auto/input.md
+    test/m2m/equations-tables-auto/expect.md
+    test/m2m/equations-tables-auto/expect.tex
+    test/m2m/equations-tables-auto/input.md
+    test/m2m/equations-tables/expect.md
+    test/m2m/equations-tables/expect.tex
+    test/m2m/equations-tables/input.md
+    test/m2m/equations/expect.md
+    test/m2m/equations/expect.tex
+    test/m2m/equations/input.md
+    test/m2m/label-precedence/expect.md
+    test/m2m/label-precedence/expect.tex
+    test/m2m/label-precedence/input.md
+    test/m2m/links-names/expect.md
+    test/m2m/links-names/expect.tex
+    test/m2m/links-names/input.md
+    test/m2m/links/expect.md
+    test/m2m/links/expect.tex
+    test/m2m/links/input.md
+    test/m2m/listing-captions-ids/expect.md
+    test/m2m/listing-captions-ids/expect.tex
+    test/m2m/listing-captions-ids/input.md
+    test/m2m/listings-code-block-caption-278/expect.md
+    test/m2m/listings-code-block-caption-278/expect.tex
+    test/m2m/listings-code-block-caption-278/input.md
+    test/m2m/listOfTemplates-buillet-list/expect.md
+    test/m2m/listOfTemplates-buillet-list/expect.tex
+    test/m2m/listOfTemplates-buillet-list/input.md
+    test/m2m/listOfTemplates-ord-list/expect.md
+    test/m2m/listOfTemplates-ord-list/expect.tex
+    test/m2m/listOfTemplates-ord-list/input.md
+    test/m2m/listOfTemplates/expect.md
+    test/m2m/listOfTemplates/expect.tex
+    test/m2m/listOfTemplates/input.md
+    test/m2m/loxItemTitle/expect.md
+    test/m2m/loxItemTitle/expect.tex
+    test/m2m/loxItemTitle/input.md
+    test/m2m/multiple-eqn-same-para/expect.md
+    test/m2m/multiple-eqn-same-para/expect.tex
+    test/m2m/multiple-eqn-same-para/input.md
+    test/m2m/secLabels/expect.md
+    test/m2m/secLabels/expect.tex
+    test/m2m/secLabels/input.md
+    test/m2m/secLevelLabels/expect.md
+    test/m2m/secLevelLabels/expect.tex
+    test/m2m/secLevelLabels/input.md
+    test/m2m/section-template/expect.md
+    test/m2m/section-template/expect.tex
+    test/m2m/section-template/input.md
+    test/m2m/setLabelAttribute/expect.md
+    test/m2m/setLabelAttribute/expect.tex
+    test/m2m/setLabelAttribute/input.md
+    test/m2m/subfigures-ccsDelim/expect.md
+    test/m2m/subfigures-ccsDelim/expect.tex
+    test/m2m/subfigures-ccsDelim/input.md
+    test/m2m/subfigures-grid/expect.md
+    test/m2m/subfigures-grid/expect.tex
+    test/m2m/subfigures-grid/input.md
+    test/m2m/subfigures/expect.md
+    test/m2m/subfigures/expect.tex
+    test/m2m/subfigures/input.md
+    test/m2m/titlesInRefs/expect.md
+    test/m2m/titlesInRefs/expect.tex
+    test/m2m/titlesInRefs/input.md
+cabal-version: 1.12
 
 source-repository head
   type: git
@@ -32,6 +121,7 @@ library
   exposed-modules:
       Text.Pandoc.CrossRef
   other-modules:
+      Text.Numeral.Roman
       Text.Pandoc.CrossRef.References
       Text.Pandoc.CrossRef.References.Blocks
       Text.Pandoc.CrossRef.References.List
@@ -60,13 +150,12 @@ library
     , microlens >=0.4.12.0 && <0.5.0.0
     , microlens-mtl >=0.2.0.1 && <0.3.0.0
     , microlens-th >=0.4.3.10 && <0.5.0.0
-    , mtl >=1.1 && <2.3
-    , pandoc >=2.10 && <2.18
-    , pandoc-types >=1.21 && <1.23
-    , roman-numerals ==0.5.*
+    , mtl >=1.1 && <2.4
+    , pandoc >=2.18 && <2.20
+    , pandoc-types >=1.22.2 && <1.23
     , syb >=0.4 && <0.8
     , template-haskell >=2.7.0.0 && <3.0.0.0
-    , text >=1.2.2 && <1.3
+    , text >=1.2.2 && <2.1
     , utility-ht >=0.0.11 && <0.1.0
   default-language: Haskell2010
 
@@ -82,13 +171,13 @@ executable pandoc-crossref
     , deepseq ==1.4.*
     , gitrev >=1.3.1 && <1.4
     , open-browser ==0.2.*
-    , optparse-applicative >=0.13 && <0.17
-    , pandoc >=2.10 && <2.18
+    , optparse-applicative >=0.13 && <0.18
+    , pandoc >=2.18 && <2.20
     , pandoc-crossref
-    , pandoc-types >=1.21 && <1.23
+    , pandoc-types >=1.22.2 && <1.23
     , template-haskell >=2.7.0.0 && <3.0.0.0
     , temporary >=1.2 && <1.4
-    , text >=1.2.2 && <1.3
+    , text >=1.2.2 && <2.1
   default-language: Haskell2010
 
 test-suite test-integrative
@@ -102,10 +191,10 @@ test-suite test-integrative
     , directory >=1 && <1.4
     , filepath >=1.1 && <1.5
     , hspec >=2.4.4 && <3
-    , pandoc >=2.10 && <2.18
+    , pandoc >=2.18 && <2.20
     , pandoc-crossref
-    , pandoc-types >=1.21 && <1.23
-    , text >=1.2.2 && <1.3
+    , pandoc-types >=1.22.2 && <1.23
+    , text >=1.2.2 && <2.1
   if flag(enable_flaky_tests)
     cpp-options: -DFLAKY
   default-language: Haskell2010
@@ -128,10 +217,10 @@ test-suite test-pandoc-crossref
     , hspec >=2.4.4 && <3
     , microlens >=0.4.12.0 && <0.5.0.0
     , mtl >=1.1 && <2.3
-    , pandoc >=2.10 && <2.18
+    , pandoc >=2.18 && <2.20
     , pandoc-crossref
-    , pandoc-types >=1.21 && <1.23
-    , text >=1.2.2 && <1.3
+    , pandoc-types >=1.22.2 && <1.23
+    , text >=1.2.2 && <2.1
   if flag(enable_flaky_tests)
     cpp-options: -DFLAKY
   default-language: Haskell2010
@@ -146,9 +235,9 @@ benchmark simple
   ghc-options: -Wall -fno-warn-unused-do-bind -threaded
   build-depends:
       base >=4.11 && <5
-    , criterion >=1.5.9.0 && <1.6
-    , pandoc >=2.10 && <2.18
+    , criterion >=1.5.9.0 && <1.7
+    , pandoc >=2.18 && <2.20
     , pandoc-crossref
-    , pandoc-types >=1.21 && <1.23
-    , text >=1.2.2 && <1.3
+    , pandoc-types >=1.22.2 && <1.23
+    , text >=1.2.2 && <2.1
   default-language: Haskell2010
diff --git a/srcpkgs/pandoc/template b/srcpkgs/pandoc/template
index 9bdf32ef3c53..0ce941c6fcc5 100644
--- a/srcpkgs/pandoc/template
+++ b/srcpkgs/pandoc/template
@@ -1,20 +1,19 @@
 # Template file for 'pandoc'
 pkgname=pandoc
 # Keep in sync with http://www.stackage.org/lts
-version=2.17.1.1
+version=2.19.2
 revision=1
 _sidenote_version=0.22.1.0
 _monad_gen_version=0.3.0.1
-_crossref_version=0.3.12.2
-_roman_numerals_version=0.5.1.5
+_crossref_version=0.3.14.0
 create_wrksrc=yes
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 make_build_args="
  --flag pandoc:embed_data_files
  --flag=lua:pkg-config"
 hostmakedepends="pkg-config unzip wget"
-makedepends="zlib-devel lua53-devel tar"
+makedepends="zlib-devel lua54-devel tar"
 short_desc="Universal converter between markup formats"
 maintainer="slotThe <soliditsallgood@mailbox.org>"
 license="GPL-2.0-or-later, BSD-3-Clause"
@@ -22,13 +21,11 @@ homepage="http://johnmacfarlane.net/pandoc/"
 distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz
  https://hackage.haskell.org/package/${pkgname}-sidenote-${_sidenote_version}/${pkgname}-sidenote-${_sidenote_version}.tar.gz
  https://hackage.haskell.org/package/monad-gen-${_monad_gen_version}/monad-gen-${_monad_gen_version}.tar.gz
- https://hackage.haskell.org/package/${pkgname}-crossref-${_crossref_version}/${pkgname}-crossref-${_crossref_version}.tar.gz
- https://hackage.haskell.org/package/roman-numerals-${_roman_numerals_version}/roman-numerals-${_roman_numerals_version}.tar.gz"
-checksum="649ec528d1413130c5ce304b826ff473b3696269eea8834d908589e775bd1ad1
+ https://hackage.haskell.org/package/${pkgname}-crossref-${_crossref_version}/${pkgname}-crossref-${_crossref_version}.tar.gz"
+checksum="36e83694c36a5af35a4442c4d5abd4273289d9d309793466f59c1632e87d4245
  c39dd7343b9cb4dc5b1c91c9e47c3d357874e9e1a30b8d377bbea0b1d50323b2
  be8485023fce236b5b915f2f6074f7b0470a2040f84cdd137c5227f1b4c98465
- 94540325c9c98ae4d5199c634bf402ffa41e3c5b020d7207daef90fd9e224fb4
- b9c7195b69b1662a286d2c28a55fafdcb693c522ba5eb54a11b1d0a4e92eaa81"
+ 06d163e2cec3f285919295c41a0580f203bb157d05eb06a494dbc093cbefa5b8"
 subpackages="
  pandoc-sidenote
  pandoc-crossref"

From 64f9e27c94218c3f8b4ac7a3091dabe797feb3d7 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 08:32:36 +0100
Subject: [PATCH 07/11] shellcheck: bump for stackage lts-20.0

---
 srcpkgs/shellcheck/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/shellcheck/template b/srcpkgs/shellcheck/template
index e85667f66918..c06b88603109 100644
--- a/srcpkgs/shellcheck/template
+++ b/srcpkgs/shellcheck/template
@@ -1,9 +1,9 @@
 # Template file for 'shellcheck'
 pkgname=shellcheck
 version=0.9.0
-revision=1
+revision=2
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 hostmakedepends="pandoc"
 short_desc="Static analysis tool for shell scripts"
 maintainer="Diogo Leal <diogo@diogoleal.com>"

From b72f37ea6631b90f2da8c80353754274e5de9dfb Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 08:36:43 +0100
Subject: [PATCH 08/11] New package: greenclip-4.2

Co-authored-by: KawaiiAmber <japaneselearning101@gmail.com>
---
 srcpkgs/greenclip/files/stack.yaml | 12 ++++++++++++
 srcpkgs/greenclip/template         | 19 +++++++++++++++++++
 2 files changed, 31 insertions(+)
 create mode 100644 srcpkgs/greenclip/files/stack.yaml
 create mode 100644 srcpkgs/greenclip/template

diff --git a/srcpkgs/greenclip/files/stack.yaml b/srcpkgs/greenclip/files/stack.yaml
new file mode 100644
index 000000000000..86f4b6fa7ed2
--- /dev/null
+++ b/srcpkgs/greenclip/files/stack.yaml
@@ -0,0 +1,12 @@
+resolver: lts-20.0
+
+packages:
+- '.'
+
+extra-deps:
+- 'wordexp-0.2.2'
+- 'protolude-0.3.2'
+- 'tomland-1.3.3.2'
+- 'validation-selective-0.1.0.2'
+
+allow-newer: true
diff --git a/srcpkgs/greenclip/template b/srcpkgs/greenclip/template
new file mode 100644
index 000000000000..c048afe39e01
--- /dev/null
+++ b/srcpkgs/greenclip/template
@@ -0,0 +1,19 @@
+# Template file for 'greenclip'
+pkgname=greenclip
+version=4.2
+revision=1
+build_style=haskell-stack
+hostmakedepends="pkg-config"
+makedepends="libX11-devel libXinerama-devel libXrandr-devel libXScrnSaver-devel"
+short_desc="Simple clipboard manager to be integrated with rofi"
+maintainer="KawaiiAmber <japaneselearning101@gmail.com>"
+license="BSD-3-Clause"
+homepage="https://github.com/erebe/greenclip"
+distfiles="${homepage}/archive/refs/tags/v${version}.tar.gz"
+checksum=bb95211e3c4bf3ab3a95ede92a678f79bedf2ed2c5b707ba0fb2efbae7fc60cd
+nopie=yes
+nocross="can't yet cross compile Haskell"
+
+post_install() {
+	vlicense LICENSE
+}

From b244badd1691a35e0eeab309f750297cccbdbc0b Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 10:35:09 +0100
Subject: [PATCH 09/11] hledger: update to 1.28

---
 srcpkgs/hledger/files/stack.yaml | 14 +++++---------
 srcpkgs/hledger/template         |  4 ++--
 2 files changed, 7 insertions(+), 11 deletions(-)

diff --git a/srcpkgs/hledger/files/stack.yaml b/srcpkgs/hledger/files/stack.yaml
index b5f41932e272..e2fd18f264a4 100644
--- a/srcpkgs/hledger/files/stack.yaml
+++ b/srcpkgs/hledger/files/stack.yaml
@@ -1,4 +1,4 @@
-resolver: lts-19.0
+resolver:  lts-20.0
 
 packages:
 - hledger-lib
@@ -7,16 +7,12 @@ packages:
 - hledger-web
 
 extra-deps:
+- megaparsec-9.3.0
 # for hledger-lib:
-- breakpoint-0.1.0.0
+# - breakpoint-0.1.2.0
 # for hledger:
 # for hledger-ui:
-- brick-1.0
-- bimap-0.5.0
-- text-zipper-0.12
-- vty-5.36
+- brick-1.5
+- fsnotify-0.4.0.0
 # for hledger-web:
 # for Shake.hs:
-
-ghc-options:
-  "$locals": -fplugin Debug.Breakpoint
diff --git a/srcpkgs/hledger/template b/srcpkgs/hledger/template
index 5750484fc5bc..6a4360a0c641 100644
--- a/srcpkgs/hledger/template
+++ b/srcpkgs/hledger/template
@@ -1,6 +1,6 @@
 # Template file for 'hledger'
 pkgname=hledger
-version=1.27.1
+version=1.28
 revision=1
 build_style=haskell-stack
 makedepends="zlib-devel ncurses-devel"
@@ -10,7 +10,7 @@ license="GPL-3.0-or-later"
 homepage="https://hledger.org/"
 changelog="https://hackage.haskell.org/package/hledger-${version}/changelog"
 distfiles="https://github.com/simonmichael/hledger/archive/${version}.tar.gz"
-checksum=218f6005b7b30308cc43523dc7b61c818bb649abc217a6c8803e8f82b408d239
+checksum=e2736f732d9f5cade993877b4524f06fbb3488142843c62653a0849180d2a34a
 nopie_files="/usr/bin/hledger"
 nocross=yes # Can't yet cross compile Haskell
 

From 09afe3b6b6e780d7e8e842a71f12eb57592d5613 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 13:58:50 +0100
Subject: [PATCH 10/11] darcs: bump for stackage lts-20.0

---
 srcpkgs/darcs/files/stack.yaml | 2 +-
 srcpkgs/darcs/template         | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/darcs/files/stack.yaml b/srcpkgs/darcs/files/stack.yaml
index 6e459703764a..f2dd5264e5bf 100644
--- a/srcpkgs/darcs/files/stack.yaml
+++ b/srcpkgs/darcs/files/stack.yaml
@@ -1,4 +1,4 @@
-resolver: lts-19.0
+resolver: lts-20.0
 packages:
 - .
 allow-newer: true
diff --git a/srcpkgs/darcs/template b/srcpkgs/darcs/template
index 15a8f71f9021..04a0f6da593c 100644
--- a/srcpkgs/darcs/template
+++ b/srcpkgs/darcs/template
@@ -1,7 +1,7 @@
 # Template file for 'darcs'
 pkgname=darcs
 version=2.16.5
-revision=3
+revision=4
 build_style=haskell-stack
 hostmakedepends="unzip"
 makedepends="zlib-devel libcurl-devel ncurses-devel"

From bcfad03f61ed98bea9f3f5e6189c0383834e54ee Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 14:54:40 +0100
Subject: [PATCH 11/11] cgrep: bump for stackage lts-20.0

---
 srcpkgs/cgrep/files/stack.yaml | 7 +++++++
 srcpkgs/cgrep/template         | 2 +-
 2 files changed, 8 insertions(+), 1 deletion(-)
 create mode 100644 srcpkgs/cgrep/files/stack.yaml

diff --git a/srcpkgs/cgrep/files/stack.yaml b/srcpkgs/cgrep/files/stack.yaml
new file mode 100644
index 000000000000..9db0805a3957
--- /dev/null
+++ b/srcpkgs/cgrep/files/stack.yaml
@@ -0,0 +1,7 @@
+resolver: lts-20.0
+
+packages:
+  - '.'
+
+extra-deps:
+  - bitwise-1.0.0.1
diff --git a/srcpkgs/cgrep/template b/srcpkgs/cgrep/template
index 9d943300a68c..865d4e43398d 100644
--- a/srcpkgs/cgrep/template
+++ b/srcpkgs/cgrep/template
@@ -1,7 +1,7 @@
 # Template file for 'cgrep'
 pkgname=cgrep
 version=7.0.0
-revision=1
+revision=2
 build_style=haskell-stack
 makedepends="pcre-devel pkg-config"
 short_desc="Context-aware grep for source codes"

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [WIP] [ci skip] GHC 9.2.5
  2022-12-27  9:58 [PR PATCH] [WIP] [ci skip] GHC 9.2.5 slotThe
                   ` (2 preceding siblings ...)
  2022-12-28 13:55 ` [PR PATCH] [Updated] " slotThe
@ 2022-12-28 15:51 ` slotThe
  2022-12-28 21:18 ` [PR PATCH] [Updated] " slotThe
                   ` (8 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: slotThe @ 2022-12-28 15:51 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 279 bytes --]

New comment by slotThe on void-packages repository

https://github.com/void-linux/void-packages/pull/41316#issuecomment-1366749370

Comment:
> i no longer work on void and i have discontinued the ppc port, so nothing from me

Ah, sorry, I must've missed that.  Nevermind then!

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PR PATCH] [Updated] [WIP] [ci skip] GHC 9.2.5
  2022-12-27  9:58 [PR PATCH] [WIP] [ci skip] GHC 9.2.5 slotThe
                   ` (3 preceding siblings ...)
  2022-12-28 15:51 ` slotThe
@ 2022-12-28 21:18 ` slotThe
  2022-12-29  9:24 ` slotThe
                   ` (7 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: slotThe @ 2022-12-28 21:18 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1290 bytes --]

There is an updated pull request by slotThe against master on the void-packages repository

https://github.com/slotThe/void-packages ghc-9.2.5
https://github.com/void-linux/void-packages/pull/41316

[WIP] [ci skip] GHC 9.2.5
Took much longer than anticipated, since I wanted to wait for stack 2.9.3 first.  Here's to hoping that opening a PR will motivate me to work more rapidly :)

### Core packages to bump

- [x] ghc
- [ ] ghc-bin
    - [ ] x86_64 (hash)
    - [ ] i686 (hash)
    - [ ] x86_64-musl
    ~~Cc. @q66~~
    - [ ] ppc64le
    - [ ] ppc64le-musl
    - [ ] ppc64
    Cc. @ftrvxmtrx
    - [ ] aarch64
    - [ ] aarch64-musl
- [x] cabal-install
- [x] stack

#### Rebuild literally every single haskell package we have and see if anything's broken

- [ ] git-mediate
- [ ] kmonad
- [x] cgrep
- [ ] debug-me
- [x] hlint
- [x] hoogle
- [x] darcs
- [x] shellcheck
- [ ] git-annex
- [x] hledger
- [x] pandoc
- [ ] xmobar
- [ ] haskell-language-server
- [ ] glirc

### Other things to do

- [x] incorporate https://github.com/void-linux/void-packages/pull/27832 @astralchan
- [ ] incorporate https://github.com/void-linux/void-packages/pull/35624 @kwshi

A patch file from https://github.com/void-linux/void-packages/pull/41316.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-ghc-9.2.5-41316.patch --]
[-- Type: text/x-diff, Size: 65445 bytes --]

From 72eb2785d19f85f6719819475c9ae6076859e9e6 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Thu, 17 Nov 2022 12:47:46 +0100
Subject: [PATCH 01/15] ghc: update to 9.2.5

+ Adjust ppc64-be-elfv2.patch
  * The libraries/ghci/GHCi/InfoTable.hsc bit seems to have been
    merged, hence delete it.
  * Adjust for changes in fptools and configure.
  * Delete now out-of-date TOC.
---
 srcpkgs/ghc/patches/ppc64-be-elfv2.patch | 105 +++++------------------
 srcpkgs/ghc/template                     |   6 +-
 2 files changed, 23 insertions(+), 88 deletions(-)

diff --git a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
index df1a0bfe15ba..5fa356be700e 100644
--- a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
+++ b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
@@ -3,100 +3,36 @@ From: q66 <daniel@octaforge.org>
 Date: Thu, 28 Apr 2022 00:48:04 +0200
 Subject: [PATCH] fix up runtime for ppc64 BE ELFv2 + ensure it's used
 
----
- configure                         |  2 +-
- libraries/ghci/GHCi/InfoTable.hsc | 36 ++++++++++++-------------------
- m4/fptools.m4                     |  2 +-
- rts/AdjustorAsm.S                 |  2 +-
- rts/StgCRun.c                     |  4 ++--
- rts/StgCRunAsm.S                  |  2 +-
- rts/adjustor/NativeIA64.c         |  2 +-
- rts/adjustor/NativePowerPC.c      |  2 +-
- 8 files changed, 22 insertions(+), 30 deletions(-)
-
-diff --git a/configure b/configure
-index 8310e6f..eac1124 100755
 --- a/configure
 +++ b/configure
-@@ -10508,7 +10508,7 @@ printf "%s\n" "no" >&6; }
+@@ -10871,7 +10871,7 @@
              test -z "$2" || eval "$2=ArchPPC"
              ;;
          powerpc64)
--            test -z "$2" || eval "$2=\"ArchPPC_64 {ppc_64ABI = ELF_V1}\""
-+            test -z "$2" || eval "$2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
+-            test -z "$2" || eval "$2=\"ArchPPC_64 ELF_V1\""
++            test -z "$2" || eval "$2=\"ArchPPC_64 ELF_V2\""
              ;;
          powerpc64le)
-             test -z "$2" || eval "$2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
-diff --git a/libraries/ghci/GHCi/InfoTable.hsc b/libraries/ghci/GHCi/InfoTable.hsc
-index ad4eb4d..e4f1c0c 100644
---- a/libraries/ghci/GHCi/InfoTable.hsc
-+++ b/libraries/ghci/GHCi/InfoTable.hsc
-@@ -231,30 +231,22 @@ mkJumpToAddr' platform a = case platform of
-                 , fromIntegral w64
-                 , fromIntegral (w64 `shiftR` 32) ]
-     ArchPPC64 ->
--        -- We use the compiler's register r12 to read the function
--        -- descriptor and the linker's register r11 as a temporary
--        -- register to hold the function entry point.
--        -- In the medium code model the function descriptor
--        -- is located in the first two gigabytes, i.e. the address
--        -- of the function pointer is a non-negative 32 bit number.
--        -- 0x0EADBEEF stands for the address of the function pointer:
--        --    0:   3d 80 0e ad     lis     r12,0x0EAD
--        --    4:   61 8c be ef     ori     r12,r12,0xBEEF
--        --    8:   e9 6c 00 00     ld      r11,0(r12)
--        --    c:   e8 4c 00 08     ld      r2,8(r12)
--        --   10:   7d 69 03 a6     mtctr   r11
--        --   14:   e9 6c 00 10     ld      r11,16(r12)
--        --   18:   4e 80 04 20     bctr
--       let  w32 = fromIntegral (funPtrToInt a)
-+        -- The ABI requires r12 to point to the function's entry point.
-+        -- We use the medium code model where code resides in the first
-+        -- two gigabytes, so loading a non-negative32 bit address
-+        -- with lis followed by ori is fine.
-+        -- 0x0EADBEEF stands for the address:
-+        -- 3D800EAD lis r12,0x0EAD
-+        -- 618CBEEF ori r12,r12,0xBEEF
-+        -- 7D8903A6 mtctr r12
-+        -- 4E800420 bctr
-+
-+        let w32 = fromIntegral (funPtrToInt a)
-             hi16 x = (x `shiftR` 16) .&. 0xFFFF
-             lo16 x = x .&. 0xFFFF
--       in Right [ 0x3D800000 .|. hi16 w32,
--                  0x618C0000 .|. lo16 w32,
--                  0xE96C0000,
--                  0xE84C0008,
--                  0x7D6903A6,
--                  0xE96C0010,
--                  0x4E800420]
-+        in Right [ 0x3D800000 .|. hi16 w32,
-+                   0x618C0000 .|. lo16 w32,
-+                   0x7D8903A6, 0x4E800420 ]
- 
-     ArchPPC64LE ->
-         -- The ABI requires r12 to point to the function's entry point.
-diff --git a/m4/fptools.m4 b/m4/fptools.m4
-index 8c6c9b7..eb25c37 100644
---- a/m4/fptools.m4
-+++ b/m4/fptools.m4
-@@ -201,7 +201,7 @@ AC_DEFUN([FPTOOLS_SET_HASKELL_PLATFORM_VARS],
+             test -z "$2" || eval "$2=\"ArchPPC_64 ELF_V2\""
+--- a/m4/fptools_set_haskell_platform_vars.m4
++++ b/m4/fptools_set_haskell_platform_vars.m4
+@@ -15,7 +15,7 @@
              test -z "[$]2" || eval "[$]2=ArchPPC"
              ;;
          powerpc64)
--            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V1}\""
-+            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
+-            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 ELF_V1\""
++            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 ELF_V2\""
              ;;
          powerpc64le)
-             test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
+             test -z "[$]2" || eval "[$]2=\"ArchPPC_64 ELF_V2\""
 diff --git a/rts/AdjustorAsm.S b/rts/AdjustorAsm.S
 index 2795b83..63cfe91 100644
 --- a/rts/AdjustorAsm.S
 +++ b/rts/AdjustorAsm.S
 @@ -2,7 +2,7 @@
- 
+
  /* ******************************** PowerPC ******************************** */
- 
+
 -#if defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
 +#if defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
  #if !(defined(powerpc_HOST_ARCH) && defined(linux_HOST_OS))
@@ -109,21 +45,21 @@ index f43227a..927d44a 100644
 @@ -724,7 +724,7 @@ StgRunIsImplementedInAssembler(void)
     Everything is in assembler, so we don't have to deal with GCC...
     -------------------------------------------------------------------------- */
- 
+
 -#if defined(powerpc64_HOST_ARCH)
 +#if defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2)
  /* 64-bit PowerPC ELF ABI 1.9
   *
   * Stack frame organization (see Figure 3-17, ELF ABI 1.9, p 14)
 @@ -792,7 +792,7 @@ StgRunIsImplementedInAssembler(void)
- 
+
  #endif
- 
+
 -#if defined(powerpc64le_HOST_ARCH)
 +#if defined(powerpc64le_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF == 2))
  /* -----------------------------------------------------------------------------
     PowerPC 64 little endian architecture
- 
+
 diff --git a/rts/StgCRunAsm.S b/rts/StgCRunAsm.S
 index 60f1bf9..c6794d7 100644
 --- a/rts/StgCRunAsm.S
@@ -131,7 +67,7 @@ index 60f1bf9..c6794d7 100644
 @@ -5,7 +5,7 @@
   * then functions StgRun/StgReturn are implemented in file StgCRun.c */
  #if !defined(USE_MINIINTERPRETER)
- 
+
 -#if defined(powerpc64le_HOST_ARCH)
 +#if defined(powerpc64le_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF == 2))
  # if defined(linux_HOST_OS)
@@ -157,12 +93,11 @@ index 2e5d605..caef5d3 100644
 @@ -29,7 +29,7 @@ __asm__("obscure_ccall_ret_code:\n\t"
  extern void obscure_ccall_ret_code(void);
  #endif /* defined(linux_HOST_OS) */
- 
+
 -#if defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
 +#if defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
  #if !(defined(powerpc_HOST_ARCH) && defined(linux_HOST_OS))
- 
+
  /* !!! !!! WARNING: !!! !!!
--- 
+--
 2.35.1
-
diff --git a/srcpkgs/ghc/template b/srcpkgs/ghc/template
index bf76202f4098..c4808339cd29 100644
--- a/srcpkgs/ghc/template
+++ b/srcpkgs/ghc/template
@@ -1,7 +1,7 @@
 # Template file for 'ghc'
 pkgname=ghc
 # Keep this synchronized with http://www.stackage.org/lts
-version=9.0.2
+version=9.2.5
 revision=1
 build_style=gnu-configure
 hostmakedepends="automake docbook-xsl ghc-bin libxslt libnuma-devel
@@ -9,11 +9,11 @@ hostmakedepends="automake docbook-xsl ghc-bin libxslt libnuma-devel
 makedepends="libnuma-devel"
 depends="perl gcc libffi-devel gmp-devel libnuma-devel"
 short_desc="Glorious Haskell Compiler"
-maintainer="slotThe <soliditsallgood@mailbox.org>"
+maintainer="Tony Zorman <soliditsallgood@mailbox.org>"
 license="BSD-3-Clause"
 homepage="http://www.haskell.org/ghc/"
 distfiles="http://www.haskell.org/ghc/dist/${version%[!0-9]}/${pkgname}-${version%[!0-9]}-src.tar.xz"
-checksum=140e42b96346322d1a39eb17602bcdc76e292028ad4a69286b230bab188a9197
+checksum=0606797d1b38e2d88ee2243f38ec6b9a1aa93e9b578e95f0de9a9c0a4144021c
 nocross=yes # this is conditionally unset for cross bindist
 nodebug=yes # work around assembler error "Fatal error: duplicate .debug_line sections"
 _bindir="/usr/lib/${pkgname}-${version}/bin"

From 3d349a8a1192747ff14dd89e54fc0f7f19a991f5 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Fri, 18 Nov 2022 14:56:06 +0100
Subject: [PATCH 02/15] cabal-install: update to 3.8.1.0.

---
 srcpkgs/cabal-install/files/linux-9.0.2.json |  1 -
 srcpkgs/cabal-install/files/linux-9.2.5.json |  1 +
 srcpkgs/cabal-install/template               | 12 ++++++------
 3 files changed, 7 insertions(+), 7 deletions(-)
 delete mode 100644 srcpkgs/cabal-install/files/linux-9.0.2.json
 create mode 100644 srcpkgs/cabal-install/files/linux-9.2.5.json

diff --git a/srcpkgs/cabal-install/files/linux-9.0.2.json b/srcpkgs/cabal-install/files/linux-9.0.2.json
deleted file mode 100644
index f3cb6b4aeeb5..000000000000
--- a/srcpkgs/cabal-install/files/linux-9.0.2.json
+++ /dev/null
@@ -1 +0,0 @@
-{"builtin":[{"package":"rts","version":"1.0.2"},{"package":"ghc-prim","version":"0.7.0"},{"package":"ghc-bignum","version":"1.1"},{"package":"base","version":"4.15.1.0"},{"package":"array","version":"0.5.4.0"},{"package":"deepseq","version":"1.4.5.0"},{"package":"bytestring","version":"0.10.12.1"},{"package":"containers","version":"0.6.4.1"},{"package":"binary","version":"0.8.8.0"},{"package":"filepath","version":"1.4.2.1"},{"package":"time","version":"1.9.3"},{"package":"unix","version":"2.7.2.2"},{"package":"directory","version":"1.3.6.2"},{"package":"transformers","version":"0.5.6.2"},{"package":"mtl","version":"2.2.2"},{"package":"ghc-boot-th","version":"9.0.2"},{"package":"pretty","version":"1.1.3.6"},{"package":"template-haskell","version":"2.17.0.0"},{"package":"text","version":"1.2.5.0"},{"package":"parsec","version":"3.1.14.0"},{"package":"process","version":"1.6.13.2"},{"package":"stm","version":"2.5.0.0"}],"dependencies":[{"cabal_sha256":null,"flags":["-bundled-binary-generic"],"package":"Cabal","revision":null,"source":"local","src_sha256":null,"version":"3.6.3.0"},{"cabal_sha256":"714a55fd28d3e2533bd5b49e74f604ef8e5d7b06f249c8816f6c54aed431dcf1","flags":["-optimised-mixer"],"package":"splitmix","revision":0,"source":"hackage","src_sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","version":"0.1.0.4"},{"cabal_sha256":"8bee24dc0c985a90ee78d94c61f8aed21c49633686f0f1c14c5078d818ee43a2","flags":[],"package":"random","revision":0,"source":"hackage","src_sha256":"265c768fc5f2ca53cde6a87e706b4448cad474c3deece933c103f24453661457","version":"1.2.1"},{"cabal_sha256":"3a2beeafb220f9de706568a7e4a5b3c762cc4c9f25c94d7ef795b8c2d6a691d7","flags":["+integer-gmp","-random-initial-seed"],"package":"hashable","revision":1,"source":"hackage","src_sha256":"baaad82cd4271b197016bdbe76f22d5c3d3913fe38534cec7d817db9bae19886","version":"1.3.5.0"},{"cabal_sha256":"b83dec34a53520de84c6dd3dc7aae45d22409b46eb471c478b98108215a370f0","flags":["-bench"],"package":"async","revision":1,"source":"hackage","src_sha256":"484df85be0e76c4fed9376451e48e1d0c6e97952ce79735b72d54297e7e0a725","version":"2.2.4"},{"cabal_sha256":"037d70bb091c49f68726dde920f6a003b646835a86cdcb5b5ad58ad9af3207d9","flags":[],"package":"Cabal-syntax","revision":0,"source":"hackage","src_sha256":"ca25e5fc601397565fa857f1aa477740fac7f43d659e77c4d9b1485dca239251","version":"3.6.0.0"},{"cabal_sha256":"d8699f46b485f105eea9c7158f3d432ca578e6bbe5d68751184e9899a41d430d","flags":["-old-bytestring","-old-time"],"package":"tar","revision":4,"source":"hackage","src_sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","version":"0.5.1.1"},{"cabal_sha256":"e3d78b13db9512aeb106e44a334ab42b7aa48d26c097299084084cb8be5c5568","flags":["-devel"],"package":"network","revision":0,"source":"hackage","src_sha256":"7f7620fef1a1af3d3d6747f510e73223a5c600e7d7fd9ace073d1222bdc63d85","version":"3.1.2.7"},{"cabal_sha256":"a16dd922947a6877defe52c4c38d1ab48ed3f85a826930f5d1a568741d619993","flags":[],"package":"th-compat","revision":0,"source":"hackage","src_sha256":"6b5059caf6714f47da92953badf2f556119877e09708c14e206b3ae98b8681c6","version":"0.1.3"},{"cabal_sha256":"a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d","flags":[],"package":"network-uri","revision":0,"source":"hackage","src_sha256":"57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584","version":"2.6.4.1"},{"cabal_sha256":"6042643c15a0b43e522a6693f1e322f05000d519543a84149cb80aeffee34f71","flags":["-conduit10","-mtl1","+network-uri","-warn-as-error","-warp-tests"],"package":"HTTP","revision":1,"source":"hackage","src_sha256":"d6091c037871ac3d08d021c906206174567499d5a26a6cb804cf530cd590fe2d","version":"4000.3.16"},{"cabal_sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","flags":[],"package":"base16-bytestring","revision":0,"source":"hackage","src_sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","version":"1.0.2.0"},{"cabal_sha256":"50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8","flags":[],"package":"base64-bytestring","revision":0,"source":"hackage","src_sha256":"fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9","version":"1.2.1.0"},{"cabal_sha256":"188d0b5a0491e8b686b32d9b144c9287760ba333d2509bf3f17e3d846fbc2332","flags":["-exe","+use-cbits"],"package":"cryptohash-sha256","revision":0,"source":"hackage","src_sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","version":"0.11.102.1"},{"cabal_sha256":"ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42","flags":["-example"],"package":"echo","revision":0,"source":"hackage","src_sha256":"c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43","version":"0.1.4"},{"cabal_sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","flags":[],"package":"edit-distance","revision":1,"source":"hackage","src_sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","version":"0.2.2.1"},{"cabal_sha256":"24ac7b5f3d9fa3c2f70262b329f2a75f24e7fd829f88c189b388efa1bcd67eb2","flags":["+no-donna","+test-doctests","+test-hlint","+test-properties"],"package":"ed25519","revision":5,"source":"hackage","src_sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","version":"0.0.5.0"},{"cabal_sha256":"c084c043a40632d3cafcac50fb5eeff84d91edb070a54baa94945f1c976f97c0","flags":["+ofd-locking"],"package":"lukko","revision":2,"source":"hackage","src_sha256":"a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f","version":"0.1.1.3"},{"cabal_sha256":"262a93dbf370be59f4ee57f3b1a51b338bc2c309797daa37c14f2262ae61dae4","flags":["-bundled-c-zlib","-non-blocking-ffi","-pkg-config"],"package":"zlib","revision":1,"source":"hackage","src_sha256":"807f6bddf9cb3c517ce5757d991dde3c7e319953a22c86ee03d74534bd5abc88","version":"0.6.2.3"},{"cabal_sha256":"eb34c3e2fa39f9819293045c03e56148a7125573c1de265cdfe5d967f1d71c6e","flags":["+base48","-cabal-syntax","+lukko","-mtl21","-old-directory","+use-network-uri"],"package":"hackage-security","revision":1,"source":"hackage","src_sha256":"bf22cd16dde7d6b7130463f4d7324b64a2964d9ef3f523df97d7cb98544d64a8","version":"0.6.2.1"},{"cabal_sha256":"2561adac8ce373910948066debe090a22b336b129ba5af18c0332524d16e72ce","flags":[],"package":"regex-base","revision":0,"source":"hackage","src_sha256":"7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1","version":"0.94.0.2"},{"cabal_sha256":"b6421e5356766b0c0a78b6094ae2e3a6259b42c147b717283c03c1cb09163dca","flags":["-_regex-posix-clib"],"package":"regex-posix","revision":0,"source":"hackage","src_sha256":"c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c","version":"0.96.0.1"},{"cabal_sha256":"2088eb9368b920f80bbe4e3b03c3b8484090208f5c3b31645bd67a9ef7d26db4","flags":[],"package":"resolv","revision":4,"source":"hackage","src_sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","version":"0.1.2.0"},{"cabal_sha256":null,"flags":["-debug-conflict-sets","-debug-expensive-assertions","-debug-tracetree","+lukko","+native-dns"],"package":"cabal-install","revision":null,"source":"local","src_sha256":null,"version":"3.6.2.0"}]}
\ No newline at end of file
diff --git a/srcpkgs/cabal-install/files/linux-9.2.5.json b/srcpkgs/cabal-install/files/linux-9.2.5.json
new file mode 100644
index 000000000000..13fe257cbb30
--- /dev/null
+++ b/srcpkgs/cabal-install/files/linux-9.2.5.json
@@ -0,0 +1 @@
+{"builtin":[{"package":"rts","version":"1.0.2"},{"package":"ghc-prim","version":"0.8.0"},{"package":"ghc-bignum","version":"1.2"},{"package":"base","version":"4.16.4.0"},{"package":"array","version":"0.5.4.0"},{"package":"deepseq","version":"1.4.6.1"},{"package":"ghc-boot-th","version":"9.2.5"},{"package":"pretty","version":"1.1.3.6"},{"package":"template-haskell","version":"2.18.0.0"},{"package":"bytestring","version":"0.11.3.1"},{"package":"containers","version":"0.6.5.1"},{"package":"binary","version":"0.8.9.0"},{"package":"filepath","version":"1.4.2.2"},{"package":"time","version":"1.11.1.1"},{"package":"unix","version":"2.7.2.2"},{"package":"directory","version":"1.3.6.2"},{"package":"transformers","version":"0.5.6.2"},{"package":"mtl","version":"2.2.2"},{"package":"text","version":"1.2.5.0"},{"package":"parsec","version":"3.1.15.0"},{"package":"process","version":"1.6.16.0"},{"package":"stm","version":"2.5.0.2"},{"package":"exceptions","version":"0.10.4"}],"dependencies":[{"cabal_sha256":null,"flags":[],"package":"Cabal-syntax","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"},{"cabal_sha256":null,"flags":[],"package":"Cabal","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"},{"cabal_sha256":"804e2574bc7e32d08cbab91e47ee6287b4df7d50851d73f9e778f94a9a7814c7","flags":["-optimised-mixer"],"package":"splitmix","revision":1,"source":"hackage","src_sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","version":"0.1.0.4"},{"cabal_sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","flags":[],"package":"random","revision":0,"source":"hackage","src_sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","version":"1.2.1.1"},{"cabal_sha256":"50b2f002c68fe67730ee7a3cd8607486197dd99b084255005ad51ecd6970a41b","flags":["+containers","+integer-gmp","-random-initial-seed"],"package":"hashable","revision":0,"source":"hackage","src_sha256":"e1b305c280e66ad827edeaedd6933b9fc4174f626882877eab2a08344e665e87","version":"1.4.1.0"},{"cabal_sha256":"2b9409023536823233ce3134558565d01b3382e651fa54ac8cb8a99967e023c9","flags":["-bench"],"package":"async","revision":2,"source":"hackage","src_sha256":"484df85be0e76c4fed9376451e48e1d0c6e97952ce79735b72d54297e7e0a725","version":"2.2.4"},{"cabal_sha256":"bc14969ea4adfec6eee20264decf4a07c4002b38b2aa802d58d86b1a2cf7b895","flags":["-old-bytestring","-old-time"],"package":"tar","revision":5,"source":"hackage","src_sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","version":"0.5.1.1"},{"cabal_sha256":"e3d78b13db9512aeb106e44a334ab42b7aa48d26c097299084084cb8be5c5568","flags":["-devel"],"package":"network","revision":0,"source":"hackage","src_sha256":"7f7620fef1a1af3d3d6747f510e73223a5c600e7d7fd9ace073d1222bdc63d85","version":"3.1.2.7"},{"cabal_sha256":"6ca77c4e80b4e4109e30549c269631a9cc295c8fc2431ce4123972a5f80f7bfc","flags":[],"package":"th-compat","revision":0,"source":"hackage","src_sha256":"d8f97ac14ab47b6b8a7b0fdb4ff95426322ec56badd01652ac15da4a44d4bab8","version":"0.1.4"},{"cabal_sha256":"a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d","flags":[],"package":"network-uri","revision":0,"source":"hackage","src_sha256":"57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584","version":"2.6.4.1"},{"cabal_sha256":"b878d575c470bd1f72d37af6654d924ab2b9489d88de8a71bd74d9d5d726c013","flags":["-conduit10","+network-uri","-warn-as-error","-warp-tests"],"package":"HTTP","revision":1,"source":"hackage","src_sha256":"df31d8efec775124dab856d7177ddcba31be9f9e0836ebdab03d94392f2dd453","version":"4000.4.1"},{"cabal_sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","flags":[],"package":"base16-bytestring","revision":0,"source":"hackage","src_sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","version":"1.0.2.0"},{"cabal_sha256":"50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8","flags":[],"package":"base64-bytestring","revision":0,"source":"hackage","src_sha256":"fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9","version":"1.2.1.0"},{"cabal_sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","flags":[],"package":"edit-distance","revision":1,"source":"hackage","src_sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","version":"0.2.2.1"},{"cabal_sha256":null,"flags":["-debug-conflict-sets","-debug-expensive-assertions","-debug-tracetree"],"package":"cabal-install-solver","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"},{"cabal_sha256":"facd0c04925ef925ec05243471fd16055229fdf51f64db1a1049de0cc6c6dfc3","flags":["-exe","+use-cbits"],"package":"cryptohash-sha256","revision":1,"source":"hackage","src_sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","version":"0.11.102.1"},{"cabal_sha256":"ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42","flags":["-example"],"package":"echo","revision":0,"source":"hackage","src_sha256":"c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43","version":"0.1.4"},{"cabal_sha256":"885c9e2410e5d91a08b199897df0867fecedf818216d7329a2d43a512833dd63","flags":["+no-donna","+test-doctests","+test-hlint","+test-properties"],"package":"ed25519","revision":6,"source":"hackage","src_sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","version":"0.0.5.0"},{"cabal_sha256":"efd4c08c4df1ac3f423858a834c0e3b5b4909febda66a901d12a8e1d57bddaa8","flags":["+ofd-locking"],"package":"lukko","revision":3,"source":"hackage","src_sha256":"a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f","version":"0.1.1.3"},{"cabal_sha256":"8214a9d37580f17f8b675109578a5dbe6853559eef156e34dc2233f1123ace33","flags":["-bundled-c-zlib","-non-blocking-ffi","-pkg-config"],"package":"zlib","revision":0,"source":"hackage","src_sha256":"9eaa989ad4534438b5beb51c1d3a4c8f6a088fdff0b259a5394fbf39aaee04da","version":"0.6.3.0"},{"cabal_sha256":"1a6cf81a4871559ef5bc47b230278b9ad4bf44f1e4dbf77bdc8e07f6e7b8d005","flags":["+base48","+cabal-syntax","+lukko","-mtl21","-old-directory","+use-network-uri"],"package":"hackage-security","revision":1,"source":"hackage","src_sha256":"a833a31610220506557e96fb6e3e8b05a2e1db8e7ebc06e91bbb699ddde0b276","version":"0.6.2.2"},{"cabal_sha256":"4ff4425c710cddf440dfbac6cd52310bb6b23e17902390ff71c9fc7eaafc4fcc","flags":[],"package":"regex-base","revision":1,"source":"hackage","src_sha256":"7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1","version":"0.94.0.2"},{"cabal_sha256":"9dbba4b65a3bb6975d9740814be5593c6b2d2d6a0b3febc8ec940edb9a9bbdf4","flags":["-_regex-posix-clib"],"package":"regex-posix","revision":1,"source":"hackage","src_sha256":"c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c","version":"0.96.0.1"},{"cabal_sha256":"61e2d98ff634b8b4b3db467772420c0f9c79c2da9ddf3d2daeb2af2417f2c535","flags":[],"package":"resolv","revision":5,"source":"hackage","src_sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","version":"0.1.2.0"},{"cabal_sha256":"6e9b1b233af80cc0aa17ea858d2641ba146fb11cbcc5970a52649e89d77282e2","flags":[],"package":"safe-exceptions","revision":0,"source":"hackage","src_sha256":"91ce28d8f8a6efd31788d4827ed5cdcb9a546ad4053a86c56f7947c66a30b5bf","version":"0.1.7.3"},{"cabal_sha256":null,"flags":["+lukko","+native-dns"],"package":"cabal-install","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"}]}
\ No newline at end of file
diff --git a/srcpkgs/cabal-install/template b/srcpkgs/cabal-install/template
index b3ebc1bb15b9..9f9bd3afe8a2 100644
--- a/srcpkgs/cabal-install/template
+++ b/srcpkgs/cabal-install/template
@@ -1,7 +1,7 @@
 # Template file for 'cabal-install'
 pkgname=cabal-install
-version=3.6.3.0
-revision=2
+version=3.8.1.0
+revision=1
 hostmakedepends="ghc curl tar which"
 makedepends="gmp-devel libffi-devel zlib-devel python3"
 depends="ghc"
@@ -10,24 +10,24 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
 license="BSD-3-Clause"
 homepage="https://hackage.haskell.org/package/cabal-install"
 distfiles="https://github.com/haskell/cabal/archive/Cabal-v${version}.tar.gz"
-checksum=dea086acad6d9fe5fe22d838b95b4e988022e8519f38d41609119ea32bfb7466
+checksum=d4eff9c1fcc5212360afac8d97da83b3aff79365490a449e9c47d3988c14b6bc
 nopie_files="/usr/bin/cabal"
 nocross=yes
 
 post_extract() {
-	cp "${FILESDIR}/linux-9.0.2.json" bootstrap/
+	cp "${FILESDIR}/linux-9.2.5.json" bootstrap/
 }
 
 post_patch() {
 	case "${XBPS_TARGET_MACHINE}" in
 	i686*)
 		# https://github.com/haskell/cabal/issues/7313
-		vsed -i -e 's/+ofd-locking/-ofd-locking/' bootstrap/linux-9.0.2.json ;;
+		vsed -i -e 's/+ofd-locking/-ofd-locking/' bootstrap/linux-9.2.5.json ;;
 	esac
 }
 
 do_build() {
-	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-9.0.2.json
+	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-9.2.5.json
 }
 do_install() {
 	vbin _build/bin/cabal

From bfcde1a6bcb96b4aeb73a1b115d301425f323814 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Mon, 21 Nov 2022 18:38:18 +0100
Subject: [PATCH 03/15] stack: update to 2.9.3

+ Remove most outdated patches concerning version bounds and
  compatibility with GHC 9.0.2.
+ Adjust ppc patch.
+ New showStackVersion patch to build with GHC 9.2.5.
---
 srcpkgs/stack/patches/aeson.patch            |  46 ----
 srcpkgs/stack/patches/fsnotify.patch         |  16 --
 srcpkgs/stack/patches/ghc9.0.2.patch         | 212 -------------------
 srcpkgs/stack/patches/persistent.patch       |  46 ----
 srcpkgs/stack/patches/ppc.patch              |   3 +-
 srcpkgs/stack/patches/showStackVersion.patch |  10 +
 srcpkgs/stack/template                       |  10 +-
 7 files changed, 16 insertions(+), 327 deletions(-)
 delete mode 100644 srcpkgs/stack/patches/aeson.patch
 delete mode 100644 srcpkgs/stack/patches/fsnotify.patch
 delete mode 100644 srcpkgs/stack/patches/ghc9.0.2.patch
 delete mode 100644 srcpkgs/stack/patches/persistent.patch
 create mode 100644 srcpkgs/stack/patches/showStackVersion.patch

diff --git a/srcpkgs/stack/patches/aeson.patch b/srcpkgs/stack/patches/aeson.patch
deleted file mode 100644
index 68f267c30cc8..000000000000
--- a/srcpkgs/stack/patches/aeson.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-commit 09e233ed73aa3335642f97c080ef27e42047c527
-Author: q66 <daniel@octaforge.org>
-Date:   Fri Mar 11 04:37:15 2022 +0100
-
-    constrain aeson to prevent build failures
-
-diff --git a/stack.cabal b/stack.cabal
-index dba5bf0..0195f2c 100644
---- a/stack.cabal
-+++ b/stack.cabal
-@@ -231,7 +231,7 @@ library
- 
-     build-depends:
-         Cabal >=3.2.1.0,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
-@@ -357,7 +357,7 @@ executable stack
- 
-     build-depends:
-         Cabal >=3.2.1.0,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
-@@ -485,7 +485,7 @@ executable stack-integration-test
- 
-     build-depends:
-         Cabal >=3.2.1.0,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
-@@ -621,7 +621,7 @@ test-suite stack-test
-     build-depends:
-         Cabal >=3.2.1.0,
-         QuickCheck >=2.14.2,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
diff --git a/srcpkgs/stack/patches/fsnotify.patch b/srcpkgs/stack/patches/fsnotify.patch
deleted file mode 100644
index f82fd8f73004..000000000000
--- a/srcpkgs/stack/patches/fsnotify.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-src/Stack/FileWatch.hs:29:49: error: Not in scope: ‘confUsePolling’
-   |
-29 | fileWatchPoll = fileWatchConf $ defaultConfig { confUsePolling = True }
-   |                                                 ^^^^^^^^^^^^^^
-
---- a/stack.cabal
-+++ b/stack.cabal
-@@ -256,7 +256,7 @@ library
-         file-embed >=0.0.14.0,
-         filelock >=0.1.1.5,
-         filepath >=1.4.2.1,
--        fsnotify >=0.3.0.1,
-+        fsnotify >=0.3.0.1 && <0.4.0.0,
-         generic-deriving >=1.13.1,
-         hackage-security >=0.6.0.1,
-         hashable >=1.3.0.0,
diff --git a/srcpkgs/stack/patches/ghc9.0.2.patch b/srcpkgs/stack/patches/ghc9.0.2.patch
deleted file mode 100644
index bdd77de58c6b..000000000000
--- a/srcpkgs/stack/patches/ghc9.0.2.patch
+++ /dev/null
@@ -1,212 +0,0 @@
-From cb7e56842a25f93142545fad21306a7c1750fbbf Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:26:22 -0700
-Subject: [PATCH 1/6] Use Cabal 3.4.0.0
-
----
- stack.yaml | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/stack.yaml b/stack.yaml
-index 005bd19f4..9472509be 100644
---- a/stack.yaml
-+++ b/stack.yaml
-@@ -20,6 +20,9 @@ flags:
- ghc-options:
-    "$locals": -fhide-source-paths
-
-+extra-deps:
-+- Cabal-3.4.0.0
-+
- drop-packages:
- # See https://github.com/commercialhaskell/stack/pull/4712
- - cabal-install
-
-From 11e11ab0edeba033b40a7fc62434be58dea82ce2 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:40:56 -0700
-Subject: [PATCH 2/6] Fix Flag => PackageFlag
-
----
- src/Stack/BuildPlan.hs | 2 +-
- src/Stack/Package.hs   | 8 ++++----
- 2 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/src/Stack/BuildPlan.hs b/src/Stack/BuildPlan.hs
-index 36f82236e..c5c80efc6 100644
---- a/src/Stack/BuildPlan.hs
-+++ b/src/Stack/BuildPlan.hs
-@@ -224,7 +224,7 @@ selectPackageBuildPlan platform compiler pool gpd =
-     flagCombinations :: NonEmpty [(FlagName, Bool)]
-     flagCombinations = mapM getOptions (genPackageFlags gpd)
-       where
--        getOptions :: C.Flag -> NonEmpty (FlagName, Bool)
-+        getOptions :: C.PackageFlag -> NonEmpty (FlagName, Bool)
-         getOptions f
-             | flagManual f = (fname, flagDefault f) :| []
-             | flagDefault f = (fname, True) :| [(fname, False)]
-diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs
-index 4db50d2a4..d9bca7af5 100644
---- a/src/Stack/Package.hs
-+++ b/src/Stack/Package.hs
-@@ -128,7 +128,7 @@ resolvePackage packageConfig gpkg =
-         (resolvePackageDescription packageConfig gpkg)
-
- packageFromPackageDescription :: PackageConfig
--                              -> [D.Flag]
-+                              -> [PackageFlag]
-                               -> PackageDescriptionPair
-                               -> Package
- packageFromPackageDescription packageConfig pkgFlags (PackageDescriptionPair pkgNoMod pkg) =
-@@ -935,9 +935,9 @@ resolvePackageDescription packageConfig (GenericPackageDescription desc defaultF
- -- | Make a map from a list of flag specifications.
- --
- -- What is @flagManual@ for?
--flagMap :: [Flag] -> Map FlagName Bool
-+flagMap :: [PackageFlag] -> Map FlagName Bool
- flagMap = M.fromList . map pair
--  where pair :: Flag -> (FlagName, Bool)
-+  where pair :: PackageFlag -> (FlagName, Bool)
-         pair = flagName &&& flagDefault
-
- data ResolveConditions = ResolveConditions
-@@ -986,7 +986,7 @@ resolveConditions rc addDeps (CondNode lib deps cs) = basic <> children
-                   case v of
-                     OS os -> os == rcOS rc
-                     Arch arch -> arch == rcArch rc
--                    Flag flag ->
-+                    PackageFlag flag ->
-                       fromMaybe False $ M.lookup flag (rcFlags rc)
-                       -- NOTE:  ^^^^^ This should never happen, as all flags
-                       -- which are used must be declared. Defaulting to
-
-From 8facd731ec3f2bbc15a083750740929167b33bb2 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:55:30 -0700
-Subject: [PATCH 3/6] Fix CabalSpecVersion
-
----
- src/Stack/Package.hs | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs
-index d9bca7af5..fca039140 100644
---- a/src/Stack/Package.hs
-+++ b/src/Stack/Package.hs
-@@ -32,6 +32,7 @@ import           Data.List (find, isPrefixOf, unzip)
- import qualified Data.Map.Strict as M
- import qualified Data.Set as S
- import qualified Data.Text as T
-+import           Distribution.CabalSpecVersion (CabalSpecVersion, cabalSpecMinimumLibraryVersion)
- import           Distribution.Compiler
- import           Distribution.ModuleName (ModuleName)
- import qualified Distribution.ModuleName as Cabal
-@@ -190,7 +191,7 @@ packageFromPackageDescription packageConfig pkgFlags (PackageDescriptionPair pkg
-           (library pkg)
-     , packageBuildType = buildType pkg
-     , packageSetupDeps = msetupDeps
--    , packageCabalSpec = either orLaterVersion id $ specVersionRaw pkg
-+    , packageCabalSpec = orLaterVersion $ mkVersion $ cabalSpecMinimumLibraryVersion $ specVersion pkg
-     }
-   where
-     extraLibNames = S.union subLibNames foreignLibNames
-@@ -696,7 +697,7 @@ packageDescModulesAndFiles pkg = do
-
- -- | Resolve globbing of files (e.g. data files) to absolute paths.
- resolveGlobFiles
--  :: Version -- ^ cabal file version
-+  :: CabalSpecVersion -- ^ cabal file version
-   -> [String]
-   -> RIO Ctx (Set (Path Abs File))
- resolveGlobFiles cabalFileVersion =
-
-From 004f14652409b7d0645215d354b2e599eb7f76bc Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:55:40 -0700
-Subject: [PATCH 4/6] Fix GenericPackageDescription
-
----
- src/Stack/Build.hs   | 2 +-
- src/Stack/Package.hs | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/Stack/Build.hs b/src/Stack/Build.hs
-index 23b9a9719..856903bed 100644
---- a/src/Stack/Build.hs
-+++ b/src/Stack/Build.hs
-@@ -358,7 +358,7 @@ checkComponentsBuildable lps =
- checkSubLibraryDependencies :: HasLogFunc env => [ProjectPackage] -> RIO env ()
- checkSubLibraryDependencies proj = do
-   forM_ proj $ \p -> do
--    C.GenericPackageDescription _ _ lib subLibs foreignLibs exes tests benches <- liftIO $ cpGPD . ppCommon $ p
-+    C.GenericPackageDescription _ _ _ lib subLibs foreignLibs exes tests benches <- liftIO $ cpGPD . ppCommon $ p
-
-     let dependencies = concatMap getDeps subLibs <>
-                        concatMap getDeps foreignLibs <>
-diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs
-index fca039140..39aad4d2f 100644
---- a/src/Stack/Package.hs
-+++ b/src/Stack/Package.hs
-@@ -863,7 +863,7 @@ data PackageDescriptionPair = PackageDescriptionPair
- resolvePackageDescription :: PackageConfig
-                           -> GenericPackageDescription
-                           -> PackageDescriptionPair
--resolvePackageDescription packageConfig (GenericPackageDescription desc defaultFlags mlib subLibs foreignLibs' exes tests benches) =
-+resolvePackageDescription packageConfig (GenericPackageDescription desc _ defaultFlags mlib subLibs foreignLibs' exes tests benches) =
-     PackageDescriptionPair
-       { pdpOrigBuildable = go False
-       , pdpModifiedBuildable = go True
-
-From 820797b566ef981936907f4d19658259d4a635a8 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 17:01:01 -0700
-Subject: [PATCH 5/6] Fix generatePackageVersionMacros
-
----
- src/Stack/Build/Execute.hs | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/Stack/Build/Execute.hs b/src/Stack/Build/Execute.hs
-index 1e381dd21..aedd7fee5 100644
---- a/src/Stack/Build/Execute.hs
-+++ b/src/Stack/Build/Execute.hs
-@@ -1214,7 +1214,7 @@ withSingleContext ActionContext {..} ee@ExecuteEnv {..} task@Task {..} allDeps m
-                             let macroDeps = mapMaybe snd matchedDeps
-                                 cppMacrosFile = setupDir </> relFileSetupMacrosH
-                                 cppArgs = ["-optP-include", "-optP" ++ toFilePath cppMacrosFile]
--                            writeBinaryFileAtomic cppMacrosFile (encodeUtf8Builder (T.pack (C.generatePackageVersionMacros macroDeps)))
-+                            writeBinaryFileAtomic cppMacrosFile (encodeUtf8Builder (T.pack (C.generatePackageVersionMacros (packageVersion package) macroDeps)))
-                             return (packageDBArgs ++ depsArgs ++ cppArgs)
-
-                         -- This branch is usually taken for builds, and
-
-From 336ab515e30f03c274f89ebe1cbc6aa1e597c2a4 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 17:04:16 -0700
-Subject: [PATCH 6/6] Fix ModuleReexport
-
----
- src/Stack/Script.hs | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/Stack/Script.hs b/src/Stack/Script.hs
-index 6bb67c049..9ebd2173d 100644
---- a/src/Stack/Script.hs
-+++ b/src/Stack/Script.hs
-@@ -18,6 +18,7 @@ import           Distribution.Compiler      (CompilerFlavor (..))
- import           Distribution.ModuleName    (ModuleName)
- import qualified Distribution.PackageDescription as PD
- import qualified Distribution.Types.CondTree as C
-+import qualified Distribution.Types.ModuleReexport as ModuleReexport
- import           Distribution.Types.PackageName (mkPackageName)
- import           Distribution.Types.VersionRange (withinRange)
- import           Distribution.System        (Platform (..))
-@@ -280,7 +281,7 @@ allExposedModules gpd = do
-       mlibrary = snd . C.simplifyCondTree checkCond <$> PD.condLibrary gpd
-   pure $ case mlibrary  of
-     Just lib -> PD.exposedModules lib ++
--                map PD.moduleReexportName (PD.reexportedModules lib)
-+                map ModuleReexport.moduleReexportName (PD.reexportedModules lib)
-     Nothing  -> mempty
-
- -- | The Stackage project introduced the concept of hidden packages,
diff --git a/srcpkgs/stack/patches/persistent.patch b/srcpkgs/stack/patches/persistent.patch
deleted file mode 100644
index cf462d7b80c2..000000000000
--- a/srcpkgs/stack/patches/persistent.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-commit 188d7ece06ee06ed6ccaf0df0c46285bd43898f4
-Author: q66 <daniel@octaforge.org>
-Date:   Thu Apr 28 05:02:09 2022 +0200
-
-    constrain persistent to fix build
-
-diff --git a/stack.cabal b/stack.cabal
-index dba5bf0..e221321 100644
---- a/stack.cabal
-+++ b/stack.cabal
-@@ -281,7 +281,7 @@ library
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
-@@ -407,7 +407,7 @@ executable stack
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
-@@ -537,7 +537,7 @@ executable stack-integration-test
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
-@@ -672,7 +672,7 @@ test-suite stack-test
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
diff --git a/srcpkgs/stack/patches/ppc.patch b/srcpkgs/stack/patches/ppc.patch
index fc4c540f0f92..4ab025e7663c 100644
--- a/srcpkgs/stack/patches/ppc.patch
+++ b/srcpkgs/stack/patches/ppc.patch
@@ -22,11 +22,10 @@
 
 --- a/stack.cabal
 +++ b/stack.cabal
-@@ -246,6 +246,7 @@
+@@ -246,4 +246,5 @@
          conduit >=1.3.4.1,
          conduit-extra >=1.3.5,
          containers >=0.6.2.1,
 +        cpu >=0.1.2,
          cryptonite >=0.27,
          cryptonite-conduit >=0.2.2,
-         deepseq >=1.4.4.0,
diff --git a/srcpkgs/stack/patches/showStackVersion.patch b/srcpkgs/stack/patches/showStackVersion.patch
new file mode 100644
index 000000000000..454e0c6dfe53
--- /dev/null
+++ b/srcpkgs/stack/patches/showStackVersion.patch
@@ -0,0 +1,10 @@
+--- a/src/main/BuildInfo.hs
++++ b/src/main/BuildInfo.hs
+@@ -32,5 +32,6 @@
+ #endif
+ import           Stack.Prelude
+ import qualified Paths_stack as Meta
++import Stack.Types.Version (showStackVersion)
+
+ versionString' :: String
+ #ifdef USE_GIT_INFO
diff --git a/srcpkgs/stack/template b/srcpkgs/stack/template
index b6c1f1578ed9..c76f90ff89ed 100644
--- a/srcpkgs/stack/template
+++ b/srcpkgs/stack/template
@@ -1,8 +1,8 @@
 # Template file for 'stack'
 pkgname=stack
-version=2.7.5
-revision=2
-_stackage="lts-19.0"
+version=2.9.3
+revision=1
+_stackage="lts-20.0"
 hostmakedepends="cabal-install pkg-config unzip"
 makedepends="zlib-devel pcre-devel"
 depends="git gmp-devel iana-etc"
@@ -12,8 +12,8 @@ license="BSD-3-Clause"
 homepage="https://haskellstack.org"
 distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz
  https://www.stackage.org/${_stackage}/cabal.config>cabal.config-${_stackage}"
-checksum="9ddd44c2a62e9404194d69e7dc1c94e707910620316b66d6ac0b3201a8f37e80
- e1de952bb6f62573e5c211df99ce6bb684c4cae7845f16c347ce9aa503d6374f"
+checksum="c4700cb227dd624249db2e649445f3df3d558c8a5ab2c98b5c7bf8545901f2dc
+ addcb336500f35b565403e72b0b3793fee74313439eacfb79e0c2121d88bc8ea"
 skip_extraction="cabal.config-${_stackage}"
 nocross=yes
 nopie_files="/usr/bin/stack"

From 43c22912fcbee45621319d96abf8603e2d5f6339 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Tue, 27 Dec 2022 15:29:21 +0100
Subject: [PATCH 04/15] hlint: update to 3.4.1

---
 srcpkgs/hlint/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/hlint/template b/srcpkgs/hlint/template
index 0109be25805f..c5efc617393c 100644
--- a/srcpkgs/hlint/template
+++ b/srcpkgs/hlint/template
@@ -1,16 +1,16 @@
 # Template file for 'hlint'
 pkgname=hlint
-version=3.3.6
+version=3.4.1
 revision=1
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 makedepends="ncurses-devel"
 short_desc="Haskell source code suggestions"
 maintainer="Inokentiy Babushkin <twk@twki.de>"
 license="BSD-3-Clause"
 homepage="https://github.com/ndmitchell/hlint"
 distfiles="https://github.com/ndmitchell/${pkgname}/archive/v${version}.tar.gz"
-checksum=7d536c03f77a0c259efb2b00b525ef34578ca8a4a95ccb412708e8c7172e2e6a
+checksum=667b1ee82ce47706e8206c4994add2483b0bf21c67861d4652b2b5aa90299dc5
 nocross=yes # Can't yet cross compile Haskell
 nopie_files="/usr/bin/hlint"
 

From bef4ba87d4872f0785d1d546613599791b2fa456 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Tue, 27 Dec 2022 16:19:12 +0100
Subject: [PATCH 05/15] hoogle: bump for stackage lts-20.0

---
 srcpkgs/hoogle/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/hoogle/template b/srcpkgs/hoogle/template
index dc487cab4017..00de03e81eef 100644
--- a/srcpkgs/hoogle/template
+++ b/srcpkgs/hoogle/template
@@ -1,9 +1,9 @@
 # Template file for 'hoogle'
 pkgname=hoogle
 version=5.0.18.3
-revision=1
+revision=2
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 makedepends="zlib-devel"
 short_desc="Haskell API search engine"
 maintainer="Inokentiy Babushkin <twk@twki.de>"

From 0ff10d252f1074acd9450926e1bba8eded586310 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Tue, 27 Dec 2022 17:38:42 +0100
Subject: [PATCH 06/15] pandoc: update to 2.19.2

+ Update pandoc-crossref and it's associated cabal file.
+ Bump lua dependency.
+ Remove roman-numerals dependency, as pandoc-crossref now has its own
  implementation of this.
---
 srcpkgs/pandoc/files/pandoc-crossref.cabal | 139 +++++++++++++++++----
 srcpkgs/pandoc/template                    |  17 ++-
 2 files changed, 121 insertions(+), 35 deletions(-)

diff --git a/srcpkgs/pandoc/files/pandoc-crossref.cabal b/srcpkgs/pandoc/files/pandoc-crossref.cabal
index 7aacc47278f3..850405534565 100644
--- a/srcpkgs/pandoc/files/pandoc-crossref.cabal
+++ b/srcpkgs/pandoc/files/pandoc-crossref.cabal
@@ -1,13 +1,9 @@
-cabal-version: 2.0
-
--- This file has been generated from package.yaml by hpack version 0.34.6.
+-- This file has been generated from package.yaml by hpack version 0.34.4.
 --
 -- see: https://github.com/sol/hpack
---
--- hash: 20655cd6263e9fe7e5737ee81b093c8c6f5eae67e260ddd3a821ac6ef5e35e69
 
 name:           pandoc-crossref
-version:        0.3.13.0
+version:        0.3.14.0
 synopsis:       Pandoc filter for cross-references
 description:    pandoc-crossref is a pandoc filter for numbering figures, equations, tables and cross-references to them.
 category:       Text
@@ -18,6 +14,99 @@ maintainer:     root@livid.pp.ru
 license:        GPL-2
 license-file:   LICENSE
 build-type:     Simple
+extra-source-files:
+    test/demo-chapters.inc
+    test/demo.inc
+    CHANGELOG.md
+    licenses/LICENSE.roman-numerals
+data-files:
+    docs/demo/demo.md
+    docs/index.md
+    test/m2m/chapDelim/expect.md
+    test/m2m/chapDelim/expect.tex
+    test/m2m/chapDelim/input.md
+    test/m2m/delim/expect.md
+    test/m2m/delim/expect.tex
+    test/m2m/delim/input.md
+    test/m2m/emptyChapterLabels/expect.md
+    test/m2m/emptyChapterLabels/expect.tex
+    test/m2m/emptyChapterLabels/input.md
+    test/m2m/eqnBlockTemplate/expect.md
+    test/m2m/eqnBlockTemplate/expect.tex
+    test/m2m/eqnBlockTemplate/input.md
+    test/m2m/eqnInlineTemplate/expect.md
+    test/m2m/eqnInlineTemplate/expect.tex
+    test/m2m/eqnInlineTemplate/input.md
+    test/m2m/equationNumberLaTeX/expect.md
+    test/m2m/equationNumberLaTeX/expect.tex
+    test/m2m/equationNumberLaTeX/input.md
+    test/m2m/equations-auto/expect.md
+    test/m2m/equations-auto/expect.tex
+    test/m2m/equations-auto/input.md
+    test/m2m/equations-tables-auto/expect.md
+    test/m2m/equations-tables-auto/expect.tex
+    test/m2m/equations-tables-auto/input.md
+    test/m2m/equations-tables/expect.md
+    test/m2m/equations-tables/expect.tex
+    test/m2m/equations-tables/input.md
+    test/m2m/equations/expect.md
+    test/m2m/equations/expect.tex
+    test/m2m/equations/input.md
+    test/m2m/label-precedence/expect.md
+    test/m2m/label-precedence/expect.tex
+    test/m2m/label-precedence/input.md
+    test/m2m/links-names/expect.md
+    test/m2m/links-names/expect.tex
+    test/m2m/links-names/input.md
+    test/m2m/links/expect.md
+    test/m2m/links/expect.tex
+    test/m2m/links/input.md
+    test/m2m/listing-captions-ids/expect.md
+    test/m2m/listing-captions-ids/expect.tex
+    test/m2m/listing-captions-ids/input.md
+    test/m2m/listings-code-block-caption-278/expect.md
+    test/m2m/listings-code-block-caption-278/expect.tex
+    test/m2m/listings-code-block-caption-278/input.md
+    test/m2m/listOfTemplates-buillet-list/expect.md
+    test/m2m/listOfTemplates-buillet-list/expect.tex
+    test/m2m/listOfTemplates-buillet-list/input.md
+    test/m2m/listOfTemplates-ord-list/expect.md
+    test/m2m/listOfTemplates-ord-list/expect.tex
+    test/m2m/listOfTemplates-ord-list/input.md
+    test/m2m/listOfTemplates/expect.md
+    test/m2m/listOfTemplates/expect.tex
+    test/m2m/listOfTemplates/input.md
+    test/m2m/loxItemTitle/expect.md
+    test/m2m/loxItemTitle/expect.tex
+    test/m2m/loxItemTitle/input.md
+    test/m2m/multiple-eqn-same-para/expect.md
+    test/m2m/multiple-eqn-same-para/expect.tex
+    test/m2m/multiple-eqn-same-para/input.md
+    test/m2m/secLabels/expect.md
+    test/m2m/secLabels/expect.tex
+    test/m2m/secLabels/input.md
+    test/m2m/secLevelLabels/expect.md
+    test/m2m/secLevelLabels/expect.tex
+    test/m2m/secLevelLabels/input.md
+    test/m2m/section-template/expect.md
+    test/m2m/section-template/expect.tex
+    test/m2m/section-template/input.md
+    test/m2m/setLabelAttribute/expect.md
+    test/m2m/setLabelAttribute/expect.tex
+    test/m2m/setLabelAttribute/input.md
+    test/m2m/subfigures-ccsDelim/expect.md
+    test/m2m/subfigures-ccsDelim/expect.tex
+    test/m2m/subfigures-ccsDelim/input.md
+    test/m2m/subfigures-grid/expect.md
+    test/m2m/subfigures-grid/expect.tex
+    test/m2m/subfigures-grid/input.md
+    test/m2m/subfigures/expect.md
+    test/m2m/subfigures/expect.tex
+    test/m2m/subfigures/input.md
+    test/m2m/titlesInRefs/expect.md
+    test/m2m/titlesInRefs/expect.tex
+    test/m2m/titlesInRefs/input.md
+cabal-version: 1.12
 
 source-repository head
   type: git
@@ -32,6 +121,7 @@ library
   exposed-modules:
       Text.Pandoc.CrossRef
   other-modules:
+      Text.Numeral.Roman
       Text.Pandoc.CrossRef.References
       Text.Pandoc.CrossRef.References.Blocks
       Text.Pandoc.CrossRef.References.List
@@ -60,13 +150,12 @@ library
     , microlens >=0.4.12.0 && <0.5.0.0
     , microlens-mtl >=0.2.0.1 && <0.3.0.0
     , microlens-th >=0.4.3.10 && <0.5.0.0
-    , mtl >=1.1 && <2.3
-    , pandoc >=2.10 && <2.18
-    , pandoc-types >=1.21 && <1.23
-    , roman-numerals ==0.5.*
+    , mtl >=1.1 && <2.4
+    , pandoc >=2.18 && <2.20
+    , pandoc-types >=1.22.2 && <1.23
     , syb >=0.4 && <0.8
     , template-haskell >=2.7.0.0 && <3.0.0.0
-    , text >=1.2.2 && <1.3
+    , text >=1.2.2 && <2.1
     , utility-ht >=0.0.11 && <0.1.0
   default-language: Haskell2010
 
@@ -82,13 +171,13 @@ executable pandoc-crossref
     , deepseq ==1.4.*
     , gitrev >=1.3.1 && <1.4
     , open-browser ==0.2.*
-    , optparse-applicative >=0.13 && <0.17
-    , pandoc >=2.10 && <2.18
+    , optparse-applicative >=0.13 && <0.18
+    , pandoc >=2.18 && <2.20
     , pandoc-crossref
-    , pandoc-types >=1.21 && <1.23
+    , pandoc-types >=1.22.2 && <1.23
     , template-haskell >=2.7.0.0 && <3.0.0.0
     , temporary >=1.2 && <1.4
-    , text >=1.2.2 && <1.3
+    , text >=1.2.2 && <2.1
   default-language: Haskell2010
 
 test-suite test-integrative
@@ -102,10 +191,10 @@ test-suite test-integrative
     , directory >=1 && <1.4
     , filepath >=1.1 && <1.5
     , hspec >=2.4.4 && <3
-    , pandoc >=2.10 && <2.18
+    , pandoc >=2.18 && <2.20
     , pandoc-crossref
-    , pandoc-types >=1.21 && <1.23
-    , text >=1.2.2 && <1.3
+    , pandoc-types >=1.22.2 && <1.23
+    , text >=1.2.2 && <2.1
   if flag(enable_flaky_tests)
     cpp-options: -DFLAKY
   default-language: Haskell2010
@@ -128,10 +217,10 @@ test-suite test-pandoc-crossref
     , hspec >=2.4.4 && <3
     , microlens >=0.4.12.0 && <0.5.0.0
     , mtl >=1.1 && <2.3
-    , pandoc >=2.10 && <2.18
+    , pandoc >=2.18 && <2.20
     , pandoc-crossref
-    , pandoc-types >=1.21 && <1.23
-    , text >=1.2.2 && <1.3
+    , pandoc-types >=1.22.2 && <1.23
+    , text >=1.2.2 && <2.1
   if flag(enable_flaky_tests)
     cpp-options: -DFLAKY
   default-language: Haskell2010
@@ -146,9 +235,9 @@ benchmark simple
   ghc-options: -Wall -fno-warn-unused-do-bind -threaded
   build-depends:
       base >=4.11 && <5
-    , criterion >=1.5.9.0 && <1.6
-    , pandoc >=2.10 && <2.18
+    , criterion >=1.5.9.0 && <1.7
+    , pandoc >=2.18 && <2.20
     , pandoc-crossref
-    , pandoc-types >=1.21 && <1.23
-    , text >=1.2.2 && <1.3
+    , pandoc-types >=1.22.2 && <1.23
+    , text >=1.2.2 && <2.1
   default-language: Haskell2010
diff --git a/srcpkgs/pandoc/template b/srcpkgs/pandoc/template
index 9bdf32ef3c53..0ce941c6fcc5 100644
--- a/srcpkgs/pandoc/template
+++ b/srcpkgs/pandoc/template
@@ -1,20 +1,19 @@
 # Template file for 'pandoc'
 pkgname=pandoc
 # Keep in sync with http://www.stackage.org/lts
-version=2.17.1.1
+version=2.19.2
 revision=1
 _sidenote_version=0.22.1.0
 _monad_gen_version=0.3.0.1
-_crossref_version=0.3.12.2
-_roman_numerals_version=0.5.1.5
+_crossref_version=0.3.14.0
 create_wrksrc=yes
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 make_build_args="
  --flag pandoc:embed_data_files
  --flag=lua:pkg-config"
 hostmakedepends="pkg-config unzip wget"
-makedepends="zlib-devel lua53-devel tar"
+makedepends="zlib-devel lua54-devel tar"
 short_desc="Universal converter between markup formats"
 maintainer="slotThe <soliditsallgood@mailbox.org>"
 license="GPL-2.0-or-later, BSD-3-Clause"
@@ -22,13 +21,11 @@ homepage="http://johnmacfarlane.net/pandoc/"
 distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz
  https://hackage.haskell.org/package/${pkgname}-sidenote-${_sidenote_version}/${pkgname}-sidenote-${_sidenote_version}.tar.gz
  https://hackage.haskell.org/package/monad-gen-${_monad_gen_version}/monad-gen-${_monad_gen_version}.tar.gz
- https://hackage.haskell.org/package/${pkgname}-crossref-${_crossref_version}/${pkgname}-crossref-${_crossref_version}.tar.gz
- https://hackage.haskell.org/package/roman-numerals-${_roman_numerals_version}/roman-numerals-${_roman_numerals_version}.tar.gz"
-checksum="649ec528d1413130c5ce304b826ff473b3696269eea8834d908589e775bd1ad1
+ https://hackage.haskell.org/package/${pkgname}-crossref-${_crossref_version}/${pkgname}-crossref-${_crossref_version}.tar.gz"
+checksum="36e83694c36a5af35a4442c4d5abd4273289d9d309793466f59c1632e87d4245
  c39dd7343b9cb4dc5b1c91c9e47c3d357874e9e1a30b8d377bbea0b1d50323b2
  be8485023fce236b5b915f2f6074f7b0470a2040f84cdd137c5227f1b4c98465
- 94540325c9c98ae4d5199c634bf402ffa41e3c5b020d7207daef90fd9e224fb4
- b9c7195b69b1662a286d2c28a55fafdcb693c522ba5eb54a11b1d0a4e92eaa81"
+ 06d163e2cec3f285919295c41a0580f203bb157d05eb06a494dbc093cbefa5b8"
 subpackages="
  pandoc-sidenote
  pandoc-crossref"

From 64f9e27c94218c3f8b4ac7a3091dabe797feb3d7 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 08:32:36 +0100
Subject: [PATCH 07/15] shellcheck: bump for stackage lts-20.0

---
 srcpkgs/shellcheck/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/shellcheck/template b/srcpkgs/shellcheck/template
index e85667f66918..c06b88603109 100644
--- a/srcpkgs/shellcheck/template
+++ b/srcpkgs/shellcheck/template
@@ -1,9 +1,9 @@
 # Template file for 'shellcheck'
 pkgname=shellcheck
 version=0.9.0
-revision=1
+revision=2
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 hostmakedepends="pandoc"
 short_desc="Static analysis tool for shell scripts"
 maintainer="Diogo Leal <diogo@diogoleal.com>"

From b72f37ea6631b90f2da8c80353754274e5de9dfb Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 08:36:43 +0100
Subject: [PATCH 08/15] New package: greenclip-4.2

Co-authored-by: KawaiiAmber <japaneselearning101@gmail.com>
---
 srcpkgs/greenclip/files/stack.yaml | 12 ++++++++++++
 srcpkgs/greenclip/template         | 19 +++++++++++++++++++
 2 files changed, 31 insertions(+)
 create mode 100644 srcpkgs/greenclip/files/stack.yaml
 create mode 100644 srcpkgs/greenclip/template

diff --git a/srcpkgs/greenclip/files/stack.yaml b/srcpkgs/greenclip/files/stack.yaml
new file mode 100644
index 000000000000..86f4b6fa7ed2
--- /dev/null
+++ b/srcpkgs/greenclip/files/stack.yaml
@@ -0,0 +1,12 @@
+resolver: lts-20.0
+
+packages:
+- '.'
+
+extra-deps:
+- 'wordexp-0.2.2'
+- 'protolude-0.3.2'
+- 'tomland-1.3.3.2'
+- 'validation-selective-0.1.0.2'
+
+allow-newer: true
diff --git a/srcpkgs/greenclip/template b/srcpkgs/greenclip/template
new file mode 100644
index 000000000000..c048afe39e01
--- /dev/null
+++ b/srcpkgs/greenclip/template
@@ -0,0 +1,19 @@
+# Template file for 'greenclip'
+pkgname=greenclip
+version=4.2
+revision=1
+build_style=haskell-stack
+hostmakedepends="pkg-config"
+makedepends="libX11-devel libXinerama-devel libXrandr-devel libXScrnSaver-devel"
+short_desc="Simple clipboard manager to be integrated with rofi"
+maintainer="KawaiiAmber <japaneselearning101@gmail.com>"
+license="BSD-3-Clause"
+homepage="https://github.com/erebe/greenclip"
+distfiles="${homepage}/archive/refs/tags/v${version}.tar.gz"
+checksum=bb95211e3c4bf3ab3a95ede92a678f79bedf2ed2c5b707ba0fb2efbae7fc60cd
+nopie=yes
+nocross="can't yet cross compile Haskell"
+
+post_install() {
+	vlicense LICENSE
+}

From b244badd1691a35e0eeab309f750297cccbdbc0b Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 10:35:09 +0100
Subject: [PATCH 09/15] hledger: update to 1.28

---
 srcpkgs/hledger/files/stack.yaml | 14 +++++---------
 srcpkgs/hledger/template         |  4 ++--
 2 files changed, 7 insertions(+), 11 deletions(-)

diff --git a/srcpkgs/hledger/files/stack.yaml b/srcpkgs/hledger/files/stack.yaml
index b5f41932e272..e2fd18f264a4 100644
--- a/srcpkgs/hledger/files/stack.yaml
+++ b/srcpkgs/hledger/files/stack.yaml
@@ -1,4 +1,4 @@
-resolver: lts-19.0
+resolver:  lts-20.0
 
 packages:
 - hledger-lib
@@ -7,16 +7,12 @@ packages:
 - hledger-web
 
 extra-deps:
+- megaparsec-9.3.0
 # for hledger-lib:
-- breakpoint-0.1.0.0
+# - breakpoint-0.1.2.0
 # for hledger:
 # for hledger-ui:
-- brick-1.0
-- bimap-0.5.0
-- text-zipper-0.12
-- vty-5.36
+- brick-1.5
+- fsnotify-0.4.0.0
 # for hledger-web:
 # for Shake.hs:
-
-ghc-options:
-  "$locals": -fplugin Debug.Breakpoint
diff --git a/srcpkgs/hledger/template b/srcpkgs/hledger/template
index 5750484fc5bc..6a4360a0c641 100644
--- a/srcpkgs/hledger/template
+++ b/srcpkgs/hledger/template
@@ -1,6 +1,6 @@
 # Template file for 'hledger'
 pkgname=hledger
-version=1.27.1
+version=1.28
 revision=1
 build_style=haskell-stack
 makedepends="zlib-devel ncurses-devel"
@@ -10,7 +10,7 @@ license="GPL-3.0-or-later"
 homepage="https://hledger.org/"
 changelog="https://hackage.haskell.org/package/hledger-${version}/changelog"
 distfiles="https://github.com/simonmichael/hledger/archive/${version}.tar.gz"
-checksum=218f6005b7b30308cc43523dc7b61c818bb649abc217a6c8803e8f82b408d239
+checksum=e2736f732d9f5cade993877b4524f06fbb3488142843c62653a0849180d2a34a
 nopie_files="/usr/bin/hledger"
 nocross=yes # Can't yet cross compile Haskell
 

From 09afe3b6b6e780d7e8e842a71f12eb57592d5613 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 13:58:50 +0100
Subject: [PATCH 10/15] darcs: bump for stackage lts-20.0

---
 srcpkgs/darcs/files/stack.yaml | 2 +-
 srcpkgs/darcs/template         | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/darcs/files/stack.yaml b/srcpkgs/darcs/files/stack.yaml
index 6e459703764a..f2dd5264e5bf 100644
--- a/srcpkgs/darcs/files/stack.yaml
+++ b/srcpkgs/darcs/files/stack.yaml
@@ -1,4 +1,4 @@
-resolver: lts-19.0
+resolver: lts-20.0
 packages:
 - .
 allow-newer: true
diff --git a/srcpkgs/darcs/template b/srcpkgs/darcs/template
index 15a8f71f9021..04a0f6da593c 100644
--- a/srcpkgs/darcs/template
+++ b/srcpkgs/darcs/template
@@ -1,7 +1,7 @@
 # Template file for 'darcs'
 pkgname=darcs
 version=2.16.5
-revision=3
+revision=4
 build_style=haskell-stack
 hostmakedepends="unzip"
 makedepends="zlib-devel libcurl-devel ncurses-devel"

From bcfad03f61ed98bea9f3f5e6189c0383834e54ee Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 14:54:40 +0100
Subject: [PATCH 11/15] cgrep: bump for stackage lts-20.0

---
 srcpkgs/cgrep/files/stack.yaml | 7 +++++++
 srcpkgs/cgrep/template         | 2 +-
 2 files changed, 8 insertions(+), 1 deletion(-)
 create mode 100644 srcpkgs/cgrep/files/stack.yaml

diff --git a/srcpkgs/cgrep/files/stack.yaml b/srcpkgs/cgrep/files/stack.yaml
new file mode 100644
index 000000000000..9db0805a3957
--- /dev/null
+++ b/srcpkgs/cgrep/files/stack.yaml
@@ -0,0 +1,7 @@
+resolver: lts-20.0
+
+packages:
+  - '.'
+
+extra-deps:
+  - bitwise-1.0.0.1
diff --git a/srcpkgs/cgrep/template b/srcpkgs/cgrep/template
index 9d943300a68c..865d4e43398d 100644
--- a/srcpkgs/cgrep/template
+++ b/srcpkgs/cgrep/template
@@ -1,7 +1,7 @@
 # Template file for 'cgrep'
 pkgname=cgrep
 version=7.0.0
-revision=1
+revision=2
 build_style=haskell-stack
 makedepends="pcre-devel pkg-config"
 short_desc="Context-aware grep for source codes"

From bc3778263267cf26d60df508d713bb57b570ed04 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 15:38:14 +0100
Subject: [PATCH 12/15] xmobar: update to 0.44.2

This is the last version that still builds on musl.
---
 srcpkgs/xmobar/files/stack.yaml | 2 +-
 srcpkgs/xmobar/template         | 9 +++++----
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/xmobar/files/stack.yaml b/srcpkgs/xmobar/files/stack.yaml
index 7e0956374142..15744aaa56ee 100644
--- a/srcpkgs/xmobar/files/stack.yaml
+++ b/srcpkgs/xmobar/files/stack.yaml
@@ -1,4 +1,4 @@
-resolver: lts-19.0
+resolver: lts-20.0
 packages:
 - .
 extra-deps:
diff --git a/srcpkgs/xmobar/template b/srcpkgs/xmobar/template
index 6a12a9ed7055..fb00e4865322 100644
--- a/srcpkgs/xmobar/template
+++ b/srcpkgs/xmobar/template
@@ -1,6 +1,7 @@
 # Template file for 'xmobar'
 pkgname=xmobar
-version=0.42
+# versions >= 0.45 are broken on musl: https://codeberg.org/xmobar/xmobar/issues/656
+version=0.44.2
 revision=1
 build_style=haskell-stack
 hostmakedepends="pkg-config"
@@ -15,10 +16,10 @@ maintainer="xaltsc <xaltsc@protonmail.ch>"
 license="BSD-3-Clause"
 homepage="https://xmobar.org"
 distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz"
-checksum=53f4a06d79c3db32ef1a498ec7b764b17d03ebf9bca3126c6b8259595492769b
-build_options="dbus threaded utf8 xft mpd mpris inotify iwlib alsa datezone
+checksum=08a0bdd6a6c84b2219fae33de1c1335ff3610a194b377dc59ab4505aac84b73d
+build_options="dbus threaded xft mpd mpris inotify iwlib alsa datezone
  xpm uvmeter weather nl80211"
-build_options_default="threaded utf8 xft inotify nl80211 datezone weather xpm alsa mpris mpd dbus"
+build_options_default="threaded xft inotify nl80211 datezone weather xpm alsa mpris mpd dbus"
 nopie_files="/usr/bin/xmobar"
 nocross=yes
 vopt_hflag() {

From af04deea05b26054881ade9e6712ee3e7a22e2e8 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 17:10:27 +0100
Subject: [PATCH 13/15] kmonad: bump for stackage lts-20.0

---
 srcpkgs/kmonad/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kmonad/template b/srcpkgs/kmonad/template
index 04088043afc2..a21383b6a484 100644
--- a/srcpkgs/kmonad/template
+++ b/srcpkgs/kmonad/template
@@ -3,9 +3,9 @@ pkgname=kmonad
 reverts="65b501defdd0049563752f8af8c8c57f5a1ae38b_1"
 _githash=65b501defdd0049563752f8af8c8c57f5a1ae38b
 version=0.4.1.20220321
-revision=1
+revision=2
 build_style=haskell-stack
-stackage=lts-19.0
+stackage=lts-20.0
 short_desc="Keyboard remapping utility providing qmk-like functionality"
 maintainer="slotThe <soliditsallgood@mailbox.org>"
 license="MIT"

From b783cb1f43574e6bf73d89d4e867e7610b244c2a Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 17:11:43 +0100
Subject: [PATCH 14/15] glirc: bump for cabal-install 3.8.1.0

---
 srcpkgs/glirc/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/glirc/template b/srcpkgs/glirc/template
index 98a677886ae1..458609007def 100644
--- a/srcpkgs/glirc/template
+++ b/srcpkgs/glirc/template
@@ -1,7 +1,7 @@
 # Template file for 'glirc'
 pkgname=glirc
 version=2.39.0.1
-revision=1
+revision=2
 hostmakedepends="cabal-install"
 makedepends="ncurses-devel openssl-devel"
 short_desc="Console IRC client written in Haskell"

From 902bcc768fbcd0855eafe3d232ce7210d64fefab Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 18:15:04 +0100
Subject: [PATCH 15/15] git-mediate: bump for stackage lts-20.0

---
 srcpkgs/git-mediate/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/git-mediate/template b/srcpkgs/git-mediate/template
index 705df7843b8e..f472a26d132a 100644
--- a/srcpkgs/git-mediate/template
+++ b/srcpkgs/git-mediate/template
@@ -1,9 +1,9 @@
 # Template file for 'git-mediate'
 pkgname=git-mediate
 version=1.0.8.1
-revision=3
+revision=4
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 depends="git"
 short_desc="Tool to help resolving git conflicts"
 maintainer="Peter Wang <novalazy@gmail.com>"

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PR PATCH] [Updated] [WIP] [ci skip] GHC 9.2.5
  2022-12-27  9:58 [PR PATCH] [WIP] [ci skip] GHC 9.2.5 slotThe
                   ` (4 preceding siblings ...)
  2022-12-28 21:18 ` [PR PATCH] [Updated] " slotThe
@ 2022-12-29  9:24 ` slotThe
  2022-12-30  9:28 ` slotThe
                   ` (6 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: slotThe @ 2022-12-29  9:24 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1290 bytes --]

There is an updated pull request by slotThe against master on the void-packages repository

https://github.com/slotThe/void-packages ghc-9.2.5
https://github.com/void-linux/void-packages/pull/41316

[WIP] [ci skip] GHC 9.2.5
Took much longer than anticipated, since I wanted to wait for stack 2.9.3 first.  Here's to hoping that opening a PR will motivate me to work more rapidly :)

### Core packages to bump

- [x] ghc
- [ ] ghc-bin
    - [ ] x86_64 (hash)
    - [ ] i686 (hash)
    - [ ] x86_64-musl
    ~~Cc. @q66~~
    - [ ] ppc64le
    - [ ] ppc64le-musl
    - [ ] ppc64
    Cc. @ftrvxmtrx
    - [ ] aarch64
    - [ ] aarch64-musl
- [x] cabal-install
- [x] stack

#### Rebuild literally every single haskell package we have and see if anything's broken

- [x] git-mediate
- [x] kmonad
- [x] cgrep
- [ ] debug-me
- [x] hlint
- [x] hoogle
- [x] darcs
- [x] shellcheck
- [ ] git-annex
- [x] hledger
- [x] pandoc
- [x] xmobar
- [ ] haskell-language-server
- [x] glirc

### Other things to do

- [x] incorporate https://github.com/void-linux/void-packages/pull/27832 @astralchan
- [ ] incorporate https://github.com/void-linux/void-packages/pull/35624 @kwshi

A patch file from https://github.com/void-linux/void-packages/pull/41316.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-ghc-9.2.5-41316.patch --]
[-- Type: text/x-diff, Size: 69406 bytes --]

From 72eb2785d19f85f6719819475c9ae6076859e9e6 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Thu, 17 Nov 2022 12:47:46 +0100
Subject: [PATCH 01/17] ghc: update to 9.2.5

+ Adjust ppc64-be-elfv2.patch
  * The libraries/ghci/GHCi/InfoTable.hsc bit seems to have been
    merged, hence delete it.
  * Adjust for changes in fptools and configure.
  * Delete now out-of-date TOC.
---
 srcpkgs/ghc/patches/ppc64-be-elfv2.patch | 105 +++++------------------
 srcpkgs/ghc/template                     |   6 +-
 2 files changed, 23 insertions(+), 88 deletions(-)

diff --git a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
index df1a0bfe15ba..5fa356be700e 100644
--- a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
+++ b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
@@ -3,100 +3,36 @@ From: q66 <daniel@octaforge.org>
 Date: Thu, 28 Apr 2022 00:48:04 +0200
 Subject: [PATCH] fix up runtime for ppc64 BE ELFv2 + ensure it's used
 
----
- configure                         |  2 +-
- libraries/ghci/GHCi/InfoTable.hsc | 36 ++++++++++++-------------------
- m4/fptools.m4                     |  2 +-
- rts/AdjustorAsm.S                 |  2 +-
- rts/StgCRun.c                     |  4 ++--
- rts/StgCRunAsm.S                  |  2 +-
- rts/adjustor/NativeIA64.c         |  2 +-
- rts/adjustor/NativePowerPC.c      |  2 +-
- 8 files changed, 22 insertions(+), 30 deletions(-)
-
-diff --git a/configure b/configure
-index 8310e6f..eac1124 100755
 --- a/configure
 +++ b/configure
-@@ -10508,7 +10508,7 @@ printf "%s\n" "no" >&6; }
+@@ -10871,7 +10871,7 @@
              test -z "$2" || eval "$2=ArchPPC"
              ;;
          powerpc64)
--            test -z "$2" || eval "$2=\"ArchPPC_64 {ppc_64ABI = ELF_V1}\""
-+            test -z "$2" || eval "$2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
+-            test -z "$2" || eval "$2=\"ArchPPC_64 ELF_V1\""
++            test -z "$2" || eval "$2=\"ArchPPC_64 ELF_V2\""
              ;;
          powerpc64le)
-             test -z "$2" || eval "$2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
-diff --git a/libraries/ghci/GHCi/InfoTable.hsc b/libraries/ghci/GHCi/InfoTable.hsc
-index ad4eb4d..e4f1c0c 100644
---- a/libraries/ghci/GHCi/InfoTable.hsc
-+++ b/libraries/ghci/GHCi/InfoTable.hsc
-@@ -231,30 +231,22 @@ mkJumpToAddr' platform a = case platform of
-                 , fromIntegral w64
-                 , fromIntegral (w64 `shiftR` 32) ]
-     ArchPPC64 ->
--        -- We use the compiler's register r12 to read the function
--        -- descriptor and the linker's register r11 as a temporary
--        -- register to hold the function entry point.
--        -- In the medium code model the function descriptor
--        -- is located in the first two gigabytes, i.e. the address
--        -- of the function pointer is a non-negative 32 bit number.
--        -- 0x0EADBEEF stands for the address of the function pointer:
--        --    0:   3d 80 0e ad     lis     r12,0x0EAD
--        --    4:   61 8c be ef     ori     r12,r12,0xBEEF
--        --    8:   e9 6c 00 00     ld      r11,0(r12)
--        --    c:   e8 4c 00 08     ld      r2,8(r12)
--        --   10:   7d 69 03 a6     mtctr   r11
--        --   14:   e9 6c 00 10     ld      r11,16(r12)
--        --   18:   4e 80 04 20     bctr
--       let  w32 = fromIntegral (funPtrToInt a)
-+        -- The ABI requires r12 to point to the function's entry point.
-+        -- We use the medium code model where code resides in the first
-+        -- two gigabytes, so loading a non-negative32 bit address
-+        -- with lis followed by ori is fine.
-+        -- 0x0EADBEEF stands for the address:
-+        -- 3D800EAD lis r12,0x0EAD
-+        -- 618CBEEF ori r12,r12,0xBEEF
-+        -- 7D8903A6 mtctr r12
-+        -- 4E800420 bctr
-+
-+        let w32 = fromIntegral (funPtrToInt a)
-             hi16 x = (x `shiftR` 16) .&. 0xFFFF
-             lo16 x = x .&. 0xFFFF
--       in Right [ 0x3D800000 .|. hi16 w32,
--                  0x618C0000 .|. lo16 w32,
--                  0xE96C0000,
--                  0xE84C0008,
--                  0x7D6903A6,
--                  0xE96C0010,
--                  0x4E800420]
-+        in Right [ 0x3D800000 .|. hi16 w32,
-+                   0x618C0000 .|. lo16 w32,
-+                   0x7D8903A6, 0x4E800420 ]
- 
-     ArchPPC64LE ->
-         -- The ABI requires r12 to point to the function's entry point.
-diff --git a/m4/fptools.m4 b/m4/fptools.m4
-index 8c6c9b7..eb25c37 100644
---- a/m4/fptools.m4
-+++ b/m4/fptools.m4
-@@ -201,7 +201,7 @@ AC_DEFUN([FPTOOLS_SET_HASKELL_PLATFORM_VARS],
+             test -z "$2" || eval "$2=\"ArchPPC_64 ELF_V2\""
+--- a/m4/fptools_set_haskell_platform_vars.m4
++++ b/m4/fptools_set_haskell_platform_vars.m4
+@@ -15,7 +15,7 @@
              test -z "[$]2" || eval "[$]2=ArchPPC"
              ;;
          powerpc64)
--            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V1}\""
-+            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
+-            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 ELF_V1\""
++            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 ELF_V2\""
              ;;
          powerpc64le)
-             test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
+             test -z "[$]2" || eval "[$]2=\"ArchPPC_64 ELF_V2\""
 diff --git a/rts/AdjustorAsm.S b/rts/AdjustorAsm.S
 index 2795b83..63cfe91 100644
 --- a/rts/AdjustorAsm.S
 +++ b/rts/AdjustorAsm.S
 @@ -2,7 +2,7 @@
- 
+
  /* ******************************** PowerPC ******************************** */
- 
+
 -#if defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
 +#if defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
  #if !(defined(powerpc_HOST_ARCH) && defined(linux_HOST_OS))
@@ -109,21 +45,21 @@ index f43227a..927d44a 100644
 @@ -724,7 +724,7 @@ StgRunIsImplementedInAssembler(void)
     Everything is in assembler, so we don't have to deal with GCC...
     -------------------------------------------------------------------------- */
- 
+
 -#if defined(powerpc64_HOST_ARCH)
 +#if defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2)
  /* 64-bit PowerPC ELF ABI 1.9
   *
   * Stack frame organization (see Figure 3-17, ELF ABI 1.9, p 14)
 @@ -792,7 +792,7 @@ StgRunIsImplementedInAssembler(void)
- 
+
  #endif
- 
+
 -#if defined(powerpc64le_HOST_ARCH)
 +#if defined(powerpc64le_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF == 2))
  /* -----------------------------------------------------------------------------
     PowerPC 64 little endian architecture
- 
+
 diff --git a/rts/StgCRunAsm.S b/rts/StgCRunAsm.S
 index 60f1bf9..c6794d7 100644
 --- a/rts/StgCRunAsm.S
@@ -131,7 +67,7 @@ index 60f1bf9..c6794d7 100644
 @@ -5,7 +5,7 @@
   * then functions StgRun/StgReturn are implemented in file StgCRun.c */
  #if !defined(USE_MINIINTERPRETER)
- 
+
 -#if defined(powerpc64le_HOST_ARCH)
 +#if defined(powerpc64le_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF == 2))
  # if defined(linux_HOST_OS)
@@ -157,12 +93,11 @@ index 2e5d605..caef5d3 100644
 @@ -29,7 +29,7 @@ __asm__("obscure_ccall_ret_code:\n\t"
  extern void obscure_ccall_ret_code(void);
  #endif /* defined(linux_HOST_OS) */
- 
+
 -#if defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
 +#if defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
  #if !(defined(powerpc_HOST_ARCH) && defined(linux_HOST_OS))
- 
+
  /* !!! !!! WARNING: !!! !!!
--- 
+--
 2.35.1
-
diff --git a/srcpkgs/ghc/template b/srcpkgs/ghc/template
index bf76202f4098..c4808339cd29 100644
--- a/srcpkgs/ghc/template
+++ b/srcpkgs/ghc/template
@@ -1,7 +1,7 @@
 # Template file for 'ghc'
 pkgname=ghc
 # Keep this synchronized with http://www.stackage.org/lts
-version=9.0.2
+version=9.2.5
 revision=1
 build_style=gnu-configure
 hostmakedepends="automake docbook-xsl ghc-bin libxslt libnuma-devel
@@ -9,11 +9,11 @@ hostmakedepends="automake docbook-xsl ghc-bin libxslt libnuma-devel
 makedepends="libnuma-devel"
 depends="perl gcc libffi-devel gmp-devel libnuma-devel"
 short_desc="Glorious Haskell Compiler"
-maintainer="slotThe <soliditsallgood@mailbox.org>"
+maintainer="Tony Zorman <soliditsallgood@mailbox.org>"
 license="BSD-3-Clause"
 homepage="http://www.haskell.org/ghc/"
 distfiles="http://www.haskell.org/ghc/dist/${version%[!0-9]}/${pkgname}-${version%[!0-9]}-src.tar.xz"
-checksum=140e42b96346322d1a39eb17602bcdc76e292028ad4a69286b230bab188a9197
+checksum=0606797d1b38e2d88ee2243f38ec6b9a1aa93e9b578e95f0de9a9c0a4144021c
 nocross=yes # this is conditionally unset for cross bindist
 nodebug=yes # work around assembler error "Fatal error: duplicate .debug_line sections"
 _bindir="/usr/lib/${pkgname}-${version}/bin"

From 3d349a8a1192747ff14dd89e54fc0f7f19a991f5 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Fri, 18 Nov 2022 14:56:06 +0100
Subject: [PATCH 02/17] cabal-install: update to 3.8.1.0.

---
 srcpkgs/cabal-install/files/linux-9.0.2.json |  1 -
 srcpkgs/cabal-install/files/linux-9.2.5.json |  1 +
 srcpkgs/cabal-install/template               | 12 ++++++------
 3 files changed, 7 insertions(+), 7 deletions(-)
 delete mode 100644 srcpkgs/cabal-install/files/linux-9.0.2.json
 create mode 100644 srcpkgs/cabal-install/files/linux-9.2.5.json

diff --git a/srcpkgs/cabal-install/files/linux-9.0.2.json b/srcpkgs/cabal-install/files/linux-9.0.2.json
deleted file mode 100644
index f3cb6b4aeeb5..000000000000
--- a/srcpkgs/cabal-install/files/linux-9.0.2.json
+++ /dev/null
@@ -1 +0,0 @@
-{"builtin":[{"package":"rts","version":"1.0.2"},{"package":"ghc-prim","version":"0.7.0"},{"package":"ghc-bignum","version":"1.1"},{"package":"base","version":"4.15.1.0"},{"package":"array","version":"0.5.4.0"},{"package":"deepseq","version":"1.4.5.0"},{"package":"bytestring","version":"0.10.12.1"},{"package":"containers","version":"0.6.4.1"},{"package":"binary","version":"0.8.8.0"},{"package":"filepath","version":"1.4.2.1"},{"package":"time","version":"1.9.3"},{"package":"unix","version":"2.7.2.2"},{"package":"directory","version":"1.3.6.2"},{"package":"transformers","version":"0.5.6.2"},{"package":"mtl","version":"2.2.2"},{"package":"ghc-boot-th","version":"9.0.2"},{"package":"pretty","version":"1.1.3.6"},{"package":"template-haskell","version":"2.17.0.0"},{"package":"text","version":"1.2.5.0"},{"package":"parsec","version":"3.1.14.0"},{"package":"process","version":"1.6.13.2"},{"package":"stm","version":"2.5.0.0"}],"dependencies":[{"cabal_sha256":null,"flags":["-bundled-binary-generic"],"package":"Cabal","revision":null,"source":"local","src_sha256":null,"version":"3.6.3.0"},{"cabal_sha256":"714a55fd28d3e2533bd5b49e74f604ef8e5d7b06f249c8816f6c54aed431dcf1","flags":["-optimised-mixer"],"package":"splitmix","revision":0,"source":"hackage","src_sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","version":"0.1.0.4"},{"cabal_sha256":"8bee24dc0c985a90ee78d94c61f8aed21c49633686f0f1c14c5078d818ee43a2","flags":[],"package":"random","revision":0,"source":"hackage","src_sha256":"265c768fc5f2ca53cde6a87e706b4448cad474c3deece933c103f24453661457","version":"1.2.1"},{"cabal_sha256":"3a2beeafb220f9de706568a7e4a5b3c762cc4c9f25c94d7ef795b8c2d6a691d7","flags":["+integer-gmp","-random-initial-seed"],"package":"hashable","revision":1,"source":"hackage","src_sha256":"baaad82cd4271b197016bdbe76f22d5c3d3913fe38534cec7d817db9bae19886","version":"1.3.5.0"},{"cabal_sha256":"b83dec34a53520de84c6dd3dc7aae45d22409b46eb471c478b98108215a370f0","flags":["-bench"],"package":"async","revision":1,"source":"hackage","src_sha256":"484df85be0e76c4fed9376451e48e1d0c6e97952ce79735b72d54297e7e0a725","version":"2.2.4"},{"cabal_sha256":"037d70bb091c49f68726dde920f6a003b646835a86cdcb5b5ad58ad9af3207d9","flags":[],"package":"Cabal-syntax","revision":0,"source":"hackage","src_sha256":"ca25e5fc601397565fa857f1aa477740fac7f43d659e77c4d9b1485dca239251","version":"3.6.0.0"},{"cabal_sha256":"d8699f46b485f105eea9c7158f3d432ca578e6bbe5d68751184e9899a41d430d","flags":["-old-bytestring","-old-time"],"package":"tar","revision":4,"source":"hackage","src_sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","version":"0.5.1.1"},{"cabal_sha256":"e3d78b13db9512aeb106e44a334ab42b7aa48d26c097299084084cb8be5c5568","flags":["-devel"],"package":"network","revision":0,"source":"hackage","src_sha256":"7f7620fef1a1af3d3d6747f510e73223a5c600e7d7fd9ace073d1222bdc63d85","version":"3.1.2.7"},{"cabal_sha256":"a16dd922947a6877defe52c4c38d1ab48ed3f85a826930f5d1a568741d619993","flags":[],"package":"th-compat","revision":0,"source":"hackage","src_sha256":"6b5059caf6714f47da92953badf2f556119877e09708c14e206b3ae98b8681c6","version":"0.1.3"},{"cabal_sha256":"a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d","flags":[],"package":"network-uri","revision":0,"source":"hackage","src_sha256":"57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584","version":"2.6.4.1"},{"cabal_sha256":"6042643c15a0b43e522a6693f1e322f05000d519543a84149cb80aeffee34f71","flags":["-conduit10","-mtl1","+network-uri","-warn-as-error","-warp-tests"],"package":"HTTP","revision":1,"source":"hackage","src_sha256":"d6091c037871ac3d08d021c906206174567499d5a26a6cb804cf530cd590fe2d","version":"4000.3.16"},{"cabal_sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","flags":[],"package":"base16-bytestring","revision":0,"source":"hackage","src_sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","version":"1.0.2.0"},{"cabal_sha256":"50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8","flags":[],"package":"base64-bytestring","revision":0,"source":"hackage","src_sha256":"fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9","version":"1.2.1.0"},{"cabal_sha256":"188d0b5a0491e8b686b32d9b144c9287760ba333d2509bf3f17e3d846fbc2332","flags":["-exe","+use-cbits"],"package":"cryptohash-sha256","revision":0,"source":"hackage","src_sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","version":"0.11.102.1"},{"cabal_sha256":"ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42","flags":["-example"],"package":"echo","revision":0,"source":"hackage","src_sha256":"c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43","version":"0.1.4"},{"cabal_sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","flags":[],"package":"edit-distance","revision":1,"source":"hackage","src_sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","version":"0.2.2.1"},{"cabal_sha256":"24ac7b5f3d9fa3c2f70262b329f2a75f24e7fd829f88c189b388efa1bcd67eb2","flags":["+no-donna","+test-doctests","+test-hlint","+test-properties"],"package":"ed25519","revision":5,"source":"hackage","src_sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","version":"0.0.5.0"},{"cabal_sha256":"c084c043a40632d3cafcac50fb5eeff84d91edb070a54baa94945f1c976f97c0","flags":["+ofd-locking"],"package":"lukko","revision":2,"source":"hackage","src_sha256":"a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f","version":"0.1.1.3"},{"cabal_sha256":"262a93dbf370be59f4ee57f3b1a51b338bc2c309797daa37c14f2262ae61dae4","flags":["-bundled-c-zlib","-non-blocking-ffi","-pkg-config"],"package":"zlib","revision":1,"source":"hackage","src_sha256":"807f6bddf9cb3c517ce5757d991dde3c7e319953a22c86ee03d74534bd5abc88","version":"0.6.2.3"},{"cabal_sha256":"eb34c3e2fa39f9819293045c03e56148a7125573c1de265cdfe5d967f1d71c6e","flags":["+base48","-cabal-syntax","+lukko","-mtl21","-old-directory","+use-network-uri"],"package":"hackage-security","revision":1,"source":"hackage","src_sha256":"bf22cd16dde7d6b7130463f4d7324b64a2964d9ef3f523df97d7cb98544d64a8","version":"0.6.2.1"},{"cabal_sha256":"2561adac8ce373910948066debe090a22b336b129ba5af18c0332524d16e72ce","flags":[],"package":"regex-base","revision":0,"source":"hackage","src_sha256":"7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1","version":"0.94.0.2"},{"cabal_sha256":"b6421e5356766b0c0a78b6094ae2e3a6259b42c147b717283c03c1cb09163dca","flags":["-_regex-posix-clib"],"package":"regex-posix","revision":0,"source":"hackage","src_sha256":"c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c","version":"0.96.0.1"},{"cabal_sha256":"2088eb9368b920f80bbe4e3b03c3b8484090208f5c3b31645bd67a9ef7d26db4","flags":[],"package":"resolv","revision":4,"source":"hackage","src_sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","version":"0.1.2.0"},{"cabal_sha256":null,"flags":["-debug-conflict-sets","-debug-expensive-assertions","-debug-tracetree","+lukko","+native-dns"],"package":"cabal-install","revision":null,"source":"local","src_sha256":null,"version":"3.6.2.0"}]}
\ No newline at end of file
diff --git a/srcpkgs/cabal-install/files/linux-9.2.5.json b/srcpkgs/cabal-install/files/linux-9.2.5.json
new file mode 100644
index 000000000000..13fe257cbb30
--- /dev/null
+++ b/srcpkgs/cabal-install/files/linux-9.2.5.json
@@ -0,0 +1 @@
+{"builtin":[{"package":"rts","version":"1.0.2"},{"package":"ghc-prim","version":"0.8.0"},{"package":"ghc-bignum","version":"1.2"},{"package":"base","version":"4.16.4.0"},{"package":"array","version":"0.5.4.0"},{"package":"deepseq","version":"1.4.6.1"},{"package":"ghc-boot-th","version":"9.2.5"},{"package":"pretty","version":"1.1.3.6"},{"package":"template-haskell","version":"2.18.0.0"},{"package":"bytestring","version":"0.11.3.1"},{"package":"containers","version":"0.6.5.1"},{"package":"binary","version":"0.8.9.0"},{"package":"filepath","version":"1.4.2.2"},{"package":"time","version":"1.11.1.1"},{"package":"unix","version":"2.7.2.2"},{"package":"directory","version":"1.3.6.2"},{"package":"transformers","version":"0.5.6.2"},{"package":"mtl","version":"2.2.2"},{"package":"text","version":"1.2.5.0"},{"package":"parsec","version":"3.1.15.0"},{"package":"process","version":"1.6.16.0"},{"package":"stm","version":"2.5.0.2"},{"package":"exceptions","version":"0.10.4"}],"dependencies":[{"cabal_sha256":null,"flags":[],"package":"Cabal-syntax","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"},{"cabal_sha256":null,"flags":[],"package":"Cabal","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"},{"cabal_sha256":"804e2574bc7e32d08cbab91e47ee6287b4df7d50851d73f9e778f94a9a7814c7","flags":["-optimised-mixer"],"package":"splitmix","revision":1,"source":"hackage","src_sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","version":"0.1.0.4"},{"cabal_sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","flags":[],"package":"random","revision":0,"source":"hackage","src_sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","version":"1.2.1.1"},{"cabal_sha256":"50b2f002c68fe67730ee7a3cd8607486197dd99b084255005ad51ecd6970a41b","flags":["+containers","+integer-gmp","-random-initial-seed"],"package":"hashable","revision":0,"source":"hackage","src_sha256":"e1b305c280e66ad827edeaedd6933b9fc4174f626882877eab2a08344e665e87","version":"1.4.1.0"},{"cabal_sha256":"2b9409023536823233ce3134558565d01b3382e651fa54ac8cb8a99967e023c9","flags":["-bench"],"package":"async","revision":2,"source":"hackage","src_sha256":"484df85be0e76c4fed9376451e48e1d0c6e97952ce79735b72d54297e7e0a725","version":"2.2.4"},{"cabal_sha256":"bc14969ea4adfec6eee20264decf4a07c4002b38b2aa802d58d86b1a2cf7b895","flags":["-old-bytestring","-old-time"],"package":"tar","revision":5,"source":"hackage","src_sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","version":"0.5.1.1"},{"cabal_sha256":"e3d78b13db9512aeb106e44a334ab42b7aa48d26c097299084084cb8be5c5568","flags":["-devel"],"package":"network","revision":0,"source":"hackage","src_sha256":"7f7620fef1a1af3d3d6747f510e73223a5c600e7d7fd9ace073d1222bdc63d85","version":"3.1.2.7"},{"cabal_sha256":"6ca77c4e80b4e4109e30549c269631a9cc295c8fc2431ce4123972a5f80f7bfc","flags":[],"package":"th-compat","revision":0,"source":"hackage","src_sha256":"d8f97ac14ab47b6b8a7b0fdb4ff95426322ec56badd01652ac15da4a44d4bab8","version":"0.1.4"},{"cabal_sha256":"a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d","flags":[],"package":"network-uri","revision":0,"source":"hackage","src_sha256":"57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584","version":"2.6.4.1"},{"cabal_sha256":"b878d575c470bd1f72d37af6654d924ab2b9489d88de8a71bd74d9d5d726c013","flags":["-conduit10","+network-uri","-warn-as-error","-warp-tests"],"package":"HTTP","revision":1,"source":"hackage","src_sha256":"df31d8efec775124dab856d7177ddcba31be9f9e0836ebdab03d94392f2dd453","version":"4000.4.1"},{"cabal_sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","flags":[],"package":"base16-bytestring","revision":0,"source":"hackage","src_sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","version":"1.0.2.0"},{"cabal_sha256":"50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8","flags":[],"package":"base64-bytestring","revision":0,"source":"hackage","src_sha256":"fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9","version":"1.2.1.0"},{"cabal_sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","flags":[],"package":"edit-distance","revision":1,"source":"hackage","src_sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","version":"0.2.2.1"},{"cabal_sha256":null,"flags":["-debug-conflict-sets","-debug-expensive-assertions","-debug-tracetree"],"package":"cabal-install-solver","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"},{"cabal_sha256":"facd0c04925ef925ec05243471fd16055229fdf51f64db1a1049de0cc6c6dfc3","flags":["-exe","+use-cbits"],"package":"cryptohash-sha256","revision":1,"source":"hackage","src_sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","version":"0.11.102.1"},{"cabal_sha256":"ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42","flags":["-example"],"package":"echo","revision":0,"source":"hackage","src_sha256":"c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43","version":"0.1.4"},{"cabal_sha256":"885c9e2410e5d91a08b199897df0867fecedf818216d7329a2d43a512833dd63","flags":["+no-donna","+test-doctests","+test-hlint","+test-properties"],"package":"ed25519","revision":6,"source":"hackage","src_sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","version":"0.0.5.0"},{"cabal_sha256":"efd4c08c4df1ac3f423858a834c0e3b5b4909febda66a901d12a8e1d57bddaa8","flags":["+ofd-locking"],"package":"lukko","revision":3,"source":"hackage","src_sha256":"a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f","version":"0.1.1.3"},{"cabal_sha256":"8214a9d37580f17f8b675109578a5dbe6853559eef156e34dc2233f1123ace33","flags":["-bundled-c-zlib","-non-blocking-ffi","-pkg-config"],"package":"zlib","revision":0,"source":"hackage","src_sha256":"9eaa989ad4534438b5beb51c1d3a4c8f6a088fdff0b259a5394fbf39aaee04da","version":"0.6.3.0"},{"cabal_sha256":"1a6cf81a4871559ef5bc47b230278b9ad4bf44f1e4dbf77bdc8e07f6e7b8d005","flags":["+base48","+cabal-syntax","+lukko","-mtl21","-old-directory","+use-network-uri"],"package":"hackage-security","revision":1,"source":"hackage","src_sha256":"a833a31610220506557e96fb6e3e8b05a2e1db8e7ebc06e91bbb699ddde0b276","version":"0.6.2.2"},{"cabal_sha256":"4ff4425c710cddf440dfbac6cd52310bb6b23e17902390ff71c9fc7eaafc4fcc","flags":[],"package":"regex-base","revision":1,"source":"hackage","src_sha256":"7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1","version":"0.94.0.2"},{"cabal_sha256":"9dbba4b65a3bb6975d9740814be5593c6b2d2d6a0b3febc8ec940edb9a9bbdf4","flags":["-_regex-posix-clib"],"package":"regex-posix","revision":1,"source":"hackage","src_sha256":"c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c","version":"0.96.0.1"},{"cabal_sha256":"61e2d98ff634b8b4b3db467772420c0f9c79c2da9ddf3d2daeb2af2417f2c535","flags":[],"package":"resolv","revision":5,"source":"hackage","src_sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","version":"0.1.2.0"},{"cabal_sha256":"6e9b1b233af80cc0aa17ea858d2641ba146fb11cbcc5970a52649e89d77282e2","flags":[],"package":"safe-exceptions","revision":0,"source":"hackage","src_sha256":"91ce28d8f8a6efd31788d4827ed5cdcb9a546ad4053a86c56f7947c66a30b5bf","version":"0.1.7.3"},{"cabal_sha256":null,"flags":["+lukko","+native-dns"],"package":"cabal-install","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"}]}
\ No newline at end of file
diff --git a/srcpkgs/cabal-install/template b/srcpkgs/cabal-install/template
index b3ebc1bb15b9..9f9bd3afe8a2 100644
--- a/srcpkgs/cabal-install/template
+++ b/srcpkgs/cabal-install/template
@@ -1,7 +1,7 @@
 # Template file for 'cabal-install'
 pkgname=cabal-install
-version=3.6.3.0
-revision=2
+version=3.8.1.0
+revision=1
 hostmakedepends="ghc curl tar which"
 makedepends="gmp-devel libffi-devel zlib-devel python3"
 depends="ghc"
@@ -10,24 +10,24 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
 license="BSD-3-Clause"
 homepage="https://hackage.haskell.org/package/cabal-install"
 distfiles="https://github.com/haskell/cabal/archive/Cabal-v${version}.tar.gz"
-checksum=dea086acad6d9fe5fe22d838b95b4e988022e8519f38d41609119ea32bfb7466
+checksum=d4eff9c1fcc5212360afac8d97da83b3aff79365490a449e9c47d3988c14b6bc
 nopie_files="/usr/bin/cabal"
 nocross=yes
 
 post_extract() {
-	cp "${FILESDIR}/linux-9.0.2.json" bootstrap/
+	cp "${FILESDIR}/linux-9.2.5.json" bootstrap/
 }
 
 post_patch() {
 	case "${XBPS_TARGET_MACHINE}" in
 	i686*)
 		# https://github.com/haskell/cabal/issues/7313
-		vsed -i -e 's/+ofd-locking/-ofd-locking/' bootstrap/linux-9.0.2.json ;;
+		vsed -i -e 's/+ofd-locking/-ofd-locking/' bootstrap/linux-9.2.5.json ;;
 	esac
 }
 
 do_build() {
-	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-9.0.2.json
+	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-9.2.5.json
 }
 do_install() {
 	vbin _build/bin/cabal

From bfcde1a6bcb96b4aeb73a1b115d301425f323814 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Mon, 21 Nov 2022 18:38:18 +0100
Subject: [PATCH 03/17] stack: update to 2.9.3

+ Remove most outdated patches concerning version bounds and
  compatibility with GHC 9.0.2.
+ Adjust ppc patch.
+ New showStackVersion patch to build with GHC 9.2.5.
---
 srcpkgs/stack/patches/aeson.patch            |  46 ----
 srcpkgs/stack/patches/fsnotify.patch         |  16 --
 srcpkgs/stack/patches/ghc9.0.2.patch         | 212 -------------------
 srcpkgs/stack/patches/persistent.patch       |  46 ----
 srcpkgs/stack/patches/ppc.patch              |   3 +-
 srcpkgs/stack/patches/showStackVersion.patch |  10 +
 srcpkgs/stack/template                       |  10 +-
 7 files changed, 16 insertions(+), 327 deletions(-)
 delete mode 100644 srcpkgs/stack/patches/aeson.patch
 delete mode 100644 srcpkgs/stack/patches/fsnotify.patch
 delete mode 100644 srcpkgs/stack/patches/ghc9.0.2.patch
 delete mode 100644 srcpkgs/stack/patches/persistent.patch
 create mode 100644 srcpkgs/stack/patches/showStackVersion.patch

diff --git a/srcpkgs/stack/patches/aeson.patch b/srcpkgs/stack/patches/aeson.patch
deleted file mode 100644
index 68f267c30cc8..000000000000
--- a/srcpkgs/stack/patches/aeson.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-commit 09e233ed73aa3335642f97c080ef27e42047c527
-Author: q66 <daniel@octaforge.org>
-Date:   Fri Mar 11 04:37:15 2022 +0100
-
-    constrain aeson to prevent build failures
-
-diff --git a/stack.cabal b/stack.cabal
-index dba5bf0..0195f2c 100644
---- a/stack.cabal
-+++ b/stack.cabal
-@@ -231,7 +231,7 @@ library
- 
-     build-depends:
-         Cabal >=3.2.1.0,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
-@@ -357,7 +357,7 @@ executable stack
- 
-     build-depends:
-         Cabal >=3.2.1.0,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
-@@ -485,7 +485,7 @@ executable stack-integration-test
- 
-     build-depends:
-         Cabal >=3.2.1.0,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
-@@ -621,7 +621,7 @@ test-suite stack-test
-     build-depends:
-         Cabal >=3.2.1.0,
-         QuickCheck >=2.14.2,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
diff --git a/srcpkgs/stack/patches/fsnotify.patch b/srcpkgs/stack/patches/fsnotify.patch
deleted file mode 100644
index f82fd8f73004..000000000000
--- a/srcpkgs/stack/patches/fsnotify.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-src/Stack/FileWatch.hs:29:49: error: Not in scope: ‘confUsePolling’
-   |
-29 | fileWatchPoll = fileWatchConf $ defaultConfig { confUsePolling = True }
-   |                                                 ^^^^^^^^^^^^^^
-
---- a/stack.cabal
-+++ b/stack.cabal
-@@ -256,7 +256,7 @@ library
-         file-embed >=0.0.14.0,
-         filelock >=0.1.1.5,
-         filepath >=1.4.2.1,
--        fsnotify >=0.3.0.1,
-+        fsnotify >=0.3.0.1 && <0.4.0.0,
-         generic-deriving >=1.13.1,
-         hackage-security >=0.6.0.1,
-         hashable >=1.3.0.0,
diff --git a/srcpkgs/stack/patches/ghc9.0.2.patch b/srcpkgs/stack/patches/ghc9.0.2.patch
deleted file mode 100644
index bdd77de58c6b..000000000000
--- a/srcpkgs/stack/patches/ghc9.0.2.patch
+++ /dev/null
@@ -1,212 +0,0 @@
-From cb7e56842a25f93142545fad21306a7c1750fbbf Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:26:22 -0700
-Subject: [PATCH 1/6] Use Cabal 3.4.0.0
-
----
- stack.yaml | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/stack.yaml b/stack.yaml
-index 005bd19f4..9472509be 100644
---- a/stack.yaml
-+++ b/stack.yaml
-@@ -20,6 +20,9 @@ flags:
- ghc-options:
-    "$locals": -fhide-source-paths
-
-+extra-deps:
-+- Cabal-3.4.0.0
-+
- drop-packages:
- # See https://github.com/commercialhaskell/stack/pull/4712
- - cabal-install
-
-From 11e11ab0edeba033b40a7fc62434be58dea82ce2 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:40:56 -0700
-Subject: [PATCH 2/6] Fix Flag => PackageFlag
-
----
- src/Stack/BuildPlan.hs | 2 +-
- src/Stack/Package.hs   | 8 ++++----
- 2 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/src/Stack/BuildPlan.hs b/src/Stack/BuildPlan.hs
-index 36f82236e..c5c80efc6 100644
---- a/src/Stack/BuildPlan.hs
-+++ b/src/Stack/BuildPlan.hs
-@@ -224,7 +224,7 @@ selectPackageBuildPlan platform compiler pool gpd =
-     flagCombinations :: NonEmpty [(FlagName, Bool)]
-     flagCombinations = mapM getOptions (genPackageFlags gpd)
-       where
--        getOptions :: C.Flag -> NonEmpty (FlagName, Bool)
-+        getOptions :: C.PackageFlag -> NonEmpty (FlagName, Bool)
-         getOptions f
-             | flagManual f = (fname, flagDefault f) :| []
-             | flagDefault f = (fname, True) :| [(fname, False)]
-diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs
-index 4db50d2a4..d9bca7af5 100644
---- a/src/Stack/Package.hs
-+++ b/src/Stack/Package.hs
-@@ -128,7 +128,7 @@ resolvePackage packageConfig gpkg =
-         (resolvePackageDescription packageConfig gpkg)
-
- packageFromPackageDescription :: PackageConfig
--                              -> [D.Flag]
-+                              -> [PackageFlag]
-                               -> PackageDescriptionPair
-                               -> Package
- packageFromPackageDescription packageConfig pkgFlags (PackageDescriptionPair pkgNoMod pkg) =
-@@ -935,9 +935,9 @@ resolvePackageDescription packageConfig (GenericPackageDescription desc defaultF
- -- | Make a map from a list of flag specifications.
- --
- -- What is @flagManual@ for?
--flagMap :: [Flag] -> Map FlagName Bool
-+flagMap :: [PackageFlag] -> Map FlagName Bool
- flagMap = M.fromList . map pair
--  where pair :: Flag -> (FlagName, Bool)
-+  where pair :: PackageFlag -> (FlagName, Bool)
-         pair = flagName &&& flagDefault
-
- data ResolveConditions = ResolveConditions
-@@ -986,7 +986,7 @@ resolveConditions rc addDeps (CondNode lib deps cs) = basic <> children
-                   case v of
-                     OS os -> os == rcOS rc
-                     Arch arch -> arch == rcArch rc
--                    Flag flag ->
-+                    PackageFlag flag ->
-                       fromMaybe False $ M.lookup flag (rcFlags rc)
-                       -- NOTE:  ^^^^^ This should never happen, as all flags
-                       -- which are used must be declared. Defaulting to
-
-From 8facd731ec3f2bbc15a083750740929167b33bb2 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:55:30 -0700
-Subject: [PATCH 3/6] Fix CabalSpecVersion
-
----
- src/Stack/Package.hs | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs
-index d9bca7af5..fca039140 100644
---- a/src/Stack/Package.hs
-+++ b/src/Stack/Package.hs
-@@ -32,6 +32,7 @@ import           Data.List (find, isPrefixOf, unzip)
- import qualified Data.Map.Strict as M
- import qualified Data.Set as S
- import qualified Data.Text as T
-+import           Distribution.CabalSpecVersion (CabalSpecVersion, cabalSpecMinimumLibraryVersion)
- import           Distribution.Compiler
- import           Distribution.ModuleName (ModuleName)
- import qualified Distribution.ModuleName as Cabal
-@@ -190,7 +191,7 @@ packageFromPackageDescription packageConfig pkgFlags (PackageDescriptionPair pkg
-           (library pkg)
-     , packageBuildType = buildType pkg
-     , packageSetupDeps = msetupDeps
--    , packageCabalSpec = either orLaterVersion id $ specVersionRaw pkg
-+    , packageCabalSpec = orLaterVersion $ mkVersion $ cabalSpecMinimumLibraryVersion $ specVersion pkg
-     }
-   where
-     extraLibNames = S.union subLibNames foreignLibNames
-@@ -696,7 +697,7 @@ packageDescModulesAndFiles pkg = do
-
- -- | Resolve globbing of files (e.g. data files) to absolute paths.
- resolveGlobFiles
--  :: Version -- ^ cabal file version
-+  :: CabalSpecVersion -- ^ cabal file version
-   -> [String]
-   -> RIO Ctx (Set (Path Abs File))
- resolveGlobFiles cabalFileVersion =
-
-From 004f14652409b7d0645215d354b2e599eb7f76bc Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:55:40 -0700
-Subject: [PATCH 4/6] Fix GenericPackageDescription
-
----
- src/Stack/Build.hs   | 2 +-
- src/Stack/Package.hs | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/Stack/Build.hs b/src/Stack/Build.hs
-index 23b9a9719..856903bed 100644
---- a/src/Stack/Build.hs
-+++ b/src/Stack/Build.hs
-@@ -358,7 +358,7 @@ checkComponentsBuildable lps =
- checkSubLibraryDependencies :: HasLogFunc env => [ProjectPackage] -> RIO env ()
- checkSubLibraryDependencies proj = do
-   forM_ proj $ \p -> do
--    C.GenericPackageDescription _ _ lib subLibs foreignLibs exes tests benches <- liftIO $ cpGPD . ppCommon $ p
-+    C.GenericPackageDescription _ _ _ lib subLibs foreignLibs exes tests benches <- liftIO $ cpGPD . ppCommon $ p
-
-     let dependencies = concatMap getDeps subLibs <>
-                        concatMap getDeps foreignLibs <>
-diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs
-index fca039140..39aad4d2f 100644
---- a/src/Stack/Package.hs
-+++ b/src/Stack/Package.hs
-@@ -863,7 +863,7 @@ data PackageDescriptionPair = PackageDescriptionPair
- resolvePackageDescription :: PackageConfig
-                           -> GenericPackageDescription
-                           -> PackageDescriptionPair
--resolvePackageDescription packageConfig (GenericPackageDescription desc defaultFlags mlib subLibs foreignLibs' exes tests benches) =
-+resolvePackageDescription packageConfig (GenericPackageDescription desc _ defaultFlags mlib subLibs foreignLibs' exes tests benches) =
-     PackageDescriptionPair
-       { pdpOrigBuildable = go False
-       , pdpModifiedBuildable = go True
-
-From 820797b566ef981936907f4d19658259d4a635a8 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 17:01:01 -0700
-Subject: [PATCH 5/6] Fix generatePackageVersionMacros
-
----
- src/Stack/Build/Execute.hs | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/Stack/Build/Execute.hs b/src/Stack/Build/Execute.hs
-index 1e381dd21..aedd7fee5 100644
---- a/src/Stack/Build/Execute.hs
-+++ b/src/Stack/Build/Execute.hs
-@@ -1214,7 +1214,7 @@ withSingleContext ActionContext {..} ee@ExecuteEnv {..} task@Task {..} allDeps m
-                             let macroDeps = mapMaybe snd matchedDeps
-                                 cppMacrosFile = setupDir </> relFileSetupMacrosH
-                                 cppArgs = ["-optP-include", "-optP" ++ toFilePath cppMacrosFile]
--                            writeBinaryFileAtomic cppMacrosFile (encodeUtf8Builder (T.pack (C.generatePackageVersionMacros macroDeps)))
-+                            writeBinaryFileAtomic cppMacrosFile (encodeUtf8Builder (T.pack (C.generatePackageVersionMacros (packageVersion package) macroDeps)))
-                             return (packageDBArgs ++ depsArgs ++ cppArgs)
-
-                         -- This branch is usually taken for builds, and
-
-From 336ab515e30f03c274f89ebe1cbc6aa1e597c2a4 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 17:04:16 -0700
-Subject: [PATCH 6/6] Fix ModuleReexport
-
----
- src/Stack/Script.hs | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/Stack/Script.hs b/src/Stack/Script.hs
-index 6bb67c049..9ebd2173d 100644
---- a/src/Stack/Script.hs
-+++ b/src/Stack/Script.hs
-@@ -18,6 +18,7 @@ import           Distribution.Compiler      (CompilerFlavor (..))
- import           Distribution.ModuleName    (ModuleName)
- import qualified Distribution.PackageDescription as PD
- import qualified Distribution.Types.CondTree as C
-+import qualified Distribution.Types.ModuleReexport as ModuleReexport
- import           Distribution.Types.PackageName (mkPackageName)
- import           Distribution.Types.VersionRange (withinRange)
- import           Distribution.System        (Platform (..))
-@@ -280,7 +281,7 @@ allExposedModules gpd = do
-       mlibrary = snd . C.simplifyCondTree checkCond <$> PD.condLibrary gpd
-   pure $ case mlibrary  of
-     Just lib -> PD.exposedModules lib ++
--                map PD.moduleReexportName (PD.reexportedModules lib)
-+                map ModuleReexport.moduleReexportName (PD.reexportedModules lib)
-     Nothing  -> mempty
-
- -- | The Stackage project introduced the concept of hidden packages,
diff --git a/srcpkgs/stack/patches/persistent.patch b/srcpkgs/stack/patches/persistent.patch
deleted file mode 100644
index cf462d7b80c2..000000000000
--- a/srcpkgs/stack/patches/persistent.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-commit 188d7ece06ee06ed6ccaf0df0c46285bd43898f4
-Author: q66 <daniel@octaforge.org>
-Date:   Thu Apr 28 05:02:09 2022 +0200
-
-    constrain persistent to fix build
-
-diff --git a/stack.cabal b/stack.cabal
-index dba5bf0..e221321 100644
---- a/stack.cabal
-+++ b/stack.cabal
-@@ -281,7 +281,7 @@ library
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
-@@ -407,7 +407,7 @@ executable stack
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
-@@ -537,7 +537,7 @@ executable stack-integration-test
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
-@@ -672,7 +672,7 @@ test-suite stack-test
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
diff --git a/srcpkgs/stack/patches/ppc.patch b/srcpkgs/stack/patches/ppc.patch
index fc4c540f0f92..4ab025e7663c 100644
--- a/srcpkgs/stack/patches/ppc.patch
+++ b/srcpkgs/stack/patches/ppc.patch
@@ -22,11 +22,10 @@
 
 --- a/stack.cabal
 +++ b/stack.cabal
-@@ -246,6 +246,7 @@
+@@ -246,4 +246,5 @@
          conduit >=1.3.4.1,
          conduit-extra >=1.3.5,
          containers >=0.6.2.1,
 +        cpu >=0.1.2,
          cryptonite >=0.27,
          cryptonite-conduit >=0.2.2,
-         deepseq >=1.4.4.0,
diff --git a/srcpkgs/stack/patches/showStackVersion.patch b/srcpkgs/stack/patches/showStackVersion.patch
new file mode 100644
index 000000000000..454e0c6dfe53
--- /dev/null
+++ b/srcpkgs/stack/patches/showStackVersion.patch
@@ -0,0 +1,10 @@
+--- a/src/main/BuildInfo.hs
++++ b/src/main/BuildInfo.hs
+@@ -32,5 +32,6 @@
+ #endif
+ import           Stack.Prelude
+ import qualified Paths_stack as Meta
++import Stack.Types.Version (showStackVersion)
+
+ versionString' :: String
+ #ifdef USE_GIT_INFO
diff --git a/srcpkgs/stack/template b/srcpkgs/stack/template
index b6c1f1578ed9..c76f90ff89ed 100644
--- a/srcpkgs/stack/template
+++ b/srcpkgs/stack/template
@@ -1,8 +1,8 @@
 # Template file for 'stack'
 pkgname=stack
-version=2.7.5
-revision=2
-_stackage="lts-19.0"
+version=2.9.3
+revision=1
+_stackage="lts-20.0"
 hostmakedepends="cabal-install pkg-config unzip"
 makedepends="zlib-devel pcre-devel"
 depends="git gmp-devel iana-etc"
@@ -12,8 +12,8 @@ license="BSD-3-Clause"
 homepage="https://haskellstack.org"
 distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz
  https://www.stackage.org/${_stackage}/cabal.config>cabal.config-${_stackage}"
-checksum="9ddd44c2a62e9404194d69e7dc1c94e707910620316b66d6ac0b3201a8f37e80
- e1de952bb6f62573e5c211df99ce6bb684c4cae7845f16c347ce9aa503d6374f"
+checksum="c4700cb227dd624249db2e649445f3df3d558c8a5ab2c98b5c7bf8545901f2dc
+ addcb336500f35b565403e72b0b3793fee74313439eacfb79e0c2121d88bc8ea"
 skip_extraction="cabal.config-${_stackage}"
 nocross=yes
 nopie_files="/usr/bin/stack"

From 43c22912fcbee45621319d96abf8603e2d5f6339 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Tue, 27 Dec 2022 15:29:21 +0100
Subject: [PATCH 04/17] hlint: update to 3.4.1

---
 srcpkgs/hlint/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/hlint/template b/srcpkgs/hlint/template
index 0109be25805f..c5efc617393c 100644
--- a/srcpkgs/hlint/template
+++ b/srcpkgs/hlint/template
@@ -1,16 +1,16 @@
 # Template file for 'hlint'
 pkgname=hlint
-version=3.3.6
+version=3.4.1
 revision=1
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 makedepends="ncurses-devel"
 short_desc="Haskell source code suggestions"
 maintainer="Inokentiy Babushkin <twk@twki.de>"
 license="BSD-3-Clause"
 homepage="https://github.com/ndmitchell/hlint"
 distfiles="https://github.com/ndmitchell/${pkgname}/archive/v${version}.tar.gz"
-checksum=7d536c03f77a0c259efb2b00b525ef34578ca8a4a95ccb412708e8c7172e2e6a
+checksum=667b1ee82ce47706e8206c4994add2483b0bf21c67861d4652b2b5aa90299dc5
 nocross=yes # Can't yet cross compile Haskell
 nopie_files="/usr/bin/hlint"
 

From bef4ba87d4872f0785d1d546613599791b2fa456 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Tue, 27 Dec 2022 16:19:12 +0100
Subject: [PATCH 05/17] hoogle: bump for stackage lts-20.0

---
 srcpkgs/hoogle/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/hoogle/template b/srcpkgs/hoogle/template
index dc487cab4017..00de03e81eef 100644
--- a/srcpkgs/hoogle/template
+++ b/srcpkgs/hoogle/template
@@ -1,9 +1,9 @@
 # Template file for 'hoogle'
 pkgname=hoogle
 version=5.0.18.3
-revision=1
+revision=2
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 makedepends="zlib-devel"
 short_desc="Haskell API search engine"
 maintainer="Inokentiy Babushkin <twk@twki.de>"

From 0ff10d252f1074acd9450926e1bba8eded586310 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Tue, 27 Dec 2022 17:38:42 +0100
Subject: [PATCH 06/17] pandoc: update to 2.19.2

+ Update pandoc-crossref and it's associated cabal file.
+ Bump lua dependency.
+ Remove roman-numerals dependency, as pandoc-crossref now has its own
  implementation of this.
---
 srcpkgs/pandoc/files/pandoc-crossref.cabal | 139 +++++++++++++++++----
 srcpkgs/pandoc/template                    |  17 ++-
 2 files changed, 121 insertions(+), 35 deletions(-)

diff --git a/srcpkgs/pandoc/files/pandoc-crossref.cabal b/srcpkgs/pandoc/files/pandoc-crossref.cabal
index 7aacc47278f3..850405534565 100644
--- a/srcpkgs/pandoc/files/pandoc-crossref.cabal
+++ b/srcpkgs/pandoc/files/pandoc-crossref.cabal
@@ -1,13 +1,9 @@
-cabal-version: 2.0
-
--- This file has been generated from package.yaml by hpack version 0.34.6.
+-- This file has been generated from package.yaml by hpack version 0.34.4.
 --
 -- see: https://github.com/sol/hpack
---
--- hash: 20655cd6263e9fe7e5737ee81b093c8c6f5eae67e260ddd3a821ac6ef5e35e69
 
 name:           pandoc-crossref
-version:        0.3.13.0
+version:        0.3.14.0
 synopsis:       Pandoc filter for cross-references
 description:    pandoc-crossref is a pandoc filter for numbering figures, equations, tables and cross-references to them.
 category:       Text
@@ -18,6 +14,99 @@ maintainer:     root@livid.pp.ru
 license:        GPL-2
 license-file:   LICENSE
 build-type:     Simple
+extra-source-files:
+    test/demo-chapters.inc
+    test/demo.inc
+    CHANGELOG.md
+    licenses/LICENSE.roman-numerals
+data-files:
+    docs/demo/demo.md
+    docs/index.md
+    test/m2m/chapDelim/expect.md
+    test/m2m/chapDelim/expect.tex
+    test/m2m/chapDelim/input.md
+    test/m2m/delim/expect.md
+    test/m2m/delim/expect.tex
+    test/m2m/delim/input.md
+    test/m2m/emptyChapterLabels/expect.md
+    test/m2m/emptyChapterLabels/expect.tex
+    test/m2m/emptyChapterLabels/input.md
+    test/m2m/eqnBlockTemplate/expect.md
+    test/m2m/eqnBlockTemplate/expect.tex
+    test/m2m/eqnBlockTemplate/input.md
+    test/m2m/eqnInlineTemplate/expect.md
+    test/m2m/eqnInlineTemplate/expect.tex
+    test/m2m/eqnInlineTemplate/input.md
+    test/m2m/equationNumberLaTeX/expect.md
+    test/m2m/equationNumberLaTeX/expect.tex
+    test/m2m/equationNumberLaTeX/input.md
+    test/m2m/equations-auto/expect.md
+    test/m2m/equations-auto/expect.tex
+    test/m2m/equations-auto/input.md
+    test/m2m/equations-tables-auto/expect.md
+    test/m2m/equations-tables-auto/expect.tex
+    test/m2m/equations-tables-auto/input.md
+    test/m2m/equations-tables/expect.md
+    test/m2m/equations-tables/expect.tex
+    test/m2m/equations-tables/input.md
+    test/m2m/equations/expect.md
+    test/m2m/equations/expect.tex
+    test/m2m/equations/input.md
+    test/m2m/label-precedence/expect.md
+    test/m2m/label-precedence/expect.tex
+    test/m2m/label-precedence/input.md
+    test/m2m/links-names/expect.md
+    test/m2m/links-names/expect.tex
+    test/m2m/links-names/input.md
+    test/m2m/links/expect.md
+    test/m2m/links/expect.tex
+    test/m2m/links/input.md
+    test/m2m/listing-captions-ids/expect.md
+    test/m2m/listing-captions-ids/expect.tex
+    test/m2m/listing-captions-ids/input.md
+    test/m2m/listings-code-block-caption-278/expect.md
+    test/m2m/listings-code-block-caption-278/expect.tex
+    test/m2m/listings-code-block-caption-278/input.md
+    test/m2m/listOfTemplates-buillet-list/expect.md
+    test/m2m/listOfTemplates-buillet-list/expect.tex
+    test/m2m/listOfTemplates-buillet-list/input.md
+    test/m2m/listOfTemplates-ord-list/expect.md
+    test/m2m/listOfTemplates-ord-list/expect.tex
+    test/m2m/listOfTemplates-ord-list/input.md
+    test/m2m/listOfTemplates/expect.md
+    test/m2m/listOfTemplates/expect.tex
+    test/m2m/listOfTemplates/input.md
+    test/m2m/loxItemTitle/expect.md
+    test/m2m/loxItemTitle/expect.tex
+    test/m2m/loxItemTitle/input.md
+    test/m2m/multiple-eqn-same-para/expect.md
+    test/m2m/multiple-eqn-same-para/expect.tex
+    test/m2m/multiple-eqn-same-para/input.md
+    test/m2m/secLabels/expect.md
+    test/m2m/secLabels/expect.tex
+    test/m2m/secLabels/input.md
+    test/m2m/secLevelLabels/expect.md
+    test/m2m/secLevelLabels/expect.tex
+    test/m2m/secLevelLabels/input.md
+    test/m2m/section-template/expect.md
+    test/m2m/section-template/expect.tex
+    test/m2m/section-template/input.md
+    test/m2m/setLabelAttribute/expect.md
+    test/m2m/setLabelAttribute/expect.tex
+    test/m2m/setLabelAttribute/input.md
+    test/m2m/subfigures-ccsDelim/expect.md
+    test/m2m/subfigures-ccsDelim/expect.tex
+    test/m2m/subfigures-ccsDelim/input.md
+    test/m2m/subfigures-grid/expect.md
+    test/m2m/subfigures-grid/expect.tex
+    test/m2m/subfigures-grid/input.md
+    test/m2m/subfigures/expect.md
+    test/m2m/subfigures/expect.tex
+    test/m2m/subfigures/input.md
+    test/m2m/titlesInRefs/expect.md
+    test/m2m/titlesInRefs/expect.tex
+    test/m2m/titlesInRefs/input.md
+cabal-version: 1.12
 
 source-repository head
   type: git
@@ -32,6 +121,7 @@ library
   exposed-modules:
       Text.Pandoc.CrossRef
   other-modules:
+      Text.Numeral.Roman
       Text.Pandoc.CrossRef.References
       Text.Pandoc.CrossRef.References.Blocks
       Text.Pandoc.CrossRef.References.List
@@ -60,13 +150,12 @@ library
     , microlens >=0.4.12.0 && <0.5.0.0
     , microlens-mtl >=0.2.0.1 && <0.3.0.0
     , microlens-th >=0.4.3.10 && <0.5.0.0
-    , mtl >=1.1 && <2.3
-    , pandoc >=2.10 && <2.18
-    , pandoc-types >=1.21 && <1.23
-    , roman-numerals ==0.5.*
+    , mtl >=1.1 && <2.4
+    , pandoc >=2.18 && <2.20
+    , pandoc-types >=1.22.2 && <1.23
     , syb >=0.4 && <0.8
     , template-haskell >=2.7.0.0 && <3.0.0.0
-    , text >=1.2.2 && <1.3
+    , text >=1.2.2 && <2.1
     , utility-ht >=0.0.11 && <0.1.0
   default-language: Haskell2010
 
@@ -82,13 +171,13 @@ executable pandoc-crossref
     , deepseq ==1.4.*
     , gitrev >=1.3.1 && <1.4
     , open-browser ==0.2.*
-    , optparse-applicative >=0.13 && <0.17
-    , pandoc >=2.10 && <2.18
+    , optparse-applicative >=0.13 && <0.18
+    , pandoc >=2.18 && <2.20
     , pandoc-crossref
-    , pandoc-types >=1.21 && <1.23
+    , pandoc-types >=1.22.2 && <1.23
     , template-haskell >=2.7.0.0 && <3.0.0.0
     , temporary >=1.2 && <1.4
-    , text >=1.2.2 && <1.3
+    , text >=1.2.2 && <2.1
   default-language: Haskell2010
 
 test-suite test-integrative
@@ -102,10 +191,10 @@ test-suite test-integrative
     , directory >=1 && <1.4
     , filepath >=1.1 && <1.5
     , hspec >=2.4.4 && <3
-    , pandoc >=2.10 && <2.18
+    , pandoc >=2.18 && <2.20
     , pandoc-crossref
-    , pandoc-types >=1.21 && <1.23
-    , text >=1.2.2 && <1.3
+    , pandoc-types >=1.22.2 && <1.23
+    , text >=1.2.2 && <2.1
   if flag(enable_flaky_tests)
     cpp-options: -DFLAKY
   default-language: Haskell2010
@@ -128,10 +217,10 @@ test-suite test-pandoc-crossref
     , hspec >=2.4.4 && <3
     , microlens >=0.4.12.0 && <0.5.0.0
     , mtl >=1.1 && <2.3
-    , pandoc >=2.10 && <2.18
+    , pandoc >=2.18 && <2.20
     , pandoc-crossref
-    , pandoc-types >=1.21 && <1.23
-    , text >=1.2.2 && <1.3
+    , pandoc-types >=1.22.2 && <1.23
+    , text >=1.2.2 && <2.1
   if flag(enable_flaky_tests)
     cpp-options: -DFLAKY
   default-language: Haskell2010
@@ -146,9 +235,9 @@ benchmark simple
   ghc-options: -Wall -fno-warn-unused-do-bind -threaded
   build-depends:
       base >=4.11 && <5
-    , criterion >=1.5.9.0 && <1.6
-    , pandoc >=2.10 && <2.18
+    , criterion >=1.5.9.0 && <1.7
+    , pandoc >=2.18 && <2.20
     , pandoc-crossref
-    , pandoc-types >=1.21 && <1.23
-    , text >=1.2.2 && <1.3
+    , pandoc-types >=1.22.2 && <1.23
+    , text >=1.2.2 && <2.1
   default-language: Haskell2010
diff --git a/srcpkgs/pandoc/template b/srcpkgs/pandoc/template
index 9bdf32ef3c53..0ce941c6fcc5 100644
--- a/srcpkgs/pandoc/template
+++ b/srcpkgs/pandoc/template
@@ -1,20 +1,19 @@
 # Template file for 'pandoc'
 pkgname=pandoc
 # Keep in sync with http://www.stackage.org/lts
-version=2.17.1.1
+version=2.19.2
 revision=1
 _sidenote_version=0.22.1.0
 _monad_gen_version=0.3.0.1
-_crossref_version=0.3.12.2
-_roman_numerals_version=0.5.1.5
+_crossref_version=0.3.14.0
 create_wrksrc=yes
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 make_build_args="
  --flag pandoc:embed_data_files
  --flag=lua:pkg-config"
 hostmakedepends="pkg-config unzip wget"
-makedepends="zlib-devel lua53-devel tar"
+makedepends="zlib-devel lua54-devel tar"
 short_desc="Universal converter between markup formats"
 maintainer="slotThe <soliditsallgood@mailbox.org>"
 license="GPL-2.0-or-later, BSD-3-Clause"
@@ -22,13 +21,11 @@ homepage="http://johnmacfarlane.net/pandoc/"
 distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz
  https://hackage.haskell.org/package/${pkgname}-sidenote-${_sidenote_version}/${pkgname}-sidenote-${_sidenote_version}.tar.gz
  https://hackage.haskell.org/package/monad-gen-${_monad_gen_version}/monad-gen-${_monad_gen_version}.tar.gz
- https://hackage.haskell.org/package/${pkgname}-crossref-${_crossref_version}/${pkgname}-crossref-${_crossref_version}.tar.gz
- https://hackage.haskell.org/package/roman-numerals-${_roman_numerals_version}/roman-numerals-${_roman_numerals_version}.tar.gz"
-checksum="649ec528d1413130c5ce304b826ff473b3696269eea8834d908589e775bd1ad1
+ https://hackage.haskell.org/package/${pkgname}-crossref-${_crossref_version}/${pkgname}-crossref-${_crossref_version}.tar.gz"
+checksum="36e83694c36a5af35a4442c4d5abd4273289d9d309793466f59c1632e87d4245
  c39dd7343b9cb4dc5b1c91c9e47c3d357874e9e1a30b8d377bbea0b1d50323b2
  be8485023fce236b5b915f2f6074f7b0470a2040f84cdd137c5227f1b4c98465
- 94540325c9c98ae4d5199c634bf402ffa41e3c5b020d7207daef90fd9e224fb4
- b9c7195b69b1662a286d2c28a55fafdcb693c522ba5eb54a11b1d0a4e92eaa81"
+ 06d163e2cec3f285919295c41a0580f203bb157d05eb06a494dbc093cbefa5b8"
 subpackages="
  pandoc-sidenote
  pandoc-crossref"

From 64f9e27c94218c3f8b4ac7a3091dabe797feb3d7 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 08:32:36 +0100
Subject: [PATCH 07/17] shellcheck: bump for stackage lts-20.0

---
 srcpkgs/shellcheck/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/shellcheck/template b/srcpkgs/shellcheck/template
index e85667f66918..c06b88603109 100644
--- a/srcpkgs/shellcheck/template
+++ b/srcpkgs/shellcheck/template
@@ -1,9 +1,9 @@
 # Template file for 'shellcheck'
 pkgname=shellcheck
 version=0.9.0
-revision=1
+revision=2
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 hostmakedepends="pandoc"
 short_desc="Static analysis tool for shell scripts"
 maintainer="Diogo Leal <diogo@diogoleal.com>"

From b72f37ea6631b90f2da8c80353754274e5de9dfb Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 08:36:43 +0100
Subject: [PATCH 08/17] New package: greenclip-4.2

Co-authored-by: KawaiiAmber <japaneselearning101@gmail.com>
---
 srcpkgs/greenclip/files/stack.yaml | 12 ++++++++++++
 srcpkgs/greenclip/template         | 19 +++++++++++++++++++
 2 files changed, 31 insertions(+)
 create mode 100644 srcpkgs/greenclip/files/stack.yaml
 create mode 100644 srcpkgs/greenclip/template

diff --git a/srcpkgs/greenclip/files/stack.yaml b/srcpkgs/greenclip/files/stack.yaml
new file mode 100644
index 000000000000..86f4b6fa7ed2
--- /dev/null
+++ b/srcpkgs/greenclip/files/stack.yaml
@@ -0,0 +1,12 @@
+resolver: lts-20.0
+
+packages:
+- '.'
+
+extra-deps:
+- 'wordexp-0.2.2'
+- 'protolude-0.3.2'
+- 'tomland-1.3.3.2'
+- 'validation-selective-0.1.0.2'
+
+allow-newer: true
diff --git a/srcpkgs/greenclip/template b/srcpkgs/greenclip/template
new file mode 100644
index 000000000000..c048afe39e01
--- /dev/null
+++ b/srcpkgs/greenclip/template
@@ -0,0 +1,19 @@
+# Template file for 'greenclip'
+pkgname=greenclip
+version=4.2
+revision=1
+build_style=haskell-stack
+hostmakedepends="pkg-config"
+makedepends="libX11-devel libXinerama-devel libXrandr-devel libXScrnSaver-devel"
+short_desc="Simple clipboard manager to be integrated with rofi"
+maintainer="KawaiiAmber <japaneselearning101@gmail.com>"
+license="BSD-3-Clause"
+homepage="https://github.com/erebe/greenclip"
+distfiles="${homepage}/archive/refs/tags/v${version}.tar.gz"
+checksum=bb95211e3c4bf3ab3a95ede92a678f79bedf2ed2c5b707ba0fb2efbae7fc60cd
+nopie=yes
+nocross="can't yet cross compile Haskell"
+
+post_install() {
+	vlicense LICENSE
+}

From b244badd1691a35e0eeab309f750297cccbdbc0b Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 10:35:09 +0100
Subject: [PATCH 09/17] hledger: update to 1.28

---
 srcpkgs/hledger/files/stack.yaml | 14 +++++---------
 srcpkgs/hledger/template         |  4 ++--
 2 files changed, 7 insertions(+), 11 deletions(-)

diff --git a/srcpkgs/hledger/files/stack.yaml b/srcpkgs/hledger/files/stack.yaml
index b5f41932e272..e2fd18f264a4 100644
--- a/srcpkgs/hledger/files/stack.yaml
+++ b/srcpkgs/hledger/files/stack.yaml
@@ -1,4 +1,4 @@
-resolver: lts-19.0
+resolver:  lts-20.0
 
 packages:
 - hledger-lib
@@ -7,16 +7,12 @@ packages:
 - hledger-web
 
 extra-deps:
+- megaparsec-9.3.0
 # for hledger-lib:
-- breakpoint-0.1.0.0
+# - breakpoint-0.1.2.0
 # for hledger:
 # for hledger-ui:
-- brick-1.0
-- bimap-0.5.0
-- text-zipper-0.12
-- vty-5.36
+- brick-1.5
+- fsnotify-0.4.0.0
 # for hledger-web:
 # for Shake.hs:
-
-ghc-options:
-  "$locals": -fplugin Debug.Breakpoint
diff --git a/srcpkgs/hledger/template b/srcpkgs/hledger/template
index 5750484fc5bc..6a4360a0c641 100644
--- a/srcpkgs/hledger/template
+++ b/srcpkgs/hledger/template
@@ -1,6 +1,6 @@
 # Template file for 'hledger'
 pkgname=hledger
-version=1.27.1
+version=1.28
 revision=1
 build_style=haskell-stack
 makedepends="zlib-devel ncurses-devel"
@@ -10,7 +10,7 @@ license="GPL-3.0-or-later"
 homepage="https://hledger.org/"
 changelog="https://hackage.haskell.org/package/hledger-${version}/changelog"
 distfiles="https://github.com/simonmichael/hledger/archive/${version}.tar.gz"
-checksum=218f6005b7b30308cc43523dc7b61c818bb649abc217a6c8803e8f82b408d239
+checksum=e2736f732d9f5cade993877b4524f06fbb3488142843c62653a0849180d2a34a
 nopie_files="/usr/bin/hledger"
 nocross=yes # Can't yet cross compile Haskell
 

From 09afe3b6b6e780d7e8e842a71f12eb57592d5613 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 13:58:50 +0100
Subject: [PATCH 10/17] darcs: bump for stackage lts-20.0

---
 srcpkgs/darcs/files/stack.yaml | 2 +-
 srcpkgs/darcs/template         | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/darcs/files/stack.yaml b/srcpkgs/darcs/files/stack.yaml
index 6e459703764a..f2dd5264e5bf 100644
--- a/srcpkgs/darcs/files/stack.yaml
+++ b/srcpkgs/darcs/files/stack.yaml
@@ -1,4 +1,4 @@
-resolver: lts-19.0
+resolver: lts-20.0
 packages:
 - .
 allow-newer: true
diff --git a/srcpkgs/darcs/template b/srcpkgs/darcs/template
index 15a8f71f9021..04a0f6da593c 100644
--- a/srcpkgs/darcs/template
+++ b/srcpkgs/darcs/template
@@ -1,7 +1,7 @@
 # Template file for 'darcs'
 pkgname=darcs
 version=2.16.5
-revision=3
+revision=4
 build_style=haskell-stack
 hostmakedepends="unzip"
 makedepends="zlib-devel libcurl-devel ncurses-devel"

From bcfad03f61ed98bea9f3f5e6189c0383834e54ee Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 14:54:40 +0100
Subject: [PATCH 11/17] cgrep: bump for stackage lts-20.0

---
 srcpkgs/cgrep/files/stack.yaml | 7 +++++++
 srcpkgs/cgrep/template         | 2 +-
 2 files changed, 8 insertions(+), 1 deletion(-)
 create mode 100644 srcpkgs/cgrep/files/stack.yaml

diff --git a/srcpkgs/cgrep/files/stack.yaml b/srcpkgs/cgrep/files/stack.yaml
new file mode 100644
index 000000000000..9db0805a3957
--- /dev/null
+++ b/srcpkgs/cgrep/files/stack.yaml
@@ -0,0 +1,7 @@
+resolver: lts-20.0
+
+packages:
+  - '.'
+
+extra-deps:
+  - bitwise-1.0.0.1
diff --git a/srcpkgs/cgrep/template b/srcpkgs/cgrep/template
index 9d943300a68c..865d4e43398d 100644
--- a/srcpkgs/cgrep/template
+++ b/srcpkgs/cgrep/template
@@ -1,7 +1,7 @@
 # Template file for 'cgrep'
 pkgname=cgrep
 version=7.0.0
-revision=1
+revision=2
 build_style=haskell-stack
 makedepends="pcre-devel pkg-config"
 short_desc="Context-aware grep for source codes"

From bc3778263267cf26d60df508d713bb57b570ed04 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 15:38:14 +0100
Subject: [PATCH 12/17] xmobar: update to 0.44.2

This is the last version that still builds on musl.
---
 srcpkgs/xmobar/files/stack.yaml | 2 +-
 srcpkgs/xmobar/template         | 9 +++++----
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/xmobar/files/stack.yaml b/srcpkgs/xmobar/files/stack.yaml
index 7e0956374142..15744aaa56ee 100644
--- a/srcpkgs/xmobar/files/stack.yaml
+++ b/srcpkgs/xmobar/files/stack.yaml
@@ -1,4 +1,4 @@
-resolver: lts-19.0
+resolver: lts-20.0
 packages:
 - .
 extra-deps:
diff --git a/srcpkgs/xmobar/template b/srcpkgs/xmobar/template
index 6a12a9ed7055..fb00e4865322 100644
--- a/srcpkgs/xmobar/template
+++ b/srcpkgs/xmobar/template
@@ -1,6 +1,7 @@
 # Template file for 'xmobar'
 pkgname=xmobar
-version=0.42
+# versions >= 0.45 are broken on musl: https://codeberg.org/xmobar/xmobar/issues/656
+version=0.44.2
 revision=1
 build_style=haskell-stack
 hostmakedepends="pkg-config"
@@ -15,10 +16,10 @@ maintainer="xaltsc <xaltsc@protonmail.ch>"
 license="BSD-3-Clause"
 homepage="https://xmobar.org"
 distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz"
-checksum=53f4a06d79c3db32ef1a498ec7b764b17d03ebf9bca3126c6b8259595492769b
-build_options="dbus threaded utf8 xft mpd mpris inotify iwlib alsa datezone
+checksum=08a0bdd6a6c84b2219fae33de1c1335ff3610a194b377dc59ab4505aac84b73d
+build_options="dbus threaded xft mpd mpris inotify iwlib alsa datezone
  xpm uvmeter weather nl80211"
-build_options_default="threaded utf8 xft inotify nl80211 datezone weather xpm alsa mpris mpd dbus"
+build_options_default="threaded xft inotify nl80211 datezone weather xpm alsa mpris mpd dbus"
 nopie_files="/usr/bin/xmobar"
 nocross=yes
 vopt_hflag() {

From af04deea05b26054881ade9e6712ee3e7a22e2e8 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 17:10:27 +0100
Subject: [PATCH 13/17] kmonad: bump for stackage lts-20.0

---
 srcpkgs/kmonad/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kmonad/template b/srcpkgs/kmonad/template
index 04088043afc2..a21383b6a484 100644
--- a/srcpkgs/kmonad/template
+++ b/srcpkgs/kmonad/template
@@ -3,9 +3,9 @@ pkgname=kmonad
 reverts="65b501defdd0049563752f8af8c8c57f5a1ae38b_1"
 _githash=65b501defdd0049563752f8af8c8c57f5a1ae38b
 version=0.4.1.20220321
-revision=1
+revision=2
 build_style=haskell-stack
-stackage=lts-19.0
+stackage=lts-20.0
 short_desc="Keyboard remapping utility providing qmk-like functionality"
 maintainer="slotThe <soliditsallgood@mailbox.org>"
 license="MIT"

From b783cb1f43574e6bf73d89d4e867e7610b244c2a Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 17:11:43 +0100
Subject: [PATCH 14/17] glirc: bump for cabal-install 3.8.1.0

---
 srcpkgs/glirc/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/glirc/template b/srcpkgs/glirc/template
index 98a677886ae1..458609007def 100644
--- a/srcpkgs/glirc/template
+++ b/srcpkgs/glirc/template
@@ -1,7 +1,7 @@
 # Template file for 'glirc'
 pkgname=glirc
 version=2.39.0.1
-revision=1
+revision=2
 hostmakedepends="cabal-install"
 makedepends="ncurses-devel openssl-devel"
 short_desc="Console IRC client written in Haskell"

From 902bcc768fbcd0855eafe3d232ce7210d64fefab Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 18:15:04 +0100
Subject: [PATCH 15/17] git-mediate: bump for stackage lts-20.0

---
 srcpkgs/git-mediate/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/git-mediate/template b/srcpkgs/git-mediate/template
index 705df7843b8e..f472a26d132a 100644
--- a/srcpkgs/git-mediate/template
+++ b/srcpkgs/git-mediate/template
@@ -1,9 +1,9 @@
 # Template file for 'git-mediate'
 pkgname=git-mediate
 version=1.0.8.1
-revision=3
+revision=4
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 depends="git"
 short_desc="Tool to help resolving git conflicts"
 maintainer="Peter Wang <novalazy@gmail.com>"

From 3135d4b7069eeb833c222919e2954f1887bd4261 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Thu, 29 Dec 2022 09:22:09 +0100
Subject: [PATCH 16/17] [WIP] ghc-bin: update to 9.2.5

---
 srcpkgs/ghc-bin/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/ghc-bin/template b/srcpkgs/ghc-bin/template
index f9610408060f..ee8083ff3cf0 100644
--- a/srcpkgs/ghc-bin/template
+++ b/srcpkgs/ghc-bin/template
@@ -1,6 +1,6 @@
 # Template file for 'ghc-bin'
 pkgname=ghc-bin
-version=9.0.2
+version=9.2.5
 revision=1
 archs="i686 x86_64* ppc64le* ppc64 aarch64*"
 hostmakedepends="perl libffi libnuma"
@@ -16,7 +16,7 @@ conflicts="ghc>=0 ghc-doc>=0"
 case "$XBPS_TARGET_MACHINE" in
 x86_64)
 	distfiles="https://downloads.haskell.org/ghc/${version%[!0-9]}/ghc-${version}-x86_64-deb9-linux.tar.xz"
-	checksum=805f5628ce6cec678ba77ff48c924831ebdf75ec2c66368e8935a618913a150e
+	checksum=2d115b7258751f0e4481e35b5953ca3c7870e8ec9ce68f1d32fc014ddc29b2a5
 	;;
 x86_64-musl)
 	# create with "make binary-dist"
@@ -25,7 +25,7 @@ x86_64-musl)
 	;;
 i686)
 	distfiles="https://downloads.haskell.org/ghc/${version%[!0-9]}/ghc-${version}-i386-deb9-linux.tar.xz"
-	checksum=fdeb9f8928fbe994064778a8e1e85bb1a58a6cd3dd7b724fcc2a1dcfda6cad47
+	checksum=cf2088010e4477cb84b26725107eeb23e878368074abcf04f089d498ca2d9ddf
 	;;
 ppc64le)
 	distfiles="https://repo-default.voidlinux.org/distfiles/ghc-${version}-powerpc64le-void-linux.tar.xz"

From ed70d04edb71262b23158dd7397916111ab1d337 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Thu, 29 Dec 2022 09:22:41 +0100
Subject: [PATCH 17/17] New package: ghcup-0.21

Co-authored-by: Kye Shi <shi.kye@gmail.com>
---
 srcpkgs/ghcup/INSTALL.msg |  8 ++++++++
 srcpkgs/ghcup/template    | 32 ++++++++++++++++++++++++++++++++
 2 files changed, 40 insertions(+)
 create mode 100644 srcpkgs/ghcup/INSTALL.msg
 create mode 100644 srcpkgs/ghcup/template

diff --git a/srcpkgs/ghcup/INSTALL.msg b/srcpkgs/ghcup/INSTALL.msg
new file mode 100644
index 000000000000..100bbd0780b7
--- /dev/null
+++ b/srcpkgs/ghcup/INSTALL.msg
@@ -0,0 +1,8 @@
+ghcup comes with an internal downloader, but optionally depends on curl and/or
+wget for more advanced usages (e.g., proxying).  To use curl/wget as downloader,
+first make sure they are installed, then run `ghcup config set downloader Curl`.
+
+Also, ghcup requires $GHCUP_INSTALL_BASE_PREFIX/.ghcup/bin to be in your PATH
+(by default, $GHCUP_INSTALL_BASE_PREFIX is $HOME); make sure to update your
+shell launch scripts accordingly. Alternatively, when GHCUP_USE_XDG_DIRS is set,
+GHCUP uses XDG-ish directories.
diff --git a/srcpkgs/ghcup/template b/srcpkgs/ghcup/template
new file mode 100644
index 000000000000..de9be01dc9f0
--- /dev/null
+++ b/srcpkgs/ghcup/template
@@ -0,0 +1,32 @@
+# Template file for 'ghcup'
+pkgname=ghcup
+version=0.21
+revision=1
+wrksrc="ghcup-hs-v$version"
+hostmakedepends='tar git cabal-install pkg-config'
+makedepends='zlib-devel ncurses-libtinfo-devel libarchive-devel'
+depends='zlib ncurses-libtinfo-libs libarchive gcc gmp make perl'
+short_desc='Installer for the general purpose language Haskell'
+maintainer='Kye Shi <shi.kye@gmail.com>'
+license='LGPL-3.0-only'
+homepage='https://www.haskell.org/ghcup/'
+distfiles="https://github.com/haskell/ghcup-hs/archive/refs/tags/v$version.tar.gz"
+checksum=66bf77b062740eb18053b5b0456d568874b2981f641597e6152a721851900c4e
+nopie_files='/usr/bin/ghcup'
+nocross='cannot cross compile haskell yet'
+
+post_extract() {
+	vsed -i 's/-system-libarchive/+system-libarchive/' cabal.project
+}
+
+do_build() {
+	cabal update --prefix="$PWD"
+	cabal build --prefix="$PWD" --project-file=cabal.project -f'internal-downloader'
+}
+
+do_install() {
+	cabal install --prefix="$PWD" --install-method='copy' --installdir="$DESTDIR/usr/bin"
+	for sh in 'bash' 'fish' 'zsh'; do
+		vcompletion "scripts/shell-completions/$sh" "$sh"
+	done
+}

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PR PATCH] [Updated] [WIP] [ci skip] GHC 9.2.5
  2022-12-27  9:58 [PR PATCH] [WIP] [ci skip] GHC 9.2.5 slotThe
                   ` (5 preceding siblings ...)
  2022-12-29  9:24 ` slotThe
@ 2022-12-30  9:28 ` slotThe
  2022-12-30  9:53 ` slotThe
                   ` (5 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: slotThe @ 2022-12-30  9:28 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1290 bytes --]

There is an updated pull request by slotThe against master on the void-packages repository

https://github.com/slotThe/void-packages ghc-9.2.5
https://github.com/void-linux/void-packages/pull/41316

[WIP] [ci skip] GHC 9.2.5
Took much longer than anticipated, since I wanted to wait for stack 2.9.3 first.  Here's to hoping that opening a PR will motivate me to work more rapidly :)

### Core packages to bump

- [x] ghc
- [ ] ghc-bin
    - [x] x86_64 (hash)
    - [x] i686 (hash)
    - [ ] x86_64-musl
    ~~Cc. @q66~~
    - [ ] ppc64le
    - [ ] ppc64le-musl
    - [ ] ppc64
    Cc. @ftrvxmtrx
    - [ ] aarch64
    - [ ] aarch64-musl
- [x] cabal-install
- [x] stack

#### Rebuild literally every single haskell package we have and see if anything's broken

- [x] git-mediate
- [x] kmonad
- [x] cgrep
- [ ] debug-me
- [x] hlint
- [x] hoogle
- [x] darcs
- [x] shellcheck
- [ ] git-annex
- [x] hledger
- [x] pandoc
- [x] xmobar
- [ ] haskell-language-server
- [x] glirc

### Other things to do

- [x] incorporate https://github.com/void-linux/void-packages/pull/27832 @astralchan
- [x] incorporate https://github.com/void-linux/void-packages/pull/35624 @kwshi

A patch file from https://github.com/void-linux/void-packages/pull/41316.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-ghc-9.2.5-41316.patch --]
[-- Type: text/x-diff, Size: 87273 bytes --]

From 72eb2785d19f85f6719819475c9ae6076859e9e6 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Thu, 17 Nov 2022 12:47:46 +0100
Subject: [PATCH 01/19] ghc: update to 9.2.5

+ Adjust ppc64-be-elfv2.patch
  * The libraries/ghci/GHCi/InfoTable.hsc bit seems to have been
    merged, hence delete it.
  * Adjust for changes in fptools and configure.
  * Delete now out-of-date TOC.
---
 srcpkgs/ghc/patches/ppc64-be-elfv2.patch | 105 +++++------------------
 srcpkgs/ghc/template                     |   6 +-
 2 files changed, 23 insertions(+), 88 deletions(-)

diff --git a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
index df1a0bfe15ba..5fa356be700e 100644
--- a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
+++ b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
@@ -3,100 +3,36 @@ From: q66 <daniel@octaforge.org>
 Date: Thu, 28 Apr 2022 00:48:04 +0200
 Subject: [PATCH] fix up runtime for ppc64 BE ELFv2 + ensure it's used
 
----
- configure                         |  2 +-
- libraries/ghci/GHCi/InfoTable.hsc | 36 ++++++++++++-------------------
- m4/fptools.m4                     |  2 +-
- rts/AdjustorAsm.S                 |  2 +-
- rts/StgCRun.c                     |  4 ++--
- rts/StgCRunAsm.S                  |  2 +-
- rts/adjustor/NativeIA64.c         |  2 +-
- rts/adjustor/NativePowerPC.c      |  2 +-
- 8 files changed, 22 insertions(+), 30 deletions(-)
-
-diff --git a/configure b/configure
-index 8310e6f..eac1124 100755
 --- a/configure
 +++ b/configure
-@@ -10508,7 +10508,7 @@ printf "%s\n" "no" >&6; }
+@@ -10871,7 +10871,7 @@
              test -z "$2" || eval "$2=ArchPPC"
              ;;
          powerpc64)
--            test -z "$2" || eval "$2=\"ArchPPC_64 {ppc_64ABI = ELF_V1}\""
-+            test -z "$2" || eval "$2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
+-            test -z "$2" || eval "$2=\"ArchPPC_64 ELF_V1\""
++            test -z "$2" || eval "$2=\"ArchPPC_64 ELF_V2\""
              ;;
          powerpc64le)
-             test -z "$2" || eval "$2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
-diff --git a/libraries/ghci/GHCi/InfoTable.hsc b/libraries/ghci/GHCi/InfoTable.hsc
-index ad4eb4d..e4f1c0c 100644
---- a/libraries/ghci/GHCi/InfoTable.hsc
-+++ b/libraries/ghci/GHCi/InfoTable.hsc
-@@ -231,30 +231,22 @@ mkJumpToAddr' platform a = case platform of
-                 , fromIntegral w64
-                 , fromIntegral (w64 `shiftR` 32) ]
-     ArchPPC64 ->
--        -- We use the compiler's register r12 to read the function
--        -- descriptor and the linker's register r11 as a temporary
--        -- register to hold the function entry point.
--        -- In the medium code model the function descriptor
--        -- is located in the first two gigabytes, i.e. the address
--        -- of the function pointer is a non-negative 32 bit number.
--        -- 0x0EADBEEF stands for the address of the function pointer:
--        --    0:   3d 80 0e ad     lis     r12,0x0EAD
--        --    4:   61 8c be ef     ori     r12,r12,0xBEEF
--        --    8:   e9 6c 00 00     ld      r11,0(r12)
--        --    c:   e8 4c 00 08     ld      r2,8(r12)
--        --   10:   7d 69 03 a6     mtctr   r11
--        --   14:   e9 6c 00 10     ld      r11,16(r12)
--        --   18:   4e 80 04 20     bctr
--       let  w32 = fromIntegral (funPtrToInt a)
-+        -- The ABI requires r12 to point to the function's entry point.
-+        -- We use the medium code model where code resides in the first
-+        -- two gigabytes, so loading a non-negative32 bit address
-+        -- with lis followed by ori is fine.
-+        -- 0x0EADBEEF stands for the address:
-+        -- 3D800EAD lis r12,0x0EAD
-+        -- 618CBEEF ori r12,r12,0xBEEF
-+        -- 7D8903A6 mtctr r12
-+        -- 4E800420 bctr
-+
-+        let w32 = fromIntegral (funPtrToInt a)
-             hi16 x = (x `shiftR` 16) .&. 0xFFFF
-             lo16 x = x .&. 0xFFFF
--       in Right [ 0x3D800000 .|. hi16 w32,
--                  0x618C0000 .|. lo16 w32,
--                  0xE96C0000,
--                  0xE84C0008,
--                  0x7D6903A6,
--                  0xE96C0010,
--                  0x4E800420]
-+        in Right [ 0x3D800000 .|. hi16 w32,
-+                   0x618C0000 .|. lo16 w32,
-+                   0x7D8903A6, 0x4E800420 ]
- 
-     ArchPPC64LE ->
-         -- The ABI requires r12 to point to the function's entry point.
-diff --git a/m4/fptools.m4 b/m4/fptools.m4
-index 8c6c9b7..eb25c37 100644
---- a/m4/fptools.m4
-+++ b/m4/fptools.m4
-@@ -201,7 +201,7 @@ AC_DEFUN([FPTOOLS_SET_HASKELL_PLATFORM_VARS],
+             test -z "$2" || eval "$2=\"ArchPPC_64 ELF_V2\""
+--- a/m4/fptools_set_haskell_platform_vars.m4
++++ b/m4/fptools_set_haskell_platform_vars.m4
+@@ -15,7 +15,7 @@
              test -z "[$]2" || eval "[$]2=ArchPPC"
              ;;
          powerpc64)
--            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V1}\""
-+            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
+-            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 ELF_V1\""
++            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 ELF_V2\""
              ;;
          powerpc64le)
-             test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
+             test -z "[$]2" || eval "[$]2=\"ArchPPC_64 ELF_V2\""
 diff --git a/rts/AdjustorAsm.S b/rts/AdjustorAsm.S
 index 2795b83..63cfe91 100644
 --- a/rts/AdjustorAsm.S
 +++ b/rts/AdjustorAsm.S
 @@ -2,7 +2,7 @@
- 
+
  /* ******************************** PowerPC ******************************** */
- 
+
 -#if defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
 +#if defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
  #if !(defined(powerpc_HOST_ARCH) && defined(linux_HOST_OS))
@@ -109,21 +45,21 @@ index f43227a..927d44a 100644
 @@ -724,7 +724,7 @@ StgRunIsImplementedInAssembler(void)
     Everything is in assembler, so we don't have to deal with GCC...
     -------------------------------------------------------------------------- */
- 
+
 -#if defined(powerpc64_HOST_ARCH)
 +#if defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2)
  /* 64-bit PowerPC ELF ABI 1.9
   *
   * Stack frame organization (see Figure 3-17, ELF ABI 1.9, p 14)
 @@ -792,7 +792,7 @@ StgRunIsImplementedInAssembler(void)
- 
+
  #endif
- 
+
 -#if defined(powerpc64le_HOST_ARCH)
 +#if defined(powerpc64le_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF == 2))
  /* -----------------------------------------------------------------------------
     PowerPC 64 little endian architecture
- 
+
 diff --git a/rts/StgCRunAsm.S b/rts/StgCRunAsm.S
 index 60f1bf9..c6794d7 100644
 --- a/rts/StgCRunAsm.S
@@ -131,7 +67,7 @@ index 60f1bf9..c6794d7 100644
 @@ -5,7 +5,7 @@
   * then functions StgRun/StgReturn are implemented in file StgCRun.c */
  #if !defined(USE_MINIINTERPRETER)
- 
+
 -#if defined(powerpc64le_HOST_ARCH)
 +#if defined(powerpc64le_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF == 2))
  # if defined(linux_HOST_OS)
@@ -157,12 +93,11 @@ index 2e5d605..caef5d3 100644
 @@ -29,7 +29,7 @@ __asm__("obscure_ccall_ret_code:\n\t"
  extern void obscure_ccall_ret_code(void);
  #endif /* defined(linux_HOST_OS) */
- 
+
 -#if defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
 +#if defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
  #if !(defined(powerpc_HOST_ARCH) && defined(linux_HOST_OS))
- 
+
  /* !!! !!! WARNING: !!! !!!
--- 
+--
 2.35.1
-
diff --git a/srcpkgs/ghc/template b/srcpkgs/ghc/template
index bf76202f4098..c4808339cd29 100644
--- a/srcpkgs/ghc/template
+++ b/srcpkgs/ghc/template
@@ -1,7 +1,7 @@
 # Template file for 'ghc'
 pkgname=ghc
 # Keep this synchronized with http://www.stackage.org/lts
-version=9.0.2
+version=9.2.5
 revision=1
 build_style=gnu-configure
 hostmakedepends="automake docbook-xsl ghc-bin libxslt libnuma-devel
@@ -9,11 +9,11 @@ hostmakedepends="automake docbook-xsl ghc-bin libxslt libnuma-devel
 makedepends="libnuma-devel"
 depends="perl gcc libffi-devel gmp-devel libnuma-devel"
 short_desc="Glorious Haskell Compiler"
-maintainer="slotThe <soliditsallgood@mailbox.org>"
+maintainer="Tony Zorman <soliditsallgood@mailbox.org>"
 license="BSD-3-Clause"
 homepage="http://www.haskell.org/ghc/"
 distfiles="http://www.haskell.org/ghc/dist/${version%[!0-9]}/${pkgname}-${version%[!0-9]}-src.tar.xz"
-checksum=140e42b96346322d1a39eb17602bcdc76e292028ad4a69286b230bab188a9197
+checksum=0606797d1b38e2d88ee2243f38ec6b9a1aa93e9b578e95f0de9a9c0a4144021c
 nocross=yes # this is conditionally unset for cross bindist
 nodebug=yes # work around assembler error "Fatal error: duplicate .debug_line sections"
 _bindir="/usr/lib/${pkgname}-${version}/bin"

From 3d349a8a1192747ff14dd89e54fc0f7f19a991f5 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Fri, 18 Nov 2022 14:56:06 +0100
Subject: [PATCH 02/19] cabal-install: update to 3.8.1.0.

---
 srcpkgs/cabal-install/files/linux-9.0.2.json |  1 -
 srcpkgs/cabal-install/files/linux-9.2.5.json |  1 +
 srcpkgs/cabal-install/template               | 12 ++++++------
 3 files changed, 7 insertions(+), 7 deletions(-)
 delete mode 100644 srcpkgs/cabal-install/files/linux-9.0.2.json
 create mode 100644 srcpkgs/cabal-install/files/linux-9.2.5.json

diff --git a/srcpkgs/cabal-install/files/linux-9.0.2.json b/srcpkgs/cabal-install/files/linux-9.0.2.json
deleted file mode 100644
index f3cb6b4aeeb5..000000000000
--- a/srcpkgs/cabal-install/files/linux-9.0.2.json
+++ /dev/null
@@ -1 +0,0 @@
-{"builtin":[{"package":"rts","version":"1.0.2"},{"package":"ghc-prim","version":"0.7.0"},{"package":"ghc-bignum","version":"1.1"},{"package":"base","version":"4.15.1.0"},{"package":"array","version":"0.5.4.0"},{"package":"deepseq","version":"1.4.5.0"},{"package":"bytestring","version":"0.10.12.1"},{"package":"containers","version":"0.6.4.1"},{"package":"binary","version":"0.8.8.0"},{"package":"filepath","version":"1.4.2.1"},{"package":"time","version":"1.9.3"},{"package":"unix","version":"2.7.2.2"},{"package":"directory","version":"1.3.6.2"},{"package":"transformers","version":"0.5.6.2"},{"package":"mtl","version":"2.2.2"},{"package":"ghc-boot-th","version":"9.0.2"},{"package":"pretty","version":"1.1.3.6"},{"package":"template-haskell","version":"2.17.0.0"},{"package":"text","version":"1.2.5.0"},{"package":"parsec","version":"3.1.14.0"},{"package":"process","version":"1.6.13.2"},{"package":"stm","version":"2.5.0.0"}],"dependencies":[{"cabal_sha256":null,"flags":["-bundled-binary-generic"],"package":"Cabal","revision":null,"source":"local","src_sha256":null,"version":"3.6.3.0"},{"cabal_sha256":"714a55fd28d3e2533bd5b49e74f604ef8e5d7b06f249c8816f6c54aed431dcf1","flags":["-optimised-mixer"],"package":"splitmix","revision":0,"source":"hackage","src_sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","version":"0.1.0.4"},{"cabal_sha256":"8bee24dc0c985a90ee78d94c61f8aed21c49633686f0f1c14c5078d818ee43a2","flags":[],"package":"random","revision":0,"source":"hackage","src_sha256":"265c768fc5f2ca53cde6a87e706b4448cad474c3deece933c103f24453661457","version":"1.2.1"},{"cabal_sha256":"3a2beeafb220f9de706568a7e4a5b3c762cc4c9f25c94d7ef795b8c2d6a691d7","flags":["+integer-gmp","-random-initial-seed"],"package":"hashable","revision":1,"source":"hackage","src_sha256":"baaad82cd4271b197016bdbe76f22d5c3d3913fe38534cec7d817db9bae19886","version":"1.3.5.0"},{"cabal_sha256":"b83dec34a53520de84c6dd3dc7aae45d22409b46eb471c478b98108215a370f0","flags":["-bench"],"package":"async","revision":1,"source":"hackage","src_sha256":"484df85be0e76c4fed9376451e48e1d0c6e97952ce79735b72d54297e7e0a725","version":"2.2.4"},{"cabal_sha256":"037d70bb091c49f68726dde920f6a003b646835a86cdcb5b5ad58ad9af3207d9","flags":[],"package":"Cabal-syntax","revision":0,"source":"hackage","src_sha256":"ca25e5fc601397565fa857f1aa477740fac7f43d659e77c4d9b1485dca239251","version":"3.6.0.0"},{"cabal_sha256":"d8699f46b485f105eea9c7158f3d432ca578e6bbe5d68751184e9899a41d430d","flags":["-old-bytestring","-old-time"],"package":"tar","revision":4,"source":"hackage","src_sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","version":"0.5.1.1"},{"cabal_sha256":"e3d78b13db9512aeb106e44a334ab42b7aa48d26c097299084084cb8be5c5568","flags":["-devel"],"package":"network","revision":0,"source":"hackage","src_sha256":"7f7620fef1a1af3d3d6747f510e73223a5c600e7d7fd9ace073d1222bdc63d85","version":"3.1.2.7"},{"cabal_sha256":"a16dd922947a6877defe52c4c38d1ab48ed3f85a826930f5d1a568741d619993","flags":[],"package":"th-compat","revision":0,"source":"hackage","src_sha256":"6b5059caf6714f47da92953badf2f556119877e09708c14e206b3ae98b8681c6","version":"0.1.3"},{"cabal_sha256":"a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d","flags":[],"package":"network-uri","revision":0,"source":"hackage","src_sha256":"57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584","version":"2.6.4.1"},{"cabal_sha256":"6042643c15a0b43e522a6693f1e322f05000d519543a84149cb80aeffee34f71","flags":["-conduit10","-mtl1","+network-uri","-warn-as-error","-warp-tests"],"package":"HTTP","revision":1,"source":"hackage","src_sha256":"d6091c037871ac3d08d021c906206174567499d5a26a6cb804cf530cd590fe2d","version":"4000.3.16"},{"cabal_sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","flags":[],"package":"base16-bytestring","revision":0,"source":"hackage","src_sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","version":"1.0.2.0"},{"cabal_sha256":"50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8","flags":[],"package":"base64-bytestring","revision":0,"source":"hackage","src_sha256":"fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9","version":"1.2.1.0"},{"cabal_sha256":"188d0b5a0491e8b686b32d9b144c9287760ba333d2509bf3f17e3d846fbc2332","flags":["-exe","+use-cbits"],"package":"cryptohash-sha256","revision":0,"source":"hackage","src_sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","version":"0.11.102.1"},{"cabal_sha256":"ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42","flags":["-example"],"package":"echo","revision":0,"source":"hackage","src_sha256":"c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43","version":"0.1.4"},{"cabal_sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","flags":[],"package":"edit-distance","revision":1,"source":"hackage","src_sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","version":"0.2.2.1"},{"cabal_sha256":"24ac7b5f3d9fa3c2f70262b329f2a75f24e7fd829f88c189b388efa1bcd67eb2","flags":["+no-donna","+test-doctests","+test-hlint","+test-properties"],"package":"ed25519","revision":5,"source":"hackage","src_sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","version":"0.0.5.0"},{"cabal_sha256":"c084c043a40632d3cafcac50fb5eeff84d91edb070a54baa94945f1c976f97c0","flags":["+ofd-locking"],"package":"lukko","revision":2,"source":"hackage","src_sha256":"a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f","version":"0.1.1.3"},{"cabal_sha256":"262a93dbf370be59f4ee57f3b1a51b338bc2c309797daa37c14f2262ae61dae4","flags":["-bundled-c-zlib","-non-blocking-ffi","-pkg-config"],"package":"zlib","revision":1,"source":"hackage","src_sha256":"807f6bddf9cb3c517ce5757d991dde3c7e319953a22c86ee03d74534bd5abc88","version":"0.6.2.3"},{"cabal_sha256":"eb34c3e2fa39f9819293045c03e56148a7125573c1de265cdfe5d967f1d71c6e","flags":["+base48","-cabal-syntax","+lukko","-mtl21","-old-directory","+use-network-uri"],"package":"hackage-security","revision":1,"source":"hackage","src_sha256":"bf22cd16dde7d6b7130463f4d7324b64a2964d9ef3f523df97d7cb98544d64a8","version":"0.6.2.1"},{"cabal_sha256":"2561adac8ce373910948066debe090a22b336b129ba5af18c0332524d16e72ce","flags":[],"package":"regex-base","revision":0,"source":"hackage","src_sha256":"7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1","version":"0.94.0.2"},{"cabal_sha256":"b6421e5356766b0c0a78b6094ae2e3a6259b42c147b717283c03c1cb09163dca","flags":["-_regex-posix-clib"],"package":"regex-posix","revision":0,"source":"hackage","src_sha256":"c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c","version":"0.96.0.1"},{"cabal_sha256":"2088eb9368b920f80bbe4e3b03c3b8484090208f5c3b31645bd67a9ef7d26db4","flags":[],"package":"resolv","revision":4,"source":"hackage","src_sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","version":"0.1.2.0"},{"cabal_sha256":null,"flags":["-debug-conflict-sets","-debug-expensive-assertions","-debug-tracetree","+lukko","+native-dns"],"package":"cabal-install","revision":null,"source":"local","src_sha256":null,"version":"3.6.2.0"}]}
\ No newline at end of file
diff --git a/srcpkgs/cabal-install/files/linux-9.2.5.json b/srcpkgs/cabal-install/files/linux-9.2.5.json
new file mode 100644
index 000000000000..13fe257cbb30
--- /dev/null
+++ b/srcpkgs/cabal-install/files/linux-9.2.5.json
@@ -0,0 +1 @@
+{"builtin":[{"package":"rts","version":"1.0.2"},{"package":"ghc-prim","version":"0.8.0"},{"package":"ghc-bignum","version":"1.2"},{"package":"base","version":"4.16.4.0"},{"package":"array","version":"0.5.4.0"},{"package":"deepseq","version":"1.4.6.1"},{"package":"ghc-boot-th","version":"9.2.5"},{"package":"pretty","version":"1.1.3.6"},{"package":"template-haskell","version":"2.18.0.0"},{"package":"bytestring","version":"0.11.3.1"},{"package":"containers","version":"0.6.5.1"},{"package":"binary","version":"0.8.9.0"},{"package":"filepath","version":"1.4.2.2"},{"package":"time","version":"1.11.1.1"},{"package":"unix","version":"2.7.2.2"},{"package":"directory","version":"1.3.6.2"},{"package":"transformers","version":"0.5.6.2"},{"package":"mtl","version":"2.2.2"},{"package":"text","version":"1.2.5.0"},{"package":"parsec","version":"3.1.15.0"},{"package":"process","version":"1.6.16.0"},{"package":"stm","version":"2.5.0.2"},{"package":"exceptions","version":"0.10.4"}],"dependencies":[{"cabal_sha256":null,"flags":[],"package":"Cabal-syntax","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"},{"cabal_sha256":null,"flags":[],"package":"Cabal","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"},{"cabal_sha256":"804e2574bc7e32d08cbab91e47ee6287b4df7d50851d73f9e778f94a9a7814c7","flags":["-optimised-mixer"],"package":"splitmix","revision":1,"source":"hackage","src_sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","version":"0.1.0.4"},{"cabal_sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","flags":[],"package":"random","revision":0,"source":"hackage","src_sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","version":"1.2.1.1"},{"cabal_sha256":"50b2f002c68fe67730ee7a3cd8607486197dd99b084255005ad51ecd6970a41b","flags":["+containers","+integer-gmp","-random-initial-seed"],"package":"hashable","revision":0,"source":"hackage","src_sha256":"e1b305c280e66ad827edeaedd6933b9fc4174f626882877eab2a08344e665e87","version":"1.4.1.0"},{"cabal_sha256":"2b9409023536823233ce3134558565d01b3382e651fa54ac8cb8a99967e023c9","flags":["-bench"],"package":"async","revision":2,"source":"hackage","src_sha256":"484df85be0e76c4fed9376451e48e1d0c6e97952ce79735b72d54297e7e0a725","version":"2.2.4"},{"cabal_sha256":"bc14969ea4adfec6eee20264decf4a07c4002b38b2aa802d58d86b1a2cf7b895","flags":["-old-bytestring","-old-time"],"package":"tar","revision":5,"source":"hackage","src_sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","version":"0.5.1.1"},{"cabal_sha256":"e3d78b13db9512aeb106e44a334ab42b7aa48d26c097299084084cb8be5c5568","flags":["-devel"],"package":"network","revision":0,"source":"hackage","src_sha256":"7f7620fef1a1af3d3d6747f510e73223a5c600e7d7fd9ace073d1222bdc63d85","version":"3.1.2.7"},{"cabal_sha256":"6ca77c4e80b4e4109e30549c269631a9cc295c8fc2431ce4123972a5f80f7bfc","flags":[],"package":"th-compat","revision":0,"source":"hackage","src_sha256":"d8f97ac14ab47b6b8a7b0fdb4ff95426322ec56badd01652ac15da4a44d4bab8","version":"0.1.4"},{"cabal_sha256":"a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d","flags":[],"package":"network-uri","revision":0,"source":"hackage","src_sha256":"57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584","version":"2.6.4.1"},{"cabal_sha256":"b878d575c470bd1f72d37af6654d924ab2b9489d88de8a71bd74d9d5d726c013","flags":["-conduit10","+network-uri","-warn-as-error","-warp-tests"],"package":"HTTP","revision":1,"source":"hackage","src_sha256":"df31d8efec775124dab856d7177ddcba31be9f9e0836ebdab03d94392f2dd453","version":"4000.4.1"},{"cabal_sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","flags":[],"package":"base16-bytestring","revision":0,"source":"hackage","src_sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","version":"1.0.2.0"},{"cabal_sha256":"50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8","flags":[],"package":"base64-bytestring","revision":0,"source":"hackage","src_sha256":"fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9","version":"1.2.1.0"},{"cabal_sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","flags":[],"package":"edit-distance","revision":1,"source":"hackage","src_sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","version":"0.2.2.1"},{"cabal_sha256":null,"flags":["-debug-conflict-sets","-debug-expensive-assertions","-debug-tracetree"],"package":"cabal-install-solver","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"},{"cabal_sha256":"facd0c04925ef925ec05243471fd16055229fdf51f64db1a1049de0cc6c6dfc3","flags":["-exe","+use-cbits"],"package":"cryptohash-sha256","revision":1,"source":"hackage","src_sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","version":"0.11.102.1"},{"cabal_sha256":"ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42","flags":["-example"],"package":"echo","revision":0,"source":"hackage","src_sha256":"c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43","version":"0.1.4"},{"cabal_sha256":"885c9e2410e5d91a08b199897df0867fecedf818216d7329a2d43a512833dd63","flags":["+no-donna","+test-doctests","+test-hlint","+test-properties"],"package":"ed25519","revision":6,"source":"hackage","src_sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","version":"0.0.5.0"},{"cabal_sha256":"efd4c08c4df1ac3f423858a834c0e3b5b4909febda66a901d12a8e1d57bddaa8","flags":["+ofd-locking"],"package":"lukko","revision":3,"source":"hackage","src_sha256":"a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f","version":"0.1.1.3"},{"cabal_sha256":"8214a9d37580f17f8b675109578a5dbe6853559eef156e34dc2233f1123ace33","flags":["-bundled-c-zlib","-non-blocking-ffi","-pkg-config"],"package":"zlib","revision":0,"source":"hackage","src_sha256":"9eaa989ad4534438b5beb51c1d3a4c8f6a088fdff0b259a5394fbf39aaee04da","version":"0.6.3.0"},{"cabal_sha256":"1a6cf81a4871559ef5bc47b230278b9ad4bf44f1e4dbf77bdc8e07f6e7b8d005","flags":["+base48","+cabal-syntax","+lukko","-mtl21","-old-directory","+use-network-uri"],"package":"hackage-security","revision":1,"source":"hackage","src_sha256":"a833a31610220506557e96fb6e3e8b05a2e1db8e7ebc06e91bbb699ddde0b276","version":"0.6.2.2"},{"cabal_sha256":"4ff4425c710cddf440dfbac6cd52310bb6b23e17902390ff71c9fc7eaafc4fcc","flags":[],"package":"regex-base","revision":1,"source":"hackage","src_sha256":"7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1","version":"0.94.0.2"},{"cabal_sha256":"9dbba4b65a3bb6975d9740814be5593c6b2d2d6a0b3febc8ec940edb9a9bbdf4","flags":["-_regex-posix-clib"],"package":"regex-posix","revision":1,"source":"hackage","src_sha256":"c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c","version":"0.96.0.1"},{"cabal_sha256":"61e2d98ff634b8b4b3db467772420c0f9c79c2da9ddf3d2daeb2af2417f2c535","flags":[],"package":"resolv","revision":5,"source":"hackage","src_sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","version":"0.1.2.0"},{"cabal_sha256":"6e9b1b233af80cc0aa17ea858d2641ba146fb11cbcc5970a52649e89d77282e2","flags":[],"package":"safe-exceptions","revision":0,"source":"hackage","src_sha256":"91ce28d8f8a6efd31788d4827ed5cdcb9a546ad4053a86c56f7947c66a30b5bf","version":"0.1.7.3"},{"cabal_sha256":null,"flags":["+lukko","+native-dns"],"package":"cabal-install","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"}]}
\ No newline at end of file
diff --git a/srcpkgs/cabal-install/template b/srcpkgs/cabal-install/template
index b3ebc1bb15b9..9f9bd3afe8a2 100644
--- a/srcpkgs/cabal-install/template
+++ b/srcpkgs/cabal-install/template
@@ -1,7 +1,7 @@
 # Template file for 'cabal-install'
 pkgname=cabal-install
-version=3.6.3.0
-revision=2
+version=3.8.1.0
+revision=1
 hostmakedepends="ghc curl tar which"
 makedepends="gmp-devel libffi-devel zlib-devel python3"
 depends="ghc"
@@ -10,24 +10,24 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
 license="BSD-3-Clause"
 homepage="https://hackage.haskell.org/package/cabal-install"
 distfiles="https://github.com/haskell/cabal/archive/Cabal-v${version}.tar.gz"
-checksum=dea086acad6d9fe5fe22d838b95b4e988022e8519f38d41609119ea32bfb7466
+checksum=d4eff9c1fcc5212360afac8d97da83b3aff79365490a449e9c47d3988c14b6bc
 nopie_files="/usr/bin/cabal"
 nocross=yes
 
 post_extract() {
-	cp "${FILESDIR}/linux-9.0.2.json" bootstrap/
+	cp "${FILESDIR}/linux-9.2.5.json" bootstrap/
 }
 
 post_patch() {
 	case "${XBPS_TARGET_MACHINE}" in
 	i686*)
 		# https://github.com/haskell/cabal/issues/7313
-		vsed -i -e 's/+ofd-locking/-ofd-locking/' bootstrap/linux-9.0.2.json ;;
+		vsed -i -e 's/+ofd-locking/-ofd-locking/' bootstrap/linux-9.2.5.json ;;
 	esac
 }
 
 do_build() {
-	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-9.0.2.json
+	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-9.2.5.json
 }
 do_install() {
 	vbin _build/bin/cabal

From bfcde1a6bcb96b4aeb73a1b115d301425f323814 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Mon, 21 Nov 2022 18:38:18 +0100
Subject: [PATCH 03/19] stack: update to 2.9.3

+ Remove most outdated patches concerning version bounds and
  compatibility with GHC 9.0.2.
+ Adjust ppc patch.
+ New showStackVersion patch to build with GHC 9.2.5.
---
 srcpkgs/stack/patches/aeson.patch            |  46 ----
 srcpkgs/stack/patches/fsnotify.patch         |  16 --
 srcpkgs/stack/patches/ghc9.0.2.patch         | 212 -------------------
 srcpkgs/stack/patches/persistent.patch       |  46 ----
 srcpkgs/stack/patches/ppc.patch              |   3 +-
 srcpkgs/stack/patches/showStackVersion.patch |  10 +
 srcpkgs/stack/template                       |  10 +-
 7 files changed, 16 insertions(+), 327 deletions(-)
 delete mode 100644 srcpkgs/stack/patches/aeson.patch
 delete mode 100644 srcpkgs/stack/patches/fsnotify.patch
 delete mode 100644 srcpkgs/stack/patches/ghc9.0.2.patch
 delete mode 100644 srcpkgs/stack/patches/persistent.patch
 create mode 100644 srcpkgs/stack/patches/showStackVersion.patch

diff --git a/srcpkgs/stack/patches/aeson.patch b/srcpkgs/stack/patches/aeson.patch
deleted file mode 100644
index 68f267c30cc8..000000000000
--- a/srcpkgs/stack/patches/aeson.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-commit 09e233ed73aa3335642f97c080ef27e42047c527
-Author: q66 <daniel@octaforge.org>
-Date:   Fri Mar 11 04:37:15 2022 +0100
-
-    constrain aeson to prevent build failures
-
-diff --git a/stack.cabal b/stack.cabal
-index dba5bf0..0195f2c 100644
---- a/stack.cabal
-+++ b/stack.cabal
-@@ -231,7 +231,7 @@ library
- 
-     build-depends:
-         Cabal >=3.2.1.0,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
-@@ -357,7 +357,7 @@ executable stack
- 
-     build-depends:
-         Cabal >=3.2.1.0,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
-@@ -485,7 +485,7 @@ executable stack-integration-test
- 
-     build-depends:
-         Cabal >=3.2.1.0,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
-@@ -621,7 +621,7 @@ test-suite stack-test
-     build-depends:
-         Cabal >=3.2.1.0,
-         QuickCheck >=2.14.2,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
diff --git a/srcpkgs/stack/patches/fsnotify.patch b/srcpkgs/stack/patches/fsnotify.patch
deleted file mode 100644
index f82fd8f73004..000000000000
--- a/srcpkgs/stack/patches/fsnotify.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-src/Stack/FileWatch.hs:29:49: error: Not in scope: ‘confUsePolling’
-   |
-29 | fileWatchPoll = fileWatchConf $ defaultConfig { confUsePolling = True }
-   |                                                 ^^^^^^^^^^^^^^
-
---- a/stack.cabal
-+++ b/stack.cabal
-@@ -256,7 +256,7 @@ library
-         file-embed >=0.0.14.0,
-         filelock >=0.1.1.5,
-         filepath >=1.4.2.1,
--        fsnotify >=0.3.0.1,
-+        fsnotify >=0.3.0.1 && <0.4.0.0,
-         generic-deriving >=1.13.1,
-         hackage-security >=0.6.0.1,
-         hashable >=1.3.0.0,
diff --git a/srcpkgs/stack/patches/ghc9.0.2.patch b/srcpkgs/stack/patches/ghc9.0.2.patch
deleted file mode 100644
index bdd77de58c6b..000000000000
--- a/srcpkgs/stack/patches/ghc9.0.2.patch
+++ /dev/null
@@ -1,212 +0,0 @@
-From cb7e56842a25f93142545fad21306a7c1750fbbf Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:26:22 -0700
-Subject: [PATCH 1/6] Use Cabal 3.4.0.0
-
----
- stack.yaml | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/stack.yaml b/stack.yaml
-index 005bd19f4..9472509be 100644
---- a/stack.yaml
-+++ b/stack.yaml
-@@ -20,6 +20,9 @@ flags:
- ghc-options:
-    "$locals": -fhide-source-paths
-
-+extra-deps:
-+- Cabal-3.4.0.0
-+
- drop-packages:
- # See https://github.com/commercialhaskell/stack/pull/4712
- - cabal-install
-
-From 11e11ab0edeba033b40a7fc62434be58dea82ce2 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:40:56 -0700
-Subject: [PATCH 2/6] Fix Flag => PackageFlag
-
----
- src/Stack/BuildPlan.hs | 2 +-
- src/Stack/Package.hs   | 8 ++++----
- 2 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/src/Stack/BuildPlan.hs b/src/Stack/BuildPlan.hs
-index 36f82236e..c5c80efc6 100644
---- a/src/Stack/BuildPlan.hs
-+++ b/src/Stack/BuildPlan.hs
-@@ -224,7 +224,7 @@ selectPackageBuildPlan platform compiler pool gpd =
-     flagCombinations :: NonEmpty [(FlagName, Bool)]
-     flagCombinations = mapM getOptions (genPackageFlags gpd)
-       where
--        getOptions :: C.Flag -> NonEmpty (FlagName, Bool)
-+        getOptions :: C.PackageFlag -> NonEmpty (FlagName, Bool)
-         getOptions f
-             | flagManual f = (fname, flagDefault f) :| []
-             | flagDefault f = (fname, True) :| [(fname, False)]
-diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs
-index 4db50d2a4..d9bca7af5 100644
---- a/src/Stack/Package.hs
-+++ b/src/Stack/Package.hs
-@@ -128,7 +128,7 @@ resolvePackage packageConfig gpkg =
-         (resolvePackageDescription packageConfig gpkg)
-
- packageFromPackageDescription :: PackageConfig
--                              -> [D.Flag]
-+                              -> [PackageFlag]
-                               -> PackageDescriptionPair
-                               -> Package
- packageFromPackageDescription packageConfig pkgFlags (PackageDescriptionPair pkgNoMod pkg) =
-@@ -935,9 +935,9 @@ resolvePackageDescription packageConfig (GenericPackageDescription desc defaultF
- -- | Make a map from a list of flag specifications.
- --
- -- What is @flagManual@ for?
--flagMap :: [Flag] -> Map FlagName Bool
-+flagMap :: [PackageFlag] -> Map FlagName Bool
- flagMap = M.fromList . map pair
--  where pair :: Flag -> (FlagName, Bool)
-+  where pair :: PackageFlag -> (FlagName, Bool)
-         pair = flagName &&& flagDefault
-
- data ResolveConditions = ResolveConditions
-@@ -986,7 +986,7 @@ resolveConditions rc addDeps (CondNode lib deps cs) = basic <> children
-                   case v of
-                     OS os -> os == rcOS rc
-                     Arch arch -> arch == rcArch rc
--                    Flag flag ->
-+                    PackageFlag flag ->
-                       fromMaybe False $ M.lookup flag (rcFlags rc)
-                       -- NOTE:  ^^^^^ This should never happen, as all flags
-                       -- which are used must be declared. Defaulting to
-
-From 8facd731ec3f2bbc15a083750740929167b33bb2 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:55:30 -0700
-Subject: [PATCH 3/6] Fix CabalSpecVersion
-
----
- src/Stack/Package.hs | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs
-index d9bca7af5..fca039140 100644
---- a/src/Stack/Package.hs
-+++ b/src/Stack/Package.hs
-@@ -32,6 +32,7 @@ import           Data.List (find, isPrefixOf, unzip)
- import qualified Data.Map.Strict as M
- import qualified Data.Set as S
- import qualified Data.Text as T
-+import           Distribution.CabalSpecVersion (CabalSpecVersion, cabalSpecMinimumLibraryVersion)
- import           Distribution.Compiler
- import           Distribution.ModuleName (ModuleName)
- import qualified Distribution.ModuleName as Cabal
-@@ -190,7 +191,7 @@ packageFromPackageDescription packageConfig pkgFlags (PackageDescriptionPair pkg
-           (library pkg)
-     , packageBuildType = buildType pkg
-     , packageSetupDeps = msetupDeps
--    , packageCabalSpec = either orLaterVersion id $ specVersionRaw pkg
-+    , packageCabalSpec = orLaterVersion $ mkVersion $ cabalSpecMinimumLibraryVersion $ specVersion pkg
-     }
-   where
-     extraLibNames = S.union subLibNames foreignLibNames
-@@ -696,7 +697,7 @@ packageDescModulesAndFiles pkg = do
-
- -- | Resolve globbing of files (e.g. data files) to absolute paths.
- resolveGlobFiles
--  :: Version -- ^ cabal file version
-+  :: CabalSpecVersion -- ^ cabal file version
-   -> [String]
-   -> RIO Ctx (Set (Path Abs File))
- resolveGlobFiles cabalFileVersion =
-
-From 004f14652409b7d0645215d354b2e599eb7f76bc Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:55:40 -0700
-Subject: [PATCH 4/6] Fix GenericPackageDescription
-
----
- src/Stack/Build.hs   | 2 +-
- src/Stack/Package.hs | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/Stack/Build.hs b/src/Stack/Build.hs
-index 23b9a9719..856903bed 100644
---- a/src/Stack/Build.hs
-+++ b/src/Stack/Build.hs
-@@ -358,7 +358,7 @@ checkComponentsBuildable lps =
- checkSubLibraryDependencies :: HasLogFunc env => [ProjectPackage] -> RIO env ()
- checkSubLibraryDependencies proj = do
-   forM_ proj $ \p -> do
--    C.GenericPackageDescription _ _ lib subLibs foreignLibs exes tests benches <- liftIO $ cpGPD . ppCommon $ p
-+    C.GenericPackageDescription _ _ _ lib subLibs foreignLibs exes tests benches <- liftIO $ cpGPD . ppCommon $ p
-
-     let dependencies = concatMap getDeps subLibs <>
-                        concatMap getDeps foreignLibs <>
-diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs
-index fca039140..39aad4d2f 100644
---- a/src/Stack/Package.hs
-+++ b/src/Stack/Package.hs
-@@ -863,7 +863,7 @@ data PackageDescriptionPair = PackageDescriptionPair
- resolvePackageDescription :: PackageConfig
-                           -> GenericPackageDescription
-                           -> PackageDescriptionPair
--resolvePackageDescription packageConfig (GenericPackageDescription desc defaultFlags mlib subLibs foreignLibs' exes tests benches) =
-+resolvePackageDescription packageConfig (GenericPackageDescription desc _ defaultFlags mlib subLibs foreignLibs' exes tests benches) =
-     PackageDescriptionPair
-       { pdpOrigBuildable = go False
-       , pdpModifiedBuildable = go True
-
-From 820797b566ef981936907f4d19658259d4a635a8 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 17:01:01 -0700
-Subject: [PATCH 5/6] Fix generatePackageVersionMacros
-
----
- src/Stack/Build/Execute.hs | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/Stack/Build/Execute.hs b/src/Stack/Build/Execute.hs
-index 1e381dd21..aedd7fee5 100644
---- a/src/Stack/Build/Execute.hs
-+++ b/src/Stack/Build/Execute.hs
-@@ -1214,7 +1214,7 @@ withSingleContext ActionContext {..} ee@ExecuteEnv {..} task@Task {..} allDeps m
-                             let macroDeps = mapMaybe snd matchedDeps
-                                 cppMacrosFile = setupDir </> relFileSetupMacrosH
-                                 cppArgs = ["-optP-include", "-optP" ++ toFilePath cppMacrosFile]
--                            writeBinaryFileAtomic cppMacrosFile (encodeUtf8Builder (T.pack (C.generatePackageVersionMacros macroDeps)))
-+                            writeBinaryFileAtomic cppMacrosFile (encodeUtf8Builder (T.pack (C.generatePackageVersionMacros (packageVersion package) macroDeps)))
-                             return (packageDBArgs ++ depsArgs ++ cppArgs)
-
-                         -- This branch is usually taken for builds, and
-
-From 336ab515e30f03c274f89ebe1cbc6aa1e597c2a4 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 17:04:16 -0700
-Subject: [PATCH 6/6] Fix ModuleReexport
-
----
- src/Stack/Script.hs | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/Stack/Script.hs b/src/Stack/Script.hs
-index 6bb67c049..9ebd2173d 100644
---- a/src/Stack/Script.hs
-+++ b/src/Stack/Script.hs
-@@ -18,6 +18,7 @@ import           Distribution.Compiler      (CompilerFlavor (..))
- import           Distribution.ModuleName    (ModuleName)
- import qualified Distribution.PackageDescription as PD
- import qualified Distribution.Types.CondTree as C
-+import qualified Distribution.Types.ModuleReexport as ModuleReexport
- import           Distribution.Types.PackageName (mkPackageName)
- import           Distribution.Types.VersionRange (withinRange)
- import           Distribution.System        (Platform (..))
-@@ -280,7 +281,7 @@ allExposedModules gpd = do
-       mlibrary = snd . C.simplifyCondTree checkCond <$> PD.condLibrary gpd
-   pure $ case mlibrary  of
-     Just lib -> PD.exposedModules lib ++
--                map PD.moduleReexportName (PD.reexportedModules lib)
-+                map ModuleReexport.moduleReexportName (PD.reexportedModules lib)
-     Nothing  -> mempty
-
- -- | The Stackage project introduced the concept of hidden packages,
diff --git a/srcpkgs/stack/patches/persistent.patch b/srcpkgs/stack/patches/persistent.patch
deleted file mode 100644
index cf462d7b80c2..000000000000
--- a/srcpkgs/stack/patches/persistent.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-commit 188d7ece06ee06ed6ccaf0df0c46285bd43898f4
-Author: q66 <daniel@octaforge.org>
-Date:   Thu Apr 28 05:02:09 2022 +0200
-
-    constrain persistent to fix build
-
-diff --git a/stack.cabal b/stack.cabal
-index dba5bf0..e221321 100644
---- a/stack.cabal
-+++ b/stack.cabal
-@@ -281,7 +281,7 @@ library
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
-@@ -407,7 +407,7 @@ executable stack
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
-@@ -537,7 +537,7 @@ executable stack-integration-test
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
-@@ -672,7 +672,7 @@ test-suite stack-test
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
diff --git a/srcpkgs/stack/patches/ppc.patch b/srcpkgs/stack/patches/ppc.patch
index fc4c540f0f92..4ab025e7663c 100644
--- a/srcpkgs/stack/patches/ppc.patch
+++ b/srcpkgs/stack/patches/ppc.patch
@@ -22,11 +22,10 @@
 
 --- a/stack.cabal
 +++ b/stack.cabal
-@@ -246,6 +246,7 @@
+@@ -246,4 +246,5 @@
          conduit >=1.3.4.1,
          conduit-extra >=1.3.5,
          containers >=0.6.2.1,
 +        cpu >=0.1.2,
          cryptonite >=0.27,
          cryptonite-conduit >=0.2.2,
-         deepseq >=1.4.4.0,
diff --git a/srcpkgs/stack/patches/showStackVersion.patch b/srcpkgs/stack/patches/showStackVersion.patch
new file mode 100644
index 000000000000..454e0c6dfe53
--- /dev/null
+++ b/srcpkgs/stack/patches/showStackVersion.patch
@@ -0,0 +1,10 @@
+--- a/src/main/BuildInfo.hs
++++ b/src/main/BuildInfo.hs
+@@ -32,5 +32,6 @@
+ #endif
+ import           Stack.Prelude
+ import qualified Paths_stack as Meta
++import Stack.Types.Version (showStackVersion)
+
+ versionString' :: String
+ #ifdef USE_GIT_INFO
diff --git a/srcpkgs/stack/template b/srcpkgs/stack/template
index b6c1f1578ed9..c76f90ff89ed 100644
--- a/srcpkgs/stack/template
+++ b/srcpkgs/stack/template
@@ -1,8 +1,8 @@
 # Template file for 'stack'
 pkgname=stack
-version=2.7.5
-revision=2
-_stackage="lts-19.0"
+version=2.9.3
+revision=1
+_stackage="lts-20.0"
 hostmakedepends="cabal-install pkg-config unzip"
 makedepends="zlib-devel pcre-devel"
 depends="git gmp-devel iana-etc"
@@ -12,8 +12,8 @@ license="BSD-3-Clause"
 homepage="https://haskellstack.org"
 distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz
  https://www.stackage.org/${_stackage}/cabal.config>cabal.config-${_stackage}"
-checksum="9ddd44c2a62e9404194d69e7dc1c94e707910620316b66d6ac0b3201a8f37e80
- e1de952bb6f62573e5c211df99ce6bb684c4cae7845f16c347ce9aa503d6374f"
+checksum="c4700cb227dd624249db2e649445f3df3d558c8a5ab2c98b5c7bf8545901f2dc
+ addcb336500f35b565403e72b0b3793fee74313439eacfb79e0c2121d88bc8ea"
 skip_extraction="cabal.config-${_stackage}"
 nocross=yes
 nopie_files="/usr/bin/stack"

From 43c22912fcbee45621319d96abf8603e2d5f6339 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Tue, 27 Dec 2022 15:29:21 +0100
Subject: [PATCH 04/19] hlint: update to 3.4.1

---
 srcpkgs/hlint/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/hlint/template b/srcpkgs/hlint/template
index 0109be25805f..c5efc617393c 100644
--- a/srcpkgs/hlint/template
+++ b/srcpkgs/hlint/template
@@ -1,16 +1,16 @@
 # Template file for 'hlint'
 pkgname=hlint
-version=3.3.6
+version=3.4.1
 revision=1
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 makedepends="ncurses-devel"
 short_desc="Haskell source code suggestions"
 maintainer="Inokentiy Babushkin <twk@twki.de>"
 license="BSD-3-Clause"
 homepage="https://github.com/ndmitchell/hlint"
 distfiles="https://github.com/ndmitchell/${pkgname}/archive/v${version}.tar.gz"
-checksum=7d536c03f77a0c259efb2b00b525ef34578ca8a4a95ccb412708e8c7172e2e6a
+checksum=667b1ee82ce47706e8206c4994add2483b0bf21c67861d4652b2b5aa90299dc5
 nocross=yes # Can't yet cross compile Haskell
 nopie_files="/usr/bin/hlint"
 

From bef4ba87d4872f0785d1d546613599791b2fa456 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Tue, 27 Dec 2022 16:19:12 +0100
Subject: [PATCH 05/19] hoogle: bump for stackage lts-20.0

---
 srcpkgs/hoogle/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/hoogle/template b/srcpkgs/hoogle/template
index dc487cab4017..00de03e81eef 100644
--- a/srcpkgs/hoogle/template
+++ b/srcpkgs/hoogle/template
@@ -1,9 +1,9 @@
 # Template file for 'hoogle'
 pkgname=hoogle
 version=5.0.18.3
-revision=1
+revision=2
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 makedepends="zlib-devel"
 short_desc="Haskell API search engine"
 maintainer="Inokentiy Babushkin <twk@twki.de>"

From 0ff10d252f1074acd9450926e1bba8eded586310 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Tue, 27 Dec 2022 17:38:42 +0100
Subject: [PATCH 06/19] pandoc: update to 2.19.2

+ Update pandoc-crossref and it's associated cabal file.
+ Bump lua dependency.
+ Remove roman-numerals dependency, as pandoc-crossref now has its own
  implementation of this.
---
 srcpkgs/pandoc/files/pandoc-crossref.cabal | 139 +++++++++++++++++----
 srcpkgs/pandoc/template                    |  17 ++-
 2 files changed, 121 insertions(+), 35 deletions(-)

diff --git a/srcpkgs/pandoc/files/pandoc-crossref.cabal b/srcpkgs/pandoc/files/pandoc-crossref.cabal
index 7aacc47278f3..850405534565 100644
--- a/srcpkgs/pandoc/files/pandoc-crossref.cabal
+++ b/srcpkgs/pandoc/files/pandoc-crossref.cabal
@@ -1,13 +1,9 @@
-cabal-version: 2.0
-
--- This file has been generated from package.yaml by hpack version 0.34.6.
+-- This file has been generated from package.yaml by hpack version 0.34.4.
 --
 -- see: https://github.com/sol/hpack
---
--- hash: 20655cd6263e9fe7e5737ee81b093c8c6f5eae67e260ddd3a821ac6ef5e35e69
 
 name:           pandoc-crossref
-version:        0.3.13.0
+version:        0.3.14.0
 synopsis:       Pandoc filter for cross-references
 description:    pandoc-crossref is a pandoc filter for numbering figures, equations, tables and cross-references to them.
 category:       Text
@@ -18,6 +14,99 @@ maintainer:     root@livid.pp.ru
 license:        GPL-2
 license-file:   LICENSE
 build-type:     Simple
+extra-source-files:
+    test/demo-chapters.inc
+    test/demo.inc
+    CHANGELOG.md
+    licenses/LICENSE.roman-numerals
+data-files:
+    docs/demo/demo.md
+    docs/index.md
+    test/m2m/chapDelim/expect.md
+    test/m2m/chapDelim/expect.tex
+    test/m2m/chapDelim/input.md
+    test/m2m/delim/expect.md
+    test/m2m/delim/expect.tex
+    test/m2m/delim/input.md
+    test/m2m/emptyChapterLabels/expect.md
+    test/m2m/emptyChapterLabels/expect.tex
+    test/m2m/emptyChapterLabels/input.md
+    test/m2m/eqnBlockTemplate/expect.md
+    test/m2m/eqnBlockTemplate/expect.tex
+    test/m2m/eqnBlockTemplate/input.md
+    test/m2m/eqnInlineTemplate/expect.md
+    test/m2m/eqnInlineTemplate/expect.tex
+    test/m2m/eqnInlineTemplate/input.md
+    test/m2m/equationNumberLaTeX/expect.md
+    test/m2m/equationNumberLaTeX/expect.tex
+    test/m2m/equationNumberLaTeX/input.md
+    test/m2m/equations-auto/expect.md
+    test/m2m/equations-auto/expect.tex
+    test/m2m/equations-auto/input.md
+    test/m2m/equations-tables-auto/expect.md
+    test/m2m/equations-tables-auto/expect.tex
+    test/m2m/equations-tables-auto/input.md
+    test/m2m/equations-tables/expect.md
+    test/m2m/equations-tables/expect.tex
+    test/m2m/equations-tables/input.md
+    test/m2m/equations/expect.md
+    test/m2m/equations/expect.tex
+    test/m2m/equations/input.md
+    test/m2m/label-precedence/expect.md
+    test/m2m/label-precedence/expect.tex
+    test/m2m/label-precedence/input.md
+    test/m2m/links-names/expect.md
+    test/m2m/links-names/expect.tex
+    test/m2m/links-names/input.md
+    test/m2m/links/expect.md
+    test/m2m/links/expect.tex
+    test/m2m/links/input.md
+    test/m2m/listing-captions-ids/expect.md
+    test/m2m/listing-captions-ids/expect.tex
+    test/m2m/listing-captions-ids/input.md
+    test/m2m/listings-code-block-caption-278/expect.md
+    test/m2m/listings-code-block-caption-278/expect.tex
+    test/m2m/listings-code-block-caption-278/input.md
+    test/m2m/listOfTemplates-buillet-list/expect.md
+    test/m2m/listOfTemplates-buillet-list/expect.tex
+    test/m2m/listOfTemplates-buillet-list/input.md
+    test/m2m/listOfTemplates-ord-list/expect.md
+    test/m2m/listOfTemplates-ord-list/expect.tex
+    test/m2m/listOfTemplates-ord-list/input.md
+    test/m2m/listOfTemplates/expect.md
+    test/m2m/listOfTemplates/expect.tex
+    test/m2m/listOfTemplates/input.md
+    test/m2m/loxItemTitle/expect.md
+    test/m2m/loxItemTitle/expect.tex
+    test/m2m/loxItemTitle/input.md
+    test/m2m/multiple-eqn-same-para/expect.md
+    test/m2m/multiple-eqn-same-para/expect.tex
+    test/m2m/multiple-eqn-same-para/input.md
+    test/m2m/secLabels/expect.md
+    test/m2m/secLabels/expect.tex
+    test/m2m/secLabels/input.md
+    test/m2m/secLevelLabels/expect.md
+    test/m2m/secLevelLabels/expect.tex
+    test/m2m/secLevelLabels/input.md
+    test/m2m/section-template/expect.md
+    test/m2m/section-template/expect.tex
+    test/m2m/section-template/input.md
+    test/m2m/setLabelAttribute/expect.md
+    test/m2m/setLabelAttribute/expect.tex
+    test/m2m/setLabelAttribute/input.md
+    test/m2m/subfigures-ccsDelim/expect.md
+    test/m2m/subfigures-ccsDelim/expect.tex
+    test/m2m/subfigures-ccsDelim/input.md
+    test/m2m/subfigures-grid/expect.md
+    test/m2m/subfigures-grid/expect.tex
+    test/m2m/subfigures-grid/input.md
+    test/m2m/subfigures/expect.md
+    test/m2m/subfigures/expect.tex
+    test/m2m/subfigures/input.md
+    test/m2m/titlesInRefs/expect.md
+    test/m2m/titlesInRefs/expect.tex
+    test/m2m/titlesInRefs/input.md
+cabal-version: 1.12
 
 source-repository head
   type: git
@@ -32,6 +121,7 @@ library
   exposed-modules:
       Text.Pandoc.CrossRef
   other-modules:
+      Text.Numeral.Roman
       Text.Pandoc.CrossRef.References
       Text.Pandoc.CrossRef.References.Blocks
       Text.Pandoc.CrossRef.References.List
@@ -60,13 +150,12 @@ library
     , microlens >=0.4.12.0 && <0.5.0.0
     , microlens-mtl >=0.2.0.1 && <0.3.0.0
     , microlens-th >=0.4.3.10 && <0.5.0.0
-    , mtl >=1.1 && <2.3
-    , pandoc >=2.10 && <2.18
-    , pandoc-types >=1.21 && <1.23
-    , roman-numerals ==0.5.*
+    , mtl >=1.1 && <2.4
+    , pandoc >=2.18 && <2.20
+    , pandoc-types >=1.22.2 && <1.23
     , syb >=0.4 && <0.8
     , template-haskell >=2.7.0.0 && <3.0.0.0
-    , text >=1.2.2 && <1.3
+    , text >=1.2.2 && <2.1
     , utility-ht >=0.0.11 && <0.1.0
   default-language: Haskell2010
 
@@ -82,13 +171,13 @@ executable pandoc-crossref
     , deepseq ==1.4.*
     , gitrev >=1.3.1 && <1.4
     , open-browser ==0.2.*
-    , optparse-applicative >=0.13 && <0.17
-    , pandoc >=2.10 && <2.18
+    , optparse-applicative >=0.13 && <0.18
+    , pandoc >=2.18 && <2.20
     , pandoc-crossref
-    , pandoc-types >=1.21 && <1.23
+    , pandoc-types >=1.22.2 && <1.23
     , template-haskell >=2.7.0.0 && <3.0.0.0
     , temporary >=1.2 && <1.4
-    , text >=1.2.2 && <1.3
+    , text >=1.2.2 && <2.1
   default-language: Haskell2010
 
 test-suite test-integrative
@@ -102,10 +191,10 @@ test-suite test-integrative
     , directory >=1 && <1.4
     , filepath >=1.1 && <1.5
     , hspec >=2.4.4 && <3
-    , pandoc >=2.10 && <2.18
+    , pandoc >=2.18 && <2.20
     , pandoc-crossref
-    , pandoc-types >=1.21 && <1.23
-    , text >=1.2.2 && <1.3
+    , pandoc-types >=1.22.2 && <1.23
+    , text >=1.2.2 && <2.1
   if flag(enable_flaky_tests)
     cpp-options: -DFLAKY
   default-language: Haskell2010
@@ -128,10 +217,10 @@ test-suite test-pandoc-crossref
     , hspec >=2.4.4 && <3
     , microlens >=0.4.12.0 && <0.5.0.0
     , mtl >=1.1 && <2.3
-    , pandoc >=2.10 && <2.18
+    , pandoc >=2.18 && <2.20
     , pandoc-crossref
-    , pandoc-types >=1.21 && <1.23
-    , text >=1.2.2 && <1.3
+    , pandoc-types >=1.22.2 && <1.23
+    , text >=1.2.2 && <2.1
   if flag(enable_flaky_tests)
     cpp-options: -DFLAKY
   default-language: Haskell2010
@@ -146,9 +235,9 @@ benchmark simple
   ghc-options: -Wall -fno-warn-unused-do-bind -threaded
   build-depends:
       base >=4.11 && <5
-    , criterion >=1.5.9.0 && <1.6
-    , pandoc >=2.10 && <2.18
+    , criterion >=1.5.9.0 && <1.7
+    , pandoc >=2.18 && <2.20
     , pandoc-crossref
-    , pandoc-types >=1.21 && <1.23
-    , text >=1.2.2 && <1.3
+    , pandoc-types >=1.22.2 && <1.23
+    , text >=1.2.2 && <2.1
   default-language: Haskell2010
diff --git a/srcpkgs/pandoc/template b/srcpkgs/pandoc/template
index 9bdf32ef3c53..0ce941c6fcc5 100644
--- a/srcpkgs/pandoc/template
+++ b/srcpkgs/pandoc/template
@@ -1,20 +1,19 @@
 # Template file for 'pandoc'
 pkgname=pandoc
 # Keep in sync with http://www.stackage.org/lts
-version=2.17.1.1
+version=2.19.2
 revision=1
 _sidenote_version=0.22.1.0
 _monad_gen_version=0.3.0.1
-_crossref_version=0.3.12.2
-_roman_numerals_version=0.5.1.5
+_crossref_version=0.3.14.0
 create_wrksrc=yes
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 make_build_args="
  --flag pandoc:embed_data_files
  --flag=lua:pkg-config"
 hostmakedepends="pkg-config unzip wget"
-makedepends="zlib-devel lua53-devel tar"
+makedepends="zlib-devel lua54-devel tar"
 short_desc="Universal converter between markup formats"
 maintainer="slotThe <soliditsallgood@mailbox.org>"
 license="GPL-2.0-or-later, BSD-3-Clause"
@@ -22,13 +21,11 @@ homepage="http://johnmacfarlane.net/pandoc/"
 distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz
  https://hackage.haskell.org/package/${pkgname}-sidenote-${_sidenote_version}/${pkgname}-sidenote-${_sidenote_version}.tar.gz
  https://hackage.haskell.org/package/monad-gen-${_monad_gen_version}/monad-gen-${_monad_gen_version}.tar.gz
- https://hackage.haskell.org/package/${pkgname}-crossref-${_crossref_version}/${pkgname}-crossref-${_crossref_version}.tar.gz
- https://hackage.haskell.org/package/roman-numerals-${_roman_numerals_version}/roman-numerals-${_roman_numerals_version}.tar.gz"
-checksum="649ec528d1413130c5ce304b826ff473b3696269eea8834d908589e775bd1ad1
+ https://hackage.haskell.org/package/${pkgname}-crossref-${_crossref_version}/${pkgname}-crossref-${_crossref_version}.tar.gz"
+checksum="36e83694c36a5af35a4442c4d5abd4273289d9d309793466f59c1632e87d4245
  c39dd7343b9cb4dc5b1c91c9e47c3d357874e9e1a30b8d377bbea0b1d50323b2
  be8485023fce236b5b915f2f6074f7b0470a2040f84cdd137c5227f1b4c98465
- 94540325c9c98ae4d5199c634bf402ffa41e3c5b020d7207daef90fd9e224fb4
- b9c7195b69b1662a286d2c28a55fafdcb693c522ba5eb54a11b1d0a4e92eaa81"
+ 06d163e2cec3f285919295c41a0580f203bb157d05eb06a494dbc093cbefa5b8"
 subpackages="
  pandoc-sidenote
  pandoc-crossref"

From 64f9e27c94218c3f8b4ac7a3091dabe797feb3d7 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 08:32:36 +0100
Subject: [PATCH 07/19] shellcheck: bump for stackage lts-20.0

---
 srcpkgs/shellcheck/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/shellcheck/template b/srcpkgs/shellcheck/template
index e85667f66918..c06b88603109 100644
--- a/srcpkgs/shellcheck/template
+++ b/srcpkgs/shellcheck/template
@@ -1,9 +1,9 @@
 # Template file for 'shellcheck'
 pkgname=shellcheck
 version=0.9.0
-revision=1
+revision=2
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 hostmakedepends="pandoc"
 short_desc="Static analysis tool for shell scripts"
 maintainer="Diogo Leal <diogo@diogoleal.com>"

From b72f37ea6631b90f2da8c80353754274e5de9dfb Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 08:36:43 +0100
Subject: [PATCH 08/19] New package: greenclip-4.2

Co-authored-by: KawaiiAmber <japaneselearning101@gmail.com>
---
 srcpkgs/greenclip/files/stack.yaml | 12 ++++++++++++
 srcpkgs/greenclip/template         | 19 +++++++++++++++++++
 2 files changed, 31 insertions(+)
 create mode 100644 srcpkgs/greenclip/files/stack.yaml
 create mode 100644 srcpkgs/greenclip/template

diff --git a/srcpkgs/greenclip/files/stack.yaml b/srcpkgs/greenclip/files/stack.yaml
new file mode 100644
index 000000000000..86f4b6fa7ed2
--- /dev/null
+++ b/srcpkgs/greenclip/files/stack.yaml
@@ -0,0 +1,12 @@
+resolver: lts-20.0
+
+packages:
+- '.'
+
+extra-deps:
+- 'wordexp-0.2.2'
+- 'protolude-0.3.2'
+- 'tomland-1.3.3.2'
+- 'validation-selective-0.1.0.2'
+
+allow-newer: true
diff --git a/srcpkgs/greenclip/template b/srcpkgs/greenclip/template
new file mode 100644
index 000000000000..c048afe39e01
--- /dev/null
+++ b/srcpkgs/greenclip/template
@@ -0,0 +1,19 @@
+# Template file for 'greenclip'
+pkgname=greenclip
+version=4.2
+revision=1
+build_style=haskell-stack
+hostmakedepends="pkg-config"
+makedepends="libX11-devel libXinerama-devel libXrandr-devel libXScrnSaver-devel"
+short_desc="Simple clipboard manager to be integrated with rofi"
+maintainer="KawaiiAmber <japaneselearning101@gmail.com>"
+license="BSD-3-Clause"
+homepage="https://github.com/erebe/greenclip"
+distfiles="${homepage}/archive/refs/tags/v${version}.tar.gz"
+checksum=bb95211e3c4bf3ab3a95ede92a678f79bedf2ed2c5b707ba0fb2efbae7fc60cd
+nopie=yes
+nocross="can't yet cross compile Haskell"
+
+post_install() {
+	vlicense LICENSE
+}

From b244badd1691a35e0eeab309f750297cccbdbc0b Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 10:35:09 +0100
Subject: [PATCH 09/19] hledger: update to 1.28

---
 srcpkgs/hledger/files/stack.yaml | 14 +++++---------
 srcpkgs/hledger/template         |  4 ++--
 2 files changed, 7 insertions(+), 11 deletions(-)

diff --git a/srcpkgs/hledger/files/stack.yaml b/srcpkgs/hledger/files/stack.yaml
index b5f41932e272..e2fd18f264a4 100644
--- a/srcpkgs/hledger/files/stack.yaml
+++ b/srcpkgs/hledger/files/stack.yaml
@@ -1,4 +1,4 @@
-resolver: lts-19.0
+resolver:  lts-20.0
 
 packages:
 - hledger-lib
@@ -7,16 +7,12 @@ packages:
 - hledger-web
 
 extra-deps:
+- megaparsec-9.3.0
 # for hledger-lib:
-- breakpoint-0.1.0.0
+# - breakpoint-0.1.2.0
 # for hledger:
 # for hledger-ui:
-- brick-1.0
-- bimap-0.5.0
-- text-zipper-0.12
-- vty-5.36
+- brick-1.5
+- fsnotify-0.4.0.0
 # for hledger-web:
 # for Shake.hs:
-
-ghc-options:
-  "$locals": -fplugin Debug.Breakpoint
diff --git a/srcpkgs/hledger/template b/srcpkgs/hledger/template
index 5750484fc5bc..6a4360a0c641 100644
--- a/srcpkgs/hledger/template
+++ b/srcpkgs/hledger/template
@@ -1,6 +1,6 @@
 # Template file for 'hledger'
 pkgname=hledger
-version=1.27.1
+version=1.28
 revision=1
 build_style=haskell-stack
 makedepends="zlib-devel ncurses-devel"
@@ -10,7 +10,7 @@ license="GPL-3.0-or-later"
 homepage="https://hledger.org/"
 changelog="https://hackage.haskell.org/package/hledger-${version}/changelog"
 distfiles="https://github.com/simonmichael/hledger/archive/${version}.tar.gz"
-checksum=218f6005b7b30308cc43523dc7b61c818bb649abc217a6c8803e8f82b408d239
+checksum=e2736f732d9f5cade993877b4524f06fbb3488142843c62653a0849180d2a34a
 nopie_files="/usr/bin/hledger"
 nocross=yes # Can't yet cross compile Haskell
 

From 09afe3b6b6e780d7e8e842a71f12eb57592d5613 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 13:58:50 +0100
Subject: [PATCH 10/19] darcs: bump for stackage lts-20.0

---
 srcpkgs/darcs/files/stack.yaml | 2 +-
 srcpkgs/darcs/template         | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/darcs/files/stack.yaml b/srcpkgs/darcs/files/stack.yaml
index 6e459703764a..f2dd5264e5bf 100644
--- a/srcpkgs/darcs/files/stack.yaml
+++ b/srcpkgs/darcs/files/stack.yaml
@@ -1,4 +1,4 @@
-resolver: lts-19.0
+resolver: lts-20.0
 packages:
 - .
 allow-newer: true
diff --git a/srcpkgs/darcs/template b/srcpkgs/darcs/template
index 15a8f71f9021..04a0f6da593c 100644
--- a/srcpkgs/darcs/template
+++ b/srcpkgs/darcs/template
@@ -1,7 +1,7 @@
 # Template file for 'darcs'
 pkgname=darcs
 version=2.16.5
-revision=3
+revision=4
 build_style=haskell-stack
 hostmakedepends="unzip"
 makedepends="zlib-devel libcurl-devel ncurses-devel"

From bcfad03f61ed98bea9f3f5e6189c0383834e54ee Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 14:54:40 +0100
Subject: [PATCH 11/19] cgrep: bump for stackage lts-20.0

---
 srcpkgs/cgrep/files/stack.yaml | 7 +++++++
 srcpkgs/cgrep/template         | 2 +-
 2 files changed, 8 insertions(+), 1 deletion(-)
 create mode 100644 srcpkgs/cgrep/files/stack.yaml

diff --git a/srcpkgs/cgrep/files/stack.yaml b/srcpkgs/cgrep/files/stack.yaml
new file mode 100644
index 000000000000..9db0805a3957
--- /dev/null
+++ b/srcpkgs/cgrep/files/stack.yaml
@@ -0,0 +1,7 @@
+resolver: lts-20.0
+
+packages:
+  - '.'
+
+extra-deps:
+  - bitwise-1.0.0.1
diff --git a/srcpkgs/cgrep/template b/srcpkgs/cgrep/template
index 9d943300a68c..865d4e43398d 100644
--- a/srcpkgs/cgrep/template
+++ b/srcpkgs/cgrep/template
@@ -1,7 +1,7 @@
 # Template file for 'cgrep'
 pkgname=cgrep
 version=7.0.0
-revision=1
+revision=2
 build_style=haskell-stack
 makedepends="pcre-devel pkg-config"
 short_desc="Context-aware grep for source codes"

From bc3778263267cf26d60df508d713bb57b570ed04 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 15:38:14 +0100
Subject: [PATCH 12/19] xmobar: update to 0.44.2

This is the last version that still builds on musl.
---
 srcpkgs/xmobar/files/stack.yaml | 2 +-
 srcpkgs/xmobar/template         | 9 +++++----
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/xmobar/files/stack.yaml b/srcpkgs/xmobar/files/stack.yaml
index 7e0956374142..15744aaa56ee 100644
--- a/srcpkgs/xmobar/files/stack.yaml
+++ b/srcpkgs/xmobar/files/stack.yaml
@@ -1,4 +1,4 @@
-resolver: lts-19.0
+resolver: lts-20.0
 packages:
 - .
 extra-deps:
diff --git a/srcpkgs/xmobar/template b/srcpkgs/xmobar/template
index 6a12a9ed7055..fb00e4865322 100644
--- a/srcpkgs/xmobar/template
+++ b/srcpkgs/xmobar/template
@@ -1,6 +1,7 @@
 # Template file for 'xmobar'
 pkgname=xmobar
-version=0.42
+# versions >= 0.45 are broken on musl: https://codeberg.org/xmobar/xmobar/issues/656
+version=0.44.2
 revision=1
 build_style=haskell-stack
 hostmakedepends="pkg-config"
@@ -15,10 +16,10 @@ maintainer="xaltsc <xaltsc@protonmail.ch>"
 license="BSD-3-Clause"
 homepage="https://xmobar.org"
 distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz"
-checksum=53f4a06d79c3db32ef1a498ec7b764b17d03ebf9bca3126c6b8259595492769b
-build_options="dbus threaded utf8 xft mpd mpris inotify iwlib alsa datezone
+checksum=08a0bdd6a6c84b2219fae33de1c1335ff3610a194b377dc59ab4505aac84b73d
+build_options="dbus threaded xft mpd mpris inotify iwlib alsa datezone
  xpm uvmeter weather nl80211"
-build_options_default="threaded utf8 xft inotify nl80211 datezone weather xpm alsa mpris mpd dbus"
+build_options_default="threaded xft inotify nl80211 datezone weather xpm alsa mpris mpd dbus"
 nopie_files="/usr/bin/xmobar"
 nocross=yes
 vopt_hflag() {

From af04deea05b26054881ade9e6712ee3e7a22e2e8 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 17:10:27 +0100
Subject: [PATCH 13/19] kmonad: bump for stackage lts-20.0

---
 srcpkgs/kmonad/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kmonad/template b/srcpkgs/kmonad/template
index 04088043afc2..a21383b6a484 100644
--- a/srcpkgs/kmonad/template
+++ b/srcpkgs/kmonad/template
@@ -3,9 +3,9 @@ pkgname=kmonad
 reverts="65b501defdd0049563752f8af8c8c57f5a1ae38b_1"
 _githash=65b501defdd0049563752f8af8c8c57f5a1ae38b
 version=0.4.1.20220321
-revision=1
+revision=2
 build_style=haskell-stack
-stackage=lts-19.0
+stackage=lts-20.0
 short_desc="Keyboard remapping utility providing qmk-like functionality"
 maintainer="slotThe <soliditsallgood@mailbox.org>"
 license="MIT"

From b783cb1f43574e6bf73d89d4e867e7610b244c2a Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 17:11:43 +0100
Subject: [PATCH 14/19] glirc: bump for cabal-install 3.8.1.0

---
 srcpkgs/glirc/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/glirc/template b/srcpkgs/glirc/template
index 98a677886ae1..458609007def 100644
--- a/srcpkgs/glirc/template
+++ b/srcpkgs/glirc/template
@@ -1,7 +1,7 @@
 # Template file for 'glirc'
 pkgname=glirc
 version=2.39.0.1
-revision=1
+revision=2
 hostmakedepends="cabal-install"
 makedepends="ncurses-devel openssl-devel"
 short_desc="Console IRC client written in Haskell"

From 902bcc768fbcd0855eafe3d232ce7210d64fefab Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 18:15:04 +0100
Subject: [PATCH 15/19] git-mediate: bump for stackage lts-20.0

---
 srcpkgs/git-mediate/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/git-mediate/template b/srcpkgs/git-mediate/template
index 705df7843b8e..f472a26d132a 100644
--- a/srcpkgs/git-mediate/template
+++ b/srcpkgs/git-mediate/template
@@ -1,9 +1,9 @@
 # Template file for 'git-mediate'
 pkgname=git-mediate
 version=1.0.8.1
-revision=3
+revision=4
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 depends="git"
 short_desc="Tool to help resolving git conflicts"
 maintainer="Peter Wang <novalazy@gmail.com>"

From 3135d4b7069eeb833c222919e2954f1887bd4261 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Thu, 29 Dec 2022 09:22:09 +0100
Subject: [PATCH 16/19] [WIP] ghc-bin: update to 9.2.5

---
 srcpkgs/ghc-bin/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/ghc-bin/template b/srcpkgs/ghc-bin/template
index f9610408060f..ee8083ff3cf0 100644
--- a/srcpkgs/ghc-bin/template
+++ b/srcpkgs/ghc-bin/template
@@ -1,6 +1,6 @@
 # Template file for 'ghc-bin'
 pkgname=ghc-bin
-version=9.0.2
+version=9.2.5
 revision=1
 archs="i686 x86_64* ppc64le* ppc64 aarch64*"
 hostmakedepends="perl libffi libnuma"
@@ -16,7 +16,7 @@ conflicts="ghc>=0 ghc-doc>=0"
 case "$XBPS_TARGET_MACHINE" in
 x86_64)
 	distfiles="https://downloads.haskell.org/ghc/${version%[!0-9]}/ghc-${version}-x86_64-deb9-linux.tar.xz"
-	checksum=805f5628ce6cec678ba77ff48c924831ebdf75ec2c66368e8935a618913a150e
+	checksum=2d115b7258751f0e4481e35b5953ca3c7870e8ec9ce68f1d32fc014ddc29b2a5
 	;;
 x86_64-musl)
 	# create with "make binary-dist"
@@ -25,7 +25,7 @@ x86_64-musl)
 	;;
 i686)
 	distfiles="https://downloads.haskell.org/ghc/${version%[!0-9]}/ghc-${version}-i386-deb9-linux.tar.xz"
-	checksum=fdeb9f8928fbe994064778a8e1e85bb1a58a6cd3dd7b724fcc2a1dcfda6cad47
+	checksum=cf2088010e4477cb84b26725107eeb23e878368074abcf04f089d498ca2d9ddf
 	;;
 ppc64le)
 	distfiles="https://repo-default.voidlinux.org/distfiles/ghc-${version}-powerpc64le-void-linux.tar.xz"

From ed70d04edb71262b23158dd7397916111ab1d337 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Thu, 29 Dec 2022 09:22:41 +0100
Subject: [PATCH 17/19] New package: ghcup-0.21

Co-authored-by: Kye Shi <shi.kye@gmail.com>
---
 srcpkgs/ghcup/INSTALL.msg |  8 ++++++++
 srcpkgs/ghcup/template    | 32 ++++++++++++++++++++++++++++++++
 2 files changed, 40 insertions(+)
 create mode 100644 srcpkgs/ghcup/INSTALL.msg
 create mode 100644 srcpkgs/ghcup/template

diff --git a/srcpkgs/ghcup/INSTALL.msg b/srcpkgs/ghcup/INSTALL.msg
new file mode 100644
index 000000000000..100bbd0780b7
--- /dev/null
+++ b/srcpkgs/ghcup/INSTALL.msg
@@ -0,0 +1,8 @@
+ghcup comes with an internal downloader, but optionally depends on curl and/or
+wget for more advanced usages (e.g., proxying).  To use curl/wget as downloader,
+first make sure they are installed, then run `ghcup config set downloader Curl`.
+
+Also, ghcup requires $GHCUP_INSTALL_BASE_PREFIX/.ghcup/bin to be in your PATH
+(by default, $GHCUP_INSTALL_BASE_PREFIX is $HOME); make sure to update your
+shell launch scripts accordingly. Alternatively, when GHCUP_USE_XDG_DIRS is set,
+GHCUP uses XDG-ish directories.
diff --git a/srcpkgs/ghcup/template b/srcpkgs/ghcup/template
new file mode 100644
index 000000000000..de9be01dc9f0
--- /dev/null
+++ b/srcpkgs/ghcup/template
@@ -0,0 +1,32 @@
+# Template file for 'ghcup'
+pkgname=ghcup
+version=0.21
+revision=1
+wrksrc="ghcup-hs-v$version"
+hostmakedepends='tar git cabal-install pkg-config'
+makedepends='zlib-devel ncurses-libtinfo-devel libarchive-devel'
+depends='zlib ncurses-libtinfo-libs libarchive gcc gmp make perl'
+short_desc='Installer for the general purpose language Haskell'
+maintainer='Kye Shi <shi.kye@gmail.com>'
+license='LGPL-3.0-only'
+homepage='https://www.haskell.org/ghcup/'
+distfiles="https://github.com/haskell/ghcup-hs/archive/refs/tags/v$version.tar.gz"
+checksum=66bf77b062740eb18053b5b0456d568874b2981f641597e6152a721851900c4e
+nopie_files='/usr/bin/ghcup'
+nocross='cannot cross compile haskell yet'
+
+post_extract() {
+	vsed -i 's/-system-libarchive/+system-libarchive/' cabal.project
+}
+
+do_build() {
+	cabal update --prefix="$PWD"
+	cabal build --prefix="$PWD" --project-file=cabal.project -f'internal-downloader'
+}
+
+do_install() {
+	cabal install --prefix="$PWD" --install-method='copy' --installdir="$DESTDIR/usr/bin"
+	for sh in 'bash' 'fish' 'zsh'; do
+		vcompletion "scripts/shell-completions/$sh" "$sh"
+	done
+}

From 62f7f0b0f3ccd713525ee49ff555740cbf08cc5a Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Thu, 29 Dec 2022 12:22:29 +0100
Subject: [PATCH 18/19] debug-me: bump for stackage lts-20.0

---
 srcpkgs/debug-me/files/stack.yaml         |  2 +-
 srcpkgs/debug-me/patches/bytestring.patch | 26 +++++++++++++++++++++++
 srcpkgs/debug-me/template                 |  3 +--
 3 files changed, 28 insertions(+), 3 deletions(-)
 create mode 100644 srcpkgs/debug-me/patches/bytestring.patch

diff --git a/srcpkgs/debug-me/files/stack.yaml b/srcpkgs/debug-me/files/stack.yaml
index f2b1a79d70c6..cf7820620db2 100644
--- a/srcpkgs/debug-me/files/stack.yaml
+++ b/srcpkgs/debug-me/files/stack.yaml
@@ -1,6 +1,6 @@
 packages:
 - '.'
-resolver: lts-19.0
+resolver: lts-20.0
 extra-deps:
   - posix-pty-0.2.1.1
   - sandi-0.5@sha256:b278d072ca717706ea38f9bd646e023f7f2576a778fb43565b434f93638849aa,3010
diff --git a/srcpkgs/debug-me/patches/bytestring.patch b/srcpkgs/debug-me/patches/bytestring.patch
new file mode 100644
index 000000000000..24a67ef604d0
--- /dev/null
+++ b/srcpkgs/debug-me/patches/bytestring.patch
@@ -0,0 +1,26 @@
+From 1d30b5cd9156b1a9d409c8810dab26e2dc5065af Mon Sep 17 00:00:00 2001
+From: Tony Zorman <soliditsallgood@mailbox.org>
+Date: Thu, 29 Dec 2022 10:35:58 +0100
+Subject: [PATCH] Bump bytestring dependency
+
+This fixes the build for GHC 9.2, which ships with a higher version of
+the bytestring library.
+---
+ debug-me.cabal | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/debug-me.cabal b/debug-me.cabal
+index d5a44e9..2dd60a0 100644
+--- a/debug-me.cabal
++++ b/debug-me.cabal
+@@ -55,7 +55,7 @@ Executable debug-me
+   Build-Depends:
+       base (>= 4.9 && < 5.0)
+     , network (>= 2.6)
+-    , bytestring == 0.10.*
++    , bytestring < 0.12
+     , cryptonite (>= 0.20)
+     , unix (>= 2.7)
+     , process (>= 1.4)
+--
+2.39.0
diff --git a/srcpkgs/debug-me/template b/srcpkgs/debug-me/template
index f971f2156c77..0ffea08897fe 100644
--- a/srcpkgs/debug-me/template
+++ b/srcpkgs/debug-me/template
@@ -1,9 +1,8 @@
 # Template file for 'debug-me'
 pkgname=debug-me
 version=1.20220324
-revision=1
+revision=2
 build_style=haskell-stack
-stackage="lts-19.0"
 makedepends="zlib-devel"
 short_desc="Secure remote debugging"
 maintainer="Dominic Monroe <monroef4@googlemail.com>"

From 6d2757d2607a7aecc6da4131e294ee97fd1b6d37 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Thu, 29 Dec 2022 16:04:34 +0100
Subject: [PATCH 19/19] git-annex: update to 10.20221212

Patch bloomfilter to fix the build for GHC 9.2.5.

Related: https://github.com/bos/bloomfilter/pull/20
---
 srcpkgs/git-annex/files/stack.yaml            |  31 +-
 .../patches/bloomfilter-ghc9.2.patch          | 290 ++++++++++++++++++
 srcpkgs/git-annex/template                    |  14 +-
 3 files changed, 313 insertions(+), 22 deletions(-)
 create mode 100644 srcpkgs/git-annex/patches/bloomfilter-ghc9.2.patch

diff --git a/srcpkgs/git-annex/files/stack.yaml b/srcpkgs/git-annex/files/stack.yaml
index acc592054f70..b2674a7af4ad 100644
--- a/srcpkgs/git-annex/files/stack.yaml
+++ b/srcpkgs/git-annex/files/stack.yaml
@@ -10,21 +10,18 @@ flags:
     benchmark: true
     gitlfs: true
 packages:
-  - '.'
-resolver: lts-19.0
+- './git-annex-10.20221212'
+resolver: lts-20.0
 extra-deps:
-  - IfElse-0.85
-  - aws-0.22
-  - bloomfilter-2.0.1.0
-  - git-lfs-1.2.0
-  - http-client-restricted-0.0.4
-  - network-multicast-0.3.2
-  - sandi-0.5
-  - torrent-10000.1.1
-  - base16-bytestring-0.1.1.7
-  - base64-bytestring-1.0.0.3
-  - bencode-0.6.1.1
-  - aeson-1.5.6.0@sha256:5003bb6fd260d2e2d5a51dee2bf5c8e8f29e4e0e0288fef805c22dcc80ecab06,6788
-  - http-client-0.7.11@sha256:3f59ac8ffe2a3768846cdda040a0d1df2a413960529ba61c839861c948871967,5756
-explicit-setup-deps:
-    git-annex: true
+- IfElse-0.85
+- aws-0.23
+- ./bloomfilter-2.0.1.0
+- git-lfs-1.2.0
+- http-client-restricted-0.0.5
+- network-multicast-0.3.2
+- sandi-0.5
+- torrent-10000.1.1
+- base16-bytestring-1.0.2.0
+- base64-bytestring-1.2.1.0
+- bencode-0.6.1.1
+- http-client-0.7.13.1
diff --git a/srcpkgs/git-annex/patches/bloomfilter-ghc9.2.patch b/srcpkgs/git-annex/patches/bloomfilter-ghc9.2.patch
new file mode 100644
index 000000000000..0316a6a15194
--- /dev/null
+++ b/srcpkgs/git-annex/patches/bloomfilter-ghc9.2.patch
@@ -0,0 +1,290 @@
+From fb79b39c44404fd791a3bed973e9d844fb084f1e Mon Sep 17 00:00:00 2001
+From: Simon Jakobi <simon.jakobi@gmail.com>
+Date: Fri, 12 Nov 2021 01:37:36 +0100
+Subject: [PATCH] Fix build with GHC 9.2
+
+The `FastShift.shift{L,R}` methods are replaced with `unsafeShift{L,R}`
+introduced in base-4.5.
+
+Fixes #19.
+---
+ Data/BloomFilter.hs         | 16 +++++------
+ Data/BloomFilter/Hash.hs    | 15 +++++-----
+ Data/BloomFilter/Mutable.hs | 20 +++++++-------
+ Data/BloomFilter/Util.hs    | 55 ++++++-------------------------------
+ bloomfilter.cabal           |  2 +-
+ 5 files changed, 34 insertions(+), 74 deletions(-)
+
+diff --git a/bloomfilter-2.0.1.0/Data/BloomFilter.hs b/bloomfilter-2.0.1.0/Data/BloomFilter.hs
+index 2210cef..6b47c21 100644
+--- a/bloomfilter-2.0.1.0/Data/BloomFilter.hs
++++ b/bloomfilter-2.0.1.0/Data/BloomFilter.hs
+@@ -78,8 +78,8 @@ import Control.DeepSeq (NFData(..))
+ import Data.Array.Base (unsafeAt)
+ import qualified Data.Array.Base as ST
+ import Data.Array.Unboxed (UArray)
+-import Data.Bits ((.&.))
+-import Data.BloomFilter.Util (FastShift(..), (:*)(..))
++import Data.Bits ((.&.), unsafeShiftL, unsafeShiftR)
++import Data.BloomFilter.Util ((:*)(..))
+ import qualified Data.BloomFilter.Mutable as MB
+ import qualified Data.BloomFilter.Mutable.Internal as MB
+ import Data.BloomFilter.Mutable.Internal (Hash, MBloom)
+@@ -98,7 +98,7 @@ data Bloom a = B {
+     }
+
+ instance Show (Bloom a) where
+-    show ub = "Bloom { " ++ show ((1::Int) `shiftL` shift ub) ++ " bits } "
++    show ub = "Bloom { " ++ show ((1::Int) `unsafeShiftL` shift ub) ++ " bits } "
+
+ instance NFData (Bloom a) where
+     rnf !_ = ()
+@@ -172,7 +172,7 @@ singleton hash numBits elt = create hash numBits (\mb -> MB.insert mb elt)
+ -- | Given a filter's mask and a hash value, compute an offset into
+ -- a word array and a bit offset within that word.
+ hashIdx :: Int -> Word32 -> (Int :* Int)
+-hashIdx mask x = (y `shiftR` logBitsInHash) :* (y .&. hashMask)
++hashIdx mask x = (y `unsafeShiftR` logBitsInHash) :* (y .&. hashMask)
+   where hashMask = 31 -- bitsInHash - 1
+         y = fromIntegral x .&. mask
+
+@@ -191,7 +191,7 @@ hashesU ub elt = hashIdx (mask ub) `map` hashes ub elt
+ -- /still/ some possibility that @True@ will be returned.
+ elem :: a -> Bloom a -> Bool
+ elem elt ub = all test (hashesU ub elt)
+-  where test (off :* bit) = (bitArray ub `unsafeAt` off) .&. (1 `shiftL` bit) /= 0
++  where test (off :* bit) = (bitArray ub `unsafeAt` off) .&. (1 `unsafeShiftL` bit) /= 0
+           
+ modify :: (forall s. (MBloom s a -> ST s z))  -- ^ mutation function (result is discarded)
+         -> Bloom a
+@@ -255,11 +255,11 @@ insertList elts = modify $ \mb -> mapM_ (MB.insert mb) elts
+ -- is /still/ some possibility that @True@ will be returned.
+ notElem :: a -> Bloom a -> Bool
+ notElem elt ub = any test (hashesU ub elt)
+-  where test (off :* bit) = (bitArray ub `unsafeAt` off) .&. (1 `shiftL` bit) == 0
++  where test (off :* bit) = (bitArray ub `unsafeAt` off) .&. (1 `unsafeShiftL` bit) == 0
+
+ -- | Return the size of an immutable Bloom filter, in bits.
+ length :: Bloom a -> Int
+-length = shiftL 1 . shift
++length = unsafeShiftL 1 . shift
+
+ -- | Build an immutable Bloom filter from a seed value.  The seeding
+ -- function populates the filter as follows.
+@@ -318,7 +318,7 @@ fromList hashes numBits = unfold hashes numBits convert
+ logPower2 :: Int -> Int
+ logPower2 k = go 0 k
+     where go j 1 = j
+-          go j n = go (j+1) (n `shiftR` 1)
++          go j n = go (j+1) (n `unsafeShiftR` 1)
+
+ -- $overview
+ --
+diff --git a/bloomfilter-2.0.1.0/Data/BloomFilter/Hash.hs b/bloomfilter-2.0.1.0/Data/BloomFilter/Hash.hs
+index 132a3a4..d071fd4 100644
+--- a/bloomfilter-2.0.1.0/Data/BloomFilter/Hash.hs
++++ b/bloomfilter-2.0.1.0/Data/BloomFilter/Hash.hs
+@@ -38,8 +38,7 @@ module Data.BloomFilter.Hash
+     ) where
+
+ import Control.Monad (foldM)
+-import Data.Bits ((.&.), (.|.), xor)
+-import Data.BloomFilter.Util (FastShift(..))
++import Data.Bits ((.&.), (.|.), unsafeShiftL, unsafeShiftR, xor)
+ import Data.List (unfoldr)
+ import Data.Int (Int8, Int16, Int32, Int64)
+ import Data.Word (Word8, Word16, Word32, Word64)
+@@ -91,11 +90,11 @@ class Hashable a where
+              -> Word64           -- ^ salt
+              -> IO Word64
+     hashIO64 v salt = do
+-                   let s1 = fromIntegral (salt `shiftR` 32) .&. maxBound
++                   let s1 = fromIntegral (salt `unsafeShiftR` 32) .&. maxBound
+                        s2 = fromIntegral salt
+                    h1 <- hashIO32 v s1
+                    h2 <- hashIO32 v s2
+-                   return $ (fromIntegral h1 `shiftL` 32) .|. fromIntegral h2
++                   return $ (fromIntegral h1 `unsafeShiftL` 32) .|. fromIntegral h2
+
+ -- | Compute a 32-bit hash.
+ hash32 :: Hashable a => a -> Word32
+@@ -149,8 +148,8 @@ cheapHashes :: Hashable a => Int -- ^ number of hashes to compute
+ cheapHashes k v = go 0
+     where go i | i == j = []
+                | otherwise = hash : go (i + 1)
+-               where !hash = h1 + (h2 `shiftR` i)
+-          h1 = fromIntegral (h `shiftR` 32)
++               where !hash = h1 + (h2 `unsafeShiftR` i)
++          h1 = fromIntegral (h `unsafeShiftR` 32)
+           h2 = fromIntegral h
+           h = hashSalt64 0x9150a946c4a8966e v
+           j = fromIntegral k
+@@ -163,7 +162,7 @@ instance Hashable Integer where
+                                    (salt `xor` 0x3ece731e)
+                   | otherwise = hashIO32 (unfoldr go k) salt
+         where go 0 = Nothing
+-              go i = Just (fromIntegral i :: Word32, i `shiftR` 32)
++              go i = Just (fromIntegral i :: Word32, i `unsafeShiftR` 32)
+
+ instance Hashable Bool where
+     hashIO32 = hashOne32
+@@ -224,7 +223,7 @@ instance Hashable Word64 where
+ -- | A fast unchecked shift.  Nasty, but otherwise GHC 6.8.2 does a
+ -- test and branch on every shift.
+ div4 :: CSize -> CSize
+-div4 k = fromIntegral ((fromIntegral k :: HTYPE_SIZE_T) `shiftR` 2)
++div4 k = fromIntegral ((fromIntegral k :: HTYPE_SIZE_T) `unsafeShiftR` 2)
+
+ alignedHash :: Ptr a -> CSize -> Word32 -> IO Word32
+ alignedHash ptr bytes salt
+diff --git a/bloomfilter-2.0.1.0/Data/BloomFilter/Mutable.hs b/bloomfilter-2.0.1.0/Data/BloomFilter/Mutable.hs
+index edff1fc..0bb5cc9 100644
+--- a/bloomfilter-2.0.1.0/Data/BloomFilter/Mutable.hs
++++ b/bloomfilter-2.0.1.0/Data/BloomFilter/Mutable.hs
+@@ -65,9 +65,9 @@ module Data.BloomFilter.Mutable
+ import Control.Monad (liftM, forM_)
+ import Control.Monad.ST (ST)
+ import Data.Array.Base (unsafeRead, unsafeWrite)
+-import Data.Bits ((.&.), (.|.))
++import Data.Bits ((.&.), (.|.), unsafeShiftL, unsafeShiftR)
+ import Data.BloomFilter.Array (newArray)
+-import Data.BloomFilter.Util (FastShift(..), (:*)(..), nextPowerOfTwo)
++import Data.BloomFilter.Util ((:*)(..), nextPowerOfTwo)
+ import Data.Word (Word32)
+ import Data.BloomFilter.Mutable.Internal
+
+@@ -86,9 +86,9 @@ new hash numBits = MB hash shft msk `liftM` newArray numElems numBytes
+                 | numBits > maxHash = maxHash
+                 | isPowerOfTwo numBits = numBits
+                 | otherwise = nextPowerOfTwo numBits
+-        numElems = max 2 (twoBits `shiftR` logBitsInHash)
+-        numBytes = numElems `shiftL` logBytesInHash
+-        trueBits = numElems `shiftL` logBitsInHash
++        numElems = max 2 (twoBits `unsafeShiftR` logBitsInHash)
++        numBytes = numElems `unsafeShiftL` logBytesInHash
++        trueBits = numElems `unsafeShiftL` logBitsInHash
+         shft     = logPower2 trueBits
+         msk      = trueBits - 1
+         isPowerOfTwo n = n .&. (n - 1) == 0
+@@ -109,7 +109,7 @@ logBytesInHash = 2 -- logPower2 (sizeOf (undefined :: Hash))
+ -- | Given a filter's mask and a hash value, compute an offset into
+ -- a word array and a bit offset within that word.
+ hashIdx :: Int -> Word32 -> (Int :* Int)
+-hashIdx msk x = (y `shiftR` logBitsInHash) :* (y .&. hashMask)
++hashIdx msk x = (y `unsafeShiftR` logBitsInHash) :* (y .&. hashMask)
+   where hashMask = 31 -- bitsInHash - 1
+         y = fromIntegral x .&. msk
+
+@@ -125,7 +125,7 @@ insert mb elt = do
+   let mu = bitArray mb
+   forM_ (hashesM mb elt) $ \(word :* bit) -> do
+       old <- unsafeRead mu word
+-      unsafeWrite mu word (old .|. (1 `shiftL` bit))
++      unsafeWrite mu word (old .|. (1 `unsafeShiftL` bit))
+
+ -- | Query a mutable Bloom filter for membership.  If the value is
+ -- present, return @True@.  If the value is not present, there is
+@@ -135,7 +135,7 @@ elem elt mb = loop (hashesM mb elt)
+   where mu = bitArray mb
+         loop ((word :* bit):wbs) = do
+           i <- unsafeRead mu word
+-          if i .&. (1 `shiftL` bit) == 0
++          if i .&. (1 `unsafeShiftL` bit) == 0
+             then return False
+             else loop wbs
+         loop _ = return True
+@@ -145,7 +145,7 @@ elem elt mb = loop (hashesM mb elt)
+
+ -- | Return the size of a mutable Bloom filter, in bits.
+ length :: MBloom s a -> Int
+-length = shiftL 1 . shift
++length = unsafeShiftL 1 . shift
+
+
+ -- | Slow, crummy way of computing the integer log of an integer known
+@@ -153,7 +153,7 @@ length = shiftL 1 . shift
+ logPower2 :: Int -> Int
+ logPower2 k = go 0 k
+     where go j 1 = j
+-          go j n = go (j+1) (n `shiftR` 1)
++          go j n = go (j+1) (n `unsafeShiftR` 1)
+
+ -- $overview
+ --
+diff --git a/bloomfilter-2.0.1.0/Data/BloomFilter/Util.hs b/bloomfilter-2.0.1.0/Data/BloomFilter/Util.hs
+index 7f695dc..6ade6e5 100644
+--- a/bloomfilter-2.0.1.0/Data/BloomFilter/Util.hs
++++ b/bloomfilter-2.0.1.0/Data/BloomFilter/Util.hs
+@@ -2,15 +2,11 @@
+
+ module Data.BloomFilter.Util
+     (
+-      FastShift(..)
+-    , nextPowerOfTwo
++      nextPowerOfTwo
+     , (:*)(..)
+     ) where
+
+-import Data.Bits ((.|.))
+-import qualified Data.Bits as Bits
+-import GHC.Base
+-import GHC.Word
++import Data.Bits ((.|.), unsafeShiftR)
+
+ -- | A strict pair type.
+ data a :* b = !a :* !b
+@@ -22,46 +18,11 @@ nextPowerOfTwo :: Int -> Int
+ {-# INLINE nextPowerOfTwo #-}
+ nextPowerOfTwo n =
+     let a = n - 1
+-        b = a .|. (a `shiftR` 1)
+-        c = b .|. (b `shiftR` 2)
+-        d = c .|. (c `shiftR` 4)
+-        e = d .|. (d `shiftR` 8)
+-        f = e .|. (e `shiftR` 16)
+-        g = f .|. (f `shiftR` 32)  -- in case we're on a 64-bit host
++        b = a .|. (a `unsafeShiftR` 1)
++        c = b .|. (b `unsafeShiftR` 2)
++        d = c .|. (c `unsafeShiftR` 4)
++        e = d .|. (d `unsafeShiftR` 8)
++        f = e .|. (e `unsafeShiftR` 16)
++        g = f .|. (f `unsafeShiftR` 32)  -- in case we're on a 64-bit host
+         !h = g + 1
+     in h
+-
+--- | This is a workaround for poor optimisation in GHC 6.8.2.  It
+--- fails to notice constant-width shifts, and adds a test and branch
+--- to every shift.  This imposes about a 10% performance hit.
+-class FastShift a where
+-    shiftL :: a -> Int -> a
+-    shiftR :: a -> Int -> a
+-
+-instance FastShift Word32 where
+-    {-# INLINE shiftL #-}
+-    shiftL (W32# x#) (I# i#) = W32# (x# `uncheckedShiftL#` i#)
+-
+-    {-# INLINE shiftR #-}
+-    shiftR (W32# x#) (I# i#) = W32# (x# `uncheckedShiftRL#` i#)
+-
+-instance FastShift Word64 where
+-    {-# INLINE shiftL #-}
+-    shiftL (W64# x#) (I# i#) = W64# (x# `uncheckedShiftL64#` i#)
+-
+-    {-# INLINE shiftR #-}
+-    shiftR (W64# x#) (I# i#) = W64# (x# `uncheckedShiftRL64#` i#)
+-
+-instance FastShift Int where
+-    {-# INLINE shiftL #-}
+-    shiftL (I# x#) (I# i#) = I# (x# `iShiftL#` i#)
+-
+-    {-# INLINE shiftR #-}
+-    shiftR (I# x#) (I# i#) = I# (x# `iShiftRA#` i#)
+-
+-instance FastShift Integer where
+-    {-# INLINE shiftL #-}
+-    shiftL = Bits.shiftL
+-
+-    {-# INLINE shiftR #-}
+-    shiftR = Bits.shiftR
+--
+2.35.1
diff --git a/srcpkgs/git-annex/template b/srcpkgs/git-annex/template
index 91d714a327ac..41117a4aca5f 100644
--- a/srcpkgs/git-annex/template
+++ b/srcpkgs/git-annex/template
@@ -1,6 +1,8 @@
 # Template file for 'git-annex'
 pkgname=git-annex
-version=10.20221103
+version=10.20221212
+_bloomfilter_version=2.0.1.0
+create_wrksrc=yes
 revision=1
 build_style=haskell-stack
 makedepends="curl file-devel gnupg gnutls-devel gsasl-devel libxml2-devel
@@ -12,8 +14,10 @@ maintainer="Evan Deaubl <evan@deaubl.name>"
 license="AGPL-3.0-or-later, MIT, BSD-2-Clause, GPL-3.0-or-later, custom:Expat, custom:MIT-twitter, GPL-2.0-only, custom:icon-license"
 homepage="https://git-annex.branchable.com"
 changelog="https://git.joeyh.name/index.cgi/git-annex.git/plain/CHANGELOG"
-distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz"
-checksum=f549c31264d6da3bb544755795e7fc29882ebec45014905bc2ea0ade28398f3b
+distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz
+ https://hackage.haskell.org/package/bloomfilter-${_bloomfilter_version}/bloomfilter-${_bloomfilter_version}.tar.gz"
+checksum="ef67b4b93728d86050d6e6ec862e950cd6f9db488aea9c840092f024b8a0d629
+ 6c5e0d357d5d39efe97ae2776e8fb533fa50c1c05397c7b85020b0f098ad790f"
 nopie_files="/usr/bin/git-annex"
 nocross=yes
 
@@ -26,7 +30,7 @@ post_install() {
 	ln -sf git-annex ${DESTDIR}/usr/bin/git-remote-tor-annex
 
 	vmkdir usr/share/man/man1
-	vcopy man/*.1 usr/share/man/man1
+	vcopy ${pkgname}-${version}/man/*.1 usr/share/man/man1
 
-	vlicense doc/license/AGPL
+	vlicense ${pkgname}-${version}/doc/license/AGPL
 }

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PR PATCH] [Updated] [WIP] [ci skip] GHC 9.2.5
  2022-12-27  9:58 [PR PATCH] [WIP] [ci skip] GHC 9.2.5 slotThe
                   ` (6 preceding siblings ...)
  2022-12-30  9:28 ` slotThe
@ 2022-12-30  9:53 ` slotThe
  2022-12-31 13:24 ` slotThe
                   ` (4 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: slotThe @ 2022-12-30  9:53 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1290 bytes --]

There is an updated pull request by slotThe against master on the void-packages repository

https://github.com/slotThe/void-packages ghc-9.2.5
https://github.com/void-linux/void-packages/pull/41316

[WIP] [ci skip] GHC 9.2.5
Took much longer than anticipated, since I wanted to wait for stack 2.9.3 first.  Here's to hoping that opening a PR will motivate me to work more rapidly :)

### Core packages to bump

- [x] ghc
- [ ] ghc-bin
    - [x] x86_64 (hash)
    - [x] i686 (hash)
    - [ ] x86_64-musl
    ~~Cc. @q66~~
    - [ ] ppc64le
    - [ ] ppc64le-musl
    - [ ] ppc64
    Cc. @ftrvxmtrx
    - [ ] aarch64
    - [ ] aarch64-musl
- [x] cabal-install
- [x] stack

#### Rebuild literally every single haskell package we have and see if anything's broken

- [x] git-mediate
- [x] kmonad
- [x] cgrep
- [x] debug-me
- [x] hlint
- [x] hoogle
- [x] darcs
- [x] shellcheck
- [x] git-annex
- [x] hledger
- [x] pandoc
- [x] xmobar
- [ ] haskell-language-server
- [x] glirc

### Other things to do

- [x] incorporate https://github.com/void-linux/void-packages/pull/27832 @astralchan
- [x] incorporate https://github.com/void-linux/void-packages/pull/35624 @kwshi

A patch file from https://github.com/void-linux/void-packages/pull/41316.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-ghc-9.2.5-41316.patch --]
[-- Type: text/x-diff, Size: 87901 bytes --]

From 72eb2785d19f85f6719819475c9ae6076859e9e6 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Thu, 17 Nov 2022 12:47:46 +0100
Subject: [PATCH 01/20] ghc: update to 9.2.5

+ Adjust ppc64-be-elfv2.patch
  * The libraries/ghci/GHCi/InfoTable.hsc bit seems to have been
    merged, hence delete it.
  * Adjust for changes in fptools and configure.
  * Delete now out-of-date TOC.
---
 srcpkgs/ghc/patches/ppc64-be-elfv2.patch | 105 +++++------------------
 srcpkgs/ghc/template                     |   6 +-
 2 files changed, 23 insertions(+), 88 deletions(-)

diff --git a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
index df1a0bfe15ba..5fa356be700e 100644
--- a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
+++ b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
@@ -3,100 +3,36 @@ From: q66 <daniel@octaforge.org>
 Date: Thu, 28 Apr 2022 00:48:04 +0200
 Subject: [PATCH] fix up runtime for ppc64 BE ELFv2 + ensure it's used
 
----
- configure                         |  2 +-
- libraries/ghci/GHCi/InfoTable.hsc | 36 ++++++++++++-------------------
- m4/fptools.m4                     |  2 +-
- rts/AdjustorAsm.S                 |  2 +-
- rts/StgCRun.c                     |  4 ++--
- rts/StgCRunAsm.S                  |  2 +-
- rts/adjustor/NativeIA64.c         |  2 +-
- rts/adjustor/NativePowerPC.c      |  2 +-
- 8 files changed, 22 insertions(+), 30 deletions(-)
-
-diff --git a/configure b/configure
-index 8310e6f..eac1124 100755
 --- a/configure
 +++ b/configure
-@@ -10508,7 +10508,7 @@ printf "%s\n" "no" >&6; }
+@@ -10871,7 +10871,7 @@
              test -z "$2" || eval "$2=ArchPPC"
              ;;
          powerpc64)
--            test -z "$2" || eval "$2=\"ArchPPC_64 {ppc_64ABI = ELF_V1}\""
-+            test -z "$2" || eval "$2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
+-            test -z "$2" || eval "$2=\"ArchPPC_64 ELF_V1\""
++            test -z "$2" || eval "$2=\"ArchPPC_64 ELF_V2\""
              ;;
          powerpc64le)
-             test -z "$2" || eval "$2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
-diff --git a/libraries/ghci/GHCi/InfoTable.hsc b/libraries/ghci/GHCi/InfoTable.hsc
-index ad4eb4d..e4f1c0c 100644
---- a/libraries/ghci/GHCi/InfoTable.hsc
-+++ b/libraries/ghci/GHCi/InfoTable.hsc
-@@ -231,30 +231,22 @@ mkJumpToAddr' platform a = case platform of
-                 , fromIntegral w64
-                 , fromIntegral (w64 `shiftR` 32) ]
-     ArchPPC64 ->
--        -- We use the compiler's register r12 to read the function
--        -- descriptor and the linker's register r11 as a temporary
--        -- register to hold the function entry point.
--        -- In the medium code model the function descriptor
--        -- is located in the first two gigabytes, i.e. the address
--        -- of the function pointer is a non-negative 32 bit number.
--        -- 0x0EADBEEF stands for the address of the function pointer:
--        --    0:   3d 80 0e ad     lis     r12,0x0EAD
--        --    4:   61 8c be ef     ori     r12,r12,0xBEEF
--        --    8:   e9 6c 00 00     ld      r11,0(r12)
--        --    c:   e8 4c 00 08     ld      r2,8(r12)
--        --   10:   7d 69 03 a6     mtctr   r11
--        --   14:   e9 6c 00 10     ld      r11,16(r12)
--        --   18:   4e 80 04 20     bctr
--       let  w32 = fromIntegral (funPtrToInt a)
-+        -- The ABI requires r12 to point to the function's entry point.
-+        -- We use the medium code model where code resides in the first
-+        -- two gigabytes, so loading a non-negative32 bit address
-+        -- with lis followed by ori is fine.
-+        -- 0x0EADBEEF stands for the address:
-+        -- 3D800EAD lis r12,0x0EAD
-+        -- 618CBEEF ori r12,r12,0xBEEF
-+        -- 7D8903A6 mtctr r12
-+        -- 4E800420 bctr
-+
-+        let w32 = fromIntegral (funPtrToInt a)
-             hi16 x = (x `shiftR` 16) .&. 0xFFFF
-             lo16 x = x .&. 0xFFFF
--       in Right [ 0x3D800000 .|. hi16 w32,
--                  0x618C0000 .|. lo16 w32,
--                  0xE96C0000,
--                  0xE84C0008,
--                  0x7D6903A6,
--                  0xE96C0010,
--                  0x4E800420]
-+        in Right [ 0x3D800000 .|. hi16 w32,
-+                   0x618C0000 .|. lo16 w32,
-+                   0x7D8903A6, 0x4E800420 ]
- 
-     ArchPPC64LE ->
-         -- The ABI requires r12 to point to the function's entry point.
-diff --git a/m4/fptools.m4 b/m4/fptools.m4
-index 8c6c9b7..eb25c37 100644
---- a/m4/fptools.m4
-+++ b/m4/fptools.m4
-@@ -201,7 +201,7 @@ AC_DEFUN([FPTOOLS_SET_HASKELL_PLATFORM_VARS],
+             test -z "$2" || eval "$2=\"ArchPPC_64 ELF_V2\""
+--- a/m4/fptools_set_haskell_platform_vars.m4
++++ b/m4/fptools_set_haskell_platform_vars.m4
+@@ -15,7 +15,7 @@
              test -z "[$]2" || eval "[$]2=ArchPPC"
              ;;
          powerpc64)
--            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V1}\""
-+            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
+-            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 ELF_V1\""
++            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 ELF_V2\""
              ;;
          powerpc64le)
-             test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
+             test -z "[$]2" || eval "[$]2=\"ArchPPC_64 ELF_V2\""
 diff --git a/rts/AdjustorAsm.S b/rts/AdjustorAsm.S
 index 2795b83..63cfe91 100644
 --- a/rts/AdjustorAsm.S
 +++ b/rts/AdjustorAsm.S
 @@ -2,7 +2,7 @@
- 
+
  /* ******************************** PowerPC ******************************** */
- 
+
 -#if defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
 +#if defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
  #if !(defined(powerpc_HOST_ARCH) && defined(linux_HOST_OS))
@@ -109,21 +45,21 @@ index f43227a..927d44a 100644
 @@ -724,7 +724,7 @@ StgRunIsImplementedInAssembler(void)
     Everything is in assembler, so we don't have to deal with GCC...
     -------------------------------------------------------------------------- */
- 
+
 -#if defined(powerpc64_HOST_ARCH)
 +#if defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2)
  /* 64-bit PowerPC ELF ABI 1.9
   *
   * Stack frame organization (see Figure 3-17, ELF ABI 1.9, p 14)
 @@ -792,7 +792,7 @@ StgRunIsImplementedInAssembler(void)
- 
+
  #endif
- 
+
 -#if defined(powerpc64le_HOST_ARCH)
 +#if defined(powerpc64le_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF == 2))
  /* -----------------------------------------------------------------------------
     PowerPC 64 little endian architecture
- 
+
 diff --git a/rts/StgCRunAsm.S b/rts/StgCRunAsm.S
 index 60f1bf9..c6794d7 100644
 --- a/rts/StgCRunAsm.S
@@ -131,7 +67,7 @@ index 60f1bf9..c6794d7 100644
 @@ -5,7 +5,7 @@
   * then functions StgRun/StgReturn are implemented in file StgCRun.c */
  #if !defined(USE_MINIINTERPRETER)
- 
+
 -#if defined(powerpc64le_HOST_ARCH)
 +#if defined(powerpc64le_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF == 2))
  # if defined(linux_HOST_OS)
@@ -157,12 +93,11 @@ index 2e5d605..caef5d3 100644
 @@ -29,7 +29,7 @@ __asm__("obscure_ccall_ret_code:\n\t"
  extern void obscure_ccall_ret_code(void);
  #endif /* defined(linux_HOST_OS) */
- 
+
 -#if defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
 +#if defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
  #if !(defined(powerpc_HOST_ARCH) && defined(linux_HOST_OS))
- 
+
  /* !!! !!! WARNING: !!! !!!
--- 
+--
 2.35.1
-
diff --git a/srcpkgs/ghc/template b/srcpkgs/ghc/template
index bf76202f4098..c4808339cd29 100644
--- a/srcpkgs/ghc/template
+++ b/srcpkgs/ghc/template
@@ -1,7 +1,7 @@
 # Template file for 'ghc'
 pkgname=ghc
 # Keep this synchronized with http://www.stackage.org/lts
-version=9.0.2
+version=9.2.5
 revision=1
 build_style=gnu-configure
 hostmakedepends="automake docbook-xsl ghc-bin libxslt libnuma-devel
@@ -9,11 +9,11 @@ hostmakedepends="automake docbook-xsl ghc-bin libxslt libnuma-devel
 makedepends="libnuma-devel"
 depends="perl gcc libffi-devel gmp-devel libnuma-devel"
 short_desc="Glorious Haskell Compiler"
-maintainer="slotThe <soliditsallgood@mailbox.org>"
+maintainer="Tony Zorman <soliditsallgood@mailbox.org>"
 license="BSD-3-Clause"
 homepage="http://www.haskell.org/ghc/"
 distfiles="http://www.haskell.org/ghc/dist/${version%[!0-9]}/${pkgname}-${version%[!0-9]}-src.tar.xz"
-checksum=140e42b96346322d1a39eb17602bcdc76e292028ad4a69286b230bab188a9197
+checksum=0606797d1b38e2d88ee2243f38ec6b9a1aa93e9b578e95f0de9a9c0a4144021c
 nocross=yes # this is conditionally unset for cross bindist
 nodebug=yes # work around assembler error "Fatal error: duplicate .debug_line sections"
 _bindir="/usr/lib/${pkgname}-${version}/bin"

From 3d349a8a1192747ff14dd89e54fc0f7f19a991f5 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Fri, 18 Nov 2022 14:56:06 +0100
Subject: [PATCH 02/20] cabal-install: update to 3.8.1.0.

---
 srcpkgs/cabal-install/files/linux-9.0.2.json |  1 -
 srcpkgs/cabal-install/files/linux-9.2.5.json |  1 +
 srcpkgs/cabal-install/template               | 12 ++++++------
 3 files changed, 7 insertions(+), 7 deletions(-)
 delete mode 100644 srcpkgs/cabal-install/files/linux-9.0.2.json
 create mode 100644 srcpkgs/cabal-install/files/linux-9.2.5.json

diff --git a/srcpkgs/cabal-install/files/linux-9.0.2.json b/srcpkgs/cabal-install/files/linux-9.0.2.json
deleted file mode 100644
index f3cb6b4aeeb5..000000000000
--- a/srcpkgs/cabal-install/files/linux-9.0.2.json
+++ /dev/null
@@ -1 +0,0 @@
-{"builtin":[{"package":"rts","version":"1.0.2"},{"package":"ghc-prim","version":"0.7.0"},{"package":"ghc-bignum","version":"1.1"},{"package":"base","version":"4.15.1.0"},{"package":"array","version":"0.5.4.0"},{"package":"deepseq","version":"1.4.5.0"},{"package":"bytestring","version":"0.10.12.1"},{"package":"containers","version":"0.6.4.1"},{"package":"binary","version":"0.8.8.0"},{"package":"filepath","version":"1.4.2.1"},{"package":"time","version":"1.9.3"},{"package":"unix","version":"2.7.2.2"},{"package":"directory","version":"1.3.6.2"},{"package":"transformers","version":"0.5.6.2"},{"package":"mtl","version":"2.2.2"},{"package":"ghc-boot-th","version":"9.0.2"},{"package":"pretty","version":"1.1.3.6"},{"package":"template-haskell","version":"2.17.0.0"},{"package":"text","version":"1.2.5.0"},{"package":"parsec","version":"3.1.14.0"},{"package":"process","version":"1.6.13.2"},{"package":"stm","version":"2.5.0.0"}],"dependencies":[{"cabal_sha256":null,"flags":["-bundled-binary-generic"],"package":"Cabal","revision":null,"source":"local","src_sha256":null,"version":"3.6.3.0"},{"cabal_sha256":"714a55fd28d3e2533bd5b49e74f604ef8e5d7b06f249c8816f6c54aed431dcf1","flags":["-optimised-mixer"],"package":"splitmix","revision":0,"source":"hackage","src_sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","version":"0.1.0.4"},{"cabal_sha256":"8bee24dc0c985a90ee78d94c61f8aed21c49633686f0f1c14c5078d818ee43a2","flags":[],"package":"random","revision":0,"source":"hackage","src_sha256":"265c768fc5f2ca53cde6a87e706b4448cad474c3deece933c103f24453661457","version":"1.2.1"},{"cabal_sha256":"3a2beeafb220f9de706568a7e4a5b3c762cc4c9f25c94d7ef795b8c2d6a691d7","flags":["+integer-gmp","-random-initial-seed"],"package":"hashable","revision":1,"source":"hackage","src_sha256":"baaad82cd4271b197016bdbe76f22d5c3d3913fe38534cec7d817db9bae19886","version":"1.3.5.0"},{"cabal_sha256":"b83dec34a53520de84c6dd3dc7aae45d22409b46eb471c478b98108215a370f0","flags":["-bench"],"package":"async","revision":1,"source":"hackage","src_sha256":"484df85be0e76c4fed9376451e48e1d0c6e97952ce79735b72d54297e7e0a725","version":"2.2.4"},{"cabal_sha256":"037d70bb091c49f68726dde920f6a003b646835a86cdcb5b5ad58ad9af3207d9","flags":[],"package":"Cabal-syntax","revision":0,"source":"hackage","src_sha256":"ca25e5fc601397565fa857f1aa477740fac7f43d659e77c4d9b1485dca239251","version":"3.6.0.0"},{"cabal_sha256":"d8699f46b485f105eea9c7158f3d432ca578e6bbe5d68751184e9899a41d430d","flags":["-old-bytestring","-old-time"],"package":"tar","revision":4,"source":"hackage","src_sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","version":"0.5.1.1"},{"cabal_sha256":"e3d78b13db9512aeb106e44a334ab42b7aa48d26c097299084084cb8be5c5568","flags":["-devel"],"package":"network","revision":0,"source":"hackage","src_sha256":"7f7620fef1a1af3d3d6747f510e73223a5c600e7d7fd9ace073d1222bdc63d85","version":"3.1.2.7"},{"cabal_sha256":"a16dd922947a6877defe52c4c38d1ab48ed3f85a826930f5d1a568741d619993","flags":[],"package":"th-compat","revision":0,"source":"hackage","src_sha256":"6b5059caf6714f47da92953badf2f556119877e09708c14e206b3ae98b8681c6","version":"0.1.3"},{"cabal_sha256":"a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d","flags":[],"package":"network-uri","revision":0,"source":"hackage","src_sha256":"57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584","version":"2.6.4.1"},{"cabal_sha256":"6042643c15a0b43e522a6693f1e322f05000d519543a84149cb80aeffee34f71","flags":["-conduit10","-mtl1","+network-uri","-warn-as-error","-warp-tests"],"package":"HTTP","revision":1,"source":"hackage","src_sha256":"d6091c037871ac3d08d021c906206174567499d5a26a6cb804cf530cd590fe2d","version":"4000.3.16"},{"cabal_sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","flags":[],"package":"base16-bytestring","revision":0,"source":"hackage","src_sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","version":"1.0.2.0"},{"cabal_sha256":"50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8","flags":[],"package":"base64-bytestring","revision":0,"source":"hackage","src_sha256":"fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9","version":"1.2.1.0"},{"cabal_sha256":"188d0b5a0491e8b686b32d9b144c9287760ba333d2509bf3f17e3d846fbc2332","flags":["-exe","+use-cbits"],"package":"cryptohash-sha256","revision":0,"source":"hackage","src_sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","version":"0.11.102.1"},{"cabal_sha256":"ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42","flags":["-example"],"package":"echo","revision":0,"source":"hackage","src_sha256":"c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43","version":"0.1.4"},{"cabal_sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","flags":[],"package":"edit-distance","revision":1,"source":"hackage","src_sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","version":"0.2.2.1"},{"cabal_sha256":"24ac7b5f3d9fa3c2f70262b329f2a75f24e7fd829f88c189b388efa1bcd67eb2","flags":["+no-donna","+test-doctests","+test-hlint","+test-properties"],"package":"ed25519","revision":5,"source":"hackage","src_sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","version":"0.0.5.0"},{"cabal_sha256":"c084c043a40632d3cafcac50fb5eeff84d91edb070a54baa94945f1c976f97c0","flags":["+ofd-locking"],"package":"lukko","revision":2,"source":"hackage","src_sha256":"a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f","version":"0.1.1.3"},{"cabal_sha256":"262a93dbf370be59f4ee57f3b1a51b338bc2c309797daa37c14f2262ae61dae4","flags":["-bundled-c-zlib","-non-blocking-ffi","-pkg-config"],"package":"zlib","revision":1,"source":"hackage","src_sha256":"807f6bddf9cb3c517ce5757d991dde3c7e319953a22c86ee03d74534bd5abc88","version":"0.6.2.3"},{"cabal_sha256":"eb34c3e2fa39f9819293045c03e56148a7125573c1de265cdfe5d967f1d71c6e","flags":["+base48","-cabal-syntax","+lukko","-mtl21","-old-directory","+use-network-uri"],"package":"hackage-security","revision":1,"source":"hackage","src_sha256":"bf22cd16dde7d6b7130463f4d7324b64a2964d9ef3f523df97d7cb98544d64a8","version":"0.6.2.1"},{"cabal_sha256":"2561adac8ce373910948066debe090a22b336b129ba5af18c0332524d16e72ce","flags":[],"package":"regex-base","revision":0,"source":"hackage","src_sha256":"7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1","version":"0.94.0.2"},{"cabal_sha256":"b6421e5356766b0c0a78b6094ae2e3a6259b42c147b717283c03c1cb09163dca","flags":["-_regex-posix-clib"],"package":"regex-posix","revision":0,"source":"hackage","src_sha256":"c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c","version":"0.96.0.1"},{"cabal_sha256":"2088eb9368b920f80bbe4e3b03c3b8484090208f5c3b31645bd67a9ef7d26db4","flags":[],"package":"resolv","revision":4,"source":"hackage","src_sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","version":"0.1.2.0"},{"cabal_sha256":null,"flags":["-debug-conflict-sets","-debug-expensive-assertions","-debug-tracetree","+lukko","+native-dns"],"package":"cabal-install","revision":null,"source":"local","src_sha256":null,"version":"3.6.2.0"}]}
\ No newline at end of file
diff --git a/srcpkgs/cabal-install/files/linux-9.2.5.json b/srcpkgs/cabal-install/files/linux-9.2.5.json
new file mode 100644
index 000000000000..13fe257cbb30
--- /dev/null
+++ b/srcpkgs/cabal-install/files/linux-9.2.5.json
@@ -0,0 +1 @@
+{"builtin":[{"package":"rts","version":"1.0.2"},{"package":"ghc-prim","version":"0.8.0"},{"package":"ghc-bignum","version":"1.2"},{"package":"base","version":"4.16.4.0"},{"package":"array","version":"0.5.4.0"},{"package":"deepseq","version":"1.4.6.1"},{"package":"ghc-boot-th","version":"9.2.5"},{"package":"pretty","version":"1.1.3.6"},{"package":"template-haskell","version":"2.18.0.0"},{"package":"bytestring","version":"0.11.3.1"},{"package":"containers","version":"0.6.5.1"},{"package":"binary","version":"0.8.9.0"},{"package":"filepath","version":"1.4.2.2"},{"package":"time","version":"1.11.1.1"},{"package":"unix","version":"2.7.2.2"},{"package":"directory","version":"1.3.6.2"},{"package":"transformers","version":"0.5.6.2"},{"package":"mtl","version":"2.2.2"},{"package":"text","version":"1.2.5.0"},{"package":"parsec","version":"3.1.15.0"},{"package":"process","version":"1.6.16.0"},{"package":"stm","version":"2.5.0.2"},{"package":"exceptions","version":"0.10.4"}],"dependencies":[{"cabal_sha256":null,"flags":[],"package":"Cabal-syntax","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"},{"cabal_sha256":null,"flags":[],"package":"Cabal","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"},{"cabal_sha256":"804e2574bc7e32d08cbab91e47ee6287b4df7d50851d73f9e778f94a9a7814c7","flags":["-optimised-mixer"],"package":"splitmix","revision":1,"source":"hackage","src_sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","version":"0.1.0.4"},{"cabal_sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","flags":[],"package":"random","revision":0,"source":"hackage","src_sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","version":"1.2.1.1"},{"cabal_sha256":"50b2f002c68fe67730ee7a3cd8607486197dd99b084255005ad51ecd6970a41b","flags":["+containers","+integer-gmp","-random-initial-seed"],"package":"hashable","revision":0,"source":"hackage","src_sha256":"e1b305c280e66ad827edeaedd6933b9fc4174f626882877eab2a08344e665e87","version":"1.4.1.0"},{"cabal_sha256":"2b9409023536823233ce3134558565d01b3382e651fa54ac8cb8a99967e023c9","flags":["-bench"],"package":"async","revision":2,"source":"hackage","src_sha256":"484df85be0e76c4fed9376451e48e1d0c6e97952ce79735b72d54297e7e0a725","version":"2.2.4"},{"cabal_sha256":"bc14969ea4adfec6eee20264decf4a07c4002b38b2aa802d58d86b1a2cf7b895","flags":["-old-bytestring","-old-time"],"package":"tar","revision":5,"source":"hackage","src_sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","version":"0.5.1.1"},{"cabal_sha256":"e3d78b13db9512aeb106e44a334ab42b7aa48d26c097299084084cb8be5c5568","flags":["-devel"],"package":"network","revision":0,"source":"hackage","src_sha256":"7f7620fef1a1af3d3d6747f510e73223a5c600e7d7fd9ace073d1222bdc63d85","version":"3.1.2.7"},{"cabal_sha256":"6ca77c4e80b4e4109e30549c269631a9cc295c8fc2431ce4123972a5f80f7bfc","flags":[],"package":"th-compat","revision":0,"source":"hackage","src_sha256":"d8f97ac14ab47b6b8a7b0fdb4ff95426322ec56badd01652ac15da4a44d4bab8","version":"0.1.4"},{"cabal_sha256":"a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d","flags":[],"package":"network-uri","revision":0,"source":"hackage","src_sha256":"57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584","version":"2.6.4.1"},{"cabal_sha256":"b878d575c470bd1f72d37af6654d924ab2b9489d88de8a71bd74d9d5d726c013","flags":["-conduit10","+network-uri","-warn-as-error","-warp-tests"],"package":"HTTP","revision":1,"source":"hackage","src_sha256":"df31d8efec775124dab856d7177ddcba31be9f9e0836ebdab03d94392f2dd453","version":"4000.4.1"},{"cabal_sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","flags":[],"package":"base16-bytestring","revision":0,"source":"hackage","src_sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","version":"1.0.2.0"},{"cabal_sha256":"50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8","flags":[],"package":"base64-bytestring","revision":0,"source":"hackage","src_sha256":"fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9","version":"1.2.1.0"},{"cabal_sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","flags":[],"package":"edit-distance","revision":1,"source":"hackage","src_sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","version":"0.2.2.1"},{"cabal_sha256":null,"flags":["-debug-conflict-sets","-debug-expensive-assertions","-debug-tracetree"],"package":"cabal-install-solver","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"},{"cabal_sha256":"facd0c04925ef925ec05243471fd16055229fdf51f64db1a1049de0cc6c6dfc3","flags":["-exe","+use-cbits"],"package":"cryptohash-sha256","revision":1,"source":"hackage","src_sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","version":"0.11.102.1"},{"cabal_sha256":"ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42","flags":["-example"],"package":"echo","revision":0,"source":"hackage","src_sha256":"c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43","version":"0.1.4"},{"cabal_sha256":"885c9e2410e5d91a08b199897df0867fecedf818216d7329a2d43a512833dd63","flags":["+no-donna","+test-doctests","+test-hlint","+test-properties"],"package":"ed25519","revision":6,"source":"hackage","src_sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","version":"0.0.5.0"},{"cabal_sha256":"efd4c08c4df1ac3f423858a834c0e3b5b4909febda66a901d12a8e1d57bddaa8","flags":["+ofd-locking"],"package":"lukko","revision":3,"source":"hackage","src_sha256":"a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f","version":"0.1.1.3"},{"cabal_sha256":"8214a9d37580f17f8b675109578a5dbe6853559eef156e34dc2233f1123ace33","flags":["-bundled-c-zlib","-non-blocking-ffi","-pkg-config"],"package":"zlib","revision":0,"source":"hackage","src_sha256":"9eaa989ad4534438b5beb51c1d3a4c8f6a088fdff0b259a5394fbf39aaee04da","version":"0.6.3.0"},{"cabal_sha256":"1a6cf81a4871559ef5bc47b230278b9ad4bf44f1e4dbf77bdc8e07f6e7b8d005","flags":["+base48","+cabal-syntax","+lukko","-mtl21","-old-directory","+use-network-uri"],"package":"hackage-security","revision":1,"source":"hackage","src_sha256":"a833a31610220506557e96fb6e3e8b05a2e1db8e7ebc06e91bbb699ddde0b276","version":"0.6.2.2"},{"cabal_sha256":"4ff4425c710cddf440dfbac6cd52310bb6b23e17902390ff71c9fc7eaafc4fcc","flags":[],"package":"regex-base","revision":1,"source":"hackage","src_sha256":"7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1","version":"0.94.0.2"},{"cabal_sha256":"9dbba4b65a3bb6975d9740814be5593c6b2d2d6a0b3febc8ec940edb9a9bbdf4","flags":["-_regex-posix-clib"],"package":"regex-posix","revision":1,"source":"hackage","src_sha256":"c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c","version":"0.96.0.1"},{"cabal_sha256":"61e2d98ff634b8b4b3db467772420c0f9c79c2da9ddf3d2daeb2af2417f2c535","flags":[],"package":"resolv","revision":5,"source":"hackage","src_sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","version":"0.1.2.0"},{"cabal_sha256":"6e9b1b233af80cc0aa17ea858d2641ba146fb11cbcc5970a52649e89d77282e2","flags":[],"package":"safe-exceptions","revision":0,"source":"hackage","src_sha256":"91ce28d8f8a6efd31788d4827ed5cdcb9a546ad4053a86c56f7947c66a30b5bf","version":"0.1.7.3"},{"cabal_sha256":null,"flags":["+lukko","+native-dns"],"package":"cabal-install","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"}]}
\ No newline at end of file
diff --git a/srcpkgs/cabal-install/template b/srcpkgs/cabal-install/template
index b3ebc1bb15b9..9f9bd3afe8a2 100644
--- a/srcpkgs/cabal-install/template
+++ b/srcpkgs/cabal-install/template
@@ -1,7 +1,7 @@
 # Template file for 'cabal-install'
 pkgname=cabal-install
-version=3.6.3.0
-revision=2
+version=3.8.1.0
+revision=1
 hostmakedepends="ghc curl tar which"
 makedepends="gmp-devel libffi-devel zlib-devel python3"
 depends="ghc"
@@ -10,24 +10,24 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
 license="BSD-3-Clause"
 homepage="https://hackage.haskell.org/package/cabal-install"
 distfiles="https://github.com/haskell/cabal/archive/Cabal-v${version}.tar.gz"
-checksum=dea086acad6d9fe5fe22d838b95b4e988022e8519f38d41609119ea32bfb7466
+checksum=d4eff9c1fcc5212360afac8d97da83b3aff79365490a449e9c47d3988c14b6bc
 nopie_files="/usr/bin/cabal"
 nocross=yes
 
 post_extract() {
-	cp "${FILESDIR}/linux-9.0.2.json" bootstrap/
+	cp "${FILESDIR}/linux-9.2.5.json" bootstrap/
 }
 
 post_patch() {
 	case "${XBPS_TARGET_MACHINE}" in
 	i686*)
 		# https://github.com/haskell/cabal/issues/7313
-		vsed -i -e 's/+ofd-locking/-ofd-locking/' bootstrap/linux-9.0.2.json ;;
+		vsed -i -e 's/+ofd-locking/-ofd-locking/' bootstrap/linux-9.2.5.json ;;
 	esac
 }
 
 do_build() {
-	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-9.0.2.json
+	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-9.2.5.json
 }
 do_install() {
 	vbin _build/bin/cabal

From bfcde1a6bcb96b4aeb73a1b115d301425f323814 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Mon, 21 Nov 2022 18:38:18 +0100
Subject: [PATCH 03/20] stack: update to 2.9.3

+ Remove most outdated patches concerning version bounds and
  compatibility with GHC 9.0.2.
+ Adjust ppc patch.
+ New showStackVersion patch to build with GHC 9.2.5.
---
 srcpkgs/stack/patches/aeson.patch            |  46 ----
 srcpkgs/stack/patches/fsnotify.patch         |  16 --
 srcpkgs/stack/patches/ghc9.0.2.patch         | 212 -------------------
 srcpkgs/stack/patches/persistent.patch       |  46 ----
 srcpkgs/stack/patches/ppc.patch              |   3 +-
 srcpkgs/stack/patches/showStackVersion.patch |  10 +
 srcpkgs/stack/template                       |  10 +-
 7 files changed, 16 insertions(+), 327 deletions(-)
 delete mode 100644 srcpkgs/stack/patches/aeson.patch
 delete mode 100644 srcpkgs/stack/patches/fsnotify.patch
 delete mode 100644 srcpkgs/stack/patches/ghc9.0.2.patch
 delete mode 100644 srcpkgs/stack/patches/persistent.patch
 create mode 100644 srcpkgs/stack/patches/showStackVersion.patch

diff --git a/srcpkgs/stack/patches/aeson.patch b/srcpkgs/stack/patches/aeson.patch
deleted file mode 100644
index 68f267c30cc8..000000000000
--- a/srcpkgs/stack/patches/aeson.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-commit 09e233ed73aa3335642f97c080ef27e42047c527
-Author: q66 <daniel@octaforge.org>
-Date:   Fri Mar 11 04:37:15 2022 +0100
-
-    constrain aeson to prevent build failures
-
-diff --git a/stack.cabal b/stack.cabal
-index dba5bf0..0195f2c 100644
---- a/stack.cabal
-+++ b/stack.cabal
-@@ -231,7 +231,7 @@ library
- 
-     build-depends:
-         Cabal >=3.2.1.0,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
-@@ -357,7 +357,7 @@ executable stack
- 
-     build-depends:
-         Cabal >=3.2.1.0,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
-@@ -485,7 +485,7 @@ executable stack-integration-test
- 
-     build-depends:
-         Cabal >=3.2.1.0,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
-@@ -621,7 +621,7 @@ test-suite stack-test
-     build-depends:
-         Cabal >=3.2.1.0,
-         QuickCheck >=2.14.2,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
diff --git a/srcpkgs/stack/patches/fsnotify.patch b/srcpkgs/stack/patches/fsnotify.patch
deleted file mode 100644
index f82fd8f73004..000000000000
--- a/srcpkgs/stack/patches/fsnotify.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-src/Stack/FileWatch.hs:29:49: error: Not in scope: ‘confUsePolling’
-   |
-29 | fileWatchPoll = fileWatchConf $ defaultConfig { confUsePolling = True }
-   |                                                 ^^^^^^^^^^^^^^
-
---- a/stack.cabal
-+++ b/stack.cabal
-@@ -256,7 +256,7 @@ library
-         file-embed >=0.0.14.0,
-         filelock >=0.1.1.5,
-         filepath >=1.4.2.1,
--        fsnotify >=0.3.0.1,
-+        fsnotify >=0.3.0.1 && <0.4.0.0,
-         generic-deriving >=1.13.1,
-         hackage-security >=0.6.0.1,
-         hashable >=1.3.0.0,
diff --git a/srcpkgs/stack/patches/ghc9.0.2.patch b/srcpkgs/stack/patches/ghc9.0.2.patch
deleted file mode 100644
index bdd77de58c6b..000000000000
--- a/srcpkgs/stack/patches/ghc9.0.2.patch
+++ /dev/null
@@ -1,212 +0,0 @@
-From cb7e56842a25f93142545fad21306a7c1750fbbf Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:26:22 -0700
-Subject: [PATCH 1/6] Use Cabal 3.4.0.0
-
----
- stack.yaml | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/stack.yaml b/stack.yaml
-index 005bd19f4..9472509be 100644
---- a/stack.yaml
-+++ b/stack.yaml
-@@ -20,6 +20,9 @@ flags:
- ghc-options:
-    "$locals": -fhide-source-paths
-
-+extra-deps:
-+- Cabal-3.4.0.0
-+
- drop-packages:
- # See https://github.com/commercialhaskell/stack/pull/4712
- - cabal-install
-
-From 11e11ab0edeba033b40a7fc62434be58dea82ce2 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:40:56 -0700
-Subject: [PATCH 2/6] Fix Flag => PackageFlag
-
----
- src/Stack/BuildPlan.hs | 2 +-
- src/Stack/Package.hs   | 8 ++++----
- 2 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/src/Stack/BuildPlan.hs b/src/Stack/BuildPlan.hs
-index 36f82236e..c5c80efc6 100644
---- a/src/Stack/BuildPlan.hs
-+++ b/src/Stack/BuildPlan.hs
-@@ -224,7 +224,7 @@ selectPackageBuildPlan platform compiler pool gpd =
-     flagCombinations :: NonEmpty [(FlagName, Bool)]
-     flagCombinations = mapM getOptions (genPackageFlags gpd)
-       where
--        getOptions :: C.Flag -> NonEmpty (FlagName, Bool)
-+        getOptions :: C.PackageFlag -> NonEmpty (FlagName, Bool)
-         getOptions f
-             | flagManual f = (fname, flagDefault f) :| []
-             | flagDefault f = (fname, True) :| [(fname, False)]
-diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs
-index 4db50d2a4..d9bca7af5 100644
---- a/src/Stack/Package.hs
-+++ b/src/Stack/Package.hs
-@@ -128,7 +128,7 @@ resolvePackage packageConfig gpkg =
-         (resolvePackageDescription packageConfig gpkg)
-
- packageFromPackageDescription :: PackageConfig
--                              -> [D.Flag]
-+                              -> [PackageFlag]
-                               -> PackageDescriptionPair
-                               -> Package
- packageFromPackageDescription packageConfig pkgFlags (PackageDescriptionPair pkgNoMod pkg) =
-@@ -935,9 +935,9 @@ resolvePackageDescription packageConfig (GenericPackageDescription desc defaultF
- -- | Make a map from a list of flag specifications.
- --
- -- What is @flagManual@ for?
--flagMap :: [Flag] -> Map FlagName Bool
-+flagMap :: [PackageFlag] -> Map FlagName Bool
- flagMap = M.fromList . map pair
--  where pair :: Flag -> (FlagName, Bool)
-+  where pair :: PackageFlag -> (FlagName, Bool)
-         pair = flagName &&& flagDefault
-
- data ResolveConditions = ResolveConditions
-@@ -986,7 +986,7 @@ resolveConditions rc addDeps (CondNode lib deps cs) = basic <> children
-                   case v of
-                     OS os -> os == rcOS rc
-                     Arch arch -> arch == rcArch rc
--                    Flag flag ->
-+                    PackageFlag flag ->
-                       fromMaybe False $ M.lookup flag (rcFlags rc)
-                       -- NOTE:  ^^^^^ This should never happen, as all flags
-                       -- which are used must be declared. Defaulting to
-
-From 8facd731ec3f2bbc15a083750740929167b33bb2 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:55:30 -0700
-Subject: [PATCH 3/6] Fix CabalSpecVersion
-
----
- src/Stack/Package.hs | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs
-index d9bca7af5..fca039140 100644
---- a/src/Stack/Package.hs
-+++ b/src/Stack/Package.hs
-@@ -32,6 +32,7 @@ import           Data.List (find, isPrefixOf, unzip)
- import qualified Data.Map.Strict as M
- import qualified Data.Set as S
- import qualified Data.Text as T
-+import           Distribution.CabalSpecVersion (CabalSpecVersion, cabalSpecMinimumLibraryVersion)
- import           Distribution.Compiler
- import           Distribution.ModuleName (ModuleName)
- import qualified Distribution.ModuleName as Cabal
-@@ -190,7 +191,7 @@ packageFromPackageDescription packageConfig pkgFlags (PackageDescriptionPair pkg
-           (library pkg)
-     , packageBuildType = buildType pkg
-     , packageSetupDeps = msetupDeps
--    , packageCabalSpec = either orLaterVersion id $ specVersionRaw pkg
-+    , packageCabalSpec = orLaterVersion $ mkVersion $ cabalSpecMinimumLibraryVersion $ specVersion pkg
-     }
-   where
-     extraLibNames = S.union subLibNames foreignLibNames
-@@ -696,7 +697,7 @@ packageDescModulesAndFiles pkg = do
-
- -- | Resolve globbing of files (e.g. data files) to absolute paths.
- resolveGlobFiles
--  :: Version -- ^ cabal file version
-+  :: CabalSpecVersion -- ^ cabal file version
-   -> [String]
-   -> RIO Ctx (Set (Path Abs File))
- resolveGlobFiles cabalFileVersion =
-
-From 004f14652409b7d0645215d354b2e599eb7f76bc Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:55:40 -0700
-Subject: [PATCH 4/6] Fix GenericPackageDescription
-
----
- src/Stack/Build.hs   | 2 +-
- src/Stack/Package.hs | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/Stack/Build.hs b/src/Stack/Build.hs
-index 23b9a9719..856903bed 100644
---- a/src/Stack/Build.hs
-+++ b/src/Stack/Build.hs
-@@ -358,7 +358,7 @@ checkComponentsBuildable lps =
- checkSubLibraryDependencies :: HasLogFunc env => [ProjectPackage] -> RIO env ()
- checkSubLibraryDependencies proj = do
-   forM_ proj $ \p -> do
--    C.GenericPackageDescription _ _ lib subLibs foreignLibs exes tests benches <- liftIO $ cpGPD . ppCommon $ p
-+    C.GenericPackageDescription _ _ _ lib subLibs foreignLibs exes tests benches <- liftIO $ cpGPD . ppCommon $ p
-
-     let dependencies = concatMap getDeps subLibs <>
-                        concatMap getDeps foreignLibs <>
-diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs
-index fca039140..39aad4d2f 100644
---- a/src/Stack/Package.hs
-+++ b/src/Stack/Package.hs
-@@ -863,7 +863,7 @@ data PackageDescriptionPair = PackageDescriptionPair
- resolvePackageDescription :: PackageConfig
-                           -> GenericPackageDescription
-                           -> PackageDescriptionPair
--resolvePackageDescription packageConfig (GenericPackageDescription desc defaultFlags mlib subLibs foreignLibs' exes tests benches) =
-+resolvePackageDescription packageConfig (GenericPackageDescription desc _ defaultFlags mlib subLibs foreignLibs' exes tests benches) =
-     PackageDescriptionPair
-       { pdpOrigBuildable = go False
-       , pdpModifiedBuildable = go True
-
-From 820797b566ef981936907f4d19658259d4a635a8 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 17:01:01 -0700
-Subject: [PATCH 5/6] Fix generatePackageVersionMacros
-
----
- src/Stack/Build/Execute.hs | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/Stack/Build/Execute.hs b/src/Stack/Build/Execute.hs
-index 1e381dd21..aedd7fee5 100644
---- a/src/Stack/Build/Execute.hs
-+++ b/src/Stack/Build/Execute.hs
-@@ -1214,7 +1214,7 @@ withSingleContext ActionContext {..} ee@ExecuteEnv {..} task@Task {..} allDeps m
-                             let macroDeps = mapMaybe snd matchedDeps
-                                 cppMacrosFile = setupDir </> relFileSetupMacrosH
-                                 cppArgs = ["-optP-include", "-optP" ++ toFilePath cppMacrosFile]
--                            writeBinaryFileAtomic cppMacrosFile (encodeUtf8Builder (T.pack (C.generatePackageVersionMacros macroDeps)))
-+                            writeBinaryFileAtomic cppMacrosFile (encodeUtf8Builder (T.pack (C.generatePackageVersionMacros (packageVersion package) macroDeps)))
-                             return (packageDBArgs ++ depsArgs ++ cppArgs)
-
-                         -- This branch is usually taken for builds, and
-
-From 336ab515e30f03c274f89ebe1cbc6aa1e597c2a4 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 17:04:16 -0700
-Subject: [PATCH 6/6] Fix ModuleReexport
-
----
- src/Stack/Script.hs | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/Stack/Script.hs b/src/Stack/Script.hs
-index 6bb67c049..9ebd2173d 100644
---- a/src/Stack/Script.hs
-+++ b/src/Stack/Script.hs
-@@ -18,6 +18,7 @@ import           Distribution.Compiler      (CompilerFlavor (..))
- import           Distribution.ModuleName    (ModuleName)
- import qualified Distribution.PackageDescription as PD
- import qualified Distribution.Types.CondTree as C
-+import qualified Distribution.Types.ModuleReexport as ModuleReexport
- import           Distribution.Types.PackageName (mkPackageName)
- import           Distribution.Types.VersionRange (withinRange)
- import           Distribution.System        (Platform (..))
-@@ -280,7 +281,7 @@ allExposedModules gpd = do
-       mlibrary = snd . C.simplifyCondTree checkCond <$> PD.condLibrary gpd
-   pure $ case mlibrary  of
-     Just lib -> PD.exposedModules lib ++
--                map PD.moduleReexportName (PD.reexportedModules lib)
-+                map ModuleReexport.moduleReexportName (PD.reexportedModules lib)
-     Nothing  -> mempty
-
- -- | The Stackage project introduced the concept of hidden packages,
diff --git a/srcpkgs/stack/patches/persistent.patch b/srcpkgs/stack/patches/persistent.patch
deleted file mode 100644
index cf462d7b80c2..000000000000
--- a/srcpkgs/stack/patches/persistent.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-commit 188d7ece06ee06ed6ccaf0df0c46285bd43898f4
-Author: q66 <daniel@octaforge.org>
-Date:   Thu Apr 28 05:02:09 2022 +0200
-
-    constrain persistent to fix build
-
-diff --git a/stack.cabal b/stack.cabal
-index dba5bf0..e221321 100644
---- a/stack.cabal
-+++ b/stack.cabal
-@@ -281,7 +281,7 @@ library
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
-@@ -407,7 +407,7 @@ executable stack
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
-@@ -537,7 +537,7 @@ executable stack-integration-test
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
-@@ -672,7 +672,7 @@ test-suite stack-test
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
diff --git a/srcpkgs/stack/patches/ppc.patch b/srcpkgs/stack/patches/ppc.patch
index fc4c540f0f92..4ab025e7663c 100644
--- a/srcpkgs/stack/patches/ppc.patch
+++ b/srcpkgs/stack/patches/ppc.patch
@@ -22,11 +22,10 @@
 
 --- a/stack.cabal
 +++ b/stack.cabal
-@@ -246,6 +246,7 @@
+@@ -246,4 +246,5 @@
          conduit >=1.3.4.1,
          conduit-extra >=1.3.5,
          containers >=0.6.2.1,
 +        cpu >=0.1.2,
          cryptonite >=0.27,
          cryptonite-conduit >=0.2.2,
-         deepseq >=1.4.4.0,
diff --git a/srcpkgs/stack/patches/showStackVersion.patch b/srcpkgs/stack/patches/showStackVersion.patch
new file mode 100644
index 000000000000..454e0c6dfe53
--- /dev/null
+++ b/srcpkgs/stack/patches/showStackVersion.patch
@@ -0,0 +1,10 @@
+--- a/src/main/BuildInfo.hs
++++ b/src/main/BuildInfo.hs
+@@ -32,5 +32,6 @@
+ #endif
+ import           Stack.Prelude
+ import qualified Paths_stack as Meta
++import Stack.Types.Version (showStackVersion)
+
+ versionString' :: String
+ #ifdef USE_GIT_INFO
diff --git a/srcpkgs/stack/template b/srcpkgs/stack/template
index b6c1f1578ed9..c76f90ff89ed 100644
--- a/srcpkgs/stack/template
+++ b/srcpkgs/stack/template
@@ -1,8 +1,8 @@
 # Template file for 'stack'
 pkgname=stack
-version=2.7.5
-revision=2
-_stackage="lts-19.0"
+version=2.9.3
+revision=1
+_stackage="lts-20.0"
 hostmakedepends="cabal-install pkg-config unzip"
 makedepends="zlib-devel pcre-devel"
 depends="git gmp-devel iana-etc"
@@ -12,8 +12,8 @@ license="BSD-3-Clause"
 homepage="https://haskellstack.org"
 distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz
  https://www.stackage.org/${_stackage}/cabal.config>cabal.config-${_stackage}"
-checksum="9ddd44c2a62e9404194d69e7dc1c94e707910620316b66d6ac0b3201a8f37e80
- e1de952bb6f62573e5c211df99ce6bb684c4cae7845f16c347ce9aa503d6374f"
+checksum="c4700cb227dd624249db2e649445f3df3d558c8a5ab2c98b5c7bf8545901f2dc
+ addcb336500f35b565403e72b0b3793fee74313439eacfb79e0c2121d88bc8ea"
 skip_extraction="cabal.config-${_stackage}"
 nocross=yes
 nopie_files="/usr/bin/stack"

From 43c22912fcbee45621319d96abf8603e2d5f6339 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Tue, 27 Dec 2022 15:29:21 +0100
Subject: [PATCH 04/20] hlint: update to 3.4.1

---
 srcpkgs/hlint/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/hlint/template b/srcpkgs/hlint/template
index 0109be25805f..c5efc617393c 100644
--- a/srcpkgs/hlint/template
+++ b/srcpkgs/hlint/template
@@ -1,16 +1,16 @@
 # Template file for 'hlint'
 pkgname=hlint
-version=3.3.6
+version=3.4.1
 revision=1
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 makedepends="ncurses-devel"
 short_desc="Haskell source code suggestions"
 maintainer="Inokentiy Babushkin <twk@twki.de>"
 license="BSD-3-Clause"
 homepage="https://github.com/ndmitchell/hlint"
 distfiles="https://github.com/ndmitchell/${pkgname}/archive/v${version}.tar.gz"
-checksum=7d536c03f77a0c259efb2b00b525ef34578ca8a4a95ccb412708e8c7172e2e6a
+checksum=667b1ee82ce47706e8206c4994add2483b0bf21c67861d4652b2b5aa90299dc5
 nocross=yes # Can't yet cross compile Haskell
 nopie_files="/usr/bin/hlint"
 

From bef4ba87d4872f0785d1d546613599791b2fa456 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Tue, 27 Dec 2022 16:19:12 +0100
Subject: [PATCH 05/20] hoogle: bump for stackage lts-20.0

---
 srcpkgs/hoogle/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/hoogle/template b/srcpkgs/hoogle/template
index dc487cab4017..00de03e81eef 100644
--- a/srcpkgs/hoogle/template
+++ b/srcpkgs/hoogle/template
@@ -1,9 +1,9 @@
 # Template file for 'hoogle'
 pkgname=hoogle
 version=5.0.18.3
-revision=1
+revision=2
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 makedepends="zlib-devel"
 short_desc="Haskell API search engine"
 maintainer="Inokentiy Babushkin <twk@twki.de>"

From 0ff10d252f1074acd9450926e1bba8eded586310 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Tue, 27 Dec 2022 17:38:42 +0100
Subject: [PATCH 06/20] pandoc: update to 2.19.2

+ Update pandoc-crossref and it's associated cabal file.
+ Bump lua dependency.
+ Remove roman-numerals dependency, as pandoc-crossref now has its own
  implementation of this.
---
 srcpkgs/pandoc/files/pandoc-crossref.cabal | 139 +++++++++++++++++----
 srcpkgs/pandoc/template                    |  17 ++-
 2 files changed, 121 insertions(+), 35 deletions(-)

diff --git a/srcpkgs/pandoc/files/pandoc-crossref.cabal b/srcpkgs/pandoc/files/pandoc-crossref.cabal
index 7aacc47278f3..850405534565 100644
--- a/srcpkgs/pandoc/files/pandoc-crossref.cabal
+++ b/srcpkgs/pandoc/files/pandoc-crossref.cabal
@@ -1,13 +1,9 @@
-cabal-version: 2.0
-
--- This file has been generated from package.yaml by hpack version 0.34.6.
+-- This file has been generated from package.yaml by hpack version 0.34.4.
 --
 -- see: https://github.com/sol/hpack
---
--- hash: 20655cd6263e9fe7e5737ee81b093c8c6f5eae67e260ddd3a821ac6ef5e35e69
 
 name:           pandoc-crossref
-version:        0.3.13.0
+version:        0.3.14.0
 synopsis:       Pandoc filter for cross-references
 description:    pandoc-crossref is a pandoc filter for numbering figures, equations, tables and cross-references to them.
 category:       Text
@@ -18,6 +14,99 @@ maintainer:     root@livid.pp.ru
 license:        GPL-2
 license-file:   LICENSE
 build-type:     Simple
+extra-source-files:
+    test/demo-chapters.inc
+    test/demo.inc
+    CHANGELOG.md
+    licenses/LICENSE.roman-numerals
+data-files:
+    docs/demo/demo.md
+    docs/index.md
+    test/m2m/chapDelim/expect.md
+    test/m2m/chapDelim/expect.tex
+    test/m2m/chapDelim/input.md
+    test/m2m/delim/expect.md
+    test/m2m/delim/expect.tex
+    test/m2m/delim/input.md
+    test/m2m/emptyChapterLabels/expect.md
+    test/m2m/emptyChapterLabels/expect.tex
+    test/m2m/emptyChapterLabels/input.md
+    test/m2m/eqnBlockTemplate/expect.md
+    test/m2m/eqnBlockTemplate/expect.tex
+    test/m2m/eqnBlockTemplate/input.md
+    test/m2m/eqnInlineTemplate/expect.md
+    test/m2m/eqnInlineTemplate/expect.tex
+    test/m2m/eqnInlineTemplate/input.md
+    test/m2m/equationNumberLaTeX/expect.md
+    test/m2m/equationNumberLaTeX/expect.tex
+    test/m2m/equationNumberLaTeX/input.md
+    test/m2m/equations-auto/expect.md
+    test/m2m/equations-auto/expect.tex
+    test/m2m/equations-auto/input.md
+    test/m2m/equations-tables-auto/expect.md
+    test/m2m/equations-tables-auto/expect.tex
+    test/m2m/equations-tables-auto/input.md
+    test/m2m/equations-tables/expect.md
+    test/m2m/equations-tables/expect.tex
+    test/m2m/equations-tables/input.md
+    test/m2m/equations/expect.md
+    test/m2m/equations/expect.tex
+    test/m2m/equations/input.md
+    test/m2m/label-precedence/expect.md
+    test/m2m/label-precedence/expect.tex
+    test/m2m/label-precedence/input.md
+    test/m2m/links-names/expect.md
+    test/m2m/links-names/expect.tex
+    test/m2m/links-names/input.md
+    test/m2m/links/expect.md
+    test/m2m/links/expect.tex
+    test/m2m/links/input.md
+    test/m2m/listing-captions-ids/expect.md
+    test/m2m/listing-captions-ids/expect.tex
+    test/m2m/listing-captions-ids/input.md
+    test/m2m/listings-code-block-caption-278/expect.md
+    test/m2m/listings-code-block-caption-278/expect.tex
+    test/m2m/listings-code-block-caption-278/input.md
+    test/m2m/listOfTemplates-buillet-list/expect.md
+    test/m2m/listOfTemplates-buillet-list/expect.tex
+    test/m2m/listOfTemplates-buillet-list/input.md
+    test/m2m/listOfTemplates-ord-list/expect.md
+    test/m2m/listOfTemplates-ord-list/expect.tex
+    test/m2m/listOfTemplates-ord-list/input.md
+    test/m2m/listOfTemplates/expect.md
+    test/m2m/listOfTemplates/expect.tex
+    test/m2m/listOfTemplates/input.md
+    test/m2m/loxItemTitle/expect.md
+    test/m2m/loxItemTitle/expect.tex
+    test/m2m/loxItemTitle/input.md
+    test/m2m/multiple-eqn-same-para/expect.md
+    test/m2m/multiple-eqn-same-para/expect.tex
+    test/m2m/multiple-eqn-same-para/input.md
+    test/m2m/secLabels/expect.md
+    test/m2m/secLabels/expect.tex
+    test/m2m/secLabels/input.md
+    test/m2m/secLevelLabels/expect.md
+    test/m2m/secLevelLabels/expect.tex
+    test/m2m/secLevelLabels/input.md
+    test/m2m/section-template/expect.md
+    test/m2m/section-template/expect.tex
+    test/m2m/section-template/input.md
+    test/m2m/setLabelAttribute/expect.md
+    test/m2m/setLabelAttribute/expect.tex
+    test/m2m/setLabelAttribute/input.md
+    test/m2m/subfigures-ccsDelim/expect.md
+    test/m2m/subfigures-ccsDelim/expect.tex
+    test/m2m/subfigures-ccsDelim/input.md
+    test/m2m/subfigures-grid/expect.md
+    test/m2m/subfigures-grid/expect.tex
+    test/m2m/subfigures-grid/input.md
+    test/m2m/subfigures/expect.md
+    test/m2m/subfigures/expect.tex
+    test/m2m/subfigures/input.md
+    test/m2m/titlesInRefs/expect.md
+    test/m2m/titlesInRefs/expect.tex
+    test/m2m/titlesInRefs/input.md
+cabal-version: 1.12
 
 source-repository head
   type: git
@@ -32,6 +121,7 @@ library
   exposed-modules:
       Text.Pandoc.CrossRef
   other-modules:
+      Text.Numeral.Roman
       Text.Pandoc.CrossRef.References
       Text.Pandoc.CrossRef.References.Blocks
       Text.Pandoc.CrossRef.References.List
@@ -60,13 +150,12 @@ library
     , microlens >=0.4.12.0 && <0.5.0.0
     , microlens-mtl >=0.2.0.1 && <0.3.0.0
     , microlens-th >=0.4.3.10 && <0.5.0.0
-    , mtl >=1.1 && <2.3
-    , pandoc >=2.10 && <2.18
-    , pandoc-types >=1.21 && <1.23
-    , roman-numerals ==0.5.*
+    , mtl >=1.1 && <2.4
+    , pandoc >=2.18 && <2.20
+    , pandoc-types >=1.22.2 && <1.23
     , syb >=0.4 && <0.8
     , template-haskell >=2.7.0.0 && <3.0.0.0
-    , text >=1.2.2 && <1.3
+    , text >=1.2.2 && <2.1
     , utility-ht >=0.0.11 && <0.1.0
   default-language: Haskell2010
 
@@ -82,13 +171,13 @@ executable pandoc-crossref
     , deepseq ==1.4.*
     , gitrev >=1.3.1 && <1.4
     , open-browser ==0.2.*
-    , optparse-applicative >=0.13 && <0.17
-    , pandoc >=2.10 && <2.18
+    , optparse-applicative >=0.13 && <0.18
+    , pandoc >=2.18 && <2.20
     , pandoc-crossref
-    , pandoc-types >=1.21 && <1.23
+    , pandoc-types >=1.22.2 && <1.23
     , template-haskell >=2.7.0.0 && <3.0.0.0
     , temporary >=1.2 && <1.4
-    , text >=1.2.2 && <1.3
+    , text >=1.2.2 && <2.1
   default-language: Haskell2010
 
 test-suite test-integrative
@@ -102,10 +191,10 @@ test-suite test-integrative
     , directory >=1 && <1.4
     , filepath >=1.1 && <1.5
     , hspec >=2.4.4 && <3
-    , pandoc >=2.10 && <2.18
+    , pandoc >=2.18 && <2.20
     , pandoc-crossref
-    , pandoc-types >=1.21 && <1.23
-    , text >=1.2.2 && <1.3
+    , pandoc-types >=1.22.2 && <1.23
+    , text >=1.2.2 && <2.1
   if flag(enable_flaky_tests)
     cpp-options: -DFLAKY
   default-language: Haskell2010
@@ -128,10 +217,10 @@ test-suite test-pandoc-crossref
     , hspec >=2.4.4 && <3
     , microlens >=0.4.12.0 && <0.5.0.0
     , mtl >=1.1 && <2.3
-    , pandoc >=2.10 && <2.18
+    , pandoc >=2.18 && <2.20
     , pandoc-crossref
-    , pandoc-types >=1.21 && <1.23
-    , text >=1.2.2 && <1.3
+    , pandoc-types >=1.22.2 && <1.23
+    , text >=1.2.2 && <2.1
   if flag(enable_flaky_tests)
     cpp-options: -DFLAKY
   default-language: Haskell2010
@@ -146,9 +235,9 @@ benchmark simple
   ghc-options: -Wall -fno-warn-unused-do-bind -threaded
   build-depends:
       base >=4.11 && <5
-    , criterion >=1.5.9.0 && <1.6
-    , pandoc >=2.10 && <2.18
+    , criterion >=1.5.9.0 && <1.7
+    , pandoc >=2.18 && <2.20
     , pandoc-crossref
-    , pandoc-types >=1.21 && <1.23
-    , text >=1.2.2 && <1.3
+    , pandoc-types >=1.22.2 && <1.23
+    , text >=1.2.2 && <2.1
   default-language: Haskell2010
diff --git a/srcpkgs/pandoc/template b/srcpkgs/pandoc/template
index 9bdf32ef3c53..0ce941c6fcc5 100644
--- a/srcpkgs/pandoc/template
+++ b/srcpkgs/pandoc/template
@@ -1,20 +1,19 @@
 # Template file for 'pandoc'
 pkgname=pandoc
 # Keep in sync with http://www.stackage.org/lts
-version=2.17.1.1
+version=2.19.2
 revision=1
 _sidenote_version=0.22.1.0
 _monad_gen_version=0.3.0.1
-_crossref_version=0.3.12.2
-_roman_numerals_version=0.5.1.5
+_crossref_version=0.3.14.0
 create_wrksrc=yes
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 make_build_args="
  --flag pandoc:embed_data_files
  --flag=lua:pkg-config"
 hostmakedepends="pkg-config unzip wget"
-makedepends="zlib-devel lua53-devel tar"
+makedepends="zlib-devel lua54-devel tar"
 short_desc="Universal converter between markup formats"
 maintainer="slotThe <soliditsallgood@mailbox.org>"
 license="GPL-2.0-or-later, BSD-3-Clause"
@@ -22,13 +21,11 @@ homepage="http://johnmacfarlane.net/pandoc/"
 distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz
  https://hackage.haskell.org/package/${pkgname}-sidenote-${_sidenote_version}/${pkgname}-sidenote-${_sidenote_version}.tar.gz
  https://hackage.haskell.org/package/monad-gen-${_monad_gen_version}/monad-gen-${_monad_gen_version}.tar.gz
- https://hackage.haskell.org/package/${pkgname}-crossref-${_crossref_version}/${pkgname}-crossref-${_crossref_version}.tar.gz
- https://hackage.haskell.org/package/roman-numerals-${_roman_numerals_version}/roman-numerals-${_roman_numerals_version}.tar.gz"
-checksum="649ec528d1413130c5ce304b826ff473b3696269eea8834d908589e775bd1ad1
+ https://hackage.haskell.org/package/${pkgname}-crossref-${_crossref_version}/${pkgname}-crossref-${_crossref_version}.tar.gz"
+checksum="36e83694c36a5af35a4442c4d5abd4273289d9d309793466f59c1632e87d4245
  c39dd7343b9cb4dc5b1c91c9e47c3d357874e9e1a30b8d377bbea0b1d50323b2
  be8485023fce236b5b915f2f6074f7b0470a2040f84cdd137c5227f1b4c98465
- 94540325c9c98ae4d5199c634bf402ffa41e3c5b020d7207daef90fd9e224fb4
- b9c7195b69b1662a286d2c28a55fafdcb693c522ba5eb54a11b1d0a4e92eaa81"
+ 06d163e2cec3f285919295c41a0580f203bb157d05eb06a494dbc093cbefa5b8"
 subpackages="
  pandoc-sidenote
  pandoc-crossref"

From 64f9e27c94218c3f8b4ac7a3091dabe797feb3d7 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 08:32:36 +0100
Subject: [PATCH 07/20] shellcheck: bump for stackage lts-20.0

---
 srcpkgs/shellcheck/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/shellcheck/template b/srcpkgs/shellcheck/template
index e85667f66918..c06b88603109 100644
--- a/srcpkgs/shellcheck/template
+++ b/srcpkgs/shellcheck/template
@@ -1,9 +1,9 @@
 # Template file for 'shellcheck'
 pkgname=shellcheck
 version=0.9.0
-revision=1
+revision=2
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 hostmakedepends="pandoc"
 short_desc="Static analysis tool for shell scripts"
 maintainer="Diogo Leal <diogo@diogoleal.com>"

From b72f37ea6631b90f2da8c80353754274e5de9dfb Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 08:36:43 +0100
Subject: [PATCH 08/20] New package: greenclip-4.2

Co-authored-by: KawaiiAmber <japaneselearning101@gmail.com>
---
 srcpkgs/greenclip/files/stack.yaml | 12 ++++++++++++
 srcpkgs/greenclip/template         | 19 +++++++++++++++++++
 2 files changed, 31 insertions(+)
 create mode 100644 srcpkgs/greenclip/files/stack.yaml
 create mode 100644 srcpkgs/greenclip/template

diff --git a/srcpkgs/greenclip/files/stack.yaml b/srcpkgs/greenclip/files/stack.yaml
new file mode 100644
index 000000000000..86f4b6fa7ed2
--- /dev/null
+++ b/srcpkgs/greenclip/files/stack.yaml
@@ -0,0 +1,12 @@
+resolver: lts-20.0
+
+packages:
+- '.'
+
+extra-deps:
+- 'wordexp-0.2.2'
+- 'protolude-0.3.2'
+- 'tomland-1.3.3.2'
+- 'validation-selective-0.1.0.2'
+
+allow-newer: true
diff --git a/srcpkgs/greenclip/template b/srcpkgs/greenclip/template
new file mode 100644
index 000000000000..c048afe39e01
--- /dev/null
+++ b/srcpkgs/greenclip/template
@@ -0,0 +1,19 @@
+# Template file for 'greenclip'
+pkgname=greenclip
+version=4.2
+revision=1
+build_style=haskell-stack
+hostmakedepends="pkg-config"
+makedepends="libX11-devel libXinerama-devel libXrandr-devel libXScrnSaver-devel"
+short_desc="Simple clipboard manager to be integrated with rofi"
+maintainer="KawaiiAmber <japaneselearning101@gmail.com>"
+license="BSD-3-Clause"
+homepage="https://github.com/erebe/greenclip"
+distfiles="${homepage}/archive/refs/tags/v${version}.tar.gz"
+checksum=bb95211e3c4bf3ab3a95ede92a678f79bedf2ed2c5b707ba0fb2efbae7fc60cd
+nopie=yes
+nocross="can't yet cross compile Haskell"
+
+post_install() {
+	vlicense LICENSE
+}

From b244badd1691a35e0eeab309f750297cccbdbc0b Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 10:35:09 +0100
Subject: [PATCH 09/20] hledger: update to 1.28

---
 srcpkgs/hledger/files/stack.yaml | 14 +++++---------
 srcpkgs/hledger/template         |  4 ++--
 2 files changed, 7 insertions(+), 11 deletions(-)

diff --git a/srcpkgs/hledger/files/stack.yaml b/srcpkgs/hledger/files/stack.yaml
index b5f41932e272..e2fd18f264a4 100644
--- a/srcpkgs/hledger/files/stack.yaml
+++ b/srcpkgs/hledger/files/stack.yaml
@@ -1,4 +1,4 @@
-resolver: lts-19.0
+resolver:  lts-20.0
 
 packages:
 - hledger-lib
@@ -7,16 +7,12 @@ packages:
 - hledger-web
 
 extra-deps:
+- megaparsec-9.3.0
 # for hledger-lib:
-- breakpoint-0.1.0.0
+# - breakpoint-0.1.2.0
 # for hledger:
 # for hledger-ui:
-- brick-1.0
-- bimap-0.5.0
-- text-zipper-0.12
-- vty-5.36
+- brick-1.5
+- fsnotify-0.4.0.0
 # for hledger-web:
 # for Shake.hs:
-
-ghc-options:
-  "$locals": -fplugin Debug.Breakpoint
diff --git a/srcpkgs/hledger/template b/srcpkgs/hledger/template
index 5750484fc5bc..6a4360a0c641 100644
--- a/srcpkgs/hledger/template
+++ b/srcpkgs/hledger/template
@@ -1,6 +1,6 @@
 # Template file for 'hledger'
 pkgname=hledger
-version=1.27.1
+version=1.28
 revision=1
 build_style=haskell-stack
 makedepends="zlib-devel ncurses-devel"
@@ -10,7 +10,7 @@ license="GPL-3.0-or-later"
 homepage="https://hledger.org/"
 changelog="https://hackage.haskell.org/package/hledger-${version}/changelog"
 distfiles="https://github.com/simonmichael/hledger/archive/${version}.tar.gz"
-checksum=218f6005b7b30308cc43523dc7b61c818bb649abc217a6c8803e8f82b408d239
+checksum=e2736f732d9f5cade993877b4524f06fbb3488142843c62653a0849180d2a34a
 nopie_files="/usr/bin/hledger"
 nocross=yes # Can't yet cross compile Haskell
 

From 09afe3b6b6e780d7e8e842a71f12eb57592d5613 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 13:58:50 +0100
Subject: [PATCH 10/20] darcs: bump for stackage lts-20.0

---
 srcpkgs/darcs/files/stack.yaml | 2 +-
 srcpkgs/darcs/template         | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/darcs/files/stack.yaml b/srcpkgs/darcs/files/stack.yaml
index 6e459703764a..f2dd5264e5bf 100644
--- a/srcpkgs/darcs/files/stack.yaml
+++ b/srcpkgs/darcs/files/stack.yaml
@@ -1,4 +1,4 @@
-resolver: lts-19.0
+resolver: lts-20.0
 packages:
 - .
 allow-newer: true
diff --git a/srcpkgs/darcs/template b/srcpkgs/darcs/template
index 15a8f71f9021..04a0f6da593c 100644
--- a/srcpkgs/darcs/template
+++ b/srcpkgs/darcs/template
@@ -1,7 +1,7 @@
 # Template file for 'darcs'
 pkgname=darcs
 version=2.16.5
-revision=3
+revision=4
 build_style=haskell-stack
 hostmakedepends="unzip"
 makedepends="zlib-devel libcurl-devel ncurses-devel"

From bcfad03f61ed98bea9f3f5e6189c0383834e54ee Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 14:54:40 +0100
Subject: [PATCH 11/20] cgrep: bump for stackage lts-20.0

---
 srcpkgs/cgrep/files/stack.yaml | 7 +++++++
 srcpkgs/cgrep/template         | 2 +-
 2 files changed, 8 insertions(+), 1 deletion(-)
 create mode 100644 srcpkgs/cgrep/files/stack.yaml

diff --git a/srcpkgs/cgrep/files/stack.yaml b/srcpkgs/cgrep/files/stack.yaml
new file mode 100644
index 000000000000..9db0805a3957
--- /dev/null
+++ b/srcpkgs/cgrep/files/stack.yaml
@@ -0,0 +1,7 @@
+resolver: lts-20.0
+
+packages:
+  - '.'
+
+extra-deps:
+  - bitwise-1.0.0.1
diff --git a/srcpkgs/cgrep/template b/srcpkgs/cgrep/template
index 9d943300a68c..865d4e43398d 100644
--- a/srcpkgs/cgrep/template
+++ b/srcpkgs/cgrep/template
@@ -1,7 +1,7 @@
 # Template file for 'cgrep'
 pkgname=cgrep
 version=7.0.0
-revision=1
+revision=2
 build_style=haskell-stack
 makedepends="pcre-devel pkg-config"
 short_desc="Context-aware grep for source codes"

From bc3778263267cf26d60df508d713bb57b570ed04 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 15:38:14 +0100
Subject: [PATCH 12/20] xmobar: update to 0.44.2

This is the last version that still builds on musl.
---
 srcpkgs/xmobar/files/stack.yaml | 2 +-
 srcpkgs/xmobar/template         | 9 +++++----
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/xmobar/files/stack.yaml b/srcpkgs/xmobar/files/stack.yaml
index 7e0956374142..15744aaa56ee 100644
--- a/srcpkgs/xmobar/files/stack.yaml
+++ b/srcpkgs/xmobar/files/stack.yaml
@@ -1,4 +1,4 @@
-resolver: lts-19.0
+resolver: lts-20.0
 packages:
 - .
 extra-deps:
diff --git a/srcpkgs/xmobar/template b/srcpkgs/xmobar/template
index 6a12a9ed7055..fb00e4865322 100644
--- a/srcpkgs/xmobar/template
+++ b/srcpkgs/xmobar/template
@@ -1,6 +1,7 @@
 # Template file for 'xmobar'
 pkgname=xmobar
-version=0.42
+# versions >= 0.45 are broken on musl: https://codeberg.org/xmobar/xmobar/issues/656
+version=0.44.2
 revision=1
 build_style=haskell-stack
 hostmakedepends="pkg-config"
@@ -15,10 +16,10 @@ maintainer="xaltsc <xaltsc@protonmail.ch>"
 license="BSD-3-Clause"
 homepage="https://xmobar.org"
 distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz"
-checksum=53f4a06d79c3db32ef1a498ec7b764b17d03ebf9bca3126c6b8259595492769b
-build_options="dbus threaded utf8 xft mpd mpris inotify iwlib alsa datezone
+checksum=08a0bdd6a6c84b2219fae33de1c1335ff3610a194b377dc59ab4505aac84b73d
+build_options="dbus threaded xft mpd mpris inotify iwlib alsa datezone
  xpm uvmeter weather nl80211"
-build_options_default="threaded utf8 xft inotify nl80211 datezone weather xpm alsa mpris mpd dbus"
+build_options_default="threaded xft inotify nl80211 datezone weather xpm alsa mpris mpd dbus"
 nopie_files="/usr/bin/xmobar"
 nocross=yes
 vopt_hflag() {

From af04deea05b26054881ade9e6712ee3e7a22e2e8 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 17:10:27 +0100
Subject: [PATCH 13/20] kmonad: bump for stackage lts-20.0

---
 srcpkgs/kmonad/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kmonad/template b/srcpkgs/kmonad/template
index 04088043afc2..a21383b6a484 100644
--- a/srcpkgs/kmonad/template
+++ b/srcpkgs/kmonad/template
@@ -3,9 +3,9 @@ pkgname=kmonad
 reverts="65b501defdd0049563752f8af8c8c57f5a1ae38b_1"
 _githash=65b501defdd0049563752f8af8c8c57f5a1ae38b
 version=0.4.1.20220321
-revision=1
+revision=2
 build_style=haskell-stack
-stackage=lts-19.0
+stackage=lts-20.0
 short_desc="Keyboard remapping utility providing qmk-like functionality"
 maintainer="slotThe <soliditsallgood@mailbox.org>"
 license="MIT"

From b783cb1f43574e6bf73d89d4e867e7610b244c2a Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 17:11:43 +0100
Subject: [PATCH 14/20] glirc: bump for cabal-install 3.8.1.0

---
 srcpkgs/glirc/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/glirc/template b/srcpkgs/glirc/template
index 98a677886ae1..458609007def 100644
--- a/srcpkgs/glirc/template
+++ b/srcpkgs/glirc/template
@@ -1,7 +1,7 @@
 # Template file for 'glirc'
 pkgname=glirc
 version=2.39.0.1
-revision=1
+revision=2
 hostmakedepends="cabal-install"
 makedepends="ncurses-devel openssl-devel"
 short_desc="Console IRC client written in Haskell"

From 902bcc768fbcd0855eafe3d232ce7210d64fefab Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 18:15:04 +0100
Subject: [PATCH 15/20] git-mediate: bump for stackage lts-20.0

---
 srcpkgs/git-mediate/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/git-mediate/template b/srcpkgs/git-mediate/template
index 705df7843b8e..f472a26d132a 100644
--- a/srcpkgs/git-mediate/template
+++ b/srcpkgs/git-mediate/template
@@ -1,9 +1,9 @@
 # Template file for 'git-mediate'
 pkgname=git-mediate
 version=1.0.8.1
-revision=3
+revision=4
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 depends="git"
 short_desc="Tool to help resolving git conflicts"
 maintainer="Peter Wang <novalazy@gmail.com>"

From 3135d4b7069eeb833c222919e2954f1887bd4261 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Thu, 29 Dec 2022 09:22:09 +0100
Subject: [PATCH 16/20] [WIP] ghc-bin: update to 9.2.5

---
 srcpkgs/ghc-bin/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/ghc-bin/template b/srcpkgs/ghc-bin/template
index f9610408060f..ee8083ff3cf0 100644
--- a/srcpkgs/ghc-bin/template
+++ b/srcpkgs/ghc-bin/template
@@ -1,6 +1,6 @@
 # Template file for 'ghc-bin'
 pkgname=ghc-bin
-version=9.0.2
+version=9.2.5
 revision=1
 archs="i686 x86_64* ppc64le* ppc64 aarch64*"
 hostmakedepends="perl libffi libnuma"
@@ -16,7 +16,7 @@ conflicts="ghc>=0 ghc-doc>=0"
 case "$XBPS_TARGET_MACHINE" in
 x86_64)
 	distfiles="https://downloads.haskell.org/ghc/${version%[!0-9]}/ghc-${version}-x86_64-deb9-linux.tar.xz"
-	checksum=805f5628ce6cec678ba77ff48c924831ebdf75ec2c66368e8935a618913a150e
+	checksum=2d115b7258751f0e4481e35b5953ca3c7870e8ec9ce68f1d32fc014ddc29b2a5
 	;;
 x86_64-musl)
 	# create with "make binary-dist"
@@ -25,7 +25,7 @@ x86_64-musl)
 	;;
 i686)
 	distfiles="https://downloads.haskell.org/ghc/${version%[!0-9]}/ghc-${version}-i386-deb9-linux.tar.xz"
-	checksum=fdeb9f8928fbe994064778a8e1e85bb1a58a6cd3dd7b724fcc2a1dcfda6cad47
+	checksum=cf2088010e4477cb84b26725107eeb23e878368074abcf04f089d498ca2d9ddf
 	;;
 ppc64le)
 	distfiles="https://repo-default.voidlinux.org/distfiles/ghc-${version}-powerpc64le-void-linux.tar.xz"

From ed70d04edb71262b23158dd7397916111ab1d337 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Thu, 29 Dec 2022 09:22:41 +0100
Subject: [PATCH 17/20] New package: ghcup-0.21

Co-authored-by: Kye Shi <shi.kye@gmail.com>
---
 srcpkgs/ghcup/INSTALL.msg |  8 ++++++++
 srcpkgs/ghcup/template    | 32 ++++++++++++++++++++++++++++++++
 2 files changed, 40 insertions(+)
 create mode 100644 srcpkgs/ghcup/INSTALL.msg
 create mode 100644 srcpkgs/ghcup/template

diff --git a/srcpkgs/ghcup/INSTALL.msg b/srcpkgs/ghcup/INSTALL.msg
new file mode 100644
index 000000000000..100bbd0780b7
--- /dev/null
+++ b/srcpkgs/ghcup/INSTALL.msg
@@ -0,0 +1,8 @@
+ghcup comes with an internal downloader, but optionally depends on curl and/or
+wget for more advanced usages (e.g., proxying).  To use curl/wget as downloader,
+first make sure they are installed, then run `ghcup config set downloader Curl`.
+
+Also, ghcup requires $GHCUP_INSTALL_BASE_PREFIX/.ghcup/bin to be in your PATH
+(by default, $GHCUP_INSTALL_BASE_PREFIX is $HOME); make sure to update your
+shell launch scripts accordingly. Alternatively, when GHCUP_USE_XDG_DIRS is set,
+GHCUP uses XDG-ish directories.
diff --git a/srcpkgs/ghcup/template b/srcpkgs/ghcup/template
new file mode 100644
index 000000000000..de9be01dc9f0
--- /dev/null
+++ b/srcpkgs/ghcup/template
@@ -0,0 +1,32 @@
+# Template file for 'ghcup'
+pkgname=ghcup
+version=0.21
+revision=1
+wrksrc="ghcup-hs-v$version"
+hostmakedepends='tar git cabal-install pkg-config'
+makedepends='zlib-devel ncurses-libtinfo-devel libarchive-devel'
+depends='zlib ncurses-libtinfo-libs libarchive gcc gmp make perl'
+short_desc='Installer for the general purpose language Haskell'
+maintainer='Kye Shi <shi.kye@gmail.com>'
+license='LGPL-3.0-only'
+homepage='https://www.haskell.org/ghcup/'
+distfiles="https://github.com/haskell/ghcup-hs/archive/refs/tags/v$version.tar.gz"
+checksum=66bf77b062740eb18053b5b0456d568874b2981f641597e6152a721851900c4e
+nopie_files='/usr/bin/ghcup'
+nocross='cannot cross compile haskell yet'
+
+post_extract() {
+	vsed -i 's/-system-libarchive/+system-libarchive/' cabal.project
+}
+
+do_build() {
+	cabal update --prefix="$PWD"
+	cabal build --prefix="$PWD" --project-file=cabal.project -f'internal-downloader'
+}
+
+do_install() {
+	cabal install --prefix="$PWD" --install-method='copy' --installdir="$DESTDIR/usr/bin"
+	for sh in 'bash' 'fish' 'zsh'; do
+		vcompletion "scripts/shell-completions/$sh" "$sh"
+	done
+}

From 62f7f0b0f3ccd713525ee49ff555740cbf08cc5a Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Thu, 29 Dec 2022 12:22:29 +0100
Subject: [PATCH 18/20] debug-me: bump for stackage lts-20.0

---
 srcpkgs/debug-me/files/stack.yaml         |  2 +-
 srcpkgs/debug-me/patches/bytestring.patch | 26 +++++++++++++++++++++++
 srcpkgs/debug-me/template                 |  3 +--
 3 files changed, 28 insertions(+), 3 deletions(-)
 create mode 100644 srcpkgs/debug-me/patches/bytestring.patch

diff --git a/srcpkgs/debug-me/files/stack.yaml b/srcpkgs/debug-me/files/stack.yaml
index f2b1a79d70c6..cf7820620db2 100644
--- a/srcpkgs/debug-me/files/stack.yaml
+++ b/srcpkgs/debug-me/files/stack.yaml
@@ -1,6 +1,6 @@
 packages:
 - '.'
-resolver: lts-19.0
+resolver: lts-20.0
 extra-deps:
   - posix-pty-0.2.1.1
   - sandi-0.5@sha256:b278d072ca717706ea38f9bd646e023f7f2576a778fb43565b434f93638849aa,3010
diff --git a/srcpkgs/debug-me/patches/bytestring.patch b/srcpkgs/debug-me/patches/bytestring.patch
new file mode 100644
index 000000000000..24a67ef604d0
--- /dev/null
+++ b/srcpkgs/debug-me/patches/bytestring.patch
@@ -0,0 +1,26 @@
+From 1d30b5cd9156b1a9d409c8810dab26e2dc5065af Mon Sep 17 00:00:00 2001
+From: Tony Zorman <soliditsallgood@mailbox.org>
+Date: Thu, 29 Dec 2022 10:35:58 +0100
+Subject: [PATCH] Bump bytestring dependency
+
+This fixes the build for GHC 9.2, which ships with a higher version of
+the bytestring library.
+---
+ debug-me.cabal | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/debug-me.cabal b/debug-me.cabal
+index d5a44e9..2dd60a0 100644
+--- a/debug-me.cabal
++++ b/debug-me.cabal
+@@ -55,7 +55,7 @@ Executable debug-me
+   Build-Depends:
+       base (>= 4.9 && < 5.0)
+     , network (>= 2.6)
+-    , bytestring == 0.10.*
++    , bytestring < 0.12
+     , cryptonite (>= 0.20)
+     , unix (>= 2.7)
+     , process (>= 1.4)
+--
+2.39.0
diff --git a/srcpkgs/debug-me/template b/srcpkgs/debug-me/template
index f971f2156c77..0ffea08897fe 100644
--- a/srcpkgs/debug-me/template
+++ b/srcpkgs/debug-me/template
@@ -1,9 +1,8 @@
 # Template file for 'debug-me'
 pkgname=debug-me
 version=1.20220324
-revision=1
+revision=2
 build_style=haskell-stack
-stackage="lts-19.0"
 makedepends="zlib-devel"
 short_desc="Secure remote debugging"
 maintainer="Dominic Monroe <monroef4@googlemail.com>"

From 6d2757d2607a7aecc6da4131e294ee97fd1b6d37 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Thu, 29 Dec 2022 16:04:34 +0100
Subject: [PATCH 19/20] git-annex: update to 10.20221212

Patch bloomfilter to fix the build for GHC 9.2.5.

Related: https://github.com/bos/bloomfilter/pull/20
---
 srcpkgs/git-annex/files/stack.yaml            |  31 +-
 .../patches/bloomfilter-ghc9.2.patch          | 290 ++++++++++++++++++
 srcpkgs/git-annex/template                    |  14 +-
 3 files changed, 313 insertions(+), 22 deletions(-)
 create mode 100644 srcpkgs/git-annex/patches/bloomfilter-ghc9.2.patch

diff --git a/srcpkgs/git-annex/files/stack.yaml b/srcpkgs/git-annex/files/stack.yaml
index acc592054f70..b2674a7af4ad 100644
--- a/srcpkgs/git-annex/files/stack.yaml
+++ b/srcpkgs/git-annex/files/stack.yaml
@@ -10,21 +10,18 @@ flags:
     benchmark: true
     gitlfs: true
 packages:
-  - '.'
-resolver: lts-19.0
+- './git-annex-10.20221212'
+resolver: lts-20.0
 extra-deps:
-  - IfElse-0.85
-  - aws-0.22
-  - bloomfilter-2.0.1.0
-  - git-lfs-1.2.0
-  - http-client-restricted-0.0.4
-  - network-multicast-0.3.2
-  - sandi-0.5
-  - torrent-10000.1.1
-  - base16-bytestring-0.1.1.7
-  - base64-bytestring-1.0.0.3
-  - bencode-0.6.1.1
-  - aeson-1.5.6.0@sha256:5003bb6fd260d2e2d5a51dee2bf5c8e8f29e4e0e0288fef805c22dcc80ecab06,6788
-  - http-client-0.7.11@sha256:3f59ac8ffe2a3768846cdda040a0d1df2a413960529ba61c839861c948871967,5756
-explicit-setup-deps:
-    git-annex: true
+- IfElse-0.85
+- aws-0.23
+- ./bloomfilter-2.0.1.0
+- git-lfs-1.2.0
+- http-client-restricted-0.0.5
+- network-multicast-0.3.2
+- sandi-0.5
+- torrent-10000.1.1
+- base16-bytestring-1.0.2.0
+- base64-bytestring-1.2.1.0
+- bencode-0.6.1.1
+- http-client-0.7.13.1
diff --git a/srcpkgs/git-annex/patches/bloomfilter-ghc9.2.patch b/srcpkgs/git-annex/patches/bloomfilter-ghc9.2.patch
new file mode 100644
index 000000000000..0316a6a15194
--- /dev/null
+++ b/srcpkgs/git-annex/patches/bloomfilter-ghc9.2.patch
@@ -0,0 +1,290 @@
+From fb79b39c44404fd791a3bed973e9d844fb084f1e Mon Sep 17 00:00:00 2001
+From: Simon Jakobi <simon.jakobi@gmail.com>
+Date: Fri, 12 Nov 2021 01:37:36 +0100
+Subject: [PATCH] Fix build with GHC 9.2
+
+The `FastShift.shift{L,R}` methods are replaced with `unsafeShift{L,R}`
+introduced in base-4.5.
+
+Fixes #19.
+---
+ Data/BloomFilter.hs         | 16 +++++------
+ Data/BloomFilter/Hash.hs    | 15 +++++-----
+ Data/BloomFilter/Mutable.hs | 20 +++++++-------
+ Data/BloomFilter/Util.hs    | 55 ++++++-------------------------------
+ bloomfilter.cabal           |  2 +-
+ 5 files changed, 34 insertions(+), 74 deletions(-)
+
+diff --git a/bloomfilter-2.0.1.0/Data/BloomFilter.hs b/bloomfilter-2.0.1.0/Data/BloomFilter.hs
+index 2210cef..6b47c21 100644
+--- a/bloomfilter-2.0.1.0/Data/BloomFilter.hs
++++ b/bloomfilter-2.0.1.0/Data/BloomFilter.hs
+@@ -78,8 +78,8 @@ import Control.DeepSeq (NFData(..))
+ import Data.Array.Base (unsafeAt)
+ import qualified Data.Array.Base as ST
+ import Data.Array.Unboxed (UArray)
+-import Data.Bits ((.&.))
+-import Data.BloomFilter.Util (FastShift(..), (:*)(..))
++import Data.Bits ((.&.), unsafeShiftL, unsafeShiftR)
++import Data.BloomFilter.Util ((:*)(..))
+ import qualified Data.BloomFilter.Mutable as MB
+ import qualified Data.BloomFilter.Mutable.Internal as MB
+ import Data.BloomFilter.Mutable.Internal (Hash, MBloom)
+@@ -98,7 +98,7 @@ data Bloom a = B {
+     }
+
+ instance Show (Bloom a) where
+-    show ub = "Bloom { " ++ show ((1::Int) `shiftL` shift ub) ++ " bits } "
++    show ub = "Bloom { " ++ show ((1::Int) `unsafeShiftL` shift ub) ++ " bits } "
+
+ instance NFData (Bloom a) where
+     rnf !_ = ()
+@@ -172,7 +172,7 @@ singleton hash numBits elt = create hash numBits (\mb -> MB.insert mb elt)
+ -- | Given a filter's mask and a hash value, compute an offset into
+ -- a word array and a bit offset within that word.
+ hashIdx :: Int -> Word32 -> (Int :* Int)
+-hashIdx mask x = (y `shiftR` logBitsInHash) :* (y .&. hashMask)
++hashIdx mask x = (y `unsafeShiftR` logBitsInHash) :* (y .&. hashMask)
+   where hashMask = 31 -- bitsInHash - 1
+         y = fromIntegral x .&. mask
+
+@@ -191,7 +191,7 @@ hashesU ub elt = hashIdx (mask ub) `map` hashes ub elt
+ -- /still/ some possibility that @True@ will be returned.
+ elem :: a -> Bloom a -> Bool
+ elem elt ub = all test (hashesU ub elt)
+-  where test (off :* bit) = (bitArray ub `unsafeAt` off) .&. (1 `shiftL` bit) /= 0
++  where test (off :* bit) = (bitArray ub `unsafeAt` off) .&. (1 `unsafeShiftL` bit) /= 0
+           
+ modify :: (forall s. (MBloom s a -> ST s z))  -- ^ mutation function (result is discarded)
+         -> Bloom a
+@@ -255,11 +255,11 @@ insertList elts = modify $ \mb -> mapM_ (MB.insert mb) elts
+ -- is /still/ some possibility that @True@ will be returned.
+ notElem :: a -> Bloom a -> Bool
+ notElem elt ub = any test (hashesU ub elt)
+-  where test (off :* bit) = (bitArray ub `unsafeAt` off) .&. (1 `shiftL` bit) == 0
++  where test (off :* bit) = (bitArray ub `unsafeAt` off) .&. (1 `unsafeShiftL` bit) == 0
+
+ -- | Return the size of an immutable Bloom filter, in bits.
+ length :: Bloom a -> Int
+-length = shiftL 1 . shift
++length = unsafeShiftL 1 . shift
+
+ -- | Build an immutable Bloom filter from a seed value.  The seeding
+ -- function populates the filter as follows.
+@@ -318,7 +318,7 @@ fromList hashes numBits = unfold hashes numBits convert
+ logPower2 :: Int -> Int
+ logPower2 k = go 0 k
+     where go j 1 = j
+-          go j n = go (j+1) (n `shiftR` 1)
++          go j n = go (j+1) (n `unsafeShiftR` 1)
+
+ -- $overview
+ --
+diff --git a/bloomfilter-2.0.1.0/Data/BloomFilter/Hash.hs b/bloomfilter-2.0.1.0/Data/BloomFilter/Hash.hs
+index 132a3a4..d071fd4 100644
+--- a/bloomfilter-2.0.1.0/Data/BloomFilter/Hash.hs
++++ b/bloomfilter-2.0.1.0/Data/BloomFilter/Hash.hs
+@@ -38,8 +38,7 @@ module Data.BloomFilter.Hash
+     ) where
+
+ import Control.Monad (foldM)
+-import Data.Bits ((.&.), (.|.), xor)
+-import Data.BloomFilter.Util (FastShift(..))
++import Data.Bits ((.&.), (.|.), unsafeShiftL, unsafeShiftR, xor)
+ import Data.List (unfoldr)
+ import Data.Int (Int8, Int16, Int32, Int64)
+ import Data.Word (Word8, Word16, Word32, Word64)
+@@ -91,11 +90,11 @@ class Hashable a where
+              -> Word64           -- ^ salt
+              -> IO Word64
+     hashIO64 v salt = do
+-                   let s1 = fromIntegral (salt `shiftR` 32) .&. maxBound
++                   let s1 = fromIntegral (salt `unsafeShiftR` 32) .&. maxBound
+                        s2 = fromIntegral salt
+                    h1 <- hashIO32 v s1
+                    h2 <- hashIO32 v s2
+-                   return $ (fromIntegral h1 `shiftL` 32) .|. fromIntegral h2
++                   return $ (fromIntegral h1 `unsafeShiftL` 32) .|. fromIntegral h2
+
+ -- | Compute a 32-bit hash.
+ hash32 :: Hashable a => a -> Word32
+@@ -149,8 +148,8 @@ cheapHashes :: Hashable a => Int -- ^ number of hashes to compute
+ cheapHashes k v = go 0
+     where go i | i == j = []
+                | otherwise = hash : go (i + 1)
+-               where !hash = h1 + (h2 `shiftR` i)
+-          h1 = fromIntegral (h `shiftR` 32)
++               where !hash = h1 + (h2 `unsafeShiftR` i)
++          h1 = fromIntegral (h `unsafeShiftR` 32)
+           h2 = fromIntegral h
+           h = hashSalt64 0x9150a946c4a8966e v
+           j = fromIntegral k
+@@ -163,7 +162,7 @@ instance Hashable Integer where
+                                    (salt `xor` 0x3ece731e)
+                   | otherwise = hashIO32 (unfoldr go k) salt
+         where go 0 = Nothing
+-              go i = Just (fromIntegral i :: Word32, i `shiftR` 32)
++              go i = Just (fromIntegral i :: Word32, i `unsafeShiftR` 32)
+
+ instance Hashable Bool where
+     hashIO32 = hashOne32
+@@ -224,7 +223,7 @@ instance Hashable Word64 where
+ -- | A fast unchecked shift.  Nasty, but otherwise GHC 6.8.2 does a
+ -- test and branch on every shift.
+ div4 :: CSize -> CSize
+-div4 k = fromIntegral ((fromIntegral k :: HTYPE_SIZE_T) `shiftR` 2)
++div4 k = fromIntegral ((fromIntegral k :: HTYPE_SIZE_T) `unsafeShiftR` 2)
+
+ alignedHash :: Ptr a -> CSize -> Word32 -> IO Word32
+ alignedHash ptr bytes salt
+diff --git a/bloomfilter-2.0.1.0/Data/BloomFilter/Mutable.hs b/bloomfilter-2.0.1.0/Data/BloomFilter/Mutable.hs
+index edff1fc..0bb5cc9 100644
+--- a/bloomfilter-2.0.1.0/Data/BloomFilter/Mutable.hs
++++ b/bloomfilter-2.0.1.0/Data/BloomFilter/Mutable.hs
+@@ -65,9 +65,9 @@ module Data.BloomFilter.Mutable
+ import Control.Monad (liftM, forM_)
+ import Control.Monad.ST (ST)
+ import Data.Array.Base (unsafeRead, unsafeWrite)
+-import Data.Bits ((.&.), (.|.))
++import Data.Bits ((.&.), (.|.), unsafeShiftL, unsafeShiftR)
+ import Data.BloomFilter.Array (newArray)
+-import Data.BloomFilter.Util (FastShift(..), (:*)(..), nextPowerOfTwo)
++import Data.BloomFilter.Util ((:*)(..), nextPowerOfTwo)
+ import Data.Word (Word32)
+ import Data.BloomFilter.Mutable.Internal
+
+@@ -86,9 +86,9 @@ new hash numBits = MB hash shft msk `liftM` newArray numElems numBytes
+                 | numBits > maxHash = maxHash
+                 | isPowerOfTwo numBits = numBits
+                 | otherwise = nextPowerOfTwo numBits
+-        numElems = max 2 (twoBits `shiftR` logBitsInHash)
+-        numBytes = numElems `shiftL` logBytesInHash
+-        trueBits = numElems `shiftL` logBitsInHash
++        numElems = max 2 (twoBits `unsafeShiftR` logBitsInHash)
++        numBytes = numElems `unsafeShiftL` logBytesInHash
++        trueBits = numElems `unsafeShiftL` logBitsInHash
+         shft     = logPower2 trueBits
+         msk      = trueBits - 1
+         isPowerOfTwo n = n .&. (n - 1) == 0
+@@ -109,7 +109,7 @@ logBytesInHash = 2 -- logPower2 (sizeOf (undefined :: Hash))
+ -- | Given a filter's mask and a hash value, compute an offset into
+ -- a word array and a bit offset within that word.
+ hashIdx :: Int -> Word32 -> (Int :* Int)
+-hashIdx msk x = (y `shiftR` logBitsInHash) :* (y .&. hashMask)
++hashIdx msk x = (y `unsafeShiftR` logBitsInHash) :* (y .&. hashMask)
+   where hashMask = 31 -- bitsInHash - 1
+         y = fromIntegral x .&. msk
+
+@@ -125,7 +125,7 @@ insert mb elt = do
+   let mu = bitArray mb
+   forM_ (hashesM mb elt) $ \(word :* bit) -> do
+       old <- unsafeRead mu word
+-      unsafeWrite mu word (old .|. (1 `shiftL` bit))
++      unsafeWrite mu word (old .|. (1 `unsafeShiftL` bit))
+
+ -- | Query a mutable Bloom filter for membership.  If the value is
+ -- present, return @True@.  If the value is not present, there is
+@@ -135,7 +135,7 @@ elem elt mb = loop (hashesM mb elt)
+   where mu = bitArray mb
+         loop ((word :* bit):wbs) = do
+           i <- unsafeRead mu word
+-          if i .&. (1 `shiftL` bit) == 0
++          if i .&. (1 `unsafeShiftL` bit) == 0
+             then return False
+             else loop wbs
+         loop _ = return True
+@@ -145,7 +145,7 @@ elem elt mb = loop (hashesM mb elt)
+
+ -- | Return the size of a mutable Bloom filter, in bits.
+ length :: MBloom s a -> Int
+-length = shiftL 1 . shift
++length = unsafeShiftL 1 . shift
+
+
+ -- | Slow, crummy way of computing the integer log of an integer known
+@@ -153,7 +153,7 @@ length = shiftL 1 . shift
+ logPower2 :: Int -> Int
+ logPower2 k = go 0 k
+     where go j 1 = j
+-          go j n = go (j+1) (n `shiftR` 1)
++          go j n = go (j+1) (n `unsafeShiftR` 1)
+
+ -- $overview
+ --
+diff --git a/bloomfilter-2.0.1.0/Data/BloomFilter/Util.hs b/bloomfilter-2.0.1.0/Data/BloomFilter/Util.hs
+index 7f695dc..6ade6e5 100644
+--- a/bloomfilter-2.0.1.0/Data/BloomFilter/Util.hs
++++ b/bloomfilter-2.0.1.0/Data/BloomFilter/Util.hs
+@@ -2,15 +2,11 @@
+
+ module Data.BloomFilter.Util
+     (
+-      FastShift(..)
+-    , nextPowerOfTwo
++      nextPowerOfTwo
+     , (:*)(..)
+     ) where
+
+-import Data.Bits ((.|.))
+-import qualified Data.Bits as Bits
+-import GHC.Base
+-import GHC.Word
++import Data.Bits ((.|.), unsafeShiftR)
+
+ -- | A strict pair type.
+ data a :* b = !a :* !b
+@@ -22,46 +18,11 @@ nextPowerOfTwo :: Int -> Int
+ {-# INLINE nextPowerOfTwo #-}
+ nextPowerOfTwo n =
+     let a = n - 1
+-        b = a .|. (a `shiftR` 1)
+-        c = b .|. (b `shiftR` 2)
+-        d = c .|. (c `shiftR` 4)
+-        e = d .|. (d `shiftR` 8)
+-        f = e .|. (e `shiftR` 16)
+-        g = f .|. (f `shiftR` 32)  -- in case we're on a 64-bit host
++        b = a .|. (a `unsafeShiftR` 1)
++        c = b .|. (b `unsafeShiftR` 2)
++        d = c .|. (c `unsafeShiftR` 4)
++        e = d .|. (d `unsafeShiftR` 8)
++        f = e .|. (e `unsafeShiftR` 16)
++        g = f .|. (f `unsafeShiftR` 32)  -- in case we're on a 64-bit host
+         !h = g + 1
+     in h
+-
+--- | This is a workaround for poor optimisation in GHC 6.8.2.  It
+--- fails to notice constant-width shifts, and adds a test and branch
+--- to every shift.  This imposes about a 10% performance hit.
+-class FastShift a where
+-    shiftL :: a -> Int -> a
+-    shiftR :: a -> Int -> a
+-
+-instance FastShift Word32 where
+-    {-# INLINE shiftL #-}
+-    shiftL (W32# x#) (I# i#) = W32# (x# `uncheckedShiftL#` i#)
+-
+-    {-# INLINE shiftR #-}
+-    shiftR (W32# x#) (I# i#) = W32# (x# `uncheckedShiftRL#` i#)
+-
+-instance FastShift Word64 where
+-    {-# INLINE shiftL #-}
+-    shiftL (W64# x#) (I# i#) = W64# (x# `uncheckedShiftL64#` i#)
+-
+-    {-# INLINE shiftR #-}
+-    shiftR (W64# x#) (I# i#) = W64# (x# `uncheckedShiftRL64#` i#)
+-
+-instance FastShift Int where
+-    {-# INLINE shiftL #-}
+-    shiftL (I# x#) (I# i#) = I# (x# `iShiftL#` i#)
+-
+-    {-# INLINE shiftR #-}
+-    shiftR (I# x#) (I# i#) = I# (x# `iShiftRA#` i#)
+-
+-instance FastShift Integer where
+-    {-# INLINE shiftL #-}
+-    shiftL = Bits.shiftL
+-
+-    {-# INLINE shiftR #-}
+-    shiftR = Bits.shiftR
+--
+2.35.1
diff --git a/srcpkgs/git-annex/template b/srcpkgs/git-annex/template
index 91d714a327ac..41117a4aca5f 100644
--- a/srcpkgs/git-annex/template
+++ b/srcpkgs/git-annex/template
@@ -1,6 +1,8 @@
 # Template file for 'git-annex'
 pkgname=git-annex
-version=10.20221103
+version=10.20221212
+_bloomfilter_version=2.0.1.0
+create_wrksrc=yes
 revision=1
 build_style=haskell-stack
 makedepends="curl file-devel gnupg gnutls-devel gsasl-devel libxml2-devel
@@ -12,8 +14,10 @@ maintainer="Evan Deaubl <evan@deaubl.name>"
 license="AGPL-3.0-or-later, MIT, BSD-2-Clause, GPL-3.0-or-later, custom:Expat, custom:MIT-twitter, GPL-2.0-only, custom:icon-license"
 homepage="https://git-annex.branchable.com"
 changelog="https://git.joeyh.name/index.cgi/git-annex.git/plain/CHANGELOG"
-distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz"
-checksum=f549c31264d6da3bb544755795e7fc29882ebec45014905bc2ea0ade28398f3b
+distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz
+ https://hackage.haskell.org/package/bloomfilter-${_bloomfilter_version}/bloomfilter-${_bloomfilter_version}.tar.gz"
+checksum="ef67b4b93728d86050d6e6ec862e950cd6f9db488aea9c840092f024b8a0d629
+ 6c5e0d357d5d39efe97ae2776e8fb533fa50c1c05397c7b85020b0f098ad790f"
 nopie_files="/usr/bin/git-annex"
 nocross=yes
 
@@ -26,7 +30,7 @@ post_install() {
 	ln -sf git-annex ${DESTDIR}/usr/bin/git-remote-tor-annex
 
 	vmkdir usr/share/man/man1
-	vcopy man/*.1 usr/share/man/man1
+	vcopy ${pkgname}-${version}/man/*.1 usr/share/man/man1
 
-	vlicense doc/license/AGPL
+	vlicense ${pkgname}-${version}/doc/license/AGPL
 }

From b284b63085b6a9be5a5194af268d3ff997ad2b92 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Fri, 30 Dec 2022 10:38:58 +0100
Subject: [PATCH 20/20] fixup! New package: greenclip-4.2

---
 srcpkgs/greenclip/files/stack.yaml | 2 --
 1 file changed, 2 deletions(-)

diff --git a/srcpkgs/greenclip/files/stack.yaml b/srcpkgs/greenclip/files/stack.yaml
index 86f4b6fa7ed2..94808b687ddd 100644
--- a/srcpkgs/greenclip/files/stack.yaml
+++ b/srcpkgs/greenclip/files/stack.yaml
@@ -8,5 +8,3 @@ extra-deps:
 - 'protolude-0.3.2'
 - 'tomland-1.3.3.2'
 - 'validation-selective-0.1.0.2'
-
-allow-newer: true

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PR PATCH] [Updated] [WIP] [ci skip] GHC 9.2.5
  2022-12-27  9:58 [PR PATCH] [WIP] [ci skip] GHC 9.2.5 slotThe
                   ` (7 preceding siblings ...)
  2022-12-30  9:53 ` slotThe
@ 2022-12-31 13:24 ` slotThe
  2023-01-02  7:18 ` slotThe
                   ` (3 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: slotThe @ 2022-12-31 13:24 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1290 bytes --]

There is an updated pull request by slotThe against master on the void-packages repository

https://github.com/slotThe/void-packages ghc-9.2.5
https://github.com/void-linux/void-packages/pull/41316

[WIP] [ci skip] GHC 9.2.5
Took much longer than anticipated, since I wanted to wait for stack 2.9.3 first.  Here's to hoping that opening a PR will motivate me to work more rapidly :)

### Core packages to bump

- [x] ghc
- [ ] ghc-bin
    - [x] x86_64 (hash)
    - [x] i686 (hash)
    - [ ] x86_64-musl
    ~~Cc. @q66~~
    - [ ] ppc64le
    - [ ] ppc64le-musl
    - [ ] ppc64
    Cc. @ftrvxmtrx
    - [ ] aarch64
    - [ ] aarch64-musl
- [x] cabal-install
- [x] stack

#### Rebuild literally every single haskell package we have and see if anything's broken

- [x] git-mediate
- [x] kmonad
- [x] cgrep
- [x] debug-me
- [x] hlint
- [x] hoogle
- [x] darcs
- [x] shellcheck
- [x] git-annex
- [x] hledger
- [x] pandoc
- [x] xmobar
- [ ] haskell-language-server
- [x] glirc

### Other things to do

- [x] incorporate https://github.com/void-linux/void-packages/pull/27832 @astralchan
- [x] incorporate https://github.com/void-linux/void-packages/pull/35624 @kwshi

A patch file from https://github.com/void-linux/void-packages/pull/41316.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-ghc-9.2.5-41316.patch --]
[-- Type: text/x-diff, Size: 89425 bytes --]

From 72eb2785d19f85f6719819475c9ae6076859e9e6 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Thu, 17 Nov 2022 12:47:46 +0100
Subject: [PATCH 01/22] ghc: update to 9.2.5

+ Adjust ppc64-be-elfv2.patch
  * The libraries/ghci/GHCi/InfoTable.hsc bit seems to have been
    merged, hence delete it.
  * Adjust for changes in fptools and configure.
  * Delete now out-of-date TOC.
---
 srcpkgs/ghc/patches/ppc64-be-elfv2.patch | 105 +++++------------------
 srcpkgs/ghc/template                     |   6 +-
 2 files changed, 23 insertions(+), 88 deletions(-)

diff --git a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
index df1a0bfe15ba..5fa356be700e 100644
--- a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
+++ b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
@@ -3,100 +3,36 @@ From: q66 <daniel@octaforge.org>
 Date: Thu, 28 Apr 2022 00:48:04 +0200
 Subject: [PATCH] fix up runtime for ppc64 BE ELFv2 + ensure it's used
 
----
- configure                         |  2 +-
- libraries/ghci/GHCi/InfoTable.hsc | 36 ++++++++++++-------------------
- m4/fptools.m4                     |  2 +-
- rts/AdjustorAsm.S                 |  2 +-
- rts/StgCRun.c                     |  4 ++--
- rts/StgCRunAsm.S                  |  2 +-
- rts/adjustor/NativeIA64.c         |  2 +-
- rts/adjustor/NativePowerPC.c      |  2 +-
- 8 files changed, 22 insertions(+), 30 deletions(-)
-
-diff --git a/configure b/configure
-index 8310e6f..eac1124 100755
 --- a/configure
 +++ b/configure
-@@ -10508,7 +10508,7 @@ printf "%s\n" "no" >&6; }
+@@ -10871,7 +10871,7 @@
              test -z "$2" || eval "$2=ArchPPC"
              ;;
          powerpc64)
--            test -z "$2" || eval "$2=\"ArchPPC_64 {ppc_64ABI = ELF_V1}\""
-+            test -z "$2" || eval "$2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
+-            test -z "$2" || eval "$2=\"ArchPPC_64 ELF_V1\""
++            test -z "$2" || eval "$2=\"ArchPPC_64 ELF_V2\""
              ;;
          powerpc64le)
-             test -z "$2" || eval "$2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
-diff --git a/libraries/ghci/GHCi/InfoTable.hsc b/libraries/ghci/GHCi/InfoTable.hsc
-index ad4eb4d..e4f1c0c 100644
---- a/libraries/ghci/GHCi/InfoTable.hsc
-+++ b/libraries/ghci/GHCi/InfoTable.hsc
-@@ -231,30 +231,22 @@ mkJumpToAddr' platform a = case platform of
-                 , fromIntegral w64
-                 , fromIntegral (w64 `shiftR` 32) ]
-     ArchPPC64 ->
--        -- We use the compiler's register r12 to read the function
--        -- descriptor and the linker's register r11 as a temporary
--        -- register to hold the function entry point.
--        -- In the medium code model the function descriptor
--        -- is located in the first two gigabytes, i.e. the address
--        -- of the function pointer is a non-negative 32 bit number.
--        -- 0x0EADBEEF stands for the address of the function pointer:
--        --    0:   3d 80 0e ad     lis     r12,0x0EAD
--        --    4:   61 8c be ef     ori     r12,r12,0xBEEF
--        --    8:   e9 6c 00 00     ld      r11,0(r12)
--        --    c:   e8 4c 00 08     ld      r2,8(r12)
--        --   10:   7d 69 03 a6     mtctr   r11
--        --   14:   e9 6c 00 10     ld      r11,16(r12)
--        --   18:   4e 80 04 20     bctr
--       let  w32 = fromIntegral (funPtrToInt a)
-+        -- The ABI requires r12 to point to the function's entry point.
-+        -- We use the medium code model where code resides in the first
-+        -- two gigabytes, so loading a non-negative32 bit address
-+        -- with lis followed by ori is fine.
-+        -- 0x0EADBEEF stands for the address:
-+        -- 3D800EAD lis r12,0x0EAD
-+        -- 618CBEEF ori r12,r12,0xBEEF
-+        -- 7D8903A6 mtctr r12
-+        -- 4E800420 bctr
-+
-+        let w32 = fromIntegral (funPtrToInt a)
-             hi16 x = (x `shiftR` 16) .&. 0xFFFF
-             lo16 x = x .&. 0xFFFF
--       in Right [ 0x3D800000 .|. hi16 w32,
--                  0x618C0000 .|. lo16 w32,
--                  0xE96C0000,
--                  0xE84C0008,
--                  0x7D6903A6,
--                  0xE96C0010,
--                  0x4E800420]
-+        in Right [ 0x3D800000 .|. hi16 w32,
-+                   0x618C0000 .|. lo16 w32,
-+                   0x7D8903A6, 0x4E800420 ]
- 
-     ArchPPC64LE ->
-         -- The ABI requires r12 to point to the function's entry point.
-diff --git a/m4/fptools.m4 b/m4/fptools.m4
-index 8c6c9b7..eb25c37 100644
---- a/m4/fptools.m4
-+++ b/m4/fptools.m4
-@@ -201,7 +201,7 @@ AC_DEFUN([FPTOOLS_SET_HASKELL_PLATFORM_VARS],
+             test -z "$2" || eval "$2=\"ArchPPC_64 ELF_V2\""
+--- a/m4/fptools_set_haskell_platform_vars.m4
++++ b/m4/fptools_set_haskell_platform_vars.m4
+@@ -15,7 +15,7 @@
              test -z "[$]2" || eval "[$]2=ArchPPC"
              ;;
          powerpc64)
--            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V1}\""
-+            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
+-            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 ELF_V1\""
++            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 ELF_V2\""
              ;;
          powerpc64le)
-             test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
+             test -z "[$]2" || eval "[$]2=\"ArchPPC_64 ELF_V2\""
 diff --git a/rts/AdjustorAsm.S b/rts/AdjustorAsm.S
 index 2795b83..63cfe91 100644
 --- a/rts/AdjustorAsm.S
 +++ b/rts/AdjustorAsm.S
 @@ -2,7 +2,7 @@
- 
+
  /* ******************************** PowerPC ******************************** */
- 
+
 -#if defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
 +#if defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
  #if !(defined(powerpc_HOST_ARCH) && defined(linux_HOST_OS))
@@ -109,21 +45,21 @@ index f43227a..927d44a 100644
 @@ -724,7 +724,7 @@ StgRunIsImplementedInAssembler(void)
     Everything is in assembler, so we don't have to deal with GCC...
     -------------------------------------------------------------------------- */
- 
+
 -#if defined(powerpc64_HOST_ARCH)
 +#if defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2)
  /* 64-bit PowerPC ELF ABI 1.9
   *
   * Stack frame organization (see Figure 3-17, ELF ABI 1.9, p 14)
 @@ -792,7 +792,7 @@ StgRunIsImplementedInAssembler(void)
- 
+
  #endif
- 
+
 -#if defined(powerpc64le_HOST_ARCH)
 +#if defined(powerpc64le_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF == 2))
  /* -----------------------------------------------------------------------------
     PowerPC 64 little endian architecture
- 
+
 diff --git a/rts/StgCRunAsm.S b/rts/StgCRunAsm.S
 index 60f1bf9..c6794d7 100644
 --- a/rts/StgCRunAsm.S
@@ -131,7 +67,7 @@ index 60f1bf9..c6794d7 100644
 @@ -5,7 +5,7 @@
   * then functions StgRun/StgReturn are implemented in file StgCRun.c */
  #if !defined(USE_MINIINTERPRETER)
- 
+
 -#if defined(powerpc64le_HOST_ARCH)
 +#if defined(powerpc64le_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF == 2))
  # if defined(linux_HOST_OS)
@@ -157,12 +93,11 @@ index 2e5d605..caef5d3 100644
 @@ -29,7 +29,7 @@ __asm__("obscure_ccall_ret_code:\n\t"
  extern void obscure_ccall_ret_code(void);
  #endif /* defined(linux_HOST_OS) */
- 
+
 -#if defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
 +#if defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
  #if !(defined(powerpc_HOST_ARCH) && defined(linux_HOST_OS))
- 
+
  /* !!! !!! WARNING: !!! !!!
--- 
+--
 2.35.1
-
diff --git a/srcpkgs/ghc/template b/srcpkgs/ghc/template
index bf76202f4098..c4808339cd29 100644
--- a/srcpkgs/ghc/template
+++ b/srcpkgs/ghc/template
@@ -1,7 +1,7 @@
 # Template file for 'ghc'
 pkgname=ghc
 # Keep this synchronized with http://www.stackage.org/lts
-version=9.0.2
+version=9.2.5
 revision=1
 build_style=gnu-configure
 hostmakedepends="automake docbook-xsl ghc-bin libxslt libnuma-devel
@@ -9,11 +9,11 @@ hostmakedepends="automake docbook-xsl ghc-bin libxslt libnuma-devel
 makedepends="libnuma-devel"
 depends="perl gcc libffi-devel gmp-devel libnuma-devel"
 short_desc="Glorious Haskell Compiler"
-maintainer="slotThe <soliditsallgood@mailbox.org>"
+maintainer="Tony Zorman <soliditsallgood@mailbox.org>"
 license="BSD-3-Clause"
 homepage="http://www.haskell.org/ghc/"
 distfiles="http://www.haskell.org/ghc/dist/${version%[!0-9]}/${pkgname}-${version%[!0-9]}-src.tar.xz"
-checksum=140e42b96346322d1a39eb17602bcdc76e292028ad4a69286b230bab188a9197
+checksum=0606797d1b38e2d88ee2243f38ec6b9a1aa93e9b578e95f0de9a9c0a4144021c
 nocross=yes # this is conditionally unset for cross bindist
 nodebug=yes # work around assembler error "Fatal error: duplicate .debug_line sections"
 _bindir="/usr/lib/${pkgname}-${version}/bin"

From 3d349a8a1192747ff14dd89e54fc0f7f19a991f5 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Fri, 18 Nov 2022 14:56:06 +0100
Subject: [PATCH 02/22] cabal-install: update to 3.8.1.0.

---
 srcpkgs/cabal-install/files/linux-9.0.2.json |  1 -
 srcpkgs/cabal-install/files/linux-9.2.5.json |  1 +
 srcpkgs/cabal-install/template               | 12 ++++++------
 3 files changed, 7 insertions(+), 7 deletions(-)
 delete mode 100644 srcpkgs/cabal-install/files/linux-9.0.2.json
 create mode 100644 srcpkgs/cabal-install/files/linux-9.2.5.json

diff --git a/srcpkgs/cabal-install/files/linux-9.0.2.json b/srcpkgs/cabal-install/files/linux-9.0.2.json
deleted file mode 100644
index f3cb6b4aeeb5..000000000000
--- a/srcpkgs/cabal-install/files/linux-9.0.2.json
+++ /dev/null
@@ -1 +0,0 @@
-{"builtin":[{"package":"rts","version":"1.0.2"},{"package":"ghc-prim","version":"0.7.0"},{"package":"ghc-bignum","version":"1.1"},{"package":"base","version":"4.15.1.0"},{"package":"array","version":"0.5.4.0"},{"package":"deepseq","version":"1.4.5.0"},{"package":"bytestring","version":"0.10.12.1"},{"package":"containers","version":"0.6.4.1"},{"package":"binary","version":"0.8.8.0"},{"package":"filepath","version":"1.4.2.1"},{"package":"time","version":"1.9.3"},{"package":"unix","version":"2.7.2.2"},{"package":"directory","version":"1.3.6.2"},{"package":"transformers","version":"0.5.6.2"},{"package":"mtl","version":"2.2.2"},{"package":"ghc-boot-th","version":"9.0.2"},{"package":"pretty","version":"1.1.3.6"},{"package":"template-haskell","version":"2.17.0.0"},{"package":"text","version":"1.2.5.0"},{"package":"parsec","version":"3.1.14.0"},{"package":"process","version":"1.6.13.2"},{"package":"stm","version":"2.5.0.0"}],"dependencies":[{"cabal_sha256":null,"flags":["-bundled-binary-generic"],"package":"Cabal","revision":null,"source":"local","src_sha256":null,"version":"3.6.3.0"},{"cabal_sha256":"714a55fd28d3e2533bd5b49e74f604ef8e5d7b06f249c8816f6c54aed431dcf1","flags":["-optimised-mixer"],"package":"splitmix","revision":0,"source":"hackage","src_sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","version":"0.1.0.4"},{"cabal_sha256":"8bee24dc0c985a90ee78d94c61f8aed21c49633686f0f1c14c5078d818ee43a2","flags":[],"package":"random","revision":0,"source":"hackage","src_sha256":"265c768fc5f2ca53cde6a87e706b4448cad474c3deece933c103f24453661457","version":"1.2.1"},{"cabal_sha256":"3a2beeafb220f9de706568a7e4a5b3c762cc4c9f25c94d7ef795b8c2d6a691d7","flags":["+integer-gmp","-random-initial-seed"],"package":"hashable","revision":1,"source":"hackage","src_sha256":"baaad82cd4271b197016bdbe76f22d5c3d3913fe38534cec7d817db9bae19886","version":"1.3.5.0"},{"cabal_sha256":"b83dec34a53520de84c6dd3dc7aae45d22409b46eb471c478b98108215a370f0","flags":["-bench"],"package":"async","revision":1,"source":"hackage","src_sha256":"484df85be0e76c4fed9376451e48e1d0c6e97952ce79735b72d54297e7e0a725","version":"2.2.4"},{"cabal_sha256":"037d70bb091c49f68726dde920f6a003b646835a86cdcb5b5ad58ad9af3207d9","flags":[],"package":"Cabal-syntax","revision":0,"source":"hackage","src_sha256":"ca25e5fc601397565fa857f1aa477740fac7f43d659e77c4d9b1485dca239251","version":"3.6.0.0"},{"cabal_sha256":"d8699f46b485f105eea9c7158f3d432ca578e6bbe5d68751184e9899a41d430d","flags":["-old-bytestring","-old-time"],"package":"tar","revision":4,"source":"hackage","src_sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","version":"0.5.1.1"},{"cabal_sha256":"e3d78b13db9512aeb106e44a334ab42b7aa48d26c097299084084cb8be5c5568","flags":["-devel"],"package":"network","revision":0,"source":"hackage","src_sha256":"7f7620fef1a1af3d3d6747f510e73223a5c600e7d7fd9ace073d1222bdc63d85","version":"3.1.2.7"},{"cabal_sha256":"a16dd922947a6877defe52c4c38d1ab48ed3f85a826930f5d1a568741d619993","flags":[],"package":"th-compat","revision":0,"source":"hackage","src_sha256":"6b5059caf6714f47da92953badf2f556119877e09708c14e206b3ae98b8681c6","version":"0.1.3"},{"cabal_sha256":"a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d","flags":[],"package":"network-uri","revision":0,"source":"hackage","src_sha256":"57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584","version":"2.6.4.1"},{"cabal_sha256":"6042643c15a0b43e522a6693f1e322f05000d519543a84149cb80aeffee34f71","flags":["-conduit10","-mtl1","+network-uri","-warn-as-error","-warp-tests"],"package":"HTTP","revision":1,"source":"hackage","src_sha256":"d6091c037871ac3d08d021c906206174567499d5a26a6cb804cf530cd590fe2d","version":"4000.3.16"},{"cabal_sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","flags":[],"package":"base16-bytestring","revision":0,"source":"hackage","src_sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","version":"1.0.2.0"},{"cabal_sha256":"50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8","flags":[],"package":"base64-bytestring","revision":0,"source":"hackage","src_sha256":"fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9","version":"1.2.1.0"},{"cabal_sha256":"188d0b5a0491e8b686b32d9b144c9287760ba333d2509bf3f17e3d846fbc2332","flags":["-exe","+use-cbits"],"package":"cryptohash-sha256","revision":0,"source":"hackage","src_sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","version":"0.11.102.1"},{"cabal_sha256":"ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42","flags":["-example"],"package":"echo","revision":0,"source":"hackage","src_sha256":"c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43","version":"0.1.4"},{"cabal_sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","flags":[],"package":"edit-distance","revision":1,"source":"hackage","src_sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","version":"0.2.2.1"},{"cabal_sha256":"24ac7b5f3d9fa3c2f70262b329f2a75f24e7fd829f88c189b388efa1bcd67eb2","flags":["+no-donna","+test-doctests","+test-hlint","+test-properties"],"package":"ed25519","revision":5,"source":"hackage","src_sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","version":"0.0.5.0"},{"cabal_sha256":"c084c043a40632d3cafcac50fb5eeff84d91edb070a54baa94945f1c976f97c0","flags":["+ofd-locking"],"package":"lukko","revision":2,"source":"hackage","src_sha256":"a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f","version":"0.1.1.3"},{"cabal_sha256":"262a93dbf370be59f4ee57f3b1a51b338bc2c309797daa37c14f2262ae61dae4","flags":["-bundled-c-zlib","-non-blocking-ffi","-pkg-config"],"package":"zlib","revision":1,"source":"hackage","src_sha256":"807f6bddf9cb3c517ce5757d991dde3c7e319953a22c86ee03d74534bd5abc88","version":"0.6.2.3"},{"cabal_sha256":"eb34c3e2fa39f9819293045c03e56148a7125573c1de265cdfe5d967f1d71c6e","flags":["+base48","-cabal-syntax","+lukko","-mtl21","-old-directory","+use-network-uri"],"package":"hackage-security","revision":1,"source":"hackage","src_sha256":"bf22cd16dde7d6b7130463f4d7324b64a2964d9ef3f523df97d7cb98544d64a8","version":"0.6.2.1"},{"cabal_sha256":"2561adac8ce373910948066debe090a22b336b129ba5af18c0332524d16e72ce","flags":[],"package":"regex-base","revision":0,"source":"hackage","src_sha256":"7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1","version":"0.94.0.2"},{"cabal_sha256":"b6421e5356766b0c0a78b6094ae2e3a6259b42c147b717283c03c1cb09163dca","flags":["-_regex-posix-clib"],"package":"regex-posix","revision":0,"source":"hackage","src_sha256":"c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c","version":"0.96.0.1"},{"cabal_sha256":"2088eb9368b920f80bbe4e3b03c3b8484090208f5c3b31645bd67a9ef7d26db4","flags":[],"package":"resolv","revision":4,"source":"hackage","src_sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","version":"0.1.2.0"},{"cabal_sha256":null,"flags":["-debug-conflict-sets","-debug-expensive-assertions","-debug-tracetree","+lukko","+native-dns"],"package":"cabal-install","revision":null,"source":"local","src_sha256":null,"version":"3.6.2.0"}]}
\ No newline at end of file
diff --git a/srcpkgs/cabal-install/files/linux-9.2.5.json b/srcpkgs/cabal-install/files/linux-9.2.5.json
new file mode 100644
index 000000000000..13fe257cbb30
--- /dev/null
+++ b/srcpkgs/cabal-install/files/linux-9.2.5.json
@@ -0,0 +1 @@
+{"builtin":[{"package":"rts","version":"1.0.2"},{"package":"ghc-prim","version":"0.8.0"},{"package":"ghc-bignum","version":"1.2"},{"package":"base","version":"4.16.4.0"},{"package":"array","version":"0.5.4.0"},{"package":"deepseq","version":"1.4.6.1"},{"package":"ghc-boot-th","version":"9.2.5"},{"package":"pretty","version":"1.1.3.6"},{"package":"template-haskell","version":"2.18.0.0"},{"package":"bytestring","version":"0.11.3.1"},{"package":"containers","version":"0.6.5.1"},{"package":"binary","version":"0.8.9.0"},{"package":"filepath","version":"1.4.2.2"},{"package":"time","version":"1.11.1.1"},{"package":"unix","version":"2.7.2.2"},{"package":"directory","version":"1.3.6.2"},{"package":"transformers","version":"0.5.6.2"},{"package":"mtl","version":"2.2.2"},{"package":"text","version":"1.2.5.0"},{"package":"parsec","version":"3.1.15.0"},{"package":"process","version":"1.6.16.0"},{"package":"stm","version":"2.5.0.2"},{"package":"exceptions","version":"0.10.4"}],"dependencies":[{"cabal_sha256":null,"flags":[],"package":"Cabal-syntax","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"},{"cabal_sha256":null,"flags":[],"package":"Cabal","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"},{"cabal_sha256":"804e2574bc7e32d08cbab91e47ee6287b4df7d50851d73f9e778f94a9a7814c7","flags":["-optimised-mixer"],"package":"splitmix","revision":1,"source":"hackage","src_sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","version":"0.1.0.4"},{"cabal_sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","flags":[],"package":"random","revision":0,"source":"hackage","src_sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","version":"1.2.1.1"},{"cabal_sha256":"50b2f002c68fe67730ee7a3cd8607486197dd99b084255005ad51ecd6970a41b","flags":["+containers","+integer-gmp","-random-initial-seed"],"package":"hashable","revision":0,"source":"hackage","src_sha256":"e1b305c280e66ad827edeaedd6933b9fc4174f626882877eab2a08344e665e87","version":"1.4.1.0"},{"cabal_sha256":"2b9409023536823233ce3134558565d01b3382e651fa54ac8cb8a99967e023c9","flags":["-bench"],"package":"async","revision":2,"source":"hackage","src_sha256":"484df85be0e76c4fed9376451e48e1d0c6e97952ce79735b72d54297e7e0a725","version":"2.2.4"},{"cabal_sha256":"bc14969ea4adfec6eee20264decf4a07c4002b38b2aa802d58d86b1a2cf7b895","flags":["-old-bytestring","-old-time"],"package":"tar","revision":5,"source":"hackage","src_sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","version":"0.5.1.1"},{"cabal_sha256":"e3d78b13db9512aeb106e44a334ab42b7aa48d26c097299084084cb8be5c5568","flags":["-devel"],"package":"network","revision":0,"source":"hackage","src_sha256":"7f7620fef1a1af3d3d6747f510e73223a5c600e7d7fd9ace073d1222bdc63d85","version":"3.1.2.7"},{"cabal_sha256":"6ca77c4e80b4e4109e30549c269631a9cc295c8fc2431ce4123972a5f80f7bfc","flags":[],"package":"th-compat","revision":0,"source":"hackage","src_sha256":"d8f97ac14ab47b6b8a7b0fdb4ff95426322ec56badd01652ac15da4a44d4bab8","version":"0.1.4"},{"cabal_sha256":"a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d","flags":[],"package":"network-uri","revision":0,"source":"hackage","src_sha256":"57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584","version":"2.6.4.1"},{"cabal_sha256":"b878d575c470bd1f72d37af6654d924ab2b9489d88de8a71bd74d9d5d726c013","flags":["-conduit10","+network-uri","-warn-as-error","-warp-tests"],"package":"HTTP","revision":1,"source":"hackage","src_sha256":"df31d8efec775124dab856d7177ddcba31be9f9e0836ebdab03d94392f2dd453","version":"4000.4.1"},{"cabal_sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","flags":[],"package":"base16-bytestring","revision":0,"source":"hackage","src_sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","version":"1.0.2.0"},{"cabal_sha256":"50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8","flags":[],"package":"base64-bytestring","revision":0,"source":"hackage","src_sha256":"fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9","version":"1.2.1.0"},{"cabal_sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","flags":[],"package":"edit-distance","revision":1,"source":"hackage","src_sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","version":"0.2.2.1"},{"cabal_sha256":null,"flags":["-debug-conflict-sets","-debug-expensive-assertions","-debug-tracetree"],"package":"cabal-install-solver","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"},{"cabal_sha256":"facd0c04925ef925ec05243471fd16055229fdf51f64db1a1049de0cc6c6dfc3","flags":["-exe","+use-cbits"],"package":"cryptohash-sha256","revision":1,"source":"hackage","src_sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","version":"0.11.102.1"},{"cabal_sha256":"ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42","flags":["-example"],"package":"echo","revision":0,"source":"hackage","src_sha256":"c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43","version":"0.1.4"},{"cabal_sha256":"885c9e2410e5d91a08b199897df0867fecedf818216d7329a2d43a512833dd63","flags":["+no-donna","+test-doctests","+test-hlint","+test-properties"],"package":"ed25519","revision":6,"source":"hackage","src_sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","version":"0.0.5.0"},{"cabal_sha256":"efd4c08c4df1ac3f423858a834c0e3b5b4909febda66a901d12a8e1d57bddaa8","flags":["+ofd-locking"],"package":"lukko","revision":3,"source":"hackage","src_sha256":"a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f","version":"0.1.1.3"},{"cabal_sha256":"8214a9d37580f17f8b675109578a5dbe6853559eef156e34dc2233f1123ace33","flags":["-bundled-c-zlib","-non-blocking-ffi","-pkg-config"],"package":"zlib","revision":0,"source":"hackage","src_sha256":"9eaa989ad4534438b5beb51c1d3a4c8f6a088fdff0b259a5394fbf39aaee04da","version":"0.6.3.0"},{"cabal_sha256":"1a6cf81a4871559ef5bc47b230278b9ad4bf44f1e4dbf77bdc8e07f6e7b8d005","flags":["+base48","+cabal-syntax","+lukko","-mtl21","-old-directory","+use-network-uri"],"package":"hackage-security","revision":1,"source":"hackage","src_sha256":"a833a31610220506557e96fb6e3e8b05a2e1db8e7ebc06e91bbb699ddde0b276","version":"0.6.2.2"},{"cabal_sha256":"4ff4425c710cddf440dfbac6cd52310bb6b23e17902390ff71c9fc7eaafc4fcc","flags":[],"package":"regex-base","revision":1,"source":"hackage","src_sha256":"7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1","version":"0.94.0.2"},{"cabal_sha256":"9dbba4b65a3bb6975d9740814be5593c6b2d2d6a0b3febc8ec940edb9a9bbdf4","flags":["-_regex-posix-clib"],"package":"regex-posix","revision":1,"source":"hackage","src_sha256":"c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c","version":"0.96.0.1"},{"cabal_sha256":"61e2d98ff634b8b4b3db467772420c0f9c79c2da9ddf3d2daeb2af2417f2c535","flags":[],"package":"resolv","revision":5,"source":"hackage","src_sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","version":"0.1.2.0"},{"cabal_sha256":"6e9b1b233af80cc0aa17ea858d2641ba146fb11cbcc5970a52649e89d77282e2","flags":[],"package":"safe-exceptions","revision":0,"source":"hackage","src_sha256":"91ce28d8f8a6efd31788d4827ed5cdcb9a546ad4053a86c56f7947c66a30b5bf","version":"0.1.7.3"},{"cabal_sha256":null,"flags":["+lukko","+native-dns"],"package":"cabal-install","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"}]}
\ No newline at end of file
diff --git a/srcpkgs/cabal-install/template b/srcpkgs/cabal-install/template
index b3ebc1bb15b9..9f9bd3afe8a2 100644
--- a/srcpkgs/cabal-install/template
+++ b/srcpkgs/cabal-install/template
@@ -1,7 +1,7 @@
 # Template file for 'cabal-install'
 pkgname=cabal-install
-version=3.6.3.0
-revision=2
+version=3.8.1.0
+revision=1
 hostmakedepends="ghc curl tar which"
 makedepends="gmp-devel libffi-devel zlib-devel python3"
 depends="ghc"
@@ -10,24 +10,24 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
 license="BSD-3-Clause"
 homepage="https://hackage.haskell.org/package/cabal-install"
 distfiles="https://github.com/haskell/cabal/archive/Cabal-v${version}.tar.gz"
-checksum=dea086acad6d9fe5fe22d838b95b4e988022e8519f38d41609119ea32bfb7466
+checksum=d4eff9c1fcc5212360afac8d97da83b3aff79365490a449e9c47d3988c14b6bc
 nopie_files="/usr/bin/cabal"
 nocross=yes
 
 post_extract() {
-	cp "${FILESDIR}/linux-9.0.2.json" bootstrap/
+	cp "${FILESDIR}/linux-9.2.5.json" bootstrap/
 }
 
 post_patch() {
 	case "${XBPS_TARGET_MACHINE}" in
 	i686*)
 		# https://github.com/haskell/cabal/issues/7313
-		vsed -i -e 's/+ofd-locking/-ofd-locking/' bootstrap/linux-9.0.2.json ;;
+		vsed -i -e 's/+ofd-locking/-ofd-locking/' bootstrap/linux-9.2.5.json ;;
 	esac
 }
 
 do_build() {
-	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-9.0.2.json
+	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-9.2.5.json
 }
 do_install() {
 	vbin _build/bin/cabal

From bfcde1a6bcb96b4aeb73a1b115d301425f323814 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Mon, 21 Nov 2022 18:38:18 +0100
Subject: [PATCH 03/22] stack: update to 2.9.3

+ Remove most outdated patches concerning version bounds and
  compatibility with GHC 9.0.2.
+ Adjust ppc patch.
+ New showStackVersion patch to build with GHC 9.2.5.
---
 srcpkgs/stack/patches/aeson.patch            |  46 ----
 srcpkgs/stack/patches/fsnotify.patch         |  16 --
 srcpkgs/stack/patches/ghc9.0.2.patch         | 212 -------------------
 srcpkgs/stack/patches/persistent.patch       |  46 ----
 srcpkgs/stack/patches/ppc.patch              |   3 +-
 srcpkgs/stack/patches/showStackVersion.patch |  10 +
 srcpkgs/stack/template                       |  10 +-
 7 files changed, 16 insertions(+), 327 deletions(-)
 delete mode 100644 srcpkgs/stack/patches/aeson.patch
 delete mode 100644 srcpkgs/stack/patches/fsnotify.patch
 delete mode 100644 srcpkgs/stack/patches/ghc9.0.2.patch
 delete mode 100644 srcpkgs/stack/patches/persistent.patch
 create mode 100644 srcpkgs/stack/patches/showStackVersion.patch

diff --git a/srcpkgs/stack/patches/aeson.patch b/srcpkgs/stack/patches/aeson.patch
deleted file mode 100644
index 68f267c30cc8..000000000000
--- a/srcpkgs/stack/patches/aeson.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-commit 09e233ed73aa3335642f97c080ef27e42047c527
-Author: q66 <daniel@octaforge.org>
-Date:   Fri Mar 11 04:37:15 2022 +0100
-
-    constrain aeson to prevent build failures
-
-diff --git a/stack.cabal b/stack.cabal
-index dba5bf0..0195f2c 100644
---- a/stack.cabal
-+++ b/stack.cabal
-@@ -231,7 +231,7 @@ library
- 
-     build-depends:
-         Cabal >=3.2.1.0,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
-@@ -357,7 +357,7 @@ executable stack
- 
-     build-depends:
-         Cabal >=3.2.1.0,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
-@@ -485,7 +485,7 @@ executable stack-integration-test
- 
-     build-depends:
-         Cabal >=3.2.1.0,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
-@@ -621,7 +621,7 @@ test-suite stack-test
-     build-depends:
-         Cabal >=3.2.1.0,
-         QuickCheck >=2.14.2,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
diff --git a/srcpkgs/stack/patches/fsnotify.patch b/srcpkgs/stack/patches/fsnotify.patch
deleted file mode 100644
index f82fd8f73004..000000000000
--- a/srcpkgs/stack/patches/fsnotify.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-src/Stack/FileWatch.hs:29:49: error: Not in scope: ‘confUsePolling’
-   |
-29 | fileWatchPoll = fileWatchConf $ defaultConfig { confUsePolling = True }
-   |                                                 ^^^^^^^^^^^^^^
-
---- a/stack.cabal
-+++ b/stack.cabal
-@@ -256,7 +256,7 @@ library
-         file-embed >=0.0.14.0,
-         filelock >=0.1.1.5,
-         filepath >=1.4.2.1,
--        fsnotify >=0.3.0.1,
-+        fsnotify >=0.3.0.1 && <0.4.0.0,
-         generic-deriving >=1.13.1,
-         hackage-security >=0.6.0.1,
-         hashable >=1.3.0.0,
diff --git a/srcpkgs/stack/patches/ghc9.0.2.patch b/srcpkgs/stack/patches/ghc9.0.2.patch
deleted file mode 100644
index bdd77de58c6b..000000000000
--- a/srcpkgs/stack/patches/ghc9.0.2.patch
+++ /dev/null
@@ -1,212 +0,0 @@
-From cb7e56842a25f93142545fad21306a7c1750fbbf Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:26:22 -0700
-Subject: [PATCH 1/6] Use Cabal 3.4.0.0
-
----
- stack.yaml | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/stack.yaml b/stack.yaml
-index 005bd19f4..9472509be 100644
---- a/stack.yaml
-+++ b/stack.yaml
-@@ -20,6 +20,9 @@ flags:
- ghc-options:
-    "$locals": -fhide-source-paths
-
-+extra-deps:
-+- Cabal-3.4.0.0
-+
- drop-packages:
- # See https://github.com/commercialhaskell/stack/pull/4712
- - cabal-install
-
-From 11e11ab0edeba033b40a7fc62434be58dea82ce2 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:40:56 -0700
-Subject: [PATCH 2/6] Fix Flag => PackageFlag
-
----
- src/Stack/BuildPlan.hs | 2 +-
- src/Stack/Package.hs   | 8 ++++----
- 2 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/src/Stack/BuildPlan.hs b/src/Stack/BuildPlan.hs
-index 36f82236e..c5c80efc6 100644
---- a/src/Stack/BuildPlan.hs
-+++ b/src/Stack/BuildPlan.hs
-@@ -224,7 +224,7 @@ selectPackageBuildPlan platform compiler pool gpd =
-     flagCombinations :: NonEmpty [(FlagName, Bool)]
-     flagCombinations = mapM getOptions (genPackageFlags gpd)
-       where
--        getOptions :: C.Flag -> NonEmpty (FlagName, Bool)
-+        getOptions :: C.PackageFlag -> NonEmpty (FlagName, Bool)
-         getOptions f
-             | flagManual f = (fname, flagDefault f) :| []
-             | flagDefault f = (fname, True) :| [(fname, False)]
-diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs
-index 4db50d2a4..d9bca7af5 100644
---- a/src/Stack/Package.hs
-+++ b/src/Stack/Package.hs
-@@ -128,7 +128,7 @@ resolvePackage packageConfig gpkg =
-         (resolvePackageDescription packageConfig gpkg)
-
- packageFromPackageDescription :: PackageConfig
--                              -> [D.Flag]
-+                              -> [PackageFlag]
-                               -> PackageDescriptionPair
-                               -> Package
- packageFromPackageDescription packageConfig pkgFlags (PackageDescriptionPair pkgNoMod pkg) =
-@@ -935,9 +935,9 @@ resolvePackageDescription packageConfig (GenericPackageDescription desc defaultF
- -- | Make a map from a list of flag specifications.
- --
- -- What is @flagManual@ for?
--flagMap :: [Flag] -> Map FlagName Bool
-+flagMap :: [PackageFlag] -> Map FlagName Bool
- flagMap = M.fromList . map pair
--  where pair :: Flag -> (FlagName, Bool)
-+  where pair :: PackageFlag -> (FlagName, Bool)
-         pair = flagName &&& flagDefault
-
- data ResolveConditions = ResolveConditions
-@@ -986,7 +986,7 @@ resolveConditions rc addDeps (CondNode lib deps cs) = basic <> children
-                   case v of
-                     OS os -> os == rcOS rc
-                     Arch arch -> arch == rcArch rc
--                    Flag flag ->
-+                    PackageFlag flag ->
-                       fromMaybe False $ M.lookup flag (rcFlags rc)
-                       -- NOTE:  ^^^^^ This should never happen, as all flags
-                       -- which are used must be declared. Defaulting to
-
-From 8facd731ec3f2bbc15a083750740929167b33bb2 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:55:30 -0700
-Subject: [PATCH 3/6] Fix CabalSpecVersion
-
----
- src/Stack/Package.hs | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs
-index d9bca7af5..fca039140 100644
---- a/src/Stack/Package.hs
-+++ b/src/Stack/Package.hs
-@@ -32,6 +32,7 @@ import           Data.List (find, isPrefixOf, unzip)
- import qualified Data.Map.Strict as M
- import qualified Data.Set as S
- import qualified Data.Text as T
-+import           Distribution.CabalSpecVersion (CabalSpecVersion, cabalSpecMinimumLibraryVersion)
- import           Distribution.Compiler
- import           Distribution.ModuleName (ModuleName)
- import qualified Distribution.ModuleName as Cabal
-@@ -190,7 +191,7 @@ packageFromPackageDescription packageConfig pkgFlags (PackageDescriptionPair pkg
-           (library pkg)
-     , packageBuildType = buildType pkg
-     , packageSetupDeps = msetupDeps
--    , packageCabalSpec = either orLaterVersion id $ specVersionRaw pkg
-+    , packageCabalSpec = orLaterVersion $ mkVersion $ cabalSpecMinimumLibraryVersion $ specVersion pkg
-     }
-   where
-     extraLibNames = S.union subLibNames foreignLibNames
-@@ -696,7 +697,7 @@ packageDescModulesAndFiles pkg = do
-
- -- | Resolve globbing of files (e.g. data files) to absolute paths.
- resolveGlobFiles
--  :: Version -- ^ cabal file version
-+  :: CabalSpecVersion -- ^ cabal file version
-   -> [String]
-   -> RIO Ctx (Set (Path Abs File))
- resolveGlobFiles cabalFileVersion =
-
-From 004f14652409b7d0645215d354b2e599eb7f76bc Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:55:40 -0700
-Subject: [PATCH 4/6] Fix GenericPackageDescription
-
----
- src/Stack/Build.hs   | 2 +-
- src/Stack/Package.hs | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/Stack/Build.hs b/src/Stack/Build.hs
-index 23b9a9719..856903bed 100644
---- a/src/Stack/Build.hs
-+++ b/src/Stack/Build.hs
-@@ -358,7 +358,7 @@ checkComponentsBuildable lps =
- checkSubLibraryDependencies :: HasLogFunc env => [ProjectPackage] -> RIO env ()
- checkSubLibraryDependencies proj = do
-   forM_ proj $ \p -> do
--    C.GenericPackageDescription _ _ lib subLibs foreignLibs exes tests benches <- liftIO $ cpGPD . ppCommon $ p
-+    C.GenericPackageDescription _ _ _ lib subLibs foreignLibs exes tests benches <- liftIO $ cpGPD . ppCommon $ p
-
-     let dependencies = concatMap getDeps subLibs <>
-                        concatMap getDeps foreignLibs <>
-diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs
-index fca039140..39aad4d2f 100644
---- a/src/Stack/Package.hs
-+++ b/src/Stack/Package.hs
-@@ -863,7 +863,7 @@ data PackageDescriptionPair = PackageDescriptionPair
- resolvePackageDescription :: PackageConfig
-                           -> GenericPackageDescription
-                           -> PackageDescriptionPair
--resolvePackageDescription packageConfig (GenericPackageDescription desc defaultFlags mlib subLibs foreignLibs' exes tests benches) =
-+resolvePackageDescription packageConfig (GenericPackageDescription desc _ defaultFlags mlib subLibs foreignLibs' exes tests benches) =
-     PackageDescriptionPair
-       { pdpOrigBuildable = go False
-       , pdpModifiedBuildable = go True
-
-From 820797b566ef981936907f4d19658259d4a635a8 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 17:01:01 -0700
-Subject: [PATCH 5/6] Fix generatePackageVersionMacros
-
----
- src/Stack/Build/Execute.hs | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/Stack/Build/Execute.hs b/src/Stack/Build/Execute.hs
-index 1e381dd21..aedd7fee5 100644
---- a/src/Stack/Build/Execute.hs
-+++ b/src/Stack/Build/Execute.hs
-@@ -1214,7 +1214,7 @@ withSingleContext ActionContext {..} ee@ExecuteEnv {..} task@Task {..} allDeps m
-                             let macroDeps = mapMaybe snd matchedDeps
-                                 cppMacrosFile = setupDir </> relFileSetupMacrosH
-                                 cppArgs = ["-optP-include", "-optP" ++ toFilePath cppMacrosFile]
--                            writeBinaryFileAtomic cppMacrosFile (encodeUtf8Builder (T.pack (C.generatePackageVersionMacros macroDeps)))
-+                            writeBinaryFileAtomic cppMacrosFile (encodeUtf8Builder (T.pack (C.generatePackageVersionMacros (packageVersion package) macroDeps)))
-                             return (packageDBArgs ++ depsArgs ++ cppArgs)
-
-                         -- This branch is usually taken for builds, and
-
-From 336ab515e30f03c274f89ebe1cbc6aa1e597c2a4 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 17:04:16 -0700
-Subject: [PATCH 6/6] Fix ModuleReexport
-
----
- src/Stack/Script.hs | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/Stack/Script.hs b/src/Stack/Script.hs
-index 6bb67c049..9ebd2173d 100644
---- a/src/Stack/Script.hs
-+++ b/src/Stack/Script.hs
-@@ -18,6 +18,7 @@ import           Distribution.Compiler      (CompilerFlavor (..))
- import           Distribution.ModuleName    (ModuleName)
- import qualified Distribution.PackageDescription as PD
- import qualified Distribution.Types.CondTree as C
-+import qualified Distribution.Types.ModuleReexport as ModuleReexport
- import           Distribution.Types.PackageName (mkPackageName)
- import           Distribution.Types.VersionRange (withinRange)
- import           Distribution.System        (Platform (..))
-@@ -280,7 +281,7 @@ allExposedModules gpd = do
-       mlibrary = snd . C.simplifyCondTree checkCond <$> PD.condLibrary gpd
-   pure $ case mlibrary  of
-     Just lib -> PD.exposedModules lib ++
--                map PD.moduleReexportName (PD.reexportedModules lib)
-+                map ModuleReexport.moduleReexportName (PD.reexportedModules lib)
-     Nothing  -> mempty
-
- -- | The Stackage project introduced the concept of hidden packages,
diff --git a/srcpkgs/stack/patches/persistent.patch b/srcpkgs/stack/patches/persistent.patch
deleted file mode 100644
index cf462d7b80c2..000000000000
--- a/srcpkgs/stack/patches/persistent.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-commit 188d7ece06ee06ed6ccaf0df0c46285bd43898f4
-Author: q66 <daniel@octaforge.org>
-Date:   Thu Apr 28 05:02:09 2022 +0200
-
-    constrain persistent to fix build
-
-diff --git a/stack.cabal b/stack.cabal
-index dba5bf0..e221321 100644
---- a/stack.cabal
-+++ b/stack.cabal
-@@ -281,7 +281,7 @@ library
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
-@@ -407,7 +407,7 @@ executable stack
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
-@@ -537,7 +537,7 @@ executable stack-integration-test
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
-@@ -672,7 +672,7 @@ test-suite stack-test
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
diff --git a/srcpkgs/stack/patches/ppc.patch b/srcpkgs/stack/patches/ppc.patch
index fc4c540f0f92..4ab025e7663c 100644
--- a/srcpkgs/stack/patches/ppc.patch
+++ b/srcpkgs/stack/patches/ppc.patch
@@ -22,11 +22,10 @@
 
 --- a/stack.cabal
 +++ b/stack.cabal
-@@ -246,6 +246,7 @@
+@@ -246,4 +246,5 @@
          conduit >=1.3.4.1,
          conduit-extra >=1.3.5,
          containers >=0.6.2.1,
 +        cpu >=0.1.2,
          cryptonite >=0.27,
          cryptonite-conduit >=0.2.2,
-         deepseq >=1.4.4.0,
diff --git a/srcpkgs/stack/patches/showStackVersion.patch b/srcpkgs/stack/patches/showStackVersion.patch
new file mode 100644
index 000000000000..454e0c6dfe53
--- /dev/null
+++ b/srcpkgs/stack/patches/showStackVersion.patch
@@ -0,0 +1,10 @@
+--- a/src/main/BuildInfo.hs
++++ b/src/main/BuildInfo.hs
+@@ -32,5 +32,6 @@
+ #endif
+ import           Stack.Prelude
+ import qualified Paths_stack as Meta
++import Stack.Types.Version (showStackVersion)
+
+ versionString' :: String
+ #ifdef USE_GIT_INFO
diff --git a/srcpkgs/stack/template b/srcpkgs/stack/template
index b6c1f1578ed9..c76f90ff89ed 100644
--- a/srcpkgs/stack/template
+++ b/srcpkgs/stack/template
@@ -1,8 +1,8 @@
 # Template file for 'stack'
 pkgname=stack
-version=2.7.5
-revision=2
-_stackage="lts-19.0"
+version=2.9.3
+revision=1
+_stackage="lts-20.0"
 hostmakedepends="cabal-install pkg-config unzip"
 makedepends="zlib-devel pcre-devel"
 depends="git gmp-devel iana-etc"
@@ -12,8 +12,8 @@ license="BSD-3-Clause"
 homepage="https://haskellstack.org"
 distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz
  https://www.stackage.org/${_stackage}/cabal.config>cabal.config-${_stackage}"
-checksum="9ddd44c2a62e9404194d69e7dc1c94e707910620316b66d6ac0b3201a8f37e80
- e1de952bb6f62573e5c211df99ce6bb684c4cae7845f16c347ce9aa503d6374f"
+checksum="c4700cb227dd624249db2e649445f3df3d558c8a5ab2c98b5c7bf8545901f2dc
+ addcb336500f35b565403e72b0b3793fee74313439eacfb79e0c2121d88bc8ea"
 skip_extraction="cabal.config-${_stackage}"
 nocross=yes
 nopie_files="/usr/bin/stack"

From 43c22912fcbee45621319d96abf8603e2d5f6339 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Tue, 27 Dec 2022 15:29:21 +0100
Subject: [PATCH 04/22] hlint: update to 3.4.1

---
 srcpkgs/hlint/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/hlint/template b/srcpkgs/hlint/template
index 0109be25805f..c5efc617393c 100644
--- a/srcpkgs/hlint/template
+++ b/srcpkgs/hlint/template
@@ -1,16 +1,16 @@
 # Template file for 'hlint'
 pkgname=hlint
-version=3.3.6
+version=3.4.1
 revision=1
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 makedepends="ncurses-devel"
 short_desc="Haskell source code suggestions"
 maintainer="Inokentiy Babushkin <twk@twki.de>"
 license="BSD-3-Clause"
 homepage="https://github.com/ndmitchell/hlint"
 distfiles="https://github.com/ndmitchell/${pkgname}/archive/v${version}.tar.gz"
-checksum=7d536c03f77a0c259efb2b00b525ef34578ca8a4a95ccb412708e8c7172e2e6a
+checksum=667b1ee82ce47706e8206c4994add2483b0bf21c67861d4652b2b5aa90299dc5
 nocross=yes # Can't yet cross compile Haskell
 nopie_files="/usr/bin/hlint"
 

From bef4ba87d4872f0785d1d546613599791b2fa456 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Tue, 27 Dec 2022 16:19:12 +0100
Subject: [PATCH 05/22] hoogle: bump for stackage lts-20.0

---
 srcpkgs/hoogle/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/hoogle/template b/srcpkgs/hoogle/template
index dc487cab4017..00de03e81eef 100644
--- a/srcpkgs/hoogle/template
+++ b/srcpkgs/hoogle/template
@@ -1,9 +1,9 @@
 # Template file for 'hoogle'
 pkgname=hoogle
 version=5.0.18.3
-revision=1
+revision=2
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 makedepends="zlib-devel"
 short_desc="Haskell API search engine"
 maintainer="Inokentiy Babushkin <twk@twki.de>"

From 0ff10d252f1074acd9450926e1bba8eded586310 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Tue, 27 Dec 2022 17:38:42 +0100
Subject: [PATCH 06/22] pandoc: update to 2.19.2

+ Update pandoc-crossref and it's associated cabal file.
+ Bump lua dependency.
+ Remove roman-numerals dependency, as pandoc-crossref now has its own
  implementation of this.
---
 srcpkgs/pandoc/files/pandoc-crossref.cabal | 139 +++++++++++++++++----
 srcpkgs/pandoc/template                    |  17 ++-
 2 files changed, 121 insertions(+), 35 deletions(-)

diff --git a/srcpkgs/pandoc/files/pandoc-crossref.cabal b/srcpkgs/pandoc/files/pandoc-crossref.cabal
index 7aacc47278f3..850405534565 100644
--- a/srcpkgs/pandoc/files/pandoc-crossref.cabal
+++ b/srcpkgs/pandoc/files/pandoc-crossref.cabal
@@ -1,13 +1,9 @@
-cabal-version: 2.0
-
--- This file has been generated from package.yaml by hpack version 0.34.6.
+-- This file has been generated from package.yaml by hpack version 0.34.4.
 --
 -- see: https://github.com/sol/hpack
---
--- hash: 20655cd6263e9fe7e5737ee81b093c8c6f5eae67e260ddd3a821ac6ef5e35e69
 
 name:           pandoc-crossref
-version:        0.3.13.0
+version:        0.3.14.0
 synopsis:       Pandoc filter for cross-references
 description:    pandoc-crossref is a pandoc filter for numbering figures, equations, tables and cross-references to them.
 category:       Text
@@ -18,6 +14,99 @@ maintainer:     root@livid.pp.ru
 license:        GPL-2
 license-file:   LICENSE
 build-type:     Simple
+extra-source-files:
+    test/demo-chapters.inc
+    test/demo.inc
+    CHANGELOG.md
+    licenses/LICENSE.roman-numerals
+data-files:
+    docs/demo/demo.md
+    docs/index.md
+    test/m2m/chapDelim/expect.md
+    test/m2m/chapDelim/expect.tex
+    test/m2m/chapDelim/input.md
+    test/m2m/delim/expect.md
+    test/m2m/delim/expect.tex
+    test/m2m/delim/input.md
+    test/m2m/emptyChapterLabels/expect.md
+    test/m2m/emptyChapterLabels/expect.tex
+    test/m2m/emptyChapterLabels/input.md
+    test/m2m/eqnBlockTemplate/expect.md
+    test/m2m/eqnBlockTemplate/expect.tex
+    test/m2m/eqnBlockTemplate/input.md
+    test/m2m/eqnInlineTemplate/expect.md
+    test/m2m/eqnInlineTemplate/expect.tex
+    test/m2m/eqnInlineTemplate/input.md
+    test/m2m/equationNumberLaTeX/expect.md
+    test/m2m/equationNumberLaTeX/expect.tex
+    test/m2m/equationNumberLaTeX/input.md
+    test/m2m/equations-auto/expect.md
+    test/m2m/equations-auto/expect.tex
+    test/m2m/equations-auto/input.md
+    test/m2m/equations-tables-auto/expect.md
+    test/m2m/equations-tables-auto/expect.tex
+    test/m2m/equations-tables-auto/input.md
+    test/m2m/equations-tables/expect.md
+    test/m2m/equations-tables/expect.tex
+    test/m2m/equations-tables/input.md
+    test/m2m/equations/expect.md
+    test/m2m/equations/expect.tex
+    test/m2m/equations/input.md
+    test/m2m/label-precedence/expect.md
+    test/m2m/label-precedence/expect.tex
+    test/m2m/label-precedence/input.md
+    test/m2m/links-names/expect.md
+    test/m2m/links-names/expect.tex
+    test/m2m/links-names/input.md
+    test/m2m/links/expect.md
+    test/m2m/links/expect.tex
+    test/m2m/links/input.md
+    test/m2m/listing-captions-ids/expect.md
+    test/m2m/listing-captions-ids/expect.tex
+    test/m2m/listing-captions-ids/input.md
+    test/m2m/listings-code-block-caption-278/expect.md
+    test/m2m/listings-code-block-caption-278/expect.tex
+    test/m2m/listings-code-block-caption-278/input.md
+    test/m2m/listOfTemplates-buillet-list/expect.md
+    test/m2m/listOfTemplates-buillet-list/expect.tex
+    test/m2m/listOfTemplates-buillet-list/input.md
+    test/m2m/listOfTemplates-ord-list/expect.md
+    test/m2m/listOfTemplates-ord-list/expect.tex
+    test/m2m/listOfTemplates-ord-list/input.md
+    test/m2m/listOfTemplates/expect.md
+    test/m2m/listOfTemplates/expect.tex
+    test/m2m/listOfTemplates/input.md
+    test/m2m/loxItemTitle/expect.md
+    test/m2m/loxItemTitle/expect.tex
+    test/m2m/loxItemTitle/input.md
+    test/m2m/multiple-eqn-same-para/expect.md
+    test/m2m/multiple-eqn-same-para/expect.tex
+    test/m2m/multiple-eqn-same-para/input.md
+    test/m2m/secLabels/expect.md
+    test/m2m/secLabels/expect.tex
+    test/m2m/secLabels/input.md
+    test/m2m/secLevelLabels/expect.md
+    test/m2m/secLevelLabels/expect.tex
+    test/m2m/secLevelLabels/input.md
+    test/m2m/section-template/expect.md
+    test/m2m/section-template/expect.tex
+    test/m2m/section-template/input.md
+    test/m2m/setLabelAttribute/expect.md
+    test/m2m/setLabelAttribute/expect.tex
+    test/m2m/setLabelAttribute/input.md
+    test/m2m/subfigures-ccsDelim/expect.md
+    test/m2m/subfigures-ccsDelim/expect.tex
+    test/m2m/subfigures-ccsDelim/input.md
+    test/m2m/subfigures-grid/expect.md
+    test/m2m/subfigures-grid/expect.tex
+    test/m2m/subfigures-grid/input.md
+    test/m2m/subfigures/expect.md
+    test/m2m/subfigures/expect.tex
+    test/m2m/subfigures/input.md
+    test/m2m/titlesInRefs/expect.md
+    test/m2m/titlesInRefs/expect.tex
+    test/m2m/titlesInRefs/input.md
+cabal-version: 1.12
 
 source-repository head
   type: git
@@ -32,6 +121,7 @@ library
   exposed-modules:
       Text.Pandoc.CrossRef
   other-modules:
+      Text.Numeral.Roman
       Text.Pandoc.CrossRef.References
       Text.Pandoc.CrossRef.References.Blocks
       Text.Pandoc.CrossRef.References.List
@@ -60,13 +150,12 @@ library
     , microlens >=0.4.12.0 && <0.5.0.0
     , microlens-mtl >=0.2.0.1 && <0.3.0.0
     , microlens-th >=0.4.3.10 && <0.5.0.0
-    , mtl >=1.1 && <2.3
-    , pandoc >=2.10 && <2.18
-    , pandoc-types >=1.21 && <1.23
-    , roman-numerals ==0.5.*
+    , mtl >=1.1 && <2.4
+    , pandoc >=2.18 && <2.20
+    , pandoc-types >=1.22.2 && <1.23
     , syb >=0.4 && <0.8
     , template-haskell >=2.7.0.0 && <3.0.0.0
-    , text >=1.2.2 && <1.3
+    , text >=1.2.2 && <2.1
     , utility-ht >=0.0.11 && <0.1.0
   default-language: Haskell2010
 
@@ -82,13 +171,13 @@ executable pandoc-crossref
     , deepseq ==1.4.*
     , gitrev >=1.3.1 && <1.4
     , open-browser ==0.2.*
-    , optparse-applicative >=0.13 && <0.17
-    , pandoc >=2.10 && <2.18
+    , optparse-applicative >=0.13 && <0.18
+    , pandoc >=2.18 && <2.20
     , pandoc-crossref
-    , pandoc-types >=1.21 && <1.23
+    , pandoc-types >=1.22.2 && <1.23
     , template-haskell >=2.7.0.0 && <3.0.0.0
     , temporary >=1.2 && <1.4
-    , text >=1.2.2 && <1.3
+    , text >=1.2.2 && <2.1
   default-language: Haskell2010
 
 test-suite test-integrative
@@ -102,10 +191,10 @@ test-suite test-integrative
     , directory >=1 && <1.4
     , filepath >=1.1 && <1.5
     , hspec >=2.4.4 && <3
-    , pandoc >=2.10 && <2.18
+    , pandoc >=2.18 && <2.20
     , pandoc-crossref
-    , pandoc-types >=1.21 && <1.23
-    , text >=1.2.2 && <1.3
+    , pandoc-types >=1.22.2 && <1.23
+    , text >=1.2.2 && <2.1
   if flag(enable_flaky_tests)
     cpp-options: -DFLAKY
   default-language: Haskell2010
@@ -128,10 +217,10 @@ test-suite test-pandoc-crossref
     , hspec >=2.4.4 && <3
     , microlens >=0.4.12.0 && <0.5.0.0
     , mtl >=1.1 && <2.3
-    , pandoc >=2.10 && <2.18
+    , pandoc >=2.18 && <2.20
     , pandoc-crossref
-    , pandoc-types >=1.21 && <1.23
-    , text >=1.2.2 && <1.3
+    , pandoc-types >=1.22.2 && <1.23
+    , text >=1.2.2 && <2.1
   if flag(enable_flaky_tests)
     cpp-options: -DFLAKY
   default-language: Haskell2010
@@ -146,9 +235,9 @@ benchmark simple
   ghc-options: -Wall -fno-warn-unused-do-bind -threaded
   build-depends:
       base >=4.11 && <5
-    , criterion >=1.5.9.0 && <1.6
-    , pandoc >=2.10 && <2.18
+    , criterion >=1.5.9.0 && <1.7
+    , pandoc >=2.18 && <2.20
     , pandoc-crossref
-    , pandoc-types >=1.21 && <1.23
-    , text >=1.2.2 && <1.3
+    , pandoc-types >=1.22.2 && <1.23
+    , text >=1.2.2 && <2.1
   default-language: Haskell2010
diff --git a/srcpkgs/pandoc/template b/srcpkgs/pandoc/template
index 9bdf32ef3c53..0ce941c6fcc5 100644
--- a/srcpkgs/pandoc/template
+++ b/srcpkgs/pandoc/template
@@ -1,20 +1,19 @@
 # Template file for 'pandoc'
 pkgname=pandoc
 # Keep in sync with http://www.stackage.org/lts
-version=2.17.1.1
+version=2.19.2
 revision=1
 _sidenote_version=0.22.1.0
 _monad_gen_version=0.3.0.1
-_crossref_version=0.3.12.2
-_roman_numerals_version=0.5.1.5
+_crossref_version=0.3.14.0
 create_wrksrc=yes
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 make_build_args="
  --flag pandoc:embed_data_files
  --flag=lua:pkg-config"
 hostmakedepends="pkg-config unzip wget"
-makedepends="zlib-devel lua53-devel tar"
+makedepends="zlib-devel lua54-devel tar"
 short_desc="Universal converter between markup formats"
 maintainer="slotThe <soliditsallgood@mailbox.org>"
 license="GPL-2.0-or-later, BSD-3-Clause"
@@ -22,13 +21,11 @@ homepage="http://johnmacfarlane.net/pandoc/"
 distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz
  https://hackage.haskell.org/package/${pkgname}-sidenote-${_sidenote_version}/${pkgname}-sidenote-${_sidenote_version}.tar.gz
  https://hackage.haskell.org/package/monad-gen-${_monad_gen_version}/monad-gen-${_monad_gen_version}.tar.gz
- https://hackage.haskell.org/package/${pkgname}-crossref-${_crossref_version}/${pkgname}-crossref-${_crossref_version}.tar.gz
- https://hackage.haskell.org/package/roman-numerals-${_roman_numerals_version}/roman-numerals-${_roman_numerals_version}.tar.gz"
-checksum="649ec528d1413130c5ce304b826ff473b3696269eea8834d908589e775bd1ad1
+ https://hackage.haskell.org/package/${pkgname}-crossref-${_crossref_version}/${pkgname}-crossref-${_crossref_version}.tar.gz"
+checksum="36e83694c36a5af35a4442c4d5abd4273289d9d309793466f59c1632e87d4245
  c39dd7343b9cb4dc5b1c91c9e47c3d357874e9e1a30b8d377bbea0b1d50323b2
  be8485023fce236b5b915f2f6074f7b0470a2040f84cdd137c5227f1b4c98465
- 94540325c9c98ae4d5199c634bf402ffa41e3c5b020d7207daef90fd9e224fb4
- b9c7195b69b1662a286d2c28a55fafdcb693c522ba5eb54a11b1d0a4e92eaa81"
+ 06d163e2cec3f285919295c41a0580f203bb157d05eb06a494dbc093cbefa5b8"
 subpackages="
  pandoc-sidenote
  pandoc-crossref"

From 64f9e27c94218c3f8b4ac7a3091dabe797feb3d7 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 08:32:36 +0100
Subject: [PATCH 07/22] shellcheck: bump for stackage lts-20.0

---
 srcpkgs/shellcheck/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/shellcheck/template b/srcpkgs/shellcheck/template
index e85667f66918..c06b88603109 100644
--- a/srcpkgs/shellcheck/template
+++ b/srcpkgs/shellcheck/template
@@ -1,9 +1,9 @@
 # Template file for 'shellcheck'
 pkgname=shellcheck
 version=0.9.0
-revision=1
+revision=2
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 hostmakedepends="pandoc"
 short_desc="Static analysis tool for shell scripts"
 maintainer="Diogo Leal <diogo@diogoleal.com>"

From b72f37ea6631b90f2da8c80353754274e5de9dfb Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 08:36:43 +0100
Subject: [PATCH 08/22] New package: greenclip-4.2

Co-authored-by: KawaiiAmber <japaneselearning101@gmail.com>
---
 srcpkgs/greenclip/files/stack.yaml | 12 ++++++++++++
 srcpkgs/greenclip/template         | 19 +++++++++++++++++++
 2 files changed, 31 insertions(+)
 create mode 100644 srcpkgs/greenclip/files/stack.yaml
 create mode 100644 srcpkgs/greenclip/template

diff --git a/srcpkgs/greenclip/files/stack.yaml b/srcpkgs/greenclip/files/stack.yaml
new file mode 100644
index 000000000000..86f4b6fa7ed2
--- /dev/null
+++ b/srcpkgs/greenclip/files/stack.yaml
@@ -0,0 +1,12 @@
+resolver: lts-20.0
+
+packages:
+- '.'
+
+extra-deps:
+- 'wordexp-0.2.2'
+- 'protolude-0.3.2'
+- 'tomland-1.3.3.2'
+- 'validation-selective-0.1.0.2'
+
+allow-newer: true
diff --git a/srcpkgs/greenclip/template b/srcpkgs/greenclip/template
new file mode 100644
index 000000000000..c048afe39e01
--- /dev/null
+++ b/srcpkgs/greenclip/template
@@ -0,0 +1,19 @@
+# Template file for 'greenclip'
+pkgname=greenclip
+version=4.2
+revision=1
+build_style=haskell-stack
+hostmakedepends="pkg-config"
+makedepends="libX11-devel libXinerama-devel libXrandr-devel libXScrnSaver-devel"
+short_desc="Simple clipboard manager to be integrated with rofi"
+maintainer="KawaiiAmber <japaneselearning101@gmail.com>"
+license="BSD-3-Clause"
+homepage="https://github.com/erebe/greenclip"
+distfiles="${homepage}/archive/refs/tags/v${version}.tar.gz"
+checksum=bb95211e3c4bf3ab3a95ede92a678f79bedf2ed2c5b707ba0fb2efbae7fc60cd
+nopie=yes
+nocross="can't yet cross compile Haskell"
+
+post_install() {
+	vlicense LICENSE
+}

From b244badd1691a35e0eeab309f750297cccbdbc0b Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 10:35:09 +0100
Subject: [PATCH 09/22] hledger: update to 1.28

---
 srcpkgs/hledger/files/stack.yaml | 14 +++++---------
 srcpkgs/hledger/template         |  4 ++--
 2 files changed, 7 insertions(+), 11 deletions(-)

diff --git a/srcpkgs/hledger/files/stack.yaml b/srcpkgs/hledger/files/stack.yaml
index b5f41932e272..e2fd18f264a4 100644
--- a/srcpkgs/hledger/files/stack.yaml
+++ b/srcpkgs/hledger/files/stack.yaml
@@ -1,4 +1,4 @@
-resolver: lts-19.0
+resolver:  lts-20.0
 
 packages:
 - hledger-lib
@@ -7,16 +7,12 @@ packages:
 - hledger-web
 
 extra-deps:
+- megaparsec-9.3.0
 # for hledger-lib:
-- breakpoint-0.1.0.0
+# - breakpoint-0.1.2.0
 # for hledger:
 # for hledger-ui:
-- brick-1.0
-- bimap-0.5.0
-- text-zipper-0.12
-- vty-5.36
+- brick-1.5
+- fsnotify-0.4.0.0
 # for hledger-web:
 # for Shake.hs:
-
-ghc-options:
-  "$locals": -fplugin Debug.Breakpoint
diff --git a/srcpkgs/hledger/template b/srcpkgs/hledger/template
index 5750484fc5bc..6a4360a0c641 100644
--- a/srcpkgs/hledger/template
+++ b/srcpkgs/hledger/template
@@ -1,6 +1,6 @@
 # Template file for 'hledger'
 pkgname=hledger
-version=1.27.1
+version=1.28
 revision=1
 build_style=haskell-stack
 makedepends="zlib-devel ncurses-devel"
@@ -10,7 +10,7 @@ license="GPL-3.0-or-later"
 homepage="https://hledger.org/"
 changelog="https://hackage.haskell.org/package/hledger-${version}/changelog"
 distfiles="https://github.com/simonmichael/hledger/archive/${version}.tar.gz"
-checksum=218f6005b7b30308cc43523dc7b61c818bb649abc217a6c8803e8f82b408d239
+checksum=e2736f732d9f5cade993877b4524f06fbb3488142843c62653a0849180d2a34a
 nopie_files="/usr/bin/hledger"
 nocross=yes # Can't yet cross compile Haskell
 

From 09afe3b6b6e780d7e8e842a71f12eb57592d5613 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 13:58:50 +0100
Subject: [PATCH 10/22] darcs: bump for stackage lts-20.0

---
 srcpkgs/darcs/files/stack.yaml | 2 +-
 srcpkgs/darcs/template         | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/darcs/files/stack.yaml b/srcpkgs/darcs/files/stack.yaml
index 6e459703764a..f2dd5264e5bf 100644
--- a/srcpkgs/darcs/files/stack.yaml
+++ b/srcpkgs/darcs/files/stack.yaml
@@ -1,4 +1,4 @@
-resolver: lts-19.0
+resolver: lts-20.0
 packages:
 - .
 allow-newer: true
diff --git a/srcpkgs/darcs/template b/srcpkgs/darcs/template
index 15a8f71f9021..04a0f6da593c 100644
--- a/srcpkgs/darcs/template
+++ b/srcpkgs/darcs/template
@@ -1,7 +1,7 @@
 # Template file for 'darcs'
 pkgname=darcs
 version=2.16.5
-revision=3
+revision=4
 build_style=haskell-stack
 hostmakedepends="unzip"
 makedepends="zlib-devel libcurl-devel ncurses-devel"

From bcfad03f61ed98bea9f3f5e6189c0383834e54ee Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 14:54:40 +0100
Subject: [PATCH 11/22] cgrep: bump for stackage lts-20.0

---
 srcpkgs/cgrep/files/stack.yaml | 7 +++++++
 srcpkgs/cgrep/template         | 2 +-
 2 files changed, 8 insertions(+), 1 deletion(-)
 create mode 100644 srcpkgs/cgrep/files/stack.yaml

diff --git a/srcpkgs/cgrep/files/stack.yaml b/srcpkgs/cgrep/files/stack.yaml
new file mode 100644
index 000000000000..9db0805a3957
--- /dev/null
+++ b/srcpkgs/cgrep/files/stack.yaml
@@ -0,0 +1,7 @@
+resolver: lts-20.0
+
+packages:
+  - '.'
+
+extra-deps:
+  - bitwise-1.0.0.1
diff --git a/srcpkgs/cgrep/template b/srcpkgs/cgrep/template
index 9d943300a68c..865d4e43398d 100644
--- a/srcpkgs/cgrep/template
+++ b/srcpkgs/cgrep/template
@@ -1,7 +1,7 @@
 # Template file for 'cgrep'
 pkgname=cgrep
 version=7.0.0
-revision=1
+revision=2
 build_style=haskell-stack
 makedepends="pcre-devel pkg-config"
 short_desc="Context-aware grep for source codes"

From bc3778263267cf26d60df508d713bb57b570ed04 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 15:38:14 +0100
Subject: [PATCH 12/22] xmobar: update to 0.44.2

This is the last version that still builds on musl.
---
 srcpkgs/xmobar/files/stack.yaml | 2 +-
 srcpkgs/xmobar/template         | 9 +++++----
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/xmobar/files/stack.yaml b/srcpkgs/xmobar/files/stack.yaml
index 7e0956374142..15744aaa56ee 100644
--- a/srcpkgs/xmobar/files/stack.yaml
+++ b/srcpkgs/xmobar/files/stack.yaml
@@ -1,4 +1,4 @@
-resolver: lts-19.0
+resolver: lts-20.0
 packages:
 - .
 extra-deps:
diff --git a/srcpkgs/xmobar/template b/srcpkgs/xmobar/template
index 6a12a9ed7055..fb00e4865322 100644
--- a/srcpkgs/xmobar/template
+++ b/srcpkgs/xmobar/template
@@ -1,6 +1,7 @@
 # Template file for 'xmobar'
 pkgname=xmobar
-version=0.42
+# versions >= 0.45 are broken on musl: https://codeberg.org/xmobar/xmobar/issues/656
+version=0.44.2
 revision=1
 build_style=haskell-stack
 hostmakedepends="pkg-config"
@@ -15,10 +16,10 @@ maintainer="xaltsc <xaltsc@protonmail.ch>"
 license="BSD-3-Clause"
 homepage="https://xmobar.org"
 distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz"
-checksum=53f4a06d79c3db32ef1a498ec7b764b17d03ebf9bca3126c6b8259595492769b
-build_options="dbus threaded utf8 xft mpd mpris inotify iwlib alsa datezone
+checksum=08a0bdd6a6c84b2219fae33de1c1335ff3610a194b377dc59ab4505aac84b73d
+build_options="dbus threaded xft mpd mpris inotify iwlib alsa datezone
  xpm uvmeter weather nl80211"
-build_options_default="threaded utf8 xft inotify nl80211 datezone weather xpm alsa mpris mpd dbus"
+build_options_default="threaded xft inotify nl80211 datezone weather xpm alsa mpris mpd dbus"
 nopie_files="/usr/bin/xmobar"
 nocross=yes
 vopt_hflag() {

From af04deea05b26054881ade9e6712ee3e7a22e2e8 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 17:10:27 +0100
Subject: [PATCH 13/22] kmonad: bump for stackage lts-20.0

---
 srcpkgs/kmonad/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kmonad/template b/srcpkgs/kmonad/template
index 04088043afc2..a21383b6a484 100644
--- a/srcpkgs/kmonad/template
+++ b/srcpkgs/kmonad/template
@@ -3,9 +3,9 @@ pkgname=kmonad
 reverts="65b501defdd0049563752f8af8c8c57f5a1ae38b_1"
 _githash=65b501defdd0049563752f8af8c8c57f5a1ae38b
 version=0.4.1.20220321
-revision=1
+revision=2
 build_style=haskell-stack
-stackage=lts-19.0
+stackage=lts-20.0
 short_desc="Keyboard remapping utility providing qmk-like functionality"
 maintainer="slotThe <soliditsallgood@mailbox.org>"
 license="MIT"

From b783cb1f43574e6bf73d89d4e867e7610b244c2a Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 17:11:43 +0100
Subject: [PATCH 14/22] glirc: bump for cabal-install 3.8.1.0

---
 srcpkgs/glirc/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/glirc/template b/srcpkgs/glirc/template
index 98a677886ae1..458609007def 100644
--- a/srcpkgs/glirc/template
+++ b/srcpkgs/glirc/template
@@ -1,7 +1,7 @@
 # Template file for 'glirc'
 pkgname=glirc
 version=2.39.0.1
-revision=1
+revision=2
 hostmakedepends="cabal-install"
 makedepends="ncurses-devel openssl-devel"
 short_desc="Console IRC client written in Haskell"

From 902bcc768fbcd0855eafe3d232ce7210d64fefab Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 18:15:04 +0100
Subject: [PATCH 15/22] git-mediate: bump for stackage lts-20.0

---
 srcpkgs/git-mediate/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/git-mediate/template b/srcpkgs/git-mediate/template
index 705df7843b8e..f472a26d132a 100644
--- a/srcpkgs/git-mediate/template
+++ b/srcpkgs/git-mediate/template
@@ -1,9 +1,9 @@
 # Template file for 'git-mediate'
 pkgname=git-mediate
 version=1.0.8.1
-revision=3
+revision=4
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 depends="git"
 short_desc="Tool to help resolving git conflicts"
 maintainer="Peter Wang <novalazy@gmail.com>"

From 3135d4b7069eeb833c222919e2954f1887bd4261 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Thu, 29 Dec 2022 09:22:09 +0100
Subject: [PATCH 16/22] [WIP] ghc-bin: update to 9.2.5

---
 srcpkgs/ghc-bin/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/ghc-bin/template b/srcpkgs/ghc-bin/template
index f9610408060f..ee8083ff3cf0 100644
--- a/srcpkgs/ghc-bin/template
+++ b/srcpkgs/ghc-bin/template
@@ -1,6 +1,6 @@
 # Template file for 'ghc-bin'
 pkgname=ghc-bin
-version=9.0.2
+version=9.2.5
 revision=1
 archs="i686 x86_64* ppc64le* ppc64 aarch64*"
 hostmakedepends="perl libffi libnuma"
@@ -16,7 +16,7 @@ conflicts="ghc>=0 ghc-doc>=0"
 case "$XBPS_TARGET_MACHINE" in
 x86_64)
 	distfiles="https://downloads.haskell.org/ghc/${version%[!0-9]}/ghc-${version}-x86_64-deb9-linux.tar.xz"
-	checksum=805f5628ce6cec678ba77ff48c924831ebdf75ec2c66368e8935a618913a150e
+	checksum=2d115b7258751f0e4481e35b5953ca3c7870e8ec9ce68f1d32fc014ddc29b2a5
 	;;
 x86_64-musl)
 	# create with "make binary-dist"
@@ -25,7 +25,7 @@ x86_64-musl)
 	;;
 i686)
 	distfiles="https://downloads.haskell.org/ghc/${version%[!0-9]}/ghc-${version}-i386-deb9-linux.tar.xz"
-	checksum=fdeb9f8928fbe994064778a8e1e85bb1a58a6cd3dd7b724fcc2a1dcfda6cad47
+	checksum=cf2088010e4477cb84b26725107eeb23e878368074abcf04f089d498ca2d9ddf
 	;;
 ppc64le)
 	distfiles="https://repo-default.voidlinux.org/distfiles/ghc-${version}-powerpc64le-void-linux.tar.xz"

From ed70d04edb71262b23158dd7397916111ab1d337 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Thu, 29 Dec 2022 09:22:41 +0100
Subject: [PATCH 17/22] New package: ghcup-0.21

Co-authored-by: Kye Shi <shi.kye@gmail.com>
---
 srcpkgs/ghcup/INSTALL.msg |  8 ++++++++
 srcpkgs/ghcup/template    | 32 ++++++++++++++++++++++++++++++++
 2 files changed, 40 insertions(+)
 create mode 100644 srcpkgs/ghcup/INSTALL.msg
 create mode 100644 srcpkgs/ghcup/template

diff --git a/srcpkgs/ghcup/INSTALL.msg b/srcpkgs/ghcup/INSTALL.msg
new file mode 100644
index 000000000000..100bbd0780b7
--- /dev/null
+++ b/srcpkgs/ghcup/INSTALL.msg
@@ -0,0 +1,8 @@
+ghcup comes with an internal downloader, but optionally depends on curl and/or
+wget for more advanced usages (e.g., proxying).  To use curl/wget as downloader,
+first make sure they are installed, then run `ghcup config set downloader Curl`.
+
+Also, ghcup requires $GHCUP_INSTALL_BASE_PREFIX/.ghcup/bin to be in your PATH
+(by default, $GHCUP_INSTALL_BASE_PREFIX is $HOME); make sure to update your
+shell launch scripts accordingly. Alternatively, when GHCUP_USE_XDG_DIRS is set,
+GHCUP uses XDG-ish directories.
diff --git a/srcpkgs/ghcup/template b/srcpkgs/ghcup/template
new file mode 100644
index 000000000000..de9be01dc9f0
--- /dev/null
+++ b/srcpkgs/ghcup/template
@@ -0,0 +1,32 @@
+# Template file for 'ghcup'
+pkgname=ghcup
+version=0.21
+revision=1
+wrksrc="ghcup-hs-v$version"
+hostmakedepends='tar git cabal-install pkg-config'
+makedepends='zlib-devel ncurses-libtinfo-devel libarchive-devel'
+depends='zlib ncurses-libtinfo-libs libarchive gcc gmp make perl'
+short_desc='Installer for the general purpose language Haskell'
+maintainer='Kye Shi <shi.kye@gmail.com>'
+license='LGPL-3.0-only'
+homepage='https://www.haskell.org/ghcup/'
+distfiles="https://github.com/haskell/ghcup-hs/archive/refs/tags/v$version.tar.gz"
+checksum=66bf77b062740eb18053b5b0456d568874b2981f641597e6152a721851900c4e
+nopie_files='/usr/bin/ghcup'
+nocross='cannot cross compile haskell yet'
+
+post_extract() {
+	vsed -i 's/-system-libarchive/+system-libarchive/' cabal.project
+}
+
+do_build() {
+	cabal update --prefix="$PWD"
+	cabal build --prefix="$PWD" --project-file=cabal.project -f'internal-downloader'
+}
+
+do_install() {
+	cabal install --prefix="$PWD" --install-method='copy' --installdir="$DESTDIR/usr/bin"
+	for sh in 'bash' 'fish' 'zsh'; do
+		vcompletion "scripts/shell-completions/$sh" "$sh"
+	done
+}

From 62f7f0b0f3ccd713525ee49ff555740cbf08cc5a Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Thu, 29 Dec 2022 12:22:29 +0100
Subject: [PATCH 18/22] debug-me: bump for stackage lts-20.0

---
 srcpkgs/debug-me/files/stack.yaml         |  2 +-
 srcpkgs/debug-me/patches/bytestring.patch | 26 +++++++++++++++++++++++
 srcpkgs/debug-me/template                 |  3 +--
 3 files changed, 28 insertions(+), 3 deletions(-)
 create mode 100644 srcpkgs/debug-me/patches/bytestring.patch

diff --git a/srcpkgs/debug-me/files/stack.yaml b/srcpkgs/debug-me/files/stack.yaml
index f2b1a79d70c6..cf7820620db2 100644
--- a/srcpkgs/debug-me/files/stack.yaml
+++ b/srcpkgs/debug-me/files/stack.yaml
@@ -1,6 +1,6 @@
 packages:
 - '.'
-resolver: lts-19.0
+resolver: lts-20.0
 extra-deps:
   - posix-pty-0.2.1.1
   - sandi-0.5@sha256:b278d072ca717706ea38f9bd646e023f7f2576a778fb43565b434f93638849aa,3010
diff --git a/srcpkgs/debug-me/patches/bytestring.patch b/srcpkgs/debug-me/patches/bytestring.patch
new file mode 100644
index 000000000000..24a67ef604d0
--- /dev/null
+++ b/srcpkgs/debug-me/patches/bytestring.patch
@@ -0,0 +1,26 @@
+From 1d30b5cd9156b1a9d409c8810dab26e2dc5065af Mon Sep 17 00:00:00 2001
+From: Tony Zorman <soliditsallgood@mailbox.org>
+Date: Thu, 29 Dec 2022 10:35:58 +0100
+Subject: [PATCH] Bump bytestring dependency
+
+This fixes the build for GHC 9.2, which ships with a higher version of
+the bytestring library.
+---
+ debug-me.cabal | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/debug-me.cabal b/debug-me.cabal
+index d5a44e9..2dd60a0 100644
+--- a/debug-me.cabal
++++ b/debug-me.cabal
+@@ -55,7 +55,7 @@ Executable debug-me
+   Build-Depends:
+       base (>= 4.9 && < 5.0)
+     , network (>= 2.6)
+-    , bytestring == 0.10.*
++    , bytestring < 0.12
+     , cryptonite (>= 0.20)
+     , unix (>= 2.7)
+     , process (>= 1.4)
+--
+2.39.0
diff --git a/srcpkgs/debug-me/template b/srcpkgs/debug-me/template
index f971f2156c77..0ffea08897fe 100644
--- a/srcpkgs/debug-me/template
+++ b/srcpkgs/debug-me/template
@@ -1,9 +1,8 @@
 # Template file for 'debug-me'
 pkgname=debug-me
 version=1.20220324
-revision=1
+revision=2
 build_style=haskell-stack
-stackage="lts-19.0"
 makedepends="zlib-devel"
 short_desc="Secure remote debugging"
 maintainer="Dominic Monroe <monroef4@googlemail.com>"

From 6d2757d2607a7aecc6da4131e294ee97fd1b6d37 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Thu, 29 Dec 2022 16:04:34 +0100
Subject: [PATCH 19/22] git-annex: update to 10.20221212

Patch bloomfilter to fix the build for GHC 9.2.5.

Related: https://github.com/bos/bloomfilter/pull/20
---
 srcpkgs/git-annex/files/stack.yaml            |  31 +-
 .../patches/bloomfilter-ghc9.2.patch          | 290 ++++++++++++++++++
 srcpkgs/git-annex/template                    |  14 +-
 3 files changed, 313 insertions(+), 22 deletions(-)
 create mode 100644 srcpkgs/git-annex/patches/bloomfilter-ghc9.2.patch

diff --git a/srcpkgs/git-annex/files/stack.yaml b/srcpkgs/git-annex/files/stack.yaml
index acc592054f70..b2674a7af4ad 100644
--- a/srcpkgs/git-annex/files/stack.yaml
+++ b/srcpkgs/git-annex/files/stack.yaml
@@ -10,21 +10,18 @@ flags:
     benchmark: true
     gitlfs: true
 packages:
-  - '.'
-resolver: lts-19.0
+- './git-annex-10.20221212'
+resolver: lts-20.0
 extra-deps:
-  - IfElse-0.85
-  - aws-0.22
-  - bloomfilter-2.0.1.0
-  - git-lfs-1.2.0
-  - http-client-restricted-0.0.4
-  - network-multicast-0.3.2
-  - sandi-0.5
-  - torrent-10000.1.1
-  - base16-bytestring-0.1.1.7
-  - base64-bytestring-1.0.0.3
-  - bencode-0.6.1.1
-  - aeson-1.5.6.0@sha256:5003bb6fd260d2e2d5a51dee2bf5c8e8f29e4e0e0288fef805c22dcc80ecab06,6788
-  - http-client-0.7.11@sha256:3f59ac8ffe2a3768846cdda040a0d1df2a413960529ba61c839861c948871967,5756
-explicit-setup-deps:
-    git-annex: true
+- IfElse-0.85
+- aws-0.23
+- ./bloomfilter-2.0.1.0
+- git-lfs-1.2.0
+- http-client-restricted-0.0.5
+- network-multicast-0.3.2
+- sandi-0.5
+- torrent-10000.1.1
+- base16-bytestring-1.0.2.0
+- base64-bytestring-1.2.1.0
+- bencode-0.6.1.1
+- http-client-0.7.13.1
diff --git a/srcpkgs/git-annex/patches/bloomfilter-ghc9.2.patch b/srcpkgs/git-annex/patches/bloomfilter-ghc9.2.patch
new file mode 100644
index 000000000000..0316a6a15194
--- /dev/null
+++ b/srcpkgs/git-annex/patches/bloomfilter-ghc9.2.patch
@@ -0,0 +1,290 @@
+From fb79b39c44404fd791a3bed973e9d844fb084f1e Mon Sep 17 00:00:00 2001
+From: Simon Jakobi <simon.jakobi@gmail.com>
+Date: Fri, 12 Nov 2021 01:37:36 +0100
+Subject: [PATCH] Fix build with GHC 9.2
+
+The `FastShift.shift{L,R}` methods are replaced with `unsafeShift{L,R}`
+introduced in base-4.5.
+
+Fixes #19.
+---
+ Data/BloomFilter.hs         | 16 +++++------
+ Data/BloomFilter/Hash.hs    | 15 +++++-----
+ Data/BloomFilter/Mutable.hs | 20 +++++++-------
+ Data/BloomFilter/Util.hs    | 55 ++++++-------------------------------
+ bloomfilter.cabal           |  2 +-
+ 5 files changed, 34 insertions(+), 74 deletions(-)
+
+diff --git a/bloomfilter-2.0.1.0/Data/BloomFilter.hs b/bloomfilter-2.0.1.0/Data/BloomFilter.hs
+index 2210cef..6b47c21 100644
+--- a/bloomfilter-2.0.1.0/Data/BloomFilter.hs
++++ b/bloomfilter-2.0.1.0/Data/BloomFilter.hs
+@@ -78,8 +78,8 @@ import Control.DeepSeq (NFData(..))
+ import Data.Array.Base (unsafeAt)
+ import qualified Data.Array.Base as ST
+ import Data.Array.Unboxed (UArray)
+-import Data.Bits ((.&.))
+-import Data.BloomFilter.Util (FastShift(..), (:*)(..))
++import Data.Bits ((.&.), unsafeShiftL, unsafeShiftR)
++import Data.BloomFilter.Util ((:*)(..))
+ import qualified Data.BloomFilter.Mutable as MB
+ import qualified Data.BloomFilter.Mutable.Internal as MB
+ import Data.BloomFilter.Mutable.Internal (Hash, MBloom)
+@@ -98,7 +98,7 @@ data Bloom a = B {
+     }
+
+ instance Show (Bloom a) where
+-    show ub = "Bloom { " ++ show ((1::Int) `shiftL` shift ub) ++ " bits } "
++    show ub = "Bloom { " ++ show ((1::Int) `unsafeShiftL` shift ub) ++ " bits } "
+
+ instance NFData (Bloom a) where
+     rnf !_ = ()
+@@ -172,7 +172,7 @@ singleton hash numBits elt = create hash numBits (\mb -> MB.insert mb elt)
+ -- | Given a filter's mask and a hash value, compute an offset into
+ -- a word array and a bit offset within that word.
+ hashIdx :: Int -> Word32 -> (Int :* Int)
+-hashIdx mask x = (y `shiftR` logBitsInHash) :* (y .&. hashMask)
++hashIdx mask x = (y `unsafeShiftR` logBitsInHash) :* (y .&. hashMask)
+   where hashMask = 31 -- bitsInHash - 1
+         y = fromIntegral x .&. mask
+
+@@ -191,7 +191,7 @@ hashesU ub elt = hashIdx (mask ub) `map` hashes ub elt
+ -- /still/ some possibility that @True@ will be returned.
+ elem :: a -> Bloom a -> Bool
+ elem elt ub = all test (hashesU ub elt)
+-  where test (off :* bit) = (bitArray ub `unsafeAt` off) .&. (1 `shiftL` bit) /= 0
++  where test (off :* bit) = (bitArray ub `unsafeAt` off) .&. (1 `unsafeShiftL` bit) /= 0
+           
+ modify :: (forall s. (MBloom s a -> ST s z))  -- ^ mutation function (result is discarded)
+         -> Bloom a
+@@ -255,11 +255,11 @@ insertList elts = modify $ \mb -> mapM_ (MB.insert mb) elts
+ -- is /still/ some possibility that @True@ will be returned.
+ notElem :: a -> Bloom a -> Bool
+ notElem elt ub = any test (hashesU ub elt)
+-  where test (off :* bit) = (bitArray ub `unsafeAt` off) .&. (1 `shiftL` bit) == 0
++  where test (off :* bit) = (bitArray ub `unsafeAt` off) .&. (1 `unsafeShiftL` bit) == 0
+
+ -- | Return the size of an immutable Bloom filter, in bits.
+ length :: Bloom a -> Int
+-length = shiftL 1 . shift
++length = unsafeShiftL 1 . shift
+
+ -- | Build an immutable Bloom filter from a seed value.  The seeding
+ -- function populates the filter as follows.
+@@ -318,7 +318,7 @@ fromList hashes numBits = unfold hashes numBits convert
+ logPower2 :: Int -> Int
+ logPower2 k = go 0 k
+     where go j 1 = j
+-          go j n = go (j+1) (n `shiftR` 1)
++          go j n = go (j+1) (n `unsafeShiftR` 1)
+
+ -- $overview
+ --
+diff --git a/bloomfilter-2.0.1.0/Data/BloomFilter/Hash.hs b/bloomfilter-2.0.1.0/Data/BloomFilter/Hash.hs
+index 132a3a4..d071fd4 100644
+--- a/bloomfilter-2.0.1.0/Data/BloomFilter/Hash.hs
++++ b/bloomfilter-2.0.1.0/Data/BloomFilter/Hash.hs
+@@ -38,8 +38,7 @@ module Data.BloomFilter.Hash
+     ) where
+
+ import Control.Monad (foldM)
+-import Data.Bits ((.&.), (.|.), xor)
+-import Data.BloomFilter.Util (FastShift(..))
++import Data.Bits ((.&.), (.|.), unsafeShiftL, unsafeShiftR, xor)
+ import Data.List (unfoldr)
+ import Data.Int (Int8, Int16, Int32, Int64)
+ import Data.Word (Word8, Word16, Word32, Word64)
+@@ -91,11 +90,11 @@ class Hashable a where
+              -> Word64           -- ^ salt
+              -> IO Word64
+     hashIO64 v salt = do
+-                   let s1 = fromIntegral (salt `shiftR` 32) .&. maxBound
++                   let s1 = fromIntegral (salt `unsafeShiftR` 32) .&. maxBound
+                        s2 = fromIntegral salt
+                    h1 <- hashIO32 v s1
+                    h2 <- hashIO32 v s2
+-                   return $ (fromIntegral h1 `shiftL` 32) .|. fromIntegral h2
++                   return $ (fromIntegral h1 `unsafeShiftL` 32) .|. fromIntegral h2
+
+ -- | Compute a 32-bit hash.
+ hash32 :: Hashable a => a -> Word32
+@@ -149,8 +148,8 @@ cheapHashes :: Hashable a => Int -- ^ number of hashes to compute
+ cheapHashes k v = go 0
+     where go i | i == j = []
+                | otherwise = hash : go (i + 1)
+-               where !hash = h1 + (h2 `shiftR` i)
+-          h1 = fromIntegral (h `shiftR` 32)
++               where !hash = h1 + (h2 `unsafeShiftR` i)
++          h1 = fromIntegral (h `unsafeShiftR` 32)
+           h2 = fromIntegral h
+           h = hashSalt64 0x9150a946c4a8966e v
+           j = fromIntegral k
+@@ -163,7 +162,7 @@ instance Hashable Integer where
+                                    (salt `xor` 0x3ece731e)
+                   | otherwise = hashIO32 (unfoldr go k) salt
+         where go 0 = Nothing
+-              go i = Just (fromIntegral i :: Word32, i `shiftR` 32)
++              go i = Just (fromIntegral i :: Word32, i `unsafeShiftR` 32)
+
+ instance Hashable Bool where
+     hashIO32 = hashOne32
+@@ -224,7 +223,7 @@ instance Hashable Word64 where
+ -- | A fast unchecked shift.  Nasty, but otherwise GHC 6.8.2 does a
+ -- test and branch on every shift.
+ div4 :: CSize -> CSize
+-div4 k = fromIntegral ((fromIntegral k :: HTYPE_SIZE_T) `shiftR` 2)
++div4 k = fromIntegral ((fromIntegral k :: HTYPE_SIZE_T) `unsafeShiftR` 2)
+
+ alignedHash :: Ptr a -> CSize -> Word32 -> IO Word32
+ alignedHash ptr bytes salt
+diff --git a/bloomfilter-2.0.1.0/Data/BloomFilter/Mutable.hs b/bloomfilter-2.0.1.0/Data/BloomFilter/Mutable.hs
+index edff1fc..0bb5cc9 100644
+--- a/bloomfilter-2.0.1.0/Data/BloomFilter/Mutable.hs
++++ b/bloomfilter-2.0.1.0/Data/BloomFilter/Mutable.hs
+@@ -65,9 +65,9 @@ module Data.BloomFilter.Mutable
+ import Control.Monad (liftM, forM_)
+ import Control.Monad.ST (ST)
+ import Data.Array.Base (unsafeRead, unsafeWrite)
+-import Data.Bits ((.&.), (.|.))
++import Data.Bits ((.&.), (.|.), unsafeShiftL, unsafeShiftR)
+ import Data.BloomFilter.Array (newArray)
+-import Data.BloomFilter.Util (FastShift(..), (:*)(..), nextPowerOfTwo)
++import Data.BloomFilter.Util ((:*)(..), nextPowerOfTwo)
+ import Data.Word (Word32)
+ import Data.BloomFilter.Mutable.Internal
+
+@@ -86,9 +86,9 @@ new hash numBits = MB hash shft msk `liftM` newArray numElems numBytes
+                 | numBits > maxHash = maxHash
+                 | isPowerOfTwo numBits = numBits
+                 | otherwise = nextPowerOfTwo numBits
+-        numElems = max 2 (twoBits `shiftR` logBitsInHash)
+-        numBytes = numElems `shiftL` logBytesInHash
+-        trueBits = numElems `shiftL` logBitsInHash
++        numElems = max 2 (twoBits `unsafeShiftR` logBitsInHash)
++        numBytes = numElems `unsafeShiftL` logBytesInHash
++        trueBits = numElems `unsafeShiftL` logBitsInHash
+         shft     = logPower2 trueBits
+         msk      = trueBits - 1
+         isPowerOfTwo n = n .&. (n - 1) == 0
+@@ -109,7 +109,7 @@ logBytesInHash = 2 -- logPower2 (sizeOf (undefined :: Hash))
+ -- | Given a filter's mask and a hash value, compute an offset into
+ -- a word array and a bit offset within that word.
+ hashIdx :: Int -> Word32 -> (Int :* Int)
+-hashIdx msk x = (y `shiftR` logBitsInHash) :* (y .&. hashMask)
++hashIdx msk x = (y `unsafeShiftR` logBitsInHash) :* (y .&. hashMask)
+   where hashMask = 31 -- bitsInHash - 1
+         y = fromIntegral x .&. msk
+
+@@ -125,7 +125,7 @@ insert mb elt = do
+   let mu = bitArray mb
+   forM_ (hashesM mb elt) $ \(word :* bit) -> do
+       old <- unsafeRead mu word
+-      unsafeWrite mu word (old .|. (1 `shiftL` bit))
++      unsafeWrite mu word (old .|. (1 `unsafeShiftL` bit))
+
+ -- | Query a mutable Bloom filter for membership.  If the value is
+ -- present, return @True@.  If the value is not present, there is
+@@ -135,7 +135,7 @@ elem elt mb = loop (hashesM mb elt)
+   where mu = bitArray mb
+         loop ((word :* bit):wbs) = do
+           i <- unsafeRead mu word
+-          if i .&. (1 `shiftL` bit) == 0
++          if i .&. (1 `unsafeShiftL` bit) == 0
+             then return False
+             else loop wbs
+         loop _ = return True
+@@ -145,7 +145,7 @@ elem elt mb = loop (hashesM mb elt)
+
+ -- | Return the size of a mutable Bloom filter, in bits.
+ length :: MBloom s a -> Int
+-length = shiftL 1 . shift
++length = unsafeShiftL 1 . shift
+
+
+ -- | Slow, crummy way of computing the integer log of an integer known
+@@ -153,7 +153,7 @@ length = shiftL 1 . shift
+ logPower2 :: Int -> Int
+ logPower2 k = go 0 k
+     where go j 1 = j
+-          go j n = go (j+1) (n `shiftR` 1)
++          go j n = go (j+1) (n `unsafeShiftR` 1)
+
+ -- $overview
+ --
+diff --git a/bloomfilter-2.0.1.0/Data/BloomFilter/Util.hs b/bloomfilter-2.0.1.0/Data/BloomFilter/Util.hs
+index 7f695dc..6ade6e5 100644
+--- a/bloomfilter-2.0.1.0/Data/BloomFilter/Util.hs
++++ b/bloomfilter-2.0.1.0/Data/BloomFilter/Util.hs
+@@ -2,15 +2,11 @@
+
+ module Data.BloomFilter.Util
+     (
+-      FastShift(..)
+-    , nextPowerOfTwo
++      nextPowerOfTwo
+     , (:*)(..)
+     ) where
+
+-import Data.Bits ((.|.))
+-import qualified Data.Bits as Bits
+-import GHC.Base
+-import GHC.Word
++import Data.Bits ((.|.), unsafeShiftR)
+
+ -- | A strict pair type.
+ data a :* b = !a :* !b
+@@ -22,46 +18,11 @@ nextPowerOfTwo :: Int -> Int
+ {-# INLINE nextPowerOfTwo #-}
+ nextPowerOfTwo n =
+     let a = n - 1
+-        b = a .|. (a `shiftR` 1)
+-        c = b .|. (b `shiftR` 2)
+-        d = c .|. (c `shiftR` 4)
+-        e = d .|. (d `shiftR` 8)
+-        f = e .|. (e `shiftR` 16)
+-        g = f .|. (f `shiftR` 32)  -- in case we're on a 64-bit host
++        b = a .|. (a `unsafeShiftR` 1)
++        c = b .|. (b `unsafeShiftR` 2)
++        d = c .|. (c `unsafeShiftR` 4)
++        e = d .|. (d `unsafeShiftR` 8)
++        f = e .|. (e `unsafeShiftR` 16)
++        g = f .|. (f `unsafeShiftR` 32)  -- in case we're on a 64-bit host
+         !h = g + 1
+     in h
+-
+--- | This is a workaround for poor optimisation in GHC 6.8.2.  It
+--- fails to notice constant-width shifts, and adds a test and branch
+--- to every shift.  This imposes about a 10% performance hit.
+-class FastShift a where
+-    shiftL :: a -> Int -> a
+-    shiftR :: a -> Int -> a
+-
+-instance FastShift Word32 where
+-    {-# INLINE shiftL #-}
+-    shiftL (W32# x#) (I# i#) = W32# (x# `uncheckedShiftL#` i#)
+-
+-    {-# INLINE shiftR #-}
+-    shiftR (W32# x#) (I# i#) = W32# (x# `uncheckedShiftRL#` i#)
+-
+-instance FastShift Word64 where
+-    {-# INLINE shiftL #-}
+-    shiftL (W64# x#) (I# i#) = W64# (x# `uncheckedShiftL64#` i#)
+-
+-    {-# INLINE shiftR #-}
+-    shiftR (W64# x#) (I# i#) = W64# (x# `uncheckedShiftRL64#` i#)
+-
+-instance FastShift Int where
+-    {-# INLINE shiftL #-}
+-    shiftL (I# x#) (I# i#) = I# (x# `iShiftL#` i#)
+-
+-    {-# INLINE shiftR #-}
+-    shiftR (I# x#) (I# i#) = I# (x# `iShiftRA#` i#)
+-
+-instance FastShift Integer where
+-    {-# INLINE shiftL #-}
+-    shiftL = Bits.shiftL
+-
+-    {-# INLINE shiftR #-}
+-    shiftR = Bits.shiftR
+--
+2.35.1
diff --git a/srcpkgs/git-annex/template b/srcpkgs/git-annex/template
index 91d714a327ac..41117a4aca5f 100644
--- a/srcpkgs/git-annex/template
+++ b/srcpkgs/git-annex/template
@@ -1,6 +1,8 @@
 # Template file for 'git-annex'
 pkgname=git-annex
-version=10.20221103
+version=10.20221212
+_bloomfilter_version=2.0.1.0
+create_wrksrc=yes
 revision=1
 build_style=haskell-stack
 makedepends="curl file-devel gnupg gnutls-devel gsasl-devel libxml2-devel
@@ -12,8 +14,10 @@ maintainer="Evan Deaubl <evan@deaubl.name>"
 license="AGPL-3.0-or-later, MIT, BSD-2-Clause, GPL-3.0-or-later, custom:Expat, custom:MIT-twitter, GPL-2.0-only, custom:icon-license"
 homepage="https://git-annex.branchable.com"
 changelog="https://git.joeyh.name/index.cgi/git-annex.git/plain/CHANGELOG"
-distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz"
-checksum=f549c31264d6da3bb544755795e7fc29882ebec45014905bc2ea0ade28398f3b
+distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz
+ https://hackage.haskell.org/package/bloomfilter-${_bloomfilter_version}/bloomfilter-${_bloomfilter_version}.tar.gz"
+checksum="ef67b4b93728d86050d6e6ec862e950cd6f9db488aea9c840092f024b8a0d629
+ 6c5e0d357d5d39efe97ae2776e8fb533fa50c1c05397c7b85020b0f098ad790f"
 nopie_files="/usr/bin/git-annex"
 nocross=yes
 
@@ -26,7 +30,7 @@ post_install() {
 	ln -sf git-annex ${DESTDIR}/usr/bin/git-remote-tor-annex
 
 	vmkdir usr/share/man/man1
-	vcopy man/*.1 usr/share/man/man1
+	vcopy ${pkgname}-${version}/man/*.1 usr/share/man/man1
 
-	vlicense doc/license/AGPL
+	vlicense ${pkgname}-${version}/doc/license/AGPL
 }

From b284b63085b6a9be5a5194af268d3ff997ad2b92 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Fri, 30 Dec 2022 10:38:58 +0100
Subject: [PATCH 20/22] fixup! New package: greenclip-4.2

---
 srcpkgs/greenclip/files/stack.yaml | 2 --
 1 file changed, 2 deletions(-)

diff --git a/srcpkgs/greenclip/files/stack.yaml b/srcpkgs/greenclip/files/stack.yaml
index 86f4b6fa7ed2..94808b687ddd 100644
--- a/srcpkgs/greenclip/files/stack.yaml
+++ b/srcpkgs/greenclip/files/stack.yaml
@@ -8,5 +8,3 @@ extra-deps:
 - 'protolude-0.3.2'
 - 'tomland-1.3.3.2'
 - 'validation-selective-0.1.0.2'
-
-allow-newer: true

From 1bcb1af826088deb143fc5614fc02e01c4855530 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Fri, 30 Dec 2022 11:05:24 +0100
Subject: [PATCH 21/22] fixup! git-annex: update to 10.20221212

---
 srcpkgs/git-annex/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/git-annex/template b/srcpkgs/git-annex/template
index 41117a4aca5f..1ec6ddd881db 100644
--- a/srcpkgs/git-annex/template
+++ b/srcpkgs/git-annex/template
@@ -1,9 +1,9 @@
 # Template file for 'git-annex'
 pkgname=git-annex
 version=10.20221212
+revision=1
 _bloomfilter_version=2.0.1.0
 create_wrksrc=yes
-revision=1
 build_style=haskell-stack
 makedepends="curl file-devel gnupg gnutls-devel gsasl-devel libxml2-devel
  lsof rsync git ncurses-devel bup borg nocache git-remote-gcrypt"

From c519fc8ebf4af6a3cbb2902bc2b10a637f3efa68 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Fri, 30 Dec 2022 11:09:27 +0100
Subject: [PATCH 22/22] fixup! New package: ghcup-0.21

---
 srcpkgs/ghcup/template | 1 -
 1 file changed, 1 deletion(-)

diff --git a/srcpkgs/ghcup/template b/srcpkgs/ghcup/template
index de9be01dc9f0..9b3d0c74773d 100644
--- a/srcpkgs/ghcup/template
+++ b/srcpkgs/ghcup/template
@@ -2,7 +2,6 @@
 pkgname=ghcup
 version=0.21
 revision=1
-wrksrc="ghcup-hs-v$version"
 hostmakedepends='tar git cabal-install pkg-config'
 makedepends='zlib-devel ncurses-libtinfo-devel libarchive-devel'
 depends='zlib ncurses-libtinfo-libs libarchive gcc gmp make perl'

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PR PATCH] [Updated] [WIP] [ci skip] GHC 9.2.5
  2022-12-27  9:58 [PR PATCH] [WIP] [ci skip] GHC 9.2.5 slotThe
                   ` (8 preceding siblings ...)
  2022-12-31 13:24 ` slotThe
@ 2023-01-02  7:18 ` slotThe
  2023-01-02  7:19 ` slotThe
                   ` (2 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: slotThe @ 2023-01-02  7:18 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1290 bytes --]

There is an updated pull request by slotThe against master on the void-packages repository

https://github.com/slotThe/void-packages ghc-9.2.5
https://github.com/void-linux/void-packages/pull/41316

[WIP] [ci skip] GHC 9.2.5
Took much longer than anticipated, since I wanted to wait for stack 2.9.3 first.  Here's to hoping that opening a PR will motivate me to work more rapidly :)

### Core packages to bump

- [x] ghc
- [ ] ghc-bin
    - [x] x86_64 (hash)
    - [x] i686 (hash)
    - [ ] x86_64-musl
    ~~Cc. @q66~~
    - [ ] ppc64le
    - [ ] ppc64le-musl
    - [ ] ppc64
    Cc. @ftrvxmtrx
    - [ ] aarch64
    - [ ] aarch64-musl
- [x] cabal-install
- [x] stack

#### Rebuild literally every single haskell package we have and see if anything's broken

- [x] git-mediate
- [x] kmonad
- [x] cgrep
- [x] debug-me
- [x] hlint
- [x] hoogle
- [x] darcs
- [x] shellcheck
- [x] git-annex
- [x] hledger
- [x] pandoc
- [x] xmobar
- [ ] haskell-language-server
- [x] glirc

### Other things to do

- [x] incorporate https://github.com/void-linux/void-packages/pull/27832 @astralchan
- [x] incorporate https://github.com/void-linux/void-packages/pull/35624 @kwshi

A patch file from https://github.com/void-linux/void-packages/pull/41316.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-ghc-9.2.5-41316.patch --]
[-- Type: text/x-diff, Size: 97056 bytes --]

From 72eb2785d19f85f6719819475c9ae6076859e9e6 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Thu, 17 Nov 2022 12:47:46 +0100
Subject: [PATCH 01/24] ghc: update to 9.2.5

+ Adjust ppc64-be-elfv2.patch
  * The libraries/ghci/GHCi/InfoTable.hsc bit seems to have been
    merged, hence delete it.
  * Adjust for changes in fptools and configure.
  * Delete now out-of-date TOC.
---
 srcpkgs/ghc/patches/ppc64-be-elfv2.patch | 105 +++++------------------
 srcpkgs/ghc/template                     |   6 +-
 2 files changed, 23 insertions(+), 88 deletions(-)

diff --git a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
index df1a0bfe15ba..5fa356be700e 100644
--- a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
+++ b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
@@ -3,100 +3,36 @@ From: q66 <daniel@octaforge.org>
 Date: Thu, 28 Apr 2022 00:48:04 +0200
 Subject: [PATCH] fix up runtime for ppc64 BE ELFv2 + ensure it's used
 
----
- configure                         |  2 +-
- libraries/ghci/GHCi/InfoTable.hsc | 36 ++++++++++++-------------------
- m4/fptools.m4                     |  2 +-
- rts/AdjustorAsm.S                 |  2 +-
- rts/StgCRun.c                     |  4 ++--
- rts/StgCRunAsm.S                  |  2 +-
- rts/adjustor/NativeIA64.c         |  2 +-
- rts/adjustor/NativePowerPC.c      |  2 +-
- 8 files changed, 22 insertions(+), 30 deletions(-)
-
-diff --git a/configure b/configure
-index 8310e6f..eac1124 100755
 --- a/configure
 +++ b/configure
-@@ -10508,7 +10508,7 @@ printf "%s\n" "no" >&6; }
+@@ -10871,7 +10871,7 @@
              test -z "$2" || eval "$2=ArchPPC"
              ;;
          powerpc64)
--            test -z "$2" || eval "$2=\"ArchPPC_64 {ppc_64ABI = ELF_V1}\""
-+            test -z "$2" || eval "$2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
+-            test -z "$2" || eval "$2=\"ArchPPC_64 ELF_V1\""
++            test -z "$2" || eval "$2=\"ArchPPC_64 ELF_V2\""
              ;;
          powerpc64le)
-             test -z "$2" || eval "$2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
-diff --git a/libraries/ghci/GHCi/InfoTable.hsc b/libraries/ghci/GHCi/InfoTable.hsc
-index ad4eb4d..e4f1c0c 100644
---- a/libraries/ghci/GHCi/InfoTable.hsc
-+++ b/libraries/ghci/GHCi/InfoTable.hsc
-@@ -231,30 +231,22 @@ mkJumpToAddr' platform a = case platform of
-                 , fromIntegral w64
-                 , fromIntegral (w64 `shiftR` 32) ]
-     ArchPPC64 ->
--        -- We use the compiler's register r12 to read the function
--        -- descriptor and the linker's register r11 as a temporary
--        -- register to hold the function entry point.
--        -- In the medium code model the function descriptor
--        -- is located in the first two gigabytes, i.e. the address
--        -- of the function pointer is a non-negative 32 bit number.
--        -- 0x0EADBEEF stands for the address of the function pointer:
--        --    0:   3d 80 0e ad     lis     r12,0x0EAD
--        --    4:   61 8c be ef     ori     r12,r12,0xBEEF
--        --    8:   e9 6c 00 00     ld      r11,0(r12)
--        --    c:   e8 4c 00 08     ld      r2,8(r12)
--        --   10:   7d 69 03 a6     mtctr   r11
--        --   14:   e9 6c 00 10     ld      r11,16(r12)
--        --   18:   4e 80 04 20     bctr
--       let  w32 = fromIntegral (funPtrToInt a)
-+        -- The ABI requires r12 to point to the function's entry point.
-+        -- We use the medium code model where code resides in the first
-+        -- two gigabytes, so loading a non-negative32 bit address
-+        -- with lis followed by ori is fine.
-+        -- 0x0EADBEEF stands for the address:
-+        -- 3D800EAD lis r12,0x0EAD
-+        -- 618CBEEF ori r12,r12,0xBEEF
-+        -- 7D8903A6 mtctr r12
-+        -- 4E800420 bctr
-+
-+        let w32 = fromIntegral (funPtrToInt a)
-             hi16 x = (x `shiftR` 16) .&. 0xFFFF
-             lo16 x = x .&. 0xFFFF
--       in Right [ 0x3D800000 .|. hi16 w32,
--                  0x618C0000 .|. lo16 w32,
--                  0xE96C0000,
--                  0xE84C0008,
--                  0x7D6903A6,
--                  0xE96C0010,
--                  0x4E800420]
-+        in Right [ 0x3D800000 .|. hi16 w32,
-+                   0x618C0000 .|. lo16 w32,
-+                   0x7D8903A6, 0x4E800420 ]
- 
-     ArchPPC64LE ->
-         -- The ABI requires r12 to point to the function's entry point.
-diff --git a/m4/fptools.m4 b/m4/fptools.m4
-index 8c6c9b7..eb25c37 100644
---- a/m4/fptools.m4
-+++ b/m4/fptools.m4
-@@ -201,7 +201,7 @@ AC_DEFUN([FPTOOLS_SET_HASKELL_PLATFORM_VARS],
+             test -z "$2" || eval "$2=\"ArchPPC_64 ELF_V2\""
+--- a/m4/fptools_set_haskell_platform_vars.m4
++++ b/m4/fptools_set_haskell_platform_vars.m4
+@@ -15,7 +15,7 @@
              test -z "[$]2" || eval "[$]2=ArchPPC"
              ;;
          powerpc64)
--            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V1}\""
-+            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
+-            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 ELF_V1\""
++            test -z "[$]2" || eval "[$]2=\"ArchPPC_64 ELF_V2\""
              ;;
          powerpc64le)
-             test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
+             test -z "[$]2" || eval "[$]2=\"ArchPPC_64 ELF_V2\""
 diff --git a/rts/AdjustorAsm.S b/rts/AdjustorAsm.S
 index 2795b83..63cfe91 100644
 --- a/rts/AdjustorAsm.S
 +++ b/rts/AdjustorAsm.S
 @@ -2,7 +2,7 @@
- 
+
  /* ******************************** PowerPC ******************************** */
- 
+
 -#if defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
 +#if defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
  #if !(defined(powerpc_HOST_ARCH) && defined(linux_HOST_OS))
@@ -109,21 +45,21 @@ index f43227a..927d44a 100644
 @@ -724,7 +724,7 @@ StgRunIsImplementedInAssembler(void)
     Everything is in assembler, so we don't have to deal with GCC...
     -------------------------------------------------------------------------- */
- 
+
 -#if defined(powerpc64_HOST_ARCH)
 +#if defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2)
  /* 64-bit PowerPC ELF ABI 1.9
   *
   * Stack frame organization (see Figure 3-17, ELF ABI 1.9, p 14)
 @@ -792,7 +792,7 @@ StgRunIsImplementedInAssembler(void)
- 
+
  #endif
- 
+
 -#if defined(powerpc64le_HOST_ARCH)
 +#if defined(powerpc64le_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF == 2))
  /* -----------------------------------------------------------------------------
     PowerPC 64 little endian architecture
- 
+
 diff --git a/rts/StgCRunAsm.S b/rts/StgCRunAsm.S
 index 60f1bf9..c6794d7 100644
 --- a/rts/StgCRunAsm.S
@@ -131,7 +67,7 @@ index 60f1bf9..c6794d7 100644
 @@ -5,7 +5,7 @@
   * then functions StgRun/StgReturn are implemented in file StgCRun.c */
  #if !defined(USE_MINIINTERPRETER)
- 
+
 -#if defined(powerpc64le_HOST_ARCH)
 +#if defined(powerpc64le_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF == 2))
  # if defined(linux_HOST_OS)
@@ -157,12 +93,11 @@ index 2e5d605..caef5d3 100644
 @@ -29,7 +29,7 @@ __asm__("obscure_ccall_ret_code:\n\t"
  extern void obscure_ccall_ret_code(void);
  #endif /* defined(linux_HOST_OS) */
- 
+
 -#if defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
 +#if defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
  #if !(defined(powerpc_HOST_ARCH) && defined(linux_HOST_OS))
- 
+
  /* !!! !!! WARNING: !!! !!!
--- 
+--
 2.35.1
-
diff --git a/srcpkgs/ghc/template b/srcpkgs/ghc/template
index bf76202f4098..c4808339cd29 100644
--- a/srcpkgs/ghc/template
+++ b/srcpkgs/ghc/template
@@ -1,7 +1,7 @@
 # Template file for 'ghc'
 pkgname=ghc
 # Keep this synchronized with http://www.stackage.org/lts
-version=9.0.2
+version=9.2.5
 revision=1
 build_style=gnu-configure
 hostmakedepends="automake docbook-xsl ghc-bin libxslt libnuma-devel
@@ -9,11 +9,11 @@ hostmakedepends="automake docbook-xsl ghc-bin libxslt libnuma-devel
 makedepends="libnuma-devel"
 depends="perl gcc libffi-devel gmp-devel libnuma-devel"
 short_desc="Glorious Haskell Compiler"
-maintainer="slotThe <soliditsallgood@mailbox.org>"
+maintainer="Tony Zorman <soliditsallgood@mailbox.org>"
 license="BSD-3-Clause"
 homepage="http://www.haskell.org/ghc/"
 distfiles="http://www.haskell.org/ghc/dist/${version%[!0-9]}/${pkgname}-${version%[!0-9]}-src.tar.xz"
-checksum=140e42b96346322d1a39eb17602bcdc76e292028ad4a69286b230bab188a9197
+checksum=0606797d1b38e2d88ee2243f38ec6b9a1aa93e9b578e95f0de9a9c0a4144021c
 nocross=yes # this is conditionally unset for cross bindist
 nodebug=yes # work around assembler error "Fatal error: duplicate .debug_line sections"
 _bindir="/usr/lib/${pkgname}-${version}/bin"

From 3d349a8a1192747ff14dd89e54fc0f7f19a991f5 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Fri, 18 Nov 2022 14:56:06 +0100
Subject: [PATCH 02/24] cabal-install: update to 3.8.1.0.

---
 srcpkgs/cabal-install/files/linux-9.0.2.json |  1 -
 srcpkgs/cabal-install/files/linux-9.2.5.json |  1 +
 srcpkgs/cabal-install/template               | 12 ++++++------
 3 files changed, 7 insertions(+), 7 deletions(-)
 delete mode 100644 srcpkgs/cabal-install/files/linux-9.0.2.json
 create mode 100644 srcpkgs/cabal-install/files/linux-9.2.5.json

diff --git a/srcpkgs/cabal-install/files/linux-9.0.2.json b/srcpkgs/cabal-install/files/linux-9.0.2.json
deleted file mode 100644
index f3cb6b4aeeb5..000000000000
--- a/srcpkgs/cabal-install/files/linux-9.0.2.json
+++ /dev/null
@@ -1 +0,0 @@
-{"builtin":[{"package":"rts","version":"1.0.2"},{"package":"ghc-prim","version":"0.7.0"},{"package":"ghc-bignum","version":"1.1"},{"package":"base","version":"4.15.1.0"},{"package":"array","version":"0.5.4.0"},{"package":"deepseq","version":"1.4.5.0"},{"package":"bytestring","version":"0.10.12.1"},{"package":"containers","version":"0.6.4.1"},{"package":"binary","version":"0.8.8.0"},{"package":"filepath","version":"1.4.2.1"},{"package":"time","version":"1.9.3"},{"package":"unix","version":"2.7.2.2"},{"package":"directory","version":"1.3.6.2"},{"package":"transformers","version":"0.5.6.2"},{"package":"mtl","version":"2.2.2"},{"package":"ghc-boot-th","version":"9.0.2"},{"package":"pretty","version":"1.1.3.6"},{"package":"template-haskell","version":"2.17.0.0"},{"package":"text","version":"1.2.5.0"},{"package":"parsec","version":"3.1.14.0"},{"package":"process","version":"1.6.13.2"},{"package":"stm","version":"2.5.0.0"}],"dependencies":[{"cabal_sha256":null,"flags":["-bundled-binary-generic"],"package":"Cabal","revision":null,"source":"local","src_sha256":null,"version":"3.6.3.0"},{"cabal_sha256":"714a55fd28d3e2533bd5b49e74f604ef8e5d7b06f249c8816f6c54aed431dcf1","flags":["-optimised-mixer"],"package":"splitmix","revision":0,"source":"hackage","src_sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","version":"0.1.0.4"},{"cabal_sha256":"8bee24dc0c985a90ee78d94c61f8aed21c49633686f0f1c14c5078d818ee43a2","flags":[],"package":"random","revision":0,"source":"hackage","src_sha256":"265c768fc5f2ca53cde6a87e706b4448cad474c3deece933c103f24453661457","version":"1.2.1"},{"cabal_sha256":"3a2beeafb220f9de706568a7e4a5b3c762cc4c9f25c94d7ef795b8c2d6a691d7","flags":["+integer-gmp","-random-initial-seed"],"package":"hashable","revision":1,"source":"hackage","src_sha256":"baaad82cd4271b197016bdbe76f22d5c3d3913fe38534cec7d817db9bae19886","version":"1.3.5.0"},{"cabal_sha256":"b83dec34a53520de84c6dd3dc7aae45d22409b46eb471c478b98108215a370f0","flags":["-bench"],"package":"async","revision":1,"source":"hackage","src_sha256":"484df85be0e76c4fed9376451e48e1d0c6e97952ce79735b72d54297e7e0a725","version":"2.2.4"},{"cabal_sha256":"037d70bb091c49f68726dde920f6a003b646835a86cdcb5b5ad58ad9af3207d9","flags":[],"package":"Cabal-syntax","revision":0,"source":"hackage","src_sha256":"ca25e5fc601397565fa857f1aa477740fac7f43d659e77c4d9b1485dca239251","version":"3.6.0.0"},{"cabal_sha256":"d8699f46b485f105eea9c7158f3d432ca578e6bbe5d68751184e9899a41d430d","flags":["-old-bytestring","-old-time"],"package":"tar","revision":4,"source":"hackage","src_sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","version":"0.5.1.1"},{"cabal_sha256":"e3d78b13db9512aeb106e44a334ab42b7aa48d26c097299084084cb8be5c5568","flags":["-devel"],"package":"network","revision":0,"source":"hackage","src_sha256":"7f7620fef1a1af3d3d6747f510e73223a5c600e7d7fd9ace073d1222bdc63d85","version":"3.1.2.7"},{"cabal_sha256":"a16dd922947a6877defe52c4c38d1ab48ed3f85a826930f5d1a568741d619993","flags":[],"package":"th-compat","revision":0,"source":"hackage","src_sha256":"6b5059caf6714f47da92953badf2f556119877e09708c14e206b3ae98b8681c6","version":"0.1.3"},{"cabal_sha256":"a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d","flags":[],"package":"network-uri","revision":0,"source":"hackage","src_sha256":"57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584","version":"2.6.4.1"},{"cabal_sha256":"6042643c15a0b43e522a6693f1e322f05000d519543a84149cb80aeffee34f71","flags":["-conduit10","-mtl1","+network-uri","-warn-as-error","-warp-tests"],"package":"HTTP","revision":1,"source":"hackage","src_sha256":"d6091c037871ac3d08d021c906206174567499d5a26a6cb804cf530cd590fe2d","version":"4000.3.16"},{"cabal_sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","flags":[],"package":"base16-bytestring","revision":0,"source":"hackage","src_sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","version":"1.0.2.0"},{"cabal_sha256":"50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8","flags":[],"package":"base64-bytestring","revision":0,"source":"hackage","src_sha256":"fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9","version":"1.2.1.0"},{"cabal_sha256":"188d0b5a0491e8b686b32d9b144c9287760ba333d2509bf3f17e3d846fbc2332","flags":["-exe","+use-cbits"],"package":"cryptohash-sha256","revision":0,"source":"hackage","src_sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","version":"0.11.102.1"},{"cabal_sha256":"ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42","flags":["-example"],"package":"echo","revision":0,"source":"hackage","src_sha256":"c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43","version":"0.1.4"},{"cabal_sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","flags":[],"package":"edit-distance","revision":1,"source":"hackage","src_sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","version":"0.2.2.1"},{"cabal_sha256":"24ac7b5f3d9fa3c2f70262b329f2a75f24e7fd829f88c189b388efa1bcd67eb2","flags":["+no-donna","+test-doctests","+test-hlint","+test-properties"],"package":"ed25519","revision":5,"source":"hackage","src_sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","version":"0.0.5.0"},{"cabal_sha256":"c084c043a40632d3cafcac50fb5eeff84d91edb070a54baa94945f1c976f97c0","flags":["+ofd-locking"],"package":"lukko","revision":2,"source":"hackage","src_sha256":"a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f","version":"0.1.1.3"},{"cabal_sha256":"262a93dbf370be59f4ee57f3b1a51b338bc2c309797daa37c14f2262ae61dae4","flags":["-bundled-c-zlib","-non-blocking-ffi","-pkg-config"],"package":"zlib","revision":1,"source":"hackage","src_sha256":"807f6bddf9cb3c517ce5757d991dde3c7e319953a22c86ee03d74534bd5abc88","version":"0.6.2.3"},{"cabal_sha256":"eb34c3e2fa39f9819293045c03e56148a7125573c1de265cdfe5d967f1d71c6e","flags":["+base48","-cabal-syntax","+lukko","-mtl21","-old-directory","+use-network-uri"],"package":"hackage-security","revision":1,"source":"hackage","src_sha256":"bf22cd16dde7d6b7130463f4d7324b64a2964d9ef3f523df97d7cb98544d64a8","version":"0.6.2.1"},{"cabal_sha256":"2561adac8ce373910948066debe090a22b336b129ba5af18c0332524d16e72ce","flags":[],"package":"regex-base","revision":0,"source":"hackage","src_sha256":"7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1","version":"0.94.0.2"},{"cabal_sha256":"b6421e5356766b0c0a78b6094ae2e3a6259b42c147b717283c03c1cb09163dca","flags":["-_regex-posix-clib"],"package":"regex-posix","revision":0,"source":"hackage","src_sha256":"c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c","version":"0.96.0.1"},{"cabal_sha256":"2088eb9368b920f80bbe4e3b03c3b8484090208f5c3b31645bd67a9ef7d26db4","flags":[],"package":"resolv","revision":4,"source":"hackage","src_sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","version":"0.1.2.0"},{"cabal_sha256":null,"flags":["-debug-conflict-sets","-debug-expensive-assertions","-debug-tracetree","+lukko","+native-dns"],"package":"cabal-install","revision":null,"source":"local","src_sha256":null,"version":"3.6.2.0"}]}
\ No newline at end of file
diff --git a/srcpkgs/cabal-install/files/linux-9.2.5.json b/srcpkgs/cabal-install/files/linux-9.2.5.json
new file mode 100644
index 000000000000..13fe257cbb30
--- /dev/null
+++ b/srcpkgs/cabal-install/files/linux-9.2.5.json
@@ -0,0 +1 @@
+{"builtin":[{"package":"rts","version":"1.0.2"},{"package":"ghc-prim","version":"0.8.0"},{"package":"ghc-bignum","version":"1.2"},{"package":"base","version":"4.16.4.0"},{"package":"array","version":"0.5.4.0"},{"package":"deepseq","version":"1.4.6.1"},{"package":"ghc-boot-th","version":"9.2.5"},{"package":"pretty","version":"1.1.3.6"},{"package":"template-haskell","version":"2.18.0.0"},{"package":"bytestring","version":"0.11.3.1"},{"package":"containers","version":"0.6.5.1"},{"package":"binary","version":"0.8.9.0"},{"package":"filepath","version":"1.4.2.2"},{"package":"time","version":"1.11.1.1"},{"package":"unix","version":"2.7.2.2"},{"package":"directory","version":"1.3.6.2"},{"package":"transformers","version":"0.5.6.2"},{"package":"mtl","version":"2.2.2"},{"package":"text","version":"1.2.5.0"},{"package":"parsec","version":"3.1.15.0"},{"package":"process","version":"1.6.16.0"},{"package":"stm","version":"2.5.0.2"},{"package":"exceptions","version":"0.10.4"}],"dependencies":[{"cabal_sha256":null,"flags":[],"package":"Cabal-syntax","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"},{"cabal_sha256":null,"flags":[],"package":"Cabal","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"},{"cabal_sha256":"804e2574bc7e32d08cbab91e47ee6287b4df7d50851d73f9e778f94a9a7814c7","flags":["-optimised-mixer"],"package":"splitmix","revision":1,"source":"hackage","src_sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","version":"0.1.0.4"},{"cabal_sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","flags":[],"package":"random","revision":0,"source":"hackage","src_sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","version":"1.2.1.1"},{"cabal_sha256":"50b2f002c68fe67730ee7a3cd8607486197dd99b084255005ad51ecd6970a41b","flags":["+containers","+integer-gmp","-random-initial-seed"],"package":"hashable","revision":0,"source":"hackage","src_sha256":"e1b305c280e66ad827edeaedd6933b9fc4174f626882877eab2a08344e665e87","version":"1.4.1.0"},{"cabal_sha256":"2b9409023536823233ce3134558565d01b3382e651fa54ac8cb8a99967e023c9","flags":["-bench"],"package":"async","revision":2,"source":"hackage","src_sha256":"484df85be0e76c4fed9376451e48e1d0c6e97952ce79735b72d54297e7e0a725","version":"2.2.4"},{"cabal_sha256":"bc14969ea4adfec6eee20264decf4a07c4002b38b2aa802d58d86b1a2cf7b895","flags":["-old-bytestring","-old-time"],"package":"tar","revision":5,"source":"hackage","src_sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","version":"0.5.1.1"},{"cabal_sha256":"e3d78b13db9512aeb106e44a334ab42b7aa48d26c097299084084cb8be5c5568","flags":["-devel"],"package":"network","revision":0,"source":"hackage","src_sha256":"7f7620fef1a1af3d3d6747f510e73223a5c600e7d7fd9ace073d1222bdc63d85","version":"3.1.2.7"},{"cabal_sha256":"6ca77c4e80b4e4109e30549c269631a9cc295c8fc2431ce4123972a5f80f7bfc","flags":[],"package":"th-compat","revision":0,"source":"hackage","src_sha256":"d8f97ac14ab47b6b8a7b0fdb4ff95426322ec56badd01652ac15da4a44d4bab8","version":"0.1.4"},{"cabal_sha256":"a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d","flags":[],"package":"network-uri","revision":0,"source":"hackage","src_sha256":"57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584","version":"2.6.4.1"},{"cabal_sha256":"b878d575c470bd1f72d37af6654d924ab2b9489d88de8a71bd74d9d5d726c013","flags":["-conduit10","+network-uri","-warn-as-error","-warp-tests"],"package":"HTTP","revision":1,"source":"hackage","src_sha256":"df31d8efec775124dab856d7177ddcba31be9f9e0836ebdab03d94392f2dd453","version":"4000.4.1"},{"cabal_sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","flags":[],"package":"base16-bytestring","revision":0,"source":"hackage","src_sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","version":"1.0.2.0"},{"cabal_sha256":"50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8","flags":[],"package":"base64-bytestring","revision":0,"source":"hackage","src_sha256":"fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9","version":"1.2.1.0"},{"cabal_sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","flags":[],"package":"edit-distance","revision":1,"source":"hackage","src_sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","version":"0.2.2.1"},{"cabal_sha256":null,"flags":["-debug-conflict-sets","-debug-expensive-assertions","-debug-tracetree"],"package":"cabal-install-solver","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"},{"cabal_sha256":"facd0c04925ef925ec05243471fd16055229fdf51f64db1a1049de0cc6c6dfc3","flags":["-exe","+use-cbits"],"package":"cryptohash-sha256","revision":1,"source":"hackage","src_sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","version":"0.11.102.1"},{"cabal_sha256":"ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42","flags":["-example"],"package":"echo","revision":0,"source":"hackage","src_sha256":"c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43","version":"0.1.4"},{"cabal_sha256":"885c9e2410e5d91a08b199897df0867fecedf818216d7329a2d43a512833dd63","flags":["+no-donna","+test-doctests","+test-hlint","+test-properties"],"package":"ed25519","revision":6,"source":"hackage","src_sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","version":"0.0.5.0"},{"cabal_sha256":"efd4c08c4df1ac3f423858a834c0e3b5b4909febda66a901d12a8e1d57bddaa8","flags":["+ofd-locking"],"package":"lukko","revision":3,"source":"hackage","src_sha256":"a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f","version":"0.1.1.3"},{"cabal_sha256":"8214a9d37580f17f8b675109578a5dbe6853559eef156e34dc2233f1123ace33","flags":["-bundled-c-zlib","-non-blocking-ffi","-pkg-config"],"package":"zlib","revision":0,"source":"hackage","src_sha256":"9eaa989ad4534438b5beb51c1d3a4c8f6a088fdff0b259a5394fbf39aaee04da","version":"0.6.3.0"},{"cabal_sha256":"1a6cf81a4871559ef5bc47b230278b9ad4bf44f1e4dbf77bdc8e07f6e7b8d005","flags":["+base48","+cabal-syntax","+lukko","-mtl21","-old-directory","+use-network-uri"],"package":"hackage-security","revision":1,"source":"hackage","src_sha256":"a833a31610220506557e96fb6e3e8b05a2e1db8e7ebc06e91bbb699ddde0b276","version":"0.6.2.2"},{"cabal_sha256":"4ff4425c710cddf440dfbac6cd52310bb6b23e17902390ff71c9fc7eaafc4fcc","flags":[],"package":"regex-base","revision":1,"source":"hackage","src_sha256":"7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1","version":"0.94.0.2"},{"cabal_sha256":"9dbba4b65a3bb6975d9740814be5593c6b2d2d6a0b3febc8ec940edb9a9bbdf4","flags":["-_regex-posix-clib"],"package":"regex-posix","revision":1,"source":"hackage","src_sha256":"c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c","version":"0.96.0.1"},{"cabal_sha256":"61e2d98ff634b8b4b3db467772420c0f9c79c2da9ddf3d2daeb2af2417f2c535","flags":[],"package":"resolv","revision":5,"source":"hackage","src_sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","version":"0.1.2.0"},{"cabal_sha256":"6e9b1b233af80cc0aa17ea858d2641ba146fb11cbcc5970a52649e89d77282e2","flags":[],"package":"safe-exceptions","revision":0,"source":"hackage","src_sha256":"91ce28d8f8a6efd31788d4827ed5cdcb9a546ad4053a86c56f7947c66a30b5bf","version":"0.1.7.3"},{"cabal_sha256":null,"flags":["+lukko","+native-dns"],"package":"cabal-install","revision":null,"source":"local","src_sha256":null,"version":"3.8.1.0"}]}
\ No newline at end of file
diff --git a/srcpkgs/cabal-install/template b/srcpkgs/cabal-install/template
index b3ebc1bb15b9..9f9bd3afe8a2 100644
--- a/srcpkgs/cabal-install/template
+++ b/srcpkgs/cabal-install/template
@@ -1,7 +1,7 @@
 # Template file for 'cabal-install'
 pkgname=cabal-install
-version=3.6.3.0
-revision=2
+version=3.8.1.0
+revision=1
 hostmakedepends="ghc curl tar which"
 makedepends="gmp-devel libffi-devel zlib-devel python3"
 depends="ghc"
@@ -10,24 +10,24 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
 license="BSD-3-Clause"
 homepage="https://hackage.haskell.org/package/cabal-install"
 distfiles="https://github.com/haskell/cabal/archive/Cabal-v${version}.tar.gz"
-checksum=dea086acad6d9fe5fe22d838b95b4e988022e8519f38d41609119ea32bfb7466
+checksum=d4eff9c1fcc5212360afac8d97da83b3aff79365490a449e9c47d3988c14b6bc
 nopie_files="/usr/bin/cabal"
 nocross=yes
 
 post_extract() {
-	cp "${FILESDIR}/linux-9.0.2.json" bootstrap/
+	cp "${FILESDIR}/linux-9.2.5.json" bootstrap/
 }
 
 post_patch() {
 	case "${XBPS_TARGET_MACHINE}" in
 	i686*)
 		# https://github.com/haskell/cabal/issues/7313
-		vsed -i -e 's/+ofd-locking/-ofd-locking/' bootstrap/linux-9.0.2.json ;;
+		vsed -i -e 's/+ofd-locking/-ofd-locking/' bootstrap/linux-9.2.5.json ;;
 	esac
 }
 
 do_build() {
-	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-9.0.2.json
+	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-9.2.5.json
 }
 do_install() {
 	vbin _build/bin/cabal

From bfcde1a6bcb96b4aeb73a1b115d301425f323814 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Mon, 21 Nov 2022 18:38:18 +0100
Subject: [PATCH 03/24] stack: update to 2.9.3

+ Remove most outdated patches concerning version bounds and
  compatibility with GHC 9.0.2.
+ Adjust ppc patch.
+ New showStackVersion patch to build with GHC 9.2.5.
---
 srcpkgs/stack/patches/aeson.patch            |  46 ----
 srcpkgs/stack/patches/fsnotify.patch         |  16 --
 srcpkgs/stack/patches/ghc9.0.2.patch         | 212 -------------------
 srcpkgs/stack/patches/persistent.patch       |  46 ----
 srcpkgs/stack/patches/ppc.patch              |   3 +-
 srcpkgs/stack/patches/showStackVersion.patch |  10 +
 srcpkgs/stack/template                       |  10 +-
 7 files changed, 16 insertions(+), 327 deletions(-)
 delete mode 100644 srcpkgs/stack/patches/aeson.patch
 delete mode 100644 srcpkgs/stack/patches/fsnotify.patch
 delete mode 100644 srcpkgs/stack/patches/ghc9.0.2.patch
 delete mode 100644 srcpkgs/stack/patches/persistent.patch
 create mode 100644 srcpkgs/stack/patches/showStackVersion.patch

diff --git a/srcpkgs/stack/patches/aeson.patch b/srcpkgs/stack/patches/aeson.patch
deleted file mode 100644
index 68f267c30cc8..000000000000
--- a/srcpkgs/stack/patches/aeson.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-commit 09e233ed73aa3335642f97c080ef27e42047c527
-Author: q66 <daniel@octaforge.org>
-Date:   Fri Mar 11 04:37:15 2022 +0100
-
-    constrain aeson to prevent build failures
-
-diff --git a/stack.cabal b/stack.cabal
-index dba5bf0..0195f2c 100644
---- a/stack.cabal
-+++ b/stack.cabal
-@@ -231,7 +231,7 @@ library
- 
-     build-depends:
-         Cabal >=3.2.1.0,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
-@@ -357,7 +357,7 @@ executable stack
- 
-     build-depends:
-         Cabal >=3.2.1.0,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
-@@ -485,7 +485,7 @@ executable stack-integration-test
- 
-     build-depends:
-         Cabal >=3.2.1.0,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
-@@ -621,7 +621,7 @@ test-suite stack-test
-     build-depends:
-         Cabal >=3.2.1.0,
-         QuickCheck >=2.14.2,
--        aeson >=1.5.6.0,
-+        aeson >=1.5.6.0 && <1.6,
-         annotated-wl-pprint >=0.7.0,
-         ansi-terminal >=0.10.3,
-         array >=0.5.4.0,
diff --git a/srcpkgs/stack/patches/fsnotify.patch b/srcpkgs/stack/patches/fsnotify.patch
deleted file mode 100644
index f82fd8f73004..000000000000
--- a/srcpkgs/stack/patches/fsnotify.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-src/Stack/FileWatch.hs:29:49: error: Not in scope: ‘confUsePolling’
-   |
-29 | fileWatchPoll = fileWatchConf $ defaultConfig { confUsePolling = True }
-   |                                                 ^^^^^^^^^^^^^^
-
---- a/stack.cabal
-+++ b/stack.cabal
-@@ -256,7 +256,7 @@ library
-         file-embed >=0.0.14.0,
-         filelock >=0.1.1.5,
-         filepath >=1.4.2.1,
--        fsnotify >=0.3.0.1,
-+        fsnotify >=0.3.0.1 && <0.4.0.0,
-         generic-deriving >=1.13.1,
-         hackage-security >=0.6.0.1,
-         hashable >=1.3.0.0,
diff --git a/srcpkgs/stack/patches/ghc9.0.2.patch b/srcpkgs/stack/patches/ghc9.0.2.patch
deleted file mode 100644
index bdd77de58c6b..000000000000
--- a/srcpkgs/stack/patches/ghc9.0.2.patch
+++ /dev/null
@@ -1,212 +0,0 @@
-From cb7e56842a25f93142545fad21306a7c1750fbbf Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:26:22 -0700
-Subject: [PATCH 1/6] Use Cabal 3.4.0.0
-
----
- stack.yaml | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/stack.yaml b/stack.yaml
-index 005bd19f4..9472509be 100644
---- a/stack.yaml
-+++ b/stack.yaml
-@@ -20,6 +20,9 @@ flags:
- ghc-options:
-    "$locals": -fhide-source-paths
-
-+extra-deps:
-+- Cabal-3.4.0.0
-+
- drop-packages:
- # See https://github.com/commercialhaskell/stack/pull/4712
- - cabal-install
-
-From 11e11ab0edeba033b40a7fc62434be58dea82ce2 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:40:56 -0700
-Subject: [PATCH 2/6] Fix Flag => PackageFlag
-
----
- src/Stack/BuildPlan.hs | 2 +-
- src/Stack/Package.hs   | 8 ++++----
- 2 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/src/Stack/BuildPlan.hs b/src/Stack/BuildPlan.hs
-index 36f82236e..c5c80efc6 100644
---- a/src/Stack/BuildPlan.hs
-+++ b/src/Stack/BuildPlan.hs
-@@ -224,7 +224,7 @@ selectPackageBuildPlan platform compiler pool gpd =
-     flagCombinations :: NonEmpty [(FlagName, Bool)]
-     flagCombinations = mapM getOptions (genPackageFlags gpd)
-       where
--        getOptions :: C.Flag -> NonEmpty (FlagName, Bool)
-+        getOptions :: C.PackageFlag -> NonEmpty (FlagName, Bool)
-         getOptions f
-             | flagManual f = (fname, flagDefault f) :| []
-             | flagDefault f = (fname, True) :| [(fname, False)]
-diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs
-index 4db50d2a4..d9bca7af5 100644
---- a/src/Stack/Package.hs
-+++ b/src/Stack/Package.hs
-@@ -128,7 +128,7 @@ resolvePackage packageConfig gpkg =
-         (resolvePackageDescription packageConfig gpkg)
-
- packageFromPackageDescription :: PackageConfig
--                              -> [D.Flag]
-+                              -> [PackageFlag]
-                               -> PackageDescriptionPair
-                               -> Package
- packageFromPackageDescription packageConfig pkgFlags (PackageDescriptionPair pkgNoMod pkg) =
-@@ -935,9 +935,9 @@ resolvePackageDescription packageConfig (GenericPackageDescription desc defaultF
- -- | Make a map from a list of flag specifications.
- --
- -- What is @flagManual@ for?
--flagMap :: [Flag] -> Map FlagName Bool
-+flagMap :: [PackageFlag] -> Map FlagName Bool
- flagMap = M.fromList . map pair
--  where pair :: Flag -> (FlagName, Bool)
-+  where pair :: PackageFlag -> (FlagName, Bool)
-         pair = flagName &&& flagDefault
-
- data ResolveConditions = ResolveConditions
-@@ -986,7 +986,7 @@ resolveConditions rc addDeps (CondNode lib deps cs) = basic <> children
-                   case v of
-                     OS os -> os == rcOS rc
-                     Arch arch -> arch == rcArch rc
--                    Flag flag ->
-+                    PackageFlag flag ->
-                       fromMaybe False $ M.lookup flag (rcFlags rc)
-                       -- NOTE:  ^^^^^ This should never happen, as all flags
-                       -- which are used must be declared. Defaulting to
-
-From 8facd731ec3f2bbc15a083750740929167b33bb2 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:55:30 -0700
-Subject: [PATCH 3/6] Fix CabalSpecVersion
-
----
- src/Stack/Package.hs | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs
-index d9bca7af5..fca039140 100644
---- a/src/Stack/Package.hs
-+++ b/src/Stack/Package.hs
-@@ -32,6 +32,7 @@ import           Data.List (find, isPrefixOf, unzip)
- import qualified Data.Map.Strict as M
- import qualified Data.Set as S
- import qualified Data.Text as T
-+import           Distribution.CabalSpecVersion (CabalSpecVersion, cabalSpecMinimumLibraryVersion)
- import           Distribution.Compiler
- import           Distribution.ModuleName (ModuleName)
- import qualified Distribution.ModuleName as Cabal
-@@ -190,7 +191,7 @@ packageFromPackageDescription packageConfig pkgFlags (PackageDescriptionPair pkg
-           (library pkg)
-     , packageBuildType = buildType pkg
-     , packageSetupDeps = msetupDeps
--    , packageCabalSpec = either orLaterVersion id $ specVersionRaw pkg
-+    , packageCabalSpec = orLaterVersion $ mkVersion $ cabalSpecMinimumLibraryVersion $ specVersion pkg
-     }
-   where
-     extraLibNames = S.union subLibNames foreignLibNames
-@@ -696,7 +697,7 @@ packageDescModulesAndFiles pkg = do
-
- -- | Resolve globbing of files (e.g. data files) to absolute paths.
- resolveGlobFiles
--  :: Version -- ^ cabal file version
-+  :: CabalSpecVersion -- ^ cabal file version
-   -> [String]
-   -> RIO Ctx (Set (Path Abs File))
- resolveGlobFiles cabalFileVersion =
-
-From 004f14652409b7d0645215d354b2e599eb7f76bc Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 16:55:40 -0700
-Subject: [PATCH 4/6] Fix GenericPackageDescription
-
----
- src/Stack/Build.hs   | 2 +-
- src/Stack/Package.hs | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/Stack/Build.hs b/src/Stack/Build.hs
-index 23b9a9719..856903bed 100644
---- a/src/Stack/Build.hs
-+++ b/src/Stack/Build.hs
-@@ -358,7 +358,7 @@ checkComponentsBuildable lps =
- checkSubLibraryDependencies :: HasLogFunc env => [ProjectPackage] -> RIO env ()
- checkSubLibraryDependencies proj = do
-   forM_ proj $ \p -> do
--    C.GenericPackageDescription _ _ lib subLibs foreignLibs exes tests benches <- liftIO $ cpGPD . ppCommon $ p
-+    C.GenericPackageDescription _ _ _ lib subLibs foreignLibs exes tests benches <- liftIO $ cpGPD . ppCommon $ p
-
-     let dependencies = concatMap getDeps subLibs <>
-                        concatMap getDeps foreignLibs <>
-diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs
-index fca039140..39aad4d2f 100644
---- a/src/Stack/Package.hs
-+++ b/src/Stack/Package.hs
-@@ -863,7 +863,7 @@ data PackageDescriptionPair = PackageDescriptionPair
- resolvePackageDescription :: PackageConfig
-                           -> GenericPackageDescription
-                           -> PackageDescriptionPair
--resolvePackageDescription packageConfig (GenericPackageDescription desc defaultFlags mlib subLibs foreignLibs' exes tests benches) =
-+resolvePackageDescription packageConfig (GenericPackageDescription desc _ defaultFlags mlib subLibs foreignLibs' exes tests benches) =
-     PackageDescriptionPair
-       { pdpOrigBuildable = go False
-       , pdpModifiedBuildable = go True
-
-From 820797b566ef981936907f4d19658259d4a635a8 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 17:01:01 -0700
-Subject: [PATCH 5/6] Fix generatePackageVersionMacros
-
----
- src/Stack/Build/Execute.hs | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/Stack/Build/Execute.hs b/src/Stack/Build/Execute.hs
-index 1e381dd21..aedd7fee5 100644
---- a/src/Stack/Build/Execute.hs
-+++ b/src/Stack/Build/Execute.hs
-@@ -1214,7 +1214,7 @@ withSingleContext ActionContext {..} ee@ExecuteEnv {..} task@Task {..} allDeps m
-                             let macroDeps = mapMaybe snd matchedDeps
-                                 cppMacrosFile = setupDir </> relFileSetupMacrosH
-                                 cppArgs = ["-optP-include", "-optP" ++ toFilePath cppMacrosFile]
--                            writeBinaryFileAtomic cppMacrosFile (encodeUtf8Builder (T.pack (C.generatePackageVersionMacros macroDeps)))
-+                            writeBinaryFileAtomic cppMacrosFile (encodeUtf8Builder (T.pack (C.generatePackageVersionMacros (packageVersion package) macroDeps)))
-                             return (packageDBArgs ++ depsArgs ++ cppArgs)
-
-                         -- This branch is usually taken for builds, and
-
-From 336ab515e30f03c274f89ebe1cbc6aa1e597c2a4 Mon Sep 17 00:00:00 2001
-From: Brandon Chinn <brandon@leapyear.io>
-Date: Fri, 4 Jun 2021 17:04:16 -0700
-Subject: [PATCH 6/6] Fix ModuleReexport
-
----
- src/Stack/Script.hs | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/Stack/Script.hs b/src/Stack/Script.hs
-index 6bb67c049..9ebd2173d 100644
---- a/src/Stack/Script.hs
-+++ b/src/Stack/Script.hs
-@@ -18,6 +18,7 @@ import           Distribution.Compiler      (CompilerFlavor (..))
- import           Distribution.ModuleName    (ModuleName)
- import qualified Distribution.PackageDescription as PD
- import qualified Distribution.Types.CondTree as C
-+import qualified Distribution.Types.ModuleReexport as ModuleReexport
- import           Distribution.Types.PackageName (mkPackageName)
- import           Distribution.Types.VersionRange (withinRange)
- import           Distribution.System        (Platform (..))
-@@ -280,7 +281,7 @@ allExposedModules gpd = do
-       mlibrary = snd . C.simplifyCondTree checkCond <$> PD.condLibrary gpd
-   pure $ case mlibrary  of
-     Just lib -> PD.exposedModules lib ++
--                map PD.moduleReexportName (PD.reexportedModules lib)
-+                map ModuleReexport.moduleReexportName (PD.reexportedModules lib)
-     Nothing  -> mempty
-
- -- | The Stackage project introduced the concept of hidden packages,
diff --git a/srcpkgs/stack/patches/persistent.patch b/srcpkgs/stack/patches/persistent.patch
deleted file mode 100644
index cf462d7b80c2..000000000000
--- a/srcpkgs/stack/patches/persistent.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-commit 188d7ece06ee06ed6ccaf0df0c46285bd43898f4
-Author: q66 <daniel@octaforge.org>
-Date:   Thu Apr 28 05:02:09 2022 +0200
-
-    constrain persistent to fix build
-
-diff --git a/stack.cabal b/stack.cabal
-index dba5bf0..e221321 100644
---- a/stack.cabal
-+++ b/stack.cabal
-@@ -281,7 +281,7 @@ library
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
-@@ -407,7 +407,7 @@ executable stack
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
-@@ -537,7 +537,7 @@ executable stack-integration-test
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
-@@ -672,7 +672,7 @@ test-suite stack-test
-         pantry >=0.5.3,
-         path >=0.7.0,
-         path-io >=1.6.3,
--        persistent >=2.11.0.4,
-+        persistent >=2.11.0.4 && <2.14.0.0,
-         persistent-sqlite >=2.11.1.0,
-         persistent-template >=2.9.1.0,
-         pretty >=1.1.3.6,
diff --git a/srcpkgs/stack/patches/ppc.patch b/srcpkgs/stack/patches/ppc.patch
index fc4c540f0f92..4ab025e7663c 100644
--- a/srcpkgs/stack/patches/ppc.patch
+++ b/srcpkgs/stack/patches/ppc.patch
@@ -22,11 +22,10 @@
 
 --- a/stack.cabal
 +++ b/stack.cabal
-@@ -246,6 +246,7 @@
+@@ -246,4 +246,5 @@
          conduit >=1.3.4.1,
          conduit-extra >=1.3.5,
          containers >=0.6.2.1,
 +        cpu >=0.1.2,
          cryptonite >=0.27,
          cryptonite-conduit >=0.2.2,
-         deepseq >=1.4.4.0,
diff --git a/srcpkgs/stack/patches/showStackVersion.patch b/srcpkgs/stack/patches/showStackVersion.patch
new file mode 100644
index 000000000000..454e0c6dfe53
--- /dev/null
+++ b/srcpkgs/stack/patches/showStackVersion.patch
@@ -0,0 +1,10 @@
+--- a/src/main/BuildInfo.hs
++++ b/src/main/BuildInfo.hs
+@@ -32,5 +32,6 @@
+ #endif
+ import           Stack.Prelude
+ import qualified Paths_stack as Meta
++import Stack.Types.Version (showStackVersion)
+
+ versionString' :: String
+ #ifdef USE_GIT_INFO
diff --git a/srcpkgs/stack/template b/srcpkgs/stack/template
index b6c1f1578ed9..c76f90ff89ed 100644
--- a/srcpkgs/stack/template
+++ b/srcpkgs/stack/template
@@ -1,8 +1,8 @@
 # Template file for 'stack'
 pkgname=stack
-version=2.7.5
-revision=2
-_stackage="lts-19.0"
+version=2.9.3
+revision=1
+_stackage="lts-20.0"
 hostmakedepends="cabal-install pkg-config unzip"
 makedepends="zlib-devel pcre-devel"
 depends="git gmp-devel iana-etc"
@@ -12,8 +12,8 @@ license="BSD-3-Clause"
 homepage="https://haskellstack.org"
 distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz
  https://www.stackage.org/${_stackage}/cabal.config>cabal.config-${_stackage}"
-checksum="9ddd44c2a62e9404194d69e7dc1c94e707910620316b66d6ac0b3201a8f37e80
- e1de952bb6f62573e5c211df99ce6bb684c4cae7845f16c347ce9aa503d6374f"
+checksum="c4700cb227dd624249db2e649445f3df3d558c8a5ab2c98b5c7bf8545901f2dc
+ addcb336500f35b565403e72b0b3793fee74313439eacfb79e0c2121d88bc8ea"
 skip_extraction="cabal.config-${_stackage}"
 nocross=yes
 nopie_files="/usr/bin/stack"

From 43c22912fcbee45621319d96abf8603e2d5f6339 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Tue, 27 Dec 2022 15:29:21 +0100
Subject: [PATCH 04/24] hlint: update to 3.4.1

---
 srcpkgs/hlint/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/hlint/template b/srcpkgs/hlint/template
index 0109be25805f..c5efc617393c 100644
--- a/srcpkgs/hlint/template
+++ b/srcpkgs/hlint/template
@@ -1,16 +1,16 @@
 # Template file for 'hlint'
 pkgname=hlint
-version=3.3.6
+version=3.4.1
 revision=1
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 makedepends="ncurses-devel"
 short_desc="Haskell source code suggestions"
 maintainer="Inokentiy Babushkin <twk@twki.de>"
 license="BSD-3-Clause"
 homepage="https://github.com/ndmitchell/hlint"
 distfiles="https://github.com/ndmitchell/${pkgname}/archive/v${version}.tar.gz"
-checksum=7d536c03f77a0c259efb2b00b525ef34578ca8a4a95ccb412708e8c7172e2e6a
+checksum=667b1ee82ce47706e8206c4994add2483b0bf21c67861d4652b2b5aa90299dc5
 nocross=yes # Can't yet cross compile Haskell
 nopie_files="/usr/bin/hlint"
 

From bef4ba87d4872f0785d1d546613599791b2fa456 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Tue, 27 Dec 2022 16:19:12 +0100
Subject: [PATCH 05/24] hoogle: bump for stackage lts-20.0

---
 srcpkgs/hoogle/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/hoogle/template b/srcpkgs/hoogle/template
index dc487cab4017..00de03e81eef 100644
--- a/srcpkgs/hoogle/template
+++ b/srcpkgs/hoogle/template
@@ -1,9 +1,9 @@
 # Template file for 'hoogle'
 pkgname=hoogle
 version=5.0.18.3
-revision=1
+revision=2
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 makedepends="zlib-devel"
 short_desc="Haskell API search engine"
 maintainer="Inokentiy Babushkin <twk@twki.de>"

From 0ff10d252f1074acd9450926e1bba8eded586310 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Tue, 27 Dec 2022 17:38:42 +0100
Subject: [PATCH 06/24] pandoc: update to 2.19.2

+ Update pandoc-crossref and it's associated cabal file.
+ Bump lua dependency.
+ Remove roman-numerals dependency, as pandoc-crossref now has its own
  implementation of this.
---
 srcpkgs/pandoc/files/pandoc-crossref.cabal | 139 +++++++++++++++++----
 srcpkgs/pandoc/template                    |  17 ++-
 2 files changed, 121 insertions(+), 35 deletions(-)

diff --git a/srcpkgs/pandoc/files/pandoc-crossref.cabal b/srcpkgs/pandoc/files/pandoc-crossref.cabal
index 7aacc47278f3..850405534565 100644
--- a/srcpkgs/pandoc/files/pandoc-crossref.cabal
+++ b/srcpkgs/pandoc/files/pandoc-crossref.cabal
@@ -1,13 +1,9 @@
-cabal-version: 2.0
-
--- This file has been generated from package.yaml by hpack version 0.34.6.
+-- This file has been generated from package.yaml by hpack version 0.34.4.
 --
 -- see: https://github.com/sol/hpack
---
--- hash: 20655cd6263e9fe7e5737ee81b093c8c6f5eae67e260ddd3a821ac6ef5e35e69
 
 name:           pandoc-crossref
-version:        0.3.13.0
+version:        0.3.14.0
 synopsis:       Pandoc filter for cross-references
 description:    pandoc-crossref is a pandoc filter for numbering figures, equations, tables and cross-references to them.
 category:       Text
@@ -18,6 +14,99 @@ maintainer:     root@livid.pp.ru
 license:        GPL-2
 license-file:   LICENSE
 build-type:     Simple
+extra-source-files:
+    test/demo-chapters.inc
+    test/demo.inc
+    CHANGELOG.md
+    licenses/LICENSE.roman-numerals
+data-files:
+    docs/demo/demo.md
+    docs/index.md
+    test/m2m/chapDelim/expect.md
+    test/m2m/chapDelim/expect.tex
+    test/m2m/chapDelim/input.md
+    test/m2m/delim/expect.md
+    test/m2m/delim/expect.tex
+    test/m2m/delim/input.md
+    test/m2m/emptyChapterLabels/expect.md
+    test/m2m/emptyChapterLabels/expect.tex
+    test/m2m/emptyChapterLabels/input.md
+    test/m2m/eqnBlockTemplate/expect.md
+    test/m2m/eqnBlockTemplate/expect.tex
+    test/m2m/eqnBlockTemplate/input.md
+    test/m2m/eqnInlineTemplate/expect.md
+    test/m2m/eqnInlineTemplate/expect.tex
+    test/m2m/eqnInlineTemplate/input.md
+    test/m2m/equationNumberLaTeX/expect.md
+    test/m2m/equationNumberLaTeX/expect.tex
+    test/m2m/equationNumberLaTeX/input.md
+    test/m2m/equations-auto/expect.md
+    test/m2m/equations-auto/expect.tex
+    test/m2m/equations-auto/input.md
+    test/m2m/equations-tables-auto/expect.md
+    test/m2m/equations-tables-auto/expect.tex
+    test/m2m/equations-tables-auto/input.md
+    test/m2m/equations-tables/expect.md
+    test/m2m/equations-tables/expect.tex
+    test/m2m/equations-tables/input.md
+    test/m2m/equations/expect.md
+    test/m2m/equations/expect.tex
+    test/m2m/equations/input.md
+    test/m2m/label-precedence/expect.md
+    test/m2m/label-precedence/expect.tex
+    test/m2m/label-precedence/input.md
+    test/m2m/links-names/expect.md
+    test/m2m/links-names/expect.tex
+    test/m2m/links-names/input.md
+    test/m2m/links/expect.md
+    test/m2m/links/expect.tex
+    test/m2m/links/input.md
+    test/m2m/listing-captions-ids/expect.md
+    test/m2m/listing-captions-ids/expect.tex
+    test/m2m/listing-captions-ids/input.md
+    test/m2m/listings-code-block-caption-278/expect.md
+    test/m2m/listings-code-block-caption-278/expect.tex
+    test/m2m/listings-code-block-caption-278/input.md
+    test/m2m/listOfTemplates-buillet-list/expect.md
+    test/m2m/listOfTemplates-buillet-list/expect.tex
+    test/m2m/listOfTemplates-buillet-list/input.md
+    test/m2m/listOfTemplates-ord-list/expect.md
+    test/m2m/listOfTemplates-ord-list/expect.tex
+    test/m2m/listOfTemplates-ord-list/input.md
+    test/m2m/listOfTemplates/expect.md
+    test/m2m/listOfTemplates/expect.tex
+    test/m2m/listOfTemplates/input.md
+    test/m2m/loxItemTitle/expect.md
+    test/m2m/loxItemTitle/expect.tex
+    test/m2m/loxItemTitle/input.md
+    test/m2m/multiple-eqn-same-para/expect.md
+    test/m2m/multiple-eqn-same-para/expect.tex
+    test/m2m/multiple-eqn-same-para/input.md
+    test/m2m/secLabels/expect.md
+    test/m2m/secLabels/expect.tex
+    test/m2m/secLabels/input.md
+    test/m2m/secLevelLabels/expect.md
+    test/m2m/secLevelLabels/expect.tex
+    test/m2m/secLevelLabels/input.md
+    test/m2m/section-template/expect.md
+    test/m2m/section-template/expect.tex
+    test/m2m/section-template/input.md
+    test/m2m/setLabelAttribute/expect.md
+    test/m2m/setLabelAttribute/expect.tex
+    test/m2m/setLabelAttribute/input.md
+    test/m2m/subfigures-ccsDelim/expect.md
+    test/m2m/subfigures-ccsDelim/expect.tex
+    test/m2m/subfigures-ccsDelim/input.md
+    test/m2m/subfigures-grid/expect.md
+    test/m2m/subfigures-grid/expect.tex
+    test/m2m/subfigures-grid/input.md
+    test/m2m/subfigures/expect.md
+    test/m2m/subfigures/expect.tex
+    test/m2m/subfigures/input.md
+    test/m2m/titlesInRefs/expect.md
+    test/m2m/titlesInRefs/expect.tex
+    test/m2m/titlesInRefs/input.md
+cabal-version: 1.12
 
 source-repository head
   type: git
@@ -32,6 +121,7 @@ library
   exposed-modules:
       Text.Pandoc.CrossRef
   other-modules:
+      Text.Numeral.Roman
       Text.Pandoc.CrossRef.References
       Text.Pandoc.CrossRef.References.Blocks
       Text.Pandoc.CrossRef.References.List
@@ -60,13 +150,12 @@ library
     , microlens >=0.4.12.0 && <0.5.0.0
     , microlens-mtl >=0.2.0.1 && <0.3.0.0
     , microlens-th >=0.4.3.10 && <0.5.0.0
-    , mtl >=1.1 && <2.3
-    , pandoc >=2.10 && <2.18
-    , pandoc-types >=1.21 && <1.23
-    , roman-numerals ==0.5.*
+    , mtl >=1.1 && <2.4
+    , pandoc >=2.18 && <2.20
+    , pandoc-types >=1.22.2 && <1.23
     , syb >=0.4 && <0.8
     , template-haskell >=2.7.0.0 && <3.0.0.0
-    , text >=1.2.2 && <1.3
+    , text >=1.2.2 && <2.1
     , utility-ht >=0.0.11 && <0.1.0
   default-language: Haskell2010
 
@@ -82,13 +171,13 @@ executable pandoc-crossref
     , deepseq ==1.4.*
     , gitrev >=1.3.1 && <1.4
     , open-browser ==0.2.*
-    , optparse-applicative >=0.13 && <0.17
-    , pandoc >=2.10 && <2.18
+    , optparse-applicative >=0.13 && <0.18
+    , pandoc >=2.18 && <2.20
     , pandoc-crossref
-    , pandoc-types >=1.21 && <1.23
+    , pandoc-types >=1.22.2 && <1.23
     , template-haskell >=2.7.0.0 && <3.0.0.0
     , temporary >=1.2 && <1.4
-    , text >=1.2.2 && <1.3
+    , text >=1.2.2 && <2.1
   default-language: Haskell2010
 
 test-suite test-integrative
@@ -102,10 +191,10 @@ test-suite test-integrative
     , directory >=1 && <1.4
     , filepath >=1.1 && <1.5
     , hspec >=2.4.4 && <3
-    , pandoc >=2.10 && <2.18
+    , pandoc >=2.18 && <2.20
     , pandoc-crossref
-    , pandoc-types >=1.21 && <1.23
-    , text >=1.2.2 && <1.3
+    , pandoc-types >=1.22.2 && <1.23
+    , text >=1.2.2 && <2.1
   if flag(enable_flaky_tests)
     cpp-options: -DFLAKY
   default-language: Haskell2010
@@ -128,10 +217,10 @@ test-suite test-pandoc-crossref
     , hspec >=2.4.4 && <3
     , microlens >=0.4.12.0 && <0.5.0.0
     , mtl >=1.1 && <2.3
-    , pandoc >=2.10 && <2.18
+    , pandoc >=2.18 && <2.20
     , pandoc-crossref
-    , pandoc-types >=1.21 && <1.23
-    , text >=1.2.2 && <1.3
+    , pandoc-types >=1.22.2 && <1.23
+    , text >=1.2.2 && <2.1
   if flag(enable_flaky_tests)
     cpp-options: -DFLAKY
   default-language: Haskell2010
@@ -146,9 +235,9 @@ benchmark simple
   ghc-options: -Wall -fno-warn-unused-do-bind -threaded
   build-depends:
       base >=4.11 && <5
-    , criterion >=1.5.9.0 && <1.6
-    , pandoc >=2.10 && <2.18
+    , criterion >=1.5.9.0 && <1.7
+    , pandoc >=2.18 && <2.20
     , pandoc-crossref
-    , pandoc-types >=1.21 && <1.23
-    , text >=1.2.2 && <1.3
+    , pandoc-types >=1.22.2 && <1.23
+    , text >=1.2.2 && <2.1
   default-language: Haskell2010
diff --git a/srcpkgs/pandoc/template b/srcpkgs/pandoc/template
index 9bdf32ef3c53..0ce941c6fcc5 100644
--- a/srcpkgs/pandoc/template
+++ b/srcpkgs/pandoc/template
@@ -1,20 +1,19 @@
 # Template file for 'pandoc'
 pkgname=pandoc
 # Keep in sync with http://www.stackage.org/lts
-version=2.17.1.1
+version=2.19.2
 revision=1
 _sidenote_version=0.22.1.0
 _monad_gen_version=0.3.0.1
-_crossref_version=0.3.12.2
-_roman_numerals_version=0.5.1.5
+_crossref_version=0.3.14.0
 create_wrksrc=yes
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 make_build_args="
  --flag pandoc:embed_data_files
  --flag=lua:pkg-config"
 hostmakedepends="pkg-config unzip wget"
-makedepends="zlib-devel lua53-devel tar"
+makedepends="zlib-devel lua54-devel tar"
 short_desc="Universal converter between markup formats"
 maintainer="slotThe <soliditsallgood@mailbox.org>"
 license="GPL-2.0-or-later, BSD-3-Clause"
@@ -22,13 +21,11 @@ homepage="http://johnmacfarlane.net/pandoc/"
 distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz
  https://hackage.haskell.org/package/${pkgname}-sidenote-${_sidenote_version}/${pkgname}-sidenote-${_sidenote_version}.tar.gz
  https://hackage.haskell.org/package/monad-gen-${_monad_gen_version}/monad-gen-${_monad_gen_version}.tar.gz
- https://hackage.haskell.org/package/${pkgname}-crossref-${_crossref_version}/${pkgname}-crossref-${_crossref_version}.tar.gz
- https://hackage.haskell.org/package/roman-numerals-${_roman_numerals_version}/roman-numerals-${_roman_numerals_version}.tar.gz"
-checksum="649ec528d1413130c5ce304b826ff473b3696269eea8834d908589e775bd1ad1
+ https://hackage.haskell.org/package/${pkgname}-crossref-${_crossref_version}/${pkgname}-crossref-${_crossref_version}.tar.gz"
+checksum="36e83694c36a5af35a4442c4d5abd4273289d9d309793466f59c1632e87d4245
  c39dd7343b9cb4dc5b1c91c9e47c3d357874e9e1a30b8d377bbea0b1d50323b2
  be8485023fce236b5b915f2f6074f7b0470a2040f84cdd137c5227f1b4c98465
- 94540325c9c98ae4d5199c634bf402ffa41e3c5b020d7207daef90fd9e224fb4
- b9c7195b69b1662a286d2c28a55fafdcb693c522ba5eb54a11b1d0a4e92eaa81"
+ 06d163e2cec3f285919295c41a0580f203bb157d05eb06a494dbc093cbefa5b8"
 subpackages="
  pandoc-sidenote
  pandoc-crossref"

From 64f9e27c94218c3f8b4ac7a3091dabe797feb3d7 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 08:32:36 +0100
Subject: [PATCH 07/24] shellcheck: bump for stackage lts-20.0

---
 srcpkgs/shellcheck/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/shellcheck/template b/srcpkgs/shellcheck/template
index e85667f66918..c06b88603109 100644
--- a/srcpkgs/shellcheck/template
+++ b/srcpkgs/shellcheck/template
@@ -1,9 +1,9 @@
 # Template file for 'shellcheck'
 pkgname=shellcheck
 version=0.9.0
-revision=1
+revision=2
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 hostmakedepends="pandoc"
 short_desc="Static analysis tool for shell scripts"
 maintainer="Diogo Leal <diogo@diogoleal.com>"

From b72f37ea6631b90f2da8c80353754274e5de9dfb Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 08:36:43 +0100
Subject: [PATCH 08/24] New package: greenclip-4.2

Co-authored-by: KawaiiAmber <japaneselearning101@gmail.com>
---
 srcpkgs/greenclip/files/stack.yaml | 12 ++++++++++++
 srcpkgs/greenclip/template         | 19 +++++++++++++++++++
 2 files changed, 31 insertions(+)
 create mode 100644 srcpkgs/greenclip/files/stack.yaml
 create mode 100644 srcpkgs/greenclip/template

diff --git a/srcpkgs/greenclip/files/stack.yaml b/srcpkgs/greenclip/files/stack.yaml
new file mode 100644
index 000000000000..86f4b6fa7ed2
--- /dev/null
+++ b/srcpkgs/greenclip/files/stack.yaml
@@ -0,0 +1,12 @@
+resolver: lts-20.0
+
+packages:
+- '.'
+
+extra-deps:
+- 'wordexp-0.2.2'
+- 'protolude-0.3.2'
+- 'tomland-1.3.3.2'
+- 'validation-selective-0.1.0.2'
+
+allow-newer: true
diff --git a/srcpkgs/greenclip/template b/srcpkgs/greenclip/template
new file mode 100644
index 000000000000..c048afe39e01
--- /dev/null
+++ b/srcpkgs/greenclip/template
@@ -0,0 +1,19 @@
+# Template file for 'greenclip'
+pkgname=greenclip
+version=4.2
+revision=1
+build_style=haskell-stack
+hostmakedepends="pkg-config"
+makedepends="libX11-devel libXinerama-devel libXrandr-devel libXScrnSaver-devel"
+short_desc="Simple clipboard manager to be integrated with rofi"
+maintainer="KawaiiAmber <japaneselearning101@gmail.com>"
+license="BSD-3-Clause"
+homepage="https://github.com/erebe/greenclip"
+distfiles="${homepage}/archive/refs/tags/v${version}.tar.gz"
+checksum=bb95211e3c4bf3ab3a95ede92a678f79bedf2ed2c5b707ba0fb2efbae7fc60cd
+nopie=yes
+nocross="can't yet cross compile Haskell"
+
+post_install() {
+	vlicense LICENSE
+}

From b244badd1691a35e0eeab309f750297cccbdbc0b Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 10:35:09 +0100
Subject: [PATCH 09/24] hledger: update to 1.28

---
 srcpkgs/hledger/files/stack.yaml | 14 +++++---------
 srcpkgs/hledger/template         |  4 ++--
 2 files changed, 7 insertions(+), 11 deletions(-)

diff --git a/srcpkgs/hledger/files/stack.yaml b/srcpkgs/hledger/files/stack.yaml
index b5f41932e272..e2fd18f264a4 100644
--- a/srcpkgs/hledger/files/stack.yaml
+++ b/srcpkgs/hledger/files/stack.yaml
@@ -1,4 +1,4 @@
-resolver: lts-19.0
+resolver:  lts-20.0
 
 packages:
 - hledger-lib
@@ -7,16 +7,12 @@ packages:
 - hledger-web
 
 extra-deps:
+- megaparsec-9.3.0
 # for hledger-lib:
-- breakpoint-0.1.0.0
+# - breakpoint-0.1.2.0
 # for hledger:
 # for hledger-ui:
-- brick-1.0
-- bimap-0.5.0
-- text-zipper-0.12
-- vty-5.36
+- brick-1.5
+- fsnotify-0.4.0.0
 # for hledger-web:
 # for Shake.hs:
-
-ghc-options:
-  "$locals": -fplugin Debug.Breakpoint
diff --git a/srcpkgs/hledger/template b/srcpkgs/hledger/template
index 5750484fc5bc..6a4360a0c641 100644
--- a/srcpkgs/hledger/template
+++ b/srcpkgs/hledger/template
@@ -1,6 +1,6 @@
 # Template file for 'hledger'
 pkgname=hledger
-version=1.27.1
+version=1.28
 revision=1
 build_style=haskell-stack
 makedepends="zlib-devel ncurses-devel"
@@ -10,7 +10,7 @@ license="GPL-3.0-or-later"
 homepage="https://hledger.org/"
 changelog="https://hackage.haskell.org/package/hledger-${version}/changelog"
 distfiles="https://github.com/simonmichael/hledger/archive/${version}.tar.gz"
-checksum=218f6005b7b30308cc43523dc7b61c818bb649abc217a6c8803e8f82b408d239
+checksum=e2736f732d9f5cade993877b4524f06fbb3488142843c62653a0849180d2a34a
 nopie_files="/usr/bin/hledger"
 nocross=yes # Can't yet cross compile Haskell
 

From 09afe3b6b6e780d7e8e842a71f12eb57592d5613 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 13:58:50 +0100
Subject: [PATCH 10/24] darcs: bump for stackage lts-20.0

---
 srcpkgs/darcs/files/stack.yaml | 2 +-
 srcpkgs/darcs/template         | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/darcs/files/stack.yaml b/srcpkgs/darcs/files/stack.yaml
index 6e459703764a..f2dd5264e5bf 100644
--- a/srcpkgs/darcs/files/stack.yaml
+++ b/srcpkgs/darcs/files/stack.yaml
@@ -1,4 +1,4 @@
-resolver: lts-19.0
+resolver: lts-20.0
 packages:
 - .
 allow-newer: true
diff --git a/srcpkgs/darcs/template b/srcpkgs/darcs/template
index 15a8f71f9021..04a0f6da593c 100644
--- a/srcpkgs/darcs/template
+++ b/srcpkgs/darcs/template
@@ -1,7 +1,7 @@
 # Template file for 'darcs'
 pkgname=darcs
 version=2.16.5
-revision=3
+revision=4
 build_style=haskell-stack
 hostmakedepends="unzip"
 makedepends="zlib-devel libcurl-devel ncurses-devel"

From bcfad03f61ed98bea9f3f5e6189c0383834e54ee Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 14:54:40 +0100
Subject: [PATCH 11/24] cgrep: bump for stackage lts-20.0

---
 srcpkgs/cgrep/files/stack.yaml | 7 +++++++
 srcpkgs/cgrep/template         | 2 +-
 2 files changed, 8 insertions(+), 1 deletion(-)
 create mode 100644 srcpkgs/cgrep/files/stack.yaml

diff --git a/srcpkgs/cgrep/files/stack.yaml b/srcpkgs/cgrep/files/stack.yaml
new file mode 100644
index 000000000000..9db0805a3957
--- /dev/null
+++ b/srcpkgs/cgrep/files/stack.yaml
@@ -0,0 +1,7 @@
+resolver: lts-20.0
+
+packages:
+  - '.'
+
+extra-deps:
+  - bitwise-1.0.0.1
diff --git a/srcpkgs/cgrep/template b/srcpkgs/cgrep/template
index 9d943300a68c..865d4e43398d 100644
--- a/srcpkgs/cgrep/template
+++ b/srcpkgs/cgrep/template
@@ -1,7 +1,7 @@
 # Template file for 'cgrep'
 pkgname=cgrep
 version=7.0.0
-revision=1
+revision=2
 build_style=haskell-stack
 makedepends="pcre-devel pkg-config"
 short_desc="Context-aware grep for source codes"

From bc3778263267cf26d60df508d713bb57b570ed04 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 15:38:14 +0100
Subject: [PATCH 12/24] xmobar: update to 0.44.2

This is the last version that still builds on musl.
---
 srcpkgs/xmobar/files/stack.yaml | 2 +-
 srcpkgs/xmobar/template         | 9 +++++----
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/xmobar/files/stack.yaml b/srcpkgs/xmobar/files/stack.yaml
index 7e0956374142..15744aaa56ee 100644
--- a/srcpkgs/xmobar/files/stack.yaml
+++ b/srcpkgs/xmobar/files/stack.yaml
@@ -1,4 +1,4 @@
-resolver: lts-19.0
+resolver: lts-20.0
 packages:
 - .
 extra-deps:
diff --git a/srcpkgs/xmobar/template b/srcpkgs/xmobar/template
index 6a12a9ed7055..fb00e4865322 100644
--- a/srcpkgs/xmobar/template
+++ b/srcpkgs/xmobar/template
@@ -1,6 +1,7 @@
 # Template file for 'xmobar'
 pkgname=xmobar
-version=0.42
+# versions >= 0.45 are broken on musl: https://codeberg.org/xmobar/xmobar/issues/656
+version=0.44.2
 revision=1
 build_style=haskell-stack
 hostmakedepends="pkg-config"
@@ -15,10 +16,10 @@ maintainer="xaltsc <xaltsc@protonmail.ch>"
 license="BSD-3-Clause"
 homepage="https://xmobar.org"
 distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz"
-checksum=53f4a06d79c3db32ef1a498ec7b764b17d03ebf9bca3126c6b8259595492769b
-build_options="dbus threaded utf8 xft mpd mpris inotify iwlib alsa datezone
+checksum=08a0bdd6a6c84b2219fae33de1c1335ff3610a194b377dc59ab4505aac84b73d
+build_options="dbus threaded xft mpd mpris inotify iwlib alsa datezone
  xpm uvmeter weather nl80211"
-build_options_default="threaded utf8 xft inotify nl80211 datezone weather xpm alsa mpris mpd dbus"
+build_options_default="threaded xft inotify nl80211 datezone weather xpm alsa mpris mpd dbus"
 nopie_files="/usr/bin/xmobar"
 nocross=yes
 vopt_hflag() {

From af04deea05b26054881ade9e6712ee3e7a22e2e8 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 17:10:27 +0100
Subject: [PATCH 13/24] kmonad: bump for stackage lts-20.0

---
 srcpkgs/kmonad/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kmonad/template b/srcpkgs/kmonad/template
index 04088043afc2..a21383b6a484 100644
--- a/srcpkgs/kmonad/template
+++ b/srcpkgs/kmonad/template
@@ -3,9 +3,9 @@ pkgname=kmonad
 reverts="65b501defdd0049563752f8af8c8c57f5a1ae38b_1"
 _githash=65b501defdd0049563752f8af8c8c57f5a1ae38b
 version=0.4.1.20220321
-revision=1
+revision=2
 build_style=haskell-stack
-stackage=lts-19.0
+stackage=lts-20.0
 short_desc="Keyboard remapping utility providing qmk-like functionality"
 maintainer="slotThe <soliditsallgood@mailbox.org>"
 license="MIT"

From b783cb1f43574e6bf73d89d4e867e7610b244c2a Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 17:11:43 +0100
Subject: [PATCH 14/24] glirc: bump for cabal-install 3.8.1.0

---
 srcpkgs/glirc/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/glirc/template b/srcpkgs/glirc/template
index 98a677886ae1..458609007def 100644
--- a/srcpkgs/glirc/template
+++ b/srcpkgs/glirc/template
@@ -1,7 +1,7 @@
 # Template file for 'glirc'
 pkgname=glirc
 version=2.39.0.1
-revision=1
+revision=2
 hostmakedepends="cabal-install"
 makedepends="ncurses-devel openssl-devel"
 short_desc="Console IRC client written in Haskell"

From 902bcc768fbcd0855eafe3d232ce7210d64fefab Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Wed, 28 Dec 2022 18:15:04 +0100
Subject: [PATCH 15/24] git-mediate: bump for stackage lts-20.0

---
 srcpkgs/git-mediate/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/git-mediate/template b/srcpkgs/git-mediate/template
index 705df7843b8e..f472a26d132a 100644
--- a/srcpkgs/git-mediate/template
+++ b/srcpkgs/git-mediate/template
@@ -1,9 +1,9 @@
 # Template file for 'git-mediate'
 pkgname=git-mediate
 version=1.0.8.1
-revision=3
+revision=4
 build_style=haskell-stack
-stackage="lts-19.0"
+stackage="lts-20.0"
 depends="git"
 short_desc="Tool to help resolving git conflicts"
 maintainer="Peter Wang <novalazy@gmail.com>"

From 3135d4b7069eeb833c222919e2954f1887bd4261 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Thu, 29 Dec 2022 09:22:09 +0100
Subject: [PATCH 16/24] [WIP] ghc-bin: update to 9.2.5

---
 srcpkgs/ghc-bin/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/ghc-bin/template b/srcpkgs/ghc-bin/template
index f9610408060f..ee8083ff3cf0 100644
--- a/srcpkgs/ghc-bin/template
+++ b/srcpkgs/ghc-bin/template
@@ -1,6 +1,6 @@
 # Template file for 'ghc-bin'
 pkgname=ghc-bin
-version=9.0.2
+version=9.2.5
 revision=1
 archs="i686 x86_64* ppc64le* ppc64 aarch64*"
 hostmakedepends="perl libffi libnuma"
@@ -16,7 +16,7 @@ conflicts="ghc>=0 ghc-doc>=0"
 case "$XBPS_TARGET_MACHINE" in
 x86_64)
 	distfiles="https://downloads.haskell.org/ghc/${version%[!0-9]}/ghc-${version}-x86_64-deb9-linux.tar.xz"
-	checksum=805f5628ce6cec678ba77ff48c924831ebdf75ec2c66368e8935a618913a150e
+	checksum=2d115b7258751f0e4481e35b5953ca3c7870e8ec9ce68f1d32fc014ddc29b2a5
 	;;
 x86_64-musl)
 	# create with "make binary-dist"
@@ -25,7 +25,7 @@ x86_64-musl)
 	;;
 i686)
 	distfiles="https://downloads.haskell.org/ghc/${version%[!0-9]}/ghc-${version}-i386-deb9-linux.tar.xz"
-	checksum=fdeb9f8928fbe994064778a8e1e85bb1a58a6cd3dd7b724fcc2a1dcfda6cad47
+	checksum=cf2088010e4477cb84b26725107eeb23e878368074abcf04f089d498ca2d9ddf
 	;;
 ppc64le)
 	distfiles="https://repo-default.voidlinux.org/distfiles/ghc-${version}-powerpc64le-void-linux.tar.xz"

From ed70d04edb71262b23158dd7397916111ab1d337 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Thu, 29 Dec 2022 09:22:41 +0100
Subject: [PATCH 17/24] New package: ghcup-0.21

Co-authored-by: Kye Shi <shi.kye@gmail.com>
---
 srcpkgs/ghcup/INSTALL.msg |  8 ++++++++
 srcpkgs/ghcup/template    | 32 ++++++++++++++++++++++++++++++++
 2 files changed, 40 insertions(+)
 create mode 100644 srcpkgs/ghcup/INSTALL.msg
 create mode 100644 srcpkgs/ghcup/template

diff --git a/srcpkgs/ghcup/INSTALL.msg b/srcpkgs/ghcup/INSTALL.msg
new file mode 100644
index 000000000000..100bbd0780b7
--- /dev/null
+++ b/srcpkgs/ghcup/INSTALL.msg
@@ -0,0 +1,8 @@
+ghcup comes with an internal downloader, but optionally depends on curl and/or
+wget for more advanced usages (e.g., proxying).  To use curl/wget as downloader,
+first make sure they are installed, then run `ghcup config set downloader Curl`.
+
+Also, ghcup requires $GHCUP_INSTALL_BASE_PREFIX/.ghcup/bin to be in your PATH
+(by default, $GHCUP_INSTALL_BASE_PREFIX is $HOME); make sure to update your
+shell launch scripts accordingly. Alternatively, when GHCUP_USE_XDG_DIRS is set,
+GHCUP uses XDG-ish directories.
diff --git a/srcpkgs/ghcup/template b/srcpkgs/ghcup/template
new file mode 100644
index 000000000000..de9be01dc9f0
--- /dev/null
+++ b/srcpkgs/ghcup/template
@@ -0,0 +1,32 @@
+# Template file for 'ghcup'
+pkgname=ghcup
+version=0.21
+revision=1
+wrksrc="ghcup-hs-v$version"
+hostmakedepends='tar git cabal-install pkg-config'
+makedepends='zlib-devel ncurses-libtinfo-devel libarchive-devel'
+depends='zlib ncurses-libtinfo-libs libarchive gcc gmp make perl'
+short_desc='Installer for the general purpose language Haskell'
+maintainer='Kye Shi <shi.kye@gmail.com>'
+license='LGPL-3.0-only'
+homepage='https://www.haskell.org/ghcup/'
+distfiles="https://github.com/haskell/ghcup-hs/archive/refs/tags/v$version.tar.gz"
+checksum=66bf77b062740eb18053b5b0456d568874b2981f641597e6152a721851900c4e
+nopie_files='/usr/bin/ghcup'
+nocross='cannot cross compile haskell yet'
+
+post_extract() {
+	vsed -i 's/-system-libarchive/+system-libarchive/' cabal.project
+}
+
+do_build() {
+	cabal update --prefix="$PWD"
+	cabal build --prefix="$PWD" --project-file=cabal.project -f'internal-downloader'
+}
+
+do_install() {
+	cabal install --prefix="$PWD" --install-method='copy' --installdir="$DESTDIR/usr/bin"
+	for sh in 'bash' 'fish' 'zsh'; do
+		vcompletion "scripts/shell-completions/$sh" "$sh"
+	done
+}

From 62f7f0b0f3ccd713525ee49ff555740cbf08cc5a Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Thu, 29 Dec 2022 12:22:29 +0100
Subject: [PATCH 18/24] debug-me: bump for stackage lts-20.0

---
 srcpkgs/debug-me/files/stack.yaml         |  2 +-
 srcpkgs/debug-me/patches/bytestring.patch | 26 +++++++++++++++++++++++
 srcpkgs/debug-me/template                 |  3 +--
 3 files changed, 28 insertions(+), 3 deletions(-)
 create mode 100644 srcpkgs/debug-me/patches/bytestring.patch

diff --git a/srcpkgs/debug-me/files/stack.yaml b/srcpkgs/debug-me/files/stack.yaml
index f2b1a79d70c6..cf7820620db2 100644
--- a/srcpkgs/debug-me/files/stack.yaml
+++ b/srcpkgs/debug-me/files/stack.yaml
@@ -1,6 +1,6 @@
 packages:
 - '.'
-resolver: lts-19.0
+resolver: lts-20.0
 extra-deps:
   - posix-pty-0.2.1.1
   - sandi-0.5@sha256:b278d072ca717706ea38f9bd646e023f7f2576a778fb43565b434f93638849aa,3010
diff --git a/srcpkgs/debug-me/patches/bytestring.patch b/srcpkgs/debug-me/patches/bytestring.patch
new file mode 100644
index 000000000000..24a67ef604d0
--- /dev/null
+++ b/srcpkgs/debug-me/patches/bytestring.patch
@@ -0,0 +1,26 @@
+From 1d30b5cd9156b1a9d409c8810dab26e2dc5065af Mon Sep 17 00:00:00 2001
+From: Tony Zorman <soliditsallgood@mailbox.org>
+Date: Thu, 29 Dec 2022 10:35:58 +0100
+Subject: [PATCH] Bump bytestring dependency
+
+This fixes the build for GHC 9.2, which ships with a higher version of
+the bytestring library.
+---
+ debug-me.cabal | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/debug-me.cabal b/debug-me.cabal
+index d5a44e9..2dd60a0 100644
+--- a/debug-me.cabal
++++ b/debug-me.cabal
+@@ -55,7 +55,7 @@ Executable debug-me
+   Build-Depends:
+       base (>= 4.9 && < 5.0)
+     , network (>= 2.6)
+-    , bytestring == 0.10.*
++    , bytestring < 0.12
+     , cryptonite (>= 0.20)
+     , unix (>= 2.7)
+     , process (>= 1.4)
+--
+2.39.0
diff --git a/srcpkgs/debug-me/template b/srcpkgs/debug-me/template
index f971f2156c77..0ffea08897fe 100644
--- a/srcpkgs/debug-me/template
+++ b/srcpkgs/debug-me/template
@@ -1,9 +1,8 @@
 # Template file for 'debug-me'
 pkgname=debug-me
 version=1.20220324
-revision=1
+revision=2
 build_style=haskell-stack
-stackage="lts-19.0"
 makedepends="zlib-devel"
 short_desc="Secure remote debugging"
 maintainer="Dominic Monroe <monroef4@googlemail.com>"

From 6d2757d2607a7aecc6da4131e294ee97fd1b6d37 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Thu, 29 Dec 2022 16:04:34 +0100
Subject: [PATCH 19/24] git-annex: update to 10.20221212

Patch bloomfilter to fix the build for GHC 9.2.5.

Related: https://github.com/bos/bloomfilter/pull/20
---
 srcpkgs/git-annex/files/stack.yaml            |  31 +-
 .../patches/bloomfilter-ghc9.2.patch          | 290 ++++++++++++++++++
 srcpkgs/git-annex/template                    |  14 +-
 3 files changed, 313 insertions(+), 22 deletions(-)
 create mode 100644 srcpkgs/git-annex/patches/bloomfilter-ghc9.2.patch

diff --git a/srcpkgs/git-annex/files/stack.yaml b/srcpkgs/git-annex/files/stack.yaml
index acc592054f70..b2674a7af4ad 100644
--- a/srcpkgs/git-annex/files/stack.yaml
+++ b/srcpkgs/git-annex/files/stack.yaml
@@ -10,21 +10,18 @@ flags:
     benchmark: true
     gitlfs: true
 packages:
-  - '.'
-resolver: lts-19.0
+- './git-annex-10.20221212'
+resolver: lts-20.0
 extra-deps:
-  - IfElse-0.85
-  - aws-0.22
-  - bloomfilter-2.0.1.0
-  - git-lfs-1.2.0
-  - http-client-restricted-0.0.4
-  - network-multicast-0.3.2
-  - sandi-0.5
-  - torrent-10000.1.1
-  - base16-bytestring-0.1.1.7
-  - base64-bytestring-1.0.0.3
-  - bencode-0.6.1.1
-  - aeson-1.5.6.0@sha256:5003bb6fd260d2e2d5a51dee2bf5c8e8f29e4e0e0288fef805c22dcc80ecab06,6788
-  - http-client-0.7.11@sha256:3f59ac8ffe2a3768846cdda040a0d1df2a413960529ba61c839861c948871967,5756
-explicit-setup-deps:
-    git-annex: true
+- IfElse-0.85
+- aws-0.23
+- ./bloomfilter-2.0.1.0
+- git-lfs-1.2.0
+- http-client-restricted-0.0.5
+- network-multicast-0.3.2
+- sandi-0.5
+- torrent-10000.1.1
+- base16-bytestring-1.0.2.0
+- base64-bytestring-1.2.1.0
+- bencode-0.6.1.1
+- http-client-0.7.13.1
diff --git a/srcpkgs/git-annex/patches/bloomfilter-ghc9.2.patch b/srcpkgs/git-annex/patches/bloomfilter-ghc9.2.patch
new file mode 100644
index 000000000000..0316a6a15194
--- /dev/null
+++ b/srcpkgs/git-annex/patches/bloomfilter-ghc9.2.patch
@@ -0,0 +1,290 @@
+From fb79b39c44404fd791a3bed973e9d844fb084f1e Mon Sep 17 00:00:00 2001
+From: Simon Jakobi <simon.jakobi@gmail.com>
+Date: Fri, 12 Nov 2021 01:37:36 +0100
+Subject: [PATCH] Fix build with GHC 9.2
+
+The `FastShift.shift{L,R}` methods are replaced with `unsafeShift{L,R}`
+introduced in base-4.5.
+
+Fixes #19.
+---
+ Data/BloomFilter.hs         | 16 +++++------
+ Data/BloomFilter/Hash.hs    | 15 +++++-----
+ Data/BloomFilter/Mutable.hs | 20 +++++++-------
+ Data/BloomFilter/Util.hs    | 55 ++++++-------------------------------
+ bloomfilter.cabal           |  2 +-
+ 5 files changed, 34 insertions(+), 74 deletions(-)
+
+diff --git a/bloomfilter-2.0.1.0/Data/BloomFilter.hs b/bloomfilter-2.0.1.0/Data/BloomFilter.hs
+index 2210cef..6b47c21 100644
+--- a/bloomfilter-2.0.1.0/Data/BloomFilter.hs
++++ b/bloomfilter-2.0.1.0/Data/BloomFilter.hs
+@@ -78,8 +78,8 @@ import Control.DeepSeq (NFData(..))
+ import Data.Array.Base (unsafeAt)
+ import qualified Data.Array.Base as ST
+ import Data.Array.Unboxed (UArray)
+-import Data.Bits ((.&.))
+-import Data.BloomFilter.Util (FastShift(..), (:*)(..))
++import Data.Bits ((.&.), unsafeShiftL, unsafeShiftR)
++import Data.BloomFilter.Util ((:*)(..))
+ import qualified Data.BloomFilter.Mutable as MB
+ import qualified Data.BloomFilter.Mutable.Internal as MB
+ import Data.BloomFilter.Mutable.Internal (Hash, MBloom)
+@@ -98,7 +98,7 @@ data Bloom a = B {
+     }
+
+ instance Show (Bloom a) where
+-    show ub = "Bloom { " ++ show ((1::Int) `shiftL` shift ub) ++ " bits } "
++    show ub = "Bloom { " ++ show ((1::Int) `unsafeShiftL` shift ub) ++ " bits } "
+
+ instance NFData (Bloom a) where
+     rnf !_ = ()
+@@ -172,7 +172,7 @@ singleton hash numBits elt = create hash numBits (\mb -> MB.insert mb elt)
+ -- | Given a filter's mask and a hash value, compute an offset into
+ -- a word array and a bit offset within that word.
+ hashIdx :: Int -> Word32 -> (Int :* Int)
+-hashIdx mask x = (y `shiftR` logBitsInHash) :* (y .&. hashMask)
++hashIdx mask x = (y `unsafeShiftR` logBitsInHash) :* (y .&. hashMask)
+   where hashMask = 31 -- bitsInHash - 1
+         y = fromIntegral x .&. mask
+
+@@ -191,7 +191,7 @@ hashesU ub elt = hashIdx (mask ub) `map` hashes ub elt
+ -- /still/ some possibility that @True@ will be returned.
+ elem :: a -> Bloom a -> Bool
+ elem elt ub = all test (hashesU ub elt)
+-  where test (off :* bit) = (bitArray ub `unsafeAt` off) .&. (1 `shiftL` bit) /= 0
++  where test (off :* bit) = (bitArray ub `unsafeAt` off) .&. (1 `unsafeShiftL` bit) /= 0
+           
+ modify :: (forall s. (MBloom s a -> ST s z))  -- ^ mutation function (result is discarded)
+         -> Bloom a
+@@ -255,11 +255,11 @@ insertList elts = modify $ \mb -> mapM_ (MB.insert mb) elts
+ -- is /still/ some possibility that @True@ will be returned.
+ notElem :: a -> Bloom a -> Bool
+ notElem elt ub = any test (hashesU ub elt)
+-  where test (off :* bit) = (bitArray ub `unsafeAt` off) .&. (1 `shiftL` bit) == 0
++  where test (off :* bit) = (bitArray ub `unsafeAt` off) .&. (1 `unsafeShiftL` bit) == 0
+
+ -- | Return the size of an immutable Bloom filter, in bits.
+ length :: Bloom a -> Int
+-length = shiftL 1 . shift
++length = unsafeShiftL 1 . shift
+
+ -- | Build an immutable Bloom filter from a seed value.  The seeding
+ -- function populates the filter as follows.
+@@ -318,7 +318,7 @@ fromList hashes numBits = unfold hashes numBits convert
+ logPower2 :: Int -> Int
+ logPower2 k = go 0 k
+     where go j 1 = j
+-          go j n = go (j+1) (n `shiftR` 1)
++          go j n = go (j+1) (n `unsafeShiftR` 1)
+
+ -- $overview
+ --
+diff --git a/bloomfilter-2.0.1.0/Data/BloomFilter/Hash.hs b/bloomfilter-2.0.1.0/Data/BloomFilter/Hash.hs
+index 132a3a4..d071fd4 100644
+--- a/bloomfilter-2.0.1.0/Data/BloomFilter/Hash.hs
++++ b/bloomfilter-2.0.1.0/Data/BloomFilter/Hash.hs
+@@ -38,8 +38,7 @@ module Data.BloomFilter.Hash
+     ) where
+
+ import Control.Monad (foldM)
+-import Data.Bits ((.&.), (.|.), xor)
+-import Data.BloomFilter.Util (FastShift(..))
++import Data.Bits ((.&.), (.|.), unsafeShiftL, unsafeShiftR, xor)
+ import Data.List (unfoldr)
+ import Data.Int (Int8, Int16, Int32, Int64)
+ import Data.Word (Word8, Word16, Word32, Word64)
+@@ -91,11 +90,11 @@ class Hashable a where
+              -> Word64           -- ^ salt
+              -> IO Word64
+     hashIO64 v salt = do
+-                   let s1 = fromIntegral (salt `shiftR` 32) .&. maxBound
++                   let s1 = fromIntegral (salt `unsafeShiftR` 32) .&. maxBound
+                        s2 = fromIntegral salt
+                    h1 <- hashIO32 v s1
+                    h2 <- hashIO32 v s2
+-                   return $ (fromIntegral h1 `shiftL` 32) .|. fromIntegral h2
++                   return $ (fromIntegral h1 `unsafeShiftL` 32) .|. fromIntegral h2
+
+ -- | Compute a 32-bit hash.
+ hash32 :: Hashable a => a -> Word32
+@@ -149,8 +148,8 @@ cheapHashes :: Hashable a => Int -- ^ number of hashes to compute
+ cheapHashes k v = go 0
+     where go i | i == j = []
+                | otherwise = hash : go (i + 1)
+-               where !hash = h1 + (h2 `shiftR` i)
+-          h1 = fromIntegral (h `shiftR` 32)
++               where !hash = h1 + (h2 `unsafeShiftR` i)
++          h1 = fromIntegral (h `unsafeShiftR` 32)
+           h2 = fromIntegral h
+           h = hashSalt64 0x9150a946c4a8966e v
+           j = fromIntegral k
+@@ -163,7 +162,7 @@ instance Hashable Integer where
+                                    (salt `xor` 0x3ece731e)
+                   | otherwise = hashIO32 (unfoldr go k) salt
+         where go 0 = Nothing
+-              go i = Just (fromIntegral i :: Word32, i `shiftR` 32)
++              go i = Just (fromIntegral i :: Word32, i `unsafeShiftR` 32)
+
+ instance Hashable Bool where
+     hashIO32 = hashOne32
+@@ -224,7 +223,7 @@ instance Hashable Word64 where
+ -- | A fast unchecked shift.  Nasty, but otherwise GHC 6.8.2 does a
+ -- test and branch on every shift.
+ div4 :: CSize -> CSize
+-div4 k = fromIntegral ((fromIntegral k :: HTYPE_SIZE_T) `shiftR` 2)
++div4 k = fromIntegral ((fromIntegral k :: HTYPE_SIZE_T) `unsafeShiftR` 2)
+
+ alignedHash :: Ptr a -> CSize -> Word32 -> IO Word32
+ alignedHash ptr bytes salt
+diff --git a/bloomfilter-2.0.1.0/Data/BloomFilter/Mutable.hs b/bloomfilter-2.0.1.0/Data/BloomFilter/Mutable.hs
+index edff1fc..0bb5cc9 100644
+--- a/bloomfilter-2.0.1.0/Data/BloomFilter/Mutable.hs
++++ b/bloomfilter-2.0.1.0/Data/BloomFilter/Mutable.hs
+@@ -65,9 +65,9 @@ module Data.BloomFilter.Mutable
+ import Control.Monad (liftM, forM_)
+ import Control.Monad.ST (ST)
+ import Data.Array.Base (unsafeRead, unsafeWrite)
+-import Data.Bits ((.&.), (.|.))
++import Data.Bits ((.&.), (.|.), unsafeShiftL, unsafeShiftR)
+ import Data.BloomFilter.Array (newArray)
+-import Data.BloomFilter.Util (FastShift(..), (:*)(..), nextPowerOfTwo)
++import Data.BloomFilter.Util ((:*)(..), nextPowerOfTwo)
+ import Data.Word (Word32)
+ import Data.BloomFilter.Mutable.Internal
+
+@@ -86,9 +86,9 @@ new hash numBits = MB hash shft msk `liftM` newArray numElems numBytes
+                 | numBits > maxHash = maxHash
+                 | isPowerOfTwo numBits = numBits
+                 | otherwise = nextPowerOfTwo numBits
+-        numElems = max 2 (twoBits `shiftR` logBitsInHash)
+-        numBytes = numElems `shiftL` logBytesInHash
+-        trueBits = numElems `shiftL` logBitsInHash
++        numElems = max 2 (twoBits `unsafeShiftR` logBitsInHash)
++        numBytes = numElems `unsafeShiftL` logBytesInHash
++        trueBits = numElems `unsafeShiftL` logBitsInHash
+         shft     = logPower2 trueBits
+         msk      = trueBits - 1
+         isPowerOfTwo n = n .&. (n - 1) == 0
+@@ -109,7 +109,7 @@ logBytesInHash = 2 -- logPower2 (sizeOf (undefined :: Hash))
+ -- | Given a filter's mask and a hash value, compute an offset into
+ -- a word array and a bit offset within that word.
+ hashIdx :: Int -> Word32 -> (Int :* Int)
+-hashIdx msk x = (y `shiftR` logBitsInHash) :* (y .&. hashMask)
++hashIdx msk x = (y `unsafeShiftR` logBitsInHash) :* (y .&. hashMask)
+   where hashMask = 31 -- bitsInHash - 1
+         y = fromIntegral x .&. msk
+
+@@ -125,7 +125,7 @@ insert mb elt = do
+   let mu = bitArray mb
+   forM_ (hashesM mb elt) $ \(word :* bit) -> do
+       old <- unsafeRead mu word
+-      unsafeWrite mu word (old .|. (1 `shiftL` bit))
++      unsafeWrite mu word (old .|. (1 `unsafeShiftL` bit))
+
+ -- | Query a mutable Bloom filter for membership.  If the value is
+ -- present, return @True@.  If the value is not present, there is
+@@ -135,7 +135,7 @@ elem elt mb = loop (hashesM mb elt)
+   where mu = bitArray mb
+         loop ((word :* bit):wbs) = do
+           i <- unsafeRead mu word
+-          if i .&. (1 `shiftL` bit) == 0
++          if i .&. (1 `unsafeShiftL` bit) == 0
+             then return False
+             else loop wbs
+         loop _ = return True
+@@ -145,7 +145,7 @@ elem elt mb = loop (hashesM mb elt)
+
+ -- | Return the size of a mutable Bloom filter, in bits.
+ length :: MBloom s a -> Int
+-length = shiftL 1 . shift
++length = unsafeShiftL 1 . shift
+
+
+ -- | Slow, crummy way of computing the integer log of an integer known
+@@ -153,7 +153,7 @@ length = shiftL 1 . shift
+ logPower2 :: Int -> Int
+ logPower2 k = go 0 k
+     where go j 1 = j
+-          go j n = go (j+1) (n `shiftR` 1)
++          go j n = go (j+1) (n `unsafeShiftR` 1)
+
+ -- $overview
+ --
+diff --git a/bloomfilter-2.0.1.0/Data/BloomFilter/Util.hs b/bloomfilter-2.0.1.0/Data/BloomFilter/Util.hs
+index 7f695dc..6ade6e5 100644
+--- a/bloomfilter-2.0.1.0/Data/BloomFilter/Util.hs
++++ b/bloomfilter-2.0.1.0/Data/BloomFilter/Util.hs
+@@ -2,15 +2,11 @@
+
+ module Data.BloomFilter.Util
+     (
+-      FastShift(..)
+-    , nextPowerOfTwo
++      nextPowerOfTwo
+     , (:*)(..)
+     ) where
+
+-import Data.Bits ((.|.))
+-import qualified Data.Bits as Bits
+-import GHC.Base
+-import GHC.Word
++import Data.Bits ((.|.), unsafeShiftR)
+
+ -- | A strict pair type.
+ data a :* b = !a :* !b
+@@ -22,46 +18,11 @@ nextPowerOfTwo :: Int -> Int
+ {-# INLINE nextPowerOfTwo #-}
+ nextPowerOfTwo n =
+     let a = n - 1
+-        b = a .|. (a `shiftR` 1)
+-        c = b .|. (b `shiftR` 2)
+-        d = c .|. (c `shiftR` 4)
+-        e = d .|. (d `shiftR` 8)
+-        f = e .|. (e `shiftR` 16)
+-        g = f .|. (f `shiftR` 32)  -- in case we're on a 64-bit host
++        b = a .|. (a `unsafeShiftR` 1)
++        c = b .|. (b `unsafeShiftR` 2)
++        d = c .|. (c `unsafeShiftR` 4)
++        e = d .|. (d `unsafeShiftR` 8)
++        f = e .|. (e `unsafeShiftR` 16)
++        g = f .|. (f `unsafeShiftR` 32)  -- in case we're on a 64-bit host
+         !h = g + 1
+     in h
+-
+--- | This is a workaround for poor optimisation in GHC 6.8.2.  It
+--- fails to notice constant-width shifts, and adds a test and branch
+--- to every shift.  This imposes about a 10% performance hit.
+-class FastShift a where
+-    shiftL :: a -> Int -> a
+-    shiftR :: a -> Int -> a
+-
+-instance FastShift Word32 where
+-    {-# INLINE shiftL #-}
+-    shiftL (W32# x#) (I# i#) = W32# (x# `uncheckedShiftL#` i#)
+-
+-    {-# INLINE shiftR #-}
+-    shiftR (W32# x#) (I# i#) = W32# (x# `uncheckedShiftRL#` i#)
+-
+-instance FastShift Word64 where
+-    {-# INLINE shiftL #-}
+-    shiftL (W64# x#) (I# i#) = W64# (x# `uncheckedShiftL64#` i#)
+-
+-    {-# INLINE shiftR #-}
+-    shiftR (W64# x#) (I# i#) = W64# (x# `uncheckedShiftRL64#` i#)
+-
+-instance FastShift Int where
+-    {-# INLINE shiftL #-}
+-    shiftL (I# x#) (I# i#) = I# (x# `iShiftL#` i#)
+-
+-    {-# INLINE shiftR #-}
+-    shiftR (I# x#) (I# i#) = I# (x# `iShiftRA#` i#)
+-
+-instance FastShift Integer where
+-    {-# INLINE shiftL #-}
+-    shiftL = Bits.shiftL
+-
+-    {-# INLINE shiftR #-}
+-    shiftR = Bits.shiftR
+--
+2.35.1
diff --git a/srcpkgs/git-annex/template b/srcpkgs/git-annex/template
index 91d714a327ac..41117a4aca5f 100644
--- a/srcpkgs/git-annex/template
+++ b/srcpkgs/git-annex/template
@@ -1,6 +1,8 @@
 # Template file for 'git-annex'
 pkgname=git-annex
-version=10.20221103
+version=10.20221212
+_bloomfilter_version=2.0.1.0
+create_wrksrc=yes
 revision=1
 build_style=haskell-stack
 makedepends="curl file-devel gnupg gnutls-devel gsasl-devel libxml2-devel
@@ -12,8 +14,10 @@ maintainer="Evan Deaubl <evan@deaubl.name>"
 license="AGPL-3.0-or-later, MIT, BSD-2-Clause, GPL-3.0-or-later, custom:Expat, custom:MIT-twitter, GPL-2.0-only, custom:icon-license"
 homepage="https://git-annex.branchable.com"
 changelog="https://git.joeyh.name/index.cgi/git-annex.git/plain/CHANGELOG"
-distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz"
-checksum=f549c31264d6da3bb544755795e7fc29882ebec45014905bc2ea0ade28398f3b
+distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz
+ https://hackage.haskell.org/package/bloomfilter-${_bloomfilter_version}/bloomfilter-${_bloomfilter_version}.tar.gz"
+checksum="ef67b4b93728d86050d6e6ec862e950cd6f9db488aea9c840092f024b8a0d629
+ 6c5e0d357d5d39efe97ae2776e8fb533fa50c1c05397c7b85020b0f098ad790f"
 nopie_files="/usr/bin/git-annex"
 nocross=yes
 
@@ -26,7 +30,7 @@ post_install() {
 	ln -sf git-annex ${DESTDIR}/usr/bin/git-remote-tor-annex
 
 	vmkdir usr/share/man/man1
-	vcopy man/*.1 usr/share/man/man1
+	vcopy ${pkgname}-${version}/man/*.1 usr/share/man/man1
 
-	vlicense doc/license/AGPL
+	vlicense ${pkgname}-${version}/doc/license/AGPL
 }

From b284b63085b6a9be5a5194af268d3ff997ad2b92 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Fri, 30 Dec 2022 10:38:58 +0100
Subject: [PATCH 20/24] fixup! New package: greenclip-4.2

---
 srcpkgs/greenclip/files/stack.yaml | 2 --
 1 file changed, 2 deletions(-)

diff --git a/srcpkgs/greenclip/files/stack.yaml b/srcpkgs/greenclip/files/stack.yaml
index 86f4b6fa7ed2..94808b687ddd 100644
--- a/srcpkgs/greenclip/files/stack.yaml
+++ b/srcpkgs/greenclip/files/stack.yaml
@@ -8,5 +8,3 @@ extra-deps:
 - 'protolude-0.3.2'
 - 'tomland-1.3.3.2'
 - 'validation-selective-0.1.0.2'
-
-allow-newer: true

From 1bcb1af826088deb143fc5614fc02e01c4855530 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Fri, 30 Dec 2022 11:05:24 +0100
Subject: [PATCH 21/24] fixup! git-annex: update to 10.20221212

---
 srcpkgs/git-annex/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/git-annex/template b/srcpkgs/git-annex/template
index 41117a4aca5f..1ec6ddd881db 100644
--- a/srcpkgs/git-annex/template
+++ b/srcpkgs/git-annex/template
@@ -1,9 +1,9 @@
 # Template file for 'git-annex'
 pkgname=git-annex
 version=10.20221212
+revision=1
 _bloomfilter_version=2.0.1.0
 create_wrksrc=yes
-revision=1
 build_style=haskell-stack
 makedepends="curl file-devel gnupg gnutls-devel gsasl-devel libxml2-devel
  lsof rsync git ncurses-devel bup borg nocache git-remote-gcrypt"

From c519fc8ebf4af6a3cbb2902bc2b10a637f3efa68 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Fri, 30 Dec 2022 11:09:27 +0100
Subject: [PATCH 22/24] fixup! New package: ghcup-0.21

---
 srcpkgs/ghcup/template | 1 -
 1 file changed, 1 deletion(-)

diff --git a/srcpkgs/ghcup/template b/srcpkgs/ghcup/template
index de9be01dc9f0..9b3d0c74773d 100644
--- a/srcpkgs/ghcup/template
+++ b/srcpkgs/ghcup/template
@@ -2,7 +2,6 @@
 pkgname=ghcup
 version=0.21
 revision=1
-wrksrc="ghcup-hs-v$version"
 hostmakedepends='tar git cabal-install pkg-config'
 makedepends='zlib-devel ncurses-libtinfo-devel libarchive-devel'
 depends='zlib ncurses-libtinfo-libs libarchive gcc gmp make perl'

From 70804ec607e90a1300e3efbfe8ddd8ea29e35908 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Sun, 1 Jan 2023 15:32:49 +0100
Subject: [PATCH 23/24] fixup! debug-me: update to 1.20221231

---
 srcpkgs/debug-me/files/stack.yaml         |  6 ------
 srcpkgs/debug-me/patches/bytestring.patch | 26 -----------------------
 srcpkgs/debug-me/template                 |  7 +++---
 3 files changed, 4 insertions(+), 35 deletions(-)
 delete mode 100644 srcpkgs/debug-me/files/stack.yaml
 delete mode 100644 srcpkgs/debug-me/patches/bytestring.patch

diff --git a/srcpkgs/debug-me/files/stack.yaml b/srcpkgs/debug-me/files/stack.yaml
deleted file mode 100644
index cf7820620db2..000000000000
--- a/srcpkgs/debug-me/files/stack.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-packages:
-- '.'
-resolver: lts-20.0
-extra-deps:
-  - posix-pty-0.2.1.1
-  - sandi-0.5@sha256:b278d072ca717706ea38f9bd646e023f7f2576a778fb43565b434f93638849aa,3010
diff --git a/srcpkgs/debug-me/patches/bytestring.patch b/srcpkgs/debug-me/patches/bytestring.patch
deleted file mode 100644
index 24a67ef604d0..000000000000
--- a/srcpkgs/debug-me/patches/bytestring.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 1d30b5cd9156b1a9d409c8810dab26e2dc5065af Mon Sep 17 00:00:00 2001
-From: Tony Zorman <soliditsallgood@mailbox.org>
-Date: Thu, 29 Dec 2022 10:35:58 +0100
-Subject: [PATCH] Bump bytestring dependency
-
-This fixes the build for GHC 9.2, which ships with a higher version of
-the bytestring library.
----
- debug-me.cabal | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/debug-me.cabal b/debug-me.cabal
-index d5a44e9..2dd60a0 100644
---- a/debug-me.cabal
-+++ b/debug-me.cabal
-@@ -55,7 +55,7 @@ Executable debug-me
-   Build-Depends:
-       base (>= 4.9 && < 5.0)
-     , network (>= 2.6)
--    , bytestring == 0.10.*
-+    , bytestring < 0.12
-     , cryptonite (>= 0.20)
-     , unix (>= 2.7)
-     , process (>= 1.4)
---
-2.39.0
diff --git a/srcpkgs/debug-me/template b/srcpkgs/debug-me/template
index 0ffea08897fe..ddde6363dcad 100644
--- a/srcpkgs/debug-me/template
+++ b/srcpkgs/debug-me/template
@@ -1,15 +1,16 @@
 # Template file for 'debug-me'
 pkgname=debug-me
-version=1.20220324
-revision=2
+version=1.20221231
+revision=1
 build_style=haskell-stack
+stackage="lts-20.0"
 makedepends="zlib-devel"
 short_desc="Secure remote debugging"
 maintainer="Dominic Monroe <monroef4@googlemail.com>"
 license="AGPL-3.0-or-later"
 homepage="https://debug-me.branchable.com/"
 distfiles="https://git.joeyh.name/index.cgi/${pkgname}.git/snapshot/${pkgname}-${version}.tar.gz"
-checksum=9fd6256aa34408106ff095e0560850aca3558a774be4ce19de6ab6e81fbfdb9f
+checksum=c16b63a99d9cb177f28318e4598debaf974eda791da37fc66e13780959356373
 nocross=yes # Can't yet cross compile Haskell
 nopie_files="/usr/bin/debug-me"
 

From 6689a1a4c14c1440ad001b1b65fdf61de3c1a263 Mon Sep 17 00:00:00 2001
From: Tony Zorman <soliditsallgood@mailbox.org>
Date: Mon, 2 Jan 2023 08:18:40 +0100
Subject: [PATCH 24/24] haskell-language-server: update to 1.9.0.0.

---
 .../haskell-language-server/files/stack.yaml  | 98 +++++++++++++++++++
 srcpkgs/haskell-language-server/template      |  7 +-
 2 files changed, 102 insertions(+), 3 deletions(-)
 create mode 100644 srcpkgs/haskell-language-server/files/stack.yaml

diff --git a/srcpkgs/haskell-language-server/files/stack.yaml b/srcpkgs/haskell-language-server/files/stack.yaml
new file mode 100644
index 000000000000..2c1586476ebf
--- /dev/null
+++ b/srcpkgs/haskell-language-server/files/stack.yaml
@@ -0,0 +1,98 @@
+resolver: lts-20.0
+
+packages:
+- .
+- ./hie-compat
+- ./hls-graph
+- ./ghcide/
+- ./ghcide/test
+- ./hls-plugin-api
+- ./hls-test-utils
+- ./shake-bench
+- ./plugins/hls-cabal-plugin
+- ./plugins/hls-cabal-fmt-plugin
+- ./plugins/hls-call-hierarchy-plugin
+- ./plugins/hls-class-plugin
+# - ./plugins/hls-haddock-comments-plugin
+- ./plugins/hls-eval-plugin
+- ./plugins/hls-explicit-imports-plugin
+- ./plugins/hls-qualify-imported-names-plugin
+- ./plugins/hls-refine-imports-plugin
+- ./plugins/hls-hlint-plugin
+- ./plugins/hls-rename-plugin
+# - ./plugins/hls-retrie-plugin
+# - ./plugins/hls-splice-plugin
+# - ./plugins/hls-tactics-plugin
+# - ./plugins/hls-brittany-plugin
+- ./plugins/hls-stylish-haskell-plugin
+- ./plugins/hls-floskell-plugin
+- ./plugins/hls-fourmolu-plugin
+- ./plugins/hls-pragmas-plugin
+- ./plugins/hls-module-name-plugin
+- ./plugins/hls-ormolu-plugin
+- ./plugins/hls-alternate-number-format-plugin
+- ./plugins/hls-code-range-plugin
+- ./plugins/hls-change-type-signature-plugin
+- ./plugins/hls-gadt-plugin
+- ./plugins/hls-explicit-fixity-plugin
+- ./plugins/hls-refactor-plugin
+- ./plugins/hls-explicit-record-fields-plugin
+
+extra-deps:
+- hls-retrie-plugin-1.0.3.0
+- hls-splice-plugin-1.0.3.0
+# needed for tests of hls-cabal-fmt-plugin
+- cabal-fmt-0.1.6@sha256:54041d50c8148c32d1e0a67aef7edeebac50ae33571bef22312f6815908eac19,3626
+- floskell-0.10.6@sha256:e77d194189e8540abe2ace2c7cb8efafc747ca35881a2fefcbd2d40a1292e036,3819
+- hiedb-0.4.2.0
+- implicit-hie-0.1.2.7@sha256:82bbbb1a8c05f99c8af3c16ac53e80c8648d8bf047b25ed5ce45a135bd736907,3122
+- implicit-hie-cradle-0.5.0.0@sha256:4276f60f3a59bc22df03fd918f73bca9f777de9568f85e3a8be8bd7566234a59,2368
+- monad-dijkstra-0.1.1.3@sha256:d2fc098d7c122555e726830a12ae0423ac187f89de9228f32e56e2f6fc2238e1,1900
+- retrie-1.2.0.1
+- co-log-core-0.3.1.0
+- lsp-1.6.0.0
+- lsp-types-1.6.0.0
+- lsp-test-0.14.1.0
+- hie-bios-0.11.0
+
+# currently needed for ghcide>extra, etc.
+allow-newer: true
+
+ghc-options:
+  "$everything": -haddock
+
+configure-options:
+  ghcide:
+    - --disable-library-for-ghci
+  haskell-language-server:
+    - --disable-library-for-ghci
+  heapsize:
+    - --disable-library-for-ghci
+
+flags:
+  haskell-language-server:
+    pedantic: true
+
+    ignore-plugins-ghc-bounds: true
+    brittany: false
+    haddockComments: false
+    retrie: false
+    splice: false
+    tactic: false
+
+  retrie:
+    BuildExecutable: false
+  # Stack doesn't support automatic flags.
+  # Use ghc-lib force instead of ghc itself
+  ghc-lib-parser-ex:
+    auto: false
+  hlint:
+    ghc-lib: true
+  stylish-haskell:
+    ghc-lib: true
+  hyphenation:
+    embed: true
+
+concurrent-tests: false
+
+system-ghc: true
diff --git a/srcpkgs/haskell-language-server/template b/srcpkgs/haskell-language-server/template
index 709fb30791a9..bc7e453d3ffe 100644
--- a/srcpkgs/haskell-language-server/template
+++ b/srcpkgs/haskell-language-server/template
@@ -1,9 +1,10 @@
 # Template file for 'haskell-language-server'
 pkgname=haskell-language-server
-version=1.8.0.0
+version=1.9.0.0
 revision=1
 build_style="haskell-stack"
-make_build_args="--stack-yaml stack-lts19.yaml --flag=haskell-language-server:-dynamic"
+# fixity-th: https://github.com/tweag/ormolu/issues/927
+make_build_args="--flag=haskell-language-server:-dynamic --flag=fourmolu:-fixity-th"
 makedepends="ncurses-devel ncurses-libtinfo-devel icu-devel zlib-devel"
 short_desc="Integration of ghcide and haskell-ide-engine"
 maintainer="Wayne Van Son <waynevanson@gmail.com>"
@@ -11,7 +12,7 @@ license="Apache-2.0"
 homepage="https://github.com/haskell/haskell-language-server"
 changelog="https://raw.githubusercontent.com/haskell/haskell-language-server/master/ChangeLog.md"
 distfiles="https://github.com/haskell/haskell-language-server/archive/${version}.tar.gz"
-checksum=e1081ac581d21547d835beb8561e815573944aa0babe752a971479da3a207235
+checksum=f62114928956090ea84c7e6b2fd16ca0d598c6d877e84dd87aebe81a9dabdd9c
 nopie_files="
  /usr/bin/haskell-language-server
  /usr/bin/haskell-language-server-wrapper

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [WIP] [ci skip] GHC 9.2.5
  2022-12-27  9:58 [PR PATCH] [WIP] [ci skip] GHC 9.2.5 slotThe
                   ` (9 preceding siblings ...)
  2023-01-02  7:18 ` slotThe
@ 2023-01-02  7:19 ` slotThe
  2023-01-21 13:55 ` motorto
  2023-01-25  6:55 ` slotThe
  12 siblings, 0 replies; 14+ messages in thread
From: slotThe @ 2023-01-02  7:19 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 281 bytes --]

New comment by slotThe on void-packages repository

https://github.com/void-linux/void-packages/pull/41316#issuecomment-1368704437

Comment:
The packages should all be done now, all that's left is to build various binary dist files for GHC (for which I'll probably need some help)

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [WIP] [ci skip] GHC 9.2.5
  2022-12-27  9:58 [PR PATCH] [WIP] [ci skip] GHC 9.2.5 slotThe
                   ` (10 preceding siblings ...)
  2023-01-02  7:19 ` slotThe
@ 2023-01-21 13:55 ` motorto
  2023-01-25  6:55 ` slotThe
  12 siblings, 0 replies; 14+ messages in thread
From: motorto @ 2023-01-21 13:55 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 175 bytes --]

New comment by motorto on void-packages repository

https://github.com/void-linux/void-packages/pull/41316#issuecomment-1399256120

Comment:
@slotThe  how can  I help here ? 

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [WIP] [ci skip] GHC 9.2.5
  2022-12-27  9:58 [PR PATCH] [WIP] [ci skip] GHC 9.2.5 slotThe
                   ` (11 preceding siblings ...)
  2023-01-21 13:55 ` motorto
@ 2023-01-25  6:55 ` slotThe
  12 siblings, 0 replies; 14+ messages in thread
From: slotThe @ 2023-01-25  6:55 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 526 bytes --]

New comment by slotThe on void-packages repository

https://github.com/void-linux/void-packages/pull/41316#issuecomment-1403173476

Comment:
@motorto sorry, haven't been as active as I thought I would be with this.  Basically, bin dists for all of the different archs still need to be build.  The [ghc template](https://github.com/slotThe/void-packages/blob/ghc-9.2.5/srcpkgs/ghc/template) has a convenient `bindist` option, but I don't know how to build something natively for half of these architectures :upside_down_face: 

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2023-01-25  6:55 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-27  9:58 [PR PATCH] [WIP] [ci skip] GHC 9.2.5 slotThe
2022-12-28  6:35 ` [PR PATCH] [Updated] " slotThe
2022-12-28 11:58 ` q66
2022-12-28 13:55 ` [PR PATCH] [Updated] " slotThe
2022-12-28 15:51 ` slotThe
2022-12-28 21:18 ` [PR PATCH] [Updated] " slotThe
2022-12-29  9:24 ` slotThe
2022-12-30  9:28 ` slotThe
2022-12-30  9:53 ` slotThe
2022-12-31 13:24 ` slotThe
2023-01-02  7:18 ` slotThe
2023-01-02  7:19 ` slotThe
2023-01-21 13:55 ` motorto
2023-01-25  6:55 ` slotThe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).